@autoafleveren/ui 1.3.2 → 1.3.3

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 (315) hide show
  1. package/dist/config/tailwind/config.cjs +1 -0
  2. package/dist/icons.cjs +17 -17
  3. package/dist/icons.js +1710 -1644
  4. package/dist/types/composables/index.d.ts +1 -1
  5. package/dist/types/composables/useActionBar/index.d.ts +3 -3
  6. package/dist/ui.cjs +36 -36
  7. package/dist/ui.js +6766 -6696
  8. package/package.json +3 -2
  9. package/src/App.vue +15 -0
  10. package/src/Playground.vue.example +9 -0
  11. package/src/config/eslint.cjs +199 -0
  12. package/src/config/tailwind/config.cjs +229 -0
  13. package/src/config/tailwind/screens.json +9 -0
  14. package/src/css/build.css +52 -0
  15. package/src/css/main.css +4 -0
  16. package/src/css/theme.css +208 -0
  17. package/src/css/tinymce.css +58 -0
  18. package/src/main.ts +34 -0
  19. package/src/modules/components/AppActionBar/AppActionBar.vue +96 -0
  20. package/src/modules/components/AppActionBar/AppActionBarItem.vue +123 -0
  21. package/src/modules/components/AppActionBar/AppActionBarSubMenu.vue +89 -0
  22. package/src/modules/components/AppActionBar/Components/Error.vue +11 -0
  23. package/src/modules/components/AppActionBar/Components/Loading.vue +9 -0
  24. package/src/modules/components/AppActionBar/Components/MultiSelect.vue +102 -0
  25. package/src/modules/components/AppActionBar/Components/__tests__/multi-select.spec.ts +74 -0
  26. package/src/modules/components/AppActionBar/__mocks__/index.ts +36 -0
  27. package/src/modules/components/AppActionBar/__tests__/app-action-bar-item.spec.ts +134 -0
  28. package/src/modules/components/AppActionBar/__tests__/app-action-bar-sub-menu.spec.ts +45 -0
  29. package/src/modules/components/AppActionBar/__tests__/app-action-bar.spec.ts +92 -0
  30. package/src/modules/components/AppActionBar/index.d.ts +29 -0
  31. package/src/modules/components/AppActionBar/index.ts +18 -0
  32. package/src/modules/components/AppAlert/AppAlert.vue +69 -0
  33. package/src/modules/components/AppAlert/__tests__/app-alert.spec.ts +67 -0
  34. package/src/modules/components/AppAlert/index.d.ts +3 -0
  35. package/src/modules/components/AppAlert/index.ts +18 -0
  36. package/src/modules/components/AppAvatar/AppAvatar.vue +30 -0
  37. package/src/modules/components/AppAvatar/DefaultAvatar.vue +187 -0
  38. package/src/modules/components/AppAvatar/__tests__/app-avatar.spec.ts +70 -0
  39. package/src/modules/components/AppAvatar/index.d.ts +9 -0
  40. package/src/modules/components/AppAvatar/index.ts +9 -0
  41. package/src/modules/components/AppBackButton/AppBackButton.vue +51 -0
  42. package/src/modules/components/AppBackButton/__tests__/app-back-button.spec.ts +70 -0
  43. package/src/modules/components/AppBadge/AppBadge.vue +65 -0
  44. package/src/modules/components/AppBadge/__tests__/app-badge.spec.ts +64 -0
  45. package/src/modules/components/AppBadge/index.d.ts +13 -0
  46. package/src/modules/components/AppBadge/index.ts +29 -0
  47. package/src/modules/components/AppButton/AppButton.vue +53 -0
  48. package/src/modules/components/AppButton/ButtonIconSlot.vue +26 -0
  49. package/src/modules/components/AppButton/__tests__/app-button.spec.ts +145 -0
  50. package/src/modules/components/AppButton/__tests__/button-icon-slot.spec.ts +30 -0
  51. package/src/modules/components/AppButton/index.d.ts +16 -0
  52. package/src/modules/components/AppButton/index.ts +57 -0
  53. package/src/modules/components/AppCard/AppCard.vue +88 -0
  54. package/src/modules/components/AppCard/CardAction.vue +101 -0
  55. package/src/modules/components/AppCard/CardIconSlot.vue +65 -0
  56. package/src/modules/components/AppCard/__tests__/app-card.spec.ts +109 -0
  57. package/src/modules/components/AppCard/__tests__/card-action.spec.ts +55 -0
  58. package/src/modules/components/AppCard/__tests__/card-icon-slot.spec.ts +27 -0
  59. package/src/modules/components/AppCard/index.d.ts +12 -0
  60. package/src/modules/components/AppCard/index.ts +5 -0
  61. package/src/modules/components/AppColor/AppColor.vue +74 -0
  62. package/src/modules/components/AppColor/__tests__/app-color.spec.ts +53 -0
  63. package/src/modules/components/AppColor/index.d.ts +10 -0
  64. package/src/modules/components/AppColorCard/AppColorCard.vue +41 -0
  65. package/src/modules/components/AppColorCard/__tests__/app-color-card.spec.ts +55 -0
  66. package/src/modules/components/AppConfirm/AppConfirm.vue +237 -0
  67. package/src/modules/components/AppConfirm/__tests__/app-confirm.spec.ts +366 -0
  68. package/src/modules/components/AppConfirm/index.d.ts +31 -0
  69. package/src/modules/components/AppConfirm/index.ts +1 -0
  70. package/src/modules/components/AppContextMenu/AppContextMenu.vue +100 -0
  71. package/src/modules/components/AppContextMenu/ShortcutItem.vue +37 -0
  72. package/src/modules/components/AppContextMenu/__mocks__/index.ts +25 -0
  73. package/src/modules/components/AppContextMenu/__tests__/app-context-menu.spec.ts +71 -0
  74. package/src/modules/components/AppContextMenu/__tests__/shortcut-item.spec.ts +29 -0
  75. package/src/modules/components/AppContextMenu/index.d.ts +23 -0
  76. package/src/modules/components/AppDataTable/AppDataTable.vue +323 -0
  77. package/src/modules/components/AppDataTable/AppDataTableFooter.vue +91 -0
  78. package/src/modules/components/AppDataTable/__mocks__/index.ts +71 -0
  79. package/src/modules/components/AppDataTable/__tests__/app-data-table-footer.spec.ts +107 -0
  80. package/src/modules/components/AppDataTable/__tests__/app-data-table.spec.ts +153 -0
  81. package/src/modules/components/AppDataTable/index.d.ts +29 -0
  82. package/src/modules/components/AppDefinitionList/AppDefinitionItem.vue +57 -0
  83. package/src/modules/components/AppDefinitionList/AppDefinitionList.vue +31 -0
  84. package/src/modules/components/AppDefinitionList/__mocks__/index.ts +31 -0
  85. package/src/modules/components/AppDefinitionList/__tests__/app-definition-item.spec.ts +93 -0
  86. package/src/modules/components/AppDefinitionList/__tests__/app-definition-list.spec.ts +35 -0
  87. package/src/modules/components/AppDefinitionList/index.d.ts +8 -0
  88. package/src/modules/components/AppDisclosure/AppDisclosure.vue +19 -0
  89. package/src/modules/components/AppDisclosure/AppDisclosureButton.vue +43 -0
  90. package/src/modules/components/AppDisclosure/AppDisclosurePanel.vue +31 -0
  91. package/src/modules/components/AppDisclosure/__tests__/app-disclosure-button.spec.ts +70 -0
  92. package/src/modules/components/AppDisclosure/__tests__/app-disclosure-panel.spec.ts +64 -0
  93. package/src/modules/components/AppDisclosure/__tests__/app-disclosure.spec.ts +41 -0
  94. package/src/modules/components/AppDrawer/AppDrawer.vue +149 -0
  95. package/src/modules/components/AppDrawer/__tests__/app-drawer.spec.ts +120 -0
  96. package/src/modules/components/AppDrawer/index.d.ts +27 -0
  97. package/src/modules/components/AppDropdownButton/AppDropdownButton.vue +82 -0
  98. package/src/modules/components/AppDropdownButton/AppDropdownItem.vue +67 -0
  99. package/src/modules/components/AppDropdownButton/__mocks__/index.ts +25 -0
  100. package/src/modules/components/AppDropdownButton/__tests__/app-dropdown-button.spec.ts +81 -0
  101. package/src/modules/components/AppDropdownButton/__tests__/app-dropdown-item.spec.ts +108 -0
  102. package/src/modules/components/AppDropdownButton/index.d.ts +26 -0
  103. package/src/modules/components/AppDropdownButton/index.ts +8 -0
  104. package/src/modules/components/AppError/AppError.vue +233 -0
  105. package/src/modules/components/AppError/__tests__/app-error.spec.ts +366 -0
  106. package/src/modules/components/AppError/index.d.ts +30 -0
  107. package/src/modules/components/AppError/index.ts +1 -0
  108. package/src/modules/components/AppImageDropzone/AppImageDropzone.vue +130 -0
  109. package/src/modules/components/AppImageDropzone/__tests__/app-image-dropzone.spec.ts +92 -0
  110. package/src/modules/components/AppImageDropzone/index.d.ts +8 -0
  111. package/src/modules/components/AppInput/AppInput.vue +247 -0
  112. package/src/modules/components/AppInput/FileInput.vue +58 -0
  113. package/src/modules/components/AppInput/Input.vue +141 -0
  114. package/src/modules/components/AppInput/InputIconSlot.vue +27 -0
  115. package/src/modules/components/AppInput/LocationInput.vue +150 -0
  116. package/src/modules/components/AppInput/__mocks__/location.ts +13 -0
  117. package/src/modules/components/AppInput/__tests__/app-input.spec.ts +255 -0
  118. package/src/modules/components/AppInput/__tests__/file-input.spec.ts +48 -0
  119. package/src/modules/components/AppInput/__tests__/input-icon-slot.spec.ts +27 -0
  120. package/src/modules/components/AppInput/__tests__/input.spec.ts +260 -0
  121. package/src/modules/components/AppInput/__tests__/location-input.spec.ts +159 -0
  122. package/src/modules/components/AppInput/choice.ts +24 -0
  123. package/src/modules/components/AppInput/datepicker.ts +62 -0
  124. package/src/modules/components/AppInput/index.d.ts +68 -0
  125. package/src/modules/components/AppInput/index.ts +133 -0
  126. package/src/modules/components/AppInput/location.ts +8 -0
  127. package/src/modules/components/AppInput/richText.ts +45 -0
  128. package/src/modules/components/AppInputLabel/AppInputLabel.vue +15 -0
  129. package/src/modules/components/AppInputLabel/__tests__/app-input-label.spec.ts +38 -0
  130. package/src/modules/components/AppInputLabel/index.d.ts +6 -0
  131. package/src/modules/components/AppLicensePlate/AppLicensePlate.vue +34 -0
  132. package/src/modules/components/AppLicensePlate/__tests__/app-license-plate.spec.ts +46 -0
  133. package/src/modules/components/AppLicensePlate/index.d.ts +1 -0
  134. package/src/modules/components/AppLoader/AppLoader.vue +37 -0
  135. package/src/modules/components/AppLoader/index.d.ts +1 -0
  136. package/src/modules/components/AppLoader/index.ts +8 -0
  137. package/src/modules/components/AppMaps/AppMaps.vue +105 -0
  138. package/src/modules/components/AppMaps/index.ts +44 -0
  139. package/src/modules/components/AppMenu/AppMenu.vue +79 -0
  140. package/src/modules/components/AppMenu/AppMenuItem.vue +40 -0
  141. package/src/modules/components/AppMenu/__mocks__/index.ts +23 -0
  142. package/src/modules/components/AppMenu/__tests__/app-menu-item.spec.ts +47 -0
  143. package/src/modules/components/AppMenu/__tests__/app-menu.spec.ts +53 -0
  144. package/src/modules/components/AppMenu/index.d.ts +15 -0
  145. package/src/modules/components/AppModal/AppModal.vue +261 -0
  146. package/src/modules/components/AppModal/__tests__/app-modal.spec.ts +282 -0
  147. package/src/modules/components/AppModal/index.d.ts +36 -0
  148. package/src/modules/components/AppNavigationMenu/AppNavigationMenu.vue +95 -0
  149. package/src/modules/components/AppNavigationMenu/Mobile.vue +126 -0
  150. package/src/modules/components/AppNavigationMenu/NavigationItem.vue +82 -0
  151. package/src/modules/components/AppNavigationMenu/SupportItem.vue +29 -0
  152. package/src/modules/components/AppNavigationMenu/__tests__/app-navigation-menu.spec.ts +104 -0
  153. package/src/modules/components/AppNavigationMenu/__tests__/mobile.spec.ts +155 -0
  154. package/src/modules/components/AppNavigationMenu/__tests__/navigation-item.spec.ts +91 -0
  155. package/src/modules/components/AppNavigationMenu/__tests__/support-item.spec.ts +48 -0
  156. package/src/modules/components/AppPagination/AppPagination.vue +133 -0
  157. package/src/modules/components/AppPagination/AppPaginationItem.vue +28 -0
  158. package/src/modules/components/AppPagination/__mocks__/index.ts +20 -0
  159. package/src/modules/components/AppPagination/__tests__/app-pagination.spec.ts +143 -0
  160. package/src/modules/components/AppPagination/index.d.ts +24 -0
  161. package/src/modules/components/AppProgressBar/AppProgressBar.vue +93 -0
  162. package/src/modules/components/AppProgressBar/AppProgressBarStep.vue +5 -0
  163. package/src/modules/components/AppProgressBar/__mocks__/index.ts +17 -0
  164. package/src/modules/components/AppProgressBar/__tests__/app-progress-bar-step.spec.ts +18 -0
  165. package/src/modules/components/AppProgressBar/__tests__/app-progress-bar.spec.ts +77 -0
  166. package/src/modules/components/AppProgressBar/index.d.ts +21 -0
  167. package/src/modules/components/AppRating/AppRating.vue +42 -0
  168. package/src/modules/components/AppRating/VueStarRating/Star.vue +215 -0
  169. package/src/modules/components/AppRating/VueStarRating/StarRating.vue +231 -0
  170. package/src/modules/components/AppRating/VueStarRating/classes/AlphaColor.ts +68 -0
  171. package/src/modules/components/AppRating/VueStarRating/readme.md +279 -0
  172. package/src/modules/components/AppRating/__tests__/app-rating.spec.ts +36 -0
  173. package/src/modules/components/AppSection/AppSection.vue +35 -0
  174. package/src/modules/components/AppSection/__tests__/app-section.spec.ts +53 -0
  175. package/src/modules/components/AppSelect/AppSelect.vue +176 -0
  176. package/src/modules/components/AppSelect/__mocks__/index.ts +24 -0
  177. package/src/modules/components/AppSelect/__tests__/app-select.spec.ts +73 -0
  178. package/src/modules/components/AppSelect/index.d.ts +43 -0
  179. package/src/modules/components/AppSelect/index.ts +69 -0
  180. package/src/modules/components/AppStepper/AppStepper.vue +79 -0
  181. package/src/modules/components/AppStepper/__tests__/app-stepper.spec.ts +59 -0
  182. package/src/modules/components/AppTable/AppTable.vue +40 -0
  183. package/src/modules/components/AppTimeline/AppTimeline.vue +22 -0
  184. package/src/modules/components/AppTimeline/AppTimelineItem.vue +97 -0
  185. package/src/modules/components/AppTimeline/AppTimelineItemIcon.vue +55 -0
  186. package/src/modules/components/AppTimeline/__mocks__/timeline.ts +29 -0
  187. package/src/modules/components/AppTimeline/__tests__/app-timeline-item-Icon.spec.ts +35 -0
  188. package/src/modules/components/AppTimeline/__tests__/app-timeline-item.spec.ts +121 -0
  189. package/src/modules/components/AppTimeline/__tests__/app-timeline.spec.ts +55 -0
  190. package/src/modules/components/AppTimeline/index.d.ts +30 -0
  191. package/src/modules/components/AppTimeline/index.ts +13 -0
  192. package/src/modules/components/AppToggle/AppToggle.vue +36 -0
  193. package/src/modules/components/AppToggle/__tests__/app-toggle.spec.ts +54 -0
  194. package/src/modules/components/AppToggle/index.d.ts +3 -0
  195. package/src/modules/components/AppToggleCard/AppToggleCard.vue +45 -0
  196. package/src/modules/components/AppToggleCard/__tests__/app-toggle-card.spec.ts +55 -0
  197. package/src/modules/components/index.ts +43 -0
  198. package/src/modules/composables/index.ts +13 -0
  199. package/src/modules/composables/useActionBar/__mocks__/index.ts +17 -0
  200. package/src/modules/composables/useActionBar/__tests__/index.spec.ts +62 -0
  201. package/src/modules/composables/useActionBar/index.d.ts +1 -0
  202. package/src/modules/composables/useActionBar/index.ts +67 -0
  203. package/src/modules/composables/useComputedPosition/index.d.ts +16 -0
  204. package/src/modules/composables/useComputedPosition/index.ts +199 -0
  205. package/src/modules/composables/useConfirm/__tests__/index.spec.ts +29 -0
  206. package/src/modules/composables/useConfirm/index.ts +63 -0
  207. package/src/modules/composables/useContextMenu/index.ts +127 -0
  208. package/src/modules/composables/useDrawer/__tests__/index.spec.ts +34 -0
  209. package/src/modules/composables/useDrawer/index.ts +136 -0
  210. package/src/modules/composables/useEcho/index.ts +167 -0
  211. package/src/modules/composables/useError/__tests__/index.spec.ts +29 -0
  212. package/src/modules/composables/useError/index.ts +61 -0
  213. package/src/modules/composables/useGoogleApi/__tests__/index.spec.ts +39 -0
  214. package/src/modules/composables/useGoogleApi/index.ts +26 -0
  215. package/src/modules/composables/useLayout/__tests__/index.spec.ts +34 -0
  216. package/src/modules/composables/useLayout/index.d.ts +1 -0
  217. package/src/modules/composables/useLayout/index.ts +68 -0
  218. package/src/modules/composables/useModal/__tests__/index.spec.ts +34 -0
  219. package/src/modules/composables/useModal/index.ts +97 -0
  220. package/src/modules/composables/useNavigation/__mocks__/navigation.ts +22 -0
  221. package/src/modules/composables/useNavigation/__tests__/index.spec.ts +88 -0
  222. package/src/modules/composables/useNavigation/index.d.ts +17 -0
  223. package/src/modules/composables/useNavigation/index.ts +97 -0
  224. package/src/modules/icons/BuildingCircleCheck.vue +32 -0
  225. package/src/modules/icons/BuildingCircleXmark.vue +20 -0
  226. package/src/modules/icons/CarsIcon.vue +29 -0
  227. package/src/modules/icons/ChatPersonRoundedIcon.vue +184 -0
  228. package/src/modules/icons/CompanyIcon.vue +18 -0
  229. package/src/modules/icons/HeroGirlIcon.vue +246 -0
  230. package/src/modules/icons/HeroPersonIcon.vue +402 -0
  231. package/src/modules/icons/HeroPersonRoundedIcon.vue +412 -0
  232. package/src/modules/icons/HeroPersonWithBgIcon.vue +4503 -0
  233. package/src/modules/icons/LocationMarkerIcon.vue +33 -0
  234. package/src/modules/icons/PartyPopperIcon.vue +146 -0
  235. package/src/modules/icons/index.ts +32 -0
  236. package/src/modules/icons/status/ErrorIcon.vue +24 -0
  237. package/src/modules/icons/status/SuccessIcon.vue +24 -0
  238. package/src/modules/icons/status/WarningIcon.vue +27 -0
  239. package/src/modules/icons/status/index.ts +3 -0
  240. package/src/modules/index.ts +8 -0
  241. package/src/modules/layouts/Auth/Auth.vue +36 -0
  242. package/src/modules/layouts/Auth/__tests__/auth.spec.ts +63 -0
  243. package/src/modules/layouts/Base/Base.vue +69 -0
  244. package/src/modules/layouts/Base/__tests__/base.spec.ts +56 -0
  245. package/src/modules/layouts/Platform/Platform.vue +96 -0
  246. package/src/modules/layouts/Platform/__tests__/platform.spec.ts +56 -0
  247. package/src/modules/layouts/index.ts +9 -0
  248. package/src/modules/plugins/Sentry/index.d.ts +16 -0
  249. package/src/modules/plugins/Sentry/index.ts +65 -0
  250. package/src/modules/plugins/Sentry/language/nl.ts +13 -0
  251. package/src/modules/plugins/TinyMCE/lang/nl.js +430 -0
  252. package/src/modules/plugins/Toast/Toast.vue +58 -0
  253. package/src/modules/plugins/Toast/__tests__/toast.spec.ts +90 -0
  254. package/src/modules/plugins/Toast/index.ts +36 -0
  255. package/src/modules/plugins/Toast/types.d.ts +265 -0
  256. package/src/modules/plugins/index.ts +63 -0
  257. package/src/stories/Introduction.mdx +4 -0
  258. package/src/stories/assets/code-brackets.svg +1 -0
  259. package/src/stories/assets/colors.svg +1 -0
  260. package/src/stories/assets/comments.svg +1 -0
  261. package/src/stories/assets/direction.svg +1 -0
  262. package/src/stories/assets/flow.svg +1 -0
  263. package/src/stories/assets/images/logo.png +0 -0
  264. package/src/stories/assets/images/road.png +0 -0
  265. package/src/stories/assets/plugin.svg +1 -0
  266. package/src/stories/assets/repo.svg +1 -0
  267. package/src/stories/assets/stackalt.svg +1 -0
  268. package/src/stories/components/ActionBar/ActionBar.stories.ts +67 -0
  269. package/src/stories/components/Alert/Alert.stories.ts +53 -0
  270. package/src/stories/components/Avatar/Avatar.stories.ts +44 -0
  271. package/src/stories/components/BackButton/BackButton.stories.ts +39 -0
  272. package/src/stories/components/Badge/Badge.stories.ts +42 -0
  273. package/src/stories/components/Button/Button.stories.ts +132 -0
  274. package/src/stories/components/Card/Card.stories.ts +70 -0
  275. package/src/stories/components/Color/Color.stories.ts +41 -0
  276. package/src/stories/components/ColorCard/ColorCard.stories.ts +43 -0
  277. package/src/stories/components/Confirm/Confirm.stories.ts +110 -0
  278. package/src/stories/components/ContextMenu/ContextMenu.stories.ts +85 -0
  279. package/src/stories/components/DefinitionList/DefinitionList.stories.ts +32 -0
  280. package/src/stories/components/Disclosure/Disclosure.stories.ts +61 -0
  281. package/src/stories/components/DropdownButton/DropdownButton.stories.ts +121 -0
  282. package/src/stories/components/Error/Error.stories.ts +106 -0
  283. package/src/stories/components/ImageDropzone/ImageDropzone.stories.ts +41 -0
  284. package/src/stories/components/Input/Input.stories.ts +180 -0
  285. package/src/stories/components/Input/LocationInput.stories.ts +77 -0
  286. package/src/stories/components/LicensePlate/LicensePlate.stories.ts +39 -0
  287. package/src/stories/components/Maps/Maps.stories.ts +36 -0
  288. package/src/stories/components/Menu/Menu.stories.ts +41 -0
  289. package/src/stories/components/Modal/Modal.stories.ts +68 -0
  290. package/src/stories/components/Navigation/Navigation.stories.ts +62 -0
  291. package/src/stories/components/Pagination/Pagination.stories.ts +62 -0
  292. package/src/stories/components/ProgressBar/ProgressBar.stories.ts +48 -0
  293. package/src/stories/components/Rating/Rating.stories.ts +38 -0
  294. package/src/stories/components/Section/Section.stories.ts +44 -0
  295. package/src/stories/components/Select/Select.stories.ts +90 -0
  296. package/src/stories/components/Stepper/Stepper.stories.ts +38 -0
  297. package/src/stories/components/Table/DataTable.stories.ts +96 -0
  298. package/src/stories/components/Table/Table.stories.ts +45 -0
  299. package/src/stories/components/Timeline/Timeline.stories.ts +46 -0
  300. package/src/stories/components/Toast/Toast.stories.ts +47 -0
  301. package/src/stories/components/Toggle/Toggle.stories.ts +41 -0
  302. package/src/stories/components/ToggleCard/ToggleCard.stories.ts +43 -0
  303. package/src/stories/layouts/Auth.stories.ts +43 -0
  304. package/src/stories/layouts/Base.stories.ts +70 -0
  305. package/src/tests/mocks/resize-observer.ts +13 -0
  306. package/src/tests/stubs/AppSelect.ts +89 -0
  307. package/src/tests/stubs/HeadlessUiDialogStub.ts +24 -0
  308. package/src/tests/stubs/HeadlessUiTransitionChildStub.ts +20 -0
  309. package/src/tests/stubs/HeadlessUiTransitionRootStub.ts +25 -0
  310. package/src/tests/stubs/IconStub.ts +9 -0
  311. package/src/tests/stubs/Vue3EasyDataTableStub.ts +53 -0
  312. package/src/typings/plugin.d.ts +5 -0
  313. package/src/typings/shims-vue.d.ts +13 -0
  314. package/src/typings/utilities.d.ts +4 -0
  315. package/src/typings/vite-environment.d.ts +12 -0
@@ -0,0 +1,44 @@
1
+ import AppAvatar from '~components/AppAvatar/AppAvatar.vue';
2
+ import { sizes } from '~components/AppAvatar';
3
+
4
+ import type { Meta, StoryFn } from '@storybook/vue3-vite';
5
+
6
+ const meta: Meta = {
7
+ title: 'Components/Avatar',
8
+ component: AppAvatar,
9
+ argTypes: {
10
+ src: {
11
+ control: { type: 'text' },
12
+ defaultValue: '',
13
+ },
14
+ size: {
15
+ control: { type: 'select' },
16
+ options: sizes,
17
+ },
18
+ },
19
+ };
20
+
21
+ const template: StoryFn<typeof AppAvatar> = args => ({
22
+ components: {
23
+ AppAvatar,
24
+ },
25
+
26
+ setup(): unknown {
27
+ return { args, sizes };
28
+ },
29
+
30
+ template: `
31
+ <div class="flex space-x-3">
32
+ <AppAvatar
33
+ v-for="size in sizes"
34
+ :size="size"
35
+ :src="args.src"
36
+ />
37
+ </div>
38
+ `,
39
+ });
40
+
41
+ export const avatar = template.bind({});
42
+ avatar.args = {};
43
+
44
+ export default meta;
@@ -0,0 +1,39 @@
1
+ import { AppBackButton } from '~components';
2
+
3
+ import type { Meta, StoryFn } from '@storybook/vue3-vite';
4
+
5
+ const meta: Meta = {
6
+ title: 'Components/BackButton',
7
+ component: AppBackButton,
8
+ argTypes: {
9
+ buttonText: {
10
+ control: { type: 'text' },
11
+ defaultValue: 'Ga terug',
12
+ },
13
+ },
14
+ };
15
+
16
+ const template: StoryFn<typeof AppBackButton> = args => ({
17
+ components: {
18
+ AppBackButton,
19
+ },
20
+
21
+ setup(): unknown {
22
+ return { args };
23
+ },
24
+
25
+ template: `
26
+ <div class="bg-zinc-100 h-screen p-5">
27
+ <div class="w-1/2 mx-auto">
28
+ <AppBackButton v-bind="args" />
29
+ </div>
30
+ </div>
31
+ `,
32
+ });
33
+
34
+ export const backButton = template.bind({});
35
+ backButton.args = {
36
+ buttonText: 'Ga terug',
37
+ };
38
+
39
+ export default meta;
@@ -0,0 +1,42 @@
1
+ import AppBadge from '~components/AppBadge/AppBadge.vue';
2
+ import { types } from '~components/AppBadge';
3
+
4
+ import type { Meta, StoryFn } from '@storybook/vue3-vite';
5
+
6
+ const meta: Meta = {
7
+ title: 'Components/Badge',
8
+ component: AppBadge,
9
+ argTypes: {
10
+ rounded: {
11
+ control: { type: 'boolean' },
12
+ },
13
+ },
14
+ };
15
+
16
+ const template: StoryFn<typeof AppBadge> = args => ({
17
+ components: {
18
+ AppBadge,
19
+ },
20
+
21
+ setup(): unknown {
22
+ return { args, types };
23
+ },
24
+
25
+ template: `
26
+ <div class="flex space-x-3">
27
+ <AppBadge
28
+ v-for="type in types"
29
+ :type="type"
30
+ class="capitalize"
31
+ >
32
+ {{ type }} badge
33
+ </AppBadge>
34
+ </div>
35
+ `,
36
+ });
37
+
38
+ export const badge = template.bind({
39
+ rounded: false,
40
+ });
41
+
42
+ export default meta;
@@ -0,0 +1,132 @@
1
+ import { PhoneIcon } from '@heroicons/vue/24/solid';
2
+ import { AppButton } from '../../../modules/components';
3
+
4
+ import type { Component } from 'vue';
5
+ import type { Meta, StoryFn } from '@storybook/vue3-vite';
6
+
7
+ const colorTypeOptions = ['primary', 'secondary', 'plain'];
8
+ const typeOptions = ['button', 'reset', 'submit'];
9
+ const sizeOptions = ['small', 'medium', 'large'];
10
+
11
+ const meta: Meta = {
12
+ title: 'Form/Button',
13
+ component: AppButton,
14
+ argTypes: {
15
+ colorType: {
16
+ control: { type: 'select' },
17
+ options: colorTypeOptions,
18
+ },
19
+ type: {
20
+ control: { type: 'select' },
21
+ options: typeOptions,
22
+ },
23
+ size: {
24
+ control: { type: 'select' },
25
+ options: sizeOptions,
26
+ },
27
+ disabled: {
28
+ control: { type: 'boolean' },
29
+ },
30
+ bordered: {
31
+ control: { type: 'boolean' },
32
+ },
33
+ block: {
34
+ control: { type: 'boolean' },
35
+ },
36
+ loading: {
37
+ control: { type: 'boolean' },
38
+ },
39
+ },
40
+ };
41
+
42
+ const createTemplate = (
43
+ // eslint-disable-next-line unicorn/prevent-abbreviations
44
+ props: Record<string, unknown[]>,
45
+ slots?: Record<'leadingIcon' | 'trailingIcon', Component>,
46
+ ): StoryFn<typeof AppButton> => {
47
+ return bindArguments => ({
48
+ components: {
49
+ AppButton,
50
+ },
51
+
52
+ setup(): unknown {
53
+ return { bindArguments, props, slots };
54
+ },
55
+
56
+ template: `
57
+ <div
58
+ v-for="(values, key) in props"
59
+ class="flex items-start gap-3"
60
+ >
61
+ <AppButton
62
+ v-for="(value, index) in values"
63
+ v-bind="{ ...bindArguments, [key]: value }"
64
+ class="capitalize"
65
+ >
66
+ <template
67
+ v-if="index % 2 === 0 && slots?.leadingIcon"
68
+ #leadingIcon
69
+ >
70
+ <Component :is="slots?.leadingIcon" />
71
+ </template>
72
+
73
+ {{ value }}
74
+
75
+ <template
76
+ v-if="index % 2 === 1 && slots?.trailingIcon"
77
+ #trailingIcon
78
+ >
79
+ <Component :is="slots?.trailingIcon" />
80
+ </template>
81
+ </AppButton>
82
+ </div>
83
+ `,
84
+ });
85
+ };
86
+
87
+ export const sizes = createTemplate({
88
+ size: sizeOptions,
89
+ }).bind({});
90
+
91
+ sizes.args = {
92
+ type: 'button',
93
+ colorType: 'primary',
94
+ disabled: false,
95
+ loading: false,
96
+ bordered: false,
97
+ block: false,
98
+ };
99
+
100
+ export const colorTypes = createTemplate({
101
+ colorType: colorTypeOptions,
102
+ }).bind({});
103
+
104
+ colorTypes.args = {
105
+ type: 'button',
106
+ size: 'medium',
107
+ disabled: false,
108
+ loading: false,
109
+ bordered: false,
110
+ block: false,
111
+ };
112
+
113
+ export const icons = createTemplate(
114
+ {
115
+ colorType: colorTypeOptions,
116
+ },
117
+ {
118
+ leadingIcon: PhoneIcon,
119
+ trailingIcon: PhoneIcon,
120
+ },
121
+ ).bind({});
122
+
123
+ icons.args = {
124
+ type: 'button',
125
+ size: 'medium',
126
+ disabled: false,
127
+ loading: false,
128
+ bordered: false,
129
+ block: false,
130
+ };
131
+
132
+ export default meta;
@@ -0,0 +1,70 @@
1
+ import { AppCard } from '~components';
2
+ import { CalendarIcon } from '~icons';
3
+
4
+ import type { Meta, StoryFn } from '@storybook/vue3-vite';
5
+
6
+ const meta: Meta = {
7
+ title: 'Components/Card',
8
+ component: AppCard,
9
+ argTypes: {
10
+ title: {
11
+ control: { type: 'text' },
12
+ defaultValue: 'Card title',
13
+ },
14
+ description: {
15
+ control: { type: 'text' },
16
+ defaultValue: 'Card description',
17
+ },
18
+ content: {
19
+ control: { type: 'text' },
20
+ defaultValue: 'Card content',
21
+ },
22
+ icon: {
23
+ control: { type: 'text' },
24
+ defaultValue: '?',
25
+ },
26
+ bordered: {
27
+ control: { type: 'boolean' },
28
+ },
29
+ },
30
+ };
31
+
32
+ const template: StoryFn<typeof AppCard> = args => ({
33
+ components: {
34
+ AppCard,
35
+ },
36
+
37
+ setup(): unknown {
38
+ return { args };
39
+ },
40
+
41
+ template: `
42
+ <div class="bg-zinc-100 h-screen p-5">
43
+ <div class="w-1/2 mx-auto">
44
+ <AppCard v-bind="args">
45
+ <slot>{{ args.content }}</slot>
46
+ </AppCard>
47
+ </div>
48
+ </div>
49
+ `,
50
+ });
51
+
52
+ export const card = template.bind({});
53
+ card.args = {
54
+ title: 'Example title',
55
+ description: 'Example description',
56
+ content: 'Card content',
57
+ // @ts-expect-error icon works but doesn't have the same type according to Typescript
58
+ icon: CalendarIcon,
59
+ bordered: true,
60
+ showActions: false,
61
+ // @ts-expect-error icon works but doesn't have the same type according to Typescript
62
+ actions: [
63
+ {
64
+ name: 'action #1',
65
+ icon: CalendarIcon,
66
+ },
67
+ ],
68
+ };
69
+
70
+ export default meta;
@@ -0,0 +1,41 @@
1
+ import { ref } from 'vue';
2
+ import AppColor from '~components/AppColor/AppColor.vue';
3
+
4
+ import type { Meta, StoryFn } from '@storybook/vue3-vite';
5
+
6
+ const meta: Meta = {
7
+ title: 'Form/Color',
8
+ component: AppColor,
9
+ argTypes: {
10
+ disabled: {
11
+ control: { type: 'boolean' },
12
+ defaultValue: false,
13
+ },
14
+ },
15
+ };
16
+
17
+ const template: StoryFn<typeof AppColor> = args => ({
18
+ components: {
19
+ AppColor,
20
+ },
21
+
22
+ setup(): unknown {
23
+ const color = ref('#000FFF');
24
+
25
+ return { args, color };
26
+ },
27
+
28
+ template: `
29
+ <div class="flex space-x-3">
30
+ <AppColor
31
+ v-model="args.color"
32
+ :disabled="args.disabled"
33
+ />
34
+ </div>
35
+ `,
36
+ });
37
+
38
+ export const color = template.bind({});
39
+ color.args = {};
40
+
41
+ export default meta;
@@ -0,0 +1,43 @@
1
+ import { ref } from 'vue';
2
+ import { AppColorCard } from '~components';
3
+
4
+ import type { Meta, StoryFn } from '@storybook/vue3-vite';
5
+
6
+ const meta: Meta = {
7
+ title: 'Form/ColorCard',
8
+ component: AppColorCard,
9
+ argTypes: {
10
+ disabled: {
11
+ control: { type: 'boolean' },
12
+ defaultValue: false,
13
+ },
14
+ },
15
+ };
16
+
17
+ const template: StoryFn<typeof AppColorCard> = args => ({
18
+ components: {
19
+ AppColorCard,
20
+ },
21
+
22
+ setup(): unknown {
23
+ const color = ref('#000000');
24
+
25
+ return { args, color };
26
+ },
27
+
28
+ template: `
29
+ <div class="flex space-x-3">
30
+ <AppColorCard
31
+ v-model="args.color"
32
+ :title="args.title"
33
+ :disabled="args.disabled"
34
+ >
35
+ </AppColorCard>
36
+ </div>
37
+ `,
38
+ });
39
+
40
+ export const colorCard = template.bind({});
41
+ colorCard.args = {};
42
+
43
+ export default meta;
@@ -0,0 +1,110 @@
1
+ import { computed } from 'vue';
2
+ import { PartyPopperIcon } from '~icons';
3
+ import { AppButton } from '~components';
4
+ import { useConfirm } from '~composables';
5
+ import AppConfirm from '~components/AppConfirm/AppConfirm.vue';
6
+ import { types } from '~components/AppConfirm';
7
+
8
+ import type { Meta, StoryFn } from '@storybook/vue3-vite';
9
+
10
+ const meta: Meta = {
11
+ title: 'Components/Confirm',
12
+ component: AppConfirm,
13
+ argTypes: {
14
+ type: {
15
+ control: { type: 'select' },
16
+ options: types,
17
+ },
18
+ title: {
19
+ control: { type: 'text' },
20
+ defaultValue: 'Alert description',
21
+ },
22
+ content: {
23
+ control: { type: 'text' },
24
+ defaultValue: 'Alert description',
25
+ },
26
+ confirmButtonText: {
27
+ control: { type: 'text' },
28
+ defaultValue: 'Confirm',
29
+ },
30
+ cancelButtonText: {
31
+ control: { type: 'text' },
32
+ defaultValue: 'Cancel',
33
+ },
34
+ html: {
35
+ control: { type: 'boolean' },
36
+ },
37
+ withBackdrop: {
38
+ control: { type: 'boolean' },
39
+ },
40
+ preventBackdropClose: {
41
+ control: { type: 'boolean' },
42
+ },
43
+ animate: {
44
+ control: { type: 'boolean' },
45
+ },
46
+ icon: {
47
+ control: 'select',
48
+ options: ['default', 'custom'],
49
+ },
50
+ extendedIconDomClasses: {
51
+ control: { type: 'text' },
52
+ defaultValue: '',
53
+ },
54
+ },
55
+ };
56
+
57
+ const confirmComposable = useConfirm();
58
+ const template: StoryFn<typeof AppConfirm> = args => ({
59
+ components: {
60
+ AppButton,
61
+ AppConfirm,
62
+ },
63
+
64
+ setup(): unknown {
65
+ const icon = computed(() => {
66
+ return args.icon === 'custom' ? PartyPopperIcon : undefined;
67
+ });
68
+
69
+ async function openConfirm(): Promise<void> {
70
+ await confirmComposable.open({ ...args, icon });
71
+ }
72
+
73
+ return {
74
+ args,
75
+ types,
76
+ icon,
77
+ openConfirm,
78
+ };
79
+ },
80
+
81
+ template: `
82
+ <div class="flex space-x-3">
83
+ <AppButton @click="openConfirm">
84
+ Open confirm
85
+ </AppButton>
86
+
87
+ <AppConfirm
88
+ v-bind="args"
89
+ :icon="icon"
90
+ />
91
+ </div>
92
+ `,
93
+ });
94
+
95
+ export const confirm = template.bind({});
96
+ confirm.args = {
97
+ type: 'success',
98
+ title: 'Example title',
99
+ content: 'Example alert description',
100
+ confirmButtonText: 'Confirm',
101
+ cancelButtonText: 'Cancel',
102
+ preventBackdropClose: true,
103
+ withBackdrop: true,
104
+ html: false,
105
+ animate: true,
106
+ icon: 'default',
107
+ extendedIconDomClasses: '',
108
+ };
109
+
110
+ export default meta;
@@ -0,0 +1,85 @@
1
+ import { ArrowDownIcon, CheckIcon, TrashIcon } from '~icons';
2
+ import { AppButton } from '~components';
3
+ import AppContextMenu from '~components/AppContextMenu/AppContextMenu.vue';
4
+ import { useActionBar, useContextMenu } from '~composables';
5
+
6
+ import type { Meta, StoryFn } from '@storybook/vue3-vite';
7
+ import type { Shortcut } from '~components/AppContextMenu';
8
+
9
+ const meta: Meta = {
10
+ title: 'Components/ContextMenu',
11
+ component: AppContextMenu,
12
+ };
13
+
14
+ const template: StoryFn<typeof AppContextMenu> = args => ({
15
+ components: {
16
+ AppContextMenu,
17
+ AppButton,
18
+ },
19
+
20
+ setup(): unknown {
21
+ const actionBar = useActionBar();
22
+ const contextMenu = useContextMenu();
23
+
24
+ actionBar.setSelection([]);
25
+ actionBar.setActions([
26
+ {
27
+ name: 'test',
28
+ icon: CheckIcon,
29
+ },
30
+ {
31
+ name: 'test',
32
+ icon: ArrowDownIcon,
33
+ confirm: true,
34
+ },
35
+ {
36
+ name: 'delete',
37
+ icon: TrashIcon,
38
+ confirm: true,
39
+ type: 'danger',
40
+ onClick: async (): Promise<void> => {
41
+ await new Promise(resolve => {
42
+ setTimeout(resolve, 1500);
43
+ });
44
+ },
45
+ },
46
+ ]);
47
+ contextMenu.setShortcuts([
48
+ {
49
+ name: 'Copy link',
50
+ click: (item: Shortcut): void => {
51
+ item.name = 'Copied!';
52
+
53
+ setTimeout(() => {
54
+ item.name = 'Copy link';
55
+ }, 1000);
56
+ },
57
+ },
58
+ {
59
+ name: 'Copy ID',
60
+ click: (item: Shortcut): void => {
61
+ item.name = 'Copied!';
62
+
63
+ setTimeout(() => {
64
+ item.name = 'Copy ID';
65
+ }, 1000);
66
+ },
67
+ },
68
+ ]);
69
+ return { args, actionBar, contextMenu };
70
+ },
71
+
72
+ template: `
73
+ <div
74
+ class="w-full h-screen bg-zinc-200 text-zinc-300 text-xl text-center flex items-center justify-center"
75
+ @contextmenu.prevent="(event) => contextMenu.open({}, event)"
76
+ >
77
+ <span>Right click me</span>
78
+ </div>
79
+ `,
80
+ });
81
+
82
+ export const contextMenu = template.bind({});
83
+ contextMenu.args = {};
84
+
85
+ export default meta;
@@ -0,0 +1,32 @@
1
+ import AppDefinitionList from '~components/AppDefinitionList/AppDefinitionList.vue';
2
+ import { items } from '~components/AppDefinitionList/__mocks__';
3
+
4
+ import type { Meta, StoryFn } from '@storybook/vue3-vite';
5
+
6
+ const meta: Meta = {
7
+ title: 'Components/DefinitionList',
8
+ component: AppDefinitionList,
9
+ };
10
+
11
+ const template: StoryFn<typeof AppDefinitionList> = args => ({
12
+ components: {
13
+ AppDefinitionList,
14
+ },
15
+
16
+ setup(): unknown {
17
+ return { args, items };
18
+ },
19
+
20
+ template: `
21
+ <div class="w-full">
22
+ <AppDefinitionList
23
+ :items="items"
24
+ />
25
+ </div>
26
+ `,
27
+ });
28
+
29
+ export const definitionList = template.bind({});
30
+ definitionList.args = {};
31
+
32
+ export default meta;
@@ -0,0 +1,61 @@
1
+ import {
2
+ AppCard,
3
+ AppDisclosure,
4
+ AppDisclosureButton,
5
+ AppDisclosurePanel,
6
+ } from '~components';
7
+
8
+ import type { Meta, StoryFn } from '@storybook/vue3-vite';
9
+
10
+ const meta: Meta = {
11
+ title: 'Components/Disclosure',
12
+ component: AppDisclosure,
13
+ };
14
+
15
+ const template: StoryFn<typeof AppDisclosure> = args => ({
16
+ components: {
17
+ AppCard,
18
+ AppDisclosure,
19
+ AppDisclosureButton,
20
+ AppDisclosurePanel,
21
+ },
22
+
23
+ setup(): unknown {
24
+ const fakeDescription = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc nibh mi, gravida vel metus'
25
+ + 'dapibus, sagittis consequat nibh. Donec condimentum imperdiet euismod. Mauris ullamcorper erat quis sagittis'
26
+ + 'venenatis. Aliquam erat volutpat. Aenean aliquet eu ipsum eu laoreet. Aenean eu maximus nisl. Donec eget'
27
+ + 'vehicula sem, a auctor urna.';
28
+ const questions = [
29
+ 'Can I still change my location?',
30
+ 'Can I still change the delivery time?',
31
+ 'What time does the driver arrive?',
32
+ ];
33
+
34
+ return { args, questions, fakeDescription };
35
+ },
36
+
37
+ template: `
38
+ <div class="container mx-auto mt-8 flex flex-col p-4 bg-zinc-100">
39
+ <h3 class="mb-4 text-xl font-bold text-zinc-900">FAQ</h3>
40
+
41
+ <AppCard>
42
+ <AppDisclosure
43
+ v-for="(question, index) in questions"
44
+ :key="'question-' + index"
45
+ >
46
+ <AppDisclosureButton>
47
+ {{ question }}
48
+ </AppDisclosureButton>
49
+
50
+ <AppDisclosurePanel>
51
+ {{ fakeDescription }}
52
+ </AppDisclosurePanel>
53
+ </AppDisclosure>
54
+ </AppCard>
55
+ </div>
56
+ `,
57
+ });
58
+
59
+ export const disclosure = template.bind({});
60
+
61
+ export default meta;