sprintify-ui 0.4.4 → 0.4.5

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 (417) hide show
  1. package/README.md +258 -258
  2. package/dist/sprintify-ui.es.js +27776 -18060
  3. package/dist/style.css +1 -1
  4. package/dist/tailwindcss/index.js +306 -306
  5. package/dist/types/src/components/BaseActionItem.vue.d.ts +40 -40
  6. package/dist/types/src/components/BaseActionItemButton.vue.d.ts +25 -25
  7. package/dist/types/src/components/BaseAddressForm.vue.d.ts +84 -84
  8. package/dist/types/src/components/BaseAlert.vue.d.ts +51 -51
  9. package/dist/types/src/components/BaseApp.vue.d.ts +9 -9
  10. package/dist/types/src/components/BaseAppDialogs.vue.d.ts +14 -14
  11. package/dist/types/src/components/BaseAppNotifications.vue.d.ts +2 -2
  12. package/dist/types/src/components/BaseAutocomplete.vue.d.ts +237 -237
  13. package/dist/types/src/components/BaseAutocompleteDrawer.vue.d.ts +91 -91
  14. package/dist/types/src/components/BaseAutocompleteFetch.vue.d.ts +210 -210
  15. package/dist/types/src/components/BaseAvatar.vue.d.ts +52 -52
  16. package/dist/types/src/components/BaseAvatarGroup.vue.d.ts +43 -43
  17. package/dist/types/src/components/BaseBadge.vue.d.ts +60 -60
  18. package/dist/types/src/components/BaseBelongsTo.vue.d.ts +216 -216
  19. package/dist/types/src/components/BaseBoolean.vue.d.ts +10 -10
  20. package/dist/types/src/components/BaseBreadcrumbs.vue.d.ts +24 -24
  21. package/dist/types/src/components/BaseButton.vue.d.ts +23 -23
  22. package/dist/types/src/components/BaseButtonGroup.vue.d.ts +143 -143
  23. package/dist/types/src/components/BaseCalendar.vue.d.ts +124 -0
  24. package/dist/types/src/components/BaseCard.vue.d.ts +21 -21
  25. package/dist/types/src/components/BaseCardRow.vue.d.ts +16 -16
  26. package/dist/types/src/components/BaseCharacterCounter.vue.d.ts +49 -49
  27. package/dist/types/src/components/BaseClickOutside.vue.d.ts +26 -26
  28. package/dist/types/src/components/BaseClipboard.vue.d.ts +22 -22
  29. package/dist/types/src/components/BaseColor.vue.d.ts +80 -80
  30. package/dist/types/src/components/BaseContainer.vue.d.ts +34 -34
  31. package/dist/types/src/components/BaseCounter.vue.d.ts +42 -42
  32. package/dist/types/src/components/BaseCropper.vue.d.ts +76 -76
  33. package/dist/types/src/components/BaseCropperModal.vue.d.ts +28 -28
  34. package/dist/types/src/components/BaseDataIterator.vue.d.ts +227 -227
  35. package/dist/types/src/components/BaseDataIteratorSectionBox.vue.d.ts +20 -20
  36. package/dist/types/src/components/BaseDataIteratorSectionButton.vue.d.ts +25 -25
  37. package/dist/types/src/components/BaseDataIteratorSectionColumns.vue.d.ts +657 -657
  38. package/dist/types/src/components/BaseDataIteratorSectionModal.vue.d.ts +32 -32
  39. package/dist/types/src/components/BaseDataTable.vue.d.ts +406 -406
  40. package/dist/types/src/components/BaseDataTableRowAction.vue.d.ts +31 -31
  41. package/dist/types/src/components/BaseDatePicker.vue.d.ts +124 -124
  42. package/dist/types/src/components/BaseDateSelect.vue.d.ts +79 -79
  43. package/dist/types/src/components/BaseDescriptionList.vue.d.ts +9 -9
  44. package/dist/types/src/components/BaseDescriptionListItem.vue.d.ts +10 -10
  45. package/dist/types/src/components/BaseDialog.vue.d.ts +60 -60
  46. package/dist/types/src/components/BaseDisplayRelativeTime.vue.d.ts +50 -50
  47. package/dist/types/src/components/BaseDraggable.vue.d.ts +49 -49
  48. package/dist/types/src/components/BaseDropdown.vue.d.ts +65 -65
  49. package/dist/types/src/components/BaseDropdownAutocomplete.vue.d.ts +132 -132
  50. package/dist/types/src/components/BaseField.vue.d.ts +58 -58
  51. package/dist/types/src/components/BaseFieldI18n.vue.d.ts +93 -93
  52. package/dist/types/src/components/BaseFilePicker.vue.d.ts +72 -72
  53. package/dist/types/src/components/BaseFilePickerCrop.vue.d.ts +63 -63
  54. package/dist/types/src/components/BaseFileUploader.vue.d.ts +142 -142
  55. package/dist/types/src/components/BaseForm.vue.d.ts +143 -143
  56. package/dist/types/src/components/BaseGantt.vue.d.ts +425 -425
  57. package/dist/types/src/components/BaseHasMany.vue.d.ts +149 -149
  58. package/dist/types/src/components/BaseHeader.vue.d.ts +98 -98
  59. package/dist/types/src/components/BaseIconPicker.vue.d.ts +34 -34
  60. package/dist/types/src/components/BaseInput.vue.d.ts +174 -174
  61. package/dist/types/src/components/BaseInputError.vue.d.ts +9 -9
  62. package/dist/types/src/components/BaseInputLabel.vue.d.ts +42 -42
  63. package/dist/types/src/components/BaseInputPercent.vue.d.ts +138 -138
  64. package/dist/types/src/components/BaseLayoutNotificationDropdown.vue.d.ts +36 -36
  65. package/dist/types/src/components/BaseLayoutNotificationItem.vue.d.ts +16 -16
  66. package/dist/types/src/components/BaseLayoutNotificationItemContent.vue.d.ts +21 -21
  67. package/dist/types/src/components/BaseLayoutSidebar.vue.d.ts +51 -51
  68. package/dist/types/src/components/BaseLayoutSidebarConfigurable.vue.d.ts +87 -87
  69. package/dist/types/src/components/BaseLayoutStacked.vue.d.ts +23 -23
  70. package/dist/types/src/components/BaseLayoutStackedConfigurable.vue.d.ts +78 -78
  71. package/dist/types/src/components/BaseLoadingCover.vue.d.ts +96 -96
  72. package/dist/types/src/components/BaseMediaGallery.vue.d.ts +64 -64
  73. package/dist/types/src/components/BaseMediaGalleryItem.vue.d.ts +45 -45
  74. package/dist/types/src/components/BaseMediaItem.vue.d.ts +27 -27
  75. package/dist/types/src/components/BaseMediaLibrary.vue.d.ts +199 -199
  76. package/dist/types/src/components/BaseMediaList.vue.d.ts +46 -46
  77. package/dist/types/src/components/BaseMediaListItem.vue.d.ts +46 -46
  78. package/dist/types/src/components/BaseMediaPictures.vue.d.ts +55 -55
  79. package/dist/types/src/components/BaseMediaPicturesItem.vue.d.ts +54 -54
  80. package/dist/types/src/components/BaseMediaPreview.vue.d.ts +36 -36
  81. package/dist/types/src/components/BaseMenu.vue.d.ts +68 -68
  82. package/dist/types/src/components/BaseMenuItem.vue.d.ts +61 -61
  83. package/dist/types/src/components/BaseModalCenter.vue.d.ts +80 -80
  84. package/dist/types/src/components/BaseModalSide.vue.d.ts +62 -62
  85. package/dist/types/src/components/BaseNavbar.vue.d.ts +38 -38
  86. package/dist/types/src/components/BaseNavbarItem.vue.d.ts +26 -26
  87. package/dist/types/src/components/BaseNavbarItemContent.vue.d.ts +60 -60
  88. package/dist/types/src/components/BaseNavbarSideItem.vue.d.ts +44 -44
  89. package/dist/types/src/components/BaseNavbarSideItemContent.vue.d.ts +60 -60
  90. package/dist/types/src/components/BasePagination.vue.d.ts +35 -35
  91. package/dist/types/src/components/BasePanel.vue.d.ts +31 -31
  92. package/dist/types/src/components/BasePassword.vue.d.ts +67 -67
  93. package/dist/types/src/components/BaseProgressCircle.vue.d.ts +37 -37
  94. package/dist/types/src/components/BaseRadioGroup.vue.d.ts +105 -105
  95. package/dist/types/src/components/BaseReadMore.vue.d.ts +21 -21
  96. package/dist/types/src/components/BaseRichText.vue.d.ts +92 -92
  97. package/dist/types/src/components/BaseSelect.vue.d.ts +98 -98
  98. package/dist/types/src/components/BaseShortcut.vue.d.ts +86 -86
  99. package/dist/types/src/components/BaseSideNavigation.vue.d.ts +21 -21
  100. package/dist/types/src/components/BaseSideNavigationItem.vue.d.ts +41 -41
  101. package/dist/types/src/components/BaseSkeleton.vue.d.ts +31 -31
  102. package/dist/types/src/components/BaseStatistic.vue.d.ts +55 -55
  103. package/dist/types/src/components/BaseStepper.vue.d.ts +16 -16
  104. package/dist/types/src/components/BaseStepperItem.vue.d.ts +51 -51
  105. package/dist/types/src/components/BaseSwitch.vue.d.ts +87 -87
  106. package/dist/types/src/components/BaseSystemAlert.vue.d.ts +52 -52
  107. package/dist/types/src/components/BaseTabItem.vue.d.ts +41 -41
  108. package/dist/types/src/components/BaseTable.vue.d.ts +221 -221
  109. package/dist/types/src/components/BaseTableColumn.vue.d.ts +174 -174
  110. package/dist/types/src/components/BaseTabs.vue.d.ts +21 -21
  111. package/dist/types/src/components/BaseTagAutocomplete.vue.d.ts +209 -209
  112. package/dist/types/src/components/BaseTagAutocompleteFetch.vue.d.ts +141 -141
  113. package/dist/types/src/components/BaseTextarea.vue.d.ts +103 -103
  114. package/dist/types/src/components/BaseTextareaAutoresize.vue.d.ts +113 -113
  115. package/dist/types/src/components/BaseTimeline.vue.d.ts +14 -14
  116. package/dist/types/src/components/BaseTimelineItem.vue.d.ts +14 -14
  117. package/dist/types/src/components/BaseToast.vue.d.ts +20 -20
  118. package/dist/types/src/components/BaseUniqueCode.vue.d.ts +33 -33
  119. package/dist/types/src/components/SlotComponent.d.ts +43 -43
  120. package/dist/types/src/components/index.d.ts +97 -96
  121. package/dist/types/src/composables/breakpoints.d.ts +27 -27
  122. package/dist/types/src/composables/clickOutside.d.ts +8 -8
  123. package/dist/types/src/composables/field.d.ts +19 -19
  124. package/dist/types/src/composables/hasOptions.d.ts +7 -7
  125. package/dist/types/src/composables/mediaQuery.d.ts +2 -2
  126. package/dist/types/src/composables/modal.d.ts +6 -6
  127. package/dist/types/src/composables/paginatedData.d.ts +7 -7
  128. package/dist/types/src/constants/MyConstants.d.ts +1 -1
  129. package/dist/types/src/constants/index.d.ts +2 -2
  130. package/dist/types/src/i18n/index.d.ts +1 -1
  131. package/dist/types/src/index.d.ts +236 -224
  132. package/dist/types/src/services/gantt/format.d.ts +24 -24
  133. package/dist/types/src/services/gantt/timescale.d.ts +26 -26
  134. package/dist/types/src/services/gantt/types.d.ts +67 -67
  135. package/dist/types/src/stores/dialogs.d.ts +9 -9
  136. package/dist/types/src/stores/i18n.d.ts +5 -5
  137. package/dist/types/src/stores/notifications.d.ts +10 -10
  138. package/dist/types/src/stores/systemAlerts.d.ts +9 -9
  139. package/dist/types/src/stories/PageShow.vue.d.ts +2 -2
  140. package/dist/types/src/svg/BaseEmptyState.vue.d.ts +2 -2
  141. package/dist/types/src/svg/BaseSpinnerLarge.vue.d.ts +2 -2
  142. package/dist/types/src/svg/BaseSpinnerSmall.vue.d.ts +2 -2
  143. package/dist/types/src/types/CalendarEvent.d.ts +9 -0
  144. package/dist/types/src/types/Color.d.ts +9 -9
  145. package/dist/types/src/types/Country.d.ts +4 -4
  146. package/dist/types/src/types/ImagePickerResult.d.ts +5 -5
  147. package/dist/types/src/types/Media.d.ts +9 -9
  148. package/dist/types/src/types/Notification.d.ts +8 -8
  149. package/dist/types/src/types/Region.d.ts +5 -5
  150. package/dist/types/src/types/Status.d.ts +5 -5
  151. package/dist/types/src/types/StepperItem.d.ts +7 -7
  152. package/dist/types/src/types/TimelineItem.d.ts +9 -9
  153. package/dist/types/src/types/UploadedFile.d.ts +10 -10
  154. package/dist/types/src/types/User.d.ts +6 -6
  155. package/dist/types/src/types/index.d.ts +218 -218
  156. package/dist/types/src/utils/blob.d.ts +3 -3
  157. package/dist/types/src/utils/colors.d.ts +13 -13
  158. package/dist/types/src/utils/cropper/avatar.d.ts +5 -5
  159. package/dist/types/src/utils/cropper/cover.d.ts +5 -5
  160. package/dist/types/src/utils/cropper/presetInterface.d.ts +7 -7
  161. package/dist/types/src/utils/cropper/presets.d.ts +6 -6
  162. package/dist/types/src/utils/fileSizeFormat.d.ts +1 -1
  163. package/dist/types/src/utils/fileValidations.d.ts +2 -2
  164. package/dist/types/src/utils/index.d.ts +6 -6
  165. package/dist/types/src/utils/resizeImageFromURI.d.ts +1 -1
  166. package/dist/types/src/utils/scrollPreventer.d.ts +3 -3
  167. package/dist/types/src/utils/toHumanList.d.ts +1 -1
  168. package/package.json +148 -141
  169. package/src/assets/flatpickr.css +243 -243
  170. package/src/assets/form.css +6 -6
  171. package/src/assets/main.css +36 -36
  172. package/src/assets/tailwind.css +2 -2
  173. package/src/components/BaseActionItem.vue +68 -68
  174. package/src/components/BaseActionItemButton.vue +77 -77
  175. package/src/components/BaseAddressForm.stories.js +103 -103
  176. package/src/components/BaseAddressForm.vue +354 -354
  177. package/src/components/BaseAlert.stories.js +52 -52
  178. package/src/components/BaseAlert.vue +158 -158
  179. package/src/components/BaseApp.vue +16 -16
  180. package/src/components/BaseAppDialogs.vue +123 -123
  181. package/src/components/BaseAppNotifications.vue +40 -40
  182. package/src/components/BaseAutocomplete.stories.js +236 -236
  183. package/src/components/BaseAutocomplete.vue +523 -523
  184. package/src/components/BaseAutocompleteDrawer.vue +372 -372
  185. package/src/components/BaseAutocompleteFetch.stories.js +224 -224
  186. package/src/components/BaseAutocompleteFetch.vue +288 -288
  187. package/src/components/BaseAvatar.stories.js +39 -39
  188. package/src/components/BaseAvatar.vue +120 -120
  189. package/src/components/BaseAvatarGroup.stories.js +71 -71
  190. package/src/components/BaseAvatarGroup.vue +148 -148
  191. package/src/components/BaseBadge.stories.js +124 -124
  192. package/src/components/BaseBadge.vue +87 -87
  193. package/src/components/BaseBelongsTo.stories.js +223 -223
  194. package/src/components/BaseBelongsTo.vue +193 -193
  195. package/src/components/BaseBoolean.stories.js +35 -35
  196. package/src/components/BaseBoolean.vue +26 -26
  197. package/src/components/BaseBreadcrumbs.stories.js +50 -50
  198. package/src/components/BaseBreadcrumbs.vue +109 -109
  199. package/src/components/BaseButton.stories.js +88 -88
  200. package/src/components/BaseButton.vue +46 -46
  201. package/src/components/BaseButtonGroup.stories.js +86 -86
  202. package/src/components/BaseButtonGroup.vue +150 -150
  203. package/src/components/BaseCalendar.stories.js +202 -0
  204. package/src/components/BaseCalendar.vue +216 -0
  205. package/src/components/BaseCard.stories.js +61 -61
  206. package/src/components/BaseCard.vue +49 -49
  207. package/src/components/BaseCardRow.vue +34 -34
  208. package/src/components/BaseCharacterCounter.stories.js +30 -30
  209. package/src/components/BaseCharacterCounter.vue +64 -64
  210. package/src/components/BaseClickOutside.vue +37 -37
  211. package/src/components/BaseClipboard.stories.js +32 -32
  212. package/src/components/BaseClipboard.vue +83 -83
  213. package/src/components/BaseColor.stories.js +46 -46
  214. package/src/components/BaseColor.vue +154 -154
  215. package/src/components/BaseContainer.stories.js +34 -34
  216. package/src/components/BaseContainer.vue +50 -50
  217. package/src/components/BaseCounter.stories.js +47 -47
  218. package/src/components/BaseCounter.vue +82 -82
  219. package/src/components/BaseCropper.stories.js +113 -113
  220. package/src/components/BaseCropper.vue +458 -458
  221. package/src/components/BaseCropperModal.stories.js +54 -54
  222. package/src/components/BaseCropperModal.vue +143 -143
  223. package/src/components/BaseDataIterator.stories.js +197 -197
  224. package/src/components/BaseDataIterator.vue +839 -839
  225. package/src/components/BaseDataIteratorSectionBox.vue +36 -36
  226. package/src/components/BaseDataIteratorSectionButton.vue +53 -53
  227. package/src/components/BaseDataIteratorSectionColumns.vue +70 -70
  228. package/src/components/BaseDataIteratorSectionModal.vue +41 -41
  229. package/src/components/BaseDataTable.stories.js +226 -226
  230. package/src/components/BaseDataTable.vue +779 -779
  231. package/src/components/BaseDataTableRowAction.vue +53 -53
  232. package/src/components/BaseDatePicker.stories.js +130 -130
  233. package/src/components/BaseDatePicker.vue +296 -296
  234. package/src/components/BaseDateSelect.stories.js +47 -47
  235. package/src/components/BaseDateSelect.vue +241 -241
  236. package/src/components/BaseDescriptionList.stories.js +35 -35
  237. package/src/components/BaseDescriptionList.vue +13 -13
  238. package/src/components/BaseDescriptionListItem.vue +47 -47
  239. package/src/components/BaseDialog.stories.js +51 -51
  240. package/src/components/BaseDialog.vue +119 -119
  241. package/src/components/BaseDisplayRelativeTime.stories.js +47 -47
  242. package/src/components/BaseDisplayRelativeTime.vue +122 -122
  243. package/src/components/BaseDraggable.vue +71 -71
  244. package/src/components/BaseDropdown.stories.js +210 -210
  245. package/src/components/BaseDropdown.vue +280 -280
  246. package/src/components/BaseDropdownAutocomplete.stories.js +187 -187
  247. package/src/components/BaseDropdownAutocomplete.vue +235 -235
  248. package/src/components/BaseField.vue +112 -112
  249. package/src/components/BaseFieldI18n.stories.js +38 -38
  250. package/src/components/BaseFieldI18n.vue +170 -170
  251. package/src/components/BaseFilePicker.stories.js +84 -84
  252. package/src/components/BaseFilePicker.vue +163 -163
  253. package/src/components/BaseFilePickerCrop.stories.js +135 -135
  254. package/src/components/BaseFilePickerCrop.vue +130 -130
  255. package/src/components/BaseFileUploader.stories.js +102 -102
  256. package/src/components/BaseFileUploader.vue +185 -185
  257. package/src/components/BaseForm.stories.js +48 -48
  258. package/src/components/BaseForm.vue +335 -335
  259. package/src/components/BaseGantt.stories.js +133 -133
  260. package/src/components/BaseGantt.vue +336 -336
  261. package/src/components/BaseHasMany.stories.js +189 -189
  262. package/src/components/BaseHasMany.vue +137 -137
  263. package/src/components/BaseHeader.stories.js +133 -133
  264. package/src/components/BaseHeader.vue +188 -188
  265. package/src/components/BaseIconPicker.stories.js +22 -22
  266. package/src/components/BaseIconPicker.vue +225 -225
  267. package/src/components/BaseInput.stories.js +167 -167
  268. package/src/components/BaseInput.vue +264 -264
  269. package/src/components/BaseInputError.vue +7 -7
  270. package/src/components/BaseInputLabel.stories.js +36 -36
  271. package/src/components/BaseInputLabel.vue +57 -57
  272. package/src/components/BaseInputPercent.stories.js +65 -65
  273. package/src/components/BaseInputPercent.vue +139 -139
  274. package/src/components/BaseLayoutNotificationDropdown.vue +150 -150
  275. package/src/components/BaseLayoutNotificationItem.vue +53 -53
  276. package/src/components/BaseLayoutNotificationItemContent.vue +30 -30
  277. package/src/components/BaseLayoutSidebar.vue +236 -236
  278. package/src/components/BaseLayoutSidebarConfigurable.stories.js +166 -166
  279. package/src/components/BaseLayoutSidebarConfigurable.vue +181 -181
  280. package/src/components/BaseLayoutStacked.vue +52 -52
  281. package/src/components/BaseLayoutStackedConfigurable.stories.js +109 -109
  282. package/src/components/BaseLayoutStackedConfigurable.vue +158 -158
  283. package/src/components/BaseLoadingCover.stories.js +55 -55
  284. package/src/components/BaseLoadingCover.vue +101 -101
  285. package/src/components/BaseMediaGallery.vue +96 -96
  286. package/src/components/BaseMediaGalleryItem.vue +101 -101
  287. package/src/components/BaseMediaItem.stories.js +41 -41
  288. package/src/components/BaseMediaItem.vue +80 -80
  289. package/src/components/BaseMediaLibrary.stories.js +267 -267
  290. package/src/components/BaseMediaLibrary.vue +342 -342
  291. package/src/components/BaseMediaList.vue +67 -67
  292. package/src/components/BaseMediaListItem.vue +212 -212
  293. package/src/components/BaseMediaPictures.vue +64 -64
  294. package/src/components/BaseMediaPicturesItem.vue +100 -100
  295. package/src/components/BaseMediaPreview.stories.js +72 -72
  296. package/src/components/BaseMediaPreview.vue +106 -106
  297. package/src/components/BaseMenu.stories.js +129 -129
  298. package/src/components/BaseMenu.vue +165 -165
  299. package/src/components/BaseMenuItem.vue +145 -145
  300. package/src/components/BaseModalCenter.stories.js +68 -68
  301. package/src/components/BaseModalCenter.vue +128 -128
  302. package/src/components/BaseModalSide.stories.js +55 -55
  303. package/src/components/BaseModalSide.vue +116 -116
  304. package/src/components/BaseNavbar.stories.js +151 -151
  305. package/src/components/BaseNavbar.vue +91 -91
  306. package/src/components/BaseNavbarItem.vue +49 -49
  307. package/src/components/BaseNavbarItemContent.vue +97 -97
  308. package/src/components/BaseNavbarSideItem.vue +114 -114
  309. package/src/components/BaseNavbarSideItemContent.vue +111 -111
  310. package/src/components/BasePagination.stories.js +35 -35
  311. package/src/components/BasePagination.vue +266 -266
  312. package/src/components/BasePanel.stories.js +56 -56
  313. package/src/components/BasePanel.vue +42 -42
  314. package/src/components/BasePassword.stories.js +57 -57
  315. package/src/components/BasePassword.vue +107 -107
  316. package/src/components/BaseProgressCircle.stories.js +27 -27
  317. package/src/components/BaseProgressCircle.vue +80 -80
  318. package/src/components/BaseRadioGroup.stories.js +88 -88
  319. package/src/components/BaseRadioGroup.vue +125 -125
  320. package/src/components/BaseReadMore.stories.js +30 -30
  321. package/src/components/BaseReadMore.vue +73 -73
  322. package/src/components/BaseRichText.stories.js +102 -102
  323. package/src/components/BaseRichText.vue +198 -198
  324. package/src/components/BaseSelect.stories.js +118 -118
  325. package/src/components/BaseSelect.vue +224 -224
  326. package/src/components/BaseShortcut.stories.js +102 -102
  327. package/src/components/BaseShortcut.vue +112 -112
  328. package/src/components/BaseSideNavigation.stories.js +85 -85
  329. package/src/components/BaseSideNavigation.vue +32 -32
  330. package/src/components/BaseSideNavigationItem.vue +95 -95
  331. package/src/components/BaseSkeleton.stories.js +36 -36
  332. package/src/components/BaseSkeleton.vue +40 -40
  333. package/src/components/BaseStatistic.stories.js +51 -51
  334. package/src/components/BaseStatistic.vue +106 -106
  335. package/src/components/BaseStepper.stories.js +94 -94
  336. package/src/components/BaseStepper.vue +72 -72
  337. package/src/components/BaseStepperItem.stories.js +65 -65
  338. package/src/components/BaseStepperItem.vue +149 -149
  339. package/src/components/BaseSwitch.stories.js +130 -130
  340. package/src/components/BaseSwitch.vue +215 -215
  341. package/src/components/BaseSystemAlert.stories.js +63 -63
  342. package/src/components/BaseSystemAlert.vue +89 -89
  343. package/src/components/BaseTabItem.vue +97 -97
  344. package/src/components/BaseTable.vue +904 -904
  345. package/src/components/BaseTableColumn.vue +124 -124
  346. package/src/components/BaseTabs.stories.js +85 -85
  347. package/src/components/BaseTabs.vue +73 -73
  348. package/src/components/BaseTagAutocomplete.stories.js +258 -258
  349. package/src/components/BaseTagAutocomplete.vue +438 -438
  350. package/src/components/BaseTagAutocompleteFetch.stories.js +185 -185
  351. package/src/components/BaseTagAutocompleteFetch.vue +220 -220
  352. package/src/components/BaseTextarea.stories.js +58 -58
  353. package/src/components/BaseTextarea.vue +103 -103
  354. package/src/components/BaseTextareaAutoresize.stories.js +102 -102
  355. package/src/components/BaseTextareaAutoresize.vue +166 -166
  356. package/src/components/BaseTimeline.stories.js +55 -55
  357. package/src/components/BaseTimeline.vue +38 -38
  358. package/src/components/BaseTimelineItem.stories.js +78 -78
  359. package/src/components/BaseTimelineItem.vue +90 -90
  360. package/src/components/BaseToast.stories.js +50 -50
  361. package/src/components/BaseToast.vue +43 -43
  362. package/src/components/BaseUniqueCode.stories.js +36 -36
  363. package/src/components/BaseUniqueCode.vue +183 -183
  364. package/src/components/SlotComponent.ts +37 -37
  365. package/src/components/index.ts +196 -194
  366. package/src/composables/breakpoints.ts +94 -94
  367. package/src/composables/clickOutside.ts +80 -80
  368. package/src/composables/field.ts +117 -117
  369. package/src/composables/hasOptions.ts +68 -68
  370. package/src/composables/mediaQuery.ts +42 -42
  371. package/src/composables/modal.ts +73 -73
  372. package/src/composables/paginatedData.ts +65 -65
  373. package/src/constants/MyConstants.ts +1 -1
  374. package/src/constants/index.ts +5 -5
  375. package/src/env.d.ts +15 -15
  376. package/src/i18n/index.ts +60 -60
  377. package/src/index.ts +114 -114
  378. package/src/lang/en.json +95 -89
  379. package/src/lang/fr.json +95 -89
  380. package/src/services/gantt/format.ts +113 -113
  381. package/src/services/gantt/timescale.ts +242 -242
  382. package/src/services/gantt/types.ts +74 -74
  383. package/src/stores/dialogs.ts +45 -45
  384. package/src/stores/i18n.ts +14 -14
  385. package/src/stores/notifications.ts +47 -47
  386. package/src/stores/systemAlerts.ts +32 -32
  387. package/src/stories/List.stories.js +132 -132
  388. package/src/stories/PageShow.vue +423 -423
  389. package/src/stories/Show.stories.js +22 -22
  390. package/src/svg/BaseEmptyState.vue +38 -38
  391. package/src/svg/BaseSpinnerLarge.vue +59 -59
  392. package/src/svg/BaseSpinnerSmall.vue +15 -15
  393. package/src/types/CalendarEvent.ts +9 -0
  394. package/src/types/Color.ts +9 -9
  395. package/src/types/Country.ts +4 -4
  396. package/src/types/ImagePickerResult.ts +5 -5
  397. package/src/types/Media.ts +10 -10
  398. package/src/types/Notification.ts +10 -10
  399. package/src/types/Region.ts +5 -5
  400. package/src/types/Status.ts +5 -5
  401. package/src/types/StepperItem.ts +8 -8
  402. package/src/types/TimelineItem.ts +9 -9
  403. package/src/types/UploadedFile.ts +11 -11
  404. package/src/types/User.ts +7 -7
  405. package/src/types/index.ts +267 -267
  406. package/src/utils/blob.ts +30 -30
  407. package/src/utils/colors.ts +210 -210
  408. package/src/utils/cropper/avatar.ts +33 -33
  409. package/src/utils/cropper/cover.ts +41 -41
  410. package/src/utils/cropper/presetInterface.ts +16 -16
  411. package/src/utils/cropper/presets.ts +7 -7
  412. package/src/utils/fileSizeFormat.ts +15 -15
  413. package/src/utils/fileValidations.ts +26 -26
  414. package/src/utils/index.ts +16 -16
  415. package/src/utils/resizeImageFromURI.ts +118 -118
  416. package/src/utils/scrollPreventer.ts +11 -11
  417. package/src/utils/toHumanList.ts +20 -20
@@ -1,51 +1,51 @@
1
- import BaseDialog from './BaseDialog.vue';
2
-
3
- export default {
4
- title: 'Components/BaseDialog',
5
- component: BaseDialog,
6
- argTypes: {
7
- color: {
8
- control: { type: 'select' },
9
- options: ['success', 'info', 'warning', 'danger'],
10
- },
11
- },
12
- args: {
13
- message:
14
- 'Nisi Lorem sunt amet aliqua dolor ullamco deserunt enim irure non ad. Excepteur culpa consectetur dolore culpa sunt aliquip proident quis.',
15
- },
16
- };
17
-
18
- const Template = (args) => ({
19
- components: { BaseDialog },
20
- setup() {
21
- return { args };
22
- },
23
- template: `
24
- <BaseDialog v-bind="args">
25
- </BaseDialog>
26
- `,
27
- });
28
-
29
- export const Demo = Template.bind({});
30
- Demo.args = {
31
- title: 'Be careful',
32
- color: 'warning',
33
- };
34
-
35
- export const Success = Template.bind({});
36
- Success.args = {
37
- title: 'Success',
38
- color: 'success',
39
- };
40
-
41
- export const Danger = Template.bind({});
42
- Danger.args = {
43
- title: 'Error',
44
- color: 'danger',
45
- };
46
-
47
- export const Info = Template.bind({});
48
- Info.args = {
49
- title: 'Information',
50
- color: 'info',
51
- };
1
+ import BaseDialog from './BaseDialog.vue';
2
+
3
+ export default {
4
+ title: 'Components/BaseDialog',
5
+ component: BaseDialog,
6
+ argTypes: {
7
+ color: {
8
+ control: { type: 'select' },
9
+ options: ['success', 'info', 'warning', 'danger'],
10
+ },
11
+ },
12
+ args: {
13
+ message:
14
+ 'Nisi Lorem sunt amet aliqua dolor ullamco deserunt enim irure non ad. Excepteur culpa consectetur dolore culpa sunt aliquip proident quis.',
15
+ },
16
+ };
17
+
18
+ const Template = (args) => ({
19
+ components: { BaseDialog },
20
+ setup() {
21
+ return { args };
22
+ },
23
+ template: `
24
+ <BaseDialog v-bind="args">
25
+ </BaseDialog>
26
+ `,
27
+ });
28
+
29
+ export const Demo = Template.bind({});
30
+ Demo.args = {
31
+ title: 'Be careful',
32
+ color: 'warning',
33
+ };
34
+
35
+ export const Success = Template.bind({});
36
+ Success.args = {
37
+ title: 'Success',
38
+ color: 'success',
39
+ };
40
+
41
+ export const Danger = Template.bind({});
42
+ Danger.args = {
43
+ title: 'Error',
44
+ color: 'danger',
45
+ };
46
+
47
+ export const Info = Template.bind({});
48
+ Info.args = {
49
+ title: 'Information',
50
+ color: 'info',
51
+ };
@@ -1,119 +1,119 @@
1
- <template>
2
- <div
3
- class="relative transform overflow-hidden rounded-lg bg-white border border-slate-200 p-4 text-left shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg"
4
- >
5
- <div class="sm:flex sm:items-start">
6
- <div
7
- class="mx-auto flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-full sm:mx-0 sm:h-10 sm:w-10"
8
- :class="{
9
- 'bg-primary-100': color == 'info',
10
- 'bg-red-100': color == 'danger',
11
- 'bg-yellow-100': color == 'warning',
12
- 'bg-green-100': color == 'success',
13
- }"
14
- >
15
- <BaseIcon
16
- v-if="color == 'danger'"
17
- class="h-5 w-5 text-red-600"
18
- icon="heroicons:exclamation-triangle-20-solid"
19
- />
20
- <BaseIcon
21
- v-else-if="color == 'warning'"
22
- class="h-5 w-5 text-yellow-600"
23
- icon="heroicons:exclamation-triangle-20-solid"
24
- />
25
- <BaseIcon
26
- v-else-if="color == 'success'"
27
- class="h-5 w-5 text-green-600"
28
- icon="heroicons:check-circle-20-solid"
29
- />
30
- <BaseIcon
31
- v-else
32
- class="h-5 w-5 text-primary-600"
33
- icon="heroicons:information-circle-20-solid"
34
- />
35
- </div>
36
- <div class="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
37
- <slot>
38
- <h3
39
- id="modal-title"
40
- class="text-base font-medium leading-6 text-slate-900"
41
- >
42
- {{ title }}
43
- </h3>
44
- <div class="mt-2">
45
- <p class="text-sm font-light text-slate-600">
46
- {{ message }}
47
- </p>
48
- </div>
49
- </slot>
50
- </div>
51
- </div>
52
- <div class="mt-5 sm:mt-4 sm:flex sm:flex-row-reverse">
53
- <button
54
- ref="confirm"
55
- type="button"
56
- class="btn btn-sm mb-2 w-full sm:mb-0 sm:w-auto"
57
- :class="{
58
- 'btn-primary': color == 'info',
59
- 'btn-danger': color == 'danger',
60
- 'btn-warning': color == 'warning',
61
- 'btn-success': color == 'success',
62
- }"
63
- @click="$emit('confirm')"
64
- >
65
- {{ confirmText ?? t('sui.confirm') }}
66
- </button>
67
- <button
68
- type="button"
69
- class="btn btn-sm w-full sm:mr-2 sm:w-auto"
70
- @click="$emit('cancel')"
71
- >
72
- {{ cancelText ?? t('sui.cancel') }}
73
- </button>
74
- </div>
75
- </div>
76
- </template>
77
-
78
- <script lang="ts" setup>
79
- import { PropType } from 'vue';
80
- import { Icon as BaseIcon } from '@iconify/vue';
81
- import { t } from '@/i18n';
82
-
83
- defineProps({
84
- color: {
85
- required: true,
86
- type: String as PropType<'info' | 'success' | 'danger' | 'warning'>,
87
- },
88
- title: {
89
- default: '',
90
- type: String,
91
- },
92
- message: {
93
- default: '',
94
- type: String,
95
- },
96
- confirmText: {
97
- default() {
98
- return t('sui.confirm');
99
- },
100
- type: String,
101
- },
102
- cancelText: {
103
- default() {
104
- return t('sui.cancel');
105
- },
106
- type: String,
107
- },
108
- });
109
-
110
- defineEmits(['cancel', 'confirm']);
111
-
112
- const confirm = ref<HTMLButtonElement | null>(null);
113
-
114
- onMounted(() => {
115
- if (confirm.value) {
116
- confirm.value.focus();
117
- }
118
- });
119
- </script>
1
+ <template>
2
+ <div
3
+ class="relative transform overflow-hidden rounded-lg bg-white border border-slate-200 p-4 text-left shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg"
4
+ >
5
+ <div class="sm:flex sm:items-start">
6
+ <div
7
+ class="mx-auto flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-full sm:mx-0 sm:h-10 sm:w-10"
8
+ :class="{
9
+ 'bg-primary-100': color == 'info',
10
+ 'bg-red-100': color == 'danger',
11
+ 'bg-yellow-100': color == 'warning',
12
+ 'bg-green-100': color == 'success',
13
+ }"
14
+ >
15
+ <BaseIcon
16
+ v-if="color == 'danger'"
17
+ class="h-5 w-5 text-red-600"
18
+ icon="heroicons:exclamation-triangle-20-solid"
19
+ />
20
+ <BaseIcon
21
+ v-else-if="color == 'warning'"
22
+ class="h-5 w-5 text-yellow-600"
23
+ icon="heroicons:exclamation-triangle-20-solid"
24
+ />
25
+ <BaseIcon
26
+ v-else-if="color == 'success'"
27
+ class="h-5 w-5 text-green-600"
28
+ icon="heroicons:check-circle-20-solid"
29
+ />
30
+ <BaseIcon
31
+ v-else
32
+ class="h-5 w-5 text-primary-600"
33
+ icon="heroicons:information-circle-20-solid"
34
+ />
35
+ </div>
36
+ <div class="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
37
+ <slot>
38
+ <h3
39
+ id="modal-title"
40
+ class="text-base font-medium leading-6 text-slate-900"
41
+ >
42
+ {{ title }}
43
+ </h3>
44
+ <div class="mt-2">
45
+ <p class="text-sm font-light text-slate-600">
46
+ {{ message }}
47
+ </p>
48
+ </div>
49
+ </slot>
50
+ </div>
51
+ </div>
52
+ <div class="mt-5 sm:mt-4 sm:flex sm:flex-row-reverse">
53
+ <button
54
+ ref="confirm"
55
+ type="button"
56
+ class="btn btn-sm mb-2 w-full sm:mb-0 sm:w-auto"
57
+ :class="{
58
+ 'btn-primary': color == 'info',
59
+ 'btn-danger': color == 'danger',
60
+ 'btn-warning': color == 'warning',
61
+ 'btn-success': color == 'success',
62
+ }"
63
+ @click="$emit('confirm')"
64
+ >
65
+ {{ confirmText ?? t('sui.confirm') }}
66
+ </button>
67
+ <button
68
+ type="button"
69
+ class="btn btn-sm w-full sm:mr-2 sm:w-auto"
70
+ @click="$emit('cancel')"
71
+ >
72
+ {{ cancelText ?? t('sui.cancel') }}
73
+ </button>
74
+ </div>
75
+ </div>
76
+ </template>
77
+
78
+ <script lang="ts" setup>
79
+ import { PropType } from 'vue';
80
+ import { Icon as BaseIcon } from '@iconify/vue';
81
+ import { t } from '@/i18n';
82
+
83
+ defineProps({
84
+ color: {
85
+ required: true,
86
+ type: String as PropType<'info' | 'success' | 'danger' | 'warning'>,
87
+ },
88
+ title: {
89
+ default: '',
90
+ type: String,
91
+ },
92
+ message: {
93
+ default: '',
94
+ type: String,
95
+ },
96
+ confirmText: {
97
+ default() {
98
+ return t('sui.confirm');
99
+ },
100
+ type: String,
101
+ },
102
+ cancelText: {
103
+ default() {
104
+ return t('sui.cancel');
105
+ },
106
+ type: String,
107
+ },
108
+ });
109
+
110
+ defineEmits(['cancel', 'confirm']);
111
+
112
+ const confirm = ref<HTMLButtonElement | null>(null);
113
+
114
+ onMounted(() => {
115
+ if (confirm.value) {
116
+ confirm.value.focus();
117
+ }
118
+ });
119
+ </script>
@@ -1,47 +1,47 @@
1
- import BaseDisplayRelativeTime from './BaseDisplayRelativeTime.vue';
2
- import { DateTime } from 'luxon';
3
-
4
- export default {
5
- title: 'Data/BaseDisplayRelativeTime',
6
- component: BaseDisplayRelativeTime,
7
- argTypes: {
8
- showTooltip: {
9
- control: { type: 'boolean' },
10
- },
11
- },
12
- args: {
13
- value: DateTime.now().minus({ minutes: 2 }).toISO(),
14
- },
15
- };
16
-
17
- const Template = (args) => ({
18
- components: { BaseDisplayRelativeTime },
19
- setup() {
20
- return { args };
21
- },
22
- template: `
23
- <BaseDisplayRelativeTime v-bind="args"></BaseDisplayRelativeTime>
24
- `,
25
- });
26
-
27
- export const Demo = Template.bind({});
28
- Demo.args = {
29
- showTooltip: true,
30
- };
31
-
32
- const TemplateCustom = (args) => ({
33
- components: { BaseDisplayRelativeTime },
34
- setup() {
35
- return { args };
36
- },
37
- template: `
38
- <BaseDisplayRelativeTime v-bind="args" v-slot="{readableDate}">
39
- <span class="text-red-500">
40
- {{readableDate}}
41
- </span>
42
- </BaseDisplayRelativeTime>
43
- `,
44
- });
45
-
46
- export const CustomSlot = TemplateCustom.bind({});
47
- CustomSlot.args = {};
1
+ import BaseDisplayRelativeTime from './BaseDisplayRelativeTime.vue';
2
+ import { DateTime } from 'luxon';
3
+
4
+ export default {
5
+ title: 'Data/BaseDisplayRelativeTime',
6
+ component: BaseDisplayRelativeTime,
7
+ argTypes: {
8
+ showTooltip: {
9
+ control: { type: 'boolean' },
10
+ },
11
+ },
12
+ args: {
13
+ value: DateTime.now().minus({ minutes: 2 }).toISO(),
14
+ },
15
+ };
16
+
17
+ const Template = (args) => ({
18
+ components: { BaseDisplayRelativeTime },
19
+ setup() {
20
+ return { args };
21
+ },
22
+ template: `
23
+ <BaseDisplayRelativeTime v-bind="args"></BaseDisplayRelativeTime>
24
+ `,
25
+ });
26
+
27
+ export const Demo = Template.bind({});
28
+ Demo.args = {
29
+ showTooltip: true,
30
+ };
31
+
32
+ const TemplateCustom = (args) => ({
33
+ components: { BaseDisplayRelativeTime },
34
+ setup() {
35
+ return { args };
36
+ },
37
+ template: `
38
+ <BaseDisplayRelativeTime v-bind="args" v-slot="{readableDate}">
39
+ <span class="text-red-500">
40
+ {{readableDate}}
41
+ </span>
42
+ </BaseDisplayRelativeTime>
43
+ `,
44
+ });
45
+
46
+ export const CustomSlot = TemplateCustom.bind({});
47
+ CustomSlot.args = {};
@@ -1,122 +1,122 @@
1
- <template>
2
- <component
3
- :is="as"
4
- :ref="showTooltip ? 'tooltip' : ''"
5
- >
6
- <slot
7
- name="default"
8
- :readable-date="readableDate"
9
- >
10
- <span class="text-xs text-slate-600">
11
- {{ readableDate }}
12
- </span>
13
- </slot>
14
- </component>
15
- </template>
16
-
17
- <script lang="ts" setup>
18
- import { t } from '@/i18n';
19
- import { useI18nStore } from '@/stores/i18n';
20
- import humanizeDuration from 'humanize-duration';
21
- import { DateTime } from 'luxon';
22
- import { useTippy } from 'vue-tippy'
23
- import 'tippy.js/dist/tippy.css'
24
-
25
- const props = defineProps({
26
- value: {
27
- required: true,
28
- type: String,
29
- },
30
- showTooltip: {
31
- default: false,
32
- type: Boolean,
33
- },
34
- timeZone: {
35
- default: 'utc',
36
- type: String,
37
- },
38
- as: {
39
- default: 'span',
40
- type: String,
41
- },
42
- });
43
-
44
- const tooltip = ref();
45
-
46
- const tooltipContent = computed(() => {
47
- return DateTime.fromISO(props.value)
48
- .setLocale(useI18nStore().locale)
49
- .toLocaleString(DateTime.DATETIME_FULL);
50
- });
51
-
52
- useTippy(tooltip, {
53
- content: tooltipContent,
54
- placement: 'auto',
55
- })
56
-
57
- const now = ref(DateTime.now().toSeconds());
58
-
59
- function getMinutes(duration: number) {
60
- return Math.abs(duration / 60000);
61
- }
62
-
63
- function getDuration() {
64
- const nowLuxon = DateTime.fromSeconds(now.value);
65
- const duration = DateTime.fromISO(props.value, {
66
- zone: props.timeZone,
67
- }).diff(nowLuxon).milliseconds;
68
-
69
- return duration;
70
- }
71
-
72
- function getInterval() {
73
- const duration = getDuration();
74
- const minutes = Math.ceil(getMinutes(duration));
75
-
76
- if (minutes < 10) {
77
- return 10 * 1000;
78
- }
79
-
80
- if (minutes < 60) {
81
- return 30 * 1000;
82
- }
83
-
84
- if (minutes < 1140) {
85
- return 60 * 1000;
86
- }
87
-
88
- if (minutes < 10080) {
89
- return 60 * 60 * 1000;
90
- }
91
-
92
- return 1000;
93
- }
94
-
95
- const intervalValue = getInterval();
96
-
97
- const intervalId = setInterval(() => {
98
- now.value = DateTime.now().toSeconds();
99
- }, intervalValue);
100
-
101
- const readableDate = computed(() => {
102
- const duration = getDuration();
103
- const durationHuman = humanizeDuration(duration, {
104
- language: useI18nStore().locale,
105
- round: true,
106
- largest: 1,
107
- });
108
-
109
- const minutes = getMinutes(duration);
110
-
111
- if (minutes < 1) {
112
- return t('sui.just_now');
113
- }
114
-
115
- return t('sui.x_ago', { duration: durationHuman });
116
- });
117
-
118
-
119
- onBeforeUnmount(() => {
120
- clearInterval(intervalId);
121
- });
122
- </script>
1
+ <template>
2
+ <component
3
+ :is="as"
4
+ :ref="showTooltip ? 'tooltip' : ''"
5
+ >
6
+ <slot
7
+ name="default"
8
+ :readable-date="readableDate"
9
+ >
10
+ <span class="text-xs text-slate-600">
11
+ {{ readableDate }}
12
+ </span>
13
+ </slot>
14
+ </component>
15
+ </template>
16
+
17
+ <script lang="ts" setup>
18
+ import { t } from '@/i18n';
19
+ import { useI18nStore } from '@/stores/i18n';
20
+ import humanizeDuration from 'humanize-duration';
21
+ import { DateTime } from 'luxon';
22
+ import { useTippy } from 'vue-tippy'
23
+ import 'tippy.js/dist/tippy.css'
24
+
25
+ const props = defineProps({
26
+ value: {
27
+ required: true,
28
+ type: String,
29
+ },
30
+ showTooltip: {
31
+ default: false,
32
+ type: Boolean,
33
+ },
34
+ timeZone: {
35
+ default: 'utc',
36
+ type: String,
37
+ },
38
+ as: {
39
+ default: 'span',
40
+ type: String,
41
+ },
42
+ });
43
+
44
+ const tooltip = ref();
45
+
46
+ const tooltipContent = computed(() => {
47
+ return DateTime.fromISO(props.value)
48
+ .setLocale(useI18nStore().locale)
49
+ .toLocaleString(DateTime.DATETIME_FULL);
50
+ });
51
+
52
+ useTippy(tooltip, {
53
+ content: tooltipContent,
54
+ placement: 'auto',
55
+ })
56
+
57
+ const now = ref(DateTime.now().toSeconds());
58
+
59
+ function getMinutes(duration: number) {
60
+ return Math.abs(duration / 60000);
61
+ }
62
+
63
+ function getDuration() {
64
+ const nowLuxon = DateTime.fromSeconds(now.value);
65
+ const duration = DateTime.fromISO(props.value, {
66
+ zone: props.timeZone,
67
+ }).diff(nowLuxon).milliseconds;
68
+
69
+ return duration;
70
+ }
71
+
72
+ function getInterval() {
73
+ const duration = getDuration();
74
+ const minutes = Math.ceil(getMinutes(duration));
75
+
76
+ if (minutes < 10) {
77
+ return 10 * 1000;
78
+ }
79
+
80
+ if (minutes < 60) {
81
+ return 30 * 1000;
82
+ }
83
+
84
+ if (minutes < 1140) {
85
+ return 60 * 1000;
86
+ }
87
+
88
+ if (minutes < 10080) {
89
+ return 60 * 60 * 1000;
90
+ }
91
+
92
+ return 1000;
93
+ }
94
+
95
+ const intervalValue = getInterval();
96
+
97
+ const intervalId = setInterval(() => {
98
+ now.value = DateTime.now().toSeconds();
99
+ }, intervalValue);
100
+
101
+ const readableDate = computed(() => {
102
+ const duration = getDuration();
103
+ const durationHuman = humanizeDuration(duration, {
104
+ language: useI18nStore().locale,
105
+ round: true,
106
+ largest: 1,
107
+ });
108
+
109
+ const minutes = getMinutes(duration);
110
+
111
+ if (minutes < 1) {
112
+ return t('sui.just_now');
113
+ }
114
+
115
+ return t('sui.x_ago', { duration: durationHuman });
116
+ });
117
+
118
+
119
+ onBeforeUnmount(() => {
120
+ clearInterval(intervalId);
121
+ });
122
+ </script>