@vaneui/ui 1.4.2 → 1.4.3-alpha.20260930171045.899e2fd
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.
- package/CHANGELOG.md +93 -0
- package/dist/cjs/components/ui/alert/AlertCategories.cjs +1 -0
- package/dist/cjs/components/ui/alert/AlertCategories.cjs.map +1 -1
- package/dist/cjs/components/ui/alert/alertDefaults.cjs +2 -1
- package/dist/cjs/components/ui/alert/alertDefaults.cjs.map +1 -1
- package/dist/cjs/components/ui/alert/defaultAlertTheme.cjs +3 -1
- package/dist/cjs/components/ui/alert/defaultAlertTheme.cjs.map +1 -1
- package/dist/cjs/components/ui/button/Button.cjs +1 -1
- package/dist/cjs/components/ui/button/Button.cjs.map +1 -1
- package/dist/cjs/components/ui/card/Card.cjs +14 -2
- package/dist/cjs/components/ui/card/Card.cjs.map +1 -1
- package/dist/cjs/components/ui/card/defaultCardTheme.cjs +6 -1
- package/dist/cjs/components/ui/card/defaultCardTheme.cjs.map +1 -1
- package/dist/cjs/components/ui/checkbox/Checkbox.cjs +9 -2
- package/dist/cjs/components/ui/checkbox/Checkbox.cjs.map +1 -1
- package/dist/cjs/components/ui/checkbox/CheckboxCategories.cjs +2 -1
- package/dist/cjs/components/ui/checkbox/CheckboxCategories.cjs.map +1 -1
- package/dist/cjs/components/ui/checkbox/defaultCheckboxWrapperTheme.cjs +3 -0
- package/dist/cjs/components/ui/checkbox/defaultCheckboxWrapperTheme.cjs.map +1 -1
- package/dist/cjs/components/ui/chip/Chip.cjs +2 -1
- package/dist/cjs/components/ui/chip/Chip.cjs.map +1 -1
- package/dist/cjs/components/ui/classes/appearanceClasses.cjs +2 -0
- package/dist/cjs/components/ui/classes/appearanceClasses.cjs.map +1 -1
- package/dist/cjs/components/ui/field/Field.cjs +42 -3
- package/dist/cjs/components/ui/field/Field.cjs.map +1 -1
- package/dist/cjs/components/ui/field/FieldContext.cjs +4 -1
- package/dist/cjs/components/ui/field/FieldContext.cjs.map +1 -1
- package/dist/cjs/components/ui/iconButton/IconButton.cjs +1 -1
- package/dist/cjs/components/ui/iconButton/IconButton.cjs.map +1 -1
- package/dist/cjs/components/ui/input/defaultInputTheme.cjs +1 -1
- package/dist/cjs/components/ui/input/defaultInputTheme.cjs.map +1 -1
- package/dist/cjs/components/ui/label/defaultLabelTheme.cjs +1 -1
- package/dist/cjs/components/ui/label/defaultLabelTheme.cjs.map +1 -1
- package/dist/cjs/components/ui/menu/Menu.cjs +18 -8
- package/dist/cjs/components/ui/menu/Menu.cjs.map +1 -1
- package/dist/cjs/components/ui/menu/MenuContext.cjs.map +1 -1
- package/dist/cjs/components/ui/menu/MenuItem.cjs +2 -9
- package/dist/cjs/components/ui/menu/MenuItem.cjs.map +1 -1
- package/dist/cjs/components/ui/menu/menuPopupDefaults.cjs +1 -0
- package/dist/cjs/components/ui/menu/menuPopupDefaults.cjs.map +1 -1
- package/dist/cjs/components/ui/modal/Modal.cjs +3 -2
- package/dist/cjs/components/ui/modal/Modal.cjs.map +1 -1
- package/dist/cjs/components/ui/modal/modalCloseButtonDefaults.cjs +3 -0
- package/dist/cjs/components/ui/modal/modalCloseButtonDefaults.cjs.map +1 -1
- package/dist/cjs/components/ui/navLink/NavLinkLabelCategories.cjs +1 -1
- package/dist/cjs/components/ui/navLink/NavLinkLabelCategories.cjs.map +1 -1
- package/dist/cjs/components/ui/navLink/defaultNavLinkLabelTheme.cjs +3 -1
- package/dist/cjs/components/ui/navLink/defaultNavLinkLabelTheme.cjs.map +1 -1
- package/dist/cjs/components/ui/navLink/navLinkLabelDefaults.cjs +3 -1
- package/dist/cjs/components/ui/navLink/navLinkLabelDefaults.cjs.map +1 -1
- package/dist/cjs/components/ui/popup/Popup.cjs +9 -9
- package/dist/cjs/components/ui/popup/Popup.cjs.map +1 -1
- package/dist/cjs/components/ui/popup/popupDefaults.cjs +1 -0
- package/dist/cjs/components/ui/popup/popupDefaults.cjs.map +1 -1
- package/dist/cjs/components/ui/props/categoryBuilders.cjs +2 -0
- package/dist/cjs/components/ui/props/categoryBuilders.cjs.map +1 -1
- package/dist/cjs/components/ui/radio/Radio.cjs +4 -3
- package/dist/cjs/components/ui/radio/Radio.cjs.map +1 -1
- package/dist/cjs/components/ui/radio/RadioGroup.cjs +3 -2
- package/dist/cjs/components/ui/radio/RadioGroup.cjs.map +1 -1
- package/dist/cjs/components/ui/radio/RadioGroupContext.cjs.map +1 -1
- package/dist/cjs/components/ui/radio/defaultRadioTheme.cjs +1 -2
- package/dist/cjs/components/ui/radio/defaultRadioTheme.cjs.map +1 -1
- package/dist/cjs/components/ui/radio/defaultRadioWrapperTheme.cjs +3 -0
- package/dist/cjs/components/ui/radio/defaultRadioWrapperTheme.cjs.map +1 -1
- package/dist/cjs/components/ui/select/Select.cjs +15 -1
- package/dist/cjs/components/ui/select/Select.cjs.map +1 -1
- package/dist/cjs/components/ui/select/SelectWrapperCategories.cjs +1 -1
- package/dist/cjs/components/ui/select/SelectWrapperCategories.cjs.map +1 -1
- package/dist/cjs/components/ui/select/defaultSelectTheme.cjs +1 -1
- package/dist/cjs/components/ui/select/defaultSelectTheme.cjs.map +1 -1
- package/dist/cjs/components/ui/select/defaultSelectWrapperTheme.cjs +3 -1
- package/dist/cjs/components/ui/select/defaultSelectWrapperTheme.cjs.map +1 -1
- package/dist/cjs/components/ui/switch/Switch.cjs +12 -3
- package/dist/cjs/components/ui/switch/Switch.cjs.map +1 -1
- package/dist/cjs/components/ui/switch/defaultSwitchWrapperTheme.cjs +3 -0
- package/dist/cjs/components/ui/switch/defaultSwitchWrapperTheme.cjs.map +1 -1
- package/dist/cjs/components/ui/table/TableCategories.cjs +1 -0
- package/dist/cjs/components/ui/table/TableCategories.cjs.map +1 -1
- package/dist/cjs/components/ui/table/defaultTableTheme.cjs +3 -1
- package/dist/cjs/components/ui/table/defaultTableTheme.cjs.map +1 -1
- package/dist/cjs/components/ui/table/tableDefaults.cjs +2 -1
- package/dist/cjs/components/ui/table/tableDefaults.cjs.map +1 -1
- package/dist/cjs/components/ui/textarea/defaultTextareaTheme.cjs +1 -1
- package/dist/cjs/components/ui/textarea/defaultTextareaTheme.cjs.map +1 -1
- package/dist/cjs/components/ui/theme/appearance/disabledClassMapper.cjs +8 -1
- package/dist/cjs/components/ui/theme/appearance/disabledClassMapper.cjs.map +1 -1
- package/dist/cjs/components/ui/theme/appearance/disabledOpacityClassMapper.cjs +1 -1
- package/dist/cjs/components/ui/theme/appearance/disabledOpacityClassMapper.cjs.map +1 -1
- package/dist/cjs/components/ui/theme/appearance/readOnlyClassMapper.cjs.map +1 -1
- package/dist/cjs/components/ui/theme/appearance/statusClassMapper.cjs +2 -2
- package/dist/cjs/components/ui/theme/appearance/statusClassMapper.cjs.map +1 -1
- package/dist/cjs/components/ui/theme/common/ComponentTheme.cjs +3 -2
- package/dist/cjs/components/ui/theme/common/ComponentTheme.cjs.map +1 -1
- package/dist/cjs/components/ui/theme/common/appearanceClassMappers.cjs +2 -0
- package/dist/cjs/components/ui/theme/common/appearanceClassMappers.cjs.map +1 -1
- package/dist/cjs/components/ui/theme/layout/transitionClassMapper.cjs +2 -2
- package/dist/cjs/components/ui/theme/layout/transitionClassMapper.cjs.map +1 -1
- package/dist/cjs/components/ui/tooltip/tooltipDefaults.cjs +1 -0
- package/dist/cjs/components/ui/tooltip/tooltipDefaults.cjs.map +1 -1
- package/dist/cjs/components/ui/typography/link/Link.cjs +4 -1
- package/dist/cjs/components/ui/typography/link/Link.cjs.map +1 -1
- package/dist/cjs/components/ui/typography/link/LinkCategories.cjs +1 -1
- package/dist/cjs/components/ui/typography/link/LinkCategories.cjs.map +1 -1
- package/dist/cjs/components/ui/typography/link/defaultLinkTheme.cjs +8 -2
- package/dist/cjs/components/ui/typography/link/defaultLinkTheme.cjs.map +1 -1
- package/dist/cjs/components/ui/typography/listItem/ListItem.cjs +0 -2
- package/dist/cjs/components/ui/typography/listItem/ListItem.cjs.map +1 -1
- package/dist/esm/components/ui/alert/AlertCategories.mjs +2 -1
- package/dist/esm/components/ui/alert/AlertCategories.mjs.map +1 -1
- package/dist/esm/components/ui/alert/alertDefaults.mjs +2 -1
- package/dist/esm/components/ui/alert/alertDefaults.mjs.map +1 -1
- package/dist/esm/components/ui/alert/defaultAlertTheme.mjs +3 -1
- package/dist/esm/components/ui/alert/defaultAlertTheme.mjs.map +1 -1
- package/dist/esm/components/ui/button/Button.mjs +1 -1
- package/dist/esm/components/ui/button/Button.mjs.map +1 -1
- package/dist/esm/components/ui/card/Card.mjs +15 -3
- package/dist/esm/components/ui/card/Card.mjs.map +1 -1
- package/dist/esm/components/ui/card/defaultCardTheme.mjs +6 -1
- package/dist/esm/components/ui/card/defaultCardTheme.mjs.map +1 -1
- package/dist/esm/components/ui/checkbox/Checkbox.mjs +10 -3
- package/dist/esm/components/ui/checkbox/Checkbox.mjs.map +1 -1
- package/dist/esm/components/ui/checkbox/CheckboxCategories.mjs +3 -2
- package/dist/esm/components/ui/checkbox/CheckboxCategories.mjs.map +1 -1
- package/dist/esm/components/ui/checkbox/defaultCheckboxWrapperTheme.mjs +3 -0
- package/dist/esm/components/ui/checkbox/defaultCheckboxWrapperTheme.mjs.map +1 -1
- package/dist/esm/components/ui/chip/Chip.mjs +2 -1
- package/dist/esm/components/ui/chip/Chip.mjs.map +1 -1
- package/dist/esm/components/ui/classes/appearanceClasses.mjs +2 -1
- package/dist/esm/components/ui/classes/appearanceClasses.mjs.map +1 -1
- package/dist/esm/components/ui/field/Field.mjs +42 -3
- package/dist/esm/components/ui/field/Field.mjs.map +1 -1
- package/dist/esm/components/ui/field/FieldContext.mjs +4 -1
- package/dist/esm/components/ui/field/FieldContext.mjs.map +1 -1
- package/dist/esm/components/ui/iconButton/IconButton.mjs +1 -1
- package/dist/esm/components/ui/iconButton/IconButton.mjs.map +1 -1
- package/dist/esm/components/ui/input/defaultInputTheme.mjs +2 -2
- package/dist/esm/components/ui/input/defaultInputTheme.mjs.map +1 -1
- package/dist/esm/components/ui/label/defaultLabelTheme.mjs +1 -1
- package/dist/esm/components/ui/label/defaultLabelTheme.mjs.map +1 -1
- package/dist/esm/components/ui/menu/Menu.mjs +18 -8
- package/dist/esm/components/ui/menu/Menu.mjs.map +1 -1
- package/dist/esm/components/ui/menu/MenuContext.mjs.map +1 -1
- package/dist/esm/components/ui/menu/MenuItem.mjs +2 -9
- package/dist/esm/components/ui/menu/MenuItem.mjs.map +1 -1
- package/dist/esm/components/ui/menu/menuPopupDefaults.mjs +1 -0
- package/dist/esm/components/ui/menu/menuPopupDefaults.mjs.map +1 -1
- package/dist/esm/components/ui/modal/Modal.mjs +3 -2
- package/dist/esm/components/ui/modal/Modal.mjs.map +1 -1
- package/dist/esm/components/ui/modal/modalCloseButtonDefaults.mjs +3 -0
- package/dist/esm/components/ui/modal/modalCloseButtonDefaults.mjs.map +1 -1
- package/dist/esm/components/ui/navLink/NavLinkLabelCategories.mjs +1 -1
- package/dist/esm/components/ui/navLink/NavLinkLabelCategories.mjs.map +1 -1
- package/dist/esm/components/ui/navLink/defaultNavLinkLabelTheme.mjs +3 -1
- package/dist/esm/components/ui/navLink/defaultNavLinkLabelTheme.mjs.map +1 -1
- package/dist/esm/components/ui/navLink/navLinkLabelDefaults.mjs +3 -1
- package/dist/esm/components/ui/navLink/navLinkLabelDefaults.mjs.map +1 -1
- package/dist/esm/components/ui/popup/Popup.mjs +9 -9
- package/dist/esm/components/ui/popup/Popup.mjs.map +1 -1
- package/dist/esm/components/ui/popup/popupDefaults.mjs +1 -0
- package/dist/esm/components/ui/popup/popupDefaults.mjs.map +1 -1
- package/dist/esm/components/ui/props/categoryBuilders.mjs +2 -1
- package/dist/esm/components/ui/props/categoryBuilders.mjs.map +1 -1
- package/dist/esm/components/ui/radio/Radio.mjs +4 -3
- package/dist/esm/components/ui/radio/Radio.mjs.map +1 -1
- package/dist/esm/components/ui/radio/RadioGroup.mjs +4 -3
- package/dist/esm/components/ui/radio/RadioGroup.mjs.map +1 -1
- package/dist/esm/components/ui/radio/RadioGroupContext.mjs.map +1 -1
- package/dist/esm/components/ui/radio/defaultRadioTheme.mjs +2 -3
- package/dist/esm/components/ui/radio/defaultRadioTheme.mjs.map +1 -1
- package/dist/esm/components/ui/radio/defaultRadioWrapperTheme.mjs +3 -0
- package/dist/esm/components/ui/radio/defaultRadioWrapperTheme.mjs.map +1 -1
- package/dist/esm/components/ui/select/Select.mjs +16 -2
- package/dist/esm/components/ui/select/Select.mjs.map +1 -1
- package/dist/esm/components/ui/select/SelectWrapperCategories.mjs +1 -1
- package/dist/esm/components/ui/select/SelectWrapperCategories.mjs.map +1 -1
- package/dist/esm/components/ui/select/defaultSelectTheme.mjs +2 -2
- package/dist/esm/components/ui/select/defaultSelectTheme.mjs.map +1 -1
- package/dist/esm/components/ui/select/defaultSelectWrapperTheme.mjs +3 -1
- package/dist/esm/components/ui/select/defaultSelectWrapperTheme.mjs.map +1 -1
- package/dist/esm/components/ui/switch/Switch.mjs +12 -3
- package/dist/esm/components/ui/switch/Switch.mjs.map +1 -1
- package/dist/esm/components/ui/switch/defaultSwitchWrapperTheme.mjs +3 -0
- package/dist/esm/components/ui/switch/defaultSwitchWrapperTheme.mjs.map +1 -1
- package/dist/esm/components/ui/table/TableCategories.mjs +2 -1
- package/dist/esm/components/ui/table/TableCategories.mjs.map +1 -1
- package/dist/esm/components/ui/table/defaultTableTheme.mjs +3 -1
- package/dist/esm/components/ui/table/defaultTableTheme.mjs.map +1 -1
- package/dist/esm/components/ui/table/tableDefaults.mjs +2 -1
- package/dist/esm/components/ui/table/tableDefaults.mjs.map +1 -1
- package/dist/esm/components/ui/textarea/defaultTextareaTheme.mjs +2 -2
- package/dist/esm/components/ui/textarea/defaultTextareaTheme.mjs.map +1 -1
- package/dist/esm/components/ui/theme/appearance/disabledClassMapper.mjs +8 -2
- package/dist/esm/components/ui/theme/appearance/disabledClassMapper.mjs.map +1 -1
- package/dist/esm/components/ui/theme/appearance/disabledOpacityClassMapper.mjs +1 -1
- package/dist/esm/components/ui/theme/appearance/disabledOpacityClassMapper.mjs.map +1 -1
- package/dist/esm/components/ui/theme/appearance/readOnlyClassMapper.mjs.map +1 -1
- package/dist/esm/components/ui/theme/appearance/statusClassMapper.mjs +2 -2
- package/dist/esm/components/ui/theme/appearance/statusClassMapper.mjs.map +1 -1
- package/dist/esm/components/ui/theme/common/ComponentTheme.mjs +3 -2
- package/dist/esm/components/ui/theme/common/ComponentTheme.mjs.map +1 -1
- package/dist/esm/components/ui/theme/common/appearanceClassMappers.mjs +3 -2
- package/dist/esm/components/ui/theme/common/appearanceClassMappers.mjs.map +1 -1
- package/dist/esm/components/ui/theme/layout/transitionClassMapper.mjs +2 -2
- package/dist/esm/components/ui/theme/layout/transitionClassMapper.mjs.map +1 -1
- package/dist/esm/components/ui/tooltip/tooltipDefaults.mjs +1 -0
- package/dist/esm/components/ui/tooltip/tooltipDefaults.mjs.map +1 -1
- package/dist/esm/components/ui/typography/link/Link.mjs +4 -1
- package/dist/esm/components/ui/typography/link/Link.mjs.map +1 -1
- package/dist/esm/components/ui/typography/link/LinkCategories.mjs +1 -1
- package/dist/esm/components/ui/typography/link/LinkCategories.mjs.map +1 -1
- package/dist/esm/components/ui/typography/link/defaultLinkTheme.mjs +8 -2
- package/dist/esm/components/ui/typography/link/defaultLinkTheme.mjs.map +1 -1
- package/dist/esm/components/ui/typography/listItem/ListItem.mjs +0 -2
- package/dist/esm/components/ui/typography/listItem/ListItem.mjs.map +1 -1
- package/dist/types/components/ui/alert/Alert.d.cts +1 -1
- package/dist/types/components/ui/alert/Alert.d.mts +1 -1
- package/dist/types/components/ui/alert/Alert.d.ts +1 -1
- package/dist/types/components/ui/alert/AlertCategories.d.cts +1 -1
- package/dist/types/components/ui/alert/AlertCategories.d.mts +1 -1
- package/dist/types/components/ui/alert/AlertCategories.d.ts +1 -1
- package/dist/types/components/ui/alert/AlertProps.d.cts +2 -2
- package/dist/types/components/ui/alert/AlertProps.d.mts +2 -2
- package/dist/types/components/ui/alert/AlertProps.d.ts +2 -2
- package/dist/types/components/ui/alert/AlertTheme.d.cts +2 -1
- package/dist/types/components/ui/alert/AlertTheme.d.mts +2 -1
- package/dist/types/components/ui/alert/AlertTheme.d.ts +2 -1
- package/dist/types/components/ui/card/CardTheme.d.cts +1 -0
- package/dist/types/components/ui/card/CardTheme.d.mts +1 -0
- package/dist/types/components/ui/card/CardTheme.d.ts +1 -0
- package/dist/types/components/ui/checkbox/CheckboxCategories.d.cts +1 -1
- package/dist/types/components/ui/checkbox/CheckboxCategories.d.mts +1 -1
- package/dist/types/components/ui/checkbox/CheckboxCategories.d.ts +1 -1
- package/dist/types/components/ui/checkbox/CheckboxWrapperTheme.d.cts +2 -1
- package/dist/types/components/ui/checkbox/CheckboxWrapperTheme.d.mts +2 -1
- package/dist/types/components/ui/checkbox/CheckboxWrapperTheme.d.ts +2 -1
- package/dist/types/components/ui/classes/appearanceClasses.d.cts +2 -0
- package/dist/types/components/ui/classes/appearanceClasses.d.mts +2 -0
- package/dist/types/components/ui/classes/appearanceClasses.d.ts +2 -0
- package/dist/types/components/ui/field/FieldContext.d.cts +7 -0
- package/dist/types/components/ui/field/FieldContext.d.mts +7 -0
- package/dist/types/components/ui/field/FieldContext.d.ts +7 -0
- package/dist/types/components/ui/menu/MenuContext.d.cts +4 -0
- package/dist/types/components/ui/menu/MenuContext.d.mts +4 -0
- package/dist/types/components/ui/menu/MenuContext.d.ts +4 -0
- package/dist/types/components/ui/navLink/NavLinkLabelCategories.d.cts +2 -2
- package/dist/types/components/ui/navLink/NavLinkLabelCategories.d.mts +2 -2
- package/dist/types/components/ui/navLink/NavLinkLabelCategories.d.ts +2 -2
- package/dist/types/components/ui/navLink/NavLinkLabelProps.d.cts +2 -2
- package/dist/types/components/ui/navLink/NavLinkLabelProps.d.mts +2 -2
- package/dist/types/components/ui/navLink/NavLinkLabelProps.d.ts +2 -2
- package/dist/types/components/ui/navLink/NavLinkLabelTheme.d.cts +2 -0
- package/dist/types/components/ui/navLink/NavLinkLabelTheme.d.mts +2 -0
- package/dist/types/components/ui/navLink/NavLinkLabelTheme.d.ts +2 -0
- package/dist/types/components/ui/props/categoryBuilders.d.cts +1 -0
- package/dist/types/components/ui/props/categoryBuilders.d.mts +1 -0
- package/dist/types/components/ui/props/categoryBuilders.d.ts +1 -0
- package/dist/types/components/ui/radio/RadioCategories.d.cts +1 -1
- package/dist/types/components/ui/radio/RadioCategories.d.mts +1 -1
- package/dist/types/components/ui/radio/RadioCategories.d.ts +1 -1
- package/dist/types/components/ui/radio/RadioGroupContext.d.cts +3 -0
- package/dist/types/components/ui/radio/RadioGroupContext.d.mts +3 -0
- package/dist/types/components/ui/radio/RadioGroupContext.d.ts +3 -0
- package/dist/types/components/ui/radio/RadioWrapperTheme.d.cts +2 -1
- package/dist/types/components/ui/radio/RadioWrapperTheme.d.mts +2 -1
- package/dist/types/components/ui/radio/RadioWrapperTheme.d.ts +2 -1
- package/dist/types/components/ui/select/SelectWrapperCategories.d.cts +2 -2
- package/dist/types/components/ui/select/SelectWrapperCategories.d.mts +2 -2
- package/dist/types/components/ui/select/SelectWrapperCategories.d.ts +2 -2
- package/dist/types/components/ui/select/SelectWrapperProps.d.cts +2 -2
- package/dist/types/components/ui/select/SelectWrapperProps.d.mts +2 -2
- package/dist/types/components/ui/select/SelectWrapperProps.d.ts +2 -2
- package/dist/types/components/ui/select/SelectWrapperTheme.d.cts +2 -1
- package/dist/types/components/ui/select/SelectWrapperTheme.d.mts +2 -1
- package/dist/types/components/ui/select/SelectWrapperTheme.d.ts +2 -1
- package/dist/types/components/ui/switch/SwitchCategories.d.cts +1 -1
- package/dist/types/components/ui/switch/SwitchCategories.d.mts +1 -1
- package/dist/types/components/ui/switch/SwitchCategories.d.ts +1 -1
- package/dist/types/components/ui/switch/SwitchWrapperTheme.d.cts +2 -1
- package/dist/types/components/ui/switch/SwitchWrapperTheme.d.mts +2 -1
- package/dist/types/components/ui/switch/SwitchWrapperTheme.d.ts +2 -1
- package/dist/types/components/ui/table/Table.d.cts +1 -1
- package/dist/types/components/ui/table/Table.d.mts +1 -1
- package/dist/types/components/ui/table/Table.d.ts +1 -1
- package/dist/types/components/ui/table/TableCategories.d.cts +1 -1
- package/dist/types/components/ui/table/TableCategories.d.mts +1 -1
- package/dist/types/components/ui/table/TableCategories.d.ts +1 -1
- package/dist/types/components/ui/table/TableProps.d.cts +2 -2
- package/dist/types/components/ui/table/TableProps.d.mts +2 -2
- package/dist/types/components/ui/table/TableProps.d.ts +2 -2
- package/dist/types/components/ui/table/TableTheme.d.cts +2 -1
- package/dist/types/components/ui/table/TableTheme.d.mts +2 -1
- package/dist/types/components/ui/table/TableTheme.d.ts +2 -1
- package/dist/types/components/ui/theme/appearance/disabledClassMapper.d.cts +4 -0
- package/dist/types/components/ui/theme/appearance/disabledClassMapper.d.mts +4 -0
- package/dist/types/components/ui/theme/appearance/disabledClassMapper.d.ts +4 -0
- package/dist/types/components/ui/theme/appearance/index.d.cts +1 -1
- package/dist/types/components/ui/theme/appearance/index.d.mts +1 -1
- package/dist/types/components/ui/theme/appearance/index.d.ts +1 -1
- package/dist/types/components/ui/theme/appearance/readOnlyClassMapper.d.cts +1 -1
- package/dist/types/components/ui/theme/appearance/readOnlyClassMapper.d.mts +1 -1
- package/dist/types/components/ui/theme/appearance/readOnlyClassMapper.d.ts +1 -1
- package/dist/types/components/ui/theme/appearance/statusClassMapper.d.cts +1 -1
- package/dist/types/components/ui/theme/appearance/statusClassMapper.d.mts +1 -1
- package/dist/types/components/ui/theme/appearance/statusClassMapper.d.ts +1 -1
- package/dist/types/components/ui/theme/common/appearanceClassMappers.d.cts +2 -0
- package/dist/types/components/ui/theme/common/appearanceClassMappers.d.mts +2 -0
- package/dist/types/components/ui/theme/common/appearanceClassMappers.d.ts +2 -0
- package/dist/types/components/ui/theme/common/index.d.cts +1 -1
- package/dist/types/components/ui/theme/common/index.d.mts +1 -1
- package/dist/types/components/ui/theme/common/index.d.ts +1 -1
- package/dist/types/components/ui/theme/layout/transitionClassMapper.d.cts +1 -1
- package/dist/types/components/ui/theme/layout/transitionClassMapper.d.mts +1 -1
- package/dist/types/components/ui/theme/layout/transitionClassMapper.d.ts +1 -1
- package/dist/types/components/ui/typography/link/LinkCategories.d.cts +3 -3
- package/dist/types/components/ui/typography/link/LinkCategories.d.mts +3 -3
- package/dist/types/components/ui/typography/link/LinkCategories.d.ts +3 -3
- package/dist/types/components/ui/typography/link/LinkTheme.d.cts +4 -0
- package/dist/types/components/ui/typography/link/LinkTheme.d.mts +4 -0
- package/dist/types/components/ui/typography/link/LinkTheme.d.ts +4 -0
- package/dist/ui.css +1 -1
- package/dist/vars.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Switch.cjs","sources":["../../../../../src/components/ui/switch/Switch.tsx"],"sourcesContent":["import { forwardRef, useCallback, useMemo, type MouseEvent } from 'react';\nimport type { SwitchProps } from './SwitchProps';\nimport { useTheme } from \"../../themeContext\";\nimport { useFieldControlProps } from \"../field/FieldContext\";\nimport { ThemedComponent } from \"../../themedComponent\";\nimport { useLabelSizeContext, withLabelSizeDefault } from \"../label/LabelSizeContext\";\nimport { defaultSwitchTheme } from \"./defaultSwitchTheme\";\nimport { defaultSwitchThumbTheme } from \"./defaultSwitchThumbTheme\";\nimport { defaultSwitchWrapperTheme } from \"./defaultSwitchWrapperTheme\";\n\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(\n function Switch(rawProps, ref) {\n const props = useFieldControlProps(rawProps);\n const theme = useTheme();\n const wrapperThemeBase = theme?.switch.wrapper ?? defaultSwitchWrapperTheme;\n const inputThemeBase = theme?.switch.input ?? defaultSwitchTheme;\n const thumbTheme = theme?.switch.thumb ?? defaultSwitchThumbTheme;\n\n // inside a Label, the Label's resolved size becomes the size default for the\n // sized sub-themes (wrapper + input; the thumb has no size category — it\n // scales via CSS variables). Explicit size props still win.\n const labelSize = useLabelSizeContext();\n const wrapperTheme = useMemo(\n () => withLabelSizeDefault(wrapperThemeBase, labelSize),\n [wrapperThemeBase, labelSize]\n );\n const switchInputTheme = useMemo(\n () => withLabelSizeDefault(inputThemeBase, labelSize),\n [inputThemeBase, labelSize]\n );\n\n const {\n xs, sm, md, lg, xl,\n primary, accent, secondary, tertiary, success, danger, warning, info,\n filled, outline, ghost,\n pill, sharp, rounded,\n invalid,\n checked, defaultChecked, disabled, name, value, onChange, onBlur, onFocus, onClick, required, readOnly,\n id, className, tabIndex, 'aria-label': ariaLabel,\n ...remainingProps\n } = props;\n\n // native readOnly is inert on checkbox inputs — cancel activation so aria-readonly stays truthful\n const handleClick = useCallback((event: MouseEvent<HTMLInputElement>) => {\n if (readOnly) event.preventDefault();\n onClick?.(event);\n }, [readOnly, onClick]);\n\n const themeProps = {\n xs, sm, md, lg, xl,\n primary, accent, secondary, tertiary, success, danger, warning, info,\n // ghost must reach the wrapper too: the thumb reads --text-color from it\n filled, outline, ghost,\n pill, sharp, rounded,\n disabled,\n };\n\n const inputProps = {\n type: \"checkbox\" as const,\n role: \"switch\",\n checked, defaultChecked, name, value, onChange, onBlur, onFocus, required, readOnly,\n onClick: handleClick,\n id, tabIndex, 'aria-label': ariaLabel,\n ...remainingProps,\n ...themeProps,\n // validity belongs on the input only, never duplicated onto the wrapper\n invalid,\n };\n\n return (\n <ThemedComponent theme={wrapperTheme} className={className} {...themeProps}>\n <ThemedComponent theme={switchInputTheme} ref={ref} {...inputProps} />\n {/* decorative knob — hidden from AT; shape only, since the rest has no category here and would hit the DOM */}\n <ThemedComponent theme={thumbTheme} aria-hidden=\"true\" {...{ pill, sharp, rounded }} />\n </ThemedComponent>\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n"],"names":["forwardRef","Switch","useFieldControlProps","useTheme","defaultSwitchWrapperTheme","defaultSwitchTheme","defaultSwitchThumbTheme","useLabelSizeContext","useMemo","withLabelSizeDefault","useCallback","ThemedComponent","jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Switch.cjs","sources":["../../../../../src/components/ui/switch/Switch.tsx"],"sourcesContent":["import { forwardRef, useCallback, useMemo, type MouseEvent } from 'react';\nimport type { SwitchProps } from './SwitchProps';\nimport { useTheme } from \"../../themeContext\";\nimport { useFieldControlProps } from \"../field/FieldContext\";\nimport { ThemedComponent } from \"../../themedComponent\";\nimport { useLabelSizeContext, withLabelSizeDefault } from \"../label/LabelSizeContext\";\nimport { pickFirstTruthyKeyByCategory } from \"../../utils/componentUtils\";\nimport { defaultSwitchTheme } from \"./defaultSwitchTheme\";\nimport { defaultSwitchThumbTheme } from \"./defaultSwitchThumbTheme\";\nimport { defaultSwitchWrapperTheme } from \"./defaultSwitchWrapperTheme\";\n\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(\n function Switch(rawProps, ref) {\n const props = useFieldControlProps(rawProps);\n const theme = useTheme();\n const wrapperThemeBase = theme?.switch.wrapper ?? defaultSwitchWrapperTheme;\n const inputThemeBase = theme?.switch.input ?? defaultSwitchTheme;\n const thumbTheme = theme?.switch.thumb ?? defaultSwitchThumbTheme;\n\n // inside a Label, the Label's resolved size becomes the size default for the\n // sized sub-themes (wrapper + input; the thumb has no size category — it\n // scales via CSS variables). Explicit size props still win.\n const labelSize = useLabelSizeContext();\n const wrapperTheme = useMemo(\n () => withLabelSizeDefault(wrapperThemeBase, labelSize),\n [wrapperThemeBase, labelSize]\n );\n const switchInputTheme = useMemo(\n () => withLabelSizeDefault(inputThemeBase, labelSize),\n [inputThemeBase, labelSize]\n );\n\n // the track's geometry lives on the wrapper, so a size set on the input (as for Checkbox and Radio) must reach it;\n // the library default is skipped so a switch.wrapper size default still applies\n const inputSize = pickFirstTruthyKeyByCategory(\n rawProps as unknown as Record<string, unknown>,\n switchInputTheme.defaults as unknown as Record<string, unknown>,\n 'size'\n );\n const librarySize = pickFirstTruthyKeyByCategory({}, defaultSwitchTheme.defaults as unknown as Record<string, unknown>, 'size');\n const wrapperSize = inputSize && inputSize !== librarySize ? { [inputSize]: true } : undefined;\n\n const {\n xs, sm, md, lg, xl,\n primary, accent, secondary, tertiary, success, danger, warning, info,\n filled, outline, ghost,\n pill, sharp, rounded,\n invalid,\n checked, defaultChecked, disabled, name, value, onChange, onBlur, onFocus, onClick, required, readOnly,\n id, className, tabIndex, 'aria-label': ariaLabel,\n ...remainingProps\n } = props;\n\n // native readOnly is inert on checkbox inputs — cancel activation so aria-readonly stays truthful\n const handleClick = useCallback((event: MouseEvent<HTMLInputElement>) => {\n if (readOnly) event.preventDefault();\n onClick?.(event);\n }, [readOnly, onClick]);\n\n const themeProps = {\n xs, sm, md, lg, xl,\n primary, accent, secondary, tertiary, success, danger, warning, info,\n // ghost must reach the wrapper too: the thumb reads --text-color from it\n filled, outline, ghost,\n pill, sharp, rounded,\n disabled,\n // read-only dims the wrapper like a read-only text field\n readOnly,\n };\n\n const inputProps = {\n type: \"checkbox\" as const,\n role: \"switch\",\n checked, defaultChecked, name, value, onChange, onBlur, onFocus, required,\n onClick: handleClick,\n id, tabIndex, 'aria-label': ariaLabel,\n ...remainingProps,\n ...themeProps,\n // validity belongs on the input only, never duplicated onto the wrapper\n invalid,\n };\n\n return (\n <ThemedComponent theme={wrapperTheme} className={className} {...themeProps} {...wrapperSize}>\n <ThemedComponent theme={switchInputTheme} ref={ref} {...inputProps} />\n {/* decorative knob — hidden from AT; shape only, since the rest has no category here and would hit the DOM */}\n <ThemedComponent theme={thumbTheme} aria-hidden=\"true\" {...{ pill, sharp, rounded }} />\n </ThemedComponent>\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n"],"names":["forwardRef","Switch","useFieldControlProps","useTheme","defaultSwitchWrapperTheme","defaultSwitchTheme","defaultSwitchThumbTheme","useLabelSizeContext","useMemo","withLabelSizeDefault","pickFirstTruthyKeyByCategory","useCallback","jsxs","ThemedComponent","jsx"],"mappings":"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;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEhE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjB,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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"}
|
|
@@ -7,6 +7,7 @@ require('../theme/common/typographyClassMappers.cjs');
|
|
|
7
7
|
require('../theme/common/appearanceClassMappers.cjs');
|
|
8
8
|
require('../theme/appearance/shadowAppearanceClassMapper.cjs');
|
|
9
9
|
var simpleConsumerClassMapper = require('../theme/appearance/simpleConsumerClassMapper.cjs');
|
|
10
|
+
var readOnlyClassMapper = require('../theme/appearance/readOnlyClassMapper.cjs');
|
|
10
11
|
var disabledOpacityClassMapper = require('../theme/appearance/disabledOpacityClassMapper.cjs');
|
|
11
12
|
var focusVisibleClassMapper = require('../theme/layout/focusVisibleClassMapper.cjs');
|
|
12
13
|
var alignSelfClassMapper = require('../theme/layout/alignSelfClassMapper.cjs');
|
|
@@ -30,6 +31,8 @@ const defaultSwitchWrapperTheme = new ComponentTheme.ComponentTheme(
|
|
|
30
31
|
},
|
|
31
32
|
appearance: {
|
|
32
33
|
focusVisible: new simpleConsumerClassMapper.SimpleConsumerClassMapper({ base: appearanceClasses.focusVisibleConsumerClass }, "focusVisible"),
|
|
34
|
+
// read-only toggles dim like read-only text fields; listed before disabled so a disabled opacity wins
|
|
35
|
+
readOnly: new readOnlyClassMapper.ReadOnlyClassMapper(),
|
|
33
36
|
disabled: new disabledOpacityClassMapper.DisabledOpacityClassMapper()
|
|
34
37
|
}
|
|
35
38
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultSwitchWrapperTheme.cjs","sources":["../../../../../src/components/ui/switch/defaultSwitchWrapperTheme.ts"],"sourcesContent":["import { ComponentTheme, defaultLayoutClassMappers } from \"../theme/common\";\nimport type { SwitchProps } from \"./SwitchProps\";\nimport { SimpleConsumerClassMapper, DisabledOpacityClassMapper } from \"../theme/appearance\";\nimport { FocusVisibleClassMapper, AlignSelfClassMapper } from \"../theme/layout\";\nimport { SizeClassMapper } from \"../theme/size\";\nimport { focusVisibleConsumerClass } from \"../classes/appearanceClasses\";\nimport { SWITCH_CATEGORIES } from \"./SwitchCategories\";\nimport type { SwitchWrapperTheme } from \"./SwitchWrapperTheme\";\nimport { switchWrapperDefaults } from \"./switchWrapperDefaults\";\n\n// wrapper is one text line tall so the track centers on the label's first row\nconst lineBox = \"h-[calc(var(--lh)*var(--fs))]\";\n\nexport const defaultSwitchWrapperTheme = new ComponentTheme<SwitchProps, SwitchWrapperTheme>(\n \"span\",\n \"vane-switch-wrapper\",\n {\n size: {\n height: new SizeClassMapper({ xs: lineBox, sm: lineBox, md: lineBox, lg: lineBox, xl: lineBox })\n },\n layout: {\n ...defaultLayoutClassMappers,\n focusVisible: new FocusVisibleClassMapper(),\n alignSelf: new AlignSelfClassMapper()\n },\n appearance: {\n focusVisible: new SimpleConsumerClassMapper({ base: focusVisibleConsumerClass }, 'focusVisible'),\n disabled: new DisabledOpacityClassMapper(),\n }\n },\n switchWrapperDefaults,\n SWITCH_CATEGORIES,\n undefined,\n 'ui'\n);\n"],"names":["ComponentTheme","SizeClassMapper","defaultLayoutClassMappers","FocusVisibleClassMapper","AlignSelfClassMapper","SimpleConsumerClassMapper","focusVisibleConsumerClass","DisabledOpacityClassMapper","switchWrapperDefaults","SWITCH_CATEGORIES"],"mappings":"
|
|
1
|
+
{"version":3,"file":"defaultSwitchWrapperTheme.cjs","sources":["../../../../../src/components/ui/switch/defaultSwitchWrapperTheme.ts"],"sourcesContent":["import { ComponentTheme, defaultLayoutClassMappers } from \"../theme/common\";\nimport type { SwitchProps } from \"./SwitchProps\";\nimport { SimpleConsumerClassMapper, DisabledOpacityClassMapper, ReadOnlyClassMapper } from \"../theme/appearance\";\nimport { FocusVisibleClassMapper, AlignSelfClassMapper } from \"../theme/layout\";\nimport { SizeClassMapper } from \"../theme/size\";\nimport { focusVisibleConsumerClass } from \"../classes/appearanceClasses\";\nimport { SWITCH_CATEGORIES } from \"./SwitchCategories\";\nimport type { SwitchWrapperTheme } from \"./SwitchWrapperTheme\";\nimport { switchWrapperDefaults } from \"./switchWrapperDefaults\";\n\n// wrapper is one text line tall so the track centers on the label's first row\nconst lineBox = \"h-[calc(var(--lh)*var(--fs))]\";\n\nexport const defaultSwitchWrapperTheme = new ComponentTheme<SwitchProps, SwitchWrapperTheme>(\n \"span\",\n \"vane-switch-wrapper\",\n {\n size: {\n height: new SizeClassMapper({ xs: lineBox, sm: lineBox, md: lineBox, lg: lineBox, xl: lineBox })\n },\n layout: {\n ...defaultLayoutClassMappers,\n focusVisible: new FocusVisibleClassMapper(),\n alignSelf: new AlignSelfClassMapper()\n },\n appearance: {\n focusVisible: new SimpleConsumerClassMapper({ base: focusVisibleConsumerClass }, 'focusVisible'),\n // read-only toggles dim like read-only text fields; listed before disabled so a disabled opacity wins\n readOnly: new ReadOnlyClassMapper(),\n disabled: new DisabledOpacityClassMapper(),\n }\n },\n switchWrapperDefaults,\n SWITCH_CATEGORIES,\n undefined,\n 'ui'\n);\n"],"names":["ComponentTheme","SizeClassMapper","defaultLayoutClassMappers","FocusVisibleClassMapper","AlignSelfClassMapper","SimpleConsumerClassMapper","focusVisibleConsumerClass","ReadOnlyClassMapper","DisabledOpacityClassMapper","switchWrapperDefaults","SWITCH_CATEGORIES"],"mappings":";;;;;;;;;;;;;;;;;;AAWA,MAAM,OAAA,GAAU,+BAAA;AAET,MAAM,4BAA4B,IAAIA,6BAAA;AAAA,EAC3C,MAAA;AAAA,EACA,qBAAA;AAAA,EACA;AAAA,IACE,IAAA,EAAM;AAAA,MACJ,MAAA,EAAQ,IAAIC,+BAAA,CAAgB,EAAE,IAAI,OAAA,EAAS,EAAA,EAAI,OAAA,EAAS,EAAA,EAAI,OAAA,EAAS,EAAA,EAAI,OAAA,EAAS,EAAA,EAAI,SAAS;AAAA,KACjG;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,GAAGC,wCAAA;AAAA,MACH,YAAA,EAAc,IAAIC,+CAAA,EAAwB;AAAA,MAC1C,SAAA,EAAW,IAAIC,yCAAA;AAAqB,KACtC;AAAA,IACA,UAAA,EAAY;AAAA,MACV,cAAc,IAAIC,mDAAA,CAA0B,EAAE,IAAA,EAAMC,2CAAA,IAA6B,cAAc,CAAA;AAAA;AAAA,MAE/F,QAAA,EAAU,IAAIC,uCAAA,EAAoB;AAAA,MAClC,QAAA,EAAU,IAAIC,qDAAA;AAA2B;AAC3C,GACF;AAAA,EACAC,2CAAA;AAAA,EACAC,kCAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableCategories.cjs","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":["VISUAL_CORE","VARIANT","BORDER","WIDTH","MARGIN","TEXT_ALIGN","RESPONSIVE"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"TableCategories.cjs","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":["VISUAL_CORE","VARIANT","BORDER","WIDTH","MARGIN","TEXT_ALIGN","FONT_FAMILY","RESPONSIVE"],"mappings":";;;;AAcO,MAAM,gBAAA,GAAmB;AAAA,EAC9B,MAAA;AAAA,EACA,GAAGA,4BAAA;AAAA,EACH,GAAGC,wBAAA;AAAA,EACH,GAAGC,uBAAA;AAAA,EACH,GAAGC,sBAAA;AAAA,EACH,GAAGC,uBAAA;AAAA,EACH,GAAGC,2BAAA;AAAA,EACH,GAAGC,4BAAA;AAAA,EACH,MAAA;AAAA,EACA,GAAGC;AACL;;;;"}
|
|
@@ -10,6 +10,7 @@ var tableDefaults = require('./tableDefaults.cjs');
|
|
|
10
10
|
var marginClassMapper = require('../theme/size/marginClassMapper.cjs');
|
|
11
11
|
var borderClassMapper = require('../theme/layout/borderClassMapper.cjs');
|
|
12
12
|
var widthClassMapper = require('../theme/layout/widthClassMapper.cjs');
|
|
13
|
+
var fontFamilyClassMapper = require('../theme/typography/fontFamilyClassMapper.cjs');
|
|
13
14
|
var textAlignClassMapper = require('../theme/typography/textAlignClassMapper.cjs');
|
|
14
15
|
|
|
15
16
|
const defaultTableTheme = new ComponentTheme.ComponentTheme(
|
|
@@ -28,7 +29,8 @@ const defaultTableTheme = new ComponentTheme.ComponentTheme(
|
|
|
28
29
|
width: new widthClassMapper.WidthClassMapper()
|
|
29
30
|
},
|
|
30
31
|
typography: {
|
|
31
|
-
textAlign: new textAlignClassMapper.TextAlignClassMapper()
|
|
32
|
+
textAlign: new textAlignClassMapper.TextAlignClassMapper(),
|
|
33
|
+
fontFamily: new fontFamilyClassMapper.FontFamilyClassMapper()
|
|
32
34
|
}
|
|
33
35
|
},
|
|
34
36
|
tableDefaults.tableDefaults,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultTableTheme.cjs","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":["ComponentTheme","MarginClassMapper","borderAppearance","defaultLayoutClassMappers","BorderClassMapper","WidthClassMapper","TextAlignClassMapper","tableDefaults","TABLE_CATEGORIES"],"mappings":"
|
|
1
|
+
{"version":3,"file":"defaultTableTheme.cjs","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":["ComponentTheme","MarginClassMapper","borderAppearance","defaultLayoutClassMappers","BorderClassMapper","WidthClassMapper","TextAlignClassMapper","FontFamilyClassMapper","tableDefaults","TABLE_CATEGORIES"],"mappings":";;;;;;;;;;;;;;;AASO,MAAM,oBAAoB,IAAIA,6BAAA;AAAA,EACnC,OAAA;AAAA,EACA,4BAAA;AAAA,EACA;AAAA,IACE,IAAA,EAAM;AAAA,MACJ,MAAA,EAAQ,IAAIC,mCAAA;AAAkB,KAChC;AAAA,IACA,UAAA,EAAY;AAAA,MACV,MAAA,EAAQC;AAAA,KACV;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,GAAGC,wCAAA;AAAA,MACH,MAAA,EAAQ,IAAIC,mCAAA,EAAkB;AAAA,MAC9B,KAAA,EAAO,IAAIC,iCAAA;AAAiB,KAC9B;AAAA,IACA,UAAA,EAAY;AAAA,MACV,SAAA,EAAW,IAAIC,yCAAA,EAAqB;AAAA,MACpC,UAAA,EAAY,IAAIC,2CAAA;AAAsB;AACxC,GACF;AAAA,EACAC,2BAAA;AAAA,EACAC,gCAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableDefaults.cjs","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;;;;"}
|
|
1
|
+
{"version":3,"file":"tableDefaults.cjs","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;;;;"}
|
|
@@ -21,7 +21,7 @@ const defaultTextareaTheme = new ComponentTheme.ComponentTheme(
|
|
|
21
21
|
...interactiveClassMappers.interactiveClassMappers.appearance,
|
|
22
22
|
background: appearanceClassMappers.bgHoverAppearance,
|
|
23
23
|
status: new statusClassMapper.StatusClassMapper(),
|
|
24
|
-
disabled: new disabledClassMapper.
|
|
24
|
+
disabled: new disabledClassMapper.DisabledVisualClassMapper(),
|
|
25
25
|
readOnly: new readOnlyClassMapper.ReadOnlyClassMapper()
|
|
26
26
|
}
|
|
27
27
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultTextareaTheme.cjs","sources":["../../../../../src/components/ui/textarea/defaultTextareaTheme.ts"],"sourcesContent":["import { ComponentTheme, interactiveClassMappers, bgHoverAppearance } from \"../theme/common\";\nimport type { TextareaProps } from \"./TextareaProps\";\nimport { StatusClassMapper,
|
|
1
|
+
{"version":3,"file":"defaultTextareaTheme.cjs","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":["ComponentTheme","interactiveClassMappers","bgHoverAppearance","StatusClassMapper","DisabledVisualClassMapper","ReadOnlyClassMapper","textareaDefaults","INPUT_CATEGORIES"],"mappings":";;;;;;;;;;;;;;AAWO,MAAM,uBAAuB,IAAIA,6BAAA;AAAA,EACtC,UAAA;AAAA,EACA,eAAA;AAAA,EACA;AAAA,IACE,GAAGC,+CAAA;AAAA,IACH,UAAA,EAAY;AAAA,MACV,GAAGA,+CAAA,CAAwB,UAAA;AAAA,MAC3B,UAAA,EAAYC,wCAAA;AAAA,MACZ,MAAA,EAAQ,IAAIC,mCAAA,EAAkB;AAAA,MAC9B,QAAA,EAAU,IAAIC,6CAAA,EAA0B;AAAA,MACxC,QAAA,EAAU,IAAIC,uCAAA;AAAoB;AACpC,GACF;AAAA,EACAC,iCAAA;AAAA,EACAC,gCAAA;AAAA,EACA,MAAM,UAAA;AAAA,EACN;AACF;;;;"}
|
|
@@ -6,7 +6,7 @@ class DisabledClassMapper extends BaseClassMapper.BaseClassMapper {
|
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
8
|
/** Disabled state - reduced opacity, not-allowed cursor, no pointer events */
|
|
9
|
-
this.disabled = "opacity-
|
|
9
|
+
this.disabled = "opacity-(--disabled-opacity) cursor-not-allowed pointer-events-none";
|
|
10
10
|
}
|
|
11
11
|
getClasses(extractedKeys) {
|
|
12
12
|
const value = extractedKeys?.disabled;
|
|
@@ -16,6 +16,13 @@ class DisabledClassMapper extends BaseClassMapper.BaseClassMapper {
|
|
|
16
16
|
return [];
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
+
class DisabledVisualClassMapper extends DisabledClassMapper {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(...arguments);
|
|
22
|
+
this.disabled = "opacity-(--disabled-opacity) cursor-not-allowed";
|
|
23
|
+
}
|
|
24
|
+
}
|
|
19
25
|
|
|
20
26
|
exports.DisabledClassMapper = DisabledClassMapper;
|
|
27
|
+
exports.DisabledVisualClassMapper = DisabledVisualClassMapper;
|
|
21
28
|
//# sourceMappingURL=disabledClassMapper.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disabledClassMapper.cjs","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-
|
|
1
|
+
{"version":3,"file":"disabledClassMapper.cjs","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":["BaseClassMapper"],"mappings":";;;;AAOO,MAAM,4BAA4BA,+BAAA,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;;;;;"}
|
|
@@ -6,7 +6,7 @@ class DisabledOpacityClassMapper extends BaseClassMapper.BaseClassMapper {
|
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
8
|
/** Disabled state - reduced opacity only */
|
|
9
|
-
this.disabled = "opacity-
|
|
9
|
+
this.disabled = "opacity-(--disabled-opacity)";
|
|
10
10
|
}
|
|
11
11
|
getClasses(extractedKeys) {
|
|
12
12
|
const value = extractedKeys?.disabled;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disabledOpacityClassMapper.cjs","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-
|
|
1
|
+
{"version":3,"file":"disabledOpacityClassMapper.cjs","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":["BaseClassMapper"],"mappings":";;;;AAOO,MAAM,mCAAmCA,+BAAA,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readOnlyClassMapper.cjs","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
|
|
1
|
+
{"version":3,"file":"readOnlyClassMapper.cjs","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":["BaseClassMapper"],"mappings":";;;;AAUO,MAAM,4BAA4BA,+BAAA,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;;;;"}
|
|
@@ -5,8 +5,8 @@ var BaseClassMapper = require('../common/BaseClassMapper.cjs');
|
|
|
5
5
|
class StatusClassMapper extends BaseClassMapper.BaseClassMapper {
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
|
-
/** Invalid state - danger border/ring
|
|
9
|
-
this.invalid = "border-(--color-
|
|
8
|
+
/** Invalid state - full-strength danger border/ring (the danger text token), readable in both themes */
|
|
9
|
+
this.invalid = "border-(--color-text-danger) ring-(--color-text-danger)";
|
|
10
10
|
}
|
|
11
11
|
getClasses(extractedKeys) {
|
|
12
12
|
const classes = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statusClassMapper.cjs","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
|
|
1
|
+
{"version":3,"file":"statusClassMapper.cjs","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":["BaseClassMapper"],"mappings":";;;;AAOO,MAAM,0BAA0BA,+BAAA,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;;;;"}
|
|
@@ -240,7 +240,7 @@ class ComponentTheme {
|
|
|
240
240
|
if (hasAppearance) {
|
|
241
241
|
dataAttributes["data-appearance"] = extractedKeys.appearance;
|
|
242
242
|
}
|
|
243
|
-
if (extractedKeys.variant &&
|
|
243
|
+
if (extractedKeys.variant && hasAppearance) {
|
|
244
244
|
dataAttributes["data-variant"] = extractedKeys.variant;
|
|
245
245
|
}
|
|
246
246
|
if (rawProps.disabled) {
|
|
@@ -248,7 +248,8 @@ class ComponentTheme {
|
|
|
248
248
|
}
|
|
249
249
|
if (rawProps.readOnly) {
|
|
250
250
|
dataAttributes["data-readonly"] = "true";
|
|
251
|
-
|
|
251
|
+
const isFormControlTag = typeof componentTag !== "string" || ["input", "textarea", "select"].includes(componentTag);
|
|
252
|
+
if (rawProps["aria-readonly"] === void 0 && isFormControlTag) {
|
|
252
253
|
dataAttributes["aria-readonly"] = "true";
|
|
253
254
|
}
|
|
254
255
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentTheme.cjs","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":["HideClassMapper","ItemsClassMapper","JustifyClassMapper","PositionClassMapper","DisplayClassMapper","OverflowClassMapper","WidthClassMapper","HeightClassMapper","FontFamilyClassMapper","FontWeightClassMapper","FontStyleClassMapper","TextDecorationClassMapper","TextTransformClassMapper","TextAlignClassMapper","TruncateClassMapper","ComponentKeys","MULTI_VALUE_CATEGORIES","collectTruthyKeysByCategory","pickFirstTruthyKeyByCategory","BaseClassMapper","resetConflictKey","twMerge"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ComponentTheme.cjs","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":["HideClassMapper","ItemsClassMapper","JustifyClassMapper","PositionClassMapper","DisplayClassMapper","OverflowClassMapper","WidthClassMapper","HeightClassMapper","FontFamilyClassMapper","FontWeightClassMapper","FontStyleClassMapper","TextDecorationClassMapper","TextTransformClassMapper","TextAlignClassMapper","TruncateClassMapper","ComponentKeys","MULTI_VALUE_CATEGORIES","collectTruthyKeysByCategory","pickFirstTruthyKeyByCategory","BaseClassMapper","resetConflictKey","twMerge"],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ const ringAppearance = new simpleConsumerClassMapper.SimpleConsumerClassMapper({
|
|
|
14
14
|
const focusVisibleAppearance = new simpleConsumerClassMapper.SimpleConsumerClassMapper({ base: appearanceClasses.focusVisibleConsumerClass }, "focusVisible");
|
|
15
15
|
const accentAppearance = new simpleConsumerClassMapper.SimpleConsumerClassMapper({ base: appearanceClasses.accentConsumerClass }, "accent");
|
|
16
16
|
const checkedBgAppearance = new simpleConsumerClassMapper.SimpleConsumerClassMapper({ base: appearanceClasses.checkedBgConsumerClass }, "bg");
|
|
17
|
+
const checkedOnlyBgAppearance = new simpleConsumerClassMapper.SimpleConsumerClassMapper({ base: appearanceClasses.checkedOnlyBgConsumerClass }, "bg");
|
|
17
18
|
const shadowAppearance = new shadowAppearanceClassMapper.ShadowAppearanceClassMapper();
|
|
18
19
|
|
|
19
20
|
exports.accentAppearance = accentAppearance;
|
|
@@ -23,6 +24,7 @@ exports.bgHoverAppearance = bgHoverAppearance;
|
|
|
23
24
|
exports.bgHoverOnlyAppearance = bgHoverOnlyAppearance;
|
|
24
25
|
exports.borderAppearance = borderAppearance;
|
|
25
26
|
exports.checkedBgAppearance = checkedBgAppearance;
|
|
27
|
+
exports.checkedOnlyBgAppearance = checkedOnlyBgAppearance;
|
|
26
28
|
exports.focusVisibleAppearance = focusVisibleAppearance;
|
|
27
29
|
exports.ringAppearance = ringAppearance;
|
|
28
30
|
exports.shadowAppearance = shadowAppearance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appearanceClassMappers.cjs","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":["SimpleConsumerClassMapper","bgConsumerClasses","textConsumerClass","borderConsumerClass","ringConsumerClass","focusVisibleConsumerClass","accentConsumerClass","checkedBgConsumerClass","ShadowAppearanceClassMapper"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"appearanceClassMappers.cjs","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":["SimpleConsumerClassMapper","bgConsumerClasses","textConsumerClass","borderConsumerClass","ringConsumerClass","focusVisibleConsumerClass","accentConsumerClass","checkedBgConsumerClass","checkedOnlyBgConsumerClass","ShadowAppearanceClassMapper"],"mappings":";;;;;;AAcO,MAAM,YAAA,GAAe,IAAIA,mDAAA,CAA0B,EAAE,MAAMC,mCAAA,CAAkB,IAAA,IAAQ,IAAI;AAGzF,MAAM,iBAAA,GAAoB,IAAID,mDAAA,CAA0B,EAAE,IAAA,EAAMC,mCAAA,CAAkB,IAAA,EAAM,KAAA,EAAOA,mCAAA,CAAkB,KAAA,EAAM,EAAG,IAAI;AAG9H,MAAM,qBAAA,GAAwB,IAAID,mDAAA,CAA0B,EAAE,OAAOC,mCAAA,CAAkB,KAAA,IAAS,IAAI;AAGpG,MAAM,kBAAA,GAAqB,IAAID,mDAAA,CAA0B,EAAE,MAAMC,mCAAA,CAAkB,IAAA,EAAM,KAAA,EAAOA,mCAAA,CAAkB,KAAA,EAAO,MAAA,EAAQA,mCAAA,CAAkB,MAAA,IAAU,IAAI;AAGjK,MAAM,iBAAiB,IAAID,mDAAA,CAA0B,EAAE,IAAA,EAAME,mCAAA,IAAqB,MAAM;AAGxF,MAAM,gBAAA,GAAmB,IAAIF,mDAAA,CAA0B,EAAE,MAAMG,qCAAA,EAAqB,YAAA,EAAc,IAAA,EAAK,EAAG,QAAQ;AAGlH,MAAM,cAAA,GAAiB,IAAIH,mDAAA,CAA0B,EAAE,MAAMI,mCAAA,EAAmB,YAAA,EAAc,IAAA,EAAK,EAAG,MAAM;AAG5G,MAAM,yBAAyB,IAAIJ,mDAAA,CAA0B,EAAE,IAAA,EAAMK,2CAAA,IAA6B,cAAc;AAGhH,MAAM,mBAAmB,IAAIL,mDAAA,CAA0B,EAAE,IAAA,EAAMM,qCAAA,IAAuB,QAAQ;AAG9F,MAAM,sBAAsB,IAAIN,mDAAA,CAA0B,EAAE,IAAA,EAAMO,wCAAA,IAA0B,IAAI;AAGhG,MAAM,0BAA0B,IAAIP,mDAAA,CAA0B,EAAE,IAAA,EAAMQ,4CAAA,IAA8B,IAAI;AAGxG,MAAM,gBAAA,GAAmB,IAAIC,uDAAA;;;;;;;;;;;;;;;"}
|
|
@@ -5,8 +5,8 @@ var BaseClassMapper = require('../common/BaseClassMapper.cjs');
|
|
|
5
5
|
class TransitionClassMapper extends BaseClassMapper.BaseClassMapper {
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
|
-
/** Enable transitions -
|
|
9
|
-
this.transition = "transition
|
|
8
|
+
/** Enable transitions - colors, shadows and transforms fade; outline width/offset (the focus ring) stay instant */
|
|
9
|
+
this.transition = "transition duration-(--transition-duration) ease-(--transition-timing)";
|
|
10
10
|
/** Disable transitions - instant state changes (useful for reduced-motion) */
|
|
11
11
|
this.noTransition = "transition-none";
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transitionClassMapper.cjs","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 -
|
|
1
|
+
{"version":3,"file":"transitionClassMapper.cjs","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":["BaseClassMapper"],"mappings":";;;;AASO,MAAM,8BAA8BA,+BAAA,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltipDefaults.cjs","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;;;;"}
|
|
1
|
+
{"version":3,"file":"tooltipDefaults.cjs","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;;;;"}
|
|
@@ -6,6 +6,7 @@ var React = require('react');
|
|
|
6
6
|
var themeContext = require('../../../themeContext.cjs');
|
|
7
7
|
var themedComponent = require('../../../themedComponent.cjs');
|
|
8
8
|
var disabledLink = require('../../../utils/disabledLink.cjs');
|
|
9
|
+
var componentUtils = require('../../../utils/componentUtils.cjs');
|
|
9
10
|
var defaultLinkTheme = require('./defaultLinkTheme.cjs');
|
|
10
11
|
|
|
11
12
|
const Link = React.forwardRef(
|
|
@@ -22,7 +23,9 @@ const Link = React.forwardRef(
|
|
|
22
23
|
const resolvedProps = disabledLink.resolveDisabledLink(derivedProps, !!rest.disabled);
|
|
23
24
|
const opensNewWindow = finalTarget === "_blank" && !rest.disabled && !rest["aria-label"];
|
|
24
25
|
const { children, ...linkProps } = resolvedProps;
|
|
25
|
-
|
|
26
|
+
const explicitSize = componentUtils.pickFirstTruthyKeyByCategory(rest, {}, "size");
|
|
27
|
+
const sizeInjection = explicitSize && !rest.inheritSize ? { noInheritSize: true } : void 0;
|
|
28
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(themedComponent.ThemedComponent, { ref, theme: theme?.link ?? defaultLinkTheme.defaultLinkTheme, ...sizeInjection, ...linkProps, children: [
|
|
26
29
|
children,
|
|
27
30
|
opensNewWindow && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: " (opens in new window)" })
|
|
28
31
|
] });
|