@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,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,206 @@
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
+
21
+ const htmlContent = `<UDialogStd
22
+ :heading="heading"
23
+ :position="position"
24
+ :size="size"
25
+ :headingCaption="caption"
26
+ @onBackIconClick="handleBackclick()"
27
+ :showActionButtons="showActionButtons"
28
+ :closeIcon="closeIcon"
29
+ :leftIcon="leftIcon"
30
+ leftIconLabel="Back Icon"
31
+ closeIconLabel="Close Icon"
32
+ :divider="divider"
33
+ v-model="model"
34
+ >
35
+ <template #content>
36
+ ..Your Content
37
+ </template>
38
+ <template #secondary_row>
39
+ ...Your Content
40
+ </template>
41
+ <template #action_primary_one>
42
+ ...Your Content. Mainly Button
43
+ </template>
44
+ <template #action_primary_two>
45
+ ...Your Content. Mainly Button
46
+ </template>
47
+ <template #action_secondary_one>
48
+ ...Your Content. Mainly Button
49
+ </template>
50
+ <template #action_secondary_two>
51
+ ...Your Content. Mainly Button
52
+ </template>
53
+ </UDialogStd>`
54
+ defineOptions({
55
+ name: 'DialogStd',
56
+ })
57
+
58
+ const hideDialog = () => {
59
+ model.value = false
60
+ }
61
+
62
+ const showDialog = () => {
63
+ model.value = true
64
+ }
65
+ </script>
66
+
67
+ <template>
68
+ <q-page class="flex flex-center">
69
+ <ComponentBase
70
+ figmaUrl="https://www.figma.com/design/2FoTrjVL4ZrTdsvB4DcSao/Components?node-id=4982-91225&t=BcmxEUWPCe0DzRmH-0"
71
+ >
72
+ <template v-slot:component>
73
+ <UBtnStd
74
+ color="primary"
75
+ label="Show"
76
+ size="md"
77
+ @onClick="showDialog()"
78
+ ></UBtnStd>
79
+ <UDialogStd
80
+ :heading="heading"
81
+ :position="position"
82
+ :size="size"
83
+ :headingCaption="caption"
84
+ @onBackIconClick="handleBackclick()"
85
+ :showActionButtons="showActionButtons"
86
+ :closeIcon="closeIcon"
87
+ :leftIcon="leftIcon"
88
+ leftIconLabel="Back Icon"
89
+ closeIconLabel="Close Icon"
90
+ :divider="divider"
91
+ v-model="model"
92
+ >
93
+ <template #content>
94
+ <p v-for="n in 15" :key="n">
95
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Rerum
96
+ repellendus sit voluptate voluptas eveniet porro. Rerum blanditiis
97
+ perferendis totam, ea at omnis vel numquam exercitationem aut,
98
+ natus minima, porro labore.
99
+ </p>
100
+ </template>
101
+ <template #secondary_row>
102
+ <q-tabs
103
+ v-model="tab"
104
+ dense
105
+ class="bg-primary text-white full-width"
106
+ active-color="white"
107
+ indicator-color="white"
108
+ align="justify"
109
+ >
110
+ <q-tab name="mails" label="Mails" />
111
+ <q-tab name="alarms" label="Alarms" />
112
+ <q-tab name="movies" label="Movies" />
113
+ </q-tabs>
114
+ </template>
115
+ <template #action_primary_one>
116
+ <UBtnStd
117
+ label="Cancel"
118
+ size="md"
119
+ color="primary"
120
+ outline
121
+ @onClick="hideDialog()"
122
+ ></UBtnStd>
123
+ </template>
124
+ <template #action_primary_two>
125
+ <UBtnStd label="Save" size="md" color="primary"></UBtnStd>
126
+ </template>
127
+ <template #action_secondary_one>
128
+ <UBtnStd label="Remove" size="md" color="accent"></UBtnStd>
129
+ </template>
130
+ <template #action_secondary_two>
131
+ <UBtnStd label="Delete" size="md" color="accent"></UBtnStd>
132
+ </template>
133
+ </UDialogStd>
134
+ </template>
135
+
136
+ <template v-slot:properties>
137
+ <div class="column q-gutter-y-lg">
138
+ <q-input label="Heading" v-model="heading" />
139
+ <q-input label="Caption" v-model="caption" />
140
+ <q-input label="Left Icon" v-model="leftIcon" />
141
+ <q-input label="Close Icon" v-model="closeIcon" />
142
+
143
+ <div class="column">
144
+ <span class="text-grey-8 text-caption-sm">Size</span>
145
+ <div>
146
+ <q-radio dense v-model="size" val="default" label="Default" />
147
+ <q-radio
148
+ dense
149
+ v-model="size"
150
+ val="half"
151
+ label="Half"
152
+ class="q-pa-sm"
153
+ />
154
+ <q-radio
155
+ dense
156
+ v-model="size"
157
+ val="full"
158
+ label="Full"
159
+ class="q-pa-sm"
160
+ />
161
+ </div>
162
+ </div>
163
+ <div class="column">
164
+ <span class="text-grey-8 text-caption-sm">Position</span>
165
+ <div>
166
+ <q-radio dense v-model="position" val="left" label="Left" />
167
+ <q-radio
168
+ dense
169
+ v-model="position"
170
+ val="right"
171
+ label="Right"
172
+ class="q-pa-sm"
173
+ />
174
+ <q-radio
175
+ dense
176
+ v-model="position"
177
+ val="top"
178
+ label="Top"
179
+ class="q-pa-sm"
180
+ />
181
+ <q-radio
182
+ dense
183
+ v-model="position"
184
+ val="bottom"
185
+ label="Bottom"
186
+ class="q-pa-sm"
187
+ />
188
+ </div>
189
+ </div>
190
+ <div>
191
+ <q-checkbox
192
+ size="xs"
193
+ v-model="showActionButtons"
194
+ label="Show Buttons"
195
+ />
196
+ <q-checkbox size="xs" v-model="divider" label="Divider" />
197
+ </div>
198
+ </div>
199
+ </template>
200
+
201
+ <template v-slot:code>
202
+ <pre><code>{{ htmlContent }}</code></pre>
203
+ </template>
204
+ </ComponentBase>
205
+ </q-page>
206
+ </template>
@@ -0,0 +1,128 @@
1
+ <script setup>
2
+ import { ref } from 'vue'
3
+ import ComponentBase from './ComponentBase.vue'
4
+ import UDrawer from 'src/components/core/UDrawer.vue'
5
+
6
+ defineOptions({
7
+ name: 'SideDrawer',
8
+ })
9
+
10
+ const open = ref(true)
11
+ const miniState = ref(true)
12
+
13
+ const drawerOpenClose = () => {
14
+ miniState.value = !miniState.value
15
+ }
16
+
17
+ const htmlContent = `<UDrawer
18
+ v-model:open="open"
19
+ v-model:miniState="miniState"
20
+ :menu="menu"
21
+ @menu-item-clicked="handleMenuClicked"
22
+ @close-drawer="drawerOpenClose"
23
+ :brand-logo="brandLogo"
24
+ :brand-mini-logo="brandMiniLogo"
25
+ />`
26
+
27
+ const menu = ref([
28
+ {
29
+ label: 'Home',
30
+ leftIcon: 'fa-kit-duotone fa-home',
31
+ to: 'drawer',
32
+ rightIcon: 'fa-kit-duotone fa-official',
33
+ badgeInfo: '20',
34
+ },
35
+ {
36
+ label: 'Teams',
37
+ leftIcon: 'fa-kit-duotone fa-clipboard-list-check',
38
+ rightIcon: 'fa-kit-duotone fa-circle-check',
39
+ to: 'task-management',
40
+ },
41
+ {
42
+ label: 'Players',
43
+ leftIcon: 'fa-kit-duotone fa-cap',
44
+ to: 'task-management',
45
+ },
46
+ {
47
+ label: 'Messages',
48
+ leftIcon: 'fa-kit-duotone fa-official',
49
+ rightIcon: 'fa-kit-duotone fa-comments',
50
+ to: 'task-management',
51
+ badgeInfo: '40',
52
+ },
53
+ {
54
+ label: 'Shop',
55
+ leftIcon: 'fa-kit-duotone fa-bag-shopping',
56
+ to: 'task-management',
57
+ },
58
+ ])
59
+
60
+ const handleMenuClicked = (menu) => {
61
+ console.log(menu, 'menu')
62
+ }
63
+
64
+ const brandLogo = ref('/icons/logo.svg')
65
+ const brandMiniLogo = ref('/icons/logo-s.svg')
66
+ </script>
67
+ <template>
68
+ <q-page class="flex flex-center">
69
+ <ComponentBase
70
+ figmaUrl="https://www.figma.com/design/2FoTrjVL4ZrTdsvB4DcSao/Components?node-id=4694-115830&node-type=canvas&t=S05Wz0EMhQW7wqmm-0"
71
+ cardWidth="90%"
72
+ >
73
+ <template v-slot:component>
74
+ <q-layout
75
+ view="lHh Lpr lff"
76
+ container
77
+ style="height: 600px"
78
+ class="shadow-2 rounded-borders"
79
+ >
80
+ <q-header
81
+ elevated
82
+ :style="{ left: miniState ? '4rem' : '14rem' }"
83
+ class="bg-neutral-1"
84
+ >
85
+ <q-toolbar>
86
+ <q-icon
87
+ v-if="miniState"
88
+ aria-label="sidebar open/close icon"
89
+ class="fa-kit-duotone fa-sidebar-expand drawer-open-close-icon cursor-pointer"
90
+ @click="drawerOpenClose"
91
+ />
92
+ <q-toolbar-title class="text-black">Header</q-toolbar-title>
93
+ </q-toolbar>
94
+ </q-header>
95
+
96
+ <UDrawer
97
+ v-model:open="open"
98
+ v-model:miniState="miniState"
99
+ :menu="menu"
100
+ @menu-item-clicked="handleMenuClicked"
101
+ @close-drawer="drawerOpenClose"
102
+ :brand-logo="brandLogo"
103
+ :brand-mini-logo="brandMiniLogo"
104
+ />
105
+ <q-page-container>
106
+ <q-page padding>
107
+ <p v-for="n in 15" :key="n">
108
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Fugit
109
+ nihil praesentium molestias a adipisci, dolore vitae odit,
110
+ quidem consequatur optio voluptates asperiores pariatur eos
111
+ numquam rerum delectus commodi perferendis voluptate?
112
+ </p>
113
+ </q-page>
114
+ </q-page-container>
115
+ </q-layout>
116
+ </template>
117
+ <template v-slot:properties>
118
+ <div class="column q-gutter-y-md">
119
+ <q-checkbox size="xs" v-model="miniState" label="Mini State" />
120
+ </div>
121
+ </template>
122
+ <template v-slot:code>
123
+ <pre>{{ htmlContent }}</pre>
124
+ </template>
125
+ </ComponentBase>
126
+ </q-page>
127
+ </template>
128
+ <style lang="sass"></style>