@womp/kookie-ui 0.5.0 → 0.7.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 (991) hide show
  1. package/components.css +486 -1070
  2. package/dist/cjs/components/_internal/base-button.js +1 -1
  3. package/dist/cjs/components/_internal/base-button.js.map +4 -4
  4. package/dist/cjs/components/_internal/base-button.props.d.ts +2 -7
  5. package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
  6. package/dist/cjs/components/_internal/base-button.props.js +1 -1
  7. package/dist/cjs/components/_internal/base-button.props.js.map +4 -4
  8. package/dist/cjs/components/_internal/base-checkbox.props.d.ts +0 -5
  9. package/dist/cjs/components/_internal/base-checkbox.props.d.ts.map +1 -1
  10. package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
  11. package/dist/cjs/components/_internal/base-checkbox.props.js.map +4 -4
  12. package/dist/cjs/components/_internal/base-menu.props.d.ts +0 -10
  13. package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
  14. package/dist/cjs/components/_internal/base-menu.props.js +1 -1
  15. package/dist/cjs/components/_internal/base-menu.props.js.map +4 -4
  16. package/dist/cjs/components/_internal/base-menu.utils.d.ts +48 -0
  17. package/dist/cjs/components/_internal/base-menu.utils.d.ts.map +1 -0
  18. package/dist/cjs/components/_internal/base-menu.utils.js +2 -0
  19. package/dist/cjs/components/_internal/base-menu.utils.js.map +7 -0
  20. package/dist/cjs/components/_internal/base-radio.props.d.ts +0 -5
  21. package/dist/cjs/components/_internal/base-radio.props.d.ts.map +1 -1
  22. package/dist/cjs/components/_internal/base-radio.props.js +1 -1
  23. package/dist/cjs/components/_internal/base-radio.props.js.map +4 -4
  24. package/dist/cjs/components/_internal/base-tab-list.props.d.ts +0 -5
  25. package/dist/cjs/components/_internal/base-tab-list.props.d.ts.map +1 -1
  26. package/dist/cjs/components/_internal/base-tab-list.props.js +1 -1
  27. package/dist/cjs/components/_internal/base-tab-list.props.js.map +4 -4
  28. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts +77 -59
  29. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
  30. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js +1 -1
  31. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js.map +4 -4
  32. package/dist/cjs/components/_internal/menu-context.d.ts +7 -3
  33. package/dist/cjs/components/_internal/menu-context.d.ts.map +1 -1
  34. package/dist/cjs/components/_internal/menu-context.js +1 -1
  35. package/dist/cjs/components/_internal/menu-context.js.map +4 -4
  36. package/dist/cjs/components/_internal/shell-bottom.js +1 -1
  37. package/dist/cjs/components/_internal/shell-bottom.js.map +4 -4
  38. package/dist/cjs/components/_internal/shell-inspector.js +1 -1
  39. package/dist/cjs/components/_internal/shell-inspector.js.map +4 -4
  40. package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
  41. package/dist/cjs/components/_internal/shell-sidebar.js.map +4 -4
  42. package/dist/cjs/components/accordion.js +1 -1
  43. package/dist/cjs/components/accordion.js.map +4 -4
  44. package/dist/cjs/components/accordion.props.d.ts +0 -6
  45. package/dist/cjs/components/accordion.props.d.ts.map +1 -1
  46. package/dist/cjs/components/accordion.props.js +1 -1
  47. package/dist/cjs/components/accordion.props.js.map +4 -4
  48. package/dist/cjs/components/alert-dialog.js +1 -1
  49. package/dist/cjs/components/alert-dialog.js.map +4 -4
  50. package/dist/cjs/components/avatar.js +1 -1
  51. package/dist/cjs/components/avatar.js.map +4 -4
  52. package/dist/cjs/components/avatar.props.d.ts +0 -5
  53. package/dist/cjs/components/avatar.props.d.ts.map +1 -1
  54. package/dist/cjs/components/avatar.props.js +1 -1
  55. package/dist/cjs/components/avatar.props.js.map +4 -4
  56. package/dist/cjs/components/badge.js +1 -1
  57. package/dist/cjs/components/badge.js.map +4 -4
  58. package/dist/cjs/components/badge.props.d.ts +0 -5
  59. package/dist/cjs/components/badge.props.d.ts.map +1 -1
  60. package/dist/cjs/components/badge.props.js +1 -1
  61. package/dist/cjs/components/badge.props.js.map +4 -4
  62. package/dist/cjs/components/blockquote.js +1 -1
  63. package/dist/cjs/components/blockquote.js.map +4 -4
  64. package/dist/cjs/components/blockquote.props.d.ts +3 -2
  65. package/dist/cjs/components/blockquote.props.d.ts.map +1 -1
  66. package/dist/cjs/components/blockquote.props.js +1 -1
  67. package/dist/cjs/components/blockquote.props.js.map +4 -4
  68. package/dist/cjs/components/button.js +1 -1
  69. package/dist/cjs/components/button.js.map +4 -4
  70. package/dist/cjs/components/button.props.js +1 -1
  71. package/dist/cjs/components/button.props.js.map +4 -4
  72. package/dist/cjs/components/callout.js +1 -1
  73. package/dist/cjs/components/callout.js.map +4 -4
  74. package/dist/cjs/components/callout.props.d.ts +0 -5
  75. package/dist/cjs/components/callout.props.d.ts.map +1 -1
  76. package/dist/cjs/components/callout.props.js +1 -1
  77. package/dist/cjs/components/callout.props.js.map +4 -4
  78. package/dist/cjs/components/card.js +1 -1
  79. package/dist/cjs/components/card.js.map +2 -2
  80. package/dist/cjs/components/chatbar.d.ts +46 -44
  81. package/dist/cjs/components/chatbar.d.ts.map +1 -1
  82. package/dist/cjs/components/chatbar.js +2 -2
  83. package/dist/cjs/components/chatbar.js.map +4 -4
  84. package/dist/cjs/components/checkbox-cards.d.ts.map +1 -1
  85. package/dist/cjs/components/checkbox-cards.js +1 -1
  86. package/dist/cjs/components/checkbox-cards.js.map +4 -4
  87. package/dist/cjs/components/checkbox-cards.props.d.ts +0 -5
  88. package/dist/cjs/components/checkbox-cards.props.d.ts.map +1 -1
  89. package/dist/cjs/components/checkbox-cards.props.js +1 -1
  90. package/dist/cjs/components/checkbox-cards.props.js.map +4 -4
  91. package/dist/cjs/components/checkbox-group.d.ts.map +1 -1
  92. package/dist/cjs/components/checkbox-group.js +1 -1
  93. package/dist/cjs/components/checkbox-group.js.map +4 -4
  94. package/dist/cjs/components/checkbox-group.props.d.ts +0 -5
  95. package/dist/cjs/components/checkbox-group.props.d.ts.map +1 -1
  96. package/dist/cjs/components/checkbox-group.props.js +1 -1
  97. package/dist/cjs/components/checkbox-group.props.js.map +4 -4
  98. package/dist/cjs/components/checkbox.js +1 -1
  99. package/dist/cjs/components/checkbox.js.map +4 -4
  100. package/dist/cjs/components/checkbox.props.js +1 -1
  101. package/dist/cjs/components/checkbox.props.js.map +4 -4
  102. package/dist/cjs/components/code.js +1 -1
  103. package/dist/cjs/components/code.js.map +4 -4
  104. package/dist/cjs/components/code.props.d.ts +3 -2
  105. package/dist/cjs/components/code.props.d.ts.map +1 -1
  106. package/dist/cjs/components/code.props.js +1 -1
  107. package/dist/cjs/components/code.props.js.map +4 -4
  108. package/dist/cjs/components/combobox.d.ts +28 -15
  109. package/dist/cjs/components/combobox.d.ts.map +1 -1
  110. package/dist/cjs/components/combobox.js +1 -1
  111. package/dist/cjs/components/combobox.js.map +4 -4
  112. package/dist/cjs/components/combobox.props.d.ts +46 -8
  113. package/dist/cjs/components/combobox.props.d.ts.map +1 -1
  114. package/dist/cjs/components/combobox.props.js +1 -1
  115. package/dist/cjs/components/combobox.props.js.map +4 -4
  116. package/dist/cjs/components/context-menu.d.ts +18 -5
  117. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  118. package/dist/cjs/components/context-menu.js +1 -1
  119. package/dist/cjs/components/context-menu.js.map +4 -4
  120. package/dist/cjs/components/context-menu.props.d.ts +1 -1
  121. package/dist/cjs/components/context-menu.props.d.ts.map +1 -1
  122. package/dist/cjs/components/context-menu.props.js +1 -1
  123. package/dist/cjs/components/context-menu.props.js.map +4 -4
  124. package/dist/cjs/components/data-list.js +1 -1
  125. package/dist/cjs/components/data-list.js.map +4 -4
  126. package/dist/cjs/components/data-list.props.d.ts +4 -3
  127. package/dist/cjs/components/data-list.props.d.ts.map +1 -1
  128. package/dist/cjs/components/data-list.props.js +1 -1
  129. package/dist/cjs/components/data-list.props.js.map +4 -4
  130. package/dist/cjs/components/dialog.js +1 -1
  131. package/dist/cjs/components/dialog.js.map +4 -4
  132. package/dist/cjs/components/dropdown-menu.d.ts +11 -18
  133. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  134. package/dist/cjs/components/dropdown-menu.js +1 -1
  135. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  136. package/dist/cjs/components/dropdown-menu.props.js +1 -1
  137. package/dist/cjs/components/dropdown-menu.props.js.map +4 -4
  138. package/dist/cjs/components/heading.js +1 -1
  139. package/dist/cjs/components/heading.js.map +4 -4
  140. package/dist/cjs/components/heading.props.d.ts +3 -2
  141. package/dist/cjs/components/heading.props.d.ts.map +1 -1
  142. package/dist/cjs/components/heading.props.js +1 -1
  143. package/dist/cjs/components/heading.props.js.map +4 -4
  144. package/dist/cjs/components/hover-card.js +1 -1
  145. package/dist/cjs/components/hover-card.js.map +2 -2
  146. package/dist/cjs/components/icon-button.js +2 -2
  147. package/dist/cjs/components/icon-button.js.map +4 -4
  148. package/dist/cjs/components/icon-button.props.js +1 -1
  149. package/dist/cjs/components/icon-button.props.js.map +4 -4
  150. package/dist/cjs/components/index.js +5 -5
  151. package/dist/cjs/components/index.js.map +4 -4
  152. package/dist/cjs/components/link.js +1 -1
  153. package/dist/cjs/components/link.js.map +4 -4
  154. package/dist/cjs/components/link.props.d.ts +0 -5
  155. package/dist/cjs/components/link.props.d.ts.map +1 -1
  156. package/dist/cjs/components/link.props.js +1 -1
  157. package/dist/cjs/components/link.props.js.map +4 -4
  158. package/dist/cjs/components/popover.js +1 -1
  159. package/dist/cjs/components/popover.js.map +2 -2
  160. package/dist/cjs/components/progress.js +1 -1
  161. package/dist/cjs/components/progress.js.map +4 -4
  162. package/dist/cjs/components/progress.props.d.ts +0 -5
  163. package/dist/cjs/components/progress.props.d.ts.map +1 -1
  164. package/dist/cjs/components/progress.props.js +1 -1
  165. package/dist/cjs/components/progress.props.js.map +4 -4
  166. package/dist/cjs/components/radio-cards.js +1 -1
  167. package/dist/cjs/components/radio-cards.js.map +4 -4
  168. package/dist/cjs/components/radio-cards.props.d.ts +0 -5
  169. package/dist/cjs/components/radio-cards.props.d.ts.map +1 -1
  170. package/dist/cjs/components/radio-cards.props.js +1 -1
  171. package/dist/cjs/components/radio-cards.props.js.map +4 -4
  172. package/dist/cjs/components/radio-group.d.ts.map +1 -1
  173. package/dist/cjs/components/radio-group.js +1 -1
  174. package/dist/cjs/components/radio-group.js.map +4 -4
  175. package/dist/cjs/components/radio-group.props.d.ts +0 -5
  176. package/dist/cjs/components/radio-group.props.d.ts.map +1 -1
  177. package/dist/cjs/components/radio-group.props.js +1 -1
  178. package/dist/cjs/components/radio-group.props.js.map +4 -4
  179. package/dist/cjs/components/radio.js +1 -1
  180. package/dist/cjs/components/radio.js.map +4 -4
  181. package/dist/cjs/components/radio.props.js +1 -1
  182. package/dist/cjs/components/radio.props.js.map +4 -4
  183. package/dist/cjs/components/schemas/base-button.schema.d.ts +111 -257
  184. package/dist/cjs/components/schemas/base-button.schema.d.ts.map +1 -1
  185. package/dist/cjs/components/schemas/base-button.schema.js +1 -1
  186. package/dist/cjs/components/schemas/base-button.schema.js.map +2 -2
  187. package/dist/cjs/components/schemas/button.schema.d.ts +136 -558
  188. package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -1
  189. package/dist/cjs/components/schemas/button.schema.js +1 -1
  190. package/dist/cjs/components/schemas/button.schema.js.map +2 -2
  191. package/dist/cjs/components/schemas/icon-button.schema.d.ts +123 -241
  192. package/dist/cjs/components/schemas/icon-button.schema.d.ts.map +1 -1
  193. package/dist/cjs/components/schemas/icon-button.schema.js +1 -1
  194. package/dist/cjs/components/schemas/icon-button.schema.js.map +2 -2
  195. package/dist/cjs/components/schemas/index.js +1 -1
  196. package/dist/cjs/components/schemas/index.js.map +2 -2
  197. package/dist/cjs/components/schemas/shell.schema.d.ts +592 -851
  198. package/dist/cjs/components/schemas/shell.schema.d.ts.map +1 -1
  199. package/dist/cjs/components/schemas/shell.schema.js +1 -1
  200. package/dist/cjs/components/schemas/shell.schema.js.map +2 -2
  201. package/dist/cjs/components/schemas/toggle-button.schema.d.ts +138 -1027
  202. package/dist/cjs/components/schemas/toggle-button.schema.d.ts.map +1 -1
  203. package/dist/cjs/components/schemas/toggle-button.schema.js +1 -1
  204. package/dist/cjs/components/schemas/toggle-button.schema.js.map +2 -2
  205. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +124 -466
  206. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
  207. package/dist/cjs/components/schemas/toggle-icon-button.schema.js +1 -1
  208. package/dist/cjs/components/schemas/toggle-icon-button.schema.js.map +2 -2
  209. package/dist/cjs/components/scroll-area.js +1 -1
  210. package/dist/cjs/components/segmented-control.js +1 -1
  211. package/dist/cjs/components/select.js +1 -1
  212. package/dist/cjs/components/select.js.map +4 -4
  213. package/dist/cjs/components/select.props.d.ts +0 -5
  214. package/dist/cjs/components/select.props.d.ts.map +1 -1
  215. package/dist/cjs/components/select.props.js +1 -1
  216. package/dist/cjs/components/select.props.js.map +4 -4
  217. package/dist/cjs/components/separator.js.map +1 -1
  218. package/dist/cjs/components/separator.props.js.map +1 -1
  219. package/dist/cjs/components/sheet.js +1 -1
  220. package/dist/cjs/components/sheet.js.map +4 -4
  221. package/dist/cjs/components/shell.js +1 -1
  222. package/dist/cjs/components/shell.js.map +4 -4
  223. package/dist/cjs/components/sidebar.d.ts +0 -1
  224. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  225. package/dist/cjs/components/sidebar.js +1 -1
  226. package/dist/cjs/components/sidebar.js.map +4 -4
  227. package/dist/cjs/components/sidebar.props.d.ts +0 -5
  228. package/dist/cjs/components/sidebar.props.d.ts.map +1 -1
  229. package/dist/cjs/components/sidebar.props.js +1 -1
  230. package/dist/cjs/components/sidebar.props.js.map +4 -4
  231. package/dist/cjs/components/slider.js +1 -1
  232. package/dist/cjs/components/slider.js.map +4 -4
  233. package/dist/cjs/components/slider.props.d.ts +0 -5
  234. package/dist/cjs/components/slider.props.d.ts.map +1 -1
  235. package/dist/cjs/components/slider.props.js +1 -1
  236. package/dist/cjs/components/slider.props.js.map +4 -4
  237. package/dist/cjs/components/slot.d.ts +6 -2
  238. package/dist/cjs/components/slot.d.ts.map +1 -1
  239. package/dist/cjs/components/switch.d.ts.map +1 -1
  240. package/dist/cjs/components/switch.js +1 -1
  241. package/dist/cjs/components/switch.js.map +4 -4
  242. package/dist/cjs/components/switch.props.d.ts +0 -5
  243. package/dist/cjs/components/switch.props.d.ts.map +1 -1
  244. package/dist/cjs/components/switch.props.js +1 -1
  245. package/dist/cjs/components/switch.props.js.map +4 -4
  246. package/dist/cjs/components/tab-nav.js +1 -1
  247. package/dist/cjs/components/tab-nav.js.map +4 -4
  248. package/dist/cjs/components/tab-nav.props.js +1 -1
  249. package/dist/cjs/components/tab-nav.props.js.map +4 -4
  250. package/dist/cjs/components/tabs.js +1 -1
  251. package/dist/cjs/components/tabs.js.map +4 -4
  252. package/dist/cjs/components/tabs.props.js +1 -1
  253. package/dist/cjs/components/tabs.props.js.map +4 -4
  254. package/dist/cjs/components/text-area.js.map +1 -1
  255. package/dist/cjs/components/text-area.props.js.map +1 -1
  256. package/dist/cjs/components/text-field.js +2 -2
  257. package/dist/cjs/components/text-field.js.map +1 -1
  258. package/dist/cjs/components/text-field.props.js.map +1 -1
  259. package/dist/cjs/components/text.js +1 -1
  260. package/dist/cjs/components/text.js.map +4 -4
  261. package/dist/cjs/components/text.props.d.ts +3 -2
  262. package/dist/cjs/components/text.props.d.ts.map +1 -1
  263. package/dist/cjs/components/text.props.js +1 -1
  264. package/dist/cjs/components/text.props.js.map +4 -4
  265. package/dist/cjs/components/theme-panel.js +3 -3
  266. package/dist/cjs/components/theme-panel.js.map +4 -4
  267. package/dist/cjs/components/theme.js +1 -1
  268. package/dist/cjs/components/theme.js.map +2 -2
  269. package/dist/cjs/components/theme.props.d.ts +1 -1
  270. package/dist/cjs/components/theme.props.js +1 -1
  271. package/dist/cjs/components/theme.props.js.map +2 -2
  272. package/dist/cjs/components/toggle-button.js +2 -2
  273. package/dist/cjs/components/toggle-button.js.map +4 -4
  274. package/dist/cjs/components/toggle-icon-button.js +3 -3
  275. package/dist/cjs/components/toggle-icon-button.js.map +4 -4
  276. package/dist/cjs/components/toolbar.js +1 -1
  277. package/dist/cjs/components/toolbar.js.map +4 -4
  278. package/dist/cjs/components/tooltip.js +1 -1
  279. package/dist/cjs/components/tooltip.js.map +4 -4
  280. package/dist/cjs/components/user-card.d.ts.map +1 -1
  281. package/dist/cjs/components/user-card.js +1 -1
  282. package/dist/cjs/components/user-card.js.map +4 -4
  283. package/dist/cjs/components/user-card.props.d.ts +0 -5
  284. package/dist/cjs/components/user-card.props.d.ts.map +1 -1
  285. package/dist/cjs/components/user-card.props.js +1 -1
  286. package/dist/cjs/components/user-card.props.js.map +4 -4
  287. package/dist/cjs/components/virtual-menu.d.ts.map +1 -1
  288. package/dist/cjs/components/virtual-menu.js +1 -1
  289. package/dist/cjs/components/virtual-menu.js.map +4 -4
  290. package/dist/cjs/helpers/extract-props.js +1 -1
  291. package/dist/cjs/helpers/extract-props.js.map +2 -2
  292. package/dist/cjs/helpers/get-margin-styles.js +1 -1
  293. package/dist/cjs/helpers/get-margin-styles.js.map +2 -2
  294. package/dist/cjs/hooks/use-breakpoint.d.ts +4 -1
  295. package/dist/cjs/hooks/use-breakpoint.d.ts.map +1 -1
  296. package/dist/cjs/hooks/use-breakpoint.js +1 -1
  297. package/dist/cjs/hooks/use-breakpoint.js.map +3 -3
  298. package/dist/cjs/index.js +5 -5
  299. package/dist/cjs/index.js.map +4 -4
  300. package/dist/cjs/props/color.prop.js.map +1 -1
  301. package/dist/cjs/props/emphasis.prop.d.ts +11 -0
  302. package/dist/cjs/props/emphasis.prop.d.ts.map +1 -0
  303. package/dist/cjs/props/emphasis.prop.js +2 -0
  304. package/dist/cjs/props/emphasis.prop.js.map +7 -0
  305. package/dist/cjs/props/index.d.ts +1 -1
  306. package/dist/cjs/props/index.d.ts.map +1 -1
  307. package/dist/cjs/props/index.js +1 -1
  308. package/dist/cjs/props/index.js.map +4 -4
  309. package/dist/esm/chunk-2264DHUW.js +2 -0
  310. package/dist/esm/{chunk-AU3D6F42.js.map → chunk-2264DHUW.js.map} +2 -2
  311. package/dist/esm/chunk-2CMM7MEL.js +2 -0
  312. package/dist/esm/chunk-2CMM7MEL.js.map +7 -0
  313. package/dist/esm/chunk-2I7QRVJ5.js +2 -0
  314. package/dist/esm/chunk-2I7QRVJ5.js.map +7 -0
  315. package/dist/esm/{chunk-2FYJTSOP.js → chunk-2SZZ75RJ.js} +2 -2
  316. package/dist/esm/chunk-3KSGRY6I.js +2 -0
  317. package/dist/esm/chunk-3KSGRY6I.js.map +7 -0
  318. package/dist/esm/chunk-4NTGF22C.js +2 -0
  319. package/dist/esm/chunk-4NTGF22C.js.map +7 -0
  320. package/dist/esm/chunk-4WVNMGI5.js +2 -0
  321. package/dist/esm/chunk-4WVNMGI5.js.map +7 -0
  322. package/dist/esm/chunk-4XKK32M4.js +2 -0
  323. package/dist/esm/chunk-4XKK32M4.js.map +7 -0
  324. package/dist/esm/chunk-5SNHUVDA.js +2 -0
  325. package/dist/esm/{chunk-H7ST535H.js → chunk-5WRCK4R7.js} +2 -2
  326. package/dist/esm/chunk-5XV4QEP5.js +2 -0
  327. package/dist/esm/chunk-5XV4QEP5.js.map +7 -0
  328. package/dist/esm/chunk-667BKCUG.js +2 -0
  329. package/dist/esm/chunk-667BKCUG.js.map +7 -0
  330. package/dist/esm/{chunk-MHPPVJDB.js → chunk-67MKPTZJ.js} +2 -2
  331. package/dist/esm/chunk-7EWFBWBS.js +2 -0
  332. package/dist/esm/chunk-7EWFBWBS.js.map +7 -0
  333. package/dist/esm/{chunk-CRWYCLTE.js → chunk-ABSKRHVM.js} +2 -2
  334. package/dist/esm/chunk-AF6XKU3W.js +2 -0
  335. package/dist/esm/chunk-AF6XKU3W.js.map +7 -0
  336. package/dist/esm/chunk-AGSSWWFI.js +2 -0
  337. package/dist/esm/chunk-AGSSWWFI.js.map +7 -0
  338. package/dist/esm/{chunk-PTLFMWCN.js → chunk-ALWNS44Q.js} +2 -2
  339. package/dist/esm/{chunk-3MWWP4MW.js → chunk-BBJUB52V.js} +2 -2
  340. package/dist/esm/{chunk-GYBLXQ4R.js → chunk-CDG5WH4U.js} +2 -2
  341. package/dist/esm/{chunk-CVWCKOHO.js → chunk-CEIK5U6C.js} +2 -2
  342. package/dist/esm/{chunk-374ZYJUP.js → chunk-CESYMTJQ.js} +2 -2
  343. package/dist/esm/chunk-CFNESRYI.js +2 -0
  344. package/dist/esm/chunk-CFNESRYI.js.map +7 -0
  345. package/dist/esm/{chunk-P7IAHW4V.js → chunk-CIYF56YS.js} +2 -2
  346. package/dist/esm/chunk-CJ27XP5Z.js +2 -0
  347. package/dist/esm/chunk-CJ27XP5Z.js.map +7 -0
  348. package/dist/esm/{chunk-LKAK5GXF.js → chunk-CKMMUHKE.js} +2 -2
  349. package/dist/esm/{chunk-SESAEJ6W.js → chunk-CLMOWP5T.js} +2 -2
  350. package/dist/esm/{chunk-DUHJVT64.js → chunk-CRSHBENJ.js} +2 -2
  351. package/dist/esm/{chunk-GJSGKE7B.js → chunk-CTA5ODAO.js} +2 -2
  352. package/dist/esm/{chunk-CWRNW44F.js → chunk-DSJY5RI3.js} +2 -2
  353. package/dist/esm/chunk-EBQZ3Z22.js +2 -0
  354. package/dist/esm/chunk-EBQZ3Z22.js.map +7 -0
  355. package/dist/esm/chunk-ECXGQQJB.js +2 -0
  356. package/dist/esm/chunk-ECXGQQJB.js.map +7 -0
  357. package/dist/esm/chunk-EDKQURDU.js +2 -0
  358. package/dist/esm/chunk-EDKQURDU.js.map +7 -0
  359. package/dist/esm/{chunk-M24UXMOQ.js → chunk-EE2IH2GL.js} +2 -2
  360. package/dist/esm/{chunk-NMKPFUNP.js → chunk-EPTYNVCU.js} +2 -2
  361. package/dist/esm/chunk-F6V7GBNQ.js +2 -0
  362. package/dist/esm/chunk-F6V7GBNQ.js.map +7 -0
  363. package/dist/esm/{chunk-XMRIRFM7.js → chunk-FG7XM7KJ.js} +2 -2
  364. package/dist/esm/chunk-FMBECDL4.js +2 -0
  365. package/dist/esm/{chunk-4XJY6FIK.js.map → chunk-FMBECDL4.js.map} +3 -3
  366. package/dist/esm/{chunk-6IGTK4JE.js → chunk-GAV3NHYL.js} +2 -2
  367. package/dist/esm/{chunk-TOOSHJOA.js → chunk-GO7OHBHW.js} +2 -2
  368. package/dist/esm/{chunk-MBCBP73P.js → chunk-HJU4I34X.js} +2 -2
  369. package/dist/esm/{chunk-VX6ARMWP.js → chunk-HSAG7C53.js} +2 -2
  370. package/dist/esm/{chunk-K6QZMNCD.js → chunk-IFM4EMZB.js} +2 -2
  371. package/dist/esm/chunk-JFWMAYEH.js +2 -0
  372. package/dist/esm/chunk-JFWMAYEH.js.map +7 -0
  373. package/dist/esm/{chunk-HF5WY5YE.js → chunk-JGLAE5G7.js} +2 -2
  374. package/dist/esm/{chunk-4YFJWXL2.js → chunk-JJKQ7CGI.js} +2 -2
  375. package/dist/esm/chunk-JSW6J6RS.js +2 -0
  376. package/dist/esm/chunk-JSW6J6RS.js.map +7 -0
  377. package/dist/esm/{chunk-P7HYVJSU.js → chunk-K3UAS7RW.js} +2 -2
  378. package/dist/esm/chunk-KCWESYMR.js +2 -0
  379. package/dist/esm/chunk-KCWESYMR.js.map +7 -0
  380. package/dist/esm/{chunk-25WZA7ZU.js → chunk-KFR3CK24.js} +2 -2
  381. package/dist/esm/chunk-KJUDZCYK.js +2 -0
  382. package/dist/esm/{chunk-SO67YEVQ.js.map → chunk-KJUDZCYK.js.map} +2 -2
  383. package/dist/esm/{chunk-WFMYNZXZ.js → chunk-KMPE7TJ6.js} +2 -2
  384. package/dist/esm/{chunk-WXP6MMUB.js → chunk-KOFEFBB3.js} +2 -2
  385. package/dist/esm/chunk-KRDP5SQ7.js +2 -0
  386. package/dist/esm/chunk-KRDP5SQ7.js.map +7 -0
  387. package/dist/esm/chunk-KZWNGWIM.js +2 -0
  388. package/dist/esm/chunk-KZWNGWIM.js.map +7 -0
  389. package/dist/esm/chunk-KZYFTDGO.js +2 -0
  390. package/dist/esm/chunk-KZYFTDGO.js.map +7 -0
  391. package/dist/esm/chunk-L3BWTV7I.js +2 -0
  392. package/dist/esm/chunk-L3BWTV7I.js.map +7 -0
  393. package/dist/esm/{chunk-W7N7V5YD.js → chunk-M6DJRFJZ.js} +2 -2
  394. package/dist/esm/{chunk-7QDTSBJF.js → chunk-MCPRXVKZ.js} +2 -2
  395. package/dist/esm/{chunk-DNHUQLXO.js → chunk-MEO7MJMQ.js} +2 -2
  396. package/dist/esm/{chunk-YVBCDTTD.js → chunk-MN3XALXD.js} +2 -2
  397. package/dist/esm/{chunk-F7IYL2VW.js → chunk-MS5J4MF6.js} +2 -2
  398. package/dist/esm/{chunk-OSRJRBKP.js → chunk-MTOLKA6S.js} +2 -2
  399. package/dist/esm/{chunk-MBE2YSBU.js → chunk-N4GTDLRD.js} +2 -2
  400. package/dist/esm/chunk-NIIEIZKQ.js +2 -0
  401. package/dist/esm/chunk-NIIEIZKQ.js.map +7 -0
  402. package/dist/esm/{chunk-FHOCUZDR.js → chunk-NIQT45PJ.js} +2 -2
  403. package/dist/esm/chunk-NVDXXGVW.js +2 -0
  404. package/dist/esm/chunk-NVDXXGVW.js.map +7 -0
  405. package/dist/esm/{chunk-IKSN4RNB.js → chunk-O2U6RJTB.js} +3 -3
  406. package/dist/esm/{chunk-IKSN4RNB.js.map → chunk-O2U6RJTB.js.map} +2 -2
  407. package/dist/esm/{chunk-TOLLPRMM.js → chunk-OFUNVHZ5.js} +2 -2
  408. package/dist/esm/chunk-OGVKSYLL.js +2 -0
  409. package/dist/esm/chunk-OGVKSYLL.js.map +7 -0
  410. package/dist/esm/chunk-OJU5GCDZ.js +2 -0
  411. package/dist/esm/chunk-OJU5GCDZ.js.map +7 -0
  412. package/dist/esm/{chunk-RMKXWYOV.js → chunk-OLAWVEAI.js} +2 -2
  413. package/dist/esm/chunk-OS3FCYZY.js +2 -0
  414. package/dist/esm/{chunk-UWT6TE5D.js → chunk-OTXCKEWT.js} +2 -2
  415. package/dist/esm/chunk-OWMA6GTG.js +2 -0
  416. package/dist/esm/chunk-OWMA6GTG.js.map +7 -0
  417. package/dist/esm/chunk-PZ7OYATT.js +2 -0
  418. package/dist/esm/chunk-PZ7OYATT.js.map +7 -0
  419. package/dist/esm/chunk-QFPHEY77.js +2 -0
  420. package/dist/esm/chunk-QFPHEY77.js.map +7 -0
  421. package/dist/esm/chunk-QQ62LO3X.js +2 -0
  422. package/dist/esm/chunk-QQ62LO3X.js.map +7 -0
  423. package/dist/esm/{chunk-MK2R6DAU.js → chunk-QWVU2TW4.js} +2 -2
  424. package/dist/esm/{chunk-MK2R6DAU.js.map → chunk-QWVU2TW4.js.map} +3 -3
  425. package/dist/esm/chunk-RDAMYQFF.js +2 -0
  426. package/dist/esm/chunk-RDAMYQFF.js.map +7 -0
  427. package/dist/esm/{chunk-D6B7IMZU.js → chunk-RNTCHVFI.js} +2 -2
  428. package/dist/esm/{chunk-YUP6EICB.js → chunk-SEY4NA45.js} +2 -2
  429. package/dist/esm/{chunk-YV2KYHGR.js → chunk-UBOOUDS4.js} +2 -2
  430. package/dist/esm/chunk-V27ZAN3E.js +2 -0
  431. package/dist/esm/chunk-V27ZAN3E.js.map +7 -0
  432. package/dist/esm/chunk-VBI3AWPT.js +2 -0
  433. package/dist/esm/chunk-VBI3AWPT.js.map +7 -0
  434. package/dist/esm/{chunk-S56YSRHP.js → chunk-VHECAEUP.js} +2 -2
  435. package/dist/esm/chunk-VLTXI4A7.js +2 -0
  436. package/dist/esm/chunk-VLTXI4A7.js.map +7 -0
  437. package/dist/esm/{chunk-4AQTUBVP.js → chunk-VNH7BJOA.js} +2 -2
  438. package/dist/esm/{chunk-IEWCQU2S.js → chunk-VR7ZAFYN.js} +2 -2
  439. package/dist/esm/chunk-VZSQATP6.js +2 -0
  440. package/dist/esm/{chunk-666GX7O5.js.map → chunk-VZSQATP6.js.map} +2 -2
  441. package/dist/esm/{chunk-PLWXTEVE.js → chunk-W2FOBR5Q.js} +2 -2
  442. package/dist/esm/chunk-WGYUWEQV.js +2 -0
  443. package/dist/esm/chunk-WGYUWEQV.js.map +7 -0
  444. package/dist/esm/{chunk-FXUUI6Z2.js → chunk-WHFJ4JUN.js} +2 -2
  445. package/dist/esm/chunk-WMGIFPI2.js +2 -0
  446. package/dist/esm/chunk-WMGIFPI2.js.map +7 -0
  447. package/dist/esm/chunk-WXQIIKWV.js +2 -0
  448. package/dist/esm/chunk-WXQIIKWV.js.map +7 -0
  449. package/dist/esm/{chunk-2UPAYDKR.js → chunk-X7V3V3W4.js} +2 -2
  450. package/dist/esm/{chunk-6XGZPIUT.js → chunk-XYVLQDGR.js} +2 -2
  451. package/dist/esm/{chunk-6XGZPIUT.js.map → chunk-XYVLQDGR.js.map} +2 -2
  452. package/dist/esm/{chunk-S2HA3W3V.js → chunk-Y5RCH23Z.js} +2 -2
  453. package/dist/esm/{chunk-OWAUCLRT.js → chunk-YBSRX63K.js} +2 -2
  454. package/dist/esm/{chunk-66ZLZAAJ.js → chunk-ZNK6AH2G.js} +1 -1
  455. package/dist/esm/{chunk-66ZLZAAJ.js.map → chunk-ZNK6AH2G.js.map} +1 -1
  456. package/dist/esm/{chunk-KPBG7CIL.js → chunk-ZO7TTWJI.js} +2 -2
  457. package/dist/esm/chunk-ZWZGUBL4.js +2 -0
  458. package/dist/esm/chunk-ZWZGUBL4.js.map +7 -0
  459. package/dist/esm/components/_internal/base-button.js +1 -1
  460. package/dist/esm/components/_internal/base-button.props.d.ts +2 -7
  461. package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
  462. package/dist/esm/components/_internal/base-button.props.js +1 -1
  463. package/dist/esm/components/_internal/base-checkbox.props.d.ts +0 -5
  464. package/dist/esm/components/_internal/base-checkbox.props.d.ts.map +1 -1
  465. package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
  466. package/dist/esm/components/_internal/base-menu.props.d.ts +0 -10
  467. package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
  468. package/dist/esm/components/_internal/base-menu.props.js +1 -1
  469. package/dist/esm/components/_internal/base-menu.utils.d.ts +48 -0
  470. package/dist/esm/components/_internal/base-menu.utils.d.ts.map +1 -0
  471. package/dist/esm/components/_internal/base-menu.utils.js +2 -0
  472. package/dist/esm/components/_internal/base-radio.props.d.ts +0 -5
  473. package/dist/esm/components/_internal/base-radio.props.d.ts.map +1 -1
  474. package/dist/esm/components/_internal/base-radio.props.js +1 -1
  475. package/dist/esm/components/_internal/base-tab-list.props.d.ts +0 -5
  476. package/dist/esm/components/_internal/base-tab-list.props.d.ts.map +1 -1
  477. package/dist/esm/components/_internal/base-tab-list.props.js +1 -1
  478. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts +77 -59
  479. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
  480. package/dist/esm/components/_internal/dropdown-menu-drill-down.js +1 -1
  481. package/dist/esm/components/_internal/menu-context.d.ts +7 -3
  482. package/dist/esm/components/_internal/menu-context.d.ts.map +1 -1
  483. package/dist/esm/components/_internal/menu-context.js +1 -1
  484. package/dist/esm/components/_internal/shell-bottom.js +1 -1
  485. package/dist/esm/components/_internal/shell-handles.js +1 -1
  486. package/dist/esm/components/_internal/shell-inspector.js +1 -1
  487. package/dist/esm/components/_internal/shell-prop-helpers.js +1 -1
  488. package/dist/esm/components/_internal/shell-resize.js +1 -1
  489. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  490. package/dist/esm/components/accessible-icon.js +1 -1
  491. package/dist/esm/components/accordion.js +1 -1
  492. package/dist/esm/components/accordion.props.d.ts +0 -6
  493. package/dist/esm/components/accordion.props.d.ts.map +1 -1
  494. package/dist/esm/components/accordion.props.js +1 -1
  495. package/dist/esm/components/alert-dialog.js +1 -1
  496. package/dist/esm/components/alert-dialog.props.js +1 -1
  497. package/dist/esm/components/aspect-ratio.js +1 -1
  498. package/dist/esm/components/avatar.js +1 -1
  499. package/dist/esm/components/avatar.props.d.ts +0 -5
  500. package/dist/esm/components/avatar.props.d.ts.map +1 -1
  501. package/dist/esm/components/avatar.props.js +1 -1
  502. package/dist/esm/components/badge.js +1 -1
  503. package/dist/esm/components/badge.props.d.ts +0 -5
  504. package/dist/esm/components/badge.props.d.ts.map +1 -1
  505. package/dist/esm/components/badge.props.js +1 -1
  506. package/dist/esm/components/blockquote.js +1 -1
  507. package/dist/esm/components/blockquote.props.d.ts +3 -2
  508. package/dist/esm/components/blockquote.props.d.ts.map +1 -1
  509. package/dist/esm/components/blockquote.props.js +1 -1
  510. package/dist/esm/components/box.js +1 -1
  511. package/dist/esm/components/box.props.js +1 -1
  512. package/dist/esm/components/button.js +1 -1
  513. package/dist/esm/components/button.props.js +1 -1
  514. package/dist/esm/components/callout.js +1 -1
  515. package/dist/esm/components/callout.props.d.ts +0 -5
  516. package/dist/esm/components/callout.props.d.ts.map +1 -1
  517. package/dist/esm/components/callout.props.js +1 -1
  518. package/dist/esm/components/card.js +1 -1
  519. package/dist/esm/components/card.props.js +1 -1
  520. package/dist/esm/components/chatbar.d.ts +46 -44
  521. package/dist/esm/components/chatbar.d.ts.map +1 -1
  522. package/dist/esm/components/chatbar.js +1 -1
  523. package/dist/esm/components/checkbox-cards.d.ts.map +1 -1
  524. package/dist/esm/components/checkbox-cards.js +1 -1
  525. package/dist/esm/components/checkbox-cards.props.d.ts +0 -5
  526. package/dist/esm/components/checkbox-cards.props.d.ts.map +1 -1
  527. package/dist/esm/components/checkbox-cards.props.js +1 -1
  528. package/dist/esm/components/checkbox-group.d.ts.map +1 -1
  529. package/dist/esm/components/checkbox-group.js +1 -1
  530. package/dist/esm/components/checkbox-group.primitive.js +1 -1
  531. package/dist/esm/components/checkbox-group.props.d.ts +0 -5
  532. package/dist/esm/components/checkbox-group.props.d.ts.map +1 -1
  533. package/dist/esm/components/checkbox-group.props.js +1 -1
  534. package/dist/esm/components/checkbox.js +1 -1
  535. package/dist/esm/components/checkbox.props.js +1 -1
  536. package/dist/esm/components/code.js +1 -1
  537. package/dist/esm/components/code.props.d.ts +3 -2
  538. package/dist/esm/components/code.props.d.ts.map +1 -1
  539. package/dist/esm/components/code.props.js +1 -1
  540. package/dist/esm/components/combobox.d.ts +28 -15
  541. package/dist/esm/components/combobox.d.ts.map +1 -1
  542. package/dist/esm/components/combobox.js +1 -1
  543. package/dist/esm/components/combobox.props.d.ts +46 -8
  544. package/dist/esm/components/combobox.props.d.ts.map +1 -1
  545. package/dist/esm/components/combobox.props.js +1 -1
  546. package/dist/esm/components/container.js +1 -1
  547. package/dist/esm/components/container.props.js +1 -1
  548. package/dist/esm/components/context-menu.d.ts +18 -5
  549. package/dist/esm/components/context-menu.d.ts.map +1 -1
  550. package/dist/esm/components/context-menu.js +1 -1
  551. package/dist/esm/components/context-menu.props.d.ts +1 -1
  552. package/dist/esm/components/context-menu.props.d.ts.map +1 -1
  553. package/dist/esm/components/context-menu.props.js +1 -1
  554. package/dist/esm/components/data-list.js +1 -1
  555. package/dist/esm/components/data-list.props.d.ts +4 -3
  556. package/dist/esm/components/data-list.props.d.ts.map +1 -1
  557. package/dist/esm/components/data-list.props.js +1 -1
  558. package/dist/esm/components/dialog.js +1 -1
  559. package/dist/esm/components/dialog.props.js +1 -1
  560. package/dist/esm/components/dropdown-menu.d.ts +11 -18
  561. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  562. package/dist/esm/components/dropdown-menu.js +1 -1
  563. package/dist/esm/components/dropdown-menu.props.js +1 -1
  564. package/dist/esm/components/em.js +1 -1
  565. package/dist/esm/components/em.props.js +1 -1
  566. package/dist/esm/components/flex.js +1 -1
  567. package/dist/esm/components/flex.props.js +1 -1
  568. package/dist/esm/components/grid.js +1 -1
  569. package/dist/esm/components/grid.props.js +1 -1
  570. package/dist/esm/components/heading.js +1 -1
  571. package/dist/esm/components/heading.props.d.ts +3 -2
  572. package/dist/esm/components/heading.props.d.ts.map +1 -1
  573. package/dist/esm/components/heading.props.js +1 -1
  574. package/dist/esm/components/hover-card.js +1 -1
  575. package/dist/esm/components/hover-card.props.js +1 -1
  576. package/dist/esm/components/icon-button.js +1 -1
  577. package/dist/esm/components/icon-button.props.js +1 -1
  578. package/dist/esm/components/icons.js +1 -1
  579. package/dist/esm/components/image.js +1 -1
  580. package/dist/esm/components/image.props.js +1 -1
  581. package/dist/esm/components/index.js +1 -1
  582. package/dist/esm/components/inset.js +1 -1
  583. package/dist/esm/components/inset.props.js +1 -1
  584. package/dist/esm/components/kbd.js +1 -1
  585. package/dist/esm/components/kbd.props.js +1 -1
  586. package/dist/esm/components/link.js +1 -1
  587. package/dist/esm/components/link.props.d.ts +0 -5
  588. package/dist/esm/components/link.props.d.ts.map +1 -1
  589. package/dist/esm/components/link.props.js +1 -1
  590. package/dist/esm/components/navbar.js +1 -1
  591. package/dist/esm/components/navbar.props.js +1 -1
  592. package/dist/esm/components/popover.js +1 -1
  593. package/dist/esm/components/popover.props.js +1 -1
  594. package/dist/esm/components/portal.js +1 -1
  595. package/dist/esm/components/progress.js +1 -1
  596. package/dist/esm/components/progress.props.d.ts +0 -5
  597. package/dist/esm/components/progress.props.d.ts.map +1 -1
  598. package/dist/esm/components/progress.props.js +1 -1
  599. package/dist/esm/components/quote.js +1 -1
  600. package/dist/esm/components/quote.props.js +1 -1
  601. package/dist/esm/components/radio-cards.js +1 -1
  602. package/dist/esm/components/radio-cards.props.d.ts +0 -5
  603. package/dist/esm/components/radio-cards.props.d.ts.map +1 -1
  604. package/dist/esm/components/radio-cards.props.js +1 -1
  605. package/dist/esm/components/radio-group.d.ts.map +1 -1
  606. package/dist/esm/components/radio-group.js +1 -1
  607. package/dist/esm/components/radio-group.props.d.ts +0 -5
  608. package/dist/esm/components/radio-group.props.d.ts.map +1 -1
  609. package/dist/esm/components/radio-group.props.js +1 -1
  610. package/dist/esm/components/radio.js +1 -1
  611. package/dist/esm/components/radio.props.js +1 -1
  612. package/dist/esm/components/reset.js +1 -1
  613. package/dist/esm/components/schemas/base-button.schema.d.ts +111 -257
  614. package/dist/esm/components/schemas/base-button.schema.d.ts.map +1 -1
  615. package/dist/esm/components/schemas/base-button.schema.js +1 -1
  616. package/dist/esm/components/schemas/button.schema.d.ts +136 -558
  617. package/dist/esm/components/schemas/button.schema.d.ts.map +1 -1
  618. package/dist/esm/components/schemas/button.schema.js +1 -1
  619. package/dist/esm/components/schemas/icon-button.schema.d.ts +123 -241
  620. package/dist/esm/components/schemas/icon-button.schema.d.ts.map +1 -1
  621. package/dist/esm/components/schemas/icon-button.schema.js +1 -1
  622. package/dist/esm/components/schemas/index.js +1 -1
  623. package/dist/esm/components/schemas/shell.schema.d.ts +592 -851
  624. package/dist/esm/components/schemas/shell.schema.d.ts.map +1 -1
  625. package/dist/esm/components/schemas/shell.schema.js +1 -1
  626. package/dist/esm/components/schemas/toggle-button.schema.d.ts +138 -1027
  627. package/dist/esm/components/schemas/toggle-button.schema.d.ts.map +1 -1
  628. package/dist/esm/components/schemas/toggle-button.schema.js +1 -1
  629. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +124 -466
  630. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
  631. package/dist/esm/components/schemas/toggle-icon-button.schema.js +1 -1
  632. package/dist/esm/components/scroll-area.js +1 -1
  633. package/dist/esm/components/scroll-area.props.js +1 -1
  634. package/dist/esm/components/section.js +1 -1
  635. package/dist/esm/components/section.props.js +1 -1
  636. package/dist/esm/components/segmented-control.js +1 -1
  637. package/dist/esm/components/segmented-control.props.js +1 -1
  638. package/dist/esm/components/select.js +1 -1
  639. package/dist/esm/components/select.props.d.ts +0 -5
  640. package/dist/esm/components/select.props.d.ts.map +1 -1
  641. package/dist/esm/components/select.props.js +1 -1
  642. package/dist/esm/components/separator.js +1 -1
  643. package/dist/esm/components/separator.props.js +1 -1
  644. package/dist/esm/components/sheet.js +1 -1
  645. package/dist/esm/components/shell.context.js +1 -1
  646. package/dist/esm/components/shell.hooks.js +1 -1
  647. package/dist/esm/components/shell.js +1 -1
  648. package/dist/esm/components/shell.types.js +1 -1
  649. package/dist/esm/components/sidebar.d.ts +0 -1
  650. package/dist/esm/components/sidebar.d.ts.map +1 -1
  651. package/dist/esm/components/sidebar.js +1 -1
  652. package/dist/esm/components/sidebar.props.d.ts +0 -5
  653. package/dist/esm/components/sidebar.props.d.ts.map +1 -1
  654. package/dist/esm/components/sidebar.props.js +1 -1
  655. package/dist/esm/components/skeleton.js +1 -1
  656. package/dist/esm/components/skeleton.props.js +1 -1
  657. package/dist/esm/components/slider.js +1 -1
  658. package/dist/esm/components/slider.props.d.ts +0 -5
  659. package/dist/esm/components/slider.props.d.ts.map +1 -1
  660. package/dist/esm/components/slider.props.js +1 -1
  661. package/dist/esm/components/slot.d.ts +6 -2
  662. package/dist/esm/components/slot.d.ts.map +1 -1
  663. package/dist/esm/components/slot.js +1 -1
  664. package/dist/esm/components/spinner.js +1 -1
  665. package/dist/esm/components/spinner.props.js +1 -1
  666. package/dist/esm/components/strong.js +1 -1
  667. package/dist/esm/components/strong.props.js +1 -1
  668. package/dist/esm/components/switch.d.ts.map +1 -1
  669. package/dist/esm/components/switch.js +1 -1
  670. package/dist/esm/components/switch.props.d.ts +0 -5
  671. package/dist/esm/components/switch.props.d.ts.map +1 -1
  672. package/dist/esm/components/switch.props.js +1 -1
  673. package/dist/esm/components/tab-nav.js +1 -1
  674. package/dist/esm/components/tab-nav.props.js +1 -1
  675. package/dist/esm/components/table.js +1 -1
  676. package/dist/esm/components/table.props.js +1 -1
  677. package/dist/esm/components/tabs.js +1 -1
  678. package/dist/esm/components/tabs.props.js +1 -1
  679. package/dist/esm/components/text-area.js +1 -1
  680. package/dist/esm/components/text-area.props.js +1 -1
  681. package/dist/esm/components/text-field.js +1 -1
  682. package/dist/esm/components/text-field.props.js +1 -1
  683. package/dist/esm/components/text.js +1 -1
  684. package/dist/esm/components/text.props.d.ts +3 -2
  685. package/dist/esm/components/text.props.d.ts.map +1 -1
  686. package/dist/esm/components/text.props.js +1 -1
  687. package/dist/esm/components/theme-panel.js +1 -1
  688. package/dist/esm/components/theme.js +1 -1
  689. package/dist/esm/components/theme.props.d.ts +1 -1
  690. package/dist/esm/components/theme.props.js +1 -1
  691. package/dist/esm/components/toggle-button.js +1 -1
  692. package/dist/esm/components/toggle-icon-button.js +1 -1
  693. package/dist/esm/components/toolbar.js +1 -1
  694. package/dist/esm/components/tooltip.js +1 -1
  695. package/dist/esm/components/tooltip.props.js +1 -1
  696. package/dist/esm/components/user-card.d.ts.map +1 -1
  697. package/dist/esm/components/user-card.js +1 -1
  698. package/dist/esm/components/user-card.props.d.ts +0 -5
  699. package/dist/esm/components/user-card.props.d.ts.map +1 -1
  700. package/dist/esm/components/user-card.props.js +1 -1
  701. package/dist/esm/components/virtual-menu.d.ts.map +1 -1
  702. package/dist/esm/components/virtual-menu.js +1 -1
  703. package/dist/esm/components/visually-hidden.js +1 -1
  704. package/dist/esm/helpers/compile-prop-defs.js +1 -1
  705. package/dist/esm/helpers/extract-margin-props.js +1 -1
  706. package/dist/esm/helpers/extract-props.js +1 -1
  707. package/dist/esm/helpers/font-config.js +1 -1
  708. package/dist/esm/helpers/get-margin-styles.js +1 -1
  709. package/dist/esm/helpers/get-matching-gray-color.js +1 -1
  710. package/dist/esm/helpers/get-responsive-styles.js +1 -1
  711. package/dist/esm/helpers/get-subtree.js +1 -1
  712. package/dist/esm/helpers/has-own-property.js +1 -1
  713. package/dist/esm/helpers/index.js +1 -1
  714. package/dist/esm/helpers/inert.js +1 -1
  715. package/dist/esm/helpers/is-responsive-object.js +1 -1
  716. package/dist/esm/helpers/map-prop-values.js +1 -1
  717. package/dist/esm/helpers/merge-styles.js +1 -1
  718. package/dist/esm/helpers/normalize-to-px.js +1 -1
  719. package/dist/esm/helpers/require-react-element.js +1 -1
  720. package/dist/esm/helpers/use-deprecation-warning.js +1 -1
  721. package/dist/esm/hooks/index.js +1 -1
  722. package/dist/esm/hooks/use-body-pointer-events-cleanup.js +1 -1
  723. package/dist/esm/hooks/use-breakpoint.d.ts +4 -1
  724. package/dist/esm/hooks/use-breakpoint.d.ts.map +1 -1
  725. package/dist/esm/hooks/use-breakpoint.js +1 -1
  726. package/dist/esm/hooks/use-live-announcer.js +1 -1
  727. package/dist/esm/hooks/use-prop-synced-state.js +1 -1
  728. package/dist/esm/hooks/use-toggle-state.js +1 -1
  729. package/dist/esm/hooks/use-tooltip-wrapper.js +1 -1
  730. package/dist/esm/index.js +1 -1
  731. package/dist/esm/props/as-child.prop.js +1 -1
  732. package/dist/esm/props/color.prop.js +1 -1
  733. package/dist/esm/props/emphasis.prop.d.ts +11 -0
  734. package/dist/esm/props/emphasis.prop.d.ts.map +1 -0
  735. package/dist/esm/props/emphasis.prop.js +2 -0
  736. package/dist/esm/props/emphasis.prop.js.map +7 -0
  737. package/dist/esm/props/font-family.prop.js +1 -1
  738. package/dist/esm/props/gap.props.js +1 -1
  739. package/dist/esm/props/height.props.js +1 -1
  740. package/dist/esm/props/index.d.ts +1 -1
  741. package/dist/esm/props/index.d.ts.map +1 -1
  742. package/dist/esm/props/index.js +1 -1
  743. package/dist/esm/props/layout.props.js +1 -1
  744. package/dist/esm/props/leading-trim.prop.js +1 -1
  745. package/dist/esm/props/margin.props.js +1 -1
  746. package/dist/esm/props/padding.props.js +1 -1
  747. package/dist/esm/props/prop-def.js +1 -1
  748. package/dist/esm/props/radius.prop.js +1 -1
  749. package/dist/esm/props/shadow.props.js +1 -1
  750. package/dist/esm/props/text-align.prop.js +1 -1
  751. package/dist/esm/props/text-wrap.prop.js +1 -1
  752. package/dist/esm/props/truncate.prop.js +1 -1
  753. package/dist/esm/props/weight.prop.js +1 -1
  754. package/dist/esm/props/width.props.js +1 -1
  755. package/fonts.css +2 -0
  756. package/package.json +36 -36
  757. package/schemas/base-button.json +64 -63
  758. package/schemas/button.json +78 -77
  759. package/schemas/icon-button.json +76 -75
  760. package/schemas/index.json +380 -375
  761. package/schemas/toggle-button.json +82 -81
  762. package/schemas/toggle-icon-button.json +80 -79
  763. package/src/components/_internal/base-button.css +14 -69
  764. package/src/components/_internal/base-button.props.ts +2 -4
  765. package/src/components/_internal/base-checkbox.css +9 -63
  766. package/src/components/_internal/base-checkbox.props.ts +0 -2
  767. package/src/components/_internal/base-menu.css +56 -183
  768. package/src/components/_internal/base-menu.props.ts +0 -2
  769. package/src/components/_internal/base-menu.utils.tsx +144 -0
  770. package/src/components/_internal/base-radio.css +9 -46
  771. package/src/components/_internal/base-radio.props.ts +0 -2
  772. package/src/components/_internal/base-sidebar-menu.css +3 -3
  773. package/src/components/_internal/base-tab-list.css +1 -7
  774. package/src/components/_internal/base-tab-list.props.ts +0 -2
  775. package/src/components/_internal/dropdown-menu-drill-down.tsx +281 -183
  776. package/src/components/_internal/menu-context.tsx +24 -15
  777. package/src/components/accordion.css +4 -62
  778. package/src/components/accordion.props.tsx +0 -3
  779. package/src/components/avatar.css +10 -61
  780. package/src/components/avatar.props.tsx +0 -2
  781. package/src/components/badge.css +7 -32
  782. package/src/components/badge.props.tsx +0 -2
  783. package/src/components/blockquote.props.tsx +2 -2
  784. package/src/components/callout.css +5 -25
  785. package/src/components/callout.props.tsx +0 -2
  786. package/src/components/chatbar.css +94 -26
  787. package/src/components/chatbar.tsx +742 -735
  788. package/src/components/checkbox-cards.props.tsx +0 -2
  789. package/src/components/checkbox-cards.tsx +1 -4
  790. package/src/components/checkbox-group.tsx +0 -2
  791. package/src/components/code.css +36 -36
  792. package/src/components/code.props.tsx +2 -2
  793. package/src/components/combobox.css +61 -120
  794. package/src/components/combobox.props.tsx +15 -5
  795. package/src/components/combobox.tsx +439 -215
  796. package/src/components/context-menu.props.tsx +4 -1
  797. package/src/components/context-menu.tsx +106 -63
  798. package/src/components/data-list.css +14 -9
  799. package/src/components/data-list.props.tsx +5 -2
  800. package/src/components/dropdown-menu.css +41 -121
  801. package/src/components/dropdown-menu.tsx +427 -276
  802. package/src/components/heading.css +16 -5
  803. package/src/components/heading.props.tsx +2 -2
  804. package/src/components/link.css +3 -4
  805. package/src/components/link.props.tsx +0 -2
  806. package/src/components/progress.css +3 -10
  807. package/src/components/progress.props.tsx +0 -2
  808. package/src/components/radio-cards.css +1 -4
  809. package/src/components/radio-cards.props.tsx +0 -2
  810. package/src/components/radio-group.props.tsx +0 -2
  811. package/src/components/radio-group.tsx +0 -2
  812. package/src/components/schemas/base-button.schema.ts +0 -10
  813. package/src/components/schemas/shell.schema.ts +11 -18
  814. package/src/components/scroll-area.css +2 -3
  815. package/src/components/select.css +13 -96
  816. package/src/components/select.props.tsx +0 -2
  817. package/src/components/sheet.tsx +2 -2
  818. package/src/components/sidebar.css +21 -115
  819. package/src/components/sidebar.props.tsx +0 -2
  820. package/src/components/sidebar.tsx +2 -5
  821. package/src/components/slider.css +4 -37
  822. package/src/components/slider.props.tsx +0 -2
  823. package/src/components/slider.tsx +1 -1
  824. package/src/components/switch.css +4 -23
  825. package/src/components/switch.props.tsx +0 -2
  826. package/src/components/switch.tsx +1 -3
  827. package/src/components/text.css +16 -5
  828. package/src/components/text.props.tsx +2 -2
  829. package/src/components/theme-panel.tsx +1 -1
  830. package/src/components/theme.props.tsx +1 -1
  831. package/src/components/user-card.props.tsx +0 -2
  832. package/src/components/user-card.tsx +1 -2
  833. package/src/components/virtual-menu.tsx +12 -8
  834. package/src/hooks/use-breakpoint.ts +19 -3
  835. package/src/props/color.prop.ts +1 -1
  836. package/src/props/emphasis.prop.ts +19 -0
  837. package/src/props/index.ts +1 -1
  838. package/src/styles/fonts.css +6 -1
  839. package/src/styles/tokens/color.css +109 -0
  840. package/src/styles/tokens/constants.css +0 -1
  841. package/src/styles/tokens/font-family.css +13 -5
  842. package/styles.css +694 -1225
  843. package/tokens/base.css +205 -151
  844. package/tokens.css +205 -152
  845. package/dist/cjs/props/high-contrast.prop.d.ts +0 -9
  846. package/dist/cjs/props/high-contrast.prop.d.ts.map +0 -1
  847. package/dist/cjs/props/high-contrast.prop.js +0 -2
  848. package/dist/cjs/props/high-contrast.prop.js.map +0 -7
  849. package/dist/esm/chunk-3DC63EZP.js +0 -2
  850. package/dist/esm/chunk-3DC63EZP.js.map +0 -7
  851. package/dist/esm/chunk-3XT5P2HO.js +0 -2
  852. package/dist/esm/chunk-4TCXI3L3.js +0 -2
  853. package/dist/esm/chunk-4TCXI3L3.js.map +0 -7
  854. package/dist/esm/chunk-4XJY6FIK.js +0 -2
  855. package/dist/esm/chunk-4Z33XHOK.js +0 -2
  856. package/dist/esm/chunk-4Z33XHOK.js.map +0 -7
  857. package/dist/esm/chunk-666GX7O5.js +0 -2
  858. package/dist/esm/chunk-6HEAF5IT.js +0 -2
  859. package/dist/esm/chunk-6HEAF5IT.js.map +0 -7
  860. package/dist/esm/chunk-A2RZGGMY.js +0 -2
  861. package/dist/esm/chunk-A2RZGGMY.js.map +0 -7
  862. package/dist/esm/chunk-A3NH376A.js +0 -2
  863. package/dist/esm/chunk-A3NH376A.js.map +0 -7
  864. package/dist/esm/chunk-AU3D6F42.js +0 -2
  865. package/dist/esm/chunk-B24BDVG2.js +0 -2
  866. package/dist/esm/chunk-B24BDVG2.js.map +0 -7
  867. package/dist/esm/chunk-BI7W34WW.js +0 -2
  868. package/dist/esm/chunk-BI7W34WW.js.map +0 -7
  869. package/dist/esm/chunk-CBR3VIRS.js +0 -2
  870. package/dist/esm/chunk-CBR3VIRS.js.map +0 -7
  871. package/dist/esm/chunk-D2AZAGGP.js +0 -2
  872. package/dist/esm/chunk-D2AZAGGP.js.map +0 -7
  873. package/dist/esm/chunk-E2Z5IA2P.js +0 -2
  874. package/dist/esm/chunk-E2Z5IA2P.js.map +0 -7
  875. package/dist/esm/chunk-F7IUK2I2.js +0 -2
  876. package/dist/esm/chunk-FLBLS7M4.js +0 -2
  877. package/dist/esm/chunk-FLBLS7M4.js.map +0 -7
  878. package/dist/esm/chunk-GSIE6SUD.js +0 -2
  879. package/dist/esm/chunk-GSIE6SUD.js.map +0 -7
  880. package/dist/esm/chunk-GWXVETMF.js +0 -2
  881. package/dist/esm/chunk-GWXVETMF.js.map +0 -7
  882. package/dist/esm/chunk-HOHUDTTL.js +0 -2
  883. package/dist/esm/chunk-HOHUDTTL.js.map +0 -7
  884. package/dist/esm/chunk-HUKPWYG2.js +0 -2
  885. package/dist/esm/chunk-HUKPWYG2.js.map +0 -7
  886. package/dist/esm/chunk-HVWEPVBH.js +0 -2
  887. package/dist/esm/chunk-HVWEPVBH.js.map +0 -7
  888. package/dist/esm/chunk-IDYHZIS6.js +0 -2
  889. package/dist/esm/chunk-IDYHZIS6.js.map +0 -7
  890. package/dist/esm/chunk-IGQRZCAI.js +0 -2
  891. package/dist/esm/chunk-IGQRZCAI.js.map +0 -7
  892. package/dist/esm/chunk-ILRJA7FU.js +0 -2
  893. package/dist/esm/chunk-ILRJA7FU.js.map +0 -7
  894. package/dist/esm/chunk-KKBP2CRH.js +0 -2
  895. package/dist/esm/chunk-KKBP2CRH.js.map +0 -7
  896. package/dist/esm/chunk-KTAFIHJY.js +0 -2
  897. package/dist/esm/chunk-KTAFIHJY.js.map +0 -7
  898. package/dist/esm/chunk-MCQAJV4K.js +0 -2
  899. package/dist/esm/chunk-MCQAJV4K.js.map +0 -7
  900. package/dist/esm/chunk-MJ47O7KH.js +0 -2
  901. package/dist/esm/chunk-MJ47O7KH.js.map +0 -7
  902. package/dist/esm/chunk-MOR3NSXQ.js +0 -2
  903. package/dist/esm/chunk-MOR3NSXQ.js.map +0 -7
  904. package/dist/esm/chunk-N2B7TWIP.js +0 -2
  905. package/dist/esm/chunk-N2B7TWIP.js.map +0 -7
  906. package/dist/esm/chunk-QCNUTT4R.js +0 -2
  907. package/dist/esm/chunk-QCNUTT4R.js.map +0 -7
  908. package/dist/esm/chunk-QEOAXJLN.js +0 -2
  909. package/dist/esm/chunk-QEOAXJLN.js.map +0 -7
  910. package/dist/esm/chunk-SO67YEVQ.js +0 -2
  911. package/dist/esm/chunk-TBJ6L4NL.js +0 -2
  912. package/dist/esm/chunk-TBJ6L4NL.js.map +0 -7
  913. package/dist/esm/chunk-TGN5ZJU5.js +0 -2
  914. package/dist/esm/chunk-TGN5ZJU5.js.map +0 -7
  915. package/dist/esm/chunk-UGD7Z3L4.js +0 -2
  916. package/dist/esm/chunk-UGD7Z3L4.js.map +0 -7
  917. package/dist/esm/chunk-UMX5MGLG.js +0 -2
  918. package/dist/esm/chunk-UMX5MGLG.js.map +0 -7
  919. package/dist/esm/chunk-WR7YLY46.js +0 -2
  920. package/dist/esm/chunk-WR7YLY46.js.map +0 -7
  921. package/dist/esm/chunk-WZETC7WV.js +0 -2
  922. package/dist/esm/chunk-WZETC7WV.js.map +0 -7
  923. package/dist/esm/chunk-XGGLYV5D.js +0 -2
  924. package/dist/esm/chunk-XGGLYV5D.js.map +0 -7
  925. package/dist/esm/chunk-XKASPWCJ.js +0 -2
  926. package/dist/esm/chunk-XKASPWCJ.js.map +0 -7
  927. package/dist/esm/chunk-YEB3H7QN.js +0 -2
  928. package/dist/esm/chunk-YEB3H7QN.js.map +0 -7
  929. package/dist/esm/chunk-ZRKE3NVU.js +0 -2
  930. package/dist/esm/chunk-ZRKE3NVU.js.map +0 -7
  931. package/dist/esm/chunk-ZY6SQWHT.js +0 -2
  932. package/dist/esm/chunk-ZY6SQWHT.js.map +0 -7
  933. package/dist/esm/props/high-contrast.prop.d.ts +0 -9
  934. package/dist/esm/props/high-contrast.prop.d.ts.map +0 -1
  935. package/dist/esm/props/high-contrast.prop.js +0 -2
  936. package/src/props/high-contrast.prop.ts +0 -13
  937. /package/dist/esm/{chunk-2FYJTSOP.js.map → chunk-2SZZ75RJ.js.map} +0 -0
  938. /package/dist/esm/{chunk-F7IUK2I2.js.map → chunk-5SNHUVDA.js.map} +0 -0
  939. /package/dist/esm/{chunk-H7ST535H.js.map → chunk-5WRCK4R7.js.map} +0 -0
  940. /package/dist/esm/{chunk-MHPPVJDB.js.map → chunk-67MKPTZJ.js.map} +0 -0
  941. /package/dist/esm/{chunk-CRWYCLTE.js.map → chunk-ABSKRHVM.js.map} +0 -0
  942. /package/dist/esm/{chunk-PTLFMWCN.js.map → chunk-ALWNS44Q.js.map} +0 -0
  943. /package/dist/esm/{chunk-3MWWP4MW.js.map → chunk-BBJUB52V.js.map} +0 -0
  944. /package/dist/esm/{chunk-GYBLXQ4R.js.map → chunk-CDG5WH4U.js.map} +0 -0
  945. /package/dist/esm/{chunk-CVWCKOHO.js.map → chunk-CEIK5U6C.js.map} +0 -0
  946. /package/dist/esm/{chunk-374ZYJUP.js.map → chunk-CESYMTJQ.js.map} +0 -0
  947. /package/dist/esm/{chunk-P7IAHW4V.js.map → chunk-CIYF56YS.js.map} +0 -0
  948. /package/dist/esm/{chunk-LKAK5GXF.js.map → chunk-CKMMUHKE.js.map} +0 -0
  949. /package/dist/esm/{chunk-SESAEJ6W.js.map → chunk-CLMOWP5T.js.map} +0 -0
  950. /package/dist/esm/{chunk-DUHJVT64.js.map → chunk-CRSHBENJ.js.map} +0 -0
  951. /package/dist/esm/{chunk-GJSGKE7B.js.map → chunk-CTA5ODAO.js.map} +0 -0
  952. /package/dist/esm/{chunk-CWRNW44F.js.map → chunk-DSJY5RI3.js.map} +0 -0
  953. /package/dist/esm/{chunk-M24UXMOQ.js.map → chunk-EE2IH2GL.js.map} +0 -0
  954. /package/dist/esm/{chunk-NMKPFUNP.js.map → chunk-EPTYNVCU.js.map} +0 -0
  955. /package/dist/esm/{chunk-XMRIRFM7.js.map → chunk-FG7XM7KJ.js.map} +0 -0
  956. /package/dist/esm/{chunk-6IGTK4JE.js.map → chunk-GAV3NHYL.js.map} +0 -0
  957. /package/dist/esm/{chunk-TOOSHJOA.js.map → chunk-GO7OHBHW.js.map} +0 -0
  958. /package/dist/esm/{chunk-MBCBP73P.js.map → chunk-HJU4I34X.js.map} +0 -0
  959. /package/dist/esm/{chunk-VX6ARMWP.js.map → chunk-HSAG7C53.js.map} +0 -0
  960. /package/dist/esm/{chunk-K6QZMNCD.js.map → chunk-IFM4EMZB.js.map} +0 -0
  961. /package/dist/esm/{chunk-HF5WY5YE.js.map → chunk-JGLAE5G7.js.map} +0 -0
  962. /package/dist/esm/{chunk-4YFJWXL2.js.map → chunk-JJKQ7CGI.js.map} +0 -0
  963. /package/dist/esm/{chunk-P7HYVJSU.js.map → chunk-K3UAS7RW.js.map} +0 -0
  964. /package/dist/esm/{chunk-25WZA7ZU.js.map → chunk-KFR3CK24.js.map} +0 -0
  965. /package/dist/esm/{chunk-WFMYNZXZ.js.map → chunk-KMPE7TJ6.js.map} +0 -0
  966. /package/dist/esm/{chunk-WXP6MMUB.js.map → chunk-KOFEFBB3.js.map} +0 -0
  967. /package/dist/esm/{chunk-W7N7V5YD.js.map → chunk-M6DJRFJZ.js.map} +0 -0
  968. /package/dist/esm/{chunk-7QDTSBJF.js.map → chunk-MCPRXVKZ.js.map} +0 -0
  969. /package/dist/esm/{chunk-DNHUQLXO.js.map → chunk-MEO7MJMQ.js.map} +0 -0
  970. /package/dist/esm/{chunk-YVBCDTTD.js.map → chunk-MN3XALXD.js.map} +0 -0
  971. /package/dist/esm/{chunk-F7IYL2VW.js.map → chunk-MS5J4MF6.js.map} +0 -0
  972. /package/dist/esm/{chunk-OSRJRBKP.js.map → chunk-MTOLKA6S.js.map} +0 -0
  973. /package/dist/esm/{chunk-MBE2YSBU.js.map → chunk-N4GTDLRD.js.map} +0 -0
  974. /package/dist/esm/{chunk-FHOCUZDR.js.map → chunk-NIQT45PJ.js.map} +0 -0
  975. /package/dist/esm/{chunk-TOLLPRMM.js.map → chunk-OFUNVHZ5.js.map} +0 -0
  976. /package/dist/esm/{chunk-RMKXWYOV.js.map → chunk-OLAWVEAI.js.map} +0 -0
  977. /package/dist/esm/{chunk-3XT5P2HO.js.map → chunk-OS3FCYZY.js.map} +0 -0
  978. /package/dist/esm/{chunk-UWT6TE5D.js.map → chunk-OTXCKEWT.js.map} +0 -0
  979. /package/dist/esm/{chunk-D6B7IMZU.js.map → chunk-RNTCHVFI.js.map} +0 -0
  980. /package/dist/esm/{chunk-YUP6EICB.js.map → chunk-SEY4NA45.js.map} +0 -0
  981. /package/dist/esm/{chunk-YV2KYHGR.js.map → chunk-UBOOUDS4.js.map} +0 -0
  982. /package/dist/esm/{chunk-S56YSRHP.js.map → chunk-VHECAEUP.js.map} +0 -0
  983. /package/dist/esm/{chunk-4AQTUBVP.js.map → chunk-VNH7BJOA.js.map} +0 -0
  984. /package/dist/esm/{chunk-IEWCQU2S.js.map → chunk-VR7ZAFYN.js.map} +0 -0
  985. /package/dist/esm/{chunk-PLWXTEVE.js.map → chunk-W2FOBR5Q.js.map} +0 -0
  986. /package/dist/esm/{chunk-FXUUI6Z2.js.map → chunk-WHFJ4JUN.js.map} +0 -0
  987. /package/dist/esm/{chunk-2UPAYDKR.js.map → chunk-X7V3V3W4.js.map} +0 -0
  988. /package/dist/esm/{chunk-S2HA3W3V.js.map → chunk-Y5RCH23Z.js.map} +0 -0
  989. /package/dist/esm/{chunk-OWAUCLRT.js.map → chunk-YBSRX63K.js.map} +0 -0
  990. /package/dist/esm/{chunk-KPBG7CIL.js.map → chunk-ZO7TTWJI.js.map} +0 -0
  991. /package/dist/esm/{props/high-contrast.prop.js.map → components/_internal/base-menu.utils.js.map} +0 -0
@@ -1,23 +1,30 @@
1
1
  'use client';
2
2
 
3
3
  /**
4
- * Combobox - Simplified architecture matching shadcn's approach for optimal performance.
5
- * Built on Popover + cmdk with minimal context overhead.
6
- *
7
- * Key performance optimizations:
8
- * - Single context instead of 5 separate contexts
9
- * - No MutationObserver - cmdk handles aria internally
10
- * - disablePointerSelection - prevents React re-renders on hover
11
- * - CSS :hover handles visual feedback (no state updates)
12
- * - No label registration - use displayValue prop for trigger display
4
+ * Combobox: Radix Popover for positioning, dismissal and focus; cmdk for search,
5
+ * filtering and keyboard navigation.
6
+ *
7
+ * Render path. State is split so an interaction re-renders only what reads it:
8
+ * - `ComboboxContext` (Trigger, Value, Content): config and the selected value.
9
+ * Open state is not in it, so opening and closing re-render no consumer.
10
+ * - `ComboboxSearchContext` (Input only): the search text.
11
+ * - `ComboboxItemContext` (Items): stable values only. Items read "am I selected"
12
+ * from a store through `useSyncExternalStore`, so a selection re-renders the old
13
+ * and the new selected item, not all N.
14
+ *
15
+ * Highlight. cmdk's `data-selected` is the single highlight source, driven by both
16
+ * the pointer and the keyboard. There is no separate CSS `:hover` highlight, so two
17
+ * items are never lit at once and Enter always picks the lit item.
13
18
  */
14
19
 
15
20
  import * as React from 'react';
16
21
  import classNames from 'classnames';
17
- import { useControllableState } from 'radix-ui/internal';
18
- import { Command as CommandPrimitive } from 'cmdk';
22
+ import { Popover as PopoverPrimitive } from 'radix-ui';
23
+ import { useCallbackRef, useComposedRefs, useControllableState, useLayoutEffect } from 'radix-ui/internal';
24
+ import { Command as CommandPrimitive, useCommandState } from 'cmdk';
19
25
 
20
26
  import { extractProps } from '../helpers/extract-props.js';
27
+ import { useDeprecatedPanelBackgroundWarning } from '../helpers/use-deprecation-warning.js';
21
28
  import { comboboxRootPropDefs, comboboxTriggerPropDefs, comboboxContentPropDefs } from './combobox.props.js';
22
29
  import { marginPropDefs } from '../props/margin.props.js';
23
30
  import { ChevronDownIcon, ThickCheckIcon } from './icons.js';
@@ -25,8 +32,9 @@ import { Theme, useThemeContext } from './theme.js';
25
32
  import { requireReactElement } from '../helpers/require-react-element.js';
26
33
  import * as Popover from './popover.js';
27
34
  import { Slottable } from './slot.js';
28
- import { textFieldRootPropDefs } from './text-field.props.js';
35
+ import { VisuallyHidden } from './visually-hidden.js';
29
36
 
37
+ import type { textFieldRootPropDefs } from './text-field.props.js';
30
38
  import type { MarginProps } from '../props/margin.props.js';
31
39
  import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
32
40
  import type { GetPropDefTypes } from '../props/prop-def.js';
@@ -35,55 +43,99 @@ type TextFieldVariant = (typeof textFieldRootPropDefs.variant.values)[number];
35
43
  type ComboboxValue = string | null;
36
44
  type CommandFilter = (value: string, search: string, keywords?: string[]) => number;
37
45
 
38
- /**
39
- * Single unified context - contains only essential shared state.
40
- * This replaces the previous 5 separate contexts for better performance.
41
- */
46
+ // Hoisted so extractProps' compiled prop-def cache (keyed by object identity) hits.
47
+ const triggerSizingPropDefs = { size: comboboxRootPropDefs.size };
48
+ const contentSizePropDefs = { size: comboboxContentPropDefs.size };
49
+
50
+ const warned = new Set<string>();
51
+ function warnOnce(message: string) {
52
+ if (warned.has(message)) return;
53
+ warned.add(message);
54
+ console.warn(message);
55
+ }
56
+
57
+ // ============================================================================
58
+ // Selection store
59
+ // ============================================================================
60
+
61
+ interface SelectionStore {
62
+ get: () => ComboboxValue;
63
+ set: (value: ComboboxValue) => void;
64
+ subscribe: (listener: () => void) => () => void;
65
+ }
66
+
67
+ function createSelectionStore(initial: ComboboxValue): SelectionStore {
68
+ let current = initial;
69
+ const listeners = new Set<() => void>();
70
+ return {
71
+ get: () => current,
72
+ set: (next) => {
73
+ if (Object.is(next, current)) return;
74
+ current = next;
75
+ listeners.forEach((listener) => listener());
76
+ },
77
+ subscribe: (listener) => {
78
+ listeners.add(listener);
79
+ return () => {
80
+ listeners.delete(listener);
81
+ };
82
+ },
83
+ };
84
+ }
85
+
86
+ // ============================================================================
87
+ // Contexts
88
+ // ============================================================================
89
+
42
90
  interface ComboboxContextValue {
43
- // Selection state
44
91
  value: ComboboxValue;
45
- onSelect: (value: string) => void;
46
- // Open state
47
- open: boolean;
92
+ displayValue?: string;
48
93
  setOpen: (open: boolean) => void;
49
- // Config (static, rarely changes)
50
94
  size?: ComboboxRootOwnProps['size'];
51
- highContrast?: boolean;
52
95
  placeholder?: string;
53
96
  searchPlaceholder?: string;
54
97
  disabled?: boolean;
55
98
  color?: string;
56
- // Display
57
- displayValue?: string;
58
- // Accessibility
59
- listboxId: string;
99
+ loop: boolean;
100
+ shouldFilter: boolean;
101
+ filter?: CommandFilter;
102
+ triggerRef: React.RefObject<HTMLButtonElement | null>;
103
+ /** Reads the trigger's accessible name from the DOM (aria-label, aria-labelledby or <label>). */
104
+ getTriggerLabel: () => string | undefined;
60
105
  }
61
106
 
62
107
  const ComboboxContext = React.createContext<ComboboxContextValue | null>(null);
63
108
 
64
- const useComboboxContext = (componentName?: string) => {
109
+ const useComboboxContext = (componentName: string) => {
65
110
  const ctx = React.useContext(ComboboxContext);
66
111
  if (!ctx) {
67
- const name = componentName ? `Combobox.${componentName}` : 'Combobox components';
68
- throw new Error(`${name} must be used within Combobox.Root`);
112
+ throw new Error(`Combobox.${componentName} must be used within Combobox.Root`);
69
113
  }
70
114
  return ctx;
71
115
  };
72
116
 
73
- /**
74
- * Context for Content-specific values (variant, material).
75
- * Separate from main context as it's only needed inside Content.
76
- */
117
+ interface ComboboxSearchContextValue {
118
+ value: string;
119
+ setValue: (value: string) => void;
120
+ }
121
+
122
+ const ComboboxSearchContext = React.createContext<ComboboxSearchContextValue | null>(null);
123
+
124
+ interface ComboboxItemContextValue {
125
+ store: SelectionStore;
126
+ onSelect: (value: string) => void;
127
+ disabled?: boolean;
128
+ }
129
+
130
+ const ComboboxItemContext = React.createContext<ComboboxItemContextValue | null>(null);
131
+
132
+ /** Values resolved by Content and read by Input and List. */
77
133
  interface ComboboxContentContextValue {
78
134
  variant: 'solid' | 'soft';
79
- size: string;
135
+ sizeClassName?: string;
80
136
  color?: string;
81
137
  material?: string;
82
- highContrast?: boolean;
83
- // cmdk config passed down
84
- loop?: boolean;
85
- shouldFilter?: boolean;
86
- filter?: CommandFilter;
138
+ label?: string;
87
139
  }
88
140
 
89
141
  const ComboboxContentContext = React.createContext<ComboboxContentContextValue | null>(null);
@@ -110,11 +162,15 @@ type ComboboxRootOwnProps = GetPropDefTypes<typeof comboboxRootPropDefs> & {
110
162
  shouldFilter?: boolean;
111
163
  loop?: boolean;
112
164
  disabled?: boolean;
165
+ /** Clear the search text when an option is selected. Defaults to true. */
113
166
  resetSearchOnSelect?: boolean;
167
+ /** Clear the search text when the popup is dismissed without a selection. Defaults to true. */
168
+ resetSearchOnClose?: boolean;
114
169
  color?: (typeof comboboxTriggerPropDefs.color.values)[number];
115
170
  /**
116
- * Display value for the trigger. Required for optimal performance.
117
- * Can be a string or function that receives the current value.
171
+ * Text shown in the trigger for the selected value. Without it the raw value is shown.
172
+ * Can be a string or a function that receives the current value. Pass a stable
173
+ * function (module scope or `useCallback`): an inline function runs on every render.
118
174
  * @example displayValue={(v) => items.find(i => i.value === v)?.label}
119
175
  */
120
176
  displayValue?: string | ((value: ComboboxValue) => string | undefined);
@@ -123,11 +179,36 @@ type ComboboxRootOwnProps = GetPropDefTypes<typeof comboboxRootPropDefs> & {
123
179
  type PopoverRootProps = React.ComponentPropsWithoutRef<typeof Popover.Root>;
124
180
  interface ComboboxRootProps extends PopoverRootProps, ComboboxRootOwnProps {}
125
181
 
182
+ function readElementLabel(el: HTMLElement): string | undefined {
183
+ const ariaLabel = el.getAttribute('aria-label')?.trim();
184
+ if (ariaLabel) return ariaLabel;
185
+
186
+ const labelledBy = el.getAttribute('aria-labelledby');
187
+ if (labelledBy) {
188
+ const text = labelledBy
189
+ .split(/\s+/)
190
+ .map((id) => el.ownerDocument.getElementById(id)?.textContent?.trim())
191
+ .filter(Boolean)
192
+ .join(' ');
193
+ if (text) return text;
194
+ }
195
+
196
+ const labels = (el as HTMLButtonElement).labels;
197
+ if (labels && labels.length > 0) {
198
+ const text = Array.from(labels)
199
+ .map((label) => label.textContent?.trim())
200
+ .filter(Boolean)
201
+ .join(' ');
202
+ if (text) return text;
203
+ }
204
+
205
+ return undefined;
206
+ }
207
+
126
208
  const ComboboxRoot: React.FC<ComboboxRootProps> = (props) => {
127
209
  const {
128
210
  children,
129
211
  size = comboboxRootPropDefs.size.default,
130
- highContrast = comboboxRootPropDefs.highContrast.default,
131
212
  value: valueProp,
132
213
  defaultValue = null,
133
214
  onValueChange,
@@ -144,14 +225,12 @@ const ComboboxRoot: React.FC<ComboboxRootProps> = (props) => {
144
225
  loop = true,
145
226
  disabled,
146
227
  resetSearchOnSelect = true,
228
+ resetSearchOnClose = true,
147
229
  color,
148
230
  displayValue: displayValueProp,
149
231
  ...rootProps
150
232
  } = props;
151
233
 
152
- // Generate stable ID for listbox accessibility linkage
153
- const listboxId = React.useId();
154
-
155
234
  const [open, setOpen] = useControllableState({
156
235
  prop: openProp,
157
236
  defaultProp: defaultOpen,
@@ -170,71 +249,69 @@ const ComboboxRoot: React.FC<ComboboxRootProps> = (props) => {
170
249
  onChange: onSearchValueChange,
171
250
  });
172
251
 
173
- // Resolve displayValue
174
- const resolvedDisplayValue = React.useMemo(() => {
175
- if (displayValueProp == null) return undefined;
176
- if (typeof displayValueProp === 'function') {
177
- return displayValueProp(value);
178
- }
179
- return displayValueProp;
180
- }, [displayValueProp, value]);
181
-
182
- // Handle selection - batches all state updates
183
- const onSelect = React.useCallback(
184
- (nextValue: string) => {
185
- setValue(nextValue);
186
- setOpen(false);
187
- if (resetSearchOnSelect) {
188
- setSearchValue('');
189
- }
190
- },
191
- [setOpen, setSearchValue, setValue, resetSearchOnSelect],
192
- );
252
+ const resolvedDisplayValue = typeof displayValueProp === 'function' ? displayValueProp(value) : displayValueProp;
253
+
254
+ // Items subscribe to this store instead of the context, so a selection
255
+ // re-renders only the items whose selected state flips.
256
+ const [store] = React.useState(() => createSelectionStore(value));
257
+ useLayoutEffect(() => {
258
+ store.set(value);
259
+ }, [store, value]);
260
+
261
+ // The radix setters change identity whenever their controlled prop changes.
262
+ // Reading them through callback refs keeps these handlers stable, so the
263
+ // contexts below do not change on every keystroke or selection.
264
+ const handleOpenChange = useCallbackRef((nextOpen: boolean) => {
265
+ setOpen(nextOpen);
266
+ if (!nextOpen && resetSearchOnClose) setSearchValue('');
267
+ });
268
+
269
+ const onSelect = useCallbackRef((nextValue: string) => {
270
+ setValue(nextValue);
271
+ setOpen(false);
272
+ if (resetSearchOnSelect) setSearchValue('');
273
+ });
274
+
275
+ const triggerRef = React.useRef<HTMLButtonElement | null>(null);
276
+ const getTriggerLabel = React.useCallback(() => (triggerRef.current ? readElementLabel(triggerRef.current) : undefined), []);
193
277
 
194
- // Single context value - memoized for performance
195
278
  const contextValue = React.useMemo<ComboboxContextValue>(
196
279
  () => ({
197
280
  value,
198
- onSelect,
199
- open,
200
- setOpen,
281
+ displayValue: resolvedDisplayValue,
282
+ setOpen: handleOpenChange,
201
283
  size,
202
- highContrast,
203
284
  placeholder,
204
285
  searchPlaceholder,
205
286
  disabled,
206
287
  color,
207
- displayValue: resolvedDisplayValue,
208
- listboxId,
288
+ loop,
289
+ shouldFilter,
290
+ filter,
291
+ triggerRef,
292
+ getTriggerLabel,
209
293
  }),
210
- [value, onSelect, open, setOpen, size, highContrast, placeholder, searchPlaceholder, disabled, color, resolvedDisplayValue, listboxId],
294
+ [value, resolvedDisplayValue, handleOpenChange, size, placeholder, searchPlaceholder, disabled, color, loop, shouldFilter, filter, getTriggerLabel],
211
295
  );
212
296
 
213
- // Store cmdk config in a ref to avoid context updates
214
- const cmdkConfigRef = React.useRef({ filter, shouldFilter, loop, searchValue, setSearchValue });
215
- cmdkConfigRef.current = { filter, shouldFilter, loop, searchValue, setSearchValue };
297
+ const searchContextValue = React.useMemo<ComboboxSearchContextValue>(() => ({ value: searchValue, setValue: setSearchValue }), [searchValue, setSearchValue]);
298
+
299
+ const itemContextValue = React.useMemo<ComboboxItemContextValue>(() => ({ store, onSelect, disabled }), [store, onSelect, disabled]);
216
300
 
217
301
  return (
218
302
  <ComboboxContext.Provider value={contextValue}>
219
- <CmdkConfigContext.Provider value={cmdkConfigRef}>
220
- <Popover.Root open={open} onOpenChange={setOpen} {...rootProps}>
221
- {children}
222
- </Popover.Root>
223
- </CmdkConfigContext.Provider>
303
+ <ComboboxSearchContext.Provider value={searchContextValue}>
304
+ <ComboboxItemContext.Provider value={itemContextValue}>
305
+ <Popover.Root open={open} onOpenChange={handleOpenChange} {...rootProps}>
306
+ {children}
307
+ </Popover.Root>
308
+ </ComboboxItemContext.Provider>
309
+ </ComboboxSearchContext.Provider>
224
310
  </ComboboxContext.Provider>
225
311
  );
226
312
  };
227
313
  ComboboxRoot.displayName = 'Combobox.Root';
228
314
 
229
- // Separate ref context for cmdk config to avoid re-renders
230
- const CmdkConfigContext = React.createContext<React.MutableRefObject<{
231
- filter?: CommandFilter;
232
- shouldFilter: boolean;
233
- loop: boolean;
234
- searchValue: string;
235
- setSearchValue: (value: string) => void;
236
- }> | null>(null);
237
-
238
315
  // ============================================================================
239
316
  // Trigger
240
317
  // ============================================================================
@@ -247,28 +324,78 @@ interface ComboboxTriggerProps extends NativeTriggerProps, MarginProps, Combobox
247
324
  const ComboboxTrigger = React.forwardRef<ComboboxTriggerElement, ComboboxTriggerProps>((props, forwardedRef) => {
248
325
  const ctx = useComboboxContext('Trigger');
249
326
 
250
- const { children, className, placeholder, disabled, readOnly, error, loading, color, radius, ...triggerProps } = extractProps(
251
- { size: ctx.size, highContrast: ctx.highContrast, ...props },
252
- { size: comboboxRootPropDefs.size, highContrast: comboboxRootPropDefs.highContrast },
253
- comboboxTriggerPropDefs,
254
- marginPropDefs,
255
- );
256
-
257
- const { material, panelBackground } = props;
327
+ const {
328
+ children,
329
+ className,
330
+ placeholder,
331
+ disabled,
332
+ readOnly,
333
+ error,
334
+ loading,
335
+ color,
336
+ radius,
337
+ material,
338
+ onClick,
339
+ onKeyDown,
340
+ type: buttonType,
341
+ ...triggerProps
342
+ } = extractProps({ size: ctx.size, ...props }, triggerSizingPropDefs, comboboxTriggerPropDefs, marginPropDefs);
343
+
344
+ // `panelBackground` has a className prop def, so extractProps strips it.
345
+ const { panelBackground } = props;
346
+ const resolvedMaterial = material ?? panelBackground;
258
347
  const isDisabled = disabled ?? ctx.disabled;
259
348
  const resolvedColor = color ?? ctx.color;
349
+ // Read-only and loading triggers stay focusable but do not open.
350
+ const isBlocked = Boolean(readOnly || loading);
351
+ const isPlaceholder = ctx.value == null && ctx.displayValue == null;
352
+
353
+ const composedRef = useComposedRefs(forwardedRef, ctx.triggerRef);
354
+
355
+ const { getTriggerLabel } = ctx;
356
+ React.useEffect(() => {
357
+ if (process.env.NODE_ENV === 'production') return;
358
+ if (!getTriggerLabel()) {
359
+ warnOnce(
360
+ 'Combobox.Trigger has no accessible name. The combobox role does not take its name from its content. Add `aria-label`, `aria-labelledby`, or a `<label htmlFor>` that points at the trigger.',
361
+ );
362
+ }
363
+ }, [getTriggerLabel]);
364
+
365
+ const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
366
+ onClick?.(event);
367
+ // Radix skips its open toggle when the event is default-prevented.
368
+ if (isBlocked) event.preventDefault();
369
+ };
370
+
371
+ const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {
372
+ onKeyDown?.(event);
373
+ if (event.defaultPrevented || isBlocked || isDisabled) return;
374
+ if (event.key === 'ArrowDown') {
375
+ event.preventDefault();
376
+ ctx.setOpen(true);
377
+ }
378
+ };
260
379
 
261
380
  const defaultContent = (
262
381
  <>
263
382
  <span className="rt-SelectTriggerInner">
264
- <span className="rt-ComboboxValue">
265
- {ctx.displayValue ?? ctx.value ?? placeholder ?? ctx.placeholder}
266
- </span>
383
+ <span className="rt-ComboboxValue">{ctx.displayValue ?? ctx.value ?? placeholder ?? ctx.placeholder}</span>
267
384
  </span>
268
385
  {loading ? (
269
386
  <div className="rt-SelectIcon rt-SelectLoadingIcon" aria-hidden="true">
270
387
  <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
271
- <circle cx="8" cy="8" r="6.5" stroke="currentColor" strokeWidth="1" strokeLinecap="round" strokeDasharray="6 34" strokeDashoffset="0" className="rt-SelectLoadingSpinner" />
388
+ <circle
389
+ cx="8"
390
+ cy="8"
391
+ r="7"
392
+ stroke="currentColor"
393
+ strokeWidth="2"
394
+ strokeLinecap="round"
395
+ strokeDasharray="32"
396
+ strokeDashoffset="32"
397
+ className="rt-SelectLoadingIconCircle"
398
+ />
272
399
  </svg>
273
400
  </div>
274
401
  ) : (
@@ -277,29 +404,32 @@ const ComboboxTrigger = React.forwardRef<ComboboxTriggerElement, ComboboxTrigger
277
404
  </>
278
405
  );
279
406
 
280
- const { type: buttonType, ...restTriggerProps } = triggerProps;
281
-
407
+ // Radix Popover.Trigger supplies aria-expanded, aria-controls (the popup id) and
408
+ // aria-haspopup="dialog", which matches the Popover dialog this opens.
282
409
  return (
283
410
  <Popover.Trigger disabled={isDisabled}>
284
411
  <button
285
412
  data-accent-color={resolvedColor}
286
413
  data-radius={radius}
287
- data-panel-background={panelBackground}
288
- data-material={material}
414
+ data-panel-background={resolvedMaterial}
415
+ data-material={resolvedMaterial}
289
416
  data-error={error}
290
417
  data-loading={loading}
291
418
  data-disabled={isDisabled || undefined}
292
419
  data-read-only={readOnly || undefined}
293
- {...restTriggerProps}
420
+ data-placeholder={isPlaceholder ? '' : undefined}
421
+ {...triggerProps}
422
+ // eslint-disable-next-line jsx-a11y/role-has-required-aria-props -- Popover.Trigger (Slot) adds aria-expanded and aria-controls
294
423
  role="combobox"
295
- aria-autocomplete="list"
296
- aria-controls={ctx.open ? ctx.listboxId : undefined}
297
- aria-expanded={ctx.open}
298
- aria-haspopup="listbox"
299
424
  aria-disabled={isDisabled || undefined}
425
+ aria-readonly={readOnly || undefined}
426
+ aria-invalid={error || undefined}
427
+ aria-busy={loading || undefined}
300
428
  type={buttonType ?? 'button'}
301
429
  disabled={isDisabled}
302
- ref={forwardedRef}
430
+ onClick={handleClick}
431
+ onKeyDown={handleKeyDown}
432
+ ref={composedRef}
303
433
  className={classNames('rt-reset', 'rt-SelectTrigger', 'rt-ComboboxTrigger', className)}
304
434
  >
305
435
  {children ? requireReactElement(children) : defaultContent}
@@ -318,87 +448,150 @@ interface ComboboxValueProps extends React.ComponentPropsWithoutRef<'span'> {
318
448
  placeholder?: string;
319
449
  }
320
450
 
321
- const ComboboxValue = React.forwardRef<ComboboxValueElement, ComboboxValueProps>(
322
- ({ placeholder, children, className, ...valueProps }, forwardedRef) => {
323
- const ctx = useComboboxContext('Value');
324
- const display = ctx.displayValue ?? ctx.value ?? undefined;
325
- return (
326
- <span {...valueProps} ref={forwardedRef} className={classNames('rt-ComboboxValue', className)}>
327
- {display ?? children ?? placeholder ?? ctx.placeholder}
328
- </span>
329
- );
330
- },
331
- );
451
+ const ComboboxValue = React.forwardRef<ComboboxValueElement, ComboboxValueProps>(({ placeholder, children, className, ...valueProps }, forwardedRef) => {
452
+ const ctx = useComboboxContext('Value');
453
+ const display = ctx.displayValue ?? ctx.value ?? undefined;
454
+ return (
455
+ <span {...valueProps} ref={forwardedRef} className={classNames('rt-ComboboxValue', className)}>
456
+ {display ?? children ?? placeholder ?? ctx.placeholder}
457
+ </span>
458
+ );
459
+ });
332
460
  ComboboxValue.displayName = 'Combobox.Value';
333
461
 
334
462
  // ============================================================================
335
463
  // Content
336
464
  // ============================================================================
337
465
 
338
- type ComboboxContentElement = React.ElementRef<typeof Popover.Content>;
466
+ type ComboboxContentElement = React.ElementRef<typeof PopoverPrimitive.Content>;
339
467
  type ComboboxContentOwnProps = GetPropDefTypes<typeof comboboxContentPropDefs> & {
340
- container?: React.ComponentPropsWithoutRef<typeof Popover.Content>['container'];
468
+ container?: React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Portal>['container'];
341
469
  };
342
- interface ComboboxContentProps extends Omit<ComponentPropsWithout<typeof Popover.Content, RemovedProps>, 'size'>, ComboboxContentOwnProps {}
470
+ interface ComboboxContentProps extends Omit<ComponentPropsWithout<typeof PopoverPrimitive.Content, RemovedProps>, 'size'>, ComboboxContentOwnProps {}
471
+
472
+ /** Announces the filtered result count to screen readers after typing settles. */
473
+ function ComboboxAnnouncer() {
474
+ const count = useCommandState((state) => state.filtered.count);
475
+ const search = useCommandState((state) => state.search);
476
+ const [message, setMessage] = React.useState('');
477
+
478
+ React.useEffect(() => {
479
+ const next = !search ? '' : count === 0 ? 'No results' : `${count} result${count === 1 ? '' : 's'}`;
480
+ const timeout = window.setTimeout(() => setMessage(next), search ? 400 : 0);
481
+ return () => window.clearTimeout(timeout);
482
+ }, [count, search]);
483
+
484
+ return (
485
+ <VisuallyHidden role="status" aria-live="polite" aria-atomic="true">
486
+ {message}
487
+ </VisuallyHidden>
488
+ );
489
+ }
343
490
 
344
491
  const ComboboxContent = React.forwardRef<ComboboxContentElement, ComboboxContentProps>((props, forwardedRef) => {
345
492
  const ctx = useComboboxContext('Content');
346
- const cmdkConfigRef = React.useContext(CmdkConfigContext);
347
493
  const themeContext = useThemeContext();
348
- const effectiveMaterial = themeContext.panelBackground;
349
494
 
350
- const sizeProp = props.size ?? ctx.size ?? comboboxContentPropDefs.size.default;
351
- const variantProp = props.variant ?? comboboxContentPropDefs.variant.default;
352
- const highContrastProp = props.highContrast ?? ctx.highContrast ?? comboboxContentPropDefs.highContrast.default;
495
+ useDeprecatedPanelBackgroundWarning(props.panelBackground);
496
+
497
+ const material = props.material ?? props.panelBackground ?? themeContext.material ?? themeContext.panelBackground;
498
+ const size = props.size ?? ctx.size ?? comboboxContentPropDefs.size.default;
499
+ const variant = props.variant ?? comboboxContentPropDefs.variant.default;
500
+
501
+ const {
502
+ className,
503
+ children,
504
+ color,
505
+ forceMount,
506
+ container,
507
+ material: _material,
508
+ panelBackground: _panelBackground,
509
+ onOpenAutoFocus,
510
+ 'aria-label': _ariaLabel,
511
+ 'aria-labelledby': ariaLabelledByProp,
512
+ ...contentProps
513
+ } = extractProps({ ...props, size, variant }, comboboxContentPropDefs);
353
514
 
354
- const { className, children, color, forceMount, container, ...contentProps } = extractProps(
355
- { ...props, size: sizeProp, variant: variantProp, highContrast: highContrastProp },
356
- comboboxContentPropDefs,
357
- );
358
515
  const resolvedColor = color || ctx.color || themeContext.accentColor;
359
516
 
517
+
518
+ // The trigger's name labels the popup, the search field and the listbox.
519
+ // Read once per mount (the content remounts on every open); fall back to a
520
+ // layout effect when the trigger was not attached yet (defaultOpen, forceMount).
521
+ const { getTriggerLabel } = ctx;
522
+ const [triggerLabel, setTriggerLabel] = React.useState(getTriggerLabel);
523
+ useLayoutEffect(() => {
524
+ if (triggerLabel !== undefined) return;
525
+ const label = getTriggerLabel();
526
+ if (label !== undefined) setTriggerLabel(label);
527
+ }, [getTriggerLabel, triggerLabel]);
528
+
529
+ const label = props['aria-label'] ?? triggerLabel;
530
+
360
531
  const contentContextValue = React.useMemo<ComboboxContentContextValue>(
361
532
  () => ({
362
- variant: variantProp,
363
- size: String(sizeProp),
533
+ variant,
534
+ // Responsive-aware size class for the search field (never String() a responsive object).
535
+ sizeClassName: extractProps({ size }, contentSizePropDefs).className || undefined,
364
536
  color: resolvedColor,
365
- material: effectiveMaterial,
366
- highContrast: highContrastProp,
367
- loop: cmdkConfigRef?.current.loop,
368
- shouldFilter: cmdkConfigRef?.current.shouldFilter,
369
- filter: cmdkConfigRef?.current.filter,
537
+ material,
538
+ label,
370
539
  }),
371
- [variantProp, sizeProp, resolvedColor, effectiveMaterial, highContrastProp, cmdkConfigRef],
540
+ [variant, size, resolvedColor, material, label],
372
541
  );
373
542
 
543
+ const commandRef = React.useRef<HTMLDivElement>(null);
544
+
545
+ // Without a search field, focus would land on the popup itself, outside cmdk's
546
+ // keydown handler. Focus the listbox instead so arrow keys and Enter work.
547
+ const handleOpenAutoFocus = (event: Event) => {
548
+ onOpenAutoFocus?.(event);
549
+ if (event.defaultPrevented) return;
550
+ const command = commandRef.current;
551
+ if (!command || command.querySelector('[cmdk-input]')) return;
552
+ event.preventDefault();
553
+ const list = command.querySelector<HTMLElement>('[cmdk-list]');
554
+ (list ?? command).focus({ preventScroll: true });
555
+ };
556
+
557
+ // Start the highlight on the selected option (cmdk trims item values).
558
+ const initialHighlight = ctx.value?.trim() || undefined;
559
+
374
560
  return (
375
- <Popover.Content
376
- size={sizeProp}
377
- data-accent-color={resolvedColor}
378
- data-material={effectiveMaterial}
379
- data-panel-background={effectiveMaterial}
380
- align="start"
381
- sideOffset={4}
382
- collisionPadding={10}
383
- {...contentProps}
384
- forceMount={forceMount === true ? true : undefined}
385
- container={container}
386
- ref={forwardedRef}
387
- className={classNames('rt-PopperContent', 'rt-BaseMenuContent', 'rt-ComboboxContent', className)}
388
- >
561
+ <PopoverPrimitive.Portal container={container} forceMount={forceMount ? true : undefined}>
389
562
  <Theme asChild>
390
- <ComboboxContentContext.Provider value={contentContextValue}>
391
- <CommandPrimitive
392
- loop={cmdkConfigRef?.current.loop}
393
- shouldFilter={cmdkConfigRef?.current.shouldFilter}
394
- filter={cmdkConfigRef?.current.filter}
395
- className="rt-ComboboxCommand"
396
- >
397
- {children}
398
- </CommandPrimitive>
399
- </ComboboxContentContext.Provider>
563
+ <PopoverPrimitive.Content
564
+ data-accent-color={resolvedColor}
565
+ data-material={material}
566
+ data-panel-background={material}
567
+ align="start"
568
+ sideOffset={4}
569
+ collisionPadding={10}
570
+ aria-label={ariaLabelledByProp ? undefined : label}
571
+ aria-labelledby={ariaLabelledByProp}
572
+ {...contentProps}
573
+ forceMount={forceMount ? true : undefined}
574
+ onOpenAutoFocus={handleOpenAutoFocus}
575
+ ref={forwardedRef}
576
+ className={classNames('rt-PopperContent', 'rt-BaseMenuContent', 'rt-ComboboxContent', className)}
577
+ >
578
+ <ComboboxContentContext.Provider value={contentContextValue}>
579
+ <CommandPrimitive
580
+ ref={commandRef}
581
+ loop={ctx.loop}
582
+ shouldFilter={ctx.shouldFilter}
583
+ filter={ctx.filter}
584
+ label={label}
585
+ defaultValue={initialHighlight}
586
+ className="rt-ComboboxCommand"
587
+ >
588
+ {children}
589
+ <ComboboxAnnouncer />
590
+ </CommandPrimitive>
591
+ </ComboboxContentContext.Provider>
592
+ </PopoverPrimitive.Content>
400
593
  </Theme>
401
- </Popover.Content>
594
+ </PopoverPrimitive.Portal>
402
595
  );
403
596
  });
404
597
  ComboboxContent.displayName = 'Combobox.Content';
@@ -419,22 +612,19 @@ interface ComboboxInputProps extends Omit<React.ComponentPropsWithoutRef<typeof
419
612
  const ComboboxInput = React.forwardRef<ComboboxInputElement, ComboboxInputProps>(
420
613
  ({ className, startAdornment, endAdornment, placeholder, variant: inputVariant, value, onValueChange, ...inputProps }, forwardedRef) => {
421
614
  const ctx = useComboboxContext('Input');
615
+ const search = React.useContext(ComboboxSearchContext);
422
616
  const contentContext = useComboboxContentContext();
423
- const cmdkConfigRef = React.useContext(CmdkConfigContext);
424
617
 
425
618
  const contentVariant = contentContext?.variant ?? 'solid';
426
619
  const textFieldVariant = inputVariant ?? (contentVariant === 'solid' ? 'surface' : 'soft');
427
620
 
428
- // Use controlled search value from ref (avoids context re-renders)
429
- const searchValue = value ?? cmdkConfigRef?.current.searchValue ?? '';
430
- const handleSearchChange = onValueChange ?? cmdkConfigRef?.current.setSearchValue;
431
-
432
- // Use size from contentContext (already resolved to string) or fallback
433
- const sizeClass = contentContext?.size ? `rt-r-size-${contentContext.size}` : undefined;
621
+ // The search text lives in Root; only this component subscribes to it.
622
+ const searchValue = value ?? search?.value ?? '';
623
+ const handleSearchChange = onValueChange ?? search?.setValue;
434
624
 
435
625
  const inputField = (
436
626
  <div
437
- className={classNames('rt-TextFieldRoot', 'rt-ComboboxInputRoot', sizeClass, `rt-variant-${textFieldVariant}`)}
627
+ className={classNames('rt-TextFieldRoot', 'rt-ComboboxInputRoot', contentContext?.sizeClassName, `rt-variant-${textFieldVariant}`)}
438
628
  data-accent-color={contentContext?.color}
439
629
  data-material={contentContext?.material}
440
630
  data-panel-background={contentContext?.material}
@@ -462,25 +652,20 @@ const ComboboxInput = React.forwardRef<ComboboxInputElement, ComboboxInputProps>
462
652
  ComboboxInput.displayName = 'Combobox.Input';
463
653
 
464
654
  // ============================================================================
465
- // List (simplified - no MutationObserver, no ScrollArea wrapper)
655
+ // List
466
656
  // ============================================================================
467
657
 
468
658
  type ComboboxListElement = React.ElementRef<typeof CommandPrimitive.List>;
469
659
  interface ComboboxListProps extends React.ComponentPropsWithoutRef<typeof CommandPrimitive.List> {}
470
660
 
471
- const ComboboxList = React.forwardRef<ComboboxListElement, ComboboxListProps>(({ className, children, ...listProps }, forwardedRef) => {
472
- const ctx = useComboboxContext('List');
661
+ // cmdk's List owns its id (referenced by the input's aria-controls), role and
662
+ // aria-label (set from `label`), so none of them are overridden here.
663
+ const ComboboxList = React.forwardRef<ComboboxListElement, ComboboxListProps>(({ className, children, label, ...listProps }, forwardedRef) => {
664
+ const contentContext = useComboboxContentContext();
473
665
  return (
474
666
  <div className="rt-ComboboxScrollArea">
475
667
  <div className={classNames('rt-BaseMenuViewport', 'rt-ComboboxViewport')}>
476
- <CommandPrimitive.List
477
- {...listProps}
478
- id={ctx.listboxId}
479
- ref={forwardedRef}
480
- role="listbox"
481
- aria-label="Options"
482
- className={classNames('rt-ComboboxList', className)}
483
- >
668
+ <CommandPrimitive.List {...listProps} label={label ?? contentContext?.label} ref={forwardedRef} className={classNames('rt-ComboboxList', className)}>
484
669
  {children}
485
670
  </CommandPrimitive.List>
486
671
  </div>
@@ -520,9 +705,25 @@ ComboboxGroup.displayName = 'Combobox.Group';
520
705
  type ComboboxLabelElement = React.ElementRef<'div'>;
521
706
  interface ComboboxLabelProps extends React.ComponentPropsWithoutRef<'div'> {}
522
707
 
523
- const ComboboxLabel = React.forwardRef<ComboboxLabelElement, ComboboxLabelProps>(({ className, ...labelProps }, forwardedRef) => (
524
- <div {...labelProps} ref={forwardedRef} className={classNames('rt-BaseMenuLabel', 'rt-ComboboxLabel', className)} />
525
- ));
708
+ const ComboboxLabel = React.forwardRef<ComboboxLabelElement, ComboboxLabelProps>(({ className, id: idProp, ...labelProps }, forwardedRef) => {
709
+ const generatedId = React.useId();
710
+ const id = idProp ?? generatedId;
711
+ const localRef = React.useRef<HTMLDivElement>(null);
712
+ const composedRef = useComposedRefs(forwardedRef, localRef);
713
+
714
+ // cmdk renders the group's role="group" element itself and gives no way to
715
+ // label it from a child, so name it after this label when inside a Group.
716
+ useLayoutEffect(() => {
717
+ const group = localRef.current?.closest('[cmdk-group-items]');
718
+ if (!group || group.hasAttribute('aria-labelledby')) return;
719
+ group.setAttribute('aria-labelledby', id);
720
+ return () => {
721
+ if (group.getAttribute('aria-labelledby') === id) group.removeAttribute('aria-labelledby');
722
+ };
723
+ }, [id]);
724
+
725
+ return <div {...labelProps} id={id} ref={composedRef} className={classNames('rt-BaseMenuLabel', 'rt-ComboboxLabel', className)} />;
726
+ });
526
727
  ComboboxLabel.displayName = 'Combobox.Label';
527
728
 
528
729
  // ============================================================================
@@ -538,57 +739,80 @@ const ComboboxSeparator = React.forwardRef<ComboboxSeparatorElement, ComboboxSep
538
739
  ComboboxSeparator.displayName = 'Combobox.Separator';
539
740
 
540
741
  // ============================================================================
541
- // Item (simplified - minimal context usage)
742
+ // Item
542
743
  // ============================================================================
543
744
 
745
+ /** Plain text of a React node tree, used as the item's search text. */
746
+ function getNodeText(node: React.ReactNode): string {
747
+ if (node == null || typeof node === 'boolean') return '';
748
+ if (typeof node === 'string' || typeof node === 'number') return String(node);
749
+ if (Array.isArray(node)) return node.map(getNodeText).join('');
750
+ if (React.isValidElement<{ children?: React.ReactNode }>(node)) return getNodeText(node.props.children);
751
+ return '';
752
+ }
753
+
544
754
  type ComboboxItemElement = React.ElementRef<typeof CommandPrimitive.Item>;
545
755
  interface ComboboxItemProps extends Omit<React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>, 'keywords' | 'onSelect'> {
546
- /** Display label for search. Falls back to children text content. */
756
+ /**
757
+ * Text matched by search. Defaults to the text of `children`. Set it when the
758
+ * children are components whose text is not in the JSX (it cannot be read).
759
+ */
547
760
  label?: string;
548
761
  /** Additional keywords for search filtering. */
549
762
  keywords?: string[];
550
- /** Called when item is selected. */
763
+ /** Called when the item is selected. */
551
764
  onSelect?: (value: string) => void;
552
765
  }
553
766
 
554
767
  const ComboboxItem = React.forwardRef<ComboboxItemElement, ComboboxItemProps>(
555
768
  ({ className, children, label, value, disabled, onSelect, keywords, ...itemProps }, forwardedRef) => {
556
- const ctx = useComboboxContext('Item');
557
- const contentContext = useComboboxContentContext();
558
-
559
- const isSelected = value != null && ctx.value === value;
560
- const isDisabled = disabled ?? ctx.disabled ?? false;
561
- const sizeClass = contentContext?.size ? `rt-r-size-${contentContext.size}` : undefined;
562
-
563
- // Extract stable onSelect to avoid depending on entire ctx object
564
- const onSelectFromContext = ctx.onSelect;
769
+ const itemContext = React.useContext(ComboboxItemContext);
770
+ if (!itemContext) {
771
+ throw new Error('Combobox.Item must be used within Combobox.Root');
772
+ }
773
+ const { store, onSelect: onSelectFromRoot, disabled: rootDisabled } = itemContext;
774
+
775
+ // Without `value`, cmdk uses the trimmed text of string children.
776
+ const itemValue = value ?? (typeof children === 'string' ? children.trim() : undefined);
777
+ const getIsSelected = () => itemValue !== undefined && store.get() === itemValue;
778
+ const isSelected = React.useSyncExternalStore(store.subscribe, getIsSelected, getIsSelected);
779
+
780
+ const onSelectProp = useCallbackRef(onSelect);
781
+ // cmdk passes its resolved value (the `value` prop, or the text when `value` is omitted).
782
+ const handleSelect = React.useCallback(
783
+ (resolvedValue: string) => {
784
+ const nextValue = value ?? resolvedValue;
785
+ onSelectFromRoot(nextValue);
786
+ onSelectProp(nextValue);
787
+ },
788
+ [value, onSelectFromRoot, onSelectProp],
789
+ );
565
790
 
566
- // Handle selection
567
- const handleSelect = React.useCallback(() => {
568
- if (value != null) {
569
- onSelectFromContext(value);
570
- onSelect?.(value);
571
- }
572
- }, [onSelectFromContext, value, onSelect]);
791
+ // cmdk matches only `value` and `keywords`, so add the visible text as a keyword.
792
+ const text = (label ?? getNodeText(children)).replace(/\s+/g, ' ').trim();
793
+ const searchKeywords = text ? (keywords ? [text, ...keywords] : [text]) : keywords;
794
+ // cmdk stores keywords only when `value` changes. Remount the cmdk item when
795
+ // they change so a new label or keyword list is picked up.
796
+ const keywordsKey = searchKeywords ? searchKeywords.join('') : '';
573
797
 
574
- // Use provided keywords or label for search
575
- const searchKeywords = keywords ?? (label ? [label] : undefined);
798
+ const isDisabled = disabled ?? rootDisabled ?? false;
576
799
 
577
800
  return (
578
801
  <CommandPrimitive.Item
802
+ key={keywordsKey}
579
803
  {...itemProps}
580
804
  value={value}
581
805
  keywords={searchKeywords}
582
- role="option"
583
- aria-selected={isSelected}
806
+ // cmdk owns aria-selected (the highlighted option); the chosen option is aria-checked.
807
+ aria-checked={isSelected}
584
808
  disabled={isDisabled || undefined}
585
809
  ref={forwardedRef}
586
810
  onSelect={handleSelect}
587
811
  className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-ComboboxItem', className)}
588
812
  >
589
813
  {isSelected ? (
590
- <span className={classNames('rt-BaseMenuItemIndicator', 'rt-ComboboxItemIndicator', sizeClass)}>
591
- <ThickCheckIcon className={classNames('rt-BaseMenuItemIndicatorIcon', 'rt-ComboboxItemIndicatorIcon', sizeClass)} />
814
+ <span className={classNames('rt-BaseMenuItemIndicator', 'rt-ComboboxItemIndicator')}>
815
+ <ThickCheckIcon className={classNames('rt-BaseMenuItemIndicatorIcon', 'rt-ComboboxItemIndicatorIcon')} />
592
816
  </span>
593
817
  ) : null}
594
818
  <Slottable>{children}</Slottable>