@womp/kookie-ui 0.23.0 → 0.25.0

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 (1217) hide show
  1. package/README.md +3 -3
  2. package/components.css +13017 -12024
  3. package/dist/cjs/components/_internal/base-button.d.ts +11 -1
  4. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  5. package/dist/cjs/components/_internal/base-button.js +2 -1
  6. package/dist/cjs/components/_internal/base-button.js.map +4 -4
  7. package/dist/cjs/components/_internal/base-button.props.js +1 -0
  8. package/dist/cjs/components/_internal/base-button.props.js.map +2 -2
  9. package/dist/cjs/components/_internal/base-checkbox.props.js +1 -0
  10. package/dist/cjs/components/_internal/base-checkbox.props.js.map +1 -1
  11. package/dist/cjs/components/_internal/base-menu.props.js +1 -0
  12. package/dist/cjs/components/_internal/base-menu.props.js.map +1 -1
  13. package/dist/cjs/components/_internal/base-menu.utils.js +1 -0
  14. package/dist/cjs/components/_internal/base-menu.utils.js.map +1 -1
  15. package/dist/cjs/components/_internal/base-radio.props.js +1 -0
  16. package/dist/cjs/components/_internal/base-radio.props.js.map +1 -1
  17. package/dist/cjs/components/_internal/base-tab-list.props.js +1 -0
  18. package/dist/cjs/components/_internal/base-tab-list.props.js.map +1 -1
  19. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts +19 -7
  20. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
  21. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js +2 -1
  22. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js.map +3 -3
  23. package/dist/cjs/components/_internal/menu-context.d.ts +12 -0
  24. package/dist/cjs/components/_internal/menu-context.d.ts.map +1 -1
  25. package/dist/cjs/components/_internal/menu-context.js +2 -1
  26. package/dist/cjs/components/_internal/menu-context.js.map +3 -3
  27. package/dist/cjs/components/_internal/pane-chrome.d.ts +19 -2
  28. package/dist/cjs/components/_internal/pane-chrome.d.ts.map +1 -1
  29. package/dist/cjs/components/_internal/pane-chrome.js +2 -1
  30. package/dist/cjs/components/_internal/pane-chrome.js.map +4 -4
  31. package/dist/cjs/components/_internal/shell-bottom.d.ts +1 -1
  32. package/dist/cjs/components/_internal/shell-bottom.d.ts.map +1 -1
  33. package/dist/cjs/components/_internal/shell-bottom.js +2 -1
  34. package/dist/cjs/components/_internal/shell-bottom.js.map +3 -3
  35. package/dist/cjs/components/_internal/shell-handles.d.ts.map +1 -1
  36. package/dist/cjs/components/_internal/shell-handles.js +2 -1
  37. package/dist/cjs/components/_internal/shell-handles.js.map +3 -3
  38. package/dist/cjs/components/_internal/shell-inspector.d.ts +1 -1
  39. package/dist/cjs/components/_internal/shell-inspector.d.ts.map +1 -1
  40. package/dist/cjs/components/_internal/shell-inspector.js +2 -1
  41. package/dist/cjs/components/_internal/shell-inspector.js.map +3 -3
  42. package/dist/cjs/components/_internal/shell-pane.d.ts.map +1 -1
  43. package/dist/cjs/components/_internal/shell-pane.js +2 -1
  44. package/dist/cjs/components/_internal/shell-pane.js.map +3 -3
  45. package/dist/cjs/components/_internal/shell-resizable.d.ts.map +1 -1
  46. package/dist/cjs/components/_internal/shell-resizable.js +2 -1
  47. package/dist/cjs/components/_internal/shell-resizable.js.map +3 -3
  48. package/dist/cjs/components/_internal/shell-resize.js +1 -0
  49. package/dist/cjs/components/_internal/shell-resize.js.map +1 -1
  50. package/dist/cjs/components/_internal/shell-rest.js +1 -0
  51. package/dist/cjs/components/_internal/shell-rest.js.map +1 -1
  52. package/dist/cjs/components/_internal/shell-sidebar.d.ts +1 -1
  53. package/dist/cjs/components/_internal/shell-sidebar.d.ts.map +1 -1
  54. package/dist/cjs/components/_internal/shell-sidebar.js +2 -1
  55. package/dist/cjs/components/_internal/shell-sidebar.js.map +4 -4
  56. package/dist/cjs/components/_internal/shell-store.d.ts.map +1 -1
  57. package/dist/cjs/components/_internal/shell-store.js +2 -1
  58. package/dist/cjs/components/_internal/shell-store.js.map +3 -3
  59. package/dist/cjs/components/accessible-icon.js +1 -0
  60. package/dist/cjs/components/accessible-icon.js.map +1 -1
  61. package/dist/cjs/components/accordion.d.ts +2 -2
  62. package/dist/cjs/components/accordion.d.ts.map +1 -1
  63. package/dist/cjs/components/accordion.js +2 -1
  64. package/dist/cjs/components/accordion.js.map +4 -4
  65. package/dist/cjs/components/accordion.props.js +1 -0
  66. package/dist/cjs/components/accordion.props.js.map +1 -1
  67. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  68. package/dist/cjs/components/alert-dialog.js +2 -1
  69. package/dist/cjs/components/alert-dialog.js.map +4 -4
  70. package/dist/cjs/components/alert-dialog.props.js +1 -0
  71. package/dist/cjs/components/alert-dialog.props.js.map +1 -1
  72. package/dist/cjs/components/avatar.d.ts +1 -1
  73. package/dist/cjs/components/avatar.d.ts.map +1 -1
  74. package/dist/cjs/components/avatar.js +2 -1
  75. package/dist/cjs/components/avatar.js.map +3 -3
  76. package/dist/cjs/components/avatar.props.d.ts +8 -0
  77. package/dist/cjs/components/avatar.props.d.ts.map +1 -1
  78. package/dist/cjs/components/avatar.props.js +2 -1
  79. package/dist/cjs/components/avatar.props.js.map +2 -2
  80. package/dist/cjs/components/blockquote.d.ts +1 -1
  81. package/dist/cjs/components/blockquote.d.ts.map +1 -1
  82. package/dist/cjs/components/blockquote.js +2 -1
  83. package/dist/cjs/components/blockquote.js.map +4 -4
  84. package/dist/cjs/components/blockquote.props.js +1 -0
  85. package/dist/cjs/components/blockquote.props.js.map +1 -1
  86. package/dist/cjs/components/box.js +1 -0
  87. package/dist/cjs/components/box.js.map +1 -1
  88. package/dist/cjs/components/box.props.js +1 -0
  89. package/dist/cjs/components/box.props.js.map +1 -1
  90. package/dist/cjs/components/button.d.ts.map +1 -1
  91. package/dist/cjs/components/button.js +2 -1
  92. package/dist/cjs/components/button.js.map +4 -4
  93. package/dist/cjs/components/button.props.js +1 -0
  94. package/dist/cjs/components/button.props.js.map +2 -2
  95. package/dist/cjs/components/card.js +1 -0
  96. package/dist/cjs/components/card.js.map +1 -1
  97. package/dist/cjs/components/card.props.js +1 -0
  98. package/dist/cjs/components/card.props.js.map +1 -1
  99. package/dist/cjs/components/chatbar.d.ts.map +1 -1
  100. package/dist/cjs/components/chatbar.js +2 -1
  101. package/dist/cjs/components/chatbar.js.map +4 -4
  102. package/dist/cjs/components/checkbox-group.d.ts.map +1 -1
  103. package/dist/cjs/components/checkbox-group.js +2 -1
  104. package/dist/cjs/components/checkbox-group.js.map +3 -3
  105. package/dist/cjs/components/checkbox-group.primitive.d.ts +12 -5
  106. package/dist/cjs/components/checkbox-group.primitive.d.ts.map +1 -1
  107. package/dist/cjs/components/checkbox-group.primitive.js +2 -1
  108. package/dist/cjs/components/checkbox-group.primitive.js.map +3 -3
  109. package/dist/cjs/components/checkbox-group.props.js +1 -0
  110. package/dist/cjs/components/checkbox-group.props.js.map +1 -1
  111. package/dist/cjs/components/checkbox.js +2 -1
  112. package/dist/cjs/components/checkbox.js.map +3 -3
  113. package/dist/cjs/components/checkbox.props.js +1 -0
  114. package/dist/cjs/components/checkbox.props.js.map +1 -1
  115. package/dist/cjs/components/chip.d.ts.map +1 -1
  116. package/dist/cjs/components/chip.js +2 -1
  117. package/dist/cjs/components/chip.js.map +3 -3
  118. package/dist/cjs/components/chip.props.js +1 -0
  119. package/dist/cjs/components/chip.props.js.map +1 -1
  120. package/dist/cjs/components/code.d.ts.map +1 -1
  121. package/dist/cjs/components/code.js +2 -1
  122. package/dist/cjs/components/code.js.map +2 -2
  123. package/dist/cjs/components/code.props.js +1 -0
  124. package/dist/cjs/components/code.props.js.map +1 -1
  125. package/dist/cjs/components/combobox.d.ts.map +1 -1
  126. package/dist/cjs/components/combobox.js +2 -1
  127. package/dist/cjs/components/combobox.js.map +4 -4
  128. package/dist/cjs/components/combobox.props.js +1 -0
  129. package/dist/cjs/components/combobox.props.js.map +1 -1
  130. package/dist/cjs/components/context-menu.d.ts +1 -2
  131. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  132. package/dist/cjs/components/context-menu.js +2 -1
  133. package/dist/cjs/components/context-menu.js.map +4 -4
  134. package/dist/cjs/components/context-menu.props.js +1 -0
  135. package/dist/cjs/components/context-menu.props.js.map +1 -1
  136. package/dist/cjs/components/dialog.d.ts +1 -1
  137. package/dist/cjs/components/dialog.d.ts.map +1 -1
  138. package/dist/cjs/components/dialog.js +2 -1
  139. package/dist/cjs/components/dialog.js.map +3 -3
  140. package/dist/cjs/components/dialog.props.js +1 -0
  141. package/dist/cjs/components/dialog.props.js.map +1 -1
  142. package/dist/cjs/components/dropdown-menu.d.ts +1 -2
  143. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  144. package/dist/cjs/components/dropdown-menu.js +2 -1
  145. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  146. package/dist/cjs/components/dropdown-menu.props.js +1 -0
  147. package/dist/cjs/components/dropdown-menu.props.js.map +1 -1
  148. package/dist/cjs/components/flex.js +1 -0
  149. package/dist/cjs/components/flex.js.map +2 -2
  150. package/dist/cjs/components/flex.props.js +1 -0
  151. package/dist/cjs/components/flex.props.js.map +2 -2
  152. package/dist/cjs/components/grid.js +1 -0
  153. package/dist/cjs/components/grid.js.map +2 -2
  154. package/dist/cjs/components/grid.props.js +1 -0
  155. package/dist/cjs/components/grid.props.js.map +2 -2
  156. package/dist/cjs/components/heading.d.ts +2 -2
  157. package/dist/cjs/components/heading.d.ts.map +1 -1
  158. package/dist/cjs/components/heading.js +2 -1
  159. package/dist/cjs/components/heading.js.map +2 -2
  160. package/dist/cjs/components/heading.props.d.ts +1 -1
  161. package/dist/cjs/components/heading.props.js +2 -1
  162. package/dist/cjs/components/heading.props.js.map +2 -2
  163. package/dist/cjs/components/icons.d.ts +3 -1
  164. package/dist/cjs/components/icons.d.ts.map +1 -1
  165. package/dist/cjs/components/icons.js +2 -1
  166. package/dist/cjs/components/icons.js.map +3 -3
  167. package/dist/cjs/components/image.d.ts +9 -2
  168. package/dist/cjs/components/image.d.ts.map +1 -1
  169. package/dist/cjs/components/image.js +2 -1
  170. package/dist/cjs/components/image.js.map +3 -3
  171. package/dist/cjs/components/image.props.js +1 -0
  172. package/dist/cjs/components/image.props.js.map +1 -1
  173. package/dist/cjs/components/index.d.ts +2 -2
  174. package/dist/cjs/components/index.d.ts.map +1 -1
  175. package/dist/cjs/components/index.js +3 -10
  176. package/dist/cjs/components/index.js.map +4 -4
  177. package/dist/cjs/components/kbd.js +1 -0
  178. package/dist/cjs/components/kbd.js.map +1 -1
  179. package/dist/cjs/components/kbd.props.js +1 -0
  180. package/dist/cjs/components/kbd.props.js.map +1 -1
  181. package/dist/cjs/components/link.js +1 -0
  182. package/dist/cjs/components/link.js.map +1 -1
  183. package/dist/cjs/components/link.props.js +1 -0
  184. package/dist/cjs/components/link.props.js.map +1 -1
  185. package/dist/cjs/components/message-scroller.d.ts +2 -2
  186. package/dist/cjs/components/message-scroller.d.ts.map +1 -1
  187. package/dist/cjs/components/message-scroller.js +2 -1
  188. package/dist/cjs/components/message-scroller.js.map +4 -4
  189. package/dist/cjs/components/navbar.d.ts.map +1 -1
  190. package/dist/cjs/components/navbar.js +2 -1
  191. package/dist/cjs/components/navbar.js.map +3 -3
  192. package/dist/cjs/components/navbar.props.js +1 -0
  193. package/dist/cjs/components/navbar.props.js.map +1 -1
  194. package/dist/cjs/components/notice.d.ts +4 -1
  195. package/dist/cjs/components/notice.d.ts.map +1 -1
  196. package/dist/cjs/components/notice.js +2 -1
  197. package/dist/cjs/components/notice.js.map +4 -4
  198. package/dist/cjs/components/popover.d.ts +3 -1
  199. package/dist/cjs/components/popover.d.ts.map +1 -1
  200. package/dist/cjs/components/popover.js +2 -1
  201. package/dist/cjs/components/popover.js.map +3 -3
  202. package/dist/cjs/components/popover.props.js +1 -0
  203. package/dist/cjs/components/popover.props.js.map +1 -1
  204. package/dist/cjs/components/portal.js +1 -0
  205. package/dist/cjs/components/portal.js.map +1 -1
  206. package/dist/cjs/components/progress.d.ts.map +1 -1
  207. package/dist/cjs/components/progress.js +2 -1
  208. package/dist/cjs/components/progress.js.map +3 -3
  209. package/dist/cjs/components/progress.props.js +1 -0
  210. package/dist/cjs/components/progress.props.js.map +1 -1
  211. package/dist/cjs/components/radio-group.js +1 -0
  212. package/dist/cjs/components/radio-group.js.map +1 -1
  213. package/dist/cjs/components/radio-group.props.js +1 -0
  214. package/dist/cjs/components/radio-group.props.js.map +1 -1
  215. package/dist/cjs/components/radio.js +1 -0
  216. package/dist/cjs/components/radio.js.map +1 -1
  217. package/dist/cjs/components/radio.props.js +1 -0
  218. package/dist/cjs/components/radio.props.js.map +1 -1
  219. package/dist/cjs/components/reset.js +1 -0
  220. package/dist/cjs/components/reset.js.map +1 -1
  221. package/dist/cjs/components/schemas/base-button.schema.js +1 -0
  222. package/dist/cjs/components/schemas/base-button.schema.js.map +1 -1
  223. package/dist/cjs/components/schemas/button.schema.d.ts +2 -2
  224. package/dist/cjs/components/schemas/button.schema.js +1 -0
  225. package/dist/cjs/components/schemas/button.schema.js.map +1 -1
  226. package/dist/cjs/components/schemas/index.js +1 -0
  227. package/dist/cjs/components/schemas/index.js.map +1 -1
  228. package/dist/cjs/components/schemas/shell.schema.js +1 -0
  229. package/dist/cjs/components/schemas/shell.schema.js.map +1 -1
  230. package/dist/cjs/components/schemas/toggle.schema.d.ts +1 -1
  231. package/dist/cjs/components/schemas/toggle.schema.js +1 -0
  232. package/dist/cjs/components/schemas/toggle.schema.js.map +1 -1
  233. package/dist/cjs/components/scroll-area.d.ts +3 -1
  234. package/dist/cjs/components/scroll-area.d.ts.map +1 -1
  235. package/dist/cjs/components/scroll-area.js +2 -1
  236. package/dist/cjs/components/scroll-area.js.map +4 -4
  237. package/dist/cjs/components/scroll-area.props.js +1 -0
  238. package/dist/cjs/components/scroll-area.props.js.map +1 -1
  239. package/dist/cjs/components/segmented-control.d.ts +3 -1
  240. package/dist/cjs/components/segmented-control.d.ts.map +1 -1
  241. package/dist/cjs/components/segmented-control.js +2 -1
  242. package/dist/cjs/components/segmented-control.js.map +3 -3
  243. package/dist/cjs/components/segmented-control.props.d.ts +0 -1
  244. package/dist/cjs/components/segmented-control.props.d.ts.map +1 -1
  245. package/dist/cjs/components/segmented-control.props.js +2 -1
  246. package/dist/cjs/components/segmented-control.props.js.map +2 -2
  247. package/dist/cjs/components/select.d.ts.map +1 -1
  248. package/dist/cjs/components/select.js +2 -1
  249. package/dist/cjs/components/select.js.map +4 -4
  250. package/dist/cjs/components/select.props.js +1 -0
  251. package/dist/cjs/components/select.props.js.map +1 -1
  252. package/dist/cjs/components/separator.d.ts.map +1 -1
  253. package/dist/cjs/components/separator.js +2 -1
  254. package/dist/cjs/components/separator.js.map +4 -4
  255. package/dist/cjs/components/separator.props.d.ts +1 -1
  256. package/dist/cjs/components/separator.props.js +2 -1
  257. package/dist/cjs/components/separator.props.js.map +2 -2
  258. package/dist/cjs/components/sheet.d.ts +2 -1
  259. package/dist/cjs/components/sheet.d.ts.map +1 -1
  260. package/dist/cjs/components/sheet.js +2 -1
  261. package/dist/cjs/components/sheet.js.map +3 -3
  262. package/dist/cjs/components/shell.context.js +2 -1
  263. package/dist/cjs/components/shell.context.js.map +3 -3
  264. package/dist/cjs/components/shell.d.ts +17 -3
  265. package/dist/cjs/components/shell.d.ts.map +1 -1
  266. package/dist/cjs/components/shell.hooks.js +2 -1
  267. package/dist/cjs/components/shell.hooks.js.map +3 -3
  268. package/dist/cjs/components/shell.js +2 -1
  269. package/dist/cjs/components/shell.js.map +4 -4
  270. package/dist/cjs/components/shell.types.js +1 -0
  271. package/dist/cjs/components/shell.types.js.map +1 -1
  272. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  273. package/dist/cjs/components/sidebar.js +2 -1
  274. package/dist/cjs/components/sidebar.js.map +4 -4
  275. package/dist/cjs/components/slider.d.ts.map +1 -1
  276. package/dist/cjs/components/slider.js +2 -1
  277. package/dist/cjs/components/slider.js.map +3 -3
  278. package/dist/cjs/components/slider.props.d.ts +0 -2
  279. package/dist/cjs/components/slider.props.d.ts.map +1 -1
  280. package/dist/cjs/components/slider.props.js +2 -1
  281. package/dist/cjs/components/slider.props.js.map +2 -2
  282. package/dist/cjs/components/slot.js +1 -0
  283. package/dist/cjs/components/slot.js.map +1 -1
  284. package/dist/cjs/components/spinner.d.ts.map +1 -1
  285. package/dist/cjs/components/spinner.js +2 -1
  286. package/dist/cjs/components/spinner.js.map +3 -3
  287. package/dist/cjs/components/spinner.props.js +1 -0
  288. package/dist/cjs/components/spinner.props.js.map +1 -1
  289. package/dist/cjs/components/switch.js +1 -0
  290. package/dist/cjs/components/switch.js.map +1 -1
  291. package/dist/cjs/components/switch.props.js +1 -0
  292. package/dist/cjs/components/switch.props.js.map +1 -1
  293. package/dist/cjs/components/table.d.ts.map +1 -1
  294. package/dist/cjs/components/table.js +2 -1
  295. package/dist/cjs/components/table.js.map +4 -4
  296. package/dist/cjs/components/table.props.d.ts +0 -2
  297. package/dist/cjs/components/table.props.d.ts.map +1 -1
  298. package/dist/cjs/components/table.props.js +2 -1
  299. package/dist/cjs/components/table.props.js.map +3 -3
  300. package/dist/cjs/components/tabs.d.ts.map +1 -1
  301. package/dist/cjs/components/tabs.js +2 -1
  302. package/dist/cjs/components/tabs.js.map +3 -3
  303. package/dist/cjs/components/tabs.props.js +1 -0
  304. package/dist/cjs/components/tabs.props.js.map +1 -1
  305. package/dist/cjs/components/text-area.d.ts.map +1 -1
  306. package/dist/cjs/components/text-area.js +2 -1
  307. package/dist/cjs/components/text-area.js.map +2 -2
  308. package/dist/cjs/components/text-area.props.js +1 -0
  309. package/dist/cjs/components/text-area.props.js.map +1 -1
  310. package/dist/cjs/components/text-field.d.ts.map +1 -1
  311. package/dist/cjs/components/text-field.js +3 -2
  312. package/dist/cjs/components/text-field.js.map +3 -3
  313. package/dist/cjs/components/text-field.props.js +1 -0
  314. package/dist/cjs/components/text-field.props.js.map +2 -2
  315. package/dist/cjs/components/text.js +1 -0
  316. package/dist/cjs/components/text.js.map +1 -1
  317. package/dist/cjs/components/text.props.js +1 -0
  318. package/dist/cjs/components/text.props.js.map +1 -1
  319. package/dist/cjs/components/theme.d.ts.map +1 -1
  320. package/dist/cjs/components/theme.js +2 -1
  321. package/dist/cjs/components/theme.js.map +3 -3
  322. package/dist/cjs/components/theme.props.js +1 -0
  323. package/dist/cjs/components/theme.props.js.map +1 -1
  324. package/dist/cjs/components/toggle.d.ts +3 -2
  325. package/dist/cjs/components/toggle.d.ts.map +1 -1
  326. package/dist/cjs/components/toggle.js +2 -9
  327. package/dist/cjs/components/toggle.js.map +4 -4
  328. package/dist/cjs/components/toolbar.d.ts +83 -8
  329. package/dist/cjs/components/toolbar.d.ts.map +1 -1
  330. package/dist/cjs/components/toolbar.js +2 -1
  331. package/dist/cjs/components/toolbar.js.map +4 -4
  332. package/dist/cjs/components/toolbar.props.js +1 -0
  333. package/dist/cjs/components/toolbar.props.js.map +1 -1
  334. package/dist/cjs/components/tooltip.d.ts +13 -2
  335. package/dist/cjs/components/tooltip.d.ts.map +1 -1
  336. package/dist/cjs/components/tooltip.js +2 -1
  337. package/dist/cjs/components/tooltip.js.map +3 -3
  338. package/dist/cjs/components/tooltip.props.js +1 -0
  339. package/dist/cjs/components/tooltip.props.js.map +1 -1
  340. package/dist/cjs/components/virtual-menu.d.ts +22 -17
  341. package/dist/cjs/components/virtual-menu.d.ts.map +1 -1
  342. package/dist/cjs/components/virtual-menu.js +2 -1
  343. package/dist/cjs/components/virtual-menu.js.map +3 -3
  344. package/dist/cjs/components/visually-hidden.js +1 -0
  345. package/dist/cjs/components/visually-hidden.js.map +1 -1
  346. package/dist/cjs/helpers/extract-margin-props.d.ts +7 -7
  347. package/dist/cjs/helpers/get-margin-styles.d.ts.map +1 -1
  348. package/dist/cjs/helpers/get-margin-styles.js +1 -1
  349. package/dist/cjs/helpers/get-margin-styles.js.map +3 -3
  350. package/dist/cjs/helpers/index.js +4 -4
  351. package/dist/cjs/helpers/index.js.map +3 -3
  352. package/dist/cjs/hooks/index.js +5 -4
  353. package/dist/cjs/hooks/index.js.map +3 -3
  354. package/dist/cjs/hooks/use-appearance.d.ts.map +1 -1
  355. package/dist/cjs/hooks/use-appearance.js +4 -3
  356. package/dist/cjs/hooks/use-appearance.js.map +3 -3
  357. package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts +1 -1
  358. package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -1
  359. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js +2 -1
  360. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js.map +3 -3
  361. package/dist/cjs/hooks/use-breakpoint.js +1 -0
  362. package/dist/cjs/hooks/use-breakpoint.js.map +1 -1
  363. package/dist/cjs/hooks/use-live-announcer.js +1 -0
  364. package/dist/cjs/hooks/use-live-announcer.js.map +1 -1
  365. package/dist/cjs/hooks/use-prop-synced-state.js +1 -0
  366. package/dist/cjs/hooks/use-prop-synced-state.js.map +1 -1
  367. package/dist/cjs/hooks/use-scroll-edges.d.ts +4 -2
  368. package/dist/cjs/hooks/use-scroll-edges.d.ts.map +1 -1
  369. package/dist/cjs/hooks/use-scroll-edges.js +2 -1
  370. package/dist/cjs/hooks/use-scroll-edges.js.map +3 -3
  371. package/dist/cjs/hooks/use-thumb-sync.js +1 -0
  372. package/dist/cjs/hooks/use-thumb-sync.js.map +1 -1
  373. package/dist/cjs/hooks/use-toggle-state.js +1 -0
  374. package/dist/cjs/hooks/use-toggle-state.js.map +1 -1
  375. package/dist/cjs/hooks/use-tooltip-wrapper.js +1 -0
  376. package/dist/cjs/hooks/use-tooltip-wrapper.js.map +1 -1
  377. package/dist/cjs/index.js +6 -5
  378. package/dist/cjs/index.js.map +4 -4
  379. package/dist/cjs/props/gap.props.d.ts +4 -4
  380. package/dist/cjs/props/gap.props.js.map +1 -1
  381. package/dist/cjs/props/index.js +1 -1
  382. package/dist/cjs/props/index.js.map +3 -3
  383. package/dist/esm/chunk-2EXOL2BR.js +3 -0
  384. package/dist/esm/chunk-2EXOL2BR.js.map +7 -0
  385. package/dist/esm/chunk-2IU5XPR2.js +3 -0
  386. package/dist/esm/chunk-2IU5XPR2.js.map +7 -0
  387. package/dist/esm/chunk-2IUGM657.js +3 -0
  388. package/dist/esm/chunk-2IUGM657.js.map +7 -0
  389. package/dist/esm/chunk-2VSRZ4IT.js +3 -0
  390. package/dist/esm/chunk-2VSRZ4IT.js.map +7 -0
  391. package/dist/esm/chunk-2XZ7477Y.js +3 -0
  392. package/dist/esm/{chunk-HKPXDQ2B.js.map → chunk-2XZ7477Y.js.map} +1 -1
  393. package/dist/esm/{chunk-GNTNGLYR.js → chunk-2Z2I27ZS.js} +3 -2
  394. package/dist/esm/{chunk-GNTNGLYR.js.map → chunk-2Z2I27ZS.js.map} +1 -1
  395. package/dist/esm/chunk-3223MHQK.js +3 -0
  396. package/dist/esm/{chunk-DSPYHO3L.js.map → chunk-3223MHQK.js.map} +2 -2
  397. package/dist/esm/{chunk-MPTTUBFU.js → chunk-3H23GRNQ.js} +3 -2
  398. package/dist/esm/{chunk-MPTTUBFU.js.map → chunk-3H23GRNQ.js.map} +2 -2
  399. package/dist/esm/chunk-3LIF53YY.js +13 -0
  400. package/dist/esm/chunk-3LIF53YY.js.map +7 -0
  401. package/dist/esm/chunk-3QWGSRYC.js +3 -0
  402. package/dist/esm/chunk-3QWGSRYC.js.map +7 -0
  403. package/dist/esm/chunk-3WZLXGUE.js +3 -0
  404. package/dist/esm/chunk-3WZLXGUE.js.map +7 -0
  405. package/dist/esm/chunk-45O3JZWQ.js +6 -0
  406. package/dist/esm/chunk-45O3JZWQ.js.map +7 -0
  407. package/dist/esm/chunk-4ABQ6CDI.js +3 -0
  408. package/dist/esm/chunk-4ABQ6CDI.js.map +7 -0
  409. package/dist/esm/{chunk-IAEAXIBI.js → chunk-4J7QDLKI.js} +3 -2
  410. package/dist/esm/{chunk-IAEAXIBI.js.map → chunk-4J7QDLKI.js.map} +1 -1
  411. package/dist/esm/chunk-4Q5PUIDJ.js +3 -0
  412. package/dist/esm/chunk-4Q5PUIDJ.js.map +7 -0
  413. package/dist/esm/chunk-54HUG34P.js +3 -0
  414. package/dist/esm/chunk-54HUG34P.js.map +7 -0
  415. package/dist/esm/chunk-5EP3UTM7.js +3 -0
  416. package/dist/esm/{chunk-Q4IA622Q.js.map → chunk-5EP3UTM7.js.map} +1 -1
  417. package/dist/esm/chunk-5JYSYTHA.js +3 -0
  418. package/dist/esm/chunk-5JYSYTHA.js.map +7 -0
  419. package/dist/esm/{chunk-FWB47YCH.js → chunk-5KMEUZWN.js} +2 -1
  420. package/dist/esm/{chunk-FWB47YCH.js.map → chunk-5KMEUZWN.js.map} +1 -1
  421. package/dist/esm/{chunk-7MC7N4BC.js → chunk-5KQCG7AV.js} +2 -1
  422. package/dist/esm/{chunk-7MC7N4BC.js.map → chunk-5KQCG7AV.js.map} +1 -1
  423. package/dist/esm/chunk-5RFDCAKC.js +3 -0
  424. package/dist/esm/{chunk-SKOYHBIE.js.map → chunk-5RFDCAKC.js.map} +1 -1
  425. package/dist/esm/{chunk-BIITGC3Z.js → chunk-5WTSKXAE.js} +3 -2
  426. package/dist/esm/{chunk-BIITGC3Z.js.map → chunk-5WTSKXAE.js.map} +1 -1
  427. package/dist/esm/{chunk-OSSNMF5U.js → chunk-647DRBXQ.js} +3 -2
  428. package/dist/esm/{chunk-OSSNMF5U.js.map → chunk-647DRBXQ.js.map} +1 -1
  429. package/dist/esm/{chunk-KKMOGHIY.js → chunk-64EFWPHI.js} +3 -2
  430. package/dist/esm/{chunk-KKMOGHIY.js.map → chunk-64EFWPHI.js.map} +1 -1
  431. package/dist/esm/{chunk-BWLCTTTN.js → chunk-65KD6WS6.js} +3 -2
  432. package/dist/esm/{chunk-BWLCTTTN.js.map → chunk-65KD6WS6.js.map} +2 -2
  433. package/dist/esm/{chunk-RWTSGUVJ.js → chunk-6AMWYEM7.js} +3 -2
  434. package/dist/esm/{chunk-RWTSGUVJ.js.map → chunk-6AMWYEM7.js.map} +1 -1
  435. package/dist/esm/{chunk-ELAW7ZUG.js → chunk-6FLLFCBU.js} +2 -2
  436. package/dist/esm/{chunk-4P6TKZCA.js → chunk-6UZT3ZLO.js} +3 -2
  437. package/dist/esm/{chunk-4P6TKZCA.js.map → chunk-6UZT3ZLO.js.map} +1 -1
  438. package/dist/esm/chunk-7IHBNDCE.js +3 -0
  439. package/dist/esm/{chunk-XKSU3NLG.js.map → chunk-7IHBNDCE.js.map} +2 -2
  440. package/dist/esm/chunk-7J7RPEPB.js +3 -0
  441. package/dist/esm/chunk-7J7RPEPB.js.map +7 -0
  442. package/dist/esm/chunk-7N2Q5WOM.js +3 -0
  443. package/dist/esm/chunk-7N2Q5WOM.js.map +7 -0
  444. package/dist/esm/{chunk-25FNCKUM.js → chunk-7ROKZHH2.js} +3 -2
  445. package/dist/esm/{chunk-25FNCKUM.js.map → chunk-7ROKZHH2.js.map} +1 -1
  446. package/dist/esm/chunk-7VJF6EXN.js +3 -0
  447. package/dist/esm/chunk-7VJF6EXN.js.map +7 -0
  448. package/dist/esm/chunk-A2OMWZI7.js +2 -0
  449. package/dist/esm/chunk-A7QRPXXB.js +3 -0
  450. package/dist/esm/chunk-A7QRPXXB.js.map +7 -0
  451. package/dist/esm/chunk-AG2YETE6.js +3 -0
  452. package/dist/esm/chunk-AG2YETE6.js.map +7 -0
  453. package/dist/esm/{chunk-4BU4R7UM.js → chunk-AOBY2OUZ.js} +3 -2
  454. package/dist/esm/{chunk-4BU4R7UM.js.map → chunk-AOBY2OUZ.js.map} +1 -1
  455. package/dist/esm/{chunk-XEZXKPLE.js → chunk-AXODGYRY.js} +2 -1
  456. package/dist/esm/{chunk-XEZXKPLE.js.map → chunk-AXODGYRY.js.map} +1 -1
  457. package/dist/esm/chunk-AYKOOEZR.js +2 -0
  458. package/dist/esm/{chunk-YHYPIJCR.js → chunk-AZHSPPBV.js} +3 -2
  459. package/dist/esm/{chunk-YHYPIJCR.js.map → chunk-AZHSPPBV.js.map} +1 -1
  460. package/dist/esm/{chunk-ERNM3KVF.js → chunk-B6YGNB3V.js} +2 -1
  461. package/dist/esm/{chunk-ERNM3KVF.js.map → chunk-B6YGNB3V.js.map} +1 -1
  462. package/dist/esm/chunk-BMKUGZ4I.js +3 -0
  463. package/dist/esm/{chunk-VPSMETY2.js.map → chunk-BMKUGZ4I.js.map} +1 -1
  464. package/dist/esm/chunk-BOLSK63X.js +3 -0
  465. package/dist/esm/{chunk-X4A3XRBY.js.map → chunk-BOLSK63X.js.map} +1 -1
  466. package/dist/esm/chunk-BUZGRMDD.js +3 -0
  467. package/dist/esm/chunk-BUZGRMDD.js.map +7 -0
  468. package/dist/esm/{chunk-IDOZJVO6.js → chunk-CAAEEHGQ.js} +3 -2
  469. package/dist/esm/{chunk-IDOZJVO6.js.map → chunk-CAAEEHGQ.js.map} +1 -1
  470. package/dist/esm/{chunk-3QZBWH2A.js → chunk-CKJXTEVO.js} +3 -2
  471. package/dist/esm/chunk-CKJXTEVO.js.map +7 -0
  472. package/dist/esm/chunk-CLJ6SEGP.js +3 -0
  473. package/dist/esm/chunk-CLJ6SEGP.js.map +7 -0
  474. package/dist/esm/chunk-CR65RYGM.js +3 -0
  475. package/dist/esm/chunk-CR65RYGM.js.map +7 -0
  476. package/dist/esm/chunk-CRCYUJMK.js +3 -0
  477. package/dist/esm/chunk-CRCYUJMK.js.map +7 -0
  478. package/dist/esm/chunk-CV7QQTI3.js +3 -0
  479. package/dist/esm/chunk-CV7QQTI3.js.map +7 -0
  480. package/dist/esm/chunk-CYTPMHSJ.js +3 -0
  481. package/dist/esm/chunk-CYTPMHSJ.js.map +7 -0
  482. package/dist/esm/chunk-D4P7332M.js +3 -0
  483. package/dist/esm/chunk-D4P7332M.js.map +7 -0
  484. package/dist/esm/chunk-DI7RUMLO.js +3 -0
  485. package/dist/esm/chunk-DI7RUMLO.js.map +7 -0
  486. package/dist/esm/{chunk-OY5NT7VT.js → chunk-DVXDFCCV.js} +3 -2
  487. package/dist/esm/{chunk-OY5NT7VT.js.map → chunk-DVXDFCCV.js.map} +1 -1
  488. package/dist/esm/chunk-E4EMG3RC.js +3 -0
  489. package/dist/esm/chunk-E4EMG3RC.js.map +7 -0
  490. package/dist/esm/chunk-EAIQIW23.js +3 -0
  491. package/dist/esm/chunk-EAIQIW23.js.map +7 -0
  492. package/dist/esm/chunk-ENAW44VE.js +3 -0
  493. package/dist/esm/chunk-ENAW44VE.js.map +7 -0
  494. package/dist/esm/chunk-EVCQ6TG5.js +3 -0
  495. package/dist/esm/{chunk-JBHRV364.js.map → chunk-EVCQ6TG5.js.map} +2 -2
  496. package/dist/esm/{chunk-RAVZ7F5L.js → chunk-EY6TCYGG.js} +3 -2
  497. package/dist/esm/{chunk-RAVZ7F5L.js.map → chunk-EY6TCYGG.js.map} +1 -1
  498. package/dist/esm/chunk-FFJE25TJ.js +3 -0
  499. package/dist/esm/chunk-FFJE25TJ.js.map +7 -0
  500. package/dist/esm/chunk-FI32HA4X.js +3 -0
  501. package/dist/esm/{chunk-YXLDRDHW.js.map → chunk-FI32HA4X.js.map} +3 -3
  502. package/dist/esm/{chunk-NA237RHQ.js → chunk-FJLYSZV3.js} +1 -1
  503. package/dist/esm/{chunk-NA237RHQ.js.map → chunk-FJLYSZV3.js.map} +1 -1
  504. package/dist/esm/{chunk-DNOQ6E3W.js → chunk-FM3GBCX5.js} +3 -2
  505. package/dist/esm/{chunk-DNOQ6E3W.js.map → chunk-FM3GBCX5.js.map} +1 -1
  506. package/dist/esm/chunk-G32GSPNO.js +3 -0
  507. package/dist/esm/chunk-G32GSPNO.js.map +7 -0
  508. package/dist/esm/{chunk-TBZO22XK.js → chunk-G66WDIIV.js} +3 -2
  509. package/dist/esm/{chunk-TBZO22XK.js.map → chunk-G66WDIIV.js.map} +1 -1
  510. package/dist/esm/{chunk-PN3RQFSU.js → chunk-GHUAUFG7.js} +2 -1
  511. package/dist/esm/{chunk-PN3RQFSU.js.map → chunk-GHUAUFG7.js.map} +1 -1
  512. package/dist/esm/chunk-GHWEXMF6.js +3 -0
  513. package/dist/esm/chunk-GHWEXMF6.js.map +7 -0
  514. package/dist/esm/{chunk-IX5HIHVI.js → chunk-GKDGNPBD.js} +3 -2
  515. package/dist/esm/{chunk-IX5HIHVI.js.map → chunk-GKDGNPBD.js.map} +3 -3
  516. package/dist/esm/chunk-GNPTPIL7.js +3 -0
  517. package/dist/esm/{chunk-ZNDCZM5A.js.map → chunk-GNPTPIL7.js.map} +2 -2
  518. package/dist/esm/chunk-GPQSC6GL.js +3 -0
  519. package/dist/esm/chunk-GPQSC6GL.js.map +7 -0
  520. package/dist/esm/{chunk-THUBY6L2.js → chunk-GZ333J7L.js} +3 -2
  521. package/dist/esm/{chunk-THUBY6L2.js.map → chunk-GZ333J7L.js.map} +1 -1
  522. package/dist/esm/chunk-HBWBPBSA.js +3 -0
  523. package/dist/esm/chunk-HBWBPBSA.js.map +7 -0
  524. package/dist/esm/chunk-I3SRUPUP.js +3 -0
  525. package/dist/esm/chunk-I3SRUPUP.js.map +7 -0
  526. package/dist/esm/{chunk-3XHTJZNP.js → chunk-I6SMGWS5.js} +3 -2
  527. package/dist/esm/{chunk-3XHTJZNP.js.map → chunk-I6SMGWS5.js.map} +1 -1
  528. package/dist/esm/chunk-ILWS2JUE.js +3 -0
  529. package/dist/esm/chunk-ILWS2JUE.js.map +7 -0
  530. package/dist/esm/{chunk-QWDCLL6R.js → chunk-IN2WND4B.js} +3 -2
  531. package/dist/esm/{chunk-QWDCLL6R.js.map → chunk-IN2WND4B.js.map} +1 -1
  532. package/dist/esm/chunk-IO43RGNR.js +3 -0
  533. package/dist/esm/chunk-IO43RGNR.js.map +7 -0
  534. package/dist/esm/{chunk-OJQNLROL.js → chunk-IQ2RMFOM.js} +3 -2
  535. package/dist/esm/{chunk-OJQNLROL.js.map → chunk-IQ2RMFOM.js.map} +2 -2
  536. package/dist/esm/{chunk-DCNHG6VN.js → chunk-IZIDRDQW.js} +3 -2
  537. package/dist/esm/{chunk-DCNHG6VN.js.map → chunk-IZIDRDQW.js.map} +1 -1
  538. package/dist/esm/{chunk-7FTUTUMD.js → chunk-IZXML75Y.js} +2 -2
  539. package/dist/esm/chunk-J3QIUJ6F.js +2 -0
  540. package/dist/esm/chunk-JIF77MRB.js +3 -0
  541. package/dist/esm/chunk-JIF77MRB.js.map +7 -0
  542. package/dist/esm/{chunk-PBFSBHBS.js → chunk-JUY7CBSL.js} +2 -2
  543. package/dist/esm/chunk-JZ5Z53MN.js +2 -0
  544. package/dist/esm/{chunk-YEHM3FZN.js → chunk-JZVLP2VF.js} +3 -2
  545. package/dist/esm/{chunk-YEHM3FZN.js.map → chunk-JZVLP2VF.js.map} +1 -1
  546. package/dist/esm/chunk-KNBSG2WA.js +3 -0
  547. package/dist/esm/chunk-KNBSG2WA.js.map +7 -0
  548. package/dist/esm/{chunk-IWCFJJBI.js → chunk-KOAWATCI.js} +2 -1
  549. package/dist/esm/{chunk-IWCFJJBI.js.map → chunk-KOAWATCI.js.map} +1 -1
  550. package/dist/esm/chunk-KRFXTPEW.js +3 -0
  551. package/dist/esm/{chunk-63PQNLFJ.js.map → chunk-KRFXTPEW.js.map} +1 -1
  552. package/dist/esm/chunk-KSYHZCLD.js +3 -0
  553. package/dist/esm/{chunk-EZYXYLR2.js.map → chunk-KSYHZCLD.js.map} +1 -1
  554. package/dist/esm/{chunk-VW46DG7H.js → chunk-L4NF3Q2T.js} +3 -2
  555. package/dist/esm/{chunk-VW46DG7H.js.map → chunk-L4NF3Q2T.js.map} +1 -1
  556. package/dist/esm/chunk-L54FWKJE.js +3 -0
  557. package/dist/esm/chunk-L54FWKJE.js.map +7 -0
  558. package/dist/esm/{chunk-XTDXXQTB.js → chunk-L66IUPDW.js} +3 -2
  559. package/dist/esm/{chunk-XTDXXQTB.js.map → chunk-L66IUPDW.js.map} +1 -1
  560. package/dist/esm/chunk-LB2HB4NG.js +3 -0
  561. package/dist/esm/{chunk-NNZTSXKH.js.map → chunk-LB2HB4NG.js.map} +2 -2
  562. package/dist/esm/{chunk-VVWYAVHM.js → chunk-LCG3JZ3C.js} +3 -2
  563. package/dist/esm/{chunk-VVWYAVHM.js.map → chunk-LCG3JZ3C.js.map} +1 -1
  564. package/dist/esm/chunk-LPLW7OWA.js +3 -0
  565. package/dist/esm/chunk-LPLW7OWA.js.map +7 -0
  566. package/dist/esm/chunk-M37GE2TE.js +3 -0
  567. package/dist/esm/{chunk-UONSKZQT.js.map → chunk-M37GE2TE.js.map} +1 -1
  568. package/dist/esm/{chunk-5YLKKQFK.js → chunk-MAA6LEE2.js} +2 -1
  569. package/dist/esm/{chunk-5YLKKQFK.js.map → chunk-MAA6LEE2.js.map} +1 -1
  570. package/dist/esm/chunk-MXIVYALY.js +3 -0
  571. package/dist/esm/chunk-MXIVYALY.js.map +7 -0
  572. package/dist/esm/chunk-N53NJCEM.js +3 -0
  573. package/dist/esm/chunk-N53NJCEM.js.map +7 -0
  574. package/dist/esm/{chunk-LXTGEI62.js → chunk-NBVCQQSY.js} +3 -2
  575. package/dist/esm/{chunk-LXTGEI62.js.map → chunk-NBVCQQSY.js.map} +1 -1
  576. package/dist/esm/chunk-NG54K6FL.js +2 -0
  577. package/dist/esm/chunk-NMQGDBLD.js +3 -0
  578. package/dist/esm/chunk-NMQGDBLD.js.map +7 -0
  579. package/dist/esm/chunk-OAJ5DARR.js +3 -0
  580. package/dist/esm/chunk-OAJ5DARR.js.map +7 -0
  581. package/dist/esm/chunk-OKQAVYW4.js +3 -0
  582. package/dist/esm/chunk-OKQAVYW4.js.map +7 -0
  583. package/dist/esm/chunk-PF67GJ5D.js +3 -0
  584. package/dist/esm/chunk-PF67GJ5D.js.map +7 -0
  585. package/dist/esm/chunk-PHWT772P.js +3 -0
  586. package/dist/esm/{chunk-XZQSSRTG.js.map → chunk-PHWT772P.js.map} +1 -1
  587. package/dist/esm/chunk-PPQ7URZL.js +3 -0
  588. package/dist/esm/chunk-PPQ7URZL.js.map +7 -0
  589. package/dist/esm/{chunk-FNAE6HUI.js → chunk-PT45Q47V.js} +3 -2
  590. package/dist/esm/{chunk-FNAE6HUI.js.map → chunk-PT45Q47V.js.map} +1 -1
  591. package/dist/esm/{chunk-HCBR74BW.js → chunk-PT4KBXXP.js} +3 -2
  592. package/dist/esm/{chunk-HCBR74BW.js.map → chunk-PT4KBXXP.js.map} +1 -1
  593. package/dist/esm/chunk-PZ6Z7WTR.js +3 -0
  594. package/dist/esm/chunk-PZ6Z7WTR.js.map +7 -0
  595. package/dist/esm/{chunk-PSPENFPH.js → chunk-PZCQDZVJ.js} +3 -2
  596. package/dist/esm/{chunk-PSPENFPH.js.map → chunk-PZCQDZVJ.js.map} +1 -1
  597. package/dist/esm/{chunk-I53SGTKV.js → chunk-QH64BDXO.js} +3 -2
  598. package/dist/esm/{chunk-I53SGTKV.js.map → chunk-QH64BDXO.js.map} +1 -1
  599. package/dist/esm/{chunk-LUNWI377.js → chunk-QQY4WFJL.js} +3 -2
  600. package/dist/esm/{chunk-LUNWI377.js.map → chunk-QQY4WFJL.js.map} +1 -1
  601. package/dist/esm/{chunk-BE7LMBBC.js → chunk-RIHTVZVJ.js} +3 -2
  602. package/dist/esm/{chunk-BE7LMBBC.js.map → chunk-RIHTVZVJ.js.map} +1 -1
  603. package/dist/esm/chunk-RVPLXLRA.js +3 -0
  604. package/dist/esm/chunk-RVPLXLRA.js.map +7 -0
  605. package/dist/esm/{chunk-GS2QSZUR.js → chunk-SCIFT27R.js} +2 -1
  606. package/dist/esm/{chunk-GS2QSZUR.js.map → chunk-SCIFT27R.js.map} +1 -1
  607. package/dist/esm/chunk-SGJKXIWG.js +3 -0
  608. package/dist/esm/{chunk-DFGY2NZB.js.map → chunk-SGJKXIWG.js.map} +1 -1
  609. package/dist/esm/chunk-SHLERRO3.js +3 -0
  610. package/dist/esm/chunk-SHLERRO3.js.map +7 -0
  611. package/dist/esm/chunk-SV3CYQY5.js +3 -0
  612. package/dist/esm/{chunk-LVCUY2OS.js.map → chunk-SV3CYQY5.js.map} +2 -2
  613. package/dist/esm/chunk-TDT2CNES.js +2 -0
  614. package/dist/esm/chunk-TDT2CNES.js.map +7 -0
  615. package/dist/esm/chunk-TGRHRMQI.js +3 -0
  616. package/dist/esm/chunk-TGRHRMQI.js.map +7 -0
  617. package/dist/esm/{chunk-HIEGLLY7.js → chunk-TGUWRU7N.js} +2 -1
  618. package/dist/esm/{chunk-HIEGLLY7.js.map → chunk-TGUWRU7N.js.map} +1 -1
  619. package/dist/esm/{chunk-7ZOGH5NT.js → chunk-U5GQ3IFS.js} +2 -1
  620. package/dist/esm/{chunk-7ZOGH5NT.js.map → chunk-U5GQ3IFS.js.map} +1 -1
  621. package/dist/esm/chunk-UFJGZUKK.js +3 -0
  622. package/dist/esm/chunk-UFJGZUKK.js.map +7 -0
  623. package/dist/esm/chunk-UUQGOQ5H.js +3 -0
  624. package/dist/esm/{chunk-23KT3D2Z.js.map → chunk-UUQGOQ5H.js.map} +3 -3
  625. package/dist/esm/chunk-UZAS4PYM.js +3 -0
  626. package/dist/esm/chunk-UZAS4PYM.js.map +7 -0
  627. package/dist/esm/{chunk-OS3FCYZY.js → chunk-VQPANPMI.js} +2 -1
  628. package/dist/esm/chunk-VVBSYWUA.js +3 -0
  629. package/dist/esm/chunk-VVBSYWUA.js.map +7 -0
  630. package/dist/esm/chunk-WCGQ4IDE.js +3 -0
  631. package/dist/esm/{chunk-H3IAGAEL.js.map → chunk-WCGQ4IDE.js.map} +1 -1
  632. package/dist/esm/{chunk-HWQ3NTJP.js → chunk-WEBNIUEX.js} +2 -1
  633. package/dist/esm/{chunk-HWQ3NTJP.js.map → chunk-WEBNIUEX.js.map} +1 -1
  634. package/dist/esm/chunk-WH7PQSSG.js +2 -0
  635. package/dist/esm/{chunk-KL73COYX.js → chunk-WMZLMZHB.js} +2 -1
  636. package/dist/esm/{chunk-KL73COYX.js.map → chunk-WMZLMZHB.js.map} +1 -1
  637. package/dist/esm/{chunk-GBQZ4Z2H.js → chunk-WN3WMFAM.js} +3 -2
  638. package/dist/esm/{chunk-GBQZ4Z2H.js.map → chunk-WN3WMFAM.js.map} +1 -1
  639. package/dist/esm/{chunk-ETQNRMHU.js → chunk-WT2SYGTU.js} +3 -2
  640. package/dist/esm/{chunk-ETQNRMHU.js.map → chunk-WT2SYGTU.js.map} +1 -1
  641. package/dist/esm/{chunk-SUPFDIJL.js → chunk-WTP2KIK3.js} +2 -1
  642. package/dist/esm/{chunk-SUPFDIJL.js.map → chunk-WTP2KIK3.js.map} +1 -1
  643. package/dist/esm/{chunk-AGAQC4HH.js → chunk-WUCBFB25.js} +2 -1
  644. package/dist/esm/{chunk-AGAQC4HH.js.map → chunk-WUCBFB25.js.map} +1 -1
  645. package/dist/esm/chunk-WZKSLTBH.js +3 -0
  646. package/dist/esm/{chunk-BJUCBOGU.js.map → chunk-WZKSLTBH.js.map} +1 -1
  647. package/dist/esm/chunk-X272YV2E.js +3 -0
  648. package/dist/esm/chunk-X272YV2E.js.map +7 -0
  649. package/dist/esm/chunk-XH2CRCXR.js +3 -0
  650. package/dist/esm/chunk-XH2CRCXR.js.map +7 -0
  651. package/dist/esm/{chunk-KZEZDBE7.js → chunk-XL5OHW6Z.js} +3 -2
  652. package/dist/esm/{chunk-KZEZDBE7.js.map → chunk-XL5OHW6Z.js.map} +1 -1
  653. package/dist/esm/chunk-XMHNOIPB.js +3 -0
  654. package/dist/esm/{chunk-3BUQ7ADW.js.map → chunk-XMHNOIPB.js.map} +1 -1
  655. package/dist/esm/chunk-XU74PNM2.js +3 -0
  656. package/dist/esm/chunk-XU74PNM2.js.map +7 -0
  657. package/dist/esm/{chunk-3J6AUDID.js → chunk-XUCR7L4G.js} +2 -1
  658. package/dist/esm/{chunk-3J6AUDID.js.map → chunk-XUCR7L4G.js.map} +1 -1
  659. package/dist/esm/chunk-XVDT6DQZ.js +3 -0
  660. package/dist/esm/{chunk-TZTUPQYK.js.map → chunk-XVDT6DQZ.js.map} +1 -1
  661. package/dist/esm/{chunk-2N2AQNJH.js → chunk-Y2DBXOLT.js} +2 -1
  662. package/dist/esm/{chunk-2N2AQNJH.js.map → chunk-Y2DBXOLT.js.map} +1 -1
  663. package/dist/esm/chunk-YD2D73LF.js +3 -0
  664. package/dist/esm/chunk-YD2D73LF.js.map +7 -0
  665. package/dist/esm/chunk-YIKLO2XL.js +3 -0
  666. package/dist/esm/chunk-YIKLO2XL.js.map +7 -0
  667. package/dist/esm/chunk-YNCI5PY6.js +3 -0
  668. package/dist/esm/chunk-YNCI5PY6.js.map +7 -0
  669. package/dist/esm/chunk-YOSLXJI5.js +3 -0
  670. package/dist/esm/chunk-YOSLXJI5.js.map +7 -0
  671. package/dist/esm/chunk-YVZTQA2L.js +3 -0
  672. package/dist/esm/chunk-YVZTQA2L.js.map +7 -0
  673. package/dist/esm/chunk-YWG476GC.js +3 -0
  674. package/dist/esm/{chunk-MGQ4A2FI.js.map → chunk-YWG476GC.js.map} +1 -1
  675. package/dist/esm/chunk-YZZMQ457.js +3 -0
  676. package/dist/esm/{chunk-S6GWR6EZ.js.map → chunk-YZZMQ457.js.map} +1 -1
  677. package/dist/esm/chunk-Z27REN6T.js +3 -0
  678. package/dist/esm/chunk-Z27REN6T.js.map +7 -0
  679. package/dist/esm/{chunk-FVY44PTM.js → chunk-ZFDHZEWN.js} +3 -2
  680. package/dist/esm/{chunk-FVY44PTM.js.map → chunk-ZFDHZEWN.js.map} +1 -1
  681. package/dist/esm/chunk-ZPWKWESI.js +3 -0
  682. package/dist/esm/chunk-ZPWKWESI.js.map +7 -0
  683. package/dist/esm/components/_internal/base-button.d.ts +11 -1
  684. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  685. package/dist/esm/components/_internal/base-button.js +2 -1
  686. package/dist/esm/components/_internal/base-button.props.js +2 -1
  687. package/dist/esm/components/_internal/base-checkbox.props.js +2 -1
  688. package/dist/esm/components/_internal/base-menu.props.js +2 -1
  689. package/dist/esm/components/_internal/base-menu.utils.js +2 -1
  690. package/dist/esm/components/_internal/base-radio.props.js +2 -1
  691. package/dist/esm/components/_internal/base-tab-list.props.js +2 -1
  692. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts +19 -7
  693. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
  694. package/dist/esm/components/_internal/dropdown-menu-drill-down.js +2 -1
  695. package/dist/esm/components/_internal/menu-context.d.ts +12 -0
  696. package/dist/esm/components/_internal/menu-context.d.ts.map +1 -1
  697. package/dist/esm/components/_internal/menu-context.js +2 -1
  698. package/dist/esm/components/_internal/pane-chrome.d.ts +19 -2
  699. package/dist/esm/components/_internal/pane-chrome.d.ts.map +1 -1
  700. package/dist/esm/components/_internal/pane-chrome.js +2 -1
  701. package/dist/esm/components/_internal/shell-bottom.d.ts +1 -1
  702. package/dist/esm/components/_internal/shell-bottom.d.ts.map +1 -1
  703. package/dist/esm/components/_internal/shell-bottom.js +2 -1
  704. package/dist/esm/components/_internal/shell-handles.d.ts.map +1 -1
  705. package/dist/esm/components/_internal/shell-handles.js +2 -1
  706. package/dist/esm/components/_internal/shell-inspector.d.ts +1 -1
  707. package/dist/esm/components/_internal/shell-inspector.d.ts.map +1 -1
  708. package/dist/esm/components/_internal/shell-inspector.js +2 -1
  709. package/dist/esm/components/_internal/shell-pane.d.ts.map +1 -1
  710. package/dist/esm/components/_internal/shell-pane.js +2 -1
  711. package/dist/esm/components/_internal/shell-resizable.d.ts.map +1 -1
  712. package/dist/esm/components/_internal/shell-resizable.js +2 -1
  713. package/dist/esm/components/_internal/shell-resize.js +2 -1
  714. package/dist/esm/components/_internal/shell-rest.js +2 -1
  715. package/dist/esm/components/_internal/shell-sidebar.d.ts +1 -1
  716. package/dist/esm/components/_internal/shell-sidebar.d.ts.map +1 -1
  717. package/dist/esm/components/_internal/shell-sidebar.js +2 -1
  718. package/dist/esm/components/_internal/shell-store.d.ts.map +1 -1
  719. package/dist/esm/components/_internal/shell-store.js +2 -1
  720. package/dist/esm/components/accessible-icon.js +2 -1
  721. package/dist/esm/components/accordion.d.ts +2 -2
  722. package/dist/esm/components/accordion.d.ts.map +1 -1
  723. package/dist/esm/components/accordion.js +2 -1
  724. package/dist/esm/components/accordion.props.js +2 -1
  725. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  726. package/dist/esm/components/alert-dialog.js +2 -1
  727. package/dist/esm/components/alert-dialog.props.js +2 -1
  728. package/dist/esm/components/avatar.d.ts +1 -1
  729. package/dist/esm/components/avatar.d.ts.map +1 -1
  730. package/dist/esm/components/avatar.js +2 -1
  731. package/dist/esm/components/avatar.props.d.ts +8 -0
  732. package/dist/esm/components/avatar.props.d.ts.map +1 -1
  733. package/dist/esm/components/avatar.props.js +2 -1
  734. package/dist/esm/components/blockquote.d.ts +1 -1
  735. package/dist/esm/components/blockquote.d.ts.map +1 -1
  736. package/dist/esm/components/blockquote.js +2 -1
  737. package/dist/esm/components/blockquote.props.js +2 -1
  738. package/dist/esm/components/box.js +2 -1
  739. package/dist/esm/components/box.props.js +2 -1
  740. package/dist/esm/components/button.d.ts.map +1 -1
  741. package/dist/esm/components/button.js +2 -1
  742. package/dist/esm/components/button.props.js +2 -1
  743. package/dist/esm/components/card.js +2 -1
  744. package/dist/esm/components/card.props.js +2 -1
  745. package/dist/esm/components/chatbar.d.ts.map +1 -1
  746. package/dist/esm/components/chatbar.js +2 -1
  747. package/dist/esm/components/checkbox-group.d.ts.map +1 -1
  748. package/dist/esm/components/checkbox-group.js +2 -1
  749. package/dist/esm/components/checkbox-group.primitive.d.ts +12 -5
  750. package/dist/esm/components/checkbox-group.primitive.d.ts.map +1 -1
  751. package/dist/esm/components/checkbox-group.primitive.js +2 -1
  752. package/dist/esm/components/checkbox-group.props.js +2 -1
  753. package/dist/esm/components/checkbox.js +2 -1
  754. package/dist/esm/components/checkbox.props.js +2 -1
  755. package/dist/esm/components/chip.d.ts.map +1 -1
  756. package/dist/esm/components/chip.js +2 -1
  757. package/dist/esm/components/chip.props.js +2 -1
  758. package/dist/esm/components/code.d.ts.map +1 -1
  759. package/dist/esm/components/code.js +2 -1
  760. package/dist/esm/components/code.props.js +2 -1
  761. package/dist/esm/components/combobox.d.ts.map +1 -1
  762. package/dist/esm/components/combobox.js +2 -1
  763. package/dist/esm/components/combobox.props.js +2 -1
  764. package/dist/esm/components/context-menu.d.ts +1 -2
  765. package/dist/esm/components/context-menu.d.ts.map +1 -1
  766. package/dist/esm/components/context-menu.js +2 -1
  767. package/dist/esm/components/context-menu.props.js +2 -1
  768. package/dist/esm/components/dialog.d.ts +1 -1
  769. package/dist/esm/components/dialog.d.ts.map +1 -1
  770. package/dist/esm/components/dialog.js +2 -1
  771. package/dist/esm/components/dialog.props.js +2 -1
  772. package/dist/esm/components/dropdown-menu.d.ts +1 -2
  773. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  774. package/dist/esm/components/dropdown-menu.js +2 -1
  775. package/dist/esm/components/dropdown-menu.props.js +2 -1
  776. package/dist/esm/components/flex.js +2 -1
  777. package/dist/esm/components/flex.props.js +2 -1
  778. package/dist/esm/components/grid.js +2 -1
  779. package/dist/esm/components/grid.props.js +2 -1
  780. package/dist/esm/components/heading.d.ts +2 -2
  781. package/dist/esm/components/heading.d.ts.map +1 -1
  782. package/dist/esm/components/heading.js +2 -1
  783. package/dist/esm/components/heading.props.d.ts +1 -1
  784. package/dist/esm/components/heading.props.js +2 -1
  785. package/dist/esm/components/icons.d.ts +3 -1
  786. package/dist/esm/components/icons.d.ts.map +1 -1
  787. package/dist/esm/components/icons.js +2 -1
  788. package/dist/esm/components/image.d.ts +9 -2
  789. package/dist/esm/components/image.d.ts.map +1 -1
  790. package/dist/esm/components/image.js +2 -1
  791. package/dist/esm/components/image.props.js +2 -1
  792. package/dist/esm/components/index.d.ts +2 -2
  793. package/dist/esm/components/index.d.ts.map +1 -1
  794. package/dist/esm/components/index.js +2 -1
  795. package/dist/esm/components/kbd.js +2 -1
  796. package/dist/esm/components/kbd.props.js +2 -1
  797. package/dist/esm/components/link.js +2 -1
  798. package/dist/esm/components/link.props.js +2 -1
  799. package/dist/esm/components/message-scroller.d.ts +2 -2
  800. package/dist/esm/components/message-scroller.d.ts.map +1 -1
  801. package/dist/esm/components/message-scroller.js +2 -1
  802. package/dist/esm/components/navbar.d.ts.map +1 -1
  803. package/dist/esm/components/navbar.js +2 -1
  804. package/dist/esm/components/navbar.props.js +2 -1
  805. package/dist/esm/components/notice.d.ts +4 -1
  806. package/dist/esm/components/notice.d.ts.map +1 -1
  807. package/dist/esm/components/notice.js +2 -1
  808. package/dist/esm/components/popover.d.ts +3 -1
  809. package/dist/esm/components/popover.d.ts.map +1 -1
  810. package/dist/esm/components/popover.js +2 -1
  811. package/dist/esm/components/popover.props.js +2 -1
  812. package/dist/esm/components/portal.js +2 -1
  813. package/dist/esm/components/progress.d.ts.map +1 -1
  814. package/dist/esm/components/progress.js +2 -1
  815. package/dist/esm/components/progress.props.js +2 -1
  816. package/dist/esm/components/radio-group.js +2 -1
  817. package/dist/esm/components/radio-group.props.js +2 -1
  818. package/dist/esm/components/radio.js +2 -1
  819. package/dist/esm/components/radio.props.js +2 -1
  820. package/dist/esm/components/reset.js +2 -1
  821. package/dist/esm/components/schemas/base-button.schema.js +2 -1
  822. package/dist/esm/components/schemas/button.schema.d.ts +2 -2
  823. package/dist/esm/components/schemas/button.schema.js +2 -1
  824. package/dist/esm/components/schemas/index.js +2 -1
  825. package/dist/esm/components/schemas/index.js.map +1 -1
  826. package/dist/esm/components/schemas/shell.schema.js +2 -1
  827. package/dist/esm/components/schemas/toggle.schema.d.ts +1 -1
  828. package/dist/esm/components/schemas/toggle.schema.js +2 -1
  829. package/dist/esm/components/scroll-area.d.ts +3 -1
  830. package/dist/esm/components/scroll-area.d.ts.map +1 -1
  831. package/dist/esm/components/scroll-area.js +2 -1
  832. package/dist/esm/components/scroll-area.props.js +2 -1
  833. package/dist/esm/components/segmented-control.d.ts +3 -1
  834. package/dist/esm/components/segmented-control.d.ts.map +1 -1
  835. package/dist/esm/components/segmented-control.js +2 -1
  836. package/dist/esm/components/segmented-control.props.d.ts +0 -1
  837. package/dist/esm/components/segmented-control.props.d.ts.map +1 -1
  838. package/dist/esm/components/segmented-control.props.js +2 -1
  839. package/dist/esm/components/select.d.ts.map +1 -1
  840. package/dist/esm/components/select.js +2 -1
  841. package/dist/esm/components/select.props.js +2 -1
  842. package/dist/esm/components/separator.d.ts.map +1 -1
  843. package/dist/esm/components/separator.js +2 -1
  844. package/dist/esm/components/separator.props.d.ts +1 -1
  845. package/dist/esm/components/separator.props.js +2 -1
  846. package/dist/esm/components/sheet.d.ts +2 -1
  847. package/dist/esm/components/sheet.d.ts.map +1 -1
  848. package/dist/esm/components/sheet.js +2 -1
  849. package/dist/esm/components/shell.context.js +2 -1
  850. package/dist/esm/components/shell.d.ts +17 -3
  851. package/dist/esm/components/shell.d.ts.map +1 -1
  852. package/dist/esm/components/shell.hooks.js +2 -1
  853. package/dist/esm/components/shell.js +2 -1
  854. package/dist/esm/components/shell.types.js +2 -1
  855. package/dist/esm/components/sidebar.d.ts.map +1 -1
  856. package/dist/esm/components/sidebar.js +2 -1
  857. package/dist/esm/components/slider.d.ts.map +1 -1
  858. package/dist/esm/components/slider.js +2 -1
  859. package/dist/esm/components/slider.props.d.ts +0 -2
  860. package/dist/esm/components/slider.props.d.ts.map +1 -1
  861. package/dist/esm/components/slider.props.js +2 -1
  862. package/dist/esm/components/slot.js +2 -1
  863. package/dist/esm/components/spinner.d.ts.map +1 -1
  864. package/dist/esm/components/spinner.js +2 -1
  865. package/dist/esm/components/spinner.props.js +2 -1
  866. package/dist/esm/components/switch.js +2 -1
  867. package/dist/esm/components/switch.props.js +2 -1
  868. package/dist/esm/components/table.d.ts.map +1 -1
  869. package/dist/esm/components/table.js +2 -1
  870. package/dist/esm/components/table.props.d.ts +0 -2
  871. package/dist/esm/components/table.props.d.ts.map +1 -1
  872. package/dist/esm/components/table.props.js +2 -1
  873. package/dist/esm/components/tabs.d.ts.map +1 -1
  874. package/dist/esm/components/tabs.js +2 -1
  875. package/dist/esm/components/tabs.props.js +2 -1
  876. package/dist/esm/components/text-area.d.ts.map +1 -1
  877. package/dist/esm/components/text-area.js +2 -1
  878. package/dist/esm/components/text-area.props.js +2 -1
  879. package/dist/esm/components/text-field.d.ts.map +1 -1
  880. package/dist/esm/components/text-field.js +2 -1
  881. package/dist/esm/components/text-field.props.js +2 -1
  882. package/dist/esm/components/text.js +2 -1
  883. package/dist/esm/components/text.props.js +2 -1
  884. package/dist/esm/components/theme.d.ts.map +1 -1
  885. package/dist/esm/components/theme.js +2 -1
  886. package/dist/esm/components/theme.props.js +2 -1
  887. package/dist/esm/components/toggle.d.ts +3 -2
  888. package/dist/esm/components/toggle.d.ts.map +1 -1
  889. package/dist/esm/components/toggle.js +2 -1
  890. package/dist/esm/components/toolbar.d.ts +83 -8
  891. package/dist/esm/components/toolbar.d.ts.map +1 -1
  892. package/dist/esm/components/toolbar.js +2 -1
  893. package/dist/esm/components/toolbar.props.js +2 -1
  894. package/dist/esm/components/tooltip.d.ts +13 -2
  895. package/dist/esm/components/tooltip.d.ts.map +1 -1
  896. package/dist/esm/components/tooltip.js +2 -1
  897. package/dist/esm/components/tooltip.props.js +2 -1
  898. package/dist/esm/components/virtual-menu.d.ts +22 -17
  899. package/dist/esm/components/virtual-menu.d.ts.map +1 -1
  900. package/dist/esm/components/virtual-menu.js +2 -1
  901. package/dist/esm/components/visually-hidden.js +2 -1
  902. package/dist/esm/helpers/compile-prop-defs.js +1 -1
  903. package/dist/esm/helpers/extract-margin-props.d.ts +7 -7
  904. package/dist/esm/helpers/extract-margin-props.js +1 -1
  905. package/dist/esm/helpers/extract-props.js +1 -1
  906. package/dist/esm/helpers/font-config.js +1 -1
  907. package/dist/esm/helpers/get-margin-styles.d.ts.map +1 -1
  908. package/dist/esm/helpers/get-margin-styles.js +1 -1
  909. package/dist/esm/helpers/get-matching-gray-color.js +1 -1
  910. package/dist/esm/helpers/get-responsive-styles.js +1 -1
  911. package/dist/esm/helpers/get-subtree.js +1 -1
  912. package/dist/esm/helpers/has-own-property.js +1 -1
  913. package/dist/esm/helpers/index.js +1 -1
  914. package/dist/esm/helpers/inert.js +1 -1
  915. package/dist/esm/helpers/inert.js.map +1 -1
  916. package/dist/esm/helpers/is-responsive-object.js +1 -1
  917. package/dist/esm/helpers/map-prop-values.js +1 -1
  918. package/dist/esm/helpers/merge-styles.js +1 -1
  919. package/dist/esm/helpers/normalize-to-px.js +1 -1
  920. package/dist/esm/helpers/require-react-element.js +1 -1
  921. package/dist/esm/helpers/theme-size.js +1 -1
  922. package/dist/esm/helpers/warn-deprecated.js +1 -1
  923. package/dist/esm/helpers/warn-deprecated.js.map +4 -4
  924. package/dist/esm/hooks/appearance-script.js +11 -1
  925. package/dist/esm/hooks/appearance-script.js.map +4 -4
  926. package/dist/esm/hooks/index.js +2 -1
  927. package/dist/esm/hooks/use-appearance.d.ts.map +1 -1
  928. package/dist/esm/hooks/use-appearance.js +2 -1
  929. package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts +1 -1
  930. package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -1
  931. package/dist/esm/hooks/use-body-pointer-events-cleanup.js +2 -1
  932. package/dist/esm/hooks/use-breakpoint.js +2 -1
  933. package/dist/esm/hooks/use-live-announcer.js +2 -1
  934. package/dist/esm/hooks/use-prop-synced-state.js +2 -1
  935. package/dist/esm/hooks/use-scroll-edges.d.ts +4 -2
  936. package/dist/esm/hooks/use-scroll-edges.d.ts.map +1 -1
  937. package/dist/esm/hooks/use-scroll-edges.js +2 -1
  938. package/dist/esm/hooks/use-thumb-sync.js +2 -1
  939. package/dist/esm/hooks/use-toggle-state.js +2 -1
  940. package/dist/esm/hooks/use-tooltip-wrapper.js +2 -1
  941. package/dist/esm/index.js +2 -1
  942. package/dist/esm/props/as-child.prop.js +1 -1
  943. package/dist/esm/props/color.prop.js +1 -1
  944. package/dist/esm/props/emphasis.prop.js +1 -1
  945. package/dist/esm/props/font-family.prop.js +1 -1
  946. package/dist/esm/props/gap.props.d.ts +4 -4
  947. package/dist/esm/props/gap.props.js +1 -1
  948. package/dist/esm/props/height.props.js +1 -1
  949. package/dist/esm/props/index.js +1 -1
  950. package/dist/esm/props/index.js.map +4 -4
  951. package/dist/esm/props/layout.props.js +1 -1
  952. package/dist/esm/props/leading-trim.prop.js +1 -1
  953. package/dist/esm/props/margin.props.js +1 -1
  954. package/dist/esm/props/padding.props.js +1 -1
  955. package/dist/esm/props/prop-def.js +1 -1
  956. package/dist/esm/props/radius.prop.js +1 -1
  957. package/dist/esm/props/shadow.props.js +1 -1
  958. package/dist/esm/props/text-align.prop.js +1 -1
  959. package/dist/esm/props/text-wrap.prop.js +1 -1
  960. package/dist/esm/props/truncate.prop.js +1 -1
  961. package/dist/esm/props/weight.prop.js +1 -1
  962. package/dist/esm/props/width.props.js +1 -1
  963. package/layout/utilities.css +2 -2
  964. package/layout.css +2 -2
  965. package/package.json +3 -7
  966. package/src/components/_internal/base-button.css +24 -6
  967. package/src/components/_internal/base-button.props.ts +1 -1
  968. package/src/components/_internal/base-button.tsx +127 -43
  969. package/src/components/_internal/base-checkbox.css +23 -0
  970. package/src/components/_internal/base-menu.css +9 -3
  971. package/src/components/_internal/base-radio.css +22 -0
  972. package/src/components/_internal/base-sidebar-menu.css +8 -0
  973. package/src/components/_internal/base-tab-list.css +5 -0
  974. package/src/components/_internal/dropdown-menu-drill-down.tsx +45 -26
  975. package/src/components/_internal/menu-context.tsx +47 -1
  976. package/src/components/_internal/pane-chrome.tsx +50 -11
  977. package/src/components/_internal/shell-bottom.tsx +2 -0
  978. package/src/components/_internal/shell-handles.tsx +10 -1
  979. package/src/components/_internal/shell-inspector.tsx +3 -0
  980. package/src/components/_internal/shell-pane.tsx +5 -4
  981. package/src/components/_internal/shell-resizable.tsx +17 -8
  982. package/src/components/_internal/shell-sidebar.tsx +3 -0
  983. package/src/components/_internal/shell-store.tsx +2 -1
  984. package/src/components/accordion.css +76 -58
  985. package/src/components/accordion.tsx +12 -42
  986. package/src/components/alert-dialog.tsx +63 -161
  987. package/src/components/avatar.css +6 -2
  988. package/src/components/avatar.props.tsx +6 -0
  989. package/src/components/avatar.tsx +79 -60
  990. package/src/components/blockquote.css +2 -2
  991. package/src/components/blockquote.tsx +8 -9
  992. package/src/components/button.tsx +12 -5
  993. package/src/components/card.css +14 -3
  994. package/src/components/chatbar.css +20 -3
  995. package/src/components/chatbar.tsx +41 -31
  996. package/src/components/checkbox-group.css +1 -5
  997. package/src/components/checkbox-group.primitive.tsx +40 -51
  998. package/src/components/checkbox-group.tsx +1 -9
  999. package/src/components/checkbox.css +1 -5
  1000. package/src/components/chip.css +18 -23
  1001. package/src/components/chip.tsx +3 -4
  1002. package/src/components/code.tsx +3 -2
  1003. package/src/components/combobox.tsx +25 -26
  1004. package/src/components/context-menu.tsx +69 -31
  1005. package/src/components/dialog.tsx +59 -160
  1006. package/src/components/dropdown-menu.css +0 -6
  1007. package/src/components/dropdown-menu.tsx +78 -38
  1008. package/src/components/heading.props.tsx +1 -1
  1009. package/src/components/heading.tsx +4 -4
  1010. package/src/components/icons.tsx +11 -1
  1011. package/src/components/image.css +5 -0
  1012. package/src/components/image.tsx +29 -3
  1013. package/src/components/index.tsx +8 -1
  1014. package/src/components/kbd.css +6 -5
  1015. package/src/components/link.css +1 -5
  1016. package/src/components/message-scroller.tsx +56 -45
  1017. package/src/components/navbar.css +9 -1
  1018. package/src/components/navbar.tsx +34 -69
  1019. package/src/components/notice.tsx +6 -3
  1020. package/src/components/popover.css +14 -10
  1021. package/src/components/popover.tsx +13 -11
  1022. package/src/components/progress.css +33 -6
  1023. package/src/components/progress.tsx +8 -3
  1024. package/src/components/scroll-area.css +62 -6
  1025. package/src/components/scroll-area.tsx +49 -3
  1026. package/src/components/segmented-control.css +181 -273
  1027. package/src/components/segmented-control.props.tsx +1 -1
  1028. package/src/components/segmented-control.tsx +98 -42
  1029. package/src/components/select.css +16 -29
  1030. package/src/components/select.tsx +27 -18
  1031. package/src/components/separator.css +8 -1
  1032. package/src/components/separator.props.tsx +1 -1
  1033. package/src/components/separator.tsx +31 -1
  1034. package/src/components/sheet.css +11 -11
  1035. package/src/components/sheet.tsx +76 -141
  1036. package/src/components/shell.css +162 -21
  1037. package/src/components/shell.tsx +47 -9
  1038. package/src/components/sidebar.css +1 -135
  1039. package/src/components/sidebar.tsx +202 -173
  1040. package/src/components/slider.css +90 -21
  1041. package/src/components/slider.props.tsx +2 -2
  1042. package/src/components/slider.tsx +120 -114
  1043. package/src/components/spinner.css +10 -2
  1044. package/src/components/spinner.tsx +15 -3
  1045. package/src/components/switch.css +40 -8
  1046. package/src/components/table.css +5 -1
  1047. package/src/components/table.props.tsx +0 -9
  1048. package/src/components/table.tsx +20 -6
  1049. package/src/components/tabs.css +34 -0
  1050. package/src/components/tabs.tsx +10 -5
  1051. package/src/components/text-area.css +19 -3
  1052. package/src/components/text-area.tsx +20 -16
  1053. package/src/components/text-field.css +51 -36
  1054. package/src/components/text-field.tsx +100 -49
  1055. package/src/components/theme.tsx +14 -44
  1056. package/src/components/toggle.tsx +21 -39
  1057. package/src/components/toolbar.css +34 -0
  1058. package/src/components/toolbar.tsx +459 -23
  1059. package/src/components/tooltip.css +8 -1
  1060. package/src/components/tooltip.tsx +30 -3
  1061. package/src/components/virtual-menu.css +80 -0
  1062. package/src/components/virtual-menu.tsx +209 -95
  1063. package/src/helpers/get-margin-styles.ts +8 -10
  1064. package/src/hooks/use-appearance.ts +32 -19
  1065. package/src/hooks/use-body-pointer-events-cleanup.ts +123 -124
  1066. package/src/hooks/use-scroll-edges.ts +11 -2
  1067. package/src/props/gap.props.ts +4 -4
  1068. package/src/styles/utilities/margin.css +2 -2
  1069. package/src/styles/utilities/text-align.css +8 -0
  1070. package/src/styles/utilities/truncate.css +10 -0
  1071. package/styles.css +2024 -990
  1072. package/utilities.css +43 -2
  1073. package/dist/esm/chunk-23KT3D2Z.js +0 -2
  1074. package/dist/esm/chunk-2E4P5XQL.js +0 -2
  1075. package/dist/esm/chunk-2E4P5XQL.js.map +0 -7
  1076. package/dist/esm/chunk-2KZ4NI3X.js +0 -1
  1077. package/dist/esm/chunk-3BUQ7ADW.js +0 -2
  1078. package/dist/esm/chunk-3JA7SJDT.js +0 -2
  1079. package/dist/esm/chunk-3JA7SJDT.js.map +0 -7
  1080. package/dist/esm/chunk-3KQE2PSJ.js +0 -2
  1081. package/dist/esm/chunk-3KQE2PSJ.js.map +0 -7
  1082. package/dist/esm/chunk-3PTKPDSA.js +0 -2
  1083. package/dist/esm/chunk-3PTKPDSA.js.map +0 -7
  1084. package/dist/esm/chunk-3QZBWH2A.js.map +0 -7
  1085. package/dist/esm/chunk-5BWLY27A.js +0 -2
  1086. package/dist/esm/chunk-5BWLY27A.js.map +0 -7
  1087. package/dist/esm/chunk-5ROQAZ7J.js +0 -2
  1088. package/dist/esm/chunk-5ROQAZ7J.js.map +0 -7
  1089. package/dist/esm/chunk-63PQNLFJ.js +0 -2
  1090. package/dist/esm/chunk-6CK7UTNH.js +0 -2
  1091. package/dist/esm/chunk-6CK7UTNH.js.map +0 -7
  1092. package/dist/esm/chunk-6DDOR73D.js +0 -2
  1093. package/dist/esm/chunk-6DDOR73D.js.map +0 -7
  1094. package/dist/esm/chunk-6DWDNKLS.js +0 -1
  1095. package/dist/esm/chunk-6RK26HIY.js +0 -2
  1096. package/dist/esm/chunk-6RK26HIY.js.map +0 -7
  1097. package/dist/esm/chunk-7CUQMU3T.js +0 -2
  1098. package/dist/esm/chunk-7CUQMU3T.js.map +0 -7
  1099. package/dist/esm/chunk-7ESWH773.js +0 -2
  1100. package/dist/esm/chunk-7ESWH773.js.map +0 -7
  1101. package/dist/esm/chunk-7SS4UUJH.js +0 -2
  1102. package/dist/esm/chunk-7SS4UUJH.js.map +0 -7
  1103. package/dist/esm/chunk-AB3QCCUM.js +0 -2
  1104. package/dist/esm/chunk-AB3QCCUM.js.map +0 -7
  1105. package/dist/esm/chunk-BEP4AH5V.js +0 -2
  1106. package/dist/esm/chunk-BEP4AH5V.js.map +0 -7
  1107. package/dist/esm/chunk-BJUCBOGU.js +0 -2
  1108. package/dist/esm/chunk-BOL3VVSN.js +0 -2
  1109. package/dist/esm/chunk-BOL3VVSN.js.map +0 -7
  1110. package/dist/esm/chunk-CLZW2IDD.js +0 -2
  1111. package/dist/esm/chunk-CLZW2IDD.js.map +0 -7
  1112. package/dist/esm/chunk-DBROSD2J.js +0 -2
  1113. package/dist/esm/chunk-DBROSD2J.js.map +0 -7
  1114. package/dist/esm/chunk-DFGY2NZB.js +0 -2
  1115. package/dist/esm/chunk-DSPYHO3L.js +0 -2
  1116. package/dist/esm/chunk-E2D2VWUI.js +0 -2
  1117. package/dist/esm/chunk-E2D2VWUI.js.map +0 -7
  1118. package/dist/esm/chunk-EMNSA65L.js +0 -2
  1119. package/dist/esm/chunk-EMNSA65L.js.map +0 -7
  1120. package/dist/esm/chunk-EZYXYLR2.js +0 -2
  1121. package/dist/esm/chunk-FDHWAC6W.js +0 -2
  1122. package/dist/esm/chunk-FDHWAC6W.js.map +0 -7
  1123. package/dist/esm/chunk-FFG32ERA.js +0 -5
  1124. package/dist/esm/chunk-FFG32ERA.js.map +0 -7
  1125. package/dist/esm/chunk-FHPHEIYJ.js +0 -2
  1126. package/dist/esm/chunk-FHPHEIYJ.js.map +0 -7
  1127. package/dist/esm/chunk-FJFBM7HW.js +0 -2
  1128. package/dist/esm/chunk-FJFBM7HW.js.map +0 -7
  1129. package/dist/esm/chunk-FYT7TYGS.js +0 -2
  1130. package/dist/esm/chunk-FYT7TYGS.js.map +0 -7
  1131. package/dist/esm/chunk-GLV7VGBH.js +0 -2
  1132. package/dist/esm/chunk-GLV7VGBH.js.map +0 -7
  1133. package/dist/esm/chunk-H3IAGAEL.js +0 -2
  1134. package/dist/esm/chunk-HIKMKGPT.js +0 -2
  1135. package/dist/esm/chunk-HIKMKGPT.js.map +0 -7
  1136. package/dist/esm/chunk-HKPXDQ2B.js +0 -2
  1137. package/dist/esm/chunk-HT7RFHLW.js +0 -2
  1138. package/dist/esm/chunk-HT7RFHLW.js.map +0 -7
  1139. package/dist/esm/chunk-IUER6BNH.js +0 -12
  1140. package/dist/esm/chunk-IUER6BNH.js.map +0 -7
  1141. package/dist/esm/chunk-IVQHRM33.js +0 -2
  1142. package/dist/esm/chunk-IVQHRM33.js.map +0 -7
  1143. package/dist/esm/chunk-JBHRV364.js +0 -2
  1144. package/dist/esm/chunk-KS4U4VPH.js +0 -2
  1145. package/dist/esm/chunk-KS4U4VPH.js.map +0 -7
  1146. package/dist/esm/chunk-KT2CMUS5.js +0 -2
  1147. package/dist/esm/chunk-KT2CMUS5.js.map +0 -7
  1148. package/dist/esm/chunk-L2R62BOB.js +0 -2
  1149. package/dist/esm/chunk-L2R62BOB.js.map +0 -7
  1150. package/dist/esm/chunk-LHIS3UKQ.js +0 -2
  1151. package/dist/esm/chunk-LHIS3UKQ.js.map +0 -7
  1152. package/dist/esm/chunk-LVCUY2OS.js +0 -2
  1153. package/dist/esm/chunk-M7I6ISPL.js +0 -2
  1154. package/dist/esm/chunk-M7I6ISPL.js.map +0 -7
  1155. package/dist/esm/chunk-MGQ4A2FI.js +0 -2
  1156. package/dist/esm/chunk-MHANZINI.js +0 -2
  1157. package/dist/esm/chunk-MHANZINI.js.map +0 -7
  1158. package/dist/esm/chunk-MYYXOFU5.js +0 -1
  1159. package/dist/esm/chunk-NNZTSXKH.js +0 -2
  1160. package/dist/esm/chunk-NQDMTOGB.js +0 -2
  1161. package/dist/esm/chunk-NQDMTOGB.js.map +0 -7
  1162. package/dist/esm/chunk-OA7C34MJ.js +0 -1
  1163. package/dist/esm/chunk-PJR6GRZC.js +0 -2
  1164. package/dist/esm/chunk-PJR6GRZC.js.map +0 -7
  1165. package/dist/esm/chunk-PPZY7PJA.js +0 -2
  1166. package/dist/esm/chunk-PPZY7PJA.js.map +0 -7
  1167. package/dist/esm/chunk-Q4IA622Q.js +0 -2
  1168. package/dist/esm/chunk-Q6MFPATL.js +0 -2
  1169. package/dist/esm/chunk-Q6MFPATL.js.map +0 -7
  1170. package/dist/esm/chunk-QGCXTULQ.js +0 -2
  1171. package/dist/esm/chunk-QGCXTULQ.js.map +0 -7
  1172. package/dist/esm/chunk-QOHJIF25.js +0 -2
  1173. package/dist/esm/chunk-QOHJIF25.js.map +0 -7
  1174. package/dist/esm/chunk-R4XJNQX5.js +0 -2
  1175. package/dist/esm/chunk-R4XJNQX5.js.map +0 -7
  1176. package/dist/esm/chunk-S6GWR6EZ.js +0 -2
  1177. package/dist/esm/chunk-SKOYHBIE.js +0 -2
  1178. package/dist/esm/chunk-STPMPY3X.js +0 -1
  1179. package/dist/esm/chunk-TZTUPQYK.js +0 -2
  1180. package/dist/esm/chunk-UE3HATOA.js +0 -2
  1181. package/dist/esm/chunk-UE3HATOA.js.map +0 -7
  1182. package/dist/esm/chunk-UICSVJ3B.js +0 -1
  1183. package/dist/esm/chunk-UONSKZQT.js +0 -2
  1184. package/dist/esm/chunk-V32EP3S7.js +0 -2
  1185. package/dist/esm/chunk-V32EP3S7.js.map +0 -7
  1186. package/dist/esm/chunk-VPSMETY2.js +0 -2
  1187. package/dist/esm/chunk-VXQQ6KXI.js +0 -2
  1188. package/dist/esm/chunk-VXQQ6KXI.js.map +0 -7
  1189. package/dist/esm/chunk-WOR3JCLX.js +0 -1
  1190. package/dist/esm/chunk-WOR3JCLX.js.map +0 -7
  1191. package/dist/esm/chunk-X4A3XRBY.js +0 -2
  1192. package/dist/esm/chunk-XKSU3NLG.js +0 -2
  1193. package/dist/esm/chunk-XRCMPBAY.js +0 -2
  1194. package/dist/esm/chunk-XRCMPBAY.js.map +0 -7
  1195. package/dist/esm/chunk-XZQSSRTG.js +0 -2
  1196. package/dist/esm/chunk-Y3JYEEFB.js +0 -2
  1197. package/dist/esm/chunk-Y3JYEEFB.js.map +0 -7
  1198. package/dist/esm/chunk-YIK4ACXS.js +0 -2
  1199. package/dist/esm/chunk-YIK4ACXS.js.map +0 -7
  1200. package/dist/esm/chunk-YXLDRDHW.js +0 -2
  1201. package/dist/esm/chunk-YZM54IJE.js +0 -2
  1202. package/dist/esm/chunk-YZM54IJE.js.map +0 -7
  1203. package/dist/esm/chunk-ZEX2DECM.js +0 -2
  1204. package/dist/esm/chunk-ZEX2DECM.js.map +0 -7
  1205. package/dist/esm/chunk-ZJI2IK7C.js +0 -2
  1206. package/dist/esm/chunk-ZJI2IK7C.js.map +0 -7
  1207. package/dist/esm/chunk-ZNDCZM5A.js +0 -2
  1208. /package/dist/esm/{chunk-ELAW7ZUG.js.map → chunk-6FLLFCBU.js.map} +0 -0
  1209. /package/dist/esm/{chunk-2KZ4NI3X.js.map → chunk-A2OMWZI7.js.map} +0 -0
  1210. /package/dist/esm/{chunk-6DWDNKLS.js.map → chunk-AYKOOEZR.js.map} +0 -0
  1211. /package/dist/esm/{chunk-7FTUTUMD.js.map → chunk-IZXML75Y.js.map} +0 -0
  1212. /package/dist/esm/{chunk-MYYXOFU5.js.map → chunk-J3QIUJ6F.js.map} +0 -0
  1213. /package/dist/esm/{chunk-PBFSBHBS.js.map → chunk-JUY7CBSL.js.map} +0 -0
  1214. /package/dist/esm/{chunk-OA7C34MJ.js.map → chunk-JZ5Z53MN.js.map} +0 -0
  1215. /package/dist/esm/{chunk-OS3FCYZY.js.map → chunk-NG54K6FL.js.map} +0 -0
  1216. /package/dist/esm/{chunk-STPMPY3X.js.map → chunk-VQPANPMI.js.map} +0 -0
  1217. /package/dist/esm/{chunk-UICSVJ3B.js.map → chunk-WH7PQSSG.js.map} +0 -0
@@ -13,7 +13,7 @@ import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-p
13
13
  import type { GetPropDefTypes } from '../props/prop-def.js';
14
14
 
15
15
  interface AvatarProps extends AvatarImplProps {}
16
- const Avatar = React.forwardRef<AvatarImplElement, AvatarProps>((ownProps, forwardedRef) => {
16
+ const Avatar = React.forwardRef<AvatarElement, AvatarProps>((ownProps, forwardedRef) => {
17
17
  // An unset size follows the Theme, like a control. Sizes above 4 are only explicit.
18
18
  const props = useThemeSizeProps(ownProps, avatarPropDefs.size);
19
19
  const {
@@ -24,32 +24,54 @@ const Avatar = React.forwardRef<AvatarImplElement, AvatarProps>((ownProps, forwa
24
24
  color,
25
25
  radius,
26
26
  status,
27
+ statusLabel,
27
28
  badge,
28
- ...imageProps
29
+ // Only these reach the <img>, which Radix renders once the picture has loaded.
30
+ fallback,
31
+ onLoadingStatusChange,
32
+ src,
33
+ alt,
34
+ srcSet,
35
+ sizes,
36
+ crossOrigin,
37
+ referrerPolicy,
38
+ loading,
39
+ decoding,
40
+ onLoad,
41
+ onError,
42
+ // Everything else (id, aria-*, data-*, handlers) goes on the root, so it is always rendered.
43
+ ...rootProps
29
44
  } = extractProps(props, avatarPropDefs);
45
+ const imageProps = { fallback, onLoadingStatusChange, src, alt, srcSet, sizes, crossOrigin, referrerPolicy, loading, decoding, onLoad, onError };
30
46
 
31
47
  if (process.env.NODE_ENV !== 'production') {
32
48
  if (status !== undefined && badge !== undefined) {
33
- console.warn(
34
- 'Avatar: Cannot use both `status` and `badge` props together. ' +
35
- 'The `badge` prop will be used and `status` will be ignored.'
36
- );
49
+ console.warn('Avatar: Cannot use both `status` and `badge` props together. ' + 'The `badge` prop will be used and `status` will be ignored.');
37
50
  }
38
51
  }
39
52
 
40
53
  // Cheap boolean checks — no memoization needed
41
- const isDisabled =
42
- asChild &&
43
- children != null &&
44
- React.isValidElement(children) &&
45
- ((children.props as any).disabled === true ||
46
- (children.props as any)['data-disabled'] === true);
54
+ const isDisabled = asChild && children != null && React.isValidElement(children) && ((children.props as any).disabled === true || (children.props as any)['data-disabled'] === true);
47
55
 
48
56
  const hasIndicator = badge !== undefined || status !== undefined;
49
57
 
58
+ const indicator =
59
+ badge !== undefined ? (
60
+ <span className="kui-AvatarBadge">{badge}</span>
61
+ ) : status !== undefined ? (
62
+ <span
63
+ className="kui-AvatarStatus"
64
+ data-accent-color={status}
65
+ role={statusLabel ? 'img' : undefined}
66
+ aria-label={statusLabel || undefined}
67
+ aria-hidden={statusLabel ? undefined : true}
68
+ />
69
+ ) : null;
70
+
50
71
  return (
51
- // TODO as a rule, should we rather spread the props on root?
52
72
  <AvatarPrimitive.Root
73
+ {...(rootProps as React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>)}
74
+ ref={forwardedRef}
53
75
  data-accent-color={color}
54
76
  data-radius={radius}
55
77
  data-disabled={isDisabled || undefined}
@@ -58,67 +80,64 @@ const Avatar = React.forwardRef<AvatarImplElement, AvatarProps>((ownProps, forwa
58
80
  style={style}
59
81
  asChild={asChild}
60
82
  >
61
- {getSubtree({ asChild, children }, <AvatarImpl ref={forwardedRef} {...imageProps} />)}
62
- {badge !== undefined ? (
63
- <span className="kui-AvatarBadge">{badge}</span>
64
- ) : status !== undefined ? (
65
- <span className="kui-AvatarStatus" data-accent-color={status} />
66
- ) : null}
83
+ {/* With asChild, Slot takes exactly one child, so the indicator goes inside it. */}
84
+ {getSubtree(
85
+ { asChild, children },
86
+ <>
87
+ <AvatarImpl {...imageProps} />
88
+ {indicator}
89
+ </>,
90
+ )}
67
91
  </AvatarPrimitive.Root>
68
92
  );
69
93
  });
70
94
  Avatar.displayName = 'Avatar';
71
95
 
72
- type AvatarImplElement = React.ElementRef<typeof AvatarPrimitive.Image>;
96
+ type AvatarElement = React.ElementRef<typeof AvatarPrimitive.Root>;
73
97
  type AvatarOwnProps = GetPropDefTypes<typeof avatarPropDefs>;
74
98
 
75
- interface AvatarImplProps
76
- extends ComponentPropsWithout<typeof AvatarPrimitive.Image, RemovedProps>,
77
- AvatarOwnProps {
99
+ interface AvatarImplProps extends ComponentPropsWithout<typeof AvatarPrimitive.Image, RemovedProps>, AvatarOwnProps {
78
100
  // TODO: See if we can automate making prop defs with `required: true` non nullable
79
101
  fallback: NonNullable<AvatarOwnProps['fallback']>;
80
102
  }
81
103
 
82
- const AvatarImpl = React.memo(
83
- React.forwardRef<AvatarImplElement, AvatarImplProps>(
84
- ({ fallback, onLoadingStatusChange, ...imageProps }, forwardedRef) => {
85
- const [status, setStatus] = React.useState<'idle' | 'loading' | 'loaded' | 'error'>('idle');
104
+ type AvatarImageProps = Pick<
105
+ AvatarImplProps,
106
+ 'fallback' | 'onLoadingStatusChange' | 'src' | 'alt' | 'srcSet' | 'sizes' | 'crossOrigin' | 'referrerPolicy' | 'loading' | 'decoding' | 'onLoad' | 'onError'
107
+ >;
86
108
 
87
- const handleLoadingStatusChange = React.useCallback(
88
- (newStatus: 'idle' | 'loading' | 'loaded' | 'error') => {
89
- onLoadingStatusChange?.(newStatus);
90
- setStatus(newStatus);
91
- },
92
- [onLoadingStatusChange],
93
- );
109
+ const AvatarImpl = React.memo(({ fallback, onLoadingStatusChange, ...imageProps }: AvatarImageProps) => {
110
+ const [status, setStatus] = React.useState<'idle' | 'loading' | 'loaded' | 'error'>('idle');
94
111
 
95
- return (
96
- <>
97
- {status === 'idle' || status === 'loading' ? <span className="kui-AvatarFallback" /> : null}
98
-
99
- {status === 'error' ? (
100
- <AvatarPrimitive.Fallback
101
- className={classNames('kui-AvatarFallback', {
102
- 'kui-one-letter': typeof fallback === 'string' && fallback.length === 1,
103
- 'kui-two-letters': typeof fallback === 'string' && fallback.length === 2,
104
- })}
105
- delayMs={0}
106
- >
107
- {fallback}
108
- </AvatarPrimitive.Fallback>
109
- ) : null}
110
-
111
- <AvatarPrimitive.Image
112
- ref={forwardedRef}
113
- className="kui-AvatarImage"
114
- {...imageProps}
115
- onLoadingStatusChange={handleLoadingStatusChange}
116
- />
117
- </>
118
- );
112
+ const handleLoadingStatusChange = React.useCallback(
113
+ (newStatus: 'idle' | 'loading' | 'loaded' | 'error') => {
114
+ onLoadingStatusChange?.(newStatus);
115
+ setStatus(newStatus);
119
116
  },
120
- ),
121
- );
117
+ [onLoadingStatusChange],
118
+ );
119
+
120
+ return (
121
+ <>
122
+ {status === 'idle' || status === 'loading' ? <span className="kui-AvatarFallback" /> : null}
123
+
124
+ {status === 'error' ? (
125
+ <AvatarPrimitive.Fallback
126
+ className={classNames('kui-AvatarFallback', {
127
+ 'kui-one-letter': typeof fallback === 'string' && fallback.length === 1,
128
+ 'kui-two-letters': typeof fallback === 'string' && fallback.length === 2,
129
+ })}
130
+ // Named from alt, like the picture it stands in for. Unnamed, it is decorative.
131
+ {...(imageProps.alt ? { role: 'img', 'aria-label': imageProps.alt } : { 'aria-hidden': true })}
132
+ >
133
+ {fallback}
134
+ </AvatarPrimitive.Fallback>
135
+ ) : null}
136
+
137
+ <AvatarPrimitive.Image className="kui-AvatarImage" {...imageProps} onLoadingStatusChange={handleLoadingStatusChange} />
138
+ </>
139
+ );
140
+ });
122
141
 
123
142
  AvatarImpl.displayName = 'AvatarImpl';
124
143
 
@@ -1,5 +1,5 @@
1
1
  .kui-Blockquote {
2
2
  box-sizing: border-box;
3
- border-left: max(var(--space-2), 0.25em) solid var(--accent-a6);
4
- padding-left: min(var(--space-6), max(var(--space-4), 0.5em));
3
+ border-inline-start: max(var(--space-2), 0.25em) solid var(--accent-a6);
4
+ padding-inline-start: min(var(--space-6), max(var(--space-4), 0.5em));
5
5
  }
@@ -2,9 +2,9 @@ import * as React from 'react';
2
2
  import classNames from 'classnames';
3
3
  import { Slot } from 'radix-ui';
4
4
 
5
- import { Text } from './text.js';
5
+ import { blockquotePropDefs } from './blockquote.props.js';
6
+ import { extractProps } from '../helpers/extract-props.js';
6
7
 
7
- import type { blockquotePropDefs } from './blockquote.props.js';
8
8
  import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
9
9
  import type { GetPropDefTypes } from '../props/prop-def.js';
10
10
 
@@ -14,17 +14,16 @@ interface BlockquoteProps
14
14
  extends ComponentPropsWithout<'blockquote', RemovedProps>,
15
15
  BlockQuoteOwnProps {}
16
16
  const Blockquote = React.forwardRef<BlockquoteElement, BlockquoteProps>((props, forwardedRef) => {
17
- const { asChild, children, className, ...blockquoteProps } = props;
17
+ // Only Blockquote's own props style it. It wears Text's classes, so it reads like Text.
18
+ const { asChild, className, color, ...blockquoteProps } = extractProps(props, blockquotePropDefs);
18
19
  const Comp = asChild ? Slot.Root : 'blockquote';
19
20
  return (
20
- <Text
21
- asChild
21
+ <Comp
22
+ data-accent-color={color}
22
23
  {...blockquoteProps}
23
24
  ref={forwardedRef}
24
- className={classNames('kui-Blockquote', className)}
25
- >
26
- <Comp>{children}</Comp>
27
- </Text>
25
+ className={classNames('kui-Text', 'kui-Blockquote', className)}
26
+ />
28
27
  );
29
28
  });
30
29
  Blockquote.displayName = 'Blockquote';
@@ -88,14 +88,14 @@ type ButtonProps<C extends React.ElementType = 'button'> = ButtonOwnProps & {
88
88
  type ButtonComponent = <C extends React.ElementType = 'button'>(props: ButtonProps<C> & { ref?: React.ForwardedRef<ButtonElement> }) => React.ReactElement | null;
89
89
 
90
90
  /**
91
- * An icon-only button must have an accessible name. Throws in development, logs otherwise.
91
+ * An icon-only button must have an accessible name. Logs an error, never throws: a name that is
92
+ * still loading (an empty `aria-label` while a translation loads) must not crash the tree.
92
93
  */
93
94
  function validateIconButtonName(props: Record<string, unknown>) {
94
95
  if (props['aria-label'] || props['aria-labelledby']) return;
95
96
  const errorMessage =
96
97
  'Button: an `iconOnly` button must have an accessible name. Pass `aria-label`, or ' +
97
98
  '`aria-labelledby` referencing a label element.';
98
- if (process.env.NODE_ENV === 'development') throw new Error(errorMessage);
99
99
  console.error(errorMessage);
100
100
  }
101
101
 
@@ -151,16 +151,23 @@ const Button = React.forwardRef(
151
151
  (props as { fullWidth?: boolean }).fullWidth = false;
152
152
  }
153
153
 
154
- if (emphasis !== undefined && variant !== undefined) {
155
- throw new Error('Button: pass `emphasis` or `variant`, not both. They set the same thing.');
154
+ // Both set the same thing. The types forbid it; an untyped spread that sets both logs and
155
+ // `emphasis` wins, rather than crashing the tree.
156
+ if (emphasis !== undefined && variant !== undefined && process.env.NODE_ENV !== 'production') {
157
+ console.error('Button: pass `emphasis` or `variant`, not both. They set the same thing; `emphasis` wins.');
156
158
  }
157
159
  const resolvedVariant = emphasis !== undefined ? EMPHASIS_VARIANT[emphasis] : variant;
158
160
 
161
+ // The tooltip's description joins the caller's aria-describedby rather than replacing it.
162
+ const callerDescribedBy = (props as { 'aria-describedby'?: string })['aria-describedby'];
163
+ const tooltipDescribedBy = (tooltipAccessibilityProps as { 'aria-describedby'?: string })['aria-describedby'];
164
+ const ariaDescribedBy = [callerDescribedBy, tooltipDescribedBy].filter(Boolean).join(' ') || undefined;
165
+
159
166
  const button = (
160
167
  <BaseButton
161
168
  {...props}
162
169
  variant={resolvedVariant}
163
- {...tooltipAccessibilityProps}
170
+ aria-describedby={ariaDescribedBy}
164
171
  ref={forwardedRef}
165
172
  data-icon-only={iconOnly || undefined}
166
173
  className={classNames('kui-Button', className)}
@@ -35,10 +35,10 @@
35
35
 
36
36
  /*
37
37
  * A CHOSEN card: a card that holds a checked Checkbox or Radio reads as picked, as in v2, so a
38
- * Card holding a choice replaces CheckboxCards and RadioCards. Only the card's own control
39
- * counts as a checkbox or radio; a Card holding a whole form of them is a form, not a choice.
38
+ * Card holding a choice replaces CheckboxCards and RadioCards. Only a Card that is the label
39
+ * of its control counts; a plain Card holding a form of them is a form, not a choice.
40
40
  */
41
- .kui-Card:where(:has(:is([role='checkbox'], [role='radio'])[data-state='checked'], input:is([type='checkbox'], [type='radio']):checked)) {
41
+ .kui-Card:where(label:has(:is([role='checkbox'], [role='radio'])[data-state='checked'], input:is([type='checkbox'], [type='radio']):checked)) {
42
42
  &::before {
43
43
  background-image: linear-gradient(var(--accent-a2), var(--accent-a2));
44
44
  }
@@ -46,3 +46,14 @@
46
46
  box-shadow: inset 0 0 0 1px var(--accent-a8);
47
47
  }
48
48
  }
49
+
50
+ /* Forced colors: the edge is a box-shadow, which the browser drops, so draw a real border */
51
+ @media (forced-colors: active) {
52
+ .kui-Card:where(:not(.kui-variant-ghost)) {
53
+ border: 1px solid CanvasText;
54
+ }
55
+
56
+ .kui-Card:where(label:has(:is([role='checkbox'], [role='radio'])[data-state='checked'], input:is([type='checkbox'], [type='radio']):checked)) {
57
+ border-color: Highlight;
58
+ }
59
+ }
@@ -118,7 +118,7 @@
118
118
  box-sizing: border-box;
119
119
  max-width: 240px;
120
120
  padding: var(--chatbar-item-padding);
121
- padding-right: calc(var(--chatbar-item-padding) + var(--space-2));
121
+ padding-inline-end: calc(var(--chatbar-item-padding) + var(--space-2));
122
122
  border: 1px solid var(--neutral-a5);
123
123
  border-radius: calc(var(--chatbar-item-lead-radius) + var(--chatbar-item-padding));
124
124
  background-color: var(--color-surface);
@@ -174,7 +174,7 @@
174
174
  /* A hosted control: as tall as the lead tile, so a pill with × is as tall as one without. */
175
175
  --base-button-height: var(--chatbar-item-lead);
176
176
  flex-shrink: 0;
177
- margin-left: calc(var(--space-2) * -1);
177
+ margin-inline-start: calc(var(--space-2) * -1);
178
178
  }
179
179
 
180
180
  @breakpoints {
@@ -410,6 +410,23 @@
410
410
  }
411
411
  }
412
412
 
413
+ /*
414
+ * Forced colors drop box-shadows, which draw the box's boundary in every variant and the raised
415
+ * focus ring, so the box gets a real border and the raised variant a real focus outline there.
416
+ */
417
+ @media (forced-colors: active) {
418
+ .kui-ChatbarBox {
419
+ border: 1px solid CanvasText;
420
+ }
421
+ .kui-ChatbarBox:where(.kui-variant-raised):where(:focus-within) {
422
+ outline: 2px solid Highlight;
423
+ outline-offset: -1px;
424
+ }
425
+ .kui-ChatbarRoot:where([data-disabled]) .kui-ChatbarBox {
426
+ border-color: GrayText;
427
+ }
428
+ }
429
+
413
430
  /***************************************************************************************************
414
431
  * *
415
432
  * DISABLED / READ-ONLY STATES *
@@ -510,7 +527,7 @@
510
527
  align-items: center;
511
528
  gap: var(--space-3);
512
529
  flex-shrink: 0;
513
- margin-left: auto;
530
+ margin-inline-start: auto;
514
531
  }
515
532
 
516
533
  /* Size-based font sizing for chatbar */
@@ -1,10 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import classNames from 'classnames';
3
- import { useComposedRefs } from 'radix-ui/internal';
3
+ import { useComposedRefs, useLayoutEffect } from 'radix-ui/internal';
4
4
  import { useDropzone } from 'react-dropzone';
5
5
 
6
6
  import { Button } from './button.js';
7
- import { CloseIcon, FileTextIcon } from './icons.js';
7
+ import { CloseIcon, FileTextIcon, PaperclipIcon } from './icons.js';
8
8
  import { Flex } from './flex.js';
9
9
  import { ScrollArea } from './scroll-area.js';
10
10
  import { Slot } from './slot.js';
@@ -18,9 +18,6 @@ import type { accentColors } from '../props/color.prop.js';
18
18
  import type { radii } from '../props/radius.prop.js';
19
19
  import type { ButtonProps, ButtonRankProps } from './button.js';
20
20
 
21
- // Avoid SSR warnings by using an isomorphic layout effect
22
- const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
23
-
24
21
  /**
25
22
  * Runs `measure` with the placeholder taken out of layout, so a height read
26
23
  * reflects the value alone.
@@ -814,7 +811,7 @@ const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>((props, fo
814
811
 
815
812
  const sizingRef = React.useRef({ open, minLines, maxLines });
816
813
  // Declared before the sizing effect so it runs first in the same commit
817
- useIsomorphicLayoutEffect(() => {
814
+ useLayoutEffect(() => {
818
815
  sizingRef.current = { open, minLines, maxLines };
819
816
  }, [open, minLines, maxLines]);
820
817
 
@@ -841,12 +838,12 @@ const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>((props, fo
841
838
  }, []);
842
839
 
843
840
  // Typography depends on size
844
- useIsomorphicLayoutEffect(() => {
841
+ useLayoutEffect(() => {
845
842
  recomputeMetrics();
846
843
  }, [recomputeMetrics, size]);
847
844
 
848
845
  // Single place for sizing and overflow auto-open: one height reset, one scrollHeight read
849
- useIsomorphicLayoutEffect(() => {
846
+ useLayoutEffect(() => {
850
847
  const el = textareaRef.current;
851
848
  if (!el) return;
852
849
  if (lineHeightRef.current === 0) recomputeMetrics();
@@ -888,9 +885,14 @@ const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>((props, fo
888
885
  // Dev-only warning if no accessible name is provided
889
886
  React.useEffect(() => {
890
887
  if (process.env.NODE_ENV === 'production') return;
891
- const hasLabel = textareaProps['aria-label'] != null || textareaProps['aria-labelledby'] != null;
888
+ // Read the DOM, not the props: a `<label htmlFor>` or an asChild child's own label counts too.
889
+ const el = textareaRef.current;
890
+ const hasLabel =
891
+ textareaProps['aria-label'] != null ||
892
+ textareaProps['aria-labelledby'] != null ||
893
+ Boolean(el?.getAttribute('aria-label') || el?.getAttribute('aria-labelledby') || el?.labels?.length);
892
894
  if (!hasLabel) {
893
- console.warn('[Chatbar.Textarea] Provide aria-label or aria-labelledby to ensure the control has an accessible name.');
895
+ console.warn('[Chatbar.Textarea] Provide aria-label, aria-labelledby or a <label htmlFor> to ensure the control has an accessible name.');
894
896
  }
895
897
  // warn only on mount
896
898
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -960,11 +962,12 @@ const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>((props, fo
960
962
 
961
963
  const Comp = asChild ? Slot : 'textarea';
962
964
  return (
963
- <div className={classNames('kui-ChatbarField', 'kui-ChatbarTextarea', className)}>
965
+ // className and style both reach the textarea, like every other textarea attribute.
966
+ <div className="kui-ChatbarField kui-ChatbarTextarea">
964
967
  <Comp
965
968
  {...textareaProps}
966
969
  ref={composedRef}
967
- className="kui-ChatbarInput"
970
+ className={classNames('kui-ChatbarInput', className)}
968
971
  value={value}
969
972
  onChange={handleChange}
970
973
  onFocus={handleFocus}
@@ -1216,28 +1219,35 @@ interface AttachTriggerProps extends React.ComponentPropsWithoutRef<'button'> {
1216
1219
  }
1217
1220
 
1218
1221
  const AttachTrigger = React.forwardRef<HTMLButtonElement, AttachTriggerProps>((props, forwardedRef) => {
1219
- const { asChild, accept, multiple, disabled: disabledProp, onPointerDown, onClick, ...buttonProps } = props;
1222
+ // The HTML `color` attribute is dropped: Button reads `color` as an accent colour.
1223
+ const { asChild, accept, multiple, disabled: disabledProp, onPointerDown, onClick, children, color: _color, ...buttonProps } = props;
1220
1224
  const ctx = useChatbarContext();
1221
1225
  const disabled = disabledProp || ctx.disabled || ctx.readOnly;
1222
- const Comp = asChild ? Slot : 'button';
1226
+ const triggerProps = {
1227
+ ...buttonProps,
1228
+ ref: forwardedRef,
1229
+ className: classNames('kui-ChatbarAttachTrigger', buttonProps.className),
1230
+ type: buttonProps.type ?? 'button',
1231
+ 'aria-label': buttonProps['aria-label'] ?? 'Add attachments',
1232
+ disabled,
1233
+ onPointerDown: (event: React.PointerEvent<HTMLButtonElement>) => {
1234
+ onPointerDown?.(event);
1235
+ if (!disabled && !event.defaultPrevented) ctx.beginFilePickerPress();
1236
+ },
1237
+ onClick: (event: React.MouseEvent<HTMLButtonElement>) => {
1238
+ onClick?.(event);
1239
+ if (disabled || event.defaultPrevented) return;
1240
+ ctx.openFilePicker({ accept, multiple });
1241
+ },
1242
+ } as const;
1243
+
1244
+ if (asChild) return <Slot {...triggerProps}>{children}</Slot>;
1245
+
1246
+ // Without asChild, the trigger is a quiet icon-only Button at the Chatbar's size.
1223
1247
  return (
1224
- <Comp
1225
- {...buttonProps}
1226
- ref={forwardedRef}
1227
- className={classNames('kui-ChatbarAttachTrigger', buttonProps.className)}
1228
- type={buttonProps.type ?? 'button'}
1229
- aria-label={buttonProps['aria-label'] ?? 'Add attachments'}
1230
- disabled={disabled}
1231
- onPointerDown={(event: React.PointerEvent<HTMLButtonElement>) => {
1232
- onPointerDown?.(event);
1233
- if (!disabled && !event.defaultPrevented) ctx.beginFilePickerPress();
1234
- }}
1235
- onClick={(event: React.MouseEvent<HTMLButtonElement>) => {
1236
- onClick?.(event);
1237
- if (disabled || event.defaultPrevented) return;
1238
- ctx.openFilePicker({ accept, multiple });
1239
- }}
1240
- />
1248
+ <Button iconOnly emphasis="quiet" color="gray" size={ctx.size} {...triggerProps}>
1249
+ {children ?? <PaperclipIcon aria-hidden />}
1250
+ </Button>
1241
1251
  );
1242
1252
  });
1243
1253
  AttachTrigger.displayName = 'Chatbar.AttachTrigger';
@@ -12,16 +12,12 @@
12
12
  width: fit-content;
13
13
  }
14
14
 
15
- /* The disabled cursor lives in the base mark. */
15
+ /* The disabled cursor and colours live in the base mark, per variant. */
16
16
  .kui-CheckboxGroupItemCheckbox {
17
17
  &:where(:focus-visible)::before {
18
18
  outline: var(--focus-ring-width, 2px) solid var(--focus-8);
19
19
  outline-offset: var(--focus-ring-offset, 2px);
20
20
  }
21
-
22
- &:where(:disabled)::before {
23
- background-color: var(--neutral-a3);
24
- }
25
21
  }
26
22
 
27
23
  .kui-CheckboxGroupItemInner {
@@ -2,13 +2,7 @@
2
2
 
3
3
  import * as React from 'react';
4
4
  import { Checkbox as CheckboxPrimitive, Direction } from 'radix-ui';
5
- import {
6
- Context,
7
- Primitive,
8
- useComposedRefs,
9
- RovingFocus,
10
- useControllableState,
11
- } from 'radix-ui/internal';
5
+ import { Context, Primitive, useControllableState } from 'radix-ui/internal';
12
6
 
13
7
  const { useDirection } = Direction;
14
8
 
@@ -20,9 +14,8 @@ const CHECKBOX_GROUP_NAME = 'CheckboxGroup';
20
14
  type ScopedProps<P> = P & { __scopeCheckboxGroup?: Context.Scope };
21
15
  const [createCheckboxGroupContext, createCheckboxGroupScope] = Context.createContextScope(
22
16
  CHECKBOX_GROUP_NAME,
23
- [RovingFocus.createRovingFocusGroupScope, CheckboxPrimitive.createCheckboxScope],
17
+ [CheckboxPrimitive.createCheckboxScope],
24
18
  );
25
- const useRovingFocusGroupScope = RovingFocus.createRovingFocusGroupScope();
26
19
  const useCheckboxScope = CheckboxPrimitive.createCheckboxScope();
27
20
 
28
21
  type CheckboxGroupContextValue = {
@@ -38,15 +31,22 @@ const [CheckboxGroupProvider, useCheckboxGroupContext] =
38
31
  createCheckboxGroupContext<CheckboxGroupContextValue>(CHECKBOX_GROUP_NAME);
39
32
 
40
33
  type CheckboxGroupElement = React.ElementRef<typeof Primitive.div>;
41
- type RovingFocusGroupProps = React.ComponentPropsWithoutRef<typeof RovingFocus.Root>;
42
34
  type PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;
43
35
  interface CheckboxGroupProps extends PrimitiveDivProps {
44
36
  name?: CheckboxGroupContextValue['name'];
45
37
  required?: React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>['required'];
46
38
  disabled?: React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>['disabled'];
47
- dir?: RovingFocusGroupProps['dir'];
48
- orientation?: RovingFocusGroupProps['orientation'];
49
- loop?: RovingFocusGroupProps['loop'];
39
+ dir?: 'ltr' | 'rtl';
40
+ /**
41
+ * @deprecated Has no effect. Each checkbox is its own tab stop, as with native checkboxes,
42
+ * so there is no arrow-key navigation to orient.
43
+ */
44
+ orientation?: 'horizontal' | 'vertical';
45
+ /**
46
+ * @deprecated Has no effect. Each checkbox is its own tab stop, as with native checkboxes,
47
+ * so there is no arrow-key navigation to loop.
48
+ */
49
+ loop?: boolean;
50
50
  defaultValue?: string[];
51
51
  value?: CheckboxGroupContextValue['value'];
52
52
  onValueChange?: (value: string[]) => void;
@@ -61,13 +61,12 @@ const CheckboxGroup = React.forwardRef<CheckboxGroupElement, CheckboxGroupProps>
61
61
  value: valueProp,
62
62
  required = false,
63
63
  disabled = false,
64
- orientation,
64
+ orientation: _orientation,
65
65
  dir,
66
- loop = true,
66
+ loop: _loop,
67
67
  onValueChange,
68
68
  ...groupProps
69
69
  } = props;
70
- const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeCheckboxGroup);
71
70
  const direction = useDirection(dir);
72
71
  const [value = [], setValue] = useControllableState({
73
72
  prop: valueProp,
@@ -96,21 +95,13 @@ const CheckboxGroup = React.forwardRef<CheckboxGroupElement, CheckboxGroupProps>
96
95
  onItemCheck={handleItemCheck}
97
96
  onItemUncheck={handleItemUncheck}
98
97
  >
99
- <RovingFocus.Root
100
- asChild
101
- {...rovingFocusGroupScope}
102
- orientation={orientation}
98
+ <Primitive.div
99
+ role="group"
100
+ data-disabled={disabled ? '' : undefined}
103
101
  dir={direction}
104
- loop={loop}
105
- >
106
- <Primitive.div
107
- role="group"
108
- data-disabled={disabled ? '' : undefined}
109
- dir={direction}
110
- {...groupProps}
111
- ref={forwardedRef}
112
- />
113
- </RovingFocus.Root>
102
+ {...groupProps}
103
+ ref={forwardedRef}
104
+ />
114
105
  </CheckboxGroupProvider>
115
106
  );
116
107
  },
@@ -136,31 +127,29 @@ const CheckboxGroupItem = React.forwardRef<CheckboxGroupItemElement, CheckboxGro
136
127
  const { __scopeCheckboxGroup, disabled, ...itemProps } = props;
137
128
  const context = useCheckboxGroupContext(ITEM_NAME, __scopeCheckboxGroup);
138
129
  const isDisabled = context.disabled || disabled;
139
- const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeCheckboxGroup);
140
130
  const checkboxScope = useCheckboxScope(__scopeCheckboxGroup);
141
- const ref = React.useRef<React.ElementRef<typeof CheckboxPrimitive.Root>>(null);
142
- const composedRefs = useComposedRefs(forwardedRef, ref);
143
131
  const checked = context.value?.includes(itemProps.value);
132
+ // A required group needs at least one box checked, not every box: the items are
133
+ // required only while none is checked.
134
+ const isRequired = context.required && (context.value?.length ?? 0) === 0;
144
135
 
145
136
  return (
146
- <RovingFocus.Item asChild {...rovingFocusGroupScope} focusable={!isDisabled} active={checked}>
147
- <CheckboxPrimitive.Root
148
- name={context.name}
149
- disabled={isDisabled}
150
- required={context.required}
151
- checked={checked}
152
- {...checkboxScope}
153
- {...itemProps}
154
- ref={composedRefs}
155
- onCheckedChange={(checked) => {
156
- if (checked) {
157
- context.onItemCheck(props.value);
158
- } else {
159
- context.onItemUncheck(props.value);
160
- }
161
- }}
162
- />
163
- </RovingFocus.Item>
137
+ <CheckboxPrimitive.Root
138
+ name={context.name}
139
+ disabled={isDisabled}
140
+ required={isRequired}
141
+ checked={checked}
142
+ {...checkboxScope}
143
+ {...itemProps}
144
+ ref={forwardedRef}
145
+ onCheckedChange={(checked) => {
146
+ if (checked) {
147
+ context.onItemCheck(props.value);
148
+ } else {
149
+ context.onItemUncheck(props.value);
150
+ }
151
+ }}
152
+ />
164
153
  );
165
154
  },
166
155
  );