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,458 @@
1
+ <template>
2
+ <div
3
+ :class="formClasses"
4
+ data-component="DXAuthenticationForm"
5
+ :data-mode="mode"
6
+ >
7
+ <!-- Header -->
8
+ <div v-if="showHeader || $slots.header" :class="headerClasses">
9
+ <slot name="header">
10
+ <h2 class="text-2xl font-bold text-slate-900 text-center">
11
+ {{ modeLabels[mode] }}
12
+ </h2>
13
+ </slot>
14
+ </div>
15
+
16
+ <!-- Error Alert -->
17
+ <div v-if="error || $slots.error" :class="errorClasses">
18
+ <slot name="error">
19
+ <DXAlert v-if="error" type="error" :message="error" />
20
+ </slot>
21
+ </div>
22
+
23
+ <!-- Login Form -->
24
+ <div v-if="mode === 'login'" :class="contentClasses">
25
+ <slot name="login">
26
+ <div class="space-y-4">
27
+ <DXFormControl label="Email" :error="errors.email">
28
+ <DXInput
29
+ v-model="loginForm.email"
30
+ type="email"
31
+ placeholder="Введите email"
32
+ required
33
+ @update:model-value="clearError('email')"
34
+ />
35
+ </DXFormControl>
36
+ <DXFormControl label="Пароль" :error="errors.password">
37
+ <DXPasswordInput
38
+ v-model="loginForm.password"
39
+ placeholder="Введите пароль"
40
+ required
41
+ @update:model-value="clearError('password')"
42
+ />
43
+ </DXFormControl>
44
+ <div class="flex items-center justify-between">
45
+ <DXCheckbox v-model="loginForm.remember">
46
+ Запомнить меня
47
+ </DXCheckbox>
48
+ <DXLink
49
+ variant="link"
50
+ size="sm"
51
+ @click="handleModeChange('forgot-password')"
52
+ >
53
+ Забыли пароль?
54
+ </DXLink>
55
+ </div>
56
+ <DXButton
57
+ variant="primary"
58
+ :loading="loading"
59
+ :disabled="!canSubmit"
60
+ block
61
+ @click="handleLogin"
62
+ >
63
+ Войти
64
+ </DXButton>
65
+ <div class="text-center text-sm text-slate-600">
66
+ Нет аккаунта?
67
+ <DXLink
68
+ variant="link"
69
+ size="sm"
70
+ @click="handleModeChange('register')"
71
+ >
72
+ Зарегистрироваться
73
+ </DXLink>
74
+ </div>
75
+ </div>
76
+ </slot>
77
+ </div>
78
+
79
+ <!-- Register Form -->
80
+ <div v-else-if="mode === 'register'" :class="contentClasses">
81
+ <slot name="register">
82
+ <div class="space-y-4">
83
+ <DXFormControl label="Имя" :error="errors.name">
84
+ <DXInput
85
+ v-model="registerForm.name"
86
+ placeholder="Введите имя"
87
+ required
88
+ @update:model-value="clearError('name')"
89
+ />
90
+ </DXFormControl>
91
+ <DXFormControl label="Email" :error="errors.email">
92
+ <DXInput
93
+ v-model="registerForm.email"
94
+ type="email"
95
+ placeholder="Введите email"
96
+ required
97
+ @update:model-value="clearError('email')"
98
+ />
99
+ </DXFormControl>
100
+ <DXFormControl label="Пароль" :error="errors.password">
101
+ <DXPasswordInput
102
+ v-model="registerForm.password"
103
+ placeholder="Введите пароль"
104
+ required
105
+ @update:model-value="clearError('password')"
106
+ />
107
+ </DXFormControl>
108
+ <DXFormControl
109
+ label="Подтверждение пароля"
110
+ :error="errors.confirmPassword"
111
+ >
112
+ <DXPasswordInput
113
+ v-model="registerForm.confirmPassword"
114
+ placeholder="Подтвердите пароль"
115
+ required
116
+ @update:model-value="clearError('confirmPassword')"
117
+ />
118
+ </DXFormControl>
119
+ <DXCheckbox v-model="registerForm.agreeToTerms">
120
+ Я согласен с условиями использования
121
+ </DXCheckbox>
122
+ <DXButton
123
+ variant="primary"
124
+ :loading="loading"
125
+ :disabled="!canSubmit"
126
+ block
127
+ @click="handleRegister"
128
+ >
129
+ Зарегистрироваться
130
+ </DXButton>
131
+ <div class="text-center text-sm text-slate-600">
132
+ Уже есть аккаунт?
133
+ <DXLink
134
+ variant="link"
135
+ size="sm"
136
+ @click="handleModeChange('login')"
137
+ >
138
+ Войти
139
+ </DXLink>
140
+ </div>
141
+ </div>
142
+ </slot>
143
+ </div>
144
+
145
+ <!-- Forgot Password Form -->
146
+ <div v-else-if="mode === 'forgot-password'" :class="contentClasses">
147
+ <slot name="forgot-password">
148
+ <div class="space-y-4">
149
+ <p class="text-sm text-slate-600 text-center">
150
+ Введите email, и мы отправим вам инструкции по восстановлению
151
+ пароля.
152
+ </p>
153
+ <DXFormControl label="Email" :error="errors.email">
154
+ <DXInput
155
+ v-model="forgotPasswordForm.email"
156
+ type="email"
157
+ placeholder="Введите email"
158
+ required
159
+ @update:model-value="clearError('email')"
160
+ />
161
+ </DXFormControl>
162
+ <DXButton
163
+ variant="primary"
164
+ :loading="loading"
165
+ :disabled="!canSubmit"
166
+ block
167
+ @click="handleForgotPassword"
168
+ >
169
+ Отправить
170
+ </DXButton>
171
+ <div class="text-center">
172
+ <DXLink
173
+ variant="link"
174
+ size="sm"
175
+ @click="handleModeChange('login')"
176
+ >
177
+ Вернуться к входу
178
+ </DXLink>
179
+ </div>
180
+ </div>
181
+ </slot>
182
+ </div>
183
+
184
+ <!-- 2FA Form -->
185
+ <div v-else-if="mode === '2fa'" :class="contentClasses">
186
+ <slot name="2fa">
187
+ <div class="space-y-4">
188
+ <p class="text-sm text-slate-600 text-center">
189
+ Введите код из приложения аутентификации.
190
+ </p>
191
+ <DXFormControl label="Код" :error="errors.code">
192
+ <DXInput
193
+ v-model="twoFactorForm.code"
194
+ placeholder="000000"
195
+ maxlength="6"
196
+ required
197
+ @update:model-value="clearError('code')"
198
+ />
199
+ </DXFormControl>
200
+ <DXButton
201
+ variant="primary"
202
+ :loading="loading"
203
+ :disabled="!canSubmit"
204
+ block
205
+ @click="handle2FA"
206
+ >
207
+ Подтвердить
208
+ </DXButton>
209
+ </div>
210
+ </slot>
211
+ </div>
212
+ </div>
213
+ </template>
214
+
215
+ <script setup>
216
+ import { ref, computed } from "vue";
217
+ import { useClassComposition } from "@/composables/useClassComposition";
218
+ import { useSpacing } from "@/composables/useSpacing";
219
+ import DXInput from "../../molecules/DXInput/DXInput.vue";
220
+ import DXPasswordInput from "../../molecules/DXPasswordInput/DXPasswordInput.vue";
221
+ import DXFormControl from "../../molecules/DXFormControl/DXFormControl.vue";
222
+ import DXButton from "../../atoms/DXButton/DXButton.vue";
223
+ import DXCheckbox from "../../atoms/DXCheckbox/DXCheckbox.vue";
224
+ import DXLink from "../../atoms/DXLink/DXLink.vue";
225
+ import DXAlert from "../../molecules/DXAlert/DXAlert.vue";
226
+
227
+ const props = defineProps({
228
+ /**
229
+ * Режим формы: login | register | forgot-password | 2fa
230
+ * @default 'login'
231
+ */
232
+ mode: {
233
+ type: String,
234
+ default: "login",
235
+ validator: (v) =>
236
+ ["login", "register", "forgot-password", "2fa"].includes(v),
237
+ },
238
+ /**
239
+ * Состояние загрузки
240
+ * @default false
241
+ */
242
+ loading: { type: Boolean, default: false },
243
+ /**
244
+ * Сообщение об ошибке
245
+ */
246
+ error: { type: String, default: "" },
247
+ /**
248
+ * Ошибки валидации
249
+ * Формат: { field: 'error message' }
250
+ */
251
+ errors: {
252
+ type: Object,
253
+ default: () => ({}),
254
+ },
255
+ /**
256
+ * Показывать header
257
+ * @default true
258
+ */
259
+ showHeader: { type: Boolean, default: true },
260
+ });
261
+
262
+ const emit = defineEmits(["submit", "mode-change"]);
263
+
264
+ const loginForm = ref({
265
+ email: "",
266
+ password: "",
267
+ remember: false,
268
+ });
269
+
270
+ const registerForm = ref({
271
+ name: "",
272
+ email: "",
273
+ password: "",
274
+ confirmPassword: "",
275
+ agreeToTerms: false,
276
+ });
277
+
278
+ const forgotPasswordForm = ref({
279
+ email: "",
280
+ });
281
+
282
+ const twoFactorForm = ref({
283
+ code: "",
284
+ });
285
+
286
+ /**
287
+ * Метки режимов
288
+ *
289
+ * @description
290
+ * Метки для различных режимов формы.
291
+ *
292
+ * @returns {Object} Объект с метками режимов
293
+ */
294
+ const modeLabels = computed(() => ({
295
+ login: "Вход",
296
+ register: "Регистрация",
297
+ "forgot-password": "Восстановление пароля",
298
+ "2fa": "Двухфакторная аутентификация",
299
+ }));
300
+
301
+ /**
302
+ * Классы для формы
303
+ *
304
+ * @description
305
+ * Базовые классы для формы аутентификации.
306
+ *
307
+ * @returns {Array} Массив классов
308
+ */
309
+ const formClasses = computed(() =>
310
+ useClassComposition("w-full max-w-md mx-auto")
311
+ );
312
+
313
+ /**
314
+ * Классы для header
315
+ *
316
+ * @description
317
+ * Классы для секции заголовка.
318
+ *
319
+ * @returns {Array} Массив классов
320
+ */
321
+ const headerClasses = computed(() =>
322
+ useClassComposition("mb-6")
323
+ );
324
+
325
+ /**
326
+ * Классы для ошибки
327
+ *
328
+ * @description
329
+ * Классы для секции ошибки.
330
+ *
331
+ * @returns {Array} Массив классов
332
+ */
333
+ const errorClasses = computed(() =>
334
+ useClassComposition("mb-4")
335
+ );
336
+
337
+ /**
338
+ * Классы для контента
339
+ *
340
+ * @description
341
+ * Классы для секции контента формы.
342
+ *
343
+ * @returns {Array} Массив классов
344
+ */
345
+ const contentClasses = computed(() =>
346
+ useClassComposition("", useSpacing("md", "padding"))
347
+ );
348
+
349
+ /**
350
+ * Можно ли отправить форму
351
+ *
352
+ * @description
353
+ * Проверяет, можно ли отправить форму (все обязательные поля заполнены).
354
+ *
355
+ * @returns {boolean} true, если можно отправить
356
+ */
357
+ const canSubmit = computed(() => {
358
+ if (props.mode === "login") {
359
+ return (
360
+ loginForm.value.email.trim() !== "" &&
361
+ loginForm.value.password.trim() !== ""
362
+ );
363
+ } else if (props.mode === "register") {
364
+ return (
365
+ registerForm.value.name.trim() !== "" &&
366
+ registerForm.value.email.trim() !== "" &&
367
+ registerForm.value.password.trim() !== "" &&
368
+ registerForm.value.confirmPassword.trim() !== "" &&
369
+ registerForm.value.agreeToTerms
370
+ );
371
+ } else if (props.mode === "forgot-password") {
372
+ return forgotPasswordForm.value.email.trim() !== "";
373
+ } else if (props.mode === "2fa") {
374
+ return twoFactorForm.value.code.trim().length === 6;
375
+ }
376
+ return false;
377
+ });
378
+
379
+ /**
380
+ * Обработчик входа
381
+ *
382
+ * @description
383
+ * Эмитит событие входа с данными формы.
384
+ */
385
+ function handleLogin() {
386
+ emit("submit", {
387
+ mode: "login",
388
+ data: { ...loginForm.value },
389
+ });
390
+ }
391
+
392
+ /**
393
+ * Обработчик регистрации
394
+ *
395
+ * @description
396
+ * Эмитит событие регистрации с данными формы.
397
+ */
398
+ function handleRegister() {
399
+ if (registerForm.value.password !== registerForm.value.confirmPassword) {
400
+ return;
401
+ }
402
+ emit("submit", {
403
+ mode: "register",
404
+ data: { ...registerForm.value },
405
+ });
406
+ }
407
+
408
+ /**
409
+ * Обработчик восстановления пароля
410
+ *
411
+ * @description
412
+ * Эмитит событие восстановления пароля с данными формы.
413
+ */
414
+ function handleForgotPassword() {
415
+ emit("submit", {
416
+ mode: "forgot-password",
417
+ data: { ...forgotPasswordForm.value },
418
+ });
419
+ }
420
+
421
+ /**
422
+ * Обработчик 2FA
423
+ *
424
+ * @description
425
+ * Эмитит событие подтверждения 2FA с данными формы.
426
+ */
427
+ function handle2FA() {
428
+ emit("submit", {
429
+ mode: "2fa",
430
+ data: { ...twoFactorForm.value },
431
+ });
432
+ }
433
+
434
+ /**
435
+ * Обработчик изменения режима
436
+ *
437
+ * @description
438
+ * Эмитит событие изменения режима формы.
439
+ *
440
+ * @param {string} newMode - Новый режим
441
+ */
442
+ function handleModeChange(newMode) {
443
+ emit("mode-change", newMode);
444
+ }
445
+
446
+ /**
447
+ * Очистка ошибки поля
448
+ *
449
+ * @description
450
+ * Очищает ошибку для указанного поля.
451
+ *
452
+ * @param {string} field - Название поля
453
+ */
454
+ function clearError(field) {
455
+ // Очистка ошибки обрабатывается родительским компонентом
456
+ }
457
+ </script>
458
+
@@ -0,0 +1,2 @@
1
+ export { default } from './DXAuthenticationForm.vue';
2
+