vueless 0.0.217 → 0.0.218
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/package.json +2 -2
- package/ui.button/configs/default.config.js +19 -19
- package/ui.button-link/configs/default.config.js +6 -13
- package/ui.button-link/index.vue +1 -1
- package/ui.button-toggle/index.vue +1 -1
- package/ui.container-page/configs/default.config.js +1 -1
- package/ui.dropdown-button/index.vue +6 -3
- package/ui.dropdown-item/configs/default.config.js +3 -3
- package/ui.dropdown-link/index.vue +1 -1
- package/ui.dropdown-list/configs/default.config.js +10 -10
- package/ui.dropdown-list/index.vue +1 -1
- package/ui.form-calendar/index.vue +1 -1
- package/ui.form-checkbox/configs/default.config.js +8 -12
- package/ui.form-checkbox/index.vue +5 -7
- package/ui.form-checkbox-group/configs/default.config.js +10 -1
- package/ui.form-checkbox-group/index.stories.js +21 -28
- package/ui.form-checkbox-group/index.vue +3 -3
- package/ui.form-date-picker-range/configs/default.config.js +1 -1
- package/ui.form-date-picker-range/index.vue +28 -21
- package/ui.form-input/composables/attrs.composable.js +10 -10
- package/ui.form-input/configs/default.config.js +20 -15
- package/ui.form-input/index.vue +2 -1
- package/ui.form-input-file/configs/default.config.js +9 -18
- package/ui.form-input-file/index.vue +1 -1
- package/ui.form-input-money/index.vue +1 -1
- package/ui.form-input-rating/index.vue +1 -1
- package/ui.form-input-search/index.vue +1 -1
- package/ui.form-label/configs/default.config.js +40 -48
- package/ui.form-label/index.vue +10 -2
- package/ui.form-radio/configs/default.config.js +5 -10
- package/ui.form-radio/index.vue +3 -3
- package/ui.form-radio-group/configs/default.config.js +3 -4
- package/ui.form-radio-group/index.stories.js +7 -15
- package/ui.form-radio-group/index.vue +1 -1
- package/ui.form-select/configs/default.config.js +15 -21
- package/ui.form-select/index.vue +2 -2
- package/ui.form-switch/configs/default.config.js +14 -14
- package/ui.form-switch/index.vue +1 -1
- package/ui.form-textarea/configs/default.config.js +11 -16
- package/ui.form-textarea/index.vue +1 -1
- package/ui.image-icon/configs/default.config.js +11 -11
- package/ui.text-badge/configs/default.config.js +4 -4
- package/ui.text-block/configs/default.config.js +3 -4
- package/ui.text-block/index.vue +1 -1
- package/ui.text-empty/configs/default.config.js +12 -12
- package/ui.text-empty/index.vue +16 -9
- package/ui.text-file/configs/default.config.js +13 -4
- package/ui.text-file/index.vue +12 -2
- package/ui.text-files/configs/default.config.js +3 -10
- package/ui.text-files/index.vue +1 -1
- package/ui.text-money/configs/default.config.js +7 -8
- package/ui.text-money/index.stories.js +2 -9
- package/web-types.json +39 -30
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vueless",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.218",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Vue Styleless Component Framework.",
|
|
6
6
|
"homepage": "https://vueless.com",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"@release-it/bumper": "^6.0.1",
|
|
38
38
|
"@vitejs/plugin-vue": "^5.0.5",
|
|
39
39
|
"@vue/eslint-config-prettier": "^9.0.0",
|
|
40
|
-
"@vueless/plugin-vite": "^0.0.
|
|
40
|
+
"@vueless/plugin-vite": "^0.0.38",
|
|
41
41
|
"@vueless/storybook": "^0.0.34",
|
|
42
42
|
"@vueless/web-types": "^0.0.13",
|
|
43
43
|
"autoprefixer": "^10.4.19",
|
|
@@ -10,12 +10,12 @@ export default /*tw*/ {
|
|
|
10
10
|
`,
|
|
11
11
|
variants: {
|
|
12
12
|
size: {
|
|
13
|
-
"2xs": "px-
|
|
14
|
-
xs: "px-
|
|
15
|
-
sm: "px-
|
|
16
|
-
md: "px-
|
|
17
|
-
lg: "px-
|
|
18
|
-
xl: "px-
|
|
13
|
+
"2xs": "px-2 py-1 text-xs leading-tight gap-0.5",
|
|
14
|
+
xs: "px-3 py-1.5 text-xs leading-tight gap-0.5",
|
|
15
|
+
sm: "px-4 py-2 text-sm leading-tight gap-1",
|
|
16
|
+
md: "px-5 py-3 text-sm leading-tight gap-1",
|
|
17
|
+
lg: "px-6 py-3.5 text-base leading-tight gap-1.5",
|
|
18
|
+
xl: "px-7 py-4 text-base leading-tight gap-1.5",
|
|
19
19
|
},
|
|
20
20
|
variant: {
|
|
21
21
|
primary: `
|
|
@@ -132,22 +132,22 @@ export default /*tw*/ {
|
|
|
132
132
|
{ filled: true, variant: "thirdary", color: "white", class: "bg-gray-50" },
|
|
133
133
|
{ square: true, size: "2xs", class: "p-1" },
|
|
134
134
|
{ square: true, size: "xs", class: "p-1.5" },
|
|
135
|
-
{ square: true, size: "sm", class: "p-2
|
|
136
|
-
{ square: true, size: "md", class: "p-3
|
|
137
|
-
{ square: true, size: "lg", class: "p-
|
|
138
|
-
{ square: true, size: "xl", class: "p-
|
|
135
|
+
{ square: true, size: "sm", class: "p-2" },
|
|
136
|
+
{ square: true, size: "md", class: "p-3" },
|
|
137
|
+
{ square: true, size: "lg", class: "p-3.5" },
|
|
138
|
+
{ square: true, size: "xl", class: "p-4" },
|
|
139
139
|
{ iconLeft: true, size: "2xs", class: "pl-1" },
|
|
140
140
|
{ iconLeft: true, size: "xs", class: "pl-1.5" },
|
|
141
|
-
{ iconLeft: true, size: "sm", class: "pl-2
|
|
142
|
-
{ iconLeft: true, size: "md", class: "pl-
|
|
143
|
-
{ iconLeft: true, size: "lg", class: "pl-
|
|
144
|
-
{ iconLeft: true, size: "xl", class: "pl-
|
|
141
|
+
{ iconLeft: true, size: "sm", class: "pl-2" },
|
|
142
|
+
{ iconLeft: true, size: "md", class: "pl-4" },
|
|
143
|
+
{ iconLeft: true, size: "lg", class: "pl-3.5" },
|
|
144
|
+
{ iconLeft: true, size: "xl", class: "pl-4" },
|
|
145
145
|
{ iconRight: true, size: "2xs", class: "pr-1" },
|
|
146
|
-
{ iconRight: true, size: "xs", class: "pr-
|
|
147
|
-
{ iconRight: true, size: "sm", class: "pr-
|
|
148
|
-
{ iconRight: true, size: "md", class: "pr-
|
|
149
|
-
{ iconRight: true, size: "lg", class: "pr-
|
|
150
|
-
{ iconRight: true, size: "xl", class: "pr-
|
|
146
|
+
{ iconRight: true, size: "xs", class: "pr-2" },
|
|
147
|
+
{ iconRight: true, size: "sm", class: "pr-3" },
|
|
148
|
+
{ iconRight: true, size: "md", class: "pr-4" },
|
|
149
|
+
{ iconRight: true, size: "lg", class: "pr-5" },
|
|
150
|
+
{ iconRight: true, size: "xl", class: "pr-6" },
|
|
151
151
|
],
|
|
152
152
|
},
|
|
153
153
|
text: "whitespace-nowrap focus-visible:outline-none",
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
export default /*tw*/ {
|
|
2
2
|
wrapper: {
|
|
3
3
|
base: `
|
|
4
|
-
w-fit inline-flex rounded transition
|
|
5
|
-
focus-within:ring-4 focus-within:ring-{color}-500 focus-within:ring-opacity-15
|
|
4
|
+
w-fit inline-flex rounded transition focus-visible:outline-none
|
|
5
|
+
focus-within:ring-4 focus-within:ring-offset-4 focus-within:ring-{color}-500 focus-within:ring-opacity-15
|
|
6
6
|
`,
|
|
7
7
|
variants: {
|
|
8
|
-
size: {
|
|
9
|
-
xs: "focus-within:ring-offset-2",
|
|
10
|
-
sm: "focus-within:ring-offset-2",
|
|
11
|
-
md: "focus-within:ring-offset-4",
|
|
12
|
-
lg: "focus-within:ring-offset-4",
|
|
13
|
-
},
|
|
14
8
|
color: {
|
|
15
9
|
grayscale: "focus-within:ring-gray-900/10",
|
|
16
10
|
white: "focus-within:ring-white/10",
|
|
@@ -28,7 +22,7 @@ export default /*tw*/ {
|
|
|
28
22
|
},
|
|
29
23
|
link: {
|
|
30
24
|
base: `
|
|
31
|
-
w-full inline-block !leading-none transition
|
|
25
|
+
w-full inline-block cursor-pointer !leading-none transition
|
|
32
26
|
text-{color}-500 decoration-{color}-500 underline-offset-4
|
|
33
27
|
hover:text-opacity-80
|
|
34
28
|
active:text-opacity-70
|
|
@@ -36,10 +30,9 @@ export default /*tw*/ {
|
|
|
36
30
|
`,
|
|
37
31
|
variants: {
|
|
38
32
|
size: {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
lg: "text-lg",
|
|
33
|
+
sm: "text-xs",
|
|
34
|
+
md: "text-sm",
|
|
35
|
+
lg: "text-base",
|
|
43
36
|
},
|
|
44
37
|
underlined: {
|
|
45
38
|
undefined: "hover:decoration-solid hover:underline",
|
package/ui.button-link/index.vue
CHANGED
|
@@ -42,7 +42,7 @@ export default /*tw*/ {
|
|
|
42
42
|
backLinkIcon: "{UIcon}",
|
|
43
43
|
backLinkIconName: "arrow_back",
|
|
44
44
|
title: "{UHeader}",
|
|
45
|
-
description: "mt-1.5 text-base font-normal text-gray-
|
|
45
|
+
description: "mt-1.5 text-base font-normal text-gray-500",
|
|
46
46
|
headerRight: "",
|
|
47
47
|
footer: `mb-0 mt-14 justify-between pt-8 md:flex md:items-baseline space-y-4 md:space-y-0 border-t border-gray-200`,
|
|
48
48
|
footerLeft: "md:flex space-y-4 md:space-x-4 md:space-y-0",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
v-bind="buttonAttrs"
|
|
15
15
|
@click="onClickButton"
|
|
16
16
|
>
|
|
17
|
-
<template #right>
|
|
17
|
+
<template #icon-right>
|
|
18
18
|
<UIcon
|
|
19
19
|
v-if="!noIcon"
|
|
20
20
|
internal
|
|
@@ -114,7 +114,7 @@ const props = defineProps({
|
|
|
114
114
|
|
|
115
115
|
/**
|
|
116
116
|
* Button size.
|
|
117
|
-
* @values sm, md, lg
|
|
117
|
+
* @values 2xs, xs, sm, md, lg, xl
|
|
118
118
|
*/
|
|
119
119
|
size: {
|
|
120
120
|
type: String,
|
|
@@ -250,9 +250,12 @@ const iconColor = computed(() => {
|
|
|
250
250
|
|
|
251
251
|
const iconSize = computed(() => {
|
|
252
252
|
const sizes = {
|
|
253
|
-
|
|
253
|
+
"2xs": "xs",
|
|
254
|
+
xs: "xs",
|
|
255
|
+
sm: "sm",
|
|
254
256
|
md: "sm",
|
|
255
257
|
lg: "md",
|
|
258
|
+
xl: "md",
|
|
256
259
|
};
|
|
257
260
|
|
|
258
261
|
return sizes[props.size];
|
|
@@ -5,7 +5,7 @@ export default /*tw*/ {
|
|
|
5
5
|
overflow-auto [-webkit-overflow-scrolling:touch]
|
|
6
6
|
focus:outline-none
|
|
7
7
|
`,
|
|
8
|
-
list: "inline-block list-none align-top
|
|
8
|
+
list: "m-1 inline-block list-none align-top w-full p-0 bg-white opacity-1 hover:transition",
|
|
9
9
|
subGroupLabel: {
|
|
10
10
|
base: "pointer-events-none bg-transparent !font-medium !leading-none !uppercase !text-gray-500/[85] pt-1",
|
|
11
11
|
variants: {
|
|
@@ -28,16 +28,16 @@ export default /*tw*/ {
|
|
|
28
28
|
},
|
|
29
29
|
option: {
|
|
30
30
|
base: `
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
rounded px-3 py-2.5 flex items-center align-middle whitespace-nowrap cursor-pointer
|
|
32
|
+
font-normal !leading-none normal-case text-gray-900
|
|
33
|
+
hover:bg-gray-100
|
|
34
|
+
overflow-hidden text-ellipsis
|
|
35
|
+
`,
|
|
36
36
|
variants: {
|
|
37
37
|
size: {
|
|
38
|
-
sm: "text-
|
|
39
|
-
md: "text-
|
|
40
|
-
lg: "text-
|
|
38
|
+
sm: "text-xs",
|
|
39
|
+
md: "text-sm",
|
|
40
|
+
lg: "text-base",
|
|
41
41
|
},
|
|
42
42
|
disabled: {
|
|
43
43
|
true: "pointer-events-none",
|
|
@@ -45,7 +45,7 @@ export default /*tw*/ {
|
|
|
45
45
|
},
|
|
46
46
|
},
|
|
47
47
|
optionHighlight: "bg-gray-100",
|
|
48
|
-
optionSelected: "
|
|
48
|
+
optionSelected: "font-bold",
|
|
49
49
|
optionItem: "group/item block",
|
|
50
50
|
optionContent: "overflow-hidden text-ellipsis",
|
|
51
51
|
addTitleWrapper: `
|
|
@@ -265,7 +265,7 @@ const wrapperHeight = computed(() => {
|
|
|
265
265
|
.map((el) => el.getBoundingClientRect().height)
|
|
266
266
|
.reduce((acc, cur) => acc + cur, 0);
|
|
267
267
|
|
|
268
|
-
return props.visibleOptions === undefined ? "auto" : `${maxHeight}px`;
|
|
268
|
+
return props.visibleOptions === undefined ? "auto" : `${maxHeight + 10}px`;
|
|
269
269
|
});
|
|
270
270
|
|
|
271
271
|
function onClickAddOption() {
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
square
|
|
13
13
|
variant="thirdary"
|
|
14
14
|
v-bind="navigationSwitchViewButtonAttrs"
|
|
15
|
-
@click="onClickViewSwitch"
|
|
16
15
|
@mousedown.prevent.capture
|
|
16
|
+
@click="onClickViewSwitch"
|
|
17
17
|
>
|
|
18
18
|
<span v-if="isCurrentView.day" v-bind="dayViewSwitchLabelAttrs">
|
|
19
19
|
<span v-bind="dayViewSwitchLabelMonthAttrs" v-text="viewSwitchLabel.month" />
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
export default /*tw*/ {
|
|
2
|
-
label: "{ULabel}
|
|
2
|
+
label: "{ULabel}",
|
|
3
3
|
partialIconName: "remove",
|
|
4
4
|
selectedIconName: "check",
|
|
5
5
|
iconWrapper: {
|
|
6
6
|
base: "flex items-center justify-center absolute rounded bg-{color}-500",
|
|
7
7
|
variants: {
|
|
8
8
|
size: {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
lg: "size-7",
|
|
13
|
-
xl: "size-8",
|
|
9
|
+
sm: "size-4",
|
|
10
|
+
md: "size-5",
|
|
11
|
+
lg: "size-6",
|
|
14
12
|
},
|
|
15
13
|
color: {
|
|
16
14
|
grayscale: "border-gray-900 bg-gray-900",
|
|
@@ -29,11 +27,9 @@ export default /*tw*/ {
|
|
|
29
27
|
`,
|
|
30
28
|
variants: {
|
|
31
29
|
size: {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
lg: "size-7 text-lg",
|
|
36
|
-
xl: "size-8 text-xl",
|
|
30
|
+
sm: "size-4 text-xs",
|
|
31
|
+
md: "size-5 text-sm",
|
|
32
|
+
lg: "size-6 text-base",
|
|
37
33
|
},
|
|
38
34
|
color: {
|
|
39
35
|
grayscale: `
|
|
@@ -54,7 +50,7 @@ export default /*tw*/ {
|
|
|
54
50
|
defaultVariants: {
|
|
55
51
|
color: "brand",
|
|
56
52
|
size: "md",
|
|
57
|
-
labelAlign: "
|
|
53
|
+
labelAlign: "right",
|
|
58
54
|
partial: false,
|
|
59
55
|
disabled: false,
|
|
60
56
|
},
|
|
@@ -119,7 +119,7 @@ const props = defineProps({
|
|
|
119
119
|
|
|
120
120
|
/**
|
|
121
121
|
* Label placement.
|
|
122
|
-
* @values
|
|
122
|
+
* @values left, right
|
|
123
123
|
*/
|
|
124
124
|
labelAlign: {
|
|
125
125
|
type: String,
|
|
@@ -137,7 +137,7 @@ const props = defineProps({
|
|
|
137
137
|
|
|
138
138
|
/**
|
|
139
139
|
* Checkbox size.
|
|
140
|
-
* @values
|
|
140
|
+
* @values sm, md, lg
|
|
141
141
|
*/
|
|
142
142
|
size: {
|
|
143
143
|
type: String,
|
|
@@ -211,11 +211,9 @@ const { config, checkboxAttrs, iconWrapperAttrs, labelAttrs, iconAttrs } = useAt
|
|
|
211
211
|
|
|
212
212
|
const iconSize = computed(() => {
|
|
213
213
|
const sizes = {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
lg: "md",
|
|
218
|
-
xl: "lg",
|
|
214
|
+
sm: "2xs",
|
|
215
|
+
md: "xs",
|
|
216
|
+
lg: "sm",
|
|
219
217
|
};
|
|
220
218
|
|
|
221
219
|
return sizes[props.size];
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
export default /*tw*/ {
|
|
2
2
|
label: "{ULabel}",
|
|
3
|
-
list: "ml-4 flex flex-col gap-4 relative",
|
|
4
3
|
checkbox: "{UCheckbox}",
|
|
4
|
+
list: {
|
|
5
|
+
base: "flex flex-col",
|
|
6
|
+
variants: {
|
|
7
|
+
size: {
|
|
8
|
+
sm: "gap-1.5 mt-1",
|
|
9
|
+
md: "gap-2 mt-1.5",
|
|
10
|
+
lg: "gap-2.5 mt-2",
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
},
|
|
5
14
|
defaultVariants: {
|
|
6
15
|
color: "brand",
|
|
7
16
|
size: "md",
|
|
@@ -15,9 +15,9 @@ export default {
|
|
|
15
15
|
args: {
|
|
16
16
|
label: "Label",
|
|
17
17
|
options: [
|
|
18
|
-
{ label: "checkbox 1",
|
|
19
|
-
{ label: "checkbox 2",
|
|
20
|
-
{ label: "checkbox 3",
|
|
18
|
+
{ label: "checkbox 1", value: "1" },
|
|
19
|
+
{ label: "checkbox 2", value: "2" },
|
|
20
|
+
{ label: "checkbox 3", value: "3" },
|
|
21
21
|
],
|
|
22
22
|
value: ["One"],
|
|
23
23
|
},
|
|
@@ -40,18 +40,12 @@ const DefaultTemplate = (args) => ({
|
|
|
40
40
|
<URow class="!flex-col">
|
|
41
41
|
<UCheckboxGroup v-bind="args" v-model="value">
|
|
42
42
|
<template v-for="(radio, index) in args.options" :key="index">
|
|
43
|
-
<UCheckbox
|
|
44
|
-
v-bind="radio"
|
|
45
|
-
>
|
|
46
|
-
</UCheckbox>
|
|
43
|
+
<UCheckbox v-bind="radio"/>
|
|
47
44
|
</template>
|
|
48
45
|
</UCheckboxGroup>
|
|
49
46
|
|
|
50
47
|
<URow>
|
|
51
|
-
<UAlert
|
|
52
|
-
<b>NOTE:</b> <p>UCheckboxGroup component have to have unique name attribute</p>
|
|
53
|
-
</UAlert>
|
|
54
|
-
<UAlert color="blue">
|
|
48
|
+
<UAlert size="sm" color="blue">
|
|
55
49
|
<p>Selected value: {{ value }}</p>
|
|
56
50
|
</UAlert>
|
|
57
51
|
</URow>
|
|
@@ -72,7 +66,7 @@ const OptionsTemplate = (args) => ({
|
|
|
72
66
|
template: `
|
|
73
67
|
<URow class="!flex-col">
|
|
74
68
|
<UCheckboxGroup v-bind="args" v-model="value" :options="args.options" />
|
|
75
|
-
|
|
69
|
+
|
|
76
70
|
<URow>
|
|
77
71
|
<UAlert color="blue">
|
|
78
72
|
<p>Selected value: {{ value }}</p>
|
|
@@ -87,18 +81,17 @@ Default.args = {
|
|
|
87
81
|
name: "Default",
|
|
88
82
|
isDefaultStory: true,
|
|
89
83
|
options: [
|
|
90
|
-
{ name: "Default", label: "String",
|
|
91
|
-
{ name: "Default", label: "Boolean",
|
|
84
|
+
{ name: "Default", label: "String", value: "One" },
|
|
85
|
+
{ name: "Default", label: "Boolean", value: false },
|
|
92
86
|
{
|
|
93
87
|
name: "Default",
|
|
94
88
|
label: "Object",
|
|
95
|
-
|
|
89
|
+
|
|
96
90
|
value: { key: "value" },
|
|
97
91
|
},
|
|
98
92
|
{
|
|
99
93
|
name: "Default",
|
|
100
94
|
label: "Object",
|
|
101
|
-
description: "some description 4",
|
|
102
95
|
value: ["Array", 1],
|
|
103
96
|
},
|
|
104
97
|
],
|
|
@@ -129,15 +122,15 @@ const ColorsTemplate = (args, { argTypes } = {}) => ({
|
|
|
129
122
|
},
|
|
130
123
|
template: `
|
|
131
124
|
<URow class="!flex-col">
|
|
132
|
-
<UCheckboxGroup
|
|
125
|
+
<UCheckboxGroup
|
|
133
126
|
v-bind="args"
|
|
134
|
-
v-for="color in colors"
|
|
135
|
-
:key="color"
|
|
136
|
-
:label="color"
|
|
127
|
+
v-for="color in colors"
|
|
128
|
+
:key="color"
|
|
129
|
+
:label="color"
|
|
137
130
|
:color="color"
|
|
138
|
-
:options="args.options"
|
|
131
|
+
:options="args.options"
|
|
139
132
|
name="color"
|
|
140
|
-
v-model="value"
|
|
133
|
+
v-model="value"
|
|
141
134
|
/>
|
|
142
135
|
</URow>
|
|
143
136
|
`,
|
|
@@ -156,15 +149,15 @@ const SizesTemplate = (args, { argTypes } = {}) => ({
|
|
|
156
149
|
},
|
|
157
150
|
template: `
|
|
158
151
|
<URow class="!flex-col">
|
|
159
|
-
<UCheckboxGroup
|
|
152
|
+
<UCheckboxGroup
|
|
160
153
|
v-bind="args"
|
|
161
|
-
v-for="size in sizes"
|
|
162
|
-
:key="size"
|
|
163
|
-
:label="size"
|
|
154
|
+
v-for="size in sizes"
|
|
155
|
+
:key="size"
|
|
156
|
+
:label="size"
|
|
164
157
|
:size="size"
|
|
165
|
-
:options="args.options"
|
|
158
|
+
:options="args.options"
|
|
166
159
|
name="size"
|
|
167
|
-
v-model="value"
|
|
160
|
+
v-model="value"
|
|
168
161
|
/>
|
|
169
162
|
</URow>
|
|
170
163
|
`,
|
|
@@ -87,8 +87,8 @@ const props = defineProps({
|
|
|
87
87
|
},
|
|
88
88
|
|
|
89
89
|
/**
|
|
90
|
-
*
|
|
91
|
-
* @values
|
|
90
|
+
* Checkbox group size.
|
|
91
|
+
* @values sm, md, lg
|
|
92
92
|
*/
|
|
93
93
|
size: {
|
|
94
94
|
type: String,
|
|
@@ -96,7 +96,7 @@ const props = defineProps({
|
|
|
96
96
|
},
|
|
97
97
|
|
|
98
98
|
/**
|
|
99
|
-
*
|
|
99
|
+
* Checkbox group color.
|
|
100
100
|
* @values brand, grayscale, gray, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose
|
|
101
101
|
*/
|
|
102
102
|
color: {
|
|
@@ -40,7 +40,7 @@ export default /*tw*/ {
|
|
|
40
40
|
periodButtonIcon: "{UIcon}",
|
|
41
41
|
periodButtonIconName: "apps",
|
|
42
42
|
periodButtonActive: "bg-gray-200",
|
|
43
|
-
rangeSwitchWrapper: "
|
|
43
|
+
rangeSwitchWrapper: "flex items-center justify-between py-2",
|
|
44
44
|
rangeSwitchTitle: "font-medium text-sm",
|
|
45
45
|
nextIcon: "{UIcon}",
|
|
46
46
|
nextIconName: "keyboard_arrow_right",
|
|
@@ -82,21 +82,22 @@
|
|
|
82
82
|
<UButton
|
|
83
83
|
v-for="periodButton in periods"
|
|
84
84
|
:key="periodButton.name"
|
|
85
|
+
:label="periodButton.title"
|
|
85
86
|
variant="thirdary"
|
|
86
87
|
size="xs"
|
|
87
88
|
square
|
|
89
|
+
filled
|
|
88
90
|
color="brand"
|
|
89
91
|
v-bind="periodButtonAttrs(getPeriodButtonsClasses(periodButton.name))"
|
|
90
92
|
@click="onClickPeriodButton(periodButton.name)"
|
|
91
|
-
|
|
92
|
-
{{ periodButton.title }}
|
|
93
|
-
</UButton>
|
|
93
|
+
/>
|
|
94
94
|
</div>
|
|
95
95
|
|
|
96
96
|
<div v-bind="periodsRowAttrs">
|
|
97
97
|
<UButton
|
|
98
98
|
v-if="customRangeButton.range.to && customRangeButton.range.from"
|
|
99
99
|
variant="thirdary"
|
|
100
|
+
filled
|
|
100
101
|
color="brand"
|
|
101
102
|
v-bind="periodButtonAttrs(getPeriodButtonsClasses(PERIOD.custom))"
|
|
102
103
|
@click="onClickCustomRangeButton"
|
|
@@ -107,6 +108,8 @@
|
|
|
107
108
|
|
|
108
109
|
<UButton
|
|
109
110
|
variant="thirdary"
|
|
111
|
+
size="xs"
|
|
112
|
+
filled
|
|
110
113
|
color="brand"
|
|
111
114
|
v-bind="periodButtonAttrs(getPeriodButtonsClasses(PERIOD.ownRange))"
|
|
112
115
|
@click="onClickOwnRange"
|
|
@@ -123,29 +126,33 @@
|
|
|
123
126
|
|
|
124
127
|
<template v-if="!isPeriod.ownRange && !isPeriod.custom">
|
|
125
128
|
<div v-bind="rangeSwitchWrapperAttrs">
|
|
126
|
-
<
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
129
|
+
<UButton size="sm" color="brand" variant="thirdary" square>
|
|
130
|
+
<UIcon
|
|
131
|
+
internal
|
|
132
|
+
interactive
|
|
133
|
+
size="sm"
|
|
134
|
+
color="gray"
|
|
135
|
+
:name="config.prevIconName"
|
|
136
|
+
v-bind="prevIconAttrs"
|
|
137
|
+
@click="onClickShiftDatesList('prev')"
|
|
138
|
+
/>
|
|
139
|
+
</UButton>
|
|
135
140
|
|
|
136
141
|
<div v-bind="rangeSwitchTitleAttrs">
|
|
137
142
|
{{ rangeSwitchTitle }}
|
|
138
143
|
</div>
|
|
139
144
|
|
|
140
|
-
<
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
145
|
+
<UButton size="sm" color="brand" variant="thirdary" square>
|
|
146
|
+
<UIcon
|
|
147
|
+
internal
|
|
148
|
+
interactive
|
|
149
|
+
size="sm"
|
|
150
|
+
color="gray"
|
|
151
|
+
:name="config.nextIconName"
|
|
152
|
+
v-bind="nextIconAttrs"
|
|
153
|
+
@click="onClickShiftDatesList('next')"
|
|
154
|
+
/>
|
|
155
|
+
</UButton>
|
|
149
156
|
</div>
|
|
150
157
|
|
|
151
158
|
<div v-bind="periodDateListAttrs(getPeriodDateListClasses())">
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { computed } from "vue";
|
|
2
2
|
import useUI from "../../composable.ui";
|
|
3
|
-
import { cva
|
|
3
|
+
import { cva } from "../../service.ui";
|
|
4
4
|
import defaultConfig from "../configs/default.config";
|
|
5
5
|
|
|
6
|
-
export default function useAttrs(props
|
|
6
|
+
export default function useAttrs(props) {
|
|
7
7
|
const { config, getAttrs, hasSlotContent, isSystemKey } = useUI(
|
|
8
8
|
defaultConfig,
|
|
9
9
|
() => props.config,
|
|
@@ -29,14 +29,14 @@ export default function useAttrs(props, { inputPasswordClasses }) {
|
|
|
29
29
|
|
|
30
30
|
attrs[`${key}Attrs`] = getAttrs(key, { classes });
|
|
31
31
|
|
|
32
|
-
if (key === "input") {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
32
|
+
// if (key === "input") {
|
|
33
|
+
// const inputAttrs = attrs[`${key}Attrs`];
|
|
34
|
+
//
|
|
35
|
+
// attrs[`${key}Attrs`] = computed(() => ({
|
|
36
|
+
// ...inputAttrs.value,
|
|
37
|
+
// class: cx([inputAttrs.value.class]),
|
|
38
|
+
// }));
|
|
39
|
+
// }
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
return {
|