@usssa/component-library 1.0.0-alpha.4 → 1.0.0-alpha.40

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 (161) hide show
  1. package/README.md +4 -1
  2. package/package.json +6 -4
  3. package/src/App.vue +9 -0
  4. package/src/assets/quasar-logo-vertical.svg +15 -0
  5. package/src/boot/.gitkeep +0 -0
  6. package/src/boot/google-maps.js +11 -0
  7. package/src/components/ComponentLink.vue +26 -0
  8. package/src/components/core/UAvatar.vue +161 -0
  9. package/src/components/core/UAvatarGroup.vue +119 -0
  10. package/src/components/core/UBadgeStd.vue +91 -0
  11. package/src/components/core/UBannerStd.vue +115 -0
  12. package/src/components/core/UBreadCrumbs.vue +67 -0
  13. package/src/components/core/UBtnIcon.vue +159 -0
  14. package/src/components/core/UBtnStd.vue +129 -0
  15. package/src/components/core/UBtnToggle.vue +68 -0
  16. package/src/components/core/UCheckboxStd.vue +95 -0
  17. package/src/components/core/UChip.vue +251 -0
  18. package/src/components/core/UDialogStd.vue +228 -0
  19. package/src/components/core/UDrawer.vue +211 -0
  20. package/src/components/core/UInnerLoader.vue +58 -0
  21. package/src/components/core/UInputAddressLookup.vue +466 -0
  22. package/src/components/core/UInputPhoneStd.vue +295 -0
  23. package/src/components/core/UInputTextStd.vue +293 -0
  24. package/src/components/core/UMenuButtonStd.vue +274 -0
  25. package/src/components/core/UMenuDropdown.vue +77 -0
  26. package/src/components/core/UMenuDropdownAdvancedSearch.vue +262 -0
  27. package/src/components/core/UMenuItem.vue +132 -0
  28. package/src/components/core/UMultiSelectStd.vue +259 -0
  29. package/src/components/core/UPagination.vue +104 -0
  30. package/src/components/core/URadioBtn.vue +116 -0
  31. package/src/components/core/URadioStd.vue +62 -0
  32. package/src/components/core/USelectStd.vue +233 -0
  33. package/src/components/core/UTabBtnStd.vue +167 -0
  34. package/src/components/core/UTable/UTable.vue +93 -0
  35. package/src/components/core/UTable/UTd.vue +63 -0
  36. package/src/components/core/UTable/UTh.vue +48 -0
  37. package/src/components/core/UTable/UTr.vue +20 -0
  38. package/src/components/core/UTableStd.vue +636 -0
  39. package/src/components/core/UTabsStd.vue +111 -0
  40. package/src/components/core/UToggleStd.vue +159 -0
  41. package/src/components/core/UTooltip.vue +71 -0
  42. package/src/components/index.js +66 -0
  43. package/src/composables/useNotify.js +79 -0
  44. package/src/composables/useOverlayLoader.js +23 -0
  45. package/src/css/app.sass +159 -0
  46. package/src/css/colors.sass +101 -0
  47. package/src/css/media.sass +1 -0
  48. package/src/css/quasar.variables.sass +119 -0
  49. package/src/css/typography.sass +0 -0
  50. package/src/css/vars/colors.variables.sass +126 -0
  51. package/src/layouts/MainLayout.vue +177 -0
  52. package/src/pages/AdvancedSearch.vue +512 -0
  53. package/src/pages/Avatar.vue +77 -0
  54. package/src/pages/AvatarGroup.vue +139 -0
  55. package/src/pages/BadgeStd.vue +83 -0
  56. package/src/pages/BannerPage.vue +76 -0
  57. package/src/pages/BreadCrumbs.vue +100 -0
  58. package/src/pages/BtnIcon.vue +120 -0
  59. package/src/pages/BtnStd.vue +138 -0
  60. package/src/pages/BtnToggle.vue +131 -0
  61. package/src/pages/CheckBox.vue +62 -0
  62. package/src/pages/Chip.vue +108 -0
  63. package/src/pages/ComponentBase.vue +54 -0
  64. package/src/pages/Dialog.vue +206 -0
  65. package/src/pages/Drawer.vue +128 -0
  66. package/src/pages/ErrorNotFound.vue +11 -0
  67. package/src/pages/IndexPage.vue +11 -0
  68. package/src/pages/InnerLoader.vue +81 -0
  69. package/src/pages/InputAddressLookup.vue +258 -0
  70. package/src/pages/InputPhone.vue +152 -0
  71. package/src/pages/InputText.vue +140 -0
  72. package/src/pages/MenuButton.vue +194 -0
  73. package/src/pages/MenuDropdown.vue +79 -0
  74. package/src/pages/MenuItem.vue +68 -0
  75. package/src/pages/MultiSelectStd.vue +174 -0
  76. package/src/pages/NotifyPage.vue +109 -0
  77. package/src/pages/OverlayLoader.vue +128 -0
  78. package/src/pages/Pagination.vue +71 -0
  79. package/src/pages/Radio.vue +80 -0
  80. package/src/pages/RadioBtn.vue +104 -0
  81. package/src/pages/SelectStd.vue +160 -0
  82. package/src/pages/TabButtonPage.vue +126 -0
  83. package/src/pages/TablePage.vue +375 -0
  84. package/src/pages/TabsPage.vue +261 -0
  85. package/src/pages/TogglePage.vue +58 -0
  86. package/src/pages/TooltipPage.vue +125 -0
  87. package/src/router/index.js +34 -0
  88. package/src/router/routes.js +149 -0
  89. package/dist/spa/assets/Avatar.45667392.js +0 -9
  90. package/dist/spa/assets/AvatarGroup.99557443.js +0 -9
  91. package/dist/spa/assets/AvatarGroup.bb4cd03a.css +0 -1
  92. package/dist/spa/assets/BadgeStd.ee4129c5.js +0 -6
  93. package/dist/spa/assets/BannerPage.6c6a98c4.js +0 -10
  94. package/dist/spa/assets/BannerPage.d195fcac.css +0 -1
  95. package/dist/spa/assets/BtnIcon.89e50d2e.css +0 -1
  96. package/dist/spa/assets/BtnIcon.934f8c5b.js +0 -10
  97. package/dist/spa/assets/BtnStd.95fc4510.js +0 -11
  98. package/dist/spa/assets/CheckBox.3c204a4b.css +0 -1
  99. package/dist/spa/assets/CheckBox.fbc0bd1a.js +0 -7
  100. package/dist/spa/assets/Chip.49ffc857.js +0 -11
  101. package/dist/spa/assets/Chip.74acaa33.css +0 -1
  102. package/dist/spa/assets/ComponentBase.1ae19b7e.js +0 -1
  103. package/dist/spa/assets/ErrorNotFound.6cccfaee.js +0 -1
  104. package/dist/spa/assets/IndexPage.17d09b76.js +0 -1
  105. package/dist/spa/assets/InputText.19c0d7d1.css +0 -1
  106. package/dist/spa/assets/InputText.3fcd97a4.js +0 -20
  107. package/dist/spa/assets/KFOkCnqEu92Fr1MmgVxIIzQ.34e9582c.woff +0 -0
  108. package/dist/spa/assets/KFOlCnqEu92Fr1MmEU9fBBc-.9ce7f3ac.woff +0 -0
  109. package/dist/spa/assets/KFOlCnqEu92Fr1MmSU5fBBc-.bf14c7d7.woff +0 -0
  110. package/dist/spa/assets/KFOlCnqEu92Fr1MmWUlfBBc-.e0fd57c0.woff +0 -0
  111. package/dist/spa/assets/KFOlCnqEu92Fr1MmYUtfBBc-.f6537e32.woff +0 -0
  112. package/dist/spa/assets/KFOmCnqEu92Fr1Mu4mxM.f2abf7fb.woff +0 -0
  113. package/dist/spa/assets/MainLayout.912bb0f8.js +0 -1
  114. package/dist/spa/assets/MultiSelectStd.644b108c.js +0 -17
  115. package/dist/spa/assets/MultiSelectStd.c7af49eb.css +0 -1
  116. package/dist/spa/assets/QAvatar.5940a79e.js +0 -1
  117. package/dist/spa/assets/QCheckbox.48b43f7d.js +0 -1
  118. package/dist/spa/assets/QPage.ca395ec4.js +0 -1
  119. package/dist/spa/assets/QRadio.0a7f5e2c.js +0 -1
  120. package/dist/spa/assets/QResizeObserver.30c3566c.js +0 -1
  121. package/dist/spa/assets/QSelect.a40eb786.js +0 -1
  122. package/dist/spa/assets/QTabs.72f2507e.js +0 -1
  123. package/dist/spa/assets/QToggle.376c48be.js +0 -1
  124. package/dist/spa/assets/QTooltip.5aa8e325.js +0 -1
  125. package/dist/spa/assets/Radio.0ac35288.js +0 -7
  126. package/dist/spa/assets/Radio.aca54a89.css +0 -1
  127. package/dist/spa/assets/SelectStd.5c6891db.css +0 -1
  128. package/dist/spa/assets/SelectStd.daf1def9.js +0 -16
  129. package/dist/spa/assets/TabButtonPage.20e871dd.js +0 -7
  130. package/dist/spa/assets/TabButtonPage.36ce9f9c.css +0 -1
  131. package/dist/spa/assets/TabsPage.9b94ff39.css +0 -1
  132. package/dist/spa/assets/TabsPage.b92cccee.js +0 -9
  133. package/dist/spa/assets/TogglePage.8129b631.css +0 -1
  134. package/dist/spa/assets/TogglePage.ba6e325c.js +0 -9
  135. package/dist/spa/assets/UAvatar.dda7e478.js +0 -1
  136. package/dist/spa/assets/UAvatar.ea8daa38.css +0 -1
  137. package/dist/spa/assets/UBadgeStd.3965db9a.css +0 -1
  138. package/dist/spa/assets/UBadgeStd.e165ee05.js +0 -1
  139. package/dist/spa/assets/UBtnStd.979ec4e8.js +0 -1
  140. package/dist/spa/assets/UBtnStd.bdd4f5e5.css +0 -1
  141. package/dist/spa/assets/UTooltip.d2e04d0c.js +0 -1
  142. package/dist/spa/assets/UTooltip.efa029a7.css +0 -1
  143. package/dist/spa/assets/dom.e9d4ad51.js +0 -1
  144. package/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.fd84f88b.woff +0 -0
  145. package/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.4a4dbc62.woff2 +0 -0
  146. package/dist/spa/assets/format.41663636.js +0 -1
  147. package/dist/spa/assets/index.43c62a18.js +0 -21
  148. package/dist/spa/assets/index.4fbd73cf.css +0 -5
  149. package/dist/spa/assets/option-sizes.10cc02d3.js +0 -1
  150. package/dist/spa/assets/render.e67ff27a.js +0 -1
  151. package/dist/spa/assets/tooltip.7c0d0774.js +0 -8
  152. package/dist/spa/assets/touch.9135741d.js +0 -1
  153. package/dist/spa/assets/use-checkbox.44a623c0.js +0 -1
  154. package/dist/spa/favicon.ico +0 -0
  155. package/dist/spa/icons/caret-down.svg +0 -5
  156. package/dist/spa/icons/circle-xmark.svg +0 -6
  157. package/dist/spa/icons/favicon-128x128.png +0 -0
  158. package/dist/spa/icons/favicon-16x16.png +0 -0
  159. package/dist/spa/icons/favicon-32x32.png +0 -0
  160. package/dist/spa/icons/favicon-96x96.png +0 -0
  161. package/dist/spa/index.html +0 -3
@@ -0,0 +1,512 @@
1
+ <script setup>
2
+ import { computed, ref, toRaw, watch } from 'vue'
3
+ import ComponentBase from './ComponentBase.vue'
4
+ import { UMenuDropdownAdvancedSearch, UBtnStd } from 'src/components'
5
+
6
+ defineOptions({
7
+ name: 'AdvancedSearch',
8
+ })
9
+
10
+ const typeOptions = ['People', 'Team', 'Event', 'Venue', 'Default']
11
+ const sizeOptions = ['md', 'sm']
12
+
13
+ const type = ref('People')
14
+ const size = ref('md')
15
+ const people_fields = ref([
16
+ {
17
+ label: 'First Name',
18
+ inputType: 'Text',
19
+ hintText: 'Legal first name',
20
+ col: 6,
21
+ value: '',
22
+ },
23
+ {
24
+ label: 'Middle Name',
25
+ inputType: 'Text',
26
+ hintText: 'Middle initial or name',
27
+ col: 6,
28
+ value: '',
29
+ },
30
+ {
31
+ label: 'Last Name',
32
+ inputType: 'Text',
33
+ hintText: 'Legal last name',
34
+ col: 6,
35
+ value: '',
36
+ },
37
+
38
+ {
39
+ label: 'Suffix',
40
+ inputType: 'Select',
41
+ value: '',
42
+ hintText: 'Jr., Sr., II, III',
43
+ col: 6,
44
+ options: [
45
+ {
46
+ label: 'Jr.',
47
+ value: 'Jr.',
48
+ },
49
+ {
50
+ label: 'Sr.',
51
+ value: 'Sr.',
52
+ },
53
+ {
54
+ label: 'II',
55
+ value: 'II',
56
+ },
57
+ {
58
+ label: 'III',
59
+ value: 'III',
60
+ },
61
+ ],
62
+ },
63
+ {
64
+ label: 'Email Address',
65
+ inputType: 'Text',
66
+ value: '',
67
+ hintText: 'Enter valid email address',
68
+ col: 12,
69
+ },
70
+ {
71
+ label: 'Phone Number',
72
+ inputType: 'Phone',
73
+ value: '',
74
+ hintText: 'Include area code in phone number',
75
+ col: 12,
76
+ options: [
77
+ { name: 'United States', code: '+1', flag: 'us' },
78
+ { name: 'Canada', code: '+1', flag: 'ca' },
79
+ { name: 'Mexico', code: '+52', flag: 'mx' },
80
+ ],
81
+ selectedCountry: {
82
+ name: 'United States',
83
+ code: '+1',
84
+ flag: 'us',
85
+ },
86
+ },
87
+ ])
88
+ const people_fields_obj = ref({
89
+ firstName: '',
90
+ middleName: '',
91
+ lastName: '',
92
+ suffix: '',
93
+ emailAddress: '',
94
+ phoneNumber: '',
95
+ selectedCountry: {
96
+ name: 'United States',
97
+ code: '+1',
98
+ flag: 'us',
99
+ },
100
+ })
101
+ const event_fields_obj = ref({
102
+ eventName: '',
103
+ sport: '',
104
+ city: '',
105
+ state: '',
106
+ startDate: '',
107
+ endDate: '',
108
+ })
109
+ const default_fields_obj = ref({
110
+ firstName: '',
111
+ lastName: '',
112
+ teamName: '',
113
+ eventName: '',
114
+ venueName: '',
115
+ })
116
+ const team_fields_obj = ref({
117
+ teamName: '',
118
+ sport: '',
119
+ class: '',
120
+ city: '',
121
+ state: '',
122
+ })
123
+ const venue_fields_obj = ref({
124
+ venueName: '',
125
+ venueAddress: '',
126
+ country: '',
127
+ state: '',
128
+ postalCode: '',
129
+ sport: '',
130
+ })
131
+ const default_fields = ref([
132
+ {
133
+ label: 'First Name',
134
+ inputType: 'Text',
135
+ hintText: 'Legal first name',
136
+ },
137
+ {
138
+ label: 'Last Name',
139
+ inputType: 'Text',
140
+ hintText: 'Legal last name',
141
+ },
142
+ {
143
+ label: 'Team Name',
144
+ inputType: 'Text',
145
+ col: 12,
146
+ hintText: 'Full or short team name',
147
+ },
148
+ {
149
+ label: 'Event Name',
150
+ inputType: 'Text',
151
+ col: 12,
152
+ hintText: 'Full or partial event name',
153
+ },
154
+ {
155
+ label: 'Venue Name',
156
+ inputType: 'Text',
157
+ col: 12,
158
+ hintText: 'Full or partial venue name',
159
+ },
160
+ ])
161
+ const event_fields = ref([
162
+ {
163
+ label: 'Event Name',
164
+ inputType: 'Text',
165
+ col: 12,
166
+ hintText: 'Full event name',
167
+ },
168
+ {
169
+ label: 'Sport',
170
+ inputType: 'Select',
171
+ col: 12,
172
+ hintText: "Select the event's sport",
173
+ options: [
174
+ {
175
+ label: 'Basketball',
176
+ value: 'Basketball',
177
+ },
178
+ {
179
+ label: 'Badminton',
180
+ value: 'Badminton',
181
+ },
182
+ {
183
+ label: 'Football',
184
+ value: 'Football',
185
+ },
186
+ ],
187
+ },
188
+ {
189
+ label: 'City',
190
+ inputType: 'Text',
191
+ hintText: "Select the event's city",
192
+ },
193
+ {
194
+ label: 'State',
195
+ inputType: 'Select',
196
+ hintText: "Select the event's state",
197
+ options: [
198
+ {
199
+ label: 'Spain',
200
+ value: 'Spain',
201
+ },
202
+ {
203
+ label: 'Netherlands',
204
+ value: 'Netherlands',
205
+ },
206
+ {
207
+ label: 'Canada',
208
+ value: 'Canada',
209
+ },
210
+ ],
211
+ },
212
+ {
213
+ label: 'Start Date',
214
+ inputType: 'Date',
215
+ hintText: "Select event's start date",
216
+ },
217
+ {
218
+ label: 'End Date',
219
+ inputType: 'Date',
220
+ hintText: "Select event's end date",
221
+ },
222
+ ])
223
+ const team_fields = ref([
224
+ {
225
+ label: 'Team Name',
226
+ inputType: 'Text',
227
+ col: 12,
228
+ hintText: 'Full team name',
229
+ },
230
+ {
231
+ label: 'Sport',
232
+ inputType: 'Select',
233
+ col: 12,
234
+ hintText: "Select team's sport",
235
+ options: [
236
+ {
237
+ label: 'Basketball',
238
+ value: 'Basketball',
239
+ },
240
+ {
241
+ label: 'Badminton',
242
+ value: 'Badminton',
243
+ },
244
+ {
245
+ label: 'Football',
246
+ value: 'Football',
247
+ },
248
+ ],
249
+ },
250
+ {
251
+ label: 'Class',
252
+ inputType: 'Select',
253
+ col: 12,
254
+ hintText: "Select team's class",
255
+ options: [
256
+ {
257
+ label: 'Baseball Mens',
258
+ value: 'Baseball Mens',
259
+ },
260
+ {
261
+ label: 'Division 1',
262
+ value: 'Division 1',
263
+ },
264
+ {
265
+ label: 'Division 2',
266
+ value: 'Division 2',
267
+ },
268
+ ],
269
+ },
270
+ {
271
+ label: 'City',
272
+ inputType: 'Text',
273
+ hintText: "Enter team's city",
274
+ },
275
+ {
276
+ label: 'State',
277
+ inputType: 'Select',
278
+ hintText: "Select team's state",
279
+ options: [
280
+ {
281
+ label: 'Spain',
282
+ value: 'Spain',
283
+ },
284
+ {
285
+ label: 'Netherlands',
286
+ value: 'Netherlands',
287
+ },
288
+ {
289
+ label: 'Canada',
290
+ value: 'Canada',
291
+ },
292
+ ],
293
+ },
294
+ ])
295
+ const venue_fields = ref([
296
+ {
297
+ label: 'Venue Name',
298
+ inputType: 'Text',
299
+ col: 12,
300
+ hintText: 'Enter the name of a venue',
301
+ },
302
+ {
303
+ label: 'Venue Address',
304
+ inputType: 'Text',
305
+ col: 12,
306
+ hintText: 'Street address of the venue',
307
+ },
308
+ {
309
+ label: 'Country',
310
+ inputType: 'Select',
311
+ col: 6,
312
+ hintText: 'Country of venue',
313
+ options: [
314
+ { label: 'United States', value: 'United States' },
315
+ { label: 'Canada', value: 'Canada' },
316
+ { label: 'Mexico', value: 'Mexico' },
317
+ ],
318
+ },
319
+ {
320
+ label: 'City',
321
+ inputType: 'Text',
322
+ col: 6,
323
+ hintText: 'City of venue',
324
+ },
325
+ {
326
+ label: 'State',
327
+ inputType: 'Select',
328
+ options: [
329
+ {
330
+ label: 'Spain',
331
+ value: 'Spain',
332
+ },
333
+ {
334
+ label: 'Netherlands',
335
+ value: 'Netherlands',
336
+ },
337
+ {
338
+ label: 'Canada',
339
+ value: 'Canada',
340
+ },
341
+ ],
342
+ hintText: 'State of venue',
343
+ },
344
+ {
345
+ label: 'Postal Code',
346
+ inputType: 'Text',
347
+ hintText: 'Postal/Zip Code of venue',
348
+ },
349
+ {
350
+ label: 'Sport(s)',
351
+ inputType: 'Select',
352
+ hintText: 'Select venue sports',
353
+ options: [
354
+ {
355
+ label: 'Basketball',
356
+ value: 'Basketball',
357
+ },
358
+ {
359
+ label: 'Badminton',
360
+ value: 'Badminton',
361
+ },
362
+ {
363
+ label: 'Football',
364
+ value: 'Football',
365
+ },
366
+ ],
367
+ },
368
+ ])
369
+ const fieldObj = ref(people_fields_obj.value)
370
+ const model = ref(structuredClone(toRaw(fieldObj.value)))
371
+ const originalModel = ref(structuredClone(toRaw(fieldObj.value)))
372
+
373
+ const search_fields = computed(() => {
374
+ if (type.value === 'People') {
375
+ return people_fields.value
376
+ } else if (type.value === 'Team') {
377
+ return team_fields.value
378
+ } else if (type.value === 'Event') {
379
+ return event_fields.value
380
+ } else if (type.value === 'Venue') {
381
+ return venue_fields.value
382
+ } else if (type.value === 'Default') {
383
+ return default_fields.value
384
+ }
385
+ return []
386
+ })
387
+
388
+ const selectCountry = (value, label) => {
389
+ model.value.selectedCountry = value
390
+ }
391
+
392
+ const clearFields = () => {
393
+ model.value = structuredClone(toRaw(fieldObj.value))
394
+ originalModel.value = structuredClone(toRaw(fieldObj.value))
395
+ }
396
+
397
+ const updateModelVal = (event, label) => {
398
+ model.value[label] = event
399
+ }
400
+
401
+ const onApply = () => {
402
+ console.log('model values ->', model.value)
403
+ }
404
+
405
+ const assignDefault = () => {
406
+ model.value = structuredClone(toRaw(fieldObj.value))
407
+ originalModel.value = structuredClone(toRaw(fieldObj.value))
408
+ }
409
+
410
+ watch(
411
+ () => type.value,
412
+ (newVal) => {
413
+ if (newVal === 'People') {
414
+ fieldObj.value = people_fields_obj.value
415
+ assignDefault()
416
+ } else if (newVal === 'Team') {
417
+ fieldObj.value = team_fields_obj.value
418
+ assignDefault()
419
+ } else if (newVal === 'Event') {
420
+ fieldObj.value = event_fields_obj.value
421
+ assignDefault()
422
+ } else if (newVal === 'Venue') {
423
+ fieldObj.value = venue_fields_obj.value
424
+ assignDefault()
425
+ } else if (newVal === 'Default') {
426
+ fieldObj.value = default_fields_obj.value
427
+ assignDefault()
428
+ }
429
+ }
430
+ )
431
+
432
+ const htmlContent = `<UMenuDropdownAdvancedSearch
433
+ :model="model"
434
+ :searchType="type"
435
+ :size="size"
436
+ :fields="search_fields"
437
+ title="Advanced search"
438
+ labelIcon="fa-kit-duotone fa-filter-search"
439
+ :showCustomMenu="false"
440
+ @updateCountry="selectCountry"
441
+ @updateModelVal="updateModelVal"
442
+ >
443
+ <template #action_left_button>
444
+ <UBtnStd
445
+ label="Clear All Fields"
446
+ flat
447
+ color="primary"
448
+ leftIcon="fa-kit fa-rotate-left"
449
+ @onClick="clearFields"
450
+ />
451
+ </template>
452
+ <template #action_right_button>
453
+ <UBtnStd
454
+ label="Apply"
455
+ color="primary"
456
+ :full-width="true"
457
+ @onClick="onApply"
458
+ />
459
+ </template>
460
+ </UMenuDropdownAdvancedSearch>`
461
+ </script>
462
+
463
+ <template>
464
+ <q-page class="flex flex-center">
465
+ <ComponentBase
466
+ figmaUrl="https://www.figma.com/design/2FoTrjVL4ZrTdsvB4DcSao/Components?node-id=8092-103302&node-type=instance&m=dev"
467
+ >
468
+ <template v-slot:component>
469
+ <div>
470
+ <UMenuDropdownAdvancedSearch
471
+ :model="model"
472
+ :searchType="type"
473
+ :size="size"
474
+ :fields="search_fields"
475
+ title="Advanced Search"
476
+ labelIcon="fa-kit-duotone fa-filter-search"
477
+ :showCustomMenu="false"
478
+ @updateCountry="selectCountry"
479
+ @updateModelVal="updateModelVal"
480
+ >
481
+ <template #action_left_button>
482
+ <UBtnStd
483
+ label="Clear All Fields"
484
+ flat
485
+ color="primary"
486
+ leftIcon="fa-kit fa-rotate-left"
487
+ @onClick="clearFields"
488
+ />
489
+ </template>
490
+ <template #action_right_button>
491
+ <UBtnStd
492
+ label="Apply"
493
+ color="primary"
494
+ :full-width="true"
495
+ @onClick="onApply"
496
+ />
497
+ </template>
498
+ </UMenuDropdownAdvancedSearch>
499
+ </div>
500
+ </template>
501
+
502
+ <template v-slot:properties>
503
+ <q-select v-model="type" :options="typeOptions" label="Search Type" />
504
+ <q-select v-model="size" :options="sizeOptions" label="Size" />
505
+ </template>
506
+
507
+ <template v-slot:code>
508
+ <pre><code>{{ htmlContent }}</code></pre>
509
+ </template>
510
+ </ComponentBase>
511
+ </q-page>
512
+ </template>
@@ -0,0 +1,77 @@
1
+ <script setup>
2
+ import { UAvatar } from 'src/components'
3
+ import ComponentBase from './ComponentBase.vue'
4
+ import { ref } from 'vue'
5
+
6
+ const type = ref('label')
7
+ const round = ref(true)
8
+ const name = ref('A')
9
+ const indicatorColor = ref('')
10
+ const image = ref('')
11
+ const size = ref('sm')
12
+ const indicatorColorOptions = ['primary', 'accent', 'positive', 'neutral']
13
+ const sizeOptions = ['sm', 'md', 'lg', 'xl']
14
+ const showIndicator = ref(true)
15
+ const htmlContent = `<UAvatar
16
+ ref="avatar"
17
+ :name="name"
18
+ :size="size"
19
+ :showIndicator="showIndicator"
20
+ :indicatorColor="indicatorColor"
21
+ :round="round"
22
+ :image="image"
23
+ />`
24
+
25
+ defineOptions({
26
+ name: 'UAvatar',
27
+ })
28
+ </script>
29
+
30
+ <template>
31
+ <q-page class="flex flex-center">
32
+ <ComponentBase
33
+ figmaUrl="https://www.figma.com/design/2FoTrjVL4ZrTdsvB4DcSao/Components?node-id=2246-39909"
34
+ >
35
+ <template v-slot:component>
36
+ <UAvatar
37
+ ref="avatar"
38
+ :name="name"
39
+ :size="size"
40
+ :showIndicator="showIndicator"
41
+ :indicatorColor="indicatorColor"
42
+ :round="round"
43
+ :image="image"
44
+ />
45
+ </template>
46
+
47
+ <template v-slot:properties>
48
+ <div class="column q-gutter-y-lg">
49
+ <q-input label="Name" v-model="name"></q-input>
50
+ <q-input label="image" v-model="image"></q-input>
51
+ <q-select v-model="size" :options="sizeOptions" label="Size" />
52
+ <div class="column">
53
+ <span class="text-grey-8 text-caption-sm">Show Indicator</span>
54
+ <q-checkbox
55
+ size="xs"
56
+ v-model="showIndicator"
57
+ :val="true"
58
+ label="Show Indicator"
59
+ />
60
+ </div>
61
+ <div>
62
+ <q-checkbox size="xs" v-model="round" :val="true" label="Round" />
63
+ </div>
64
+ <q-select
65
+ v-model="indicatorColor"
66
+ :options="indicatorColorOptions"
67
+ label="Indicator Color"
68
+ />
69
+ </div>
70
+ </template>
71
+
72
+ <template v-slot:code>
73
+ <pre>{{ htmlContent }}</pre>
74
+ </template>
75
+ </ComponentBase>
76
+ </q-page>
77
+ </template>