@usssa/component-library 1.0.0-alpha.2 → 1.0.0-alpha.200

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 (139) hide show
  1. package/README.md +8 -5
  2. package/package.json +24 -8
  3. package/src/assets/logo.svg +19 -0
  4. package/src/assets/no-result.svg +25 -0
  5. package/src/assets/quasar-logo-vertical.svg +15 -0
  6. package/src/assets/upload-illustration.svg +48 -0
  7. package/src/components/ComponentLink.vue +26 -0
  8. package/src/components/core/UAvatar.vue +210 -0
  9. package/src/components/core/UAvatarGroup.vue +129 -0
  10. package/src/components/core/UBadgeStd.vue +96 -0
  11. package/src/components/core/UBannerStd.vue +184 -0
  12. package/src/components/core/UBreadCrumbs.vue +171 -0
  13. package/src/components/core/UBtnIcon.vue +160 -0
  14. package/src/components/core/UBtnStd.vue +134 -0
  15. package/src/components/core/UBtnToggle.vue +73 -0
  16. package/src/components/core/UCheckboxStd.vue +101 -0
  17. package/src/components/core/UChip.vue +274 -0
  18. package/src/components/core/UDate.vue +581 -0
  19. package/src/components/core/UDialogStd.vue +614 -0
  20. package/src/components/core/UDrawer/UDrawer.vue +471 -0
  21. package/src/components/core/UDrawer/UDrawerMenuItem.vue +124 -0
  22. package/src/components/core/UExpansionStd.vue +266 -0
  23. package/src/components/core/UInnerLoader.vue +69 -0
  24. package/src/components/core/UInputAddressLookup.vue +484 -0
  25. package/src/components/core/UInputPhoneStd.vue +303 -0
  26. package/src/components/core/UInputTextStd.vue +308 -0
  27. package/src/components/core/UInputTypeahead.vue +44 -0
  28. package/src/components/core/UInputTypeaheadAdvanceSearch.vue +134 -0
  29. package/src/components/core/UMenuButtonStd.vue +280 -0
  30. package/src/components/core/UMenuDropdown.vue +80 -0
  31. package/src/components/core/UMenuDropdownAdvancedSearch.vue +306 -0
  32. package/src/components/core/UMenuItem.vue +183 -0
  33. package/src/components/core/UMenuSearch.vue +73 -0
  34. package/src/components/core/UModal.vue +660 -0
  35. package/src/components/core/UMultiSelectStd.vue +699 -0
  36. package/src/components/core/UPagination.vue +156 -0
  37. package/src/components/core/URadioBtn.vue +139 -0
  38. package/src/components/core/URadioStd.vue +71 -0
  39. package/src/components/core/USelectStd.vue +564 -0
  40. package/src/components/core/USheet.vue +349 -0
  41. package/src/components/core/UStepper/UProgress.vue +157 -0
  42. package/src/components/core/UStepper/UStepper.vue +211 -0
  43. package/src/components/core/UTabBtnStd.vue +181 -0
  44. package/src/components/core/UTable/UTable.vue +1984 -0
  45. package/src/components/core/UTable/UTd.vue +63 -0
  46. package/src/components/core/UTable/UTh.vue +48 -0
  47. package/src/components/core/UTable/UTr.vue +20 -0
  48. package/src/components/core/UTableStd.vue +1449 -0
  49. package/src/components/core/UTabsStd.vue +140 -0
  50. package/src/components/core/UToggleStd.vue +164 -0
  51. package/src/components/core/UToolbar/UCustomMenuIcon.vue +58 -0
  52. package/src/components/core/UToolbar/UToolbar.vue +226 -0
  53. package/src/components/core/UTooltip.vue +78 -0
  54. package/src/components/core/UTypeahead.vue +890 -0
  55. package/src/components/core/UUploader.vue +644 -0
  56. package/src/components/index.js +91 -0
  57. package/src/composables/useNotify.js +79 -0
  58. package/src/composables/useOverlayLoader.js +23 -0
  59. package/src/composables/useScreenType.js +30 -0
  60. package/src/css/app.sass +168 -0
  61. package/src/css/colors.sass +103 -0
  62. package/src/css/media.sass +1 -0
  63. package/src/css/quasar.variables.sass +150 -0
  64. package/src/css/typography.sass +0 -0
  65. package/src/css/vars/colors.variables.sass +113 -0
  66. package/src/utils/data.ts +170 -0
  67. package/dist/spa/assets/Avatar.45667392.js +0 -9
  68. package/dist/spa/assets/AvatarGroup.99557443.js +0 -9
  69. package/dist/spa/assets/AvatarGroup.bb4cd03a.css +0 -1
  70. package/dist/spa/assets/BadgeStd.ee4129c5.js +0 -6
  71. package/dist/spa/assets/BannerPage.6c6a98c4.js +0 -10
  72. package/dist/spa/assets/BannerPage.d195fcac.css +0 -1
  73. package/dist/spa/assets/BtnIcon.89e50d2e.css +0 -1
  74. package/dist/spa/assets/BtnIcon.934f8c5b.js +0 -10
  75. package/dist/spa/assets/BtnStd.95fc4510.js +0 -11
  76. package/dist/spa/assets/CheckBox.3c204a4b.css +0 -1
  77. package/dist/spa/assets/CheckBox.fbc0bd1a.js +0 -7
  78. package/dist/spa/assets/Chip.49ffc857.js +0 -11
  79. package/dist/spa/assets/Chip.74acaa33.css +0 -1
  80. package/dist/spa/assets/ComponentBase.1ae19b7e.js +0 -1
  81. package/dist/spa/assets/ErrorNotFound.6cccfaee.js +0 -1
  82. package/dist/spa/assets/IndexPage.17d09b76.js +0 -1
  83. package/dist/spa/assets/InputText.19c0d7d1.css +0 -1
  84. package/dist/spa/assets/InputText.3fcd97a4.js +0 -20
  85. package/dist/spa/assets/KFOkCnqEu92Fr1MmgVxIIzQ.34e9582c.woff +0 -0
  86. package/dist/spa/assets/KFOlCnqEu92Fr1MmEU9fBBc-.9ce7f3ac.woff +0 -0
  87. package/dist/spa/assets/KFOlCnqEu92Fr1MmSU5fBBc-.bf14c7d7.woff +0 -0
  88. package/dist/spa/assets/KFOlCnqEu92Fr1MmWUlfBBc-.e0fd57c0.woff +0 -0
  89. package/dist/spa/assets/KFOlCnqEu92Fr1MmYUtfBBc-.f6537e32.woff +0 -0
  90. package/dist/spa/assets/KFOmCnqEu92Fr1Mu4mxM.f2abf7fb.woff +0 -0
  91. package/dist/spa/assets/MainLayout.912bb0f8.js +0 -1
  92. package/dist/spa/assets/MultiSelectStd.644b108c.js +0 -17
  93. package/dist/spa/assets/MultiSelectStd.c7af49eb.css +0 -1
  94. package/dist/spa/assets/QAvatar.5940a79e.js +0 -1
  95. package/dist/spa/assets/QCheckbox.48b43f7d.js +0 -1
  96. package/dist/spa/assets/QPage.ca395ec4.js +0 -1
  97. package/dist/spa/assets/QRadio.0a7f5e2c.js +0 -1
  98. package/dist/spa/assets/QResizeObserver.30c3566c.js +0 -1
  99. package/dist/spa/assets/QSelect.a40eb786.js +0 -1
  100. package/dist/spa/assets/QTabs.72f2507e.js +0 -1
  101. package/dist/spa/assets/QToggle.376c48be.js +0 -1
  102. package/dist/spa/assets/QTooltip.5aa8e325.js +0 -1
  103. package/dist/spa/assets/Radio.0ac35288.js +0 -7
  104. package/dist/spa/assets/Radio.aca54a89.css +0 -1
  105. package/dist/spa/assets/SelectStd.5c6891db.css +0 -1
  106. package/dist/spa/assets/SelectStd.daf1def9.js +0 -16
  107. package/dist/spa/assets/TabButtonPage.20e871dd.js +0 -7
  108. package/dist/spa/assets/TabButtonPage.36ce9f9c.css +0 -1
  109. package/dist/spa/assets/TabsPage.9b94ff39.css +0 -1
  110. package/dist/spa/assets/TabsPage.b92cccee.js +0 -9
  111. package/dist/spa/assets/TogglePage.8129b631.css +0 -1
  112. package/dist/spa/assets/TogglePage.ba6e325c.js +0 -9
  113. package/dist/spa/assets/UAvatar.dda7e478.js +0 -1
  114. package/dist/spa/assets/UAvatar.ea8daa38.css +0 -1
  115. package/dist/spa/assets/UBadgeStd.3965db9a.css +0 -1
  116. package/dist/spa/assets/UBadgeStd.e165ee05.js +0 -1
  117. package/dist/spa/assets/UBtnStd.979ec4e8.js +0 -1
  118. package/dist/spa/assets/UBtnStd.bdd4f5e5.css +0 -1
  119. package/dist/spa/assets/UTooltip.d2e04d0c.js +0 -1
  120. package/dist/spa/assets/UTooltip.efa029a7.css +0 -1
  121. package/dist/spa/assets/dom.e9d4ad51.js +0 -1
  122. package/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.fd84f88b.woff +0 -0
  123. package/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.4a4dbc62.woff2 +0 -0
  124. package/dist/spa/assets/format.41663636.js +0 -1
  125. package/dist/spa/assets/index.43c62a18.js +0 -21
  126. package/dist/spa/assets/index.4fbd73cf.css +0 -5
  127. package/dist/spa/assets/option-sizes.10cc02d3.js +0 -1
  128. package/dist/spa/assets/render.e67ff27a.js +0 -1
  129. package/dist/spa/assets/tooltip.7c0d0774.js +0 -8
  130. package/dist/spa/assets/touch.9135741d.js +0 -1
  131. package/dist/spa/assets/use-checkbox.44a623c0.js +0 -1
  132. package/dist/spa/favicon.ico +0 -0
  133. package/dist/spa/icons/caret-down.svg +0 -5
  134. package/dist/spa/icons/circle-xmark.svg +0 -6
  135. package/dist/spa/icons/favicon-128x128.png +0 -0
  136. package/dist/spa/icons/favicon-16x16.png +0 -0
  137. package/dist/spa/icons/favicon-32x32.png +0 -0
  138. package/dist/spa/icons/favicon-96x96.png +0 -0
  139. package/dist/spa/index.html +0 -3
@@ -0,0 +1,614 @@
1
+ <script setup>
2
+ import { useQuasar } from 'quasar'
3
+ import { computed, onMounted, onUnmounted, ref, useSlots, watch } from 'vue'
4
+ import { useScreenType } from '../../composables/useScreenType'
5
+ import UBtnStd from './UBtnStd.vue'
6
+
7
+ const emit = defineEmits(['onBackIconClick', 'hideDialog', 'handleCloseIconClick'])
8
+ const model = defineModel()
9
+ const props = defineProps({
10
+ closeIcon: String,
11
+ closeIconLabel: String,
12
+ customSize: {
13
+ type: String,
14
+ },
15
+ dataTestId: {
16
+ type: String,
17
+ default: 'dialog',
18
+ },
19
+ divider: Boolean,
20
+ heading: {
21
+ type: String,
22
+ required: true,
23
+ },
24
+ headingCaption: String,
25
+ leftIcon: String,
26
+ leftIconLabel: String,
27
+ position: String,
28
+ showActionButtons: Boolean,
29
+ size: {
30
+ type: String,
31
+ default: 'default',
32
+ },
33
+ })
34
+
35
+ // constants
36
+ const MIN_HEIGHT = 120
37
+ let isDragging = false
38
+ let startHeight = 0
39
+ let startY = 0
40
+
41
+ const $screen = useScreenType()
42
+ const $slots = useSlots()
43
+ const $q = useQuasar()
44
+
45
+ const currentDialogHeight = ref(null)
46
+ const dialogMaxHeight = ref(null)
47
+ const dialogRef = ref(true)
48
+ const scrollableMarginHeight = ref(null)
49
+
50
+ const dialogStyle = computed(() => ({
51
+ '--customSize': props.customSize,
52
+ }))
53
+
54
+ const headerClass = computed(() => {
55
+ return props.divider ? 'divider' : ''
56
+ })
57
+
58
+ const isDesktop = computed(() => $screen.value.isDesktop)
59
+ const isMobile = computed(() => $screen.value.isMobile)
60
+ const isTablet = computed(() => $screen.value.isTablet)
61
+ const isSmallWidthDevices = computed(() => $q.screen.width < 400)
62
+ const isWidthChanging = computed(() => {
63
+ return {
64
+ width: $q.screen.width,
65
+ }
66
+ })
67
+ const slotsLength = computed(
68
+ () =>
69
+ Object.keys($slots).filter(
70
+ (slot) => !['content', 'secondary_row'].includes(slot)
71
+ ).length
72
+ )
73
+ const smallDevices = computed(() => {
74
+ return {
75
+ sm: $q.screen.height < 800 && $q.screen.height > 700,
76
+ xs: $q.screen.height < 700,
77
+ }
78
+ })
79
+
80
+ const getActionsWrapperFlex = () => {
81
+ if (isMobile.value) {
82
+ if (slotsLength.value >= 3) {
83
+ return 'wrap'
84
+ } else {
85
+ return 'nowrap'
86
+ }
87
+ }
88
+ if (isTablet.value) {
89
+ if (slotsLength.value >= 3) {
90
+ return 'nowrap'
91
+ } else {
92
+ return 'wrap'
93
+ }
94
+ }
95
+ }
96
+
97
+ const getContentBottomSpace = () => {
98
+ if (isMobile.value) {
99
+ if (slotsLength.value >= 3) {
100
+ return 7.5
101
+ } else {
102
+ return 4.5
103
+ }
104
+ } else {
105
+ return 0
106
+ }
107
+ }
108
+
109
+ const getDialogHeaderheight = () => {
110
+ setTimeout(() => {
111
+ const headingWrapper =
112
+ document.getElementsByClassName('no-heading-section')[0]
113
+ if (headingWrapper) {
114
+ scrollableMarginHeight.value = headingWrapper.clientHeight
115
+ }
116
+ }, 100)
117
+ setTimeout(() => {
118
+ // dynamically adding height by removing toolbar height of 50px
119
+ const dialogWrapper = document.getElementsByClassName('dialog-wrapper')[0]
120
+ if (dialogWrapper) {
121
+ dialogWrapper?.setAttribute(
122
+ 'style',
123
+ `max-height: ${$q.screen.height - 50}px !important`
124
+ )
125
+ }
126
+
127
+ currentDialogHeight.value = $q.screen.height - 50
128
+ dialogMaxHeight.value = $q.screen.height - 50
129
+ }, 200)
130
+ }
131
+
132
+ const handleBackClick = () => {
133
+ return emit('onBackIconClick')
134
+ }
135
+
136
+ const handleCloseIconClick = () => {
137
+ dialogRef.value.hide()
138
+ emit('handleCloseIconClick')
139
+ }
140
+
141
+ const hasSlots = () => {
142
+ return (!!$slots['action_secondary_one'] ||
143
+ !!$slots['action_secondary_two']) &&
144
+ (!!$slots['action_primary_one'] || !!$slots['action_primary_two'])
145
+ ? '0.5rem'
146
+ : null
147
+ }
148
+
149
+ const onDragEnd = () => {
150
+ isDragging = false
151
+ window.removeEventListener('mousemove', onDragMove)
152
+ window.removeEventListener('mouseup', onDragEnd)
153
+ window.removeEventListener('touchmove', onDragMove)
154
+ window.removeEventListener('touchend', onDragEnd)
155
+ }
156
+
157
+ const onDragMove = (event) => {
158
+ if (!isDragging) return
159
+ // event.preventDefault()
160
+ const currentY = event.touches ? event.touches[0].clientY : event.clientY
161
+ const deltaY = startY - currentY
162
+ const newHeight = startHeight + deltaY
163
+ // limiting dialog height to MAX HEIGHT
164
+ currentDialogHeight.value = Math.min(
165
+ Math.max(MIN_HEIGHT, newHeight),
166
+ dialogMaxHeight.value
167
+ )
168
+ if (
169
+ Math.min(Math.max(MIN_HEIGHT, newHeight), dialogMaxHeight.value) <=
170
+ MIN_HEIGHT
171
+ ) {
172
+ setTimeout(() => {
173
+ dialogRef?.value?.hide() // if user is dragging then it should close from here
174
+ }, 200)
175
+ }
176
+ // currentDialogHeight.value = Math.max(MIN_HEIGHT, startHeight + deltaY) // if limiting not required
177
+ }
178
+
179
+ const onMouseDown = (event) => {
180
+ isDragging = true
181
+ event.preventDefault()
182
+ startY = event.clientY
183
+ startHeight = currentDialogHeight.value
184
+ window.addEventListener('mousemove', (e) => onDragMove(e))
185
+ window.addEventListener('mouseup', onDragEnd)
186
+ }
187
+
188
+ const onTouchStart = (event) => {
189
+ isDragging = true
190
+ event.preventDefault()
191
+ startY = event.touches[0].clientY
192
+ startHeight = currentDialogHeight.value
193
+ window.addEventListener('touchmove', (e) => onDragMove(e))
194
+ window.addEventListener('touchend', onDragEnd)
195
+ }
196
+
197
+ onMounted(() => {
198
+ getDialogHeaderheight()
199
+ })
200
+
201
+ onUnmounted(() => {
202
+ window.removeEventListener('mousemove', onDragMove)
203
+ window.removeEventListener('mouseup', onDragEnd)
204
+ window.removeEventListener('touchmove', onDragMove)
205
+ window.removeEventListener('touchend', onDragEnd)
206
+ })
207
+
208
+ watch(
209
+ isWidthChanging,
210
+ () => {
211
+ getDialogHeaderheight()
212
+ },
213
+ { immediate: true }
214
+ )
215
+
216
+ watch(
217
+ model,
218
+ () => {
219
+ getDialogHeaderheight()
220
+ },
221
+ { immediate: true }
222
+ )
223
+
224
+ watch(
225
+ smallDevices,
226
+ () => {
227
+ getDialogHeaderheight()
228
+ },
229
+ { immediate: true }
230
+ )
231
+ </script>
232
+
233
+ <template>
234
+ <q-dialog
235
+ v-bind="$attrs"
236
+ v-model="model"
237
+ :class="`dialog-${isMobile ? 'full' : size}`"
238
+ :dataTestId="dataTestId"
239
+ full-width
240
+ no-backdrop-dismiss
241
+ :position="isMobile ? 'bottom' : position"
242
+ ref="dialogRef"
243
+ :style="dialogStyle"
244
+ >
245
+ <q-card
246
+ :class="`dialog-wrapper${!isMobile ? ' full-height' : ''}`"
247
+ :style="{
248
+ height: isMobile ? currentDialogHeight + 'px !important' : 'auto',
249
+ overflow: isMobile ? 'hidden' : 'auto',
250
+ }"
251
+ >
252
+ <div
253
+ v-if="isMobile"
254
+ class="drag-handle-wrapper"
255
+ @mousedown="onMouseDown($event)"
256
+ @touchstart="onTouchStart($event)"
257
+ >
258
+ <div class="drag-handle" />
259
+ </div>
260
+ <q-card-section
261
+ :class="[
262
+ `col items-center q-pa-none heading-section ${headerClass}${
263
+ isMobile ? ' no-heading-section' : ''
264
+ }`,
265
+ { mobile: isMobile, desktop: isDesktop || isTablet },
266
+ ]"
267
+ >
268
+ <div class="heading-wrapper row items-center">
269
+ <div class="flex items-center dialog-heading-container">
270
+ <div v-if="leftIcon">
271
+ <UBtnStd
272
+ class="dialog-action-icons"
273
+ :aria-label="leftIconLabel"
274
+ :flat="true"
275
+ tabindex="0"
276
+ @click="handleBackClick()"
277
+ >
278
+ <q-icon
279
+ :class="`icon-back ${leftIcon}`"
280
+ size="1.5rem"
281
+ tabindex="-1"
282
+ />
283
+ </UBtnStd>
284
+ </div>
285
+ <div class="col">
286
+ <div>
287
+ <span class="text-heading-sm dialog-heading">
288
+ {{ heading }}
289
+ </span>
290
+ </div>
291
+ <div>
292
+ <span v-if="headingCaption" class="text-body-sm dialog-caption">
293
+ {{ headingCaption }}
294
+ </span>
295
+ </div>
296
+ </div>
297
+ </div>
298
+
299
+ <UBtnStd
300
+ class="dialog-action-icons"
301
+ :aria-label="closeIconLabel"
302
+ :flat="true"
303
+ tabindex="0"
304
+ @click="handleCloseIconClick()"
305
+ >
306
+ <q-icon
307
+ v-if="closeIcon"
308
+ :class="`icon-close ${closeIcon} icon-secondary-opacity`"
309
+ size="1.5rem"
310
+ tabindex="-1"
311
+ />
312
+ </UBtnStd>
313
+ </div>
314
+ <div class="row">
315
+ <slot name="secondary_row" />
316
+ </div>
317
+ </q-card-section>
318
+
319
+ <q-card-section
320
+ :class="[
321
+ `full-height main-content-dialog scroll q-px-ba${
322
+ isMobile ? ' scrollable-content' : ''
323
+ }`,
324
+ { mobile: isMobile, desktop: isDesktop || isTablet },
325
+ ]"
326
+ :style="{
327
+ 'margin-top': `${
328
+ isMobile ? scrollableMarginHeight + (isMobile ? 16 : 0) : 0
329
+ }px`,
330
+ 'margin-bottom': `${getContentBottomSpace()}rem !important`,
331
+ height:
332
+ isTablet || isDesktop
333
+ ? 'auto'
334
+ : currentDialogHeight -
335
+ (scrollableMarginHeight +
336
+ (hasSlots() && slotsLength >= 3 ? 144 : 88)) +
337
+ 'px !important',
338
+ }"
339
+ tabindex="-1"
340
+ >
341
+ <slot name="content" />
342
+ </q-card-section>
343
+
344
+ <div
345
+ v-if="showActionButtons"
346
+ :class="`q-pa-ba action-wrapper${
347
+ isMobile ? ' fixed-action-wrapper' : ''
348
+ }${isTablet && slotsLength >= 3 ? ' tablet-full-btn-actions' : ''}`"
349
+ id="dialog-action-wrapper"
350
+ :style="{
351
+ gap: hasSlots(),
352
+ flexWrap: getActionsWrapperFlex(),
353
+ justifyContent:
354
+ ((isMobile || !isTablet) && slotsLength >= 3) || hasSlots()
355
+ ? 'space-between'
356
+ : 'flex-end',
357
+ }"
358
+ >
359
+ <q-card-actions
360
+ v-if="
361
+ !!$slots['action_secondary_one'] || !!$slots['action_secondary_two']
362
+ "
363
+ :class="[
364
+ `${isMobile || isTablet ? ' full-width-actions' : ''}${
365
+ !isDesktop
366
+ ? isMobile && !isSmallWidthDevices
367
+ ? ' justify-center mobile-btn-actions'
368
+ : !!$slots['action_secondary_one'] ||
369
+ !!$slots['action_secondary_two']
370
+ ? !isTablet
371
+ ? ' justify-start small-device-class'
372
+ : ''
373
+ : ' justify-end'
374
+ : ''
375
+ }`,
376
+ { 'mobile action-buttons': isMobile },
377
+ { 'desktop action-buttons': !isMobile },
378
+ ]"
379
+ align="left"
380
+ >
381
+ <slot name="action_secondary_one" />
382
+ <slot name="action_secondary_two" />
383
+ </q-card-actions>
384
+
385
+ <q-card-actions
386
+ v-if="
387
+ !!$slots['action_primary_one'] || !!$slots['action_primary_two']
388
+ "
389
+ :class="[
390
+ `${isMobile || isTablet ? ' full-width-actions' : ''}${
391
+ !isDesktop
392
+ ? isMobile && !isSmallWidthDevices
393
+ ? ' justify-center mobile-btn-actions'
394
+ : !!$slots['action_primary_one'] ||
395
+ !!$slots['action_primary_two']
396
+ ? !isTablet
397
+ ? ' justify-start small-device-class'
398
+ : ''
399
+ : ' justify-end'
400
+ : ''
401
+ }`,
402
+ { 'mobile action-buttons': isMobile },
403
+ { 'desktop action-buttons': !isMobile },
404
+ ]"
405
+ align="right"
406
+ >
407
+ <slot name="action_primary_one" />
408
+ <slot name="action_primary_two" />
409
+ </q-card-actions>
410
+ </div>
411
+ </q-card>
412
+ </q-dialog>
413
+ </template>
414
+
415
+ <style lang="sass">
416
+ .dialog-default, .dialog-half
417
+ .q-dialog__inner--left, .q-dialog__inner--right
418
+ .dialog-wrapper
419
+ max-height: 100vh !important
420
+ .q-dialog__inner
421
+ &.q-dialog__inner--right
422
+ padding-right: $ba !important
423
+ &.q-dialog__inner--left
424
+ padding-left: $ba !important
425
+ .dialog-heading-container
426
+ gap: $xs
427
+
428
+ .dialog-caption
429
+ color: $neutral-9
430
+ .dialog-heading
431
+ color: $dark
432
+
433
+ .heading-section
434
+ padding: $ba
435
+
436
+ .dialog-wrapper
437
+ border-radius: $xs !important
438
+ .divider
439
+ border-bottom: 1.5px solid $neutral-4
440
+ .action-wrapper
441
+ display: flex
442
+ justify-content: space-between
443
+ border-radius: 0 0 $xs $xs !important
444
+ .q-card__actions
445
+ padding: 0
446
+
447
+ .dialog-half
448
+ .q-dialog__inner
449
+ padding: $ba 0
450
+ width: 50% !important
451
+
452
+ .dialog-full
453
+ .q-dialog__inner
454
+ padding: 0 0
455
+ width: 100% !important
456
+ .dialog-wrapper
457
+ max-height: calc(100vh - 1rem)
458
+ border-radius: $xs $xs 0 0 !important
459
+ &.action-wrapper
460
+ border-radius: 0 !important
461
+ .main-content-dialog
462
+ &.mobile
463
+ padding: $ba
464
+ &.desktop
465
+ padding: $ms $ms
466
+ padding-bottom: 0
467
+ margin-bottom: $ms !important
468
+ .heading-section
469
+ &.mobile
470
+ padding: $ba $ba $xs $ba !important
471
+ &.desktop
472
+ padding: $ba $ms !important
473
+ .action-wrapper
474
+ padding: $ba $ms
475
+
476
+ .dialog-custom
477
+ .q-dialog__inner
478
+ padding: $ba 0
479
+ width: var(--customSize)
480
+
481
+ .dialog-default
482
+ .q-dialog__inner
483
+ padding: $ba 0
484
+ width: 35.25rem !important
485
+
486
+ .heading-wrapper
487
+ justify-content: space-between
488
+ align-items: flex-start
489
+ flex-wrap: nowrap
490
+ margin-bottom: $ba
491
+
492
+ .icon-close
493
+ color: $neutral-9
494
+ cursor: pointer
495
+ align-self: flex-start
496
+
497
+ .icon-back
498
+ cursor: pointer
499
+ color: $neutral-9
500
+
501
+ .main-content-dialog
502
+ margin-bottom: $ba
503
+ padding-bottom: $ba
504
+
505
+ .full-height
506
+ height: 100vh
507
+ display: flex
508
+ flex-direction: column
509
+
510
+ .action-buttons
511
+ display: flex
512
+ align-items: center
513
+ flex-wrap: nowrap
514
+ .q-btn
515
+ margin: 0 !important
516
+ &.desktop
517
+ gap: $xs
518
+ &.mobile
519
+ gap: $ba
520
+
521
+ .q-btn.dialog-action-icons
522
+ padding: 0px 0px !important
523
+ min-width: 1.5rem !important
524
+ min-height: 0px !important
525
+ height: fit-content !important
526
+ border-radius: 0px
527
+
528
+ &:focus
529
+ outline: auto !important
530
+
531
+ .q-focus-helper
532
+ background: transparent !important
533
+
534
+ #closeIconLabelRef
535
+ display: none
536
+
537
+ #leftIconLabelRef
538
+ display: none
539
+
540
+ .drag-handle-wrapper
541
+ width: 100%
542
+ height: 1rem
543
+ z-index: 9
544
+ display: flex
545
+ align-items: center
546
+ justify-content: center
547
+ background: #FFFFFF
548
+ position: fixed
549
+
550
+ .drag-handle
551
+ width: 2rem
552
+ height: 0.25rem
553
+ cursor: ns-resize
554
+ background: $neutral-5
555
+ border-radius: $xxl !important
556
+
557
+ .full-width-actions
558
+ width: 100%
559
+ flex-wrap: nowrap
560
+
561
+ .mobile-btn-actions
562
+ .q-btn
563
+ width: 100%
564
+ min-width: auto !important
565
+ .button-label
566
+ white-space: nowrap
567
+
568
+ .tablet-full-btn-actions
569
+ .q-btn
570
+ min-width: auto !important
571
+ .button-label
572
+ white-space: nowrap
573
+
574
+ .dialog-full .no-heading-section
575
+ padding-top: 0px !important
576
+ padding-left: $ba !important
577
+ padding-right: $ba !important
578
+ position: fixed
579
+ width: 100%
580
+ z-index: 99
581
+ background: white
582
+ margin-top: 0.89rem
583
+
584
+ .sheet-card-wrapper
585
+ position: relative
586
+ width: 100%
587
+ overflow: hidden
588
+ transition: height 0.02s ease-in-out
589
+ background: $neutral-1
590
+ border-radius: $sm $sm 0 0 !important
591
+ box-shadow: none !important
592
+ touch-action: none
593
+
594
+ .fixed-action-wrapper
595
+ position: fixed
596
+ bottom: 0
597
+ width: 100%
598
+ padding: $ba !important
599
+
600
+ .dialog-full .scrollable-content
601
+ height: auto !important
602
+ padding-left: $ba !important
603
+ padding-right: $ba !important
604
+
605
+ .scrollable::-webkit-scrollbar
606
+ z-index: 9999
607
+
608
+ .small-device-class
609
+ justify-content: center
610
+ .q-btn
611
+ width: 100%
612
+ .button-label
613
+ white-space: nowrap
614
+ </style>