@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
@@ -3,6 +3,7 @@
3
3
  import * as React from 'react';
4
4
  import classNames from 'classnames';
5
5
  import { DropdownMenu as DropdownMenuPrimitive, Slot } from 'radix-ui';
6
+ import { useCallbackRef } from 'radix-ui/internal';
6
7
 
7
8
  import { ScrollArea } from './scroll-area.js';
8
9
  import {
@@ -16,27 +17,60 @@ import { Theme, useThemeContext } from './theme.js';
16
17
  import { ChevronDownIcon, ThickCheckIcon, ThickChevronLeftIcon, ThickChevronRightIcon, ThickDotIcon } from './icons.js';
17
18
  import { extractProps } from '../helpers/extract-props.js';
18
19
  import {
19
- DrillDownProvider,
20
+ DrillDownLevelContext,
21
+ DrillDownRoot,
20
22
  SubContext,
21
- useDrillDownActionsOptional,
22
- useDrillDownStateOptional,
23
+ useCreateDrillDownStore,
24
+ useDrillDownDirection,
25
+ useDrillDownStore,
26
+ usePanelPosition,
27
+ useStackEntry,
23
28
  useSubContext,
24
29
  } from './_internal/dropdown-menu-drill-down.js';
25
30
  import { MenuProvider } from './_internal/menu-context.js';
26
- import type { SubmenuBehavior } from './_internal/dropdown-menu-drill-down.js';
31
+ import {
32
+ MenuShortcut,
33
+ getMenuAlignOffset,
34
+ resolveMenuMaterial,
35
+ toAriaKeyShortcuts,
36
+ useResolvedResponsiveValue,
37
+ } from './_internal/base-menu.utils.js';
27
38
  import { requireReactElement } from '../helpers/require-react-element.js';
28
- import { Kbd } from './kbd.js';
39
+ import { useDeprecatedPanelBackgroundWarning } from '../helpers/use-deprecation-warning.js';
29
40
 
41
+ import type { SubmenuBehavior } from './_internal/dropdown-menu-drill-down.js';
30
42
  import type { IconProps } from './icons.js';
31
43
  import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
32
44
  import type { GetPropDefTypes, Responsive } from '../props/prop-def.js';
33
- import { useDeprecatedPanelBackgroundWarning } from '../helpers/use-deprecation-warning.js';
45
+
46
+ /**
47
+ * Open state of the menu, mirrored from Root so Content can reset drill-down
48
+ * navigation when a force-mounted menu opens again.
49
+ */
50
+ const DropdownMenuOpenContext = React.createContext(false);
34
51
 
35
52
  interface DropdownMenuRootProps
36
53
  extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root> {}
37
- const DropdownMenuRoot: React.FC<DropdownMenuRootProps> = (props) => (
38
- <DropdownMenuPrimitive.Root {...props} />
39
- );
54
+ const DropdownMenuRoot: React.FC<DropdownMenuRootProps> = (props) => {
55
+ const { open: openProp, defaultOpen = false, onOpenChange } = props;
56
+ const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);
57
+ const open = openProp ?? uncontrolledOpen;
58
+
59
+ const handleOpenChangeProp = useCallbackRef(onOpenChange);
60
+ const handleOpenChange = React.useCallback(
61
+ (next: boolean) => {
62
+ setUncontrolledOpen(next);
63
+ handleOpenChangeProp(next);
64
+ },
65
+ [handleOpenChangeProp],
66
+ );
67
+
68
+ return (
69
+ <DropdownMenuOpenContext.Provider value={open}>
70
+ <DropdownMenuPrimitive.Root {...props} onOpenChange={handleOpenChange} />
71
+ </DropdownMenuOpenContext.Provider>
72
+ );
73
+ };
40
74
  DropdownMenuRoot.displayName = 'DropdownMenu.Root';
41
75
 
42
76
  type DropdownMenuTriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.Trigger>;
@@ -51,51 +85,36 @@ const DropdownMenuTrigger = React.forwardRef<DropdownMenuTriggerElement, Dropdow
51
85
  );
52
86
  DropdownMenuTrigger.displayName = 'DropdownMenu.Trigger';
53
87
 
54
- /**
55
- * Internal component that wraps root menu items and handles visibility in drill-down mode.
56
- * In drill-down mode, this hides when a submenu is active.
57
- * Uses state-only hook to subscribe only to state changes, not action changes.
58
- */
59
- function DrillDownRoot({ children }: { children: React.ReactNode }) {
60
- const drillDownState = useDrillDownStateOptional();
88
+ /** Visual props shared by Content and SubContent. */
89
+ type DropdownMenuSurfaceProps = GetPropDefTypes<typeof dropdownMenuSubContentPropDefs>;
61
90
 
62
- // In cascade mode or when no drill-down context, always show
63
- if (!drillDownState || drillDownState.behavior === 'cascade') {
64
- return <>{children}</>;
65
- }
91
+ type DropdownMenuContentContextValue = {
92
+ size?: DropdownMenuSurfaceProps['size'];
93
+ variant?: DropdownMenuSurfaceProps['variant'];
94
+ color?: DropdownMenuSurfaceProps['color'];
95
+ material?: DropdownMenuSurfaceProps['material'];
96
+ };
97
+ const DropdownMenuContentContext = React.createContext<DropdownMenuContentContextValue>({});
98
+
99
+ /** Keys that navigate back one drill-down level, by writing direction. */
100
+ const BACK_KEYS = { ltr: 'ArrowLeft', rtl: 'ArrowRight' } as const;
101
+ const FORWARD_KEYS = { ltr: 'ArrowRight', rtl: 'ArrowLeft' } as const;
66
102
 
67
- // In drill-down mode, hide root when a submenu is active
103
+ function isTextEntryTarget(target: EventTarget | null) {
68
104
  return (
69
- <div
70
- className="rt-DropdownMenuDrillDownRoot"
71
- data-drill-down-active={drillDownState.isRoot ? undefined : true}
72
- data-animation-direction={drillDownState.animationDirection ?? undefined}
73
- >
74
- {children}
75
- </div>
105
+ target instanceof HTMLElement &&
106
+ (target.isContentEditable || target.tagName === 'INPUT' || target.tagName === 'TEXTAREA')
76
107
  );
77
108
  }
78
109
 
79
- type DropdownMenuContentOwnProps = GetPropDefTypes<typeof dropdownMenuContentPropDefs> & {
80
- /**
81
- * Controls how submenus behave.
82
- * - `cascade`: Default cascading behavior where submenus open to the side (portal-based)
83
- * - `drill-down`: Mobile-friendly behavior where submenus replace the content inline
84
- * Supports responsive values: `{ initial: 'drill-down', md: 'cascade' }`
85
- */
86
- submenuBehavior?: Responsive<SubmenuBehavior>;
87
- /**
88
- * When true, skips the ScrollArea wrapper to allow VirtualMenu to handle its own scrolling.
89
- * Use this when rendering virtualized lists inside the dropdown.
90
- */
91
- virtualized?: boolean;
92
- };
93
- type DropdownMenuContentContextValue = Omit<DropdownMenuContentOwnProps, 'submenuBehavior'>;
94
- const DropdownMenuContentContext = React.createContext<DropdownMenuContentContextValue>({});
110
+ function getDirection(element: HTMLElement | null): 'ltr' | 'rtl' {
111
+ return element?.closest('[dir]')?.getAttribute('dir') === 'rtl' ? 'rtl' : 'ltr';
112
+ }
113
+
95
114
  type DropdownMenuContentElement = React.ElementRef<typeof DropdownMenuPrimitive.Content>;
96
115
  interface DropdownMenuContentProps
97
116
  extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Content, RemovedProps>,
98
- DropdownMenuContentContextValue {
117
+ DropdownMenuSurfaceProps {
99
118
  container?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>['container'];
100
119
  /**
101
120
  * Controls how submenus behave.
@@ -116,26 +135,10 @@ const DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, Dropdow
116
135
 
117
136
  useDeprecatedPanelBackgroundWarning(props.panelBackground);
118
137
 
119
- // Material takes precedence over panelBackground
120
- const effectiveMaterial =
121
- props.material ?? props.panelBackground ?? themeContext.panelBackground;
122
-
123
- // Memoize theme context values to prevent unnecessary re-renders
124
- const memoizedThemeContext = React.useMemo(
125
- () => ({
126
- material: effectiveMaterial,
127
- accentColor: themeContext.accentColor,
128
- }),
129
- [effectiveMaterial, themeContext.accentColor],
130
- );
131
-
138
+ const material = resolveMenuMaterial(props.material, props.panelBackground, themeContext);
132
139
  const {
133
140
  size = dropdownMenuContentPropDefs.size.default,
134
141
  variant = dropdownMenuContentPropDefs.variant.default,
135
- highContrast = dropdownMenuContentPropDefs.highContrast.default,
136
- material = memoizedThemeContext.material,
137
- submenuBehavior,
138
- virtualized = false,
139
142
  } = props;
140
143
  const {
141
144
  className,
@@ -143,29 +146,50 @@ const DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, Dropdow
143
146
  color,
144
147
  container,
145
148
  forceMount,
146
- material: _,
147
- panelBackground: __,
148
- submenuBehavior: ___,
149
- virtualized: ____,
149
+ material: _material,
150
+ panelBackground: _panelBackground,
151
+ submenuBehavior,
152
+ virtualized = false,
153
+ onEscapeKeyDown,
154
+ onKeyDown,
150
155
  ...contentProps
151
156
  } = extractProps(props, dropdownMenuContentPropDefs);
152
157
 
153
- // Memoize color resolution to prevent unnecessary re-renders
154
- const resolvedColor = React.useMemo(
155
- () => color || memoizedThemeContext.accentColor,
156
- [color, memoizedThemeContext.accentColor],
158
+ const resolvedColor = color || themeContext.accentColor;
159
+ const behavior = useResolvedResponsiveValue<SubmenuBehavior>(submenuBehavior, 'cascade');
160
+ const isDrillDown = behavior === 'drill-down';
161
+ const open = React.useContext(DropdownMenuOpenContext);
162
+ const drillDownStore = useCreateDrillDownStore();
163
+
164
+ // Escape goes back one drill-down level before it closes the menu.
165
+ const handleEscapeKeyDown = (event: KeyboardEvent) => {
166
+ onEscapeKeyDown?.(event);
167
+ if (event.defaultPrevented || !isDrillDown || drillDownStore.getDepth() === 0) return;
168
+ event.preventDefault();
169
+ drillDownStore.pop('keyboard');
170
+ };
171
+
172
+ const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {
173
+ onKeyDown?.(event);
174
+ if (event.defaultPrevented || !isDrillDown || drillDownStore.getDepth() === 0) return;
175
+ if (isTextEntryTarget(event.target)) return;
176
+ if (event.key === BACK_KEYS[getDirection(event.currentTarget)]) {
177
+ event.preventDefault();
178
+ drillDownStore.pop('keyboard');
179
+ }
180
+ };
181
+
182
+ const contextValue = React.useMemo(
183
+ () => ({ size, variant, color: resolvedColor, material }),
184
+ [size, variant, resolvedColor, material],
157
185
  );
186
+
158
187
  const contentBody = (
159
188
  <MenuProvider size={size}>
160
- <DropdownMenuContentContext.Provider
161
- value={React.useMemo(
162
- () => ({ size, variant, color: resolvedColor, highContrast, material }),
163
- [size, variant, resolvedColor, highContrast, material],
164
- )}
165
- >
166
- <DrillDownProvider submenuBehavior={submenuBehavior}>
167
- <DrillDownRoot>{children}</DrillDownRoot>
168
- </DrillDownProvider>
189
+ <DropdownMenuContentContext.Provider value={contextValue}>
190
+ <DrillDownRoot store={drillDownStore} behavior={behavior} open={open}>
191
+ {children}
192
+ </DrillDownRoot>
169
193
  </DropdownMenuContentContext.Provider>
170
194
  </MenuProvider>
171
195
  );
@@ -181,6 +205,8 @@ const DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, Dropdow
181
205
  sideOffset={4}
182
206
  collisionPadding={10}
183
207
  {...contentProps}
208
+ onEscapeKeyDown={handleEscapeKeyDown}
209
+ onKeyDown={handleKeyDown}
184
210
  asChild={false}
185
211
  ref={forwardedRef}
186
212
  className={classNames(
@@ -195,7 +221,7 @@ const DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, Dropdow
195
221
  {contentBody}
196
222
  </div>
197
223
  ) : (
198
- <ScrollArea type="auto">
224
+ <ScrollArea type="auto" scrollbars="vertical">
199
225
  <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport')}>
200
226
  {contentBody}
201
227
  </div>
@@ -213,14 +239,17 @@ type DropdownMenuLabelElement = React.ElementRef<typeof DropdownMenuPrimitive.La
213
239
  interface DropdownMenuLabelProps
214
240
  extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Label, RemovedProps> {}
215
241
  const DropdownMenuLabel = React.forwardRef<DropdownMenuLabelElement, DropdownMenuLabelProps>(
216
- ({ className, ...props }, forwardedRef) => (
217
- <DropdownMenuPrimitive.Label
218
- {...props}
219
- asChild={false}
220
- ref={forwardedRef}
221
- className={classNames('rt-BaseMenuLabel', 'rt-DropdownMenuLabel', className)}
222
- />
223
- ),
242
+ ({ className, ...props }, forwardedRef) => {
243
+ if (!React.useContext(DrillDownLevelContext)) return null;
244
+ return (
245
+ <DropdownMenuPrimitive.Label
246
+ {...props}
247
+ asChild={false}
248
+ ref={forwardedRef}
249
+ className={classNames('rt-BaseMenuLabel', 'rt-DropdownMenuLabel', className)}
250
+ />
251
+ );
252
+ },
224
253
  );
225
254
  DropdownMenuLabel.displayName = 'DropdownMenu.Label';
226
255
 
@@ -238,19 +267,18 @@ const DropdownMenuItem = React.forwardRef<DropdownMenuItemElement, DropdownMenuI
238
267
  shortcut,
239
268
  ...itemProps
240
269
  } = props;
270
+ // In drill-down mode, items of levels that are not on screen do not mount.
271
+ if (!React.useContext(DrillDownLevelContext)) return null;
241
272
  return (
242
273
  <DropdownMenuPrimitive.Item
243
274
  data-accent-color={color}
275
+ aria-keyshortcuts={shortcut ? toAriaKeyShortcuts(shortcut) : undefined}
244
276
  {...itemProps}
245
277
  ref={forwardedRef}
246
278
  className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-DropdownMenuItem', className)}
247
279
  >
248
280
  <Slot.Slottable>{children}</Slot.Slottable>
249
- {shortcut && (
250
- <div className="rt-BaseMenuShortcut rt-DropdownMenuShortcut">
251
- <Kbd size="1">{shortcut}</Kbd>
252
- </div>
253
- )}
281
+ {shortcut && <MenuShortcut shortcut={shortcut} className="rt-DropdownMenuShortcut" />}
254
282
  </DropdownMenuPrimitive.Item>
255
283
  );
256
284
  },
@@ -303,6 +331,7 @@ const DropdownMenuRadioItem = React.forwardRef<
303
331
  color = dropdownMenuRadioItemPropDefs.color.default,
304
332
  ...itemProps
305
333
  } = props;
334
+ if (!React.useContext(DrillDownLevelContext)) return null;
306
335
  return (
307
336
  <DropdownMenuPrimitive.RadioItem
308
337
  {...itemProps}
@@ -342,8 +371,10 @@ const DropdownMenuCheckboxItem = React.forwardRef<
342
371
  color = dropdownMenuCheckboxItemPropDefs.color.default,
343
372
  ...itemProps
344
373
  } = props;
374
+ if (!React.useContext(DrillDownLevelContext)) return null;
345
375
  return (
346
376
  <DropdownMenuPrimitive.CheckboxItem
377
+ aria-keyshortcuts={shortcut ? toAriaKeyShortcuts(shortcut) : undefined}
347
378
  {...itemProps}
348
379
  asChild={false}
349
380
  ref={forwardedRef}
@@ -358,23 +389,14 @@ const DropdownMenuCheckboxItem = React.forwardRef<
358
389
  >
359
390
  {children}
360
391
  <DropdownMenuPrimitive.ItemIndicator className="rt-BaseMenuItemIndicator rt-DropdownMenuItemIndicator">
361
- <ThickCheckIcon className="rt-BaseMenuItemIndicatorIcon rt-ContextMenuItemIndicatorIcon" />
392
+ <ThickCheckIcon className="rt-BaseMenuItemIndicatorIcon rt-DropdownMenuItemIndicatorIcon" />
362
393
  </DropdownMenuPrimitive.ItemIndicator>
363
- {shortcut && (
364
- <div className="rt-BaseMenuShortcut rt-DropdownMenuShortcut">
365
- <Kbd size="1">{shortcut}</Kbd>
366
- </div>
367
- )}
394
+ {shortcut && <MenuShortcut shortcut={shortcut} className="rt-DropdownMenuShortcut" />}
368
395
  </DropdownMenuPrimitive.CheckboxItem>
369
396
  );
370
397
  });
371
398
  DropdownMenuCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';
372
399
 
373
- // Generate unique submenu IDs using React 18's useId for SSR safety
374
- function useSubId() {
375
- return React.useId();
376
- }
377
-
378
400
  interface DropdownMenuSubProps
379
401
  extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Sub> {
380
402
  /**
@@ -383,31 +405,53 @@ interface DropdownMenuSubProps
383
405
  */
384
406
  label?: React.ReactNode;
385
407
  }
386
- const DropdownMenuSub: React.FC<DropdownMenuSubProps> = ({ label = 'Back', ...props }) => {
387
- // Use state-only hook since we only need behavior check
388
- const drillDownState = useDrillDownStateOptional();
389
- const subId = useSubId();
390
-
391
- // Create context value for SubContent and SubTrigger
392
- const subContextValue = React.useMemo(
393
- () => ({ id: subId, label }),
394
- [subId, label]
395
- );
396
-
397
- // In drill-down mode, we don't use Radix's Sub component
398
- // We just provide the SubContext and render children
399
- if (drillDownState?.behavior === 'drill-down') {
400
- return (
401
- <SubContext.Provider value={subContextValue}>
402
- {props.children}
403
- </SubContext.Provider>
404
- );
405
- }
406
-
407
- // In cascade mode, use Radix's Sub component normally
408
+ const DropdownMenuSub: React.FC<DropdownMenuSubProps> = ({
409
+ label = 'Back',
410
+ open,
411
+ defaultOpen,
412
+ onOpenChange,
413
+ children,
414
+ }) => {
415
+ const drillDownStore = useDrillDownStore();
416
+ const id = React.useId();
417
+ const subContextValue = React.useMemo(() => ({ id, label }), [id, label]);
418
+ const isOpenInDrillDown = usePanelPosition(drillDownStore, id) !== 'closed';
419
+
420
+ // Drill-down: `open` and `defaultOpen` drive the stack; the stack drives
421
+ // `onOpenChange`. A controlled `open` is applied when it changes.
422
+ React.useLayoutEffect(() => {
423
+ if (!drillDownStore || open === undefined) return;
424
+ if (open && !drillDownStore.isOpen(id)) drillDownStore.push(id, null);
425
+ else if (!open && drillDownStore.isOpen(id)) drillDownStore.close(id);
426
+ }, [drillDownStore, open, id]);
427
+
428
+ const defaultOpenRef = React.useRef(defaultOpen);
429
+ React.useLayoutEffect(() => {
430
+ if (drillDownStore && defaultOpenRef.current && open === undefined) drillDownStore.push(id, null);
431
+ // Only on mount, like an uncontrolled default.
432
+ // eslint-disable-next-line react-hooks/exhaustive-deps
433
+ }, []);
434
+
435
+ const handleOpenChange = useCallbackRef(onOpenChange);
436
+ const wasOpenRef = React.useRef(isOpenInDrillDown);
437
+ React.useEffect(() => {
438
+ if (!drillDownStore || wasOpenRef.current === isOpenInDrillDown) return;
439
+ wasOpenRef.current = isOpenInDrillDown;
440
+ handleOpenChange(isOpenInDrillDown);
441
+ }, [drillDownStore, isOpenInDrillDown, handleOpenChange]);
442
+
443
+ // Radix Sub stays mounted in both behaviors so switching behavior does not
444
+ // remount the subtree. It only renders context; in drill-down its trigger
445
+ // and content are never rendered, so it reports no open changes of its own.
408
446
  return (
409
447
  <SubContext.Provider value={subContextValue}>
410
- <DropdownMenuPrimitive.Sub {...props} />
448
+ <DropdownMenuPrimitive.Sub
449
+ open={open}
450
+ defaultOpen={defaultOpen}
451
+ onOpenChange={drillDownStore ? undefined : onOpenChange}
452
+ >
453
+ {children}
454
+ </DropdownMenuPrimitive.Sub>
411
455
  </SubContext.Provider>
412
456
  );
413
457
  };
@@ -420,44 +464,38 @@ const DropdownMenuSubTrigger = React.forwardRef<
420
464
  DropdownMenuSubTriggerElement,
421
465
  DropdownMenuSubTriggerProps
422
466
  >((props, forwardedRef) => {
423
- const { className, children, onClick, ...subTriggerProps } = props;
424
- // Use split hooks: actions for stable push callback, state only for behavior check
425
- const drillDownActions = useDrillDownActionsOptional();
426
- const drillDownState = useDrillDownStateOptional();
467
+ const { className, children, onKeyDown, ...subTriggerProps } = props;
468
+ const drillDownStore = useDrillDownStore();
427
469
  const subContext = useSubContext();
428
-
429
- // Store onClick in ref to avoid recreating handlers when onClick changes
430
- const onClickRef = React.useRef(onClick);
431
- onClickRef.current = onClick;
432
-
433
- // Stable click handler - only depends on stable refs
434
- const handleClick = React.useCallback((e: React.MouseEvent<HTMLDivElement>) => {
435
- e.preventDefault();
436
- if (subContext && drillDownActions) {
437
- drillDownActions.push(subContext.id);
438
- }
439
- (onClickRef.current as React.MouseEventHandler<HTMLDivElement> | undefined)?.(e);
440
- }, [subContext, drillDownActions]);
441
-
442
- // Stable keydown handler
443
- const handleKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLDivElement>) => {
444
- if (e.key === 'Enter' || e.key === ' ') {
445
- e.preventDefault();
446
- if (subContext && drillDownActions) {
447
- drillDownActions.push(subContext.id);
470
+ const isLevelVisible = React.useContext(DrillDownLevelContext);
471
+
472
+ if (drillDownStore && subContext) {
473
+ if (!isLevelVisible) return null;
474
+
475
+ const handleSelect = (event: Event) => {
476
+ // Navigating does not close the menu.
477
+ event.preventDefault();
478
+ drillDownStore.push(subContext.id);
479
+ };
480
+
481
+ const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {
482
+ onKeyDown?.(event);
483
+ if (event.defaultPrevented || subTriggerProps.disabled) return;
484
+ if (event.key === FORWARD_KEYS[getDirection(event.currentTarget)]) {
485
+ event.preventDefault();
486
+ drillDownStore.push(subContext.id, 'keyboard');
448
487
  }
449
- }
450
- }, [subContext, drillDownActions]);
488
+ };
451
489
 
452
- // In drill-down mode, render a button that navigates to the submenu
453
- if (drillDownState?.behavior === 'drill-down' && subContext) {
454
490
  return (
455
- <div
456
- role="menuitem"
457
- tabIndex={0}
458
- ref={forwardedRef as React.Ref<HTMLDivElement>}
459
- onClick={handleClick}
491
+ <DropdownMenuPrimitive.Item
492
+ aria-haspopup="menu"
493
+ {...subTriggerProps}
494
+ data-drill-down-trigger={subContext.id}
495
+ data-drill-down-name={subTriggerProps.textValue}
496
+ onSelect={handleSelect}
460
497
  onKeyDown={handleKeyDown}
498
+ ref={forwardedRef}
461
499
  className={classNames(
462
500
  'rt-reset',
463
501
  'rt-BaseMenuItem',
@@ -470,17 +508,16 @@ const DropdownMenuSubTrigger = React.forwardRef<
470
508
  >
471
509
  {children}
472
510
  <div className="rt-BaseMenuShortcut rt-DropdownMenuShortcut">
473
- <ThickChevronRightIcon className="rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon" />
511
+ <ThickChevronRightIcon className="rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubTriggerIcon" />
474
512
  </div>
475
- </div>
513
+ </DropdownMenuPrimitive.Item>
476
514
  );
477
515
  }
478
516
 
479
- // In cascade mode, use Radix's SubTrigger
480
517
  return (
481
518
  <DropdownMenuPrimitive.SubTrigger
482
519
  {...subTriggerProps}
483
- onClick={onClick as React.MouseEventHandler<HTMLDivElement> | undefined}
520
+ onKeyDown={onKeyDown}
484
521
  asChild={false}
485
522
  ref={forwardedRef}
486
523
  className={classNames(
@@ -493,59 +530,55 @@ const DropdownMenuSubTrigger = React.forwardRef<
493
530
  >
494
531
  {children}
495
532
  <div className="rt-BaseMenuShortcut rt-DropdownMenuShortcut">
496
- <ThickChevronRightIcon className="rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubtriggerIcon" />
533
+ <ThickChevronRightIcon className="rt-BaseMenuSubTriggerIcon rt-DropdownMenuSubTriggerIcon" />
497
534
  </div>
498
535
  </DropdownMenuPrimitive.SubTrigger>
499
536
  );
500
537
  });
501
538
  DropdownMenuSubTrigger.displayName = 'DropdownMenu.SubTrigger';
502
539
 
503
- // Separator is defined here (before SubContent) because it's used in drill-down mode
504
540
  type DropdownMenuSeparatorElement = React.ElementRef<typeof DropdownMenuPrimitive.Separator>;
505
541
  interface DropdownMenuSeparatorProps
506
542
  extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Separator, RemovedProps> {}
507
543
  const DropdownMenuSeparator = React.forwardRef<
508
544
  DropdownMenuSeparatorElement,
509
545
  DropdownMenuSeparatorProps
510
- >(({ className, ...props }, forwardedRef) => (
511
- <DropdownMenuPrimitive.Separator
512
- {...props}
513
- asChild={false}
514
- ref={forwardedRef}
515
- className={classNames('rt-BaseMenuSeparator', 'rt-DropdownMenuSeparator', className)}
516
- />
517
- ));
546
+ >(({ className, ...props }, forwardedRef) => {
547
+ if (!React.useContext(DrillDownLevelContext)) return null;
548
+ return (
549
+ <DropdownMenuPrimitive.Separator
550
+ {...props}
551
+ asChild={false}
552
+ ref={forwardedRef}
553
+ className={classNames('rt-BaseMenuSeparator', 'rt-DropdownMenuSeparator', className)}
554
+ />
555
+ );
556
+ });
518
557
  DropdownMenuSeparator.displayName = 'DropdownMenu.Separator';
519
558
 
520
- /**
521
- * Internal component for the drill-down back button.
522
- * Uses actions-only hook since it only needs to call pop(), never reads state.
523
- * This prevents re-renders when drill-down state changes.
524
- */
525
- function DrillDownBackItem({ label }: { label: React.ReactNode }) {
526
- // Use actions-only hook for stable pop callback - prevents re-renders on stack changes
527
- const { pop } = useDrillDownActionsOptional() ?? {};
528
-
529
- // Stable click handler
530
- const handleClick = React.useCallback((e: React.MouseEvent<HTMLDivElement>) => {
531
- e.preventDefault();
532
- pop?.();
533
- }, [pop]);
534
-
535
- // Stable keydown handler
536
- const handleKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLDivElement>) => {
537
- if (e.key === 'Enter' || e.key === ' ') {
538
- e.preventDefault();
539
- pop?.();
540
- }
541
- }, [pop]);
559
+ /** The row at the top of a drill-down panel that returns to the parent level. */
560
+ function DrillDownBackItem({ label, name }: { label: React.ReactNode; name: string }) {
561
+ const drillDownStore = useDrillDownStore();
562
+
563
+ const handleSelect = React.useCallback(
564
+ (event: Event) => {
565
+ // Navigating does not close the menu.
566
+ event.preventDefault();
567
+ drillDownStore?.pop();
568
+ },
569
+ [drillDownStore],
570
+ );
571
+
572
+ // The visible label is often the submenu title, so the accessible name says
573
+ // what the row does while still containing the visible text.
574
+ const labelText = typeof label === 'string' ? label : name;
575
+ const ariaLabel = labelText && labelText !== 'Back' ? `Back from ${labelText}` : undefined;
542
576
 
543
577
  return (
544
- <div
545
- role="menuitem"
546
- tabIndex={0}
547
- onClick={handleClick}
548
- onKeyDown={handleKeyDown}
578
+ <DropdownMenuPrimitive.Item
579
+ aria-label={ariaLabel}
580
+ textValue={labelText || 'Back'}
581
+ onSelect={handleSelect}
549
582
  className={classNames(
550
583
  'rt-reset',
551
584
  'rt-BaseMenuItem',
@@ -553,109 +586,227 @@ function DrillDownBackItem({ label }: { label: React.ReactNode }) {
553
586
  'rt-DropdownMenuDrillDownBackItem',
554
587
  )}
555
588
  >
556
- <ThickChevronLeftIcon className="rt-DropdownMenuDrillDownBackIcon" />
589
+ <ThickChevronLeftIcon className="rt-BaseMenuSubTriggerIcon rt-DropdownMenuDrillDownBackIcon" />
557
590
  <span className="rt-DropdownMenuDrillDownBackLabel">{label}</span>
558
- </div>
591
+ </DropdownMenuPrimitive.Item>
559
592
  );
560
593
  }
561
594
 
595
+ /** Radix positioning and layer props that have no meaning for an inline drill-down panel. */
596
+ type PopperOnlyProps =
597
+ | 'loop'
598
+ | 'onEscapeKeyDown'
599
+ | 'onPointerDownOutside'
600
+ | 'onFocusOutside'
601
+ | 'onInteractOutside'
602
+ | 'sideOffset'
603
+ | 'alignOffset'
604
+ | 'avoidCollisions'
605
+ | 'collisionBoundary'
606
+ | 'collisionPadding'
607
+ | 'arrowPadding'
608
+ | 'sticky'
609
+ | 'hideWhenDetached'
610
+ | 'updatePositionStrategy';
611
+
612
+ function omitPopperProps<T extends Record<string, unknown>>(props: T): Omit<T, PopperOnlyProps> {
613
+ const {
614
+ loop: _loop,
615
+ onEscapeKeyDown: _onEscapeKeyDown,
616
+ onPointerDownOutside: _onPointerDownOutside,
617
+ onFocusOutside: _onFocusOutside,
618
+ onInteractOutside: _onInteractOutside,
619
+ sideOffset: _sideOffset,
620
+ alignOffset: _alignOffset,
621
+ avoidCollisions: _avoidCollisions,
622
+ collisionBoundary: _collisionBoundary,
623
+ collisionPadding: _collisionPadding,
624
+ arrowPadding: _arrowPadding,
625
+ sticky: _sticky,
626
+ hideWhenDetached: _hideWhenDetached,
627
+ updatePositionStrategy: _updatePositionStrategy,
628
+ ...rest
629
+ } = props;
630
+ return rest;
631
+ }
632
+
562
633
  type DropdownMenuSubContentElement = React.ElementRef<typeof DropdownMenuPrimitive.SubContent>;
563
634
  interface DropdownMenuSubContentProps
564
635
  extends ComponentPropsWithout<typeof DropdownMenuPrimitive.SubContent, RemovedProps>,
565
- DropdownMenuContentContextValue {
636
+ DropdownMenuSurfaceProps {
566
637
  container?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>['container'];
638
+ /**
639
+ * When true, skips the ScrollArea wrapper so a VirtualMenu can handle its own
640
+ * scrolling. Applies to cascade submenus; a drill-down panel scrolls with the
641
+ * root content.
642
+ */
643
+ virtualized?: boolean;
567
644
  }
568
645
  const DropdownMenuSubContent = React.forwardRef<
569
646
  DropdownMenuSubContentElement,
570
647
  DropdownMenuSubContentProps
571
648
  >((props, forwardedRef) => {
572
- // Get context values directly - memoization at provider level handles stability
573
- const { size, variant, color, highContrast, material } = React.useContext(
574
- DropdownMenuContentContext,
575
- );
576
- // Use state-only hook since we only need behavior and isActive (no actions)
577
- const drillDownState = useDrillDownStateOptional();
649
+ const drillDownStore = useDrillDownStore();
578
650
  const subContext = useSubContext();
579
651
 
580
- const {
581
- className,
582
- children,
583
- container,
584
- forceMount,
585
- material: _,
586
- panelBackground: __,
587
- ...subContentProps
588
- } = extractProps(
589
- { size, variant, color, highContrast, material, ...props },
590
- dropdownMenuSubContentPropDefs,
591
- );
652
+ if (drillDownStore && subContext) {
653
+ return (
654
+ <DrillDownPanel {...props} ref={forwardedRef} store={drillDownStore} sub={subContext} />
655
+ );
656
+ }
657
+ return <CascadeSubContent {...props} ref={forwardedRef} />;
658
+ });
659
+ DropdownMenuSubContent.displayName = 'DropdownMenu.SubContent';
660
+
661
+ const CascadeSubContent = React.forwardRef<DropdownMenuSubContentElement, DropdownMenuSubContentProps>(
662
+ (props, forwardedRef) => {
663
+ const parent = React.useContext(DropdownMenuContentContext);
664
+ const themeContext = useThemeContext();
665
+
666
+ useDeprecatedPanelBackgroundWarning(props.panelBackground);
667
+
668
+ // A submenu inherits the parent surface, and its own props win.
669
+ const size = props.size ?? parent.size;
670
+ const variant = props.variant ?? parent.variant;
671
+ const color = props.color ?? parent.color;
672
+ const material =
673
+ props.material ?? props.panelBackground ?? parent.material ?? resolveMenuMaterial(undefined, undefined, themeContext);
674
+
675
+ const {
676
+ className,
677
+ children,
678
+ container,
679
+ forceMount,
680
+ color: _color,
681
+ material: _material,
682
+ panelBackground: _panelBackground,
683
+ virtualized = false,
684
+ ...subContentProps
685
+ } = extractProps({ ...props, size, variant }, dropdownMenuSubContentPropDefs);
686
+
687
+ const scalarSize = useResolvedResponsiveValue(size, dropdownMenuSubContentPropDefs.size.default);
688
+
689
+ const contextValue = React.useMemo(
690
+ () => ({ size, variant, color, material }),
691
+ [size, variant, color, material],
692
+ );
693
+
694
+ const body = (
695
+ <MenuProvider size={size}>
696
+ <DropdownMenuContentContext.Provider value={contextValue}>{children}</DropdownMenuContentContext.Provider>
697
+ </MenuProvider>
698
+ );
699
+
700
+ return (
701
+ <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>
702
+ <Theme asChild>
703
+ <DropdownMenuPrimitive.SubContent
704
+ data-accent-color={color}
705
+ data-material={material}
706
+ data-panel-background={material}
707
+ alignOffset={getMenuAlignOffset(scalarSize, themeContext.scaling)}
708
+ // Side offset accounts for the outer solid box-shadow
709
+ sideOffset={1}
710
+ collisionPadding={10}
711
+ {...subContentProps}
712
+ asChild={false}
713
+ ref={forwardedRef}
714
+ className={classNames(
715
+ 'rt-PopperContent',
716
+ 'rt-BaseMenuContent',
717
+ 'rt-BaseMenuSubContent',
718
+ 'rt-DropdownMenuContent',
719
+ 'rt-DropdownMenuSubContent',
720
+ className,
721
+ )}
722
+ >
723
+ {virtualized ? (
724
+ <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport', 'rt-virtualized')}>
725
+ {body}
726
+ </div>
727
+ ) : (
728
+ <ScrollArea type="auto" scrollbars="vertical">
729
+ <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport')}>{body}</div>
730
+ </ScrollArea>
731
+ )}
732
+ </DropdownMenuPrimitive.SubContent>
733
+ </Theme>
734
+ </DropdownMenuPrimitive.Portal>
735
+ );
736
+ },
737
+ );
738
+ CascadeSubContent.displayName = 'DropdownMenu.CascadeSubContent';
739
+
740
+ interface DrillDownPanelProps extends DropdownMenuSubContentProps {
741
+ store: NonNullable<ReturnType<typeof useDrillDownStore>>;
742
+ sub: NonNullable<ReturnType<typeof useSubContext>>;
743
+ }
744
+
745
+ /**
746
+ * A submenu rendered inline in drill-down mode. It mounts its children only
747
+ * while it is on the navigation stack, and shows its own items only while it
748
+ * is the top level; deeper panels inside it stay mounted.
749
+ */
750
+ const DrillDownPanel = React.forwardRef<DropdownMenuSubContentElement, DrillDownPanelProps>(
751
+ ({ store, sub, ...props }, forwardedRef) => {
752
+ const position = usePanelPosition(store, sub.id);
753
+ const entry = useStackEntry(store, sub.id);
754
+ const direction = useDrillDownDirection(position === 'top' ? store : null);
755
+
756
+ if (position === 'closed') return null;
592
757
 
593
- // In drill-down mode, render inline instead of in a portal
594
- if (drillDownState?.behavior === 'drill-down' && subContext) {
595
- const isActive = drillDownState.isActive(subContext.id);
758
+ const {
759
+ className,
760
+ children,
761
+ container: _container,
762
+ forceMount: _forceMount,
763
+ virtualized: _virtualized,
764
+ size: _size,
765
+ variant: _variant,
766
+ color: _color,
767
+ material: _material,
768
+ panelBackground: _panelBackground,
769
+ ...panelProps
770
+ } = omitPopperProps(props);
771
+
772
+ const isTop = position === 'top';
773
+ const name = entry?.name || (typeof sub.label === 'string' ? sub.label : '');
596
774
 
597
775
  return (
598
776
  <div
599
- ref={forwardedRef as React.Ref<HTMLDivElement>}
600
- role="menu"
601
- aria-label={typeof subContext.label === 'string' ? subContext.label : undefined}
602
- data-drill-down-active={isActive ? true : undefined}
603
- data-animation-direction={drillDownState.animationDirection ?? undefined}
604
- className={classNames(
605
- 'rt-DropdownMenuDrillDownPanel',
606
- className,
607
- )}
777
+ role="group"
778
+ aria-label={name || undefined}
779
+ {...panelProps}
780
+ ref={forwardedRef}
781
+ data-drill-down-panel={sub.id}
782
+ data-drill-down-active={isTop ? true : undefined}
783
+ data-animation-direction={isTop ? (direction ?? undefined) : undefined}
784
+ className={classNames('rt-DropdownMenuDrillDownPanel', className)}
608
785
  >
609
- <DrillDownBackItem label={subContext.label} />
610
- <DropdownMenuSeparator />
611
- {children}
786
+ {isTop && (
787
+ <>
788
+ <DrillDownBackItem label={sub.label} name={name} />
789
+ <DropdownMenuPrimitive.Separator className="rt-BaseMenuSeparator rt-DropdownMenuSeparator" />
790
+ </>
791
+ )}
792
+ <DrillDownLevelContext.Provider value={isTop}>{children}</DrillDownLevelContext.Provider>
612
793
  </div>
613
794
  );
614
- }
615
-
616
- // In cascade mode, use Portal and Radix's SubContent
617
- return (
618
- <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>
619
- <Theme asChild>
620
- <DropdownMenuPrimitive.SubContent
621
- data-accent-color={color}
622
- data-material={material}
623
- data-panel-background={material}
624
- alignOffset={-Number(size) * 4}
625
- // Side offset accounts for the outer solid box-shadow
626
- sideOffset={1}
627
- collisionPadding={10}
628
- {...subContentProps}
629
- asChild={false}
630
- ref={forwardedRef}
631
- className={classNames(
632
- 'rt-PopperContent',
633
- 'rt-BaseMenuContent',
634
- 'rt-BaseMenuSubContent',
635
- 'rt-DropdownMenuContent',
636
- 'rt-DropdownMenuSubContent',
637
- className,
638
- )}
639
- >
640
- <ScrollArea type="auto">
641
- <div className={classNames('rt-BaseMenuViewport', 'rt-DropdownMenuViewport')}>
642
- {children}
643
- </div>
644
- </ScrollArea>
645
- </DropdownMenuPrimitive.SubContent>
646
- </Theme>
647
- </DropdownMenuPrimitive.Portal>
648
- );
649
- });
650
- DropdownMenuSubContent.displayName = 'DropdownMenu.SubContent';
795
+ },
796
+ );
797
+ DrillDownPanel.displayName = 'DropdownMenu.DrillDownPanel';
651
798
 
652
799
  type DropdownMenuTriggerIconElement = React.ElementRef<'svg'>;
653
800
  interface DropdownMenuTriggerIconProps extends IconProps {}
654
801
  const DropdownMenuTriggerIcon = React.forwardRef<
655
802
  DropdownMenuTriggerIconElement,
656
803
  DropdownMenuTriggerIconProps
657
- >((props, forwardedRef) => (
658
- <ChevronDownIcon {...props} ref={forwardedRef} className="rt-DropdownMenuTriggerIcon" />
804
+ >(({ className, ...props }, forwardedRef) => (
805
+ <ChevronDownIcon
806
+ {...props}
807
+ ref={forwardedRef}
808
+ className={classNames('rt-DropdownMenuTriggerIcon', className)}
809
+ />
659
810
  ));
660
811
  DropdownMenuTriggerIcon.displayName = 'DropdownMenu.TriggerIcon';
661
812