@flickfyi/flkr 0.0.182 → 0.0.185
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{api-client-CAg1b8Bh.js → api-client-nn4U_Vfn.js} +1 -1
- package/dist/{app-DpM5nhb9.js → app-COXGJhrt.js} +3 -3
- package/dist/{bundler-DNrDcqyk.js → bundler-CW4YC73e.js} +4 -2
- package/dist/cli.js +11 -11
- package/dist/{delegate-DcVye0KE.js → delegate-aUVluBjB.js} +2 -2
- package/dist/{generate-B1l1z_FZ.js → generate-BeL1QPDi.js} +1 -1
- package/dist/{preview-Dqn_Tq6K.js → preview-DTVM8Csb.js} +2 -2
- package/dist/{publish-BmDqO1xU.js → publish-BJG-s-w5.js} +4 -4
- package/dist/{pull-CO80DMn8.js → pull-B_Yfjpi2.js} +1 -1
- package/dist/{save-8crfOeo1.js → save-UrfgmK2-.js} +2 -2
- package/dist/{sdk-app-BXWrf_pf.js → sdk-app-BAxznAf9.js} +3 -3
- package/dist/{sdk-deploy-CaEonlvx.js → sdk-deploy-D1wgQxse.js} +3 -3
- package/dist/{sdk-generation-CF8ATbrL.js → sdk-generation-CLQ-QrVM.js} +1 -1
- package/dist/{sdk-project-CKV3U3u9.js → sdk-project-BaO0fqhW.js} +1 -1
- package/dist/{use-auth-B6nwU2rp.js → use-auth-CtM4_BAY.js} +1 -1
- package/node_modules/@flickfyi/biscuit/.turbo/turbo-build.log +4 -4
- package/node_modules/@flickfyi/core/README.md +19 -9
- package/node_modules/@flickfyi/core/dist/chunks/{default-CuxDsQoM.js → default-BTmKidHV.js} +1 -1
- package/node_modules/@flickfyi/core/dist/chunks/{default-BB6YexEH.cjs → default-JhTq5I_y.cjs} +1 -1
- package/node_modules/@flickfyi/core/dist/chunks/{define-CUJRqVKY.cjs → define-BKCRhpuY.cjs} +1 -1
- package/node_modules/@flickfyi/core/dist/chunks/{define-e_VqSs4M.js → define-DZXgUsy7.js} +5 -5
- package/node_modules/@flickfyi/core/dist/kowalski/catalog.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/kowalski/catalog.js +728 -549
- package/node_modules/@flickfyi/core/dist/kowalski/index.cjs +5 -5
- package/node_modules/@flickfyi/core/dist/kowalski/index.js +4297 -3700
- package/node_modules/@flickfyi/core/dist/kowalski/schemas.cjs +1 -0
- package/node_modules/@flickfyi/core/dist/kowalski/schemas.js +637 -0
- package/node_modules/@flickfyi/core/dist/kowalski-catalog.css +516 -0
- package/node_modules/@flickfyi/core/dist/kowalski.css +10 -0
- package/node_modules/@flickfyi/core/dist/themes/athletic/athletic.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/athletic/athletic.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/compact/compact.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/compact/compact.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/default/default.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/default/default.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/editorial/editorial.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/editorial/editorial.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/handwritten/handwritten.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/handwritten/handwritten.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/index.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/index.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/kids/kids.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/kids/kids.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/rounded/rounded.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/rounded/rounded.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/technical/technical.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/technical/technical.js +1 -1
- package/node_modules/@flickfyi/core/dist-types/hooks/use-feature-store/index.d.ts +43 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/calculations.d.ts +57 -3
- package/node_modules/@flickfyi/core/dist-types/kowalski/calculator.d.ts +7 -6
- package/node_modules/@flickfyi/core/dist-types/kowalski/catalog.d.cts +524 -809
- package/node_modules/@flickfyi/core/dist-types/kowalski/catalog.d.ts +524 -809
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/bill-split.d.ts +38 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/bookmark.d.ts +48 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/budget.d.ts +39 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/calculator.d.ts +62 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/checklist.d.ts +35 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/color-palette.d.ts +32 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/contact.d.ts +41 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/countdown.d.ts +34 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/event.d.ts +43 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/expense.d.ts +40 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/goal.d.ts +36 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/habit.d.ts +57 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/ledger.d.ts +43 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/note.d.ts +35 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/poll.d.ts +41 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/random-picker.d.ts +69 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/rating.d.ts +33 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/reminder.d.ts +48 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/rotation.d.ts +39 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/scoreboard.d.ts +37 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/shopping-list.d.ts +41 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/task-board.d.ts +39 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/time-zone.d.ts +34 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/timer.d.ts +43 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/trip.d.ts +61 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/unit-converter.d.ts +106 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/create-schemas.d.ts +6 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/date-time.d.ts +1 -1
- package/node_modules/@flickfyi/core/dist-types/kowalski/everyday.d.ts +28 -8
- package/node_modules/@flickfyi/core/dist-types/kowalski/feature-schema.d.ts +65 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/format.d.ts +4 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/fortune.d.ts +21 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/frame.d.ts +4 -4
- package/node_modules/@flickfyi/core/dist-types/kowalski/index.d.cts +31 -7
- package/node_modules/@flickfyi/core/dist-types/kowalski/index.d.ts +31 -7
- package/node_modules/@flickfyi/core/dist-types/kowalski/lesson.d.ts +89 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/recipe.d.ts +129 -8
- package/node_modules/@flickfyi/core/dist-types/kowalski/schemas.d.cts +4 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/schemas.d.ts +4 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/time-since.d.ts +34 -0
- package/node_modules/@flickfyi/core/examples/example-metadata.ts +19 -2
- package/node_modules/@flickfyi/core/examples/kowalski/bill-split/bill-split.stories.tsx +25 -6
- package/node_modules/@flickfyi/core/examples/kowalski/bill-split/bill-split.tsx +6 -12
- package/node_modules/@flickfyi/core/examples/kowalski/bookmark/bookmark.stories.tsx +22 -5
- package/node_modules/@flickfyi/core/examples/kowalski/bookmark/bookmark.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/budget/budget.stories.tsx +26 -5
- package/node_modules/@flickfyi/core/examples/kowalski/budget/budget.tsx +6 -21
- package/node_modules/@flickfyi/core/examples/kowalski/calculator/calculator.stories.tsx +18 -5
- package/node_modules/@flickfyi/core/examples/kowalski/calculator/calculator.tsx +6 -19
- package/node_modules/@flickfyi/core/examples/kowalski/checklist/checklist.stories.tsx +25 -5
- package/node_modules/@flickfyi/core/examples/kowalski/checklist/checklist.tsx +6 -21
- package/node_modules/@flickfyi/core/examples/kowalski/color-palette/color-palette.stories.tsx +19 -6
- package/node_modules/@flickfyi/core/examples/kowalski/color-palette/color-palette.tsx +6 -17
- package/node_modules/@flickfyi/core/examples/kowalski/contact/contact.stories.tsx +30 -5
- package/node_modules/@flickfyi/core/examples/kowalski/contact/contact.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/countdown/countdown.stories.tsx +22 -5
- package/node_modules/@flickfyi/core/examples/kowalski/countdown/countdown.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/event/event.stories.tsx +23 -5
- package/node_modules/@flickfyi/core/examples/kowalski/event/event.tsx +6 -19
- package/node_modules/@flickfyi/core/examples/kowalski/expense/expense.stories.tsx +23 -5
- package/node_modules/@flickfyi/core/examples/kowalski/expense/expense.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/fortune/fortune.stories.tsx +61 -0
- package/node_modules/@flickfyi/core/examples/kowalski/fortune/fortune.tsx +11 -0
- package/node_modules/@flickfyi/core/examples/kowalski/goal/goal.stories.tsx +18 -5
- package/node_modules/@flickfyi/core/examples/kowalski/goal/goal.tsx +3 -19
- package/node_modules/@flickfyi/core/examples/kowalski/habit/habit.stories.tsx +22 -5
- package/node_modules/@flickfyi/core/examples/kowalski/habit/habit.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/ledger/ledger.stories.tsx +25 -5
- package/node_modules/@flickfyi/core/examples/kowalski/ledger/ledger.tsx +6 -20
- package/node_modules/@flickfyi/core/examples/kowalski/lesson/lesson.stories.tsx +99 -0
- package/node_modules/@flickfyi/core/examples/kowalski/lesson/lesson.tsx +11 -0
- package/node_modules/@flickfyi/core/examples/kowalski/note/note.stories.tsx +21 -5
- package/node_modules/@flickfyi/core/examples/kowalski/note/note.tsx +3 -17
- package/node_modules/@flickfyi/core/examples/kowalski/poll/poll.stories.tsx +26 -5
- package/node_modules/@flickfyi/core/examples/kowalski/poll/poll.tsx +3 -21
- package/node_modules/@flickfyi/core/examples/kowalski/random-picker/random-picker.stories.tsx +37 -6
- package/node_modules/@flickfyi/core/examples/kowalski/random-picker/random-picker.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/rating/rating.stories.tsx +18 -5
- package/node_modules/@flickfyi/core/examples/kowalski/rating/rating.tsx +6 -14
- package/node_modules/@flickfyi/core/examples/kowalski/recipe/recipe.stories.tsx +117 -5
- package/node_modules/@flickfyi/core/examples/kowalski/recipe/recipe.tsx +6 -115
- package/node_modules/@flickfyi/core/examples/kowalski/reminder/reminder.stories.tsx +22 -5
- package/node_modules/@flickfyi/core/examples/kowalski/reminder/reminder.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/rotation/rotation.stories.tsx +26 -5
- package/node_modules/@flickfyi/core/examples/kowalski/rotation/rotation.tsx +6 -22
- package/node_modules/@flickfyi/core/examples/kowalski/scoreboard/scoreboard.stories.tsx +26 -5
- package/node_modules/@flickfyi/core/examples/kowalski/scoreboard/scoreboard.tsx +6 -21
- package/node_modules/@flickfyi/core/examples/kowalski/shopping-list/shopping-list.stories.tsx +28 -6
- package/node_modules/@flickfyi/core/examples/kowalski/shopping-list/shopping-list.tsx +6 -22
- package/node_modules/@flickfyi/core/examples/kowalski/task-board/task-board.stories.tsx +27 -6
- package/node_modules/@flickfyi/core/examples/kowalski/task-board/task-board.tsx +6 -22
- package/node_modules/@flickfyi/core/examples/kowalski/time-since/time-since.stories.tsx +33 -0
- package/node_modules/@flickfyi/core/examples/kowalski/time-since/time-since.tsx +12 -0
- package/node_modules/@flickfyi/core/examples/kowalski/time-zone/time-zone.stories.tsx +22 -6
- package/node_modules/@flickfyi/core/examples/kowalski/time-zone/time-zone.tsx +6 -17
- package/node_modules/@flickfyi/core/examples/kowalski/timer/timer.stories.tsx +18 -5
- package/node_modules/@flickfyi/core/examples/kowalski/timer/timer.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/trip/trip.stories.tsx +25 -5
- package/node_modules/@flickfyi/core/examples/kowalski/trip/trip.tsx +3 -21
- package/node_modules/@flickfyi/core/examples/kowalski/unit-converter/unit-converter.stories.tsx +19 -6
- package/node_modules/@flickfyi/core/examples/kowalski/unit-converter/unit-converter.tsx +6 -19
- package/node_modules/@flickfyi/core/examples/parrott/calculator/calculator.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/calculator/calculator.tsx +2 -13
- package/node_modules/@flickfyi/core/examples/parrott/checklist/checklist.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/checklist/checklist.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/countdown/countdown.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/countdown/countdown.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/counter/counter.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/counter/counter.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/fortune/fortune.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/fortune/fortune.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/grid/grid.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/grid/grid.tsx +4 -9
- package/node_modules/@flickfyi/core/examples/parrott/kale-smoothie/kale-smoothie.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/kale-smoothie/kale-smoothie.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/list/list.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/list/list.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/log/log.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/log/log.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/timed-task/timed-task.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/timed-task/timed-task.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/timer/timer.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/timer/timer.tsx +0 -8
- package/node_modules/@flickfyi/core/package.json +16 -3
- package/node_modules/@flickfyi/core/src/{kowalski/use-configured-feature.ts → hooks/use-configured-feature/index.ts} +1 -1
- package/node_modules/@flickfyi/core/src/{kowalski/use-feature-store.ts → hooks/use-feature-store/index.ts} +37 -12
- package/node_modules/@flickfyi/core/src/kowalski/README.md +13 -0
- package/node_modules/@flickfyi/core/src/kowalski/calculations.ts +36 -8
- package/node_modules/@flickfyi/core/src/kowalski/calculator.ts +15 -7
- package/node_modules/@flickfyi/core/src/kowalski/catalog.ts +110 -704
- package/node_modules/@flickfyi/core/src/kowalski/components/bill-split.tsx +284 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/bookmark.tsx +347 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/budget.tsx +169 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/calculator.tsx +202 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/checklist.tsx +119 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/color-palette.tsx +302 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/contact.tsx +247 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/countdown.tsx +173 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/event.tsx +260 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/expense.tsx +257 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/goal.tsx +182 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/habit.tsx +272 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/ledger.tsx +211 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/note.tsx +188 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/poll.tsx +242 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/random-picker.tsx +308 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/rating.tsx +112 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/reminder.tsx +298 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/rotation.tsx +146 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/scoreboard.tsx +139 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/shopping-list.tsx +144 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/task-board.tsx +146 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/time-zone.tsx +240 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/timer.tsx +225 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/trip.tsx +338 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/unit-converter.tsx +285 -0
- package/node_modules/@flickfyi/core/src/kowalski/create-schemas.ts +8 -0
- package/node_modules/@flickfyi/core/src/kowalski/date-time.tsx +1 -1
- package/node_modules/@flickfyi/core/src/kowalski/everyday.tsx +1 -640
- package/node_modules/@flickfyi/core/src/kowalski/feature-schema.ts +84 -0
- package/node_modules/@flickfyi/core/src/kowalski/format.ts +29 -3
- package/node_modules/@flickfyi/core/src/kowalski/fortune.tsx +67 -0
- package/node_modules/@flickfyi/core/src/kowalski/frame.tsx +5 -6
- package/node_modules/@flickfyi/core/src/kowalski/index.ts +31 -22
- package/node_modules/@flickfyi/core/src/kowalski/lesson.tsx +564 -0
- package/node_modules/@flickfyi/core/src/kowalski/recipe.tsx +78 -37
- package/node_modules/@flickfyi/core/src/kowalski/schemas.ts +67 -0
- package/node_modules/@flickfyi/core/src/kowalski/stories/composition.tsx +22 -20
- package/node_modules/@flickfyi/core/src/kowalski/time-since.tsx +145 -0
- package/node_modules/@flickfyi/core/src/molecules/progress/progress.tsx +4 -1
- package/node_modules/@flickfyi/core/src/oklch.ts +1 -6
- package/node_modules/@flickfyi/core/src/parrott/theme.ts +3 -1
- package/node_modules/@flickfyi/core/src/themes/editorial/editorial.ts +6 -1
- package/node_modules/@flickfyi/core/src/themes/palette.ts +5 -5
- package/node_modules/@flickfyi/core/src/themes/stories/composition.tsx +11 -9
- package/node_modules/@flickfyi/core/src/themes/stories/gallery.tsx +7 -11
- package/node_modules/@flickfyi/core/tsgo.bun.lock +7 -7
- package/node_modules/@flickfyi/core/tsgo.package.json +1 -1
- package/package.json +2 -2
- package/node_modules/@flickfyi/core/dist-types/kowalski/clocks.d.ts +0 -4
- package/node_modules/@flickfyi/core/dist-types/kowalski/details.d.ts +0 -7
- package/node_modules/@flickfyi/core/dist-types/kowalski/productivity.d.ts +0 -5
- package/node_modules/@flickfyi/core/dist-types/kowalski/tools.d.ts +0 -7
- package/node_modules/@flickfyi/core/dist-types/kowalski/use-feature-store.d.ts +0 -15
- package/node_modules/@flickfyi/core/src/kowalski/clocks.tsx +0 -464
- package/node_modules/@flickfyi/core/src/kowalski/details.tsx +0 -1387
- package/node_modules/@flickfyi/core/src/kowalski/productivity.tsx +0 -575
- package/node_modules/@flickfyi/core/src/kowalski/tools.tsx +0 -1213
- /package/node_modules/@flickfyi/core/dist-types/{kowalski/use-clock.d.ts → hooks/use-clock/index.d.ts} +0 -0
- /package/node_modules/@flickfyi/core/dist-types/{kowalski/use-configured-feature.d.ts → hooks/use-configured-feature/index.d.ts} +0 -0
- /package/node_modules/@flickfyi/core/src/{kowalski/use-clock.ts → hooks/use-clock/index.ts} +0 -0
|
@@ -1,15 +1,127 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { RecipeData } from '@flickfyi/core/kowalski/catalog'
|
|
2
|
+
import type { Meta } from '@storybook/react-vite'
|
|
3
|
+
import type { z } from 'zod/v4'
|
|
4
|
+
|
|
5
|
+
import { type ExampleStory, schemaArgTypes } from '@flickfyi/core/examples/metadata'
|
|
2
6
|
|
|
3
7
|
import RecipeExample from './recipe'
|
|
4
8
|
import exampleSource from './recipe.tsx?raw'
|
|
5
9
|
|
|
10
|
+
// Keep catalog metadata outside the component's content.
|
|
11
|
+
const storyProps = RecipeData.strip().transform(data => ({ data }))
|
|
6
12
|
const meta = {
|
|
7
|
-
|
|
13
|
+
argTypes: { ...schemaArgTypes(RecipeData), yield: { control: 'text' } },
|
|
14
|
+
args: {
|
|
15
|
+
ingredients: [
|
|
16
|
+
{ id: 'water', label: 'Well-salted water' },
|
|
17
|
+
{ amount: 200, id: 'pasta', label: 'Spaghetti', unit: 'g' },
|
|
18
|
+
{ amount: 4, id: 'oil', label: 'Olive oil', unit: 'tbsp' },
|
|
19
|
+
{ amount: 3, id: 'garlic', label: 'Garlic cloves' },
|
|
20
|
+
{ id: 'chili', label: 'Chili flakes', notes: ['optional'], unit: 'a pinch' },
|
|
21
|
+
{ id: 'parsley', label: 'Parsley', unit: 'a handful' },
|
|
22
|
+
{ id: 'cheese', label: 'Grated Parmesan', unit: 'to taste' },
|
|
23
|
+
],
|
|
24
|
+
servings: 2,
|
|
25
|
+
steps: [
|
|
26
|
+
{
|
|
27
|
+
attention: 'passive',
|
|
28
|
+
id: 'heat-water',
|
|
29
|
+
instruction: 'Bring a large pot of salted water to a boil.',
|
|
30
|
+
kind: 'setup',
|
|
31
|
+
label: 'water',
|
|
32
|
+
outputs: [{ id: 'boiling-water', name: 'Boiling water' }],
|
|
33
|
+
uses: [{ id: 'u-water', source: { ingredientId: 'water', kind: 'ingredient' } }],
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
id: 'slice',
|
|
37
|
+
instruction: 'Thinly slice the garlic and chop the parsley.',
|
|
38
|
+
label: 'slicing',
|
|
39
|
+
outputs: [
|
|
40
|
+
{ id: 'sliced-garlic', name: 'Sliced garlic' },
|
|
41
|
+
{ id: 'chopped-parsley', name: 'Chopped parsley' },
|
|
42
|
+
],
|
|
43
|
+
uses: [
|
|
44
|
+
{ id: 'u-garlic', source: { ingredientId: 'garlic', kind: 'ingredient' } },
|
|
45
|
+
{ id: 'u-parsley', source: { ingredientId: 'parsley', kind: 'ingredient' } },
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
attention: 'passive',
|
|
50
|
+
doneness: 'al dente',
|
|
51
|
+
duration: { maxMinutes: 10, minMinutes: 8, raw: '8–10 min' },
|
|
52
|
+
id: 'boil',
|
|
53
|
+
instruction: 'Cook the spaghetti until al dente.',
|
|
54
|
+
label: 'pasta',
|
|
55
|
+
outputs: [{ id: 'pasta-pot', name: 'Pasta in its water' }],
|
|
56
|
+
uses: [
|
|
57
|
+
{ id: 'u-pot', source: { kind: 'output', outputId: 'boiling-water' } },
|
|
58
|
+
{ id: 'u-pasta', source: { ingredientId: 'pasta', kind: 'ingredient' } },
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
attention: 'active',
|
|
63
|
+
doneness: 'pale gold',
|
|
64
|
+
duration: { maxMinutes: 4, minMinutes: 4, raw: '4 min' },
|
|
65
|
+
id: 'sizzle',
|
|
66
|
+
instruction: 'Cook the garlic and chili in the oil over low heat.',
|
|
67
|
+
label: 'garlic oil',
|
|
68
|
+
outputs: [{ id: 'garlic-oil', name: 'Garlic oil' }],
|
|
69
|
+
uses: [
|
|
70
|
+
{ id: 'u-oil', source: { ingredientId: 'oil', kind: 'ingredient' } },
|
|
71
|
+
{ id: 'u-sliced', source: { kind: 'output', outputId: 'sliced-garlic' } },
|
|
72
|
+
{ id: 'u-chili', source: { ingredientId: 'chili', kind: 'ingredient' } },
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: 'drain',
|
|
77
|
+
instruction: 'Drain the pasta, saving a cup of the cooking water.',
|
|
78
|
+
label: 'draining',
|
|
79
|
+
outputs: [
|
|
80
|
+
{ id: 'drained', name: 'Drained pasta' },
|
|
81
|
+
{ id: 'pasta-water', name: 'Pasta water' },
|
|
82
|
+
],
|
|
83
|
+
uses: [{ id: 'u-drain', source: { kind: 'output', outputId: 'pasta-pot' } }],
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: 'toss',
|
|
87
|
+
instruction: 'Toss the pasta in the garlic oil with a splash of pasta water.',
|
|
88
|
+
label: 'tossing',
|
|
89
|
+
outputs: [{ id: 'tossed', name: 'Tossed pasta' }],
|
|
90
|
+
uses: [
|
|
91
|
+
{ id: 'u-drained', source: { kind: 'output', outputId: 'drained' } },
|
|
92
|
+
{ id: 'u-garlic-oil', source: { kind: 'output', outputId: 'garlic-oil' } },
|
|
93
|
+
{
|
|
94
|
+
id: 'u-pasta-water',
|
|
95
|
+
portion: 'a splash',
|
|
96
|
+
source: { kind: 'output', outputId: 'pasta-water' },
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
id: 'serve',
|
|
102
|
+
instruction: 'Finish with the parsley and Parmesan, and serve.',
|
|
103
|
+
kind: 'serve',
|
|
104
|
+
label: 'serving',
|
|
105
|
+
uses: [
|
|
106
|
+
{ id: 'u-tossed', source: { kind: 'output', outputId: 'tossed' } },
|
|
107
|
+
{ id: 'u-chopped', source: { kind: 'output', outputId: 'chopped-parsley' } },
|
|
108
|
+
{ id: 'u-cheese', source: { ingredientId: 'cheese', kind: 'ingredient' } },
|
|
109
|
+
],
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
title: 'Aglio e olio',
|
|
113
|
+
},
|
|
8
114
|
parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
|
|
115
|
+
render: args => <RecipeExample {...storyProps.parse(args)} />,
|
|
9
116
|
title: 'Kowalski/Recipe',
|
|
10
|
-
} satisfies Meta<typeof
|
|
117
|
+
} satisfies Meta<z.input<typeof storyProps>>
|
|
11
118
|
|
|
12
119
|
export default meta
|
|
13
|
-
export const Example:
|
|
14
|
-
args: {
|
|
120
|
+
export const Example: ExampleStory<typeof meta> = {
|
|
121
|
+
args: {
|
|
122
|
+
description:
|
|
123
|
+
'An instantiatable Recipe from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
|
|
124
|
+
enabled: false,
|
|
125
|
+
name: 'Recipe',
|
|
126
|
+
},
|
|
15
127
|
}
|
|
@@ -1,120 +1,11 @@
|
|
|
1
1
|
import { useTheme } from '@flickfyi/core'
|
|
2
2
|
import { theme } from '@flickfyi/core/examples/kowalski/theme'
|
|
3
|
-
import { Recipe } from '@flickfyi/core/kowalski'
|
|
3
|
+
import { Recipe, type RecipeProps } from '@flickfyi/core/kowalski'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
export default function RecipeExample({
|
|
6
|
+
data,
|
|
7
|
+
style,
|
|
8
|
+
}: Pick<RecipeProps, 'data' | 'style'>) {
|
|
8
9
|
useTheme(theme)
|
|
9
|
-
|
|
10
|
-
return (
|
|
11
|
-
<Recipe
|
|
12
|
-
ingredients={[
|
|
13
|
-
{ id: 'water', label: 'Well-salted water' },
|
|
14
|
-
{ amount: 200, id: 'pasta', label: 'Spaghetti', unit: 'g' },
|
|
15
|
-
{ amount: 4, id: 'oil', label: 'Olive oil', unit: 'tbsp' },
|
|
16
|
-
{ amount: 3, id: 'garlic', label: 'Garlic cloves' },
|
|
17
|
-
{ id: 'chili', label: 'Chili flakes', notes: ['optional'], unit: 'a pinch' },
|
|
18
|
-
{ id: 'parsley', label: 'Parsley', unit: 'a handful' },
|
|
19
|
-
{ id: 'cheese', label: 'Grated Parmesan', unit: 'to taste' },
|
|
20
|
-
]}
|
|
21
|
-
servings={2}
|
|
22
|
-
steps={[
|
|
23
|
-
{
|
|
24
|
-
attention: 'passive',
|
|
25
|
-
id: 'heat-water',
|
|
26
|
-
instruction: 'Bring a large pot of salted water to a boil.',
|
|
27
|
-
kind: 'setup',
|
|
28
|
-
label: 'water',
|
|
29
|
-
outputs: [{ id: 'boiling-water', name: 'Boiling water' }],
|
|
30
|
-
uses: [
|
|
31
|
-
{ id: 'u-water', source: { ingredientId: 'water', kind: 'ingredient' } },
|
|
32
|
-
],
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
id: 'slice',
|
|
36
|
-
instruction: 'Thinly slice the garlic and chop the parsley.',
|
|
37
|
-
label: 'slicing',
|
|
38
|
-
outputs: [
|
|
39
|
-
{ id: 'sliced-garlic', name: 'Sliced garlic' },
|
|
40
|
-
{ id: 'chopped-parsley', name: 'Chopped parsley' },
|
|
41
|
-
],
|
|
42
|
-
uses: [
|
|
43
|
-
{ id: 'u-garlic', source: { ingredientId: 'garlic', kind: 'ingredient' } },
|
|
44
|
-
{ id: 'u-parsley', source: { ingredientId: 'parsley', kind: 'ingredient' } },
|
|
45
|
-
],
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
attention: 'passive',
|
|
49
|
-
doneness: 'al dente',
|
|
50
|
-
duration: { maxMinutes: 10, minMinutes: 8, raw: '8–10 min' },
|
|
51
|
-
id: 'boil',
|
|
52
|
-
instruction: 'Cook the spaghetti until al dente.',
|
|
53
|
-
label: 'pasta',
|
|
54
|
-
outputs: [{ id: 'pasta-pot', name: 'Pasta in its water' }],
|
|
55
|
-
uses: [
|
|
56
|
-
{ id: 'u-pot', source: { kind: 'output', outputId: 'boiling-water' } },
|
|
57
|
-
{ id: 'u-pasta', source: { ingredientId: 'pasta', kind: 'ingredient' } },
|
|
58
|
-
],
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
attention: 'active',
|
|
62
|
-
doneness: 'pale gold',
|
|
63
|
-
duration: { maxMinutes: 4, minMinutes: 4, raw: '4 min' },
|
|
64
|
-
id: 'sizzle',
|
|
65
|
-
instruction: 'Cook the garlic and chili in the oil over low heat.',
|
|
66
|
-
label: 'garlic oil',
|
|
67
|
-
outputs: [{ id: 'garlic-oil', name: 'Garlic oil' }],
|
|
68
|
-
uses: [
|
|
69
|
-
{ id: 'u-oil', source: { ingredientId: 'oil', kind: 'ingredient' } },
|
|
70
|
-
{ id: 'u-sliced', source: { kind: 'output', outputId: 'sliced-garlic' } },
|
|
71
|
-
{ id: 'u-chili', source: { ingredientId: 'chili', kind: 'ingredient' } },
|
|
72
|
-
],
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
id: 'drain',
|
|
76
|
-
instruction: 'Drain the pasta, saving a cup of the cooking water.',
|
|
77
|
-
label: 'draining',
|
|
78
|
-
outputs: [
|
|
79
|
-
{ id: 'drained', name: 'Drained pasta' },
|
|
80
|
-
{ id: 'pasta-water', name: 'Pasta water' },
|
|
81
|
-
],
|
|
82
|
-
uses: [{ id: 'u-drain', source: { kind: 'output', outputId: 'pasta-pot' } }],
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
id: 'toss',
|
|
86
|
-
instruction: 'Toss the pasta in the garlic oil with a splash of pasta water.',
|
|
87
|
-
label: 'tossing',
|
|
88
|
-
outputs: [{ id: 'tossed', name: 'Tossed pasta' }],
|
|
89
|
-
uses: [
|
|
90
|
-
{ id: 'u-drained', source: { kind: 'output', outputId: 'drained' } },
|
|
91
|
-
{ id: 'u-garlic-oil', source: { kind: 'output', outputId: 'garlic-oil' } },
|
|
92
|
-
{
|
|
93
|
-
id: 'u-pasta-water',
|
|
94
|
-
portion: 'a splash',
|
|
95
|
-
source: { kind: 'output', outputId: 'pasta-water' },
|
|
96
|
-
},
|
|
97
|
-
],
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
id: 'serve',
|
|
101
|
-
instruction: 'Finish with the parsley and Parmesan, and serve.',
|
|
102
|
-
kind: 'serve',
|
|
103
|
-
label: 'serving',
|
|
104
|
-
uses: [
|
|
105
|
-
{ id: 'u-tossed', source: { kind: 'output', outputId: 'tossed' } },
|
|
106
|
-
{ id: 'u-chopped', source: { kind: 'output', outputId: 'chopped-parsley' } },
|
|
107
|
-
{ id: 'u-cheese', source: { ingredientId: 'cheese', kind: 'ingredient' } },
|
|
108
|
-
],
|
|
109
|
-
},
|
|
110
|
-
]}
|
|
111
|
-
title="Aglio e olio"
|
|
112
|
-
/>
|
|
113
|
-
)
|
|
10
|
+
return <Recipe data={data} style={style} />
|
|
114
11
|
}
|
|
115
|
-
|
|
116
|
-
export const exampleMetadata = {
|
|
117
|
-
description:
|
|
118
|
-
'An instantiatable Recipe from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
|
|
119
|
-
name: 'Recipe',
|
|
120
|
-
} satisfies ExampleMetadata
|
|
@@ -1,15 +1,32 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ReminderData } from '@flickfyi/core/kowalski/catalog'
|
|
2
|
+
import type { Meta } from '@storybook/react-vite'
|
|
3
|
+
import type { z } from 'zod/v4'
|
|
4
|
+
|
|
5
|
+
import { type ExampleStory, schemaArgTypes } from '@flickfyi/core/examples/metadata'
|
|
2
6
|
|
|
3
7
|
import ReminderExample from './reminder'
|
|
4
8
|
import exampleSource from './reminder.tsx?raw'
|
|
5
9
|
|
|
10
|
+
// Keep catalog metadata outside the component's content.
|
|
11
|
+
const storyProps = ReminderData.strip().transform(data => ({ data }))
|
|
6
12
|
const meta = {
|
|
7
|
-
|
|
13
|
+
argTypes: { ...schemaArgTypes(ReminderData), timeZone: { control: 'text' } },
|
|
14
|
+
args: {
|
|
15
|
+
dueAt: '2026-11-06T17:00:00Z',
|
|
16
|
+
recurrence: 'weekly',
|
|
17
|
+
title: 'Water the plants',
|
|
18
|
+
},
|
|
8
19
|
parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
|
|
20
|
+
render: args => <ReminderExample {...storyProps.parse(args)} />,
|
|
9
21
|
title: 'Kowalski/Reminder',
|
|
10
|
-
} satisfies Meta<typeof
|
|
22
|
+
} satisfies Meta<z.input<typeof storyProps>>
|
|
11
23
|
|
|
12
24
|
export default meta
|
|
13
|
-
export const Example:
|
|
14
|
-
args: {
|
|
25
|
+
export const Example: ExampleStory<typeof meta> = {
|
|
26
|
+
args: {
|
|
27
|
+
description:
|
|
28
|
+
'An instantiatable Reminder from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
|
|
29
|
+
enabled: false,
|
|
30
|
+
name: 'Reminder',
|
|
31
|
+
},
|
|
15
32
|
}
|
|
@@ -1,23 +1,11 @@
|
|
|
1
1
|
import { useTheme } from '@flickfyi/core'
|
|
2
2
|
import { theme } from '@flickfyi/core/examples/kowalski/theme'
|
|
3
|
-
import { Reminder } from '@flickfyi/core/kowalski'
|
|
3
|
+
import { Reminder, type ReminderProps } from '@flickfyi/core/kowalski'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
export default function ReminderExample({
|
|
6
|
+
data,
|
|
7
|
+
style,
|
|
8
|
+
}: Pick<ReminderProps, 'data' | 'style'>) {
|
|
8
9
|
useTheme(theme)
|
|
9
|
-
|
|
10
|
-
return (
|
|
11
|
-
<Reminder
|
|
12
|
-
dueAt="2026-11-06T17:00:00Z"
|
|
13
|
-
recurrence="weekly"
|
|
14
|
-
title="Water the plants"
|
|
15
|
-
/>
|
|
16
|
-
)
|
|
10
|
+
return <Reminder data={data} style={style} />
|
|
17
11
|
}
|
|
18
|
-
|
|
19
|
-
export const exampleMetadata = {
|
|
20
|
-
description:
|
|
21
|
-
'An instantiatable Reminder from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
|
|
22
|
-
name: 'Reminder',
|
|
23
|
-
} satisfies ExampleMetadata
|
|
@@ -1,15 +1,36 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { RotationData } from '@flickfyi/core/kowalski/catalog'
|
|
2
|
+
import type { Meta } from '@storybook/react-vite'
|
|
3
|
+
import type { z } from 'zod/v4'
|
|
4
|
+
|
|
5
|
+
import { type ExampleStory, schemaArgTypes } from '@flickfyi/core/examples/metadata'
|
|
2
6
|
|
|
3
7
|
import RotationExample from './rotation'
|
|
4
8
|
import exampleSource from './rotation.tsx?raw'
|
|
5
9
|
|
|
10
|
+
// Keep catalog metadata outside the component's content.
|
|
11
|
+
const storyProps = RotationData.strip().transform(data => ({ data }))
|
|
6
12
|
const meta = {
|
|
7
|
-
|
|
13
|
+
argTypes: schemaArgTypes(RotationData),
|
|
14
|
+
args: {
|
|
15
|
+
people: [
|
|
16
|
+
{ id: 'ava', label: 'Ava' },
|
|
17
|
+
{ id: 'ben', label: 'Ben' },
|
|
18
|
+
{ id: 'cleo', label: 'Cleo' },
|
|
19
|
+
],
|
|
20
|
+
task: 'Take out the recycling',
|
|
21
|
+
title: 'Whose turn',
|
|
22
|
+
},
|
|
8
23
|
parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
|
|
24
|
+
render: args => <RotationExample {...storyProps.parse(args)} />,
|
|
9
25
|
title: 'Kowalski/Rotation',
|
|
10
|
-
} satisfies Meta<typeof
|
|
26
|
+
} satisfies Meta<z.input<typeof storyProps>>
|
|
11
27
|
|
|
12
28
|
export default meta
|
|
13
|
-
export const Example:
|
|
14
|
-
args: {
|
|
29
|
+
export const Example: ExampleStory<typeof meta> = {
|
|
30
|
+
args: {
|
|
31
|
+
description:
|
|
32
|
+
'An instantiatable Rotation from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
|
|
33
|
+
enabled: false,
|
|
34
|
+
name: 'Rotation',
|
|
35
|
+
},
|
|
15
36
|
}
|
|
@@ -1,27 +1,11 @@
|
|
|
1
1
|
import { useTheme } from '@flickfyi/core'
|
|
2
2
|
import { theme } from '@flickfyi/core/examples/kowalski/theme'
|
|
3
|
-
import { Rotation } from '@flickfyi/core/kowalski'
|
|
3
|
+
import { Rotation, type RotationProps } from '@flickfyi/core/kowalski'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
export default function RotationExample({
|
|
6
|
+
data,
|
|
7
|
+
style,
|
|
8
|
+
}: Pick<RotationProps, 'data' | 'style'>) {
|
|
8
9
|
useTheme(theme)
|
|
9
|
-
|
|
10
|
-
return (
|
|
11
|
-
<Rotation
|
|
12
|
-
people={[
|
|
13
|
-
{ id: 'ava', label: 'Ava' },
|
|
14
|
-
{ id: 'ben', label: 'Ben' },
|
|
15
|
-
{ id: 'cleo', label: 'Cleo' },
|
|
16
|
-
]}
|
|
17
|
-
task="Take out the recycling"
|
|
18
|
-
title="Whose turn"
|
|
19
|
-
/>
|
|
20
|
-
)
|
|
10
|
+
return <Rotation data={data} style={style} />
|
|
21
11
|
}
|
|
22
|
-
|
|
23
|
-
export const exampleMetadata = {
|
|
24
|
-
description:
|
|
25
|
-
'An instantiatable Rotation from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
|
|
26
|
-
name: 'Rotation',
|
|
27
|
-
} satisfies ExampleMetadata
|
|
@@ -1,15 +1,36 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ScoreboardData } from '@flickfyi/core/kowalski/catalog'
|
|
2
|
+
import type { Meta } from '@storybook/react-vite'
|
|
3
|
+
import type { z } from 'zod/v4'
|
|
4
|
+
|
|
5
|
+
import { type ExampleStory, schemaArgTypes } from '@flickfyi/core/examples/metadata'
|
|
2
6
|
|
|
3
7
|
import ScoreboardExample from './scoreboard'
|
|
4
8
|
import exampleSource from './scoreboard.tsx?raw'
|
|
5
9
|
|
|
10
|
+
// Keep catalog metadata outside the component's content.
|
|
11
|
+
const storyProps = ScoreboardData.strip().transform(data => ({ data }))
|
|
6
12
|
const meta = {
|
|
7
|
-
|
|
13
|
+
argTypes: schemaArgTypes(ScoreboardData),
|
|
14
|
+
args: {
|
|
15
|
+
players: [
|
|
16
|
+
{ id: 'maya', label: 'Maya' },
|
|
17
|
+
{ id: 'theo', label: 'Theo' },
|
|
18
|
+
{ id: 'nina', label: 'Nina' },
|
|
19
|
+
],
|
|
20
|
+
step: 1,
|
|
21
|
+
title: 'Game night',
|
|
22
|
+
},
|
|
8
23
|
parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
|
|
24
|
+
render: args => <ScoreboardExample {...storyProps.parse(args)} />,
|
|
9
25
|
title: 'Kowalski/Scoreboard',
|
|
10
|
-
} satisfies Meta<typeof
|
|
26
|
+
} satisfies Meta<z.input<typeof storyProps>>
|
|
11
27
|
|
|
12
28
|
export default meta
|
|
13
|
-
export const Example:
|
|
14
|
-
args: {
|
|
29
|
+
export const Example: ExampleStory<typeof meta> = {
|
|
30
|
+
args: {
|
|
31
|
+
description:
|
|
32
|
+
'An instantiatable Scoreboard from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
|
|
33
|
+
enabled: false,
|
|
34
|
+
name: 'Scoreboard',
|
|
35
|
+
},
|
|
15
36
|
}
|
|
@@ -1,26 +1,11 @@
|
|
|
1
1
|
import { useTheme } from '@flickfyi/core'
|
|
2
2
|
import { theme } from '@flickfyi/core/examples/kowalski/theme'
|
|
3
|
-
import { Scoreboard } from '@flickfyi/core/kowalski'
|
|
3
|
+
import { Scoreboard, type ScoreboardProps } from '@flickfyi/core/kowalski'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
export default function ScoreboardExample({
|
|
6
|
+
data,
|
|
7
|
+
style,
|
|
8
|
+
}: Pick<ScoreboardProps, 'data' | 'style'>) {
|
|
8
9
|
useTheme(theme)
|
|
9
|
-
|
|
10
|
-
return (
|
|
11
|
-
<Scoreboard
|
|
12
|
-
players={[
|
|
13
|
-
{ id: 'maya', label: 'Maya' },
|
|
14
|
-
{ id: 'theo', label: 'Theo' },
|
|
15
|
-
{ id: 'nina', label: 'Nina' },
|
|
16
|
-
]}
|
|
17
|
-
title="Game night"
|
|
18
|
-
/>
|
|
19
|
-
)
|
|
10
|
+
return <Scoreboard data={data} style={style} />
|
|
20
11
|
}
|
|
21
|
-
|
|
22
|
-
export const exampleMetadata = {
|
|
23
|
-
description:
|
|
24
|
-
'An instantiatable Scoreboard from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
|
|
25
|
-
name: 'Scoreboard',
|
|
26
|
-
} satisfies ExampleMetadata
|
package/node_modules/@flickfyi/core/examples/kowalski/shopping-list/shopping-list.stories.tsx
CHANGED
|
@@ -1,15 +1,37 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ShoppingListData } from '@flickfyi/core/kowalski/catalog'
|
|
2
|
+
import type { Meta } from '@storybook/react-vite'
|
|
3
|
+
import type { z } from 'zod/v4'
|
|
4
|
+
|
|
5
|
+
import { type ExampleStory, schemaArgTypes } from '@flickfyi/core/examples/metadata'
|
|
2
6
|
|
|
3
7
|
import ShoppingListExample from './shopping-list'
|
|
4
8
|
import exampleSource from './shopping-list.tsx?raw'
|
|
5
9
|
|
|
10
|
+
// Keep catalog metadata outside the component's content.
|
|
11
|
+
const storyProps = ShoppingListData.strip().transform(data => ({ data }))
|
|
6
12
|
const meta = {
|
|
7
|
-
|
|
13
|
+
argTypes: schemaArgTypes(ShoppingListData),
|
|
14
|
+
args: {
|
|
15
|
+
currency: 'USD',
|
|
16
|
+
items: [
|
|
17
|
+
{ id: 'eggs', label: 'Eggs', price: 4.5 },
|
|
18
|
+
{ id: 'bread', label: 'Sourdough', price: 6 },
|
|
19
|
+
{ id: 'apples', label: 'Apples', price: 0.8, quantity: 6 },
|
|
20
|
+
{ id: 'basil', label: 'Basil' },
|
|
21
|
+
],
|
|
22
|
+
title: 'Saturday market',
|
|
23
|
+
},
|
|
8
24
|
parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
|
|
9
|
-
|
|
10
|
-
|
|
25
|
+
render: args => <ShoppingListExample {...storyProps.parse(args)} />,
|
|
26
|
+
title: 'Kowalski/Shopping list',
|
|
27
|
+
} satisfies Meta<z.input<typeof storyProps>>
|
|
11
28
|
|
|
12
29
|
export default meta
|
|
13
|
-
export const Example:
|
|
14
|
-
args: {
|
|
30
|
+
export const Example: ExampleStory<typeof meta> = {
|
|
31
|
+
args: {
|
|
32
|
+
description:
|
|
33
|
+
'An instantiatable ShoppingList from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
|
|
34
|
+
enabled: false,
|
|
35
|
+
name: 'Shopping list',
|
|
36
|
+
},
|
|
15
37
|
}
|
|
@@ -1,27 +1,11 @@
|
|
|
1
1
|
import { useTheme } from '@flickfyi/core'
|
|
2
2
|
import { theme } from '@flickfyi/core/examples/kowalski/theme'
|
|
3
|
-
import { ShoppingList } from '@flickfyi/core/kowalski'
|
|
3
|
+
import { ShoppingList, type ShoppingListProps } from '@flickfyi/core/kowalski'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
export default function ShoppingListExample({
|
|
6
|
+
data,
|
|
7
|
+
style,
|
|
8
|
+
}: Pick<ShoppingListProps, 'data' | 'style'>) {
|
|
8
9
|
useTheme(theme)
|
|
9
|
-
|
|
10
|
-
return (
|
|
11
|
-
<ShoppingList
|
|
12
|
-
items={[
|
|
13
|
-
{ id: 'eggs', label: 'Eggs', price: 4.5 },
|
|
14
|
-
{ id: 'bread', label: 'Sourdough', price: 6 },
|
|
15
|
-
{ id: 'apples', label: 'Apples', price: 0.8, quantity: 6 },
|
|
16
|
-
{ id: 'basil', label: 'Basil' },
|
|
17
|
-
]}
|
|
18
|
-
title="Saturday market"
|
|
19
|
-
/>
|
|
20
|
-
)
|
|
10
|
+
return <ShoppingList data={data} style={style} />
|
|
21
11
|
}
|
|
22
|
-
|
|
23
|
-
export const exampleMetadata = {
|
|
24
|
-
description:
|
|
25
|
-
'An instantiatable ShoppingList from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
|
|
26
|
-
name: 'ShoppingList',
|
|
27
|
-
} satisfies ExampleMetadata
|
|
@@ -1,15 +1,36 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { TaskBoardData } from '@flickfyi/core/kowalski/catalog'
|
|
2
|
+
import type { Meta } from '@storybook/react-vite'
|
|
3
|
+
import type { z } from 'zod/v4'
|
|
4
|
+
|
|
5
|
+
import { type ExampleStory, schemaArgTypes } from '@flickfyi/core/examples/metadata'
|
|
2
6
|
|
|
3
7
|
import TaskBoardExample from './task-board'
|
|
4
8
|
import exampleSource from './task-board.tsx?raw'
|
|
5
9
|
|
|
10
|
+
// Keep catalog metadata outside the component's content.
|
|
11
|
+
const storyProps = TaskBoardData.strip().transform(data => ({ data }))
|
|
6
12
|
const meta = {
|
|
7
|
-
|
|
13
|
+
argTypes: schemaArgTypes(TaskBoardData),
|
|
14
|
+
args: {
|
|
15
|
+
tasks: [
|
|
16
|
+
{ id: 'invite', label: 'Send the invitations' },
|
|
17
|
+
{ id: 'venue', label: 'Confirm the venue' },
|
|
18
|
+
{ id: 'cake', label: 'Order the cake' },
|
|
19
|
+
{ id: 'playlist', label: 'Make a playlist' },
|
|
20
|
+
],
|
|
21
|
+
title: 'Birthday party',
|
|
22
|
+
},
|
|
8
23
|
parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
|
|
9
|
-
|
|
10
|
-
|
|
24
|
+
render: args => <TaskBoardExample {...storyProps.parse(args)} />,
|
|
25
|
+
title: 'Kowalski/Task board',
|
|
26
|
+
} satisfies Meta<z.input<typeof storyProps>>
|
|
11
27
|
|
|
12
28
|
export default meta
|
|
13
|
-
export const Example:
|
|
14
|
-
args: {
|
|
29
|
+
export const Example: ExampleStory<typeof meta> = {
|
|
30
|
+
args: {
|
|
31
|
+
description:
|
|
32
|
+
'An instantiatable TaskBoard from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
|
|
33
|
+
enabled: false,
|
|
34
|
+
name: 'Task board',
|
|
35
|
+
},
|
|
15
36
|
}
|
|
@@ -1,27 +1,11 @@
|
|
|
1
1
|
import { useTheme } from '@flickfyi/core'
|
|
2
2
|
import { theme } from '@flickfyi/core/examples/kowalski/theme'
|
|
3
|
-
import { TaskBoard } from '@flickfyi/core/kowalski'
|
|
3
|
+
import { TaskBoard, type TaskBoardProps } from '@flickfyi/core/kowalski'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
export default function TaskBoardExample({
|
|
6
|
+
data,
|
|
7
|
+
style,
|
|
8
|
+
}: Pick<TaskBoardProps, 'data' | 'style'>) {
|
|
8
9
|
useTheme(theme)
|
|
9
|
-
|
|
10
|
-
return (
|
|
11
|
-
<TaskBoard
|
|
12
|
-
tasks={[
|
|
13
|
-
{ id: 'invite', label: 'Send the invitations' },
|
|
14
|
-
{ id: 'venue', label: 'Confirm the venue' },
|
|
15
|
-
{ id: 'cake', label: 'Order the cake' },
|
|
16
|
-
{ id: 'playlist', label: 'Make a playlist' },
|
|
17
|
-
]}
|
|
18
|
-
title="Birthday party"
|
|
19
|
-
/>
|
|
20
|
-
)
|
|
10
|
+
return <TaskBoard data={data} style={style} />
|
|
21
11
|
}
|
|
22
|
-
|
|
23
|
-
export const exampleMetadata = {
|
|
24
|
-
description:
|
|
25
|
-
'An instantiatable TaskBoard from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
|
|
26
|
-
name: 'TaskBoard',
|
|
27
|
-
} satisfies ExampleMetadata
|