@ctrl-ui/react 0.8.2 → 0.8.5

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 (417) 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/audio-visualizer.js +1 -1
  7. package/dist/blocks/chat.d.ts +3 -4
  8. package/dist/blocks/chat.js +6 -3
  9. package/dist/blocks/coding-agent.d.ts +11 -12
  10. package/dist/blocks/coding-agent.js +10 -9
  11. package/dist/blocks/file-explorer-data.d.ts +11 -12
  12. package/dist/blocks/file-explorer.d.ts +3 -3
  13. package/dist/blocks/settings-data.d.ts +8 -9
  14. package/dist/blocks/settings.d.ts +4 -4
  15. package/dist/blocks/theme-toggle.d.ts +11 -12
  16. package/dist/blocks/theme-toggle.js +14 -4
  17. package/dist/chat-composer-attachment.d.ts +20 -21
  18. package/dist/chat-composer-attachment.js +24 -20
  19. package/dist/chat-composer-editor/extensions/mention.d.ts +5 -6
  20. package/dist/chat-composer-editor/extensions/mention.js +4 -0
  21. package/dist/chat-composer-editor/ghost.d.ts +3 -4
  22. package/dist/chat-composer-editor/schema.d.ts +2 -3
  23. package/dist/chat-composer-editor/serialize.d.ts +3 -4
  24. package/dist/chat-composer-editor/types.d.ts +5 -6
  25. package/dist/chat-composer-editor.d.ts +2 -3
  26. package/dist/chat-composer-editor.js +18 -4
  27. package/dist/chat-composer.d.ts +17 -18
  28. package/dist/chat-composer.js +14 -8
  29. package/dist/chat-layout.d.ts +17 -21
  30. package/dist/chat-layout.js +72 -86
  31. package/dist/chat-message.d.ts +19 -15
  32. package/dist/chat-message.js +19 -2
  33. package/dist/context-model.d.ts +7 -8
  34. package/dist/context.d.ts +21 -22
  35. package/dist/context.js +0 -2
  36. package/dist/control-props.d.ts +10 -11
  37. package/dist/control-variants.d.ts +6 -7
  38. package/dist/dynamic-notification-glass.d.ts +3 -4
  39. package/dist/dynamic-notification-liquid.d.ts +3 -4
  40. package/dist/dynamic-notification-siri-wave.d.ts +2 -3
  41. package/dist/dynamic-notification.d.ts +28 -29
  42. package/dist/email/email-brand.d.ts +60 -0
  43. package/dist/email/email-brand.js +101 -0
  44. package/dist/email/email-code.d.ts +18 -0
  45. package/dist/email/email-code.js +172 -0
  46. package/dist/email/email-footer.d.ts +63 -0
  47. package/dist/email/email-footer.js +98 -0
  48. package/dist/email/email.d.ts +62 -14
  49. package/dist/email/email.js +155 -24
  50. package/dist/email/length.d.ts +2 -3
  51. package/dist/email/templates.d.ts +56 -12
  52. package/dist/email/templates.js +314 -116
  53. package/dist/email/theme.d.ts +15 -8
  54. package/dist/email/theme.js +30 -8
  55. package/dist/environment-variables.d.ts +35 -36
  56. package/dist/extensions/create-track-highlight.d.ts +3 -4
  57. package/dist/extensions/supports-anchor-transitions.d.ts +2 -3
  58. package/dist/extensions/track-highlight.d.ts +3 -4
  59. package/dist/hooks/use-audio-recorder.d.ts +14 -15
  60. package/dist/hooks/use-chat-composer.d.ts +5 -6
  61. package/dist/hooks/use-chat-message.d.ts +8 -8
  62. package/dist/hooks/use-chat-message.js +1 -0
  63. package/dist/hooks/use-chat-thread-scroll.d.ts +8 -0
  64. package/dist/hooks/use-chat-thread-scroll.js +66 -0
  65. package/dist/hooks/use-color-area.d.ts +5 -6
  66. package/dist/hooks/use-copy-to-clipboard.d.ts +7 -8
  67. package/dist/hooks/use-dropzone.d.ts +11 -12
  68. package/dist/hooks/use-dynamic-notification.d.ts +6 -7
  69. package/dist/hooks/use-environment-variables.d.ts +9 -10
  70. package/dist/hooks/use-keyboard-navigation.d.ts +3 -0
  71. package/dist/hooks/use-keyboard-navigation.js +22 -0
  72. package/dist/hooks/use-mobile.d.ts +2 -3
  73. package/dist/hooks/use-textarea-trigger-menu.d.ts +2 -3
  74. package/dist/hooks/use-trigger-menu.d.ts +7 -8
  75. package/dist/hooks/use-user-ask.d.ts +11 -10
  76. package/dist/hooks/use-user-ask.js +56 -17
  77. package/dist/inline-attachment.d.ts +16 -17
  78. package/dist/inline-attachment.js +1 -1
  79. package/dist/inline-citation.d.ts +22 -23
  80. package/dist/knob-contracts/accordion-knobs.d.ts +3 -4
  81. package/dist/knob-contracts/accordion-knobs.js +1 -0
  82. package/dist/knob-contracts/action-bar-knobs.d.ts +3 -4
  83. package/dist/knob-contracts/action-bar-knobs.js +1 -1
  84. package/dist/knob-contracts/activity-knobs.d.ts +3 -4
  85. package/dist/knob-contracts/activity-knobs.js +2 -1
  86. package/dist/knob-contracts/alert-knobs.d.ts +3 -4
  87. package/dist/knob-contracts/alert-knobs.js +12 -1
  88. package/dist/knob-contracts/audio-recorder-knobs.d.ts +3 -4
  89. package/dist/knob-contracts/audio-visualizer-knobs.d.ts +3 -4
  90. package/dist/knob-contracts/audio-visualizer-knobs.js +1 -0
  91. package/dist/knob-contracts/avatar-knobs.d.ts +3 -4
  92. package/dist/knob-contracts/avatar-knobs.js +2 -1
  93. package/dist/knob-contracts/badge-knobs.d.ts +3 -4
  94. package/dist/knob-contracts/button-group-knobs.d.ts +3 -4
  95. package/dist/knob-contracts/button-knobs.d.ts +3 -4
  96. package/dist/knob-contracts/button-knobs.js +1 -0
  97. package/dist/knob-contracts/calendar-knobs.d.ts +3 -4
  98. package/dist/knob-contracts/card-knobs.d.ts +3 -4
  99. package/dist/knob-contracts/chat-composer-attachment-knobs.d.ts +3 -4
  100. package/dist/knob-contracts/chat-composer-attachment-knobs.js +5 -1
  101. package/dist/knob-contracts/chat-composer-knobs.d.ts +3 -4
  102. package/dist/knob-contracts/chat-composer-knobs.js +2 -0
  103. package/dist/knob-contracts/chat-layout-knobs.d.ts +3 -4
  104. package/dist/knob-contracts/chat-layout-knobs.js +2 -2
  105. package/dist/knob-contracts/chat-message-knobs.d.ts +3 -4
  106. package/dist/knob-contracts/chat-message-knobs.js +3 -1
  107. package/dist/knob-contracts/choice-knobs.d.ts +3 -4
  108. package/dist/knob-contracts/choice-knobs.js +2 -1
  109. package/dist/knob-contracts/code-diff-knobs.d.ts +3 -4
  110. package/dist/knob-contracts/code-diff-knobs.js +1 -0
  111. package/dist/knob-contracts/code-knobs.d.ts +3 -4
  112. package/dist/knob-contracts/code-knobs.js +3 -1
  113. package/dist/knob-contracts/collapsible-knobs.d.ts +3 -4
  114. package/dist/knob-contracts/color-picker-knobs.d.ts +3 -4
  115. package/dist/knob-contracts/context-knobs.d.ts +3 -4
  116. package/dist/knob-contracts/context-knobs.js +3 -0
  117. package/dist/knob-contracts/dockable-panel-knobs.d.ts +3 -4
  118. package/dist/knob-contracts/dockable-panel-knobs.js +1 -0
  119. package/dist/knob-contracts/dropzone-knobs.d.ts +3 -4
  120. package/dist/knob-contracts/dropzone-knobs.js +1 -0
  121. package/dist/knob-contracts/dynamic-notification-knobs.d.ts +3 -4
  122. package/dist/knob-contracts/empty-knobs.d.ts +3 -4
  123. package/dist/knob-contracts/empty-knobs.js +14 -1
  124. package/dist/knob-contracts/environment-variables-knobs.d.ts +3 -4
  125. package/dist/knob-contracts/environment-variables-knobs.js +2 -1
  126. package/dist/knob-contracts/field-knobs.d.ts +3 -4
  127. package/dist/knob-contracts/gradient-editor-knobs.d.ts +3 -4
  128. package/dist/knob-contracts/gradient-editor-knobs.js +3 -1
  129. package/dist/knob-contracts/infinite-canvas-knobs.d.ts +3 -4
  130. package/dist/knob-contracts/inline-attachment-knobs.d.ts +3 -4
  131. package/dist/knob-contracts/inline-attachment-knobs.js +6 -1
  132. package/dist/knob-contracts/inline-citation-knobs.d.ts +3 -4
  133. package/dist/knob-contracts/inline-citation-knobs.js +4 -1
  134. package/dist/knob-contracts/item-knobs.d.ts +3 -4
  135. package/dist/knob-contracts/kbd-knobs.d.ts +3 -4
  136. package/dist/knob-contracts/markdown-block-knobs.d.ts +3 -4
  137. package/dist/knob-contracts/markdown-block-knobs.js +2 -0
  138. package/dist/knob-contracts/markdown-knobs.d.ts +3 -4
  139. package/dist/knob-contracts/markdown-knobs.js +1 -0
  140. package/dist/knob-contracts/morphing-panel-knobs.d.ts +3 -4
  141. package/dist/knob-contracts/page-layout-knobs.d.ts +4 -0
  142. package/dist/knob-contracts/page-layout-knobs.js +15 -0
  143. package/dist/knob-contracts/pagination-knobs.d.ts +3 -4
  144. package/dist/knob-contracts/phone-input-knobs.d.ts +3 -4
  145. package/dist/knob-contracts/phone-input-knobs.js +1 -0
  146. package/dist/knob-contracts/popup-knobs.d.ts +3 -4
  147. package/dist/knob-contracts/progressive-blur-knobs.d.ts +3 -4
  148. package/dist/knob-contracts/progressive-blur-knobs.js +1 -0
  149. package/dist/knob-contracts/range-knobs.d.ts +3 -4
  150. package/dist/knob-contracts/resizable-knobs.d.ts +3 -4
  151. package/dist/knob-contracts/resizable-knobs.js +1 -0
  152. package/dist/knob-contracts/rich-tooltip-knobs.d.ts +3 -4
  153. package/dist/knob-contracts/scroll-area-knobs.d.ts +3 -4
  154. package/dist/knob-contracts/separator-knobs.d.ts +3 -4
  155. package/dist/knob-contracts/sidebar-knobs.d.ts +3 -4
  156. package/dist/knob-contracts/sidebar-knobs.js +1 -0
  157. package/dist/knob-contracts/skeleton-knobs.d.ts +3 -4
  158. package/dist/knob-contracts/skeleton-knobs.js +9 -1
  159. package/dist/knob-contracts/source-badge-knobs.d.ts +3 -4
  160. package/dist/knob-contracts/spinner-knobs.d.ts +3 -4
  161. package/dist/knob-contracts/stepper-knobs.d.ts +3 -4
  162. package/dist/knob-contracts/stepper-knobs.js +1 -0
  163. package/dist/knob-contracts/switch-knobs.d.ts +3 -4
  164. package/dist/knob-contracts/switch-knobs.js +7 -1
  165. package/dist/knob-contracts/table-knobs.d.ts +3 -4
  166. package/dist/knob-contracts/table-of-contents-knobs.d.ts +3 -4
  167. package/dist/knob-contracts/table-of-contents-knobs.js +25 -0
  168. package/dist/knob-contracts/tabs-knobs.d.ts +3 -4
  169. package/dist/knob-contracts/tabs-knobs.js +2 -1
  170. package/dist/knob-contracts/task-list-knobs.d.ts +3 -4
  171. package/dist/knob-contracts/task-list-knobs.js +5 -0
  172. package/dist/knob-contracts/thread-rail-knobs.d.ts +3 -4
  173. package/dist/knob-contracts/timeline-knobs.d.ts +3 -4
  174. package/dist/knob-contracts/toolbar-knobs.d.ts +3 -4
  175. package/dist/knob-contracts/toolbar-knobs.js +1 -0
  176. package/dist/knob-contracts/track-highlight-knobs.d.ts +3 -4
  177. package/dist/knob-contracts/transcript-divider-knobs.d.ts +3 -4
  178. package/dist/knob-contracts/tree-knobs.d.ts +3 -4
  179. package/dist/knob-contracts/user-ask-knobs.d.ts +3 -4
  180. package/dist/knob-contracts/user-ask-knobs.js +5 -0
  181. package/dist/lib/cn.d.ts +2 -3
  182. package/dist/lib/code-tokens.d.ts +12 -13
  183. package/dist/lib/color.d.ts +26 -27
  184. package/dist/lib/contrast.d.ts +12 -13
  185. package/dist/lib/diff.d.ts +14 -15
  186. package/dist/lib/dropzone-validation.d.ts +25 -26
  187. package/dist/lib/env-file.d.ts +12 -13
  188. package/dist/lib/format-audio-recorder-duration.d.ts +2 -3
  189. package/dist/lib/liquid-glass-optics.d.ts +2 -3
  190. package/dist/lib/phone-input-format.d.ts +3 -4
  191. package/dist/lib/phone-number.d.ts +8 -9
  192. package/dist/lib/trigger-detect.d.ts +4 -5
  193. package/dist/markdown-block.d.ts +11 -12
  194. package/dist/markdown-block.js +1 -1
  195. package/dist/scripts/contrast-eval.d.ts +16 -17
  196. package/dist/scripts/contrast-eval.js +13 -7
  197. package/dist/skin-provider.d.ts +14 -0
  198. package/dist/skin-provider.js +21 -0
  199. package/dist/skin.d.ts +14 -33
  200. package/dist/skin.js +3 -46
  201. package/dist/source-badge.d.ts +7 -8
  202. package/dist/styles/index.css +3 -5
  203. package/dist/styles/recipes/accordion.css +8 -2
  204. package/dist/styles/recipes/action-bar.css +40 -5
  205. package/dist/styles/recipes/activity.css +36 -3
  206. package/dist/styles/recipes/alert.css +97 -16
  207. package/dist/styles/recipes/audio-visualizer.css +8 -1
  208. package/dist/styles/recipes/avatar.css +17 -1
  209. package/dist/styles/recipes/badge.css +0 -1
  210. package/dist/styles/recipes/button-group.css +8 -0
  211. package/dist/styles/recipes/button.css +49 -8
  212. package/dist/styles/recipes/calendar.css +21 -6
  213. package/dist/styles/recipes/card.css +2 -0
  214. package/dist/styles/recipes/chat-composer-attachment.css +83 -54
  215. package/dist/styles/recipes/chat-composer.css +41 -22
  216. package/dist/styles/recipes/chat-layout.css +37 -54
  217. package/dist/styles/recipes/chat-message.css +78 -5
  218. package/dist/styles/recipes/choice.css +21 -2
  219. package/dist/styles/recipes/code-diff.css +9 -1
  220. package/dist/styles/recipes/code.css +64 -17
  221. package/dist/styles/recipes/collapsible.css +0 -3
  222. package/dist/styles/recipes/color-picker-details.css +1 -2
  223. package/dist/styles/recipes/color-picker-values.css +0 -4
  224. package/dist/styles/recipes/context.css +30 -18
  225. package/dist/styles/recipes/dockable-panel.css +8 -1
  226. package/dist/styles/recipes/dropzone.css +9 -2
  227. package/dist/styles/recipes/dynamic-notification-input.css +6 -0
  228. package/dist/styles/recipes/dynamic-notification.css +1 -0
  229. package/dist/styles/recipes/empty.css +118 -17
  230. package/dist/styles/recipes/environment-variables.css +9 -1
  231. package/dist/styles/recipes/field-parts.css +3 -6
  232. package/dist/styles/recipes/field.css +15 -5
  233. package/dist/styles/recipes/gradient-editor.css +33 -5
  234. package/dist/styles/recipes/inline-attachment.css +68 -20
  235. package/dist/styles/recipes/inline-citation.css +52 -10
  236. package/dist/styles/recipes/item.css +4 -2
  237. package/dist/styles/recipes/kbd.css +8 -0
  238. package/dist/styles/recipes/markdown-block.css +17 -2
  239. package/dist/styles/recipes/markdown.css +19 -0
  240. package/dist/styles/recipes/morphing-panel.css +1 -1
  241. package/dist/styles/recipes/page-layout.css +203 -0
  242. package/dist/styles/recipes/pagination.css +16 -4
  243. package/dist/styles/recipes/phone-input.css +8 -4
  244. package/dist/styles/recipes/popup-drawer.css +3 -1
  245. package/dist/styles/recipes/popup-lists.css +11 -0
  246. package/dist/styles/recipes/popup-toast.css +3 -29
  247. package/dist/styles/recipes/popup.css +10 -14
  248. package/dist/styles/recipes/progressive-blur.css +28 -7
  249. package/dist/styles/recipes/range.css +74 -3
  250. package/dist/styles/recipes/resizable.css +8 -10
  251. package/dist/styles/recipes/rich-tooltip.css +1 -4
  252. package/dist/styles/recipes/scroll-area.css +8 -2
  253. package/dist/styles/recipes/sidebar-menu.css +0 -6
  254. package/dist/styles/recipes/sidebar.css +56 -17
  255. package/dist/styles/recipes/skeleton.css +85 -3
  256. package/dist/styles/recipes/source-badge.css +20 -3
  257. package/dist/styles/recipes/stepper.css +8 -1
  258. package/dist/styles/recipes/switch.css +89 -17
  259. package/dist/styles/recipes/table-of-contents.css +211 -45
  260. package/dist/styles/recipes/table.css +0 -1
  261. package/dist/styles/recipes/tabs.css +35 -2
  262. package/dist/styles/recipes/task-list.css +68 -9
  263. package/dist/styles/recipes/thread-rail.css +19 -17
  264. package/dist/styles/recipes/toolbar.css +39 -4
  265. package/dist/styles/recipes/track-highlight.css +63 -5
  266. package/dist/styles/recipes/transcript-divider.css +1 -0
  267. package/dist/styles/recipes/tree.css +2 -0
  268. package/dist/styles/recipes/user-ask.css +65 -18
  269. package/dist/styles/theme.css +164 -138
  270. package/dist/surface-variants.d.ts +4 -5
  271. package/dist/task-list.d.ts +16 -17
  272. package/dist/thread-rail.d.ts +21 -22
  273. package/dist/thread-rail.js +1 -1
  274. package/dist/transcript-divider.d.ts +6 -7
  275. package/dist/ui/accordion.d.ts +10 -11
  276. package/dist/ui/alert-dialog.d.ts +11 -12
  277. package/dist/ui/alert-dialog.js +9 -7
  278. package/dist/ui/alert.d.ts +9 -10
  279. package/dist/ui/alert.js +3 -3
  280. package/dist/ui/aspect-ratio.d.ts +3 -4
  281. package/dist/ui/autocomplete.d.ts +19 -20
  282. package/dist/ui/autocomplete.js +6 -4
  283. package/dist/ui/avatar.d.ts +9 -10
  284. package/dist/ui/badge.d.ts +9 -10
  285. package/dist/ui/button-group.d.ts +7 -8
  286. package/dist/ui/button-group.js +3 -2
  287. package/dist/ui/button.d.ts +17 -18
  288. package/dist/ui/button.js +20 -5
  289. package/dist/ui/calendar.d.ts +3 -4
  290. package/dist/ui/card.d.ts +16 -17
  291. package/dist/ui/checkbox-group.d.ts +4 -5
  292. package/dist/ui/checkbox-group.js +3 -2
  293. package/dist/ui/checkbox.d.ts +3 -4
  294. package/dist/ui/code-diff.d.ts +8 -9
  295. package/dist/ui/code.d.ts +32 -23
  296. package/dist/ui/code.js +41 -20
  297. package/dist/ui/collapsible.d.ts +7 -8
  298. package/dist/ui/color-picker.d.ts +40 -41
  299. package/dist/ui/color-picker.js +8 -6
  300. package/dist/ui/combobox-disabled-selection.d.ts +3 -4
  301. package/dist/ui/combobox.d.ts +19 -20
  302. package/dist/ui/combobox.js +6 -4
  303. package/dist/ui/command.d.ts +22 -19
  304. package/dist/ui/command.js +63 -13
  305. package/dist/ui/context-menu.d.ts +30 -31
  306. package/dist/ui/context-menu.js +10 -7
  307. package/dist/ui/dialog.d.ts +13 -13
  308. package/dist/ui/dialog.js +11 -9
  309. package/dist/ui/dockable-panel-geometry.d.ts +7 -8
  310. package/dist/ui/dockable-panel.d.ts +21 -22
  311. package/dist/ui/drawer.d.ts +17 -18
  312. package/dist/ui/drawer.js +9 -8
  313. package/dist/ui/dropdown-menu.d.ts +32 -33
  314. package/dist/ui/dropdown-menu.js +6 -4
  315. package/dist/ui/dropzone.d.ts +24 -24
  316. package/dist/ui/dropzone.js +4 -1
  317. package/dist/ui/empty.d.ts +14 -14
  318. package/dist/ui/empty.js +3 -3
  319. package/dist/ui/field.d.ts +26 -27
  320. package/dist/ui/form.d.ts +4 -5
  321. package/dist/ui/gradient-editor.d.ts +16 -17
  322. package/dist/ui/gradient-editor.js +2 -2
  323. package/dist/ui/hover-card.d.ts +6 -7
  324. package/dist/ui/hover-card.js +6 -4
  325. package/dist/ui/infinite-canvas.d.ts +11 -12
  326. package/dist/ui/infinite-canvas.js +1 -0
  327. package/dist/ui/input-group.d.ts +6 -7
  328. package/dist/ui/input-otp.d.ts +7 -8
  329. package/dist/ui/input.d.ts +3 -4
  330. package/dist/ui/item.d.ts +20 -21
  331. package/dist/ui/kbd.d.ts +7 -5
  332. package/dist/ui/kbd.js +4 -2
  333. package/dist/ui/markdown-elements.d.ts +20 -21
  334. package/dist/ui/markdown.d.ts +5 -6
  335. package/dist/ui/menubar.d.ts +25 -26
  336. package/dist/ui/menubar.js +10 -7
  337. package/dist/ui/meter.d.ts +11 -12
  338. package/dist/ui/morphing-panel.d.ts +8 -9
  339. package/dist/ui/native-select.d.ts +3 -4
  340. package/dist/ui/native-select.js +1 -1
  341. package/dist/ui/navigation-menu.d.ts +17 -18
  342. package/dist/ui/navigation-menu.js +6 -4
  343. package/dist/ui/number-field.d.ts +15 -16
  344. package/dist/ui/number-field.js +1 -1
  345. package/dist/ui/page-layout.d.ts +44 -0
  346. package/dist/ui/page-layout.js +108 -0
  347. package/dist/ui/pagination.d.ts +10 -11
  348. package/dist/ui/phone-input.d.ts +5 -6
  349. package/dist/ui/phone-input.js +39 -36
  350. package/dist/ui/popover.d.ts +11 -12
  351. package/dist/ui/popover.js +6 -4
  352. package/dist/ui/progress.d.ts +11 -12
  353. package/dist/ui/progressive-blur.d.ts +4 -5
  354. package/dist/ui/radio-group.d.ts +5 -6
  355. package/dist/ui/resizable.d.ts +12 -13
  356. package/dist/ui/resizable.js +1 -1
  357. package/dist/ui/responsive-dialog.d.ts +11 -12
  358. package/dist/ui/rich-tooltip-tour.d.ts +5 -6
  359. package/dist/ui/rich-tooltip.d.ts +21 -23
  360. package/dist/ui/rich-tooltip.js +6 -6
  361. package/dist/ui/scroll-area.d.ts +7 -8
  362. package/dist/ui/scroll-area.js +9 -6
  363. package/dist/ui/select.d.ts +21 -14
  364. package/dist/ui/select.js +8 -5
  365. package/dist/ui/separator.d.ts +2 -3
  366. package/dist/ui/sheet.d.ts +8 -9
  367. package/dist/ui/sheet.js +9 -7
  368. package/dist/ui/sidebar-menu.d.ts +18 -19
  369. package/dist/ui/sidebar-menu.js +4 -3
  370. package/dist/ui/sidebar-provider.d.ts +32 -7
  371. package/dist/ui/sidebar-provider.js +82 -22
  372. package/dist/ui/sidebar-resize-rail.d.ts +8 -0
  373. package/dist/ui/sidebar-resize-rail.js +192 -0
  374. package/dist/ui/sidebar.d.ts +19 -13
  375. package/dist/ui/sidebar.js +120 -55
  376. package/dist/ui/skeleton.d.ts +7 -4
  377. package/dist/ui/skeleton.js +9 -2
  378. package/dist/ui/slider.d.ts +6 -5
  379. package/dist/ui/slider.js +16 -13
  380. package/dist/ui/spinner.d.ts +3 -4
  381. package/dist/ui/stepper.d.ts +22 -23
  382. package/dist/ui/switch.d.ts +3 -4
  383. package/dist/ui/switch.js +12 -1
  384. package/dist/ui/table-of-contents.d.ts +7 -8
  385. package/dist/ui/table-of-contents.js +4 -2
  386. package/dist/ui/table.d.ts +17 -18
  387. package/dist/ui/tabs.d.ts +14 -11
  388. package/dist/ui/textarea.d.ts +3 -4
  389. package/dist/ui/timeline.d.ts +18 -19
  390. package/dist/ui/toast.d.ts +9 -9
  391. package/dist/ui/toast.js +23 -16
  392. package/dist/ui/toggle.d.ts +5 -6
  393. package/dist/ui/toggle.js +3 -2
  394. package/dist/ui/toolbar.d.ts +15 -16
  395. package/dist/ui/toolbar.js +15 -4
  396. package/dist/ui/tooltip.d.ts +6 -13
  397. package/dist/ui/tooltip.js +8 -9
  398. package/dist/ui/tree.d.ts +18 -19
  399. package/dist/ui/tree.js +3 -2
  400. package/dist/ui/trigger-menu.d.ts +15 -16
  401. package/dist/ui/trigger-menu.js +6 -4
  402. package/dist/ui/use-switch-drag.d.ts +7 -0
  403. package/dist/ui/use-switch-drag.js +104 -0
  404. package/dist/user-ask.d.ts +28 -27
  405. package/dist/user-ask.js +38 -13
  406. package/package.json +17 -16
  407. package/dist/code-block-editor.d.ts +0 -59
  408. package/dist/code-block-editor.js +0 -250
  409. package/dist/knob-contracts/code-block-editor-knobs.d.ts +0 -5
  410. package/dist/knob-contracts/code-block-editor-knobs.js +0 -11
  411. package/dist/lib/code-block-shiki.d.ts +0 -9
  412. package/dist/lib/code-block-shiki.js +0 -6
  413. package/dist/skin.config.d.ts +0 -5
  414. package/dist/skin.config.js +0 -12
  415. package/dist/styles/recipes/code-block-editor.css +0 -136
  416. package/dist/styles/skin-theme.css +0 -137
  417. package/dist/styles/skin.css +0 -143
@@ -2,13 +2,13 @@ import { ControlSize } from "../control-variants.js";
2
2
  import { GradientEditorKnobStyle } from "../knob-contracts/gradient-editor-knobs.js";
3
3
  import { CSSProperties, ComponentProps } from "react";
4
4
  //#region src/ui/gradient-editor.d.ts
5
- type GradientType = "linear" | "radial" | "conic";
6
- type GradientStop = {
5
+ export type GradientType = "linear" | "radial" | "conic";
6
+ export type GradientStop = {
7
7
  id: string;
8
8
  position: number;
9
9
  color: string;
10
10
  };
11
- type GradientEditorProps = Omit<ComponentProps<"div">, "onChange" | "defaultValue"> & {
11
+ export type GradientEditorProps = Omit<ComponentProps<"div">, "onChange" | "defaultValue"> & {
12
12
  value?: string;
13
13
  defaultStops?: GradientStop[];
14
14
  defaultType?: GradientType;
@@ -17,31 +17,30 @@ type GradientEditorProps = Omit<ComponentProps<"div">, "onChange" | "defaultValu
17
17
  } & {
18
18
  style?: CSSProperties & GradientEditorKnobStyle;
19
19
  };
20
- type GradientEditorPreviewProps = Omit<ComponentProps<"div">, "style"> & {
20
+ export type GradientEditorPreviewProps = Omit<ComponentProps<"div">, "style"> & {
21
21
  style?: CSSProperties & GradientEditorKnobStyle;
22
22
  };
23
- type GradientEditorTrackProps = Omit<ComponentProps<"fieldset">, "style"> & {
23
+ export type GradientEditorTrackProps = Omit<ComponentProps<"fieldset">, "style"> & {
24
24
  style?: CSSProperties & GradientEditorKnobStyle;
25
25
  };
26
- type GradientEditorStopProps = Omit<ComponentProps<"button">, "style"> & {
26
+ export type GradientEditorStopProps = Omit<ComponentProps<"button">, "style"> & {
27
27
  stop: GradientStop;
28
28
  style?: CSSProperties & GradientEditorKnobStyle;
29
29
  };
30
- type GradientEditorStopAddProps = Omit<ComponentProps<"button">, "onClick" | "style"> & {
30
+ export type GradientEditorStopAddProps = Omit<ComponentProps<"button">, "onClick" | "style"> & {
31
31
  style?: CSSProperties & GradientEditorKnobStyle;
32
32
  };
33
- type GradientEditorTypeSelectProps = {
33
+ export type GradientEditorTypeSelectProps = {
34
34
  size?: ControlSize;
35
35
  className?: string;
36
36
  "aria-label"?: string;
37
37
  "aria-labelledby"?: string;
38
38
  };
39
- declare function GradientEditor({ defaultStops, defaultType, defaultAngle, onValueChange, className, children, value: _value, ...props }: GradientEditorProps): import("react").JSX.Element;
40
- declare function GradientEditorPreview({ className, style, "aria-label": ariaLabel, ...props }: GradientEditorPreviewProps): import("react").JSX.Element;
41
- declare function GradientEditorTrack({ className, children, style, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...props }: GradientEditorTrackProps): import("react").JSX.Element;
42
- declare function GradientEditorStop({ stop, className, style, onPointerDown, onKeyDown, onFocus, onDoubleClick, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...props }: GradientEditorStopProps): import("react").JSX.Element;
43
- declare function GradientEditorStopAdd({ className, children, ...props }: GradientEditorStopAddProps): import("react").JSX.Element;
44
- declare function GradientEditorStopColor(): import("react").JSX.Element | null;
45
- declare function GradientEditorTypeSelect({ size, className, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy }: GradientEditorTypeSelectProps): import("react").JSX.Element;
46
- //#endregion
47
- export { GradientEditor, GradientEditorPreview, GradientEditorPreviewProps, GradientEditorProps, GradientEditorStop, GradientEditorStopAdd, GradientEditorStopAddProps, GradientEditorStopColor, GradientEditorStopProps, GradientEditorTrack, GradientEditorTrackProps, GradientEditorTypeSelect, GradientEditorTypeSelectProps, GradientStop, GradientType };
39
+ export declare function GradientEditor({ defaultStops, defaultType, defaultAngle, onValueChange, className, children, value: _value, ...props }: GradientEditorProps): import("react").JSX.Element;
40
+ export declare function GradientEditorPreview({ className, style, "aria-label": ariaLabel, ...props }: GradientEditorPreviewProps): import("react").JSX.Element;
41
+ export declare function GradientEditorTrack({ className, children, style, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...props }: GradientEditorTrackProps): import("react").JSX.Element;
42
+ export declare function GradientEditorStop({ stop, className, style, onPointerDown, onKeyDown, onFocus, onDoubleClick, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...props }: GradientEditorStopProps): import("react").JSX.Element;
43
+ export declare function GradientEditorStopAdd({ className, children, ...props }: GradientEditorStopAddProps): import("react").JSX.Element;
44
+ export declare function GradientEditorStopColor(): import("react").JSX.Element | null;
45
+ export declare function GradientEditorTypeSelect({ size, className, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy }: GradientEditorTypeSelectProps): import("react").JSX.Element;
46
+ //#endregion
@@ -116,7 +116,7 @@ function GradientEditorTrack({ className, children, style, "aria-label": ariaLab
116
116
  "data-slot": "track",
117
117
  "aria-label": ariaLabelledBy === void 0 ? ariaLabel ?? "Gradient stops" : ariaLabel,
118
118
  "aria-labelledby": ariaLabelledBy,
119
- className: cn("relative m-0 min-w-0 w-full cursor-copy p-0", className),
119
+ className: cn("relative m-0 min-w-0 w-full cursor-copy touch-pan-y p-0", className),
120
120
  style: {
121
121
  ...style,
122
122
  backgroundImage: stripe
@@ -214,7 +214,7 @@ function GradientEditorStop({ stop, className, style, onPointerDown, onKeyDown,
214
214
  onFocus: handleFocus,
215
215
  onKeyDown: handleKeyDown,
216
216
  onDoubleClick: handleDoubleClick,
217
- className: cn("-translate-x-1/2 absolute top-1/2 -translate-y-1/2 cursor-grab overflow-hidden active:cursor-grabbing", className),
217
+ className: cn("-translate-x-1/2 absolute top-1/2 -translate-y-1/2 cursor-grab touch-pan-y overflow-hidden active:cursor-grabbing", className),
218
218
  style: {
219
219
  ...style,
220
220
  left: `${stop.position * 100}%`,
@@ -3,23 +3,22 @@ import { PopupKnobStyle } from "../knob-contracts/popup-knobs.js";
3
3
  import { CSSProperties, ComponentProps, ReactNode } from "react";
4
4
  import { PreviewCard } from "@base-ui/react/preview-card";
5
5
  //#region src/ui/hover-card.d.ts
6
- type HoverCardProps = {
6
+ export type HoverCardProps = {
7
7
  children?: ReactNode;
8
8
  open?: boolean;
9
9
  defaultOpen?: boolean;
10
10
  onOpenChange?: (open: boolean, eventDetails: OpenChangeEventDetails) => void;
11
11
  };
12
- type HoverCardContentProps = Omit<ComponentProps<"div"> & {
12
+ export type HoverCardContentProps = Omit<ComponentProps<"div"> & {
13
13
  side?: "top" | "bottom" | "left" | "right";
14
14
  align?: "start" | "center" | "end";
15
15
  sideOffset?: number;
16
16
  }, "style"> & {
17
17
  style?: CSSProperties & PopupKnobStyle;
18
18
  };
19
- declare function HoverCard(props: HoverCardProps): import("react").JSX.Element;
20
- declare function HoverCardTrigger({ className, ...props }: ComponentProps<typeof PreviewCard.Trigger> & {
19
+ export declare function HoverCard(props: HoverCardProps): import("react").JSX.Element;
20
+ export declare function HoverCardTrigger({ className, ...props }: ComponentProps<typeof PreviewCard.Trigger> & {
21
21
  style?: CSSProperties & PopupKnobStyle;
22
22
  }): import("react").JSX.Element;
23
- declare function HoverCardContent({ className, children, side, align, sideOffset, ...props }: HoverCardContentProps): import("react").JSX.Element;
24
- //#endregion
25
- export { HoverCard, HoverCardContent, HoverCardContentProps, HoverCardProps, HoverCardTrigger };
23
+ export declare function HoverCardContent({ className, children, side, align, sideOffset, ...props }: HoverCardContentProps): import("react").JSX.Element;
24
+ //#endregion
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
- import { skinEffects, skinId } from "../skin.js";
3
+ import { controlEffectsAttribute } from "../skin.js";
4
+ import { useSkin } from "../skin-provider.js";
4
5
  import { jsx } from "react/jsx-runtime";
5
6
  import { PreviewCard } from "@base-ui/react/preview-card";
6
7
  //#region src/ui/hover-card.tsx
@@ -18,17 +19,18 @@ function HoverCardTrigger({ className, ...props }) {
18
19
  });
19
20
  }
20
21
  function HoverCardContent({ className, children, side = "bottom", align = "center", sideOffset = 8, ...props }) {
22
+ const skin = useSkin();
21
23
  return /* @__PURE__ */ jsx(PreviewCard.Portal, { children: /* @__PURE__ */ jsx(PreviewCard.Positioner, {
22
24
  "data-control-ui": "hover-card",
23
25
  "data-popup-kind": "hover-card",
24
26
  "data-control-family": "popup",
25
27
  "data-slot": "positioner",
26
- "data-skin": skinId(),
27
- "data-effects": skinEffects(),
28
+ "data-skin": skin.id,
29
+ "data-effects": controlEffectsAttribute(skin.effects),
28
30
  side,
29
31
  align,
30
32
  sideOffset,
31
- className: "z-[80]",
33
+ className: "z-(--z-popup)",
32
34
  children: /* @__PURE__ */ jsx(PreviewCard.Popup, {
33
35
  "data-control-ui": "hover-card",
34
36
  "data-popup-kind": "hover-card",
@@ -1,16 +1,16 @@
1
1
  import { InfiniteCanvasKnobStyle } from "../knob-contracts/infinite-canvas-knobs.js";
2
2
  import { CSSProperties, ComponentProps } from "react";
3
3
  //#region src/ui/infinite-canvas.d.ts
4
- type InfiniteCanvasTransform = {
4
+ export type InfiniteCanvasTransform = {
5
5
  x: number;
6
6
  y: number;
7
7
  scale: number;
8
8
  };
9
- type InfiniteCanvasMoveReason = "pointer" | "wheel" | "keyboard" | "control";
10
- type InfiniteCanvasMoveDetails = {
9
+ export type InfiniteCanvasMoveReason = "pointer" | "wheel" | "keyboard" | "control";
10
+ export type InfiniteCanvasMoveDetails = {
11
11
  reason: InfiniteCanvasMoveReason;
12
12
  };
13
- type InfiniteCanvasProps = Omit<ComponentProps<"section">, "onChange" | "onWheel" | "ref" | "style"> & {
13
+ export type InfiniteCanvasProps = Omit<ComponentProps<"section">, "onChange" | "onWheel" | "ref" | "style"> & {
14
14
  transform?: InfiniteCanvasTransform;
15
15
  defaultTransform?: InfiniteCanvasTransform;
16
16
  onTransformChange?: (transform: InfiniteCanvasTransform, details: InfiniteCanvasMoveDetails) => void;
@@ -19,10 +19,10 @@ type InfiniteCanvasProps = Omit<ComponentProps<"section">, "onChange" | "onWheel
19
19
  onWheel?: (event: WheelEvent) => void;
20
20
  style?: CSSProperties & InfiniteCanvasKnobStyle;
21
21
  };
22
- type InfiniteCanvasContentProps = ComponentProps<"div"> & {
22
+ export type InfiniteCanvasContentProps = ComponentProps<"div"> & {
23
23
  style?: CSSProperties & InfiniteCanvasKnobStyle;
24
24
  };
25
- type InfiniteCanvasControlsProps = Omit<ComponentProps<"div">, "children" | "style"> & {
25
+ export type InfiniteCanvasControlsProps = Omit<ComponentProps<"div">, "children" | "style"> & {
26
26
  style?: CSSProperties & InfiniteCanvasKnobStyle;
27
27
  };
28
28
  type InfiniteCanvasContextValue = {
@@ -32,9 +32,8 @@ type InfiniteCanvasContextValue = {
32
32
  reset: (reason: InfiniteCanvasMoveReason) => void;
33
33
  zoomBy: (factor: number, reason: InfiniteCanvasMoveReason) => void;
34
34
  };
35
- declare function useInfiniteCanvas(): InfiniteCanvasContextValue;
36
- declare function InfiniteCanvas({ transform: controlledTransform, defaultTransform, onTransformChange, minScale: minScaleProp, maxScale: maxScaleProp, className, children, style, onPointerDown, onPointerMove, onPointerUp, onPointerCancel, onWheel, onKeyDown, "aria-label": ariaLabel, ...props }: InfiniteCanvasProps): import("react").JSX.Element;
37
- declare function InfiniteCanvasContent({ className, style, ...props }: InfiniteCanvasContentProps): import("react").JSX.Element;
38
- declare function InfiniteCanvasControls({ className, ...props }: InfiniteCanvasControlsProps): import("react").JSX.Element;
39
- //#endregion
40
- export { InfiniteCanvas, InfiniteCanvasContent, InfiniteCanvasContentProps, InfiniteCanvasControls, InfiniteCanvasControlsProps, InfiniteCanvasMoveDetails, InfiniteCanvasMoveReason, InfiniteCanvasProps, InfiniteCanvasTransform, useInfiniteCanvas };
35
+ export declare function useInfiniteCanvas(): InfiniteCanvasContextValue;
36
+ export declare function InfiniteCanvas({ transform: controlledTransform, defaultTransform, onTransformChange, minScale: minScaleProp, maxScale: maxScaleProp, className, children, style, onPointerDown, onPointerMove, onPointerUp, onPointerCancel, onWheel, onKeyDown, "aria-label": ariaLabel, ...props }: InfiniteCanvasProps): import("react").JSX.Element;
37
+ export declare function InfiniteCanvasContent({ className, style, ...props }: InfiniteCanvasContentProps): import("react").JSX.Element;
38
+ export declare function InfiniteCanvasControls({ className, ...props }: InfiniteCanvasControlsProps): import("react").JSX.Element;
39
+ //#endregion
@@ -257,6 +257,7 @@ function InfiniteCanvasControls({ className, ...props }) {
257
257
  type: "button",
258
258
  size: "sm",
259
259
  variant: "ghost",
260
+ className: "tabular-nums",
260
261
  "aria-label": `Reset canvas zoom, currently ${percentage}%`,
261
262
  onClick: () => canvas.reset("control"),
262
263
  children: [percentage, "%"]
@@ -3,19 +3,18 @@ import { ControlSize } from "../control-variants.js";
3
3
  import { FieldKnobStyle } from "../knob-contracts/field-knobs.js";
4
4
  import { CSSProperties, ComponentProps } from "react";
5
5
  //#region src/ui/input-group.d.ts
6
- type InputGroupProps = Omit<ComponentProps<"div">, "style"> & {
6
+ export type InputGroupProps = Omit<ComponentProps<"div">, "style"> & {
7
7
  style?: CSSProperties & FieldKnobStyle;
8
8
  } & {
9
9
  render?: RenderProp<ComponentProps<"div">>;
10
10
  size?: ControlSize;
11
11
  };
12
- type InputGroupAddonProps = ComponentProps<"span"> & {
12
+ export type InputGroupAddonProps = ComponentProps<"span"> & {
13
13
  style?: CSSProperties & FieldKnobStyle;
14
14
  };
15
- declare function InputGroup({ size, className, render, children, ...props }: InputGroupProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
16
- declare function InputGroupAddon({ className, ...props }: InputGroupAddonProps): import("react").JSX.Element;
17
- declare function InputGroupInput({ className, ...props }: ComponentProps<"input"> & {
15
+ export declare function InputGroup({ size, className, render, children, ...props }: InputGroupProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
16
+ export declare function InputGroupAddon({ className, ...props }: InputGroupAddonProps): import("react").JSX.Element;
17
+ export declare function InputGroupInput({ className, ...props }: ComponentProps<"input"> & {
18
18
  style?: CSSProperties & FieldKnobStyle;
19
19
  }): import("react").JSX.Element;
20
- //#endregion
21
- export { InputGroup, InputGroupAddon, InputGroupAddonProps, InputGroupInput, InputGroupProps };
20
+ //#endregion
@@ -1,7 +1,7 @@
1
1
  import { FieldKnobStyle } from "../knob-contracts/field-knobs.js";
2
2
  import { CSSProperties, ComponentProps, ReactNode } from "react";
3
3
  //#region src/ui/input-otp.d.ts
4
- type InputOTPProps = {
4
+ export type InputOTPProps = {
5
5
  length?: number;
6
6
  separator?: boolean;
7
7
  value?: string;
@@ -20,7 +20,7 @@ type InputOTPProps = {
20
20
  } & {
21
21
  style?: CSSProperties & FieldKnobStyle;
22
22
  };
23
- type InputOTPSlotProps = {
23
+ export type InputOTPSlotProps = {
24
24
  index: number;
25
25
  length?: number;
26
26
  disabled?: boolean;
@@ -28,11 +28,10 @@ type InputOTPSlotProps = {
28
28
  className?: string;
29
29
  style?: CSSProperties & FieldKnobStyle;
30
30
  };
31
- type InputOTPSeparatorProps = ComponentProps<"div"> & {
31
+ export type InputOTPSeparatorProps = ComponentProps<"div"> & {
32
32
  style?: CSSProperties & FieldKnobStyle;
33
33
  };
34
- declare function InputOTPSlot({ index, length, className, ...props }: InputOTPSlotProps): import("react").JSX.Element;
35
- declare function InputOTPSeparator({ className, ...props }: InputOTPSeparatorProps): import("react").JSX.Element;
36
- declare function InputOTP({ length, separator, className, children, ...props }: InputOTPProps): import("react").JSX.Element;
37
- //#endregion
38
- export { InputOTP, InputOTPProps, InputOTPSeparator, InputOTPSeparatorProps, InputOTPSlot, InputOTPSlotProps };
34
+ export declare function InputOTPSlot({ index, length, className, ...props }: InputOTPSlotProps): import("react").JSX.Element;
35
+ export declare function InputOTPSeparator({ className, ...props }: InputOTPSeparatorProps): import("react").JSX.Element;
36
+ export declare function InputOTP({ length, separator, className, children, ...props }: InputOTPProps): import("react").JSX.Element;
37
+ //#endregion
@@ -2,11 +2,10 @@ import { ControlSize } from "../control-variants.js";
2
2
  import { FieldKnobStyle } from "../knob-contracts/field-knobs.js";
3
3
  import { CSSProperties, ComponentProps } from "react";
4
4
  //#region src/ui/input.d.ts
5
- type InputProps = Omit<Omit<ComponentProps<"input">, "size">, "style"> & {
5
+ export type InputProps = Omit<Omit<ComponentProps<"input">, "size">, "style"> & {
6
6
  style?: CSSProperties & FieldKnobStyle;
7
7
  } & {
8
8
  size?: ControlSize;
9
9
  };
10
- declare function Input({ size, className, ...props }: InputProps): import("react").JSX.Element;
11
- //#endregion
12
- export { Input, InputProps };
10
+ export declare function Input({ size, className, ...props }: InputProps): import("react").JSX.Element;
11
+ //#endregion
package/dist/ui/item.d.ts CHANGED
@@ -2,45 +2,44 @@ import { RenderProp } from "../control-props.js";
2
2
  import { ItemKnobStyle } from "../knob-contracts/item-knobs.js";
3
3
  import { CSSProperties, ComponentProps } from "react";
4
4
  //#region src/ui/item.d.ts
5
- declare const itemVariants: readonly ["default", "outline", "muted"];
6
- type ItemVariant = (typeof itemVariants)[number];
7
- type ItemProps = Omit<ComponentProps<"div"> & {
5
+ export declare const itemVariants: readonly ["default", "outline", "muted"];
6
+ export type ItemVariant = (typeof itemVariants)[number];
7
+ export type ItemProps = Omit<ComponentProps<"div"> & {
8
8
  variant?: ItemVariant;
9
9
  render?: RenderProp<ComponentProps<"div">>;
10
10
  }, "style"> & {
11
11
  style?: CSSProperties & ItemKnobStyle;
12
12
  };
13
- type ItemDescriptionProps = Omit<ComponentProps<"p">, "style"> & {
13
+ export type ItemDescriptionProps = Omit<ComponentProps<"p">, "style"> & {
14
14
  style?: CSSProperties & ItemKnobStyle;
15
15
  };
16
- type ItemFooterProps = Omit<ComponentProps<"div">, "style"> & {
16
+ export type ItemFooterProps = Omit<ComponentProps<"div">, "style"> & {
17
17
  style?: CSSProperties & ItemKnobStyle;
18
18
  };
19
- type ItemMediaProps = Omit<ComponentProps<"div">, "style"> & {
19
+ export type ItemMediaProps = Omit<ComponentProps<"div">, "style"> & {
20
20
  style?: CSSProperties & ItemKnobStyle;
21
21
  };
22
- type ItemTitleProps = Omit<ComponentProps<"div">, "style"> & {
22
+ export type ItemTitleProps = Omit<ComponentProps<"div">, "style"> & {
23
23
  style?: CSSProperties & ItemKnobStyle;
24
24
  };
25
- type ItemGroupProps = ComponentProps<"div"> & {
25
+ export type ItemGroupProps = ComponentProps<"div"> & {
26
26
  style?: CSSProperties & ItemKnobStyle;
27
27
  };
28
- type ItemSeparatorProps = ComponentProps<"div">;
29
- declare function ItemGroup({ className, ...props }: ItemGroupProps): import("react").JSX.Element;
30
- declare function ItemSeparator({ className, ...props }: ItemSeparatorProps): import("react").JSX.Element;
31
- declare function Item({ variant, render, className, children, ...props }: ItemProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
32
- declare function ItemMedia({ className, ...props }: ItemMediaProps): import("react").JSX.Element;
33
- declare function ItemContent({ className, ...props }: ComponentProps<"div"> & {
28
+ export type ItemSeparatorProps = ComponentProps<"div">;
29
+ export declare function ItemGroup({ className, ...props }: ItemGroupProps): import("react").JSX.Element;
30
+ export declare function ItemSeparator({ className, ...props }: ItemSeparatorProps): import("react").JSX.Element;
31
+ export declare function Item({ variant, render, className, children, ...props }: ItemProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
32
+ export declare function ItemMedia({ className, ...props }: ItemMediaProps): import("react").JSX.Element;
33
+ export declare function ItemContent({ className, ...props }: ComponentProps<"div"> & {
34
34
  style?: CSSProperties & ItemKnobStyle;
35
35
  }): import("react").JSX.Element;
36
- declare function ItemTitle({ className, ...props }: ItemTitleProps): import("react").JSX.Element;
37
- declare function ItemDescription({ className, ...props }: ItemDescriptionProps): import("react").JSX.Element;
38
- declare function ItemActions({ className, ...props }: ComponentProps<"div"> & {
36
+ export declare function ItemTitle({ className, ...props }: ItemTitleProps): import("react").JSX.Element;
37
+ export declare function ItemDescription({ className, ...props }: ItemDescriptionProps): import("react").JSX.Element;
38
+ export declare function ItemActions({ className, ...props }: ComponentProps<"div"> & {
39
39
  style?: CSSProperties & ItemKnobStyle;
40
40
  }): import("react").JSX.Element;
41
- declare function ItemHeader({ className, ...props }: ComponentProps<"div"> & {
41
+ export declare function ItemHeader({ className, ...props }: ComponentProps<"div"> & {
42
42
  style?: CSSProperties & ItemKnobStyle;
43
43
  }): import("react").JSX.Element;
44
- declare function ItemFooter({ className, ...props }: ItemFooterProps): import("react").JSX.Element;
45
- //#endregion
46
- export { Item, ItemActions, ItemContent, ItemDescription, ItemDescriptionProps, ItemFooter, ItemFooterProps, ItemGroup, ItemGroupProps, ItemHeader, ItemMedia, ItemMediaProps, ItemProps, ItemSeparator, ItemSeparatorProps, ItemTitle, ItemTitleProps, ItemVariant, itemVariants };
44
+ export declare function ItemFooter({ className, ...props }: ItemFooterProps): import("react").JSX.Element;
45
+ //#endregion
package/dist/ui/kbd.d.ts CHANGED
@@ -1,12 +1,14 @@
1
1
  import { KbdKnobStyle } from "../knob-contracts/kbd-knobs.js";
2
2
  import { CSSProperties, ComponentProps } from "react";
3
3
  //#region src/ui/kbd.d.ts
4
- type KbdProps = Omit<ComponentProps<"kbd">, "style"> & {
4
+ export declare const kbdVariants: readonly ["default", "ghost"];
5
+ export type KbdVariant = (typeof kbdVariants)[number];
6
+ export type KbdProps = Omit<ComponentProps<"kbd">, "style"> & {
7
+ variant?: KbdVariant;
5
8
  style?: CSSProperties & KbdKnobStyle;
6
9
  };
7
- declare function Kbd({ className, ...props }: KbdProps): import("react").JSX.Element;
8
- declare function KbdGroup({ className, ...props }: ComponentProps<"span"> & {
10
+ export declare function Kbd({ variant, className, ...props }: KbdProps): import("react").JSX.Element;
11
+ export declare function KbdGroup({ className, ...props }: ComponentProps<"span"> & {
9
12
  style?: CSSProperties & KbdKnobStyle;
10
13
  }): import("react").JSX.Element;
11
- //#endregion
12
- export { Kbd, KbdGroup, KbdProps };
14
+ //#endregion
package/dist/ui/kbd.js CHANGED
@@ -1,11 +1,13 @@
1
1
  import { cn } from "../lib/cn.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  //#region src/ui/kbd.tsx
4
- function Kbd({ className, ...props }) {
4
+ const kbdVariants = ["default", "ghost"];
5
+ function Kbd({ variant = "default", className, ...props }) {
5
6
  return /* @__PURE__ */ jsx("kbd", {
6
7
  "data-control-ui": "kbd",
7
8
  "data-control-family": "kbd",
8
9
  "data-slot": "root",
10
+ "data-variant": variant,
9
11
  className: cn("inline-flex select-none items-center justify-center", className),
10
12
  ...props
11
13
  });
@@ -20,4 +22,4 @@ function KbdGroup({ className, ...props }) {
20
22
  });
21
23
  }
22
24
  //#endregion
23
- export { Kbd, KbdGroup };
25
+ export { Kbd, KbdGroup, kbdVariants };
@@ -11,25 +11,25 @@ type MarkdownElementProps<Tag extends keyof JSX.IntrinsicElements> = ComponentPr
11
11
  } & {
12
12
  style?: CSSProperties & MarkdownKnobStyle;
13
13
  };
14
- declare function MarkdownInlineCode({ className, children, node: _node, ...props }: MarkdownCodeProps): JSX.Element;
15
- declare function MarkdownPre({ children, node: _node }: MarkdownElementProps<"pre">): JSX.Element;
16
- declare function MarkdownCode({ className, children, node: _node, ...props }: MarkdownCodeProps): JSX.Element;
17
- declare function MarkdownH1({ className, node: _node, ...props }: MarkdownElementProps<"h1">): JSX.Element;
18
- declare function MarkdownH2({ className, node: _node, ...props }: MarkdownElementProps<"h2">): JSX.Element;
19
- declare function MarkdownH3({ className, node: _node, ...props }: MarkdownElementProps<"h3">): JSX.Element;
20
- declare function MarkdownP({ className, node: _node, ...props }: MarkdownElementProps<"p">): JSX.Element;
21
- declare function MarkdownUl({ className, node: _node, ...props }: MarkdownElementProps<"ul">): JSX.Element;
22
- declare function MarkdownOl({ className, node: _node, ...props }: MarkdownElementProps<"ol">): JSX.Element;
23
- declare function MarkdownLi({ className, node: _node, ...props }: MarkdownElementProps<"li">): JSX.Element;
24
- declare function MarkdownA({ className, node: _node, ...props }: MarkdownElementProps<"a">): JSX.Element;
25
- declare function MarkdownBlockquote({ className, node: _node, ...props }: MarkdownElementProps<"blockquote">): JSX.Element;
26
- declare function MarkdownHr({ className, node: _node, ...props }: MarkdownElementProps<"hr">): JSX.Element;
27
- declare function MarkdownStrong({ className, node: _node, ...props }: MarkdownElementProps<"strong">): JSX.Element;
28
- declare function MarkdownEm({ className, node: _node, ...props }: MarkdownElementProps<"em">): JSX.Element;
29
- declare function MarkdownTable({ className, children, node: _node, ...props }: MarkdownElementProps<"table">): JSX.Element;
30
- declare function MarkdownTh({ className, node: _node, ...props }: MarkdownElementProps<"th">): JSX.Element;
31
- declare function MarkdownTd({ className, node: _node, ...props }: MarkdownElementProps<"td">): JSX.Element;
32
- declare const markdownComponents: {
14
+ export declare function MarkdownInlineCode({ className, children, node: _node, ...props }: MarkdownCodeProps): JSX.Element;
15
+ export declare function MarkdownPre({ children, node: _node }: MarkdownElementProps<"pre">): JSX.Element;
16
+ export declare function MarkdownCode({ className, children, node: _node, ...props }: MarkdownCodeProps): JSX.Element;
17
+ export declare function MarkdownH1({ className, node: _node, ...props }: MarkdownElementProps<"h1">): JSX.Element;
18
+ export declare function MarkdownH2({ className, node: _node, ...props }: MarkdownElementProps<"h2">): JSX.Element;
19
+ export declare function MarkdownH3({ className, node: _node, ...props }: MarkdownElementProps<"h3">): JSX.Element;
20
+ export declare function MarkdownP({ className, node: _node, ...props }: MarkdownElementProps<"p">): JSX.Element;
21
+ export declare function MarkdownUl({ className, node: _node, ...props }: MarkdownElementProps<"ul">): JSX.Element;
22
+ export declare function MarkdownOl({ className, node: _node, ...props }: MarkdownElementProps<"ol">): JSX.Element;
23
+ export declare function MarkdownLi({ className, node: _node, ...props }: MarkdownElementProps<"li">): JSX.Element;
24
+ export declare function MarkdownA({ className, node: _node, ...props }: MarkdownElementProps<"a">): JSX.Element;
25
+ export declare function MarkdownBlockquote({ className, node: _node, ...props }: MarkdownElementProps<"blockquote">): JSX.Element;
26
+ export declare function MarkdownHr({ className, node: _node, ...props }: MarkdownElementProps<"hr">): JSX.Element;
27
+ export declare function MarkdownStrong({ className, node: _node, ...props }: MarkdownElementProps<"strong">): JSX.Element;
28
+ export declare function MarkdownEm({ className, node: _node, ...props }: MarkdownElementProps<"em">): JSX.Element;
29
+ export declare function MarkdownTable({ className, children, node: _node, ...props }: MarkdownElementProps<"table">): JSX.Element;
30
+ export declare function MarkdownTh({ className, node: _node, ...props }: MarkdownElementProps<"th">): JSX.Element;
31
+ export declare function MarkdownTd({ className, node: _node, ...props }: MarkdownElementProps<"td">): JSX.Element;
32
+ export declare const markdownComponents: {
33
33
  code: typeof MarkdownCode;
34
34
  inlineCode: typeof MarkdownInlineCode;
35
35
  h1: typeof MarkdownH1;
@@ -48,5 +48,4 @@ declare const markdownComponents: {
48
48
  th: typeof MarkdownTh;
49
49
  td: typeof MarkdownTd;
50
50
  };
51
- //#endregion
52
- export { MarkdownA, MarkdownBlockquote, MarkdownCode, MarkdownEm, MarkdownH1, MarkdownH2, MarkdownH3, MarkdownHr, MarkdownInlineCode, MarkdownLi, MarkdownOl, MarkdownP, MarkdownPre, MarkdownStrong, MarkdownTable, MarkdownTd, MarkdownTh, MarkdownUl, markdownComponents };
51
+ //#endregion
@@ -1,14 +1,13 @@
1
1
  import { MarkdownKnobStyle } from "../knob-contracts/markdown-knobs.js";
2
2
  import { CSSProperties, ComponentProps } from "react";
3
3
  //#region src/ui/markdown.d.ts
4
- type MarkdownProps = Omit<ComponentProps<"div">, "children" | "style"> & {
4
+ export type MarkdownProps = Omit<ComponentProps<"div">, "children" | "style"> & {
5
5
  content: string;
6
6
  style?: CSSProperties & MarkdownKnobStyle;
7
7
  };
8
- declare function MarkdownRoot({ className, ...props }: Omit<ComponentProps<"div">, "style"> & {
8
+ export declare function MarkdownRoot({ className, ...props }: Omit<ComponentProps<"div">, "style"> & {
9
9
  style?: CSSProperties & MarkdownKnobStyle;
10
10
  }): import("react").JSX.Element;
11
- declare function Markdown({ content, className, ...props }: MarkdownProps): import("react").JSX.Element;
12
- type MarkdownComponentProps = ComponentProps<typeof Markdown>;
13
- //#endregion
14
- export { Markdown, MarkdownComponentProps, MarkdownProps, MarkdownRoot };
11
+ export declare function Markdown({ content, className, ...props }: MarkdownProps): import("react").JSX.Element;
12
+ export type MarkdownComponentProps = ComponentProps<typeof Markdown>;
13
+ //#endregion
@@ -3,7 +3,7 @@ import { ButtonKnobStyle } from "../knob-contracts/button-knobs.js";
3
3
  import { PopupKnobStyle } from "../knob-contracts/popup-knobs.js";
4
4
  import { CSSProperties, ComponentProps, MouseEvent, ReactNode } from "react";
5
5
  //#region src/ui/menubar.d.ts
6
- type MenubarProps = Omit<ComponentProps<"div">, "style"> & {
6
+ export type MenubarProps = Omit<ComponentProps<"div">, "style"> & {
7
7
  style?: CSSProperties & PopupKnobStyle;
8
8
  } & {
9
9
  modal?: boolean;
@@ -11,64 +11,63 @@ type MenubarProps = Omit<ComponentProps<"div">, "style"> & {
11
11
  disabled?: boolean;
12
12
  orientation?: "horizontal" | "vertical";
13
13
  };
14
- type MenubarMenuProps = {
14
+ export type MenubarMenuProps = {
15
15
  children?: ReactNode;
16
16
  open?: boolean;
17
17
  defaultOpen?: boolean;
18
18
  onOpenChange?: (open: boolean, eventDetails: OpenChangeEventDetails) => void;
19
19
  };
20
- type MenubarTriggerProps = Omit<ComponentProps<"button">, "style"> & {
20
+ export type MenubarTriggerProps = Omit<ComponentProps<"button">, "style"> & {
21
21
  style?: CSSProperties & ButtonKnobStyle;
22
22
  };
23
- type MenubarContentProps = Omit<ComponentProps<"div">, "style"> & {
23
+ export type MenubarContentProps = Omit<ComponentProps<"div">, "style"> & {
24
24
  style?: CSSProperties & PopupKnobStyle;
25
25
  };
26
- type MenubarGroupProps = ComponentProps<"div"> & {
26
+ export type MenubarGroupProps = ComponentProps<"div"> & {
27
27
  style?: CSSProperties & PopupKnobStyle;
28
28
  };
29
- type MenubarItemProps = Omit<Omit<ComponentProps<"div">, "onClick">, "style"> & {
29
+ export type MenubarItemProps = Omit<Omit<ComponentProps<"div">, "onClick">, "style"> & {
30
30
  style?: CSSProperties & PopupKnobStyle;
31
31
  } & {
32
32
  disabled?: boolean;
33
33
  onClick?: (event: MouseEvent) => void;
34
34
  };
35
- type MenubarSeparatorProps = Omit<ComponentProps<"div">, "style"> & {
35
+ export type MenubarSeparatorProps = Omit<ComponentProps<"div">, "style"> & {
36
36
  style?: CSSProperties & PopupKnobStyle;
37
37
  };
38
- type MenubarLabelProps = Omit<ComponentProps<"div">, "style"> & {
38
+ export type MenubarLabelProps = Omit<ComponentProps<"div">, "style"> & {
39
39
  style?: CSSProperties & PopupKnobStyle;
40
40
  } & {
41
41
  inset?: boolean;
42
42
  };
43
- type MenubarShortcutProps = Omit<ComponentProps<"span">, "style"> & {
43
+ export type MenubarShortcutProps = Omit<ComponentProps<"span">, "style"> & {
44
44
  style?: CSSProperties & PopupKnobStyle;
45
45
  };
46
- type MenubarSubProps = {
46
+ export type MenubarSubProps = {
47
47
  children?: ReactNode;
48
48
  open?: boolean;
49
49
  defaultOpen?: boolean;
50
50
  onOpenChange?: (open: boolean, eventDetails: OpenChangeEventDetails) => void;
51
51
  };
52
- type MenubarSubTriggerProps = Omit<Omit<ComponentProps<"div">, "onClick">, "style"> & {
52
+ export type MenubarSubTriggerProps = Omit<Omit<ComponentProps<"div">, "onClick">, "style"> & {
53
53
  style?: CSSProperties & PopupKnobStyle;
54
54
  } & {
55
55
  disabled?: boolean;
56
56
  inset?: boolean;
57
57
  };
58
- type MenubarSubContentProps = Omit<ComponentProps<"div">, "style"> & {
58
+ export type MenubarSubContentProps = Omit<ComponentProps<"div">, "style"> & {
59
59
  style?: CSSProperties & PopupKnobStyle;
60
60
  };
61
- declare function Menubar({ className, ...props }: MenubarProps): import("react").JSX.Element;
62
- declare function MenubarMenu(props: MenubarMenuProps): import("react").JSX.Element;
63
- declare function MenubarTrigger({ className, ...props }: MenubarTriggerProps): import("react").JSX.Element;
64
- declare function MenubarContent({ className, children, ...props }: MenubarContentProps): import("react").JSX.Element;
65
- declare function MenubarGroup({ className, ...props }: MenubarGroupProps): import("react").JSX.Element;
66
- declare function MenubarItem({ className, ...props }: MenubarItemProps): import("react").JSX.Element;
67
- declare function MenubarLabel({ className, inset, ...props }: MenubarLabelProps): import("react").JSX.Element;
68
- declare function MenubarSeparator({ className, ...props }: MenubarSeparatorProps): import("react").JSX.Element;
69
- declare function MenubarShortcut({ className, ...props }: MenubarShortcutProps): import("react").JSX.Element;
70
- declare function MenubarSub(props: MenubarSubProps): import("react").JSX.Element;
71
- declare function MenubarSubTrigger({ className, inset, children, ...props }: MenubarSubTriggerProps): import("react").JSX.Element;
72
- declare function MenubarSubContent({ className, children, ...props }: MenubarSubContentProps): import("react").JSX.Element;
73
- //#endregion
74
- export { Menubar, MenubarContent, MenubarContentProps, MenubarGroup, MenubarGroupProps, MenubarItem, MenubarItemProps, MenubarLabel, MenubarLabelProps, MenubarMenu, MenubarMenuProps, MenubarProps, MenubarSeparator, MenubarSeparatorProps, MenubarShortcut, MenubarShortcutProps, MenubarSub, MenubarSubContent, MenubarSubContentProps, MenubarSubProps, MenubarSubTrigger, MenubarSubTriggerProps, MenubarTrigger, MenubarTriggerProps };
61
+ export declare function Menubar({ className, ...props }: MenubarProps): import("react").JSX.Element;
62
+ export declare function MenubarMenu(props: MenubarMenuProps): import("react").JSX.Element;
63
+ export declare function MenubarTrigger({ className, ...props }: MenubarTriggerProps): import("react").JSX.Element;
64
+ export declare function MenubarContent({ className, children, ...props }: MenubarContentProps): import("react").JSX.Element;
65
+ export declare function MenubarGroup({ className, ...props }: MenubarGroupProps): import("react").JSX.Element;
66
+ export declare function MenubarItem({ className, ...props }: MenubarItemProps): import("react").JSX.Element;
67
+ export declare function MenubarLabel({ className, inset, ...props }: MenubarLabelProps): import("react").JSX.Element;
68
+ export declare function MenubarSeparator({ className, ...props }: MenubarSeparatorProps): import("react").JSX.Element;
69
+ export declare function MenubarShortcut({ className, ...props }: MenubarShortcutProps): import("react").JSX.Element;
70
+ export declare function MenubarSub(props: MenubarSubProps): import("react").JSX.Element;
71
+ export declare function MenubarSubTrigger({ className, inset, children, ...props }: MenubarSubTriggerProps): import("react").JSX.Element;
72
+ export declare function MenubarSubContent({ className, children, ...props }: MenubarSubContentProps): import("react").JSX.Element;
73
+ //#endregion
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
- import { skinEffects, skinId } from "../skin.js";
3
+ import { controlEffectsAttribute } from "../skin.js";
4
+ import { useSkin } from "../skin-provider.js";
4
5
  import { popupItemStructureClasses } from "../surface-variants.js";
5
6
  import { jsx, jsxs } from "react/jsx-runtime";
6
7
  import { Menu } from "@base-ui/react/menu";
@@ -38,13 +39,14 @@ function MenubarTrigger({ className, ...props }) {
38
39
  });
39
40
  }
40
41
  function MenubarContent({ className, children, ...props }) {
42
+ const skin = useSkin();
41
43
  return /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, {
42
- "data-skin": skinId(),
43
- "data-effects": skinEffects(),
44
+ "data-skin": skin.id,
45
+ "data-effects": controlEffectsAttribute(skin.effects),
44
46
  side: "bottom",
45
47
  align: "start",
46
48
  sideOffset: 6,
47
- className: "z-[80]",
49
+ className: "z-(--z-popup)",
48
50
  children: /* @__PURE__ */ jsx(Menu.Popup, {
49
51
  "data-control-ui": "menubar",
50
52
  "data-popup-kind": "menubar",
@@ -137,14 +139,15 @@ function MenubarSubTrigger({ className, inset = false, children, ...props }) {
137
139
  });
138
140
  }
139
141
  function MenubarSubContent({ className, children, ...props }) {
142
+ const skin = useSkin();
140
143
  return /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, {
141
- "data-skin": skinId(),
142
- "data-effects": skinEffects(),
144
+ "data-skin": skin.id,
145
+ "data-effects": controlEffectsAttribute(skin.effects),
143
146
  side: "right",
144
147
  align: "start",
145
148
  sideOffset: -4,
146
149
  alignOffset: -5,
147
- className: "z-[80]",
150
+ className: "z-(--z-popup)",
148
151
  children: /* @__PURE__ */ jsx(Menu.Popup, {
149
152
  "data-control-ui": "menubar",
150
153
  "data-popup-kind": "menubar",