@brightspot/ui 1.1.0 → 1.2.0
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 +3 -90
- package/dist/LucideDynamicLoader.d.ts +1 -0
- package/dist/LucideDynamicLoader.d.ts.map +1 -1
- package/dist/LucideDynamicLoader.js +2 -0
- package/dist/LucideDynamicLoader.js.map +1 -1
- package/dist/LucideDynamicLoader.ts +3 -0
- package/dist/components/avatar/Avatar.d.ts +1 -1
- package/dist/components/avatar/Avatar.js +2 -2
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/AvatarGroup.d.ts +1 -1
- package/dist/components/avatar/AvatarGroup.js +2 -2
- package/dist/components/avatar/AvatarGroup.js.map +1 -1
- package/dist/components/badge/Badge.d.ts +1 -1
- package/dist/components/badge/Badge.js +2 -2
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/circular-progress/CircularProgress.d.ts +57 -0
- package/dist/components/circular-progress/CircularProgress.d.ts.map +1 -0
- package/dist/components/circular-progress/CircularProgress.js +173 -0
- package/dist/components/circular-progress/CircularProgress.js.map +1 -0
- package/dist/components/icon/Icon.d.ts +90 -0
- package/dist/components/icon/Icon.d.ts.map +1 -0
- package/dist/components/icon/Icon.js +172 -0
- package/dist/components/icon/Icon.js.map +1 -0
- package/dist/components/linear-progress/LinearProgress.d.ts +40 -0
- package/dist/components/linear-progress/LinearProgress.d.ts.map +1 -0
- package/dist/components/linear-progress/LinearProgress.js +95 -0
- package/dist/components/linear-progress/LinearProgress.js.map +1 -0
- package/dist/custom-elements.json +341 -6
- package/dist/global.d.ts +4 -0
- package/dist/storybook/assets/{Avatar.stories-BONZm4v8.js → Avatar.stories-BlxrclP0.js} +1 -1
- package/dist/storybook/assets/{AvatarGroup.stories-DDKujPh2.js → AvatarGroup.stories-E3VUvBae.js} +1 -1
- package/dist/storybook/assets/{Badge.stories-C8Ahfpp6.js → Badge.stories-f4YvPz0W.js} +5 -18
- package/dist/storybook/assets/Button.stories-N66xrq4q.js +63 -0
- package/dist/storybook/assets/CircularProgress.stories-zWyELtfc.js +451 -0
- package/dist/storybook/assets/{Color-64QXVMR3-CqLd5_0n.js → Color-64QXVMR3-B3Y5c9dl.js} +1 -1
- package/dist/storybook/assets/{Colors.stories-BajWDIwn.js → Colors.stories-nEoNeHhf.js} +1 -1
- package/dist/storybook/assets/{Events.stories-B32yjxgf.js → Events.stories-BP3ensxX.js} +1 -1
- package/dist/storybook/assets/Heading.stories-DGqWaBpi.js +3 -0
- package/dist/storybook/assets/Icon.stories-BWWjh4NZ.js +245 -0
- package/dist/storybook/assets/LinearProgress.stories-DMVolkoE.js +397 -0
- package/dist/storybook/assets/ScrollShadow.stories-BmwSRNje.js +17 -0
- package/dist/storybook/assets/Throttle.stories-DBj-9rhV.js +303 -0
- package/dist/storybook/assets/{WithTooltip-SK46ZJ2J-BO-IGPcG.js → WithTooltip-SK46ZJ2J-DW4NXFWt.js} +5 -5
- package/dist/storybook/assets/formatter-OMEEQ6HG-BBn014aZ.js +1 -0
- package/dist/storybook/assets/iframe-CxsKJSj-.css +1 -0
- package/dist/storybook/assets/{iframe-BIFmrRK7.js → iframe-Z4F0Cgki.js} +95 -135
- package/dist/storybook/assets/{index-B4dkQq9N.js → index-BUj5S-B7.js} +1 -1
- package/dist/storybook/assets/{syntaxhighlighter-CAVLW7PM-kyZrfiLk.js → syntaxhighlighter-CAVLW7PM-CsQveU1N.js} +1 -1
- package/dist/storybook/iframe.html +2 -2
- package/dist/storybook/index.json +1 -1
- package/dist/storybook/project.json +1 -1
- package/dist/tailwind-plugin-button.js +11 -9
- package/dist/tailwind-plugin-button.js.map +1 -1
- package/dist/tailwind-plugin-button.ts +11 -10
- package/dist/tailwind-plugin-contrast.d.ts +2 -0
- package/dist/tailwind-plugin-contrast.d.ts.map +1 -0
- package/dist/tailwind-plugin-contrast.js +17 -0
- package/dist/tailwind-plugin-contrast.js.map +1 -0
- package/dist/tailwind-plugin-contrast.ts +18 -0
- package/dist/tailwind-plugin-icon.js +17 -10
- package/dist/tailwind-plugin-icon.js.map +1 -1
- package/dist/tailwind-plugin-icon.ts +17 -10
- package/dist/tailwind-plugin-ring-contrast.d.ts +2 -0
- package/dist/tailwind-plugin-ring-contrast.d.ts.map +1 -0
- package/dist/tailwind-plugin-ring-contrast.js +76 -0
- package/dist/tailwind-plugin-ring-contrast.js.map +1 -0
- package/dist/tailwind-plugin-ring-contrast.ts +90 -0
- package/dist/tailwind.config.d.ts +21 -0
- package/dist/tailwind.config.d.ts.map +1 -1
- package/dist/tailwind.config.js +25 -0
- package/dist/tailwind.config.js.map +1 -1
- package/dist/tailwind.config.ts +25 -0
- package/dist/{utils → util}/EventEmitterMixin.d.ts +4 -1
- package/dist/util/EventEmitterMixin.d.ts.map +1 -0
- package/dist/util/EventEmitterMixin.js.map +1 -0
- package/dist/util/ProgressMixin.d.ts +52 -0
- package/dist/util/ProgressMixin.d.ts.map +1 -0
- package/dist/util/ProgressMixin.js +190 -0
- package/dist/util/ProgressMixin.js.map +1 -0
- package/dist/util/ReadyMixin.d.ts.map +1 -0
- package/dist/util/ReadyMixin.js.map +1 -0
- package/dist/util/aria.d.ts +3 -0
- package/dist/util/aria.d.ts.map +1 -0
- package/dist/util/aria.js +44 -0
- package/dist/util/aria.js.map +1 -0
- package/dist/util/svg.d.ts +9 -0
- package/dist/util/svg.d.ts.map +1 -1
- package/dist/util/svg.js +22 -0
- package/dist/util/svg.js.map +1 -1
- package/dist/util/throttle.d.ts +4 -0
- package/dist/util/throttle.d.ts.map +1 -0
- package/dist/util/throttle.js +30 -0
- package/dist/util/throttle.js.map +1 -0
- package/package.json +2 -2
- package/dist/storybook/assets/Button.stories-Cwdvbnu1.js +0 -63
- package/dist/storybook/assets/Heading.stories-C0ji1wRG.js +0 -3
- package/dist/storybook/assets/Icon.stories-DeEHMd7f.js +0 -28543
- package/dist/storybook/assets/Loader.stories-NxZ0SGA0.js +0 -3
- package/dist/storybook/assets/ScrollShadow.stories-1W8nsrPe.js +0 -17
- package/dist/storybook/assets/formatter-OMEEQ6HG-wqmAyL2n.js +0 -1
- package/dist/storybook/assets/iframe-BEH5EoNR.css +0 -1
- package/dist/utils/EventEmitterMixin.d.ts.map +0 -1
- package/dist/utils/EventEmitterMixin.js.map +0 -1
- package/dist/utils/ReadyMixin.d.ts.map +0 -1
- package/dist/utils/ReadyMixin.js.map +0 -1
- /package/dist/{utils → util}/EventEmitterMixin.js +0 -0
- /package/dist/{utils → util}/ReadyMixin.d.ts +0 -0
- /package/dist/{utils → util}/ReadyMixin.js +0 -0
|
@@ -68,9 +68,6 @@ module.exports = plugin(function ({ addComponents, addUtilities, theme }) {
|
|
|
68
68
|
'&:disabled': disabledStyle,
|
|
69
69
|
'&[disabled]': disabledStyle,
|
|
70
70
|
textDecoration: 'none',
|
|
71
|
-
'&:focus': {
|
|
72
|
-
color: 'var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-text-color)))',
|
|
73
|
-
},
|
|
74
71
|
'&:hover': {
|
|
75
72
|
color: 'var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-text-color)))',
|
|
76
73
|
},
|
|
@@ -107,9 +104,6 @@ module.exports = plugin(function ({ addComponents, addUtilities, theme }) {
|
|
|
107
104
|
'--button-fill-none': ' ',
|
|
108
105
|
backgroundColor: 'var(--button-pressed-color, var(--button-fill-none-color))',
|
|
109
106
|
color: 'var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-fill-none-text-color)))',
|
|
110
|
-
'&:focus': {
|
|
111
|
-
color: 'var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-fill-none-text-color)))',
|
|
112
|
-
},
|
|
113
107
|
'&:hover': {
|
|
114
108
|
color: 'var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-fill-none-text-color)))',
|
|
115
109
|
},
|
|
@@ -139,14 +133,18 @@ module.exports = plugin(function ({ addComponents, addUtilities, theme }) {
|
|
|
139
133
|
for (const key in colors) {
|
|
140
134
|
if (key === 'currentColor' || key === 'transparent' || key === 'white' || key === 'black' || key === 'ai')
|
|
141
135
|
continue;
|
|
136
|
+
const ringColorKey = key === 'success' || key === 'error' ? key : 'primary';
|
|
142
137
|
const focusStyle = {
|
|
143
138
|
'--button-color': `oklch(var(--btu-theme-${key}-${key === 'gray' ? '100' : key === 'success' ? '700' : '600'}))`,
|
|
144
139
|
'--button-fill-none-color': `transparent`,
|
|
145
140
|
'--button-fill-none-text-color': `oklch(var(--btu-theme-${key}-${key === 'gray' ? '700' : '600'}))`,
|
|
146
141
|
'--tw-ring-opacity': '1',
|
|
147
|
-
'--tw-ring-color': `oklch(var(--btu-theme-${
|
|
142
|
+
'--tw-ring-color': `oklch(var(--btu-theme-${ringColorKey}-100))`,
|
|
148
143
|
'--tw-ring-offset-width': '1px',
|
|
149
|
-
'--tw-ring-offset-color': `${key === '
|
|
144
|
+
'--tw-ring-offset-color': `${key === 'success' || key === 'error' ? 'var(--button-outline-offset-color, var(--button-color))' : 'oklch(var(--btu-theme-primary-400))'}`,
|
|
145
|
+
};
|
|
146
|
+
const highContrastFocusStyle = {
|
|
147
|
+
'--tw-ring-color': `oklch(var(--btu-theme-${ringColorKey}-400))`,
|
|
150
148
|
};
|
|
151
149
|
components[prefix + '-' + key] = {
|
|
152
150
|
'--button-color': `oklch(var(--btu-theme-${key}-${key === 'gray' ? '100' : key === 'success' ? '700' : '600'}))`,
|
|
@@ -164,8 +162,12 @@ module.exports = plugin(function ({ addComponents, addUtilities, theme }) {
|
|
|
164
162
|
'--button-fill-none-color': `oklch(var(--btu-theme-${key}-${key === 'gray' ? '200' : '50'}))`,
|
|
165
163
|
'--button-fill-none-text-color': `oklch(var(--btu-theme-${key}-${key === 'gray' ? '900' : '800'}))`,
|
|
166
164
|
},
|
|
167
|
-
'&:focus': focusStyle,
|
|
168
165
|
'&.is-focused': focusStyle,
|
|
166
|
+
'&:focus-visible': focusStyle,
|
|
167
|
+
':root.is-moreContrast &:focus-visible': highContrastFocusStyle,
|
|
168
|
+
'@media screen and (prefers-contrast: more) and (forced-colors: none)': {
|
|
169
|
+
':root:not(.is-normalContrast) &:focus-visible': highContrastFocusStyle,
|
|
170
|
+
},
|
|
169
171
|
};
|
|
170
172
|
}
|
|
171
173
|
const buttonSizes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tailwind-plugin-button.js","sourceRoot":"","sources":["../src/tailwind-plugin-button.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AAIvC;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE;IACtE,MAAM,SAAS,GAAqC,KAAK,CAAC,UAAU,CAAC,CAAA;IACrE,MAAM,MAAM,GAAkB,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IACnD,MAAM,SAAS,GAAkB,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;IACxD,MAAM,MAAM,GAAG,aAAa,CAAA;IAE5B,MAAM,aAAa,GAAkB;QACnC,yBAAyB,EAAE,6GAA6G;QACxI,8BAA8B,EAAE,yGAAyG;QACzI,aAAa,EAAE,MAAM;QACrB,UAAU,EAAE,MAAM;KACnB,CAAA;IAED,MAAM,WAAW,GAAkB;QACjC,kBAAkB,EAAE,GAAG;KACxB,CAAA;IAED,MAAM,UAAU,GAAkB;QAChC,aAAa,EAAE;YACb,iBAAiB;YACjB,gBAAgB,EAAE,EAAE;YACpB,qBAAqB,EAAE,EAAE;YACzB,kBAAkB,EAAE,SAAS;YAC7B,oBAAoB,EAAE,SAAS;YAC/B,qBAAqB,EAAE,gBAAgB;YACvC,qBAAqB,EAAE,iBAAiB;YACxC,qBAAqB,EAAE,eAAe;YACtC,qBAAqB,EAAE,mBAAmB;YAC1C,qBAAqB,EAAE,iBAAiB;YACxC,sBAAsB,EAAE,cAAc;YACtC,oBAAoB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxC,sBAAsB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO,EAAE,aAAa;YACtB,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,GAAG,EAAE,QAAQ;YACb,UAAU,EAAE,gFAAgF;YAC5F,YAAY,EAAE,qCAAqC;YACnD,KAAK,EAAE,+FAA+F;YACtG,OAAO,EAAE,0BAA0B;YACnC,QAAQ,EAAE,yBAAyB;YACnC,UAAU,EAAE,2BAA2B;YACvC,UAAU,EAAE,KAAK,CAAC,qBAAqB,CAAC;YACxC,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,6BAA6B;YACrC,KAAK,EAAE,6BAA6B;YACpC,wBAAwB,EAAE,WAAW;YACrC,YAAY,EAAE,aAAa;YAC3B,aAAa,EAAE,aAAa;YAC5B,cAAc,EAAE,MAAM;YACtB,SAAS,EAAE;gBACT,KAAK,EAAE,+FAA+F;aACvG;
|
|
1
|
+
{"version":3,"file":"tailwind-plugin-button.js","sourceRoot":"","sources":["../src/tailwind-plugin-button.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,9 +75,6 @@ module.exports = plugin(function ({ addComponents, addUtilities, theme }) {
|
|
|
75
75
|
'&:disabled': disabledStyle,
|
|
76
76
|
'&[disabled]': disabledStyle,
|
|
77
77
|
textDecoration: 'none',
|
|
78
|
-
'&:focus': {
|
|
79
|
-
color: 'var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-text-color)))',
|
|
80
|
-
},
|
|
81
78
|
'&:hover': {
|
|
82
79
|
color: 'var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-text-color)))',
|
|
83
80
|
},
|
|
@@ -114,10 +111,6 @@ module.exports = plugin(function ({ addComponents, addUtilities, theme }) {
|
|
|
114
111
|
'--button-fill-none': ' ',
|
|
115
112
|
backgroundColor: 'var(--button-pressed-color, var(--button-fill-none-color))',
|
|
116
113
|
color: 'var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-fill-none-text-color)))',
|
|
117
|
-
'&:focus': {
|
|
118
|
-
color:
|
|
119
|
-
'var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-fill-none-text-color)))',
|
|
120
|
-
},
|
|
121
114
|
'&:hover': {
|
|
122
115
|
color:
|
|
123
116
|
'var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-fill-none-text-color)))',
|
|
@@ -148,14 +141,18 @@ module.exports = plugin(function ({ addComponents, addUtilities, theme }) {
|
|
|
148
141
|
// background & text colors for buttons in different states
|
|
149
142
|
for (const key in colors) {
|
|
150
143
|
if (key === 'currentColor' || key === 'transparent' || key === 'white' || key === 'black' || key === 'ai') continue
|
|
144
|
+
const ringColorKey = key === 'success' || key === 'error' ? key : 'primary'
|
|
151
145
|
const focusStyle: CSSRuleObject = {
|
|
152
146
|
'--button-color': `oklch(var(--btu-theme-${key}-${key === 'gray' ? '100' : key === 'success' ? '700' : '600'}))`,
|
|
153
147
|
'--button-fill-none-color': `transparent`,
|
|
154
148
|
'--button-fill-none-text-color': `oklch(var(--btu-theme-${key}-${key === 'gray' ? '700' : '600'}))`,
|
|
155
149
|
'--tw-ring-opacity': '1',
|
|
156
|
-
'--tw-ring-color': `oklch(var(--btu-theme-${
|
|
150
|
+
'--tw-ring-color': `oklch(var(--btu-theme-${ringColorKey}-100))`,
|
|
157
151
|
'--tw-ring-offset-width': '1px',
|
|
158
|
-
'--tw-ring-offset-color': `${key === '
|
|
152
|
+
'--tw-ring-offset-color': `${key === 'success' || key === 'error' ? 'var(--button-outline-offset-color, var(--button-color))' : 'oklch(var(--btu-theme-primary-400))'}`,
|
|
153
|
+
}
|
|
154
|
+
const highContrastFocusStyle: CSSRuleObject = {
|
|
155
|
+
'--tw-ring-color': `oklch(var(--btu-theme-${ringColorKey}-400))`,
|
|
159
156
|
}
|
|
160
157
|
components[prefix + '-' + key] = {
|
|
161
158
|
'--button-color': `oklch(var(--btu-theme-${key}-${key === 'gray' ? '100' : key === 'success' ? '700' : '600'}))`,
|
|
@@ -173,8 +170,12 @@ module.exports = plugin(function ({ addComponents, addUtilities, theme }) {
|
|
|
173
170
|
'--button-fill-none-color': `oklch(var(--btu-theme-${key}-${key === 'gray' ? '200' : '50'}))`,
|
|
174
171
|
'--button-fill-none-text-color': `oklch(var(--btu-theme-${key}-${key === 'gray' ? '900' : '800'}))`,
|
|
175
172
|
},
|
|
176
|
-
'&:focus': focusStyle,
|
|
177
173
|
'&.is-focused': focusStyle,
|
|
174
|
+
'&:focus-visible': focusStyle,
|
|
175
|
+
':root.is-moreContrast &:focus-visible': highContrastFocusStyle,
|
|
176
|
+
'@media screen and (prefers-contrast: more) and (forced-colors: none)': {
|
|
177
|
+
':root:not(.is-normalContrast) &:focus-visible': highContrastFocusStyle,
|
|
178
|
+
},
|
|
178
179
|
}
|
|
179
180
|
}
|
|
180
181
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind-plugin-contrast.d.ts","sourceRoot":"","sources":["../src/tailwind-plugin-contrast.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import plugin from 'tailwindcss/plugin';
|
|
2
|
+
/**
|
|
3
|
+
* Tailwind plugin that adds a 'more-contrast' variant for high-contrast mode.
|
|
4
|
+
*
|
|
5
|
+
* This variant matches both manual class-based contrast (.is-moreContrast) and
|
|
6
|
+
* system preference (prefers-contrast: more media query).
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* @apply more-contrast:bg-primary-800 more-contrast:text-white
|
|
10
|
+
*/
|
|
11
|
+
module.exports = plugin(function ({ addVariant }) {
|
|
12
|
+
addVariant('more-contrast', [
|
|
13
|
+
':root.is-moreContrast &',
|
|
14
|
+
'@media screen and (prefers-contrast: more) and (forced-colors: none) {:root:not(.is-normalContrast) &}',
|
|
15
|
+
]);
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=tailwind-plugin-contrast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind-plugin-contrast.js","sourceRoot":"","sources":["../src/tailwind-plugin-contrast.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AAGvC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE;IAC9C,UAAU,CAAC,eAAe,EAAE;QAC1B,yBAAyB;QACzB,wGAAwG;KACzG,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import plugin from 'tailwindcss/plugin'
|
|
2
|
+
declare let module: any
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Tailwind plugin that adds a 'more-contrast' variant for high-contrast mode.
|
|
6
|
+
*
|
|
7
|
+
* This variant matches both manual class-based contrast (.is-moreContrast) and
|
|
8
|
+
* system preference (prefers-contrast: more media query).
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* @apply more-contrast:bg-primary-800 more-contrast:text-white
|
|
12
|
+
*/
|
|
13
|
+
module.exports = plugin(function ({ addVariant }) {
|
|
14
|
+
addVariant('more-contrast', [
|
|
15
|
+
':root.is-moreContrast &',
|
|
16
|
+
'@media screen and (prefers-contrast: more) and (forced-colors: none) {:root:not(.is-normalContrast) &}',
|
|
17
|
+
])
|
|
18
|
+
})
|
|
@@ -35,10 +35,8 @@ import { addNameSpaceXML, encodeSVG } from './util/svg.js';
|
|
|
35
35
|
const svgs = {};
|
|
36
36
|
const symbols = /[\r\n%#()<>?[\\\]^`{|}]/g;
|
|
37
37
|
for (const [key, value] of Object.entries(LucideExports)) {
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
svgs[key] = value;
|
|
41
|
-
}
|
|
38
|
+
if (typeof value === 'string') {
|
|
39
|
+
svgs[key] = value;
|
|
42
40
|
}
|
|
43
41
|
}
|
|
44
42
|
module.exports = plugin(function ({ addComponents, matchUtilities, theme }) {
|
|
@@ -47,17 +45,23 @@ module.exports = plugin(function ({ addComponents, matchUtilities, theme }) {
|
|
|
47
45
|
Object.entries(svgs).forEach(([key, svg]) => {
|
|
48
46
|
addComponents({
|
|
49
47
|
[`${prefix}via-mask`]: {
|
|
50
|
-
'--size': '
|
|
51
|
-
mask: 'var(--Icon-svg, var(--compat-icon-via-mask)) center / contain no-repeat',
|
|
48
|
+
'--size': '1.25rem',
|
|
49
|
+
mask: 'var(--mask-url, var(--Icon-svg, var(--compat-icon-via-mask))) center / contain no-repeat',
|
|
50
|
+
'mask-mode': 'alpha',
|
|
52
51
|
'aspect-ratio': '1',
|
|
53
|
-
'inline-size': 'var(--Icon-size, --size)',
|
|
52
|
+
'inline-size': 'var(--Icon-size, var(--size))',
|
|
53
|
+
'block-size': 'var(--Icon-size, var(--size))',
|
|
54
|
+
display: 'inline-block',
|
|
54
55
|
},
|
|
55
56
|
[`${prefix}via-mask-${pascalToKebab(key)}`]: {
|
|
56
|
-
'--size': '
|
|
57
|
+
'--size': '1.25rem',
|
|
57
58
|
'--Icon-svg': `url("data:image/svg+xml,${encodeSVG(addNameSpaceXML(svg))}")`,
|
|
58
59
|
mask: 'var(--Icon-svg) center / contain no-repeat',
|
|
60
|
+
'mask-mode': 'alpha',
|
|
59
61
|
'aspect-ratio': '1',
|
|
60
|
-
'inline-size': 'var(--Icon-size, --size)',
|
|
62
|
+
'inline-size': 'var(--Icon-size, var(--size))',
|
|
63
|
+
'block-size': 'var(--Icon-size, var(--size))',
|
|
64
|
+
display: 'inline-block',
|
|
61
65
|
},
|
|
62
66
|
});
|
|
63
67
|
});
|
|
@@ -92,7 +96,10 @@ module.exports = plugin(function ({ addComponents, matchUtilities, theme }) {
|
|
|
92
96
|
'background-image': value,
|
|
93
97
|
'background-repeat': 'no-repeat',
|
|
94
98
|
'background-position': 'center',
|
|
95
|
-
'background-size': 'var(--Icon-size) var(--Icon-size)',
|
|
99
|
+
'background-size': 'var(--Icon-size, 1.5rem) var(--Icon-size, 1.5rem)',
|
|
100
|
+
width: 'var(--Icon-size, 1.5rem)',
|
|
101
|
+
height: 'var(--Icon-size, 1.5rem)',
|
|
102
|
+
display: 'inline-block',
|
|
96
103
|
}),
|
|
97
104
|
}, {
|
|
98
105
|
values: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tailwind-plugin-icon.js","sourceRoot":"","sources":["../src/tailwind-plugin-icon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,sCAAsC,CAAA;AACrE,OAAO,KAAK,MAAM,8BAA8B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACtE,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAG1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,IAAI,GAA2B,EAAE,CAAA;AACvC,MAAM,OAAO,GAAG,0BAA0B,CAAA;AAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;IACzD,IAAI,
|
|
1
|
+
{"version":3,"file":"tailwind-plugin-icon.js","sourceRoot":"","sources":["../src/tailwind-plugin-icon.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,10 +38,8 @@ declare let module: any
|
|
|
38
38
|
const svgs: Record<string, string> = {}
|
|
39
39
|
const symbols = /[\r\n%#()<>?[\\\]^`{|}]/g
|
|
40
40
|
for (const [key, value] of Object.entries(LucideExports)) {
|
|
41
|
-
if (
|
|
42
|
-
|
|
43
|
-
svgs[key] = value
|
|
44
|
-
}
|
|
41
|
+
if (typeof value === 'string') {
|
|
42
|
+
svgs[key] = value
|
|
45
43
|
}
|
|
46
44
|
}
|
|
47
45
|
|
|
@@ -53,17 +51,23 @@ module.exports = plugin(
|
|
|
53
51
|
Object.entries(svgs).forEach(([key, svg]) => {
|
|
54
52
|
addComponents({
|
|
55
53
|
[`${prefix}via-mask`]: {
|
|
56
|
-
'--size': '
|
|
57
|
-
mask: 'var(--Icon-svg, var(--compat-icon-via-mask)) center / contain no-repeat',
|
|
54
|
+
'--size': '1.25rem',
|
|
55
|
+
mask: 'var(--mask-url, var(--Icon-svg, var(--compat-icon-via-mask))) center / contain no-repeat',
|
|
56
|
+
'mask-mode': 'alpha',
|
|
58
57
|
'aspect-ratio': '1',
|
|
59
|
-
'inline-size': 'var(--Icon-size, --size)',
|
|
58
|
+
'inline-size': 'var(--Icon-size, var(--size))',
|
|
59
|
+
'block-size': 'var(--Icon-size, var(--size))',
|
|
60
|
+
display: 'inline-block',
|
|
60
61
|
},
|
|
61
62
|
[`${prefix}via-mask-${pascalToKebab(key)}`]: {
|
|
62
|
-
'--size': '
|
|
63
|
+
'--size': '1.25rem',
|
|
63
64
|
'--Icon-svg': `url("data:image/svg+xml,${encodeSVG(addNameSpaceXML(svg))}")`,
|
|
64
65
|
mask: 'var(--Icon-svg) center / contain no-repeat',
|
|
66
|
+
'mask-mode': 'alpha',
|
|
65
67
|
'aspect-ratio': '1',
|
|
66
|
-
'inline-size': 'var(--Icon-size, --size)',
|
|
68
|
+
'inline-size': 'var(--Icon-size, var(--size))',
|
|
69
|
+
'block-size': 'var(--Icon-size, var(--size))',
|
|
70
|
+
display: 'inline-block',
|
|
67
71
|
},
|
|
68
72
|
})
|
|
69
73
|
})
|
|
@@ -103,7 +107,10 @@ module.exports = plugin(
|
|
|
103
107
|
'background-image': value,
|
|
104
108
|
'background-repeat': 'no-repeat',
|
|
105
109
|
'background-position': 'center',
|
|
106
|
-
'background-size': 'var(--Icon-size) var(--Icon-size)',
|
|
110
|
+
'background-size': 'var(--Icon-size, 1.5rem) var(--Icon-size, 1.5rem)',
|
|
111
|
+
width: 'var(--Icon-size, 1.5rem)',
|
|
112
|
+
height: 'var(--Icon-size, 1.5rem)',
|
|
113
|
+
display: 'inline-block',
|
|
107
114
|
}),
|
|
108
115
|
},
|
|
109
116
|
{
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind-plugin-ring-contrast.d.ts","sourceRoot":"","sources":["../src/tailwind-plugin-ring-contrast.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import plugin from 'tailwindcss/plugin';
|
|
2
|
+
/**
|
|
3
|
+
* Tailwind plugin that automatically adds more-contrast variants for ring utilities.
|
|
4
|
+
*
|
|
5
|
+
* This plugin adds global CSS rules that override ring colors and offsets in high-contrast mode.
|
|
6
|
+
*
|
|
7
|
+
* Behavior:
|
|
8
|
+
* - Adds default focus-visible ring styles (4px primary-100 ring)
|
|
9
|
+
* - Any ring color (ring-primary-100, etc.) → automatically maps to higher contrast (400 shade)
|
|
10
|
+
* - Any ring-offset → automatically resets to 0px/transparent in high-contrast mode to prevent double rings
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
module.exports = plugin(function ({ addBase, theme, e }) {
|
|
14
|
+
const baseStyles = {};
|
|
15
|
+
// Add default focus-visible ring styles
|
|
16
|
+
baseStyles[':focus-visible'] = {
|
|
17
|
+
'--tw-ring-opacity': '1',
|
|
18
|
+
'--tw-ring-color': 'oklch(var(--btu-theme-primary-100))',
|
|
19
|
+
'--tw-ring-offset-shadow': 'var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width, 0px) var(--tw-ring-offset-color, transparent)',
|
|
20
|
+
'--tw-ring-shadow': 'var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width, 0px)) var(--tw-ring-color)',
|
|
21
|
+
'box-shadow': 'var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 transparent)',
|
|
22
|
+
outline: 'none',
|
|
23
|
+
};
|
|
24
|
+
const colors = theme('colors');
|
|
25
|
+
// Build high-contrast ring color overrides (100 → 400 shade)
|
|
26
|
+
// Only process primary, success, and error theme colors
|
|
27
|
+
const allowedThemeColors = ['primary', 'success', 'error'];
|
|
28
|
+
const ringColorOverrides = {};
|
|
29
|
+
Object.entries(colors).forEach(([colorName, colorValue]) => {
|
|
30
|
+
if (!allowedThemeColors.includes(colorName))
|
|
31
|
+
return;
|
|
32
|
+
if (typeof colorValue !== 'object')
|
|
33
|
+
return;
|
|
34
|
+
Object.entries(colorValue).forEach(([shade, color]) => {
|
|
35
|
+
if (shade === '100' && colorValue['400'] && typeof colorValue['400'] === 'string') {
|
|
36
|
+
const className = `.${e(`ring-${colorName}-${shade}`)}`;
|
|
37
|
+
const resolvedColor = colorValue['400'].replace(/<alpha-value>/g, 'var(--tw-ring-opacity)');
|
|
38
|
+
ringColorOverrides[className] = resolvedColor;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
const defaultHighContrastColor = ringColorOverrides['.ring-primary-100'] || null;
|
|
43
|
+
const ringOffsetWidths = theme('ringOffsetWidth');
|
|
44
|
+
const ringOffsetSelectors = Object.keys(ringOffsetWidths).map(key => `.${e(`ring-offset-${key}`)}`);
|
|
45
|
+
const buildContrastRules = (rootSelector) => {
|
|
46
|
+
const rules = {};
|
|
47
|
+
// Default focus-visible ring color
|
|
48
|
+
if (defaultHighContrastColor) {
|
|
49
|
+
rules[`${rootSelector} :focus-visible`] = {
|
|
50
|
+
'--tw-ring-color': defaultHighContrastColor,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
// Specific ring color overrides
|
|
54
|
+
Object.entries(ringColorOverrides).forEach(([className, color]) => {
|
|
55
|
+
rules[`${rootSelector} ${className}`] = {
|
|
56
|
+
'--tw-ring-color': color,
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
// Reset all ring offsets (width and color)
|
|
60
|
+
if (ringOffsetSelectors.length > 0) {
|
|
61
|
+
const selector = ringOffsetSelectors.map(cls => `${rootSelector} ${cls}`).join(',\n');
|
|
62
|
+
rules[selector] = {
|
|
63
|
+
'--tw-ring-offset-width': '0px !important',
|
|
64
|
+
'--tw-ring-offset-color': 'transparent !important',
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return rules;
|
|
68
|
+
};
|
|
69
|
+
// Merge high-contrast rules
|
|
70
|
+
Object.assign(baseStyles, buildContrastRules(':root.is-moreContrast'));
|
|
71
|
+
// Merge media query rules
|
|
72
|
+
const mediaQueryRules = buildContrastRules(':root:not(.is-normalContrast)');
|
|
73
|
+
baseStyles['@media screen and (prefers-contrast: more) and (forced-colors: none)'] = mediaQueryRules;
|
|
74
|
+
addBase(baseStyles);
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=tailwind-plugin-ring-contrast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind-plugin-ring-contrast.js","sourceRoot":"","sources":["../src/tailwind-plugin-ring-contrast.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import plugin from 'tailwindcss/plugin'
|
|
2
|
+
declare let module: any
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Tailwind plugin that automatically adds more-contrast variants for ring utilities.
|
|
6
|
+
*
|
|
7
|
+
* This plugin adds global CSS rules that override ring colors and offsets in high-contrast mode.
|
|
8
|
+
*
|
|
9
|
+
* Behavior:
|
|
10
|
+
* - Adds default focus-visible ring styles (4px primary-100 ring)
|
|
11
|
+
* - Any ring color (ring-primary-100, etc.) → automatically maps to higher contrast (400 shade)
|
|
12
|
+
* - Any ring-offset → automatically resets to 0px/transparent in high-contrast mode to prevent double rings
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
module.exports = plugin(function ({ addBase, theme, e }) {
|
|
16
|
+
const baseStyles: Record<string, any> = {}
|
|
17
|
+
|
|
18
|
+
// Add default focus-visible ring styles
|
|
19
|
+
baseStyles[':focus-visible'] = {
|
|
20
|
+
'--tw-ring-opacity': '1',
|
|
21
|
+
'--tw-ring-color': 'oklch(var(--btu-theme-primary-100))',
|
|
22
|
+
'--tw-ring-offset-shadow':
|
|
23
|
+
'var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width, 0px) var(--tw-ring-offset-color, transparent)',
|
|
24
|
+
'--tw-ring-shadow': 'var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width, 0px)) var(--tw-ring-color)',
|
|
25
|
+
'box-shadow': 'var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 transparent)',
|
|
26
|
+
outline: 'none',
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const colors = theme('colors') as Record<string, any>
|
|
30
|
+
|
|
31
|
+
// Build high-contrast ring color overrides (100 → 400 shade)
|
|
32
|
+
// Only process primary, success, and error theme colors
|
|
33
|
+
const allowedThemeColors = ['primary', 'success', 'error']
|
|
34
|
+
const ringColorOverrides: Record<string, string> = {}
|
|
35
|
+
|
|
36
|
+
Object.entries(colors).forEach(([colorName, colorValue]) => {
|
|
37
|
+
if (!allowedThemeColors.includes(colorName)) return
|
|
38
|
+
if (typeof colorValue !== 'object') return
|
|
39
|
+
|
|
40
|
+
Object.entries(colorValue).forEach(([shade, color]) => {
|
|
41
|
+
if (shade === '100' && colorValue['400'] && typeof colorValue['400'] === 'string') {
|
|
42
|
+
const className = `.${e(`ring-${colorName}-${shade}`)}`
|
|
43
|
+
const resolvedColor = (colorValue['400'] as string).replace(/<alpha-value>/g, 'var(--tw-ring-opacity)')
|
|
44
|
+
ringColorOverrides[className] = resolvedColor
|
|
45
|
+
}
|
|
46
|
+
})
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
const defaultHighContrastColor = ringColorOverrides['.ring-primary-100'] || null
|
|
50
|
+
const ringOffsetWidths = theme('ringOffsetWidth') as Record<string, string>
|
|
51
|
+
const ringOffsetSelectors = Object.keys(ringOffsetWidths).map(key => `.${e(`ring-offset-${key}`)}`)
|
|
52
|
+
|
|
53
|
+
const buildContrastRules = (rootSelector: string): Record<string, any> => {
|
|
54
|
+
const rules: Record<string, any> = {}
|
|
55
|
+
|
|
56
|
+
// Default focus-visible ring color
|
|
57
|
+
if (defaultHighContrastColor) {
|
|
58
|
+
rules[`${rootSelector} :focus-visible`] = {
|
|
59
|
+
'--tw-ring-color': defaultHighContrastColor,
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Specific ring color overrides
|
|
64
|
+
Object.entries(ringColorOverrides).forEach(([className, color]) => {
|
|
65
|
+
rules[`${rootSelector} ${className}`] = {
|
|
66
|
+
'--tw-ring-color': color,
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
// Reset all ring offsets (width and color)
|
|
71
|
+
if (ringOffsetSelectors.length > 0) {
|
|
72
|
+
const selector = ringOffsetSelectors.map(cls => `${rootSelector} ${cls}`).join(',\n')
|
|
73
|
+
rules[selector] = {
|
|
74
|
+
'--tw-ring-offset-width': '0px !important',
|
|
75
|
+
'--tw-ring-offset-color': 'transparent !important',
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return rules
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Merge high-contrast rules
|
|
83
|
+
Object.assign(baseStyles, buildContrastRules(':root.is-moreContrast'))
|
|
84
|
+
|
|
85
|
+
// Merge media query rules
|
|
86
|
+
const mediaQueryRules = buildContrastRules(':root:not(.is-normalContrast)')
|
|
87
|
+
baseStyles['@media screen and (prefers-contrast: more) and (forced-colors: none)'] = mediaQueryRules
|
|
88
|
+
|
|
89
|
+
addBase(baseStyles)
|
|
90
|
+
})
|
|
@@ -371,6 +371,8 @@ declare const _default: {
|
|
|
371
371
|
'sortable-added': string;
|
|
372
372
|
'sortable-added-bg': string;
|
|
373
373
|
'sortable-drag': string;
|
|
374
|
+
'circular-progress-rotate': string;
|
|
375
|
+
'circular-progress-dash': string;
|
|
374
376
|
};
|
|
375
377
|
animationDuration: {
|
|
376
378
|
DEFAULT: string;
|
|
@@ -533,6 +535,25 @@ declare const _default: {
|
|
|
533
535
|
transform: string;
|
|
534
536
|
};
|
|
535
537
|
};
|
|
538
|
+
'circular-progress-rotate': {
|
|
539
|
+
'100%': {
|
|
540
|
+
transform: string;
|
|
541
|
+
};
|
|
542
|
+
};
|
|
543
|
+
'circular-progress-dash': {
|
|
544
|
+
'0%': {
|
|
545
|
+
strokeDasharray: string;
|
|
546
|
+
strokeDashoffset: string;
|
|
547
|
+
};
|
|
548
|
+
'50%': {
|
|
549
|
+
strokeDasharray: string;
|
|
550
|
+
strokeDashoffset: string;
|
|
551
|
+
};
|
|
552
|
+
'100%': {
|
|
553
|
+
strokeDasharray: string;
|
|
554
|
+
strokeDashoffset: string;
|
|
555
|
+
};
|
|
556
|
+
};
|
|
536
557
|
};
|
|
537
558
|
spacing: {
|
|
538
559
|
xs: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tailwind.config.d.ts","sourceRoot":"","sources":["../src/tailwind.config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tailwind.config.d.ts","sourceRoot":"","sources":["../src/tailwind.config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCA6c8B;gBAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;aAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAxchE,wBAooBkB"}
|
package/dist/tailwind.config.js
CHANGED
|
@@ -9,6 +9,10 @@ export default {
|
|
|
9
9
|
],
|
|
10
10
|
content: [],
|
|
11
11
|
safelist: [
|
|
12
|
+
// Lucide icon mask classes
|
|
13
|
+
{
|
|
14
|
+
pattern: /btu-icon-via-mask-.+/,
|
|
15
|
+
},
|
|
12
16
|
// BTU component classes with dynamic color, size, and numbered variants
|
|
13
17
|
// Matches: btu-button-primary, btu-badge-lg, btu-icon-error, btu-heading-2xl, btu-avatar-md, etc.
|
|
14
18
|
{
|
|
@@ -400,6 +404,8 @@ export default {
|
|
|
400
404
|
'sortable-added': `${theme('transitionDuration.1000')} forwards scale-up ease-in-out`,
|
|
401
405
|
'sortable-added-bg': `${theme('transitionDuration.1000')} forwards bg-color-change ease-in-out`,
|
|
402
406
|
'sortable-drag': `${theme('transitionDuration.250')} forwards scale-down`,
|
|
407
|
+
'circular-progress-rotate': 'circular-progress-rotate 1.6s linear infinite',
|
|
408
|
+
'circular-progress-dash': 'circular-progress-dash 1s infinite ease-in-out both',
|
|
403
409
|
}),
|
|
404
410
|
animationDuration: {
|
|
405
411
|
DEFAULT: '0.33s',
|
|
@@ -557,6 +563,25 @@ export default {
|
|
|
557
563
|
'slide-fade-scroll': {
|
|
558
564
|
from: { opacity: '0', transform: 'translateY(4dvh)' },
|
|
559
565
|
},
|
|
566
|
+
'circular-progress-rotate': {
|
|
567
|
+
'100%': {
|
|
568
|
+
transform: 'rotate(360deg)',
|
|
569
|
+
},
|
|
570
|
+
},
|
|
571
|
+
'circular-progress-dash': {
|
|
572
|
+
'0%': {
|
|
573
|
+
strokeDasharray: '1, 200',
|
|
574
|
+
strokeDashoffset: '0',
|
|
575
|
+
},
|
|
576
|
+
'50%': {
|
|
577
|
+
strokeDasharray: '89, 200',
|
|
578
|
+
strokeDashoffset: '-35',
|
|
579
|
+
},
|
|
580
|
+
'100%': {
|
|
581
|
+
strokeDasharray: '89, 200',
|
|
582
|
+
strokeDashoffset: '-124',
|
|
583
|
+
},
|
|
584
|
+
},
|
|
560
585
|
}),
|
|
561
586
|
spacing: {
|
|
562
587
|
xs: 'var(--gap-xs)',
|