@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,139 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { UAvatarGroup } from 'src/components'
|
|
3
|
+
import ComponentBase from './ComponentBase.vue'
|
|
4
|
+
import { ref } from 'vue'
|
|
5
|
+
|
|
6
|
+
const round = ref(true)
|
|
7
|
+
const label = ref('A')
|
|
8
|
+
const indicatorColor = ref('')
|
|
9
|
+
|
|
10
|
+
const size = ref('xl')
|
|
11
|
+
const indicatorColorOptions = ['primary', 'accent', 'positive', 'neutral']
|
|
12
|
+
const sizeOptions = ['sm', 'md', 'lg', 'xl']
|
|
13
|
+
const showIndicator = ref(true)
|
|
14
|
+
const avatarLimit = ref(4)
|
|
15
|
+
|
|
16
|
+
const htmlContent = `<UAvatarGroup
|
|
17
|
+
ref="avatar"
|
|
18
|
+
:label="label"
|
|
19
|
+
:size="size"
|
|
20
|
+
:showIndicator="showIndicator"
|
|
21
|
+
:indicatorColor="indicatorColor"
|
|
22
|
+
:round="round"
|
|
23
|
+
:images="users"
|
|
24
|
+
/>`
|
|
25
|
+
|
|
26
|
+
defineOptions({
|
|
27
|
+
name: 'UAvatarGroup',
|
|
28
|
+
})
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
<template>
|
|
32
|
+
<q-page class="flex flex-center">
|
|
33
|
+
<ComponentBase
|
|
34
|
+
figmaUrl="https://www.figma.com/design/2FoTrjVL4ZrTdsvB4DcSao/Components?node-id=2246-39909"
|
|
35
|
+
>
|
|
36
|
+
<template v-slot:component>
|
|
37
|
+
<UAvatarGroup
|
|
38
|
+
ref="avatar"
|
|
39
|
+
:label="label"
|
|
40
|
+
:size="size"
|
|
41
|
+
:showIndicator="showIndicator"
|
|
42
|
+
:indicatorColor="indicatorColor"
|
|
43
|
+
:round="round"
|
|
44
|
+
:images="users"
|
|
45
|
+
:avatarLimit="avatarLimit"
|
|
46
|
+
/>
|
|
47
|
+
</template>
|
|
48
|
+
|
|
49
|
+
<template v-slot:properties>
|
|
50
|
+
<div class="column q-gutter-y-lg">
|
|
51
|
+
<div v-for="(item, index) in users" :key="index">
|
|
52
|
+
<span class="text-grey-8 text-caption-sm"
|
|
53
|
+
>User {{ index + 1 }}</span
|
|
54
|
+
>
|
|
55
|
+
|
|
56
|
+
<q-input
|
|
57
|
+
v-model="users[index].name"
|
|
58
|
+
:val="users[index].name"
|
|
59
|
+
label="Name"
|
|
60
|
+
></q-input>
|
|
61
|
+
<q-input
|
|
62
|
+
v-model="users[index].image"
|
|
63
|
+
:val="item.image"
|
|
64
|
+
label="Image"
|
|
65
|
+
></q-input>
|
|
66
|
+
<div
|
|
67
|
+
class="full-width row justify-end q-mt-xs"
|
|
68
|
+
style="cursor: pointer"
|
|
69
|
+
>
|
|
70
|
+
<q-icon
|
|
71
|
+
@click="removeField(index)"
|
|
72
|
+
class="fa-duotone fa-solid fa-circle-minus"
|
|
73
|
+
size="sm"
|
|
74
|
+
color="primary"
|
|
75
|
+
/>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
<div class="full-width row justify-end q-mt-sm">
|
|
79
|
+
<q-icon
|
|
80
|
+
@click="addField"
|
|
81
|
+
style="cursor: pointer"
|
|
82
|
+
class="fa-duotone fa-solid fa-circle-plus"
|
|
83
|
+
size="xl"
|
|
84
|
+
color="primary"
|
|
85
|
+
/>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
<div class="column q-gutter-y-lg">
|
|
89
|
+
<q-input v-model="avatarLimit" label="Avatar Limit" />
|
|
90
|
+
</div>
|
|
91
|
+
<div class="column q-gutter-y-lg">
|
|
92
|
+
<q-select v-model="size" :options="sizeOptions" label="Size" />
|
|
93
|
+
</div>
|
|
94
|
+
<div class="column">
|
|
95
|
+
<span class="text-grey-8 text-caption-sm">Show Indicator</span>
|
|
96
|
+
<q-checkbox
|
|
97
|
+
size="xs"
|
|
98
|
+
v-model="showIndicator"
|
|
99
|
+
:val="true"
|
|
100
|
+
label="Show Indicator"
|
|
101
|
+
/>
|
|
102
|
+
</div>
|
|
103
|
+
<q-select
|
|
104
|
+
v-model="indicatorColor"
|
|
105
|
+
:options="indicatorColorOptions"
|
|
106
|
+
label="Indicator Color"
|
|
107
|
+
/>
|
|
108
|
+
</template>
|
|
109
|
+
|
|
110
|
+
<template v-slot:code>
|
|
111
|
+
<pre>{{ htmlContent }}</pre>
|
|
112
|
+
</template>
|
|
113
|
+
</ComponentBase>
|
|
114
|
+
</q-page>
|
|
115
|
+
</template>
|
|
116
|
+
<script>
|
|
117
|
+
export default {
|
|
118
|
+
data() {
|
|
119
|
+
return {
|
|
120
|
+
users: [
|
|
121
|
+
{ name: 'Alice', image: 'https://cdn.quasar.dev/img/avatar1.jpg' },
|
|
122
|
+
{ name: 'Bob', image: 'https://cdn.quasar.dev/img/avatar2.jpg' },
|
|
123
|
+
{ name: 'Charlie', image: 'https://cdn.quasar.dev/img/avatar3.jpg' },
|
|
124
|
+
{ name: 'Diana', image: 'https://cdn.quasar.dev/img/avatar4.jpg' },
|
|
125
|
+
{ name: 'Edward', image: 'https://cdn.quasar.dev/img/avatar5.jpg' },
|
|
126
|
+
{ name: 'Alex', image: 'https://cdn.quasar.dev/img/avatar6.jpg' },
|
|
127
|
+
],
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
methods: {
|
|
131
|
+
addField() {
|
|
132
|
+
this.users.push({ name: '', image: '' })
|
|
133
|
+
},
|
|
134
|
+
removeField(index) {
|
|
135
|
+
this.users.splice(index, 1)
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
}
|
|
139
|
+
</script>
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, ref, watch } from 'vue'
|
|
3
|
+
import ComponentBase from './ComponentBase.vue'
|
|
4
|
+
import { UBadgeStd } from 'src/components'
|
|
5
|
+
|
|
6
|
+
const color = ref('primary')
|
|
7
|
+
const colorOptions = ['primary', 'accent', 'warning', 'positive', 'neutral']
|
|
8
|
+
|
|
9
|
+
const size = ref('md')
|
|
10
|
+
const type = ref('basic')
|
|
11
|
+
const sizeOptions = ['xxs', 'xs', 'sm', 'md', 'lg']
|
|
12
|
+
watch(type, () => {
|
|
13
|
+
size.value = type.value === 'indicator' ? 'xxs' : 'md'
|
|
14
|
+
})
|
|
15
|
+
const filteredSizeOptions = computed(() => {
|
|
16
|
+
if (type.value === 'indicator') {
|
|
17
|
+
return sizeOptions.filter((size) => size !== 'md' && size !== 'lg')
|
|
18
|
+
}
|
|
19
|
+
return ['md', 'lg']
|
|
20
|
+
})
|
|
21
|
+
const label = ref('01')
|
|
22
|
+
const htmlContent = `<UBadgeStd
|
|
23
|
+
:label="label"
|
|
24
|
+
:color="color"
|
|
25
|
+
:size="size"
|
|
26
|
+
:type="type"
|
|
27
|
+
/>`
|
|
28
|
+
defineOptions({
|
|
29
|
+
name: 'BtnStd',
|
|
30
|
+
})
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
<template>
|
|
34
|
+
<q-page class="flex flex-center">
|
|
35
|
+
<ComponentBase
|
|
36
|
+
figmaUrl="https://www.figma.com/design/2FoTrjVL4ZrTdsvB4DcSao/Components?node-id=508-19370&t=DR7gF8DTYY1JvngY-0"
|
|
37
|
+
>
|
|
38
|
+
<template v-slot:component>
|
|
39
|
+
<UBadgeStd :label="label" :color="color" :size="size" :type="type" />
|
|
40
|
+
</template>
|
|
41
|
+
|
|
42
|
+
<template v-slot:properties
|
|
43
|
+
><div class="column q-gutter-y-lg">
|
|
44
|
+
<div class="container column">
|
|
45
|
+
<div class="q-gutter-sm">
|
|
46
|
+
<div class="q-mt-md">
|
|
47
|
+
<q-label>Label</q-label>
|
|
48
|
+
<q-input v-model="label"></q-input>
|
|
49
|
+
</div>
|
|
50
|
+
<q-select v-model="color" :options="colorOptions" label="Color" />
|
|
51
|
+
<q-select
|
|
52
|
+
v-model="size"
|
|
53
|
+
:options="filteredSizeOptions"
|
|
54
|
+
label="Size"
|
|
55
|
+
/>
|
|
56
|
+
<div>
|
|
57
|
+
<q-label class="q-mr-sm">Type</q-label>
|
|
58
|
+
|
|
59
|
+
<q-radio
|
|
60
|
+
dense
|
|
61
|
+
v-model="type"
|
|
62
|
+
val="basic"
|
|
63
|
+
label="Basic"
|
|
64
|
+
class="q-pr-sm"
|
|
65
|
+
/>
|
|
66
|
+
<q-radio
|
|
67
|
+
dense
|
|
68
|
+
v-model="type"
|
|
69
|
+
val="indicator"
|
|
70
|
+
label="Indicator"
|
|
71
|
+
/>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
</template>
|
|
77
|
+
|
|
78
|
+
<template v-slot:code>
|
|
79
|
+
<pre>{{ htmlContent }}</pre>
|
|
80
|
+
</template>
|
|
81
|
+
</ComponentBase>
|
|
82
|
+
</q-page>
|
|
83
|
+
</template>
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { ref } from 'vue'
|
|
3
|
+
import ComponentBase from './ComponentBase.vue'
|
|
4
|
+
import { UBannerStd } from 'src/components'
|
|
5
|
+
|
|
6
|
+
defineOptions({
|
|
7
|
+
name: 'BannerPage',
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
const htmlContent = `<UBannerStd
|
|
11
|
+
:type="type"
|
|
12
|
+
:show="show"
|
|
13
|
+
:primaryActionLabel="primaryActionLabel"
|
|
14
|
+
:secondaryActionLabel="secondaryActionLabel"
|
|
15
|
+
:message="message"
|
|
16
|
+
@primaryAction="handlePrimaryActionClick"
|
|
17
|
+
@secondaryAction="handleSecondaryActionClick"
|
|
18
|
+
:icon="icon"
|
|
19
|
+
/>`
|
|
20
|
+
|
|
21
|
+
const typeOptions = ['info', 'positive', 'accent', 'warning', 'primary']
|
|
22
|
+
|
|
23
|
+
const type = ref('primary')
|
|
24
|
+
const message = ref('This is banner message.')
|
|
25
|
+
const icon = ref('fa-kit-duotone fa-circle-info')
|
|
26
|
+
const primaryActionLabel = ref('Submit')
|
|
27
|
+
const secondaryActionLabel = ref('Close')
|
|
28
|
+
const show = ref(true)
|
|
29
|
+
|
|
30
|
+
const handlePrimaryActionClick = () => {
|
|
31
|
+
alert('First Clicked')
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const handleSecondaryActionClick = () => {
|
|
35
|
+
alert('Second Clicked')
|
|
36
|
+
}
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<template>
|
|
40
|
+
<q-page class="flex flex-center">
|
|
41
|
+
<ComponentBase
|
|
42
|
+
figmaUrl="https://www.figma.com/design/2FoTrjVL4ZrTdsvB4DcSao/Components?node-id=2145-13266&m=dev"
|
|
43
|
+
cardWidth="70%"
|
|
44
|
+
>
|
|
45
|
+
<template v-slot:component>
|
|
46
|
+
<UBannerStd
|
|
47
|
+
:type="type"
|
|
48
|
+
:show="show"
|
|
49
|
+
:primaryActionLabel="primaryActionLabel"
|
|
50
|
+
:secondaryActionLabel="secondaryActionLabel"
|
|
51
|
+
:message="message"
|
|
52
|
+
@primaryAction="handlePrimaryActionClick"
|
|
53
|
+
@secondaryAction="handleSecondaryActionClick"
|
|
54
|
+
:icon="icon"
|
|
55
|
+
/>
|
|
56
|
+
</template>
|
|
57
|
+
<template v-slot:properties>
|
|
58
|
+
<div class="column q-gutter-y-md">
|
|
59
|
+
<q-toggle v-model="show" label="Show" />
|
|
60
|
+
<q-input label="Message" v-model="message" />
|
|
61
|
+
<q-input label="Icon" v-model="icon" />
|
|
62
|
+
<q-select v-model="type" :options="typeOptions" label="Type" />
|
|
63
|
+
<q-input label="Primary Action label" v-model="primaryActionLabel" />
|
|
64
|
+
<q-input
|
|
65
|
+
label="Secondary Action label"
|
|
66
|
+
v-model="secondaryActionLabel"
|
|
67
|
+
/>
|
|
68
|
+
</div>
|
|
69
|
+
</template>
|
|
70
|
+
<template v-slot:code>
|
|
71
|
+
<pre><code>{{ htmlContent }}</code></pre>
|
|
72
|
+
</template>
|
|
73
|
+
</ComponentBase>
|
|
74
|
+
</q-page>
|
|
75
|
+
</template>
|
|
76
|
+
<style lang="sass"></style>
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { UBreadCrumbs } from 'src/components'
|
|
3
|
+
import ComponentBase from './ComponentBase.vue'
|
|
4
|
+
import { ref } from 'vue'
|
|
5
|
+
|
|
6
|
+
const htmlContent = `<UBreadCrumbs
|
|
7
|
+
:align="align"
|
|
8
|
+
:links="links"
|
|
9
|
+
:clickable="clickable"
|
|
10
|
+
:showActiveRoute="showActiveRoute"
|
|
11
|
+
:activeColor="activeColor"
|
|
12
|
+
/>
|
|
13
|
+
`
|
|
14
|
+
|
|
15
|
+
const contentInfo = `The links options should look like [
|
|
16
|
+
{
|
|
17
|
+
label: 'Banner', // label of bread crumb
|
|
18
|
+
to: 'banner', // redirect link
|
|
19
|
+
},`
|
|
20
|
+
|
|
21
|
+
const align = ref('left')
|
|
22
|
+
const activeColor = ref('primary')
|
|
23
|
+
const clickable = ref(true)
|
|
24
|
+
const showActiveRoute = ref(true)
|
|
25
|
+
const alignmentOptions = ['left', 'right', 'center', 'between', 'around']
|
|
26
|
+
const links = [
|
|
27
|
+
{ label: 'Avatar', to: 'avatar' },
|
|
28
|
+
{
|
|
29
|
+
label: 'Badge',
|
|
30
|
+
to: 'badge',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
label: 'Banner',
|
|
34
|
+
to: 'banner',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
label: 'Button Toggle',
|
|
38
|
+
to: 'button-toggle',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
label: 'Button',
|
|
42
|
+
to: 'button-standard',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
label: 'Bread Crumbs',
|
|
46
|
+
to: 'bread-crumbs',
|
|
47
|
+
},
|
|
48
|
+
]
|
|
49
|
+
</script>
|
|
50
|
+
<template>
|
|
51
|
+
<q-page class="flex flex-center">
|
|
52
|
+
<ComponentBase
|
|
53
|
+
figmaUrl="https://www.figma.com/design/2FoTrjVL4ZrTdsvB4DcSao/Components?node-id=4-17&node-type=canvas&m=dev"
|
|
54
|
+
cardWidth="70%"
|
|
55
|
+
>
|
|
56
|
+
<template v-slot:component>
|
|
57
|
+
<UBreadCrumbs
|
|
58
|
+
:align="align"
|
|
59
|
+
:links="links"
|
|
60
|
+
:clickable="clickable"
|
|
61
|
+
:showActiveRoute="showActiveRoute"
|
|
62
|
+
:activeColor="activeColor"
|
|
63
|
+
/>
|
|
64
|
+
</template>
|
|
65
|
+
<template v-slot:properties>
|
|
66
|
+
<div class="column q-gutter-y-lg" style="position: relative">
|
|
67
|
+
<q-select
|
|
68
|
+
v-model="align"
|
|
69
|
+
:options="alignmentOptions"
|
|
70
|
+
label="Alignment"
|
|
71
|
+
/>
|
|
72
|
+
<q-checkbox
|
|
73
|
+
class="q-mr-sm"
|
|
74
|
+
size="xs"
|
|
75
|
+
v-model="clickable"
|
|
76
|
+
label="Clickable"
|
|
77
|
+
/>
|
|
78
|
+
<q-checkbox
|
|
79
|
+
class="q-mr-sm"
|
|
80
|
+
size="xs"
|
|
81
|
+
v-model="showActiveRoute"
|
|
82
|
+
label="Show current active route"
|
|
83
|
+
/>
|
|
84
|
+
<q-input
|
|
85
|
+
class="col-12 col-md-3"
|
|
86
|
+
placeholder="Label"
|
|
87
|
+
v-model="activeColor"
|
|
88
|
+
></q-input>
|
|
89
|
+
</div>
|
|
90
|
+
</template>
|
|
91
|
+
<template v-slot:code>
|
|
92
|
+
<pre>{{ htmlContent }}</pre>
|
|
93
|
+
<pre class="text-neutral-6" style="font-size: 12px; font-weight: 600">{{
|
|
94
|
+
contentInfo
|
|
95
|
+
}}</pre>
|
|
96
|
+
</template>
|
|
97
|
+
</ComponentBase>
|
|
98
|
+
</q-page>
|
|
99
|
+
</template>
|
|
100
|
+
<style lang="sass"></style>
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { UBtnIcon } from 'src/components'
|
|
3
|
+
import ComponentBase from './ComponentBase.vue'
|
|
4
|
+
import { ref } from 'vue'
|
|
5
|
+
|
|
6
|
+
const color = ref('primary')
|
|
7
|
+
const colorOptions = ['primary', 'neutral', 'accent', 'transparent']
|
|
8
|
+
|
|
9
|
+
const tooltip = ref('Tooltip')
|
|
10
|
+
const anchorOptions = [
|
|
11
|
+
'top left',
|
|
12
|
+
'top middle',
|
|
13
|
+
'top right',
|
|
14
|
+
'top start',
|
|
15
|
+
'top end',
|
|
16
|
+
'center left',
|
|
17
|
+
'center middle',
|
|
18
|
+
'center right',
|
|
19
|
+
'center start',
|
|
20
|
+
'center end',
|
|
21
|
+
'bottom left',
|
|
22
|
+
'bottom middle',
|
|
23
|
+
'bottom right',
|
|
24
|
+
'bottom start',
|
|
25
|
+
'bottom end',
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
const selfOptions = [
|
|
29
|
+
'top left',
|
|
30
|
+
'top middle',
|
|
31
|
+
'top right',
|
|
32
|
+
'top start',
|
|
33
|
+
'top end',
|
|
34
|
+
'center left',
|
|
35
|
+
'center middle',
|
|
36
|
+
'center right',
|
|
37
|
+
'center start',
|
|
38
|
+
'center end',
|
|
39
|
+
'bottom left',
|
|
40
|
+
'bottom middle',
|
|
41
|
+
'bottom right',
|
|
42
|
+
'bottom start',
|
|
43
|
+
'bottom end',
|
|
44
|
+
]
|
|
45
|
+
const ariaLabel = ref('Btn Icon')
|
|
46
|
+
const size = ref('sm')
|
|
47
|
+
const sizeOptions = ['sm', 'md', 'lg']
|
|
48
|
+
const anchor = ref('center left')
|
|
49
|
+
const self = ref('center end')
|
|
50
|
+
|
|
51
|
+
const iconClass = ref('fa-kit-duotone fa-circle-bolt')
|
|
52
|
+
|
|
53
|
+
const htmlContent = `<UBtnIcon
|
|
54
|
+
ref="btn-icon"
|
|
55
|
+
:size="size"
|
|
56
|
+
:ariaLabel="ariaLabel"
|
|
57
|
+
:color="color"
|
|
58
|
+
:iconClass="iconClass"
|
|
59
|
+
:tooltip="tooltip"
|
|
60
|
+
:anchor="anchor"
|
|
61
|
+
:self="self"
|
|
62
|
+
/>`
|
|
63
|
+
|
|
64
|
+
defineOptions({
|
|
65
|
+
name: 'BtnIcon',
|
|
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=2710-35247"
|
|
73
|
+
>
|
|
74
|
+
<template v-slot:component>
|
|
75
|
+
<UBtnIcon
|
|
76
|
+
ref="btn-icon"
|
|
77
|
+
:size="size"
|
|
78
|
+
:ariaLabel="ariaLabel"
|
|
79
|
+
:color="color"
|
|
80
|
+
:iconClass="iconClass"
|
|
81
|
+
:tooltip="tooltip"
|
|
82
|
+
:anchor="anchor"
|
|
83
|
+
:self="self"
|
|
84
|
+
/>
|
|
85
|
+
</template>
|
|
86
|
+
|
|
87
|
+
<template v-slot:properties>
|
|
88
|
+
<div class="column q-gutter-y-lg">
|
|
89
|
+
<q-input label="Aria Label" v-model="ariaLabel"></q-input>
|
|
90
|
+
<q-select v-model="color" :options="colorOptions" label="Color" />
|
|
91
|
+
<q-input label="Icon Class" v-model="iconClass"></q-input>
|
|
92
|
+
<q-select v-model="size" :options="sizeOptions" label="Icon Size" />
|
|
93
|
+
|
|
94
|
+
<div class="q-my-md">
|
|
95
|
+
<q-input v-model="tooltip" label="Tooltip"></q-input>
|
|
96
|
+
</div>
|
|
97
|
+
<div class="column">
|
|
98
|
+
<span class="text-grey-8 text-caption-sm">Tooltip Position</span>
|
|
99
|
+
<div>
|
|
100
|
+
<q-select
|
|
101
|
+
v-model="anchor"
|
|
102
|
+
:options="anchorOptions"
|
|
103
|
+
label="Anchor Origin"
|
|
104
|
+
/>
|
|
105
|
+
<q-select
|
|
106
|
+
v-model="self"
|
|
107
|
+
:options="selfOptions"
|
|
108
|
+
label="Self Origin"
|
|
109
|
+
/>
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
</template>
|
|
114
|
+
|
|
115
|
+
<template v-slot:code>
|
|
116
|
+
<pre>{{ htmlContent }}</pre>
|
|
117
|
+
</template>
|
|
118
|
+
</ComponentBase>
|
|
119
|
+
</q-page>
|
|
120
|
+
</template>
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { UTooltip } from 'src/components'
|
|
3
|
+
import { computed, ref } from 'vue'
|
|
4
|
+
import UBtnStd from '../components/core/UBtnStd.vue'
|
|
5
|
+
import ComponentBase from './ComponentBase.vue'
|
|
6
|
+
|
|
7
|
+
const color = ref('primary')
|
|
8
|
+
const colorOptions = [
|
|
9
|
+
'positive',
|
|
10
|
+
'info',
|
|
11
|
+
'warning',
|
|
12
|
+
'neutral',
|
|
13
|
+
'primary',
|
|
14
|
+
'accent',
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
const size = ref('sm')
|
|
18
|
+
const sizeOptions = ['sm', 'md', 'lg']
|
|
19
|
+
const disabled = ref(false)
|
|
20
|
+
const type = ref('standard')
|
|
21
|
+
const label = ref('Button')
|
|
22
|
+
const tooltip = ref(null)
|
|
23
|
+
|
|
24
|
+
const flat = computed(() => {
|
|
25
|
+
return type.value === 'flat'
|
|
26
|
+
})
|
|
27
|
+
const outline = computed(() => {
|
|
28
|
+
return type.value === 'outline'
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
const leftIcon = computed(() => {
|
|
32
|
+
return iconLeft.value ? 'fa-kit-duotone fa-triangle-exclamation' : ''
|
|
33
|
+
})
|
|
34
|
+
const rightIcon = computed(() => {
|
|
35
|
+
return iconRight.value ? 'fa-kit-duotone fa-triangle-exclamation' : ''
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
const iconLeft = ref(false)
|
|
39
|
+
const iconRight = ref(false)
|
|
40
|
+
const fullWidth = ref(false)
|
|
41
|
+
const htmlContent =
|
|
42
|
+
'<UBtnStd\n :size="size"\n :label="label"\n :color="color"\n :outline="outline"\n :disable="disabled"\n :flat="flat"\n :left-icon="leftIcon"\n :right-icon="rightIcon"\n :full-width="fullWidth"\n/> '
|
|
43
|
+
|
|
44
|
+
defineOptions({
|
|
45
|
+
name: 'BtnStd',
|
|
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=4-18&t=W9U6NqDHbuiUvAxN-0"
|
|
53
|
+
>
|
|
54
|
+
<template v-slot:component>
|
|
55
|
+
<u-btn-std
|
|
56
|
+
ref="btn"
|
|
57
|
+
:size="size"
|
|
58
|
+
:label="label"
|
|
59
|
+
:color="color"
|
|
60
|
+
:outline="outline"
|
|
61
|
+
:disable="disabled"
|
|
62
|
+
:flat="flat"
|
|
63
|
+
:left-icon="leftIcon"
|
|
64
|
+
:right-icon="rightIcon"
|
|
65
|
+
:full-width="fullWidth"
|
|
66
|
+
>
|
|
67
|
+
<template v-slot:tooltip>
|
|
68
|
+
<UTooltip
|
|
69
|
+
v-if="tooltip"
|
|
70
|
+
:description="tooltip"
|
|
71
|
+
anchor="bottom middle"
|
|
72
|
+
self="bottom middle"
|
|
73
|
+
:offset="[14, 40]"
|
|
74
|
+
/>
|
|
75
|
+
</template>
|
|
76
|
+
</u-btn-std>
|
|
77
|
+
</template>
|
|
78
|
+
|
|
79
|
+
<template v-slot:properties>
|
|
80
|
+
<div class="column q-gutter-y-lg">
|
|
81
|
+
<q-input label="Label" v-model="label" />
|
|
82
|
+
<q-input label="Button tooltip" v-model="tooltip" />
|
|
83
|
+
<q-select v-model="color" :options="colorOptions" label="Color" />
|
|
84
|
+
<q-select v-model="size" :options="sizeOptions" label="Size" />
|
|
85
|
+
|
|
86
|
+
<div class="column">
|
|
87
|
+
<span class="text-grey-8 text-caption-sm">Type</span>
|
|
88
|
+
<div>
|
|
89
|
+
<q-radio
|
|
90
|
+
dense
|
|
91
|
+
v-model="type"
|
|
92
|
+
val="standard"
|
|
93
|
+
label="Default/Standard"
|
|
94
|
+
/>
|
|
95
|
+
<q-radio
|
|
96
|
+
dense
|
|
97
|
+
v-model="type"
|
|
98
|
+
val="flat"
|
|
99
|
+
label="Flat"
|
|
100
|
+
class="q-pa-sm"
|
|
101
|
+
/>
|
|
102
|
+
<q-radio dense v-model="type" val="outline" label="Outline" />
|
|
103
|
+
</div>
|
|
104
|
+
</div>
|
|
105
|
+
|
|
106
|
+
<div class="column">
|
|
107
|
+
<span class="text-grey-8 text-caption-sm">Icons</span>
|
|
108
|
+
<div>
|
|
109
|
+
<q-checkbox
|
|
110
|
+
size="xs"
|
|
111
|
+
v-model="iconLeft"
|
|
112
|
+
val="fa-kit-duotone fa-triangle-exclamation"
|
|
113
|
+
label="Left Icon"
|
|
114
|
+
/>
|
|
115
|
+
<q-checkbox
|
|
116
|
+
size="xs"
|
|
117
|
+
v-model="iconRight"
|
|
118
|
+
val="fa-kit-duotone fa-triangle-exclamation"
|
|
119
|
+
label="Right Icon"
|
|
120
|
+
/>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
|
|
124
|
+
<div>
|
|
125
|
+
<q-checkbox size="xs" v-model="fullWidth" label="Full Width" />
|
|
126
|
+
</div>
|
|
127
|
+
<div>
|
|
128
|
+
<q-checkbox size="xs" v-model="disabled" label="Disable" />
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
</template>
|
|
132
|
+
|
|
133
|
+
<template v-slot:code>
|
|
134
|
+
<pre><code>{{ htmlContent }}</code></pre>
|
|
135
|
+
</template>
|
|
136
|
+
</ComponentBase>
|
|
137
|
+
</q-page>
|
|
138
|
+
</template>
|