lizaui 9.0.12 → 9.0.15
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/button/index.es.js +1 -1
- package/dist/calendar/index.es.js +1 -1
- package/dist/checkbox/index.es.js +1 -1
- package/dist/chunks/{button-CA3Y2GZ1.js → button-B0fpJrMg.js} +2 -2
- package/dist/chunks/{button-CA3Y2GZ1.js.map → button-B0fpJrMg.js.map} +1 -1
- package/dist/chunks/{checkbox-qzZKMLRN.js → checkbox-C1Sssumg.js} +2 -2
- package/dist/chunks/{checkbox-qzZKMLRN.js.map → checkbox-C1Sssumg.js.map} +1 -1
- package/dist/chunks/{floating-ui.dom-N5ROFCJy.js → floating-ui.dom-B9hvXzxg.js} +11 -1
- package/dist/chunks/{floating-ui.dom-N5ROFCJy.js.map → floating-ui.dom-B9hvXzxg.js.map} +1 -1
- package/dist/chunks/{floating-ui.dom-NqZWWqNg.js → floating-ui.dom-DRSBqyFN.js} +14 -4
- package/dist/chunks/{floating-ui.dom-NqZWWqNg.js.map → floating-ui.dom-DRSBqyFN.js.map} +1 -1
- package/dist/chunks/floating-ui.react-dom-BUZLdP4-.js +294 -0
- package/dist/chunks/floating-ui.react-dom-BUZLdP4-.js.map +1 -0
- package/dist/chunks/floating-ui.react-dom-CI1b2uK3.js +310 -0
- package/dist/chunks/floating-ui.react-dom-CI1b2uK3.js.map +1 -0
- package/dist/chunks/{index-DiC9dI6_.js → index-B4RTH1-D.js} +4 -4
- package/dist/chunks/{index-DiC9dI6_.js.map → index-B4RTH1-D.js.map} +1 -1
- package/dist/chunks/{scroll-area-BboZbU1u.js → scroll-area-B-5YmafW.js} +27 -27
- package/dist/chunks/{scroll-area-BboZbU1u.js.map → scroll-area-B-5YmafW.js.map} +1 -1
- package/dist/chunks/{scroll-area-DKkgpH-S.js → scroll-area-WNAy-5-i.js} +4 -4
- package/dist/chunks/{scroll-area-DKkgpH-S.js.map → scroll-area-WNAy-5-i.js.map} +1 -1
- package/dist/chunks/{select-MSYUKpRI.js → select-C9BYUpJm.js} +439 -83
- package/dist/chunks/select-C9BYUpJm.js.map +1 -0
- package/dist/chunks/{select-s-z596Y4.js → select-CLIZOVIj.js} +367 -11
- package/dist/chunks/select-CLIZOVIj.js.map +1 -0
- package/dist/chunks/{textarea-By2Vv44z.js → textarea-D2_KC-J4.js} +587 -36
- package/dist/chunks/textarea-D2_KC-J4.js.map +1 -0
- package/dist/chunks/{textarea-ClJsk9Gp.js → textarea-_HQpXiCX.js} +586 -35
- package/dist/chunks/textarea-_HQpXiCX.js.map +1 -0
- package/dist/chunks/tooltip-CjmRm1rv.js +1937 -0
- package/dist/chunks/tooltip-CjmRm1rv.js.map +1 -0
- package/dist/chunks/tooltip-o938-GAz.js +1921 -0
- package/dist/chunks/tooltip-o938-GAz.js.map +1 -0
- package/dist/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/divider/index.es.js +1 -1
- package/dist/modal/index.es.js +1 -1
- package/dist/pagination/index.cjs.js +2 -2
- package/dist/pagination/index.es.js +3 -3
- package/dist/phone-input/index.cjs.js +2 -2
- package/dist/phone-input/index.es.js +3 -3
- package/dist/select-input/index.cjs.js +1 -1
- package/dist/select-input/index.es.js +2 -2
- package/dist/table/index.cjs.js +1 -1
- package/dist/table/index.es.js +2 -2
- package/dist/time-input/index.cjs.js +1 -1
- package/dist/time-input/index.es.js +2 -2
- package/dist/tooltip/index.cjs.js +1 -1
- package/dist/tooltip/index.es.js +1 -1
- package/dist/ui/index.cjs.js +290 -292
- package/dist/ui/index.cjs.js.map +1 -1
- package/dist/ui/index.es.js +190 -192
- package/dist/ui/index.es.js.map +1 -1
- package/package.json +1 -2
- package/dist/chunks/index-CuySPbdY.js +0 -559
- package/dist/chunks/index-CuySPbdY.js.map +0 -1
- package/dist/chunks/index-DBDBh58Q.js +0 -575
- package/dist/chunks/index-DBDBh58Q.js.map +0 -1
- package/dist/chunks/index-DNSql2gU.js +0 -662
- package/dist/chunks/index-DNSql2gU.js.map +0 -1
- package/dist/chunks/index-DlZi5TkN.js +0 -646
- package/dist/chunks/index-DlZi5TkN.js.map +0 -1
- package/dist/chunks/select-MSYUKpRI.js.map +0 -1
- package/dist/chunks/select-s-z596Y4.js.map +0 -1
- package/dist/chunks/textarea-By2Vv44z.js.map +0 -1
- package/dist/chunks/textarea-ClJsk9Gp.js.map +0 -1
- package/dist/chunks/tooltip-BP--5Wj2.js +0 -525
- package/dist/chunks/tooltip-BP--5Wj2.js.map +0 -1
- package/dist/chunks/tooltip-KggPQa5m.js +0 -541
- package/dist/chunks/tooltip-KggPQa5m.js.map +0 -1
- package/dist/components/tooltip/tooltip-nice.d.ts +0 -11
- package/dist/components/tooltip/tooltip-nice.d.ts.map +0 -1
- package/dist/components/ui/tooltip.d.ts +0 -8
- package/dist/components/ui/tooltip.d.ts.map +0 -1
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
const jsxRuntime = require("react/jsx-runtime");
|
|
3
3
|
const React = require("react");
|
|
4
4
|
const ReactDOM = require("react-dom");
|
|
5
|
-
const index$
|
|
6
|
-
const
|
|
7
|
-
const index
|
|
8
|
-
const
|
|
9
|
-
const
|
|
5
|
+
const index$1 = require("./index-BPW1Qzmi.js");
|
|
6
|
+
const textarea = require("./textarea-D2_KC-J4.js");
|
|
7
|
+
const index = require("./index-C_sOsPRt.js");
|
|
8
|
+
const floatingUi_reactDom = require("./floating-ui.react-dom-CI1b2uK3.js");
|
|
9
|
+
const floatingUi_dom = require("./floating-ui.dom-B9hvXzxg.js");
|
|
10
10
|
const utils = require("./utils-ij3i9zTT.js");
|
|
11
11
|
function _interopNamespaceDefault(e) {
|
|
12
12
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
@@ -28,7 +28,7 @@ const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
|
|
|
28
28
|
const ReactDOM__namespace = /* @__PURE__ */ _interopNamespaceDefault(ReactDOM);
|
|
29
29
|
function createCollection(name) {
|
|
30
30
|
const PROVIDER_NAME = name + "CollectionProvider";
|
|
31
|
-
const [createCollectionContext, createCollectionScope2] =
|
|
31
|
+
const [createCollectionContext, createCollectionScope2] = textarea.createContextScope(PROVIDER_NAME);
|
|
32
32
|
const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(
|
|
33
33
|
PROVIDER_NAME,
|
|
34
34
|
{ collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }
|
|
@@ -41,24 +41,24 @@ function createCollection(name) {
|
|
|
41
41
|
};
|
|
42
42
|
CollectionProvider.displayName = PROVIDER_NAME;
|
|
43
43
|
const COLLECTION_SLOT_NAME = name + "CollectionSlot";
|
|
44
|
-
const CollectionSlotImpl = index
|
|
44
|
+
const CollectionSlotImpl = index.createSlot(COLLECTION_SLOT_NAME);
|
|
45
45
|
const CollectionSlot = React.forwardRef(
|
|
46
46
|
(props, forwardedRef) => {
|
|
47
47
|
const { scope, children } = props;
|
|
48
48
|
const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
|
|
49
|
-
const composedRefs = index
|
|
49
|
+
const composedRefs = index.useComposedRefs(forwardedRef, context.collectionRef);
|
|
50
50
|
return /* @__PURE__ */ jsxRuntime.jsx(CollectionSlotImpl, { ref: composedRefs, children });
|
|
51
51
|
}
|
|
52
52
|
);
|
|
53
53
|
CollectionSlot.displayName = COLLECTION_SLOT_NAME;
|
|
54
54
|
const ITEM_SLOT_NAME = name + "CollectionItemSlot";
|
|
55
55
|
const ITEM_DATA_ATTR = "data-radix-collection-item";
|
|
56
|
-
const CollectionItemSlotImpl = index
|
|
56
|
+
const CollectionItemSlotImpl = index.createSlot(ITEM_SLOT_NAME);
|
|
57
57
|
const CollectionItemSlot = React.forwardRef(
|
|
58
58
|
(props, forwardedRef) => {
|
|
59
59
|
const { scope, children, ...itemData } = props;
|
|
60
60
|
const ref = React.useRef(null);
|
|
61
|
-
const composedRefs = index
|
|
61
|
+
const composedRefs = index.useComposedRefs(forwardedRef, ref);
|
|
62
62
|
const context = useCollectionContext(ITEM_SLOT_NAME, scope);
|
|
63
63
|
React.useEffect(() => {
|
|
64
64
|
context.itemMap.set(ref, { ref, ...itemData });
|
|
@@ -88,8 +88,329 @@ function createCollection(name) {
|
|
|
88
88
|
createCollectionScope2
|
|
89
89
|
];
|
|
90
90
|
}
|
|
91
|
+
var NAME$1 = "Arrow";
|
|
92
|
+
var Arrow$1 = React__namespace.forwardRef((props, forwardedRef) => {
|
|
93
|
+
const { children, width = 10, height = 5, ...arrowProps } = props;
|
|
94
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
95
|
+
textarea.Primitive.svg,
|
|
96
|
+
{
|
|
97
|
+
...arrowProps,
|
|
98
|
+
ref: forwardedRef,
|
|
99
|
+
width,
|
|
100
|
+
height,
|
|
101
|
+
viewBox: "0 0 30 10",
|
|
102
|
+
preserveAspectRatio: "none",
|
|
103
|
+
children: props.asChild ? children : /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: "0,0 30,0 15,10" })
|
|
104
|
+
}
|
|
105
|
+
);
|
|
106
|
+
});
|
|
107
|
+
Arrow$1.displayName = NAME$1;
|
|
108
|
+
var Root$1 = Arrow$1;
|
|
109
|
+
function useSize(element) {
|
|
110
|
+
const [size, setSize] = React__namespace.useState(void 0);
|
|
111
|
+
textarea.useLayoutEffect2(() => {
|
|
112
|
+
if (element) {
|
|
113
|
+
setSize({ width: element.offsetWidth, height: element.offsetHeight });
|
|
114
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
115
|
+
if (!Array.isArray(entries)) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (!entries.length) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const entry = entries[0];
|
|
122
|
+
let width;
|
|
123
|
+
let height;
|
|
124
|
+
if ("borderBoxSize" in entry) {
|
|
125
|
+
const borderSizeEntry = entry["borderBoxSize"];
|
|
126
|
+
const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;
|
|
127
|
+
width = borderSize["inlineSize"];
|
|
128
|
+
height = borderSize["blockSize"];
|
|
129
|
+
} else {
|
|
130
|
+
width = element.offsetWidth;
|
|
131
|
+
height = element.offsetHeight;
|
|
132
|
+
}
|
|
133
|
+
setSize({ width, height });
|
|
134
|
+
});
|
|
135
|
+
resizeObserver.observe(element, { box: "border-box" });
|
|
136
|
+
return () => resizeObserver.unobserve(element);
|
|
137
|
+
} else {
|
|
138
|
+
setSize(void 0);
|
|
139
|
+
}
|
|
140
|
+
}, [element]);
|
|
141
|
+
return size;
|
|
142
|
+
}
|
|
143
|
+
var POPPER_NAME = "Popper";
|
|
144
|
+
var [createPopperContext, createPopperScope] = textarea.createContextScope(POPPER_NAME);
|
|
145
|
+
var [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);
|
|
146
|
+
var Popper = (props) => {
|
|
147
|
+
const { __scopePopper, children } = props;
|
|
148
|
+
const [anchor, setAnchor] = React__namespace.useState(null);
|
|
149
|
+
return /* @__PURE__ */ jsxRuntime.jsx(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
|
|
150
|
+
};
|
|
151
|
+
Popper.displayName = POPPER_NAME;
|
|
152
|
+
var ANCHOR_NAME = "PopperAnchor";
|
|
153
|
+
var PopperAnchor = React__namespace.forwardRef(
|
|
154
|
+
(props, forwardedRef) => {
|
|
155
|
+
const { __scopePopper, virtualRef, ...anchorProps } = props;
|
|
156
|
+
const context = usePopperContext(ANCHOR_NAME, __scopePopper);
|
|
157
|
+
const ref = React__namespace.useRef(null);
|
|
158
|
+
const composedRefs = index.useComposedRefs(forwardedRef, ref);
|
|
159
|
+
const anchorRef = React__namespace.useRef(null);
|
|
160
|
+
React__namespace.useEffect(() => {
|
|
161
|
+
const previousAnchor = anchorRef.current;
|
|
162
|
+
anchorRef.current = virtualRef?.current || ref.current;
|
|
163
|
+
if (previousAnchor !== anchorRef.current) {
|
|
164
|
+
context.onAnchorChange(anchorRef.current);
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
return virtualRef ? null : /* @__PURE__ */ jsxRuntime.jsx(textarea.Primitive.div, { ...anchorProps, ref: composedRefs });
|
|
168
|
+
}
|
|
169
|
+
);
|
|
170
|
+
PopperAnchor.displayName = ANCHOR_NAME;
|
|
171
|
+
var CONTENT_NAME$1 = "PopperContent";
|
|
172
|
+
var [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME$1);
|
|
173
|
+
var PopperContent = React__namespace.forwardRef(
|
|
174
|
+
(props, forwardedRef) => {
|
|
175
|
+
const {
|
|
176
|
+
__scopePopper,
|
|
177
|
+
side = "bottom",
|
|
178
|
+
sideOffset = 0,
|
|
179
|
+
align = "center",
|
|
180
|
+
alignOffset = 0,
|
|
181
|
+
arrowPadding = 0,
|
|
182
|
+
avoidCollisions = true,
|
|
183
|
+
collisionBoundary = [],
|
|
184
|
+
collisionPadding: collisionPaddingProp = 0,
|
|
185
|
+
sticky = "partial",
|
|
186
|
+
hideWhenDetached = false,
|
|
187
|
+
updatePositionStrategy = "optimized",
|
|
188
|
+
onPlaced,
|
|
189
|
+
...contentProps
|
|
190
|
+
} = props;
|
|
191
|
+
const context = usePopperContext(CONTENT_NAME$1, __scopePopper);
|
|
192
|
+
const [content, setContent] = React__namespace.useState(null);
|
|
193
|
+
const composedRefs = index.useComposedRefs(forwardedRef, (node) => setContent(node));
|
|
194
|
+
const [arrow, setArrow] = React__namespace.useState(null);
|
|
195
|
+
const arrowSize = useSize(arrow);
|
|
196
|
+
const arrowWidth = arrowSize?.width ?? 0;
|
|
197
|
+
const arrowHeight = arrowSize?.height ?? 0;
|
|
198
|
+
const desiredPlacement = side + (align !== "center" ? "-" + align : "");
|
|
199
|
+
const collisionPadding = typeof collisionPaddingProp === "number" ? collisionPaddingProp : { top: 0, right: 0, bottom: 0, left: 0, ...collisionPaddingProp };
|
|
200
|
+
const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [collisionBoundary];
|
|
201
|
+
const hasExplicitBoundaries = boundary.length > 0;
|
|
202
|
+
const detectOverflowOptions = {
|
|
203
|
+
padding: collisionPadding,
|
|
204
|
+
boundary: boundary.filter(isNotNull),
|
|
205
|
+
// with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
|
|
206
|
+
altBoundary: hasExplicitBoundaries
|
|
207
|
+
};
|
|
208
|
+
const { refs, floatingStyles, placement, isPositioned, middlewareData } = floatingUi_reactDom.useFloating({
|
|
209
|
+
// default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues
|
|
210
|
+
strategy: "fixed",
|
|
211
|
+
placement: desiredPlacement,
|
|
212
|
+
whileElementsMounted: (...args) => {
|
|
213
|
+
const cleanup = floatingUi_dom.autoUpdate(...args, {
|
|
214
|
+
animationFrame: updatePositionStrategy === "always"
|
|
215
|
+
});
|
|
216
|
+
return cleanup;
|
|
217
|
+
},
|
|
218
|
+
elements: {
|
|
219
|
+
reference: context.anchor
|
|
220
|
+
},
|
|
221
|
+
middleware: [
|
|
222
|
+
floatingUi_reactDom.offset({ mainAxis: sideOffset + arrowHeight, alignmentAxis: alignOffset }),
|
|
223
|
+
avoidCollisions && floatingUi_reactDom.shift({
|
|
224
|
+
mainAxis: true,
|
|
225
|
+
crossAxis: false,
|
|
226
|
+
limiter: sticky === "partial" ? floatingUi_reactDom.limitShift() : void 0,
|
|
227
|
+
...detectOverflowOptions
|
|
228
|
+
}),
|
|
229
|
+
avoidCollisions && floatingUi_reactDom.flip({ ...detectOverflowOptions }),
|
|
230
|
+
floatingUi_reactDom.size({
|
|
231
|
+
...detectOverflowOptions,
|
|
232
|
+
apply: ({ elements, rects, availableWidth, availableHeight }) => {
|
|
233
|
+
const { width: anchorWidth, height: anchorHeight } = rects.reference;
|
|
234
|
+
const contentStyle = elements.floating.style;
|
|
235
|
+
contentStyle.setProperty("--radix-popper-available-width", `${availableWidth}px`);
|
|
236
|
+
contentStyle.setProperty("--radix-popper-available-height", `${availableHeight}px`);
|
|
237
|
+
contentStyle.setProperty("--radix-popper-anchor-width", `${anchorWidth}px`);
|
|
238
|
+
contentStyle.setProperty("--radix-popper-anchor-height", `${anchorHeight}px`);
|
|
239
|
+
}
|
|
240
|
+
}),
|
|
241
|
+
arrow && floatingUi_reactDom.arrow({ element: arrow, padding: arrowPadding }),
|
|
242
|
+
transformOrigin({ arrowWidth, arrowHeight }),
|
|
243
|
+
hideWhenDetached && floatingUi_reactDom.hide({ strategy: "referenceHidden", ...detectOverflowOptions })
|
|
244
|
+
]
|
|
245
|
+
});
|
|
246
|
+
const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
|
|
247
|
+
const handlePlaced = textarea.useCallbackRef(onPlaced);
|
|
248
|
+
textarea.useLayoutEffect2(() => {
|
|
249
|
+
if (isPositioned) {
|
|
250
|
+
handlePlaced?.();
|
|
251
|
+
}
|
|
252
|
+
}, [isPositioned, handlePlaced]);
|
|
253
|
+
const arrowX = middlewareData.arrow?.x;
|
|
254
|
+
const arrowY = middlewareData.arrow?.y;
|
|
255
|
+
const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;
|
|
256
|
+
const [contentZIndex, setContentZIndex] = React__namespace.useState();
|
|
257
|
+
textarea.useLayoutEffect2(() => {
|
|
258
|
+
if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
|
|
259
|
+
}, [content]);
|
|
260
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
261
|
+
"div",
|
|
262
|
+
{
|
|
263
|
+
ref: refs.setFloating,
|
|
264
|
+
"data-radix-popper-content-wrapper": "",
|
|
265
|
+
style: {
|
|
266
|
+
...floatingStyles,
|
|
267
|
+
transform: isPositioned ? floatingStyles.transform : "translate(0, -200%)",
|
|
268
|
+
// keep off the page when measuring
|
|
269
|
+
minWidth: "max-content",
|
|
270
|
+
zIndex: contentZIndex,
|
|
271
|
+
["--radix-popper-transform-origin"]: [
|
|
272
|
+
middlewareData.transformOrigin?.x,
|
|
273
|
+
middlewareData.transformOrigin?.y
|
|
274
|
+
].join(" "),
|
|
275
|
+
// hide the content if using the hide middleware and should be hidden
|
|
276
|
+
// set visibility to hidden and disable pointer events so the UI behaves
|
|
277
|
+
// as if the PopperContent isn't there at all
|
|
278
|
+
...middlewareData.hide?.referenceHidden && {
|
|
279
|
+
visibility: "hidden",
|
|
280
|
+
pointerEvents: "none"
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
dir: props.dir,
|
|
284
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
285
|
+
PopperContentProvider,
|
|
286
|
+
{
|
|
287
|
+
scope: __scopePopper,
|
|
288
|
+
placedSide,
|
|
289
|
+
onArrowChange: setArrow,
|
|
290
|
+
arrowX,
|
|
291
|
+
arrowY,
|
|
292
|
+
shouldHideArrow: cannotCenterArrow,
|
|
293
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
294
|
+
textarea.Primitive.div,
|
|
295
|
+
{
|
|
296
|
+
"data-side": placedSide,
|
|
297
|
+
"data-align": placedAlign,
|
|
298
|
+
...contentProps,
|
|
299
|
+
ref: composedRefs,
|
|
300
|
+
style: {
|
|
301
|
+
...contentProps.style,
|
|
302
|
+
// if the PopperContent hasn't been placed yet (not all measurements done)
|
|
303
|
+
// we prevent animations so that users's animation don't kick in too early referring wrong sides
|
|
304
|
+
animation: !isPositioned ? "none" : void 0
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
)
|
|
308
|
+
}
|
|
309
|
+
)
|
|
310
|
+
}
|
|
311
|
+
);
|
|
312
|
+
}
|
|
313
|
+
);
|
|
314
|
+
PopperContent.displayName = CONTENT_NAME$1;
|
|
315
|
+
var ARROW_NAME$1 = "PopperArrow";
|
|
316
|
+
var OPPOSITE_SIDE = {
|
|
317
|
+
top: "bottom",
|
|
318
|
+
right: "left",
|
|
319
|
+
bottom: "top",
|
|
320
|
+
left: "right"
|
|
321
|
+
};
|
|
322
|
+
var PopperArrow = React__namespace.forwardRef(function PopperArrow2(props, forwardedRef) {
|
|
323
|
+
const { __scopePopper, ...arrowProps } = props;
|
|
324
|
+
const contentContext = useContentContext(ARROW_NAME$1, __scopePopper);
|
|
325
|
+
const baseSide = OPPOSITE_SIDE[contentContext.placedSide];
|
|
326
|
+
return (
|
|
327
|
+
// we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
|
|
328
|
+
// doesn't report size as we'd expect on SVG elements.
|
|
329
|
+
// it reports their bounding box which is effectively the largest path inside the SVG.
|
|
330
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
331
|
+
"span",
|
|
332
|
+
{
|
|
333
|
+
ref: contentContext.onArrowChange,
|
|
334
|
+
style: {
|
|
335
|
+
position: "absolute",
|
|
336
|
+
left: contentContext.arrowX,
|
|
337
|
+
top: contentContext.arrowY,
|
|
338
|
+
[baseSide]: 0,
|
|
339
|
+
transformOrigin: {
|
|
340
|
+
top: "",
|
|
341
|
+
right: "0 0",
|
|
342
|
+
bottom: "center 0",
|
|
343
|
+
left: "100% 0"
|
|
344
|
+
}[contentContext.placedSide],
|
|
345
|
+
transform: {
|
|
346
|
+
top: "translateY(100%)",
|
|
347
|
+
right: "translateY(50%) rotate(90deg) translateX(-50%)",
|
|
348
|
+
bottom: `rotate(180deg)`,
|
|
349
|
+
left: "translateY(50%) rotate(-90deg) translateX(50%)"
|
|
350
|
+
}[contentContext.placedSide],
|
|
351
|
+
visibility: contentContext.shouldHideArrow ? "hidden" : void 0
|
|
352
|
+
},
|
|
353
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
354
|
+
Root$1,
|
|
355
|
+
{
|
|
356
|
+
...arrowProps,
|
|
357
|
+
ref: forwardedRef,
|
|
358
|
+
style: {
|
|
359
|
+
...arrowProps.style,
|
|
360
|
+
// ensures the element can be measured correctly (mostly for if SVG)
|
|
361
|
+
display: "block"
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
)
|
|
365
|
+
}
|
|
366
|
+
)
|
|
367
|
+
);
|
|
368
|
+
});
|
|
369
|
+
PopperArrow.displayName = ARROW_NAME$1;
|
|
370
|
+
function isNotNull(value) {
|
|
371
|
+
return value !== null;
|
|
372
|
+
}
|
|
373
|
+
var transformOrigin = (options) => ({
|
|
374
|
+
name: "transformOrigin",
|
|
375
|
+
options,
|
|
376
|
+
fn(data) {
|
|
377
|
+
const { placement, rects, middlewareData } = data;
|
|
378
|
+
const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;
|
|
379
|
+
const isArrowHidden = cannotCenterArrow;
|
|
380
|
+
const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;
|
|
381
|
+
const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;
|
|
382
|
+
const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
|
|
383
|
+
const noArrowAlign = { start: "0%", center: "50%", end: "100%" }[placedAlign];
|
|
384
|
+
const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;
|
|
385
|
+
const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;
|
|
386
|
+
let x = "";
|
|
387
|
+
let y = "";
|
|
388
|
+
if (placedSide === "bottom") {
|
|
389
|
+
x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;
|
|
390
|
+
y = `${-arrowHeight}px`;
|
|
391
|
+
} else if (placedSide === "top") {
|
|
392
|
+
x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;
|
|
393
|
+
y = `${rects.floating.height + arrowHeight}px`;
|
|
394
|
+
} else if (placedSide === "right") {
|
|
395
|
+
x = `${-arrowHeight}px`;
|
|
396
|
+
y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;
|
|
397
|
+
} else if (placedSide === "left") {
|
|
398
|
+
x = `${rects.floating.width + arrowHeight}px`;
|
|
399
|
+
y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;
|
|
400
|
+
}
|
|
401
|
+
return { data: { x, y } };
|
|
402
|
+
}
|
|
403
|
+
});
|
|
404
|
+
function getSideAndAlignFromPlacement(placement) {
|
|
405
|
+
const [side, align = "center"] = placement.split("-");
|
|
406
|
+
return [side, align];
|
|
407
|
+
}
|
|
408
|
+
var Root2$1 = Popper;
|
|
409
|
+
var Anchor = PopperAnchor;
|
|
410
|
+
var Content = PopperContent;
|
|
411
|
+
var Arrow = PopperArrow;
|
|
91
412
|
const __iconNode = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
|
|
92
|
-
const ChevronUp = index$
|
|
413
|
+
const ChevronUp = index$1.createLucideIcon("chevron-up", __iconNode);
|
|
93
414
|
function usePrevious(value) {
|
|
94
415
|
const ref = React__namespace.useRef({ value, previous: value });
|
|
95
416
|
return React__namespace.useMemo(() => {
|
|
@@ -100,15 +421,43 @@ function usePrevious(value) {
|
|
|
100
421
|
return ref.current.previous;
|
|
101
422
|
}, [value]);
|
|
102
423
|
}
|
|
424
|
+
var VISUALLY_HIDDEN_STYLES = Object.freeze({
|
|
425
|
+
// See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
|
|
426
|
+
position: "absolute",
|
|
427
|
+
border: 0,
|
|
428
|
+
width: 1,
|
|
429
|
+
height: 1,
|
|
430
|
+
padding: 0,
|
|
431
|
+
margin: -1,
|
|
432
|
+
overflow: "hidden",
|
|
433
|
+
clip: "rect(0, 0, 0, 0)",
|
|
434
|
+
whiteSpace: "nowrap",
|
|
435
|
+
wordWrap: "normal"
|
|
436
|
+
});
|
|
437
|
+
var NAME = "VisuallyHidden";
|
|
438
|
+
var VisuallyHidden = React__namespace.forwardRef(
|
|
439
|
+
(props, forwardedRef) => {
|
|
440
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
441
|
+
textarea.Primitive.span,
|
|
442
|
+
{
|
|
443
|
+
...props,
|
|
444
|
+
ref: forwardedRef,
|
|
445
|
+
style: { ...VISUALLY_HIDDEN_STYLES, ...props.style }
|
|
446
|
+
}
|
|
447
|
+
);
|
|
448
|
+
}
|
|
449
|
+
);
|
|
450
|
+
VisuallyHidden.displayName = NAME;
|
|
451
|
+
var Root = VisuallyHidden;
|
|
103
452
|
var OPEN_KEYS = [" ", "Enter", "ArrowUp", "ArrowDown"];
|
|
104
453
|
var SELECTION_KEYS = [" ", "Enter"];
|
|
105
454
|
var SELECT_NAME = "Select";
|
|
106
455
|
var [Collection, useCollection, createCollectionScope] = createCollection(SELECT_NAME);
|
|
107
|
-
var [createSelectContext
|
|
456
|
+
var [createSelectContext] = textarea.createContextScope(SELECT_NAME, [
|
|
108
457
|
createCollectionScope,
|
|
109
|
-
|
|
458
|
+
createPopperScope
|
|
110
459
|
]);
|
|
111
|
-
var usePopperScope =
|
|
460
|
+
var usePopperScope = createPopperScope();
|
|
112
461
|
var [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);
|
|
113
462
|
var [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);
|
|
114
463
|
var Select$1 = (props) => {
|
|
@@ -132,14 +481,14 @@ var Select$1 = (props) => {
|
|
|
132
481
|
const [trigger, setTrigger] = React__namespace.useState(null);
|
|
133
482
|
const [valueNode, setValueNode] = React__namespace.useState(null);
|
|
134
483
|
const [valueNodeHasChildren, setValueNodeHasChildren] = React__namespace.useState(false);
|
|
135
|
-
const direction = index$
|
|
136
|
-
const [open, setOpen] =
|
|
484
|
+
const direction = index$1.useDirection(dir);
|
|
485
|
+
const [open, setOpen] = textarea.useControllableState({
|
|
137
486
|
prop: openProp,
|
|
138
487
|
defaultProp: defaultOpen ?? false,
|
|
139
488
|
onChange: onOpenChange,
|
|
140
489
|
caller: SELECT_NAME
|
|
141
490
|
});
|
|
142
|
-
const [value, setValue] =
|
|
491
|
+
const [value, setValue] = textarea.useControllableState({
|
|
143
492
|
prop: valueProp,
|
|
144
493
|
defaultProp: defaultValue,
|
|
145
494
|
onChange: onValueChange,
|
|
@@ -149,7 +498,7 @@ var Select$1 = (props) => {
|
|
|
149
498
|
const isFormControl = trigger ? form || !!trigger.closest("form") : true;
|
|
150
499
|
const [nativeOptionsSet, setNativeOptionsSet] = React__namespace.useState(/* @__PURE__ */ new Set());
|
|
151
500
|
const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(";");
|
|
152
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
501
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Root2$1, { ...popperScope, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
153
502
|
SelectProvider,
|
|
154
503
|
{
|
|
155
504
|
required,
|
|
@@ -160,7 +509,7 @@ var Select$1 = (props) => {
|
|
|
160
509
|
onValueNodeChange: setValueNode,
|
|
161
510
|
valueNodeHasChildren,
|
|
162
511
|
onValueNodeHasChildrenChange: setValueNodeHasChildren,
|
|
163
|
-
contentId:
|
|
512
|
+
contentId: textarea.useId(),
|
|
164
513
|
value,
|
|
165
514
|
onValueChange: setValue,
|
|
166
515
|
open,
|
|
@@ -217,7 +566,7 @@ var SelectTrigger$1 = React__namespace.forwardRef(
|
|
|
217
566
|
const popperScope = usePopperScope(__scopeSelect);
|
|
218
567
|
const context = useSelectContext(TRIGGER_NAME, __scopeSelect);
|
|
219
568
|
const isDisabled = context.disabled || disabled;
|
|
220
|
-
const composedRefs = index
|
|
569
|
+
const composedRefs = index.useComposedRefs(forwardedRef, context.onTriggerChange);
|
|
221
570
|
const getItems = useCollection(__scopeSelect);
|
|
222
571
|
const pointerTypeRef = React__namespace.useRef("touch");
|
|
223
572
|
const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {
|
|
@@ -240,8 +589,8 @@ var SelectTrigger$1 = React__namespace.forwardRef(
|
|
|
240
589
|
};
|
|
241
590
|
}
|
|
242
591
|
};
|
|
243
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
244
|
-
|
|
592
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
593
|
+
textarea.Primitive.button,
|
|
245
594
|
{
|
|
246
595
|
type: "button",
|
|
247
596
|
role: "combobox",
|
|
@@ -256,13 +605,13 @@ var SelectTrigger$1 = React__namespace.forwardRef(
|
|
|
256
605
|
"data-placeholder": shouldShowPlaceholder(context.value) ? "" : void 0,
|
|
257
606
|
...triggerProps,
|
|
258
607
|
ref: composedRefs,
|
|
259
|
-
onClick:
|
|
608
|
+
onClick: textarea.composeEventHandlers(triggerProps.onClick, (event) => {
|
|
260
609
|
event.currentTarget.focus();
|
|
261
610
|
if (pointerTypeRef.current !== "mouse") {
|
|
262
611
|
handleOpen(event);
|
|
263
612
|
}
|
|
264
613
|
}),
|
|
265
|
-
onPointerDown:
|
|
614
|
+
onPointerDown: textarea.composeEventHandlers(triggerProps.onPointerDown, (event) => {
|
|
266
615
|
pointerTypeRef.current = event.pointerType;
|
|
267
616
|
const target = event.target;
|
|
268
617
|
if (target.hasPointerCapture(event.pointerId)) {
|
|
@@ -273,7 +622,7 @@ var SelectTrigger$1 = React__namespace.forwardRef(
|
|
|
273
622
|
event.preventDefault();
|
|
274
623
|
}
|
|
275
624
|
}),
|
|
276
|
-
onKeyDown:
|
|
625
|
+
onKeyDown: textarea.composeEventHandlers(triggerProps.onKeyDown, (event) => {
|
|
277
626
|
const isTypingAhead = searchRef.current !== "";
|
|
278
627
|
const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
|
|
279
628
|
if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);
|
|
@@ -295,12 +644,12 @@ var SelectValue$1 = React__namespace.forwardRef(
|
|
|
295
644
|
const context = useSelectContext(VALUE_NAME, __scopeSelect);
|
|
296
645
|
const { onValueNodeHasChildrenChange } = context;
|
|
297
646
|
const hasChildren = children !== void 0;
|
|
298
|
-
const composedRefs = index
|
|
299
|
-
|
|
647
|
+
const composedRefs = index.useComposedRefs(forwardedRef, context.onValueNodeChange);
|
|
648
|
+
textarea.useLayoutEffect2(() => {
|
|
300
649
|
onValueNodeHasChildrenChange(hasChildren);
|
|
301
650
|
}, [onValueNodeHasChildrenChange, hasChildren]);
|
|
302
651
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
303
|
-
|
|
652
|
+
textarea.Primitive.span,
|
|
304
653
|
{
|
|
305
654
|
...valueProps,
|
|
306
655
|
ref: composedRefs,
|
|
@@ -315,13 +664,13 @@ var ICON_NAME = "SelectIcon";
|
|
|
315
664
|
var SelectIcon = React__namespace.forwardRef(
|
|
316
665
|
(props, forwardedRef) => {
|
|
317
666
|
const { __scopeSelect, children, ...iconProps } = props;
|
|
318
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
667
|
+
return /* @__PURE__ */ jsxRuntime.jsx(textarea.Primitive.span, { "aria-hidden": true, ...iconProps, ref: forwardedRef, children: children || "▼" });
|
|
319
668
|
}
|
|
320
669
|
);
|
|
321
670
|
SelectIcon.displayName = ICON_NAME;
|
|
322
671
|
var PORTAL_NAME = "SelectPortal";
|
|
323
672
|
var SelectPortal = (props) => {
|
|
324
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
673
|
+
return /* @__PURE__ */ jsxRuntime.jsx(textarea.Portal, { asChild: true, ...props });
|
|
325
674
|
};
|
|
326
675
|
SelectPortal.displayName = PORTAL_NAME;
|
|
327
676
|
var CONTENT_NAME = "SelectContent";
|
|
@@ -329,7 +678,7 @@ var SelectContent$1 = React__namespace.forwardRef(
|
|
|
329
678
|
(props, forwardedRef) => {
|
|
330
679
|
const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);
|
|
331
680
|
const [fragment, setFragment] = React__namespace.useState();
|
|
332
|
-
|
|
681
|
+
textarea.useLayoutEffect2(() => {
|
|
333
682
|
setFragment(new DocumentFragment());
|
|
334
683
|
}, []);
|
|
335
684
|
if (!context.open) {
|
|
@@ -346,7 +695,7 @@ SelectContent$1.displayName = CONTENT_NAME;
|
|
|
346
695
|
var CONTENT_MARGIN = 10;
|
|
347
696
|
var [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);
|
|
348
697
|
var CONTENT_IMPL_NAME = "SelectContentImpl";
|
|
349
|
-
var Slot = index
|
|
698
|
+
var Slot = index.createSlot("SelectContent.RemoveScroll");
|
|
350
699
|
var SelectContentImpl = React__namespace.forwardRef(
|
|
351
700
|
(props, forwardedRef) => {
|
|
352
701
|
const {
|
|
@@ -373,7 +722,7 @@ var SelectContentImpl = React__namespace.forwardRef(
|
|
|
373
722
|
const context = useSelectContext(CONTENT_NAME, __scopeSelect);
|
|
374
723
|
const [content, setContent] = React__namespace.useState(null);
|
|
375
724
|
const [viewport, setViewport] = React__namespace.useState(null);
|
|
376
|
-
const composedRefs = index
|
|
725
|
+
const composedRefs = index.useComposedRefs(forwardedRef, (node) => setContent(node));
|
|
377
726
|
const [selectedItem, setSelectedItem] = React__namespace.useState(null);
|
|
378
727
|
const [selectedItemText, setSelectedItemText] = React__namespace.useState(
|
|
379
728
|
null
|
|
@@ -517,12 +866,12 @@ var SelectContentImpl = React__namespace.forwardRef(
|
|
|
517
866
|
onMountAutoFocus: (event) => {
|
|
518
867
|
event.preventDefault();
|
|
519
868
|
},
|
|
520
|
-
onUnmountAutoFocus:
|
|
869
|
+
onUnmountAutoFocus: textarea.composeEventHandlers(onCloseAutoFocus, (event) => {
|
|
521
870
|
context.trigger?.focus({ preventScroll: true });
|
|
522
871
|
event.preventDefault();
|
|
523
872
|
}),
|
|
524
873
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
525
|
-
|
|
874
|
+
textarea.DismissableLayer,
|
|
526
875
|
{
|
|
527
876
|
asChild: true,
|
|
528
877
|
disableOutsidePointerEvents: true,
|
|
@@ -550,7 +899,7 @@ var SelectContentImpl = React__namespace.forwardRef(
|
|
|
550
899
|
outline: "none",
|
|
551
900
|
...contentProps.style
|
|
552
901
|
},
|
|
553
|
-
onKeyDown:
|
|
902
|
+
onKeyDown: textarea.composeEventHandlers(contentProps.onKeyDown, (event) => {
|
|
554
903
|
const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
|
|
555
904
|
if (event.key === "Tab") event.preventDefault();
|
|
556
905
|
if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);
|
|
@@ -587,7 +936,7 @@ var SelectItemAlignedPosition = React__namespace.forwardRef((props, forwardedRef
|
|
|
587
936
|
const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);
|
|
588
937
|
const [contentWrapper, setContentWrapper] = React__namespace.useState(null);
|
|
589
938
|
const [content, setContent] = React__namespace.useState(null);
|
|
590
|
-
const composedRefs = index
|
|
939
|
+
const composedRefs = index.useComposedRefs(forwardedRef, (node) => setContent(node));
|
|
591
940
|
const getItems = useCollection(__scopeSelect);
|
|
592
941
|
const shouldExpandOnScrollRef = React__namespace.useRef(false);
|
|
593
942
|
const shouldRepositionRef = React__namespace.useRef(true);
|
|
@@ -605,7 +954,7 @@ var SelectItemAlignedPosition = React__namespace.forwardRef((props, forwardedRef
|
|
|
605
954
|
const minContentWidth = triggerRect.width + leftDelta;
|
|
606
955
|
const contentWidth = Math.max(minContentWidth, contentRect.width);
|
|
607
956
|
const rightEdge = window.innerWidth - CONTENT_MARGIN;
|
|
608
|
-
const clampedLeft = index$
|
|
957
|
+
const clampedLeft = index$1.clamp(left, [
|
|
609
958
|
CONTENT_MARGIN,
|
|
610
959
|
// Prevents the content from going off the starting edge of the
|
|
611
960
|
// viewport. It may still go off the ending edge, but this can be
|
|
@@ -623,7 +972,7 @@ var SelectItemAlignedPosition = React__namespace.forwardRef((props, forwardedRef
|
|
|
623
972
|
const minContentWidth = triggerRect.width + rightDelta;
|
|
624
973
|
const contentWidth = Math.max(minContentWidth, contentRect.width);
|
|
625
974
|
const leftEdge = window.innerWidth - CONTENT_MARGIN;
|
|
626
|
-
const clampedRight = index$
|
|
975
|
+
const clampedRight = index$1.clamp(right, [
|
|
627
976
|
CONTENT_MARGIN,
|
|
628
977
|
Math.max(CONTENT_MARGIN, leftEdge - contentWidth)
|
|
629
978
|
]);
|
|
@@ -691,9 +1040,9 @@ var SelectItemAlignedPosition = React__namespace.forwardRef((props, forwardedRef
|
|
|
691
1040
|
context.dir,
|
|
692
1041
|
onPlaced
|
|
693
1042
|
]);
|
|
694
|
-
|
|
1043
|
+
textarea.useLayoutEffect2(() => position(), [position]);
|
|
695
1044
|
const [contentZIndex, setContentZIndex] = React__namespace.useState();
|
|
696
|
-
|
|
1045
|
+
textarea.useLayoutEffect2(() => {
|
|
697
1046
|
if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
|
|
698
1047
|
}, [content]);
|
|
699
1048
|
const handleScrollButtonChange = React__namespace.useCallback(
|
|
@@ -724,7 +1073,7 @@ var SelectItemAlignedPosition = React__namespace.forwardRef((props, forwardedRef
|
|
|
724
1073
|
zIndex: contentZIndex
|
|
725
1074
|
},
|
|
726
1075
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
727
|
-
|
|
1076
|
+
textarea.Primitive.div,
|
|
728
1077
|
{
|
|
729
1078
|
...popperProps,
|
|
730
1079
|
ref: composedRefs,
|
|
@@ -754,7 +1103,7 @@ var SelectPopperPosition = React__namespace.forwardRef((props, forwardedRef) =>
|
|
|
754
1103
|
} = props;
|
|
755
1104
|
const popperScope = usePopperScope(__scopeSelect);
|
|
756
1105
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
757
|
-
|
|
1106
|
+
Content,
|
|
758
1107
|
{
|
|
759
1108
|
...popperScope,
|
|
760
1109
|
...popperProps,
|
|
@@ -785,7 +1134,7 @@ var SelectViewport = React__namespace.forwardRef(
|
|
|
785
1134
|
const { __scopeSelect, nonce, ...viewportProps } = props;
|
|
786
1135
|
const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);
|
|
787
1136
|
const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);
|
|
788
|
-
const composedRefs = index
|
|
1137
|
+
const composedRefs = index.useComposedRefs(forwardedRef, contentContext.onViewportChange);
|
|
789
1138
|
const prevScrollTopRef = React__namespace.useRef(0);
|
|
790
1139
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
791
1140
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -798,7 +1147,7 @@ var SelectViewport = React__namespace.forwardRef(
|
|
|
798
1147
|
}
|
|
799
1148
|
),
|
|
800
1149
|
/* @__PURE__ */ jsxRuntime.jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
801
|
-
|
|
1150
|
+
textarea.Primitive.div,
|
|
802
1151
|
{
|
|
803
1152
|
"data-radix-select-viewport": "",
|
|
804
1153
|
role: "presentation",
|
|
@@ -817,7 +1166,7 @@ var SelectViewport = React__namespace.forwardRef(
|
|
|
817
1166
|
overflow: "hidden auto",
|
|
818
1167
|
...viewportProps.style
|
|
819
1168
|
},
|
|
820
|
-
onScroll:
|
|
1169
|
+
onScroll: textarea.composeEventHandlers(viewportProps.onScroll, (event) => {
|
|
821
1170
|
const viewport = event.currentTarget;
|
|
822
1171
|
const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;
|
|
823
1172
|
if (shouldExpandOnScrollRef?.current && contentWrapper) {
|
|
@@ -852,8 +1201,8 @@ var [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GR
|
|
|
852
1201
|
var SelectGroup$1 = React__namespace.forwardRef(
|
|
853
1202
|
(props, forwardedRef) => {
|
|
854
1203
|
const { __scopeSelect, ...groupProps } = props;
|
|
855
|
-
const groupId =
|
|
856
|
-
return /* @__PURE__ */ jsxRuntime.jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1204
|
+
const groupId = textarea.useId();
|
|
1205
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsxRuntime.jsx(textarea.Primitive.div, { role: "group", "aria-labelledby": groupId, ...groupProps, ref: forwardedRef }) });
|
|
857
1206
|
}
|
|
858
1207
|
);
|
|
859
1208
|
SelectGroup$1.displayName = GROUP_NAME;
|
|
@@ -862,7 +1211,7 @@ var SelectLabel$1 = React__namespace.forwardRef(
|
|
|
862
1211
|
(props, forwardedRef) => {
|
|
863
1212
|
const { __scopeSelect, ...labelProps } = props;
|
|
864
1213
|
const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);
|
|
865
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1214
|
+
return /* @__PURE__ */ jsxRuntime.jsx(textarea.Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });
|
|
866
1215
|
}
|
|
867
1216
|
);
|
|
868
1217
|
SelectLabel$1.displayName = LABEL_NAME;
|
|
@@ -882,11 +1231,11 @@ var SelectItem$1 = React__namespace.forwardRef(
|
|
|
882
1231
|
const isSelected = context.value === value;
|
|
883
1232
|
const [textValue, setTextValue] = React__namespace.useState(textValueProp ?? "");
|
|
884
1233
|
const [isFocused, setIsFocused] = React__namespace.useState(false);
|
|
885
|
-
const composedRefs = index
|
|
1234
|
+
const composedRefs = index.useComposedRefs(
|
|
886
1235
|
forwardedRef,
|
|
887
1236
|
(node) => contentContext.itemRefCallback?.(node, value, disabled)
|
|
888
1237
|
);
|
|
889
|
-
const textId =
|
|
1238
|
+
const textId = textarea.useId();
|
|
890
1239
|
const pointerTypeRef = React__namespace.useRef("touch");
|
|
891
1240
|
const handleSelect = () => {
|
|
892
1241
|
if (!disabled) {
|
|
@@ -918,7 +1267,7 @@ var SelectItem$1 = React__namespace.forwardRef(
|
|
|
918
1267
|
disabled,
|
|
919
1268
|
textValue,
|
|
920
1269
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
921
|
-
|
|
1270
|
+
textarea.Primitive.div,
|
|
922
1271
|
{
|
|
923
1272
|
role: "option",
|
|
924
1273
|
"aria-labelledby": textId,
|
|
@@ -930,18 +1279,18 @@ var SelectItem$1 = React__namespace.forwardRef(
|
|
|
930
1279
|
tabIndex: disabled ? void 0 : -1,
|
|
931
1280
|
...itemProps,
|
|
932
1281
|
ref: composedRefs,
|
|
933
|
-
onFocus:
|
|
934
|
-
onBlur:
|
|
935
|
-
onClick:
|
|
1282
|
+
onFocus: textarea.composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),
|
|
1283
|
+
onBlur: textarea.composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),
|
|
1284
|
+
onClick: textarea.composeEventHandlers(itemProps.onClick, () => {
|
|
936
1285
|
if (pointerTypeRef.current !== "mouse") handleSelect();
|
|
937
1286
|
}),
|
|
938
|
-
onPointerUp:
|
|
1287
|
+
onPointerUp: textarea.composeEventHandlers(itemProps.onPointerUp, () => {
|
|
939
1288
|
if (pointerTypeRef.current === "mouse") handleSelect();
|
|
940
1289
|
}),
|
|
941
|
-
onPointerDown:
|
|
1290
|
+
onPointerDown: textarea.composeEventHandlers(itemProps.onPointerDown, (event) => {
|
|
942
1291
|
pointerTypeRef.current = event.pointerType;
|
|
943
1292
|
}),
|
|
944
|
-
onPointerMove:
|
|
1293
|
+
onPointerMove: textarea.composeEventHandlers(itemProps.onPointerMove, (event) => {
|
|
945
1294
|
pointerTypeRef.current = event.pointerType;
|
|
946
1295
|
if (disabled) {
|
|
947
1296
|
contentContext.onItemLeave?.();
|
|
@@ -949,12 +1298,12 @@ var SelectItem$1 = React__namespace.forwardRef(
|
|
|
949
1298
|
event.currentTarget.focus({ preventScroll: true });
|
|
950
1299
|
}
|
|
951
1300
|
}),
|
|
952
|
-
onPointerLeave:
|
|
1301
|
+
onPointerLeave: textarea.composeEventHandlers(itemProps.onPointerLeave, (event) => {
|
|
953
1302
|
if (event.currentTarget === document.activeElement) {
|
|
954
1303
|
contentContext.onItemLeave?.();
|
|
955
1304
|
}
|
|
956
1305
|
}),
|
|
957
|
-
onKeyDown:
|
|
1306
|
+
onKeyDown: textarea.composeEventHandlers(itemProps.onKeyDown, (event) => {
|
|
958
1307
|
const isTypingAhead = contentContext.searchRef?.current !== "";
|
|
959
1308
|
if (isTypingAhead && event.key === " ") return;
|
|
960
1309
|
if (SELECTION_KEYS.includes(event.key)) handleSelect();
|
|
@@ -978,7 +1327,7 @@ var SelectItemText = React__namespace.forwardRef(
|
|
|
978
1327
|
const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);
|
|
979
1328
|
const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);
|
|
980
1329
|
const [itemTextNode, setItemTextNode] = React__namespace.useState(null);
|
|
981
|
-
const composedRefs = index
|
|
1330
|
+
const composedRefs = index.useComposedRefs(
|
|
982
1331
|
forwardedRef,
|
|
983
1332
|
(node) => setItemTextNode(node),
|
|
984
1333
|
itemContext.onItemTextChange,
|
|
@@ -990,12 +1339,12 @@ var SelectItemText = React__namespace.forwardRef(
|
|
|
990
1339
|
[itemContext.disabled, itemContext.value, textContent]
|
|
991
1340
|
);
|
|
992
1341
|
const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;
|
|
993
|
-
|
|
1342
|
+
textarea.useLayoutEffect2(() => {
|
|
994
1343
|
onNativeOptionAdd(nativeOption);
|
|
995
1344
|
return () => onNativeOptionRemove(nativeOption);
|
|
996
1345
|
}, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);
|
|
997
1346
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
998
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1347
|
+
/* @__PURE__ */ jsxRuntime.jsx(textarea.Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),
|
|
999
1348
|
itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM__namespace.createPortal(itemTextProps.children, context.valueNode) : null
|
|
1000
1349
|
] });
|
|
1001
1350
|
}
|
|
@@ -1006,7 +1355,7 @@ var SelectItemIndicator = React__namespace.forwardRef(
|
|
|
1006
1355
|
(props, forwardedRef) => {
|
|
1007
1356
|
const { __scopeSelect, ...itemIndicatorProps } = props;
|
|
1008
1357
|
const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);
|
|
1009
|
-
return itemContext.isSelected ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1358
|
+
return itemContext.isSelected ? /* @__PURE__ */ jsxRuntime.jsx(textarea.Primitive.span, { "aria-hidden": true, ...itemIndicatorProps, ref: forwardedRef }) : null;
|
|
1010
1359
|
}
|
|
1011
1360
|
);
|
|
1012
1361
|
SelectItemIndicator.displayName = ITEM_INDICATOR_NAME;
|
|
@@ -1015,8 +1364,8 @@ var SelectScrollUpButton$1 = React__namespace.forwardRef((props, forwardedRef) =
|
|
|
1015
1364
|
const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
|
|
1016
1365
|
const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
|
|
1017
1366
|
const [canScrollUp, setCanScrollUp] = React__namespace.useState(false);
|
|
1018
|
-
const composedRefs = index
|
|
1019
|
-
|
|
1367
|
+
const composedRefs = index.useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);
|
|
1368
|
+
textarea.useLayoutEffect2(() => {
|
|
1020
1369
|
if (contentContext.viewport && contentContext.isPositioned) {
|
|
1021
1370
|
let handleScroll2 = function() {
|
|
1022
1371
|
const canScrollUp2 = viewport.scrollTop > 0;
|
|
@@ -1048,8 +1397,8 @@ var SelectScrollDownButton$1 = React__namespace.forwardRef((props, forwardedRef)
|
|
|
1048
1397
|
const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
|
|
1049
1398
|
const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
|
|
1050
1399
|
const [canScrollDown, setCanScrollDown] = React__namespace.useState(false);
|
|
1051
|
-
const composedRefs = index
|
|
1052
|
-
|
|
1400
|
+
const composedRefs = index.useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);
|
|
1401
|
+
textarea.useLayoutEffect2(() => {
|
|
1053
1402
|
if (contentContext.viewport && contentContext.isPositioned) {
|
|
1054
1403
|
let handleScroll2 = function() {
|
|
1055
1404
|
const maxScroll = viewport.scrollHeight - viewport.clientHeight;
|
|
@@ -1091,29 +1440,29 @@ var SelectScrollButtonImpl = React__namespace.forwardRef((props, forwardedRef) =
|
|
|
1091
1440
|
React__namespace.useEffect(() => {
|
|
1092
1441
|
return () => clearAutoScrollTimer();
|
|
1093
1442
|
}, [clearAutoScrollTimer]);
|
|
1094
|
-
|
|
1443
|
+
textarea.useLayoutEffect2(() => {
|
|
1095
1444
|
const activeItem = getItems().find((item) => item.ref.current === document.activeElement);
|
|
1096
1445
|
activeItem?.ref.current?.scrollIntoView({ block: "nearest" });
|
|
1097
1446
|
}, [getItems]);
|
|
1098
1447
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1099
|
-
|
|
1448
|
+
textarea.Primitive.div,
|
|
1100
1449
|
{
|
|
1101
1450
|
"aria-hidden": true,
|
|
1102
1451
|
...scrollIndicatorProps,
|
|
1103
1452
|
ref: forwardedRef,
|
|
1104
1453
|
style: { flexShrink: 0, ...scrollIndicatorProps.style },
|
|
1105
|
-
onPointerDown:
|
|
1454
|
+
onPointerDown: textarea.composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {
|
|
1106
1455
|
if (autoScrollTimerRef.current === null) {
|
|
1107
1456
|
autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);
|
|
1108
1457
|
}
|
|
1109
1458
|
}),
|
|
1110
|
-
onPointerMove:
|
|
1459
|
+
onPointerMove: textarea.composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {
|
|
1111
1460
|
contentContext.onItemLeave?.();
|
|
1112
1461
|
if (autoScrollTimerRef.current === null) {
|
|
1113
1462
|
autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);
|
|
1114
1463
|
}
|
|
1115
1464
|
}),
|
|
1116
|
-
onPointerLeave:
|
|
1465
|
+
onPointerLeave: textarea.composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {
|
|
1117
1466
|
clearAutoScrollTimer();
|
|
1118
1467
|
})
|
|
1119
1468
|
}
|
|
@@ -1123,7 +1472,7 @@ var SEPARATOR_NAME = "SelectSeparator";
|
|
|
1123
1472
|
var SelectSeparator$1 = React__namespace.forwardRef(
|
|
1124
1473
|
(props, forwardedRef) => {
|
|
1125
1474
|
const { __scopeSelect, ...separatorProps } = props;
|
|
1126
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1475
|
+
return /* @__PURE__ */ jsxRuntime.jsx(textarea.Primitive.div, { "aria-hidden": true, ...separatorProps, ref: forwardedRef });
|
|
1127
1476
|
}
|
|
1128
1477
|
);
|
|
1129
1478
|
SelectSeparator$1.displayName = SEPARATOR_NAME;
|
|
@@ -1134,7 +1483,7 @@ var SelectArrow = React__namespace.forwardRef(
|
|
|
1134
1483
|
const popperScope = usePopperScope(__scopeSelect);
|
|
1135
1484
|
const context = useSelectContext(ARROW_NAME, __scopeSelect);
|
|
1136
1485
|
const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);
|
|
1137
|
-
return context.open && contentContext.position === "popper" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1486
|
+
return context.open && contentContext.position === "popper" ? /* @__PURE__ */ jsxRuntime.jsx(Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;
|
|
1138
1487
|
}
|
|
1139
1488
|
);
|
|
1140
1489
|
SelectArrow.displayName = ARROW_NAME;
|
|
@@ -1142,7 +1491,7 @@ var BUBBLE_INPUT_NAME = "SelectBubbleInput";
|
|
|
1142
1491
|
var SelectBubbleInput = React__namespace.forwardRef(
|
|
1143
1492
|
({ __scopeSelect, value, ...props }, forwardedRef) => {
|
|
1144
1493
|
const ref = React__namespace.useRef(null);
|
|
1145
|
-
const composedRefs = index
|
|
1494
|
+
const composedRefs = index.useComposedRefs(forwardedRef, ref);
|
|
1146
1495
|
const prevValue = usePrevious(value);
|
|
1147
1496
|
React__namespace.useEffect(() => {
|
|
1148
1497
|
const select = ref.current;
|
|
@@ -1160,10 +1509,10 @@ var SelectBubbleInput = React__namespace.forwardRef(
|
|
|
1160
1509
|
}
|
|
1161
1510
|
}, [prevValue, value]);
|
|
1162
1511
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1163
|
-
|
|
1512
|
+
textarea.Primitive.select,
|
|
1164
1513
|
{
|
|
1165
1514
|
...props,
|
|
1166
|
-
style: { ...
|
|
1515
|
+
style: { ...VISUALLY_HIDDEN_STYLES, ...props.style },
|
|
1167
1516
|
ref: composedRefs,
|
|
1168
1517
|
defaultValue: value
|
|
1169
1518
|
}
|
|
@@ -1175,7 +1524,7 @@ function shouldShowPlaceholder(value) {
|
|
|
1175
1524
|
return value === "" || value === void 0;
|
|
1176
1525
|
}
|
|
1177
1526
|
function useTypeaheadSearch(onSearchChange) {
|
|
1178
|
-
const handleSearchChange =
|
|
1527
|
+
const handleSearchChange = textarea.useCallbackRef(onSearchChange);
|
|
1179
1528
|
const searchRef = React__namespace.useRef("");
|
|
1180
1529
|
const timerRef = React__namespace.useRef(0);
|
|
1181
1530
|
const handleTypeaheadSearch = React__namespace.useCallback(
|
|
@@ -1256,7 +1605,7 @@ function SelectTrigger({
|
|
|
1256
1605
|
...props,
|
|
1257
1606
|
children: [
|
|
1258
1607
|
children,
|
|
1259
|
-
/* @__PURE__ */ jsxRuntime.jsx(Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(index$
|
|
1608
|
+
/* @__PURE__ */ jsxRuntime.jsx(Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(index$1.ChevronDown, { className: "size-4 opacity-50" }) })
|
|
1260
1609
|
]
|
|
1261
1610
|
}
|
|
1262
1611
|
);
|
|
@@ -1304,7 +1653,7 @@ function SelectItem({ className, children, ...props }) {
|
|
|
1304
1653
|
),
|
|
1305
1654
|
...props,
|
|
1306
1655
|
children: [
|
|
1307
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(index$
|
|
1656
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(index$1.Check, { className: "size-4" }) }) }),
|
|
1308
1657
|
/* @__PURE__ */ jsxRuntime.jsx(ItemText, { children })
|
|
1309
1658
|
]
|
|
1310
1659
|
}
|
|
@@ -1338,10 +1687,15 @@ function SelectScrollDownButton({ className, ...props }) {
|
|
|
1338
1687
|
"data-slot": "select-scroll-down-button",
|
|
1339
1688
|
className: utils.cn("flex cursor-default items-center justify-center py-1", className),
|
|
1340
1689
|
...props,
|
|
1341
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(index$
|
|
1690
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(index$1.ChevronDown, { className: "size-4" })
|
|
1342
1691
|
}
|
|
1343
1692
|
);
|
|
1344
1693
|
}
|
|
1694
|
+
exports.Anchor = Anchor;
|
|
1695
|
+
exports.Arrow = Arrow;
|
|
1696
|
+
exports.Content = Content;
|
|
1697
|
+
exports.Root = Root;
|
|
1698
|
+
exports.Root2 = Root2$1;
|
|
1345
1699
|
exports.Select = Select;
|
|
1346
1700
|
exports.SelectContent = SelectContent;
|
|
1347
1701
|
exports.SelectGroup = SelectGroup;
|
|
@@ -1353,5 +1707,7 @@ exports.SelectSeparator = SelectSeparator;
|
|
|
1353
1707
|
exports.SelectTrigger = SelectTrigger;
|
|
1354
1708
|
exports.SelectValue = SelectValue;
|
|
1355
1709
|
exports.createCollection = createCollection;
|
|
1710
|
+
exports.createPopperScope = createPopperScope;
|
|
1356
1711
|
exports.usePrevious = usePrevious;
|
|
1357
|
-
|
|
1712
|
+
exports.useSize = useSize;
|
|
1713
|
+
//# sourceMappingURL=select-C9BYUpJm.js.map
|