Skip to content

Commit 63489e8

Browse files
lishaduckampagent
andauthored
feat: add Svelte Storybook app (#348)
* feat: add Svelte Storybook app Amp-Thread-ID: https://ampcode.com/threads/T-019f9c38-7ebd-73cb-8912-083994a58328 Co-authored-by: Eli <elisha.dukes@gmail.com> * fix: pin Storybook version for CI Amp-Thread-ID: https://ampcode.com/threads/T-019f9c38-7ebd-73cb-8912-083994a58328 Co-authored-by: Eli <elisha.dukes@gmail.com> * fix: register Storybook production entries Amp-Thread-ID: https://ampcode.com/threads/T-019f9c38-7ebd-73cb-8912-083994a58328 Co-authored-by: Eli <elisha.dukes@gmail.com> --------- Co-authored-by: Amp <amp@ampcode.com>
1 parent 7ea381d commit 63489e8

11 files changed

Lines changed: 1066 additions & 11 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
**/dist/
33
**/build/
44
**/build-server/
5+
**/storybook-static/
56
**/.svelte-kit/
67
**/coverage/
78
**/target/

apps/storybook/.storybook/main.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import type { StorybookConfig } from "@storybook/svelte-vite";
2+
3+
export default {
4+
stories: ["../src/**/*.stories.@(js|jsx|mjs|ts|tsx|svelte)"],
5+
addons: ["@storybook/addon-a11y", "@storybook/addon-docs"],
6+
framework: {
7+
name: "@storybook/svelte-vite",
8+
options: {},
9+
},
10+
} satisfies StorybookConfig;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import type { Preview } from "@storybook/svelte-vite";
2+
3+
export default {
4+
parameters: {
5+
controls: {
6+
matchers: {
7+
color: /(background|color)$/i,
8+
date: /Date$/i,
9+
},
10+
},
11+
},
12+
} satisfies Preview;

apps/storybook/package.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"name": "@petalnet/storybook",
3+
"version": "0.0.0",
4+
"private": true,
5+
"type": "module",
6+
"scripts": {
7+
"build": "storybook build",
8+
"dev": "storybook dev -p 6006",
9+
"typecheck": "svelte-check --tsconfig ./tsconfig.json"
10+
},
11+
"devDependencies": {
12+
"@petalnet/tsconfig": "workspace:*",
13+
"@storybook/addon-a11y": "catalog:",
14+
"@storybook/addon-docs": "catalog:",
15+
"@storybook/svelte-vite": "catalog:",
16+
"@sveltejs/vite-plugin-svelte": "catalog:dev",
17+
"storybook": "catalog:",
18+
"svelte": "catalog:prod",
19+
"svelte-check": "catalog:dev",
20+
"typescript": "catalog:dev",
21+
"vite": "catalog:dev"
22+
}
23+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import type { Meta, StoryObj } from "@storybook/svelte-vite";
2+
3+
import Welcome from "./Welcome.svelte";
4+
5+
const meta = {
6+
title: "Example/Welcome",
7+
component: Welcome,
8+
tags: ["autodocs"],
9+
} satisfies Meta<typeof Welcome>;
10+
11+
export default meta;
12+
13+
type Story = StoryObj<typeof meta>;
14+
15+
export const Default: Story = {};
16+
17+
export const CustomName: Story = {
18+
args: {
19+
name: "Component",
20+
},
21+
};

apps/storybook/src/Welcome.svelte

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<script lang="ts">
2+
let { name = "PetalNet" }: { name?: string } = $props();
3+
</script>
4+
5+
<main>
6+
<h1>Welcome to {name} Storybook</h1>
7+
<p>Add stories to this app to develop components in isolation.</p>
8+
</main>
9+
10+
<style>
11+
main {
12+
font-family: system-ui, sans-serif;
13+
padding: 2rem;
14+
}
15+
16+
h1 {
17+
margin-block: 0 0.5rem;
18+
}
19+
20+
p {
21+
color: #475569;
22+
margin: 0;
23+
}
24+
</style>

apps/storybook/tsconfig.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"extends": "@petalnet/tsconfig/base.json",
3+
"compilerOptions": {
4+
"module": "ESNext",
5+
"moduleResolution": "Bundler",
6+
"noEmit": true,
7+
"types": ["vite/client"]
8+
},
9+
"include": [".storybook/**/*.ts", "src/**/*.ts", "src/**/*.svelte", "vite.config.ts"]
10+
}

apps/storybook/vite.config.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { svelte } from "@sveltejs/vite-plugin-svelte";
2+
import { defineConfig } from "vite";
3+
4+
export default defineConfig({
5+
plugins: [svelte()],
6+
});

knip.config.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ export default {
4141
},
4242
entry: ["effectdb.config.ts!", "src/env.ts!"],
4343
},
44+
"apps/storybook": {
45+
entry: [".storybook/*.ts!", "src/**/*.stories.ts!", "src/**/*.svelte!"],
46+
},
4447
"packages/better-auth-effect-qb-adapter": {
4548
entry: ["test/**/*.ts"],
4649
},

0 commit comments

Comments
 (0)