@central-design-system/components 4.0.0-alpha.3 → 4.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/MIGRATION.md +15 -43
- package/dist/browser/chunks/cdsLegacy-VUz8RzDN.js +120 -0
- package/dist/browser/chunks/useIcons.component-Df4MSurB.js +102 -0
- package/dist/browser/entry.js +34490 -0
- package/dist/browser/iconsets/carbon.js +155 -0
- package/dist/browser/iconsets/cds.js +149 -0
- package/dist/browser/iconsets/cdsLegacy.js +6 -0
- package/dist/browser/iconsets/lucide.js +156 -0
- package/dist/browser/iconsets/mdi.js +154 -0
- package/dist/browser/iconsets/phosphor.js +155 -0
- package/dist/browser/iconsets/remix.js +155 -0
- package/dist/cds.d.ts +119065 -0
- package/dist/cjs/entry.js +10 -10
- package/dist/es/entry.css +0 -18
- package/dist/es/entry.js +132 -122
- package/dist/es/entry.js.map +1 -1
- package/dist/es/src/cds.js +5 -5
- package/dist/es/src/components/CdsApp/CdsApp.css +0 -18
- package/dist/es/src/components/CdsApp/CdsApp.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsApp/api/CdsApp.props.js +2 -1
- package/dist/es/src/components/CdsApp/api/CdsApp.props.js.map +1 -1
- package/dist/es/src/components/CdsAutocomplete/CdsAutocomplete.css +0 -18
- package/dist/es/src/components/CdsAutocomplete/CdsAutocomplete.vue_vue_type_script_setup_true_lang.js +20 -5
- package/dist/es/src/components/CdsAutocomplete/CdsAutocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsAutocomplete/api/CdsAutocomplete.props.js +9 -2
- package/dist/es/src/components/CdsAutocomplete/api/CdsAutocomplete.props.js.map +1 -1
- package/dist/es/src/components/CdsAvatar/CdsAvatar.css +0 -18
- package/dist/es/src/components/CdsAvatar/CdsAvatar.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsAvatar/api/CdsAvatar.props.js +21 -6
- package/dist/es/src/components/CdsAvatar/api/CdsAvatar.props.js.map +1 -1
- package/dist/es/src/components/CdsBadge/CdsBadge.css +0 -18
- package/dist/es/src/components/CdsBadge/CdsBadge.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsBadge/api/CdsBadge.props.js +38 -10
- package/dist/es/src/components/CdsBadge/api/CdsBadge.props.js.map +1 -1
- package/dist/es/src/components/CdsBreadcrumbs/CdsBreadcrumbs.css +0 -18
- package/dist/es/src/components/CdsBreadcrumbs/api/CdsBreadcrumbs.props.js +32 -8
- package/dist/es/src/components/CdsBreadcrumbs/api/CdsBreadcrumbs.props.js.map +1 -1
- package/dist/es/src/components/CdsButton/CdsButton.css +0 -18
- package/dist/es/src/components/CdsButton/CdsButton.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/es/src/components/CdsButton/CdsButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsButton/api/CdsButton.props.js +29 -8
- package/dist/es/src/components/CdsButton/api/CdsButton.props.js.map +1 -1
- package/dist/es/src/components/CdsButtonGroup/CdsButtonGroup.css +0 -18
- package/dist/es/src/components/CdsButtonGroup/CdsButtonGroup.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsButtonGroup/api/CdsButtonGroup.props.js +5 -2
- package/dist/es/src/components/CdsButtonGroup/api/CdsButtonGroup.props.js.map +1 -1
- package/dist/es/src/components/CdsButtonToggle/CdsButtonToggle.css +0 -18
- package/dist/es/src/components/CdsButtonToggle/CdsButtonToggle.vue_vue_type_script_setup_true_lang.js +20 -5
- package/dist/es/src/components/CdsButtonToggle/CdsButtonToggle.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsCard/CdsCard.css +0 -18
- package/dist/es/src/components/CdsCard/CdsCard.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsCard/CdsCardGroup.vue_vue_type_script_setup_true_lang.js +21 -6
- package/dist/es/src/components/CdsCard/CdsCardGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsCard/api/CdsCard.props.js +85 -21
- package/dist/es/src/components/CdsCard/api/CdsCard.props.js.map +1 -1
- package/dist/es/src/components/CdsCarousel/CdsCarousel.css +0 -18
- package/dist/es/src/components/CdsCarousel/api/CdsCarousel.props.js +36 -9
- package/dist/es/src/components/CdsCarousel/api/CdsCarousel.props.js.map +1 -1
- package/dist/es/src/components/CdsCheckbox/CdsCheckbox.css +0 -18
- package/dist/es/src/components/CdsCheckboxButton/CdsCheckboxButton.css +0 -18
- package/dist/es/src/components/CdsCheckboxButton/api/CdsCheckboxButton.props.js +8 -2
- package/dist/es/src/components/CdsCheckboxButton/api/CdsCheckboxButton.props.js.map +1 -1
- package/dist/es/src/components/CdsCombobox/CdsCombobox.css +0 -18
- package/dist/es/src/components/CdsCombobox/CdsCombobox.vue_vue_type_script_setup_true_lang.js +24 -6
- package/dist/es/src/components/CdsCombobox/CdsCombobox.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsCombobox/api/CdsCombobox.props.js +13 -3
- package/dist/es/src/components/CdsCombobox/api/CdsCombobox.props.js.map +1 -1
- package/dist/es/src/components/CdsCounter/CdsCounter.css +0 -18
- package/dist/es/src/components/CdsCounter/api/CdsCounter.props.js +12 -3
- package/dist/es/src/components/CdsCounter/api/CdsCounter.props.js.map +1 -1
- package/dist/es/src/components/CdsDateInput/CdsDateInput.css +0 -18
- package/dist/es/src/components/CdsDateInput/CdsDateInput.vue_vue_type_script_setup_true_lang.js +8 -0
- package/dist/es/src/components/CdsDateInput/CdsDateInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsDateInput/api/CdsDateInput.props.js +31 -7
- package/dist/es/src/components/CdsDateInput/api/CdsDateInput.props.js.map +1 -1
- package/dist/es/src/components/CdsDatePicker/CdsDatePicker.css +0 -18
- package/dist/es/src/components/CdsDatePicker/CdsDatePicker.vue_vue_type_script_setup_true_lang.js +21 -1
- package/dist/es/src/components/CdsDatePicker/CdsDatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsDatePicker/api/CdsDatePicker.props.js +65 -16
- package/dist/es/src/components/CdsDatePicker/api/CdsDatePicker.props.js.map +1 -1
- package/dist/es/src/components/CdsDefaultsProvider/api/CdsDefaultsProvider.props.js +5 -0
- package/dist/es/src/components/CdsDefaultsProvider/api/CdsDefaultsProvider.props.js.map +1 -1
- package/dist/es/src/components/CdsDescription/CdsDescription.css +0 -18
- package/dist/es/src/components/CdsDivider/CdsDivider.css +0 -18
- package/dist/es/src/components/CdsDivider/CdsDivider.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsDivider/CdsDivider.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsDivider/api/CdsDivider.props.js +33 -8
- package/dist/es/src/components/CdsDivider/api/CdsDivider.props.js.map +1 -1
- package/dist/es/src/components/CdsDrawer/CdsDrawer.css +0 -18
- package/dist/es/src/components/CdsDrawer/CdsDrawer.vue_vue_type_script_setup_true_lang.js +6 -2
- package/dist/es/src/components/CdsDrawer/CdsDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsDrawer/api/CdsDrawer.props.js +33 -9
- package/dist/es/src/components/CdsDrawer/api/CdsDrawer.props.js.map +1 -1
- package/dist/es/src/components/CdsEmptyState/CdsEmptyState.css +0 -18
- package/dist/es/src/components/CdsEmptyState/CdsEmptyState.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/src/components/CdsEmptyState/api/CdsEmptyState.props.js +34 -9
- package/dist/es/src/components/CdsEmptyState/api/CdsEmptyState.props.js.map +1 -1
- package/dist/es/src/components/CdsExpandablePanel/CdsExpandablePanel.vue_vue_type_script_setup_true_lang.js +16 -4
- package/dist/es/src/components/CdsExpandablePanel/CdsExpandablePanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsExpandablePanel/CdsExpandablePanelTitle.vue_vue_type_script_setup_true_lang.js +8 -2
- package/dist/es/src/components/CdsExpandablePanel/CdsExpandablePanelTitle.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsExpandablePanel/CdsExpandablePanels.css +0 -18
- package/dist/es/src/components/CdsExpandablePanel/CdsExpandablePanels.vue_vue_type_script_setup_true_lang.js +9 -3
- package/dist/es/src/components/CdsExpandablePanel/CdsExpandablePanels.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsExpandablePanel/api/CdsExpandablePanel.props.js +39 -10
- package/dist/es/src/components/CdsExpandablePanel/api/CdsExpandablePanel.props.js.map +1 -1
- package/dist/es/src/components/CdsField/CdsField.css +0 -18
- package/dist/es/src/components/CdsField/CdsField.vue_vue_type_script_setup_true_lang.js +14 -4
- package/dist/es/src/components/CdsField/CdsField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsField/api/CdsField.props.js +57 -15
- package/dist/es/src/components/CdsField/api/CdsField.props.js.map +1 -1
- package/dist/es/src/components/CdsField/composables/useAutocomplete.js +1 -0
- package/dist/es/src/components/CdsField/composables/useAutocomplete.js.map +1 -1
- package/dist/es/src/components/CdsFileInput/CdsFileInput.css +0 -18
- package/dist/es/src/components/CdsFileInput/api/CdsFileInput.props.js +40 -10
- package/dist/es/src/components/CdsFileInput/api/CdsFileInput.props.js.map +1 -1
- package/dist/es/src/components/CdsFileInput/composables/useFileFilter.js +4 -1
- package/dist/es/src/components/CdsFileInput/composables/useFileFilter.js.map +1 -1
- package/dist/es/src/components/CdsFileUpload/CdsFileUpload.css +0 -18
- package/dist/es/src/components/CdsFileUpload/CdsFileUpload.vue_vue_type_script_setup_true_lang.js +4 -0
- package/dist/es/src/components/CdsFileUpload/CdsFileUpload.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsFileUpload/api/CdsFileUpload.props.js +85 -21
- package/dist/es/src/components/CdsFileUpload/api/CdsFileUpload.props.js.map +1 -1
- package/dist/es/src/components/CdsFooter/CdsFooter.css +0 -18
- package/dist/es/src/components/CdsFooter/CdsFooter.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/src/components/CdsFooter/api/CdsFooter.props.js +1 -1
- package/dist/es/src/components/CdsForm/CdsForm.css +0 -18
- package/dist/es/src/components/CdsForm/api/CdsForm.props.js +8 -2
- package/dist/es/src/components/CdsForm/api/CdsForm.props.js.map +1 -1
- package/dist/es/src/components/CdsFunctionalButton/CdsFunctionalButton.css +0 -18
- package/dist/es/src/components/CdsFunctionalButton/api/CdsFunctionalButton.props.js +5 -2
- package/dist/es/src/components/CdsFunctionalButton/api/CdsFunctionalButton.props.js.map +1 -1
- package/dist/es/src/components/CdsGrid/CdsCol.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsGrid/api/CdsGrid.props.js +40 -10
- package/dist/es/src/components/CdsGrid/api/CdsGrid.props.js.map +1 -1
- package/dist/es/src/components/CdsGrid/components/CSSGrid.css +0 -18
- package/dist/es/src/components/CdsGrid/components/FlexGrid.css +0 -18
- package/dist/es/src/components/CdsHeader/CdsHeader.css +0 -18
- package/dist/es/src/components/CdsHeader/CdsHeader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsHeader/api/CdsHeader.props.js +1 -1
- package/dist/es/src/components/CdsHighlight/CdsHighlight.css +0 -18
- package/dist/es/src/components/CdsHighlight/api/CdsHighlight.props.js +32 -8
- package/dist/es/src/components/CdsHighlight/api/CdsHighlight.props.js.map +1 -1
- package/dist/es/src/components/CdsIcon/CdsIcon.css +0 -18
- package/dist/es/src/components/CdsIcon/CdsIcon.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsIcon/api/CdsIcon.props.js +18 -5
- package/dist/es/src/components/CdsIcon/api/CdsIcon.props.js.map +1 -1
- package/dist/es/src/components/CdsImage/CdsImage.css +0 -18
- package/dist/es/src/components/CdsImage/CdsImage.vue_vue_type_script_setup_true_lang.js +21 -1
- package/dist/es/src/components/CdsImage/CdsImage.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsImage/api/CdsImage.props.js +65 -17
- package/dist/es/src/components/CdsImage/api/CdsImage.props.js.map +1 -1
- package/dist/es/src/components/CdsInput/CdsInput.css +0 -18
- package/dist/es/src/components/CdsInput/CdsInput.vue_vue_type_script_setup_true_lang.js +45 -12
- package/dist/es/src/components/CdsInput/CdsInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsInput/api/CdsInput.props.js +49 -13
- package/dist/es/src/components/CdsInput/api/CdsInput.props.js.map +1 -1
- package/dist/es/src/components/CdsLabel/CdsLabel.css +0 -18
- package/dist/es/src/components/CdsLabel/api/CdsLabel.props.js +4 -0
- package/dist/es/src/components/CdsLabel/api/CdsLabel.props.js.map +1 -1
- package/dist/es/src/components/CdsLayout/CdsLayout.css +0 -18
- package/dist/es/src/components/CdsLayout/CdsLayout.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/src/components/CdsLayout/api/CdsLayout.props.js +6 -2
- package/dist/es/src/components/CdsLayout/api/CdsLayout.props.js.map +1 -1
- package/dist/es/src/components/CdsLink/CdsLink.css +0 -18
- package/dist/es/src/components/CdsLink/CdsLink.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsLink/api/CdsLink.props.js +5 -2
- package/dist/es/src/components/CdsLink/api/CdsLink.props.js.map +1 -1
- package/dist/es/src/components/CdsList/CdsList.css +0 -18
- package/dist/es/src/components/CdsList/CdsList.vue_vue_type_script_setup_true_lang.js +25 -7
- package/dist/es/src/components/CdsList/CdsList.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsList/CdsListGroup.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/src/components/CdsList/CdsListGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsList/CdsListItem.css +0 -18
- package/dist/es/src/components/CdsList/CdsListItem.vue_vue_type_script_setup_true_lang.js +29 -8
- package/dist/es/src/components/CdsList/CdsListItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsList/CdsListItemAction.vue_vue_type_script_setup_true_lang.js +8 -2
- package/dist/es/src/components/CdsList/CdsListItemAction.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsList/CdsListItemDivider.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsList/CdsListItemMedia.vue_vue_type_script_setup_true_lang.js +8 -2
- package/dist/es/src/components/CdsList/CdsListItemMedia.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsList/CdsListSubheader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsList/api/CdsList.props.js +145 -37
- package/dist/es/src/components/CdsList/api/CdsList.props.js.map +1 -1
- package/dist/es/src/components/CdsList/components/ListChildren.vue_vue_type_script_setup_true_lang.js +8 -2
- package/dist/es/src/components/CdsList/components/ListChildren.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsList/components/ListGroupActivator.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsList/index.js +5 -2
- package/dist/es/src/components/CdsList/index.js.map +1 -1
- package/dist/es/src/components/CdsLoader/CdsLoader.css +0 -18
- package/dist/es/src/components/CdsLoader/CdsLoader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsLoader/api/CdsLoader.props.js +12 -3
- package/dist/es/src/components/CdsLoader/api/CdsLoader.props.js.map +1 -1
- package/dist/es/src/components/CdsMain/CdsMain.css +0 -18
- package/dist/es/src/components/CdsMenu/CdsMenu.css +0 -18
- package/dist/es/src/components/CdsMenu/api/CdsMenu.props.js +8 -2
- package/dist/es/src/components/CdsMenu/api/CdsMenu.props.js.map +1 -1
- package/dist/es/src/components/CdsMessages/CdsMessages.css +0 -18
- package/dist/es/src/components/CdsMessages/api/CdsMessages.props.js +12 -3
- package/dist/es/src/components/CdsMessages/api/CdsMessages.props.js.map +1 -1
- package/dist/es/src/components/CdsModal/CdsModal.css +0 -18
- package/dist/es/src/components/CdsModal/api/CdsModal.props.js +8 -2
- package/dist/es/src/components/CdsModal/api/CdsModal.props.js.map +1 -1
- package/dist/es/src/components/CdsNotification/CdsNotification.css +0 -18
- package/dist/es/src/components/CdsNotification/CdsNotification.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsNotification/api/CdsNotification.props.js +29 -8
- package/dist/es/src/components/CdsNotification/api/CdsNotification.props.js.map +1 -1
- package/dist/es/src/components/CdsNotificationAlert/CdsNotificationAlert.css +0 -18
- package/dist/es/src/components/CdsNotificationAlert/api/CdsNotificationAlert.props.js +28 -7
- package/dist/es/src/components/CdsNotificationAlert/api/CdsNotificationAlert.props.js.map +1 -1
- package/dist/es/src/components/CdsOtpInput/CdsOtpInput.css +0 -18
- package/dist/es/src/components/CdsOtpInput/CdsOtpInput.vue_vue_type_script_setup_true_lang.js +21 -6
- package/dist/es/src/components/CdsOtpInput/CdsOtpInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.props.js +53 -14
- package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.props.js.map +1 -1
- package/dist/es/src/components/CdsOverlay/CdsOverlay.css +0 -18
- package/dist/es/src/components/CdsOverlay/CdsOverlay.vue_vue_type_script_setup_true_lang.js +45 -12
- package/dist/es/src/components/CdsOverlay/CdsOverlay.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsOverlay/api/CdsOverlay.props.js +37 -9
- package/dist/es/src/components/CdsOverlay/api/CdsOverlay.props.js.map +1 -1
- package/dist/es/src/components/CdsOverlay/composables/useActivator.js +25 -6
- package/dist/es/src/components/CdsOverlay/composables/useActivator.js.map +1 -1
- package/dist/es/src/components/CdsOverlay/composables/useLocationStrategies.js +18 -4
- package/dist/es/src/components/CdsOverlay/composables/useLocationStrategies.js.map +1 -1
- package/dist/es/src/components/CdsOverlay/composables/useScrollStrategies.js +4 -1
- package/dist/es/src/components/CdsOverlay/composables/useScrollStrategies.js.map +1 -1
- package/dist/es/src/components/CdsPage/CdsPage.css +0 -18
- package/dist/es/src/components/CdsPage/CdsPage.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsPage/api/CdsPage.props.js +5 -1
- package/dist/es/src/components/CdsPage/api/CdsPage.props.js.map +1 -1
- package/dist/es/src/components/CdsPagination/CdsPagination.css +0 -18
- package/dist/es/src/components/CdsPagination/CdsPagination.vue_vue_type_script_setup_true_lang.js +18 -2
- package/dist/es/src/components/CdsPagination/CdsPagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsPagination/api/CdsPagination.props.js +85 -22
- package/dist/es/src/components/CdsPagination/api/CdsPagination.props.js.map +1 -1
- package/dist/es/src/components/CdsProgressBar/CdsProgressBar.css +0 -18
- package/dist/es/src/components/CdsProgressBar/CdsProgressBar.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsProgressBar/api/CdsProgressBar.props.js +65 -17
- package/dist/es/src/components/CdsProgressBar/api/CdsProgressBar.props.js.map +1 -1
- package/dist/es/src/components/CdsProgressBar/composables/useChunk.js +4 -0
- package/dist/es/src/components/CdsProgressBar/composables/useChunk.js.map +1 -1
- package/dist/es/src/components/CdsProgressCircle/CdsProgressCircle.css +0 -18
- package/dist/es/src/components/CdsProgressCircle/CdsProgressCircle.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsProgressCircle/api/CdsProgressCircle.props.js +29 -8
- package/dist/es/src/components/CdsProgressCircle/api/CdsProgressCircle.props.js.map +1 -1
- package/dist/es/src/components/CdsRadio/CdsRadio.css +0 -18
- package/dist/es/src/components/CdsRadioGroup/CdsRadioGroup.css +0 -18
- package/dist/es/src/components/CdsRadioGroup/api/CdsRadioGroup.props.js +16 -4
- package/dist/es/src/components/CdsRadioGroup/api/CdsRadioGroup.props.js.map +1 -1
- package/dist/es/src/components/CdsResponsive/CdsResponsive.css +0 -18
- package/dist/es/src/components/CdsResponsive/api/CdsResponsive.props.js +12 -3
- package/dist/es/src/components/CdsResponsive/api/CdsResponsive.props.js.map +1 -1
- package/dist/es/src/components/CdsSelect/CdsSelect.css +0 -18
- package/dist/es/src/components/CdsSelect/CdsSelect.vue_vue_type_script_setup_true_lang.js +16 -4
- package/dist/es/src/components/CdsSelect/CdsSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsSelect/api/CdsSelect.props.js +4 -1
- package/dist/es/src/components/CdsSelect/api/CdsSelect.props.js.map +1 -1
- package/dist/es/src/components/CdsSelect/composables/useMenuActivator.js +8 -2
- package/dist/es/src/components/CdsSelect/composables/useMenuActivator.js.map +1 -1
- package/dist/es/src/components/CdsSelect/composables/useSelect.js +69 -17
- package/dist/es/src/components/CdsSelect/composables/useSelect.js.map +1 -1
- package/dist/es/src/components/CdsSelectionControl/CdsSelectionControl.css +0 -18
- package/dist/es/src/components/CdsSelectionControl/CdsSelectionControl.vue_vue_type_script_setup_true_lang.js +8 -0
- package/dist/es/src/components/CdsSelectionControl/CdsSelectionControl.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsSelectionControl/api/CdsSelectionControl.props.js +12 -3
- package/dist/es/src/components/CdsSelectionControl/api/CdsSelectionControl.props.js.map +1 -1
- package/dist/es/src/components/CdsSelectionControlGroup/CdsSelectionControlGroup.css +0 -18
- package/dist/es/src/components/CdsSelectionControlGroup/api/CdsSelectionControlGroup.props.js +44 -11
- package/dist/es/src/components/CdsSelectionControlGroup/api/CdsSelectionControlGroup.props.js.map +1 -1
- package/dist/es/src/components/CdsSkeletonLoader/CdsSkeletonLoader.css +0 -18
- package/dist/es/src/components/CdsSkeletonLoader/CdsSkeletonLoader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsSkeletonLoader/api/CdsSkeletonLoader.props.js +17 -5
- package/dist/es/src/components/CdsSkeletonLoader/api/CdsSkeletonLoader.props.js.map +1 -1
- package/dist/es/src/components/CdsSkeletonLoader/api/CdsSkeletonLoader.types.js.map +1 -1
- package/dist/es/src/components/CdsSlideGroup/CdsSlideGroup.css +0 -18
- package/dist/es/src/components/CdsSlideGroup/CdsSlideGroup.vue_vue_type_script_setup_true_lang.js +25 -7
- package/dist/es/src/components/CdsSlideGroup/CdsSlideGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsSlideGroup/api/CdsSlideGroup.props.js +26 -7
- package/dist/es/src/components/CdsSlideGroup/api/CdsSlideGroup.props.js.map +1 -1
- package/dist/es/src/components/CdsSlideView/CdsSlideView.css +0 -18
- package/dist/es/src/components/CdsSlideView/CdsSlideView.vue_vue_type_script_setup_true_lang.js +4 -0
- package/dist/es/src/components/CdsSlideView/CdsSlideView.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsSlideView/CdsSlideViewItem.vue_vue_type_script_setup_true_lang.js +5 -1
- package/dist/es/src/components/CdsSlideView/CdsSlideViewItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsSlideView/api/CdsSlideView.props.js +45 -1
- package/dist/es/src/components/CdsSlideView/api/CdsSlideView.props.js.map +1 -1
- package/dist/es/src/components/CdsStages/CdsStages.css +0 -18
- package/dist/es/src/components/CdsStages/CdsStages.vue_vue_type_script_setup_true_lang.js +9 -1
- package/dist/es/src/components/CdsStages/CdsStages.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsStages/api/CdsStages.props.js +9 -3
- package/dist/es/src/components/CdsStages/api/CdsStages.props.js.map +1 -1
- package/dist/es/src/components/CdsStatus/CdsStatus.css +0 -18
- package/dist/es/src/components/CdsStatus/CdsStatus.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsStatus/api/CdsStatus.props.js +5 -2
- package/dist/es/src/components/CdsStatus/api/CdsStatus.props.js.map +1 -1
- package/dist/es/src/components/CdsSteps/CdsSteps.css +0 -18
- package/dist/es/src/components/CdsSteps/CdsSteps.vue_vue_type_script_setup_true_lang.js +8 -0
- package/dist/es/src/components/CdsSteps/CdsSteps.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsSteps/api/CdsSteps.props.js +45 -12
- package/dist/es/src/components/CdsSteps/api/CdsSteps.props.js.map +1 -1
- package/dist/es/src/components/CdsSurface/CdsSurface.css +0 -18
- package/dist/es/src/components/CdsSurface/CdsSurface.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsSurface/api/CdsSurface.props.js +5 -2
- package/dist/es/src/components/CdsSurface/api/CdsSurface.props.js.map +1 -1
- package/dist/es/src/components/CdsTable/CdsTable.css +0 -18
- package/dist/es/src/components/CdsTable/CdsTable.vue_vue_type_script_setup_true_lang.js +4 -0
- package/dist/es/src/components/CdsTable/CdsTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsTable/api/CdsTable.props.js +1 -1
- package/dist/es/src/components/CdsTable/components/TableProvider.js +2 -2
- package/dist/es/src/components/CdsTable/composable/table.js +47 -0
- package/dist/es/src/components/CdsTable/composable/table.js.map +1 -1
- package/dist/es/src/components/CdsTabs/CdsTabs.css +0 -18
- package/dist/es/src/components/CdsTabs/api/CdsTabs.props.js +56 -0
- package/dist/es/src/components/CdsTabs/api/CdsTabs.props.js.map +1 -1
- package/dist/es/src/components/CdsTag/CdsTag.css +0 -18
- package/dist/es/src/components/CdsTag/CdsTag.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsTag/api/CdsTag.props.js +72 -18
- package/dist/es/src/components/CdsTag/api/CdsTag.props.js.map +1 -1
- package/dist/es/src/components/CdsTagGroup/CdsTagGroup.css +0 -18
- package/dist/es/src/components/CdsTagGroup/CdsTagGroup.vue_vue_type_script_setup_true_lang.js +21 -6
- package/dist/es/src/components/CdsTagGroup/CdsTagGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsTagGroup/api/CdsTagGroup.props.js +12 -4
- package/dist/es/src/components/CdsTagGroup/api/CdsTagGroup.props.js.map +1 -1
- package/dist/es/src/components/CdsTextArea/CdsTextArea.css +0 -18
- package/dist/es/src/components/CdsTextArea/api/CdsTextArea.props.js +52 -13
- package/dist/es/src/components/CdsTextArea/api/CdsTextArea.props.js.map +1 -1
- package/dist/es/src/components/CdsTextInput/CdsTextInput.css +0 -18
- package/dist/es/src/components/CdsTextInput/api/CdsTextInput.props.js +40 -10
- package/dist/es/src/components/CdsTextInput/api/CdsTextInput.props.js.map +1 -1
- package/dist/es/src/components/CdsTimePicker/CdsTimePicker.css +0 -18
- package/dist/es/src/components/CdsTimePicker/CdsTimePicker.vue_vue_type_script_setup_true_lang.js +25 -1
- package/dist/es/src/components/CdsTimePicker/CdsTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsTimePicker/api/CdsTimePicker.props.js +33 -9
- package/dist/es/src/components/CdsTimePicker/api/CdsTimePicker.props.js.map +1 -1
- package/dist/es/src/components/CdsToast/CdsToast.css +0 -18
- package/dist/es/src/components/CdsToast/CdsToast.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsToast/api/CdsToast.props.js +48 -12
- package/dist/es/src/components/CdsToast/api/CdsToast.props.js.map +1 -1
- package/dist/es/src/components/CdsToastQueue/CdsToastQueue.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/es/src/components/CdsToastQueue/CdsToastQueue.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsToastQueue/api/CdsToastQueue.props.js +28 -7
- package/dist/es/src/components/CdsToastQueue/api/CdsToastQueue.props.js.map +1 -1
- package/dist/es/src/components/CdsToggle/CdsToggle.css +0 -18
- package/dist/es/src/components/CdsToggle/api/CdsToggle.props.js +12 -3
- package/dist/es/src/components/CdsToggle/api/CdsToggle.props.js.map +1 -1
- package/dist/es/src/components/CdsToolbar/CdsToolbar.css +0 -18
- package/dist/es/src/components/CdsToolbar/CdsToolbar.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsToolbar/api/CdsToolbar.props.js +21 -6
- package/dist/es/src/components/CdsToolbar/api/CdsToolbar.props.js.map +1 -1
- package/dist/es/src/components/CdsTooltip/CdsTooltip.css +0 -18
- package/dist/es/src/components/CdsTooltip/api/CdsTooltip.props.js +20 -5
- package/dist/es/src/components/CdsTooltip/api/CdsTooltip.props.js.map +1 -1
- package/dist/es/src/components/CdsTree/CdsTree.css +0 -18
- package/dist/es/src/components/CdsTree/CdsTree.vue_vue_type_script_setup_true_lang.js +17 -1
- package/dist/es/src/components/CdsTree/CdsTree.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsTree/api/CdsTree.props.js +1 -1
- package/dist/es/src/components/CdsTree/composable/tree.js +28 -0
- package/dist/es/src/components/CdsTree/composable/tree.js.map +1 -1
- package/dist/es/src/components/CdsTree/composable/treeNode.js +68 -2
- package/dist/es/src/components/CdsTree/composable/treeNode.js.map +1 -1
- package/dist/es/src/components/CdsUploader/CdsUploader.css +0 -18
- package/dist/es/src/components/CdsUploader/CdsUploader.vue_vue_type_script_setup_true_lang.js +9 -1
- package/dist/es/src/components/CdsUploader/CdsUploader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsUploader/composables/useUpload.js +104 -26
- package/dist/es/src/components/CdsUploader/composables/useUpload.js.map +1 -1
- package/dist/es/src/components/CdsVirtualScroll/CdsVirtualScroll.css +0 -18
- package/dist/es/src/components/CdsVirtualScroll/CdsVirtualScroll.vue_vue_type_script_setup_true_lang.js +8 -0
- package/dist/es/src/components/CdsVirtualScroll/CdsVirtualScroll.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/es/src/components/CdsVirtualScroll/api/CdsVirtualScroll.props.js +12 -3
- package/dist/es/src/components/CdsVirtualScroll/api/CdsVirtualScroll.props.js.map +1 -1
- package/dist/es/src/components/index.js +2 -1
- package/dist/es/src/components/index.js.map +1 -1
- package/dist/es/src/composables/useAppearance/useAppearance.js +4 -1
- package/dist/es/src/composables/useAppearance/useAppearance.js.map +1 -1
- package/dist/es/src/composables/useColor/useColor.js +20 -5
- package/dist/es/src/composables/useColor/useColor.js.map +1 -1
- package/dist/es/src/composables/useDatetime/useDatetime.js +3 -0
- package/dist/es/src/composables/useDatetime/useDatetime.js.map +1 -1
- package/dist/es/src/composables/useDelay/useDelay.js +8 -2
- package/dist/es/src/composables/useDelay/useDelay.js.map +1 -1
- package/dist/es/src/composables/useDimensions/useDimensions.js +24 -6
- package/dist/es/src/composables/useDimensions/useDimensions.js.map +1 -1
- package/dist/es/src/composables/useDirection/useDirection.js +4 -1
- package/dist/es/src/composables/useDirection/useDirection.js.map +1 -1
- package/dist/es/src/composables/useDisabled/index.js +1 -1
- package/dist/es/src/composables/useDisabled/index.js.map +1 -1
- package/dist/es/src/composables/useDisabled/useDisabled.js +4 -1
- package/dist/es/src/composables/useDisabled/useDisabled.js.map +1 -1
- package/dist/es/src/composables/useDisplay/useDisplay.js +2 -0
- package/dist/es/src/composables/useDisplay/useDisplay.js.map +1 -1
- package/dist/es/src/composables/useFilter/useFilter.js +20 -0
- package/dist/es/src/composables/useFilter/useFilter.js.map +1 -1
- package/dist/es/src/composables/useFocus/useFocus.js +12 -3
- package/dist/es/src/composables/useFocus/useFocus.js.map +1 -1
- package/dist/es/src/composables/useFocus/useFocusTrap.js +8 -2
- package/dist/es/src/composables/useFocus/useFocusTrap.js.map +1 -1
- package/dist/es/src/composables/useForm/useForm.js +45 -0
- package/dist/es/src/composables/useForm/useForm.js.map +1 -1
- package/dist/es/src/composables/useGroup/useGroup.js +24 -6
- package/dist/es/src/composables/useGroup/useGroup.js.map +1 -1
- package/dist/es/src/composables/useGroup/useGroupItem.js +8 -2
- package/dist/es/src/composables/useGroup/useGroupItem.js.map +1 -1
- package/dist/es/src/composables/useHydration/useHydration.js +1 -1
- package/dist/es/src/composables/useItems/useItems.js +32 -8
- package/dist/es/src/composables/useItems/useItems.js.map +1 -1
- package/dist/es/src/composables/useLayout/context.js.map +1 -1
- package/dist/es/src/composables/useLayout/useLayout.js +25 -7
- package/dist/es/src/composables/useLayout/useLayout.js.map +1 -1
- package/dist/es/src/composables/useLazy/useLazy.js +1 -0
- package/dist/es/src/composables/useLazy/useLazy.js.map +1 -1
- package/dist/es/src/composables/useLoader/index.js +1 -1
- package/dist/es/src/composables/useLoader/index.js.map +1 -1
- package/dist/es/src/composables/useLoader/useLoader.js +4 -1
- package/dist/es/src/composables/useLoader/useLoader.js.map +1 -1
- package/dist/es/src/composables/useLocation/index.js +1 -1
- package/dist/es/src/composables/useLocation/index.js.map +1 -1
- package/dist/es/src/composables/useLocation/useLocation.js +4 -1
- package/dist/es/src/composables/useLocation/useLocation.js.map +1 -1
- package/dist/es/src/composables/useNested/useNested.js +44 -11
- package/dist/es/src/composables/useNested/useNested.js.map +1 -1
- package/dist/es/src/composables/usePosition/usePosition.js +4 -0
- package/dist/es/src/composables/usePosition/usePosition.js.map +1 -1
- package/dist/es/src/composables/useReadonly/useReadonly.js +4 -1
- package/dist/es/src/composables/useReadonly/useReadonly.js.map +1 -1
- package/dist/es/src/composables/useReveal/useReveal.js +4 -1
- package/dist/es/src/composables/useReveal/useReveal.js.map +1 -1
- package/dist/es/src/composables/useRouter/index.js +1 -1
- package/dist/es/src/composables/useRouter/index.js.map +1 -1
- package/dist/es/src/composables/useRouter/useRouter.js +16 -4
- package/dist/es/src/composables/useRouter/useRouter.js.map +1 -1
- package/dist/es/src/composables/useSize/useSize.js +4 -1
- package/dist/es/src/composables/useSize/useSize.js.map +1 -1
- package/dist/es/src/composables/useStatus/useStatus.js +4 -1
- package/dist/es/src/composables/useStatus/useStatus.js.map +1 -1
- package/dist/es/src/composables/useText/useText.js +8 -2
- package/dist/es/src/composables/useText/useText.js.map +1 -1
- package/dist/es/src/composables/useTheme/internal/useTheme.constants.js +13 -2
- package/dist/es/src/composables/useTheme/internal/useTheme.constants.js.map +1 -1
- package/dist/es/src/composables/useTheme/useTheme.js +4 -1
- package/dist/es/src/composables/useTheme/useTheme.js.map +1 -1
- package/dist/es/src/composables/useTransition/useTransition.js +4 -1
- package/dist/es/src/composables/useTransition/useTransition.js.map +1 -1
- package/dist/es/src/composables/useValidation/useValidation.js +26 -6
- package/dist/es/src/composables/useValidation/useValidation.js.map +1 -1
- package/dist/es/src/composables/useVirtual/useVirtual.js +13 -4
- package/dist/es/src/composables/useVirtual/useVirtual.js.map +1 -1
- package/dist/es/src/core/defineComponent.js +4 -1
- package/dist/es/src/core/defineComponent.js.map +1 -1
- package/dist/es/src/core/useDefaults.js +3 -1
- package/dist/es/src/locales/adapters/cdsLocaleAdapter.js +2 -1
- package/dist/es/src/locales/adapters/cdsLocaleAdapter.js.map +1 -1
- package/dist/es/src/locales/en.js +70 -0
- package/dist/es/src/locales/en.js.map +1 -0
- package/dist/es/src/locales/index.js +18 -0
- package/dist/es/src/locales/index.js.map +1 -0
- package/dist/es/src/themes/index.js +4 -0
- package/dist/es/src/themes/index.js.map +1 -1
- package/dist/es/src/themes/lumaDark.js +24 -0
- package/dist/es/src/themes/lumaDark.js.map +1 -0
- package/dist/es/src/themes/lumaLight.js +20 -0
- package/dist/es/src/themes/lumaLight.js.map +1 -0
- package/dist/es/src/utils/date/date.js +4 -4
- package/dist/es/src/utils/date/date.js.map +1 -1
- package/dist/esm-node/entry.css +0 -18
- package/dist/esm-node/entry.mjs +132 -122
- package/dist/esm-node/src/assets/icons/cdsLegacy.mjs +1 -1
- package/dist/esm-node/src/cds.mjs +6 -6
- package/dist/esm-node/src/components/CdsApp/CdsApp.css +0 -18
- package/dist/esm-node/src/components/CdsApp/CdsApp.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsApp/api/CdsApp.props.mjs +2 -1
- package/dist/esm-node/src/components/CdsAutocomplete/CdsAutocomplete.css +0 -18
- package/dist/esm-node/src/components/CdsAutocomplete/CdsAutocomplete.vue_vue_type_script_setup_true_lang.mjs +23 -8
- package/dist/esm-node/src/components/CdsAutocomplete/api/CdsAutocomplete.props.mjs +10 -3
- package/dist/esm-node/src/components/CdsAvatar/CdsAvatar.css +0 -18
- package/dist/esm-node/src/components/CdsAvatar/CdsAvatar.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsAvatar/api/CdsAvatar.props.mjs +21 -6
- package/dist/esm-node/src/components/CdsBadge/CdsBadge.css +0 -18
- package/dist/esm-node/src/components/CdsBadge/CdsBadge.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsBadge/api/CdsBadge.props.mjs +39 -11
- package/dist/esm-node/src/components/CdsBreadcrumbs/CdsBreadcrumbs.css +0 -18
- package/dist/esm-node/src/components/CdsBreadcrumbs/CdsBreadcrumbs.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsBreadcrumbs/CdsBreadcrumbsDivider.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsBreadcrumbs/CdsBreadcrumbsItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsBreadcrumbs/api/CdsBreadcrumbs.props.mjs +33 -9
- package/dist/esm-node/src/components/CdsButton/CdsButton.css +0 -18
- package/dist/esm-node/src/components/CdsButton/CdsButton.vue_vue_type_script_setup_true_lang.mjs +6 -3
- package/dist/esm-node/src/components/CdsButton/api/CdsButton.props.mjs +30 -9
- package/dist/esm-node/src/components/CdsButtonGroup/CdsButtonGroup.css +0 -18
- package/dist/esm-node/src/components/CdsButtonGroup/CdsButtonGroup.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsButtonGroup/api/CdsButtonGroup.props.mjs +6 -3
- package/dist/esm-node/src/components/CdsButtonToggle/CdsButtonToggle.css +0 -18
- package/dist/esm-node/src/components/CdsButtonToggle/CdsButtonToggle.vue_vue_type_script_setup_true_lang.mjs +21 -6
- package/dist/esm-node/src/components/CdsButtonToggle/api/CdsButtonToggle.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsCard/CdsCard.css +0 -18
- package/dist/esm-node/src/components/CdsCard/CdsCard.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsCard/CdsCardActions.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsCard/CdsCardDivider.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsCard/CdsCardGroup.vue_vue_type_script_setup_true_lang.mjs +22 -7
- package/dist/esm-node/src/components/CdsCard/CdsCardItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsCard/CdsCardSubtitle.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsCard/CdsCardText.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsCard/CdsCardTitle.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsCard/api/CdsCard.props.mjs +85 -21
- package/dist/esm-node/src/components/CdsCarousel/CdsCarousel.css +0 -18
- package/dist/esm-node/src/components/CdsCarousel/CdsCarousel.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsCarousel/CdsCarouselItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsCarousel/api/CdsCarousel.props.mjs +36 -9
- package/dist/esm-node/src/components/CdsCheckbox/CdsCheckbox.css +0 -18
- package/dist/esm-node/src/components/CdsCheckbox/CdsCheckbox.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsCheckbox/api/CdsCheckbox.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsCheckboxButton/CdsCheckboxButton.css +0 -18
- package/dist/esm-node/src/components/CdsCheckboxButton/CdsCheckboxButton.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsCheckboxButton/api/CdsCheckboxButton.props.mjs +8 -2
- package/dist/esm-node/src/components/CdsCombobox/CdsCombobox.css +0 -18
- package/dist/esm-node/src/components/CdsCombobox/CdsCombobox.vue_vue_type_script_setup_true_lang.mjs +27 -9
- package/dist/esm-node/src/components/CdsCombobox/api/CdsCombobox.props.mjs +14 -4
- package/dist/esm-node/src/components/CdsCounter/CdsCounter.css +0 -18
- package/dist/esm-node/src/components/CdsCounter/CdsCounter.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsCounter/api/CdsCounter.props.mjs +12 -3
- package/dist/esm-node/src/components/CdsDateInput/CdsDateInput.css +0 -18
- package/dist/esm-node/src/components/CdsDateInput/CdsDateInput.vue_vue_type_script_setup_true_lang.mjs +11 -3
- package/dist/esm-node/src/components/CdsDateInput/api/CdsDateInput.props.mjs +32 -8
- package/dist/esm-node/src/components/CdsDatePicker/CdsDatePicker.css +0 -18
- package/dist/esm-node/src/components/CdsDatePicker/CdsDatePicker.vue_vue_type_script_setup_true_lang.mjs +23 -3
- package/dist/esm-node/src/components/CdsDatePicker/api/CdsDatePicker.props.mjs +65 -16
- package/dist/esm-node/src/components/CdsDatePicker/composables/useCalendar.mjs +3 -3
- package/dist/esm-node/src/components/CdsDefaultsProvider/api/CdsDefaultsProvider.props.mjs +5 -0
- package/dist/esm-node/src/components/CdsDescription/CdsDescription.css +0 -18
- package/dist/esm-node/src/components/CdsDescription/CdsDescription.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsDivider/CdsDivider.css +0 -18
- package/dist/esm-node/src/components/CdsDivider/CdsDivider.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsDivider/api/CdsDivider.props.mjs +33 -8
- package/dist/esm-node/src/components/CdsDrawer/CdsDrawer.css +0 -18
- package/dist/esm-node/src/components/CdsDrawer/CdsDrawer.vue_vue_type_script_setup_true_lang.mjs +8 -4
- package/dist/esm-node/src/components/CdsDrawer/api/CdsDrawer.props.mjs +34 -10
- package/dist/esm-node/src/components/CdsEmptyState/CdsEmptyState.css +0 -18
- package/dist/esm-node/src/components/CdsEmptyState/CdsEmptyState.vue_vue_type_script_setup_true_lang.mjs +5 -5
- package/dist/esm-node/src/components/CdsEmptyState/api/CdsEmptyState.props.mjs +35 -10
- package/dist/esm-node/src/components/CdsExpandablePanel/CdsExpandablePanel.vue_vue_type_script_setup_true_lang.mjs +17 -5
- package/dist/esm-node/src/components/CdsExpandablePanel/CdsExpandablePanelContent.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsExpandablePanel/CdsExpandablePanelTitle.vue_vue_type_script_setup_true_lang.mjs +9 -3
- package/dist/esm-node/src/components/CdsExpandablePanel/CdsExpandablePanels.css +0 -18
- package/dist/esm-node/src/components/CdsExpandablePanel/CdsExpandablePanels.vue_vue_type_script_setup_true_lang.mjs +11 -5
- package/dist/esm-node/src/components/CdsExpandablePanel/api/CdsExpandablePanel.props.mjs +40 -11
- package/dist/esm-node/src/components/CdsField/CdsField.css +0 -18
- package/dist/esm-node/src/components/CdsField/CdsField.vue_vue_type_script_setup_true_lang.mjs +15 -5
- package/dist/esm-node/src/components/CdsField/api/CdsField.props.mjs +58 -16
- package/dist/esm-node/src/components/CdsField/composables/useAutocomplete.mjs +1 -0
- package/dist/esm-node/src/components/CdsFileInput/CdsFileInput.css +0 -18
- package/dist/esm-node/src/components/CdsFileInput/CdsFileInput.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsFileInput/api/CdsFileInput.props.mjs +41 -11
- package/dist/esm-node/src/components/CdsFileInput/composables/useFileFilter.mjs +4 -1
- package/dist/esm-node/src/components/CdsFileUpload/CdsFileUpload.css +0 -18
- package/dist/esm-node/src/components/CdsFileUpload/CdsFileUpload.vue_vue_type_script_setup_true_lang.mjs +6 -2
- package/dist/esm-node/src/components/CdsFileUpload/CdsFileUploadDropzone.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsFileUpload/CdsFileUploadItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsFileUpload/CdsFileUploadList.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsFileUpload/api/CdsFileUpload.props.mjs +86 -22
- package/dist/esm-node/src/components/CdsFooter/CdsFooter.css +0 -18
- package/dist/esm-node/src/components/CdsFooter/CdsFooter.vue_vue_type_script_setup_true_lang.mjs +4 -4
- package/dist/esm-node/src/components/CdsFooter/api/CdsFooter.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsForm/CdsForm.css +0 -18
- package/dist/esm-node/src/components/CdsForm/CdsForm.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsForm/api/CdsForm.props.mjs +8 -2
- package/dist/esm-node/src/components/CdsFunctionalButton/CdsFunctionalButton.css +0 -18
- package/dist/esm-node/src/components/CdsFunctionalButton/api/CdsFunctionalButton.props.mjs +6 -3
- package/dist/esm-node/src/components/CdsGrid/CdsCol.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsGrid/CdsRow.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsGrid/api/CdsGrid.props.mjs +41 -11
- package/dist/esm-node/src/components/CdsGrid/components/CSSGrid.css +0 -18
- package/dist/esm-node/src/components/CdsGrid/components/CSSGrid.mjs +1 -1
- package/dist/esm-node/src/components/CdsGrid/components/FlexGrid.css +0 -18
- package/dist/esm-node/src/components/CdsGrid/components/FlexGrid.mjs +1 -1
- package/dist/esm-node/src/components/CdsHeader/CdsHeader.css +0 -18
- package/dist/esm-node/src/components/CdsHeader/CdsHeader.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsHeader/api/CdsHeader.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsHighlight/CdsHighlight.css +0 -18
- package/dist/esm-node/src/components/CdsHighlight/CdsHighlight.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsHighlight/api/CdsHighlight.props.mjs +32 -8
- package/dist/esm-node/src/components/CdsHighlight/utils/toHighlight.mjs +1 -1
- package/dist/esm-node/src/components/CdsIcon/CdsIcon.css +0 -18
- package/dist/esm-node/src/components/CdsIcon/CdsIcon.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsIcon/api/CdsIcon.props.mjs +18 -5
- package/dist/esm-node/src/components/CdsImage/CdsImage.css +0 -18
- package/dist/esm-node/src/components/CdsImage/CdsImage.vue_vue_type_script_setup_true_lang.mjs +24 -4
- package/dist/esm-node/src/components/CdsImage/api/CdsImage.props.mjs +65 -17
- package/dist/esm-node/src/components/CdsInput/CdsInput.css +0 -18
- package/dist/esm-node/src/components/CdsInput/CdsInput.vue_vue_type_script_setup_true_lang.mjs +46 -13
- package/dist/esm-node/src/components/CdsInput/CdsInputIcon.mjs +1 -1
- package/dist/esm-node/src/components/CdsInput/api/CdsInput.props.mjs +50 -14
- package/dist/esm-node/src/components/CdsLabel/CdsLabel.css +0 -18
- package/dist/esm-node/src/components/CdsLabel/CdsLabel.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsLabel/api/CdsLabel.props.mjs +5 -1
- package/dist/esm-node/src/components/CdsLayout/CdsLayout.css +0 -18
- package/dist/esm-node/src/components/CdsLayout/CdsLayout.vue_vue_type_script_setup_true_lang.mjs +5 -5
- package/dist/esm-node/src/components/CdsLayout/api/CdsLayout.props.mjs +6 -2
- package/dist/esm-node/src/components/CdsLayout/internal/LayoutResizeObserver.mjs +1 -1
- package/dist/esm-node/src/components/CdsLayout/internal/LayoutScrollObserver.mjs +2 -2
- package/dist/esm-node/src/components/CdsLink/CdsLink.css +0 -18
- package/dist/esm-node/src/components/CdsLink/CdsLink.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsLink/api/CdsLink.props.mjs +5 -2
- package/dist/esm-node/src/components/CdsList/CdsList.css +0 -18
- package/dist/esm-node/src/components/CdsList/CdsList.vue_vue_type_script_setup_true_lang.mjs +27 -9
- package/dist/esm-node/src/components/CdsList/CdsListGroup.vue_vue_type_script_setup_true_lang.mjs +5 -2
- package/dist/esm-node/src/components/CdsList/CdsListItem.css +0 -18
- package/dist/esm-node/src/components/CdsList/CdsListItem.vue_vue_type_script_setup_true_lang.mjs +31 -10
- package/dist/esm-node/src/components/CdsList/CdsListItemAction.vue_vue_type_script_setup_true_lang.mjs +9 -3
- package/dist/esm-node/src/components/CdsList/CdsListItemDivider.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsList/CdsListItemMedia.vue_vue_type_script_setup_true_lang.mjs +9 -3
- package/dist/esm-node/src/components/CdsList/CdsListSubheader.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsList/api/CdsList.props.mjs +146 -38
- package/dist/esm-node/src/components/CdsList/components/ListChildren.vue_vue_type_script_setup_true_lang.mjs +8 -2
- package/dist/esm-node/src/components/CdsList/composables/useList.mjs +1 -1
- package/dist/esm-node/src/components/CdsList/index.mjs +5 -2
- package/dist/esm-node/src/components/CdsLoader/CdsLoader.css +0 -18
- package/dist/esm-node/src/components/CdsLoader/CdsLoader.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsLoader/api/CdsLoader.props.mjs +12 -3
- package/dist/esm-node/src/components/CdsMain/CdsMain.css +0 -18
- package/dist/esm-node/src/components/CdsMain/CdsMain.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsMenu/CdsMenu.css +0 -18
- package/dist/esm-node/src/components/CdsMenu/CdsMenu.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsMenu/api/CdsMenu.props.mjs +9 -3
- package/dist/esm-node/src/components/CdsMessages/CdsMessages.css +0 -18
- package/dist/esm-node/src/components/CdsMessages/CdsMessages.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsMessages/api/CdsMessages.props.mjs +12 -3
- package/dist/esm-node/src/components/CdsModal/CdsModal.css +0 -18
- package/dist/esm-node/src/components/CdsModal/CdsModal.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsModal/api/CdsModal.props.mjs +8 -2
- package/dist/esm-node/src/components/CdsNotification/CdsNotification.css +0 -18
- package/dist/esm-node/src/components/CdsNotification/CdsNotification.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsNotification/api/CdsNotification.props.mjs +30 -9
- package/dist/esm-node/src/components/CdsNotificationAlert/CdsNotificationAlert.css +0 -18
- package/dist/esm-node/src/components/CdsNotificationAlert/CdsNotificationAlert.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsNotificationAlert/api/CdsNotificationAlert.props.mjs +29 -8
- package/dist/esm-node/src/components/CdsOtpInput/CdsOtpField.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsOtpInput/CdsOtpGroup.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsOtpInput/CdsOtpInput.css +0 -18
- package/dist/esm-node/src/components/CdsOtpInput/CdsOtpInput.vue_vue_type_script_setup_true_lang.mjs +23 -8
- package/dist/esm-node/src/components/CdsOtpInput/CdsOtpSeparator.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsOtpInput/api/CdsOtpInput.props.mjs +53 -14
- package/dist/esm-node/src/components/CdsOverlay/CdsOverlay.css +0 -18
- package/dist/esm-node/src/components/CdsOverlay/CdsOverlay.vue_vue_type_script_setup_true_lang.mjs +50 -17
- package/dist/esm-node/src/components/CdsOverlay/api/CdsOverlay.props.mjs +37 -9
- package/dist/esm-node/src/components/CdsOverlay/components/Scrim.mjs +1 -1
- package/dist/esm-node/src/components/CdsOverlay/composables/useActivator.mjs +27 -8
- package/dist/esm-node/src/components/CdsOverlay/composables/useLocationStrategies.mjs +21 -7
- package/dist/esm-node/src/components/CdsOverlay/composables/useScrollStrategies.mjs +7 -4
- package/dist/esm-node/src/components/CdsPage/CdsPage.css +0 -18
- package/dist/esm-node/src/components/CdsPage/CdsPage.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsPage/api/CdsPage.props.mjs +5 -1
- package/dist/esm-node/src/components/CdsPagination/CdsPagination.css +0 -18
- package/dist/esm-node/src/components/CdsPagination/CdsPagination.vue_vue_type_script_setup_true_lang.mjs +20 -4
- package/dist/esm-node/src/components/CdsPagination/api/CdsPagination.props.mjs +85 -22
- package/dist/esm-node/src/components/CdsProgressBar/CdsProgressBar.css +0 -18
- package/dist/esm-node/src/components/CdsProgressBar/CdsProgressBar.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsProgressBar/api/CdsProgressBar.props.mjs +65 -17
- package/dist/esm-node/src/components/CdsProgressBar/composables/useChunk.mjs +5 -1
- package/dist/esm-node/src/components/CdsProgressCircle/CdsProgressCircle.css +0 -18
- package/dist/esm-node/src/components/CdsProgressCircle/CdsProgressCircle.vue_vue_type_script_setup_true_lang.mjs +4 -4
- package/dist/esm-node/src/components/CdsProgressCircle/api/CdsProgressCircle.props.mjs +29 -8
- package/dist/esm-node/src/components/CdsRadio/CdsRadio.css +0 -18
- package/dist/esm-node/src/components/CdsRadio/CdsRadio.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsRadioGroup/CdsRadioGroup.css +0 -18
- package/dist/esm-node/src/components/CdsRadioGroup/CdsRadioGroup.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsRadioGroup/api/CdsRadioGroup.props.mjs +17 -5
- package/dist/esm-node/src/components/CdsResponsive/CdsResponsive.css +0 -18
- package/dist/esm-node/src/components/CdsResponsive/CdsResponsive.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsResponsive/api/CdsResponsive.props.mjs +12 -3
- package/dist/esm-node/src/components/CdsResponsive/composables/useAspectStyles.mjs +1 -1
- package/dist/esm-node/src/components/CdsSelect/CdsSelect.css +0 -18
- package/dist/esm-node/src/components/CdsSelect/CdsSelect.vue_vue_type_script_setup_true_lang.mjs +19 -7
- package/dist/esm-node/src/components/CdsSelect/api/CdsSelect.props.mjs +5 -2
- package/dist/esm-node/src/components/CdsSelect/composables/useMenuActivator.mjs +8 -2
- package/dist/esm-node/src/components/CdsSelect/composables/useSelect.mjs +69 -17
- package/dist/esm-node/src/components/CdsSelectionControl/CdsSelectionControl.css +0 -18
- package/dist/esm-node/src/components/CdsSelectionControl/CdsSelectionControl.vue_vue_type_script_setup_true_lang.mjs +10 -2
- package/dist/esm-node/src/components/CdsSelectionControl/api/CdsSelectionControl.props.mjs +13 -4
- package/dist/esm-node/src/components/CdsSelectionControl/composables/useSelectionControl.mjs +1 -1
- package/dist/esm-node/src/components/CdsSelectionControlGroup/CdsSelectionControlGroup.css +0 -18
- package/dist/esm-node/src/components/CdsSelectionControlGroup/CdsSelectionControlGroup.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsSelectionControlGroup/api/CdsSelectionControlGroup.props.mjs +45 -12
- package/dist/esm-node/src/components/CdsSkeletonLoader/CdsSkeletonLoader.css +0 -18
- package/dist/esm-node/src/components/CdsSkeletonLoader/CdsSkeletonLoader.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsSkeletonLoader/api/CdsSkeletonLoader.props.mjs +17 -5
- package/dist/esm-node/src/components/CdsSlideGroup/CdsSlideGroup.css +0 -18
- package/dist/esm-node/src/components/CdsSlideGroup/CdsSlideGroup.vue_vue_type_script_setup_true_lang.mjs +28 -10
- package/dist/esm-node/src/components/CdsSlideGroup/api/CdsSlideGroup.props.mjs +26 -7
- package/dist/esm-node/src/components/CdsSlideView/CdsSlideView.css +0 -18
- package/dist/esm-node/src/components/CdsSlideView/CdsSlideView.vue_vue_type_script_setup_true_lang.mjs +8 -4
- package/dist/esm-node/src/components/CdsSlideView/CdsSlideViewItem.vue_vue_type_script_setup_true_lang.mjs +7 -3
- package/dist/esm-node/src/components/CdsSlideView/api/CdsSlideView.props.mjs +45 -1
- package/dist/esm-node/src/components/CdsStages/CdsStages.css +0 -18
- package/dist/esm-node/src/components/CdsStages/CdsStages.vue_vue_type_script_setup_true_lang.mjs +10 -2
- package/dist/esm-node/src/components/CdsStages/api/CdsStages.props.mjs +9 -3
- package/dist/esm-node/src/components/CdsStatus/CdsStatus.css +0 -18
- package/dist/esm-node/src/components/CdsStatus/CdsStatus.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsStatus/api/CdsStatus.props.mjs +5 -2
- package/dist/esm-node/src/components/CdsSteps/CdsSteps.css +0 -18
- package/dist/esm-node/src/components/CdsSteps/CdsSteps.vue_vue_type_script_setup_true_lang.mjs +10 -2
- package/dist/esm-node/src/components/CdsSteps/CdsStepsActions.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsSteps/CdsStepsItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsSteps/CdsStepsView.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsSteps/CdsStepsViewItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsSteps/api/CdsSteps.props.mjs +46 -13
- package/dist/esm-node/src/components/CdsSurface/CdsSurface.css +0 -18
- package/dist/esm-node/src/components/CdsSurface/CdsSurface.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsSurface/api/CdsSurface.props.mjs +5 -2
- package/dist/esm-node/src/components/CdsTable/CdsTable.css +0 -18
- package/dist/esm-node/src/components/CdsTable/CdsTable.vue_vue_type_script_setup_true_lang.mjs +4 -0
- package/dist/esm-node/src/components/CdsTable/api/CdsTable.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/components/Body/BodyRow.mjs +2 -2
- package/dist/esm-node/src/components/CdsTable/components/Cell/Cell.mjs +6 -6
- package/dist/esm-node/src/components/CdsTable/components/Drag/ColumnDragHandle.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/components/Drag/RowDragHandle.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/components/Filter/FilterDropdown.mjs +3 -3
- package/dist/esm-node/src/components/CdsTable/components/FixedHolder/FixedHolder.mjs +2 -2
- package/dist/esm-node/src/components/CdsTable/components/Header/DragHandle.mjs +4 -4
- package/dist/esm-node/src/components/CdsTable/components/Header/Header.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/components/Header/HeaderRow.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/components/ResizeObserver/ResizeObserver.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/components/StickyScrollbar/StickyScrollbar.mjs +3 -3
- package/dist/esm-node/src/components/CdsTable/components/Table/InternalTable.mjs +4 -4
- package/dist/esm-node/src/components/CdsTable/components/TableProvider.mjs +6 -6
- package/dist/esm-node/src/components/CdsTable/composable/columns.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/composable/filter.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/composable/frame.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/composable/pagination.mjs +2 -2
- package/dist/esm-node/src/components/CdsTable/composable/scroll.mjs +3 -3
- package/dist/esm-node/src/components/CdsTable/composable/selection.mjs +2 -2
- package/dist/esm-node/src/components/CdsTable/composable/sorter.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/composable/sticky.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/composable/table.mjs +47 -0
- package/dist/esm-node/src/components/CdsTable/context/sticky.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/utils/column.mjs +1 -1
- package/dist/esm-node/src/components/CdsTabs/CdsTab.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsTabs/CdsTabs.css +0 -18
- package/dist/esm-node/src/components/CdsTabs/CdsTabs.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsTabs/CdsTabsView.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsTabs/CdsTabsViewItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsTabs/api/CdsTabs.props.mjs +57 -1
- package/dist/esm-node/src/components/CdsTag/CdsTag.css +0 -18
- package/dist/esm-node/src/components/CdsTag/CdsTag.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsTag/api/CdsTag.props.mjs +73 -19
- package/dist/esm-node/src/components/CdsTagGroup/CdsTagGroup.css +0 -18
- package/dist/esm-node/src/components/CdsTagGroup/CdsTagGroup.vue_vue_type_script_setup_true_lang.mjs +22 -7
- package/dist/esm-node/src/components/CdsTagGroup/api/CdsTagGroup.props.mjs +13 -5
- package/dist/esm-node/src/components/CdsTextArea/CdsTextArea.css +0 -18
- package/dist/esm-node/src/components/CdsTextArea/CdsTextArea.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsTextArea/api/CdsTextArea.props.mjs +53 -14
- package/dist/esm-node/src/components/CdsTextInput/CdsTextInput.css +0 -18
- package/dist/esm-node/src/components/CdsTextInput/CdsTextInput.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsTextInput/api/CdsTextInput.props.mjs +41 -11
- package/dist/esm-node/src/components/CdsTimePicker/CdsTimePicker.css +0 -18
- package/dist/esm-node/src/components/CdsTimePicker/CdsTimePicker.vue_vue_type_script_setup_true_lang.mjs +27 -3
- package/dist/esm-node/src/components/CdsTimePicker/api/CdsTimePicker.props.mjs +33 -9
- package/dist/esm-node/src/components/CdsTimePicker/composables/useTime.mjs +1 -1
- package/dist/esm-node/src/components/CdsToast/CdsToast.css +0 -18
- package/dist/esm-node/src/components/CdsToast/CdsToast.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsToast/api/CdsToast.props.mjs +49 -13
- package/dist/esm-node/src/components/CdsToastQueue/CdsToastQueue.vue_vue_type_script_setup_true_lang.mjs +5 -2
- package/dist/esm-node/src/components/CdsToastQueue/api/CdsToastQueue.props.mjs +29 -8
- package/dist/esm-node/src/components/CdsToastQueue/composables/useDocumentVisibility.mjs +1 -1
- package/dist/esm-node/src/components/CdsToggle/CdsToggle.css +0 -18
- package/dist/esm-node/src/components/CdsToggle/CdsToggle.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsToggle/api/CdsToggle.props.mjs +13 -4
- package/dist/esm-node/src/components/CdsToolbar/CdsToolbar.css +0 -18
- package/dist/esm-node/src/components/CdsToolbar/CdsToolbar.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsToolbar/CdsToolbarTitle.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsToolbar/api/CdsToolbar.props.mjs +22 -7
- package/dist/esm-node/src/components/CdsTooltip/CdsTooltip.css +0 -18
- package/dist/esm-node/src/components/CdsTooltip/CdsTooltip.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsTooltip/api/CdsTooltip.props.mjs +21 -6
- package/dist/esm-node/src/components/CdsTree/CdsTree.css +0 -18
- package/dist/esm-node/src/components/CdsTree/CdsTree.vue_vue_type_script_setup_true_lang.mjs +19 -3
- package/dist/esm-node/src/components/CdsTree/CdsTreeDirectory.vue_vue_type_script_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsTree/CdsTreeNode.vue_vue_type_script_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsTree/api/CdsTree.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/DropIndicator.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/NodeList.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/SwitcherIcon.mjs +2 -2
- package/dist/esm-node/src/components/CdsTree/components/TreeProvider.mjs +4 -4
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/Filler.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/Item.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/ResizeObserver.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/ScrollBar.mjs +2 -2
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/VirtualList.mjs +2 -2
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/features/useFrameWheel.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/features/useHeights.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/features/useMobileTouchMove.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/composable/tree.mjs +28 -0
- package/dist/esm-node/src/components/CdsTree/composable/treeNode.mjs +68 -2
- package/dist/esm-node/src/components/CdsTree/utils/data.mjs +3 -3
- package/dist/esm-node/src/components/CdsUploader/CdsUploader.css +0 -18
- package/dist/esm-node/src/components/CdsUploader/CdsUploader.vue_vue_type_script_setup_true_lang.mjs +10 -2
- package/dist/esm-node/src/components/CdsUploader/components/AjaxUploader.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsUploader/composables/useUpload.mjs +104 -26
- package/dist/esm-node/src/components/CdsVirtualScroll/CdsVirtualScroll.css +0 -18
- package/dist/esm-node/src/components/CdsVirtualScroll/CdsVirtualScroll.vue_vue_type_script_setup_true_lang.mjs +12 -4
- package/dist/esm-node/src/components/CdsVirtualScroll/CdsVirtualScrollItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsVirtualScroll/api/CdsVirtualScroll.props.mjs +12 -3
- package/dist/esm-node/src/components/index.mjs +2 -1
- package/dist/esm-node/src/composables/useAppearance/useAppearance.mjs +4 -1
- package/dist/esm-node/src/composables/useColor/useColor.mjs +21 -6
- package/dist/esm-node/src/composables/useDatetime/useDatetime.mjs +5 -2
- package/dist/esm-node/src/composables/useDelay/useDelay.mjs +8 -2
- package/dist/esm-node/src/composables/useDimensions/useDimensions.mjs +25 -7
- package/dist/esm-node/src/composables/useDirection/useDirection.mjs +4 -1
- package/dist/esm-node/src/composables/useDisabled/useDisabled.mjs +4 -1
- package/dist/esm-node/src/composables/useDisplay/internal/useDisplay.helpers.mjs +1 -1
- package/dist/esm-node/src/composables/useDisplay/useDisplay.mjs +3 -1
- package/dist/esm-node/src/composables/useFilter/useFilter.mjs +21 -1
- package/dist/esm-node/src/composables/useFocus/useFocus.mjs +13 -4
- package/dist/esm-node/src/composables/useFocus/useFocusGroup.mjs +1 -1
- package/dist/esm-node/src/composables/useFocus/useFocusTrap.mjs +10 -4
- package/dist/esm-node/src/composables/useForm/useForm.mjs +46 -1
- package/dist/esm-node/src/composables/useGoTo/useGoTo.mjs +3 -3
- package/dist/esm-node/src/composables/useGroup/useGroup.mjs +25 -7
- package/dist/esm-node/src/composables/useGroup/useGroupItem.mjs +8 -2
- package/dist/esm-node/src/composables/useHydration/useHydration.mjs +2 -2
- package/dist/esm-node/src/composables/useIcons/useIcons.mjs +1 -1
- package/dist/esm-node/src/composables/useItems/useItems.mjs +33 -9
- package/dist/esm-node/src/composables/useLayout/useLayout.mjs +26 -8
- package/dist/esm-node/src/composables/useLazy/useLazy.mjs +1 -0
- package/dist/esm-node/src/composables/useLoader/useLoader.mjs +4 -1
- package/dist/esm-node/src/composables/useLocation/useLocation.mjs +5 -2
- package/dist/esm-node/src/composables/useNested/strategies/activeStrategies.mjs +1 -1
- package/dist/esm-node/src/composables/useNested/useNested.mjs +46 -13
- package/dist/esm-node/src/composables/usePosition/usePosition.mjs +4 -0
- package/dist/esm-node/src/composables/useReadonly/useReadonly.mjs +4 -1
- package/dist/esm-node/src/composables/useResizeObserver/useResizeObserver.mjs +1 -1
- package/dist/esm-node/src/composables/useReveal/useReveal.mjs +4 -1
- package/dist/esm-node/src/composables/useRouter/useRouter.mjs +17 -5
- package/dist/esm-node/src/composables/useSize/useSize.mjs +5 -2
- package/dist/esm-node/src/composables/useStatus/useStatus.mjs +4 -1
- package/dist/esm-node/src/composables/useTeleport/useTeleport.mjs +2 -2
- package/dist/esm-node/src/composables/useText/useText.mjs +8 -2
- package/dist/esm-node/src/composables/useTheme/internal/useTheme.constants.mjs +13 -2
- package/dist/esm-node/src/composables/useTheme/internal/useTheme.utils.mjs +2 -2
- package/dist/esm-node/src/composables/useTheme/useTheme.mjs +6 -3
- package/dist/esm-node/src/composables/useTransition/useTransition.mjs +5 -2
- package/dist/esm-node/src/composables/useValidation/useValidation.mjs +27 -7
- package/dist/esm-node/src/composables/useVirtual/useVirtual.mjs +14 -5
- package/dist/esm-node/src/core/defineComponent.mjs +6 -3
- package/dist/esm-node/src/core/getCurrentInstance.mjs +1 -1
- package/dist/esm-node/src/core/useDefaults.mjs +4 -2
- package/dist/esm-node/src/core/useProxyModel.mjs +1 -1
- package/dist/esm-node/src/hooks/createContext/index.mjs +1 -1
- package/dist/esm-node/src/hooks/createObserver/index.mjs +1 -1
- package/dist/esm-node/src/hooks/useBreakpoints/index.mjs +1 -1
- package/dist/esm-node/src/hooks/useEventListener/index.mjs +1 -1
- package/dist/esm-node/src/hooks/useHydration/index.mjs +1 -1
- package/dist/esm-node/src/hooks/useIntersectionObserver/index.mjs +1 -1
- package/dist/esm-node/src/hooks/useResizeObserver/index.mjs +1 -1
- package/dist/esm-node/src/icons.mjs +2 -2
- package/dist/esm-node/src/locales/adapters/cdsLocaleAdapter.mjs +3 -2
- package/dist/esm-node/src/locales/en.mjs +70 -0
- package/dist/esm-node/src/locales/index.mjs +18 -0
- package/dist/esm-node/src/themes/index.mjs +4 -0
- package/dist/esm-node/src/themes/lumaDark.mjs +24 -0
- package/dist/esm-node/src/themes/lumaLight.mjs +20 -0
- package/dist/esm-node/src/transitions/collapseTransition.mjs +1 -1
- package/dist/esm-node/src/transitions/createTransition.mjs +1 -1
- package/dist/esm-node/src/transitions/modalTransition.mjs +1 -1
- package/dist/esm-node/src/utils/colorsUtils/utils.mjs +2 -2
- package/dist/esm-node/src/utils/date/date.mjs +4 -4
- package/dist/esm-node/src/utils/dom/classNames.mjs +1 -1
- package/dist/esm-node/src/utils/dom/console.mjs +1 -1
- package/dist/esm-node/src/utils/dom/dom.mjs +1 -1
- package/dist/iife/entry.js +11 -11
- package/dist/styles/common.css +1 -1
- package/dist/styles/core.css +1 -1
- package/dist/styles/tailwind.css +1 -1
- package/dist/styles.css +2 -2
- package/dist/types/components/CdsApp/api/CdsApp.types.d.ts +4 -1
- package/dist/types/components/CdsAutocomplete/CdsAutocomplete.vue.d.ts +59 -20
- package/dist/types/components/CdsAutocomplete/api/CdsAutocomplete.types.d.ts +60 -15
- package/dist/types/components/CdsAutocomplete/index.d.ts +57 -30
- package/dist/types/components/CdsAvatar/api/CdsAvatar.types.d.ts +8 -2
- package/dist/types/components/CdsBadge/api/CdsBadge.types.d.ts +8 -2
- package/dist/types/components/CdsBreadcrumbs/api/CdsBreadcrumbs.types.d.ts +28 -7
- package/dist/types/components/CdsButton/CdsButton.vue.d.ts +4 -1
- package/dist/types/components/CdsButton/api/CdsButton.types.d.ts +20 -5
- package/dist/types/components/CdsButtonGroup/api/CdsButtonGroup.types.d.ts +4 -1
- package/dist/types/components/CdsButtonToggle/CdsButtonToggle.vue.d.ts +20 -5
- package/dist/types/components/CdsButtonToggle/api/CdsButtonToggle.types.d.ts +8 -2
- package/dist/types/components/CdsCard/CdsCardGroup.vue.d.ts +20 -5
- package/dist/types/components/CdsCard/api/CdsCard.types.d.ts +68 -17
- package/dist/types/components/CdsCarousel/api/CdsCarousel.types.d.ts +12 -3
- package/dist/types/components/CdsCheckbox/api/CdsCheckbox.types.d.ts +8 -2
- package/dist/types/components/CdsCheckboxButton/api/CdsCheckboxButton.types.d.ts +8 -0
- package/dist/types/components/CdsCombobox/CdsCombobox.vue.d.ts +67 -22
- package/dist/types/components/CdsCombobox/api/CdsCombobox.types.d.ts +60 -15
- package/dist/types/components/CdsCombobox/index.d.ts +57 -30
- package/dist/types/components/CdsCounter/api/CdsCounter.types.d.ts +4 -0
- package/dist/types/components/CdsDateInput/CdsDateInput.vue.d.ts +35 -10
- package/dist/types/components/CdsDateInput/api/CdsDateInput.types.d.ts +44 -11
- package/dist/types/components/CdsDateInput/index.d.ts +57 -30
- package/dist/types/components/CdsDatePicker/CdsDatePicker.vue.d.ts +20 -0
- package/dist/types/components/CdsDatePicker/api/CdsDatePicker.types.d.ts +28 -7
- package/dist/types/components/CdsDefaultsProvider/api/CdsDefaultsProvider.types.d.ts +1 -0
- package/dist/types/components/CdsDescription/api/CdsDescription.types.d.ts +4 -0
- package/dist/types/components/CdsDivider/CdsDivider.vue.d.ts +4 -0
- package/dist/types/components/CdsDrawer/CdsDrawer.vue.d.ts +4 -0
- package/dist/types/components/CdsDrawer/api/CdsDrawer.types.d.ts +24 -6
- package/dist/types/components/CdsEmptyState/api/CdsEmptyState.types.d.ts +36 -9
- package/dist/types/components/CdsExpandablePanel/CdsExpandablePanel.vue.d.ts +16 -4
- package/dist/types/components/CdsExpandablePanel/CdsExpandablePanelTitle.vue.d.ts +8 -2
- package/dist/types/components/CdsExpandablePanel/CdsExpandablePanels.vue.d.ts +8 -2
- package/dist/types/components/CdsExpandablePanel/api/CdsExpandablePanel.types.d.ts +56 -14
- package/dist/types/components/CdsField/CdsField.vue.d.ts +18 -2
- package/dist/types/components/CdsField/api/CdsField.types.d.ts +33 -7
- package/dist/types/components/CdsField/index.d.ts +5 -0
- package/dist/types/components/CdsFileInput/CdsFileInput.vue.d.ts +5 -2
- package/dist/types/components/CdsFileInput/api/CdsFileInput.types.d.ts +28 -7
- package/dist/types/components/CdsFileInput/index.d.ts +15 -6
- package/dist/types/components/CdsFileUpload/CdsFileUpload.vue.d.ts +8 -0
- package/dist/types/components/CdsFileUpload/api/CdsFileUpload.types.d.ts +116 -29
- package/dist/types/components/CdsFooter/api/CdsFooter.types.d.ts +12 -3
- package/dist/types/components/CdsForm/api/CdsForm.types.d.ts +20 -5
- package/dist/types/components/CdsFunctionalButton/api/CdsFunctionalButton.types.d.ts +8 -2
- package/dist/types/components/CdsGrid/api/CdsGrid.types.d.ts +12 -0
- package/dist/types/components/CdsHeader/api/CdsHeader.types.d.ts +12 -3
- package/dist/types/components/CdsIcon/api/CdsIcon.types.d.ts +4 -1
- package/dist/types/components/CdsImage/CdsImage.vue.d.ts +20 -0
- package/dist/types/components/CdsImage/api/CdsImage.props.d.ts +4 -1
- package/dist/types/components/CdsImage/api/CdsImage.types.d.ts +28 -7
- package/dist/types/components/CdsInput/CdsInput.vue.d.ts +44 -11
- package/dist/types/components/CdsInput/api/CdsInput.types.d.ts +36 -9
- package/dist/types/components/CdsLabel/api/CdsLabel.types.d.ts +4 -0
- package/dist/types/components/CdsLayout/api/CdsLayout.types.d.ts +16 -4
- package/dist/types/components/CdsLink/api/CdsLink.types.d.ts +8 -2
- package/dist/types/components/CdsList/CdsList.vue.d.ts +24 -6
- package/dist/types/components/CdsList/CdsListGroup.vue.d.ts +4 -1
- package/dist/types/components/CdsList/CdsListItem.vue.d.ts +28 -7
- package/dist/types/components/CdsList/CdsListItemAction.vue.d.ts +20 -5
- package/dist/types/components/CdsList/CdsListItemDivider.vue.d.ts +4 -0
- package/dist/types/components/CdsList/CdsListItemMedia.vue.d.ts +20 -5
- package/dist/types/components/CdsList/CdsListSubheader.vue.d.ts +4 -1
- package/dist/types/components/CdsList/api/CdsList.types.d.ts +84 -21
- package/dist/types/components/CdsList/components/ListChildren.vue.d.ts +16 -4
- package/dist/types/components/CdsList/components/ListGroupActivator.vue.d.ts +4 -1
- package/dist/types/components/CdsList/index.d.ts +76 -0
- package/dist/types/components/CdsMain/api/CdsMain.types.d.ts +4 -1
- package/dist/types/components/CdsMenu/api/CdsMenu.types.d.ts +12 -0
- package/dist/types/components/CdsMessages/api/CdsMessages.types.d.ts +8 -0
- package/dist/types/components/CdsModal/api/CdsModal.types.d.ts +12 -3
- package/dist/types/components/CdsNotification/api/CdsNotification.types.d.ts +36 -9
- package/dist/types/components/CdsNotificationAlert/api/CdsNotificationAlert.types.d.ts +40 -10
- package/dist/types/components/CdsOtpInput/CdsOtpInput.vue.d.ts +20 -5
- package/dist/types/components/CdsOtpInput/api/CdsOtpInput.types.d.ts +36 -9
- package/dist/types/components/CdsOverlay/CdsOverlay.vue.d.ts +44 -11
- package/dist/types/components/CdsOverlay/api/CdsOverlay.types.d.ts +28 -3
- package/dist/types/components/CdsPage/api/CdsPage.types.d.ts +4 -1
- package/dist/types/components/CdsPagination/CdsPagination.vue.d.ts +16 -0
- package/dist/types/components/CdsPagination/api/CdsPagination.types.d.ts +44 -11
- package/dist/types/components/CdsProgressBar/api/CdsProgressBar.types.d.ts +8 -0
- package/dist/types/components/CdsProgressCircle/api/CdsProgressCircle.types.d.ts +4 -1
- package/dist/types/components/CdsRadioGroup/api/CdsRadioGroup.types.d.ts +8 -2
- package/dist/types/components/CdsResponsive/api/CdsResponsive.types.d.ts +8 -2
- package/dist/types/components/CdsSelect/CdsSelect.vue.d.ts +51 -18
- package/dist/types/components/CdsSelect/api/CdsSelect.types.d.ts +60 -15
- package/dist/types/components/CdsSelect/index.d.ts +57 -30
- package/dist/types/components/CdsSelectionControl/CdsSelectionControl.vue.d.ts +8 -0
- package/dist/types/components/CdsSelectionControl/api/CdsSelectionControl.types.d.ts +12 -3
- package/dist/types/components/CdsSelectionControlGroup/api/CdsSelectionControlGroup.types.d.ts +8 -0
- package/dist/types/components/CdsSkeletonLoader/api/CdsSkeletonLoader.types.d.ts +4 -1
- package/dist/types/components/CdsSlideGroup/CdsSlideGroup.vue.d.ts +24 -6
- package/dist/types/components/CdsSlideGroup/api/CdsSlideGroup.types.d.ts +20 -5
- package/dist/types/components/CdsSlideView/CdsSlideView.vue.d.ts +4 -0
- package/dist/types/components/CdsSlideView/CdsSlideViewItem.vue.d.ts +4 -0
- package/dist/types/components/CdsSlideView/api/CdsSlideView.types.d.ts +31 -0
- package/dist/types/components/CdsStages/CdsStages.vue.d.ts +8 -0
- package/dist/types/components/CdsStatus/api/CdsStatus.types.d.ts +4 -1
- package/dist/types/components/CdsSteps/CdsSteps.vue.d.ts +8 -0
- package/dist/types/components/CdsSteps/api/CdsSteps.types.d.ts +72 -18
- package/dist/types/components/CdsSurface/api/CdsSurface.types.d.ts +4 -1
- package/dist/types/components/CdsTable/CdsTable.vue.d.ts +4 -0
- package/dist/types/components/CdsTable/api/CdsTable.types.d.ts +96 -24
- package/dist/types/components/CdsTabs/api/CdsTabs.types.d.ts +32 -0
- package/dist/types/components/CdsTag/api/CdsTag.types.d.ts +64 -16
- package/dist/types/components/CdsTagGroup/CdsTagGroup.vue.d.ts +20 -5
- package/dist/types/components/CdsTagGroup/api/CdsTagGroup.types.d.ts +8 -2
- package/dist/types/components/CdsTextArea/CdsTextArea.vue.d.ts +5 -2
- package/dist/types/components/CdsTextArea/api/CdsTextArea.types.d.ts +24 -6
- package/dist/types/components/CdsTextArea/index.d.ts +15 -6
- package/dist/types/components/CdsTextInput/CdsTextInput.vue.d.ts +7 -4
- package/dist/types/components/CdsTextInput/api/CdsTextInput.types.d.ts +44 -11
- package/dist/types/components/CdsTextInput/index.d.ts +20 -11
- package/dist/types/components/CdsTimePicker/CdsTimePicker.vue.d.ts +24 -0
- package/dist/types/components/CdsTimePicker/api/CdsTimePicker.types.d.ts +4 -1
- package/dist/types/components/CdsToast/api/CdsToast.types.d.ts +40 -10
- package/dist/types/components/CdsToastQueue/CdsToastQueue.vue.d.ts +4 -1
- package/dist/types/components/CdsToastQueue/api/CdsToastQueue.types.d.ts +20 -5
- package/dist/types/components/CdsToggle/api/CdsToggle.types.d.ts +28 -7
- package/dist/types/components/CdsToolbar/api/CdsToolbar.types.d.ts +8 -2
- package/dist/types/components/CdsTooltip/api/CdsTooltip.types.d.ts +4 -0
- package/dist/types/components/CdsTree/CdsTree.vue.d.ts +16 -0
- package/dist/types/components/CdsTree/api/CdsTree.types.d.ts +84 -21
- package/dist/types/components/CdsUploader/CdsUploader.vue.d.ts +8 -0
- package/dist/types/components/CdsUploader/api/CdsUploader.types.d.ts +68 -17
- package/dist/types/components/CdsVirtualScroll/CdsVirtualScroll.vue.d.ts +8 -0
- package/dist/types/components/CdsVirtualScroll/api/CdsVirtualScroll.types.d.ts +20 -5
- package/dist/types/composables/useForm/useForm.d.ts +33 -0
- package/dist/types/composables/useLayout/context.d.ts +61 -0
- package/dist/types/composables/useNested/useNested.d.ts +8 -2
- package/dist/types/composables/useTheme/internal/useTheme.constants.d.ts +1 -1
- package/dist/types/entry.d.ts +135 -126
- package/dist/types/locales/index.d.ts +1 -0
- package/dist/types/themes/index.d.ts +4 -0
- package/dist/types/themes/lumaDark.d.ts +190 -0
- package/dist/types/themes/lumaLight.d.ts +190 -0
- package/dist/types/utils/date/date.d.ts +1 -1
- package/llms/llms-components.txt +8861 -10675
- package/llms/llms-full.txt +11347 -11488
- package/llms/llms-guides.txt +1942 -483
- package/llms/llms-migration.txt +19 -47
- package/llms/llms-tokens.txt +285 -43
- package/llms/llms.txt +110 -109
- package/package.json +30 -10
- package/src/components/CdsApp/CdsApp.scss +43 -0
- package/src/components/CdsApp/styles/_CdsApp.variables.scss +2 -0
- package/src/components/CdsAutocomplete/CdsAutocomplete.scss +158 -0
- package/src/components/CdsAutocomplete/styles/_CdsAutocomplete.variables.scss +9 -0
- package/src/components/CdsAvatar/CdsAvatar.scss +42 -0
- package/src/components/CdsAvatar/styles/_CdsAvatar.variables.scss +22 -0
- package/src/components/CdsBadge/CdsBadge.scss +69 -0
- package/src/components/CdsBadge/styles/_CdsBadge.variables.scss +22 -0
- package/src/components/CdsBreadcrumbs/CdsBreadcrumbs.scss +49 -0
- package/src/components/CdsBreadcrumbs/styles/_CdsBreadcrumbs.variables.scss +14 -0
- package/src/components/CdsButton/CdsButton.scss +138 -0
- package/src/components/CdsButton/styles/_CdsButton.mixins.scss +76 -0
- package/src/components/CdsButton/styles/_CdsButton.variables.scss +180 -0
- package/src/components/CdsButtonGroup/CdsButtonGroup.scss +62 -0
- package/src/components/CdsButtonGroup/styles/_CdsButtonGroup.variables.scss +7 -0
- package/src/components/CdsButtonToggle/CdsButtonToggle.scss +19 -0
- package/src/components/CdsButtonToggle/styles/_CdsButtonToggle.variables.scss +3 -0
- package/src/components/CdsCard/CdsCard.scss +194 -0
- package/src/components/CdsCard/styles/CdsCard.variables.scss +36 -0
- package/src/components/CdsCarousel/CdsCarousel.scss +76 -0
- package/src/components/CdsCarousel/styles/_CdsCarousel.variables.scss +7 -0
- package/src/components/CdsCheckbox/CdsCheckbox.scss +20 -0
- package/src/components/CdsCheckbox/styles/_CdsCheckbox.mixins.scss +24 -0
- package/src/components/CdsCheckbox/styles/_CdsCheckbox.variables.scss +8 -0
- package/src/components/CdsCheckboxButton/CdsCheckboxButton.scss +78 -0
- package/src/components/CdsCheckboxButton/styles/_CdsCheckboxButton.variables.scss +46 -0
- package/src/components/CdsCombobox/CdsCombobox.scss +158 -0
- package/src/components/CdsCombobox/styles/_CdsCombobox.variables.scss +9 -0
- package/src/components/CdsCounter/CdsCounter.scss +11 -0
- package/src/components/CdsCounter/styles/_CdsCounter.variables.scss +1 -0
- package/src/components/CdsDateInput/CdsDateInput.scss +28 -0
- package/src/components/CdsDateInput/styles/_CdsDateInput.variables.scss +6 -0
- package/src/components/CdsDatePicker/CdsDatePicker.scss +574 -0
- package/src/components/CdsDatePicker/styles/_CdsDatePicker.variables.scss +56 -0
- package/src/components/CdsDescription/CdsDescription.scss +12 -0
- package/src/components/CdsDescription/styles/_CdsDescription.variables.scss +1 -0
- package/src/components/CdsDivider/CdsDivider.scss +83 -0
- package/src/components/CdsDivider/styles/_CdsDivider.variables.scss +28 -0
- package/src/components/CdsDrawer/CdsDrawer.scss +144 -0
- package/src/components/CdsDrawer/styles/_CdsDrawer.variables.scss +17 -0
- package/src/components/CdsEmptyState/CdsEmptyState.scss +103 -0
- package/src/components/CdsEmptyState/styles/_CdsEmptyState.variables.scss +15 -0
- package/src/components/CdsExpandablePanel/CdsExpandablePanel.scss +221 -0
- package/src/components/CdsExpandablePanel/styles/_CdsExpandablePanel.variables.scss +24 -0
- package/src/components/CdsField/CdsField.scss +209 -0
- package/src/components/CdsField/styles/_CdsField.mixins.scss +39 -0
- package/src/components/CdsField/styles/_CdsField.variables.scss +84 -0
- package/src/components/CdsFileInput/CdsFileInput.scss +40 -0
- package/src/components/CdsFileInput/styles/_CdsFileInput.variables.scss +5 -0
- package/src/components/CdsFileUpload/CdsFileUpload.scss +173 -0
- package/src/components/CdsFileUpload/styles/_CdsFileUpload.variables.scss +40 -0
- package/src/components/CdsFooter/CdsFooter.scss +36 -0
- package/src/components/CdsFooter/styles/_CdsFooter.variables.scss +4 -0
- package/src/components/CdsForm/CdsForm.scss +24 -0
- package/src/components/CdsForm/styles/_CdsForm.variables.scss +5 -0
- package/src/components/CdsFunctionalButton/CdsFunctionalButton.scss +49 -0
- package/src/components/CdsFunctionalButton/styles/_CdsFunctionalButton.variables.scss +25 -0
- package/src/components/CdsGrid/components/CSSGrid.scss +3 -0
- package/src/components/CdsGrid/components/FlexGrid.scss +3 -0
- package/src/components/CdsHeader/CdsHeader.scss +36 -0
- package/src/components/CdsHeader/styles/_CdsHeader.variables.scss +3 -0
- package/src/components/CdsHighlight/CdsHighlight.scss +16 -0
- package/src/components/CdsHighlight/styles/_CdsHighlight.variables.scss +8 -0
- package/src/components/CdsIcon/CdsIcon.scss +54 -0
- package/src/components/CdsIcon/styles/_CdsIcon.variables.scss +20 -0
- package/src/components/CdsImage/CdsImage.scss +62 -0
- package/src/components/CdsImage/styles/_CdsImage.variables.scss +4 -0
- package/src/components/CdsInput/CdsInput.scss +108 -0
- package/src/components/CdsInput/styles/_CdsInput.mixins.scss +54 -0
- package/src/components/CdsInput/styles/_CdsInput.variables.scss +98 -0
- package/src/components/CdsLabel/CdsLabel.scss +23 -0
- package/src/components/CdsLabel/styles/_CdsLabel.variables.scss +2 -0
- package/src/components/CdsLayout/CdsLayout.scss +61 -0
- package/src/components/CdsLayout/styles/_CdsLayout.variables.scss +2 -0
- package/src/components/CdsLink/CdsLink.scss +33 -0
- package/src/components/CdsLink/styles/_CdsLink.variables.scss +6 -0
- package/src/components/CdsList/CdsList.scss +104 -0
- package/src/components/CdsList/CdsListItem.scss +330 -0
- package/src/components/CdsList/styles/_CdsList.variables.scss +115 -0
- package/src/components/CdsLoader/CdsLoader.scss +78 -0
- package/src/components/CdsLoader/styles/_CdsLoader.mixins.scss +9 -0
- package/src/components/CdsLoader/styles/_CdsLoader.variables.scss +40 -0
- package/src/components/CdsMain/CdsMain.scss +7 -0
- package/src/components/CdsMenu/CdsMenu.scss +33 -0
- package/src/components/CdsMenu/styles/_CdsMenu.variables.scss +11 -0
- package/src/components/CdsMessages/CdsMessages.scss +20 -0
- package/src/components/CdsMessages/styles/_CdsMessages.variables.scss +5 -0
- package/src/components/CdsModal/CdsModal.scss +106 -0
- package/src/components/CdsModal/styles/_CdsModal.variables.scss +12 -0
- package/src/components/CdsNotification/CdsNotification.scss +99 -0
- package/src/components/CdsNotification/styles/_CdsNotification.variables.scss +13 -0
- package/src/components/CdsNotificationAlert/CdsNotificationAlert.scss +48 -0
- package/src/components/CdsNotificationAlert/styles/_CdsNotificationAlert.variables.scss +5 -0
- package/src/components/CdsOtpInput/CdsOtpInput.scss +192 -0
- package/src/components/CdsOtpInput/styles/_CdsOtpInput.variables.scss +31 -0
- package/src/components/CdsOverlay/CdsOverlay.scss +74 -0
- package/src/components/CdsOverlay/styles/_CdsOverlay.variables.scss +2 -0
- package/src/components/CdsPage/CdsPage.scss +9 -0
- package/src/components/CdsPagination/CdsPagination.scss +69 -0
- package/src/components/CdsPagination/styles/_CdsPagination.variables.scss +10 -0
- package/src/components/CdsProgressBar/CdsProgressBar.scss +285 -0
- package/src/components/CdsProgressBar/styles/_CdsProgressBar.variables.scss +23 -0
- package/src/components/CdsProgressCircle/CdsProgressCircle.scss +116 -0
- package/src/components/CdsProgressCircle/styles/_CdsProgressCircle.variables.scss +21 -0
- package/src/components/CdsRadio/CdsRadio.scss +42 -0
- package/src/components/CdsRadio/styles/_CdsRadio.variables.scss +26 -0
- package/src/components/CdsRadioGroup/CdsRadioGroup.scss +24 -0
- package/src/components/CdsRadioGroup/styles/_CdsRadioGroup.variables.scss +4 -0
- package/src/components/CdsResponsive/CdsResponsive.scss +33 -0
- package/src/components/CdsResponsive/styles/_CdsResponsive.variables.scss +3 -0
- package/src/components/CdsSelect/CdsSelect.scss +149 -0
- package/src/components/CdsSelect/styles/_CdsSelect.variables.scss +7 -0
- package/src/components/CdsSelectionControl/CdsSelectionControl.scss +104 -0
- package/src/components/CdsSelectionControlGroup/CdsSelectionControlGroup.scss +17 -0
- package/src/components/CdsSkeletonLoader/CdsSkeletonLoader.scss +292 -0
- package/src/components/CdsSkeletonLoader/styles/_CdsSkeletonLoader.variables.scss +52 -0
- package/src/components/CdsSlideGroup/CdsSlideGroup.scss +63 -0
- package/src/components/CdsSlideGroup/styles/_CdsSlideGroup.variables.scss +1 -0
- package/src/components/CdsSlideView/CdsSlideView.scss +183 -0
- package/src/components/CdsSlideView/styles/_CdsSlideView.variables.scss +4 -0
- package/src/components/CdsStages/CdsStages.scss +109 -0
- package/src/components/CdsStages/styles/_CdsStages.variables.scss +17 -0
- package/src/components/CdsStatus/CdsStatus.scss +49 -0
- package/src/components/CdsStatus/styles/_CdsStatus.variables.scss +7 -0
- package/src/components/CdsSteps/CdsSteps.scss +216 -0
- package/src/components/CdsSteps/styles/_CdsSteps.variables.scss +42 -0
- package/src/components/CdsSurface/CdsSurface.scss +16 -0
- package/src/components/CdsTable/CdsTable.scss +1140 -0
- package/src/components/CdsTable/styles/_CdsTable.mixins.scss +86 -0
- package/src/components/CdsTable/styles/_CdsTable.variables.scss +82 -0
- package/src/components/CdsTabs/CdsTabs.scss +94 -0
- package/src/components/CdsTabs/styles/_CdsTabs.variables.scss +30 -0
- package/src/components/CdsTag/CdsTag.scss +141 -0
- package/src/components/CdsTag/styles/_CdsTag.variables.scss +57 -0
- package/src/components/CdsTagGroup/CdsTagGroup.scss +32 -0
- package/src/components/CdsTagGroup/styles/_CdsTagGroup.variables.scss +8 -0
- package/src/components/CdsTextArea/CdsTextArea.scss +129 -0
- package/src/components/CdsTextArea/styles/_CdsTextArea.variables.scss +6 -0
- package/src/components/CdsTextInput/CdsTextInput.scss +84 -0
- package/src/components/CdsTextInput/styles/_CdsTextInput.variables.scss +7 -0
- package/src/components/CdsTimePicker/CdsTimePicker.scss +93 -0
- package/src/components/CdsTimePicker/styles/_CdsTimePicker.variables.scss +13 -0
- package/src/components/CdsToast/CdsToast.scss +207 -0
- package/src/components/CdsToast/styles/_CdsToast.variables.scss +16 -0
- package/src/components/CdsToggle/CdsToggle.scss +192 -0
- package/src/components/CdsToggle/styles/_CdsToggle.variables.scss +81 -0
- package/src/components/CdsToolbar/CdsToolbar.scss +72 -0
- package/src/components/CdsToolbar/styles/_CdsToolbar.variables.scss +3 -0
- package/src/components/CdsTooltip/CdsTooltip.scss +111 -0
- package/src/components/CdsTooltip/styles/_CdsTooltip.variables.scss +15 -0
- package/src/components/CdsTree/CdsTree.scss +290 -0
- package/src/components/CdsTree/styles/_CdsTree.variables.scss +29 -0
- package/src/components/CdsUploader/CdsUploader.scss +109 -0
- package/src/components/CdsUploader/styles/_CdsUploader.variables.scss +16 -0
- package/src/components/CdsVirtualScroll/CdsVirtualScroll.scss +16 -0
- package/src/components/CdsVirtualScroll/styles/_CdsVirtualScroll.variables.scss +3 -0
- package/src/styles/component-settings.scss +75 -0
- package/src/styles/generic/_fonts.scss +2 -2
- package/src/styles/settings/_index.scss +6 -0
- package/src/styles/tools/_absolute.sass +9 -0
- package/src/styles/tools/_border.sass +10 -0
- package/src/styles/tools/_motion.scss +11 -17
- package/src/styles/utilities/grid/_config.scss +0 -1
- package/src/themes/css/lumaDark.css +184 -0
- package/src/themes/css/lumaLight.css +184 -0
- package/src/themes/index.ts +4 -0
- package/src/themes/lumaDark.ts +21 -0
- package/src/themes/lumaLight.ts +17 -0
- package/dist/styles/breakpoints.css +0 -1
- package/dist/styles/index.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReveal.js","sources":["../../../../../src/composables/useReveal/useReveal.ts"],"sourcesContent":["import { propsFactory } from '@cds/core';\nimport { onMounted, type PropType, shallowRef, toRef } from 'vue';\n\nexport interface RevealProps {\n reveal: boolean | { duration?: number };\n}\n\n/**\n * Define the reveal properties for components.\n */\nexport const defineRevealProps = propsFactory(\n {\n
|
|
1
|
+
{"version":3,"file":"useReveal.js","sources":["../../../../../src/composables/useReveal/useReveal.ts"],"sourcesContent":["import { propsFactory } from '@cds/core';\nimport { onMounted, type PropType, shallowRef, toRef } from 'vue';\n\nexport interface RevealProps {\n reveal: boolean | { duration?: number };\n}\n\n/**\n * Define the reveal properties for components.\n */\nexport const defineRevealProps = propsFactory(\n {\n /**\n * Анимирует индикатор от нуля до текущего значения при появлении компонента. Объект `{ duration }` задаёт длительность анимации в миллисекундах\n * @en Animates the indicator from zero to the current value when the component appears. The `{ duration }` object sets the animation duration in milliseconds\n */\n reveal: {\n type: [Boolean, Object] as PropType<\n | boolean\n | {\n duration?: number;\n }\n >,\n default: false\n }\n },\n 'reveal'\n);\n\nexport function useReveal(props: RevealProps) {\n const defaultDuration = 900;\n const duration = toRef(() =>\n typeof props.reveal === 'object' ? Math.max(0, Number(props.reveal.duration ?? defaultDuration)) : defaultDuration\n );\n\n const state = shallowRef(props.reveal ? 'initial' : 'disabled');\n\n onMounted(async () => {\n if (props.reveal) {\n state.value = 'initial';\n await new Promise((resolve) => requestAnimationFrame(resolve));\n state.value = 'pending';\n await new Promise((resolve) => setTimeout(resolve, duration.value));\n state.value = 'done';\n }\n });\n\n return {\n duration,\n state\n };\n}\n"],"names":[],"mappings":";;AAUO,MAAM,oBAAoB;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA,IAKE,QAAQ;AAAA,MACN,MAAM,CAAC,SAAS,MAAM;AAAA,MAMtB,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF;AACF;AAEO,SAAS,UAAU,OAAoB;AAC5C,QAAM,kBAAkB;AACxB,QAAM,WAAW;AAAA,IAAM,MACrB,OAAO,MAAM,WAAW,WAAW,KAAK,IAAI,GAAG,OAAO,MAAM,OAAO,YAAY,eAAe,CAAC,IAAI;AAAA,EAAA;AAGrG,QAAM,QAAQ,WAAW,MAAM,SAAS,YAAY,UAAU;AAE9D,YAAU,YAAY;AACpB,QAAI,MAAM,QAAQ;AAChB,YAAM,QAAQ;AACd,YAAM,IAAI,QAAQ,CAAC,YAAY,sBAAsB,OAAO,CAAC;AAC7D,YAAM,QAAQ;AACd,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,SAAS,KAAK,CAAC;AAClE,YAAM,QAAQ;AAAA,IAChB;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEJ;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import "vue";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -5,22 +5,34 @@ import { a as IN_BROWSER } from "../../utils/dom/globals.js";
|
|
|
5
5
|
import { resolveDynamicComponent, toRef, computed, unref, reactive, nextTick, onScopeDispose } from "vue";
|
|
6
6
|
const defineRouterProps = propsFactory(
|
|
7
7
|
{
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Атрибут href для ссылки. Если указан, компонент будет вести себя как обычная ссылка
|
|
10
|
+
* @en The `href` attribute of the link. When set, the component behaves as a regular link
|
|
11
|
+
*/
|
|
9
12
|
href: {
|
|
10
13
|
type: String,
|
|
11
14
|
default: void 0
|
|
12
15
|
},
|
|
13
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Если true, навигация по маршруту будет заменять текущую запись в истории вместо добавления новой
|
|
18
|
+
* @en If true, navigation replaces the current history entry instead of pushing a new one
|
|
19
|
+
*/
|
|
14
20
|
replace: {
|
|
15
21
|
type: Boolean,
|
|
16
22
|
default: void 0
|
|
17
23
|
},
|
|
18
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* Маршрут назначения или объект для RouterLink. Если указан, компонент будет вести себя как RouterLink
|
|
26
|
+
* @en Target route or route location object for RouterLink. When set, the component behaves as a RouterLink
|
|
27
|
+
*/
|
|
19
28
|
to: {
|
|
20
29
|
type: [String, Object],
|
|
21
30
|
default: void 0
|
|
22
31
|
},
|
|
23
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* Если true, активное состояние будет применяться только при точном совпадении маршрута
|
|
34
|
+
* @en If true, the active state applies only on an exact route match
|
|
35
|
+
*/
|
|
24
36
|
exact: {
|
|
25
37
|
type: Boolean,
|
|
26
38
|
default: void 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRouter.js","sources":["../../../../../src/composables/useRouter/useRouter.ts"],"sourcesContent":["import { getCurrentInstance, propsFactory } from '@cds/core';\nimport { deepEqual, type EventProp, hasEvent, IN_BROWSER } from '@cds/utils';\nimport {\n computed,\n type ExtractPublicPropTypes,\n nextTick,\n onScopeDispose,\n type PropType,\n reactive,\n type Ref,\n resolveDynamicComponent,\n type SetupContext,\n toRef,\n unref\n} from 'vue';\nimport type {\n NavigationGuardReturn,\n RouteLocation,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n Router,\n RouterLink as _RouterLink,\n useLink as _useLink\n} from 'vue-router';\n\nexport interface LinkProps extends ExtractPublicPropTypes<ReturnType<typeof defineRouterProps>> {\n disabled?: boolean | null;\n}\n\nexport interface LinkListeners {\n onClick?: EventProp;\n onClickOnce?: EventProp;\n}\n\nexport interface UseLink extends Omit<Partial<ReturnType<typeof _useLink>>, 'href' | 'route' | 'navigate'> {\n isLink: Readonly<Ref<boolean>>;\n isRouterLink: Readonly<Ref<boolean>>;\n isClickable: Readonly<Ref<boolean>>;\n href: Ref<string | undefined>;\n linkProps: Record<string, string | undefined>;\n route: Readonly<Ref<(RouteLocation & { href: string }) | undefined>>;\n navigate: Readonly<Ref<ReturnType<typeof _useLink>['navigate'] | undefined>>;\n}\n\n/**\n * Factory for defining props related to router behavior for a component.\n *\n * The created props include options for assigning link targets, handling route navigation,\n * and defining how the component behaves in relation to the Vue Router.\n *\n * @prop {string|undefined} href - The `href` attribute for a link. If provided, the component behaves like a standard HTML link.\n * @prop {boolean|undefined} replace - If `true`, navigation will replace the current history entry instead of adding a new one.\n * @prop {string|object|undefined} to - Target route or a route location object for `RouterLink`. If provided, the component behaves as a `RouterLink`.\n * @prop {boolean|undefined} exact - If `true`, active state is applied only if the route matches exactly.\n */\nexport const defineRouterProps = propsFactory(\n {\n /** Атрибут href для ссылки. Если указан, компонент будет вести себя как обычная ссылка */\n href: {\n type: String as PropType<string>,\n default: undefined\n },\n /** Если true, навигация по маршруту будет заменять текущую запись в истории вместо добавления новой */\n replace: {\n type: Boolean as PropType<boolean>,\n default: undefined\n },\n /** Маршрут назначения или объект для RouterLink. Если указан, компонент будет вести себя как RouterLink */\n to: {\n type: [String, Object] as PropType<RouteLocationRaw>,\n default: undefined\n },\n /** Если true, активное состояние будет применяться только при точном совпадении маршрута */\n exact: {\n type: Boolean as PropType<boolean>,\n default: undefined\n }\n },\n 'router'\n);\n\n/**\n * Provides functionality and properties for handling links, including router links\n * and standard anchor tags, with reactive properties for navigation and interactivity.\n *\n * @param {LinkProps} props - The props for the link, including attributes like `href`, `to`, `replace`, and more.\n * @param {SetupContext['attrs']} attrs - The attributes passed to the link, e.g., event listeners like `click`.\n * @return {UseLink} An object containing properties and methods for managing the link:\n * - `route`: The route information for a router link, if applicable.\n * - `navigate`: A function to navigate the link if it's a router link.\n * - `href`: A computed property resolving the `href` for the link.\n * - `isLink`: A reactive boolean indicating whether the link is defined (`href` or `to`).\n * - `isRouterLink`: A reactive boolean indicating whether the link is a router link.\n * - `isClickable`: A reactive boolean indicating whether the link is interactable.\n * - `isActive`: A reactive boolean indicating if the route is active for router links.\n * - `linkProps`: Reactive link attributes such as `href`, `aria-current`, `aria-disabled`, and `tabindex`.\n */\nexport function useLink(props: LinkProps & LinkListeners, attrs: SetupContext['attrs']): UseLink {\n const route = useRoute();\n const RouterLink = resolveDynamicComponent('RouterLink') as typeof _RouterLink | string;\n const isLink = toRef(() => !!(props.href || props.to));\n const isClickable = computed(() => unref(isLink) || hasEvent(attrs, 'click') || hasEvent(props, 'click'));\n\n if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {\n const href = toRef(() => props.href);\n\n return {\n isLink,\n isRouterLink: toRef(() => false),\n isClickable,\n href,\n linkProps: reactive({ href }),\n route: toRef(() => undefined),\n navigate: toRef(() => undefined)\n };\n }\n\n const routerLink = RouterLink.useLink({\n to: toRef(() => props.to || ''),\n replace: toRef(() => props.replace)\n });\n const link = computed(() => (props.to ? routerLink : undefined));\n const href = computed(() => (props.to ? unref(link)?.route.value.href : props.href));\n\n const isRouterLink = toRef(() => !!props.to);\n const isActive = computed(() => {\n if (!link.value) return false;\n if (!props.exact) return link.value.isActive?.value ?? false;\n if (!route.value) return link.value.isExactActive?.value ?? false;\n\n return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);\n });\n\n return {\n href,\n isLink,\n isRouterLink,\n isClickable,\n isActive,\n linkProps: reactive({\n href,\n 'aria-current': toRef(() => (unref(isActive) ? 'page' : undefined)),\n 'aria-disabled': toRef(() => (props.disabled && unref(isLink) ? 'true' : undefined)),\n tabindex: toRef(() => (props.disabled && unref(isLink) ? '-1' : undefined))\n }),\n route: toRef(() => unref(link)?.route.value),\n navigate: toRef(() => unref(link)?.navigate)\n };\n}\n\n/**\n * A composable function that provides a reactive reference to the current route.\n * It retrieves the current route from the Vue instance and wraps it in a computed reference.\n * This allows for reactive updates when the route changes.\n *\n * @return {Ref<RouteLocationNormalizedLoaded | undefined>} A reactive reference to the current normalized loaded route or undefined if no route is available.\n */\nexport function useRoute(): Ref<RouteLocationNormalizedLoaded | undefined> {\n const vm = getCurrentInstance('useRoute');\n return computed(() => vm?.proxy?.$route);\n}\n\n/**\n * Provides access to the current Vue Router instance.\n *\n * This method retrieves the router instance associated with the current Vue component\n * instance, if available. The router instance can be used for navigation and accessing\n * route-specific data.\n *\n * @return {Router | undefined} The Vue Router instance if the current component is associated\n * with a router, or undefined if it is not found.\n */\nexport function useRouter(): Router | undefined {\n const vm = getCurrentInstance('useRouter');\n return vm?.proxy?.$router;\n}\n\nlet inTransition = false;\n\n/**\n * Sets up a back button handler using the provided router and callback function.\n * Listens for browser back button events and triggers the given callback during navigation.\n * Ensures safe handling of navigation transitions.\n *\n * @param {Router | undefined} router - The router instance to integrate with, which can be undefined if no router is used.\n * @param {() => NavigationGuardReturn} cb - A callback function that will be invoked during a back button interaction or navigation guard step.\n * @return {void} No return value.\n */\nexport function useBackButton(router: Router | undefined, cb: () => NavigationGuardReturn) {\n let popped = false;\n let removeBefore: (() => void) | undefined;\n let removeAfter: (() => void) | undefined;\n\n if (IN_BROWSER && router?.beforeEach) {\n nextTick(() => {\n window.addEventListener('popstate', onPopstate);\n removeBefore = router.beforeEach(() => {\n if (!inTransition) {\n inTransition = true;\n return new Promise<NavigationGuardReturn>((resolve) => {\n setTimeout(() => resolve(popped ? cb() : undefined));\n });\n }\n return popped ? cb() : undefined;\n });\n removeAfter = router?.afterEach(() => {\n inTransition = false;\n });\n });\n onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate);\n removeBefore?.();\n removeAfter?.();\n });\n }\n\n function onPopstate(e: PopStateEvent) {\n if (e.state?.replaced) return;\n\n popped = true;\n setTimeout(() => (popped = false));\n }\n}\n"],"names":["href"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useRouter.js","sources":["../../../../../src/composables/useRouter/useRouter.ts"],"sourcesContent":["import { getCurrentInstance, propsFactory } from '@cds/core';\nimport { deepEqual, type EventProp, hasEvent, IN_BROWSER } from '@cds/utils';\nimport {\n computed,\n type ExtractPublicPropTypes,\n nextTick,\n onScopeDispose,\n type PropType,\n reactive,\n type Ref,\n resolveDynamicComponent,\n type SetupContext,\n toRef,\n unref\n} from 'vue';\nimport type {\n NavigationGuardReturn,\n RouteLocation,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n Router,\n RouterLink as _RouterLink,\n useLink as _useLink\n} from 'vue-router';\n\nexport interface LinkProps extends ExtractPublicPropTypes<ReturnType<typeof defineRouterProps>> {\n disabled?: boolean | null;\n}\n\nexport interface LinkListeners {\n onClick?: EventProp;\n onClickOnce?: EventProp;\n}\n\nexport interface UseLink extends Omit<Partial<ReturnType<typeof _useLink>>, 'href' | 'route' | 'navigate'> {\n isLink: Readonly<Ref<boolean>>;\n isRouterLink: Readonly<Ref<boolean>>;\n isClickable: Readonly<Ref<boolean>>;\n href: Ref<string | undefined>;\n linkProps: Record<string, string | undefined>;\n route: Readonly<Ref<(RouteLocation & { href: string }) | undefined>>;\n navigate: Readonly<Ref<ReturnType<typeof _useLink>['navigate'] | undefined>>;\n}\n\n/**\n * Factory for defining props related to router behavior for a component.\n *\n * The created props include options for assigning link targets, handling route navigation,\n * and defining how the component behaves in relation to the Vue Router.\n *\n * @prop {string|undefined} href - The `href` attribute for a link. If provided, the component behaves like a standard HTML link.\n * @prop {boolean|undefined} replace - If `true`, navigation will replace the current history entry instead of adding a new one.\n * @prop {string|object|undefined} to - Target route or a route location object for `RouterLink`. If provided, the component behaves as a `RouterLink`.\n * @prop {boolean|undefined} exact - If `true`, active state is applied only if the route matches exactly.\n */\nexport const defineRouterProps = propsFactory(\n {\n /**\n * Атрибут href для ссылки. Если указан, компонент будет вести себя как обычная ссылка\n * @en The `href` attribute of the link. When set, the component behaves as a regular link\n */\n href: {\n type: String as PropType<string>,\n default: undefined\n },\n /**\n * Если true, навигация по маршруту будет заменять текущую запись в истории вместо добавления новой\n * @en If true, navigation replaces the current history entry instead of pushing a new one\n */\n replace: {\n type: Boolean as PropType<boolean>,\n default: undefined\n },\n /**\n * Маршрут назначения или объект для RouterLink. Если указан, компонент будет вести себя как RouterLink\n * @en Target route or route location object for RouterLink. When set, the component behaves as a RouterLink\n */\n to: {\n type: [String, Object] as PropType<RouteLocationRaw>,\n default: undefined\n },\n /**\n * Если true, активное состояние будет применяться только при точном совпадении маршрута\n * @en If true, the active state applies only on an exact route match\n */\n exact: {\n type: Boolean as PropType<boolean>,\n default: undefined\n }\n },\n 'router'\n);\n\n/**\n * Provides functionality and properties for handling links, including router links\n * and standard anchor tags, with reactive properties for navigation and interactivity.\n *\n * @param {LinkProps} props - The props for the link, including attributes like `href`, `to`, `replace`, and more.\n * @param {SetupContext['attrs']} attrs - The attributes passed to the link, e.g., event listeners like `click`.\n * @return {UseLink} An object containing properties and methods for managing the link:\n * - `route`: The route information for a router link, if applicable.\n * - `navigate`: A function to navigate the link if it's a router link.\n * - `href`: A computed property resolving the `href` for the link.\n * - `isLink`: A reactive boolean indicating whether the link is defined (`href` or `to`).\n * - `isRouterLink`: A reactive boolean indicating whether the link is a router link.\n * - `isClickable`: A reactive boolean indicating whether the link is interactable.\n * - `isActive`: A reactive boolean indicating if the route is active for router links.\n * - `linkProps`: Reactive link attributes such as `href`, `aria-current`, `aria-disabled`, and `tabindex`.\n */\nexport function useLink(props: LinkProps & LinkListeners, attrs: SetupContext['attrs']): UseLink {\n const route = useRoute();\n const RouterLink = resolveDynamicComponent('RouterLink') as typeof _RouterLink | string;\n const isLink = toRef(() => !!(props.href || props.to));\n const isClickable = computed(() => unref(isLink) || hasEvent(attrs, 'click') || hasEvent(props, 'click'));\n\n if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {\n const href = toRef(() => props.href);\n\n return {\n isLink,\n isRouterLink: toRef(() => false),\n isClickable,\n href,\n linkProps: reactive({ href }),\n route: toRef(() => undefined),\n navigate: toRef(() => undefined)\n };\n }\n\n const routerLink = RouterLink.useLink({\n to: toRef(() => props.to || ''),\n replace: toRef(() => props.replace)\n });\n const link = computed(() => (props.to ? routerLink : undefined));\n const href = computed(() => (props.to ? unref(link)?.route.value.href : props.href));\n\n const isRouterLink = toRef(() => !!props.to);\n const isActive = computed(() => {\n if (!link.value) return false;\n if (!props.exact) return link.value.isActive?.value ?? false;\n if (!route.value) return link.value.isExactActive?.value ?? false;\n\n return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);\n });\n\n return {\n href,\n isLink,\n isRouterLink,\n isClickable,\n isActive,\n linkProps: reactive({\n href,\n 'aria-current': toRef(() => (unref(isActive) ? 'page' : undefined)),\n 'aria-disabled': toRef(() => (props.disabled && unref(isLink) ? 'true' : undefined)),\n tabindex: toRef(() => (props.disabled && unref(isLink) ? '-1' : undefined))\n }),\n route: toRef(() => unref(link)?.route.value),\n navigate: toRef(() => unref(link)?.navigate)\n };\n}\n\n/**\n * A composable function that provides a reactive reference to the current route.\n * It retrieves the current route from the Vue instance and wraps it in a computed reference.\n * This allows for reactive updates when the route changes.\n *\n * @return {Ref<RouteLocationNormalizedLoaded | undefined>} A reactive reference to the current normalized loaded route or undefined if no route is available.\n */\nexport function useRoute(): Ref<RouteLocationNormalizedLoaded | undefined> {\n const vm = getCurrentInstance('useRoute');\n return computed(() => vm?.proxy?.$route);\n}\n\n/**\n * Provides access to the current Vue Router instance.\n *\n * This method retrieves the router instance associated with the current Vue component\n * instance, if available. The router instance can be used for navigation and accessing\n * route-specific data.\n *\n * @return {Router | undefined} The Vue Router instance if the current component is associated\n * with a router, or undefined if it is not found.\n */\nexport function useRouter(): Router | undefined {\n const vm = getCurrentInstance('useRouter');\n return vm?.proxy?.$router;\n}\n\nlet inTransition = false;\n\n/**\n * Sets up a back button handler using the provided router and callback function.\n * Listens for browser back button events and triggers the given callback during navigation.\n * Ensures safe handling of navigation transitions.\n *\n * @param {Router | undefined} router - The router instance to integrate with, which can be undefined if no router is used.\n * @param {() => NavigationGuardReturn} cb - A callback function that will be invoked during a back button interaction or navigation guard step.\n * @return {void} No return value.\n */\nexport function useBackButton(router: Router | undefined, cb: () => NavigationGuardReturn) {\n let popped = false;\n let removeBefore: (() => void) | undefined;\n let removeAfter: (() => void) | undefined;\n\n if (IN_BROWSER && router?.beforeEach) {\n nextTick(() => {\n window.addEventListener('popstate', onPopstate);\n removeBefore = router.beforeEach(() => {\n if (!inTransition) {\n inTransition = true;\n return new Promise<NavigationGuardReturn>((resolve) => {\n setTimeout(() => resolve(popped ? cb() : undefined));\n });\n }\n return popped ? cb() : undefined;\n });\n removeAfter = router?.afterEach(() => {\n inTransition = false;\n });\n });\n onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate);\n removeBefore?.();\n removeAfter?.();\n });\n }\n\n function onPopstate(e: PopStateEvent) {\n if (e.state?.replaced) return;\n\n popped = true;\n setTimeout(() => (popped = false));\n }\n}\n"],"names":["href"],"mappings":"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"}
|
|
@@ -5,7 +5,10 @@ import { toValue } from "vue";
|
|
|
5
5
|
const availableSizes = ["xs", "sm", "md", "lg", "xl"];
|
|
6
6
|
const defineSizeProps = propsFactory(
|
|
7
7
|
{
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Размер компонента
|
|
10
|
+
* @en Size of the component
|
|
11
|
+
*/
|
|
9
12
|
size: {
|
|
10
13
|
type: [String, Number],
|
|
11
14
|
default: "md",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSize.js","sources":["../../../../../src/composables/useSize/useSize.ts"],"sourcesContent":["import { getCurrentInstanceName, propsFactory } from '@cds/core';\nimport { convertToUnit, destructComputed, includes } from '@cds/utils';\nimport { type ExtractPublicPropTypes, type MaybeRefOrGetter, type PropType, toValue } from 'vue';\n\nexport const availableSizes = ['xs', 'sm', 'md', 'lg', 'xl'] as const;\nexport type Size = (typeof availableSizes)[number];\n\n/**\n * A factory function defining properties related to size configuration for components.\n *\n * @constant\n * @name defineSizeProps\n * @type {Function}\n *\n * Properties:\n * - `size`: Defines the size of the component.\n * - Type: String or Number\n * - Default: `'md'`\n * - Validator: Validates if the value is a number or one of the predefined sizes in `availableSizes`.\n *\n * This function is typically used to generate size-related props for reusable or configurable UI components.\n */\nexport const defineSizeProps = propsFactory(\n {\n
|
|
1
|
+
{"version":3,"file":"useSize.js","sources":["../../../../../src/composables/useSize/useSize.ts"],"sourcesContent":["import { getCurrentInstanceName, propsFactory } from '@cds/core';\nimport { convertToUnit, destructComputed, includes } from '@cds/utils';\nimport { type ExtractPublicPropTypes, type MaybeRefOrGetter, type PropType, toValue } from 'vue';\n\nexport const availableSizes = ['xs', 'sm', 'md', 'lg', 'xl'] as const;\nexport type Size = (typeof availableSizes)[number];\n\n/**\n * A factory function defining properties related to size configuration for components.\n *\n * @constant\n * @name defineSizeProps\n * @type {Function}\n *\n * Properties:\n * - `size`: Defines the size of the component.\n * - Type: String or Number\n * - Default: `'md'`\n * - Validator: Validates if the value is a number or one of the predefined sizes in `availableSizes`.\n *\n * This function is typically used to generate size-related props for reusable or configurable UI components.\n */\nexport const defineSizeProps = propsFactory(\n {\n /**\n * Размер компонента\n * @en Size of the component\n */\n size: {\n type: [String, Number] as PropType<Size | number>,\n default: 'md',\n validator: (value: Size | any) => typeof value === 'number' || availableSizes.includes(value)\n }\n },\n 'size'\n);\n\nexport type SizeProps = ExtractPublicPropTypes<ReturnType<typeof defineSizeProps>>;\n\n/**\n * Computes size-related classes and styles based on the provided properties.\n *\n * @param {MaybeRefOrGetter<SizeProps>} props - The properties containing size information.\n * @param {string} [name=getCurrentInstanceName()] - The name of the current component instance.\n * @return {Object} An object containing `sizeClasses` for CSS class names and `sizeStyles` for inline styles.\n */\nexport function useSize(props: MaybeRefOrGetter<SizeProps>, name = getCurrentInstanceName()) {\n return destructComputed(() => {\n const { size } = toValue(props);\n let sizeClasses, sizeStyles;\n\n if (includes(availableSizes, size)) {\n sizeClasses = `${name}--size-${size}`;\n } else if (size) {\n sizeStyles = {\n width: convertToUnit(size),\n height: convertToUnit(size)\n };\n }\n\n return { sizeClasses, sizeStyles };\n });\n}\n"],"names":[],"mappings":";;;;AAIO,MAAM,iBAAiB,CAAC,MAAM,MAAM,MAAM,MAAM,IAAI;AAkBpD,MAAM,kBAAkB;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA,IAKE,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,MACT,WAAW,CAAC,UAAsB,OAAO,UAAU,YAAY,eAAe,SAAS,KAAK;AAAA,IAAA;AAAA,EAC9F;AAAA,EAEF;AACF;AAWO,SAAS,QAAQ,OAAoC,OAAO,0BAA0B;AAC3F,SAAO,iBAAiB,MAAM;AAC5B,UAAM,EAAE,KAAA,IAAS,QAAQ,KAAK;AAC9B,QAAI,aAAa;AAEjB,QAAI,SAAS,gBAAgB,IAAI,GAAG;AAClC,oBAAc,GAAG,IAAI,UAAU,IAAI;AAAA,IACrC,WAAW,MAAM;AACf,mBAAa;AAAA,QACX,OAAO,cAAc,IAAI;AAAA,QACzB,QAAQ,cAAc,IAAI;AAAA,MAAA;AAAA,IAE9B;AAEA,WAAO,EAAE,aAAa,WAAA;AAAA,EACxB,CAAC;AACH;"}
|
|
@@ -3,7 +3,10 @@ import { computed } from "vue";
|
|
|
3
3
|
import { s as statusIcons } from "./internal/useStatus.constants.js";
|
|
4
4
|
const defineStatusProps = propsFactory(
|
|
5
5
|
{
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Семантический статус — определяет цвет и дефолтную иконку.
|
|
8
|
+
* @en Semantic status — drives the color and the default icon.
|
|
9
|
+
*/
|
|
7
10
|
status: {
|
|
8
11
|
type: String,
|
|
9
12
|
default: "info"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStatus.js","sources":["../../../../../src/composables/useStatus/useStatus.ts"],"sourcesContent":["import type { IconValue } from '@cds/composables/useIcons';\nimport { propsFactory } from '@cds/core';\nimport { computed, type ComputedRef, type PropType } from 'vue';\n\nimport { type CdsStatusValue, statusIcons } from './internal/useStatus.constants';\n\nexport const defineStatusProps = propsFactory(\n {\n
|
|
1
|
+
{"version":3,"file":"useStatus.js","sources":["../../../../../src/composables/useStatus/useStatus.ts"],"sourcesContent":["import type { IconValue } from '@cds/composables/useIcons';\nimport { propsFactory } from '@cds/core';\nimport { computed, type ComputedRef, type PropType } from 'vue';\n\nimport { type CdsStatusValue, statusIcons } from './internal/useStatus.constants';\n\nexport const defineStatusProps = propsFactory(\n {\n /**\n * Семантический статус — определяет цвет и дефолтную иконку.\n * @en Semantic status — drives the color and the default icon.\n */\n status: {\n type: String as PropType<CdsStatusValue>,\n default: 'info'\n }\n },\n 'status'\n);\n\nexport interface UseStatusOptions {\n /** Переопределение набора иконок статуса (например, не-`fill` для алертов). */\n icons?: Record<CdsStatusValue, IconValue>;\n}\n\nexport interface UseStatusReturn {\n status: ComputedRef<CdsStatusValue>;\n statusIcon: ComputedRef<IconValue>;\n}\n\n/**\n * Резолвит семантику статуса: текущий статус и иконку для него.\n * `options.icons` позволяет компоненту подменить набор иконок.\n */\nexport function useStatus(props: { status: CdsStatusValue }, options: UseStatusOptions = {}): UseStatusReturn {\n const icons = options.icons ?? statusIcons;\n\n return {\n status: computed(() => props.status),\n statusIcon: computed(() => icons[props.status])\n };\n}\n"],"names":[],"mappings":";;;AAMO,MAAM,oBAAoB;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA,IAKE,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF;AACF;AAgBO,SAAS,UAAU,OAAmC,UAA4B,IAAqB;AAC5G,QAAM,QAAQ,QAAQ,SAAS;AAE/B,SAAO;AAAA,IACL,QAAQ,SAAS,MAAM,MAAM,MAAM;AAAA,IACnC,YAAY,SAAS,MAAM,MAAM,MAAM,MAAM,CAAC;AAAA,EAAA;AAElD;"}
|
|
@@ -2,9 +2,15 @@ import { p as propsFactory } from "../../core/propsFactory.js";
|
|
|
2
2
|
import { computed, toDisplayString } from "vue";
|
|
3
3
|
const defineTextProps = propsFactory(
|
|
4
4
|
{
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Текст, отображаемый в компоненте.
|
|
7
|
+
* @en Text displayed in the component.
|
|
8
|
+
*/
|
|
6
9
|
text: [String, Number],
|
|
7
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Контент, отображаемый в компоненте.
|
|
12
|
+
* @en Content displayed in the component.
|
|
13
|
+
*/
|
|
8
14
|
content: [String, Number]
|
|
9
15
|
},
|
|
10
16
|
"text"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useText.js","sources":["../../../../../src/composables/useText/useText.ts"],"sourcesContent":["import { propsFactory } from '@cds/core';\nimport { computed, type ExtractPublicPropTypes, toDisplayString } from 'vue';\n\n/**\n * Factory function to define the text-related properties for a component.\n *\n * @typedef {Object} defineTextProps\n * @property {(String|Number)} text - The text displayed in the component.\n * @property {(String|Number)} content - The content displayed in the component.\n */\nexport const defineTextProps = propsFactory(\n {\n
|
|
1
|
+
{"version":3,"file":"useText.js","sources":["../../../../../src/composables/useText/useText.ts"],"sourcesContent":["import { propsFactory } from '@cds/core';\nimport { computed, type ExtractPublicPropTypes, toDisplayString } from 'vue';\n\n/**\n * Factory function to define the text-related properties for a component.\n *\n * @typedef {Object} defineTextProps\n * @property {(String|Number)} text - The text displayed in the component.\n * @property {(String|Number)} content - The content displayed in the component.\n */\nexport const defineTextProps = propsFactory(\n {\n /**\n * Текст, отображаемый в компоненте.\n * @en Text displayed in the component.\n */\n text: [String, Number],\n /**\n * Контент, отображаемый в компоненте.\n * @en Content displayed in the component.\n */\n content: [String, Number]\n },\n 'text'\n);\n\nexport type TextProps = ExtractPublicPropTypes<ReturnType<typeof defineTextProps>>;\n\n/**\n * Processes the input text properties and generates plain content and displayable text.\n *\n * @param {TextProps} props - The text properties containing the input text or content.\n * @return {Object} An object containing `plainContent` and `displayText`:\n * - `plainContent`: Реактивный (computed) исходный контент из `text`/`content`.\n * - `displayText`: Реактивная (computed) строка для отображения.\n */\nexport function useText(props: TextProps) {\n const plainContent = computed(() => props.text ?? props.content);\n const displayText = computed(() => toDisplayString(plainContent.value));\n\n return {\n plainContent,\n displayText\n };\n}\n"],"names":[],"mappings":";;AAUO,MAAM,kBAAkB;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA,IAKE,MAAM,CAAC,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,IAKrB,SAAS,CAAC,QAAQ,MAAM;AAAA,EAAA;AAAA,EAE1B;AACF;AAYO,SAAS,QAAQ,OAAkB;AACxC,QAAM,eAAe,SAAS,MAAM,MAAM,QAAQ,MAAM,OAAO;AAC/D,QAAM,cAAc,SAAS,MAAM,gBAAgB,aAAa,KAAK,CAAC;AAEtE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEJ;"}
|
|
@@ -1,17 +1,28 @@
|
|
|
1
1
|
import { p as promoLight } from "../../../themes/promoLight.js";
|
|
2
2
|
import { p as promoDark } from "../../../themes/promoDark.js";
|
|
3
|
+
import { l as lumaDark } from "../../../themes/lumaDark.js";
|
|
4
|
+
import { l as lumaLight } from "../../../themes/lumaLight.js";
|
|
3
5
|
import { b as b2bDark } from "../../../themes/b2bDark.js";
|
|
4
6
|
import { b as b2bLight } from "../../../themes/b2bLight.js";
|
|
5
7
|
import { c as cdsDark } from "../../../themes/cdsDark.js";
|
|
6
8
|
import { c as cdsLight } from "../../../themes/cdsLight.js";
|
|
7
9
|
const ThemeSymbol = Symbol.for("cds:theme");
|
|
8
|
-
const availableTheme = [
|
|
10
|
+
const availableTheme = [
|
|
11
|
+
"cdsLight",
|
|
12
|
+
"cdsDark",
|
|
13
|
+
"b2bLight",
|
|
14
|
+
"b2bDark",
|
|
15
|
+
"lumaLight",
|
|
16
|
+
"lumaDark",
|
|
17
|
+
"promoDark",
|
|
18
|
+
"promoLight"
|
|
19
|
+
];
|
|
9
20
|
const DEFAULT_THEME = "cdsLight";
|
|
10
21
|
const defaultThemeOptions = {
|
|
11
22
|
defaultTheme: DEFAULT_THEME,
|
|
12
23
|
prefix: "cds",
|
|
13
24
|
variations: false,
|
|
14
|
-
themes: { cdsLight, cdsDark, b2bLight, b2bDark, promoDark, promoLight },
|
|
25
|
+
themes: { cdsLight, cdsDark, b2bLight, b2bDark, lumaLight, lumaDark, promoDark, promoLight },
|
|
15
26
|
stylesheetId: "cds-theme-stylesheet",
|
|
16
27
|
scoped: false,
|
|
17
28
|
utilities: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTheme.constants.js","sources":["../../../../../../src/composables/useTheme/internal/useTheme.constants.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useTheme.constants.js","sources":["../../../../../../src/composables/useTheme/internal/useTheme.constants.ts"],"sourcesContent":["import {\n b2bDark,\n b2bLight,\n cdsDark,\n cdsLight,\n lumaDark,\n lumaLight,\n promoDark,\n promoLight,\n type ThemeName\n} from '@cds/themes';\nimport type { InjectionKey } from 'vue';\n\nimport type { ThemeInstance, ThemeOptions } from './useTheme.types';\n\nexport const ThemeSymbol: InjectionKey<ThemeInstance> = Symbol.for('cds:theme');\n\nexport const availableTheme = [\n 'cdsLight',\n 'cdsDark',\n 'b2bLight',\n 'b2bDark',\n 'lumaLight',\n 'lumaDark',\n 'promoDark',\n 'promoLight'\n] as const;\n\nexport const DEFAULT_THEME: ThemeName = 'cdsLight';\n\nexport const defaultThemeOptions: Exclude<ThemeOptions, false> = {\n defaultTheme: DEFAULT_THEME,\n prefix: 'cds',\n variations: false,\n themes: { cdsLight, cdsDark, b2bLight, b2bDark, lumaLight, lumaDark, promoDark, promoLight },\n stylesheetId: 'cds-theme-stylesheet',\n scoped: false,\n utilities: true,\n legacyClasses: false\n};\n"],"names":[],"mappings":";;;;;;;;AAeO,MAAM,cAA2C,OAAO,IAAI,WAAW;AAEvE,MAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,gBAA2B;AAEjC,MAAM,sBAAoD;AAAA,EAC/D,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,QAAQ,EAAE,UAAU,SAAS,UAAU,SAAS,WAAW,UAAU,WAAW,WAAA;AAAA,EAChF,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,eAAe;AACjB;"}
|
|
@@ -7,7 +7,10 @@ import { D as DEFAULT_THEME, T as ThemeSymbol } from "./internal/useTheme.consta
|
|
|
7
7
|
import { p as parseThemeOptions, g as generateVariations, a as generateOnColors, c as createCssClass, b as generateCssVariables, u as upsertStyles } from "./internal/useTheme.utils.js";
|
|
8
8
|
const defineThemeProps = propsFactory(
|
|
9
9
|
{
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Тема компонента
|
|
12
|
+
* @en Component theme
|
|
13
|
+
*/
|
|
11
14
|
theme: {
|
|
12
15
|
type: String,
|
|
13
16
|
default: void 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTheme.js","sources":["../../../../../src/composables/useTheme/useTheme.ts"],"sourcesContent":["import { getCurrentInstance, propsFactory } from '@cds/core';\nimport { IN_BROWSER, mergeDeep } from '@cds/utils';\nimport { type App, computed, inject, type PropType, provide, ref, shallowRef, unref, watch, watchEffect } from 'vue';\n\nimport { DEFAULT_THEME, ThemeSymbol } from './internal/useTheme.constants';\nimport type { InternalThemeDefinition, Theme, ThemeInstance, ThemeOptions } from './internal/useTheme.types';\nimport {\n createCssClass,\n generateCssVariables,\n generateOnColors,\n generateVariations,\n parseThemeOptions,\n upsertStyles\n} from './internal/useTheme.utils';\n\n/**\n * Defines props related to theming for a Vue component.\n *\n * The `defineThemeProps` variable facilitates the creation of a property configuration\n * to manage the component's theme. It provides flexibility to set a theme either as a\n * predefined object or as a string-based theme identifier.\n */\nexport const defineThemeProps = propsFactory(\n {\n /** Тема компонента */\n theme: {\n type: String as PropType<Theme | string>,\n default: undefined\n }\n },\n 'theme'\n);\n\n/**\n * Creates a theme instance with support for generating color variations,\n * CSS classes, and dynamic theme installation in a Vue application.\n *\n * @param {ThemeOptions} [options] - Configuration options for the theme, including default theme name, themes, variations, and other settings.\n * @return {ThemeInstance & { install: (app: App) => void }} An object containing the theme instance properties, computed values, and an `install` function for integrating with a Vue app.\n */\nexport function createTheme(options?: ThemeOptions): ThemeInstance & { install: (app: App) => void } {\n const parsedOptions = parseThemeOptions(options);\n const _name = ref(parsedOptions.defaultTheme);\n const themes = ref(parsedOptions.themes);\n const systemName = shallowRef(DEFAULT_THEME);\n\n const name = computed({\n get() {\n return _name.value === 'system' ? systemName.value : _name.value;\n },\n set(val: string) {\n _name.value = val;\n }\n });\n\n const computedThemes = computed(() => {\n const acc: Record<string, InternalThemeDefinition> = {};\n\n for (const [name, original] of Object.entries(unref(themes))) {\n const defaultTheme = original.dark || name === 'dark' ? unref(themes).cdsDark : unref(themes).cdsLight;\n\n const merged = mergeDeep(defaultTheme, original) as InternalThemeDefinition;\n\n const colors = {\n ...merged.colors,\n ...generateVariations(merged.colors, parsedOptions.variations)\n };\n\n acc[name] = {\n ...merged,\n colors: {\n ...colors,\n ...generateOnColors(colors, merged.variables)\n }\n };\n }\n\n return acc;\n });\n\n const current = computed(() => unref(computedThemes)[unref(name)]);\n\n // const isSystem = toRef(() => _name.value === 'system');\n\n const styles = computed(() => {\n const lines: string[] = [];\n\n lines.push('@layer theme-base {\\n');\n\n if (unref(current).dark) {\n createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);\n }\n\n createCssClass(lines, ':root', generateCssVariables(unref(current), parsedOptions.prefix), parsedOptions.scope);\n\n for (const [themeName, theme] of Object.entries(unref(computedThemes))) {\n createCssClass(\n lines,\n `.${parsedOptions.prefix}-theme--${themeName}`,\n [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...generateCssVariables(theme, parsedOptions.prefix)],\n parsedOptions.scope\n );\n }\n\n lines.push('}\\n');\n\n if (parsedOptions.utilities) {\n const bgLines: string[] = [];\n const fgLines: string[] = [];\n\n const colors = new Set(Object.values(unref(computedThemes)).flatMap((theme) => Object.keys(theme.colors)));\n\n for (const key of colors) {\n if (/^on-[a-z]/.test(key)) {\n createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}-color-${key})) !important`]);\n } else {\n if (parsedOptions.legacyClasses) {\n createCssClass(bgLines, `.${parsedOptions.prefix}-bg-${key}`, [\n `--${parsedOptions.prefix}-color-overlay-multiplier: var(--${parsedOptions.prefix}-color-${key}-overlay-multiplier)`,\n `background-color: rgb(var(--${parsedOptions.prefix}-color-${key})) !important`,\n `color: rgb(var(--${parsedOptions.prefix}-color-on-${key})) !important`\n ]);\n createCssClass(fgLines, `.${parsedOptions.prefix}-text-${key}`, [\n `color: rgb(var(--${parsedOptions.prefix}-color-${key})) !important`\n ]);\n createCssClass(fgLines, `.${parsedOptions.prefix}-border-${key}`, [\n `border-color: rgb(var(--${parsedOptions.prefix}-color-${key}))`\n ]);\n }\n }\n }\n\n lines.push(\n '@layer theme-background {\\n',\n ...bgLines.map((v) => ` ${v}`),\n '}\\n',\n '@layer theme-foreground {\\n',\n ...fgLines.map((v) => ` ${v}`),\n '}\\n'\n );\n }\n\n return '@layer cds-utilities {\\n' + lines.map((v) => ` ${v}`).join('') + '\\n}';\n });\n\n function getHead() {\n return {\n style: [\n {\n children: unref(styles),\n id: parsedOptions.stylesheetId,\n nonce: parsedOptions.cspNonce || (false as never)\n }\n ]\n };\n }\n\n function install(app: App) {\n if (parsedOptions.isDisabled) return;\n\n const head = app._context.provides.usehead;\n\n if (head) {\n if (head.push) {\n const entry = head.push(getHead);\n\n if (IN_BROWSER) {\n watch(styles, () => entry.patch(getHead));\n }\n } else {\n if (IN_BROWSER) {\n head.addHeadObjs(computed(getHead));\n watchEffect(() => head.updateDOM());\n } else {\n head.addHeadObjs(getHead());\n }\n }\n } else {\n if (IN_BROWSER) {\n watch(styles, updateStyles, { immediate: true });\n } else {\n updateStyles();\n }\n\n function updateStyles() {\n upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);\n }\n }\n }\n\n const themeClasses = computed(() => (parsedOptions.isDisabled ? undefined : `cds-theme--${unref(name)}`));\n\n return {\n install,\n isDisabled: parsedOptions.isDisabled,\n name,\n themes,\n current,\n computedThemes,\n themeClasses,\n styles,\n global: {\n name,\n current\n }\n };\n}\n\n/**\n * Provides a theme to the current component and its descendants.\n *\n * This method injects an existing theme instance, validates its existence, and creates\n * a new extended theme instance with additional properties based on the provided or\n * inherited theme configuration. The new theme is then provided to the component's\n * context for usage in child components.\n *\n * @param {Object} props - Configuration options for the theme.\n * @param {string} [props.theme] - A string representing the name of the theme to be applied. If not provided, the theme is inherited from the injected theme instance.\n * @return {ThemeInstance} The newly created theme instance with updated properties, which includes the computed name, current theme object, and the theme's CSS class.\n */\nexport function provideTheme(props: { theme?: string }) {\n getCurrentInstance('provideTheme');\n\n const theme = inject(ThemeSymbol, null);\n\n if (!theme) throw new Error('[CDS] Could not find CDS theme injection');\n\n const name = computed<string>(() => {\n return props.theme ?? unref(theme.name);\n });\n const current = computed(() => unref(theme.themes)[unref(name)]);\n\n const themeClasses = computed(() => (theme.isDisabled ? undefined : `cds-theme--${unref(name)}`));\n\n const newTheme: ThemeInstance = {\n ...theme,\n name,\n current,\n themeClasses\n };\n\n provide(ThemeSymbol, newTheme);\n\n return newTheme;\n}\n\n/**\n * A function to retrieve the current theme object from the Vue context. This function relies on\n * Vue's dependency injection system to provide the theme associated with the current component.\n * If the theme cannot be found, it throws an error.\n *\n * @return {Object} The injected theme object associated with the current Vue context.\n * @throws {Error} If the theme injection cannot be found in the current context.\n */\nexport function useTheme() {\n getCurrentInstance('useTheme');\n\n const theme = inject(ThemeSymbol, null);\n\n if (!theme) throw new Error('[CDS] Could not find theme injection');\n\n return theme;\n}\n"],"names":["name"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTheme.js","sources":["../../../../../src/composables/useTheme/useTheme.ts"],"sourcesContent":["import { getCurrentInstance, propsFactory } from '@cds/core';\nimport { IN_BROWSER, mergeDeep } from '@cds/utils';\nimport { type App, computed, inject, type PropType, provide, ref, shallowRef, unref, watch, watchEffect } from 'vue';\n\nimport { DEFAULT_THEME, ThemeSymbol } from './internal/useTheme.constants';\nimport type { InternalThemeDefinition, Theme, ThemeInstance, ThemeOptions } from './internal/useTheme.types';\nimport {\n createCssClass,\n generateCssVariables,\n generateOnColors,\n generateVariations,\n parseThemeOptions,\n upsertStyles\n} from './internal/useTheme.utils';\n\n/**\n * Defines props related to theming for a Vue component.\n *\n * The `defineThemeProps` variable facilitates the creation of a property configuration\n * to manage the component's theme. It provides flexibility to set a theme either as a\n * predefined object or as a string-based theme identifier.\n */\nexport const defineThemeProps = propsFactory(\n {\n /**\n * Тема компонента\n * @en Component theme\n */\n theme: {\n type: String as PropType<Theme | string>,\n default: undefined\n }\n },\n 'theme'\n);\n\n/**\n * Creates a theme instance with support for generating color variations,\n * CSS classes, and dynamic theme installation in a Vue application.\n *\n * @param {ThemeOptions} [options] - Configuration options for the theme, including default theme name, themes, variations, and other settings.\n * @return {ThemeInstance & { install: (app: App) => void }} An object containing the theme instance properties, computed values, and an `install` function for integrating with a Vue app.\n */\nexport function createTheme(options?: ThemeOptions): ThemeInstance & { install: (app: App) => void } {\n const parsedOptions = parseThemeOptions(options);\n const _name = ref(parsedOptions.defaultTheme);\n const themes = ref(parsedOptions.themes);\n const systemName = shallowRef(DEFAULT_THEME);\n\n const name = computed({\n get() {\n return _name.value === 'system' ? systemName.value : _name.value;\n },\n set(val: string) {\n _name.value = val;\n }\n });\n\n const computedThemes = computed(() => {\n const acc: Record<string, InternalThemeDefinition> = {};\n\n for (const [name, original] of Object.entries(unref(themes))) {\n const defaultTheme = original.dark || name === 'dark' ? unref(themes).cdsDark : unref(themes).cdsLight;\n\n const merged = mergeDeep(defaultTheme, original) as InternalThemeDefinition;\n\n const colors = {\n ...merged.colors,\n ...generateVariations(merged.colors, parsedOptions.variations)\n };\n\n acc[name] = {\n ...merged,\n colors: {\n ...colors,\n ...generateOnColors(colors, merged.variables)\n }\n };\n }\n\n return acc;\n });\n\n const current = computed(() => unref(computedThemes)[unref(name)]);\n\n // const isSystem = toRef(() => _name.value === 'system');\n\n const styles = computed(() => {\n const lines: string[] = [];\n\n lines.push('@layer theme-base {\\n');\n\n if (unref(current).dark) {\n createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);\n }\n\n createCssClass(lines, ':root', generateCssVariables(unref(current), parsedOptions.prefix), parsedOptions.scope);\n\n for (const [themeName, theme] of Object.entries(unref(computedThemes))) {\n createCssClass(\n lines,\n `.${parsedOptions.prefix}-theme--${themeName}`,\n [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...generateCssVariables(theme, parsedOptions.prefix)],\n parsedOptions.scope\n );\n }\n\n lines.push('}\\n');\n\n if (parsedOptions.utilities) {\n const bgLines: string[] = [];\n const fgLines: string[] = [];\n\n const colors = new Set(Object.values(unref(computedThemes)).flatMap((theme) => Object.keys(theme.colors)));\n\n for (const key of colors) {\n if (/^on-[a-z]/.test(key)) {\n createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}-color-${key})) !important`]);\n } else {\n if (parsedOptions.legacyClasses) {\n createCssClass(bgLines, `.${parsedOptions.prefix}-bg-${key}`, [\n `--${parsedOptions.prefix}-color-overlay-multiplier: var(--${parsedOptions.prefix}-color-${key}-overlay-multiplier)`,\n `background-color: rgb(var(--${parsedOptions.prefix}-color-${key})) !important`,\n `color: rgb(var(--${parsedOptions.prefix}-color-on-${key})) !important`\n ]);\n createCssClass(fgLines, `.${parsedOptions.prefix}-text-${key}`, [\n `color: rgb(var(--${parsedOptions.prefix}-color-${key})) !important`\n ]);\n createCssClass(fgLines, `.${parsedOptions.prefix}-border-${key}`, [\n `border-color: rgb(var(--${parsedOptions.prefix}-color-${key}))`\n ]);\n }\n }\n }\n\n lines.push(\n '@layer theme-background {\\n',\n ...bgLines.map((v) => ` ${v}`),\n '}\\n',\n '@layer theme-foreground {\\n',\n ...fgLines.map((v) => ` ${v}`),\n '}\\n'\n );\n }\n\n return '@layer cds-utilities {\\n' + lines.map((v) => ` ${v}`).join('') + '\\n}';\n });\n\n function getHead() {\n return {\n style: [\n {\n children: unref(styles),\n id: parsedOptions.stylesheetId,\n nonce: parsedOptions.cspNonce || (false as never)\n }\n ]\n };\n }\n\n function install(app: App) {\n if (parsedOptions.isDisabled) return;\n\n const head = app._context.provides.usehead;\n\n if (head) {\n if (head.push) {\n const entry = head.push(getHead);\n\n if (IN_BROWSER) {\n watch(styles, () => entry.patch(getHead));\n }\n } else {\n if (IN_BROWSER) {\n head.addHeadObjs(computed(getHead));\n watchEffect(() => head.updateDOM());\n } else {\n head.addHeadObjs(getHead());\n }\n }\n } else {\n if (IN_BROWSER) {\n watch(styles, updateStyles, { immediate: true });\n } else {\n updateStyles();\n }\n\n function updateStyles() {\n upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);\n }\n }\n }\n\n const themeClasses = computed(() => (parsedOptions.isDisabled ? undefined : `cds-theme--${unref(name)}`));\n\n return {\n install,\n isDisabled: parsedOptions.isDisabled,\n name,\n themes,\n current,\n computedThemes,\n themeClasses,\n styles,\n global: {\n name,\n current\n }\n };\n}\n\n/**\n * Provides a theme to the current component and its descendants.\n *\n * This method injects an existing theme instance, validates its existence, and creates\n * a new extended theme instance with additional properties based on the provided or\n * inherited theme configuration. The new theme is then provided to the component's\n * context for usage in child components.\n *\n * @param {Object} props - Configuration options for the theme.\n * @param {string} [props.theme] - A string representing the name of the theme to be applied. If not provided, the theme is inherited from the injected theme instance.\n * @return {ThemeInstance} The newly created theme instance with updated properties, which includes the computed name, current theme object, and the theme's CSS class.\n */\nexport function provideTheme(props: { theme?: string }) {\n getCurrentInstance('provideTheme');\n\n const theme = inject(ThemeSymbol, null);\n\n if (!theme) throw new Error('[CDS] Could not find CDS theme injection');\n\n const name = computed<string>(() => {\n return props.theme ?? unref(theme.name);\n });\n const current = computed(() => unref(theme.themes)[unref(name)]);\n\n const themeClasses = computed(() => (theme.isDisabled ? undefined : `cds-theme--${unref(name)}`));\n\n const newTheme: ThemeInstance = {\n ...theme,\n name,\n current,\n themeClasses\n };\n\n provide(ThemeSymbol, newTheme);\n\n return newTheme;\n}\n\n/**\n * A function to retrieve the current theme object from the Vue context. This function relies on\n * Vue's dependency injection system to provide the theme associated with the current component.\n * If the theme cannot be found, it throws an error.\n *\n * @return {Object} The injected theme object associated with the current Vue context.\n * @throws {Error} If the theme injection cannot be found in the current context.\n */\nexport function useTheme() {\n getCurrentInstance('useTheme');\n\n const theme = inject(ThemeSymbol, null);\n\n if (!theme) throw new Error('[CDS] Could not find theme injection');\n\n return theme;\n}\n"],"names":["name"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTransition.js","sources":["../../../../../src/composables/useTransition/useTransition.ts"],"sourcesContent":["import { propsFactory, type TagProps } from '@cds/core';\nimport { clamp, isObject, onlyDefinedProps, PREFERS_REDUCED_MOTION } from '@cds/utils';\nimport {\n type Component,\n computed,\n type FunctionalComponent,\n h,\n type HTMLAttributes,\n type MaybeRefOrGetter,\n mergeProps,\n type Prop,\n type Ref,\n shallowRef,\n toValue,\n Transition,\n TransitionGroup,\n type TransitionProps,\n unref,\n watch\n} from 'vue';\n\nexport const standardEasing = 'cubic-bezier(0.4, 0, 0.2, 1)';\nexport const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)'; // Entering\nexport const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving\n\nexport type EasingFunction = (n: number) => number;\n\nexport const easingPatterns = {\n linear: (t: number) => t,\n easeInQuad: (t: number) => t ** 2,\n easeOutQuad: (t: number) => t * (2 - t),\n easeInOutQuad: (t: number) => (t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t),\n easeInCubic: (t: number) => t ** 3,\n easeOutCubic: (t: number) => (--t) ** 3 + 1,\n easeInOutCubic: (t: number) => (t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1),\n easeInQuart: (t: number) => t ** 4,\n easeOutQuart: (t: number) => 1 - (--t) ** 4,\n easeInOutQuart: (t: number) => (t < 0.5 ? 8 * t ** 4 : 1 - 8 * (--t) ** 4),\n easeInQuint: (t: number) => t ** 5,\n easeOutQuint: (t: number) => 1 + (--t) ** 5,\n easeInOutQuint: (t: number) => (t < 0.5 ? 16 * t ** 5 : 1 + 16 * (--t) ** 5),\n instant: (_t: number) => 1\n} as const;\n\nexport type EasingOptions = {\n duration?: number;\n transition?: EasingFunction;\n};\n\ntype InternalEasingOptions = {\n duration: number;\n transition: EasingFunction;\n};\n\n/**\n * Utility function for defining transition-related properties in a component.\n *\n * @param {Object} options - The set of properties and default values to define transition behavior for a component.\n *\n * @property {null|string|boolean|TransitionProps & { component?: Component }} transition\n * - Specifies the transition type or configuration for a component.\n * - Defaults to `'fade-transition'`.\n * - Validates that the value is not `true`.\n *\n * @returns {Object} A configured property object for handling transitions in the associated component.\n */\nexport const defineTransitionProps = propsFactory(\n {\n
|
|
1
|
+
{"version":3,"file":"useTransition.js","sources":["../../../../../src/composables/useTransition/useTransition.ts"],"sourcesContent":["import { propsFactory, type TagProps } from '@cds/core';\nimport { clamp, isObject, onlyDefinedProps, PREFERS_REDUCED_MOTION } from '@cds/utils';\nimport {\n type Component,\n computed,\n type FunctionalComponent,\n h,\n type HTMLAttributes,\n type MaybeRefOrGetter,\n mergeProps,\n type Prop,\n type Ref,\n shallowRef,\n toValue,\n Transition,\n TransitionGroup,\n type TransitionProps,\n unref,\n watch\n} from 'vue';\n\nexport const standardEasing = 'cubic-bezier(0.4, 0, 0.2, 1)';\nexport const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)'; // Entering\nexport const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving\n\nexport type EasingFunction = (n: number) => number;\n\nexport const easingPatterns = {\n linear: (t: number) => t,\n easeInQuad: (t: number) => t ** 2,\n easeOutQuad: (t: number) => t * (2 - t),\n easeInOutQuad: (t: number) => (t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t),\n easeInCubic: (t: number) => t ** 3,\n easeOutCubic: (t: number) => (--t) ** 3 + 1,\n easeInOutCubic: (t: number) => (t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1),\n easeInQuart: (t: number) => t ** 4,\n easeOutQuart: (t: number) => 1 - (--t) ** 4,\n easeInOutQuart: (t: number) => (t < 0.5 ? 8 * t ** 4 : 1 - 8 * (--t) ** 4),\n easeInQuint: (t: number) => t ** 5,\n easeOutQuint: (t: number) => 1 + (--t) ** 5,\n easeInOutQuint: (t: number) => (t < 0.5 ? 16 * t ** 5 : 1 + 16 * (--t) ** 5),\n instant: (_t: number) => 1\n} as const;\n\nexport type EasingOptions = {\n duration?: number;\n transition?: EasingFunction;\n};\n\ntype InternalEasingOptions = {\n duration: number;\n transition: EasingFunction;\n};\n\n/**\n * Utility function for defining transition-related properties in a component.\n *\n * @param {Object} options - The set of properties and default values to define transition behavior for a component.\n *\n * @property {null|string|boolean|TransitionProps & { component?: Component }} transition\n * - Specifies the transition type or configuration for a component.\n * - Defaults to `'fade-transition'`.\n * - Validates that the value is not `true`.\n *\n * @returns {Object} A configured property object for handling transitions in the associated component.\n */\nexport const defineTransitionProps = propsFactory(\n {\n /**\n * Анимация перехода\n * @en Transition animation\n */\n transition: {\n type: null,\n default: 'fade-transition',\n validator: (val) => val !== true\n } as Prop<null | string | boolean | (TransitionProps & { component?: Component })>\n },\n 'transition'\n);\n\ninterface MaybeTransitionProps extends TransitionProps, TagProps, HTMLAttributes {\n transition?: null | string | boolean | (TransitionProps & { component?: any });\n disabled?: boolean;\n group?: boolean;\n target?: HTMLElement | [x: number, y: number];\n}\n\n/**\n * A functional component that conditionally renders an animated transition or group transition\n * based on the provided properties. If transitions are disabled or undefined, it falls back to\n * rendering without animations.\n *\n * @typedef MaybeTransitionProps\n * @property {string|Object} [transition] - Specifies the transition animation name or an object defining custom transition properties.\n * @property {boolean} [disabled] - If true, disables transitions entirely.\n * @property {boolean} [group] - Determines if the transition should be handled as a group (uses `TransitionGroup` instead of `Transition`).\n * @property {Object} [props] - Additional properties to be passed to the component.\n *\n * @component\n * @param {MaybeTransitionProps & Object} props - Properties that define the behavior and configuration of the transition.\n * @param {Object} context.slots - Slots that define the content to be rendered inside the transition.\n * @returns {VNode} Rendered virtual DOM node with or without transitions applied.\n */\nexport const MaybeTransition: FunctionalComponent<MaybeTransitionProps> = (props, { slots }) => {\n const { transition, disabled, group, ...rest } = props;\n\n const { component = group ? TransitionGroup : Transition, ...customProps } = isObject(transition) ? transition : {};\n\n let transitionProps;\n if (isObject(transition)) {\n transitionProps = mergeProps(customProps, onlyDefinedProps({ disabled, group }), rest);\n } else {\n transitionProps = mergeProps({ name: disabled || !transition ? '' : transition }, rest);\n }\n\n return h(component as Component, transitionProps, slots);\n};\n\n/**\n * Creates a reactive transition between a source value and a target value using specified easing options.\n * This utility is useful for smooth animations or transitions of numeric values.\n *\n * @param {MaybeRefOrGetter<number>} source - The source numeric value to transition from. Can be a ref, reactive getter, or plain value.\n * @param {MaybeRefOrGetter<EasingOptions>} options - The easing options that specify the duration and easing pattern for the transition. Can be a ref, reactive getter, or plain object.\n * @return {ComputedRef<number>} A readonly computed ref representing the current interpolated value during the transition.\n */\nexport function useTransition(source: MaybeRefOrGetter<number>, options: MaybeRefOrGetter<EasingOptions>) {\n const defaultTransition: InternalEasingOptions = {\n duration: 300,\n transition: easingPatterns.easeInOutCubic\n };\n\n let raf = -1;\n const outputRef = shallowRef(toValue(source));\n\n watch(\n () => toValue(source),\n async (to) => {\n cancelAnimationFrame(raf);\n const easing = { ...defaultTransition, ...toValue(options) };\n await executeTransition(outputRef, outputRef.value, to, easing);\n }\n );\n\n function executeTransition(out: Ref<number>, from: number, to: number, options: InternalEasingOptions) {\n const startTime = performance.now();\n const ease = PREFERS_REDUCED_MOTION()\n ? easingPatterns.instant\n : (options.transition ?? easingPatterns.easeInOutCubic);\n\n return new Promise<void>((resolve) => {\n raf = requestAnimationFrame(function step(currentTime: number) {\n const timeElapsed = currentTime - startTime;\n const progress = timeElapsed / options.duration;\n out.value = from + (to - from) * ease(clamp(progress, 0, 1));\n\n if (progress < 1) {\n raf = requestAnimationFrame(step);\n } else {\n out.value = to;\n resolve();\n }\n });\n });\n }\n\n return computed(() => unref(outputRef));\n}\n"],"names":[],"mappings":";;;AAqBO,MAAM,iBAAiB;AACvB,MAAM,oBAAoB;AAC1B,MAAM,oBAAoB;AAI1B,MAAM,iBAAiB;AAAA,EAC5B,QAAQ,CAAC,MAAc;AAAA,EACvB,YAAY,CAAC,MAAc,KAAK;AAAA,EAChC,aAAa,CAAC,MAAc,KAAK,IAAI;AAAA,EACrC,eAAe,CAAC,MAAe,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,IAAI,KAAK;AAAA,EACzE,aAAa,CAAC,MAAc,KAAK;AAAA,EACjC,cAAc,CAAC,MAAe,EAAE,KAAM,IAAI;AAAA,EAC1C,gBAAgB,CAAC,MAAe,IAAI,MAAM,IAAI,KAAK,KAAK,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,IAAI,KAAK;AAAA,EAC7F,aAAa,CAAC,MAAc,KAAK;AAAA,EACjC,cAAc,CAAC,MAAc,IAAK,EAAE,KAAM;AAAA,EAC1C,gBAAgB,CAAC,MAAe,IAAI,MAAM,IAAI,KAAK,IAAI,IAAI,IAAK,EAAE,KAAM;AAAA,EACxE,aAAa,CAAC,MAAc,KAAK;AAAA,EACjC,cAAc,CAAC,MAAc,IAAK,EAAE,KAAM;AAAA,EAC1C,gBAAgB,CAAC,MAAe,IAAI,MAAM,KAAK,KAAK,IAAI,IAAI,KAAM,EAAE,KAAM;AAAA,EAC1E,SAAS,CAAC,OAAe;AAC3B;AAwBO,MAAM,wBAAwB;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA;AAAA,IAKE,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW,CAAC,QAAQ,QAAQ;AAAA,IAAA;AAAA,EAC9B;AAAA,EAEF;AACF;AAyBO,MAAM,kBAA6D,CAAC,OAAO,EAAE,YAAY;AAC9F,QAAM,EAAE,YAAY,UAAU,OAAO,GAAG,SAAS;AAEjD,QAAM,EAAE,YAAY,QAAQ,kBAAkB,YAAY,GAAG,YAAA,IAAgB,SAAS,UAAU,IAAI,aAAa,CAAA;AAEjH,MAAI;AACJ,MAAI,SAAS,UAAU,GAAG;AACxB,sBAAkB,WAAW,aAAa,iBAAiB,EAAE,UAAU,MAAA,CAAO,GAAG,IAAI;AAAA,EACvF,OAAO;AACL,sBAAkB,WAAW,EAAE,MAAM,YAAY,CAAC,aAAa,KAAK,WAAA,GAAc,IAAI;AAAA,EACxF;AAEA,SAAO,EAAE,WAAwB,iBAAiB,KAAK;AACzD;"}
|
|
@@ -12,35 +12,55 @@ import { w as warn } from "../../utils/dom/console.js";
|
|
|
12
12
|
import { shallowRef, computed, unref, ref, onBeforeMount, onBeforeUnmount, onMounted, watch, nextTick, useId } from "vue";
|
|
13
13
|
const defineValidationProps = propsFactory(
|
|
14
14
|
{
|
|
15
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Имя поля ввода
|
|
17
|
+
* @en Name of the input
|
|
18
|
+
*/
|
|
16
19
|
name: String,
|
|
17
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* Значение компонента в v-model. Если компонент поддерживает свойство multiple, по умолчанию используется пустой массив.
|
|
22
|
+
* @en Value of the component in v-model. If the component supports the multiple prop, an empty array is used by default.
|
|
23
|
+
*/
|
|
18
24
|
modelValue: null,
|
|
19
25
|
/**
|
|
20
26
|
* Принимает массив, состоящий из элементов различных типов: функций, логических значений и строк.
|
|
21
27
|
* Функции принимают входное значение в качестве аргумента и должны возвращать либо true / false, либо строку, содержащую сообщение об ошибке.
|
|
22
28
|
* Поле ввода перейдет в состояние ошибки, если функция возвращает значение false (или любое значение в массиве содержит false) либо является строкой.
|
|
29
|
+
* @en Accepts an array of items of different types: functions, booleans and strings. Functions take the input value as an argument and must return either true / false, or a string with an error message. The input goes into the error state if a function returns false (or any value in the array is false) or is a string.
|
|
23
30
|
*/
|
|
24
31
|
rules: {
|
|
25
32
|
type: Array,
|
|
26
33
|
default: () => []
|
|
27
34
|
},
|
|
28
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Изменяет тип события, при котором запускается валидация
|
|
37
|
+
* @en Changes the type of the event that triggers validation
|
|
38
|
+
*/
|
|
29
39
|
validateOn: String,
|
|
30
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Значение, используемое при применении правил валидации
|
|
42
|
+
* @en Value used when applying the validation rules
|
|
43
|
+
*/
|
|
31
44
|
validationValue: null,
|
|
32
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Отображает компонент в состояние ошибки
|
|
47
|
+
* @en Puts the component into the error state
|
|
48
|
+
*/
|
|
33
49
|
error: Boolean,
|
|
34
50
|
/**
|
|
35
51
|
* Отображает компонент в состояние ошибки и передает пользовательские сообщения об ошибках.
|
|
36
52
|
* Будет объединяться с любыми проверками, заданными в свойстве `rules`.
|
|
37
53
|
* Это поле не запускает валидацию.
|
|
54
|
+
* @en Puts the component into the error state and passes custom error messages. They are merged with any checks defined in the `rules` prop. This field does not trigger validation.
|
|
38
55
|
*/
|
|
39
56
|
errorMessages: {
|
|
40
57
|
type: [Array, String],
|
|
41
58
|
default: () => []
|
|
42
59
|
},
|
|
43
|
-
/**
|
|
60
|
+
/**
|
|
61
|
+
* Максимальное число отображаемых ошибок при валидации
|
|
62
|
+
* @en Maximum number of validation errors shown
|
|
63
|
+
*/
|
|
44
64
|
maxErrors: {
|
|
45
65
|
type: [Number, String],
|
|
46
66
|
default: 1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useValidation.js","sources":["../../../../../src/composables/useValidation/useValidation.ts"],"sourcesContent":["import { defineDisabledProps } from '@cds/composables/useDisabled';\nimport { defineFocusProps } from '@cds/composables/useFocus';\nimport { useForm } from '@cds/composables/useForm';\nimport { defineReadonlyProps } from '@cds/composables/useReadonly';\nimport { useRules } from '@cds/composables/useRules';\nimport { getCurrentInstance, getCurrentInstanceName, propsFactory, useProxyModel, useToggleScope } from '@cds/core';\nimport { type EventProp, warn, wrapInArray } from '@cds/utils';\nimport {\n computed,\n type ExtractPublicPropTypes,\n type MaybeRef,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n onMounted,\n type PropType,\n ref,\n shallowRef,\n unref,\n useId,\n watch\n} from 'vue';\n\nimport type { ValidateOn, ValidationRule } from './internal/useValidation.types';\n\nexport const defineValidationProps = propsFactory(\n {\n /** Имя поля ввода */\n name: String,\n /** Значение компонента в v-model. Если компонент поддерживает свойство multiple, по умолчанию используется пустой массив. */\n modelValue: null,\n /**\n * Принимает массив, состоящий из элементов различных типов: функций, логических значений и строк.\n * Функции принимают входное значение в качестве аргумента и должны возвращать либо true / false, либо строку, содержащую сообщение об ошибке.\n * Поле ввода перейдет в состояние ошибки, если функция возвращает значение false (или любое значение в массиве содержит false) либо является строкой.\n */\n rules: {\n type: Array as PropType<readonly ValidationRule[]>,\n default: () => []\n },\n /** Изменяет тип события, при котором запускается валидация */\n validateOn: String as PropType<ValidateOn>,\n /** Значение, используемое при применении правил валидации */\n validationValue: null,\n /** Отображает компонент в состояние ошибки */\n error: Boolean,\n /**\n * Отображает компонент в состояние ошибки и передает пользовательские сообщения об ошибках.\n * Будет объединяться с любыми проверками, заданными в свойстве `rules`.\n * Это поле не запускает валидацию.\n */\n errorMessages: {\n type: [Array, String] as PropType<string | readonly string[] | null>,\n default: () => []\n },\n /** Максимальное число отображаемых ошибок при валидации */\n maxErrors: {\n type: [Number, String],\n default: 1\n },\n\n ...defineFocusProps(),\n ...defineReadonlyProps(),\n ...defineDisabledProps()\n },\n 'validation'\n);\n\nexport interface ValidationProps extends ExtractPublicPropTypes<ReturnType<typeof defineValidationProps>> {\n 'onUpdate:modelValue'?: EventProp | undefined;\n}\n\nexport function useValidation(\n props: ValidationProps,\n name = getCurrentInstanceName(),\n id: MaybeRef<string | number> = useId()\n) {\n const model = useProxyModel(props, 'modelValue');\n const form = useForm(props);\n const rules = useRules(() => props.rules);\n\n const isValidating = shallowRef(false);\n const validationModel = computed(() => (props.validationValue === undefined ? model.value : props.validationValue));\n const isPure = shallowRef(true);\n const isDirty = computed(\n () =>\n !!(\n wrapInArray(unref(model) === '' ? null : unref(model)).length ||\n wrapInArray(unref(validationModel) === '' ? null : unref(validationModel)).length\n )\n );\n\n const validateOn = computed(() => {\n let value = (props.validateOn ?? unref(form.validateOn)) || 'input';\n if (value === 'lazy') value = 'input lazy';\n if (value === 'eager') value = 'input eager';\n const set = new Set(value?.split(' ') ?? []);\n\n return {\n input: set.has('input'),\n blur: set.has('blur') || set.has('input') || set.has('invalid-input'),\n invalidInput: set.has('invalid-input'),\n lazy: set.has('lazy'),\n eager: set.has('eager')\n };\n });\n\n const internalErrorMessages = ref<string[]>([]);\n const errorMessages = computed(() => {\n return props.errorMessages?.length\n ? wrapInArray(props.errorMessages as string | string[])\n .concat(unref(internalErrorMessages))\n .slice(0, Math.max(0, Number(props.maxErrors)))\n : unref(internalErrorMessages);\n });\n\n const isValid = computed(() => {\n if (props.error || props.errorMessages?.length) return false;\n if (!props.rules?.length) return true;\n if (unref(isPure)) {\n return unref(internalErrorMessages).length || unref(validateOn).lazy ? null : true;\n } else {\n return !unref(internalErrorMessages).length;\n }\n });\n\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: unref(isValid) === false,\n [`${name}--dirty`]: unref(isDirty),\n [`${name}--disabled`]: unref(form.isDisabled),\n [`${name}--readonly`]: unref(form.isReadonly)\n };\n });\n\n const vm = getCurrentInstance('validation');\n const uid = computed(() => props.name ?? unref(id));\n\n onBeforeMount(() => {\n form.register?.({\n id: unref(uid),\n vm,\n validate,\n reset,\n resetValidation\n });\n });\n\n onBeforeUnmount(() => {\n form.unregister?.(unref(uid));\n });\n\n onMounted(async () => {\n if (!unref(validateOn).lazy) {\n await validate(!unref(validateOn).eager);\n }\n form.update?.(unref(uid), unref(isValid), unref(errorMessages));\n });\n\n watch([isValid, errorMessages], () => {\n form.update?.(unref(uid), unref(isValid), unref(errorMessages));\n });\n\n useToggleScope(\n () => unref(validateOn).input || (unref(validateOn).invalidInput && unref(isValid) === false),\n () => {\n watch(validationModel, () => {\n if (unref(validationModel) != null) {\n validate();\n } else if (props.focused) {\n const unwatch = watch(\n () => props.focused,\n (val) => {\n if (!val) validate();\n\n unwatch();\n }\n );\n }\n });\n }\n );\n\n useToggleScope(\n () => unref(validateOn).blur,\n () => {\n watch(\n () => props.focused,\n (val) => {\n if (!val) validate();\n }\n );\n }\n );\n\n async function reset() {\n model.value = null;\n\n await nextTick();\n await resetValidation();\n }\n\n async function resetValidation() {\n isPure.value = true;\n\n if (!unref(validateOn).lazy) {\n await validate(!unref(validateOn).eager);\n } else {\n internalErrorMessages.value = [];\n }\n }\n\n async function validate(silent = false) {\n const results = [];\n\n isValidating.value = true;\n\n for (const rule of unref(rules)!) {\n if (results.length >= Number(props.maxErrors ?? 1)) {\n break;\n }\n\n const handler = typeof rule === 'function' ? rule : () => rule;\n const result = await handler(validationModel.value);\n\n if (result === true) continue;\n\n if (result !== false && typeof result !== 'string') {\n warn('useValidation', `${result} is not a valid value. Rule functions must return boolean true or a string.`);\n\n continue;\n }\n\n results.push(result || '');\n }\n\n internalErrorMessages.value = results;\n isValidating.value = false;\n isPure.value = silent;\n\n return internalErrorMessages.value;\n }\n\n return {\n errorMessages,\n isDirty,\n isDisabled: form.isDisabled,\n isReadonly: form.isReadonly,\n isPure,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses\n };\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAyBO,MAAM,wBAAwB;AAAA,EACnC;AAAA;AAAA,IAEE,MAAM;AAAA;AAAA,IAEN,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMZ,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS,MAAM,CAAA;AAAA,IAAC;AAAA;AAAA,IAGlB,YAAY;AAAA;AAAA,IAEZ,iBAAiB;AAAA;AAAA,IAEjB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMP,eAAe;AAAA,MACb,MAAM,CAAC,OAAO,MAAM;AAAA,MACpB,SAAS,MAAM,CAAA;AAAA,IAAC;AAAA;AAAA,IAGlB,WAAW;AAAA,MACT,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,IAAA;AAAA,IAGX,GAAG,iBAAA;AAAA,IACH,GAAG,oBAAA;AAAA,IACH,GAAG,oBAAA;AAAA,EAAoB;AAAA,EAEzB;AACF;AAMO,SAAS,cACd,OACA,OAAO,0BACP,KAAgC,SAChC;AACA,QAAM,QAAQ,cAAc,OAAO,YAAY;AAC/C,QAAM,OAAO,QAAQ,KAAK;AAC1B,QAAM,QAAQ,SAAS,MAAM,MAAM,KAAK;AAExC,QAAM,eAAe,WAAW,KAAK;AACrC,QAAM,kBAAkB,SAAS,MAAO,MAAM,oBAAoB,SAAY,MAAM,QAAQ,MAAM,eAAgB;AAClH,QAAM,SAAS,WAAW,IAAI;AAC9B,QAAM,UAAU;AAAA,IACd,MACE,CAAC,EACC,YAAY,MAAM,KAAK,MAAM,KAAK,OAAO,MAAM,KAAK,CAAC,EAAE,UACvD,YAAY,MAAM,eAAe,MAAM,KAAK,OAAO,MAAM,eAAe,CAAC,EAAE;AAAA,EAAA;AAIjF,QAAM,aAAa,SAAS,MAAM;AAChC,QAAI,SAAS,MAAM,cAAc,MAAM,KAAK,UAAU,MAAM;AAC5D,QAAI,UAAU,OAAQ,SAAQ;AAC9B,QAAI,UAAU,QAAS,SAAQ;AAC/B,UAAM,MAAM,IAAI,KAAI,+BAAO,MAAM,SAAQ,EAAE;AAE3C,WAAO;AAAA,MACL,OAAO,IAAI,IAAI,OAAO;AAAA,MACtB,MAAM,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,eAAe;AAAA,MACpE,cAAc,IAAI,IAAI,eAAe;AAAA,MACrC,MAAM,IAAI,IAAI,MAAM;AAAA,MACpB,OAAO,IAAI,IAAI,OAAO;AAAA,IAAA;AAAA,EAE1B,CAAC;AAED,QAAM,wBAAwB,IAAc,EAAE;AAC9C,QAAM,gBAAgB,SAAS,MAAM;;AACnC,aAAO,WAAM,kBAAN,mBAAqB,UACxB,YAAY,MAAM,aAAkC,EACjD,OAAO,MAAM,qBAAqB,CAAC,EACnC,MAAM,GAAG,KAAK,IAAI,GAAG,OAAO,MAAM,SAAS,CAAC,CAAC,IAChD,MAAM,qBAAqB;AAAA,EACjC,CAAC;AAED,QAAM,UAAU,SAAS,MAAM;;AAC7B,QAAI,MAAM,WAAS,WAAM,kBAAN,mBAAqB,QAAQ,QAAO;AACvD,QAAI,GAAC,WAAM,UAAN,mBAAa,QAAQ,QAAO;AACjC,QAAI,MAAM,MAAM,GAAG;AACjB,aAAO,MAAM,qBAAqB,EAAE,UAAU,MAAM,UAAU,EAAE,OAAO,OAAO;AAAA,IAChF,OAAO;AACL,aAAO,CAAC,MAAM,qBAAqB,EAAE;AAAA,IACvC;AAAA,EACF,CAAC;AAED,QAAM,oBAAoB,SAAS,MAAM;AACvC,WAAO;AAAA,MACL,CAAC,GAAG,IAAI,SAAS,GAAG,MAAM,OAAO,MAAM;AAAA,MACvC,CAAC,GAAG,IAAI,SAAS,GAAG,MAAM,OAAO;AAAA,MACjC,CAAC,GAAG,IAAI,YAAY,GAAG,MAAM,KAAK,UAAU;AAAA,MAC5C,CAAC,GAAG,IAAI,YAAY,GAAG,MAAM,KAAK,UAAU;AAAA,IAAA;AAAA,EAEhD,CAAC;AAED,QAAM,KAAK,mBAAmB,YAAY;AAC1C,QAAM,MAAM,SAAS,MAAM,MAAM,QAAQ,MAAM,EAAE,CAAC;AAElD,gBAAc,MAAM;;AAClB,eAAK,aAAL,8BAAgB;AAAA,MACd,IAAI,MAAM,GAAG;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ,CAAC;AAED,kBAAgB,MAAM;;AACpB,eAAK,eAAL,8BAAkB,MAAM,GAAG;AAAA,EAC7B,CAAC;AAED,YAAU,YAAY;;AACpB,QAAI,CAAC,MAAM,UAAU,EAAE,MAAM;AAC3B,YAAM,SAAS,CAAC,MAAM,UAAU,EAAE,KAAK;AAAA,IACzC;AACA,eAAK,WAAL,8BAAc,MAAM,GAAG,GAAG,MAAM,OAAO,GAAG,MAAM,aAAa;AAAA,EAC/D,CAAC;AAED,QAAM,CAAC,SAAS,aAAa,GAAG,MAAM;;AACpC,eAAK,WAAL,8BAAc,MAAM,GAAG,GAAG,MAAM,OAAO,GAAG,MAAM,aAAa;AAAA,EAC/D,CAAC;AAED;AAAA,IACE,MAAM,MAAM,UAAU,EAAE,SAAU,MAAM,UAAU,EAAE,gBAAgB,MAAM,OAAO,MAAM;AAAA,IACvF,MAAM;AACJ,YAAM,iBAAiB,MAAM;AAC3B,YAAI,MAAM,eAAe,KAAK,MAAM;AAClC,mBAAA;AAAA,QACF,WAAW,MAAM,SAAS;AACxB,gBAAM,UAAU;AAAA,YACd,MAAM,MAAM;AAAA,YACZ,CAAC,QAAQ;AACP,kBAAI,CAAC,IAAK,UAAA;AAEV,sBAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EAAA;AAGF;AAAA,IACE,MAAM,MAAM,UAAU,EAAE;AAAA,IACxB,MAAM;AACJ;AAAA,QACE,MAAM,MAAM;AAAA,QACZ,CAAC,QAAQ;AACP,cAAI,CAAC,IAAK,UAAA;AAAA,QACZ;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAGF,iBAAe,QAAQ;AACrB,UAAM,QAAQ;AAEd,UAAM,SAAA;AACN,UAAM,gBAAA;AAAA,EACR;AAEA,iBAAe,kBAAkB;AAC/B,WAAO,QAAQ;AAEf,QAAI,CAAC,MAAM,UAAU,EAAE,MAAM;AAC3B,YAAM,SAAS,CAAC,MAAM,UAAU,EAAE,KAAK;AAAA,IACzC,OAAO;AACL,4BAAsB,QAAQ,CAAA;AAAA,IAChC;AAAA,EACF;AAEA,iBAAe,SAAS,SAAS,OAAO;AACtC,UAAM,UAAU,CAAA;AAEhB,iBAAa,QAAQ;AAErB,eAAW,QAAQ,MAAM,KAAK,GAAI;AAChC,UAAI,QAAQ,UAAU,OAAO,MAAM,aAAa,CAAC,GAAG;AAClD;AAAA,MACF;AAEA,YAAM,UAAU,OAAO,SAAS,aAAa,OAAO,MAAM;AAC1D,YAAM,SAAS,MAAM,QAAQ,gBAAgB,KAAK;AAElD,UAAI,WAAW,KAAM;AAErB,UAAI,WAAW,SAAS,OAAO,WAAW,UAAU;AAClD,aAAK,iBAAiB,GAAG,MAAM,6EAA6E;AAE5G;AAAA,MACF;AAEA,cAAQ,KAAK,UAAU,EAAE;AAAA,IAC3B;AAEA,0BAAsB,QAAQ;AAC9B,iBAAa,QAAQ;AACrB,WAAO,QAAQ;AAEf,WAAO,sBAAsB;AAAA,EAC/B;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,YAAY,KAAK;AAAA,IACjB,YAAY,KAAK;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"useValidation.js","sources":["../../../../../src/composables/useValidation/useValidation.ts"],"sourcesContent":["import { defineDisabledProps } from '@cds/composables/useDisabled';\nimport { defineFocusProps } from '@cds/composables/useFocus';\nimport { useForm } from '@cds/composables/useForm';\nimport { defineReadonlyProps } from '@cds/composables/useReadonly';\nimport { useRules } from '@cds/composables/useRules';\nimport { getCurrentInstance, getCurrentInstanceName, propsFactory, useProxyModel, useToggleScope } from '@cds/core';\nimport { type EventProp, warn, wrapInArray } from '@cds/utils';\nimport {\n computed,\n type ExtractPublicPropTypes,\n type MaybeRef,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n onMounted,\n type PropType,\n ref,\n shallowRef,\n unref,\n useId,\n watch\n} from 'vue';\n\nimport type { ValidateOn, ValidationRule } from './internal/useValidation.types';\n\nexport const defineValidationProps = propsFactory(\n {\n /**\n * Имя поля ввода\n * @en Name of the input\n */\n name: String,\n /**\n * Значение компонента в v-model. Если компонент поддерживает свойство multiple, по умолчанию используется пустой массив.\n * @en Value of the component in v-model. If the component supports the multiple prop, an empty array is used by default.\n */\n modelValue: null,\n /**\n * Принимает массив, состоящий из элементов различных типов: функций, логических значений и строк.\n * Функции принимают входное значение в качестве аргумента и должны возвращать либо true / false, либо строку, содержащую сообщение об ошибке.\n * Поле ввода перейдет в состояние ошибки, если функция возвращает значение false (или любое значение в массиве содержит false) либо является строкой.\n * @en Accepts an array of items of different types: functions, booleans and strings. Functions take the input value as an argument and must return either true / false, or a string with an error message. The input goes into the error state if a function returns false (or any value in the array is false) or is a string.\n */\n rules: {\n type: Array as PropType<readonly ValidationRule[]>,\n default: () => []\n },\n /**\n * Изменяет тип события, при котором запускается валидация\n * @en Changes the type of the event that triggers validation\n */\n validateOn: String as PropType<ValidateOn>,\n /**\n * Значение, используемое при применении правил валидации\n * @en Value used when applying the validation rules\n */\n validationValue: null,\n /**\n * Отображает компонент в состояние ошибки\n * @en Puts the component into the error state\n */\n error: Boolean,\n /**\n * Отображает компонент в состояние ошибки и передает пользовательские сообщения об ошибках.\n * Будет объединяться с любыми проверками, заданными в свойстве `rules`.\n * Это поле не запускает валидацию.\n * @en Puts the component into the error state and passes custom error messages. They are merged with any checks defined in the `rules` prop. This field does not trigger validation.\n */\n errorMessages: {\n type: [Array, String] as PropType<string | readonly string[] | null>,\n default: () => []\n },\n /**\n * Максимальное число отображаемых ошибок при валидации\n * @en Maximum number of validation errors shown\n */\n maxErrors: {\n type: [Number, String],\n default: 1\n },\n\n ...defineFocusProps(),\n ...defineReadonlyProps(),\n ...defineDisabledProps()\n },\n 'validation'\n);\n\nexport interface ValidationProps extends ExtractPublicPropTypes<ReturnType<typeof defineValidationProps>> {\n 'onUpdate:modelValue'?: EventProp | undefined;\n}\n\nexport function useValidation(\n props: ValidationProps,\n name = getCurrentInstanceName(),\n id: MaybeRef<string | number> = useId()\n) {\n const model = useProxyModel(props, 'modelValue');\n const form = useForm(props);\n const rules = useRules(() => props.rules);\n\n const isValidating = shallowRef(false);\n const validationModel = computed(() => (props.validationValue === undefined ? model.value : props.validationValue));\n const isPure = shallowRef(true);\n const isDirty = computed(\n () =>\n !!(\n wrapInArray(unref(model) === '' ? null : unref(model)).length ||\n wrapInArray(unref(validationModel) === '' ? null : unref(validationModel)).length\n )\n );\n\n const validateOn = computed(() => {\n let value = (props.validateOn ?? unref(form.validateOn)) || 'input';\n if (value === 'lazy') value = 'input lazy';\n if (value === 'eager') value = 'input eager';\n const set = new Set(value?.split(' ') ?? []);\n\n return {\n input: set.has('input'),\n blur: set.has('blur') || set.has('input') || set.has('invalid-input'),\n invalidInput: set.has('invalid-input'),\n lazy: set.has('lazy'),\n eager: set.has('eager')\n };\n });\n\n const internalErrorMessages = ref<string[]>([]);\n const errorMessages = computed(() => {\n return props.errorMessages?.length\n ? wrapInArray(props.errorMessages as string | string[])\n .concat(unref(internalErrorMessages))\n .slice(0, Math.max(0, Number(props.maxErrors)))\n : unref(internalErrorMessages);\n });\n\n const isValid = computed(() => {\n if (props.error || props.errorMessages?.length) return false;\n if (!props.rules?.length) return true;\n if (unref(isPure)) {\n return unref(internalErrorMessages).length || unref(validateOn).lazy ? null : true;\n } else {\n return !unref(internalErrorMessages).length;\n }\n });\n\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: unref(isValid) === false,\n [`${name}--dirty`]: unref(isDirty),\n [`${name}--disabled`]: unref(form.isDisabled),\n [`${name}--readonly`]: unref(form.isReadonly)\n };\n });\n\n const vm = getCurrentInstance('validation');\n const uid = computed(() => props.name ?? unref(id));\n\n onBeforeMount(() => {\n form.register?.({\n id: unref(uid),\n vm,\n validate,\n reset,\n resetValidation\n });\n });\n\n onBeforeUnmount(() => {\n form.unregister?.(unref(uid));\n });\n\n onMounted(async () => {\n if (!unref(validateOn).lazy) {\n await validate(!unref(validateOn).eager);\n }\n form.update?.(unref(uid), unref(isValid), unref(errorMessages));\n });\n\n watch([isValid, errorMessages], () => {\n form.update?.(unref(uid), unref(isValid), unref(errorMessages));\n });\n\n useToggleScope(\n () => unref(validateOn).input || (unref(validateOn).invalidInput && unref(isValid) === false),\n () => {\n watch(validationModel, () => {\n if (unref(validationModel) != null) {\n validate();\n } else if (props.focused) {\n const unwatch = watch(\n () => props.focused,\n (val) => {\n if (!val) validate();\n\n unwatch();\n }\n );\n }\n });\n }\n );\n\n useToggleScope(\n () => unref(validateOn).blur,\n () => {\n watch(\n () => props.focused,\n (val) => {\n if (!val) validate();\n }\n );\n }\n );\n\n async function reset() {\n model.value = null;\n\n await nextTick();\n await resetValidation();\n }\n\n async function resetValidation() {\n isPure.value = true;\n\n if (!unref(validateOn).lazy) {\n await validate(!unref(validateOn).eager);\n } else {\n internalErrorMessages.value = [];\n }\n }\n\n async function validate(silent = false) {\n const results = [];\n\n isValidating.value = true;\n\n for (const rule of unref(rules)!) {\n if (results.length >= Number(props.maxErrors ?? 1)) {\n break;\n }\n\n const handler = typeof rule === 'function' ? rule : () => rule;\n const result = await handler(validationModel.value);\n\n if (result === true) continue;\n\n if (result !== false && typeof result !== 'string') {\n warn('useValidation', `${result} is not a valid value. Rule functions must return boolean true or a string.`);\n\n continue;\n }\n\n results.push(result || '');\n }\n\n internalErrorMessages.value = results;\n isValidating.value = false;\n isPure.value = silent;\n\n return internalErrorMessages.value;\n }\n\n return {\n errorMessages,\n isDirty,\n isDisabled: form.isDisabled,\n isReadonly: form.isReadonly,\n isPure,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,31 @@
|
|
|
1
|
-
import { u as useDisplay } from "../useDisplay/useDisplay.js";
|
|
2
1
|
import { u as useResizeObserver } from "../useResizeObserver/useResizeObserver.js";
|
|
3
2
|
import { p as propsFactory } from "../../core/propsFactory.js";
|
|
4
3
|
import { w as debounce, c as clamp, M as getPropertyFromItem } from "../../utils/helpers.js";
|
|
5
4
|
import { a as IN_BROWSER } from "../../utils/dom/globals.js";
|
|
6
5
|
import { shallowRef, watchEffect, ref, unref, computed, watch, onScopeDispose, nextTick } from "vue";
|
|
6
|
+
import { u as useDisplay } from "../useDisplay/useDisplay.js";
|
|
7
7
|
const defineVirtualProps = propsFactory(
|
|
8
8
|
{
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Высота одного элемента в пикселях. Если не задана — высота измеряется автоматически.
|
|
11
|
+
* @en Height of a single item in pixels. When omitted, the height is measured automatically.
|
|
12
|
+
*/
|
|
10
13
|
itemHeight: {
|
|
11
14
|
type: [Number, String],
|
|
12
15
|
default: null
|
|
13
16
|
},
|
|
14
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Ключ элемента для идентификации (имя поля, путь или функция). По умолчанию используется индекс.
|
|
19
|
+
* @en Key that identifies an item (a field name, a path or a function). The index is used by default.
|
|
20
|
+
*/
|
|
15
21
|
itemKey: {
|
|
16
22
|
type: [String, Array, Function],
|
|
17
23
|
default: null
|
|
18
24
|
},
|
|
19
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Высота области просмотра виртуального списка.
|
|
27
|
+
* @en Height of the viewport of the virtual list.
|
|
28
|
+
*/
|
|
20
29
|
height: [Number, String]
|
|
21
30
|
},
|
|
22
31
|
"virtual"
|