@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
@@ -1,18 +1,17 @@
1
1
  import { DialogCloseProps, DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogProps, DialogTitle, DialogTrigger } from "./dialog.js";
2
2
  import { ComponentProps } from "react";
3
3
  //#region src/ui/responsive-dialog.d.ts
4
- type ResponsiveDialogProps = DialogProps;
5
- type ResponsiveDialogContentProps = DialogContentProps & {
4
+ export type ResponsiveDialogProps = DialogProps;
5
+ export type ResponsiveDialogContentProps = DialogContentProps & {
6
6
  dialogClassName?: string;
7
7
  drawerClassName?: string;
8
8
  };
9
- declare function ResponsiveDialog({ open: controlledOpen, defaultOpen, onOpenChange, children }: ResponsiveDialogProps): import("react").JSX.Element;
10
- declare function ResponsiveDialogTrigger(props: Omit<ComponentProps<typeof DialogTrigger>, "handle">): import("react").JSX.Element;
11
- declare function ResponsiveDialogClose({ className, children, variant, size, tone, iconOnly, ...props }: DialogCloseProps): import("react").JSX.Element;
12
- declare function ResponsiveDialogContent({ className, dialogClassName, drawerClassName, children, showCloseButton, ...props }: ResponsiveDialogContentProps): import("react").JSX.Element;
13
- declare function ResponsiveDialogHeader(props: ComponentProps<typeof DialogHeader>): import("react").JSX.Element;
14
- declare function ResponsiveDialogFooter(props: ComponentProps<typeof DialogFooter>): import("react").JSX.Element;
15
- declare function ResponsiveDialogTitle(props: ComponentProps<typeof DialogTitle>): import("react").JSX.Element;
16
- declare function ResponsiveDialogDescription(props: ComponentProps<typeof DialogDescription>): import("react").JSX.Element;
17
- //#endregion
18
- export { ResponsiveDialog, ResponsiveDialogClose, ResponsiveDialogContent, ResponsiveDialogContentProps, ResponsiveDialogDescription, ResponsiveDialogFooter, ResponsiveDialogHeader, ResponsiveDialogProps, ResponsiveDialogTitle, ResponsiveDialogTrigger };
9
+ export declare function ResponsiveDialog({ open: controlledOpen, defaultOpen, onOpenChange, children }: ResponsiveDialogProps): import("react").JSX.Element;
10
+ export declare function ResponsiveDialogTrigger(props: Omit<ComponentProps<typeof DialogTrigger>, "handle">): import("react").JSX.Element;
11
+ export declare function ResponsiveDialogClose({ className, children, variant, size, tone, iconOnly, ...props }: DialogCloseProps): import("react").JSX.Element;
12
+ export declare function ResponsiveDialogContent({ className, dialogClassName, drawerClassName, children, showCloseButton, ...props }: ResponsiveDialogContentProps): import("react").JSX.Element;
13
+ export declare function ResponsiveDialogHeader(props: ComponentProps<typeof DialogHeader>): import("react").JSX.Element;
14
+ export declare function ResponsiveDialogFooter(props: ComponentProps<typeof DialogFooter>): import("react").JSX.Element;
15
+ export declare function ResponsiveDialogTitle(props: ComponentProps<typeof DialogTitle>): import("react").JSX.Element;
16
+ export declare function ResponsiveDialogDescription(props: ComponentProps<typeof DialogDescription>): import("react").JSX.Element;
17
+ //#endregion
@@ -1,12 +1,11 @@
1
1
  //#region src/ui/rich-tooltip-tour.d.ts
2
- type TourPosition = {
2
+ export type TourPosition = {
3
3
  index: number;
4
4
  total: number;
5
5
  isFirst: boolean;
6
6
  isLast: boolean;
7
7
  };
8
- declare function tourPosition(steps: readonly string[], activeStep: string | null): TourPosition;
9
- declare function stepAfter(steps: readonly string[], index: number): string | null;
10
- declare function stepBefore(steps: readonly string[], index: number): string | null;
11
- //#endregion
12
- export { TourPosition, stepAfter, stepBefore, tourPosition };
8
+ export declare function tourPosition(steps: readonly string[], activeStep: string | null): TourPosition;
9
+ export declare function stepAfter(steps: readonly string[], index: number): string | null;
10
+ export declare function stepBefore(steps: readonly string[], index: number): string | null;
11
+ //#endregion
@@ -4,8 +4,8 @@ import { TourPosition } from "./rich-tooltip-tour.js";
4
4
  import { CSSProperties, ComponentProps, ReactNode } from "react";
5
5
  import { Popover } from "@base-ui/react/popover";
6
6
  //#region src/ui/rich-tooltip.d.ts
7
- type RichTooltipTone = "accent" | "surface";
8
- type RichTooltipProgressVariant = "count" | "dots";
7
+ export type RichTooltipTone = "accent" | "surface";
8
+ export type RichTooltipProgressVariant = "count" | "dots";
9
9
  type RichTooltipContentKnobStyle = RichTooltipKnobStyle & PopupKnobStyle;
10
10
  type TourValue = TourPosition & {
11
11
  activeStep: string | null;
@@ -14,9 +14,8 @@ type TourValue = TourPosition & {
14
14
  goTo: (step: string) => void;
15
15
  finish: () => void;
16
16
  };
17
- /** Null outside `<RichTooltipTour>` — single-use rich tooltips read it and skip their step affordances. */
18
- declare function useTour(): TourValue | null;
19
- type RichTooltipTourProps = {
17
+ export declare function useTour(): TourValue | null;
18
+ export type RichTooltipTourProps = {
20
19
  steps: readonly string[];
21
20
  step?: string | null;
22
21
  defaultStep?: string;
@@ -25,20 +24,20 @@ type RichTooltipTourProps = {
25
24
  storageKey?: string;
26
25
  children?: ReactNode;
27
26
  };
28
- declare function RichTooltipTour({ steps, step, defaultStep, onStepChange, onComplete, storageKey, children }: RichTooltipTourProps): import("react").JSX.Element;
29
- type RichTooltipProps = Omit<ComponentProps<typeof Popover.Root>, "modal"> & {
27
+ export declare function RichTooltipTour({ steps, step, defaultStep, onStepChange, onComplete, storageKey, children }: RichTooltipTourProps): import("react").JSX.Element;
28
+ export type RichTooltipProps = Omit<ComponentProps<typeof Popover.Root>, "modal"> & {
30
29
  step?: string;
31
30
  tone?: RichTooltipTone;
32
31
  storageKey?: string;
33
32
  dismissOnOutsidePress?: boolean;
34
33
  trapFocus?: boolean;
35
34
  };
36
- declare function RichTooltip({ step, tone, storageKey, dismissOnOutsidePress, trapFocus, open, defaultOpen, onOpenChange, children, ...props }: RichTooltipProps): import("react").JSX.Element;
37
- declare function RichTooltipTrigger({ className, ...props }: ComponentProps<typeof Popover.Trigger> & {
35
+ export declare function RichTooltip({ step, tone, storageKey, dismissOnOutsidePress, trapFocus, open, defaultOpen, onOpenChange, children, ...props }: RichTooltipProps): import("react").JSX.Element;
36
+ export declare function RichTooltipTrigger({ className, ...props }: ComponentProps<typeof Popover.Trigger> & {
38
37
  style?: CSSProperties & PopupKnobStyle;
39
38
  }): import("react").JSX.Element;
40
39
  type AnchorProp = ComponentProps<typeof Popover.Positioner>["anchor"];
41
- type RichTooltipContentProps = Omit<ComponentProps<typeof Popover.Popup>, "style"> & {
40
+ export type RichTooltipContentProps = Omit<ComponentProps<typeof Popover.Popup>, "style"> & {
42
41
  style?: CSSProperties & RichTooltipContentKnobStyle;
43
42
  } & {
44
43
  side?: ComponentProps<typeof Popover.Positioner>["side"];
@@ -49,35 +48,34 @@ type RichTooltipContentProps = Omit<ComponentProps<typeof Popover.Popup>, "style
49
48
  arrow?: boolean;
50
49
  scrollAnchorIntoView?: boolean;
51
50
  };
52
- declare function RichTooltipContent({ className, children, side, align, sideOffset, anchor, collisionPadding, arrow, scrollAnchorIntoView, ...props }: RichTooltipContentProps): import("react").JSX.Element;
53
- declare function RichTooltipMedia({ className, ...props }: ComponentProps<"div"> & {
51
+ export declare function RichTooltipContent({ className, children, side, align, sideOffset, anchor, collisionPadding, arrow, scrollAnchorIntoView, ...props }: RichTooltipContentProps): import("react").JSX.Element;
52
+ export declare function RichTooltipMedia({ className, ...props }: ComponentProps<"div"> & {
54
53
  style?: CSSProperties & PopupKnobStyle;
55
54
  }): import("react").JSX.Element;
56
- declare function RichTooltipHeader({ className, ...props }: ComponentProps<"div"> & {
55
+ export declare function RichTooltipHeader({ className, ...props }: ComponentProps<"div"> & {
57
56
  style?: CSSProperties & PopupKnobStyle;
58
57
  }): import("react").JSX.Element;
59
- declare function RichTooltipTitle({ className, ...props }: Omit<ComponentProps<typeof Popover.Title>, "style"> & {
58
+ export declare function RichTooltipTitle({ className, ...props }: Omit<ComponentProps<typeof Popover.Title>, "style"> & {
60
59
  style?: CSSProperties & RichTooltipKnobStyle & PopupKnobStyle;
61
60
  }): import("react").JSX.Element;
62
- declare function RichTooltipDescription({ className, ...props }: Omit<ComponentProps<typeof Popover.Description>, "style"> & {
61
+ export declare function RichTooltipDescription({ className, ...props }: Omit<ComponentProps<typeof Popover.Description>, "style"> & {
63
62
  style?: CSSProperties & RichTooltipKnobStyle & PopupKnobStyle;
64
63
  }): import("react").JSX.Element;
65
- declare function RichTooltipFooter({ className, ...props }: ComponentProps<"div"> & {
64
+ export declare function RichTooltipFooter({ className, ...props }: ComponentProps<"div"> & {
66
65
  style?: CSSProperties & PopupKnobStyle;
67
66
  }): import("react").JSX.Element;
68
- type RichTooltipProgressProps = Omit<ComponentProps<"div">, "style"> & {
67
+ export type RichTooltipProgressProps = Omit<ComponentProps<"div">, "style"> & {
69
68
  variant?: RichTooltipProgressVariant;
70
69
  style?: CSSProperties & RichTooltipKnobStyle & PopupKnobStyle;
71
70
  };
72
- declare function RichTooltipProgress({ className, variant, children, ...props }: RichTooltipProgressProps): import("react").JSX.Element | null;
73
- declare function RichTooltipPrevious({ className, children, onClick, ...props }: Omit<ComponentProps<"button">, "style"> & {
71
+ export declare function RichTooltipProgress({ className, variant, children, ...props }: RichTooltipProgressProps): import("react").JSX.Element | null;
72
+ export declare function RichTooltipPrevious({ className, children, onClick, ...props }: Omit<ComponentProps<"button">, "style"> & {
74
73
  style?: CSSProperties & RichTooltipKnobStyle & PopupKnobStyle;
75
74
  }): import("react").JSX.Element | null;
76
- declare function RichTooltipNext({ className, children, onClick, ...props }: Omit<ComponentProps<"button">, "style"> & {
75
+ export declare function RichTooltipNext({ className, children, onClick, ...props }: Omit<ComponentProps<"button">, "style"> & {
77
76
  style?: CSSProperties & RichTooltipKnobStyle & PopupKnobStyle;
78
77
  }): import("react").JSX.Element;
79
- declare function RichTooltipClose({ className, children, ...props }: Omit<ComponentProps<typeof Popover.Close>, "style"> & {
78
+ export declare function RichTooltipClose({ className, children, ...props }: Omit<ComponentProps<typeof Popover.Close>, "style"> & {
80
79
  style?: CSSProperties & RichTooltipKnobStyle & PopupKnobStyle;
81
80
  }): import("react").JSX.Element;
82
- //#endregion
83
- export { RichTooltip, RichTooltipClose, RichTooltipContent, RichTooltipContentProps, RichTooltipDescription, RichTooltipFooter, RichTooltipHeader, RichTooltipMedia, RichTooltipNext, RichTooltipPrevious, RichTooltipProgress, RichTooltipProgressProps, RichTooltipProgressVariant, RichTooltipProps, RichTooltipTitle, RichTooltipTone, RichTooltipTour, RichTooltipTourProps, RichTooltipTrigger, useTour };
81
+ //#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 { stepAfter, stepBefore, tourPosition } from "./rich-tooltip-tour.js";
5
6
  import { createContext, useContext, useEffect, useState } from "react";
6
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -8,7 +9,6 @@ import { ChevronLeftIcon, ChevronRightIcon, XIcon } from "lucide-react";
8
9
  import { Popover } from "@base-ui/react/popover";
9
10
  //#region src/ui/rich-tooltip.tsx
10
11
  const TourContext = createContext(null);
11
- /** Null outside `<RichTooltipTour>` — single-use rich tooltips read it and skip their step affordances. */
12
12
  function useTour() {
13
13
  return useContext(TourContext);
14
14
  }
@@ -26,7 +26,6 @@ function writeSeen(storageKey) {
26
26
  globalThis.localStorage?.setItem(storageKey, "seen");
27
27
  } catch {}
28
28
  }
29
- /** Starts closed so the server and first client pass agree, then opens once storage has been read. */
30
29
  function useSeenGate(storageKey, enabled) {
31
30
  const [allowed, setAllowed] = useState(false);
32
31
  useEffect(() => {
@@ -136,6 +135,7 @@ function useAnchorScroll(anchor, open, enabled) {
136
135
  ]);
137
136
  }
138
137
  function RichTooltipContent({ className, children, side = "bottom", align = "center", sideOffset = 10, anchor, collisionPadding = 12, arrow = true, scrollAnchorIntoView = true, ...props }) {
138
+ const skin = useSkin();
139
139
  const { tone } = useRichTooltipContext();
140
140
  const isSurface = tone === "surface";
141
141
  useAnchorScroll(anchor, true, scrollAnchorIntoView);
@@ -144,8 +144,8 @@ function RichTooltipContent({ className, children, side = "bottom", align = "cen
144
144
  "data-popup-kind": "rich-tooltip",
145
145
  "data-control-family": "popup",
146
146
  "data-slot": "positioner",
147
- "data-skin": skinId(),
148
- "data-effects": skinEffects(),
147
+ "data-skin": skin.id,
148
+ "data-effects": controlEffectsAttribute(skin.effects),
149
149
  side,
150
150
  align,
151
151
  sideOffset,
@@ -2,15 +2,15 @@ import { ScrollAreaKnobStyle } from "../knob-contracts/scroll-area-knobs.js";
2
2
  import { ProgressiveBlurProps } from "./progressive-blur.js";
3
3
  import { CSSProperties, ComponentProps, Ref } from "react";
4
4
  //#region src/ui/scroll-area.d.ts
5
- declare const scrollAreaScrollbarVisibilities: readonly ["scroll", "hover", "always"];
6
- type ScrollAreaScrollbarVisibility = (typeof scrollAreaScrollbarVisibilities)[number];
7
- type ScrollAreaLockAxis = "x" | "y" | "both";
8
- type ScrollAreaViewportProps = Omit<ComponentProps<"div">, "children" | "className" | "ref"> & {
5
+ export declare const scrollAreaScrollbarVisibilities: readonly ["scroll", "hover", "always"];
6
+ export type ScrollAreaScrollbarVisibility = (typeof scrollAreaScrollbarVisibilities)[number];
7
+ export type ScrollAreaLockAxis = "x" | "y" | "both";
8
+ export type ScrollAreaViewportProps = Omit<ComponentProps<"div">, "children" | "className" | "ref"> & {
9
9
  "data-control-ui"?: string;
10
10
  "data-control-family"?: string;
11
11
  "data-slot"?: string;
12
12
  };
13
- type ScrollAreaProps = Omit<ComponentProps<"div">, "style"> & {
13
+ export type ScrollAreaProps = Omit<ComponentProps<"div">, "style"> & {
14
14
  style?: CSSProperties & ScrollAreaKnobStyle;
15
15
  } & {
16
16
  viewportClassName?: string;
@@ -23,6 +23,5 @@ type ScrollAreaProps = Omit<ComponentProps<"div">, "style"> & {
23
23
  lockAxis?: ScrollAreaLockAxis;
24
24
  scrollbarVisibility?: ScrollAreaScrollbarVisibility;
25
25
  };
26
- declare function ScrollArea({ className, viewportClassName, viewportProps, viewportRef, maxHeight, mask, blur, blurProps, lockAxis, scrollbarVisibility, children, style, ...props }: ScrollAreaProps): import("react").JSX.Element;
27
- //#endregion
28
- export { ScrollArea, ScrollAreaLockAxis, ScrollAreaProps, ScrollAreaScrollbarVisibility, ScrollAreaViewportProps, scrollAreaScrollbarVisibilities };
26
+ export declare function ScrollArea({ className, viewportClassName, viewportProps, viewportRef, maxHeight, mask, blur, blurProps, lockAxis, scrollbarVisibility, children, style, ...props }: ScrollAreaProps): import("react").JSX.Element;
27
+ //#endregion
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
+ import { useSkin } from "../skin-provider.js";
3
4
  import { ProgressiveBlur } from "./progressive-blur.js";
4
5
  import { jsx, jsxs } from "react/jsx-runtime";
5
6
  import { ScrollArea as ScrollArea$1 } from "@base-ui/react/scroll-area";
@@ -34,7 +35,9 @@ function viewportStyle(maxHeight, lockX, lockY) {
34
35
  ...lockY ? { overflowY: "hidden" } : {}
35
36
  };
36
37
  }
37
- function ScrollArea({ className, viewportClassName, viewportProps, viewportRef, maxHeight, mask = true, blur = false, blurProps, lockAxis, scrollbarVisibility = "scroll", children, style, ...props }) {
38
+ function ScrollArea({ className, viewportClassName, viewportProps, viewportRef, maxHeight, mask = true, blur, blurProps, lockAxis, scrollbarVisibility = "scroll", children, style, ...props }) {
39
+ const skin = useSkin();
40
+ const resolvedBlur = blur ?? skin.scrollAreaBlur ?? false;
38
41
  const lockX = lockAxis === "x" || lockAxis === "both";
39
42
  const lockY = lockAxis === "y" || lockAxis === "both";
40
43
  const resolvedViewportStyle = viewportStyle(maxHeight, lockX, lockY);
@@ -51,7 +54,7 @@ function ScrollArea({ className, viewportClassName, viewportProps, viewportRef,
51
54
  "data-control-family": "scroll-area",
52
55
  "data-slot": "root",
53
56
  "data-mask": mask || void 0,
54
- "data-blur": blur || void 0,
57
+ "data-blur": resolvedBlur || void 0,
55
58
  "data-lock-axis": lockAxis,
56
59
  className: cn("relative overflow-hidden", className),
57
60
  style,
@@ -73,22 +76,22 @@ function ScrollArea({ className, viewportClassName, viewportProps, viewportRef,
73
76
  children
74
77
  })
75
78
  }),
76
- blur && !lockY && /* @__PURE__ */ jsx(ProgressiveBlur, {
79
+ resolvedBlur && !lockY && /* @__PURE__ */ jsx(ProgressiveBlur, {
77
80
  ...blurProps,
78
81
  side: "top",
79
82
  visible: false
80
83
  }),
81
- blur && !lockY && /* @__PURE__ */ jsx(ProgressiveBlur, {
84
+ resolvedBlur && !lockY && /* @__PURE__ */ jsx(ProgressiveBlur, {
82
85
  ...blurProps,
83
86
  side: "bottom",
84
87
  visible: false
85
88
  }),
86
- blur && !lockX && /* @__PURE__ */ jsx(ProgressiveBlur, {
89
+ resolvedBlur && !lockX && /* @__PURE__ */ jsx(ProgressiveBlur, {
87
90
  ...blurProps,
88
91
  side: "inline-start",
89
92
  visible: false
90
93
  }),
91
- blur && !lockX && /* @__PURE__ */ jsx(ProgressiveBlur, {
94
+ resolvedBlur && !lockX && /* @__PURE__ */ jsx(ProgressiveBlur, {
92
95
  ...blurProps,
93
96
  side: "inline-end",
94
97
  visible: false
@@ -5,27 +5,35 @@ import { PopupKnobStyle } from "../knob-contracts/popup-knobs.js";
5
5
  import { CSSProperties, ComponentProps, ReactNode } from "react";
6
6
  import { Select as Select$1 } from "@base-ui/react/select";
7
7
  //#region src/ui/select.d.ts
8
- type SelectProps<TValue extends string = string> = ControlledChoice<TValue> & {
8
+ export type SelectProps<TValue extends string = string> = Omit<ControlledChoice<TValue>, "value"> & {
9
+ value?: TValue | null;
10
+ open?: boolean;
11
+ defaultOpen?: boolean;
12
+ onOpenChange?: (open: boolean) => void;
9
13
  disabled?: boolean;
14
+ items?: Record<string, ReactNode> | readonly {
15
+ value: TValue;
16
+ label: ReactNode;
17
+ }[];
10
18
  name?: string;
11
19
  children?: ReactNode;
12
20
  };
13
- declare const selectTriggerVariants: readonly ["surface", "ghost"];
14
- type SelectTriggerVariant = (typeof selectTriggerVariants)[number];
15
- type SelectTriggerProps = Omit<ComponentProps<"button">, "style"> & {
21
+ export declare const selectTriggerVariants: readonly ["surface", "ghost"];
22
+ export type SelectTriggerVariant = (typeof selectTriggerVariants)[number];
23
+ export type SelectTriggerProps = Omit<ComponentProps<"button">, "style"> & {
16
24
  style?: CSSProperties & ButtonKnobStyle;
17
25
  } & {
18
26
  size?: ControlSize;
19
27
  variant?: SelectTriggerVariant;
20
28
  };
21
- type SelectValueProps = {
29
+ export type SelectValueProps = {
22
30
  placeholder?: ReactNode;
23
31
  children?: ReactNode | ((value: string) => ReactNode);
24
32
  };
25
- type SelectContentProps = Omit<ComponentProps<"div">, "style"> & {
33
+ export type SelectContentProps = Omit<ComponentProps<"div">, "style"> & Pick<ComponentProps<typeof Select$1.Positioner>, "alignItemWithTrigger"> & {
26
34
  style?: CSSProperties & PopupKnobStyle;
27
35
  };
28
- type SelectItemProps = Omit<ComponentProps<"div">, "style"> & {
36
+ export type SelectItemProps = Omit<ComponentProps<"div">, "style"> & {
29
37
  style?: CSSProperties & PopupKnobStyle;
30
38
  } & {
31
39
  value: string;
@@ -35,10 +43,9 @@ type SelectItemProps = Omit<ComponentProps<"div">, "style"> & {
35
43
  type RefinedSelectTriggerProps = SelectTriggerProps & Pick<ComponentProps<typeof Select$1.Trigger>, "nativeButton" | "render"> & {
36
44
  style?: CSSProperties & PopupKnobStyle;
37
45
  };
38
- declare function Select<TValue extends string = string>({ children, onValueChange, ...props }: SelectProps<TValue>): import("react").JSX.Element;
39
- declare function SelectTrigger({ size, variant, className, children, disabled, ...props }: RefinedSelectTriggerProps): import("react").JSX.Element;
40
- declare function SelectValue({ children, ...props }: SelectValueProps): import("react").JSX.Element;
41
- declare function SelectContent({ className, children, ...props }: SelectContentProps): import("react").JSX.Element;
42
- declare function SelectItem({ className, children, disabled, ...props }: SelectItemProps): import("react").JSX.Element;
43
- //#endregion
44
- export { Select, SelectContent, SelectContentProps, SelectItem, SelectItemProps, SelectProps, SelectTrigger, SelectTriggerProps, SelectTriggerVariant, SelectValue, SelectValueProps, selectTriggerVariants };
46
+ export declare function Select<TValue extends string = string>({ children, onValueChange, ...props }: SelectProps<TValue>): import("react").JSX.Element;
47
+ export declare function SelectTrigger({ size, variant, className, children, disabled, ...props }: RefinedSelectTriggerProps): import("react").JSX.Element;
48
+ export declare function SelectValue({ children, ...props }: SelectValueProps): import("react").JSX.Element;
49
+ export declare function SelectContent({ className, children, alignItemWithTrigger, ...props }: SelectContentProps): import("react").JSX.Element;
50
+ export declare function SelectItem({ className, children, disabled, ...props }: SelectItemProps): import("react").JSX.Element;
51
+ //#endregion
package/dist/ui/select.js CHANGED
@@ -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 { Select as Select$1 } from "@base-ui/react/select";
@@ -64,13 +65,15 @@ function SelectValue({ children, ...props }) {
64
65
  children
65
66
  });
66
67
  }
67
- function SelectContent({ className, children, ...props }) {
68
+ function SelectContent({ className, children, alignItemWithTrigger = false, ...props }) {
69
+ const skin = useSkin();
68
70
  return /* @__PURE__ */ jsx(Select$1.Portal, { children: /* @__PURE__ */ jsx(Select$1.Positioner, {
69
- "data-skin": skinId(),
70
- "data-effects": skinEffects(),
71
+ "data-skin": skin.id,
72
+ "data-effects": controlEffectsAttribute(skin.effects),
71
73
  side: "bottom",
72
74
  align: "start",
73
75
  sideOffset: 6,
76
+ alignItemWithTrigger,
74
77
  className: "z-[80]",
75
78
  children: /* @__PURE__ */ jsx(Select$1.Popup, {
76
79
  "data-control-ui": "select",
@@ -2,8 +2,7 @@ import { SeparatorKnobStyle } from "../knob-contracts/separator-knobs.js";
2
2
  import { CSSProperties, ComponentProps } from "react";
3
3
  import { Separator as Separator$1 } from "@base-ui/react/separator";
4
4
  //#region src/ui/separator.d.ts
5
- declare function Separator({ className, orientation, ...props }: Omit<ComponentProps<typeof Separator$1>, "style"> & {
5
+ export declare function Separator({ className, orientation, ...props }: Omit<ComponentProps<typeof Separator$1>, "style"> & {
6
6
  style?: CSSProperties & SeparatorKnobStyle;
7
7
  }): import("react").JSX.Element;
8
- //#endregion
9
- export { Separator };
8
+ //#endregion
@@ -2,24 +2,23 @@ import { PopupKnobStyle } from "../knob-contracts/popup-knobs.js";
2
2
  import { CSSProperties, ComponentProps } from "react";
3
3
  import { Dialog } from "@base-ui/react/dialog";
4
4
  //#region src/ui/sheet.d.ts
5
- declare function Sheet(props: ComponentProps<typeof Dialog.Root>): import("react").JSX.Element;
6
- declare function SheetClose({ className, ...props }: ComponentProps<typeof Dialog.Close> & {
5
+ export declare function Sheet(props: ComponentProps<typeof Dialog.Root>): import("react").JSX.Element;
6
+ export declare function SheetClose({ className, ...props }: ComponentProps<typeof Dialog.Close> & {
7
7
  style?: CSSProperties & PopupKnobStyle;
8
8
  }): import("react").JSX.Element;
9
- type SheetContentProps = Omit<ComponentProps<typeof Dialog.Popup>, "style"> & {
9
+ export type SheetContentProps = Omit<ComponentProps<typeof Dialog.Popup>, "style"> & {
10
10
  style?: CSSProperties & PopupKnobStyle;
11
11
  } & {
12
12
  side?: "left" | "right";
13
13
  };
14
- declare function SheetContent({ className, children, side, ...props }: SheetContentProps): import("react").JSX.Element;
15
- declare function SheetHeader({ className, ...props }: ComponentProps<"div"> & {
14
+ export declare function SheetContent({ className, children, side, ...props }: SheetContentProps): import("react").JSX.Element;
15
+ export declare function SheetHeader({ className, ...props }: ComponentProps<"div"> & {
16
16
  style?: CSSProperties & PopupKnobStyle;
17
17
  }): import("react").JSX.Element;
18
- declare function SheetTitle({ className, ...props }: ComponentProps<typeof Dialog.Title> & {
18
+ export declare function SheetTitle({ className, ...props }: ComponentProps<typeof Dialog.Title> & {
19
19
  style?: CSSProperties & PopupKnobStyle;
20
20
  }): import("react").JSX.Element;
21
- declare function SheetDescription({ className, ...props }: ComponentProps<typeof Dialog.Description> & {
21
+ export declare function SheetDescription({ className, ...props }: ComponentProps<typeof Dialog.Description> & {
22
22
  style?: CSSProperties & PopupKnobStyle;
23
23
  }): import("react").JSX.Element;
24
- //#endregion
25
- export { Sheet, SheetClose, SheetContent, SheetContentProps, SheetDescription, SheetHeader, SheetTitle };
24
+ //#endregion
package/dist/ui/sheet.js CHANGED
@@ -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, jsxs } from "react/jsx-runtime";
5
6
  import { Dialog } from "@base-ui/react/dialog";
6
7
  //#region src/ui/sheet.tsx
@@ -18,18 +19,19 @@ function SheetClose({ className, ...props }) {
18
19
  });
19
20
  }
20
21
  function SheetContent({ className, children, side = "right", ...props }) {
22
+ const skin = useSkin();
21
23
  return /* @__PURE__ */ jsxs(Dialog.Portal, { children: [/* @__PURE__ */ jsx(Dialog.Backdrop, {
22
24
  "data-control-ui": "sheet",
23
25
  "data-popup-kind": "sheet",
24
26
  "data-slot": "backdrop",
25
27
  "data-control-family": "popup",
26
28
  "data-popup-part": "backdrop",
27
- "data-skin": skinId(),
28
- "data-effects": skinEffects(),
29
+ "data-skin": skin.id,
30
+ "data-effects": controlEffectsAttribute(skin.effects),
29
31
  className: "fixed inset-0 z-[70]"
30
32
  }), /* @__PURE__ */ jsx(Dialog.Popup, {
31
- "data-skin": skinId(),
32
- "data-effects": skinEffects(),
33
+ "data-skin": skin.id,
34
+ "data-effects": controlEffectsAttribute(skin.effects),
33
35
  "data-control-ui": "sheet",
34
36
  "data-popup-kind": "sheet",
35
37
  "data-control-family": "popup",
@@ -2,16 +2,26 @@ import { HoverIndicator, RenderProp, SelectionIndicator } from "../control-props
2
2
  import { SidebarKnobStyle } from "../knob-contracts/sidebar-knobs.js";
3
3
  import { CSSProperties, ComponentProps, ReactNode } from "react";
4
4
  //#region src/ui/sidebar-menu.d.ts
5
- declare const sidebarMenuButtonVariants: readonly ["default", "outline"];
6
- type SidebarMenuButtonVariant = (typeof sidebarMenuButtonVariants)[number];
7
- declare const sidebarMenuButtonSizes: readonly ["default", "sm", "lg"];
8
- type SidebarMenuButtonSize = (typeof sidebarMenuButtonSizes)[number];
9
- type SidebarGroupLabelProps = Omit<ComponentProps<"div">, "style"> & {
5
+ export declare const sidebarMenuButtonVariants: readonly ["default", "outline"];
6
+ export type SidebarMenuButtonVariant = (typeof sidebarMenuButtonVariants)[number];
7
+ export declare const sidebarMenuButtonSizes: readonly ["default", "sm", "lg"];
8
+ export type SidebarMenuButtonSize = (typeof sidebarMenuButtonSizes)[number];
9
+ export type SidebarGroupLabelProps = Omit<ComponentProps<"div">, "style"> & {
10
10
  style?: CSSProperties & SidebarKnobStyle;
11
11
  } & {
12
12
  render?: RenderProp<ComponentProps<"div">>;
13
13
  };
14
- type SidebarMenuButtonProps = Omit<ComponentProps<"button">, "style"> & {
14
+ export type SidebarGroupContentProps = Omit<ComponentProps<"div">, "style"> & {
15
+ style?: CSSProperties & SidebarKnobStyle;
16
+ };
17
+ export type SidebarMenuActionProps = Omit<ComponentProps<"button">, "style"> & {
18
+ render?: RenderProp<ComponentProps<"button">>;
19
+ showOnHover?: boolean;
20
+ style?: CSSProperties & SidebarKnobStyle;
21
+ };
22
+ export declare function SidebarGroupContent({ className, ...props }: SidebarGroupContentProps): import("react").JSX.Element;
23
+ export declare function SidebarMenuAction({ className, render, showOnHover, children, ...props }: SidebarMenuActionProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
24
+ export type SidebarMenuButtonProps = Omit<ComponentProps<"button">, "style"> & {
15
25
  style?: CSSProperties & SidebarKnobStyle;
16
26
  } & {
17
27
  render?: RenderProp<ComponentProps<"button">>;
@@ -20,20 +30,19 @@ type SidebarMenuButtonProps = Omit<ComponentProps<"button">, "style"> & {
20
30
  variant?: SidebarMenuButtonVariant;
21
31
  size?: SidebarMenuButtonSize;
22
32
  };
23
- declare function SidebarGroup({ className, ...props }: ComponentProps<"div"> & {
33
+ export declare function SidebarGroup({ className, ...props }: ComponentProps<"div"> & {
24
34
  style?: CSSProperties & SidebarKnobStyle;
25
35
  }): import("react").JSX.Element;
26
- declare function SidebarGroupLabel({ className, render, children, ...props }: SidebarGroupLabelProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
27
- type SidebarSelectionIndicator = SelectionIndicator | HoverIndicator;
28
- declare function SidebarMenu({ className, indicator, style, children, ...props }: ComponentProps<"ul"> & {
36
+ export declare function SidebarGroupLabel({ className, render, children, ...props }: SidebarGroupLabelProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
37
+ export type SidebarSelectionIndicator = SelectionIndicator | HoverIndicator;
38
+ export declare function SidebarMenu({ className, indicator, style, children, ...props }: ComponentProps<"ul"> & {
29
39
  indicator?: SidebarSelectionIndicator;
30
40
  } & {
31
41
  style?: CSSProperties & SidebarKnobStyle;
32
42
  }): import("react").JSX.Element;
33
- declare function SidebarMenuItem({ className, ...props }: ComponentProps<"li"> & {
43
+ export declare function SidebarMenuItem({ className, ...props }: ComponentProps<"li"> & {
34
44
  style?: CSSProperties & SidebarKnobStyle;
35
45
  }): import("react").JSX.Element;
36
- declare function SidebarMenuButton({ render, isActive, variant, size, tooltip, className, children, ...props }: SidebarMenuButtonProps): import("react").JSX.Element;
37
- declare function SidebarMenuSub({ className, ...props }: ComponentProps<typeof SidebarMenu>): import("react").JSX.Element;
38
- //#endregion
39
- export { SidebarGroup, SidebarGroupLabel, SidebarGroupLabelProps, SidebarMenu, SidebarMenuButton, SidebarMenuButtonProps, SidebarMenuButtonSize, SidebarMenuButtonVariant, SidebarMenuItem, SidebarMenuSub, SidebarSelectionIndicator, sidebarMenuButtonSizes, sidebarMenuButtonVariants };
46
+ export declare function SidebarMenuButton({ render, isActive, variant, size, tooltip, className, children, ...props }: SidebarMenuButtonProps): import("react").JSX.Element;
47
+ export declare function SidebarMenuSub({ className, ...props }: ComponentProps<typeof SidebarMenu>): import("react").JSX.Element;
48
+ //#endregion
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
- import { skinIndicator } from "../skin.js";
3
+ import { useSkin } from "../skin-provider.js";
4
4
  import { Tooltip, TooltipContent, TooltipTrigger } from "./tooltip.js";
5
5
  import { useSidebar } from "./sidebar-provider.js";
6
6
  import { TrackHighlight } from "../extensions/track-highlight.js";
@@ -15,6 +15,31 @@ const sidebarMenuButtonSizes = [
15
15
  "sm",
16
16
  "lg"
17
17
  ];
18
+ function SidebarGroupContent({ className, ...props }) {
19
+ return /* @__PURE__ */ jsx("div", {
20
+ "data-control-ui": "sidebar",
21
+ "data-control-family": "sidebar",
22
+ "data-slot": "group-content",
23
+ className: cn("w-full", className),
24
+ ...props
25
+ });
26
+ }
27
+ function SidebarMenuAction({ className, render, showOnHover = false, children, ...props }) {
28
+ return useRender({
29
+ defaultTagName: "button",
30
+ render,
31
+ props: {
32
+ type: "button",
33
+ ...props,
34
+ "data-control-ui": "sidebar",
35
+ "data-control-family": "sidebar",
36
+ "data-slot": "menu-action",
37
+ "data-show-on-hover": showOnHover || void 0,
38
+ className: cn("end-1 flex size-5 items-center justify-center -translate-y-1/2 disabled:pointer-events-none group-data-[collapsible=icon]:hidden [&>svg]:size-4 [&>svg]:shrink-0", className, "absolute"),
39
+ children
40
+ }
41
+ });
42
+ }
18
43
  function SidebarGroup({ className, ...props }) {
19
44
  return /* @__PURE__ */ jsx("div", {
20
45
  "data-control-ui": "sidebar",
@@ -40,7 +65,8 @@ function SidebarGroupLabel({ className, render, children, ...props }) {
40
65
  }
41
66
  const SidebarMenuContext = createContext("none");
42
67
  function SidebarMenu({ className, indicator, style, children, ...props }) {
43
- const resolvedIndicator = indicator ?? skinIndicator("sidebar") ?? "none";
68
+ const skin = useSkin();
69
+ const resolvedIndicator = indicator ?? skin.indicators?.sidebar ?? "none";
44
70
  const hasHighlight = resolvedIndicator !== "none";
45
71
  const list = /* @__PURE__ */ jsx("ul", {
46
72
  "data-control-ui": "sidebar",
@@ -76,7 +102,7 @@ function SidebarMenuItem({ className, ...props }) {
76
102
  ...props
77
103
  });
78
104
  }
79
- const sidebarMenuButtonClasses = cva("peer/menu-button flex w-full items-center overflow-hidden text-start group-data-[collapsible=icon]:px-0! disabled:pointer-events-none aria-disabled:pointer-events-none [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", {
105
+ const sidebarMenuButtonClasses = cva("peer/menu-button flex w-full items-center overflow-hidden text-start group-data-[collapsible=icon]:px-0! disabled:pointer-events-none aria-disabled:pointer-events-none [&>span]:truncate [&>svg]:size-4 [&>svg]:shrink-0", {
80
106
  variants: {
81
107
  variant: {
82
108
  default: null,
@@ -132,4 +158,4 @@ function SidebarMenuSub({ className, ...props }) {
132
158
  });
133
159
  }
134
160
  //#endregion
135
- export { SidebarGroup, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, sidebarMenuButtonSizes, sidebarMenuButtonVariants };
161
+ export { SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarMenu, SidebarMenuAction, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, sidebarMenuButtonSizes, sidebarMenuButtonVariants };
@@ -1,7 +1,7 @@
1
1
  import { SidebarKnobStyle } from "../knob-contracts/sidebar-knobs.js";
2
- import { CSSProperties, ComponentProps } from "react";
2
+ import { CSSProperties, ComponentProps, RefObject } from "react";
3
3
  //#region src/ui/sidebar-provider.d.ts
4
- type SidebarStyle = CSSProperties & SidebarKnobStyle & {
4
+ export type SidebarStyle = CSSProperties & SidebarKnobStyle & {
5
5
  "--sidebar-width"?: string;
6
6
  "--sidebar-width-icon"?: string;
7
7
  };
@@ -13,16 +13,41 @@ type SidebarContextProps = {
13
13
  setOpenMobile: (open: boolean) => void;
14
14
  isMobile: boolean;
15
15
  toggleSidebar: () => void;
16
+ width: number | undefined;
17
+ minWidth: number;
18
+ maxWidth: number;
19
+ setWidth: (width: number) => void;
16
20
  };
17
- declare function useSidebar(): SidebarContextProps;
18
- type SidebarProviderProps = Omit<ComponentProps<"div">, "style"> & {
21
+ type SidebarElements = {
22
+ wrapperRef: RefObject<HTMLDivElement | null>;
23
+ offcanvasRef: RefObject<HTMLDivElement | null>;
24
+ railRef: RefObject<HTMLElement | null>;
25
+ triggerRef: RefObject<HTMLButtonElement | null>;
26
+ };
27
+ export declare const SidebarSurfaceContext: import("react").Context<{
28
+ side: "left" | "right";
29
+ collapsible: "offcanvas" | "icon" | "none";
30
+ railContainer: HTMLDivElement | null;
31
+ } | null>;
32
+ export declare function useSidebarElements(): SidebarElements;
33
+ export declare function useSidebarSurface(): {
34
+ side: "left" | "right";
35
+ collapsible: "offcanvas" | "icon" | "none";
36
+ railContainer: HTMLDivElement | null;
37
+ };
38
+ export declare function useSidebar(): SidebarContextProps;
39
+ export type SidebarProviderProps = Omit<ComponentProps<"div">, "style"> & {
19
40
  defaultOpen?: boolean;
20
41
  open?: boolean;
21
42
  onOpenChange?: (open: boolean) => void;
43
+ defaultWidth?: number;
44
+ minWidth?: number;
45
+ maxWidth?: number;
46
+ width?: number;
47
+ onWidthChange?: (width: number) => void;
22
48
  persistOpen?: boolean;
23
49
  keyboardShortcut?: string | null;
24
50
  style?: SidebarStyle;
25
51
  };
26
- declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange, persistOpen, keyboardShortcut, ref, className, style, children, ...props }: SidebarProviderProps): import("react").JSX.Element;
27
- //#endregion
28
- export { SidebarProvider, SidebarProviderProps, SidebarStyle, useSidebar };
52
+ export declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange, defaultWidth, minWidth, maxWidth, width: widthProp, onWidthChange, persistOpen, keyboardShortcut, ref, className, style, children, ...props }: SidebarProviderProps): import("react").JSX.Element;
53
+ //#endregion