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,288 @@
1
+ import DXActionButtons from './DXActionButtons.vue';
2
+ import DXButton from '../../atoms/DXButton/DXButton.vue';
3
+ import DXIcon from '../../atoms/DXIcon/DXIcon.vue';
4
+ import { ShareIcon, ArrowDownTrayIcon, PrinterIcon } from '@heroicons/vue/24/outline';
5
+
6
+ export default {
7
+ title: 'Molecules/DXActionButtons',
8
+ component: DXActionButtons,
9
+ tags: ['autodocs'],
10
+ argTypes: {
11
+ size: {
12
+ control: 'select',
13
+ options: ['xs', 'sm', 'md'],
14
+ },
15
+ align: {
16
+ control: 'select',
17
+ options: ['left', 'center', 'right'],
18
+ },
19
+ },
20
+ };
21
+
22
+ // Базовый вариант
23
+ export const Default = {
24
+ args: {},
25
+ };
26
+
27
+ // Только редактирование
28
+ export const EditOnly = {
29
+ args: {
30
+ showEdit: true,
31
+ showDelete: false,
32
+ },
33
+ };
34
+
35
+ // Только удаление
36
+ export const DeleteOnly = {
37
+ args: {
38
+ showEdit: false,
39
+ showDelete: true,
40
+ },
41
+ };
42
+
43
+ // С кнопкой просмотра
44
+ export const WithView = {
45
+ args: {
46
+ showView: true,
47
+ showEdit: true,
48
+ showDelete: true,
49
+ },
50
+ };
51
+
52
+ // Только иконки
53
+ export const IconOnly = {
54
+ args: {
55
+ iconOnly: true,
56
+ showView: true,
57
+ showEdit: true,
58
+ showDelete: true,
59
+ },
60
+ };
61
+
62
+ // Размеры
63
+ export const Sizes = {
64
+ render: () => ({
65
+ components: { DXActionButtons },
66
+ template: `
67
+ <div class="space-y-6">
68
+ <div>
69
+ <p class="text-xs text-slate-500 mb-2">Extra Small (xs)</p>
70
+ <DXActionButtons size="xs" />
71
+ </div>
72
+
73
+ <div>
74
+ <p class="text-xs text-slate-500 mb-2">Small (sm) - Default</p>
75
+ <DXActionButtons size="sm" />
76
+ </div>
77
+
78
+ <div>
79
+ <p class="text-xs text-slate-500 mb-2">Medium (md)</p>
80
+ <DXActionButtons size="md" />
81
+ </div>
82
+ </div>
83
+ `,
84
+ }),
85
+ };
86
+
87
+ // Выравнивание
88
+ export const Alignment = {
89
+ render: () => ({
90
+ components: { DXActionButtons },
91
+ template: `
92
+ <div class="space-y-6">
93
+ <div class="p-4 border border-slate-200 rounded-xl">
94
+ <p class="text-xs text-slate-500 mb-2">Left (default)</p>
95
+ <DXActionButtons align="left" />
96
+ </div>
97
+
98
+ <div class="p-4 border border-slate-200 rounded-xl">
99
+ <p class="text-xs text-slate-500 mb-2">Center</p>
100
+ <DXActionButtons align="center" />
101
+ </div>
102
+
103
+ <div class="p-4 border border-slate-200 rounded-xl">
104
+ <p class="text-xs text-slate-500 mb-2">Right</p>
105
+ <DXActionButtons align="right" />
106
+ </div>
107
+ </div>
108
+ `,
109
+ }),
110
+ };
111
+
112
+ // С дополнительными кнопками (slot)
113
+ export const WithCustomButtons = {
114
+ render: () => ({
115
+ components: { DXActionButtons, DXButton, DXIcon },
116
+ setup() {
117
+ return { ShareIcon, ArrowDownTrayIcon };
118
+ },
119
+ template: `
120
+ <DXActionButtons>
121
+ <DXButton variant="outline" size="sm">
122
+ <DXIcon :icon="ShareIcon" size="xs" />
123
+ Share
124
+ </DXButton>
125
+ <DXButton variant="outline" size="sm">
126
+ <DXIcon :icon="ArrowDownTrayIcon" size="xs" />
127
+ Download
128
+ </DXButton>
129
+ </DXActionButtons>
130
+ `,
131
+ }),
132
+ };
133
+
134
+ // В таблице
135
+ export const InTable = {
136
+ render: () => ({
137
+ components: { DXActionButtons },
138
+ template: `
139
+ <div class="overflow-hidden rounded-xl border border-slate-200">
140
+ <table class="min-w-full divide-y divide-slate-200">
141
+ <thead class="bg-slate-50">
142
+ <tr>
143
+ <th class="px-6 py-3 text-left text-xs font-semibold text-slate-700">Name</th>
144
+ <th class="px-6 py-3 text-left text-xs font-semibold text-slate-700">Email</th>
145
+ <th class="px-6 py-3 text-left text-xs font-semibold text-slate-700">Role</th>
146
+ <th class="px-6 py-3 text-right text-xs font-semibold text-slate-700">Actions</th>
147
+ </tr>
148
+ </thead>
149
+ <tbody class="divide-y divide-slate-200 bg-white">
150
+ <tr>
151
+ <td class="px-6 py-4 text-sm text-slate-900">John Doe</td>
152
+ <td class="px-6 py-4 text-sm text-slate-600">john@example.com</td>
153
+ <td class="px-6 py-4 text-sm text-slate-600">Admin</td>
154
+ <td class="px-6 py-4">
155
+ <DXActionButtons align="right" size="xs" />
156
+ </td>
157
+ </tr>
158
+ <tr>
159
+ <td class="px-6 py-4 text-sm text-slate-900">Jane Smith</td>
160
+ <td class="px-6 py-4 text-sm text-slate-600">jane@example.com</td>
161
+ <td class="px-6 py-4 text-sm text-slate-600">User</td>
162
+ <td class="px-6 py-4">
163
+ <DXActionButtons align="right" size="xs" />
164
+ </td>
165
+ </tr>
166
+ <tr>
167
+ <td class="px-6 py-4 text-sm text-slate-900">Bob Johnson</td>
168
+ <td class="px-6 py-4 text-sm text-slate-600">bob@example.com</td>
169
+ <td class="px-6 py-4 text-sm text-slate-600">Moderator</td>
170
+ <td class="px-6 py-4">
171
+ <DXActionButtons align="right" size="xs" />
172
+ </td>
173
+ </tr>
174
+ </tbody>
175
+ </table>
176
+ </div>
177
+ `,
178
+ }),
179
+ };
180
+
181
+ // В карточках
182
+ export const InCards = {
183
+ render: () => ({
184
+ components: { DXActionButtons },
185
+ template: `
186
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
187
+ <div class="p-6 border border-slate-200 rounded-xl bg-white">
188
+ <h3 class="text-lg font-semibold text-slate-900 mb-2">Product Title</h3>
189
+ <p class="text-sm text-slate-600 mb-4">Product description goes here...</p>
190
+ <DXActionButtons show-view />
191
+ </div>
192
+
193
+ <div class="p-6 border border-slate-200 rounded-xl bg-white">
194
+ <h3 class="text-lg font-semibold text-slate-900 mb-2">Another Product</h3>
195
+ <p class="text-sm text-slate-600 mb-4">Another product description...</p>
196
+ <DXActionButtons show-view />
197
+ </div>
198
+ </div>
199
+ `,
200
+ }),
201
+ };
202
+
203
+ // Отключенное состояние
204
+ export const Disabled = {
205
+ args: {
206
+ disabled: true,
207
+ showView: true,
208
+ },
209
+ };
210
+
211
+ // Интерактивный пример
212
+ export const Interactive = {
213
+ render: () => ({
214
+ components: { DXActionButtons },
215
+ setup() {
216
+ const handleView = () => alert('View clicked!');
217
+ const handleEdit = () => alert('Edit clicked!');
218
+ const handleDelete = () => {
219
+ if (confirm('Are you sure you want to delete this item?')) {
220
+ alert('Item deleted!');
221
+ }
222
+ };
223
+
224
+ return { handleView, handleEdit, handleDelete };
225
+ },
226
+ template: `
227
+ <div class="p-6 bg-slate-50 rounded-xl">
228
+ <h3 class="text-lg font-semibold text-slate-900 mb-4">Try clicking the buttons</h3>
229
+ <DXActionButtons
230
+ show-view
231
+ @view="handleView"
232
+ @edit="handleEdit"
233
+ @delete="handleDelete"
234
+ />
235
+ </div>
236
+ `,
237
+ }),
238
+ };
239
+
240
+ // Все варианты
241
+ export const AllVariants = {
242
+ render: () => ({
243
+ components: { DXActionButtons },
244
+ template: `
245
+ <div class="space-y-8">
246
+ <div>
247
+ <h3 class="text-sm font-semibold text-slate-900 mb-3">Standard (Edit + Delete)</h3>
248
+ <DXActionButtons />
249
+ </div>
250
+
251
+ <div>
252
+ <h3 class="text-sm font-semibold text-slate-900 mb-3">With View</h3>
253
+ <DXActionButtons show-view />
254
+ </div>
255
+
256
+ <div>
257
+ <h3 class="text-sm font-semibold text-slate-900 mb-3">Icon Only</h3>
258
+ <DXActionButtons icon-only show-view />
259
+ </div>
260
+
261
+ <div>
262
+ <h3 class="text-sm font-semibold text-slate-900 mb-3">Different Sizes</h3>
263
+ <div class="space-y-3">
264
+ <DXActionButtons size="xs" />
265
+ <DXActionButtons size="sm" />
266
+ <DXActionButtons size="md" />
267
+ </div>
268
+ </div>
269
+
270
+ <div>
271
+ <h3 class="text-sm font-semibold text-slate-900 mb-3">Alignment</h3>
272
+ <div class="space-y-3">
273
+ <div class="p-3 border border-slate-200 rounded">
274
+ <DXActionButtons align="left" />
275
+ </div>
276
+ <div class="p-3 border border-slate-200 rounded">
277
+ <DXActionButtons align="center" />
278
+ </div>
279
+ <div class="p-3 border border-slate-200 rounded">
280
+ <DXActionButtons align="right" />
281
+ </div>
282
+ </div>
283
+ </div>
284
+ </div>
285
+ `,
286
+ }),
287
+ };
288
+
@@ -0,0 +1,106 @@
1
+ <template>
2
+ <div class="flex gap-2" :class="{ 'justify-end': align === 'right', 'justify-center': align === 'center' }" data-component="DXActionButtons">
3
+ <!-- View Button -->
4
+ <button
5
+ v-if="showView"
6
+ type="button"
7
+ class="inline-flex items-center gap-1.5 transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2"
8
+ :class="buttonSizeClass"
9
+ :disabled="disabled"
10
+ @click="$emit('view')"
11
+ >
12
+ <DXIcon :icon="viewIcon" :size="iconSize" animation="scale" />
13
+ <span v-if="!iconOnly">{{ viewLabel }}</span>
14
+ </button>
15
+
16
+ <!-- Edit Button -->
17
+ <button
18
+ v-if="showEdit"
19
+ type="button"
20
+ class="inline-flex items-center gap-1.5 border border-slate-200 text-slate-700 hover:border-slate-300 hover:bg-slate-50 bg-white transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-slate-400 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed"
21
+ :class="buttonSizeClass"
22
+ :disabled="disabled"
23
+ @click="$emit('edit')"
24
+ >
25
+ <DXIcon :icon="editIcon" :size="iconSize" animation="wiggle" />
26
+ <span v-if="!iconOnly">{{ editLabel }}</span>
27
+ </button>
28
+
29
+ <!-- Delete Button -->
30
+ <button
31
+ v-if="showDelete"
32
+ type="button"
33
+ class="inline-flex items-center gap-1.5 bg-rose-600 text-white hover:bg-rose-500 transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-rose-500 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed"
34
+ :class="buttonSizeClass"
35
+ :disabled="disabled"
36
+ @click="$emit('delete')"
37
+ >
38
+ <DXIcon :icon="deleteIcon" :size="iconSize" animation="scale" />
39
+ <span v-if="!iconOnly">{{ deleteLabel }}</span>
40
+ </button>
41
+
42
+ <!-- Дополнительные кнопки через slot -->
43
+ <slot />
44
+ </div>
45
+ </template>
46
+
47
+ <script setup>
48
+ import { computed } from "vue";
49
+ import DXIcon from "../../atoms/DXIcon/DXIcon.vue";
50
+ import { PencilIcon, TrashIcon, EyeIcon } from "@heroicons/vue/24/outline";
51
+
52
+ const props = defineProps({
53
+ /** Показывать кнопку просмотра */
54
+ showView: { type: Boolean, default: false },
55
+ /** Показывать кнопку редактирования */
56
+ showEdit: { type: Boolean, default: true },
57
+ /** Показывать кнопку удаления */
58
+ showDelete: { type: Boolean, default: true },
59
+
60
+ /** Текст кнопки просмотра */
61
+ viewLabel: { type: String, default: "Просмотр" },
62
+ /** Текст кнопки редактирования */
63
+ editLabel: { type: String, default: "Редактировать" },
64
+ /** Текст кнопки удаления */
65
+ deleteLabel: { type: String, default: "Удалить" },
66
+
67
+ /** Иконка для кнопки просмотра */
68
+ viewIcon: { type: [Object, Function], default: () => EyeIcon },
69
+ /** Иконка для кнопки редактирования */
70
+ editIcon: { type: [Object, Function], default: () => PencilIcon },
71
+ /** Иконка для кнопки удаления */
72
+ deleteIcon: { type: [Object, Function], default: () => TrashIcon },
73
+
74
+ /** Размер кнопок: xs | sm | md */
75
+ size: { type: String, default: "sm" },
76
+ /** Только иконки без текста */
77
+ iconOnly: { type: Boolean, default: false },
78
+ /** Выравнивание: left | center | right */
79
+ align: { type: String, default: "left" },
80
+ /** Отключить все кнопки */
81
+ disabled: { type: Boolean, default: false },
82
+ });
83
+
84
+ defineEmits(["view", "edit", "delete"]);
85
+
86
+ const iconSize = computed(() => {
87
+ if (props.size === "xs") return "xs";
88
+ if (props.size === "md") return "sm";
89
+ return "xs";
90
+ });
91
+
92
+ const buttonSizeClass = computed(() => {
93
+ const baseClasses = "font-semibold rounded-xl";
94
+
95
+ if (props.iconOnly) {
96
+ if (props.size === "xs") return `${baseClasses} p-1.5`;
97
+ if (props.size === "md") return `${baseClasses} p-2.5`;
98
+ return `${baseClasses} p-2`;
99
+ }
100
+
101
+ if (props.size === "xs") return `${baseClasses} px-2 py-1 text-xs`;
102
+ if (props.size === "md") return `${baseClasses} px-4 py-2.5 text-sm`;
103
+ return `${baseClasses} px-3 py-2 text-xs`;
104
+ });
105
+ </script>
106
+
@@ -0,0 +1,2 @@
1
+ export { default } from './DXActionButtons.vue';
2
+
@@ -0,0 +1,70 @@
1
+ import DXAlert from './DXAlert.vue';
2
+
3
+ export default {
4
+ title: 'Molecules/DXAlert',
5
+ component: DXAlert,
6
+ tags: ['autodocs'],
7
+ argTypes: {
8
+ variant: { control: { type: 'select' }, options: ['info', 'success', 'warning', 'danger'] },
9
+ },
10
+ };
11
+
12
+ export const Info = {
13
+ args: { variant: 'info', title: 'Information' },
14
+ render: (args) => ({
15
+ components: { DXAlert },
16
+ setup() { return { args }; },
17
+ template: '<DXAlert v-bind="args">This is an informational message.</DXAlert>',
18
+ }),
19
+ };
20
+
21
+ export const Success = {
22
+ args: { variant: 'success', title: 'Success' },
23
+ render: (args) => ({
24
+ components: { DXAlert },
25
+ setup() { return { args }; },
26
+ template: '<DXAlert v-bind="args">Your changes have been saved successfully.</DXAlert>',
27
+ }),
28
+ };
29
+
30
+ export const Warning = {
31
+ args: { variant: 'warning', title: 'Warning' },
32
+ render: (args) => ({
33
+ components: { DXAlert },
34
+ setup() { return { args }; },
35
+ template: '<DXAlert v-bind="args">Please review before continuing.</DXAlert>',
36
+ }),
37
+ };
38
+
39
+ export const Danger = {
40
+ args: { variant: 'danger', title: 'Error' },
41
+ render: (args) => ({
42
+ components: { DXAlert },
43
+ setup() { return { args }; },
44
+ template: '<DXAlert v-bind="args">Something went wrong. Please try again.</DXAlert>',
45
+ }),
46
+ };
47
+
48
+ export const Dismissible = {
49
+ args: { variant: 'info', title: 'Dismissible', dismissible: true },
50
+ render: (args) => ({
51
+ components: { DXAlert },
52
+ setup() { return { args }; },
53
+ template: '<DXAlert v-bind="args">Click the X to dismiss this alert.</DXAlert>',
54
+ }),
55
+ };
56
+
57
+ export const AllVariants = {
58
+ render: () => ({
59
+ components: { DXAlert },
60
+ template: `
61
+ <div class="space-y-4">
62
+ <DXAlert variant="info" title="Info">Informational message</DXAlert>
63
+ <DXAlert variant="success" title="Success">Success message</DXAlert>
64
+ <DXAlert variant="warning" title="Warning">Warning message</DXAlert>
65
+ <DXAlert variant="danger" title="Error">Error message</DXAlert>
66
+ </div>
67
+ `,
68
+ }),
69
+ };
70
+
@@ -0,0 +1,116 @@
1
+ <template>
2
+ <div
3
+ v-if="!dismissed"
4
+ :class="alertClasses"
5
+ role="alert"
6
+ data-component="DXAlert"
7
+ :data-variant="variant"
8
+ >
9
+ <div class="flex items-start gap-3">
10
+ <DXIcon v-if="iconToShow" :icon="iconToShow" size="md" animation="none" :class="iconClasses" />
11
+ <div class="flex-1 min-w-0">
12
+ <p v-if="title" class="font-semibold" :class="titleClasses">{{ title }}</p>
13
+ <div :class="contentClasses">
14
+ <slot />
15
+ </div>
16
+ </div>
17
+ <DXCloseButton
18
+ v-if="dismissible"
19
+ size="sm"
20
+ variant="default"
21
+ @click="dismiss"
22
+ />
23
+ </div>
24
+ <div v-if="$slots.actions" class="mt-3 flex gap-2">
25
+ <slot name="actions" />
26
+ </div>
27
+ </div>
28
+ </template>
29
+
30
+ <script setup>
31
+ import { ref, computed } from "vue";
32
+ import {
33
+ InformationCircleIcon,
34
+ CheckCircleIcon,
35
+ ExclamationTriangleIcon,
36
+ XCircleIcon,
37
+ } from "@heroicons/vue/24/solid";
38
+ import DXIcon from "../../atoms/DXIcon/DXIcon.vue";
39
+ import DXCloseButton from "../DXCloseButton/DXCloseButton.vue";
40
+
41
+ const props = defineProps({
42
+ /** Вариант: info | success | warning | danger */
43
+ variant: { type: String, default: "info" },
44
+ /** Заголовок */
45
+ title: { type: String, default: "" },
46
+ /** Иконка (компонент), если null - используется иконка по умолчанию для variant */
47
+ icon: { type: [Object, Function], default: undefined },
48
+ /** Показывать иконку */
49
+ showIcon: { type: Boolean, default: true },
50
+ /** Можно закрыть */
51
+ dismissible: { type: Boolean, default: false },
52
+ });
53
+
54
+ const emit = defineEmits(["dismiss"]);
55
+
56
+ const dismissed = ref(false);
57
+
58
+ const dismiss = () => {
59
+ dismissed.value = true;
60
+ emit("dismiss");
61
+ };
62
+
63
+ const BASE_CLASSES = "rounded-xl border p-4";
64
+
65
+ const VARIANT_STYLES = {
66
+ info: {
67
+ bg: "bg-blue-50 border-blue-200",
68
+ icon: "text-blue-500",
69
+ title: "text-blue-900",
70
+ content: "text-blue-800",
71
+ close: "text-blue-500",
72
+ defaultIcon: InformationCircleIcon,
73
+ },
74
+ success: {
75
+ bg: "bg-emerald-50 border-emerald-200",
76
+ icon: "text-emerald-500",
77
+ title: "text-emerald-900",
78
+ content: "text-emerald-800",
79
+ close: "text-emerald-500",
80
+ defaultIcon: CheckCircleIcon,
81
+ },
82
+ warning: {
83
+ bg: "bg-amber-50 border-amber-200",
84
+ icon: "text-amber-500",
85
+ title: "text-amber-900",
86
+ content: "text-amber-800",
87
+ close: "text-amber-500",
88
+ defaultIcon: ExclamationTriangleIcon,
89
+ },
90
+ danger: {
91
+ bg: "bg-rose-50 border-rose-200",
92
+ icon: "text-rose-500",
93
+ title: "text-rose-900",
94
+ content: "text-rose-800",
95
+ close: "text-rose-500",
96
+ defaultIcon: XCircleIcon,
97
+ },
98
+ };
99
+
100
+ const styles = computed(() => VARIANT_STYLES[props.variant] || VARIANT_STYLES.info);
101
+ const iconToShow = computed(() => {
102
+ if (!props.showIcon) return null;
103
+ return props.icon !== undefined ? props.icon : styles.value.defaultIcon;
104
+ });
105
+
106
+ const alertClasses = computed(() => [
107
+ BASE_CLASSES,
108
+ styles.value.bg,
109
+ ]);
110
+
111
+ const iconClasses = computed(() => ["w-5 h-5 flex-shrink-0 mt-0.5", styles.value.icon]);
112
+ const titleClasses = computed(() => styles.value.title);
113
+ const contentClasses = computed(() => ["text-sm", styles.value.content, props.title && "mt-1"]);
114
+ const closeClasses = computed(() => styles.value.close);
115
+ </script>
116
+
@@ -0,0 +1,2 @@
1
+ export { default } from './DXAlert.vue';
2
+