@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 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, splitBackground, }: ToggleProps) => JSX.Element;
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 or not to render the toggle track with a split background
70
- * gradient overlay (aqua-style).
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
- splitBackground?: boolean;
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 v7.0.2
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
- // Aqua-style split background overlay for the toggle knob:
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
- splitBackground && KNOB_SPLIT_OVERLAY, // knob circle and border color when checked
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, splitBackground })=>{
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
- splitBackground
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, splitBackground = false })=>{
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
- splitBackground
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": "7.0.2",
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": "9.1.0"
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": "7cec17f37e7c539ba81294ec754563b4e5733ce8"
54
+ "gitHead": "0c985a7fdf2ab23b36c43b42663d9625d0ccb4c5"
51
55
  }