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,199 @@
1
+ import { ref } from 'vue';
2
+ import DXReportGenerator from './DXReportGenerator.vue';
3
+
4
+ export default {
5
+ title: 'Organisms/DXReportGenerator',
6
+ component: DXReportGenerator,
7
+ tags: ['autodocs'],
8
+ parameters: {
9
+ docs: {
10
+ description: {
11
+ component: `
12
+ # DXReportGenerator
13
+
14
+ Генератор отчетов с фильтрацией, настройками параметров и экспортом в различные форматы.
15
+
16
+ ## Назначение
17
+
18
+ DXReportGenerator предоставляет полнофункциональный генератор отчетов с поддержкой
19
+ фильтрации данных, настройки параметров, предпросмотра и экспорта в различные форматы.
20
+
21
+ ## Архитектура
22
+
23
+ ### Использует
24
+ - \`DXDataFilter\` - для фильтрации данных
25
+ - \`DXTable\` - для предпросмотра
26
+ - \`DXCard\` - для контейнеров
27
+ - \`DXButton\` - для действий
28
+ - \`DXSelect\` - для выбора формата
29
+ - \`DXDatePicker\` - для выбора периода
30
+ - \`useClassComposition\` composable - для стилей
31
+ - \`useSpacing\` composable - для отступов
32
+
33
+ ### Используется в
34
+ - Аналитические панели
35
+ - Системы отчетности
36
+ - Экспорт данных
37
+ - Административные панели
38
+
39
+ ## Внутренняя логика
40
+
41
+ ### Фильтрация
42
+ Использует \`DXDataFilter\` для фильтрации данных перед генерацией отчета.
43
+
44
+ ### Форматы экспорта
45
+ Поддерживает экспорт в PDF, Excel, CSV и другие форматы.
46
+
47
+ ### Предпросмотр
48
+ Показывает предпросмотр данных перед экспортом.
49
+
50
+ ## Особенности
51
+
52
+ ### Слоты
53
+ - **filters**: Кастомные фильтры
54
+ - **settings**: Кастомные настройки
55
+ - **preview**: Кастомный предпросмотр
56
+ - **actions**: Кастомные действия
57
+
58
+ ### Гибкость
59
+ Все секции можно кастомизировать через slots.
60
+ `,
61
+ },
62
+ },
63
+ },
64
+ };
65
+
66
+ const defaultColumns = [
67
+ { key: 'id', label: 'ID' },
68
+ { key: 'name', label: 'Название' },
69
+ { key: 'amount', label: 'Сумма' },
70
+ { key: 'date', label: 'Дата' },
71
+ ];
72
+
73
+ const defaultData = [
74
+ { id: 1, name: 'Товар 1', amount: 1000, date: '2024-01-15' },
75
+ { id: 2, name: 'Товар 2', amount: 2000, date: '2024-01-20' },
76
+ { id: 3, name: 'Товар 3', amount: 1500, date: '2024-01-25' },
77
+ ];
78
+
79
+ const defaultFilterDefinitions = [
80
+ {
81
+ id: 'name',
82
+ label: 'Название',
83
+ type: 'text',
84
+ },
85
+ {
86
+ id: 'date',
87
+ label: 'Дата',
88
+ type: 'date',
89
+ range: true,
90
+ },
91
+ ];
92
+
93
+ export const Default = {
94
+ args: {
95
+ columns: defaultColumns,
96
+ data: defaultData,
97
+ filterDefinitions: defaultFilterDefinitions,
98
+ showFilters: true,
99
+ showSettings: true,
100
+ showPreview: true,
101
+ showActions: true,
102
+ },
103
+ parameters: {
104
+ docs: {
105
+ description: {
106
+ story: 'Базовый генератор отчетов с фильтрами, настройками, предпросмотром и экспортом.',
107
+ },
108
+ },
109
+ },
110
+ render: (args) => ({
111
+ components: { DXReportGenerator },
112
+ setup() {
113
+ const generating = ref(false);
114
+ const exporting = ref(false);
115
+
116
+ const handleGenerate = (data) => {
117
+ console.log('Генерация отчета:', data);
118
+ generating.value = true;
119
+ setTimeout(() => {
120
+ generating.value = false;
121
+ }, 2000);
122
+ };
123
+
124
+ const handleExport = (data) => {
125
+ console.log('Экспорт отчета:', data);
126
+ exporting.value = true;
127
+ setTimeout(() => {
128
+ exporting.value = false;
129
+ }, 2000);
130
+ };
131
+
132
+ return { args, generating, exporting, handleGenerate, handleExport };
133
+ },
134
+ template: `
135
+ <DXReportGenerator
136
+ v-bind="args"
137
+ :generating="generating"
138
+ :exporting="exporting"
139
+ @generate="handleGenerate"
140
+ @export="handleExport"
141
+ />
142
+ `,
143
+ }),
144
+ };
145
+
146
+ export const WithCustomFilters = {
147
+ parameters: {
148
+ docs: {
149
+ description: {
150
+ story: 'Генератор отчетов с кастомными фильтрами через slot.',
151
+ },
152
+ },
153
+ },
154
+ render: () => ({
155
+ components: { DXReportGenerator, DXCard },
156
+ setup() {
157
+ return { defaultColumns, defaultData };
158
+ },
159
+ template: `
160
+ <DXReportGenerator
161
+ :columns="defaultColumns"
162
+ :data="defaultData"
163
+ :show-filters="false"
164
+ >
165
+ <template #filters>
166
+ <DXCard class="p-4">
167
+ <p class="text-sm text-slate-600">Кастомные фильтры</p>
168
+ </DXCard>
169
+ </template>
170
+ </DXReportGenerator>
171
+ `,
172
+ }),
173
+ };
174
+
175
+ export const ExportOnly = {
176
+ parameters: {
177
+ docs: {
178
+ description: {
179
+ story: 'Генератор отчетов только с экспортом (без фильтров и настроек).',
180
+ },
181
+ },
182
+ },
183
+ render: () => ({
184
+ components: { DXReportGenerator },
185
+ setup() {
186
+ return { defaultColumns, defaultData };
187
+ },
188
+ template: `
189
+ <DXReportGenerator
190
+ :columns="defaultColumns"
191
+ :data="defaultData"
192
+ :show-filters="false"
193
+ :show-settings="false"
194
+ :show-preview="false"
195
+ />
196
+ `,
197
+ }),
198
+ };
199
+
@@ -0,0 +1,344 @@
1
+ <template>
2
+ <div
3
+ :class="generatorClasses"
4
+ data-component="DXReportGenerator"
5
+ >
6
+ <!-- Header -->
7
+ <div v-if="showHeader || $slots.header" :class="headerClasses">
8
+ <slot name="header">
9
+ <h2 class="text-2xl font-bold text-slate-900">Генератор отчетов</h2>
10
+ </slot>
11
+ </div>
12
+
13
+ <!-- Filters -->
14
+ <div v-if="$slots.filters || showFilters" :class="filtersClasses">
15
+ <slot name="filters" :filters="reportFilters" :update-filter="updateFilter">
16
+ <DXDataFilter
17
+ v-if="showFilters"
18
+ v-model:filters="reportFilters"
19
+ :filter-definitions="filterDefinitions"
20
+ @apply="handleFiltersApply"
21
+ />
22
+ </slot>
23
+ </div>
24
+
25
+ <!-- Settings -->
26
+ <div v-if="$slots.settings || showSettings" :class="settingsClasses">
27
+ <slot name="settings" :settings="reportSettings" :update-setting="updateSetting">
28
+ <DXCard v-if="showSettings" class="p-4">
29
+ <h3 class="font-semibold mb-4">Настройки отчета</h3>
30
+ <div class="space-y-4">
31
+ <DXFormControl label="Формат экспорта">
32
+ <DXSelect
33
+ v-model="reportSettings.format"
34
+ :options="exportFormats"
35
+ />
36
+ </DXFormControl>
37
+ <DXFormControl label="Период">
38
+ <DXDatePicker
39
+ v-model="reportSettings.dateRange"
40
+ range
41
+ />
42
+ </DXFormControl>
43
+ </div>
44
+ </DXCard>
45
+ </slot>
46
+ </div>
47
+
48
+ <!-- Preview -->
49
+ <div v-if="$slots.preview || showPreview" :class="previewClasses">
50
+ <slot name="preview" :data="previewData" :columns="columns">
51
+ <DXCard v-if="showPreview" class="p-4">
52
+ <h3 class="font-semibold mb-4">Предпросмотр</h3>
53
+ <DXTable
54
+ :columns="columns"
55
+ :data="previewData"
56
+ :paginated="false"
57
+ :size="'sm'"
58
+ />
59
+ </DXCard>
60
+ </slot>
61
+ </div>
62
+
63
+ <!-- Actions -->
64
+ <div v-if="$slots.actions || showActions" :class="actionsClasses">
65
+ <slot name="actions" :generate="handleGenerate" :export="handleExport">
66
+ <DXButton
67
+ v-if="showActions"
68
+ variant="ghost"
69
+ :loading="generating"
70
+ @click="handleGenerate"
71
+ >
72
+ Сгенерировать
73
+ </DXButton>
74
+ <DXButton
75
+ v-if="showActions"
76
+ variant="primary"
77
+ :loading="exporting"
78
+ :disabled="!canExport"
79
+ @click="handleExport"
80
+ >
81
+ Экспортировать
82
+ </DXButton>
83
+ </slot>
84
+ </div>
85
+ </div>
86
+ </template>
87
+
88
+ <script setup>
89
+ import { ref, computed } from "vue";
90
+ import { useClassComposition } from "@/composables/useClassComposition";
91
+ import { useSpacing } from "@/composables/useSpacing";
92
+ import DXCard from "../../atoms/DXCard/DXCard.vue";
93
+ import DXButton from "../../atoms/DXButton/DXButton.vue";
94
+ import DXTable from "../DXTable/DXTable.vue";
95
+ import DXDataFilter from "../../molecules/DXDataFilter/DXDataFilter.vue";
96
+ import DXSelect from "../../molecules/DXSelect/DXSelect.vue";
97
+ import DXDatePicker from "../../molecules/DXDatePicker/DXDatePicker.vue";
98
+ import DXFormControl from "../../molecules/DXFormControl/DXFormControl.vue";
99
+
100
+ const props = defineProps({
101
+ /**
102
+ * Данные для отчета
103
+ */
104
+ data: {
105
+ type: Array,
106
+ default: () => [],
107
+ },
108
+ /**
109
+ * Колонки отчета
110
+ * Формат: [{ key, label, format? }]
111
+ */
112
+ columns: {
113
+ type: Array,
114
+ required: true,
115
+ },
116
+ /**
117
+ * Форматы экспорта
118
+ * Формат: [{ value, label }]
119
+ * @default [{ value: 'pdf', label: 'PDF' }, { value: 'excel', label: 'Excel' }, { value: 'csv', label: 'CSV' }]
120
+ */
121
+ exportFormats: {
122
+ type: Array,
123
+ default: () => [
124
+ { value: "pdf", label: "PDF" },
125
+ { value: "excel", label: "Excel" },
126
+ { value: "csv", label: "CSV" },
127
+ ],
128
+ },
129
+ /**
130
+ * Определения фильтров
131
+ * Формат: [{ id, label, type, options? }]
132
+ */
133
+ filterDefinitions: {
134
+ type: Array,
135
+ default: () => [],
136
+ },
137
+ /**
138
+ * Показывать header
139
+ * @default true
140
+ */
141
+ showHeader: { type: Boolean, default: true },
142
+ /**
143
+ * Показывать фильтры
144
+ * @default true
145
+ */
146
+ showFilters: { type: Boolean, default: true },
147
+ /**
148
+ * Показывать настройки
149
+ * @default true
150
+ */
151
+ showSettings: { type: Boolean, default: true },
152
+ /**
153
+ * Показывать предпросмотр
154
+ * @default true
155
+ */
156
+ showPreview: { type: Boolean, default: true },
157
+ /**
158
+ * Показывать действия
159
+ * @default true
160
+ */
161
+ showActions: { type: Boolean, default: true },
162
+ /**
163
+ * Состояние генерации
164
+ * @default false
165
+ */
166
+ generating: { type: Boolean, default: false },
167
+ /**
168
+ * Состояние экспорта
169
+ * @default false
170
+ */
171
+ exporting: { type: Boolean, default: false },
172
+ });
173
+
174
+ const emit = defineEmits(["generate", "export", "filter-change", "setting-change"]);
175
+
176
+ const reportFilters = ref([]);
177
+ const reportSettings = ref({
178
+ format: "pdf",
179
+ dateRange: null,
180
+ });
181
+ const previewData = ref([...props.data]);
182
+
183
+ /**
184
+ * Можно ли экспортировать
185
+ *
186
+ * @description
187
+ * Проверяет, можно ли экспортировать отчет (есть данные).
188
+ *
189
+ * @returns {boolean} true, если можно экспортировать
190
+ */
191
+ const canExport = computed(() => {
192
+ return previewData.value.length > 0;
193
+ });
194
+
195
+ /**
196
+ * Классы для генератора
197
+ *
198
+ * @description
199
+ * Базовые классы для генератора отчетов.
200
+ *
201
+ * @returns {Array} Массив классов
202
+ */
203
+ const generatorClasses = computed(() =>
204
+ useClassComposition("w-full space-y-6", useSpacing("md", "padding"))
205
+ );
206
+
207
+ /**
208
+ * Классы для header
209
+ *
210
+ * @description
211
+ * Классы для секции заголовка.
212
+ *
213
+ * @returns {Array} Массив классов
214
+ */
215
+ const headerClasses = computed(() =>
216
+ useClassComposition("mb-6")
217
+ );
218
+
219
+ /**
220
+ * Классы для фильтров
221
+ *
222
+ * @description
223
+ * Классы для секции фильтров.
224
+ *
225
+ * @returns {Array} Массив классов
226
+ */
227
+ const filtersClasses = computed(() =>
228
+ useClassComposition("")
229
+ );
230
+
231
+ /**
232
+ * Классы для настроек
233
+ *
234
+ * @description
235
+ * Классы для секции настроек.
236
+ *
237
+ * @returns {Array} Массив классов
238
+ */
239
+ const settingsClasses = computed(() =>
240
+ useClassComposition("")
241
+ );
242
+
243
+ /**
244
+ * Классы для предпросмотра
245
+ *
246
+ * @description
247
+ * Классы для секции предпросмотра.
248
+ *
249
+ * @returns {Array} Массив классов
250
+ */
251
+ const previewClasses = computed(() =>
252
+ useClassComposition("")
253
+ );
254
+
255
+ /**
256
+ * Классы для действий
257
+ *
258
+ * @description
259
+ * Классы для секции действий.
260
+ *
261
+ * @returns {Array} Массив классов
262
+ */
263
+ const actionsClasses = computed(() =>
264
+ useClassComposition("flex justify-end gap-2")
265
+ );
266
+
267
+ /**
268
+ * Обновление фильтра
269
+ *
270
+ * @description
271
+ * Обновляет значение фильтра.
272
+ *
273
+ * @param {string} filterId - ID фильтра
274
+ * @param {any} value - Новое значение
275
+ */
276
+ function updateFilter(filterId, value) {
277
+ const filter = reportFilters.value.find((f) => f.id === filterId);
278
+ if (filter) {
279
+ filter.value = value;
280
+ } else {
281
+ reportFilters.value.push({ id: filterId, value });
282
+ }
283
+ emit("filter-change", { filterId, value });
284
+ }
285
+
286
+ /**
287
+ * Обновление настройки
288
+ *
289
+ * @description
290
+ * Обновляет значение настройки.
291
+ *
292
+ * @param {string} settingKey - Ключ настройки
293
+ * @param {any} value - Новое значение
294
+ */
295
+ function updateSetting(settingKey, value) {
296
+ reportSettings.value[settingKey] = value;
297
+ emit("setting-change", { settingKey, value });
298
+ }
299
+
300
+ /**
301
+ * Обработчик применения фильтров
302
+ *
303
+ * @description
304
+ * Обрабатывает применение фильтров и обновляет предпросмотр.
305
+ *
306
+ * @param {Object} data - Данные фильтров
307
+ */
308
+ function handleFiltersApply(data) {
309
+ // В реальной реализации здесь будет фильтрация данных
310
+ previewData.value = [...props.data];
311
+ emit("filter-change", data);
312
+ }
313
+
314
+ /**
315
+ * Обработчик генерации
316
+ *
317
+ * @description
318
+ * Эмитит событие генерации отчета.
319
+ */
320
+ function handleGenerate() {
321
+ emit("generate", {
322
+ filters: reportFilters.value,
323
+ settings: reportSettings.value,
324
+ data: previewData.value,
325
+ });
326
+ }
327
+
328
+ /**
329
+ * Обработчик экспорта
330
+ *
331
+ * @description
332
+ * Эмитит событие экспорта отчета.
333
+ */
334
+ function handleExport() {
335
+ emit("export", {
336
+ format: reportSettings.value.format,
337
+ filters: reportFilters.value,
338
+ settings: reportSettings.value,
339
+ data: previewData.value,
340
+ columns: props.columns,
341
+ });
342
+ }
343
+ </script>
344
+
@@ -0,0 +1,2 @@
1
+ export { default } from './DXReportGenerator.vue';
2
+