@central-design-system/components 4.0.0-alpha.2 → 4.0.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -1
- package/MIGRATION.md +1 -1
- package/dist/browser/chunks/cdsLegacy-VUz8RzDN.js +120 -0
- package/dist/browser/chunks/useIcons.component-Df4MSurB.js +102 -0
- package/dist/browser/entry.js +31811 -0
- package/dist/browser/iconsets/carbon.js +155 -0
- package/dist/browser/iconsets/cds.js +149 -0
- package/dist/browser/iconsets/cdsLegacy.js +6 -0
- package/dist/browser/iconsets/lucide.js +156 -0
- package/dist/browser/iconsets/mdi.js +154 -0
- package/dist/browser/iconsets/phosphor.js +155 -0
- package/dist/browser/iconsets/remix.js +155 -0
- package/dist/cjs/entry.js +11 -11
- package/dist/es/entry.js +221 -202
- package/dist/es/entry.js.map +1 -1
- package/dist/es/src/cds.js +5 -5
- package/dist/es/src/components/CdsApp/CdsApp.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsApp/api/CdsApp.props.js +1 -1
- package/dist/es/src/components/CdsAvatar/CdsAvatar.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsAvatar/api/CdsAvatar.props.js +1 -1
- package/dist/es/src/components/CdsBadge/CdsBadge.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsBadge/api/CdsBadge.props.js +1 -1
- package/dist/es/src/components/CdsButton/CdsButton.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsButton/api/CdsButton.props.js +1 -1
- package/dist/es/src/components/CdsButtonGroup/CdsButtonGroup.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsButtonGroup/api/CdsButtonGroup.props.js +1 -1
- package/dist/es/src/components/CdsCard/CdsCard.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsCard/CdsCardGroup.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsCard/api/CdsCard.props.js +1 -1
- package/dist/es/src/components/CdsDatePicker/CdsDatePicker.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsDatePicker/api/CdsDatePicker.props.js +1 -1
- package/dist/es/src/components/CdsDivider/CdsDivider.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsDrawer/CdsDrawer.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/src/components/CdsDrawer/api/CdsDrawer.props.js +1 -1
- package/dist/es/src/components/CdsEmptyState/CdsEmptyState.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/src/components/CdsEmptyState/api/CdsEmptyState.props.js +1 -1
- package/dist/es/src/components/CdsExpandablePanel/CdsExpandablePanels.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsExpandablePanel/api/CdsExpandablePanel.props.js +1 -1
- package/dist/es/src/components/CdsField/CdsField.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsField/api/CdsField.props.js +1 -1
- package/dist/es/src/components/CdsFooter/CdsFooter.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/src/components/CdsFooter/api/CdsFooter.props.js +1 -1
- package/dist/es/src/components/CdsFunctionalButton/api/CdsFunctionalButton.props.js +1 -1
- package/dist/es/src/components/CdsGrid/CdsCol.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsHeader/CdsHeader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsHeader/api/CdsHeader.props.js +1 -1
- package/dist/es/src/components/CdsIcon/CdsIcon.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsIcon/api/CdsIcon.props.js +1 -1
- package/dist/es/src/components/CdsImage/CdsImage.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsImage/api/CdsImage.props.js +1 -1
- package/dist/es/src/components/CdsInput/CdsInput.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsInput/api/CdsInput.props.js +1 -1
- package/dist/es/src/components/CdsLayout/CdsLayout.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/src/components/CdsLayout/api/CdsLayout.props.js +1 -1
- package/dist/es/src/components/CdsLink/CdsLink.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsLink/api/CdsLink.props.js +1 -1
- package/dist/es/src/components/CdsList/CdsList.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsList/CdsListItem.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsList/api/CdsList.props.js +1 -1
- package/dist/es/src/components/CdsLoader/CdsLoader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsNotification/CdsNotification.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsNotification/api/CdsNotification.props.js +1 -1
- package/dist/es/src/components/CdsOtpInput/CdsOtpField.js +2 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpField.js.map +1 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpField.vue_vue_type_script_setup_true_lang.js +62 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpField.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpGroup.js +2 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpGroup.js.map +1 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpGroup.vue_vue_type_script_setup_true_lang.js +51 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpInput.css +204 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpInput.js +2 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpInput.js.map +1 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpInput.vue_vue_type_script_setup_true_lang.js +338 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpSeparator.js +2 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpSeparator.js.map +1 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpSeparator.vue_vue_type_script_setup_true_lang.js +34 -0
- package/dist/es/src/components/CdsOtpInput/CdsOtpSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.constants.js +16 -0
- package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.constants.js.map +1 -0
- package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.props.js +97 -0
- package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.props.js.map +1 -0
- package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.types.js +2 -0
- package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.types.js.map +1 -0
- package/dist/es/src/components/CdsOtpInput/composables/useOtpInput.js +329 -0
- package/dist/es/src/components/CdsOtpInput/composables/useOtpInput.js.map +1 -0
- package/dist/es/src/components/CdsOtpInput/index.js +17 -0
- package/dist/es/src/components/CdsOtpInput/index.js.map +1 -0
- package/dist/es/src/components/CdsOverlay/CdsOverlay.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsOverlay/api/CdsOverlay.props.js +1 -1
- package/dist/es/src/components/CdsPage/CdsPage.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsPagination/CdsPagination.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/es/src/components/CdsPagination/api/CdsPagination.props.js +1 -1
- package/dist/es/src/components/CdsProgressBar/CdsProgressBar.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsProgressBar/api/CdsProgressBar.props.js +1 -1
- package/dist/es/src/components/CdsProgressCircle/CdsProgressCircle.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsProgressCircle/api/CdsProgressCircle.props.js +1 -1
- package/dist/es/src/components/CdsSkeletonLoader/CdsSkeletonLoader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsSkeletonLoader/api/CdsSkeletonLoader.props.js +1 -1
- package/dist/es/src/components/CdsSlideGroup/CdsSlideGroup.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsSlideGroup/api/CdsSlideGroup.props.js +1 -1
- package/dist/es/src/components/CdsSlideView/api/CdsSlideView.props.js +1 -1
- package/dist/es/src/components/CdsStages/CdsStages.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsStages/api/CdsStages.props.js +1 -1
- package/dist/es/src/components/CdsStatus/CdsStatus.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsStatus/api/CdsStatus.props.js +1 -1
- package/dist/es/src/components/CdsSteps/api/CdsSteps.props.js +1 -1
- package/dist/es/src/components/CdsSurface/CdsSurface.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsSurface/api/CdsSurface.props.js +1 -1
- package/dist/es/src/components/CdsTable/api/CdsTable.props.js +1 -1
- package/dist/es/src/components/CdsTable/components/TableProvider.js +2 -2
- package/dist/es/src/components/CdsTag/CdsTag.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsTagGroup/CdsTagGroup.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsTagGroup/api/CdsTagGroup.props.js +1 -1
- package/dist/es/src/components/CdsTimePicker/CdsTimePicker.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsTimePicker/api/CdsTimePicker.props.js +1 -1
- package/dist/es/src/components/CdsToast/CdsToast.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsToolbar/CdsToolbar.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsToolbar/api/CdsToolbar.props.js +1 -1
- package/dist/es/src/components/CdsTree/CdsTree.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/CdsTree/api/CdsTree.props.js +1 -1
- package/dist/es/src/components/CdsUploader/CdsUploader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/es/src/components/index.js +10 -0
- package/dist/es/src/components/index.js.map +1 -1
- package/dist/es/src/composables/useHydration/useHydration.js +1 -1
- package/dist/es/src/composables/useLayout/useLayout.js +1 -1
- package/dist/es/src/composables/useTheme/internal/useTheme.constants.js +13 -2
- package/dist/es/src/composables/useTheme/internal/useTheme.constants.js.map +1 -1
- package/dist/es/src/composables/useVirtual/useVirtual.js +1 -1
- package/dist/es/src/core/useDefaults.js +3 -1
- package/dist/es/src/locales/adapters/cdsLocaleAdapter.js +2 -1
- package/dist/es/src/locales/adapters/cdsLocaleAdapter.js.map +1 -1
- package/dist/es/src/locales/en.js +70 -0
- package/dist/es/src/locales/en.js.map +1 -0
- package/dist/es/src/locales/index.js +18 -0
- package/dist/es/src/locales/index.js.map +1 -0
- package/dist/es/src/locales/ru.js +1 -0
- package/dist/es/src/locales/ru.js.map +1 -1
- package/dist/es/src/themes/index.js +4 -0
- package/dist/es/src/themes/index.js.map +1 -1
- package/dist/es/src/themes/lumaDark.js +20 -0
- package/dist/es/src/themes/lumaDark.js.map +1 -0
- package/dist/es/src/themes/lumaLight.js +20 -0
- package/dist/es/src/themes/lumaLight.js.map +1 -0
- package/dist/esm-node/entry.mjs +221 -202
- package/dist/esm-node/src/assets/icons/cdsLegacy.mjs +1 -1
- package/dist/esm-node/src/cds.mjs +6 -6
- package/dist/esm-node/src/components/CdsApp/CdsApp.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsApp/api/CdsApp.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsAutocomplete/CdsAutocomplete.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsAutocomplete/api/CdsAutocomplete.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsAvatar/CdsAvatar.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsAvatar/api/CdsAvatar.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsBadge/CdsBadge.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsBadge/api/CdsBadge.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsBreadcrumbs/CdsBreadcrumbs.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsBreadcrumbs/CdsBreadcrumbsDivider.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsBreadcrumbs/CdsBreadcrumbsItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsBreadcrumbs/api/CdsBreadcrumbs.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsButton/CdsButton.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsButton/api/CdsButton.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsButtonGroup/CdsButtonGroup.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsButtonGroup/api/CdsButtonGroup.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsButtonToggle/CdsButtonToggle.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsButtonToggle/api/CdsButtonToggle.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsCard/CdsCard.vue_vue_type_script_setup_true_lang.mjs +4 -4
- 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 +2 -2
- package/dist/esm-node/src/components/CdsCard/CdsCardGroup.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsCard/CdsCardItem.vue_vue_type_script_setup_true_lang.mjs +2 -2
- 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 +2 -2
- package/dist/esm-node/src/components/CdsCard/index.mjs +1 -1
- package/dist/esm-node/src/components/CdsCarousel/CdsCarousel.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsCarousel/CdsCarouselItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsCheckbox/CdsCheckbox.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsCheckbox/api/CdsCheckbox.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsCheckboxButton/CdsCheckboxButton.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsCombobox/CdsCombobox.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsCombobox/api/CdsCombobox.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsCounter/CdsCounter.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsDateInput/CdsDateInput.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsDateInput/api/CdsDateInput.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsDatePicker/CdsDatePicker.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsDatePicker/api/CdsDatePicker.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsDatePicker/composables/useCalendar.mjs +3 -3
- package/dist/esm-node/src/components/CdsDescription/CdsDescription.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsDivider/CdsDivider.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsDrawer/CdsDrawer.vue_vue_type_script_setup_true_lang.mjs +4 -4
- package/dist/esm-node/src/components/CdsDrawer/api/CdsDrawer.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsEmptyState/CdsEmptyState.vue_vue_type_script_setup_true_lang.mjs +5 -5
- package/dist/esm-node/src/components/CdsEmptyState/api/CdsEmptyState.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsExpandablePanel/CdsExpandablePanel.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsExpandablePanel/CdsExpandablePanelContent.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsExpandablePanel/CdsExpandablePanelTitle.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsExpandablePanel/CdsExpandablePanels.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsExpandablePanel/api/CdsExpandablePanel.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsField/CdsField.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsField/api/CdsField.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsFileInput/CdsFileInput.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsFileInput/api/CdsFileInput.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsFileUpload/CdsFileUpload.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsFileUpload/CdsFileUploadDropzone.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsFileUpload/CdsFileUploadItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsFileUpload/CdsFileUploadList.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsFileUpload/api/CdsFileUpload.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsFooter/CdsFooter.vue_vue_type_script_setup_true_lang.mjs +4 -4
- package/dist/esm-node/src/components/CdsFooter/api/CdsFooter.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsForm/CdsForm.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsFunctionalButton/api/CdsFunctionalButton.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsGrid/CdsCol.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsGrid/CdsRow.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsGrid/api/CdsGrid.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsGrid/components/CSSGrid.mjs +1 -1
- package/dist/esm-node/src/components/CdsGrid/components/FlexGrid.mjs +1 -1
- package/dist/esm-node/src/components/CdsHeader/CdsHeader.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsHeader/api/CdsHeader.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsHighlight/CdsHighlight.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsHighlight/utils/toHighlight.mjs +1 -1
- package/dist/esm-node/src/components/CdsIcon/CdsIcon.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsIcon/api/CdsIcon.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsImage/CdsImage.vue_vue_type_script_setup_true_lang.mjs +4 -4
- package/dist/esm-node/src/components/CdsImage/api/CdsImage.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsInput/CdsInput.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsInput/CdsInputIcon.mjs +1 -1
- package/dist/esm-node/src/components/CdsInput/api/CdsInput.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsLabel/CdsLabel.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsLabel/api/CdsLabel.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsLayout/CdsLayout.vue_vue_type_script_setup_true_lang.mjs +5 -5
- package/dist/esm-node/src/components/CdsLayout/api/CdsLayout.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsLayout/internal/LayoutResizeObserver.mjs +1 -1
- package/dist/esm-node/src/components/CdsLayout/internal/LayoutScrollObserver.mjs +2 -2
- package/dist/esm-node/src/components/CdsLink/CdsLink.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsLink/api/CdsLink.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsList/CdsList.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsList/CdsListGroup.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsList/CdsListItem.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsList/CdsListItemAction.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsList/CdsListItemDivider.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsList/CdsListItemMedia.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsList/CdsListSubheader.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsList/api/CdsList.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsList/composables/useList.mjs +1 -1
- package/dist/esm-node/src/components/CdsLoader/CdsLoader.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsMain/CdsMain.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsMenu/CdsMenu.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsMenu/api/CdsMenu.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsMessages/CdsMessages.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsModal/CdsModal.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsNotification/CdsNotification.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsNotification/api/CdsNotification.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsNotificationAlert/CdsNotificationAlert.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsNotificationAlert/api/CdsNotificationAlert.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsOtpInput/CdsOtpField.mjs +2 -0
- package/dist/esm-node/src/components/CdsOtpInput/CdsOtpField.vue_vue_type_script_setup_true_lang.mjs +62 -0
- package/dist/esm-node/src/components/CdsOtpInput/CdsOtpGroup.mjs +2 -0
- package/dist/esm-node/src/components/CdsOtpInput/CdsOtpGroup.vue_vue_type_script_setup_true_lang.mjs +51 -0
- package/dist/esm-node/src/components/CdsOtpInput/CdsOtpInput.css +204 -0
- package/dist/esm-node/src/components/CdsOtpInput/CdsOtpInput.mjs +2 -0
- package/dist/esm-node/src/components/CdsOtpInput/CdsOtpInput.vue_vue_type_script_setup_true_lang.mjs +336 -0
- package/dist/esm-node/src/components/CdsOtpInput/CdsOtpSeparator.mjs +2 -0
- package/dist/esm-node/src/components/CdsOtpInput/CdsOtpSeparator.vue_vue_type_script_setup_true_lang.mjs +34 -0
- package/dist/esm-node/src/components/CdsOtpInput/api/CdsOtpInput.constants.mjs +16 -0
- package/dist/esm-node/src/components/CdsOtpInput/api/CdsOtpInput.props.mjs +97 -0
- package/dist/esm-node/src/components/CdsOtpInput/api/CdsOtpInput.types.mjs +2 -0
- package/dist/esm-node/src/components/CdsOtpInput/composables/useOtpInput.mjs +329 -0
- package/dist/esm-node/src/components/CdsOtpInput/index.mjs +17 -0
- package/dist/esm-node/src/components/CdsOverlay/CdsOverlay.vue_vue_type_script_setup_true_lang.mjs +6 -6
- package/dist/esm-node/src/components/CdsOverlay/api/CdsOverlay.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsOverlay/components/Scrim.mjs +1 -1
- package/dist/esm-node/src/components/CdsOverlay/composables/useActivator.mjs +2 -2
- package/dist/esm-node/src/components/CdsOverlay/composables/useLocationStrategies.mjs +3 -3
- package/dist/esm-node/src/components/CdsOverlay/composables/useScrollStrategies.mjs +3 -3
- package/dist/esm-node/src/components/CdsPage/CdsPage.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsPagination/CdsPagination.vue_vue_type_script_setup_true_lang.mjs +4 -4
- package/dist/esm-node/src/components/CdsPagination/api/CdsPagination.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsProgressBar/CdsProgressBar.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsProgressBar/api/CdsProgressBar.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsProgressBar/composables/useChunk.mjs +1 -1
- package/dist/esm-node/src/components/CdsProgressCircle/CdsProgressCircle.vue_vue_type_script_setup_true_lang.mjs +4 -4
- package/dist/esm-node/src/components/CdsProgressCircle/api/CdsProgressCircle.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsRadio/CdsRadio.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsRadioGroup/CdsRadioGroup.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsRadioGroup/api/CdsRadioGroup.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsResponsive/CdsResponsive.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsResponsive/composables/useAspectStyles.mjs +1 -1
- package/dist/esm-node/src/components/CdsSelect/CdsSelect.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsSelect/api/CdsSelect.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsSelectionControl/CdsSelectionControl.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsSelectionControl/api/CdsSelectionControl.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsSelectionControl/composables/useSelectionControl.mjs +1 -1
- package/dist/esm-node/src/components/CdsSelectionControlGroup/CdsSelectionControlGroup.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsSelectionControlGroup/api/CdsSelectionControlGroup.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsSkeletonLoader/CdsSkeletonLoader.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsSkeletonLoader/api/CdsSkeletonLoader.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsSlideGroup/CdsSlideGroup.vue_vue_type_script_setup_true_lang.mjs +4 -4
- package/dist/esm-node/src/components/CdsSlideGroup/api/CdsSlideGroup.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsSlideView/CdsSlideView.vue_vue_type_script_setup_true_lang.mjs +4 -4
- package/dist/esm-node/src/components/CdsSlideView/CdsSlideViewItem.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsSlideView/api/CdsSlideView.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsStages/CdsStages.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsStages/api/CdsStages.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsStatus/CdsStatus.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsStatus/api/CdsStatus.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsSteps/CdsSteps.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsSteps/CdsStepsActions.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsSteps/CdsStepsItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsSteps/CdsStepsView.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsSteps/CdsStepsViewItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsSteps/api/CdsSteps.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsSurface/CdsSurface.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsSurface/api/CdsSurface.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/api/CdsTable.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/components/Body/BodyRow.mjs +2 -2
- package/dist/esm-node/src/components/CdsTable/components/Cell/Cell.mjs +6 -6
- package/dist/esm-node/src/components/CdsTable/components/Drag/ColumnDragHandle.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/components/Drag/RowDragHandle.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/components/Filter/FilterDropdown.mjs +3 -3
- package/dist/esm-node/src/components/CdsTable/components/FixedHolder/FixedHolder.mjs +2 -2
- package/dist/esm-node/src/components/CdsTable/components/Header/DragHandle.mjs +4 -4
- package/dist/esm-node/src/components/CdsTable/components/Header/Header.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/components/Header/HeaderRow.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/components/ResizeObserver/ResizeObserver.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/components/StickyScrollbar/StickyScrollbar.mjs +3 -3
- package/dist/esm-node/src/components/CdsTable/components/Table/InternalTable.mjs +4 -4
- package/dist/esm-node/src/components/CdsTable/components/TableProvider.mjs +6 -6
- package/dist/esm-node/src/components/CdsTable/composable/columns.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/composable/filter.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/composable/frame.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/composable/pagination.mjs +2 -2
- package/dist/esm-node/src/components/CdsTable/composable/scroll.mjs +3 -3
- package/dist/esm-node/src/components/CdsTable/composable/selection.mjs +2 -2
- package/dist/esm-node/src/components/CdsTable/composable/sorter.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/composable/sticky.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/context/sticky.mjs +1 -1
- package/dist/esm-node/src/components/CdsTable/utils/column.mjs +1 -1
- package/dist/esm-node/src/components/CdsTabs/CdsTab.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsTabs/CdsTabs.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsTabs/CdsTabsView.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsTabs/CdsTabsViewItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsTabs/api/CdsTabs.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsTag/CdsTag.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsTag/api/CdsTag.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsTagGroup/CdsTagGroup.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsTagGroup/api/CdsTagGroup.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsTextArea/CdsTextArea.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsTextArea/api/CdsTextArea.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsTextInput/CdsTextInput.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsTextInput/api/CdsTextInput.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsTimePicker/CdsTimePicker.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsTimePicker/api/CdsTimePicker.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsTimePicker/composables/useTime.mjs +1 -1
- package/dist/esm-node/src/components/CdsToast/CdsToast.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsToast/api/CdsToast.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsToastQueue/CdsToastQueue.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsToastQueue/api/CdsToastQueue.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsToastQueue/composables/useDocumentVisibility.mjs +1 -1
- package/dist/esm-node/src/components/CdsToggle/CdsToggle.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsToggle/api/CdsToggle.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsToolbar/CdsToolbar.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsToolbar/CdsToolbarTitle.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsToolbar/api/CdsToolbar.props.mjs +2 -2
- package/dist/esm-node/src/components/CdsTooltip/CdsTooltip.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/CdsTooltip/api/CdsTooltip.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/CdsTree.vue_vue_type_script_setup_true_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsTree/CdsTreeDirectory.vue_vue_type_script_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsTree/CdsTreeNode.vue_vue_type_script_lang.mjs +3 -3
- package/dist/esm-node/src/components/CdsTree/api/CdsTree.props.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/DropIndicator.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/NodeList.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/SwitcherIcon.mjs +2 -2
- package/dist/esm-node/src/components/CdsTree/components/TreeProvider.mjs +4 -4
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/Filler.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/Item.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/ResizeObserver.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/ScrollBar.mjs +2 -2
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/VirtualList.mjs +2 -2
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/features/useFrameWheel.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/features/useHeights.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/components/VirtualList/features/useMobileTouchMove.mjs +1 -1
- package/dist/esm-node/src/components/CdsTree/utils/data.mjs +3 -3
- package/dist/esm-node/src/components/CdsUploader/CdsUploader.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsUploader/components/AjaxUploader.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/dist/esm-node/src/components/CdsVirtualScroll/CdsVirtualScroll.vue_vue_type_script_setup_true_lang.mjs +4 -4
- package/dist/esm-node/src/components/CdsVirtualScroll/CdsVirtualScrollItem.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/esm-node/src/components/index.mjs +10 -0
- package/dist/esm-node/src/composables/useColor/useColor.mjs +1 -1
- package/dist/esm-node/src/composables/useDatetime/useDatetime.mjs +2 -2
- package/dist/esm-node/src/composables/useDimensions/useDimensions.mjs +1 -1
- package/dist/esm-node/src/composables/useDisabled/index.mjs +1 -1
- package/dist/esm-node/src/composables/useDisplay/internal/useDisplay.helpers.mjs +1 -1
- package/dist/esm-node/src/composables/useDisplay/useDisplay.mjs +1 -1
- package/dist/esm-node/src/composables/useFilter/useFilter.mjs +1 -1
- package/dist/esm-node/src/composables/useFocus/useFocus.mjs +1 -1
- package/dist/esm-node/src/composables/useFocus/useFocusGroup.mjs +1 -1
- package/dist/esm-node/src/composables/useFocus/useFocusTrap.mjs +2 -2
- package/dist/esm-node/src/composables/useForm/useForm.mjs +1 -1
- package/dist/esm-node/src/composables/useGoTo/useGoTo.mjs +3 -3
- package/dist/esm-node/src/composables/useGroup/useGroup.mjs +1 -1
- package/dist/esm-node/src/composables/useHydration/useHydration.mjs +2 -2
- package/dist/esm-node/src/composables/useIcons/useIcons.mjs +1 -1
- package/dist/esm-node/src/composables/useItems/useItems.mjs +1 -1
- package/dist/esm-node/src/composables/useLayout/useLayout.mjs +2 -2
- package/dist/esm-node/src/composables/useLocation/useLocation.mjs +1 -1
- package/dist/esm-node/src/composables/useNested/strategies/activeStrategies.mjs +1 -1
- package/dist/esm-node/src/composables/useNested/useNested.mjs +2 -2
- package/dist/esm-node/src/composables/useResizeObserver/useResizeObserver.mjs +1 -1
- package/dist/esm-node/src/composables/useRouter/useRouter.mjs +1 -1
- package/dist/esm-node/src/composables/useSize/useSize.mjs +1 -1
- package/dist/esm-node/src/composables/useTeleport/useTeleport.mjs +2 -2
- package/dist/esm-node/src/composables/useTheme/internal/useTheme.constants.mjs +13 -2
- package/dist/esm-node/src/composables/useTheme/internal/useTheme.utils.mjs +2 -2
- package/dist/esm-node/src/composables/useTheme/useTheme.mjs +2 -2
- package/dist/esm-node/src/composables/useTransition/useTransition.mjs +1 -1
- package/dist/esm-node/src/composables/useValidation/useValidation.mjs +1 -1
- package/dist/esm-node/src/composables/useVirtual/useVirtual.mjs +2 -2
- package/dist/esm-node/src/core/defineComponent.mjs +2 -2
- package/dist/esm-node/src/core/getCurrentInstance.mjs +1 -1
- package/dist/esm-node/src/core/useDefaults.mjs +4 -2
- package/dist/esm-node/src/core/useProxyModel.mjs +1 -1
- package/dist/esm-node/src/hooks/createContext/index.mjs +1 -1
- package/dist/esm-node/src/hooks/createObserver/index.mjs +1 -1
- package/dist/esm-node/src/hooks/useBreakpoints/index.mjs +1 -1
- package/dist/esm-node/src/hooks/useEventListener/index.mjs +1 -1
- package/dist/esm-node/src/hooks/useHydration/index.mjs +1 -1
- package/dist/esm-node/src/hooks/useIntersectionObserver/index.mjs +1 -1
- package/dist/esm-node/src/hooks/useResizeObserver/index.mjs +1 -1
- package/dist/esm-node/src/icons.mjs +2 -2
- package/dist/esm-node/src/locales/adapters/cdsLocaleAdapter.mjs +3 -2
- package/dist/esm-node/src/locales/en.mjs +70 -0
- package/dist/esm-node/src/locales/index.mjs +18 -0
- package/dist/esm-node/src/locales/ru.mjs +1 -0
- package/dist/esm-node/src/themes/index.mjs +4 -0
- package/dist/esm-node/src/themes/lumaDark.mjs +20 -0
- package/dist/esm-node/src/themes/lumaLight.mjs +20 -0
- package/dist/esm-node/src/transitions/collapseTransition.mjs +1 -1
- package/dist/esm-node/src/transitions/createTransition.mjs +1 -1
- package/dist/esm-node/src/transitions/modalTransition.mjs +1 -1
- package/dist/esm-node/src/utils/colorsUtils/utils.mjs +2 -2
- package/dist/esm-node/src/utils/dom/classNames.mjs +1 -1
- package/dist/esm-node/src/utils/dom/console.mjs +1 -1
- package/dist/esm-node/src/utils/dom/dom.mjs +1 -1
- package/dist/iife/entry.js +11 -11
- package/dist/styles.css +2 -2
- package/dist/types/components/CdsOtpInput/CdsOtpField.vue.d.ts +25 -0
- package/dist/types/components/CdsOtpInput/CdsOtpGroup.vue.d.ts +34 -0
- package/dist/types/components/CdsOtpInput/CdsOtpInput.vue.d.ts +222 -0
- package/dist/types/components/CdsOtpInput/CdsOtpSeparator.vue.d.ts +25 -0
- package/dist/types/components/CdsOtpInput/api/CdsOtpInput.constants.d.ts +9 -0
- package/dist/types/components/CdsOtpInput/api/CdsOtpInput.props.d.ts +340 -0
- package/dist/types/components/CdsOtpInput/api/CdsOtpInput.types.d.ts +47 -0
- package/dist/types/components/CdsOtpInput/composables/useOtpInput.d.ts +76 -0
- package/dist/types/components/CdsOtpInput/index.d.ts +529 -0
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/composables/useTheme/internal/useTheme.constants.d.ts +1 -1
- package/dist/types/entry.d.ts +135 -123
- package/dist/types/locales/en.d.ts +1 -0
- package/dist/types/locales/index.d.ts +1 -0
- package/dist/types/locales/ru.d.ts +1 -0
- package/dist/types/themes/index.d.ts +4 -0
- package/dist/types/themes/lumaDark.d.ts +190 -0
- package/dist/types/themes/lumaLight.d.ts +190 -0
- package/llms/llms-components.txt +512 -1
- package/llms/llms-full.txt +1561 -11
- package/llms/llms-guides.txt +807 -10
- package/llms/llms-migration.txt +2 -2
- package/llms/llms-tokens.txt +243 -1
- package/llms/llms.txt +4 -3
- package/package.json +8 -1
- package/src/themes/css/lumaDark.css +184 -0
- package/src/themes/css/lumaLight.css +184 -0
- package/src/themes/index.ts +4 -0
- package/src/themes/lumaDark.ts +17 -0
- package/src/themes/lumaLight.ts +17 -0
package/llms/llms-guides.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Central Design System (CDS 4) — гайды
|
|
2
2
|
|
|
3
|
-
> Версия: 4.0.0-alpha.
|
|
3
|
+
> Версия: 4.0.0-alpha.4
|
|
4
4
|
> Подключение, конвенции, формы, тематизация, Tailwind CSS, tree-shaking и адаптив.
|
|
5
5
|
> Сгенерировано автоматически (`bun run generate:meta` → `bun run generate:llms`). Не редактировать вручную.
|
|
6
6
|
|
|
@@ -390,16 +390,18 @@ ThemeDefinition (TS) → --cds-color-* / --cds-* (CSS-переменные)
|
|
|
390
390
|
|
|
391
391
|
## Подключение темы
|
|
392
392
|
|
|
393
|
-
CDS 4 поставляет
|
|
393
|
+
CDS 4 поставляет восемь готовых тем:
|
|
394
394
|
|
|
395
|
-
| Тема | Описание
|
|
396
|
-
| -------------
|
|
397
|
-
| `cdsLight` | светлая тема, используется по умолчанию
|
|
398
|
-
| `cdsDark` | тёмная тема
|
|
399
|
-
| `b2bLight` | светлая тема для приложений B2B-Center
|
|
400
|
-
| `b2bDark` | тёмная тема для приложений B2B-Center
|
|
401
|
-
| `
|
|
402
|
-
| `
|
|
395
|
+
| Тема | Описание |
|
|
396
|
+
| ------------- |-----------------------------------------|
|
|
397
|
+
| `cdsLight` | светлая тема, используется по умолчанию |
|
|
398
|
+
| `cdsDark` | тёмная тема |
|
|
399
|
+
| `b2bLight` | светлая тема для приложений B2B-Center |
|
|
400
|
+
| `b2bDark` | тёмная тема для приложений B2B-Center |
|
|
401
|
+
| `lumaLight` | светлая тема Luma |
|
|
402
|
+
| `lumaDark` | тёмная тема Luma |
|
|
403
|
+
| `promoLight` | светлая промо-тема |
|
|
404
|
+
| `promoDark` | тёмная промо-тема |
|
|
403
405
|
|
|
404
406
|
> По умолчанию используется `cdsLight` — подключать её не нужно.
|
|
405
407
|
|
|
@@ -1305,3 +1307,798 @@ defineRender(() => (
|
|
|
1305
1307
|
остальные флаги — `false`. После гидрации значения можно пересчитать вызовом
|
|
1306
1308
|
`display.update()` (пересчитывает и размеры, и платформу). Начальные размеры для SSR
|
|
1307
1309
|
задаются вторым аргументом `createDisplay(options, ssr)` / опцией `ssr` в `createCds`.
|
|
1310
|
+
|
|
1311
|
+
---
|
|
1312
|
+
|
|
1313
|
+
# Глобальная конфигурация
|
|
1314
|
+
|
|
1315
|
+
CDS 4 позволяет задать значения пропсов по умолчанию — глобально, для конкретного компонента
|
|
1316
|
+
или только внутри определённого поддерева. Так вы один раз описываете «как выглядят кнопки
|
|
1317
|
+
в нашем продукте» и перестаёте дублировать одни и те же пропсы в каждом шаблоне.
|
|
1318
|
+
|
|
1319
|
+
## Настройка
|
|
1320
|
+
|
|
1321
|
+
Значения по умолчанию задаются опцией `defaults` в `createCds`. Ключ `global` действует на все
|
|
1322
|
+
компоненты, ключ с именем компонента — только на него.
|
|
1323
|
+
|
|
1324
|
+
```ts
|
|
1325
|
+
import { createApp } from 'vue';
|
|
1326
|
+
import '@central-design-system/components/styles';
|
|
1327
|
+
import { createCds, components, directives } from '@central-design-system/components';
|
|
1328
|
+
|
|
1329
|
+
import App from './App.vue';
|
|
1330
|
+
|
|
1331
|
+
const cds = createCds({
|
|
1332
|
+
components,
|
|
1333
|
+
directives,
|
|
1334
|
+
defaults: {
|
|
1335
|
+
global: {
|
|
1336
|
+
size: 'sm'
|
|
1337
|
+
},
|
|
1338
|
+
CdsButton: {
|
|
1339
|
+
appearance: 'secondary'
|
|
1340
|
+
},
|
|
1341
|
+
CdsTextInput: {
|
|
1342
|
+
hideDetails: 'auto'
|
|
1343
|
+
}
|
|
1344
|
+
}
|
|
1345
|
+
});
|
|
1346
|
+
|
|
1347
|
+
createApp(App).use(cds);
|
|
1348
|
+
```
|
|
1349
|
+
|
|
1350
|
+
**Важно.** Пропсы в `defaults` пишутся в camelCase: `hideDetails`, а не `hide-details`.
|
|
1351
|
+
|
|
1352
|
+
Ключ компонента — это его имя из `defineOptions({ name })`, то есть `CdsButton`, `CdsTextInput`,
|
|
1353
|
+
`CdsCardActions` и так далее. Имена подкомпонентов (`CdsCardTitle`, `CdsListItem`) работают так же,
|
|
1354
|
+
как имена корневых.
|
|
1355
|
+
|
|
1356
|
+
### Порядок разрешения значения
|
|
1357
|
+
|
|
1358
|
+
Для каждого пропса CDS берёт первое подходящее значение:
|
|
1359
|
+
|
|
1360
|
+
1. проп, явно переданный в шаблоне;
|
|
1361
|
+
2. `defaults.<ИмяКомпонента>.<проп>` из ближайшего контекста дефолтов;
|
|
1362
|
+
3. `defaults.global.<проп>`;
|
|
1363
|
+
4. значение по умолчанию, объявленное в самом компоненте.
|
|
1364
|
+
|
|
1365
|
+
Явно переданный проп всегда выигрывает — дефолты не могут «перебить» шаблон.
|
|
1366
|
+
|
|
1367
|
+
### Изменение дефолтов в рантайме
|
|
1368
|
+
|
|
1369
|
+
`createCds` возвращает инстанс, у которого дефолты лежат в реактивной ссылке. Их можно менять
|
|
1370
|
+
на лету — все смонтированные компоненты пересчитаются:
|
|
1371
|
+
|
|
1372
|
+
```ts
|
|
1373
|
+
const cds = createCds({ components, directives });
|
|
1374
|
+
|
|
1375
|
+
// например, включить компактный режим по настройке пользователя
|
|
1376
|
+
cds.defaults.value = {
|
|
1377
|
+
...cds.defaults.value,
|
|
1378
|
+
global: { size: 'sm' }
|
|
1379
|
+
};
|
|
1380
|
+
```
|
|
1381
|
+
|
|
1382
|
+
## Контекстные дефолты
|
|
1383
|
+
|
|
1384
|
+
Дефолты можно задать для компонентов, вложенных в другой компонент. Например, чтобы все кнопки
|
|
1385
|
+
внутри карточки по умолчанию были вторичными:
|
|
1386
|
+
|
|
1387
|
+
```ts
|
|
1388
|
+
createCds({
|
|
1389
|
+
defaults: {
|
|
1390
|
+
CdsCard: {
|
|
1391
|
+
CdsButton: { appearance: 'secondary' }
|
|
1392
|
+
}
|
|
1393
|
+
}
|
|
1394
|
+
});
|
|
1395
|
+
```
|
|
1396
|
+
|
|
1397
|
+
Правило простое: ключ с заглавной буквы — это имя вложенного компонента, ключ со строчной —
|
|
1398
|
+
проп текущего компонента. Вложенность не ограничена одним уровнем:
|
|
1399
|
+
|
|
1400
|
+
```ts
|
|
1401
|
+
createCds({
|
|
1402
|
+
defaults: {
|
|
1403
|
+
CdsCard: {
|
|
1404
|
+
CdsCardActions: {
|
|
1405
|
+
CdsButton: { appearance: 'tertiary', size: 'sm' }
|
|
1406
|
+
}
|
|
1407
|
+
}
|
|
1408
|
+
}
|
|
1409
|
+
});
|
|
1410
|
+
```
|
|
1411
|
+
|
|
1412
|
+
Тот же механизм библиотека использует внутри себя, чтобы группирующие компоненты раздавали
|
|
1413
|
+
свои настройки детям:
|
|
1414
|
+
|
|
1415
|
+
- `CdsButtonGroup` задаёт вложенным `CdsButton` пропсы `appearance`, `color`, `baseColor`, `size`;
|
|
1416
|
+
- `CdsTagGroup` задаёт `CdsTag` пропсы `color`, `activeColor`, `disabled`, `filter`;
|
|
1417
|
+
- `CdsSelectionControlGroup` раздаёт настройки контролам, имя целевого компонента задаётся
|
|
1418
|
+
пропом `defaultsTarget` (`CdsCheckbox`, `CdsRadio` и т. д.);
|
|
1419
|
+
- так же работают `CdsTabs`, `CdsSteps`, `CdsList`, `CdsBreadcrumbs`, `CdsButtonToggle`,
|
|
1420
|
+
`CdsExpandablePanels`, `CdsOtpInput`.
|
|
1421
|
+
|
|
1422
|
+
Поэтому `<CdsButtonGroup size="sm">` делает маленькими все кнопки внутри — вам не нужно
|
|
1423
|
+
проставлять `size` каждой.
|
|
1424
|
+
|
|
1425
|
+
## Глобальные класс и стиль
|
|
1426
|
+
|
|
1427
|
+
В дефолтах компонента, помимо пропсов, можно задать `class` и `style`. Это удобный способ
|
|
1428
|
+
навесить продуктовые правила на все экземпляры компонента, не трогая шаблоны:
|
|
1429
|
+
|
|
1430
|
+
```ts
|
|
1431
|
+
createCds({
|
|
1432
|
+
defaults: {
|
|
1433
|
+
CdsButton: {
|
|
1434
|
+
class: 'my-button'
|
|
1435
|
+
}
|
|
1436
|
+
}
|
|
1437
|
+
});
|
|
1438
|
+
```
|
|
1439
|
+
|
|
1440
|
+
Работает любое значение, которое принимает Vue, — строка, объект, массив:
|
|
1441
|
+
|
|
1442
|
+
```ts
|
|
1443
|
+
createCds({
|
|
1444
|
+
defaults: {
|
|
1445
|
+
CdsButton: {
|
|
1446
|
+
style: [{ textTransform: 'none' }]
|
|
1447
|
+
}
|
|
1448
|
+
}
|
|
1449
|
+
});
|
|
1450
|
+
```
|
|
1451
|
+
|
|
1452
|
+
В отличие от обычных пропсов, `class` и `style` не перезаписываются шаблоном, а **объединяются**
|
|
1453
|
+
с ним. То есть `<CdsButton class="mt-200">` получит и `my-button`, и `mt-200`.
|
|
1454
|
+
|
|
1455
|
+
**Важно.** `class` и `style` работают только в ключе конкретного компонента. В `global` они
|
|
1456
|
+
игнорируются.
|
|
1457
|
+
|
|
1458
|
+
## Алиасы
|
|
1459
|
+
|
|
1460
|
+
Алиас — это тот же компонент, зарегистрированный под другим именем и со своими дефолтами.
|
|
1461
|
+
Из алиасов удобно собирать «продуктовые» варианты компонентов.
|
|
1462
|
+
|
|
1463
|
+
```ts
|
|
1464
|
+
import { createCds, components, directives, CdsButton } from '@central-design-system/components';
|
|
1465
|
+
|
|
1466
|
+
const cds = createCds({
|
|
1467
|
+
components,
|
|
1468
|
+
directives,
|
|
1469
|
+
aliases: {
|
|
1470
|
+
CdsButtonPrimary: CdsButton,
|
|
1471
|
+
CdsButtonDanger: CdsButton
|
|
1472
|
+
},
|
|
1473
|
+
defaults: {
|
|
1474
|
+
CdsButtonPrimary: {
|
|
1475
|
+
appearance: 'primary',
|
|
1476
|
+
class: 'my-button--primary'
|
|
1477
|
+
},
|
|
1478
|
+
CdsButtonDanger: {
|
|
1479
|
+
appearance: 'primary',
|
|
1480
|
+
color: 'red',
|
|
1481
|
+
class: 'my-button--danger'
|
|
1482
|
+
}
|
|
1483
|
+
}
|
|
1484
|
+
});
|
|
1485
|
+
```
|
|
1486
|
+
|
|
1487
|
+
Алиасы регистрируются глобально, поэтому в шаблоне их можно использовать сразу:
|
|
1488
|
+
|
|
1489
|
+
```vue
|
|
1490
|
+
<template>
|
|
1491
|
+
<CdsButtonPrimary>Сохранить</CdsButtonPrimary>
|
|
1492
|
+
<CdsButtonDanger class="ml-200">Удалить</CdsButtonDanger>
|
|
1493
|
+
</template>
|
|
1494
|
+
```
|
|
1495
|
+
|
|
1496
|
+
**Важно.** Алиас не наследует дефолты базового компонента. Если в конфигурации есть
|
|
1497
|
+
`defaults.CdsButton`, к `<CdsButtonPrimary>` они не применятся — дефолты ищутся по имени алиаса.
|
|
1498
|
+
Общие настройки для обоих выносите в `global` или дублируйте в ключе алиаса.
|
|
1499
|
+
|
|
1500
|
+
## Дефолты для части приложения
|
|
1501
|
+
|
|
1502
|
+
Чтобы задать дефолты не глобально, а в поддереве, используйте компонент `CdsDefaultsProvider`.
|
|
1503
|
+
На нём же построена панель Controls в Storybook: значения из панели применяются
|
|
1504
|
+
к компонентам примера как дефолты.
|
|
1505
|
+
|
|
1506
|
+
```vue
|
|
1507
|
+
<script setup lang="ts">
|
|
1508
|
+
import { CdsButton, CdsDefaultsProvider } from '@central-design-system/components';
|
|
1509
|
+
</script>
|
|
1510
|
+
|
|
1511
|
+
<template>
|
|
1512
|
+
<CdsDefaultsProvider :defaults="{ CdsButton: { appearance: 'tertiary', size: 'sm' } }">
|
|
1513
|
+
<CdsButton>Второстепенная маленькая кнопка</CdsButton>
|
|
1514
|
+
</CdsDefaultsProvider>
|
|
1515
|
+
</template>
|
|
1516
|
+
```
|
|
1517
|
+
|
|
1518
|
+
| Проп | Тип | Назначение |
|
|
1519
|
+
| ---------- | ------------------- | -------------------------------------------------------------------------------------------- |
|
|
1520
|
+
| `defaults` | `DefaultsOptions` | Дефолты для поддерева; по умолчанию мержатся с унаследованными |
|
|
1521
|
+
| `scoped` | `boolean` | Не смешивать с родительскими дефолтами — действуют только заданные здесь |
|
|
1522
|
+
| `reset` | `number \| string` | Подняться на N уровней вверх по цепочке дефолтов |
|
|
1523
|
+
| `root` | `boolean \| string` | Вернуться к корневым дефолтам из `createCds`; строкой — к именованной группе внутри них |
|
|
1524
|
+
| `disabled` | `boolean` | Ничего не провайдить — поддерево получает дефолты родителя как есть |
|
|
1525
|
+
|
|
1526
|
+
Типичный сценарий `scoped` — «островок» в чужом окружении: вложенные группы (например,
|
|
1527
|
+
`CdsButtonGroup`) не должны навязывать свои настройки вашему блоку.
|
|
1528
|
+
|
|
1529
|
+
## Свои компоненты
|
|
1530
|
+
|
|
1531
|
+
Собственные компоненты приложения тоже могут участвовать в системе дефолтов. Для этого
|
|
1532
|
+
пропустите пропсы через `useDefaults`:
|
|
1533
|
+
|
|
1534
|
+
```vue
|
|
1535
|
+
<script setup lang="ts">
|
|
1536
|
+
import { useDefaults } from '@central-design-system/components';
|
|
1537
|
+
|
|
1538
|
+
const _props = defineProps<{ foo?: string }>();
|
|
1539
|
+
const props = useDefaults(_props, 'MyComponent');
|
|
1540
|
+
</script>
|
|
1541
|
+
|
|
1542
|
+
<template>
|
|
1543
|
+
<div>Я {{ props.foo }}</div>
|
|
1544
|
+
</template>
|
|
1545
|
+
```
|
|
1546
|
+
|
|
1547
|
+
У `useDefaults` два аргумента, оба опциональные:
|
|
1548
|
+
|
|
1549
|
+
- `props` — объект пропсов, возвращённый `defineProps`;
|
|
1550
|
+
- `name` — имя компонента, по которому ищется ключ в `defaults`. Если не передать, берётся имя
|
|
1551
|
+
из `defineOptions({ name })`, а при его отсутствии — имя файла.
|
|
1552
|
+
|
|
1553
|
+
Теперь компонент настраивается из общей конфигурации:
|
|
1554
|
+
|
|
1555
|
+
```ts
|
|
1556
|
+
createCds({
|
|
1557
|
+
defaults: {
|
|
1558
|
+
MyComponent: { foo: 'бар' }
|
|
1559
|
+
}
|
|
1560
|
+
});
|
|
1561
|
+
```
|
|
1562
|
+
|
|
1563
|
+
**Важно.** В шаблоне обращайтесь к `props.foo`, а не к `foo`. `useDefaults` возвращает прокси
|
|
1564
|
+
над пропсами, и распакованные `defineProps` переменные его минуют:
|
|
1565
|
+
|
|
1566
|
+
```diff
|
|
1567
|
+
-<div>Я {{ foo }}</div>
|
|
1568
|
+
+<div>Я {{ props.foo }}</div>
|
|
1569
|
+
```
|
|
1570
|
+
|
|
1571
|
+
### Вложенные дефолты в своих компонентах
|
|
1572
|
+
|
|
1573
|
+
Чтобы ваш компонент раздавал дефолты детям (как это делает `CdsButtonGroup`), достаточно
|
|
1574
|
+
вызвать `useDefaults()` без аргументов — вложенные ключи из его секции `defaults` уйдут в
|
|
1575
|
+
дочерний контекст:
|
|
1576
|
+
|
|
1577
|
+
```vue
|
|
1578
|
+
<script setup lang="ts">
|
|
1579
|
+
import { useDefaults } from '@central-design-system/components';
|
|
1580
|
+
|
|
1581
|
+
useDefaults();
|
|
1582
|
+
</script>
|
|
1583
|
+
|
|
1584
|
+
<template>
|
|
1585
|
+
<div class="my-panel">
|
|
1586
|
+
<slot />
|
|
1587
|
+
</div>
|
|
1588
|
+
</template>
|
|
1589
|
+
```
|
|
1590
|
+
|
|
1591
|
+
```ts
|
|
1592
|
+
createCds({
|
|
1593
|
+
defaults: {
|
|
1594
|
+
MyPanel: {
|
|
1595
|
+
CdsButton: { appearance: 'tertiary' }
|
|
1596
|
+
}
|
|
1597
|
+
}
|
|
1598
|
+
});
|
|
1599
|
+
```
|
|
1600
|
+
|
|
1601
|
+
Если дефолты детей зависят от пропсов компонента, используйте `provideDefaults` напрямую:
|
|
1602
|
+
|
|
1603
|
+
```vue
|
|
1604
|
+
<script setup lang="ts">
|
|
1605
|
+
import { provideDefaults } from '@central-design-system/components';
|
|
1606
|
+
import { toRef } from 'vue';
|
|
1607
|
+
|
|
1608
|
+
const props = defineProps<{ size?: 'sm' | 'md' }>();
|
|
1609
|
+
|
|
1610
|
+
provideDefaults({
|
|
1611
|
+
CdsButton: {
|
|
1612
|
+
size: toRef(() => props.size)
|
|
1613
|
+
}
|
|
1614
|
+
});
|
|
1615
|
+
</script>
|
|
1616
|
+
|
|
1617
|
+
<template>
|
|
1618
|
+
<div class="my-toolbar">
|
|
1619
|
+
<slot />
|
|
1620
|
+
</div>
|
|
1621
|
+
</template>
|
|
1622
|
+
```
|
|
1623
|
+
|
|
1624
|
+
## Blueprint — пресет конфигурации
|
|
1625
|
+
|
|
1626
|
+
Если один и тот же набор опций нужен нескольким приложениям, вынесите его в `blueprint`:
|
|
1627
|
+
это обычный объект опций `createCds`, на который сверху накладывается остальная конфигурация.
|
|
1628
|
+
|
|
1629
|
+
```ts
|
|
1630
|
+
import { createCds, components, directives } from '@central-design-system/components';
|
|
1631
|
+
import type { Blueprint } from '@central-design-system/components';
|
|
1632
|
+
|
|
1633
|
+
const productBlueprint: Blueprint = {
|
|
1634
|
+
theme: { defaultTheme: 'b2bLight' },
|
|
1635
|
+
defaults: {
|
|
1636
|
+
CdsButton: { appearance: 'secondary' }
|
|
1637
|
+
}
|
|
1638
|
+
};
|
|
1639
|
+
|
|
1640
|
+
const cds = createCds({
|
|
1641
|
+
blueprint: productBlueprint,
|
|
1642
|
+
components,
|
|
1643
|
+
directives,
|
|
1644
|
+
// перекрывает значение из blueprint
|
|
1645
|
+
defaults: {
|
|
1646
|
+
CdsButton: { size: 'sm' }
|
|
1647
|
+
}
|
|
1648
|
+
});
|
|
1649
|
+
```
|
|
1650
|
+
|
|
1651
|
+
Опции сливаются глубоко (`mergeDeep`), поэтому в примере выше у кнопок останется
|
|
1652
|
+
`appearance: 'secondary'` из пресета и добавится `size: 'sm'`.
|
|
1653
|
+
|
|
1654
|
+
---
|
|
1655
|
+
|
|
1656
|
+
# Интернационализация (i18n)
|
|
1657
|
+
|
|
1658
|
+
У компонентов CDS есть собственные тексты: «Отсутствуют данные» в селекте, подписи фильтров
|
|
1659
|
+
таблицы, `aria-label` кнопки закрытия, счётчик файлов. Все они идут через встроенный слой
|
|
1660
|
+
локализации, поэтому вы можете перевести их на другой язык, переопределить отдельную строку под
|
|
1661
|
+
свой продукт или переключать язык на лету — не переписывая компоненты.
|
|
1662
|
+
|
|
1663
|
+
В библиотеку встроены два словаря — русский и английский. По умолчанию активен `ru`, поэтому без
|
|
1664
|
+
настройки всё уже на русском.
|
|
1665
|
+
|
|
1666
|
+
## Настройка
|
|
1667
|
+
|
|
1668
|
+
Локаль настраивается опцией `locale` в `createCds`. Переключиться на встроенный английский —
|
|
1669
|
+
одна строка, словари для этого передавать не нужно:
|
|
1670
|
+
|
|
1671
|
+
```ts
|
|
1672
|
+
import { createApp } from 'vue';
|
|
1673
|
+
import '@central-design-system/components/styles';
|
|
1674
|
+
import { createCds, components, directives } from '@central-design-system/components';
|
|
1675
|
+
|
|
1676
|
+
import App from './App.vue';
|
|
1677
|
+
|
|
1678
|
+
const cds = createCds({
|
|
1679
|
+
components,
|
|
1680
|
+
directives,
|
|
1681
|
+
locale: {
|
|
1682
|
+
locale: 'en'
|
|
1683
|
+
}
|
|
1684
|
+
});
|
|
1685
|
+
|
|
1686
|
+
createApp(App).use(cds);
|
|
1687
|
+
```
|
|
1688
|
+
|
|
1689
|
+
Языки, которых в библиотеке нет, добавляются словарём в `messages`:
|
|
1690
|
+
|
|
1691
|
+
```ts
|
|
1692
|
+
import de from './locales/cds-de';
|
|
1693
|
+
|
|
1694
|
+
createCds({
|
|
1695
|
+
components,
|
|
1696
|
+
directives,
|
|
1697
|
+
locale: {
|
|
1698
|
+
locale: 'de',
|
|
1699
|
+
fallback: 'en',
|
|
1700
|
+
messages: { de }
|
|
1701
|
+
}
|
|
1702
|
+
});
|
|
1703
|
+
```
|
|
1704
|
+
|
|
1705
|
+
| Опция | Тип | Назначение |
|
|
1706
|
+
| ------------------ | ------------------------- | ----------------------------------------------------------------------------- |
|
|
1707
|
+
| `locale` | `string` | Активный язык; из коробки доступны `ru` (по умолчанию) и `en` |
|
|
1708
|
+
| `fallback` | `string` | Язык, из которого берётся строка, если в активном её нет; по умолчанию `ru` |
|
|
1709
|
+
| `messages` | `LocaleMessages` | Словари дополнительных языков; словарь одноимённого встроенного заменяется целиком |
|
|
1710
|
+
| `decimalSeparator` | `string` | Разделитель дробной части; по умолчанию выводится из активной локали |
|
|
1711
|
+
| `rtl` | `Record<string, boolean>` | Карта языков с письмом справа налево (см. [RTL](#rtl)) |
|
|
1712
|
+
| `adapter` | `LocaleInstance` | Свой движок переводов вместо встроенного (см. [Свой адаптер](#свои-адаптер)) |
|
|
1713
|
+
|
|
1714
|
+
Встроенные словари доступны и вам — они лежат в экспорте `locales`. Берите их за основу для
|
|
1715
|
+
своего языка или чтобы поправить пару строк:
|
|
1716
|
+
|
|
1717
|
+
```ts
|
|
1718
|
+
import { locales } from '@central-design-system/components';
|
|
1719
|
+
|
|
1720
|
+
locales.ru; // русский словарь
|
|
1721
|
+
locales.en; // английский словарь
|
|
1722
|
+
```
|
|
1723
|
+
|
|
1724
|
+
Полный набор ключей — в разделе [Ключи сообщений](#ключи-сообщении).
|
|
1725
|
+
|
|
1726
|
+
## Как компоненты берут текст
|
|
1727
|
+
|
|
1728
|
+
Строки компонентов — это ключи с префиксом `$cds.`, которые библиотека прогоняет через функцию
|
|
1729
|
+
перевода. Часть ключей объявлена значениями пропсов по умолчанию, поэтому их видно в API:
|
|
1730
|
+
`text` у `CdsFileUpload` — `$cds.fileUpload.browse`, `closeLabel` у `CdsNotification` — `$cds.close`,
|
|
1731
|
+
`noDataText` у `CdsSelect` — `$cds.noDataText`.
|
|
1732
|
+
|
|
1733
|
+
Отсюда три способа поменять текст.
|
|
1734
|
+
|
|
1735
|
+
**Сменить язык целиком** — опцией `locale`:
|
|
1736
|
+
|
|
1737
|
+
```ts
|
|
1738
|
+
createCds({ locale: { locale: 'en' } });
|
|
1739
|
+
```
|
|
1740
|
+
|
|
1741
|
+
**Поменять надписи во всём продукте** — словарём поверх встроенного:
|
|
1742
|
+
|
|
1743
|
+
```ts
|
|
1744
|
+
import { createCds, locales } from '@central-design-system/components';
|
|
1745
|
+
|
|
1746
|
+
createCds({
|
|
1747
|
+
locale: {
|
|
1748
|
+
messages: {
|
|
1749
|
+
ru: { ...locales.ru, noDataText: 'Ничего не нашлось' }
|
|
1750
|
+
}
|
|
1751
|
+
}
|
|
1752
|
+
});
|
|
1753
|
+
```
|
|
1754
|
+
|
|
1755
|
+
**Важно.** Словарь языка заменяется целиком, а не сливается по ключам. Без спреда
|
|
1756
|
+
`...locales.ru` в русской локали останется один ключ, а остальные строки превратятся
|
|
1757
|
+
в свои же ключи (`$cds.close` вместо «Закрыть»). Вложенные секции спредьте отдельно:
|
|
1758
|
+
`table: { ...locales.ru.table, emptyText: '…' }`.
|
|
1759
|
+
|
|
1760
|
+
**Поменять одну надпись в одном месте** — пропсом:
|
|
1761
|
+
|
|
1762
|
+
```vue
|
|
1763
|
+
<CdsSelect :items="items" no-data-text="Подходящих поставщиков нет" />
|
|
1764
|
+
```
|
|
1765
|
+
|
|
1766
|
+
Тот же проп можно задать значением по умолчанию для всех экземпляров компонента —
|
|
1767
|
+
см. глобальную конфигурацию:
|
|
1768
|
+
|
|
1769
|
+
```ts
|
|
1770
|
+
createCds({
|
|
1771
|
+
defaults: {
|
|
1772
|
+
CdsSelect: { noDataText: 'Ничего не нашлось' }
|
|
1773
|
+
}
|
|
1774
|
+
});
|
|
1775
|
+
```
|
|
1776
|
+
|
|
1777
|
+
Функция перевода принимает и обычный текст: строка без префикса `$cds.` возвращается как есть,
|
|
1778
|
+
подставляя параметры. Так пропсы с локализуемым значением работают одинаково и с ключом,
|
|
1779
|
+
и с готовой фразой.
|
|
1780
|
+
|
|
1781
|
+
Если ключа нет ни в активной локали, ни в `fallback`, компонент покажет сам ключ, а в dev-режиме
|
|
1782
|
+
в консоли появится предупреждение `[CDS: useLocale] Translation key … not found`.
|
|
1783
|
+
|
|
1784
|
+
## Смена языка в рантайме
|
|
1785
|
+
|
|
1786
|
+
`createCds` возвращает инстанс, у которого локаль лежит в реактивных ссылках — переключение
|
|
1787
|
+
языка достаточно записать в `current`:
|
|
1788
|
+
|
|
1789
|
+
```ts
|
|
1790
|
+
const cds = createCds({ components, directives });
|
|
1791
|
+
|
|
1792
|
+
// например, по выбору пользователя в настройках профиля
|
|
1793
|
+
cds.locale.current.value = 'en';
|
|
1794
|
+
```
|
|
1795
|
+
|
|
1796
|
+
Внутри компонентов то же делает композабл `useLocale`:
|
|
1797
|
+
|
|
1798
|
+
```vue
|
|
1799
|
+
<script setup lang="ts">
|
|
1800
|
+
import { CdsButton, CdsButtonToggle, useLocale } from '@central-design-system/components';
|
|
1801
|
+
|
|
1802
|
+
const { current } = useLocale();
|
|
1803
|
+
</script>
|
|
1804
|
+
|
|
1805
|
+
<template>
|
|
1806
|
+
<CdsButtonToggle v-model="current" appearance="tertiary">
|
|
1807
|
+
<CdsButton value="ru" text="Русский" />
|
|
1808
|
+
<CdsButton value="en" text="English" />
|
|
1809
|
+
</CdsButtonToggle>
|
|
1810
|
+
</template>
|
|
1811
|
+
```
|
|
1812
|
+
|
|
1813
|
+
Все смонтированные компоненты пересчитают свои строки сами — перезагрузка страницы не нужна.
|
|
1814
|
+
|
|
1815
|
+
## Локаль для части приложения
|
|
1816
|
+
|
|
1817
|
+
Отдельному поддереву можно задать свой язык — например, показать англоязычный виджет внутри
|
|
1818
|
+
русского интерфейса. Для этого в компоненте-обёртке вызовите `provideLocale`: он берёт локаль
|
|
1819
|
+
из контекста, накладывает переданные пропсы и провайдит результат детям.
|
|
1820
|
+
|
|
1821
|
+
```vue
|
|
1822
|
+
<script setup lang="ts">
|
|
1823
|
+
import { provideLocale } from '@central-design-system/components';
|
|
1824
|
+
|
|
1825
|
+
const props = defineProps<{ locale?: string; fallback?: string }>();
|
|
1826
|
+
|
|
1827
|
+
provideLocale(props);
|
|
1828
|
+
</script>
|
|
1829
|
+
|
|
1830
|
+
<template>
|
|
1831
|
+
<div>
|
|
1832
|
+
<slot />
|
|
1833
|
+
</div>
|
|
1834
|
+
</template>
|
|
1835
|
+
```
|
|
1836
|
+
|
|
1837
|
+
```vue
|
|
1838
|
+
<template>
|
|
1839
|
+
<LocaleProvider locale="en">
|
|
1840
|
+
<CdsSelect :items="items" />
|
|
1841
|
+
</LocaleProvider>
|
|
1842
|
+
</template>
|
|
1843
|
+
```
|
|
1844
|
+
|
|
1845
|
+
Не переданные пропсы наследуются от родительской локали, поэтому обёртка с одним `locale`
|
|
1846
|
+
не теряет ни `fallback`, ни словари.
|
|
1847
|
+
|
|
1848
|
+
## useLocale
|
|
1849
|
+
|
|
1850
|
+
Композабл отдаёт текущую локаль и её функции — используйте его в своих компонентах, чтобы их
|
|
1851
|
+
тексты жили в тех же словарях, что и тексты CDS.
|
|
1852
|
+
|
|
1853
|
+
```vue
|
|
1854
|
+
<script setup lang="ts">
|
|
1855
|
+
import { useLocale } from '@central-design-system/components';
|
|
1856
|
+
|
|
1857
|
+
const { t, n } = useLocale();
|
|
1858
|
+
</script>
|
|
1859
|
+
|
|
1860
|
+
<template>
|
|
1861
|
+
<p>{{ t('$cds.table.emptyText') }}</p>
|
|
1862
|
+
<p>{{ n(1234.56) }}</p>
|
|
1863
|
+
</template>
|
|
1864
|
+
```
|
|
1865
|
+
|
|
1866
|
+
| Свойство | Тип | Назначение |
|
|
1867
|
+
| ------------------ | ---------------------------------------------- | ------------------------------------------------------------- |
|
|
1868
|
+
| `t` | `(key: string, ...params: unknown[]) => string` | Перевод ключа `$cds.…` с подстановкой параметров |
|
|
1869
|
+
| `n` | `(value: number) => string` | Форматирование числа по активной локали |
|
|
1870
|
+
| `current` | `Ref<string>` | Активный язык; запись меняет язык |
|
|
1871
|
+
| `fallback` | `Ref<string>` | Язык-подстраховка |
|
|
1872
|
+
| `messages` | `Ref<LocaleMessages>` | Словари; можно дописывать в рантайме |
|
|
1873
|
+
| `decimalSeparator` | `ShallowRef<string>` | Разделитель дробной части активной локали |
|
|
1874
|
+
|
|
1875
|
+
Параметры в строках нумерованные — `{0}`, `{1}`:
|
|
1876
|
+
|
|
1877
|
+
```ts
|
|
1878
|
+
const { t } = useLocale();
|
|
1879
|
+
|
|
1880
|
+
t('$cds.carousel.delimiter', 3, 8); // «Слайд 3 из 8»
|
|
1881
|
+
t('Осталось дней: {0}', 5); // «Осталось дней: 5»
|
|
1882
|
+
```
|
|
1883
|
+
|
|
1884
|
+
`n` под капотом — `Intl.NumberFormat` с активной локалью и `fallback`, так что разделители групп
|
|
1885
|
+
и дробной части приходят из браузера. `decimalSeparator` библиотека выводит из той же локали
|
|
1886
|
+
(`,` для `ru`, `.` для `en`); если в продукте принят другой — задайте его явно в `createCds`.
|
|
1887
|
+
|
|
1888
|
+
## Даты
|
|
1889
|
+
|
|
1890
|
+
Названия месяцев и дней недели живут в отдельных date-локалях: их везут `ru` и `en`. Компоненты
|
|
1891
|
+
даты и времени берут date-локаль по активному языку, поэтому после `current.value = 'en'` календарь
|
|
1892
|
+
переключится сам.
|
|
1893
|
+
|
|
1894
|
+
Одному компоненту язык задаётся пропом `locale` — он есть у `CdsDatePicker`, `CdsDateInput`
|
|
1895
|
+
и `CdsTimePicker`:
|
|
1896
|
+
|
|
1897
|
+
```vue
|
|
1898
|
+
<CdsDatePicker v-model="value" locale="en" :first-day-of-week="0" header />
|
|
1899
|
+
```
|
|
1900
|
+
|
|
1901
|
+
Проп принимает не только имя языка, но и свой объект date-локали (тип `TDateLocale`) — так
|
|
1902
|
+
подключается язык, которого в библиотеке нет. Встроенные date-локали для сверки и переиспользования
|
|
1903
|
+
лежат в том же экспорте `locales`: `locales.ruDate`, `locales.enDate` и карта `locales.dateLocales`.
|
|
1904
|
+
|
|
1905
|
+
```ts
|
|
1906
|
+
const de = {
|
|
1907
|
+
days: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
|
|
1908
|
+
daysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
|
|
1909
|
+
months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
|
|
1910
|
+
monthsLong: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
|
|
1911
|
+
monthsShort: 'Jan_Feb_Mär_Apr_Mai_Jun_Jul_Aug_Sep_Okt_Nov_Dez'.split('_'),
|
|
1912
|
+
today: 'Heute',
|
|
1913
|
+
now: 'Jetzt',
|
|
1914
|
+
firstDayOfWeek: 1,
|
|
1915
|
+
format24h: true,
|
|
1916
|
+
pluralDay: (day = 0) => (day === 1 ? 'Tag' : 'Tage')
|
|
1917
|
+
};
|
|
1918
|
+
```
|
|
1919
|
+
|
|
1920
|
+
```vue
|
|
1921
|
+
<CdsDatePicker v-model="value" :locale="de" />
|
|
1922
|
+
```
|
|
1923
|
+
|
|
1924
|
+
## Таблица
|
|
1925
|
+
|
|
1926
|
+
`CdsTable` собирает свои подписи из ключей `$cds.table.*`, но принимает и точечное
|
|
1927
|
+
переопределение пропом `locale` — он перекрывает только переданные строки:
|
|
1928
|
+
|
|
1929
|
+
```vue
|
|
1930
|
+
<CdsTable :columns="columns" :data="data" :locale="{ emptyText: 'Заявок пока нет' }" />
|
|
1931
|
+
```
|
|
1932
|
+
|
|
1933
|
+
## RTL
|
|
1934
|
+
|
|
1935
|
+
Языки с письмом справа налево описываются картой `rtl`: ключ — язык, значение — направление.
|
|
1936
|
+
|
|
1937
|
+
```ts
|
|
1938
|
+
createCds({
|
|
1939
|
+
locale: {
|
|
1940
|
+
locale: 'ar',
|
|
1941
|
+
messages: { ar },
|
|
1942
|
+
rtl: { ar: true }
|
|
1943
|
+
}
|
|
1944
|
+
});
|
|
1945
|
+
```
|
|
1946
|
+
|
|
1947
|
+
Компоненты читают направление через `useRtl` и разворачивают то, что зависит от оси: сторону
|
|
1948
|
+
раскрытия меню и тултипов, стрелки пагинации, порядок ячеек `CdsOtpInput`, заливку
|
|
1949
|
+
`CdsProgressBar`. Отступы и границы в стилях в основном описаны логическими свойствами
|
|
1950
|
+
(`margin-inline`, `inset-inline`) и зеркалятся браузером сами — но полноценной поддержки RTL
|
|
1951
|
+
дизайн-система пока не заявляет, отдельные места потребуют доводки на вашей стороне.
|
|
1952
|
+
|
|
1953
|
+
Атрибут направления библиотека за вас не проставляет — повесьте его на корень приложения сами:
|
|
1954
|
+
|
|
1955
|
+
```vue
|
|
1956
|
+
<script setup lang="ts">
|
|
1957
|
+
import { useRtl } from '@central-design-system/components';
|
|
1958
|
+
|
|
1959
|
+
const { isRtl } = useRtl();
|
|
1960
|
+
</script>
|
|
1961
|
+
|
|
1962
|
+
<template>
|
|
1963
|
+
<div :dir="isRtl ? 'rtl' : 'ltr'">
|
|
1964
|
+
<slot />
|
|
1965
|
+
</div>
|
|
1966
|
+
</template>
|
|
1967
|
+
```
|
|
1968
|
+
|
|
1969
|
+
`useRtl` отдаёт `isRtl` и `rtlClasses` — готовый класс `cds-locale--is-rtl` / `cds-locale--is-ltr`
|
|
1970
|
+
для ваших собственных стилей.
|
|
1971
|
+
|
|
1972
|
+
## Свой адаптер
|
|
1973
|
+
|
|
1974
|
+
Если в приложении уже есть i18n-библиотека, отдайте переводы ей: опция `adapter` принимает любой
|
|
1975
|
+
объект, реализующий интерфейс `LocaleInstance`. Тогда `messages`, `locale` и `fallback` из
|
|
1976
|
+
`createCds` не используются — источником истины становится ваш движок, а строки CDS живут
|
|
1977
|
+
в общих словарях приложения под ключом `$cds`.
|
|
1978
|
+
|
|
1979
|
+
```ts
|
|
1980
|
+
import type { LocaleInstance, LocaleOptions } from '@central-design-system/components';
|
|
1981
|
+
import { toRef } from 'vue';
|
|
1982
|
+
import type { I18n } from 'vue-i18n';
|
|
1983
|
+
|
|
1984
|
+
export function createVueI18nAdapter(i18n: I18n<any, any, any, string, false>): LocaleInstance {
|
|
1985
|
+
const format = (value: number) => i18n.global.n(value);
|
|
1986
|
+
|
|
1987
|
+
return {
|
|
1988
|
+
name: 'vue-i18n',
|
|
1989
|
+
current: i18n.global.locale,
|
|
1990
|
+
fallback: i18n.global.fallbackLocale as never,
|
|
1991
|
+
messages: i18n.global.messages as never,
|
|
1992
|
+
decimalSeparator: toRef(() => (format(0.1).includes(',') ? ',' : '.')),
|
|
1993
|
+
t: (key, ...params) => i18n.global.t(key, params as never),
|
|
1994
|
+
n: format,
|
|
1995
|
+
provide: () => createVueI18nAdapter(i18n)
|
|
1996
|
+
};
|
|
1997
|
+
}
|
|
1998
|
+
```
|
|
1999
|
+
|
|
2000
|
+
```ts
|
|
2001
|
+
import { createI18n } from 'vue-i18n';
|
|
2002
|
+
|
|
2003
|
+
const i18n = createI18n({
|
|
2004
|
+
legacy: false,
|
|
2005
|
+
locale: 'ru',
|
|
2006
|
+
messages: {
|
|
2007
|
+
ru: {
|
|
2008
|
+
$cds: { noDataText: 'Отсутствуют данные' },
|
|
2009
|
+
profile: { title: 'Профиль' }
|
|
2010
|
+
}
|
|
2011
|
+
}
|
|
2012
|
+
});
|
|
2013
|
+
|
|
2014
|
+
const cds = createCds({
|
|
2015
|
+
components,
|
|
2016
|
+
directives,
|
|
2017
|
+
locale: {
|
|
2018
|
+
adapter: createVueI18nAdapter(i18n)
|
|
2019
|
+
}
|
|
2020
|
+
});
|
|
2021
|
+
```
|
|
2022
|
+
|
|
2023
|
+
Обязательные члены `LocaleInstance`: `name` (по нему адаптер и распознаётся), `current`,
|
|
2024
|
+
`fallback`, `messages`, `decimalSeparator`, `t`, `n` и `provide` — фабрика вложенной локали
|
|
2025
|
+
для `provideLocale`. Если поддержка «локали в поддереве» вам не нужна, `provide` может возвращать
|
|
2026
|
+
тот же инстанс, как в примере выше.
|
|
2027
|
+
|
|
2028
|
+
## Ключи сообщений
|
|
2029
|
+
|
|
2030
|
+
Встроенный русский словарь — шаблон для перевода на новый язык. Скопируйте его, переведите
|
|
2031
|
+
значения и передайте в `messages` под ключом своего языка; его английская версия доступна как
|
|
2032
|
+
`locales.en`.
|
|
2033
|
+
|
|
2034
|
+
```ts
|
|
2035
|
+
export default {
|
|
2036
|
+
badge: 'Бейдж',
|
|
2037
|
+
noDataText: 'Отсутствуют данные',
|
|
2038
|
+
selectAll: 'Выбрать все',
|
|
2039
|
+
close: 'Закрыть',
|
|
2040
|
+
open: 'Открыть',
|
|
2041
|
+
dismiss: 'Отклонить',
|
|
2042
|
+
confirmEdit: {
|
|
2043
|
+
ok: 'ОК',
|
|
2044
|
+
cancel: 'Отмена'
|
|
2045
|
+
},
|
|
2046
|
+
carousel: {
|
|
2047
|
+
prev: 'Предыдущий слайд',
|
|
2048
|
+
next: 'Следующий слайд',
|
|
2049
|
+
delimiter: 'Слайд {0} из {1}'
|
|
2050
|
+
},
|
|
2051
|
+
input: {
|
|
2052
|
+
clear: 'Очистить {0}',
|
|
2053
|
+
otp: 'Введите одноразовый код',
|
|
2054
|
+
prependAction: '{0} предварительных действий',
|
|
2055
|
+
appendAction: '{0} добавочных действий'
|
|
2056
|
+
},
|
|
2057
|
+
fileInput: {
|
|
2058
|
+
counter: 'Файлов: {0}',
|
|
2059
|
+
counterSize: 'Файлов: {0} ({1} всего)'
|
|
2060
|
+
},
|
|
2061
|
+
fileUpload: {
|
|
2062
|
+
title: 'Перетащите файлы сюда',
|
|
2063
|
+
divider: 'или',
|
|
2064
|
+
browse: 'Выберите файлы'
|
|
2065
|
+
},
|
|
2066
|
+
steps: {
|
|
2067
|
+
prev: 'Назад',
|
|
2068
|
+
next: 'Далее'
|
|
2069
|
+
},
|
|
2070
|
+
table: {
|
|
2071
|
+
filterTitle: 'Фильтр меню',
|
|
2072
|
+
filterConfirm: 'Выбрать',
|
|
2073
|
+
filterReset: 'Сброс',
|
|
2074
|
+
filterEmptyText: 'Нет фильтров',
|
|
2075
|
+
filterCheckAll: 'Выбрать все элементы',
|
|
2076
|
+
filterSearchPlaceholder: 'Поиск фильтров',
|
|
2077
|
+
emptyText: 'Нет данных',
|
|
2078
|
+
selectAll: 'Выбрать текущую страницу',
|
|
2079
|
+
selectInvert: 'Инвертировать текущую страницу',
|
|
2080
|
+
selectNone: 'Очистить все данные',
|
|
2081
|
+
selectionAll: 'Выбрать все данные',
|
|
2082
|
+
sortTitle: 'Сортировка',
|
|
2083
|
+
expand: 'Раскрыть строку',
|
|
2084
|
+
collapse: 'Свернуть строку',
|
|
2085
|
+
triggerDesc: 'Отсортировать по убыванию',
|
|
2086
|
+
triggerAsc: 'Отсортировать по возрастанию',
|
|
2087
|
+
cancelSort: 'Отменить сортировку',
|
|
2088
|
+
showed: 'Отображено',
|
|
2089
|
+
from: 'из',
|
|
2090
|
+
rowOnPage: 'Строк на странице'
|
|
2091
|
+
},
|
|
2092
|
+
uploader: {
|
|
2093
|
+
uploading: 'Загрузка...',
|
|
2094
|
+
uploadFile: 'Загрузить файл',
|
|
2095
|
+
downloadFile: 'Скачать файл',
|
|
2096
|
+
removeFile: 'Удалить файл',
|
|
2097
|
+
uploadError: 'Ошибка загрузки',
|
|
2098
|
+
previewFile: 'Предпросмотр файла'
|
|
2099
|
+
}
|
|
2100
|
+
};
|
|
2101
|
+
```
|
|
2102
|
+
|
|
2103
|
+
Словарь можно оставить неполным: недостающие ключи возьмутся из `fallback`, то есть по умолчанию
|
|
2104
|
+
из русского.
|