vueless 0.0.233 → 0.0.235
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/preset.tailwind/index.js +15 -12
- package/ui.button/configs/default.config.js +7 -3
- package/ui.button/index.stories.js +3 -0
- package/ui.button/index.vue +8 -0
- package/ui.button-link/configs/default.config.js +5 -5
- package/ui.form-calendar/components/MonthView.vue +1 -0
- package/ui.form-calendar/components/YearView.vue +2 -1
- package/ui.form-calendar/configs/default.config.js +1 -1
- package/ui.form-calendar/index.vue +4 -0
- package/ui.form-date-picker-range/configs/default.config.js +2 -3
- package/ui.form-date-picker-range/index.vue +10 -1
- package/ui.form-input-search/configs/default.config.js +1 -1
- package/ui.form-input-search/index.stories.js +2 -1
- package/ui.form-input-search/index.vue +1 -0
- package/ui.text-alert/index.vue +3 -2
- package/web-types.json +10 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vueless",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.235",
|
|
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.43",
|
|
41
41
|
"@vueless/storybook": "^0.0.34",
|
|
42
42
|
"@vueless/web-types": "^0.0.13",
|
|
43
43
|
"autoprefixer": "^10.4.19",
|
package/preset.tailwind/index.js
CHANGED
|
@@ -9,6 +9,20 @@ import {
|
|
|
9
9
|
} from "../constants/index.js";
|
|
10
10
|
|
|
11
11
|
const safelist = getSafelist();
|
|
12
|
+
const isStrategyOverride = process.env.VUELESS_STRATEGY === "override";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Vueless Tailwind CSS `content` config.
|
|
16
|
+
* Use it to extend project Tailwind CSS `content` config.
|
|
17
|
+
*/
|
|
18
|
+
export const vuelessContent = [
|
|
19
|
+
"./index.html",
|
|
20
|
+
"./src/**/*.{js,ts,jsx,tsx,vue}",
|
|
21
|
+
"./vueless.config.{js,ts}",
|
|
22
|
+
"./node_modules/vueless/**/*.{js,ts,vue}",
|
|
23
|
+
...(isStrategyOverride ? ["!./src/**/ui.*/**/configs/default.config.js"] : []),
|
|
24
|
+
...(isStrategyOverride ? ["!./node_modules/vueless/**/ui.*/**/configs/default.config.js"] : []),
|
|
25
|
+
];
|
|
12
26
|
|
|
13
27
|
/**
|
|
14
28
|
* Generates preset for TailwindCSS base on Vueless config.
|
|
@@ -17,12 +31,7 @@ const safelist = getSafelist();
|
|
|
17
31
|
export function vuelessPreset() {
|
|
18
32
|
return {
|
|
19
33
|
darkMode: DARK_MODE_SELECTOR,
|
|
20
|
-
content:
|
|
21
|
-
"./index.html",
|
|
22
|
-
"./src/**/*.{js,ts,jsx,tsx,vue}",
|
|
23
|
-
"./vueless.config.{js,ts}",
|
|
24
|
-
"./node_modules/vueless/**/*.{js,ts,vue}",
|
|
25
|
-
],
|
|
34
|
+
content: vuelessContent,
|
|
26
35
|
safelist,
|
|
27
36
|
theme: {
|
|
28
37
|
extend: {
|
|
@@ -46,12 +55,6 @@ export function vuelessPreset() {
|
|
|
46
55
|
ringOffsetWidth: {
|
|
47
56
|
dynamic: "var(--vl-ring-offset)",
|
|
48
57
|
},
|
|
49
|
-
ringWidth: {
|
|
50
|
-
dynamic: "var(--vl-ring)",
|
|
51
|
-
},
|
|
52
|
-
ringOffsetWidth: {
|
|
53
|
-
dynamic: "var(--vl-ring-offset)",
|
|
54
|
-
},
|
|
55
58
|
borderRadius: {
|
|
56
59
|
dynamic: "var(--vl-rounding)",
|
|
57
60
|
},
|
|
@@ -42,6 +42,10 @@ export default /*tw*/ {
|
|
|
42
42
|
disabled:text-{color}-300
|
|
43
43
|
`,
|
|
44
44
|
},
|
|
45
|
+
color: {
|
|
46
|
+
grayscale: "focus:ring-gray-800 focus-within:ring-gray-800 disabled:text-gray-400",
|
|
47
|
+
white: "focus:ring-gray-800 focus-within:ring-gray-800 disabled:text-gray-400",
|
|
48
|
+
},
|
|
45
49
|
loading: {
|
|
46
50
|
true: "pointer-events-none gap-0",
|
|
47
51
|
},
|
|
@@ -52,9 +56,8 @@ export default /*tw*/ {
|
|
|
52
56
|
block: {
|
|
53
57
|
true: "w-full",
|
|
54
58
|
},
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
white: "focus:ring-gray-800 focus-within:ring-gray-800 disabled:text-gray-400",
|
|
59
|
+
noRing: {
|
|
60
|
+
true: "focus:ring-0 focus:ring-offset-0 focus-within:ring-0 focus-within:ring-offset-0",
|
|
58
61
|
},
|
|
59
62
|
},
|
|
60
63
|
compoundVariants: [
|
|
@@ -160,6 +163,7 @@ export default /*tw*/ {
|
|
|
160
163
|
block: false,
|
|
161
164
|
square: false,
|
|
162
165
|
filled: false,
|
|
166
|
+
noRing: false,
|
|
163
167
|
loading: false,
|
|
164
168
|
disabled: false,
|
|
165
169
|
},
|
|
@@ -116,6 +116,9 @@ pilled.args = { pill: true };
|
|
|
116
116
|
export const disabled = VariantsTemplate.bind({});
|
|
117
117
|
disabled.args = { disabled: true };
|
|
118
118
|
|
|
119
|
+
export const noRing = DefaultTemplate.bind({});
|
|
120
|
+
noRing.args = { noRing: true };
|
|
121
|
+
|
|
119
122
|
export const colors = ColorTemplate.bind({});
|
|
120
123
|
colors.args = {};
|
|
121
124
|
|
package/ui.button/index.vue
CHANGED
|
@@ -200,6 +200,14 @@ const props = defineProps({
|
|
|
200
200
|
default: UIService.get(defaultConfig, UButton).default.loading,
|
|
201
201
|
},
|
|
202
202
|
|
|
203
|
+
/**
|
|
204
|
+
* Remove outline ring on focus.
|
|
205
|
+
*/
|
|
206
|
+
noRing: {
|
|
207
|
+
type: Boolean,
|
|
208
|
+
default: UIService.get(defaultConfig, UButton).default.noRing,
|
|
209
|
+
},
|
|
210
|
+
|
|
203
211
|
/**
|
|
204
212
|
* Generates unique element id.
|
|
205
213
|
* @ignore
|
|
@@ -12,12 +12,12 @@ export default /*tw*/ {
|
|
|
12
12
|
disabled: {
|
|
13
13
|
true: "pointer-events-none opacity-70",
|
|
14
14
|
},
|
|
15
|
-
noRing: {
|
|
16
|
-
true: "focus-within:ring-0 focus-within:ring-offset-0",
|
|
17
|
-
},
|
|
18
15
|
block: {
|
|
19
16
|
true: "w-full",
|
|
20
17
|
},
|
|
18
|
+
noRing: {
|
|
19
|
+
true: "focus-within:ring-0 focus-within:ring-offset-0",
|
|
20
|
+
},
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
23
|
link: {
|
|
@@ -26,7 +26,7 @@ export default /*tw*/ {
|
|
|
26
26
|
text-{color}-500 decoration-{color}-500 underline-offset-4
|
|
27
27
|
hover:text-opacity-80
|
|
28
28
|
active:text-opacity-70
|
|
29
|
-
focus:ring-
|
|
29
|
+
focus:ring-0 focus:ring-offset-0
|
|
30
30
|
`,
|
|
31
31
|
variants: {
|
|
32
32
|
size: {
|
|
@@ -49,7 +49,7 @@ export default /*tw*/ {
|
|
|
49
49
|
},
|
|
50
50
|
},
|
|
51
51
|
text: "w-full",
|
|
52
|
-
withSlots: "flex items-center no-underline hover:no-underline focus-within:ring-
|
|
52
|
+
withSlots: "flex items-center no-underline hover:no-underline focus-within:ring-0 focus-within:ring-offset-0",
|
|
53
53
|
leftSlot: "mr-1",
|
|
54
54
|
rightSlot: "ml-1",
|
|
55
55
|
defaultVariants: {
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
<UButton
|
|
4
4
|
v-for="year in years"
|
|
5
5
|
:key="year"
|
|
6
|
-
|
|
6
|
+
no-ring
|
|
7
7
|
color="brand"
|
|
8
|
+
variant="thirdary"
|
|
8
9
|
:disabled="dateIsOutOfRange(year, minDate, maxDate, locale, dateFormat)"
|
|
9
10
|
v-bind="yearAttrs(getYearClasses(year))"
|
|
10
11
|
:label="formatDate(year, 'Y', props.locale)"
|
|
@@ -47,7 +47,7 @@ export default /*tw*/ {
|
|
|
47
47
|
timepickerInput: " w-11 border-none px-2.5 py-1.5 text-center text-sm focus:ring-brand-500",
|
|
48
48
|
timepickerLeftInput: "rounded-l-dynamic",
|
|
49
49
|
timepickerRightInput: " rounded-r-dynamic",
|
|
50
|
-
timepickerSubmitButton: "py-2
|
|
50
|
+
timepickerSubmitButton: "{UButton} py-2 border-0",
|
|
51
51
|
i18n: {
|
|
52
52
|
weekdays: {
|
|
53
53
|
shorthand: {
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
color="gray"
|
|
12
12
|
square
|
|
13
13
|
variant="thirdary"
|
|
14
|
+
no-ring
|
|
14
15
|
v-bind="navigationSwitchViewButtonAttrs"
|
|
15
16
|
@mousedown.prevent.capture
|
|
16
17
|
@click="onClickViewSwitch"
|
|
@@ -41,6 +42,7 @@
|
|
|
41
42
|
size="xs"
|
|
42
43
|
square
|
|
43
44
|
variant="thirdary"
|
|
45
|
+
no-ring
|
|
44
46
|
v-bind="nextPrevButtonAttrs"
|
|
45
47
|
@mousedown.prevent.capture
|
|
46
48
|
@click="onClickPrevButton"
|
|
@@ -61,6 +63,7 @@
|
|
|
61
63
|
size="xs"
|
|
62
64
|
square
|
|
63
65
|
variant="thirdary"
|
|
66
|
+
no-ring
|
|
64
67
|
v-bind="nextPrevButtonAttrs"
|
|
65
68
|
@mousedown.prevent.capture
|
|
66
69
|
@click="onClickNextButton"
|
|
@@ -144,6 +147,7 @@
|
|
|
144
147
|
size="sm"
|
|
145
148
|
square
|
|
146
149
|
filled
|
|
150
|
+
no-ring
|
|
147
151
|
v-bind="timepickerSubmitButtonAttrs"
|
|
148
152
|
@click="onClickSubmit"
|
|
149
153
|
>
|
|
@@ -5,13 +5,12 @@ export default /*tw*/ {
|
|
|
5
5
|
flex rounded-dynamic max-md:justify-between
|
|
6
6
|
focus-within:ring-dynamic focus-within:ring-offset-dynamic focus-within:ring-brand-700 focus-within:ring-opacity-20
|
|
7
7
|
`,
|
|
8
|
-
button: "{UButton} shrink-0 grow rounded-none
|
|
8
|
+
button: "{UButton} shrink-0 grow rounded-none",
|
|
9
9
|
buttonActive: "",
|
|
10
10
|
buttonWrapperActive: "ring-dynamic ring-offset-dynamic ring-brand-700 ring-opacity-20",
|
|
11
11
|
shiftRangeButton: `
|
|
12
12
|
first:rounded-dynamic first:rounded-r-none
|
|
13
13
|
last:rounded-dynamic last:rounded-l-none
|
|
14
|
-
focus:ring-0 focus:ring-offset-0
|
|
15
14
|
`,
|
|
16
15
|
nextIconName: "keyboard_arrow_right",
|
|
17
16
|
prevIconName: "keyboard_arrow_left",
|
|
@@ -36,7 +35,7 @@ export default /*tw*/ {
|
|
|
36
35
|
leaveToClass: "opacity-0 scale-95",
|
|
37
36
|
},
|
|
38
37
|
periodsRow: "mb-1 flex min-w-64 gap-1",
|
|
39
|
-
periodButton: "{UButton} h-[3.125rem] w-full
|
|
38
|
+
periodButton: "{UButton} h-[3.125rem] w-full",
|
|
40
39
|
periodButtonIconName: "apps",
|
|
41
40
|
periodButtonActive: "!bg-opacity-20",
|
|
42
41
|
rangeSwitchWrapper: "flex items-center justify-between py-2",
|
|
@@ -32,10 +32,11 @@
|
|
|
32
32
|
<UButton
|
|
33
33
|
ref="buttonPrevRef"
|
|
34
34
|
square
|
|
35
|
+
filled
|
|
36
|
+
no-ring
|
|
35
37
|
:size="size"
|
|
36
38
|
:disabled="disabled"
|
|
37
39
|
variant="thirdary"
|
|
38
|
-
filled
|
|
39
40
|
:icon-left="config.prevIconName"
|
|
40
41
|
v-bind="shiftRangeButtonAttrs"
|
|
41
42
|
@click="onClickShiftRange('prev')"
|
|
@@ -46,6 +47,7 @@
|
|
|
46
47
|
ref="buttonRef"
|
|
47
48
|
square
|
|
48
49
|
filled
|
|
50
|
+
no-ring
|
|
49
51
|
:size="size"
|
|
50
52
|
:disabled="disabled"
|
|
51
53
|
:label="userFormatDate"
|
|
@@ -58,6 +60,7 @@
|
|
|
58
60
|
ref="buttonNextRef"
|
|
59
61
|
square
|
|
60
62
|
filled
|
|
63
|
+
no-ring
|
|
61
64
|
:size="size"
|
|
62
65
|
:disabled="disabled"
|
|
63
66
|
variant="thirdary"
|
|
@@ -82,6 +85,7 @@
|
|
|
82
85
|
:key="periodButton.name"
|
|
83
86
|
square
|
|
84
87
|
filled
|
|
88
|
+
no-ring
|
|
85
89
|
size="xs"
|
|
86
90
|
variant="thirdary"
|
|
87
91
|
:label="periodButton.title"
|
|
@@ -95,6 +99,7 @@
|
|
|
95
99
|
v-if="customRangeButton.range.to && customRangeButton.range.from"
|
|
96
100
|
square
|
|
97
101
|
filled
|
|
102
|
+
no-ring
|
|
98
103
|
size="xs"
|
|
99
104
|
variant="thirdary"
|
|
100
105
|
v-bind="periodButtonAttrs(getPeriodButtonsClasses(PERIOD.custom))"
|
|
@@ -107,6 +112,7 @@
|
|
|
107
112
|
<UButton
|
|
108
113
|
square
|
|
109
114
|
filled
|
|
115
|
+
no-ring
|
|
110
116
|
size="xs"
|
|
111
117
|
variant="thirdary"
|
|
112
118
|
:label="locale.ownRange"
|
|
@@ -120,6 +126,7 @@
|
|
|
120
126
|
<div v-bind="rangeSwitchWrapperAttrs">
|
|
121
127
|
<UButton
|
|
122
128
|
square
|
|
129
|
+
no-ring
|
|
123
130
|
size="xs"
|
|
124
131
|
color="gray"
|
|
125
132
|
variant="thirdary"
|
|
@@ -134,6 +141,7 @@
|
|
|
134
141
|
|
|
135
142
|
<UButton
|
|
136
143
|
square
|
|
144
|
+
no-ring
|
|
137
145
|
size="xs"
|
|
138
146
|
color="gray"
|
|
139
147
|
variant="thirdary"
|
|
@@ -147,6 +155,7 @@
|
|
|
147
155
|
<UButton
|
|
148
156
|
v-for="date in periodDateList"
|
|
149
157
|
:key="date.title"
|
|
158
|
+
no-ring
|
|
150
159
|
size="sm"
|
|
151
160
|
variant="thirdary"
|
|
152
161
|
:disabled="isDatePeriodOutOfRange(date)"
|
|
@@ -11,7 +11,7 @@ export default /*tw*/ {
|
|
|
11
11
|
closeIconName: "close",
|
|
12
12
|
searchIcon: "{UIcon}",
|
|
13
13
|
searchIconName: "search",
|
|
14
|
-
button: "{UButton} rounded-l-none ml-1
|
|
14
|
+
button: "{UButton} rounded-l-none ml-1 outline outline-1 outline-gray-900",
|
|
15
15
|
defaultVariants: {
|
|
16
16
|
size: "md",
|
|
17
17
|
labelAlign: "topInside",
|
package/ui.text-alert/index.vue
CHANGED
package/web-types.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"framework": "vue",
|
|
3
3
|
"name": "vueless",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.235",
|
|
5
5
|
"contributions": {
|
|
6
6
|
"html": {
|
|
7
7
|
"description-markup": "markdown",
|
|
@@ -890,6 +890,15 @@
|
|
|
890
890
|
},
|
|
891
891
|
"default": "false"
|
|
892
892
|
},
|
|
893
|
+
{
|
|
894
|
+
"name": "noRing",
|
|
895
|
+
"description": "Remove outline ring on focus.",
|
|
896
|
+
"value": {
|
|
897
|
+
"kind": "expression",
|
|
898
|
+
"type": "boolean"
|
|
899
|
+
},
|
|
900
|
+
"default": "false"
|
|
901
|
+
},
|
|
893
902
|
{
|
|
894
903
|
"name": "id",
|
|
895
904
|
"description": "@ignore: Generates unique element id.",
|