@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
@@ -0,0 +1,33 @@
1
+ import { TimeSinceData } 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 TimeSinceExample from './time-since'
7
+ import exampleSource from './time-since.tsx?raw'
8
+
9
+ // Storybook also supplies catalog metadata args; only content belongs in data.
10
+ const storyProps = TimeSinceData.strip().transform(data => ({ data }))
11
+
12
+ const meta = {
13
+ argTypes: schemaArgTypes(TimeSinceData),
14
+ args: {
15
+ action: 'Give pill',
16
+ label: 'Pill timer',
17
+ subject: 'pill',
18
+ title: 'Winnie',
19
+ },
20
+ parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
21
+ render: args => <TimeSinceExample {...storyProps.parse(args)} />,
22
+ title: 'Kowalski/Time since',
23
+ } satisfies Meta<TimeSinceData>
24
+
25
+ export default meta
26
+ export const Example: ExampleStory<typeof meta> = {
27
+ args: {
28
+ description:
29
+ 'How long since something last happened, with one big button to update it. Shows the time since ("4 hours ago") and when it last happened. Can be shared or personal. For medication and pill logs, pet feeding or walks, watering plants, last haircut or oil change, and "days since" trackers.',
30
+ enabled: true,
31
+ name: 'Time since',
32
+ },
33
+ }
@@ -0,0 +1,12 @@
1
+ import { useTheme } from '@flickfyi/core'
2
+ import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
+ import { TimeSince, type TimeSinceProps } from '@flickfyi/core/kowalski'
4
+
5
+ export default function TimeSinceExample({
6
+ data,
7
+ style,
8
+ }: Pick<TimeSinceProps, 'data' | 'style'>) {
9
+ useTheme(theme)
10
+
11
+ return <TimeSince data={data} style={style} />
12
+ }
@@ -1,15 +1,31 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { TimeZoneData } 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 TimeZoneExample from './time-zone'
4
8
  import exampleSource from './time-zone.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = TimeZoneData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: TimeZoneExample,
13
+ argTypes: { ...schemaArgTypes(TimeZoneData), at: { control: 'text' } },
14
+ args: {
15
+ title: 'A good time to call',
16
+ zones: ['America/Los_Angeles', 'America/Chicago', 'America/New_York'],
17
+ },
8
18
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
9
- title: 'Kowalski/TimeZone',
10
- } satisfies Meta<typeof TimeZoneExample>
19
+ render: args => <TimeZoneExample {...storyProps.parse(args)} />,
20
+ title: 'Kowalski/Time zone',
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 TimeZone from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
28
+ enabled: false,
29
+ name: 'Time zone',
30
+ },
15
31
  }
@@ -1,22 +1,11 @@
1
1
  import { useTheme } from '@flickfyi/core'
2
2
  import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
- import { TimeZone } from '@flickfyi/core/kowalski'
3
+ import { TimeZone, type TimeZoneProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function TimeZoneExample() {
5
+ export default function TimeZoneExample({
6
+ data,
7
+ style,
8
+ }: Pick<TimeZoneProps, 'data' | 'style'>) {
8
9
  useTheme(theme)
9
-
10
- return (
11
- <TimeZone
12
- title="A good time to call"
13
- zones={['America/Los_Angeles', 'America/Chicago', 'America/New_York']}
14
- />
15
- )
10
+ return <TimeZone data={data} style={style} />
16
11
  }
17
-
18
- export const exampleMetadata = {
19
- description:
20
- 'An instantiatable TimeZone from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
21
- name: 'TimeZone',
22
- } satisfies ExampleMetadata
@@ -1,15 +1,28 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { TimerData } 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 TimerExample from './timer'
4
8
  import exampleSource from './timer.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = TimerData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: TimerExample,
13
+ argTypes: schemaArgTypes(TimerData),
14
+ args: { durationSeconds: 1500, mode: 'focus', title: 'A little focus' },
8
15
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
16
+ render: args => <TimerExample {...storyProps.parse(args)} />,
9
17
  title: 'Kowalski/Timer',
10
- } satisfies Meta<typeof TimerExample>
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 Timer from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
25
+ enabled: false,
26
+ name: 'Timer',
27
+ },
15
28
  }
@@ -1,23 +1,11 @@
1
1
  import { useTheme } from '@flickfyi/core'
2
2
  import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
- import { Timer } from '@flickfyi/core/kowalski'
3
+ import { Timer, type TimerProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function TimerExample() {
5
+ export default function TimerExample({
6
+ data,
7
+ style,
8
+ }: Pick<TimerProps, 'data' | 'style'>) {
8
9
  useTheme(theme)
9
-
10
- return (
11
- <Timer
12
- durationSeconds={1500}
13
- mode="focus"
14
- title="A little focus"
15
- />
16
- )
10
+ return <Timer data={data} style={style} />
17
11
  }
18
-
19
- export const exampleMetadata = {
20
- description:
21
- 'An instantiatable Timer from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
22
- name: 'Timer',
23
- } satisfies ExampleMetadata
@@ -1,15 +1,35 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { TripData } 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 TripExample from './trip'
4
8
  import exampleSource from './trip.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = TripData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: TripExample,
13
+ argTypes: schemaArgTypes(TripData),
14
+ args: {
15
+ destination: 'Monterey',
16
+ endDate: '2026-11-08',
17
+ origin: 'San Francisco',
18
+ startDate: '2026-11-07',
19
+ title: 'A weekend away',
20
+ transport: 'car',
21
+ },
8
22
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
23
+ render: args => <TripExample {...storyProps.parse(args)} />,
9
24
  title: 'Kowalski/Trip',
10
- } satisfies Meta<typeof TripExample>
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 Trip from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
32
+ enabled: false,
33
+ name: 'Trip',
34
+ },
15
35
  }
@@ -1,26 +1,8 @@
1
1
  import { useTheme } from '@flickfyi/core'
2
2
  import { theme } from '@flickfyi/core/examples/kowalski/theme'
3
- import { Trip } from '@flickfyi/core/kowalski'
3
+ import { Trip, type TripProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function TripExample() {
5
+ export default function TripExample({ data, style }: Pick<TripProps, 'data' | 'style'>) {
8
6
  useTheme(theme)
9
-
10
- return (
11
- <Trip
12
- destination="Monterey"
13
- endDate="2026-11-08"
14
- origin="San Francisco"
15
- startDate="2026-11-07"
16
- title="A weekend away"
17
- transport="car"
18
- />
19
- )
7
+ return <Trip data={data} style={style} />
20
8
  }
21
-
22
- export const exampleMetadata = {
23
- description:
24
- 'An instantiatable Trip from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
25
- name: 'Trip',
26
- } satisfies ExampleMetadata
@@ -1,15 +1,28 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import { UnitConverterData } 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 UnitConverterExample from './unit-converter'
4
8
  import exampleSource from './unit-converter.tsx?raw'
5
9
 
10
+ // Keep catalog metadata outside the component's content.
11
+ const storyProps = UnitConverterData.strip().transform(data => ({ data }))
6
12
  const meta = {
7
- component: UnitConverterExample,
13
+ argTypes: schemaArgTypes(UnitConverterData),
14
+ args: { from: 'km', title: 'Miles from home', to: 'mi', value: 10 },
8
15
  parameters: { docs: { source: { code: exampleSource, language: 'tsx' } } },
9
- title: 'Kowalski/UnitConverter',
10
- } satisfies Meta<typeof UnitConverterExample>
16
+ render: args => <UnitConverterExample {...storyProps.parse(args)} />,
17
+ title: 'Kowalski/Unit converter',
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 UnitConverter from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
25
+ enabled: false,
26
+ name: 'Unit converter',
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 { UnitConverter } from '@flickfyi/core/kowalski'
3
+ import { UnitConverter, type UnitConverterProps } from '@flickfyi/core/kowalski'
4
4
 
5
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
6
-
7
- export default function UnitConverterExample() {
5
+ export default function UnitConverterExample({
6
+ data,
7
+ style,
8
+ }: Pick<UnitConverterProps, 'data' | 'style'>) {
8
9
  useTheme(theme)
9
-
10
- return (
11
- <UnitConverter
12
- from="km"
13
- title="Miles from home"
14
- to="mi"
15
- value={10}
16
- />
17
- )
10
+ return <UnitConverter data={data} style={style} />
18
11
  }
19
-
20
- export const exampleMetadata = {
21
- description:
22
- 'An instantiatable UnitConverter from Core. Authored UI and standard Quantum persistence; the model supplies typed content only.',
23
- name: 'UnitConverter',
24
- } satisfies ExampleMetadata
@@ -1,4 +1,6 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import type { Meta } from '@storybook/react-vite'
2
+
3
+ import type { ExampleStory } from '@flickfyi/core/examples/metadata'
2
4
 
3
5
  import { Calculator } from './calculator'
4
6
  import exampleSource from './calculator.tsx?raw'
@@ -10,6 +12,11 @@ const meta = {
10
12
  } satisfies Meta<typeof Calculator>
11
13
 
12
14
  export default meta
13
- export const Example: StoryObj<typeof meta> = {
14
- args: { enabledForAgents: true },
15
+ export const Example: ExampleStory<typeof meta> = {
16
+ args: {
17
+ description:
18
+ 'A numeric keypad and arithmetic expression display with a result, useful for direct arithmetic input and calculations.',
19
+ enabled: true,
20
+ name: 'Calculator',
21
+ },
15
22
  }
@@ -4,8 +4,6 @@ import { Card, Stat } from '@flickfyi/core/molecules'
4
4
  import * as stylex from '@flickfyi/core/stylex'
5
5
  import { useState } from 'react'
6
6
 
7
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
8
-
9
7
  import { theme } from './theme'
10
8
 
11
9
  const keys = [
@@ -108,9 +106,7 @@ export function Calculator() {
108
106
  <Card.Body style={theme.layout.calculatorBody}>
109
107
  <Stat>
110
108
  <Stat.Value>{display}</Stat.Value>
111
- <Stat.Caption style={theme.layout.calculatorCaption}>
112
- {expression}
113
- </Stat.Caption>
109
+ <Stat.Caption style={theme.layout.calculatorCaption}>{expression}</Stat.Caption>
114
110
  </Stat>
115
111
  <Flex {...stylex.props(theme.layout.keypad)}>
116
112
  {keys.map(key => (
@@ -130,8 +126,7 @@ export function Calculator() {
130
126
  <Text
131
127
  {...stylex.props(
132
128
  theme.layout.keyLabel,
133
- (key === '=' || key === operator) &&
134
- theme.layout.keyLabelSelected
129
+ (key === '=' || key === operator) && theme.layout.keyLabelSelected
135
130
  )}
136
131
  >
137
132
  {key}
@@ -149,12 +144,6 @@ export default Calculator
149
144
 
150
145
  export const evalMetadata = { pattern: 'calculator', prompt: 'Make a calculator' }
151
146
 
152
- export const exampleMetadata = {
153
- description:
154
- 'A numeric keypad and arithmetic expression display with a result, useful for direct arithmetic input and calculations.',
155
- name: 'Calculator',
156
- } satisfies ExampleMetadata
157
-
158
147
  const keyNames: Record<string, string> = {
159
148
  '%': '%: percent',
160
149
  '+': '+: add',
@@ -1,4 +1,6 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import type { Meta } from '@storybook/react-vite'
2
+
3
+ import type { ExampleStory } from '@flickfyi/core/examples/metadata'
2
4
 
3
5
  import { Checklist } from './checklist'
4
6
  import exampleSource from './checklist.tsx?raw'
@@ -10,6 +12,11 @@ const meta = {
10
12
  } satisfies Meta<typeof Checklist>
11
13
 
12
14
  export default meta
13
- export const Example: StoryObj<typeof meta> = {
14
- args: { enabledForAgents: true },
15
+ export const Example: ExampleStory<typeof meta> = {
16
+ args: {
17
+ description:
18
+ 'Completing and reopening tasks: each row has a done state, unfinished tasks sort first, and a progress bar tracks completion. Includes checked-state feedback for routines, packing, and chores.',
19
+ enabled: true,
20
+ name: 'Checklist',
21
+ },
15
22
  }
@@ -8,8 +8,6 @@ import {
8
8
  } from '@flickfyi/core/molecules'
9
9
  import { useState } from 'react'
10
10
 
11
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
12
-
13
11
  import { theme } from './theme'
14
12
 
15
13
  const initialItems = [
@@ -67,9 +65,3 @@ export const evalMetadata = {
67
65
  pattern: 'checklist',
68
66
  prompt: 'Make me a morning routine checklist',
69
67
  }
70
-
71
- export const exampleMetadata = {
72
- description:
73
- 'Completing and reopening tasks: each row has a done state, unfinished tasks sort first, and a progress bar tracks completion. Includes checked-state feedback for routines, packing, and chores.',
74
- name: 'Checklist',
75
- } satisfies ExampleMetadata
@@ -1,4 +1,6 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import type { Meta } from '@storybook/react-vite'
2
+
3
+ import type { ExampleStory } from '@flickfyi/core/examples/metadata'
2
4
 
3
5
  import { Countdown } from './countdown'
4
6
  import exampleSource from './countdown.tsx?raw'
@@ -10,6 +12,11 @@ const meta = {
10
12
  } satisfies Meta<typeof Countdown>
11
13
 
12
14
  export default meta
13
- export const Example: StoryObj<typeof meta> = {
14
- args: { enabledForAgents: true },
15
+ export const Example: ExampleStory<typeof meta> = {
16
+ args: {
17
+ description:
18
+ 'A live elapsed-time display that chooses meaningful time units and can reset the starting event, useful for streaks, ages, and time-since trackers.',
19
+ enabled: true,
20
+ name: 'Elapsed time',
21
+ },
15
22
  }
@@ -3,8 +3,6 @@ import { Button } from '@flickfyi/core/atoms'
3
3
  import { Card, Stat } from '@flickfyi/core/molecules'
4
4
  import { useEffect, useReducer, useState } from 'react'
5
5
 
6
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
7
-
8
6
  import { theme } from './theme'
9
7
 
10
8
  export function Countdown() {
@@ -63,9 +61,3 @@ function format(ms: number) {
63
61
  }
64
62
  return { label: pluralize('second', seconds), value: seconds }
65
63
  }
66
-
67
- export const exampleMetadata = {
68
- description:
69
- 'A live elapsed-time display that chooses meaningful time units and can reset the starting event, useful for streaks, ages, and time-since trackers.',
70
- name: 'Elapsed time',
71
- } satisfies ExampleMetadata
@@ -1,6 +1,8 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import type { Meta } from '@storybook/react-vite'
2
2
  import { expect, userEvent, within } from 'storybook/test'
3
3
 
4
+ import type { ExampleStory } from '@flickfyi/core/examples/metadata'
5
+
4
6
  import { Counter } from './counter'
5
7
  import exampleSource from './counter.tsx?raw'
6
8
 
@@ -11,10 +13,15 @@ const meta = {
11
13
  } satisfies Meta<typeof Counter>
12
14
 
13
15
  export default meta
14
- type Story = StoryObj<typeof meta>
16
+ type Story = ExampleStory<typeof meta>
15
17
 
16
18
  export const Default: Story = {
17
- args: { enabledForAgents: true },
19
+ args: {
20
+ description:
21
+ 'A prominent numeric value with increment and decrement controls for tallies, scores, quantities, and simple counters.',
22
+ enabled: true,
23
+ name: 'Counter',
24
+ },
18
25
  async play({ canvasElement }) {
19
26
  const canvas = within(canvasElement)
20
27
  const increment = await canvas.findByRole('button', { name: 'Increase count' })
@@ -3,8 +3,6 @@ import { Button } from '@flickfyi/core/atoms'
3
3
  import { Card, Stat } from '@flickfyi/core/molecules'
4
4
  import { useState } from 'react'
5
5
 
6
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
7
-
8
6
  import { theme } from './theme'
9
7
 
10
8
  export function Counter() {
@@ -55,9 +53,3 @@ export const evalMetadata = {
55
53
  pattern: 'counter',
56
54
  prompt: 'Make me a swear jar counter',
57
55
  }
58
-
59
- export const exampleMetadata = {
60
- description:
61
- 'A prominent numeric value with increment and decrement controls for tallies, scores, quantities, and simple counters.',
62
- name: 'Counter',
63
- } satisfies ExampleMetadata
@@ -1,4 +1,6 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import type { Meta } from '@storybook/react-vite'
2
+
3
+ import type { ExampleStory } from '@flickfyi/core/examples/metadata'
2
4
 
3
5
  import { Fortune } from './fortune'
4
6
  import exampleSource from './fortune.tsx?raw'
@@ -10,6 +12,11 @@ const meta = {
10
12
  } satisfies Meta<typeof Fortune>
11
13
 
12
14
  export default meta
13
- export const Example: StoryObj<typeof meta> = {
14
- args: { enabledForAgents: true },
15
+ export const Example: ExampleStory<typeof meta> = {
16
+ args: {
17
+ description:
18
+ 'A random text selection revealed through a timed animation sequence, useful for pickers, prompts, fortunes, and other reveal interactions.',
19
+ enabled: true,
20
+ name: 'Animated reveal',
21
+ },
15
22
  }
@@ -7,8 +7,6 @@ import * as stylex from '@flickfyi/core/stylex'
7
7
  import { space } from '@flickfyi/core/themes/scale'
8
8
  import { useEffect, useState } from 'react'
9
9
 
10
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
11
-
12
10
  import { theme } from './theme'
13
11
 
14
12
  const fortunes = [
@@ -104,9 +102,3 @@ export const evalMetadata = {
104
102
  pattern: 'fortune',
105
103
  prompt: 'Make me a fortune cookie app',
106
104
  }
107
-
108
- export const exampleMetadata = {
109
- description:
110
- 'A random text selection revealed through a timed animation sequence, useful for pickers, prompts, fortunes, and other reveal interactions.',
111
- name: 'Animated reveal',
112
- } satisfies ExampleMetadata
@@ -1,4 +1,6 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import type { Meta } from '@storybook/react-vite'
2
+
3
+ import type { ExampleStory } from '@flickfyi/core/examples/metadata'
2
4
 
3
5
  import { Grid } from './grid'
4
6
  import exampleSource from './grid.tsx?raw'
@@ -10,6 +12,11 @@ const meta = {
10
12
  } satisfies Meta<typeof Grid>
11
13
 
12
14
  export default meta
13
- export const Example: StoryObj<typeof meta> = {
14
- args: { enabledForAgents: true },
15
+ export const Example: ExampleStory<typeof meta> = {
16
+ args: {
17
+ description:
18
+ 'A square grid of independently toggleable cells with row, column, and diagonal completion detection, useful for bingo, game boards, and scavenger hunts.',
19
+ enabled: true,
20
+ name: 'Interactive grid',
21
+ },
15
22
  }
@@ -4,8 +4,6 @@ import { Card } from '@flickfyi/core/molecules'
4
4
  import * as stylex from '@flickfyi/core/stylex'
5
5
  import { useState } from 'react'
6
6
 
7
- import type { ExampleMetadata } from '@flickfyi/core/examples/metadata'
8
-
9
7
  import { theme } from './theme'
10
8
 
11
9
  export function Grid() {
@@ -41,7 +39,10 @@ export function Grid() {
41
39
  ]}
42
40
  >
43
41
  <Flex {...stylex.props(theme.layout.gridCellContent)}>
44
- <Icon name="checkmark" {...stylex.props(!cell.found && theme.layout.invisible)} />
42
+ <Icon
43
+ name="checkmark"
44
+ {...stylex.props(!cell.found && theme.layout.invisible)}
45
+ />
45
46
  <Text {...stylex.props(theme.layout.gridCellLabel)}>{cell.label}</Text>
46
47
  </Flex>
47
48
  </Button>
@@ -59,12 +60,6 @@ export const evalMetadata = {
59
60
  prompt: 'Make a road trip scavenger hunt',
60
61
  }
61
62
 
62
- export const exampleMetadata = {
63
- description:
64
- 'A square grid of independently toggleable cells with row, column, and diagonal completion detection, useful for bingo, game boards, and scavenger hunts.',
65
- name: 'Interactive grid',
66
- } satisfies ExampleMetadata
67
-
68
63
  const initialCells = [
69
64
  { found: false, id: '1', label: 'Cow' },
70
65
  { found: false, id: '2', label: 'Barn' },
@@ -1,6 +1,8 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite'
1
+ import type { Meta } from '@storybook/react-vite'
2
2
  import { expect, userEvent, within } from 'storybook/test'
3
3
 
4
+ import type { ExampleStory } from '@flickfyi/core/examples/metadata'
5
+
4
6
  import KaleSmoothie from './kale-smoothie'
5
7
  import exampleSource from './kale-smoothie.tsx?raw'
6
8
 
@@ -12,8 +14,13 @@ const meta = {
12
14
  } satisfies Meta<typeof KaleSmoothie>
13
15
 
14
16
  export default meta
15
- export const Example: StoryObj<typeof meta> = {
16
- args: { enabledForAgents: true },
17
+ export const Example: ExampleStory<typeof meta> = {
18
+ args: {
19
+ description:
20
+ 'Weighted totals from several independently adjustable quantities and per-unit factors, such as calories and nutrients across ingredients. Shows per-item quantity controls and recomputes aggregate measures.',
21
+ enabled: true,
22
+ name: 'Quantity totals',
23
+ },
17
24
  async play({ canvasElement }) {
18
25
  const canvas = within(canvasElement)
19
26
  const buttons = await canvas.findAllByRole('button', {