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

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 +242 -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 +173 -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 +221 -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,131 @@
1
+ <script setup>
2
+ import ComponentBase from './ComponentBase.vue'
3
+ import UBtnToggle from 'src/components/core/UBtnToggle.vue'
4
+
5
+ import { computed, ref } from 'vue'
6
+
7
+ const toggleOptions = ref([
8
+ {
9
+ value: 'one',
10
+ slot: 'first',
11
+ name: 'Add new',
12
+ iconClass: 'fa-kit-duotone fa-circle-info',
13
+ },
14
+ {
15
+ value: 'two',
16
+ slot: 'second',
17
+ name: 'Pending invitations',
18
+ iconClass: 'fa-kit-duotone fa-circle-info',
19
+ },
20
+ ])
21
+
22
+ const onAdd = () => {
23
+ toggleOptions.value.push({
24
+ value: '',
25
+ slot: '',
26
+ name: '',
27
+ iconClass: '',
28
+ })
29
+ }
30
+
31
+ const onRemove = () => {
32
+ toggleOptions.value.pop()
33
+ }
34
+
35
+ const model = ref('two')
36
+
37
+ const htmlContent = `<UBtnToggle
38
+ :options="toggleOptions"
39
+ v-model="model"
40
+ />`
41
+
42
+ const contentInfo = `The options should looklike [{
43
+ value: 'one',
44
+ slot: 'first',
45
+ name: 'Add new',
46
+ iconClass: 'fa-kit-duotone fa-circle-info',
47
+ },
48
+ {
49
+ value: 'two',
50
+ slot: 'second',
51
+ name: 'Pending invitations',
52
+ iconClass: 'fa-kit-duotone fa-circle-info',
53
+ },`
54
+
55
+ defineOptions({
56
+ name: 'BtnToggle',
57
+ })
58
+ </script>
59
+
60
+ <template>
61
+ <q-page class="flex flex-center">
62
+ <ComponentBase
63
+ figmaUrl="https://www.figma.com/design/2FoTrjVL4ZrTdsvB4DcSao/Components?node-id=4-18&t=lUWZsHyIzqTPpTfg-0"
64
+ card-width="70%"
65
+ >
66
+ <template v-slot:component>
67
+ <UBtnToggle :options="toggleOptions" v-model="model" />
68
+ <span>You selected option {{ model }}</span>
69
+ </template>
70
+
71
+ <template v-slot:properties>
72
+ <div class="q-gutter-x-sm q-pb-sm">
73
+ <q-btn label="Add" @click="onAdd()"></q-btn>
74
+ <q-btn
75
+ label="Remove"
76
+ @click="onRemove()"
77
+ :disable="toggleOptions.length <= 2"
78
+ ></q-btn>
79
+ <p>Make sure to have different slot and value name</p>
80
+ </div>
81
+
82
+ <div class="column q-gutter-y-lg" style="position: relative">
83
+ <div
84
+ v-for="(option, index) in toggleOptions"
85
+ :key="option"
86
+ class="column"
87
+ >
88
+ <div class="justify-start items-center">Option {{ index + 1 }}</div>
89
+ <div class="row q-gutter-x-sm">
90
+ <q-input
91
+ class="col-12 col-md-3"
92
+ placeholder="Slot"
93
+ v-model="option.slot"
94
+ label="Slot"
95
+ @input="updateItem(index, 'slot', option.slot)"
96
+ ></q-input>
97
+ <q-input
98
+ class="col-12 col-md-3"
99
+ placeholder="Value"
100
+ label="Value"
101
+ v-model="option.value"
102
+ @input="updateItem(index, 'value', option.value)"
103
+ ></q-input>
104
+ <q-input
105
+ class="col-12 col-md-3"
106
+ placeholder="Label"
107
+ label="Label"
108
+ v-model="option.name"
109
+ @input="updateItem(index, 'name', option.name)"
110
+ ></q-input>
111
+ <q-input
112
+ placeholder="Icon"
113
+ label="Icon"
114
+ class="col-12 col-md-4"
115
+ v-model="option.iconClass"
116
+ @input="updateItem(index, 'iconClass', option.iconClass)"
117
+ ></q-input>
118
+ </div>
119
+ </div>
120
+ </div>
121
+ </template>
122
+
123
+ <template v-slot:code>
124
+ <pre><code>{{ htmlContent }}</code></pre>
125
+ <pre class="text-neutral-6" style="font-size: 12px; font-weight: 600">{{
126
+ contentInfo
127
+ }}</pre>
128
+ </template>
129
+ </ComponentBase>
130
+ </q-page>
131
+ </template>
@@ -0,0 +1,62 @@
1
+ <script setup>
2
+ import { computed, ref } from 'vue'
3
+ import ComponentBase from './ComponentBase.vue'
4
+ import { UCheckboxStd } from 'src/components'
5
+
6
+ const label = ref('Checkbox')
7
+ const checked = ref(false)
8
+ const disabled = ref(false)
9
+ const variant = ref('With Label')
10
+ const variantOptions = ['With Label', 'Without Label']
11
+ const showLabel = computed(() => {
12
+ return variant.value === 'With Label'
13
+ })
14
+
15
+ const htmlContent = `<UCheckboxStd
16
+ v-model="checked"
17
+ :label="label"
18
+ :showLabel="showLabel"
19
+ :disabled="disabled"
20
+ :id="u-checkbox"
21
+ />`
22
+
23
+ defineOptions({
24
+ name: 'CheckBox',
25
+ })
26
+ </script>
27
+
28
+ <template>
29
+ <q-page class="flex flex-center">
30
+ <ComponentBase
31
+ figmaUrl="https://www.figma.com/design/2FoTrjVL4ZrTdsvB4DcSao/Components?node-id=2293-164568&t=W9U6NqDHbuiUvAxN-0"
32
+ >
33
+ <template v-slot:component>
34
+ <div class="q-mt-sm">
35
+ <UCheckboxStd
36
+ v-model="checked"
37
+ :label="label"
38
+ :showLabel="showLabel"
39
+ :disabled="disabled"
40
+ id="playground"
41
+ />
42
+ </div>
43
+ </template>
44
+
45
+ <template v-slot:properties>
46
+ <div class="column q-gutter-y-lg">
47
+ <q-input label="Label" v-model="label" />
48
+ <q-select
49
+ v-model="variant"
50
+ :options="variantOptions"
51
+ label="Variant"
52
+ />
53
+ <q-checkbox size="xs" v-model="disabled" label="Disable" />
54
+ </div>
55
+ </template>
56
+
57
+ <template v-slot:code>
58
+ <pre><code>{{ htmlContent }}</code></pre>
59
+ </template>
60
+ </ComponentBase>
61
+ </q-page>
62
+ </template>
@@ -0,0 +1,108 @@
1
+ <script setup>
2
+ import { UChip } from 'src/components'
3
+ import ComponentBase from './ComponentBase.vue'
4
+ import { ref } from 'vue'
5
+
6
+ const chipLabel = ref('Label')
7
+ const avatarLabel = ref('OR')
8
+ const type = ref('primary')
9
+ const iconClass = ref('')
10
+ const typeOptions = [
11
+ 'primary',
12
+ 'accent',
13
+ 'positive',
14
+ 'warning',
15
+ 'info',
16
+ 'neutral',
17
+ 'yellow',
18
+ 'teal',
19
+ 'gold',
20
+ 'pink',
21
+ ]
22
+
23
+ const dense = ref(false)
24
+ const removable = ref(false)
25
+ const isShowTooltip = ref(false)
26
+ const modelVal = ref(true)
27
+
28
+ const htmlContent = `
29
+ <UChip
30
+ ref="chip"
31
+ v-model="modelVal"
32
+ @update:modelValue="modelVal = $event"
33
+ :type="type"
34
+ :dense="dense"
35
+ :iconClass="iconClass"
36
+ :avatarLabel="avatarLabel"
37
+ :chipLabel="chipLabel"
38
+ :removable="removable"
39
+ :isShowTooltip="isShowTooltip"
40
+ :offset="[14, 14]"
41
+ anchor="bottom middle"
42
+ />`
43
+
44
+ defineOptions({
45
+ name: 'UChip',
46
+ })
47
+ </script>
48
+
49
+ <template>
50
+ <q-page class="flex flex-center">
51
+ <ComponentBase
52
+ figmaUrl="https://www.figma.com/design/2FoTrjVL4ZrTdsvB4DcSao/Components?node-id=2281-51609"
53
+ >
54
+ <template v-slot:component>
55
+ <UChip
56
+ ref="chip"
57
+ v-model="modelVal"
58
+ @update:modelValue="modelVal = $event"
59
+ :type="type"
60
+ :dense="dense"
61
+ :iconClass="iconClass"
62
+ :avatarLabel="avatarLabel"
63
+ :chipLabel="chipLabel"
64
+ :removable="removable"
65
+ :isShowTooltip="isShowTooltip"
66
+ :offset="[14, 14]"
67
+ anchor="bottom middle"
68
+ />
69
+ </template>
70
+
71
+ <template v-slot:properties>
72
+ <div class="column q-gutter-y-lg">
73
+ <q-input label="Chip Label" v-model="chipLabel"></q-input>
74
+ <q-input label="Avatar Label" v-model="avatarLabel"></q-input>
75
+ <!-- <q-input label="Icon" v-model="icon"></q-input> -->
76
+ <q-input label="Icon Class" v-model="iconClass"></q-input>
77
+ <q-select v-model="type" :options="typeOptions" label="Chip Type" />
78
+ <div class="column">
79
+ <span class="text-grey-8 text-caption-sm">Chip Layout Type</span>
80
+ <q-checkbox
81
+ size="xs"
82
+ v-model="isShowTooltip"
83
+ label="Show Tooltip"
84
+ />
85
+ </div>
86
+
87
+ <div class="column">
88
+ <span class="text-grey-8 text-caption-sm">Chip Layout Type</span>
89
+ <q-checkbox size="xs" v-model="dense" :val="true" label="Dense" />
90
+ </div>
91
+ <div class="column">
92
+ <span class="text-grey-8 text-caption-sm">Removable</span>
93
+ <q-checkbox
94
+ size="xs"
95
+ v-model="removable"
96
+ :val="true"
97
+ label="Removable"
98
+ />
99
+ </div>
100
+ </div>
101
+ </template>
102
+
103
+ <template v-slot:code>
104
+ <pre>{{ htmlContent }}</pre>
105
+ </template>
106
+ </ComponentBase>
107
+ </q-page>
108
+ </template>
@@ -0,0 +1,54 @@
1
+ <script setup>
2
+ import { openURL } from 'quasar'
3
+
4
+ defineProps({
5
+ figmaUrl: {
6
+ type: String,
7
+ default: 'https://www.figma.com/design/2FoTrjVL4ZrTdsvB4DcSao/Components',
8
+ },
9
+ cardWidth: {
10
+ // cardWidth added for the tabs component only to show the tabs alignment left and right
11
+ type: String,
12
+ default: 'auto',
13
+ },
14
+ })
15
+ </script>
16
+
17
+ <template>
18
+ <q-page class="flex flex-center" style="width: 100%">
19
+ <q-card bordered flat :style="{ minWidth: '420px', width: cardWidth }">
20
+ <q-card-section>
21
+ <span class="text-h6">Component</span>
22
+ <div>
23
+ <slot name="component" />
24
+ </div>
25
+ </q-card-section>
26
+
27
+ <q-card-section class="bg-neutral-4">
28
+ <span class="text-h6">Properties</span>
29
+ <div>
30
+ <slot name="properties" />
31
+ </div>
32
+ </q-card-section>
33
+
34
+ <q-card-section class="bg-secondary text-grey-1">
35
+ <span class="text-h6">Code</span>
36
+ <div>
37
+ <slot name="code" />
38
+ </div>
39
+ </q-card-section>
40
+
41
+ <q-card-section class="bg-primary text-grey-1">
42
+ <span class="text-h6">Figma</span>
43
+ <div>
44
+ <q-btn
45
+ label="Link to Figma"
46
+ icon-right="open_in_new"
47
+ flat
48
+ @click="openURL(figmaUrl)"
49
+ />
50
+ </div>
51
+ </q-card-section>
52
+ </q-card>
53
+ </q-page>
54
+ </template>
@@ -0,0 +1,221 @@
1
+ <script setup>
2
+ import ComponentBase from './ComponentBase.vue'
3
+ import UDialogStd from 'src/components/core/UDialogStd.vue'
4
+ import UBtnStd from 'src/components/core/UBtnStd.vue'
5
+ import { ref } from 'vue'
6
+
7
+ const handleBackclick = () => {
8
+ alert('Back clicked')
9
+ }
10
+ const model = ref(true)
11
+ const heading = ref('Test Heading')
12
+ const position = ref('right')
13
+ const leftIcon = ref('fa-kit-duotone fa-circle-arrow-left')
14
+ const closeIcon = ref('fa-kit-duotone fa-circle-xmark')
15
+ const showActionButtons = ref(true)
16
+ const caption = ref('This is the caption')
17
+ const divider = ref(true)
18
+ const size = ref('half')
19
+ const tab = ref('movie')
20
+ const customSize = ref('75%')
21
+
22
+ const htmlContent = `<UDialogStd
23
+ :heading="heading"
24
+ :position="position"
25
+ :size="size"
26
+ :customSize="customSize"
27
+ :headingCaption="caption"
28
+ @onBackIconClick="handleBackclick()"
29
+ :showActionButtons="showActionButtons"
30
+ :closeIcon="closeIcon"
31
+ :leftIcon="leftIcon"
32
+ leftIconLabel="Back Icon"
33
+ closeIconLabel="Close Icon"
34
+ :divider="divider"
35
+ v-model="model"
36
+ >
37
+ <template #content>
38
+ ..Your Content
39
+ </template>
40
+ <template #secondary_row>
41
+ ...Your Content
42
+ </template>
43
+ <template #action_primary_one>
44
+ ...Your Content. Mainly Button
45
+ </template>
46
+ <template #action_primary_two>
47
+ ...Your Content. Mainly Button
48
+ </template>
49
+ <template #action_secondary_one>
50
+ ...Your Content. Mainly Button
51
+ </template>
52
+ <template #action_secondary_two>
53
+ ...Your Content. Mainly Button
54
+ </template>
55
+ </UDialogStd>`
56
+ defineOptions({
57
+ name: 'DialogStd',
58
+ })
59
+
60
+ const hideDialog = () => {
61
+ model.value = false
62
+ }
63
+
64
+ const showDialog = () => {
65
+ model.value = true
66
+ }
67
+ </script>
68
+
69
+ <template>
70
+ <q-page class="flex flex-center">
71
+ <ComponentBase
72
+ figmaUrl="https://www.figma.com/design/2FoTrjVL4ZrTdsvB4DcSao/Components?node-id=4982-91225&t=BcmxEUWPCe0DzRmH-0"
73
+ >
74
+ <template v-slot:component>
75
+ <UBtnStd
76
+ color="primary"
77
+ label="Show"
78
+ size="md"
79
+ @onClick="showDialog()"
80
+ ></UBtnStd>
81
+ <UDialogStd
82
+ :heading="heading"
83
+ :position="position"
84
+ :size="size"
85
+ :customSize="customSize"
86
+ :headingCaption="caption"
87
+ @onBackIconClick="handleBackclick()"
88
+ :showActionButtons="showActionButtons"
89
+ :closeIcon="closeIcon"
90
+ :leftIcon="leftIcon"
91
+ leftIconLabel="Back Icon"
92
+ closeIconLabel="Close Icon"
93
+ :divider="divider"
94
+ v-model="model"
95
+ >
96
+ <template #content>
97
+ <p v-for="n in 15" :key="n">
98
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Rerum
99
+ repellendus sit voluptate voluptas eveniet porro. Rerum blanditiis
100
+ perferendis totam, ea at omnis vel numquam exercitationem aut,
101
+ natus minima, porro labore.
102
+ </p>
103
+ </template>
104
+ <template #secondary_row>
105
+ <q-tabs
106
+ v-model="tab"
107
+ dense
108
+ class="bg-primary text-white full-width"
109
+ active-color="white"
110
+ indicator-color="white"
111
+ align="justify"
112
+ >
113
+ <q-tab name="mails" label="Mails" />
114
+ <q-tab name="alarms" label="Alarms" />
115
+ <q-tab name="movies" label="Movies" />
116
+ </q-tabs>
117
+ </template>
118
+ <template #action_primary_one>
119
+ <UBtnStd
120
+ label="Cancel"
121
+ size="md"
122
+ color="primary"
123
+ outline
124
+ @onClick="hideDialog()"
125
+ ></UBtnStd>
126
+ </template>
127
+ <template #action_primary_two>
128
+ <UBtnStd label="Save" size="md" color="primary"></UBtnStd>
129
+ </template>
130
+ <template #action_secondary_one>
131
+ <UBtnStd label="Remove" size="md" color="accent"></UBtnStd>
132
+ </template>
133
+ <template #action_secondary_two>
134
+ <UBtnStd label="Delete" size="md" color="accent"></UBtnStd>
135
+ </template>
136
+ </UDialogStd>
137
+ </template>
138
+
139
+ <template v-slot:properties>
140
+ <div class="column q-gutter-y-lg">
141
+ <q-input label="Heading" v-model="heading" />
142
+ <q-input label="Caption" v-model="caption" />
143
+ <q-input label="Left Icon" v-model="leftIcon" />
144
+ <q-input label="Close Icon" v-model="closeIcon" />
145
+
146
+ <div class="column">
147
+ <span class="text-grey-8 text-caption-sm">Size</span>
148
+ <div>
149
+ <q-radio dense v-model="size" val="default" label="Default" />
150
+ <q-radio
151
+ dense
152
+ v-model="size"
153
+ val="half"
154
+ label="Half"
155
+ class="q-pa-sm"
156
+ />
157
+ <q-radio
158
+ dense
159
+ v-model="size"
160
+ val="full"
161
+ label="Full"
162
+ class="q-pa-sm"
163
+ />
164
+ <q-radio
165
+ dense
166
+ v-model="size"
167
+ val="custom"
168
+ label="Custom"
169
+ class="q-pa-sm"
170
+ />
171
+ <q-input
172
+ v-if="size === 'custom'"
173
+ label="Custom Size"
174
+ v-model="customSize"
175
+ />
176
+ </div>
177
+ </div>
178
+ <div class="column">
179
+ <span class="text-grey-8 text-caption-sm">Position</span>
180
+ <div>
181
+ <q-radio dense v-model="position" val="left" label="Left" />
182
+ <q-radio
183
+ dense
184
+ v-model="position"
185
+ val="right"
186
+ label="Right"
187
+ class="q-pa-sm"
188
+ />
189
+ <q-radio
190
+ dense
191
+ v-model="position"
192
+ val="top"
193
+ label="Top"
194
+ class="q-pa-sm"
195
+ />
196
+ <q-radio
197
+ dense
198
+ v-model="position"
199
+ val="bottom"
200
+ label="Bottom"
201
+ class="q-pa-sm"
202
+ />
203
+ </div>
204
+ </div>
205
+ <div>
206
+ <q-checkbox
207
+ size="xs"
208
+ v-model="showActionButtons"
209
+ label="Show Buttons"
210
+ />
211
+ <q-checkbox size="xs" v-model="divider" label="Divider" />
212
+ </div>
213
+ </div>
214
+ </template>
215
+
216
+ <template v-slot:code>
217
+ <pre><code>{{ htmlContent }}</code></pre>
218
+ </template>
219
+ </ComponentBase>
220
+ </q-page>
221
+ </template>