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,333 @@
1
+ # DXSidebarMenu
2
+
3
+ Полнофункциональный компонент боковой панели меню для полноэкранных sidebar с поддержкой вложенных элементов, иконок, счетчиков, поиска и компактного режима.
4
+
5
+ > **Примечание:** Для встраивания меню в карточки используйте компонент [`DXMenu`](../../molecules/DXMenu/README.md).
6
+
7
+ ## Отличия от DXMenu
8
+
9
+ | Характеристика | DXSidebarMenu | DXMenu |
10
+ |----------------|---------------|--------|
11
+ | **Назначение** | Полноэкранная боковая панель | Встраиваемое меню в карточках |
12
+ | **Размеры** | Фиксированная ширина (sm/md/lg) | `w-full h-full` (100% контейнера) |
13
+ | **Скругления** | Без скруглений | `rounded-xl` (всегда) |
14
+ | **Бордер** | `border-r` (только справа) | `border` (со всех сторон) |
15
+ | **Тень** | `shadow-sm` | Без тени |
16
+ | **Fixed position** | Поддерживается | Не поддерживается |
17
+ | **Width prop** | sm / md / lg / full | Не поддерживается |
18
+
19
+ ## Возможности
20
+
21
+ - ✅ **Активное состояние** - автоматическое выделение активного пункта меню
22
+ - ✅ **Переключение между страницами** - поддержка `router-link` и обычных ссылок
23
+ - ✅ **Иконки** - поддержка HeroIcons и любых Vue компонентов
24
+ - ✅ **Счетчики (badges)** - отображение количества уведомлений/элементов
25
+ - ✅ **Вложенное меню** - поддержка подменю с анимацией
26
+ - ✅ **Компактный режим** - сворачивание до иконок
27
+ - ✅ **Поиск** - фильтрация пунктов меню
28
+ - ✅ **Секции** - группировка элементов с заголовками
29
+ - ✅ **Кастомизация** - слоты для header и footer
30
+ - ✅ **Адаптивная ширина** - sm, md, lg, full
31
+
32
+ ## Использование
33
+
34
+ ### Базовый пример
35
+
36
+ ```vue
37
+ <template>
38
+ <DXSidebarMenu
39
+ title="Меню"
40
+ :sections="menuSections"
41
+ :activeItem="currentPage"
42
+ @item-click="handleNavigation"
43
+ />
44
+ </template>
45
+
46
+ <script setup>
47
+ import { ref } from 'vue';
48
+ import { DXSidebarMenu } from 'dxd-style-code';
49
+ import { HomeIcon, UsersIcon, Cog6ToothIcon } from '@heroicons/vue/24/outline';
50
+
51
+ const currentPage = ref('/home');
52
+
53
+ const menuSections = [
54
+ {
55
+ items: [
56
+ {
57
+ id: 'home',
58
+ label: 'Главная',
59
+ icon: HomeIcon,
60
+ to: '/home',
61
+ badge: '5',
62
+ badgeVariant: 'danger'
63
+ },
64
+ {
65
+ id: 'users',
66
+ label: 'Пользователи',
67
+ icon: UsersIcon,
68
+ to: '/users',
69
+ badge: '12'
70
+ },
71
+ ],
72
+ },
73
+ {
74
+ title: 'Настройки',
75
+ items: [
76
+ {
77
+ id: 'settings',
78
+ label: 'Настройки',
79
+ icon: Cog6ToothIcon,
80
+ children: [
81
+ { id: 'profile', label: 'Профиль', to: '/settings/profile' },
82
+ { id: 'security', label: 'Безопасность', to: '/settings/security' },
83
+ ]
84
+ },
85
+ ],
86
+ },
87
+ ];
88
+
89
+ const handleNavigation = (item) => {
90
+ currentPage.value = item.to || item.id;
91
+ // Ваша логика навигации
92
+ };
93
+ </script>
94
+ ```
95
+
96
+ ### С поиском и компактным режимом
97
+
98
+ ```vue
99
+ <template>
100
+ <DXSidebarMenu
101
+ :sections="menuSections"
102
+ :activeItem="currentPage"
103
+ :compact="isCompact"
104
+ searchable
105
+ collapsible
106
+ @update:compact="isCompact = $event"
107
+ @item-click="handleNavigation"
108
+ />
109
+ </template>
110
+
111
+ <script setup>
112
+ import { ref } from 'vue';
113
+
114
+ const isCompact = ref(false);
115
+ const currentPage = ref('/home');
116
+ </script>
117
+ ```
118
+
119
+ ### Управление header
120
+
121
+ ```vue
122
+ <!-- Без header -->
123
+ <DXSidebarMenu
124
+ :sections="sections"
125
+ :activeItem="currentPage"
126
+ :showHeader="false"
127
+ />
128
+
129
+ <!-- С компактным header -->
130
+ <DXSidebarMenu
131
+ title="Меню"
132
+ :sections="sections"
133
+ :activeItem="currentPage"
134
+ headerSize="sm"
135
+ />
136
+
137
+ <!-- С большим header -->
138
+ <DXSidebarMenu
139
+ title="Большой заголовок"
140
+ :sections="sections"
141
+ :activeItem="currentPage"
142
+ headerSize="lg"
143
+ />
144
+
145
+ <!-- Автоматическое скрытие header -->
146
+ <!-- Header не отображается, так как нет title, слота header и collapsible=false -->
147
+ <DXSidebarMenu
148
+ :sections="sections"
149
+ :activeItem="currentPage"
150
+ :collapsible="false"
151
+ />
152
+ ```
153
+
154
+ ### С кастомным header и footer
155
+
156
+ ```vue
157
+ <template>
158
+ <DXSidebarMenu
159
+ :sections="menuSections"
160
+ :activeItem="currentPage"
161
+ >
162
+ <template #header>
163
+ <div class="flex items-center gap-3">
164
+ <div class="w-10 h-10 rounded-xl bg-blue-500 flex items-center justify-center text-white font-bold">
165
+ A
166
+ </div>
167
+ <div>
168
+ <h2 class="text-sm font-bold">Admin Panel</h2>
169
+ <p class="text-xs text-slate-500">v2.0.0</p>
170
+ </div>
171
+ </div>
172
+ </template>
173
+
174
+ <template #footer>
175
+ <DXButton variant="ghost" block @click="logout">
176
+ Выйти
177
+ </DXButton>
178
+ </template>
179
+ </DXSidebarMenu>
180
+ </template>
181
+ ```
182
+
183
+ ## Props
184
+
185
+ | Prop | Type | Default | Описание |
186
+ |------|------|---------|----------|
187
+ | `title` | String | `''` | Заголовок сайдбара |
188
+ | `sections` | Array | required | Массив секций меню |
189
+ | `activeItem` | String | `''` | ID или path активного элемента |
190
+ | `compact` | Boolean | `false` | Компактный режим (только иконки) |
191
+ | `collapsible` | Boolean | `true` | Можно ли сворачивать |
192
+ | `searchable` | Boolean | `false` | Показывать поиск |
193
+ | `showHeader` | Boolean | `undefined` | Показывать header (undefined = автоматически) |
194
+ | `headerSize` | String | `'md'` | Размер header: sm, md, lg |
195
+ | `width` | String | `'md'` | Ширина: sm, md, lg, full |
196
+ | `fixed` | Boolean | `false` | Фиксированная позиция |
197
+ | `bordered` | Boolean | `true` | Показывать бордер справа |
198
+
199
+ ## Структура данных sections
200
+
201
+ ```javascript
202
+ const sections = [
203
+ {
204
+ title: 'Название секции', // опционально
205
+ items: [
206
+ {
207
+ id: 'unique-id', // уникальный идентификатор
208
+ label: 'Пункт меню', // текст
209
+ icon: IconComponent, // Vue компонент иконки
210
+ to: '/path', // для router-link
211
+ href: 'https://...', // для обычной ссылки
212
+ badge: '5', // счетчик
213
+ badgeVariant: 'danger', // вариант badge: info, success, warning, danger
214
+ disabled: false, // отключить элемент
215
+ children: [ // подменю
216
+ {
217
+ id: 'child-id',
218
+ label: 'Подпункт',
219
+ to: '/path/child',
220
+ badge: '2'
221
+ }
222
+ ]
223
+ }
224
+ ]
225
+ }
226
+ ];
227
+ ```
228
+
229
+ ## Events
230
+
231
+ | Event | Payload | Описание |
232
+ |-------|---------|----------|
233
+ | `item-click` | `(item, event)` | Клик по элементу меню |
234
+ | `update:compact` | `boolean` | Изменение компактного режима |
235
+
236
+ ## Slots
237
+
238
+ | Slot | Описание |
239
+ |------|----------|
240
+ | `header` | Кастомный заголовок сайдбара |
241
+ | `footer` | Контент в футере сайдбара |
242
+
243
+ ## Примеры использования
244
+
245
+ ### E-commerce панель
246
+
247
+ ```vue
248
+ <DXSidebarMenu
249
+ :sections="ecommerceSections"
250
+ :activeItem="currentPage"
251
+ searchable
252
+ width="md"
253
+ >
254
+ <template #header>
255
+ <div class="flex items-center gap-3">
256
+ <div class="w-10 h-10 rounded-xl bg-gradient-to-br from-blue-500 to-purple-600">
257
+ <span class="text-white font-bold">S</span>
258
+ </div>
259
+ <div>
260
+ <h2 class="text-sm font-bold">Shop Admin</h2>
261
+ </div>
262
+ </div>
263
+ </template>
264
+
265
+ <template #footer>
266
+ <button class="w-full px-4 py-2 text-rose-600 hover:bg-rose-50 rounded-xl">
267
+ Выйти
268
+ </button>
269
+ </template>
270
+ </DXSidebarMenu>
271
+ ```
272
+
273
+ ### С Vue Router
274
+
275
+ ```vue
276
+ <script setup>
277
+ import { useRoute } from 'vue-router';
278
+ import { computed } from 'vue';
279
+
280
+ const route = useRoute();
281
+ const currentPage = computed(() => route.path);
282
+
283
+ const handleNavigation = (item) => {
284
+ // router.push автоматически сработает через router-link
285
+ console.log('Navigating to:', item.to);
286
+ };
287
+ </script>
288
+
289
+ <template>
290
+ <DXSidebarMenu
291
+ :sections="sections"
292
+ :activeItem="currentPage"
293
+ @item-click="handleNavigation"
294
+ />
295
+ </template>
296
+ ```
297
+
298
+ ## Стилизация
299
+
300
+ Компонент использует Tailwind CSS классы и полностью адаптируется под вашу тему. Активные элементы выделяются темным фоном с тенью.
301
+
302
+ ## Accessibility
303
+
304
+ - Семантический HTML (`<nav>`, `<button>`, `<a>`)
305
+ - ARIA атрибуты для состояний
306
+ - Поддержка клавиатурной навигации
307
+ - Правильные role атрибуты
308
+
309
+ ## Композиция
310
+
311
+ `DXSidebarMenu` использует общий composable `useMenu` с `DXMenu`, что обеспечивает:
312
+ - Единую бизнес-логику
313
+ - Одинаковое поведение
314
+ - Легкую поддержку
315
+
316
+ ## Когда использовать DXSidebarMenu vs DXMenu
317
+
318
+ **Используйте DXSidebarMenu когда:**
319
+ - Нужна полноэкранная боковая панель
320
+ - Требуется фиксированная позиция (fixed)
321
+ - Меню должно быть отдельным layout элементом
322
+ - Нужна тень и бордер только справа
323
+
324
+ **Используйте DXMenu когда:**
325
+ - Нужно встроить меню в карточку или контейнер
326
+ - Меню является частью layout, а не отдельной панелью
327
+ - Требуется адаптивность к размерам контейнера
328
+ - Нужны скругленные углы и бордер со всех сторон
329
+
330
+ ## См. также
331
+
332
+ - [`DXMenu`](../../molecules/DXMenu/README.md) - встраиваемое меню для карточек
333
+
@@ -0,0 +1,3 @@
1
+ export { default } from './DXSidebarMenu.vue';
2
+ export { default as DXSidebarMenuItem } from './DXSidebarMenuItem.vue';
3
+