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

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/library-vue-ts.umd.js +168 -0
  2. package/dist/selectSearch/EUISelectSearch.vue.d.ts.map +1 -0
  3. package/package.json +10 -11
  4. package/src/App.vue +16 -0
  5. package/src/App.vue.js.map +1 -0
  6. package/src/assets/fonts/gilroy/GilroyBold/font.woff +0 -0
  7. package/src/assets/fonts/gilroy/GilroyBold/font.woff2 +0 -0
  8. package/src/assets/fonts/gilroy/GilroyBoldItalic/font.woff +0 -0
  9. package/src/assets/fonts/gilroy/GilroyBoldItalic/font.woff2 +0 -0
  10. package/src/assets/fonts/gilroy/GilroyExtraBold/font.woff +0 -0
  11. package/src/assets/fonts/gilroy/GilroyExtraBold/font.woff2 +0 -0
  12. package/src/assets/fonts/gilroy/GilroyExtraBoldItalic/font.woff +0 -0
  13. package/src/assets/fonts/gilroy/GilroyExtraBoldItalic/font.woff2 +0 -0
  14. package/src/assets/fonts/gilroy/GilroyMedium/font.woff +0 -0
  15. package/src/assets/fonts/gilroy/GilroyMedium/font.woff2 +0 -0
  16. package/src/assets/fonts/gilroy/GilroyRegular/font.woff +0 -0
  17. package/src/assets/fonts/gilroy/GilroyRegular/font.woff2 +0 -0
  18. package/src/assets/fonts/gilroy/GilroySemiBold/font.woff +0 -0
  19. package/src/assets/fonts/gilroy/GilroySemiBold/font.woff2 +0 -0
  20. package/src/assets/fonts/inter/Inter-Bold.woff +0 -0
  21. package/src/assets/fonts/inter/Inter-Bold.woff2 +0 -0
  22. package/src/assets/fonts/inter/Inter-Italic.woff +0 -0
  23. package/src/assets/fonts/inter/Inter-Italic.woff2 +0 -0
  24. package/src/assets/fonts/inter/Inter-Medium.woff +0 -0
  25. package/src/assets/fonts/inter/Inter-Medium.woff2 +0 -0
  26. package/src/assets/fonts/inter/Inter-MediumItalic.woff +0 -0
  27. package/src/assets/fonts/inter/Inter-MediumItalic.woff2 +0 -0
  28. package/src/assets/fonts/inter/Inter-Regular.woff +0 -0
  29. package/src/assets/fonts/inter/Inter-Regular.woff2 +0 -0
  30. package/src/assets/fonts/inter/Inter-SemiBold.woff +0 -0
  31. package/src/assets/fonts/inter/Inter-SemiBold.woff2 +0 -0
  32. package/src/assets/fonts/inter/Inter-SemiBoldItalic.woff +0 -0
  33. package/src/assets/fonts/inter/Inter-SemiBoldItalic.woff2 +0 -0
  34. package/src/assets/images/search-nodata.png +0 -0
  35. package/src/assets/scss/body.scss +25 -0
  36. package/src/assets/svg/CheckTick.vue +21 -0
  37. package/src/assets/svg/CheckTick.vue.js.map +1 -0
  38. package/src/assets/svg/ChevronBigDown.vue +22 -0
  39. package/src/assets/svg/ChevronBigDown.vue.js.map +1 -0
  40. package/src/assets/svg/ChevronDownSolid.vue +19 -0
  41. package/src/assets/svg/ChevronDownSolid.vue.js.map +1 -0
  42. package/src/assets/svg/ChevronDownStroke.vue +22 -0
  43. package/src/assets/svg/ChevronDownStroke.vue.js.map +1 -0
  44. package/src/assets/svg/ChevronDownStrokeSolid.vue +19 -0
  45. package/src/assets/svg/ChevronDownStrokeSolid.vue.js.map +1 -0
  46. package/src/assets/svg/SearchBigZoomIn.vue +21 -0
  47. package/src/assets/svg/SearchBigZoomIn.vue.js.map +1 -0
  48. package/src/assets/svg/SortArrow.vue +24 -0
  49. package/src/assets/svg/SortArrow.vue.js.map +1 -0
  50. package/src/assets/svg/Student.vue +30 -0
  51. package/src/assets/svg/Student.vue.js.map +1 -0
  52. package/src/assets/svg/partner.vue +33 -0
  53. package/src/assets/svg/partner.vue.js.map +1 -0
  54. package/src/assets/svg/people.vue +25 -0
  55. package/src/assets/svg/people.vue.js.map +1 -0
  56. package/src/assets/vue.svg +1 -0
  57. package/src/components/HelloWorld.vue +1974 -0
  58. package/src/components/HelloWorld.vue.js.map +1 -0
  59. package/src/components/accordion/EUIAccordion.stories.ts +204 -0
  60. package/src/components/accordion/EUIAccordion.vue +152 -0
  61. package/src/components/accordion/EUIAccordion.vue.js.map +1 -0
  62. package/src/components/alerts/EUIAlerts.stories.ts +217 -0
  63. package/src/components/alerts/EUIAlerts.vue +194 -0
  64. package/src/components/alerts/EUIAlerts.vue.js.map +1 -0
  65. package/src/components/avatar/EUIAvatar.stories.ts +157 -0
  66. package/src/components/avatar/EUIAvatar.vue +96 -0
  67. package/src/components/avatar/EUIAvatar.vue.js.map +1 -0
  68. package/src/components/breadcrumb/EUIBreadcrumb.stories.ts +75 -0
  69. package/src/components/breadcrumb/EUIBreadcrumb.vue +59 -0
  70. package/src/components/breadcrumb/EUIBreadcrumb.vue.js.map +1 -0
  71. package/src/components/button/EUIButton.stories.ts +270 -0
  72. package/src/components/button/EUIButton.vue +154 -0
  73. package/src/components/button/EUIButton.vue.js.map +1 -0
  74. package/src/components/button/EUIButtonGroup.vue +287 -0
  75. package/src/components/button/EUIButtonGroup.vue.js.map +1 -0
  76. package/src/components/button/buttonAnimateTab.vue +74 -0
  77. package/src/components/button/buttonAnimateTab.vue.js.map +1 -0
  78. package/src/components/checkbox/EUICheckbox.stories.ts +58 -0
  79. package/src/components/checkbox/EUICheckbox.vue +110 -0
  80. package/src/components/checkbox/EUICheckbox.vue.js.map +1 -0
  81. package/src/components/datepicker/EUIDatepicker.stories.ts +492 -0
  82. package/src/components/datepicker/EUIDatepicker.vue +295 -0
  83. package/src/components/datepicker/EUIDatepicker.vue.js.map +1 -0
  84. package/src/components/delete.vue +262 -0
  85. package/src/components/delete.vue.js.map +1 -0
  86. package/src/components/dragModal/EUIDrag.vue +179 -0
  87. package/src/components/dragModal/EUIDrag.vue.js.map +1 -0
  88. package/src/components/dropdown/EUIMultiDropdown.stories.ts +294 -0
  89. package/src/components/dropdown/EUIMultiDropdown.vue +174 -0
  90. package/src/components/dropdown/EUIMultiDropdown.vue.js.map +1 -0
  91. package/src/components/errorMessage/EUIErrorMessage.scss +0 -0
  92. package/src/components/errorMessage/EUIErrorMessage.stories.ts +41 -0
  93. package/src/components/errorMessage/EUIErrorMessage.vue +25 -0
  94. package/src/components/errorMessage/EUIErrorMessage.vue.js.map +1 -0
  95. package/src/components/index.js.map +1 -0
  96. package/src/components/index.ts +62 -0
  97. package/src/components/input/EUIInput.stories.ts +387 -0
  98. package/src/components/input/EUIInput.vue +223 -0
  99. package/src/components/input/EUIInput.vue.js.map +1 -0
  100. package/src/components/input/EUINumberInput.vue +250 -0
  101. package/src/components/loader/EUICircleLoader.vue +31 -0
  102. package/src/components/loader/EUICircleLoader.vue.js.map +1 -0
  103. package/src/components/loader/EUICubeLoader.vue +237 -0
  104. package/src/components/loader/EUICubeLoader.vue.js.map +1 -0
  105. package/src/components/loader/EUILoader.stories.ts +99 -0
  106. package/src/components/loader/EUILoader.vue +17 -0
  107. package/src/components/loader/EUILoader.vue.js.map +1 -0
  108. package/src/components/loader/EUISquareLoader.vue +47 -0
  109. package/src/components/loader/EUISquareLoader.vue.js.map +1 -0
  110. package/src/components/modal/EUIModal.stories.ts +412 -0
  111. package/src/components/modal/EUIModal.vue +224 -0
  112. package/src/components/modal/EUIModal.vue.js.map +1 -0
  113. package/src/components/pillSelect/EUIPillSelect.stories.ts +74 -0
  114. package/src/components/pillSelect/EUIPillSelect.vue +149 -0
  115. package/src/components/pillSelect/EUIPillSelect.vue.js.map +1 -0
  116. package/src/components/popover/EUIPopover.stories.ts +306 -0
  117. package/src/components/popover/EUIPopover.vue +297 -0
  118. package/src/components/popover/EUIPopover.vue.js.map +1 -0
  119. package/src/components/radio/EUIRadio.stories.ts +54 -0
  120. package/src/components/radio/EUIRadio.vue +75 -0
  121. package/src/components/radio/EUIRadio.vue.js.map +1 -0
  122. package/src/components/searchInput/EUISearch.stories.ts +24 -0
  123. package/src/components/searchInput/EUISearch.vue +223 -0
  124. package/src/components/searchInput/EUISearch.vue.js.map +1 -0
  125. package/src/components/searchTagSelect/EUISearchTagSelect.vue +642 -0
  126. package/src/components/searchTagSelect/EUISearchTagSelect.vue.js.map +1 -0
  127. package/src/components/searchTagSelect/SearchInput.vue +167 -0
  128. package/src/components/searchTagSelect/SearchInput.vue.js.map +1 -0
  129. package/src/components/searchexpand/EUISearchExpand.vue +148 -0
  130. package/src/components/searchexpand/EUISearchExpand.vue.js.map +1 -0
  131. package/src/components/searchexpand/EUISearchToggle.vue +86 -0
  132. package/src/components/searchexpand/EUISearchToggle.vue.js.map +1 -0
  133. package/src/components/select/EUISelect.stories.ts +101 -0
  134. package/src/components/select/EUISelect.vue +1092 -0
  135. package/src/components/select/EUISelect.vue.js.map +1 -0
  136. package/src/components/selectSearch/EUISelectSearch.vue +23 -0
  137. package/src/components/selectSearch/EUISelectSearch.vue.js.map +1 -0
  138. package/src/components/slideover/EUISlideover.stories.ts +318 -0
  139. package/src/components/slideover/EUISlideover.vue +207 -0
  140. package/src/components/slideover/EUISlideover.vue.js.map +1 -0
  141. package/src/components/stepperTimeline/EUIStepperHorizontal.vue +242 -0
  142. package/src/components/stepperTimeline/EUIStepperHorizontal.vue.js.map +1 -0
  143. package/src/components/stepperTimeline/EUIStepperTimeline.stories.ts +54 -0
  144. package/src/components/stepperTimeline/EUIStepperTimeline.vue +16 -0
  145. package/src/components/stepperTimeline/EUIStepperTimeline.vue.js.map +1 -0
  146. package/src/components/stepperTimeline/EUIStepperVertical.vue +112 -0
  147. package/src/components/stepperTimeline/EUIStepperVertical.vue.js.map +1 -0
  148. package/src/components/table/ColumnResizeTable.vue +740 -0
  149. package/src/components/table/ColumnResizeTable.vue.js.map +1 -0
  150. package/src/components/table/EUIDashboardTable.vue +514 -0
  151. package/src/components/table/EUIDashboardTable.vue.js.map +1 -0
  152. package/src/components/table/EUIPageLimit.vue +66 -0
  153. package/src/components/table/EUIPageLimit.vue.js.map +1 -0
  154. package/src/components/table/EUIPagination.vue +175 -0
  155. package/src/components/table/EUIPagination.vue.js.map +1 -0
  156. package/src/components/table/EUIStudentPagination.vue +172 -0
  157. package/src/components/table/EUIStudentPagination.vue.js.map +1 -0
  158. package/src/components/table/EUITable.stories.ts +300 -0
  159. package/src/components/table/EUITable.vue +559 -0
  160. package/src/components/table/EUITable.vue.js.map +1 -0
  161. package/src/components/table/EUITableCheckbox.vue +98 -0
  162. package/src/components/table/EUITableCheckbox.vue.js.map +1 -0
  163. package/src/components/table/GrowthTable.vue +575 -0
  164. package/src/components/table/GrowthTable.vue.js.map +1 -0
  165. package/src/components/table/GrowthTableView.vue +108 -0
  166. package/src/components/table/GrowthTableView.vue.js.map +1 -0
  167. package/src/components/table/ResizeTableview.vue +198 -0
  168. package/src/components/table/ResizeTableview.vue.js.map +1 -0
  169. package/src/components/table/UCheckbox.vue +169 -0
  170. package/src/components/table/UCheckbox.vue.js.map +1 -0
  171. package/src/components/table/UTable.scss +69 -0
  172. package/src/components/table/UTable.vue +611 -0
  173. package/src/components/table/UTable.vue.js.map +1 -0
  174. package/src/components/table/UTableview.vue +189 -0
  175. package/src/components/table/UTableview.vue.js.map +1 -0
  176. package/src/components/tabs/EUITabOutline.vue +263 -0
  177. package/src/components/tabs/EUITabOutline.vue.js.map +1 -0
  178. package/src/components/tabs/EUITabs.vue +226 -0
  179. package/src/components/tabs/EUITabs.vue.js.map +1 -0
  180. package/src/components/tabs/EUItabs.stories.ts +137 -0
  181. package/src/components/tag/EUITag.stories.ts +53 -0
  182. package/src/components/tag/EUITag.vue +88 -0
  183. package/src/components/tag/EUITag.vue.js.map +1 -0
  184. package/src/components/telephone/EUITelephone.stories.ts +358 -0
  185. package/src/components/telephone/EUITelephone.vue +299 -0
  186. package/src/components/telephone/EUITelephone.vue.js.map +1 -0
  187. package/src/components/textArea/EUITextArea.stories.ts +134 -0
  188. package/src/components/textArea/EUITextArea.vue +155 -0
  189. package/src/components/textArea/EUITextArea.vue.js.map +1 -0
  190. package/src/components/timeLine/EUITimeLine.stories.ts +247 -0
  191. package/src/components/timeLine/EUITimeLine.vue +148 -0
  192. package/src/components/timeLine/EUITimeLine.vue.js.map +1 -0
  193. package/src/components/toggle/EUIToggle.stories.ts +63 -0
  194. package/src/components/toggle/EUIToggle.vue +101 -0
  195. package/src/components/toggle/EUIToggle.vue.js.map +1 -0
  196. package/src/components/tooltip/EUITooltip.stories.ts +53 -0
  197. package/src/components/tooltip/EUITooltip.vue +111 -0
  198. package/src/components/tooltip/EUITooltip.vue.js.map +1 -0
  199. package/src/components/uidemo/select-com.vue +120 -0
  200. package/src/components/uidemo/select-com.vue.js.map +1 -0
  201. package/src/data/books.js.map +1 -0
  202. package/src/data/books.ts +163 -0
  203. package/src/data/country.ts +56 -0
  204. package/src/data/tab.js.map +1 -0
  205. package/src/data/tab.ts +40 -0
  206. package/src/data/table.js.map +1 -0
  207. package/src/data/table.ts +5654 -0
  208. package/src/main.js.map +1 -0
  209. package/src/main.ts +5 -0
  210. package/src/style.scss +186 -0
  211. package/src/utils/helpers.js.map +1 -0
  212. package/src/utils/helpers.ts +30 -0
  213. package/src/utils/lodash.js.map +1 -0
  214. package/src/utils/lodash.ts +9 -0
  215. package/src/utils/types.js.map +1 -0
  216. package/src/utils/types.ts +9 -0
  217. package/src/vite-env.d.ts +5 -0
  218. package/dist/EUISelectSearch.vue.d.ts.map +0 -1
  219. package/dist/edvoy-ui.umd.js +0 -168
  220. /package/dist/{edvoy-ui.cjs.js → library-vue-ts.cjs.js} +0 -0
  221. /package/dist/{edvoy-ui.css → library-vue-ts.css} +0 -0
  222. /package/dist/{edvoy-ui.es.js → library-vue-ts.es.js} +0 -0
  223. /package/dist/{EUISelectSearch.vue.d.ts → selectSearch/EUISelectSearch.vue.d.ts} +0 -0
@@ -0,0 +1,270 @@
1
+ import type { Meta, StoryObj } from "@storybook/vue3";
2
+ import EUIButton from "./EUIButton.vue"; // Adjust the path if necessary
3
+ import { HomeIcon } from "@heroicons/vue/24/outline";
4
+
5
+ const meta = {
6
+ title: "Example/Button",
7
+ component: EUIButton,
8
+ tags: ["autodocs"],
9
+ argTypes: {
10
+ type: {
11
+ control: { type: "select", options: ["button", "submit", "reset"] },
12
+ description: "The type of button.",
13
+ },
14
+ size: {
15
+ control: { type: "select", options: ["xs", "sm", "md", "lg"] },
16
+ description: "Size of the button.",
17
+ },
18
+ color: {
19
+ control: {
20
+ type: "select",
21
+ options: [
22
+ "black",
23
+ "white",
24
+ "danger",
25
+ "success",
26
+ "purple",
27
+ "primary",
28
+ "tertiary",
29
+ "secondary",
30
+ ],
31
+ },
32
+ description: "The color theme of the button.",
33
+ },
34
+ iconType: {
35
+ control: {
36
+ type: "select",
37
+ options: ["", "startIcon", "endIcon", "icon"],
38
+ },
39
+ description:
40
+ "Defines the position of the icon. It can be placed at the `start` or `end` and `icon` of the button.",
41
+ },
42
+ icon: {
43
+ control: { type: "text" },
44
+ description:
45
+ "Specifies an SVG icon or icon component to be displayed inside the input field.",
46
+ },
47
+ loading: {
48
+ control: "boolean",
49
+ description: "Shows a loading spinner if true.",
50
+ },
51
+ rounded: {
52
+ control: "boolean",
53
+ description: "button rounded if true.",
54
+ },
55
+ disabled: {
56
+ control: "boolean",
57
+ description: "Disables the button if true.",
58
+ },
59
+ onClick: { action: "clicked" },
60
+ },
61
+ } satisfies Meta<typeof EUIButton>;
62
+
63
+ export default meta;
64
+ type Story = StoryObj<typeof meta>;
65
+
66
+ // Default button story with default slot content
67
+ export const Default: Story = {
68
+ argTypes: {
69
+ type: {
70
+ control: "select",
71
+ options: ["button", "submit", "reset"],
72
+ },
73
+ size: {
74
+ control: "select",
75
+ options: ["xs", "sm", "md", "lg"],
76
+ },
77
+ color: {
78
+ control: "select",
79
+ options: [
80
+ "black",
81
+ "white",
82
+ "danger",
83
+ "success",
84
+ "purple",
85
+ "primary",
86
+ "tertiary",
87
+ "secondary",
88
+ ],
89
+ },
90
+ iconType: {
91
+ control: "select",
92
+ options: ["", "startIcon", "endIcon", "icon"],
93
+ },
94
+ },
95
+ args: {
96
+ type: "button",
97
+ size: "md",
98
+ color: "purple",
99
+ },
100
+ render: (args) => ({
101
+ components: { EUIButton },
102
+ setup() {
103
+ return { args };
104
+ },
105
+ template: `<EUIButton v-bind="args">Button</EUIButton>`,
106
+ }),
107
+ };
108
+
109
+ export const Size: Story = {
110
+ args: {
111
+ color: "purple",
112
+ size: "md",
113
+ },
114
+ render: (args) => ({
115
+ components: { EUIButton },
116
+ setup() {
117
+ return { args };
118
+ },
119
+ template: `<div class="space-x-4 inline-flex items-end">
120
+ <EUIButton v-bind="args" size="xs">Button</EUIButton>
121
+ <EUIButton v-bind="args" size="sm">Button</EUIButton>
122
+ <EUIButton v-bind="args" size="md">Button</EUIButton>
123
+ <EUIButton v-bind="args" size="lg">Button</EUIButton>
124
+ </div>`,
125
+ }),
126
+ parameters: {
127
+ docs: {
128
+ source: {
129
+ code: `<template>
130
+ <EUIButton type="button" size="xs" color="black">Button</EUIButton>
131
+ <EUIButton type="button" size="sm" color="white">Button</EUIButton>
132
+ <EUIButton type="button" size="md" color="success">Button</EUIButton>
133
+ <EUIButton type="button" size="lg" color="danger">Button</EUIButton>
134
+ </template>`,
135
+ },
136
+ },
137
+ },
138
+ };
139
+
140
+ export const Colors: Story = {
141
+ args: {
142
+ size: "md",
143
+ color: "purple",
144
+ },
145
+ render: (args) => ({
146
+ components: { EUIButton },
147
+ setup() {
148
+ return { args };
149
+ },
150
+ template: `<div class="space-x-4 inline-flex items-end">
151
+ <EUIButton v-bind="args" color="black">Button</EUIButton>
152
+ <EUIButton v-bind="args" color="white">Button</EUIButton>
153
+ <EUIButton v-bind="args" color="success">Button</EUIButton>
154
+ <EUIButton v-bind="args" color="danger">Button</EUIButton>
155
+ <EUIButton v-bind="args" color="purple">Button</EUIButton>
156
+ <EUIButton v-bind="args" color="primary">Button</EUIButton>
157
+ </div>`,
158
+ }),
159
+ parameters: {
160
+ docs: {
161
+ source: {
162
+ code: `<template>
163
+ <EUIButton type="button" size="md" color="black">Button</EUIButton>
164
+ <EUIButton type="button" size="md" color="white">Button</EUIButton>
165
+ <EUIButton type="button" size="md" color="success">Button</EUIButton>
166
+ <EUIButton type="button" size="md" color="danger">Button</EUIButton>
167
+ <EUIButton type="button" size="md" color="purple">Button</EUIButton>
168
+ <EUIButton type="button" size="md" color="primary">Button</EUIButton>
169
+ </template>`,
170
+ },
171
+ },
172
+ },
173
+ };
174
+
175
+ export const Icons: Story = {
176
+ args: {
177
+ type: "button",
178
+ size: "md",
179
+ color: "primary",
180
+ iconType: "startIcon",
181
+ icon: HomeIcon,
182
+ },
183
+ render: (args) => ({
184
+ components: { EUIButton },
185
+ setup() {
186
+ return { args };
187
+ },
188
+ template: `<div class="space-x-4 inline-flex items-end">
189
+ <EUIButton v-bind="args" iconType="startIcon">Home</EUIButton>
190
+ <EUIButton v-bind="args" iconType="endIcon">Home</EUIButton>
191
+ <EUIButton v-bind="args" iconType="icon"></EUIButton>
192
+ </div>`,
193
+ }),
194
+ parameters: {
195
+ docs: {
196
+ source: {
197
+ code: `<template>
198
+ <EUIButton color="primary" size="md" iconType="startIcon" :icon="HomeIcon">Home</EUIButton>
199
+ <EUIButton color="primary" size="md" iconType="endIcon" :icon="HomeIcon">Home</EUIButton>
200
+ <EUIButton color="primary" size="md" iconType="icon" :icon="HomeIcon"></EUIButton>
201
+ </template>`,
202
+ },
203
+ },
204
+ },
205
+ };
206
+
207
+ export const RoundedButton: Story = {
208
+ args: {
209
+ type: "button",
210
+ size: "md",
211
+ color: "primary",
212
+ rounded: true,
213
+ iconType: "startIcon",
214
+ icon: HomeIcon,
215
+ },
216
+ render: (args) => ({
217
+ components: { EUIButton },
218
+ setup() {
219
+ return { args };
220
+ },
221
+ template: `<div class="space-x-4 inline-flex items-end">
222
+ <EUIButton v-bind="args" iconType="startIcon">Home</EUIButton>
223
+ <EUIButton v-bind="args" iconType="endIcon">Home</EUIButton>
224
+ <EUIButton v-bind="args" iconType="icon"></EUIButton>
225
+ </div>`,
226
+ }),
227
+ parameters: {
228
+ docs: {
229
+ source: {
230
+ code: `<template>
231
+ <EUIButton color="primary" rounded size="md" iconType="startIcon" :icon="HomeIcon">Home</EUIButton>
232
+ <EUIButton color="primary" rounded size="md" iconType="endIcon" :icon="HomeIcon">Home</EUIButton>
233
+ <EUIButton color="primary" rounded size="md" iconType="icon" :icon="HomeIcon"></EUIButton>
234
+ </template>`,
235
+ },
236
+ },
237
+ },
238
+ };
239
+
240
+ export const Loading: Story = {
241
+ args: {
242
+ type: "button",
243
+ size: "md",
244
+ color: "primary",
245
+ loading: true,
246
+ },
247
+ render: (args) => ({
248
+ components: { EUIButton },
249
+ setup() {
250
+ return { args };
251
+ },
252
+ template: `<EUIButton v-bind="args">Loading...</EUIButton>`,
253
+ }),
254
+ };
255
+
256
+ export const Disabled: Story = {
257
+ args: {
258
+ type: "button",
259
+ size: "md",
260
+ color: "purple",
261
+ disabled: true,
262
+ },
263
+ render: (args) => ({
264
+ components: { EUIButton },
265
+ setup() {
266
+ return { args };
267
+ },
268
+ template: `<EUIButton v-bind="args">Disabled</EUIButton>`,
269
+ }),
270
+ };
@@ -0,0 +1,154 @@
1
+ <template>
2
+ <button
3
+ :type="type"
4
+ :size="size"
5
+ :color="color"
6
+ :iconType="iconType"
7
+ v-bind="$attrs"
8
+ :class="['capitalize box-border border-none inline-flex flex-row gap-x-2 items-center active:scale-[.97] active:shadow-md transition-all duration-200 ease-in-out active:translate-y-0.5 focus-within:outline-purple-500', rounded ?'rounded-full':'rounded-lg', btnClass]"
9
+ :disabled="disabled"
10
+ :loading="loading"
11
+ :icon="icon"
12
+ @click="handleClick()"
13
+ >
14
+ <component
15
+ :is="icon"
16
+ v-if="iconType === 'icon' || iconType === 'startIcon'"
17
+ :class="[iconWidth]"
18
+ />
19
+ <slot />
20
+ <component :is="icon" v-if="iconType === 'endIcon'" :class="[iconWidth]" />
21
+ <svg
22
+ v-if="loading"
23
+ class="animate-spin"
24
+ :class="[iconWidth]"
25
+ xmlns="http://www.w3.org/2000/svg"
26
+ fill="none"
27
+ viewBox="0 0 24 24"
28
+ >
29
+ <circle
30
+ class="opacity-25"
31
+ cx="12"
32
+ cy="12"
33
+ r="10"
34
+ stroke="currentColor"
35
+ stroke-width="4"
36
+ />
37
+ <path
38
+ class="opacity-75"
39
+ fill="currentColor"
40
+ d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
41
+ />
42
+ </svg>
43
+ </button>
44
+ </template>
45
+
46
+ <script setup lang="ts">
47
+ import { reactive, computed, PropType } from "vue";
48
+
49
+ const emit = defineEmits(["click"]);
50
+ const handleClick = () => [emit("click")];
51
+
52
+ const props = defineProps({
53
+ type: {
54
+ type: String as PropType<"button" | "submit" | "reset">,
55
+ default: "button",
56
+ },
57
+ size: {
58
+ type: String as PropType<"xs" | "sm" | "md" | "lg">,
59
+ default: "md",
60
+ },
61
+ color: {
62
+ type: String as PropType<
63
+ "danger" | "success" | "black" | "white" | "purple" | 'primary' | 'secondary' | 'tertiary'>,
64
+ default: "purple",
65
+ },
66
+ iconType: {
67
+ type: String as PropType<"startIcon" | "endIcon" | "icon">,
68
+ default: "",
69
+ },
70
+ icon: {
71
+ type: [String, Object, Function],
72
+ default: "",
73
+ },
74
+ rounded:Boolean,
75
+ loading: Boolean,
76
+ disabled: Boolean,
77
+ });
78
+
79
+ const sizeClasses = reactive({
80
+ xs: "text-xs font-medium leading-[normal]", // 24
81
+ sm: "text-sm font-medium", // 32
82
+ md: "text-base font-semibold", // 40
83
+ lg: "text-base font-semibold", // 48
84
+ });
85
+
86
+ const btnClass = computed(() => {
87
+ const btnDisabled = props.disabled;
88
+ const btnColor = {
89
+ black: btnDisabled
90
+ ? "bg-opacity-60 cursor-not-allowed text-gray-200 bg-gray-800"
91
+ : "text-white bg-gray-900 hover:bg-gray-800 active:bg-black cursor-pointer active:shadow-black/50",
92
+ white: btnDisabled
93
+ ? "bg-opacity-80 cursor-not-allowed text-gray-400 bg-gray-200"
94
+ : "bg-white hover:bg-gray-100 text-black cursor-pointer active:shadow-white/50 active:bg-transparent",
95
+ danger: btnDisabled
96
+ ? "bg-opacity-60 cursor-not-allowed text-gray-200 bg-red-500"
97
+ : "bg-red-500 hover:bg-red-600 active:bg-red-500 text-white cursor-pointer active:shadow-red-500/50",
98
+ success: btnDisabled
99
+ ? "bg-opacity-60 cursor-not-allowed text-gray-200 bg-green-600"
100
+ : "bg-green-600 hover:bg-green-700 active:bg-green-600 text-white cursor-pointer active:shadow-green-500/50",
101
+ purple: btnDisabled
102
+ ? "bg-opacity-60 cursor-not-allowed text-gray-200 bg-purple-500"
103
+ : "bg-purple-700 hover:bg-purple-800 active:bg-purple-700 text-white cursor-pointer active:shadow-purple-500/50",
104
+ primary: btnDisabled
105
+ ? "bg-opacity-60 cursor-not-allowed text-gray-200 bg-purple-500"
106
+ : "primary-btn text-white cursor-pointer active:shadow-purple-500/50",
107
+ secondary: btnDisabled
108
+ ? "bg-opacity-75 cursor-not-allowed text-gray-400 bg-purple-50"
109
+ : "bg-purple-100 hover:bg-purple-50 active:bg-purple-100 cursor-pointer text-gray-700 active:shadow-purple-200",
110
+ tertiary: btnDisabled
111
+ ? "bg-opacity-75 cursor-not-allowed text-gray-400 bg-gray-50 ring-1 ring-gray-100"
112
+ : "bg-gray-100 hover:bg-gray-50 active:bg-gray-100 text-gray-700 cursor-pointer active:shadow-bg-gray-200/50 ring-1 ring-gray-200",
113
+ };
114
+
115
+ // background: linear-gradient(107.63deg, #321386 0%, #9C20D7 100%, #9C20D7 100%);
116
+ const iconClasses = {
117
+ lg: props.iconType === "icon" ? "p-3" : "px-6 py-3",
118
+ md: props.iconType === "icon" ? "p-2" : "px-4 py-2",
119
+ sm: props.iconType === "icon" ? "p-1.5" : "px-4 py-1.5",
120
+ xs: props.iconType === "icon" ? "p-1" : "px-3 py-1",
121
+ };
122
+
123
+ const colorClass = btnColor[props.color] || "";
124
+ const sizeClass = sizeClasses[props.size] || "";
125
+ const typeClass = iconClasses[props.size] || "";
126
+ const disabledClass =
127
+ props.disabled === true
128
+ ? "active:!translate-y-0 active:!scale-100 active:!shadow-none"
129
+ : "";
130
+ return `${colorClass} ${sizeClass} ${typeClass} ${disabledClass}`;
131
+ });
132
+
133
+ const iconWidthClasses = reactive({
134
+ xs: "w-4 h-4 text-current",
135
+ sm: "w-5 h-5 text-current",
136
+ md: "w-6 h-6 text-current",
137
+ lg: "w-6 h-6 text-current",
138
+ });
139
+
140
+ const iconWidth = computed(() => {
141
+ const iconClass = iconWidthClasses[props.size] || "";
142
+ return iconClass;
143
+ });
144
+ </script>
145
+
146
+ <style lang="scss">
147
+ .primary-btn {
148
+ background: linear-gradient(107.63deg, #321386 0%, #9C20D7 100%, #9C20D7 100%);
149
+ @apply bg-[#321386] hover:opacity-90;
150
+ &:active {
151
+ background: linear-gradient(-135deg,#321386 0%, #9c20d7 100%, #9c20d7 100%);
152
+ }
153
+ }
154
+ </style>
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EUIButton.vue.js","sourceRoot":"","sources":["EUIButton.vue"],"names":[],"mappings":"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"}