@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":"TableCategories.mjs","sources":["../../../../../src/components/ui/table/TableCategories.ts"],"sourcesContent":["import {\n VISUAL_CORE,\n VARIANT,\n BORDER,\n WIDTH,\n MARGIN,\n TEXT_ALIGN,\n FONT_FAMILY,\n RESPONSIVE,\n} from \"../props/categoryBuilders\";\n\n// No `shape`: border-radius has no effect on a border-collapse table, so the\n// rounded/pill/sharp props would be silently inert.\n/** Categories for the Table (`<table>`) component. */\nexport const TABLE_CATEGORIES = [\n 'size',\n ...VISUAL_CORE,\n ...VARIANT,\n ...BORDER,\n ...WIDTH,\n ...MARGIN,\n ...TEXT_ALIGN,\n ...FONT_FAMILY,\n 'hide',\n ...RESPONSIVE,\n] as const;\n"],"names":[],"mappings":";;AAcO,MAAM,gBAAA,GAAmB;AAAA,EAC9B,MAAA;AAAA,EACA,GAAG,WAAA;AAAA,EACH,GAAG,OAAA;AAAA,EACH,GAAG,MAAA;AAAA,EACH,GAAG,KAAA;AAAA,EACH,GAAG,MAAA;AAAA,EACH,GAAG,UAAA;AAAA,EACH,GAAG,WAAA;AAAA,EACH,MAAA;AAAA,EACA,GAAG;AACL;;;;"}
1
+ {"version":3,"file":"TableCategories.mjs","sources":["../../../../../src/components/ui/table/TableCategories.ts"],"sourcesContent":["import {\n VISUAL_CORE,\n VARIANT,\n BORDER,\n WIDTH,\n MARGIN,\n TEXT_ALIGN,\n RESPONSIVE,\n} from \"../props/categoryBuilders\";\n\n// No `shape`: border-radius has no effect on a border-collapse table, so the\n// rounded/pill/sharp props would be silently inert.\n/** Categories for the Table (`<table>`) component. */\nexport const TABLE_CATEGORIES = [\n 'size',\n ...VISUAL_CORE,\n ...VARIANT,\n ...BORDER,\n ...WIDTH,\n ...MARGIN,\n ...TEXT_ALIGN,\n 'hide',\n ...RESPONSIVE,\n] as const;\n"],"names":[],"mappings":";;AAaO,MAAM,gBAAA,GAAmB;AAAA,EAC9B,MAAA;AAAA,EACA,GAAG,WAAA;AAAA,EACH,GAAG,OAAA;AAAA,EACH,GAAG,MAAA;AAAA,EACH,GAAG,KAAA;AAAA,EACH,GAAG,MAAA;AAAA,EACH,GAAG,UAAA;AAAA,EACH,MAAA;AAAA,EACA,GAAG;AACL;;;;"}
@@ -8,7 +8,6 @@ import { tableDefaults } from './tableDefaults.mjs';
8
8
  import { MarginClassMapper } from '../theme/size/marginClassMapper.mjs';
9
9
  import { BorderClassMapper } from '../theme/layout/borderClassMapper.mjs';
10
10
  import { WidthClassMapper } from '../theme/layout/widthClassMapper.mjs';
11
- import { FontFamilyClassMapper } from '../theme/typography/fontFamilyClassMapper.mjs';
12
11
  import { TextAlignClassMapper } from '../theme/typography/textAlignClassMapper.mjs';
13
12
 
14
13
  const defaultTableTheme = new ComponentTheme(
@@ -27,8 +26,7 @@ const defaultTableTheme = new ComponentTheme(
27
26
  width: new WidthClassMapper()
28
27
  },
29
28
  typography: {
30
- textAlign: new TextAlignClassMapper(),
31
- fontFamily: new FontFamilyClassMapper()
29
+ textAlign: new TextAlignClassMapper()
32
30
  }
33
31
  },
34
32
  tableDefaults,
@@ -1 +1 @@
1
- {"version":3,"file":"defaultTableTheme.mjs","sources":["../../../../../src/components/ui/table/defaultTableTheme.ts"],"sourcesContent":["import { ComponentTheme, defaultLayoutClassMappers, borderAppearance } from \"../theme/common\";\nimport type { TableProps } from \"./TableProps\";\nimport type { TableTheme } from \"./TableTheme\";\nimport { TABLE_CATEGORIES } from \"./TableCategories\";\nimport { tableDefaults } from \"./tableDefaults\";\nimport { MarginClassMapper } from \"../theme/size\";\nimport { BorderClassMapper, WidthClassMapper } from \"../theme/layout\";\nimport { TextAlignClassMapper, FontFamilyClassMapper } from \"../theme/typography\";\n\nexport const defaultTableTheme = new ComponentTheme<TableProps, TableTheme>(\n \"table\",\n \"vane-table border-collapse\",\n {\n size: {\n margin: new MarginClassMapper(),\n },\n appearance: {\n border: borderAppearance,\n },\n layout: {\n ...defaultLayoutClassMappers,\n border: new BorderClassMapper(),\n width: new WidthClassMapper(),\n },\n typography: {\n textAlign: new TextAlignClassMapper(),\n fontFamily: new FontFamilyClassMapper(),\n },\n },\n tableDefaults,\n TABLE_CATEGORIES,\n undefined,\n 'layout'\n);\n"],"names":[],"mappings":";;;;;;;;;;;;;AASO,MAAM,oBAAoB,IAAI,cAAA;AAAA,EACnC,OAAA;AAAA,EACA,4BAAA;AAAA,EACA;AAAA,IACE,IAAA,EAAM;AAAA,MACJ,MAAA,EAAQ,IAAI,iBAAA;AAAkB,KAChC;AAAA,IACA,UAAA,EAAY;AAAA,MACV,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,GAAG,yBAAA;AAAA,MACH,MAAA,EAAQ,IAAI,iBAAA,EAAkB;AAAA,MAC9B,KAAA,EAAO,IAAI,gBAAA;AAAiB,KAC9B;AAAA,IACA,UAAA,EAAY;AAAA,MACV,SAAA,EAAW,IAAI,oBAAA,EAAqB;AAAA,MACpC,UAAA,EAAY,IAAI,qBAAA;AAAsB;AACxC,GACF;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF;;;;"}
1
+ {"version":3,"file":"defaultTableTheme.mjs","sources":["../../../../../src/components/ui/table/defaultTableTheme.ts"],"sourcesContent":["import { ComponentTheme, defaultLayoutClassMappers, borderAppearance } from \"../theme/common\";\nimport type { TableProps } from \"./TableProps\";\nimport type { TableTheme } from \"./TableTheme\";\nimport { TABLE_CATEGORIES } from \"./TableCategories\";\nimport { tableDefaults } from \"./tableDefaults\";\nimport { MarginClassMapper } from \"../theme/size\";\nimport { BorderClassMapper, WidthClassMapper } from \"../theme/layout\";\nimport { TextAlignClassMapper } from \"../theme/typography\";\n\nexport const defaultTableTheme = new ComponentTheme<TableProps, TableTheme>(\n \"table\",\n \"vane-table border-collapse\",\n {\n size: {\n margin: new MarginClassMapper(),\n },\n appearance: {\n border: borderAppearance,\n },\n layout: {\n ...defaultLayoutClassMappers,\n border: new BorderClassMapper(),\n width: new WidthClassMapper(),\n },\n typography: {\n textAlign: new TextAlignClassMapper(),\n },\n },\n tableDefaults,\n TABLE_CATEGORIES,\n undefined,\n 'layout'\n);\n"],"names":[],"mappings":";;;;;;;;;;;;AASO,MAAM,oBAAoB,IAAI,cAAA;AAAA,EACnC,OAAA;AAAA,EACA,4BAAA;AAAA,EACA;AAAA,IACE,IAAA,EAAM;AAAA,MACJ,MAAA,EAAQ,IAAI,iBAAA;AAAkB,KAChC;AAAA,IACA,UAAA,EAAY;AAAA,MACV,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,GAAG,yBAAA;AAAA,MACH,MAAA,EAAQ,IAAI,iBAAA,EAAkB;AAAA,MAC9B,KAAA,EAAO,IAAI,gBAAA;AAAiB,KAC9B;AAAA,IACA,UAAA,EAAY;AAAA,MACV,SAAA,EAAW,IAAI,oBAAA;AAAqB;AACtC,GACF;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF;;;;"}
@@ -3,8 +3,7 @@ const tableDefaults = {
3
3
  secondary: true,
4
4
  outline: true,
5
5
  wFull: true,
6
- noBorder: true,
7
- fontSans: true
6
+ noBorder: true
8
7
  };
9
8
 
10
9
  export { tableDefaults };
@@ -1 +1 @@
1
- {"version":3,"file":"tableDefaults.mjs","sources":["../../../../../src/components/ui/table/tableDefaults.ts"],"sourcesContent":["import type { TableProps } from \"./TableProps\";\n\n/** Default props for the Table component */\nexport const tableDefaults: Partial<TableProps> = {\n md: true,\n secondary: true,\n outline: true,\n wFull: true,\n noBorder: true,\n fontSans: true,\n};\n"],"names":[],"mappings":"AAGO,MAAM,aAAA,GAAqC;AAAA,EAChD,EAAA,EAAI,IAAA;AAAA,EACJ,SAAA,EAAW,IAAA;AAAA,EACX,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO,IAAA;AAAA,EACP,QAAA,EAAU,IAAA;AAAA,EACV,QAAA,EAAU;AACZ;;;;"}
1
+ {"version":3,"file":"tableDefaults.mjs","sources":["../../../../../src/components/ui/table/tableDefaults.ts"],"sourcesContent":["import type { TableProps } from \"./TableProps\";\n\n/** Default props for the Table component */\nexport const tableDefaults: Partial<TableProps> = {\n md: true,\n secondary: true,\n outline: true,\n wFull: true,\n noBorder: true,\n};\n"],"names":[],"mappings":"AAGO,MAAM,aAAA,GAAqC;AAAA,EAChD,EAAA,EAAI,IAAA;AAAA,EACJ,SAAA,EAAW,IAAA;AAAA,EACX,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO,IAAA;AAAA,EACP,QAAA,EAAU;AACZ;;;;"}
@@ -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 '../input/InputCategories.mjs';
11
11
  import { textareaDefaults } from './textareaDefaults.mjs';
@@ -19,7 +19,7 @@ const defaultTextareaTheme = 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":"defaultTextareaTheme.mjs","sources":["../../../../../src/components/ui/textarea/defaultTextareaTheme.ts"],"sourcesContent":["import { ComponentTheme, interactiveClassMappers, bgHoverAppearance } from \"../theme/common\";\nimport type { TextareaProps } from \"./TextareaProps\";\nimport { StatusClassMapper, DisabledVisualClassMapper, ReadOnlyClassMapper } from \"../theme/appearance\";\nimport { INPUT_CATEGORIES } from \"../input/InputCategories\";\nimport type { InputTheme } from \"../input/InputTheme\";\nimport { textareaDefaults } from \"./textareaDefaults\";\n\n// Shares InputTheme and INPUT_CATEGORIES: a textarea is an input that wraps lines.\n// Its own base class carries the multi-line box and omits the trailing-icon\n// reservation `.vane-input[data-status=\"error\"]` makes for the overlaid alert icon.\n// No error icon here: the danger ring is the cue, so pair `invalid` with helper text.\nexport const defaultTextareaTheme = new ComponentTheme<TextareaProps, InputTheme>(\n \"textarea\",\n \"vane-textarea\",\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 textareaDefaults,\n INPUT_CATEGORIES,\n () => \"textarea\",\n 'ui'\n);\n"],"names":[],"mappings":";;;;;;;;;;;;AAWO,MAAM,uBAAuB,IAAI,cAAA;AAAA,EACtC,UAAA;AAAA,EACA,eAAA;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,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,MAAM,UAAA;AAAA,EACN;AACF;;;;"}
1
+ {"version":3,"file":"defaultTextareaTheme.mjs","sources":["../../../../../src/components/ui/textarea/defaultTextareaTheme.ts"],"sourcesContent":["import { ComponentTheme, interactiveClassMappers, bgHoverAppearance } from \"../theme/common\";\nimport type { TextareaProps } from \"./TextareaProps\";\nimport { StatusClassMapper, DisabledClassMapper, ReadOnlyClassMapper } from \"../theme/appearance\";\nimport { INPUT_CATEGORIES } from \"../input/InputCategories\";\nimport type { InputTheme } from \"../input/InputTheme\";\nimport { textareaDefaults } from \"./textareaDefaults\";\n\n// Shares InputTheme and INPUT_CATEGORIES: a textarea is an input that wraps lines.\n// Its own base class carries the multi-line box and omits the trailing-icon\n// reservation `.vane-input[data-status=\"error\"]` makes for the overlaid alert icon.\n// No error icon here: the danger ring is the cue, so pair `invalid` with helper text.\nexport const defaultTextareaTheme = new ComponentTheme<TextareaProps, InputTheme>(\n \"textarea\",\n \"vane-textarea\",\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 textareaDefaults,\n INPUT_CATEGORIES,\n () => \"textarea\",\n 'ui'\n);\n"],"names":[],"mappings":";;;;;;;;;;;;AAWO,MAAM,uBAAuB,IAAI,cAAA;AAAA,EACtC,UAAA;AAAA,EACA,eAAA;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,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,MAAM,UAAA;AAAA,EACN;AACF;;;;"}
@@ -4,7 +4,7 @@ class DisabledClassMapper extends BaseClassMapper {
4
4
  constructor() {
5
5
  super(...arguments);
6
6
  /** Disabled state - reduced opacity, not-allowed cursor, no pointer events */
7
- this.disabled = "opacity-(--disabled-opacity) cursor-not-allowed pointer-events-none";
7
+ this.disabled = "opacity-50 cursor-not-allowed pointer-events-none";
8
8
  }
9
9
  getClasses(extractedKeys) {
10
10
  const value = extractedKeys?.disabled;
@@ -14,12 +14,6 @@ class DisabledClassMapper extends BaseClassMapper {
14
14
  return [];
15
15
  }
16
16
  }
17
- class DisabledVisualClassMapper extends DisabledClassMapper {
18
- constructor() {
19
- super(...arguments);
20
- this.disabled = "opacity-(--disabled-opacity) cursor-not-allowed";
21
- }
22
- }
23
17
 
24
- export { DisabledClassMapper, DisabledVisualClassMapper };
18
+ export { DisabledClassMapper };
25
19
  //# sourceMappingURL=disabledClassMapper.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"disabledClassMapper.mjs","sources":["../../../../../../src/components/ui/theme/appearance/disabledClassMapper.ts"],"sourcesContent":["import { BaseClassMapper } from \"../common/BaseClassMapper\";\nimport type { CategoryProps, DisabledKey } from \"../../props\";\n\n/**\n * DisabledClassMapper handles disabled state styling for interactive components.\n * Applies reduced opacity, not-allowed cursor, and disables pointer events.\n */\nexport class DisabledClassMapper extends BaseClassMapper implements Record<DisabledKey, string> {\n /** Disabled state - reduced opacity, not-allowed cursor, no pointer events */\n disabled: string = \"opacity-(--disabled-opacity) cursor-not-allowed pointer-events-none\";\n\n getClasses(extractedKeys: CategoryProps): string[] {\n const value = extractedKeys?.disabled;\n\n if (value && value in this) {\n return [this[value as DisabledKey]];\n }\n\n return [];\n }\n}\n\n/** For elements whose own semantics block activation (native disabled fields, a disabled Link): pointer events stay on, so the cursor shows. */\nexport class DisabledVisualClassMapper extends DisabledClassMapper {\n disabled: string = \"opacity-(--disabled-opacity) cursor-not-allowed\";\n}\n"],"names":[],"mappings":";;AAOO,MAAM,4BAA4B,eAAA,CAAuD;AAAA,EAAzF,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AAEL;AAAA,IAAA,IAAA,CAAA,QAAA,GAAmB,qEAAA;AAAA,EAAA;AAAA,EAEnB,WAAW,aAAA,EAAwC;AACjD,IAAA,MAAM,QAAQ,aAAA,EAAe,QAAA;AAE7B,IAAA,IAAI,KAAA,IAAS,SAAS,IAAA,EAAM;AAC1B,MAAA,OAAO,CAAC,IAAA,CAAK,KAAoB,CAAC,CAAA;AAAA,IACpC;AAEA,IAAA,OAAO,EAAC;AAAA,EACV;AACF;AAGO,MAAM,kCAAkC,mBAAA,CAAoB;AAAA,EAA5D,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAA,QAAA,GAAmB,iDAAA;AAAA,EAAA;AACrB;;;;"}
1
+ {"version":3,"file":"disabledClassMapper.mjs","sources":["../../../../../../src/components/ui/theme/appearance/disabledClassMapper.ts"],"sourcesContent":["import { BaseClassMapper } from \"../common/BaseClassMapper\";\nimport type { CategoryProps, DisabledKey } from \"../../props\";\n\n/**\n * DisabledClassMapper handles disabled state styling for interactive components.\n * Applies reduced opacity, not-allowed cursor, and disables pointer events.\n */\nexport class DisabledClassMapper extends BaseClassMapper implements Record<DisabledKey, string> {\n /** Disabled state - reduced opacity, not-allowed cursor, no pointer events */\n disabled: string = \"opacity-50 cursor-not-allowed pointer-events-none\";\n\n getClasses(extractedKeys: CategoryProps): string[] {\n const value = extractedKeys?.disabled;\n\n if (value && value in this) {\n return [this[value as DisabledKey]];\n }\n\n return [];\n }\n}\n"],"names":[],"mappings":";;AAOO,MAAM,4BAA4B,eAAA,CAAuD;AAAA,EAAzF,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AAEL;AAAA,IAAA,IAAA,CAAA,QAAA,GAAmB,mDAAA;AAAA,EAAA;AAAA,EAEnB,WAAW,aAAA,EAAwC;AACjD,IAAA,MAAM,QAAQ,aAAA,EAAe,QAAA;AAE7B,IAAA,IAAI,KAAA,IAAS,SAAS,IAAA,EAAM;AAC1B,MAAA,OAAO,CAAC,IAAA,CAAK,KAAoB,CAAC,CAAA;AAAA,IACpC;AAEA,IAAA,OAAO,EAAC;AAAA,EACV;AACF;;;;"}
@@ -4,7 +4,7 @@ class DisabledOpacityClassMapper extends BaseClassMapper {
4
4
  constructor() {
5
5
  super(...arguments);
6
6
  /** Disabled state - reduced opacity only */
7
- this.disabled = "opacity-(--disabled-opacity)";
7
+ this.disabled = "opacity-50";
8
8
  }
9
9
  getClasses(extractedKeys) {
10
10
  const value = extractedKeys?.disabled;
@@ -1 +1 @@
1
- {"version":3,"file":"disabledOpacityClassMapper.mjs","sources":["../../../../../../src/components/ui/theme/appearance/disabledOpacityClassMapper.ts"],"sourcesContent":["import { BaseClassMapper } from \"../common/BaseClassMapper\";\nimport type { CategoryProps, DisabledKey } from \"../../props\";\n\n/**\n * DisabledOpacityClassMapper applies only opacity for disabled state.\n * Used on wrapper/container elements so the entire control appears dimmed.\n */\nexport class DisabledOpacityClassMapper extends BaseClassMapper implements Record<DisabledKey, string> {\n /** Disabled state - reduced opacity only */\n disabled: string = \"opacity-(--disabled-opacity)\";\n\n getClasses(extractedKeys: CategoryProps): string[] {\n const value = extractedKeys?.disabled;\n\n if (value && value in this) {\n return [this[value as DisabledKey]];\n }\n\n return [];\n }\n}\n"],"names":[],"mappings":";;AAOO,MAAM,mCAAmC,eAAA,CAAuD;AAAA,EAAhG,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AAEL;AAAA,IAAA,IAAA,CAAA,QAAA,GAAmB,8BAAA;AAAA,EAAA;AAAA,EAEnB,WAAW,aAAA,EAAwC;AACjD,IAAA,MAAM,QAAQ,aAAA,EAAe,QAAA;AAE7B,IAAA,IAAI,KAAA,IAAS,SAAS,IAAA,EAAM;AAC1B,MAAA,OAAO,CAAC,IAAA,CAAK,KAAoB,CAAC,CAAA;AAAA,IACpC;AAEA,IAAA,OAAO,EAAC;AAAA,EACV;AACF;;;;"}
1
+ {"version":3,"file":"disabledOpacityClassMapper.mjs","sources":["../../../../../../src/components/ui/theme/appearance/disabledOpacityClassMapper.ts"],"sourcesContent":["import { BaseClassMapper } from \"../common/BaseClassMapper\";\nimport type { CategoryProps, DisabledKey } from \"../../props\";\n\n/**\n * DisabledOpacityClassMapper applies only opacity for disabled state.\n * Used on wrapper/container elements so the entire control appears dimmed.\n */\nexport class DisabledOpacityClassMapper extends BaseClassMapper implements Record<DisabledKey, string> {\n /** Disabled state - reduced opacity only */\n disabled: string = \"opacity-50\";\n\n getClasses(extractedKeys: CategoryProps): string[] {\n const value = extractedKeys?.disabled;\n\n if (value && value in this) {\n return [this[value as DisabledKey]];\n }\n\n return [];\n }\n}\n"],"names":[],"mappings":";;AAOO,MAAM,mCAAmC,eAAA,CAAuD;AAAA,EAAhG,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AAEL;AAAA,IAAA,IAAA,CAAA,QAAA,GAAmB,YAAA;AAAA,EAAA;AAAA,EAEnB,WAAW,aAAA,EAAwC;AACjD,IAAA,MAAM,QAAQ,aAAA,EAAe,QAAA;AAE7B,IAAA,IAAI,KAAA,IAAS,SAAS,IAAA,EAAM;AAC1B,MAAA,OAAO,CAAC,IAAA,CAAK,KAAoB,CAAC,CAAA;AAAA,IACpC;AAEA,IAAA,OAAO,EAAC;AAAA,EACV;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"readOnlyClassMapper.mjs","sources":["../../../../../../src/components/ui/theme/appearance/readOnlyClassMapper.ts"],"sourcesContent":["import { BaseClassMapper } from \"../common/BaseClassMapper\";\nimport type { CategoryProps, ReadOnlyKey } from \"../../props\";\n\n/**\n * ReadOnlyClassMapper handles the read-only visual treatment for form controls.\n * Mirrors DisabledClassMapper but lighter (opacity-70 vs --disabled-opacity) because a\n * read-only field is still focusable, selectable, and submittable. The opacity\n * and cursor live here as Tailwind classes (not a raw CSS rule) so they go\n * through the theme system like every other visual state.\n */\nexport class ReadOnlyClassMapper extends BaseClassMapper implements Record<ReadOnlyKey, string> {\n /** Read-only state - muted opacity + default cursor */\n readOnly: string = \"opacity-70 cursor-default\";\n\n getClasses(extractedKeys: CategoryProps): string[] {\n const value = extractedKeys?.readOnly;\n if (value && value in this) {\n return [this[value as ReadOnlyKey]];\n }\n return [];\n }\n}\n"],"names":[],"mappings":";;AAUO,MAAM,4BAA4B,eAAA,CAAuD;AAAA,EAAzF,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AAEL;AAAA,IAAA,IAAA,CAAA,QAAA,GAAmB,2BAAA;AAAA,EAAA;AAAA,EAEnB,WAAW,aAAA,EAAwC;AACjD,IAAA,MAAM,QAAQ,aAAA,EAAe,QAAA;AAC7B,IAAA,IAAI,KAAA,IAAS,SAAS,IAAA,EAAM;AAC1B,MAAA,OAAO,CAAC,IAAA,CAAK,KAAoB,CAAC,CAAA;AAAA,IACpC;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AACF;;;;"}
1
+ {"version":3,"file":"readOnlyClassMapper.mjs","sources":["../../../../../../src/components/ui/theme/appearance/readOnlyClassMapper.ts"],"sourcesContent":["import { BaseClassMapper } from \"../common/BaseClassMapper\";\nimport type { CategoryProps, ReadOnlyKey } from \"../../props\";\n\n/**\n * ReadOnlyClassMapper handles the read-only visual treatment for form controls.\n * Mirrors DisabledClassMapper but lighter (opacity-70 vs opacity-50) because a\n * read-only field is still focusable, selectable, and submittable. The opacity\n * and cursor live here as Tailwind classes (not a raw CSS rule) so they go\n * through the theme system like every other visual state.\n */\nexport class ReadOnlyClassMapper extends BaseClassMapper implements Record<ReadOnlyKey, string> {\n /** Read-only state - muted opacity + default cursor */\n readOnly: string = \"opacity-70 cursor-default\";\n\n getClasses(extractedKeys: CategoryProps): string[] {\n const value = extractedKeys?.readOnly;\n if (value && value in this) {\n return [this[value as ReadOnlyKey]];\n }\n return [];\n }\n}\n"],"names":[],"mappings":";;AAUO,MAAM,4BAA4B,eAAA,CAAuD;AAAA,EAAzF,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AAEL;AAAA,IAAA,IAAA,CAAA,QAAA,GAAmB,2BAAA;AAAA,EAAA;AAAA,EAEnB,WAAW,aAAA,EAAwC;AACjD,IAAA,MAAM,QAAQ,aAAA,EAAe,QAAA;AAC7B,IAAA,IAAI,KAAA,IAAS,SAAS,IAAA,EAAM;AAC1B,MAAA,OAAO,CAAC,IAAA,CAAK,KAAoB,CAAC,CAAA;AAAA,IACpC;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AACF;;;;"}
@@ -3,8 +3,8 @@ import { BaseClassMapper } from '../common/BaseClassMapper.mjs';
3
3
  class StatusClassMapper extends BaseClassMapper {
4
4
  constructor() {
5
5
  super(...arguments);
6
- /** Invalid state - full-strength danger border/ring (the danger text token), readable in both themes */
7
- this.invalid = "border-(--color-text-danger) ring-(--color-text-danger)";
6
+ /** Invalid state - danger border/ring via tokens (adapts to dark mode) */
7
+ this.invalid = "border-(--color-border-danger) ring-(--color-border-danger)/30 focus-visible:ring-(--color-border-danger)/30";
8
8
  }
9
9
  getClasses(extractedKeys) {
10
10
  const classes = [];
@@ -1 +1 @@
1
- {"version":3,"file":"statusClassMapper.mjs","sources":["../../../../../../src/components/ui/theme/appearance/statusClassMapper.ts"],"sourcesContent":["import { BaseClassMapper } from \"../common/BaseClassMapper\";\nimport type { CategoryProps, ValidityKey } from \"../../props\";\n\n/**\n * Validation-state styling for form components.\n * Changes border/ring colors to indicate an invalid field.\n */\nexport class StatusClassMapper extends BaseClassMapper implements Record<ValidityKey, string> {\n /** Invalid state - full-strength danger border/ring (the danger text token), readable in both themes */\n invalid: string = \"border-(--color-text-danger) ring-(--color-text-danger)\";\n\n getClasses(extractedKeys: CategoryProps): string[] {\n const classes: string[] = [];\n\n const value = extractedKeys?.validity;\n\n if (value && value in this) {\n classes.push(this[value as ValidityKey]);\n }\n\n return classes;\n }\n}\n"],"names":[],"mappings":";;AAOO,MAAM,0BAA0B,eAAA,CAAuD;AAAA,EAAvF,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AAEL;AAAA,IAAA,IAAA,CAAA,OAAA,GAAkB,yDAAA;AAAA,EAAA;AAAA,EAElB,WAAW,aAAA,EAAwC;AACjD,IAAA,MAAM,UAAoB,EAAC;AAE3B,IAAA,MAAM,QAAQ,aAAA,EAAe,QAAA;AAE7B,IAAA,IAAI,KAAA,IAAS,SAAS,IAAA,EAAM;AAC1B,MAAA,OAAA,CAAQ,IAAA,CAAK,IAAA,CAAK,KAAoB,CAAC,CAAA;AAAA,IACzC;AAEA,IAAA,OAAO,OAAA;AAAA,EACT;AACF;;;;"}
1
+ {"version":3,"file":"statusClassMapper.mjs","sources":["../../../../../../src/components/ui/theme/appearance/statusClassMapper.ts"],"sourcesContent":["import { BaseClassMapper } from \"../common/BaseClassMapper\";\nimport type { CategoryProps, ValidityKey } from \"../../props\";\n\n/**\n * Validation-state styling for form components.\n * Changes border/ring colors to indicate an invalid field.\n */\nexport class StatusClassMapper extends BaseClassMapper implements Record<ValidityKey, string> {\n /** Invalid state - danger border/ring via tokens (adapts to dark mode) */\n invalid: string = \"border-(--color-border-danger) ring-(--color-border-danger)/30 focus-visible:ring-(--color-border-danger)/30\";\n\n getClasses(extractedKeys: CategoryProps): string[] {\n const classes: string[] = [];\n\n const value = extractedKeys?.validity;\n\n if (value && value in this) {\n classes.push(this[value as ValidityKey]);\n }\n\n return classes;\n }\n}\n"],"names":[],"mappings":";;AAOO,MAAM,0BAA0B,eAAA,CAAuD;AAAA,EAAvF,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AAEL;AAAA,IAAA,IAAA,CAAA,OAAA,GAAkB,8GAAA;AAAA,EAAA;AAAA,EAElB,WAAW,aAAA,EAAwC;AACjD,IAAA,MAAM,UAAoB,EAAC;AAE3B,IAAA,MAAM,QAAQ,aAAA,EAAe,QAAA;AAE7B,IAAA,IAAI,KAAA,IAAS,SAAS,IAAA,EAAM;AAC1B,MAAA,OAAA,CAAQ,IAAA,CAAK,IAAA,CAAK,KAAoB,CAAC,CAAA;AAAA,IACzC;AAEA,IAAA,OAAO,OAAA;AAAA,EACT;AACF;;;;"}
@@ -238,7 +238,7 @@ class ComponentTheme {
238
238
  if (hasAppearance) {
239
239
  dataAttributes["data-appearance"] = extractedKeys.appearance;
240
240
  }
241
- if (extractedKeys.variant && hasAppearance) {
241
+ if (extractedKeys.variant && (hasAppearance || extractedKeys.variant !== "outline")) {
242
242
  dataAttributes["data-variant"] = extractedKeys.variant;
243
243
  }
244
244
  if (rawProps.disabled) {
@@ -246,8 +246,7 @@ class ComponentTheme {
246
246
  }
247
247
  if (rawProps.readOnly) {
248
248
  dataAttributes["data-readonly"] = "true";
249
- const isFormControlTag = typeof componentTag !== "string" || ["input", "textarea", "select"].includes(componentTag);
250
- if (rawProps["aria-readonly"] === void 0 && isFormControlTag) {
249
+ if (rawProps["aria-readonly"] === void 0) {
251
250
  dataAttributes["aria-readonly"] = "true";
252
251
  }
253
252
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentTheme.mjs","sources":["../../../../../../src/components/ui/theme/common/ComponentTheme.tsx"],"sourcesContent":["import React from \"react\";\nimport { BaseClassMapper } from \"./BaseClassMapper\";\nimport { ComponentCategoryKey } from \"../../props\";\nimport { ComponentKeys } from \"../../props\";\nimport { HideClassMapper } from \"../layout/hideClassMapper\";\nimport { ItemsClassMapper } from \"../layout/itemsClassMapper\";\nimport { JustifyClassMapper } from \"../layout/justifyClassMapper\";\nimport { PositionClassMapper } from \"../layout/positionClassMapper\";\nimport { FontStyleClassMapper } from \"../typography/fontStyleClassMapper\";\nimport { FontFamilyClassMapper } from \"../typography/fontFamilyClassMapper\";\nimport { FontWeightClassMapper } from \"../typography/fontWeightClassMapper\";\nimport { TextDecorationClassMapper } from \"../typography/textDecorationClassMapper\";\nimport { TextTransformClassMapper } from \"../typography/textTransformClassMapper\";\nimport { TextAlignClassMapper } from \"../typography/textAlignClassMapper\";\nimport { TruncateClassMapper } from \"../typography/truncateClassMapper\";\nimport { DeepPartial } from \"../../../utils/deepPartial\";\nimport { DisplayClassMapper } from \"../layout/displayClassMapper\";\nimport { twMerge } from \"tailwind-merge\";\nimport { OverflowClassMapper } from \"../layout/overflowClassMapper\";\nimport { WidthClassMapper } from \"../layout/widthClassMapper\";\nimport { HeightClassMapper } from \"../layout/heightClassMapper\";\nimport { pickFirstTruthyKeyByCategory, collectTruthyKeysByCategory, MULTI_VALUE_CATEGORIES, resetConflictKey } from \"../../../utils/componentUtils\";\n\ntype ComponentProps = { className?: string; children?: React.ReactNode; tag?: React.ElementType; };\ntype ThemeNode<P> = BaseClassMapper | ThemeMap<P>;\n\n// HTML tags where the native disabled attribute is valid and desired\nconst NATIVE_DISABLED_TAGS = new Set([\n 'button', 'input', 'select', 'textarea', 'fieldset', 'optgroup', 'option',\n]);\n\n// props consumed by the theme engine itself — never forwarded to the DOM\n// (boolean category props are stripped separately via ResolutionState.omitKeys)\nconst INTERNAL_PROPS = new Set(['className', 'tag', 'children', 'theme']);\n\n// attributes that are invalid on a given resolved tag — stripped so a wrong-tag\n// HTML attribute can't leak through a tag-switching component (e.g. type/form\n// reaching a rendered <a>, or href/target/download/rel reaching a rendered\n// <button>). Components like Button/NavLink/Badge union button + anchor attrs.\nconst TAG_INVALID_ATTRS: Record<string, readonly string[]> = {\n a: ['type', 'form', 'formAction', 'formEncType', 'formMethod', 'formNoValidate', 'formTarget'],\n button: ['href', 'target', 'download', 'rel', 'hrefLang', 'ping'],\n};\n\nexport type VaneComponentType = 'ui' | 'layout';\n\nexport type ThemeMap<P> = {\n [key: string]: ThemeNode<P>;\n};\n\nexport interface DefaultLayoutClassMappers {\n hide: HideClassMapper;\n items: ItemsClassMapper;\n justify: JustifyClassMapper;\n position: PositionClassMapper;\n display: DisplayClassMapper;\n overflow: OverflowClassMapper;\n}\n\nexport interface DefaultTypographyClassMappers {\n fontFamily: FontFamilyClassMapper;\n fontWeight: FontWeightClassMapper;\n fontStyle: FontStyleClassMapper;\n textDecoration: TextDecorationClassMapper;\n textTransform: TextTransformClassMapper;\n textAlign: TextAlignClassMapper;\n truncate: TruncateClassMapper;\n}\n\nexport interface BaseComponentTheme {\n layout: DefaultLayoutClassMappers;\n}\n\nexport interface BaseTypographyComponentTheme extends BaseComponentTheme {\n typography: DefaultTypographyClassMappers;\n}\n\nexport const defaultLayoutClassMappers: DefaultLayoutClassMappers = {\n hide: new HideClassMapper(),\n items: new ItemsClassMapper(),\n justify: new JustifyClassMapper(),\n position: new PositionClassMapper(),\n display: new DisplayClassMapper(),\n overflow: new OverflowClassMapper(),\n};\n\nexport interface DefaultSizedLayoutClassMappers extends DefaultLayoutClassMappers {\n width: WidthClassMapper;\n height: HeightClassMapper;\n}\n\nexport const defaultSizedLayoutClassMappers: DefaultSizedLayoutClassMappers = {\n ...defaultLayoutClassMappers,\n width: new WidthClassMapper(),\n height: new HeightClassMapper(),\n};\n\nexport const defaultTypographyClassMappers: DefaultTypographyClassMappers = {\n fontFamily: new FontFamilyClassMapper(),\n fontWeight: new FontWeightClassMapper(),\n fontStyle: new FontStyleClassMapper(),\n textDecoration: new TextDecorationClassMapper(),\n textTransform: new TextTransformClassMapper(),\n textAlign: new TextAlignClassMapper(),\n truncate: new TruncateClassMapper(),\n};\n\n/* Per-instance derived state: constant omitKeys/baseClasses + walkCache (memoizes the tree walk per extracted-keys signature; defaults only affect the cache key, extraClasses applied per call). */\ninterface ResolutionState {\n /** boolean prop names consumed by the theme system (union of all category keys) — stripped from DOM props */\n omitKeys: ReadonlySet<string>;\n /** `base` pre-split on whitespace, empty entries removed */\n baseClasses: readonly string[];\n /** extracted-keys signature → theme-tree walk output (pre-filtered, treated as immutable) */\n walkCache: Map<string, readonly string[]>;\n}\n\n/* Resolution state keyed by instance identity in a module-level WeakMap, not on the instance: deepClone/deepMerge copy instances generically, so instance state would leak into clones or break (Set/Map slots don't survive). Every clone/withDefaults() starts cold. */\nconst resolutionStateMap = new WeakMap<object, ResolutionState>();\n\nexport class ComponentTheme<P extends ComponentProps, TTheme extends object> {\n readonly tag: React.ElementType;\n // writable so `themeOverride` can append always-on classes on the cloned tree\n // (e.g. `theme.button.main.base += ' uppercase'`), matching the writable\n // `defaults`/`extraClasses` and the mapper-node `base` fields. Mutation is\n // safe only on ThemeProvider's pre-render clone (see the class doc-comment).\n base: string;\n readonly themes: TTheme;\n readonly vaneType?: VaneComponentType;\n // fallback for pickFirstTruthyKeyByCategory when props omit a category; merged via ThemeProvider\n defaults: Partial<P>;\n extraClasses: Partial<Record<keyof P, string>>;\n private readonly categories: readonly ComponentCategoryKey[];\n // base type decoupled from P so ComponentTheme<SpecificProps, T> stays structurally compatible\n private readonly tagFunction?: (props: ComponentProps, defaults: Partial<ComponentProps>) => React.ElementType;\n\n constructor(\n tag: React.ElementType,\n base: string,\n themes: DeepPartial<TTheme>,\n defaults: Partial<P> = {},\n categories: readonly ComponentCategoryKey[],\n tagFunction?: (props: P, defaults: Partial<P>) => React.ElementType,\n vaneType?: VaneComponentType\n ) {\n this.tag = tag;\n this.base = base;\n this.defaults = defaults;\n this.extraClasses = {};\n this.categories = categories;\n // safe: existing tagFunctions only access optional props (e.g. href)\n this.tagFunction = tagFunction as typeof this.tagFunction;\n this.vaneType = vaneType;\n this.themes = themes as TTheme;\n }\n\n withDefaults(defaults: Partial<P>): ComponentTheme<P, TTheme> {\n return new ComponentTheme<P, TTheme>(\n this.tag,\n this.base,\n this.themes,\n defaults,\n this.categories,\n this.tagFunction as ((props: P, defaults: Partial<P>) => React.ElementType) | undefined,\n this.vaneType,\n );\n }\n\n private resolutionState(): ResolutionState {\n let state = resolutionStateMap.get(this);\n if (state === undefined) {\n state = {\n omitKeys: new Set<string>(this.categories.flatMap(category => ComponentKeys[category])),\n baseClasses: this.base ? this.base.split(/\\s+/).filter(Boolean) : [],\n walkCache: new Map(),\n };\n resolutionStateMap.set(this, state);\n }\n return state;\n }\n\n /* Resolve the active key per category (props win over defaults) and expand `inherit` into inheritColor/Bg/Border. Shared by getClasses + getComponentConfig so both see the same key set. */\n private resolveExtractedKeys(props: P): Record<string, string> {\n const componentProps = props as unknown as Record<string, boolean>;\n const defaults = this.defaults as Record<string, boolean>;\n\n const extractedKeys: Record<string, string> = {};\n for (const category of this.categories) {\n if (MULTI_VALUE_CATEGORIES.has(category)) {\n // border/margin compose: store all active side keys space-joined for the mapper to union\n const collected = collectTruthyKeysByCategory(componentProps, defaults, category);\n if (collected.length > 0) {\n extractedKeys[category] = collected.join(' ');\n }\n continue;\n }\n const key = pickFirstTruthyKeyByCategory(componentProps, defaults, category);\n if (key !== undefined) {\n extractedKeys[category] = key;\n }\n }\n\n // expand `inheritAppearance` shorthand into COLOR/BG/BORDER only (size inheritance is opt-in via inheritSize)\n if (extractedKeys.appearance === 'inheritAppearance') {\n if (!extractedKeys.inheritColor) {\n extractedKeys.inheritColor = 'inheritColor';\n }\n if (!extractedKeys.inheritBg) {\n extractedKeys.inheritBg = 'inheritBg';\n }\n if (!extractedKeys.inheritBorder) {\n extractedKeys.inheritBorder = 'inheritBorder';\n }\n }\n\n return extractedKeys;\n }\n\n getClasses(props: P, precomputedKeys?: Record<string, string>): string[] {\n const extractedKeys = precomputedKeys ?? this.resolveExtractedKeys(props);\n const state = this.resolutionState();\n\n const classes: string[] = state.baseClasses.slice();\n\n // Signature of the resolved keys. for...in (not Object.keys) so any\n // enumerable inherited key on a caller-supplied precomputedKeys object is\n // captured too — mappers read keys via plain property access, which also\n // sees the prototype chain, and the signature must cover everything the\n // walk can observe. Both internal paths build plain objects in stable\n // `categories` order, so signatures are stable per instance.\n let signature = '';\n for (const category in extractedKeys) {\n signature += category;\n signature += ':';\n signature += extractedKeys[category];\n signature += '|';\n }\n\n let walkClasses = state.walkCache.get(signature);\n if (walkClasses === undefined) {\n const collected: string[] = [];\n const walk = (map: object) => {\n for (const key of Object.keys(map)) {\n const node = (map as ThemeMap<P>)[key];\n\n if (node instanceof BaseClassMapper) {\n collected.push(...node.getClasses(extractedKeys));\n } else if (node && typeof node === \"object\" && !Array.isArray(node)) {\n walk(node);\n }\n }\n };\n walk(this.themes);\n walkClasses = collected.filter(Boolean);\n state.walkCache.set(signature, walkClasses);\n }\n classes.push(...walkClasses);\n\n // extraClasses are applied per call (never cached) so the cached walk\n // output stays valid even if extraClasses are replaced on this instance\n for (const [, value] of Object.entries(extractedKeys)) {\n if (value && this.extraClasses[value as keyof P]) {\n const existingClasses = this.extraClasses[value as keyof P];\n if (existingClasses !== undefined) {\n classes.push(...existingClasses.split(/\\s+/));\n }\n }\n }\n\n return classes.filter(Boolean);\n }\n\n getTag(props: P): React.ElementType {\n if (this.tagFunction) {\n return this.tagFunction(props, this.defaults);\n }\n return this.tag;\n }\n\n getComponentConfig(props: P) {\n const componentProps = props as unknown as Record<string, boolean>;\n const extractedKeys = this.resolveExtractedKeys(props);\n\n // dev-only: categories are mutually exclusive, but the boolean-props API\n // can't express that in types — when 2+ props of one category are\n // explicitly true, the winner is ComponentKeys array order (NOT JSX\n // order), which is undiscoverable without a warning\n if (process.env.NODE_ENV !== 'production') {\n for (const category of this.categories) {\n const truthyKeys = ComponentKeys[category].filter(k => componentProps[k] === true);\n if (MULTI_VALUE_CATEGORIES.has(category)) {\n const reset = resetConflictKey(truthyKeys);\n if (reset) {\n const tagName = typeof this.tag === 'string' ? `<${this.tag}>` : 'component';\n console.warn(\n `VaneUI: conflicting ${category} props on ${tagName}: ${truthyKeys.join(', ')} — \"${reset}\" resets and wins over the side toggles. Pass either side toggles or a reset, not both.`\n );\n }\n continue;\n }\n if (truthyKeys.length > 1) {\n const tagName = typeof this.tag === 'string' ? `<${this.tag}>` : 'component';\n console.warn(\n `VaneUI: conflicting ${category} props on ${tagName}: ${truthyKeys.join(', ')} — \"${truthyKeys[0]}\" wins (canonical key order, not JSX order). Pass only one prop per category.`\n );\n }\n }\n }\n\n const { omitKeys } = this.resolutionState();\n\n // Build the DOM-props object in a single pass over the props actually\n // present, skipping theme-consumed keys via the precomputed omit set.\n // (Previously: spread the props, then issue one `delete` per possible\n // category key — 150+ deletes per render regardless of how few props the\n // element actually has.)\n const rawProps = props as Record<PropertyKey, unknown>;\n const other: Record<PropertyKey, unknown> = {};\n for (const key of Object.keys(rawProps)) {\n if (omitKeys.has(key) || INTERNAL_PROPS.has(key)) {\n continue;\n }\n other[key] = rawProps[key];\n }\n // parity with the previous spread-based copy: enumerable symbol-keyed\n // props were forwarded too, and Object.keys only yields string keys\n for (const sym of Object.getOwnPropertySymbols(rawProps)) {\n if (Object.prototype.propertyIsEnumerable.call(rawProps, sym)) {\n other[sym] = rawProps[sym];\n }\n }\n\n const { className, tag } = props;\n const componentTag: React.ElementType = tag ?? this.getTag(props) ?? \"div\";\n\n // preserve the HTML-native disabled attr (it overlaps with a category\n // key), but only on tags that support it — a placeholder link rendered\n // for disabled href-switching must stay focusable per the aria-disabled\n // pattern, and native disabled would pull it out of the tab order\n const supportsNativeDisabled =\n typeof componentTag !== 'string' || NATIVE_DISABLED_TAGS.has(componentTag);\n if (rawProps.disabled !== undefined && supportsNativeDisabled) {\n other.disabled = rawProps.disabled;\n } else if (!supportsNativeDisabled && 'disabled' in other) {\n // a tag that doesn't support native disabled (e.g. <a>, <span>) must not\n // carry a leaked `disabled` attribute — the state is exposed via\n // data-disabled / aria-disabled instead\n delete other.disabled;\n }\n\n // `readOnly` is now a category (so the ReadOnlyClassMapper can style it),\n // which means omitKeys strips it. Re-add the native attribute on the tags\n // that support it so the field stays read-only; data-readonly (below)\n // carries the non-class CSS bits (caret-color / hover neutralization).\n if (rawProps.readOnly !== undefined &&\n (typeof componentTag !== 'string' || componentTag === 'input' || componentTag === 'textarea')) {\n other.readOnly = rawProps.readOnly;\n }\n\n // drop attributes that don't belong on the resolved tag\n if (typeof componentTag === 'string') {\n const invalidAttrs = TAG_INVALID_ATTRS[componentTag];\n if (invalidAttrs) {\n for (const attr of invalidAttrs) {\n if (attr in other) delete other[attr];\n }\n }\n }\n\n const themeGeneratedClasses = this.getClasses(props, extractedKeys);\n const finalClasses = twMerge(...themeGeneratedClasses, className);\n\n const dataAttributes: Record<string, string> = {};\n if (this.vaneType) {\n dataAttributes['data-vane-type'] = this.vaneType;\n }\n if (extractedKeys.size) {\n dataAttributes['data-size'] = extractedKeys.size;\n }\n if (extractedKeys.responsiveSizing === 'responsiveSizing') {\n dataAttributes['data-responsive'] = '';\n }\n // data-appearance suppressed when inheritColor is active (lets colors cascade from ancestor).\n // data-variant only with an appearance: without one no surface is painted, so a variant would only flip the text.\n const hasAppearance = extractedKeys.appearance && extractedKeys.inheritColor !== 'inheritColor';\n if (hasAppearance) {\n dataAttributes['data-appearance'] = extractedKeys.appearance;\n }\n if (extractedKeys.variant && hasAppearance) {\n dataAttributes['data-variant'] = extractedKeys.variant;\n }\n if (rawProps.disabled) {\n dataAttributes['data-disabled'] = 'true';\n }\n if (rawProps.readOnly) {\n dataAttributes['data-readonly'] = 'true';\n // aria-readonly belongs on the control itself; a toggle's wrapper span only takes the visual cue\n const isFormControlTag = typeof componentTag !== 'string' || ['input', 'textarea', 'select'].includes(componentTag);\n if (rawProps['aria-readonly'] === undefined && isFormControlTag) {\n dataAttributes['aria-readonly'] = 'true';\n }\n }\n // error state must be AT-perceivable, not color-only: emit aria-invalid\n // (unless the consumer set it explicitly) alongside a data-status hook\n if (extractedKeys.validity === 'invalid') {\n dataAttributes['data-status'] = 'error';\n if (rawProps['aria-invalid'] === undefined) {\n dataAttributes['aria-invalid'] = 'true';\n }\n }\n\n return {\n Tag: componentTag,\n finalClasses,\n finalProps: { ...other, ...dataAttributes },\n };\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComponentTheme.mjs","sources":["../../../../../../src/components/ui/theme/common/ComponentTheme.tsx"],"sourcesContent":["import React from \"react\";\nimport { BaseClassMapper } from \"./BaseClassMapper\";\nimport { ComponentCategoryKey } from \"../../props\";\nimport { ComponentKeys } from \"../../props\";\nimport { HideClassMapper } from \"../layout/hideClassMapper\";\nimport { ItemsClassMapper } from \"../layout/itemsClassMapper\";\nimport { JustifyClassMapper } from \"../layout/justifyClassMapper\";\nimport { PositionClassMapper } from \"../layout/positionClassMapper\";\nimport { FontStyleClassMapper } from \"../typography/fontStyleClassMapper\";\nimport { FontFamilyClassMapper } from \"../typography/fontFamilyClassMapper\";\nimport { FontWeightClassMapper } from \"../typography/fontWeightClassMapper\";\nimport { TextDecorationClassMapper } from \"../typography/textDecorationClassMapper\";\nimport { TextTransformClassMapper } from \"../typography/textTransformClassMapper\";\nimport { TextAlignClassMapper } from \"../typography/textAlignClassMapper\";\nimport { TruncateClassMapper } from \"../typography/truncateClassMapper\";\nimport { DeepPartial } from \"../../../utils/deepPartial\";\nimport { DisplayClassMapper } from \"../layout/displayClassMapper\";\nimport { twMerge } from \"tailwind-merge\";\nimport { OverflowClassMapper } from \"../layout/overflowClassMapper\";\nimport { WidthClassMapper } from \"../layout/widthClassMapper\";\nimport { HeightClassMapper } from \"../layout/heightClassMapper\";\nimport { pickFirstTruthyKeyByCategory, collectTruthyKeysByCategory, MULTI_VALUE_CATEGORIES, resetConflictKey } from \"../../../utils/componentUtils\";\n\ntype ComponentProps = { className?: string; children?: React.ReactNode; tag?: React.ElementType; };\ntype ThemeNode<P> = BaseClassMapper | ThemeMap<P>;\n\n// HTML tags where the native disabled attribute is valid and desired\nconst NATIVE_DISABLED_TAGS = new Set([\n 'button', 'input', 'select', 'textarea', 'fieldset', 'optgroup', 'option',\n]);\n\n// props consumed by the theme engine itself — never forwarded to the DOM\n// (boolean category props are stripped separately via ResolutionState.omitKeys)\nconst INTERNAL_PROPS = new Set(['className', 'tag', 'children', 'theme']);\n\n// attributes that are invalid on a given resolved tag — stripped so a wrong-tag\n// HTML attribute can't leak through a tag-switching component (e.g. type/form\n// reaching a rendered <a>, or href/target/download/rel reaching a rendered\n// <button>). Components like Button/NavLink/Badge union button + anchor attrs.\nconst TAG_INVALID_ATTRS: Record<string, readonly string[]> = {\n a: ['type', 'form', 'formAction', 'formEncType', 'formMethod', 'formNoValidate', 'formTarget'],\n button: ['href', 'target', 'download', 'rel', 'hrefLang', 'ping'],\n};\n\nexport type VaneComponentType = 'ui' | 'layout';\n\nexport type ThemeMap<P> = {\n [key: string]: ThemeNode<P>;\n};\n\nexport interface DefaultLayoutClassMappers {\n hide: HideClassMapper;\n items: ItemsClassMapper;\n justify: JustifyClassMapper;\n position: PositionClassMapper;\n display: DisplayClassMapper;\n overflow: OverflowClassMapper;\n}\n\nexport interface DefaultTypographyClassMappers {\n fontFamily: FontFamilyClassMapper;\n fontWeight: FontWeightClassMapper;\n fontStyle: FontStyleClassMapper;\n textDecoration: TextDecorationClassMapper;\n textTransform: TextTransformClassMapper;\n textAlign: TextAlignClassMapper;\n truncate: TruncateClassMapper;\n}\n\nexport interface BaseComponentTheme {\n layout: DefaultLayoutClassMappers;\n}\n\nexport interface BaseTypographyComponentTheme extends BaseComponentTheme {\n typography: DefaultTypographyClassMappers;\n}\n\nexport const defaultLayoutClassMappers: DefaultLayoutClassMappers = {\n hide: new HideClassMapper(),\n items: new ItemsClassMapper(),\n justify: new JustifyClassMapper(),\n position: new PositionClassMapper(),\n display: new DisplayClassMapper(),\n overflow: new OverflowClassMapper(),\n};\n\nexport interface DefaultSizedLayoutClassMappers extends DefaultLayoutClassMappers {\n width: WidthClassMapper;\n height: HeightClassMapper;\n}\n\nexport const defaultSizedLayoutClassMappers: DefaultSizedLayoutClassMappers = {\n ...defaultLayoutClassMappers,\n width: new WidthClassMapper(),\n height: new HeightClassMapper(),\n};\n\nexport const defaultTypographyClassMappers: DefaultTypographyClassMappers = {\n fontFamily: new FontFamilyClassMapper(),\n fontWeight: new FontWeightClassMapper(),\n fontStyle: new FontStyleClassMapper(),\n textDecoration: new TextDecorationClassMapper(),\n textTransform: new TextTransformClassMapper(),\n textAlign: new TextAlignClassMapper(),\n truncate: new TruncateClassMapper(),\n};\n\n/* Per-instance derived state: constant omitKeys/baseClasses + walkCache (memoizes the tree walk per extracted-keys signature; defaults only affect the cache key, extraClasses applied per call). */\ninterface ResolutionState {\n /** boolean prop names consumed by the theme system (union of all category keys) — stripped from DOM props */\n omitKeys: ReadonlySet<string>;\n /** `base` pre-split on whitespace, empty entries removed */\n baseClasses: readonly string[];\n /** extracted-keys signature → theme-tree walk output (pre-filtered, treated as immutable) */\n walkCache: Map<string, readonly string[]>;\n}\n\n/* Resolution state keyed by instance identity in a module-level WeakMap, not on the instance: deepClone/deepMerge copy instances generically, so instance state would leak into clones or break (Set/Map slots don't survive). Every clone/withDefaults() starts cold. */\nconst resolutionStateMap = new WeakMap<object, ResolutionState>();\n\nexport class ComponentTheme<P extends ComponentProps, TTheme extends object> {\n readonly tag: React.ElementType;\n // writable so `themeOverride` can append always-on classes on the cloned tree\n // (e.g. `theme.button.main.base += ' uppercase'`), matching the writable\n // `defaults`/`extraClasses` and the mapper-node `base` fields. Mutation is\n // safe only on ThemeProvider's pre-render clone (see the class doc-comment).\n base: string;\n readonly themes: TTheme;\n readonly vaneType?: VaneComponentType;\n // fallback for pickFirstTruthyKeyByCategory when props omit a category; merged via ThemeProvider\n defaults: Partial<P>;\n extraClasses: Partial<Record<keyof P, string>>;\n private readonly categories: readonly ComponentCategoryKey[];\n // base type decoupled from P so ComponentTheme<SpecificProps, T> stays structurally compatible\n private readonly tagFunction?: (props: ComponentProps, defaults: Partial<ComponentProps>) => React.ElementType;\n\n constructor(\n tag: React.ElementType,\n base: string,\n themes: DeepPartial<TTheme>,\n defaults: Partial<P> = {},\n categories: readonly ComponentCategoryKey[],\n tagFunction?: (props: P, defaults: Partial<P>) => React.ElementType,\n vaneType?: VaneComponentType\n ) {\n this.tag = tag;\n this.base = base;\n this.defaults = defaults;\n this.extraClasses = {};\n this.categories = categories;\n // safe: existing tagFunctions only access optional props (e.g. href)\n this.tagFunction = tagFunction as typeof this.tagFunction;\n this.vaneType = vaneType;\n this.themes = themes as TTheme;\n }\n\n withDefaults(defaults: Partial<P>): ComponentTheme<P, TTheme> {\n return new ComponentTheme<P, TTheme>(\n this.tag,\n this.base,\n this.themes,\n defaults,\n this.categories,\n this.tagFunction as ((props: P, defaults: Partial<P>) => React.ElementType) | undefined,\n this.vaneType,\n );\n }\n\n private resolutionState(): ResolutionState {\n let state = resolutionStateMap.get(this);\n if (state === undefined) {\n state = {\n omitKeys: new Set<string>(this.categories.flatMap(category => ComponentKeys[category])),\n baseClasses: this.base ? this.base.split(/\\s+/).filter(Boolean) : [],\n walkCache: new Map(),\n };\n resolutionStateMap.set(this, state);\n }\n return state;\n }\n\n /* Resolve the active key per category (props win over defaults) and expand `inherit` into inheritColor/Bg/Border. Shared by getClasses + getComponentConfig so both see the same key set. */\n private resolveExtractedKeys(props: P): Record<string, string> {\n const componentProps = props as unknown as Record<string, boolean>;\n const defaults = this.defaults as Record<string, boolean>;\n\n const extractedKeys: Record<string, string> = {};\n for (const category of this.categories) {\n if (MULTI_VALUE_CATEGORIES.has(category)) {\n // border/margin compose: store all active side keys space-joined for the mapper to union\n const collected = collectTruthyKeysByCategory(componentProps, defaults, category);\n if (collected.length > 0) {\n extractedKeys[category] = collected.join(' ');\n }\n continue;\n }\n const key = pickFirstTruthyKeyByCategory(componentProps, defaults, category);\n if (key !== undefined) {\n extractedKeys[category] = key;\n }\n }\n\n // expand `inheritAppearance` shorthand into COLOR/BG/BORDER only (size inheritance is opt-in via inheritSize)\n if (extractedKeys.appearance === 'inheritAppearance') {\n if (!extractedKeys.inheritColor) {\n extractedKeys.inheritColor = 'inheritColor';\n }\n if (!extractedKeys.inheritBg) {\n extractedKeys.inheritBg = 'inheritBg';\n }\n if (!extractedKeys.inheritBorder) {\n extractedKeys.inheritBorder = 'inheritBorder';\n }\n }\n\n return extractedKeys;\n }\n\n getClasses(props: P, precomputedKeys?: Record<string, string>): string[] {\n const extractedKeys = precomputedKeys ?? this.resolveExtractedKeys(props);\n const state = this.resolutionState();\n\n const classes: string[] = state.baseClasses.slice();\n\n // Signature of the resolved keys. for...in (not Object.keys) so any\n // enumerable inherited key on a caller-supplied precomputedKeys object is\n // captured too — mappers read keys via plain property access, which also\n // sees the prototype chain, and the signature must cover everything the\n // walk can observe. Both internal paths build plain objects in stable\n // `categories` order, so signatures are stable per instance.\n let signature = '';\n for (const category in extractedKeys) {\n signature += category;\n signature += ':';\n signature += extractedKeys[category];\n signature += '|';\n }\n\n let walkClasses = state.walkCache.get(signature);\n if (walkClasses === undefined) {\n const collected: string[] = [];\n const walk = (map: object) => {\n for (const key of Object.keys(map)) {\n const node = (map as ThemeMap<P>)[key];\n\n if (node instanceof BaseClassMapper) {\n collected.push(...node.getClasses(extractedKeys));\n } else if (node && typeof node === \"object\" && !Array.isArray(node)) {\n walk(node);\n }\n }\n };\n walk(this.themes);\n walkClasses = collected.filter(Boolean);\n state.walkCache.set(signature, walkClasses);\n }\n classes.push(...walkClasses);\n\n // extraClasses are applied per call (never cached) so the cached walk\n // output stays valid even if extraClasses are replaced on this instance\n for (const [, value] of Object.entries(extractedKeys)) {\n if (value && this.extraClasses[value as keyof P]) {\n const existingClasses = this.extraClasses[value as keyof P];\n if (existingClasses !== undefined) {\n classes.push(...existingClasses.split(/\\s+/));\n }\n }\n }\n\n return classes.filter(Boolean);\n }\n\n getTag(props: P): React.ElementType {\n if (this.tagFunction) {\n return this.tagFunction(props, this.defaults);\n }\n return this.tag;\n }\n\n getComponentConfig(props: P) {\n const componentProps = props as unknown as Record<string, boolean>;\n const extractedKeys = this.resolveExtractedKeys(props);\n\n // dev-only: categories are mutually exclusive, but the boolean-props API\n // can't express that in types — when 2+ props of one category are\n // explicitly true, the winner is ComponentKeys array order (NOT JSX\n // order), which is undiscoverable without a warning\n if (process.env.NODE_ENV !== 'production') {\n for (const category of this.categories) {\n const truthyKeys = ComponentKeys[category].filter(k => componentProps[k] === true);\n if (MULTI_VALUE_CATEGORIES.has(category)) {\n const reset = resetConflictKey(truthyKeys);\n if (reset) {\n const tagName = typeof this.tag === 'string' ? `<${this.tag}>` : 'component';\n console.warn(\n `VaneUI: conflicting ${category} props on ${tagName}: ${truthyKeys.join(', ')} — \"${reset}\" resets and wins over the side toggles. Pass either side toggles or a reset, not both.`\n );\n }\n continue;\n }\n if (truthyKeys.length > 1) {\n const tagName = typeof this.tag === 'string' ? `<${this.tag}>` : 'component';\n console.warn(\n `VaneUI: conflicting ${category} props on ${tagName}: ${truthyKeys.join(', ')} — \"${truthyKeys[0]}\" wins (canonical key order, not JSX order). Pass only one prop per category.`\n );\n }\n }\n }\n\n const { omitKeys } = this.resolutionState();\n\n // Build the DOM-props object in a single pass over the props actually\n // present, skipping theme-consumed keys via the precomputed omit set.\n // (Previously: spread the props, then issue one `delete` per possible\n // category key — 150+ deletes per render regardless of how few props the\n // element actually has.)\n const rawProps = props as Record<PropertyKey, unknown>;\n const other: Record<PropertyKey, unknown> = {};\n for (const key of Object.keys(rawProps)) {\n if (omitKeys.has(key) || INTERNAL_PROPS.has(key)) {\n continue;\n }\n other[key] = rawProps[key];\n }\n // parity with the previous spread-based copy: enumerable symbol-keyed\n // props were forwarded too, and Object.keys only yields string keys\n for (const sym of Object.getOwnPropertySymbols(rawProps)) {\n if (Object.prototype.propertyIsEnumerable.call(rawProps, sym)) {\n other[sym] = rawProps[sym];\n }\n }\n\n const { className, tag } = props;\n const componentTag: React.ElementType = tag ?? this.getTag(props) ?? \"div\";\n\n // preserve the HTML-native disabled attr (it overlaps with a category\n // key), but only on tags that support it — a placeholder link rendered\n // for disabled href-switching must stay focusable per the aria-disabled\n // pattern, and native disabled would pull it out of the tab order\n const supportsNativeDisabled =\n typeof componentTag !== 'string' || NATIVE_DISABLED_TAGS.has(componentTag);\n if (rawProps.disabled !== undefined && supportsNativeDisabled) {\n other.disabled = rawProps.disabled;\n } else if (!supportsNativeDisabled && 'disabled' in other) {\n // a tag that doesn't support native disabled (e.g. <a>, <span>) must not\n // carry a leaked `disabled` attribute — the state is exposed via\n // data-disabled / aria-disabled instead\n delete other.disabled;\n }\n\n // `readOnly` is now a category (so the ReadOnlyClassMapper can style it),\n // which means omitKeys strips it. Re-add the native attribute on the tags\n // that support it so the field stays read-only; data-readonly (below)\n // carries the non-class CSS bits (caret-color / hover neutralization).\n if (rawProps.readOnly !== undefined &&\n (typeof componentTag !== 'string' || componentTag === 'input' || componentTag === 'textarea')) {\n other.readOnly = rawProps.readOnly;\n }\n\n // drop attributes that don't belong on the resolved tag\n if (typeof componentTag === 'string') {\n const invalidAttrs = TAG_INVALID_ATTRS[componentTag];\n if (invalidAttrs) {\n for (const attr of invalidAttrs) {\n if (attr in other) delete other[attr];\n }\n }\n }\n\n const themeGeneratedClasses = this.getClasses(props, extractedKeys);\n const finalClasses = twMerge(...themeGeneratedClasses, className);\n\n const dataAttributes: Record<string, string> = {};\n if (this.vaneType) {\n dataAttributes['data-vane-type'] = this.vaneType;\n }\n if (extractedKeys.size) {\n dataAttributes['data-size'] = extractedKeys.size;\n }\n if (extractedKeys.responsiveSizing === 'responsiveSizing') {\n dataAttributes['data-responsive'] = '';\n }\n // data-appearance suppressed when inheritColor is active (lets colors cascade from ancestor).\n // data-variant emitted when appearance is present OR variant != outline (so `<Row filled>` works without explicit appearance).\n const hasAppearance = extractedKeys.appearance && extractedKeys.inheritColor !== 'inheritColor';\n if (hasAppearance) {\n dataAttributes['data-appearance'] = extractedKeys.appearance;\n }\n if (extractedKeys.variant && (hasAppearance || extractedKeys.variant !== 'outline')) {\n dataAttributes['data-variant'] = extractedKeys.variant;\n }\n if (rawProps.disabled) {\n dataAttributes['data-disabled'] = 'true';\n }\n if (rawProps.readOnly) {\n dataAttributes['data-readonly'] = 'true';\n if (rawProps['aria-readonly'] === undefined) {\n dataAttributes['aria-readonly'] = 'true';\n }\n }\n // error state must be AT-perceivable, not color-only: emit aria-invalid\n // (unless the consumer set it explicitly) alongside a data-status hook\n if (extractedKeys.validity === 'invalid') {\n dataAttributes['data-status'] = 'error';\n if (rawProps['aria-invalid'] === undefined) {\n dataAttributes['aria-invalid'] = 'true';\n }\n }\n\n return {\n Tag: componentTag,\n finalClasses,\n finalProps: { ...other, ...dataAttributes },\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AA2BA,MAAM,oBAAA,uBAA2B,GAAA,CAAI;AAAA,EACnC,QAAA;AAAA,EAAU,OAAA;AAAA,EAAS,QAAA;AAAA,EAAU,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY,UAAA;AAAA,EAAY;AACnE,CAAC,CAAA;AAID,MAAM,cAAA,uBAAqB,GAAA,CAAI,CAAC,aAAa,KAAA,EAAO,UAAA,EAAY,OAAO,CAAC,CAAA;AAMxE,MAAM,iBAAA,GAAuD;AAAA,EAC3D,CAAA,EAAG,CAAC,MAAA,EAAQ,MAAA,EAAQ,cAAc,aAAA,EAAe,YAAA,EAAc,kBAAkB,YAAY,CAAA;AAAA,EAC7F,QAAQ,CAAC,MAAA,EAAQ,UAAU,UAAA,EAAY,KAAA,EAAO,YAAY,MAAM;AAClE,CAAA;AAmCO,MAAM,yBAAA,GAAuD;AAAA,EAClE,IAAA,EAAM,IAAI,eAAA,EAAgB;AAAA,EAC1B,KAAA,EAAO,IAAI,gBAAA,EAAiB;AAAA,EAC5B,OAAA,EAAS,IAAI,kBAAA,EAAmB;AAAA,EAChC,QAAA,EAAU,IAAI,mBAAA,EAAoB;AAAA,EAClC,OAAA,EAAS,IAAI,kBAAA,EAAmB;AAAA,EAChC,QAAA,EAAU,IAAI,mBAAA;AAChB;AAOO,MAAM,8BAAA,GAAiE;AAAA,EAC5E,GAAG,yBAAA;AAAA,EACH,KAAA,EAAO,IAAI,gBAAA,EAAiB;AAAA,EAC5B,MAAA,EAAQ,IAAI,iBAAA;AACd;AAEO,MAAM,6BAAA,GAA+D;AAAA,EAC1E,UAAA,EAAY,IAAI,qBAAA,EAAsB;AAAA,EACtC,UAAA,EAAY,IAAI,qBAAA,EAAsB;AAAA,EACtC,SAAA,EAAW,IAAI,oBAAA,EAAqB;AAAA,EACpC,cAAA,EAAgB,IAAI,yBAAA,EAA0B;AAAA,EAC9C,aAAA,EAAe,IAAI,wBAAA,EAAyB;AAAA,EAC5C,SAAA,EAAW,IAAI,oBAAA,EAAqB;AAAA,EACpC,QAAA,EAAU,IAAI,mBAAA;AAChB;AAaA,MAAM,kBAAA,uBAAyB,OAAA,EAAiC;AAEzD,MAAM,cAAA,CAAgE;AAAA,EAgB3E,WAAA,CACE,KACA,IAAA,EACA,MAAA,EACA,WAAuB,EAAC,EACxB,UAAA,EACA,WAAA,EACA,QAAA,EACA;AACA,IAAA,IAAA,CAAK,GAAA,GAAM,GAAA;AACX,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,eAAe,EAAC;AACrB,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAElB,IAAA,IAAA,CAAK,WAAA,GAAc,WAAA;AACnB,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAAA,EAChB;AAAA,EAEA,aAAa,QAAA,EAAiD;AAC5D,IAAA,OAAO,IAAI,cAAA;AAAA,MACT,IAAA,CAAK,GAAA;AAAA,MACL,IAAA,CAAK,IAAA;AAAA,MACL,IAAA,CAAK,MAAA;AAAA,MACL,QAAA;AAAA,MACA,IAAA,CAAK,UAAA;AAAA,MACL,IAAA,CAAK,WAAA;AAAA,MACL,IAAA,CAAK;AAAA,KACP;AAAA,EACF;AAAA,EAEQ,eAAA,GAAmC;AACzC,IAAA,IAAI,KAAA,GAAQ,kBAAA,CAAmB,GAAA,CAAI,IAAI,CAAA;AACvC,IAAA,IAAI,UAAU,MAAA,EAAW;AACvB,MAAA,KAAA,GAAQ;AAAA,QACN,QAAA,EAAU,IAAI,GAAA,CAAY,IAAA,CAAK,UAAA,CAAW,QAAQ,CAAA,QAAA,KAAY,aAAA,CAAc,QAAQ,CAAC,CAAC,CAAA;AAAA,QACtF,WAAA,EAAa,IAAA,CAAK,IAAA,GAAO,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,GAAI,EAAC;AAAA,QACnE,SAAA,sBAAe,GAAA;AAAI,OACrB;AACA,MAAA,kBAAA,CAAmB,GAAA,CAAI,MAAM,KAAK,CAAA;AAAA,IACpC;AACA,IAAA,OAAO,KAAA;AAAA,EACT;AAAA;AAAA,EAGQ,qBAAqB,KAAA,EAAkC;AAC7D,IAAA,MAAM,cAAA,GAAiB,KAAA;AACvB,IAAA,MAAM,WAAW,IAAA,CAAK,QAAA;AAEtB,IAAA,MAAM,gBAAwC,EAAC;AAC/C,IAAA,KAAA,MAAW,QAAA,IAAY,KAAK,UAAA,EAAY;AACtC,MAAA,IAAI,sBAAA,CAAuB,GAAA,CAAI,QAAQ,CAAA,EAAG;AAExC,QAAA,MAAM,SAAA,GAAY,2BAAA,CAA4B,cAAA,EAAgB,QAAA,EAAU,QAAQ,CAAA;AAChF,QAAA,IAAI,SAAA,CAAU,SAAS,CAAA,EAAG;AACxB,UAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,SAAA,CAAU,IAAA,CAAK,GAAG,CAAA;AAAA,QAC9C;AACA,QAAA;AAAA,MACF;AACA,MAAA,MAAM,GAAA,GAAM,4BAAA,CAA6B,cAAA,EAAgB,QAAA,EAAU,QAAQ,CAAA;AAC3E,MAAA,IAAI,QAAQ,MAAA,EAAW;AACrB,QAAA,aAAA,CAAc,QAAQ,CAAA,GAAI,GAAA;AAAA,MAC5B;AAAA,IACF;AAGA,IAAA,IAAI,aAAA,CAAc,eAAe,mBAAA,EAAqB;AACpD,MAAA,IAAI,CAAC,cAAc,YAAA,EAAc;AAC/B,QAAA,aAAA,CAAc,YAAA,GAAe,cAAA;AAAA,MAC/B;AACA,MAAA,IAAI,CAAC,cAAc,SAAA,EAAW;AAC5B,QAAA,aAAA,CAAc,SAAA,GAAY,WAAA;AAAA,MAC5B;AACA,MAAA,IAAI,CAAC,cAAc,aAAA,EAAe;AAChC,QAAA,aAAA,CAAc,aAAA,GAAgB,eAAA;AAAA,MAChC;AAAA,IACF;AAEA,IAAA,OAAO,aAAA;AAAA,EACT;AAAA,EAEA,UAAA,CAAW,OAAU,eAAA,EAAoD;AACvE,IAAA,MAAM,aAAA,GAAgB,eAAA,IAAmB,IAAA,CAAK,oBAAA,CAAqB,KAAK,CAAA;AACxE,IAAA,MAAM,KAAA,GAAQ,KAAK,eAAA,EAAgB;AAEnC,IAAA,MAAM,OAAA,GAAoB,KAAA,CAAM,WAAA,CAAY,KAAA,EAAM;AAQlD,IAAA,IAAI,SAAA,GAAY,EAAA;AAChB,IAAA,KAAA,MAAW,YAAY,aAAA,EAAe;AACpC,MAAA,SAAA,IAAa,QAAA;AACb,MAAA,SAAA,IAAa,GAAA;AACb,MAAA,SAAA,IAAa,cAAc,QAAQ,CAAA;AACnC,MAAA,SAAA,IAAa,GAAA;AAAA,IACf;AAEA,IAAA,IAAI,WAAA,GAAc,KAAA,CAAM,SAAA,CAAU,GAAA,CAAI,SAAS,CAAA;AAC/C,IAAA,IAAI,gBAAgB,MAAA,EAAW;AAC7B,MAAA,MAAM,YAAsB,EAAC;AAC7B,MAAA,MAAM,IAAA,GAAO,CAAC,GAAA,KAAgB;AAC5B,QAAA,KAAA,MAAW,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA,EAAG;AAClC,UAAA,MAAM,IAAA,GAAQ,IAAoB,GAAG,CAAA;AAErC,UAAA,IAAI,gBAAgB,eAAA,EAAiB;AACnC,YAAA,SAAA,CAAU,IAAA,CAAK,GAAG,IAAA,CAAK,UAAA,CAAW,aAAa,CAAC,CAAA;AAAA,UAClD,CAAA,MAAA,IAAW,QAAQ,OAAO,IAAA,KAAS,YAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACnE,YAAA,IAAA,CAAK,IAAI,CAAA;AAAA,UACX;AAAA,QACF;AAAA,MACF,CAAA;AACA,MAAA,IAAA,CAAK,KAAK,MAAM,CAAA;AAChB,MAAA,WAAA,GAAc,SAAA,CAAU,OAAO,OAAO,CAAA;AACtC,MAAA,KAAA,CAAM,SAAA,CAAU,GAAA,CAAI,SAAA,EAAW,WAAW,CAAA;AAAA,IAC5C;AACA,IAAA,OAAA,CAAQ,IAAA,CAAK,GAAG,WAAW,CAAA;AAI3B,IAAA,KAAA,MAAW,GAAG,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,aAAa,CAAA,EAAG;AACrD,MAAA,IAAI,KAAA,IAAS,IAAA,CAAK,YAAA,CAAa,KAAgB,CAAA,EAAG;AAChD,QAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,YAAA,CAAa,KAAgB,CAAA;AAC1D,QAAA,IAAI,oBAAoB,MAAA,EAAW;AACjC,UAAA,OAAA,CAAQ,IAAA,CAAK,GAAG,eAAA,CAAgB,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,QAC9C;AAAA,MACF;AAAA,IACF;AAEA,IAAA,OAAO,OAAA,CAAQ,OAAO,OAAO,CAAA;AAAA,EAC/B;AAAA,EAEA,OAAO,KAAA,EAA6B;AAClC,IAAA,IAAI,KAAK,WAAA,EAAa;AACpB,MAAA,OAAO,IAAA,CAAK,WAAA,CAAY,KAAA,EAAO,IAAA,CAAK,QAAQ,CAAA;AAAA,IAC9C;AACA,IAAA,OAAO,IAAA,CAAK,GAAA;AAAA,EACd;AAAA,EAEA,mBAAmB,KAAA,EAAU;AAC3B,IAAA,MAAM,cAAA,GAAiB,KAAA;AACvB,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,oBAAA,CAAqB,KAAK,CAAA;AAMrD,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,MAAA,KAAA,MAAW,QAAA,IAAY,KAAK,UAAA,EAAY;AACtC,QAAA,MAAM,UAAA,GAAa,cAAc,QAAQ,CAAA,CAAE,OAAO,CAAA,CAAA,KAAK,cAAA,CAAe,CAAC,CAAA,KAAM,IAAI,CAAA;AACjF,QAAA,IAAI,sBAAA,CAAuB,GAAA,CAAI,QAAQ,CAAA,EAAG;AACxC,UAAA,MAAM,KAAA,GAAQ,iBAAiB,UAAU,CAAA;AACzC,UAAA,IAAI,KAAA,EAAO;AACT,YAAA,MAAM,OAAA,GAAU,OAAO,IAAA,CAAK,GAAA,KAAQ,WAAW,CAAA,CAAA,EAAI,IAAA,CAAK,GAAG,CAAA,CAAA,CAAA,GAAM,WAAA;AACjE,YAAA,OAAA,CAAQ,IAAA;AAAA,cACN,CAAA,oBAAA,EAAuB,QAAQ,CAAA,UAAA,EAAa,OAAO,CAAA,EAAA,EAAK,WAAW,IAAA,CAAK,IAAI,CAAC,CAAA,SAAA,EAAO,KAAK,CAAA,uFAAA;AAAA,aAC3F;AAAA,UACF;AACA,UAAA;AAAA,QACF;AACA,QAAA,IAAI,UAAA,CAAW,SAAS,CAAA,EAAG;AACzB,UAAA,MAAM,OAAA,GAAU,OAAO,IAAA,CAAK,GAAA,KAAQ,WAAW,CAAA,CAAA,EAAI,IAAA,CAAK,GAAG,CAAA,CAAA,CAAA,GAAM,WAAA;AACjE,UAAA,OAAA,CAAQ,IAAA;AAAA,YACN,CAAA,oBAAA,EAAuB,QAAQ,CAAA,UAAA,EAAa,OAAO,CAAA,EAAA,EAAK,UAAA,CAAW,IAAA,CAAK,IAAI,CAAC,CAAA,SAAA,EAAO,UAAA,CAAW,CAAC,CAAC,CAAA,6EAAA;AAAA,WACnG;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,IAAA,MAAM,EAAE,QAAA,EAAS,GAAI,IAAA,CAAK,eAAA,EAAgB;AAO1C,IAAA,MAAM,QAAA,GAAW,KAAA;AACjB,IAAA,MAAM,QAAsC,EAAC;AAC7C,IAAA,KAAA,MAAW,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA,EAAG;AACvC,MAAA,IAAI,SAAS,GAAA,CAAI,GAAG,KAAK,cAAA,CAAe,GAAA,CAAI,GAAG,CAAA,EAAG;AAChD,QAAA;AAAA,MACF;AACA,MAAA,KAAA,CAAM,GAAG,CAAA,GAAI,QAAA,CAAS,GAAG,CAAA;AAAA,IAC3B;AAGA,IAAA,KAAA,MAAW,GAAA,IAAO,MAAA,CAAO,qBAAA,CAAsB,QAAQ,CAAA,EAAG;AACxD,MAAA,IAAI,OAAO,SAAA,CAAU,oBAAA,CAAqB,IAAA,CAAK,QAAA,EAAU,GAAG,CAAA,EAAG;AAC7D,QAAA,KAAA,CAAM,GAAG,CAAA,GAAI,QAAA,CAAS,GAAG,CAAA;AAAA,MAC3B;AAAA,IACF;AAEA,IAAA,MAAM,EAAE,SAAA,EAAW,GAAA,EAAI,GAAI,KAAA;AAC3B,IAAA,MAAM,YAAA,GAAkC,GAAA,IAAO,IAAA,CAAK,MAAA,CAAO,KAAK,CAAA,IAAK,KAAA;AAMrE,IAAA,MAAM,yBACJ,OAAO,YAAA,KAAiB,QAAA,IAAY,oBAAA,CAAqB,IAAI,YAAY,CAAA;AAC3E,IAAA,IAAI,QAAA,CAAS,QAAA,KAAa,MAAA,IAAa,sBAAA,EAAwB;AAC7D,MAAA,KAAA,CAAM,WAAW,QAAA,CAAS,QAAA;AAAA,IAC5B,CAAA,MAAA,IAAW,CAAC,sBAAA,IAA0B,UAAA,IAAc,KAAA,EAAO;AAIzD,MAAA,OAAO,KAAA,CAAM,QAAA;AAAA,IACf;AAMA,IAAA,IAAI,QAAA,CAAS,aAAa,MAAA,KACrB,OAAO,iBAAiB,QAAA,IAAY,YAAA,KAAiB,OAAA,IAAW,YAAA,KAAiB,UAAA,CAAA,EAAa;AACjG,MAAA,KAAA,CAAM,WAAW,QAAA,CAAS,QAAA;AAAA,IAC5B;AAGA,IAAA,IAAI,OAAO,iBAAiB,QAAA,EAAU;AACpC,MAAA,MAAM,YAAA,GAAe,kBAAkB,YAAY,CAAA;AACnD,MAAA,IAAI,YAAA,EAAc;AAChB,QAAA,KAAA,MAAW,QAAQ,YAAA,EAAc;AAC/B,UAAA,IAAI,IAAA,IAAQ,KAAA,EAAO,OAAO,KAAA,CAAM,IAAI,CAAA;AAAA,QACtC;AAAA,MACF;AAAA,IACF;AAEA,IAAA,MAAM,qBAAA,GAAwB,IAAA,CAAK,UAAA,CAAW,KAAA,EAAO,aAAa,CAAA;AAClE,IAAA,MAAM,YAAA,GAAe,OAAA,CAAQ,GAAG,qBAAA,EAAuB,SAAS,CAAA;AAEhE,IAAA,MAAM,iBAAyC,EAAC;AAChD,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,cAAA,CAAe,gBAAgB,IAAI,IAAA,CAAK,QAAA;AAAA,IAC1C;AACA,IAAA,IAAI,cAAc,IAAA,EAAM;AACtB,MAAA,cAAA,CAAe,WAAW,IAAI,aAAA,CAAc,IAAA;AAAA,IAC9C;AACA,IAAA,IAAI,aAAA,CAAc,qBAAqB,kBAAA,EAAoB;AACzD,MAAA,cAAA,CAAe,iBAAiB,CAAA,GAAI,EAAA;AAAA,IACtC;AAGA,IAAA,MAAM,aAAA,GAAgB,aAAA,CAAc,UAAA,IAAc,aAAA,CAAc,YAAA,KAAiB,cAAA;AACjF,IAAA,IAAI,aAAA,EAAe;AACjB,MAAA,cAAA,CAAe,iBAAiB,IAAI,aAAA,CAAc,UAAA;AAAA,IACpD;AACA,IAAA,IAAI,aAAA,CAAc,OAAA,KAAY,aAAA,IAAiB,aAAA,CAAc,YAAY,SAAA,CAAA,EAAY;AACnF,MAAA,cAAA,CAAe,cAAc,IAAI,aAAA,CAAc,OAAA;AAAA,IACjD;AACA,IAAA,IAAI,SAAS,QAAA,EAAU;AACrB,MAAA,cAAA,CAAe,eAAe,CAAA,GAAI,MAAA;AAAA,IACpC;AACA,IAAA,IAAI,SAAS,QAAA,EAAU;AACrB,MAAA,cAAA,CAAe,eAAe,CAAA,GAAI,MAAA;AAClC,MAAA,IAAI,QAAA,CAAS,eAAe,CAAA,KAAM,MAAA,EAAW;AAC3C,QAAA,cAAA,CAAe,eAAe,CAAA,GAAI,MAAA;AAAA,MACpC;AAAA,IACF;AAGA,IAAA,IAAI,aAAA,CAAc,aAAa,SAAA,EAAW;AACxC,MAAA,cAAA,CAAe,aAAa,CAAA,GAAI,OAAA;AAChC,MAAA,IAAI,QAAA,CAAS,cAAc,CAAA,KAAM,MAAA,EAAW;AAC1C,QAAA,cAAA,CAAe,cAAc,CAAA,GAAI,MAAA;AAAA,MACnC;AAAA,IACF;AAEA,IAAA,OAAO;AAAA,MACL,GAAA,EAAK,YAAA;AAAA,MACL,YAAA;AAAA,MACA,UAAA,EAAY,EAAE,GAAG,KAAA,EAAO,GAAG,cAAA;AAAe,KAC5C;AAAA,EACF;AACF;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { SimpleConsumerClassMapper } from '../appearance/simpleConsumerClassMapper.mjs';
2
2
  import { ShadowAppearanceClassMapper } from '../appearance/shadowAppearanceClassMapper.mjs';
3
- import { bgConsumerClasses, textConsumerClass, borderConsumerClass, ringConsumerClass, focusVisibleConsumerClass, accentConsumerClass, checkedBgConsumerClass, checkedOnlyBgConsumerClass } from '../../classes/appearanceClasses.mjs';
3
+ import { bgConsumerClasses, textConsumerClass, borderConsumerClass, ringConsumerClass, focusVisibleConsumerClass, accentConsumerClass, checkedBgConsumerClass } from '../../classes/appearanceClasses.mjs';
4
4
 
5
5
  const bgAppearance = new SimpleConsumerClassMapper({ base: bgConsumerClasses.base }, "bg");
6
6
  const bgHoverAppearance = new SimpleConsumerClassMapper({ base: bgConsumerClasses.base, hover: bgConsumerClasses.hover }, "bg");
@@ -12,8 +12,7 @@ const ringAppearance = new SimpleConsumerClassMapper({ base: ringConsumerClass,
12
12
  const focusVisibleAppearance = new SimpleConsumerClassMapper({ base: focusVisibleConsumerClass }, "focusVisible");
13
13
  const accentAppearance = new SimpleConsumerClassMapper({ base: accentConsumerClass }, "accent");
14
14
  const checkedBgAppearance = new SimpleConsumerClassMapper({ base: checkedBgConsumerClass }, "bg");
15
- const checkedOnlyBgAppearance = new SimpleConsumerClassMapper({ base: checkedOnlyBgConsumerClass }, "bg");
16
15
  const shadowAppearance = new ShadowAppearanceClassMapper();
17
16
 
18
- export { accentAppearance, bgActiveAppearance, bgAppearance, bgHoverAppearance, bgHoverOnlyAppearance, borderAppearance, checkedBgAppearance, checkedOnlyBgAppearance, focusVisibleAppearance, ringAppearance, shadowAppearance, textAppearance };
17
+ export { accentAppearance, bgActiveAppearance, bgAppearance, bgHoverAppearance, bgHoverOnlyAppearance, borderAppearance, checkedBgAppearance, focusVisibleAppearance, ringAppearance, shadowAppearance, textAppearance };
19
18
  //# sourceMappingURL=appearanceClassMappers.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"appearanceClassMappers.mjs","sources":["../../../../../../src/components/ui/theme/common/appearanceClassMappers.ts"],"sourcesContent":["import { SimpleConsumerClassMapper } from \"../appearance/simpleConsumerClassMapper\";\nimport { ShadowAppearanceClassMapper } from \"../appearance/shadowAppearanceClassMapper\";\nimport {\n bgConsumerClasses,\n textConsumerClass,\n borderConsumerClass,\n ringConsumerClass,\n focusVisibleConsumerClass,\n accentConsumerClass,\n checkedBgConsumerClass,\n checkedOnlyBgConsumerClass\n} from \"../../classes/appearanceClasses\";\n\n/** Background appearance — base color only */\nexport const bgAppearance = new SimpleConsumerClassMapper({ base: bgConsumerClasses.base }, 'bg');\n\n/** Background appearance — base + hover */\nexport const bgHoverAppearance = new SimpleConsumerClassMapper({ base: bgConsumerClasses.base, hover: bgConsumerClasses.hover }, 'bg');\n\n/** Background appearance — hover only, no idle bg (MenuItem, NavLink, MenuLabel) */\nexport const bgHoverOnlyAppearance = new SimpleConsumerClassMapper({ hover: bgConsumerClasses.hover }, 'bg');\n\n/** Background appearance — base + hover + active (Button) */\nexport const bgActiveAppearance = new SimpleConsumerClassMapper({ base: bgConsumerClasses.base, hover: bgConsumerClasses.hover, active: bgConsumerClasses.active }, 'bg');\n\n/** Text color appearance */\nexport const textAppearance = new SimpleConsumerClassMapper({ base: textConsumerClass }, 'text');\n\n/** Border color appearance — alwaysOutput so border has a color even without an explicit appearance prop */\nexport const borderAppearance = new SimpleConsumerClassMapper({ base: borderConsumerClass, alwaysOutput: true }, 'border');\n\n/** Ring color appearance — alwaysOutput so ring has a color even without an explicit appearance prop (symmetric with border) */\nexport const ringAppearance = new SimpleConsumerClassMapper({ base: ringConsumerClass, alwaysOutput: true }, 'ring');\n\n/** Focus-visible outline appearance */\nexport const focusVisibleAppearance = new SimpleConsumerClassMapper({ base: focusVisibleConsumerClass }, 'focusVisible');\n\n/** Accent color appearance (Checkbox) */\nexport const accentAppearance = new SimpleConsumerClassMapper({ base: accentConsumerClass }, 'accent');\n\n/** Checked background appearance (Checkbox) */\nexport const checkedBgAppearance = new SimpleConsumerClassMapper({ base: checkedBgConsumerClass }, 'bg');\n\n/** Checked-only background appearance (Radio) */\nexport const checkedOnlyBgAppearance = new SimpleConsumerClassMapper({ base: checkedOnlyBgConsumerClass }, 'bg');\n\n/** Shadow appearance (static — differentiation between UI/layout happens via CSS variables) */\nexport const shadowAppearance = new ShadowAppearanceClassMapper();\n"],"names":[],"mappings":";;;;AAcO,MAAM,YAAA,GAAe,IAAI,yBAAA,CAA0B,EAAE,MAAM,iBAAA,CAAkB,IAAA,IAAQ,IAAI;AAGzF,MAAM,iBAAA,GAAoB,IAAI,yBAAA,CAA0B,EAAE,IAAA,EAAM,iBAAA,CAAkB,IAAA,EAAM,KAAA,EAAO,iBAAA,CAAkB,KAAA,EAAM,EAAG,IAAI;AAG9H,MAAM,qBAAA,GAAwB,IAAI,yBAAA,CAA0B,EAAE,OAAO,iBAAA,CAAkB,KAAA,IAAS,IAAI;AAGpG,MAAM,kBAAA,GAAqB,IAAI,yBAAA,CAA0B,EAAE,MAAM,iBAAA,CAAkB,IAAA,EAAM,KAAA,EAAO,iBAAA,CAAkB,KAAA,EAAO,MAAA,EAAQ,iBAAA,CAAkB,MAAA,IAAU,IAAI;AAGjK,MAAM,iBAAiB,IAAI,yBAAA,CAA0B,EAAE,IAAA,EAAM,iBAAA,IAAqB,MAAM;AAGxF,MAAM,gBAAA,GAAmB,IAAI,yBAAA,CAA0B,EAAE,MAAM,mBAAA,EAAqB,YAAA,EAAc,IAAA,EAAK,EAAG,QAAQ;AAGlH,MAAM,cAAA,GAAiB,IAAI,yBAAA,CAA0B,EAAE,MAAM,iBAAA,EAAmB,YAAA,EAAc,IAAA,EAAK,EAAG,MAAM;AAG5G,MAAM,yBAAyB,IAAI,yBAAA,CAA0B,EAAE,IAAA,EAAM,yBAAA,IAA6B,cAAc;AAGhH,MAAM,mBAAmB,IAAI,yBAAA,CAA0B,EAAE,IAAA,EAAM,mBAAA,IAAuB,QAAQ;AAG9F,MAAM,sBAAsB,IAAI,yBAAA,CAA0B,EAAE,IAAA,EAAM,sBAAA,IAA0B,IAAI;AAGhG,MAAM,0BAA0B,IAAI,yBAAA,CAA0B,EAAE,IAAA,EAAM,0BAAA,IAA8B,IAAI;AAGxG,MAAM,gBAAA,GAAmB,IAAI,2BAAA;;;;"}
1
+ {"version":3,"file":"appearanceClassMappers.mjs","sources":["../../../../../../src/components/ui/theme/common/appearanceClassMappers.ts"],"sourcesContent":["import { SimpleConsumerClassMapper } from \"../appearance/simpleConsumerClassMapper\";\nimport { ShadowAppearanceClassMapper } from \"../appearance/shadowAppearanceClassMapper\";\nimport {\n bgConsumerClasses,\n textConsumerClass,\n borderConsumerClass,\n ringConsumerClass,\n focusVisibleConsumerClass,\n accentConsumerClass,\n checkedBgConsumerClass\n} from \"../../classes/appearanceClasses\";\n\n/** Background appearance — base color only */\nexport const bgAppearance = new SimpleConsumerClassMapper({ base: bgConsumerClasses.base }, 'bg');\n\n/** Background appearance — base + hover */\nexport const bgHoverAppearance = new SimpleConsumerClassMapper({ base: bgConsumerClasses.base, hover: bgConsumerClasses.hover }, 'bg');\n\n/** Background appearance — hover only, no idle bg (MenuItem, NavLink, MenuLabel) */\nexport const bgHoverOnlyAppearance = new SimpleConsumerClassMapper({ hover: bgConsumerClasses.hover }, 'bg');\n\n/** Background appearance — base + hover + active (Button) */\nexport const bgActiveAppearance = new SimpleConsumerClassMapper({ base: bgConsumerClasses.base, hover: bgConsumerClasses.hover, active: bgConsumerClasses.active }, 'bg');\n\n/** Text color appearance */\nexport const textAppearance = new SimpleConsumerClassMapper({ base: textConsumerClass }, 'text');\n\n/** Border color appearance — alwaysOutput so border has a color even without an explicit appearance prop */\nexport const borderAppearance = new SimpleConsumerClassMapper({ base: borderConsumerClass, alwaysOutput: true }, 'border');\n\n/** Ring color appearance — alwaysOutput so ring has a color even without an explicit appearance prop (symmetric with border) */\nexport const ringAppearance = new SimpleConsumerClassMapper({ base: ringConsumerClass, alwaysOutput: true }, 'ring');\n\n/** Focus-visible outline appearance */\nexport const focusVisibleAppearance = new SimpleConsumerClassMapper({ base: focusVisibleConsumerClass }, 'focusVisible');\n\n/** Accent color appearance (Checkbox) */\nexport const accentAppearance = new SimpleConsumerClassMapper({ base: accentConsumerClass }, 'accent');\n\n/** Checked background appearance (Checkbox) */\nexport const checkedBgAppearance = new SimpleConsumerClassMapper({ base: checkedBgConsumerClass }, 'bg');\n\n/** Shadow appearance (static — differentiation between UI/layout happens via CSS variables) */\nexport const shadowAppearance = new ShadowAppearanceClassMapper();\n"],"names":[],"mappings":";;;;AAaO,MAAM,YAAA,GAAe,IAAI,yBAAA,CAA0B,EAAE,MAAM,iBAAA,CAAkB,IAAA,IAAQ,IAAI;AAGzF,MAAM,iBAAA,GAAoB,IAAI,yBAAA,CAA0B,EAAE,IAAA,EAAM,iBAAA,CAAkB,IAAA,EAAM,KAAA,EAAO,iBAAA,CAAkB,KAAA,EAAM,EAAG,IAAI;AAG9H,MAAM,qBAAA,GAAwB,IAAI,yBAAA,CAA0B,EAAE,OAAO,iBAAA,CAAkB,KAAA,IAAS,IAAI;AAGpG,MAAM,kBAAA,GAAqB,IAAI,yBAAA,CAA0B,EAAE,MAAM,iBAAA,CAAkB,IAAA,EAAM,KAAA,EAAO,iBAAA,CAAkB,KAAA,EAAO,MAAA,EAAQ,iBAAA,CAAkB,MAAA,IAAU,IAAI;AAGjK,MAAM,iBAAiB,IAAI,yBAAA,CAA0B,EAAE,IAAA,EAAM,iBAAA,IAAqB,MAAM;AAGxF,MAAM,gBAAA,GAAmB,IAAI,yBAAA,CAA0B,EAAE,MAAM,mBAAA,EAAqB,YAAA,EAAc,IAAA,EAAK,EAAG,QAAQ;AAGlH,MAAM,cAAA,GAAiB,IAAI,yBAAA,CAA0B,EAAE,MAAM,iBAAA,EAAmB,YAAA,EAAc,IAAA,EAAK,EAAG,MAAM;AAG5G,MAAM,yBAAyB,IAAI,yBAAA,CAA0B,EAAE,IAAA,EAAM,yBAAA,IAA6B,cAAc;AAGhH,MAAM,mBAAmB,IAAI,yBAAA,CAA0B,EAAE,IAAA,EAAM,mBAAA,IAAuB,QAAQ;AAG9F,MAAM,sBAAsB,IAAI,yBAAA,CAA0B,EAAE,IAAA,EAAM,sBAAA,IAA0B,IAAI;AAGhG,MAAM,gBAAA,GAAmB,IAAI,2BAAA;;;;"}
@@ -69,31 +69,15 @@ import { thDefaults } from '../table/thDefaults.mjs';
69
69
  import { tdDefaults } from '../table/tdDefaults.mjs';
70
70
  import { captionDefaults } from '../table/captionDefaults.mjs';
71
71
  import '../typography/common/TypographyCategories.mjs';
72
- import '../typography/text/Text.mjs';
73
- import { textDefaults } from '../typography/text/textDefaults.mjs';
74
- import './common/ComponentTheme.mjs';
75
- import './common/typographyClassMappers.mjs';
76
- import '../typography/blockquote/Blockquote.mjs';
77
- import { blockquoteDefaults } from '../typography/blockquote/blockquoteDefaults.mjs';
78
- import '../typography/blockquote/defaultBlockquoteTheme.mjs';
72
+ import { listDefaults } from '../typography/list/listDefaults.mjs';
73
+ import { listItemDefaults } from '../typography/listItem/listItemDefaults.mjs';
74
+ import { linkDefaults } from '../typography/link/linkDefaults.mjs';
79
75
  import { blockquoteCiteDefaults } from '../typography/blockquote/blockquoteCiteDefaults.mjs';
80
- import '../typography/title/Title.mjs';
76
+ import { blockquoteDefaults } from '../typography/blockquote/blockquoteDefaults.mjs';
77
+ import { textDefaults } from '../typography/text/textDefaults.mjs';
81
78
  import { titleDefaults } from '../typography/title/titleDefaults.mjs';
82
- import '../typography/sectionTitle/SectionTitle.mjs';
83
79
  import { sectionTitleDefaults } from '../typography/sectionTitle/sectionTitleDefaults.mjs';
84
- import '../typography/pageTitle/PageTitle.mjs';
85
80
  import { pageTitleDefaults } from '../typography/pageTitle/pageTitleDefaults.mjs';
86
- import '../typography/link/Link.mjs';
87
- import { linkDefaults } from '../typography/link/linkDefaults.mjs';
88
- import '../typography/link/LinkCategories.mjs';
89
- import '../typography/link/defaultLinkTheme.mjs';
90
- import '../typography/list/List.mjs';
91
- import { listDefaults } from '../typography/list/listDefaults.mjs';
92
- import '../typography/list/defaultListTheme.mjs';
93
- import '../typography/listItem/ListItem.mjs';
94
- import '../typography/listItem/ListItemCategories.mjs';
95
- import { listItemDefaults } from '../typography/listItem/listItemDefaults.mjs';
96
- import '../typography/listItem/defaultListItemTheme.mjs';
97
81
 
98
82
  const themeDefaults = {
99
83
  button: {
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.mjs","sources":["../../../../../src/components/ui/theme/defaults.ts"],"sourcesContent":["import type { ThemeDefaults } from '../../themeContext';\n\nimport { buttonDefaults } from '../button/buttonDefaults';\nimport { buttonSpinnerDefaults } from '../button/buttonSpinnerDefaults';\nimport { iconButtonDefaults } from '../iconButton/iconButtonDefaults';\nimport { badgeDefaults } from '../badge/badgeDefaults';\nimport { iconDefaults } from '../icon/iconDefaults';\nimport { chipDefaults } from '../chip/chipDefaults';\nimport { codeDefaults } from '../code/codeDefaults';\nimport { cardDefaults } from '../card/cardDefaults';\nimport { cardHeaderDefaults } from '../card/cardHeaderDefaults';\nimport { cardBodyDefaults } from '../card/cardBodyDefaults';\nimport { cardFooterDefaults } from '../card/cardFooterDefaults';\nimport { dividerDefaults } from '../divider/dividerDefaults';\nimport { containerDefaults } from '../container/containerDefaults';\nimport { rowDefaults } from '../row/rowDefaults';\nimport { colDefaults } from '../col/colDefaults';\nimport { stackDefaults } from '../stack/stackDefaults';\nimport { sectionDefaults } from '../section/sectionDefaults';\nimport { gridDefaults } from '../grid/gridDefaults';\nimport { checkboxInputDefaults } from '../checkbox/checkboxInputDefaults';\nimport { checkboxCheckDefaults } from '../checkbox/checkboxCheckDefaults';\nimport { checkboxWrapperDefaults } from '../checkbox/checkboxWrapperDefaults';\nimport { checkboxIndeterminateDefaults } from '../checkbox/checkboxIndeterminateDefaults';\nimport { labelDefaults } from '../label/labelDefaults';\nimport { fieldDefaults } from '../field/fieldDefaults';\nimport { alertDefaults } from '../alert/alertDefaults';\nimport { spinnerDefaults } from '../spinner/spinnerDefaults';\nimport { tooltipDefaults } from '../tooltip/tooltipDefaults';\nimport { fieldLabelDefaults } from '../field/fieldLabelDefaults';\nimport { fieldControlRowDefaults } from '../field/fieldControlRowDefaults';\nimport { fieldDescriptionDefaults } from '../field/fieldDescriptionDefaults';\nimport { fieldErrorDefaults } from '../field/fieldErrorDefaults';\nimport { imgDefaults } from '../img/imgDefaults';\nimport { inputDefaults } from '../input/inputDefaults';\nimport { inputErrorIconDefaults } from '../input/inputErrorIconDefaults';\nimport { inputWrapperDefaults } from '../input/inputWrapperDefaults';\nimport { textareaDefaults } from '../textarea/textareaDefaults';\nimport { selectDefaults } from '../select/selectDefaults';\nimport { selectChevronDefaults } from '../select/selectChevronDefaults';\nimport { selectWrapperDefaults } from '../select/selectWrapperDefaults';\nimport { switchInputDefaults } from '../switch/switchInputDefaults';\nimport { switchThumbDefaults } from '../switch/switchThumbDefaults';\nimport { switchWrapperDefaults } from '../switch/switchWrapperDefaults';\nimport { radioInputDefaults } from '../radio/radioInputDefaults';\nimport { radioDotDefaults } from '../radio/radioDotDefaults';\nimport { radioWrapperDefaults } from '../radio/radioWrapperDefaults';\nimport { radioGroupDefaults } from '../radio/radioGroupDefaults';\nimport { overlayDefaults } from '../overlay/overlayDefaults';\nimport { kbdDefaults } from '../kbd/kbdDefaults';\nimport { markDefaults } from '../mark/markDefaults';\nimport { modalContentDefaults } from '../modal/modalContentDefaults';\nimport { modalOverlayDefaults } from '../modal/modalOverlayDefaults';\nimport { modalHeaderDefaults } from '../modal/modalHeaderDefaults';\nimport { modalBodyDefaults } from '../modal/modalBodyDefaults';\nimport { modalFooterDefaults } from '../modal/modalFooterDefaults';\nimport { modalCloseButtonDefaults } from '../modal/modalCloseButtonDefaults';\nimport { popupDefaults } from '../popup/popupDefaults';\nimport { menuItemDefaults } from '../menu/menuItemDefaults';\nimport { menuPopupDefaults } from '../menu/menuPopupDefaults';\nimport { menuDividerDefaults } from '../divider/menuDividerDefaults';\nimport { menuLabelDefaults } from '../menu/menuLabelDefaults';\nimport { navLinkDefaults } from '../navLink/navLinkDefaults';\nimport { navLinkLabelDefaults } from '../navLink/navLinkLabelDefaults';\nimport { tableDefaults } from '../table/tableDefaults';\nimport { theadDefaults } from '../table/theadDefaults';\nimport { tbodyDefaults } from '../table/tbodyDefaults';\nimport { tfootDefaults } from '../table/tfootDefaults';\nimport { trDefaults } from '../table/trDefaults';\nimport { thDefaults } from '../table/thDefaults';\nimport { tdDefaults } from '../table/tdDefaults';\nimport { captionDefaults } from '../table/captionDefaults';\nimport {\n pageTitleDefaults,\n sectionTitleDefaults,\n titleDefaults,\n textDefaults,\n blockquoteDefaults,\n blockquoteCiteDefaults,\n linkDefaults,\n listItemDefaults,\n listDefaults,\n} from '../typography';\n\nexport const themeDefaults: ThemeDefaults = {\n button: {\n main: buttonDefaults,\n spinner: buttonSpinnerDefaults,\n },\n iconButton: iconButtonDefaults,\n badge: badgeDefaults,\n icon: iconDefaults,\n chip: chipDefaults,\n code: codeDefaults,\n kbd: kbdDefaults,\n mark: markDefaults,\n card: {\n main: cardDefaults,\n header: cardHeaderDefaults,\n body: cardBodyDefaults,\n footer: cardFooterDefaults,\n },\n divider: dividerDefaults,\n container: containerDefaults,\n row: rowDefaults,\n col: colDefaults,\n stack: stackDefaults,\n section: sectionDefaults,\n grid2: gridDefaults,\n grid3: gridDefaults,\n grid4: gridDefaults,\n grid5: gridDefaults,\n grid6: gridDefaults,\n pageTitle: pageTitleDefaults,\n sectionTitle: sectionTitleDefaults,\n title: titleDefaults,\n text: textDefaults,\n blockquote: blockquoteDefaults,\n blockquoteCite: blockquoteCiteDefaults,\n link: linkDefaults,\n listItem: listItemDefaults,\n list: listDefaults,\n checkbox: {\n input: checkboxInputDefaults,\n check: checkboxCheckDefaults,\n indeterminate: checkboxIndeterminateDefaults,\n wrapper: checkboxWrapperDefaults,\n },\n label: labelDefaults,\n field: {\n main: fieldDefaults,\n label: fieldLabelDefaults,\n controlRow: fieldControlRowDefaults,\n description: fieldDescriptionDefaults,\n error: fieldErrorDefaults,\n },\n img: imgDefaults,\n input: inputDefaults,\n inputErrorIcon: inputErrorIconDefaults,\n inputWrapper: inputWrapperDefaults,\n textarea: textareaDefaults,\n select: selectDefaults,\n selectChevron: selectChevronDefaults,\n selectWrapper: selectWrapperDefaults,\n switch: {\n input: switchInputDefaults,\n thumb: switchThumbDefaults,\n wrapper: switchWrapperDefaults,\n },\n radio: {\n input: radioInputDefaults,\n dot: radioDotDefaults,\n wrapper: radioWrapperDefaults,\n },\n radioGroup: radioGroupDefaults,\n overlay: overlayDefaults,\n modal: {\n content: modalContentDefaults,\n overlay: modalOverlayDefaults,\n header: modalHeaderDefaults,\n body: modalBodyDefaults,\n footer: modalFooterDefaults,\n closeButton: modalCloseButtonDefaults,\n },\n popup: popupDefaults,\n tooltip: tooltipDefaults,\n alert: alertDefaults,\n spinner: spinnerDefaults,\n menu: {\n item: menuItemDefaults,\n popup: menuPopupDefaults,\n divider: menuDividerDefaults,\n label: menuLabelDefaults,\n },\n navLink: {\n root: navLinkDefaults,\n label: navLinkLabelDefaults,\n },\n table: {\n main: tableDefaults,\n thead: theadDefaults,\n tbody: tbodyDefaults,\n tfoot: tfootDefaults,\n tr: trDefaults,\n th: thDefaults,\n td: tdDefaults,\n caption: captionDefaults,\n },\n};"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defaults.mjs","sources":["../../../../../src/components/ui/theme/defaults.ts"],"sourcesContent":["import type { ThemeDefaults } from '../../themeContext';\n\nimport { buttonDefaults } from '../button/buttonDefaults';\nimport { buttonSpinnerDefaults } from '../button/buttonSpinnerDefaults';\nimport { iconButtonDefaults } from '../iconButton/iconButtonDefaults';\nimport { badgeDefaults } from '../badge/badgeDefaults';\nimport { iconDefaults } from '../icon/iconDefaults';\nimport { chipDefaults } from '../chip/chipDefaults';\nimport { codeDefaults } from '../code/codeDefaults';\nimport { cardDefaults } from '../card/cardDefaults';\nimport { cardHeaderDefaults } from '../card/cardHeaderDefaults';\nimport { cardBodyDefaults } from '../card/cardBodyDefaults';\nimport { cardFooterDefaults } from '../card/cardFooterDefaults';\nimport { dividerDefaults } from '../divider/dividerDefaults';\nimport { containerDefaults } from '../container/containerDefaults';\nimport { rowDefaults } from '../row/rowDefaults';\nimport { colDefaults } from '../col/colDefaults';\nimport { stackDefaults } from '../stack/stackDefaults';\nimport { sectionDefaults } from '../section/sectionDefaults';\nimport { gridDefaults } from '../grid/gridDefaults';\nimport { checkboxInputDefaults } from '../checkbox/checkboxInputDefaults';\nimport { checkboxCheckDefaults } from '../checkbox/checkboxCheckDefaults';\nimport { checkboxWrapperDefaults } from '../checkbox/checkboxWrapperDefaults';\nimport { checkboxIndeterminateDefaults } from '../checkbox/checkboxIndeterminateDefaults';\nimport { labelDefaults } from '../label/labelDefaults';\nimport { fieldDefaults } from '../field/fieldDefaults';\nimport { alertDefaults } from '../alert/alertDefaults';\nimport { spinnerDefaults } from '../spinner/spinnerDefaults';\nimport { tooltipDefaults } from '../tooltip/tooltipDefaults';\nimport { fieldLabelDefaults } from '../field/fieldLabelDefaults';\nimport { fieldControlRowDefaults } from '../field/fieldControlRowDefaults';\nimport { fieldDescriptionDefaults } from '../field/fieldDescriptionDefaults';\nimport { fieldErrorDefaults } from '../field/fieldErrorDefaults';\nimport { imgDefaults } from '../img/imgDefaults';\nimport { inputDefaults } from '../input/inputDefaults';\nimport { inputErrorIconDefaults } from '../input/inputErrorIconDefaults';\nimport { inputWrapperDefaults } from '../input/inputWrapperDefaults';\nimport { textareaDefaults } from '../textarea/textareaDefaults';\nimport { selectDefaults } from '../select/selectDefaults';\nimport { selectChevronDefaults } from '../select/selectChevronDefaults';\nimport { selectWrapperDefaults } from '../select/selectWrapperDefaults';\nimport { switchInputDefaults } from '../switch/switchInputDefaults';\nimport { switchThumbDefaults } from '../switch/switchThumbDefaults';\nimport { switchWrapperDefaults } from '../switch/switchWrapperDefaults';\nimport { radioInputDefaults } from '../radio/radioInputDefaults';\nimport { radioDotDefaults } from '../radio/radioDotDefaults';\nimport { radioWrapperDefaults } from '../radio/radioWrapperDefaults';\nimport { radioGroupDefaults } from '../radio/radioGroupDefaults';\nimport { overlayDefaults } from '../overlay/overlayDefaults';\nimport { kbdDefaults } from '../kbd/kbdDefaults';\nimport { markDefaults } from '../mark/markDefaults';\nimport { modalContentDefaults } from '../modal/modalContentDefaults';\nimport { modalOverlayDefaults } from '../modal/modalOverlayDefaults';\nimport { modalHeaderDefaults } from '../modal/modalHeaderDefaults';\nimport { modalBodyDefaults } from '../modal/modalBodyDefaults';\nimport { modalFooterDefaults } from '../modal/modalFooterDefaults';\nimport { modalCloseButtonDefaults } from '../modal/modalCloseButtonDefaults';\nimport { popupDefaults } from '../popup/popupDefaults';\nimport { menuItemDefaults } from '../menu/menuItemDefaults';\nimport { menuPopupDefaults } from '../menu/menuPopupDefaults';\nimport { menuDividerDefaults } from '../divider/menuDividerDefaults';\nimport { menuLabelDefaults } from '../menu/menuLabelDefaults';\nimport { navLinkDefaults } from '../navLink/navLinkDefaults';\nimport { navLinkLabelDefaults } from '../navLink/navLinkLabelDefaults';\nimport { tableDefaults } from '../table/tableDefaults';\nimport { theadDefaults } from '../table/theadDefaults';\nimport { tbodyDefaults } from '../table/tbodyDefaults';\nimport { tfootDefaults } from '../table/tfootDefaults';\nimport { trDefaults } from '../table/trDefaults';\nimport { thDefaults } from '../table/thDefaults';\nimport { tdDefaults } from '../table/tdDefaults';\nimport { captionDefaults } from '../table/captionDefaults';\nimport {\n pageTitleDefaults,\n sectionTitleDefaults,\n titleDefaults,\n textDefaults,\n blockquoteDefaults,\n blockquoteCiteDefaults,\n linkDefaults,\n listItemDefaults,\n listDefaults,\n} from '../typography';\n\nexport const themeDefaults: ThemeDefaults = {\n button: {\n main: buttonDefaults,\n spinner: buttonSpinnerDefaults,\n },\n iconButton: iconButtonDefaults,\n badge: badgeDefaults,\n icon: iconDefaults,\n chip: chipDefaults,\n code: codeDefaults,\n kbd: kbdDefaults,\n mark: markDefaults,\n card: {\n main: cardDefaults,\n header: cardHeaderDefaults,\n body: cardBodyDefaults,\n footer: cardFooterDefaults,\n },\n divider: dividerDefaults,\n container: containerDefaults,\n row: rowDefaults,\n col: colDefaults,\n stack: stackDefaults,\n section: sectionDefaults,\n grid2: gridDefaults,\n grid3: gridDefaults,\n grid4: gridDefaults,\n grid5: gridDefaults,\n grid6: gridDefaults,\n pageTitle: pageTitleDefaults,\n sectionTitle: sectionTitleDefaults,\n title: titleDefaults,\n text: textDefaults,\n blockquote: blockquoteDefaults,\n blockquoteCite: blockquoteCiteDefaults,\n link: linkDefaults,\n listItem: listItemDefaults,\n list: listDefaults,\n checkbox: {\n input: checkboxInputDefaults,\n check: checkboxCheckDefaults,\n indeterminate: checkboxIndeterminateDefaults,\n wrapper: checkboxWrapperDefaults,\n },\n label: labelDefaults,\n field: {\n main: fieldDefaults,\n label: fieldLabelDefaults,\n controlRow: fieldControlRowDefaults,\n description: fieldDescriptionDefaults,\n error: fieldErrorDefaults,\n },\n img: imgDefaults,\n input: inputDefaults,\n inputErrorIcon: inputErrorIconDefaults,\n inputWrapper: inputWrapperDefaults,\n textarea: textareaDefaults,\n select: selectDefaults,\n selectChevron: selectChevronDefaults,\n selectWrapper: selectWrapperDefaults,\n switch: {\n input: switchInputDefaults,\n thumb: switchThumbDefaults,\n wrapper: switchWrapperDefaults,\n },\n radio: {\n input: radioInputDefaults,\n dot: radioDotDefaults,\n wrapper: radioWrapperDefaults,\n },\n radioGroup: radioGroupDefaults,\n overlay: overlayDefaults,\n modal: {\n content: modalContentDefaults,\n overlay: modalOverlayDefaults,\n header: modalHeaderDefaults,\n body: modalBodyDefaults,\n footer: modalFooterDefaults,\n closeButton: modalCloseButtonDefaults,\n },\n popup: popupDefaults,\n tooltip: tooltipDefaults,\n alert: alertDefaults,\n spinner: spinnerDefaults,\n menu: {\n item: menuItemDefaults,\n popup: menuPopupDefaults,\n divider: menuDividerDefaults,\n label: menuLabelDefaults,\n },\n navLink: {\n root: navLinkDefaults,\n label: navLinkLabelDefaults,\n },\n table: {\n main: tableDefaults,\n thead: theadDefaults,\n tbody: tbodyDefaults,\n tfoot: tfootDefaults,\n tr: trDefaults,\n th: thDefaults,\n td: tdDefaults,\n caption: captionDefaults,\n },\n};"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ import { BaseClassMapper } from '../common/BaseClassMapper.mjs';
3
3
  class TransitionClassMapper extends BaseClassMapper {
4
4
  constructor() {
5
5
  super(...arguments);
6
- /** Enable transitions - colors, shadows and transforms fade; outline width/offset (the focus ring) stay instant */
7
- this.transition = "transition duration-(--transition-duration) ease-(--transition-timing)";
6
+ /** Enable transitions - smooth state changes */
7
+ this.transition = "transition-all duration-(--transition-duration) ease-(--transition-timing)";
8
8
  /** Disable transitions - instant state changes (useful for reduced-motion) */
9
9
  this.noTransition = "transition-none";
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transitionClassMapper.mjs","sources":["../../../../../../src/components/ui/theme/layout/transitionClassMapper.ts"],"sourcesContent":["import { BaseClassMapper } from \"../common/BaseClassMapper\";\nimport type { CategoryProps, TransitionKey } from \"../../props\";\n\n/**\n * Transition theme for controlling animation/transition effects.\n * Default transition reads duration and easing from --transition-duration\n * and --transition-timing CSS vars (defined in tokens.css), so consumers\n * can retune them globally with a single :root override.\n */\nexport class TransitionClassMapper extends BaseClassMapper implements Record<TransitionKey, string> {\n /** Enable transitions - colors, shadows and transforms fade; outline width/offset (the focus ring) stay instant */\n transition: string = \"transition duration-(--transition-duration) ease-(--transition-timing)\";\n /** Disable transitions - instant state changes (useful for reduced-motion) */\n noTransition: string = \"transition-none\";\n\n getClasses(extractedKeys: CategoryProps): string[] {\n const transition = extractedKeys?.transition;\n if (transition === 'noTransition') {\n return [this.noTransition];\n }\n return transition === 'transition' ? [this.transition] : [];\n }\n}\n"],"names":[],"mappings":";;AASO,MAAM,8BAA8B,eAAA,CAAyD;AAAA,EAA7F,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AAEL;AAAA,IAAA,IAAA,CAAA,UAAA,GAAqB,wEAAA;AAErB;AAAA,IAAA,IAAA,CAAA,YAAA,GAAuB,iBAAA;AAAA,EAAA;AAAA,EAEvB,WAAW,aAAA,EAAwC;AACjD,IAAA,MAAM,aAAa,aAAA,EAAe,UAAA;AAClC,IAAA,IAAI,eAAe,cAAA,EAAgB;AACjC,MAAA,OAAO,CAAC,KAAK,YAAY,CAAA;AAAA,IAC3B;AACA,IAAA,OAAO,eAAe,YAAA,GAAe,CAAC,IAAA,CAAK,UAAU,IAAI,EAAC;AAAA,EAC5D;AACF;;;;"}
1
+ {"version":3,"file":"transitionClassMapper.mjs","sources":["../../../../../../src/components/ui/theme/layout/transitionClassMapper.ts"],"sourcesContent":["import { BaseClassMapper } from \"../common/BaseClassMapper\";\nimport type { CategoryProps, TransitionKey } from \"../../props\";\n\n/**\n * Transition theme for controlling animation/transition effects.\n * Default transition reads duration and easing from --transition-duration\n * and --transition-timing CSS vars (defined in tokens.css), so consumers\n * can retune them globally with a single :root override.\n */\nexport class TransitionClassMapper extends BaseClassMapper implements Record<TransitionKey, string> {\n /** Enable transitions - smooth state changes */\n transition: string = \"transition-all duration-(--transition-duration) ease-(--transition-timing)\";\n /** Disable transitions - instant state changes (useful for reduced-motion) */\n noTransition: string = \"transition-none\";\n\n getClasses(extractedKeys: CategoryProps): string[] {\n const transition = extractedKeys?.transition;\n if (transition === 'noTransition') {\n return [this.noTransition];\n }\n return transition === 'transition' ? [this.transition] : [];\n }\n}\n"],"names":[],"mappings":";;AASO,MAAM,8BAA8B,eAAA,CAAyD;AAAA,EAA7F,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AAEL;AAAA,IAAA,IAAA,CAAA,UAAA,GAAqB,4EAAA;AAErB;AAAA,IAAA,IAAA,CAAA,YAAA,GAAuB,iBAAA;AAAA,EAAA;AAAA,EAEvB,WAAW,aAAA,EAAwC;AACjD,IAAA,MAAM,aAAa,aAAA,EAAe,UAAA;AAClC,IAAA,IAAI,eAAe,cAAA,EAAgB;AACjC,MAAA,OAAO,CAAC,KAAK,YAAY,CAAA;AAAA,IAC3B;AACA,IAAA,OAAO,eAAe,YAAA,GAAe,CAAC,IAAA,CAAK,UAAU,IAAI,EAAC;AAAA,EAC5D;AACF;;;;"}
@@ -11,7 +11,6 @@ const tooltipDefaults = {
11
11
  secondary: true,
12
12
  filled: true,
13
13
  wFit: true,
14
- fontSans: true,
15
14
  placeTop: true
16
15
  };
17
16
 
@@ -1 +1 @@
1
- {"version":3,"file":"tooltipDefaults.mjs","sources":["../../../../../src/components/ui/tooltip/tooltipDefaults.ts"],"sourcesContent":["import type { PopupProps } from \"../popup/PopupProps\";\n\n/** Tooltip popup: smaller and filled, so it reads as an overlay label rather than a panel. */\nexport const tooltipDefaults: Partial<PopupProps> = {\n sm: true,\n fixed: true,\n flex: true,\n column: true,\n noGap: true,\n rounded: true,\n shadow: true,\n noBorder: true,\n noInsetRing: true,\n secondary: true,\n filled: true,\n wFit: true,\n fontSans: true,\n placeTop: true,\n};\n"],"names":[],"mappings":"AAGO,MAAM,eAAA,GAAuC;AAAA,EAClD,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,QAAA,EAAU,IAAA;AAAA,EACV,WAAA,EAAa,IAAA;AAAA,EACb,SAAA,EAAW,IAAA;AAAA,EACX,MAAA,EAAQ,IAAA;AAAA,EACR,IAAA,EAAM,IAAA;AAAA,EACN,QAAA,EAAU,IAAA;AAAA,EACV,QAAA,EAAU;AACZ;;;;"}
1
+ {"version":3,"file":"tooltipDefaults.mjs","sources":["../../../../../src/components/ui/tooltip/tooltipDefaults.ts"],"sourcesContent":["import type { PopupProps } from \"../popup/PopupProps\";\n\n/** Tooltip popup: smaller and filled, so it reads as an overlay label rather than a panel. */\nexport const tooltipDefaults: Partial<PopupProps> = {\n sm: true,\n fixed: true,\n flex: true,\n column: true,\n noGap: true,\n rounded: true,\n shadow: true,\n noBorder: true,\n noInsetRing: true,\n secondary: true,\n filled: true,\n wFit: true,\n placeTop: true,\n};\n"],"names":[],"mappings":"AAGO,MAAM,eAAA,GAAuC;AAAA,EAClD,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,QAAA,EAAU,IAAA;AAAA,EACV,WAAA,EAAa,IAAA;AAAA,EACb,SAAA,EAAW,IAAA;AAAA,EACX,MAAA,EAAQ,IAAA;AAAA,EACR,IAAA,EAAM,IAAA;AAAA,EACN,QAAA,EAAU;AACZ;;;;"}
@@ -18,7 +18,6 @@ export { pageTitleDefaults } from './pageTitle/pageTitleDefaults.mjs';
18
18
  export { defaultPageTitleTheme, pageTitleTheme } from './pageTitle/defaultPageTitleTheme.mjs';
19
19
  export { Link } from './link/Link.mjs';
20
20
  export { linkDefaults } from './link/linkDefaults.mjs';
21
- import './link/LinkCategories.mjs';
22
21
  export { defaultLinkTheme, linkTheme } from './link/defaultLinkTheme.mjs';
23
22
  export { List } from './list/List.mjs';
24
23
  export { listDefaults } from './list/listDefaults.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -4,7 +4,6 @@ import { forwardRef } from 'react';
4
4
  import { useTheme } from '../../../themeContext.mjs';
5
5
  import { ThemedComponent } from '../../../themedComponent.mjs';
6
6
  import { resolveDisabledLink } from '../../../utils/disabledLink.mjs';
7
- import { pickFirstTruthyKeyByCategory } from '../../../utils/componentUtils.mjs';
8
7
  import { defaultLinkTheme } from './defaultLinkTheme.mjs';
9
8
 
10
9
  const Link = forwardRef(
@@ -21,9 +20,7 @@ const Link = forwardRef(
21
20
  const resolvedProps = resolveDisabledLink(derivedProps, !!rest.disabled);
22
21
  const opensNewWindow = finalTarget === "_blank" && !rest.disabled && !rest["aria-label"];
23
22
  const { children, ...linkProps } = resolvedProps;
24
- const explicitSize = pickFirstTruthyKeyByCategory(rest, {}, "size");
25
- const sizeInjection = explicitSize && !rest.inheritSize ? { noInheritSize: true } : void 0;
26
- return /* @__PURE__ */ jsxs(ThemedComponent, { ref, theme: theme?.link ?? defaultLinkTheme, ...sizeInjection, ...linkProps, children: [
23
+ return /* @__PURE__ */ jsxs(ThemedComponent, { ref, theme: theme?.link ?? defaultLinkTheme, ...linkProps, children: [
27
24
  children,
28
25
  opensNewWindow && /* @__PURE__ */ jsx("span", { className: "sr-only", children: " (opens in new window)" })
29
26
  ] });
@@ -1 +1 @@
1
- {"version":3,"file":"Link.mjs","sources":["../../../../../../src/components/ui/typography/link/Link.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from 'react';\nimport type { LinkProps } from \"./LinkProps\";\nimport { useTheme } from \"../../../themeContext\";\nimport { ThemedComponent } from \"../../../themedComponent\";\nimport { resolveDisabledLink } from \"../../../utils/disabledLink\";\nimport { pickFirstTruthyKeyByCategory } from \"../../../utils/componentUtils\";\nimport { defaultLinkTheme } from \"./defaultLinkTheme\";\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(\n function Link(props, ref) {\n const { external, ...rest } = props;\n const theme = useTheme();\n\n const finalTarget = rest.target ?? (external ? '_blank' : undefined);\n const finalRel = rest.rel ?? (finalTarget === '_blank' ? 'noopener noreferrer' : undefined);\n\n const derivedProps = {\n ...rest,\n ...(finalTarget !== undefined && { target: finalTarget }),\n ...(finalRel !== undefined && { rel: finalRel }),\n };\n\n // disabled <a>: drop href + block activation while staying focusable\n // (aria-disabled pattern); a no-op when not disabled\n const resolvedProps = resolveDisabledLink(derivedProps, !!rest.disabled);\n\n // a link opening a new tab needs a programmatically-available advisory\n // (SC 3.2.2). Append a visually-hidden note so AT announces it with no\n // visual change; skipped for disabled links (no navigation happens) and\n // when the consumer already provided an aria-label.\n const opensNewWindow =\n finalTarget === '_blank' && !rest.disabled && !(rest as { 'aria-label'?: string })['aria-label'];\n const { children, ...linkProps } = resolvedProps as typeof resolvedProps & { children?: ReactNode };\n\n // an explicit size wins over the inheritSize default, unless inheritSize is also passed\n const explicitSize = pickFirstTruthyKeyByCategory(rest as Record<string, unknown>, {}, 'size');\n const sizeInjection = explicitSize && !rest.inheritSize ? { noInheritSize: true as const } : undefined;\n\n return (\n <ThemedComponent ref={ref} theme={theme?.link ?? defaultLinkTheme} {...sizeInjection} {...linkProps}>\n {children}\n {opensNewWindow && <span className=\"sr-only\"> (opens in new window)</span>}\n </ThemedComponent>\n );\n }\n);\n\nLink.displayName = 'Link';\n"],"names":["Link"],"mappings":"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"}
1
+ {"version":3,"file":"Link.mjs","sources":["../../../../../../src/components/ui/typography/link/Link.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from 'react';\nimport type { LinkProps } from \"./LinkProps\";\nimport { useTheme } from \"../../../themeContext\";\nimport { ThemedComponent } from \"../../../themedComponent\";\nimport { resolveDisabledLink } from \"../../../utils/disabledLink\";\nimport { defaultLinkTheme } from \"./defaultLinkTheme\";\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(\n function Link(props, ref) {\n const { external, ...rest } = props;\n const theme = useTheme();\n\n const finalTarget = rest.target ?? (external ? '_blank' : undefined);\n const finalRel = rest.rel ?? (finalTarget === '_blank' ? 'noopener noreferrer' : undefined);\n\n const derivedProps = {\n ...rest,\n ...(finalTarget !== undefined && { target: finalTarget }),\n ...(finalRel !== undefined && { rel: finalRel }),\n };\n\n // disabled <a>: drop href + block activation while staying focusable\n // (aria-disabled pattern); a no-op when not disabled\n const resolvedProps = resolveDisabledLink(derivedProps, !!rest.disabled);\n\n // a link opening a new tab needs a programmatically-available advisory\n // (SC 3.2.2). Append a visually-hidden note so AT announces it with no\n // visual change; skipped for disabled links (no navigation happens) and\n // when the consumer already provided an aria-label.\n const opensNewWindow =\n finalTarget === '_blank' && !rest.disabled && !(rest as { 'aria-label'?: string })['aria-label'];\n const { children, ...linkProps } = resolvedProps as typeof resolvedProps & { children?: ReactNode };\n\n return (\n <ThemedComponent ref={ref} theme={theme?.link ?? defaultLinkTheme} {...linkProps}>\n {children}\n {opensNewWindow && <span className=\"sr-only\"> (opens in new window)</span>}\n </ThemedComponent>\n );\n }\n);\n\nLink.displayName = 'Link';\n"],"names":["Link"],"mappings":"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"}