@ctrl-ui/react 0.8.1 → 0.8.4

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 (377) hide show
  1. package/README.md +32 -23
  2. package/dist/action-bar.d.ts +11 -12
  3. package/dist/activity.d.ts +24 -25
  4. package/dist/audio-recorder.d.ts +16 -16
  5. package/dist/audio-visualizer.d.ts +3 -4
  6. package/dist/blocks/chat.d.ts +3 -4
  7. package/dist/blocks/chat.js +6 -3
  8. package/dist/blocks/coding-agent.d.ts +11 -12
  9. package/dist/blocks/coding-agent.js +10 -9
  10. package/dist/blocks/file-explorer-data.d.ts +11 -12
  11. package/dist/blocks/file-explorer.d.ts +3 -3
  12. package/dist/blocks/settings-data.d.ts +8 -9
  13. package/dist/blocks/settings.d.ts +4 -4
  14. package/dist/blocks/theme-toggle.d.ts +11 -12
  15. package/dist/blocks/theme-toggle.js +14 -4
  16. package/dist/chat-composer-attachment.d.ts +20 -21
  17. package/dist/chat-composer-attachment.js +24 -20
  18. package/dist/chat-composer-editor/extensions/mention.d.ts +5 -6
  19. package/dist/chat-composer-editor/ghost.d.ts +3 -4
  20. package/dist/chat-composer-editor/schema.d.ts +2 -3
  21. package/dist/chat-composer-editor/serialize.d.ts +3 -4
  22. package/dist/chat-composer-editor/types.d.ts +5 -6
  23. package/dist/chat-composer-editor.d.ts +2 -3
  24. package/dist/chat-composer-editor.js +18 -4
  25. package/dist/chat-composer.d.ts +17 -18
  26. package/dist/chat-composer.js +14 -8
  27. package/dist/chat-layout.d.ts +12 -21
  28. package/dist/chat-layout.js +28 -83
  29. package/dist/chat-message.d.ts +14 -15
  30. package/dist/context-model.d.ts +7 -8
  31. package/dist/context.d.ts +21 -22
  32. package/dist/control-props.d.ts +10 -11
  33. package/dist/control-variants.d.ts +6 -7
  34. package/dist/dynamic-notification-glass.d.ts +3 -4
  35. package/dist/dynamic-notification-liquid.d.ts +3 -4
  36. package/dist/dynamic-notification-siri-wave.d.ts +2 -3
  37. package/dist/dynamic-notification.d.ts +28 -29
  38. package/dist/email/email.d.ts +6 -7
  39. package/dist/email/email.js +12 -3
  40. package/dist/email/length.d.ts +3 -0
  41. package/dist/email/length.js +34 -0
  42. package/dist/email/templates.d.ts +7 -8
  43. package/dist/email/templates.js +5 -5
  44. package/dist/email/theme.d.ts +16 -5
  45. package/dist/email/theme.js +21 -6
  46. package/dist/environment-variables.d.ts +35 -36
  47. package/dist/extensions/create-track-highlight.d.ts +3 -4
  48. package/dist/extensions/supports-anchor-transitions.d.ts +2 -3
  49. package/dist/extensions/track-highlight.d.ts +3 -4
  50. package/dist/hooks/use-audio-recorder.d.ts +14 -15
  51. package/dist/hooks/use-chat-composer.d.ts +5 -6
  52. package/dist/hooks/use-chat-message.d.ts +7 -8
  53. package/dist/hooks/use-color-area.d.ts +5 -6
  54. package/dist/hooks/use-copy-to-clipboard.d.ts +7 -8
  55. package/dist/hooks/use-dropzone.d.ts +11 -12
  56. package/dist/hooks/use-dynamic-notification.d.ts +6 -7
  57. package/dist/hooks/use-environment-variables.d.ts +9 -10
  58. package/dist/hooks/use-keyboard-navigation.d.ts +3 -0
  59. package/dist/hooks/use-keyboard-navigation.js +22 -0
  60. package/dist/hooks/use-mobile.d.ts +2 -3
  61. package/dist/hooks/use-textarea-trigger-menu.d.ts +2 -3
  62. package/dist/hooks/use-trigger-menu.d.ts +7 -8
  63. package/dist/hooks/use-user-ask.d.ts +6 -7
  64. package/dist/inline-attachment.d.ts +16 -17
  65. package/dist/inline-citation.d.ts +22 -23
  66. package/dist/knob-contracts/accordion-knobs.d.ts +3 -4
  67. package/dist/knob-contracts/accordion-knobs.js +1 -0
  68. package/dist/knob-contracts/action-bar-knobs.d.ts +3 -4
  69. package/dist/knob-contracts/activity-knobs.d.ts +3 -4
  70. package/dist/knob-contracts/alert-knobs.d.ts +3 -4
  71. package/dist/knob-contracts/alert-knobs.js +12 -1
  72. package/dist/knob-contracts/audio-recorder-knobs.d.ts +3 -4
  73. package/dist/knob-contracts/audio-visualizer-knobs.d.ts +3 -4
  74. package/dist/knob-contracts/avatar-knobs.d.ts +3 -4
  75. package/dist/knob-contracts/avatar-knobs.js +2 -1
  76. package/dist/knob-contracts/badge-knobs.d.ts +3 -4
  77. package/dist/knob-contracts/button-group-knobs.d.ts +3 -4
  78. package/dist/knob-contracts/button-knobs.d.ts +3 -4
  79. package/dist/knob-contracts/button-knobs.js +1 -0
  80. package/dist/knob-contracts/calendar-knobs.d.ts +3 -4
  81. package/dist/knob-contracts/card-knobs.d.ts +3 -4
  82. package/dist/knob-contracts/chat-composer-attachment-knobs.d.ts +3 -4
  83. package/dist/knob-contracts/chat-composer-attachment-knobs.js +3 -1
  84. package/dist/knob-contracts/chat-composer-knobs.d.ts +3 -4
  85. package/dist/knob-contracts/chat-composer-knobs.js +1 -0
  86. package/dist/knob-contracts/chat-layout-knobs.d.ts +3 -4
  87. package/dist/knob-contracts/chat-layout-knobs.js +2 -3
  88. package/dist/knob-contracts/chat-message-knobs.d.ts +3 -4
  89. package/dist/knob-contracts/choice-knobs.d.ts +3 -4
  90. package/dist/knob-contracts/choice-knobs.js +2 -1
  91. package/dist/knob-contracts/code-diff-knobs.d.ts +3 -4
  92. package/dist/knob-contracts/code-diff-knobs.js +1 -0
  93. package/dist/knob-contracts/code-knobs.d.ts +3 -4
  94. package/dist/knob-contracts/code-knobs.js +3 -1
  95. package/dist/knob-contracts/collapsible-knobs.d.ts +3 -4
  96. package/dist/knob-contracts/color-picker-knobs.d.ts +3 -4
  97. package/dist/knob-contracts/context-knobs.d.ts +3 -4
  98. package/dist/knob-contracts/dockable-panel-knobs.d.ts +3 -4
  99. package/dist/knob-contracts/dockable-panel-knobs.js +1 -0
  100. package/dist/knob-contracts/dropzone-knobs.d.ts +3 -4
  101. package/dist/knob-contracts/dropzone-knobs.js +1 -0
  102. package/dist/knob-contracts/dynamic-notification-knobs.d.ts +3 -4
  103. package/dist/knob-contracts/empty-knobs.d.ts +3 -4
  104. package/dist/knob-contracts/empty-knobs.js +14 -1
  105. package/dist/knob-contracts/environment-variables-knobs.d.ts +3 -4
  106. package/dist/knob-contracts/environment-variables-knobs.js +2 -1
  107. package/dist/knob-contracts/field-knobs.d.ts +3 -4
  108. package/dist/knob-contracts/gradient-editor-knobs.d.ts +3 -4
  109. package/dist/knob-contracts/gradient-editor-knobs.js +3 -1
  110. package/dist/knob-contracts/infinite-canvas-knobs.d.ts +3 -4
  111. package/dist/knob-contracts/inline-attachment-knobs.d.ts +3 -4
  112. package/dist/knob-contracts/inline-attachment-knobs.js +2 -1
  113. package/dist/knob-contracts/inline-citation-knobs.d.ts +3 -4
  114. package/dist/knob-contracts/inline-citation-knobs.js +1 -0
  115. package/dist/knob-contracts/item-knobs.d.ts +3 -4
  116. package/dist/knob-contracts/kbd-knobs.d.ts +3 -4
  117. package/dist/knob-contracts/markdown-block-knobs.d.ts +3 -4
  118. package/dist/knob-contracts/markdown-block-knobs.js +2 -0
  119. package/dist/knob-contracts/markdown-knobs.d.ts +3 -4
  120. package/dist/knob-contracts/markdown-knobs.js +1 -0
  121. package/dist/knob-contracts/morphing-panel-knobs.d.ts +3 -4
  122. package/dist/knob-contracts/pagination-knobs.d.ts +3 -4
  123. package/dist/knob-contracts/phone-input-knobs.d.ts +3 -4
  124. package/dist/knob-contracts/phone-input-knobs.js +1 -0
  125. package/dist/knob-contracts/popup-knobs.d.ts +3 -4
  126. package/dist/knob-contracts/progressive-blur-knobs.d.ts +3 -4
  127. package/dist/knob-contracts/progressive-blur-knobs.js +1 -0
  128. package/dist/knob-contracts/range-knobs.d.ts +3 -4
  129. package/dist/knob-contracts/resizable-knobs.d.ts +3 -4
  130. package/dist/knob-contracts/resizable-knobs.js +1 -0
  131. package/dist/knob-contracts/rich-tooltip-knobs.d.ts +3 -4
  132. package/dist/knob-contracts/scroll-area-knobs.d.ts +3 -4
  133. package/dist/knob-contracts/separator-knobs.d.ts +3 -4
  134. package/dist/knob-contracts/sidebar-knobs.d.ts +3 -4
  135. package/dist/knob-contracts/sidebar-knobs.js +1 -0
  136. package/dist/knob-contracts/skeleton-knobs.d.ts +3 -4
  137. package/dist/knob-contracts/skeleton-knobs.js +9 -1
  138. package/dist/knob-contracts/source-badge-knobs.d.ts +3 -4
  139. package/dist/knob-contracts/spinner-knobs.d.ts +3 -4
  140. package/dist/knob-contracts/stepper-knobs.d.ts +3 -4
  141. package/dist/knob-contracts/stepper-knobs.js +1 -0
  142. package/dist/knob-contracts/switch-knobs.d.ts +3 -4
  143. package/dist/knob-contracts/switch-knobs.js +7 -1
  144. package/dist/knob-contracts/table-knobs.d.ts +3 -4
  145. package/dist/knob-contracts/table-of-contents-knobs.d.ts +3 -4
  146. package/dist/knob-contracts/table-of-contents-knobs.js +25 -0
  147. package/dist/knob-contracts/tabs-knobs.d.ts +3 -4
  148. package/dist/knob-contracts/tabs-knobs.js +2 -1
  149. package/dist/knob-contracts/task-list-knobs.d.ts +3 -4
  150. package/dist/knob-contracts/task-list-knobs.js +1 -0
  151. package/dist/knob-contracts/thread-rail-knobs.d.ts +3 -4
  152. package/dist/knob-contracts/timeline-knobs.d.ts +3 -4
  153. package/dist/knob-contracts/toolbar-knobs.d.ts +3 -4
  154. package/dist/knob-contracts/toolbar-knobs.js +1 -0
  155. package/dist/knob-contracts/track-highlight-knobs.d.ts +3 -4
  156. package/dist/knob-contracts/transcript-divider-knobs.d.ts +3 -4
  157. package/dist/knob-contracts/tree-knobs.d.ts +3 -4
  158. package/dist/knob-contracts/user-ask-knobs.d.ts +3 -4
  159. package/dist/knob-contracts/user-ask-knobs.js +1 -0
  160. package/dist/lib/cn.d.ts +2 -3
  161. package/dist/lib/code-tokens.d.ts +12 -13
  162. package/dist/lib/color.d.ts +26 -27
  163. package/dist/lib/contrast.d.ts +12 -13
  164. package/dist/lib/diff.d.ts +14 -15
  165. package/dist/lib/dropzone-validation.d.ts +25 -26
  166. package/dist/lib/env-file.d.ts +12 -13
  167. package/dist/lib/format-audio-recorder-duration.d.ts +2 -3
  168. package/dist/lib/liquid-glass-optics.d.ts +2 -3
  169. package/dist/lib/phone-input-format.d.ts +3 -4
  170. package/dist/lib/phone-input-format.js +1 -1
  171. package/dist/lib/phone-number.d.ts +8 -9
  172. package/dist/lib/trigger-detect.d.ts +4 -5
  173. package/dist/markdown-block.d.ts +11 -12
  174. package/dist/scripts/contrast-eval.d.ts +16 -17
  175. package/dist/scripts/contrast-eval.js +13 -7
  176. package/dist/skin-provider.d.ts +14 -0
  177. package/dist/skin-provider.js +21 -0
  178. package/dist/skin.d.ts +14 -33
  179. package/dist/skin.js +3 -46
  180. package/dist/source-badge.d.ts +7 -8
  181. package/dist/styles/index.css +2 -4
  182. package/dist/styles/recipes/accordion.css +8 -2
  183. package/dist/styles/recipes/action-bar.css +5 -2
  184. package/dist/styles/recipes/alert.css +95 -16
  185. package/dist/styles/recipes/avatar.css +17 -1
  186. package/dist/styles/recipes/badge.css +0 -1
  187. package/dist/styles/recipes/button.css +34 -8
  188. package/dist/styles/recipes/calendar.css +0 -6
  189. package/dist/styles/recipes/chat-composer-attachment.css +51 -53
  190. package/dist/styles/recipes/chat-composer.css +26 -21
  191. package/dist/styles/recipes/chat-layout.css +21 -62
  192. package/dist/styles/recipes/chat-message.css +11 -5
  193. package/dist/styles/recipes/choice.css +9 -2
  194. package/dist/styles/recipes/code-diff.css +8 -1
  195. package/dist/styles/recipes/code.css +39 -17
  196. package/dist/styles/recipes/collapsible.css +0 -3
  197. package/dist/styles/recipes/color-picker-details.css +1 -2
  198. package/dist/styles/recipes/color-picker-values.css +0 -4
  199. package/dist/styles/recipes/dockable-panel.css +8 -1
  200. package/dist/styles/recipes/dropzone.css +9 -2
  201. package/dist/styles/recipes/empty.css +118 -17
  202. package/dist/styles/recipes/environment-variables.css +8 -1
  203. package/dist/styles/recipes/field-parts.css +1 -6
  204. package/dist/styles/recipes/field.css +9 -5
  205. package/dist/styles/recipes/gradient-editor.css +16 -5
  206. package/dist/styles/recipes/inline-attachment.css +13 -8
  207. package/dist/styles/recipes/inline-citation.css +8 -4
  208. package/dist/styles/recipes/item.css +1 -1
  209. package/dist/styles/recipes/kbd.css +8 -0
  210. package/dist/styles/recipes/markdown-block.css +16 -2
  211. package/dist/styles/recipes/markdown.css +12 -0
  212. package/dist/styles/recipes/morphing-panel.css +1 -1
  213. package/dist/styles/recipes/pagination.css +0 -4
  214. package/dist/styles/recipes/phone-input.css +8 -4
  215. package/dist/styles/recipes/popup-lists.css +11 -0
  216. package/dist/styles/recipes/popup-toast.css +1 -29
  217. package/dist/styles/recipes/popup.css +2 -2
  218. package/dist/styles/recipes/progressive-blur.css +28 -7
  219. package/dist/styles/recipes/range.css +50 -1
  220. package/dist/styles/recipes/resizable.css +8 -10
  221. package/dist/styles/recipes/rich-tooltip.css +0 -4
  222. package/dist/styles/recipes/scroll-area.css +8 -2
  223. package/dist/styles/recipes/sidebar-menu.css +150 -0
  224. package/dist/styles/recipes/sidebar.css +56 -110
  225. package/dist/styles/recipes/skeleton.css +85 -3
  226. package/dist/styles/recipes/source-badge.css +0 -3
  227. package/dist/styles/recipes/stepper.css +8 -1
  228. package/dist/styles/recipes/switch.css +89 -17
  229. package/dist/styles/recipes/table-of-contents.css +211 -45
  230. package/dist/styles/recipes/table.css +0 -1
  231. package/dist/styles/recipes/tabs.css +19 -2
  232. package/dist/styles/recipes/task-list.css +8 -2
  233. package/dist/styles/recipes/thread-rail.css +0 -4
  234. package/dist/styles/recipes/toolbar.css +18 -4
  235. package/dist/styles/recipes/track-highlight.css +63 -5
  236. package/dist/styles/recipes/tree.css +2 -0
  237. package/dist/styles/recipes/user-ask.css +8 -4
  238. package/dist/styles/theme.css +130 -138
  239. package/dist/surface-variants.d.ts +4 -5
  240. package/dist/task-list.d.ts +16 -17
  241. package/dist/thread-rail.d.ts +21 -22
  242. package/dist/transcript-divider.d.ts +6 -7
  243. package/dist/ui/accordion.d.ts +10 -11
  244. package/dist/ui/alert-dialog.d.ts +11 -12
  245. package/dist/ui/alert-dialog.js +8 -6
  246. package/dist/ui/alert.d.ts +9 -10
  247. package/dist/ui/alert.js +3 -3
  248. package/dist/ui/aspect-ratio.d.ts +3 -4
  249. package/dist/ui/autocomplete.d.ts +19 -20
  250. package/dist/ui/autocomplete.js +5 -3
  251. package/dist/ui/avatar.d.ts +9 -10
  252. package/dist/ui/badge.d.ts +9 -10
  253. package/dist/ui/button-group.d.ts +7 -8
  254. package/dist/ui/button-group.js +3 -2
  255. package/dist/ui/button.d.ts +17 -18
  256. package/dist/ui/button.js +20 -5
  257. package/dist/ui/calendar.d.ts +3 -4
  258. package/dist/ui/card.d.ts +16 -17
  259. package/dist/ui/checkbox-group.d.ts +4 -5
  260. package/dist/ui/checkbox-group.js +3 -2
  261. package/dist/ui/checkbox.d.ts +3 -4
  262. package/dist/ui/code-diff.d.ts +8 -9
  263. package/dist/ui/code.d.ts +32 -23
  264. package/dist/ui/code.js +41 -20
  265. package/dist/ui/collapsible.d.ts +7 -8
  266. package/dist/ui/color-picker.d.ts +40 -41
  267. package/dist/ui/color-picker.js +5 -3
  268. package/dist/ui/combobox-disabled-selection.d.ts +3 -4
  269. package/dist/ui/combobox.d.ts +21 -20
  270. package/dist/ui/combobox.js +5 -3
  271. package/dist/ui/command.d.ts +19 -18
  272. package/dist/ui/command.js +38 -12
  273. package/dist/ui/context-menu.d.ts +30 -31
  274. package/dist/ui/context-menu.js +8 -5
  275. package/dist/ui/dialog.d.ts +13 -13
  276. package/dist/ui/dialog.js +10 -8
  277. package/dist/ui/dockable-panel-geometry.d.ts +7 -8
  278. package/dist/ui/dockable-panel.d.ts +21 -22
  279. package/dist/ui/drawer.d.ts +17 -18
  280. package/dist/ui/drawer.js +7 -6
  281. package/dist/ui/dropdown-menu.d.ts +36 -29
  282. package/dist/ui/dropdown-menu.js +116 -9
  283. package/dist/ui/dropzone.d.ts +24 -24
  284. package/dist/ui/empty.d.ts +14 -14
  285. package/dist/ui/empty.js +3 -3
  286. package/dist/ui/field.d.ts +26 -27
  287. package/dist/ui/form.d.ts +4 -5
  288. package/dist/ui/gradient-editor.d.ts +16 -17
  289. package/dist/ui/hover-card.d.ts +6 -7
  290. package/dist/ui/hover-card.js +5 -3
  291. package/dist/ui/infinite-canvas.d.ts +11 -12
  292. package/dist/ui/input-group.d.ts +6 -7
  293. package/dist/ui/input-otp.d.ts +7 -8
  294. package/dist/ui/input.d.ts +3 -4
  295. package/dist/ui/item.d.ts +20 -21
  296. package/dist/ui/kbd.d.ts +7 -5
  297. package/dist/ui/kbd.js +4 -2
  298. package/dist/ui/markdown-elements.d.ts +20 -21
  299. package/dist/ui/markdown.d.ts +5 -6
  300. package/dist/ui/menubar.d.ts +25 -26
  301. package/dist/ui/menubar.js +8 -5
  302. package/dist/ui/meter.d.ts +11 -12
  303. package/dist/ui/morphing-panel.d.ts +8 -9
  304. package/dist/ui/native-select.d.ts +3 -4
  305. package/dist/ui/native-select.js +1 -1
  306. package/dist/ui/navigation-menu.d.ts +17 -18
  307. package/dist/ui/navigation-menu.js +5 -3
  308. package/dist/ui/number-field.d.ts +15 -16
  309. package/dist/ui/pagination.d.ts +10 -11
  310. package/dist/ui/phone-input.d.ts +5 -6
  311. package/dist/ui/phone-input.js +40 -37
  312. package/dist/ui/popover.d.ts +11 -12
  313. package/dist/ui/popover.js +5 -3
  314. package/dist/ui/progress.d.ts +11 -12
  315. package/dist/ui/progressive-blur.d.ts +4 -5
  316. package/dist/ui/radio-group.d.ts +5 -6
  317. package/dist/ui/resizable.d.ts +12 -13
  318. package/dist/ui/responsive-dialog.d.ts +11 -12
  319. package/dist/ui/rich-tooltip-tour.d.ts +5 -6
  320. package/dist/ui/rich-tooltip.d.ts +21 -23
  321. package/dist/ui/rich-tooltip.js +5 -5
  322. package/dist/ui/scroll-area.d.ts +7 -8
  323. package/dist/ui/scroll-area.js +9 -6
  324. package/dist/ui/select.d.ts +21 -14
  325. package/dist/ui/select.js +7 -4
  326. package/dist/ui/separator.d.ts +2 -3
  327. package/dist/ui/sheet.d.ts +8 -9
  328. package/dist/ui/sheet.js +7 -5
  329. package/dist/ui/sidebar-menu.d.ts +24 -15
  330. package/dist/ui/sidebar-menu.js +30 -4
  331. package/dist/ui/sidebar-provider.d.ts +32 -7
  332. package/dist/ui/sidebar-provider.js +82 -22
  333. package/dist/ui/sidebar-resize-rail.d.ts +8 -0
  334. package/dist/ui/sidebar-resize-rail.js +192 -0
  335. package/dist/ui/sidebar.d.ts +20 -14
  336. package/dist/ui/sidebar.js +122 -57
  337. package/dist/ui/skeleton.d.ts +7 -4
  338. package/dist/ui/skeleton.js +9 -2
  339. package/dist/ui/slider.d.ts +6 -5
  340. package/dist/ui/slider.js +16 -13
  341. package/dist/ui/spinner.d.ts +3 -4
  342. package/dist/ui/stepper.d.ts +22 -23
  343. package/dist/ui/switch.d.ts +3 -4
  344. package/dist/ui/switch.js +12 -1
  345. package/dist/ui/table-of-contents.d.ts +7 -8
  346. package/dist/ui/table-of-contents.js +4 -2
  347. package/dist/ui/table.d.ts +17 -18
  348. package/dist/ui/tabs.d.ts +14 -11
  349. package/dist/ui/textarea.d.ts +3 -4
  350. package/dist/ui/timeline.d.ts +18 -19
  351. package/dist/ui/toast.d.ts +9 -9
  352. package/dist/ui/toast.js +21 -14
  353. package/dist/ui/toggle.d.ts +5 -6
  354. package/dist/ui/toggle.js +3 -2
  355. package/dist/ui/toolbar.d.ts +15 -16
  356. package/dist/ui/toolbar.js +15 -4
  357. package/dist/ui/tooltip.d.ts +6 -13
  358. package/dist/ui/tooltip.js +7 -8
  359. package/dist/ui/tree.d.ts +18 -19
  360. package/dist/ui/tree.js +3 -2
  361. package/dist/ui/trigger-menu.d.ts +15 -16
  362. package/dist/ui/trigger-menu.js +5 -3
  363. package/dist/ui/use-switch-drag.d.ts +7 -0
  364. package/dist/ui/use-switch-drag.js +104 -0
  365. package/dist/user-ask.d.ts +24 -25
  366. package/package.json +15 -15
  367. package/dist/code-block-editor.d.ts +0 -59
  368. package/dist/code-block-editor.js +0 -250
  369. package/dist/knob-contracts/code-block-editor-knobs.d.ts +0 -5
  370. package/dist/knob-contracts/code-block-editor-knobs.js +0 -11
  371. package/dist/lib/code-block-shiki.d.ts +0 -9
  372. package/dist/lib/code-block-shiki.js +0 -6
  373. package/dist/skin.config.d.ts +0 -5
  374. package/dist/skin.config.js +0 -12
  375. package/dist/styles/recipes/code-block-editor.css +0 -136
  376. package/dist/styles/skin-theme.css +0 -137
  377. package/dist/styles/skin.css +0 -143
@@ -5,37 +5,37 @@ type EmailBrandProps = {
5
5
  brand: string;
6
6
  footer: string;
7
7
  };
8
- declare function InvitationEmail({ theme, brand, footer, inviter, workspace, inviteUrl }: EmailBrandProps & {
8
+ export declare function InvitationEmail({ theme, brand, footer, inviter, workspace, inviteUrl }: EmailBrandProps & {
9
9
  inviter: string;
10
10
  workspace: string;
11
11
  inviteUrl: string;
12
12
  }): import("react").JSX.Element;
13
- declare function ProductEmail({ theme, brand, footer, title, description, imageUrl, imageAlt, actionUrl }: EmailBrandProps & {
13
+ export declare function ProductEmail({ theme, brand, footer, title, description, imageUrl, imageAlt, actionUrl }: EmailBrandProps & {
14
14
  title: string;
15
15
  description: string;
16
16
  imageUrl: string;
17
17
  imageAlt: string;
18
18
  actionUrl: string;
19
19
  }): import("react").JSX.Element;
20
- declare function EditorialEmail({ theme, brand, footer, title, description, imageUrl, imageAlt, articleUrl }: EmailBrandProps & {
20
+ export declare function EditorialEmail({ theme, brand, footer, title, description, imageUrl, imageAlt, articleUrl }: EmailBrandProps & {
21
21
  title: string;
22
22
  description: string;
23
23
  imageUrl: string;
24
24
  imageAlt: string;
25
25
  articleUrl: string;
26
26
  }): import("react").JSX.Element;
27
- type EmailArticle = {
27
+ export type EmailArticle = {
28
28
  title: string;
29
29
  description: string;
30
30
  href: string;
31
31
  imageUrl: string;
32
32
  imageAlt: string;
33
33
  };
34
- declare function NewsletterEmail({ theme, brand, footer, articles, unsubscribeUrl }: EmailBrandProps & {
34
+ export declare function NewsletterEmail({ theme, brand, footer, articles, unsubscribeUrl }: EmailBrandProps & {
35
35
  articles: EmailArticle[];
36
36
  unsubscribeUrl: string;
37
37
  }): import("react").JSX.Element;
38
- declare function SummaryEmail({ theme, brand, footer, period, metrics, details, dashboardUrl }: EmailBrandProps & {
38
+ export declare function SummaryEmail({ theme, brand, footer, period, metrics, details, dashboardUrl }: EmailBrandProps & {
39
39
  period: string;
40
40
  metrics: {
41
41
  label: string;
@@ -47,5 +47,4 @@ declare function SummaryEmail({ theme, brand, footer, period, metrics, details,
47
47
  }[];
48
48
  dashboardUrl: string;
49
49
  }): import("react").JSX.Element;
50
- //#endregion
51
- export { EditorialEmail, EmailArticle, InvitationEmail, NewsletterEmail, ProductEmail, SummaryEmail };
50
+ //#endregion
@@ -35,7 +35,7 @@ function InvitationEmail({ theme, brand, footer, inviter, workspace, inviteUrl }
35
35
  ". Bring your work, share a little inspiration, and make something together."
36
36
  ] }),
37
37
  /* @__PURE__ */ jsxs(Section, {
38
- className: "my-6 bg-muted p-5",
38
+ className: "my-6 rounded-panel bg-muted p-5",
39
39
  children: [/* @__PURE__ */ jsx(EmailHeading, {
40
40
  as: "h3",
41
41
  children: "Your team is waiting"
@@ -69,7 +69,7 @@ function ProductEmail({ theme, brand, footer, title, description, imageUrl, imag
69
69
  src: imageUrl,
70
70
  alt: imageAlt,
71
71
  width: "552",
72
- className: "mb-6 block h-auto w-full"
72
+ className: "mb-6 block h-auto w-full rounded-scene"
73
73
  }),
74
74
  /* @__PURE__ */ jsx(EmailHeading, { children: title }),
75
75
  /* @__PURE__ */ jsx(EmailText, { children: description }),
@@ -102,7 +102,7 @@ function EditorialEmail({ theme, brand, footer, title, description, imageUrl, im
102
102
  src: imageUrl,
103
103
  alt: imageAlt,
104
104
  width: "198",
105
- className: "block h-auto w-full"
105
+ className: "block h-auto w-full rounded-scene"
106
106
  })
107
107
  }), /* @__PURE__ */ jsxs(Column, {
108
108
  width: "64%",
@@ -148,7 +148,7 @@ function NewsletterEmail({ theme, brand, footer, articles, unsubscribeUrl }) {
148
148
  src: article.imageUrl,
149
149
  alt: article.imageAlt,
150
150
  width: "552",
151
- className: "mb-4 block h-auto w-full"
151
+ className: "mb-4 block h-auto w-full rounded-scene"
152
152
  }),
153
153
  /* @__PURE__ */ jsx(EmailHeading, {
154
154
  as: "h2",
@@ -190,7 +190,7 @@ function SummaryEmail({ theme, brand, footer, period, metrics, details, dashboar
190
190
  /* @__PURE__ */ jsx(EmailHeading, { children: "Good work adds up." }),
191
191
  /* @__PURE__ */ jsx(EmailText, { children: "Here’s what your team moved forward this week." }),
192
192
  /* @__PURE__ */ jsx(Section, {
193
- className: "my-6 bg-muted p-4",
193
+ className: "my-6 rounded-panel bg-muted p-4",
194
194
  children: /* @__PURE__ */ jsx(Row, {
195
195
  className: "table-fixed",
196
196
  children: metrics.map((metric) => /* @__PURE__ */ jsxs(Column, {
@@ -9,15 +9,26 @@ type EmailTypeStyle = {
9
9
  fontWeight: string;
10
10
  letterSpacing: string;
11
11
  };
12
- type EmailTheme = {
12
+ export type EmailTheme = {
13
13
  colors: Record<EmailColor, string>;
14
14
  fonts: {
15
15
  body: string;
16
16
  display: string;
17
17
  };
18
+ radii: {
19
+ control: string;
20
+ panel: string;
21
+ scene: string;
22
+ };
23
+ button: {
24
+ height: string;
25
+ paddingInline: string;
26
+ paddingBlock: string;
27
+ fontSize: string;
28
+ lineHeight: string;
29
+ };
18
30
  text: Record<EmailHeadingSize | "body" | "caption", EmailTypeStyle>;
19
31
  };
20
- declare function createEmailTheme(tokens: ReadonlyMap<string, string>, rootFontSize?: number): EmailTheme;
21
- declare function emailThemeFromCss(cssSources: string[], mode?: "light" | "dark", rootFontSize?: number): EmailTheme;
22
- //#endregion
23
- export { EmailTheme, createEmailTheme, emailThemeFromCss };
32
+ export declare function createEmailTheme(tokens: ReadonlyMap<string, string>, rootFontSize?: number): EmailTheme;
33
+ export declare function emailThemeFromCss(cssSources: string[], mode?: "light" | "dark", rootFontSize?: number): EmailTheme;
34
+ //#endregion
@@ -1,3 +1,4 @@
1
+ import { emailLengthPixels } from "./length.js";
1
2
  import { composite, resolveColor, tokenMaps } from "../scripts/contrast-eval.js";
2
3
  //#region src/email/theme.ts
3
4
  function resolveVariables(value, tokens, chain = []) {
@@ -17,12 +18,7 @@ function tokenValue(name, tokens, fallback) {
17
18
  return resolved;
18
19
  }
19
20
  function pixelSize(name, tokens, rootFontSize) {
20
- const value = tokenValue(name, tokens);
21
- const match = /^(\d*\.?\d+)(px|rem)$/.exec(value);
22
- if (!match) throw new Error(`Email theme: ${name} must resolve to px or rem, received ${value}.`);
23
- const pixels = Number(match[1]) * (match[2] === "rem" ? rootFontSize : 1);
24
- if (pixels <= 0) throw new Error(`Email theme: ${name} must be positive.`);
25
- return `${pixels}px`;
21
+ return `${emailLengthPixels(name, tokenValue(name, tokens), rootFontSize)}px`;
26
22
  }
27
23
  function numericStyle(name, tokens, fallback) {
28
24
  const value = tokenValue(name, tokens, fallback);
@@ -31,6 +27,13 @@ function numericStyle(name, tokens, fallback) {
31
27
  }
32
28
  function createEmailTheme(tokens, rootFontSize = 16) {
33
29
  if (!Number.isFinite(rootFontSize) || rootFontSize <= 0) throw new Error("Email theme: rootFontSize must be a positive pixel value.");
30
+ function lengthPixels(name, allowZero = false) {
31
+ return emailLengthPixels(name, tokenValue(name, tokens), rootFontSize, allowZero);
32
+ }
33
+ const buttonHeight = lengthPixels("--control-h-md");
34
+ const buttonFontSize = lengthPixels("--text-body");
35
+ const reactEmailButtonLineHeight = buttonFontSize * 1.2;
36
+ const buttonPaddingBlock = Math.max(0, (buttonHeight - reactEmailButtonLineHeight) / 2);
34
37
  function color(name) {
35
38
  const result = resolveColor(`var(--${name})`, tokens);
36
39
  if ("unresolved" in result) throw new Error(`Email theme: --${name}: ${result.unresolved}.`);
@@ -71,6 +74,18 @@ function createEmailTheme(tokens, rootFontSize = 16) {
71
74
  body: tokenValue("--font-body", tokens),
72
75
  display: tokenValue("--font-display", tokens)
73
76
  },
77
+ radii: {
78
+ control: `${lengthPixels("--radius-control", true)}px`,
79
+ panel: `${lengthPixels("--radius-panel", true)}px`,
80
+ scene: `${lengthPixels("--radius-scene", true)}px`
81
+ },
82
+ button: {
83
+ height: `${buttonHeight}px`,
84
+ paddingInline: `${lengthPixels("--padding-x", true)}px`,
85
+ paddingBlock: `${buttonPaddingBlock}px`,
86
+ fontSize: `${buttonFontSize}px`,
87
+ lineHeight: `${reactEmailButtonLineHeight}px`
88
+ },
74
89
  text: {
75
90
  body: {
76
91
  fontSize: pixelSize("--text-body-lg", tokens, rootFontSize),
@@ -3,17 +3,17 @@ import { EnvironmentVariableRow, EnvironmentVariablesController, UseEnvironmentV
3
3
  import { EnvironmentVariablesKnobStyle } from "./knob-contracts/environment-variables-knobs.js";
4
4
  import { CSSProperties, ComponentProps, ReactNode } from "react";
5
5
  //#region src/environment-variables.d.ts
6
- type EnvironmentVariablesRowErrors = Record<number, {
6
+ export type EnvironmentVariablesRowErrors = Record<number, {
7
7
  key?: ReactNode;
8
8
  value?: ReactNode;
9
9
  }>;
10
- type EnvironmentVariablesSubmitPayload<TRow extends EnvironmentVariableRow = EnvironmentVariableRow> = {
10
+ export type EnvironmentVariablesSubmitPayload<TRow extends EnvironmentVariableRow = EnvironmentVariableRow> = {
11
11
  rows: TRow[];
12
12
  variables: Record<string, string>;
13
13
  envFileText: string;
14
14
  reset: () => void;
15
15
  };
16
- type EnvironmentVariablesRootProps<TRow extends EnvironmentVariableRow = EnvironmentVariableRow> = Omit<ComponentProps<"form">, "onSubmit"> & {
16
+ export type EnvironmentVariablesRootProps<TRow extends EnvironmentVariableRow = EnvironmentVariableRow> = Omit<ComponentProps<"form">, "onSubmit"> & {
17
17
  editor: EnvironmentVariablesController<TRow>;
18
18
  disabled?: boolean;
19
19
  readOnly?: boolean;
@@ -27,8 +27,8 @@ type EnvironmentVariablesRootProps<TRow extends EnvironmentVariableRow = Environ
27
27
  } & {
28
28
  style?: CSSProperties & EnvironmentVariablesKnobStyle;
29
29
  };
30
- declare function EnvironmentVariablesRoot<TRow extends EnvironmentVariableRow = EnvironmentVariableRow>({ editor, disabled, readOnly, rowErrors, keyLabel, valueLabel, keyPlaceholder, valuePlaceholder, duplicateKeyMessage, onSubmit, className, children, ...props }: EnvironmentVariablesRootProps<TRow>): import("react").JSX.Element;
31
- type EnvironmentVariablesProps<TRow extends EnvironmentVariableRow = EnvironmentVariableRow> = Omit<EnvironmentVariablesRootProps<TRow>, "editor"> & UseEnvironmentVariablesOptions<TRow> & {
30
+ export declare function EnvironmentVariablesRoot<TRow extends EnvironmentVariableRow = EnvironmentVariableRow>({ editor, disabled, readOnly, rowErrors, keyLabel, valueLabel, keyPlaceholder, valuePlaceholder, duplicateKeyMessage, onSubmit, className, children, ...props }: EnvironmentVariablesRootProps<TRow>): import("react").JSX.Element;
31
+ export type EnvironmentVariablesProps<TRow extends EnvironmentVariableRow = EnvironmentVariableRow> = Omit<EnvironmentVariablesRootProps<TRow>, "editor"> & UseEnvironmentVariablesOptions<TRow> & {
32
32
  editor?: EnvironmentVariablesController<TRow>;
33
33
  title?: ReactNode;
34
34
  description?: ReactNode;
@@ -39,71 +39,71 @@ type EnvironmentVariablesProps<TRow extends EnvironmentVariableRow = Environment
39
39
  hideDefaultActions?: boolean;
40
40
  };
41
41
  declare function EnvironmentVariablesComponent<TRow extends EnvironmentVariableRow = EnvironmentVariableRow>({ editor: providedEditor, initialRows, rows, onRowsChange, createDefaultRow, createRow, getEditableRows, getPreservedRows, maxUploadSize, title, description, error, submitLabel, resetLabel, addLabel, hideDefaultActions, children, onSubmit, ...props }: EnvironmentVariablesProps<TRow>): import("react").JSX.Element;
42
- type EnvironmentVariablesHeaderProps = ComponentProps<"div"> & {
42
+ export type EnvironmentVariablesHeaderProps = ComponentProps<"div"> & {
43
43
  title?: ReactNode;
44
44
  description?: ReactNode;
45
45
  } & {
46
46
  style?: CSSProperties & EnvironmentVariablesKnobStyle;
47
47
  };
48
- declare function EnvironmentVariablesHeader({ title, description, className, children, ...props }: EnvironmentVariablesHeaderProps): import("react").JSX.Element | null;
49
- type EnvironmentVariablesToolbarProps = ComponentProps<"div"> & {
48
+ export declare function EnvironmentVariablesHeader({ title, description, className, children, ...props }: EnvironmentVariablesHeaderProps): import("react").JSX.Element | null;
49
+ export type EnvironmentVariablesToolbarProps = ComponentProps<"div"> & {
50
50
  style?: CSSProperties & EnvironmentVariablesKnobStyle;
51
51
  };
52
- declare function EnvironmentVariablesToolbar({ className, children, ...props }: EnvironmentVariablesToolbarProps): import("react").JSX.Element | null;
53
- type EnvironmentVariablesUploadButtonProps = ComponentProps<typeof Button> & {
52
+ export declare function EnvironmentVariablesToolbar({ className, children, ...props }: EnvironmentVariablesToolbarProps): import("react").JSX.Element | null;
53
+ export type EnvironmentVariablesUploadButtonProps = ComponentProps<typeof Button> & {
54
54
  inputLabel?: string;
55
55
  };
56
- declare function EnvironmentVariablesUploadButton({ inputLabel, children, variant, size, disabled, onClick, ...props }: EnvironmentVariablesUploadButtonProps): import("react").JSX.Element;
57
- type EnvironmentVariablesRowsProps = ComponentProps<"div"> & {
56
+ export declare function EnvironmentVariablesUploadButton({ inputLabel, children, variant, size, disabled, onClick, ...props }: EnvironmentVariablesUploadButtonProps): import("react").JSX.Element;
57
+ export type EnvironmentVariablesRowsProps = ComponentProps<"div"> & {
58
58
  rowErrors?: EnvironmentVariablesRowErrors;
59
59
  } & {
60
60
  style?: CSSProperties & EnvironmentVariablesKnobStyle;
61
61
  };
62
- declare function EnvironmentVariablesRows({ rowErrors, className, children, ...props }: EnvironmentVariablesRowsProps): import("react").JSX.Element;
63
- type EnvironmentVariablesRowProps = Omit<ComponentProps<"div">, "children"> & {
62
+ export declare function EnvironmentVariablesRows({ rowErrors, className, children, ...props }: EnvironmentVariablesRowsProps): import("react").JSX.Element;
63
+ export type EnvironmentVariablesRowProps = Omit<ComponentProps<"div">, "children"> & {
64
64
  row: EnvironmentVariableRow;
65
65
  index: number;
66
66
  rowErrors?: EnvironmentVariablesRowErrors;
67
67
  } & {
68
68
  style?: CSSProperties & EnvironmentVariablesKnobStyle;
69
69
  };
70
- declare function EnvironmentVariablesRow({ row, index, rowErrors, className, ...props }: EnvironmentVariablesRowProps): import("react").JSX.Element;
71
- type EnvironmentVariablesAddButtonProps = ComponentProps<typeof Button>;
72
- declare function EnvironmentVariablesAddButton({ children, variant, size, disabled, onClick, ...props }: EnvironmentVariablesAddButtonProps): import("react").JSX.Element | null;
73
- type EnvironmentVariablesResetButtonProps = ComponentProps<typeof Button>;
74
- declare function EnvironmentVariablesResetButton({ children, variant, size, disabled, onClick, ...props }: EnvironmentVariablesResetButtonProps): import("react").JSX.Element | null;
75
- type EnvironmentVariablesSubmitButtonProps = ComponentProps<typeof Button>;
76
- declare function EnvironmentVariablesSubmitButton({ children, variant, tone, size, disabled, ...props }: EnvironmentVariablesSubmitButtonProps): import("react").JSX.Element | null;
77
- type EnvironmentVariablesActionsProps = ComponentProps<"div"> & {
70
+ export declare function EnvironmentVariablesRow({ row, index, rowErrors, className, ...props }: EnvironmentVariablesRowProps): import("react").JSX.Element;
71
+ export type EnvironmentVariablesAddButtonProps = ComponentProps<typeof Button>;
72
+ export declare function EnvironmentVariablesAddButton({ children, variant, size, disabled, onClick, ...props }: EnvironmentVariablesAddButtonProps): import("react").JSX.Element | null;
73
+ export type EnvironmentVariablesResetButtonProps = ComponentProps<typeof Button>;
74
+ export declare function EnvironmentVariablesResetButton({ children, variant, size, disabled, onClick, ...props }: EnvironmentVariablesResetButtonProps): import("react").JSX.Element | null;
75
+ export type EnvironmentVariablesSubmitButtonProps = ComponentProps<typeof Button>;
76
+ export declare function EnvironmentVariablesSubmitButton({ children, variant, tone, size, disabled, ...props }: EnvironmentVariablesSubmitButtonProps): import("react").JSX.Element | null;
77
+ export type EnvironmentVariablesActionsProps = ComponentProps<"div"> & {
78
78
  style?: CSSProperties & EnvironmentVariablesKnobStyle;
79
79
  };
80
- declare function EnvironmentVariablesActions({ className, ...props }: EnvironmentVariablesActionsProps): import("react").JSX.Element;
81
- type EnvironmentVariablesMessageProps = Omit<ComponentProps<"div">, "style"> & {
80
+ export declare function EnvironmentVariablesActions({ className, ...props }: EnvironmentVariablesActionsProps): import("react").JSX.Element;
81
+ export type EnvironmentVariablesMessageProps = Omit<ComponentProps<"div">, "style"> & {
82
82
  error?: ReactNode;
83
83
  style?: CSSProperties & EnvironmentVariablesKnobStyle;
84
84
  };
85
- declare function EnvironmentVariablesMessage({ error, className, children, ...props }: EnvironmentVariablesMessageProps): import("react").JSX.Element | null;
86
- type EnvironmentVariablesDuplicateKeysErrorProps = Omit<EnvironmentVariablesMessageProps, "error"> & {
85
+ export declare function EnvironmentVariablesMessage({ error, className, children, ...props }: EnvironmentVariablesMessageProps): import("react").JSX.Element | null;
86
+ export type EnvironmentVariablesDuplicateKeysErrorProps = Omit<EnvironmentVariablesMessageProps, "error"> & {
87
87
  message?: ReactNode;
88
88
  };
89
- declare function EnvironmentVariablesDuplicateKeysError({ message, ...props }: EnvironmentVariablesDuplicateKeysErrorProps): import("react").JSX.Element | null;
90
- type EnvironmentVariablesUploadErrorProps = Omit<EnvironmentVariablesMessageProps, "error">;
91
- declare function EnvironmentVariablesUploadError(props: EnvironmentVariablesUploadErrorProps): import("react").JSX.Element;
92
- type EnvironmentVariablesReadOnlyListProps = ComponentProps<"div"> & {
89
+ export declare function EnvironmentVariablesDuplicateKeysError({ message, ...props }: EnvironmentVariablesDuplicateKeysErrorProps): import("react").JSX.Element | null;
90
+ export type EnvironmentVariablesUploadErrorProps = Omit<EnvironmentVariablesMessageProps, "error">;
91
+ export declare function EnvironmentVariablesUploadError(props: EnvironmentVariablesUploadErrorProps): import("react").JSX.Element;
92
+ export type EnvironmentVariablesReadOnlyListProps = ComponentProps<"div"> & {
93
93
  rows?: readonly EnvironmentVariableRow[];
94
94
  emptyMessage?: ReactNode;
95
95
  } & {
96
96
  style?: CSSProperties & EnvironmentVariablesKnobStyle;
97
97
  };
98
- declare function EnvironmentVariablesReadOnlyList({ rows, emptyMessage, className, children, ...props }: EnvironmentVariablesReadOnlyListProps): import("react").JSX.Element;
99
- type EnvironmentVariablesReadOnlyItemProps = Omit<ComponentProps<"div">, "style"> & {
98
+ export declare function EnvironmentVariablesReadOnlyList({ rows, emptyMessage, className, children, ...props }: EnvironmentVariablesReadOnlyListProps): import("react").JSX.Element;
99
+ export type EnvironmentVariablesReadOnlyItemProps = Omit<ComponentProps<"div">, "style"> & {
100
100
  name: ReactNode;
101
101
  value?: ReactNode;
102
102
  revealed?: boolean;
103
103
  style?: CSSProperties & EnvironmentVariablesKnobStyle;
104
104
  };
105
- declare function EnvironmentVariablesReadOnlyItem({ name, value, revealed, className, ...props }: EnvironmentVariablesReadOnlyItemProps): import("react").JSX.Element;
106
- declare const EnvironmentVariables: typeof EnvironmentVariablesComponent & {
105
+ export declare function EnvironmentVariablesReadOnlyItem({ name, value, revealed, className, ...props }: EnvironmentVariablesReadOnlyItemProps): import("react").JSX.Element;
106
+ export declare const EnvironmentVariables: typeof EnvironmentVariablesComponent & {
107
107
  Root: typeof EnvironmentVariablesRoot;
108
108
  Header: typeof EnvironmentVariablesHeader;
109
109
  Toolbar: typeof EnvironmentVariablesToolbar;
@@ -120,5 +120,4 @@ declare const EnvironmentVariables: typeof EnvironmentVariablesComponent & {
120
120
  ReadOnlyList: typeof EnvironmentVariablesReadOnlyList;
121
121
  ReadOnlyItem: typeof EnvironmentVariablesReadOnlyItem;
122
122
  };
123
- //#endregion
124
- export { EnvironmentVariables, EnvironmentVariablesActions, EnvironmentVariablesActionsProps, EnvironmentVariablesAddButton, EnvironmentVariablesAddButtonProps, EnvironmentVariablesDuplicateKeysError, EnvironmentVariablesDuplicateKeysErrorProps, EnvironmentVariablesHeader, EnvironmentVariablesHeaderProps, EnvironmentVariablesMessage, EnvironmentVariablesMessageProps, EnvironmentVariablesProps, EnvironmentVariablesReadOnlyItem, EnvironmentVariablesReadOnlyItemProps, EnvironmentVariablesReadOnlyList, EnvironmentVariablesReadOnlyListProps, EnvironmentVariablesResetButton, EnvironmentVariablesResetButtonProps, EnvironmentVariablesRoot, EnvironmentVariablesRootProps, EnvironmentVariablesRow, EnvironmentVariablesRowErrors, EnvironmentVariablesRowProps, EnvironmentVariablesRows, EnvironmentVariablesRowsProps, EnvironmentVariablesSubmitButton, EnvironmentVariablesSubmitButtonProps, EnvironmentVariablesSubmitPayload, EnvironmentVariablesToolbar, EnvironmentVariablesToolbarProps, EnvironmentVariablesUploadButton, EnvironmentVariablesUploadButtonProps, EnvironmentVariablesUploadError, EnvironmentVariablesUploadErrorProps };
123
+ //#endregion
@@ -1,10 +1,9 @@
1
1
  //#region src/extensions/create-track-highlight.d.ts
2
- type TrackHighlightOptions = {
2
+ export type TrackHighlightOptions = {
3
3
  itemSelector: string;
4
4
  activeSelector: string;
5
5
  range?: boolean;
6
6
  followHover?: boolean;
7
7
  };
8
- declare function createTrackHighlight(track: HTMLElement, highlight: HTMLElement, options: TrackHighlightOptions, hoverHighlight?: HTMLElement): () => void;
9
- //#endregion
10
- export { TrackHighlightOptions, createTrackHighlight };
8
+ export declare function createTrackHighlight(track: HTMLElement, highlight: HTMLElement, options: TrackHighlightOptions, hoverHighlight?: HTMLElement): () => void;
9
+ //#endregion
@@ -1,4 +1,3 @@
1
1
  //#region src/extensions/supports-anchor-transitions.d.ts
2
- declare function supportsAnchorTransitions(): boolean;
3
- //#endregion
4
- export { supportsAnchorTransitions };
2
+ export declare function supportsAnchorTransitions(): boolean;
3
+ //#endregion
@@ -1,7 +1,7 @@
1
1
  import { TrackHighlightKnobStyle } from "../knob-contracts/track-highlight-knobs.js";
2
2
  import { CSSProperties, ComponentProps, ReactNode, RefObject } from "react";
3
3
  //#region src/extensions/track-highlight.d.ts
4
- type TrackHighlightProps = Omit<ComponentProps<"div">, "children" | "ref" | "style"> & {
4
+ export type TrackHighlightProps = Omit<ComponentProps<"div">, "children" | "ref" | "style"> & {
5
5
  trackRef?: RefObject<HTMLElement | null>;
6
6
  itemSelector?: string;
7
7
  activeSelector?: string;
@@ -11,6 +11,5 @@ type TrackHighlightProps = Omit<ComponentProps<"div">, "children" | "ref" | "sty
11
11
  children?: ReactNode;
12
12
  style?: CSSProperties & TrackHighlightKnobStyle;
13
13
  };
14
- declare function TrackHighlight({ trackRef, itemSelector, activeSelector, range, followHover, hoverClassName, className, style, children, ...props }: TrackHighlightProps): import("react").JSX.Element;
15
- //#endregion
16
- export { TrackHighlight, TrackHighlightProps };
14
+ export declare function TrackHighlight({ trackRef, itemSelector, activeSelector, range, followHover, hoverClassName, className, style, children, ...props }: TrackHighlightProps): import("react").JSX.Element;
15
+ //#endregion
@@ -1,12 +1,12 @@
1
1
  //#region src/hooks/use-audio-recorder.d.ts
2
- type AudioRecorderState = "idle" | "requesting" | "recording" | "recorded" | "submitting" | "error";
3
- type AudioRecording = {
2
+ export type AudioRecorderState = "idle" | "requesting" | "recording" | "recorded" | "submitting" | "error";
3
+ export type AudioRecording = {
4
4
  blob: Blob;
5
5
  url: string;
6
6
  durationMs: number;
7
7
  mimeType: string;
8
8
  };
9
- type UseAudioRecorderOptions = {
9
+ export type UseAudioRecorderOptions = {
10
10
  onRecordingComplete?: (recording: AudioRecording) => void | Promise<void>;
11
11
  onCancel?: () => void;
12
12
  maxDurationMs?: number;
@@ -15,14 +15,14 @@ type UseAudioRecorderOptions = {
15
15
  barDurationMs?: number;
16
16
  deviceId?: string;
17
17
  };
18
- type AudioRecorderSnapshot = {
18
+ export type AudioRecorderSnapshot = {
19
19
  state: AudioRecorderState;
20
20
  durationMs: number;
21
21
  levels: number[];
22
22
  error: Error | null;
23
23
  recording?: AudioRecording;
24
24
  };
25
- type UseAudioRecorderResult = AudioRecorderSnapshot & {
25
+ export type UseAudioRecorderResult = AudioRecorderSnapshot & {
26
26
  isDisabled: boolean;
27
27
  canStart: boolean;
28
28
  canCancel: boolean;
@@ -32,7 +32,7 @@ type UseAudioRecorderResult = AudioRecorderSnapshot & {
32
32
  cancel: () => void;
33
33
  submit: () => Promise<AudioRecording | null>;
34
34
  };
35
- type UseAudioInputDevicesResult = {
35
+ export type UseAudioInputDevicesResult = {
36
36
  devices: MediaDeviceInfo[];
37
37
  loading: boolean;
38
38
  error: Error | null;
@@ -40,7 +40,7 @@ type UseAudioInputDevicesResult = {
40
40
  refresh: () => Promise<void>;
41
41
  requestPermission: () => Promise<void>;
42
42
  };
43
- type AudioRecorderStreamLike = {
43
+ export type AudioRecorderStreamLike = {
44
44
  getTracks: () => readonly {
45
45
  stop: () => void;
46
46
  }[];
@@ -73,7 +73,7 @@ type AudioContextLike<TStream extends AudioRecorderStreamLike> = {
73
73
  createAnalyser(): AnalyserLike;
74
74
  };
75
75
  type AudioContextConstructor<TStream extends AudioRecorderStreamLike> = new () => AudioContextLike<TStream>;
76
- type AudioRecorderControllerEnvironment<TStream extends AudioRecorderStreamLike = AudioRecorderStreamLike> = {
76
+ export type AudioRecorderControllerEnvironment<TStream extends AudioRecorderStreamLike = AudioRecorderStreamLike> = {
77
77
  mediaDevices?: {
78
78
  getUserMedia: (constraints: MediaStreamConstraints) => Promise<TStream>;
79
79
  };
@@ -85,12 +85,12 @@ type AudioRecorderControllerEnvironment<TStream extends AudioRecorderStreamLike
85
85
  revokeObjectURL?: (url: string) => void;
86
86
  now?: () => number;
87
87
  };
88
- declare function preferredAudioMimeType(MediaRecorderImpl?: {
88
+ export declare function preferredAudioMimeType(MediaRecorderImpl?: {
89
89
  isTypeSupported?: (mimeType: string) => boolean;
90
90
  }): "audio/mp4" | "audio/webm;codecs=opus" | undefined;
91
- declare function formatAudioInputDeviceLabel(device: MediaDeviceInfo, fallback?: string): string;
92
- declare function useAudioInputDevices(): UseAudioInputDevicesResult;
93
- declare function createAudioRecorderController<TStream extends AudioRecorderStreamLike = AudioRecorderStreamLike>(initialOptions?: UseAudioRecorderOptions, environment?: AudioRecorderControllerEnvironment<TStream>): {
91
+ export declare function formatAudioInputDeviceLabel(device: MediaDeviceInfo, fallback?: string): string;
92
+ export declare function useAudioInputDevices(): UseAudioInputDevicesResult;
93
+ export declare function createAudioRecorderController<TStream extends AudioRecorderStreamLike = AudioRecorderStreamLike>(initialOptions?: UseAudioRecorderOptions, environment?: AudioRecorderControllerEnvironment<TStream>): {
94
94
  getSnapshot: () => AudioRecorderSnapshot;
95
95
  getResult: () => UseAudioRecorderResult;
96
96
  setOptions: (nextOptions: UseAudioRecorderOptions) => void;
@@ -102,6 +102,5 @@ declare function createAudioRecorderController<TStream extends AudioRecorderStre
102
102
  submit: () => Promise<AudioRecording | null>;
103
103
  destroy: () => void;
104
104
  };
105
- declare function useAudioRecorder(options?: UseAudioRecorderOptions): UseAudioRecorderResult;
106
- //#endregion
107
- export { AudioRecorderControllerEnvironment, AudioRecorderSnapshot, AudioRecorderState, AudioRecorderStreamLike, AudioRecording, UseAudioInputDevicesResult, UseAudioRecorderOptions, UseAudioRecorderResult, createAudioRecorderController, formatAudioInputDeviceLabel, preferredAudioMimeType, useAudioInputDevices, useAudioRecorder };
105
+ export declare function useAudioRecorder(options?: UseAudioRecorderOptions): UseAudioRecorderResult;
106
+ //#endregion
@@ -3,12 +3,12 @@ import { ChatComposerKnobStyle } from "../knob-contracts/chat-composer-knobs.js"
3
3
  import { ChatDensity } from "./use-chat-message.js";
4
4
  import { CSSProperties, ComponentProps, ReactNode } from "react";
5
5
  //#region src/hooks/use-chat-composer.d.ts
6
- type ChatComposerSubmitPayload = {
6
+ export type ChatComposerSubmitPayload = {
7
7
  value: string;
8
8
  clear: () => void;
9
9
  mentions?: MentionItem[];
10
10
  };
11
- type ChatComposerProps = Omit<ComponentProps<"form">, "onSubmit" | "style"> & {
11
+ export type ChatComposerProps = Omit<ComponentProps<"form">, "onSubmit" | "style"> & {
12
12
  children?: ReactNode;
13
13
  value?: string;
14
14
  defaultValue?: string;
@@ -19,7 +19,7 @@ type ChatComposerProps = Omit<ComponentProps<"form">, "onSubmit" | "style"> & {
19
19
  disabled?: boolean;
20
20
  style?: CSSProperties & ChatComposerKnobStyle;
21
21
  };
22
- type MentionItem = {
22
+ export type MentionItem = {
23
23
  id: string;
24
24
  label: string;
25
25
  kind: string;
@@ -33,7 +33,7 @@ type ComposerKeyEvent = {
33
33
  };
34
34
  preventDefault: () => void;
35
35
  };
36
- declare function useChatComposer({ value, defaultValue, onValueChange, onSubmit, state, density, disabled, trackSends }: Pick<ChatComposerProps, "value" | "defaultValue" | "onValueChange" | "onSubmit" | "state" | "density" | "disabled"> & {
36
+ export declare function useChatComposer({ value, defaultValue, onValueChange, onSubmit, state, density, disabled, trackSends }: Pick<ChatComposerProps, "value" | "defaultValue" | "onValueChange" | "onSubmit" | "state" | "density" | "disabled"> & {
37
37
  /** Count successful submits — only enabled when something reads counter (send-layer anchor), so idle apps pay no extra state update. */
38
38
  trackSends?: boolean;
39
39
  }): {
@@ -52,5 +52,4 @@ declare function useChatComposer({ value, defaultValue, onValueChange, onSubmit,
52
52
  handleSubmit: (event: FormSubmitEvent) => void;
53
53
  handleKeyDown: (event: ComposerKeyEvent) => void;
54
54
  };
55
- //#endregion
56
- export { ChatComposerProps, ChatComposerSubmitPayload, MentionItem, useChatComposer };
55
+ //#endregion
@@ -1,17 +1,17 @@
1
1
  import { ChatMessageKnobStyle } from "../knob-contracts/chat-message-knobs.js";
2
2
  import { CSSProperties, ComponentProps } from "react";
3
3
  //#region src/hooks/use-chat-message.d.ts
4
- type ChatRole = "user" | "assistant" | "system" | "tool";
5
- type ChatDensity = "compact" | "comfortable";
6
- type ChatState = "idle" | "streaming" | "pending" | "error";
7
- type ChatMessageProps = ComponentProps<"article"> & {
4
+ export type ChatRole = "user" | "assistant" | "system" | "tool";
5
+ export type ChatDensity = "compact" | "comfortable";
6
+ export type ChatState = "idle" | "streaming" | "pending" | "error";
7
+ export type ChatMessageProps = ComponentProps<"article"> & {
8
8
  from: ChatRole;
9
9
  state?: ChatState;
10
10
  density?: ChatDensity;
11
11
  } & {
12
12
  style?: CSSProperties & ChatMessageKnobStyle;
13
13
  };
14
- type ChatMessageContext = {
14
+ export type ChatMessageContext = {
15
15
  from: ChatRole;
16
16
  state: ChatState;
17
17
  density: ChatDensity;
@@ -23,6 +23,5 @@ type ChatMessageContext = {
23
23
  isStreaming: boolean;
24
24
  isError: boolean;
25
25
  };
26
- declare function useChatMessage({ from, state, density }: Pick<ChatMessageProps, "from" | "state" | "density">): ChatMessageContext;
27
- //#endregion
28
- export { ChatDensity, ChatMessageContext, ChatMessageProps, ChatRole, ChatState, useChatMessage };
26
+ export declare function useChatMessage({ from, state, density }: Pick<ChatMessageProps, "from" | "state" | "density">): ChatMessageContext;
27
+ //#endregion
@@ -1,18 +1,17 @@
1
1
  import { PointerEvent, RefObject } from "react";
2
2
  //#region src/hooks/use-color-area.d.ts
3
- type ColorAreaOffset = {
3
+ export type ColorAreaOffset = {
4
4
  x: number;
5
5
  y: number;
6
6
  };
7
- type ColorAreaRect = {
7
+ export type ColorAreaRect = {
8
8
  width: number;
9
9
  height: number;
10
10
  };
11
- type ColorAreaPointer = {
11
+ export type ColorAreaPointer = {
12
12
  areaRef: RefObject<HTMLDivElement | null>;
13
13
  dragging: boolean;
14
14
  onPointerDown: (event: PointerEvent) => void;
15
15
  };
16
- declare function useColorArea(onChange: (offset: ColorAreaOffset, rect: ColorAreaRect) => void): ColorAreaPointer;
17
- //#endregion
18
- export { ColorAreaOffset, ColorAreaPointer, ColorAreaRect, useColorArea };
16
+ export declare function useColorArea(onChange: (offset: ColorAreaOffset, rect: ColorAreaRect) => void): ColorAreaPointer;
17
+ //#endregion
@@ -1,22 +1,21 @@
1
1
  //#region src/hooks/use-copy-to-clipboard.d.ts
2
- type UseCopyToClipboardOptions = {
2
+ export type UseCopyToClipboardOptions = {
3
3
  text?: string;
4
4
  copiedDuration?: number;
5
5
  onCopy?: (value: string) => void;
6
6
  onCopyError?: (error: unknown) => void;
7
7
  };
8
- type UseCopyToClipboardResult = {
8
+ export type UseCopyToClipboardResult = {
9
9
  isCopied: boolean;
10
10
  copyToClipboard: (value: string) => Promise<boolean>;
11
11
  resetCopied: () => void;
12
12
  };
13
- type UseCopyToClipboardConfiguredResult = UseCopyToClipboardResult & {
13
+ export type UseCopyToClipboardConfiguredResult = UseCopyToClipboardResult & {
14
14
  handleCopy: () => Promise<boolean>;
15
15
  };
16
- declare function copyTextToClipboard(value: string): Promise<boolean>;
17
- declare function useCopyToClipboard(options: UseCopyToClipboardOptions & {
16
+ export declare function copyTextToClipboard(value: string): Promise<boolean>;
17
+ export declare function useCopyToClipboard(options: UseCopyToClipboardOptions & {
18
18
  text: string;
19
19
  }): UseCopyToClipboardConfiguredResult;
20
- declare function useCopyToClipboard(options?: UseCopyToClipboardOptions): UseCopyToClipboardResult;
21
- //#endregion
22
- export { UseCopyToClipboardConfiguredResult, UseCopyToClipboardOptions, UseCopyToClipboardResult, copyTextToClipboard, useCopyToClipboard };
20
+ export declare function useCopyToClipboard(options?: UseCopyToClipboardOptions): UseCopyToClipboardResult;
21
+ //#endregion
@@ -1,21 +1,21 @@
1
1
  import { DropzoneFileRejection, DropzonePolicy } from "../lib/dropzone-validation.js";
2
2
  import { ChangeEvent, ComponentProps, DragEvent, RefObject } from "react";
3
3
  //#region src/hooks/use-dropzone.d.ts
4
- type DropzoneVisualState = "idle" | "accept" | "reject" | "unknown" | "processing";
5
- type DropzoneValueChangeReason = "drop" | "input" | "remove" | "clear";
6
- type DropzoneEvent = DragEvent<HTMLElement> | ChangeEvent<HTMLInputElement>;
7
- type DropzoneGetFilesFromEvent = (event: DropzoneEvent, signal: AbortSignal) => readonly File[] | Promise<readonly File[]>;
8
- type DropzoneValueChangeDetails = {
4
+ export type DropzoneVisualState = "idle" | "accept" | "reject" | "unknown" | "processing";
5
+ export type DropzoneValueChangeReason = "drop" | "input" | "remove" | "clear";
6
+ export type DropzoneEvent = DragEvent<HTMLElement> | ChangeEvent<HTMLInputElement>;
7
+ export type DropzoneGetFilesFromEvent = (event: DropzoneEvent, signal: AbortSignal) => readonly File[] | Promise<readonly File[]>;
8
+ export type DropzoneValueChangeDetails = {
9
9
  reason: DropzoneValueChangeReason;
10
10
  addedFiles: readonly File[];
11
11
  removedFiles: readonly File[];
12
12
  };
13
- type DropzoneDropDetails = {
13
+ export type DropzoneDropDetails = {
14
14
  acceptedFiles: readonly File[];
15
15
  fileRejections: readonly DropzoneFileRejection[];
16
16
  event: DropzoneEvent;
17
17
  };
18
- type UseDropzoneOptions = {
18
+ export type UseDropzoneOptions = {
19
19
  value?: readonly File[];
20
20
  defaultValue?: readonly File[];
21
21
  onValueChange?: (value: readonly File[], details: DropzoneValueChangeDetails) => void;
@@ -28,7 +28,7 @@ type UseDropzoneOptions = {
28
28
  onDrop?: (details: DropzoneDropDetails) => void;
29
29
  onError?: (error: Error) => void;
30
30
  };
31
- type UseDropzoneReturn = {
31
+ export type UseDropzoneReturn = {
32
32
  value: readonly File[];
33
33
  fileRejections: readonly DropzoneFileRejection[];
34
34
  accept: string | undefined;
@@ -53,7 +53,6 @@ type UseDropzoneReturn = {
53
53
  getRootProps: (props?: ComponentProps<"div">) => ComponentProps<"div">;
54
54
  getInputProps: (props?: ComponentProps<"input">) => ComponentProps<"input">;
55
55
  };
56
- declare function useDropzone({ value: controlledValue, defaultValue, onValueChange, policy, disabled, drag, preventDropOnDocument, trackDocumentDrag, getFilesFromEvent, onDrop, onError }?: UseDropzoneOptions): UseDropzoneReturn;
57
- declare function defaultGetFilesFromEvent(event: DropzoneEvent): readonly File[];
58
- //#endregion
59
- export { DropzoneDropDetails, DropzoneEvent, DropzoneGetFilesFromEvent, DropzoneValueChangeDetails, DropzoneValueChangeReason, DropzoneVisualState, UseDropzoneOptions, UseDropzoneReturn, defaultGetFilesFromEvent, useDropzone };
56
+ export declare function useDropzone({ value: controlledValue, defaultValue, onValueChange, policy, disabled, drag, preventDropOnDocument, trackDocumentDrag, getFilesFromEvent, onDrop, onError }?: UseDropzoneOptions): UseDropzoneReturn;
57
+ export declare function defaultGetFilesFromEvent(event: DropzoneEvent): readonly File[];
58
+ //#endregion