@central-design-system/components 4.0.0-alpha.4 → 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 +5 -0
- package/MIGRATION.md +14 -42
- package/dist/browser/entry.js +4917 -2238
- package/dist/browser/iconsets/cdsLegacy.js +1 -1
- package/dist/cds.d.ts +119065 -0
- package/dist/cjs/entry.js +9 -9
- package/dist/es/entry.css +0 -18
- package/dist/es/entry.js +3 -2
- package/dist/es/entry.js.map +1 -1
- package/dist/es/src/cds.js +1 -1
- package/dist/es/src/components/CdsApp/CdsApp.css +0 -18
- package/dist/es/src/components/CdsApp/api/CdsApp.props.js +1 -0
- 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/api/CdsAvatar.props.js +20 -5
- 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/api/CdsBadge.props.js +37 -9
- 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 +4 -1
- 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 +28 -7
- 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/api/CdsButtonGroup.props.js +4 -1
- 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/CdsCardGroup.vue_vue_type_script_setup_true_lang.js +20 -5
- 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 +84 -20
- 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 +20 -0
- 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 +64 -15
- 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.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 +4 -0
- 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 +32 -8
- 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/api/CdsEmptyState.props.js +33 -8
- 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 +8 -2
- 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 +38 -9
- 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 +13 -3
- 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 +56 -14
- 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/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 +4 -1
- package/dist/es/src/components/CdsFunctionalButton/api/CdsFunctionalButton.props.js.map +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/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/api/CdsIcon.props.js +17 -4
- 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 +20 -0
- 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 +64 -16
- 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 +44 -11
- 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 +48 -12
- 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/api/CdsLayout.props.js +5 -1
- 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/api/CdsLink.props.js +4 -1
- 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 +5 -2
- 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 +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.constants.js +4 -4
- package/dist/es/src/components/CdsList/api/CdsList.props.js +147 -39
- 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/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/api/CdsNotification.props.js +28 -7
- 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 +20 -5
- 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 +52 -13
- 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 +44 -11
- 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 +36 -8
- 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/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 +16 -0
- 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 +84 -21
- 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/api/CdsProgressBar.props.js +64 -16
- 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/api/CdsProgressCircle.props.js +28 -7
- 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/api/CdsSkeletonLoader.props.js +16 -4
- 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 +24 -6
- 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 +25 -6
- 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 +44 -0
- 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 +8 -0
- 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 +8 -2
- 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/api/CdsStatus.props.js +4 -1
- 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 +44 -11
- 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/api/CdsSurface.props.js +4 -1
- 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/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/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 +20 -5
- 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 +11 -3
- 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 +24 -0
- 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 +32 -8
- 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/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/api/CdsToolbar.props.js +20 -5
- 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 +16 -0
- package/dist/es/src/components/CdsTree/CdsTree.vue_vue_type_script_setup_true_lang.js.map +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 +8 -0
- 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/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/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 +24 -6
- 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/useLoader.js +4 -1
- package/dist/es/src/composables/useLoader/useLoader.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/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/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 +12 -3
- 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/themes/lumaDark.js +8 -4
- package/dist/es/src/themes/lumaDark.js.map +1 -1
- 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 +3 -2
- package/dist/esm-node/src/cds.mjs +1 -1
- package/dist/esm-node/src/components/CdsApp/CdsApp.css +0 -18
- package/dist/esm-node/src/components/CdsApp/api/CdsApp.props.mjs +1 -0
- 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 +20 -5
- package/dist/esm-node/src/components/CdsAutocomplete/api/CdsAutocomplete.props.mjs +9 -2
- package/dist/esm-node/src/components/CdsAvatar/CdsAvatar.css +0 -18
- package/dist/esm-node/src/components/CdsAvatar/api/CdsAvatar.props.mjs +20 -5
- package/dist/esm-node/src/components/CdsBadge/CdsBadge.css +0 -18
- package/dist/esm-node/src/components/CdsBadge/api/CdsBadge.props.mjs +37 -9
- package/dist/esm-node/src/components/CdsBreadcrumbs/CdsBreadcrumbs.css +0 -18
- package/dist/esm-node/src/components/CdsBreadcrumbs/api/CdsBreadcrumbs.props.mjs +32 -8
- 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 +4 -1
- package/dist/esm-node/src/components/CdsButton/api/CdsButton.props.mjs +28 -7
- package/dist/esm-node/src/components/CdsButtonGroup/CdsButtonGroup.css +0 -18
- package/dist/esm-node/src/components/CdsButtonGroup/api/CdsButtonGroup.props.mjs +4 -1
- 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 +20 -5
- 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 +1 -1
- 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 +21 -6
- 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.constants.mjs +9 -9
- package/dist/esm-node/src/components/CdsCard/api/CdsCard.props.mjs +85 -21
- package/dist/esm-node/src/components/CdsCard/index.mjs +1 -1
- package/dist/esm-node/src/components/CdsCarousel/CdsCarousel.css +0 -18
- 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/CdsCheckboxButton/CdsCheckboxButton.css +0 -18
- 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 +24 -6
- package/dist/esm-node/src/components/CdsCombobox/api/CdsCombobox.props.mjs +13 -3
- package/dist/esm-node/src/components/CdsCounter/CdsCounter.css +0 -18
- 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 +8 -0
- package/dist/esm-node/src/components/CdsDateInput/api/CdsDateInput.props.mjs +31 -7
- 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 +20 -0
- package/dist/esm-node/src/components/CdsDatePicker/api/CdsDatePicker.props.mjs +64 -15
- 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/CdsDivider/CdsDivider.css +0 -18
- 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 +4 -0
- package/dist/esm-node/src/components/CdsDrawer/api/CdsDrawer.props.mjs +32 -8
- package/dist/esm-node/src/components/CdsEmptyState/CdsEmptyState.css +0 -18
- package/dist/esm-node/src/components/CdsEmptyState/api/CdsEmptyState.props.mjs +33 -8
- package/dist/esm-node/src/components/CdsExpandablePanel/CdsExpandablePanel.vue_vue_type_script_setup_true_lang.mjs +16 -4
- package/dist/esm-node/src/components/CdsExpandablePanel/CdsExpandablePanelTitle.vue_vue_type_script_setup_true_lang.mjs +8 -2
- 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 +8 -2
- package/dist/esm-node/src/components/CdsExpandablePanel/api/CdsExpandablePanel.props.mjs +38 -9
- 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 +13 -3
- package/dist/esm-node/src/components/CdsField/api/CdsField.props.mjs +56 -14
- 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/api/CdsFileInput.props.mjs +40 -10
- 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 +4 -0
- package/dist/esm-node/src/components/CdsFileUpload/api/CdsFileUpload.props.mjs +85 -21
- package/dist/esm-node/src/components/CdsFooter/CdsFooter.css +0 -18
- package/dist/esm-node/src/components/CdsForm/CdsForm.css +0 -18
- 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 +4 -1
- package/dist/esm-node/src/components/CdsGrid/api/CdsGrid.props.mjs +40 -10
- package/dist/esm-node/src/components/CdsGrid/components/CSSGrid.css +0 -18
- package/dist/esm-node/src/components/CdsGrid/components/FlexGrid.css +0 -18
- package/dist/esm-node/src/components/CdsHeader/CdsHeader.css +0 -18
- package/dist/esm-node/src/components/CdsHighlight/CdsHighlight.css +0 -18
- package/dist/esm-node/src/components/CdsHighlight/api/CdsHighlight.props.mjs +32 -8
- package/dist/esm-node/src/components/CdsIcon/CdsIcon.css +0 -18
- package/dist/esm-node/src/components/CdsIcon/api/CdsIcon.props.mjs +17 -4
- 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 +20 -0
- package/dist/esm-node/src/components/CdsImage/api/CdsImage.props.mjs +64 -16
- 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 +44 -11
- package/dist/esm-node/src/components/CdsInput/api/CdsInput.props.mjs +48 -12
- package/dist/esm-node/src/components/CdsLabel/CdsLabel.css +0 -18
- package/dist/esm-node/src/components/CdsLabel/api/CdsLabel.props.mjs +4 -0
- package/dist/esm-node/src/components/CdsLayout/CdsLayout.css +0 -18
- package/dist/esm-node/src/components/CdsLayout/api/CdsLayout.props.mjs +5 -1
- package/dist/esm-node/src/components/CdsLink/CdsLink.css +0 -18
- package/dist/esm-node/src/components/CdsLink/api/CdsLink.props.mjs +4 -1
- 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 +24 -6
- package/dist/esm-node/src/components/CdsList/CdsListGroup.vue_vue_type_script_setup_true_lang.mjs +4 -1
- 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 +28 -7
- package/dist/esm-node/src/components/CdsList/CdsListItemAction.vue_vue_type_script_setup_true_lang.mjs +8 -2
- package/dist/esm-node/src/components/CdsList/CdsListItemMedia.vue_vue_type_script_setup_true_lang.mjs +8 -2
- package/dist/esm-node/src/components/CdsList/api/CdsList.props.mjs +144 -36
- 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/index.mjs +5 -2
- package/dist/esm-node/src/components/CdsLoader/CdsLoader.css +0 -18
- 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/CdsMenu/CdsMenu.css +0 -18
- package/dist/esm-node/src/components/CdsMenu/api/CdsMenu.props.mjs +8 -2
- package/dist/esm-node/src/components/CdsMessages/CdsMessages.css +0 -18
- 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/api/CdsModal.props.mjs +8 -2
- package/dist/esm-node/src/components/CdsNotification/CdsNotification.css +0 -18
- package/dist/esm-node/src/components/CdsNotification/api/CdsNotification.props.mjs +28 -7
- package/dist/esm-node/src/components/CdsNotificationAlert/CdsNotificationAlert.css +0 -18
- package/dist/esm-node/src/components/CdsNotificationAlert/api/CdsNotificationAlert.props.mjs +28 -7
- 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 +20 -5
- package/dist/esm-node/src/components/CdsOtpInput/api/CdsOtpInput.props.mjs +52 -13
- 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 +44 -11
- package/dist/esm-node/src/components/CdsOverlay/api/CdsOverlay.props.mjs +36 -8
- package/dist/esm-node/src/components/CdsOverlay/composables/useActivator.mjs +25 -6
- package/dist/esm-node/src/components/CdsOverlay/composables/useLocationStrategies.mjs +18 -4
- package/dist/esm-node/src/components/CdsOverlay/composables/useScrollStrategies.mjs +4 -1
- package/dist/esm-node/src/components/CdsPage/CdsPage.css +0 -18
- 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 +16 -0
- package/dist/esm-node/src/components/CdsPagination/api/CdsPagination.props.mjs +84 -21
- package/dist/esm-node/src/components/CdsProgressBar/CdsProgressBar.css +0 -18
- package/dist/esm-node/src/components/CdsProgressBar/api/CdsProgressBar.props.mjs +64 -16
- package/dist/esm-node/src/components/CdsProgressBar/composables/useChunk.mjs +4 -0
- package/dist/esm-node/src/components/CdsProgressCircle/CdsProgressCircle.css +0 -18
- package/dist/esm-node/src/components/CdsProgressCircle/api/CdsProgressCircle.props.mjs +28 -7
- package/dist/esm-node/src/components/CdsRadio/CdsRadio.css +0 -18
- package/dist/esm-node/src/components/CdsRadioGroup/CdsRadioGroup.css +0 -18
- package/dist/esm-node/src/components/CdsRadioGroup/api/CdsRadioGroup.props.mjs +16 -4
- package/dist/esm-node/src/components/CdsResponsive/CdsResponsive.css +0 -18
- package/dist/esm-node/src/components/CdsResponsive/api/CdsResponsive.props.mjs +12 -3
- 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 +16 -4
- package/dist/esm-node/src/components/CdsSelect/api/CdsSelect.props.mjs +4 -1
- 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 +8 -0
- package/dist/esm-node/src/components/CdsSelectionControl/api/CdsSelectionControl.props.mjs +12 -3
- package/dist/esm-node/src/components/CdsSelectionControlGroup/CdsSelectionControlGroup.css +0 -18
- package/dist/esm-node/src/components/CdsSelectionControlGroup/api/CdsSelectionControlGroup.props.mjs +44 -11
- package/dist/esm-node/src/components/CdsSkeletonLoader/CdsSkeletonLoader.css +0 -18
- package/dist/esm-node/src/components/CdsSkeletonLoader/api/CdsSkeletonLoader.props.mjs +16 -4
- 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 +24 -6
- package/dist/esm-node/src/components/CdsSlideGroup/api/CdsSlideGroup.props.mjs +25 -6
- 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 +4 -0
- package/dist/esm-node/src/components/CdsSlideView/CdsSlideViewItem.vue_vue_type_script_setup_true_lang.mjs +5 -1
- package/dist/esm-node/src/components/CdsSlideView/api/CdsSlideView.props.mjs +44 -0
- 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 +8 -0
- package/dist/esm-node/src/components/CdsStages/api/CdsStages.props.mjs +8 -2
- package/dist/esm-node/src/components/CdsStatus/CdsStatus.css +0 -18
- package/dist/esm-node/src/components/CdsStatus/api/CdsStatus.props.mjs +4 -1
- 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 +8 -0
- package/dist/esm-node/src/components/CdsSteps/api/CdsSteps.props.mjs +44 -11
- package/dist/esm-node/src/components/CdsSurface/CdsSurface.css +0 -18
- package/dist/esm-node/src/components/CdsSurface/api/CdsSurface.props.mjs +4 -1
- 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/composable/table.mjs +47 -0
- package/dist/esm-node/src/components/CdsTabs/CdsTabs.css +0 -18
- package/dist/esm-node/src/components/CdsTabs/api/CdsTabs.props.mjs +56 -0
- package/dist/esm-node/src/components/CdsTag/CdsTag.css +0 -18
- package/dist/esm-node/src/components/CdsTag/api/CdsTag.props.mjs +72 -18
- 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 +20 -5
- package/dist/esm-node/src/components/CdsTagGroup/api/CdsTagGroup.props.mjs +11 -3
- package/dist/esm-node/src/components/CdsTextArea/CdsTextArea.css +0 -18
- package/dist/esm-node/src/components/CdsTextArea/api/CdsTextArea.props.mjs +52 -13
- package/dist/esm-node/src/components/CdsTextInput/CdsTextInput.css +0 -18
- package/dist/esm-node/src/components/CdsTextInput/api/CdsTextInput.props.mjs +40 -10
- 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 +24 -0
- package/dist/esm-node/src/components/CdsTimePicker/api/CdsTimePicker.props.mjs +32 -8
- package/dist/esm-node/src/components/CdsToast/CdsToast.css +0 -18
- package/dist/esm-node/src/components/CdsToast/api/CdsToast.props.mjs +48 -12
- package/dist/esm-node/src/components/CdsToastQueue/CdsToastQueue.vue_vue_type_script_setup_true_lang.mjs +4 -1
- package/dist/esm-node/src/components/CdsToastQueue/api/CdsToastQueue.props.mjs +28 -7
- package/dist/esm-node/src/components/CdsToggle/CdsToggle.css +0 -18
- package/dist/esm-node/src/components/CdsToggle/api/CdsToggle.props.mjs +12 -3
- package/dist/esm-node/src/components/CdsToolbar/CdsToolbar.css +0 -18
- package/dist/esm-node/src/components/CdsToolbar/api/CdsToolbar.props.mjs +20 -5
- package/dist/esm-node/src/components/CdsTooltip/CdsTooltip.css +0 -18
- package/dist/esm-node/src/components/CdsTooltip/api/CdsTooltip.props.mjs +20 -5
- 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 +16 -0
- 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/CdsUploader/CdsUploader.css +0 -18
- package/dist/esm-node/src/components/CdsUploader/CdsUploader.vue_vue_type_script_setup_true_lang.mjs +8 -0
- 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 +8 -0
- 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 +20 -5
- package/dist/esm-node/src/composables/useDatetime/useDatetime.mjs +3 -0
- package/dist/esm-node/src/composables/useDelay/useDelay.mjs +8 -2
- package/dist/esm-node/src/composables/useDimensions/useDimensions.mjs +24 -6
- package/dist/esm-node/src/composables/useDirection/useDirection.mjs +4 -1
- package/dist/esm-node/src/composables/useDisabled/index.mjs +1 -1
- package/dist/esm-node/src/composables/useDisabled/useDisabled.mjs +4 -1
- package/dist/esm-node/src/composables/useDisplay/useDisplay.mjs +2 -0
- package/dist/esm-node/src/composables/useFilter/useFilter.mjs +20 -0
- package/dist/esm-node/src/composables/useFocus/useFocus.mjs +12 -3
- package/dist/esm-node/src/composables/useFocus/useFocusTrap.mjs +8 -2
- package/dist/esm-node/src/composables/useForm/useForm.mjs +45 -0
- package/dist/esm-node/src/composables/useGroup/useGroup.mjs +24 -6
- package/dist/esm-node/src/composables/useGroup/useGroupItem.mjs +8 -2
- package/dist/esm-node/src/composables/useItems/useItems.mjs +32 -8
- package/dist/esm-node/src/composables/useLayout/useLayout.mjs +24 -6
- package/dist/esm-node/src/composables/useLazy/useLazy.mjs +1 -0
- package/dist/esm-node/src/composables/useLoader/index.mjs +1 -1
- package/dist/esm-node/src/composables/useLoader/useLoader.mjs +4 -1
- package/dist/esm-node/src/composables/useLocation/index.mjs +1 -1
- package/dist/esm-node/src/composables/useLocation/useLocation.mjs +4 -1
- package/dist/esm-node/src/composables/useNested/useNested.mjs +44 -11
- 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/useReveal/useReveal.mjs +4 -1
- package/dist/esm-node/src/composables/useRouter/index.mjs +1 -1
- package/dist/esm-node/src/composables/useRouter/useRouter.mjs +16 -4
- package/dist/esm-node/src/composables/useSize/useSize.mjs +4 -1
- package/dist/esm-node/src/composables/useStatus/useStatus.mjs +4 -1
- package/dist/esm-node/src/composables/useText/useText.mjs +8 -2
- package/dist/esm-node/src/composables/useTheme/useTheme.mjs +4 -1
- package/dist/esm-node/src/composables/useTransition/useTransition.mjs +4 -1
- package/dist/esm-node/src/composables/useValidation/useValidation.mjs +26 -6
- package/dist/esm-node/src/composables/useVirtual/useVirtual.mjs +12 -3
- package/dist/esm-node/src/core/defineComponent.mjs +4 -1
- package/dist/esm-node/src/themes/lumaDark.mjs +8 -4
- package/dist/esm-node/src/utils/date/date.mjs +4 -4
- package/dist/iife/entry.js +9 -9
- 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/entry.d.ts +1 -0
- package/dist/types/themes/lumaDark.d.ts +4 -4
- package/dist/types/utils/date/date.d.ts +1 -1
- package/llms/llms-components.txt +8861 -10675
- package/llms/llms-full.txt +10309 -11489
- package/llms/llms-guides.txt +1400 -738
- package/llms/llms-migration.txt +18 -46
- package/llms/llms-tokens.txt +55 -55
- package/llms/llms.txt +110 -109
- package/package.json +24 -11
- 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/lumaDark.ts +8 -4
- package/dist/styles/breakpoints.css +0 -1
- package/dist/styles/index.css +0 -1
|
@@ -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":"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"}
|
|
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":";;;;;;;;;;;;AAyBO,MAAM,wBAAwB;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA;AAAA,IAKE,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,IAKN,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOZ,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS,MAAM,CAAA;AAAA,IAAC;AAAA;AAAA;AAAA;AAAA;AAAA,IAMlB,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,IAKZ,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,IAKjB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOP,eAAe;AAAA,MACb,MAAM,CAAC,OAAO,MAAM;AAAA,MACpB,SAAS,MAAM,CAAA;AAAA,IAAC;AAAA;AAAA;AAAA;AAAA;AAAA,IAMlB,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;"}
|
|
@@ -6,17 +6,26 @@ import { shallowRef, watchEffect, ref, unref, computed, watch, onScopeDispose, n
|
|
|
6
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"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVirtual.js","sources":["../../../../../src/composables/useVirtual/useVirtual.ts"],"sourcesContent":["import { useDisplay } from '@cds/composables/useDisplay';\nimport { useResizeObserver } from '@cds/composables/useResizeObserver';\nimport { propsFactory } from '@cds/core';\nimport { clamp, debounce, getPropertyFromItem, IN_BROWSER, type SelectItemKey } from '@cds/utils';\nimport {\n computed,\n type ExtractPublicPropTypes,\n nextTick,\n onScopeDispose,\n type PropType,\n type Ref,\n ref,\n shallowRef,\n unref,\n watch,\n watchEffect\n} from 'vue';\n\nexport const defineVirtualProps = propsFactory(\n {\n /** Высота одного элемента в пикселях. Если не задана — высота измеряется автоматически. */\n itemHeight: {\n type: [Number, String],\n default: null\n },\n /** Ключ элемента для идентификации (имя поля, путь или функция). По умолчанию используется индекс. */\n itemKey: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: null\n },\n /** Высота области просмотра виртуального списка. */\n height: [Number, String]\n },\n 'virtual'\n);\n\nexport interface VirtualProps extends ExtractPublicPropTypes<ReturnType<typeof defineVirtualProps>> {}\n\nconst UP = -1;\nconst DOWN = 1;\nconst BUFFER_PX = 100;\n\nexport function useVirtual<T>(props: VirtualProps, items: Ref<readonly T[]>) {\n const display = useDisplay();\n\n const itemHeight = shallowRef(0);\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0);\n });\n\n const paddingTop = shallowRef(0);\n const paddingBottom = shallowRef(0);\n const first = shallowRef(0);\n const last = shallowRef(Math.ceil((parseInt(props.height!) || display.height.value) / (itemHeight.value || 16)) || 1);\n\n const containerRef = ref<HTMLElement>();\n const markerRef = ref<HTMLElement>();\n let markerOffset = 0;\n\n const { resizeRef, contentRect } = useResizeObserver();\n\n watchEffect(() => {\n resizeRef.value = unref(containerRef);\n });\n\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement\n ? display.height.value\n : contentRect.value?.height || parseInt(props.height!) || 0;\n });\n\n const hasInitialRender = computed(() => {\n return !!(unref(containerRef) && unref(markerRef) && unref(viewportHeight) && unref(itemHeight));\n });\n\n let sizes = Array.from<number | null>({ length: items.value.length });\n let offsets = Array.from<number>({ length: items.value.length });\n let targetScrollIndex = -1;\n\n const updateTime = shallowRef(0);\n\n const updateOffsets = debounce(() => {\n const start = performance.now();\n offsets[0] = 0;\n const length = items.value.length;\n for (let i = 1; i <= length; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1);\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start);\n }, updateTime);\n\n const unwatch = watch(hasInitialRender, (v) => {\n if (!v) return;\n\n unwatch();\n\n markerOffset = markerRef.value!.offsetTop;\n updateOffsets.immediate();\n calculateVisibleItems();\n\n if (!~targetScrollIndex) return;\n\n nextTick(() => {\n IN_BROWSER &&\n window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex);\n targetScrollIndex = -1;\n });\n });\n });\n\n onScopeDispose(() => {\n updateOffsets.clear();\n });\n\n function getSize(index: number) {\n return sizes[index] || itemHeight.value;\n }\n\n function handleItemResize(index: number, height: number) {\n const prevHeight = sizes[index];\n const prevMinHeight = itemHeight.value;\n\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height;\n\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height;\n updateOffsets();\n }\n }\n\n function calculateOffset(index: number) {\n index = clamp(index, 0, items.value.length);\n const whole = Math.floor(index);\n const fraction = index % 1;\n const next = whole + 1;\n const wholeOffset = offsets[whole] || 0;\n const nextOffset = offsets[next] || wholeOffset;\n return wholeOffset + (nextOffset - wholeOffset) * fraction;\n }\n\n function calculateIndex(scrollTop: number) {\n return binaryClosest(offsets, scrollTop);\n }\n\n let lastScrollTop = 0;\n let scrollVelocity = 0;\n let lastScrollTime = 0;\n\n watch(viewportHeight, (val, oldVal) => {\n calculateVisibleItems();\n if (val < oldVal) {\n requestAnimationFrame(() => {\n scrollVelocity = 0;\n calculateVisibleItems();\n });\n }\n });\n\n let scrollTimeout = -1;\n function handleScroll() {\n if (!containerRef.value || !markerRef.value) return;\n\n const scrollTop = containerRef.value.scrollTop;\n const scrollTime = performance.now();\n const scrollDeltaT = scrollTime - lastScrollTime;\n\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop);\n markerOffset = markerRef.value.offsetTop;\n } else {\n scrollVelocity = scrollTop - lastScrollTop;\n }\n\n lastScrollTop = scrollTop;\n lastScrollTime = scrollTime;\n\n window.clearTimeout(scrollTimeout);\n scrollTimeout = window.setTimeout(handleScrollend, 500);\n\n calculateVisibleItems();\n }\n\n function handleScrollend() {\n if (!containerRef.value || !markerRef.value) return;\n\n scrollVelocity = 0;\n lastScrollTime = 0;\n\n window.clearTimeout(scrollTimeout);\n calculateVisibleItems();\n }\n\n let raf = -1;\n function calculateVisibleItems() {\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(_calculateVisibleItems);\n }\n\n function _calculateVisibleItems() {\n if (!containerRef.value || !viewportHeight.value || !itemHeight.value) return;\n const scrollTop = lastScrollTop - markerOffset;\n const direction = Math.sign(scrollVelocity);\n\n const startPx = Math.max(0, scrollTop - BUFFER_PX);\n const start = clamp(calculateIndex(startPx), 0, items.value.length);\n\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX;\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length);\n\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) &&\n (direction !== DOWN || end > last.value)\n ) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start);\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value);\n const bufferOverflow = Math.max(topOverflow, bottomOverflow);\n\n if (bufferOverflow > BUFFER_PX) {\n first.value = start;\n last.value = end;\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start;\n if (end >= items.value.length) last.value = end;\n }\n }\n\n paddingTop.value = calculateOffset(first.value);\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value);\n }\n\n function scrollToIndex(index: number) {\n const offset = calculateOffset(index);\n if (!containerRef.value || (index && !offset)) {\n targetScrollIndex = index;\n } else {\n containerRef.value.scrollTop = offset;\n }\n }\n\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => {\n const _index = index + first.value;\n return {\n raw: item,\n index: _index,\n key: getPropertyFromItem(item, props.itemKey, _index)\n };\n });\n });\n\n watch(\n items,\n () => {\n sizes = Array.from({ length: items.value.length });\n offsets = Array.from({ length: items.value.length });\n updateOffsets.immediate();\n calculateVisibleItems();\n },\n { deep: 1 }\n );\n\n return {\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n calculateVisibleItems,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize\n };\n}\n\nfunction binaryClosest(arr: ArrayLike<number>, val: number) {\n let high = arr.length - 1;\n let low = 0;\n let mid = 0;\n let item = null;\n let target = -1;\n\n if (arr[high]! < val) {\n return high;\n }\n\n while (low <= high) {\n mid = (low + high) >> 1;\n item = arr[mid]!;\n\n if (item > val) {\n high = mid - 1;\n } else if (item < val) {\n target = mid;\n low = mid + 1;\n } else if (item === val) {\n return mid;\n } else {\n return low;\n }\n }\n\n return target;\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useVirtual.js","sources":["../../../../../src/composables/useVirtual/useVirtual.ts"],"sourcesContent":["import { useDisplay } from '@cds/composables/useDisplay';\nimport { useResizeObserver } from '@cds/composables/useResizeObserver';\nimport { propsFactory } from '@cds/core';\nimport { clamp, debounce, getPropertyFromItem, IN_BROWSER, type SelectItemKey } from '@cds/utils';\nimport {\n computed,\n type ExtractPublicPropTypes,\n nextTick,\n onScopeDispose,\n type PropType,\n type Ref,\n ref,\n shallowRef,\n unref,\n watch,\n watchEffect\n} from 'vue';\n\nexport const defineVirtualProps = propsFactory(\n {\n /**\n * Высота одного элемента в пикселях. Если не задана — высота измеряется автоматически.\n * @en Height of a single item in pixels. When omitted, the height is measured automatically.\n */\n itemHeight: {\n type: [Number, String],\n default: null\n },\n /**\n * Ключ элемента для идентификации (имя поля, путь или функция). По умолчанию используется индекс.\n * @en Key that identifies an item (a field name, a path or a function). The index is used by default.\n */\n itemKey: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: null\n },\n /**\n * Высота области просмотра виртуального списка.\n * @en Height of the viewport of the virtual list.\n */\n height: [Number, String]\n },\n 'virtual'\n);\n\nexport interface VirtualProps extends ExtractPublicPropTypes<ReturnType<typeof defineVirtualProps>> {}\n\nconst UP = -1;\nconst DOWN = 1;\nconst BUFFER_PX = 100;\n\nexport function useVirtual<T>(props: VirtualProps, items: Ref<readonly T[]>) {\n const display = useDisplay();\n\n const itemHeight = shallowRef(0);\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0);\n });\n\n const paddingTop = shallowRef(0);\n const paddingBottom = shallowRef(0);\n const first = shallowRef(0);\n const last = shallowRef(Math.ceil((parseInt(props.height!) || display.height.value) / (itemHeight.value || 16)) || 1);\n\n const containerRef = ref<HTMLElement>();\n const markerRef = ref<HTMLElement>();\n let markerOffset = 0;\n\n const { resizeRef, contentRect } = useResizeObserver();\n\n watchEffect(() => {\n resizeRef.value = unref(containerRef);\n });\n\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement\n ? display.height.value\n : contentRect.value?.height || parseInt(props.height!) || 0;\n });\n\n const hasInitialRender = computed(() => {\n return !!(unref(containerRef) && unref(markerRef) && unref(viewportHeight) && unref(itemHeight));\n });\n\n let sizes = Array.from<number | null>({ length: items.value.length });\n let offsets = Array.from<number>({ length: items.value.length });\n let targetScrollIndex = -1;\n\n const updateTime = shallowRef(0);\n\n const updateOffsets = debounce(() => {\n const start = performance.now();\n offsets[0] = 0;\n const length = items.value.length;\n for (let i = 1; i <= length; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1);\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start);\n }, updateTime);\n\n const unwatch = watch(hasInitialRender, (v) => {\n if (!v) return;\n\n unwatch();\n\n markerOffset = markerRef.value!.offsetTop;\n updateOffsets.immediate();\n calculateVisibleItems();\n\n if (!~targetScrollIndex) return;\n\n nextTick(() => {\n IN_BROWSER &&\n window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex);\n targetScrollIndex = -1;\n });\n });\n });\n\n onScopeDispose(() => {\n updateOffsets.clear();\n });\n\n function getSize(index: number) {\n return sizes[index] || itemHeight.value;\n }\n\n function handleItemResize(index: number, height: number) {\n const prevHeight = sizes[index];\n const prevMinHeight = itemHeight.value;\n\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height;\n\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height;\n updateOffsets();\n }\n }\n\n function calculateOffset(index: number) {\n index = clamp(index, 0, items.value.length);\n const whole = Math.floor(index);\n const fraction = index % 1;\n const next = whole + 1;\n const wholeOffset = offsets[whole] || 0;\n const nextOffset = offsets[next] || wholeOffset;\n return wholeOffset + (nextOffset - wholeOffset) * fraction;\n }\n\n function calculateIndex(scrollTop: number) {\n return binaryClosest(offsets, scrollTop);\n }\n\n let lastScrollTop = 0;\n let scrollVelocity = 0;\n let lastScrollTime = 0;\n\n watch(viewportHeight, (val, oldVal) => {\n calculateVisibleItems();\n if (val < oldVal) {\n requestAnimationFrame(() => {\n scrollVelocity = 0;\n calculateVisibleItems();\n });\n }\n });\n\n let scrollTimeout = -1;\n function handleScroll() {\n if (!containerRef.value || !markerRef.value) return;\n\n const scrollTop = containerRef.value.scrollTop;\n const scrollTime = performance.now();\n const scrollDeltaT = scrollTime - lastScrollTime;\n\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop);\n markerOffset = markerRef.value.offsetTop;\n } else {\n scrollVelocity = scrollTop - lastScrollTop;\n }\n\n lastScrollTop = scrollTop;\n lastScrollTime = scrollTime;\n\n window.clearTimeout(scrollTimeout);\n scrollTimeout = window.setTimeout(handleScrollend, 500);\n\n calculateVisibleItems();\n }\n\n function handleScrollend() {\n if (!containerRef.value || !markerRef.value) return;\n\n scrollVelocity = 0;\n lastScrollTime = 0;\n\n window.clearTimeout(scrollTimeout);\n calculateVisibleItems();\n }\n\n let raf = -1;\n function calculateVisibleItems() {\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(_calculateVisibleItems);\n }\n\n function _calculateVisibleItems() {\n if (!containerRef.value || !viewportHeight.value || !itemHeight.value) return;\n const scrollTop = lastScrollTop - markerOffset;\n const direction = Math.sign(scrollVelocity);\n\n const startPx = Math.max(0, scrollTop - BUFFER_PX);\n const start = clamp(calculateIndex(startPx), 0, items.value.length);\n\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX;\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length);\n\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) &&\n (direction !== DOWN || end > last.value)\n ) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start);\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value);\n const bufferOverflow = Math.max(topOverflow, bottomOverflow);\n\n if (bufferOverflow > BUFFER_PX) {\n first.value = start;\n last.value = end;\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start;\n if (end >= items.value.length) last.value = end;\n }\n }\n\n paddingTop.value = calculateOffset(first.value);\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value);\n }\n\n function scrollToIndex(index: number) {\n const offset = calculateOffset(index);\n if (!containerRef.value || (index && !offset)) {\n targetScrollIndex = index;\n } else {\n containerRef.value.scrollTop = offset;\n }\n }\n\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => {\n const _index = index + first.value;\n return {\n raw: item,\n index: _index,\n key: getPropertyFromItem(item, props.itemKey, _index)\n };\n });\n });\n\n watch(\n items,\n () => {\n sizes = Array.from({ length: items.value.length });\n offsets = Array.from({ length: items.value.length });\n updateOffsets.immediate();\n calculateVisibleItems();\n },\n { deep: 1 }\n );\n\n return {\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n calculateVisibleItems,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize\n };\n}\n\nfunction binaryClosest(arr: ArrayLike<number>, val: number) {\n let high = arr.length - 1;\n let low = 0;\n let mid = 0;\n let item = null;\n let target = -1;\n\n if (arr[high]! < val) {\n return high;\n }\n\n while (low <= high) {\n mid = (low + high) >> 1;\n item = arr[mid]!;\n\n if (item > val) {\n high = mid - 1;\n } else if (item < val) {\n target = mid;\n low = mid + 1;\n } else if (item === val) {\n return mid;\n } else {\n return low;\n }\n }\n\n return target;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,10 @@ const defineComponentProps = propsFactory(
|
|
|
16
16
|
);
|
|
17
17
|
const defineTagProps = propsFactory(
|
|
18
18
|
{
|
|
19
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* Пользовательский HTML-тег для отображения
|
|
21
|
+
* @en Custom HTML tag or component to render
|
|
22
|
+
*/
|
|
20
23
|
tag: {
|
|
21
24
|
type: [String, Object, Function],
|
|
22
25
|
default: "div"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineComponent.js","sources":["../../../../src/core/defineComponent.ts"],"sourcesContent":["import { propsFactory } from '@cds/core/propsFactory';\nimport { useDefaults } from '@cds/core/useDefaults';\nimport { classNames, kebabCase, pick } from '@cds/utils';\nimport {\n type ComponentPublicInstance,\n defineComponent,\n type ExtractPublicPropTypes,\n type FunctionalComponent,\n h,\n type PropType,\n type StyleValue,\n type VNodeChild\n} from 'vue';\n\nexport type JSXComponent<Props = any> = { new (): ComponentPublicInstance<Props> } | FunctionalComponent<Props>;\n\nexport type SlotsToProps<U extends RawSlots, T = MakeInternalSlots<U>> = {\n $children?:\n | VNodeChild\n | (T extends { default: infer V } ? V : {})\n | { [K in keyof T]?: T[K] }\n | { $stable?: boolean };\n 'v-slots'?: { [K in keyof T]?: T[K] | false };\n} & {\n [K in keyof T as `v-slot:${K & string}`]?: T[K] | false;\n};\n\nexport type ClassValue = any;\n\n/**\n * Defines the properties for a customizable component.\n *\n * The `defineComponentProps` object is constructed using the `propsFactory` function,\n * and it provides two configurable props for a component:\n *\n * 1. `class`: A flexible prop that accepts a string, array, or object\n * for defining CSS class names. This allows dynamic class application based on user input.\n *\n * 2. `style`: A versatile prop that accepts a string, array, or object\n * for defining inline styles. The default value for this prop is `null`.\n */\nexport const defineComponentProps = propsFactory(\n {\n class: [String, Array, Object] as PropType<ClassValue>,\n style: {\n type: [String, Array, Object] as PropType<StyleValue>,\n default: null\n }\n },\n 'component'\n);\n\nexport type ComponentProps = ExtractPublicPropTypes<ReturnType<typeof defineComponentProps>>;\n\n/**\n * Defines configurable properties for a custom tag component.\n *\n * The `defineTagProps` is a property factory function that creates\n * reactive and type-safe props for a custom tag component. It primarily\n * includes a `tag` property to specify the HTML tag or component to render.\n */\nexport const defineTagProps = propsFactory(\n {\n
|
|
1
|
+
{"version":3,"file":"defineComponent.js","sources":["../../../../src/core/defineComponent.ts"],"sourcesContent":["import { propsFactory } from '@cds/core/propsFactory';\nimport { useDefaults } from '@cds/core/useDefaults';\nimport { classNames, kebabCase, pick } from '@cds/utils';\nimport {\n type ComponentPublicInstance,\n defineComponent,\n type ExtractPublicPropTypes,\n type FunctionalComponent,\n h,\n type PropType,\n type StyleValue,\n type VNodeChild\n} from 'vue';\n\nexport type JSXComponent<Props = any> = { new (): ComponentPublicInstance<Props> } | FunctionalComponent<Props>;\n\nexport type SlotsToProps<U extends RawSlots, T = MakeInternalSlots<U>> = {\n $children?:\n | VNodeChild\n | (T extends { default: infer V } ? V : {})\n | { [K in keyof T]?: T[K] }\n | { $stable?: boolean };\n 'v-slots'?: { [K in keyof T]?: T[K] | false };\n} & {\n [K in keyof T as `v-slot:${K & string}`]?: T[K] | false;\n};\n\nexport type ClassValue = any;\n\n/**\n * Defines the properties for a customizable component.\n *\n * The `defineComponentProps` object is constructed using the `propsFactory` function,\n * and it provides two configurable props for a component:\n *\n * 1. `class`: A flexible prop that accepts a string, array, or object\n * for defining CSS class names. This allows dynamic class application based on user input.\n *\n * 2. `style`: A versatile prop that accepts a string, array, or object\n * for defining inline styles. The default value for this prop is `null`.\n */\nexport const defineComponentProps = propsFactory(\n {\n class: [String, Array, Object] as PropType<ClassValue>,\n style: {\n type: [String, Array, Object] as PropType<StyleValue>,\n default: null\n }\n },\n 'component'\n);\n\nexport type ComponentProps = ExtractPublicPropTypes<ReturnType<typeof defineComponentProps>>;\n\n/**\n * Defines configurable properties for a custom tag component.\n *\n * The `defineTagProps` is a property factory function that creates\n * reactive and type-safe props for a custom tag component. It primarily\n * includes a `tag` property to specify the HTML tag or component to render.\n */\nexport const defineTagProps = propsFactory(\n {\n /**\n * Пользовательский HTML-тег для отображения\n * @en Custom HTML tag or component to render\n */\n tag: {\n type: [String, Object, Function] as PropType<string | JSXComponent>,\n default: 'div'\n }\n },\n 'tag'\n);\n\nexport type TagProps = ExtractPublicPropTypes<ReturnType<typeof defineTagProps>>;\n\ntype PropsFactoryFn = (defaults?: any) => Record<string, any>;\n\n/**\n * Filters the given props object to include only the keys defined in the provided factory function.\n *\n * @example\n * const inputProps = filterProps(defineCdsInputProps, props);\n * const fieldProps = filterProps(defineCdsFieldProps, props);\n */\nexport function filterProps<F extends PropsFactoryFn, P extends Record<string, any>>(\n factory: F,\n props: P\n): Pick<P, Extract<keyof P, Exclude<keyof ReturnType<F>, 'class' | 'style'>>> {\n const factoryProps = factory();\n const keys = Object.keys(factoryProps).filter((key) => key !== 'class' && key !== 'style');\n return pick(props, keys as Extract<keyof P, string>[]) as any;\n}\n\ntype RawSlots = Record<string, unknown>;\ntype Slot<T> = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild;\ntype MakeInternalSlots<T extends RawSlots> = {\n [K in keyof T]: Slot<T[K]>;\n};\n\n/**\n * Creates a simple functional Vue component with the specified class name, tag, and optional name.\n *\n * @param {string} componentName - Name of the component.\n * @param {string} className - The class name to apply to the root element of the component.\n * @param {string} [tag='div'] - The HTML tag name to be used as the root element. Defaults to 'div'.\n * @return {import('vue').DefineComponent} A Vue component with the specified configuration.\n */\nexport function createSimpleFunctionalComponent(componentName: string, className?: string, tag = 'div') {\n return defineComponent({\n name: componentName,\n props: {\n ...defineTagProps(),\n ...defineComponentProps()\n },\n setup(_props, { slots }) {\n const props = useDefaults(_props);\n return () =>\n h(\n props.tag || tag,\n { class: classNames(className ?? kebabCase(componentName), props.class), style: props.style },\n slots.default?.()\n );\n }\n });\n}\n"],"names":[],"mappings":";;;;;;AAyCO,MAAM,uBAAuB;AAAA,EAClC;AAAA,IACE,OAAO,CAAC,QAAQ,OAAO,MAAM;AAAA,IAC7B,OAAO;AAAA,MACL,MAAM,CAAC,QAAQ,OAAO,MAAM;AAAA,MAC5B,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF;AACF;AAWO,MAAM,iBAAiB;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA,IAKE,KAAK;AAAA,MACH,MAAM,CAAC,QAAQ,QAAQ,QAAQ;AAAA,MAC/B,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF;AACF;AAaO,SAAS,YACd,SACA,OAC4E;AAC5E,QAAM,eAAe,QAAA;AACrB,QAAM,OAAO,OAAO,KAAK,YAAY,EAAE,OAAO,CAAC,QAAQ,QAAQ,WAAW,QAAQ,OAAO;AACzF,SAAO,KAAK,OAAO,IAAkC;AACvD;AAgBO,SAAS,gCAAgC,eAAuB,WAAoB,MAAM,OAAO;AACtG,SAAO,gBAAgB;AAAA,IACrB,MAAM;AAAA,IACN,OAAO;AAAA,MACL,GAAG,eAAA;AAAA,MACH,GAAG,qBAAA;AAAA,IAAqB;AAAA,IAE1B,MAAM,QAAQ,EAAE,SAAS;AACvB,YAAM,QAAQ,YAAY,MAAM;AAChC,aAAO;;AACL;AAAA,UACE,MAAM,OAAO;AAAA,UACb,EAAE,OAAO,WAAW,aAAa,UAAU,aAAa,GAAG,MAAM,KAAK,GAAG,OAAO,MAAM,MAAA;AAAA,WACtF,WAAM,YAAN;AAAA,QAAgB;AAAA;AAAA,IAEtB;AAAA,EAAA,CACD;AACH;"}
|
|
@@ -3,10 +3,14 @@ const lumaDark = {
|
|
|
3
3
|
...cdsDark,
|
|
4
4
|
colors: {
|
|
5
5
|
...cdsDark.colors,
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
6
|
+
"surface-secondary": "#24262C",
|
|
7
|
+
"surface-primary": "#1B1D21",
|
|
8
|
+
"surface-elevated": "#24262C",
|
|
9
|
+
"page-primary": "#16171A",
|
|
10
|
+
"brand-secondary-hover": "#8A1034",
|
|
11
|
+
"brand-secondary-border": "#A01639",
|
|
12
|
+
"brand-secondary-active": "#A01639",
|
|
13
|
+
"brand-secondary": "#6F0C28",
|
|
10
14
|
"brand-primary-hover": "#8A1034",
|
|
11
15
|
"brand-primary-content": "#FFD9E1",
|
|
12
16
|
"brand-primary-border": "#D2154B",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lumaDark.js","sources":["../../../../src/themes/lumaDark.ts"],"sourcesContent":["import cdsDark from './cdsDark';\n\nexport default {\n ...cdsDark,\n colors: {\n ...cdsDark.colors,\n 'brand-secondary-hover': '#
|
|
1
|
+
{"version":3,"file":"lumaDark.js","sources":["../../../../src/themes/lumaDark.ts"],"sourcesContent":["import cdsDark from './cdsDark';\n\nexport default {\n ...cdsDark,\n colors: {\n ...cdsDark.colors,\n 'surface-secondary': '#24262C',\n 'surface-primary': '#1B1D21',\n 'surface-elevated': '#24262C',\n 'page-primary': '#16171A',\n 'brand-secondary-hover': '#8A1034',\n 'brand-secondary-border': '#A01639',\n 'brand-secondary-active': '#A01639',\n 'brand-secondary': '#6F0C28',\n 'brand-primary-hover': '#8A1034',\n 'brand-primary-content': '#FFD9E1',\n 'brand-primary-border': '#D2154B',\n 'brand-primary-active': '#650B25',\n 'brand-primary': '#D2154B'\n }\n};\n"],"names":[],"mappings":";AAEA,MAAA,WAAe;AAAA,EACb,GAAG;AAAA,EACH,QAAQ;AAAA,IACN,GAAG,QAAQ;AAAA,IACX,qBAAqB;AAAA,IACrB,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAChB,yBAAyB;AAAA,IACzB,0BAA0B;AAAA,IAC1B,0BAA0B;AAAA,IAC1B,mBAAmB;AAAA,IACnB,uBAAuB;AAAA,IACvB,yBAAyB;AAAA,IACzB,wBAAwB;AAAA,IACxB,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,EAAA;AAErB;"}
|
|
@@ -378,14 +378,14 @@ function endOfDate(date, unit, utc) {
|
|
|
378
378
|
}
|
|
379
379
|
function getMaxDate(date, ...args) {
|
|
380
380
|
let _date = new Date(date);
|
|
381
|
-
|
|
381
|
+
args.forEach((date2) => {
|
|
382
382
|
_date = Math.max(_date, new Date(date2));
|
|
383
383
|
});
|
|
384
384
|
return _date;
|
|
385
385
|
}
|
|
386
386
|
function getMinDate(date, ...args) {
|
|
387
387
|
let _date = new Date(date);
|
|
388
|
-
|
|
388
|
+
args.forEach((date2) => {
|
|
389
389
|
_date = Math.min(_date, new Date(date2));
|
|
390
390
|
});
|
|
391
391
|
return _date;
|
|
@@ -621,7 +621,7 @@ function formatTimezone(offset, delimiter = "") {
|
|
|
621
621
|
function applyYearMonthDayChange(date, modified, sign) {
|
|
622
622
|
let year = date.getFullYear();
|
|
623
623
|
let month = date.getMonth();
|
|
624
|
-
const day = date.
|
|
624
|
+
const day = date.getDate();
|
|
625
625
|
if (modified.year) {
|
|
626
626
|
year += sign * modified.year;
|
|
627
627
|
delete modified.year;
|
|
@@ -659,7 +659,7 @@ function applyYearMonthDay(date, modified, middle) {
|
|
|
659
659
|
function getChange(date, rawModified, sign) {
|
|
660
660
|
const modified = normalizeModified(rawModified);
|
|
661
661
|
const _date = new Date(date);
|
|
662
|
-
const changedDate = modified.year || modified.month || modified.date ? applyYearMonthDayChange(
|
|
662
|
+
const changedDate = modified.year || modified.month || modified.date ? applyYearMonthDayChange(_date, modified, sign) : _date;
|
|
663
663
|
for (const key in modified) {
|
|
664
664
|
const op = key.charAt(0).toUpperCase() + key.slice(1);
|
|
665
665
|
changedDate[`set${op}`](
|