@vritti/quantum-ui 0.2.5 → 0.2.6
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/Button2.js +2 -1
- package/dist/Button2.js.map +1 -1
- package/dist/Checkbox.js +3 -5
- package/dist/Checkbox.js.map +1 -1
- package/dist/DatePicker.js +416 -139
- package/dist/DatePicker.js.map +1 -1
- package/dist/Form.js.map +1 -1
- package/dist/Label.js +1 -1
- package/dist/Label.js.map +1 -1
- package/dist/OTPField.js +1 -1
- package/dist/OTPField.js.map +1 -1
- package/dist/PasswordField.js +3 -3
- package/dist/PasswordField.js.map +1 -1
- package/dist/PhoneField.js +23 -7
- package/dist/PhoneField.js.map +1 -1
- package/dist/Spinner.js +1 -1
- package/dist/Spinner.js.map +1 -1
- package/dist/ThemeToggle.js +2 -2
- package/dist/ThemeToggle.js.map +1 -1
- package/dist/axios.js +125 -56
- package/dist/axios.js.map +1 -1
- package/dist/components/Progress.js +61 -2
- package/dist/components/Progress.js.map +1 -1
- package/dist/createLucideIcon.js +4 -4
- package/dist/createLucideIcon.js.map +1 -1
- package/dist/field.js +2 -36
- package/dist/field.js.map +1 -1
- package/dist/index2.js +130 -54
- package/dist/index2.js.map +1 -1
- package/dist/index3.js +1 -103
- package/dist/index3.js.map +1 -1
- package/dist/index4.js +36 -35
- package/dist/index4.js.map +1 -1
- package/dist/index5.js +303 -3
- package/dist/index5.js.map +1 -1
- package/dist/utils.js +229 -150
- package/dist/utils.js.map +1 -1
- package/package.json +28 -28
- package/dist/index6.js +0 -246
- package/dist/index6.js.map +0 -1
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
|
-
"version": "0.2.
|
|
8
|
+
"version": "0.2.6",
|
|
9
9
|
"type": "module",
|
|
10
10
|
"sideEffects": false,
|
|
11
11
|
"repository": {
|
|
@@ -121,51 +121,51 @@
|
|
|
121
121
|
}
|
|
122
122
|
},
|
|
123
123
|
"devDependencies": {
|
|
124
|
-
"@biomejs/biome": "2.
|
|
124
|
+
"@biomejs/biome": "2.3.11",
|
|
125
125
|
"@storybook/addon-docs": "10.1.11",
|
|
126
126
|
"@storybook/addon-themes": "^10.1.11",
|
|
127
127
|
"@storybook/react-vite": "10.1.11",
|
|
128
|
-
"@tailwindcss/postcss": "^4.1.
|
|
129
|
-
"@tanstack/react-query": "^5.90.
|
|
130
|
-
"@types/node": "^
|
|
131
|
-
"@types/react": "^19.
|
|
132
|
-
"@types/react-dom": "^19.
|
|
133
|
-
"@vitejs/plugin-react": "^
|
|
128
|
+
"@tailwindcss/postcss": "^4.1.18",
|
|
129
|
+
"@tanstack/react-query": "^5.90.19",
|
|
130
|
+
"@types/node": "^25.0.9",
|
|
131
|
+
"@types/react": "^19.2.9",
|
|
132
|
+
"@types/react-dom": "^19.2.3",
|
|
133
|
+
"@vitejs/plugin-react": "^5.1.2",
|
|
134
134
|
"ajv": "^8.17.1",
|
|
135
|
-
"glob": "^
|
|
136
|
-
"react": "19.2.
|
|
137
|
-
"react-dom": "19.2.
|
|
138
|
-
"react-router-dom": "^7.
|
|
135
|
+
"glob": "^13.0.0",
|
|
136
|
+
"react": "19.2.3",
|
|
137
|
+
"react-dom": "19.2.3",
|
|
138
|
+
"react-router-dom": "^7.12.0",
|
|
139
139
|
"storybook": "10.1.11",
|
|
140
|
-
"tailwindcss": "^4.1.
|
|
141
|
-
"tw-animate-css": "^1.
|
|
142
|
-
"typescript": "~5.
|
|
143
|
-
"vite": "^7.1
|
|
140
|
+
"tailwindcss": "^4.1.18",
|
|
141
|
+
"tw-animate-css": "^1.4.0",
|
|
142
|
+
"typescript": "~5.9.3",
|
|
143
|
+
"vite": "^7.3.1",
|
|
144
144
|
"vite-plugin-dts": "^4.5.4"
|
|
145
145
|
},
|
|
146
146
|
"dependencies": {
|
|
147
147
|
"@hookform/resolvers": "^5.2.2",
|
|
148
148
|
"@radix-ui/react-checkbox": "^1.3.3",
|
|
149
149
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
150
|
-
"@radix-ui/react-dropdown-menu": "^2.1.
|
|
151
|
-
"@radix-ui/react-label": "^2.1.
|
|
150
|
+
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
151
|
+
"@radix-ui/react-label": "^2.1.8",
|
|
152
152
|
"@radix-ui/react-popover": "^1.1.15",
|
|
153
|
-
"@radix-ui/react-progress": "^1.1.
|
|
153
|
+
"@radix-ui/react-progress": "^1.1.8",
|
|
154
154
|
"@radix-ui/react-select": "^2.2.6",
|
|
155
155
|
"@radix-ui/react-separator": "^1.1.8",
|
|
156
|
-
"@radix-ui/react-slot": "^1.2.
|
|
157
|
-
"@radix-ui/react-tooltip": "^1.
|
|
158
|
-
"@tailwindcss/vite": "^4.1.
|
|
159
|
-
"axios": "^1.
|
|
156
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
157
|
+
"@radix-ui/react-tooltip": "^1.2.8",
|
|
158
|
+
"@tailwindcss/vite": "^4.1.18",
|
|
159
|
+
"axios": "^1.13.2",
|
|
160
160
|
"class-variance-authority": "^0.7.1",
|
|
161
161
|
"clsx": "^2.1.1",
|
|
162
162
|
"input-otp": "^1.4.2",
|
|
163
|
-
"lucide-react": "^0.
|
|
164
|
-
"react-day-picker": "^9.
|
|
163
|
+
"lucide-react": "^0.562.0",
|
|
164
|
+
"react-day-picker": "^9.13.0",
|
|
165
165
|
"react-hook-form": "^7.71.1",
|
|
166
|
-
"react-phone-number-input": "^3.4.
|
|
167
|
-
"tailwind-merge": "^3.
|
|
168
|
-
"zod": "^4.
|
|
166
|
+
"react-phone-number-input": "^3.4.14",
|
|
167
|
+
"tailwind-merge": "^3.4.0",
|
|
168
|
+
"zod": "^4.3.5"
|
|
169
169
|
},
|
|
170
170
|
"scripts": {
|
|
171
171
|
"dev": "vite",
|
package/dist/index6.js
DELETED
|
@@ -1,246 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { u as useComposedRefs } from './index4.js';
|
|
3
|
-
|
|
4
|
-
// src/primitive.tsx
|
|
5
|
-
function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {
|
|
6
|
-
return function handleEvent(event) {
|
|
7
|
-
originalEventHandler?.(event);
|
|
8
|
-
if (checkForDefaultPrevented === false || !event.defaultPrevented) {
|
|
9
|
-
return ourEventHandler?.(event);
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
// packages/react/use-layout-effect/src/use-layout-effect.tsx
|
|
15
|
-
var useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
// src/use-controllable-state.tsx
|
|
19
|
-
var useInsertionEffect = React[" useInsertionEffect ".trim().toString()] || useLayoutEffect2;
|
|
20
|
-
function useControllableState({
|
|
21
|
-
prop,
|
|
22
|
-
defaultProp,
|
|
23
|
-
onChange = () => {
|
|
24
|
-
},
|
|
25
|
-
caller
|
|
26
|
-
}) {
|
|
27
|
-
const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({
|
|
28
|
-
defaultProp,
|
|
29
|
-
onChange
|
|
30
|
-
});
|
|
31
|
-
const isControlled = prop !== void 0;
|
|
32
|
-
const value = isControlled ? prop : uncontrolledProp;
|
|
33
|
-
{
|
|
34
|
-
const isControlledRef = React.useRef(prop !== void 0);
|
|
35
|
-
React.useEffect(() => {
|
|
36
|
-
const wasControlled = isControlledRef.current;
|
|
37
|
-
if (wasControlled !== isControlled) {
|
|
38
|
-
const from = wasControlled ? "controlled" : "uncontrolled";
|
|
39
|
-
const to = isControlled ? "controlled" : "uncontrolled";
|
|
40
|
-
console.warn(
|
|
41
|
-
`${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`
|
|
42
|
-
);
|
|
43
|
-
}
|
|
44
|
-
isControlledRef.current = isControlled;
|
|
45
|
-
}, [isControlled, caller]);
|
|
46
|
-
}
|
|
47
|
-
const setValue = React.useCallback(
|
|
48
|
-
(nextValue) => {
|
|
49
|
-
if (isControlled) {
|
|
50
|
-
const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
|
|
51
|
-
if (value2 !== prop) {
|
|
52
|
-
onChangeRef.current?.(value2);
|
|
53
|
-
}
|
|
54
|
-
} else {
|
|
55
|
-
setUncontrolledProp(nextValue);
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
[isControlled, prop, setUncontrolledProp, onChangeRef]
|
|
59
|
-
);
|
|
60
|
-
return [value, setValue];
|
|
61
|
-
}
|
|
62
|
-
function useUncontrolledState({
|
|
63
|
-
defaultProp,
|
|
64
|
-
onChange
|
|
65
|
-
}) {
|
|
66
|
-
const [value, setValue] = React.useState(defaultProp);
|
|
67
|
-
const prevValueRef = React.useRef(value);
|
|
68
|
-
const onChangeRef = React.useRef(onChange);
|
|
69
|
-
useInsertionEffect(() => {
|
|
70
|
-
onChangeRef.current = onChange;
|
|
71
|
-
}, [onChange]);
|
|
72
|
-
React.useEffect(() => {
|
|
73
|
-
if (prevValueRef.current !== value) {
|
|
74
|
-
onChangeRef.current?.(value);
|
|
75
|
-
prevValueRef.current = value;
|
|
76
|
-
}
|
|
77
|
-
}, [value, prevValueRef]);
|
|
78
|
-
return [value, setValue, onChangeRef];
|
|
79
|
-
}
|
|
80
|
-
function isFunction(value) {
|
|
81
|
-
return typeof value === "function";
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// packages/react/use-size/src/use-size.tsx
|
|
85
|
-
function useSize(element) {
|
|
86
|
-
const [size, setSize] = React.useState(void 0);
|
|
87
|
-
useLayoutEffect2(() => {
|
|
88
|
-
if (element) {
|
|
89
|
-
setSize({ width: element.offsetWidth, height: element.offsetHeight });
|
|
90
|
-
const resizeObserver = new ResizeObserver((entries) => {
|
|
91
|
-
if (!Array.isArray(entries)) {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
if (!entries.length) {
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
const entry = entries[0];
|
|
98
|
-
let width;
|
|
99
|
-
let height;
|
|
100
|
-
if ("borderBoxSize" in entry) {
|
|
101
|
-
const borderSizeEntry = entry["borderBoxSize"];
|
|
102
|
-
const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;
|
|
103
|
-
width = borderSize["inlineSize"];
|
|
104
|
-
height = borderSize["blockSize"];
|
|
105
|
-
} else {
|
|
106
|
-
width = element.offsetWidth;
|
|
107
|
-
height = element.offsetHeight;
|
|
108
|
-
}
|
|
109
|
-
setSize({ width, height });
|
|
110
|
-
});
|
|
111
|
-
resizeObserver.observe(element, { box: "border-box" });
|
|
112
|
-
return () => resizeObserver.unobserve(element);
|
|
113
|
-
} else {
|
|
114
|
-
setSize(void 0);
|
|
115
|
-
}
|
|
116
|
-
}, [element]);
|
|
117
|
-
return size;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
function useStateMachine(initialState, machine) {
|
|
121
|
-
return React.useReducer((state, event) => {
|
|
122
|
-
const nextState = machine[state][event];
|
|
123
|
-
return nextState ?? state;
|
|
124
|
-
}, initialState);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// src/presence.tsx
|
|
128
|
-
var Presence = (props) => {
|
|
129
|
-
const { present, children } = props;
|
|
130
|
-
const presence = usePresence(present);
|
|
131
|
-
const child = typeof children === "function" ? children({ present: presence.isPresent }) : React.Children.only(children);
|
|
132
|
-
const ref = useComposedRefs(presence.ref, getElementRef(child));
|
|
133
|
-
const forceMount = typeof children === "function";
|
|
134
|
-
return forceMount || presence.isPresent ? React.cloneElement(child, { ref }) : null;
|
|
135
|
-
};
|
|
136
|
-
Presence.displayName = "Presence";
|
|
137
|
-
function usePresence(present) {
|
|
138
|
-
const [node, setNode] = React.useState();
|
|
139
|
-
const stylesRef = React.useRef(null);
|
|
140
|
-
const prevPresentRef = React.useRef(present);
|
|
141
|
-
const prevAnimationNameRef = React.useRef("none");
|
|
142
|
-
const initialState = present ? "mounted" : "unmounted";
|
|
143
|
-
const [state, send] = useStateMachine(initialState, {
|
|
144
|
-
mounted: {
|
|
145
|
-
UNMOUNT: "unmounted",
|
|
146
|
-
ANIMATION_OUT: "unmountSuspended"
|
|
147
|
-
},
|
|
148
|
-
unmountSuspended: {
|
|
149
|
-
MOUNT: "mounted",
|
|
150
|
-
ANIMATION_END: "unmounted"
|
|
151
|
-
},
|
|
152
|
-
unmounted: {
|
|
153
|
-
MOUNT: "mounted"
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
React.useEffect(() => {
|
|
157
|
-
const currentAnimationName = getAnimationName(stylesRef.current);
|
|
158
|
-
prevAnimationNameRef.current = state === "mounted" ? currentAnimationName : "none";
|
|
159
|
-
}, [state]);
|
|
160
|
-
useLayoutEffect2(() => {
|
|
161
|
-
const styles = stylesRef.current;
|
|
162
|
-
const wasPresent = prevPresentRef.current;
|
|
163
|
-
const hasPresentChanged = wasPresent !== present;
|
|
164
|
-
if (hasPresentChanged) {
|
|
165
|
-
const prevAnimationName = prevAnimationNameRef.current;
|
|
166
|
-
const currentAnimationName = getAnimationName(styles);
|
|
167
|
-
if (present) {
|
|
168
|
-
send("MOUNT");
|
|
169
|
-
} else if (currentAnimationName === "none" || styles?.display === "none") {
|
|
170
|
-
send("UNMOUNT");
|
|
171
|
-
} else {
|
|
172
|
-
const isAnimating = prevAnimationName !== currentAnimationName;
|
|
173
|
-
if (wasPresent && isAnimating) {
|
|
174
|
-
send("ANIMATION_OUT");
|
|
175
|
-
} else {
|
|
176
|
-
send("UNMOUNT");
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
prevPresentRef.current = present;
|
|
180
|
-
}
|
|
181
|
-
}, [present, send]);
|
|
182
|
-
useLayoutEffect2(() => {
|
|
183
|
-
if (node) {
|
|
184
|
-
let timeoutId;
|
|
185
|
-
const ownerWindow = node.ownerDocument.defaultView ?? window;
|
|
186
|
-
const handleAnimationEnd = (event) => {
|
|
187
|
-
const currentAnimationName = getAnimationName(stylesRef.current);
|
|
188
|
-
const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));
|
|
189
|
-
if (event.target === node && isCurrentAnimation) {
|
|
190
|
-
send("ANIMATION_END");
|
|
191
|
-
if (!prevPresentRef.current) {
|
|
192
|
-
const currentFillMode = node.style.animationFillMode;
|
|
193
|
-
node.style.animationFillMode = "forwards";
|
|
194
|
-
timeoutId = ownerWindow.setTimeout(() => {
|
|
195
|
-
if (node.style.animationFillMode === "forwards") {
|
|
196
|
-
node.style.animationFillMode = currentFillMode;
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
};
|
|
202
|
-
const handleAnimationStart = (event) => {
|
|
203
|
-
if (event.target === node) {
|
|
204
|
-
prevAnimationNameRef.current = getAnimationName(stylesRef.current);
|
|
205
|
-
}
|
|
206
|
-
};
|
|
207
|
-
node.addEventListener("animationstart", handleAnimationStart);
|
|
208
|
-
node.addEventListener("animationcancel", handleAnimationEnd);
|
|
209
|
-
node.addEventListener("animationend", handleAnimationEnd);
|
|
210
|
-
return () => {
|
|
211
|
-
ownerWindow.clearTimeout(timeoutId);
|
|
212
|
-
node.removeEventListener("animationstart", handleAnimationStart);
|
|
213
|
-
node.removeEventListener("animationcancel", handleAnimationEnd);
|
|
214
|
-
node.removeEventListener("animationend", handleAnimationEnd);
|
|
215
|
-
};
|
|
216
|
-
} else {
|
|
217
|
-
send("ANIMATION_END");
|
|
218
|
-
}
|
|
219
|
-
}, [node, send]);
|
|
220
|
-
return {
|
|
221
|
-
isPresent: ["mounted", "unmountSuspended"].includes(state),
|
|
222
|
-
ref: React.useCallback((node2) => {
|
|
223
|
-
stylesRef.current = node2 ? getComputedStyle(node2) : null;
|
|
224
|
-
setNode(node2);
|
|
225
|
-
}, [])
|
|
226
|
-
};
|
|
227
|
-
}
|
|
228
|
-
function getAnimationName(styles) {
|
|
229
|
-
return styles?.animationName || "none";
|
|
230
|
-
}
|
|
231
|
-
function getElementRef(element) {
|
|
232
|
-
let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
|
|
233
|
-
let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
234
|
-
if (mayWarn) {
|
|
235
|
-
return element.ref;
|
|
236
|
-
}
|
|
237
|
-
getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
|
|
238
|
-
mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
239
|
-
if (mayWarn) {
|
|
240
|
-
return element.props.ref;
|
|
241
|
-
}
|
|
242
|
-
return element.props.ref || element.ref;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
export { Presence as P, useSize as a, useLayoutEffect2 as b, composeEventHandlers as c, useControllableState as u };
|
|
246
|
-
//# sourceMappingURL=index6.js.map
|
package/dist/index6.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index6.js","sources":["../node_modules/.pnpm/@radix-ui+primitive@1.1.3/node_modules/@radix-ui/primitive/dist/index.mjs","../node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.1_@types+react@19.1.6_react@19.2.1/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.2.2_@types+react@19.1.6_react@19.2.1/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../node_modules/.pnpm/@radix-ui+react-use-size@1.1.1_@types+react@19.1.6_react@19.2.1/node_modules/@radix-ui/react-use-size/dist/index.mjs","../node_modules/.pnpm/@radix-ui+react-presence@1.1.5_@types+react-dom@19.1.5_@types+react@19.1.6__@types+reac_7b67a14daea702da9cb176c126a918cb/node_modules/@radix-ui/react-presence/dist/index.mjs"],"sourcesContent":["// src/primitive.tsx\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nfunction getOwnerWindow(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access window outside of the DOM\");\n }\n return element?.ownerDocument?.defaultView ?? window;\n}\nfunction getOwnerDocument(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access document outside of the DOM\");\n }\n return element?.ownerDocument ?? document;\n}\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\nexport {\n canUseDOM,\n composeEventHandlers,\n getActiveElement,\n getOwnerDocument,\n getOwnerWindow,\n isFrame\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/use-layout-effect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n },\n caller\n}) {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n if (true) {\n const isControlledRef = React.useRef(prop !== void 0);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value2 !== prop) {\n onChangeRef.current?.(value2);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n return [value, setValue, onChangeRef];\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n const isControlled = controlledState !== void 0;\n const onChange = useEffectEvent(onChangeProp);\n if (true) {\n const isControlledRef = React2.useRef(controlledState !== void 0);\n React2.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const args = [{ ...initialArg, state: defaultProp }];\n if (init) {\n args.push(init);\n }\n const [internalState, dispatch] = React2.useReducer(\n (state2, action) => {\n if (action.type === SYNC_STATE) {\n return { ...state2, state: action.state };\n }\n const next = reducer(state2, action);\n if (isControlled && !Object.is(next.state, state2.state)) {\n onChange(next.state);\n }\n return next;\n },\n ...args\n );\n const uncontrolledState = internalState.state;\n const prevValueRef = React2.useRef(uncontrolledState);\n React2.useEffect(() => {\n if (prevValueRef.current !== uncontrolledState) {\n prevValueRef.current = uncontrolledState;\n if (!isControlled) {\n onChange(uncontrolledState);\n }\n }\n }, [onChange, uncontrolledState, prevValueRef, isControlled]);\n const state = React2.useMemo(() => {\n const isControlled2 = controlledState !== void 0;\n if (isControlled2) {\n return { ...internalState, state: controlledState };\n }\n return internalState;\n }, [internalState, controlledState]);\n React2.useEffect(() => {\n if (isControlled && !Object.is(controlledState, internalState.state)) {\n dispatch({ type: SYNC_STATE, state: controlledState });\n }\n }, [controlledState, internalState.state, isControlled]);\n return [state, dispatch];\n}\nexport {\n useControllableState,\n useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/use-size.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// src/use-state-machine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// src/presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef(null);\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n stylesRef.current = node2 ? getComputedStyle(node2) : null;\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Presence;\nexport {\n Presence,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["useLayoutEffect","React2"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
|