@yamada-ui/react 2.1.8-dev-20260409043924 → 2.2.0-dev-20260409110358
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/dist/cjs/components/action-bar/action-bar.cjs +103 -0
- package/dist/cjs/components/action-bar/action-bar.cjs.map +1 -0
- package/dist/cjs/components/action-bar/action-bar.style.cjs +62 -0
- package/dist/cjs/components/action-bar/action-bar.style.cjs.map +1 -0
- package/dist/cjs/components/action-bar/index.cjs +20 -0
- package/dist/cjs/components/action-bar/namespace.cjs +22 -0
- package/dist/cjs/components/action-bar/namespace.cjs.map +1 -0
- package/dist/cjs/components/action-bar/use-action-bar.cjs +71 -0
- package/dist/cjs/components/action-bar/use-action-bar.cjs.map +1 -0
- package/dist/cjs/components/alpha-slider/alpha-slider.cjs +1 -1
- package/dist/cjs/components/autocomplete/autocomplete.cjs +5 -3
- package/dist/cjs/components/autocomplete/autocomplete.cjs.map +1 -1
- package/dist/cjs/components/chart/use-chart.cjs +16 -0
- package/dist/cjs/components/chart/use-chart.cjs.map +1 -1
- package/dist/cjs/components/color-picker/color-picker.cjs +7 -3
- package/dist/cjs/components/color-picker/color-picker.cjs.map +1 -1
- package/dist/cjs/components/color-picker/use-color-picker.cjs +2 -2
- package/dist/cjs/components/color-picker/use-color-picker.cjs.map +1 -1
- package/dist/cjs/components/color-swatch/color-swatch-group.cjs +1 -1
- package/dist/cjs/components/date-picker/date-picker.cjs +7 -3
- package/dist/cjs/components/date-picker/date-picker.cjs.map +1 -1
- package/dist/cjs/components/date-picker/use-date-picker.cjs +2 -2
- package/dist/cjs/components/date-picker/use-date-picker.cjs.map +1 -1
- package/dist/cjs/components/drawer/drawer.cjs +1 -1
- package/dist/cjs/components/editable/use-editable.cjs +9 -5
- package/dist/cjs/components/editable/use-editable.cjs.map +1 -1
- package/dist/cjs/components/icon/icons/beef-off-icon.cjs +17 -0
- package/dist/cjs/components/icon/icons/beef-off-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/cctv-off-icon.cjs +17 -0
- package/dist/cjs/components/icon/icons/cctv-off-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/index.cjs +24 -54
- package/dist/cjs/components/icon/icons/index.cjs.map +1 -1
- package/dist/cjs/components/icon/icons/line-style-icon.cjs +17 -0
- package/dist/cjs/components/icon/icons/line-style-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/radio-off-icon.cjs +17 -0
- package/dist/cjs/components/icon/icons/radio-off-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/road-icon.cjs +17 -0
- package/dist/cjs/components/icon/icons/road-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/shield-cog-corner-icon.cjs +17 -0
- package/dist/cjs/components/icon/icons/shield-cog-corner-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/shield-cog-icon.cjs +17 -0
- package/dist/cjs/components/icon/icons/shield-cog-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/sport-shoe-icon.cjs +17 -0
- package/dist/cjs/components/icon/icons/sport-shoe-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/index.cjs +16 -36
- package/dist/cjs/components/menu/menu.cjs.map +1 -1
- package/dist/cjs/components/modal/modal.cjs +10 -4
- package/dist/cjs/components/modal/modal.cjs.map +1 -1
- package/dist/cjs/components/modal/modal.style.cjs +15 -12
- package/dist/cjs/components/modal/modal.style.cjs.map +1 -1
- package/dist/cjs/components/modal/use-modal.cjs +6 -4
- package/dist/cjs/components/modal/use-modal.cjs.map +1 -1
- package/dist/cjs/components/native-popover/use-native-popover.cjs.map +1 -1
- package/dist/cjs/components/number-input/use-number-input.cjs +1 -1
- package/dist/cjs/components/popover/index.cjs +3 -2
- package/dist/cjs/components/popover/popover.cjs +31 -6
- package/dist/cjs/components/popover/popover.cjs.map +1 -1
- package/dist/cjs/components/popover/use-popover.cjs.map +1 -1
- package/dist/cjs/components/select/select.cjs +5 -3
- package/dist/cjs/components/select/select.cjs.map +1 -1
- package/dist/cjs/components/sidebar/index.cjs +45 -0
- package/dist/cjs/components/sidebar/namespace.cjs +46 -0
- package/dist/cjs/components/sidebar/namespace.cjs.map +1 -0
- package/dist/cjs/components/sidebar/sidebar.cjs +687 -0
- package/dist/cjs/components/sidebar/sidebar.cjs.map +1 -0
- package/dist/cjs/components/sidebar/sidebar.style.cjs +380 -0
- package/dist/cjs/components/sidebar/sidebar.style.cjs.map +1 -0
- package/dist/cjs/components/sidebar/use-sidebar.cjs +362 -0
- package/dist/cjs/components/sidebar/use-sidebar.cjs.map +1 -0
- package/dist/cjs/components/timeline/timeline.cjs +10 -4
- package/dist/cjs/components/timeline/timeline.cjs.map +1 -1
- package/dist/cjs/components/timeline/timeline.style.cjs +8 -1
- package/dist/cjs/components/timeline/timeline.style.cjs.map +1 -1
- package/dist/cjs/components/tooltip/tooltip.cjs +5 -1
- package/dist/cjs/components/tooltip/tooltip.cjs.map +1 -1
- package/dist/cjs/components/tree/index.cjs +25 -0
- package/dist/cjs/components/tree/namespace.cjs +26 -0
- package/dist/cjs/components/tree/namespace.cjs.map +1 -0
- package/dist/cjs/components/tree/tree.cjs +318 -0
- package/dist/cjs/components/tree/tree.cjs.map +1 -0
- package/dist/cjs/components/tree/tree.style.cjs +170 -0
- package/dist/cjs/components/tree/tree.style.cjs.map +1 -0
- package/dist/cjs/components/tree/use-tree.cjs +536 -0
- package/dist/cjs/components/tree/use-tree.cjs.map +1 -0
- package/dist/cjs/core/css/conditions.cjs +6 -1
- package/dist/cjs/core/css/conditions.cjs.map +1 -1
- package/dist/cjs/core/system/config.cjs.map +1 -1
- package/dist/cjs/core/system/theme-provider.cjs +1 -1
- package/dist/cjs/core/system/theme-provider.cjs.map +1 -1
- package/dist/cjs/hooks/use-combobox/index.cjs +3 -2
- package/dist/cjs/hooks/use-combobox/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-descendants/index.cjs +19 -9
- package/dist/cjs/hooks/use-descendants/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-popper/index.cjs +4 -0
- package/dist/cjs/hooks/use-popper/index.cjs.map +1 -1
- package/dist/cjs/index.cjs +361 -239
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/ar-AE.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/ar-AE.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/bg-BG.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/bg-BG.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/cs-CZ.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/cs-CZ.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/da-DK.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/da-DK.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/de-DE.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/de-DE.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/el-GR.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/el-GR.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/en-GB.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/en-GB.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/en-US.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/en-US.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/es-ES.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/es-ES.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/et-EE.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/et-EE.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/fi-FI.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/fi-FI.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/fr-CA.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/fr-CA.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/fr-FR.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/fr-FR.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/he-IL.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/he-IL.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/hr-HR.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/hr-HR.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/hu-HU.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/hu-HU.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/it-IT.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/it-IT.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/ja-JP.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/ja-JP.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/ko-KR.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/ko-KR.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/lt-LT.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/lt-LT.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/lv-LV.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/lv-LV.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/nl-NL.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/nl-NL.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/no-NO.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/no-NO.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/pl-PL.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/pl-PL.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/pt-BR.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/pt-BR.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/ro-RO.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/ro-RO.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/ru-RU.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/ru-RU.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/sk-SK.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/sk-SK.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/sl-SI.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/sl-SI.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/sr-RS.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/sr-RS.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/sv-SE.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/sv-SE.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/tr-TR.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/tr-TR.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/uk-UA.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/uk-UA.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/zh-CN.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/zh-CN.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/zh-TW.cjs +8 -0
- package/dist/cjs/providers/i18n-provider/intl/zh-TW.cjs.map +1 -1
- package/dist/cjs/providers/ui-provider/ui-provider.cjs +26 -23
- package/dist/cjs/providers/ui-provider/ui-provider.cjs.map +1 -1
- package/dist/cjs/theme/semantic-tokens/colors.cjs +1 -1
- package/dist/cjs/theme/semantic-tokens/colors.cjs.map +1 -1
- package/dist/cjs/theme/styles/layer-styles.cjs +2 -2
- package/dist/cjs/theme/styles/layer-styles.cjs.map +1 -1
- package/dist/esm/components/action-bar/action-bar.js +96 -0
- package/dist/esm/components/action-bar/action-bar.js.map +1 -0
- package/dist/esm/components/action-bar/action-bar.style.js +62 -0
- package/dist/esm/components/action-bar/action-bar.style.js.map +1 -0
- package/dist/esm/components/action-bar/index.js +6 -0
- package/dist/esm/components/action-bar/namespace.js +17 -0
- package/dist/esm/components/action-bar/namespace.js.map +1 -0
- package/dist/esm/components/action-bar/use-action-bar.js +70 -0
- package/dist/esm/components/action-bar/use-action-bar.js.map +1 -0
- package/dist/esm/components/alpha-slider/alpha-slider.js +1 -1
- package/dist/esm/components/autocomplete/autocomplete.js +5 -3
- package/dist/esm/components/autocomplete/autocomplete.js.map +1 -1
- package/dist/esm/components/chart/use-chart.js +16 -0
- package/dist/esm/components/chart/use-chart.js.map +1 -1
- package/dist/esm/components/color-picker/color-picker.js +7 -3
- package/dist/esm/components/color-picker/color-picker.js.map +1 -1
- package/dist/esm/components/color-picker/use-color-picker.js +2 -2
- package/dist/esm/components/color-picker/use-color-picker.js.map +1 -1
- package/dist/esm/components/color-swatch/color-swatch-group.js +1 -1
- package/dist/esm/components/date-picker/date-picker.js +7 -3
- package/dist/esm/components/date-picker/date-picker.js.map +1 -1
- package/dist/esm/components/date-picker/use-date-picker.js +2 -2
- package/dist/esm/components/date-picker/use-date-picker.js.map +1 -1
- package/dist/esm/components/drawer/drawer.js +1 -1
- package/dist/esm/components/editable/use-editable.js +9 -5
- package/dist/esm/components/editable/use-editable.js.map +1 -1
- package/dist/esm/components/icon/icons/beef-off-icon.js +16 -0
- package/dist/esm/components/icon/icons/beef-off-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/cctv-off-icon.js +16 -0
- package/dist/esm/components/icon/icons/cctv-off-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/index.js +17 -37
- package/dist/esm/components/icon/icons/index.js.map +1 -1
- package/dist/esm/components/icon/icons/line-style-icon.js +16 -0
- package/dist/esm/components/icon/icons/line-style-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/radio-off-icon.js +16 -0
- package/dist/esm/components/icon/icons/radio-off-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/road-icon.js +16 -0
- package/dist/esm/components/icon/icons/road-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/shield-cog-corner-icon.js +16 -0
- package/dist/esm/components/icon/icons/shield-cog-corner-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/shield-cog-icon.js +16 -0
- package/dist/esm/components/icon/icons/shield-cog-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/sport-shoe-icon.js +16 -0
- package/dist/esm/components/icon/icons/sport-shoe-icon.js.map +1 -0
- package/dist/esm/components/icon/index.js +9 -19
- package/dist/esm/components/menu/menu.js.map +1 -1
- package/dist/esm/components/modal/modal.js +10 -4
- package/dist/esm/components/modal/modal.js.map +1 -1
- package/dist/esm/components/modal/modal.style.js +15 -12
- package/dist/esm/components/modal/modal.style.js.map +1 -1
- package/dist/esm/components/modal/use-modal.js +6 -4
- package/dist/esm/components/modal/use-modal.js.map +1 -1
- package/dist/esm/components/native-popover/use-native-popover.js.map +1 -1
- package/dist/esm/components/number-input/use-number-input.js +1 -1
- package/dist/esm/components/popover/index.js +2 -2
- package/dist/esm/components/popover/popover.js +30 -6
- package/dist/esm/components/popover/popover.js.map +1 -1
- package/dist/esm/components/popover/use-popover.js.map +1 -1
- package/dist/esm/components/select/select.js +5 -3
- package/dist/esm/components/select/select.js.map +1 -1
- package/dist/esm/components/sidebar/index.js +6 -0
- package/dist/esm/components/sidebar/namespace.js +41 -0
- package/dist/esm/components/sidebar/namespace.js.map +1 -0
- package/dist/esm/components/sidebar/sidebar.js +664 -0
- package/dist/esm/components/sidebar/sidebar.js.map +1 -0
- package/dist/esm/components/sidebar/sidebar.style.js +380 -0
- package/dist/esm/components/sidebar/sidebar.style.js.map +1 -0
- package/dist/esm/components/sidebar/use-sidebar.js +352 -0
- package/dist/esm/components/sidebar/use-sidebar.js.map +1 -0
- package/dist/esm/components/timeline/timeline.js +10 -4
- package/dist/esm/components/timeline/timeline.js.map +1 -1
- package/dist/esm/components/timeline/timeline.style.js +8 -1
- package/dist/esm/components/timeline/timeline.style.js.map +1 -1
- package/dist/esm/components/tooltip/tooltip.js +6 -2
- package/dist/esm/components/tooltip/tooltip.js.map +1 -1
- package/dist/esm/components/tree/index.js +6 -0
- package/dist/esm/components/tree/namespace.js +21 -0
- package/dist/esm/components/tree/namespace.js.map +1 -0
- package/dist/esm/components/tree/tree.js +314 -0
- package/dist/esm/components/tree/tree.js.map +1 -0
- package/dist/esm/components/tree/tree.style.js +170 -0
- package/dist/esm/components/tree/tree.style.js.map +1 -0
- package/dist/esm/components/tree/use-tree.js +527 -0
- package/dist/esm/components/tree/use-tree.js.map +1 -0
- package/dist/esm/core/css/conditions.js +6 -1
- package/dist/esm/core/css/conditions.js.map +1 -1
- package/dist/esm/core/system/config.js.map +1 -1
- package/dist/esm/core/system/theme-provider.js +1 -1
- package/dist/esm/core/system/theme-provider.js.map +1 -1
- package/dist/esm/hooks/use-combobox/index.js +3 -2
- package/dist/esm/hooks/use-combobox/index.js.map +1 -1
- package/dist/esm/hooks/use-descendants/index.js +19 -9
- package/dist/esm/hooks/use-descendants/index.js.map +1 -1
- package/dist/esm/hooks/use-popper/index.js +4 -0
- package/dist/esm/hooks/use-popper/index.js.map +1 -1
- package/dist/esm/index.js +230 -174
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/ar-AE.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/ar-AE.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/bg-BG.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/bg-BG.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/cs-CZ.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/cs-CZ.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/da-DK.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/da-DK.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/de-DE.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/de-DE.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/el-GR.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/el-GR.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/en-GB.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/en-GB.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/en-US.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/en-US.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/es-ES.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/es-ES.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/et-EE.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/et-EE.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/fi-FI.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/fi-FI.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/fr-CA.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/fr-CA.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/fr-FR.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/fr-FR.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/he-IL.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/he-IL.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/hr-HR.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/hr-HR.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/hu-HU.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/hu-HU.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/it-IT.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/it-IT.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/ja-JP.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/ja-JP.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/ko-KR.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/ko-KR.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/lt-LT.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/lt-LT.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/lv-LV.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/lv-LV.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/nl-NL.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/nl-NL.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/no-NO.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/no-NO.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/pl-PL.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/pl-PL.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/pt-BR.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/pt-BR.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/ro-RO.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/ro-RO.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/ru-RU.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/ru-RU.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/sk-SK.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/sk-SK.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/sl-SI.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/sl-SI.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/sr-RS.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/sr-RS.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/sv-SE.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/sv-SE.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/tr-TR.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/tr-TR.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/uk-UA.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/uk-UA.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/zh-CN.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/zh-CN.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/zh-TW.js +8 -0
- package/dist/esm/providers/i18n-provider/intl/zh-TW.js.map +1 -1
- package/dist/esm/providers/ui-provider/ui-provider.js +26 -23
- package/dist/esm/providers/ui-provider/ui-provider.js.map +1 -1
- package/dist/esm/theme/semantic-tokens/colors.js +1 -1
- package/dist/esm/theme/semantic-tokens/colors.js.map +1 -1
- package/dist/esm/theme/styles/layer-styles.js +2 -2
- package/dist/esm/theme/styles/layer-styles.js.map +1 -1
- package/dist/types/components/accordion/accordion.d.ts +2 -2
- package/dist/types/components/accordion/use-accordion.d.ts +11 -11
- package/dist/types/components/action-bar/action-bar.d.ts +49 -0
- package/dist/types/components/action-bar/action-bar.style.d.ts +56 -0
- package/dist/types/components/action-bar/index.d.ts +5 -0
- package/dist/types/components/action-bar/namespace.d.ts +9 -0
- package/dist/types/components/action-bar/use-action-bar.d.ts +33 -0
- package/dist/types/components/airy/airy.d.ts +3 -3
- package/dist/types/components/alert/alert.d.ts +2 -2
- package/dist/types/components/alert/alert.style.d.ts +1 -1
- package/dist/types/components/alpha-slider/alpha-slider.d.ts +2 -2
- package/dist/types/components/aspect-ratio/aspect-ratio.d.ts +2 -2
- package/dist/types/components/autocomplete/autocomplete.d.ts +6 -5
- package/dist/types/components/autocomplete/autocomplete.style.d.ts +1 -1
- package/dist/types/components/autocomplete/use-autocomplete.d.ts +7 -7
- package/dist/types/components/avatar/avatar.d.ts +5 -5
- package/dist/types/components/avatar/use-avatar-group.d.ts +2 -2
- package/dist/types/components/badge/badge.d.ts +2 -2
- package/dist/types/components/bleed/bleed.d.ts +2 -2
- package/dist/types/components/blockquote/blockquote.d.ts +2 -2
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -2
- package/dist/types/components/breadcrumb/use-breadcrumb.d.ts +2 -2
- package/dist/types/components/button/button.d.ts +2 -2
- package/dist/types/components/button/icon-button.d.ts +2 -2
- package/dist/types/components/calendar/calendar.d.ts +2 -2
- package/dist/types/components/calendar/calendar.style.d.ts +2 -2
- package/dist/types/components/calendar/use-calendar.d.ts +8 -8
- package/dist/types/components/card/card.d.ts +2 -2
- package/dist/types/components/carousel/carousel.d.ts +2 -2
- package/dist/types/components/carousel/carousel.style.d.ts +2 -2
- package/dist/types/components/carousel/use-carousel.d.ts +3 -3
- package/dist/types/components/center/center.d.ts +2 -2
- package/dist/types/components/chart/area-chart.d.ts +2 -2
- package/dist/types/components/chart/bar-chart.d.ts +2 -2
- package/dist/types/components/chart/chart.d.ts +5 -5
- package/dist/types/components/chart/composed-chart.d.ts +2 -2
- package/dist/types/components/chart/donut-chart.d.ts +2 -2
- package/dist/types/components/chart/line-chart.d.ts +2 -2
- package/dist/types/components/chart/pie-chart.d.ts +2 -2
- package/dist/types/components/chart/radar-chart.d.ts +2 -2
- package/dist/types/components/chart/radial-chart.d.ts +2 -2
- package/dist/types/components/chart/use-chart.d.ts +2 -2
- package/dist/types/components/checkbox/checkbox.d.ts +4 -4
- package/dist/types/components/checkbox/use-checkbox-group.d.ts +2 -2
- package/dist/types/components/checkbox-card/checkbox-card.d.ts +5 -5
- package/dist/types/components/checkbox-card/checkbox-card.style.d.ts +1 -1
- package/dist/types/components/circle-progress/circle-progress.d.ts +2 -2
- package/dist/types/components/close-button/close-button.d.ts +2 -2
- package/dist/types/components/code/code.d.ts +2 -2
- package/dist/types/components/collapse/collapse.d.ts +2 -2
- package/dist/types/components/color-picker/color-picker.d.ts +7 -6
- package/dist/types/components/color-picker/color-picker.style.d.ts +1 -1
- package/dist/types/components/color-picker/use-color-picker.d.ts +4 -4
- package/dist/types/components/color-selector/color-selector.d.ts +2 -2
- package/dist/types/components/color-selector/color-selector.style.d.ts +2 -2
- package/dist/types/components/color-selector/use-color-selector.d.ts +3 -3
- package/dist/types/components/color-swatch/color-swatch.d.ts +2 -2
- package/dist/types/components/container/container.d.ts +2 -2
- package/dist/types/components/data-list/data-list.d.ts +2 -2
- package/dist/types/components/data-list/data-list.style.d.ts +1 -1
- package/dist/types/components/date-picker/date-picker.d.ts +7 -6
- package/dist/types/components/date-picker/use-date-picker.d.ts +6 -6
- package/dist/types/components/drawer/drawer.d.ts +2 -2
- package/dist/types/components/drawer/drawer.style.d.ts +2 -2
- package/dist/types/components/dropzone/dropzone.d.ts +5 -5
- package/dist/types/components/dropzone/dropzone.style.d.ts +1 -1
- package/dist/types/components/editable/editable.d.ts +4 -4
- package/dist/types/components/editable/use-editable.d.ts +2 -2
- package/dist/types/components/em/em.d.ts +2 -2
- package/dist/types/components/empty-state/empty-state.d.ts +2 -2
- package/dist/types/components/fade/fade.d.ts +2 -2
- package/dist/types/components/field/field.d.ts +3 -3
- package/dist/types/components/field/use-field-props.d.ts +3 -3
- package/dist/types/components/fieldset/fieldset.d.ts +3 -3
- package/dist/types/components/file-button/file-button.d.ts +2 -2
- package/dist/types/components/file-button/use-file-button.d.ts +18 -18
- package/dist/types/components/file-input/file-input.d.ts +2 -2
- package/dist/types/components/file-input/file-input.style.d.ts +1 -1
- package/dist/types/components/file-input/use-file-input.d.ts +15 -15
- package/dist/types/components/flex/flex.d.ts +2 -2
- package/dist/types/components/flip/flip.d.ts +4 -4
- package/dist/types/components/float/float.d.ts +2 -2
- package/dist/types/components/form/form.d.ts +3 -3
- package/dist/types/components/format/format-byte.d.ts +4 -4
- package/dist/types/components/format/format-date-time.d.ts +4 -4
- package/dist/types/components/format/format-number.d.ts +2 -2
- package/dist/types/components/grid/grid-item.d.ts +2 -2
- package/dist/types/components/grid/grid.d.ts +2 -2
- package/dist/types/components/group/group.d.ts +2 -2
- package/dist/types/components/group/use-group.d.ts +2 -2
- package/dist/types/components/heading/heading.d.ts +2 -2
- package/dist/types/components/hue-slider/hue-slider.d.ts +3 -3
- package/dist/types/components/icon/icon.d.ts +5 -5
- package/dist/types/components/icon/icons/beef-off-icon.d.ts +15 -0
- package/dist/types/components/icon/icons/cctv-off-icon.d.ts +15 -0
- package/dist/types/components/icon/icons/index.d.ts +10 -20
- package/dist/types/components/icon/icons/index.types.d.ts +1 -1
- package/dist/types/components/icon/icons/line-style-icon.d.ts +15 -0
- package/dist/types/components/icon/icons/radio-off-icon.d.ts +15 -0
- package/dist/types/components/icon/icons/road-icon.d.ts +15 -0
- package/dist/types/components/icon/icons/shield-cog-corner-icon.d.ts +15 -0
- package/dist/types/components/icon/icons/shield-cog-icon.d.ts +15 -0
- package/dist/types/components/icon/icons/sport-shoe-icon.d.ts +15 -0
- package/dist/types/components/icon/index.d.ts +9 -19
- package/dist/types/components/image/image.d.ts +2 -2
- package/dist/types/components/indicator/indicator.d.ts +4 -4
- package/dist/types/components/infinite-scroll-area/infinite-scroll-area.d.ts +2 -2
- package/dist/types/components/input/input-addon.d.ts +2 -2
- package/dist/types/components/input/input-element.d.ts +2 -2
- package/dist/types/components/input/input.d.ts +2 -2
- package/dist/types/components/kbd/kbd.d.ts +2 -2
- package/dist/types/components/link/link.d.ts +2 -2
- package/dist/types/components/link-box/link-box.d.ts +2 -2
- package/dist/types/components/list/list.d.ts +2 -2
- package/dist/types/components/loading/loading-provider.d.ts +2 -2
- package/dist/types/components/loading/loading.d.ts +3 -3
- package/dist/types/components/mark/mark.d.ts +2 -2
- package/dist/types/components/menu/menu.d.ts +4 -4
- package/dist/types/components/menu/menu.style.d.ts +2 -2
- package/dist/types/components/menu/use-menu.d.ts +12 -12
- package/dist/types/components/modal/modal.d.ts +4 -4
- package/dist/types/components/modal/modal.style.d.ts +2 -2
- package/dist/types/components/native-accordion/native-accordion.d.ts +2 -2
- package/dist/types/components/native-accordion/use-native-accordion.d.ts +2 -2
- package/dist/types/components/native-popover/native-popover.d.ts +2 -2
- package/dist/types/components/native-popover/use-native-popover.d.ts +1 -2
- package/dist/types/components/native-select/native-select.d.ts +2 -2
- package/dist/types/components/native-table/native-table.d.ts +4 -4
- package/dist/types/components/notice/notice.style.d.ts +1 -1
- package/dist/types/components/number-input/number-input.d.ts +2 -2
- package/dist/types/components/pagination/pagination.d.ts +2 -2
- package/dist/types/components/pagination/use-pagination.d.ts +2 -2
- package/dist/types/components/password-input/password-input.d.ts +2 -2
- package/dist/types/components/password-input/strength-meter.d.ts +2 -2
- package/dist/types/components/password-input/use-password-input.d.ts +2 -2
- package/dist/types/components/pin-input/pin-input.d.ts +2 -2
- package/dist/types/components/pin-input/use-pin-input.d.ts +7 -7
- package/dist/types/components/popover/index.d.ts +2 -2
- package/dist/types/components/popover/popover.d.ts +55 -17
- package/dist/types/components/popover/use-popover.d.ts +3 -3
- package/dist/types/components/progress/progress.d.ts +4 -4
- package/dist/types/components/progress/use-progress.d.ts +706 -706
- package/dist/types/components/qr-code/qr-code.d.ts +2 -2
- package/dist/types/components/radio/radio.d.ts +3 -3
- package/dist/types/components/radio/use-radio-group.d.ts +2 -2
- package/dist/types/components/radio-card/radio-card.d.ts +5 -5
- package/dist/types/components/radio-card/radio-card.style.d.ts +1 -1
- package/dist/types/components/rating/use-rating.d.ts +7 -7
- package/dist/types/components/reorder/reorder.d.ts +2 -2
- package/dist/types/components/reorder/reorder.style.d.ts +1 -1
- package/dist/types/components/reorder/use-reorder.d.ts +3 -3
- package/dist/types/components/resizable/resizable.d.ts +2 -2
- package/dist/types/components/resizable/resizable.style.d.ts +2 -2
- package/dist/types/components/resizable/use-resizable.d.ts +2 -2
- package/dist/types/components/ripple/ripple.d.ts +2 -2
- package/dist/types/components/ripple/use-ripple.d.ts +2 -2
- package/dist/types/components/rotate/rotate.d.ts +2 -2
- package/dist/types/components/saturation-slider/saturation-slider.d.ts +2 -2
- package/dist/types/components/saturation-slider/use-saturation-slider.d.ts +2 -2
- package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
- package/dist/types/components/segmented-control/segmented-control.d.ts +2 -2
- package/dist/types/components/segmented-control/segmented-control.style.d.ts +2 -2
- package/dist/types/components/segmented-control/use-segmented-control.d.ts +9 -9
- package/dist/types/components/select/select.d.ts +5 -4
- package/dist/types/components/select/use-select.d.ts +6 -6
- package/dist/types/components/separator/separator.d.ts +2 -2
- package/dist/types/components/sidebar/index.d.ts +5 -0
- package/dist/types/components/sidebar/namespace.d.ts +10 -0
- package/dist/types/components/sidebar/sidebar.d.ts +289 -0
- package/dist/types/components/sidebar/sidebar.style.d.ts +18 -0
- package/dist/types/components/sidebar/use-sidebar.d.ts +255 -0
- package/dist/types/components/simple-grid/simple-grid.d.ts +2 -2
- package/dist/types/components/skeleton/skeleton.d.ts +2 -2
- package/dist/types/components/slide/slide.d.ts +2 -2
- package/dist/types/components/slide-fade/slide-fade.d.ts +2 -2
- package/dist/types/components/slider/slider.d.ts +2 -2
- package/dist/types/components/slider/use-slider.d.ts +2 -2
- package/dist/types/components/stack/h-stack.d.ts +2 -2
- package/dist/types/components/stack/stack.d.ts +2 -2
- package/dist/types/components/stack/v-stack.d.ts +2 -2
- package/dist/types/components/stack/z-stack.d.ts +2 -2
- package/dist/types/components/stat/stat.d.ts +2 -2
- package/dist/types/components/status/status.d.ts +2 -2
- package/dist/types/components/steps/steps.d.ts +2 -2
- package/dist/types/components/steps/steps.style.d.ts +1 -1
- package/dist/types/components/steps/use-steps.d.ts +10 -10
- package/dist/types/components/switch/switch.d.ts +2 -2
- package/dist/types/components/table/table.d.ts +2 -2
- package/dist/types/components/tabs/tabs.d.ts +2 -2
- package/dist/types/components/tabs/use-tabs.d.ts +16 -16
- package/dist/types/components/tag/tag.d.ts +2 -2
- package/dist/types/components/tag/tag.style.d.ts +1 -1
- package/dist/types/components/text/text.d.ts +2 -2
- package/dist/types/components/textarea/textarea.d.ts +2 -2
- package/dist/types/components/textarea/use-autosize.d.ts +2 -2
- package/dist/types/components/timeline/timeline.d.ts +26 -6
- package/dist/types/components/timeline/timeline.style.d.ts +21 -3
- package/dist/types/components/toggle/toggle.d.ts +5 -5
- package/dist/types/components/toggle/use-toggle-group.d.ts +2 -2
- package/dist/types/components/toggle/use-toggle.d.ts +2 -2
- package/dist/types/components/tooltip/tooltip.d.ts +5 -5
- package/dist/types/components/tree/index.d.ts +5 -0
- package/dist/types/components/tree/namespace.d.ts +10 -0
- package/dist/types/components/tree/tree.d.ts +130 -0
- package/dist/types/components/tree/tree.style.d.ts +170 -0
- package/dist/types/components/tree/use-tree.d.ts +540 -0
- package/dist/types/components/visually-hidden/visually-hidden.d.ts +2 -2
- package/dist/types/components/wrap/wrap.d.ts +2 -2
- package/dist/types/core/components/create-component.d.ts +7 -8
- package/dist/types/core/components/use-component-style.d.ts +0 -1
- package/dist/types/core/components/utils.d.ts +0 -1
- package/dist/types/core/constant.d.ts +0 -1
- package/dist/types/core/css/calc.d.ts +0 -1
- package/dist/types/core/css/conditions.d.ts +107 -67
- package/dist/types/core/css/config.d.ts +0 -1
- package/dist/types/core/css/css.d.ts +0 -1
- package/dist/types/core/css/index.d.ts +2 -2
- package/dist/types/core/css/index.types.d.ts +3 -3
- package/dist/types/core/css/styles.d.ts +0 -1
- package/dist/types/core/css/token.d.ts +0 -1
- package/dist/types/core/css/use-css.d.ts +0 -1
- package/dist/types/core/css/utils.d.ts +0 -1
- package/dist/types/core/generated-theme-tokens.types.d.ts +0 -1
- package/dist/types/core/index.d.ts +3 -4
- package/dist/types/core/system/color-mode-provider.d.ts +2 -2
- package/dist/types/core/system/config.d.ts +11 -3
- package/dist/types/core/system/index.d.ts +2 -2
- package/dist/types/core/system/index.types.d.ts +1 -1
- package/dist/types/core/system/var.d.ts +0 -1
- package/dist/types/hooks/use-breakpoint/use-breakpoint-state.d.ts +2 -2
- package/dist/types/hooks/use-clickable/index.d.ts +7 -7
- package/dist/types/hooks/use-clipboard/index.d.ts +2 -2
- package/dist/types/hooks/use-combobox/index.d.ts +13 -13
- package/dist/types/hooks/use-counter/index.d.ts +2 -2
- package/dist/types/hooks/use-descendants/index.d.ts +2 -2
- package/dist/types/hooks/use-field-sizing/index.d.ts +2 -2
- package/dist/types/hooks/use-hover/index.d.ts +2 -2
- package/dist/types/hooks/use-popper/index.d.ts +2 -2
- package/dist/types/hooks/use-resize-observer/index.d.ts +3 -3
- package/dist/types/index.d.ts +90 -85
- package/dist/types/providers/i18n-provider/i18n-provider.d.ts +11 -3
- package/dist/types/providers/i18n-provider/intl/en-US.d.ts +8 -0
- package/dist/types/providers/i18n-provider/intl/index.d.ts +280 -0
- package/dist/types/providers/ui-provider/ui-provider.d.ts +13 -8
- package/dist/types/theme/index.d.ts +3 -3
- package/dist/types/theme/semantic-tokens/index.d.ts +1 -1
- package/dist/types/theme/styles/index.d.ts +2 -2
- package/dist/types/utils/children.d.ts +2 -2
- package/package.json +2 -2
- package/dist/cjs/components/icon/icons/chromium-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/chromium-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/codepen-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/codepen-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/codesandbox-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/codesandbox-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/dribbble-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/dribbble-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/facebook-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/facebook-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/figma-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/figma-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/framer-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/framer-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/github-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/github-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/gitlab-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/gitlab-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/instagram-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/instagram-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/linkedin-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/linkedin-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/pocket-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/pocket-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/rail-symbol-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/rail-symbol-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/slack-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/slack-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/trello-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/trello-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/twitch-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/twitch-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/twitter-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/twitter-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/youtube-icon.cjs +0 -17
- package/dist/cjs/components/icon/icons/youtube-icon.cjs.map +0 -1
- package/dist/esm/components/icon/icons/chromium-icon.js +0 -16
- package/dist/esm/components/icon/icons/chromium-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/codepen-icon.js +0 -16
- package/dist/esm/components/icon/icons/codepen-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/codesandbox-icon.js +0 -16
- package/dist/esm/components/icon/icons/codesandbox-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/dribbble-icon.js +0 -16
- package/dist/esm/components/icon/icons/dribbble-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/facebook-icon.js +0 -16
- package/dist/esm/components/icon/icons/facebook-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/figma-icon.js +0 -16
- package/dist/esm/components/icon/icons/figma-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/framer-icon.js +0 -16
- package/dist/esm/components/icon/icons/framer-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/github-icon.js +0 -16
- package/dist/esm/components/icon/icons/github-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/gitlab-icon.js +0 -16
- package/dist/esm/components/icon/icons/gitlab-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/instagram-icon.js +0 -16
- package/dist/esm/components/icon/icons/instagram-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/linkedin-icon.js +0 -16
- package/dist/esm/components/icon/icons/linkedin-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/pocket-icon.js +0 -16
- package/dist/esm/components/icon/icons/pocket-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/rail-symbol-icon.js +0 -16
- package/dist/esm/components/icon/icons/rail-symbol-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/slack-icon.js +0 -16
- package/dist/esm/components/icon/icons/slack-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/trello-icon.js +0 -16
- package/dist/esm/components/icon/icons/trello-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/twitch-icon.js +0 -16
- package/dist/esm/components/icon/icons/twitch-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/twitter-icon.js +0 -16
- package/dist/esm/components/icon/icons/twitter-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/youtube-icon.js +0 -16
- package/dist/esm/components/icon/icons/youtube-icon.js.map +0 -1
- package/dist/types/components/icon/icons/chromium-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/codepen-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/codesandbox-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/dribbble-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/facebook-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/figma-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/framer-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/github-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/gitlab-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/instagram-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/linkedin-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/pocket-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/rail-symbol-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/slack-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/trello-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/twitch-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/twitter-icon.d.ts +0 -15
- package/dist/types/components/icon/icons/youtube-icon.d.ts +0 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditions.cjs","names":[],"sources":["../../../../src/core/css/conditions.ts"],"sourcesContent":["import type { Length } from \"../../utils\"\nimport type { DOMElement } from \"../components\"\nimport type { CSSObject } from \"./index.types\"\n\ntype ReplaceSelector<\n Y extends string[],\n M extends string,\n D extends string,\n> = Y extends [infer H extends string, ...infer R extends string[]]\n ? `${H}${M extends `&${infer T}` ? `${T} ${D}` : `${M} ${D}`}${Length<R> extends 0 ? \"\" : `, `}${ReplaceSelector<R, M, D>}`\n : \"\"\n\nconst toGroup = <Y extends string>(selector: Y) =>\n [\"[role=group]\", \"[data-group]\", \".group\"]\n .map((prefix) => `${prefix}${selector.slice(1)} &`)\n .join(\", \") as ReplaceSelector<\n [\"[role=group]\", \"[data-group]\", \".group\"],\n Y,\n \"&\"\n >\n\nconst toPeer = <Y extends string>(selector: Y) =>\n [\n ...[\"[data-peer]\", \".peer\"].flatMap((prefix) => [\n `&:has(~ ${prefix}${selector.slice(1)})`,\n `${prefix}${selector.slice(1)} ~ &`,\n ]),\n ...[\"[data-peer]\", \".peer\"].flatMap((prefix) => [\n `&:has(~ ${prefix} *${selector.slice(1)})`,\n `${prefix}:has(*${selector.slice(1)}) ~ &`,\n ]),\n ].join(\", \") as ReplaceSelector<[\"[data-peer]\", \".peer\"], Y, \"~ &\">\n\nexport type AnySelector =\n | `${string}${\" \" | \"#\" | \"*\" | \"+\" | \",\" | \".\" | \":\" | \">\" | \"@\" | \"[\" | \"]\" | \"~\"}${string}`\n | DOMElement\n\nexport const attributes = {\n /**\n * The CSS `&[data-inactive]` attribute selector.\n */\n _inactive: \"&[data-inactive]\",\n /**\n * The CSS `&[data-accept]` attribute selector.\n */\n _accept: \"&[data-accept]\",\n /**\n * The CSS `&[data-animated]` attribute selector.\n */\n _animated: \"&[data-animated]\",\n /**\n * The CSS `&[data-between]` attribute selector.\n */\n _between: \"&[data-between]\",\n /**\n * The CSS `&:is([data-center], [data-group-center])` attribute selector.\n */\n _center: \"&:is([data-center], [data-group-center])\",\n /**\n * The CSS `&[data-complete]` attribute selector.\n */\n _complete: \"&[data-complete]\",\n /**\n * The CSS `&:is([aria-current], [data-current]):not([aria-current='false'])` attribute selector.\n */\n _current: \"&:is([aria-current], [data-current]):not([aria-current='false'])\",\n /**\n * Styles for when `data-mode` is applied to any parent of this component or element.\n */\n _dark:\n \".dark &:not([data-mode]), [data-mode=dark] &:not([data-mode]), &[data-mode=dark]\",\n /**\n * The CSS `&:is([data-end], [data-group-end])` attribute selector.\n */\n _end: \"&:is([data-end], [data-group-end])\",\n /**\n * The CSS `&:is([data-expanded], [aria-expanded=true])` attribute selector.\n */\n _expanded: \"&:is([data-expanded], [aria-expanded=true])\",\n /**\n * The CSS `&[data-fallback]` attribute selector.\n */\n _fallback: \"&[data-fallback]\",\n /**\n * The CSS `&[data-filled]` attribute selector.\n */\n _filled: \"&[data-filled]\",\n /**\n * The CSS `&:is([data-grabbed], [aria-grabbed=true])` attribute selector.\n */\n _grabbed: \"&:is([data-grabbed], [aria-grabbed=true])\",\n /**\n * The CSS `&:is([role=grid], [data-grid])` attribute selector.\n */\n _grid: \"&:is([role=grid], [data-grid])\",\n /**\n * The CSS `&:is(:has(> [role=group]), :has(> [data-group]), :has(> .group))` attribute selector.\n */\n _hasGroup: \"&:is(:has(> [role=group]), :has(> [data-group]), :has(> .group))\",\n /**\n * The CSS `&:has(> [data-icon])` attribute selector.\n */\n _hasIcon: \"&:has(> [data-icon])\",\n /**\n * The CSS `&[data-idle]` attribute selector.\n */\n _idle: \"&[data-idle]\",\n /**\n * The CSS `&[data-incomplete]` attribute selector.\n */\n _incomplete: \"&[data-incomplete]\",\n /**\n * Styles for when `data-mode` is applied to any parent of this component or element.\n */\n _light:\n \".light &:not([data-mode]), [data-mode=light] &:not([data-mode]), &[data-mode=light]\",\n /**\n * The CSS `&[data-loaded]` attribute selector.\n */\n _loaded: \"&[data-loaded]\",\n /**\n * The CSS `&:is([data-loading], [aria-busy=true])` attribute selector.\n */\n _loading: \"&:is([data-loading], [aria-busy=true])\",\n /**\n * The CSS `&[dir=ltr]` attribute selector.\n */\n _ltr: \"[dir=ltr] &\",\n /**\n * The CSS `&[hidden]` attribute selector.\n */\n _nativeHidden: \"&[hidden]\",\n /**\n * The CSS `&[data-not-allowed]` attribute selector.\n */\n _notAllowed: \"&[data-not-allowed]\",\n /**\n * The CSS `&[aria-current='false']` attribute selector.\n */\n _notCurrent: \"&:not([aria-current], [data-current]), &[aria-current='false']\",\n /**\n * The CSS `&:not([data-fallback])` attribute selector.\n */\n _notFallback: \"&:not([data-fallback])\",\n /**\n * The CSS `&:not(:has(> [role=group]), :has(> [data-group]), :has(> .group))` attribute selector.\n */\n _notHasGroup:\n \"&:not(:has(> [role=group]), :has(> [data-group]), :has(> .group))\",\n /**\n * The CSS `&:not([data-selected]):not([aria-selected=true])` attribute selector.\n */\n _notSelected: \"&:not([data-selected]):not([aria-selected=true])\",\n /**\n * The CSS `&[data-numeric]` attribute selector.\n */\n _numeric: \"&[data-numeric]\",\n /**\n * The CSS `&:is([open], [data-open])` attribute selector.\n */\n _open: \"&:is([open], [data-open])\",\n /**\n * The CSS `&:is([data-pressed], [aria-pressed=true])` attribute selector.\n */\n _pressed: \"&:is([data-pressed], [aria-pressed=true])\",\n /**\n * The CSS `&:is([data-range])` attribute selector.\n */\n _range: \"&:is([data-range])\",\n /**\n * The CSS `&[data-reject]` attribute selector.\n */\n _reject: \"&[data-reject]\",\n /**\n * The CSS `& .ui-ripple` attribute selector.\n */\n _ripple: \"& .ui-ripple\",\n /**\n * The CSS `&[dir=rtl]` attribute selector.\n */\n _rtl: \"[dir=rtl] &\",\n /**\n * The CSS `&:is([data-start], [data-group-start])` attribute selector.\n */\n _start: \"&:is([data-start], [data-group-start])\",\n /**\n * The CSS `&:is([data-selected], [aria-selected=true])` attribute selector.\n */\n _selected: \"&:is([data-selected], [aria-selected=true])\",\n /**\n * The CSS `&:is([hidden], [data-hidden])` attribute selector.\n */\n _hidden: \"&:is([hidden], [data-hidden])\",\n /**\n * The CSS `&[data-never]` attribute selector.\n */\n _never: \"&[data-never]\",\n} as const\n\nexport type Attributes = typeof attributes\nexport type AttributeProperty = keyof Attributes\nexport type AttributeProps = {\n [K in AttributeProperty]?: CSSObject\n}\n\nexport const attributeProperties = Object.keys(\n attributes,\n) as AttributeProperty[]\nexport const attributeSelectors = Object.values(attributes)\n\nexport const pseudoElements = {\n /**\n * The CSS `&::after` pseudo-element.\n */\n _after: \"&::after\",\n /**\n * The CSS `&::backdrop` pseudo-element.\n */\n _backdrop: \"&::backdrop\",\n /**\n * The CSS `&::before` pseudo-element.\n */\n _before: \"&::before\",\n /**\n * The CSS `&::cue` pseudo-element.\n */\n _cue: \"&::cue\",\n /**\n * The CSS `&::cue-region` pseudo-element.\n */\n _cueRegion: \"&::cue-region\",\n /**\n * The CSS `&::details-content` pseudo-element.\n */\n _detailsContent: \"&::details-content\",\n /**\n * The CSS `&::file-selector-button` pseudo-element.\n */\n _fileSelector: \"&::file-selector-button\",\n /**\n * The CSS `&::first-letter` pseudo-element.\n */\n _firstLetter: \"&::first-letter\",\n /**\n * The CSS `&::first-line` pseudo-element.\n */\n _firstLine: \"&::first-line\",\n /**\n * The CSS `&::marker` pseudo-element.\n */\n _marker: \"&::marker\",\n /**\n * The CSS `&::placeholder, &[data-placeholder]` pseudo-element.\n */\n _placeholder: \"&::placeholder, &[data-placeholder]\",\n /**\n * The CSS `&::-webkit-scrollbar, &[data-scrollbar]` pseudo-element.\n */\n _scrollbar: \"&::-webkit-scrollbar, &[data-scrollbar]\",\n /**\n * The CSS `&::-webkit-scrollbar-button` pseudo-element.\n */\n _scrollbarButton: \"&::-webkit-scrollbar-button\",\n /**\n * The CSS `&::-webkit-scrollbar-corner` pseudo-element.\n */\n _scrollbarCorner: \"&::-webkit-scrollbar-corner\",\n /**\n * The CSS `&::-webkit-scrollbar-thumb` pseudo-element.\n */\n _scrollbarThumb: \"&::-webkit-scrollbar-thumb\",\n /**\n * The CSS `&::-webkit-scrollbar-track` pseudo-element.\n */\n _scrollbarTrack: \"&::-webkit-scrollbar-track\",\n /**\n * The CSS `&::-webkit-scrollbar-track-piece` pseudo-element.\n */\n _scrollbarTrackPiece: \"&::-webkit-scrollbar-track-piece\",\n /**\n * The CSS `&::selection` pseudo-element.\n */\n _selection: \"&::selection\",\n} as const\n\nexport type PseudoElements = typeof pseudoElements\nexport type PseudoElementProperty = keyof PseudoElements\nexport type PseudoElementProps = {\n [K in PseudoElementProperty]?: CSSObject\n}\n\nexport const pseudoElementProperties = Object.keys(\n pseudoElements,\n) as PseudoElementProperty[]\nexport const pseudoElementSelectors = Object.values(pseudoElements)\n\nexport const pseudoClasses = {\n /**\n * The CSS `&:is([data-activedescendant])` pseudo-class.\n */\n _activedescendant: \"&:is([data-activedescendant])\",\n /**\n * The CSS `:any-link` pseudo-class.\n */\n _anyLink: \"&:is(:any-link, [data-any-link])\",\n /**\n * The CSS `&:autofill` pseudo-class.\n */\n _autofill: \"&:autofill\",\n /**\n * The CSS `&:is(:blank, [data-blank])` pseudo-class.\n */\n _blank: \"&:is(:blank, [data-blank])\",\n /**\n * The CSS `&:is(:checked, [data-checked], [aria-checked=true])` pseudo-class.\n */\n _checked: \"&:is(:checked, [data-checked], [aria-checked=true])\",\n /**\n * The CSS `& > *` child combinator selector.\n */\n _child: \"& > *\",\n /**\n * The CSS `&:default` pseudo-class.\n */\n _default: \"&:default\",\n /**\n * The CSS `&:empty` pseudo-class.\n */\n _empty: \"&:empty\",\n /**\n * The CSS `&:is(:enabled, [data-enabled])` pseudo-class.\n */\n _enabled: \"&:is(:enabled, [data-enabled])\",\n /**\n * The CSS `&:nth-of-type(even)` pseudo-class.\n */\n _even: \"&:nth-of-type(even)\",\n /**\n * The CSS `&:first-of-type` pseudo-class.\n */\n _first: \"&:first-of-type\",\n /**\n * The CSS `& > *:first-child` pseudo-class.\n */\n _firstChild: \"& > *:first-child\",\n /**\n * The CSS `&:not(:focus-within, [data-focus-within])` pseudo-class.\n */\n _focusWithin: \"&:not(:focus-within, [data-focus-within])\",\n /**\n * The CSS `&:fullscreen` pseudo-class.\n */\n _fullScreen: \"&:fullscreen\",\n /**\n * The CSS `&:is([data-orientation=horizontal], [aria-orientation=horizontal])` pseudo-class.\n */\n _horizontal:\n \"&:is([data-orientation=horizontal], [aria-orientation=horizontal])\",\n /**\n * The CSS `&:where(svg:not([data-loading])), & > [data-icon]` pseudo-class.\n */\n _icon: \"&:where(svg:not([data-loading])), & > [data-icon]\",\n /**\n * The CSS `&:is(:indeterminate, [data-indeterminate], [aria-checked=mixed])` pseudo-class.\n */\n _indeterminate:\n \"&:is(:indeterminate, [data-indeterminate], [aria-checked=mixed])\",\n /**\n * The CSS `& > [data-indicator]` pseudo-class.\n */\n _indicator: \"& > [data-indicator]\",\n /**\n * The CSS `&:is(:in-range, [data-in-range])` pseudo-class.\n */\n _inRange: \"&:is(:in-range, [data-in-range])\",\n /**\n * The CSS `&:last-of-type` pseudo-class.\n */\n _last: \"&:last-of-type\",\n /**\n * The CSS `& > *:last-child` pseudo-class.\n */\n _lastChild: \"& > *:last-child\",\n /**\n * The CSS `&:is(:link, [data-link])` pseudo-class.\n */\n _link: \"&:is(:link, [data-link])\",\n /**\n * The CSS `&:modal` pseudo-class.\n */\n _modal: \"&:modal\",\n /**\n * The CSS `&:active` pseudo-class.\n */\n _nativeActive: \"&:active\",\n /**\n * The CSS `&:checked` pseudo-class.\n */\n _nativeChecked: \"&:checked\",\n /**\n * The CSS `&:is(disabled, [disabled])` pseudo-class.\n */\n _nativeDisabled: \"&:is(disabled, [disabled])\",\n /**\n * The CSS `&:focus` pseudo-class.\n */\n _nativeFocus: \"&:focus\",\n /**\n * The CSS `&:focus-visible` pseudo-class.\n */\n _nativeFocusVisible: \"&:focus-visible\",\n /**\n * The CSS `&:focus-within` pseudo-class.\n */\n _nativeFocusWithin: \"&:focus-within\",\n /**\n * The CSS `&:hover` pseudo-class.\n */\n _nativeHover: \"&:hover\",\n /**\n * The CSS `&:is([readonly], [aria-readonly=true])` pseudo-class.\n */\n _nativeReadOnly: \"&:is([readonly], [aria-readonly=true])\",\n /**\n * The CSS `&:target` pseudo-class.\n */\n _nativeTarget: \"&:target\",\n /**\n * The CSS `&:valid` pseudo-class.\n */\n _nativeValid: \"&:valid\",\n /**\n * The CSS `&:not(:checked):not([data-checked]):not([aria-checked=true])` pseudo-class.\n */\n _notChecked: \"&:not(:checked):not([data-checked]):not([aria-checked=true])\",\n /**\n * The CSS `&:not(:empty)` pseudo-class.\n */\n _notEmpty: \"&:not(:empty)\",\n /**\n * The CSS `&:not(:first-of-type)` pseudo-class.\n */\n _notFirst: \"&:not(:first-of-type)\",\n /**\n * The CSS `& > *:not(:first-child)` pseudo-class.\n */\n _notFirstChild: \"& > *:not(:first-child)\",\n /**\n * The CSS `&:not(:last-of-type)` pseudo-class.\n */\n _notLast: \"&:not(:last-of-type)\",\n /**\n * The CSS `& > *:not(:last-child)` pseudo-class.\n */\n _notLastChild: \"& > *:not(:last-child)\",\n /**\n * The CSS `&:not(:target)` pseudo-class.\n */\n _notTarget: \"&:not(:target)\",\n /**\n * The CSS `&:nth-of-type(odd)` pseudo-class.\n */\n _odd: \"&:nth-of-type(odd)\",\n /**\n * The CSS `&:only-of-type` pseudo-class.\n */\n _only: \"&:only-of-type\",\n /**\n * The CSS `&:only-child` pseudo-class.\n */\n _onlyChild: \"&:only-child\",\n /**\n * The CSS `&:is(:optional, [data-optional])` pseudo-class.\n */\n _optional: \"&:is(:optional, [data-optional])\",\n /**\n * The CSS `&:is(:out-of-range, [data-out-of-range])` pseudo-class.\n */\n _outRange: \"&:is(:out-of-range, [data-out-of-range])\",\n /**\n * The CSS `&:is(:paused, [data-paused])` pseudo-class.\n */\n _paused: \"&:is(:paused, [data-paused])\",\n /**\n * The CSS `&:picture-in-picture` pseudo-class.\n */\n _picture: \"&:picture-in-picture\",\n /**\n * The CSS `&:placeholder-shown` pseudo-class.\n */\n _placeholderShown: \"&:placeholder-shown\",\n /**\n * The CSS `&:is(:playing, [data-playing])` pseudo-class.\n */\n _playing: \"&:is(:playing, [data-playing])\",\n /**\n * The CSS `&:popover-open` pseudo-class.\n */\n _popoverOpen: \"&:popover-open\",\n /**\n * The CSS `&:is(:read-write, [data-read-write])` pseudo-class.\n */\n _readWrite: \"&:is(:read-write, [data-read-write])\",\n /**\n * The CSS `&:is(:required, [required])` pseudo-class.\n */\n _required: \"&:is(:required, [required])\",\n /**\n * The CSS `&:is(:target, [data-target])` pseudo-class.\n */\n _target: \"&:is(:target, [data-target])\",\n /**\n * The CSS `&:is(:user-invalid, [data-user-invalid])` pseudo-class.\n */\n _userInvalid: \"&:is(:user-invalid, [data-user-invalid])\",\n /**\n * The CSS `&:is(:valid, [data-valid])` pseudo-class.\n */\n _valid: \"&:is(:valid, [data-valid])\",\n /**\n * The CSS `&:is([data-orientation=vertical], [aria-orientation=vertical])` pseudo-class.\n */\n _vertical: \"&:is([data-orientation=vertical], [aria-orientation=vertical])\",\n /**\n * The CSS `&:visited` pseudo-class.\n */\n _visited: \"&:visited\",\n /**\n * The CSS `&:is(:hover, [data-hover])` pseudo-class.\n */\n _hover:\n \"&:is(:hover, [data-hover]):not(:disabled, [disabled], [aria-disabled=true], [data-disabled])\",\n /**\n * The CSS `&:is(:active, [data-active])` pseudo-class.\n */\n _active:\n \"&:is(:active, [data-active]):not(:disabled, [disabled], [aria-disabled=true], [data-disabled])\",\n /**\n * The CSS `&:is(:focus, [data-focus])` pseudo-class.\n */\n _focus: \"&:is(:focus, [data-focus])\",\n /**\n * The CSS `&:is(:focus-visible, [data-focus-visible])` pseudo-class.\n */\n _focusVisible: \"&:is(:focus-visible, [data-focus-visible])\",\n /**\n * The CSS `&:is([data-invalid], [aria-invalid=true])` attribute selector.\n */\n _invalid: \"&:is([data-invalid], [aria-invalid=true])\",\n /**\n * The CSS `&:is([readonly], [data-readonly], [aria-readonly=true])` pseudo-class.\n */\n _readOnly: \"&:is([readonly], [data-readonly], [aria-readonly=true])\",\n /**\n * The CSS `&:is(:disabled, [disabled], [data-disabled])` pseudo-class.\n */\n _disabled: \"&:is(:disabled, [disabled], [data-disabled])\",\n} as const\n\nexport type PseudoClasses = typeof pseudoClasses\nexport type PseudoClassProperty = keyof PseudoClasses\nexport type PseudoClassProps = {\n [K in PseudoClassProperty]?: CSSObject\n}\n\nexport const pseudoClassProperties = Object.keys(\n pseudoClasses,\n) as PseudoClassProperty[]\nexport const pseudoClassSelectors = Object.values(pseudoClasses)\n\nexport const groupAttributes = {\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is accepted.\n */\n _groupAccept: toGroup(attributes._accept),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is activedescendant.\n */\n _groupActivedescendant: toGroup(pseudoClasses._activedescendant),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is animated.\n */\n _groupAnimated: toGroup(attributes._animated),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is blank.\n */\n _groupBlank: toGroup(pseudoClasses._blank),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is checked.\n */\n _groupChecked: toGroup(pseudoClasses._checked),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is complete.\n */\n _groupComplete: toGroup(attributes._complete),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is current.\n */\n _groupCurrent: toGroup(attributes._current),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is enabled.\n */\n _groupEnabled: toGroup(pseudoClasses._enabled),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is expanded.\n */\n _groupExpanded: toGroup(attributes._expanded),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is focus-within.\n */\n _groupFocusWithin: toGroup(pseudoClasses._focusWithin),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is grabbed.\n */\n _groupGrabbed: toGroup(attributes._grabbed),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is horizontal.\n */\n _groupHorizontal: toGroup(pseudoClasses._horizontal),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is idle.\n */\n _groupIdle: toGroup(attributes._idle),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is incomplete.\n */\n _groupIncomplete: toGroup(attributes._incomplete),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is loaded.\n */\n _groupLoaded: toGroup(attributes._loaded),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is loading.\n */\n _groupLoading: toGroup(attributes._loading),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is open.\n */\n _groupOpen: toGroup(attributes._open),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is optional.\n */\n _groupOptional: toGroup(pseudoClasses._optional),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` has a placeholder shown.\n */\n _groupPlaceholderShown: toGroup(pseudoClasses._placeholderShown),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is pressed.\n */\n _groupPressed: toGroup(attributes._pressed),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is range.\n */\n _groupRange: toGroup(attributes._range),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is read-write.\n */\n _groupReadWrite: toGroup(pseudoClasses._readWrite),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is rejected.\n */\n _groupReject: toGroup(attributes._reject),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is required.\n */\n _groupRequired: toGroup(pseudoClasses._required),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is user-invalid.\n */\n _groupUserInvalid: toGroup(pseudoClasses._userInvalid),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is valid.\n */\n _groupValid: toGroup(pseudoClasses._valid),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is vertical.\n */\n _groupVertical: toGroup(pseudoClasses._vertical),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is hovered.\n */\n _groupHover: toGroup(pseudoClasses._hover),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is active.\n */\n _groupActive: toGroup(pseudoClasses._active),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is focused.\n */\n _groupFocus: toGroup(pseudoClasses._focus),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is focused-visible.\n */\n _groupFocusVisible: toGroup(pseudoClasses._focusVisible),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is selected.\n */\n _groupSelected: toGroup(attributes._selected),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is invalid.\n */\n _groupInvalid: toGroup(pseudoClasses._invalid),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is read-only.\n */\n _groupReadOnly: toGroup(pseudoClasses._readOnly),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is disabled.\n */\n _groupDisabled: toGroup(pseudoClasses._disabled),\n} as const\n\nexport type GroupAttributes = typeof groupAttributes\nexport type GroupAttributeProperty = keyof GroupAttributes\nexport type GroupAttributeProps = {\n [K in GroupAttributeProperty]?: CSSObject\n}\n\nexport const groupAttributeProperties = Object.keys(\n groupAttributes,\n) as GroupAttributeProperty[]\nexport const groupAttributeSelectors = Object.values(groupAttributes)\n\nexport const peerAttributes = {\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is accepted.\n */\n _peerAccept: toPeer(attributes._accept),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is animated.\n */\n _peerAnimated: toPeer(attributes._animated),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is blank.\n */\n _peerBlank: toPeer(pseudoClasses._blank),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is checked.\n */\n _peerChecked: toPeer(pseudoClasses._checked),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is complete.\n */\n _peerComplete: toPeer(attributes._complete),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is current.\n */\n _peerCurrent: toPeer(attributes._current),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is enabled.\n */\n _peerEnabled: toPeer(pseudoClasses._enabled),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is expanded.\n */\n _peerExpanded: toPeer(attributes._expanded),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is focus-within.\n */\n _peerFocusWithin: toPeer(pseudoClasses._focusWithin),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is grabbed.\n */\n _peerGrabbed: toPeer(attributes._grabbed),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is horizontal.\n */\n _peerHorizontal: toPeer(pseudoClasses._horizontal),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is idle.\n */\n _peerIdle: toPeer(attributes._idle),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is incomplete.\n */\n _peerIncomplete: toPeer(attributes._incomplete),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is loaded.\n */\n _peerLoaded: toPeer(attributes._loaded),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is loading.\n */\n _peerLoading: toPeer(attributes._loading),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is optional.\n */\n _peerOptional: toPeer(pseudoClasses._optional),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` has a placeholder shown.\n */\n _peerPlaceholderShown: toPeer(pseudoClasses._placeholderShown),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is pressed.\n */\n _peerPressed: toPeer(attributes._pressed),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is range.\n */\n _peerRange: toPeer(attributes._range),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is read-write.\n */\n _peerReadWrite: toPeer(pseudoClasses._readWrite),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is rejected.\n */\n _peerReject: toPeer(attributes._reject),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is required.\n */\n _peerRequired: toPeer(pseudoClasses._required),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is user-invalid.\n */\n _peerUserInvalid: toPeer(pseudoClasses._userInvalid),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is valid.\n */\n _peerValid: toPeer(pseudoClasses._valid),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is vertical.\n */\n _peerVertical: toPeer(pseudoClasses._vertical),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is hovered.\n */\n _peerHover: toPeer(pseudoClasses._hover),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is active.\n */\n _peerActive: toPeer(pseudoClasses._active),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is focused.\n */\n _peerFocus: toPeer(pseudoClasses._focus),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is focused-visible.\n */\n _peerFocusVisible: toPeer(pseudoClasses._focusVisible),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is selected.\n */\n _peerSelected: toPeer(attributes._selected),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is invalid.\n */\n _peerInvalid: toPeer(pseudoClasses._invalid),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is read-only.\n */\n _peerReadOnly: toPeer(pseudoClasses._readOnly),\n /**\n * Styles to apply when a parent element with `data-peer` or `.peer` is disabled.\n */\n _peerDisabled: toPeer(pseudoClasses._disabled),\n} as const\n\nexport type PeerAttributes = typeof peerAttributes\nexport type PeerAttributeProperty = keyof PeerAttributes\nexport type PeerAttributeProps = {\n [K in PeerAttributeProperty]?: CSSObject\n}\n\nexport const peerAttributeProperties = Object.keys(\n peerAttributes,\n) as PeerAttributeProperty[]\nexport const peerAttributeSelectors = Object.values(peerAttributes)\n\nexport const conditions = {\n ...pseudoElements,\n ...attributes,\n ...pseudoClasses,\n ...groupAttributes,\n ...peerAttributes,\n} as const\n\nexport type Conditions = typeof conditions\nexport type ConditionProperty = keyof Conditions\nexport type ConditionSelector = Conditions[ConditionProperty]\nexport type ConditionProps = {\n [K in keyof Conditions]?: CSSObject\n}\n\nexport const conditionProperties = Object.keys(\n conditions,\n) as ConditionProperty[]\nexport const conditionSelectors = Object.values(conditions)\n\nexport function getCondition(key: string) {\n return key in conditions ? conditions[key as ConditionProperty] : key\n}\n"],"mappings":";;AAYA,MAAM,WAA6B,aACjC;CAAC;CAAgB;CAAgB;CAAS,CACvC,KAAK,WAAW,GAAG,SAAS,SAAS,MAAM,EAAE,CAAC,IAAI,CAClD,KAAK,KAAK;AAMf,MAAM,UAA4B,aAChC,CACE,GAAG,CAAC,eAAe,QAAQ,CAAC,SAAS,WAAW,CAC9C,WAAW,SAAS,SAAS,MAAM,EAAE,CAAC,IACtC,GAAG,SAAS,SAAS,MAAM,EAAE,CAAC,MAC/B,CAAC,EACF,GAAG,CAAC,eAAe,QAAQ,CAAC,SAAS,WAAW,CAC9C,WAAW,OAAO,IAAI,SAAS,MAAM,EAAE,CAAC,IACxC,GAAG,OAAO,QAAQ,SAAS,MAAM,EAAE,CAAC,OACrC,CAAC,CACH,CAAC,KAAK,KAAK;AAMd,MAAa,aAAa;CAIxB,WAAW;CAIX,SAAS;CAIT,WAAW;CAIX,UAAU;CAIV,SAAS;CAIT,WAAW;CAIX,UAAU;CAIV,OACE;CAIF,MAAM;CAIN,WAAW;CAIX,WAAW;CAIX,SAAS;CAIT,UAAU;CAIV,OAAO;CAIP,WAAW;CAIX,UAAU;CAIV,OAAO;CAIP,aAAa;CAIb,QACE;CAIF,SAAS;CAIT,UAAU;CAIV,MAAM;CAIN,eAAe;CAIf,aAAa;CAIb,aAAa;CAIb,cAAc;CAId,cACE;CAIF,cAAc;CAId,UAAU;CAIV,OAAO;CAIP,UAAU;CAIV,QAAQ;CAIR,SAAS;CAIT,SAAS;CAIT,MAAM;CAIN,QAAQ;CAIR,WAAW;CAIX,SAAS;CAIT,QAAQ;CACT;AAQD,MAAa,sBAAsB,OAAO,KACxC,WACD;AACD,MAAa,qBAAqB,OAAO,OAAO,WAAW;AAE3D,MAAa,iBAAiB;CAI5B,QAAQ;CAIR,WAAW;CAIX,SAAS;CAIT,MAAM;CAIN,YAAY;CAIZ,iBAAiB;CAIjB,eAAe;CAIf,cAAc;CAId,YAAY;CAIZ,SAAS;CAIT,cAAc;CAId,YAAY;CAIZ,kBAAkB;CAIlB,kBAAkB;CAIlB,iBAAiB;CAIjB,iBAAiB;CAIjB,sBAAsB;CAItB,YAAY;CACb;AAQD,MAAa,0BAA0B,OAAO,KAC5C,eACD;AACD,MAAa,yBAAyB,OAAO,OAAO,eAAe;AAEnE,MAAa,gBAAgB;CAI3B,mBAAmB;CAInB,UAAU;CAIV,WAAW;CAIX,QAAQ;CAIR,UAAU;CAIV,QAAQ;CAIR,UAAU;CAIV,QAAQ;CAIR,UAAU;CAIV,OAAO;CAIP,QAAQ;CAIR,aAAa;CAIb,cAAc;CAId,aAAa;CAIb,aACE;CAIF,OAAO;CAIP,gBACE;CAIF,YAAY;CAIZ,UAAU;CAIV,OAAO;CAIP,YAAY;CAIZ,OAAO;CAIP,QAAQ;CAIR,eAAe;CAIf,gBAAgB;CAIhB,iBAAiB;CAIjB,cAAc;CAId,qBAAqB;CAIrB,oBAAoB;CAIpB,cAAc;CAId,iBAAiB;CAIjB,eAAe;CAIf,cAAc;CAId,aAAa;CAIb,WAAW;CAIX,WAAW;CAIX,gBAAgB;CAIhB,UAAU;CAIV,eAAe;CAIf,YAAY;CAIZ,MAAM;CAIN,OAAO;CAIP,YAAY;CAIZ,WAAW;CAIX,WAAW;CAIX,SAAS;CAIT,UAAU;CAIV,mBAAmB;CAInB,UAAU;CAIV,cAAc;CAId,YAAY;CAIZ,WAAW;CAIX,SAAS;CAIT,cAAc;CAId,QAAQ;CAIR,WAAW;CAIX,UAAU;CAIV,QACE;CAIF,SACE;CAIF,QAAQ;CAIR,eAAe;CAIf,UAAU;CAIV,WAAW;CAIX,WAAW;CACZ;AAQD,MAAa,wBAAwB,OAAO,KAC1C,cACD;AACD,MAAa,uBAAuB,OAAO,OAAO,cAAc;AAEhE,MAAa,kBAAkB;CAI7B,cAAc,QAAQ,WAAW,QAAQ;CAIzC,wBAAwB,QAAQ,cAAc,kBAAkB;CAIhE,gBAAgB,QAAQ,WAAW,UAAU;CAI7C,aAAa,QAAQ,cAAc,OAAO;CAI1C,eAAe,QAAQ,cAAc,SAAS;CAI9C,gBAAgB,QAAQ,WAAW,UAAU;CAI7C,eAAe,QAAQ,WAAW,SAAS;CAI3C,eAAe,QAAQ,cAAc,SAAS;CAI9C,gBAAgB,QAAQ,WAAW,UAAU;CAI7C,mBAAmB,QAAQ,cAAc,aAAa;CAItD,eAAe,QAAQ,WAAW,SAAS;CAI3C,kBAAkB,QAAQ,cAAc,YAAY;CAIpD,YAAY,QAAQ,WAAW,MAAM;CAIrC,kBAAkB,QAAQ,WAAW,YAAY;CAIjD,cAAc,QAAQ,WAAW,QAAQ;CAIzC,eAAe,QAAQ,WAAW,SAAS;CAI3C,YAAY,QAAQ,WAAW,MAAM;CAIrC,gBAAgB,QAAQ,cAAc,UAAU;CAIhD,wBAAwB,QAAQ,cAAc,kBAAkB;CAIhE,eAAe,QAAQ,WAAW,SAAS;CAI3C,aAAa,QAAQ,WAAW,OAAO;CAIvC,iBAAiB,QAAQ,cAAc,WAAW;CAIlD,cAAc,QAAQ,WAAW,QAAQ;CAIzC,gBAAgB,QAAQ,cAAc,UAAU;CAIhD,mBAAmB,QAAQ,cAAc,aAAa;CAItD,aAAa,QAAQ,cAAc,OAAO;CAI1C,gBAAgB,QAAQ,cAAc,UAAU;CAIhD,aAAa,QAAQ,cAAc,OAAO;CAI1C,cAAc,QAAQ,cAAc,QAAQ;CAI5C,aAAa,QAAQ,cAAc,OAAO;CAI1C,oBAAoB,QAAQ,cAAc,cAAc;CAIxD,gBAAgB,QAAQ,WAAW,UAAU;CAI7C,eAAe,QAAQ,cAAc,SAAS;CAI9C,gBAAgB,QAAQ,cAAc,UAAU;CAIhD,gBAAgB,QAAQ,cAAc,UAAU;CACjD;AAQD,MAAa,2BAA2B,OAAO,KAC7C,gBACD;AACD,MAAa,0BAA0B,OAAO,OAAO,gBAAgB;AAErE,MAAa,iBAAiB;CAI5B,aAAa,OAAO,WAAW,QAAQ;CAIvC,eAAe,OAAO,WAAW,UAAU;CAI3C,YAAY,OAAO,cAAc,OAAO;CAIxC,cAAc,OAAO,cAAc,SAAS;CAI5C,eAAe,OAAO,WAAW,UAAU;CAI3C,cAAc,OAAO,WAAW,SAAS;CAIzC,cAAc,OAAO,cAAc,SAAS;CAI5C,eAAe,OAAO,WAAW,UAAU;CAI3C,kBAAkB,OAAO,cAAc,aAAa;CAIpD,cAAc,OAAO,WAAW,SAAS;CAIzC,iBAAiB,OAAO,cAAc,YAAY;CAIlD,WAAW,OAAO,WAAW,MAAM;CAInC,iBAAiB,OAAO,WAAW,YAAY;CAI/C,aAAa,OAAO,WAAW,QAAQ;CAIvC,cAAc,OAAO,WAAW,SAAS;CAIzC,eAAe,OAAO,cAAc,UAAU;CAI9C,uBAAuB,OAAO,cAAc,kBAAkB;CAI9D,cAAc,OAAO,WAAW,SAAS;CAIzC,YAAY,OAAO,WAAW,OAAO;CAIrC,gBAAgB,OAAO,cAAc,WAAW;CAIhD,aAAa,OAAO,WAAW,QAAQ;CAIvC,eAAe,OAAO,cAAc,UAAU;CAI9C,kBAAkB,OAAO,cAAc,aAAa;CAIpD,YAAY,OAAO,cAAc,OAAO;CAIxC,eAAe,OAAO,cAAc,UAAU;CAI9C,YAAY,OAAO,cAAc,OAAO;CAIxC,aAAa,OAAO,cAAc,QAAQ;CAI1C,YAAY,OAAO,cAAc,OAAO;CAIxC,mBAAmB,OAAO,cAAc,cAAc;CAItD,eAAe,OAAO,WAAW,UAAU;CAI3C,cAAc,OAAO,cAAc,SAAS;CAI5C,eAAe,OAAO,cAAc,UAAU;CAI9C,eAAe,OAAO,cAAc,UAAU;CAC/C;AAQD,MAAa,0BAA0B,OAAO,KAC5C,eACD;AACD,MAAa,yBAAyB,OAAO,OAAO,eAAe;AAEnE,MAAa,aAAa;CACxB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACJ;AASD,MAAa,sBAAsB,OAAO,KACxC,WACD;AACD,MAAa,qBAAqB,OAAO,OAAO,WAAW;AAE3D,SAAgB,aAAa,KAAa;AACxC,QAAO,OAAO,aAAa,WAAW,OAA4B"}
|
|
1
|
+
{"version":3,"file":"conditions.cjs","names":[],"sources":["../../../../src/core/css/conditions.ts"],"sourcesContent":["import type { Length } from \"../../utils\"\nimport type { DOMElement } from \"../components\"\nimport type { CSSObject } from \"./index.types\"\n\ntype ReplaceSelector<\n Y extends string[],\n M extends string,\n D extends string,\n> = Y extends [infer H extends string, ...infer R extends string[]]\n ? `${H}${M extends `&${infer T}` ? `${T} ${D}` : `${M} ${D}`}${Length<R> extends 0 ? \"\" : `, `}${ReplaceSelector<R, M, D>}`\n : \"\"\n\nconst toGroup = <Y extends string>(selector: Y) =>\n [\"[role=group]\", \"[data-group]\", \".group\"]\n .map((prefix) => `${prefix}${selector.slice(1)} &`)\n .join(\", \") as ReplaceSelector<\n [\"[role=group]\", \"[data-group]\", \".group\"],\n Y,\n \"&\"\n >\n\nconst toPeer = <Y extends string>(selector?: Y) =>\n [\n ...[\"[data-peer]\", \".peer\"].flatMap((prefix) => [\n selector\n ? `&:has(~ ${prefix}${selector.slice(1)})`\n : `&:has(~ ${prefix})`,\n selector ? `${prefix}${selector.slice(1)} ~ &` : `${prefix} ~ &`,\n ]),\n ...(selector\n ? [\"[data-peer]\", \".peer\"].flatMap((prefix) => [\n `&:has(~ ${prefix} *${selector.slice(1)})`,\n `${prefix}:has(*${selector.slice(1)}) ~ &`,\n ])\n : []),\n ].join(\", \") as ReplaceSelector<[\"[data-peer]\", \".peer\"], Y, \"~ &\">\n\nexport type AnySelector =\n | `${string}${\" \" | \"#\" | \"*\" | \"+\" | \",\" | \".\" | \":\" | \">\" | \"@\" | \"[\" | \"]\" | \"~\"}${string}`\n | DOMElement\n\nexport const attributes = {\n /**\n * The CSS `&[data-inactive]` attribute selector.\n */\n _inactive: \"&[data-inactive]\",\n /**\n * The CSS `&[data-accept]` attribute selector.\n */\n _accept: \"&[data-accept]\",\n /**\n * The CSS `&[data-animated]` attribute selector.\n */\n _animated: \"&[data-animated]\",\n /**\n * The CSS `&[data-between]` attribute selector.\n */\n _between: \"&[data-between]\",\n /**\n * The CSS `&:is([data-center], [data-group-center])` attribute selector.\n */\n _center: \"&:is([data-center], [data-group-center])\",\n /**\n * The CSS `&:is([data-collapsed], :not([data-expanded]), [aria-expanded=false])` attribute selector.\n */\n _collapsed:\n \"&:is([data-collapsed], :not([data-expanded]), [aria-expanded=false])\",\n /**\n * The CSS `&[data-complete]` attribute selector.\n */\n _complete: \"&[data-complete]\",\n /**\n * The CSS `&:is([aria-current], [data-current]):not([aria-current='false'])` attribute selector.\n */\n _current: \"&:is([aria-current], [data-current]):not([aria-current='false'])\",\n /**\n * Styles for when `data-mode` is applied to any parent of this component or element.\n */\n _dark:\n \".dark &:not([data-mode]), [data-mode=dark] &:not([data-mode]), &[data-mode=dark]\",\n /**\n * The CSS `&:is([data-end], [data-group-end])` attribute selector.\n */\n _end: \"&:is([data-end], [data-group-end])\",\n /**\n * The CSS `&:is([data-expanded], [aria-expanded=true])` attribute selector.\n */\n _expanded: \"&:is([data-expanded], [aria-expanded=true])\",\n /**\n * The CSS `&[data-fallback]` attribute selector.\n */\n _fallback: \"&[data-fallback]\",\n /**\n * The CSS `&[data-filled]` attribute selector.\n */\n _filled: \"&[data-filled]\",\n /**\n * The CSS `&:is([data-grabbed], [aria-grabbed=true])` attribute selector.\n */\n _grabbed: \"&:is([data-grabbed], [aria-grabbed=true])\",\n /**\n * The CSS `&:is([role=grid], [data-grid])` attribute selector.\n */\n _grid: \"&:is([role=grid], [data-grid])\",\n /**\n * The CSS `&:is(:has(> [role=group]), :has(> [data-group]), :has(> .group))` attribute selector.\n */\n _hasGroup: \"&:is(:has(> [role=group]), :has(> [data-group]), :has(> .group))\",\n /**\n * The CSS `&:has(> [data-icon])` attribute selector.\n */\n _hasIcon: \"&:has(> [data-icon])\",\n /**\n * The CSS `&[data-idle]` attribute selector.\n */\n _idle: \"&[data-idle]\",\n /**\n * The CSS `&[data-incomplete]` attribute selector.\n */\n _incomplete: \"&[data-incomplete]\",\n /**\n * Styles for when `data-mode` is applied to any parent of this component or element.\n */\n _light:\n \".light &:not([data-mode]), [data-mode=light] &:not([data-mode]), &[data-mode=light]\",\n /**\n * The CSS `&[data-loaded]` attribute selector.\n */\n _loaded: \"&[data-loaded]\",\n /**\n * The CSS `&:is([data-loading], [aria-busy=true])` attribute selector.\n */\n _loading: \"&:is([data-loading], [aria-busy=true])\",\n /**\n * The CSS `&[dir=ltr]` attribute selector.\n */\n _ltr: \"[dir=ltr] &\",\n /**\n * The CSS `&[hidden]` attribute selector.\n */\n _nativeHidden: \"&[hidden]\",\n /**\n * The CSS `&[data-not-allowed]` attribute selector.\n */\n _notAllowed: \"&[data-not-allowed]\",\n /**\n * The CSS `&[aria-current='false']` attribute selector.\n */\n _notCurrent: \"&:not([aria-current], [data-current]), &[aria-current='false']\",\n /**\n * The CSS `&:not([data-fallback])` attribute selector.\n */\n _notFallback: \"&:not([data-fallback])\",\n /**\n * The CSS `&:not(:has(> [role=group]), :has(> [data-group]), :has(> .group))` attribute selector.\n */\n _notHasGroup:\n \"&:not(:has(> [role=group]), :has(> [data-group]), :has(> .group))\",\n /**\n * The CSS `&:not([data-selected]):not([aria-selected=true])` attribute selector.\n */\n _notSelected: \"&:not([data-selected]):not([aria-selected=true])\",\n /**\n * The CSS `&[data-numeric]` attribute selector.\n */\n _numeric: \"&[data-numeric]\",\n /**\n * The CSS `&:is([open], [data-open])` attribute selector.\n */\n _open: \"&:is([open], [data-open])\",\n /**\n * The CSS `&:is([data-pressed], [aria-pressed=true])` attribute selector.\n */\n _pressed: \"&:is([data-pressed], [aria-pressed=true])\",\n /**\n * The CSS `&:is([data-range])` attribute selector.\n */\n _range: \"&:is([data-range])\",\n /**\n * The CSS `&[data-reject]` attribute selector.\n */\n _reject: \"&[data-reject]\",\n /**\n * The CSS `& .ui-ripple` attribute selector.\n */\n _ripple: \"& .ui-ripple\",\n /**\n * The CSS `&[dir=rtl]` attribute selector.\n */\n _rtl: \"[dir=rtl] &\",\n /**\n * The CSS `&:is([data-start], [data-group-start])` attribute selector.\n */\n _start: \"&:is([data-start], [data-group-start])\",\n /**\n * The CSS `&:is([data-selected], [aria-selected=true])` attribute selector.\n */\n _selected: \"&:is([data-selected], [aria-selected=true])\",\n /**\n * The CSS `&:is([hidden], [data-hidden])` attribute selector.\n */\n _hidden: \"&:is([hidden], [data-hidden])\",\n /**\n * The CSS `&[data-never]` attribute selector.\n */\n _never: \"&[data-never]\",\n} as const\n\nexport type Attributes = typeof attributes\nexport type AttributeProperty = keyof Attributes\nexport type AttributeProps = {\n [K in AttributeProperty]?: CSSObject\n}\n\nexport const attributeProperties = Object.keys(\n attributes,\n) as AttributeProperty[]\nexport const attributeSelectors = Object.values(attributes)\n\nexport const pseudoElements = {\n /**\n * The CSS `&::after` pseudo-element.\n */\n _after: \"&::after\",\n /**\n * The CSS `&::backdrop` pseudo-element.\n */\n _backdrop: \"&::backdrop\",\n /**\n * The CSS `&::before` pseudo-element.\n */\n _before: \"&::before\",\n /**\n * The CSS `&::cue` pseudo-element.\n */\n _cue: \"&::cue\",\n /**\n * The CSS `&::cue-region` pseudo-element.\n */\n _cueRegion: \"&::cue-region\",\n /**\n * The CSS `&::details-content` pseudo-element.\n */\n _detailsContent: \"&::details-content\",\n /**\n * The CSS `&::file-selector-button` pseudo-element.\n */\n _fileSelector: \"&::file-selector-button\",\n /**\n * The CSS `&::first-letter` pseudo-element.\n */\n _firstLetter: \"&::first-letter\",\n /**\n * The CSS `&::first-line` pseudo-element.\n */\n _firstLine: \"&::first-line\",\n /**\n * The CSS `&::marker` pseudo-element.\n */\n _marker: \"&::marker\",\n /**\n * The CSS `&::placeholder, &[data-placeholder]` pseudo-element.\n */\n _placeholder: \"&::placeholder, &[data-placeholder]\",\n /**\n * The CSS `&::-webkit-scrollbar, &[data-scrollbar]` pseudo-element.\n */\n _scrollbar: \"&::-webkit-scrollbar, &[data-scrollbar]\",\n /**\n * The CSS `&::-webkit-scrollbar-button` pseudo-element.\n */\n _scrollbarButton: \"&::-webkit-scrollbar-button\",\n /**\n * The CSS `&::-webkit-scrollbar-corner` pseudo-element.\n */\n _scrollbarCorner: \"&::-webkit-scrollbar-corner\",\n /**\n * The CSS `&::-webkit-scrollbar-thumb` pseudo-element.\n */\n _scrollbarThumb: \"&::-webkit-scrollbar-thumb\",\n /**\n * The CSS `&::-webkit-scrollbar-track` pseudo-element.\n */\n _scrollbarTrack: \"&::-webkit-scrollbar-track\",\n /**\n * The CSS `&::-webkit-scrollbar-track-piece` pseudo-element.\n */\n _scrollbarTrackPiece: \"&::-webkit-scrollbar-track-piece\",\n /**\n * The CSS `&::selection` pseudo-element.\n */\n _selection: \"&::selection\",\n} as const\n\nexport type PseudoElements = typeof pseudoElements\nexport type PseudoElementProperty = keyof PseudoElements\nexport type PseudoElementProps = {\n [K in PseudoElementProperty]?: CSSObject\n}\n\nexport const pseudoElementProperties = Object.keys(\n pseudoElements,\n) as PseudoElementProperty[]\nexport const pseudoElementSelectors = Object.values(pseudoElements)\n\nexport const pseudoClasses = {\n /**\n * The CSS `&:is([data-activedescendant])` pseudo-class.\n */\n _activedescendant: \"&:is([data-activedescendant])\",\n /**\n * The CSS `:any-link` pseudo-class.\n */\n _anyLink: \"&:is(:any-link, [data-any-link])\",\n /**\n * The CSS `&:autofill` pseudo-class.\n */\n _autofill: \"&:autofill\",\n /**\n * The CSS `&:is(:blank, [data-blank])` pseudo-class.\n */\n _blank: \"&:is(:blank, [data-blank])\",\n /**\n * The CSS `&:is(:checked, [data-checked], [aria-checked=true])` pseudo-class.\n */\n _checked: \"&:is(:checked, [data-checked], [aria-checked=true])\",\n /**\n * The CSS `& > *` child combinator selector.\n */\n _child: \"& > *\",\n /**\n * The CSS `& > [data-content]` child combinator attribute selector.\n */\n _content: \"& > [data-content]\",\n /**\n * The CSS `&:default` pseudo-class.\n */\n _default: \"&:default\",\n /**\n * The CSS `&:empty` pseudo-class.\n */\n _empty: \"&:empty\",\n /**\n * The CSS `&:is(:enabled, [data-enabled])` pseudo-class.\n */\n _enabled: \"&:is(:enabled, [data-enabled])\",\n /**\n * The CSS `&:nth-of-type(even)` pseudo-class.\n */\n _even: \"&:nth-of-type(even)\",\n /**\n * The CSS `&:first-of-type` pseudo-class.\n */\n _first: \"&:first-of-type\",\n /**\n * The CSS `& > *:first-child` pseudo-class.\n */\n _firstChild: \"& > *:first-child\",\n /**\n * The CSS `&:not(:focus-within, [data-focus-within])` pseudo-class.\n */\n _focusWithin: \"&:not(:focus-within, [data-focus-within])\",\n /**\n * The CSS `&:fullscreen` pseudo-class.\n */\n _fullScreen: \"&:fullscreen\",\n /**\n * The CSS `&:is([data-orientation=horizontal], [aria-orientation=horizontal])` pseudo-class.\n */\n _horizontal:\n \"&:is([data-orientation=horizontal], [aria-orientation=horizontal])\",\n /**\n * The CSS `&:where(svg:not([data-loading])), & > [data-icon]` pseudo-class.\n */\n _icon: \"&:where(svg:not([data-loading])), & > [data-icon]\",\n /**\n * The CSS `&:is(:indeterminate, [data-indeterminate], [aria-checked=mixed])` pseudo-class.\n */\n _indeterminate:\n \"&:is(:indeterminate, [data-indeterminate], [aria-checked=mixed])\",\n /**\n * The CSS `& > [data-indicator]` pseudo-class.\n */\n _indicator: \"& > [data-indicator]\",\n /**\n * The CSS `&:is(:in-range, [data-in-range])` pseudo-class.\n */\n _inRange: \"&:is(:in-range, [data-in-range])\",\n /**\n * The CSS `&:last-of-type` pseudo-class.\n */\n _last: \"&:last-of-type\",\n /**\n * The CSS `& > *:last-child` pseudo-class.\n */\n _lastChild: \"& > *:last-child\",\n /**\n * The CSS `&:is(:link, [data-link])` pseudo-class.\n */\n _link: \"&:is(:link, [data-link])\",\n /**\n * The CSS `&:modal` pseudo-class.\n */\n _modal: \"&:modal\",\n /**\n * The CSS `&:active` pseudo-class.\n */\n _nativeActive: \"&:active\",\n /**\n * The CSS `&:checked` pseudo-class.\n */\n _nativeChecked: \"&:checked\",\n /**\n * The CSS `&:is(disabled, [disabled])` pseudo-class.\n */\n _nativeDisabled: \"&:is(disabled, [disabled])\",\n /**\n * The CSS `&:focus` pseudo-class.\n */\n _nativeFocus: \"&:focus\",\n /**\n * The CSS `&:focus-visible` pseudo-class.\n */\n _nativeFocusVisible: \"&:focus-visible\",\n /**\n * The CSS `&:focus-within` pseudo-class.\n */\n _nativeFocusWithin: \"&:focus-within\",\n /**\n * The CSS `&:hover` pseudo-class.\n */\n _nativeHover: \"&:hover\",\n /**\n * The CSS `&:is([readonly], [aria-readonly=true])` pseudo-class.\n */\n _nativeReadOnly: \"&:is([readonly], [aria-readonly=true])\",\n /**\n * The CSS `&:target` pseudo-class.\n */\n _nativeTarget: \"&:target\",\n /**\n * The CSS `&:valid` pseudo-class.\n */\n _nativeValid: \"&:valid\",\n /**\n * The CSS `&:not(:checked):not([data-checked]):not([aria-checked=true])` pseudo-class.\n */\n _notChecked: \"&:not(:checked):not([data-checked]):not([aria-checked=true])\",\n /**\n * The CSS `&:not(:empty)` pseudo-class.\n */\n _notEmpty: \"&:not(:empty)\",\n /**\n * The CSS `&:not(:first-of-type)` pseudo-class.\n */\n _notFirst: \"&:not(:first-of-type)\",\n /**\n * The CSS `& > *:not(:first-child)` pseudo-class.\n */\n _notFirstChild: \"& > *:not(:first-child)\",\n /**\n * The CSS `&:not(:last-of-type)` pseudo-class.\n */\n _notLast: \"&:not(:last-of-type)\",\n /**\n * The CSS `& > *:not(:last-child)` pseudo-class.\n */\n _notLastChild: \"& > *:not(:last-child)\",\n /**\n * The CSS `&:not(:target)` pseudo-class.\n */\n _notTarget: \"&:not(:target)\",\n /**\n * The CSS `&:nth-of-type(odd)` pseudo-class.\n */\n _odd: \"&:nth-of-type(odd)\",\n /**\n * The CSS `&:only-of-type` pseudo-class.\n */\n _only: \"&:only-of-type\",\n /**\n * The CSS `&:only-child` pseudo-class.\n */\n _onlyChild: \"&:only-child\",\n /**\n * The CSS `&:is(:optional, [data-optional])` pseudo-class.\n */\n _optional: \"&:is(:optional, [data-optional])\",\n /**\n * The CSS `&:is(:out-of-range, [data-out-of-range])` pseudo-class.\n */\n _outRange: \"&:is(:out-of-range, [data-out-of-range])\",\n /**\n * The CSS `&:is(:paused, [data-paused])` pseudo-class.\n */\n _paused: \"&:is(:paused, [data-paused])\",\n /**\n * The CSS `&:picture-in-picture` pseudo-class.\n */\n _picture: \"&:picture-in-picture\",\n /**\n * The CSS `&:placeholder-shown` pseudo-class.\n */\n _placeholderShown: \"&:placeholder-shown\",\n /**\n * The CSS `&:is(:playing, [data-playing])` pseudo-class.\n */\n _playing: \"&:is(:playing, [data-playing])\",\n /**\n * The CSS `&:popover-open` pseudo-class.\n */\n _popoverOpen: \"&:popover-open\",\n /**\n * The CSS `&:is(:read-write, [data-read-write])` pseudo-class.\n */\n _readWrite: \"&:is(:read-write, [data-read-write])\",\n /**\n * The CSS `&:is(:required, [required])` pseudo-class.\n */\n _required: \"&:is(:required, [required])\",\n /**\n * The CSS `&:is(:target, [data-target])` pseudo-class.\n */\n _target: \"&:is(:target, [data-target])\",\n /**\n * The CSS `&:is(:user-invalid, [data-user-invalid])` pseudo-class.\n */\n _userInvalid: \"&:is(:user-invalid, [data-user-invalid])\",\n /**\n * The CSS `&:is(:valid, [data-valid])` pseudo-class.\n */\n _valid: \"&:is(:valid, [data-valid])\",\n /**\n * The CSS `&:is([data-orientation=vertical], [aria-orientation=vertical])` pseudo-class.\n */\n _vertical: \"&:is([data-orientation=vertical], [aria-orientation=vertical])\",\n /**\n * The CSS `&:visited` pseudo-class.\n */\n _visited: \"&:visited\",\n /**\n * The CSS `&:is(:hover, [data-hover])` pseudo-class.\n */\n _hover:\n \"&:is(:hover, [data-hover]):not(:disabled, [disabled], [aria-disabled=true], [data-disabled])\",\n /**\n * The CSS `&:is(:active, [data-active])` pseudo-class.\n */\n _active:\n \"&:is(:active, [data-active]):not(:disabled, [disabled], [aria-disabled=true], [data-disabled])\",\n /**\n * The CSS `&:is(:focus, [data-focus])` pseudo-class.\n */\n _focus: \"&:is(:focus, [data-focus])\",\n /**\n * The CSS `&:is(:focus-visible, [data-focus-visible])` pseudo-class.\n */\n _focusVisible: \"&:is(:focus-visible, [data-focus-visible])\",\n /**\n * The CSS `&:is([data-invalid], [aria-invalid=true])` attribute selector.\n */\n _invalid: \"&:is([data-invalid], [aria-invalid=true])\",\n /**\n * The CSS `&:is([readonly], [data-readonly], [aria-readonly=true])` pseudo-class.\n */\n _readOnly: \"&:is([readonly], [data-readonly], [aria-readonly=true])\",\n /**\n * The CSS `&:is(:disabled, [disabled], [data-disabled])` pseudo-class.\n */\n _disabled: \"&:is(:disabled, [disabled], [data-disabled])\",\n} as const\n\nexport type PseudoClasses = typeof pseudoClasses\nexport type PseudoClassProperty = keyof PseudoClasses\nexport type PseudoClassProps = {\n [K in PseudoClassProperty]?: CSSObject\n}\n\nexport const pseudoClassProperties = Object.keys(\n pseudoClasses,\n) as PseudoClassProperty[]\nexport const pseudoClassSelectors = Object.values(pseudoClasses)\n\nexport const groupAttributes = {\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is accepted.\n */\n _groupAccept: toGroup(attributes._accept),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is activedescendant.\n */\n _groupActivedescendant: toGroup(pseudoClasses._activedescendant),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is animated.\n */\n _groupAnimated: toGroup(attributes._animated),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is blank.\n */\n _groupBlank: toGroup(pseudoClasses._blank),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is checked.\n */\n _groupChecked: toGroup(pseudoClasses._checked),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is collapsed.\n */\n _groupCollapsed: toGroup(attributes._collapsed),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is complete.\n */\n _groupComplete: toGroup(attributes._complete),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is current.\n */\n _groupCurrent: toGroup(attributes._current),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is enabled.\n */\n _groupEnabled: toGroup(pseudoClasses._enabled),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is expanded.\n */\n _groupExpanded: toGroup(attributes._expanded),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is focus-within.\n */\n _groupFocusWithin: toGroup(pseudoClasses._focusWithin),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is grabbed.\n */\n _groupGrabbed: toGroup(attributes._grabbed),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is horizontal.\n */\n _groupHorizontal: toGroup(pseudoClasses._horizontal),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is idle.\n */\n _groupIdle: toGroup(attributes._idle),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is incomplete.\n */\n _groupIncomplete: toGroup(attributes._incomplete),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is loaded.\n */\n _groupLoaded: toGroup(attributes._loaded),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is loading.\n */\n _groupLoading: toGroup(attributes._loading),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is open.\n */\n _groupOpen: toGroup(attributes._open),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is optional.\n */\n _groupOptional: toGroup(pseudoClasses._optional),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` has a placeholder shown.\n */\n _groupPlaceholderShown: toGroup(pseudoClasses._placeholderShown),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is pressed.\n */\n _groupPressed: toGroup(attributes._pressed),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is range.\n */\n _groupRange: toGroup(attributes._range),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is read-write.\n */\n _groupReadWrite: toGroup(pseudoClasses._readWrite),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is rejected.\n */\n _groupReject: toGroup(attributes._reject),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is required.\n */\n _groupRequired: toGroup(pseudoClasses._required),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is user-invalid.\n */\n _groupUserInvalid: toGroup(pseudoClasses._userInvalid),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is valid.\n */\n _groupValid: toGroup(pseudoClasses._valid),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is vertical.\n */\n _groupVertical: toGroup(pseudoClasses._vertical),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is hovered.\n */\n _groupHover: toGroup(pseudoClasses._hover),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is active.\n */\n _groupActive: toGroup(pseudoClasses._active),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is focused.\n */\n _groupFocus: toGroup(pseudoClasses._focus),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is focused-visible.\n */\n _groupFocusVisible: toGroup(pseudoClasses._focusVisible),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is selected.\n */\n _groupSelected: toGroup(attributes._selected),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is invalid.\n */\n _groupInvalid: toGroup(pseudoClasses._invalid),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is read-only.\n */\n _groupReadOnly: toGroup(pseudoClasses._readOnly),\n /**\n * Styles to apply when a parent element with `role=group`, `data-group` or `.group` is disabled.\n */\n _groupDisabled: toGroup(pseudoClasses._disabled),\n} as const\n\nexport type GroupAttributes = typeof groupAttributes\nexport type GroupAttributeProperty = keyof GroupAttributes\nexport type GroupAttributeProps = {\n [K in GroupAttributeProperty]?: CSSObject\n}\n\nexport const groupAttributeProperties = Object.keys(\n groupAttributes,\n) as GroupAttributeProperty[]\nexport const groupAttributeSelectors = Object.values(groupAttributes)\n\nexport const peerAttributes = {\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` exists.\n */\n _peer: toPeer(),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is accepted.\n */\n _peerAccept: toPeer(attributes._accept),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is animated.\n */\n _peerAnimated: toPeer(attributes._animated),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is blank.\n */\n _peerBlank: toPeer(pseudoClasses._blank),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is checked.\n */\n _peerChecked: toPeer(pseudoClasses._checked),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is collapsed.\n */\n _peerCollapsed: toPeer(attributes._collapsed),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is complete.\n */\n _peerComplete: toPeer(attributes._complete),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is current.\n */\n _peerCurrent: toPeer(attributes._current),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is enabled.\n */\n _peerEnabled: toPeer(pseudoClasses._enabled),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is expanded.\n */\n _peerExpanded: toPeer(attributes._expanded),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is focus-within.\n */\n _peerFocusWithin: toPeer(pseudoClasses._focusWithin),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is grabbed.\n */\n _peerGrabbed: toPeer(attributes._grabbed),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is horizontal.\n */\n _peerHorizontal: toPeer(pseudoClasses._horizontal),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is idle.\n */\n _peerIdle: toPeer(attributes._idle),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is incomplete.\n */\n _peerIncomplete: toPeer(attributes._incomplete),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is loaded.\n */\n _peerLoaded: toPeer(attributes._loaded),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is loading.\n */\n _peerLoading: toPeer(attributes._loading),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is optional.\n */\n _peerOptional: toPeer(pseudoClasses._optional),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` has a placeholder shown.\n */\n _peerPlaceholderShown: toPeer(pseudoClasses._placeholderShown),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is pressed.\n */\n _peerPressed: toPeer(attributes._pressed),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is range.\n */\n _peerRange: toPeer(attributes._range),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is read-write.\n */\n _peerReadWrite: toPeer(pseudoClasses._readWrite),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is rejected.\n */\n _peerReject: toPeer(attributes._reject),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is required.\n */\n _peerRequired: toPeer(pseudoClasses._required),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is user-invalid.\n */\n _peerUserInvalid: toPeer(pseudoClasses._userInvalid),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is valid.\n */\n _peerValid: toPeer(pseudoClasses._valid),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is vertical.\n */\n _peerVertical: toPeer(pseudoClasses._vertical),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is hovered.\n */\n _peerHover: toPeer(pseudoClasses._hover),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is active.\n */\n _peerActive: toPeer(pseudoClasses._active),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is focused.\n */\n _peerFocus: toPeer(pseudoClasses._focus),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is focused-visible.\n */\n _peerFocusVisible: toPeer(pseudoClasses._focusVisible),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is selected.\n */\n _peerSelected: toPeer(attributes._selected),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is invalid.\n */\n _peerInvalid: toPeer(pseudoClasses._invalid),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is read-only.\n */\n _peerReadOnly: toPeer(pseudoClasses._readOnly),\n /**\n * Styles to apply when a sibling element with `data-peer` or `.peer` is disabled.\n */\n _peerDisabled: toPeer(pseudoClasses._disabled),\n} as const\n\nexport type PeerAttributes = typeof peerAttributes\nexport type PeerAttributeProperty = keyof PeerAttributes\nexport type PeerAttributeProps = {\n [K in PeerAttributeProperty]?: CSSObject\n}\n\nexport const peerAttributeProperties = Object.keys(\n peerAttributes,\n) as PeerAttributeProperty[]\nexport const peerAttributeSelectors = Object.values(peerAttributes)\n\nexport const conditions = {\n ...pseudoElements,\n ...attributes,\n ...pseudoClasses,\n ...groupAttributes,\n ...peerAttributes,\n} as const\n\nexport type Conditions = typeof conditions\nexport type ConditionProperty = keyof Conditions\nexport type ConditionSelector = Conditions[ConditionProperty]\nexport type ConditionProps = {\n [K in keyof Conditions]?: CSSObject\n}\n\nexport const conditionProperties = Object.keys(\n conditions,\n) as ConditionProperty[]\nexport const conditionSelectors = Object.values(conditions)\n\nexport function getCondition(key: string) {\n return key in conditions ? conditions[key as ConditionProperty] : key\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.cjs","names":["defineConfig: DefineConfig","defineComponentStyle: DefineComponentStyle","defineComponentSlotStyle: DefineComponentSlotStyle","defineGlobalStyle: DefineStyle","defineResetStyle: DefineStyle","defineLayerStyle: DefineModifierStyle","defineTextStyle: DefineModifierStyle","defineAnimationTokens: DefineAnimationTokens","defineAspectRatioTokens: DefineTokens","defineBlurTokens: DefineTokens","defineBorderTokens: DefineTokens","defineBreakpointTokens: DefineBreakpointTokens","defineColorTokens: DefineTokens","defineDurationTokens: DefineTokens","defineEasingTokens: DefineTokens","defineFontTokens: DefineTokens","defineFontSizeTokens: DefineTokens","defineFontWeightTokens: DefineTokens","defineGradientTokens: DefineTokens","defineKeyframeTokens: DefineKeyframeTokens","defineLetterSpacingTokens: DefineTokens","defineLineHeightTokens: DefineTokens","defineRadiusTokens: DefineTokens","defineShadowTokens: DefineTokens","defineSizeTokens: DefineTokens","defineSpaceTokens: DefineTokens","defineZIndexTokens: DefineTokens","defineAnimationSemanticTokens: DefineAnimationSemanticTokens","defineAspectRatioSemanticTokens: DefineSemanticTokens","defineBlurSemanticTokens: DefineSemanticTokens","defineBorderSemanticTokens: DefineSemanticTokens","defineColorSemanticTokens: DefineColorSemanticTokens","defineColorSchemeSemanticTokens: DefineColorSchemeSemanticTokens","defineDurationSemanticTokens: DefineSemanticTokens","defineEasingSemanticTokens: DefineSemanticTokens","defineFontSemanticTokens: DefineSemanticTokens","defineFontSizeSemanticTokens: DefineSemanticTokens","defineFontWeightSemanticTokens: DefineSemanticTokens","defineGradientSemanticTokens: DefineSemanticTokens","defineKeyframeSemanticTokens: DefineKeyframeTokens","defineLetterSpacingSemanticTokens: DefineSemanticTokens","defineLineHeightSemanticTokens: DefineSemanticTokens","defineRadiusSemanticTokens: DefineSemanticTokens","defineShadowSemanticTokens: DefineSemanticTokens","defineSizeSemanticTokens: DefineSemanticTokens","defineSpaceSemanticTokens: DefineSemanticTokens","defineZIndexSemanticTokens: DefineSemanticTokens","defineThemeSchemes: DefineThemeSchemes","defineTheme: DefineTheme"],"sources":["../../../../src/core/system/config.ts"],"sourcesContent":["import type {\n CSSAnimationObject,\n CSSModifierObject,\n CSSObject,\n CSSPropObject,\n CSSSlotObject,\n} from \"../css\"\nimport type {\n ComponentSlotStyle,\n ComponentStyle,\n DefineThemeAnimationTokens,\n DefineThemeBreakpointTokens,\n DefineThemeColorSchemeSemanticTokens,\n DefineThemeColorSemanticTokens,\n DefineThemeKeyframeTokens,\n DefineThemeSchemeTokens,\n DefineThemeTokens,\n ThemeConfig,\n UsageTheme,\n} from \"./index.types\"\n\ninterface DefineConfig {\n (value: ThemeConfig): ThemeConfig\n}\n\nexport const defineConfig: DefineConfig = (value) => value\n\nexport interface DefineComponentStyle {\n <\n Y extends CSSPropObject = CSSPropObject,\n M extends CSSModifierObject = CSSModifierObject,\n D extends CSSModifierObject = CSSModifierObject,\n >(\n value: ComponentStyle<Y, M, D>,\n ): ComponentStyle<Y, M, D>\n}\n\nexport const defineComponentStyle: DefineComponentStyle = (value) => value\n\nexport interface DefineComponentSlotStyle {\n <\n Y extends string = string,\n M extends CSSPropObject<CSSSlotObject<Y>> = CSSPropObject<CSSSlotObject<Y>>,\n D extends CSSModifierObject<CSSSlotObject<Y>> = CSSModifierObject<\n CSSSlotObject<Y>\n >,\n H extends CSSModifierObject<CSSSlotObject<Y>> = CSSModifierObject<\n CSSSlotObject<Y>\n >,\n >(\n value: ComponentSlotStyle<Y, M, D, H>,\n ): ComponentSlotStyle<Y, M, D, H>\n}\n\nexport const defineComponentSlotStyle: DefineComponentSlotStyle = (value) =>\n value\n\ninterface DefineStyle {\n (value: CSSObject): CSSObject\n}\n\ninterface DefineModifierStyle {\n <Y extends CSSModifierObject>(value: Y): Y\n}\n\nconst defineGlobalStyle: DefineStyle = (value) => value\nconst defineResetStyle: DefineStyle = (value) => value\nconst defineLayerStyle: DefineModifierStyle = (value) => value\nconst defineTextStyle: DefineModifierStyle = (value) => value\n\nexport const defineStyles = {\n layerStyle: defineLayerStyle,\n textStyle: defineTextStyle,\n globalStyle: defineGlobalStyle,\n resetStyle: defineResetStyle,\n}\n\ninterface DefineTokens {\n <Y extends DefineThemeTokens>(value: Y): Y\n}\n\ninterface DefineAnimationTokens {\n <Y extends DefineThemeAnimationTokens>(value: Y): Y\n}\n\ninterface DefineBreakpointTokens {\n <Y extends DefineThemeBreakpointTokens>(value: Y): Y\n}\n\ninterface DefineKeyframeTokens {\n <Y extends DefineThemeKeyframeTokens>(value: Y): Y\n}\n\nconst defineAnimationTokens: DefineAnimationTokens = (value) => value\nconst defineAspectRatioTokens: DefineTokens = (value) => value\nconst defineBlurTokens: DefineTokens = (value) => value\nconst defineBorderTokens: DefineTokens = (value) => value\nconst defineBreakpointTokens: DefineBreakpointTokens = (value) => value\nconst defineColorTokens: DefineTokens = (value) => value\nconst defineDurationTokens: DefineTokens = (value) => value\nconst defineEasingTokens: DefineTokens = (value) => value\nconst defineFontTokens: DefineTokens = (value) => value\nconst defineFontSizeTokens: DefineTokens = (value) => value\nconst defineFontWeightTokens: DefineTokens = (value) => value\nconst defineGradientTokens: DefineTokens = (value) => value\nconst defineKeyframeTokens: DefineKeyframeTokens = (value) => value\nconst defineLetterSpacingTokens: DefineTokens = (value) => value\nconst defineLineHeightTokens: DefineTokens = (value) => value\nconst defineRadiusTokens: DefineTokens = (value) => value\nconst defineShadowTokens: DefineTokens = (value) => value\nconst defineSizeTokens: DefineTokens = (value) => value\nconst defineSpaceTokens: DefineTokens = (value) => value\nconst defineZIndexTokens: DefineTokens = (value) => value\n\nexport const defineTokens = {\n animations: defineAnimationTokens,\n aspectRatios: defineAspectRatioTokens,\n blurs: defineBlurTokens,\n borders: defineBorderTokens,\n breakpoints: defineBreakpointTokens,\n colors: defineColorTokens,\n durations: defineDurationTokens,\n easings: defineEasingTokens,\n fonts: defineFontTokens,\n fontSizes: defineFontSizeTokens,\n fontWeights: defineFontWeightTokens,\n gradients: defineGradientTokens,\n keyframes: defineKeyframeTokens,\n letterSpacings: defineLetterSpacingTokens,\n lineHeights: defineLineHeightTokens,\n radii: defineRadiusTokens,\n shadows: defineShadowTokens,\n sizes: defineSizeTokens,\n spaces: defineSpaceTokens,\n zIndices: defineZIndexTokens,\n}\n\ninterface DefineSemanticTokens extends DefineTokens {}\n\ninterface DefineAnimationSemanticTokens {\n <Y extends DefineThemeAnimationTokens<CSSAnimationObject | string>>(\n value: Y,\n ): Y\n}\n\ninterface DefineColorSemanticTokens {\n <Y extends DefineThemeColorSemanticTokens>(value: Y): Y\n}\n\ninterface DefineColorSchemeSemanticTokens {\n <Y extends DefineThemeColorSchemeSemanticTokens>(value: Y): Y\n}\n\nconst defineAnimationSemanticTokens: DefineAnimationSemanticTokens = (value) =>\n value\nconst defineAspectRatioSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineBlurSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineBorderSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineColorSemanticTokens: DefineColorSemanticTokens = (value) => value\nconst defineColorSchemeSemanticTokens: DefineColorSchemeSemanticTokens = (\n value,\n) => value\nconst defineDurationSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineEasingSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineFontSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineFontSizeSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineFontWeightSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineGradientSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineKeyframeSemanticTokens: DefineKeyframeTokens = (value) => value\nconst defineLetterSpacingSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineLineHeightSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineRadiusSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineShadowSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineSizeSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineSpaceSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineZIndexSemanticTokens: DefineSemanticTokens = (value) => value\n\nexport const defineSemanticTokens = {\n animations: defineAnimationSemanticTokens,\n aspectRatios: defineAspectRatioSemanticTokens,\n blurs: defineBlurSemanticTokens,\n borders: defineBorderSemanticTokens,\n colors: defineColorSemanticTokens,\n colorSchemes: defineColorSchemeSemanticTokens,\n durations: defineDurationSemanticTokens,\n easings: defineEasingSemanticTokens,\n fonts: defineFontSemanticTokens,\n fontSizes: defineFontSizeSemanticTokens,\n fontWeights: defineFontWeightSemanticTokens,\n gradients: defineGradientSemanticTokens,\n keyframes: defineKeyframeSemanticTokens,\n letterSpacings: defineLetterSpacingSemanticTokens,\n lineHeights: defineLineHeightSemanticTokens,\n radii: defineRadiusSemanticTokens,\n shadows: defineShadowSemanticTokens,\n sizes: defineSizeSemanticTokens,\n spaces: defineSpaceSemanticTokens,\n zIndices: defineZIndexSemanticTokens,\n}\n\ninterface DefineThemeSchemes {\n <Y extends DefineThemeSchemeTokens>(value: Y): Y\n}\n\nexport const defineThemeSchemes: DefineThemeSchemes = (value) => value\n\ninterface DefineTheme {\n <Y extends UsageTheme>(value: Y): Y\n}\n\nexport const defineTheme: DefineTheme = (value) => value\n"],"mappings":";;AAyBA,MAAaA,gBAA8B,UAAU;AAYrD,MAAaC,wBAA8C,UAAU;AAiBrE,MAAaC,4BAAsD,UACjE;AAUF,MAAMC,qBAAkC,UAAU;AAClD,MAAMC,oBAAiC,UAAU;AACjD,MAAMC,oBAAyC,UAAU;AACzD,MAAMC,mBAAwC,UAAU;AAExD,MAAa,eAAe;CAC1B,YAAY;CACZ,WAAW;CACX,aAAa;CACb,YAAY;CACb;AAkBD,MAAMC,yBAAgD,UAAU;AAChE,MAAMC,2BAAyC,UAAU;AACzD,MAAMC,oBAAkC,UAAU;AAClD,MAAMC,sBAAoC,UAAU;AACpD,MAAMC,0BAAkD,UAAU;AAClE,MAAMC,qBAAmC,UAAU;AACnD,MAAMC,wBAAsC,UAAU;AACtD,MAAMC,sBAAoC,UAAU;AACpD,MAAMC,oBAAkC,UAAU;AAClD,MAAMC,wBAAsC,UAAU;AACtD,MAAMC,0BAAwC,UAAU;AACxD,MAAMC,wBAAsC,UAAU;AACtD,MAAMC,wBAA8C,UAAU;AAC9D,MAAMC,6BAA2C,UAAU;AAC3D,MAAMC,0BAAwC,UAAU;AACxD,MAAMC,sBAAoC,UAAU;AACpD,MAAMC,sBAAoC,UAAU;AACpD,MAAMC,oBAAkC,UAAU;AAClD,MAAMC,qBAAmC,UAAU;AACnD,MAAMC,sBAAoC,UAAU;AAEpD,MAAa,eAAe;CAC1B,YAAY;CACZ,cAAc;CACd,OAAO;CACP,SAAS;CACT,aAAa;CACb,QAAQ;CACR,WAAW;CACX,SAAS;CACT,OAAO;CACP,WAAW;CACX,aAAa;CACb,WAAW;CACX,WAAW;CACX,gBAAgB;CAChB,aAAa;CACb,OAAO;CACP,SAAS;CACT,OAAO;CACP,QAAQ;CACR,UAAU;CACX;AAkBD,MAAMC,iCAAgE,UACpE;AACF,MAAMC,mCAAyD,UAAU;AACzE,MAAMC,4BAAkD,UAAU;AAClE,MAAMC,8BAAoD,UAAU;AACpE,MAAMC,6BAAwD,UAAU;AACxE,MAAMC,mCACJ,UACG;AACL,MAAMC,gCAAsD,UAAU;AACtE,MAAMC,8BAAoD,UAAU;AACpE,MAAMC,4BAAkD,UAAU;AAClE,MAAMC,gCAAsD,UAAU;AACtE,MAAMC,kCAAwD,UAAU;AACxE,MAAMC,gCAAsD,UAAU;AACtE,MAAMC,gCAAsD,UAAU;AACtE,MAAMC,qCAA2D,UAAU;AAC3E,MAAMC,kCAAwD,UAAU;AACxE,MAAMC,8BAAoD,UAAU;AACpE,MAAMC,8BAAoD,UAAU;AACpE,MAAMC,4BAAkD,UAAU;AAClE,MAAMC,6BAAmD,UAAU;AACnE,MAAMC,8BAAoD,UAAU;AAEpE,MAAa,uBAAuB;CAClC,YAAY;CACZ,cAAc;CACd,OAAO;CACP,SAAS;CACT,QAAQ;CACR,cAAc;CACd,WAAW;CACX,SAAS;CACT,OAAO;CACP,WAAW;CACX,aAAa;CACb,WAAW;CACX,WAAW;CACX,gBAAgB;CAChB,aAAa;CACb,OAAO;CACP,SAAS;CACT,OAAO;CACP,QAAQ;CACR,UAAU;CACX;AAMD,MAAaC,sBAA0C,UAAU;AAMjE,MAAaC,eAA4B,UAAU"}
|
|
1
|
+
{"version":3,"file":"config.cjs","names":["defineConfig: DefineConfig","defineComponentStyle: DefineComponentStyle","defineComponentSlotStyle: DefineComponentSlotStyle","defineGlobalStyle: DefineStyle","defineResetStyle: DefineStyle","defineLayerStyle: DefineModifierStyle","defineTextStyle: DefineModifierStyle","defineAnimationTokens: DefineAnimationTokens","defineAspectRatioTokens: DefineTokens","defineBlurTokens: DefineTokens","defineBorderTokens: DefineTokens","defineBreakpointTokens: DefineBreakpointTokens","defineColorTokens: DefineTokens","defineDurationTokens: DefineTokens","defineEasingTokens: DefineTokens","defineFontTokens: DefineTokens","defineFontSizeTokens: DefineTokens","defineFontWeightTokens: DefineTokens","defineGradientTokens: DefineTokens","defineKeyframeTokens: DefineKeyframeTokens","defineLetterSpacingTokens: DefineTokens","defineLineHeightTokens: DefineTokens","defineRadiusTokens: DefineTokens","defineShadowTokens: DefineTokens","defineSizeTokens: DefineTokens","defineSpaceTokens: DefineTokens","defineZIndexTokens: DefineTokens","defineAnimationSemanticTokens: DefineAnimationSemanticTokens","defineAspectRatioSemanticTokens: DefineSemanticTokens","defineBlurSemanticTokens: DefineSemanticTokens","defineBorderSemanticTokens: DefineSemanticTokens","defineColorSemanticTokens: DefineColorSemanticTokens","defineColorSchemeSemanticTokens: DefineColorSchemeSemanticTokens","defineDurationSemanticTokens: DefineSemanticTokens","defineEasingSemanticTokens: DefineSemanticTokens","defineFontSemanticTokens: DefineSemanticTokens","defineFontSizeSemanticTokens: DefineSemanticTokens","defineFontWeightSemanticTokens: DefineSemanticTokens","defineGradientSemanticTokens: DefineSemanticTokens","defineKeyframeSemanticTokens: DefineKeyframeTokens","defineLetterSpacingSemanticTokens: DefineSemanticTokens","defineLineHeightSemanticTokens: DefineSemanticTokens","defineRadiusSemanticTokens: DefineSemanticTokens","defineShadowSemanticTokens: DefineSemanticTokens","defineSizeSemanticTokens: DefineSemanticTokens","defineSpaceSemanticTokens: DefineSemanticTokens","defineZIndexSemanticTokens: DefineSemanticTokens","defineThemeSchemes: DefineThemeSchemes","defineTheme: DefineTheme"],"sources":["../../../../src/core/system/config.ts"],"sourcesContent":["import type {\n CSSAnimationObject,\n CSSModifierObject,\n CSSObject,\n CSSPropObject,\n CSSSlotObject,\n} from \"../css\"\nimport type {\n ComponentSlotStyle,\n ComponentStyle,\n DefineThemeAnimationTokens,\n DefineThemeBreakpointTokens,\n DefineThemeColorSchemeSemanticTokens,\n DefineThemeColorSemanticTokens,\n DefineThemeKeyframeTokens,\n DefineThemeSchemeTokens,\n DefineThemeTokens,\n ThemeConfig,\n UsageTheme,\n} from \"./index.types\"\n\ninterface DefineConfig {\n (value: ThemeConfig): ThemeConfig\n}\n\nexport const defineConfig: DefineConfig = (value) => value\n\nexport type DefineComponentStyleProps<Y extends { [key: string]: string }> = {\n [K in keyof Y]: { [V in Y[K]]: CSSObject }\n}\n\nexport type DefineComponentStyleModifiers<Y extends string> = {\n [K in Y]: CSSObject\n}\n\nexport interface DefineComponentStyle {\n <\n Y extends CSSPropObject = CSSPropObject,\n M extends CSSModifierObject = CSSModifierObject,\n D extends CSSModifierObject = CSSModifierObject,\n >(\n value: ComponentStyle<Y, M, D>,\n ): ComponentStyle<Y, M, D>\n}\n\nexport const defineComponentStyle: DefineComponentStyle = (value) => value\n\nexport type DefineComponentStyleSlotProps<\n Y extends string = string,\n M extends { [key: string]: string } = {},\n> = {\n [D in keyof M]: { [H in M[D]]: CSSSlotObject<Y> }\n}\n\nexport type DefineComponentStyleSlotModifiers<\n Y extends string = string,\n M extends string = string,\n> = {\n [D in M]: CSSSlotObject<Y>\n}\n\nexport interface DefineComponentSlotStyle {\n <\n Y extends string = string,\n M extends CSSPropObject<CSSSlotObject<Y>> = CSSPropObject<CSSSlotObject<Y>>,\n D extends CSSModifierObject<CSSSlotObject<Y>> = CSSModifierObject<\n CSSSlotObject<Y>\n >,\n H extends CSSModifierObject<CSSSlotObject<Y>> = CSSModifierObject<\n CSSSlotObject<Y>\n >,\n >(\n value: ComponentSlotStyle<Y, M, D, H>,\n ): ComponentSlotStyle<Y, M, D, H>\n}\n\nexport const defineComponentSlotStyle: DefineComponentSlotStyle = (value) =>\n value\n\ninterface DefineStyle {\n (value: CSSObject): CSSObject\n}\n\ninterface DefineModifierStyle {\n <Y extends CSSModifierObject>(value: Y): Y\n}\n\nconst defineGlobalStyle: DefineStyle = (value) => value\nconst defineResetStyle: DefineStyle = (value) => value\nconst defineLayerStyle: DefineModifierStyle = (value) => value\nconst defineTextStyle: DefineModifierStyle = (value) => value\n\nexport const defineStyles = {\n layerStyle: defineLayerStyle,\n textStyle: defineTextStyle,\n globalStyle: defineGlobalStyle,\n resetStyle: defineResetStyle,\n}\n\ninterface DefineTokens {\n <Y extends DefineThemeTokens>(value: Y): Y\n}\n\ninterface DefineAnimationTokens {\n <Y extends DefineThemeAnimationTokens>(value: Y): Y\n}\n\ninterface DefineBreakpointTokens {\n <Y extends DefineThemeBreakpointTokens>(value: Y): Y\n}\n\ninterface DefineKeyframeTokens {\n <Y extends DefineThemeKeyframeTokens>(value: Y): Y\n}\n\nconst defineAnimationTokens: DefineAnimationTokens = (value) => value\nconst defineAspectRatioTokens: DefineTokens = (value) => value\nconst defineBlurTokens: DefineTokens = (value) => value\nconst defineBorderTokens: DefineTokens = (value) => value\nconst defineBreakpointTokens: DefineBreakpointTokens = (value) => value\nconst defineColorTokens: DefineTokens = (value) => value\nconst defineDurationTokens: DefineTokens = (value) => value\nconst defineEasingTokens: DefineTokens = (value) => value\nconst defineFontTokens: DefineTokens = (value) => value\nconst defineFontSizeTokens: DefineTokens = (value) => value\nconst defineFontWeightTokens: DefineTokens = (value) => value\nconst defineGradientTokens: DefineTokens = (value) => value\nconst defineKeyframeTokens: DefineKeyframeTokens = (value) => value\nconst defineLetterSpacingTokens: DefineTokens = (value) => value\nconst defineLineHeightTokens: DefineTokens = (value) => value\nconst defineRadiusTokens: DefineTokens = (value) => value\nconst defineShadowTokens: DefineTokens = (value) => value\nconst defineSizeTokens: DefineTokens = (value) => value\nconst defineSpaceTokens: DefineTokens = (value) => value\nconst defineZIndexTokens: DefineTokens = (value) => value\n\nexport const defineTokens = {\n animations: defineAnimationTokens,\n aspectRatios: defineAspectRatioTokens,\n blurs: defineBlurTokens,\n borders: defineBorderTokens,\n breakpoints: defineBreakpointTokens,\n colors: defineColorTokens,\n durations: defineDurationTokens,\n easings: defineEasingTokens,\n fonts: defineFontTokens,\n fontSizes: defineFontSizeTokens,\n fontWeights: defineFontWeightTokens,\n gradients: defineGradientTokens,\n keyframes: defineKeyframeTokens,\n letterSpacings: defineLetterSpacingTokens,\n lineHeights: defineLineHeightTokens,\n radii: defineRadiusTokens,\n shadows: defineShadowTokens,\n sizes: defineSizeTokens,\n spaces: defineSpaceTokens,\n zIndices: defineZIndexTokens,\n}\n\ninterface DefineSemanticTokens extends DefineTokens {}\n\ninterface DefineAnimationSemanticTokens {\n <Y extends DefineThemeAnimationTokens<CSSAnimationObject | string>>(\n value: Y,\n ): Y\n}\n\ninterface DefineColorSemanticTokens {\n <Y extends DefineThemeColorSemanticTokens>(value: Y): Y\n}\n\ninterface DefineColorSchemeSemanticTokens {\n <Y extends DefineThemeColorSchemeSemanticTokens>(value: Y): Y\n}\n\nconst defineAnimationSemanticTokens: DefineAnimationSemanticTokens = (value) =>\n value\nconst defineAspectRatioSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineBlurSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineBorderSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineColorSemanticTokens: DefineColorSemanticTokens = (value) => value\nconst defineColorSchemeSemanticTokens: DefineColorSchemeSemanticTokens = (\n value,\n) => value\nconst defineDurationSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineEasingSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineFontSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineFontSizeSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineFontWeightSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineGradientSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineKeyframeSemanticTokens: DefineKeyframeTokens = (value) => value\nconst defineLetterSpacingSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineLineHeightSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineRadiusSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineShadowSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineSizeSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineSpaceSemanticTokens: DefineSemanticTokens = (value) => value\nconst defineZIndexSemanticTokens: DefineSemanticTokens = (value) => value\n\nexport const defineSemanticTokens = {\n animations: defineAnimationSemanticTokens,\n aspectRatios: defineAspectRatioSemanticTokens,\n blurs: defineBlurSemanticTokens,\n borders: defineBorderSemanticTokens,\n colors: defineColorSemanticTokens,\n colorSchemes: defineColorSchemeSemanticTokens,\n durations: defineDurationSemanticTokens,\n easings: defineEasingSemanticTokens,\n fonts: defineFontSemanticTokens,\n fontSizes: defineFontSizeSemanticTokens,\n fontWeights: defineFontWeightSemanticTokens,\n gradients: defineGradientSemanticTokens,\n keyframes: defineKeyframeSemanticTokens,\n letterSpacings: defineLetterSpacingSemanticTokens,\n lineHeights: defineLineHeightSemanticTokens,\n radii: defineRadiusSemanticTokens,\n shadows: defineShadowSemanticTokens,\n sizes: defineSizeSemanticTokens,\n spaces: defineSpaceSemanticTokens,\n zIndices: defineZIndexSemanticTokens,\n}\n\ninterface DefineThemeSchemes {\n <Y extends DefineThemeSchemeTokens>(value: Y): Y\n}\n\nexport const defineThemeSchemes: DefineThemeSchemes = (value) => value\n\ninterface DefineTheme {\n <Y extends UsageTheme>(value: Y): Y\n}\n\nexport const defineTheme: DefineTheme = (value) => value\n"],"mappings":";;AAyBA,MAAaA,gBAA8B,UAAU;AAoBrD,MAAaC,wBAA8C,UAAU;AA+BrE,MAAaC,4BAAsD,UACjE;AAUF,MAAMC,qBAAkC,UAAU;AAClD,MAAMC,oBAAiC,UAAU;AACjD,MAAMC,oBAAyC,UAAU;AACzD,MAAMC,mBAAwC,UAAU;AAExD,MAAa,eAAe;CAC1B,YAAY;CACZ,WAAW;CACX,aAAa;CACb,YAAY;CACb;AAkBD,MAAMC,yBAAgD,UAAU;AAChE,MAAMC,2BAAyC,UAAU;AACzD,MAAMC,oBAAkC,UAAU;AAClD,MAAMC,sBAAoC,UAAU;AACpD,MAAMC,0BAAkD,UAAU;AAClE,MAAMC,qBAAmC,UAAU;AACnD,MAAMC,wBAAsC,UAAU;AACtD,MAAMC,sBAAoC,UAAU;AACpD,MAAMC,oBAAkC,UAAU;AAClD,MAAMC,wBAAsC,UAAU;AACtD,MAAMC,0BAAwC,UAAU;AACxD,MAAMC,wBAAsC,UAAU;AACtD,MAAMC,wBAA8C,UAAU;AAC9D,MAAMC,6BAA2C,UAAU;AAC3D,MAAMC,0BAAwC,UAAU;AACxD,MAAMC,sBAAoC,UAAU;AACpD,MAAMC,sBAAoC,UAAU;AACpD,MAAMC,oBAAkC,UAAU;AAClD,MAAMC,qBAAmC,UAAU;AACnD,MAAMC,sBAAoC,UAAU;AAEpD,MAAa,eAAe;CAC1B,YAAY;CACZ,cAAc;CACd,OAAO;CACP,SAAS;CACT,aAAa;CACb,QAAQ;CACR,WAAW;CACX,SAAS;CACT,OAAO;CACP,WAAW;CACX,aAAa;CACb,WAAW;CACX,WAAW;CACX,gBAAgB;CAChB,aAAa;CACb,OAAO;CACP,SAAS;CACT,OAAO;CACP,QAAQ;CACR,UAAU;CACX;AAkBD,MAAMC,iCAAgE,UACpE;AACF,MAAMC,mCAAyD,UAAU;AACzE,MAAMC,4BAAkD,UAAU;AAClE,MAAMC,8BAAoD,UAAU;AACpE,MAAMC,6BAAwD,UAAU;AACxE,MAAMC,mCACJ,UACG;AACL,MAAMC,gCAAsD,UAAU;AACtE,MAAMC,8BAAoD,UAAU;AACpE,MAAMC,4BAAkD,UAAU;AAClE,MAAMC,gCAAsD,UAAU;AACtE,MAAMC,kCAAwD,UAAU;AACxE,MAAMC,gCAAsD,UAAU;AACtE,MAAMC,gCAAsD,UAAU;AACtE,MAAMC,qCAA2D,UAAU;AAC3E,MAAMC,kCAAwD,UAAU;AACxE,MAAMC,8BAAoD,UAAU;AACpE,MAAMC,8BAAoD,UAAU;AACpE,MAAMC,4BAAkD,UAAU;AAClE,MAAMC,6BAAmD,UAAU;AACnE,MAAMC,8BAAoD,UAAU;AAEpE,MAAa,uBAAuB;CAClC,YAAY;CACZ,cAAc;CACd,OAAO;CACP,SAAS;CACT,QAAQ;CACR,cAAc;CACd,WAAW;CACX,SAAS;CACT,OAAO;CACP,WAAW;CACX,aAAa;CACb,WAAW;CACX,WAAW;CACX,gBAAgB;CAChB,aAAa;CACb,OAAO;CACP,SAAS;CACT,OAAO;CACP,QAAQ;CACR,UAAU;CACX;AAMD,MAAaC,sBAA0C,UAAU;AAMjE,MAAaC,eAA4B,UAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-provider.cjs","names":["css","ThemeProvider: FC<ThemeProviderProps>","THEME_SCHEME_STORAGE_KEY","createStorageManager","useEnvironment","changeThemeScheme: ChangeThemeScheme","themeScheme","EmotionThemeProvider","GlobalStyles: FC","useSystem","Global","ThemeContext"],"sources":["../../../../src/core/system/theme-provider.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ThemeProviderProps as EmotionThemeProviderProps } from \"@emotion/react\"\nimport type { FC, PropsWithChildren } from \"react\"\nimport type { Environment } from \"./environment-provider\"\nimport type {\n ChangeThemeScheme,\n StyledTheme,\n Theme,\n ThemeConfig,\n ThemeScheme,\n UsageTheme,\n} from \"./index.types\"\nimport type { Storage } from \"./storage-manager\"\nimport {\n ThemeProvider as EmotionThemeProvider,\n Global,\n ThemeContext,\n} from \"@emotion/react\"\nimport { use, useCallback, useEffect, useMemo, useState } from \"react\"\nimport { isEmptyObject, isObject, isUndefined, merge } from \"../../utils\"\nimport { THEME_SCHEME_STORAGE_KEY } from \"../constant\"\nimport { css } from \"../css\"\nimport { useEnvironment } from \"./environment-provider\"\nimport { createStorageManager } from \"./storage-manager\"\nimport { useSystem } from \"./system-provider\"\n\nexport const getPreventTransition = (environment: Environment) => {\n const { getDocument, getWindow } = environment\n const win = getWindow()\n const doc = getDocument()\n\n if (!win || !doc) return\n\n const css = doc.createElement(\"style\")\n\n const node = doc.createTextNode(\n `*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`,\n )\n\n css.appendChild(node)\n\n doc.head.appendChild(css)\n\n return () => {\n const forceReflow = () => win.getComputedStyle(doc.body)\n\n forceReflow()\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n
|
|
1
|
+
{"version":3,"file":"theme-provider.cjs","names":["css","ThemeProvider: FC<ThemeProviderProps>","THEME_SCHEME_STORAGE_KEY","createStorageManager","useEnvironment","changeThemeScheme: ChangeThemeScheme","themeScheme","EmotionThemeProvider","GlobalStyles: FC","useSystem","Global","ThemeContext"],"sources":["../../../../src/core/system/theme-provider.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ThemeProviderProps as EmotionThemeProviderProps } from \"@emotion/react\"\nimport type { FC, PropsWithChildren } from \"react\"\nimport type { Environment } from \"./environment-provider\"\nimport type {\n ChangeThemeScheme,\n StyledTheme,\n Theme,\n ThemeConfig,\n ThemeScheme,\n UsageTheme,\n} from \"./index.types\"\nimport type { Storage } from \"./storage-manager\"\nimport {\n ThemeProvider as EmotionThemeProvider,\n Global,\n ThemeContext,\n} from \"@emotion/react\"\nimport { use, useCallback, useEffect, useMemo, useState } from \"react\"\nimport { isEmptyObject, isObject, isUndefined, merge } from \"../../utils\"\nimport { THEME_SCHEME_STORAGE_KEY } from \"../constant\"\nimport { css } from \"../css\"\nimport { useEnvironment } from \"./environment-provider\"\nimport { createStorageManager } from \"./storage-manager\"\nimport { useSystem } from \"./system-provider\"\n\nexport const getPreventTransition = (environment: Environment) => {\n const { getDocument, getWindow } = environment\n const win = getWindow()\n const doc = getDocument()\n\n if (!win || !doc) return\n\n const css = doc.createElement(\"style\")\n\n const node = doc.createTextNode(\n `*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`,\n )\n\n css.appendChild(node)\n\n doc.head.appendChild(css)\n\n return () => {\n const forceReflow = () => win.getComputedStyle(doc.body)\n\n forceReflow()\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n doc.head.removeChild(css)\n })\n })\n }\n}\n\nexport interface ThemeProviderProps\n extends\n PropsWithChildren,\n Omit<EmotionThemeProviderProps, \"children\" | \"theme\"> {\n /**\n * The config of the yamada ui.\n */\n config?: ThemeConfig\n /**\n * If `storage` is `cookie`, the cookie to use.\n * If not provided, the cookie will be set to `document.cookie`.\n */\n cookie?: string\n /**\n * The storage to use.\n * If you are using a server-side rendering library, you should use `cookie`.\n *\n * @default 'localStorage'\n */\n storage?: Storage\n /**\n * Key of value saved in storage.\n * By default, it is saved to `local storage`.\n */\n storageKey?: string\n /**\n * The theme of the yamada ui.\n */\n theme?: UsageTheme\n}\n\nexport const ThemeProvider: FC<ThemeProviderProps> = ({\n children,\n config,\n cookie,\n storage = cookie ? \"cookie\" : \"localStorage\",\n storageKey = THEME_SCHEME_STORAGE_KEY,\n theme = {},\n}) => {\n const { defaultThemeScheme = \"base\", disableTransitionOnChange } =\n config ?? {}\n const storageManager = useMemo(\n () => createStorageManager(storage, storageKey, defaultThemeScheme, cookie),\n [cookie, defaultThemeScheme, storage, storageKey],\n )\n const environment = useEnvironment()\n const [themeScheme, setThemeScheme] = useState<ThemeScheme>(\n storageManager.get(),\n )\n\n const changeThemeScheme: ChangeThemeScheme = useCallback(\n (themeScheme) => {\n const { getDocument } = environment\n const doc = getDocument()\n\n const cleanup = disableTransitionOnChange\n ? getPreventTransition(environment)\n : undefined\n\n if (doc) doc.documentElement.dataset.theme = themeScheme\n\n cleanup?.()\n\n setThemeScheme(themeScheme)\n\n storageManager.set(themeScheme)\n },\n [disableTransitionOnChange, environment, storageManager],\n )\n\n useEffect(() => {\n const themeScheme = storageManager.get()\n\n changeThemeScheme(themeScheme)\n }, [changeThemeScheme, storageManager])\n\n return (\n <EmotionThemeProvider theme={{ changeThemeScheme, themeScheme, ...theme }}>\n <GlobalStyles />\n\n {children}\n </EmotionThemeProvider>\n )\n}\n\nexport const GlobalStyles: FC = () => {\n const system = useSystem()\n const { theme } = useTheme<UsageTheme>()\n const { atRule, wrap } = system.layers\n\n const resetStyle = useMemo(() => {\n const style = theme.styles?.resetStyle\n\n if (!style || isEmptyObject(style)) return undefined\n\n return css(system, theme)(style)\n }, [system, theme])\n\n const globalStyle = useMemo(() => {\n const style = theme.styles?.globalStyle\n\n if (!style || isEmptyObject(style)) return undefined\n\n return css(system, theme)(style)\n }, [system, theme])\n\n const cssVars = useMemo(() => {\n return { \":host, :root, [data-mode]\": system.cssVars }\n }, [system])\n\n return (\n <Global\n styles={[\n atRule,\n wrap(\"tokens\", cssVars),\n wrap(\"reset\", resetStyle),\n wrap(\"global\", globalStyle),\n ]}\n />\n )\n}\n\n/**\n * `useTheme` is a custom hook that returns a function for retrieving and switching themes.\n *\n * @see https://yamada-ui.com/docs/hooks/use-theme\n */\nexport const useTheme = <Y extends UsageTheme = Theme>() => {\n const internalTheme = use(ThemeContext) as StyledTheme<Y>\n\n const theme = useMemo(() => {\n const { themeScheme } = internalTheme\n\n if (isUndefined(themeScheme) || themeScheme === \"base\") return internalTheme\n\n const nestedTheme =\n \"themeSchemes\" in internalTheme && isObject(internalTheme.themeSchemes)\n ? internalTheme.themeSchemes[themeScheme as string]\n : undefined\n\n if (!nestedTheme) return internalTheme\n\n return merge<StyledTheme<Y>>(internalTheme, nestedTheme)\n }, [internalTheme])\n\n const value = useMemo(() => {\n const { changeThemeScheme, themeScheme } = internalTheme\n\n return {\n changeThemeScheme,\n internalTheme,\n theme,\n themeScheme,\n }\n }, [theme, internalTheme])\n\n return value\n}\n"],"mappings":";;;;;;;;;;;;;;;AA2BA,MAAa,wBAAwB,gBAA6B;CAChE,MAAM,EAAE,aAAa,cAAc;CACnC,MAAM,MAAM,WAAW;CACvB,MAAM,MAAM,aAAa;AAEzB,KAAI,CAAC,OAAO,CAAC,IAAK;CAElB,MAAMA,QAAM,IAAI,cAAc,QAAQ;CAEtC,MAAM,OAAO,IAAI,eACf,2JACD;AAED,OAAI,YAAY,KAAK;AAErB,KAAI,KAAK,YAAYA,MAAI;AAEzB,cAAa;EACX,MAAM,oBAAoB,IAAI,iBAAiB,IAAI,KAAK;AAExD,eAAa;AAEb,8BAA4B;AAC1B,+BAA4B;AAC1B,QAAI,KAAK,YAAYA,MAAI;KACzB;IACF;;;AAmCN,MAAaC,iBAAyC,EACpD,UACA,QACA,QACA,UAAU,SAAS,WAAW,gBAC9B,aAAaC,2CACb,QAAQ,EAAE,OACN;CACJ,MAAM,EAAE,qBAAqB,QAAQ,8BACnC,UAAU,EAAE;CACd,MAAM,0CACEC,6CAAqB,SAAS,YAAY,oBAAoB,OAAO,EAC3E;EAAC;EAAQ;EAAoB;EAAS;EAAW,CAClD;CACD,MAAM,cAAcC,6CAAgB;CACpC,MAAM,CAAC,aAAa,sCAClB,eAAe,KAAK,CACrB;CAED,MAAMC,4CACH,kBAAgB;EACf,MAAM,EAAE,gBAAgB;EACxB,MAAM,MAAM,aAAa;EAEzB,MAAM,UAAU,4BACZ,qBAAqB,YAAY,GACjC;AAEJ,MAAI,IAAK,KAAI,gBAAgB,QAAQ,QAAQC;AAE7C,aAAW;AAEX,iBAAeA,cAAY;AAE3B,iBAAe,IAAIA,cAAY;IAEjC;EAAC;EAA2B;EAAa;EAAe,CACzD;AAED,4BAAgB;AAGd,oBAFoB,eAAe,KAAK,CAEV;IAC7B,CAAC,mBAAmB,eAAe,CAAC;AAEvC,QACE,4CAACC;EAAqB,OAAO;GAAE;GAAmB;GAAa,GAAG;GAAO;aACvE,2CAAC,iBAAe,EAEf;GACoB;;AAI3B,MAAaC,qBAAyB;CACpC,MAAM,SAASC,mCAAW;CAC1B,MAAM,EAAE,UAAU,UAAsB;CACxC,MAAM,EAAE,QAAQ,SAAS,OAAO;CAEhC,MAAM,sCAA2B;EAC/B,MAAM,QAAQ,MAAM,QAAQ;AAE5B,MAAI,CAAC,8DAAuB,MAAM,CAAE,QAAO;AAE3C,SAAOT,gBAAI,QAAQ,MAAM,CAAC,MAAM;IAC/B,CAAC,QAAQ,MAAM,CAAC;CAEnB,MAAM,uCAA4B;EAChC,MAAM,QAAQ,MAAM,QAAQ;AAE5B,MAAI,CAAC,8DAAuB,MAAM,CAAE,QAAO;AAE3C,SAAOA,gBAAI,QAAQ,MAAM,CAAC,MAAM;IAC/B,CAAC,QAAQ,MAAM,CAAC;AAMnB,QACE,2CAACU,yBACC,QAAQ;EACN;EACA,KAAK,mCARmB;AAC5B,UAAO,EAAE,6BAA6B,OAAO,SAAS;KACrD,CAAC,OAAO,CAAC,CAMiB;EACvB,KAAK,SAAS,WAAW;EACzB,KAAK,UAAU,YAAY;EAC5B,GACD;;;;;;;AASN,MAAa,iBAA+C;CAC1D,MAAM,+BAAoBC,4BAAa;CAEvC,MAAM,iCAAsB;EAC1B,MAAM,EAAE,gBAAgB;AAExB,yDAAgB,YAAY,IAAI,gBAAgB,OAAQ,QAAO;EAE/D,MAAM,cACJ,kBAAkB,iEAA0B,cAAc,aAAa,GACnE,cAAc,aAAa,eAC3B;AAEN,MAAI,CAAC,YAAa,QAAO;AAEzB,sDAA6B,eAAe,YAAY;IACvD,CAAC,cAAc,CAAC;AAanB,iCAX4B;EAC1B,MAAM,EAAE,mBAAmB,gBAAgB;AAE3C,SAAO;GACL;GACA;GACA;GACA;GACD;IACA,CAAC,OAAO,cAAc,CAAC"}
|
|
@@ -71,7 +71,7 @@ const { DescendantsContext: ComboboxDescendantsContext, useDescendant: useCombob
|
|
|
71
71
|
const [ComboboxContext, useComboboxContext] = require_context.createContext({ name: "ComboboxContext" });
|
|
72
72
|
const [ComboboxGroupContext, useComboboxGroupContext] = require_context.createContext({ name: "ComboboxGroupContext" });
|
|
73
73
|
const useCombobox = (props = {}) => {
|
|
74
|
-
const [popoverProps, { "aria-label": ariaLabelProp, "aria-labelledby": ariaLabelledbyProp, closeOnSelect: closeOnSelectProp = true, defaultOpen, disabled, initialFocusValue, open: openProp, openOnClick = true, openOnEnter = true, openOnSpace = true, readOnly, selectFocusRef, selectOnSpace = true, onChange: onChangeProp, onClose: onCloseProp, onOpen: onOpenProp, ...rest }] = require_use_popover.usePopoverProps(props, [
|
|
74
|
+
const [{ matchWidth = true, ...popoverProps }, { "aria-label": ariaLabelProp, "aria-labelledby": ariaLabelledbyProp, closeOnSelect: closeOnSelectProp = true, defaultOpen, disabled, initialFocusValue, open: openProp, openOnClick = true, openOnEnter = true, openOnSpace = true, readOnly, selectFocusRef, selectOnSpace = true, onChange: onChangeProp, onClose: onCloseProp, onOpen: onOpenProp, ...rest }] = require_use_popover.usePopoverProps(props, [
|
|
75
75
|
"disabled",
|
|
76
76
|
"open",
|
|
77
77
|
"defaultOpen",
|
|
@@ -94,7 +94,7 @@ const useCombobox = (props = {}) => {
|
|
|
94
94
|
const activeDescendant = (0, react.useRef)(null);
|
|
95
95
|
const mergedPopoverProps = (0, react.useMemo)(() => ({
|
|
96
96
|
autoFocus: false,
|
|
97
|
-
matchWidth
|
|
97
|
+
matchWidth,
|
|
98
98
|
openOnClick: false,
|
|
99
99
|
...popoverProps,
|
|
100
100
|
disabled: !interactive,
|
|
@@ -103,6 +103,7 @@ const useCombobox = (props = {}) => {
|
|
|
103
103
|
onOpen
|
|
104
104
|
}), [
|
|
105
105
|
interactive,
|
|
106
|
+
matchWidth,
|
|
106
107
|
onClose,
|
|
107
108
|
onOpen,
|
|
108
109
|
open,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["getValidChildren","isSomeElement","findChild","type","props","items","rest","label","index","createDescendants","createContext","usePopoverProps","useEnvironment","useDisclosure","isComposing","getTriggerProps: PropGetter","mergeRefs","getItemProps: PropGetter"],"sources":["../../../../src/hooks/use-combobox/index.tsx"],"sourcesContent":["\"use client\"\n\nimport type {\n JSXElementConstructor,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n RefObject,\n} from \"react\"\nimport type { UsePopoverProps } from \"../../components/popover\"\nimport type { HTMLProps, PropGetter, SimpleDirection } from \"../../core\"\nimport type { Descendant } from \"../use-descendants\"\nimport type { UseDisclosureProps } from \"../use-disclosure\"\nimport { useCallback, useId, useMemo, useRef } from \"react\"\nimport scrollIntoView from \"scroll-into-view-if-needed\"\nimport { usePopoverProps } from \"../../components/popover\"\nimport { useEnvironment } from \"../../core\"\nimport {\n ariaAttr,\n createContext,\n cx,\n dataAttr,\n findChild,\n getValidChildren,\n handlerAll,\n isComposing,\n isSomeElement,\n isUndefined,\n mergeRefs,\n runKeyAction,\n useUpdateEffect,\n} from \"../../utils\"\nimport { createDescendants } from \"../use-descendants\"\nimport { useDisclosure } from \"../use-disclosure\"\n\ninterface ComboboxSharedItem extends Omit<HTMLProps, \"children\" | \"value\"> {\n label: ReactNode\n}\n\nexport interface ComboboxItemWithValue extends ComboboxSharedItem {\n query?: string\n value?: string\n}\n\nexport interface ComboboxItemWithItems extends ComboboxSharedItem {\n items: ComboboxItemWithValue[]\n}\n\nexport type ComboboxItem = ComboboxItemWithItems | ComboboxItemWithValue\n\nexport interface CreateComboboxItemOptions {\n Group: JSXElementConstructor<any>\n Label: JSXElementConstructor<any>\n Option: JSXElementConstructor<any>\n}\n\nexport const createComboboxItem = (\n children: ReactNode,\n { Group, Label, Option }: CreateComboboxItemOptions,\n) => {\n const validChildren = getValidChildren(children)\n\n return validChildren\n .filter(\n ({ type }) => isSomeElement(type, Option) || isSomeElement(type, Group),\n )\n .map(({ type, props }) => {\n if (isSomeElement(type, Option)) {\n return { ...props, label: props.children }\n } else {\n const validChildren = getValidChildren(props.children)\n const label = findChild(validChildren, Label)\n\n return {\n ...props,\n items: validChildren\n .filter(({ type }) => isSomeElement(type, Option))\n .map(({ props }) => ({ ...props, label: props.children })),\n label: label?.props.children ?? props.label,\n }\n }\n })\n}\n\nexport interface CreateComboboxChildrenOptions {\n Group: JSXElementConstructor<any>\n Option: JSXElementConstructor<any>\n Empty?: JSXElementConstructor<any>\n}\n\nexport const createComboboxChildren = (\n items: ComboboxItem[],\n { Empty, Group, Option }: CreateComboboxChildrenOptions,\n) => {\n return items.map((item, index) => {\n if (\"data-empty\" in item && Empty) {\n const { label, ...rest } = item\n\n return (\n <Empty key={index} {...rest}>\n {label}\n </Empty>\n )\n } else if (\"items\" in item) {\n const { items = [], label, ...rest } = item\n\n return (\n <Group key={index} label={label} {...rest}>\n {items.map(({ label, ...rest }, index) => (\n <Option key={index} {...rest}>\n {label}\n </Option>\n ))}\n </Group>\n )\n } else {\n const { label, ...rest } = item\n\n return (\n <Option key={index} {...rest}>\n {label}\n </Option>\n )\n }\n })\n}\n\nexport interface ComboboxDescendantProps {\n id: string\n closeOnSelect?: boolean\n value?: string\n}\nexport type ComboboxDescendant = Descendant<\n HTMLDivElement,\n ComboboxDescendantProps\n>\n\nconst {\n DescendantsContext: ComboboxDescendantsContext,\n useDescendant: useComboboxDescendant,\n useDescendantRegister: useComboboxDescendantRegister,\n useDescendants: useComboboxDescendants,\n} = createDescendants<HTMLDivElement, ComboboxDescendantProps>()\n\nexport {\n ComboboxDescendantsContext,\n useComboboxDescendant,\n useComboboxDescendantRegister,\n useComboboxDescendants,\n}\n\ninterface ComboboxContext extends Pick<\n UseComboboxReturn,\n \"onActiveDescendant\" | \"onClose\" | \"onSelect\"\n> {}\n\nconst [ComboboxContext, useComboboxContext] = createContext<ComboboxContext>({\n name: \"ComboboxContext\",\n})\n\ninterface ComboboxGroupContext extends Pick<\n UseComboboxGroupReturn,\n \"getLabelProps\"\n> {}\n\nconst [ComboboxGroupContext, useComboboxGroupContext] =\n createContext<ComboboxGroupContext>({\n name: \"ComboboxGroupContext\",\n })\n\nexport {\n ComboboxContext,\n ComboboxGroupContext,\n useComboboxContext,\n useComboboxGroupContext,\n}\n\nexport interface UseComboboxProps\n extends\n Omit<HTMLProps, \"onChange\">,\n Omit<UseDisclosureProps, \"timing\">,\n Omit<\n UsePopoverProps,\n \"autoFocus\" | \"initialFocusRef\" | \"modal\" | \"transform\" | \"updateRef\"\n > {\n /**\n * If `true`, the list element will be closed when value is selected.\n *\n * @default true\n */\n closeOnSelect?: boolean\n /**\n * If `true`, the combobox will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The value to focus on when the combobox is opened.\n */\n initialFocusValue?: string\n /**\n * If `true`, the combobox will be opened when click on the field.\n *\n * @default true\n */\n openOnClick?: boolean\n /**\n * If `true`, the combobox will be opened when enter is pressed.\n *\n * @default true\n */\n openOnEnter?: boolean\n /**\n * If `true`, the combobox will be opened when space is pressed.\n *\n * @default true\n */\n openOnSpace?: boolean\n /**\n * If `true`, the combobox will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The `ref` of the element that should receive focus when selected.\n */\n selectFocusRef?: RefObject<HTMLElement | null>\n /**\n * If `true`, the item will be selected when space is pressed.\n *\n * @default true\n */\n selectOnSpace?: boolean\n /**\n * The callback invoked when value is selected.\n */\n onChange?: (value: string) => void\n}\n\nexport const useCombobox = (props: UseComboboxProps = {}) => {\n const [\n popoverProps,\n {\n \"aria-label\": ariaLabelProp,\n \"aria-labelledby\": ariaLabelledbyProp,\n closeOnSelect: closeOnSelectProp = true,\n defaultOpen,\n disabled,\n initialFocusValue,\n open: openProp,\n openOnClick = true,\n openOnEnter = true,\n openOnSpace = true,\n readOnly,\n selectFocusRef,\n selectOnSpace = true,\n onChange: onChangeProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n ...rest\n },\n ] = usePopoverProps(props, [\n \"disabled\",\n \"open\",\n \"defaultOpen\",\n \"onOpen\",\n \"onClose\",\n \"openOnClick\",\n ])\n const { getWindow } = useEnvironment()\n const interactive = !(readOnly || disabled)\n const triggerRef = useRef<HTMLDivElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n const contentId = useId()\n const descendants = useComboboxDescendants()\n const { open, onClose, onOpen } = useDisclosure({\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const activeDescendant = useRef<ComboboxDescendant | null>(null)\n const mergedPopoverProps = useMemo<UsePopoverProps>(\n () => ({\n autoFocus: false,\n matchWidth: true,\n openOnClick: false,\n ...popoverProps,\n disabled: !interactive,\n open,\n onClose,\n onOpen,\n }),\n [interactive, onClose, onOpen, open, popoverProps],\n )\n\n const onSelect = useCallback(\n (value?: string, closeOnSelect = closeOnSelectProp) => {\n const ref = selectFocusRef ?? triggerRef\n\n ref.current?.focus()\n\n if (!interactive || isUndefined(value)) return\n\n onChangeProp?.(value)\n\n if (!closeOnSelect) return\n\n onClose()\n },\n [closeOnSelectProp, interactive, onChangeProp, onClose, selectFocusRef],\n )\n\n const onScrollIntoView = useCallback(\n (descendant?: ComboboxDescendant, block: SimpleDirection = \"start\") => {\n if (!contentRef.current || !descendant) return\n\n const style = getWindow()?.getComputedStyle(contentRef.current)\n const padding =\n block === \"start\" ? style?.paddingBlockStart : style?.paddingBlockEnd\n const value = parseInt(padding ?? \"0px\")\n\n scrollIntoView(descendant.node, {\n behavior: (actions) =>\n actions.forEach(({ el, top }) => {\n el.scrollTop = block === \"start\" ? top - value : top + value\n }),\n block,\n boundary: contentRef.current,\n inline: \"nearest\",\n scrollMode: \"if-needed\",\n })\n },\n [getWindow],\n )\n\n const onActiveDescendant = useCallback(\n (descendant?: ComboboxDescendant) => {\n if (!triggerRef.current || !descendant || disabled) return\n\n triggerRef.current.setAttribute(\"aria-activedescendant\", descendant.id)\n\n activeDescendant.current = descendant\n\n descendants.active(descendant)\n },\n [descendants, disabled],\n )\n\n const onOpenWithActiveDescendant = useCallback(\n (\n getFallbackDescendant: () => ComboboxDescendant | undefined,\n block: SimpleDirection = \"start\",\n ) => {\n onOpen()\n\n setTimeout(() => {\n if (!initialFocusValue) {\n const descendant = getFallbackDescendant()\n\n onActiveDescendant(descendant)\n onScrollIntoView(descendant, block)\n } else {\n const values = descendants.values()\n const descendant =\n values.find(({ value }) => initialFocusValue === value) ??\n getFallbackDescendant()\n\n onActiveDescendant(descendant)\n onScrollIntoView(descendant, block)\n }\n })\n },\n [\n descendants,\n initialFocusValue,\n onActiveDescendant,\n onOpen,\n onScrollIntoView,\n ],\n )\n\n const onClick = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n\n ev.preventDefault()\n\n if (!open) {\n if (openOnClick)\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n onClose()\n }\n },\n [\n descendants,\n disabled,\n onClose,\n onOpenWithActiveDescendant,\n open,\n openOnClick,\n ],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLDivElement>) => {\n if (disabled || isComposing(ev)) return\n\n runKeyAction(\n ev,\n {\n ArrowDown: (ev) => {\n ev.preventDefault()\n\n if (!open) {\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else if (activeDescendant.current) {\n const descendant = descendants.enabledNextValue(\n activeDescendant.current,\n )\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(\n descendant,\n descendant?.recurred ? \"start\" : \"end\",\n )\n } else {\n const descendant = descendants.enabledFirstValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant)\n }\n },\n ArrowUp: (ev) => {\n ev.preventDefault()\n\n if (!open) {\n onOpenWithActiveDescendant(descendants.enabledLastValue, \"end\")\n } else if (activeDescendant.current) {\n const descendant = descendants.enabledPrevValue(\n activeDescendant.current,\n )\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(\n descendant,\n descendant?.recurred ? \"end\" : \"start\",\n )\n } else {\n const descendant = descendants.enabledLastValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant, \"end\")\n }\n },\n End: (ev) => {\n ev.preventDefault()\n\n if (!open) return\n\n const descendant = descendants.enabledLastValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant, \"end\")\n },\n Enter: (ev) => {\n if (!open) {\n if (!openOnEnter) return\n\n ev.preventDefault()\n\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n if (!activeDescendant.current) return\n\n ev.preventDefault()\n\n const { closeOnSelect, value } = activeDescendant.current\n\n onSelect(value, closeOnSelect)\n }\n },\n Home: (ev) => {\n if (!open) return\n\n ev.preventDefault()\n\n const descendant = descendants.enabledFirstValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant)\n },\n Space: (ev) => {\n if (!open) {\n if (!openOnSpace) return\n\n ev.preventDefault()\n\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n if (!activeDescendant.current || !selectOnSpace) return\n\n ev.preventDefault()\n\n const { closeOnSelect, value } = activeDescendant.current\n\n onSelect(value, closeOnSelect)\n }\n },\n },\n { preventDefault: false },\n )\n },\n [\n disabled,\n open,\n onOpenWithActiveDescendant,\n descendants,\n onActiveDescendant,\n onScrollIntoView,\n openOnEnter,\n onSelect,\n openOnSpace,\n selectOnSpace,\n ],\n )\n\n useUpdateEffect(() => {\n if (open) return\n\n activeDescendant.current = null\n }, [open])\n\n const getTriggerProps: PropGetter = useCallback(\n ({\n ref,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n ...props\n } = {}) => ({\n \"aria-controls\": open ? contentId : undefined,\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-expanded\": open,\n \"aria-haspopup\": \"listbox\",\n \"aria-label\": ariaLabel || ariaLabelProp,\n \"aria-labelledby\": cx(ariaLabelledby, ariaLabelledbyProp),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n role: \"combobox\",\n tabIndex: interactive ? 0 : -1,\n ...rest,\n ...props,\n ref: mergeRefs(ref, rest.ref, triggerRef),\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n onKeyDown: handlerAll(props.onKeyDown, rest.onKeyDown, onKeyDown),\n }),\n [\n open,\n contentId,\n interactive,\n ariaLabelledbyProp,\n disabled,\n readOnly,\n ariaLabelProp,\n rest,\n onClick,\n onKeyDown,\n ],\n )\n\n const getContentProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n id: contentId,\n role: \"listbox\",\n ...props,\n ref: mergeRefs(ref, contentRef),\n onKeyDown: handlerAll(props.onKeyDown),\n }),\n [contentId],\n )\n\n const getSeparatorProps: PropGetter = useCallback(\n (props) => ({ role: \"separator\", ...props }),\n [],\n )\n\n return {\n activeDescendant,\n descendants,\n interactive,\n open,\n getContentProps,\n getSeparatorProps,\n getTriggerProps,\n popoverProps: mergedPopoverProps,\n onActiveDescendant,\n onClose,\n onOpen,\n onOpenWithActiveDescendant,\n onScrollIntoView,\n onSelect,\n }\n}\n\nexport type UseComboboxReturn = ReturnType<typeof useCombobox>\n\nexport interface UseComboboxGroupProps extends HTMLProps {}\n\nexport const useComboboxGroup = ({\n \"aria-labelledby\": ariaLabelledbyProp,\n ...rest\n}: UseComboboxGroupProps = {}) => {\n const labelId = useId()\n\n const getGroupProps: PropGetter = useCallback(\n ({ \"aria-labelledby\": ariaLabelledby, ...props } = {}) => ({\n \"aria-labelledby\": cx(ariaLabelledbyProp, ariaLabelledby, labelId),\n role: \"group\",\n ...rest,\n ...props,\n }),\n [ariaLabelledbyProp, labelId, rest],\n )\n\n const getLabelProps: PropGetter<\"span\"> = useCallback(\n (props) => ({ id: labelId, role: \"presentation\", ...props }),\n [labelId],\n )\n\n return { getGroupProps, getLabelProps }\n}\n\nexport type UseComboboxGroupReturn = ReturnType<typeof useComboboxGroup>\n\nexport interface UseComboboxItemProps extends HTMLProps {\n /**\n * If `true`, the item will be closed when selected.\n */\n closeOnSelect?: boolean\n /**\n * If `true`, the item will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * If `true`, the item will be selected.\n */\n selected?: boolean\n /**\n * The value of the item.\n */\n value?: string\n}\n\nexport const useComboboxItem = ({\n id,\n \"aria-disabled\": ariaDisabled,\n \"data-disabled\": dataDisabled,\n closeOnSelect,\n disabled = false,\n selected = false,\n value,\n ...rest\n}: UseComboboxItemProps = {}) => {\n const uuid = useId()\n const itemRef = useRef<HTMLDivElement>(null)\n const { onActiveDescendant, onClose, onSelect } = useComboboxContext()\n\n id ??= uuid\n\n const { descendants, register } = useComboboxDescendant({\n id,\n closeOnSelect,\n disabled,\n value,\n })\n\n const onActive = useCallback(() => {\n if (disabled) return\n\n const current = descendants.value(itemRef.current)\n\n onActiveDescendant(current)\n }, [descendants, disabled, onActiveDescendant])\n\n const onClick = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n ev.preventDefault()\n\n if (disabled) return\n\n onSelect(value, closeOnSelect)\n },\n [closeOnSelect, disabled, onSelect, value],\n )\n\n const getItemProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n id,\n \"aria-disabled\": ariaDisabled ?? ariaAttr(disabled),\n \"aria-selected\": selected,\n \"data-disabled\": dataDisabled ?? dataAttr(disabled),\n \"data-selected\": dataAttr(selected),\n \"data-value\": value,\n role: \"option\",\n tabIndex: -1,\n ...rest,\n ...props,\n ref: mergeRefs(ref, rest.ref, itemRef, register),\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n onMouseMove: handlerAll(props.onMouseMove, rest.onMouseMove, onActive),\n }),\n [\n id,\n ariaDisabled,\n disabled,\n selected,\n dataDisabled,\n value,\n rest,\n register,\n onClick,\n onActive,\n ],\n )\n\n const getIndicatorProps: PropGetter = useCallback(\n ({ style, ...props } = {}) => ({\n style: { opacity: selected ? 1 : 0, ...style },\n ...props,\n }),\n [selected],\n )\n\n return {\n descendants,\n disabled,\n selected,\n getIndicatorProps,\n getItemProps,\n onActiveDescendant,\n onClose,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["getValidChildren","isSomeElement","findChild","type","props","items","rest","label","index","createDescendants","createContext","usePopoverProps","useEnvironment","useDisclosure","isComposing","getTriggerProps: PropGetter","mergeRefs","getItemProps: PropGetter"],"sources":["../../../../src/hooks/use-combobox/index.tsx"],"sourcesContent":["\"use client\"\n\nimport type {\n JSXElementConstructor,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n RefObject,\n} from \"react\"\nimport type { UsePopoverProps } from \"../../components/popover\"\nimport type { HTMLProps, PropGetter, SimpleDirection } from \"../../core\"\nimport type { Descendant } from \"../use-descendants\"\nimport type { UseDisclosureProps } from \"../use-disclosure\"\nimport { useCallback, useId, useMemo, useRef } from \"react\"\nimport scrollIntoView from \"scroll-into-view-if-needed\"\nimport { usePopoverProps } from \"../../components/popover\"\nimport { useEnvironment } from \"../../core\"\nimport {\n ariaAttr,\n createContext,\n cx,\n dataAttr,\n findChild,\n getValidChildren,\n handlerAll,\n isComposing,\n isSomeElement,\n isUndefined,\n mergeRefs,\n runKeyAction,\n useUpdateEffect,\n} from \"../../utils\"\nimport { createDescendants } from \"../use-descendants\"\nimport { useDisclosure } from \"../use-disclosure\"\n\ninterface ComboboxSharedItem extends Omit<HTMLProps, \"children\" | \"value\"> {\n label: ReactNode\n}\n\nexport interface ComboboxItemWithValue extends ComboboxSharedItem {\n query?: string\n value?: string\n}\n\nexport interface ComboboxItemWithItems extends ComboboxSharedItem {\n items: ComboboxItemWithValue[]\n}\n\nexport type ComboboxItem = ComboboxItemWithItems | ComboboxItemWithValue\n\nexport interface CreateComboboxItemOptions {\n Group: JSXElementConstructor<any>\n Label: JSXElementConstructor<any>\n Option: JSXElementConstructor<any>\n}\n\nexport const createComboboxItem = (\n children: ReactNode,\n { Group, Label, Option }: CreateComboboxItemOptions,\n) => {\n const validChildren = getValidChildren(children)\n\n return validChildren\n .filter(\n ({ type }) => isSomeElement(type, Option) || isSomeElement(type, Group),\n )\n .map(({ type, props }) => {\n if (isSomeElement(type, Option)) {\n return { ...props, label: props.children }\n } else {\n const validChildren = getValidChildren(props.children)\n const label = findChild(validChildren, Label)\n\n return {\n ...props,\n items: validChildren\n .filter(({ type }) => isSomeElement(type, Option))\n .map(({ props }) => ({ ...props, label: props.children })),\n label: label?.props.children ?? props.label,\n }\n }\n })\n}\n\nexport interface CreateComboboxChildrenOptions {\n Group: JSXElementConstructor<any>\n Option: JSXElementConstructor<any>\n Empty?: JSXElementConstructor<any>\n}\n\nexport const createComboboxChildren = (\n items: ComboboxItem[],\n { Empty, Group, Option }: CreateComboboxChildrenOptions,\n) => {\n return items.map((item, index) => {\n if (\"data-empty\" in item && Empty) {\n const { label, ...rest } = item\n\n return (\n <Empty key={index} {...rest}>\n {label}\n </Empty>\n )\n } else if (\"items\" in item) {\n const { items = [], label, ...rest } = item\n\n return (\n <Group key={index} label={label} {...rest}>\n {items.map(({ label, ...rest }, index) => (\n <Option key={index} {...rest}>\n {label}\n </Option>\n ))}\n </Group>\n )\n } else {\n const { label, ...rest } = item\n\n return (\n <Option key={index} {...rest}>\n {label}\n </Option>\n )\n }\n })\n}\n\nexport interface ComboboxDescendantProps {\n id: string\n closeOnSelect?: boolean\n value?: string\n}\nexport type ComboboxDescendant = Descendant<\n HTMLDivElement,\n ComboboxDescendantProps\n>\n\nconst {\n DescendantsContext: ComboboxDescendantsContext,\n useDescendant: useComboboxDescendant,\n useDescendantRegister: useComboboxDescendantRegister,\n useDescendants: useComboboxDescendants,\n} = createDescendants<HTMLDivElement, ComboboxDescendantProps>()\n\nexport {\n ComboboxDescendantsContext,\n useComboboxDescendant,\n useComboboxDescendantRegister,\n useComboboxDescendants,\n}\n\ninterface ComboboxContext extends Pick<\n UseComboboxReturn,\n \"onActiveDescendant\" | \"onClose\" | \"onSelect\"\n> {}\n\nconst [ComboboxContext, useComboboxContext] = createContext<ComboboxContext>({\n name: \"ComboboxContext\",\n})\n\ninterface ComboboxGroupContext extends Pick<\n UseComboboxGroupReturn,\n \"getLabelProps\"\n> {}\n\nconst [ComboboxGroupContext, useComboboxGroupContext] =\n createContext<ComboboxGroupContext>({\n name: \"ComboboxGroupContext\",\n })\n\nexport {\n ComboboxContext,\n ComboboxGroupContext,\n useComboboxContext,\n useComboboxGroupContext,\n}\n\nexport interface UseComboboxProps\n extends\n Omit<HTMLProps, \"onChange\">,\n Omit<UseDisclosureProps, \"timing\">,\n Omit<\n UsePopoverProps,\n \"autoFocus\" | \"initialFocusRef\" | \"modal\" | \"transform\" | \"updateRef\"\n > {\n /**\n * If `true`, the list element will be closed when value is selected.\n *\n * @default true\n */\n closeOnSelect?: boolean\n /**\n * If `true`, the combobox will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The value to focus on when the combobox is opened.\n */\n initialFocusValue?: string\n /**\n * If `true`, the combobox will be opened when click on the field.\n *\n * @default true\n */\n openOnClick?: boolean\n /**\n * If `true`, the combobox will be opened when enter is pressed.\n *\n * @default true\n */\n openOnEnter?: boolean\n /**\n * If `true`, the combobox will be opened when space is pressed.\n *\n * @default true\n */\n openOnSpace?: boolean\n /**\n * If `true`, the combobox will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The `ref` of the element that should receive focus when selected.\n */\n selectFocusRef?: RefObject<HTMLElement | null>\n /**\n * If `true`, the item will be selected when space is pressed.\n *\n * @default true\n */\n selectOnSpace?: boolean\n /**\n * The callback invoked when value is selected.\n */\n onChange?: (value: string) => void\n}\n\nexport const useCombobox = (props: UseComboboxProps = {}) => {\n const [\n { matchWidth = true, ...popoverProps },\n {\n \"aria-label\": ariaLabelProp,\n \"aria-labelledby\": ariaLabelledbyProp,\n closeOnSelect: closeOnSelectProp = true,\n defaultOpen,\n disabled,\n initialFocusValue,\n open: openProp,\n openOnClick = true,\n openOnEnter = true,\n openOnSpace = true,\n readOnly,\n selectFocusRef,\n selectOnSpace = true,\n onChange: onChangeProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n ...rest\n },\n ] = usePopoverProps(props, [\n \"disabled\",\n \"open\",\n \"defaultOpen\",\n \"onOpen\",\n \"onClose\",\n \"openOnClick\",\n ])\n const { getWindow } = useEnvironment()\n const interactive = !(readOnly || disabled)\n const triggerRef = useRef<HTMLDivElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n const contentId = useId()\n const descendants = useComboboxDescendants()\n const { open, onClose, onOpen } = useDisclosure({\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const activeDescendant = useRef<ComboboxDescendant | null>(null)\n const mergedPopoverProps = useMemo<UsePopoverProps>(\n () => ({\n autoFocus: false,\n matchWidth,\n openOnClick: false,\n ...popoverProps,\n disabled: !interactive,\n open,\n onClose,\n onOpen,\n }),\n [interactive, matchWidth, onClose, onOpen, open, popoverProps],\n )\n\n const onSelect = useCallback(\n (value?: string, closeOnSelect = closeOnSelectProp) => {\n const ref = selectFocusRef ?? triggerRef\n\n ref.current?.focus()\n\n if (!interactive || isUndefined(value)) return\n\n onChangeProp?.(value)\n\n if (!closeOnSelect) return\n\n onClose()\n },\n [closeOnSelectProp, interactive, onChangeProp, onClose, selectFocusRef],\n )\n\n const onScrollIntoView = useCallback(\n (descendant?: ComboboxDescendant, block: SimpleDirection = \"start\") => {\n if (!contentRef.current || !descendant) return\n\n const style = getWindow()?.getComputedStyle(contentRef.current)\n const padding =\n block === \"start\" ? style?.paddingBlockStart : style?.paddingBlockEnd\n const value = parseInt(padding ?? \"0px\")\n\n scrollIntoView(descendant.node, {\n behavior: (actions) =>\n actions.forEach(({ el, top }) => {\n el.scrollTop = block === \"start\" ? top - value : top + value\n }),\n block,\n boundary: contentRef.current,\n inline: \"nearest\",\n scrollMode: \"if-needed\",\n })\n },\n [getWindow],\n )\n\n const onActiveDescendant = useCallback(\n (descendant?: ComboboxDescendant) => {\n if (!triggerRef.current || !descendant || disabled) return\n\n triggerRef.current.setAttribute(\"aria-activedescendant\", descendant.id)\n\n activeDescendant.current = descendant\n\n descendants.active(descendant)\n },\n [descendants, disabled],\n )\n\n const onOpenWithActiveDescendant = useCallback(\n (\n getFallbackDescendant: () => ComboboxDescendant | undefined,\n block: SimpleDirection = \"start\",\n ) => {\n onOpen()\n\n setTimeout(() => {\n if (!initialFocusValue) {\n const descendant = getFallbackDescendant()\n\n onActiveDescendant(descendant)\n onScrollIntoView(descendant, block)\n } else {\n const values = descendants.values()\n const descendant =\n values.find(({ value }) => initialFocusValue === value) ??\n getFallbackDescendant()\n\n onActiveDescendant(descendant)\n onScrollIntoView(descendant, block)\n }\n })\n },\n [\n descendants,\n initialFocusValue,\n onActiveDescendant,\n onOpen,\n onScrollIntoView,\n ],\n )\n\n const onClick = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n\n ev.preventDefault()\n\n if (!open) {\n if (openOnClick)\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n onClose()\n }\n },\n [\n descendants,\n disabled,\n onClose,\n onOpenWithActiveDescendant,\n open,\n openOnClick,\n ],\n )\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLDivElement>) => {\n if (disabled || isComposing(ev)) return\n\n runKeyAction(\n ev,\n {\n ArrowDown: (ev) => {\n ev.preventDefault()\n\n if (!open) {\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else if (activeDescendant.current) {\n const descendant = descendants.enabledNextValue(\n activeDescendant.current,\n )\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(\n descendant,\n descendant?.recurred ? \"start\" : \"end\",\n )\n } else {\n const descendant = descendants.enabledFirstValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant)\n }\n },\n ArrowUp: (ev) => {\n ev.preventDefault()\n\n if (!open) {\n onOpenWithActiveDescendant(descendants.enabledLastValue, \"end\")\n } else if (activeDescendant.current) {\n const descendant = descendants.enabledPrevValue(\n activeDescendant.current,\n )\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(\n descendant,\n descendant?.recurred ? \"end\" : \"start\",\n )\n } else {\n const descendant = descendants.enabledLastValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant, \"end\")\n }\n },\n End: (ev) => {\n ev.preventDefault()\n\n if (!open) return\n\n const descendant = descendants.enabledLastValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant, \"end\")\n },\n Enter: (ev) => {\n if (!open) {\n if (!openOnEnter) return\n\n ev.preventDefault()\n\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n if (!activeDescendant.current) return\n\n ev.preventDefault()\n\n const { closeOnSelect, value } = activeDescendant.current\n\n onSelect(value, closeOnSelect)\n }\n },\n Home: (ev) => {\n if (!open) return\n\n ev.preventDefault()\n\n const descendant = descendants.enabledFirstValue()\n\n onActiveDescendant(descendant)\n\n onScrollIntoView(descendant)\n },\n Space: (ev) => {\n if (!open) {\n if (!openOnSpace) return\n\n ev.preventDefault()\n\n onOpenWithActiveDescendant(descendants.enabledFirstValue)\n } else {\n if (!activeDescendant.current || !selectOnSpace) return\n\n ev.preventDefault()\n\n const { closeOnSelect, value } = activeDescendant.current\n\n onSelect(value, closeOnSelect)\n }\n },\n },\n { preventDefault: false },\n )\n },\n [\n disabled,\n open,\n onOpenWithActiveDescendant,\n descendants,\n onActiveDescendant,\n onScrollIntoView,\n openOnEnter,\n onSelect,\n openOnSpace,\n selectOnSpace,\n ],\n )\n\n useUpdateEffect(() => {\n if (open) return\n\n activeDescendant.current = null\n }, [open])\n\n const getTriggerProps: PropGetter = useCallback(\n ({\n ref,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n ...props\n } = {}) => ({\n \"aria-controls\": open ? contentId : undefined,\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-expanded\": open,\n \"aria-haspopup\": \"listbox\",\n \"aria-label\": ariaLabel || ariaLabelProp,\n \"aria-labelledby\": cx(ariaLabelledby, ariaLabelledbyProp),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n role: \"combobox\",\n tabIndex: interactive ? 0 : -1,\n ...rest,\n ...props,\n ref: mergeRefs(ref, rest.ref, triggerRef),\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n onKeyDown: handlerAll(props.onKeyDown, rest.onKeyDown, onKeyDown),\n }),\n [\n open,\n contentId,\n interactive,\n ariaLabelledbyProp,\n disabled,\n readOnly,\n ariaLabelProp,\n rest,\n onClick,\n onKeyDown,\n ],\n )\n\n const getContentProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n id: contentId,\n role: \"listbox\",\n ...props,\n ref: mergeRefs(ref, contentRef),\n onKeyDown: handlerAll(props.onKeyDown),\n }),\n [contentId],\n )\n\n const getSeparatorProps: PropGetter = useCallback(\n (props) => ({ role: \"separator\", ...props }),\n [],\n )\n\n return {\n activeDescendant,\n descendants,\n interactive,\n open,\n getContentProps,\n getSeparatorProps,\n getTriggerProps,\n popoverProps: mergedPopoverProps,\n onActiveDescendant,\n onClose,\n onOpen,\n onOpenWithActiveDescendant,\n onScrollIntoView,\n onSelect,\n }\n}\n\nexport type UseComboboxReturn = ReturnType<typeof useCombobox>\n\nexport interface UseComboboxGroupProps extends HTMLProps {}\n\nexport const useComboboxGroup = ({\n \"aria-labelledby\": ariaLabelledbyProp,\n ...rest\n}: UseComboboxGroupProps = {}) => {\n const labelId = useId()\n\n const getGroupProps: PropGetter = useCallback(\n ({ \"aria-labelledby\": ariaLabelledby, ...props } = {}) => ({\n \"aria-labelledby\": cx(ariaLabelledbyProp, ariaLabelledby, labelId),\n role: \"group\",\n ...rest,\n ...props,\n }),\n [ariaLabelledbyProp, labelId, rest],\n )\n\n const getLabelProps: PropGetter<\"span\"> = useCallback(\n (props) => ({ id: labelId, role: \"presentation\", ...props }),\n [labelId],\n )\n\n return { getGroupProps, getLabelProps }\n}\n\nexport type UseComboboxGroupReturn = ReturnType<typeof useComboboxGroup>\n\nexport interface UseComboboxItemProps extends HTMLProps {\n /**\n * If `true`, the item will be closed when selected.\n */\n closeOnSelect?: boolean\n /**\n * If `true`, the item will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * If `true`, the item will be selected.\n */\n selected?: boolean\n /**\n * The value of the item.\n */\n value?: string\n}\n\nexport const useComboboxItem = ({\n id,\n \"aria-disabled\": ariaDisabled,\n \"data-disabled\": dataDisabled,\n closeOnSelect,\n disabled = false,\n selected = false,\n value,\n ...rest\n}: UseComboboxItemProps = {}) => {\n const uuid = useId()\n const itemRef = useRef<HTMLDivElement>(null)\n const { onActiveDescendant, onClose, onSelect } = useComboboxContext()\n\n id ??= uuid\n\n const { descendants, register } = useComboboxDescendant({\n id,\n closeOnSelect,\n disabled,\n value,\n })\n\n const onActive = useCallback(() => {\n if (disabled) return\n\n const current = descendants.value(itemRef.current)\n\n onActiveDescendant(current)\n }, [descendants, disabled, onActiveDescendant])\n\n const onClick = useCallback(\n (ev: MouseEvent<HTMLDivElement>) => {\n ev.preventDefault()\n\n if (disabled) return\n\n onSelect(value, closeOnSelect)\n },\n [closeOnSelect, disabled, onSelect, value],\n )\n\n const getItemProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n id,\n \"aria-disabled\": ariaDisabled ?? ariaAttr(disabled),\n \"aria-selected\": selected,\n \"data-disabled\": dataDisabled ?? dataAttr(disabled),\n \"data-selected\": dataAttr(selected),\n \"data-value\": value,\n role: \"option\",\n tabIndex: -1,\n ...rest,\n ...props,\n ref: mergeRefs(ref, rest.ref, itemRef, register),\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n onMouseMove: handlerAll(props.onMouseMove, rest.onMouseMove, onActive),\n }),\n [\n id,\n ariaDisabled,\n disabled,\n selected,\n dataDisabled,\n value,\n rest,\n register,\n onClick,\n onActive,\n ],\n )\n\n const getIndicatorProps: PropGetter = useCallback(\n ({ style, ...props } = {}) => ({\n style: { opacity: selected ? 1 : 0, ...style },\n ...props,\n }),\n [selected],\n )\n\n return {\n descendants,\n disabled,\n selected,\n getIndicatorProps,\n getItemProps,\n onActiveDescendant,\n onClose,\n }\n}\n"],"mappings":"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"}
|
|
@@ -37,15 +37,25 @@ const descendantManager = () => {
|
|
|
37
37
|
});
|
|
38
38
|
};
|
|
39
39
|
const set = (node, props) => {
|
|
40
|
-
if (!node
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
40
|
+
if (!node) return;
|
|
41
|
+
if (descendants.has(node)) {
|
|
42
|
+
const descendant = descendants.get(node);
|
|
43
|
+
descendants.set(node, {
|
|
44
|
+
...descendant,
|
|
45
|
+
...props,
|
|
46
|
+
index: descendant.index,
|
|
47
|
+
node: descendant.node
|
|
48
|
+
});
|
|
49
|
+
} else {
|
|
50
|
+
const sorted = sortNodes(Array.from(descendants.keys()).concat(node));
|
|
51
|
+
const descendant = {
|
|
52
|
+
...props,
|
|
53
|
+
index: -1,
|
|
54
|
+
node
|
|
55
|
+
};
|
|
56
|
+
descendants.set(node, descendant);
|
|
57
|
+
setIndexes(sorted);
|
|
58
|
+
}
|
|
49
59
|
};
|
|
50
60
|
const destroy = () => descendants.clear();
|
|
51
61
|
const register = (props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["enabledValue","createContext","mergeRefs"],"sources":["../../../../src/hooks/use-descendants/index.ts"],"sourcesContent":["\"use client\"\n\nimport type { RefCallback } from \"react\"\nimport { useRef } from \"react\"\nimport {\n createContext,\n isNumber,\n isTruthyDataAttr,\n mergeRefs,\n runIfFn,\n useSafeLayoutEffect,\n} from \"../../utils\"\n\nconst sortNodes = (nodes: Node[]) =>\n nodes.sort((a, b) => {\n const compare = a.compareDocumentPosition(b)\n\n if (\n compare & Node.DOCUMENT_POSITION_FOLLOWING ||\n compare & Node.DOCUMENT_POSITION_CONTAINED_BY\n )\n return -1\n\n if (\n compare & Node.DOCUMENT_POSITION_PRECEDING ||\n compare & Node.DOCUMENT_POSITION_CONTAINS\n )\n return 1\n\n if (\n compare & Node.DOCUMENT_POSITION_DISCONNECTED ||\n compare & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\n ) {\n console.warn(\"Cannot sort the given nodes.\")\n return 0\n } else {\n return 0\n }\n })\n\nconst getNextIndex = (current: number, max: number, loop: boolean) => {\n let next = current + 1\n\n if (loop && next >= max) next = 0\n\n return next\n}\n\nconst getPrevIndex = (current: number, max: number, loop: boolean) => {\n let next = current - 1\n\n if (loop && next < 0) next = max\n\n return next\n}\n\nconst isMatch =\n <Y extends HTMLElement = HTMLElement, M = {}>(props?: Partial<M>) =>\n (descendant: Descendant<Y, M>) =>\n Object.entries(props ?? {}).every(\n ([key, value]) => descendant[key as keyof Descendant<Y, M>] === value,\n )\n\nexport type DescendantProps<Y extends HTMLElement = HTMLElement, M = {}> = M & {\n disabled?: ((node: Y) => boolean) | boolean\n}\n\nexport type Descendant<\n Y extends HTMLElement = HTMLElement,\n M = {},\n> = DescendantProps<Y, M> & {\n index: number\n node: Y\n recurred?: boolean\n}\n\nconst descendantManager = <Y extends HTMLElement = HTMLElement, M = {}>() => {\n const descendants = new Map<Y, Descendant<Y, M>>()\n\n const setIndexes = (next: Node[]) => {\n descendants.forEach((descendant) => {\n const index = next.indexOf(descendant.node)\n\n descendant.index = index\n descendant.node.dataset.index = descendant.index.toString()\n })\n }\n\n const set = (node: null | Y, props?: DescendantProps<Y, M>) => {\n if (!node || descendants.has(node)) return\n\n const keys = Array.from(descendants.keys()).concat(node)\n const sorted = sortNodes(keys)\n\n const descendant = { ...props, index: -1, node } as Descendant<Y, M>\n\n descendants.set(node, descendant)\n\n setIndexes(sorted)\n }\n\n const destroy = () => descendants.clear()\n\n const register = (props?: DescendantProps<Y, M>): RefCallback<Y> => {\n return (node: null | Y) => set(node, props)\n }\n\n const unregister = (node?: null | Y) => {\n if (node == null) return\n\n descendants.delete(node)\n\n const sorted = sortNodes(Array.from(descendants.keys()))\n\n setIndexes(sorted)\n }\n\n const count = (props?: Partial<M>) => values(props).length\n\n const enabledCount = (props?: Partial<M>) => enabledValues(props).length\n\n const active = (\n target?: Descendant<Y, M> | null | Y,\n options?: FocusOptions,\n ) => {\n if (!target) return\n\n if (!(target instanceof Node)) target = target.node\n\n if (isTruthyDataAttr(target.dataset.activedescendant)) return\n\n const descendants = values()\n\n descendants.forEach(({ node }) => {\n delete node.dataset.activedescendant\n })\n\n target.dataset.activedescendant = \"\"\n\n if (options) target.focus(options)\n }\n\n const indexOf = (target?: Descendant<Y, M> | null | Y) => {\n if (!target) return -1\n\n if (target instanceof Node) {\n return descendants.get(target)?.index ?? -1\n } else {\n return descendants.get(target.node)?.index ?? -1\n }\n }\n\n const enabledIndexOf = (target?: Descendant<Y, M> | null | Y) => {\n if (!target) return -1\n\n if (target instanceof Node) {\n return enabledValues().findIndex(({ node }) => node.isSameNode(target))\n } else {\n return enabledValues().findIndex(({ node }) =>\n node.isSameNode(target.node),\n )\n }\n }\n\n const values = (props?: Partial<M>) =>\n Array.from(descendants.values())\n .filter(isMatch(props))\n .sort((a, b) => a.index - b.index)\n\n const enabledValues = (props?: Partial<M>) =>\n values(props).filter(({ disabled, node }) => !runIfFn(disabled, node))\n\n const value = (indexOrNode: null | number | Y) => {\n if (!count() || indexOrNode == null) return undefined\n\n return isNumber(indexOrNode)\n ? values()[indexOrNode]\n : descendants.get(indexOrNode)\n }\n\n const enabledValue = (indexOrNode: null | number | Y) => {\n if (!enabledCount() || indexOrNode == null) return undefined\n\n return enabledValues()[\n isNumber(indexOrNode) ? indexOrNode : enabledIndexOf(indexOrNode)\n ]\n }\n\n const firstValue = (props?: Partial<M>) => values(props).at(0)\n\n const enabledFirstValue = (props?: Partial<M>) => enabledValues(props).at(0)\n\n const lastValue = (props?: Partial<M>) => values(props).at(-1)\n\n const enabledLastValue = (props?: Partial<M>) => enabledValues(props).at(-1)\n\n const prevValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n const filtered = values(props)\n\n if (!filtered.length || indexOrNode == null) return undefined\n\n const currentIndex = isNumber(indexOrNode)\n ? filtered.findIndex((d) => d.index === indexOrNode)\n : filtered.findIndex((d) =>\n d.node.isSameNode(\n indexOrNode instanceof Node ? indexOrNode : indexOrNode.node,\n ),\n )\n\n if (currentIndex === -1) return undefined\n\n const prevIndex = getPrevIndex(currentIndex, filtered.length - 1, loop)\n\n return filtered[prevIndex]\n }\n\n const enabledPrevValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n if (!enabledCount(props)) return undefined\n\n let index = isNumber(indexOrNode) ? indexOrNode : indexOf(indexOrNode)\n let enabledValue = null\n let recurred = false\n\n while (enabledValue == null) {\n index--\n\n if (index < 0) {\n if (!loop) return\n\n index = count() - 1\n recurred = true\n }\n\n const descendant = value(index)\n\n enabledValue =\n descendant &&\n !runIfFn(descendant.disabled, descendant.node) &&\n isMatch<Y, M>(props)(descendant)\n ? descendant\n : null\n }\n\n if (recurred) enabledValue.recurred = recurred\n\n return enabledValue\n }\n\n const nextValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n const filtered = values(props)\n\n if (!filtered.length || indexOrNode == null) return undefined\n\n const currentIndex = isNumber(indexOrNode)\n ? filtered.findIndex((d) => d.index === indexOrNode)\n : filtered.findIndex((d) =>\n d.node.isSameNode(\n indexOrNode instanceof Node ? indexOrNode : indexOrNode.node,\n ),\n )\n\n if (currentIndex === -1) return undefined\n\n const nextIndex = getNextIndex(currentIndex, filtered.length, loop)\n\n return filtered[nextIndex]\n }\n\n const enabledNextValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n if (!enabledCount(props)) return undefined\n\n let index = isNumber(indexOrNode) ? indexOrNode : indexOf(indexOrNode)\n let enabledValue = null\n let recurred = false\n\n while (enabledValue == null) {\n index++\n\n if (index >= count()) {\n if (!loop) return\n\n index = 0\n recurred = true\n }\n\n const descendant = value(index)\n\n enabledValue =\n descendant &&\n !runIfFn(descendant.disabled, descendant.node) &&\n isMatch<Y, M>(props)(descendant)\n ? descendant\n : null\n }\n\n if (recurred) enabledValue.recurred = recurred\n\n return enabledValue\n }\n\n return {\n active,\n count,\n destroy,\n enabledCount,\n enabledFirstValue,\n enabledIndexOf,\n enabledLastValue,\n enabledNextValue,\n enabledPrevValue,\n enabledValue,\n enabledValues,\n firstValue,\n indexOf,\n lastValue,\n nextValue,\n prevValue,\n register,\n unregister,\n value,\n values,\n }\n}\n\nexport type Descendants<Y extends HTMLElement, M = {}> = ReturnType<\n typeof descendantManager<Y, M>\n>\n\nexport type CreateDescendantRegister<Y extends HTMLElement, M = {}> = (\n props?: DescendantProps<Y, M>,\n) => RefCallback<Y>\n\n/**\n * `useDescendants` is a custom hook that manages descendants.\n *\n * @see https://yamada-ui.com/docs/hooks/use-descendants\n */\nexport const createDescendants = <\n Y extends HTMLElement = HTMLElement,\n M = {},\n>() => {\n const [DescendantsContext, useDescendantsContext] = createContext<\n Descendants<Y, M>\n >({\n name: \"DescendantsContext\",\n })\n\n const useDescendantRegister = (descendants?: Descendants<Y, M>) => {\n const ref = useRef<Y>(null)\n\n useSafeLayoutEffect(() => {\n return () => {\n if (ref.current) descendants?.unregister(ref.current)\n }\n }, [])\n\n return (props?: DescendantProps<Y, M>): RefCallback<Y> =>\n mergeRefs(ref, descendants?.register(props))\n }\n\n const useDescendants = () => {\n const descendants = useRef(descendantManager<Y, M>())\n\n useSafeLayoutEffect(() => {\n return () => descendants.current.destroy()\n })\n\n return descendants.current\n }\n\n const useDescendant = (props?: DescendantProps<Y, M>) => {\n const descendants = useDescendantsContext()\n const createRegister = useDescendantRegister(descendants)\n\n return {\n descendants,\n register: createRegister(props),\n }\n }\n\n return {\n DescendantsContext,\n useDescendant,\n useDescendantRegister,\n useDescendants,\n useDescendantsContext,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["enabledValue","createContext","mergeRefs"],"sources":["../../../../src/hooks/use-descendants/index.ts"],"sourcesContent":["\"use client\"\n\nimport type { RefCallback } from \"react\"\nimport { useRef } from \"react\"\nimport {\n createContext,\n isNumber,\n isTruthyDataAttr,\n mergeRefs,\n runIfFn,\n useSafeLayoutEffect,\n} from \"../../utils\"\n\nconst sortNodes = (nodes: Node[]) =>\n nodes.sort((a, b) => {\n const compare = a.compareDocumentPosition(b)\n\n if (\n compare & Node.DOCUMENT_POSITION_FOLLOWING ||\n compare & Node.DOCUMENT_POSITION_CONTAINED_BY\n )\n return -1\n\n if (\n compare & Node.DOCUMENT_POSITION_PRECEDING ||\n compare & Node.DOCUMENT_POSITION_CONTAINS\n )\n return 1\n\n if (\n compare & Node.DOCUMENT_POSITION_DISCONNECTED ||\n compare & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\n ) {\n console.warn(\"Cannot sort the given nodes.\")\n return 0\n } else {\n return 0\n }\n })\n\nconst getNextIndex = (current: number, max: number, loop: boolean) => {\n let next = current + 1\n\n if (loop && next >= max) next = 0\n\n return next\n}\n\nconst getPrevIndex = (current: number, max: number, loop: boolean) => {\n let next = current - 1\n\n if (loop && next < 0) next = max\n\n return next\n}\n\nconst isMatch =\n <Y extends HTMLElement = HTMLElement, M = {}>(props?: Partial<M>) =>\n (descendant: Descendant<Y, M>) =>\n Object.entries(props ?? {}).every(\n ([key, value]) => descendant[key as keyof Descendant<Y, M>] === value,\n )\n\nexport type DescendantProps<Y extends HTMLElement = HTMLElement, M = {}> = M & {\n disabled?: ((node: Y) => boolean) | boolean\n}\n\nexport type Descendant<\n Y extends HTMLElement = HTMLElement,\n M = {},\n> = DescendantProps<Y, M> & {\n index: number\n node: Y\n recurred?: boolean\n}\n\nconst descendantManager = <Y extends HTMLElement = HTMLElement, M = {}>() => {\n const descendants = new Map<Y, Descendant<Y, M>>()\n\n const setIndexes = (next: Node[]) => {\n descendants.forEach((descendant) => {\n const index = next.indexOf(descendant.node)\n\n descendant.index = index\n descendant.node.dataset.index = descendant.index.toString()\n })\n }\n\n const set = (node: null | Y, props?: DescendantProps<Y, M>) => {\n if (!node) return\n\n if (descendants.has(node)) {\n const descendant = descendants.get(node)!\n\n descendants.set(node, {\n ...descendant,\n ...props,\n index: descendant.index,\n node: descendant.node,\n })\n } else {\n const keys = Array.from(descendants.keys()).concat(node)\n const sorted = sortNodes(keys)\n\n const descendant = { ...props, index: -1, node } as Descendant<Y, M>\n\n descendants.set(node, descendant)\n\n setIndexes(sorted)\n }\n }\n\n const destroy = () => descendants.clear()\n\n const register = (props?: DescendantProps<Y, M>): RefCallback<Y> => {\n return (node: null | Y) => set(node, props)\n }\n\n const unregister = (node?: null | Y) => {\n if (node == null) return\n\n descendants.delete(node)\n\n const sorted = sortNodes(Array.from(descendants.keys()))\n\n setIndexes(sorted)\n }\n\n const count = (props?: Partial<M>) => values(props).length\n\n const enabledCount = (props?: Partial<M>) => enabledValues(props).length\n\n const active = (\n target?: Descendant<Y, M> | null | Y,\n options?: FocusOptions,\n ) => {\n if (!target) return\n\n if (!(target instanceof Node)) target = target.node\n\n if (isTruthyDataAttr(target.dataset.activedescendant)) return\n\n const descendants = values()\n\n descendants.forEach(({ node }) => {\n delete node.dataset.activedescendant\n })\n\n target.dataset.activedescendant = \"\"\n\n if (options) target.focus(options)\n }\n\n const indexOf = (target?: Descendant<Y, M> | null | Y) => {\n if (!target) return -1\n\n if (target instanceof Node) {\n return descendants.get(target)?.index ?? -1\n } else {\n return descendants.get(target.node)?.index ?? -1\n }\n }\n\n const enabledIndexOf = (target?: Descendant<Y, M> | null | Y) => {\n if (!target) return -1\n\n if (target instanceof Node) {\n return enabledValues().findIndex(({ node }) => node.isSameNode(target))\n } else {\n return enabledValues().findIndex(({ node }) =>\n node.isSameNode(target.node),\n )\n }\n }\n\n const values = (props?: Partial<M>) =>\n Array.from(descendants.values())\n .filter(isMatch(props))\n .sort((a, b) => a.index - b.index)\n\n const enabledValues = (props?: Partial<M>) =>\n values(props).filter(({ disabled, node }) => !runIfFn(disabled, node))\n\n const value = (indexOrNode: null | number | Y) => {\n if (!count() || indexOrNode == null) return undefined\n\n return isNumber(indexOrNode)\n ? values()[indexOrNode]\n : descendants.get(indexOrNode)\n }\n\n const enabledValue = (indexOrNode: null | number | Y) => {\n if (!enabledCount() || indexOrNode == null) return undefined\n\n return enabledValues()[\n isNumber(indexOrNode) ? indexOrNode : enabledIndexOf(indexOrNode)\n ]\n }\n\n const firstValue = (props?: Partial<M>) => values(props).at(0)\n\n const enabledFirstValue = (props?: Partial<M>) => enabledValues(props).at(0)\n\n const lastValue = (props?: Partial<M>) => values(props).at(-1)\n\n const enabledLastValue = (props?: Partial<M>) => enabledValues(props).at(-1)\n\n const prevValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n const filtered = values(props)\n\n if (!filtered.length || indexOrNode == null) return undefined\n\n const currentIndex = isNumber(indexOrNode)\n ? filtered.findIndex((d) => d.index === indexOrNode)\n : filtered.findIndex((d) =>\n d.node.isSameNode(\n indexOrNode instanceof Node ? indexOrNode : indexOrNode.node,\n ),\n )\n\n if (currentIndex === -1) return undefined\n\n const prevIndex = getPrevIndex(currentIndex, filtered.length - 1, loop)\n\n return filtered[prevIndex]\n }\n\n const enabledPrevValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n if (!enabledCount(props)) return undefined\n\n let index = isNumber(indexOrNode) ? indexOrNode : indexOf(indexOrNode)\n let enabledValue = null\n let recurred = false\n\n while (enabledValue == null) {\n index--\n\n if (index < 0) {\n if (!loop) return\n\n index = count() - 1\n recurred = true\n }\n\n const descendant = value(index)\n\n enabledValue =\n descendant &&\n !runIfFn(descendant.disabled, descendant.node) &&\n isMatch<Y, M>(props)(descendant)\n ? descendant\n : null\n }\n\n if (recurred) enabledValue.recurred = recurred\n\n return enabledValue\n }\n\n const nextValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n const filtered = values(props)\n\n if (!filtered.length || indexOrNode == null) return undefined\n\n const currentIndex = isNumber(indexOrNode)\n ? filtered.findIndex((d) => d.index === indexOrNode)\n : filtered.findIndex((d) =>\n d.node.isSameNode(\n indexOrNode instanceof Node ? indexOrNode : indexOrNode.node,\n ),\n )\n\n if (currentIndex === -1) return undefined\n\n const nextIndex = getNextIndex(currentIndex, filtered.length, loop)\n\n return filtered[nextIndex]\n }\n\n const enabledNextValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n if (!enabledCount(props)) return undefined\n\n let index = isNumber(indexOrNode) ? indexOrNode : indexOf(indexOrNode)\n let enabledValue = null\n let recurred = false\n\n while (enabledValue == null) {\n index++\n\n if (index >= count()) {\n if (!loop) return\n\n index = 0\n recurred = true\n }\n\n const descendant = value(index)\n\n enabledValue =\n descendant &&\n !runIfFn(descendant.disabled, descendant.node) &&\n isMatch<Y, M>(props)(descendant)\n ? descendant\n : null\n }\n\n if (recurred) enabledValue.recurred = recurred\n\n return enabledValue\n }\n\n return {\n active,\n count,\n destroy,\n enabledCount,\n enabledFirstValue,\n enabledIndexOf,\n enabledLastValue,\n enabledNextValue,\n enabledPrevValue,\n enabledValue,\n enabledValues,\n firstValue,\n indexOf,\n lastValue,\n nextValue,\n prevValue,\n register,\n unregister,\n value,\n values,\n }\n}\n\nexport type Descendants<Y extends HTMLElement, M = {}> = ReturnType<\n typeof descendantManager<Y, M>\n>\n\nexport type CreateDescendantRegister<Y extends HTMLElement, M = {}> = (\n props?: DescendantProps<Y, M>,\n) => RefCallback<Y>\n\n/**\n * `useDescendants` is a custom hook that manages descendants.\n *\n * @see https://yamada-ui.com/docs/hooks/use-descendants\n */\nexport const createDescendants = <\n Y extends HTMLElement = HTMLElement,\n M = {},\n>() => {\n const [DescendantsContext, useDescendantsContext] = createContext<\n Descendants<Y, M>\n >({\n name: \"DescendantsContext\",\n })\n\n const useDescendantRegister = (descendants?: Descendants<Y, M>) => {\n const ref = useRef<Y>(null)\n\n useSafeLayoutEffect(() => {\n return () => {\n if (ref.current) descendants?.unregister(ref.current)\n }\n }, [])\n\n return (props?: DescendantProps<Y, M>): RefCallback<Y> =>\n mergeRefs(ref, descendants?.register(props))\n }\n\n const useDescendants = () => {\n const descendants = useRef(descendantManager<Y, M>())\n\n useSafeLayoutEffect(() => {\n return () => descendants.current.destroy()\n })\n\n return descendants.current\n }\n\n const useDescendant = (props?: DescendantProps<Y, M>) => {\n const descendants = useDescendantsContext()\n const createRegister = useDescendantRegister(descendants)\n\n return {\n descendants,\n register: createRegister(props),\n }\n }\n\n return {\n DescendantsContext,\n useDescendant,\n useDescendantRegister,\n useDescendants,\n useDescendantsContext,\n }\n}\n"],"mappings":"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"}
|
|
@@ -9,7 +9,11 @@ let _floating_ui_react_dom = require("@floating-ui/react-dom");
|
|
|
9
9
|
//#region src/hooks/use-popper/index.ts
|
|
10
10
|
const PLACEMENT_MAP = {
|
|
11
11
|
"center-end": "right",
|
|
12
|
+
"center-end-end": "right-end",
|
|
13
|
+
"center-end-start": "right-start",
|
|
12
14
|
"center-start": "left",
|
|
15
|
+
"center-start-end": "left-end",
|
|
16
|
+
"center-start-start": "left-start",
|
|
13
17
|
end: "bottom",
|
|
14
18
|
"end-center": "bottom",
|
|
15
19
|
"end-end": "bottom-end",
|