@versini/ui-togglegroup 5.2.2 → 5.3.1
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/components/index.d.ts +15 -2
- package/dist/components/index.js +125 -5
- package/package.json +3 -4
- package/dist/common/constants.d.ts +0 -3
- package/dist/common/constants.js +0 -12
- package/dist/components/ToggleGroup/ToggleGroup.d.ts +0 -3
- package/dist/components/ToggleGroup/ToggleGroup.js +0 -70
- package/dist/components/ToggleGroup/ToggleGroupContext.d.ts +0 -7
- package/dist/components/ToggleGroup/ToggleGroupContext.js +0 -18
- package/dist/components/ToggleGroup/utilities.d.ts +0 -13
- package/dist/components/ToggleGroup/utilities.js +0 -70
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { JSX } from 'react/jsx-runtime';
|
|
2
|
+
import type { ToggleGroupItemProps } from './ToggleGroupTypes';
|
|
3
|
+
import type { ToggleGroupProps } from './ToggleGroupTypes';
|
|
4
|
+
|
|
5
|
+
export declare const ToggleGroup: ({ children, value, onValueChange, disabled, mode, focusMode, size, defaultValue, className, ...otherProps }: ToggleGroupProps) => JSX.Element;
|
|
6
|
+
|
|
7
|
+
export declare const TOGGLEGROUP_CLASSNAME = "av-togglegroup";
|
|
8
|
+
|
|
9
|
+
export declare const TOGGLEGROUP_ITEM_CLASSNAME = "av-togglegroup-item";
|
|
10
|
+
|
|
11
|
+
export declare const TOGGLEGROUP_ITEM_WRAPPER_CLASSNAME = "av-togglegroup-item-wrapper";
|
|
12
|
+
|
|
13
|
+
export declare const ToggleGroupItem: ({ value, disabled }: ToggleGroupItemProps) => JSX.Element;
|
|
14
|
+
|
|
15
|
+
export { }
|
package/dist/components/index.js
CHANGED
|
@@ -1,12 +1,132 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
@versini/ui-togglegroup v5.
|
|
3
|
-
©
|
|
2
|
+
@versini/ui-togglegroup v5.3.1
|
|
3
|
+
© 2026 gizmette.com
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
import { Item, Root } from "@radix-ui/react-toggle-group";
|
|
8
|
+
import react , { useContext } from "react";
|
|
9
|
+
import clsx from "clsx";
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
const TOGGLEGROUP_CLASSNAME = "av-togglegroup";
|
|
12
|
+
const TOGGLEGROUP_ITEM_WRAPPER_CLASSNAME = "av-togglegroup-item-wrapper";
|
|
13
|
+
const TOGGLEGROUP_ITEM_CLASSNAME = "av-togglegroup-item";
|
|
10
14
|
|
|
11
15
|
|
|
12
16
|
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
const ToggleGroupContext = react.createContext({
|
|
20
|
+
size: "medium",
|
|
21
|
+
focusMode: "system",
|
|
22
|
+
mode: "system"
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
const getToggleGroupItemFocusClasses = ({ focusMode })=>{
|
|
29
|
+
return clsx("focus:outline", "focus:outline-2", "focus:outline-offset", {
|
|
30
|
+
"focus:outline-focus-light": focusMode === "light",
|
|
31
|
+
"focus:outline-focus-dark": focusMode === "dark",
|
|
32
|
+
"focus:outline-focus-light dark:focus:outline-focus-dark": focusMode === "alt-system",
|
|
33
|
+
"focus:outline-focus-dark dark:focus:outline-focus-light": focusMode === "system"
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
const getToggleGroupItemActiveClasses = ({ mode })=>{
|
|
37
|
+
return clsx({
|
|
38
|
+
"data-[state=on]:bg-surface-medium": mode === "dark",
|
|
39
|
+
"data-[state=on]:bg-surface-lightest": mode === "light",
|
|
40
|
+
"data-[state=on]:bg-surface-lightest dark:data-[state=on]:bg-surface-medium": mode === "system",
|
|
41
|
+
"data-[state=on]:bg-surface-medium dark:data-[state=on]:bg-surface-lightest": mode === "alt-system"
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
const getToggleGroupItemSizeClasses = ({ size })=>{
|
|
45
|
+
return clsx({
|
|
46
|
+
"h-5 px-2": size === "small",
|
|
47
|
+
"h-6 px-3": size === "medium",
|
|
48
|
+
"h-7 px-4": size === "large"
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
const getToggleGroupItemWrapperClasses = ({ mode })=>{
|
|
52
|
+
return clsx(TOGGLEGROUP_ITEM_WRAPPER_CLASSNAME, "px-1", "relative", "border-r", "last:border-transparent", "has-[button[aria-checked='true']]:border-transparent", "has-[+_*_button[aria-checked='false']]:border-border-medium", {
|
|
53
|
+
"border-surface-light": mode === "light",
|
|
54
|
+
"border-surface-darker": mode === "dark",
|
|
55
|
+
"border-surface-light dark:border-surface-darker": mode === "system",
|
|
56
|
+
"border-surface-darker dark:border-surface-light": mode === "alt-system"
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
const getToggleGroupItemClasses = ({ focusMode, mode, size })=>{
|
|
60
|
+
return {
|
|
61
|
+
wrapperClass: getToggleGroupItemWrapperClasses({
|
|
62
|
+
mode
|
|
63
|
+
}),
|
|
64
|
+
itemClass: clsx(TOGGLEGROUP_ITEM_CLASSNAME, "flex items-center justify-center bg-transparent", "rounded-xs", "transition duration-200 ease", getToggleGroupItemSizeClasses({
|
|
65
|
+
size
|
|
66
|
+
}), getToggleGroupItemFocusClasses({
|
|
67
|
+
focusMode
|
|
68
|
+
}), getToggleGroupItemActiveClasses({
|
|
69
|
+
mode
|
|
70
|
+
}))
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
const getToggleGroupClasses = ({ mode, className })=>{
|
|
74
|
+
return clsx(TOGGLEGROUP_CLASSNAME, "inline-flex p-1", "rounded-xs", {
|
|
75
|
+
"bg-surface-light text-copy-dark": mode === "light",
|
|
76
|
+
"bg-surface-darker text-copy-lighter": mode === "dark",
|
|
77
|
+
"bg-surface-light text-copy-dark dark:bg-surface-darker dark:text-copy-lighter": mode === "system",
|
|
78
|
+
"bg-surface-darker text-copy-lighter dark:bg-surface-light dark:text-copy-dark": mode === "alt-system"
|
|
79
|
+
}, className);
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
const ToggleGroup = ({ children, value, onValueChange, disabled, mode = "system", focusMode = "system", size = "medium", defaultValue, className, ...otherProps })=>{
|
|
88
|
+
const toggleGroupClasses = getToggleGroupClasses({
|
|
89
|
+
mode,
|
|
90
|
+
className
|
|
91
|
+
});
|
|
92
|
+
const contextValue = {
|
|
93
|
+
size,
|
|
94
|
+
focusMode,
|
|
95
|
+
mode
|
|
96
|
+
};
|
|
97
|
+
return /*#__PURE__*/ jsx(ToggleGroupContext.Provider, {
|
|
98
|
+
value: contextValue,
|
|
99
|
+
children: /*#__PURE__*/ jsx(Root, {
|
|
100
|
+
disabled: disabled,
|
|
101
|
+
className: toggleGroupClasses,
|
|
102
|
+
value: value,
|
|
103
|
+
defaultValue: defaultValue,
|
|
104
|
+
onValueChange: onValueChange,
|
|
105
|
+
...otherProps,
|
|
106
|
+
type: "single",
|
|
107
|
+
children: children
|
|
108
|
+
})
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
const ToggleGroupItem = ({ value, disabled })=>{
|
|
112
|
+
const { size, focusMode, mode } = useContext(ToggleGroupContext);
|
|
113
|
+
const { itemClass, wrapperClass } = getToggleGroupItemClasses({
|
|
114
|
+
focusMode,
|
|
115
|
+
mode,
|
|
116
|
+
size
|
|
117
|
+
});
|
|
118
|
+
return /*#__PURE__*/ jsx("div", {
|
|
119
|
+
className: wrapperClass,
|
|
120
|
+
children: /*#__PURE__*/ jsx(Item, {
|
|
121
|
+
disabled: disabled,
|
|
122
|
+
className: itemClass,
|
|
123
|
+
value: value,
|
|
124
|
+
children: value
|
|
125
|
+
})
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
export { TOGGLEGROUP_CLASSNAME, TOGGLEGROUP_ITEM_CLASSNAME, TOGGLEGROUP_ITEM_WRAPPER_CLASSNAME, ToggleGroup, ToggleGroupItem };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@versini/ui-togglegroup",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.3.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Arno Versini",
|
|
6
6
|
"publishConfig": {
|
|
@@ -41,12 +41,11 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@radix-ui/react-toggle-group": "1.1.11",
|
|
44
|
-
"@tailwindcss/typography": "0.5.19",
|
|
45
44
|
"clsx": "2.1.1",
|
|
46
|
-
"tailwindcss": "4.
|
|
45
|
+
"tailwindcss": "4.2.0"
|
|
47
46
|
},
|
|
48
47
|
"sideEffects": [
|
|
49
48
|
"**/*.css"
|
|
50
49
|
],
|
|
51
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "9129610bbd6d91a2bc6cac41b0ccf8430a13fa41"
|
|
52
51
|
}
|
package/dist/common/constants.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
@versini/ui-togglegroup v5.2.2
|
|
3
|
-
© 2025 gizmette.com
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
;// CONCATENATED MODULE: ./src/common/constants.ts
|
|
8
|
-
const TOGGLEGROUP_CLASSNAME = "av-togglegroup";
|
|
9
|
-
const TOGGLEGROUP_ITEM_WRAPPER_CLASSNAME = "av-togglegroup-item-wrapper";
|
|
10
|
-
const TOGGLEGROUP_ITEM_CLASSNAME = "av-togglegroup-item";
|
|
11
|
-
|
|
12
|
-
export { TOGGLEGROUP_CLASSNAME, TOGGLEGROUP_ITEM_CLASSNAME, TOGGLEGROUP_ITEM_WRAPPER_CLASSNAME };
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { ToggleGroupItemProps, ToggleGroupProps } from "./ToggleGroupTypes";
|
|
2
|
-
export declare const ToggleGroup: ({ children, value, onValueChange, disabled, mode, focusMode, size, defaultValue, className, ...otherProps }: ToggleGroupProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
-
export declare const ToggleGroupItem: ({ value, disabled }: ToggleGroupItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
@versini/ui-togglegroup v5.2.2
|
|
3
|
-
© 2025 gizmette.com
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { jsx } from "react/jsx-runtime";
|
|
7
|
-
import { Item, Root } from "@radix-ui/react-toggle-group";
|
|
8
|
-
import { useContext } from "react";
|
|
9
|
-
import { ToggleGroupContext } from "./ToggleGroupContext.js";
|
|
10
|
-
import { getToggleGroupClasses, getToggleGroupItemClasses } from "./utilities.js";
|
|
11
|
-
|
|
12
|
-
;// CONCATENATED MODULE: external "react/jsx-runtime"
|
|
13
|
-
|
|
14
|
-
;// CONCATENATED MODULE: external "@radix-ui/react-toggle-group"
|
|
15
|
-
|
|
16
|
-
;// CONCATENATED MODULE: external "react"
|
|
17
|
-
|
|
18
|
-
;// CONCATENATED MODULE: external "./ToggleGroupContext.js"
|
|
19
|
-
|
|
20
|
-
;// CONCATENATED MODULE: external "./utilities.js"
|
|
21
|
-
|
|
22
|
-
;// CONCATENATED MODULE: ./src/components/ToggleGroup/ToggleGroup.tsx
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const ToggleGroup = ({ children, value, onValueChange, disabled, mode = "system", focusMode = "system", size = "medium", defaultValue, className, ...otherProps })=>{
|
|
29
|
-
const toggleGroupClasses = getToggleGroupClasses({
|
|
30
|
-
mode,
|
|
31
|
-
className
|
|
32
|
-
});
|
|
33
|
-
const contextValue = {
|
|
34
|
-
size,
|
|
35
|
-
focusMode,
|
|
36
|
-
mode
|
|
37
|
-
};
|
|
38
|
-
return /*#__PURE__*/ jsx(ToggleGroupContext.Provider, {
|
|
39
|
-
value: contextValue,
|
|
40
|
-
children: /*#__PURE__*/ jsx(Root, {
|
|
41
|
-
disabled: disabled,
|
|
42
|
-
className: toggleGroupClasses,
|
|
43
|
-
value: value,
|
|
44
|
-
defaultValue: defaultValue,
|
|
45
|
-
onValueChange: onValueChange,
|
|
46
|
-
...otherProps,
|
|
47
|
-
type: "single",
|
|
48
|
-
children: children
|
|
49
|
-
})
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
const ToggleGroupItem = ({ value, disabled })=>{
|
|
53
|
-
const { size, focusMode, mode } = useContext(ToggleGroupContext);
|
|
54
|
-
const { itemClass, wrapperClass } = getToggleGroupItemClasses({
|
|
55
|
-
focusMode,
|
|
56
|
-
mode,
|
|
57
|
-
size
|
|
58
|
-
});
|
|
59
|
-
return /*#__PURE__*/ jsx("div", {
|
|
60
|
-
className: wrapperClass,
|
|
61
|
-
children: /*#__PURE__*/ jsx(Item, {
|
|
62
|
-
disabled: disabled,
|
|
63
|
-
className: itemClass,
|
|
64
|
-
value: value,
|
|
65
|
-
children: value
|
|
66
|
-
})
|
|
67
|
-
});
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
export { ToggleGroup, ToggleGroupItem };
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
@versini/ui-togglegroup v5.2.2
|
|
3
|
-
© 2025 gizmette.com
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import react from "react";
|
|
7
|
-
|
|
8
|
-
;// CONCATENATED MODULE: external "react"
|
|
9
|
-
|
|
10
|
-
;// CONCATENATED MODULE: ./src/components/ToggleGroup/ToggleGroupContext.ts
|
|
11
|
-
|
|
12
|
-
const ToggleGroupContext = react.createContext({
|
|
13
|
-
size: "medium",
|
|
14
|
-
focusMode: "system",
|
|
15
|
-
mode: "system"
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
export { ToggleGroupContext };
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { Mode, Size } from "./ToggleGroupTypes";
|
|
2
|
-
export declare const getToggleGroupItemClasses: ({ focusMode, mode, size, }: {
|
|
3
|
-
focusMode: Mode;
|
|
4
|
-
mode: Mode;
|
|
5
|
-
size: Size;
|
|
6
|
-
}) => {
|
|
7
|
-
wrapperClass: string;
|
|
8
|
-
itemClass: string;
|
|
9
|
-
};
|
|
10
|
-
export declare const getToggleGroupClasses: ({ mode, className, }: {
|
|
11
|
-
mode: Mode;
|
|
12
|
-
className: string;
|
|
13
|
-
}) => string;
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
@versini/ui-togglegroup v5.2.2
|
|
3
|
-
© 2025 gizmette.com
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import clsx from "clsx";
|
|
7
|
-
import { TOGGLEGROUP_CLASSNAME, TOGGLEGROUP_ITEM_CLASSNAME, TOGGLEGROUP_ITEM_WRAPPER_CLASSNAME } from "../../common/constants.js";
|
|
8
|
-
|
|
9
|
-
;// CONCATENATED MODULE: external "clsx"
|
|
10
|
-
|
|
11
|
-
;// CONCATENATED MODULE: external "../../common/constants.js"
|
|
12
|
-
|
|
13
|
-
;// CONCATENATED MODULE: ./src/components/ToggleGroup/utilities.ts
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const getToggleGroupItemFocusClasses = ({ focusMode })=>{
|
|
17
|
-
return clsx("focus:outline", "focus:outline-2", "focus:outline-offset", {
|
|
18
|
-
"focus:outline-focus-light": focusMode === "light",
|
|
19
|
-
"focus:outline-focus-dark": focusMode === "dark",
|
|
20
|
-
"focus:outline-focus-light dark:focus:outline-focus-dark": focusMode === "alt-system",
|
|
21
|
-
"focus:outline-focus-dark dark:focus:outline-focus-light": focusMode === "system"
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
|
-
const getToggleGroupItemActiveClasses = ({ mode })=>{
|
|
25
|
-
return clsx({
|
|
26
|
-
"data-[state=on]:bg-surface-medium": mode === "dark",
|
|
27
|
-
"data-[state=on]:bg-surface-lightest": mode === "light",
|
|
28
|
-
"data-[state=on]:bg-surface-lightest dark:data-[state=on]:bg-surface-medium": mode === "system",
|
|
29
|
-
"data-[state=on]:bg-surface-medium dark:data-[state=on]:bg-surface-lightest": mode === "alt-system"
|
|
30
|
-
});
|
|
31
|
-
};
|
|
32
|
-
const getToggleGroupItemSizeClasses = ({ size })=>{
|
|
33
|
-
return clsx({
|
|
34
|
-
"h-5 px-2": size === "small",
|
|
35
|
-
"h-6 px-3": size === "medium",
|
|
36
|
-
"h-7 px-4": size === "large"
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
const getToggleGroupItemWrapperClasses = ({ mode })=>{
|
|
40
|
-
return clsx(TOGGLEGROUP_ITEM_WRAPPER_CLASSNAME, "px-1", "relative", "border-r", "last:border-transparent", "has-[button[aria-checked='true']]:border-transparent", "has-[+_*_button[aria-checked='false']]:border-border-medium", {
|
|
41
|
-
"border-surface-light": mode === "light",
|
|
42
|
-
"border-surface-darker": mode === "dark",
|
|
43
|
-
"border-surface-light dark:border-surface-darker": mode === "system",
|
|
44
|
-
"border-surface-darker dark:border-surface-light": mode === "alt-system"
|
|
45
|
-
});
|
|
46
|
-
};
|
|
47
|
-
const getToggleGroupItemClasses = ({ focusMode, mode, size })=>{
|
|
48
|
-
return {
|
|
49
|
-
wrapperClass: getToggleGroupItemWrapperClasses({
|
|
50
|
-
mode
|
|
51
|
-
}),
|
|
52
|
-
itemClass: clsx(TOGGLEGROUP_ITEM_CLASSNAME, "flex items-center justify-center bg-transparent", "rounded-xs", "transition duration-200 ease", getToggleGroupItemSizeClasses({
|
|
53
|
-
size
|
|
54
|
-
}), getToggleGroupItemFocusClasses({
|
|
55
|
-
focusMode
|
|
56
|
-
}), getToggleGroupItemActiveClasses({
|
|
57
|
-
mode
|
|
58
|
-
}))
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
|
-
const getToggleGroupClasses = ({ mode, className })=>{
|
|
62
|
-
return clsx(TOGGLEGROUP_CLASSNAME, "inline-flex p-1", "rounded-xs", {
|
|
63
|
-
"bg-surface-light text-copy-dark": mode === "light",
|
|
64
|
-
"bg-surface-darker text-copy-lighter": mode === "dark",
|
|
65
|
-
"bg-surface-light text-copy-dark dark:bg-surface-darker dark:text-copy-lighter": mode === "system",
|
|
66
|
-
"bg-surface-darker text-copy-lighter dark:bg-surface-light dark:text-copy-dark": mode === "alt-system"
|
|
67
|
-
}, className);
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
export { getToggleGroupClasses, getToggleGroupItemClasses };
|