@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.
Files changed (243) hide show
  1. package/dist/{api-client-CAg1b8Bh.js → api-client-nn4U_Vfn.js} +1 -1
  2. package/dist/{app-DpM5nhb9.js → app-COXGJhrt.js} +3 -3
  3. package/dist/{bundler-DNrDcqyk.js → bundler-CW4YC73e.js} +4 -2
  4. package/dist/cli.js +11 -11
  5. package/dist/{delegate-DcVye0KE.js → delegate-aUVluBjB.js} +2 -2
  6. package/dist/{generate-B1l1z_FZ.js → generate-BeL1QPDi.js} +1 -1
  7. package/dist/{preview-Dqn_Tq6K.js → preview-DTVM8Csb.js} +2 -2
  8. package/dist/{publish-BmDqO1xU.js → publish-BJG-s-w5.js} +4 -4
  9. package/dist/{pull-CO80DMn8.js → pull-B_Yfjpi2.js} +1 -1
  10. package/dist/{save-8crfOeo1.js → save-UrfgmK2-.js} +2 -2
  11. package/dist/{sdk-app-BXWrf_pf.js → sdk-app-BAxznAf9.js} +3 -3
  12. package/dist/{sdk-deploy-CaEonlvx.js → sdk-deploy-D1wgQxse.js} +3 -3
  13. package/dist/{sdk-generation-CF8ATbrL.js → sdk-generation-CLQ-QrVM.js} +1 -1
  14. package/dist/{sdk-project-CKV3U3u9.js → sdk-project-BaO0fqhW.js} +1 -1
  15. package/dist/{use-auth-B6nwU2rp.js → use-auth-CtM4_BAY.js} +1 -1
  16. package/node_modules/@flickfyi/biscuit/.turbo/turbo-build.log +4 -4
  17. package/node_modules/@flickfyi/core/README.md +19 -9
  18. package/node_modules/@flickfyi/core/dist/chunks/{default-CuxDsQoM.js → default-BTmKidHV.js} +1 -1
  19. package/node_modules/@flickfyi/core/dist/chunks/{default-BB6YexEH.cjs → default-JhTq5I_y.cjs} +1 -1
  20. package/node_modules/@flickfyi/core/dist/chunks/{define-CUJRqVKY.cjs → define-BKCRhpuY.cjs} +1 -1
  21. package/node_modules/@flickfyi/core/dist/chunks/{define-e_VqSs4M.js → define-DZXgUsy7.js} +5 -5
  22. package/node_modules/@flickfyi/core/dist/kowalski/catalog.cjs +1 -1
  23. package/node_modules/@flickfyi/core/dist/kowalski/catalog.js +728 -549
  24. package/node_modules/@flickfyi/core/dist/kowalski/index.cjs +5 -5
  25. package/node_modules/@flickfyi/core/dist/kowalski/index.js +4297 -3700
  26. package/node_modules/@flickfyi/core/dist/kowalski/schemas.cjs +1 -0
  27. package/node_modules/@flickfyi/core/dist/kowalski/schemas.js +637 -0
  28. package/node_modules/@flickfyi/core/dist/kowalski-catalog.css +516 -0
  29. package/node_modules/@flickfyi/core/dist/kowalski.css +10 -0
  30. package/node_modules/@flickfyi/core/dist/themes/athletic/athletic.cjs +1 -1
  31. package/node_modules/@flickfyi/core/dist/themes/athletic/athletic.js +1 -1
  32. package/node_modules/@flickfyi/core/dist/themes/compact/compact.cjs +1 -1
  33. package/node_modules/@flickfyi/core/dist/themes/compact/compact.js +1 -1
  34. package/node_modules/@flickfyi/core/dist/themes/default/default.cjs +1 -1
  35. package/node_modules/@flickfyi/core/dist/themes/default/default.js +1 -1
  36. package/node_modules/@flickfyi/core/dist/themes/editorial/editorial.cjs +1 -1
  37. package/node_modules/@flickfyi/core/dist/themes/editorial/editorial.js +1 -1
  38. package/node_modules/@flickfyi/core/dist/themes/handwritten/handwritten.cjs +1 -1
  39. package/node_modules/@flickfyi/core/dist/themes/handwritten/handwritten.js +1 -1
  40. package/node_modules/@flickfyi/core/dist/themes/index.cjs +1 -1
  41. package/node_modules/@flickfyi/core/dist/themes/index.js +1 -1
  42. package/node_modules/@flickfyi/core/dist/themes/kids/kids.cjs +1 -1
  43. package/node_modules/@flickfyi/core/dist/themes/kids/kids.js +1 -1
  44. package/node_modules/@flickfyi/core/dist/themes/rounded/rounded.cjs +1 -1
  45. package/node_modules/@flickfyi/core/dist/themes/rounded/rounded.js +1 -1
  46. package/node_modules/@flickfyi/core/dist/themes/technical/technical.cjs +1 -1
  47. package/node_modules/@flickfyi/core/dist/themes/technical/technical.js +1 -1
  48. package/node_modules/@flickfyi/core/dist-types/hooks/use-feature-store/index.d.ts +43 -0
  49. package/node_modules/@flickfyi/core/dist-types/kowalski/calculations.d.ts +57 -3
  50. package/node_modules/@flickfyi/core/dist-types/kowalski/calculator.d.ts +7 -6
  51. package/node_modules/@flickfyi/core/dist-types/kowalski/catalog.d.cts +524 -809
  52. package/node_modules/@flickfyi/core/dist-types/kowalski/catalog.d.ts +524 -809
  53. package/node_modules/@flickfyi/core/dist-types/kowalski/components/bill-split.d.ts +38 -0
  54. package/node_modules/@flickfyi/core/dist-types/kowalski/components/bookmark.d.ts +48 -0
  55. package/node_modules/@flickfyi/core/dist-types/kowalski/components/budget.d.ts +39 -0
  56. package/node_modules/@flickfyi/core/dist-types/kowalski/components/calculator.d.ts +62 -0
  57. package/node_modules/@flickfyi/core/dist-types/kowalski/components/checklist.d.ts +35 -0
  58. package/node_modules/@flickfyi/core/dist-types/kowalski/components/color-palette.d.ts +32 -0
  59. package/node_modules/@flickfyi/core/dist-types/kowalski/components/contact.d.ts +41 -0
  60. package/node_modules/@flickfyi/core/dist-types/kowalski/components/countdown.d.ts +34 -0
  61. package/node_modules/@flickfyi/core/dist-types/kowalski/components/event.d.ts +43 -0
  62. package/node_modules/@flickfyi/core/dist-types/kowalski/components/expense.d.ts +40 -0
  63. package/node_modules/@flickfyi/core/dist-types/kowalski/components/goal.d.ts +36 -0
  64. package/node_modules/@flickfyi/core/dist-types/kowalski/components/habit.d.ts +57 -0
  65. package/node_modules/@flickfyi/core/dist-types/kowalski/components/ledger.d.ts +43 -0
  66. package/node_modules/@flickfyi/core/dist-types/kowalski/components/note.d.ts +35 -0
  67. package/node_modules/@flickfyi/core/dist-types/kowalski/components/poll.d.ts +41 -0
  68. package/node_modules/@flickfyi/core/dist-types/kowalski/components/random-picker.d.ts +69 -0
  69. package/node_modules/@flickfyi/core/dist-types/kowalski/components/rating.d.ts +33 -0
  70. package/node_modules/@flickfyi/core/dist-types/kowalski/components/reminder.d.ts +48 -0
  71. package/node_modules/@flickfyi/core/dist-types/kowalski/components/rotation.d.ts +39 -0
  72. package/node_modules/@flickfyi/core/dist-types/kowalski/components/scoreboard.d.ts +37 -0
  73. package/node_modules/@flickfyi/core/dist-types/kowalski/components/shopping-list.d.ts +41 -0
  74. package/node_modules/@flickfyi/core/dist-types/kowalski/components/task-board.d.ts +39 -0
  75. package/node_modules/@flickfyi/core/dist-types/kowalski/components/time-zone.d.ts +34 -0
  76. package/node_modules/@flickfyi/core/dist-types/kowalski/components/timer.d.ts +43 -0
  77. package/node_modules/@flickfyi/core/dist-types/kowalski/components/trip.d.ts +61 -0
  78. package/node_modules/@flickfyi/core/dist-types/kowalski/components/unit-converter.d.ts +106 -0
  79. package/node_modules/@flickfyi/core/dist-types/kowalski/create-schemas.d.ts +6 -0
  80. package/node_modules/@flickfyi/core/dist-types/kowalski/date-time.d.ts +1 -1
  81. package/node_modules/@flickfyi/core/dist-types/kowalski/everyday.d.ts +28 -8
  82. package/node_modules/@flickfyi/core/dist-types/kowalski/feature-schema.d.ts +65 -0
  83. package/node_modules/@flickfyi/core/dist-types/kowalski/format.d.ts +4 -0
  84. package/node_modules/@flickfyi/core/dist-types/kowalski/fortune.d.ts +21 -0
  85. package/node_modules/@flickfyi/core/dist-types/kowalski/frame.d.ts +4 -4
  86. package/node_modules/@flickfyi/core/dist-types/kowalski/index.d.cts +31 -7
  87. package/node_modules/@flickfyi/core/dist-types/kowalski/index.d.ts +31 -7
  88. package/node_modules/@flickfyi/core/dist-types/kowalski/lesson.d.ts +89 -0
  89. package/node_modules/@flickfyi/core/dist-types/kowalski/recipe.d.ts +129 -8
  90. package/node_modules/@flickfyi/core/dist-types/kowalski/schemas.d.cts +4 -0
  91. package/node_modules/@flickfyi/core/dist-types/kowalski/schemas.d.ts +4 -0
  92. package/node_modules/@flickfyi/core/dist-types/kowalski/time-since.d.ts +34 -0
  93. package/node_modules/@flickfyi/core/examples/example-metadata.ts +19 -2
  94. package/node_modules/@flickfyi/core/examples/kowalski/bill-split/bill-split.stories.tsx +25 -6
  95. package/node_modules/@flickfyi/core/examples/kowalski/bill-split/bill-split.tsx +6 -12
  96. package/node_modules/@flickfyi/core/examples/kowalski/bookmark/bookmark.stories.tsx +22 -5
  97. package/node_modules/@flickfyi/core/examples/kowalski/bookmark/bookmark.tsx +6 -18
  98. package/node_modules/@flickfyi/core/examples/kowalski/budget/budget.stories.tsx +26 -5
  99. package/node_modules/@flickfyi/core/examples/kowalski/budget/budget.tsx +6 -21
  100. package/node_modules/@flickfyi/core/examples/kowalski/calculator/calculator.stories.tsx +18 -5
  101. package/node_modules/@flickfyi/core/examples/kowalski/calculator/calculator.tsx +6 -19
  102. package/node_modules/@flickfyi/core/examples/kowalski/checklist/checklist.stories.tsx +25 -5
  103. package/node_modules/@flickfyi/core/examples/kowalski/checklist/checklist.tsx +6 -21
  104. package/node_modules/@flickfyi/core/examples/kowalski/color-palette/color-palette.stories.tsx +19 -6
  105. package/node_modules/@flickfyi/core/examples/kowalski/color-palette/color-palette.tsx +6 -17
  106. package/node_modules/@flickfyi/core/examples/kowalski/contact/contact.stories.tsx +30 -5
  107. package/node_modules/@flickfyi/core/examples/kowalski/contact/contact.tsx +6 -18
  108. package/node_modules/@flickfyi/core/examples/kowalski/countdown/countdown.stories.tsx +22 -5
  109. package/node_modules/@flickfyi/core/examples/kowalski/countdown/countdown.tsx +6 -18
  110. package/node_modules/@flickfyi/core/examples/kowalski/event/event.stories.tsx +23 -5
  111. package/node_modules/@flickfyi/core/examples/kowalski/event/event.tsx +6 -19
  112. package/node_modules/@flickfyi/core/examples/kowalski/expense/expense.stories.tsx +23 -5
  113. package/node_modules/@flickfyi/core/examples/kowalski/expense/expense.tsx +6 -18
  114. package/node_modules/@flickfyi/core/examples/kowalski/fortune/fortune.stories.tsx +61 -0
  115. package/node_modules/@flickfyi/core/examples/kowalski/fortune/fortune.tsx +11 -0
  116. package/node_modules/@flickfyi/core/examples/kowalski/goal/goal.stories.tsx +18 -5
  117. package/node_modules/@flickfyi/core/examples/kowalski/goal/goal.tsx +3 -19
  118. package/node_modules/@flickfyi/core/examples/kowalski/habit/habit.stories.tsx +22 -5
  119. package/node_modules/@flickfyi/core/examples/kowalski/habit/habit.tsx +6 -18
  120. package/node_modules/@flickfyi/core/examples/kowalski/ledger/ledger.stories.tsx +25 -5
  121. package/node_modules/@flickfyi/core/examples/kowalski/ledger/ledger.tsx +6 -20
  122. package/node_modules/@flickfyi/core/examples/kowalski/lesson/lesson.stories.tsx +99 -0
  123. package/node_modules/@flickfyi/core/examples/kowalski/lesson/lesson.tsx +11 -0
  124. package/node_modules/@flickfyi/core/examples/kowalski/note/note.stories.tsx +21 -5
  125. package/node_modules/@flickfyi/core/examples/kowalski/note/note.tsx +3 -17
  126. package/node_modules/@flickfyi/core/examples/kowalski/poll/poll.stories.tsx +26 -5
  127. package/node_modules/@flickfyi/core/examples/kowalski/poll/poll.tsx +3 -21
  128. package/node_modules/@flickfyi/core/examples/kowalski/random-picker/random-picker.stories.tsx +37 -6
  129. package/node_modules/@flickfyi/core/examples/kowalski/random-picker/random-picker.tsx +6 -18
  130. package/node_modules/@flickfyi/core/examples/kowalski/rating/rating.stories.tsx +18 -5
  131. package/node_modules/@flickfyi/core/examples/kowalski/rating/rating.tsx +6 -14
  132. package/node_modules/@flickfyi/core/examples/kowalski/recipe/recipe.stories.tsx +117 -5
  133. package/node_modules/@flickfyi/core/examples/kowalski/recipe/recipe.tsx +6 -115
  134. package/node_modules/@flickfyi/core/examples/kowalski/reminder/reminder.stories.tsx +22 -5
  135. package/node_modules/@flickfyi/core/examples/kowalski/reminder/reminder.tsx +6 -18
  136. package/node_modules/@flickfyi/core/examples/kowalski/rotation/rotation.stories.tsx +26 -5
  137. package/node_modules/@flickfyi/core/examples/kowalski/rotation/rotation.tsx +6 -22
  138. package/node_modules/@flickfyi/core/examples/kowalski/scoreboard/scoreboard.stories.tsx +26 -5
  139. package/node_modules/@flickfyi/core/examples/kowalski/scoreboard/scoreboard.tsx +6 -21
  140. package/node_modules/@flickfyi/core/examples/kowalski/shopping-list/shopping-list.stories.tsx +28 -6
  141. package/node_modules/@flickfyi/core/examples/kowalski/shopping-list/shopping-list.tsx +6 -22
  142. package/node_modules/@flickfyi/core/examples/kowalski/task-board/task-board.stories.tsx +27 -6
  143. package/node_modules/@flickfyi/core/examples/kowalski/task-board/task-board.tsx +6 -22
  144. package/node_modules/@flickfyi/core/examples/kowalski/time-since/time-since.stories.tsx +33 -0
  145. package/node_modules/@flickfyi/core/examples/kowalski/time-since/time-since.tsx +12 -0
  146. package/node_modules/@flickfyi/core/examples/kowalski/time-zone/time-zone.stories.tsx +22 -6
  147. package/node_modules/@flickfyi/core/examples/kowalski/time-zone/time-zone.tsx +6 -17
  148. package/node_modules/@flickfyi/core/examples/kowalski/timer/timer.stories.tsx +18 -5
  149. package/node_modules/@flickfyi/core/examples/kowalski/timer/timer.tsx +6 -18
  150. package/node_modules/@flickfyi/core/examples/kowalski/trip/trip.stories.tsx +25 -5
  151. package/node_modules/@flickfyi/core/examples/kowalski/trip/trip.tsx +3 -21
  152. package/node_modules/@flickfyi/core/examples/kowalski/unit-converter/unit-converter.stories.tsx +19 -6
  153. package/node_modules/@flickfyi/core/examples/kowalski/unit-converter/unit-converter.tsx +6 -19
  154. package/node_modules/@flickfyi/core/examples/parrott/calculator/calculator.stories.tsx +10 -3
  155. package/node_modules/@flickfyi/core/examples/parrott/calculator/calculator.tsx +2 -13
  156. package/node_modules/@flickfyi/core/examples/parrott/checklist/checklist.stories.tsx +10 -3
  157. package/node_modules/@flickfyi/core/examples/parrott/checklist/checklist.tsx +0 -8
  158. package/node_modules/@flickfyi/core/examples/parrott/countdown/countdown.stories.tsx +10 -3
  159. package/node_modules/@flickfyi/core/examples/parrott/countdown/countdown.tsx +0 -8
  160. package/node_modules/@flickfyi/core/examples/parrott/counter/counter.stories.tsx +10 -3
  161. package/node_modules/@flickfyi/core/examples/parrott/counter/counter.tsx +0 -8
  162. package/node_modules/@flickfyi/core/examples/parrott/fortune/fortune.stories.tsx +10 -3
  163. package/node_modules/@flickfyi/core/examples/parrott/fortune/fortune.tsx +0 -8
  164. package/node_modules/@flickfyi/core/examples/parrott/grid/grid.stories.tsx +10 -3
  165. package/node_modules/@flickfyi/core/examples/parrott/grid/grid.tsx +4 -9
  166. package/node_modules/@flickfyi/core/examples/parrott/kale-smoothie/kale-smoothie.stories.tsx +10 -3
  167. package/node_modules/@flickfyi/core/examples/parrott/kale-smoothie/kale-smoothie.tsx +0 -8
  168. package/node_modules/@flickfyi/core/examples/parrott/list/list.stories.tsx +10 -3
  169. package/node_modules/@flickfyi/core/examples/parrott/list/list.tsx +0 -8
  170. package/node_modules/@flickfyi/core/examples/parrott/log/log.stories.tsx +10 -3
  171. package/node_modules/@flickfyi/core/examples/parrott/log/log.tsx +0 -8
  172. package/node_modules/@flickfyi/core/examples/parrott/timed-task/timed-task.stories.tsx +10 -3
  173. package/node_modules/@flickfyi/core/examples/parrott/timed-task/timed-task.tsx +0 -8
  174. package/node_modules/@flickfyi/core/examples/parrott/timer/timer.stories.tsx +10 -3
  175. package/node_modules/@flickfyi/core/examples/parrott/timer/timer.tsx +0 -8
  176. package/node_modules/@flickfyi/core/package.json +16 -3
  177. package/node_modules/@flickfyi/core/src/{kowalski/use-configured-feature.ts → hooks/use-configured-feature/index.ts} +1 -1
  178. package/node_modules/@flickfyi/core/src/{kowalski/use-feature-store.ts → hooks/use-feature-store/index.ts} +37 -12
  179. package/node_modules/@flickfyi/core/src/kowalski/README.md +13 -0
  180. package/node_modules/@flickfyi/core/src/kowalski/calculations.ts +36 -8
  181. package/node_modules/@flickfyi/core/src/kowalski/calculator.ts +15 -7
  182. package/node_modules/@flickfyi/core/src/kowalski/catalog.ts +110 -704
  183. package/node_modules/@flickfyi/core/src/kowalski/components/bill-split.tsx +284 -0
  184. package/node_modules/@flickfyi/core/src/kowalski/components/bookmark.tsx +347 -0
  185. package/node_modules/@flickfyi/core/src/kowalski/components/budget.tsx +169 -0
  186. package/node_modules/@flickfyi/core/src/kowalski/components/calculator.tsx +202 -0
  187. package/node_modules/@flickfyi/core/src/kowalski/components/checklist.tsx +119 -0
  188. package/node_modules/@flickfyi/core/src/kowalski/components/color-palette.tsx +302 -0
  189. package/node_modules/@flickfyi/core/src/kowalski/components/contact.tsx +247 -0
  190. package/node_modules/@flickfyi/core/src/kowalski/components/countdown.tsx +173 -0
  191. package/node_modules/@flickfyi/core/src/kowalski/components/event.tsx +260 -0
  192. package/node_modules/@flickfyi/core/src/kowalski/components/expense.tsx +257 -0
  193. package/node_modules/@flickfyi/core/src/kowalski/components/goal.tsx +182 -0
  194. package/node_modules/@flickfyi/core/src/kowalski/components/habit.tsx +272 -0
  195. package/node_modules/@flickfyi/core/src/kowalski/components/ledger.tsx +211 -0
  196. package/node_modules/@flickfyi/core/src/kowalski/components/note.tsx +188 -0
  197. package/node_modules/@flickfyi/core/src/kowalski/components/poll.tsx +242 -0
  198. package/node_modules/@flickfyi/core/src/kowalski/components/random-picker.tsx +308 -0
  199. package/node_modules/@flickfyi/core/src/kowalski/components/rating.tsx +112 -0
  200. package/node_modules/@flickfyi/core/src/kowalski/components/reminder.tsx +298 -0
  201. package/node_modules/@flickfyi/core/src/kowalski/components/rotation.tsx +146 -0
  202. package/node_modules/@flickfyi/core/src/kowalski/components/scoreboard.tsx +139 -0
  203. package/node_modules/@flickfyi/core/src/kowalski/components/shopping-list.tsx +144 -0
  204. package/node_modules/@flickfyi/core/src/kowalski/components/task-board.tsx +146 -0
  205. package/node_modules/@flickfyi/core/src/kowalski/components/time-zone.tsx +240 -0
  206. package/node_modules/@flickfyi/core/src/kowalski/components/timer.tsx +225 -0
  207. package/node_modules/@flickfyi/core/src/kowalski/components/trip.tsx +338 -0
  208. package/node_modules/@flickfyi/core/src/kowalski/components/unit-converter.tsx +285 -0
  209. package/node_modules/@flickfyi/core/src/kowalski/create-schemas.ts +8 -0
  210. package/node_modules/@flickfyi/core/src/kowalski/date-time.tsx +1 -1
  211. package/node_modules/@flickfyi/core/src/kowalski/everyday.tsx +1 -640
  212. package/node_modules/@flickfyi/core/src/kowalski/feature-schema.ts +84 -0
  213. package/node_modules/@flickfyi/core/src/kowalski/format.ts +29 -3
  214. package/node_modules/@flickfyi/core/src/kowalski/fortune.tsx +67 -0
  215. package/node_modules/@flickfyi/core/src/kowalski/frame.tsx +5 -6
  216. package/node_modules/@flickfyi/core/src/kowalski/index.ts +31 -22
  217. package/node_modules/@flickfyi/core/src/kowalski/lesson.tsx +564 -0
  218. package/node_modules/@flickfyi/core/src/kowalski/recipe.tsx +78 -37
  219. package/node_modules/@flickfyi/core/src/kowalski/schemas.ts +67 -0
  220. package/node_modules/@flickfyi/core/src/kowalski/stories/composition.tsx +22 -20
  221. package/node_modules/@flickfyi/core/src/kowalski/time-since.tsx +145 -0
  222. package/node_modules/@flickfyi/core/src/molecules/progress/progress.tsx +4 -1
  223. package/node_modules/@flickfyi/core/src/oklch.ts +1 -6
  224. package/node_modules/@flickfyi/core/src/parrott/theme.ts +3 -1
  225. package/node_modules/@flickfyi/core/src/themes/editorial/editorial.ts +6 -1
  226. package/node_modules/@flickfyi/core/src/themes/palette.ts +5 -5
  227. package/node_modules/@flickfyi/core/src/themes/stories/composition.tsx +11 -9
  228. package/node_modules/@flickfyi/core/src/themes/stories/gallery.tsx +7 -11
  229. package/node_modules/@flickfyi/core/tsgo.bun.lock +7 -7
  230. package/node_modules/@flickfyi/core/tsgo.package.json +1 -1
  231. package/package.json +2 -2
  232. package/node_modules/@flickfyi/core/dist-types/kowalski/clocks.d.ts +0 -4
  233. package/node_modules/@flickfyi/core/dist-types/kowalski/details.d.ts +0 -7
  234. package/node_modules/@flickfyi/core/dist-types/kowalski/productivity.d.ts +0 -5
  235. package/node_modules/@flickfyi/core/dist-types/kowalski/tools.d.ts +0 -7
  236. package/node_modules/@flickfyi/core/dist-types/kowalski/use-feature-store.d.ts +0 -15
  237. package/node_modules/@flickfyi/core/src/kowalski/clocks.tsx +0 -464
  238. package/node_modules/@flickfyi/core/src/kowalski/details.tsx +0 -1387
  239. package/node_modules/@flickfyi/core/src/kowalski/productivity.tsx +0 -575
  240. package/node_modules/@flickfyi/core/src/kowalski/tools.tsx +0 -1213
  241. /package/node_modules/@flickfyi/core/dist-types/{kowalski/use-clock.d.ts → hooks/use-clock/index.d.ts} +0 -0
  242. /package/node_modules/@flickfyi/core/dist-types/{kowalski/use-configured-feature.d.ts → hooks/use-configured-feature/index.d.ts} +0 -0
  243. /package/node_modules/@flickfyi/core/src/{kowalski/use-clock.ts → hooks/use-clock/index.ts} +0 -0
@@ -1,15 +1,28 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { GoalData } 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 GoalExample from './goal'
4
8
  import exampleSource from './goal.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = GoalData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: GoalExample,
13
+ argTypes: schemaArgTypes(GoalData),
14
+ args: { progress: 3, step: 1, target: 12, title: 'Make room to read', unit: 'books' },
8
15
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
16
+ render: args => <GoalExample {...storyProps.parse(args)} />,
9
17
  title: 'Kowalski/Goal',
10
- } satisfies Meta<typeof GoalExample>
18
+ } satisfies Meta<z.input<typeof storyProps>>
11
19
 
12
20
  export default meta
13
- export const Example: StoryObj<typeof meta> = {
14
- args: { enabledForAgents: false },
21
+ export const Example: ExampleStory<typeof meta> = {
22
+ args: {
23
+ description:
24
+ 'An instantiatable Goal from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
25
+ enabled: false,
26
+ name: 'Goal',
27
+ },
15
28
  }
@@ -1,24 +1,8 @@
1
1
  import { useTheme } from '@flickfyi/core'
2
2
  import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
- import { Goal } from '@flickfyi/core/kowalski'
3
+ import { Goal, type GoalProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function GoalExample() {
5
+ export default function GoalExample({ data, style }: Pick<GoalProps, 'data' | 'style'>) {
8
6
  useTheme(theme)
9
-
10
- return (
11
- <Goal
12
- progress={3}
13
- target={12}
14
- title="Make room to read"
15
- unit="books"
16
- />
17
- )
7
+ return <Goal data={data} style={style} />
18
8
  }
19
-
20
- export const exampleMetadata = {
21
- description:
22
- 'An instantiatable Goal from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
23
- name: 'Goal',
24
- } satisfies ExampleMetadata
@@ -1,15 +1,32 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { HabitData } 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 HabitExample from './habit'
4
8
  import exampleSource from './habit.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = HabitData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: HabitExample,
13
+ argTypes: schemaArgTypes(HabitData),
14
+ args: {
15
+ timeZone: 'America/Los_Angeles',
16
+ title: 'Read a few pages',
17
+ weekdays: ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'],
18
+ },
8
19
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
20
+ render: args => <HabitExample {...storyProps.parse(args)} />,
9
21
  title: 'Kowalski/Habit',
10
- } satisfies Meta<typeof HabitExample>
22
+ } satisfies Meta<z.input<typeof storyProps>>
11
23
 
12
24
  export default meta
13
- export const Example: StoryObj<typeof meta> = {
14
- args: { enabledForAgents: false },
25
+ export const Example: ExampleStory<typeof meta> = {
26
+ args: {
27
+ description:
28
+ 'An instantiatable Habit from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
29
+ enabled: false,
30
+ name: 'Habit',
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 { Habit } from '@flickfyi/core/kowalski'
3
+ import { Habit, type HabitProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function HabitExample() {
5
+ export default function HabitExample({
6
+ data,
7
+ style,
8
+ }: Pick<HabitProps, 'data' | 'style'>) {
8
9
  useTheme(theme)
9
-
10
- return (
11
- <Habit
12
- timeZone="America/Los_Angeles"
13
- title="Read a few pages"
14
- weekdays={['monday', 'tuesday', 'wednesday', 'thursday', 'friday']}
15
- />
16
- )
10
+ return <Habit data={data} style={style} />
17
11
  }
18
-
19
- export const exampleMetadata = {
20
- description:
21
- 'An instantiatable Habit from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
22
- name: 'Habit',
23
- } satisfies ExampleMetadata
@@ -1,15 +1,35 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { LedgerData } 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 LedgerExample from './ledger'
4
8
  import exampleSource from './ledger.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = LedgerData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: LedgerExample,
13
+ argTypes: schemaArgTypes(LedgerData),
14
+ args: {
15
+ currency: 'USD',
16
+ people: [
17
+ { id: 'sam', label: 'Sam' },
18
+ { id: 'riley', label: 'Riley' },
19
+ ],
20
+ title: 'Apartment tab',
21
+ },
8
22
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
23
+ render: args => <LedgerExample {...storyProps.parse(args)} />,
9
24
  title: 'Kowalski/Ledger',
10
- } satisfies Meta<typeof LedgerExample>
25
+ } satisfies Meta<z.input<typeof storyProps>>
11
26
 
12
27
  export default meta
13
- export const Example: StoryObj<typeof meta> = {
14
- args: { enabledForAgents: false },
28
+ export const Example: ExampleStory<typeof meta> = {
29
+ args: {
30
+ description:
31
+ 'An instantiatable Ledger from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
32
+ enabled: false,
33
+ name: 'Ledger',
34
+ },
15
35
  }
@@ -1,25 +1,11 @@
1
1
  import { useTheme } from '@flickfyi/core'
2
2
  import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
- import { Ledger } from '@flickfyi/core/kowalski'
3
+ import { Ledger, type LedgerProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function LedgerExample() {
5
+ export default function LedgerExample({
6
+ data,
7
+ style,
8
+ }: Pick<LedgerProps, 'data' | 'style'>) {
8
9
  useTheme(theme)
9
-
10
- return (
11
- <Ledger
12
- people={[
13
- { id: 'sam', label: 'Sam' },
14
- { id: 'riley', label: 'Riley' },
15
- ]}
16
- title="Apartment tab"
17
- />
18
- )
10
+ return <Ledger data={data} style={style} />
19
11
  }
20
-
21
- export const exampleMetadata = {
22
- description:
23
- 'An instantiatable Ledger from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
24
- name: 'Ledger',
25
- } satisfies ExampleMetadata
@@ -0,0 +1,99 @@
1
+ import { LessonData } from '@flickfyi/core/kowalski/catalog'
2
+ import type { Meta } from '@storybook/react-vite'
3
+
4
+ import { type ExampleStory, schemaArgTypes } from '@flickfyi/core/examples/metadata'
5
+
6
+ import LessonExample from './lesson'
7
+ import exampleSource from './lesson.tsx?raw'
8
+
9
+ const storyProps = LessonData.strip().transform(data => ({ data }))
10
+ const meta = {
11
+ argTypes: schemaArgTypes(LessonData),
12
+ args: {
13
+ hasPart: [
14
+ {
15
+ acceptedAnswer: [
16
+ {
17
+ answerExplanation:
18
+ 'It’s before noon, so “buenos días” is the right greeting.',
19
+ text: 'Buenos días',
20
+ },
21
+ ],
22
+ assesses: 'time-of-day',
23
+ eduQuestionType: 'Multiple choice',
24
+ id: 'morning',
25
+ suggestedAnswer: [
26
+ { comment: '“Buenas noches” is for after dark.', text: 'Buenas noches' },
27
+ { comment: '“Buenas tardes” starts around noon.', text: 'Buenas tardes' },
28
+ ],
29
+ text: 'It’s 9 AM. How do you greet your neighbor?',
30
+ },
31
+ {
32
+ acceptedAnswer: [
33
+ {
34
+ answerExplanation:
35
+ 'After dark, “buenas noches” works as both “good evening” and “good night.”',
36
+ text: 'Buenas noches',
37
+ },
38
+ ],
39
+ assesses: 'time-of-day',
40
+ eduQuestionType: 'Flashcard',
41
+ id: 'night',
42
+ suggestedAnswer: [],
43
+ text: 'What do you say arriving at a dinner party at 10 PM?',
44
+ },
45
+ {
46
+ acceptedAnswer: [
47
+ {
48
+ answerExplanation:
49
+ 'A new teacher is someone you show respect to, so use “usted.”',
50
+ text: 'Your new teacher',
51
+ },
52
+ {
53
+ answerExplanation:
54
+ 'Use “usted” with strangers, like someone you ask for directions.',
55
+ text: 'A stranger on the street',
56
+ },
57
+ ],
58
+ assesses: 'tu-usted',
59
+ eduQuestionType: 'Checkbox',
60
+ id: 'usted',
61
+ suggestedAnswer: [
62
+ { comment: 'Use “tú” with family.', text: 'Your little sister' },
63
+ { comment: 'Use “tú” with friends.', text: 'Your best friend' },
64
+ ],
65
+ text: 'Who would you call “usted”?',
66
+ },
67
+ ],
68
+ teaches: [
69
+ {
70
+ description:
71
+ 'Spanish greetings change with the time of day. Use “buenos días” until about noon, “buenas tardes” until dark, and “buenas noches” after dark, as both hello and good night.',
72
+ examples: [{ name: 'Buenos días', value: 'Morning, until about noon' }, { name: 'Buenas tardes', value: 'Afternoon, until dark' }, { name: 'Buenas noches', value: 'Evening and night' }],
73
+ id: 'time-of-day',
74
+ name: 'Greetings by time of day',
75
+ },
76
+ {
77
+ description:
78
+ 'Spanish has two words for “you.” Use “tú” with friends, family, and children. Use “usted” with people you don’t know well or want to show respect to.',
79
+ examples: [{ name: '¿Cómo estás?', value: 'To a friend' }, { name: '¿Cómo está usted?', value: 'To a teacher' }],
80
+ id: 'tu-usted',
81
+ name: 'Tú or usted',
82
+ },
83
+ ],
84
+ title: 'Spanish greetings',
85
+ },
86
+ parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
87
+ render: args => <LessonExample {...storyProps.parse(args)} />,
88
+ title: 'Kowalski/Lesson',
89
+ } satisfies Meta<LessonData>
90
+
91
+ export default meta
92
+ export const Example: ExampleStory<typeof meta> = {
93
+ args: {
94
+ description:
95
+ 'A short Duolingo-style lesson that teaches a few ideas one at a time, each followed by multiple-choice, select-all, or flashcard questions on it. Checks each answer with an explanation and feedback on the wrong choice, reviews missed questions at the end with the idea retaught, shows progress per idea, and saves progress. For language practice, rules of a game or sport, study topics, trivia, and any "teach me" or "quiz me" request. The model writes the teaching and questions; the component does not generate new questions at runtime.',
96
+ enabled: true,
97
+ name: 'Lesson',
98
+ },
99
+ }
@@ -0,0 +1,11 @@
1
+ import { useTheme } from '@flickfyi/core'
2
+ import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
+ import { Lesson, type LessonProps } from '@flickfyi/core/kowalski'
4
+
5
+ export default function LessonExample({
6
+ data,
7
+ style,
8
+ }: Pick<LessonProps, 'data' | 'style'>) {
9
+ useTheme(theme)
10
+ return <Lesson data={data} style={style} />
11
+ }
@@ -1,15 +1,31 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { NoteData } 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 NoteExample from './note'
4
8
  import exampleSource from './note.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = NoteData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: NoteExample,
13
+ argTypes: schemaArgTypes(NoteData),
14
+ args: {
15
+ body: 'Make the next step obvious.\n\nLeave enough room for the thing that matters.',
16
+ title: 'A thought worth keeping',
17
+ },
8
18
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
19
+ render: args => <NoteExample {...storyProps.parse(args)} />,
9
20
  title: 'Kowalski/Note',
10
- } satisfies Meta<typeof NoteExample>
21
+ } satisfies Meta<z.input<typeof storyProps>>
11
22
 
12
23
  export default meta
13
- export const Example: StoryObj<typeof meta> = {
14
- args: { enabledForAgents: false },
24
+ export const Example: ExampleStory<typeof meta> = {
25
+ args: {
26
+ description:
27
+ 'An instantiatable Note from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
28
+ enabled: false,
29
+ name: 'Note',
30
+ },
15
31
  }
@@ -1,22 +1,8 @@
1
1
  import { useTheme } from '@flickfyi/core'
2
2
  import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
- import { Note } from '@flickfyi/core/kowalski'
3
+ import { Note, type NoteProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function NoteExample() {
5
+ export default function NoteExample({ data, style }: Pick<NoteProps, 'data' | 'style'>) {
8
6
  useTheme(theme)
9
-
10
- return (
11
- <Note
12
- body={'Make the next step obvious.\n\nLeave enough room for the thing that matters.'}
13
- title="A thought worth keeping"
14
- />
15
- )
7
+ return <Note data={data} style={style} />
16
8
  }
17
-
18
- export const exampleMetadata = {
19
- description:
20
- 'An instantiatable Note from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
21
- name: 'Note',
22
- } satisfies ExampleMetadata
@@ -1,15 +1,36 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { PollData } 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 PollExample from './poll'
4
8
  import exampleSource from './poll.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = PollData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: PollExample,
13
+ argTypes: schemaArgTypes(PollData),
14
+ args: {
15
+ options: [
16
+ { id: 'ramen', label: 'Ramen' },
17
+ { id: 'tacos', label: 'Tacos' },
18
+ { id: 'pizza', label: 'Pizza' },
19
+ ],
20
+ question: 'Where should we eat?',
21
+ shared: false,
22
+ },
8
23
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
24
+ render: args => <PollExample {...storyProps.parse(args)} />,
9
25
  title: 'Kowalski/Poll',
10
- } satisfies Meta<typeof PollExample>
26
+ } satisfies Meta<z.input<typeof storyProps>>
11
27
 
12
28
  export default meta
13
- export const Example: StoryObj<typeof meta> = {
14
- args: { enabledForAgents: false },
29
+ export const Example: ExampleStory<typeof meta> = {
30
+ args: {
31
+ description:
32
+ 'An instantiatable Poll from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
33
+ enabled: false,
34
+ name: 'Poll',
35
+ },
15
36
  }
@@ -1,26 +1,8 @@
1
1
  import { useTheme } from '@flickfyi/core'
2
2
  import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
- import { Poll } from '@flickfyi/core/kowalski'
3
+ import { Poll, type PollProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function PollExample() {
5
+ export default function PollExample({ data, style }: Pick<PollProps, 'data' | 'style'>) {
8
6
  useTheme(theme)
9
-
10
- return (
11
- <Poll
12
- options={[
13
- { id: 'ramen', label: 'Ramen' },
14
- { id: 'tacos', label: 'Tacos' },
15
- { id: 'pizza', label: 'Pizza' },
16
- ]}
17
- question="Where should we eat?"
18
- />
19
- )
7
+ return <Poll data={data} style={style} />
20
8
  }
21
-
22
- export const exampleMetadata = {
23
- description:
24
- 'An instantiatable Poll from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
25
- name: 'Poll',
26
- } satisfies ExampleMetadata
@@ -1,15 +1,46 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { RandomPickerData } from '@flickfyi/core/kowalski/catalog'
2
+ import type { Meta } from '@storybook/react-vite'
3
+ import type { AllUnionFields } from 'type-fest'
4
+ import { z } from 'zod/v4'
5
+
6
+ import { type ExampleStory, schemaArgTypes } from '@flickfyi/core/examples/metadata'
2
7
 
3
8
  import RandomPickerExample from './random-picker'
4
9
  import exampleSource from './random-picker.tsx?raw'
5
10
 
11
+ // Keep catalog metadata outside the component's content.
12
+ const storyProps = z
13
+ .discriminatedUnion('mode', [
14
+ RandomPickerData.options[0].strip(),
15
+ ...RandomPickerData.options.slice(1).map(option => option.strip()),
16
+ ])
17
+ .transform(data => ({ data }))
6
18
  const meta = {
7
- component: RandomPickerExample,
19
+ argTypes: {
20
+ ...Object.assign({}, ...RandomPickerData.options.map(schemaArgTypes)),
21
+ maximum: { control: 'number', if: { arg: 'mode', eq: 'range' } },
22
+ minimum: { control: 'number', if: { arg: 'mode', eq: 'range' } },
23
+ mode: { control: 'select', options: ['coin', 'dice', 'range', 'list'] },
24
+ options: { control: 'object', if: { arg: 'mode', eq: 'list' } },
25
+ },
26
+ args: {
27
+ maximum: 6,
28
+ minimum: 1,
29
+ mode: 'list',
30
+ options: ['Take a walk', 'Make some tea', 'Read a chapter'],
31
+ title: 'What should we do?',
32
+ },
8
33
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
9
- title: 'Kowalski/RandomPicker',
10
- } satisfies Meta<typeof RandomPickerExample>
34
+ render: args => <RandomPickerExample {...storyProps.parse(args)} />,
35
+ title: 'Kowalski/Random picker',
36
+ } satisfies Meta<AllUnionFields<z.input<typeof storyProps>>>
11
37
 
12
38
  export default meta
13
- export const Example: StoryObj<typeof meta> = {
14
- args: { enabledForAgents: false },
39
+ export const Example: ExampleStory<typeof meta> = {
40
+ args: {
41
+ description:
42
+ 'An instantiatable RandomPicker from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
43
+ enabled: false,
44
+ name: 'Random picker',
45
+ },
15
46
  }
@@ -1,23 +1,11 @@
1
1
  import { useTheme } from '@flickfyi/core'
2
2
  import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
- import { RandomPicker } from '@flickfyi/core/kowalski'
3
+ import { RandomPicker, type RandomPickerProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function RandomPickerExample() {
5
+ export default function RandomPickerExample({
6
+ data,
7
+ style,
8
+ }: Pick<RandomPickerProps, 'data' | 'style'>) {
8
9
  useTheme(theme)
9
-
10
- return (
11
- <RandomPicker
12
- mode="list"
13
- options={['Take a walk', 'Make some tea', 'Read a chapter']}
14
- title="What should we do?"
15
- />
16
- )
10
+ return <RandomPicker data={data} style={style} />
17
11
  }
18
-
19
- export const exampleMetadata = {
20
- description:
21
- 'An instantiatable RandomPicker from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
22
- name: 'RandomPicker',
23
- } satisfies ExampleMetadata
@@ -1,15 +1,28 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { RatingData } 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 RatingExample from './rating'
4
8
  import exampleSource from './rating.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = RatingData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: RatingExample,
13
+ argTypes: schemaArgTypes(RatingData),
14
+ args: { subject: "Luigi's on 5th", title: 'Rate dinner' },
8
15
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
16
+ render: args => <RatingExample {...storyProps.parse(args)} />,
9
17
  title: 'Kowalski/Rating',
10
- } satisfies Meta<typeof RatingExample>
18
+ } satisfies Meta<z.input<typeof storyProps>>
11
19
 
12
20
  export default meta
13
- export const Example: StoryObj<typeof meta> = {
14
- args: { enabledForAgents: false },
21
+ export const Example: ExampleStory<typeof meta> = {
22
+ args: {
23
+ description:
24
+ 'An instantiatable Rating from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
25
+ enabled: false,
26
+ name: 'Rating',
27
+ },
15
28
  }
@@ -1,19 +1,11 @@
1
1
  import { useTheme } from '@flickfyi/core'
2
2
  import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
- import { Rating } from '@flickfyi/core/kowalski'
3
+ import { Rating, type RatingProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function RatingExample() {
5
+ export default function RatingExample({
6
+ data,
7
+ style,
8
+ }: Pick<RatingProps, 'data' | 'style'>) {
8
9
  useTheme(theme)
9
-
10
- return (
11
- <Rating subject="Luigi's on 5th" title="Rate dinner" />
12
- )
10
+ return <Rating data={data} style={style} />
13
11
  }
14
-
15
- export const exampleMetadata = {
16
- description:
17
- 'An instantiatable Rating from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
18
- name: 'Rating',
19
- } satisfies ExampleMetadata