edvoyui-component-library-test-flight 0.0.170 → 0.0.173

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 (223) hide show
  1. package/dist/{edvoy-ui.cjs.js → library-vue-ts.cjs.js} +26 -26
  2. package/dist/{edvoy-ui.css → library-vue-ts.css} +1 -1
  3. package/dist/{edvoy-ui.es.js → library-vue-ts.es.js} +2262 -2249
  4. package/dist/library-vue-ts.umd.js +168 -0
  5. package/dist/selectSearch/EUISelectSearch.vue.d.ts.map +1 -0
  6. package/package.json +10 -11
  7. package/src/App.vue +16 -0
  8. package/src/App.vue.js.map +1 -0
  9. package/src/assets/fonts/gilroy/GilroyBold/font.woff +0 -0
  10. package/src/assets/fonts/gilroy/GilroyBold/font.woff2 +0 -0
  11. package/src/assets/fonts/gilroy/GilroyBoldItalic/font.woff +0 -0
  12. package/src/assets/fonts/gilroy/GilroyBoldItalic/font.woff2 +0 -0
  13. package/src/assets/fonts/gilroy/GilroyExtraBold/font.woff +0 -0
  14. package/src/assets/fonts/gilroy/GilroyExtraBold/font.woff2 +0 -0
  15. package/src/assets/fonts/gilroy/GilroyExtraBoldItalic/font.woff +0 -0
  16. package/src/assets/fonts/gilroy/GilroyExtraBoldItalic/font.woff2 +0 -0
  17. package/src/assets/fonts/gilroy/GilroyMedium/font.woff +0 -0
  18. package/src/assets/fonts/gilroy/GilroyMedium/font.woff2 +0 -0
  19. package/src/assets/fonts/gilroy/GilroyRegular/font.woff +0 -0
  20. package/src/assets/fonts/gilroy/GilroyRegular/font.woff2 +0 -0
  21. package/src/assets/fonts/gilroy/GilroySemiBold/font.woff +0 -0
  22. package/src/assets/fonts/gilroy/GilroySemiBold/font.woff2 +0 -0
  23. package/src/assets/fonts/inter/Inter-Bold.woff +0 -0
  24. package/src/assets/fonts/inter/Inter-Bold.woff2 +0 -0
  25. package/src/assets/fonts/inter/Inter-Italic.woff +0 -0
  26. package/src/assets/fonts/inter/Inter-Italic.woff2 +0 -0
  27. package/src/assets/fonts/inter/Inter-Medium.woff +0 -0
  28. package/src/assets/fonts/inter/Inter-Medium.woff2 +0 -0
  29. package/src/assets/fonts/inter/Inter-MediumItalic.woff +0 -0
  30. package/src/assets/fonts/inter/Inter-MediumItalic.woff2 +0 -0
  31. package/src/assets/fonts/inter/Inter-Regular.woff +0 -0
  32. package/src/assets/fonts/inter/Inter-Regular.woff2 +0 -0
  33. package/src/assets/fonts/inter/Inter-SemiBold.woff +0 -0
  34. package/src/assets/fonts/inter/Inter-SemiBold.woff2 +0 -0
  35. package/src/assets/fonts/inter/Inter-SemiBoldItalic.woff +0 -0
  36. package/src/assets/fonts/inter/Inter-SemiBoldItalic.woff2 +0 -0
  37. package/src/assets/images/search-nodata.png +0 -0
  38. package/src/assets/scss/body.scss +25 -0
  39. package/src/assets/svg/CheckTick.vue +21 -0
  40. package/src/assets/svg/CheckTick.vue.js.map +1 -0
  41. package/src/assets/svg/ChevronBigDown.vue +22 -0
  42. package/src/assets/svg/ChevronBigDown.vue.js.map +1 -0
  43. package/src/assets/svg/ChevronDownSolid.vue +19 -0
  44. package/src/assets/svg/ChevronDownSolid.vue.js.map +1 -0
  45. package/src/assets/svg/ChevronDownStroke.vue +22 -0
  46. package/src/assets/svg/ChevronDownStroke.vue.js.map +1 -0
  47. package/src/assets/svg/ChevronDownStrokeSolid.vue +19 -0
  48. package/src/assets/svg/ChevronDownStrokeSolid.vue.js.map +1 -0
  49. package/src/assets/svg/SearchBigZoomIn.vue +21 -0
  50. package/src/assets/svg/SearchBigZoomIn.vue.js.map +1 -0
  51. package/src/assets/svg/SortArrow.vue +24 -0
  52. package/src/assets/svg/SortArrow.vue.js.map +1 -0
  53. package/src/assets/svg/Student.vue +30 -0
  54. package/src/assets/svg/Student.vue.js.map +1 -0
  55. package/src/assets/svg/partner.vue +33 -0
  56. package/src/assets/svg/partner.vue.js.map +1 -0
  57. package/src/assets/svg/people.vue +25 -0
  58. package/src/assets/svg/people.vue.js.map +1 -0
  59. package/src/assets/vue.svg +1 -0
  60. package/src/components/HelloWorld.vue +1974 -0
  61. package/src/components/HelloWorld.vue.js.map +1 -0
  62. package/src/components/accordion/EUIAccordion.stories.ts +204 -0
  63. package/src/components/accordion/EUIAccordion.vue +152 -0
  64. package/src/components/accordion/EUIAccordion.vue.js.map +1 -0
  65. package/src/components/alerts/EUIAlerts.stories.ts +217 -0
  66. package/src/components/alerts/EUIAlerts.vue +194 -0
  67. package/src/components/alerts/EUIAlerts.vue.js.map +1 -0
  68. package/src/components/avatar/EUIAvatar.stories.ts +157 -0
  69. package/src/components/avatar/EUIAvatar.vue +96 -0
  70. package/src/components/avatar/EUIAvatar.vue.js.map +1 -0
  71. package/src/components/breadcrumb/EUIBreadcrumb.stories.ts +75 -0
  72. package/src/components/breadcrumb/EUIBreadcrumb.vue +59 -0
  73. package/src/components/breadcrumb/EUIBreadcrumb.vue.js.map +1 -0
  74. package/src/components/button/EUIButton.stories.ts +270 -0
  75. package/src/components/button/EUIButton.vue +154 -0
  76. package/src/components/button/EUIButton.vue.js.map +1 -0
  77. package/src/components/button/EUIButtonGroup.vue +287 -0
  78. package/src/components/button/EUIButtonGroup.vue.js.map +1 -0
  79. package/src/components/button/buttonAnimateTab.vue +74 -0
  80. package/src/components/button/buttonAnimateTab.vue.js.map +1 -0
  81. package/src/components/checkbox/EUICheckbox.stories.ts +58 -0
  82. package/src/components/checkbox/EUICheckbox.vue +110 -0
  83. package/src/components/checkbox/EUICheckbox.vue.js.map +1 -0
  84. package/src/components/datepicker/EUIDatepicker.stories.ts +492 -0
  85. package/src/components/datepicker/EUIDatepicker.vue +295 -0
  86. package/src/components/datepicker/EUIDatepicker.vue.js.map +1 -0
  87. package/src/components/delete.vue +262 -0
  88. package/src/components/delete.vue.js.map +1 -0
  89. package/src/components/dragModal/EUIDrag.vue +179 -0
  90. package/src/components/dragModal/EUIDrag.vue.js.map +1 -0
  91. package/src/components/dropdown/EUIMultiDropdown.stories.ts +294 -0
  92. package/src/components/dropdown/EUIMultiDropdown.vue +187 -0
  93. package/src/components/dropdown/EUIMultiDropdown.vue.js.map +1 -0
  94. package/src/components/errorMessage/EUIErrorMessage.scss +0 -0
  95. package/src/components/errorMessage/EUIErrorMessage.stories.ts +41 -0
  96. package/src/components/errorMessage/EUIErrorMessage.vue +25 -0
  97. package/src/components/errorMessage/EUIErrorMessage.vue.js.map +1 -0
  98. package/src/components/index.js.map +1 -0
  99. package/src/components/index.ts +62 -0
  100. package/src/components/input/EUIInput.stories.ts +387 -0
  101. package/src/components/input/EUIInput.vue +223 -0
  102. package/src/components/input/EUIInput.vue.js.map +1 -0
  103. package/src/components/input/EUINumberInput.vue +250 -0
  104. package/src/components/loader/EUICircleLoader.vue +31 -0
  105. package/src/components/loader/EUICircleLoader.vue.js.map +1 -0
  106. package/src/components/loader/EUICubeLoader.vue +237 -0
  107. package/src/components/loader/EUICubeLoader.vue.js.map +1 -0
  108. package/src/components/loader/EUILoader.stories.ts +99 -0
  109. package/src/components/loader/EUILoader.vue +17 -0
  110. package/src/components/loader/EUILoader.vue.js.map +1 -0
  111. package/src/components/loader/EUISquareLoader.vue +47 -0
  112. package/src/components/loader/EUISquareLoader.vue.js.map +1 -0
  113. package/src/components/modal/EUIModal.stories.ts +412 -0
  114. package/src/components/modal/EUIModal.vue +224 -0
  115. package/src/components/modal/EUIModal.vue.js.map +1 -0
  116. package/src/components/pillSelect/EUIPillSelect.stories.ts +74 -0
  117. package/src/components/pillSelect/EUIPillSelect.vue +149 -0
  118. package/src/components/pillSelect/EUIPillSelect.vue.js.map +1 -0
  119. package/src/components/popover/EUIPopover.stories.ts +306 -0
  120. package/src/components/popover/EUIPopover.vue +297 -0
  121. package/src/components/popover/EUIPopover.vue.js.map +1 -0
  122. package/src/components/radio/EUIRadio.stories.ts +54 -0
  123. package/src/components/radio/EUIRadio.vue +75 -0
  124. package/src/components/radio/EUIRadio.vue.js.map +1 -0
  125. package/src/components/searchInput/EUISearch.stories.ts +24 -0
  126. package/src/components/searchInput/EUISearch.vue +223 -0
  127. package/src/components/searchInput/EUISearch.vue.js.map +1 -0
  128. package/src/components/searchTagSelect/EUISearchTagSelect.vue +642 -0
  129. package/src/components/searchTagSelect/EUISearchTagSelect.vue.js.map +1 -0
  130. package/src/components/searchTagSelect/SearchInput.vue +167 -0
  131. package/src/components/searchTagSelect/SearchInput.vue.js.map +1 -0
  132. package/src/components/searchexpand/EUISearchExpand.vue +148 -0
  133. package/src/components/searchexpand/EUISearchExpand.vue.js.map +1 -0
  134. package/src/components/searchexpand/EUISearchToggle.vue +86 -0
  135. package/src/components/searchexpand/EUISearchToggle.vue.js.map +1 -0
  136. package/src/components/select/EUISelect.stories.ts +101 -0
  137. package/src/components/select/EUISelect.vue +1092 -0
  138. package/src/components/select/EUISelect.vue.js.map +1 -0
  139. package/src/components/selectSearch/EUISelectSearch.vue +23 -0
  140. package/src/components/selectSearch/EUISelectSearch.vue.js.map +1 -0
  141. package/src/components/slideover/EUISlideover.stories.ts +318 -0
  142. package/src/components/slideover/EUISlideover.vue +207 -0
  143. package/src/components/slideover/EUISlideover.vue.js.map +1 -0
  144. package/src/components/stepperTimeline/EUIStepperHorizontal.vue +242 -0
  145. package/src/components/stepperTimeline/EUIStepperHorizontal.vue.js.map +1 -0
  146. package/src/components/stepperTimeline/EUIStepperTimeline.stories.ts +54 -0
  147. package/src/components/stepperTimeline/EUIStepperTimeline.vue +16 -0
  148. package/src/components/stepperTimeline/EUIStepperTimeline.vue.js.map +1 -0
  149. package/src/components/stepperTimeline/EUIStepperVertical.vue +112 -0
  150. package/src/components/stepperTimeline/EUIStepperVertical.vue.js.map +1 -0
  151. package/src/components/table/ColumnResizeTable.vue +740 -0
  152. package/src/components/table/ColumnResizeTable.vue.js.map +1 -0
  153. package/src/components/table/EUIDashboardTable.vue +514 -0
  154. package/src/components/table/EUIDashboardTable.vue.js.map +1 -0
  155. package/src/components/table/EUIPageLimit.vue +66 -0
  156. package/src/components/table/EUIPageLimit.vue.js.map +1 -0
  157. package/src/components/table/EUIPagination.vue +175 -0
  158. package/src/components/table/EUIPagination.vue.js.map +1 -0
  159. package/src/components/table/EUIStudentPagination.vue +172 -0
  160. package/src/components/table/EUIStudentPagination.vue.js.map +1 -0
  161. package/src/components/table/EUITable.stories.ts +300 -0
  162. package/src/components/table/EUITable.vue +559 -0
  163. package/src/components/table/EUITable.vue.js.map +1 -0
  164. package/src/components/table/EUITableCheckbox.vue +98 -0
  165. package/src/components/table/EUITableCheckbox.vue.js.map +1 -0
  166. package/src/components/table/GrowthTable.vue +575 -0
  167. package/src/components/table/GrowthTable.vue.js.map +1 -0
  168. package/src/components/table/GrowthTableView.vue +108 -0
  169. package/src/components/table/GrowthTableView.vue.js.map +1 -0
  170. package/src/components/table/ResizeTableview.vue +198 -0
  171. package/src/components/table/ResizeTableview.vue.js.map +1 -0
  172. package/src/components/table/UCheckbox.vue +169 -0
  173. package/src/components/table/UCheckbox.vue.js.map +1 -0
  174. package/src/components/table/UTable.scss +69 -0
  175. package/src/components/table/UTable.vue +611 -0
  176. package/src/components/table/UTable.vue.js.map +1 -0
  177. package/src/components/table/UTableview.vue +189 -0
  178. package/src/components/table/UTableview.vue.js.map +1 -0
  179. package/src/components/tabs/EUITabOutline.vue +263 -0
  180. package/src/components/tabs/EUITabOutline.vue.js.map +1 -0
  181. package/src/components/tabs/EUITabs.vue +226 -0
  182. package/src/components/tabs/EUITabs.vue.js.map +1 -0
  183. package/src/components/tabs/EUItabs.stories.ts +137 -0
  184. package/src/components/tag/EUITag.stories.ts +53 -0
  185. package/src/components/tag/EUITag.vue +88 -0
  186. package/src/components/tag/EUITag.vue.js.map +1 -0
  187. package/src/components/telephone/EUITelephone.stories.ts +358 -0
  188. package/src/components/telephone/EUITelephone.vue +299 -0
  189. package/src/components/telephone/EUITelephone.vue.js.map +1 -0
  190. package/src/components/textArea/EUITextArea.stories.ts +134 -0
  191. package/src/components/textArea/EUITextArea.vue +155 -0
  192. package/src/components/textArea/EUITextArea.vue.js.map +1 -0
  193. package/src/components/timeLine/EUITimeLine.stories.ts +247 -0
  194. package/src/components/timeLine/EUITimeLine.vue +148 -0
  195. package/src/components/timeLine/EUITimeLine.vue.js.map +1 -0
  196. package/src/components/toggle/EUIToggle.stories.ts +63 -0
  197. package/src/components/toggle/EUIToggle.vue +101 -0
  198. package/src/components/toggle/EUIToggle.vue.js.map +1 -0
  199. package/src/components/tooltip/EUITooltip.stories.ts +53 -0
  200. package/src/components/tooltip/EUITooltip.vue +111 -0
  201. package/src/components/tooltip/EUITooltip.vue.js.map +1 -0
  202. package/src/components/uidemo/select-com.vue +120 -0
  203. package/src/components/uidemo/select-com.vue.js.map +1 -0
  204. package/src/data/books.js.map +1 -0
  205. package/src/data/books.ts +163 -0
  206. package/src/data/country.ts +56 -0
  207. package/src/data/tab.js.map +1 -0
  208. package/src/data/tab.ts +40 -0
  209. package/src/data/table.js.map +1 -0
  210. package/src/data/table.ts +5654 -0
  211. package/src/main.js.map +1 -0
  212. package/src/main.ts +5 -0
  213. package/src/style.scss +186 -0
  214. package/src/utils/helpers.js.map +1 -0
  215. package/src/utils/helpers.ts +30 -0
  216. package/src/utils/lodash.js.map +1 -0
  217. package/src/utils/lodash.ts +9 -0
  218. package/src/utils/types.js.map +1 -0
  219. package/src/utils/types.ts +9 -0
  220. package/src/vite-env.d.ts +5 -0
  221. package/dist/EUISelectSearch.vue.d.ts.map +0 -1
  222. package/dist/edvoy-ui.umd.js +0 -168
  223. /package/dist/{EUISelectSearch.vue.d.ts → selectSearch/EUISelectSearch.vue.d.ts} +0 -0
@@ -0,0 +1,194 @@
1
+ <template>
2
+ <transition
3
+ enter-active-class="transition duration-300 ease-out transform"
4
+ enter-from-class="translate-y-2 opacity-0 sm:translate-y-0 sm:translate-x-2"
5
+ enter-to-class="translate-y-0 opacity-100 sm:translate-x-0"
6
+ leave-active-class="transition duration-100 ease-in"
7
+ leave-from-class="opacity-100"
8
+ leave-to-class="opacity-0"
9
+ >
10
+ <div v-if="showAlert" :class="['p-4 rounded-md', alertsClass.bgColor]">
11
+ <div
12
+ :class="[closeIcon && !textMessage ? 'items-center pr-2 flex' : 'flex items-start']"
13
+ >
14
+ <div class="shrink-0">
15
+ <slot name="icon">
16
+ <component
17
+ :is="alertIcon || alertsClass.leftIcon?.icon"
18
+ :class="['size-5', alertsClass.leftIcon?.color]"
19
+ aria-hidden="true"
20
+ />
21
+ </slot>
22
+ </div>
23
+ <div class="ml-3">
24
+ <h3 :class="['text-sm font-medium', alertsClass.titleColor]">
25
+ <slot name="title">{{ heading || "Alert Title" }}</slot>
26
+ </h3>
27
+
28
+ <slot name="content">
29
+ <div v-if="textMessage" :class="['mt-2 text-sm', alertsClass.textColor]">
30
+ {{ textMessage || "your description here..." }}
31
+ </div>
32
+ </slot>
33
+
34
+ <slot name="actionButtons">
35
+ <div v-if="actionItems" class="mt-4">
36
+ <div class="-mx-2 -my-1.5 flex">
37
+ <button
38
+ type="button"
39
+ :class="[
40
+ 'rounded-md px-3 py-1.5 text-sm font-medium text-white focus:outline-none focus:ring-2 focus:ring-offset-2',
41
+ alertsClass.btnPrimary,
42
+ ]"
43
+ @click="onAction"
44
+ >
45
+ View status
46
+ </button>
47
+ <button
48
+ type="button"
49
+ :class="[
50
+ 'ml-3 rounded-md px-3 py-1.5 text-sm font-medium focus:outline-none focus:ring-2 focus:ring-offset-2',
51
+ alertsClass.btnTertiary,
52
+ ]"
53
+ @click="onClose"
54
+ >
55
+ Dismiss
56
+ </button>
57
+ </div>
58
+ </div>
59
+ </slot>
60
+ </div>
61
+ <div v-if="closeIcon" class="ms-auto ps-3">
62
+ <slot name="xclose">
63
+ <div class="-mx-1.5 -my-1.5 pt-1">
64
+ <button
65
+ type="button"
66
+ :class="[
67
+ 'inline-flex rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2',
68
+ alertsClass.btnClose,
69
+ ]"
70
+ @click="onClose()"
71
+ >
72
+ <span class="sr-only">Dismiss</span>
73
+ <XMarkIcon class="size-5" aria-hidden="true" />
74
+ </button>
75
+ </div>
76
+ </slot>
77
+ </div>
78
+ </div>
79
+ </div>
80
+ </transition>
81
+ </template>
82
+
83
+ <script setup lang="ts">
84
+ import { computed, toRefs, type PropType } from "vue";
85
+ import {
86
+ ExclamationTriangleIcon,
87
+ CheckCircleIcon,
88
+ XCircleIcon,
89
+ XMarkIcon,
90
+ } from "@heroicons/vue/24/solid";
91
+
92
+ const props = defineProps({
93
+ showAlert: {
94
+ type: Boolean,
95
+ default: true,
96
+ },
97
+ heading: {
98
+ type: String,
99
+ default: "",
100
+ },
101
+ textMessage: {
102
+ type: String,
103
+ default: "",
104
+ },
105
+ alertType: {
106
+ type: String as PropType<"Default" | "Warning" | "Success" | "Error">,
107
+ default: "Default",
108
+ },
109
+ alertIcon: {
110
+ type: [String, Object, Function],
111
+ default: "",
112
+ },
113
+ actionItems: Boolean,
114
+ closeIcon: Boolean,
115
+ });
116
+ const { showAlert } = toRefs(props);
117
+ const emits = defineEmits(["update:showAlert", "alertAction", "alertDismiss"]);
118
+ const onAction = () => {
119
+ emits("alertAction", true);
120
+ emits("update:showAlert", false);
121
+ };
122
+ const onClose = () => {
123
+ emits("alertDismiss", false);
124
+ emits("update:showAlert", false);
125
+ };
126
+
127
+ const alertsClass = computed(() => {
128
+ const iconClasses = {
129
+ Default: {
130
+ bgColor: "bg-blue-50",
131
+ leftIcon: {
132
+ icon: CheckCircleIcon,
133
+ color: "text-blue-400",
134
+ },
135
+ titleColor: "text-blue-800",
136
+ textColor: "text-blue-700",
137
+ btnPrimary:
138
+ "bg-blue-700 hover:bg-blue-800 focus:ring-blue-600 focus:ring-offset-blue-50",
139
+ btnTertiary:
140
+ "text-blue-500 bg-blue-50 hover:bg-blue-100 focus:ring-blue-600 focus:ring-offset-blue-50",
141
+ btnClose:
142
+ "bg-blue-50 text-blue-500 hover:bg-blue-100 focus:ring-blue-600 focus:ring-offset-blue-50",
143
+ },
144
+ Warning: {
145
+ bgColor: "bg-yellow-50",
146
+ leftIcon: {
147
+ icon: ExclamationTriangleIcon,
148
+ color: "text-yellow-400",
149
+ },
150
+ titleColor: "text-yellow-800",
151
+ textColor: "text-yellow-700",
152
+ btnPrimary:
153
+ "bg-yellow-700 hover:bg-yellow-800 focus:ring-yellow-600 focus:ring-offset-yellow-50",
154
+ btnTertiary:
155
+ "text-yellow-500 bg-yellow-50 hover:bg-yellow-100 focus:ring-yellow-600 focus:ring-offset-yellow-50",
156
+ btnClose:
157
+ "bg-yellow-50 text-yellow-500 hover:bg-yellow-100 focus:ring-yellow-600 focus:ring-offset-yellow-50",
158
+ },
159
+ Success: {
160
+ bgColor: "bg-green-50",
161
+ leftIcon: {
162
+ icon: CheckCircleIcon,
163
+ color: "text-green-400",
164
+ },
165
+ titleColor: "text-green-800",
166
+ textColor: "text-green-700",
167
+ btnPrimary:
168
+ "bg-green-700 hover:bg-green-800 focus:ring-green-600 focus:ring-offset-green-50",
169
+ btnTertiary:
170
+ "text-green-500 bg-green-50 hover:bg-green-100 focus:ring-green-600 focus:ring-offset-green-50",
171
+ btnClose:
172
+ "bg-green-50 text-green-500 hover:bg-green-100 focus:ring-green-600 focus:ring-offset-green-50",
173
+ },
174
+ Error: {
175
+ bgColor: "bg-red-50",
176
+ leftIcon: {
177
+ icon: XCircleIcon,
178
+ color: "text-red-400",
179
+ },
180
+ titleColor: "text-red-800",
181
+ textColor: "text-red-700",
182
+ btnPrimary:
183
+ "bg-red-700 hover:bg-red-800 focus:ring-red-600 focus:ring-offset-red-50",
184
+ btnTertiary:
185
+ "text-red-500 bg-red-50 hover:bg-red-100 focus:ring-red-600 focus:ring-offset-red-50",
186
+ btnClose:
187
+ "bg-red-50 text-red-500 hover:bg-red-100 focus:ring-red-600 focus:ring-offset-red-50",
188
+ },
189
+ };
190
+ return iconClasses[props.alertType] || "";
191
+ });
192
+ </script>
193
+
194
+ <style scoped></style>
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EUIAlerts.vue.js","sourceRoot":"","sources":["EUIAlerts.vue"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ import type { Meta, StoryObj } from "@storybook/vue3";
2
+ import EUIAvatar from "./EUIAvatar.vue"; // Adjust the path if necessary
3
+
4
+ const meta = {
5
+ title: "Example/Avatar",
6
+ component: EUIAvatar,
7
+ tags: ["autodocs"],
8
+ argTypes: {
9
+ imageUrl: {
10
+ type: "string",
11
+ description: "Show image URLs",
12
+ },
13
+ fullName: {
14
+ type: "string",
15
+ description: "No image URL show Name FirstLetter",
16
+ },
17
+ size: {
18
+ control: { type: "select", options: ["xs", "sm", "md", "lg", "xl"] },
19
+ description: "Size of the button.",
20
+ },
21
+ showStatus: {
22
+ control: { type: "boolean" },
23
+ description: "Show online/Offline status",
24
+ },
25
+ status: {
26
+ control: { type: "select", options: ["Online", "Offline"] },
27
+ description: "Profile Status",
28
+ },
29
+ profile: {
30
+ control: { type: "boolean" },
31
+ description:
32
+ "Show Profile enable \n\n Name and Designation use \n\n `<template #name></template><template #designation></template>`",
33
+ },
34
+ profileData: {
35
+ control: { type: "object" },
36
+ description: "Profile data send name and Designation or use template",
37
+ },
38
+ },
39
+ } satisfies Meta<typeof EUIAvatar>;
40
+
41
+ export default meta;
42
+ type Story = StoryObj<typeof meta>;
43
+
44
+ // Default button story with default slot content
45
+ export const Default: Story = {
46
+ argTypes: {
47
+ size: {
48
+ control: "select",
49
+ options: ["xs", "sm", "md", "lg", "xl"],
50
+ },
51
+ imageUrl: {
52
+ type: "string",
53
+ },
54
+ status: {
55
+ control: "select",
56
+ options: ["Online", "Offline"],
57
+ },
58
+ },
59
+ args: {
60
+ imageUrl: "https://tinyurl.com/43e5fxh9",
61
+ size: "md",
62
+ showStatus: true,
63
+ status: "Online",
64
+ },
65
+ render: (args) => ({
66
+ components: { EUIAvatar },
67
+ setup() {
68
+ return { args };
69
+ },
70
+ template: `<EUIAvatar v-bind="args"></EUIAvatar>`,
71
+ }),
72
+ };
73
+
74
+ export const FirstLetter: Story = {
75
+ argTypes: {
76
+ size: {
77
+ control: "select",
78
+ options: ["xs", "sm", "md", "lg", "xl"],
79
+ },
80
+ fullName: {
81
+ type: "string",
82
+ },
83
+ status: {
84
+ control: "select",
85
+ options: ["Online", "Offline"],
86
+ },
87
+ },
88
+ args: {
89
+ fullName: "JohnCena",
90
+ size: "md",
91
+ showStatus: true,
92
+ status: "Offline",
93
+ },
94
+ render: (args) => ({
95
+ components: { EUIAvatar },
96
+ setup() {
97
+ return { args };
98
+ },
99
+ template: `<EUIAvatar v-bind="args"></EUIAvatar>`,
100
+ }),
101
+ };
102
+
103
+ export const Profile: Story = {
104
+ argTypes: {
105
+ size: {
106
+ control: "select",
107
+ options: ["xs", "sm", "md", "lg", "xl"],
108
+ },
109
+ imageUrl: { type: "string" },
110
+ status: {
111
+ control: "select",
112
+ options: ["Online", "Offline"],
113
+ },
114
+ profile: { type: "boolean" },
115
+ name: { type: "string" },
116
+ designation: { type: "string" },
117
+ },
118
+ args: {
119
+ imageUrl: "https://tinyurl.com/43e5fxh9",
120
+ size: "sm",
121
+ showStatus: true,
122
+ status: "Online",
123
+ profile: true,
124
+ name: "John Cena",
125
+ designation: "Actor",
126
+ },
127
+ render: (args) => ({
128
+ components: { EUIAvatar },
129
+ setup() {
130
+ return { args };
131
+ },
132
+ template: `<EUIAvatar v-bind="args">
133
+ <template #name>{{args.name}}</template>
134
+ <template #designation>{{ args.designation }}</template>
135
+ </EUIAvatar>`,
136
+ }),
137
+ };
138
+
139
+ export const ProfileData: Story = {
140
+ argTypes: {},
141
+ args: {
142
+ imageUrl: "https://tinyurl.com/43e5fxh9",
143
+ size: "xl",
144
+ profile: true,
145
+ profileData: {
146
+ name: "John Cena",
147
+ designation: "Actor",
148
+ },
149
+ },
150
+ render: (args) => ({
151
+ components: { EUIAvatar },
152
+ setup() {
153
+ return { args };
154
+ },
155
+ template: `<EUIAvatar v-bind="args"></EUIAvatar>`,
156
+ }),
157
+ };
@@ -0,0 +1,96 @@
1
+ <template>
2
+ <div class="group">
3
+ <div class="flex items-center">
4
+ <div :class="['relative inline-block flex-none', avatarSize]">
5
+ <img
6
+ v-if="imageUrl"
7
+ :class="['group-hover:ring-2 ring-offset-2 ring-gray-300', rounded ? 'rounded-full' : 'rounded-md', avatarSize]"
8
+ :src="imageUrl"
9
+ alt=""
10
+ />
11
+ <span
12
+ v-else
13
+ :class="['flex items-center justify-center mx-auto text-white capitalize', rounded ? 'rounded-full':'rounded-md', avatarSize]"
14
+ :style="{background:profileColor}">
15
+ {{ fullName && fullName.charAt(0) }}
16
+ </span>
17
+ <span
18
+ v-if="showStatus"
19
+ :class="['absolute bottom-0 right-0 block rounded-full ring-2 ring-white',checkStatus === 'Online'?'bg-green-500':'bg-gray-400',
20
+ size === 'xs' ? 'size-1.5' : size === 'sm' ? 'size-2' : 'size-3']"
21
+ />
22
+ </div>
23
+ <div v-if="profile" class="flex-1 ms-2">
24
+ <div class="text-base font-semibold text-gray-600 capitalize group-hover:text-gray-900">
25
+ <slot name="name" :profileData="profileData">{{ profileData?.name }}</slot>
26
+ </div>
27
+ <div class="text-sm font-medium text-gray-500 group-hover:text-gray-700">
28
+ <slot name="designation" :profileData="profileData">{{ profileData?.designation }}</slot>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ </template>
34
+
35
+ <script setup lang="ts">
36
+ import { computed, PropType, reactive } from "vue";
37
+
38
+ interface ProfileData {
39
+ name: string;
40
+ designation: string;
41
+ }
42
+
43
+
44
+ const props = defineProps({
45
+ imageUrl: {
46
+ type: String,
47
+ default: "",
48
+ required: true
49
+ },
50
+ fullName: {
51
+ type: String,
52
+ default: "",
53
+ required: false,
54
+ },
55
+ profile: {
56
+ type: Boolean,
57
+ required: false,
58
+ },
59
+ size: {
60
+ type: String as PropType<"xs" | "sm" | "md" | "lg" | "xl">,
61
+ default: "md",
62
+ },
63
+ rounded: {
64
+ type: Boolean,
65
+ default: true,
66
+ },
67
+ showStatus: {
68
+ type: Boolean,
69
+ default: false,
70
+ },
71
+ status: {
72
+ type: String as PropType<"Online" | "Offline">,
73
+ default: "Online",
74
+ },
75
+ profileData: {
76
+ type: Object as PropType<ProfileData>,
77
+ default: () => ({ name: "", designation: "" }),
78
+ }
79
+ });
80
+
81
+ const sizes = reactive({
82
+ xs: "size-6", // 24
83
+ sm: "size-8", // 32
84
+ md: "size-10", // 40
85
+ lg: "size-12", // 48
86
+ xl: "size-16", // 48
87
+ });
88
+
89
+ const avatarSize = computed(() => sizes[props.size] || "")
90
+ const checkStatus = computed(() => props.status);
91
+ const profileColor = computed(() => colors[Math.floor(Math.random() * colors.length)])
92
+
93
+ const colors = ['#6366F1','#F97316','#65A30D','#E11D48','#4B5563','#059669','#1D4ED8','#7C3AED','#FB923C','#fe4ca9']
94
+ </script>
95
+
96
+ <style scoped></style>
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EUIAvatar.vue.js","sourceRoot":"","sources":["EUIAvatar.vue"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ // EUIBreadcrumb.stories.ts
2
+ import { Meta, StoryObj } from "@storybook/vue3";
3
+ import EUIBreadcrumb from "./EUIBreadcrumb.vue";
4
+ import {
5
+ BookOpenIcon,
6
+ HomeIcon,
7
+ TableCellsIcon,
8
+ } from "@heroicons/vue/24/outline";
9
+
10
+ const meta = {
11
+ title: "Components/Breadcrumb",
12
+ component: EUIBreadcrumb,
13
+ tags: ["autodocs"],
14
+ argTypes: {
15
+ pages: {
16
+ description: `An array of objects representing the breadcrumb pages.
17
+ Each object can include:
18
+ - \`name\` (string): The display name of the breadcrumb item.
19
+ - \`href\` (string, optional): The URL the breadcrumb item points to.
20
+ - \`current\` (boolean, optional): Indicates if the breadcrumb item is the current page.
21
+ - \`showIcon\` (Vue component, optional): An icon component to display alongside the name.`,
22
+ control: "object",
23
+ },
24
+ },
25
+ } satisfies Meta<typeof EUIBreadcrumb>;
26
+
27
+ export default meta;
28
+ type Story = StoryObj<typeof meta>;
29
+
30
+ // Default story with minimum props
31
+ export const Default: Story = {
32
+ args: {
33
+ pages: [
34
+ {
35
+ name: "Home",
36
+ href: "/",
37
+ current: true,
38
+ },
39
+ {
40
+ name: "Library",
41
+ href: "/library",
42
+ current: false,
43
+ },
44
+ {
45
+ name: "Data",
46
+ current: false,
47
+ },
48
+ ],
49
+ },
50
+ };
51
+
52
+ // Default story with minimum props
53
+ export const IconsUsed: Story = {
54
+ args: {
55
+ pages: [
56
+ {
57
+ name: "Home",
58
+ href: "/",
59
+ current: true,
60
+ showIcon: HomeIcon,
61
+ },
62
+ {
63
+ name: "Library",
64
+ href: "/library",
65
+ current: false,
66
+ showIcon: BookOpenIcon,
67
+ },
68
+ {
69
+ name: "Data",
70
+ current: false,
71
+ showIcon: TableCellsIcon,
72
+ },
73
+ ],
74
+ },
75
+ };
@@ -0,0 +1,59 @@
1
+ <template>
2
+ <nav aria-label="breadcrumb" class="my-2">
3
+ <ol
4
+ role="list"
5
+ class="flex items-center justify-start max-w-full space-x-1"
6
+ >
7
+ <li
8
+ v-for="(page, index) in pages"
9
+ :key="page.name"
10
+ class="flex flex-row items-center justify-start space-x-1"
11
+ >
12
+ <a
13
+ :href="page.href"
14
+ class="inline-flex items-center gap-2 text-sm font-medium font-inter"
15
+ :class="
16
+ pages.length - 1 !== index
17
+ ? 'text-gray-600 hover:text-gray-700'
18
+ : 'text-gray-500'
19
+ "
20
+ :aria-current="page.current ? 'page' : undefined"
21
+ >
22
+ <component
23
+ v-if="page?.showIcon"
24
+ :is="page?.showIcon"
25
+ class="text-current size-4"
26
+ />
27
+ {{ page.name }}</a
28
+ >
29
+ <ChevronDownStroke
30
+ v-if="pages.length - 1 !== index"
31
+ class="flex-shrink-0 w-5 h-5 text-gray-400 transform -rotate-90"
32
+ aria-hidden="true"
33
+ />
34
+ </li>
35
+ </ol>
36
+ </nav>
37
+ </template>
38
+
39
+ <script setup lang="ts">
40
+ import { toRefs, type PropType } from "vue";
41
+ import ChevronDownStroke from "../../assets/svg/ChevronDownStroke.vue";
42
+
43
+ interface BreadcrumbPage {
44
+ name: string;
45
+ href?: string;
46
+ current?: boolean;
47
+ showIcon?: {};
48
+ }
49
+
50
+ const props = defineProps({
51
+ pages: {
52
+ type: Array as PropType<BreadcrumbPage[]>,
53
+ default: [],
54
+ },
55
+ });
56
+ const { pages } = toRefs(props);
57
+ </script>
58
+
59
+ <style scoped></style>
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EUIBreadcrumb.vue.js","sourceRoot":"","sources":["EUIBreadcrumb.vue"],"names":[],"mappings":"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"}