@womp/kookie-ui 0.16.0 → 0.18.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 (969) hide show
  1. package/codemods/space-0.17.py +71 -0
  2. package/components.css +2857 -5012
  3. package/dist/cjs/components/_internal/base-button.d.ts +0 -2
  4. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  5. package/dist/cjs/components/_internal/base-button.js +1 -1
  6. package/dist/cjs/components/_internal/base-button.js.map +4 -4
  7. package/dist/cjs/components/_internal/base-button.props.d.ts +0 -17
  8. package/dist/cjs/components/_internal/base-button.props.d.ts.map +1 -1
  9. package/dist/cjs/components/_internal/base-button.props.js +1 -1
  10. package/dist/cjs/components/_internal/base-button.props.js.map +3 -3
  11. package/dist/cjs/components/_internal/base-checkbox.props.d.ts +1 -1
  12. package/dist/cjs/components/_internal/base-checkbox.props.js +1 -1
  13. package/dist/cjs/components/_internal/base-checkbox.props.js.map +2 -2
  14. package/dist/cjs/components/_internal/base-menu.props.d.ts +0 -10
  15. package/dist/cjs/components/_internal/base-menu.props.d.ts.map +1 -1
  16. package/dist/cjs/components/_internal/base-menu.props.js +1 -1
  17. package/dist/cjs/components/_internal/base-menu.props.js.map +3 -3
  18. package/dist/cjs/components/_internal/base-menu.utils.d.ts +3 -9
  19. package/dist/cjs/components/_internal/base-menu.utils.d.ts.map +1 -1
  20. package/dist/cjs/components/_internal/base-menu.utils.js +1 -1
  21. package/dist/cjs/components/_internal/base-menu.utils.js.map +3 -3
  22. package/dist/cjs/components/_internal/base-radio.props.d.ts +1 -1
  23. package/dist/cjs/components/_internal/base-radio.props.js +1 -1
  24. package/dist/cjs/components/_internal/base-radio.props.js.map +2 -2
  25. package/dist/cjs/components/_internal/base-tab-list.props.d.ts +0 -5
  26. package/dist/cjs/components/_internal/base-tab-list.props.d.ts.map +1 -1
  27. package/dist/cjs/components/_internal/base-tab-list.props.js +1 -1
  28. package/dist/cjs/components/_internal/base-tab-list.props.js.map +3 -3
  29. package/dist/cjs/components/_internal/menu-context.d.ts +2 -3
  30. package/dist/cjs/components/_internal/menu-context.d.ts.map +1 -1
  31. package/dist/cjs/components/_internal/menu-context.js +1 -1
  32. package/dist/cjs/components/_internal/menu-context.js.map +4 -4
  33. package/dist/cjs/components/_internal/pane-chrome.d.ts +14 -2
  34. package/dist/cjs/components/_internal/pane-chrome.d.ts.map +1 -1
  35. package/dist/cjs/components/_internal/pane-chrome.js +1 -1
  36. package/dist/cjs/components/_internal/pane-chrome.js.map +3 -3
  37. package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
  38. package/dist/cjs/components/_internal/shell-sidebar.js.map +3 -3
  39. package/dist/cjs/components/accordion.d.ts.map +1 -1
  40. package/dist/cjs/components/accordion.js +1 -1
  41. package/dist/cjs/components/accordion.js.map +4 -4
  42. package/dist/cjs/components/accordion.props.d.ts +0 -7
  43. package/dist/cjs/components/accordion.props.d.ts.map +1 -1
  44. package/dist/cjs/components/accordion.props.js +1 -1
  45. package/dist/cjs/components/accordion.props.js.map +3 -3
  46. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  47. package/dist/cjs/components/alert-dialog.js +1 -1
  48. package/dist/cjs/components/alert-dialog.js.map +4 -4
  49. package/dist/cjs/components/alert-dialog.props.d.ts +0 -5
  50. package/dist/cjs/components/alert-dialog.props.d.ts.map +1 -1
  51. package/dist/cjs/components/alert-dialog.props.js +1 -1
  52. package/dist/cjs/components/alert-dialog.props.js.map +3 -3
  53. package/dist/cjs/components/badge.js +1 -1
  54. package/dist/cjs/components/badge.js.map +4 -4
  55. package/dist/cjs/components/badge.props.d.ts +1 -1
  56. package/dist/cjs/components/badge.props.js +1 -1
  57. package/dist/cjs/components/badge.props.js.map +1 -1
  58. package/dist/cjs/components/button.js +2 -2
  59. package/dist/cjs/components/button.js.map +4 -4
  60. package/dist/cjs/components/button.props.js +1 -1
  61. package/dist/cjs/components/button.props.js.map +3 -3
  62. package/dist/cjs/components/card.d.ts.map +1 -1
  63. package/dist/cjs/components/card.js +1 -1
  64. package/dist/cjs/components/card.js.map +3 -3
  65. package/dist/cjs/components/card.props.d.ts +0 -5
  66. package/dist/cjs/components/card.props.d.ts.map +1 -1
  67. package/dist/cjs/components/card.props.js +1 -1
  68. package/dist/cjs/components/card.props.js.map +3 -3
  69. package/dist/cjs/components/chatbar.d.ts +0 -2
  70. package/dist/cjs/components/chatbar.d.ts.map +1 -1
  71. package/dist/cjs/components/chatbar.js +2 -2
  72. package/dist/cjs/components/chatbar.js.map +4 -4
  73. package/dist/cjs/components/checkbox-cards.d.ts.map +1 -1
  74. package/dist/cjs/components/checkbox-cards.js +1 -1
  75. package/dist/cjs/components/checkbox-cards.js.map +4 -4
  76. package/dist/cjs/components/checkbox-cards.props.d.ts +0 -5
  77. package/dist/cjs/components/checkbox-cards.props.d.ts.map +1 -1
  78. package/dist/cjs/components/checkbox-cards.props.js +1 -1
  79. package/dist/cjs/components/checkbox-cards.props.js.map +3 -3
  80. package/dist/cjs/components/checkbox-group.d.ts.map +1 -1
  81. package/dist/cjs/components/checkbox-group.js +1 -1
  82. package/dist/cjs/components/checkbox-group.js.map +4 -4
  83. package/dist/cjs/components/checkbox-group.props.d.ts +1 -1
  84. package/dist/cjs/components/checkbox-group.props.js +1 -1
  85. package/dist/cjs/components/checkbox-group.props.js.map +2 -2
  86. package/dist/cjs/components/checkbox.d.ts.map +1 -1
  87. package/dist/cjs/components/checkbox.js +1 -1
  88. package/dist/cjs/components/checkbox.js.map +4 -4
  89. package/dist/cjs/components/checkbox.props.js +1 -1
  90. package/dist/cjs/components/checkbox.props.js.map +2 -2
  91. package/dist/cjs/components/combobox.d.ts.map +1 -1
  92. package/dist/cjs/components/combobox.js +1 -1
  93. package/dist/cjs/components/combobox.js.map +4 -4
  94. package/dist/cjs/components/combobox.props.d.ts +0 -9
  95. package/dist/cjs/components/combobox.props.d.ts.map +1 -1
  96. package/dist/cjs/components/combobox.props.js +1 -1
  97. package/dist/cjs/components/combobox.props.js.map +3 -3
  98. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  99. package/dist/cjs/components/context-menu.js +1 -1
  100. package/dist/cjs/components/context-menu.js.map +4 -4
  101. package/dist/cjs/components/context-menu.props.js +1 -1
  102. package/dist/cjs/components/context-menu.props.js.map +3 -3
  103. package/dist/cjs/components/data-list.d.ts.map +1 -1
  104. package/dist/cjs/components/data-list.js +1 -1
  105. package/dist/cjs/components/data-list.js.map +4 -4
  106. package/dist/cjs/components/dialog.d.ts.map +1 -1
  107. package/dist/cjs/components/dialog.js +1 -1
  108. package/dist/cjs/components/dialog.js.map +4 -4
  109. package/dist/cjs/components/dialog.props.d.ts +0 -5
  110. package/dist/cjs/components/dialog.props.d.ts.map +1 -1
  111. package/dist/cjs/components/dialog.props.js +1 -1
  112. package/dist/cjs/components/dialog.props.js.map +3 -3
  113. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  114. package/dist/cjs/components/dropdown-menu.js +1 -1
  115. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  116. package/dist/cjs/components/dropdown-menu.props.js +1 -1
  117. package/dist/cjs/components/dropdown-menu.props.js.map +3 -3
  118. package/dist/cjs/components/hover-card.d.ts.map +1 -1
  119. package/dist/cjs/components/hover-card.js +1 -1
  120. package/dist/cjs/components/hover-card.js.map +4 -4
  121. package/dist/cjs/components/icon-button.js +2 -2
  122. package/dist/cjs/components/icon-button.js.map +4 -4
  123. package/dist/cjs/components/icon-button.props.js +1 -1
  124. package/dist/cjs/components/icon-button.props.js.map +3 -3
  125. package/dist/cjs/components/index.js +5 -5
  126. package/dist/cjs/components/index.js.map +4 -4
  127. package/dist/cjs/components/message-scroller.js +2 -2
  128. package/dist/cjs/components/message-scroller.js.map +4 -4
  129. package/dist/cjs/components/navbar.d.ts.map +1 -1
  130. package/dist/cjs/components/navbar.js +1 -1
  131. package/dist/cjs/components/navbar.js.map +4 -4
  132. package/dist/cjs/components/notice.d.ts +1 -3
  133. package/dist/cjs/components/notice.d.ts.map +1 -1
  134. package/dist/cjs/components/notice.js +2 -2
  135. package/dist/cjs/components/notice.js.map +4 -4
  136. package/dist/cjs/components/popover.d.ts.map +1 -1
  137. package/dist/cjs/components/popover.js +1 -1
  138. package/dist/cjs/components/popover.js.map +4 -4
  139. package/dist/cjs/components/popover.props.d.ts +0 -5
  140. package/dist/cjs/components/popover.props.d.ts.map +1 -1
  141. package/dist/cjs/components/popover.props.js +1 -1
  142. package/dist/cjs/components/popover.props.js.map +3 -3
  143. package/dist/cjs/components/progress.js +1 -1
  144. package/dist/cjs/components/progress.js.map +3 -3
  145. package/dist/cjs/components/progress.props.d.ts +0 -7
  146. package/dist/cjs/components/progress.props.d.ts.map +1 -1
  147. package/dist/cjs/components/progress.props.js +1 -1
  148. package/dist/cjs/components/progress.props.js.map +3 -3
  149. package/dist/cjs/components/radio-cards.d.ts.map +1 -1
  150. package/dist/cjs/components/radio-cards.js +1 -1
  151. package/dist/cjs/components/radio-cards.js.map +4 -4
  152. package/dist/cjs/components/radio-cards.props.d.ts +0 -5
  153. package/dist/cjs/components/radio-cards.props.d.ts.map +1 -1
  154. package/dist/cjs/components/radio-cards.props.js +1 -1
  155. package/dist/cjs/components/radio-cards.props.js.map +3 -3
  156. package/dist/cjs/components/radio-group.d.ts.map +1 -1
  157. package/dist/cjs/components/radio-group.js +1 -1
  158. package/dist/cjs/components/radio-group.js.map +4 -4
  159. package/dist/cjs/components/radio-group.props.d.ts +1 -1
  160. package/dist/cjs/components/radio-group.props.js +1 -1
  161. package/dist/cjs/components/radio-group.props.js.map +2 -2
  162. package/dist/cjs/components/radio.d.ts.map +1 -1
  163. package/dist/cjs/components/radio.js +1 -1
  164. package/dist/cjs/components/radio.js.map +4 -4
  165. package/dist/cjs/components/radio.props.js +1 -1
  166. package/dist/cjs/components/radio.props.js.map +2 -2
  167. package/dist/cjs/components/schemas/base-button.schema.d.ts +0 -4
  168. package/dist/cjs/components/schemas/base-button.schema.d.ts.map +1 -1
  169. package/dist/cjs/components/schemas/base-button.schema.js +1 -1
  170. package/dist/cjs/components/schemas/base-button.schema.js.map +2 -2
  171. package/dist/cjs/components/schemas/button.schema.d.ts +0 -4
  172. package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -1
  173. package/dist/cjs/components/schemas/button.schema.js +1 -1
  174. package/dist/cjs/components/schemas/button.schema.js.map +2 -2
  175. package/dist/cjs/components/schemas/icon-button.schema.d.ts +0 -4
  176. package/dist/cjs/components/schemas/icon-button.schema.d.ts.map +1 -1
  177. package/dist/cjs/components/schemas/icon-button.schema.js +1 -1
  178. package/dist/cjs/components/schemas/icon-button.schema.js.map +2 -2
  179. package/dist/cjs/components/schemas/index.js +1 -1
  180. package/dist/cjs/components/schemas/index.js.map +2 -2
  181. package/dist/cjs/components/schemas/toggle-button.schema.d.ts +0 -4
  182. package/dist/cjs/components/schemas/toggle-button.schema.d.ts.map +1 -1
  183. package/dist/cjs/components/schemas/toggle-button.schema.js +1 -1
  184. package/dist/cjs/components/schemas/toggle-button.schema.js.map +2 -2
  185. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +0 -4
  186. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
  187. package/dist/cjs/components/schemas/toggle-icon-button.schema.js +1 -1
  188. package/dist/cjs/components/schemas/toggle-icon-button.schema.js.map +2 -2
  189. package/dist/cjs/components/scroll-area.d.ts.map +1 -1
  190. package/dist/cjs/components/scroll-area.js +1 -1
  191. package/dist/cjs/components/scroll-area.js.map +3 -3
  192. package/dist/cjs/components/scroll-area.props.d.ts +0 -7
  193. package/dist/cjs/components/scroll-area.props.d.ts.map +1 -1
  194. package/dist/cjs/components/scroll-area.props.js +1 -1
  195. package/dist/cjs/components/scroll-area.props.js.map +3 -3
  196. package/dist/cjs/components/segmented-control.d.ts.map +1 -1
  197. package/dist/cjs/components/segmented-control.js +1 -1
  198. package/dist/cjs/components/segmented-control.js.map +4 -4
  199. package/dist/cjs/components/segmented-control.props.d.ts +0 -4
  200. package/dist/cjs/components/segmented-control.props.d.ts.map +1 -1
  201. package/dist/cjs/components/segmented-control.props.js +1 -1
  202. package/dist/cjs/components/segmented-control.props.js.map +2 -2
  203. package/dist/cjs/components/select.d.ts.map +1 -1
  204. package/dist/cjs/components/select.js +1 -1
  205. package/dist/cjs/components/select.js.map +4 -4
  206. package/dist/cjs/components/select.props.d.ts +0 -4
  207. package/dist/cjs/components/select.props.d.ts.map +1 -1
  208. package/dist/cjs/components/select.props.js +1 -1
  209. package/dist/cjs/components/select.props.js.map +2 -2
  210. package/dist/cjs/components/separator.js +1 -1
  211. package/dist/cjs/components/separator.js.map +3 -3
  212. package/dist/cjs/components/separator.props.d.ts +0 -7
  213. package/dist/cjs/components/separator.props.d.ts.map +1 -1
  214. package/dist/cjs/components/separator.props.js +1 -1
  215. package/dist/cjs/components/separator.props.js.map +3 -3
  216. package/dist/cjs/components/sheet.d.ts +0 -1
  217. package/dist/cjs/components/sheet.d.ts.map +1 -1
  218. package/dist/cjs/components/sheet.js +1 -1
  219. package/dist/cjs/components/sheet.js.map +4 -4
  220. package/dist/cjs/components/shell.d.ts +1 -1
  221. package/dist/cjs/components/shell.d.ts.map +1 -1
  222. package/dist/cjs/components/shell.js +1 -1
  223. package/dist/cjs/components/shell.js.map +4 -4
  224. package/dist/cjs/components/sidebar.js +1 -1
  225. package/dist/cjs/components/sidebar.js.map +4 -4
  226. package/dist/cjs/components/slider.d.ts.map +1 -1
  227. package/dist/cjs/components/slider.js +1 -1
  228. package/dist/cjs/components/slider.js.map +4 -4
  229. package/dist/cjs/components/spinner.js +1 -1
  230. package/dist/cjs/components/spinner.js.map +3 -3
  231. package/dist/cjs/components/spinner.props.d.ts +0 -7
  232. package/dist/cjs/components/spinner.props.d.ts.map +1 -1
  233. package/dist/cjs/components/spinner.props.js +1 -1
  234. package/dist/cjs/components/spinner.props.js.map +3 -3
  235. package/dist/cjs/components/switch.d.ts.map +1 -1
  236. package/dist/cjs/components/switch.js +1 -1
  237. package/dist/cjs/components/switch.js.map +4 -4
  238. package/dist/cjs/components/switch.props.d.ts.map +1 -1
  239. package/dist/cjs/components/switch.props.js.map +2 -2
  240. package/dist/cjs/components/tab-nav.d.ts.map +1 -1
  241. package/dist/cjs/components/tab-nav.js +1 -1
  242. package/dist/cjs/components/tab-nav.js.map +4 -4
  243. package/dist/cjs/components/tab-nav.props.js +1 -1
  244. package/dist/cjs/components/tab-nav.props.js.map +3 -3
  245. package/dist/cjs/components/table.d.ts.map +1 -1
  246. package/dist/cjs/components/table.js +1 -1
  247. package/dist/cjs/components/table.js.map +4 -4
  248. package/dist/cjs/components/table.props.d.ts +1 -1
  249. package/dist/cjs/components/table.props.js +1 -1
  250. package/dist/cjs/components/table.props.js.map +2 -2
  251. package/dist/cjs/components/tabs.d.ts.map +1 -1
  252. package/dist/cjs/components/tabs.js +1 -1
  253. package/dist/cjs/components/tabs.js.map +4 -4
  254. package/dist/cjs/components/tabs.props.js +1 -1
  255. package/dist/cjs/components/tabs.props.js.map +3 -3
  256. package/dist/cjs/components/text-area.d.ts.map +1 -1
  257. package/dist/cjs/components/text-area.js +1 -1
  258. package/dist/cjs/components/text-area.js.map +4 -4
  259. package/dist/cjs/components/text-area.props.d.ts +0 -5
  260. package/dist/cjs/components/text-area.props.d.ts.map +1 -1
  261. package/dist/cjs/components/text-area.props.js +1 -1
  262. package/dist/cjs/components/text-area.props.js.map +3 -3
  263. package/dist/cjs/components/text-field.d.ts.map +1 -1
  264. package/dist/cjs/components/text-field.js +2 -2
  265. package/dist/cjs/components/text-field.js.map +4 -4
  266. package/dist/cjs/components/text-field.props.d.ts +0 -5
  267. package/dist/cjs/components/text-field.props.d.ts.map +1 -1
  268. package/dist/cjs/components/text-field.props.js +1 -1
  269. package/dist/cjs/components/text-field.props.js.map +3 -3
  270. package/dist/cjs/components/theme-panel.d.ts.map +1 -1
  271. package/dist/cjs/components/theme-panel.js +3 -3
  272. package/dist/cjs/components/theme-panel.js.map +4 -4
  273. package/dist/cjs/components/theme.d.ts +3 -6
  274. package/dist/cjs/components/theme.d.ts.map +1 -1
  275. package/dist/cjs/components/theme.js +1 -1
  276. package/dist/cjs/components/theme.js.map +4 -4
  277. package/dist/cjs/components/theme.props.d.ts +12 -19
  278. package/dist/cjs/components/theme.props.d.ts.map +1 -1
  279. package/dist/cjs/components/theme.props.js +1 -1
  280. package/dist/cjs/components/theme.props.js.map +3 -3
  281. package/dist/cjs/components/toggle-button.js +3 -3
  282. package/dist/cjs/components/toggle-button.js.map +4 -4
  283. package/dist/cjs/components/toggle-icon-button.js +3 -3
  284. package/dist/cjs/components/toggle-icon-button.js.map +4 -4
  285. package/dist/cjs/components/toolbar.d.ts.map +1 -1
  286. package/dist/cjs/components/toolbar.js +2 -2
  287. package/dist/cjs/components/toolbar.js.map +4 -4
  288. package/dist/cjs/components/toolbar.props.d.ts +2 -1
  289. package/dist/cjs/components/toolbar.props.d.ts.map +1 -1
  290. package/dist/cjs/components/toolbar.props.js.map +2 -2
  291. package/dist/cjs/components/tooltip.js +1 -1
  292. package/dist/cjs/components/tooltip.js.map +4 -4
  293. package/dist/cjs/components/virtual-menu.d.ts.map +1 -1
  294. package/dist/cjs/components/virtual-menu.js +1 -1
  295. package/dist/cjs/components/virtual-menu.js.map +4 -4
  296. package/dist/cjs/helpers/index.d.ts +1 -0
  297. package/dist/cjs/helpers/index.d.ts.map +1 -1
  298. package/dist/cjs/helpers/index.js +3 -3
  299. package/dist/cjs/helpers/index.js.map +4 -4
  300. package/dist/cjs/helpers/map-prop-values.d.ts +1 -4
  301. package/dist/cjs/helpers/map-prop-values.d.ts.map +1 -1
  302. package/dist/cjs/helpers/map-prop-values.js +1 -1
  303. package/dist/cjs/helpers/map-prop-values.js.map +3 -3
  304. package/dist/cjs/helpers/theme-size.d.ts +41 -0
  305. package/dist/cjs/helpers/theme-size.d.ts.map +1 -0
  306. package/dist/cjs/helpers/theme-size.js +2 -0
  307. package/dist/cjs/helpers/theme-size.js.map +7 -0
  308. package/dist/cjs/index.js +6 -6
  309. package/dist/cjs/index.js.map +4 -4
  310. package/dist/cjs/props/index.js +1 -1
  311. package/dist/cjs/props/index.js.map +3 -3
  312. package/dist/esm/chunk-2CNQGDY3.js +2 -0
  313. package/dist/esm/{chunk-MNC2O6QW.js.map → chunk-2CNQGDY3.js.map} +3 -3
  314. package/dist/esm/chunk-2O3WL25H.js +2 -0
  315. package/dist/esm/chunk-2O3WL25H.js.map +7 -0
  316. package/dist/esm/{chunk-XZ5XZS5O.js → chunk-35HNDWWM.js} +2 -2
  317. package/dist/esm/chunk-3YLYGKFB.js +2 -0
  318. package/dist/esm/chunk-3YLYGKFB.js.map +7 -0
  319. package/dist/esm/chunk-4DE3ONED.js +2 -0
  320. package/dist/esm/chunk-4DE3ONED.js.map +7 -0
  321. package/dist/esm/chunk-4M55YJMR.js +2 -0
  322. package/dist/esm/chunk-4M55YJMR.js.map +7 -0
  323. package/dist/esm/chunk-4YQXYWDQ.js +2 -0
  324. package/dist/esm/chunk-4YQXYWDQ.js.map +7 -0
  325. package/dist/esm/{chunk-R4CN4Q3G.js → chunk-534LGOWC.js} +2 -2
  326. package/dist/esm/chunk-54KMG7NX.js +2 -0
  327. package/dist/esm/chunk-54KMG7NX.js.map +7 -0
  328. package/dist/esm/chunk-5LGWS5QS.js +2 -0
  329. package/dist/esm/chunk-5LGWS5QS.js.map +7 -0
  330. package/dist/esm/chunk-5R2WX2FU.js +2 -0
  331. package/dist/esm/chunk-5R2WX2FU.js.map +7 -0
  332. package/dist/esm/{chunk-7UW7D77E.js → chunk-5UU2IMGX.js} +2 -2
  333. package/dist/esm/chunk-5VBJT2VY.js +2 -0
  334. package/dist/esm/chunk-5VBJT2VY.js.map +7 -0
  335. package/dist/esm/chunk-6AZV4VFW.js +2 -0
  336. package/dist/esm/chunk-6AZV4VFW.js.map +7 -0
  337. package/dist/esm/chunk-6YWDEANN.js +2 -0
  338. package/dist/esm/chunk-6YWDEANN.js.map +7 -0
  339. package/dist/esm/chunk-6YWJUNMB.js +2 -0
  340. package/dist/esm/chunk-6YWJUNMB.js.map +7 -0
  341. package/dist/esm/{chunk-Y4IB7KDZ.js → chunk-7FZPCM7W.js} +2 -2
  342. package/dist/esm/chunk-7J2QS2UT.js +5 -0
  343. package/dist/esm/chunk-7J2QS2UT.js.map +7 -0
  344. package/dist/esm/chunk-ABS275QZ.js +2 -0
  345. package/dist/esm/chunk-AKPAHQYE.js +2 -0
  346. package/dist/esm/chunk-AKPAHQYE.js.map +7 -0
  347. package/dist/esm/chunk-B6RH4CTY.js +2 -0
  348. package/dist/esm/chunk-B6RH4CTY.js.map +7 -0
  349. package/dist/esm/chunk-BN24ZBO7.js +2 -0
  350. package/dist/esm/chunk-BN24ZBO7.js.map +7 -0
  351. package/dist/esm/chunk-BZ6YBP2S.js +2 -0
  352. package/dist/esm/chunk-BZ6YBP2S.js.map +7 -0
  353. package/dist/esm/chunk-CC4GNSKL.js +2 -0
  354. package/dist/esm/chunk-CC4GNSKL.js.map +7 -0
  355. package/dist/esm/chunk-CHPZ3LNC.js +2 -0
  356. package/dist/esm/chunk-CHPZ3LNC.js.map +7 -0
  357. package/dist/esm/chunk-CRK34MWY.js +2 -0
  358. package/dist/esm/chunk-CRK34MWY.js.map +7 -0
  359. package/dist/esm/{chunk-PAB6HVKC.js → chunk-DFSW4QR4.js} +2 -2
  360. package/dist/esm/chunk-DJFTDR6Y.js +2 -0
  361. package/dist/esm/chunk-DJFTDR6Y.js.map +7 -0
  362. package/dist/esm/{chunk-UI2EFF6F.js → chunk-E3754NJZ.js} +2 -2
  363. package/dist/esm/chunk-EA2XSEFH.js +2 -0
  364. package/dist/esm/chunk-EA2XSEFH.js.map +7 -0
  365. package/dist/esm/{chunk-F2XQYWBE.js → chunk-EHUSLPWN.js} +2 -2
  366. package/dist/esm/chunk-ENPQJYXZ.js +2 -0
  367. package/dist/esm/chunk-ENPQJYXZ.js.map +7 -0
  368. package/dist/esm/chunk-ENSDQ3XQ.js +2 -0
  369. package/dist/esm/chunk-ENSDQ3XQ.js.map +7 -0
  370. package/dist/esm/chunk-EO7WQYFO.js +2 -0
  371. package/dist/esm/chunk-EO7WQYFO.js.map +7 -0
  372. package/dist/esm/chunk-EUSKAXHP.js +2 -0
  373. package/dist/esm/chunk-EUSKAXHP.js.map +7 -0
  374. package/dist/esm/chunk-F3XBIUXB.js +2 -0
  375. package/dist/esm/chunk-F3XBIUXB.js.map +7 -0
  376. package/dist/esm/{chunk-6ERCPRXX.js → chunk-FSKZAL5H.js} +2 -2
  377. package/dist/esm/chunk-GHD3TKCA.js +2 -0
  378. package/dist/esm/chunk-GHD3TKCA.js.map +7 -0
  379. package/dist/esm/chunk-GQBQHGEF.js +2 -0
  380. package/dist/esm/chunk-GQBQHGEF.js.map +7 -0
  381. package/dist/esm/chunk-GTVFQXLJ.js +2 -0
  382. package/dist/esm/chunk-GTVFQXLJ.js.map +7 -0
  383. package/dist/esm/chunk-HIEGLLY7.js +2 -0
  384. package/dist/esm/chunk-HIEGLLY7.js.map +7 -0
  385. package/dist/esm/chunk-HZYE46V2.js +2 -0
  386. package/dist/esm/chunk-HZYE46V2.js.map +7 -0
  387. package/dist/esm/chunk-IF4PYIUV.js +2 -0
  388. package/dist/esm/chunk-IF4PYIUV.js.map +7 -0
  389. package/dist/esm/chunk-IWT3Q2PD.js +2 -0
  390. package/dist/esm/chunk-IWT3Q2PD.js.map +7 -0
  391. package/dist/esm/chunk-JCRBBT4X.js +2 -0
  392. package/dist/esm/chunk-JCRBBT4X.js.map +7 -0
  393. package/dist/esm/{chunk-ZUOK3KFY.js → chunk-K7VO7TND.js} +1 -1
  394. package/dist/esm/{chunk-ZUOK3KFY.js.map → chunk-K7VO7TND.js.map} +2 -2
  395. package/dist/esm/chunk-KFQ4B5YC.js +2 -0
  396. package/dist/esm/chunk-KFQ4B5YC.js.map +7 -0
  397. package/dist/esm/{chunk-DIGT74P3.js → chunk-KPACVWV4.js} +1 -1
  398. package/dist/esm/{chunk-DIGT74P3.js.map → chunk-KPACVWV4.js.map} +2 -2
  399. package/dist/esm/{chunk-MQT3YJKY.js → chunk-KPPIW4OJ.js} +2 -2
  400. package/dist/esm/{chunk-PTEAQFHI.js → chunk-KRXCFIRK.js} +2 -2
  401. package/dist/esm/{chunk-5SQL4ZRC.js → chunk-KSZOVI57.js} +2 -2
  402. package/dist/esm/{chunk-5SQL4ZRC.js.map → chunk-KSZOVI57.js.map} +1 -1
  403. package/dist/esm/chunk-KU3LLWFU.js +2 -0
  404. package/dist/esm/{chunk-UPCRXJB2.js.map → chunk-KU3LLWFU.js.map} +2 -2
  405. package/dist/esm/chunk-MAI7FEU7.js +2 -0
  406. package/dist/esm/chunk-MAI7FEU7.js.map +7 -0
  407. package/dist/esm/chunk-MDHXSEGH.js +2 -0
  408. package/dist/esm/chunk-MDHXSEGH.js.map +7 -0
  409. package/dist/esm/{chunk-2PO6TZ7L.js → chunk-MJEYJI5G.js} +2 -2
  410. package/dist/esm/chunk-MLXHD7YF.js +2 -0
  411. package/dist/esm/chunk-MLXHD7YF.js.map +7 -0
  412. package/dist/esm/chunk-MPN33CKR.js +2 -0
  413. package/dist/esm/chunk-MPN33CKR.js.map +7 -0
  414. package/dist/esm/chunk-MQDZBF4J.js +2 -0
  415. package/dist/esm/chunk-MQDZBF4J.js.map +7 -0
  416. package/dist/esm/chunk-NCDOMH5I.js +2 -0
  417. package/dist/esm/chunk-NCDOMH5I.js.map +7 -0
  418. package/dist/esm/chunk-NFVOEHZS.js +2 -0
  419. package/dist/esm/chunk-NFVOEHZS.js.map +7 -0
  420. package/dist/esm/{chunk-J43ZS6TI.js → chunk-PAQS6C2A.js} +2 -2
  421. package/dist/esm/chunk-PUVZFRTQ.js +2 -0
  422. package/dist/esm/chunk-PUVZFRTQ.js.map +7 -0
  423. package/dist/esm/chunk-Q7S5LQBQ.js +2 -0
  424. package/dist/esm/chunk-Q7S5LQBQ.js.map +7 -0
  425. package/dist/esm/chunk-QAUYOVVL.js +2 -0
  426. package/dist/esm/chunk-QAUYOVVL.js.map +7 -0
  427. package/dist/esm/chunk-QOPRXQGR.js +2 -0
  428. package/dist/esm/chunk-QOPRXQGR.js.map +7 -0
  429. package/dist/esm/{chunk-MLJLEOZ5.js → chunk-R2FUNQTI.js} +2 -2
  430. package/dist/esm/{chunk-MLJLEOZ5.js.map → chunk-R2FUNQTI.js.map} +2 -2
  431. package/dist/esm/chunk-RC7TBVLO.js +2 -0
  432. package/dist/esm/chunk-RC7TBVLO.js.map +7 -0
  433. package/dist/esm/chunk-RJ6SA7AY.js +2 -0
  434. package/dist/esm/chunk-RJ6SA7AY.js.map +7 -0
  435. package/dist/esm/chunk-RSJSVJ6A.js +2 -0
  436. package/dist/esm/chunk-RSJSVJ6A.js.map +7 -0
  437. package/dist/esm/chunk-STMTXK7U.js +2 -0
  438. package/dist/esm/chunk-STMTXK7U.js.map +7 -0
  439. package/dist/esm/chunk-U7PDXTRX.js +2 -0
  440. package/dist/esm/chunk-U7PDXTRX.js.map +7 -0
  441. package/dist/esm/chunk-UNRG6Z5I.js +2 -0
  442. package/dist/esm/chunk-UNRG6Z5I.js.map +7 -0
  443. package/dist/esm/chunk-UONSKZQT.js +2 -0
  444. package/dist/esm/chunk-UONSKZQT.js.map +7 -0
  445. package/dist/esm/{chunk-2IPVLV6B.js → chunk-UQZHW3EJ.js} +2 -2
  446. package/dist/esm/chunk-VIDXAECE.js +2 -0
  447. package/dist/esm/chunk-VIDXAECE.js.map +7 -0
  448. package/dist/esm/chunk-VLLJ7A6P.js +2 -0
  449. package/dist/esm/chunk-VLLJ7A6P.js.map +7 -0
  450. package/dist/esm/{chunk-ELZEAEN2.js → chunk-VT4AAF7Q.js} +2 -2
  451. package/dist/esm/chunk-WKMJIWFP.js +2 -0
  452. package/dist/esm/chunk-WKMJIWFP.js.map +7 -0
  453. package/dist/esm/chunk-XVKFQSLI.js +2 -0
  454. package/dist/esm/chunk-XVKFQSLI.js.map +7 -0
  455. package/dist/esm/chunk-YF3MFME4.js +10 -0
  456. package/dist/esm/chunk-YF3MFME4.js.map +7 -0
  457. package/dist/esm/chunk-YGPUKJEB.js +2 -0
  458. package/dist/esm/chunk-YGPUKJEB.js.map +7 -0
  459. package/dist/esm/{chunk-MD3QCXRD.js → chunk-YVMQWSHA.js} +2 -2
  460. package/dist/esm/{chunk-MD3QCXRD.js.map → chunk-YVMQWSHA.js.map} +2 -2
  461. package/dist/esm/chunk-ZCAI2PRH.js +2 -0
  462. package/dist/esm/chunk-ZCAI2PRH.js.map +7 -0
  463. package/dist/esm/{chunk-S53ZQNHK.js → chunk-ZFBLPW3X.js} +2 -2
  464. package/dist/esm/chunk-ZH2B7WEH.js +2 -0
  465. package/dist/esm/chunk-ZH2B7WEH.js.map +7 -0
  466. package/dist/esm/chunk-ZJZIV2JH.js +2 -0
  467. package/dist/esm/chunk-ZJZIV2JH.js.map +7 -0
  468. package/dist/esm/components/_internal/base-button.d.ts +0 -2
  469. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  470. package/dist/esm/components/_internal/base-button.js +1 -1
  471. package/dist/esm/components/_internal/base-button.props.d.ts +0 -17
  472. package/dist/esm/components/_internal/base-button.props.d.ts.map +1 -1
  473. package/dist/esm/components/_internal/base-button.props.js +1 -1
  474. package/dist/esm/components/_internal/base-checkbox.props.d.ts +1 -1
  475. package/dist/esm/components/_internal/base-checkbox.props.js +1 -1
  476. package/dist/esm/components/_internal/base-menu.props.d.ts +0 -10
  477. package/dist/esm/components/_internal/base-menu.props.d.ts.map +1 -1
  478. package/dist/esm/components/_internal/base-menu.props.js +1 -1
  479. package/dist/esm/components/_internal/base-menu.utils.d.ts +3 -9
  480. package/dist/esm/components/_internal/base-menu.utils.d.ts.map +1 -1
  481. package/dist/esm/components/_internal/base-menu.utils.js +1 -1
  482. package/dist/esm/components/_internal/base-radio.props.d.ts +1 -1
  483. package/dist/esm/components/_internal/base-radio.props.js +1 -1
  484. package/dist/esm/components/_internal/base-tab-list.props.d.ts +0 -5
  485. package/dist/esm/components/_internal/base-tab-list.props.d.ts.map +1 -1
  486. package/dist/esm/components/_internal/base-tab-list.props.js +1 -1
  487. package/dist/esm/components/_internal/menu-context.d.ts +2 -3
  488. package/dist/esm/components/_internal/menu-context.d.ts.map +1 -1
  489. package/dist/esm/components/_internal/menu-context.js +1 -1
  490. package/dist/esm/components/_internal/pane-chrome.d.ts +14 -2
  491. package/dist/esm/components/_internal/pane-chrome.d.ts.map +1 -1
  492. package/dist/esm/components/_internal/pane-chrome.js +1 -1
  493. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  494. package/dist/esm/components/accordion.d.ts.map +1 -1
  495. package/dist/esm/components/accordion.js +1 -1
  496. package/dist/esm/components/accordion.props.d.ts +0 -7
  497. package/dist/esm/components/accordion.props.d.ts.map +1 -1
  498. package/dist/esm/components/accordion.props.js +1 -1
  499. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  500. package/dist/esm/components/alert-dialog.js +1 -1
  501. package/dist/esm/components/alert-dialog.props.d.ts +0 -5
  502. package/dist/esm/components/alert-dialog.props.d.ts.map +1 -1
  503. package/dist/esm/components/alert-dialog.props.js +1 -1
  504. package/dist/esm/components/badge.js +1 -1
  505. package/dist/esm/components/badge.props.d.ts +1 -1
  506. package/dist/esm/components/badge.props.js +1 -1
  507. package/dist/esm/components/button.js +1 -1
  508. package/dist/esm/components/button.props.js +1 -1
  509. package/dist/esm/components/card.d.ts.map +1 -1
  510. package/dist/esm/components/card.js +1 -1
  511. package/dist/esm/components/card.props.d.ts +0 -5
  512. package/dist/esm/components/card.props.d.ts.map +1 -1
  513. package/dist/esm/components/card.props.js +1 -1
  514. package/dist/esm/components/chatbar.d.ts +0 -2
  515. package/dist/esm/components/chatbar.d.ts.map +1 -1
  516. package/dist/esm/components/chatbar.js +1 -1
  517. package/dist/esm/components/checkbox-cards.d.ts.map +1 -1
  518. package/dist/esm/components/checkbox-cards.js +1 -1
  519. package/dist/esm/components/checkbox-cards.props.d.ts +0 -5
  520. package/dist/esm/components/checkbox-cards.props.d.ts.map +1 -1
  521. package/dist/esm/components/checkbox-cards.props.js +1 -1
  522. package/dist/esm/components/checkbox-group.d.ts.map +1 -1
  523. package/dist/esm/components/checkbox-group.js +1 -1
  524. package/dist/esm/components/checkbox-group.props.d.ts +1 -1
  525. package/dist/esm/components/checkbox-group.props.js +1 -1
  526. package/dist/esm/components/checkbox.d.ts.map +1 -1
  527. package/dist/esm/components/checkbox.js +1 -1
  528. package/dist/esm/components/checkbox.props.js +1 -1
  529. package/dist/esm/components/combobox.d.ts.map +1 -1
  530. package/dist/esm/components/combobox.js +1 -1
  531. package/dist/esm/components/combobox.props.d.ts +0 -9
  532. package/dist/esm/components/combobox.props.d.ts.map +1 -1
  533. package/dist/esm/components/combobox.props.js +1 -1
  534. package/dist/esm/components/context-menu.d.ts.map +1 -1
  535. package/dist/esm/components/context-menu.js +1 -1
  536. package/dist/esm/components/context-menu.props.js +1 -1
  537. package/dist/esm/components/data-list.d.ts.map +1 -1
  538. package/dist/esm/components/data-list.js +1 -1
  539. package/dist/esm/components/dialog.d.ts.map +1 -1
  540. package/dist/esm/components/dialog.js +1 -1
  541. package/dist/esm/components/dialog.props.d.ts +0 -5
  542. package/dist/esm/components/dialog.props.d.ts.map +1 -1
  543. package/dist/esm/components/dialog.props.js +1 -1
  544. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  545. package/dist/esm/components/dropdown-menu.js +1 -1
  546. package/dist/esm/components/dropdown-menu.props.js +1 -1
  547. package/dist/esm/components/hover-card.d.ts.map +1 -1
  548. package/dist/esm/components/hover-card.js +1 -1
  549. package/dist/esm/components/icon-button.js +1 -1
  550. package/dist/esm/components/icon-button.props.js +1 -1
  551. package/dist/esm/components/index.js +1 -1
  552. package/dist/esm/components/message-scroller.js +1 -1
  553. package/dist/esm/components/navbar.d.ts.map +1 -1
  554. package/dist/esm/components/navbar.js +1 -1
  555. package/dist/esm/components/notice.d.ts +1 -3
  556. package/dist/esm/components/notice.d.ts.map +1 -1
  557. package/dist/esm/components/notice.js +1 -1
  558. package/dist/esm/components/popover.d.ts.map +1 -1
  559. package/dist/esm/components/popover.js +1 -1
  560. package/dist/esm/components/popover.props.d.ts +0 -5
  561. package/dist/esm/components/popover.props.d.ts.map +1 -1
  562. package/dist/esm/components/popover.props.js +1 -1
  563. package/dist/esm/components/progress.js +1 -1
  564. package/dist/esm/components/progress.props.d.ts +0 -7
  565. package/dist/esm/components/progress.props.d.ts.map +1 -1
  566. package/dist/esm/components/progress.props.js +1 -1
  567. package/dist/esm/components/radio-cards.d.ts.map +1 -1
  568. package/dist/esm/components/radio-cards.js +1 -1
  569. package/dist/esm/components/radio-cards.props.d.ts +0 -5
  570. package/dist/esm/components/radio-cards.props.d.ts.map +1 -1
  571. package/dist/esm/components/radio-cards.props.js +1 -1
  572. package/dist/esm/components/radio-group.d.ts.map +1 -1
  573. package/dist/esm/components/radio-group.js +1 -1
  574. package/dist/esm/components/radio-group.props.d.ts +1 -1
  575. package/dist/esm/components/radio-group.props.js +1 -1
  576. package/dist/esm/components/radio.d.ts.map +1 -1
  577. package/dist/esm/components/radio.js +1 -1
  578. package/dist/esm/components/radio.props.js +1 -1
  579. package/dist/esm/components/schemas/base-button.schema.d.ts +0 -4
  580. package/dist/esm/components/schemas/base-button.schema.d.ts.map +1 -1
  581. package/dist/esm/components/schemas/base-button.schema.js +1 -1
  582. package/dist/esm/components/schemas/button.schema.d.ts +0 -4
  583. package/dist/esm/components/schemas/button.schema.d.ts.map +1 -1
  584. package/dist/esm/components/schemas/button.schema.js +1 -1
  585. package/dist/esm/components/schemas/icon-button.schema.d.ts +0 -4
  586. package/dist/esm/components/schemas/icon-button.schema.d.ts.map +1 -1
  587. package/dist/esm/components/schemas/icon-button.schema.js +1 -1
  588. package/dist/esm/components/schemas/index.js +1 -1
  589. package/dist/esm/components/schemas/toggle-button.schema.d.ts +0 -4
  590. package/dist/esm/components/schemas/toggle-button.schema.d.ts.map +1 -1
  591. package/dist/esm/components/schemas/toggle-button.schema.js +1 -1
  592. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +0 -4
  593. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts.map +1 -1
  594. package/dist/esm/components/schemas/toggle-icon-button.schema.js +1 -1
  595. package/dist/esm/components/scroll-area.d.ts.map +1 -1
  596. package/dist/esm/components/scroll-area.js +1 -1
  597. package/dist/esm/components/scroll-area.props.d.ts +0 -7
  598. package/dist/esm/components/scroll-area.props.d.ts.map +1 -1
  599. package/dist/esm/components/scroll-area.props.js +1 -1
  600. package/dist/esm/components/segmented-control.d.ts.map +1 -1
  601. package/dist/esm/components/segmented-control.js +1 -1
  602. package/dist/esm/components/segmented-control.props.d.ts +0 -4
  603. package/dist/esm/components/segmented-control.props.d.ts.map +1 -1
  604. package/dist/esm/components/segmented-control.props.js +1 -1
  605. package/dist/esm/components/select.d.ts.map +1 -1
  606. package/dist/esm/components/select.js +1 -1
  607. package/dist/esm/components/select.props.d.ts +0 -4
  608. package/dist/esm/components/select.props.d.ts.map +1 -1
  609. package/dist/esm/components/select.props.js +1 -1
  610. package/dist/esm/components/separator.js +1 -1
  611. package/dist/esm/components/separator.props.d.ts +0 -7
  612. package/dist/esm/components/separator.props.d.ts.map +1 -1
  613. package/dist/esm/components/separator.props.js +1 -1
  614. package/dist/esm/components/sheet.d.ts +0 -1
  615. package/dist/esm/components/sheet.d.ts.map +1 -1
  616. package/dist/esm/components/sheet.js +1 -1
  617. package/dist/esm/components/shell.d.ts +1 -1
  618. package/dist/esm/components/shell.d.ts.map +1 -1
  619. package/dist/esm/components/shell.js +1 -1
  620. package/dist/esm/components/sidebar.js +1 -1
  621. package/dist/esm/components/slider.d.ts.map +1 -1
  622. package/dist/esm/components/slider.js +1 -1
  623. package/dist/esm/components/spinner.js +1 -1
  624. package/dist/esm/components/spinner.props.d.ts +0 -7
  625. package/dist/esm/components/spinner.props.d.ts.map +1 -1
  626. package/dist/esm/components/spinner.props.js +1 -1
  627. package/dist/esm/components/switch.d.ts.map +1 -1
  628. package/dist/esm/components/switch.js +1 -1
  629. package/dist/esm/components/switch.props.d.ts.map +1 -1
  630. package/dist/esm/components/switch.props.js +1 -1
  631. package/dist/esm/components/tab-nav.d.ts.map +1 -1
  632. package/dist/esm/components/tab-nav.js +1 -1
  633. package/dist/esm/components/tab-nav.props.js +1 -1
  634. package/dist/esm/components/table.d.ts.map +1 -1
  635. package/dist/esm/components/table.js +1 -1
  636. package/dist/esm/components/table.props.d.ts +1 -1
  637. package/dist/esm/components/table.props.js +1 -1
  638. package/dist/esm/components/tabs.d.ts.map +1 -1
  639. package/dist/esm/components/tabs.js +1 -1
  640. package/dist/esm/components/tabs.props.js +1 -1
  641. package/dist/esm/components/text-area.d.ts.map +1 -1
  642. package/dist/esm/components/text-area.js +1 -1
  643. package/dist/esm/components/text-area.props.d.ts +0 -5
  644. package/dist/esm/components/text-area.props.d.ts.map +1 -1
  645. package/dist/esm/components/text-area.props.js +1 -1
  646. package/dist/esm/components/text-field.d.ts.map +1 -1
  647. package/dist/esm/components/text-field.js +1 -1
  648. package/dist/esm/components/text-field.props.d.ts +0 -5
  649. package/dist/esm/components/text-field.props.d.ts.map +1 -1
  650. package/dist/esm/components/text-field.props.js +1 -1
  651. package/dist/esm/components/theme-panel.d.ts.map +1 -1
  652. package/dist/esm/components/theme-panel.js +1 -1
  653. package/dist/esm/components/theme.d.ts +3 -6
  654. package/dist/esm/components/theme.d.ts.map +1 -1
  655. package/dist/esm/components/theme.js +1 -1
  656. package/dist/esm/components/theme.props.d.ts +12 -19
  657. package/dist/esm/components/theme.props.d.ts.map +1 -1
  658. package/dist/esm/components/theme.props.js +1 -1
  659. package/dist/esm/components/toggle-button.js +1 -1
  660. package/dist/esm/components/toggle-icon-button.js +1 -1
  661. package/dist/esm/components/toolbar.d.ts.map +1 -1
  662. package/dist/esm/components/toolbar.js +1 -1
  663. package/dist/esm/components/toolbar.props.d.ts +2 -1
  664. package/dist/esm/components/toolbar.props.d.ts.map +1 -1
  665. package/dist/esm/components/toolbar.props.js +1 -1
  666. package/dist/esm/components/tooltip.js +1 -1
  667. package/dist/esm/components/virtual-menu.d.ts.map +1 -1
  668. package/dist/esm/components/virtual-menu.js +1 -1
  669. package/dist/esm/helpers/index.d.ts +1 -0
  670. package/dist/esm/helpers/index.d.ts.map +1 -1
  671. package/dist/esm/helpers/index.js +1 -1
  672. package/dist/esm/helpers/map-prop-values.d.ts +1 -4
  673. package/dist/esm/helpers/map-prop-values.d.ts.map +1 -1
  674. package/dist/esm/helpers/map-prop-values.js +1 -1
  675. package/dist/esm/helpers/theme-size.d.ts +41 -0
  676. package/dist/esm/helpers/theme-size.d.ts.map +1 -0
  677. package/dist/esm/helpers/theme-size.js +2 -0
  678. package/dist/esm/helpers/theme-size.js.map +7 -0
  679. package/dist/esm/index.js +1 -1
  680. package/dist/esm/props/index.js +1 -1
  681. package/layout/components.css +48 -48
  682. package/layout/tokens.css +79 -31
  683. package/layout.css +127 -79
  684. package/package.json +2 -1
  685. package/schemas/base-button.json +0 -8
  686. package/schemas/button.json +0 -8
  687. package/schemas/icon-button.json +0 -8
  688. package/schemas/index.json +0 -40
  689. package/schemas/toggle-button.json +0 -8
  690. package/schemas/toggle-icon-button.json +0 -8
  691. package/src/components/_internal/base-button.css +130 -175
  692. package/src/components/_internal/base-button.props.ts +0 -26
  693. package/src/components/_internal/base-button.tsx +47 -14
  694. package/src/components/_internal/base-card.css +32 -194
  695. package/src/components/_internal/base-checkbox.css +104 -58
  696. package/src/components/_internal/base-checkbox.props.ts +1 -1
  697. package/src/components/_internal/base-dialog.css +13 -45
  698. package/src/components/_internal/base-menu.css +24 -57
  699. package/src/components/_internal/base-menu.props.ts +0 -8
  700. package/src/components/_internal/base-menu.utils.tsx +4 -15
  701. package/src/components/_internal/base-radio.css +79 -54
  702. package/src/components/_internal/base-radio.props.ts +1 -1
  703. package/src/components/_internal/base-sidebar-menu.css +21 -19
  704. package/src/components/_internal/base-sidebar.css +2 -3
  705. package/src/components/_internal/base-tab-list.css +39 -78
  706. package/src/components/_internal/base-tab-list.props.ts +0 -3
  707. package/src/components/_internal/menu-context.tsx +6 -10
  708. package/src/components/_internal/pane-chrome.tsx +40 -8
  709. package/src/components/accordion.css +17 -263
  710. package/src/components/accordion.props.tsx +0 -4
  711. package/src/components/accordion.tsx +4 -5
  712. package/src/components/alert-dialog.props.tsx +0 -4
  713. package/src/components/alert-dialog.tsx +1 -14
  714. package/src/components/avatar.css +35 -67
  715. package/src/components/badge.css +27 -49
  716. package/src/components/badge.props.tsx +1 -1
  717. package/src/components/blockquote.css +2 -2
  718. package/src/components/button.css +5 -175
  719. package/src/components/card.props.tsx +0 -3
  720. package/src/components/card.tsx +1 -3
  721. package/src/components/chatbar.css +44 -124
  722. package/src/components/chatbar.tsx +10 -11
  723. package/src/components/checkbox-cards.css +11 -11
  724. package/src/components/checkbox-cards.props.tsx +0 -3
  725. package/src/components/checkbox-cards.tsx +0 -5
  726. package/src/components/checkbox-group.css +7 -12
  727. package/src/components/checkbox-group.tsx +3 -1
  728. package/src/components/checkbox.css +6 -11
  729. package/src/components/checkbox.tsx +3 -1
  730. package/src/components/combobox.css +4 -9
  731. package/src/components/combobox.props.tsx +0 -5
  732. package/src/components/combobox.tsx +4 -12
  733. package/src/components/context-menu.tsx +9 -20
  734. package/src/components/data-list.css +4 -4
  735. package/src/components/data-list.tsx +3 -1
  736. package/src/components/dialog.css +0 -12
  737. package/src/components/dialog.props.tsx +0 -3
  738. package/src/components/dialog.tsx +1 -14
  739. package/src/components/dropdown-menu.css +1 -1
  740. package/src/components/dropdown-menu.tsx +8 -20
  741. package/src/components/hover-card.css +3 -3
  742. package/src/components/hover-card.tsx +3 -1
  743. package/src/components/icon-button.css +4 -152
  744. package/src/components/image.css +1 -1
  745. package/src/components/kbd.css +14 -14
  746. package/src/components/message-scroller.css +1 -1
  747. package/src/components/message-scroller.tsx +1 -1
  748. package/src/components/navbar.css +6 -6
  749. package/src/components/navbar.tsx +3 -1
  750. package/src/components/notice.css +9 -15
  751. package/src/components/notice.tsx +8 -7
  752. package/src/components/popover.css +15 -37
  753. package/src/components/popover.props.tsx +0 -3
  754. package/src/components/popover.tsx +3 -6
  755. package/src/components/progress.css +4 -106
  756. package/src/components/progress.props.tsx +0 -3
  757. package/src/components/radio-cards.css +6 -6
  758. package/src/components/radio-cards.props.tsx +0 -3
  759. package/src/components/radio-cards.tsx +0 -5
  760. package/src/components/radio-group.css +1 -1
  761. package/src/components/radio-group.props.tsx +1 -1
  762. package/src/components/radio-group.tsx +3 -1
  763. package/src/components/radio.tsx +3 -1
  764. package/src/components/schemas/base-button.schema.ts +0 -9
  765. package/src/components/scroll-area.css +13 -34
  766. package/src/components/scroll-area.props.tsx +0 -3
  767. package/src/components/scroll-area.tsx +2 -18
  768. package/src/components/section.css +8 -8
  769. package/src/components/segmented-control.css +47 -83
  770. package/src/components/segmented-control.props.tsx +0 -2
  771. package/src/components/segmented-control.tsx +3 -5
  772. package/src/components/select.css +87 -424
  773. package/src/components/select.props.tsx +0 -2
  774. package/src/components/select.tsx +4 -4
  775. package/src/components/separator.css +2 -23
  776. package/src/components/separator.props.tsx +0 -3
  777. package/src/components/sheet.css +0 -11
  778. package/src/components/sheet.tsx +1 -18
  779. package/src/components/shell.css +45 -30
  780. package/src/components/shell.tsx +8 -2
  781. package/src/components/sidebar.css +108 -198
  782. package/src/components/skeleton.css +1 -1
  783. package/src/components/slider.css +35 -98
  784. package/src/components/slider.tsx +3 -1
  785. package/src/components/spinner.css +2 -23
  786. package/src/components/spinner.props.tsx +0 -4
  787. package/src/components/switch.css +56 -49
  788. package/src/components/switch.props.tsx +0 -8
  789. package/src/components/switch.tsx +3 -1
  790. package/src/components/tab-nav.tsx +4 -4
  791. package/src/components/table.css +10 -18
  792. package/src/components/table.props.tsx +1 -1
  793. package/src/components/table.tsx +3 -1
  794. package/src/components/tabs.css +2 -1
  795. package/src/components/tabs.tsx +4 -4
  796. package/src/components/text-area.css +71 -236
  797. package/src/components/text-area.props.tsx +0 -3
  798. package/src/components/text-area.tsx +9 -9
  799. package/src/components/text-field.css +136 -342
  800. package/src/components/text-field.props.tsx +0 -3
  801. package/src/components/text-field.tsx +9 -9
  802. package/src/components/theme-panel.css +4 -4
  803. package/src/components/theme-panel.tsx +19 -236
  804. package/src/components/theme.props.tsx +10 -15
  805. package/src/components/theme.tsx +86 -106
  806. package/src/components/toolbar.css +9 -9
  807. package/src/components/toolbar.props.tsx +2 -1
  808. package/src/components/toolbar.tsx +7 -2
  809. package/src/components/tooltip.css +1 -1
  810. package/src/components/virtual-menu.tsx +2 -4
  811. package/src/helpers/index.ts +1 -0
  812. package/src/helpers/map-prop-values.ts +1 -18
  813. package/src/helpers/theme-size.ts +73 -0
  814. package/src/styles/tokens/base.css +0 -2
  815. package/src/styles/tokens/color.css +4 -32
  816. package/src/styles/tokens/constants.css +27 -51
  817. package/src/styles/tokens/layout.css +1 -1
  818. package/src/styles/tokens/radius.css +24 -24
  819. package/src/styles/tokens/space.css +107 -24
  820. package/src/styles/tokens/typography.css +39 -39
  821. package/styles.css +3091 -5296
  822. package/tokens/base.css +243 -283
  823. package/tokens.css +268 -318
  824. package/dist/esm/chunk-23WDP4JG.js +0 -2
  825. package/dist/esm/chunk-23WDP4JG.js.map +0 -7
  826. package/dist/esm/chunk-2IWL4V4H.js +0 -2
  827. package/dist/esm/chunk-2IWL4V4H.js.map +0 -7
  828. package/dist/esm/chunk-2MYYU7ST.js +0 -2
  829. package/dist/esm/chunk-2MYYU7ST.js.map +0 -7
  830. package/dist/esm/chunk-2NNB4ZZ5.js +0 -2
  831. package/dist/esm/chunk-2NNB4ZZ5.js.map +0 -7
  832. package/dist/esm/chunk-2NNCZM7P.js +0 -2
  833. package/dist/esm/chunk-2NNCZM7P.js.map +0 -7
  834. package/dist/esm/chunk-2XSRO44Q.js +0 -2
  835. package/dist/esm/chunk-2XSRO44Q.js.map +0 -7
  836. package/dist/esm/chunk-3KB2XWBE.js +0 -2
  837. package/dist/esm/chunk-3KB2XWBE.js.map +0 -7
  838. package/dist/esm/chunk-3PT3AOD5.js +0 -2
  839. package/dist/esm/chunk-3PT3AOD5.js.map +0 -7
  840. package/dist/esm/chunk-4D7OU2UA.js +0 -2
  841. package/dist/esm/chunk-4D7OU2UA.js.map +0 -7
  842. package/dist/esm/chunk-4EBCFKNC.js +0 -2
  843. package/dist/esm/chunk-4EBCFKNC.js.map +0 -7
  844. package/dist/esm/chunk-5GYIQIPW.js +0 -2
  845. package/dist/esm/chunk-5GYIQIPW.js.map +0 -7
  846. package/dist/esm/chunk-5PG5YGIW.js +0 -2
  847. package/dist/esm/chunk-5PG5YGIW.js.map +0 -7
  848. package/dist/esm/chunk-5RHODJDJ.js +0 -2
  849. package/dist/esm/chunk-5RHODJDJ.js.map +0 -7
  850. package/dist/esm/chunk-7BE6N3KY.js +0 -2
  851. package/dist/esm/chunk-7BE6N3KY.js.map +0 -7
  852. package/dist/esm/chunk-BALS3AVM.js +0 -2
  853. package/dist/esm/chunk-BALS3AVM.js.map +0 -7
  854. package/dist/esm/chunk-BDOMLGLZ.js +0 -2
  855. package/dist/esm/chunk-BDOMLGLZ.js.map +0 -7
  856. package/dist/esm/chunk-CAUFRKTK.js +0 -2
  857. package/dist/esm/chunk-CAUFRKTK.js.map +0 -7
  858. package/dist/esm/chunk-CJ4UZDW5.js +0 -2
  859. package/dist/esm/chunk-CJ4UZDW5.js.map +0 -7
  860. package/dist/esm/chunk-DD5QHU6R.js +0 -2
  861. package/dist/esm/chunk-DD5QHU6R.js.map +0 -7
  862. package/dist/esm/chunk-DDYII5NA.js +0 -2
  863. package/dist/esm/chunk-DDYII5NA.js.map +0 -7
  864. package/dist/esm/chunk-DQTJMIRO.js +0 -2
  865. package/dist/esm/chunk-DQTJMIRO.js.map +0 -7
  866. package/dist/esm/chunk-E5DJILUI.js +0 -2
  867. package/dist/esm/chunk-E5DJILUI.js.map +0 -7
  868. package/dist/esm/chunk-EJG2UNTM.js +0 -2
  869. package/dist/esm/chunk-EJG2UNTM.js.map +0 -7
  870. package/dist/esm/chunk-FK6F6ROH.js +0 -2
  871. package/dist/esm/chunk-FK6F6ROH.js.map +0 -7
  872. package/dist/esm/chunk-HI3JY3DJ.js +0 -2
  873. package/dist/esm/chunk-HI3JY3DJ.js.map +0 -7
  874. package/dist/esm/chunk-HKRQ3E3I.js +0 -2
  875. package/dist/esm/chunk-HKRQ3E3I.js.map +0 -7
  876. package/dist/esm/chunk-HVQ3SLQC.js +0 -2
  877. package/dist/esm/chunk-HVQ3SLQC.js.map +0 -7
  878. package/dist/esm/chunk-IMYZP5OY.js +0 -2
  879. package/dist/esm/chunk-IMYZP5OY.js.map +0 -7
  880. package/dist/esm/chunk-IYXR46Q6.js +0 -5
  881. package/dist/esm/chunk-IYXR46Q6.js.map +0 -7
  882. package/dist/esm/chunk-JGB6LNTP.js +0 -2
  883. package/dist/esm/chunk-JGB6LNTP.js.map +0 -7
  884. package/dist/esm/chunk-JLHJHYVQ.js +0 -2
  885. package/dist/esm/chunk-JLHJHYVQ.js.map +0 -7
  886. package/dist/esm/chunk-K7J23OPW.js +0 -2
  887. package/dist/esm/chunk-K7J23OPW.js.map +0 -7
  888. package/dist/esm/chunk-LRFAOQK6.js +0 -2
  889. package/dist/esm/chunk-LRFAOQK6.js.map +0 -7
  890. package/dist/esm/chunk-LXSARUXD.js +0 -2
  891. package/dist/esm/chunk-LXSARUXD.js.map +0 -7
  892. package/dist/esm/chunk-MGSHX5N5.js +0 -2
  893. package/dist/esm/chunk-MGSHX5N5.js.map +0 -7
  894. package/dist/esm/chunk-MNC2O6QW.js +0 -2
  895. package/dist/esm/chunk-MOMYWKIO.js +0 -2
  896. package/dist/esm/chunk-MOMYWKIO.js.map +0 -7
  897. package/dist/esm/chunk-MVW2SY4F.js +0 -2
  898. package/dist/esm/chunk-MVW2SY4F.js.map +0 -7
  899. package/dist/esm/chunk-PRRJ4WRE.js +0 -2
  900. package/dist/esm/chunk-PRRJ4WRE.js.map +0 -7
  901. package/dist/esm/chunk-PSS45RHX.js +0 -2
  902. package/dist/esm/chunk-PSS45RHX.js.map +0 -7
  903. package/dist/esm/chunk-QE2EF7A7.js +0 -2
  904. package/dist/esm/chunk-QE2EF7A7.js.map +0 -7
  905. package/dist/esm/chunk-QJFAGWBO.js +0 -2
  906. package/dist/esm/chunk-QJFAGWBO.js.map +0 -7
  907. package/dist/esm/chunk-QJSSCW3B.js +0 -2
  908. package/dist/esm/chunk-QJSSCW3B.js.map +0 -7
  909. package/dist/esm/chunk-QPNYHS6A.js +0 -2
  910. package/dist/esm/chunk-QPNYHS6A.js.map +0 -7
  911. package/dist/esm/chunk-QWFFYUFH.js +0 -2
  912. package/dist/esm/chunk-QWFFYUFH.js.map +0 -7
  913. package/dist/esm/chunk-RA4U6VVZ.js +0 -2
  914. package/dist/esm/chunk-RA4U6VVZ.js.map +0 -7
  915. package/dist/esm/chunk-RVHKSNMJ.js +0 -2
  916. package/dist/esm/chunk-RVHKSNMJ.js.map +0 -7
  917. package/dist/esm/chunk-RYURXQLJ.js +0 -2
  918. package/dist/esm/chunk-RYURXQLJ.js.map +0 -7
  919. package/dist/esm/chunk-UA6FP7HS.js +0 -2
  920. package/dist/esm/chunk-ULSNYQOY.js +0 -2
  921. package/dist/esm/chunk-ULSNYQOY.js.map +0 -7
  922. package/dist/esm/chunk-UPCRXJB2.js +0 -2
  923. package/dist/esm/chunk-URLG45A4.js +0 -2
  924. package/dist/esm/chunk-URLG45A4.js.map +0 -7
  925. package/dist/esm/chunk-UZS3BA2Z.js +0 -2
  926. package/dist/esm/chunk-UZS3BA2Z.js.map +0 -7
  927. package/dist/esm/chunk-V7UP4SLZ.js +0 -2
  928. package/dist/esm/chunk-V7UP4SLZ.js.map +0 -7
  929. package/dist/esm/chunk-W7VAP3WE.js +0 -2
  930. package/dist/esm/chunk-W7VAP3WE.js.map +0 -7
  931. package/dist/esm/chunk-WGNIFXUE.js +0 -2
  932. package/dist/esm/chunk-WGNIFXUE.js.map +0 -7
  933. package/dist/esm/chunk-WNSG5P3U.js +0 -2
  934. package/dist/esm/chunk-WNSG5P3U.js.map +0 -7
  935. package/dist/esm/chunk-X3UTLDGG.js +0 -2
  936. package/dist/esm/chunk-X3UTLDGG.js.map +0 -7
  937. package/dist/esm/chunk-XCDXQLWS.js +0 -2
  938. package/dist/esm/chunk-XCDXQLWS.js.map +0 -7
  939. package/dist/esm/chunk-XKAWVGBL.js +0 -2
  940. package/dist/esm/chunk-XKAWVGBL.js.map +0 -7
  941. package/dist/esm/chunk-XPRPYCII.js +0 -2
  942. package/dist/esm/chunk-XPRPYCII.js.map +0 -7
  943. package/dist/esm/chunk-Y3FVBAN2.js +0 -2
  944. package/dist/esm/chunk-Y3FVBAN2.js.map +0 -7
  945. package/dist/esm/chunk-YKGLZEXX.js +0 -2
  946. package/dist/esm/chunk-YKGLZEXX.js.map +0 -7
  947. package/dist/esm/chunk-YSHEXVBI.js +0 -10
  948. package/dist/esm/chunk-YSHEXVBI.js.map +0 -7
  949. package/dist/esm/chunk-Z2LGVLUB.js +0 -2
  950. package/dist/esm/chunk-Z2LGVLUB.js.map +0 -7
  951. package/src/styles/tokens/blur.css +0 -63
  952. package/src/styles/tokens/opacity.css +0 -32
  953. package/src/styles/tokens/scaling.css +0 -17
  954. /package/dist/esm/{chunk-XZ5XZS5O.js.map → chunk-35HNDWWM.js.map} +0 -0
  955. /package/dist/esm/{chunk-R4CN4Q3G.js.map → chunk-534LGOWC.js.map} +0 -0
  956. /package/dist/esm/{chunk-7UW7D77E.js.map → chunk-5UU2IMGX.js.map} +0 -0
  957. /package/dist/esm/{chunk-Y4IB7KDZ.js.map → chunk-7FZPCM7W.js.map} +0 -0
  958. /package/dist/esm/{chunk-UA6FP7HS.js.map → chunk-ABS275QZ.js.map} +0 -0
  959. /package/dist/esm/{chunk-PAB6HVKC.js.map → chunk-DFSW4QR4.js.map} +0 -0
  960. /package/dist/esm/{chunk-UI2EFF6F.js.map → chunk-E3754NJZ.js.map} +0 -0
  961. /package/dist/esm/{chunk-F2XQYWBE.js.map → chunk-EHUSLPWN.js.map} +0 -0
  962. /package/dist/esm/{chunk-6ERCPRXX.js.map → chunk-FSKZAL5H.js.map} +0 -0
  963. /package/dist/esm/{chunk-MQT3YJKY.js.map → chunk-KPPIW4OJ.js.map} +0 -0
  964. /package/dist/esm/{chunk-PTEAQFHI.js.map → chunk-KRXCFIRK.js.map} +0 -0
  965. /package/dist/esm/{chunk-2PO6TZ7L.js.map → chunk-MJEYJI5G.js.map} +0 -0
  966. /package/dist/esm/{chunk-J43ZS6TI.js.map → chunk-PAQS6C2A.js.map} +0 -0
  967. /package/dist/esm/{chunk-2IPVLV6B.js.map → chunk-UQZHW3EJ.js.map} +0 -0
  968. /package/dist/esm/{chunk-ELZEAEN2.js.map → chunk-VT4AAF7Q.js.map} +0 -0
  969. /package/dist/esm/{chunk-S53ZQNHK.js.map → chunk-ZFBLPW3X.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/components/virtual-menu.tsx", "../../../src/components/_internal/menu-context.tsx", "../../../src/components/theme.tsx", "../../../src/helpers/get-matching-gray-color.ts", "../../../src/hooks/use-prop-synced-state.ts", "../../../src/props/as-child.prop.ts", "../../../src/props/color.prop.ts", "../../../src/props/radius.prop.ts", "../../../src/components/theme.props.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport { useMenuContext, getMenuItemHeight } from './_internal/menu-context.js';\nimport { useThemeContext } from './theme.js';\n\n/**\n * VirtualMenu - A virtualized menu component for rendering large lists efficiently.\n *\n * Uses TanStack Virtual to render only visible items.\n * Works inside any container (DropdownMenu.Content, Popover.Content, etc.)\n *\n * @example\n * // Simple usage with itemLabel\n * <VirtualMenu\n * items={items}\n * itemLabel={(item) => item.name}\n * onSelect={handleSelect}\n * />\n *\n * @example\n * // Custom rendering with renderItem\n * const UserItem = React.memo(({ item, ...props }) => (\n * <VirtualMenu.Item {...props}>\n * <Avatar src={item.avatar} />\n * {item.name}\n * </VirtualMenu.Item>\n * ));\n *\n * <VirtualMenu items={users} renderItem={UserItem} onSelect={handleSelect} />\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/** Props passed to custom renderItem components */\ninterface VirtualMenuRenderItemProps<T> {\n /** The item data */\n item: T;\n /** Index in the items array */\n index: number;\n /** Whether this item is currently highlighted */\n isHighlighted: boolean;\n /** Unique ID for accessibility */\n id: string;\n /** Positioning styles - must be applied */\n style: React.CSSProperties;\n /** Tab index for focus management */\n tabIndex: number;\n /** Data attribute for CSS styling */\n 'data-highlighted': true | undefined;\n /** Data attribute for event delegation */\n 'data-index': number;\n /** Mouse enter handler */\n onMouseEnter: (e: React.MouseEvent<HTMLElement>) => void;\n /** Mouse leave handler */\n onMouseLeave: () => void;\n /** Click handler */\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\n /** Keyboard handler for Enter/Space activation */\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ninterface VirtualMenuProps<T> {\n /** Array of items to render */\n items: T[];\n /**\n * Simple label accessor for basic text items.\n * Can be a property key or a function.\n * @example\n * itemLabel=\"name\"\n * itemLabel={(item) => item.name}\n */\n itemLabel?: keyof T | ((item: T) => React.ReactNode);\n /**\n * Custom component for rendering items.\n * Must be memoized (React.memo) for optimal performance.\n * @example\n * const MyItem = React.memo(({ item, ...props }) => (\n * <VirtualMenu.Item {...props}>{item.name}</VirtualMenu.Item>\n * ));\n * <VirtualMenu items={items} renderItem={MyItem} />\n */\n renderItem?: React.ComponentType<VirtualMenuRenderItemProps<T>>;\n /**\n * Menu size - controls item height.\n * Automatically inherited from parent DropdownMenu.Content/ContextMenu.Content.\n * Only set manually when using VirtualMenu outside of a menu context.\n * @default '2' (or inherited from context)\n */\n size?: '1' | '2';\n /**\n * Estimated height of each item in pixels.\n * Can be a number (same for all) or a function (per-item).\n * Usually not needed - height is automatically derived from size prop/context.\n * Use this only for custom item heights (e.g., variable height items).\n */\n estimatedItemSize?: number | ((index: number) => number);\n /** Number of items to render outside visible area */\n overscan?: number;\n /** Callback when an item is selected */\n onSelect?: (item: T, index: number) => void;\n /** Additional class name */\n className?: string;\n /** Additional styles */\n style?: React.CSSProperties;\n /** Accessible label for the menu */\n 'aria-label'?: string;\n}\n\n// ============================================================================\n// Internal Memoized Item Component\n// ============================================================================\n\ninterface SimpleItemProps {\n label: React.ReactNode;\n isHighlighted: boolean;\n id: string;\n style: React.CSSProperties;\n tabIndex: number;\n 'data-highlighted': true | undefined;\n 'data-index': number;\n onMouseEnter: (e: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave: () => void;\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;\n}\n\nconst SimpleItem = React.memo(\n function SimpleItem({\n label,\n isHighlighted: _isHighlighted,\n id,\n style,\n tabIndex,\n 'data-highlighted': dataHighlighted,\n 'data-index': dataIndex,\n onMouseEnter,\n onMouseLeave,\n onClick,\n onKeyDown,\n }: SimpleItemProps) {\n return (\n <div\n id={id}\n role=\"menuitem\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-VirtualMenuItem')}\n style={style}\n tabIndex={tabIndex}\n data-highlighted={dataHighlighted}\n data-index={dataIndex}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onClick={onClick}\n onKeyDown={onKeyDown}\n >\n {label}\n </div>\n );\n },\n (prev, next) => {\n // Custom comparison - only re-render if these change\n if (prev.label !== next.label) return false;\n if (prev['data-highlighted'] !== next['data-highlighted']) return false;\n if (prev.style.height !== next.style.height) return false;\n if (prev.style.transform !== next.style.transform) return false;\n if (prev.tabIndex !== next.tabIndex) return false;\n if (prev.id !== next.id) return false;\n // Event handlers are stable, skip comparison\n return true;\n },\n);\n\n// ============================================================================\n// VirtualMenu Component\n// ============================================================================\n\nfunction VirtualMenuRoot<T>({\n items,\n itemLabel,\n renderItem: RenderItem,\n size: sizeProp,\n estimatedItemSize: estimatedItemSizeProp,\n overscan = 5,\n onSelect,\n className,\n style,\n 'aria-label': ariaLabel,\n}: VirtualMenuProps<T>) {\n const menuId = React.useId();\n const parentRef = React.useRef<HTMLDivElement>(null);\n const [highlightedIndex, setHighlightedIndex] = React.useState<number>(-1);\n const { isInsideMenu, size: contextSize, itemHeight: contextItemHeight } = useMenuContext();\n const { scaling } = useThemeContext();\n\n // Resolve item height: explicit prop > own size > parent menu > default size '2'.\n // Heights follow the theme scaling, like the --base-menu-item-height token.\n const estimatedItemSize =\n estimatedItemSizeProp ??\n (sizeProp\n ? getMenuItemHeight(sizeProp, scaling)\n : (contextItemHeight ?? getMenuItemHeight(contextSize ?? '2', scaling)));\n\n // Validate props\n if (!itemLabel && !RenderItem) {\n throw new Error('VirtualMenu requires either itemLabel or renderItem prop');\n }\n\n // Normalize itemLabel to a function\n const getLabel = React.useMemo(() => {\n if (!itemLabel) return null;\n if (typeof itemLabel === 'function') return itemLabel;\n return (item: T) => item[itemLabel] as React.ReactNode;\n }, [itemLabel]);\n\n // Derive safe highlighted index\n const safeHighlightedIndex = React.useMemo(() => {\n if (items.length === 0) return -1;\n if (highlightedIndex < 0) return -1;\n return Math.min(highlightedIndex, items.length - 1);\n }, [highlightedIndex, items.length]);\n\n // Normalize estimatedItemSize to a function\n const getItemSize = React.useMemo(\n () =>\n typeof estimatedItemSize === 'function'\n ? estimatedItemSize\n : () => estimatedItemSize,\n [estimatedItemSize],\n );\n\n const virtualizer = useVirtualizer({\n count: items.length,\n getScrollElement: () => parentRef.current,\n estimateSize: getItemSize,\n overscan,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n\n // Refs for stable handler references\n const itemsRef = React.useRef(items);\n const onSelectRef = React.useRef(onSelect);\n itemsRef.current = items;\n onSelectRef.current = onSelect;\n\n const scrollToIndexRef = React.useRef(virtualizer.scrollToIndex);\n scrollToIndexRef.current = virtualizer.scrollToIndex;\n\n const highlightedIndexRef = React.useRef(safeHighlightedIndex);\n highlightedIndexRef.current = safeHighlightedIndex;\n\n // Stable event handlers\n const handleItemMouseEnter = React.useCallback((e: React.MouseEvent<HTMLElement>) => {\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n setHighlightedIndex(Number(index));\n }\n }, []);\n\n const handleItemClick = React.useCallback((e: React.MouseEvent<HTMLElement>) => {\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n const idx = Number(index);\n const currentItems = itemsRef.current;\n if (idx >= 0 && idx < currentItems.length) {\n onSelectRef.current?.(currentItems[idx], idx);\n }\n }\n }, []);\n\n const noop = React.useCallback(() => {}, []);\n\n // Item-level keyboard handler for Enter/Space activation (satisfies a11y lint rule)\n const handleItemKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n const idx = Number(index);\n const currentItems = itemsRef.current;\n if (idx >= 0 && idx < currentItems.length) {\n onSelectRef.current?.(currentItems[idx], idx);\n }\n }\n }\n }, []);\n\n // Keyboard navigation\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\n const currentItems = itemsRef.current;\n const currentHighlightedIndex = highlightedIndexRef.current;\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n const nextIndex =\n currentHighlightedIndex < currentItems.length - 1 ? currentHighlightedIndex + 1 : 0;\n setHighlightedIndex(nextIndex);\n scrollToIndexRef.current(nextIndex, { align: 'auto' });\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n const prevIndex =\n currentHighlightedIndex > 0 ? currentHighlightedIndex - 1 : currentItems.length - 1;\n setHighlightedIndex(prevIndex);\n scrollToIndexRef.current(prevIndex, { align: 'auto' });\n break;\n }\n case 'Home': {\n e.preventDefault();\n setHighlightedIndex(0);\n scrollToIndexRef.current(0, { align: 'start' });\n break;\n }\n case 'End': {\n e.preventDefault();\n const lastIndex = currentItems.length - 1;\n setHighlightedIndex(lastIndex);\n scrollToIndexRef.current(lastIndex, { align: 'end' });\n break;\n }\n case 'Enter':\n case ' ': {\n e.preventDefault();\n if (currentHighlightedIndex >= 0 && currentHighlightedIndex < currentItems.length) {\n onSelectRef.current?.(currentItems[currentHighlightedIndex], currentHighlightedIndex);\n }\n break;\n }\n case 'Tab': {\n e.preventDefault();\n break;\n }\n case 'Escape': {\n (e.currentTarget as HTMLElement).blur();\n break;\n }\n }\n }, []);\n\n // Item ID generator\n const getItemId = React.useCallback(\n (index: number) => `${menuId}-item-${index}`,\n [menuId],\n );\n\n // Memoize styles\n const rootStyle = React.useMemo(\n () => ({\n overflow: 'auto' as const,\n position: 'relative' as const,\n ...style,\n }),\n [style],\n );\n\n const totalSize = virtualizer.getTotalSize();\n const viewportStyle = React.useMemo(\n () => ({\n height: `${totalSize}px`,\n width: '100%' as const,\n position: 'relative' as const,\n }),\n [totalSize],\n );\n\n return (\n <div\n ref={parentRef}\n role={isInsideMenu ? 'group' : 'menu'}\n aria-label={ariaLabel}\n aria-activedescendant={safeHighlightedIndex >= 0 ? getItemId(safeHighlightedIndex) : undefined}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n className={classNames('rt-VirtualMenuRoot', className)}\n style={rootStyle}\n >\n <div className=\"rt-VirtualMenuViewport\" style={viewportStyle}>\n {virtualItems.map((virtualRow) => {\n const item = items[virtualRow.index];\n const index = virtualRow.index;\n const isHighlighted = safeHighlightedIndex === index;\n\n const itemStyle: React.CSSProperties = {\n height: virtualRow.size,\n transform: `translateY(${virtualRow.start}px)`,\n };\n\n const commonProps = {\n id: getItemId(index),\n isHighlighted,\n style: itemStyle,\n tabIndex: isHighlighted ? 0 : -1,\n 'data-highlighted': isHighlighted ? true as const : undefined,\n 'data-index': index,\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: noop,\n onClick: handleItemClick,\n onKeyDown: handleItemKeyDown,\n };\n\n // Use renderItem if provided, otherwise use SimpleItem with itemLabel\n if (RenderItem) {\n return (\n <RenderItem\n key={virtualRow.key}\n item={item}\n index={index}\n {...commonProps}\n />\n );\n }\n\n return (\n <SimpleItem\n key={virtualRow.key}\n label={getLabel!(item)}\n {...commonProps}\n />\n );\n })}\n </div>\n </div>\n );\n}\n\nVirtualMenuRoot.displayName = 'VirtualMenu';\n\n// ============================================================================\n// VirtualMenu.Item Component (for custom renderItem usage)\n// ============================================================================\n\ninterface VirtualMenuItemProps extends React.ComponentPropsWithoutRef<'div'> {\n children: React.ReactNode;\n /** Data attribute for highlight styling */\n 'data-highlighted'?: true | undefined;\n /** Data attribute for event delegation */\n 'data-index'?: number;\n}\n\nconst VirtualMenuItemInner = React.forwardRef<HTMLDivElement, VirtualMenuItemProps>(\n ({ className, children, ...props }, forwardedRef) => {\n return (\n <div\n ref={forwardedRef}\n role=\"menuitem\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-VirtualMenuItem', className)}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nVirtualMenuItemInner.displayName = 'VirtualMenu.Item';\n\n// Memoized with custom comparison\nconst VirtualMenuItem = React.memo(VirtualMenuItemInner, (prevProps, nextProps) => {\n const prevStyle = prevProps.style as React.CSSProperties | undefined;\n const nextStyle = nextProps.style as React.CSSProperties | undefined;\n if (prevStyle?.height !== nextStyle?.height) return false;\n if (prevStyle?.transform !== nextStyle?.transform) return false;\n if (prevProps['data-highlighted'] !== nextProps['data-highlighted']) return false;\n if (prevProps.tabIndex !== nextProps.tabIndex) return false;\n if (prevProps.id !== nextProps.id) return false;\n if (prevProps.className !== nextProps.className) return false;\n if (prevProps.children !== nextProps.children) return false;\n return true;\n});\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nconst VirtualMenu = Object.assign(VirtualMenuRoot, {\n Item: VirtualMenuItem,\n});\n\nexport { VirtualMenu };\nexport type { VirtualMenuProps, VirtualMenuItemProps, VirtualMenuRenderItemProps };\n", "'use client';\n\nimport * as React from 'react';\n\nimport { useThemeContext } from '../theme.js';\nimport { useResolvedResponsiveValue } from './base-menu.utils.js';\n\nimport type { Responsive } from '../../props/prop-def.js';\n\n/**\n * Context to detect if a component is rendered inside a menu (DropdownMenu, ContextMenu, etc.)\n * Used by VirtualMenu to adjust its behavior:\n * - Skip role=\"menu\" when inside a parent menu (parent owns the role)\n * - Delegate certain keyboard handling to parent\n * - Use the correct item height based on menu size\n */\n\nexport type MenuSize = '1' | '2';\n\ninterface MenuContextValue {\n /** Whether we're inside a menu that owns the menu role */\n isInsideMenu: boolean;\n /** Menu size for the current breakpoint */\n size?: MenuSize;\n /** Item height in px for the current size and theme scaling */\n itemHeight?: number;\n}\n\nconst MenuContext = React.createContext<MenuContextValue>({ isInsideMenu: false });\n\ninterface MenuProviderProps {\n children: React.ReactNode;\n /** Menu size passed from parent (DropdownMenu.Content, ContextMenu.Content, etc.) */\n size?: Responsive<MenuSize>;\n}\n\n/** Map menu size to item height in pixels at 100% scaling */\nexport const menuSizeToItemHeight: Record<MenuSize, number> = {\n '1': 24, // --space-5\n '2': 32, // --space-6\n};\n\n/** Item height in px for a size at the given theme scaling (\"100%\", \"110%\"\u2026). */\nexport function getMenuItemHeight(size: MenuSize, scaling: string | undefined): number {\n const scale = scaling ? parseFloat(scaling) / 100 : 1;\n return menuSizeToItemHeight[size] * (Number.isFinite(scale) ? scale : 1);\n}\n\nexport function MenuProvider({ children, size }: MenuProviderProps) {\n const resolvedSize = useResolvedResponsiveValue<MenuSize | undefined>(size, undefined);\n const { scaling } = useThemeContext();\n const itemHeight = resolvedSize ? getMenuItemHeight(resolvedSize, scaling) : undefined;\n const value = React.useMemo(\n () => ({ isInsideMenu: true, size: resolvedSize, itemHeight }),\n [resolvedSize, itemHeight],\n );\n return <MenuContext.Provider value={value}>{children}</MenuContext.Provider>;\n}\n\nexport function useMenuContext() {\n return React.useContext(MenuContext);\n}\n", "'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Direction, Slot, Tooltip as TooltipPrimitive } from 'radix-ui';\nimport { useComposedRefs, useLayoutEffect } from 'radix-ui/internal';\n\nimport { getMatchingGrayColor } from '../helpers/get-matching-gray-color.js';\nimport { usePropSyncedState } from '../hooks/use-prop-synced-state.js';\nimport { themePropDefs } from './theme.props.js';\n\nimport type { ThemeOwnProps } from './theme.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\nconst noop = () => {};\n\ntype ThemeAppearance = (typeof themePropDefs.appearance.values)[number];\ntype ThemeAccentColor = (typeof themePropDefs.accentColor.values)[number];\ntype ThemeGrayColor = (typeof themePropDefs.grayColor.values)[number];\ntype ThemeMaterial = (typeof themePropDefs.material.values)[number];\ntype ThemeRadius = (typeof themePropDefs.radius.values)[number];\ntype ThemeScaling = (typeof themePropDefs.scaling.values)[number];\ntype ThemeFontFamily = (typeof themePropDefs.fontFamily.values)[number];\n// Headings follow the body font until something sets this, so `undefined` is a\n// meaningful value here rather than a missing one.\ntype ThemeHeadingFontFamily = ThemeFontFamily | undefined;\n\ninterface ThemeChangeHandlers {\n onAppearanceChange: (appearance: ThemeAppearance) => void;\n onAccentColorChange: (accentColor: ThemeAccentColor) => void;\n onGrayColorChange: (grayColor: ThemeGrayColor) => void;\n onMaterialChange: (material: ThemeMaterial) => void;\n onRadiusChange: (radius: ThemeRadius) => void;\n onScalingChange: (scaling: ThemeScaling) => void;\n onFontFamilyChange: (fontFamily: ThemeFontFamily) => void;\n onHeadingFontFamilyChange: (headingFontFamily: ThemeHeadingFontFamily) => void;\n}\n\ninterface ThemeContextValue extends ThemeChangeHandlers {\n appearance: ThemeAppearance;\n accentColor: ThemeAccentColor;\n grayColor: ThemeGrayColor;\n resolvedGrayColor: ThemeGrayColor;\n material: ThemeMaterial;\n radius: ThemeRadius;\n scaling: ThemeScaling;\n fontFamily: ThemeFontFamily;\n headingFontFamily: ThemeHeadingFontFamily;\n}\n// Default theme values used when components render outside a Theme provider\nconst defaultThemeContext: ThemeContextValue = {\n appearance: themePropDefs.appearance.default,\n accentColor: themePropDefs.accentColor.default,\n grayColor: themePropDefs.grayColor.default,\n resolvedGrayColor: themePropDefs.grayColor.default,\n material: themePropDefs.material.default,\n radius: themePropDefs.radius.default,\n scaling: themePropDefs.scaling.default,\n fontFamily: themePropDefs.fontFamily.default,\n headingFontFamily: undefined,\n onAppearanceChange: noop,\n onAccentColorChange: noop,\n onGrayColorChange: noop,\n onMaterialChange: noop,\n onRadiusChange: noop,\n onScalingChange: noop,\n onFontFamilyChange: noop,\n onHeadingFontFamilyChange: noop,\n};\n\nconst ThemeContext = React.createContext<ThemeContextValue | undefined>(undefined);\n\nfunction useThemeContext() {\n const context = React.useContext(ThemeContext);\n // Return default context if used outside Theme provider (e.g., during SSR)\n return context ?? defaultThemeContext;\n}\n\ninterface ThemeProps extends ThemeImplPublicProps {}\nconst Theme = React.forwardRef<ThemeImplElement, ThemeProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n // Direction is inherited: a Radix DirectionProvider above the Theme (for a right-to-left app)\n // wins, and left-to-right stays the default when there is none.\n const dir = Direction.useDirection();\n const isRoot = context === undefined;\n if (isRoot) {\n return (\n <TooltipPrimitive.Provider delayDuration={200}>\n <Direction.Provider dir={dir}>\n <ThemeRoot {...props} ref={forwardedRef} />\n </Direction.Provider>\n </TooltipPrimitive.Provider>\n );\n }\n return <ThemeImpl {...props} ref={forwardedRef} />;\n});\nTheme.displayName = 'Theme';\n\nconst ThemeRoot = React.forwardRef<ThemeImplElement, ThemeImplPublicProps>(\n (props, forwardedRef) => {\n const {\n appearance: appearanceProp = themePropDefs.appearance.default,\n accentColor: accentColorProp = themePropDefs.accentColor.default,\n grayColor: grayColorProp = themePropDefs.grayColor.default,\n material: materialProp = themePropDefs.material.default,\n radius: radiusProp = themePropDefs.radius.default,\n scaling: scalingProp = themePropDefs.scaling.default,\n fontFamily: fontFamilyProp = themePropDefs.fontFamily.default,\n headingFontFamily: headingFontFamilyProp,\n hasBackground = themePropDefs.hasBackground.default,\n ...rootProps\n } = props;\n\n\n // Each of these follows its prop but stays independently settable, so\n // `ThemePanel` can change the theme at runtime. Syncing during render\n // rather than in an effect matters here: an effect would commit the old\n // theme first and re-render every consumer of the context a second time.\n const [appearance, setAppearance] = usePropSyncedState(appearanceProp);\n const [accentColor, setAccentColor] = usePropSyncedState(accentColorProp);\n const [grayColor, setGrayColor] = usePropSyncedState(grayColorProp);\n\n const [material, setMaterial] = usePropSyncedState(materialProp);\n\n const [radius, setRadius] = usePropSyncedState(radiusProp);\n const [scaling, setScaling] = usePropSyncedState(scalingProp);\n const [fontFamily, setFontFamily] = usePropSyncedState(fontFamilyProp);\n const [headingFontFamily, setHeadingFontFamily] = usePropSyncedState(headingFontFamilyProp);\n\n return (\n <ThemeImpl\n {...rootProps}\n ref={forwardedRef}\n isRoot\n hasBackground={hasBackground}\n //\n appearance={appearance}\n accentColor={accentColor}\n grayColor={grayColor}\n material={material}\n radius={radius}\n scaling={scaling}\n fontFamily={fontFamily}\n headingFontFamily={headingFontFamily}\n //\n onAppearanceChange={setAppearance}\n onAccentColorChange={setAccentColor}\n onGrayColorChange={setGrayColor}\n onMaterialChange={setMaterial}\n onRadiusChange={setRadius}\n onScalingChange={setScaling}\n onFontFamilyChange={setFontFamily}\n onHeadingFontFamilyChange={setHeadingFontFamily}\n />\n );\n },\n);\nThemeRoot.displayName = 'ThemeRoot';\n\ntype ThemeImplElement = React.ElementRef<'div'>;\ninterface ThemeImplProps extends ThemeImplPublicProps, ThemeImplPrivateProps {}\ninterface ThemeImplPublicProps\n extends ComponentPropsWithout<'div', RemovedProps | 'dir'>,\n ThemeOwnProps {}\ninterface ThemeImplPrivateProps extends Partial<ThemeChangeHandlers> {\n isRoot?: boolean;\n}\nfunction getClientOS(): 'windows' | 'macos' | 'linux' | undefined {\n if (typeof navigator === 'undefined') return undefined;\n const ua = navigator.userAgent;\n if (ua.includes('Win')) return 'windows';\n if (ua.includes('Mac')) return 'macos';\n if (ua.includes('Linux')) return 'linux';\n return undefined;\n}\n\nconst ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, forwardedRef) => {\n const context = React.useContext(ThemeContext);\n const {\n asChild,\n isRoot,\n hasBackground: hasBackgroundProp,\n //\n appearance = props.appearance ?? context?.appearance ?? themePropDefs.appearance.default,\n accentColor = props.accentColor ?? context?.accentColor ?? themePropDefs.accentColor.default,\n grayColor = props.grayColor ?? context?.resolvedGrayColor ?? themePropDefs.grayColor.default,\n material = props.material ?? context?.material ?? themePropDefs.material.default,\n radius = props.radius ?? context?.radius ?? themePropDefs.radius.default,\n scaling = props.scaling ?? context?.scaling ?? themePropDefs.scaling.default,\n fontFamily = props.fontFamily ?? context?.fontFamily ?? themePropDefs.fontFamily.default,\n headingFontFamily = props.headingFontFamily ?? context?.headingFontFamily,\n //\n onAppearanceChange = noop,\n onAccentColorChange = noop,\n onGrayColorChange = noop,\n onMaterialChange = noop,\n onRadiusChange = noop,\n onScalingChange = noop,\n onFontFamilyChange = noop,\n onHeadingFontFamilyChange = noop,\n //\n ...themeProps\n } = props;\n const Comp = asChild ? Slot.Root : 'div';\n const resolvedGrayColor = grayColor === 'auto' ? getMatchingGrayColor(accentColor) : grayColor;\n const isExplicitAppearance = props.appearance === 'light' || props.appearance === 'dark';\n const hasBackground =\n hasBackgroundProp === undefined ? isRoot || isExplicitAppearance : hasBackgroundProp;\n\n // `data-os` can only be resolved on the client. Writing it straight to the\n // DOM keeps it out of the server markup \u2014 so hydration still matches \u2014 without\n // spending a render pass, and a state update here would re-render the whole\n // application on mount.\n const rootRef = React.useRef<ThemeImplElement>(null);\n const composedRef = useComposedRefs(forwardedRef, rootRef);\n const hasExplicitOS = 'data-os' in themeProps;\n\n useLayoutEffect(() => {\n if (!isRoot || hasExplicitOS) return;\n const node = rootRef.current;\n if (!node) return;\n\n const os = getClientOS();\n if (!os) return;\n node.setAttribute('data-os', os);\n return () => node.removeAttribute('data-os');\n }, [isRoot, hasExplicitOS]);\n\n return (\n <ThemeContext.Provider\n value={React.useMemo(\n () => ({\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n material,\n radius,\n scaling,\n fontFamily,\n headingFontFamily,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onMaterialChange,\n onRadiusChange,\n onScalingChange,\n onFontFamilyChange,\n onHeadingFontFamilyChange,\n }),\n [\n appearance,\n accentColor,\n grayColor,\n resolvedGrayColor,\n material,\n radius,\n scaling,\n fontFamily,\n headingFontFamily,\n //\n onAppearanceChange,\n onAccentColorChange,\n onGrayColorChange,\n onMaterialChange,\n onRadiusChange,\n onScalingChange,\n onFontFamilyChange,\n onHeadingFontFamilyChange,\n ],\n )}\n >\n <Comp\n data-is-root-theme={isRoot ? 'true' : 'false'}\n data-accent-color={accentColor}\n data-gray-color={resolvedGrayColor}\n // for nested `Theme` background\n data-has-background={hasBackground ? 'true' : 'false'}\n data-material={material}\n data-radius={radius}\n data-scaling={scaling}\n data-font-family={fontFamily}\n data-heading-font-family={headingFontFamily}\n ref={composedRef}\n {...themeProps}\n className={classNames(\n 'radix-themes',\n {\n light: appearance === 'light',\n dark: appearance === 'dark',\n },\n themeProps.className,\n )}\n />\n </ThemeContext.Provider>\n );\n});\nThemeImpl.displayName = 'ThemeImpl';\n\nexport { Theme, ThemeContext, useThemeContext };\nexport type { ThemeProps, ThemeContextValue };\n", "import type { accentColors } from '../props/color.prop.js';\n\ntype ThemeAccentColor = (typeof accentColors)[number];\n\nexport function getMatchingGrayColor(accentColor: ThemeAccentColor) {\n switch (accentColor) {\n case 'tomato':\n case 'red':\n case 'ruby':\n case 'crimson':\n case 'pink':\n case 'plum':\n case 'purple':\n case 'violet':\n return 'mauve';\n case 'iris':\n case 'indigo':\n case 'blue':\n case 'sky':\n case 'cyan':\n return 'slate';\n case 'teal':\n case 'jade':\n case 'mint':\n case 'green':\n return 'sage';\n case 'grass':\n case 'lime':\n return 'olive';\n case 'yellow':\n case 'amber':\n case 'orange':\n case 'brown':\n case 'gold':\n case 'bronze':\n return 'sand';\n case 'gray':\n return 'gray';\n }\n}\n", "import * as React from 'react';\n\n/**\n * State that tracks a prop but can also be set imperatively \u2014 the shape `Theme`\n * needs, where a prop sets the value and `ThemePanel` can change it at runtime.\n *\n * Adjusts state during render rather than syncing in a `useEffect`. An effect\n * would commit one render carrying the *old* value and schedule a second one,\n * which for a provider means every consumer renders twice and the browser can\n * paint the stale value in between.\n *\n * @see https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */\nexport function usePropSyncedState<T>(propValue: T) {\n const [value, setValue] = React.useState(propValue);\n const [previousPropValue, setPreviousPropValue] = React.useState(propValue);\n\n if (!Object.is(propValue, previousPropValue)) {\n setPreviousPropValue(propValue);\n setValue(propValue);\n }\n\n return [value, setValue] as const;\n}\n", "import type { PropDef } from './prop-def.js';\n\nconst asChildPropDef = {\n /**\n * Composes the component into its immediate child instead of rendering its own HTML element.\n * You\u2019ll have to provide a single React Element child.\n */\n asChild: {\n type: 'boolean',\n },\n} satisfies {\n asChild: PropDef<boolean>;\n};\n\nexport { asChildPropDef };\n", "import type { PropDef } from './prop-def.js';\n\n// prettier-ignore\nconst accentColors = ['gray', 'gold', 'bronze', 'brown', 'yellow', 'amber', 'orange', 'tomato', 'red', 'ruby', 'crimson', 'pink', 'plum', 'purple', 'violet', 'iris', 'indigo', 'blue', 'cyan', 'teal', 'jade', 'green', 'grass', 'lime', 'mint', 'sky'] as const;\n\nconst grayColors = ['auto', 'gray', 'mauve', 'slate', 'sage', 'olive', 'sand'] as const;\n\nconst colorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: undefined as (typeof accentColors)[number] | undefined,\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\n// 1. When used on components that compose Text, sets the color of the text to the current accent.\n// 2. Re-declares the accent role tokens (`--accent-ink`, `--accent-solid`, ...) that descendants read.\nconst accentColorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: '' as (typeof accentColors)[number],\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\n// For components whose colour comes from their content (Badge, Avatar, Code): they rest gray, and `color` picks a category when it means something.\nconst grayAccentColorPropDef = {\n color: {\n type: 'enum',\n values: accentColors,\n default: 'gray' as (typeof accentColors)[number],\n },\n} satisfies {\n color: PropDef<(typeof accentColors)[number]>;\n};\n\nexport {\n accentColorPropDef,\n grayAccentColorPropDef,\n colorPropDef,\n //\n accentColors,\n grayColors,\n};\n", "import type { PropDef } from './prop-def.js';\n\nconst radii = ['none', 'small', 'medium', 'large', 'full'] as const;\n\nconst radiusPropDef = {\n radius: {\n type: 'enum',\n values: radii,\n default: undefined,\n },\n} satisfies {\n radius: PropDef<(typeof radii)[number]>;\n};\n\nexport { radiusPropDef, radii };\n", "import { asChildPropDef } from '../props/as-child.prop.js';\nimport { accentColors, grayColors } from '../props/color.prop.js';\nimport { radii } from '../props/radius.prop.js';\n\nimport type { GetPropDefTypes, PropDef } from '../props/prop-def.js';\n\nconst appearances = ['inherit', 'light', 'dark'] as const;\nconst materials = ['solid', 'translucent'] as const;\nconst scalings = ['90%', '95%', '100%', '105%', '110%'] as const;\nconst fontFamilies = ['sans', 'mono', 'serif'] as const;\n\nconst themePropDefs = {\n ...asChildPropDef,\n /**\n * Whether to apply background color to the Theme element.\n *\n * Defaults to true for the root Theme and for Theme elements that\n * have an explicit light or dark appearance prop.\n */\n hasBackground: { type: 'boolean', default: true },\n /**\n * Sets the color scheme of the theme, typcially referred to as light and dark mode.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/dark-mode\n */\n appearance: { type: 'enum', values: appearances, default: 'inherit' },\n /**\n * Selects one of the accent color options to use in the Theme.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/color\n */\n accentColor: { type: 'enum', values: accentColors, default: 'gray' },\n /**\n * Selects one of the gray color options to use in the Theme.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/color\n */\n grayColor: { type: 'enum', values: grayColors, default: 'gray' },\n /**\n * What surfaces are made of: `solid`, or `translucent` with a backdrop blur.\n */\n material: { type: 'enum', values: materials, default: 'solid' },\n /**\n * Sets the default radius of the components.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/visual-style\n */\n radius: { type: 'enum', values: radii, default: 'full' },\n /**\n * Sets a scaling multiplier for values like spacing, font sizes, line heights, etc. are scaled.\n *\n * @link\n * https://www.radix-ui.com/themes/docs/theme/layout\n */\n scaling: { type: 'enum', values: scalings, default: '100%' },\n /**\n * Sets the font family used for body text in the theme.\n *\n * Headings follow this unless `headingFontFamily` (or the `--font-heading`\n * token) says otherwise.\n *\n * @default 'sans'\n */\n fontFamily: { type: 'enum', values: fontFamilies, default: 'sans' },\n /**\n * Sets the font family used for `Heading`, independently of body text.\n *\n * Deliberately has no default: when it is left unset no attribute is\n * emitted and `--font-heading` keeps following `--font-body`, so a\n * `--font-heading` override in your own CSS survives a `fontFamily` switch.\n */\n headingFontFamily: { type: 'enum', values: fontFamilies },\n} satisfies {\n hasBackground: PropDef<boolean>;\n appearance: PropDef<(typeof appearances)[number]>;\n accentColor: PropDef<(typeof accentColors)[number]>;\n grayColor: PropDef<(typeof grayColors)[number]>;\n material: PropDef<(typeof materials)[number]>;\n radius: PropDef<(typeof radii)[number]>;\n scaling: PropDef<(typeof scalings)[number]>;\n fontFamily: PropDef<(typeof fontFamilies)[number]>;\n headingFontFamily: PropDef<(typeof fontFamilies)[number]>;\n};\n\ntype ThemeOwnProps = GetPropDefTypes<typeof themePropDefs & typeof asChildPropDef>;\n\nexport { themePropDefs };\nexport type { ThemeOwnProps };\n"],
5
- "mappings": "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",
6
- "names": ["virtual_menu_exports", "__export", "VirtualMenu", "__toCommonJS", "React", "import_classnames", "import_react_virtual", "React", "React", "import_classnames", "import_radix_ui", "import_internal", "getMatchingGrayColor", "accentColor", "React", "usePropSyncedState", "propValue", "value", "setValue", "previousPropValue", "setPreviousPropValue", "asChildPropDef", "accentColors", "grayColors", "radii", "appearances", "materials", "scalings", "fontFamilies", "themePropDefs", "asChildPropDef", "accentColors", "grayColors", "radii", "noop", "defaultThemeContext", "themePropDefs", "ThemeContext", "useThemeContext", "Theme", "props", "forwardedRef", "context", "dir", "TooltipPrimitive", "ThemeRoot", "ThemeImpl", "appearanceProp", "accentColorProp", "grayColorProp", "materialProp", "radiusProp", "scalingProp", "fontFamilyProp", "headingFontFamilyProp", "hasBackground", "rootProps", "appearance", "setAppearance", "usePropSyncedState", "accentColor", "setAccentColor", "grayColor", "setGrayColor", "material", "setMaterial", "radius", "setRadius", "scaling", "setScaling", "fontFamily", "setFontFamily", "headingFontFamily", "setHeadingFontFamily", "getClientOS", "ua", "asChild", "isRoot", "hasBackgroundProp", "onAppearanceChange", "onAccentColorChange", "onGrayColorChange", "onMaterialChange", "onRadiusChange", "onScalingChange", "onFontFamilyChange", "onHeadingFontFamilyChange", "themeProps", "Comp", "resolvedGrayColor", "getMatchingGrayColor", "isExplicitAppearance", "rootRef", "composedRef", "hasExplicitOS", "node", "os", "classNames", "MenuContext", "menuSizeToItemHeight", "getMenuItemHeight", "size", "scaling", "scale", "useMenuContext", "MenuContext", "SimpleItem", "label", "_isHighlighted", "id", "style", "tabIndex", "dataHighlighted", "dataIndex", "onMouseEnter", "onMouseLeave", "onClick", "onKeyDown", "classNames", "prev", "next", "VirtualMenuRoot", "items", "itemLabel", "RenderItem", "sizeProp", "estimatedItemSizeProp", "overscan", "onSelect", "className", "ariaLabel", "menuId", "parentRef", "highlightedIndex", "setHighlightedIndex", "isInsideMenu", "contextSize", "contextItemHeight", "useMenuContext", "scaling", "useThemeContext", "estimatedItemSize", "getMenuItemHeight", "getLabel", "item", "safeHighlightedIndex", "getItemSize", "virtualizer", "virtualItems", "itemsRef", "onSelectRef", "scrollToIndexRef", "highlightedIndexRef", "handleItemMouseEnter", "e", "index", "handleItemClick", "idx", "currentItems", "noop", "handleItemKeyDown", "handleKeyDown", "currentHighlightedIndex", "nextIndex", "prevIndex", "lastIndex", "getItemId", "rootStyle", "totalSize", "viewportStyle", "virtualRow", "isHighlighted", "itemStyle", "commonProps", "VirtualMenuItemInner", "children", "props", "forwardedRef", "VirtualMenuItem", "prevProps", "nextProps", "prevStyle", "nextStyle", "VirtualMenu"]
3
+ "sources": ["../../../src/components/virtual-menu.tsx", "../../../src/components/_internal/menu-context.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport { useMenuContext, getMenuItemHeight } from './_internal/menu-context.js';\n\n/**\n * VirtualMenu - A virtualized menu component for rendering large lists efficiently.\n *\n * Uses TanStack Virtual to render only visible items.\n * Works inside any container (DropdownMenu.Content, Popover.Content, etc.)\n *\n * @example\n * // Simple usage with itemLabel\n * <VirtualMenu\n * items={items}\n * itemLabel={(item) => item.name}\n * onSelect={handleSelect}\n * />\n *\n * @example\n * // Custom rendering with renderItem\n * const UserItem = React.memo(({ item, ...props }) => (\n * <VirtualMenu.Item {...props}>\n * <Avatar src={item.avatar} />\n * {item.name}\n * </VirtualMenu.Item>\n * ));\n *\n * <VirtualMenu items={users} renderItem={UserItem} onSelect={handleSelect} />\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/** Props passed to custom renderItem components */\ninterface VirtualMenuRenderItemProps<T> {\n /** The item data */\n item: T;\n /** Index in the items array */\n index: number;\n /** Whether this item is currently highlighted */\n isHighlighted: boolean;\n /** Unique ID for accessibility */\n id: string;\n /** Positioning styles - must be applied */\n style: React.CSSProperties;\n /** Tab index for focus management */\n tabIndex: number;\n /** Data attribute for CSS styling */\n 'data-highlighted': true | undefined;\n /** Data attribute for event delegation */\n 'data-index': number;\n /** Mouse enter handler */\n onMouseEnter: (e: React.MouseEvent<HTMLElement>) => void;\n /** Mouse leave handler */\n onMouseLeave: () => void;\n /** Click handler */\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\n /** Keyboard handler for Enter/Space activation */\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ninterface VirtualMenuProps<T> {\n /** Array of items to render */\n items: T[];\n /**\n * Simple label accessor for basic text items.\n * Can be a property key or a function.\n * @example\n * itemLabel=\"name\"\n * itemLabel={(item) => item.name}\n */\n itemLabel?: keyof T | ((item: T) => React.ReactNode);\n /**\n * Custom component for rendering items.\n * Must be memoized (React.memo) for optimal performance.\n * @example\n * const MyItem = React.memo(({ item, ...props }) => (\n * <VirtualMenu.Item {...props}>{item.name}</VirtualMenu.Item>\n * ));\n * <VirtualMenu items={items} renderItem={MyItem} />\n */\n renderItem?: React.ComponentType<VirtualMenuRenderItemProps<T>>;\n /**\n * Menu size - controls item height.\n * Automatically inherited from parent DropdownMenu.Content/ContextMenu.Content.\n * Only set manually when using VirtualMenu outside of a menu context.\n * @default '2' (or inherited from context)\n */\n size?: '1' | '2';\n /**\n * Estimated height of each item in pixels.\n * Can be a number (same for all) or a function (per-item).\n * Usually not needed - height is automatically derived from size prop/context.\n * Use this only for custom item heights (e.g., variable height items).\n */\n estimatedItemSize?: number | ((index: number) => number);\n /** Number of items to render outside visible area */\n overscan?: number;\n /** Callback when an item is selected */\n onSelect?: (item: T, index: number) => void;\n /** Additional class name */\n className?: string;\n /** Additional styles */\n style?: React.CSSProperties;\n /** Accessible label for the menu */\n 'aria-label'?: string;\n}\n\n// ============================================================================\n// Internal Memoized Item Component\n// ============================================================================\n\ninterface SimpleItemProps {\n label: React.ReactNode;\n isHighlighted: boolean;\n id: string;\n style: React.CSSProperties;\n tabIndex: number;\n 'data-highlighted': true | undefined;\n 'data-index': number;\n onMouseEnter: (e: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave: () => void;\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;\n}\n\nconst SimpleItem = React.memo(\n function SimpleItem({\n label,\n isHighlighted: _isHighlighted,\n id,\n style,\n tabIndex,\n 'data-highlighted': dataHighlighted,\n 'data-index': dataIndex,\n onMouseEnter,\n onMouseLeave,\n onClick,\n onKeyDown,\n }: SimpleItemProps) {\n return (\n <div\n id={id}\n role=\"menuitem\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-VirtualMenuItem')}\n style={style}\n tabIndex={tabIndex}\n data-highlighted={dataHighlighted}\n data-index={dataIndex}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onClick={onClick}\n onKeyDown={onKeyDown}\n >\n {label}\n </div>\n );\n },\n (prev, next) => {\n // Custom comparison - only re-render if these change\n if (prev.label !== next.label) return false;\n if (prev['data-highlighted'] !== next['data-highlighted']) return false;\n if (prev.style.height !== next.style.height) return false;\n if (prev.style.transform !== next.style.transform) return false;\n if (prev.tabIndex !== next.tabIndex) return false;\n if (prev.id !== next.id) return false;\n // Event handlers are stable, skip comparison\n return true;\n },\n);\n\n// ============================================================================\n// VirtualMenu Component\n// ============================================================================\n\nfunction VirtualMenuRoot<T>({\n items,\n itemLabel,\n renderItem: RenderItem,\n size: sizeProp,\n estimatedItemSize: estimatedItemSizeProp,\n overscan = 5,\n onSelect,\n className,\n style,\n 'aria-label': ariaLabel,\n}: VirtualMenuProps<T>) {\n const menuId = React.useId();\n const parentRef = React.useRef<HTMLDivElement>(null);\n const [highlightedIndex, setHighlightedIndex] = React.useState<number>(-1);\n const { isInsideMenu, size: contextSize, itemHeight: contextItemHeight } = useMenuContext();\n\n // Resolve item height: explicit prop > own size > parent menu > default size '2'.\n // Heights follow the theme scaling, like the --base-menu-item-height token.\n const estimatedItemSize =\n estimatedItemSizeProp ??\n (sizeProp\n ? getMenuItemHeight(sizeProp)\n : (contextItemHeight ?? getMenuItemHeight(contextSize ?? '2')));\n\n // Validate props\n if (!itemLabel && !RenderItem) {\n throw new Error('VirtualMenu requires either itemLabel or renderItem prop');\n }\n\n // Normalize itemLabel to a function\n const getLabel = React.useMemo(() => {\n if (!itemLabel) return null;\n if (typeof itemLabel === 'function') return itemLabel;\n return (item: T) => item[itemLabel] as React.ReactNode;\n }, [itemLabel]);\n\n // Derive safe highlighted index\n const safeHighlightedIndex = React.useMemo(() => {\n if (items.length === 0) return -1;\n if (highlightedIndex < 0) return -1;\n return Math.min(highlightedIndex, items.length - 1);\n }, [highlightedIndex, items.length]);\n\n // Normalize estimatedItemSize to a function\n const getItemSize = React.useMemo(\n () =>\n typeof estimatedItemSize === 'function'\n ? estimatedItemSize\n : () => estimatedItemSize,\n [estimatedItemSize],\n );\n\n const virtualizer = useVirtualizer({\n count: items.length,\n getScrollElement: () => parentRef.current,\n estimateSize: getItemSize,\n overscan,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n\n // Refs for stable handler references\n const itemsRef = React.useRef(items);\n const onSelectRef = React.useRef(onSelect);\n itemsRef.current = items;\n onSelectRef.current = onSelect;\n\n const scrollToIndexRef = React.useRef(virtualizer.scrollToIndex);\n scrollToIndexRef.current = virtualizer.scrollToIndex;\n\n const highlightedIndexRef = React.useRef(safeHighlightedIndex);\n highlightedIndexRef.current = safeHighlightedIndex;\n\n // Stable event handlers\n const handleItemMouseEnter = React.useCallback((e: React.MouseEvent<HTMLElement>) => {\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n setHighlightedIndex(Number(index));\n }\n }, []);\n\n const handleItemClick = React.useCallback((e: React.MouseEvent<HTMLElement>) => {\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n const idx = Number(index);\n const currentItems = itemsRef.current;\n if (idx >= 0 && idx < currentItems.length) {\n onSelectRef.current?.(currentItems[idx], idx);\n }\n }\n }, []);\n\n const noop = React.useCallback(() => {}, []);\n\n // Item-level keyboard handler for Enter/Space activation (satisfies a11y lint rule)\n const handleItemKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n const idx = Number(index);\n const currentItems = itemsRef.current;\n if (idx >= 0 && idx < currentItems.length) {\n onSelectRef.current?.(currentItems[idx], idx);\n }\n }\n }\n }, []);\n\n // Keyboard navigation\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\n const currentItems = itemsRef.current;\n const currentHighlightedIndex = highlightedIndexRef.current;\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n const nextIndex =\n currentHighlightedIndex < currentItems.length - 1 ? currentHighlightedIndex + 1 : 0;\n setHighlightedIndex(nextIndex);\n scrollToIndexRef.current(nextIndex, { align: 'auto' });\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n const prevIndex =\n currentHighlightedIndex > 0 ? currentHighlightedIndex - 1 : currentItems.length - 1;\n setHighlightedIndex(prevIndex);\n scrollToIndexRef.current(prevIndex, { align: 'auto' });\n break;\n }\n case 'Home': {\n e.preventDefault();\n setHighlightedIndex(0);\n scrollToIndexRef.current(0, { align: 'start' });\n break;\n }\n case 'End': {\n e.preventDefault();\n const lastIndex = currentItems.length - 1;\n setHighlightedIndex(lastIndex);\n scrollToIndexRef.current(lastIndex, { align: 'end' });\n break;\n }\n case 'Enter':\n case ' ': {\n e.preventDefault();\n if (currentHighlightedIndex >= 0 && currentHighlightedIndex < currentItems.length) {\n onSelectRef.current?.(currentItems[currentHighlightedIndex], currentHighlightedIndex);\n }\n break;\n }\n case 'Tab': {\n e.preventDefault();\n break;\n }\n case 'Escape': {\n (e.currentTarget as HTMLElement).blur();\n break;\n }\n }\n }, []);\n\n // Item ID generator\n const getItemId = React.useCallback(\n (index: number) => `${menuId}-item-${index}`,\n [menuId],\n );\n\n // Memoize styles\n const rootStyle = React.useMemo(\n () => ({\n overflow: 'auto' as const,\n position: 'relative' as const,\n ...style,\n }),\n [style],\n );\n\n const totalSize = virtualizer.getTotalSize();\n const viewportStyle = React.useMemo(\n () => ({\n height: `${totalSize}px`,\n width: '100%' as const,\n position: 'relative' as const,\n }),\n [totalSize],\n );\n\n return (\n <div\n ref={parentRef}\n role={isInsideMenu ? 'group' : 'menu'}\n aria-label={ariaLabel}\n aria-activedescendant={safeHighlightedIndex >= 0 ? getItemId(safeHighlightedIndex) : undefined}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n className={classNames('rt-VirtualMenuRoot', className)}\n style={rootStyle}\n >\n <div className=\"rt-VirtualMenuViewport\" style={viewportStyle}>\n {virtualItems.map((virtualRow) => {\n const item = items[virtualRow.index];\n const index = virtualRow.index;\n const isHighlighted = safeHighlightedIndex === index;\n\n const itemStyle: React.CSSProperties = {\n height: virtualRow.size,\n transform: `translateY(${virtualRow.start}px)`,\n };\n\n const commonProps = {\n id: getItemId(index),\n isHighlighted,\n style: itemStyle,\n tabIndex: isHighlighted ? 0 : -1,\n 'data-highlighted': isHighlighted ? true as const : undefined,\n 'data-index': index,\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: noop,\n onClick: handleItemClick,\n onKeyDown: handleItemKeyDown,\n };\n\n // Use renderItem if provided, otherwise use SimpleItem with itemLabel\n if (RenderItem) {\n return (\n <RenderItem\n key={virtualRow.key}\n item={item}\n index={index}\n {...commonProps}\n />\n );\n }\n\n return (\n <SimpleItem\n key={virtualRow.key}\n label={getLabel!(item)}\n {...commonProps}\n />\n );\n })}\n </div>\n </div>\n );\n}\n\nVirtualMenuRoot.displayName = 'VirtualMenu';\n\n// ============================================================================\n// VirtualMenu.Item Component (for custom renderItem usage)\n// ============================================================================\n\ninterface VirtualMenuItemProps extends React.ComponentPropsWithoutRef<'div'> {\n children: React.ReactNode;\n /** Data attribute for highlight styling */\n 'data-highlighted'?: true | undefined;\n /** Data attribute for event delegation */\n 'data-index'?: number;\n}\n\nconst VirtualMenuItemInner = React.forwardRef<HTMLDivElement, VirtualMenuItemProps>(\n ({ className, children, ...props }, forwardedRef) => {\n return (\n <div\n ref={forwardedRef}\n role=\"menuitem\"\n className={classNames('rt-reset', 'rt-BaseMenuItem', 'rt-VirtualMenuItem', className)}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nVirtualMenuItemInner.displayName = 'VirtualMenu.Item';\n\n// Memoized with custom comparison\nconst VirtualMenuItem = React.memo(VirtualMenuItemInner, (prevProps, nextProps) => {\n const prevStyle = prevProps.style as React.CSSProperties | undefined;\n const nextStyle = nextProps.style as React.CSSProperties | undefined;\n if (prevStyle?.height !== nextStyle?.height) return false;\n if (prevStyle?.transform !== nextStyle?.transform) return false;\n if (prevProps['data-highlighted'] !== nextProps['data-highlighted']) return false;\n if (prevProps.tabIndex !== nextProps.tabIndex) return false;\n if (prevProps.id !== nextProps.id) return false;\n if (prevProps.className !== nextProps.className) return false;\n if (prevProps.children !== nextProps.children) return false;\n return true;\n});\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nconst VirtualMenu = Object.assign(VirtualMenuRoot, {\n Item: VirtualMenuItem,\n});\n\nexport { VirtualMenu };\nexport type { VirtualMenuProps, VirtualMenuItemProps, VirtualMenuRenderItemProps };\n", "'use client';\n\nimport * as React from 'react';\n\nimport { useResolvedResponsiveValue } from './base-menu.utils.js';\n\nimport type { Responsive } from '../../props/prop-def.js';\n\n/**\n * Context to detect if a component is rendered inside a menu (DropdownMenu, ContextMenu, etc.)\n * Used by VirtualMenu to adjust its behavior:\n * - Skip role=\"menu\" when inside a parent menu (parent owns the role)\n * - Delegate certain keyboard handling to parent\n * - Use the correct item height based on menu size\n */\n\nexport type MenuSize = '1' | '2';\n\ninterface MenuContextValue {\n /** Whether we're inside a menu that owns the menu role */\n isInsideMenu: boolean;\n /** Menu size for the current breakpoint */\n size?: MenuSize;\n /** Item height in px for the current size and theme scaling */\n itemHeight?: number;\n}\n\nconst MenuContext = React.createContext<MenuContextValue>({ isInsideMenu: false });\n\ninterface MenuProviderProps {\n children: React.ReactNode;\n /** Menu size passed from parent (DropdownMenu.Content, ContextMenu.Content, etc.) */\n size?: Responsive<MenuSize>;\n}\n\n/** Menu item height in pixels per size: the control height ladder (--control-height-N). */\nexport const menuSizeToItemHeight: Record<MenuSize, number> = {\n '1': 28,\n '2': 32,\n};\n\nexport function getMenuItemHeight(size: MenuSize): number {\n return menuSizeToItemHeight[size];\n}\n\nexport function MenuProvider({ children, size }: MenuProviderProps) {\n const resolvedSize = useResolvedResponsiveValue<MenuSize | undefined>(size, undefined);\n const itemHeight = resolvedSize ? getMenuItemHeight(resolvedSize) : undefined;\n const value = React.useMemo(\n () => ({ isInsideMenu: true, size: resolvedSize, itemHeight }),\n [resolvedSize, itemHeight],\n );\n return <MenuContext.Provider value={value}>{children}</MenuContext.Provider>;\n}\n\nexport function useMenuContext() {\n return React.useContext(MenuContext);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["virtual_menu_exports", "__export", "VirtualMenu", "__toCommonJS", "React", "import_classnames", "import_react_virtual", "React", "MenuContext", "menuSizeToItemHeight", "getMenuItemHeight", "size", "useMenuContext", "MenuContext", "SimpleItem", "label", "_isHighlighted", "id", "style", "tabIndex", "dataHighlighted", "dataIndex", "onMouseEnter", "onMouseLeave", "onClick", "onKeyDown", "classNames", "prev", "next", "VirtualMenuRoot", "items", "itemLabel", "RenderItem", "sizeProp", "estimatedItemSizeProp", "overscan", "onSelect", "className", "ariaLabel", "menuId", "parentRef", "highlightedIndex", "setHighlightedIndex", "isInsideMenu", "contextSize", "contextItemHeight", "useMenuContext", "estimatedItemSize", "getMenuItemHeight", "getLabel", "item", "safeHighlightedIndex", "getItemSize", "virtualizer", "virtualItems", "itemsRef", "onSelectRef", "scrollToIndexRef", "highlightedIndexRef", "handleItemMouseEnter", "e", "index", "handleItemClick", "idx", "currentItems", "noop", "handleItemKeyDown", "handleKeyDown", "currentHighlightedIndex", "nextIndex", "prevIndex", "lastIndex", "getItemId", "rootStyle", "totalSize", "viewportStyle", "virtualRow", "isHighlighted", "itemStyle", "commonProps", "VirtualMenuItemInner", "children", "props", "forwardedRef", "VirtualMenuItem", "prevProps", "nextProps", "prevStyle", "nextStyle", "VirtualMenu"]
7
7
  }
@@ -13,4 +13,5 @@ export * from './map-prop-values.js';
13
13
  export * from './merge-styles.js';
14
14
  export * from './normalize-to-px.js';
15
15
  export * from './require-react-element.js';
16
+ export * from './theme-size.js';
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC"}
@@ -1,6 +1,6 @@
1
- "use strict";var B=Object.create;var R=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var K=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var L=(t,e)=>{for(var n in e)R(t,n,{get:e[n],enumerable:!0})},C=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of A(e))!q.call(t,s)&&s!==n&&R(t,s,{get:()=>e[s],enumerable:!(r=G(e,s))||r.enumerable});return t};var x=(t,e,n)=>(n=t!=null?B(K(t)):{},C(e||!t||!t.__esModule?R(n,"default",{value:t,enumerable:!0}):n,t)),H=t=>C(R({},"__esModule",{value:!0}),t);var fe={};L(fe,{FONT_ROLE_VARIABLES:()=>l,FONT_STACKS:()=>Z,FONT_STACK_VARIABLES:()=>d,applyFontConfig:()=>ee,extractMarginProps:()=>I,extractProps:()=>X,generateFontCSS:()=>te,getCurrentFontConfig:()=>se,getMarginStyles:()=>oe,getMatchingGrayColor:()=>ie,getResponsiveClassNames:()=>D,getResponsiveCustomProperties:()=>E,getResponsiveStyles:()=>P,getSubtree:()=>ae,hasOwnProperty:()=>S,isResponsiveObject:()=>c,mapButtonSizeToSpinnerSize:()=>me,mapResponsiveProp:()=>pe,mergeStyles:()=>y,normalizeToPx:()=>ue,requireReactElement:()=>le,resetFonts:()=>ne});module.exports=H(fe);function I(t){let{m:e,mx:n,my:r,mt:s,mr:i,mb:a,ml:m,...p}=t;return{m:e,mx:n,my:r,mt:s,mr:i,mb:a,ml:m,rest:p}}var j=x(require("classnames"));var z=[],W=new Set;function U(t){let e=Object.assign({},...t),n=[],r=[],s=new Set;for(let i in e){let a=e[i],m=a.values??z,p={key:i,type:a.type,default:a.default,hasDefault:a.default!==void 0,responsive:"responsive"in a,className:a.className,customProperties:a.customProperties,parseValue:a.parseValue,values:m,valueSet:m.length>0?new Set(m):W,enumValueSet:a.type==="enum"?new Set([a.default,...m]):void 0};a.className?(n.push(p),s.add(i)):(p.hasDefault||a.type==="enum")&&r.push(p)}return{styling:n,passthrough:r,stylingKeys:s}}var _={children:new WeakMap};function k(t){let e=_;for(let n=0;n<t.length;n++){let r=t[n],s=e.children.get(r);s===void 0&&(s={children:new WeakMap},e.children.set(r,s)),e=s}return e.compiled??(e.compiled=U(t))}var Y=["initial","xs","sm","md","lg","xl"],N=new Set(Y);function S(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var J=new Set(["initial","xs","sm","md","lg","xl"]);function c(t){if(typeof t!="object"||t===null)return!1;for(let e in t)if(J.has(e))return!0;return!1}function b(t,e,n){return e!==void 0?e.has(n):t.includes(n)}function P({className:t,customProperties:e,...n}){let r=D({allowArbitraryValues:!0,className:t,...n}),s=E({customProperties:e,...n});return[r,s]}function D({allowArbitraryValues:t,value:e,className:n,propValues:r,propValueSet:s,parseValue:i=a=>a}){if(e){if(typeof e=="string")return b(r,s,e)?V(n,e,i):t?n:void 0;if(c(e)){let a=e,m=[];for(let p in a){if(!S(a,p)||!N.has(p))continue;let o=a[p];if(o!==void 0){if(b(r,s,o)){let u=V(n,o,i),f=p==="initial"?u:`${p}:${u}`;m.push(f)}else if(t){let u=p==="initial"?n:`${p}:${n}`;m.push(u)}}}return m.length>0?m.join(" "):""}if(t)return n}}function V(t,e,n){let r=t?"-":"",s=n(e),i=s?.startsWith("-"),a=i?"-":"",m=i?s?.substring(1):s;return`${a}${t}${r}${m}`}function E({customProperties:t,value:e,propValues:n,propValueSet:r,parseValue:s=i=>i}){if(!e||typeof e=="string"&&b(n,r,e))return;let i;if(typeof e=="string"){let a=s(e);i={};for(let m of t)i[m]=a;return i}if(c(e)){let a=e;for(let m in a){if(!S(a,m)||!N.has(m))continue;let p=a[m];if(p===void 0||b(n,r,p))continue;let o=s(p);i??(i={});for(let u of t){let f=m==="initial"?u:`${u}-${m}`;i[f]=o}}}return i??{}}function y(...t){let e;for(let n of t)n&&(e===void 0&&(e={}),Object.assign(e,n));return e}function Q(t,e){let n=t.initial,r=!1;return e.hasDefault&&n===void 0&&(n=e.default,r=!0),e.enumValueSet!==void 0&&!e.enumValueSet.has(n)&&(n=e.default,r=!0),r?{...t,initial:n}:t}function X(t,...e){let{styling:n,passthrough:r,stylingKeys:s}=k(e),i={};for(let p in t)s.has(p)||(i[p]=t[p]);for(let p=0;p<r.length;p++){let o=r[p],u=i[o.key];if(u===void 0){o.hasDefault&&(i[o.key]=o.default);continue}o.enumValueSet!==void 0&&!o.enumValueSet.has(u)&&!c(u)&&(i[o.key]=o.default)}let a,m=[];for(let p=0;p<n.length;p++){let o=n[p],u=t[o.key];if(u===void 0&&o.hasDefault&&(u=o.default),o.enumValueSet!==void 0&&!o.enumValueSet.has(u)&&!c(u)&&(u=o.default),!!u){if(c(u)){if(!o.responsive)continue;u=Q(u,o)}if(o.type==="enum"){let f=D({allowArbitraryValues:!1,value:u,className:o.className,propValues:o.values,propValueSet:o.valueSet,parseValue:o.parseValue});f&&m.push(f);continue}if(o.type==="string"||o.type==="enum | string"){let[f,T]=P({className:o.className,customProperties:o.customProperties,propValues:o.type==="string"?[]:o.values,propValueSet:o.type==="string"?void 0:o.valueSet,parseValue:o.parseValue,value:u});T&&(a=y(a,T)),f&&m.push(f);continue}if(o.type==="boolean"){m.push(o.className);continue}}}return i.className=(0,j.default)(m.length>0?m.join(" "):void 0,t.className),i.style=y(a,t.style),i}var d={sans:"--font-sans",mono:"--font-mono",serif:"--font-serif"},l={body:"--font-body",heading:"--font-heading",code:"--font-code",strong:"--font-strong",em:"--font-em",quote:"--font-quote"},Z={system:"-apple-system, BlinkMacSystemFont, 'Segoe UI (Custom)', Roboto, 'Helvetica Neue', system-ui, sans-serif",inter:"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI (Custom)', Roboto, system-ui, sans-serif",poppins:"'Poppins', -apple-system, BlinkMacSystemFont, system-ui, sans-serif",openSans:"'Open Sans (Custom)', -apple-system, BlinkMacSystemFont, system-ui, sans-serif",systemMono:"'Menlo', 'Consolas (Custom)', 'Bitstream Vera Sans Mono', monospace",jetbrainsMono:"'JetBrains Mono', 'Menlo', 'Consolas (Custom)', monospace",firaCode:"'Fira Code', 'Menlo', 'Consolas (Custom)', monospace",sourceCodePro:"'Source Code Pro', 'Menlo', 'Consolas (Custom)', monospace",systemSerif:"'Times New Roman', 'Times', 'Georgia', 'Cambria', serif",playfair:"'Playfair Display', 'Times New Roman', 'Georgia', serif",georgia:"'Georgia', 'Times New Roman', 'Times', serif",lora:"'Lora', 'Georgia', 'Times New Roman', serif"};function M(t,e,n){for(let r of Object.keys(e)){let s=n[r];s&&t.style.setProperty(e[r],s)}}function O(t,e){for(let n of Object.values(e))t.style.removeProperty(n)}function ee(t,{root:e=document.documentElement,themeElement:n=document.querySelector(".radix-themes")}={}){t.stacks&&M(e,d,t.stacks),t.roles&&n&&M(n,l,t.roles)}function te(t){let e=[],n=Object.entries(t.stacks??{}).filter(([,s])=>s);n.length&&e.push([":root {",...n.map(([s,i])=>` ${d[s]}: ${i};`),"}"].join(`
2
- `));let r=Object.entries(t.roles??{}).filter(([,s])=>s);return r.length&&e.push([".radix-themes {",...r.map(([s,i])=>` ${l[s]}: ${i};`),"}"].join(`
1
+ "use strict";var K=Object.create;var S=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty;var U=(t,e)=>{for(var n in e)S(t,n,{get:e[n],enumerable:!0})},E=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of q(e))!I.call(t,s)&&s!==n&&S(t,s,{get:()=>e[s],enumerable:!(r=L(e,s))||r.enumerable});return t};var b=(t,e,n)=>(n=t!=null?K(H(t)):{},E(e||!t||!t.__esModule?S(n,"default",{value:t,enumerable:!0}):n,t)),W=t=>E(S({},"__esModule",{value:!0}),t);var Pe={};U(Pe,{FONT_ROLE_VARIABLES:()=>l,FONT_STACKS:()=>re,FONT_STACK_VARIABLES:()=>d,THEME_SIZE_DEFAULT:()=>B,ThemeSizeContext:()=>N,applyFontConfig:()=>se,clampSize:()=>k,extractMarginProps:()=>_,extractProps:()=>ne,generateFontCSS:()=>oe,getCurrentFontConfig:()=>ae,getMarginStyles:()=>me,getMatchingGrayColor:()=>ue,getResponsiveClassNames:()=>v,getResponsiveCustomProperties:()=>j,getResponsiveStyles:()=>P,getSubtree:()=>le,hasOwnProperty:()=>D,isResponsiveObject:()=>c,mapResponsiveProp:()=>fe,mergeStyles:()=>y,normalizeToPx:()=>ce,requireReactElement:()=>de,resetFonts:()=>ie,useThemeSize:()=>ge,useThemeSizeProps:()=>ye});module.exports=W(Pe);function _(t){let{m:e,mx:n,my:r,mt:s,mr:o,mb:a,ml:m,...p}=t;return{m:e,mx:n,my:r,mt:s,mr:o,mb:a,ml:m,rest:p}}var w=b(require("classnames"));var Y=[],J=new Set;function Z(t){let e=Object.assign({},...t),n=[],r=[],s=new Set;for(let o in e){let a=e[o],m=a.values??Y,p={key:o,type:a.type,default:a.default,hasDefault:a.default!==void 0,responsive:"responsive"in a,className:a.className,customProperties:a.customProperties,parseValue:a.parseValue,values:m,valueSet:m.length>0?new Set(m):J,enumValueSet:a.type==="enum"?new Set([a.default,...m]):void 0};a.className?(n.push(p),s.add(o)):(p.hasDefault||a.type==="enum")&&r.push(p)}return{styling:n,passthrough:r,stylingKeys:s}}var Q={children:new WeakMap};function M(t){let e=Q;for(let n=0;n<t.length;n++){let r=t[n],s=e.children.get(r);s===void 0&&(s={children:new WeakMap},e.children.set(r,s)),e=s}return e.compiled??(e.compiled=Z(t))}var X=["initial","xs","sm","md","lg","xl"],C=new Set(X);function D(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var ee=new Set(["initial","xs","sm","md","lg","xl"]);function c(t){if(typeof t!="object"||t===null)return!1;for(let e in t)if(ee.has(e))return!0;return!1}function h(t,e,n){return e!==void 0?e.has(n):t.includes(n)}function P({className:t,customProperties:e,...n}){let r=v({allowArbitraryValues:!0,className:t,...n}),s=j({customProperties:e,...n});return[r,s]}function v({allowArbitraryValues:t,value:e,className:n,propValues:r,propValueSet:s,parseValue:o=a=>a}){if(e){if(typeof e=="string")return h(r,s,e)?O(n,e,o):t?n:void 0;if(c(e)){let a=e,m=[];for(let p in a){if(!D(a,p)||!C.has(p))continue;let i=a[p];if(i!==void 0){if(h(r,s,i)){let u=O(n,i,o),f=p==="initial"?u:`${p}:${u}`;m.push(f)}else if(t){let u=p==="initial"?n:`${p}:${n}`;m.push(u)}}}return m.length>0?m.join(" "):""}if(t)return n}}function O(t,e,n){let r=t?"-":"",s=n(e),o=s?.startsWith("-"),a=o?"-":"",m=o?s?.substring(1):s;return`${a}${t}${r}${m}`}function j({customProperties:t,value:e,propValues:n,propValueSet:r,parseValue:s=o=>o}){if(!e||typeof e=="string"&&h(n,r,e))return;let o;if(typeof e=="string"){let a=s(e);o={};for(let m of t)o[m]=a;return o}if(c(e)){let a=e;for(let m in a){if(!D(a,m)||!C.has(m))continue;let p=a[m];if(p===void 0||h(n,r,p))continue;let i=s(p);o??(o={});for(let u of t){let f=m==="initial"?u:`${u}-${m}`;o[f]=i}}}return o??{}}function y(...t){let e;for(let n of t)n&&(e===void 0&&(e={}),Object.assign(e,n));return e}function te(t,e){let n=t.initial,r=!1;return e.hasDefault&&n===void 0&&(n=e.default,r=!0),e.enumValueSet!==void 0&&!e.enumValueSet.has(n)&&(n=e.default,r=!0),r?{...t,initial:n}:t}function ne(t,...e){let{styling:n,passthrough:r,stylingKeys:s}=M(e),o={};for(let p in t)s.has(p)||(o[p]=t[p]);for(let p=0;p<r.length;p++){let i=r[p],u=o[i.key];if(u===void 0){i.hasDefault&&(o[i.key]=i.default);continue}i.enumValueSet!==void 0&&!i.enumValueSet.has(u)&&!c(u)&&(o[i.key]=i.default)}let a,m=[];for(let p=0;p<n.length;p++){let i=n[p],u=t[i.key];if(u===void 0&&i.hasDefault&&(u=i.default),i.enumValueSet!==void 0&&!i.enumValueSet.has(u)&&!c(u)&&(u=i.default),!!u){if(c(u)){if(!i.responsive)continue;u=te(u,i)}if(i.type==="enum"){let f=v({allowArbitraryValues:!1,value:u,className:i.className,propValues:i.values,propValueSet:i.valueSet,parseValue:i.parseValue});f&&m.push(f);continue}if(i.type==="string"||i.type==="enum | string"){let[f,V]=P({className:i.className,customProperties:i.customProperties,propValues:i.type==="string"?[]:i.values,propValueSet:i.type==="string"?void 0:i.valueSet,parseValue:i.parseValue,value:u});V&&(a=y(a,V)),f&&m.push(f);continue}if(i.type==="boolean"){m.push(i.className);continue}}}return o.className=(0,w.default)(m.length>0?m.join(" "):void 0,t.className),o.style=y(a,t.style),o}var d={sans:"--font-sans",mono:"--font-mono",serif:"--font-serif"},l={body:"--font-body",heading:"--font-heading",code:"--font-code",strong:"--font-strong",em:"--font-em",quote:"--font-quote"},re={system:"-apple-system, BlinkMacSystemFont, 'Segoe UI (Custom)', Roboto, 'Helvetica Neue', system-ui, sans-serif",inter:"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI (Custom)', Roboto, system-ui, sans-serif",poppins:"'Poppins', -apple-system, BlinkMacSystemFont, system-ui, sans-serif",openSans:"'Open Sans (Custom)', -apple-system, BlinkMacSystemFont, system-ui, sans-serif",systemMono:"'Menlo', 'Consolas (Custom)', 'Bitstream Vera Sans Mono', monospace",jetbrainsMono:"'JetBrains Mono', 'Menlo', 'Consolas (Custom)', monospace",firaCode:"'Fira Code', 'Menlo', 'Consolas (Custom)', monospace",sourceCodePro:"'Source Code Pro', 'Menlo', 'Consolas (Custom)', monospace",systemSerif:"'Times New Roman', 'Times', 'Georgia', 'Cambria', serif",playfair:"'Playfair Display', 'Times New Roman', 'Georgia', serif",georgia:"'Georgia', 'Times New Roman', 'Times', serif",lora:"'Lora', 'Georgia', 'Times New Roman', serif"};function F(t,e,n){for(let r of Object.keys(e)){let s=n[r];s&&t.style.setProperty(e[r],s)}}function z(t,e){for(let n of Object.values(e))t.style.removeProperty(n)}function se(t,{root:e=document.documentElement,themeElement:n=document.querySelector(".radix-themes")}={}){t.stacks&&F(e,d,t.stacks),t.roles&&n&&F(n,l,t.roles)}function oe(t){let e=[],n=Object.entries(t.stacks??{}).filter(([,s])=>s);n.length&&e.push([":root {",...n.map(([s,o])=>` ${d[s]}: ${o};`),"}"].join(`
2
+ `));let r=Object.entries(t.roles??{}).filter(([,s])=>s);return r.length&&e.push([".radix-themes {",...r.map(([s,o])=>` ${l[s]}: ${o};`),"}"].join(`
3
3
  `)),e.join(`
4
4
 
5
- `)}function ne({root:t=document.documentElement,themeElement:e=document.querySelector(".radix-themes")}={}){O(t,d),e&&O(e,l)}function se({themeElement:t=document.querySelector(".radix-themes")}={}){let e=getComputedStyle(t??document.documentElement),n=r=>e.getPropertyValue(r).trim()||void 0;return{stacks:{sans:n(d.sans),mono:n(d.mono),serif:n(d.serif)},roles:{body:n(l.body),heading:n(l.heading),code:n(l.code),strong:n(l.strong),em:n(l.em),quote:n(l.quote)}}}var g=["0","1","2","3","4","5","6","7","8","9","10","11","12","-1","-2","-3","-4","-5","-6","-7","-8","-9","-10","-11","-12"],w={m:{type:"enum | string",values:g,responsive:!0,className:"rt-r-m",customProperties:["--m"]},mx:{type:"enum | string",values:g,responsive:!0,className:"rt-r-mx",customProperties:["--ml","--mr"]},my:{type:"enum | string",values:g,responsive:!0,className:"rt-r-my",customProperties:["--mt","--mb"]},mt:{type:"enum | string",values:g,responsive:!0,className:"rt-r-mt",customProperties:["--mt"]},mr:{type:"enum | string",values:g,responsive:!0,className:"rt-r-mr",customProperties:["--mr"]},mb:{type:"enum | string",values:g,responsive:!0,className:"rt-r-mb",customProperties:["--mb"]},ml:{type:"enum | string",values:g,responsive:!0,className:"rt-r-ml",customProperties:["--ml"]}};var $=w.m.values,re=new Set($),F=[{key:"m",className:"rt-r-m",customProperties:["--margin"]},{key:"mx",className:"rt-r-mx",customProperties:["--margin-left","--margin-right"]},{key:"my",className:"rt-r-my",customProperties:["--margin-top","--margin-bottom"]},{key:"mt",className:"rt-r-mt",customProperties:["--margin-top"]},{key:"mr",className:"rt-r-mr",customProperties:["--margin-right"]},{key:"mb",className:"rt-r-mb",customProperties:["--margin-bottom"]},{key:"ml",className:"rt-r-ml",customProperties:["--margin-left"]}];function oe(t){let e,n;for(let r=0;r<F.length;r++){let{key:s,className:i,customProperties:a}=F[r],m=t[s];if(m===void 0)continue;let[p,o]=P({className:i,customProperties:a,propValues:$,propValueSet:re,value:m});p&&(e??(e=[])).push(p),o&&(n=y(n,o))}return[e!==void 0?e.join(" "):"",n]}function ie(t){switch(t){case"tomato":case"red":case"ruby":case"crimson":case"pink":case"plum":case"purple":case"violet":return"mauve";case"iris":case"indigo":case"blue":case"sky":case"cyan":return"slate";case"teal":case"jade":case"mint":case"green":return"sage";case"grass":case"lime":return"olive";case"yellow":case"amber":case"orange":case"brown":case"gold":case"bronze":return"sand";case"gray":return"gray"}}var v=x(require("react"));function ae(t,e){let{asChild:n,children:r}=t;if(!n)return typeof e=="function"?e(r):e;let s=v.Children.only(r);return v.cloneElement(s,{children:typeof e=="function"?e(s.props.children):e})}function pe(t,e){if(t!==void 0)return typeof t=="string"?e(t):Object.fromEntries(Object.entries(t).map(([n,r])=>[n,e(r)]))}function me(t){switch(t){case"1":return"1";case"2":case"3":return"2";case"4":return"3"}}function ue(t,e="horizontal"){if(t==null)return;if(typeof t=="number"&&Number.isFinite(t))return t;let n=String(t).trim();if(!n)return;if(n.endsWith("px"))return Number.parseFloat(n);if(n.endsWith("rem")){let s=Number.parseFloat(getComputedStyle(document.documentElement).fontSize||"16")||16;return Number.parseFloat(n)*s}if(n.endsWith("%")){let s=Number.parseFloat(n),i=e==="horizontal"?document.documentElement.clientWidth||window.innerWidth||0:document.documentElement.clientHeight||window.innerHeight||0;return s/100*i}let r=Number.parseFloat(n);return Number.isFinite(r)?r:void 0}var h=x(require("react")),le=t=>{if(!h.isValidElement(t))throw Error(`Expected a single React Element child, but got: ${h.Children.toArray(t).map(n=>typeof n=="object"&&"type"in n&&typeof n.type=="string"?n.type:typeof n).join(", ")}`);return t};
5
+ `)}function ie({root:t=document.documentElement,themeElement:e=document.querySelector(".radix-themes")}={}){z(t,d),e&&z(e,l)}function ae({themeElement:t=document.querySelector(".radix-themes")}={}){let e=getComputedStyle(t??document.documentElement),n=r=>e.getPropertyValue(r).trim()||void 0;return{stacks:{sans:n(d.sans),mono:n(d.mono),serif:n(d.serif)},roles:{body:n(l.body),heading:n(l.heading),code:n(l.code),strong:n(l.strong),em:n(l.em),quote:n(l.quote)}}}var g=["0","1","2","3","4","5","6","7","8","9","10","11","12","-1","-2","-3","-4","-5","-6","-7","-8","-9","-10","-11","-12"],$={m:{type:"enum | string",values:g,responsive:!0,className:"rt-r-m",customProperties:["--m"]},mx:{type:"enum | string",values:g,responsive:!0,className:"rt-r-mx",customProperties:["--ml","--mr"]},my:{type:"enum | string",values:g,responsive:!0,className:"rt-r-my",customProperties:["--mt","--mb"]},mt:{type:"enum | string",values:g,responsive:!0,className:"rt-r-mt",customProperties:["--mt"]},mr:{type:"enum | string",values:g,responsive:!0,className:"rt-r-mr",customProperties:["--mr"]},mb:{type:"enum | string",values:g,responsive:!0,className:"rt-r-mb",customProperties:["--mb"]},ml:{type:"enum | string",values:g,responsive:!0,className:"rt-r-ml",customProperties:["--ml"]}};var G=$.m.values,pe=new Set(G),A=[{key:"m",className:"rt-r-m",customProperties:["--margin"]},{key:"mx",className:"rt-r-mx",customProperties:["--margin-left","--margin-right"]},{key:"my",className:"rt-r-my",customProperties:["--margin-top","--margin-bottom"]},{key:"mt",className:"rt-r-mt",customProperties:["--margin-top"]},{key:"mr",className:"rt-r-mr",customProperties:["--margin-right"]},{key:"mb",className:"rt-r-mb",customProperties:["--margin-bottom"]},{key:"ml",className:"rt-r-ml",customProperties:["--margin-left"]}];function me(t){let e,n;for(let r=0;r<A.length;r++){let{key:s,className:o,customProperties:a}=A[r],m=t[s];if(m===void 0)continue;let[p,i]=P({className:o,customProperties:a,propValues:G,propValueSet:pe,value:m});p&&(e??(e=[])).push(p),i&&(n=y(n,i))}return[e!==void 0?e.join(" "):"",n]}function ue(t){switch(t){case"tomato":case"red":case"ruby":case"crimson":case"pink":case"plum":case"purple":case"violet":return"mauve";case"iris":case"indigo":case"blue":case"sky":case"cyan":return"slate";case"teal":case"jade":case"mint":case"green":return"sage";case"grass":case"lime":return"olive";case"yellow":case"amber":case"orange":case"brown":case"gold":case"bronze":return"sand";case"gray":return"gray"}}var x=b(require("react"));function le(t,e){let{asChild:n,children:r}=t;if(!n)return typeof e=="function"?e(r):e;let s=x.Children.only(r);return x.cloneElement(s,{children:typeof e=="function"?e(s.props.children):e})}function fe(t,e){if(t!==void 0)return typeof t=="string"?e(t):Object.fromEntries(Object.entries(t).map(([n,r])=>[n,e(r)]))}function ce(t,e="horizontal"){if(t==null)return;if(typeof t=="number"&&Number.isFinite(t))return t;let n=String(t).trim();if(!n)return;if(n.endsWith("px"))return Number.parseFloat(n);if(n.endsWith("rem")){let s=Number.parseFloat(getComputedStyle(document.documentElement).fontSize||"16")||16;return Number.parseFloat(n)*s}if(n.endsWith("%")){let s=Number.parseFloat(n),o=e==="horizontal"?document.documentElement.clientWidth||window.innerWidth||0:document.documentElement.clientHeight||window.innerHeight||0;return s/100*o}let r=Number.parseFloat(n);return Number.isFinite(r)?r:void 0}var T=b(require("react")),de=t=>{if(!T.isValidElement(t))throw Error(`Expected a single React Element child, but got: ${T.Children.toArray(t).map(n=>typeof n=="object"&&"type"in n&&typeof n.type=="string"?n.type:typeof n).join(", ")}`);return t};var R=b(require("react")),B="2",N=R.createContext(B);N.displayName="ThemeSizeContext";function k(t,e){if(e.includes(t))return t;let n=Number(t),r=e[0],s=1/0;for(let o=0;o<e.length;o++){let a=Math.abs(Number(e[o])-n);a<s&&(s=a,r=e[o])}return r}function ge(t,e){let n=R.useContext(N);return t!==void 0?t:k(n,e.values)}function ye(t,e){let n=R.useContext(N);if(t.size!==void 0)return t;let r=k(n,e.values);return r===e.default?t:{...t,size:r}}
6
6
  //# sourceMappingURL=index.js.map