edvoyui-component-library-test-flight 0.0.110 → 0.0.112

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 (100) hide show
  1. package/dist/EUISelectSearch.vue.d.ts +4 -0
  2. package/dist/EUISelectSearch.vue.d.ts.map +1 -0
  3. package/dist/accordion/EUIAccordion.vue.d.ts +2 -2
  4. package/dist/accordion/EUIAccordion.vue.d.ts.map +1 -1
  5. package/dist/alerts/EUIAlerts.vue.d.ts +2 -2
  6. package/dist/alerts/EUIAlerts.vue.d.ts.map +1 -1
  7. package/dist/avatar/EUIAvatar.vue.d.ts +2 -2
  8. package/dist/avatar/EUIAvatar.vue.d.ts.map +1 -1
  9. package/dist/breadcrumb/EUIBreadcrumb.vue.d.ts +2 -2
  10. package/dist/breadcrumb/EUIBreadcrumb.vue.d.ts.map +1 -1
  11. package/dist/button/EUIButton.vue.d.ts +5 -0
  12. package/dist/button/EUIButton.vue.d.ts.map +1 -0
  13. package/dist/checkbox/EUICheckbox.vue.d.ts +3 -3
  14. package/dist/checkbox/EUICheckbox.vue.d.ts.map +1 -1
  15. package/dist/datepicker/EUIDatepicker.vue.d.ts +3 -3
  16. package/dist/datepicker/EUIDatepicker.vue.d.ts.map +1 -1
  17. package/dist/dropdown/EUIMultiDropdown.vue.d.ts +2 -2
  18. package/dist/dropdown/EUIMultiDropdown.vue.d.ts.map +1 -1
  19. package/dist/errorMessage/EUIErrorMessage.vue.d.ts +2 -2
  20. package/dist/errorMessage/EUIErrorMessage.vue.d.ts.map +1 -1
  21. package/dist/input/EUIInput.vue.d.ts +2 -2
  22. package/dist/input/EUIInput.vue.d.ts.map +1 -1
  23. package/dist/library-vue-ts.cjs.js +1 -1
  24. package/dist/library-vue-ts.es.js +38 -17
  25. package/dist/library-vue-ts.umd.js +1 -1
  26. package/dist/loader/EUICircleLoader.vue.d.ts +1 -1
  27. package/dist/loader/EUICircleLoader.vue.d.ts.map +1 -1
  28. package/dist/loader/EUICubeLoader.vue.d.ts +1 -1
  29. package/dist/loader/EUICubeLoader.vue.d.ts.map +1 -1
  30. package/dist/loader/EUILoader.vue.d.ts +2 -2
  31. package/dist/loader/EUILoader.vue.d.ts.map +1 -1
  32. package/dist/loader/EUISquareLoader.vue.d.ts +1 -1
  33. package/dist/loader/EUISquareLoader.vue.d.ts.map +1 -1
  34. package/dist/modal/EUIModal.vue.d.ts +2 -2
  35. package/dist/modal/EUIModal.vue.d.ts.map +1 -1
  36. package/dist/pillSelect/EUIPillSelect.vue.d.ts +2 -2
  37. package/dist/pillSelect/EUIPillSelect.vue.d.ts.map +1 -1
  38. package/dist/popover/EUIPopover.vue.d.ts +2 -2
  39. package/dist/popover/EUIPopover.vue.d.ts.map +1 -1
  40. package/dist/radio/EUIRadio.vue.d.ts +2 -2
  41. package/dist/radio/EUIRadio.vue.d.ts.map +1 -1
  42. package/dist/searchInput/EUISearch.vue.d.ts +2 -2
  43. package/dist/searchInput/EUISearch.vue.d.ts.map +1 -1
  44. package/dist/searchexpand/EUISearchExpand.vue.d.ts +2 -2
  45. package/dist/searchexpand/EUISearchExpand.vue.d.ts.map +1 -1
  46. package/dist/searchexpand/EUISearchToggle.vue.d.ts +2 -2
  47. package/dist/searchexpand/EUISearchToggle.vue.d.ts.map +1 -1
  48. package/dist/select/EUISelect.vue.d.ts +3 -3
  49. package/dist/select/EUISelect.vue.d.ts.map +1 -1
  50. package/dist/slideover/EUISlideover.vue.d.ts +2 -2
  51. package/dist/slideover/EUISlideover.vue.d.ts.map +1 -1
  52. package/dist/stepperTimeline/EUIStepperHorizontal.vue.d.ts +2 -2
  53. package/dist/stepperTimeline/EUIStepperHorizontal.vue.d.ts.map +1 -1
  54. package/dist/stepperTimeline/EUIStepperTimeline.vue.d.ts +2 -2
  55. package/dist/stepperTimeline/EUIStepperTimeline.vue.d.ts.map +1 -1
  56. package/dist/stepperTimeline/EUIStepperVertical.vue.d.ts +2 -2
  57. package/dist/stepperTimeline/EUIStepperVertical.vue.d.ts.map +1 -1
  58. package/dist/table/EUIDashboardTable.vue.d.ts +2 -2
  59. package/dist/table/EUIDashboardTable.vue.d.ts.map +1 -1
  60. package/dist/table/EUIPageLimit.vue.d.ts +2 -2
  61. package/dist/table/EUIPageLimit.vue.d.ts.map +1 -1
  62. package/dist/table/EUIPagination.vue.d.ts +2 -2
  63. package/dist/table/EUIPagination.vue.d.ts.map +1 -1
  64. package/dist/table/EUIStudentPagination.vue.d.ts +2 -2
  65. package/dist/table/EUIStudentPagination.vue.d.ts.map +1 -1
  66. package/dist/table/EUITable.vue.d.ts +2 -2
  67. package/dist/table/EUITable.vue.d.ts.map +1 -1
  68. package/dist/table/EUITableCheckbox.vue.d.ts +3 -3
  69. package/dist/table/EUITableCheckbox.vue.d.ts.map +1 -1
  70. package/dist/table/GrowthTable.vue.d.ts +2 -2
  71. package/dist/table/GrowthTable.vue.d.ts.map +1 -1
  72. package/dist/table/UCheckbox.vue.d.ts +2 -2
  73. package/dist/table/UCheckbox.vue.d.ts.map +1 -1
  74. package/dist/table/UTable.vue.d.ts +2 -2
  75. package/dist/table/UTable.vue.d.ts.map +1 -1
  76. package/dist/tabs/EUITabs.vue.d.ts +2 -2
  77. package/dist/tabs/EUITabs.vue.d.ts.map +1 -1
  78. package/dist/tag/EUITag.vue.d.ts +2 -2
  79. package/dist/tag/EUITag.vue.d.ts.map +1 -1
  80. package/dist/telephone/EUITelephone.vue.d.ts +3 -3
  81. package/dist/telephone/EUITelephone.vue.d.ts.map +1 -1
  82. package/dist/textArea/EUITextArea.vue.d.ts +2 -2
  83. package/dist/textArea/EUITextArea.vue.d.ts.map +1 -1
  84. package/dist/timeLine/EUITimeLine.vue.d.ts +2 -2
  85. package/dist/timeLine/EUITimeLine.vue.d.ts.map +1 -1
  86. package/dist/timeLine/EUITimeLineItem.vue.d.ts +2 -2
  87. package/dist/timeLine/EUITimeLineItem.vue.d.ts.map +1 -1
  88. package/dist/toggle/EUIToggle.vue.d.ts +2 -2
  89. package/dist/toggle/EUIToggle.vue.d.ts.map +1 -1
  90. package/dist/tooltip/EUITooltip.vue.d.ts +2 -2
  91. package/dist/tooltip/EUITooltip.vue.d.ts.map +1 -1
  92. package/package.json +1 -1
  93. package/src/components/table/UTable.vue +86 -58
  94. package/src/components/tabs/EUITabs.vue +125 -96
  95. package/dist/EUIButton.vue.d.ts +0 -5
  96. package/dist/EUIButton.vue.d.ts.map +0 -1
  97. package/dist/selectSearch/EUISelectSearch.vue.d.ts +0 -4
  98. package/dist/selectSearch/EUISelectSearch.vue.d.ts.map +0 -1
  99. /package/src/components/checkbox/{EUIcheckbox.stories.ts → EUICheckbox.stories.ts} +0 -0
  100. /package/src/components/modal/{EUImodal.stories.ts → EUIModal.stories.ts} +0 -0
@@ -56,61 +56,72 @@
56
56
  scope="col"
57
57
  :class="[
58
58
  'snap-start snap-always py-2',
59
- header?.sortable ? 'cursor-pointer hover:!text-gray-900 pr-8 pl-3': 'px-3',
59
+ header?.sortable
60
+ ? 'cursor-pointer hover:!text-gray-900 pr-8 pl-3'
61
+ : 'px-3',
60
62
  isScrolled && headerIndex === 0 ? stickyClass.head : null,
61
63
  { '!bg-gray-200': currentSort === header.value },
62
-
63
64
  ]"
64
- :style="headers.length > 6 ? headerStyle(header) : 'width: 100%;min-width: 250px;background-color: rgb(243 244 246);'"
65
+ :style="
66
+ headers.length > 6
67
+ ? headerStyle(header)
68
+ : 'width: 100%;min-width: 250px;background-color: rgb(243 244 246);'
69
+ "
65
70
  @click="sortBy(header, $event)"
66
71
  >
67
72
  <div class="relative z-0 w-full">
68
- <div
69
- class="w-full text-sm font-medium text-current truncate font-inter"
70
- >
71
- <slot name="header" :header="header">
72
- {{ capitalizeText(header?.text ?? header?.name ?? "") }}
73
- </slot>
74
- <slot v-if="headerOptional" name="headerOptionalItem" ></slot>
75
- </div>
76
- <div v-if="header?.sortable" class="absolute -top-0.5 -right-6 size-6 z-10">
77
- <svg
78
- width="24"
79
- height="24"
80
- viewBox="0 0 24 24"
81
- fill="none"
82
- xmlns="http://www.w3.org/2000/svg"
83
- class="size-6"
73
+ <div
74
+ class="w-full text-sm font-medium text-current truncate font-inter"
84
75
  >
85
- <rect width="24" height="24" fill="none" />
86
- <path
87
- d="M8 10C9.06206 8.5381 10.3071 7.2287 11.7021 6.1058C11.8774 5.9647 12.1226 5.9647 12.2979 6.1058C13.6929 7.2287 14.9379 8.5381 16 10"
88
- :stroke="
89
- currentSortDir === 'asc' &&
90
- currentSort === header?.value
91
- ? '#111827'
92
- : '#9ca3af'
93
- "
94
- stroke-opacity="0.8"
95
- stroke-width="2"
96
- stroke-linecap="round"
97
- stroke-linejoin="round"
98
- />
99
- <path
100
- d="M8 14C9.06206 15.4619 10.3071 16.7713 11.7021 17.8942C11.8774 18.0353 12.1226 18.0353 12.2979 17.8942C13.6929 16.7713 14.9379 15.4619 16 14"
101
- :stroke="
102
- currentSortDir === 'desc' &&
103
- currentSort === header?.value
104
- ? '#111827'
105
- : '#9ca3af'
106
- "
107
- stroke-opacity="0.8"
108
- stroke-width="2"
109
- stroke-linecap="round"
110
- stroke-linejoin="round"
111
- />
112
- </svg>
113
- </div>
76
+ <slot name="header" :header="header">
77
+ {{ capitalizeText(header?.text ?? header?.name ?? "") }}
78
+ </slot>
79
+ <slot
80
+ v-if="headerOptional"
81
+ name="headerOptionalItem"
82
+ ></slot>
83
+ </div>
84
+ <div
85
+ v-if="header?.sortable"
86
+ class="absolute -top-0.5 -right-6 size-6 z-10"
87
+ >
88
+ <svg
89
+ width="24"
90
+ height="24"
91
+ viewBox="0 0 24 24"
92
+ fill="none"
93
+ xmlns="http://www.w3.org/2000/svg"
94
+ class="size-6"
95
+ >
96
+ <rect width="24" height="24" fill="none" />
97
+ <path
98
+ d="M8 10C9.06206 8.5381 10.3071 7.2287 11.7021 6.1058C11.8774 5.9647 12.1226 5.9647 12.2979 6.1058C13.6929 7.2287 14.9379 8.5381 16 10"
99
+ :stroke="
100
+ currentSortDir === 'asc' &&
101
+ currentSort === header?.value
102
+ ? '#111827'
103
+ : '#9ca3af'
104
+ "
105
+ stroke-opacity="0.8"
106
+ stroke-width="2"
107
+ stroke-linecap="round"
108
+ stroke-linejoin="round"
109
+ />
110
+ <path
111
+ d="M8 14C9.06206 15.4619 10.3071 16.7713 11.7021 17.8942C11.8774 18.0353 12.1226 18.0353 12.2979 17.8942C13.6929 16.7713 14.9379 15.4619 16 14"
112
+ :stroke="
113
+ currentSortDir === 'desc' &&
114
+ currentSort === header?.value
115
+ ? '#111827'
116
+ : '#9ca3af'
117
+ "
118
+ stroke-opacity="0.8"
119
+ stroke-width="2"
120
+ stroke-linecap="round"
121
+ stroke-linejoin="round"
122
+ />
123
+ </svg>
124
+ </div>
114
125
  </div>
115
126
  </th>
116
127
  </tr>
@@ -122,7 +133,7 @@
122
133
  :key="`table-row-${rowIndex}`"
123
134
  >
124
135
  <tr
125
- :id="`row-${rowIndex}`"
136
+ :id="`row-${rowIndex}`"
126
137
  @mouseenter="
127
138
  $attrs.mouseenter
128
139
  ? $emit('mouseenter', row, rowIndex)
@@ -134,7 +145,7 @@
134
145
  : null
135
146
  "
136
147
  class="group"
137
- :class="{'bg-purple-100': activeRowIndex==rowIndex}"
148
+ :class="{ 'bg-purple-100': activeRowIndex == rowIndex }"
138
149
  >
139
150
  <td
140
151
  v-if="checkable"
@@ -150,10 +161,13 @@
150
161
  />
151
162
  </td>
152
163
  <td
153
- v-for="(header, headerIndex) in headers"
164
+ v-for="(header, headerIndex) in headers"
154
165
  :key="headerIndex"
155
166
  :style="bodyStyle(header)"
156
- :class="[isScrolled && headerIndex === 0 ? stickyClass.body : null,{'!bg-purple-100': activeRowIndex==rowIndex}]"
167
+ :class="[
168
+ isScrolled && headerIndex === 0 ? stickyClass.body : null,
169
+ { '!bg-purple-100': activeRowIndex == rowIndex },
170
+ ]"
157
171
  >
158
172
  <slot
159
173
  :name="`item.${header?.value}`"
@@ -161,7 +175,9 @@
161
175
  :rowIndex="rowIndex"
162
176
  :headerIndex="headerIndex"
163
177
  >
164
- <span class="block truncate">{{ getValueByPath(row, header?.value) }}</span>
178
+ <span class="block truncate">{{
179
+ getValueByPath(row, header?.value)
180
+ }}</span>
165
181
  </slot>
166
182
  </td>
167
183
  </tr>
@@ -178,13 +194,23 @@
178
194
  >
179
195
  <div
180
196
  class="flex items-center justify-center w-[calc(100vw-14rem)]"
181
- :class="[tableHeight ? tableHeight : 'h-[calc(100svh-12rem)] max-h-[calc(100svh-12rem)]']"
197
+ :class="[
198
+ tableHeight
199
+ ? tableHeight
200
+ : 'h-[calc(100svh-12rem)] max-h-[calc(100svh-12rem)]',
201
+ ]"
182
202
  >
183
203
  <div class="text-center">
184
204
  <div class="mx-auto overflow-hidden rounded-md size-56">
185
- <img src="@/assets/images/search-nodata.png" alt="" class="block object-contain object-center h-auto max-w-full opacity-90" />
186
- </div>
187
- <div class="my-2 text-xl font-medium text-gray-500">No matching records found</div>
205
+ <img
206
+ src="@/assets/images/search-nodata.png"
207
+ alt=""
208
+ class="block object-contain object-center h-auto max-w-full opacity-90"
209
+ />
210
+ </div>
211
+ <div class="my-2 text-xl font-medium text-gray-500">
212
+ No matching records found
213
+ </div>
188
214
  </div>
189
215
  </div>
190
216
  </td>
@@ -194,6 +220,7 @@
194
220
  </table>
195
221
  </div>
196
222
  <div
223
+ v-if="stickyFooter"
197
224
  class="sticky bottom-0 left-0 z-50 flex items-center justify-between px-2 py-1 bg-white border-t border-gray-300"
198
225
  >
199
226
  <slot name="tableCount">
@@ -267,6 +294,7 @@ const props = defineProps({
267
294
  default: () => [],
268
295
  required: true,
269
296
  },
297
+ stickyFooter: { type: Boolean, default: true },
270
298
  paginated: { type: Boolean, default: false },
271
299
  tableExpanded: { type: Boolean, default: false },
272
300
  search: { type: String, default: "" },
@@ -305,7 +333,7 @@ const {
305
333
  headers,
306
334
  paginated,
307
335
  isRowCheckable,
308
- activeRowIndex
336
+ activeRowIndex,
309
337
  } = toRefs(props);
310
338
 
311
339
  // Emits used
@@ -1,87 +1,98 @@
1
1
  <template>
2
2
  <div>
3
- <div
4
- v-if="tabStyle === 'design'"
5
- class="flex flex-row items-center justify-between w-full p-2 bg-gray-100 rounded-xl"
3
+ <div
4
+ v-if="tabStyle === 'design'"
5
+ class="flex flex-row items-center justify-between w-full p-2 bg-gray-100 rounded-xl"
6
+ >
7
+ <button
8
+ v-for="(tab, tabindex) in tabs"
9
+ :disabled="tab?.disabled"
10
+ :key="tabindex"
11
+ :id="`id-${tab.name}`"
12
+ type="button"
13
+ class="[&:not(:focus-visible)]:focus:outline-none relative w-full inline-flex items-center transition-colors duration-100"
14
+ :class="tab?.disabled ? ' cursor-not-allowed ' : ''"
15
+ role="tab"
16
+ tabindex="-1"
17
+ @click="selectTab(tabindex)"
18
+ :title="tab?.toolTipText"
6
19
  >
7
- <button
8
- v-for="(tab, tabindex) in tabs"
9
- :disabled="tab?.disabled"
10
- :key="tabindex"
11
- :id="`id-${tab.name}`"
12
- type="button"
13
- class="[&:not(:focus-visible)]:focus:outline-none relative w-full inline-flex items-center transition-colors duration-100"
14
- :class="tab?.disabled?' cursor-not-allowed ':''"
15
- role="tab"
16
- tabindex="-1"
17
- @click="selectTab(tabindex)"
20
+ <div
21
+ class="pointer-events-none absolute inset-0 transition-transform duration-200 transform z-[1] ease-in-out"
22
+ :class="{
23
+ 'translate-x-full': tabindex < activeTabIndex,
24
+ '-translate-x-full': tabindex > activeTabIndex,
25
+ 'translate-x-0 rounded-lg bg-gray-600': activeTabIndex === tabindex,
26
+ }"
27
+ />
28
+ <span
29
+ :class="[
30
+ 'w-full px-4 py-2 text-sm tracking-wide font-medium capitalize z-10',
31
+ activeTabIndex == tabindex
32
+ ? ' text-white'
33
+ : ' text-gray-500 hover:text-gray-600 rounded-lg bg-transparent z-0 transition-colors duration-300 ease-in origin-center',
34
+ ]"
18
35
  >
19
- <div
20
- class="pointer-events-none absolute inset-0 transition-transform duration-200 transform z-[1] ease-in-out"
21
- :class="{
22
- 'translate-x-full': tabindex < activeTabIndex,
23
- '-translate-x-full': tabindex > activeTabIndex,
24
- 'translate-x-0 rounded-lg bg-gray-600':
25
- activeTabIndex === tabindex,
26
- }"
27
- />
28
- <span
29
- :class="[
30
- 'w-full px-4 py-2 text-sm tracking-wide font-medium capitalize z-10',
31
- activeTabIndex == tabindex
32
- ? ' text-white'
33
- : ' text-gray-500 hover:text-gray-600 rounded-lg bg-transparent z-0 transition-colors duration-300 ease-in origin-center',
34
- ]"
36
+ <slot
37
+ name="title"
38
+ :tab="tab"
39
+ :tabIndex="tabindex"
40
+ :activeTab="activeTabIndex"
35
41
  >
36
- <slot name="title" :tab="tab" :tabIndex="tabindex" :activeTab="activeTabIndex">
37
- {{ tab?.name }}
38
- </slot>
39
- </span>
40
- </button>
41
- </div>
42
- <div
43
- v-else-if="tabStyle === 'border'"
44
- class="flex items-center gap-1 before:bottom-0 before:left-0 before:absolute before:content-[''] before:h-px before:w-full before:bg-gray-200 relative before:-z-[1] z-0 bg-white"
42
+ {{ tab?.name }}
43
+ </slot>
44
+ </span>
45
+ </button>
46
+ </div>
47
+ <div
48
+ v-else-if="tabStyle === 'border'"
49
+ class="flex items-center gap-1 before:bottom-0 before:left-0 before:absolute before:content-[''] before:h-px before:w-full before:bg-gray-200 relative before:-z-[1] z-0 bg-white"
50
+ :class="[
51
+ tabAlign === 'justify'
52
+ ? 'justify-between'
53
+ : tabAlign === 'end'
54
+ ? 'justify-end'
55
+ : 'justify-start',
56
+ ]"
57
+ >
58
+ <button
59
+ v-for="(tab, tabindex) in tabs"
60
+ :disabled="tab?.disabled"
61
+ :title="tab?.toolTipText"
62
+ :key="tabindex"
63
+ type="button"
64
+ role="tab"
65
+ :id="`id-${tab.name}`"
45
66
  :class="[
46
- tabAlign === 'justify'
47
- ? 'justify-between'
48
- : tabAlign === 'end'
49
- ? 'justify-end'
50
- : 'justify-start',
67
+ 'px-3 py-1 leading-5 transition-all duration-150 ease-in-out hover:text-gray-800',
68
+ tabSize === 'sm'
69
+ ? 'text-sm font-semibold border-b-2'
70
+ : 'text-base font-bold border-b-[3px]',
71
+ activeTabIndex === tabindex
72
+ ? 'border-gray-900 text-gray-900'
73
+ : 'border-transparent text-gray-500',
74
+ tab?.disabled ? ' cursor-not-allowed ' : '',
51
75
  ]"
76
+ @click="selectTab(tabindex)"
52
77
  >
53
- <button
54
- v-for="(tab, tabindex) in tabs"
55
- :disabled="tab?.disabled"
56
-
57
- :key="tabindex"
58
- type="button"
59
- role="tab"
60
- :id="`id-${tab.name}`"
61
- :class="[
62
- 'px-3 py-1 leading-5 transition-all duration-150 ease-in-out hover:text-gray-800',
63
- tabSize === 'sm'
64
- ? 'text-sm font-semibold border-b-2'
65
- : 'text-base font-bold border-b-[3px]',
66
- activeTabIndex === tabindex
67
- ? 'border-gray-900 text-gray-900'
68
- : 'border-transparent text-gray-500',
69
- tab?.disabled?' cursor-not-allowed ':''
70
- ]"
71
- @click="selectTab(tabindex)"
78
+ <slot
79
+ name="title"
80
+ :tab="tab"
81
+ :tabIndex="tabindex"
82
+ :activeTab="activeTabIndex"
72
83
  >
73
- <slot name="title" :tab="tab" :tabIndex="tabindex" :activeTab="activeTabIndex">
74
- {{ tab?.name }}
75
- </slot>
76
- </button>
77
- </div>
78
- <div
84
+ {{ tab?.name }}
85
+ </slot>
86
+ </button>
87
+ </div>
88
+ <div
79
89
  v-else-if="tabStyle === 'shadow'"
80
90
  class="justify-start relative z-0 inline-flex items-center gap-0 bg-white/50 rounded-t-lg shadow-[0px_1px_2px_0px_rgba(55,65,81,0.10)]"
81
91
  >
82
92
  <button
83
93
  v-for="(tab, tabindex) in tabs"
84
94
  :disabled="tab?.disabled"
95
+ :title="tab?.toolTipText"
85
96
  :key="tabindex"
86
97
  type="button"
87
98
  role="tab"
@@ -94,41 +105,59 @@
94
105
  activeTabIndex === tabindex
95
106
  ? 'border-purple-800 text-purple-800 bg-white z-10 rounded-t-lg shadow-[0px_2px_4px_0px_rgba(55,65,81,0.1)]'
96
107
  : 'border-transparent text-gray-500 z-0',
97
- tab?.disabled?' cursor-not-allowed ':''
108
+ tab?.disabled ? ' cursor-not-allowed ' : '',
98
109
  ]"
99
110
  @click="selectTab(tabindex)"
100
111
  >
101
- <slot name="title" :tab="tab" :tabIndex="tabindex" :activeTab="activeTabIndex">
112
+ <slot
113
+ name="title"
114
+ :tab="tab"
115
+ :tabIndex="tabindex"
116
+ :activeTab="activeTabIndex"
117
+ >
102
118
  {{ tab?.name }}
103
119
  </slot>
104
120
  </button>
105
121
  </div>
106
122
 
107
- <div
108
- v-else
109
- class="flex items-center gap-1 p-2 transition-all duration-100"
123
+ <div v-else class="flex items-center gap-1 p-2 transition-all duration-100">
124
+ <button
125
+ v-for="(tab, tabindex) in tabs"
126
+ :disabled="tab?.disabled"
127
+ :title="tab?.toolTipText"
128
+ :key="tabindex"
129
+ type="button"
130
+ role="tab"
131
+ :id="`id-${tab.name}`"
132
+ class="px-4 py-1 text-sm font-semibold transition-colors duration-150 ease-in-out border rounded-full"
133
+ :class="[
134
+ activeTabIndex === tabindex
135
+ ? 'shadow-lg shadow-gray-100 bg-white border-gray-200 focus-within:border-purple-600 text-gray-900'
136
+ : 'border-white hover:bg-gray-50 text-gray-700',
137
+ tab?.disabled ? ' cursor-not-allowed ' : '',
138
+ ]"
139
+ @click="selectTab(tabindex)"
110
140
  >
111
- <button
112
- v-for="(tab, tabindex) in tabs"
113
- :disabled="tab?.disabled"
114
- :key="tabindex"
115
- type="button"
116
- role="tab"
117
- :id="`id-${tab.name}`"
118
- class="px-4 py-1 text-sm font-semibold transition-colors duration-150 ease-in-out border rounded-full"
119
- :class="
120
- [ activeTabIndex === tabindex
121
- ? 'shadow-lg shadow-gray-100 bg-white border-gray-200 focus-within:border-purple-600 text-gray-900'
122
- : 'border-white hover:bg-gray-50 text-gray-700',tab?.disabled?' cursor-not-allowed ':'']
123
- "
124
- @click="selectTab(tabindex)"
141
+ <slot
142
+ name="title"
143
+ :tab="tab"
144
+ :tabIndex="tabindex"
145
+ :activeTab="activeTabIndex"
125
146
  >
126
- <slot name="title" :tab="tab" :tabIndex="tabindex" :activeTab="activeTabIndex">
127
- {{ tab?.name }}
128
- </slot>
129
- </button>
130
- </div>
131
- <div :class="['py-2 text-base font-normal text-gray-700 bg-white relative', contentClass, {'rounded-lg !rounded-tl-none shadow-[0px_-2px_24px_0px_rgba(0,0,0,0.075)] z-20':tabStyle === 'shadow'}]">
147
+ {{ tab?.name }}
148
+ </slot>
149
+ </button>
150
+ </div>
151
+ <div
152
+ :class="[
153
+ 'py-2 text-base font-normal text-gray-700 bg-white relative',
154
+ contentClass,
155
+ {
156
+ 'rounded-lg !rounded-tl-none shadow-[0px_-2px_24px_0px_rgba(0,0,0,0.075)] z-20':
157
+ tabStyle === 'shadow',
158
+ },
159
+ ]"
160
+ >
132
161
  <slot name="content" :active-tab="tabs[activeTabIndex]">
133
162
  {{ tabs[activeTabIndex]?.content }}
134
163
  </slot>
@@ -142,7 +171,8 @@ import { defineProps, ref, watch } from "vue";
142
171
  interface Tab {
143
172
  name: string;
144
173
  content?: string;
145
- disabled?:boolean
174
+ disabled?: boolean;
175
+ toolTipText?: string;
146
176
  }
147
177
 
148
178
  const props = defineProps<{
@@ -152,7 +182,6 @@ const props = defineProps<{
152
182
  contentClass?: string[] | string;
153
183
  tabSize?: "sm" | "md";
154
184
  tabAlign?: "start" | "justify" | "end";
155
-
156
185
  }>();
157
186
 
158
187
  const emit = defineEmits<{
@@ -1,5 +0,0 @@
1
- import _sfc_main from "/Users/rajmohan/Documents/Workspace/edvoy-ui-v2/src/components/button/EUIButton.vue?vue&type=script&setup=true&lang.ts";
2
- export * from "/Users/rajmohan/Documents/Workspace/edvoy-ui-v2/src/components/button/EUIButton.vue?vue&type=script&setup=true&lang.ts";
3
- import "/Users/rajmohan/Documents/Workspace/edvoy-ui-v2/src/components/button/EUIButton.vue?vue&type=style&index=0&lang.scss";
4
- export default _sfc_main;
5
- //# sourceMappingURL=EUIButton.vue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EUIButton.vue.d.ts","sourceRoot":"","sources":["../src/components/button/EUIButton.vue"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,wHAAwH,CAAC;AAC/I,cAAc,wHAAwH,CAAC;AACvI,OAAO,sHAAsH,CAAC;AAC9H,eAAe,SAAS,CAAC"}
@@ -1,4 +0,0 @@
1
- import _sfc_main from "/Users/rajmohan/Documents/Workspace/edvoy-ui-v2/src/components/selectSearch/EUISelectSearch.vue?vue&type=script&setup=true&lang.ts";
2
- export * from "/Users/rajmohan/Documents/Workspace/edvoy-ui-v2/src/components/selectSearch/EUISelectSearch.vue?vue&type=script&setup=true&lang.ts";
3
- export default _sfc_main;
4
- //# sourceMappingURL=EUISelectSearch.vue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EUISelectSearch.vue.d.ts","sourceRoot":"","sources":["../../src/components/selectSearch/EUISelectSearch.vue"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oIAAoI,CAAC;AAC3J,cAAc,oIAAoI,CAAC;AACnJ,eAAe,SAAS,CAAC"}