@usssa/component-library 1.0.0-alpha.27 → 1.0.0-alpha.271

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