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

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 (215) hide show
  1. package/package.json +2 -5
  2. package/src/App.vue +0 -16
  3. package/src/App.vue.js.map +0 -1
  4. package/src/assets/fonts/gilroy/GilroyBold/font.woff +0 -0
  5. package/src/assets/fonts/gilroy/GilroyBold/font.woff2 +0 -0
  6. package/src/assets/fonts/gilroy/GilroyBoldItalic/font.woff +0 -0
  7. package/src/assets/fonts/gilroy/GilroyBoldItalic/font.woff2 +0 -0
  8. package/src/assets/fonts/gilroy/GilroyExtraBold/font.woff +0 -0
  9. package/src/assets/fonts/gilroy/GilroyExtraBold/font.woff2 +0 -0
  10. package/src/assets/fonts/gilroy/GilroyExtraBoldItalic/font.woff +0 -0
  11. package/src/assets/fonts/gilroy/GilroyExtraBoldItalic/font.woff2 +0 -0
  12. package/src/assets/fonts/gilroy/GilroyMedium/font.woff +0 -0
  13. package/src/assets/fonts/gilroy/GilroyMedium/font.woff2 +0 -0
  14. package/src/assets/fonts/gilroy/GilroyRegular/font.woff +0 -0
  15. package/src/assets/fonts/gilroy/GilroyRegular/font.woff2 +0 -0
  16. package/src/assets/fonts/gilroy/GilroySemiBold/font.woff +0 -0
  17. package/src/assets/fonts/gilroy/GilroySemiBold/font.woff2 +0 -0
  18. package/src/assets/fonts/inter/Inter-Bold.woff +0 -0
  19. package/src/assets/fonts/inter/Inter-Bold.woff2 +0 -0
  20. package/src/assets/fonts/inter/Inter-Italic.woff +0 -0
  21. package/src/assets/fonts/inter/Inter-Italic.woff2 +0 -0
  22. package/src/assets/fonts/inter/Inter-Medium.woff +0 -0
  23. package/src/assets/fonts/inter/Inter-Medium.woff2 +0 -0
  24. package/src/assets/fonts/inter/Inter-MediumItalic.woff +0 -0
  25. package/src/assets/fonts/inter/Inter-MediumItalic.woff2 +0 -0
  26. package/src/assets/fonts/inter/Inter-Regular.woff +0 -0
  27. package/src/assets/fonts/inter/Inter-Regular.woff2 +0 -0
  28. package/src/assets/fonts/inter/Inter-SemiBold.woff +0 -0
  29. package/src/assets/fonts/inter/Inter-SemiBold.woff2 +0 -0
  30. package/src/assets/fonts/inter/Inter-SemiBoldItalic.woff +0 -0
  31. package/src/assets/fonts/inter/Inter-SemiBoldItalic.woff2 +0 -0
  32. package/src/assets/images/search-nodata.png +0 -0
  33. package/src/assets/scss/body.scss +0 -25
  34. package/src/assets/svg/CheckTick.vue +0 -21
  35. package/src/assets/svg/CheckTick.vue.js.map +0 -1
  36. package/src/assets/svg/ChevronBigDown.vue +0 -22
  37. package/src/assets/svg/ChevronBigDown.vue.js.map +0 -1
  38. package/src/assets/svg/ChevronDownSolid.vue +0 -19
  39. package/src/assets/svg/ChevronDownSolid.vue.js.map +0 -1
  40. package/src/assets/svg/ChevronDownStroke.vue +0 -22
  41. package/src/assets/svg/ChevronDownStroke.vue.js.map +0 -1
  42. package/src/assets/svg/ChevronDownStrokeSolid.vue +0 -19
  43. package/src/assets/svg/ChevronDownStrokeSolid.vue.js.map +0 -1
  44. package/src/assets/svg/SearchBigZoomIn.vue +0 -21
  45. package/src/assets/svg/SearchBigZoomIn.vue.js.map +0 -1
  46. package/src/assets/svg/SortArrow.vue +0 -24
  47. package/src/assets/svg/SortArrow.vue.js.map +0 -1
  48. package/src/assets/svg/Student.vue +0 -30
  49. package/src/assets/svg/Student.vue.js.map +0 -1
  50. package/src/assets/svg/partner.vue +0 -33
  51. package/src/assets/svg/partner.vue.js.map +0 -1
  52. package/src/assets/svg/people.vue +0 -25
  53. package/src/assets/svg/people.vue.js.map +0 -1
  54. package/src/assets/vue.svg +0 -1
  55. package/src/components/HelloWorld.vue +0 -1974
  56. package/src/components/HelloWorld.vue.js.map +0 -1
  57. package/src/components/accordion/EUIAccordion.stories.ts +0 -204
  58. package/src/components/accordion/EUIAccordion.vue +0 -152
  59. package/src/components/accordion/EUIAccordion.vue.js.map +0 -1
  60. package/src/components/alerts/EUIAlerts.stories.ts +0 -217
  61. package/src/components/alerts/EUIAlerts.vue +0 -194
  62. package/src/components/alerts/EUIAlerts.vue.js.map +0 -1
  63. package/src/components/avatar/EUIAvatar.stories.ts +0 -157
  64. package/src/components/avatar/EUIAvatar.vue +0 -96
  65. package/src/components/avatar/EUIAvatar.vue.js.map +0 -1
  66. package/src/components/breadcrumb/EUIBreadcrumb.stories.ts +0 -75
  67. package/src/components/breadcrumb/EUIBreadcrumb.vue +0 -59
  68. package/src/components/breadcrumb/EUIBreadcrumb.vue.js.map +0 -1
  69. package/src/components/button/EUIButton.stories.ts +0 -270
  70. package/src/components/button/EUIButton.vue +0 -154
  71. package/src/components/button/EUIButton.vue.js.map +0 -1
  72. package/src/components/button/EUIButtonGroup.vue +0 -287
  73. package/src/components/button/EUIButtonGroup.vue.js.map +0 -1
  74. package/src/components/button/buttonAnimateTab.vue +0 -74
  75. package/src/components/button/buttonAnimateTab.vue.js.map +0 -1
  76. package/src/components/checkbox/EUICheckbox.stories.ts +0 -58
  77. package/src/components/checkbox/EUICheckbox.vue +0 -110
  78. package/src/components/checkbox/EUICheckbox.vue.js.map +0 -1
  79. package/src/components/datepicker/EUIDatepicker.stories.ts +0 -492
  80. package/src/components/datepicker/EUIDatepicker.vue +0 -295
  81. package/src/components/datepicker/EUIDatepicker.vue.js.map +0 -1
  82. package/src/components/delete.vue +0 -262
  83. package/src/components/delete.vue.js.map +0 -1
  84. package/src/components/dragModal/EUIDrag.vue +0 -179
  85. package/src/components/dragModal/EUIDrag.vue.js.map +0 -1
  86. package/src/components/dropdown/EUIMultiDropdown.stories.ts +0 -294
  87. package/src/components/dropdown/EUIMultiDropdown.vue +0 -174
  88. package/src/components/dropdown/EUIMultiDropdown.vue.js.map +0 -1
  89. package/src/components/errorMessage/EUIErrorMessage.scss +0 -0
  90. package/src/components/errorMessage/EUIErrorMessage.stories.ts +0 -41
  91. package/src/components/errorMessage/EUIErrorMessage.vue +0 -25
  92. package/src/components/errorMessage/EUIErrorMessage.vue.js.map +0 -1
  93. package/src/components/index.js.map +0 -1
  94. package/src/components/index.ts +0 -62
  95. package/src/components/input/EUIInput.stories.ts +0 -387
  96. package/src/components/input/EUIInput.vue +0 -223
  97. package/src/components/input/EUIInput.vue.js.map +0 -1
  98. package/src/components/input/EUINumberInput.vue +0 -250
  99. package/src/components/loader/EUICircleLoader.vue +0 -31
  100. package/src/components/loader/EUICircleLoader.vue.js.map +0 -1
  101. package/src/components/loader/EUICubeLoader.vue +0 -237
  102. package/src/components/loader/EUICubeLoader.vue.js.map +0 -1
  103. package/src/components/loader/EUILoader.stories.ts +0 -99
  104. package/src/components/loader/EUILoader.vue +0 -17
  105. package/src/components/loader/EUILoader.vue.js.map +0 -1
  106. package/src/components/loader/EUISquareLoader.vue +0 -47
  107. package/src/components/loader/EUISquareLoader.vue.js.map +0 -1
  108. package/src/components/modal/EUIModal.stories.ts +0 -412
  109. package/src/components/modal/EUIModal.vue +0 -224
  110. package/src/components/modal/EUIModal.vue.js.map +0 -1
  111. package/src/components/pillSelect/EUIPillSelect.stories.ts +0 -74
  112. package/src/components/pillSelect/EUIPillSelect.vue +0 -149
  113. package/src/components/pillSelect/EUIPillSelect.vue.js.map +0 -1
  114. package/src/components/popover/EUIPopover.stories.ts +0 -306
  115. package/src/components/popover/EUIPopover.vue +0 -297
  116. package/src/components/popover/EUIPopover.vue.js.map +0 -1
  117. package/src/components/radio/EUIRadio.stories.ts +0 -54
  118. package/src/components/radio/EUIRadio.vue +0 -75
  119. package/src/components/radio/EUIRadio.vue.js.map +0 -1
  120. package/src/components/searchInput/EUISearch.stories.ts +0 -24
  121. package/src/components/searchInput/EUISearch.vue +0 -223
  122. package/src/components/searchInput/EUISearch.vue.js.map +0 -1
  123. package/src/components/searchTagSelect/EUISearchTagSelect.vue +0 -642
  124. package/src/components/searchTagSelect/EUISearchTagSelect.vue.js.map +0 -1
  125. package/src/components/searchTagSelect/SearchInput.vue +0 -167
  126. package/src/components/searchTagSelect/SearchInput.vue.js.map +0 -1
  127. package/src/components/searchexpand/EUISearchExpand.vue +0 -148
  128. package/src/components/searchexpand/EUISearchExpand.vue.js.map +0 -1
  129. package/src/components/searchexpand/EUISearchToggle.vue +0 -86
  130. package/src/components/searchexpand/EUISearchToggle.vue.js.map +0 -1
  131. package/src/components/select/EUISelect.stories.ts +0 -101
  132. package/src/components/select/EUISelect.vue +0 -1092
  133. package/src/components/select/EUISelect.vue.js.map +0 -1
  134. package/src/components/selectSearch/EUISelectSearch.vue +0 -23
  135. package/src/components/selectSearch/EUISelectSearch.vue.js.map +0 -1
  136. package/src/components/slideover/EUISlideover.stories.ts +0 -318
  137. package/src/components/slideover/EUISlideover.vue +0 -207
  138. package/src/components/slideover/EUISlideover.vue.js.map +0 -1
  139. package/src/components/stepperTimeline/EUIStepperHorizontal.vue +0 -242
  140. package/src/components/stepperTimeline/EUIStepperHorizontal.vue.js.map +0 -1
  141. package/src/components/stepperTimeline/EUIStepperTimeline.stories.ts +0 -54
  142. package/src/components/stepperTimeline/EUIStepperTimeline.vue +0 -16
  143. package/src/components/stepperTimeline/EUIStepperTimeline.vue.js.map +0 -1
  144. package/src/components/stepperTimeline/EUIStepperVertical.vue +0 -112
  145. package/src/components/stepperTimeline/EUIStepperVertical.vue.js.map +0 -1
  146. package/src/components/table/ColumnResizeTable.vue +0 -740
  147. package/src/components/table/ColumnResizeTable.vue.js.map +0 -1
  148. package/src/components/table/EUIDashboardTable.vue +0 -514
  149. package/src/components/table/EUIDashboardTable.vue.js.map +0 -1
  150. package/src/components/table/EUIPageLimit.vue +0 -66
  151. package/src/components/table/EUIPageLimit.vue.js.map +0 -1
  152. package/src/components/table/EUIPagination.vue +0 -175
  153. package/src/components/table/EUIPagination.vue.js.map +0 -1
  154. package/src/components/table/EUIStudentPagination.vue +0 -172
  155. package/src/components/table/EUIStudentPagination.vue.js.map +0 -1
  156. package/src/components/table/EUITable.stories.ts +0 -300
  157. package/src/components/table/EUITable.vue +0 -559
  158. package/src/components/table/EUITable.vue.js.map +0 -1
  159. package/src/components/table/EUITableCheckbox.vue +0 -98
  160. package/src/components/table/EUITableCheckbox.vue.js.map +0 -1
  161. package/src/components/table/GrowthTable.vue +0 -575
  162. package/src/components/table/GrowthTable.vue.js.map +0 -1
  163. package/src/components/table/GrowthTableView.vue +0 -108
  164. package/src/components/table/GrowthTableView.vue.js.map +0 -1
  165. package/src/components/table/ResizeTableview.vue +0 -198
  166. package/src/components/table/ResizeTableview.vue.js.map +0 -1
  167. package/src/components/table/UCheckbox.vue +0 -169
  168. package/src/components/table/UCheckbox.vue.js.map +0 -1
  169. package/src/components/table/UTable.scss +0 -69
  170. package/src/components/table/UTable.vue +0 -611
  171. package/src/components/table/UTable.vue.js.map +0 -1
  172. package/src/components/table/UTableview.vue +0 -189
  173. package/src/components/table/UTableview.vue.js.map +0 -1
  174. package/src/components/tabs/EUITabOutline.vue +0 -263
  175. package/src/components/tabs/EUITabOutline.vue.js.map +0 -1
  176. package/src/components/tabs/EUITabs.vue +0 -226
  177. package/src/components/tabs/EUITabs.vue.js.map +0 -1
  178. package/src/components/tabs/EUItabs.stories.ts +0 -137
  179. package/src/components/tag/EUITag.stories.ts +0 -53
  180. package/src/components/tag/EUITag.vue +0 -88
  181. package/src/components/tag/EUITag.vue.js.map +0 -1
  182. package/src/components/telephone/EUITelephone.stories.ts +0 -358
  183. package/src/components/telephone/EUITelephone.vue +0 -299
  184. package/src/components/telephone/EUITelephone.vue.js.map +0 -1
  185. package/src/components/textArea/EUITextArea.stories.ts +0 -134
  186. package/src/components/textArea/EUITextArea.vue +0 -155
  187. package/src/components/textArea/EUITextArea.vue.js.map +0 -1
  188. package/src/components/timeLine/EUITimeLine.stories.ts +0 -247
  189. package/src/components/timeLine/EUITimeLine.vue +0 -148
  190. package/src/components/timeLine/EUITimeLine.vue.js.map +0 -1
  191. package/src/components/toggle/EUIToggle.stories.ts +0 -63
  192. package/src/components/toggle/EUIToggle.vue +0 -101
  193. package/src/components/toggle/EUIToggle.vue.js.map +0 -1
  194. package/src/components/tooltip/EUITooltip.stories.ts +0 -53
  195. package/src/components/tooltip/EUITooltip.vue +0 -111
  196. package/src/components/tooltip/EUITooltip.vue.js.map +0 -1
  197. package/src/components/uidemo/select-com.vue +0 -120
  198. package/src/components/uidemo/select-com.vue.js.map +0 -1
  199. package/src/data/books.js.map +0 -1
  200. package/src/data/books.ts +0 -163
  201. package/src/data/country.ts +0 -56
  202. package/src/data/tab.js.map +0 -1
  203. package/src/data/tab.ts +0 -40
  204. package/src/data/table.js.map +0 -1
  205. package/src/data/table.ts +0 -5654
  206. package/src/main.js.map +0 -1
  207. package/src/main.ts +0 -5
  208. package/src/style.scss +0 -186
  209. package/src/utils/helpers.js.map +0 -1
  210. package/src/utils/helpers.ts +0 -30
  211. package/src/utils/lodash.js.map +0 -1
  212. package/src/utils/lodash.ts +0 -9
  213. package/src/utils/types.js.map +0 -1
  214. package/src/utils/types.ts +0 -9
  215. package/src/vite-env.d.ts +0 -5
@@ -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,299 +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
-
73
- </template>
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
- const emit = defineEmits(["update:modelValue", "blur", "update:isValid"]);
79
- const props = defineProps({
80
- modelValue: {
81
- type: [String, Number],
82
- default: "",
83
- },
84
- name: {
85
- type: String,
86
- default: "",
87
- },
88
- label: {
89
- type: String,
90
- default: "Mobile Number"
91
- },
92
- placeholder: {
93
- type: String,
94
- },
95
- required: {
96
- type: Boolean,
97
- default: false,
98
- },
99
- readonly: {
100
- type: Boolean,
101
- },
102
- disabled: {
103
- type: Boolean,
104
- },
105
- autoFocus: {
106
- type: Boolean,
107
- required: false,
108
- default: false,
109
- },
110
- errors: { type: Object, required: false, default: () => {} },
111
- isValid: {
112
- type: Boolean,
113
- default: false,
114
- },
115
- tag: {
116
- type: String,
117
- default: "",
118
- },
119
- tagColor: {
120
- type: String as PropType<"None" | "Success" | "Error">,
121
- default: "None",
122
- },
123
- length: {
124
- type: Number,
125
- required: false,
126
- default: 25,
127
- },
128
- iconType: {
129
- type: String as PropType<"startIcon" | "endIcon">,
130
- default: "",
131
- },
132
- icon: {
133
- type: [Object, String],
134
- default: "",
135
- },
136
- inputFilled: {
137
- type:Boolean,
138
- default: false
139
- }
140
- });
141
- const { isValid } = toRefs(props);
142
-
143
- const generateUID = () => {
144
- const data = "euid-" + Math.random().toString(36).substr(2, 9) + "-" + Date.now().toString(36);
145
- return data;
146
- };
147
- const id = generateUID();
148
-
149
- const hasError = computed({
150
- set: (value) => {
151
- emit("update:isValid", value);
152
- },
153
- get: () => isValid.value,
154
- });
155
-
156
- const inputValue = computed(() => {
157
- return props.modelValue === 0 ? true : !!props.modelValue;
158
- });
159
-
160
- const mobile = ref(props.modelValue);
161
- const listener = computed(() => props.modelValue);
162
- watch(listener, (value) => {
163
- mobile.value = value;
164
- });
165
-
166
- const updateValue = computed(() => {
167
- return {
168
- focus: props.autoFocus,
169
- place: props.placeholder,
170
- disabled: props.disabled,
171
- required: props.required,
172
- name: props.name,
173
- length: props.length,
174
- readonly: props.readonly
175
- };
176
- });
177
-
178
- const bindProps = {
179
- mode: "international",
180
- autoFormat: false,
181
- autoDefaultCountry: true,
182
- styleClasses: "eui-tel",
183
- invalidMsg: "Required mobile number",
184
- validCharactersOnly: true,
185
- preferredCountries: [],
186
- disabled: updateValue.value.disabled,
187
- inputOptions: {
188
- autocomplete: "off",
189
- autofocus: updateValue.value.focus,
190
- name: updateValue.value.name,
191
- id: id,
192
- placeholder: updateValue.value.place,
193
- maxlength: updateValue.value.length,
194
- showDialCode: true,
195
- tabindex: 0,
196
- readonly: updateValue.value.readonly,
197
- required: updateValue.value.required,
198
- styleClasses: "eui-tel_input",
199
- },
200
- dropdownOptions: {
201
- disabled: updateValue.value.readonly || updateValue.value.disabled,
202
- showFlags: true,
203
- showDialCodeInList: true,
204
- showSearchBox: true,
205
- searchBoxPlaceholder: "Search country...",
206
- },
207
- };
208
-
209
- const onInputChanged = (_formattedNumber: string, phoneObject: any) => {
210
- hasError.value = phoneObject.valid ? true : false;
211
- emit("update:modelValue", phoneObject.number);
212
- };
213
-
214
- const firstTime = ref(true);
215
- const onCountryChanged = (_event: VueTelInputCountryOption) => {
216
- if (!firstTime.value) {
217
- emit("update:modelValue", "");
218
- }
219
- };
220
-
221
- onUpdated(() => {
222
- setTimeout(() => {
223
- firstTime.value = false;
224
- }, 1500);
225
- });
226
-
227
- const errorMessage = computed(() => {
228
- if (Array.isArray(props.errors)) {
229
- if (typeof props.errors?.at(0) === "object") {
230
- return props.errors?.at(0)?.$message;
231
- } else {
232
- return props.errors[0];
233
- }
234
- } else {
235
- if (typeof props.errors === "object") {
236
- return props.errors?.[props.name];
237
- } else {
238
- return props.errors;
239
- }
240
- }
241
- });
242
-
243
- const getIconClass = () => {
244
- switch (props.iconType) {
245
- case "startIcon":
246
- return props.inputFilled ? "pl-12 pr-4" : "normal pl-10 pr-4";
247
- case "endIcon":
248
- return props.inputFilled ? "pr-12 pl-4" : "normal pr-10 pl-4";
249
- default:
250
- return props.inputFilled ? "px-4" : "normal px-4";
251
- }
252
- };
253
-
254
- const inputRef = ref<HTMLElement | null>(null);
255
- const focusInput = () => {
256
- if (inputRef.value) {
257
- inputRef.value?.focus();
258
- }
259
- };
260
- </script>
261
-
262
- <style lang="scss">
263
- .vue-tel-input.eui-tel {
264
- @apply rounded-none border-none focus-within:shadow-none focus-within:border-transparent;
265
- .vti__dropdown {
266
- @apply mt-4 p-2 ps-0 rounded-2xl hover:bg-transparent open:bg-transparent bg-transparent;
267
- }
268
- .vti__dropdown-list {
269
- @apply rounded-md;
270
- .vti__search_box_container {
271
- @apply sticky top-0 left-0 p-1 pr-0 bg-white;
272
- }
273
- .vti__dropdown-item {
274
- @apply text-sm text-gray-700 hover:text-gray-900;
275
- strong {
276
- @apply font-medium;
277
- }
278
- &.highlighted {
279
- @apply bg-gray-100;
280
- }
281
- }
282
- }
283
- .vti__search_box {
284
- @apply w-[98%] rounded-[4px] placeholder:text-sm;
285
- }
286
- .eui-tel_input {
287
- @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;
288
- }
289
- }
290
-
291
- .vue-tel-input.eui-tel.normal {
292
- .vti__dropdown {
293
- @apply mt-0 p-2 ps-0 hover:bg-transparent open:bg-transparent bg-transparent;
294
- }
295
- .eui-tel_input {
296
- @apply rounded-md py-2;
297
- }
298
- }
299
- </style>
@@ -1 +0,0 @@
1
- {"version":3,"file":"EUITelephone.vue.js","sourceRoot":"","sources":["EUITelephone.vue"],"names":[],"mappings":"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"}