@versini/ui-toggle 7.0.2 → 8.0.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/dist/index.d.ts +4 -4
- package/dist/index.js +7 -11
- package/package.json +8 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JSX } from 'react/jsx-runtime';
|
|
2
2
|
|
|
3
|
-
export declare const Toggle: ({ checked, onChange, label, labelHidden, name, mode, labelMode, className, noBorder, narrow, noHaptic, labelPosition, subLabel,
|
|
3
|
+
export declare const Toggle: ({ checked, onChange, label, labelHidden, name, mode, labelMode, className, noBorder, narrow, noHaptic, labelPosition, subLabel, flat, }: ToggleProps) => JSX.Element;
|
|
4
4
|
|
|
5
5
|
export declare const TOGGLE_CLASSNAME = "av-toggle";
|
|
6
6
|
|
|
@@ -66,11 +66,11 @@ declare type ToggleProps = {
|
|
|
66
66
|
*/
|
|
67
67
|
labelPosition?: "left" | "right";
|
|
68
68
|
/**
|
|
69
|
-
* Whether
|
|
70
|
-
*
|
|
69
|
+
* Whether to render the Toggle with a flat solid background
|
|
70
|
+
* instead of the default Aqua-style gradient overlay.
|
|
71
71
|
* @default false
|
|
72
72
|
*/
|
|
73
|
-
|
|
73
|
+
flat?: boolean;
|
|
74
74
|
};
|
|
75
75
|
|
|
76
76
|
export { }
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
@versini/ui-toggle
|
|
2
|
+
@versini/ui-toggle v8.0.0
|
|
3
3
|
© 2026 gizmette.com
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -24,17 +24,13 @@ const getToggleBaseClasses = ({ narrow })=>{
|
|
|
24
24
|
const getToggleKnobFocusClasses = ()=>{
|
|
25
25
|
return clsx("peer-focus:outline", "peer-focus:outline-2", "peer-focus:outline-offset-2", "peer-focus:outline-focus-dark");
|
|
26
26
|
};
|
|
27
|
-
|
|
28
|
-
// - Top half: flat white overlay (light, uniform)
|
|
29
|
-
// - Bottom half: starts darker, gradually lightens toward the bottom edge
|
|
30
|
-
const KNOB_SPLIT_OVERLAY = "after:bg-[linear-gradient(to_bottom,oklch(1_0_0/0.2)_50%,oklch(0_0_0/0.1)_50%,oklch(1_0_0/0.05)_100%)]";
|
|
31
|
-
const getToggleKnobOnClasses = ({ narrow, splitBackground })=>{
|
|
27
|
+
const getToggleKnobOnClasses = ({ narrow, flat })=>{
|
|
32
28
|
return clsx({
|
|
33
29
|
"peer-checked:after:translate-x-full": !narrow,
|
|
34
30
|
"peer-checked:after:translate-x-4": narrow
|
|
35
31
|
}, // background color when checked
|
|
36
32
|
"peer-checked:bg-action-light", // split background overlay on the knob (both states)
|
|
37
|
-
|
|
33
|
+
!flat && "after:av-bg-split-overlay", // knob circle and border color when checked
|
|
38
34
|
"peer-checked:after:bg-white", "peer-checked:after:border-white");
|
|
39
35
|
};
|
|
40
36
|
const getToggleKnobOffClasses = ({ narrow })=>{
|
|
@@ -79,7 +75,7 @@ const getWrapperClasses = ({ className })=>{
|
|
|
79
75
|
const getToggleWrapperClasses = ()=>{
|
|
80
76
|
return "relative inline-block";
|
|
81
77
|
};
|
|
82
|
-
const getToggleClasses = ({ mode, labelHidden, className, noBorder, narrow, labelMode, labelPosition = "right", subLabel,
|
|
78
|
+
const getToggleClasses = ({ mode, labelHidden, className, noBorder, narrow, labelMode, labelPosition = "right", subLabel, flat })=>{
|
|
83
79
|
return {
|
|
84
80
|
toggle: clsx(getToggleBaseClasses({
|
|
85
81
|
narrow
|
|
@@ -90,7 +86,7 @@ const getToggleClasses = ({ mode, labelHidden, className, noBorder, narrow, labe
|
|
|
90
86
|
narrow
|
|
91
87
|
}), getToggleKnobOnClasses({
|
|
92
88
|
narrow,
|
|
93
|
-
|
|
89
|
+
flat
|
|
94
90
|
})),
|
|
95
91
|
label: getLabelClasses({
|
|
96
92
|
labelHidden,
|
|
@@ -116,7 +112,7 @@ const getToggleClasses = ({ mode, labelHidden, className, noBorder, narrow, labe
|
|
|
116
112
|
|
|
117
113
|
|
|
118
114
|
|
|
119
|
-
const Toggle = ({ checked = false, onChange, label, labelHidden = false, name, mode = "system", labelMode, className, noBorder = false, narrow = false, noHaptic = false, labelPosition = "right", subLabel,
|
|
115
|
+
const Toggle = ({ checked = false, onChange, label, labelHidden = false, name, mode = "system", labelMode, className, noBorder = false, narrow = false, noHaptic = false, labelPosition = "right", subLabel, flat = false })=>{
|
|
120
116
|
const { haptic } = useHaptic();
|
|
121
117
|
const toggleClasses = getToggleClasses({
|
|
122
118
|
mode,
|
|
@@ -127,7 +123,7 @@ const Toggle = ({ checked = false, onChange, label, labelHidden = false, name, m
|
|
|
127
123
|
labelMode,
|
|
128
124
|
labelPosition,
|
|
129
125
|
subLabel: !!subLabel,
|
|
130
|
-
|
|
126
|
+
flat
|
|
131
127
|
});
|
|
132
128
|
const handleChange = (e)=>{
|
|
133
129
|
if (!noHaptic) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@versini/ui-toggle",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Arno Versini",
|
|
6
6
|
"publishConfig": {
|
|
@@ -34,10 +34,14 @@
|
|
|
34
34
|
"test:coverage:ui": "vitest --coverage --ui",
|
|
35
35
|
"test:coverage": "vitest run --coverage",
|
|
36
36
|
"test:watch": "vitest",
|
|
37
|
-
"test": "vitest run"
|
|
37
|
+
"test": "vitest run",
|
|
38
|
+
"test:visual": "playwright test -c playwright-ct.config.ts",
|
|
39
|
+
"test:visual:report": "playwright show-report playwright-report",
|
|
40
|
+
"test:visual:update": "playwright test -c playwright-ct.config.ts --update-snapshots",
|
|
41
|
+
"test:visual:ui": "playwright test -c playwright-ct.config.ts --ui"
|
|
38
42
|
},
|
|
39
43
|
"devDependencies": {
|
|
40
|
-
"@versini/ui-types": "
|
|
44
|
+
"@versini/ui-types": "10.0.0"
|
|
41
45
|
},
|
|
42
46
|
"dependencies": {
|
|
43
47
|
"@versini/ui-hooks": "6.1.1",
|
|
@@ -47,5 +51,5 @@
|
|
|
47
51
|
"sideEffects": [
|
|
48
52
|
"**/*.css"
|
|
49
53
|
],
|
|
50
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "0c985a7fdf2ab23b36c43b42663d9625d0ccb4c5"
|
|
51
55
|
}
|