dxd-style-code 0.1.7 → 0.1.8

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.
Files changed (334) hide show
  1. package/dist/dxd-style-code.js +11974 -3725
  2. package/dist/dxd-style-code.umd.cjs +10 -1
  3. package/dist/style.css +1 -1
  4. package/package.json +13 -6
  5. package/src/components/atoms/DXAvatar/DXAvatar.stories.js +319 -0
  6. package/src/components/atoms/DXAvatar/DXAvatar.vue +167 -0
  7. package/src/components/atoms/DXAvatar/index.js +2 -0
  8. package/src/components/atoms/DXBackdrop/DXBackdrop.stories.js +341 -0
  9. package/src/components/atoms/DXBackdrop/DXBackdrop.vue +102 -0
  10. package/src/components/atoms/DXBackdrop/index.js +2 -0
  11. package/src/components/atoms/DXBadge/DXBadge.stories.js +239 -0
  12. package/src/components/atoms/DXBadge/DXBadge.vue +45 -0
  13. package/src/components/atoms/DXBadge/index.js +2 -0
  14. package/src/components/atoms/DXButton/DXButton.stories.js +178 -0
  15. package/src/components/atoms/DXButton/DXButton.vue +84 -0
  16. package/src/components/atoms/DXButton/index.js +2 -0
  17. package/src/components/atoms/DXCard/DXCard.stories.js +133 -0
  18. package/src/components/atoms/DXCard/DXCard.vue +46 -0
  19. package/src/components/atoms/DXCard/index.js +2 -0
  20. package/src/components/atoms/DXCheckbox/DXCheckbox.stories.js +294 -0
  21. package/src/components/atoms/DXCheckbox/DXCheckbox.vue +191 -0
  22. package/src/components/atoms/DXCheckbox/index.js +2 -0
  23. package/src/components/atoms/DXDivider/DXDivider.stories.js +135 -0
  24. package/src/components/atoms/DXDivider/DXDivider.vue +74 -0
  25. package/src/components/atoms/DXDivider/index.js +2 -0
  26. package/src/components/atoms/DXDropdownItem/DXDropdownItem.vue +116 -0
  27. package/src/components/atoms/DXDropdownItem/index.js +2 -0
  28. package/src/components/atoms/DXFormLabel/DXFormLabel.stories.js +194 -0
  29. package/src/components/atoms/DXFormLabel/DXFormLabel.vue +94 -0
  30. package/src/components/atoms/DXFormLabel/index.js +2 -0
  31. package/src/components/atoms/DXIcon/DXIcon.stories.js +156 -0
  32. package/src/components/atoms/DXIcon/DXIcon.vue +102 -0
  33. package/src/components/atoms/DXIcon/index.js +3 -0
  34. package/src/components/atoms/DXIconWrapper/DXIconWrapper.stories.js +237 -0
  35. package/src/components/atoms/DXIconWrapper/DXIconWrapper.vue +79 -0
  36. package/src/components/atoms/DXIconWrapper/index.js +2 -0
  37. package/src/components/atoms/DXInputAddon/DXInputAddon.stories.js +230 -0
  38. package/src/components/atoms/DXInputAddon/DXInputAddon.vue +64 -0
  39. package/src/components/atoms/DXInputAddon/index.js +2 -0
  40. package/src/components/atoms/DXLink/DXLink.stories.js +475 -0
  41. package/src/components/atoms/DXLink/DXLink.vue +229 -0
  42. package/src/components/atoms/DXLink/index.js +2 -0
  43. package/src/components/atoms/DXLoader/DXLoader.stories.js +280 -0
  44. package/src/components/atoms/DXLoader/DXLoader.vue +78 -0
  45. package/src/components/atoms/DXLoader/index.js +2 -0
  46. package/src/components/atoms/DXProgress/DXProgress.stories.js +312 -0
  47. package/src/components/atoms/DXProgress/DXProgress.vue +85 -0
  48. package/src/components/atoms/DXProgress/index.js +2 -0
  49. package/src/components/atoms/DXQuote/DXQuote.stories.js +255 -0
  50. package/src/components/atoms/DXQuote/DXQuote.vue +97 -0
  51. package/src/components/atoms/DXQuote/index.js +2 -0
  52. package/src/components/atoms/DXRadio/DXRadio.stories.js +277 -0
  53. package/src/components/atoms/DXRadio/DXRadio.vue +144 -0
  54. package/src/components/atoms/DXRadio/index.js +2 -0
  55. package/src/components/atoms/DXSkeleton/DXSkeleton.stories.js +50 -0
  56. package/src/components/atoms/DXSkeleton/DXSkeleton.vue +19 -0
  57. package/src/components/atoms/DXSkeleton/index.js +2 -0
  58. package/src/components/atoms/DXSlider/DXSlider.stories.js +522 -0
  59. package/src/components/atoms/DXSlider/DXSlider.vue +338 -0
  60. package/src/components/atoms/DXSlider/index.js +2 -0
  61. package/src/components/atoms/DXTags/DXTags.stories.js +206 -0
  62. package/src/components/atoms/DXTags/DXTags.vue +111 -0
  63. package/src/components/atoms/DXTags/index.js +2 -0
  64. package/src/components/atoms/DXToast/DXToast.stories.js +40 -0
  65. package/src/components/atoms/DXToast/DXToast.vue +32 -0
  66. package/src/components/atoms/DXToast/index.js +2 -0
  67. package/src/components/atoms/DXToggle/DXToggle.stories.js +143 -0
  68. package/src/components/atoms/DXToggle/DXToggle.vue +142 -0
  69. package/src/components/atoms/DXToggle/index.js +2 -0
  70. package/src/components/atoms/DXToggleButton/DXToggleButton.stories.js +513 -0
  71. package/src/components/atoms/DXToggleButton/DXToggleButton.vue +140 -0
  72. package/src/components/atoms/DXToggleButton/index.js +2 -0
  73. package/src/components/atoms/DXTooltip/DXTooltip.stories.js +243 -0
  74. package/src/components/atoms/DXTooltip/DXTooltip.vue +151 -0
  75. package/src/components/atoms/DXTooltip/index.js +2 -0
  76. package/src/components/atoms/index.js +24 -0
  77. package/src/components/layout/DXBox/DXBox.stories.js +238 -0
  78. package/src/components/layout/DXBox/DXBox.vue +198 -0
  79. package/src/components/layout/DXBox/index.js +2 -0
  80. package/src/components/layout/DXContainer/DXContainer.stories.js +147 -0
  81. package/src/components/layout/DXContainer/DXContainer.vue +83 -0
  82. package/src/components/layout/DXContainer/index.js +2 -0
  83. package/src/components/layout/DXFlex/DXFlex.stories.js +210 -0
  84. package/src/components/layout/DXFlex/DXFlex.vue +149 -0
  85. package/src/components/layout/DXFlex/index.js +2 -0
  86. package/src/components/layout/DXGrid/DXGrid.stories.js +238 -0
  87. package/src/components/layout/DXGrid/DXGrid.vue +167 -0
  88. package/src/components/layout/DXGrid/index.js +2 -0
  89. package/src/components/layout/DXSpacer/DXSpacer.stories.js +187 -0
  90. package/src/components/layout/DXSpacer/DXSpacer.vue +102 -0
  91. package/src/components/layout/DXSpacer/index.js +2 -0
  92. package/src/components/layout/DXStack/DXStack.stories.js +199 -0
  93. package/src/components/layout/DXStack/DXStack.vue +140 -0
  94. package/src/components/layout/DXStack/index.js +2 -0
  95. package/src/components/layout/index.js +8 -0
  96. package/src/components/molecules/DXActionButtons/DXActionButtons.stories.js +288 -0
  97. package/src/components/molecules/DXActionButtons/DXActionButtons.vue +106 -0
  98. package/src/components/molecules/DXActionButtons/index.js +2 -0
  99. package/src/components/molecules/DXAlert/DXAlert.stories.js +70 -0
  100. package/src/components/molecules/DXAlert/DXAlert.vue +116 -0
  101. package/src/components/molecules/DXAlert/index.js +2 -0
  102. package/src/components/molecules/DXBaseTable/DXBaseTable.stories.js +433 -0
  103. package/src/components/molecules/DXBaseTable/DXBaseTable.vue +459 -0
  104. package/src/components/molecules/DXBaseTable/index.js +4 -0
  105. package/src/components/molecules/DXBreadcrumb/DXBreadcrumb.stories.js +227 -0
  106. package/src/components/molecules/DXBreadcrumb/DXBreadcrumb.vue +96 -0
  107. package/src/components/molecules/DXBreadcrumb/index.js +2 -0
  108. package/src/components/molecules/DXButtonGroup/DXButtonGroup.stories.js +26 -0
  109. package/src/components/molecules/DXButtonGroup/DXButtonGroup.vue +78 -0
  110. package/src/components/molecules/DXButtonGroup/index.js +2 -0
  111. package/src/components/molecules/DXCloseButton/DXCloseButton.stories.js +53 -0
  112. package/src/components/molecules/DXCloseButton/DXCloseButton.vue +62 -0
  113. package/src/components/molecules/DXCloseButton/index.js +3 -0
  114. package/src/components/molecules/DXComboBox/DXComboBox.stories.js +62 -0
  115. package/src/components/molecules/DXComboBox/DXComboBox.vue +167 -0
  116. package/src/components/molecules/DXComboBox/index.js +2 -0
  117. package/src/components/molecules/DXCopyField/DXCopyField.stories.js +231 -0
  118. package/src/components/molecules/DXCopyField/DXCopyField.vue +75 -0
  119. package/src/components/molecules/DXCopyField/index.js +2 -0
  120. package/src/components/molecules/DXDataFilter/DXDataFilter.stories.js +275 -0
  121. package/src/components/molecules/DXDataFilter/DXDataFilter.vue +385 -0
  122. package/src/components/molecules/DXDataFilter/index.js +2 -0
  123. package/src/components/molecules/DXDatePicker/DXDatePicker.stories.js +42 -0
  124. package/src/components/molecules/DXDatePicker/DXDatePicker.vue +121 -0
  125. package/src/components/molecules/DXDatePicker/index.js +2 -0
  126. package/src/components/molecules/DXDropdownDivider/DXDropdownDivider.vue +30 -0
  127. package/src/components/molecules/DXDropdownDivider/index.js +2 -0
  128. package/src/components/molecules/DXFileUpload/DXFileUpload.stories.js +53 -0
  129. package/src/components/molecules/DXFileUpload/DXFileUpload.vue +199 -0
  130. package/src/components/molecules/DXFileUpload/index.js +2 -0
  131. package/src/components/molecules/DXFilterGroup/DXFilterGroup.stories.js +43 -0
  132. package/src/components/molecules/DXFilterGroup/DXFilterGroup.vue +43 -0
  133. package/src/components/molecules/DXFilterGroup/index.js +2 -0
  134. package/src/components/molecules/DXFormControl/DXFormControl.stories.js +69 -0
  135. package/src/components/molecules/DXFormControl/DXFormControl.vue +72 -0
  136. package/src/components/molecules/DXFormControl/index.js +2 -0
  137. package/src/components/molecules/DXInput/DXInput.stories.js +291 -0
  138. package/src/components/molecules/DXInput/DXInput.vue +156 -0
  139. package/src/components/molecules/DXInput/index.js +3 -0
  140. package/src/components/molecules/DXInputGroup/DXInputGroup.stories.js +228 -0
  141. package/src/components/molecules/DXInputGroup/DXInputGroup.vue +64 -0
  142. package/src/components/molecules/DXInputGroup/index.js +2 -0
  143. package/src/components/molecules/DXInputMask/DXInputMask.stories.js +53 -0
  144. package/src/components/molecules/DXInputMask/DXInputMask.vue +89 -0
  145. package/src/components/molecules/DXInputMask/index.js +2 -0
  146. package/src/components/molecules/DXMenu/DXMenu.stories.js +379 -0
  147. package/src/components/molecules/DXMenu/DXMenu.vue +331 -0
  148. package/src/components/molecules/DXMenu/README.md +479 -0
  149. package/src/components/molecules/DXMenu/index.js +2 -0
  150. package/src/components/molecules/DXPagination/DXPagination.stories.js +62 -0
  151. package/src/components/molecules/DXPagination/DXPagination.vue +123 -0
  152. package/src/components/molecules/DXPagination/index.js +2 -0
  153. package/src/components/molecules/DXPasswordInput/DXPasswordInput.stories.js +42 -0
  154. package/src/components/molecules/DXPasswordInput/DXPasswordInput.vue +74 -0
  155. package/src/components/molecules/DXPasswordInput/index.js +2 -0
  156. package/src/components/molecules/DXRadioCard/DXRadioCard.stories.js +60 -0
  157. package/src/components/molecules/DXRadioCard/DXRadioCard.vue +71 -0
  158. package/src/components/molecules/DXRadioCard/index.js +2 -0
  159. package/src/components/molecules/DXRadioGroup/DXRadioGroup.stories.js +297 -0
  160. package/src/components/molecules/DXRadioGroup/DXRadioGroup.vue +73 -0
  161. package/src/components/molecules/DXRadioGroup/index.js +2 -0
  162. package/src/components/molecules/DXRating/DXRating.stories.js +322 -0
  163. package/src/components/molecules/DXRating/DXRating.vue +402 -0
  164. package/src/components/molecules/DXRating/index.js +2 -0
  165. package/src/components/molecules/DXSearchBar/DXSearchBar.stories.js +357 -0
  166. package/src/components/molecules/DXSearchBar/DXSearchBar.vue +525 -0
  167. package/src/components/molecules/DXSearchBar/index.js +2 -0
  168. package/src/components/molecules/DXSearchSelect/DXSearchSelect.stories.js +50 -0
  169. package/src/components/molecules/DXSearchSelect/DXSearchSelect.vue +207 -0
  170. package/src/components/molecules/DXSearchSelect/index.js +2 -0
  171. package/src/components/molecules/DXSegmentedControl/DXSegmentedControl.stories.js +326 -0
  172. package/src/components/molecules/DXSegmentedControl/DXSegmentedControl.vue +116 -0
  173. package/src/components/molecules/DXSegmentedControl/index.js +2 -0
  174. package/src/components/molecules/DXSelect/DXSelect.stories.js +259 -0
  175. package/src/components/molecules/DXSelect/DXSelect.vue +149 -0
  176. package/src/components/molecules/DXSelect/index.js +3 -0
  177. package/src/components/molecules/DXStatCard/DXStatCard.stories.js +335 -0
  178. package/src/components/molecules/DXStatCard/DXStatCard.vue +309 -0
  179. package/src/components/molecules/DXStatCard/index.js +2 -0
  180. package/src/components/molecules/DXTableFiltersPanel/DXTableFiltersPanel.vue +72 -0
  181. package/src/components/molecules/DXTableFiltersPanel/index.js +7 -0
  182. package/src/components/molecules/DXTablePagination/DXTablePagination.stories.js +236 -0
  183. package/src/components/molecules/DXTablePagination/DXTablePagination.vue +93 -0
  184. package/src/components/molecules/DXTablePagination/index.js +2 -0
  185. package/src/components/molecules/DXTableToolbar/DXTableToolbar.stories.js +271 -0
  186. package/src/components/molecules/DXTableToolbar/DXTableToolbar.vue +102 -0
  187. package/src/components/molecules/DXTableToolbar/index.js +2 -0
  188. package/src/components/molecules/DXTextarea/DXTextarea.stories.js +239 -0
  189. package/src/components/molecules/DXTextarea/DXTextarea.vue +158 -0
  190. package/src/components/molecules/DXTextarea/index.js +3 -0
  191. package/src/components/molecules/DXTimePicker/DXTimePicker.stories.js +282 -0
  192. package/src/components/molecules/DXTimePicker/DXTimePicker.vue +640 -0
  193. package/src/components/molecules/DXTimePicker/index.js +2 -0
  194. package/src/components/molecules/DXValidationIcon/DXValidationIcon.stories.js +60 -0
  195. package/src/components/molecules/DXValidationIcon/DXValidationIcon.vue +53 -0
  196. package/src/components/molecules/DXValidationIcon/index.js +3 -0
  197. package/src/components/molecules/index.js +34 -0
  198. package/src/components/organisms/DXAccordion/DXAccordion.stories.js +33 -0
  199. package/src/components/organisms/DXAccordion/DXAccordion.vue +104 -0
  200. package/src/components/organisms/DXAccordion/index.js +2 -0
  201. package/src/components/organisms/DXAppLayout/DXAppLayout.stories.js +689 -0
  202. package/src/components/organisms/DXAppLayout/DXAppLayout.vue +460 -0
  203. package/src/components/organisms/DXAppLayout/index.js +2 -0
  204. package/src/components/organisms/DXAuthenticationForm/DXAuthenticationForm.stories.js +232 -0
  205. package/src/components/organisms/DXAuthenticationForm/DXAuthenticationForm.vue +458 -0
  206. package/src/components/organisms/DXAuthenticationForm/index.js +2 -0
  207. package/src/components/organisms/DXChartContainer/DXChartContainer.stories.js +286 -0
  208. package/src/components/organisms/DXChartContainer/DXChartContainer.vue +273 -0
  209. package/src/components/organisms/DXChartContainer/index.js +2 -0
  210. package/src/components/organisms/DXChatInterface/DXChatInterface.stories.js +164 -0
  211. package/src/components/organisms/DXChatInterface/DXChatInterface.vue +583 -0
  212. package/src/components/organisms/DXChatInterface/index.js +2 -0
  213. package/src/components/organisms/DXCommentSection/DXCommentSection.stories.js +173 -0
  214. package/src/components/organisms/DXCommentSection/DXCommentSection.vue +487 -0
  215. package/src/components/organisms/DXCommentSection/index.js +2 -0
  216. package/src/components/organisms/DXDashboardGrid/DXDashboardGrid.stories.js +331 -0
  217. package/src/components/organisms/DXDashboardGrid/DXDashboardGrid.vue +309 -0
  218. package/src/components/organisms/DXDashboardGrid/index.js +2 -0
  219. package/src/components/organisms/DXDashboardWidget/DXDashboardWidget.stories.js +271 -0
  220. package/src/components/organisms/DXDashboardWidget/DXDashboardWidget.vue +260 -0
  221. package/src/components/organisms/DXDashboardWidget/index.js +2 -0
  222. package/src/components/organisms/DXDataTable/DXDataTable.stories.js +247 -0
  223. package/src/components/organisms/DXDataTable/DXDataTable.vue +496 -0
  224. package/src/components/organisms/DXDataTable/index.js +2 -0
  225. package/src/components/organisms/DXDropdown/DXDropdown.stories.js +795 -0
  226. package/src/components/organisms/DXDropdown/DXDropdown.vue +238 -0
  227. package/src/components/organisms/DXDropdown/index.js +2 -0
  228. package/src/components/organisms/DXEmptyState/DXEmptyState.stories.js +37 -0
  229. package/src/components/organisms/DXEmptyState/DXEmptyState.vue +41 -0
  230. package/src/components/organisms/DXEmptyState/index.js +2 -0
  231. package/src/components/organisms/DXFormWizard/DXFormWizard.stories.js +378 -0
  232. package/src/components/organisms/DXFormWizard/DXFormWizard.vue +578 -0
  233. package/src/components/organisms/DXFormWizard/index.js +2 -0
  234. package/src/components/organisms/DXHeaderBar/DXHeaderBar.stories.js +448 -0
  235. package/src/components/organisms/DXHeaderBar/DXHeaderBar.vue +190 -0
  236. package/src/components/organisms/DXHeaderBar/index.js +2 -0
  237. package/src/components/organisms/DXMediaGallery/DXMediaGallery.stories.js +347 -0
  238. package/src/components/organisms/DXMediaGallery/DXMediaGallery.vue +422 -0
  239. package/src/components/organisms/DXMediaGallery/index.js +2 -0
  240. package/src/components/organisms/DXModal/DXModal.stories.js +138 -0
  241. package/src/components/organisms/DXModal/DXModal.vue +213 -0
  242. package/src/components/organisms/DXModal/index.js +2 -0
  243. package/src/components/organisms/DXNotificationCenter/DXNotificationCenter.stories.js +183 -0
  244. package/src/components/organisms/DXNotificationCenter/DXNotificationCenter.vue +566 -0
  245. package/src/components/organisms/DXNotificationCenter/index.js +2 -0
  246. package/src/components/organisms/DXReportGenerator/DXReportGenerator.stories.js +199 -0
  247. package/src/components/organisms/DXReportGenerator/DXReportGenerator.vue +344 -0
  248. package/src/components/organisms/DXReportGenerator/index.js +2 -0
  249. package/src/components/organisms/DXSettingsPanel/DXSettingsPanel.stories.js +245 -0
  250. package/src/components/organisms/DXSettingsPanel/DXSettingsPanel.vue +454 -0
  251. package/src/components/organisms/DXSettingsPanel/index.js +2 -0
  252. package/src/components/organisms/DXSidebar/DXSidebar.stories.js +316 -0
  253. package/src/components/organisms/DXSidebar/DXSidebar.vue +212 -0
  254. package/src/components/organisms/DXSidebar/index.js +2 -0
  255. package/src/components/organisms/DXSidebarMenu/DATA_STRUCTURE.md +299 -0
  256. package/src/components/organisms/DXSidebarMenu/DXSidebarMenu.stories.js +729 -0
  257. package/src/components/organisms/DXSidebarMenu/DXSidebarMenu.vue +257 -0
  258. package/src/components/organisms/DXSidebarMenu/DXSidebarMenuItem.vue +249 -0
  259. package/src/components/organisms/DXSidebarMenu/README.md +333 -0
  260. package/src/components/organisms/DXSidebarMenu/index.js +3 -0
  261. package/src/components/organisms/DXTable/DXTable.stories.js +550 -0
  262. package/src/components/organisms/DXTable/DXTable.vue +324 -0
  263. package/src/components/organisms/DXTable/index.js +2 -0
  264. package/src/components/organisms/DXTabs/DXTabs.stories.js +407 -0
  265. package/src/components/organisms/DXTabs/DXTabs.vue +301 -0
  266. package/src/components/organisms/DXTabs/index.js +2 -0
  267. package/src/components/organisms/DXUserProfileCard/DXUserProfileCard.stories.js +194 -0
  268. package/src/components/organisms/DXUserProfileCard/DXUserProfileCard.vue +403 -0
  269. package/src/components/organisms/DXUserProfileCard/index.js +2 -0
  270. package/src/components/organisms/DXWizard/DXWizard.stories.js +212 -0
  271. package/src/components/organisms/DXWizard/DXWizard.vue +615 -0
  272. package/src/components/organisms/DXWizard/index.js +2 -0
  273. package/src/components/organisms/index.js +25 -0
  274. package/src/components/typography/DXBlockquote/DXBlockquote.stories.js +33 -0
  275. package/src/components/typography/DXBlockquote/DXBlockquote.vue +44 -0
  276. package/src/components/typography/DXBlockquote/index.js +2 -0
  277. package/src/components/typography/DXCode/DXCode.stories.js +29 -0
  278. package/src/components/typography/DXCode/DXCode.vue +46 -0
  279. package/src/components/typography/DXCode/index.js +2 -0
  280. package/src/components/typography/DXHeading/DXHeading.stories.js +54 -0
  281. package/src/components/typography/DXHeading/DXHeading.vue +68 -0
  282. package/src/components/typography/DXHeading/index.js +2 -0
  283. package/src/components/typography/DXLabel/DXLabel.stories.js +40 -0
  284. package/src/components/typography/DXLabel/DXLabel.vue +49 -0
  285. package/src/components/typography/DXLabel/index.js +2 -0
  286. package/src/components/typography/DXList/DXList.stories.js +50 -0
  287. package/src/components/typography/DXList/DXList.vue +55 -0
  288. package/src/components/typography/DXList/index.js +2 -0
  289. package/src/components/typography/DXText/DXText.stories.js +47 -0
  290. package/src/components/typography/DXText/DXText.vue +67 -0
  291. package/src/components/typography/DXText/index.js +2 -0
  292. package/src/components/typography/index.js +8 -0
  293. package/src/components/utilities/DXAnimatePresence/DXAnimatePresence.stories.js +335 -0
  294. package/src/components/utilities/DXAnimatePresence/DXAnimatePresence.vue +207 -0
  295. package/src/components/utilities/DXAnimatePresence/index.js +2 -0
  296. package/src/components/utilities/DXBreakpointProvider/DXBreakpointProvider.stories.js +321 -0
  297. package/src/components/utilities/DXBreakpointProvider/DXBreakpointProvider.vue +158 -0
  298. package/src/components/utilities/DXBreakpointProvider/index.js +2 -0
  299. package/src/components/utilities/DXObserver/DXObserver.stories.js +324 -0
  300. package/src/components/utilities/DXObserver/DXObserver.vue +182 -0
  301. package/src/components/utilities/DXObserver/index.js +2 -0
  302. package/src/components/utilities/DXPortal/DXPortal.stories.js +267 -0
  303. package/src/components/utilities/DXPortal/DXPortal.vue +69 -0
  304. package/src/components/utilities/DXPortal/index.js +2 -0
  305. package/src/components/utilities/DXStaggeredAnimation/DXStaggeredAnimation.stories.js +339 -0
  306. package/src/components/utilities/DXStaggeredAnimation/DXStaggeredAnimation.vue +155 -0
  307. package/src/components/utilities/DXStaggeredAnimation/index.js +2 -0
  308. package/src/components/utilities/DXThemeProvider/DXThemeProvider.stories.js +327 -0
  309. package/src/components/utilities/DXThemeProvider/DXThemeProvider.vue +227 -0
  310. package/src/components/utilities/DXThemeProvider/index.js +2 -0
  311. package/src/components/utilities/DXTransitionGroup/DXTransitionGroup.stories.js +368 -0
  312. package/src/components/utilities/DXTransitionGroup/DXTransitionGroup.vue +212 -0
  313. package/src/components/utilities/DXTransitionGroup/index.js +2 -0
  314. package/src/components/utilities/index.js +9 -0
  315. package/src/composables/useAnimation.js +264 -0
  316. package/src/composables/useClassComposition.js +35 -0
  317. package/src/composables/useDataAttributes.js +83 -0
  318. package/src/composables/useMenu.js +88 -0
  319. package/src/composables/useSize.js +135 -0
  320. package/src/composables/useSpacing.js +37 -0
  321. package/src/composables/useTableColumns.js +88 -0
  322. package/src/composables/useTableData.js +82 -0
  323. package/src/composables/useTableFilter.js +158 -0
  324. package/src/composables/useTablePagination.js +89 -0
  325. package/src/composables/useTableSelection.js +77 -0
  326. package/src/composables/useTableSort.js +75 -0
  327. package/src/composables/useTabsScroll.js +88 -0
  328. package/src/composables/useVariant.js +700 -0
  329. package/src/index.js +86 -0
  330. package/src/styles/animations.css +171 -0
  331. package/src/styles/index.css +99 -0
  332. package/src/styles/tokens.js +123 -0
  333. package/src/utils/propTypes.js +77 -0
  334. package/src/utils/toggleButtonPresets.js +115 -0
@@ -0,0 +1,2 @@
1
+ export { default } from './DXThemeProvider.vue';
2
+
@@ -0,0 +1,368 @@
1
+ import { ref } from 'vue';
2
+ import DXTransitionGroup from './DXTransitionGroup.vue';
3
+ import DXCard from '../../atoms/DXCard/DXCard.vue';
4
+ import DXButton from '../../atoms/DXButton/DXButton.vue';
5
+
6
+ export default {
7
+ title: 'Utilities/DXTransitionGroup',
8
+ component: DXTransitionGroup,
9
+ tags: ['autodocs'],
10
+ parameters: {
11
+ docs: {
12
+ description: {
13
+ component: `
14
+ # DXTransitionGroup
15
+
16
+ Компонент для групповых анимаций списков элементов с поддержкой различных типов переходов.
17
+
18
+ ## Назначение
19
+
20
+ DXTransitionGroup предоставляет обертку над Vue \`<TransitionGroup>\` с предустановленными анимациями
21
+ для списков, сеток и коллекций элементов. Автоматически анимирует добавление, удаление и перемещение элементов.
22
+
23
+ ## Архитектура
24
+
25
+ ### Использует
26
+ - Vue \`<TransitionGroup>\` - встроенный компонент Vue для групповых анимаций
27
+ - \`useAnimation\` composable - для transition конфигураций
28
+ - \`useClassComposition\` composable - для стилей
29
+
30
+ ### Используется в
31
+ - \`DXList\` - для анимации элементов списка
32
+ - \`DXTable\` - для анимации строк таблицы
33
+ - Любые компоненты со списками элементов
34
+
35
+ ## Внутренняя логика
36
+
37
+ ### Типы анимаций
38
+ - **fade**: Плавное появление/исчезание
39
+ - **fade-scale**: Появление/исчезание с масштабированием
40
+ - **slide-right**: Скольжение справа налево
41
+ - **slide-left**: Скольжение слева направо
42
+ - **slide-up**: Скольжение снизу вверх
43
+ - **slide-down**: Скольжение сверху вниз
44
+
45
+ ### Move анимация
46
+ TransitionGroup автоматически анимирует перемещение элементов при изменении порядка.
47
+
48
+ ## Особенности
49
+
50
+ ### Кастомные имена
51
+ Можно указать кастомное имя transition через prop \`name\` для использования собственных CSS классов.
52
+
53
+ ### Длительность
54
+ Длительность анимации настраивается через prop \`duration\` и применяется ко всем CSS transitions.
55
+ `,
56
+ },
57
+ },
58
+ },
59
+ argTypes: {
60
+ name: {
61
+ control: 'text',
62
+ description: 'Имя transition (используется для CSS классов).',
63
+ table: {
64
+ type: { summary: 'string' },
65
+ defaultValue: { summary: 'fade' },
66
+ category: 'Appearance',
67
+ },
68
+ },
69
+ tag: {
70
+ control: 'text',
71
+ description: 'HTML тег для TransitionGroup.',
72
+ table: {
73
+ type: { summary: 'string' },
74
+ defaultValue: { summary: 'div' },
75
+ category: 'Appearance',
76
+ },
77
+ },
78
+ type: {
79
+ control: 'select',
80
+ options: ['fade', 'fade-scale', 'slide-right', 'slide-left', 'slide-up', 'slide-down'],
81
+ description: 'Тип анимации.',
82
+ table: {
83
+ type: { summary: 'string' },
84
+ defaultValue: { summary: 'fade' },
85
+ category: 'Appearance',
86
+ },
87
+ },
88
+ duration: {
89
+ control: 'number',
90
+ min: 0,
91
+ max: 2000,
92
+ step: 50,
93
+ description: 'Длительность анимации в миллисекундах.',
94
+ table: {
95
+ type: { summary: 'number' },
96
+ defaultValue: { summary: '200' },
97
+ category: 'Appearance',
98
+ },
99
+ },
100
+ },
101
+ };
102
+
103
+ export const Default = {
104
+ args: {
105
+ type: 'fade',
106
+ tag: 'div',
107
+ },
108
+ parameters: {
109
+ docs: {
110
+ description: {
111
+ story: 'Базовое использование для анимации списка элементов с fade эффектом.',
112
+ },
113
+ },
114
+ },
115
+ render: (args) => ({
116
+ components: { DXTransitionGroup, DXCard, DXButton },
117
+ setup() {
118
+ const items = ref([
119
+ { id: 1, name: 'Элемент 1' },
120
+ { id: 2, name: 'Элемент 2' },
121
+ { id: 3, name: 'Элемент 3' },
122
+ ]);
123
+
124
+ const addItem = () => {
125
+ const newId = Math.max(...items.value.map(i => i.id)) + 1;
126
+ items.value.push({ id: newId, name: `Элемент ${newId}` });
127
+ };
128
+
129
+ const removeItem = (id) => {
130
+ items.value = items.value.filter(item => item.id !== id);
131
+ };
132
+
133
+ return { args, items, addItem, removeItem };
134
+ },
135
+ template: `
136
+ <div class="space-y-4">
137
+ <DXButton @click="addItem">Добавить элемент</DXButton>
138
+ <DXTransitionGroup v-bind="args" class="space-y-2">
139
+ <DXCard
140
+ v-for="item in items"
141
+ :key="item.id"
142
+ class="p-4 flex items-center justify-between"
143
+ >
144
+ <span>{{ item.name }}</span>
145
+ <DXButton size="sm" variant="ghost" @click="removeItem(item.id)">
146
+ Удалить
147
+ </DXButton>
148
+ </DXCard>
149
+ </DXTransitionGroup>
150
+ </div>
151
+ `,
152
+ }),
153
+ };
154
+
155
+ export const FadeScale = {
156
+ args: {
157
+ type: 'fade-scale',
158
+ tag: 'div',
159
+ },
160
+ parameters: {
161
+ docs: {
162
+ description: {
163
+ story: 'Анимация с масштабированием - элементы появляются с увеличением масштаба.',
164
+ },
165
+ },
166
+ },
167
+ render: (args) => ({
168
+ components: { DXTransitionGroup, DXCard, DXButton },
169
+ setup() {
170
+ const items = ref([
171
+ { id: 1, name: 'Карточка 1' },
172
+ { id: 2, name: 'Карточка 2' },
173
+ ]);
174
+
175
+ const addItem = () => {
176
+ const newId = Math.max(...items.value.map(i => i.id)) + 1;
177
+ items.value.push({ id: newId, name: `Карточка ${newId}` });
178
+ };
179
+
180
+ const removeItem = (id) => {
181
+ items.value = items.value.filter(item => item.id !== id);
182
+ };
183
+
184
+ return { args, items, addItem, removeItem };
185
+ },
186
+ template: `
187
+ <div class="space-y-4">
188
+ <DXButton @click="addItem">Добавить карточку</DXButton>
189
+ <DXTransitionGroup v-bind="args" class="grid grid-cols-3 gap-4">
190
+ <DXCard
191
+ v-for="item in items"
192
+ :key="item.id"
193
+ class="p-4"
194
+ >
195
+ <h3 class="font-semibold mb-2">{{ item.name }}</h3>
196
+ <DXButton size="sm" variant="ghost" @click="removeItem(item.id)">
197
+ Удалить
198
+ </DXButton>
199
+ </DXCard>
200
+ </DXTransitionGroup>
201
+ </div>
202
+ `,
203
+ }),
204
+ };
205
+
206
+ export const SlideRight = {
207
+ args: {
208
+ type: 'slide-right',
209
+ tag: 'ul',
210
+ },
211
+ parameters: {
212
+ docs: {
213
+ description: {
214
+ story: 'Анимация скольжения справа налево. Элементы появляются слева и исчезают вправо.',
215
+ },
216
+ },
217
+ },
218
+ render: (args) => ({
219
+ components: { DXTransitionGroup, DXCard, DXButton },
220
+ setup() {
221
+ const items = ref([
222
+ { id: 1, name: 'Задача 1' },
223
+ { id: 2, name: 'Задача 2' },
224
+ ]);
225
+
226
+ const addItem = () => {
227
+ const newId = Math.max(...items.value.map(i => i.id)) + 1;
228
+ items.value.push({ id: newId, name: `Задача ${newId}` });
229
+ };
230
+
231
+ const removeItem = (id) => {
232
+ items.value = items.value.filter(item => item.id !== id);
233
+ };
234
+
235
+ return { args, items, addItem, removeItem };
236
+ },
237
+ template: `
238
+ <div class="space-y-4">
239
+ <DXButton @click="addItem">Добавить задачу</DXButton>
240
+ <DXTransitionGroup v-bind="args" class="space-y-2 list-none">
241
+ <li
242
+ v-for="item in items"
243
+ :key="item.id"
244
+ >
245
+ <DXCard class="p-4 flex items-center justify-between">
246
+ <span>{{ item.name }}</span>
247
+ <DXButton size="sm" variant="ghost" @click="removeItem(item.id)">
248
+ Удалить
249
+ </DXButton>
250
+ </DXCard>
251
+ </li>
252
+ </DXTransitionGroup>
253
+ </div>
254
+ `,
255
+ }),
256
+ };
257
+
258
+ export const CustomDuration = {
259
+ args: {
260
+ type: 'fade',
261
+ duration: 500,
262
+ },
263
+ parameters: {
264
+ docs: {
265
+ description: {
266
+ story: 'Кастомная длительность анимации. В этом примере анимация длится 500ms вместо стандартных 200ms.',
267
+ },
268
+ },
269
+ },
270
+ render: (args) => ({
271
+ components: { DXTransitionGroup, DXCard, DXButton },
272
+ setup() {
273
+ const items = ref([
274
+ { id: 1, name: 'Элемент 1' },
275
+ { id: 2, name: 'Элемент 2' },
276
+ ]);
277
+
278
+ const addItem = () => {
279
+ const newId = Math.max(...items.value.map(i => i.id)) + 1;
280
+ items.value.push({ id: newId, name: `Элемент ${newId}` });
281
+ };
282
+
283
+ const removeItem = (id) => {
284
+ items.value = items.value.filter(item => item.id !== id);
285
+ };
286
+
287
+ return { args, items, addItem, removeItem };
288
+ },
289
+ template: `
290
+ <div class="space-y-4">
291
+ <DXButton @click="addItem">Добавить элемент</DXButton>
292
+ <DXTransitionGroup v-bind="args" class="space-y-2">
293
+ <DXCard
294
+ v-for="item in items"
295
+ :key="item.id"
296
+ class="p-4 flex items-center justify-between"
297
+ >
298
+ <span>{{ item.name }}</span>
299
+ <DXButton size="sm" variant="ghost" @click="removeItem(item.id)">
300
+ Удалить
301
+ </DXButton>
302
+ </DXCard>
303
+ </DXTransitionGroup>
304
+ </div>
305
+ `,
306
+ }),
307
+ };
308
+
309
+ export const AllTypes = {
310
+ parameters: {
311
+ docs: {
312
+ description: {
313
+ story: 'Демонстрация всех типов анимаций. Переключайте тип через контролы.',
314
+ },
315
+ },
316
+ },
317
+ render: () => ({
318
+ components: { DXTransitionGroup, DXCard, DXButton },
319
+ setup() {
320
+ const type = ref('fade');
321
+ const items = ref([
322
+ { id: 1, name: 'Элемент 1' },
323
+ { id: 2, name: 'Элемент 2' },
324
+ { id: 3, name: 'Элемент 3' },
325
+ ]);
326
+
327
+ const addItem = () => {
328
+ const newId = Math.max(...items.value.map(i => i.id)) + 1;
329
+ items.value.push({ id: newId, name: `Элемент ${newId}` });
330
+ };
331
+
332
+ const removeItem = (id) => {
333
+ items.value = items.value.filter(item => item.id !== id);
334
+ };
335
+
336
+ return { type, items, addItem, removeItem };
337
+ },
338
+ template: `
339
+ <div class="space-y-4">
340
+ <div class="flex gap-2">
341
+ <DXButton
342
+ v-for="t in ['fade', 'fade-scale', 'slide-right', 'slide-left', 'slide-up', 'slide-down']"
343
+ :key="t"
344
+ :variant="type === t ? 'primary' : 'ghost'"
345
+ size="sm"
346
+ @click="type = t"
347
+ >
348
+ {{ t }}
349
+ </DXButton>
350
+ </div>
351
+ <DXButton @click="addItem">Добавить элемент</DXButton>
352
+ <DXTransitionGroup :type="type" class="space-y-2">
353
+ <DXCard
354
+ v-for="item in items"
355
+ :key="item.id"
356
+ class="p-4 flex items-center justify-between"
357
+ >
358
+ <span>{{ item.name }}</span>
359
+ <DXButton size="sm" variant="ghost" @click="removeItem(item.id)">
360
+ Удалить
361
+ </DXButton>
362
+ </DXCard>
363
+ </DXTransitionGroup>
364
+ </div>
365
+ `,
366
+ }),
367
+ };
368
+
@@ -0,0 +1,212 @@
1
+ <template>
2
+ <TransitionGroup
3
+ :tag="tag"
4
+ :name="transitionName"
5
+ :class="transitionClasses"
6
+ :data-component="'DXTransitionGroup'"
7
+ :data-type="type"
8
+ :data-duration="duration"
9
+ v-bind="$attrs"
10
+ >
11
+ <slot />
12
+ </TransitionGroup>
13
+ </template>
14
+
15
+ <script setup>
16
+ import { computed } from "vue";
17
+ import { useClassComposition } from "@/composables/useClassComposition";
18
+ import {
19
+ FADE_TRANSITION,
20
+ FADE_SCALE_TRANSITION,
21
+ SLIDE_RIGHT_TRANSITION,
22
+ SLIDE_LEFT_TRANSITION,
23
+ SLIDE_UP_TRANSITION,
24
+ SLIDE_DOWN_TRANSITION,
25
+ } from "@/composables/useAnimation";
26
+
27
+ const props = defineProps({
28
+ /**
29
+ * Имя transition (используется для CSS классов)
30
+ * @default 'fade'
31
+ */
32
+ name: { type: String, default: "fade" },
33
+ /**
34
+ * HTML тег для TransitionGroup
35
+ * @default 'div'
36
+ */
37
+ tag: { type: String, default: "div" },
38
+ /**
39
+ * Тип анимации: fade | fade-scale | slide-right | slide-left | slide-up | slide-down
40
+ * @default 'fade'
41
+ */
42
+ type: {
43
+ type: String,
44
+ default: "fade",
45
+ validator: (v) =>
46
+ [
47
+ "fade",
48
+ "fade-scale",
49
+ "slide-right",
50
+ "slide-left",
51
+ "slide-up",
52
+ "slide-down",
53
+ ].includes(v),
54
+ },
55
+ /**
56
+ * Длительность анимации в миллисекундах
57
+ * @default 200
58
+ */
59
+ duration: { type: Number, default: 200 },
60
+ });
61
+
62
+ /**
63
+ * Имя transition для CSS классов
64
+ *
65
+ * @description
66
+ * Используется для генерации CSS классов анимации.
67
+ * Если указан кастомный name, используется он, иначе генерируется на основе type.
68
+ *
69
+ * @returns {string} Имя transition
70
+ */
71
+ const transitionName = computed(() => {
72
+ if (props.name !== "fade") {
73
+ return props.name;
74
+ }
75
+ return props.type;
76
+ });
77
+
78
+ /**
79
+ * Классы для TransitionGroup
80
+ *
81
+ * @description
82
+ * Базовые классы для контейнера TransitionGroup.
83
+ *
84
+ * @returns {Array} Массив классов
85
+ */
86
+ const transitionClasses = computed(() => useClassComposition());
87
+
88
+ /**
89
+ * Конфигурация transition на основе типа
90
+ *
91
+ * @description
92
+ * Возвращает конфигурацию transition из useAnimation composable
93
+ * в зависимости от выбранного типа анимации.
94
+ *
95
+ * @returns {Object} Конфигурация transition
96
+ */
97
+ const transitionConfig = computed(() => {
98
+ const configs = {
99
+ fade: FADE_TRANSITION,
100
+ "fade-scale": FADE_SCALE_TRANSITION,
101
+ "slide-right": SLIDE_RIGHT_TRANSITION,
102
+ "slide-left": SLIDE_LEFT_TRANSITION,
103
+ "slide-up": SLIDE_UP_TRANSITION,
104
+ "slide-down": SLIDE_DOWN_TRANSITION,
105
+ };
106
+ return configs[props.type] || FADE_TRANSITION;
107
+ });
108
+ </script>
109
+
110
+ <style scoped>
111
+ /* Fade transition */
112
+ .fade-enter-active,
113
+ .fade-leave-active {
114
+ transition: opacity v-bind("duration + 'ms'") ease;
115
+ }
116
+
117
+ .fade-enter-from,
118
+ .fade-leave-to {
119
+ opacity: 0;
120
+ }
121
+
122
+ /* Fade scale transition */
123
+ .fade-scale-enter-active,
124
+ .fade-scale-leave-active {
125
+ transition: all v-bind("duration + 'ms'") ease-out;
126
+ }
127
+
128
+ .fade-scale-enter-from {
129
+ opacity: 0;
130
+ transform: scale(0.95);
131
+ }
132
+
133
+ .fade-scale-leave-to {
134
+ opacity: 0;
135
+ transform: scale(0.95);
136
+ }
137
+
138
+ /* Slide right transition */
139
+ .slide-right-enter-active,
140
+ .slide-right-leave-active {
141
+ transition: all v-bind("duration + 'ms'") ease-out;
142
+ }
143
+
144
+ .slide-right-enter-from {
145
+ opacity: 0;
146
+ transform: translateX(-30px);
147
+ }
148
+
149
+ .slide-right-leave-to {
150
+ opacity: 0;
151
+ transform: translateX(30px);
152
+ }
153
+
154
+ /* Slide left transition */
155
+ .slide-left-enter-active,
156
+ .slide-left-leave-active {
157
+ transition: all v-bind("duration + 'ms'") ease-out;
158
+ }
159
+
160
+ .slide-left-enter-from {
161
+ opacity: 0;
162
+ transform: translateX(30px);
163
+ }
164
+
165
+ .slide-left-leave-to {
166
+ opacity: 0;
167
+ transform: translateX(-30px);
168
+ }
169
+
170
+ /* Slide up transition */
171
+ .slide-up-enter-active,
172
+ .slide-up-leave-active {
173
+ transition: all v-bind("duration + 'ms'") ease-out;
174
+ }
175
+
176
+ .slide-up-enter-from {
177
+ opacity: 0;
178
+ transform: translateY(30px);
179
+ }
180
+
181
+ .slide-up-leave-to {
182
+ opacity: 0;
183
+ transform: translateY(-30px);
184
+ }
185
+
186
+ /* Slide down transition */
187
+ .slide-down-enter-active,
188
+ .slide-down-leave-active {
189
+ transition: all v-bind("duration + 'ms'") ease-out;
190
+ }
191
+
192
+ .slide-down-enter-from {
193
+ opacity: 0;
194
+ transform: translateY(-30px);
195
+ }
196
+
197
+ .slide-down-leave-to {
198
+ opacity: 0;
199
+ transform: translateY(30px);
200
+ }
201
+
202
+ /* Move transition для TransitionGroup */
203
+ .fade-move,
204
+ .fade-scale-move,
205
+ .slide-right-move,
206
+ .slide-left-move,
207
+ .slide-up-move,
208
+ .slide-down-move {
209
+ transition: transform v-bind("duration + 'ms'") ease;
210
+ }
211
+ </style>
212
+
@@ -0,0 +1,2 @@
1
+ export { default } from './DXTransitionGroup.vue';
2
+
@@ -0,0 +1,9 @@
1
+ // Utility components
2
+ export { default as DXAnimatePresence } from './DXAnimatePresence';
3
+ export { default as DXBreakpointProvider } from './DXBreakpointProvider';
4
+ export { default as DXObserver } from './DXObserver';
5
+ export { default as DXPortal } from './DXPortal';
6
+ export { default as DXStaggeredAnimation } from './DXStaggeredAnimation';
7
+ export { default as DXThemeProvider } from './DXThemeProvider';
8
+ export { default as DXTransitionGroup } from './DXTransitionGroup';
9
+