sprintify-ui 0.2.0 → 0.2.1

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 (95) hide show
  1. package/dist/sprintify-ui.es.js +1146 -1146
  2. package/dist/style.css +1 -1
  3. package/package.json +2 -4
  4. package/src/assets/main.css +3 -3
  5. package/src/components/BaseActionItem.vue +9 -4
  6. package/src/components/BaseActionItemButton.vue +1 -1
  7. package/src/components/BaseAddressForm.vue +6 -5
  8. package/src/components/BaseAlert.vue +8 -2
  9. package/src/components/BaseAppNotifications.vue +4 -1
  10. package/src/components/BaseAutocomplete.vue +18 -9
  11. package/src/components/BaseAutocompleteDrawer.vue +28 -10
  12. package/src/components/BaseAutocompleteFetch.vue +14 -3
  13. package/src/components/BaseAvatar.vue +1 -1
  14. package/src/components/BaseBadge.vue +1 -2
  15. package/src/components/BaseBelongsTo.vue +12 -3
  16. package/src/components/BaseBreadcrumbs.vue +8 -2
  17. package/src/components/BaseButton.vue +9 -2
  18. package/src/components/BaseButtonGroup.vue +4 -1
  19. package/src/components/BaseCharacterCounter.vue +4 -1
  20. package/src/components/BaseClickOutside.vue +1 -1
  21. package/src/components/BaseClipboard.vue +5 -2
  22. package/src/components/BaseColor.vue +4 -1
  23. package/src/components/BaseCropper.vue +17 -5
  24. package/src/components/BaseCropperModal.vue +4 -1
  25. package/src/components/BaseDataIterator.vue +29 -11
  26. package/src/components/BaseDataIteratorSectionBox.vue +5 -2
  27. package/src/components/BaseDataIteratorSectionButton.vue +6 -4
  28. package/src/components/BaseDataIteratorSectionColumns.vue +5 -2
  29. package/src/components/BaseDataTable.vue +43 -20
  30. package/src/components/BaseDataTableRowAction.vue +8 -2
  31. package/src/components/BaseDatePicker.vue +5 -2
  32. package/src/components/BaseDateSelect.vue +33 -6
  33. package/src/components/BaseDisplayRelativeTime.vue +4 -1
  34. package/src/components/BaseDraggable.vue +1 -1
  35. package/src/components/BaseDropdown.vue +16 -5
  36. package/src/components/BaseDropdownAutocomplete.vue +8 -4
  37. package/src/components/BaseField.vue +5 -2
  38. package/src/components/BaseFieldI18n.vue +10 -2
  39. package/src/components/BaseFilePicker.vue +6 -2
  40. package/src/components/BaseFilePickerCrop.vue +4 -1
  41. package/src/components/BaseForm.vue +9 -2
  42. package/src/components/BaseHasMany.vue +16 -4
  43. package/src/components/BaseHeader.vue +4 -1
  44. package/src/components/BaseIconPicker.vue +14 -4
  45. package/src/components/BaseInput.vue +10 -7
  46. package/src/components/BaseInputError.vue +1 -1
  47. package/src/components/BaseInputLabel.vue +4 -1
  48. package/src/components/BaseInputPercent.vue +1 -1
  49. package/src/components/BaseLayoutNotificationDropdown.vue +11 -5
  50. package/src/components/BaseLayoutNotificationItem.vue +15 -5
  51. package/src/components/BaseLayoutNotificationItemContent.vue +5 -2
  52. package/src/components/BaseLayoutSidebar.vue +22 -5
  53. package/src/components/BaseLayoutSidebarConfigurable.vue +19 -5
  54. package/src/components/BaseLayoutStackedConfigurable.vue +24 -7
  55. package/src/components/BaseMediaGallery.vue +4 -1
  56. package/src/components/BaseMediaGalleryItem.vue +13 -4
  57. package/src/components/BaseMediaItem.vue +12 -3
  58. package/src/components/BaseMediaLibrary.vue +10 -5
  59. package/src/components/BaseMediaList.vue +1 -1
  60. package/src/components/BaseMediaListItem.vue +15 -6
  61. package/src/components/BaseMediaPictures.vue +1 -1
  62. package/src/components/BaseMediaPicturesItem.vue +9 -3
  63. package/src/components/BaseMediaPreview.vue +2 -2
  64. package/src/components/BaseMenu.vue +37 -9
  65. package/src/components/BaseMenuItem.vue +14 -3
  66. package/src/components/BaseModalCenter.vue +4 -1
  67. package/src/components/BaseNavbarItemContent.vue +14 -3
  68. package/src/components/BaseNavbarSideItem.vue +4 -1
  69. package/src/components/BaseNavbarSideItemContent.vue +9 -2
  70. package/src/components/BaseNumber.vue +7 -4
  71. package/src/components/BasePagination.vue +2 -2
  72. package/src/components/BasePanel.vue +4 -1
  73. package/src/components/BasePassword.vue +6 -2
  74. package/src/components/BaseProgressCircle.vue +4 -1
  75. package/src/components/BaseRadioGroup.vue +5 -2
  76. package/src/components/BaseRichText.vue +1 -2
  77. package/src/components/BaseSelect.vue +6 -2
  78. package/src/components/BaseShortcut.vue +11 -4
  79. package/src/components/BaseSideNavigation.vue +4 -1
  80. package/src/components/BaseSideNavigationItem.vue +5 -2
  81. package/src/components/BaseSkeleton.vue +2 -2
  82. package/src/components/BaseStatistic.vue +15 -4
  83. package/src/components/BaseStepper.vue +4 -1
  84. package/src/components/BaseSwitch.stories.js +0 -1
  85. package/src/components/BaseSwitch.vue +8 -2
  86. package/src/components/BaseSystemAlert.vue +4 -1
  87. package/src/components/BaseTabItem.vue +5 -2
  88. package/src/components/BaseTable.vue +19 -9
  89. package/src/components/BaseTagAutocomplete.vue +13 -4
  90. package/src/components/BaseTagAutocompleteFetch.vue +18 -4
  91. package/src/components/BaseTextareaAutoresize.vue +6 -2
  92. package/src/components/BaseTimeline.vue +8 -2
  93. package/src/svg/BaseEmptyState.vue +5 -1
  94. package/src/svg/BaseSpinnerLarge.vue +15 -3
  95. package/src/svg/BaseSpinnerSmall.vue +8 -2
@@ -2,7 +2,10 @@
2
2
  <div class="rounded bg-white shadow">
3
3
  <div class="relative flex">
4
4
  <div class="shrink-0">
5
- <BaseMediaPreview class="h-12 w-12 rounded-l" :media="media" />
5
+ <BaseMediaPreview
6
+ class="h-12 w-12 rounded-l"
7
+ :media="media"
8
+ />
6
9
  </div>
7
10
  <component
8
11
  :is="url ? 'a' : 'p'"
@@ -19,13 +22,19 @@
19
22
  </p>
20
23
  </div>
21
24
  </component>
22
- <div v-if="showRemove" class="shrink-0 p-0.5">
25
+ <div
26
+ v-if="showRemove"
27
+ class="shrink-0 p-0.5"
28
+ >
23
29
  <button
24
30
  type="button"
25
31
  class="rounded-full bg-white p-1 text-slate-400 hover:bg-slate-100"
26
32
  @click="$emit('remove')"
27
33
  >
28
- <BaseIcon icon="heroicons:x-mark-20-solid" class="h-4 w-4"></BaseIcon>
34
+ <BaseIcon
35
+ icon="heroicons:x-mark-20-solid"
36
+ class="h-4 w-4"
37
+ />
29
38
  </button>
30
39
  </div>
31
40
  </div>
@@ -42,7 +42,9 @@
42
42
  </p>
43
43
 
44
44
  <div class="mt-1 text-xs leading-tight text-slate-500">
45
- <p v-if="maxFileText">{{ maxFileText }}</p>
45
+ <p v-if="maxFileText">
46
+ {{ maxFileText }}
47
+ </p>
46
48
  <p>{{ maxFileSize }}</p>
47
49
  </div>
48
50
  </div>
@@ -52,7 +54,10 @@
52
54
  </template>
53
55
  </BaseFileUploader>
54
56
 
55
- <div v-if="normalizedModelValue.length" class="mt-5">
57
+ <div
58
+ v-if="normalizedModelValue.length"
59
+ class="mt-5"
60
+ >
56
61
  <slot
57
62
  :model-value="normalizedModelValue"
58
63
  name="list"
@@ -69,7 +74,7 @@
69
74
  :draggable="draggable"
70
75
  @update:model-value="sync"
71
76
  @remove="promptRemove($event)"
72
- ></BaseMediaPictures>
77
+ />
73
78
 
74
79
  <BaseMediaList
75
80
  v-else-if="layout == 'list'"
@@ -79,7 +84,7 @@
79
84
  :draggable="draggable"
80
85
  @update:model-value="sync"
81
86
  @remove="promptRemove($event)"
82
- ></BaseMediaList>
87
+ />
83
88
 
84
89
  <BaseMediaGallery
85
90
  v-else-if="layout == 'gallery'"
@@ -89,7 +94,7 @@
89
94
  :draggable="draggable"
90
95
  @update:model-value="sync"
91
96
  @remove="promptRemove($event)"
92
- ></BaseMediaGallery>
97
+ />
93
98
  </slot>
94
99
  </div>
95
100
  </div>
@@ -17,7 +17,7 @@
17
17
  @update="onItemUpdate(index, $event)"
18
18
  @remove="$emit('remove', index)"
19
19
  @save:name="$emit('save:name', index, $event)"
20
- ></BaseMediaListItem>
20
+ />
21
21
  </div>
22
22
  </template>
23
23
  </BaseDraggable>
@@ -3,14 +3,20 @@
3
3
  class="group flex h-10 items-center justify-between"
4
4
  :class="[draggable ? 'pr-2' : 'px-2']"
5
5
  >
6
- <div v-if="draggable && !disabled" class="handle shrink-0 cursor-move px-1">
7
- <BaseIcon icon="mdi:drag" class="h-5 w-5 text-slate-400"></BaseIcon>
6
+ <div
7
+ v-if="draggable && !disabled"
8
+ class="handle shrink-0 cursor-move px-1"
9
+ >
10
+ <BaseIcon
11
+ icon="mdi:drag"
12
+ class="h-5 w-5 text-slate-400"
13
+ />
8
14
  </div>
9
15
  <div class="mr-2 shrink-0">
10
16
  <BaseIcon
11
17
  icon="heroicons-solid:paper-clip"
12
18
  class="h-5 w-5 shrink-0 text-slate-400"
13
- ></BaseIcon>
19
+ />
14
20
  </div>
15
21
  <div class="flex grow items-center gap-3 overflow-hidden">
16
22
  <div
@@ -31,12 +37,15 @@
31
37
  <BaseIcon
32
38
  icon="heroicons-solid:pencil"
33
39
  class="h-5 w-5 shrink-0 text-slate-400"
34
- ></BaseIcon>
40
+ />
35
41
  </div>
36
42
  </button>
37
43
  </div>
38
44
 
39
- <div v-else class="flex grow items-center py-1">
45
+ <div
46
+ v-else
47
+ class="flex grow items-center py-1"
48
+ >
40
49
  <input
41
50
  ref="inputRef"
42
51
  class="h-8 w-full max-w-md rounded border border-slate-300 px-2 py-0 focus:ring-0"
@@ -46,7 +55,7 @@
46
55
  @input="onNameChange"
47
56
  @keydown.enter.prevent="saveName"
48
57
  @keydown.escape.prevent="viewMode = 'show'"
49
- />
58
+ >
50
59
 
51
60
  <div class="flex shrink-0 items-center">
52
61
  <button
@@ -16,7 +16,7 @@
16
16
  :size="size"
17
17
  :disabled="disabled"
18
18
  @remove="$emit('remove', index)"
19
- ></BaseMediaPicturesItem>
19
+ />
20
20
  </div>
21
21
  </template>
22
22
  </BaseDraggable>
@@ -16,7 +16,7 @@
16
16
  height: size + 'px',
17
17
  }"
18
18
  class="overflow-hidden rounded-lg object-cover"
19
- />
19
+ >
20
20
  <div class="absolute -top-2 -right-2 flex gap-1">
21
21
  <a
22
22
  v-if="url"
@@ -24,7 +24,10 @@
24
24
  target="_blank"
25
25
  class="btn btn-white rounded-full p-1 shadow-sm ring-1 ring-black ring-opacity-10"
26
26
  >
27
- <BaseIcon class="h-4 w-4" icon="mdi:download"></BaseIcon>
27
+ <BaseIcon
28
+ class="h-4 w-4"
29
+ icon="mdi:download"
30
+ />
28
31
  </a>
29
32
  <button
30
33
  v-if="showRemove"
@@ -33,7 +36,10 @@
33
36
  class="btn btn-white rounded-full p-1 shadow-sm ring-1 ring-black ring-opacity-10 disabled:bg-white disabled:opacity-70"
34
37
  @click="$emit('remove')"
35
38
  >
36
- <BaseIcon class="h-4 w-4" icon="mdi:close"></BaseIcon>
39
+ <BaseIcon
40
+ class="h-4 w-4"
41
+ icon="mdi:close"
42
+ />
37
43
  </button>
38
44
  </div>
39
45
  </div>
@@ -12,13 +12,13 @@
12
12
  :src="url"
13
13
  class="h-full w-full bg-black object-contain object-center"
14
14
  :alt="name"
15
- />
15
+ >
16
16
  <img
17
17
  v-else-if="type == 'image' && 'data_url' in media && previewImage"
18
18
  :src="media.data_url"
19
19
  class="h-full w-full bg-black object-contain object-center"
20
20
  :alt="name"
21
- />
21
+ >
22
22
  <div
23
23
  v-else
24
24
  class="flex h-full w-full items-center justify-center bg-slate-100"
@@ -7,7 +7,10 @@
7
7
  >
8
8
  <div>
9
9
  <MenuButton :class="twButton">
10
- <slot name="button" :open="open" />
10
+ <slot
11
+ name="button"
12
+ :open="open"
13
+ />
11
14
  </MenuButton>
12
15
  </div>
13
16
 
@@ -24,13 +27,31 @@
24
27
  :class="twMerge('w-48', twMenu)"
25
28
  class="absolute z-menu mt-2 rounded-md bg-white p-1 shadow-lg outline-none ring-1 ring-black ring-opacity-10 focus:outline-none"
26
29
  >
27
- <slot name="items" :items="items">
28
- <template v-for="item in items" :key="item.label + 'link'">
29
- <div v-if="item.line" class="-mx-1 my-1 flex h-px bg-slate-200" />
30
+ <slot
31
+ name="items"
32
+ :items="items"
33
+ >
34
+ <template
35
+ v-for="item in items"
36
+ :key="item.label + 'link'"
37
+ >
38
+ <div
39
+ v-if="item.line"
40
+ class="-mx-1 my-1 flex h-px bg-slate-200"
41
+ />
30
42
 
31
- <MenuItem v-else-if="item.to" v-slot="{ active, close }">
32
- <RouterLink :to="item.to" @mouseup="close">
33
- <slot name="item" :item="item">
43
+ <MenuItem
44
+ v-else-if="item.to"
45
+ v-slot="{ active, close }"
46
+ >
47
+ <RouterLink
48
+ :to="item.to"
49
+ @mouseup="close"
50
+ >
51
+ <slot
52
+ name="item"
53
+ :item="item"
54
+ >
34
55
  <BaseMenuItem
35
56
  :label="item.label"
36
57
  :count="item.count"
@@ -49,7 +70,10 @@
49
70
  as="a"
50
71
  :href="item.href"
51
72
  >
52
- <slot name="item" :item="item">
73
+ <slot
74
+ name="item"
75
+ :item="item"
76
+ >
53
77
  <BaseMenuItem
54
78
  :label="item.label"
55
79
  :count="item.count"
@@ -69,7 +93,11 @@
69
93
  class="w-full"
70
94
  @click="item.action"
71
95
  >
72
- <slot name="item" :item="item" :active="active">
96
+ <slot
97
+ name="item"
98
+ :item="item"
99
+ :active="active"
100
+ >
73
101
  <BaseMenuItem
74
102
  :label="item.label"
75
103
  :count="item.count"
@@ -1,11 +1,22 @@
1
1
  <template>
2
2
  <div :class="buttonClasses">
3
3
  <div class="flex items-center">
4
- <BaseIcon v-if="icon" :icon="icon" :class="iconClasses" />
4
+ <BaseIcon
5
+ v-if="icon"
6
+ :icon="icon"
7
+ :class="iconClasses"
8
+ />
5
9
  <span :class="textSize">{{ label }}</span>
6
10
  </div>
7
- <div v-if="count" class="relative -top-px ml-[5px]">
8
- <BaseCounter :count="count" :max-digit="2" :color="color" />
11
+ <div
12
+ v-if="count"
13
+ class="relative -top-px ml-[5px]"
14
+ >
15
+ <BaseCounter
16
+ :count="count"
17
+ :max-digit="2"
18
+ :color="color"
19
+ />
9
20
  </div>
10
21
  </div>
11
22
  </template>
@@ -78,7 +78,10 @@
78
78
  type="button"
79
79
  @click="modal.close()"
80
80
  >
81
- <BaseIcon class="h-8 w-8 text-white" icon="heroicons:x-mark" />
81
+ <BaseIcon
82
+ class="h-8 w-8 text-white"
83
+ icon="heroicons:x-mark"
84
+ />
82
85
  </button>
83
86
  </div>
84
87
  </div>
@@ -1,11 +1,22 @@
1
1
  <template>
2
2
  <div :class="classes">
3
3
  <div class="group flex grow items-center">
4
- <BaseIcon v-if="icon" :icon="icon" :class="iconClasses" />
4
+ <BaseIcon
5
+ v-if="icon"
6
+ :icon="icon"
7
+ :class="iconClasses"
8
+ />
5
9
  <span :class="[sizeClasses]">{{ label }}</span>
6
10
  </div>
7
- <div v-if="count" class="relative -top-px ml-[5px]">
8
- <BaseCounter :count="count" :max-digit="2" :color="'primary'" />
11
+ <div
12
+ v-if="count"
13
+ class="relative -top-px ml-[5px]"
14
+ >
15
+ <BaseCounter
16
+ :count="count"
17
+ :max-digit="2"
18
+ :color="'primary'"
19
+ />
9
20
  </div>
10
21
  </div>
11
22
  </template>
@@ -24,7 +24,10 @@
24
24
  v-if="showSubActions && item.actions && item.actions.length"
25
25
  class="mt-2 mb-3"
26
26
  >
27
- <div v-for="subItem in item.actions" :key="subItem.label">
27
+ <div
28
+ v-for="subItem in item.actions"
29
+ :key="subItem.label"
30
+ >
28
31
  <BaseActionItem
29
32
  :to="subItem.to"
30
33
  :href="subItem.href"
@@ -1,10 +1,17 @@
1
1
  <template>
2
2
  <div :class="classes">
3
3
  <div class="group flex grow items-center">
4
- <BaseIcon v-if="icon" :icon="icon" :class="iconClasses" />
4
+ <BaseIcon
5
+ v-if="icon"
6
+ :icon="icon"
7
+ :class="iconClasses"
8
+ />
5
9
  <span>{{ label }}</span>
6
10
  </div>
7
- <div v-if="count" class="relative -top-px ml-[5px]">
11
+ <div
12
+ v-if="count"
13
+ class="relative -top-px ml-[5px]"
14
+ >
8
15
  <BaseCounter
9
16
  :size="size"
10
17
  :count="count"
@@ -8,7 +8,10 @@
8
8
  leave-from-class="transform scale-100 opacity-100"
9
9
  leave-to-class="transform scale-90 opacity-0"
10
10
  >
11
- <div v-if="showInvalidInput" class="absolute left-0 top-full z-[1]">
11
+ <div
12
+ v-if="showInvalidInput"
13
+ class="absolute left-0 top-full z-[1]"
14
+ >
12
15
  <div
13
16
  class="mt-1 ml-1 rounded bg-red-500 px-2 py-1 text-xs font-medium text-white"
14
17
  >
@@ -47,7 +50,7 @@
47
50
  @blur="onBlur"
48
51
  @focus="onFocus"
49
52
  @keydown="onKeydown"
50
- />
53
+ >
51
54
  <div class="border-l border-slate-300">
52
55
  <button
53
56
  type="button"
@@ -56,7 +59,7 @@
56
59
  :disabled="disabled"
57
60
  @click="increment"
58
61
  >
59
- <BaseIcon icon="mdi:chevron-up"></BaseIcon>
62
+ <BaseIcon icon="mdi:chevron-up" />
60
63
  </button>
61
64
  <button
62
65
  type="button"
@@ -65,7 +68,7 @@
65
68
  :disabled="disabled"
66
69
  @click="decrement"
67
70
  >
68
- <BaseIcon icon="mdi:chevron-down"></BaseIcon>
71
+ <BaseIcon icon="mdi:chevron-down" />
69
72
  </button>
70
73
  </div>
71
74
  </div>
@@ -53,7 +53,7 @@
53
53
  @keydown.enter="onManualPageMobileEnter"
54
54
  @input="onManualPageMobileInput"
55
55
  @blur="setPageFromManualPageMobile"
56
- />
56
+ >
57
57
  <span class="ml-2 text-sm font-normal text-slate-500">
58
58
  {{ t('sui.of') }} {{ lastPage }}
59
59
  </span>
@@ -88,7 +88,7 @@
88
88
  @keydown.enter="onManualPageEnter"
89
89
  @input="onManualPageInput"
90
90
  @blur="setPageFromManualPage"
91
- />
91
+ >
92
92
  </div>
93
93
  </nav>
94
94
  </template>
@@ -7,7 +7,10 @@
7
7
  <h3 class="text-base font-semibold leading-6 text-slate-900">
8
8
  {{ title }}
9
9
  </h3>
10
- <p v-if="description" class="mt-1 text-sm leading-normal text-slate-600">
10
+ <p
11
+ v-if="description"
12
+ class="mt-1 text-sm leading-normal text-slate-600"
13
+ >
11
14
  {{ description }}
12
15
  </p>
13
16
  </div>
@@ -16,7 +16,7 @@
16
16
  :required="requiredInternal"
17
17
  class="grow rounded-l rounded-r-none border-none focus:ring-2 focus:ring-primary-500 disabled:cursor-not-allowed"
18
18
  @input="onInput"
19
- />
19
+ >
20
20
  <div class="flex shrink-0 pl-3">
21
21
  <button
22
22
  tabindex="-1"
@@ -30,7 +30,11 @@
30
30
  icon="heroicons:eye-slash-20-solid"
31
31
  class="h-5 w-5"
32
32
  />
33
- <BaseIcon v-else icon="heroicons:eye-20-solid" class="h-5 w-5" />
33
+ <BaseIcon
34
+ v-else
35
+ icon="heroicons:eye-20-solid"
36
+ class="h-5 w-5"
37
+ />
34
38
  </button>
35
39
  </div>
36
40
  </div>
@@ -1,5 +1,8 @@
1
1
  <template>
2
- <svg :height="radius * 2" :width="radius * 2">
2
+ <svg
3
+ :height="radius * 2"
4
+ :width="radius * 2"
5
+ >
3
6
  <circle
4
7
  stroke="currentColor"
5
8
  class="text-slate-200"
@@ -20,9 +20,12 @@
20
20
  :value="option.value"
21
21
  :class="twInput"
22
22
  @input="emitUpdate(option.value)"
23
- />
23
+ >
24
24
 
25
- <slot name="option" :option="option">
25
+ <slot
26
+ name="option"
27
+ :option="option"
28
+ >
26
29
  <span class="text-sm">{{ option.label }}</span>
27
30
  </slot>
28
31
  </label>
@@ -14,8 +14,7 @@
14
14
  :enable="enable"
15
15
  content-type="html"
16
16
  @update:content="emitUpdate(updateChange($event))"
17
- >
18
- </quill-editor>
17
+ />
19
18
  </div>
20
19
  </template>
21
20
 
@@ -13,7 +13,11 @@
13
13
  @change="onChange($event)"
14
14
  >
15
15
  <template v-if="requiredInternal">
16
- <option disabled hidden :value="EMPTY_VALUE_INTERNAL">
16
+ <option
17
+ disabled
18
+ hidden
19
+ :value="EMPTY_VALUE_INTERNAL"
20
+ >
17
21
  {{ placeholder ? placeholder : t('sui.select_an_option') }}
18
22
  </option>
19
23
  </template>
@@ -101,7 +105,7 @@ const { nameInternal, requiredInternal, hasErrorInternal, emitUpdate } =
101
105
  emit: emit,
102
106
  });
103
107
 
104
- const options = ref([] as HTMLOptionElement[]);
108
+ const options = ref<HTMLOptionElement[]>([]);
105
109
 
106
110
  function isEmptyExternal(value: string | number | null | undefined) {
107
111
  if (value === undefined || value === EMPTY_VALUE_EXTERNAL) {
@@ -1,6 +1,11 @@
1
1
  <template>
2
2
  <BaseCard class="flex duration-200 hover:bg-slate-50">
3
- <BaseActionItem :to="to" :href="href" :action="action" class="block w-full">
3
+ <BaseActionItem
4
+ :to="to"
5
+ :href="href"
6
+ :action="action"
7
+ class="block w-full"
8
+ >
4
9
  <section class="whitespace-pre-line p-4">
5
10
  <!-- Icon -->
6
11
  <div
@@ -11,7 +16,7 @@
11
16
  v-if="icon"
12
17
  :icon="icon"
13
18
  :class="iconSizeClasses"
14
- ></BaseIcon>
19
+ />
15
20
  </div>
16
21
  <!-- Title -->
17
22
  <div class="text-md font-semibold">
@@ -29,12 +34,14 @@
29
34
  v-if="linkText"
30
35
  class="flex items-center justify-start text-sm font-medium"
31
36
  >
32
- <div class="mr-1 leading-none">{{ linkText }}</div>
37
+ <div class="mr-1 leading-none">
38
+ {{ linkText }}
39
+ </div>
33
40
  <div>
34
41
  <BaseIcon
35
42
  icon="heroicons:arrow-right-20-solid"
36
43
  class="mt-px h-4 w-4"
37
- ></BaseIcon>
44
+ />
38
45
  </div>
39
46
  </div>
40
47
  </section>
@@ -1,5 +1,8 @@
1
1
  <template>
2
- <nav aria-label="Sidebar" class="relative">
2
+ <nav
3
+ aria-label="Sidebar"
4
+ class="relative"
5
+ >
3
6
  <div class="absolute bottom-0 left-0 h-full w-px bg-slate-300" />
4
7
  <div
5
8
  class="relative overflow-x-auto overflow-y-hidden"
@@ -17,7 +17,10 @@
17
17
  ]"
18
18
  @click.prevent="onClick(navigate)"
19
19
  >
20
- <div class="relative flex items-center" :class="[sizeClassInner]">
20
+ <div
21
+ class="relative flex items-center"
22
+ :class="[sizeClassInner]"
23
+ >
21
24
  <div
22
25
  class="absolute left-0 top-0 h-full"
23
26
  :class="[
@@ -25,7 +28,7 @@
25
28
  ? 'w-[2px] bg-primary-600'
26
29
  : 'group-hover:w-px group-hover:bg-slate-700',
27
30
  ]"
28
- ></div>
31
+ />
29
32
  <slot :active="isActiveInternal(isActive, isExactActive)" />
30
33
  </div>
31
34
  </a>
@@ -12,8 +12,8 @@
12
12
  :style="{
13
13
  animationDelay: delay,
14
14
  }"
15
- ></div>
16
- <slot></slot>
15
+ />
16
+ <slot />
17
17
  </div>
18
18
  </template>
19
19
 
@@ -1,12 +1,18 @@
1
1
  <template>
2
- <div class="inline-flex rounded-xl p-4" :class="[centerClass]">
2
+ <div
3
+ class="inline-flex rounded-xl p-4"
4
+ :class="[centerClass]"
5
+ >
3
6
  <section>
4
7
  <!-- Label -->
5
8
  <header class="mb-0.5 text-base font-medium">
6
9
  {{ label }}
7
10
  </header>
8
11
  <!-- Content -->
9
- <div class="flex" :class="[centerClass]">
12
+ <div
13
+ class="flex"
14
+ :class="[centerClass]"
15
+ >
10
16
  <div class="text-3xl font-bold leading-tight">
11
17
  {{ primaryValue }}
12
18
  </div>
@@ -18,9 +24,14 @@
18
24
  >
19
25
  <!-- Icon trend -->
20
26
  <div v-if="trend">
21
- <BaseIcon :icon="icon" :class="iconClass" />
27
+ <BaseIcon
28
+ :icon="icon"
29
+ :class="iconClass"
30
+ />
31
+ </div>
32
+ <div class="text-lg">
33
+ {{ secondaryValue }}
22
34
  </div>
23
- <div class="text-lg">{{ secondaryValue }}</div>
24
35
  </div>
25
36
  </div>
26
37
  <!-- Caption -->
@@ -1,6 +1,9 @@
1
1
  <template>
2
2
  <div class="lg:border-t lg:border-b lg:border-gray-200">
3
- <nav class="px-4 mx-auto max-w-7xl sm:px-6 lg:px-8" aria-label="Progress">
3
+ <nav
4
+ class="px-4 mx-auto max-w-7xl sm:px-6 lg:px-8"
5
+ aria-label="Progress"
6
+ >
4
7
  <ol
5
8
  role="list"
6
9
  class="overflow-hidden rounded-md lg:flex lg:rounded-none lg:border-l lg:border-r lg:border-gray-200"