@moldable-ai/ui 0.2.22 → 0.2.25

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 (492) hide show
  1. package/dist/catalog/catalog-coverage.d.ts +1 -1
  2. package/dist/catalog/catalog-manifest.d.ts +1 -1
  3. package/dist/catalog/catalog-manifest.js +1 -1
  4. package/dist/catalog/component-catalog.d.ts +1 -1
  5. package/dist/catalog/component-catalog.js +2 -2
  6. package/dist/catalog/core-catalog-exclusions.d.ts +1 -1
  7. package/dist/catalog/core-catalog-exclusions.d.ts.map +1 -1
  8. package/dist/catalog/core-catalog-exclusions.js +1 -150
  9. package/dist/catalog/core-catalog.d.ts +1 -1
  10. package/dist/catalog/core-catalog.d.ts.map +1 -1
  11. package/dist/catalog/core-catalog.js +11 -7
  12. package/dist/catalog/core-collection-stories.d.ts +1 -1
  13. package/dist/catalog/core-collection-stories.d.ts.map +1 -1
  14. package/dist/catalog/core-collection-stories.js +40 -8
  15. package/dist/catalog/core-control-stories.d.ts +1 -1
  16. package/dist/catalog/core-control-stories.d.ts.map +1 -1
  17. package/dist/catalog/core-control-stories.js +48 -20
  18. package/dist/catalog/core-feedback-stories.d.ts +1 -1
  19. package/dist/catalog/core-feedback-stories.d.ts.map +1 -1
  20. package/dist/catalog/core-feedback-stories.js +89 -10
  21. package/dist/catalog/core-form-stories.d.ts +3 -0
  22. package/dist/catalog/core-form-stories.d.ts.map +1 -0
  23. package/dist/catalog/core-form-stories.js +56 -0
  24. package/dist/catalog/core-foundation-stories.d.ts +1 -1
  25. package/dist/catalog/core-foundation-stories.js +7 -7
  26. package/dist/catalog/core-layout-stories.d.ts +3 -0
  27. package/dist/catalog/core-layout-stories.d.ts.map +1 -0
  28. package/dist/catalog/core-layout-stories.js +78 -0
  29. package/dist/catalog/core-navigation-stories.d.ts +1 -1
  30. package/dist/catalog/core-navigation-stories.d.ts.map +1 -1
  31. package/dist/catalog/core-navigation-stories.js +25 -3
  32. package/dist/catalog/core-overlay-stories.d.ts +1 -1
  33. package/dist/catalog/core-overlay-stories.d.ts.map +1 -1
  34. package/dist/catalog/core-overlay-stories.js +113 -8
  35. package/dist/catalog/index.d.ts +6 -6
  36. package/dist/catalog/index.js +6 -6
  37. package/dist/components/app-error-boundary.js +2 -2
  38. package/dist/components/chat/chat-image-lightbox.js +3 -3
  39. package/dist/components/chat/chat-input.js +5 -5
  40. package/dist/components/chat/chat-message.js +17 -17
  41. package/dist/components/chat/chat-messages.d.ts +1 -1
  42. package/dist/components/chat/chat-messages.js +3 -3
  43. package/dist/components/chat/chat-panel.d.ts +6 -6
  44. package/dist/components/chat/chat-panel.d.ts.map +1 -1
  45. package/dist/components/chat/chat-panel.js +33 -33
  46. package/dist/components/chat/checkpoint-badge.js +3 -3
  47. package/dist/components/chat/conversation-history.d.ts.map +1 -1
  48. package/dist/components/chat/conversation-history.js +13 -13
  49. package/dist/components/chat/index.d.ts +20 -15
  50. package/dist/components/chat/index.d.ts.map +1 -1
  51. package/dist/components/chat/index.js +20 -15
  52. package/dist/components/chat/markdown.js +1 -1
  53. package/dist/components/chat/model-effort-selector.js +10 -10
  54. package/dist/components/chat/model-selector.js +4 -4
  55. package/dist/components/chat/reasoning-effort-selector.js +4 -4
  56. package/dist/components/chat/restore-dialog.js +3 -3
  57. package/dist/components/chat/thinking-timeline.js +2 -2
  58. package/dist/components/chat/tool-approval.d.ts +1 -1
  59. package/dist/components/chat/tool-approval.d.ts.map +1 -1
  60. package/dist/components/chat/tool-approval.js +9 -9
  61. package/dist/components/chat/tool-handlers.d.ts +2 -2
  62. package/dist/components/chat/tool-handlers.js +90 -90
  63. package/dist/components/chat/voice-orb-audio.d.ts +16 -0
  64. package/dist/components/chat/voice-orb-audio.d.ts.map +1 -0
  65. package/dist/components/chat/voice-orb-audio.js +110 -0
  66. package/dist/components/chat/voice-orb-renderer.d.ts +51 -0
  67. package/dist/components/chat/voice-orb-renderer.d.ts.map +1 -0
  68. package/dist/components/chat/voice-orb-renderer.js +410 -0
  69. package/dist/components/chat/voice-orb-shaders.d.ts +3 -0
  70. package/dist/components/chat/voice-orb-shaders.d.ts.map +1 -0
  71. package/dist/components/chat/voice-orb-shaders.js +355 -0
  72. package/dist/components/chat/voice-orb-types.d.ts +24 -0
  73. package/dist/components/chat/voice-orb-types.d.ts.map +1 -0
  74. package/dist/components/chat/voice-orb-types.js +73 -0
  75. package/dist/components/chat/voice-orb.d.ts +20 -0
  76. package/dist/components/chat/voice-orb.d.ts.map +1 -0
  77. package/dist/components/chat/voice-orb.js +67 -0
  78. package/dist/components/code-block.js +1 -1
  79. package/dist/components/hardware/bluetooth-panel.d.ts +2 -2
  80. package/dist/components/hardware/bluetooth-panel.js +10 -10
  81. package/dist/components/hardware/camera-preview.js +6 -6
  82. package/dist/components/hardware/capability-badge.d.ts +2 -2
  83. package/dist/components/hardware/capability-badge.js +2 -2
  84. package/dist/components/hardware/capability-matrix.d.ts +1 -1
  85. package/dist/components/hardware/capability-matrix.js +5 -5
  86. package/dist/components/hardware/clipboard-button.d.ts +1 -1
  87. package/dist/components/hardware/clipboard-button.js +2 -2
  88. package/dist/components/hardware/device-list.js +1 -1
  89. package/dist/components/hardware/display-map.d.ts +1 -1
  90. package/dist/components/hardware/display-map.js +7 -7
  91. package/dist/components/hardware/haptic-button.d.ts +2 -2
  92. package/dist/components/hardware/haptic-button.js +3 -3
  93. package/dist/components/hardware/hardware-panel.js +1 -1
  94. package/dist/components/hardware/hid-panel.d.ts +2 -2
  95. package/dist/components/hardware/hid-panel.js +10 -10
  96. package/dist/components/hardware/index.d.ts +26 -26
  97. package/dist/components/hardware/index.js +26 -26
  98. package/dist/components/hardware/live-indicator.js +1 -1
  99. package/dist/components/hardware/local-auth-button.d.ts +2 -2
  100. package/dist/components/hardware/local-auth-button.js +4 -4
  101. package/dist/components/hardware/location-panel.d.ts +1 -1
  102. package/dist/components/hardware/location-panel.js +6 -6
  103. package/dist/components/hardware/microphone-meter.js +7 -7
  104. package/dist/components/hardware/midi-monitor.d.ts +2 -2
  105. package/dist/components/hardware/midi-monitor.js +9 -9
  106. package/dist/components/hardware/notification-panel.d.ts +1 -1
  107. package/dist/components/hardware/notification-panel.js +8 -8
  108. package/dist/components/hardware/power-blocker-controller.d.ts +1 -1
  109. package/dist/components/hardware/power-blocker-controller.js +1 -1
  110. package/dist/components/hardware/power-panel.d.ts +1 -1
  111. package/dist/components/hardware/power-panel.js +9 -9
  112. package/dist/components/hardware/readout.js +1 -1
  113. package/dist/components/hardware/screen-share-preview.js +5 -5
  114. package/dist/components/hardware/secure-storage-panel.d.ts +1 -1
  115. package/dist/components/hardware/secure-storage-panel.js +9 -9
  116. package/dist/components/hardware/serial-console.d.ts +2 -2
  117. package/dist/components/hardware/serial-console.js +10 -10
  118. package/dist/components/hardware/shortcut-recorder.d.ts +1 -1
  119. package/dist/components/hardware/shortcut-recorder.js +4 -4
  120. package/dist/components/hardware/stream-log.js +1 -1
  121. package/dist/components/hardware/system-audio-monitor.d.ts +1 -1
  122. package/dist/components/hardware/system-audio-monitor.js +9 -9
  123. package/dist/components/hardware/usb-panel.d.ts +5 -5
  124. package/dist/components/hardware/usb-panel.js +10 -10
  125. package/dist/components/hardware/use-capability.d.ts +1 -1
  126. package/dist/components/hardware/use-capability.js +1 -1
  127. package/dist/components/markdown.js +5 -5
  128. package/dist/components/native-capabilities/bluetooth-panel.d.ts +2 -2
  129. package/dist/components/native-capabilities/bluetooth-panel.d.ts.map +1 -1
  130. package/dist/components/native-capabilities/bluetooth-panel.js +17 -17
  131. package/dist/components/native-capabilities/camera-preview.d.ts.map +1 -1
  132. package/dist/components/native-capabilities/camera-preview.js +7 -7
  133. package/dist/components/native-capabilities/capability-badge.d.ts +2 -2
  134. package/dist/components/native-capabilities/capability-badge.js +4 -4
  135. package/dist/components/native-capabilities/capability-matrix.d.ts +1 -1
  136. package/dist/components/native-capabilities/capability-matrix.js +7 -7
  137. package/dist/components/native-capabilities/clipboard-button.d.ts +1 -1
  138. package/dist/components/native-capabilities/clipboard-button.js +2 -2
  139. package/dist/components/native-capabilities/device-list.js +4 -4
  140. package/dist/components/native-capabilities/display-map.d.ts +1 -1
  141. package/dist/components/native-capabilities/display-map.d.ts.map +1 -1
  142. package/dist/components/native-capabilities/display-map.js +11 -11
  143. package/dist/components/native-capabilities/haptic-button.d.ts +2 -2
  144. package/dist/components/native-capabilities/haptic-button.js +3 -3
  145. package/dist/components/native-capabilities/hid-panel.d.ts +2 -2
  146. package/dist/components/native-capabilities/hid-panel.d.ts.map +1 -1
  147. package/dist/components/native-capabilities/hid-panel.js +14 -14
  148. package/dist/components/native-capabilities/index.d.ts +26 -26
  149. package/dist/components/native-capabilities/index.js +26 -26
  150. package/dist/components/native-capabilities/live-indicator.js +3 -3
  151. package/dist/components/native-capabilities/local-auth-button.d.ts +2 -2
  152. package/dist/components/native-capabilities/local-auth-button.js +4 -4
  153. package/dist/components/native-capabilities/location-panel.d.ts +1 -1
  154. package/dist/components/native-capabilities/location-panel.d.ts.map +1 -1
  155. package/dist/components/native-capabilities/location-panel.js +8 -8
  156. package/dist/components/native-capabilities/microphone-meter.js +9 -9
  157. package/dist/components/native-capabilities/midi-monitor.d.ts +2 -2
  158. package/dist/components/native-capabilities/midi-monitor.d.ts.map +1 -1
  159. package/dist/components/native-capabilities/midi-monitor.js +11 -11
  160. package/dist/components/native-capabilities/native-capability-panel.js +6 -6
  161. package/dist/components/native-capabilities/notification-panel.d.ts +1 -1
  162. package/dist/components/native-capabilities/notification-panel.js +9 -9
  163. package/dist/components/native-capabilities/power-blocker-controller.d.ts +1 -1
  164. package/dist/components/native-capabilities/power-blocker-controller.js +1 -1
  165. package/dist/components/native-capabilities/power-panel.d.ts +1 -1
  166. package/dist/components/native-capabilities/power-panel.d.ts.map +1 -1
  167. package/dist/components/native-capabilities/power-panel.js +12 -12
  168. package/dist/components/native-capabilities/readout.d.ts.map +1 -1
  169. package/dist/components/native-capabilities/readout.js +2 -2
  170. package/dist/components/native-capabilities/screen-share-preview.js +6 -6
  171. package/dist/components/native-capabilities/secure-storage-panel.d.ts +1 -1
  172. package/dist/components/native-capabilities/secure-storage-panel.d.ts.map +1 -1
  173. package/dist/components/native-capabilities/secure-storage-panel.js +11 -11
  174. package/dist/components/native-capabilities/serial-console.d.ts +2 -2
  175. package/dist/components/native-capabilities/serial-console.d.ts.map +1 -1
  176. package/dist/components/native-capabilities/serial-console.js +11 -11
  177. package/dist/components/native-capabilities/shortcut-recorder.d.ts +1 -1
  178. package/dist/components/native-capabilities/shortcut-recorder.js +5 -5
  179. package/dist/components/native-capabilities/stream-log.js +3 -3
  180. package/dist/components/native-capabilities/system-audio-monitor.d.ts +1 -1
  181. package/dist/components/native-capabilities/system-audio-monitor.js +12 -12
  182. package/dist/components/native-capabilities/usb-panel.d.ts +5 -5
  183. package/dist/components/native-capabilities/usb-panel.js +15 -15
  184. package/dist/components/native-capabilities/use-capability.d.ts +1 -1
  185. package/dist/components/native-capabilities/use-capability.js +1 -1
  186. package/dist/components/rich-media-player.js +3 -3
  187. package/dist/components/ui/accordion.js +3 -3
  188. package/dist/components/ui/alert-dialog.d.ts +2 -2
  189. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  190. package/dist/components/ui/alert-dialog.js +16 -10
  191. package/dist/components/ui/alert.d.ts +1 -1
  192. package/dist/components/ui/alert.d.ts.map +1 -1
  193. package/dist/components/ui/alert.js +11 -11
  194. package/dist/components/ui/app-frame.d.ts +7 -1
  195. package/dist/components/ui/app-frame.d.ts.map +1 -1
  196. package/dist/components/ui/app-frame.js +52 -16
  197. package/dist/components/ui/avatar.js +5 -5
  198. package/dist/components/ui/badge.d.ts +1 -1
  199. package/dist/components/ui/badge.js +4 -4
  200. package/dist/components/ui/breadcrumb.js +2 -2
  201. package/dist/components/ui/button-group.d.ts +1 -1
  202. package/dist/components/ui/button-group.js +4 -4
  203. package/dist/components/ui/button.d.ts +1 -1
  204. package/dist/components/ui/button.d.ts.map +1 -1
  205. package/dist/components/ui/button.js +16 -16
  206. package/dist/components/ui/calendar.d.ts +1 -1
  207. package/dist/components/ui/calendar.d.ts.map +1 -1
  208. package/dist/components/ui/calendar.js +15 -15
  209. package/dist/components/ui/card.js +3 -3
  210. package/dist/components/ui/carousel.d.ts +1 -1
  211. package/dist/components/ui/carousel.js +4 -4
  212. package/dist/components/ui/chart.js +5 -5
  213. package/dist/components/ui/checkbox.d.ts.map +1 -1
  214. package/dist/components/ui/checkbox.js +2 -2
  215. package/dist/components/ui/collapsible.js +3 -3
  216. package/dist/components/ui/color-well.js +2 -2
  217. package/dist/components/ui/combobox.js +9 -9
  218. package/dist/components/ui/command.d.ts +1 -1
  219. package/dist/components/ui/command.d.ts.map +1 -1
  220. package/dist/components/ui/command.js +9 -9
  221. package/dist/components/ui/confirm-dialog.d.ts +1 -1
  222. package/dist/components/ui/confirm-dialog.js +2 -2
  223. package/dist/components/ui/context-menu.d.ts +16 -5
  224. package/dist/components/ui/context-menu.d.ts.map +1 -1
  225. package/dist/components/ui/context-menu.js +92 -16
  226. package/dist/components/ui/date-field.d.ts.map +1 -1
  227. package/dist/components/ui/date-field.js +8 -8
  228. package/dist/components/ui/date-picker.d.ts +2 -2
  229. package/dist/components/ui/date-picker.js +7 -7
  230. package/dist/components/ui/dialog.d.ts +2 -2
  231. package/dist/components/ui/dialog.d.ts.map +1 -1
  232. package/dist/components/ui/dialog.js +16 -8
  233. package/dist/components/ui/drawer.js +4 -4
  234. package/dist/components/ui/dropdown-menu.d.ts +15 -5
  235. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  236. package/dist/components/ui/dropdown-menu.js +98 -16
  237. package/dist/components/ui/edge-fade.js +1 -1
  238. package/dist/components/ui/empty.d.ts +1 -1
  239. package/dist/components/ui/empty.js +5 -5
  240. package/dist/components/ui/error-boundary-view.d.ts.map +1 -1
  241. package/dist/components/ui/error-boundary-view.js +3 -3
  242. package/dist/components/ui/field.d.ts +1 -1
  243. package/dist/components/ui/field.d.ts.map +1 -1
  244. package/dist/components/ui/field.js +9 -9
  245. package/dist/components/ui/form.js +4 -4
  246. package/dist/components/ui/grid.d.ts.map +1 -1
  247. package/dist/components/ui/grid.js +5 -5
  248. package/dist/components/ui/hover-card.js +2 -2
  249. package/dist/components/ui/icon-button.d.ts +1 -1
  250. package/dist/components/ui/icon-button.js +3 -3
  251. package/dist/components/ui/index.d.ts +77 -77
  252. package/dist/components/ui/index.js +77 -77
  253. package/dist/components/ui/input-group.d.ts +2 -2
  254. package/dist/components/ui/input-group.js +14 -14
  255. package/dist/components/ui/input-otp.js +3 -3
  256. package/dist/components/ui/input.js +2 -2
  257. package/dist/components/ui/inspector.d.ts +1 -1
  258. package/dist/components/ui/inspector.js +6 -6
  259. package/dist/components/ui/item.d.ts +1 -1
  260. package/dist/components/ui/item.js +7 -7
  261. package/dist/components/ui/kbd.js +2 -2
  262. package/dist/components/ui/label.js +2 -2
  263. package/dist/components/ui/list.d.ts.map +1 -1
  264. package/dist/components/ui/list.js +5 -5
  265. package/dist/components/ui/material.js +3 -3
  266. package/dist/components/ui/menu-items.d.ts +28 -0
  267. package/dist/components/ui/menu-items.d.ts.map +1 -0
  268. package/dist/components/ui/menu-items.js +111 -0
  269. package/dist/components/ui/menubar.js +11 -11
  270. package/dist/components/ui/message-scroller-controller.d.ts +1 -1
  271. package/dist/components/ui/message-scroller-controller.js +1 -1
  272. package/dist/components/ui/message-scroller-primitive.d.ts +1 -1
  273. package/dist/components/ui/message-scroller-primitive.js +1 -1
  274. package/dist/components/ui/message-scroller.d.ts +2 -2
  275. package/dist/components/ui/message-scroller.js +3 -3
  276. package/dist/components/ui/navigation-button-group.d.ts +2 -2
  277. package/dist/components/ui/navigation-button-group.js +2 -2
  278. package/dist/components/ui/navigation-menu.js +6 -6
  279. package/dist/components/ui/notification-dot.js +2 -2
  280. package/dist/components/ui/number-input.js +8 -8
  281. package/dist/components/ui/pagination.d.ts +1 -1
  282. package/dist/components/ui/pagination.js +2 -2
  283. package/dist/components/ui/panel.d.ts +1 -1
  284. package/dist/components/ui/panel.js +3 -3
  285. package/dist/components/ui/popover.d.ts +1 -1
  286. package/dist/components/ui/popover.js +3 -3
  287. package/dist/components/ui/progress.js +2 -2
  288. package/dist/components/ui/radio-group.d.ts.map +1 -1
  289. package/dist/components/ui/radio-group.js +2 -2
  290. package/dist/components/ui/resizable.d.ts +1 -1
  291. package/dist/components/ui/resizable.d.ts.map +1 -1
  292. package/dist/components/ui/resizable.js +15 -4
  293. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  294. package/dist/components/ui/scroll-area.js +3 -3
  295. package/dist/components/ui/search-field.js +7 -7
  296. package/dist/components/ui/segmented-control.js +9 -9
  297. package/dist/components/ui/select.d.ts.map +1 -1
  298. package/dist/components/ui/select.js +6 -6
  299. package/dist/components/ui/separator.js +1 -1
  300. package/dist/components/ui/sheet.js +4 -4
  301. package/dist/components/ui/sidebar.d.ts +5 -5
  302. package/dist/components/ui/sidebar.d.ts.map +1 -1
  303. package/dist/components/ui/sidebar.js +111 -24
  304. package/dist/components/ui/skeleton.js +2 -2
  305. package/dist/components/ui/slider.d.ts +3 -1
  306. package/dist/components/ui/slider.d.ts.map +1 -1
  307. package/dist/components/ui/slider.js +3 -3
  308. package/dist/components/ui/sonner.js +1 -1
  309. package/dist/components/ui/spinner.js +1 -1
  310. package/dist/components/ui/split-view.js +1 -1
  311. package/dist/components/ui/status.d.ts +1 -1
  312. package/dist/components/ui/status.d.ts.map +1 -1
  313. package/dist/components/ui/status.js +10 -9
  314. package/dist/components/ui/switch.js +2 -2
  315. package/dist/components/ui/table.d.ts.map +1 -1
  316. package/dist/components/ui/table.js +7 -7
  317. package/dist/components/ui/tabs.js +3 -3
  318. package/dist/components/ui/text.d.ts +2 -2
  319. package/dist/components/ui/text.js +19 -19
  320. package/dist/components/ui/textarea.js +2 -2
  321. package/dist/components/ui/toggle-group.d.ts +1 -1
  322. package/dist/components/ui/toggle-group.js +4 -4
  323. package/dist/components/ui/toggle.d.ts +1 -1
  324. package/dist/components/ui/toggle.js +10 -10
  325. package/dist/components/ui/toolbar.d.ts +7 -7
  326. package/dist/components/ui/toolbar.js +7 -7
  327. package/dist/components/ui/tooltip.d.ts +2 -2
  328. package/dist/components/ui/tooltip.js +5 -5
  329. package/dist/index.d.ts +21 -20
  330. package/dist/index.d.ts.map +1 -1
  331. package/dist/index.js +21 -20
  332. package/dist/lib/frame-lifecycle.d.ts +27 -0
  333. package/dist/lib/frame-lifecycle.d.ts.map +1 -1
  334. package/dist/lib/frame-lifecycle.js +136 -0
  335. package/dist/lib/host-date-time-picker.d.ts +1 -1
  336. package/dist/lib/host-date-time-picker.js +1 -1
  337. package/dist/lib/host-file-dialog.d.ts +1 -1
  338. package/dist/lib/host-file-dialog.js +1 -1
  339. package/dist/lib/host-native-menu.d.ts +48 -7
  340. package/dist/lib/host-native-menu.d.ts.map +1 -1
  341. package/dist/lib/host-native-menu.js +56 -1
  342. package/dist/lib/host-services.js +1 -1
  343. package/dist/lib/host-share.d.ts +1 -1
  344. package/dist/lib/host-share.js +1 -1
  345. package/dist/lib/host-web-surface.d.ts +31 -0
  346. package/dist/lib/host-web-surface.d.ts.map +1 -0
  347. package/dist/lib/host-web-surface.js +116 -0
  348. package/dist/lib/native-capabilities/access.d.ts +2 -2
  349. package/dist/lib/native-capabilities/access.js +2 -2
  350. package/dist/lib/native-capabilities/bluetooth-access.d.ts +1 -1
  351. package/dist/lib/native-capabilities/bluetooth-access.js +2 -2
  352. package/dist/lib/native-capabilities/bluetooth-connection.d.ts +1 -1
  353. package/dist/lib/native-capabilities/bluetooth-connection.js +1 -1
  354. package/dist/lib/native-capabilities/bluetooth-gatt.d.ts +1 -1
  355. package/dist/lib/native-capabilities/bluetooth-gatt.js +1 -1
  356. package/dist/lib/native-capabilities/bluetooth-internal.d.ts +2 -2
  357. package/dist/lib/native-capabilities/bluetooth-internal.js +1 -1
  358. package/dist/lib/native-capabilities/bluetooth-native-fallback.d.ts +2 -2
  359. package/dist/lib/native-capabilities/bluetooth-native-fallback.js +2 -2
  360. package/dist/lib/native-capabilities/bluetooth.d.ts +6 -6
  361. package/dist/lib/native-capabilities/bluetooth.js +4 -4
  362. package/dist/lib/native-capabilities/bridge.d.ts +1 -1
  363. package/dist/lib/native-capabilities/bridge.js +2 -2
  364. package/dist/lib/native-capabilities/capabilities.d.ts +1 -1
  365. package/dist/lib/native-capabilities/capabilities.js +1 -1
  366. package/dist/lib/native-capabilities/clipboard.js +2 -2
  367. package/dist/lib/native-capabilities/device-io-errors.d.ts +1 -1
  368. package/dist/lib/native-capabilities/device-io-errors.js +1 -1
  369. package/dist/lib/native-capabilities/displays.d.ts +1 -1
  370. package/dist/lib/native-capabilities/displays.js +1 -1
  371. package/dist/lib/native-capabilities/global-shortcuts.d.ts +2 -2
  372. package/dist/lib/native-capabilities/global-shortcuts.js +1 -1
  373. package/dist/lib/native-capabilities/haptics.d.ts +1 -1
  374. package/dist/lib/native-capabilities/haptics.js +1 -1
  375. package/dist/lib/native-capabilities/hid-native.d.ts +2 -2
  376. package/dist/lib/native-capabilities/hid-native.js +3 -3
  377. package/dist/lib/native-capabilities/hid.js +5 -5
  378. package/dist/lib/native-capabilities/index.d.ts +39 -39
  379. package/dist/lib/native-capabilities/index.js +21 -21
  380. package/dist/lib/native-capabilities/local-authentication.d.ts +1 -1
  381. package/dist/lib/native-capabilities/local-authentication.js +1 -1
  382. package/dist/lib/native-capabilities/location.js +1 -1
  383. package/dist/lib/native-capabilities/media-permissions.d.ts +1 -1
  384. package/dist/lib/native-capabilities/media-permissions.js +1 -1
  385. package/dist/lib/native-capabilities/media.d.ts +1 -1
  386. package/dist/lib/native-capabilities/media.js +2 -2
  387. package/dist/lib/native-capabilities/midi-access.d.ts +1 -1
  388. package/dist/lib/native-capabilities/midi-access.js +3 -3
  389. package/dist/lib/native-capabilities/midi-internal.d.ts +1 -1
  390. package/dist/lib/native-capabilities/midi-internal.js +1 -1
  391. package/dist/lib/native-capabilities/midi-native-fallback.d.ts +1 -1
  392. package/dist/lib/native-capabilities/midi-native-fallback.js +2 -2
  393. package/dist/lib/native-capabilities/midi-ports.d.ts +1 -1
  394. package/dist/lib/native-capabilities/midi-ports.js +1 -1
  395. package/dist/lib/native-capabilities/midi.d.ts +5 -5
  396. package/dist/lib/native-capabilities/midi.js +3 -3
  397. package/dist/lib/native-capabilities/native-device-io.d.ts +1 -1
  398. package/dist/lib/native-capabilities/native-device-io.js +1 -1
  399. package/dist/lib/native-capabilities/native-device-lifecycle.js +1 -1
  400. package/dist/lib/native-capabilities/notifications.d.ts +2 -2
  401. package/dist/lib/native-capabilities/notifications.js +1 -1
  402. package/dist/lib/native-capabilities/power-session.d.ts +2 -2
  403. package/dist/lib/native-capabilities/power-session.js +1 -1
  404. package/dist/lib/native-capabilities/secure-storage.d.ts +1 -1
  405. package/dist/lib/native-capabilities/secure-storage.js +1 -1
  406. package/dist/lib/native-capabilities/serial-native.d.ts +2 -2
  407. package/dist/lib/native-capabilities/serial-native.js +3 -3
  408. package/dist/lib/native-capabilities/serial.js +5 -5
  409. package/dist/lib/native-capabilities/system-audio.d.ts +1 -1
  410. package/dist/lib/native-capabilities/system-audio.js +1 -1
  411. package/dist/lib/native-capabilities/usb-native.d.ts +2 -2
  412. package/dist/lib/native-capabilities/usb-native.js +3 -3
  413. package/dist/lib/native-capabilities/usb.js +5 -5
  414. package/dist/lib/native-hardware/bluetooth-access.d.ts +1 -1
  415. package/dist/lib/native-hardware/bluetooth-access.js +1 -1
  416. package/dist/lib/native-hardware/bluetooth-connection.d.ts +1 -1
  417. package/dist/lib/native-hardware/bluetooth-connection.js +1 -1
  418. package/dist/lib/native-hardware/bluetooth-gatt.d.ts +1 -1
  419. package/dist/lib/native-hardware/bluetooth-gatt.js +1 -1
  420. package/dist/lib/native-hardware/bluetooth-internal.d.ts +2 -2
  421. package/dist/lib/native-hardware/bluetooth-internal.js +1 -1
  422. package/dist/lib/native-hardware/bluetooth-native-fallback.d.ts +2 -2
  423. package/dist/lib/native-hardware/bluetooth-native-fallback.js +2 -2
  424. package/dist/lib/native-hardware/bluetooth.d.ts +6 -6
  425. package/dist/lib/native-hardware/bluetooth.js +4 -4
  426. package/dist/lib/native-hardware/bridge.d.ts +1 -1
  427. package/dist/lib/native-hardware/bridge.js +2 -2
  428. package/dist/lib/native-hardware/capabilities.d.ts +1 -1
  429. package/dist/lib/native-hardware/capabilities.js +1 -1
  430. package/dist/lib/native-hardware/clipboard.js +1 -1
  431. package/dist/lib/native-hardware/device-io-errors.d.ts +1 -1
  432. package/dist/lib/native-hardware/device-io-errors.js +1 -1
  433. package/dist/lib/native-hardware/displays.d.ts +1 -1
  434. package/dist/lib/native-hardware/displays.js +1 -1
  435. package/dist/lib/native-hardware/global-shortcuts.d.ts +2 -2
  436. package/dist/lib/native-hardware/global-shortcuts.js +1 -1
  437. package/dist/lib/native-hardware/haptics.d.ts +1 -1
  438. package/dist/lib/native-hardware/haptics.js +1 -1
  439. package/dist/lib/native-hardware/hid-native.d.ts +2 -2
  440. package/dist/lib/native-hardware/hid-native.js +3 -3
  441. package/dist/lib/native-hardware/hid.js +4 -4
  442. package/dist/lib/native-hardware/index.d.ts +37 -37
  443. package/dist/lib/native-hardware/index.js +20 -20
  444. package/dist/lib/native-hardware/local-authentication.d.ts +1 -1
  445. package/dist/lib/native-hardware/local-authentication.js +1 -1
  446. package/dist/lib/native-hardware/location.js +1 -1
  447. package/dist/lib/native-hardware/media-permissions.d.ts +1 -1
  448. package/dist/lib/native-hardware/media-permissions.js +1 -1
  449. package/dist/lib/native-hardware/media.d.ts +1 -1
  450. package/dist/lib/native-hardware/media.js +1 -1
  451. package/dist/lib/native-hardware/midi-access.d.ts +1 -1
  452. package/dist/lib/native-hardware/midi-access.js +2 -2
  453. package/dist/lib/native-hardware/midi-internal.d.ts +1 -1
  454. package/dist/lib/native-hardware/midi-internal.js +1 -1
  455. package/dist/lib/native-hardware/midi-native-fallback.d.ts +1 -1
  456. package/dist/lib/native-hardware/midi-native-fallback.js +2 -2
  457. package/dist/lib/native-hardware/midi-ports.d.ts +1 -1
  458. package/dist/lib/native-hardware/midi-ports.js +1 -1
  459. package/dist/lib/native-hardware/midi.d.ts +5 -5
  460. package/dist/lib/native-hardware/midi.js +3 -3
  461. package/dist/lib/native-hardware/native-device-io.d.ts +1 -1
  462. package/dist/lib/native-hardware/native-device-io.js +1 -1
  463. package/dist/lib/native-hardware/native-device-lifecycle.js +1 -1
  464. package/dist/lib/native-hardware/notifications.d.ts +2 -2
  465. package/dist/lib/native-hardware/notifications.js +1 -1
  466. package/dist/lib/native-hardware/power-session.d.ts +2 -2
  467. package/dist/lib/native-hardware/power-session.js +1 -1
  468. package/dist/lib/native-hardware/secure-storage.d.ts +1 -1
  469. package/dist/lib/native-hardware/secure-storage.js +1 -1
  470. package/dist/lib/native-hardware/serial-native.d.ts +2 -2
  471. package/dist/lib/native-hardware/serial-native.js +3 -3
  472. package/dist/lib/native-hardware/serial.js +4 -4
  473. package/dist/lib/native-hardware/system-audio.d.ts +1 -1
  474. package/dist/lib/native-hardware/system-audio.js +1 -1
  475. package/dist/lib/native-hardware/usb-native.d.ts +2 -2
  476. package/dist/lib/native-hardware/usb-native.js +3 -3
  477. package/dist/lib/native-hardware/usb.js +4 -4
  478. package/dist/lib/theme.js +1 -1
  479. package/docs/design-tokens.md +28 -6
  480. package/docs/foundations.md +4 -2
  481. package/package.json +4 -2
  482. package/src/components/ui/confirm-dialog.md +97 -0
  483. package/src/components/ui/context-menu.md +158 -0
  484. package/src/components/ui/dropdown-menu.md +165 -0
  485. package/src/components/ui/hover-card.md +90 -0
  486. package/src/components/ui/select.md +111 -0
  487. package/src/lib/host-date-time-picker.md +29 -0
  488. package/src/lib/host-file-dialog.md +76 -0
  489. package/src/lib/host-native-menu.md +67 -0
  490. package/src/lib/host-share.md +36 -0
  491. package/src/lib/host-web-surface.md +66 -0
  492. package/src/styles/index.css +141 -68
@@ -1,4 +1,4 @@
1
- import type { CatalogManifest } from './catalog-types';
1
+ import type { CatalogManifest } from './catalog-types.js';
2
2
  export interface CatalogCoverageExclusion {
3
3
  component: string;
4
4
  reason: string;
@@ -1,4 +1,4 @@
1
- import { type CatalogCase, type CatalogCaseFilter, type CatalogManifest, type CatalogSectionDefinition, type CatalogStoryDefinition } from './catalog-types';
1
+ import { type CatalogCase, type CatalogCaseFilter, type CatalogManifest, type CatalogSectionDefinition, type CatalogStoryDefinition } from './catalog-types.js';
2
2
  export declare function createCatalogStory(story: CatalogStoryDefinition): CatalogStoryDefinition;
3
3
  export declare function createCatalogSection(section: CatalogSectionDefinition): CatalogSectionDefinition;
4
4
  export declare function createCatalogManifest(manifest: CatalogManifest): CatalogManifest;
@@ -1,4 +1,4 @@
1
- import { catalogDensities, catalogThemes, catalogViewports, } from './catalog-types';
1
+ import { catalogDensities, catalogThemes, catalogViewports, } from './catalog-types.js';
2
2
  const catalogIdPattern = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/;
3
3
  function assertCatalogId(id, kind) {
4
4
  if (!catalogIdPattern.test(id)) {
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import type { CatalogCase, CatalogCaseFilter, CatalogManifest } from './catalog-types';
2
+ import type { CatalogCase, CatalogCaseFilter, CatalogManifest } from './catalog-types.js';
3
3
  export interface ComponentCatalogProps extends Omit<React.ComponentProps<'main'>, 'children'> {
4
4
  manifest: CatalogManifest;
5
5
  filter?: CatalogCaseFilter;
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { cn } from '../lib/utils';
4
- import { buildCatalogCases } from './catalog-manifest';
3
+ import { cn } from '../lib/utils.js';
4
+ import { buildCatalogCases } from './catalog-manifest.js';
5
5
  function caseLabel(catalogCase) {
6
6
  const labels = [
7
7
  catalogCase.theme,
@@ -1,4 +1,4 @@
1
- import type { CatalogCoverageExclusion } from './catalog-coverage';
1
+ import type { CatalogCoverageExclusion } from './catalog-coverage.js';
2
2
  /**
3
3
  * Intentional gaps in the deterministic core catalog. Keeping this list
4
4
  * explicit makes every new public visual module choose between authored
@@ -1 +1 @@
1
- {"version":3,"file":"core-catalog-exclusions.d.ts","sourceRoot":"","sources":["../../src/catalog/core-catalog-exclusions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAElE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,wBAAwB,EAsJ3D,CAAA"}
1
+ {"version":3,"file":"core-catalog-exclusions.d.ts","sourceRoot":"","sources":["../../src/catalog/core-catalog-exclusions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAElE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,wBAAwB,EAAO,CAAA"}
@@ -3,153 +3,4 @@
3
3
  * explicit makes every new public visual module choose between authored
4
4
  * coverage and a reviewable, temporary reason for deferral.
5
5
  */
6
- export const coreCatalogExclusions = [
7
- {
8
- component: 'accordion',
9
- reason: 'Needs an authored expanded and collapsed keyboard matrix.',
10
- },
11
- {
12
- component: 'alert-dialog',
13
- reason: 'Requires isolated portal rendering before open states are stable.',
14
- },
15
- {
16
- component: 'aspect-ratio',
17
- reason: 'Layout utility is exercised by consumer media compositions.',
18
- },
19
- {
20
- component: 'calendar',
21
- reason: 'Needs a dedicated date-grid interaction matrix.',
22
- },
23
- {
24
- component: 'carousel',
25
- reason: 'Needs stable geometry and navigation fixtures.',
26
- },
27
- {
28
- component: 'chart',
29
- reason: 'Needs deterministic chart data and resize fixtures.',
30
- },
31
- {
32
- component: 'collapsible',
33
- reason: 'Needs an authored disclosure-state matrix.',
34
- },
35
- {
36
- component: 'combobox',
37
- reason: 'Requires isolated portal and filtering coverage.',
38
- },
39
- {
40
- component: 'command',
41
- reason: 'Needs search, selection, empty, and keyboard fixtures.',
42
- },
43
- {
44
- component: 'confirm-dialog',
45
- reason: 'Requires isolated async portal-state rendering.',
46
- },
47
- {
48
- component: 'context-menu',
49
- reason: 'Requires isolated pointer-positioned portal rendering.',
50
- },
51
- {
52
- component: 'dialog',
53
- reason: 'Requires isolated portal rendering before open states are stable.',
54
- },
55
- {
56
- component: 'drawer',
57
- reason: 'Requires isolated viewport and gesture fixtures.',
58
- },
59
- {
60
- component: 'dropdown-menu',
61
- reason: 'Requires isolated portal and keyboard coverage.',
62
- },
63
- {
64
- component: 'error-boundary-view',
65
- reason: 'Needs the separately planned pane and full-window catalog test host.',
66
- },
67
- {
68
- component: 'date-picker',
69
- reason: 'Requires isolated calendar portal rendering.',
70
- },
71
- {
72
- component: 'edge-fade',
73
- reason: 'Needs deterministic overflow geometry.',
74
- },
75
- {
76
- component: 'form',
77
- reason: 'Behavioral adapter is covered through authored field stories.',
78
- },
79
- {
80
- component: 'hover-card',
81
- reason: 'Requires isolated delayed-hover portal rendering.',
82
- },
83
- {
84
- component: 'input-group',
85
- reason: 'Needs addon, button, and validation compositions.',
86
- },
87
- {
88
- component: 'input-otp',
89
- reason: 'Needs input-sequence and paste fixtures.',
90
- },
91
- {
92
- component: 'inspector',
93
- reason: 'Needs a representative property-editing composition.',
94
- },
95
- {
96
- component: 'label',
97
- reason: 'Covered indirectly by labeled control compositions.',
98
- },
99
- {
100
- component: 'menubar',
101
- reason: 'Requires isolated multi-menu portal coverage.',
102
- },
103
- {
104
- component: 'message-scroller',
105
- reason: 'Needs deterministic overflow and anchoring geometry.',
106
- },
107
- {
108
- component: 'navigation-menu',
109
- reason: 'Requires isolated viewport and portal coverage.',
110
- },
111
- {
112
- component: 'pagination',
113
- reason: 'Needs compact and large-page-count compositions.',
114
- },
115
- {
116
- component: 'resizable',
117
- reason: 'Needs stable browser geometry and drag fixtures.',
118
- },
119
- {
120
- component: 'scroll-area',
121
- reason: 'Needs deterministic overflow geometry.',
122
- },
123
- {
124
- component: 'select',
125
- reason: 'Requires isolated portal and keyboard coverage.',
126
- },
127
- {
128
- component: 'separator',
129
- reason: 'Covered indirectly by toolbar, item, and panel compositions.',
130
- },
131
- {
132
- component: 'sheet',
133
- reason: 'Requires isolated portal and viewport-edge coverage.',
134
- },
135
- {
136
- component: 'sidebar',
137
- reason: 'Needs a complete app-shell viewport fixture.',
138
- },
139
- {
140
- component: 'slider',
141
- reason: 'Needs pointer and keyboard value fixtures.',
142
- },
143
- {
144
- component: 'split-view',
145
- reason: 'Needs stable browser geometry and drag fixtures.',
146
- },
147
- {
148
- component: 'sonner',
149
- reason: 'Requires an isolated live toaster host.',
150
- },
151
- {
152
- component: 'tooltip',
153
- reason: 'Requires isolated delayed portal rendering.',
154
- },
155
- ];
6
+ export const coreCatalogExclusions = [];
@@ -1,2 +1,2 @@
1
- export declare const coreComponentCatalog: import("./catalog-types").CatalogManifest;
1
+ export declare const coreComponentCatalog: import("./catalog-types.js").CatalogManifest;
2
2
  //# sourceMappingURL=core-catalog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-catalog.d.ts","sourceRoot":"","sources":["../../src/catalog/core-catalog.tsx"],"names":[],"mappings":"AAQA,eAAO,MAAM,oBAAoB,2CAY/B,CAAA"}
1
+ {"version":3,"file":"core-catalog.d.ts","sourceRoot":"","sources":["../../src/catalog/core-catalog.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,oBAAoB,2CAc/B,CAAA"}
@@ -1,18 +1,22 @@
1
- import { createCatalogManifest } from './catalog-manifest';
2
- import { coreCollectionsSection } from './core-collection-stories';
3
- import { coreControlsSection } from './core-control-stories';
4
- import { coreFeedbackSection } from './core-feedback-stories';
5
- import { coreFoundationSection } from './core-foundation-stories';
6
- import { coreNavigationSection } from './core-navigation-stories';
7
- import { coreOverlaysSection } from './core-overlay-stories';
1
+ import { createCatalogManifest } from './catalog-manifest.js';
2
+ import { coreCollectionsSection } from './core-collection-stories.js';
3
+ import { coreControlsSection } from './core-control-stories.js';
4
+ import { coreFeedbackSection } from './core-feedback-stories.js';
5
+ import { coreFormsSection } from './core-form-stories.js';
6
+ import { coreFoundationSection } from './core-foundation-stories.js';
7
+ import { coreLayoutSection } from './core-layout-stories.js';
8
+ import { coreNavigationSection } from './core-navigation-stories.js';
9
+ import { coreOverlaysSection } from './core-overlay-stories.js';
8
10
  export const coreComponentCatalog = createCatalogManifest({
9
11
  title: 'Moldable UI component catalog',
10
12
  description: 'Deterministic component cases for review and visual regression coverage.',
11
13
  sections: [
12
14
  coreFoundationSection,
13
15
  coreControlsSection,
16
+ coreFormsSection,
14
17
  coreCollectionsSection,
15
18
  coreNavigationSection,
19
+ coreLayoutSection,
16
20
  coreOverlaysSection,
17
21
  coreFeedbackSection,
18
22
  ],
@@ -1,3 +1,3 @@
1
- import type { CatalogSectionDefinition } from './catalog-types';
1
+ import type { CatalogSectionDefinition } from './catalog-types.js';
2
2
  export declare const coreCollectionsSection: CatalogSectionDefinition;
3
3
  //# sourceMappingURL=core-collection-stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-collection-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-collection-stories.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAE/D,eAAO,MAAM,sBAAsB,EAAE,wBAwIpC,CAAA"}
1
+ {"version":3,"file":"core-collection-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-collection-stories.tsx"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAgB/D,eAAO,MAAM,sBAAsB,EAAE,wBAoNpC,CAAA"}
@@ -1,10 +1,25 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { FileTextIcon, MoreHorizontalIcon } from 'lucide-react';
3
- import { Grid, GridItem, GridItemContent, GridItemDescription, GridItemTitle, } from '../components/ui/grid';
4
- import { IconButton } from '../components/ui/icon-button';
5
- import { Item, ItemActions, ItemContent, ItemDescription, ItemGroup, ItemMedia, ItemTitle, } from '../components/ui/item';
6
- import { List, ListItem, ListItemContent, ListItemDescription, ListItemTitle, } from '../components/ui/list';
7
- import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '../components/ui/table';
3
+ import { Avatar, AvatarFallback, AvatarGroup, AvatarGroupCount, } from '../components/ui/avatar.js';
4
+ import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, } from '../components/ui/carousel.js';
5
+ import { ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent, } from '../components/ui/chart.js';
6
+ import { Grid, GridItem, GridItemContent, GridItemDescription, GridItemTitle, } from '../components/ui/grid.js';
7
+ import { IconButton } from '../components/ui/icon-button.js';
8
+ import { Item, ItemActions, ItemContent, ItemDescription, ItemGroup, ItemMedia, ItemTitle, } from '../components/ui/item.js';
9
+ import { List, ListItem, ListItemContent, ListItemDescription, ListItemTitle, } from '../components/ui/list.js';
10
+ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '../components/ui/table.js';
11
+ import { Bar, BarChart, CartesianGrid, XAxis } from 'recharts';
12
+ const chartData = [
13
+ { day: 'Mon', created: 4, completed: 2 },
14
+ { day: 'Tue', created: 7, completed: 5 },
15
+ { day: 'Wed', created: 5, completed: 6 },
16
+ { day: 'Thu', created: 9, completed: 7 },
17
+ { day: 'Fri', created: 6, completed: 8 },
18
+ ];
19
+ const chartConfig = {
20
+ created: { label: 'Created', color: 'var(--chart-1)' },
21
+ completed: { label: 'Completed', color: 'var(--chart-2)' },
22
+ };
8
23
  export const coreCollectionsSection = {
9
24
  id: 'collections',
10
25
  title: 'Collections',
@@ -28,8 +43,7 @@ export const coreCollectionsSection = {
28
43
  id: 'data-table',
29
44
  title: 'Dense selectable table',
30
45
  components: ['table'],
31
- interactions: ['rest', 'focus-visible', 'selected', 'disabled', 'empty'],
32
- render: ({ density, interaction }) => (_jsxs(Table, { density: density === 'compact' ? 'compact' : 'default', children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Name" }), _jsx(TableHead, { children: "Status" })] }) }), _jsx(TableBody, { children: interaction === 'empty' ? (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: 2, className: "text-muted-foreground", children: "No projects" }) })) : (_jsxs(_Fragment, { children: [_jsxs(TableRow, { "data-catalog-target": true, selected: interaction === 'selected', disabled: interaction === 'disabled', autoFocus: interaction === 'focus-visible', children: [_jsx(TableCell, { children: "Personal" }), _jsx(TableCell, { children: "Active" })] }), _jsxs(TableRow, { children: [_jsx(TableCell, { children: "Archive" }), _jsx(TableCell, { children: "Local" })] })] })) })] })),
46
+ render: () => (_jsx("div", { className: "grid gap-4", children: ['default', 'compact'].map((density) => (_jsxs("div", { children: [_jsxs("p", { className: "text-muted-foreground mb-1 text-xs capitalize", children: [density, " density"] }), _jsxs(Table, { density: density, children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Name" }), _jsx(TableHead, { children: "Status" })] }) }), _jsxs(TableBody, { children: [_jsxs(TableRow, { selected: true, children: [_jsx(TableCell, { children: "Personal" }), _jsx(TableCell, { children: "Active" })] }), _jsxs(TableRow, { disabled: true, children: [_jsx(TableCell, { children: "Archive" }), _jsx(TableCell, { children: "Unavailable" })] }), _jsxs(TableRow, { children: [_jsx(TableCell, { children: "Work" }), _jsx(TableCell, { children: "Local" })] })] })] })] }, density))) })),
33
47
  },
34
48
  {
35
49
  id: 'item-anatomy',
@@ -38,5 +52,23 @@ export const coreCollectionsSection = {
38
52
  viewports: ['narrow'],
39
53
  render: () => (_jsx(ItemGroup, { children: _jsxs(Item, { role: "listitem", size: "sm", variant: "outline", children: [_jsx(ItemMedia, { variant: "icon", children: _jsx(FileTextIcon, {}) }), _jsxs(ItemContent, { children: [_jsx(ItemTitle, { children: "Project brief" }), _jsx(ItemDescription, { children: "Edited five minutes ago" })] }), _jsx(ItemActions, { children: _jsx(IconButton, { label: "More actions", size: "sm", variant: "ghost", children: _jsx(MoreHorizontalIcon, {}) }) })] }) })),
40
54
  },
55
+ {
56
+ id: 'carousel-frame',
57
+ title: 'Static carousel frame',
58
+ components: ['carousel'],
59
+ render: () => (_jsxs(Carousel, { className: "mx-auto w-[min(100%-5rem,28rem)]", children: [_jsx(CarouselContent, { children: ['Today', 'Upcoming', 'Archive'].map((label, index) => (_jsx(CarouselItem, { children: _jsx("div", { className: "bg-card grid h-36 place-items-center rounded-md border", children: _jsxs("div", { className: "text-center", children: [_jsx("p", { className: "font-medium", children: label }), _jsxs("p", { className: "text-muted-foreground text-sm", children: ["Frame ", index + 1, " of 3"] })] }) }) }, label))) }), _jsx(CarouselPrevious, {}), _jsx(CarouselNext, {})] })),
60
+ },
61
+ {
62
+ id: 'seeded-chart',
63
+ title: 'Seeded activity chart',
64
+ components: ['chart'],
65
+ render: () => (_jsx(ChartContainer, { id: "catalog-activity", config: chartConfig, className: "h-64 w-full", children: _jsxs(BarChart, { accessibilityLayer: true, data: chartData, children: [_jsx(CartesianGrid, { vertical: false }), _jsx(XAxis, { dataKey: "day", tickLine: false, tickMargin: 8, axisLine: false }), _jsx(ChartTooltip, { cursor: false, content: _jsx(ChartTooltipContent, {}) }), _jsx(ChartLegend, { content: _jsx(ChartLegendContent, {}) }), _jsx(Bar, { dataKey: "created", fill: "var(--color-created)", radius: [3, 3, 0, 0] }), _jsx(Bar, { dataKey: "completed", fill: "var(--color-completed)", radius: [3, 3, 0, 0] })] }) })),
66
+ },
67
+ {
68
+ id: 'avatar-group-overflow',
69
+ title: 'Avatar group overflow',
70
+ components: ['avatar'],
71
+ render: () => (_jsxs("div", { className: "flex items-center gap-4", children: [_jsxs(AvatarGroup, { "aria-label": "Workspace collaborators", children: [['RM', 'AK', 'SL'].map((initials) => (_jsx(Avatar, { children: _jsx(AvatarFallback, { children: initials }) }, initials))), _jsx(AvatarGroupCount, { "aria-label": "4 more collaborators", children: "+4" })] }), _jsx("span", { className: "text-muted-foreground text-sm", children: "7 collaborators" })] })),
72
+ },
41
73
  ],
42
74
  };
@@ -1,3 +1,3 @@
1
- import type { CatalogSectionDefinition } from './catalog-types';
1
+ import type { CatalogSectionDefinition } from './catalog-types.js';
2
2
  export declare const coreControlsSection: CatalogSectionDefinition;
3
3
  //# sourceMappingURL=core-control-stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-control-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-control-stories.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAM/D,eAAO,MAAM,mBAAmB,EAAE,wBAwPjC,CAAA"}
1
+ {"version":3,"file":"core-control-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-control-stories.tsx"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAuC/D,eAAO,MAAM,mBAAmB,EAAE,wBAoUjC,CAAA"}
@@ -1,22 +1,37 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { BoldIcon, ItalicIcon, PlusIcon } from 'lucide-react';
3
- import { Button } from '../components/ui/button';
4
- import { ButtonGroup, ButtonGroupText } from '../components/ui/button-group';
5
- import { Checkbox } from '../components/ui/checkbox';
6
- import { ColorWell } from '../components/ui/color-well';
7
- import { DateField } from '../components/ui/date-field';
8
- import { Field, FieldContent, FieldDescription, FieldLabel, } from '../components/ui/field';
9
- import { IconButton } from '../components/ui/icon-button';
10
- import { Input } from '../components/ui/input';
11
- import { Kbd, KbdGroup } from '../components/ui/kbd';
12
- import { NumberInput } from '../components/ui/number-input';
13
- import { RadioGroup, RadioGroupItem } from '../components/ui/radio-group';
14
- import { SearchField } from '../components/ui/search-field';
15
- import { SegmentedControl, SegmentedControlItem, } from '../components/ui/segmented-control';
16
- import { Switch } from '../components/ui/switch';
17
- import { Textarea } from '../components/ui/textarea';
18
- import { ToggleButton } from '../components/ui/toggle';
19
- import { ToggleGroup, ToggleGroupItem } from '../components/ui/toggle-group';
2
+ import { AtSignIcon, BoldIcon, ItalicIcon, PlusIcon } from 'lucide-react';
3
+ import { useForm } from 'react-hook-form';
4
+ import { Button } from '../components/ui/button.js';
5
+ import { ButtonGroup, ButtonGroupText } from '../components/ui/button-group.js';
6
+ import { Checkbox } from '../components/ui/checkbox.js';
7
+ import { ColorWell } from '../components/ui/color-well.js';
8
+ import { DateField } from '../components/ui/date-field.js';
9
+ import { Field, FieldContent, FieldDescription, FieldLabel, } from '../components/ui/field.js';
10
+ import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, } from '../components/ui/form.js';
11
+ import { IconButton } from '../components/ui/icon-button.js';
12
+ import { Input } from '../components/ui/input.js';
13
+ import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, } from '../components/ui/input-group.js';
14
+ import { Kbd, KbdGroup } from '../components/ui/kbd.js';
15
+ import { NumberInput } from '../components/ui/number-input.js';
16
+ import { RadioGroup, RadioGroupItem } from '../components/ui/radio-group.js';
17
+ import { SearchField } from '../components/ui/search-field.js';
18
+ import { SegmentedControl, SegmentedControlItem, } from '../components/ui/segmented-control.js';
19
+ import { Switch } from '../components/ui/switch.js';
20
+ import { Textarea } from '../components/ui/textarea.js';
21
+ import { ToggleButton } from '../components/ui/toggle.js';
22
+ import { ToggleGroup, ToggleGroupItem } from '../components/ui/toggle-group.js';
23
+ function CatalogFormFixture() {
24
+ const form = useForm({
25
+ defaultValues: { project: '' },
26
+ errors: {
27
+ project: {
28
+ type: 'required',
29
+ message: 'Project name is required.',
30
+ },
31
+ },
32
+ });
33
+ return (_jsx(Form, { ...form, children: _jsx("form", { className: "max-w-sm", children: _jsx(FormField, { control: form.control, name: "project", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "Project name" }), _jsx(FormControl, { children: _jsx(Input, { placeholder: "Personal dashboard", ...field }) }), _jsx(FormDescription, { children: "Shown in the app titlebar." }), _jsx(FormMessage, {})] })) }) }) }));
34
+ }
20
35
  function controlId(caseId, suffix) {
21
36
  return `catalog-${caseId.replaceAll('/', '-')}-${suffix}`;
22
37
  }
@@ -30,7 +45,7 @@ export const coreControlsSection = {
30
45
  components: ['button'],
31
46
  interactions: ['rest', 'focus-visible', 'disabled'],
32
47
  liveStates: ['hover', 'focus', 'pressed'],
33
- render: ({ interaction }) => (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx(Button, { "data-catalog-target": true, "data-state-target": "hover focus pressed", autoFocus: interaction === 'focus-visible', disabled: interaction === 'disabled', children: "Continue" }), _jsx(Button, { variant: "outline", disabled: interaction === 'disabled', children: "Cancel" })] })),
48
+ render: ({ interaction }) => (_jsxs("div", { className: "grid gap-2", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs(Button, { size: "xs", variant: "outline", disabled: interaction === 'disabled', children: [_jsx(PlusIcon, {}), "Extra small"] }), _jsxs(Button, { size: "sm", disabled: interaction === 'disabled', children: [_jsx(PlusIcon, {}), "Small"] }), _jsxs(Button, { "data-catalog-target": true, "data-state-target": "hover focus pressed", autoFocus: interaction === 'focus-visible', disabled: interaction === 'disabled', children: [_jsx(PlusIcon, {}), "Default"] }), _jsxs(Button, { size: "lg", disabled: interaction === 'disabled', children: [_jsx(PlusIcon, {}), "Large"] })] }), _jsx("div", { className: "flex flex-wrap items-center gap-2", children: ['xs', 'sm', 'default', 'lg'].map((size) => (_jsx(IconButton, { label: `Add item, ${size} size`, size: size, variant: "outline", disabled: interaction === 'disabled', children: _jsx(PlusIcon, {}) }, size))) })] })),
34
49
  },
35
50
  {
36
51
  id: 'icon-button',
@@ -75,7 +90,7 @@ export const coreControlsSection = {
75
90
  const invalid = interaction === 'invalid' || undefined;
76
91
  const checkboxId = controlId(caseId, 'notifications');
77
92
  const switchId = controlId(caseId, 'sync');
78
- return (_jsxs("div", { className: "grid gap-3 text-sm", children: [_jsxs("label", { className: "flex items-center gap-2", htmlFor: checkboxId, children: [_jsx(Checkbox, { "data-catalog-target": true, id: checkboxId, defaultChecked: selected, disabled: disabled, "aria-invalid": invalid }), "Notifications"] }), _jsxs("label", { className: "flex items-center gap-2", htmlFor: switchId, children: [_jsx(Switch, { id: switchId, defaultChecked: selected, disabled: disabled, "aria-invalid": invalid }), "Sync automatically"] }), _jsxs(RadioGroup, { "aria-label": "Priority", defaultValue: selected ? 'high' : 'normal', disabled: disabled, children: [_jsxs("label", { className: "flex items-center gap-2", children: [_jsx(RadioGroupItem, { value: "normal", "aria-invalid": invalid }), "Normal priority"] }), _jsxs("label", { className: "flex items-center gap-2", children: [_jsx(RadioGroupItem, { value: "high", "aria-invalid": invalid }), "High priority"] })] })] }));
93
+ return (_jsxs("div", { className: "grid gap-3 text-sm", children: [_jsxs("label", { className: "flex items-center gap-2", htmlFor: checkboxId, children: [_jsx(Checkbox, { "data-catalog-target": true, id: checkboxId, defaultChecked: interaction === 'rest' || selected, disabled: disabled, "aria-invalid": invalid }), "Notifications"] }), _jsxs("label", { className: "flex items-center gap-2", htmlFor: switchId, children: [_jsx(Switch, { id: switchId, defaultChecked: selected, disabled: disabled, "aria-invalid": invalid }), "Sync automatically"] }), _jsxs(RadioGroup, { "aria-label": "Priority", defaultValue: selected ? 'high' : 'normal', disabled: disabled, children: [_jsxs("label", { className: "flex items-center gap-2", children: [_jsx(RadioGroupItem, { value: "normal", "aria-invalid": invalid }), "Normal priority"] }), _jsxs("label", { className: "flex items-center gap-2", children: [_jsx(RadioGroupItem, { value: "high", "aria-invalid": invalid }), "High priority"] })] })] }));
79
94
  },
80
95
  },
81
96
  {
@@ -93,5 +108,18 @@ export const coreControlsSection = {
93
108
  interactions: ['rest', 'focus-visible', 'disabled', 'invalid'],
94
109
  render: ({ interaction }) => (_jsxs("div", { className: "grid max-w-sm gap-3", children: [_jsx(Textarea, { "data-catalog-target": true, "aria-label": "Notes", defaultValue: "Keep the interface quiet and direct.", autoFocus: interaction === 'focus-visible', disabled: interaction === 'disabled', "aria-invalid": interaction === 'invalid' || undefined }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(NumberInput, { "aria-label": "Duration", defaultValue: 25, unit: "min", disabled: interaction === 'disabled', "aria-invalid": interaction === 'invalid' || undefined, className: "w-32" }), _jsx(ColorWell, { "aria-label": "Accent color", value: "#ff6b4a", disabled: interaction === 'disabled' })] })] })),
95
110
  },
111
+ {
112
+ id: 'input-groups',
113
+ title: 'Input groups and labels',
114
+ components: ['input-group', 'label'],
115
+ liveStates: ['focus'],
116
+ render: () => (_jsxs("div", { className: "grid max-w-sm gap-3", children: [_jsxs(InputGroup, { children: [_jsx(InputGroupAddon, { children: _jsx(AtSignIcon, {}) }), _jsx(InputGroupInput, { "data-state-target": "focus", "aria-label": "Username", value: "moldable", readOnly: true }), _jsx(InputGroupAddon, { align: "inline-end", children: _jsx(InputGroupText, { children: ".sh" }) })] }), _jsxs(InputGroup, { children: [_jsx(InputGroupInput, { "aria-label": "Invite address", placeholder: "person@example.com" }), _jsx(InputGroupAddon, { align: "inline-end", children: _jsx(InputGroupButton, { children: "Invite" }) })] }), _jsx(InputGroup, { "data-disabled": "true", children: _jsx(InputGroupInput, { "aria-label": "Disabled workspace URL", value: "local-only", disabled: true, readOnly: true }) })] })),
117
+ },
118
+ {
119
+ id: 'validated-form',
120
+ title: 'Validated form adapter',
121
+ components: ['form'],
122
+ render: () => _jsx(CatalogFormFixture, {}),
123
+ },
96
124
  ],
97
125
  };
@@ -1,3 +1,3 @@
1
- import type { CatalogSectionDefinition } from './catalog-types';
1
+ import type { CatalogSectionDefinition } from './catalog-types.js';
2
2
  export declare const coreFeedbackSection: CatalogSectionDefinition;
3
3
  //# sourceMappingURL=core-feedback-stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-feedback-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-feedback-stories.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAE/D,eAAO,MAAM,mBAAmB,EAAE,wBAsFjC,CAAA"}
1
+ {"version":3,"file":"core-feedback-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-feedback-stories.tsx"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAqC/D,eAAO,MAAM,mBAAmB,EAAE,wBAwMjC,CAAA"}
@@ -1,14 +1,53 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { CircleAlertIcon, InboxIcon } from 'lucide-react';
3
- import { Alert, AlertDescription, AlertTitle } from '../components/ui/alert';
4
- import { Avatar, AvatarBadge, AvatarFallback } from '../components/ui/avatar';
5
- import { Badge } from '../components/ui/badge';
6
- import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, } from '../components/ui/empty';
7
- import { NotificationDot } from '../components/ui/notification-dot';
8
- import { Progress } from '../components/ui/progress';
9
- import { Skeleton } from '../components/ui/skeleton';
10
- import { Spinner } from '../components/ui/spinner';
11
- import { Status } from '../components/ui/status';
3
+ import * as React from 'react';
4
+ import { ThemeProvider } from '../lib/theme.js';
5
+ import { Alert, AlertDescription, AlertTitle } from '../components/ui/alert.js';
6
+ import { Avatar, AvatarBadge, AvatarFallback } from '../components/ui/avatar.js';
7
+ import { Badge } from '../components/ui/badge.js';
8
+ import { EdgeFade } from '../components/ui/edge-fade.js';
9
+ import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, } from '../components/ui/empty.js';
10
+ import { ErrorBoundaryView } from '../components/ui/error-boundary-view.js';
11
+ import { Kbd, KbdGroup } from '../components/ui/kbd.js';
12
+ import { MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, } from '../components/ui/message-scroller.js';
13
+ import { NotificationDot } from '../components/ui/notification-dot.js';
14
+ import { Progress } from '../components/ui/progress.js';
15
+ import { Skeleton } from '../components/ui/skeleton.js';
16
+ import { Toaster, toast } from '../components/ui/sonner.js';
17
+ import { Spinner } from '../components/ui/spinner.js';
18
+ import { Status } from '../components/ui/status.js';
19
+ function StaticToasts() {
20
+ React.useEffect(() => {
21
+ const frame = requestAnimationFrame(() => {
22
+ toast.success('Workspace synced', {
23
+ id: 'catalog-success',
24
+ description: 'All local changes are backed up.',
25
+ duration: Number.POSITIVE_INFINITY,
26
+ });
27
+ toast('Changes staged', {
28
+ id: 'catalog-action',
29
+ description: 'The release is ready to review.',
30
+ action: {
31
+ label: 'Undo',
32
+ onClick: () => undefined,
33
+ },
34
+ duration: Number.POSITIVE_INFINITY,
35
+ });
36
+ toast.error('Upload paused', {
37
+ id: 'catalog-destructive',
38
+ description: 'Reconnect to continue.',
39
+ duration: Number.POSITIVE_INFINITY,
40
+ });
41
+ });
42
+ return () => {
43
+ cancelAnimationFrame(frame);
44
+ toast.dismiss('catalog-success');
45
+ toast.dismiss('catalog-action');
46
+ toast.dismiss('catalog-destructive');
47
+ };
48
+ }, []);
49
+ return _jsx(Toaster, { visibleToasts: 3, position: "bottom-right", expand: true });
50
+ }
12
51
  export const coreFeedbackSection = {
13
52
  id: 'feedback',
14
53
  title: 'Feedback',
@@ -18,7 +57,7 @@ export const coreFeedbackSection = {
18
57
  title: 'Status and badges',
19
58
  components: ['avatar', 'badge', 'notification-dot', 'status'],
20
59
  viewports: ['narrow'],
21
- render: () => (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs(Avatar, { children: [_jsx(AvatarFallback, { children: "RM" }), _jsx(AvatarBadge, {})] }), _jsx(Status, { variant: "running", children: "Running" }), _jsx(Badge, { variant: "secondary", children: "Draft" }), _jsxs(Badge, { variant: "outline", className: "gap-1.5", children: [_jsx(NotificationDot, {}), "New"] })] })),
60
+ render: () => (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs(Avatar, { children: [_jsx(AvatarFallback, { children: "RM" }), _jsx(AvatarBadge, {})] }), _jsx(Status, { variant: "success", children: "Success" }), _jsx(Status, { variant: "info", children: "Info" }), _jsx(Status, { variant: "neutral", children: "Neutral" }), _jsx(Status, { variant: "pending", children: "Pending" }), _jsx(Badge, { variant: "secondary", children: "Draft" }), _jsxs(Badge, { variant: "outline", className: "gap-1.5", children: [_jsx(NotificationDot, {}), "New"] })] })),
22
61
  },
23
62
  {
24
63
  id: 'semantic-alert',
@@ -46,5 +85,45 @@ export const coreFeedbackSection = {
46
85
  accessibilityModes: ['standard', 'reduced-motion'],
47
86
  render: () => (_jsxs("div", { className: "grid gap-3", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm", children: [_jsx(Spinner, {}), "Syncing changes"] }), _jsx(Progress, { "aria-label": "Sync progress", value: 64 }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Skeleton, { className: "h-3 w-3/4" }), _jsx(Skeleton, { className: "h-3 w-1/2" })] })] })),
48
87
  },
88
+ {
89
+ id: 'static-toasts',
90
+ title: 'Static toast stack',
91
+ components: ['sonner'],
92
+ render: () => (_jsxs(ThemeProvider, { children: [_jsx("div", { className: "text-muted-foreground h-56 text-sm", children: "Toasts are mounted at the viewport edge." }), _jsx(StaticToasts, {})] })),
93
+ },
94
+ {
95
+ id: 'keyboard-shortcuts',
96
+ title: 'Keyboard shortcuts',
97
+ components: ['kbd'],
98
+ render: () => (_jsxs("div", { className: "flex flex-wrap items-center gap-4 text-sm", children: [_jsxs("span", { className: "flex items-center gap-2", children: ["Commands", _jsxs(KbdGroup, { children: [_jsx(Kbd, { children: "\u2318" }), _jsx(Kbd, { children: "K" })] })] }), _jsxs("span", { className: "flex items-center gap-2", children: ["Search", _jsx(Kbd, { children: "/" })] }), _jsxs("span", { className: "flex items-center gap-2", children: ["Dismiss", _jsx(Kbd, { children: "Esc" })] })] })),
99
+ },
100
+ {
101
+ id: 'error-boundary',
102
+ title: 'Error boundary view',
103
+ components: ['error-boundary-view'],
104
+ render: () => (_jsx(ErrorBoundaryView, { className: "min-h-64", title: "Calendar could not load", message: "Your data is safe. Retry the local view.", details: "RenderError: calendar view unavailable", onRetry: () => undefined })),
105
+ },
106
+ {
107
+ id: 'edge-fades',
108
+ title: 'Overflow edge fades',
109
+ components: ['edge-fade'],
110
+ render: () => (_jsxs("div", { className: "border-border relative h-48 overflow-hidden rounded-md border", children: [_jsx("div", { className: "grid gap-3 p-4", children: ['Today', 'Planning', 'Review', 'Archive', 'Later'].map((label) => (_jsx("div", { className: "bg-card rounded-md border px-3 py-2 text-sm", children: label }, label))) }), _jsx(EdgeFade, { edge: "top", size: "sm" }), _jsx(EdgeFade, { edge: "bottom", size: "lg" })] })),
111
+ },
112
+ {
113
+ id: 'message-scroller-frame',
114
+ title: 'Static message scroller',
115
+ components: ['message-scroller'],
116
+ render: () => (_jsx(MessageScrollerProvider, { defaultScrollPosition: "start", children: _jsxs(MessageScroller, { className: "border-border h-56 rounded-md border", children: [_jsx(MessageScrollerViewport, { children: _jsx(MessageScrollerContent, { className: "gap-3 p-3", children: [
117
+ ['user', 'Create a quiet weekly planner.'],
118
+ [
119
+ 'assistant',
120
+ 'I added a focused week view and quick capture.',
121
+ ],
122
+ ['user', 'Keep completed tasks visible.'],
123
+ ['assistant', 'Completed tasks now remain grouped below.'],
124
+ ].map(([role, message], index) => (_jsx(MessageScrollerItem, { messageId: `catalog-${index}`, className: role === 'user'
125
+ ? 'bg-muted ml-8 rounded-md p-3 text-sm'
126
+ : 'mr-8 p-3 text-sm', children: message }, message))) }) }), _jsx(MessageScrollerButton, { direction: "end", behavior: "auto" })] }) })),
127
+ },
49
128
  ],
50
129
  };
@@ -0,0 +1,3 @@
1
+ import type { CatalogSectionDefinition } from './catalog-types.js';
2
+ export declare const coreFormsSection: CatalogSectionDefinition;
3
+ //# sourceMappingURL=core-form-stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-form-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-form-stories.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAO/D,eAAO,MAAM,gBAAgB,EAAE,wBAiK9B,CAAA"}