@vuer-ai/vuer-uikit 0.0.53 → 0.0.54

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.
Files changed (45) hide show
  1. package/dist/{chunk-YP4XKYIP.mjs → chunk-5NWUT5QH.mjs} +1 -1
  2. package/dist/chunk-6M5BGKUO.mjs +200 -0
  3. package/dist/chunk-BX7MGCJP.mjs +241 -0
  4. package/dist/{chunk-57AHWBIP.js → chunk-CWODYOQX.js} +1 -1
  5. package/dist/{chunk-FSFUZ7Y6.js → chunk-GDW2K5OF.js} +85 -21
  6. package/dist/{chunk-HKWVLJ7G.js → chunk-GJW5EH5E.js} +25 -9
  7. package/dist/chunk-JQ332WTL.js +267 -0
  8. package/dist/{chunk-5ZAPRYIX.mjs → chunk-ZDZM3RJ3.mjs} +25 -9
  9. package/dist/index.d.mts +3 -2
  10. package/dist/index.d.ts +3 -2
  11. package/dist/index.js +45 -20
  12. package/dist/index.mjs +8 -7
  13. package/dist/ui/form/index.js +5 -5
  14. package/dist/ui/form/index.mjs +1 -1
  15. package/dist/ui/index.d.mts +3 -2
  16. package/dist/ui/index.d.ts +3 -2
  17. package/dist/ui/index.js +45 -20
  18. package/dist/ui/index.mjs +8 -7
  19. package/dist/ui/theme/ThemeToggles.d.mts +8 -3
  20. package/dist/ui/theme/ThemeToggles.d.ts +8 -3
  21. package/dist/ui/theme/ThemeToggles.js +3 -3
  22. package/dist/ui/theme/ThemeToggles.mjs +1 -1
  23. package/dist/ui/theme/index.d.mts +3 -0
  24. package/dist/ui/theme/index.d.ts +3 -0
  25. package/dist/ui/theme/index.js +3 -3
  26. package/dist/ui/theme/index.mjs +1 -1
  27. package/dist/ui/toggle-buttons.d.mts +32 -0
  28. package/dist/ui/toggle-buttons.d.ts +32 -0
  29. package/dist/ui/toggle-buttons.js +33 -0
  30. package/dist/ui/toggle-buttons.mjs +8 -0
  31. package/dist/ui/toggle-group.d.mts +16 -8
  32. package/dist/ui/toggle-group.d.ts +16 -8
  33. package/dist/ui/toggle-group.js +7 -4
  34. package/dist/ui/toggle-group.mjs +1 -2
  35. package/dist/ui/version-badge.js +2 -2
  36. package/dist/ui/version-badge.mjs +1 -1
  37. package/package.json +1 -1
  38. package/src/ui/button.tsx +6 -4
  39. package/src/ui/index.ts +1 -0
  40. package/src/ui/theme/ThemeToggles.tsx +37 -20
  41. package/src/ui/toggle-buttons.tsx +288 -0
  42. package/src/ui/toggle-group.tsx +101 -28
  43. package/dist/chunk-G6CSH3FC.mjs +0 -137
  44. /package/dist/{chunk-ZFWQLAQA.mjs → chunk-BF5C2QUL.mjs} +0 -0
  45. /package/dist/{chunk-GLGYNU3Q.js → chunk-C6R5HMUP.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { Badge } from './chunk-IZCHLZ4H.mjs';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
 
4
- var PACKAGE_VERSION = "0.0.53" ;
4
+ var PACKAGE_VERSION = "0.0.54" ;
5
5
  var PACKAGE_NAME = "@vuer-ai/vuer-uikit" ;
6
6
  function VersionBadge({
7
7
  className,
@@ -0,0 +1,200 @@
1
+ import { createClientOnlyComponent } from './chunk-4F2GSF2T.mjs';
2
+ import { cn } from './chunk-WM2VP7MI.mjs';
3
+ import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
4
+ import { cva } from 'class-variance-authority';
5
+ import { createContext, useContext } from 'react';
6
+ import { jsx } from 'react/jsx-runtime';
7
+
8
+ var toggleGroupVariants = cva(
9
+ [
10
+ // Base button styling
11
+ "inline-flex",
12
+ "cursor-pointer",
13
+ "items-center",
14
+ "justify-center",
15
+ "shrink-0",
16
+ "whitespace-nowrap",
17
+ "font-normal",
18
+ "transition-all",
19
+ "[&_svg]:shrink-0",
20
+ "[&_svg]:pointer-events-none",
21
+ "outline-none",
22
+ "focus-visible:border-ring",
23
+ "focus-visible:ring-ring/50",
24
+ "focus-visible:ring-[3px]",
25
+ "focus-visible:bg-accent",
26
+ "aria-invalid:ring-destructive/20",
27
+ "aria-invalid:border-destructive",
28
+ // Toggle group specific styling
29
+ "min-w-0",
30
+ "flex-1",
31
+ "rounded-none",
32
+ "first:rounded-l-uk-sm",
33
+ "first:rounded-r-none",
34
+ "last:rounded-r-uk-sm",
35
+ "last:rounded-l-none",
36
+ "[&:not(:first-child):not(:last-child)]:rounded-none",
37
+ "focus:z-10",
38
+ "focus-visible:z-10",
39
+ // Disabled state
40
+ "disabled:pointer-events-none",
41
+ "disabled:text-text-secondary/30"
42
+ ],
43
+ {
44
+ variants: {
45
+ variant: {
46
+ primary: [
47
+ "text-text-secondary",
48
+ "bg-bg-tertiary",
49
+ "hover:bg-secondary",
50
+ "data-[state=on]:text-text-withbg",
51
+ "data-[state=on]:bg-brand-primary",
52
+ "data-[state=on]:shadow-[inset_0.5px_0_0_var(--secondary),inset_-0.5px_0_0_var(--secondary)]",
53
+ "data-[state=on]:first:shadow-[inset_-0.5px_0_0_var(--secondary)]",
54
+ "data-[state=on]:last:shadow-[inset_0.5px_0_0_var(--secondary)]"
55
+ ],
56
+ secondary: [
57
+ "text-text-secondary",
58
+ "bg-bg-secondary",
59
+ "hover:bg-tertiary",
60
+ "border-solid border border-transparent -mr-[1px]",
61
+ "data-[state=on]:text-secondary-foreground",
62
+ "data-[state=on]:bg-bg-primary",
63
+ "data-[state=on]:border-line-primary",
64
+ "data-[state=on]:shadow-[inset_0.5px_0_0_var(--muted),inset_-0.5px_0_0_var(--muted)]"
65
+ ],
66
+ ghost: [
67
+ "bg-bg-primary",
68
+ "hover:bg-tertiary",
69
+ "text-text-secondary",
70
+ "data-[state=on]:text-text-withbg",
71
+ "data-[state=on]:bg-text-primary",
72
+ "data-[state=on]:shadow-[inset_0.5px_0_0_var(--muted),inset_-0.5px_0_0_var(--muted)]",
73
+ "data-[state=on]:first:shadow-[inset_-0.5px_0_0_var(--muted)]",
74
+ "data-[state=on]:last:shadow-[inset_0.5px_0_0_var(--muted)]"
75
+ ]
76
+ },
77
+ size: {
78
+ sm: ["text-uk-sm", "h-6", "gap-xxs", "px-md", "[&_svg:not([class*='size-'])]:size-3"],
79
+ base: ["text-uk-md", "h-8", "gap-xs", "px-lg", "[&_svg:not([class*='size-'])]:size-4"],
80
+ lg: ["text-uk-lg", "h-9", "gap-xs", "px-xl", "[&_svg:not([class*='size-'])]:size-5"]
81
+ }
82
+ },
83
+ defaultVariants: {
84
+ variant: "primary",
85
+ size: "base"
86
+ }
87
+ }
88
+ );
89
+ var ToggleGroupContext = createContext({
90
+ size: "base",
91
+ variant: "primary"
92
+ });
93
+ function ToggleGroupRoot({
94
+ className,
95
+ variant,
96
+ size,
97
+ children,
98
+ ...props
99
+ }) {
100
+ return /* @__PURE__ */ jsx(
101
+ ToggleGroupPrimitive.Root,
102
+ {
103
+ "data-slot": "toggle-group",
104
+ "data-variant": variant,
105
+ "data-size": size,
106
+ className: cn(
107
+ "group/toggle-group",
108
+ "flex",
109
+ "w-fit",
110
+ "items-center",
111
+ "rounded-uk-md",
112
+ className
113
+ ),
114
+ ...props,
115
+ children: /* @__PURE__ */ jsx(ToggleGroupContext.Provider, { value: { variant, size }, children })
116
+ }
117
+ );
118
+ }
119
+ function ToggleGroupFallback({
120
+ className,
121
+ variant,
122
+ size,
123
+ children,
124
+ ...props
125
+ }) {
126
+ return /* @__PURE__ */ jsx(
127
+ "div",
128
+ {
129
+ "data-slot": "toggle-group",
130
+ "data-variant": variant,
131
+ "data-size": size,
132
+ className: cn(
133
+ "group/toggle-group",
134
+ "flex",
135
+ "w-fit",
136
+ "items-center",
137
+ "rounded-uk-md",
138
+ className
139
+ ),
140
+ ...props,
141
+ children: /* @__PURE__ */ jsx(ToggleGroupContext.Provider, { value: { variant, size }, children })
142
+ }
143
+ );
144
+ }
145
+ var ToggleGroup = createClientOnlyComponent(ToggleGroupRoot, ToggleGroupFallback);
146
+ function ToggleGroupItemRoot({
147
+ className,
148
+ children,
149
+ variant,
150
+ size,
151
+ ...props
152
+ }) {
153
+ const context = useContext(ToggleGroupContext);
154
+ return /* @__PURE__ */ jsx(
155
+ ToggleGroupPrimitive.Item,
156
+ {
157
+ "data-slot": "toggle-group-item",
158
+ "data-variant": context.variant || variant,
159
+ "data-size": context.size || size,
160
+ className: cn(
161
+ toggleGroupVariants({
162
+ variant: context.variant || variant,
163
+ size: context.size || size
164
+ }),
165
+ className
166
+ ),
167
+ ...props,
168
+ children
169
+ }
170
+ );
171
+ }
172
+ function ToggleGroupItemFallback({
173
+ className,
174
+ children,
175
+ variant,
176
+ size,
177
+ ...props
178
+ }) {
179
+ const context = useContext(ToggleGroupContext);
180
+ return /* @__PURE__ */ jsx(
181
+ "button",
182
+ {
183
+ "data-slot": "toggle-group-item",
184
+ "data-variant": context.variant || variant,
185
+ "data-size": context.size || size,
186
+ className: cn(
187
+ toggleGroupVariants({
188
+ variant: context.variant || variant,
189
+ size: context.size || size
190
+ }),
191
+ className
192
+ ),
193
+ ...props,
194
+ children
195
+ }
196
+ );
197
+ }
198
+ var ToggleGroupItem = createClientOnlyComponent(ToggleGroupItemRoot, ToggleGroupItemFallback);
199
+
200
+ export { ToggleGroup, ToggleGroupItem, toggleGroupVariants };
@@ -0,0 +1,241 @@
1
+ import { cn } from './chunk-WM2VP7MI.mjs';
2
+ import { Slot } from '@radix-ui/react-slot';
3
+ import { cva } from 'class-variance-authority';
4
+ import * as React from 'react';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ var toggleButtonsVariants = cva(
8
+ ["rounded-uk-md", "relative", "inline-flex", "items-center"],
9
+ {
10
+ variants: {
11
+ variant: {
12
+ primary: "bg-bg-secondary",
13
+ secondary: "bg-bg-secondary",
14
+ ghost: "bg-transparent"
15
+ },
16
+ padding: {
17
+ true: "p-xs",
18
+ false: "p-0"
19
+ }
20
+ },
21
+ defaultVariants: {
22
+ variant: "primary",
23
+ padding: true
24
+ }
25
+ }
26
+ );
27
+ var toggleButtonHighlightVariants = cva(
28
+ ["pointer-events-none", "absolute", "transition-all", "duration-200", "ease-out"],
29
+ {
30
+ variants: {
31
+ variant: {
32
+ primary: ["bg-brand-primary", "shadow-sm", "rounded-uk-sm"],
33
+ secondary: ["bg-bg-primary", "shadow-sm", "rounded-uk-sm"],
34
+ ghost: ["bg-bg-primary", "shadow-sm", "rounded-uk-md"]
35
+ }
36
+ },
37
+ defaultVariants: {
38
+ variant: "primary"
39
+ }
40
+ }
41
+ );
42
+ var toggleButtonVariants = cva(
43
+ [
44
+ "focus-visible:ring-ring",
45
+ "relative",
46
+ "z-10",
47
+ "inline-flex",
48
+ "items-center",
49
+ "justify-center",
50
+ "font-normal",
51
+ "whitespace-nowrap",
52
+ "transition-colors",
53
+ "focus-visible:ring-2",
54
+ "focus-visible:outline-none",
55
+ "disabled:pointer-events-none",
56
+ "disabled:opacity-50",
57
+ "cursor-pointer"
58
+ ],
59
+ {
60
+ variants: {
61
+ variant: {
62
+ primary: [
63
+ "text-text-primary",
64
+ "hover:text-text-primary",
65
+ "active:text-brand-primary",
66
+ "data-[selected=true]:text-text-withbg"
67
+ ],
68
+ secondary: [
69
+ "text-text-tertiary",
70
+ "hover:text-text-secondary",
71
+ "active:text-brand-primary",
72
+ "data-[selected=true]:text-text-primary"
73
+ ],
74
+ ghost: [
75
+ "text-text-tertiary",
76
+ "hover:text-text-secondary",
77
+ "active:text-brand-primary",
78
+ "data-[selected=true]:text-text-primary"
79
+ ]
80
+ },
81
+ size: {
82
+ sm: "text-uk-sm gap-xxs",
83
+ base: "text-uk-md gap-xs",
84
+ lg: "text-uk-lg gap-xs"
85
+ },
86
+ icon: {
87
+ false: "",
88
+ true: "shrink-0 [&_svg]:shrink-0 [&_svg]:pointer-events-none"
89
+ },
90
+ corner: {
91
+ sm: "rounded-uk-sm",
92
+ md: "rounded-uk-md"
93
+ }
94
+ },
95
+ compoundVariants: [
96
+ // Icon button sizes
97
+ { size: "sm", icon: false, class: "h-6 px-md" },
98
+ { size: "base", icon: false, class: "h-7 px-lg" },
99
+ { size: "lg", icon: false, class: "h-8 px-xl" },
100
+ { size: "sm", icon: true, class: "size-6 p-xs" },
101
+ { size: "base", icon: true, class: "size-8 p-sm" },
102
+ { size: "lg", icon: true, class: "size-9 p-md" }
103
+ ],
104
+ defaultVariants: {
105
+ variant: "primary",
106
+ size: "base",
107
+ icon: false,
108
+ corner: "sm"
109
+ }
110
+ }
111
+ );
112
+ var ToggleButtonsContext = React.createContext(null);
113
+ var ToggleButtons = React.forwardRef(
114
+ ({
115
+ value,
116
+ onValueChange,
117
+ children,
118
+ className,
119
+ size = "base",
120
+ padding = true,
121
+ variant = "primary",
122
+ ...props
123
+ }, ref) => {
124
+ const containerRef = React.useRef(null);
125
+ const [items, setItems] = React.useState(/* @__PURE__ */ new Map());
126
+ const [highlightStyle, setHighlightStyle] = React.useState({
127
+ opacity: 0
128
+ });
129
+ const registerItem = React.useCallback((itemValue, element) => {
130
+ setItems((prev) => new Map(prev).set(itemValue, element));
131
+ }, []);
132
+ const unregisterItem = React.useCallback((itemValue) => {
133
+ setItems((prev) => {
134
+ const newMap = new Map(prev);
135
+ newMap.delete(itemValue);
136
+ return newMap;
137
+ });
138
+ }, []);
139
+ React.useEffect(() => {
140
+ const selectedElement = items.get(value);
141
+ const container = containerRef.current;
142
+ if (selectedElement && container) {
143
+ const rafId = requestAnimationFrame(() => {
144
+ const containerRect = container.getBoundingClientRect();
145
+ const selectedRect = selectedElement.getBoundingClientRect();
146
+ const paddingOffset = padding ? 4 : 0;
147
+ const left = selectedRect.left - containerRect.left - paddingOffset;
148
+ const top = selectedRect.top - containerRect.top - paddingOffset;
149
+ setHighlightStyle({
150
+ width: selectedRect.width,
151
+ height: selectedRect.height,
152
+ transform: `translate(${left}px, ${top}px)`,
153
+ opacity: 1
154
+ });
155
+ });
156
+ return () => cancelAnimationFrame(rafId);
157
+ } else {
158
+ setHighlightStyle((prev) => ({ ...prev, opacity: 0 }));
159
+ }
160
+ }, [value, items, padding]);
161
+ return /* @__PURE__ */ jsx(
162
+ ToggleButtonsContext.Provider,
163
+ {
164
+ value: { value, onValueChange, size, variant, registerItem, unregisterItem },
165
+ children: /* @__PURE__ */ jsxs(
166
+ "div",
167
+ {
168
+ ref: (node) => {
169
+ containerRef.current = node;
170
+ if (typeof ref === "function") ref(node);
171
+ else if (ref) ref.current = node;
172
+ },
173
+ className: cn(toggleButtonsVariants({ variant, padding }), className),
174
+ ...props,
175
+ children: [
176
+ /* @__PURE__ */ jsx("div", { className: cn(toggleButtonHighlightVariants({ variant })), style: highlightStyle }),
177
+ children
178
+ ]
179
+ }
180
+ )
181
+ }
182
+ );
183
+ }
184
+ );
185
+ ToggleButtons.displayName = "ToggleButtons";
186
+ var ToggleButton = React.forwardRef(
187
+ ({ value, children, className, asChild = false, icon = false, size, variant, corner, ...props }, ref) => {
188
+ const context = React.useContext(ToggleButtonsContext);
189
+ const itemRef = React.useRef(null);
190
+ if (!context) {
191
+ throw new Error("ToggleButton must be used within ToggleButtons");
192
+ }
193
+ const {
194
+ value: selectedValue,
195
+ onValueChange,
196
+ size: contextSize,
197
+ variant: contextVariant,
198
+ registerItem,
199
+ unregisterItem
200
+ } = context;
201
+ const isSelected = selectedValue === value;
202
+ const finalSize = size ?? contextSize;
203
+ const finalVariant = variant ?? contextVariant;
204
+ const finalCorner = corner ?? (finalVariant === "ghost" ? "md" : "sm");
205
+ const Comp = asChild ? Slot : "button";
206
+ React.useEffect(() => {
207
+ const element = itemRef.current;
208
+ if (element) {
209
+ registerItem(value, element);
210
+ return () => unregisterItem(value);
211
+ }
212
+ }, [value, registerItem, unregisterItem]);
213
+ return /* @__PURE__ */ jsx(
214
+ Comp,
215
+ {
216
+ ref: (node) => {
217
+ itemRef.current = node;
218
+ if (typeof ref === "function") ref(node);
219
+ else if (ref) ref.current = node;
220
+ },
221
+ ...props,
222
+ "data-selected": isSelected,
223
+ className: cn(
224
+ toggleButtonVariants({
225
+ variant: finalVariant,
226
+ size: finalSize,
227
+ icon,
228
+ corner: finalCorner
229
+ }),
230
+ className
231
+ ),
232
+ onClick: () => onValueChange(value),
233
+ type: asChild ? void 0 : "button",
234
+ children
235
+ }
236
+ );
237
+ }
238
+ );
239
+ ToggleButton.displayName = "ToggleButton";
240
+
241
+ export { ToggleButton, ToggleButtons, toggleButtonHighlightVariants, toggleButtonVariants, toggleButtonsVariants };
@@ -3,7 +3,7 @@
3
3
  var chunkILJK43VJ_js = require('./chunk-ILJK43VJ.js');
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
 
6
- var PACKAGE_VERSION = "0.0.53" ;
6
+ var PACKAGE_VERSION = "0.0.54" ;
7
7
  var PACKAGE_NAME = "@vuer-ai/vuer-uikit" ;
8
8
  function VersionBadge({
9
9
  className,
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkEAN5SZYQ_js = require('./chunk-EAN5SZYQ.js');
4
3
  var chunkQG7ZF6TO_js = require('./chunk-QG7ZF6TO.js');
5
4
  var chunk7KYAICHB_js = require('./chunk-7KYAICHB.js');
6
5
  var ToggleGroupPrimitive = require('@radix-ui/react-toggle-group');
6
+ var classVarianceAuthority = require('class-variance-authority');
7
7
  var react = require('react');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
 
@@ -27,6 +27,87 @@ function _interopNamespace(e) {
27
27
 
28
28
  var ToggleGroupPrimitive__namespace = /*#__PURE__*/_interopNamespace(ToggleGroupPrimitive);
29
29
 
30
+ var toggleGroupVariants = classVarianceAuthority.cva(
31
+ [
32
+ // Base button styling
33
+ "inline-flex",
34
+ "cursor-pointer",
35
+ "items-center",
36
+ "justify-center",
37
+ "shrink-0",
38
+ "whitespace-nowrap",
39
+ "font-normal",
40
+ "transition-all",
41
+ "[&_svg]:shrink-0",
42
+ "[&_svg]:pointer-events-none",
43
+ "outline-none",
44
+ "focus-visible:border-ring",
45
+ "focus-visible:ring-ring/50",
46
+ "focus-visible:ring-[3px]",
47
+ "focus-visible:bg-accent",
48
+ "aria-invalid:ring-destructive/20",
49
+ "aria-invalid:border-destructive",
50
+ // Toggle group specific styling
51
+ "min-w-0",
52
+ "flex-1",
53
+ "rounded-none",
54
+ "first:rounded-l-uk-sm",
55
+ "first:rounded-r-none",
56
+ "last:rounded-r-uk-sm",
57
+ "last:rounded-l-none",
58
+ "[&:not(:first-child):not(:last-child)]:rounded-none",
59
+ "focus:z-10",
60
+ "focus-visible:z-10",
61
+ // Disabled state
62
+ "disabled:pointer-events-none",
63
+ "disabled:text-text-secondary/30"
64
+ ],
65
+ {
66
+ variants: {
67
+ variant: {
68
+ primary: [
69
+ "text-text-secondary",
70
+ "bg-bg-tertiary",
71
+ "hover:bg-secondary",
72
+ "data-[state=on]:text-text-withbg",
73
+ "data-[state=on]:bg-brand-primary",
74
+ "data-[state=on]:shadow-[inset_0.5px_0_0_var(--secondary),inset_-0.5px_0_0_var(--secondary)]",
75
+ "data-[state=on]:first:shadow-[inset_-0.5px_0_0_var(--secondary)]",
76
+ "data-[state=on]:last:shadow-[inset_0.5px_0_0_var(--secondary)]"
77
+ ],
78
+ secondary: [
79
+ "text-text-secondary",
80
+ "bg-bg-secondary",
81
+ "hover:bg-tertiary",
82
+ "border-solid border border-transparent -mr-[1px]",
83
+ "data-[state=on]:text-secondary-foreground",
84
+ "data-[state=on]:bg-bg-primary",
85
+ "data-[state=on]:border-line-primary",
86
+ "data-[state=on]:shadow-[inset_0.5px_0_0_var(--muted),inset_-0.5px_0_0_var(--muted)]"
87
+ ],
88
+ ghost: [
89
+ "bg-bg-primary",
90
+ "hover:bg-tertiary",
91
+ "text-text-secondary",
92
+ "data-[state=on]:text-text-withbg",
93
+ "data-[state=on]:bg-text-primary",
94
+ "data-[state=on]:shadow-[inset_0.5px_0_0_var(--muted),inset_-0.5px_0_0_var(--muted)]",
95
+ "data-[state=on]:first:shadow-[inset_-0.5px_0_0_var(--muted)]",
96
+ "data-[state=on]:last:shadow-[inset_0.5px_0_0_var(--muted)]"
97
+ ]
98
+ },
99
+ size: {
100
+ sm: ["text-uk-sm", "h-6", "gap-xxs", "px-md", "[&_svg:not([class*='size-'])]:size-3"],
101
+ base: ["text-uk-md", "h-8", "gap-xs", "px-lg", "[&_svg:not([class*='size-'])]:size-4"],
102
+ lg: ["text-uk-lg", "h-9", "gap-xs", "px-xl", "[&_svg:not([class*='size-'])]:size-5"]
103
+ }
104
+ },
105
+ defaultVariants: {
106
+ variant: "primary",
107
+ size: "base"
108
+ }
109
+ }
110
+ );
30
111
  var ToggleGroupContext = react.createContext({
31
112
  size: "base",
32
113
  variant: "primary"
@@ -99,20 +180,10 @@ function ToggleGroupItemRoot({
99
180
  "data-variant": context.variant || variant,
100
181
  "data-size": context.size || size,
101
182
  className: chunk7KYAICHB_js.cn(
102
- chunkEAN5SZYQ_js.toggleVariants({
183
+ toggleGroupVariants({
103
184
  variant: context.variant || variant,
104
185
  size: context.size || size
105
186
  }),
106
- "min-w-0",
107
- "flex-1",
108
- "shrink-0",
109
- "rounded-none",
110
- "first:rounded-l-md",
111
- "last:rounded-r-md",
112
- "focus:z-10",
113
- "focus-visible:z-10",
114
- "data-[variant=outline]:border-l-0",
115
- "data-[variant=outline]:first:border-l",
116
187
  className
117
188
  ),
118
189
  ...props,
@@ -135,18 +206,10 @@ function ToggleGroupItemFallback({
135
206
  "data-variant": context.variant || variant,
136
207
  "data-size": context.size || size,
137
208
  className: chunk7KYAICHB_js.cn(
138
- chunkEAN5SZYQ_js.toggleVariants({
209
+ toggleGroupVariants({
139
210
  variant: context.variant || variant,
140
211
  size: context.size || size
141
212
  }),
142
- "min-w-0",
143
- "flex-1",
144
- "shrink-0",
145
- "rounded-none",
146
- "first:rounded-l-md",
147
- "last:rounded-r-md",
148
- "focus:z-10",
149
- "focus-visible:z-10",
150
213
  className
151
214
  ),
152
215
  ...props,
@@ -158,3 +221,4 @@ var ToggleGroupItem = chunkQG7ZF6TO_js.createClientOnlyComponent(ToggleGroupItem
158
221
 
159
222
  exports.ToggleGroup = ToggleGroup;
160
223
  exports.ToggleGroupItem = ToggleGroupItem;
224
+ exports.toggleGroupVariants = toggleGroupVariants;
@@ -4,11 +4,14 @@ var chunk37WZTN4K_js = require('./chunk-37WZTN4K.js');
4
4
  var chunkER6XHUS7_js = require('./chunk-ER6XHUS7.js');
5
5
  var chunkX6APNY5D_js = require('./chunk-X6APNY5D.js');
6
6
  var chunkQG7ZF6TO_js = require('./chunk-QG7ZF6TO.js');
7
+ var chunkOASPTOVZ_js = require('./chunk-OASPTOVZ.js');
8
+ var chunk7KYAICHB_js = require('./chunk-7KYAICHB.js');
7
9
  var lucideReact = require('lucide-react');
8
10
  var jsxRuntime = require('react/jsx-runtime');
9
11
 
10
- var LiquidToggleButton = () => {
12
+ var LiquidToggleButton = ({ className, ...props }) => {
11
13
  const { theme, setTheme, storageKey } = chunk37WZTN4K_js.useTheme();
14
+ const document = chunkOASPTOVZ_js.useDocument();
12
15
  const handleLiquidToggle = () => {
13
16
  let newTheme;
14
17
  if (theme === "light") {
@@ -24,7 +27,9 @@ var LiquidToggleButton = () => {
24
27
  } else {
25
28
  newTheme = "liquid-light";
26
29
  }
27
- document.cookie = `${storageKey}=${newTheme}`;
30
+ if (document) {
31
+ document.cookie = `${storageKey}=${newTheme}`;
32
+ }
28
33
  setTheme(newTheme);
29
34
  };
30
35
  const isLiquid = theme === "liquid-light" || theme === "liquid-dark";
@@ -34,11 +39,12 @@ var LiquidToggleButton = () => {
34
39
  chunkX6APNY5D_js.Button,
35
40
  {
36
41
  icon: true,
37
- onClick: handleLiquidToggle,
38
42
  variant: "ghost",
39
43
  value: isLiquid,
40
44
  "aria-label": `Toggle liquid theme: ${isSystem ? "disabled (system mode)" : isLiquid ? "on" : "off"}`,
41
- className: isSystem ? "cursor-not-allowed opacity-50" : "",
45
+ ...props,
46
+ onClick: handleLiquidToggle,
47
+ className: chunk7KYAICHB_js.cn(className, isSystem && "cursor-not-allowed opacity-50"),
42
48
  disabled: isSystem,
43
49
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Droplet, { size: 20 })
44
50
  }
@@ -46,8 +52,9 @@ var LiquidToggleButton = () => {
46
52
  /* @__PURE__ */ jsxRuntime.jsx(chunkER6XHUS7_js.TooltipContent, { children: "Toggle liquid theme" })
47
53
  ] });
48
54
  };
49
- var ThemeToggleButton = () => {
55
+ var ThemeToggleButton = (props) => {
50
56
  const { theme, setTheme, storageKey } = chunk37WZTN4K_js.useTheme();
57
+ const document = chunkOASPTOVZ_js.useDocument();
51
58
  const handleThemeChange = () => {
52
59
  let newTheme;
53
60
  if (theme === "light") {
@@ -63,7 +70,9 @@ var ThemeToggleButton = () => {
63
70
  } else {
64
71
  newTheme = "light";
65
72
  }
66
- document.cookie = `${storageKey}=${newTheme}`;
73
+ if (document) {
74
+ document.cookie = `${storageKey}=${newTheme}`;
75
+ }
67
76
  setTheme(newTheme);
68
77
  };
69
78
  const isDark = theme === "dark" || theme === "liquid-dark";
@@ -72,15 +81,22 @@ var ThemeToggleButton = () => {
72
81
  chunkX6APNY5D_js.Button,
73
82
  {
74
83
  icon: true,
75
- onClick: handleThemeChange,
76
84
  variant: "ghost",
77
85
  "aria-label": `Current theme: ${isSystem ? "system" : isDark ? "dark" : "light"}`,
86
+ ...props,
87
+ onClick: handleThemeChange,
78
88
  children: isSystem ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SunMoon, { size: 20 }) : isDark ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Moon, { size: 20 }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sun, { size: 20 })
79
89
  }
80
90
  );
81
91
  };
82
- var LiquidToggle = chunkQG7ZF6TO_js.createClientOnlyComponent(LiquidToggleButton, () => /* @__PURE__ */ jsxRuntime.jsx(chunkX6APNY5D_js.Button, { icon: true, variant: "ghost", "aria-label": "Liquid toggle loading...", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Droplet, { size: 20 }) }));
83
- var ThemeToggle = chunkQG7ZF6TO_js.createClientOnlyComponent(ThemeToggleButton, () => /* @__PURE__ */ jsxRuntime.jsx(chunkX6APNY5D_js.Button, { icon: true, variant: "ghost", "aria-label": "Theme toggle loading...", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sun, { size: 20 }) }));
92
+ var LiquidToggle = chunkQG7ZF6TO_js.createClientOnlyComponent(
93
+ LiquidToggleButton,
94
+ (props) => /* @__PURE__ */ jsxRuntime.jsx(chunkX6APNY5D_js.Button, { icon: true, variant: "ghost", "aria-label": "Liquid toggle loading...", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Droplet, { size: 20 }) })
95
+ );
96
+ var ThemeToggle = chunkQG7ZF6TO_js.createClientOnlyComponent(
97
+ ThemeToggleButton,
98
+ (props) => /* @__PURE__ */ jsxRuntime.jsx(chunkX6APNY5D_js.Button, { icon: true, variant: "ghost", "aria-label": "Theme toggle loading...", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sun, { size: 20 }) })
99
+ );
84
100
 
85
101
  exports.LiquidToggle = LiquidToggle;
86
102
  exports.ThemeToggle = ThemeToggle;