eco-vue-js 0.14.0 → 0.14.2

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 CHANGED
@@ -9,21 +9,14 @@ npm i eco-vue-js
9
9
 
10
10
  ### Tailwind configuration
11
11
 
12
- 1. Add the library's [Tailwind preset](https://tailwindcss.com/docs/presets) to your [Tailwind configuration file](https://tailwindcss.com/docs/content-configuration):
13
- ```
14
- import tailwindBase from 'eco-vue-js/tailwind-base'
15
-
16
- presets: [
17
- tailwindBase,
18
- ]
19
- ```
20
-
21
- 2. Add the following lines to the `content` section in your configuration file:
22
- ```
23
- content: [
24
- ...tailwindBase.content,
25
- ]
26
- ```
12
+ Requires Tailwind CSS v4. Import the library's base after Tailwind itself in your CSS entry:
13
+ ```css
14
+ @import "tailwindcss";
15
+ @import "eco-vue-js/tailwind-base/base.css";
16
+ ```
17
+
18
+ It brings the theme (colors, sizes, breakpoints, animations), the `w-*` utilities and the variants with
19
+ it, and registers the library's components as a source, so no Tailwind configuration file is needed.
27
20
 
28
21
  ### Import components
29
22
 
@@ -63,7 +63,7 @@ var WButtonMore_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
63
63
  "w-hover-circle": !__props.disabled,
64
64
  "text-description": !isOpen.value || __props.anchor,
65
65
  "text-primary dark:text-primary-dark": isOpen.value && !__props.anchor
66
- }]) }, [(openBlock(), createBlock(resolveDynamicComponent(__props.icon ?? unref(IconMore_default)), { class: "square-[1.25em]" }))], 2)]),
66
+ }]) }, [(openBlock(), createBlock(resolveDynamicComponent(__props.icon ?? unref(IconMore_default)), { class: "square-[1.125em]" }))], 2)]),
67
67
  content: withCtx(({ isTop, isRight, isLeft }) => [createVNode(WClickOutside_default, {
68
68
  "no-filter": "",
69
69
  class: normalizeClass(["bg-default dark:bg-default-dark overflow-hidden rounded-xl text-start font-normal shadow-md dark:border dark:border-solid dark:border-gray-800", {
@@ -106,8 +106,8 @@ var WButtonTab_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
106
106
  _: 1
107
107
  }),
108
108
  createVNode(Transition, {
109
- "enter-active-class": "transition-[transform,opacity] origin-center duration-300",
110
- "leave-active-class": "transition-[transform,opacity] origin-center duration-300",
109
+ "enter-active-class": "transition-[scale,opacity] origin-center duration-300",
110
+ "leave-active-class": "transition-[scale,opacity] origin-center duration-300",
111
111
  "enter-from-class": "scale-x-0 opacity-0",
112
112
  "leave-to-class": "scale-x-0 opacity-0",
113
113
  css: !__props.indicator
@@ -57,7 +57,7 @@ var WCheckbox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
57
57
  class: _ctx.$attrs.class,
58
58
  style: _ctx.$attrs.style
59
59
  }, {
60
- class: ["w-ripple-trigger w-hover-circle-trigger w-hover-circle-opacity-0.08 flex select-none gap-2 outline-none", {
60
+ class: ["w-ripple-trigger w-hover-circle-trigger w-hover-circle-opacity-8 flex select-none gap-2 outline-none", {
61
61
  "cursor-progress": __props.loading || unref(isSkeleton),
62
62
  "cursor-not-allowed opacity-70": unref(isDisabled) || unref(isSkeleton),
63
63
  "cursor-pointer": !unref(isDisabled) && !__props.loading && !unref(isReadonly) && !unref(isSkeleton),
@@ -86,10 +86,10 @@ var WCheckbox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
86
86
  onKeypress: withKeys(withModifiers(toggle, ["stop", "prevent"]), ["enter"])
87
87
  }, [
88
88
  createVNode(Transition, {
89
- "enter-active-class": "transition-[opacity,transform]",
90
- "leave-active-class": "transition-[opacity,transform]",
91
- "enter-from-class": __props.radio ? "opacity-0 scale-[0.25]!" : "opacity-0 scale-[0.50]!",
92
- "leave-to-class": __props.radio ? "opacity-0 scale-[0.25]!" : "opacity-0 scale-[0.50]!",
89
+ "enter-active-class": "transition-[scale,opacity]",
90
+ "leave-active-class": "transition-[scale,opacity]",
91
+ "enter-from-class": __props.radio ? "opacity-0 scale-25!" : "opacity-0 scale-50!",
92
+ "leave-to-class": __props.radio ? "opacity-0 scale-25!" : "opacity-0 scale-50!",
93
93
  css: !__props.lessTransitions
94
94
  }, {
95
95
  default: withCtx(() => [withDirectives(createElementVNode("div", { class: normalizeClass(["square-full absolute -z-10", {
@@ -99,7 +99,7 @@ var WCheckbox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
99
99
  "rounded": !__props.radio && !(__props.intermediate && __props.modelValue === null),
100
100
  "bg-primary dark:bg-primary-dark [.w-hover-checked:hover_&]:block!": !unref(isDisabled) && !unref(isSkeleton),
101
101
  "bg-gray-300 dark:bg-gray-700": unref(isDisabled) || unref(isSkeleton),
102
- "transition-[opacity,transform]": !__props.lessTransitions
102
+ "transition-[scale,opacity]": !__props.lessTransitions
103
103
  }]) }, null, 2), [[vShow, __props.modelValue !== false && !__props.loading]])]),
104
104
  _: 1
105
105
  }, 8, [
@@ -48,7 +48,7 @@ var WNotify_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
48
48
  default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(list.value, (config) => {
49
49
  return openBlock(), createElementBlock("div", {
50
50
  key: config.id,
51
- class: "grid justify-end transition-[opacity,transform,grid-template-rows] duration-500"
51
+ class: "grid justify-end transition-[translate,opacity,grid-template-rows] duration-500"
52
52
  }, [createElementVNode("div", _hoisted_1, [createVNode(NotifyCard_default, {
53
53
  title: config.title,
54
54
  caption: config.caption,
@@ -337,8 +337,8 @@ var WTabs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
337
337
  "--direction-factor": isDirect.value ? "1" : "-1"
338
338
  })
339
339
  }, [createVNode(TransitionGroup, {
340
- "enter-active-class": "transition-[transform,opacity] duration-250 w-full",
341
- "leave-active-class": "transition-[transform,opacity] duration-250 w-full absolute top-0",
340
+ "enter-active-class": "transition-[translate,opacity] duration-250 w-full",
341
+ "leave-active-class": "transition-[translate,opacity] duration-250 w-full absolute top-0",
342
342
  "enter-from-class": __props.lessTransitions || __props.side || unref(hasScrollbar) ? "opacity-0" : "opacity-0 translate-x-[calc((100%+var(--inner-margin))*var(--direction-factor))]",
343
343
  "leave-to-class": __props.lessTransitions || __props.side || unref(hasScrollbar) ? "opacity-0 absolute" : "opacity-0 translate-x-[calc((100%+var(--inner-margin))*var(--direction-factor)*-1)]",
344
344
  css: !__props.flat
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "type": "git",
5
5
  "url": "https://github.com/rsmple/eco-vue-js.git"
6
6
  },
7
- "version": "0.14.0",
7
+ "version": "0.14.2",
8
8
  "dependencies": {
9
9
  "@stylistic/eslint-plugin": "5.10.0",
10
10
  "@tanstack/eslint-plugin-query": "5.101.2",
@@ -1,14 +1,12 @@
1
- @theme {
2
- --color-*: initial;
3
- --font-*: initial;
4
- }
1
+ @import "./css/theme.css";
2
+ @import "./css/breakpoints.css";
3
+ @import "./css/animations.css";
4
+ @import "./css/default.css";
5
+ @import "./css/internal-variants.css";
6
+ @import "./css/internal-variables.css";
5
7
 
6
8
  @source "../dist/components";
7
9
 
8
- @plugin "./index.ts";
9
- @plugin "./plugins/default.ts";
10
- @plugin "./plugins/internal-variables.ts";
11
- @plugin "./plugins/internal-variants.ts";
12
10
  @plugin "./plugins/internal-classes.ts";
13
11
  @plugin "./plugins/text.ts";
14
12
  @plugin "./plugins/w-ripple.ts";
@@ -0,0 +1,124 @@
1
+ @theme {
2
+ --animate-ticker: ticker var(--tiker-duration, 0.8s) linear infinite;
3
+ --animate-ticker-rare: ticker-rare var(--tiker-duration, 10s) linear infinite;
4
+ --animate-move-horizontal: move-horizontal var(--tiker-duration, 0.8s) linear infinite;
5
+ --animate-shake: shake .6s linear infinite;
6
+ --animate-border-rotate: border-rotate linear infinite 10s;
7
+ --animate-dojo-logo-dashoffset: dojo-logo-dashoffset 1.6s linear 1;
8
+ --animate-spinner-dash: spinner-dash 1.6s linear infinite;
9
+ --animate-ping-fast: ping-big .5s cubic-bezier(0, 0, 0.2, 1);
10
+ --animate-ping-opacity: ping-opacity 1.2s linear infinite alternate-reverse;
11
+ --animate-spinner-dash-small: spinner-dash-small 1.6s linear infinite;
12
+
13
+ @keyframes ticker {
14
+ from {
15
+ transform: translateX(-100%);
16
+ }
17
+ to {
18
+ transform: translateX(100%);
19
+ }
20
+ }
21
+
22
+ @keyframes ticker-rare {
23
+ 0%, 45% {
24
+ transform: translateX(-100%);
25
+ }
26
+ 55%, 100% {
27
+ transform: translateX(100%);
28
+ }
29
+ }
30
+
31
+ @keyframes move-horizontal {
32
+ from {
33
+ transform: translateX(-40px);
34
+ }
35
+ to {
36
+ transform: translateX(0);
37
+ }
38
+ }
39
+
40
+ @keyframes shake {
41
+ 15% {
42
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
43
+ }
44
+ 30% {
45
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
46
+ }
47
+ 45% {
48
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
49
+ }
50
+ 60% {
51
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
52
+ }
53
+ 75% {
54
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
55
+ }
56
+ }
57
+
58
+ @keyframes border-rotate {
59
+ from {
60
+ stroke-dashoffset: var(--border-rotate-offset-from, 25);
61
+ }
62
+ to {
63
+ stroke-dashoffset: var(--border-rotate-offset-to, -100%);
64
+ }
65
+ }
66
+
67
+ @keyframes dojo-logo-dashoffset {
68
+ from {
69
+ stroke-dashoffset: 0;
70
+ }
71
+ to {
72
+ stroke-dashoffset: 880;
73
+ }
74
+ }
75
+
76
+ @keyframes spinner-dash {
77
+ 0% {
78
+ stroke-dasharray: 1, 200;
79
+ stroke-dashoffset: 0;
80
+ }
81
+ 50% {
82
+ stroke-dasharray: 89, 200;
83
+ stroke-dashoffset: -35px;
84
+ }
85
+ 100% {
86
+ stroke-dasharray: 89, 200;
87
+ stroke-dashoffset: -124px;
88
+ }
89
+ }
90
+
91
+ @keyframes spinner-dash-small {
92
+ 0% {
93
+ stroke-dasharray: 1, 69;
94
+ stroke-dashoffset: 0;
95
+ }
96
+ 50% {
97
+ stroke-dasharray: 30, 69;
98
+ stroke-dashoffset: -20px;
99
+ }
100
+ 100% {
101
+ stroke-dasharray: 30, 69;
102
+ stroke-dashoffset: -69px;
103
+ }
104
+ }
105
+
106
+ @keyframes ping-big {
107
+ 75%, 100% {
108
+ transform: scale(4);
109
+ opacity: 0;
110
+ }
111
+ }
112
+
113
+ @keyframes ping-opacity {
114
+ 0% {
115
+ opacity: 1;
116
+ }
117
+ 60% {
118
+ opacity: 1;
119
+ }
120
+ 100% {
121
+ opacity: 0.1;
122
+ }
123
+ }
124
+ }
@@ -0,0 +1,21 @@
1
+ @theme {
2
+ --breakpoint-xs: 480px;
3
+ --breakpoint-sm: 640px;
4
+ --breakpoint-md: 768px;
5
+ --breakpoint-lg: 1024px;
6
+ --breakpoint-xl: 1280px;
7
+ --breakpoint-2xl: 1536px;
8
+ --breakpoint-3xl: 1728px;
9
+ --breakpoint-4xl: 1920px;
10
+ --breakpoint-5xl: 2560px;
11
+ }
12
+
13
+ @custom-variant xs-not (@media (max-width: 479px));
14
+ @custom-variant sm-not (@media (max-width: 639px));
15
+ @custom-variant md-not (@media (max-width: 767px));
16
+ @custom-variant lg-not (@media (max-width: 1023px));
17
+ @custom-variant xl-not (@media (max-width: 1279px));
18
+ @custom-variant 2xl-not (@media (max-width: 1535px));
19
+ @custom-variant 3xl-not (@media (max-width: 1727px));
20
+ @custom-variant 4xl-not (@media (max-width: 1919px));
21
+ @custom-variant 5xl-not (@media (max-width: 2559px));
@@ -0,0 +1,127 @@
1
+ @utility square-* {
2
+ min-width: --spacing(--value(number));
3
+ max-width: --spacing(--value(number));
4
+ width: --spacing(--value(number));
5
+ height: --spacing(--value(number));
6
+ max-height: --spacing(--value(number));
7
+ min-height: --spacing(--value(number));
8
+
9
+ min-width: --value(--spacing-*, --w-size-*, [*]);
10
+ max-width: --value(--spacing-*, --w-size-*, [*]);
11
+ width: --value(--spacing-*, --w-size-*, [*]);
12
+ height: --value(--spacing-*, --w-size-*, [*]);
13
+ max-height: --value(--spacing-*, --w-size-*, [*]);
14
+ min-height: --value(--spacing-*, --w-size-*, [*]);
15
+
16
+ min-width: calc(--value(ratio) * 100%);
17
+ max-width: calc(--value(ratio) * 100%);
18
+ width: calc(--value(ratio) * 100%);
19
+ height: calc(--value(ratio) * 100%);
20
+ max-height: calc(--value(ratio) * 100%);
21
+ min-height: calc(--value(ratio) * 100%);
22
+ }
23
+
24
+ @utility width-* {
25
+ min-width: --spacing(--value(number));
26
+ max-width: --spacing(--value(number));
27
+ width: --spacing(--value(number));
28
+
29
+ min-width: --value(--spacing-*, --w-size-*, [*]);
30
+ max-width: --value(--spacing-*, --w-size-*, [*]);
31
+ width: --value(--spacing-*, --w-size-*, [*]);
32
+
33
+ min-width: calc(--value(ratio) * 100%);
34
+ max-width: calc(--value(ratio) * 100%);
35
+ width: calc(--value(ratio) * 100%);
36
+ }
37
+
38
+ @utility height-* {
39
+ min-height: --spacing(--value(number));
40
+ max-height: --spacing(--value(number));
41
+ height: --spacing(--value(number));
42
+
43
+ min-height: --value(--spacing-*, --w-size-*, [*]);
44
+ max-height: --value(--spacing-*, --w-size-*, [*]);
45
+ height: --value(--spacing-*, --w-size-*, [*]);
46
+
47
+ min-height: calc(--value(ratio) * 100%);
48
+ max-height: calc(--value(ratio) * 100%);
49
+ height: calc(--value(ratio) * 100%);
50
+ }
51
+
52
+ @utility grid-cols-fill-* {
53
+ grid-template-columns: repeat(auto-fill, minmax(--spacing(--value(number)), 1fr));
54
+ grid-template-columns: repeat(auto-fill, minmax(--value(--spacing-*, --w-size-*, [*]), 1fr));
55
+ }
56
+
57
+ @utility grid-cols-fit-* {
58
+ grid-template-columns: repeat(auto-fit, minmax(--spacing(--value(number)), 1fr));
59
+ grid-template-columns: repeat(auto-fit, minmax(--value(--spacing-*, --w-size-*, [*]), 1fr));
60
+ }
61
+
62
+ @utility stop-color-* {
63
+ stop-color: --value(--color-*, [color]);
64
+ stop-color: --alpha(--value(--color-*, [color]) / calc(--modifier(number) * 1%));
65
+ stop-color: --alpha(--value(--color-*, [color]) / --modifier([percentage], [*]));
66
+ }
67
+
68
+ @utility scrollbar-bar-color-* {
69
+ --scrollbar-bar-color: --value(--color-*, [color]);
70
+ --scrollbar-bar-color: --alpha(--value(--color-*, [color]) / calc(--modifier(number) * 1%));
71
+ --scrollbar-bar-color: --alpha(--value(--color-*, [color]) / --modifier([percentage], [*]));
72
+
73
+ scrollbar-color: var(--scrollbar-bar-color) var(--scrollbar-gutter-color);
74
+ }
75
+
76
+ @utility scrollbar-gutter-color-* {
77
+ --scrollbar-gutter-color: --value(--color-*, [color]);
78
+ --scrollbar-gutter-color: --alpha(--value(--color-*, [color]) / calc(--modifier(number) * 1%));
79
+ --scrollbar-gutter-color: --alpha(--value(--color-*, [color]) / --modifier([percentage], [*]));
80
+
81
+ scrollbar-color: var(--scrollbar-bar-color) var(--scrollbar-gutter-color);
82
+ }
83
+
84
+ @utility scrollbar-width-* {
85
+ scrollbar-width: --value('auto', 'none', 'thin');
86
+ }
87
+
88
+ @utility rounded-inherit {
89
+ border-radius: inherit;
90
+ }
91
+
92
+ @utility no-scrollbar {
93
+ scrollbar-width: none;
94
+ }
95
+
96
+ @utility overflow-y-overlay {
97
+ @supports (overflow: overlay) {
98
+ overflow-y: overlay;
99
+ }
100
+
101
+ @supports not (overflow: overlay) {
102
+ overflow-y: auto;
103
+ }
104
+ }
105
+
106
+ @utility overflow-x-overlay {
107
+ @supports (overflow: overlay) {
108
+ overflow-x: overlay;
109
+ }
110
+
111
+ @supports not (overflow: overlay) {
112
+ overflow-x: auto;
113
+ }
114
+ }
115
+
116
+ @custom-variant dark (.dark &:not(:is(.light *)));
117
+
118
+ @custom-variant supports-backdrop (@supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)));
119
+ @custom-variant supports-overlay (@supports (overflow: overlay));
120
+ @custom-variant supports-overlay-not (@supports (not (overflow: overlay)));
121
+ @custom-variant touch (.touch &);
122
+ @custom-variant touch-not (.touch-not &);
123
+ @custom-variant focus-within-not (&:not(:focus-within));
124
+ @custom-variant resizer (&::-webkit-resizer);
125
+ @custom-variant last-not (&:not(:last-child));
126
+ @custom-variant first-not (&:not(:first-child));
127
+ @custom-variant not-print (@media not print);
@@ -0,0 +1,279 @@
1
+ @theme inline {
2
+ --w-radius-none: 0;
3
+ --w-radius-full: calc(infinity * 1px);
4
+
5
+ --w-svg-stroke-3xs: 0.5;
6
+ --w-svg-stroke-2xs: 0.75;
7
+ --w-svg-stroke-xs: 1;
8
+ --w-svg-stroke-sm: 1.25;
9
+ --w-svg-stroke-md: 1.5;
10
+ }
11
+
12
+ /* Colors */
13
+
14
+ @utility w-has-changes-color-* {
15
+ --has-changes-bg: --value(--color-*, [color]);
16
+ --has-changes-bg: --alpha(--value(--color-*, [color]) / calc(--modifier(number) * 1%));
17
+ --has-changes-bg: --alpha(--value(--color-*, [color]) / --modifier([percentage], [*]));
18
+ }
19
+
20
+ @utility w-input-bg-* {
21
+ --w-input-bg: --value(--color-*, [color]);
22
+ --w-input-bg: --alpha(--value(--color-*, [color]) / calc(--modifier(number) * 1%));
23
+ --w-input-bg: --alpha(--value(--color-*, [color]) / --modifier([percentage], [*]));
24
+ }
25
+
26
+ @utility w-slider-from-* {
27
+ --w-slider-from: --value(--color-*, [color]);
28
+ --w-slider-from: --alpha(--value(--color-*, [color]) / calc(--modifier(number) * 1%));
29
+ --w-slider-from: --alpha(--value(--color-*, [color]) / --modifier([percentage], [*]));
30
+ }
31
+
32
+ @utility w-slider-to-* {
33
+ --w-slider-to: --value(--color-*, [color]);
34
+ --w-slider-to: --alpha(--value(--color-*, [color]) / calc(--modifier(number) * 1%));
35
+ --w-slider-to: --alpha(--value(--color-*, [color]) / --modifier([percentage], [*]));
36
+ }
37
+
38
+ @utility w-toggle-caret-* {
39
+ --w-toggle-caret: --value(--color-*, [color]);
40
+ --w-toggle-caret: --alpha(--value(--color-*, [color]) / calc(--modifier(number) * 1%));
41
+ --w-toggle-caret: --alpha(--value(--color-*, [color]) / --modifier([percentage], [*]));
42
+ }
43
+
44
+ @utility w-checkbox-color-* {
45
+ --w-checkbox-color: --value(--color-*, [color]);
46
+ --w-checkbox-color: --alpha(--value(--color-*, [color]) / calc(--modifier(number) * 1%));
47
+ --w-checkbox-color: --alpha(--value(--color-*, [color]) / --modifier([percentage], [*]));
48
+ }
49
+
50
+ @utility w-nav-item-dot-color-* {
51
+ --w-nav-item-dot-color: --value(--color-*, [color]);
52
+ --w-nav-item-dot-color: --alpha(--value(--color-*, [color]) / calc(--modifier(number) * 1%));
53
+ --w-nav-item-dot-color: --alpha(--value(--color-*, [color]) / --modifier([percentage], [*]));
54
+ }
55
+
56
+ @utility w-date-picker-day-* {
57
+ --w-date-picker-day: --value(--color-*, [color]);
58
+ --w-date-picker-day: --alpha(--value(--color-*, [color]) / calc(--modifier(number) * 1%));
59
+ --w-date-picker-day: --alpha(--value(--color-*, [color]) / --modifier([percentage], [*]));
60
+ }
61
+
62
+ @utility w-list-header-bg-* {
63
+ --w-list-header-bg: --value(--color-*, [color]);
64
+ --w-list-header-bg: --alpha(--value(--color-*, [color]) / calc(--modifier(number) * 1%));
65
+ --w-list-header-bg: --alpha(--value(--color-*, [color]) / --modifier([percentage], [*]));
66
+ }
67
+
68
+ /* Opacity */
69
+
70
+ @utility w-ripple-opacity-* {
71
+ --w-ripple-opacity: calc(--value(integer) * 1%);
72
+ --w-ripple-opacity: --value([percentage], [*]);
73
+ }
74
+
75
+ @utility w-hover-circle-opacity-* {
76
+ --w-hover-circle-opacity: calc(--value(integer) * 1%);
77
+ --w-hover-circle-opacity: --value([percentage], [*]);
78
+ }
79
+
80
+ @utility w-skeleton-opacity-* {
81
+ --w-skeleton-opacity: calc(--value(integer) * 1%);
82
+ --w-skeleton-opacity: --value([percentage], [*]);
83
+ }
84
+
85
+ /* Spacing */
86
+
87
+ @utility w-skeleton-w-* {
88
+ --skeleton-width: --spacing(--value(number));
89
+ --skeleton-width: --value(--spacing-*, --w-size-*, [*]);
90
+ }
91
+
92
+ @utility w-skeleton-h-* {
93
+ --skeleton-height: --spacing(--value(number));
94
+ --skeleton-height: --value(--spacing-*, --w-size-*, [*]);
95
+ }
96
+
97
+ @utility w-list-card-w-* {
98
+ --w-list-card-width: --spacing(--value(number));
99
+ --w-list-card-width: --value(--spacing-*, --w-size-*, [*]);
100
+ }
101
+
102
+ @utility w-checkbox-size-* {
103
+ --w-checkbox-size: --spacing(--value(number));
104
+ --w-checkbox-size: --value(--spacing-*, --w-size-*, [*]);
105
+ }
106
+
107
+ @utility w-input-gap-* {
108
+ --w-input-gap: --spacing(--value(number));
109
+ --w-input-gap: --value(--spacing-*, --w-size-*, [*]);
110
+ }
111
+
112
+ @utility w-spinner-size-* {
113
+ --w-spinner-size: --spacing(--value(number));
114
+ --w-spinner-size: --value(--spacing-*, --w-size-*, [*]);
115
+ }
116
+
117
+ @utility w-button-spinner-size-* {
118
+ --w-button-spinner-size: --spacing(--value(number));
119
+ --w-button-spinner-size: --value(--spacing-*, --w-size-*, [*]);
120
+ }
121
+
122
+ @utility w-modal-wrapper-p-* {
123
+ --w-modal-wrapper-padding: --spacing(--value(number));
124
+ --w-modal-wrapper-padding: --value(--spacing-*, --w-size-*, [*]);
125
+ }
126
+
127
+ @utility w-modal-wrapper-w-* {
128
+ --w-modal-wrapper-width: --spacing(--value(number));
129
+ --w-modal-wrapper-width: --value(--spacing-*, --w-size-*, [*]);
130
+ }
131
+
132
+ @utility w-modal-confirm-w-* {
133
+ --w-modal-confirm-width: --spacing(--value(number));
134
+ --w-modal-confirm-width: --value(--spacing-*, --w-size-*, [*]);
135
+ }
136
+
137
+ @utility w-list-header-h-* {
138
+ --w-list-header-height: --spacing(--value(number));
139
+ --w-list-header-height: --value(--spacing-*, --w-size-*, [*]);
140
+ }
141
+
142
+ @utility w-list-padding-* {
143
+ --w-list-padding: --spacing(--value(number));
144
+ --w-list-padding: --value(--spacing-*, --w-size-*, [*]);
145
+ }
146
+
147
+ @utility w-list-gap-* {
148
+ --w-list-gap: --spacing(--value(number));
149
+ --w-list-gap: --value(--spacing-*, --w-size-*, [*]);
150
+ }
151
+
152
+ @utility w-tabs-side-width-* {
153
+ --w-tabs-side-width: --spacing(--value(number));
154
+ --w-tabs-side-width: --value(--spacing-*, --w-size-*, [*]);
155
+ }
156
+
157
+ @utility w-dropdown-x-min-* {
158
+ --w-dropdown-x-min: --spacing(--value(number));
159
+ --w-dropdown-x-min: --value(--spacing-*, --w-size-*, [*]);
160
+ }
161
+
162
+ @utility w-dropdown-x-max-* {
163
+ --w-dropdown-x-max: --spacing(--value(number));
164
+ --w-dropdown-x-max: --value(--spacing-*, --w-size-*, [*]);
165
+ }
166
+
167
+ @utility w-dropdown-y-min-* {
168
+ --w-dropdown-y-min: --spacing(--value(number));
169
+ --w-dropdown-y-min: --value(--spacing-*, --w-size-*, [*]);
170
+ }
171
+
172
+ @utility w-dropdown-y-max-* {
173
+ --w-dropdown-y-max: --spacing(--value(number));
174
+ --w-dropdown-y-max: --value(--spacing-*, --w-size-*, [*]);
175
+ }
176
+
177
+ @utility w-chart-size-* {
178
+ --w-chart-size: --spacing(--value(number));
179
+ --w-chart-size: --value(--spacing-*, --w-size-*, [*]);
180
+ }
181
+
182
+ @utility w-chart-heatmap-size-* {
183
+ --w-chart-heatmap-size: --spacing(--value(number));
184
+ --w-chart-heatmap-size: --value(--spacing-*, --w-size-*, [*]);
185
+ }
186
+
187
+ @utility w-chart-heatmap-gap-* {
188
+ --w-chart-heatmap-gap: --spacing(--value(number));
189
+ --w-chart-heatmap-gap: --value(--spacing-*, --w-size-*, [*]);
190
+ }
191
+
192
+ @utility w-input-h-* {
193
+ --w-input-height: --spacing(--value(number));
194
+ --w-input-height: --value(--spacing-*, --w-size-*, [*]);
195
+ }
196
+
197
+ @utility w-input-min-h-* {
198
+ --w-input-min-height: --spacing(--value(number));
199
+ --w-input-min-height: --value(--spacing-*, --w-size-*, [*]);
200
+ }
201
+
202
+ @utility w-textarea-h-* {
203
+ --w-textarea-height: --spacing(--value(number));
204
+ --w-textarea-height: --value(--spacing-*, --w-size-*, [*]);
205
+ }
206
+
207
+ @utility w-button-h-* {
208
+ --w-button-height: --spacing(--value(number));
209
+ --w-button-height: --value(--spacing-*, --w-size-*, [*]);
210
+ }
211
+
212
+ @utility w-border-svg-padding-* {
213
+ --w-border-svg-padding: --spacing(--value(number));
214
+ --w-border-svg-padding: --value(--spacing-*, --w-size-*, [*]);
215
+ }
216
+
217
+ @utility w-input-rounded-* {
218
+ --w-input-rounded: --value(--radius-*, --w-radius-*, [*]);
219
+ }
220
+
221
+ @utility w-button-rounded-* {
222
+ --w-button-rounded: --value(--radius-*, --w-radius-*, [*]);
223
+ }
224
+
225
+ @utility w-skeleton-rounded-* {
226
+ --w-skeleton-rounded: --value(--radius-*, --w-radius-*, [*]);
227
+ }
228
+
229
+ @utility w-ripple-rounded-* {
230
+ --w-ripple-rounded: --value(--radius-*, --w-radius-*, [*]);
231
+ }
232
+
233
+ @utility w-list-rounded-* {
234
+ --w-list-rounded: --value(--radius-*, --w-radius-*, [*]);
235
+ }
236
+
237
+ @utility w-option-rounded-* {
238
+ --w-option-rounded: --value(--radius-*, --w-radius-*, [*]);
239
+ }
240
+
241
+ @utility w-modal-wrapper-rounded-* {
242
+ --w-modal-wrapper-rounded: --value(--radius-*, --w-radius-*, [*]);
243
+ }
244
+
245
+ @utility w-list-header-rounded-* {
246
+ --w-list-header-rounded: --value(--radius-*, --w-radius-*, [*]);
247
+ }
248
+
249
+ @utility w-button-action-rounded-* {
250
+ --w-button-action-rounded: --value(--radius-*, --w-radius-*, [*]);
251
+ }
252
+
253
+ @utility w-border-svg-rounded-* {
254
+ --w-border-svg-rounded: --value(--radius-*, --w-radius-*, [*]);
255
+ }
256
+
257
+ @utility w-border-svg-stroke-* {
258
+ --w-border-svg-stroke-width: --value(number, [*]);
259
+ }
260
+
261
+ @utility w-button-border-* {
262
+ --w-button-border: calc(--value(number) * 1px);
263
+ --w-button-border: --value([length], [*]);
264
+ }
265
+
266
+ @utility w-svg-stroke-width-* {
267
+ & path {
268
+ stroke-width: --value(--w-svg-stroke-*, number, [*]);
269
+ }
270
+ }
271
+
272
+ @utility w-expansion-duration-* {
273
+ --expansion-duration: calc(--value(number) * 1ms);
274
+ --expansion-duration: --value(--duration-*, [duration], [*]);
275
+ }
276
+
277
+ @utility w-input-whitespace-* {
278
+ --w-input-whitespace: --value('normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces', [*]);
279
+ }