@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.
- package/README.md +4 -1
- package/package.json +6 -4
- package/src/App.vue +9 -0
- package/src/assets/quasar-logo-vertical.svg +15 -0
- package/src/boot/.gitkeep +0 -0
- package/src/boot/google-maps.js +11 -0
- package/src/components/ComponentLink.vue +26 -0
- package/src/components/core/UAvatar.vue +161 -0
- package/src/components/core/UAvatarGroup.vue +119 -0
- package/src/components/core/UBadgeStd.vue +91 -0
- package/src/components/core/UBannerStd.vue +115 -0
- package/src/components/core/UBreadCrumbs.vue +67 -0
- package/src/components/core/UBtnIcon.vue +159 -0
- package/src/components/core/UBtnStd.vue +129 -0
- package/src/components/core/UBtnToggle.vue +68 -0
- package/src/components/core/UCheckboxStd.vue +95 -0
- package/src/components/core/UChip.vue +251 -0
- package/src/components/core/UDialogStd.vue +228 -0
- package/src/components/core/UDrawer.vue +211 -0
- package/src/components/core/UInnerLoader.vue +58 -0
- package/src/components/core/UInputAddressLookup.vue +466 -0
- package/src/components/core/UInputPhoneStd.vue +295 -0
- package/src/components/core/UInputTextStd.vue +293 -0
- package/src/components/core/UMenuButtonStd.vue +274 -0
- package/src/components/core/UMenuDropdown.vue +77 -0
- package/src/components/core/UMenuDropdownAdvancedSearch.vue +262 -0
- package/src/components/core/UMenuItem.vue +132 -0
- package/src/components/core/UMultiSelectStd.vue +259 -0
- package/src/components/core/UPagination.vue +104 -0
- package/src/components/core/URadioBtn.vue +116 -0
- package/src/components/core/URadioStd.vue +62 -0
- package/src/components/core/USelectStd.vue +233 -0
- package/src/components/core/UTabBtnStd.vue +167 -0
- package/src/components/core/UTable/UTable.vue +93 -0
- package/src/components/core/UTable/UTd.vue +63 -0
- package/src/components/core/UTable/UTh.vue +48 -0
- package/src/components/core/UTable/UTr.vue +20 -0
- package/src/components/core/UTableStd.vue +636 -0
- package/src/components/core/UTabsStd.vue +111 -0
- package/src/components/core/UToggleStd.vue +159 -0
- package/src/components/core/UTooltip.vue +71 -0
- package/src/components/index.js +66 -0
- package/src/composables/useNotify.js +79 -0
- package/src/composables/useOverlayLoader.js +23 -0
- package/src/css/app.sass +159 -0
- package/src/css/colors.sass +101 -0
- package/src/css/media.sass +1 -0
- package/src/css/quasar.variables.sass +119 -0
- package/src/css/typography.sass +0 -0
- package/src/css/vars/colors.variables.sass +126 -0
- package/src/layouts/MainLayout.vue +177 -0
- package/src/pages/AdvancedSearch.vue +512 -0
- package/src/pages/Avatar.vue +77 -0
- package/src/pages/AvatarGroup.vue +139 -0
- package/src/pages/BadgeStd.vue +83 -0
- package/src/pages/BannerPage.vue +76 -0
- package/src/pages/BreadCrumbs.vue +100 -0
- package/src/pages/BtnIcon.vue +120 -0
- package/src/pages/BtnStd.vue +138 -0
- package/src/pages/BtnToggle.vue +131 -0
- package/src/pages/CheckBox.vue +62 -0
- package/src/pages/Chip.vue +108 -0
- package/src/pages/ComponentBase.vue +54 -0
- package/src/pages/Dialog.vue +206 -0
- package/src/pages/Drawer.vue +128 -0
- package/src/pages/ErrorNotFound.vue +11 -0
- package/src/pages/IndexPage.vue +11 -0
- package/src/pages/InnerLoader.vue +81 -0
- package/src/pages/InputAddressLookup.vue +258 -0
- package/src/pages/InputPhone.vue +152 -0
- package/src/pages/InputText.vue +140 -0
- package/src/pages/MenuButton.vue +194 -0
- package/src/pages/MenuDropdown.vue +79 -0
- package/src/pages/MenuItem.vue +68 -0
- package/src/pages/MultiSelectStd.vue +174 -0
- package/src/pages/NotifyPage.vue +109 -0
- package/src/pages/OverlayLoader.vue +128 -0
- package/src/pages/Pagination.vue +71 -0
- package/src/pages/Radio.vue +80 -0
- package/src/pages/RadioBtn.vue +104 -0
- package/src/pages/SelectStd.vue +160 -0
- package/src/pages/TabButtonPage.vue +126 -0
- package/src/pages/TablePage.vue +375 -0
- package/src/pages/TabsPage.vue +261 -0
- package/src/pages/TogglePage.vue +58 -0
- package/src/pages/TooltipPage.vue +125 -0
- package/src/router/index.js +34 -0
- package/src/router/routes.js +149 -0
- package/dist/spa/assets/Avatar.45667392.js +0 -9
- package/dist/spa/assets/AvatarGroup.99557443.js +0 -9
- package/dist/spa/assets/AvatarGroup.bb4cd03a.css +0 -1
- package/dist/spa/assets/BadgeStd.ee4129c5.js +0 -6
- package/dist/spa/assets/BannerPage.6c6a98c4.js +0 -10
- package/dist/spa/assets/BannerPage.d195fcac.css +0 -1
- package/dist/spa/assets/BtnIcon.89e50d2e.css +0 -1
- package/dist/spa/assets/BtnIcon.934f8c5b.js +0 -10
- package/dist/spa/assets/BtnStd.95fc4510.js +0 -11
- package/dist/spa/assets/CheckBox.3c204a4b.css +0 -1
- package/dist/spa/assets/CheckBox.fbc0bd1a.js +0 -7
- package/dist/spa/assets/Chip.49ffc857.js +0 -11
- package/dist/spa/assets/Chip.74acaa33.css +0 -1
- package/dist/spa/assets/ComponentBase.1ae19b7e.js +0 -1
- package/dist/spa/assets/ErrorNotFound.6cccfaee.js +0 -1
- package/dist/spa/assets/IndexPage.17d09b76.js +0 -1
- package/dist/spa/assets/InputText.19c0d7d1.css +0 -1
- package/dist/spa/assets/InputText.3fcd97a4.js +0 -20
- package/dist/spa/assets/KFOkCnqEu92Fr1MmgVxIIzQ.34e9582c.woff +0 -0
- package/dist/spa/assets/KFOlCnqEu92Fr1MmEU9fBBc-.9ce7f3ac.woff +0 -0
- package/dist/spa/assets/KFOlCnqEu92Fr1MmSU5fBBc-.bf14c7d7.woff +0 -0
- package/dist/spa/assets/KFOlCnqEu92Fr1MmWUlfBBc-.e0fd57c0.woff +0 -0
- package/dist/spa/assets/KFOlCnqEu92Fr1MmYUtfBBc-.f6537e32.woff +0 -0
- package/dist/spa/assets/KFOmCnqEu92Fr1Mu4mxM.f2abf7fb.woff +0 -0
- package/dist/spa/assets/MainLayout.912bb0f8.js +0 -1
- package/dist/spa/assets/MultiSelectStd.644b108c.js +0 -17
- package/dist/spa/assets/MultiSelectStd.c7af49eb.css +0 -1
- package/dist/spa/assets/QAvatar.5940a79e.js +0 -1
- package/dist/spa/assets/QCheckbox.48b43f7d.js +0 -1
- package/dist/spa/assets/QPage.ca395ec4.js +0 -1
- package/dist/spa/assets/QRadio.0a7f5e2c.js +0 -1
- package/dist/spa/assets/QResizeObserver.30c3566c.js +0 -1
- package/dist/spa/assets/QSelect.a40eb786.js +0 -1
- package/dist/spa/assets/QTabs.72f2507e.js +0 -1
- package/dist/spa/assets/QToggle.376c48be.js +0 -1
- package/dist/spa/assets/QTooltip.5aa8e325.js +0 -1
- package/dist/spa/assets/Radio.0ac35288.js +0 -7
- package/dist/spa/assets/Radio.aca54a89.css +0 -1
- package/dist/spa/assets/SelectStd.5c6891db.css +0 -1
- package/dist/spa/assets/SelectStd.daf1def9.js +0 -16
- package/dist/spa/assets/TabButtonPage.20e871dd.js +0 -7
- package/dist/spa/assets/TabButtonPage.36ce9f9c.css +0 -1
- package/dist/spa/assets/TabsPage.9b94ff39.css +0 -1
- package/dist/spa/assets/TabsPage.b92cccee.js +0 -9
- package/dist/spa/assets/TogglePage.8129b631.css +0 -1
- package/dist/spa/assets/TogglePage.ba6e325c.js +0 -9
- package/dist/spa/assets/UAvatar.dda7e478.js +0 -1
- package/dist/spa/assets/UAvatar.ea8daa38.css +0 -1
- package/dist/spa/assets/UBadgeStd.3965db9a.css +0 -1
- package/dist/spa/assets/UBadgeStd.e165ee05.js +0 -1
- package/dist/spa/assets/UBtnStd.979ec4e8.js +0 -1
- package/dist/spa/assets/UBtnStd.bdd4f5e5.css +0 -1
- package/dist/spa/assets/UTooltip.d2e04d0c.js +0 -1
- package/dist/spa/assets/UTooltip.efa029a7.css +0 -1
- package/dist/spa/assets/dom.e9d4ad51.js +0 -1
- package/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.fd84f88b.woff +0 -0
- package/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.4a4dbc62.woff2 +0 -0
- package/dist/spa/assets/format.41663636.js +0 -1
- package/dist/spa/assets/index.43c62a18.js +0 -21
- package/dist/spa/assets/index.4fbd73cf.css +0 -5
- package/dist/spa/assets/option-sizes.10cc02d3.js +0 -1
- package/dist/spa/assets/render.e67ff27a.js +0 -1
- package/dist/spa/assets/tooltip.7c0d0774.js +0 -8
- package/dist/spa/assets/touch.9135741d.js +0 -1
- package/dist/spa/assets/use-checkbox.44a623c0.js +0 -1
- package/dist/spa/favicon.ico +0 -0
- package/dist/spa/icons/caret-down.svg +0 -5
- package/dist/spa/icons/circle-xmark.svg +0 -6
- package/dist/spa/icons/favicon-128x128.png +0 -0
- package/dist/spa/icons/favicon-16x16.png +0 -0
- package/dist/spa/icons/favicon-32x32.png +0 -0
- package/dist/spa/icons/favicon-96x96.png +0 -0
- 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>
|