@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,266 @@
1
+ <script setup>
2
+ import { ref } from 'vue'
3
+ import URadioStd from './URadioStd.vue'
4
+
5
+ const emit = defineEmits(['handleSelectChange'])
6
+ const isSelected = defineModel('isSelected', {
7
+ default: '',
8
+ type: [String, Number, Object, Array],
9
+ })
10
+ const props = defineProps({
11
+ caption: {
12
+ type: String,
13
+ default: '',
14
+ },
15
+ collapsedAriaLabel: {
16
+ type: String,
17
+ default: 'Collapsed',
18
+ },
19
+ dataTestId: {
20
+ type: String,
21
+ default: 'expansion-std',
22
+ },
23
+ disabled: {
24
+ type: Boolean,
25
+ default: false,
26
+ },
27
+ enableIconToggle: {
28
+ type: Boolean,
29
+ default: false,
30
+ },
31
+ enableSelection: {
32
+ type: Boolean,
33
+ default: false,
34
+ },
35
+ expandAriaLabel: {
36
+ type: String,
37
+ default: 'Expand',
38
+ },
39
+ expansionIcon: {
40
+ type: String,
41
+ default: 'fa-kit fa-caret-down',
42
+ },
43
+ expansionIconColor: {
44
+ type: String,
45
+ default: 'description',
46
+ },
47
+ expansionIconSize: {
48
+ type: String,
49
+ default: '1rem', // accept px , rem and (xs|sm|md|lg|xl)
50
+ },
51
+ label: {
52
+ type: String,
53
+ default: '',
54
+ },
55
+ option: {
56
+ default: null,
57
+ type: Object,
58
+ },
59
+ rowCardHeight: {
60
+ type: Number,
61
+ default: 20.563,
62
+ },
63
+ toggleIconLeft: {
64
+ type: Boolean,
65
+ default: false,
66
+ },
67
+ })
68
+
69
+ const isExpanded = ref(false)
70
+
71
+ const handleChange = (value) => {
72
+ emit('handleSelectChange', value)
73
+ }
74
+
75
+ const onIconKeydown = (event) => {
76
+ if (props.disabled) return
77
+ if (event.key === 'Enter' || event.key === ' ') {
78
+ event.preventDefault()
79
+ toggleExpansion()
80
+ }
81
+ }
82
+
83
+ const toggleExpansion = () => {
84
+ if (!props.disabled) {
85
+ isExpanded.value = !isExpanded.value
86
+ }
87
+ }
88
+ </script>
89
+
90
+ <template>
91
+ <!-- For expand on expansion icon -->
92
+ <q-expansion-item
93
+ v-bind="$attrs"
94
+ v-if="enableIconToggle"
95
+ v-model="isExpanded"
96
+ class="u-expansion"
97
+ :dataTestId="dataTestId"
98
+ :disable="disabled"
99
+ expand-icon-class="hidden"
100
+ expand-icon-toggle
101
+ :style="{
102
+ 'min-height': `${isExpanded ? rowCardHeight + 'rem' : 'auto'}`,
103
+ overflowX: 'hidden',
104
+ }"
105
+ >
106
+ <template v-slot:header>
107
+ <div class="u-expansion-header">
108
+ <URadioStd
109
+ v-if="enableSelection"
110
+ v-model="isSelected"
111
+ class="expansion-radio-wrapper"
112
+ :aria-label="option.ariaLabel"
113
+ :dataTestId="`expansion-radio-std-${option.id}`"
114
+ :disable="option.disable || disabled"
115
+ :id="option.id"
116
+ :value="option.id"
117
+ @update:model-value="handleChange"
118
+ />
119
+ <q-icon
120
+ v-if="toggleIconLeft"
121
+ :class="[
122
+ 'cursor-pointer',
123
+ 'icon-secondary-opacity',
124
+ 'transition-all',
125
+ expansionIcon,
126
+ { 'rotate-180': isExpanded },
127
+ ]"
128
+ :aria-label="isExpanded ? collapsedAriaLabel : expandAriaLabel"
129
+ :color="expansionIconColor"
130
+ :size="expansionIconSize"
131
+ :tabindex="disabled ? -1 : 0"
132
+ @click.stop="toggleExpansion"
133
+ @keydown.stop="onIconKeydown"
134
+ >
135
+ </q-icon>
136
+ <slot name="avatar" />
137
+ <div class="column u-expansion-label">
138
+ <span class="text-caption-lg">{{ label }}</span>
139
+ <span class="text-body-xs">{{ caption }}</span>
140
+ </div>
141
+ <q-icon
142
+ v-if="!toggleIconLeft"
143
+ :class="[
144
+ 'cursor-pointer',
145
+ 'icon-secondary-opacity',
146
+ 'transition-all',
147
+ expansionIcon,
148
+ { 'rotate-180': isExpanded },
149
+ ]"
150
+ :aria-label="isExpanded ? collapsedAriaLabel : expandAriaLabel"
151
+ :color="expansionIconColor"
152
+ :size="expansionIconSize"
153
+ :tabindex="disabled ? -1 : 0"
154
+ @click.stop="toggleExpansion"
155
+ @keydown.stop="onIconKeydown"
156
+ >
157
+ </q-icon>
158
+ </div>
159
+ </template>
160
+ <slot name="body" />
161
+ <slot name="footer" />
162
+ </q-expansion-item>
163
+
164
+ <!-- For default expansion behaviour -->
165
+ <q-expansion-item
166
+ v-bind="$attrs"
167
+ v-else
168
+ v-model="isExpanded"
169
+ class="u-expansion"
170
+ :dataTestId="dataTestId"
171
+ :disable="disabled"
172
+ expand-icon-class="hidden"
173
+ :style="{
174
+ 'min-height': `${isExpanded ? rowCardHeight + 'rem' : 'auto'}`,
175
+ overflowX: 'hidden',
176
+ }"
177
+ :toggle-aria-label="isExpanded ? collapsedAriaLabel : expandAriaLabel"
178
+ @keydown.space.prevent
179
+ >
180
+ <template v-slot:header>
181
+ <div class="u-expansion-header">
182
+ <URadioStd
183
+ v-if="enableSelection"
184
+ v-model="isSelected"
185
+ class="expansion-radio-wrapper"
186
+ :aria-label="option.ariaLabel"
187
+ :dataTestId="`expansion-radio-std-${option.id}`"
188
+ :disable="option.disable || disabled"
189
+ :id="option.id"
190
+ :value="option.id"
191
+ @update:model-value="handleChange"
192
+ />
193
+ <q-icon
194
+ v-if="toggleIconLeft"
195
+ :class="[
196
+ 'cursor-pointer',
197
+ 'icon-secondary-opacity',
198
+ 'transition-all',
199
+ expansionIcon,
200
+ { 'rotate-180': isExpanded },
201
+ ]"
202
+ :color="expansionIconColor"
203
+ :size="expansionIconSize"
204
+ >
205
+ </q-icon>
206
+ <slot name="avatar" />
207
+ <div class="column u-expansion-label">
208
+ <span class="text-caption-lg">{{ label }}</span>
209
+ <span class="text-body-xs text-description">{{ caption }}</span>
210
+ </div>
211
+ <q-icon
212
+ v-if="!toggleIconLeft"
213
+ :class="[
214
+ 'cursor-pointer',
215
+ 'icon-secondary-opacity',
216
+ 'transition-all',
217
+ expansionIcon,
218
+ { 'rotate-180': isExpanded },
219
+ ]"
220
+ :color="expansionIconColor"
221
+ :size="expansionIconSize"
222
+ >
223
+ </q-icon>
224
+ </div>
225
+ </template>
226
+ <slot name="body" />
227
+ <slot name="footer" />
228
+ </q-expansion-item>
229
+ </template>
230
+
231
+ <style lang="sass">
232
+ .u-expansion
233
+ border-radius: $border-radius-sm
234
+ border: 1px solid $neutral-4
235
+ overflow: hidden
236
+ width: 100%
237
+
238
+ .q-item
239
+ padding: $ba !important
240
+
241
+ .u-expansion-header
242
+ width: 100%
243
+ display: flex
244
+ align-items: center
245
+ gap: $xs
246
+
247
+ .u-expansion-label
248
+ flex: 1 1 0
249
+ min-width: 0
250
+ word-break: break-word
251
+ overflow-wrap: break-word
252
+
253
+ .q-expansion-item__content > :first-child
254
+ padding: 0px $ba $ba $ba
255
+
256
+ .q-expansion-item__content > :nth-child(2)
257
+ padding: $ba
258
+
259
+ .rotate-180
260
+ transform: rotate(180deg)
261
+ transition: 0.3s
262
+
263
+ .expansion-radio-wrapper
264
+ .q-radio__label
265
+ padding-left: 0px !important
266
+ </style>
@@ -0,0 +1,69 @@
1
+ <script setup>
2
+ defineProps({
3
+ dataTestId: {
4
+ type: String,
5
+ default: 'inner-loader',
6
+ },
7
+ image: {
8
+ type: String,
9
+ required: true,
10
+ },
11
+ imageHeight: {
12
+ type: String,
13
+ default: '24'
14
+ },
15
+ imageWidth: {
16
+ type: String,
17
+ default: '95'
18
+ },
19
+ loading: {
20
+ type: Boolean,
21
+ required: true,
22
+ },
23
+ loadingMessage: {
24
+ type: String,
25
+ required: true,
26
+ },
27
+ spinnerColor: {
28
+ type: String,
29
+ required: false,
30
+ },
31
+ spinnerSize: {
32
+ type: String,
33
+ requried: false,
34
+ default: '2rem',
35
+ },
36
+ })
37
+ </script>
38
+ <template>
39
+ <q-inner-loading
40
+ v-bind="$attrs"
41
+ color="primary"
42
+ :dataTestId="dataTestId"
43
+ :showing="loading"
44
+ >
45
+ <div class="column items-center q-gutter-y-sm">
46
+ <img
47
+ class="q-my-none"
48
+ alt="Loader Image"
49
+ :height="imageHeight"
50
+ :src="image"
51
+ :width="imageWidth"
52
+ />
53
+ <div class="row items-center">
54
+ <div v-if="loadingMessage" class="text-center">
55
+ <span class="message q-mr-sm">{{ loadingMessage }}</span>
56
+ <q-spinner-facebook :color="spinnerColor" :size="spinnerSize" />
57
+ </div>
58
+ </div>
59
+ </div>
60
+ </q-inner-loading>
61
+ </template>
62
+ <style scoped lang="sass">
63
+ .u-loader
64
+ position: relative
65
+ height: 100%
66
+ .message
67
+ color: $dark
68
+ font-weight: 500
69
+ </style>