edvoyui-component-library-test-flight 0.0.184 → 0.0.186

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 (227) hide show
  1. package/README.md +57 -8
  2. package/dist/EUIButton.vue.d.ts.map +1 -0
  3. package/dist/EUIButtonGroup.vue.d.ts.map +1 -0
  4. package/dist/edvoy-ui.cjs.js +2 -2
  5. package/dist/edvoy-ui.css +1 -1
  6. package/dist/edvoy-ui.es.js +13 -16
  7. package/dist/edvoy-ui.umd.js +5 -5
  8. package/dist/table/EUIDashboardTable.vue.d.ts +1 -1
  9. package/dist/table/EUITable.vue.d.ts +1 -1
  10. package/package.json +18 -17
  11. package/dist/button/EUIButton.vue.d.ts.map +0 -1
  12. package/dist/button/EUIButtonGroup.vue.d.ts.map +0 -1
  13. package/src/App.vue +0 -16
  14. package/src/App.vue.js.map +0 -1
  15. package/src/assets/fonts/gilroy/GilroyBold/font.woff +0 -0
  16. package/src/assets/fonts/gilroy/GilroyBold/font.woff2 +0 -0
  17. package/src/assets/fonts/gilroy/GilroyBoldItalic/font.woff +0 -0
  18. package/src/assets/fonts/gilroy/GilroyBoldItalic/font.woff2 +0 -0
  19. package/src/assets/fonts/gilroy/GilroyExtraBold/font.woff +0 -0
  20. package/src/assets/fonts/gilroy/GilroyExtraBold/font.woff2 +0 -0
  21. package/src/assets/fonts/gilroy/GilroyExtraBoldItalic/font.woff +0 -0
  22. package/src/assets/fonts/gilroy/GilroyExtraBoldItalic/font.woff2 +0 -0
  23. package/src/assets/fonts/gilroy/GilroyMedium/font.woff +0 -0
  24. package/src/assets/fonts/gilroy/GilroyMedium/font.woff2 +0 -0
  25. package/src/assets/fonts/gilroy/GilroyRegular/font.woff +0 -0
  26. package/src/assets/fonts/gilroy/GilroyRegular/font.woff2 +0 -0
  27. package/src/assets/fonts/gilroy/GilroySemiBold/font.woff +0 -0
  28. package/src/assets/fonts/gilroy/GilroySemiBold/font.woff2 +0 -0
  29. package/src/assets/fonts/inter/Inter-Bold.woff +0 -0
  30. package/src/assets/fonts/inter/Inter-Bold.woff2 +0 -0
  31. package/src/assets/fonts/inter/Inter-Italic.woff +0 -0
  32. package/src/assets/fonts/inter/Inter-Italic.woff2 +0 -0
  33. package/src/assets/fonts/inter/Inter-Medium.woff +0 -0
  34. package/src/assets/fonts/inter/Inter-Medium.woff2 +0 -0
  35. package/src/assets/fonts/inter/Inter-MediumItalic.woff +0 -0
  36. package/src/assets/fonts/inter/Inter-MediumItalic.woff2 +0 -0
  37. package/src/assets/fonts/inter/Inter-Regular.woff +0 -0
  38. package/src/assets/fonts/inter/Inter-Regular.woff2 +0 -0
  39. package/src/assets/fonts/inter/Inter-SemiBold.woff +0 -0
  40. package/src/assets/fonts/inter/Inter-SemiBold.woff2 +0 -0
  41. package/src/assets/fonts/inter/Inter-SemiBoldItalic.woff +0 -0
  42. package/src/assets/fonts/inter/Inter-SemiBoldItalic.woff2 +0 -0
  43. package/src/assets/images/search-nodata.png +0 -0
  44. package/src/assets/scss/body.scss +0 -25
  45. package/src/assets/svg/CheckTick.vue +0 -21
  46. package/src/assets/svg/CheckTick.vue.js.map +0 -1
  47. package/src/assets/svg/ChevronBigDown.vue +0 -22
  48. package/src/assets/svg/ChevronBigDown.vue.js.map +0 -1
  49. package/src/assets/svg/ChevronDownSolid.vue +0 -19
  50. package/src/assets/svg/ChevronDownSolid.vue.js.map +0 -1
  51. package/src/assets/svg/ChevronDownStroke.vue +0 -22
  52. package/src/assets/svg/ChevronDownStroke.vue.js.map +0 -1
  53. package/src/assets/svg/ChevronDownStrokeSolid.vue +0 -19
  54. package/src/assets/svg/ChevronDownStrokeSolid.vue.js.map +0 -1
  55. package/src/assets/svg/SearchBigZoomIn.vue +0 -21
  56. package/src/assets/svg/SearchBigZoomIn.vue.js.map +0 -1
  57. package/src/assets/svg/SortArrow.vue +0 -24
  58. package/src/assets/svg/SortArrow.vue.js.map +0 -1
  59. package/src/assets/svg/Student.vue +0 -30
  60. package/src/assets/svg/Student.vue.js.map +0 -1
  61. package/src/assets/svg/partner.vue +0 -33
  62. package/src/assets/svg/partner.vue.js.map +0 -1
  63. package/src/assets/svg/people.vue +0 -25
  64. package/src/assets/svg/people.vue.js.map +0 -1
  65. package/src/assets/vue.svg +0 -1
  66. package/src/components/HelloWorld.vue +0 -1972
  67. package/src/components/HelloWorld.vue.js.map +0 -1
  68. package/src/components/accordion/EUIAccordion.stories.ts +0 -204
  69. package/src/components/accordion/EUIAccordion.vue +0 -152
  70. package/src/components/accordion/EUIAccordion.vue.js.map +0 -1
  71. package/src/components/alerts/EUIAlerts.stories.ts +0 -217
  72. package/src/components/alerts/EUIAlerts.vue +0 -194
  73. package/src/components/alerts/EUIAlerts.vue.js.map +0 -1
  74. package/src/components/avatar/EUIAvatar.stories.ts +0 -157
  75. package/src/components/avatar/EUIAvatar.vue +0 -96
  76. package/src/components/avatar/EUIAvatar.vue.js.map +0 -1
  77. package/src/components/breadcrumb/EUIBreadcrumb.stories.ts +0 -75
  78. package/src/components/breadcrumb/EUIBreadcrumb.vue +0 -59
  79. package/src/components/breadcrumb/EUIBreadcrumb.vue.js.map +0 -1
  80. package/src/components/button/EUIButton.stories.ts +0 -270
  81. package/src/components/button/EUIButton.vue +0 -154
  82. package/src/components/button/EUIButton.vue.js.map +0 -1
  83. package/src/components/button/EUIButtonGroup.vue +0 -287
  84. package/src/components/button/EUIButtonGroup.vue.js.map +0 -1
  85. package/src/components/button/buttonAnimateTab.vue +0 -74
  86. package/src/components/button/buttonAnimateTab.vue.js.map +0 -1
  87. package/src/components/checkbox/EUICheckbox.stories.ts +0 -58
  88. package/src/components/checkbox/EUICheckbox.vue +0 -110
  89. package/src/components/checkbox/EUICheckbox.vue.js.map +0 -1
  90. package/src/components/datepicker/EUIDatepicker.stories.ts +0 -492
  91. package/src/components/datepicker/EUIDatepicker.vue +0 -295
  92. package/src/components/datepicker/EUIDatepicker.vue.js.map +0 -1
  93. package/src/components/delete.vue +0 -262
  94. package/src/components/delete.vue.js.map +0 -1
  95. package/src/components/dragModal/EUIDrag.vue +0 -179
  96. package/src/components/dragModal/EUIDrag.vue.js.map +0 -1
  97. package/src/components/dropdown/EUIMultiDropdown.stories.ts +0 -294
  98. package/src/components/dropdown/EUIMultiDropdown.vue +0 -187
  99. package/src/components/dropdown/EUIMultiDropdown.vue.js.map +0 -1
  100. package/src/components/errorMessage/EUIErrorMessage.scss +0 -0
  101. package/src/components/errorMessage/EUIErrorMessage.stories.ts +0 -41
  102. package/src/components/errorMessage/EUIErrorMessage.vue +0 -25
  103. package/src/components/errorMessage/EUIErrorMessage.vue.js.map +0 -1
  104. package/src/components/index.js.map +0 -1
  105. package/src/components/index.ts +0 -61
  106. package/src/components/input/EUIInput.stories.ts +0 -387
  107. package/src/components/input/EUIInput.vue +0 -223
  108. package/src/components/input/EUIInput.vue.js.map +0 -1
  109. package/src/components/input/EUINumberInput.vue +0 -250
  110. package/src/components/loader/EUICircleLoader.vue +0 -31
  111. package/src/components/loader/EUICircleLoader.vue.js.map +0 -1
  112. package/src/components/loader/EUICubeLoader.vue +0 -237
  113. package/src/components/loader/EUICubeLoader.vue.js.map +0 -1
  114. package/src/components/loader/EUILoader.stories.ts +0 -99
  115. package/src/components/loader/EUILoader.vue +0 -17
  116. package/src/components/loader/EUILoader.vue.js.map +0 -1
  117. package/src/components/loader/EUISquareLoader.vue +0 -47
  118. package/src/components/loader/EUISquareLoader.vue.js.map +0 -1
  119. package/src/components/modal/EUIModal.stories.ts +0 -412
  120. package/src/components/modal/EUIModal.vue +0 -228
  121. package/src/components/modal/EUIModal.vue.js.map +0 -1
  122. package/src/components/pillSelect/EUIPillSelect.stories.ts +0 -74
  123. package/src/components/pillSelect/EUIPillSelect.vue +0 -149
  124. package/src/components/pillSelect/EUIPillSelect.vue.js.map +0 -1
  125. package/src/components/popover/EUIPopover.stories.ts +0 -306
  126. package/src/components/popover/EUIPopover.vue +0 -297
  127. package/src/components/popover/EUIPopover.vue.js.map +0 -1
  128. package/src/components/radio/EUIRadio.stories.ts +0 -54
  129. package/src/components/radio/EUIRadio.vue +0 -75
  130. package/src/components/radio/EUIRadio.vue.js.map +0 -1
  131. package/src/components/searchInput/EUISearch.stories.ts +0 -24
  132. package/src/components/searchInput/EUISearch.vue +0 -223
  133. package/src/components/searchInput/EUISearch.vue.js.map +0 -1
  134. package/src/components/searchTagSelect/EUISearchTagSelect.stories.ts +0 -217
  135. package/src/components/searchTagSelect/EUISearchTagSelect.vue +0 -642
  136. package/src/components/searchTagSelect/EUISearchTagSelect.vue.js.map +0 -1
  137. package/src/components/searchTagSelect/SearchInput.vue +0 -167
  138. package/src/components/searchTagSelect/SearchInput.vue.js.map +0 -1
  139. package/src/components/searchexpand/EUISearchExpand.vue +0 -148
  140. package/src/components/searchexpand/EUISearchExpand.vue.js.map +0 -1
  141. package/src/components/searchexpand/EUISearchToggle.vue +0 -86
  142. package/src/components/searchexpand/EUISearchToggle.vue.js.map +0 -1
  143. package/src/components/select/EUISelect.stories.ts +0 -101
  144. package/src/components/select/EUISelect.vue +0 -1092
  145. package/src/components/select/EUISelect.vue.js.map +0 -1
  146. package/src/components/slideover/EUISlideover.stories.ts +0 -318
  147. package/src/components/slideover/EUISlideover.vue +0 -212
  148. package/src/components/slideover/EUISlideover.vue.js.map +0 -1
  149. package/src/components/stepperTimeline/EUIStepperHorizontal.vue +0 -242
  150. package/src/components/stepperTimeline/EUIStepperHorizontal.vue.js.map +0 -1
  151. package/src/components/stepperTimeline/EUIStepperTimeline.stories.ts +0 -54
  152. package/src/components/stepperTimeline/EUIStepperTimeline.vue +0 -16
  153. package/src/components/stepperTimeline/EUIStepperTimeline.vue.js.map +0 -1
  154. package/src/components/stepperTimeline/EUIStepperVertical.vue +0 -112
  155. package/src/components/stepperTimeline/EUIStepperVertical.vue.js.map +0 -1
  156. package/src/components/table/ColumnResizeTable.vue +0 -740
  157. package/src/components/table/ColumnResizeTable.vue.js.map +0 -1
  158. package/src/components/table/EUIDashboardTable.vue +0 -514
  159. package/src/components/table/EUIDashboardTable.vue.js.map +0 -1
  160. package/src/components/table/EUIPageLimit.vue +0 -66
  161. package/src/components/table/EUIPageLimit.vue.js.map +0 -1
  162. package/src/components/table/EUIPagination.vue +0 -175
  163. package/src/components/table/EUIPagination.vue.js.map +0 -1
  164. package/src/components/table/EUIStudentPagination.vue +0 -172
  165. package/src/components/table/EUIStudentPagination.vue.js.map +0 -1
  166. package/src/components/table/EUITable.stories.ts +0 -300
  167. package/src/components/table/EUITable.vue +0 -559
  168. package/src/components/table/EUITable.vue.js.map +0 -1
  169. package/src/components/table/EUITableCheckbox.vue +0 -98
  170. package/src/components/table/EUITableCheckbox.vue.js.map +0 -1
  171. package/src/components/table/GrowthTable.vue +0 -575
  172. package/src/components/table/GrowthTable.vue.js.map +0 -1
  173. package/src/components/table/GrowthTableView.vue +0 -108
  174. package/src/components/table/GrowthTableView.vue.js.map +0 -1
  175. package/src/components/table/ResizeTableview.vue +0 -198
  176. package/src/components/table/ResizeTableview.vue.js.map +0 -1
  177. package/src/components/table/UCheckbox.vue +0 -169
  178. package/src/components/table/UCheckbox.vue.js.map +0 -1
  179. package/src/components/table/UTable.scss +0 -69
  180. package/src/components/table/UTable.vue +0 -611
  181. package/src/components/table/UTable.vue.js.map +0 -1
  182. package/src/components/table/UTableview.vue +0 -189
  183. package/src/components/table/UTableview.vue.js.map +0 -1
  184. package/src/components/tabs/EUITabOutline.vue +0 -263
  185. package/src/components/tabs/EUITabOutline.vue.js.map +0 -1
  186. package/src/components/tabs/EUITabs.vue +0 -262
  187. package/src/components/tabs/EUITabs.vue.js.map +0 -1
  188. package/src/components/tabs/EUItabs.stories.ts +0 -137
  189. package/src/components/tag/EUITag.stories.ts +0 -53
  190. package/src/components/tag/EUITag.vue +0 -88
  191. package/src/components/tag/EUITag.vue.js.map +0 -1
  192. package/src/components/telephone/EUITelephone.stories.ts +0 -358
  193. package/src/components/telephone/EUITelephone.vue +0 -291
  194. package/src/components/telephone/EUITelephone.vue.js.map +0 -1
  195. package/src/components/textArea/EUITextArea.stories.ts +0 -134
  196. package/src/components/textArea/EUITextArea.vue +0 -155
  197. package/src/components/textArea/EUITextArea.vue.js.map +0 -1
  198. package/src/components/timeLine/EUITimeLine.stories.ts +0 -247
  199. package/src/components/timeLine/EUITimeLine.vue +0 -148
  200. package/src/components/timeLine/EUITimeLine.vue.js.map +0 -1
  201. package/src/components/toggle/EUIToggle.stories.ts +0 -63
  202. package/src/components/toggle/EUIToggle.vue +0 -101
  203. package/src/components/toggle/EUIToggle.vue.js.map +0 -1
  204. package/src/components/tooltip/EUITooltip.stories.ts +0 -53
  205. package/src/components/tooltip/EUITooltip.vue +0 -111
  206. package/src/components/tooltip/EUITooltip.vue.js.map +0 -1
  207. package/src/components/uidemo/select-com.vue +0 -120
  208. package/src/components/uidemo/select-com.vue.js.map +0 -1
  209. package/src/data/books.js.map +0 -1
  210. package/src/data/books.ts +0 -163
  211. package/src/data/country.ts +0 -56
  212. package/src/data/tab.js.map +0 -1
  213. package/src/data/tab.ts +0 -40
  214. package/src/data/table.js.map +0 -1
  215. package/src/data/table.ts +0 -5654
  216. package/src/main.js.map +0 -1
  217. package/src/main.ts +0 -5
  218. package/src/style.scss +0 -186
  219. package/src/utils/helpers.js.map +0 -1
  220. package/src/utils/helpers.ts +0 -30
  221. package/src/utils/lodash.js.map +0 -1
  222. package/src/utils/lodash.ts +0 -9
  223. package/src/utils/types.js.map +0 -1
  224. package/src/utils/types.ts +0 -9
  225. package/src/vite-env.d.ts +0 -5
  226. /package/dist/{button/EUIButton.vue.d.ts → EUIButton.vue.d.ts} +0 -0
  227. /package/dist/{button/EUIButtonGroup.vue.d.ts → EUIButtonGroup.vue.d.ts} +0 -0
@@ -1,358 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3";
2
- import EUITelephone from "./EUITelephone.vue";
3
- import { ref } from "vue";
4
- import { PhoneIcon } from "@heroicons/vue/24/outline";
5
-
6
- // Meta configuration for the component's stories
7
- const meta = {
8
- title: "Forms/Telephone",
9
- component: EUITelephone,
10
- tags: ["autodocs"],
11
- argTypes: {
12
- modelValue: {
13
- control: "text",
14
- description:
15
- "The value of the telephone input, typically the phone number entered.",
16
- },
17
- name: {
18
- control: "text",
19
- description:
20
- "Name for the Validation Telephone field, used for identification.",
21
- },
22
- label: {
23
- control: "text",
24
- description:
25
- "Label for the Telephone field that is displayed above the input.",
26
- },
27
- placeholder: {
28
- control: "text",
29
- description:
30
- "Placeholder text that appears inside the telephone input when it's empty.",
31
- },
32
- autoFocus: {
33
- control: "boolean",
34
- description:
35
- "Automatically focuses the telephone input when the page loads.",
36
- },
37
- length: {
38
- control: "number",
39
- description:
40
- "Sets the maximum allowed length for the mobile number input.",
41
- },
42
- errors: {
43
- control: "object",
44
- description:
45
- "Object containing validation errors. The keys are field names, and the values are the corresponding error messages.",
46
- },
47
- required: {
48
- control: "boolean",
49
- description: "Indicates whether the telephone input field is mandatory.",
50
- },
51
- readonly: {
52
- control: "boolean",
53
- description:
54
- "Makes the telephone input field read-only, preventing users from editing the value.",
55
- },
56
- disabled: {
57
- control: "boolean",
58
- description:
59
- "Disables the telephone input, making it uneditable and unclickable.",
60
- },
61
- isValid: {
62
- control: "boolean",
63
- description:
64
- "Represents the validation state of the telephone input. `true` if the value is valid, otherwise `false`.",
65
- },
66
- iconType: {
67
- control: "select",
68
- options: ["", "startIcon", "endIcon"],
69
- description:
70
- "The position of the icon to be displayed either at the start or end of the input field.",
71
- },
72
- icon: {
73
- control: { type: "text" },
74
- description:
75
- "Specifies an SVG icon to be displayed inside the telephone input field.",
76
- },
77
- inputFilled: {
78
- control: "boolean",
79
- description: "Toggles the alternate Select Tel input Filled design.",
80
- defaultValue: false,
81
- table: {
82
- type: { summary: "Boolean" },
83
- defaultValue: { summary: "false" },
84
- },
85
- },
86
- },
87
- } satisfies Meta<typeof EUITelephone>;
88
-
89
- export default meta;
90
- type Story = StoryObj<typeof meta>;
91
-
92
- // Default story with minimum props
93
- export const Default: Story = {
94
- args: {
95
- placeholder: "Mobile number 0 to 9",
96
- label: "Contact number",
97
- modelValue: "9094089854",
98
- name: "telephoneInput",
99
- autoFocus: false,
100
- length: 10,
101
- required: true,
102
- readonly: false,
103
- disabled: false,
104
- isValid: false,
105
- errors: {
106
- message: "Enter valid mobile number",
107
- },
108
- },
109
- render: (args) => ({
110
- components: { EUITelephone },
111
- setup() {
112
- const modelValue = ref(args.modelValue);
113
- const isValid = ref(args.isValid);
114
-
115
- const onUpdateModelValue = (newValue: string) => {
116
- modelValue.value = newValue;
117
- args.modelValue = newValue;
118
- };
119
-
120
- const onUpdateIsValid = (newValue: boolean) => {
121
- isValid.value = newValue;
122
- args.isValid = newValue;
123
- };
124
-
125
- return { args, modelValue, isValid, onUpdateModelValue, onUpdateIsValid };
126
- },
127
- template: `<div class="max-w-md min-h-64"><EUITelephone v-bind="args" /></div>`,
128
- }),
129
- };
130
-
131
- export const InputFilled: Story = {
132
- args: {
133
- modelValue: "9094089854",
134
- inputFilled: true,
135
- },
136
- render: (args) => ({
137
- components: { EUITelephone },
138
- setup() {
139
- const modelValue = ref(args.modelValue);
140
- const isValid = ref(args.isValid);
141
-
142
- const onUpdateModelValue = (newValue: string) => {
143
- modelValue.value = newValue;
144
- args.modelValue = newValue;
145
- };
146
-
147
- const onUpdateIsValid = (newValue: boolean) => {
148
- isValid.value = newValue;
149
- args.isValid = newValue;
150
- };
151
-
152
- return { args, modelValue, isValid, onUpdateModelValue, onUpdateIsValid };
153
- },
154
- template: `<div class="max-w-md min-h-64"><EUITelephone v-bind="args" /></div>`,
155
- }),
156
- };
157
-
158
- export const TelInputIconStart: Story = {
159
- args: {
160
- modelValue: "9094089854",
161
- iconType: "startIcon",
162
- icon: PhoneIcon,
163
- },
164
- render: (args) => ({
165
- components: { EUITelephone },
166
- setup() {
167
- const modelValue = ref(args.modelValue);
168
- const isValid = ref(args.isValid);
169
-
170
- const onUpdateModelValue = (newValue: string) => {
171
- modelValue.value = newValue;
172
- args.modelValue = newValue;
173
- };
174
-
175
- const onUpdateIsValid = (newValue: boolean) => {
176
- isValid.value = newValue;
177
- args.isValid = newValue;
178
- };
179
-
180
- return { args, modelValue, isValid, onUpdateModelValue, onUpdateIsValid };
181
- },
182
- template: `<div class="max-w-md min-h-64"><EUITelephone v-bind="args" /></div>`,
183
- }),
184
- };
185
-
186
- export const TelInputIconEnd: Story = {
187
- args: {
188
- modelValue: "9094089854",
189
- iconType: "endIcon",
190
- icon: PhoneIcon,
191
- },
192
- render: (args) => ({
193
- components: { EUITelephone },
194
- setup() {
195
- const modelValue = ref(args.modelValue);
196
- const isValid = ref(args.isValid);
197
-
198
- const onUpdateModelValue = (newValue: string) => {
199
- modelValue.value = newValue;
200
- args.modelValue = newValue;
201
- };
202
-
203
- const onUpdateIsValid = (newValue: boolean) => {
204
- isValid.value = newValue;
205
- args.isValid = newValue;
206
- };
207
-
208
- return { args, modelValue, isValid, onUpdateModelValue, onUpdateIsValid };
209
- },
210
- template: `<div class="max-w-md min-h-64"><EUITelephone v-bind="args" /></div>`,
211
- }),
212
- };
213
-
214
- export const MobileNumberUsed: Story = {
215
- args: {
216
- modelValue: "+919094089854",
217
- disabled: false,
218
- isValid: false,
219
- },
220
- render: (args) => ({
221
- components: { EUITelephone },
222
- setup() {
223
- const modelValue = ref(args.modelValue);
224
- const isValid = ref(args.isValid);
225
-
226
- const onUpdateModelValue = (newValue: string) => {
227
- modelValue.value = newValue;
228
- args.modelValue = newValue;
229
- };
230
-
231
- const onUpdateIsValid = (newValue: boolean) => {
232
- isValid.value = newValue;
233
- args.isValid = newValue;
234
- };
235
-
236
- return { args, modelValue, isValid, onUpdateModelValue, onUpdateIsValid };
237
- },
238
- template: `<div class="max-w-md"><EUITelephone v-bind="args" v-model="modelValue" @update:modelValue="onUpdateModelValue" @update:isValid="onUpdateIsValid" /></div>`,
239
- }),
240
- };
241
-
242
- export const InputFilledIconStart: Story = {
243
- args: {
244
- modelValue: "9094089854",
245
- inputFilled: true,
246
- iconType: "startIcon",
247
- icon: PhoneIcon,
248
- },
249
- render: (args) => ({
250
- components: { EUITelephone },
251
- setup() {
252
- const modelValue = ref(args.modelValue);
253
- const isValid = ref(args.isValid);
254
-
255
- const onUpdateModelValue = (newValue: string) => {
256
- modelValue.value = newValue;
257
- args.modelValue = newValue;
258
- };
259
-
260
- const onUpdateIsValid = (newValue: boolean) => {
261
- isValid.value = newValue;
262
- args.isValid = newValue;
263
- };
264
-
265
- return { args, modelValue, isValid, onUpdateModelValue, onUpdateIsValid };
266
- },
267
- template: `<div class="max-w-md min-h-64"><EUITelephone v-bind="args" /></div>`,
268
- }),
269
- };
270
-
271
- export const InputFilledIconEnd: Story = {
272
- args: {
273
- modelValue: "9094089854",
274
- inputFilled: true,
275
- iconType: "endIcon",
276
- icon: PhoneIcon,
277
- },
278
- render: (args) => ({
279
- components: { EUITelephone },
280
- setup() {
281
- const modelValue = ref(args.modelValue);
282
- const isValid = ref(args.isValid);
283
-
284
- const onUpdateModelValue = (newValue: string) => {
285
- modelValue.value = newValue;
286
- args.modelValue = newValue;
287
- };
288
-
289
- const onUpdateIsValid = (newValue: boolean) => {
290
- isValid.value = newValue;
291
- args.isValid = newValue;
292
- };
293
-
294
- return { args, modelValue, isValid, onUpdateModelValue, onUpdateIsValid };
295
- },
296
- template: `<div class="max-w-md min-h-64"><EUITelephone v-bind="args" /></div>`,
297
- }),
298
- };
299
-
300
- export const TelInputDisabled: Story = {
301
- args: {
302
- modelValue: "9094089854",
303
- inputFilled: true,
304
- iconType: "startIcon",
305
- icon: PhoneIcon,
306
- disabled: true,
307
- },
308
- render: (args) => ({
309
- components: { EUITelephone },
310
- setup() {
311
- const modelValue = ref(args.modelValue);
312
- const isValid = ref(args.isValid);
313
-
314
- const onUpdateModelValue = (newValue: string) => {
315
- modelValue.value = newValue;
316
- args.modelValue = newValue;
317
- };
318
-
319
- const onUpdateIsValid = (newValue: boolean) => {
320
- isValid.value = newValue;
321
- args.isValid = newValue;
322
- };
323
-
324
- return { args, modelValue, isValid, onUpdateModelValue, onUpdateIsValid };
325
- },
326
- template: `<div class="max-w-md min-h-64"><EUITelephone v-bind="args" /></div>`,
327
- }),
328
- };
329
-
330
- export const TelInputReadonly: Story = {
331
- args: {
332
- modelValue: "9094089854",
333
- inputFilled: true,
334
- iconType: "startIcon",
335
- icon: PhoneIcon,
336
- readonly: true,
337
- },
338
- render: (args) => ({
339
- components: { EUITelephone },
340
- setup() {
341
- const modelValue = ref(args.modelValue);
342
- const isValid = ref(args.isValid);
343
-
344
- const onUpdateModelValue = (newValue: string) => {
345
- modelValue.value = newValue;
346
- args.modelValue = newValue;
347
- };
348
-
349
- const onUpdateIsValid = (newValue: boolean) => {
350
- isValid.value = newValue;
351
- args.isValid = newValue;
352
- };
353
-
354
- return { args, modelValue, isValid, onUpdateModelValue, onUpdateIsValid };
355
- },
356
- template: `<div class="max-w-md min-h-64"><EUITelephone v-bind="args" /></div>`,
357
- }),
358
- };
@@ -1,291 +0,0 @@
1
- <template>
2
- <div class="relative z-[calc(infinity)]">
3
- <label
4
- v-if="!inputFilled && label"
5
- :class="[
6
- 'text-xs w-full text-gray-500 cursor-pointer font-medium',
7
- required && `after:content-['*'] after:ml-0.5 after:text-red-500`,
8
- ]"> {{ label }} </label>
9
-
10
- <button
11
- type="button"
12
- :class="[disabled ? 'pointer-events-none cursor-not-allowed bg-gray-50' : 'bg-white', inputFilled ? 'h-14 rounded-2xl' : 'h-10 rounded-md', 'relative w-full mb-2 border border-gray-200 cursor-pointer z-1 group focus-within:border-purple-600 focus-within:ring-1 focus-within:ring-purple-600']"
13
- @click="focusInput"
14
- >
15
- <label
16
- v-if="inputFilled"
17
- :for="`${name}-${id}`"
18
- :class="[
19
- getIconClass(),
20
- inputValue
21
- ? 'top-3.5 text-xs text-gray-400 leading-none cursor-default'
22
- : 'top-1/2 text-sm w-full text-gray-700 cursor-pointer h-14 pt-5 pb-4 bg-white ring-1 ring-gray-200',
23
- disabled ? ' cursor-not-allowed' : '',
24
- required && `after:content-['*'] after:ml-0.5 after:text-red-500`,
25
- ]"
26
- class="absolute font-medium left-0 px-4 z-[1] -translate-y-1/2 duration-200 group-focus-within:top-3.5 group-focus-within:text-xs group-focus-within:text-gray-400 rounded-2xl group-focus-within:bg-transparent group-focus-within:-translate-y-1/2 group-focus-within:ring-transparent group-focus-within:h-auto group-focus-within:py-0 text-start first-letter:capitalize"
27
- >
28
- {{ label }}
29
- </label>
30
- <div
31
- v-if="icon && iconType"
32
- class="absolute inset-y-0 z-10 flex items-center pointer-events-none"
33
- :class="[
34
- iconType === 'startIcon' ? 'start-0 ps-3' : 'end-0 pe-3',
35
- disabled ? 'cursor-not-allowed' : '',
36
- ]"
37
- >
38
- <component
39
- :is="icon"
40
- class="text-gray-400 size-6"
41
- aria-hidden="true"
42
- />
43
- </div>
44
- <vue-tel-input
45
- ref="inputRef"
46
- v-model.trim="mobile"
47
- v-bind="bindProps"
48
- :class="[getIconClass()]"
49
- @on-input="onInputChanged"
50
- @country-changed="onCountryChanged"
51
- @blur="$emit('blur')"
52
- ></vue-tel-input>
53
- </button>
54
-
55
- <div class="errors" v-if="errorMessage">
56
- <p class="mt-2 text-xs text-red-500">
57
- {{ errorMessage }}
58
- </p>
59
- </div>
60
- <div
61
- class="absolute top-0 px-2 text-xs text-white rounded right-2"
62
- :class="[
63
- { 'bg-gray-400': tagColor === 'None' },
64
- { 'bg-green-400': tagColor === 'Success' },
65
- { 'bg-red-400': tagColor === 'Error' },
66
- ]"
67
- v-if="tag"
68
- >
69
- {{ tag }}
70
- </div>
71
- </div>
72
- </template>
73
-
74
- <script lang="ts" setup>
75
- import { computed, onUpdated, PropType, ref, toRefs, watch } from "vue";
76
- import { VueTelInput, VueTelInputCountryOption } from "vue-tel-input";
77
- import "vue-tel-input/vue-tel-input.css";
78
-
79
- const emit = defineEmits(["update:modelValue", "blur", "update:isValid"]);
80
-
81
- const props = defineProps({
82
- modelValue: {
83
- type: [String, Number],
84
- default: "",
85
- },
86
- name: {
87
- type: String,
88
- default: "",
89
- },
90
- label: {
91
- type: String,
92
- default: "Mobile Number"
93
- },
94
- placeholder: {
95
- type: String,
96
- },
97
- required: {
98
- type: Boolean,
99
- default: false,
100
- },
101
- readonly: {
102
- type: Boolean,
103
- },
104
- disabled: {
105
- type: Boolean,
106
- },
107
- autoFocus: {
108
- type: Boolean,
109
- required: false,
110
- default: false,
111
- },
112
- errors: { type: Object, required: false, default: () => {} },
113
- isValid: {
114
- type: Boolean,
115
- default: false,
116
- },
117
- tag: {
118
- type: String,
119
- default: "",
120
- },
121
- tagColor: {
122
- type: String as PropType<"None" | "Success" | "Error">,
123
- default: "None",
124
- },
125
- length: {
126
- type: Number,
127
- required: false,
128
- default: 25,
129
- },
130
- iconType: {
131
- type: String as PropType<"startIcon" | "endIcon">,
132
- default: "",
133
- },
134
- icon: {
135
- type: [Object, String],
136
- default: "",
137
- },
138
- inputFilled: {
139
- type: Boolean,
140
- default: false
141
- }
142
- });
143
-
144
- const { isValid } = toRefs(props);
145
-
146
- const generateUID = () => {
147
- const data = "euid-" + Math.random().toString(36).substr(2, 9) + "-" + Date.now().toString(36);
148
- return data;
149
- };
150
- const id = generateUID();
151
-
152
- const hasError = computed({
153
- set: (value) => {
154
- emit("update:isValid", value);
155
- },
156
- get: () => isValid.value,
157
- });
158
-
159
- const inputValue = computed(() => {
160
- return props.modelValue === 0 ? true : !!props.modelValue;
161
- });
162
-
163
- const mobile = ref(props.modelValue);
164
- const listener = computed(() => props.modelValue);
165
- watch(listener, (value) => {
166
- mobile.value = value;
167
- });
168
-
169
- // Make bindProps a reactive computed property
170
- const bindProps = computed(() => ({
171
- mode: "international",
172
- autoFormat: false,
173
- autoDefaultCountry: true,
174
- styleClasses: "eui-tel",
175
- invalidMsg: "Required mobile number",
176
- validCharactersOnly: true,
177
- preferredCountries: [],
178
- disabled: props.disabled,
179
- inputOptions: {
180
- autocomplete: "off",
181
- autofocus: props.autoFocus,
182
- name: props.name,
183
- id: id,
184
- placeholder: props.placeholder,
185
- maxlength: props.length,
186
- showDialCode: true,
187
- tabindex: 0,
188
- readonly: props.readonly,
189
- required: props.required,
190
- styleClasses: "eui-tel_input",
191
- },
192
- dropdownOptions: {
193
- disabled: props.readonly || props.disabled,
194
- showFlags: true,
195
- showDialCodeInList: true,
196
- showSearchBox: true,
197
- searchBoxPlaceholder: "Search country...",
198
- },
199
- }));
200
-
201
- const onInputChanged = (_formattedNumber: string, phoneObject: any) => {
202
- hasError.value = phoneObject.valid ? true : false;
203
- emit("update:modelValue", phoneObject.number);
204
- };
205
-
206
- const firstTime = ref(true);
207
- const onCountryChanged = (_event: VueTelInputCountryOption) => {
208
- if (!firstTime.value) {
209
- emit("update:modelValue", "");
210
- }
211
- };
212
-
213
- onUpdated(() => {
214
- setTimeout(() => {
215
- firstTime.value = false;
216
- }, 1500);
217
- });
218
-
219
- const errorMessage = computed(() => {
220
- if (Array.isArray(props.errors)) {
221
- if (typeof props.errors?.at(0) === "object") {
222
- return props.errors?.at(0)?.$message;
223
- } else {
224
- return props.errors[0];
225
- }
226
- } else {
227
- if (typeof props.errors === "object") {
228
- return props.errors?.[props.name];
229
- } else {
230
- return props.errors;
231
- }
232
- }
233
- });
234
-
235
- const getIconClass = () => {
236
- switch (props.iconType) {
237
- case "startIcon":
238
- return props.inputFilled ? "pl-12 pr-4" : "normal pl-10 pr-4";
239
- case "endIcon":
240
- return props.inputFilled ? "pr-12 pl-4" : "normal pr-10 pl-4";
241
- default:
242
- return props.inputFilled ? "px-4" : "normal px-4";
243
- }
244
- };
245
-
246
- const inputRef = ref<HTMLElement | null>(null);
247
- const focusInput = () => {
248
- if (inputRef.value) {
249
- inputRef.value?.focus();
250
- }
251
- };
252
- </script>
253
-
254
- <style lang="scss">
255
- .vue-tel-input.eui-tel {
256
- @apply rounded-none border-none focus-within:shadow-none focus-within:border-transparent;
257
- .vti__dropdown {
258
- @apply mt-4 p-2 ps-0 rounded-2xl hover:bg-transparent open:bg-transparent bg-transparent;
259
- }
260
- .vti__dropdown-list {
261
- @apply rounded-md;
262
- .vti__search_box_container {
263
- @apply sticky top-0 left-0 p-1 pr-0 bg-white;
264
- }
265
- .vti__dropdown-item {
266
- @apply text-sm text-gray-700 hover:text-gray-900;
267
- strong {
268
- @apply font-medium;
269
- }
270
- &.highlighted {
271
- @apply bg-gray-100;
272
- }
273
- }
274
- }
275
- .vti__search_box {
276
- @apply w-[98%] rounded-[4px] placeholder:text-sm;
277
- }
278
- .eui-tel_input {
279
- @apply z-0 h-full w-full pt-6 pb-3 placeholder:text-gray-400 focus:outline-none block text-sm font-medium appearance-none focus:border-purple-600 autofill:bg-white leading-6 disabled:opacity-75 disabled:bg-transparent;
280
- }
281
- }
282
-
283
- .vue-tel-input.eui-tel.normal {
284
- .vti__dropdown {
285
- @apply mt-0 p-2 ps-0 hover:bg-transparent open:bg-transparent bg-transparent;
286
- }
287
- .eui-tel_input {
288
- @apply rounded-md py-2;
289
- }
290
- }
291
- </style>
@@ -1 +0,0 @@
1
- {"version":3,"file":"EUITelephone.vue.js","sourceRoot":"","sources":["EUITelephone.vue"],"names":[],"mappings":"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"}