@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.
@@ -1,2 +1,15 @@
1
- export * from "../common/constants";
2
- export * from "./ToggleGroup/ToggleGroup";
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 { }
@@ -1,12 +1,132 @@
1
1
  /*!
2
- @versini/ui-togglegroup v5.2.2
3
- © 2025 gizmette.com
2
+ @versini/ui-togglegroup v5.3.1
3
+ © 2026 gizmette.com
4
4
  */
5
5
 
6
- export * from "../common/constants.js";
7
- export * from "./ToggleGroup/ToggleGroup.js";
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
- ;// CONCATENATED MODULE: ./src/components/index.ts
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.2.2",
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.1.18"
45
+ "tailwindcss": "4.2.0"
47
46
  },
48
47
  "sideEffects": [
49
48
  "**/*.css"
50
49
  ],
51
- "gitHead": "fae53f4bd56440f7a72ed63b1a2a02b0c3b5a7e6"
50
+ "gitHead": "9129610bbd6d91a2bc6cac41b0ccf8430a13fa41"
52
51
  }
@@ -1,3 +0,0 @@
1
- export declare const TOGGLEGROUP_CLASSNAME = "av-togglegroup";
2
- export declare const TOGGLEGROUP_ITEM_WRAPPER_CLASSNAME = "av-togglegroup-item-wrapper";
3
- export declare const TOGGLEGROUP_ITEM_CLASSNAME = "av-togglegroup-item";
@@ -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,7 +0,0 @@
1
- import React from "react";
2
- import type { Mode, Size } from "./ToggleGroupTypes";
3
- export declare const ToggleGroupContext: React.Context<{
4
- size: Size;
5
- focusMode: Mode;
6
- mode: Mode;
7
- }>;
@@ -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 };