@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,36 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { BudgetData } 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 BudgetExample from './budget'
4
8
  import exampleSource from './budget.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = BudgetData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: BudgetExample,
13
+ argTypes: schemaArgTypes(BudgetData),
14
+ args: {
15
+ categories: [
16
+ { id: 'groceries', label: 'Groceries', limit: 400 },
17
+ { id: 'eating', label: 'Eating out', limit: 150 },
18
+ { id: 'transport', label: 'Transport', limit: 120 },
19
+ ],
20
+ currency: 'USD',
21
+ title: 'October',
22
+ },
8
23
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
24
+ render: args => <BudgetExample {...storyProps.parse(args)} />,
9
25
  title: 'Kowalski/Budget',
10
- } satisfies Meta<typeof BudgetExample>
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 Budget from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
33
+ enabled: false,
34
+ name: 'Budget',
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 { Budget } from '@flickfyi/core/kowalski'
3
+ import { Budget, type BudgetProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function BudgetExample() {
5
+ export default function BudgetExample({
6
+ data,
7
+ style,
8
+ }: Pick<BudgetProps, 'data' | 'style'>) {
8
9
  useTheme(theme)
9
-
10
- return (
11
- <Budget
12
- categories={[
13
- { id: 'groceries', label: 'Groceries', limit: 400 },
14
- { id: 'eating', label: 'Eating out', limit: 150 },
15
- { id: 'transport', label: 'Transport', limit: 120 },
16
- ]}
17
- title="October"
18
- />
19
- )
10
+ return <Budget data={data} style={style} />
20
11
  }
21
-
22
- export const exampleMetadata = {
23
- description:
24
- 'An instantiatable Budget from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
25
- name: 'Budget',
26
- } satisfies ExampleMetadata
@@ -1,15 +1,28 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { CalculatorData } 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 CalculatorExample from './calculator'
4
8
  import exampleSource from './calculator.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = CalculatorData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: CalculatorExample,
13
+ argTypes: schemaArgTypes(CalculatorData),
14
+ args: { left: 24, operator: '*', right: 7, title: 'Work it out' },
8
15
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
16
+ render: args => <CalculatorExample {...storyProps.parse(args)} />,
9
17
  title: 'Kowalski/Calculator',
10
- } satisfies Meta<typeof CalculatorExample>
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 Calculator from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
25
+ enabled: false,
26
+ name: 'Calculator',
27
+ },
15
28
  }
@@ -1,24 +1,11 @@
1
1
  import { useTheme } from '@flickfyi/core'
2
2
  import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
- import { Calculator } from '@flickfyi/core/kowalski'
3
+ import { Calculator, type CalculatorProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function CalculatorExample() {
5
+ export default function CalculatorExample({
6
+ data,
7
+ style,
8
+ }: Pick<CalculatorProps, 'data' | 'style'>) {
8
9
  useTheme(theme)
9
-
10
- return (
11
- <Calculator
12
- left={24}
13
- operator="*"
14
- right={7}
15
- title="Work it out"
16
- />
17
- )
10
+ return <Calculator data={data} style={style} />
18
11
  }
19
-
20
- export const exampleMetadata = {
21
- description:
22
- 'An instantiatable Calculator from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
23
- name: 'Calculator',
24
- } satisfies ExampleMetadata
@@ -1,15 +1,35 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { ChecklistData } 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 ChecklistExample from './checklist'
4
8
  import exampleSource from './checklist.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = ChecklistData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: ChecklistExample,
13
+ argTypes: schemaArgTypes(ChecklistData),
14
+ args: {
15
+ items: [
16
+ { id: 'water', label: 'Fill water bottle' },
17
+ { id: 'layers', label: 'Pack a warm layer' },
18
+ { id: 'route', label: 'Save the route' },
19
+ ],
20
+ title: 'Ready for the trail',
21
+ },
8
22
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
23
+ render: args => <ChecklistExample {...storyProps.parse(args)} />,
9
24
  title: 'Kowalski/Checklist',
10
- } satisfies Meta<typeof ChecklistExample>
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 Checklist from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
32
+ enabled: false,
33
+ name: 'Checklist',
34
+ },
15
35
  }
@@ -1,26 +1,11 @@
1
1
  import { useTheme } from '@flickfyi/core'
2
2
  import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
- import { Checklist } from '@flickfyi/core/kowalski'
3
+ import { Checklist, type ChecklistProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function ChecklistExample() {
5
+ export default function ChecklistExample({
6
+ data,
7
+ style,
8
+ }: Pick<ChecklistProps, 'data' | 'style'>) {
8
9
  useTheme(theme)
9
-
10
- return (
11
- <Checklist
12
- items={[
13
- { id: 'water', label: 'Fill water bottle' },
14
- { id: 'layers', label: 'Pack a warm layer' },
15
- { id: 'route', label: 'Save the route' },
16
- ]}
17
- title="Ready for the trail"
18
- />
19
- )
10
+ return <Checklist data={data} style={style} />
20
11
  }
21
-
22
- export const exampleMetadata = {
23
- description:
24
- 'An instantiatable Checklist from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
25
- name: 'Checklist',
26
- } satisfies ExampleMetadata
@@ -1,15 +1,28 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { ColorPaletteData } 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 ColorPaletteExample from './color-palette'
4
8
  import exampleSource from './color-palette.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = ColorPaletteData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: ColorPaletteExample,
13
+ argTypes: schemaArgTypes(ColorPaletteData),
14
+ args: { color: '#7c6ee6', title: 'Violet palette' },
8
15
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
9
- title: 'Kowalski/ColorPalette',
10
- } satisfies Meta<typeof ColorPaletteExample>
16
+ render: args => <ColorPaletteExample {...storyProps.parse(args)} />,
17
+ title: 'Kowalski/Color palette',
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 ColorPalette from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
25
+ enabled: false,
26
+ name: 'Color palette',
27
+ },
15
28
  }
@@ -1,22 +1,11 @@
1
1
  import { useTheme } from '@flickfyi/core'
2
2
  import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
- import { ColorPalette } from '@flickfyi/core/kowalski'
3
+ import { ColorPalette, type ColorPaletteProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function ColorPaletteExample() {
5
+ export default function ColorPaletteExample({
6
+ data,
7
+ style,
8
+ }: Pick<ColorPaletteProps, 'data' | 'style'>) {
8
9
  useTheme(theme)
9
-
10
- return (
11
- <ColorPalette
12
- color="#7c6ee6"
13
- title="Violet palette"
14
- />
15
- )
10
+ return <ColorPalette data={data} style={style} />
16
11
  }
17
-
18
- export const exampleMetadata = {
19
- description:
20
- 'An instantiatable ColorPalette from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
21
- name: 'ColorPalette',
22
- } satisfies ExampleMetadata
@@ -1,15 +1,40 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { ContactData } 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 ContactExample from './contact'
4
8
  import exampleSource from './contact.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = ContactData.omit({ name: true })
12
+ .strip()
13
+ .extend({
14
+ 'data.name': ContactData.shape.name,
15
+ })
16
+ .transform(({ 'data.name': name, ...data }) => ({ data: { ...data, name } }))
6
17
  const meta = {
7
- component: ContactExample,
18
+ argTypes: {
19
+ ...schemaArgTypes(ContactData.omit({ name: true })),
20
+ 'data.name': { description: ContactData.shape.name.description, name: 'Name' },
21
+ },
22
+ args: {
23
+ 'data.name': 'Alex Morgan',
24
+ email: 'alex@example.com',
25
+ phone: '+1 415 555 0128',
26
+ },
8
27
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
28
+ render: args => <ContactExample {...storyProps.parse(args)} />,
9
29
  title: 'Kowalski/Contact',
10
- } satisfies Meta<typeof ContactExample>
30
+ } satisfies Meta<z.input<typeof storyProps>>
11
31
 
12
32
  export default meta
13
- export const Example: StoryObj<typeof meta> = {
14
- args: { enabledForAgents: false },
33
+ export const Example: ExampleStory<typeof meta> = {
34
+ args: {
35
+ description:
36
+ 'An instantiatable Contact from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
37
+ enabled: false,
38
+ name: 'Contact',
39
+ },
15
40
  }
@@ -1,23 +1,11 @@
1
1
  import { useTheme } from '@flickfyi/core'
2
2
  import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
- import { Contact } from '@flickfyi/core/kowalski'
3
+ import { Contact, type ContactProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function ContactExample() {
5
+ export default function ContactExample({
6
+ data,
7
+ style,
8
+ }: Pick<ContactProps, 'data' | 'style'>) {
8
9
  useTheme(theme)
9
-
10
- return (
11
- <Contact
12
- email="alex@example.com"
13
- name="Alex Morgan"
14
- phone="+1 415 555 0128"
15
- />
16
- )
10
+ return <Contact data={data} style={style} />
17
11
  }
18
-
19
- export const exampleMetadata = {
20
- description:
21
- 'An instantiatable Contact from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
22
- name: 'Contact',
23
- } satisfies ExampleMetadata
@@ -1,15 +1,32 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { CountdownData } 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 CountdownExample from './countdown'
4
8
  import exampleSource from './countdown.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = CountdownData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: CountdownExample,
13
+ argTypes: schemaArgTypes(CountdownData),
14
+ args: {
15
+ target: '2027-01-01T00:00:00-08:00',
16
+ timeZone: 'America/Los_Angeles',
17
+ title: 'The next chapter',
18
+ },
8
19
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
20
+ render: args => <CountdownExample {...storyProps.parse(args)} />,
9
21
  title: 'Kowalski/Countdown',
10
- } satisfies Meta<typeof CountdownExample>
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 Countdown from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
29
+ enabled: false,
30
+ name: 'Countdown',
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 { Countdown } from '@flickfyi/core/kowalski'
3
+ import { Countdown, type CountdownProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function CountdownExample() {
5
+ export default function CountdownExample({
6
+ data,
7
+ style,
8
+ }: Pick<CountdownProps, 'data' | 'style'>) {
8
9
  useTheme(theme)
9
-
10
- return (
11
- <Countdown
12
- target="2027-01-01T00:00:00-08:00"
13
- timeZone="America/Los_Angeles"
14
- title="The next chapter"
15
- />
16
- )
10
+ return <Countdown data={data} style={style} />
17
11
  }
18
-
19
- export const exampleMetadata = {
20
- description:
21
- 'An instantiatable Countdown from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
22
- name: 'Countdown',
23
- } satisfies ExampleMetadata
@@ -1,15 +1,33 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { EventData } 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 EventExample from './event'
4
8
  import exampleSource from './event.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = EventData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: EventExample,
13
+ argTypes: schemaArgTypes(EventData),
14
+ args: {
15
+ location: 'Studio, second floor',
16
+ startsAt: '2026-11-05T18:30:00-08:00',
17
+ timeZone: 'America/Los_Angeles',
18
+ title: 'Design night',
19
+ },
8
20
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
21
+ render: args => <EventExample {...storyProps.parse(args)} />,
9
22
  title: 'Kowalski/Event',
10
- } satisfies Meta<typeof EventExample>
23
+ } satisfies Meta<z.input<typeof storyProps>>
11
24
 
12
25
  export default meta
13
- export const Example: StoryObj<typeof meta> = {
14
- args: { enabledForAgents: false },
26
+ export const Example: ExampleStory<typeof meta> = {
27
+ args: {
28
+ description:
29
+ 'An instantiatable Event from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
30
+ enabled: false,
31
+ name: 'Event',
32
+ },
15
33
  }
@@ -1,24 +1,11 @@
1
1
  import { useTheme } from '@flickfyi/core'
2
2
  import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
- import { Event } from '@flickfyi/core/kowalski'
3
+ import { Event, type EventProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function EventExample() {
5
+ export default function EventExample({
6
+ data,
7
+ style,
8
+ }: Pick<EventProps, 'data' | 'style'>) {
8
9
  useTheme(theme)
9
-
10
- return (
11
- <Event
12
- location="Studio, second floor"
13
- startsAt="2026-11-05T18:30:00-08:00"
14
- timeZone="America/Los_Angeles"
15
- title="Design night"
16
- />
17
- )
10
+ return <Event data={data} style={style} />
18
11
  }
19
-
20
- export const exampleMetadata = {
21
- description:
22
- 'An instantiatable Event from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
23
- name: 'Event',
24
- } satisfies ExampleMetadata
@@ -1,15 +1,33 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { ExpenseData } 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 ExpenseExample from './expense'
4
8
  import exampleSource from './expense.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = ExpenseData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: ExpenseExample,
13
+ argTypes: schemaArgTypes(ExpenseData),
14
+ args: {
15
+ amount: 18.5,
16
+ category: 'Food &amp; drink',
17
+ currency: 'USD',
18
+ title: 'Coffee with the team',
19
+ },
8
20
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
21
+ render: args => <ExpenseExample {...storyProps.parse(args)} />,
9
22
  title: 'Kowalski/Expense',
10
- } satisfies Meta<typeof ExpenseExample>
23
+ } satisfies Meta<z.input<typeof storyProps>>
11
24
 
12
25
  export default meta
13
- export const Example: StoryObj<typeof meta> = {
14
- args: { enabledForAgents: false },
26
+ export const Example: ExampleStory<typeof meta> = {
27
+ args: {
28
+ description:
29
+ 'An instantiatable Expense from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
30
+ enabled: false,
31
+ name: 'Expense',
32
+ },
15
33
  }
@@ -1,23 +1,11 @@
1
1
  import { useTheme } from '@flickfyi/core'
2
2
  import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
- import { Expense } from '@flickfyi/core/kowalski'
3
+ import { Expense, type ExpenseProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function ExpenseExample() {
5
+ export default function ExpenseExample({
6
+ data,
7
+ style,
8
+ }: Pick<ExpenseProps, 'data' | 'style'>) {
8
9
  useTheme(theme)
9
-
10
- return (
11
- <Expense
12
- amount={18.5}
13
- category="Food &amp; drink"
14
- title="Coffee with the team"
15
- />
16
- )
10
+ return <Expense data={data} style={style} />
17
11
  }
18
-
19
- export const exampleMetadata = {
20
- description:
21
- 'An instantiatable Expense from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
22
- name: 'Expense',
23
- } satisfies ExampleMetadata
@@ -0,0 +1,61 @@
1
+ import { FortuneData } 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 FortuneExample from './fortune'
7
+ import exampleSource from './fortune.tsx?raw'
8
+
9
+ const storyProps = FortuneData.strip().transform(data => ({ data }))
10
+ const meta = {
11
+ argTypes: schemaArgTypes(FortuneData),
12
+ args: {
13
+ action: 'Crack cookie',
14
+ answers: [
15
+ 'The fortune you seek is in another cookie.',
16
+ 'You will be hungry again in one hour.',
17
+ 'A closed mouth gathers no foot.',
18
+ 'Help! I am being held prisoner in a fortune cookie factory.',
19
+ 'Hard work pays off in the future. Laziness pays off now.',
20
+ 'Ignore previous cookie.',
21
+ 'This cookie contains no fortune.',
22
+ 'You will live long enough to open many fortune cookies.',
23
+ ],
24
+ prompt: 'Your fortune awaits',
25
+ title: 'Fortune cookie',
26
+ },
27
+ parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
28
+ render: args => <FortuneExample {...storyProps.parse(args)} />,
29
+ title: 'Kowalski/Fortune',
30
+ } satisfies Meta<FortuneData>
31
+
32
+ export default meta
33
+ export const Example: ExampleStory<typeof meta> = {
34
+ args: {
35
+ description:
36
+ 'Reveal a random fortune or answer with one big button. For fortune cookies, magic eight balls, affirmations, and themed oracles. The model supplies the wording and a pool of answers; the component reveals one at a time and remembers the last answer. Does not interpret typed questions or generate new answers at runtime.',
37
+ enabled: true,
38
+ name: 'Fortune',
39
+ },
40
+ }
41
+
42
+ export const MagicEightBall: ExampleStory<typeof meta> = {
43
+ args: {
44
+ action: 'Ask the eight ball',
45
+ answers: [
46
+ 'It is certain.',
47
+ 'Without a doubt.',
48
+ 'Yes, definitely.',
49
+ 'Outlook good.',
50
+ 'Ask again later.',
51
+ 'Cannot predict now.',
52
+ 'Don’t count on it.',
53
+ 'My reply is no.',
54
+ ],
55
+ description: 'Think of a yes-or-no question, then reveal a random answer.',
56
+ enabled: false,
57
+ name: 'Magic 8 Ball',
58
+ prompt: 'Think of a yes-or-no question',
59
+ title: 'Magic 8 Ball',
60
+ },
61
+ }
@@ -0,0 +1,11 @@
1
+ import { useTheme } from '@flickfyi/core'
2
+ import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
+ import { Fortune, type FortuneProps } from '@flickfyi/core/kowalski'
4
+
5
+ export default function FortuneExample({
6
+ data,
7
+ style,
8
+ }: Pick<FortuneProps, 'data' | 'style'>) {
9
+ useTheme(theme)
10
+ return <Fortune data={data} style={style} />
11
+ }