@ctrl-ui/react 0.8.6 → 0.8.8

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 (376) hide show
  1. package/dist/action-bar.d.ts +15 -7
  2. package/dist/action-bar.js +39 -19
  3. package/dist/activity.js +7 -15
  4. package/dist/audio-recorder.d.ts +14 -4
  5. package/dist/audio-recorder.js +82 -29
  6. package/dist/audio-visualizer.js +1 -1
  7. package/dist/blocks/coding-agent.js +54 -57
  8. package/dist/blocks/design-canvas-data.d.ts +32 -0
  9. package/dist/blocks/design-canvas-data.js +100 -0
  10. package/dist/blocks/design-canvas-inspector.d.ts +8 -0
  11. package/dist/blocks/design-canvas-inspector.js +238 -0
  12. package/dist/blocks/design-canvas.d.ts +21 -0
  13. package/dist/blocks/design-canvas.js +452 -0
  14. package/dist/blocks/discussion.d.ts +28 -0
  15. package/dist/blocks/discussion.js +67 -0
  16. package/dist/blocks/file-explorer-data.d.ts +1 -0
  17. package/dist/blocks/file-explorer-data.js +4 -1
  18. package/dist/blocks/file-explorer.d.ts +9 -1
  19. package/dist/blocks/file-explorer.js +461 -192
  20. package/dist/blocks/settings.d.ts +2 -1
  21. package/dist/blocks/settings.js +101 -79
  22. package/dist/blocks/team-chat.d.ts +12 -0
  23. package/dist/blocks/team-chat.js +26 -0
  24. package/dist/blocks/theme-toggle.js +23 -31
  25. package/dist/chat-composer-attachment.d.ts +12 -3
  26. package/dist/chat-composer-attachment.js +61 -19
  27. package/dist/chat-composer-editor/extensions/mention.d.ts +5 -1
  28. package/dist/chat-composer-editor/extensions/mention.js +58 -27
  29. package/dist/chat-composer-editor/ghost.js +2 -4
  30. package/dist/chat-composer-editor/types.d.ts +5 -0
  31. package/dist/chat-composer-editor.d.ts +1 -1
  32. package/dist/chat-composer-editor.js +71 -28
  33. package/dist/chat-composer.d.ts +13 -32
  34. package/dist/chat-composer.js +54 -13
  35. package/dist/chat-layout.d.ts +19 -0
  36. package/dist/chat-layout.js +96 -32
  37. package/dist/chat-message/social.d.ts +26 -0
  38. package/dist/chat-message/social.js +122 -0
  39. package/dist/chat-message.d.ts +28 -29
  40. package/dist/chat-message.js +106 -25
  41. package/dist/context.d.ts +2 -2
  42. package/dist/context.js +38 -23
  43. package/dist/dynamic-notification-canvas-loop.d.ts +24 -0
  44. package/dist/dynamic-notification-canvas-loop.js +113 -0
  45. package/dist/dynamic-notification-glass.js +23 -114
  46. package/dist/dynamic-notification-liquid.js +14 -118
  47. package/dist/dynamic-notification.d.ts +16 -8
  48. package/dist/dynamic-notification.js +85 -22
  49. package/dist/email/email-brand.d.ts +7 -4
  50. package/dist/email/email-brand.js +9 -6
  51. package/dist/email/email-code.d.ts +3 -2
  52. package/dist/email/email-code.js +11 -9
  53. package/dist/email/email-footer.d.ts +5 -3
  54. package/dist/email/email-footer.js +11 -5
  55. package/dist/email/email.d.ts +31 -9
  56. package/dist/email/email.js +50 -26
  57. package/dist/email/templates.d.ts +10 -9
  58. package/dist/email/templates.js +102 -38
  59. package/dist/email/theme.js +1 -1
  60. package/dist/environment-variables.d.ts +4 -2
  61. package/dist/environment-variables.js +52 -32
  62. package/dist/filter-bar/context.d.ts +32 -0
  63. package/dist/filter-bar/context.js +11 -0
  64. package/dist/filter-bar/editor.d.ts +14 -0
  65. package/dist/filter-bar/editor.js +216 -0
  66. package/dist/filter-bar/model.d.ts +10 -0
  67. package/dist/filter-bar/model.js +57 -0
  68. package/dist/filter-bar/motion.d.ts +10 -0
  69. package/dist/filter-bar/motion.js +84 -0
  70. package/dist/filter-bar/parts.d.ts +19 -0
  71. package/dist/filter-bar/parts.js +244 -0
  72. package/dist/filter-bar/types.d.ts +54 -0
  73. package/dist/filter-bar/types.js +0 -0
  74. package/dist/filter-bar.d.ts +27 -0
  75. package/dist/filter-bar.js +310 -0
  76. package/dist/hooks/use-audio-recorder.js +12 -6
  77. package/dist/hooks/use-chat-composer.d.ts +21 -7
  78. package/dist/hooks/use-chat-composer.js +32 -5
  79. package/dist/hooks/use-chat-message.d.ts +28 -2
  80. package/dist/hooks/use-chat-message.js +41 -10
  81. package/dist/hooks/use-chat-thread-scroll.js +43 -7
  82. package/dist/hooks/use-color-area.d.ts +3 -3
  83. package/dist/hooks/use-color-area.js +13 -12
  84. package/dist/hooks/use-copy-to-clipboard.d.ts +2 -1
  85. package/dist/hooks/use-copy-to-clipboard.js +20 -20
  86. package/dist/hooks/use-dropzone.d.ts +7 -4
  87. package/dist/hooks/use-dropzone.js +34 -3
  88. package/dist/hooks/use-dynamic-notification.d.ts +6 -2
  89. package/dist/hooks/use-dynamic-notification.js +26 -10
  90. package/dist/hooks/use-mobile.d.ts +3 -2
  91. package/dist/hooks/use-mobile.js +8 -4
  92. package/dist/hooks/use-textarea-trigger-menu.js +2 -1
  93. package/dist/hooks/use-trigger-menu.d.ts +54 -0
  94. package/dist/hooks/use-trigger-menu.js +102 -47
  95. package/dist/hooks/use-user-ask.d.ts +2 -0
  96. package/dist/hooks/use-user-ask.js +35 -41
  97. package/dist/inline-attachment.d.ts +6 -2
  98. package/dist/inline-attachment.js +44 -29
  99. package/dist/inline-citation.d.ts +12 -5
  100. package/dist/inline-citation.js +25 -16
  101. package/dist/knob-contracts/audio-recorder-knobs.d.ts +1 -1
  102. package/dist/knob-contracts/audio-recorder-knobs.js +2 -1
  103. package/dist/knob-contracts/audio-visualizer-knobs.d.ts +1 -1
  104. package/dist/knob-contracts/audio-visualizer-knobs.js +2 -1
  105. package/dist/knob-contracts/avatar-knobs.d.ts +1 -1
  106. package/dist/knob-contracts/avatar-knobs.js +6 -1
  107. package/dist/knob-contracts/badge-knobs.d.ts +1 -1
  108. package/dist/knob-contracts/badge-knobs.js +2 -1
  109. package/dist/knob-contracts/breadcrumb-knobs.d.ts +4 -0
  110. package/dist/knob-contracts/breadcrumb-knobs.js +8 -0
  111. package/dist/knob-contracts/button-knobs.d.ts +1 -1
  112. package/dist/knob-contracts/button-knobs.js +1 -0
  113. package/dist/knob-contracts/chat-layout-knobs.d.ts +1 -1
  114. package/dist/knob-contracts/chat-layout-knobs.js +2 -1
  115. package/dist/knob-contracts/chat-message-knobs.d.ts +1 -1
  116. package/dist/knob-contracts/chat-message-knobs.js +8 -1
  117. package/dist/knob-contracts/choice-knobs.d.ts +1 -1
  118. package/dist/knob-contracts/choice-knobs.js +1 -0
  119. package/dist/knob-contracts/code-diff-knobs.d.ts +1 -1
  120. package/dist/knob-contracts/code-diff-knobs.js +2 -0
  121. package/dist/knob-contracts/code-knobs.d.ts +1 -1
  122. package/dist/knob-contracts/code-knobs.js +2 -1
  123. package/dist/knob-contracts/collapsible-knobs.d.ts +1 -1
  124. package/dist/knob-contracts/collapsible-knobs.js +1 -1
  125. package/dist/knob-contracts/dynamic-notification-knobs.d.ts +1 -1
  126. package/dist/knob-contracts/dynamic-notification-knobs.js +2 -0
  127. package/dist/knob-contracts/emoji-picker-knobs.d.ts +4 -0
  128. package/dist/knob-contracts/emoji-picker-knobs.js +10 -0
  129. package/dist/knob-contracts/field-knobs.d.ts +1 -1
  130. package/dist/knob-contracts/field-knobs.js +5 -1
  131. package/dist/knob-contracts/filter-bar-knobs.d.ts +4 -0
  132. package/dist/knob-contracts/filter-bar-knobs.js +15 -0
  133. package/dist/knob-contracts/infinite-canvas-knobs.d.ts +1 -1
  134. package/dist/knob-contracts/infinite-canvas-knobs.js +3 -0
  135. package/dist/knob-contracts/markdown-knobs.d.ts +1 -1
  136. package/dist/knob-contracts/markdown-knobs.js +3 -1
  137. package/dist/knob-contracts/page-layout-knobs.d.ts +1 -1
  138. package/dist/knob-contracts/page-layout-knobs.js +4 -1
  139. package/dist/knob-contracts/popup-knobs.d.ts +1 -1
  140. package/dist/knob-contracts/popup-knobs.js +28 -0
  141. package/dist/knob-contracts/range-knobs.d.ts +1 -1
  142. package/dist/knob-contracts/range-knobs.js +1 -0
  143. package/dist/knob-contracts/rich-tooltip-knobs.d.ts +1 -1
  144. package/dist/knob-contracts/rich-tooltip-knobs.js +2 -1
  145. package/dist/knob-contracts/sidebar-knobs.d.ts +1 -1
  146. package/dist/knob-contracts/sidebar-knobs.js +27 -2
  147. package/dist/knob-contracts/spinner-knobs.d.ts +1 -1
  148. package/dist/knob-contracts/spinner-knobs.js +1 -1
  149. package/dist/knob-contracts/stepper-knobs.d.ts +1 -1
  150. package/dist/knob-contracts/stepper-knobs.js +4 -1
  151. package/dist/knob-contracts/switch-knobs.d.ts +1 -1
  152. package/dist/knob-contracts/switch-knobs.js +5 -0
  153. package/dist/knob-contracts/table-of-contents-knobs.d.ts +1 -1
  154. package/dist/knob-contracts/table-of-contents-knobs.js +4 -5
  155. package/dist/knob-contracts/tabs-knobs.d.ts +1 -1
  156. package/dist/knob-contracts/tabs-knobs.js +1 -0
  157. package/dist/knob-contracts/tree-knobs.d.ts +1 -1
  158. package/dist/knob-contracts/tree-knobs.js +2 -1
  159. package/dist/lib/cn.js +0 -4
  160. package/dist/lib/contrast.d.ts +1 -0
  161. package/dist/lib/contrast.js +17 -5
  162. package/dist/lib/dropzone-validation.js +41 -28
  163. package/dist/lib/env-file.d.ts +1 -1
  164. package/dist/lib/env-file.js +5 -5
  165. package/dist/lib/motion.d.ts +4 -0
  166. package/dist/lib/motion.js +15 -0
  167. package/dist/lib/trigger-detect.js +6 -8
  168. package/dist/markdown-block.js +13 -8
  169. package/dist/popup-parts.d.ts +8 -0
  170. package/dist/popup-parts.js +43 -0
  171. package/dist/scripts/contrast-eval.js +5 -4
  172. package/dist/source-badge.js +3 -1
  173. package/dist/styles/code.css +0 -2
  174. package/dist/styles/effects.css +6 -32
  175. package/dist/styles/index.css +14 -8
  176. package/dist/styles/recipes/accordion.css +9 -6
  177. package/dist/styles/recipes/action-bar.css +0 -15
  178. package/dist/styles/recipes/activity.css +5 -11
  179. package/dist/styles/recipes/alert.css +4 -4
  180. package/dist/styles/recipes/audio-recorder.css +15 -3
  181. package/dist/styles/recipes/audio-visualizer.css +13 -2
  182. package/dist/styles/recipes/avatar.css +78 -1
  183. package/dist/styles/recipes/badge.css +14 -4
  184. package/dist/styles/recipes/breadcrumb.css +77 -0
  185. package/dist/styles/recipes/button-group.css +6 -8
  186. package/dist/styles/recipes/button-states.css +66 -0
  187. package/dist/styles/recipes/button.css +26 -85
  188. package/dist/styles/recipes/calendar.css +17 -23
  189. package/dist/styles/recipes/card.css +2 -2
  190. package/dist/styles/recipes/chat-composer-attachment.css +9 -3
  191. package/dist/styles/recipes/chat-composer.css +21 -16
  192. package/dist/styles/recipes/chat-layout.css +64 -2
  193. package/dist/styles/recipes/chat-message-social.css +123 -0
  194. package/dist/styles/recipes/chat-message.css +157 -37
  195. package/dist/styles/recipes/choice.css +25 -21
  196. package/dist/styles/recipes/code-diff.css +51 -26
  197. package/dist/styles/recipes/code.css +44 -18
  198. package/dist/styles/recipes/collapsible.css +43 -1
  199. package/dist/styles/recipes/color-picker-details.css +3 -4
  200. package/dist/styles/recipes/color-picker-values.css +9 -8
  201. package/dist/styles/recipes/color-picker.css +23 -4
  202. package/dist/styles/recipes/context.css +3 -3
  203. package/dist/styles/recipes/dockable-panel.css +18 -7
  204. package/dist/styles/recipes/dropzone.css +7 -8
  205. package/dist/styles/recipes/dynamic-notification-input.css +8 -5
  206. package/dist/styles/recipes/dynamic-notification-motion.css +12 -21
  207. package/dist/styles/recipes/dynamic-notification.css +40 -26
  208. package/dist/styles/recipes/emoji-picker.css +132 -0
  209. package/dist/styles/recipes/empty.css +5 -4
  210. package/dist/styles/recipes/environment-variables.css +4 -15
  211. package/dist/styles/recipes/field-parts.css +89 -21
  212. package/dist/styles/recipes/field.css +83 -26
  213. package/dist/styles/recipes/filter-bar.css +161 -0
  214. package/dist/styles/recipes/gradient-editor.css +18 -7
  215. package/dist/styles/recipes/infinite-canvas.css +51 -4
  216. package/dist/styles/recipes/inline-attachment.css +9 -4
  217. package/dist/styles/recipes/inline-citation.css +10 -4
  218. package/dist/styles/recipes/item.css +23 -9
  219. package/dist/styles/recipes/markdown-block.css +5 -4
  220. package/dist/styles/recipes/markdown.css +68 -26
  221. package/dist/styles/recipes/morphing-panel.css +8 -8
  222. package/dist/styles/recipes/page-layout.css +36 -10
  223. package/dist/styles/recipes/pagination.css +5 -6
  224. package/dist/styles/recipes/phone-input.css +12 -8
  225. package/dist/styles/recipes/popup-controls.css +175 -26
  226. package/dist/styles/recipes/popup-drawer.css +35 -44
  227. package/dist/styles/recipes/popup-lists.css +139 -29
  228. package/dist/styles/recipes/popup-motion.css +4 -45
  229. package/dist/styles/recipes/popup-toast.css +55 -26
  230. package/dist/styles/recipes/popup.css +149 -153
  231. package/dist/styles/recipes/range.css +55 -19
  232. package/dist/styles/recipes/resizable.css +36 -7
  233. package/dist/styles/recipes/rich-tooltip.css +24 -34
  234. package/dist/styles/recipes/scroll-area.css +8 -1
  235. package/dist/styles/recipes/sidebar-menu.css +149 -34
  236. package/dist/styles/recipes/sidebar-parts.css +154 -0
  237. package/dist/styles/recipes/sidebar.css +187 -128
  238. package/dist/styles/recipes/source-badge.css +1 -1
  239. package/dist/styles/recipes/spinner.css +12 -1
  240. package/dist/styles/recipes/stepper.css +31 -13
  241. package/dist/styles/recipes/switch.css +68 -23
  242. package/dist/styles/recipes/table-of-contents.css +49 -41
  243. package/dist/styles/recipes/table.css +14 -10
  244. package/dist/styles/recipes/tabs.css +38 -12
  245. package/dist/styles/recipes/task-list.css +7 -14
  246. package/dist/styles/recipes/thread-rail.css +42 -19
  247. package/dist/styles/recipes/timeline.css +2 -0
  248. package/dist/styles/recipes/toolbar.css +27 -25
  249. package/dist/styles/recipes/track-highlight.css +12 -8
  250. package/dist/styles/recipes/transcript-divider.css +2 -2
  251. package/dist/styles/recipes/tree.css +31 -4
  252. package/dist/styles/recipes/user-ask-details.css +0 -1
  253. package/dist/styles/recipes/user-ask.css +4 -4
  254. package/dist/styles/theme.css +287 -107
  255. package/dist/task-list.d.ts +4 -1
  256. package/dist/task-list.js +24 -8
  257. package/dist/thread-rail.d.ts +1 -1
  258. package/dist/thread-rail.js +61 -19
  259. package/dist/transcript-divider.js +2 -1
  260. package/dist/ui/alert.d.ts +3 -1
  261. package/dist/ui/alert.js +14 -8
  262. package/dist/ui/autocomplete.js +7 -1
  263. package/dist/ui/avatar.d.ts +8 -0
  264. package/dist/ui/avatar.js +23 -3
  265. package/dist/ui/badge.js +1 -1
  266. package/dist/ui/breadcrumb.d.ts +27 -0
  267. package/dist/ui/breadcrumb.js +88 -0
  268. package/dist/ui/button.d.ts +2 -1
  269. package/dist/ui/button.js +1 -1
  270. package/dist/ui/calendar.js +2 -2
  271. package/dist/ui/card.d.ts +3 -1
  272. package/dist/ui/card.js +12 -7
  273. package/dist/ui/checkbox-group.js +1 -1
  274. package/dist/ui/checkbox.d.ts +2 -0
  275. package/dist/ui/code-diff.d.ts +1 -1
  276. package/dist/ui/code-diff.js +71 -27
  277. package/dist/ui/code.d.ts +5 -3
  278. package/dist/ui/code.js +27 -28
  279. package/dist/ui/color-picker.d.ts +5 -2
  280. package/dist/ui/color-picker.js +84 -36
  281. package/dist/ui/combobox-disabled-selection.d.ts +1 -2
  282. package/dist/ui/combobox-disabled-selection.js +7 -8
  283. package/dist/ui/combobox.d.ts +5 -23
  284. package/dist/ui/combobox.js +36 -16
  285. package/dist/ui/command.d.ts +8 -2
  286. package/dist/ui/command.js +39 -15
  287. package/dist/ui/context-menu.js +3 -0
  288. package/dist/ui/dialog.d.ts +2 -1
  289. package/dist/ui/dialog.js +3 -22
  290. package/dist/ui/dockable-panel-geometry.d.ts +1 -0
  291. package/dist/ui/dockable-panel-geometry.js +7 -1
  292. package/dist/ui/dockable-panel.d.ts +9 -6
  293. package/dist/ui/dockable-panel.js +81 -33
  294. package/dist/ui/drawer.d.ts +7 -4
  295. package/dist/ui/drawer.js +35 -22
  296. package/dist/ui/dropdown-menu.js +4 -3
  297. package/dist/ui/dropzone.d.ts +5 -3
  298. package/dist/ui/dropzone.js +78 -17
  299. package/dist/ui/emoji-picker.d.ts +18 -0
  300. package/dist/ui/emoji-picker.js +136 -0
  301. package/dist/ui/empty.d.ts +3 -1
  302. package/dist/ui/empty.js +12 -7
  303. package/dist/ui/field.js +1 -1
  304. package/dist/ui/gradient-editor.d.ts +1 -1
  305. package/dist/ui/gradient-editor.js +37 -21
  306. package/dist/ui/infinite-canvas.d.ts +13 -1
  307. package/dist/ui/infinite-canvas.js +139 -20
  308. package/dist/ui/input-group.d.ts +2 -4
  309. package/dist/ui/input-group.js +13 -14
  310. package/dist/ui/input-otp.d.ts +1 -1
  311. package/dist/ui/input-otp.js +32 -15
  312. package/dist/ui/input.js +11 -2
  313. package/dist/ui/item.d.ts +2 -1
  314. package/dist/ui/item.js +11 -7
  315. package/dist/ui/live-status.d.ts +7 -0
  316. package/dist/ui/live-status.js +17 -0
  317. package/dist/ui/markdown-elements.d.ts +6 -0
  318. package/dist/ui/markdown-elements.js +42 -9
  319. package/dist/ui/menubar.js +2 -2
  320. package/dist/ui/morphing-panel.js +2 -1
  321. package/dist/ui/native-select.d.ts +1 -1
  322. package/dist/ui/native-select.js +24 -11
  323. package/dist/ui/number-field.d.ts +1 -1
  324. package/dist/ui/number-field.js +13 -2
  325. package/dist/ui/page-layout.d.ts +2 -2
  326. package/dist/ui/page-layout.js +2 -4
  327. package/dist/ui/pagination.d.ts +7 -5
  328. package/dist/ui/pagination.js +19 -13
  329. package/dist/ui/phone-input.d.ts +1 -0
  330. package/dist/ui/phone-input.js +56 -58
  331. package/dist/ui/radio-group.d.ts +3 -0
  332. package/dist/ui/radio-group.js +11 -1
  333. package/dist/ui/resizable.d.ts +20 -2
  334. package/dist/ui/resizable.js +130 -8
  335. package/dist/ui/responsive-dialog.d.ts +1 -1
  336. package/dist/ui/responsive-dialog.js +9 -23
  337. package/dist/ui/rich-tooltip.d.ts +10 -4
  338. package/dist/ui/rich-tooltip.js +81 -33
  339. package/dist/ui/scroll-area.d.ts +4 -1
  340. package/dist/ui/scroll-area.js +44 -28
  341. package/dist/ui/select.d.ts +2 -1
  342. package/dist/ui/select.js +57 -32
  343. package/dist/ui/sidebar-menu.d.ts +5 -1
  344. package/dist/ui/sidebar-menu.js +31 -33
  345. package/dist/ui/sidebar-provider.d.ts +10 -1
  346. package/dist/ui/sidebar-provider.js +38 -13
  347. package/dist/ui/sidebar-resize-rail.js +7 -3
  348. package/dist/ui/sidebar.d.ts +11 -6
  349. package/dist/ui/sidebar.js +46 -23
  350. package/dist/ui/slider.js +31 -22
  351. package/dist/ui/spinner.d.ts +3 -2
  352. package/dist/ui/spinner.js +3 -2
  353. package/dist/ui/stepper.d.ts +8 -1
  354. package/dist/ui/stepper.js +74 -25
  355. package/dist/ui/switch.d.ts +1 -0
  356. package/dist/ui/table-of-contents.d.ts +5 -4
  357. package/dist/ui/table-of-contents.js +143 -52
  358. package/dist/ui/table.js +15 -9
  359. package/dist/ui/textarea.d.ts +1 -1
  360. package/dist/ui/textarea.js +20 -9
  361. package/dist/ui/timeline.d.ts +3 -1
  362. package/dist/ui/timeline.js +17 -9
  363. package/dist/ui/toast.d.ts +11 -5
  364. package/dist/ui/toast.js +100 -54
  365. package/dist/ui/toggle.d.ts +1 -1
  366. package/dist/ui/toggle.js +2 -1
  367. package/dist/ui/toolbar.d.ts +3 -2
  368. package/dist/ui/toolbar.js +4 -2
  369. package/dist/ui/tooltip.js +3 -20
  370. package/dist/ui/tree.js +120 -80
  371. package/dist/ui/trigger-menu.js +7 -2
  372. package/dist/user-ask.d.ts +10 -5
  373. package/dist/user-ask.js +31 -11
  374. package/package.json +5 -1
  375. package/dist/hooks/use-keyboard-navigation.d.ts +0 -3
  376. package/dist/hooks/use-keyboard-navigation.js +0 -22
@@ -4,18 +4,16 @@
4
4
  inline-size: calc(var(--spacing) * 4);
5
5
  block-size: calc(var(--spacing) * 4);
6
6
  --cui-choice-radius: var(--radius-sm);
7
- --cui-choice-shadow: var(--shadow-sm);
8
- --cui-choice-border-color: var(--border);
7
+ --cui-choice-shadow: inset 0 0 0 var(--cui-choice-border-width) var(--cui-choice-border-color), var(--shadow-sm);
8
+ --cui-choice-border-color: var(--control-boundary);
9
+ --cui-choice-border-width: var(--control-rim-width);
9
10
  --cui-choice-checked-background: var(--primary);
10
11
  --cui-choice-checked-border-color: var(--primary);
11
- --_choice-background: oklch(from var(--card) l c h / 0.72);
12
+ --_choice-background: var(--control-fill);
12
13
  border-radius: var(--cui-choice-radius);
13
14
  background: var(--_choice-background);
14
- box-shadow:
15
- inset 0 0 0 1px var(--cui-choice-border-color),
16
- var(--cui-choice-shadow);
15
+ box-shadow: var(--cui-choice-shadow);
17
16
  color: currentColor;
18
- outline: none;
19
17
  transition-property: background-color, color;
20
18
  transition-duration: var(--duration-fast);
21
19
  transition-timing-function: var(--ease-standard);
@@ -23,12 +21,17 @@
23
21
 
24
22
  :where([data-control-family="choice"][data-choice-kind="radio-group"][data-slot="item"]) {
25
23
  --cui-choice-radius: 9999px;
26
- outline-style: none;
27
24
  }
28
25
 
29
- :where([data-control-family="choice"][data-choice-kind="checkbox"][data-slot="root"]:hover),
30
- :where([data-control-family="choice"][data-choice-kind="radio-group"][data-slot="item"]:hover) {
31
- --cui-choice-border-color: oklch(from var(--foreground) l c h / 0.25);
26
+ @media (hover: hover) {
27
+ :where(
28
+ [data-control-family="choice"]:is(
29
+ [data-choice-kind="checkbox"][data-slot="root"],
30
+ [data-choice-kind="radio-group"][data-slot="item"]
31
+ ):hover:not([data-disabled], [data-readonly])
32
+ ) {
33
+ --cui-choice-border-color: color-mix(in oklch, var(--control-boundary), var(--foreground) 35%);
34
+ }
32
35
  }
33
36
 
34
37
  :where([data-control-family="choice"][data-choice-kind="checkbox"][data-slot="root"]:is([data-checked], [data-indeterminate])),
@@ -40,15 +43,14 @@
40
43
 
41
44
  :where([data-control-family="choice"][data-choice-kind="checkbox"][data-slot="root"][data-disabled]),
42
45
  :where([data-control-family="choice"][data-choice-kind="radio-group"][data-slot="item"][data-disabled]) {
43
- opacity: 0.5;
46
+ opacity: var(--disabled-opacity);
44
47
  }
45
48
 
46
49
  :where([data-control-family="choice"][data-choice-kind="checkbox"][data-slot="root"][data-invalid]),
47
50
  :where([data-control-family="choice"][data-choice-kind="radio-group"][data-slot="item"][data-invalid]) {
48
51
  --cui-choice-border-color: var(--destructive);
49
52
  box-shadow:
50
- inset 0 0 0 1px var(--cui-choice-border-color),
51
- var(--shadow-sm),
53
+ var(--cui-choice-shadow),
52
54
  0 0 0 1px var(--destructive);
53
55
  }
54
56
 
@@ -79,19 +81,15 @@
79
81
  color: currentcolor;
80
82
  }
81
83
 
82
- :where([data-control-family="choice"][data-choice-kind="checkbox"][data-slot="root"]) {
83
- outline-style: none;
84
- }
85
-
86
84
  @media (pointer: coarse) {
87
85
  :where([data-control-family="choice"][data-choice-kind="checkbox"][data-slot="root"])::after,
88
86
  :where([data-control-family="choice"][data-choice-kind="radio-group"][data-slot="item"])::after {
89
87
  content: "";
90
88
  position: absolute;
91
- inset: 50% 50%;
89
+ inset: 50%;
92
90
  translate: -50% -50%;
93
- inline-size: max(100%, 44px);
94
- block-size: max(100%, 44px);
91
+ inline-size: max(100%, var(--touch-target));
92
+ block-size: max(100%, var(--touch-target));
95
93
  }
96
94
  }
97
95
  }
@@ -108,6 +106,12 @@
108
106
  initial-value: transparent;
109
107
  }
110
108
 
109
+ @property --cui-choice-border-width {
110
+ syntax: "<length>";
111
+ inherits: true;
112
+ initial-value: 1px;
113
+ }
114
+
111
115
  @property --cui-choice-checked-background {
112
116
  syntax: "<color>";
113
117
  inherits: true;
@@ -1,11 +1,17 @@
1
1
  @layer components {
2
2
  :where([data-control-family="code-diff"][data-slot="root"]) {
3
- margin-block: calc(var(--spacing) * 4);
4
3
  --cui-code-diff-background: var(--background);
5
4
  --cui-code-diff-border-color: var(--border);
6
- --cui-code-diff-border-width: 1px;
7
- --cui-code-diff-radius: var(--radius-panel);
5
+ --cui-code-diff-border-width: var(--control-rim-width);
6
+ --_code-corner-inset: calc(var(--spacing) * 1.5);
7
+ --cui-code-diff-radius: min(
8
+ var(--radius-panel),
9
+ calc(var(--control-h-xs) / 2 + var(--cui-code-diff-border-width) + var(--_code-corner-inset))
10
+ );
11
+ --_code-nest-radius: max(0px, calc(var(--cui-code-diff-radius) - var(--cui-code-diff-border-width) - var(--_code-corner-inset)));
8
12
  --cui-code-diff-shadow: var(--shadow-sm);
13
+ --cui-code-diff-header-background: var(--diff-gutter-bg);
14
+ --cui-code-diff-header-border-color: var(--border);
9
15
  --cui-code-diff-foreground: var(--code-foreground);
10
16
  --cui-code-diff-add-background: var(--diff-add-line);
11
17
  --cui-code-diff-del-background: var(--diff-del-line);
@@ -22,19 +28,17 @@
22
28
  }
23
29
 
24
30
  :where([data-control-family="code-diff"]:is([data-slot="header"], [data-slot="file-header"])) {
25
- gap: calc(var(--spacing) * 3);
26
- padding-block: calc(var(--spacing) * 1.5);
27
- padding-inline: calc(var(--spacing) * 3);
28
- border-bottom: 1px solid var(--border);
29
- background: var(--diff-gutter-bg);
30
- }
31
-
32
- :where([data-control-family="code-diff"][data-slot="header"]) {
33
- min-block-size: calc(var(--spacing) * 10);
31
+ border-block-end-color: var(--cui-code-diff-header-border-color);
32
+ background: var(--cui-code-diff-header-background);
34
33
  }
35
34
 
36
35
  :where([data-control-family="code-diff"][data-slot="file-header"]) {
37
36
  min-block-size: calc(var(--spacing) * 9);
37
+ gap: calc(var(--spacing) * 3);
38
+ padding-block: calc(var(--spacing) * 1.5);
39
+ padding-inline: calc(var(--spacing) * 3);
40
+ border-block-end-width: 1px;
41
+ border-block-end-style: solid;
38
42
  }
39
43
 
40
44
  :where([data-control-family="code-diff"][data-slot="actions"]) {
@@ -73,16 +77,16 @@
73
77
  }
74
78
 
75
79
  :where([data-control-family="code-diff"][data-slot="line"][data-indicators="bars"][data-line-type="add"]) {
76
- border-left: 2px solid var(--diff-add-fg);
80
+ border-inline-start: 2px solid var(--diff-add-fg);
77
81
  }
78
82
 
79
83
  :where([data-control-family="code-diff"][data-slot="line"][data-indicators="bars"][data-line-type="del"]) {
80
- border-left: 2px solid var(--diff-del-fg);
84
+ border-inline-start: 2px solid var(--diff-del-fg);
81
85
  }
82
86
 
83
87
  :where([data-control-family="code-diff"][data-slot="line"][data-side="left"]),
84
88
  :where([data-control-family="code-diff"][data-slot="empty-half"][data-side="left"]) {
85
- border-right: 1px solid oklch(from var(--border) l c h / 0.6);
89
+ border-inline-end: 1px solid oklch(from var(--border) l c h / 0.6);
86
90
  }
87
91
 
88
92
  :where([data-control-family="code-diff"][data-slot="empty-half"]) {
@@ -102,13 +106,8 @@
102
106
  padding-inline: calc(var(--spacing) * 1.5);
103
107
  }
104
108
 
105
- :where([data-control-family="code-diff"][data-slot="gutter"]) {
106
- min-inline-size: calc(var(--spacing) * 11);
107
- padding-inline: calc(var(--spacing) * 2);
108
- color: var(--diff-context-fg);
109
- opacity: 0.7;
110
- text-align: right;
111
- font-variant-numeric: tabular-nums;
109
+ :where([data-control-family="code-diff"][data-slot="revealed-row"]) {
110
+ --focus-ring-offset: calc(var(--focus-ring-width) * -1);
112
111
  }
113
112
 
114
113
  :where([data-control-family="code-diff"][data-slot="gutter"][data-line-type="add"]) {
@@ -151,18 +150,32 @@
151
150
  }
152
151
 
153
152
  :where([data-control-family="code-diff"][data-slot="expand-button"]) {
153
+ position: relative;
154
+ min-block-size: var(--target-min);
154
155
  padding-inline: calc(var(--spacing) * 1.5);
155
156
  padding-block: calc(var(--spacing) * 0.5);
156
157
  border-radius: var(--cui-code-diff-expand-button-radius);
157
158
  background: var(--cui-code-diff-expand-button-background);
158
159
  box-shadow: var(--cui-code-diff-expand-button-shadow);
159
160
  color: var(--cui-code-diff-expand-button-foreground);
160
- outline-style: none;
161
161
  }
162
162
 
163
- :where([data-control-family="code-diff"][data-slot="expand-button"]:hover) {
164
- background: var(--cui-code-diff-expand-button-hover-background);
165
- color: var(--cui-code-diff-expand-button-hover-foreground);
163
+ @media (hover: hover) {
164
+ :where([data-control-family="code-diff"][data-slot="expand-button"]:hover) {
165
+ background: var(--cui-code-diff-expand-button-hover-background);
166
+ color: var(--cui-code-diff-expand-button-hover-foreground);
167
+ }
168
+ }
169
+
170
+ @media (pointer: coarse) {
171
+ :where([data-control-family="code-diff"][data-slot="expand-button"])::after {
172
+ content: "";
173
+ position: absolute;
174
+ inset: 50% 50%;
175
+ translate: -50% -50%;
176
+ inline-size: max(100%, var(--touch-target));
177
+ block-size: max(100%, var(--touch-target));
178
+ }
166
179
  }
167
180
 
168
181
  :where([data-control-family="code-diff"][data-slot="title"]) {
@@ -210,6 +223,18 @@
210
223
  initial-value: 0px;
211
224
  }
212
225
 
226
+ @property --cui-code-diff-header-background {
227
+ syntax: "<color>";
228
+ inherits: true;
229
+ initial-value: transparent;
230
+ }
231
+
232
+ @property --cui-code-diff-header-border-color {
233
+ syntax: "<color>";
234
+ inherits: true;
235
+ initial-value: transparent;
236
+ }
237
+
213
238
  @property --cui-code-diff-foreground {
214
239
  syntax: "<color>";
215
240
  inherits: true;
@@ -1,11 +1,13 @@
1
1
  @layer components {
2
2
  :where([data-control-family="code"][data-slot="root"]) {
3
- margin-block: calc(var(--spacing) * 4);
4
3
  --cui-code-background: var(--background);
5
4
  --cui-code-border-color: var(--control-rim);
6
- --cui-code-border-width: 1px;
7
- --cui-code-radius: var(--radius-panel);
5
+ --cui-code-border-width: var(--control-rim-width);
6
+ --_code-corner-inset: calc(var(--spacing) * 1.5);
7
+ --cui-code-radius: min(var(--radius-panel), calc(var(--control-h-xs) / 2 + var(--cui-code-border-width) + var(--_code-corner-inset)));
8
+ --_code-nest-radius: max(0px, calc(var(--cui-code-radius) - var(--cui-code-border-width) - var(--_code-corner-inset)));
8
9
  --cui-code-shadow: var(--shadow-sm);
10
+ --cui-code-header-background: transparent;
9
11
  --cui-code-text-foreground: var(--code-foreground);
10
12
  --cui-code-title-foreground: var(--muted-foreground);
11
13
  --cui-code-line-highlight-background: oklch(from var(--primary) l c h / 0.08);
@@ -19,19 +21,37 @@
19
21
  }
20
22
 
21
23
  :where([data-control-family="code"][data-slot="root"][data-chrome="embedded"]) {
22
- margin-block: 0;
23
24
  border: 0;
24
25
  border-radius: 0;
25
26
  background: transparent;
26
27
  box-shadow: none;
27
28
  }
28
29
 
29
- :where([data-control-family="code"][data-slot="header"]) {
30
+ :where(:is([data-control-family="code"], [data-control-family="code-diff"])[data-slot="header"]) {
30
31
  min-block-size: calc(var(--spacing) * 10);
31
32
  gap: calc(var(--spacing) * 3);
32
- padding-block: calc(var(--spacing) * 1.5);
33
- padding-inline: calc(var(--spacing) * 3);
34
- border-bottom: 1px solid var(--border);
33
+ padding-block: var(--_code-corner-inset);
34
+ padding-inline: calc(var(--spacing) * 3) var(--_code-corner-inset);
35
+ border-block-end-width: 1px;
36
+ border-block-end-style: solid;
37
+ }
38
+
39
+ :where([data-control-family="code"][data-slot="header"]) {
40
+ border-block-end-color: var(--border);
41
+ background: var(--cui-code-header-background);
42
+ }
43
+
44
+ :where(
45
+ :is([data-control-family="code"][data-slot="floating-frame"], [data-control-family="code-diff"][data-slot="root"])
46
+ > [data-control-family="button"][data-code-floating="true"]
47
+ ) {
48
+ --nest-radius: var(--_code-nest-radius);
49
+ inset-block-start: var(--_code-corner-inset);
50
+ inset-inline-end: var(--_code-corner-inset);
51
+ }
52
+
53
+ :where(:is([data-control-family="code"], [data-control-family="code-diff"])[data-slot="actions"]) {
54
+ --nest-radius: var(--_code-nest-radius);
35
55
  }
36
56
 
37
57
  :where([data-control-family="code"][data-slot="actions"]) {
@@ -101,36 +121,36 @@
101
121
  padding: 0;
102
122
  }
103
123
 
104
- :where([data-control-family="code"][data-slot="gutter"]) {
105
- min-inline-size: calc(var(--spacing) * 14);
106
- padding-inline: calc(var(--spacing) * 4) calc(var(--spacing) * 3);
107
- color: oklch(from var(--muted-foreground) l c h / 0.6);
124
+ :where(:is([data-control-family="code"], [data-control-family="code-diff"])[data-slot="gutter"]) {
125
+ min-inline-size: calc(var(--spacing) * 11);
126
+ padding-inline: calc(var(--spacing) * 3) calc(var(--spacing) * 2);
127
+ color: oklch(from var(--muted-foreground) l c h / 0.7);
108
128
  text-align: right;
109
129
  font-variant-numeric: tabular-nums;
110
130
  }
111
131
 
112
132
  @media (pointer: coarse) {
113
133
  :where([data-control-family="code"][data-slot="editor"]) {
114
- font-size: max(16px, var(--text-label));
134
+ font-size: max(var(--text-input-min), var(--text-label));
115
135
  }
116
136
 
117
- :where([data-control-family="code"][data-slot="header"]) {
118
- min-block-size: 44px;
137
+ :where(:is([data-control-family="code"], [data-control-family="code-diff"])[data-slot="header"]) {
138
+ min-block-size: var(--touch-target);
119
139
  }
120
140
 
121
- :where([data-control-family="code"][data-slot="actions"] [data-control-family="button"]),
141
+ :where(:is([data-control-family="code"], [data-control-family="code-diff"])[data-slot="actions"] [data-control-family="button"]),
122
142
  :where([data-control-family="button"][data-code-copy="true"]) {
123
143
  position: relative;
124
144
  }
125
145
 
126
- :where([data-control-family="code"][data-slot="actions"] [data-control-family="button"])::after,
146
+ :where(:is([data-control-family="code"], [data-control-family="code-diff"])[data-slot="actions"] [data-control-family="button"])::after,
127
147
  :where([data-control-family="button"][data-code-copy="true"])::after {
128
148
  content: "";
129
149
  position: absolute;
130
150
  inset: 50% 50%;
131
151
  translate: -50% -50%;
132
152
  inline-size: 100%;
133
- block-size: max(100%, 44px);
153
+ block-size: max(100%, var(--touch-target));
134
154
  }
135
155
  }
136
156
  }
@@ -181,3 +201,9 @@
181
201
  inherits: true;
182
202
  initial-value: transparent;
183
203
  }
204
+
205
+ @property --cui-code-header-background {
206
+ syntax: "<color>";
207
+ inherits: true;
208
+ initial-value: transparent;
209
+ }
@@ -1,9 +1,39 @@
1
1
  @layer components {
2
+ :where([data-control-family="collapsible"][data-slot="root"]) {
3
+ --cui-collapsible-trigger-radius: var(--radius-control);
4
+ --cui-collapsible-trigger-hover-background: var(--hover-fill);
5
+ }
6
+
2
7
  :where([data-control-family="collapsible"][data-slot="trigger"]) {
3
- outline: none;
8
+ display: flex;
9
+ width: 100%;
10
+ min-height: var(--control-h-sm);
11
+ align-items: center;
12
+ gap: calc(var(--spacing) * 2);
13
+ border-radius: var(--cui-collapsible-trigger-radius);
14
+ padding-inline: calc(var(--spacing) * 2);
15
+ color: var(--foreground);
16
+ font-size: var(--text-label);
17
+ font-weight: var(--font-weight-medium);
18
+ text-align: start;
19
+ transition: background-color var(--duration-fast) var(--ease-standard);
20
+ }
21
+
22
+ :where([data-control-family="collapsible"][data-slot="trigger"]:focus-visible) {
23
+ background: var(--cui-collapsible-trigger-hover-background);
24
+ }
25
+
26
+ @media (hover: hover) {
27
+ :where([data-control-family="collapsible"][data-slot="trigger"]:not(:disabled, [data-disabled]):hover) {
28
+ background: var(--cui-collapsible-trigger-hover-background);
29
+ }
4
30
  }
5
31
 
6
32
  :where([data-control-family="collapsible"][data-slot="trigger"] > svg) {
33
+ inline-size: 1rem;
34
+ block-size: 1rem;
35
+ flex-shrink: 0;
36
+ color: var(--muted-foreground);
7
37
  transition: rotate var(--duration-base) var(--ease-standard);
8
38
  }
9
39
 
@@ -22,3 +52,15 @@
22
52
  rotate: 90deg;
23
53
  }
24
54
  }
55
+
56
+ @property --cui-collapsible-trigger-radius {
57
+ syntax: "<length-percentage>";
58
+ inherits: true;
59
+ initial-value: 0px;
60
+ }
61
+
62
+ @property --cui-collapsible-trigger-hover-background {
63
+ syntax: "<color>";
64
+ inherits: true;
65
+ initial-value: transparent;
66
+ }
@@ -5,7 +5,6 @@
5
5
 
6
6
  :where([data-control-family="color-picker"][data-slot="trigger"]) {
7
7
  border-radius: var(--cui-color-picker-trigger-radius);
8
- outline-style: none;
9
8
  transition-property: transform, translate, scale, rotate;
10
9
  transition-timing-function: var(--ease-standard);
11
10
  transition-duration: var(--duration-fast);
@@ -13,15 +12,15 @@
13
12
  }
14
13
 
15
14
  :where([data-control-family="color-picker"][data-slot="trigger"]:disabled) {
16
- opacity: 50%;
15
+ opacity: var(--disabled-opacity);
17
16
  }
18
17
 
19
18
  :where([data-control-family="color-picker"][data-slot="area"][data-disabled="true"]) {
20
- opacity: 50%;
19
+ opacity: var(--disabled-opacity);
21
20
  }
22
21
 
23
22
  :where([data-control-family="color-picker"][data-slot="wheel"][data-disabled="true"]) {
24
- opacity: 50%;
23
+ opacity: var(--disabled-opacity);
25
24
  }
26
25
 
27
26
  :where([data-control-family="color-picker"][data-slot="area-saturation"]) {
@@ -30,7 +30,7 @@
30
30
  }
31
31
 
32
32
  @media (hover: hover) {
33
- :where([data-control-family="color-picker"][data-slot="contrast-fix"]:hover) {
33
+ :where([data-control-family="color-picker"][data-slot="contrast-fix"]:hover:not(:disabled)) {
34
34
  background-color: color-mix(in oklab, var(--foreground) 6%, transparent);
35
35
  }
36
36
  }
@@ -52,11 +52,10 @@
52
52
  border-color: var(--_color-picker-swatch-add-border-color);
53
53
  --_color-picker-swatch-add-foreground: var(--muted-foreground);
54
54
  color: var(--_color-picker-swatch-add-foreground);
55
- outline-style: none;
56
55
  }
57
56
 
58
57
  @media (hover: hover) {
59
- :where([data-control-family="color-picker"][data-slot="swatch-add"]:hover) {
58
+ :where([data-control-family="color-picker"][data-slot="swatch-add"]:hover:not(:disabled)) {
60
59
  --_color-picker-swatch-add-border-color: color-mix(in oklab, var(--foreground) 40%, transparent);
61
60
  border-color: var(--_color-picker-swatch-add-border-color);
62
61
  --_color-picker-swatch-add-foreground: var(--foreground);
@@ -66,9 +65,7 @@
66
65
 
67
66
  :where([data-control-family="color-picker"][data-slot="swatch"]) {
68
67
  border-radius: var(--cui-color-picker-swatch-radius);
69
- outline-style: none;
70
- transition-property:
71
- color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
68
+ transition-property: box-shadow, scale;
72
69
  transition-timing-function: var(--ease-standard);
73
70
  transition-duration: var(--duration-fast);
74
71
  --_color-picker-swatch-shadow: inset 0 0 0 1px color-mix(in oklab, var(--border) 60%, transparent);
@@ -80,6 +77,10 @@
80
77
  box-shadow: var(--_color-picker-swatch-shadow);
81
78
  }
82
79
 
80
+ :where([data-control-family="color-picker"]:is([data-slot="swatch"], [data-slot="swatch-add"], [data-slot="contrast-fix"]):disabled) {
81
+ opacity: var(--disabled-opacity);
82
+ }
83
+
83
84
  :where([data-control-family="color-picker"][data-slot="swatches-label"]) {
84
85
  font-size: var(--text-micro);
85
86
  color: var(--muted-foreground);
@@ -94,9 +95,9 @@
94
95
  text-align: center;
95
96
  }
96
97
 
97
- :where([data-control-family="color-picker"][data-slot="input"]) {
98
+ :where([data-control-family="color-picker"][data-slot="input"] > [data-control-family="field"]) {
99
+ --cui-field-font-size: var(--text-caption);
98
100
  font-family: var(--font-mono);
99
- font-size: var(--text-caption);
100
101
  }
101
102
  }
102
103
 
@@ -4,10 +4,20 @@
4
4
  block-size: calc(var(--spacing) * 8);
5
5
  }
6
6
 
7
+ :where(
8
+ [data-control-family="field"][data-field-kind="input-group"][data-slot="addon"]
9
+ > [data-control-family="color-picker"][data-slot="trigger"]
10
+ ) {
11
+ inline-size: calc(var(--cui-field-height) * 0.5);
12
+ block-size: calc(var(--cui-field-height) * 0.5);
13
+ }
14
+
7
15
  :where([data-control-family="popup"][data-popup-kind="color-picker"][data-popup-part="surface"]) {
16
+ --_color-picker-surface-padding: calc(var(--spacing) * 3);
17
+ --_color-picker-area-radius-cap: max(var(--radius-sm), calc(var(--cui-popup-radius) - var(--_color-picker-surface-padding)));
8
18
  inline-size: calc(var(--spacing) * 64);
9
19
  gap: calc(var(--spacing) * 3);
10
- padding: calc(var(--spacing) * 3);
20
+ padding: var(--_color-picker-surface-padding);
11
21
  }
12
22
 
13
23
  :where([data-control-family="color-picker"][data-slot="hue-track"]),
@@ -60,7 +70,6 @@
60
70
  :where([data-control-family="color-picker"][data-slot="hue"]),
61
71
  :where([data-control-family="color-picker"][data-slot="alpha"]) {
62
72
  block-size: calc(var(--spacing) * 4);
63
- --_color-picker-slider-thumb-outline: none;
64
73
  --_color-picker-slider-thumb-scale: 1;
65
74
  --_color-picker-slider-thumb-transition-property: scale;
66
75
  }
@@ -73,7 +82,6 @@
73
82
  border-color: var(--color-white);
74
83
  background: var(--cui-color-picker-slider-thumb-background);
75
84
  box-shadow: 0 0 0 1px oklch(from var(--foreground) l c h / 0.35);
76
- outline-style: var(--_color-picker-slider-thumb-outline);
77
85
  transition-property: var(--_color-picker-slider-thumb-transition-property);
78
86
  transition-duration: var(--duration-fast);
79
87
  transition-timing-function: var(--ease-standard);
@@ -85,6 +93,17 @@
85
93
  --_color-picker-slider-thumb-scale: 110% 110%;
86
94
  }
87
95
 
96
+ @media (pointer: coarse) {
97
+ :where([data-control-family="color-picker"]:is([data-slot="hue-thumb"], [data-slot="alpha-thumb"], [data-slot="swatch-add"]))::after {
98
+ content: "";
99
+ position: absolute;
100
+ inset: 50%;
101
+ translate: -50% -50%;
102
+ inline-size: max(100%, var(--touch-target));
103
+ block-size: max(100%, var(--touch-target));
104
+ }
105
+ }
106
+
88
107
  :where([data-control-family="color-picker"][data-slot="wheel-thumb"]) {
89
108
  border-radius: calc(infinity * 1px);
90
109
  border-style: solid;
@@ -122,7 +141,7 @@
122
141
 
123
142
  :where([data-control-family="color-picker"][data-slot="area"]) {
124
143
  block-size: calc(var(--spacing) * 40);
125
- border-radius: var(--cui-color-picker-area-radius);
144
+ border-radius: min(var(--cui-color-picker-area-radius), var(--_color-picker-area-radius-cap, 9999px));
126
145
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--border) 60%, transparent);
127
146
  --_color-picker-area-thumb-shadow: 0 0 0 1px oklch(from var(--foreground) l c h / 0.4);
128
147
  }
@@ -61,7 +61,7 @@
61
61
  }
62
62
 
63
63
  :where([data-control-family="context"][data-slot="title"]) {
64
- font-size: var(--text-sm);
64
+ font-size: var(--text-body);
65
65
  font-weight: var(--font-weight-medium);
66
66
  text-wrap: balance;
67
67
  }
@@ -74,7 +74,7 @@
74
74
 
75
75
  :where([data-control-family="context"][data-slot="summary"]) {
76
76
  gap: calc(var(--spacing) * 3);
77
- font-size: var(--text-sm);
77
+ font-size: var(--text-body);
78
78
  font-variant-numeric: tabular-nums;
79
79
  }
80
80
 
@@ -169,7 +169,7 @@
169
169
  }
170
170
 
171
171
  :where([data-control-family="context"][data-slot="legend-label"]) {
172
- font-size: var(--text-sm);
172
+ font-size: var(--text-body);
173
173
  }
174
174
 
175
175
  :where([data-control-family="context"]:is([data-slot="legend-description"], [data-slot="legend-value"])) {
@@ -1,17 +1,20 @@
1
1
  @layer components {
2
2
  :where([data-control-family="dockable-panel"][data-slot="root"]),
3
3
  :where([data-control-family="popup"][data-popup-kind="drawer"][data-slot="content"][data-dockable-panel-root]) {
4
- --cui-dockable-panel-radius: var(--radius-panel);
4
+ --_dockable-panel-header-inset: calc(var(--spacing) * 1.5);
5
+ --cui-dockable-panel-radius: min(
6
+ var(--radius-panel),
7
+ calc(var(--control-h-sm) / 2 + var(--_dockable-panel-header-inset) + var(--cui-dockable-panel-border-width))
8
+ );
5
9
  --cui-dockable-panel-background: var(--card);
6
10
  --cui-dockable-panel-foreground: var(--card-foreground);
7
11
  --cui-dockable-panel-border-color: oklch(from var(--border) l c h / 0.8);
8
- --cui-dockable-panel-border-width: 1px;
12
+ --cui-dockable-panel-border-width: var(--control-rim-width);
9
13
  --cui-dockable-panel-shadow: var(--shadow-pop);
10
14
  --cui-dockable-panel-drop-zone-active-background: oklch(from var(--primary) l c h / 0.12);
11
15
  --cui-dockable-panel-drop-zone-active-border-color: oklch(from var(--primary) l c h / 0.55);
12
16
  border: var(--cui-dockable-panel-border-width) solid var(--cui-dockable-panel-border-color);
13
17
  border-radius: var(--cui-dockable-panel-radius);
14
- outline: none;
15
18
  background-color: var(--cui-dockable-panel-background);
16
19
  color: var(--cui-dockable-panel-foreground);
17
20
  box-shadow: var(--cui-dockable-panel-shadow);
@@ -22,16 +25,24 @@
22
25
  }
23
26
 
24
27
  :where([data-control-family="dockable-panel"][data-slot="header"]) {
25
- min-block-size: calc(var(--spacing) * 11);
28
+ --nest-radius: max(
29
+ 0px,
30
+ calc(var(--cui-dockable-panel-radius) - var(--cui-dockable-panel-border-width) - var(--_dockable-panel-header-inset))
31
+ );
32
+ min-block-size: calc(var(--control-h-sm) + var(--_dockable-panel-header-inset) * 2);
26
33
  gap: calc(var(--spacing) * 2);
27
- padding-inline: calc(var(--spacing) * 2);
34
+ padding-inline: var(--_dockable-panel-header-inset);
28
35
  border-block-end: 1px solid oklch(from var(--border) l c h / 0.7);
29
36
  }
30
37
 
31
38
  :where([data-control-family="dockable-panel"][data-slot="drag-handle"]) {
32
39
  padding-inline: calc(var(--spacing) * 2);
33
40
  border-radius: var(--radius-control);
34
- text-align: left;
41
+ text-align: start;
42
+ }
43
+
44
+ :where([data-control-family="dockable-panel"][data-slot="drag-button"]) {
45
+ border-radius: inherit;
35
46
  }
36
47
 
37
48
  :where([data-control-family="dockable-panel"][data-slot="actions"]) {
@@ -44,7 +55,7 @@
44
55
 
45
56
  :where([data-control-family="dockable-panel"][data-slot="title"]) {
46
57
  color: var(--foreground);
47
- font-size: var(--text-sm);
58
+ font-size: var(--text-body);
48
59
  font-weight: var(--font-weight-semibold);
49
60
  }
50
61