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,194 @@
1
+ import { ref } from 'vue';
2
+ import DXUserProfileCard from './DXUserProfileCard.vue';
3
+
4
+ export default {
5
+ title: 'Organisms/DXUserProfileCard',
6
+ component: DXUserProfileCard,
7
+ tags: ['autodocs'],
8
+ parameters: {
9
+ docs: {
10
+ description: {
11
+ component: `
12
+ # DXUserProfileCard
13
+
14
+ Карточка профиля пользователя с информацией, действиями и настройками.
15
+
16
+ ## Назначение
17
+
18
+ DXUserProfileCard предоставляет карточку профиля пользователя с отображением
19
+ аватара, основной информации, статистики, badges и действий.
20
+
21
+ ## Архитектура
22
+
23
+ ### Использует
24
+ - \`DXCard\` - как базовый контейнер
25
+ - \`DXAvatar\` - для аватара
26
+ - \`DXButton\` - для действий
27
+ - \`DXBadge\` - для badges
28
+ - \`useSize\` composable - для размеров
29
+ - \`useClassComposition\` composable - для стилей
30
+
31
+ ### Используется в
32
+ - Профили пользователей
33
+ - Карточки в списках пользователей
34
+ - Виджеты профиля
35
+ - Панели управления профилем
36
+
37
+ ## Внутренняя логика
38
+
39
+ ### Размеры
40
+ Поддерживает размеры: sm, md, lg.
41
+
42
+ ### Статистика
43
+ Отображает статистику пользователя (посты, подписчики, подписки и т.д.).
44
+
45
+ ### Badges
46
+ Поддерживает отображение badges для статусов пользователя.
47
+
48
+ ## Особенности
49
+
50
+ ### Слоты
51
+ - **avatar**: Кастомный аватар
52
+ - **info**: Кастомная информация
53
+ - **stats**: Кастомная статистика
54
+ - **badges**: Кастомные badges
55
+ - **actions**: Кастомные действия
56
+
57
+ ### Кликабельность
58
+ При \`clickable={true}\` карточка становится кликабельной.
59
+ `,
60
+ },
61
+ },
62
+ },
63
+ };
64
+
65
+ const defaultUser = {
66
+ id: 1,
67
+ name: 'John Doe',
68
+ role: 'Senior Developer',
69
+ bio: 'Passionate about web development and design',
70
+ avatar: '/avatar.jpg',
71
+ stats: {
72
+ posts: 125,
73
+ followers: 1250,
74
+ following: 340,
75
+ },
76
+ badges: [
77
+ { id: 1, label: 'Верифицирован', variant: 'success' },
78
+ { id: 2, label: 'Премиум', variant: 'info' },
79
+ ],
80
+ };
81
+
82
+ export const Default = {
83
+ args: {
84
+ user: defaultUser,
85
+ showActions: true,
86
+ showStats: true,
87
+ },
88
+ parameters: {
89
+ docs: {
90
+ description: {
91
+ story: 'Базовая карточка профиля с аватаром, информацией, статистикой и действиями.',
92
+ },
93
+ },
94
+ },
95
+ render: (args) => ({
96
+ components: { DXUserProfileCard },
97
+ setup() {
98
+ return { args };
99
+ },
100
+ template: `
101
+ <div class="max-w-sm">
102
+ <DXUserProfileCard v-bind="args" />
103
+ </div>
104
+ `,
105
+ }),
106
+ };
107
+
108
+ export const WithActions = {
109
+ parameters: {
110
+ docs: {
111
+ description: {
112
+ story: 'Карточка профиля с действиями (написать, редактировать).',
113
+ },
114
+ },
115
+ },
116
+ render: () => ({
117
+ components: { DXUserProfileCard },
118
+ setup() {
119
+ const user = ref(defaultUser);
120
+ const handleEdit = () => {
121
+ console.log('Редактирование профиля');
122
+ };
123
+ const handleMessage = () => {
124
+ console.log('Отправка сообщения');
125
+ };
126
+ return { user, handleEdit, handleMessage };
127
+ },
128
+ template: `
129
+ <div class="max-w-sm">
130
+ <DXUserProfileCard
131
+ :user="user"
132
+ :show-actions="true"
133
+ :editable="true"
134
+ @edit="handleEdit"
135
+ @message="handleMessage"
136
+ />
137
+ </div>
138
+ `,
139
+ }),
140
+ };
141
+
142
+ export const Clickable = {
143
+ parameters: {
144
+ docs: {
145
+ description: {
146
+ story: 'Кликабельная карточка профиля.',
147
+ },
148
+ },
149
+ },
150
+ render: () => ({
151
+ components: { DXUserProfileCard },
152
+ setup() {
153
+ const user = ref(defaultUser);
154
+ const handleClick = () => {
155
+ console.log('Клик по карточке:', user.value);
156
+ };
157
+ return { user, handleClick };
158
+ },
159
+ template: `
160
+ <div class="max-w-sm">
161
+ <DXUserProfileCard
162
+ :user="user"
163
+ :clickable="true"
164
+ @click="handleClick"
165
+ />
166
+ </div>
167
+ `,
168
+ }),
169
+ };
170
+
171
+ export const DifferentSizes = {
172
+ parameters: {
173
+ docs: {
174
+ description: {
175
+ story: 'Карточки профиля разных размеров.',
176
+ },
177
+ },
178
+ },
179
+ render: () => ({
180
+ components: { DXUserProfileCard },
181
+ setup() {
182
+ const user = ref(defaultUser);
183
+ return { user };
184
+ },
185
+ template: `
186
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
187
+ <DXUserProfileCard :user="user" size="sm" />
188
+ <DXUserProfileCard :user="user" size="md" />
189
+ <DXUserProfileCard :user="user" size="lg" />
190
+ </div>
191
+ `,
192
+ }),
193
+ };
194
+
@@ -0,0 +1,403 @@
1
+ <template>
2
+ <DXCard
3
+ :class="cardClasses"
4
+ :variant="cardVariant"
5
+ :padding="padding"
6
+ data-component="DXUserProfileCard"
7
+ :data-size="size"
8
+ :data-clickable="clickable"
9
+ @click="handleClick"
10
+ >
11
+ <!-- Avatar -->
12
+ <div v-if="$slots.avatar || user?.avatar" :class="avatarClasses">
13
+ <slot name="avatar">
14
+ <DXAvatar
15
+ :src="user?.avatar"
16
+ :name="user?.name"
17
+ :size="avatarSize"
18
+ />
19
+ </slot>
20
+ </div>
21
+
22
+ <!-- Info -->
23
+ <div :class="infoClasses">
24
+ <slot name="info">
25
+ <h3 v-if="user?.name" :class="nameClasses">
26
+ {{ user.name }}
27
+ </h3>
28
+ <p v-if="user?.role" :class="roleClasses">
29
+ {{ user.role }}
30
+ </p>
31
+ <p v-if="user?.bio" :class="bioClasses">
32
+ {{ user.bio }}
33
+ </p>
34
+ </slot>
35
+ </div>
36
+
37
+ <!-- Stats -->
38
+ <div v-if="$slots.stats || (user?.stats && showStats)" :class="statsClasses">
39
+ <slot name="stats">
40
+ <div class="flex items-center gap-4">
41
+ <div
42
+ v-for="(value, key) in user?.stats"
43
+ :key="key"
44
+ class="text-center"
45
+ >
46
+ <div :class="statValueClasses">{{ value }}</div>
47
+ <div :class="statLabelClasses">{{ getStatLabel(key) }}</div>
48
+ </div>
49
+ </div>
50
+ </slot>
51
+ </div>
52
+
53
+ <!-- Badges -->
54
+ <div v-if="$slots.badges || (user?.badges && user.badges.length > 0)" :class="badgesClasses">
55
+ <slot name="badges">
56
+ <div class="flex flex-wrap gap-2">
57
+ <DXBadge
58
+ v-for="badge in user?.badges"
59
+ :key="badge.id || badge"
60
+ :variant="badge.variant || 'default'"
61
+ :size="badgeSize"
62
+ >
63
+ {{ badge.label || badge }}
64
+ </DXBadge>
65
+ </div>
66
+ </slot>
67
+ </div>
68
+
69
+ <!-- Actions -->
70
+ <div v-if="($slots.actions || showActions) && !clickable" :class="actionsClasses">
71
+ <slot name="actions">
72
+ <DXButton
73
+ v-if="showActions"
74
+ variant="primary"
75
+ size="sm"
76
+ @click="handleMessage"
77
+ >
78
+ Написать
79
+ </DXButton>
80
+ <DXButton
81
+ v-if="showActions && editable"
82
+ variant="ghost"
83
+ size="sm"
84
+ @click="handleEdit"
85
+ >
86
+ Редактировать
87
+ </DXButton>
88
+ </slot>
89
+ </div>
90
+ </DXCard>
91
+ </template>
92
+
93
+ <script setup>
94
+ import { computed } from "vue";
95
+ import { useClassComposition } from "@/composables/useClassComposition";
96
+ import { useSize } from "@/composables/useSize";
97
+ import DXCard from "../../atoms/DXCard/DXCard.vue";
98
+ import DXAvatar from "../../atoms/DXAvatar/DXAvatar.vue";
99
+ import DXButton from "../../atoms/DXButton/DXButton.vue";
100
+ import DXBadge from "../../atoms/DXBadge/DXBadge.vue";
101
+
102
+ const props = defineProps({
103
+ /**
104
+ * Данные пользователя
105
+ * Формат: { name, role?, bio?, avatar?, stats?, badges? }
106
+ */
107
+ user: {
108
+ type: Object,
109
+ required: true,
110
+ },
111
+ /**
112
+ * Показывать действия
113
+ * @default true
114
+ */
115
+ showActions: { type: Boolean, default: true },
116
+ /**
117
+ * Можно редактировать
118
+ * @default false
119
+ */
120
+ editable: { type: Boolean, default: false },
121
+ /**
122
+ * Показывать статистику
123
+ * @default true
124
+ */
125
+ showStats: { type: Boolean, default: true },
126
+ /**
127
+ * Размер карточки: sm | md | lg
128
+ * @default 'md'
129
+ */
130
+ size: {
131
+ type: String,
132
+ default: "md",
133
+ validator: (v) => ["sm", "md", "lg"].includes(v),
134
+ },
135
+ /**
136
+ * Кликабельная карточка
137
+ * @default false
138
+ */
139
+ clickable: { type: Boolean, default: false },
140
+ /**
141
+ * Вариант DXCard
142
+ * @default 'default'
143
+ */
144
+ cardVariant: {
145
+ type: String,
146
+ default: "default",
147
+ validator: (v) => ["default", "bordered", "elevated", "flat"].includes(v),
148
+ },
149
+ /**
150
+ * Padding для DXCard
151
+ * @default 'md'
152
+ */
153
+ padding: {
154
+ type: String,
155
+ default: "md",
156
+ validator: (v) => ["none", "xs", "sm", "md", "lg", "xl"].includes(v),
157
+ },
158
+ });
159
+
160
+ const emit = defineEmits(["click", "edit", "message"]);
161
+
162
+ /**
163
+ * Размер аватара
164
+ *
165
+ * @description
166
+ * Определяет размер аватара в зависимости от размера карточки.
167
+ *
168
+ * @returns {'xs' | 'sm' | 'md' | 'lg' | 'xl'} Размер аватара
169
+ */
170
+ const avatarSize = computed(() => {
171
+ const sizeMap = {
172
+ sm: "md",
173
+ md: "lg",
174
+ lg: "xl",
175
+ };
176
+ return sizeMap[props.size] || "lg";
177
+ });
178
+
179
+ /**
180
+ * Размер badge
181
+ *
182
+ * @description
183
+ * Определяет размер badge в зависимости от размера карточки.
184
+ *
185
+ * @returns {'sm' | 'md'} Размер badge
186
+ */
187
+ const badgeSize = computed(() => {
188
+ return props.size === "sm" ? "sm" : "md";
189
+ });
190
+
191
+ /**
192
+ * Классы для карточки
193
+ *
194
+ * @description
195
+ * Базовые классы для карточки профиля.
196
+ *
197
+ * @returns {Array} Массив классов
198
+ */
199
+ const cardClasses = computed(() =>
200
+ useClassComposition(
201
+ "w-full",
202
+ props.clickable ? "cursor-pointer hover:border-slate-300 transition-all" : ""
203
+ )
204
+ );
205
+
206
+ /**
207
+ * Классы для аватара
208
+ *
209
+ * @description
210
+ * Классы для секции аватара.
211
+ *
212
+ * @returns {Array} Массив классов
213
+ */
214
+ const avatarClasses = computed(() =>
215
+ useClassComposition("flex justify-center mb-4")
216
+ );
217
+
218
+ /**
219
+ * Классы для информации
220
+ *
221
+ * @description
222
+ * Классы для секции информации о пользователе.
223
+ *
224
+ * @returns {Array} Массив классов
225
+ */
226
+ const infoClasses = computed(() =>
227
+ useClassComposition("text-center mb-4")
228
+ );
229
+
230
+ /**
231
+ * Классы для имени
232
+ *
233
+ * @description
234
+ * Классы для имени пользователя.
235
+ *
236
+ * @returns {string} Tailwind CSS классы
237
+ */
238
+ const nameClasses = computed(() => {
239
+ const sizeMap = {
240
+ sm: "text-lg font-semibold text-slate-900",
241
+ md: "text-xl font-semibold text-slate-900",
242
+ lg: "text-2xl font-semibold text-slate-900",
243
+ };
244
+ return sizeMap[props.size] || sizeMap.md;
245
+ });
246
+
247
+ /**
248
+ * Классы для роли
249
+ *
250
+ * @description
251
+ * Классы для роли пользователя.
252
+ *
253
+ * @returns {string} Tailwind CSS классы
254
+ */
255
+ const roleClasses = computed(() => {
256
+ const sizeMap = {
257
+ sm: "text-sm text-slate-600 mt-1",
258
+ md: "text-base text-slate-600 mt-1",
259
+ lg: "text-lg text-slate-600 mt-1",
260
+ };
261
+ return sizeMap[props.size] || sizeMap.md;
262
+ });
263
+
264
+ /**
265
+ * Классы для биографии
266
+ *
267
+ * @description
268
+ * Классы для биографии пользователя.
269
+ *
270
+ * @returns {string} Tailwind CSS классы
271
+ */
272
+ const bioClasses = computed(() => {
273
+ const sizeMap = {
274
+ sm: "text-xs text-slate-500 mt-2",
275
+ md: "text-sm text-slate-500 mt-2",
276
+ lg: "text-base text-slate-500 mt-2",
277
+ };
278
+ return sizeMap[props.size] || sizeMap.md;
279
+ });
280
+
281
+ /**
282
+ * Классы для статистики
283
+ *
284
+ * @description
285
+ * Классы для секции статистики.
286
+ *
287
+ * @returns {Array} Массив классов
288
+ */
289
+ const statsClasses = computed(() =>
290
+ useClassComposition("mb-4 pt-4 border-t border-slate-200")
291
+ );
292
+
293
+ /**
294
+ * Классы для значения статистики
295
+ *
296
+ * @description
297
+ * Классы для значения статистики.
298
+ *
299
+ * @returns {string} Tailwind CSS классы
300
+ */
301
+ const statValueClasses = computed(() => {
302
+ const sizeMap = {
303
+ sm: "text-lg font-semibold text-slate-900",
304
+ md: "text-xl font-semibold text-slate-900",
305
+ lg: "text-2xl font-semibold text-slate-900",
306
+ };
307
+ return sizeMap[props.size] || sizeMap.md;
308
+ });
309
+
310
+ /**
311
+ * Классы для метки статистики
312
+ *
313
+ * @description
314
+ * Классы для метки статистики.
315
+ *
316
+ * @returns {string} Tailwind CSS классы
317
+ */
318
+ const statLabelClasses = computed(() => {
319
+ const sizeMap = {
320
+ sm: "text-xs text-slate-500 mt-1",
321
+ md: "text-sm text-slate-500 mt-1",
322
+ lg: "text-base text-slate-500 mt-1",
323
+ };
324
+ return sizeMap[props.size] || sizeMap.md;
325
+ });
326
+
327
+ /**
328
+ * Классы для badges
329
+ *
330
+ * @description
331
+ * Классы для секции badges.
332
+ *
333
+ * @returns {Array} Массив классов
334
+ */
335
+ const badgesClasses = computed(() =>
336
+ useClassComposition("mb-4 flex justify-center")
337
+ );
338
+
339
+ /**
340
+ * Классы для действий
341
+ *
342
+ * @description
343
+ * Классы для секции действий.
344
+ *
345
+ * @returns {Array} Массив классов
346
+ */
347
+ const actionsClasses = computed(() =>
348
+ useClassComposition("flex justify-center gap-2")
349
+ );
350
+
351
+ /**
352
+ * Получение метки статистики
353
+ *
354
+ * @description
355
+ * Возвращает метку для ключа статистики.
356
+ *
357
+ * @param {string} key - Ключ статистики
358
+ * @returns {string} Метка
359
+ */
360
+ function getStatLabel(key) {
361
+ const labels = {
362
+ posts: "Постов",
363
+ followers: "Подписчиков",
364
+ following: "Подписок",
365
+ views: "Просмотров",
366
+ likes: "Лайков",
367
+ };
368
+ return labels[key] || key;
369
+ }
370
+
371
+ /**
372
+ * Обработчик клика
373
+ *
374
+ * @description
375
+ * Эмитит событие клика по карточке.
376
+ */
377
+ function handleClick() {
378
+ if (props.clickable) {
379
+ emit("click", props.user);
380
+ }
381
+ }
382
+
383
+ /**
384
+ * Обработчик редактирования
385
+ *
386
+ * @description
387
+ * Эмитит событие редактирования профиля.
388
+ */
389
+ function handleEdit() {
390
+ emit("edit", props.user);
391
+ }
392
+
393
+ /**
394
+ * Обработчик сообщения
395
+ *
396
+ * @description
397
+ * Эмитит событие отправки сообщения.
398
+ */
399
+ function handleMessage() {
400
+ emit("message", props.user);
401
+ }
402
+ </script>
403
+
@@ -0,0 +1,2 @@
1
+ export { default } from './DXUserProfileCard.vue';
2
+