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,231 @@
1
+ import DXCopyField from './DXCopyField.vue';
2
+ import {
3
+ ClipboardDocumentIcon,
4
+ KeyIcon,
5
+ LinkIcon,
6
+ CodeBracketIcon,
7
+ DocumentDuplicateIcon,
8
+ } from '@heroicons/vue/24/outline';
9
+
10
+ export default {
11
+ title: 'Molecules/DXCopyField',
12
+ component: DXCopyField,
13
+ tags: ['autodocs'],
14
+ argTypes: {
15
+ copyIconAnimation: {
16
+ control: 'select',
17
+ options: ['none', 'wiggle', 'scale', 'rotate'],
18
+ },
19
+ copiedIconAnimation: {
20
+ control: 'select',
21
+ options: ['none', 'wiggle', 'scale', 'rotate'],
22
+ },
23
+ },
24
+ };
25
+
26
+ export const Default = {
27
+ args: {
28
+ value: 'https://example.com/share/abc123',
29
+ label: 'Share Link'
30
+ },
31
+ };
32
+
33
+ export const Code = {
34
+ args: {
35
+ value: 'npm install dxd-style-code',
36
+ label: 'Installation'
37
+ },
38
+ };
39
+
40
+ export const ApiKey = {
41
+ args: {
42
+ value: 'sk_live_abc123xyz789',
43
+ label: 'API Key'
44
+ },
45
+ };
46
+
47
+ // С анимацией wiggle
48
+ export const WiggleAnimation = {
49
+ args: {
50
+ value: 'https://example.com/share/abc123',
51
+ label: 'Share Link',
52
+ copyIconAnimation: 'wiggle',
53
+ copiedIconAnimation: 'wiggle',
54
+ },
55
+ };
56
+
57
+ // С анимацией scale (по умолчанию)
58
+ export const ScaleAnimation = {
59
+ args: {
60
+ value: 'npm install dxd-style-code',
61
+ label: 'Installation',
62
+ copyIconAnimation: 'scale',
63
+ copiedIconAnimation: 'scale',
64
+ },
65
+ };
66
+
67
+ // С анимацией rotate
68
+ export const RotateAnimation = {
69
+ args: {
70
+ value: 'sk_live_abc123xyz789',
71
+ label: 'API Key',
72
+ copyIconAnimation: 'rotate',
73
+ copiedIconAnimation: 'rotate',
74
+ },
75
+ };
76
+
77
+ // Без анимации
78
+ export const NoAnimation = {
79
+ args: {
80
+ value: 'https://example.com/share',
81
+ label: 'Link',
82
+ copyIconAnimation: 'none',
83
+ copiedIconAnimation: 'none',
84
+ },
85
+ };
86
+
87
+ // Кастомные иконки
88
+ export const CustomIcons = {
89
+ render: () => ({
90
+ components: { DXCopyField },
91
+ setup() {
92
+ return {
93
+ KeyIcon,
94
+ LinkIcon,
95
+ CodeBracketIcon,
96
+ };
97
+ },
98
+ template: `
99
+ <div class="space-y-6">
100
+ <DXCopyField
101
+ value="sk_live_abc123xyz789"
102
+ label="API Key"
103
+ :copy-icon="KeyIcon"
104
+ copy-icon-animation="wiggle"
105
+ />
106
+
107
+ <DXCopyField
108
+ value="https://example.com/invite/abc123"
109
+ label="Invite Link"
110
+ :copy-icon="LinkIcon"
111
+ copy-icon-animation="scale"
112
+ />
113
+
114
+ <DXCopyField
115
+ value="import { DXButton } from 'dxd-style-code'"
116
+ label="Import Code"
117
+ :copy-icon="CodeBracketIcon"
118
+ copy-icon-animation="rotate"
119
+ />
120
+ </div>
121
+ `,
122
+ }),
123
+ };
124
+
125
+ // Разные анимации для состояний
126
+ export const MixedAnimations = {
127
+ args: {
128
+ value: 'https://example.com/share/abc123',
129
+ label: 'Share Link',
130
+ copyIconAnimation: 'wiggle',
131
+ copiedIconAnimation: 'scale',
132
+ },
133
+ };
134
+
135
+ // Все варианты
136
+ export const AllVariants = {
137
+ render: () => ({
138
+ components: { DXCopyField },
139
+ setup() {
140
+ return {
141
+ ClipboardDocumentIcon,
142
+ KeyIcon,
143
+ LinkIcon,
144
+ DocumentDuplicateIcon,
145
+ };
146
+ },
147
+ template: `
148
+ <div class="space-y-6">
149
+ <div>
150
+ <h3 class="text-sm font-semibold text-slate-900 mb-3">Default (Scale animation)</h3>
151
+ <DXCopyField
152
+ value="https://example.com/share/abc123"
153
+ label="Share Link"
154
+ />
155
+ </div>
156
+
157
+ <div>
158
+ <h3 class="text-sm font-semibold text-slate-900 mb-3">Wiggle Animation</h3>
159
+ <DXCopyField
160
+ value="npm install dxd-style-code"
161
+ label="Installation"
162
+ copy-icon-animation="wiggle"
163
+ copied-icon-animation="wiggle"
164
+ />
165
+ </div>
166
+
167
+ <div>
168
+ <h3 class="text-sm font-semibold text-slate-900 mb-3">Rotate Animation</h3>
169
+ <DXCopyField
170
+ value="sk_live_abc123xyz789"
171
+ label="API Key"
172
+ copy-icon-animation="rotate"
173
+ copied-icon-animation="rotate"
174
+ />
175
+ </div>
176
+
177
+ <div>
178
+ <h3 class="text-sm font-semibold text-slate-900 mb-3">Custom Icon</h3>
179
+ <DXCopyField
180
+ value="https://example.com/invite/abc123"
181
+ label="Invite Link"
182
+ :copy-icon="LinkIcon"
183
+ copy-icon-animation="scale"
184
+ />
185
+ </div>
186
+
187
+ <div>
188
+ <h3 class="text-sm font-semibold text-slate-900 mb-3">Mixed Animations</h3>
189
+ <DXCopyField
190
+ value="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"
191
+ label="JWT Token"
192
+ copy-icon-animation="wiggle"
193
+ copied-icon-animation="scale"
194
+ />
195
+ </div>
196
+ </div>
197
+ `,
198
+ }),
199
+ };
200
+
201
+ // Interactive Example
202
+ export const Interactive = {
203
+ render: () => ({
204
+ components: { DXCopyField },
205
+ template: `
206
+ <div class="p-6 bg-slate-50 rounded-xl space-y-4">
207
+ <h3 class="text-lg font-semibold text-slate-900">Try copying these values!</h3>
208
+ <div class="space-y-4">
209
+ <DXCopyField
210
+ value="https://example.com/share/abc123"
211
+ label="Share Link"
212
+ copy-icon-animation="scale"
213
+ @copied="(val) => console.log('Copied:', val)"
214
+ />
215
+ <DXCopyField
216
+ value="npm install dxd-style-code"
217
+ label="Installation Command"
218
+ copy-icon-animation="wiggle"
219
+ />
220
+ <DXCopyField
221
+ value="sk_live_abc123xyz789"
222
+ label="API Key"
223
+ copy-icon-animation="rotate"
224
+ />
225
+ </div>
226
+ <p class="text-xs text-slate-500">Click the copy button to copy to clipboard</p>
227
+ </div>
228
+ `,
229
+ }),
230
+ };
231
+
@@ -0,0 +1,75 @@
1
+ <template>
2
+ <div class="space-y-1" data-component="DXCopyField">
3
+ <p v-if="label" class="text-[11px] uppercase tracking-wide text-slate-500 font-semibold">
4
+ {{ label }}
5
+ </p>
6
+ <div class="flex items-center justify-between gap-2 rounded-lg border border-slate-200 bg-white px-3 py-3">
7
+ <p class="text-base font-semibold text-slate-900 break-all flex-1 text-center">
8
+ {{ value || "—" }}
9
+ </p>
10
+ <button
11
+ type="button"
12
+ class="h-9 w-9 inline-flex items-center justify-center rounded-xl border border-slate-200 text-slate-700 hover:border-slate-300 bg-white transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-slate-400 focus:ring-offset-2"
13
+ :class="{ 'border-emerald-300 bg-emerald-50': copied }"
14
+ :aria-label="`Скопировать ${label || 'значение'}`"
15
+ @click="copyToClipboard"
16
+ >
17
+ <DXIcon
18
+ v-if="copied"
19
+ :icon="CheckIcon"
20
+ size="sm"
21
+ :animation="copiedIconAnimation"
22
+ class="text-emerald-600"
23
+ />
24
+ <DXIcon
25
+ v-else
26
+ :icon="copyIcon"
27
+ size="sm"
28
+ :animation="copyIconAnimation"
29
+ />
30
+ </button>
31
+ </div>
32
+ </div>
33
+ </template>
34
+
35
+ <script setup>
36
+ import { ref } from "vue";
37
+ import DXIcon from "../../atoms/DXIcon/DXIcon.vue";
38
+ import { ClipboardDocumentIcon, ClipboardDocumentCheckIcon, CheckIcon } from "@heroicons/vue/24/outline";
39
+
40
+ const props = defineProps({
41
+ /** Лейбл */
42
+ label: { type: String, default: "" },
43
+ /** Значение для копирования */
44
+ value: { type: String, default: "" },
45
+ /** Иконка для копирования */
46
+ copyIcon: { type: [Object, Function], default: () => ClipboardDocumentIcon },
47
+ /** Иконка успешного копирования */
48
+ successIcon: { type: [Object, Function], default: () => ClipboardDocumentCheckIcon },
49
+ /** Анимация иконки копирования: none | wiggle | scale | rotate */
50
+ copyIconAnimation: { type: String, default: "scale" },
51
+ /** Анимация иконки успеха: none | wiggle | scale | rotate */
52
+ copiedIconAnimation: { type: String, default: "scale" },
53
+ /** Время отображения успешного состояния (мс) */
54
+ successDuration: { type: Number, default: 2000 },
55
+ });
56
+
57
+ const emit = defineEmits(["copied"]);
58
+
59
+ const copied = ref(false);
60
+
61
+ const copyToClipboard = async () => {
62
+ if (!props.value) return;
63
+ try {
64
+ await navigator.clipboard.writeText(props.value);
65
+ copied.value = true;
66
+ emit("copied", props.value);
67
+ setTimeout(() => {
68
+ copied.value = false;
69
+ }, props.successDuration);
70
+ } catch (e) {
71
+ console.error("Не удалось скопировать", e);
72
+ }
73
+ };
74
+ </script>
75
+
@@ -0,0 +1,2 @@
1
+ export { default } from './DXCopyField.vue';
2
+
@@ -0,0 +1,275 @@
1
+ import { ref } from 'vue';
2
+ import DXDataFilter from './DXDataFilter.vue';
3
+ import DXCard from '../../atoms/DXCard/DXCard.vue';
4
+
5
+ export default {
6
+ title: 'Molecules/DXDataFilter',
7
+ component: DXDataFilter,
8
+ tags: ['autodocs'],
9
+ parameters: {
10
+ docs: {
11
+ description: {
12
+ component: `
13
+ # DXDataFilter
14
+
15
+ Комплексный фильтр данных с различными типами условий, группировкой и сохранением фильтров.
16
+
17
+ ## Назначение
18
+
19
+ DXDataFilter предоставляет расширенную систему фильтрации с поддержкой различных типов
20
+ условий (текст, число, дата, выбор), группировки условий (AND/OR) и сохранения фильтров.
21
+
22
+ ## Архитектура
23
+
24
+ ### Использует
25
+ - \`DXInput\` - для текстовых и числовых фильтров
26
+ - \`DXSelect\` - для фильтров выбора
27
+ - \`DXDatePicker\` - для фильтров даты
28
+ - \`DXButton\` - для действий
29
+ - \`DXIcon\` - для иконок
30
+ - \`useClassComposition\` composable - для стилей
31
+ - \`useSpacing\` composable - для отступов
32
+
33
+ ### Используется в
34
+ - \`DXTable\` - для фильтрации данных
35
+ - \`DXReportGenerator\` - для фильтрации отчетов
36
+ - Каталоги товаров
37
+ - Аналитические панели
38
+
39
+ ## Внутренняя логика
40
+
41
+ ### Типы фильтров
42
+ - **text**: Текстовый фильтр
43
+ - **number**: Числовой фильтр с диапазоном (min/max)
44
+ - **select**: Фильтр выбора из списка
45
+ - **date**: Фильтр даты (с поддержкой диапазона)
46
+
47
+ ### Группировка
48
+ Условия могут быть сгруппированы через AND или OR логику.
49
+
50
+ ### Кастомные фильтры
51
+ Можно использовать slots для кастомных типов фильтров.
52
+
53
+ ## Особенности
54
+
55
+ ### Удаление фильтров
56
+ При \`removable={true}\` каждый фильтр можно удалить.
57
+
58
+ ### События
59
+ Компонент эмитит события при изменении, применении и сбросе фильтров.
60
+ `,
61
+ },
62
+ },
63
+ },
64
+ argTypes: {
65
+ grouping: {
66
+ control: 'select',
67
+ options: ['AND', 'OR'],
68
+ description: 'Группировка условий: AND (все условия) | OR (любое условие).',
69
+ table: {
70
+ type: { summary: 'string' },
71
+ defaultValue: { summary: 'AND' },
72
+ category: 'Behavior',
73
+ },
74
+ },
75
+ removable: {
76
+ control: 'boolean',
77
+ description: 'Можно ли удалять фильтры.',
78
+ table: {
79
+ type: { summary: 'boolean' },
80
+ defaultValue: { summary: 'true' },
81
+ category: 'Behavior',
82
+ },
83
+ },
84
+ showActions: {
85
+ control: 'boolean',
86
+ description: 'Показывать кнопки действий (Применить/Сбросить).',
87
+ table: {
88
+ type: { summary: 'boolean' },
89
+ defaultValue: { summary: 'true' },
90
+ category: 'Behavior',
91
+ },
92
+ },
93
+ },
94
+ };
95
+
96
+ const defaultFilterDefinitions = [
97
+ {
98
+ id: 'name',
99
+ label: 'Название',
100
+ type: 'text',
101
+ placeholder: 'Введите название',
102
+ },
103
+ {
104
+ id: 'status',
105
+ label: 'Статус',
106
+ type: 'select',
107
+ options: [
108
+ { value: 'active', label: 'Активный' },
109
+ { value: 'inactive', label: 'Неактивный' },
110
+ { value: 'pending', label: 'Ожидание' },
111
+ ],
112
+ },
113
+ {
114
+ id: 'price',
115
+ label: 'Цена',
116
+ type: 'number',
117
+ },
118
+ {
119
+ id: 'date',
120
+ label: 'Дата',
121
+ type: 'date',
122
+ range: true,
123
+ },
124
+ ];
125
+
126
+ export const Default = {
127
+ args: {
128
+ filters: [
129
+ { id: 'name', type: 'text', value: '' },
130
+ { id: 'status', type: 'select', value: '' },
131
+ ],
132
+ filterDefinitions: defaultFilterDefinitions,
133
+ grouping: 'AND',
134
+ },
135
+ parameters: {
136
+ docs: {
137
+ description: {
138
+ story: 'Базовый фильтр с текстовым и select фильтрами.',
139
+ },
140
+ },
141
+ },
142
+ render: (args) => ({
143
+ components: { DXDataFilter, DXCard },
144
+ setup() {
145
+ const filters = ref(args.filters);
146
+ const handleApply = (data) => {
147
+ console.log('Применены фильтры:', data);
148
+ };
149
+ const handleReset = () => {
150
+ console.log('Фильтры сброшены');
151
+ };
152
+ return { args, filters, handleApply, handleReset };
153
+ },
154
+ template: `
155
+ <DXCard class="p-6">
156
+ <DXDataFilter
157
+ v-model:filters="filters"
158
+ v-bind="args"
159
+ @apply="handleApply"
160
+ @reset="handleReset"
161
+ />
162
+ </DXCard>
163
+ `,
164
+ }),
165
+ };
166
+
167
+ export const WithAllTypes = {
168
+ parameters: {
169
+ docs: {
170
+ description: {
171
+ story: 'Фильтр со всеми типами условий: текст, число, выбор, дата.',
172
+ },
173
+ },
174
+ },
175
+ render: () => ({
176
+ components: { DXDataFilter, DXCard },
177
+ setup() {
178
+ const filters = ref([
179
+ { id: 'name', type: 'text', value: '' },
180
+ { id: 'status', type: 'select', value: '' },
181
+ { id: 'price', type: 'number', value: { min: '', max: '' } },
182
+ { id: 'date', type: 'date', value: null, range: true },
183
+ ]);
184
+
185
+ const handleApply = (data) => {
186
+ console.log('Применены фильтры:', data);
187
+ };
188
+
189
+ return { filters, defaultFilterDefinitions, handleApply };
190
+ },
191
+ template: `
192
+ <DXCard class="p-6">
193
+ <DXDataFilter
194
+ v-model:filters="filters"
195
+ :filter-definitions="defaultFilterDefinitions"
196
+ @apply="handleApply"
197
+ />
198
+ </DXCard>
199
+ `,
200
+ }),
201
+ };
202
+
203
+ export const WithGrouping = {
204
+ parameters: {
205
+ docs: {
206
+ description: {
207
+ story: 'Фильтр с группировкой условий. Можно переключать между AND и OR.',
208
+ },
209
+ },
210
+ },
211
+ render: () => ({
212
+ components: { DXDataFilter, DXCard },
213
+ setup() {
214
+ const filters = ref([
215
+ { id: 'name', type: 'text', value: '' },
216
+ { id: 'status', type: 'select', value: '' },
217
+ ]);
218
+ const grouping = ref('AND');
219
+
220
+ const handleGroupingChange = (newGrouping) => {
221
+ console.log('Группировка изменена:', newGrouping);
222
+ };
223
+
224
+ return { filters, grouping, defaultFilterDefinitions, handleGroupingChange };
225
+ },
226
+ template: `
227
+ <DXCard class="p-6">
228
+ <DXDataFilter
229
+ v-model:filters="filters"
230
+ v-model:grouping="grouping"
231
+ :filter-definitions="defaultFilterDefinitions"
232
+ @grouping-change="handleGroupingChange"
233
+ />
234
+ </DXCard>
235
+ `,
236
+ }),
237
+ };
238
+
239
+ export const WithoutActions = {
240
+ args: {
241
+ filters: [
242
+ { id: 'name', type: 'text', value: '' },
243
+ ],
244
+ filterDefinitions: defaultFilterDefinitions,
245
+ showActions: false,
246
+ },
247
+ parameters: {
248
+ docs: {
249
+ description: {
250
+ story: 'Фильтр без кнопок действий. Используйте кастомные действия через slot actions.',
251
+ },
252
+ },
253
+ },
254
+ render: (args) => ({
255
+ components: { DXDataFilter, DXCard, DXButton },
256
+ setup() {
257
+ const filters = ref(args.filters);
258
+ return { args, filters };
259
+ },
260
+ template: `
261
+ <DXCard class="p-6">
262
+ <DXDataFilter
263
+ v-model:filters="filters"
264
+ v-bind="args"
265
+ >
266
+ <template #actions>
267
+ <DXButton variant="ghost">Отмена</DXButton>
268
+ <DXButton variant="primary">Применить фильтры</DXButton>
269
+ </template>
270
+ </DXDataFilter>
271
+ </DXCard>
272
+ `,
273
+ }),
274
+ };
275
+