sprintify-ui 0.2.18 → 0.2.21
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.
- package/README.md +244 -244
- package/dist/sprintify-ui.es.js +7675 -7686
- package/dist/style.css +1 -1
- package/dist/tailwindcss/index.js +306 -306
- package/dist/types/src/components/BaseActionItem.vue.d.ts +40 -40
- package/dist/types/src/components/BaseActionItemButton.vue.d.ts +25 -25
- package/dist/types/src/components/BaseAddressForm.vue.d.ts +84 -84
- package/dist/types/src/components/BaseAlert.vue.d.ts +51 -51
- package/dist/types/src/components/BaseApp.vue.d.ts +9 -9
- package/dist/types/src/components/BaseAppDialogs.vue.d.ts +14 -14
- package/dist/types/src/components/BaseAppNotifications.vue.d.ts +2 -2
- package/dist/types/src/components/BaseAutocomplete.vue.d.ts +237 -237
- package/dist/types/src/components/BaseAutocompleteDrawer.vue.d.ts +91 -91
- package/dist/types/src/components/BaseAutocompleteFetch.vue.d.ts +210 -210
- package/dist/types/src/components/BaseAvatar.vue.d.ts +52 -52
- package/dist/types/src/components/BaseAvatarGroup.vue.d.ts +43 -43
- package/dist/types/src/components/BaseBadge.vue.d.ts +54 -54
- package/dist/types/src/components/BaseBelongsTo.vue.d.ts +216 -216
- package/dist/types/src/components/BaseBoolean.vue.d.ts +10 -10
- package/dist/types/src/components/BaseBreadcrumbs.vue.d.ts +14 -14
- package/dist/types/src/components/BaseButton.vue.d.ts +23 -23
- package/dist/types/src/components/BaseButtonGroup.vue.d.ts +143 -143
- package/dist/types/src/components/BaseCard.vue.d.ts +21 -21
- package/dist/types/src/components/BaseCardRow.vue.d.ts +16 -16
- package/dist/types/src/components/BaseCharacterCounter.vue.d.ts +49 -49
- package/dist/types/src/components/BaseClickOutside.vue.d.ts +26 -26
- package/dist/types/src/components/BaseClipboard.vue.d.ts +21 -21
- package/dist/types/src/components/BaseColor.vue.d.ts +80 -80
- package/dist/types/src/components/BaseContainer.vue.d.ts +34 -34
- package/dist/types/src/components/BaseCounter.vue.d.ts +42 -42
- package/dist/types/src/components/BaseCropper.vue.d.ts +76 -76
- package/dist/types/src/components/BaseCropperModal.vue.d.ts +28 -28
- package/dist/types/src/components/BaseDataIterator.vue.d.ts +212 -212
- package/dist/types/src/components/BaseDataIteratorSectionBox.vue.d.ts +20 -20
- package/dist/types/src/components/BaseDataIteratorSectionButton.vue.d.ts +17 -17
- package/dist/types/src/components/BaseDataIteratorSectionColumns.vue.d.ts +637 -637
- package/dist/types/src/components/BaseDataIteratorSectionModal.vue.d.ts +32 -32
- package/dist/types/src/components/BaseDataTable.vue.d.ts +385 -385
- package/dist/types/src/components/BaseDataTableRowAction.vue.d.ts +21 -21
- package/dist/types/src/components/BaseDatePicker.vue.d.ts +124 -124
- package/dist/types/src/components/BaseDateSelect.vue.d.ts +79 -79
- package/dist/types/src/components/BaseDescriptionList.vue.d.ts +9 -9
- package/dist/types/src/components/BaseDescriptionListItem.vue.d.ts +10 -10
- package/dist/types/src/components/BaseDialog.vue.d.ts +60 -60
- package/dist/types/src/components/BaseDisplayRelativeTime.vue.d.ts +68 -68
- package/dist/types/src/components/BaseDraggable.vue.d.ts +49 -49
- package/dist/types/src/components/BaseDropdown.vue.d.ts +65 -65
- package/dist/types/src/components/BaseDropdownAutocomplete.vue.d.ts +132 -132
- package/dist/types/src/components/BaseField.vue.d.ts +58 -58
- package/dist/types/src/components/BaseFieldI18n.vue.d.ts +93 -93
- package/dist/types/src/components/BaseFilePicker.vue.d.ts +72 -63
- package/dist/types/src/components/BaseFilePickerCrop.vue.d.ts +63 -63
- package/dist/types/src/components/BaseFileUploader.vue.d.ts +144 -133
- package/dist/types/src/components/BaseForm.vue.d.ts +134 -134
- package/dist/types/src/components/BaseGantt.vue.d.ts +425 -425
- package/dist/types/src/components/BaseHasMany.vue.d.ts +149 -149
- package/dist/types/src/components/BaseHeader.vue.d.ts +98 -98
- package/dist/types/src/components/BaseIconPicker.vue.d.ts +34 -34
- package/dist/types/src/components/BaseInput.vue.d.ts +174 -174
- package/dist/types/src/components/BaseInputError.vue.d.ts +9 -9
- package/dist/types/src/components/BaseInputLabel.vue.d.ts +43 -43
- package/dist/types/src/components/BaseInputPercent.vue.d.ts +138 -138
- package/dist/types/src/components/BaseLayoutNotificationDropdown.vue.d.ts +36 -36
- package/dist/types/src/components/BaseLayoutNotificationItem.vue.d.ts +16 -16
- package/dist/types/src/components/BaseLayoutNotificationItemContent.vue.d.ts +21 -21
- package/dist/types/src/components/BaseLayoutSidebar.vue.d.ts +51 -51
- package/dist/types/src/components/BaseLayoutSidebarConfigurable.vue.d.ts +87 -87
- package/dist/types/src/components/BaseLayoutStacked.vue.d.ts +23 -23
- package/dist/types/src/components/BaseLayoutStackedConfigurable.vue.d.ts +78 -78
- package/dist/types/src/components/BaseLoadingCover.vue.d.ts +96 -96
- package/dist/types/src/components/BaseMediaGallery.vue.d.ts +64 -64
- package/dist/types/src/components/BaseMediaGalleryItem.vue.d.ts +45 -45
- package/dist/types/src/components/BaseMediaItem.vue.d.ts +27 -27
- package/dist/types/src/components/BaseMediaLibrary.vue.d.ts +199 -190
- package/dist/types/src/components/BaseMediaList.vue.d.ts +47 -47
- package/dist/types/src/components/BaseMediaListItem.vue.d.ts +47 -47
- package/dist/types/src/components/BaseMediaPictures.vue.d.ts +55 -55
- package/dist/types/src/components/BaseMediaPicturesItem.vue.d.ts +54 -54
- package/dist/types/src/components/BaseMediaPreview.vue.d.ts +36 -36
- package/dist/types/src/components/BaseMenu.vue.d.ts +68 -68
- package/dist/types/src/components/BaseMenuItem.vue.d.ts +61 -61
- package/dist/types/src/components/BaseModalCenter.vue.d.ts +80 -80
- package/dist/types/src/components/BaseModalSide.vue.d.ts +62 -62
- package/dist/types/src/components/BaseNavbar.vue.d.ts +38 -38
- package/dist/types/src/components/BaseNavbarItem.vue.d.ts +26 -26
- package/dist/types/src/components/BaseNavbarItemContent.vue.d.ts +60 -60
- package/dist/types/src/components/BaseNavbarSideItem.vue.d.ts +44 -44
- package/dist/types/src/components/BaseNavbarSideItemContent.vue.d.ts +60 -60
- package/dist/types/src/components/BasePagination.vue.d.ts +35 -35
- package/dist/types/src/components/BasePanel.vue.d.ts +31 -31
- package/dist/types/src/components/BasePassword.vue.d.ts +67 -67
- package/dist/types/src/components/BaseProgressCircle.vue.d.ts +37 -37
- package/dist/types/src/components/BaseRadioGroup.vue.d.ts +105 -105
- package/dist/types/src/components/BaseReadMore.vue.d.ts +21 -21
- package/dist/types/src/components/BaseRichText.vue.d.ts +92 -92
- package/dist/types/src/components/BaseSelect.vue.d.ts +98 -98
- package/dist/types/src/components/BaseShortcut.vue.d.ts +86 -86
- package/dist/types/src/components/BaseSideNavigation.vue.d.ts +21 -21
- package/dist/types/src/components/BaseSideNavigationItem.vue.d.ts +41 -41
- package/dist/types/src/components/BaseSkeleton.vue.d.ts +31 -31
- package/dist/types/src/components/BaseStatistic.vue.d.ts +56 -56
- package/dist/types/src/components/BaseStepper.vue.d.ts +16 -16
- package/dist/types/src/components/BaseStepperItem.vue.d.ts +51 -51
- package/dist/types/src/components/BaseSwitch.vue.d.ts +87 -87
- package/dist/types/src/components/BaseSystemAlert.vue.d.ts +52 -52
- package/dist/types/src/components/BaseTabItem.vue.d.ts +41 -41
- package/dist/types/src/components/BaseTable.vue.d.ts +212 -212
- package/dist/types/src/components/BaseTableColumn.vue.d.ts +174 -174
- package/dist/types/src/components/BaseTabs.vue.d.ts +21 -21
- package/dist/types/src/components/BaseTagAutocomplete.vue.d.ts +209 -209
- package/dist/types/src/components/BaseTagAutocompleteFetch.vue.d.ts +141 -141
- package/dist/types/src/components/BaseTextarea.vue.d.ts +103 -103
- package/dist/types/src/components/BaseTextareaAutoresize.vue.d.ts +113 -113
- package/dist/types/src/components/BaseTimeline.vue.d.ts +14 -14
- package/dist/types/src/components/BaseTimelineItem.vue.d.ts +14 -14
- package/dist/types/src/components/BaseUniqueCode.vue.d.ts +33 -33
- package/dist/types/src/components/SlotComponent.d.ts +43 -43
- package/dist/types/src/components/index.d.ts +96 -96
- package/dist/types/src/composables/breakpoints.d.ts +27 -27
- package/dist/types/src/composables/clickOutside.d.ts +8 -8
- package/dist/types/src/composables/field.d.ts +19 -19
- package/dist/types/src/composables/hasOptions.d.ts +7 -7
- package/dist/types/src/composables/mediaQuery.d.ts +2 -2
- package/dist/types/src/composables/modal.d.ts +6 -6
- package/dist/types/src/composables/paginatedData.d.ts +7 -7
- package/dist/types/src/constants/MyConstants.d.ts +1 -1
- package/dist/types/src/constants/index.d.ts +2 -2
- package/dist/types/src/i18n/index.d.ts +1 -1
- package/dist/types/src/index.d.ts +222 -222
- package/dist/types/src/services/gantt/format.d.ts +24 -24
- package/dist/types/src/services/gantt/timescale.d.ts +26 -26
- package/dist/types/src/services/gantt/types.d.ts +67 -67
- package/dist/types/src/stores/dialogs.d.ts +9 -9
- package/dist/types/src/stores/i18n.d.ts +5 -5
- package/dist/types/src/stores/notifications.d.ts +10 -10
- package/dist/types/src/stores/systemAlerts.d.ts +9 -9
- package/dist/types/src/svg/BaseEmptyState.vue.d.ts +2 -2
- package/dist/types/src/svg/BaseSpinnerLarge.vue.d.ts +2 -2
- package/dist/types/src/svg/BaseSpinnerSmall.vue.d.ts +2 -2
- package/dist/types/src/types/Color.d.ts +9 -9
- package/dist/types/src/types/Country.d.ts +4 -4
- package/dist/types/src/types/ImagePickerResult.d.ts +5 -5
- package/dist/types/src/types/Media.d.ts +9 -9
- package/dist/types/src/types/Notification.d.ts +8 -8
- package/dist/types/src/types/Region.d.ts +5 -5
- package/dist/types/src/types/Status.d.ts +5 -5
- package/dist/types/src/types/StepperItem.d.ts +7 -7
- package/dist/types/src/types/TimelineItem.d.ts +8 -8
- package/dist/types/src/types/UploadedFile.d.ts +10 -10
- package/dist/types/src/types/User.d.ts +6 -6
- package/dist/types/src/types/index.d.ts +218 -218
- package/dist/types/src/utils/blob.d.ts +3 -3
- package/dist/types/src/utils/colors.d.ts +13 -13
- package/dist/types/src/utils/cropper/avatar.d.ts +5 -5
- package/dist/types/src/utils/cropper/cover.d.ts +5 -5
- package/dist/types/src/utils/cropper/presetInterface.d.ts +7 -7
- package/dist/types/src/utils/cropper/presets.d.ts +6 -6
- package/dist/types/src/utils/fileSizeFormat.d.ts +1 -1
- package/dist/types/src/utils/fileValidations.d.ts +2 -2
- package/dist/types/src/utils/index.d.ts +6 -6
- package/dist/types/src/utils/resizeImageFromURI.d.ts +1 -1
- package/dist/types/src/utils/scrollPreventer.d.ts +3 -3
- package/dist/types/src/utils/toHumanList.d.ts +1 -1
- package/package.json +139 -136
- package/src/assets/flatpickr.css +243 -243
- package/src/assets/form.css +6 -6
- package/src/assets/main.css +36 -36
- package/src/assets/tailwind.css +2 -2
- package/src/components/BaseActionItem.vue +68 -68
- package/src/components/BaseActionItemButton.vue +75 -75
- package/src/components/BaseAddressForm.stories.js +103 -103
- package/src/components/BaseAddressForm.vue +354 -354
- package/src/components/BaseAlert.stories.js +52 -52
- package/src/components/BaseAlert.vue +158 -158
- package/src/components/BaseApp.vue +16 -16
- package/src/components/BaseAppDialogs.vue +124 -124
- package/src/components/BaseAppNotifications.vue +76 -76
- package/src/components/BaseAutocomplete.stories.js +236 -236
- package/src/components/BaseAutocomplete.vue +523 -523
- package/src/components/BaseAutocompleteDrawer.vue +372 -372
- package/src/components/BaseAutocompleteFetch.stories.js +224 -224
- package/src/components/BaseAutocompleteFetch.vue +288 -288
- package/src/components/BaseAvatar.stories.js +39 -39
- package/src/components/BaseAvatar.vue +120 -120
- package/src/components/BaseAvatarGroup.stories.js +71 -71
- package/src/components/BaseAvatarGroup.vue +148 -148
- package/src/components/BaseBadge.stories.js +124 -124
- package/src/components/BaseBadge.vue +78 -78
- package/src/components/BaseBelongsTo.stories.js +223 -223
- package/src/components/BaseBelongsTo.vue +193 -193
- package/src/components/BaseBoolean.stories.js +35 -35
- package/src/components/BaseBoolean.vue +26 -26
- package/src/components/BaseBreadcrumbs.stories.js +45 -45
- package/src/components/BaseBreadcrumbs.vue +104 -104
- package/src/components/BaseButton.stories.js +88 -88
- package/src/components/BaseButton.vue +46 -46
- package/src/components/BaseButtonGroup.stories.js +86 -86
- package/src/components/BaseButtonGroup.vue +150 -150
- package/src/components/BaseCard.stories.js +61 -61
- package/src/components/BaseCard.vue +49 -49
- package/src/components/BaseCardRow.vue +34 -34
- package/src/components/BaseCharacterCounter.stories.js +30 -30
- package/src/components/BaseCharacterCounter.vue +64 -64
- package/src/components/BaseClickOutside.vue +37 -37
- package/src/components/BaseClipboard.stories.js +31 -31
- package/src/components/BaseClipboard.vue +99 -99
- package/src/components/BaseColor.stories.js +46 -46
- package/src/components/BaseColor.vue +154 -154
- package/src/components/BaseContainer.stories.js +34 -34
- package/src/components/BaseContainer.vue +50 -50
- package/src/components/BaseCounter.stories.js +47 -47
- package/src/components/BaseCounter.vue +82 -82
- package/src/components/BaseCropper.stories.js +113 -113
- package/src/components/BaseCropper.vue +458 -458
- package/src/components/BaseCropperModal.stories.js +54 -54
- package/src/components/BaseCropperModal.vue +143 -143
- package/src/components/BaseDataIterator.stories.js +197 -197
- package/src/components/BaseDataIterator.vue +802 -802
- package/src/components/BaseDataIteratorSectionBox.vue +36 -36
- package/src/components/BaseDataIteratorSectionButton.vue +42 -42
- package/src/components/BaseDataIteratorSectionColumns.vue +70 -70
- package/src/components/BaseDataIteratorSectionModal.vue +41 -41
- package/src/components/BaseDataTable.stories.js +341 -341
- package/src/components/BaseDataTable.vue +747 -747
- package/src/components/BaseDataTableRowAction.vue +34 -34
- package/src/components/BaseDatePicker.stories.js +130 -130
- package/src/components/BaseDatePicker.vue +296 -296
- package/src/components/BaseDateSelect.stories.js +47 -47
- package/src/components/BaseDateSelect.vue +241 -241
- package/src/components/BaseDescriptionList.stories.js +35 -35
- package/src/components/BaseDescriptionList.vue +13 -13
- package/src/components/BaseDescriptionListItem.vue +47 -47
- package/src/components/BaseDialog.stories.js +51 -51
- package/src/components/BaseDialog.vue +119 -119
- package/src/components/BaseDisplayRelativeTime.stories.js +59 -59
- package/src/components/BaseDisplayRelativeTime.vue +123 -123
- package/src/components/BaseDraggable.vue +71 -71
- package/src/components/BaseDropdown.stories.js +210 -210
- package/src/components/BaseDropdown.vue +280 -280
- package/src/components/BaseDropdownAutocomplete.stories.js +187 -187
- package/src/components/BaseDropdownAutocomplete.vue +236 -236
- package/src/components/BaseField.vue +112 -112
- package/src/components/BaseFieldI18n.stories.js +38 -38
- package/src/components/BaseFieldI18n.vue +170 -170
- package/src/components/BaseFilePicker.stories.js +84 -78
- package/src/components/BaseFilePicker.vue +166 -136
- package/src/components/BaseFilePickerCrop.stories.js +135 -134
- package/src/components/BaseFilePickerCrop.vue +130 -130
- package/src/components/BaseFileUploader.stories.js +90 -84
- package/src/components/BaseFileUploader.vue +174 -163
- package/src/components/BaseForm.stories.js +48 -46
- package/src/components/BaseForm.vue +331 -331
- package/src/components/BaseGantt.stories.js +133 -133
- package/src/components/BaseGantt.vue +336 -336
- package/src/components/BaseHasMany.stories.js +189 -189
- package/src/components/BaseHasMany.vue +137 -137
- package/src/components/BaseHeader.stories.js +127 -127
- package/src/components/BaseHeader.vue +191 -191
- package/src/components/BaseIconPicker.stories.js +22 -22
- package/src/components/BaseIconPicker.vue +225 -225
- package/src/components/BaseInput.stories.js +167 -167
- package/src/components/BaseInput.vue +264 -264
- package/src/components/BaseInputError.vue +7 -7
- package/src/components/BaseInputLabel.stories.js +36 -36
- package/src/components/BaseInputLabel.vue +75 -75
- package/src/components/BaseInputPercent.stories.js +65 -65
- package/src/components/BaseInputPercent.vue +139 -139
- package/src/components/BaseLayoutNotificationDropdown.vue +150 -150
- package/src/components/BaseLayoutNotificationItem.vue +53 -53
- package/src/components/BaseLayoutNotificationItemContent.vue +30 -30
- package/src/components/BaseLayoutSidebar.vue +236 -236
- package/src/components/BaseLayoutSidebarConfigurable.stories.js +166 -166
- package/src/components/BaseLayoutSidebarConfigurable.vue +181 -181
- package/src/components/BaseLayoutStacked.vue +52 -52
- package/src/components/BaseLayoutStackedConfigurable.stories.js +109 -109
- package/src/components/BaseLayoutStackedConfigurable.vue +158 -158
- package/src/components/BaseLoadingCover.stories.js +55 -55
- package/src/components/BaseLoadingCover.vue +101 -101
- package/src/components/BaseMediaGallery.vue +96 -96
- package/src/components/BaseMediaGalleryItem.vue +101 -101
- package/src/components/BaseMediaItem.stories.js +41 -41
- package/src/components/BaseMediaItem.vue +80 -80
- package/src/components/BaseMediaLibrary.stories.js +267 -262
- package/src/components/BaseMediaLibrary.vue +323 -318
- package/src/components/BaseMediaList.vue +68 -68
- package/src/components/BaseMediaListItem.vue +181 -181
- package/src/components/BaseMediaPictures.vue +64 -64
- package/src/components/BaseMediaPicturesItem.vue +100 -100
- package/src/components/BaseMediaPreview.stories.js +72 -72
- package/src/components/BaseMediaPreview.vue +106 -106
- package/src/components/BaseMenu.stories.js +125 -125
- package/src/components/BaseMenu.vue +165 -165
- package/src/components/BaseMenuItem.vue +118 -118
- package/src/components/BaseModalCenter.stories.js +68 -68
- package/src/components/BaseModalCenter.vue +134 -134
- package/src/components/BaseModalSide.stories.js +55 -55
- package/src/components/BaseModalSide.vue +122 -122
- package/src/components/BaseNavbar.stories.js +151 -151
- package/src/components/BaseNavbar.vue +91 -91
- package/src/components/BaseNavbarItem.vue +49 -49
- package/src/components/BaseNavbarItemContent.vue +97 -97
- package/src/components/BaseNavbarSideItem.vue +114 -114
- package/src/components/BaseNavbarSideItemContent.vue +111 -111
- package/src/components/BasePagination.stories.js +35 -35
- package/src/components/BasePagination.vue +266 -266
- package/src/components/BasePanel.stories.js +56 -56
- package/src/components/BasePanel.vue +42 -42
- package/src/components/BasePassword.stories.js +57 -57
- package/src/components/BasePassword.vue +107 -107
- package/src/components/BaseProgressCircle.stories.js +27 -27
- package/src/components/BaseProgressCircle.vue +80 -80
- package/src/components/BaseRadioGroup.stories.js +88 -88
- package/src/components/BaseRadioGroup.vue +125 -125
- package/src/components/BaseReadMore.stories.js +30 -30
- package/src/components/BaseReadMore.vue +73 -73
- package/src/components/BaseRichText.stories.js +102 -102
- package/src/components/BaseRichText.vue +182 -182
- package/src/components/BaseSelect.stories.js +118 -118
- package/src/components/BaseSelect.vue +224 -224
- package/src/components/BaseShortcut.stories.js +102 -102
- package/src/components/BaseShortcut.vue +112 -112
- package/src/components/BaseSideNavigation.stories.js +80 -80
- package/src/components/BaseSideNavigation.vue +32 -32
- package/src/components/BaseSideNavigationItem.vue +95 -95
- package/src/components/BaseSkeleton.stories.js +36 -36
- package/src/components/BaseSkeleton.vue +40 -40
- package/src/components/BaseStatistic.stories.js +51 -51
- package/src/components/BaseStatistic.vue +109 -109
- package/src/components/BaseStepper.stories.js +94 -94
- package/src/components/BaseStepper.vue +72 -72
- package/src/components/BaseStepperItem.stories.js +65 -65
- package/src/components/BaseStepperItem.vue +149 -149
- package/src/components/BaseSwitch.stories.js +130 -130
- package/src/components/BaseSwitch.vue +215 -215
- package/src/components/BaseSystemAlert.stories.js +63 -63
- package/src/components/BaseSystemAlert.vue +89 -89
- package/src/components/BaseTabItem.vue +96 -96
- package/src/components/BaseTable.vue +890 -890
- package/src/components/BaseTableColumn.vue +124 -124
- package/src/components/BaseTabs.stories.js +85 -85
- package/src/components/BaseTabs.vue +73 -73
- package/src/components/BaseTagAutocomplete.stories.js +258 -258
- package/src/components/BaseTagAutocomplete.vue +438 -438
- package/src/components/BaseTagAutocompleteFetch.stories.js +185 -185
- package/src/components/BaseTagAutocompleteFetch.vue +220 -220
- package/src/components/BaseTextarea.stories.js +58 -58
- package/src/components/BaseTextarea.vue +103 -103
- package/src/components/BaseTextareaAutoresize.stories.js +102 -102
- package/src/components/BaseTextareaAutoresize.vue +166 -166
- package/src/components/BaseTimeline.stories.js +53 -53
- package/src/components/BaseTimeline.vue +35 -35
- package/src/components/BaseTimelineItem.stories.js +78 -78
- package/src/components/BaseTimelineItem.vue +79 -79
- package/src/components/BaseUniqueCode.stories.js +36 -36
- package/src/components/BaseUniqueCode.vue +183 -183
- package/src/components/SlotComponent.ts +37 -37
- package/src/components/index.ts +194 -194
- package/src/composables/breakpoints.ts +94 -94
- package/src/composables/clickOutside.ts +80 -80
- package/src/composables/field.ts +117 -117
- package/src/composables/hasOptions.ts +68 -68
- package/src/composables/mediaQuery.ts +42 -42
- package/src/composables/modal.ts +73 -73
- package/src/composables/paginatedData.ts +65 -65
- package/src/constants/MyConstants.ts +1 -1
- package/src/constants/index.ts +5 -5
- package/src/env.d.ts +15 -15
- package/src/i18n/index.ts +60 -60
- package/src/index.ts +111 -111
- package/src/lang/en.json +1 -1
- package/src/lang/fr.json +1 -1
- package/src/services/gantt/format.ts +113 -113
- package/src/services/gantt/timescale.ts +242 -242
- package/src/services/gantt/types.ts +74 -74
- package/src/stores/dialogs.ts +45 -45
- package/src/stores/i18n.ts +14 -14
- package/src/stores/notifications.ts +47 -47
- package/src/stores/systemAlerts.ts +33 -33
- package/src/svg/BaseEmptyState.vue +38 -38
- package/src/svg/BaseSpinnerLarge.vue +59 -59
- package/src/svg/BaseSpinnerSmall.vue +15 -15
- package/src/types/Color.ts +9 -9
- package/src/types/Country.ts +4 -4
- package/src/types/ImagePickerResult.ts +5 -5
- package/src/types/Media.ts +10 -10
- package/src/types/Notification.ts +10 -10
- package/src/types/Region.ts +5 -5
- package/src/types/Status.ts +5 -5
- package/src/types/StepperItem.ts +8 -8
- package/src/types/TimelineItem.ts +8 -8
- package/src/types/UploadedFile.ts +11 -11
- package/src/types/User.ts +7 -7
- package/src/types/index.ts +267 -267
- package/src/utils/blob.ts +30 -30
- package/src/utils/colors.ts +200 -200
- package/src/utils/cropper/avatar.ts +33 -33
- package/src/utils/cropper/cover.ts +41 -41
- package/src/utils/cropper/presetInterface.ts +16 -16
- package/src/utils/cropper/presets.ts +7 -7
- package/src/utils/fileSizeFormat.ts +15 -15
- package/src/utils/fileValidations.ts +26 -26
- package/src/utils/index.ts +16 -16
- package/src/utils/resizeImageFromURI.ts +118 -118
- package/src/utils/scrollPreventer.ts +11 -11
- package/src/utils/toHumanList.ts +20 -20
|
@@ -1,166 +1,166 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div
|
|
3
|
-
ref="wrapper"
|
|
4
|
-
class="grid"
|
|
5
|
-
:style="{ maxHeight: maxHeight + 'px' }"
|
|
6
|
-
>
|
|
7
|
-
<textarea
|
|
8
|
-
ref="textareaRef"
|
|
9
|
-
:value="modelValue ?? ''"
|
|
10
|
-
:name="nameInternal"
|
|
11
|
-
:placeholder="placeholder"
|
|
12
|
-
:disabled="disabled"
|
|
13
|
-
:required="requiredInternal"
|
|
14
|
-
class="resize-none"
|
|
15
|
-
:class="textareaClasses"
|
|
16
|
-
:style="{ maxHeight: maxHeight + 'px', gridArea: BASE_GRID_AREA }"
|
|
17
|
-
:rows="rows"
|
|
18
|
-
@input="onInput"
|
|
19
|
-
@keyup="onKeyUp"
|
|
20
|
-
@keydown="onKeyDown"
|
|
21
|
-
@focus="onFocus"
|
|
22
|
-
/>
|
|
23
|
-
<div
|
|
24
|
-
class="invisible whitespace-pre-wrap"
|
|
25
|
-
:class="textareaClasses"
|
|
26
|
-
:style="{
|
|
27
|
-
content: DIV_CONTENT,
|
|
28
|
-
maxHeight: maxHeight + 'px',
|
|
29
|
-
gridArea: BASE_GRID_AREA,
|
|
30
|
-
}"
|
|
31
|
-
>
|
|
32
|
-
{{ modelValue }} {{ ' ' }}
|
|
33
|
-
</div>
|
|
34
|
-
</div>
|
|
35
|
-
</template>
|
|
36
|
-
|
|
37
|
-
<script lang="ts" setup>
|
|
38
|
-
import { useField } from '@/composables/field';
|
|
39
|
-
import { twMerge } from 'tailwind-merge';
|
|
40
|
-
import { PropType } from 'vue';
|
|
41
|
-
|
|
42
|
-
const BASE_TEXTAREA_CLASSES =
|
|
43
|
-
'py-2 px-3 font-normal text-base disabled:cursor-not-allowed disabled:text-slate-300 font-sans rounded leading-normal tracking-normal border';
|
|
44
|
-
|
|
45
|
-
const BASE_GRID_AREA = '1 / 1 / 2 / 2';
|
|
46
|
-
|
|
47
|
-
/* Note the weird space! Needed to prevent jumpy behavior */
|
|
48
|
-
const DIV_CONTENT = "attr(data-replicated-value) ' '";
|
|
49
|
-
|
|
50
|
-
const props = defineProps({
|
|
51
|
-
modelValue: {
|
|
52
|
-
default: '',
|
|
53
|
-
type: [String, null] as PropType<string | null>,
|
|
54
|
-
},
|
|
55
|
-
placeholder: {
|
|
56
|
-
default: '',
|
|
57
|
-
type: String,
|
|
58
|
-
},
|
|
59
|
-
name: {
|
|
60
|
-
required: true,
|
|
61
|
-
type: String,
|
|
62
|
-
},
|
|
63
|
-
required: {
|
|
64
|
-
default: false,
|
|
65
|
-
type: Boolean,
|
|
66
|
-
},
|
|
67
|
-
maxHeight: {
|
|
68
|
-
default: 100,
|
|
69
|
-
type: Number,
|
|
70
|
-
},
|
|
71
|
-
rows: {
|
|
72
|
-
default: 1,
|
|
73
|
-
type: Number,
|
|
74
|
-
},
|
|
75
|
-
/**
|
|
76
|
-
* Setting this to true will trigger the 'submit' event while pressing Enter.
|
|
77
|
-
* Users will be able to add a line break while pressing Shift + Enter.
|
|
78
|
-
*/
|
|
79
|
-
submitOnEnter: {
|
|
80
|
-
default: false,
|
|
81
|
-
type: Boolean,
|
|
82
|
-
},
|
|
83
|
-
disabled: {
|
|
84
|
-
default: false,
|
|
85
|
-
type: Boolean,
|
|
86
|
-
},
|
|
87
|
-
hasError: {
|
|
88
|
-
default: false,
|
|
89
|
-
type: Boolean,
|
|
90
|
-
},
|
|
91
|
-
twTextarea: {
|
|
92
|
-
default: '',
|
|
93
|
-
type: [String, Array] as PropType<string | string[]>,
|
|
94
|
-
},
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
const emit = defineEmits(['update:modelValue', 'submit', 'focus', 'input']);
|
|
98
|
-
|
|
99
|
-
const textareaRef = ref<null | HTMLTextAreaElement>(null);
|
|
100
|
-
|
|
101
|
-
const { nameInternal, requiredInternal, hasErrorInternal } =
|
|
102
|
-
useField({
|
|
103
|
-
name: computed(() => props.name),
|
|
104
|
-
required: computed(() => props.required),
|
|
105
|
-
hasError: computed(() => props.hasError),
|
|
106
|
-
emit: emit,
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
const wrapper = ref<null | HTMLDivElement>(null);
|
|
110
|
-
|
|
111
|
-
const keys = {} as { [key: string]: boolean };
|
|
112
|
-
|
|
113
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
114
|
-
function onInput(e: any) {
|
|
115
|
-
const value = e.target.value ?? '';
|
|
116
|
-
emit('update:modelValue', value);
|
|
117
|
-
emit('input', e);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
function onKeyDown(event: KeyboardEvent) {
|
|
121
|
-
keys[event.key] = true;
|
|
122
|
-
|
|
123
|
-
if (keys['Enter'] && !keys['Shift'] && props.submitOnEnter) {
|
|
124
|
-
// If submit triggers alert, Enter wont be delete from keys,
|
|
125
|
-
// manually remove it here
|
|
126
|
-
delete keys['Enter'];
|
|
127
|
-
|
|
128
|
-
// Submit event to listen to
|
|
129
|
-
emit('submit');
|
|
130
|
-
|
|
131
|
-
// Prevent adding an EOL the the textarea
|
|
132
|
-
event.preventDefault();
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
function onKeyUp(event: KeyboardEvent) {
|
|
137
|
-
delete keys[event.key];
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
function onFocus(event: FocusEvent) {
|
|
141
|
-
emit('focus', event);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
const textareaClasses = computed(() => {
|
|
145
|
-
return twMerge(
|
|
146
|
-
[
|
|
147
|
-
BASE_TEXTAREA_CLASSES,
|
|
148
|
-
hasErrorInternal.value ? 'border-red-500' : 'border-slate-300',
|
|
149
|
-
],
|
|
150
|
-
props.twTextarea
|
|
151
|
-
);
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
function focus() {
|
|
155
|
-
textareaRef.value?.focus();
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
function blur() {
|
|
159
|
-
textareaRef.value?.blur();
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
defineExpose({
|
|
163
|
-
focus,
|
|
164
|
-
blur,
|
|
165
|
-
});
|
|
166
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
ref="wrapper"
|
|
4
|
+
class="grid"
|
|
5
|
+
:style="{ maxHeight: maxHeight + 'px' }"
|
|
6
|
+
>
|
|
7
|
+
<textarea
|
|
8
|
+
ref="textareaRef"
|
|
9
|
+
:value="modelValue ?? ''"
|
|
10
|
+
:name="nameInternal"
|
|
11
|
+
:placeholder="placeholder"
|
|
12
|
+
:disabled="disabled"
|
|
13
|
+
:required="requiredInternal"
|
|
14
|
+
class="resize-none"
|
|
15
|
+
:class="textareaClasses"
|
|
16
|
+
:style="{ maxHeight: maxHeight + 'px', gridArea: BASE_GRID_AREA }"
|
|
17
|
+
:rows="rows"
|
|
18
|
+
@input="onInput"
|
|
19
|
+
@keyup="onKeyUp"
|
|
20
|
+
@keydown="onKeyDown"
|
|
21
|
+
@focus="onFocus"
|
|
22
|
+
/>
|
|
23
|
+
<div
|
|
24
|
+
class="invisible whitespace-pre-wrap"
|
|
25
|
+
:class="textareaClasses"
|
|
26
|
+
:style="{
|
|
27
|
+
content: DIV_CONTENT,
|
|
28
|
+
maxHeight: maxHeight + 'px',
|
|
29
|
+
gridArea: BASE_GRID_AREA,
|
|
30
|
+
}"
|
|
31
|
+
>
|
|
32
|
+
{{ modelValue }} {{ ' ' }}
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</template>
|
|
36
|
+
|
|
37
|
+
<script lang="ts" setup>
|
|
38
|
+
import { useField } from '@/composables/field';
|
|
39
|
+
import { twMerge } from 'tailwind-merge';
|
|
40
|
+
import { PropType } from 'vue';
|
|
41
|
+
|
|
42
|
+
const BASE_TEXTAREA_CLASSES =
|
|
43
|
+
'py-2 px-3 font-normal text-base disabled:cursor-not-allowed disabled:text-slate-300 font-sans rounded leading-normal tracking-normal border';
|
|
44
|
+
|
|
45
|
+
const BASE_GRID_AREA = '1 / 1 / 2 / 2';
|
|
46
|
+
|
|
47
|
+
/* Note the weird space! Needed to prevent jumpy behavior */
|
|
48
|
+
const DIV_CONTENT = "attr(data-replicated-value) ' '";
|
|
49
|
+
|
|
50
|
+
const props = defineProps({
|
|
51
|
+
modelValue: {
|
|
52
|
+
default: '',
|
|
53
|
+
type: [String, null] as PropType<string | null>,
|
|
54
|
+
},
|
|
55
|
+
placeholder: {
|
|
56
|
+
default: '',
|
|
57
|
+
type: String,
|
|
58
|
+
},
|
|
59
|
+
name: {
|
|
60
|
+
required: true,
|
|
61
|
+
type: String,
|
|
62
|
+
},
|
|
63
|
+
required: {
|
|
64
|
+
default: false,
|
|
65
|
+
type: Boolean,
|
|
66
|
+
},
|
|
67
|
+
maxHeight: {
|
|
68
|
+
default: 100,
|
|
69
|
+
type: Number,
|
|
70
|
+
},
|
|
71
|
+
rows: {
|
|
72
|
+
default: 1,
|
|
73
|
+
type: Number,
|
|
74
|
+
},
|
|
75
|
+
/**
|
|
76
|
+
* Setting this to true will trigger the 'submit' event while pressing Enter.
|
|
77
|
+
* Users will be able to add a line break while pressing Shift + Enter.
|
|
78
|
+
*/
|
|
79
|
+
submitOnEnter: {
|
|
80
|
+
default: false,
|
|
81
|
+
type: Boolean,
|
|
82
|
+
},
|
|
83
|
+
disabled: {
|
|
84
|
+
default: false,
|
|
85
|
+
type: Boolean,
|
|
86
|
+
},
|
|
87
|
+
hasError: {
|
|
88
|
+
default: false,
|
|
89
|
+
type: Boolean,
|
|
90
|
+
},
|
|
91
|
+
twTextarea: {
|
|
92
|
+
default: '',
|
|
93
|
+
type: [String, Array] as PropType<string | string[]>,
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
const emit = defineEmits(['update:modelValue', 'submit', 'focus', 'input']);
|
|
98
|
+
|
|
99
|
+
const textareaRef = ref<null | HTMLTextAreaElement>(null);
|
|
100
|
+
|
|
101
|
+
const { nameInternal, requiredInternal, hasErrorInternal } =
|
|
102
|
+
useField({
|
|
103
|
+
name: computed(() => props.name),
|
|
104
|
+
required: computed(() => props.required),
|
|
105
|
+
hasError: computed(() => props.hasError),
|
|
106
|
+
emit: emit,
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
const wrapper = ref<null | HTMLDivElement>(null);
|
|
110
|
+
|
|
111
|
+
const keys = {} as { [key: string]: boolean };
|
|
112
|
+
|
|
113
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
114
|
+
function onInput(e: any) {
|
|
115
|
+
const value = e.target.value ?? '';
|
|
116
|
+
emit('update:modelValue', value);
|
|
117
|
+
emit('input', e);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function onKeyDown(event: KeyboardEvent) {
|
|
121
|
+
keys[event.key] = true;
|
|
122
|
+
|
|
123
|
+
if (keys['Enter'] && !keys['Shift'] && props.submitOnEnter) {
|
|
124
|
+
// If submit triggers alert, Enter wont be delete from keys,
|
|
125
|
+
// manually remove it here
|
|
126
|
+
delete keys['Enter'];
|
|
127
|
+
|
|
128
|
+
// Submit event to listen to
|
|
129
|
+
emit('submit');
|
|
130
|
+
|
|
131
|
+
// Prevent adding an EOL the the textarea
|
|
132
|
+
event.preventDefault();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function onKeyUp(event: KeyboardEvent) {
|
|
137
|
+
delete keys[event.key];
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function onFocus(event: FocusEvent) {
|
|
141
|
+
emit('focus', event);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
const textareaClasses = computed(() => {
|
|
145
|
+
return twMerge(
|
|
146
|
+
[
|
|
147
|
+
BASE_TEXTAREA_CLASSES,
|
|
148
|
+
hasErrorInternal.value ? 'border-red-500' : 'border-slate-300',
|
|
149
|
+
],
|
|
150
|
+
props.twTextarea
|
|
151
|
+
);
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
function focus() {
|
|
155
|
+
textareaRef.value?.focus();
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
function blur() {
|
|
159
|
+
textareaRef.value?.blur();
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
defineExpose({
|
|
163
|
+
focus,
|
|
164
|
+
blur,
|
|
165
|
+
});
|
|
166
|
+
</script>
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import BaseTimeline from './BaseTimeline.vue';
|
|
2
|
-
|
|
3
|
-
export default {
|
|
4
|
-
title: '
|
|
5
|
-
component: BaseTimeline,
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
const Template = (args) => ({
|
|
9
|
-
components: { BaseTimeline },
|
|
10
|
-
setup() {
|
|
11
|
-
return { args };
|
|
12
|
-
},
|
|
13
|
-
template: `<div class="max-w-md"><BaseTimeline v-bind="args"/></div>`,
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
const items = [
|
|
17
|
-
{
|
|
18
|
-
title: 'Advanced to phone screening by Bethany Blake',
|
|
19
|
-
icon: 'heroicons:shield-check-20-solid',
|
|
20
|
-
description:
|
|
21
|
-
'Lorem nostrud quis aute elit ea Lorem magna eiusmod ipsum. Eu ipsum eiusmod ad minim adipisicing irure. Fugiat ut adipisicing consequat dolor.',
|
|
22
|
-
color: null,
|
|
23
|
-
date: '15 Jan',
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
title: 'Advanced to phone screening by Bethany Blake',
|
|
27
|
-
icon: 'heroicons:shield-check-20-solid',
|
|
28
|
-
description:
|
|
29
|
-
'Lorem nostrud quis aute elit ea Lorem magna eiusmod ipsum. Eu ipsum eiusmod ad minim adipisicing irure. Fugiat ut adipisicing consequat dolor.',
|
|
30
|
-
color: 'danger',
|
|
31
|
-
date: null,
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
title: 'Advanced to phone screening by Bethany Blake',
|
|
35
|
-
icon: 'heroicons:shield-check-20-solid',
|
|
36
|
-
description:
|
|
37
|
-
'Lorem nostrud quis aute elit ea Lorem magna eiusmod ipsum. Eu ipsum eiusmod ad minim adipisicing irure. Fugiat ut adipisicing consequat dolor.',
|
|
38
|
-
color: 'success',
|
|
39
|
-
date: '15 Jan',
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
title: 'Advanced to phone screening by Bethany Blake',
|
|
43
|
-
icon: 'heroicons:shield-check-20-solid',
|
|
44
|
-
description: '',
|
|
45
|
-
color: 'info',
|
|
46
|
-
date: '15 Jan',
|
|
47
|
-
},
|
|
48
|
-
];
|
|
49
|
-
|
|
50
|
-
export const Demo = Template.bind({});
|
|
51
|
-
Demo.args = {
|
|
52
|
-
items: items,
|
|
53
|
-
};
|
|
1
|
+
import BaseTimeline from './BaseTimeline.vue';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Data/BaseTimeline',
|
|
5
|
+
component: BaseTimeline,
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const Template = (args) => ({
|
|
9
|
+
components: { BaseTimeline },
|
|
10
|
+
setup() {
|
|
11
|
+
return { args };
|
|
12
|
+
},
|
|
13
|
+
template: `<div class="max-w-md"><BaseTimeline v-bind="args"/></div>`,
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
const items = [
|
|
17
|
+
{
|
|
18
|
+
title: 'Advanced to phone screening by Bethany Blake',
|
|
19
|
+
icon: 'heroicons:shield-check-20-solid',
|
|
20
|
+
description:
|
|
21
|
+
'Lorem nostrud quis aute elit ea Lorem magna eiusmod ipsum. Eu ipsum eiusmod ad minim adipisicing irure. Fugiat ut adipisicing consequat dolor.',
|
|
22
|
+
color: null,
|
|
23
|
+
date: '15 Jan',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
title: 'Advanced to phone screening by Bethany Blake',
|
|
27
|
+
icon: 'heroicons:shield-check-20-solid',
|
|
28
|
+
description:
|
|
29
|
+
'Lorem nostrud quis aute elit ea Lorem magna eiusmod ipsum. Eu ipsum eiusmod ad minim adipisicing irure. Fugiat ut adipisicing consequat dolor.',
|
|
30
|
+
color: 'danger',
|
|
31
|
+
date: null,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: 'Advanced to phone screening by Bethany Blake',
|
|
35
|
+
icon: 'heroicons:shield-check-20-solid',
|
|
36
|
+
description:
|
|
37
|
+
'Lorem nostrud quis aute elit ea Lorem magna eiusmod ipsum. Eu ipsum eiusmod ad minim adipisicing irure. Fugiat ut adipisicing consequat dolor.',
|
|
38
|
+
color: 'success',
|
|
39
|
+
date: '15 Jan',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
title: 'Advanced to phone screening by Bethany Blake',
|
|
43
|
+
icon: 'heroicons:shield-check-20-solid',
|
|
44
|
+
description: '',
|
|
45
|
+
color: 'info',
|
|
46
|
+
date: '15 Jan',
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
|
|
50
|
+
export const Demo = Template.bind({});
|
|
51
|
+
Demo.args = {
|
|
52
|
+
items: items,
|
|
53
|
+
};
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="flow-root">
|
|
3
|
-
<ul
|
|
4
|
-
role="list"
|
|
5
|
-
class="-mb-8"
|
|
6
|
-
>
|
|
7
|
-
<li
|
|
8
|
-
v-for="(item, index) in items"
|
|
9
|
-
:key="index"
|
|
10
|
-
>
|
|
11
|
-
<div class="relative pb-8">
|
|
12
|
-
<span
|
|
13
|
-
v-if="index != items.length - 1"
|
|
14
|
-
class="absolute top-4 left-4 -ml-px h-full w-0.5 bg-slate-200"
|
|
15
|
-
aria-hidden="true"
|
|
16
|
-
/>
|
|
17
|
-
<BaseTimelineItem :item="item" />
|
|
18
|
-
</div>
|
|
19
|
-
</li>
|
|
20
|
-
</ul>
|
|
21
|
-
</div>
|
|
22
|
-
</template>
|
|
23
|
-
|
|
24
|
-
<script lang="ts" setup>
|
|
25
|
-
import { TimelineItem } from '../types/TimelineItem';
|
|
26
|
-
import { PropType } from 'vue';
|
|
27
|
-
import BaseTimelineItem from './BaseTimelineItem.vue';
|
|
28
|
-
|
|
29
|
-
defineProps({
|
|
30
|
-
items: {
|
|
31
|
-
required: true,
|
|
32
|
-
type: Array as PropType<TimelineItem[]>,
|
|
33
|
-
},
|
|
34
|
-
});
|
|
35
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="flow-root">
|
|
3
|
+
<ul
|
|
4
|
+
role="list"
|
|
5
|
+
class="-mb-8"
|
|
6
|
+
>
|
|
7
|
+
<li
|
|
8
|
+
v-for="(item, index) in items"
|
|
9
|
+
:key="index"
|
|
10
|
+
>
|
|
11
|
+
<div class="relative pb-8">
|
|
12
|
+
<span
|
|
13
|
+
v-if="index != items.length - 1"
|
|
14
|
+
class="absolute top-4 left-4 -ml-px h-full w-0.5 bg-slate-200"
|
|
15
|
+
aria-hidden="true"
|
|
16
|
+
/>
|
|
17
|
+
<BaseTimelineItem :item="item" />
|
|
18
|
+
</div>
|
|
19
|
+
</li>
|
|
20
|
+
</ul>
|
|
21
|
+
</div>
|
|
22
|
+
</template>
|
|
23
|
+
|
|
24
|
+
<script lang="ts" setup>
|
|
25
|
+
import { TimelineItem } from '../types/TimelineItem';
|
|
26
|
+
import { PropType } from 'vue';
|
|
27
|
+
import BaseTimelineItem from './BaseTimelineItem.vue';
|
|
28
|
+
|
|
29
|
+
defineProps({
|
|
30
|
+
items: {
|
|
31
|
+
required: true,
|
|
32
|
+
type: Array as PropType<TimelineItem[]>,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
</script>
|
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
import BaseTimelineItem from './BaseTimelineItem.vue';
|
|
2
|
-
|
|
3
|
-
const colors = [
|
|
4
|
-
'primary',
|
|
5
|
-
'success',
|
|
6
|
-
'danger',
|
|
7
|
-
'warning',
|
|
8
|
-
'info',
|
|
9
|
-
'grey',
|
|
10
|
-
'black',
|
|
11
|
-
];
|
|
12
|
-
|
|
13
|
-
export default {
|
|
14
|
-
title: '
|
|
15
|
-
component: BaseTimelineItem,
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
const Template = (args) => ({
|
|
19
|
-
components: { BaseTimelineItem },
|
|
20
|
-
setup() {
|
|
21
|
-
return { args };
|
|
22
|
-
},
|
|
23
|
-
template: `<div class="max-w-md"><BaseTimelineItem v-bind="args"/></div>`,
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
const ColorsTemplate = (args) => ({
|
|
27
|
-
components: { BaseTimelineItem },
|
|
28
|
-
setup() {
|
|
29
|
-
const items = colors.map((color) => {
|
|
30
|
-
return {
|
|
31
|
-
title: 'Advanced to phone screening by Bethany Blake',
|
|
32
|
-
icon: 'heroicons:shield-check-20-solid',
|
|
33
|
-
description:
|
|
34
|
-
'Lorem nostrud quis aute elit ea Lorem magna eiusmod ipsum. Eu ipsum eiusmod ad minim adipisicing irure. Fugiat ut adipisicing consequat dolor.',
|
|
35
|
-
color: color,
|
|
36
|
-
date: '15 Jan',
|
|
37
|
-
};
|
|
38
|
-
});
|
|
39
|
-
return { args, items };
|
|
40
|
-
},
|
|
41
|
-
template: `
|
|
42
|
-
<div class="max-w-md">
|
|
43
|
-
<ul role="list" class="-mb-8">
|
|
44
|
-
<li v-for="(item, index) in items" :key="index">
|
|
45
|
-
<p class="text-xs text-slate-600 leading-tight mb-4">{{ item.color }}</p>
|
|
46
|
-
<div class="relative pb-8">
|
|
47
|
-
<BaseTimelineItem :item="item" />
|
|
48
|
-
</div>
|
|
49
|
-
</li>
|
|
50
|
-
</ul>
|
|
51
|
-
</div>
|
|
52
|
-
`,
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
export const Simple = Template.bind({});
|
|
56
|
-
Simple.args = {
|
|
57
|
-
item: {
|
|
58
|
-
title: 'Advanced to phone screening by Bethany Blake',
|
|
59
|
-
icon: 'heroicons:shield-check-20-solid',
|
|
60
|
-
description: '',
|
|
61
|
-
color: 'warning',
|
|
62
|
-
date: '15 Jan',
|
|
63
|
-
},
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
export const WithDescription = Template.bind({});
|
|
67
|
-
WithDescription.args = {
|
|
68
|
-
item: {
|
|
69
|
-
title: 'Advanced to phone screening by Bethany Blake',
|
|
70
|
-
icon: 'heroicons:shield-check-20-solid',
|
|
71
|
-
description:
|
|
72
|
-
'Lorem nostrud quis aute elit ea Lorem magna eiusmod ipsum. Eu ipsum eiusmod ad minim adipisicing irure. Fugiat ut adipisicing consequat dolor.',
|
|
73
|
-
color: 'primary',
|
|
74
|
-
date: '15 Jan',
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
export const Colors = ColorsTemplate.bind({});
|
|
1
|
+
import BaseTimelineItem from './BaseTimelineItem.vue';
|
|
2
|
+
|
|
3
|
+
const colors = [
|
|
4
|
+
'primary',
|
|
5
|
+
'success',
|
|
6
|
+
'danger',
|
|
7
|
+
'warning',
|
|
8
|
+
'info',
|
|
9
|
+
'grey',
|
|
10
|
+
'black',
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
export default {
|
|
14
|
+
title: 'Data/BaseTimelineItem',
|
|
15
|
+
component: BaseTimelineItem,
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const Template = (args) => ({
|
|
19
|
+
components: { BaseTimelineItem },
|
|
20
|
+
setup() {
|
|
21
|
+
return { args };
|
|
22
|
+
},
|
|
23
|
+
template: `<div class="max-w-md"><BaseTimelineItem v-bind="args"/></div>`,
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const ColorsTemplate = (args) => ({
|
|
27
|
+
components: { BaseTimelineItem },
|
|
28
|
+
setup() {
|
|
29
|
+
const items = colors.map((color) => {
|
|
30
|
+
return {
|
|
31
|
+
title: 'Advanced to phone screening by Bethany Blake',
|
|
32
|
+
icon: 'heroicons:shield-check-20-solid',
|
|
33
|
+
description:
|
|
34
|
+
'Lorem nostrud quis aute elit ea Lorem magna eiusmod ipsum. Eu ipsum eiusmod ad minim adipisicing irure. Fugiat ut adipisicing consequat dolor.',
|
|
35
|
+
color: color,
|
|
36
|
+
date: '15 Jan',
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
return { args, items };
|
|
40
|
+
},
|
|
41
|
+
template: `
|
|
42
|
+
<div class="max-w-md">
|
|
43
|
+
<ul role="list" class="-mb-8">
|
|
44
|
+
<li v-for="(item, index) in items" :key="index">
|
|
45
|
+
<p class="text-xs text-slate-600 leading-tight mb-4">{{ item.color }}</p>
|
|
46
|
+
<div class="relative pb-8">
|
|
47
|
+
<BaseTimelineItem :item="item" />
|
|
48
|
+
</div>
|
|
49
|
+
</li>
|
|
50
|
+
</ul>
|
|
51
|
+
</div>
|
|
52
|
+
`,
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
export const Simple = Template.bind({});
|
|
56
|
+
Simple.args = {
|
|
57
|
+
item: {
|
|
58
|
+
title: 'Advanced to phone screening by Bethany Blake',
|
|
59
|
+
icon: 'heroicons:shield-check-20-solid',
|
|
60
|
+
description: '',
|
|
61
|
+
color: 'warning',
|
|
62
|
+
date: '15 Jan',
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export const WithDescription = Template.bind({});
|
|
67
|
+
WithDescription.args = {
|
|
68
|
+
item: {
|
|
69
|
+
title: 'Advanced to phone screening by Bethany Blake',
|
|
70
|
+
icon: 'heroicons:shield-check-20-solid',
|
|
71
|
+
description:
|
|
72
|
+
'Lorem nostrud quis aute elit ea Lorem magna eiusmod ipsum. Eu ipsum eiusmod ad minim adipisicing irure. Fugiat ut adipisicing consequat dolor.',
|
|
73
|
+
color: 'primary',
|
|
74
|
+
date: '15 Jan',
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export const Colors = ColorsTemplate.bind({});
|