@vaneui/ui 1.4.2-alpha.20260930164814.ca070f5 → 1.4.2

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 (335) hide show
  1. package/CHANGELOG.md +0 -91
  2. package/dist/cjs/components/ui/alert/AlertCategories.cjs +0 -1
  3. package/dist/cjs/components/ui/alert/AlertCategories.cjs.map +1 -1
  4. package/dist/cjs/components/ui/alert/alertDefaults.cjs +1 -2
  5. package/dist/cjs/components/ui/alert/alertDefaults.cjs.map +1 -1
  6. package/dist/cjs/components/ui/alert/defaultAlertTheme.cjs +1 -3
  7. package/dist/cjs/components/ui/alert/defaultAlertTheme.cjs.map +1 -1
  8. package/dist/cjs/components/ui/button/Button.cjs +1 -1
  9. package/dist/cjs/components/ui/button/Button.cjs.map +1 -1
  10. package/dist/cjs/components/ui/card/Card.cjs +2 -14
  11. package/dist/cjs/components/ui/card/Card.cjs.map +1 -1
  12. package/dist/cjs/components/ui/card/defaultCardTheme.cjs +1 -6
  13. package/dist/cjs/components/ui/card/defaultCardTheme.cjs.map +1 -1
  14. package/dist/cjs/components/ui/checkbox/Checkbox.cjs +2 -9
  15. package/dist/cjs/components/ui/checkbox/Checkbox.cjs.map +1 -1
  16. package/dist/cjs/components/ui/checkbox/CheckboxCategories.cjs +1 -2
  17. package/dist/cjs/components/ui/checkbox/CheckboxCategories.cjs.map +1 -1
  18. package/dist/cjs/components/ui/checkbox/defaultCheckboxWrapperTheme.cjs +0 -3
  19. package/dist/cjs/components/ui/checkbox/defaultCheckboxWrapperTheme.cjs.map +1 -1
  20. package/dist/cjs/components/ui/chip/Chip.cjs +1 -2
  21. package/dist/cjs/components/ui/chip/Chip.cjs.map +1 -1
  22. package/dist/cjs/components/ui/classes/appearanceClasses.cjs +0 -2
  23. package/dist/cjs/components/ui/classes/appearanceClasses.cjs.map +1 -1
  24. package/dist/cjs/components/ui/field/Field.cjs +3 -42
  25. package/dist/cjs/components/ui/field/Field.cjs.map +1 -1
  26. package/dist/cjs/components/ui/field/FieldContext.cjs +1 -4
  27. package/dist/cjs/components/ui/field/FieldContext.cjs.map +1 -1
  28. package/dist/cjs/components/ui/iconButton/IconButton.cjs +1 -1
  29. package/dist/cjs/components/ui/iconButton/IconButton.cjs.map +1 -1
  30. package/dist/cjs/components/ui/input/defaultInputTheme.cjs +1 -1
  31. package/dist/cjs/components/ui/input/defaultInputTheme.cjs.map +1 -1
  32. package/dist/cjs/components/ui/label/defaultLabelTheme.cjs +1 -1
  33. package/dist/cjs/components/ui/label/defaultLabelTheme.cjs.map +1 -1
  34. package/dist/cjs/components/ui/menu/Menu.cjs +8 -18
  35. package/dist/cjs/components/ui/menu/Menu.cjs.map +1 -1
  36. package/dist/cjs/components/ui/menu/MenuContext.cjs.map +1 -1
  37. package/dist/cjs/components/ui/menu/MenuItem.cjs +9 -2
  38. package/dist/cjs/components/ui/menu/MenuItem.cjs.map +1 -1
  39. package/dist/cjs/components/ui/menu/menuPopupDefaults.cjs +0 -1
  40. package/dist/cjs/components/ui/menu/menuPopupDefaults.cjs.map +1 -1
  41. package/dist/cjs/components/ui/modal/Modal.cjs +2 -3
  42. package/dist/cjs/components/ui/modal/Modal.cjs.map +1 -1
  43. package/dist/cjs/components/ui/modal/modalCloseButtonDefaults.cjs +0 -3
  44. package/dist/cjs/components/ui/modal/modalCloseButtonDefaults.cjs.map +1 -1
  45. package/dist/cjs/components/ui/navLink/NavLinkLabelCategories.cjs +1 -1
  46. package/dist/cjs/components/ui/navLink/NavLinkLabelCategories.cjs.map +1 -1
  47. package/dist/cjs/components/ui/navLink/defaultNavLinkLabelTheme.cjs +1 -3
  48. package/dist/cjs/components/ui/navLink/defaultNavLinkLabelTheme.cjs.map +1 -1
  49. package/dist/cjs/components/ui/navLink/navLinkLabelDefaults.cjs +1 -3
  50. package/dist/cjs/components/ui/navLink/navLinkLabelDefaults.cjs.map +1 -1
  51. package/dist/cjs/components/ui/popup/Popup.cjs +9 -9
  52. package/dist/cjs/components/ui/popup/Popup.cjs.map +1 -1
  53. package/dist/cjs/components/ui/popup/popupDefaults.cjs +0 -1
  54. package/dist/cjs/components/ui/popup/popupDefaults.cjs.map +1 -1
  55. package/dist/cjs/components/ui/props/categoryBuilders.cjs +0 -2
  56. package/dist/cjs/components/ui/props/categoryBuilders.cjs.map +1 -1
  57. package/dist/cjs/components/ui/radio/Radio.cjs +3 -4
  58. package/dist/cjs/components/ui/radio/Radio.cjs.map +1 -1
  59. package/dist/cjs/components/ui/radio/RadioGroup.cjs +2 -3
  60. package/dist/cjs/components/ui/radio/RadioGroup.cjs.map +1 -1
  61. package/dist/cjs/components/ui/radio/RadioGroupContext.cjs.map +1 -1
  62. package/dist/cjs/components/ui/radio/defaultRadioTheme.cjs +2 -1
  63. package/dist/cjs/components/ui/radio/defaultRadioTheme.cjs.map +1 -1
  64. package/dist/cjs/components/ui/radio/defaultRadioWrapperTheme.cjs +0 -3
  65. package/dist/cjs/components/ui/radio/defaultRadioWrapperTheme.cjs.map +1 -1
  66. package/dist/cjs/components/ui/select/Select.cjs +1 -15
  67. package/dist/cjs/components/ui/select/Select.cjs.map +1 -1
  68. package/dist/cjs/components/ui/select/SelectWrapperCategories.cjs +1 -1
  69. package/dist/cjs/components/ui/select/SelectWrapperCategories.cjs.map +1 -1
  70. package/dist/cjs/components/ui/select/defaultSelectTheme.cjs +1 -1
  71. package/dist/cjs/components/ui/select/defaultSelectTheme.cjs.map +1 -1
  72. package/dist/cjs/components/ui/select/defaultSelectWrapperTheme.cjs +1 -3
  73. package/dist/cjs/components/ui/select/defaultSelectWrapperTheme.cjs.map +1 -1
  74. package/dist/cjs/components/ui/switch/Switch.cjs +3 -12
  75. package/dist/cjs/components/ui/switch/Switch.cjs.map +1 -1
  76. package/dist/cjs/components/ui/switch/defaultSwitchWrapperTheme.cjs +0 -3
  77. package/dist/cjs/components/ui/switch/defaultSwitchWrapperTheme.cjs.map +1 -1
  78. package/dist/cjs/components/ui/table/TableCategories.cjs +0 -1
  79. package/dist/cjs/components/ui/table/TableCategories.cjs.map +1 -1
  80. package/dist/cjs/components/ui/table/defaultTableTheme.cjs +1 -3
  81. package/dist/cjs/components/ui/table/defaultTableTheme.cjs.map +1 -1
  82. package/dist/cjs/components/ui/table/tableDefaults.cjs +1 -2
  83. package/dist/cjs/components/ui/table/tableDefaults.cjs.map +1 -1
  84. package/dist/cjs/components/ui/textarea/defaultTextareaTheme.cjs +1 -1
  85. package/dist/cjs/components/ui/textarea/defaultTextareaTheme.cjs.map +1 -1
  86. package/dist/cjs/components/ui/theme/appearance/disabledClassMapper.cjs +1 -8
  87. package/dist/cjs/components/ui/theme/appearance/disabledClassMapper.cjs.map +1 -1
  88. package/dist/cjs/components/ui/theme/appearance/disabledOpacityClassMapper.cjs +1 -1
  89. package/dist/cjs/components/ui/theme/appearance/disabledOpacityClassMapper.cjs.map +1 -1
  90. package/dist/cjs/components/ui/theme/appearance/readOnlyClassMapper.cjs.map +1 -1
  91. package/dist/cjs/components/ui/theme/appearance/statusClassMapper.cjs +2 -2
  92. package/dist/cjs/components/ui/theme/appearance/statusClassMapper.cjs.map +1 -1
  93. package/dist/cjs/components/ui/theme/common/ComponentTheme.cjs +2 -3
  94. package/dist/cjs/components/ui/theme/common/ComponentTheme.cjs.map +1 -1
  95. package/dist/cjs/components/ui/theme/common/appearanceClassMappers.cjs +0 -2
  96. package/dist/cjs/components/ui/theme/common/appearanceClassMappers.cjs.map +1 -1
  97. package/dist/cjs/components/ui/theme/defaults.cjs +5 -21
  98. package/dist/cjs/components/ui/theme/defaults.cjs.map +1 -1
  99. package/dist/cjs/components/ui/theme/layout/transitionClassMapper.cjs +2 -2
  100. package/dist/cjs/components/ui/theme/layout/transitionClassMapper.cjs.map +1 -1
  101. package/dist/cjs/components/ui/tooltip/tooltipDefaults.cjs +0 -1
  102. package/dist/cjs/components/ui/tooltip/tooltipDefaults.cjs.map +1 -1
  103. package/dist/cjs/components/ui/typography/index.cjs +0 -1
  104. package/dist/cjs/components/ui/typography/index.cjs.map +1 -1
  105. package/dist/cjs/components/ui/typography/link/Link.cjs +1 -4
  106. package/dist/cjs/components/ui/typography/link/Link.cjs.map +1 -1
  107. package/dist/cjs/components/ui/typography/link/LinkCategories.cjs +1 -1
  108. package/dist/cjs/components/ui/typography/link/LinkCategories.cjs.map +1 -1
  109. package/dist/cjs/components/ui/typography/link/defaultLinkTheme.cjs +2 -8
  110. package/dist/cjs/components/ui/typography/link/defaultLinkTheme.cjs.map +1 -1
  111. package/dist/cjs/components/ui/typography/listItem/ListItem.cjs +2 -0
  112. package/dist/cjs/components/ui/typography/listItem/ListItem.cjs.map +1 -1
  113. package/dist/cjs/index.cjs +20 -26
  114. package/dist/cjs/index.cjs.map +1 -1
  115. package/dist/esm/components/ui/alert/AlertCategories.mjs +1 -2
  116. package/dist/esm/components/ui/alert/AlertCategories.mjs.map +1 -1
  117. package/dist/esm/components/ui/alert/alertDefaults.mjs +1 -2
  118. package/dist/esm/components/ui/alert/alertDefaults.mjs.map +1 -1
  119. package/dist/esm/components/ui/alert/defaultAlertTheme.mjs +1 -3
  120. package/dist/esm/components/ui/alert/defaultAlertTheme.mjs.map +1 -1
  121. package/dist/esm/components/ui/button/Button.mjs +1 -1
  122. package/dist/esm/components/ui/button/Button.mjs.map +1 -1
  123. package/dist/esm/components/ui/card/Card.mjs +3 -15
  124. package/dist/esm/components/ui/card/Card.mjs.map +1 -1
  125. package/dist/esm/components/ui/card/defaultCardTheme.mjs +1 -6
  126. package/dist/esm/components/ui/card/defaultCardTheme.mjs.map +1 -1
  127. package/dist/esm/components/ui/checkbox/Checkbox.mjs +3 -10
  128. package/dist/esm/components/ui/checkbox/Checkbox.mjs.map +1 -1
  129. package/dist/esm/components/ui/checkbox/CheckboxCategories.mjs +2 -3
  130. package/dist/esm/components/ui/checkbox/CheckboxCategories.mjs.map +1 -1
  131. package/dist/esm/components/ui/checkbox/defaultCheckboxWrapperTheme.mjs +0 -3
  132. package/dist/esm/components/ui/checkbox/defaultCheckboxWrapperTheme.mjs.map +1 -1
  133. package/dist/esm/components/ui/chip/Chip.mjs +1 -2
  134. package/dist/esm/components/ui/chip/Chip.mjs.map +1 -1
  135. package/dist/esm/components/ui/classes/appearanceClasses.mjs +1 -2
  136. package/dist/esm/components/ui/classes/appearanceClasses.mjs.map +1 -1
  137. package/dist/esm/components/ui/field/Field.mjs +3 -42
  138. package/dist/esm/components/ui/field/Field.mjs.map +1 -1
  139. package/dist/esm/components/ui/field/FieldContext.mjs +1 -4
  140. package/dist/esm/components/ui/field/FieldContext.mjs.map +1 -1
  141. package/dist/esm/components/ui/iconButton/IconButton.mjs +1 -1
  142. package/dist/esm/components/ui/iconButton/IconButton.mjs.map +1 -1
  143. package/dist/esm/components/ui/input/defaultInputTheme.mjs +2 -2
  144. package/dist/esm/components/ui/input/defaultInputTheme.mjs.map +1 -1
  145. package/dist/esm/components/ui/label/defaultLabelTheme.mjs +1 -1
  146. package/dist/esm/components/ui/label/defaultLabelTheme.mjs.map +1 -1
  147. package/dist/esm/components/ui/menu/Menu.mjs +8 -18
  148. package/dist/esm/components/ui/menu/Menu.mjs.map +1 -1
  149. package/dist/esm/components/ui/menu/MenuContext.mjs.map +1 -1
  150. package/dist/esm/components/ui/menu/MenuItem.mjs +9 -2
  151. package/dist/esm/components/ui/menu/MenuItem.mjs.map +1 -1
  152. package/dist/esm/components/ui/menu/menuPopupDefaults.mjs +0 -1
  153. package/dist/esm/components/ui/menu/menuPopupDefaults.mjs.map +1 -1
  154. package/dist/esm/components/ui/modal/Modal.mjs +2 -3
  155. package/dist/esm/components/ui/modal/Modal.mjs.map +1 -1
  156. package/dist/esm/components/ui/modal/modalCloseButtonDefaults.mjs +0 -3
  157. package/dist/esm/components/ui/modal/modalCloseButtonDefaults.mjs.map +1 -1
  158. package/dist/esm/components/ui/navLink/NavLinkLabelCategories.mjs +1 -1
  159. package/dist/esm/components/ui/navLink/NavLinkLabelCategories.mjs.map +1 -1
  160. package/dist/esm/components/ui/navLink/defaultNavLinkLabelTheme.mjs +1 -3
  161. package/dist/esm/components/ui/navLink/defaultNavLinkLabelTheme.mjs.map +1 -1
  162. package/dist/esm/components/ui/navLink/navLinkLabelDefaults.mjs +1 -3
  163. package/dist/esm/components/ui/navLink/navLinkLabelDefaults.mjs.map +1 -1
  164. package/dist/esm/components/ui/popup/Popup.mjs +9 -9
  165. package/dist/esm/components/ui/popup/Popup.mjs.map +1 -1
  166. package/dist/esm/components/ui/popup/popupDefaults.mjs +0 -1
  167. package/dist/esm/components/ui/popup/popupDefaults.mjs.map +1 -1
  168. package/dist/esm/components/ui/props/categoryBuilders.mjs +1 -2
  169. package/dist/esm/components/ui/props/categoryBuilders.mjs.map +1 -1
  170. package/dist/esm/components/ui/radio/Radio.mjs +3 -4
  171. package/dist/esm/components/ui/radio/Radio.mjs.map +1 -1
  172. package/dist/esm/components/ui/radio/RadioGroup.mjs +3 -4
  173. package/dist/esm/components/ui/radio/RadioGroup.mjs.map +1 -1
  174. package/dist/esm/components/ui/radio/RadioGroupContext.mjs.map +1 -1
  175. package/dist/esm/components/ui/radio/defaultRadioTheme.mjs +3 -2
  176. package/dist/esm/components/ui/radio/defaultRadioTheme.mjs.map +1 -1
  177. package/dist/esm/components/ui/radio/defaultRadioWrapperTheme.mjs +0 -3
  178. package/dist/esm/components/ui/radio/defaultRadioWrapperTheme.mjs.map +1 -1
  179. package/dist/esm/components/ui/select/Select.mjs +2 -16
  180. package/dist/esm/components/ui/select/Select.mjs.map +1 -1
  181. package/dist/esm/components/ui/select/SelectWrapperCategories.mjs +1 -1
  182. package/dist/esm/components/ui/select/SelectWrapperCategories.mjs.map +1 -1
  183. package/dist/esm/components/ui/select/defaultSelectTheme.mjs +2 -2
  184. package/dist/esm/components/ui/select/defaultSelectTheme.mjs.map +1 -1
  185. package/dist/esm/components/ui/select/defaultSelectWrapperTheme.mjs +1 -3
  186. package/dist/esm/components/ui/select/defaultSelectWrapperTheme.mjs.map +1 -1
  187. package/dist/esm/components/ui/switch/Switch.mjs +3 -12
  188. package/dist/esm/components/ui/switch/Switch.mjs.map +1 -1
  189. package/dist/esm/components/ui/switch/defaultSwitchWrapperTheme.mjs +0 -3
  190. package/dist/esm/components/ui/switch/defaultSwitchWrapperTheme.mjs.map +1 -1
  191. package/dist/esm/components/ui/table/TableCategories.mjs +1 -2
  192. package/dist/esm/components/ui/table/TableCategories.mjs.map +1 -1
  193. package/dist/esm/components/ui/table/defaultTableTheme.mjs +1 -3
  194. package/dist/esm/components/ui/table/defaultTableTheme.mjs.map +1 -1
  195. package/dist/esm/components/ui/table/tableDefaults.mjs +1 -2
  196. package/dist/esm/components/ui/table/tableDefaults.mjs.map +1 -1
  197. package/dist/esm/components/ui/textarea/defaultTextareaTheme.mjs +2 -2
  198. package/dist/esm/components/ui/textarea/defaultTextareaTheme.mjs.map +1 -1
  199. package/dist/esm/components/ui/theme/appearance/disabledClassMapper.mjs +2 -8
  200. package/dist/esm/components/ui/theme/appearance/disabledClassMapper.mjs.map +1 -1
  201. package/dist/esm/components/ui/theme/appearance/disabledOpacityClassMapper.mjs +1 -1
  202. package/dist/esm/components/ui/theme/appearance/disabledOpacityClassMapper.mjs.map +1 -1
  203. package/dist/esm/components/ui/theme/appearance/readOnlyClassMapper.mjs.map +1 -1
  204. package/dist/esm/components/ui/theme/appearance/statusClassMapper.mjs +2 -2
  205. package/dist/esm/components/ui/theme/appearance/statusClassMapper.mjs.map +1 -1
  206. package/dist/esm/components/ui/theme/common/ComponentTheme.mjs +2 -3
  207. package/dist/esm/components/ui/theme/common/ComponentTheme.mjs.map +1 -1
  208. package/dist/esm/components/ui/theme/common/appearanceClassMappers.mjs +2 -3
  209. package/dist/esm/components/ui/theme/common/appearanceClassMappers.mjs.map +1 -1
  210. package/dist/esm/components/ui/theme/defaults.mjs +5 -21
  211. package/dist/esm/components/ui/theme/defaults.mjs.map +1 -1
  212. package/dist/esm/components/ui/theme/layout/transitionClassMapper.mjs +2 -2
  213. package/dist/esm/components/ui/theme/layout/transitionClassMapper.mjs.map +1 -1
  214. package/dist/esm/components/ui/tooltip/tooltipDefaults.mjs +0 -1
  215. package/dist/esm/components/ui/tooltip/tooltipDefaults.mjs.map +1 -1
  216. package/dist/esm/components/ui/typography/index.mjs +0 -1
  217. package/dist/esm/components/ui/typography/index.mjs.map +1 -1
  218. package/dist/esm/components/ui/typography/link/Link.mjs +1 -4
  219. package/dist/esm/components/ui/typography/link/Link.mjs.map +1 -1
  220. package/dist/esm/components/ui/typography/link/LinkCategories.mjs +1 -1
  221. package/dist/esm/components/ui/typography/link/LinkCategories.mjs.map +1 -1
  222. package/dist/esm/components/ui/typography/link/defaultLinkTheme.mjs +2 -8
  223. package/dist/esm/components/ui/typography/link/defaultLinkTheme.mjs.map +1 -1
  224. package/dist/esm/components/ui/typography/listItem/ListItem.mjs +2 -0
  225. package/dist/esm/components/ui/typography/listItem/ListItem.mjs.map +1 -1
  226. package/dist/esm/index.mjs +10 -16
  227. package/dist/esm/index.mjs.map +1 -1
  228. package/dist/types/components/ui/alert/Alert.d.cts +1 -1
  229. package/dist/types/components/ui/alert/Alert.d.mts +1 -1
  230. package/dist/types/components/ui/alert/Alert.d.ts +1 -1
  231. package/dist/types/components/ui/alert/AlertCategories.d.cts +1 -1
  232. package/dist/types/components/ui/alert/AlertCategories.d.mts +1 -1
  233. package/dist/types/components/ui/alert/AlertCategories.d.ts +1 -1
  234. package/dist/types/components/ui/alert/AlertProps.d.cts +2 -2
  235. package/dist/types/components/ui/alert/AlertProps.d.mts +2 -2
  236. package/dist/types/components/ui/alert/AlertProps.d.ts +2 -2
  237. package/dist/types/components/ui/alert/AlertTheme.d.cts +1 -2
  238. package/dist/types/components/ui/alert/AlertTheme.d.mts +1 -2
  239. package/dist/types/components/ui/alert/AlertTheme.d.ts +1 -2
  240. package/dist/types/components/ui/card/CardTheme.d.cts +0 -1
  241. package/dist/types/components/ui/card/CardTheme.d.mts +0 -1
  242. package/dist/types/components/ui/card/CardTheme.d.ts +0 -1
  243. package/dist/types/components/ui/checkbox/CheckboxCategories.d.cts +1 -1
  244. package/dist/types/components/ui/checkbox/CheckboxCategories.d.mts +1 -1
  245. package/dist/types/components/ui/checkbox/CheckboxCategories.d.ts +1 -1
  246. package/dist/types/components/ui/checkbox/CheckboxWrapperTheme.d.cts +1 -2
  247. package/dist/types/components/ui/checkbox/CheckboxWrapperTheme.d.mts +1 -2
  248. package/dist/types/components/ui/checkbox/CheckboxWrapperTheme.d.ts +1 -2
  249. package/dist/types/components/ui/classes/appearanceClasses.d.cts +0 -2
  250. package/dist/types/components/ui/classes/appearanceClasses.d.mts +0 -2
  251. package/dist/types/components/ui/classes/appearanceClasses.d.ts +0 -2
  252. package/dist/types/components/ui/field/FieldContext.d.cts +0 -7
  253. package/dist/types/components/ui/field/FieldContext.d.mts +0 -7
  254. package/dist/types/components/ui/field/FieldContext.d.ts +0 -7
  255. package/dist/types/components/ui/menu/MenuContext.d.cts +0 -4
  256. package/dist/types/components/ui/menu/MenuContext.d.mts +0 -4
  257. package/dist/types/components/ui/menu/MenuContext.d.ts +0 -4
  258. package/dist/types/components/ui/navLink/NavLinkLabelCategories.d.cts +2 -2
  259. package/dist/types/components/ui/navLink/NavLinkLabelCategories.d.mts +2 -2
  260. package/dist/types/components/ui/navLink/NavLinkLabelCategories.d.ts +2 -2
  261. package/dist/types/components/ui/navLink/NavLinkLabelProps.d.cts +2 -2
  262. package/dist/types/components/ui/navLink/NavLinkLabelProps.d.mts +2 -2
  263. package/dist/types/components/ui/navLink/NavLinkLabelProps.d.ts +2 -2
  264. package/dist/types/components/ui/navLink/NavLinkLabelTheme.d.cts +0 -2
  265. package/dist/types/components/ui/navLink/NavLinkLabelTheme.d.mts +0 -2
  266. package/dist/types/components/ui/navLink/NavLinkLabelTheme.d.ts +0 -2
  267. package/dist/types/components/ui/props/categoryBuilders.d.cts +0 -1
  268. package/dist/types/components/ui/props/categoryBuilders.d.mts +0 -1
  269. package/dist/types/components/ui/props/categoryBuilders.d.ts +0 -1
  270. package/dist/types/components/ui/radio/RadioCategories.d.cts +1 -1
  271. package/dist/types/components/ui/radio/RadioCategories.d.mts +1 -1
  272. package/dist/types/components/ui/radio/RadioCategories.d.ts +1 -1
  273. package/dist/types/components/ui/radio/RadioGroupContext.d.cts +0 -3
  274. package/dist/types/components/ui/radio/RadioGroupContext.d.mts +0 -3
  275. package/dist/types/components/ui/radio/RadioGroupContext.d.ts +0 -3
  276. package/dist/types/components/ui/radio/RadioWrapperTheme.d.cts +1 -2
  277. package/dist/types/components/ui/radio/RadioWrapperTheme.d.mts +1 -2
  278. package/dist/types/components/ui/radio/RadioWrapperTheme.d.ts +1 -2
  279. package/dist/types/components/ui/select/SelectWrapperCategories.d.cts +2 -2
  280. package/dist/types/components/ui/select/SelectWrapperCategories.d.mts +2 -2
  281. package/dist/types/components/ui/select/SelectWrapperCategories.d.ts +2 -2
  282. package/dist/types/components/ui/select/SelectWrapperProps.d.cts +2 -2
  283. package/dist/types/components/ui/select/SelectWrapperProps.d.mts +2 -2
  284. package/dist/types/components/ui/select/SelectWrapperProps.d.ts +2 -2
  285. package/dist/types/components/ui/select/SelectWrapperTheme.d.cts +1 -2
  286. package/dist/types/components/ui/select/SelectWrapperTheme.d.mts +1 -2
  287. package/dist/types/components/ui/select/SelectWrapperTheme.d.ts +1 -2
  288. package/dist/types/components/ui/switch/SwitchCategories.d.cts +1 -1
  289. package/dist/types/components/ui/switch/SwitchCategories.d.mts +1 -1
  290. package/dist/types/components/ui/switch/SwitchCategories.d.ts +1 -1
  291. package/dist/types/components/ui/switch/SwitchWrapperTheme.d.cts +1 -2
  292. package/dist/types/components/ui/switch/SwitchWrapperTheme.d.mts +1 -2
  293. package/dist/types/components/ui/switch/SwitchWrapperTheme.d.ts +1 -2
  294. package/dist/types/components/ui/table/Table.d.cts +1 -1
  295. package/dist/types/components/ui/table/Table.d.mts +1 -1
  296. package/dist/types/components/ui/table/Table.d.ts +1 -1
  297. package/dist/types/components/ui/table/TableCategories.d.cts +1 -1
  298. package/dist/types/components/ui/table/TableCategories.d.mts +1 -1
  299. package/dist/types/components/ui/table/TableCategories.d.ts +1 -1
  300. package/dist/types/components/ui/table/TableProps.d.cts +2 -2
  301. package/dist/types/components/ui/table/TableProps.d.mts +2 -2
  302. package/dist/types/components/ui/table/TableProps.d.ts +2 -2
  303. package/dist/types/components/ui/table/TableTheme.d.cts +1 -2
  304. package/dist/types/components/ui/table/TableTheme.d.mts +1 -2
  305. package/dist/types/components/ui/table/TableTheme.d.ts +1 -2
  306. package/dist/types/components/ui/theme/appearance/disabledClassMapper.d.cts +0 -4
  307. package/dist/types/components/ui/theme/appearance/disabledClassMapper.d.mts +0 -4
  308. package/dist/types/components/ui/theme/appearance/disabledClassMapper.d.ts +0 -4
  309. package/dist/types/components/ui/theme/appearance/index.d.cts +1 -1
  310. package/dist/types/components/ui/theme/appearance/index.d.mts +1 -1
  311. package/dist/types/components/ui/theme/appearance/index.d.ts +1 -1
  312. package/dist/types/components/ui/theme/appearance/readOnlyClassMapper.d.cts +1 -1
  313. package/dist/types/components/ui/theme/appearance/readOnlyClassMapper.d.mts +1 -1
  314. package/dist/types/components/ui/theme/appearance/readOnlyClassMapper.d.ts +1 -1
  315. package/dist/types/components/ui/theme/appearance/statusClassMapper.d.cts +1 -1
  316. package/dist/types/components/ui/theme/appearance/statusClassMapper.d.mts +1 -1
  317. package/dist/types/components/ui/theme/appearance/statusClassMapper.d.ts +1 -1
  318. package/dist/types/components/ui/theme/common/appearanceClassMappers.d.cts +0 -2
  319. package/dist/types/components/ui/theme/common/appearanceClassMappers.d.mts +0 -2
  320. package/dist/types/components/ui/theme/common/appearanceClassMappers.d.ts +0 -2
  321. package/dist/types/components/ui/theme/common/index.d.cts +1 -1
  322. package/dist/types/components/ui/theme/common/index.d.mts +1 -1
  323. package/dist/types/components/ui/theme/common/index.d.ts +1 -1
  324. package/dist/types/components/ui/theme/layout/transitionClassMapper.d.cts +1 -1
  325. package/dist/types/components/ui/theme/layout/transitionClassMapper.d.mts +1 -1
  326. package/dist/types/components/ui/theme/layout/transitionClassMapper.d.ts +1 -1
  327. package/dist/types/components/ui/typography/link/LinkCategories.d.cts +3 -3
  328. package/dist/types/components/ui/typography/link/LinkCategories.d.mts +3 -3
  329. package/dist/types/components/ui/typography/link/LinkCategories.d.ts +3 -3
  330. package/dist/types/components/ui/typography/link/LinkTheme.d.cts +0 -4
  331. package/dist/types/components/ui/typography/link/LinkTheme.d.mts +0 -4
  332. package/dist/types/components/ui/typography/link/LinkTheme.d.ts +0 -4
  333. package/dist/ui.css +1 -1
  334. package/dist/vars.css +1 -1
  335. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.mjs","sources":["../../../../../src/components/ui/iconButton/IconButton.tsx"],"sourcesContent":["import { forwardRef, useEffect } from 'react';\nimport type { IconButtonProps } from \"./IconButtonProps\";\nimport { useTheme } from \"../../themeContext\";\nimport { ThemedComponent } from \"../../themedComponent\";\nimport { resolveDisabledLink } from \"../../utils/disabledLink\";\nimport { pickFirstTruthyKeyByCategory } from \"../../utils/componentUtils\";\n// file path, not the barrel: the barrel would pull the whole ui index into this module\nimport { Spinner } from \"../spinner/Spinner\";\nimport { defaultIconButtonTheme } from \"./defaultIconButtonTheme\";\nimport { defaultButtonSpinnerTheme } from \"../button/defaultButtonSpinnerTheme\";\n\n/** Icon-only square button. Pass aria-label/aria-labelledby/title for an accessible name (dev warns if none). */\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n function IconButton(props, ref) {\n const { loading, ...rest } = props;\n const theme = useTheme();\n const iconButtonTheme = theme?.iconButton ?? defaultIconButtonTheme;\n // IconButton shares Button's spinner sub-theme by design\n const spinnerTheme = theme?.button.spinner ?? defaultButtonSpinnerTheme;\n\n // dev-only: an icon-only button without aria-label/aria-labelledby/title\n // has no accessible name, so screen readers announce nothing\n const hasAccessibleName = Boolean(rest['aria-label'] || rest['aria-labelledby'] || rest.title);\n useEffect(() => {\n if (process.env.NODE_ENV !== 'production' && !hasAccessibleName) {\n console.warn(\n 'VaneUI: IconButton has no accessible name — pass aria-label, aria-labelledby, or title so screen readers can announce it.'\n );\n }\n }, [hasAccessibleName]);\n\n const isDisabled = rest.disabled || loading;\n const resolvedProps = resolveDisabledLink(rest, !!isDisabled);\n\n if (loading) {\n const loadingProps = { ...resolvedProps, disabled: true as const, 'data-loading': 'true', 'aria-busy': true as const };\n // the Spinner would otherwise fall back to its own md default\n const size = pickFirstTruthyKeyByCategory(\n resolvedProps as unknown as Record<string, unknown>,\n iconButtonTheme.defaults as unknown as Record<string, unknown>,\n 'size'\n );\n return (\n <ThemedComponent ref={ref} theme={iconButtonTheme} {...loadingProps}>\n {/* decorative spinner — aria-busy on the button already conveys the loading state */}\n <ThemedComponent theme={spinnerTheme} aria-hidden=\"true\">\n <Spinner role={undefined} {...(size ? { [size]: true } : {})} />\n </ThemedComponent>\n {/* transparent, not hidden: the children keep the button's size and accessible name while loading */}\n <span className=\"vane-button-loading-label\">{resolvedProps.children}</span>\n </ThemedComponent>\n );\n }\n\n return <ThemedComponent ref={ref} theme={iconButtonTheme} {...resolvedProps} />;\n }\n);\n\nIconButton.displayName = 'IconButton';\n"],"names":["IconButton"],"mappings":"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"}
1
+ {"version":3,"file":"IconButton.mjs","sources":["../../../../../src/components/ui/iconButton/IconButton.tsx"],"sourcesContent":["import { forwardRef, useEffect } from 'react';\nimport type { IconButtonProps } from \"./IconButtonProps\";\nimport { useTheme } from \"../../themeContext\";\nimport { ThemedComponent } from \"../../themedComponent\";\nimport { resolveDisabledLink } from \"../../utils/disabledLink\";\nimport { pickFirstTruthyKeyByCategory } from \"../../utils/componentUtils\";\n// file path, not the barrel: the barrel would pull the whole ui index into this module\nimport { Spinner } from \"../spinner/Spinner\";\nimport { defaultIconButtonTheme } from \"./defaultIconButtonTheme\";\nimport { defaultButtonSpinnerTheme } from \"../button/defaultButtonSpinnerTheme\";\n\n/** Icon-only square button. Pass aria-label/aria-labelledby/title for an accessible name (dev warns if none). */\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n function IconButton(props, ref) {\n const { loading, ...rest } = props;\n const theme = useTheme();\n const iconButtonTheme = theme?.iconButton ?? defaultIconButtonTheme;\n // IconButton shares Button's spinner sub-theme by design\n const spinnerTheme = theme?.button.spinner ?? defaultButtonSpinnerTheme;\n\n // dev-only: an icon-only button without aria-label/aria-labelledby/title\n // has no accessible name, so screen readers announce nothing\n const hasAccessibleName = Boolean(rest['aria-label'] || rest['aria-labelledby'] || rest.title);\n useEffect(() => {\n if (process.env.NODE_ENV !== 'production' && !hasAccessibleName) {\n console.warn(\n 'VaneUI: IconButton has no accessible name — pass aria-label, aria-labelledby, or title so screen readers can announce it.'\n );\n }\n }, [hasAccessibleName]);\n\n const isDisabled = rest.disabled || loading;\n const resolvedProps = resolveDisabledLink(rest, !!isDisabled);\n\n if (loading) {\n const loadingProps = { ...resolvedProps, disabled: true as const, 'data-loading': 'true', 'aria-busy': true as const };\n // the Spinner would otherwise fall back to its own md default\n const size = pickFirstTruthyKeyByCategory(\n resolvedProps as unknown as Record<string, unknown>,\n iconButtonTheme.defaults as unknown as Record<string, unknown>,\n 'size'\n );\n return (\n <ThemedComponent ref={ref} theme={iconButtonTheme} {...loadingProps}>\n {/* decorative spinner — aria-busy on the button already conveys the loading state */}\n <ThemedComponent theme={spinnerTheme} aria-hidden=\"true\">\n <Spinner role={undefined} {...(size ? { [size]: true } : {})} />\n </ThemedComponent>\n {/* opacity-0 (not invisible) — keeps the children in the accessibility\n tree so the button retains its accessible name while loading */}\n <span className=\"opacity-0\">{resolvedProps.children}</span>\n </ThemedComponent>\n );\n }\n\n return <ThemedComponent ref={ref} theme={iconButtonTheme} {...resolvedProps} />;\n }\n);\n\nIconButton.displayName = 'IconButton';\n"],"names":["IconButton"],"mappings":"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"}
@@ -5,7 +5,7 @@ import '../theme/common/typographyClassMappers.mjs';
5
5
  import { bgHoverAppearance } from '../theme/common/appearanceClassMappers.mjs';
6
6
  import '../theme/appearance/shadowAppearanceClassMapper.mjs';
7
7
  import { StatusClassMapper } from '../theme/appearance/statusClassMapper.mjs';
8
- import { DisabledVisualClassMapper } from '../theme/appearance/disabledClassMapper.mjs';
8
+ import { DisabledClassMapper } from '../theme/appearance/disabledClassMapper.mjs';
9
9
  import { ReadOnlyClassMapper } from '../theme/appearance/readOnlyClassMapper.mjs';
10
10
  import { INPUT_CATEGORIES } from './InputCategories.mjs';
11
11
  import { inputDefaults } from './inputDefaults.mjs';
@@ -19,7 +19,7 @@ const defaultInputTheme = new ComponentTheme(
19
19
  ...interactiveClassMappers.appearance,
20
20
  background: bgHoverAppearance,
21
21
  status: new StatusClassMapper(),
22
- disabled: new DisabledVisualClassMapper(),
22
+ disabled: new DisabledClassMapper(),
23
23
  readOnly: new ReadOnlyClassMapper()
24
24
  }
25
25
  },
@@ -1 +1 @@
1
- {"version":3,"file":"defaultInputTheme.mjs","sources":["../../../../../src/components/ui/input/defaultInputTheme.ts"],"sourcesContent":["import { ComponentTheme, interactiveClassMappers, bgHoverAppearance } from \"../theme/common\";\nimport type { InputProps } from \"./InputProps\";\nimport { StatusClassMapper, DisabledVisualClassMapper, ReadOnlyClassMapper } from \"../theme/appearance\";\nimport { INPUT_CATEGORIES } from \"./InputCategories\";\nimport type { InputTheme } from \"./InputTheme\";\nimport { inputDefaults } from \"./inputDefaults\";\n\nexport const defaultInputTheme = new ComponentTheme<InputProps, InputTheme>(\n \"input\",\n \"vane-input\",\n {\n ...interactiveClassMappers,\n appearance: {\n ...interactiveClassMappers.appearance,\n background: bgHoverAppearance,\n status: new StatusClassMapper(),\n disabled: new DisabledVisualClassMapper(),\n readOnly: new ReadOnlyClassMapper(),\n },\n },\n inputDefaults,\n INPUT_CATEGORIES,\n () => \"input\",\n 'ui'\n);\n"],"names":[],"mappings":";;;;;;;;;;;;AAOO,MAAM,oBAAoB,IAAI,cAAA;AAAA,EACnC,OAAA;AAAA,EACA,YAAA;AAAA,EACA;AAAA,IACE,GAAG,uBAAA;AAAA,IACH,UAAA,EAAY;AAAA,MACV,GAAG,uBAAA,CAAwB,UAAA;AAAA,MAC3B,UAAA,EAAY,iBAAA;AAAA,MACZ,MAAA,EAAQ,IAAI,iBAAA,EAAkB;AAAA,MAC9B,QAAA,EAAU,IAAI,yBAAA,EAA0B;AAAA,MACxC,QAAA,EAAU,IAAI,mBAAA;AAAoB;AACpC,GACF;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,MAAM,OAAA;AAAA,EACN;AACF;;;;"}
1
+ {"version":3,"file":"defaultInputTheme.mjs","sources":["../../../../../src/components/ui/input/defaultInputTheme.ts"],"sourcesContent":["import { ComponentTheme, interactiveClassMappers, bgHoverAppearance } from \"../theme/common\";\nimport type { InputProps } from \"./InputProps\";\nimport { StatusClassMapper, DisabledClassMapper, ReadOnlyClassMapper } from \"../theme/appearance\";\nimport { INPUT_CATEGORIES } from \"./InputCategories\";\nimport type { InputTheme } from \"./InputTheme\";\nimport { inputDefaults } from \"./inputDefaults\";\n\nexport const defaultInputTheme = new ComponentTheme<InputProps, InputTheme>(\n \"input\",\n \"vane-input\",\n {\n ...interactiveClassMappers,\n appearance: {\n ...interactiveClassMappers.appearance,\n background: bgHoverAppearance,\n status: new StatusClassMapper(),\n disabled: new DisabledClassMapper(),\n readOnly: new ReadOnlyClassMapper(),\n },\n },\n inputDefaults,\n INPUT_CATEGORIES,\n () => \"input\",\n 'ui'\n);\n"],"names":[],"mappings":";;;;;;;;;;;;AAOO,MAAM,oBAAoB,IAAI,cAAA;AAAA,EACnC,OAAA;AAAA,EACA,YAAA;AAAA,EACA;AAAA,IACE,GAAG,uBAAA;AAAA,IACH,UAAA,EAAY;AAAA,MACV,GAAG,uBAAA,CAAwB,UAAA;AAAA,MAC3B,UAAA,EAAY,iBAAA;AAAA,MACZ,MAAA,EAAQ,IAAI,iBAAA,EAAkB;AAAA,MAC9B,QAAA,EAAU,IAAI,mBAAA,EAAoB;AAAA,MAClC,QAAA,EAAU,IAAI,mBAAA;AAAoB;AACpC,GACF;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,MAAM,OAAA;AAAA,EACN;AACF;;;;"}
@@ -21,7 +21,7 @@ import { labelDefaults } from './labelDefaults.mjs';
21
21
  const defaultLabelTheme = new ComponentTheme(
22
22
  "label",
23
23
  // dims for a disabled control too: authors disable the field, not its label
24
- "vane-label has-[input]:cursor-pointer has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-(--disabled-opacity)",
24
+ "vane-label has-[input]:cursor-pointer has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-50",
25
25
  {
26
26
  size: {
27
27
  text: new FontSizeClassMapper(),
@@ -1 +1 @@
1
- {"version":3,"file":"defaultLabelTheme.mjs","sources":["../../../../../src/components/ui/label/defaultLabelTheme.ts"],"sourcesContent":["import { ComponentTheme, defaultSizedLayoutClassMappers, defaultTypographyClassMappers, textAppearance, borderAppearance, ringAppearance, shadowAppearance } from \"../theme/common\";\nimport type { LabelProps } from \"./LabelProps\";\nimport { GapClassMapper, FontSizeClassMapper, LineHeightClassMapper } from \"../theme/size\";\nimport { BorderClassMapper, RingClassMapper, WrapClassMapper, DirectionClassMapper, CursorClassMapper, FlexClassMapper, ShrinkClassMapper } from \"../theme/layout\";\nimport { DisabledOpacityClassMapper } from \"../theme/appearance\";\nimport { LABEL_CATEGORIES } from \"./LabelCategories\";\nimport type { LabelTheme } from \"./LabelTheme\";\nimport { labelDefaults } from \"./labelDefaults\";\n\nexport const defaultLabelTheme = new ComponentTheme<LabelProps, LabelTheme>(\n \"label\",\n // dims for a disabled control too: authors disable the field, not its label\n \"vane-label has-[input]:cursor-pointer has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-(--disabled-opacity)\",\n {\n size: {\n text: new FontSizeClassMapper(),\n lineHeight: new LineHeightClassMapper(),\n gap: new GapClassMapper(),\n },\n // No `background` mapper: Label is a form label, not a filled surface, so\n // an appearance (e.g. `tertiary`) colors the text/border only and never\n // paints a background box. Matches MenuLabel; use Badge/Chip for filled\n // pill-style labels.\n appearance: {\n text: textAppearance,\n border: borderAppearance,\n ring: ringAppearance,\n shadow: shadowAppearance,\n },\n typography: defaultTypographyClassMappers,\n layout: {\n ...defaultSizedLayoutClassMappers,\n border: new BorderClassMapper(),\n ring: new RingClassMapper(),\n wrap: new WrapClassMapper(),\n flexDirection: new DirectionClassMapper(),\n cursor: new CursorClassMapper(),\n flex: new FlexClassMapper(),\n shrink: new ShrinkClassMapper(),\n // opacity only: a Label wraps its control, so pointer-events-none would kill it too\n disabled: new DisabledOpacityClassMapper(),\n },\n },\n labelDefaults,\n LABEL_CATEGORIES,\n undefined,\n 'ui'\n);\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AASO,MAAM,oBAAoB,IAAI,cAAA;AAAA,EACnC,OAAA;AAAA;AAAA,EAEA,uHAAA;AAAA,EACA;AAAA,IACE,IAAA,EAAM;AAAA,MACJ,IAAA,EAAM,IAAI,mBAAA,EAAoB;AAAA,MAC9B,UAAA,EAAY,IAAI,qBAAA,EAAsB;AAAA,MACtC,GAAA,EAAK,IAAI,cAAA;AAAe,KAC1B;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAA,EAAY;AAAA,MACV,IAAA,EAAM,cAAA;AAAA,MACN,MAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAM,cAAA;AAAA,MACN,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,UAAA,EAAY,6BAAA;AAAA,IACZ,MAAA,EAAQ;AAAA,MACN,GAAG,8BAAA;AAAA,MACH,MAAA,EAAQ,IAAI,iBAAA,EAAkB;AAAA,MAC9B,IAAA,EAAM,IAAI,eAAA,EAAgB;AAAA,MAC1B,IAAA,EAAM,IAAI,eAAA,EAAgB;AAAA,MAC1B,aAAA,EAAe,IAAI,oBAAA,EAAqB;AAAA,MACxC,MAAA,EAAQ,IAAI,iBAAA,EAAkB;AAAA,MAC9B,IAAA,EAAM,IAAI,eAAA,EAAgB;AAAA,MAC1B,MAAA,EAAQ,IAAI,iBAAA,EAAkB;AAAA;AAAA,MAE9B,QAAA,EAAU,IAAI,0BAAA;AAA2B;AAC3C,GACF;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF;;;;"}
1
+ {"version":3,"file":"defaultLabelTheme.mjs","sources":["../../../../../src/components/ui/label/defaultLabelTheme.ts"],"sourcesContent":["import { ComponentTheme, defaultSizedLayoutClassMappers, defaultTypographyClassMappers, textAppearance, borderAppearance, ringAppearance, shadowAppearance } from \"../theme/common\";\nimport type { LabelProps } from \"./LabelProps\";\nimport { GapClassMapper, FontSizeClassMapper, LineHeightClassMapper } from \"../theme/size\";\nimport { BorderClassMapper, RingClassMapper, WrapClassMapper, DirectionClassMapper, CursorClassMapper, FlexClassMapper, ShrinkClassMapper } from \"../theme/layout\";\nimport { DisabledOpacityClassMapper } from \"../theme/appearance\";\nimport { LABEL_CATEGORIES } from \"./LabelCategories\";\nimport type { LabelTheme } from \"./LabelTheme\";\nimport { labelDefaults } from \"./labelDefaults\";\n\nexport const defaultLabelTheme = new ComponentTheme<LabelProps, LabelTheme>(\n \"label\",\n // dims for a disabled control too: authors disable the field, not its label\n \"vane-label has-[input]:cursor-pointer has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-50\",\n {\n size: {\n text: new FontSizeClassMapper(),\n lineHeight: new LineHeightClassMapper(),\n gap: new GapClassMapper(),\n },\n // No `background` mapper: Label is a form label, not a filled surface, so\n // an appearance (e.g. `tertiary`) colors the text/border only and never\n // paints a background box. Matches MenuLabel; use Badge/Chip for filled\n // pill-style labels.\n appearance: {\n text: textAppearance,\n border: borderAppearance,\n ring: ringAppearance,\n shadow: shadowAppearance,\n },\n typography: defaultTypographyClassMappers,\n layout: {\n ...defaultSizedLayoutClassMappers,\n border: new BorderClassMapper(),\n ring: new RingClassMapper(),\n wrap: new WrapClassMapper(),\n flexDirection: new DirectionClassMapper(),\n cursor: new CursorClassMapper(),\n flex: new FlexClassMapper(),\n shrink: new ShrinkClassMapper(),\n // opacity only: a Label wraps its control, so pointer-events-none would kill it too\n disabled: new DisabledOpacityClassMapper(),\n },\n },\n labelDefaults,\n LABEL_CATEGORIES,\n undefined,\n 'ui'\n);\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AASO,MAAM,oBAAoB,IAAI,cAAA;AAAA,EACnC,OAAA;AAAA;AAAA,EAEA,qGAAA;AAAA,EACA;AAAA,IACE,IAAA,EAAM;AAAA,MACJ,IAAA,EAAM,IAAI,mBAAA,EAAoB;AAAA,MAC9B,UAAA,EAAY,IAAI,qBAAA,EAAsB;AAAA,MACtC,GAAA,EAAK,IAAI,cAAA;AAAe,KAC1B;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAA,EAAY;AAAA,MACV,IAAA,EAAM,cAAA;AAAA,MACN,MAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAM,cAAA;AAAA,MACN,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,UAAA,EAAY,6BAAA;AAAA,IACZ,MAAA,EAAQ;AAAA,MACN,GAAG,8BAAA;AAAA,MACH,MAAA,EAAQ,IAAI,iBAAA,EAAkB;AAAA,MAC9B,IAAA,EAAM,IAAI,eAAA,EAAgB;AAAA,MAC1B,IAAA,EAAM,IAAI,eAAA,EAAgB;AAAA,MAC1B,aAAA,EAAe,IAAI,oBAAA,EAAqB;AAAA,MACxC,MAAA,EAAQ,IAAI,iBAAA,EAAkB;AAAA,MAC9B,IAAA,EAAM,IAAI,eAAA,EAAgB;AAAA,MAC1B,MAAA,EAAQ,IAAI,iBAAA,EAAkB;AAAA;AAAA,MAE9B,QAAA,EAAU,IAAI,0BAAA;AAA2B;AAC3C,GACF;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF;;;;"}
@@ -63,18 +63,6 @@ function Menu({
63
63
  openMenu();
64
64
  }
65
65
  }, [effectiveOpen, closeMenu, openMenu]);
66
- const openSubmenuCloseRef = useRef(null);
67
- const setOpenSubmenu = useCallback((close) => {
68
- openSubmenuCloseRef.current = close;
69
- }, []);
70
- const closeOpenSubmenu = useCallback(() => {
71
- openSubmenuCloseRef.current?.();
72
- }, []);
73
- useEffect(() => {
74
- if (!isSubmenu || !effectiveOpen) return;
75
- parentCtx?.setOpenSubmenu(closeSelf);
76
- return () => parentCtx?.setOpenSubmenu(null);
77
- }, [isSubmenu, effectiveOpen, parentCtx, closeSelf]);
78
66
  const prevOpenRef = useRef(false);
79
67
  useEffect(() => {
80
68
  if (prevOpenRef.current && !effectiveOpen && anchorRef.current) {
@@ -116,7 +104,7 @@ function Menu({
116
104
  if (e.key === "ArrowRight") {
117
105
  e.preventDefault();
118
106
  openMenu();
119
- } else if (e.key === "ArrowLeft" && effectiveOpen) {
107
+ } else if ((e.key === "ArrowLeft" || e.key === "Escape") && effectiveOpen) {
120
108
  e.preventDefault();
121
109
  closeSelf();
122
110
  }
@@ -129,8 +117,12 @@ function Menu({
129
117
  }
130
118
  openMenu();
131
119
  }
120
+ if (e.key === "Escape" && effectiveOpen) {
121
+ e.preventDefault();
122
+ closeMenu();
123
+ }
132
124
  },
133
- [trigger, openMenu, closeSelf, effectiveOpen, disabled, isSubmenu]
125
+ [trigger, openMenu, closeMenu, closeSelf, effectiveOpen, disabled, isSubmenu]
134
126
  );
135
127
  const handleTriggerMouseEnter = useCallback(() => {
136
128
  if (isSubmenu) openMenu();
@@ -157,10 +149,8 @@ function Menu({
157
149
  closeOnItemClick,
158
150
  loop,
159
151
  isSubmenu,
160
- closeSubmenu: isSubmenu ? closeSelf : void 0,
161
- setOpenSubmenu,
162
- closeOpenSubmenu
163
- }), [closeMenu, closeOnItemClick, loop, isSubmenu, closeSelf, setOpenSubmenu, closeOpenSubmenu]);
152
+ closeSubmenu: isSubmenu ? closeSelf : void 0
153
+ }), [closeMenu, closeOnItemClick, loop, isSubmenu, closeSelf]);
164
154
  const hasExplicitPlacement = ComponentKeys.placement.some(
165
155
  (k) => popupProps[k]
166
156
  );
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.mjs","sources":["../../../../../src/components/ui/menu/Menu.tsx"],"sourcesContent":["import React, { useRef, useState, useCallback, useId, useEffect, useMemo, cloneElement } from 'react';\nimport type { MenuProps } from './MenuProps';\nimport { MenuContext, useMenuContext, type MenuContextValue } from './MenuContext';\nimport { useControllableState } from '../../utils/controllableState';\nimport { Popup } from '../popup/Popup';\nimport { useTheme } from '../../themeContext';\n// Menu renders a nested ThemeProvider to push its sub-theme defaults onto\n// Popup/Divider children — this is a deliberate opt-in to the full theme\n// registry (ThemeProvider imports defaultTheme as its merge base)\nimport { ThemeProvider } from '../../ThemeProvider';\nimport { defaultMenuPopupTheme } from './defaultMenuPopupTheme';\nimport { defaultMenuDividerTheme } from '../divider/defaultMenuDividerTheme';\nimport { ComponentKeys } from '../props';\nimport { composeRefs, getElementRef } from '../../utils/composeRefs';\n\nexport function Menu({\n children,\n trigger,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n onClose: onCloseProp,\n closeOnItemClick = true,\n loop = true,\n disabled = false,\n transitionDuration = 150,\n ...popupProps\n}: MenuProps) {\n const anchorRef = useRef<HTMLElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n // element as state too: an effect keyed on `open` alone never sees a late-mounted content\n const [contentEl, setContentEl] = useState<HTMLDivElement | null>(null);\n const setContentNode = useCallback((node: HTMLDivElement | null) => {\n contentRef.current = node;\n setContentEl(node);\n }, []);\n const menuId = `menu-${useId().replace(/:/g, '-')}`;\n\n const [open, setOpen] = useControllableState({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n hasExternalHandler: !!onCloseProp,\n });\n\n // a Menu rendered inside another Menu's MenuContext is a submenu\n const parentCtx = useMenuContext();\n const isSubmenu = parentCtx !== null;\n\n const effectiveOpen = open && !disabled;\n\n const onCloseRef = useRef(onCloseProp);\n useEffect(() => {\n onCloseRef.current = onCloseProp;\n });\n\n // close only this menu level — used for dismissal (ArrowLeft / click-outside, and\n // Escape through the popup's escape-stack entry, so only the topmost layer closes).\n // In a submenu, focus returns to its trigger via the return-focus effect below.\n const closeSelf = useCallback(() => {\n setOpen(false);\n onCloseRef.current?.();\n }, [setOpen]);\n\n // selecting a leaf item closes this level and, for a submenu, bubbles up so\n // the whole tree closes\n const closeMenu = useCallback(() => {\n closeSelf();\n if (isSubmenu) parentCtx?.closeMenu();\n }, [closeSelf, isSubmenu, parentCtx]);\n\n const openMenu = useCallback(() => {\n if (!disabled) setOpen(true);\n }, [setOpen, disabled]);\n\n const toggleMenu = useCallback(() => {\n if (effectiveOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n }, [effectiveOpen, closeMenu, openMenu]);\n\n // the open child submenu at this level, closed when the pointer moves to a sibling item\n const openSubmenuCloseRef = useRef<(() => void) | null>(null);\n const setOpenSubmenu = useCallback((close: (() => void) | null) => {\n openSubmenuCloseRef.current = close;\n }, []);\n const closeOpenSubmenu = useCallback(() => {\n openSubmenuCloseRef.current?.();\n }, []);\n\n // a submenu registers with its parent while open, so a sibling item can close it\n useEffect(() => {\n if (!isSubmenu || !effectiveOpen) return;\n parentCtx?.setOpenSubmenu(closeSelf);\n return () => parentCtx?.setOpenSubmenu(null);\n }, [isSubmenu, effectiveOpen, parentCtx, closeSelf]);\n\n // return focus to trigger when menu closes\n const prevOpenRef = useRef(false);\n useEffect(() => {\n if (prevOpenRef.current && !effectiveOpen && anchorRef.current) {\n anchorRef.current.focus();\n }\n prevOpenRef.current = effectiveOpen;\n }, [effectiveOpen]);\n\n // ArrowUp on the closed trigger opens with focus on the LAST enabled item\n const focusLastOnOpenRef = useRef(false);\n\n // focus first (or last, when opened via ArrowUp) menu item on open\n useEffect(() => {\n if (!effectiveOpen || !contentEl) return;\n\n const raf = requestAnimationFrame(() => {\n const items = contentEl.querySelectorAll<HTMLElement>(\n '[data-menu-item]:not([data-disabled])'\n );\n if (!items || items.length === 0) return;\n const target = focusLastOnOpenRef.current ? items[items.length - 1] : items[0];\n focusLastOnOpenRef.current = false;\n target.focus();\n });\n\n return () => cancelAnimationFrame(raf);\n }, [effectiveOpen, contentEl]);\n\n const handleClick = useCallback(\n (e: React.MouseEvent) => {\n const original = (trigger as React.ReactElement<Record<string, unknown>>).props?.onClick;\n if (typeof original === 'function') {\n (original as (e: React.MouseEvent) => void)(e);\n }\n toggleMenu();\n },\n [trigger, toggleMenu]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const original = (trigger as React.ReactElement<Record<string, unknown>>).props?.onKeyDown;\n if (typeof original === 'function') {\n (original as (e: React.KeyboardEvent) => void)(e);\n }\n\n if (isSubmenu) {\n // submenu trigger: ArrowRight opens (the open effect focuses the first\n // item), ArrowLeft closes just this submenu. ArrowUp/Down and\n // Enter/Space are left to the trigger MenuItem's own handler (parent\n // navigation + click-to-open).\n if (e.key === 'ArrowRight') {\n e.preventDefault();\n openMenu();\n } else if (e.key === 'ArrowLeft' && effectiveOpen) {\n e.preventDefault();\n closeSelf();\n }\n return;\n }\n\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault();\n if (!disabled && !effectiveOpen) {\n focusLastOnOpenRef.current = e.key === 'ArrowUp';\n }\n openMenu();\n }\n },\n [trigger, openMenu, closeSelf, effectiveOpen, disabled, isSubmenu]\n );\n\n // hover opens a submenu (mouse parity with the keyboard ArrowRight)\n const handleTriggerMouseEnter = useCallback(() => {\n if (isSubmenu) openMenu();\n }, [isSubmenu, openMenu]);\n\n // compose with the trigger's own ref — cloneElement would silently\n // replace a ref the consumer attached to their trigger element\n const triggerElement = cloneElement(trigger, {\n ref: composeRefs(getElementRef(trigger), anchorRef),\n 'aria-haspopup': 'menu',\n 'aria-expanded': effectiveOpen,\n 'aria-controls': effectiveOpen ? menuId : undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n ...(isSubmenu\n ? {\n // the submenu trigger is itself an item of the parent menu, so\n // activating it must NOT close the parent; hovering it opens the submenu\n closeMenuOnClick: false,\n onMouseEnter: handleTriggerMouseEnter,\n }\n : {}),\n } as Record<string, unknown>);\n\n const theme = useTheme();\n const menuPopupTheme = theme?.menu.popup ?? defaultMenuPopupTheme;\n const menuDividerTheme = theme?.menu.divider ?? defaultMenuDividerTheme;\n\n // memoized so MenuItems don't re-render on every Menu render\n const ctx: MenuContextValue = useMemo(() => ({\n closeMenu,\n closeOnItemClick,\n loop,\n isSubmenu,\n closeSubmenu: isSubmenu ? closeSelf : undefined,\n setOpenSubmenu,\n closeOpenSubmenu,\n }), [closeMenu, closeOnItemClick, loop, isSubmenu, closeSelf, setOpenSubmenu, closeOpenSubmenu]);\n\n // a submenu defaults to opening on the inline-end side (flips if no room)\n const hasExplicitPlacement = ComponentKeys.placement.some(\n (k) => (popupProps as Record<string, unknown>)[k]\n );\n const submenuPlacementProps = isSubmenu && !hasExplicitPlacement ? { placeRightStart: true } : {};\n\n // explicit size on Menu propagates to MenuItem / MenuLabel / Divider; no explicit size keeps each sub-component's default\n const explicitSize = ComponentKeys.size.find(\n (k) => (popupProps as Record<string, unknown>)[k]\n );\n\n // memoized so the nested ThemeProvider's memo stays valid across\n // re-renders (open/close toggles) — an inline literal here would re-clone\n // the theme tree on every Menu render\n const childThemeDefaults = useMemo(() => {\n const childSizeDefaults = explicitSize ? { [explicitSize]: true } : undefined;\n return {\n popup: menuPopupTheme.defaults,\n divider: childSizeDefaults\n ? { ...menuDividerTheme.defaults, ...childSizeDefaults }\n : menuDividerTheme.defaults,\n ...(childSizeDefaults && {\n menu: {\n item: childSizeDefaults,\n label: childSizeDefaults,\n },\n }),\n };\n }, [menuPopupTheme, menuDividerTheme, explicitSize]);\n\n return (\n <MenuContext.Provider value={ctx}>\n {triggerElement}\n <ThemeProvider themeDefaults={childThemeDefaults}>\n <Popup\n ref={setContentNode}\n open={effectiveOpen}\n onClose={closeSelf}\n anchorRef={anchorRef}\n id={menuId}\n role=\"menu\"\n aria-orientation=\"vertical\"\n data-menu-dropdown=\"\"\n transitionDuration={transitionDuration}\n {...submenuPlacementProps}\n {...popupProps}\n >\n {children}\n </Popup>\n </ThemeProvider>\n </MenuContext.Provider>\n );\n}\n\nMenu.displayName = 'Menu';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Menu.mjs","sources":["../../../../../src/components/ui/menu/Menu.tsx"],"sourcesContent":["import React, { useRef, useState, useCallback, useId, useEffect, useMemo, cloneElement } from 'react';\nimport type { MenuProps } from './MenuProps';\nimport { MenuContext, useMenuContext, type MenuContextValue } from './MenuContext';\nimport { useControllableState } from '../../utils/controllableState';\nimport { Popup } from '../popup/Popup';\nimport { useTheme } from '../../themeContext';\n// Menu renders a nested ThemeProvider to push its sub-theme defaults onto\n// Popup/Divider children — this is a deliberate opt-in to the full theme\n// registry (ThemeProvider imports defaultTheme as its merge base)\nimport { ThemeProvider } from '../../ThemeProvider';\nimport { defaultMenuPopupTheme } from './defaultMenuPopupTheme';\nimport { defaultMenuDividerTheme } from '../divider/defaultMenuDividerTheme';\nimport { ComponentKeys } from '../props';\nimport { composeRefs, getElementRef } from '../../utils/composeRefs';\n\nexport function Menu({\n children,\n trigger,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n onClose: onCloseProp,\n closeOnItemClick = true,\n loop = true,\n disabled = false,\n transitionDuration = 150,\n ...popupProps\n}: MenuProps) {\n const anchorRef = useRef<HTMLElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n // element as state too: an effect keyed on `open` alone never sees a late-mounted content\n const [contentEl, setContentEl] = useState<HTMLDivElement | null>(null);\n const setContentNode = useCallback((node: HTMLDivElement | null) => {\n contentRef.current = node;\n setContentEl(node);\n }, []);\n const menuId = `menu-${useId().replace(/:/g, '-')}`;\n\n const [open, setOpen] = useControllableState({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n hasExternalHandler: !!onCloseProp,\n });\n\n // a Menu rendered inside another Menu's MenuContext is a submenu\n const parentCtx = useMenuContext();\n const isSubmenu = parentCtx !== null;\n\n const effectiveOpen = open && !disabled;\n\n const onCloseRef = useRef(onCloseProp);\n useEffect(() => {\n onCloseRef.current = onCloseProp;\n });\n\n // close only this menu level — used for dismissal (Escape / ArrowLeft /\n // click-outside). In a submenu, focus returns to its trigger via the\n // return-focus effect below.\n const closeSelf = useCallback(() => {\n setOpen(false);\n onCloseRef.current?.();\n }, [setOpen]);\n\n // selecting a leaf item closes this level and, for a submenu, bubbles up so\n // the whole tree closes\n const closeMenu = useCallback(() => {\n closeSelf();\n if (isSubmenu) parentCtx?.closeMenu();\n }, [closeSelf, isSubmenu, parentCtx]);\n\n const openMenu = useCallback(() => {\n if (!disabled) setOpen(true);\n }, [setOpen, disabled]);\n\n const toggleMenu = useCallback(() => {\n if (effectiveOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n }, [effectiveOpen, closeMenu, openMenu]);\n\n // return focus to trigger when menu closes\n const prevOpenRef = useRef(false);\n useEffect(() => {\n if (prevOpenRef.current && !effectiveOpen && anchorRef.current) {\n anchorRef.current.focus();\n }\n prevOpenRef.current = effectiveOpen;\n }, [effectiveOpen]);\n\n // ArrowUp on the closed trigger opens with focus on the LAST enabled item\n const focusLastOnOpenRef = useRef(false);\n\n // focus first (or last, when opened via ArrowUp) menu item on open\n useEffect(() => {\n if (!effectiveOpen || !contentEl) return;\n\n const raf = requestAnimationFrame(() => {\n const items = contentEl.querySelectorAll<HTMLElement>(\n '[data-menu-item]:not([data-disabled])'\n );\n if (!items || items.length === 0) return;\n const target = focusLastOnOpenRef.current ? items[items.length - 1] : items[0];\n focusLastOnOpenRef.current = false;\n target.focus();\n });\n\n return () => cancelAnimationFrame(raf);\n }, [effectiveOpen, contentEl]);\n\n const handleClick = useCallback(\n (e: React.MouseEvent) => {\n const original = (trigger as React.ReactElement<Record<string, unknown>>).props?.onClick;\n if (typeof original === 'function') {\n (original as (e: React.MouseEvent) => void)(e);\n }\n toggleMenu();\n },\n [trigger, toggleMenu]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const original = (trigger as React.ReactElement<Record<string, unknown>>).props?.onKeyDown;\n if (typeof original === 'function') {\n (original as (e: React.KeyboardEvent) => void)(e);\n }\n\n if (isSubmenu) {\n // submenu trigger: ArrowRight opens (the open effect focuses the first\n // item), ArrowLeft / Escape close just this submenu. ArrowUp/Down and\n // Enter/Space are left to the trigger MenuItem's own handler (parent\n // navigation + click-to-open).\n if (e.key === 'ArrowRight') {\n e.preventDefault();\n openMenu();\n } else if ((e.key === 'ArrowLeft' || e.key === 'Escape') && effectiveOpen) {\n e.preventDefault();\n closeSelf();\n }\n return;\n }\n\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault();\n if (!disabled && !effectiveOpen) {\n focusLastOnOpenRef.current = e.key === 'ArrowUp';\n }\n openMenu();\n }\n\n if (e.key === 'Escape' && effectiveOpen) {\n e.preventDefault();\n closeMenu();\n }\n },\n [trigger, openMenu, closeMenu, closeSelf, effectiveOpen, disabled, isSubmenu]\n );\n\n // hover opens a submenu (mouse parity with the keyboard ArrowRight)\n const handleTriggerMouseEnter = useCallback(() => {\n if (isSubmenu) openMenu();\n }, [isSubmenu, openMenu]);\n\n // compose with the trigger's own ref — cloneElement would silently\n // replace a ref the consumer attached to their trigger element\n const triggerElement = cloneElement(trigger, {\n ref: composeRefs(getElementRef(trigger), anchorRef),\n 'aria-haspopup': 'menu',\n 'aria-expanded': effectiveOpen,\n 'aria-controls': effectiveOpen ? menuId : undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n ...(isSubmenu\n ? {\n // the submenu trigger is itself an item of the parent menu, so\n // activating it must NOT close the parent; hovering it opens the submenu\n closeMenuOnClick: false,\n onMouseEnter: handleTriggerMouseEnter,\n }\n : {}),\n } as Record<string, unknown>);\n\n const theme = useTheme();\n const menuPopupTheme = theme?.menu.popup ?? defaultMenuPopupTheme;\n const menuDividerTheme = theme?.menu.divider ?? defaultMenuDividerTheme;\n\n // memoized so MenuItems don't re-render on every Menu render\n const ctx: MenuContextValue = useMemo(() => ({\n closeMenu,\n closeOnItemClick,\n loop,\n isSubmenu,\n closeSubmenu: isSubmenu ? closeSelf : undefined,\n }), [closeMenu, closeOnItemClick, loop, isSubmenu, closeSelf]);\n\n // a submenu defaults to opening on the inline-end side (flips if no room)\n const hasExplicitPlacement = ComponentKeys.placement.some(\n (k) => (popupProps as Record<string, unknown>)[k]\n );\n const submenuPlacementProps = isSubmenu && !hasExplicitPlacement ? { placeRightStart: true } : {};\n\n // explicit size on Menu propagates to MenuItem / MenuLabel / Divider; no explicit size keeps each sub-component's default\n const explicitSize = ComponentKeys.size.find(\n (k) => (popupProps as Record<string, unknown>)[k]\n );\n\n // memoized so the nested ThemeProvider's memo stays valid across\n // re-renders (open/close toggles) — an inline literal here would re-clone\n // the theme tree on every Menu render\n const childThemeDefaults = useMemo(() => {\n const childSizeDefaults = explicitSize ? { [explicitSize]: true } : undefined;\n return {\n popup: menuPopupTheme.defaults,\n divider: childSizeDefaults\n ? { ...menuDividerTheme.defaults, ...childSizeDefaults }\n : menuDividerTheme.defaults,\n ...(childSizeDefaults && {\n menu: {\n item: childSizeDefaults,\n label: childSizeDefaults,\n },\n }),\n };\n }, [menuPopupTheme, menuDividerTheme, explicitSize]);\n\n return (\n <MenuContext.Provider value={ctx}>\n {triggerElement}\n <ThemeProvider themeDefaults={childThemeDefaults}>\n <Popup\n ref={setContentNode}\n open={effectiveOpen}\n onClose={closeSelf}\n anchorRef={anchorRef}\n id={menuId}\n role=\"menu\"\n aria-orientation=\"vertical\"\n data-menu-dropdown=\"\"\n transitionDuration={transitionDuration}\n {...submenuPlacementProps}\n {...popupProps}\n >\n {children}\n </Popup>\n </ThemeProvider>\n </MenuContext.Provider>\n );\n}\n\nMenu.displayName = 'Menu';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuContext.mjs","sources":["../../../../../src/components/ui/menu/MenuContext.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport interface MenuContextValue {\n /** Close this menu; in a submenu this bubbles to the root so selecting a leaf closes the whole tree. */\n closeMenu: () => void;\n closeOnItemClick: boolean;\n loop: boolean;\n /** True when this menu is nested inside another menu (a submenu). */\n isSubmenu: boolean;\n /** Submenu only: close just this submenu and return focus to its trigger (ArrowLeft / Escape). */\n closeSubmenu?: () => void;\n /** A submenu registers its close while open (null on close), so moving to a sibling item can close it. */\n setOpenSubmenu: (close: (() => void) | null) => void;\n /** Close whichever child submenu is open, if any. */\n closeOpenSubmenu: () => void;\n}\n\nexport const MenuContext = createContext<MenuContextValue | null>(null);\n\nexport function useMenuContext() {\n return useContext(MenuContext);\n}\n"],"names":[],"mappings":";;;AAiBO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAuC,CAAA,CAAA,CAAA,CAAI,CAAA;AAE/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,cAAA,CAAA,CAAA,CAAiB;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA;AAC/B;;"}
1
+ {"version":3,"file":"MenuContext.mjs","sources":["../../../../../src/components/ui/menu/MenuContext.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport interface MenuContextValue {\n /** Close this menu; in a submenu this bubbles to the root so selecting a leaf closes the whole tree. */\n closeMenu: () => void;\n closeOnItemClick: boolean;\n loop: boolean;\n /** True when this menu is nested inside another menu (a submenu). */\n isSubmenu: boolean;\n /** Submenu only: close just this submenu and return focus to its trigger (ArrowLeft / Escape). */\n closeSubmenu?: () => void;\n}\n\nexport const MenuContext = createContext<MenuContextValue | null>(null);\n\nexport function useMenuContext() {\n return useContext(MenuContext);\n}\n"],"names":[],"mappings":";;;AAaO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAuC,CAAA,CAAA,CAAA,CAAI,CAAA;AAE/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,cAAA,CAAA,CAAA,CAAiB;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA;AAC/B;;"}
@@ -48,6 +48,14 @@ const MenuItem = forwardRef(
48
48
  event.preventDefault();
49
49
  ctx.closeSubmenu();
50
50
  }
51
+ if (event.key === "Escape") {
52
+ event.preventDefault();
53
+ if (ctx?.isSubmenu && ctx.closeSubmenu) {
54
+ ctx.closeSubmenu();
55
+ } else {
56
+ ctx?.closeMenu();
57
+ }
58
+ }
51
59
  if (event.key === "Tab") {
52
60
  ctx?.closeMenu();
53
61
  }
@@ -68,13 +76,12 @@ const MenuItem = forwardRef(
68
76
  if (!disabled) {
69
77
  e.currentTarget.focus();
70
78
  }
71
- ctx?.closeOpenSubmenu();
72
79
  const origMouseEnter = rest.onMouseEnter;
73
80
  if (typeof origMouseEnter === "function") {
74
81
  origMouseEnter(e);
75
82
  }
76
83
  },
77
- [disabled, rest.onMouseEnter, ctx]
84
+ [disabled, rest.onMouseEnter]
78
85
  );
79
86
  const mergedProps = {
80
87
  ...rest,
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.mjs","sources":["../../../../../src/components/ui/menu/MenuItem.tsx"],"sourcesContent":["import { forwardRef, useCallback, useMemo } from 'react';\nimport type { MenuItemProps } from './MenuItemProps';\nimport { useTheme } from '../../themeContext';\nimport { ThemedComponent } from '../../themedComponent';\nimport { useMenuContext } from './MenuContext';\nimport { createScopedKeydownHandler } from '../../utils/scopedKeydownHandler';\nimport { defaultMenuItemTheme } from './defaultMenuItemTheme';\n\nexport const MenuItem = forwardRef<HTMLElement, MenuItemProps>(\n function MenuItem(props, ref) {\n const { closeMenuOnClick, ...rest } = props;\n const theme = useTheme();\n const ctx = useMenuContext();\n\n const shouldClose = closeMenuOnClick ?? ctx?.closeOnItemClick ?? true;\n const loop = ctx?.loop ?? true;\n const disabled = props.disabled;\n\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n if (disabled) return;\n const origClick = rest.onClick;\n if (typeof origClick === 'function') {\n (origClick as (e: React.MouseEvent<HTMLButtonElement>) => void)(e as React.MouseEvent<HTMLButtonElement>);\n }\n if (shouldClose) {\n ctx?.closeMenu();\n }\n },\n [disabled, rest.onClick, shouldClose, ctx]\n );\n\n const handleKeyDown = useMemo(() => createScopedKeydownHandler({\n parentSelector: '[data-menu-dropdown]',\n siblingSelector: '[data-menu-item]:not([data-disabled])',\n loop,\n orientation: 'vertical',\n onKeyDown: (event) => {\n const origKeyDown = rest.onKeyDown;\n if (typeof origKeyDown === 'function') {\n (origKeyDown as (e: React.KeyboardEvent<HTMLButtonElement>) => void)(event as React.KeyboardEvent<HTMLButtonElement>);\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (!disabled) {\n event.currentTarget.click();\n }\n }\n\n // ArrowLeft inside a submenu closes just that submenu and returns\n // focus to its trigger (APG submenu pattern); a no-op in a root menu.\n if (event.key === 'ArrowLeft' && ctx?.isSubmenu && ctx.closeSubmenu) {\n event.preventDefault();\n ctx.closeSubmenu();\n }\n\n if (event.key === 'Tab') {\n ctx?.closeMenu();\n }\n },\n }), [loop, rest.onKeyDown, disabled, ctx]);\n\n // prevent mousedown from stealing focus — items manage focus via keyboard\n const handleMouseDown = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n const origMouseDown = rest.onMouseDown;\n if (typeof origMouseDown === 'function') {\n (origMouseDown as (e: React.MouseEvent<HTMLButtonElement>) => void)(e as React.MouseEvent<HTMLButtonElement>);\n }\n },\n [rest.onMouseDown]\n );\n\n const handleMouseEnter = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n if (!disabled) {\n e.currentTarget.focus();\n }\n // a submenu left open by a sibling closes; a submenu trigger reopens its own below\n ctx?.closeOpenSubmenu();\n // forward to a composed handler (e.g. a submenu trigger opening on hover)\n const origMouseEnter = rest.onMouseEnter;\n if (typeof origMouseEnter === 'function') {\n (origMouseEnter as (e: React.MouseEvent<HTMLButtonElement>) => void)(e as React.MouseEvent<HTMLButtonElement>);\n }\n },\n [disabled, rest.onMouseEnter, ctx]\n );\n\n const mergedProps = {\n ...rest,\n role: 'menuitem' as const,\n tabIndex: -1,\n 'data-menu-item': '',\n 'aria-disabled': disabled || undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n onMouseDown: handleMouseDown,\n onMouseEnter: handleMouseEnter,\n };\n\n return (\n <ThemedComponent\n ref={ref}\n theme={theme?.menu.item ?? defaultMenuItemTheme}\n {...mergedProps}\n />\n );\n }\n);\n\nMenuItem.displayName = 'MenuItem';\n"],"names":["MenuItem"],"mappings":"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"}
1
+ {"version":3,"file":"MenuItem.mjs","sources":["../../../../../src/components/ui/menu/MenuItem.tsx"],"sourcesContent":["import { forwardRef, useCallback, useMemo } from 'react';\nimport type { MenuItemProps } from './MenuItemProps';\nimport { useTheme } from '../../themeContext';\nimport { ThemedComponent } from '../../themedComponent';\nimport { useMenuContext } from './MenuContext';\nimport { createScopedKeydownHandler } from '../../utils/scopedKeydownHandler';\nimport { defaultMenuItemTheme } from './defaultMenuItemTheme';\n\nexport const MenuItem = forwardRef<HTMLElement, MenuItemProps>(\n function MenuItem(props, ref) {\n const { closeMenuOnClick, ...rest } = props;\n const theme = useTheme();\n const ctx = useMenuContext();\n\n const shouldClose = closeMenuOnClick ?? ctx?.closeOnItemClick ?? true;\n const loop = ctx?.loop ?? true;\n const disabled = props.disabled;\n\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n if (disabled) return;\n const origClick = rest.onClick;\n if (typeof origClick === 'function') {\n (origClick as (e: React.MouseEvent<HTMLButtonElement>) => void)(e as React.MouseEvent<HTMLButtonElement>);\n }\n if (shouldClose) {\n ctx?.closeMenu();\n }\n },\n [disabled, rest.onClick, shouldClose, ctx]\n );\n\n const handleKeyDown = useMemo(() => createScopedKeydownHandler({\n parentSelector: '[data-menu-dropdown]',\n siblingSelector: '[data-menu-item]:not([data-disabled])',\n loop,\n orientation: 'vertical',\n onKeyDown: (event) => {\n const origKeyDown = rest.onKeyDown;\n if (typeof origKeyDown === 'function') {\n (origKeyDown as (e: React.KeyboardEvent<HTMLButtonElement>) => void)(event as React.KeyboardEvent<HTMLButtonElement>);\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (!disabled) {\n event.currentTarget.click();\n }\n }\n\n // ArrowLeft inside a submenu closes just that submenu and returns\n // focus to its trigger (APG submenu pattern); a no-op in a root menu.\n if (event.key === 'ArrowLeft' && ctx?.isSubmenu && ctx.closeSubmenu) {\n event.preventDefault();\n ctx.closeSubmenu();\n }\n\n if (event.key === 'Escape') {\n event.preventDefault();\n // in a submenu, close only this level; in a root menu, close it\n if (ctx?.isSubmenu && ctx.closeSubmenu) {\n ctx.closeSubmenu();\n } else {\n ctx?.closeMenu();\n }\n }\n\n if (event.key === 'Tab') {\n ctx?.closeMenu();\n }\n },\n }), [loop, rest.onKeyDown, disabled, ctx]);\n\n // prevent mousedown from stealing focus — items manage focus via keyboard\n const handleMouseDown = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n const origMouseDown = rest.onMouseDown;\n if (typeof origMouseDown === 'function') {\n (origMouseDown as (e: React.MouseEvent<HTMLButtonElement>) => void)(e as React.MouseEvent<HTMLButtonElement>);\n }\n },\n [rest.onMouseDown]\n );\n\n const handleMouseEnter = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n if (!disabled) {\n e.currentTarget.focus();\n }\n // forward to a composed handler (e.g. a submenu trigger opening on hover)\n const origMouseEnter = rest.onMouseEnter;\n if (typeof origMouseEnter === 'function') {\n (origMouseEnter as (e: React.MouseEvent<HTMLButtonElement>) => void)(e as React.MouseEvent<HTMLButtonElement>);\n }\n },\n [disabled, rest.onMouseEnter]\n );\n\n const mergedProps = {\n ...rest,\n role: 'menuitem' as const,\n tabIndex: -1,\n 'data-menu-item': '',\n 'aria-disabled': disabled || undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n onMouseDown: handleMouseDown,\n onMouseEnter: handleMouseEnter,\n };\n\n return (\n <ThemedComponent\n ref={ref}\n theme={theme?.menu.item ?? defaultMenuItemTheme}\n {...mergedProps}\n />\n );\n }\n);\n\nMenuItem.displayName = 'MenuItem';\n"],"names":["MenuItem"],"mappings":"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"}
@@ -11,7 +11,6 @@ const menuPopupDefaults = {
11
11
  primary: true,
12
12
  outline: true,
13
13
  wFit: true,
14
- fontSans: true,
15
14
  constrainWidth: true,
16
15
  placeBottomStart: true
17
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"menuPopupDefaults.mjs","sources":["../../../../../src/components/ui/menu/menuPopupDefaults.ts"],"sourcesContent":["import type { PopupProps } from \"../popup/PopupProps\";\n\n/** Default props for MenuPopup (popup container used inside menus) */\nexport const menuPopupDefaults: Partial<PopupProps> = {\n md: true,\n fixed: true,\n flex: true,\n column: true,\n noGap: true,\n rounded: true,\n shadow: true,\n border: true,\n noInsetRing: true,\n primary: true,\n outline: true,\n wFit: true,\n fontSans: true,\n constrainWidth: true,\n placeBottomStart: true,\n};\n"],"names":[],"mappings":"AAGO,MAAM,iBAAA,GAAyC;AAAA,EACpD,EAAA,EAAI,IAAA;AAAA,EACJ,KAAA,EAAO,IAAA;AAAA,EACP,IAAA,EAAM,IAAA;AAAA,EACN,MAAA,EAAQ,IAAA;AAAA,EACR,KAAA,EAAO,IAAA;AAAA,EACP,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,MAAA,EAAQ,IAAA;AAAA,EACR,WAAA,EAAa,IAAA;AAAA,EACb,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,IAAA,EAAM,IAAA;AAAA,EACN,QAAA,EAAU,IAAA;AAAA,EACV,cAAA,EAAgB,IAAA;AAAA,EAChB,gBAAA,EAAkB;AACpB;;;;"}
1
+ {"version":3,"file":"menuPopupDefaults.mjs","sources":["../../../../../src/components/ui/menu/menuPopupDefaults.ts"],"sourcesContent":["import type { PopupProps } from \"../popup/PopupProps\";\n\n/** Default props for MenuPopup (popup container used inside menus) */\nexport const menuPopupDefaults: Partial<PopupProps> = {\n md: true,\n fixed: true,\n flex: true,\n column: true,\n noGap: true,\n rounded: true,\n shadow: true,\n border: true,\n noInsetRing: true,\n primary: true,\n outline: true,\n wFit: true,\n constrainWidth: true,\n placeBottomStart: true,\n};\n"],"names":[],"mappings":"AAGO,MAAM,iBAAA,GAAyC;AAAA,EACpD,EAAA,EAAI,IAAA;AAAA,EACJ,KAAA,EAAO,IAAA;AAAA,EACP,IAAA,EAAM,IAAA;AAAA,EACN,MAAA,EAAQ,IAAA;AAAA,EACR,KAAA,EAAO,IAAA;AAAA,EACP,OAAA,EAAS,IAAA;AAAA,EACT,MAAA,EAAQ,IAAA;AAAA,EACR,MAAA,EAAQ,IAAA;AAAA,EACR,WAAA,EAAa,IAAA;AAAA,EACb,OAAA,EAAS,IAAA;AAAA,EACT,OAAA,EAAS,IAAA;AAAA,EACT,IAAA,EAAM,IAAA;AAAA,EACN,cAAA,EAAgB,IAAA;AAAA,EAChB,gBAAA,EAAkB;AACpB;;;;"}
@@ -23,7 +23,6 @@ import { ModalBody } from './ModalBody.mjs';
23
23
  import { ModalFooter } from './ModalFooter.mjs';
24
24
  import { ModalCloseButton } from './ModalCloseButton.mjs';
25
25
  import { Row } from '../row/Row.mjs';
26
- import { Title } from '../typography/title/Title.mjs';
27
26
  import { getModalPart } from './modalParts.mjs';
28
27
 
29
28
  const containsModalSection = (nodes) => React.Children.toArray(nodes).some((child) => {
@@ -97,8 +96,8 @@ const Modal = forwardRef(
97
96
  () => ({ returnFocus, initialFocus }),
98
97
  [returnFocus, initialFocus]
99
98
  );
100
- useInertBackground(effectiveOpen, overlayRef);
101
99
  useFocusTrap(contentRef, effectiveOpen && focusTrap, focusTrapOptions);
100
+ useInertBackground(effectiveOpen, overlayRef);
102
101
  useEffect(() => {
103
102
  if (!effectiveOpen) return;
104
103
  const el = overlayRef.current;
@@ -181,7 +180,7 @@ const Modal = forwardRef(
181
180
  },
182
181
  children: /* @__PURE__ */ jsx(ModalContext.Provider, { value: contextValue, children: isCompoundMode ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
183
182
  title !== void 0 && /* @__PURE__ */ jsxs(ModalHeader, { children: [
184
- typeof title === "string" || typeof title === "number" ? /* @__PURE__ */ jsx(Title, { children: title }) : title,
183
+ title,
185
184
  showCloseButton && /* @__PURE__ */ jsx(ModalCloseButton, {})
186
185
  ] }),
187
186
  title === void 0 && showCloseButton && /* @__PURE__ */ jsx(Row, { justifyEnd: true, children: /* @__PURE__ */ jsx(ModalCloseButton, {}) }),