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