dxd-style-code 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dxd-style-code.js +11974 -3725
- package/dist/dxd-style-code.umd.cjs +10 -1
- package/dist/style.css +1 -1
- package/package.json +14 -6
- package/src/components/atoms/DXAvatar/DXAvatar.stories.js +319 -0
- package/src/components/atoms/DXAvatar/DXAvatar.vue +167 -0
- package/src/components/atoms/DXAvatar/index.js +2 -0
- package/src/components/atoms/DXBackdrop/DXBackdrop.stories.js +341 -0
- package/src/components/atoms/DXBackdrop/DXBackdrop.vue +102 -0
- package/src/components/atoms/DXBackdrop/index.js +2 -0
- package/src/components/atoms/DXBadge/DXBadge.stories.js +239 -0
- package/src/components/atoms/DXBadge/DXBadge.vue +45 -0
- package/src/components/atoms/DXBadge/index.js +2 -0
- package/src/components/atoms/DXButton/DXButton.stories.js +178 -0
- package/src/components/atoms/DXButton/DXButton.vue +84 -0
- package/src/components/atoms/DXButton/index.js +2 -0
- package/src/components/atoms/DXCard/DXCard.stories.js +133 -0
- package/src/components/atoms/DXCard/DXCard.vue +46 -0
- package/src/components/atoms/DXCard/index.js +2 -0
- package/src/components/atoms/DXCheckbox/DXCheckbox.stories.js +294 -0
- package/src/components/atoms/DXCheckbox/DXCheckbox.vue +191 -0
- package/src/components/atoms/DXCheckbox/index.js +2 -0
- package/src/components/atoms/DXDivider/DXDivider.stories.js +135 -0
- package/src/components/atoms/DXDivider/DXDivider.vue +74 -0
- package/src/components/atoms/DXDivider/index.js +2 -0
- package/src/components/atoms/DXDropdownItem/DXDropdownItem.vue +116 -0
- package/src/components/atoms/DXDropdownItem/index.js +2 -0
- package/src/components/atoms/DXFormLabel/DXFormLabel.stories.js +194 -0
- package/src/components/atoms/DXFormLabel/DXFormLabel.vue +94 -0
- package/src/components/atoms/DXFormLabel/index.js +2 -0
- package/src/components/atoms/DXIcon/DXIcon.stories.js +156 -0
- package/src/components/atoms/DXIcon/DXIcon.vue +102 -0
- package/src/components/atoms/DXIcon/index.js +3 -0
- package/src/components/atoms/DXIconWrapper/DXIconWrapper.stories.js +237 -0
- package/src/components/atoms/DXIconWrapper/DXIconWrapper.vue +79 -0
- package/src/components/atoms/DXIconWrapper/index.js +2 -0
- package/src/components/atoms/DXInputAddon/DXInputAddon.stories.js +230 -0
- package/src/components/atoms/DXInputAddon/DXInputAddon.vue +64 -0
- package/src/components/atoms/DXInputAddon/index.js +2 -0
- package/src/components/atoms/DXLink/DXLink.stories.js +475 -0
- package/src/components/atoms/DXLink/DXLink.vue +229 -0
- package/src/components/atoms/DXLink/index.js +2 -0
- package/src/components/atoms/DXLoader/DXLoader.stories.js +280 -0
- package/src/components/atoms/DXLoader/DXLoader.vue +78 -0
- package/src/components/atoms/DXLoader/index.js +2 -0
- package/src/components/atoms/DXProgress/DXProgress.stories.js +312 -0
- package/src/components/atoms/DXProgress/DXProgress.vue +85 -0
- package/src/components/atoms/DXProgress/index.js +2 -0
- package/src/components/atoms/DXQuote/DXQuote.stories.js +255 -0
- package/src/components/atoms/DXQuote/DXQuote.vue +97 -0
- package/src/components/atoms/DXQuote/index.js +2 -0
- package/src/components/atoms/DXRadio/DXRadio.stories.js +277 -0
- package/src/components/atoms/DXRadio/DXRadio.vue +144 -0
- package/src/components/atoms/DXRadio/index.js +2 -0
- package/src/components/atoms/DXSkeleton/DXSkeleton.stories.js +50 -0
- package/src/components/atoms/DXSkeleton/DXSkeleton.vue +19 -0
- package/src/components/atoms/DXSkeleton/index.js +2 -0
- package/src/components/atoms/DXSlider/DXSlider.stories.js +522 -0
- package/src/components/atoms/DXSlider/DXSlider.vue +338 -0
- package/src/components/atoms/DXSlider/index.js +2 -0
- package/src/components/atoms/DXTags/DXTags.stories.js +206 -0
- package/src/components/atoms/DXTags/DXTags.vue +111 -0
- package/src/components/atoms/DXTags/index.js +2 -0
- package/src/components/atoms/DXToast/DXToast.stories.js +40 -0
- package/src/components/atoms/DXToast/DXToast.vue +32 -0
- package/src/components/atoms/DXToast/index.js +2 -0
- package/src/components/atoms/DXToggle/DXToggle.stories.js +143 -0
- package/src/components/atoms/DXToggle/DXToggle.vue +142 -0
- package/src/components/atoms/DXToggle/index.js +2 -0
- package/src/components/atoms/DXToggleButton/DXToggleButton.stories.js +513 -0
- package/src/components/atoms/DXToggleButton/DXToggleButton.vue +140 -0
- package/src/components/atoms/DXToggleButton/index.js +2 -0
- package/src/components/atoms/DXTooltip/DXTooltip.stories.js +243 -0
- package/src/components/atoms/DXTooltip/DXTooltip.vue +151 -0
- package/src/components/atoms/DXTooltip/index.js +2 -0
- package/src/components/atoms/index.js +24 -0
- package/src/components/index.js +20 -0
- package/src/components/layout/DXBox/DXBox.stories.js +238 -0
- package/src/components/layout/DXBox/DXBox.vue +198 -0
- package/src/components/layout/DXBox/index.js +2 -0
- package/src/components/layout/DXContainer/DXContainer.stories.js +147 -0
- package/src/components/layout/DXContainer/DXContainer.vue +83 -0
- package/src/components/layout/DXContainer/index.js +2 -0
- package/src/components/layout/DXFlex/DXFlex.stories.js +210 -0
- package/src/components/layout/DXFlex/DXFlex.vue +149 -0
- package/src/components/layout/DXFlex/index.js +2 -0
- package/src/components/layout/DXGrid/DXGrid.stories.js +238 -0
- package/src/components/layout/DXGrid/DXGrid.vue +167 -0
- package/src/components/layout/DXGrid/index.js +2 -0
- package/src/components/layout/DXSpacer/DXSpacer.stories.js +187 -0
- package/src/components/layout/DXSpacer/DXSpacer.vue +102 -0
- package/src/components/layout/DXSpacer/index.js +2 -0
- package/src/components/layout/DXStack/DXStack.stories.js +199 -0
- package/src/components/layout/DXStack/DXStack.vue +140 -0
- package/src/components/layout/DXStack/index.js +2 -0
- package/src/components/layout/index.js +8 -0
- package/src/components/molecules/DXActionButtons/DXActionButtons.stories.js +288 -0
- package/src/components/molecules/DXActionButtons/DXActionButtons.vue +106 -0
- package/src/components/molecules/DXActionButtons/index.js +2 -0
- package/src/components/molecules/DXAlert/DXAlert.stories.js +70 -0
- package/src/components/molecules/DXAlert/DXAlert.vue +116 -0
- package/src/components/molecules/DXAlert/index.js +2 -0
- package/src/components/molecules/DXBaseTable/DXBaseTable.stories.js +433 -0
- package/src/components/molecules/DXBaseTable/DXBaseTable.vue +459 -0
- package/src/components/molecules/DXBaseTable/index.js +4 -0
- package/src/components/molecules/DXBreadcrumb/DXBreadcrumb.stories.js +227 -0
- package/src/components/molecules/DXBreadcrumb/DXBreadcrumb.vue +96 -0
- package/src/components/molecules/DXBreadcrumb/index.js +2 -0
- package/src/components/molecules/DXButtonGroup/DXButtonGroup.stories.js +26 -0
- package/src/components/molecules/DXButtonGroup/DXButtonGroup.vue +78 -0
- package/src/components/molecules/DXButtonGroup/index.js +2 -0
- package/src/components/molecules/DXCloseButton/DXCloseButton.stories.js +53 -0
- package/src/components/molecules/DXCloseButton/DXCloseButton.vue +62 -0
- package/src/components/molecules/DXCloseButton/index.js +3 -0
- package/src/components/molecules/DXComboBox/DXComboBox.stories.js +62 -0
- package/src/components/molecules/DXComboBox/DXComboBox.vue +167 -0
- package/src/components/molecules/DXComboBox/index.js +2 -0
- package/src/components/molecules/DXCopyField/DXCopyField.stories.js +231 -0
- package/src/components/molecules/DXCopyField/DXCopyField.vue +75 -0
- package/src/components/molecules/DXCopyField/index.js +2 -0
- package/src/components/molecules/DXDataFilter/DXDataFilter.stories.js +275 -0
- package/src/components/molecules/DXDataFilter/DXDataFilter.vue +385 -0
- package/src/components/molecules/DXDataFilter/index.js +2 -0
- package/src/components/molecules/DXDatePicker/DXDatePicker.stories.js +42 -0
- package/src/components/molecules/DXDatePicker/DXDatePicker.vue +121 -0
- package/src/components/molecules/DXDatePicker/index.js +2 -0
- package/src/components/molecules/DXDropdownDivider/DXDropdownDivider.vue +30 -0
- package/src/components/molecules/DXDropdownDivider/index.js +2 -0
- package/src/components/molecules/DXFileUpload/DXFileUpload.stories.js +53 -0
- package/src/components/molecules/DXFileUpload/DXFileUpload.vue +199 -0
- package/src/components/molecules/DXFileUpload/index.js +2 -0
- package/src/components/molecules/DXFilterGroup/DXFilterGroup.stories.js +43 -0
- package/src/components/molecules/DXFilterGroup/DXFilterGroup.vue +43 -0
- package/src/components/molecules/DXFilterGroup/index.js +2 -0
- package/src/components/molecules/DXFormControl/DXFormControl.stories.js +69 -0
- package/src/components/molecules/DXFormControl/DXFormControl.vue +72 -0
- package/src/components/molecules/DXFormControl/index.js +2 -0
- package/src/components/molecules/DXInput/DXInput.stories.js +291 -0
- package/src/components/molecules/DXInput/DXInput.vue +156 -0
- package/src/components/molecules/DXInput/index.js +3 -0
- package/src/components/molecules/DXInputGroup/DXInputGroup.stories.js +228 -0
- package/src/components/molecules/DXInputGroup/DXInputGroup.vue +64 -0
- package/src/components/molecules/DXInputGroup/index.js +2 -0
- package/src/components/molecules/DXInputMask/DXInputMask.stories.js +53 -0
- package/src/components/molecules/DXInputMask/DXInputMask.vue +89 -0
- package/src/components/molecules/DXInputMask/index.js +2 -0
- package/src/components/molecules/DXMenu/DXMenu.stories.js +379 -0
- package/src/components/molecules/DXMenu/DXMenu.vue +331 -0
- package/src/components/molecules/DXMenu/README.md +479 -0
- package/src/components/molecules/DXMenu/index.js +2 -0
- package/src/components/molecules/DXPagination/DXPagination.stories.js +62 -0
- package/src/components/molecules/DXPagination/DXPagination.vue +123 -0
- package/src/components/molecules/DXPagination/index.js +2 -0
- package/src/components/molecules/DXPasswordInput/DXPasswordInput.stories.js +42 -0
- package/src/components/molecules/DXPasswordInput/DXPasswordInput.vue +74 -0
- package/src/components/molecules/DXPasswordInput/index.js +2 -0
- package/src/components/molecules/DXRadioCard/DXRadioCard.stories.js +60 -0
- package/src/components/molecules/DXRadioCard/DXRadioCard.vue +71 -0
- package/src/components/molecules/DXRadioCard/index.js +2 -0
- package/src/components/molecules/DXRadioGroup/DXRadioGroup.stories.js +297 -0
- package/src/components/molecules/DXRadioGroup/DXRadioGroup.vue +73 -0
- package/src/components/molecules/DXRadioGroup/index.js +2 -0
- package/src/components/molecules/DXRating/DXRating.stories.js +322 -0
- package/src/components/molecules/DXRating/DXRating.vue +402 -0
- package/src/components/molecules/DXRating/index.js +2 -0
- package/src/components/molecules/DXSearchBar/DXSearchBar.stories.js +357 -0
- package/src/components/molecules/DXSearchBar/DXSearchBar.vue +525 -0
- package/src/components/molecules/DXSearchBar/index.js +2 -0
- package/src/components/molecules/DXSearchSelect/DXSearchSelect.stories.js +50 -0
- package/src/components/molecules/DXSearchSelect/DXSearchSelect.vue +207 -0
- package/src/components/molecules/DXSearchSelect/index.js +2 -0
- package/src/components/molecules/DXSegmentedControl/DXSegmentedControl.stories.js +326 -0
- package/src/components/molecules/DXSegmentedControl/DXSegmentedControl.vue +116 -0
- package/src/components/molecules/DXSegmentedControl/index.js +2 -0
- package/src/components/molecules/DXSelect/DXSelect.stories.js +259 -0
- package/src/components/molecules/DXSelect/DXSelect.vue +149 -0
- package/src/components/molecules/DXSelect/index.js +3 -0
- package/src/components/molecules/DXStatCard/DXStatCard.stories.js +335 -0
- package/src/components/molecules/DXStatCard/DXStatCard.vue +309 -0
- package/src/components/molecules/DXStatCard/index.js +2 -0
- package/src/components/molecules/DXTableFiltersPanel/DXTableFiltersPanel.vue +72 -0
- package/src/components/molecules/DXTableFiltersPanel/index.js +7 -0
- package/src/components/molecules/DXTablePagination/DXTablePagination.stories.js +236 -0
- package/src/components/molecules/DXTablePagination/DXTablePagination.vue +93 -0
- package/src/components/molecules/DXTablePagination/index.js +2 -0
- package/src/components/molecules/DXTableToolbar/DXTableToolbar.stories.js +271 -0
- package/src/components/molecules/DXTableToolbar/DXTableToolbar.vue +102 -0
- package/src/components/molecules/DXTableToolbar/index.js +2 -0
- package/src/components/molecules/DXTextarea/DXTextarea.stories.js +239 -0
- package/src/components/molecules/DXTextarea/DXTextarea.vue +158 -0
- package/src/components/molecules/DXTextarea/index.js +3 -0
- package/src/components/molecules/DXTimePicker/DXTimePicker.stories.js +282 -0
- package/src/components/molecules/DXTimePicker/DXTimePicker.vue +640 -0
- package/src/components/molecules/DXTimePicker/index.js +2 -0
- package/src/components/molecules/DXValidationIcon/DXValidationIcon.stories.js +60 -0
- package/src/components/molecules/DXValidationIcon/DXValidationIcon.vue +53 -0
- package/src/components/molecules/DXValidationIcon/index.js +3 -0
- package/src/components/molecules/index.js +34 -0
- package/src/components/organisms/DXAccordion/DXAccordion.stories.js +33 -0
- package/src/components/organisms/DXAccordion/DXAccordion.vue +104 -0
- package/src/components/organisms/DXAccordion/index.js +2 -0
- package/src/components/organisms/DXAppLayout/DXAppLayout.stories.js +689 -0
- package/src/components/organisms/DXAppLayout/DXAppLayout.vue +460 -0
- package/src/components/organisms/DXAppLayout/index.js +2 -0
- package/src/components/organisms/DXAuthenticationForm/DXAuthenticationForm.stories.js +232 -0
- package/src/components/organisms/DXAuthenticationForm/DXAuthenticationForm.vue +458 -0
- package/src/components/organisms/DXAuthenticationForm/index.js +2 -0
- package/src/components/organisms/DXChartContainer/DXChartContainer.stories.js +286 -0
- package/src/components/organisms/DXChartContainer/DXChartContainer.vue +273 -0
- package/src/components/organisms/DXChartContainer/index.js +2 -0
- package/src/components/organisms/DXChatInterface/DXChatInterface.stories.js +164 -0
- package/src/components/organisms/DXChatInterface/DXChatInterface.vue +583 -0
- package/src/components/organisms/DXChatInterface/index.js +2 -0
- package/src/components/organisms/DXCommentSection/DXCommentSection.stories.js +173 -0
- package/src/components/organisms/DXCommentSection/DXCommentSection.vue +487 -0
- package/src/components/organisms/DXCommentSection/index.js +2 -0
- package/src/components/organisms/DXDashboardGrid/DXDashboardGrid.stories.js +331 -0
- package/src/components/organisms/DXDashboardGrid/DXDashboardGrid.vue +309 -0
- package/src/components/organisms/DXDashboardGrid/index.js +2 -0
- package/src/components/organisms/DXDashboardWidget/DXDashboardWidget.stories.js +271 -0
- package/src/components/organisms/DXDashboardWidget/DXDashboardWidget.vue +260 -0
- package/src/components/organisms/DXDashboardWidget/index.js +2 -0
- package/src/components/organisms/DXDataTable/DXDataTable.stories.js +247 -0
- package/src/components/organisms/DXDataTable/DXDataTable.vue +496 -0
- package/src/components/organisms/DXDataTable/index.js +2 -0
- package/src/components/organisms/DXDropdown/DXDropdown.stories.js +795 -0
- package/src/components/organisms/DXDropdown/DXDropdown.vue +238 -0
- package/src/components/organisms/DXDropdown/index.js +2 -0
- package/src/components/organisms/DXEmptyState/DXEmptyState.stories.js +37 -0
- package/src/components/organisms/DXEmptyState/DXEmptyState.vue +41 -0
- package/src/components/organisms/DXEmptyState/index.js +2 -0
- package/src/components/organisms/DXFormWizard/DXFormWizard.stories.js +378 -0
- package/src/components/organisms/DXFormWizard/DXFormWizard.vue +578 -0
- package/src/components/organisms/DXFormWizard/index.js +2 -0
- package/src/components/organisms/DXHeaderBar/DXHeaderBar.stories.js +448 -0
- package/src/components/organisms/DXHeaderBar/DXHeaderBar.vue +190 -0
- package/src/components/organisms/DXHeaderBar/index.js +2 -0
- package/src/components/organisms/DXMediaGallery/DXMediaGallery.stories.js +347 -0
- package/src/components/organisms/DXMediaGallery/DXMediaGallery.vue +422 -0
- package/src/components/organisms/DXMediaGallery/index.js +2 -0
- package/src/components/organisms/DXModal/DXModal.stories.js +138 -0
- package/src/components/organisms/DXModal/DXModal.vue +213 -0
- package/src/components/organisms/DXModal/index.js +2 -0
- package/src/components/organisms/DXNotificationCenter/DXNotificationCenter.stories.js +183 -0
- package/src/components/organisms/DXNotificationCenter/DXNotificationCenter.vue +566 -0
- package/src/components/organisms/DXNotificationCenter/index.js +2 -0
- package/src/components/organisms/DXReportGenerator/DXReportGenerator.stories.js +199 -0
- package/src/components/organisms/DXReportGenerator/DXReportGenerator.vue +344 -0
- package/src/components/organisms/DXReportGenerator/index.js +2 -0
- package/src/components/organisms/DXSettingsPanel/DXSettingsPanel.stories.js +245 -0
- package/src/components/organisms/DXSettingsPanel/DXSettingsPanel.vue +454 -0
- package/src/components/organisms/DXSettingsPanel/index.js +2 -0
- package/src/components/organisms/DXSidebar/DXSidebar.stories.js +316 -0
- package/src/components/organisms/DXSidebar/DXSidebar.vue +212 -0
- package/src/components/organisms/DXSidebar/index.js +2 -0
- package/src/components/organisms/DXSidebarMenu/DATA_STRUCTURE.md +299 -0
- package/src/components/organisms/DXSidebarMenu/DXSidebarMenu.stories.js +729 -0
- package/src/components/organisms/DXSidebarMenu/DXSidebarMenu.vue +257 -0
- package/src/components/organisms/DXSidebarMenu/DXSidebarMenuItem.vue +249 -0
- package/src/components/organisms/DXSidebarMenu/README.md +333 -0
- package/src/components/organisms/DXSidebarMenu/index.js +3 -0
- package/src/components/organisms/DXTable/DXTable.stories.js +550 -0
- package/src/components/organisms/DXTable/DXTable.vue +324 -0
- package/src/components/organisms/DXTable/index.js +2 -0
- package/src/components/organisms/DXTabs/DXTabs.stories.js +407 -0
- package/src/components/organisms/DXTabs/DXTabs.vue +301 -0
- package/src/components/organisms/DXTabs/index.js +2 -0
- package/src/components/organisms/DXUserProfileCard/DXUserProfileCard.stories.js +194 -0
- package/src/components/organisms/DXUserProfileCard/DXUserProfileCard.vue +403 -0
- package/src/components/organisms/DXUserProfileCard/index.js +2 -0
- package/src/components/organisms/DXWizard/DXWizard.stories.js +212 -0
- package/src/components/organisms/DXWizard/DXWizard.vue +615 -0
- package/src/components/organisms/DXWizard/index.js +2 -0
- package/src/components/organisms/index.js +25 -0
- package/src/components/typography/DXBlockquote/DXBlockquote.stories.js +33 -0
- package/src/components/typography/DXBlockquote/DXBlockquote.vue +44 -0
- package/src/components/typography/DXBlockquote/index.js +2 -0
- package/src/components/typography/DXCode/DXCode.stories.js +29 -0
- package/src/components/typography/DXCode/DXCode.vue +46 -0
- package/src/components/typography/DXCode/index.js +2 -0
- package/src/components/typography/DXHeading/DXHeading.stories.js +54 -0
- package/src/components/typography/DXHeading/DXHeading.vue +68 -0
- package/src/components/typography/DXHeading/index.js +2 -0
- package/src/components/typography/DXLabel/DXLabel.stories.js +40 -0
- package/src/components/typography/DXLabel/DXLabel.vue +49 -0
- package/src/components/typography/DXLabel/index.js +2 -0
- package/src/components/typography/DXList/DXList.stories.js +50 -0
- package/src/components/typography/DXList/DXList.vue +55 -0
- package/src/components/typography/DXList/index.js +2 -0
- package/src/components/typography/DXText/DXText.stories.js +47 -0
- package/src/components/typography/DXText/DXText.vue +67 -0
- package/src/components/typography/DXText/index.js +2 -0
- package/src/components/typography/index.js +8 -0
- package/src/components/utilities/DXAnimatePresence/DXAnimatePresence.stories.js +335 -0
- package/src/components/utilities/DXAnimatePresence/DXAnimatePresence.vue +207 -0
- package/src/components/utilities/DXAnimatePresence/index.js +2 -0
- package/src/components/utilities/DXBreakpointProvider/DXBreakpointProvider.stories.js +321 -0
- package/src/components/utilities/DXBreakpointProvider/DXBreakpointProvider.vue +158 -0
- package/src/components/utilities/DXBreakpointProvider/index.js +2 -0
- package/src/components/utilities/DXObserver/DXObserver.stories.js +324 -0
- package/src/components/utilities/DXObserver/DXObserver.vue +182 -0
- package/src/components/utilities/DXObserver/index.js +2 -0
- package/src/components/utilities/DXPortal/DXPortal.stories.js +267 -0
- package/src/components/utilities/DXPortal/DXPortal.vue +69 -0
- package/src/components/utilities/DXPortal/index.js +2 -0
- package/src/components/utilities/DXStaggeredAnimation/DXStaggeredAnimation.stories.js +339 -0
- package/src/components/utilities/DXStaggeredAnimation/DXStaggeredAnimation.vue +155 -0
- package/src/components/utilities/DXStaggeredAnimation/index.js +2 -0
- package/src/components/utilities/DXThemeProvider/DXThemeProvider.stories.js +327 -0
- package/src/components/utilities/DXThemeProvider/DXThemeProvider.vue +227 -0
- package/src/components/utilities/DXThemeProvider/index.js +2 -0
- package/src/components/utilities/DXTransitionGroup/DXTransitionGroup.stories.js +368 -0
- package/src/components/utilities/DXTransitionGroup/DXTransitionGroup.vue +212 -0
- package/src/components/utilities/DXTransitionGroup/index.js +2 -0
- package/src/components/utilities/index.js +9 -0
- package/src/composables/useAnimation.js +264 -0
- package/src/composables/useClassComposition.js +35 -0
- package/src/composables/useDataAttributes.js +83 -0
- package/src/composables/useMenu.js +88 -0
- package/src/composables/useSize.js +135 -0
- package/src/composables/useSpacing.js +37 -0
- package/src/composables/useTableColumns.js +88 -0
- package/src/composables/useTableData.js +82 -0
- package/src/composables/useTableFilter.js +158 -0
- package/src/composables/useTablePagination.js +89 -0
- package/src/composables/useTableSelection.js +77 -0
- package/src/composables/useTableSort.js +75 -0
- package/src/composables/useTabsScroll.js +88 -0
- package/src/composables/useVariant.js +700 -0
- package/src/index.js +86 -0
- package/src/styles/animations.css +171 -0
- package/src/styles/index.css +99 -0
- package/src/styles/tokens.js +123 -0
- package/src/utils/propTypes.js +77 -0
- package/src/utils/toggleButtonPresets.js +115 -0
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
import { ref, inject, computed } from 'vue';
|
|
2
|
+
import DXBreakpointProvider from './DXBreakpointProvider.vue';
|
|
3
|
+
import DXCard from '../../atoms/DXCard/DXCard.vue';
|
|
4
|
+
import DXButton from '../../atoms/DXButton/DXButton.vue';
|
|
5
|
+
import DXGrid from '../../layout/DXGrid/DXGrid.vue';
|
|
6
|
+
|
|
7
|
+
export default {
|
|
8
|
+
title: 'Utilities/DXBreakpointProvider',
|
|
9
|
+
component: DXBreakpointProvider,
|
|
10
|
+
tags: ['autodocs'],
|
|
11
|
+
parameters: {
|
|
12
|
+
docs: {
|
|
13
|
+
description: {
|
|
14
|
+
component: `
|
|
15
|
+
# DXBreakpointProvider
|
|
16
|
+
|
|
17
|
+
Провайдер для доступа к текущему брейкпоинту и размерам экрана в компонентах.
|
|
18
|
+
|
|
19
|
+
## Назначение
|
|
20
|
+
|
|
21
|
+
DXBreakpointProvider предоставляет реактивный доступ к информации о размере экрана
|
|
22
|
+
и текущем брейкпоинте через provide/inject. Используется для адаптивного поведения
|
|
23
|
+
компонентов и условного рендеринга.
|
|
24
|
+
|
|
25
|
+
## Архитектура
|
|
26
|
+
|
|
27
|
+
### Использует
|
|
28
|
+
- Vue provide/inject - для доступа к брейкпоинтам в компонентах
|
|
29
|
+
- Window resize API - для отслеживания изменения размера
|
|
30
|
+
- Debounce - для оптимизации производительности
|
|
31
|
+
|
|
32
|
+
### Используется в
|
|
33
|
+
- Корневой компонент приложения
|
|
34
|
+
- Адаптивные компоненты (\`DXSidebar\`, \`DXHeaderBar\`)
|
|
35
|
+
- Любые компоненты, требующие адаптивного поведения
|
|
36
|
+
|
|
37
|
+
## Внутренняя логика
|
|
38
|
+
|
|
39
|
+
### Брейкпоинты
|
|
40
|
+
По умолчанию использует стандартные брейкпоинты Tailwind CSS:
|
|
41
|
+
- xs: 0px
|
|
42
|
+
- sm: 640px
|
|
43
|
+
- md: 768px
|
|
44
|
+
- lg: 1024px
|
|
45
|
+
- xl: 1280px
|
|
46
|
+
- 2xl: 1536px
|
|
47
|
+
|
|
48
|
+
### Provide/Inject
|
|
49
|
+
Компоненты могут получить доступ к брейкпоинтам через inject:
|
|
50
|
+
\`\`\`javascript
|
|
51
|
+
const currentBreakpoint = inject('currentBreakpoint');
|
|
52
|
+
const screenWidth = inject('screenWidth');
|
|
53
|
+
\`\`\`
|
|
54
|
+
|
|
55
|
+
### Debounce
|
|
56
|
+
Изменения размера окна обрабатываются с задержкой для оптимизации производительности.
|
|
57
|
+
|
|
58
|
+
## Особенности
|
|
59
|
+
|
|
60
|
+
### Кастомные брейкпоинты
|
|
61
|
+
Можно указать кастомные брейкпоинты через prop \`breakpoints\`.
|
|
62
|
+
|
|
63
|
+
### Реактивность
|
|
64
|
+
Все значения реактивны и автоматически обновляются при изменении размера окна.
|
|
65
|
+
`,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
argTypes: {
|
|
70
|
+
debounce: {
|
|
71
|
+
control: 'number',
|
|
72
|
+
min: 0,
|
|
73
|
+
max: 1000,
|
|
74
|
+
step: 10,
|
|
75
|
+
description: 'Задержка debounce для resize события в миллисекундах.',
|
|
76
|
+
table: {
|
|
77
|
+
type: { summary: 'number' },
|
|
78
|
+
defaultValue: { summary: '150' },
|
|
79
|
+
category: 'Behavior',
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const Default = {
|
|
86
|
+
parameters: {
|
|
87
|
+
docs: {
|
|
88
|
+
description: {
|
|
89
|
+
story: 'Базовое использование провайдера. Информация о брейкпоинте доступна через inject.',
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
render: () => ({
|
|
94
|
+
components: { DXBreakpointProvider, DXCard },
|
|
95
|
+
setup() {
|
|
96
|
+
// Компонент, использующий inject
|
|
97
|
+
const BreakpointInfo = {
|
|
98
|
+
setup() {
|
|
99
|
+
const currentBreakpoint = inject('currentBreakpoint');
|
|
100
|
+
const screenWidth = inject('screenWidth');
|
|
101
|
+
const screenHeight = inject('screenHeight');
|
|
102
|
+
const breakpoints = inject('breakpoints');
|
|
103
|
+
|
|
104
|
+
return { currentBreakpoint, screenWidth, screenHeight, breakpoints };
|
|
105
|
+
},
|
|
106
|
+
template: `
|
|
107
|
+
<DXCard class="p-4">
|
|
108
|
+
<h3 class="font-semibold mb-2">Информация о брейкпоинте</h3>
|
|
109
|
+
<div class="space-y-2 text-sm">
|
|
110
|
+
<p><strong>Текущий брейкпоинт:</strong> {{ currentBreakpoint }}</p>
|
|
111
|
+
<p><strong>Ширина экрана:</strong> {{ screenWidth }}px</p>
|
|
112
|
+
<p><strong>Высота экрана:</strong> {{ screenHeight }}px</p>
|
|
113
|
+
<div class="mt-4">
|
|
114
|
+
<p class="font-medium mb-1">Доступные брейкпоинты:</p>
|
|
115
|
+
<ul class="list-disc list-inside space-y-1">
|
|
116
|
+
<li v-for="(width, name) in breakpoints" :key="name">
|
|
117
|
+
{{ name }}: {{ width }}px
|
|
118
|
+
</li>
|
|
119
|
+
</ul>
|
|
120
|
+
</div>
|
|
121
|
+
</div>
|
|
122
|
+
</DXCard>
|
|
123
|
+
`,
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
return { BreakpointInfo };
|
|
127
|
+
},
|
|
128
|
+
template: `
|
|
129
|
+
<DXBreakpointProvider>
|
|
130
|
+
<div class="p-8">
|
|
131
|
+
<BreakpointInfo />
|
|
132
|
+
</div>
|
|
133
|
+
</DXBreakpointProvider>
|
|
134
|
+
`,
|
|
135
|
+
}),
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
export const AdaptiveGrid = {
|
|
139
|
+
parameters: {
|
|
140
|
+
docs: {
|
|
141
|
+
description: {
|
|
142
|
+
story: 'Адаптивная сетка, которая меняет количество колонок в зависимости от брейкпоинта.',
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
render: () => ({
|
|
147
|
+
components: { DXBreakpointProvider, DXGrid, DXCard },
|
|
148
|
+
setup() {
|
|
149
|
+
const AdaptiveGridComponent = {
|
|
150
|
+
setup() {
|
|
151
|
+
const currentBreakpoint = inject('currentBreakpoint');
|
|
152
|
+
|
|
153
|
+
const gridColumns = computed(() => {
|
|
154
|
+
switch (currentBreakpoint.value) {
|
|
155
|
+
case 'xs':
|
|
156
|
+
return 1;
|
|
157
|
+
case 'sm':
|
|
158
|
+
return 2;
|
|
159
|
+
case 'md':
|
|
160
|
+
return 3;
|
|
161
|
+
case 'lg':
|
|
162
|
+
case 'xl':
|
|
163
|
+
case '2xl':
|
|
164
|
+
return 4;
|
|
165
|
+
default:
|
|
166
|
+
return 2;
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
return { gridColumns, currentBreakpoint };
|
|
171
|
+
},
|
|
172
|
+
template: `
|
|
173
|
+
<div class="space-y-4">
|
|
174
|
+
<p class="text-sm text-slate-600">
|
|
175
|
+
Текущий брейкпоинт: <strong>{{ currentBreakpoint }}</strong> |
|
|
176
|
+
Колонок: <strong>{{ gridColumns }}</strong>
|
|
177
|
+
</p>
|
|
178
|
+
<DXGrid :cols="gridColumns" gap="md">
|
|
179
|
+
<DXCard v-for="i in 8" :key="i" class="p-4">
|
|
180
|
+
<p>Элемент {{ i }}</p>
|
|
181
|
+
</DXCard>
|
|
182
|
+
</DXGrid>
|
|
183
|
+
</div>
|
|
184
|
+
`,
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
return { AdaptiveGridComponent };
|
|
188
|
+
},
|
|
189
|
+
template: `
|
|
190
|
+
<DXBreakpointProvider>
|
|
191
|
+
<div class="p-8">
|
|
192
|
+
<AdaptiveGridComponent />
|
|
193
|
+
</div>
|
|
194
|
+
</DXBreakpointProvider>
|
|
195
|
+
`,
|
|
196
|
+
}),
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
export const ConditionalRendering = {
|
|
200
|
+
parameters: {
|
|
201
|
+
docs: {
|
|
202
|
+
description: {
|
|
203
|
+
story: 'Условный рендеринг на основе брейкпоинта. На мобильных показывается одно, на десктопе - другое.',
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
},
|
|
207
|
+
render: () => ({
|
|
208
|
+
components: { DXBreakpointProvider, DXCard, DXButton },
|
|
209
|
+
setup() {
|
|
210
|
+
const ConditionalComponent = {
|
|
211
|
+
setup() {
|
|
212
|
+
const currentBreakpoint = inject('currentBreakpoint');
|
|
213
|
+
|
|
214
|
+
const isMobile = computed(() => {
|
|
215
|
+
return currentBreakpoint.value === 'xs' || currentBreakpoint.value === 'sm';
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
return { isMobile, currentBreakpoint };
|
|
219
|
+
},
|
|
220
|
+
template: `
|
|
221
|
+
<div class="space-y-4">
|
|
222
|
+
<DXCard class="p-4">
|
|
223
|
+
<p class="text-sm text-slate-600 mb-2">
|
|
224
|
+
Текущий брейкпоинт: <strong>{{ currentBreakpoint }}</strong>
|
|
225
|
+
</p>
|
|
226
|
+
<p class="text-sm text-slate-600">
|
|
227
|
+
Режим: <strong>{{ isMobile ? 'Мобильный' : 'Десктоп' }}</strong>
|
|
228
|
+
</p>
|
|
229
|
+
</DXCard>
|
|
230
|
+
|
|
231
|
+
<div v-if="isMobile" class="space-y-2">
|
|
232
|
+
<DXCard class="p-4">
|
|
233
|
+
<h3 class="font-semibold mb-2">Мобильный интерфейс</h3>
|
|
234
|
+
<p class="text-sm text-slate-600">Этот контент виден только на мобильных устройствах</p>
|
|
235
|
+
<DXButton class="mt-4" block>Мобильная кнопка</DXButton>
|
|
236
|
+
</DXCard>
|
|
237
|
+
</div>
|
|
238
|
+
|
|
239
|
+
<div v-else class="space-y-2">
|
|
240
|
+
<DXCard class="p-4">
|
|
241
|
+
<h3 class="font-semibold mb-2">Десктопный интерфейс</h3>
|
|
242
|
+
<p class="text-sm text-slate-600">Этот контент виден только на десктопе</p>
|
|
243
|
+
<div class="flex gap-2 mt-4">
|
|
244
|
+
<DXButton>Действие 1</DXButton>
|
|
245
|
+
<DXButton>Действие 2</DXButton>
|
|
246
|
+
</div>
|
|
247
|
+
</DXCard>
|
|
248
|
+
</div>
|
|
249
|
+
</div>
|
|
250
|
+
`,
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
return { ConditionalComponent };
|
|
254
|
+
},
|
|
255
|
+
template: `
|
|
256
|
+
<DXBreakpointProvider>
|
|
257
|
+
<div class="p-8">
|
|
258
|
+
<ConditionalComponent />
|
|
259
|
+
</div>
|
|
260
|
+
</DXBreakpointProvider>
|
|
261
|
+
`,
|
|
262
|
+
}),
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
export const CustomBreakpoints = {
|
|
266
|
+
parameters: {
|
|
267
|
+
docs: {
|
|
268
|
+
description: {
|
|
269
|
+
story: 'Провайдер с кастомными брейкпоинтами. Можно определить свои значения для различных размеров экрана.',
|
|
270
|
+
},
|
|
271
|
+
},
|
|
272
|
+
},
|
|
273
|
+
render: () => ({
|
|
274
|
+
components: { DXBreakpointProvider, DXCard },
|
|
275
|
+
setup() {
|
|
276
|
+
const customBreakpoints = ref({
|
|
277
|
+
mobile: 0,
|
|
278
|
+
tablet: 768,
|
|
279
|
+
desktop: 1024,
|
|
280
|
+
wide: 1440,
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
const BreakpointInfo = {
|
|
284
|
+
setup() {
|
|
285
|
+
const currentBreakpoint = inject('currentBreakpoint');
|
|
286
|
+
const screenWidth = inject('screenWidth');
|
|
287
|
+
const breakpoints = inject('breakpoints');
|
|
288
|
+
|
|
289
|
+
return { currentBreakpoint, screenWidth, breakpoints };
|
|
290
|
+
},
|
|
291
|
+
template: `
|
|
292
|
+
<DXCard class="p-4">
|
|
293
|
+
<h3 class="font-semibold mb-2">Кастомные брейкпоинты</h3>
|
|
294
|
+
<div class="space-y-2 text-sm">
|
|
295
|
+
<p><strong>Текущий брейкпоинт:</strong> {{ currentBreakpoint }}</p>
|
|
296
|
+
<p><strong>Ширина экрана:</strong> {{ screenWidth }}px</p>
|
|
297
|
+
<div class="mt-4">
|
|
298
|
+
<p class="font-medium mb-1">Кастомные брейкпоинты:</p>
|
|
299
|
+
<ul class="list-disc list-inside space-y-1">
|
|
300
|
+
<li v-for="(width, name) in breakpoints" :key="name">
|
|
301
|
+
{{ name }}: {{ width }}px
|
|
302
|
+
</li>
|
|
303
|
+
</ul>
|
|
304
|
+
</div>
|
|
305
|
+
</div>
|
|
306
|
+
</DXCard>
|
|
307
|
+
`,
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
return { customBreakpoints, BreakpointInfo };
|
|
311
|
+
},
|
|
312
|
+
template: `
|
|
313
|
+
<DXBreakpointProvider :breakpoints="customBreakpoints">
|
|
314
|
+
<div class="p-8">
|
|
315
|
+
<BreakpointInfo />
|
|
316
|
+
</div>
|
|
317
|
+
</DXBreakpointProvider>
|
|
318
|
+
`,
|
|
319
|
+
}),
|
|
320
|
+
};
|
|
321
|
+
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
:class="providerClasses"
|
|
4
|
+
data-component="DXBreakpointProvider"
|
|
5
|
+
:data-breakpoint="currentBreakpoint"
|
|
6
|
+
>
|
|
7
|
+
<slot />
|
|
8
|
+
</div>
|
|
9
|
+
</template>
|
|
10
|
+
|
|
11
|
+
<script setup>
|
|
12
|
+
import { ref, computed, provide, onMounted, onBeforeUnmount, watch } from "vue";
|
|
13
|
+
import { useClassComposition } from "@/composables/useClassComposition";
|
|
14
|
+
|
|
15
|
+
const props = defineProps({
|
|
16
|
+
/**
|
|
17
|
+
* Кастомные брейкпоинты
|
|
18
|
+
* Формат: { xs: 0, sm: 640, md: 768, lg: 1024, xl: 1280, '2xl': 1536 }
|
|
19
|
+
* @default null
|
|
20
|
+
*/
|
|
21
|
+
breakpoints: {
|
|
22
|
+
type: Object,
|
|
23
|
+
default: null,
|
|
24
|
+
},
|
|
25
|
+
/**
|
|
26
|
+
* Задержка debounce для resize события в миллисекундах
|
|
27
|
+
* @default 150
|
|
28
|
+
*/
|
|
29
|
+
debounce: { type: Number, default: 150 },
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
const emit = defineEmits(["breakpoint-change"]);
|
|
33
|
+
|
|
34
|
+
// Стандартные брейкпоинты Tailwind CSS
|
|
35
|
+
const defaultBreakpoints = {
|
|
36
|
+
xs: 0,
|
|
37
|
+
sm: 640,
|
|
38
|
+
md: 768,
|
|
39
|
+
lg: 1024,
|
|
40
|
+
xl: 1280,
|
|
41
|
+
"2xl": 1536,
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Активные брейкпоинты
|
|
46
|
+
*
|
|
47
|
+
* @description
|
|
48
|
+
* Использует кастомные брейкпоинты если указаны, иначе стандартные Tailwind.
|
|
49
|
+
*
|
|
50
|
+
* @returns {Object} Объект с брейкпоинтами
|
|
51
|
+
*/
|
|
52
|
+
const activeBreakpoints = computed(() => {
|
|
53
|
+
return props.breakpoints || defaultBreakpoints;
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
const screenWidth = ref(typeof window !== "undefined" ? window.innerWidth : 0);
|
|
57
|
+
const screenHeight = ref(typeof window !== "undefined" ? window.innerHeight : 0);
|
|
58
|
+
const currentBreakpoint = ref("xs");
|
|
59
|
+
let resizeTimer = null;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Классы для провайдера
|
|
63
|
+
*
|
|
64
|
+
* @description
|
|
65
|
+
* Базовые классы для контейнера провайдера.
|
|
66
|
+
*
|
|
67
|
+
* @returns {Array} Массив классов
|
|
68
|
+
*/
|
|
69
|
+
const providerClasses = computed(() => useClassComposition("w-full h-full"));
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Определение текущего брейкпоинта
|
|
73
|
+
*
|
|
74
|
+
* @description
|
|
75
|
+
* Определяет текущий брейкпоинт на основе ширины экрана.
|
|
76
|
+
*
|
|
77
|
+
* @param {number} width - Ширина экрана
|
|
78
|
+
* @returns {string} Название брейкпоинта
|
|
79
|
+
*/
|
|
80
|
+
function getBreakpoint(width) {
|
|
81
|
+
const breakpoints = activeBreakpoints.value;
|
|
82
|
+
const sortedBreakpoints = Object.entries(breakpoints).sort(
|
|
83
|
+
(a, b) => b[1] - a[1]
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
for (const [name, minWidth] of sortedBreakpoints) {
|
|
87
|
+
if (width >= minWidth) {
|
|
88
|
+
return name;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return "xs";
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Обновление размеров экрана
|
|
97
|
+
*
|
|
98
|
+
* @description
|
|
99
|
+
* Обновляет ширину, высоту и текущий брейкпоинт при изменении размера окна.
|
|
100
|
+
*/
|
|
101
|
+
function updateScreenSize() {
|
|
102
|
+
screenWidth.value = window.innerWidth;
|
|
103
|
+
screenHeight.value = window.innerHeight;
|
|
104
|
+
const newBreakpoint = getBreakpoint(screenWidth.value);
|
|
105
|
+
|
|
106
|
+
if (newBreakpoint !== currentBreakpoint.value) {
|
|
107
|
+
const oldBreakpoint = currentBreakpoint.value;
|
|
108
|
+
currentBreakpoint.value = newBreakpoint;
|
|
109
|
+
emit("breakpoint-change", newBreakpoint, oldBreakpoint);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Обработчик resize с debounce
|
|
115
|
+
*
|
|
116
|
+
* @description
|
|
117
|
+
* Обрабатывает изменение размера окна с задержкой для оптимизации производительности.
|
|
118
|
+
*/
|
|
119
|
+
function handleResize() {
|
|
120
|
+
if (resizeTimer) {
|
|
121
|
+
clearTimeout(resizeTimer);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
resizeTimer = setTimeout(() => {
|
|
125
|
+
updateScreenSize();
|
|
126
|
+
}, props.debounce);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Provide для дочерних компонентов
|
|
130
|
+
provide("breakpoints", activeBreakpoints);
|
|
131
|
+
provide("currentBreakpoint", computed(() => currentBreakpoint.value));
|
|
132
|
+
provide("screenWidth", computed(() => screenWidth.value));
|
|
133
|
+
provide("screenHeight", computed(() => screenHeight.value));
|
|
134
|
+
|
|
135
|
+
// Инициализация при монтировании
|
|
136
|
+
onMounted(() => {
|
|
137
|
+
updateScreenSize();
|
|
138
|
+
window.addEventListener("resize", handleResize);
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
// Очистка при размонтировании
|
|
142
|
+
onBeforeUnmount(() => {
|
|
143
|
+
window.removeEventListener("resize", handleResize);
|
|
144
|
+
if (resizeTimer) {
|
|
145
|
+
clearTimeout(resizeTimer);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
// Реакция на изменение breakpoints
|
|
150
|
+
watch(
|
|
151
|
+
() => props.breakpoints,
|
|
152
|
+
() => {
|
|
153
|
+
updateScreenSize();
|
|
154
|
+
},
|
|
155
|
+
{ deep: true }
|
|
156
|
+
);
|
|
157
|
+
</script>
|
|
158
|
+
|