PluginProbe
Gutenberg / trunk
Gutenberg vtrunk
24.1.0 24.0.0 23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 All 404 releases
← All changes | build/scripts/customize-widgets/index.js +12457 -426 23.9.0 → trunk View file →
@@ -94,15 +94,170 @@
94 94 module.exports = window.ReactJSXRuntime;
95 95 }
96 96 });
97 97
98 - // package-external:@wordpress/primitives
99 - var require_primitives = __commonJS({
100 - "package-external:@wordpress/primitives"(exports, module) {
101 - module.exports = window.wp.primitives;
98 + // vendor-external:react-dom
99 + var require_react_dom = __commonJS({
100 + "vendor-external:react-dom"(exports, module) {
101 + module.exports = window.ReactDOM;
102 102 }
103 103 });
104 104
105 + // node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js
106 + var require_use_sync_external_store_shim_development = __commonJS({
107 + "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js"(exports) {
108 + "use strict";
109 + (function() {
110 + function is(x, y) {
111 + return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y;
112 + }
113 + function useSyncExternalStore$2(subscribe, getSnapshot) {
114 + didWarnOld18Alpha || void 0 === React59.startTransition || (didWarnOld18Alpha = true, console.error(
115 + "You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."
116 + ));
117 + var value = getSnapshot();
118 + if (!didWarnUncachedGetSnapshot) {
119 + var cachedValue = getSnapshot();
120 + objectIs(value, cachedValue) || (console.error(
121 + "The result of getSnapshot should be cached to avoid an infinite loop"
122 + ), didWarnUncachedGetSnapshot = true);
123 + }
124 + cachedValue = useState21({
125 + inst: { value, getSnapshot }
126 + });
127 + var inst = cachedValue[0].inst, forceUpdate = cachedValue[1];
128 + useLayoutEffect3(
129 + function() {
130 + inst.value = value;
131 + inst.getSnapshot = getSnapshot;
132 + checkIfSnapshotChanged(inst) && forceUpdate({ inst });
133 + },
134 + [subscribe, value, getSnapshot]
135 + );
136 + useEffect28(
137 + function() {
138 + checkIfSnapshotChanged(inst) && forceUpdate({ inst });
139 + return subscribe(function() {
140 + checkIfSnapshotChanged(inst) && forceUpdate({ inst });
141 + });
142 + },
143 + [subscribe]
144 + );
145 + useDebugValue2(value);
146 + return value;
147 + }
148 + function checkIfSnapshotChanged(inst) {
149 + var latestGetSnapshot = inst.getSnapshot;
150 + inst = inst.value;
151 + try {
152 + var nextValue = latestGetSnapshot();
153 + return !objectIs(inst, nextValue);
154 + } catch (error2) {
155 + return true;
156 + }
157 + }
158 + function useSyncExternalStore$1(subscribe, getSnapshot) {
159 + return getSnapshot();
160 + }
161 + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
162 + var React59 = require_react(), objectIs = "function" === typeof Object.is ? Object.is : is, useState21 = React59.useState, useEffect28 = React59.useEffect, useLayoutEffect3 = React59.useLayoutEffect, useDebugValue2 = React59.useDebugValue, didWarnOld18Alpha = false, didWarnUncachedGetSnapshot = false, shim = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? useSyncExternalStore$1 : useSyncExternalStore$2;
163 + exports.useSyncExternalStore = void 0 !== React59.useSyncExternalStore ? React59.useSyncExternalStore : shim;
164 + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
165 + })();
166 + }
167 + });
168 +
169 + // node_modules/use-sync-external-store/shim/index.js
170 + var require_shim = __commonJS({
171 + "node_modules/use-sync-external-store/shim/index.js"(exports, module) {
172 + "use strict";
173 + if (false) {
174 + module.exports = null;
175 + } else {
176 + module.exports = require_use_sync_external_store_shim_development();
177 + }
178 + }
179 + });
180 +
181 + // node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js
182 + var require_with_selector_development = __commonJS({
183 + "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js"(exports) {
184 + "use strict";
185 + (function() {
186 + function is(x, y) {
187 + return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y;
188 + }
189 + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
190 + var React59 = require_react(), shim = require_shim(), objectIs = "function" === typeof Object.is ? Object.is : is, useSyncExternalStore3 = shim.useSyncExternalStore, useRef25 = React59.useRef, useEffect28 = React59.useEffect, useMemo25 = React59.useMemo, useDebugValue2 = React59.useDebugValue;
191 + exports.useSyncExternalStoreWithSelector = function(subscribe, getSnapshot, getServerSnapshot, selector, isEqual) {
192 + var instRef = useRef25(null);
193 + if (null === instRef.current) {
194 + var inst = { hasValue: false, value: null };
195 + instRef.current = inst;
196 + } else inst = instRef.current;
197 + instRef = useMemo25(
198 + function() {
199 + function memoizedSelector(nextSnapshot) {
200 + if (!hasMemo) {
201 + hasMemo = true;
202 + memoizedSnapshot = nextSnapshot;
203 + nextSnapshot = selector(nextSnapshot);
204 + if (void 0 !== isEqual && inst.hasValue) {
205 + var currentSelection = inst.value;
206 + if (isEqual(currentSelection, nextSnapshot))
207 + return memoizedSelection = currentSelection;
208 + }
209 + return memoizedSelection = nextSnapshot;
210 + }
211 + currentSelection = memoizedSelection;
212 + if (objectIs(memoizedSnapshot, nextSnapshot))
213 + return currentSelection;
214 + var nextSelection = selector(nextSnapshot);
215 + if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))
216 + return memoizedSnapshot = nextSnapshot, currentSelection;
217 + memoizedSnapshot = nextSnapshot;
218 + return memoizedSelection = nextSelection;
219 + }
220 + var hasMemo = false, memoizedSnapshot, memoizedSelection, maybeGetServerSnapshot = void 0 === getServerSnapshot ? null : getServerSnapshot;
221 + return [
222 + function() {
223 + return memoizedSelector(getSnapshot());
224 + },
225 + null === maybeGetServerSnapshot ? void 0 : function() {
226 + return memoizedSelector(maybeGetServerSnapshot());
227 + }
228 + ];
229 + },
230 + [getSnapshot, getServerSnapshot, selector, isEqual]
231 + );
232 + var value = useSyncExternalStore3(subscribe, instRef[0], instRef[1]);
233 + useEffect28(
234 + function() {
235 + inst.hasValue = true;
236 + inst.value = value;
237 + },
238 + [value]
239 + );
240 + useDebugValue2(value);
241 + return value;
242 + };
243 + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
244 + })();
245 + }
246 + });
247 +
248 + // node_modules/use-sync-external-store/shim/with-selector.js
249 + var require_with_selector = __commonJS({
250 + "node_modules/use-sync-external-store/shim/with-selector.js"(exports, module) {
251 + "use strict";
252 + if (false) {
253 + module.exports = null;
254 + } else {
255 + module.exports = require_with_selector_development();
256 + }
257 + }
258 + });
259 +
105 260 // package-external:@wordpress/compose
106 261 var require_compose = __commonJS({
107 262 "package-external:@wordpress/compose"(exports, module) {
108 263 module.exports = window.wp.compose;
@@ -122,8 +277,22 @@
122 277 module.exports = window.wp.privateApis;
123 278 }
124 279 });
125 280
281 + // package-external:@wordpress/primitives
282 + var require_primitives = __commonJS({
283 + "package-external:@wordpress/primitives"(exports, module) {
284 + module.exports = window.wp.primitives;
285 + }
286 + });
287 +
288 + // package-external:@wordpress/a11y
289 + var require_a11y = __commonJS({
290 + "package-external:@wordpress/a11y"(exports, module) {
291 + module.exports = window.wp.a11y;
292 + }
293 + });
294 +
126 295 // package-external:@wordpress/components
127 296 var require_components = __commonJS({
128 297 "package-external:@wordpress/components"(exports, module) {
129 298 module.exports = window.wp.components;
@@ -129,15 +298,8 @@
129 298 module.exports = window.wp.components;
130 299 }
131 300 });
132 301
133 - // package-external:@wordpress/block-editor
134 - var require_block_editor = __commonJS({
135 - "package-external:@wordpress/block-editor"(exports, module) {
136 - module.exports = window.wp.blockEditor;
137 - }
138 - });
139 -
140 302 // package-external:@wordpress/hooks
141 303 var require_hooks = __commonJS({
142 304 "package-external:@wordpress/hooks"(exports, module) {
143 305 module.exports = window.wp.hooks;
@@ -150,8 +312,15 @@
150 312 module.exports = window.wp.coreData;
151 313 }
152 314 });
153 315
316 + // package-external:@wordpress/block-editor
317 + var require_block_editor = __commonJS({
318 + "package-external:@wordpress/block-editor"(exports, module) {
319 + module.exports = window.wp.blockEditor;
320 + }
321 + });
322 +
154 323 // package-external:@wordpress/media-utils
155 324 var require_media_utils = __commonJS({
156 325 "package-external:@wordpress/media-utils"(exports, module) {
157 326 module.exports = window.wp.mediaUtils;
@@ -247,13 +416,13 @@
247 416 __export(index_exports, {
248 417 initialize: () => initialize,
249 418 store: () => store
250 419 });
251 - var import_element18 = __toESM(require_element(), 1);
420 + var import_element60 = __toESM(require_element(), 1);
252 421 var import_block_library = __toESM(require_block_library(), 1);
253 422 var import_widgets5 = __toESM(require_widgets(), 1);
254 423 var import_blocks2 = __toESM(require_blocks(), 1);
255 - var import_data17 = __toESM(require_data(), 1);
424 + var import_data18 = __toESM(require_data(), 1);
256 425 var import_preferences4 = __toESM(require_preferences(), 1);
257 426
258 427 // node_modules/clsx/dist/clsx.mjs
259 428 function r(e) {
@@ -270,13 +439,109 @@
270 439 return n;
271 440 }
272 441 var clsx_default = clsx;
273 442
443 + // node_modules/@base-ui/utils/useControlled.mjs
444 + var React = __toESM(require_react(), 1);
445 +
446 + // node_modules/@base-ui/utils/createLogOnce.mjs
447 + var loggedMessages;
448 + if (true) {
449 + loggedMessages = /* @__PURE__ */ new Set();
450 + }
451 + function createLogOnce(severity, prefix) {
452 + return function logOnce(...messages) {
453 + if (true) {
454 + const message = messages.join(" ");
455 + const output = prefix ? `${prefix}: ${message}` : message;
456 + const key = `${severity}:${output}`;
457 + if (!loggedMessages.has(key)) {
458 + loggedMessages.add(key);
459 + if (severity === "warn") {
460 + console.warn(output);
461 + } else {
462 + console.error(output);
463 + }
464 + }
465 + }
466 + };
467 + }
468 +
469 + // node_modules/@base-ui/utils/error.mjs
470 + var error = createLogOnce("error", "Base UI");
471 +
472 + // node_modules/@base-ui/utils/useControlled.mjs
473 + function useControlled({
474 + controlled,
475 + default: defaultProp,
476 + name,
477 + state = "value"
478 + }) {
479 + const {
480 + current: isControlled
481 + } = React.useRef(controlled !== void 0);
482 + const [valueState, setValue] = React.useState(defaultProp);
483 + const value = isControlled && controlled !== void 0 ? controlled : valueState;
484 + if (true) {
485 + React.useEffect(() => {
486 + if (isControlled !== (controlled !== void 0)) {
487 + error([`A component is changing the ${isControlled ? "" : "un"}controlled ${state} state of ${name} to be ${isControlled ? "un" : ""}controlled.`, "Elements should not switch from uncontrolled to controlled (or vice versa).", `Decide between using a controlled or uncontrolled ${name} element for the lifetime of the component.`, "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", "More info: https://fb.me/react-controlled-components"].join("\n"));
488 + }
489 + }, [state, name, controlled]);
490 + const {
491 + current: defaultValue
492 + } = React.useRef(defaultProp);
493 + React.useEffect(() => {
494 + if (!isControlled && serializeToDevModeString(defaultValue) !== serializeToDevModeString(defaultProp)) {
495 + error([`A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. To suppress this warning opt to use a controlled ${name}.`].join("\n"));
496 + }
497 + }, [defaultProp]);
498 + }
499 + const setValueIfUncontrolled = React.useCallback((newValue) => {
500 + if (!isControlled) {
501 + setValue(newValue);
502 + }
503 + }, []);
504 + return [value, setValueIfUncontrolled];
505 + }
506 + function serializeToDevModeString(input) {
507 + let nextId = 0;
508 + const seen = /* @__PURE__ */ new WeakMap();
509 + try {
510 + const result = JSON.stringify(input, function replacer(key, value) {
511 + if (key === "_owner" && this != null && typeof this === "object" && "$$typeof" in this) {
512 + return void 0;
513 + }
514 + if (typeof value === "bigint") {
515 + return `__bigint__:${value}`;
516 + }
517 + if (value !== null && typeof value === "object") {
518 + const id = seen.get(value);
519 + if (id !== void 0) {
520 + return `__object__:${id}`;
521 + }
522 + seen.set(value, nextId);
523 + nextId += 1;
524 + }
525 + return value;
526 + });
527 + return result ?? `__top__:${typeof input}`;
528 + } catch {
529 + return "__unserializable__";
530 + }
531 + }
532 +
533 + // node_modules/@base-ui/utils/safeReact.mjs
534 + var React2 = __toESM(require_react(), 1);
535 + var SafeReact = {
536 + ...React2
537 + };
538 +
274 539 // node_modules/@base-ui/utils/useRefWithInit.mjs
275 - var React = __toESM(require_react(), 1);
540 + var React3 = __toESM(require_react(), 1);
276 541 var UNINITIALIZED = {};
277 542 function useRefWithInit(init, initArg) {
278 - const ref = React.useRef(UNINITIALIZED);
543 + const ref = React3.useRef(UNINITIALIZED);
279 544 if (ref.current === UNINITIALIZED) {
280 545 ref.current = init(initArg);
281 546 }
282 547 return ref;
@@ -281,25 +546,58 @@
281 546 }
282 547 return ref;
283 548 }
284 549
285 - // node_modules/@base-ui/utils/warn.mjs
286 - var set;
287 - if (true) {
288 - set = /* @__PURE__ */ new Set();
550 + // node_modules/@base-ui/utils/useStableCallback.mjs
551 + var useInsertionEffect = SafeReact.useInsertionEffect;
552 + var useSafeInsertionEffect = (
553 + // React 17 doesn't have useInsertionEffect.
554 + useInsertionEffect && // Preact replaces useInsertionEffect with useLayoutEffect and fires too late.
555 + useInsertionEffect !== SafeReact.useLayoutEffect ? useInsertionEffect : (fn) => fn()
556 + );
557 + function useStableCallback(callback) {
558 + const stable = useRefWithInit(createStableCallback).current;
559 + stable.next = callback;
560 + useSafeInsertionEffect(stable.effect);
561 + return stable.trampoline;
289 562 }
290 - function warn(...messages) {
563 + function createStableCallback() {
564 + const stable = {
565 + next: void 0,
566 + callback: assertNotCalled,
567 + trampoline: (...args) => stable.callback?.(...args),
568 + effect: () => {
569 + stable.callback = stable.next;
570 + }
571 + };
572 + return stable;
573 + }
574 + function assertNotCalled() {
291 575 if (true) {
292 - const messageKey = messages.join(" ");
293 - if (!set.has(messageKey)) {
294 - set.add(messageKey);
295 - console.warn(`Base UI: ${messageKey}`);
296 - }
576 + throw (
577 + /* minify-error-disabled */
578 + new Error("Base UI: Cannot call an event handler while rendering.")
579 + );
297 580 }
298 581 }
299 582
583 + // node_modules/@base-ui/utils/warn.mjs
584 + var warn = createLogOnce("warn", "Base UI");
585 +
586 + // node_modules/@base-ui/utils/empty.mjs
587 + function NOOP() {
588 + }
589 + var EMPTY_ARRAY = Object.freeze([]);
590 + var EMPTY_OBJECT = Object.freeze({});
591 +
592 + // node_modules/@base-ui/utils/useIsoLayoutEffect.mjs
593 + var React4 = __toESM(require_react(), 1);
594 + var noop = () => {
595 + };
596 + var useIsoLayoutEffect = typeof document !== "undefined" ? React4.useLayoutEffect : noop;
597 +
300 598 // node_modules/@base-ui/react/internals/useRenderElement.mjs
301 - var React4 = __toESM(require_react(), 1);
599 + var React7 = __toESM(require_react(), 1);
302 600
303 601 // node_modules/@base-ui/utils/useMergedRefs.mjs
304 602 function useMergedRefs(a, b, c, d) {
305 603 const forkRef = useRefWithInit(createForkRef).current;
@@ -325,9 +623,9 @@
325 623 function didChange(forkRef, a, b, c, d) {
326 624 return forkRef.refs[0] !== a || forkRef.refs[1] !== b || forkRef.refs[2] !== c || forkRef.refs[3] !== d;
327 625 }
328 626 function didChangeN(forkRef, newRefs) {
329 - return forkRef.refs.length !== newRefs.length || forkRef.refs.some((ref, index) => ref !== newRefs[index]);
627 + return forkRef.refs.length !== newRefs.length || forkRef.refs.some((ref, index2) => ref !== newRefs[index2]);
330 628 }
331 629 function update(forkRef, refs) {
332 630 forkRef.refs = refs;
333 631 if (refs.every((ref) => ref == null)) {
@@ -389,13 +687,13 @@
389 687 };
390 688 }
391 689
392 690 // node_modules/@base-ui/utils/getReactElementRef.mjs
393 - var React3 = __toESM(require_react(), 1);
691 + var React6 = __toESM(require_react(), 1);
394 692
395 693 // node_modules/@base-ui/utils/reactVersion.mjs
396 - var React2 = __toESM(require_react(), 1);
397 - var majorVersion = parseInt(React2.version, 10);
694 + var React5 = __toESM(require_react(), 1);
695 + var majorVersion = parseInt(React5.version, 10);
398 696 function isReactVersionAtLeast(reactVersionToCheck) {
399 697 return majorVersion >= reactVersionToCheck;
400 698 }
401 699
@@ -400,9 +698,9 @@
400 698 }
401 699
402 700 // node_modules/@base-ui/utils/getReactElementRef.mjs
403 701 function getReactElementRef(element) {
404 - if (!/* @__PURE__ */ React3.isValidElement(element)) {
702 + if (!/* @__PURE__ */ React6.isValidElement(element)) {
405 703 return null;
406 704 }
407 705 const reactElement = element;
408 706 const propsWithRef = reactElement.props;
@@ -425,12 +723,8 @@
425 723 }
426 724 return void 0;
427 725 }
428 726
429 - // node_modules/@base-ui/utils/empty.mjs
430 - var EMPTY_ARRAY = Object.freeze([]);
431 - var EMPTY_OBJECT = Object.freeze({});
432 -
433 727 // node_modules/@base-ui/react/internals/getStateAttributesProps.mjs
434 728 function getStateAttributesProps(state, customMapping) {
435 729 const props = {};
436 730 for (const key in state) {
@@ -618,10 +912,13 @@
618 912
619 913 // node_modules/@base-ui/react/internals/useRenderElement.mjs
620 914 var import_react = __toESM(require_react(), 1);
621 915 function useRenderElement(element, componentProps, params = {}) {
622 - const renderProp = componentProps.render;
623 - const outProps = useRenderElementProps(componentProps, params);
916 + let renderProp = componentProps.render;
917 + if (params.enabled !== false) {
918 + renderProp = unwrapLazyRenderProp(renderProp);
919 + }
920 + const outProps = useRenderElementProps(componentProps, params, renderProp);
624 921 if (params.enabled === false) {
625 922 return null;
626 923 }
627 924 const state = params.state ?? EMPTY_OBJECT;
@@ -626,24 +923,23 @@
626 923 }
627 924 const state = params.state ?? EMPTY_OBJECT;
628 925 return evaluateRenderProp(element, renderProp, outProps, state);
629 926 }
630 - function useRenderElementProps(componentProps, params = {}) {
927 + function useRenderElementProps(componentProps, params, renderProp) {
631 928 const {
632 929 className: classNameProp,
633 - style: styleProp,
634 - render: renderProp
930 + style: styleProp
635 931 } = componentProps;
636 932 const {
637 933 state = EMPTY_OBJECT,
638 934 ref,
639 935 props,
640 - stateAttributesMapping,
936 + stateAttributesMapping: stateAttributesMapping2,
641 937 enabled = true
642 938 } = params;
643 939 const className = enabled ? resolveClassName(classNameProp, state) : void 0;
644 940 const style = enabled ? resolveStyle(styleProp, state) : void 0;
645 - const stateProps = enabled ? getStateAttributesProps(state, stateAttributesMapping) : EMPTY_OBJECT;
941 + const stateProps = enabled ? getStateAttributesProps(state, stateAttributesMapping2) : EMPTY_OBJECT;
646 942 const resolvedProps = enabled && props ? resolveRenderFunctionProps(props) : void 0;
647 943 const outProps = enabled ? mergeObjects(stateProps, resolvedProps) ?? {} : EMPTY_OBJECT;
648 944 if (typeof document !== "undefined") {
649 945 if (!enabled) {
@@ -673,8 +969,15 @@
673 969 }
674 970 var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
675 971 var COMPONENT_IDENTIFIER_PATTERN = /^[A-Z][A-Za-z0-9$]*$/;
676 972 var LOWERCASE_CHARACTER_PATTERN = /[a-z]/;
973 + function unwrapLazyRenderProp(render) {
974 + if (render?.$$typeof !== REACT_LAZY_TYPE) {
975 + return render;
976 + }
977 + const unwrapped = React7.Children.toArray(render)[0];
978 + return /* @__PURE__ */ React7.isValidElement(unwrapped) ? unwrapped : render;
979 + }
677 980 function evaluateRenderProp(element, render, props, state) {
678 981 if (render) {
679 982 if (typeof render === "function") {
680 983 if (true) {
@@ -683,19 +986,14 @@
683 986 return render(props, state);
684 987 }
685 988 const mergedProps = mergeProps(props, render.props);
686 989 mergedProps.ref = props.ref;
687 - let newElement = render;
688 - if (newElement?.$$typeof === REACT_LAZY_TYPE) {
689 - const children = React4.Children.toArray(render);
690 - newElement = children[0];
691 - }
692 990 if (true) {
693 - if (!/* @__PURE__ */ React4.isValidElement(newElement)) {
991 + if (!/* @__PURE__ */ React7.isValidElement(render)) {
694 992 throw new Error(["Base UI: The `render` prop was provided an invalid React element as `React.isValidElement(render)` is `false`.", "A valid React element must be provided to the `render` prop because it is cloned with props to replace the default element.", "https://base-ui.com/r/invalid-render-prop"].join("\n"));
695 993 }
696 994 }
697 - return /* @__PURE__ */ React4.cloneElement(newElement, mergedProps);
995 + return /* @__PURE__ */ React7.cloneElement(render, mergedProps);
698 996 }
699 997 if (element) {
700 998 if (typeof element === "string") {
701 999 return renderTag(element, props);
@@ -730,48 +1028,8603 @@
730 1028 ...props,
731 1029 key: props.key
732 1030 });
733 1031 }
734 - return /* @__PURE__ */ React4.createElement(Tag, props);
1032 + return /* @__PURE__ */ React7.createElement(Tag, props);
735 1033 }
736 1034
737 - // node_modules/@base-ui/react/use-render/useRender.mjs
738 - function useRender(params) {
739 - return useRenderElement(params.defaultTagName ?? "div", params, params);
1035 + // node_modules/@base-ui/utils/useId.mjs
1036 + var React8 = __toESM(require_react(), 1);
1037 + var globalId = 0;
1038 + function useGlobalId(idOverride, prefix = "mui") {
1039 + const [defaultId, setDefaultId] = React8.useState(idOverride);
1040 + const id = idOverride || defaultId;
1041 + React8.useEffect(() => {
1042 + if (defaultId == null) {
1043 + globalId += 1;
1044 + setDefaultId(`${prefix}-${globalId}`);
1045 + }
1046 + }, [defaultId, prefix]);
1047 + return id;
740 1048 }
1049 + var maybeReactUseId = SafeReact.useId;
1050 + function useId(idOverride, prefix) {
1051 + if (maybeReactUseId !== void 0) {
1052 + const reactId = maybeReactUseId();
1053 + return idOverride ?? (prefix ? `${prefix}-${reactId}` : reactId);
1054 + }
1055 + return useGlobalId(idOverride, prefix);
1056 + }
741 1057
742 - // packages/icons/build-module/library/close-small.mjs
743 - var import_primitives = __toESM(require_primitives(), 1);
1058 + // node_modules/@base-ui/react/internals/useBaseUiId.mjs
1059 + function useBaseUiId(idOverride) {
1060 + return useId(idOverride, "base-ui");
1061 + }
1062 +
1063 + // node_modules/@base-ui/react/collapsible/root/useCollapsibleRoot.mjs
1064 + var React11 = __toESM(require_react(), 1);
1065 +
1066 + // node_modules/@base-ui/react/internals/reason-parts.mjs
1067 + var reason_parts_exports = {};
1068 + __export(reason_parts_exports, {
1069 + cancelOpen: () => cancelOpen,
1070 + chipRemovePress: () => chipRemovePress,
1071 + clearPress: () => clearPress,
1072 + closePress: () => closePress,
1073 + closeWatcher: () => closeWatcher,
1074 + decrementPress: () => decrementPress,
1075 + disabled: () => disabled,
1076 + drag: () => drag,
1077 + escapeKey: () => escapeKey,
1078 + focusOut: () => focusOut,
1079 + imperativeAction: () => imperativeAction,
1080 + incrementPress: () => incrementPress,
1081 + initial: () => initial,
1082 + inputBlur: () => inputBlur,
1083 + inputChange: () => inputChange,
1084 + inputClear: () => inputClear,
1085 + inputPaste: () => inputPaste,
1086 + inputPress: () => inputPress,
1087 + itemPress: () => itemPress,
1088 + keyboard: () => keyboard,
1089 + linkPress: () => linkPress,
1090 + listNavigation: () => listNavigation,
1091 + missing: () => missing,
1092 + none: () => none,
1093 + outsidePress: () => outsidePress,
1094 + pointer: () => pointer,
1095 + scrub: () => scrub,
1096 + siblingOpen: () => siblingOpen,
1097 + swipe: () => swipe,
1098 + trackPress: () => trackPress,
1099 + triggerFocus: () => triggerFocus,
1100 + triggerHover: () => triggerHover,
1101 + triggerPress: () => triggerPress,
1102 + wheel: () => wheel,
1103 + windowResize: () => windowResize
1104 + });
1105 + var none = "none";
1106 + var triggerPress = "trigger-press";
1107 + var triggerHover = "trigger-hover";
1108 + var triggerFocus = "trigger-focus";
1109 + var outsidePress = "outside-press";
1110 + var itemPress = "item-press";
1111 + var closePress = "close-press";
1112 + var linkPress = "link-press";
1113 + var clearPress = "clear-press";
1114 + var chipRemovePress = "chip-remove-press";
1115 + var trackPress = "track-press";
1116 + var incrementPress = "increment-press";
1117 + var decrementPress = "decrement-press";
1118 + var inputChange = "input-change";
1119 + var inputClear = "input-clear";
1120 + var inputBlur = "input-blur";
1121 + var inputPaste = "input-paste";
1122 + var inputPress = "input-press";
1123 + var focusOut = "focus-out";
1124 + var escapeKey = "escape-key";
1125 + var closeWatcher = "close-watcher";
1126 + var listNavigation = "list-navigation";
1127 + var keyboard = "keyboard";
1128 + var pointer = "pointer";
1129 + var drag = "drag";
1130 + var wheel = "wheel";
1131 + var scrub = "scrub";
1132 + var cancelOpen = "cancel-open";
1133 + var siblingOpen = "sibling-open";
1134 + var disabled = "disabled";
1135 + var missing = "missing";
1136 + var initial = "initial";
1137 + var imperativeAction = "imperative-action";
1138 + var swipe = "swipe";
1139 + var windowResize = "window-resize";
1140 +
1141 + // node_modules/@base-ui/react/internals/createBaseUIEventDetails.mjs
1142 + function createChangeEventDetails(reason, event, trigger, customProperties) {
1143 + let canceled = false;
1144 + let allowPropagation = false;
1145 + const custom = customProperties ?? EMPTY_OBJECT;
1146 + const details = {
1147 + reason,
1148 + event: event ?? new Event("base-ui"),
1149 + cancel() {
1150 + canceled = true;
1151 + },
1152 + allowPropagation() {
1153 + allowPropagation = true;
1154 + },
1155 + get isCanceled() {
1156 + return canceled;
1157 + },
1158 + get isPropagationAllowed() {
1159 + return allowPropagation;
1160 + },
1161 + trigger,
1162 + ...custom
1163 + };
1164 + return details;
1165 + }
1166 +
1167 + // node_modules/@base-ui/react/internals/useTransitionStatus.mjs
1168 + var React10 = __toESM(require_react(), 1);
1169 +
1170 + // node_modules/@base-ui/utils/useOnMount.mjs
1171 + var React9 = __toESM(require_react(), 1);
1172 + function useOnMount(fn) {
1173 + React9.useEffect(fn, EMPTY_ARRAY);
1174 + }
1175 +
1176 + // node_modules/@base-ui/utils/useAnimationFrame.mjs
1177 + var EMPTY = null;
1178 + var LAST_RAF = globalThis.requestAnimationFrame;
1179 + var Scheduler = class {
1180 + /* This implementation uses an array as a backing data-structure for frame callbacks.
1181 + * It allows `O(1)` callback cancelling by inserting a `null` in the array, though it
1182 + * never calls the native `cancelAnimationFrame` if there are no frames left. This can
1183 + * be much more efficient if there is a call pattern that alterns as
1184 + * "request-cancel-request-cancel-…".
1185 + * But in the case of "request-request-…-cancel-cancel-…", it leaves the final animation
1186 + * frame to run anyway. We turn that frame into a `O(1)` no-op via `callbacksCount`. */
1187 + callbacks = [];
1188 + callbacksCount = 0;
1189 + nextId = 1;
1190 + startId = 1;
1191 + isScheduled = false;
1192 + tick = (timestamp) => {
1193 + this.isScheduled = false;
1194 + const currentCallbacks = this.callbacks;
1195 + const currentCallbacksCount = this.callbacksCount;
1196 + this.callbacks = [];
1197 + this.callbacksCount = 0;
1198 + this.startId = this.nextId;
1199 + if (currentCallbacksCount > 0) {
1200 + for (let i = 0; i < currentCallbacks.length; i += 1) {
1201 + currentCallbacks[i]?.(timestamp);
1202 + }
1203 + }
1204 + };
1205 + request(fn) {
1206 + const id = this.nextId;
1207 + this.nextId += 1;
1208 + this.callbacks.push(fn);
1209 + this.callbacksCount += 1;
1210 + const didRAFChange = LAST_RAF !== requestAnimationFrame && (LAST_RAF = requestAnimationFrame, true);
1211 + if (!this.isScheduled || didRAFChange) {
1212 + requestAnimationFrame(this.tick);
1213 + this.isScheduled = true;
1214 + }
1215 + return id;
1216 + }
1217 + cancel(id) {
1218 + const index2 = id - this.startId;
1219 + if (index2 < 0 || index2 >= this.callbacks.length) {
1220 + return;
1221 + }
1222 + if (this.callbacks[index2] === null) {
1223 + return;
1224 + }
1225 + this.callbacks[index2] = null;
1226 + this.callbacksCount -= 1;
1227 + }
1228 + };
1229 + var scheduler = new Scheduler();
1230 + var AnimationFrame = class _AnimationFrame {
1231 + static create() {
1232 + return new _AnimationFrame();
1233 + }
1234 + static request(fn) {
1235 + return scheduler.request(fn);
1236 + }
1237 + static cancel(id) {
1238 + return scheduler.cancel(id);
1239 + }
1240 + currentId = EMPTY;
1241 + /**
1242 + * Executes `fn` after `delay`, clearing any previously scheduled call.
1243 + */
1244 + request(fn) {
1245 + this.cancel();
1246 + this.currentId = scheduler.request(() => {
1247 + this.currentId = EMPTY;
1248 + fn();
1249 + });
1250 + }
1251 + cancel = () => {
1252 + if (this.currentId !== EMPTY) {
1253 + scheduler.cancel(this.currentId);
1254 + this.currentId = EMPTY;
1255 + }
1256 + };
1257 + disposeEffect = () => {
1258 + return this.cancel;
1259 + };
1260 + };
1261 + function useAnimationFrame() {
1262 + const timeout = useRefWithInit(AnimationFrame.create).current;
1263 + useOnMount(timeout.disposeEffect);
1264 + return timeout;
1265 + }
1266 +
1267 + // node_modules/@base-ui/react/internals/useTransitionStatus.mjs
1268 + function useTransitionStatus(open3, enableIdleState = false, deferEndingState = false, animateInitialOpen = false) {
1269 + const [transitionStatus, setTransitionStatus] = React10.useState(open3 && enableIdleState ? "idle" : void 0);
1270 + const [mounted, setMounted] = React10.useState(open3 && !animateInitialOpen);
1271 + if (open3 && !mounted) {
1272 + setMounted(true);
1273 + setTransitionStatus("starting");
1274 + }
1275 + if (!open3 && mounted && transitionStatus !== "ending" && !deferEndingState) {
1276 + setTransitionStatus("ending");
1277 + }
1278 + if (!open3 && !mounted && transitionStatus === "ending") {
1279 + setTransitionStatus(void 0);
1280 + }
1281 + useIsoLayoutEffect(() => {
1282 + if (!open3 && mounted && transitionStatus !== "ending" && deferEndingState) {
1283 + const frame = AnimationFrame.request(() => {
1284 + setTransitionStatus("ending");
1285 + });
1286 + return () => {
1287 + AnimationFrame.cancel(frame);
1288 + };
1289 + }
1290 + return void 0;
1291 + }, [open3, mounted, transitionStatus, deferEndingState]);
1292 + useIsoLayoutEffect(() => {
1293 + if (!open3 || enableIdleState) {
1294 + return void 0;
1295 + }
1296 + const frame = AnimationFrame.request(() => {
1297 + setTransitionStatus(void 0);
1298 + });
1299 + return () => {
1300 + AnimationFrame.cancel(frame);
1301 + };
1302 + }, [enableIdleState, open3]);
1303 + useIsoLayoutEffect(() => {
1304 + if (!open3 || !enableIdleState) {
1305 + return void 0;
1306 + }
1307 + if (open3 && mounted && transitionStatus !== "idle") {
1308 + setTransitionStatus("starting");
1309 + }
1310 + const frame = AnimationFrame.request(() => {
1311 + setTransitionStatus("idle");
1312 + });
1313 + return () => {
1314 + AnimationFrame.cancel(frame);
1315 + };
1316 + }, [enableIdleState, open3, mounted, transitionStatus]);
1317 + return {
1318 + mounted,
1319 + setMounted,
1320 + transitionStatus
1321 + };
1322 + }
1323 +
1324 + // node_modules/@base-ui/react/collapsible/root/useCollapsibleRoot.mjs
1325 + function useCollapsibleRoot(parameters) {
1326 + const {
1327 + open: openParam,
1328 + defaultOpen = false,
1329 + onOpenChange,
1330 + disabled: disabled2
1331 + } = parameters;
1332 + const [open3, setOpen] = useControlled({
1333 + controlled: openParam,
1334 + default: defaultOpen,
1335 + name: "Collapsible",
1336 + state: "open"
1337 + });
1338 + const {
1339 + mounted,
1340 + setMounted,
1341 + transitionStatus
1342 + } = useTransitionStatus(open3, true, true);
1343 + const defaultPanelId = useBaseUiId();
1344 + const [registeredPanelId, setPanelIdState] = React11.useState();
1345 + const panelId = registeredPanelId === null ? void 0 : registeredPanelId ?? defaultPanelId;
1346 + const handleTrigger = useStableCallback((event) => {
1347 + const nextOpen = !open3;
1348 + const eventDetails = createChangeEventDetails(reason_parts_exports.triggerPress, event.nativeEvent);
1349 + onOpenChange(nextOpen, eventDetails);
1350 + if (eventDetails.isCanceled) {
1351 + return;
1352 + }
1353 + setOpen(nextOpen);
1354 + });
1355 + return React11.useMemo(() => ({
1356 + defaultPanelId,
1357 + disabled: disabled2,
1358 + handleTrigger,
1359 + mounted,
1360 + open: open3,
1361 + panelId,
1362 + setMounted,
1363 + setOpen,
1364 + setPanelIdState,
1365 + transitionStatus
1366 + }), [defaultPanelId, disabled2, handleTrigger, mounted, open3, panelId, setMounted, setOpen, setPanelIdState, transitionStatus]);
1367 + }
1368 +
1369 + // node_modules/@base-ui/react/collapsible/root/CollapsibleRootContext.mjs
1370 + var React12 = __toESM(require_react(), 1);
1371 + var CollapsibleRootContext = /* @__PURE__ */ React12.createContext(void 0);
1372 + if (true) CollapsibleRootContext.displayName = "CollapsibleRootContext";
1373 + function useCollapsibleRootContext() {
1374 + const context = React12.useContext(CollapsibleRootContext);
1375 + if (context === void 0) {
1376 + throw new Error(true ? "Base UI: CollapsibleRootContext is missing. Collapsible parts must be placed within <Collapsible.Root>." : formatErrorMessage_default(15));
1377 + }
1378 + return context;
1379 + }
1380 +
1381 + // node_modules/@base-ui/react/internals/TransitionStatusDataAttributes.mjs
1382 + var TransitionStatusDataAttributes_exports = {};
1383 + __export(TransitionStatusDataAttributes_exports, {
1384 + endingStyle: () => endingStyle,
1385 + startingStyle: () => startingStyle
1386 + });
1387 + var startingStyle = "data-starting-style";
1388 + var endingStyle = "data-ending-style";
1389 +
1390 + // node_modules/@base-ui/react/internals/stateAttributesMapping.mjs
1391 + var STARTING_HOOK = {
1392 + [startingStyle]: ""
1393 + };
1394 + var ENDING_HOOK = {
1395 + [endingStyle]: ""
1396 + };
1397 + var transitionStatusMapping = {
1398 + transitionStatus(value) {
1399 + if (value === "starting") {
1400 + return STARTING_HOOK;
1401 + }
1402 + if (value === "ending") {
1403 + return ENDING_HOOK;
1404 + }
1405 + return null;
1406 + }
1407 + };
1408 +
1409 + // node_modules/@base-ui/react/collapsible/panel/CollapsiblePanelDataAttributes.mjs
1410 + var open = "data-open";
1411 + var closed = "data-closed";
1412 + var startingStyle2 = TransitionStatusDataAttributes_exports.startingStyle;
1413 + var endingStyle2 = TransitionStatusDataAttributes_exports.endingStyle;
1414 +
1415 + // node_modules/@base-ui/react/collapsible/trigger/CollapsibleTriggerDataAttributes.mjs
1416 + var panelOpen = "data-panel-open";
1417 +
1418 + // node_modules/@base-ui/react/utils/collapsibleOpenStateMapping.mjs
1419 + var PANEL_OPEN_HOOK = {
1420 + [open]: ""
1421 + };
1422 + var PANEL_CLOSED_HOOK = {
1423 + [closed]: ""
1424 + };
1425 + var triggerOpenStateMapping = {
1426 + open(value) {
1427 + if (value) {
1428 + return {
1429 + [panelOpen]: ""
1430 + };
1431 + }
1432 + return null;
1433 + }
1434 + };
1435 + var collapsibleOpenStateMapping = {
1436 + open(value) {
1437 + if (value) {
1438 + return PANEL_OPEN_HOOK;
1439 + }
1440 + return PANEL_CLOSED_HOOK;
1441 + }
1442 + };
1443 +
1444 + // node_modules/@base-ui/react/internals/use-button/useButton.mjs
1445 + var React15 = __toESM(require_react(), 1);
1446 +
1447 + // node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs
1448 + function hasWindow() {
1449 + return typeof window !== "undefined";
1450 + }
1451 + function getNodeName(node) {
1452 + if (isNode(node)) {
1453 + return (node.nodeName || "").toLowerCase();
1454 + }
1455 + return "#document";
1456 + }
1457 + function getWindow(node) {
1458 + var _node$ownerDocument;
1459 + return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
1460 + }
1461 + function getDocumentElement(node) {
1462 + var _ref;
1463 + return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
1464 + }
1465 + function isNode(value) {
1466 + if (!hasWindow()) {
1467 + return false;
1468 + }
1469 + return value instanceof Node || value instanceof getWindow(value).Node;
1470 + }
1471 + function isElement(value) {
1472 + if (!hasWindow()) {
1473 + return false;
1474 + }
1475 + return value instanceof Element || value instanceof getWindow(value).Element;
1476 + }
1477 + function isHTMLElement(value) {
1478 + if (!hasWindow()) {
1479 + return false;
1480 + }
1481 + return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
1482 + }
1483 + function isShadowRoot(value) {
1484 + if (!hasWindow() || typeof ShadowRoot === "undefined") {
1485 + return false;
1486 + }
1487 + return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
1488 + }
1489 + function isOverflowElement(element) {
1490 + const {
1491 + overflow,
1492 + overflowX,
1493 + overflowY,
1494 + display
1495 + } = getComputedStyle2(element);
1496 + return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== "inline" && display !== "contents";
1497 + }
1498 + function isTableElement(element) {
1499 + return /^(table|td|th)$/.test(getNodeName(element));
1500 + }
1501 + function isTopLayer(element) {
1502 + try {
1503 + if (element.matches(":popover-open")) {
1504 + return true;
1505 + }
1506 + } catch (_e) {
1507 + }
1508 + try {
1509 + return element.matches(":modal");
1510 + } catch (_e) {
1511 + return false;
1512 + }
1513 + }
1514 + var willChangeRe = /transform|translate|scale|rotate|perspective|filter/;
1515 + var containRe = /paint|layout|strict|content/;
1516 + var isNotNone = (value) => !!value && value !== "none";
1517 + var isWebKitValue;
1518 + function isContainingBlock(elementOrCss) {
1519 + const css = isElement(elementOrCss) ? getComputedStyle2(elementOrCss) : elementOrCss;
1520 + return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || "") || containRe.test(css.contain || "");
1521 + }
1522 + function getContainingBlock(element) {
1523 + let currentNode = getParentNode(element);
1524 + while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
1525 + if (isContainingBlock(currentNode)) {
1526 + return currentNode;
1527 + } else if (isTopLayer(currentNode)) {
1528 + return null;
1529 + }
1530 + currentNode = getParentNode(currentNode);
1531 + }
1532 + return null;
1533 + }
1534 + function isWebKit() {
1535 + if (isWebKitValue == null) {
1536 + isWebKitValue = typeof CSS !== "undefined" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none");
1537 + }
1538 + return isWebKitValue;
1539 + }
1540 + function isLastTraversableNode(node) {
1541 + return /^(html|body|#document)$/.test(getNodeName(node));
1542 + }
1543 + function getComputedStyle2(element) {
1544 + return getWindow(element).getComputedStyle(element);
1545 + }
1546 + function getNodeScroll(element) {
1547 + if (isElement(element)) {
1548 + return {
1549 + scrollLeft: element.scrollLeft,
1550 + scrollTop: element.scrollTop
1551 + };
1552 + }
1553 + return {
1554 + scrollLeft: element.scrollX,
1555 + scrollTop: element.scrollY
1556 + };
1557 + }
1558 + function getParentNode(node) {
1559 + if (getNodeName(node) === "html") {
1560 + return node;
1561 + }
1562 + const result = (
1563 + // Step into the shadow DOM of the parent of a slotted node.
1564 + node.assignedSlot || // DOM Element detected.
1565 + node.parentNode || // ShadowRoot detected.
1566 + isShadowRoot(node) && node.host || // Fallback.
1567 + getDocumentElement(node)
1568 + );
1569 + return isShadowRoot(result) ? result.host : result;
1570 + }
1571 + function getNearestOverflowAncestor(node) {
1572 + const parentNode = getParentNode(node);
1573 + if (isLastTraversableNode(parentNode)) {
1574 + return (node.ownerDocument || node).body;
1575 + }
1576 + if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
1577 + return parentNode;
1578 + }
1579 + return getNearestOverflowAncestor(parentNode);
1580 + }
1581 + function getOverflowAncestors(node, list, traverseIframes) {
1582 + var _node$ownerDocument2;
1583 + if (list === void 0) {
1584 + list = [];
1585 + }
1586 + if (traverseIframes === void 0) {
1587 + traverseIframes = true;
1588 + }
1589 + const scrollableAncestor = getNearestOverflowAncestor(node);
1590 + const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
1591 + const win = getWindow(scrollableAncestor);
1592 + if (isBody) {
1593 + const frameElement = getFrameElement(win);
1594 + return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);
1595 + } else {
1596 + return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
1597 + }
1598 + }
1599 + function getFrameElement(win) {
1600 + return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
1601 + }
1602 +
1603 + // node_modules/@base-ui/react/internals/composite/root/CompositeRootContext.mjs
1604 + var React13 = __toESM(require_react(), 1);
1605 + var CompositeRootContext = /* @__PURE__ */ React13.createContext(void 0);
1606 + if (true) CompositeRootContext.displayName = "CompositeRootContext";
1607 + function useCompositeRootContext(optional = false) {
1608 + const context = React13.useContext(CompositeRootContext);
1609 + if (context === void 0 && !optional) {
1610 + throw new Error(true ? "Base UI: CompositeRootContext is missing. Composite parts must be placed within <Composite.Root>." : formatErrorMessage_default(16));
1611 + }
1612 + return context;
1613 + }
1614 +
1615 + // node_modules/@base-ui/react/utils/useFocusableWhenDisabled.mjs
1616 + var React14 = __toESM(require_react(), 1);
1617 + function useFocusableWhenDisabled(parameters) {
1618 + const {
1619 + focusableWhenDisabled,
1620 + disabled: disabled2,
1621 + composite = false,
1622 + tabIndex: tabIndexProp = 0,
1623 + isNativeButton
1624 + } = parameters;
1625 + const isFocusableComposite = composite && focusableWhenDisabled !== false;
1626 + const isNonFocusableComposite = composite && focusableWhenDisabled === false;
1627 + const props = React14.useMemo(() => {
1628 + const additionalProps = {
1629 + // allow Tabbing away from focusableWhenDisabled elements
1630 + onKeyDown(event) {
1631 + if (disabled2 && focusableWhenDisabled && event.key !== "Tab") {
1632 + event.preventDefault();
1633 + }
1634 + }
1635 + };
1636 + if (!composite) {
1637 + additionalProps.tabIndex = tabIndexProp;
1638 + if (!isNativeButton && disabled2) {
1639 + additionalProps.tabIndex = focusableWhenDisabled ? tabIndexProp : -1;
1640 + }
1641 + }
1642 + if (isNativeButton && (focusableWhenDisabled || isFocusableComposite) || !isNativeButton && disabled2) {
1643 + additionalProps["aria-disabled"] = disabled2;
1644 + }
1645 + if (isNativeButton && (!focusableWhenDisabled || isNonFocusableComposite)) {
1646 + additionalProps.disabled = disabled2;
1647 + }
1648 + return additionalProps;
1649 + }, [composite, disabled2, focusableWhenDisabled, isFocusableComposite, isNonFocusableComposite, isNativeButton, tabIndexProp]);
1650 + return {
1651 + props
1652 + };
1653 + }
1654 +
1655 + // node_modules/@base-ui/utils/owner.mjs
1656 + function ownerDocument(node) {
1657 + return node?.ownerDocument || document;
1658 + }
1659 +
1660 + // node_modules/@base-ui/react/utils/dispatchClickWithModifiers.mjs
1661 + function dispatchClickWithModifiers(target, sourceEvent, {
1662 + detail = 0
1663 + } = {}) {
1664 + target.dispatchEvent(new (getWindow(target)).PointerEvent("click", {
1665 + bubbles: true,
1666 + cancelable: true,
1667 + composed: true,
1668 + detail,
1669 + shiftKey: sourceEvent.shiftKey,
1670 + ctrlKey: sourceEvent.ctrlKey,
1671 + altKey: sourceEvent.altKey,
1672 + metaKey: sourceEvent.metaKey
1673 + }));
1674 + }
1675 +
1676 + // node_modules/@base-ui/react/internals/use-button/useButton.mjs
1677 + function useButton(parameters = {}) {
1678 + const {
1679 + disabled: disabled2 = false,
1680 + focusableWhenDisabled,
1681 + tabIndex = 0,
1682 + native: isNativeButton = true,
1683 + composite: compositeProp
1684 + } = parameters;
1685 + const elementRef = React15.useRef(null);
1686 + const compositeRootContext = useCompositeRootContext(true);
1687 + const isCompositeItem = compositeProp ?? compositeRootContext !== void 0;
1688 + const {
1689 + props: focusableWhenDisabledProps
1690 + } = useFocusableWhenDisabled({
1691 + focusableWhenDisabled,
1692 + disabled: disabled2,
1693 + composite: isCompositeItem,
1694 + tabIndex,
1695 + isNativeButton
1696 + });
1697 + if (true) {
1698 + React15.useEffect(() => {
1699 + if (!elementRef.current) {
1700 + return;
1701 + }
1702 + const isButtonTag = isButtonElement(elementRef.current);
1703 + if (isNativeButton) {
1704 + if (!isButtonTag) {
1705 + const ownerStackMessage = SafeReact.captureOwnerStack?.() || "";
1706 + const message = "A component that acts as a button expected a native <button> because the `nativeButton` prop is true. Rendering a non-<button> removes native button semantics, which can impact forms and accessibility. Use a real <button> in the `render` prop, or set `nativeButton` to `false`.";
1707 + error(`${message}${ownerStackMessage}`);
1708 + }
1709 + } else if (isButtonTag) {
1710 + const ownerStackMessage = SafeReact.captureOwnerStack?.() || "";
1711 + const message = "A component that acts as a button expected a non-<button> because the `nativeButton` prop is false. Rendering a <button> keeps native behavior while Base UI applies non-native attributes and handlers, which can add unintended extra attributes (such as `role` or `aria-disabled`). Use a non-<button> in the `render` prop, or set `nativeButton` to `true`.";
1712 + error(`${message}${ownerStackMessage}`);
1713 + }
1714 + }, [isNativeButton]);
1715 + }
1716 + const updateDisabled = React15.useCallback(() => {
1717 + const element = elementRef.current;
1718 + if (!isButtonElement(element)) {
1719 + return;
1720 + }
1721 + if (isCompositeItem && disabled2 && focusableWhenDisabledProps.disabled === void 0 && element.disabled) {
1722 + element.disabled = false;
1723 + }
1724 + }, [disabled2, focusableWhenDisabledProps.disabled, isCompositeItem]);
1725 + useIsoLayoutEffect(updateDisabled, [updateDisabled]);
1726 + const getButtonProps = React15.useCallback((externalProps = {}) => {
1727 + const {
1728 + onClick: externalOnClick,
1729 + onMouseDown: externalOnMouseDown,
1730 + onKeyUp: externalOnKeyUp,
1731 + onKeyDown: externalOnKeyDown,
1732 + onPointerDown: externalOnPointerDown,
1733 + ...otherExternalProps
1734 + } = externalProps;
1735 + return mergeProps({
1736 + onClick(event) {
1737 + if (disabled2) {
1738 + event.preventDefault();
1739 + return;
1740 + }
1741 + externalOnClick?.(event);
1742 + },
1743 + onMouseDown(event) {
1744 + if (!disabled2) {
1745 + externalOnMouseDown?.(event);
1746 + }
1747 + },
1748 + onKeyDown(event) {
1749 + if (disabled2) {
1750 + return;
1751 + }
1752 + makeEventPreventable(event);
1753 + externalOnKeyDown?.(event);
1754 + if (event.baseUIHandlerPrevented) {
1755 + return;
1756 + }
1757 + const isCurrentTarget = event.target === event.currentTarget;
1758 + const currentTarget = event.currentTarget;
1759 + const isButton = isButtonElement(currentTarget);
1760 + const isLink = !isNativeButton && isValidLinkElement(currentTarget);
1761 + const shouldClick = isCurrentTarget && (isNativeButton ? isButton : !isLink);
1762 + const isEnterKey = event.key === "Enter";
1763 + const isSpaceKey = event.key === " ";
1764 + const role = currentTarget.getAttribute("role");
1765 + const isTextNavigationRole = role?.startsWith("menuitem") || role === "option" || role === "gridcell";
1766 + if (isCurrentTarget && isCompositeItem && isSpaceKey) {
1767 + if (event.defaultPrevented && isTextNavigationRole) {
1768 + return;
1769 + }
1770 + event.preventDefault();
1771 + if (!isNativeButton || isButton) {
1772 + event.preventBaseUIHandler();
1773 + dispatchClickWithModifiers(currentTarget, event);
1774 + }
1775 + return;
1776 + }
1777 + if (!shouldClick || isNativeButton || !isSpaceKey && !isEnterKey) {
1778 + if (isCurrentTarget && isLink && isSpaceKey) {
1779 + event.preventDefault();
1780 + }
1781 + return;
1782 + }
1783 + if (event.defaultPrevented) {
1784 + return;
1785 + }
1786 + event.preventDefault();
1787 + if (isEnterKey) {
1788 + event.preventBaseUIHandler();
1789 + dispatchClickWithModifiers(currentTarget, event);
1790 + }
1791 + },
1792 + onKeyUp(event) {
1793 + if (disabled2) {
1794 + return;
1795 + }
1796 + makeEventPreventable(event);
1797 + externalOnKeyUp?.(event);
1798 + if (event.target === event.currentTarget && isNativeButton && isCompositeItem && isButtonElement(event.currentTarget) && event.key === " ") {
1799 + event.preventDefault();
1800 + return;
1801 + }
1802 + if (event.baseUIHandlerPrevented) {
1803 + return;
1804 + }
1805 + if (event.target === event.currentTarget && !isNativeButton && !isCompositeItem && !event.defaultPrevented && event.key === " ") {
1806 + event.preventBaseUIHandler();
1807 + dispatchClickWithModifiers(event.currentTarget, event);
1808 + }
1809 + },
1810 + onPointerDown(event) {
1811 + if (disabled2) {
1812 + event.preventDefault();
1813 + return;
1814 + }
1815 + externalOnPointerDown?.(event);
1816 + }
1817 + }, isNativeButton ? {
1818 + type: "button"
1819 + } : {
1820 + role: "button"
1821 + }, focusableWhenDisabledProps, otherExternalProps);
1822 + }, [disabled2, focusableWhenDisabledProps, isCompositeItem, isNativeButton]);
1823 + const buttonRef = useStableCallback((element) => {
1824 + elementRef.current = element;
1825 + updateDisabled();
1826 + });
1827 + return {
1828 + getButtonProps,
1829 + buttonRef
1830 + };
1831 + }
1832 + function isButtonElement(elem) {
1833 + return isHTMLElement(elem) && elem.tagName === "BUTTON";
1834 + }
1835 + function isValidLinkElement(elem) {
1836 + return isHTMLElement(elem) && elem.tagName === "A" && Boolean(elem.href);
1837 + }
1838 +
1839 + // node_modules/@base-ui/react/collapsible/panel/useCollapsiblePanel.mjs
1840 + var React17 = __toESM(require_react(), 1);
1841 +
1842 + // node_modules/@base-ui/utils/addEventListener.mjs
1843 + function addEventListener(target, type, listener, options) {
1844 + target.addEventListener(type, listener, options);
1845 + return () => {
1846 + target.removeEventListener(type, listener, options);
1847 + };
1848 + }
1849 +
1850 + // node_modules/@base-ui/utils/useValueAsRef.mjs
1851 + function useValueAsRef(value) {
1852 + const latest = useRefWithInit(createLatestRef, value).current;
1853 + latest.next = value;
1854 + useIsoLayoutEffect(latest.effect);
1855 + return latest;
1856 + }
1857 + function createLatestRef(value) {
1858 + const latest = {
1859 + current: value,
1860 + next: value,
1861 + effect: () => {
1862 + latest.current = latest.next;
1863 + }
1864 + };
1865 + return latest;
1866 + }
1867 +
1868 + // node_modules/@base-ui/react/internals/useOpenChangeComplete.mjs
1869 + var React16 = __toESM(require_react(), 1);
1870 +
1871 + // node_modules/@base-ui/react/internals/useAnimationsFinished.mjs
1872 + var ReactDOM = __toESM(require_react_dom(), 1);
1873 +
1874 + // node_modules/@base-ui/react/utils/resolveRef.mjs
1875 + function resolveRef(maybeRef) {
1876 + if (maybeRef == null) {
1877 + return maybeRef;
1878 + }
1879 + return "current" in maybeRef ? maybeRef.current : maybeRef;
1880 + }
1881 +
1882 + // node_modules/@base-ui/react/internals/useAnimationsFinished.mjs
1883 + var pendingCallbacks = null;
1884 + function flushBeforePaint(fn) {
1885 + if (!pendingCallbacks) {
1886 + const callbacks = [];
1887 + pendingCallbacks = callbacks;
1888 + queueMicrotask(() => {
1889 + pendingCallbacks = null;
1890 + ReactDOM.flushSync(() => {
1891 + for (const callback of callbacks) {
1892 + callback();
1893 + }
1894 + });
1895 + });
1896 + }
1897 + pendingCallbacks.push(fn);
1898 + }
1899 + function useAnimationsFinished(elementOrRef, waitForStartingStyleRemoved = false, batch = false) {
1900 + const frame = useAnimationFrame();
1901 + return useStableCallback((fnToExecute, signal = null) => {
1902 + frame.cancel();
1903 + const element = resolveRef(elementOrRef);
1904 + if (element == null) {
1905 + return;
1906 + }
1907 + const resolvedElement = element;
1908 + const done = () => {
1909 + if (!batch) {
1910 + ReactDOM.flushSync(fnToExecute);
1911 + return;
1912 + }
1913 + flushBeforePaint(() => {
1914 + if (!signal?.aborted) {
1915 + fnToExecute();
1916 + }
1917 + });
1918 + };
1919 + if (typeof resolvedElement.getAnimations !== "function" || globalThis.BASE_UI_ANIMATIONS_DISABLED) {
1920 + fnToExecute();
1921 + return;
1922 + }
1923 + function exec() {
1924 + Promise.all(resolvedElement.getAnimations().map((animation) => animation.finished)).then(() => {
1925 + if (!signal?.aborted) {
1926 + done();
1927 + }
1928 + }, () => {
1929 + if (signal?.aborted) {
1930 + return;
1931 + }
1932 + const currentAnimations = resolvedElement.getAnimations();
1933 + if (currentAnimations.some((animation) => animation.pending || animation.playState !== "finished")) {
1934 + exec();
1935 + return;
1936 + }
1937 + done();
1938 + });
1939 + }
1940 + if (waitForStartingStyleRemoved) {
1941 + const startingStyleAttribute = startingStyle;
1942 + if (!resolvedElement.hasAttribute(startingStyleAttribute)) {
1943 + frame.request(exec);
1944 + return;
1945 + }
1946 + const attributeObserver = new MutationObserver(() => {
1947 + if (!resolvedElement.hasAttribute(startingStyleAttribute)) {
1948 + attributeObserver.disconnect();
1949 + exec();
1950 + }
1951 + });
1952 + attributeObserver.observe(resolvedElement, {
1953 + attributes: true,
1954 + attributeFilter: [startingStyleAttribute]
1955 + });
1956 + signal?.addEventListener("abort", () => attributeObserver.disconnect(), {
1957 + once: true
1958 + });
1959 + return;
1960 + }
1961 + frame.request(exec);
1962 + });
1963 + }
1964 +
1965 + // node_modules/@base-ui/react/internals/useOpenChangeComplete.mjs
1966 + function useOpenChangeComplete(parameters) {
1967 + const {
1968 + enabled = true,
1969 + open: open3,
1970 + ref,
1971 + batch = false,
1972 + onComplete: onCompleteParam
1973 + } = parameters;
1974 + const onComplete = useStableCallback(onCompleteParam);
1975 + const runOnceAnimationsFinish = useAnimationsFinished(ref, open3, batch);
1976 + React16.useEffect(() => {
1977 + if (!enabled) {
1978 + return void 0;
1979 + }
1980 + const abortController = new AbortController();
1981 + runOnceAnimationsFinish(onComplete, abortController.signal);
1982 + return () => {
1983 + abortController.abort();
1984 + };
1985 + }, [enabled, open3, onComplete, runOnceAnimationsFinish]);
1986 + }
1987 +
1988 + // node_modules/@base-ui/react/collapsible/panel/useCollapsiblePanel.mjs
1989 + var EMPTY_DIMENSIONS = {
1990 + height: void 0,
1991 + width: void 0
1992 + };
1993 + function useCollapsiblePanel(parameters) {
1994 + const {
1995 + externalRef,
1996 + hiddenUntilFound,
1997 + id: idParam,
1998 + keepMounted,
1999 + mounted,
2000 + onOpenChange,
2001 + open: open3,
2002 + setMounted,
2003 + setOpen,
2004 + transitionStatus
2005 + } = parameters;
2006 + const panelRef = React17.useRef(null);
2007 + const animationTypeRef = React17.useRef(null);
2008 + const [dimensions, setDimensionsUnwrapped] = React17.useState(EMPTY_DIMENSIONS);
2009 + const lastMeasuredDimensionsRef = React17.useRef(EMPTY_DIMENSIONS);
2010 + const shouldSkipNextOpenRef = React17.useRef(false);
2011 + const shouldPreventMountAnimationRef = React17.useRef(open3);
2012 + const shouldPreventActivityResumeAnimationRef = React17.useRef(false);
2013 + const [forcePanelIdle, setForcePanelIdle] = React17.useState(false);
2014 + const pendingTemporaryStyleRestoreRef = React17.useRef(null);
2015 + const mergedPanelRef = useMergedRefs(externalRef, panelRef);
2016 + const latestOpenRef = useValueAsRef(open3);
2017 + const runOnceCloseAnimationsFinish = useAnimationsFinished(panelRef);
2018 + const hidden = !open3 && !mounted;
2019 + const panelTransitionStatus = forcePanelIdle ? "idle" : transitionStatus;
2020 + const shouldPreventOpenAnimation = open3 && // These 2 refs are safe to read in render, they are only written from committed
2021 + // layout/effect paths and gate one-shot motion suppression for the next open
2022 + // lifecycle. They intentionally expose the last committed motion snapshot.
2023 + (shouldPreventMountAnimationRef.current || shouldPreventActivityResumeAnimationRef.current);
2024 + const renderedDimensions = !open3 && mounted && // These 2 refs are also safe to read in render, both hold the last committed
2025 + // animation mode and measurement. This fallback only restores a previously
2026 + // measured pixel size after the live dimensions state has been reset back to `auto`.
2027 + animationTypeRef.current === "css-animation" && dimensions.height === void 0 && dimensions.width === void 0 ? lastMeasuredDimensionsRef.current : dimensions;
2028 + const shouldPersistHiddenTransitionStyles = hiddenUntilFound && hidden && animationTypeRef.current !== "css-animation";
2029 + const setDimensions = useStableCallback((nextDimensions, shouldCacheMeasurement = true) => {
2030 + if (shouldCacheMeasurement) {
2031 + lastMeasuredDimensionsRef.current = nextDimensions;
2032 + }
2033 + setDimensionsUnwrapped(nextDimensions);
2034 + });
2035 + const restorePendingTemporaryStyle = useStableCallback(() => {
2036 + pendingTemporaryStyleRestoreRef.current?.();
2037 + pendingTemporaryStyleRestoreRef.current = null;
2038 + });
2039 + const setPendingTemporaryStyleRestore = useStableCallback((restore) => {
2040 + restorePendingTemporaryStyle();
2041 + pendingTemporaryStyleRestoreRef.current = () => {
2042 + pendingTemporaryStyleRestoreRef.current = null;
2043 + restore();
2044 + };
2045 + });
2046 + const markActivityResumeAnimationSuppressed = useStableCallback(() => {
2047 + if (open3 && mounted && animationTypeRef.current === "css-animation") {
2048 + shouldPreventActivityResumeAnimationRef.current = true;
2049 + }
2050 + });
2051 + useIsoLayoutEffect(() => {
2052 + if (!forcePanelIdle || transitionStatus === "starting") {
2053 + return;
2054 + }
2055 + setForcePanelIdle(false);
2056 + }, [forcePanelIdle, transitionStatus]);
2057 + React17.useEffect(() => {
2058 + return () => {
2059 + markActivityResumeAnimationSuppressed();
2060 + restorePendingTemporaryStyle();
2061 + };
2062 + }, [markActivityResumeAnimationSuppressed, restorePendingTemporaryStyle]);
2063 + useIsoLayoutEffect(() => {
2064 + const panel = panelRef.current;
2065 + if (!panel) {
2066 + return void 0;
2067 + }
2068 + if (!open3 && pendingTemporaryStyleRestoreRef.current) {
2069 + restorePendingTemporaryStyle();
2070 + }
2071 + const animationType = getAnimationType(panel, shouldPreventOpenAnimation);
2072 + animationTypeRef.current = animationType;
2073 + if (open3 && transitionStatus === "idle" && shouldPreventMountAnimationRef.current && animationType === "css-animation") {
2074 + lastMeasuredDimensionsRef.current = getDimensions(panel);
2075 + return void 0;
2076 + }
2077 + if (open3 && transitionStatus === "starting") {
2078 + const skipNextOpen = shouldSkipNextOpenRef.current;
2079 + shouldSkipNextOpenRef.current = false;
2080 + if (animationType === "none") {
2081 + setDimensions(getDimensions(panel));
2082 + setForcePanelIdle(true);
2083 + return void 0;
2084 + }
2085 + if (animationType === "css-transition") {
2086 + const restoreLayoutStyles = resetLayoutStyles(panel);
2087 + setDimensions(getDimensions(panel));
2088 + if (!skipNextOpen) {
2089 + return restoreLayoutStyles;
2090 + }
2091 + const restoreTransitionDuration = setTemporaryStyle(panel, "transition-duration", "0s");
2092 + setPendingTemporaryStyleRestore(restoreTransitionDuration);
2093 + setForcePanelIdle(true);
2094 + return restoreLayoutStyles;
2095 + }
2096 + setDimensions(getDimensions(panel));
2097 + const restoreAnimationName = setTemporaryStyle(panel, "animation-name", "none");
2098 + if (!skipNextOpen) {
2099 + restoreAnimationName();
2100 + return void 0;
2101 + }
2102 + const restoreAnimationDuration = setTemporaryStyle(panel, "animation-duration", "0s");
2103 + restoreAnimationName();
2104 + setPendingTemporaryStyleRestore(restoreAnimationDuration);
2105 + setForcePanelIdle(true);
2106 + return void 0;
2107 + }
2108 + if (!open3 && mounted && (transitionStatus === "idle" || transitionStatus === "starting")) {
2109 + shouldPreventMountAnimationRef.current = false;
2110 + shouldPreventActivityResumeAnimationRef.current = false;
2111 + if (animationType === "none") {
2112 + setDimensions(EMPTY_DIMENSIONS, false);
2113 + setMounted(false);
2114 + return void 0;
2115 + }
2116 + setDimensions(getDimensions(panel));
2117 + return void 0;
2118 + }
2119 + if (transitionStatus !== "ending") {
2120 + return void 0;
2121 + }
2122 + if (animationType === "none") {
2123 + setMounted(false);
2124 + return void 0;
2125 + }
2126 + const nextDimensions = getDimensions(panel);
2127 + const hasMeasuredSize = nextDimensions.height > 0 || nextDimensions.width > 0;
2128 + if (!hasMeasuredSize) {
2129 + setMounted(false);
2130 + return void 0;
2131 + }
2132 + setDimensions(nextDimensions);
2133 + if (animationType === "css-animation") {
2134 + const restoreAnimationName = setTemporaryStyle(panel, "animation-name", "none");
2135 + restoreAnimationName();
2136 + }
2137 + return void 0;
2138 + }, [mounted, open3, restorePendingTemporaryStyle, setDimensions, setMounted, setPendingTemporaryStyleRestore, shouldPreventOpenAnimation, transitionStatus]);
2139 + useOpenChangeComplete({
2140 + enabled: open3 && mounted && panelTransitionStatus === "idle",
2141 + open: true,
2142 + ref: panelRef,
2143 + onComplete() {
2144 + if (!open3) {
2145 + return;
2146 + }
2147 + setDimensions(EMPTY_DIMENSIONS, false);
2148 + }
2149 + });
2150 + React17.useEffect(() => {
2151 + if (open3 || !mounted || panelTransitionStatus !== "ending") {
2152 + return void 0;
2153 + }
2154 + const panel = panelRef.current;
2155 + if (!panel) {
2156 + return void 0;
2157 + }
2158 + const abortController = new AbortController();
2159 + let endingStyleFrame = -1;
2160 + function handleComplete() {
2161 + if (latestOpenRef.current) {
2162 + return;
2163 + }
2164 + setMounted(false);
2165 + setDimensions(EMPTY_DIMENSIONS, false);
2166 + }
2167 + endingStyleFrame = AnimationFrame.request(() => {
2168 + runOnceCloseAnimationsFinish(handleComplete, abortController.signal);
2169 + });
2170 + return () => {
2171 + AnimationFrame.cancel(endingStyleFrame);
2172 + abortController.abort();
2173 + };
2174 + }, [latestOpenRef, mounted, open3, panelTransitionStatus, runOnceCloseAnimationsFinish, setDimensions, setMounted]);
2175 + useIsoLayoutEffect(() => {
2176 + const panel = panelRef.current;
2177 + if (!panel || !hiddenUntilFound || !hidden) {
2178 + return;
2179 + }
2180 + panel.setAttribute("hidden", "until-found");
2181 + }, [hidden, hiddenUntilFound]);
2182 + React17.useEffect(function registerBeforeMatchListener() {
2183 + const panel = panelRef.current;
2184 + if (!panel) {
2185 + return void 0;
2186 + }
2187 + function handleBeforeMatch(event) {
2188 + const eventDetails = createChangeEventDetails(reason_parts_exports.none, event);
2189 + onOpenChange(true, eventDetails);
2190 + if (eventDetails.isCanceled) {
2191 + return;
2192 + }
2193 + shouldSkipNextOpenRef.current = true;
2194 + setOpen(true);
2195 + }
2196 + return addEventListener(panel, "beforematch", handleBeforeMatch);
2197 + }, [onOpenChange, setOpen]);
2198 + const shouldRender = keepMounted || hiddenUntilFound || mounted || open3;
2199 + return {
2200 + height: renderedDimensions.height,
2201 + props: {
2202 + ...shouldPersistHiddenTransitionStyles ? {
2203 + [startingStyle2]: ""
2204 + } : void 0,
2205 + hidden,
2206 + id: idParam
2207 + },
2208 + ref: mergedPanelRef,
2209 + shouldPreventOpenAnimation,
2210 + shouldRender,
2211 + transitionStatus: panelTransitionStatus,
2212 + width: renderedDimensions.width
2213 + };
2214 + }
2215 + function getDimensions(element) {
2216 + return {
2217 + height: element.scrollHeight,
2218 + width: element.scrollWidth
2219 + };
2220 + }
2221 + function getAnimationType(element, hasSuppressedMountAnimation) {
2222 + const panelStyles = getWindow(element).getComputedStyle(element);
2223 + const hasAnimation = (panelStyles.animationName.split(",").map((name) => name.trim()).some((name) => name !== "" && name !== "none") || hasSuppressedMountAnimation) && hasNonZeroDuration(panelStyles.animationDuration);
2224 + const hasTransition = hasNonZeroDuration(panelStyles.transitionDuration);
2225 + if (hasAnimation && hasTransition) {
2226 + if (true) {
2227 + warn("CSS transitions and CSS animations both detected on Collapsible or Accordion panel.", "Only one of either animation type should be used.");
2228 + }
2229 + return "css-transition";
2230 + }
2231 + if (hasTransition) {
2232 + return "css-transition";
2233 + }
2234 + if (hasAnimation) {
2235 + return "css-animation";
2236 + }
2237 + return "none";
2238 + }
2239 + function hasNonZeroDuration(value) {
2240 + return value.split(",").map((part) => part.trim()).some((part) => part !== "" && Number.parseFloat(part) > 0);
2241 + }
2242 + function setTemporaryStyle(element, property, value) {
2243 + const previousValue = element.style.getPropertyValue(property);
2244 + const previousPriority = element.style.getPropertyPriority(property);
2245 + element.style.setProperty(property, value);
2246 + return () => {
2247 + if (previousValue === "") {
2248 + element.style.removeProperty(property);
2249 + return;
2250 + }
2251 + element.style.setProperty(property, previousValue, previousPriority);
2252 + };
2253 + }
2254 + function resetLayoutStyles(element) {
2255 + const originalLayoutStyles = {
2256 + "justify-content": element.style.justifyContent,
2257 + "align-items": element.style.alignItems,
2258 + "align-content": element.style.alignContent,
2259 + "justify-items": element.style.justifyItems
2260 + };
2261 + Object.keys(originalLayoutStyles).forEach((key) => {
2262 + element.style.setProperty(key, "initial", "important");
2263 + });
2264 + function restoreLayoutStyles() {
2265 + Object.entries(originalLayoutStyles).forEach(([key, value]) => {
2266 + if (value === "") {
2267 + element.style.removeProperty(key);
2268 + return;
2269 + }
2270 + element.style.setProperty(key, value);
2271 + });
2272 + }
2273 + const frame = AnimationFrame.request(restoreLayoutStyles);
2274 + return () => {
2275 + AnimationFrame.cancel(frame);
2276 + restoreLayoutStyles();
2277 + };
2278 + }
2279 +
2280 + // node_modules/@base-ui/utils/platform/parts.mjs
2281 + var parts_exports = {};
2282 + __export(parts_exports, {
2283 + engine: () => engine_exports,
2284 + env: () => env_exports,
2285 + mediaQuery: () => media_query_exports,
2286 + os: () => os_exports,
2287 + screenReader: () => screen_reader_exports
2288 + });
2289 +
2290 + // node_modules/@base-ui/utils/platform/os.mjs
2291 + var os_exports = {};
2292 + __export(os_exports, {
2293 + android: () => android,
2294 + apple: () => apple,
2295 + ios: () => ios,
2296 + linux: () => linux,
2297 + mac: () => mac,
2298 + windows: () => windows
2299 + });
2300 +
2301 + // node_modules/@base-ui/utils/platform/shared.mjs
2302 + function readRawData() {
2303 + if (typeof navigator === "undefined") {
2304 + return {
2305 + userAgent: "",
2306 + platform: "",
2307 + maxTouchPoints: 0
2308 + };
2309 + }
2310 + if (true) {
2311 + const uaData = navigator.userAgentData;
2312 + if (uaData && Array.isArray(uaData.brands)) {
2313 + return {
2314 + userAgent: uaData.brands.map(({
2315 + brand,
2316 + version: version2
2317 + }) => `${brand}/${version2}`).join(" "),
2318 + platform: uaData.platform ?? navigator.platform ?? "",
2319 + maxTouchPoints: navigator.maxTouchPoints ?? 0
2320 + };
2321 + }
2322 + }
2323 + return {
2324 + userAgent: navigator.userAgent,
2325 + platform: navigator.platform ?? "",
2326 + maxTouchPoints: navigator.maxTouchPoints ?? 0
2327 + };
2328 + }
2329 + var {
2330 + userAgent,
2331 + platform,
2332 + maxTouchPoints
2333 + } = readRawData();
2334 + var lowerUserAgent = userAgent.toLowerCase();
2335 + var lowerPlatform = platform.toLowerCase();
2336 +
2337 + // node_modules/@base-ui/utils/platform/os.mjs
2338 + var ios = /^i(os$|p)/.test(lowerPlatform) || lowerPlatform === "macintel" && maxTouchPoints > 1;
2339 + var ANDROID_STRING = "android";
2340 + var android = lowerPlatform === ANDROID_STRING || lowerUserAgent.includes(ANDROID_STRING);
2341 + var mac = !ios && lowerPlatform.startsWith("mac");
2342 + var windows = lowerPlatform.startsWith("win");
2343 + var linux = !android && /^(linux|chrome os)/.test(lowerPlatform);
2344 + var apple = mac || ios;
2345 +
2346 + // node_modules/@base-ui/utils/platform/engine.mjs
2347 + var engine_exports = {};
2348 + __export(engine_exports, {
2349 + blink: () => blink,
2350 + gecko: () => gecko,
2351 + webkit: () => webkit
2352 + });
2353 + var webkit = typeof CSS !== "undefined" && !!CSS.supports?.("-webkit-backdrop-filter:none");
2354 + var gecko = !webkit && lowerUserAgent.includes("firefox");
2355 + var blink = !webkit && lowerUserAgent.includes("chrom");
2356 +
2357 + // node_modules/@base-ui/utils/platform/screen-reader.mjs
2358 + var screen_reader_exports = {};
2359 + __export(screen_reader_exports, {
2360 + voiceOver: () => voiceOver
2361 + });
2362 + var voiceOver = apple;
2363 +
2364 + // node_modules/@base-ui/utils/platform/env.mjs
2365 + var env_exports = {};
2366 + __export(env_exports, {
2367 + jsdom: () => jsdom
2368 + });
2369 + var jsdom = /jsdom|happydom/.test(lowerUserAgent);
2370 +
2371 + // node_modules/@base-ui/utils/platform/media-query.mjs
2372 + var media_query_exports = {};
2373 + __export(media_query_exports, {
2374 + iOS: () => iOS
2375 + });
2376 + var iOS = "@supports (-webkit-touch-callout: none)";
2377 +
2378 + // node_modules/@base-ui/utils/useTimeout.mjs
2379 + var EMPTY2 = 0;
2380 + var Timeout = class _Timeout {
2381 + static create() {
2382 + return new _Timeout();
2383 + }
2384 + currentId = EMPTY2;
2385 + /**
2386 + * Executes `fn` after `delay`, clearing any previously scheduled call.
2387 + */
2388 + start(delay, fn) {
2389 + this.clear();
2390 + this.currentId = setTimeout(() => {
2391 + this.currentId = EMPTY2;
2392 + fn();
2393 + }, delay);
2394 + }
2395 + isStarted() {
2396 + return this.currentId !== EMPTY2;
2397 + }
2398 + clear = () => {
2399 + if (this.currentId !== EMPTY2) {
2400 + clearTimeout(this.currentId);
2401 + this.currentId = EMPTY2;
2402 + }
2403 + };
2404 + disposeEffect = () => {
2405 + return this.clear;
2406 + };
2407 + };
2408 + function useTimeout() {
2409 + const timeout = useRefWithInit(Timeout.create).current;
2410 + useOnMount(timeout.disposeEffect);
2411 + return timeout;
2412 + }
2413 +
2414 + // node_modules/@base-ui/react/floating-ui-react/components/FloatingDelayGroup.mjs
2415 + var React18 = __toESM(require_react(), 1);
2416 +
2417 + // node_modules/@base-ui/react/floating-ui-react/utils/event.mjs
2418 + function isReactEvent(event) {
2419 + return "nativeEvent" in event;
2420 + }
2421 + function isVirtualClick(event) {
2422 + if (event.pointerType === "" && event.isTrusted) {
2423 + return true;
2424 + }
2425 + if (parts_exports.os.android && event.pointerType) {
2426 + return event.type === "click" && event.buttons === 1;
2427 + }
2428 + return event.detail === 0 && !event.pointerType;
2429 + }
2430 + function isMouseLikePointerType(pointerType, strict) {
2431 + const values = ["mouse", "pen"];
2432 + if (!strict) {
2433 + values.push("", void 0);
2434 + }
2435 + return values.includes(pointerType);
2436 + }
2437 + function isClickLikeEvent(event) {
2438 + const type = event.type;
2439 + return type === "click" || type === "mousedown" || type === "keydown" || type === "keyup";
2440 + }
2441 +
2442 + // node_modules/@base-ui/utils/shadowDom.mjs
2443 + function activeElement(doc) {
2444 + let element = doc.activeElement;
2445 + while (element?.shadowRoot?.activeElement != null) {
2446 + element = element.shadowRoot.activeElement;
2447 + }
2448 + return element;
2449 + }
2450 + function contains(parent, child) {
2451 + if (!parent || !child) {
2452 + return false;
2453 + }
2454 + const rootNode = child.getRootNode?.();
2455 + if (parent.contains(child)) {
2456 + return true;
2457 + }
2458 + if (rootNode && isShadowRoot(rootNode)) {
2459 + let next = child;
2460 + while (next) {
2461 + if (parent === next) {
2462 + return true;
2463 + }
2464 + next = next.parentNode || next.host;
2465 + }
2466 + }
2467 + return false;
2468 + }
2469 + function getTarget(event) {
2470 + if ("composedPath" in event) {
2471 + return event.composedPath()[0] ?? event.target;
2472 + }
2473 + return event.target;
2474 + }
2475 +
2476 + // node_modules/@base-ui/react/floating-ui-react/utils/constants.mjs
2477 + var FOCUSABLE_ATTRIBUTE = "data-base-ui-focusable";
2478 + var TYPEABLE_SELECTOR = "input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";
2479 +
2480 + // node_modules/@base-ui/react/utils/CommonPopupDataAttributes.mjs
2481 + var open2 = "data-open";
2482 + var closed2 = "data-closed";
2483 + var anchorHidden = "data-anchor-hidden";
2484 +
2485 + // node_modules/@base-ui/react/utils/CommonTriggerDataAttributes.mjs
2486 + var CommonTriggerDataAttributes_exports = {};
2487 + __export(CommonTriggerDataAttributes_exports, {
2488 + popupOpen: () => popupOpen,
2489 + pressed: () => pressed
2490 + });
2491 + var popupOpen = "data-popup-open";
2492 + var pressed = "data-pressed";
2493 +
2494 + // node_modules/@base-ui/react/utils/popupStateMapping.mjs
2495 + var TRIGGER_HOOK = {
2496 + [popupOpen]: ""
2497 + };
2498 + var PRESSABLE_TRIGGER_HOOK = {
2499 + [popupOpen]: "",
2500 + [pressed]: ""
2501 + };
2502 + var POPUP_OPEN_HOOK = {
2503 + [open2]: ""
2504 + };
2505 + var POPUP_CLOSED_HOOK = {
2506 + [closed2]: ""
2507 + };
2508 + var ANCHOR_HIDDEN_HOOK = {
2509 + [anchorHidden]: ""
2510 + };
2511 + var triggerOpenStateMapping2 = {
2512 + open(value) {
2513 + if (value) {
2514 + return TRIGGER_HOOK;
2515 + }
2516 + return null;
2517 + }
2518 + };
2519 + var popupStateMapping = {
2520 + open(value) {
2521 + if (value) {
2522 + return POPUP_OPEN_HOOK;
2523 + }
2524 + return POPUP_CLOSED_HOOK;
2525 + },
2526 + anchorHidden(value) {
2527 + if (value) {
2528 + return ANCHOR_HIDDEN_HOOK;
2529 + }
2530 + return null;
2531 + }
2532 + };
2533 + var popupTransitionStateMapping = {
2534 + ...popupStateMapping,
2535 + ...transitionStatusMapping
2536 + };
2537 +
2538 + // node_modules/@base-ui/react/tooltip/trigger/TooltipTriggerDataAttributes.mjs
2539 + var popupOpen2 = CommonTriggerDataAttributes_exports.popupOpen;
2540 + var triggerDisabled = "data-trigger-disabled";
2541 +
2542 + // node_modules/@base-ui/react/floating-ui-react/utils/element.mjs
2543 + function isTargetInsideEnabledTrigger(target, triggerElements) {
2544 + if (!isElement(target)) {
2545 + return false;
2546 + }
2547 + const targetElement = target;
2548 + if (triggerElements.hasElement(targetElement)) {
2549 + return !targetElement.hasAttribute(triggerDisabled);
2550 + }
2551 + for (const [, trigger] of triggerElements.entries()) {
2552 + if (contains(trigger, targetElement)) {
2553 + return !trigger.hasAttribute(triggerDisabled);
2554 + }
2555 + }
2556 + return false;
2557 + }
2558 + function isEventTargetWithin(event, node) {
2559 + if (node == null) {
2560 + return false;
2561 + }
2562 + if ("composedPath" in event) {
2563 + return event.composedPath().includes(node);
2564 + }
2565 + const eventAgain = event;
2566 + return eventAgain.target != null && node.contains(eventAgain.target);
2567 + }
2568 + function isRootElement(element) {
2569 + return element.matches("html,body");
2570 + }
2571 + function isTypeableElement(element) {
2572 + return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);
2573 + }
2574 + function isInteractiveElement(element) {
2575 + return element?.closest(`button,a[href],[role="button"],select,[tabindex]:not([tabindex="-1"]),${TYPEABLE_SELECTOR}`) != null;
2576 + }
2577 + function matchesFocusVisible(element) {
2578 + if (!element || parts_exports.env.jsdom) {
2579 + return true;
2580 + }
2581 + try {
2582 + return element.matches(":focus-visible");
2583 + } catch (_e) {
2584 + return true;
2585 + }
2586 + }
2587 +
2588 + // node_modules/@base-ui/react/floating-ui-react/hooks/useHoverShared.mjs
2589 + function resolveValue(value, pointerType) {
2590 + if (pointerType != null && !isMouseLikePointerType(pointerType)) {
2591 + return 0;
2592 + }
2593 + if (typeof value === "function") {
2594 + return value();
2595 + }
2596 + return value;
2597 + }
2598 + function getDelay(value, prop, pointerType) {
2599 + const result = resolveValue(value, pointerType);
2600 + if (typeof result === "number") {
2601 + return result;
2602 + }
2603 + return result?.[prop];
2604 + }
2605 + function getRestMs(value) {
2606 + if (typeof value === "function") {
2607 + return value();
2608 + }
2609 + return value;
2610 + }
2611 + function isClickLikeOpenEvent(openEventType, interactedInside) {
2612 + return interactedInside || openEventType === "click" || openEventType === "mousedown";
2613 + }
2614 + function isHoverOpenEvent(openEventType) {
2615 + return openEventType?.includes("mouse") && openEventType !== "mousedown";
2616 + }
2617 +
2618 + // node_modules/@base-ui/react/floating-ui-react/components/FloatingDelayGroup.mjs
744 2619 var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
745 - var close_small_default = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.Path, { d: "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z" }) });
2620 + var FloatingDelayGroupContext = /* @__PURE__ */ React18.createContext({
2621 + hasProvider: false,
2622 + timeoutMs: 0,
2623 + delayRef: {
2624 + current: 0
2625 + },
2626 + initialDelayRef: {
2627 + current: 0
2628 + },
2629 + timeout: new Timeout(),
2630 + currentIdRef: {
2631 + current: null
2632 + },
2633 + currentContextRef: {
2634 + current: null
2635 + }
2636 + });
2637 + if (true) FloatingDelayGroupContext.displayName = "FloatingDelayGroupContext";
2638 + function resetDelayRef(delayRef, initialDelayRef) {
2639 + delayRef.current = initialDelayRef.current;
2640 + }
2641 + function FloatingDelayGroup(props) {
2642 + const {
2643 + children,
2644 + delay,
2645 + timeoutMs = 0
2646 + } = props;
2647 + const delayRef = React18.useRef(delay);
2648 + const initialDelayRef = React18.useRef(delay);
2649 + const currentIdRef = React18.useRef(null);
2650 + const currentContextRef = React18.useRef(null);
2651 + const timeout = useTimeout();
2652 + useIsoLayoutEffect(() => {
2653 + initialDelayRef.current = delay;
2654 + if (!currentIdRef.current) {
2655 + delayRef.current = delay;
2656 + return;
2657 + }
2658 + delayRef.current = {
2659 + open: getDelay(delayRef.current, "open"),
2660 + close: getDelay(delay, "close")
2661 + };
2662 + }, [delay, currentIdRef, delayRef, initialDelayRef]);
2663 + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FloatingDelayGroupContext.Provider, {
2664 + value: React18.useMemo(() => ({
2665 + hasProvider: true,
2666 + delayRef,
2667 + initialDelayRef,
2668 + currentIdRef,
2669 + timeoutMs,
2670 + currentContextRef,
2671 + timeout
2672 + }), [timeoutMs, timeout]),
2673 + children
2674 + });
2675 + }
2676 + function useDelayGroup(context, options = {
2677 + open: false
2678 + }) {
2679 + const {
2680 + open: open3
2681 + } = options;
2682 + const store2 = "rootStore" in context ? context.rootStore : context;
2683 + const floatingId = store2.useState("floatingId");
2684 + const groupContext = React18.useContext(FloatingDelayGroupContext);
2685 + const {
2686 + currentIdRef,
2687 + delayRef,
2688 + timeoutMs,
2689 + initialDelayRef,
2690 + currentContextRef,
2691 + hasProvider,
2692 + timeout
2693 + } = groupContext;
2694 + const [isInstantPhase, setIsInstantPhase] = React18.useState(false);
2695 + const openRef = React18.useRef(open3);
2696 + useIsoLayoutEffect(() => {
2697 + openRef.current = open3;
2698 + }, [open3]);
2699 + useIsoLayoutEffect(() => {
2700 + function unset() {
2701 + currentContextRef.current?.setIsInstantPhase(false);
2702 + currentIdRef.current = null;
2703 + currentContextRef.current = null;
2704 + delayRef.current = initialDelayRef.current;
2705 + timeout.clear();
2706 + }
2707 + if (!currentIdRef.current) {
2708 + return void 0;
2709 + }
2710 + if (!open3 && currentIdRef.current === floatingId) {
2711 + setIsInstantPhase(false);
2712 + if (timeoutMs) {
2713 + const closingId = floatingId;
2714 + timeout.start(timeoutMs, () => {
2715 + if (store2.select("open") || currentIdRef.current && currentIdRef.current !== closingId) {
2716 + return;
2717 + }
2718 + unset();
2719 + });
2720 + return () => {
2721 + if (openRef.current || currentIdRef.current !== closingId) {
2722 + timeout.clear();
2723 + }
2724 + };
2725 + }
2726 + unset();
2727 + }
2728 + return void 0;
2729 + }, [open3, floatingId, currentIdRef, delayRef, timeoutMs, initialDelayRef, currentContextRef, timeout, store2]);
2730 + useIsoLayoutEffect(() => {
2731 + if (!open3) {
2732 + return;
2733 + }
2734 + const prevContext = currentContextRef.current;
2735 + const prevId = currentIdRef.current;
2736 + timeout.clear();
2737 + currentContextRef.current = {
2738 + onOpenChange: store2.setOpen,
2739 + setIsInstantPhase
2740 + };
2741 + currentIdRef.current = floatingId;
2742 + delayRef.current = {
2743 + open: 0,
2744 + close: getDelay(initialDelayRef.current, "close")
2745 + };
2746 + if (prevId !== null && prevId !== floatingId) {
2747 + setIsInstantPhase(true);
2748 + prevContext?.setIsInstantPhase(true);
2749 + prevContext?.onOpenChange(false, createChangeEventDetails(reason_parts_exports.none));
2750 + } else {
2751 + setIsInstantPhase(false);
2752 + prevContext?.setIsInstantPhase(false);
2753 + }
2754 + }, [open3, floatingId, store2, currentIdRef, delayRef, initialDelayRef, currentContextRef, timeout]);
2755 + useIsoLayoutEffect(() => {
2756 + return () => {
2757 + if (currentIdRef.current === floatingId) {
2758 + currentContextRef.current = null;
2759 + if (!openRef.current) {
2760 + return;
2761 + }
2762 + currentIdRef.current = null;
2763 + resetDelayRef(delayRef, initialDelayRef);
2764 + timeout.clear();
2765 + }
2766 + };
2767 + }, [currentContextRef, currentIdRef, delayRef, floatingId, initialDelayRef, timeout]);
2768 + return React18.useMemo(() => ({
2769 + activeIdRef: currentIdRef,
2770 + hasProvider,
2771 + delayRef,
2772 + isInstantPhase
2773 + }), [currentIdRef, hasProvider, delayRef, isInstantPhase]);
2774 + }
746 2775
747 - // packages/icons/build-module/library/external.mjs
748 - var import_primitives2 = __toESM(require_primitives(), 1);
2776 + // node_modules/@base-ui/utils/mergeCleanups.mjs
2777 + function mergeCleanups(...cleanups) {
2778 + return () => {
2779 + for (let i = 0; i < cleanups.length; i += 1) {
2780 + const cleanup = cleanups[i];
2781 + if (cleanup) {
2782 + cleanup();
2783 + }
2784 + }
2785 + };
2786 + }
2787 +
2788 + // node_modules/@base-ui/react/utils/FocusGuard.mjs
2789 + var React19 = __toESM(require_react(), 1);
2790 +
2791 + // node_modules/@base-ui/utils/visuallyHidden.mjs
2792 + var visuallyHiddenBase = {
2793 + clipPath: "inset(50%)",
2794 + overflow: "hidden",
2795 + whiteSpace: "nowrap",
2796 + border: 0,
2797 + padding: 0,
2798 + width: 1,
2799 + height: 1,
2800 + margin: -1
2801 + };
2802 + var visuallyHidden = {
2803 + ...visuallyHiddenBase,
2804 + position: "fixed",
2805 + top: 0,
2806 + left: 0
2807 + };
2808 + var visuallyHiddenInput = {
2809 + ...visuallyHiddenBase,
2810 + position: "absolute"
2811 + };
2812 +
2813 + // node_modules/@base-ui/react/utils/FocusGuard.mjs
749 2814 var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
750 - var external_default = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives2.Path, { d: "M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z" }) });
2815 + var FocusGuard = /* @__PURE__ */ React19.forwardRef(function FocusGuard2(props, ref) {
2816 + const [role, setRole] = React19.useState();
2817 + useIsoLayoutEffect(() => {
2818 + if (parts_exports.screenReader.voiceOver && parts_exports.engine.webkit) {
2819 + setRole("button");
2820 + }
2821 + }, []);
2822 + const restProps = {
2823 + tabIndex: 0,
2824 + // Role is only for VoiceOver
2825 + role
2826 + };
2827 + return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", {
2828 + ...props,
2829 + ref,
2830 + style: visuallyHidden,
2831 + "aria-hidden": role ? void 0 : true,
2832 + ...restProps,
2833 + "data-base-ui-focus-guard": ""
2834 + });
2835 + });
2836 + if (true) FocusGuard.displayName = "FocusGuard";
751 2837
752 - // packages/icons/build-module/library/more-vertical.mjs
753 - var import_primitives3 = __toESM(require_primitives(), 1);
2838 + // node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs
2839 + var min = Math.min;
2840 + var max = Math.max;
2841 + var round = Math.round;
2842 + var floor = Math.floor;
2843 + var createCoords = (v) => ({
2844 + x: v,
2845 + y: v
2846 + });
2847 + var oppositeSideMap = {
2848 + left: "right",
2849 + right: "left",
2850 + bottom: "top",
2851 + top: "bottom"
2852 + };
2853 + function clamp(start, value, end) {
2854 + return max(start, min(value, end));
2855 + }
2856 + function evaluate(value, param) {
2857 + return typeof value === "function" ? value(param) : value;
2858 + }
2859 + function getSide(placement) {
2860 + return placement.split("-")[0];
2861 + }
2862 + function getAlignment(placement) {
2863 + return placement.split("-")[1];
2864 + }
2865 + function getOppositeAxis(axis) {
2866 + return axis === "x" ? "y" : "x";
2867 + }
2868 + function getAxisLength(axis) {
2869 + return axis === "y" ? "height" : "width";
2870 + }
2871 + function getSideAxis(placement) {
2872 + const firstChar = placement[0];
2873 + return firstChar === "t" || firstChar === "b" ? "y" : "x";
2874 + }
2875 + function getAlignmentAxis(placement) {
2876 + return getOppositeAxis(getSideAxis(placement));
2877 + }
2878 + function getAlignmentSides(placement, rects, rtl) {
2879 + if (rtl === void 0) {
2880 + rtl = false;
2881 + }
2882 + const alignment = getAlignment(placement);
2883 + const alignmentAxis = getAlignmentAxis(placement);
2884 + const length = getAxisLength(alignmentAxis);
2885 + let mainAlignmentSide = alignmentAxis === "x" ? alignment === (rtl ? "end" : "start") ? "right" : "left" : alignment === "start" ? "bottom" : "top";
2886 + if (rects.reference[length] > rects.floating[length]) {
2887 + mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
2888 + }
2889 + return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];
2890 + }
2891 + function getExpandedPlacements(placement) {
2892 + const oppositePlacement = getOppositePlacement(placement);
2893 + return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
2894 + }
2895 + function getOppositeAlignmentPlacement(placement) {
2896 + return placement.includes("start") ? placement.replace("start", "end") : placement.replace("end", "start");
2897 + }
2898 + var lrPlacement = ["left", "right"];
2899 + var rlPlacement = ["right", "left"];
2900 + var tbPlacement = ["top", "bottom"];
2901 + var btPlacement = ["bottom", "top"];
2902 + function getSideList(side, isStart, rtl) {
2903 + switch (side) {
2904 + case "top":
2905 + case "bottom":
2906 + if (rtl) return isStart ? rlPlacement : lrPlacement;
2907 + return isStart ? lrPlacement : rlPlacement;
2908 + case "left":
2909 + case "right":
2910 + return isStart ? tbPlacement : btPlacement;
2911 + default:
2912 + return [];
2913 + }
2914 + }
2915 + function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
2916 + const alignment = getAlignment(placement);
2917 + let list = getSideList(getSide(placement), direction === "start", rtl);
2918 + if (alignment) {
2919 + list = list.map((side) => side + "-" + alignment);
2920 + if (flipAlignment) {
2921 + list = list.concat(list.map(getOppositeAlignmentPlacement));
2922 + }
2923 + }
2924 + return list;
2925 + }
2926 + function getOppositePlacement(placement) {
2927 + const side = getSide(placement);
2928 + return oppositeSideMap[side] + placement.slice(side.length);
2929 + }
2930 + function expandPaddingObject(padding) {
2931 + var _padding$top, _padding$right, _padding$bottom, _padding$left;
2932 + return {
2933 + top: (_padding$top = padding.top) != null ? _padding$top : 0,
2934 + right: (_padding$right = padding.right) != null ? _padding$right : 0,
2935 + bottom: (_padding$bottom = padding.bottom) != null ? _padding$bottom : 0,
2936 + left: (_padding$left = padding.left) != null ? _padding$left : 0
2937 + };
2938 + }
2939 + function getPaddingObject(padding) {
2940 + return typeof padding !== "number" ? expandPaddingObject(padding) : {
2941 + top: padding,
2942 + right: padding,
2943 + bottom: padding,
2944 + left: padding
2945 + };
2946 + }
2947 + function rectToClientRect(rect) {
2948 + const {
2949 + x,
2950 + y,
2951 + width,
2952 + height
2953 + } = rect;
2954 + return {
2955 + width,
2956 + height,
2957 + top: y,
2958 + left: x,
2959 + right: x + width,
2960 + bottom: y + height,
2961 + x,
2962 + y
2963 + };
2964 + }
2965 +
2966 + // node_modules/@base-ui/react/floating-ui-react/utils/composite.mjs
2967 + function isHiddenByStyles(styles) {
2968 + return styles.visibility === "hidden" || styles.visibility === "collapse";
2969 + }
2970 + function isElementVisible(element, styles = element ? getComputedStyle2(element) : null) {
2971 + if (!element || !element.isConnected || !styles || isHiddenByStyles(styles)) {
2972 + return false;
2973 + }
2974 + if (typeof element.checkVisibility === "function") {
2975 + return element.checkVisibility();
2976 + }
2977 + return styles.display !== "none" && styles.display !== "contents";
2978 + }
2979 +
2980 + // node_modules/@base-ui/react/floating-ui-react/utils/tabbable.mjs
2981 + var CANDIDATE_SELECTOR = 'a[href],button,input,select,textarea,summary,details,iframe,object,embed,[tabindex],[contenteditable]:not([contenteditable="false"]),audio[controls],video[controls]';
2982 + function getParentElement(element) {
2983 + const assignedSlot = element.assignedSlot;
2984 + if (assignedSlot) {
2985 + return assignedSlot;
2986 + }
2987 + if (element.parentElement) {
2988 + return element.parentElement;
2989 + }
2990 + const rootNode = element.getRootNode();
2991 + return isShadowRoot(rootNode) ? rootNode.host : null;
2992 + }
2993 + function getDetailsSummary(details) {
2994 + for (const child of Array.from(details.children)) {
2995 + if (getNodeName(child) === "summary") {
2996 + return child;
2997 + }
2998 + }
2999 + return null;
3000 + }
3001 + function isWithinOpenDetailsSummary(element, details) {
3002 + const summary = getDetailsSummary(details);
3003 + return !!summary && (element === summary || contains(summary, element));
3004 + }
3005 + function isFocusableCandidate(element) {
3006 + const nodeName = element ? getNodeName(element) : "";
3007 + return element != null && element.matches(CANDIDATE_SELECTOR) && (nodeName !== "summary" || element.parentElement != null && getNodeName(element.parentElement) === "details" && getDetailsSummary(element.parentElement) === element) && (nodeName !== "details" || getDetailsSummary(element) == null) && (nodeName !== "input" || element.type !== "hidden");
3008 + }
3009 + function isFocusableElement(element) {
3010 + if (!isFocusableCandidate(element) || !element.isConnected || element.matches(":disabled")) {
3011 + return false;
3012 + }
3013 + for (let current = element; current; current = getParentElement(current)) {
3014 + const isAncestor = current !== element;
3015 + const isSlot = getNodeName(current) === "slot";
3016 + if (current.hasAttribute("inert")) {
3017 + return false;
3018 + }
3019 + if (isAncestor && getNodeName(current) === "details" && !current.open && !isWithinOpenDetailsSummary(element, current) || current.hasAttribute("hidden") || !isSlot && !isVisibleInTabbableTree(current, isAncestor)) {
3020 + return false;
3021 + }
3022 + }
3023 + return true;
3024 + }
3025 + function isVisibleInTabbableTree(element, isAncestor) {
3026 + const styles = getComputedStyle2(element);
3027 + if (!isAncestor) {
3028 + return isElementVisible(element, styles);
3029 + }
3030 + return styles.display !== "none";
3031 + }
3032 + function getTabIndex(element) {
3033 + const tabIndex = element.tabIndex;
3034 + if (tabIndex < 0) {
3035 + const nodeName = getNodeName(element);
3036 + if (nodeName === "details" || nodeName === "audio" || nodeName === "video" || isHTMLElement(element) && element.isContentEditable) {
3037 + return 0;
3038 + }
3039 + }
3040 + return tabIndex;
3041 + }
3042 + function getNamedRadioInput(element) {
3043 + if (getNodeName(element) !== "input") {
3044 + return null;
3045 + }
3046 + const input = element;
3047 + return input.type === "radio" && input.name !== "" ? input : null;
3048 + }
3049 + function isTabbableRadio(element, candidates) {
3050 + const input = getNamedRadioInput(element);
3051 + if (!input) {
3052 + return true;
3053 + }
3054 + const checkedRadio = candidates.find((candidate) => {
3055 + const radio = getNamedRadioInput(candidate);
3056 + return radio?.name === input.name && radio.form === input.form && radio.checked;
3057 + });
3058 + if (checkedRadio) {
3059 + return checkedRadio === input;
3060 + }
3061 + return candidates.find((candidate) => {
3062 + const radio = getNamedRadioInput(candidate);
3063 + return radio?.name === input.name && radio.form === input.form;
3064 + }) === input;
3065 + }
3066 + function getComposedChildren(container) {
3067 + if (isHTMLElement(container) && getNodeName(container) === "slot") {
3068 + const assignedElements = container.assignedElements({
3069 + flatten: true
3070 + });
3071 + if (assignedElements.length > 0) {
3072 + return assignedElements;
3073 + }
3074 + }
3075 + if (isHTMLElement(container) && container.shadowRoot) {
3076 + return Array.from(container.shadowRoot.children);
3077 + }
3078 + return Array.from(container.children);
3079 + }
3080 + function appendCandidates(container, list) {
3081 + getComposedChildren(container).forEach((child) => {
3082 + if (isFocusableCandidate(child)) {
3083 + list.push(child);
3084 + }
3085 + appendCandidates(child, list);
3086 + });
3087 + }
3088 + function appendMatchingElements(container, selector, list) {
3089 + getComposedChildren(container).forEach((child) => {
3090 + if (isHTMLElement(child) && child.matches(selector)) {
3091 + list.push(child);
3092 + }
3093 + appendMatchingElements(child, selector, list);
3094 + });
3095 + }
3096 + function focusable(container) {
3097 + const candidates = [];
3098 + appendCandidates(container, candidates);
3099 + return candidates.filter(isFocusableElement);
3100 + }
3101 + function tabbable(container) {
3102 + const candidates = focusable(container);
3103 + return candidates.filter((element) => getTabIndex(element) >= 0 && isTabbableRadio(element, candidates));
3104 + }
3105 + function getTabbableIn(container, dir) {
3106 + const list = tabbable(container);
3107 + const len = list.length;
3108 + if (len === 0) {
3109 + return void 0;
3110 + }
3111 + const active = activeElement(ownerDocument(container));
3112 + const index2 = list.indexOf(active);
3113 + const nextIndex = index2 === -1 ? dir === 1 ? 0 : len - 1 : index2 + dir;
3114 + return list[nextIndex];
3115 + }
3116 + function getNextTabbable(referenceElement) {
3117 + return getTabbableIn(ownerDocument(referenceElement).body, 1) || referenceElement;
3118 + }
3119 + function getPreviousTabbable(referenceElement) {
3120 + return getTabbableIn(ownerDocument(referenceElement).body, -1) || referenceElement;
3121 + }
3122 + function isOutsideEvent(event, container) {
3123 + const containerElement = container || event.currentTarget;
3124 + const relatedTarget = event.relatedTarget;
3125 + return !relatedTarget || !contains(containerElement, relatedTarget);
3126 + }
3127 + function disableFocusInside(container) {
3128 + const tabbableElements = tabbable(container);
3129 + tabbableElements.forEach((element) => {
3130 + element.dataset.tabindex = element.getAttribute("tabindex") || "";
3131 + element.setAttribute("tabindex", "-1");
3132 + });
3133 + }
3134 + function enableFocusInside(container) {
3135 + const elements = [];
3136 + appendMatchingElements(container, "[data-tabindex]", elements);
3137 + elements.forEach((element) => {
3138 + const tabindex = element.dataset.tabindex;
3139 + delete element.dataset.tabindex;
3140 + if (tabindex) {
3141 + element.setAttribute("tabindex", tabindex);
3142 + } else {
3143 + element.removeAttribute("tabindex");
3144 + }
3145 + });
3146 + }
3147 +
3148 + // node_modules/@base-ui/react/floating-ui-react/utils/nodes.mjs
3149 + function getNodeChildren(nodes, id, onlyOpenChildren = true) {
3150 + const directChildren = nodes.filter((node) => node.parentId === id);
3151 + return directChildren.flatMap((child) => [...!onlyOpenChildren || child.context?.open ? [child] : [], ...getNodeChildren(nodes, child.id, onlyOpenChildren)]);
3152 + }
3153 +
3154 + // node_modules/@base-ui/react/floating-ui-react/utils/createAttribute.mjs
3155 + function createAttribute(name) {
3156 + return `data-base-ui-${name}`;
3157 + }
3158 +
3159 + // node_modules/@base-ui/react/floating-ui-react/components/FloatingPortal.mjs
3160 + var React20 = __toESM(require_react(), 1);
3161 + var ReactDOM2 = __toESM(require_react_dom(), 1);
3162 +
3163 + // node_modules/@base-ui/react/internals/constants.mjs
3164 + var DISABLED_TRANSITIONS_STYLE = {
3165 + style: {
3166 + transition: "none"
3167 + }
3168 + };
3169 + var BASE_UI_SWIPE_IGNORE_ATTRIBUTE = "data-base-ui-swipe-ignore";
3170 + var LEGACY_SWIPE_IGNORE_ATTRIBUTE = "data-swipe-ignore";
3171 + var BASE_UI_SWIPE_IGNORE_SELECTOR = `[${BASE_UI_SWIPE_IGNORE_ATTRIBUTE}]`;
3172 + var LEGACY_SWIPE_IGNORE_SELECTOR = `[${LEGACY_SWIPE_IGNORE_ATTRIBUTE}]`;
3173 + var POPUP_COLLISION_AVOIDANCE = {
3174 + fallbackAxisSide: "end"
3175 + };
3176 + var ownerVisuallyHidden = {
3177 + clipPath: "inset(50%)",
3178 + position: "fixed",
3179 + top: 0,
3180 + left: 0
3181 + };
3182 +
3183 + // node_modules/@base-ui/react/floating-ui-react/components/FloatingPortal.mjs
754 3184 var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
755 - var more_vertical_default = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives3.Path, { d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z" }) });
3185 + var PortalContext = /* @__PURE__ */ React20.createContext(null);
3186 + if (true) PortalContext.displayName = "PortalContext";
3187 + var usePortalContext = () => React20.useContext(PortalContext);
3188 + var attr = createAttribute("portal");
3189 + function useFloatingPortalNode(props = {}) {
3190 + const {
3191 + ref,
3192 + container: containerProp,
3193 + componentProps = EMPTY_OBJECT,
3194 + elementProps
3195 + } = props;
3196 + const uniqueId = useId();
3197 + const portalContext = usePortalContext();
3198 + const parentPortalNode = portalContext?.portalNode;
3199 + const [containerElement, setContainerElement] = React20.useState(null);
3200 + const [portalNode, setPortalNode] = React20.useState(null);
3201 + const setPortalNodeRef = useStableCallback((node) => {
3202 + if (node !== null) {
3203 + setPortalNode(node);
3204 + }
3205 + });
3206 + const containerRef = React20.useRef(null);
3207 + useIsoLayoutEffect(() => {
3208 + if (containerProp === null) {
3209 + if (containerRef.current) {
3210 + containerRef.current = null;
3211 + setPortalNode(null);
3212 + setContainerElement(null);
3213 + }
3214 + return;
3215 + }
3216 + const resolvedContainer = (containerProp && (isNode(containerProp) ? containerProp : containerProp.current)) ?? parentPortalNode ?? document.body;
3217 + if (resolvedContainer == null) {
3218 + if (containerRef.current) {
3219 + containerRef.current = null;
3220 + setPortalNode(null);
3221 + setContainerElement(null);
3222 + }
3223 + return;
3224 + }
3225 + if (containerRef.current !== resolvedContainer) {
3226 + containerRef.current = resolvedContainer;
3227 + setPortalNode(null);
3228 + setContainerElement(resolvedContainer);
3229 + }
3230 + }, [containerProp, parentPortalNode]);
3231 + const portalElement = useRenderElement("div", componentProps, {
3232 + ref: [ref, setPortalNodeRef],
3233 + props: [{
3234 + id: uniqueId,
3235 + [attr]: ""
3236 + }, elementProps]
3237 + });
3238 + const portalSubtree = containerElement && portalElement ? /* @__PURE__ */ ReactDOM2.createPortal(portalElement, containerElement) : null;
3239 + return {
3240 + node: portalNode,
3241 + // `id` and `render` props can override or remove the generated ID. Use the exact
3242 + // rendered value so `aria-owns` never points at an ID absent from the DOM.
3243 + nodeId: /* @__PURE__ */ React20.isValidElement(portalElement) ? portalElement.props.id : void 0,
3244 + subtree: portalSubtree
3245 + };
3246 + }
3247 + var FloatingPortal = /* @__PURE__ */ React20.forwardRef(function FloatingPortal2(componentProps, forwardedRef) {
3248 + const {
3249 + render,
3250 + className,
3251 + style,
3252 + children,
3253 + container,
3254 + portalOwnerRole,
3255 + ...elementProps
3256 + } = componentProps;
3257 + const {
3258 + node: portalNode,
3259 + nodeId: portalNodeId,
3260 + subtree: portalSubtree
3261 + } = useFloatingPortalNode({
3262 + container,
3263 + ref: forwardedRef,
3264 + componentProps,
3265 + elementProps
3266 + });
3267 + const beforeOutsideRef = React20.useRef(null);
3268 + const afterOutsideRef = React20.useRef(null);
3269 + const beforeInsideRef = React20.useRef(null);
3270 + const afterInsideRef = React20.useRef(null);
3271 + const [focusManagerState, setFocusManagerState] = React20.useState(null);
3272 + const focusInsideDisabledRef = React20.useRef(false);
3273 + const modal = focusManagerState?.modal;
3274 + const open3 = focusManagerState?.open;
3275 + const shouldRenderGuards = !!focusManagerState && !focusManagerState.modal && focusManagerState.open && !!portalNode;
3276 + React20.useEffect(() => {
3277 + if (!portalNode || modal) {
3278 + return void 0;
3279 + }
3280 + function onFocus(event) {
3281 + if (portalNode && event.relatedTarget && isOutsideEvent(event)) {
3282 + if (event.type === "focusin") {
3283 + if (focusInsideDisabledRef.current) {
3284 + enableFocusInside(portalNode);
3285 + focusInsideDisabledRef.current = false;
3286 + }
3287 + } else {
3288 + disableFocusInside(portalNode);
3289 + focusInsideDisabledRef.current = true;
3290 + }
3291 + }
3292 + }
3293 + return mergeCleanups(addEventListener(portalNode, "focusin", onFocus, true), addEventListener(portalNode, "focusout", onFocus, true));
3294 + }, [portalNode, modal]);
3295 + useIsoLayoutEffect(() => {
3296 + if (!portalNode || open3 !== true || !focusInsideDisabledRef.current) {
3297 + return;
3298 + }
3299 + enableFocusInside(portalNode);
3300 + focusInsideDisabledRef.current = false;
3301 + }, [open3, portalNode]);
3302 + const portalContextValue = React20.useMemo(() => ({
3303 + beforeOutsideRef,
3304 + afterOutsideRef,
3305 + beforeInsideRef,
3306 + afterInsideRef,
3307 + portalNode,
3308 + setFocusManagerState
3309 + }), [portalNode]);
3310 + return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(React20.Fragment, {
3311 + children: [portalSubtree, /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(PortalContext.Provider, {
3312 + value: portalContextValue,
3313 + children: [shouldRenderGuards && portalNode && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(FocusGuard, {
3314 + "data-type": "outside",
3315 + ref: beforeOutsideRef,
3316 + onFocus: (event) => {
3317 + if (isOutsideEvent(event, portalNode)) {
3318 + beforeInsideRef.current?.focus();
3319 + } else {
3320 + const domReference = focusManagerState ? focusManagerState.domReference : null;
3321 + const prevTabbable = getPreviousTabbable(domReference);
3322 + prevTabbable?.focus();
3323 + }
3324 + }
3325 + }), shouldRenderGuards && portalNode && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", {
3326 + role: portalOwnerRole,
3327 + "aria-owns": portalNodeId,
3328 + style: ownerVisuallyHidden
3329 + }), portalNode && /* @__PURE__ */ ReactDOM2.createPortal(children, portalNode), shouldRenderGuards && portalNode && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(FocusGuard, {
3330 + "data-type": "outside",
3331 + ref: afterOutsideRef,
3332 + onFocus: (event) => {
3333 + if (isOutsideEvent(event, portalNode)) {
3334 + afterInsideRef.current?.focus();
3335 + } else {
3336 + const domReference = focusManagerState ? focusManagerState.domReference : null;
3337 + const nextTabbable = getNextTabbable(domReference);
3338 + nextTabbable?.focus();
3339 + if (focusManagerState?.closeOnFocusOut) {
3340 + focusManagerState?.onOpenChange(false, createChangeEventDetails(reason_parts_exports.focusOut, event.nativeEvent));
3341 + }
3342 + }
3343 + }
3344 + })]
3345 + })]
3346 + });
3347 + });
3348 + if (true) FloatingPortal.displayName = "FloatingPortal";
756 3349
757 - // packages/icons/build-module/library/plus.mjs
758 - var import_primitives4 = __toESM(require_primitives(), 1);
3350 + // node_modules/@base-ui/react/floating-ui-react/components/FloatingTree.mjs
3351 + var React21 = __toESM(require_react(), 1);
3352 +
3353 + // node_modules/@base-ui/react/floating-ui-react/utils/createEventEmitter.mjs
3354 + function createEventEmitter() {
3355 + const map = /* @__PURE__ */ new Map();
3356 + return {
3357 + emit(event, data) {
3358 + map.get(event)?.forEach((listener) => listener(data));
3359 + },
3360 + on(event, listener) {
3361 + if (!map.has(event)) {
3362 + map.set(event, /* @__PURE__ */ new Set());
3363 + }
3364 + map.get(event).add(listener);
3365 + },
3366 + off(event, listener) {
3367 + map.get(event)?.delete(listener);
3368 + }
3369 + };
3370 + }
3371 +
3372 + // node_modules/@base-ui/react/floating-ui-react/components/FloatingTree.mjs
759 3373 var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
760 - var plus_default = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives4.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives4.Path, { d: "M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z" }) });
3374 + var FloatingNodeContext = /* @__PURE__ */ React21.createContext(null);
3375 + if (true) FloatingNodeContext.displayName = "FloatingNodeContext";
3376 + var FloatingTreeContext = /* @__PURE__ */ React21.createContext(null);
3377 + if (true) FloatingTreeContext.displayName = "FloatingTreeContext";
3378 + var useFloatingParentNodeId = () => React21.useContext(FloatingNodeContext)?.id || null;
3379 + var useFloatingTree = (externalTree) => {
3380 + const contextTree = React21.useContext(FloatingTreeContext);
3381 + return externalTree ?? contextTree;
3382 + };
761 3383
762 - // packages/icons/build-module/library/redo.mjs
763 - var import_primitives5 = __toESM(require_primitives(), 1);
3384 + // node_modules/@base-ui/react/floating-ui-react/hooks/useClientPoint.mjs
3385 + var React22 = __toESM(require_react(), 1);
3386 + function createVirtualElement(domElement, data) {
3387 + let offsetX = null;
3388 + let offsetY = null;
3389 + let isAutoUpdateEvent = false;
3390 + return {
3391 + contextElement: domElement || void 0,
3392 + getBoundingClientRect() {
3393 + const domRect = domElement?.getBoundingClientRect() || {
3394 + width: 0,
3395 + height: 0,
3396 + x: 0,
3397 + y: 0
3398 + };
3399 + const isXAxis = data.axis === "x" || data.axis === "both";
3400 + const isYAxis = data.axis === "y" || data.axis === "both";
3401 + const canTrackCursorOnAutoUpdate = ["mouseenter", "mousemove"].includes(data.dataRef.current.openEvent?.type || "") && data.pointerType !== "touch";
3402 + let width = domRect.width;
3403 + let height = domRect.height;
3404 + let x = domRect.x;
3405 + let y = domRect.y;
3406 + if (offsetX == null && data.x && isXAxis) {
3407 + offsetX = domRect.x - data.x;
3408 + }
3409 + if (offsetY == null && data.y && isYAxis) {
3410 + offsetY = domRect.y - data.y;
3411 + }
3412 + x -= offsetX || 0;
3413 + y -= offsetY || 0;
3414 + width = 0;
3415 + height = 0;
3416 + if (!isAutoUpdateEvent || canTrackCursorOnAutoUpdate) {
3417 + width = data.axis === "y" ? domRect.width : 0;
3418 + height = data.axis === "x" ? domRect.height : 0;
3419 + x = isXAxis && data.x != null ? data.x : x;
3420 + y = isYAxis && data.y != null ? data.y : y;
3421 + } else if (isAutoUpdateEvent && !canTrackCursorOnAutoUpdate) {
3422 + height = data.axis === "x" ? domRect.height : height;
3423 + width = data.axis === "y" ? domRect.width : width;
3424 + }
3425 + isAutoUpdateEvent = true;
3426 + return {
3427 + width,
3428 + height,
3429 + x,
3430 + y,
3431 + top: y,
3432 + right: x + width,
3433 + bottom: y + height,
3434 + left: x
3435 + };
3436 + }
3437 + };
3438 + }
3439 + function isMouseBasedEvent(event) {
3440 + return event != null && event.clientX != null;
3441 + }
3442 + function useClientPoint(context, props = {}) {
3443 + const {
3444 + enabled = true,
3445 + axis = "both"
3446 + } = props;
3447 + const store2 = "rootStore" in context ? context.rootStore : context;
3448 + const open3 = store2.useState("open");
3449 + const floating = store2.useState("floatingElement");
3450 + const domReference = store2.useState("domReferenceElement");
3451 + const dataRef = store2.context.dataRef;
3452 + const initialRef = React22.useRef(false);
3453 + const cleanupListenerRef = React22.useRef(null);
3454 + const [pointerType, setPointerType] = React22.useState();
3455 + const [reactive, setReactive] = React22.useState([]);
3456 + const resetReference = useStableCallback((reference2) => {
3457 + store2.set("positionReference", reference2);
3458 + });
3459 + const setReference = useStableCallback((newX, newY, referenceElement) => {
3460 + if (initialRef.current) {
3461 + return;
3462 + }
3463 + if (dataRef.current.openEvent && !isMouseBasedEvent(dataRef.current.openEvent)) {
3464 + return;
3465 + }
3466 + store2.set("positionReference", createVirtualElement(referenceElement ?? domReference, {
3467 + x: newX,
3468 + y: newY,
3469 + axis,
3470 + dataRef,
3471 + pointerType
3472 + }));
3473 + });
3474 + const handleReferenceEnterOrMove = useStableCallback((event) => {
3475 + if (!open3) {
3476 + setReference(event.clientX, event.clientY, event.currentTarget);
3477 + } else if (!cleanupListenerRef.current) {
3478 + setReference(event.clientX, event.clientY, event.currentTarget);
3479 + setReactive([]);
3480 + }
3481 + });
3482 + const openCheck = isMouseLikePointerType(pointerType) ? floating : open3;
3483 + React22.useEffect(() => {
3484 + if (!enabled) {
3485 + resetReference(domReference);
3486 + return void 0;
3487 + }
3488 + if (!openCheck) {
3489 + return void 0;
3490 + }
3491 + function cleanupListener() {
3492 + cleanupListenerRef.current?.();
3493 + cleanupListenerRef.current = null;
3494 + }
3495 + const win = getWindow(floating);
3496 + function handleMouseMove(event) {
3497 + const target = getTarget(event);
3498 + if (!contains(floating, target)) {
3499 + setReference(event.clientX, event.clientY);
3500 + } else {
3501 + cleanupListener();
3502 + }
3503 + }
3504 + if (!dataRef.current.openEvent || isMouseBasedEvent(dataRef.current.openEvent)) {
3505 + cleanupListenerRef.current = addEventListener(win, "mousemove", handleMouseMove);
3506 + } else {
3507 + resetReference(domReference);
3508 + }
3509 + return cleanupListener;
3510 + }, [openCheck, enabled, floating, dataRef, domReference, store2, setReference, resetReference, reactive]);
3511 + React22.useEffect(() => () => {
3512 + store2.set("positionReference", null);
3513 + }, [store2]);
3514 + React22.useEffect(() => {
3515 + if (enabled && !floating) {
3516 + initialRef.current = false;
3517 + }
3518 + }, [enabled, floating]);
3519 + React22.useEffect(() => {
3520 + if (!enabled && open3) {
3521 + initialRef.current = true;
3522 + }
3523 + }, [enabled, open3]);
3524 + const reference = React22.useMemo(() => {
3525 + function setPointerTypeRef(event) {
3526 + setPointerType(event.pointerType);
3527 + }
3528 + return {
3529 + onPointerDown: setPointerTypeRef,
3530 + onPointerEnter: setPointerTypeRef,
3531 + onMouseMove: handleReferenceEnterOrMove,
3532 + onMouseEnter: handleReferenceEnterOrMove
3533 + };
3534 + }, [handleReferenceEnterOrMove]);
3535 + return React22.useMemo(() => enabled ? {
3536 + reference,
3537 + trigger: reference
3538 + } : {}, [enabled, reference]);
3539 + }
3540 +
3541 + // node_modules/@base-ui/react/floating-ui-react/hooks/useDismiss.mjs
3542 + var React23 = __toESM(require_react(), 1);
3543 + function alwaysFalse() {
3544 + return false;
3545 + }
3546 + function normalizeProp(normalizable) {
3547 + return {
3548 + escapeKey: typeof normalizable === "boolean" ? normalizable : normalizable?.escapeKey ?? false,
3549 + outsidePress: typeof normalizable === "boolean" ? normalizable : normalizable?.outsidePress ?? true
3550 + };
3551 + }
3552 + function useDismiss(context, props = {}) {
3553 + const {
3554 + enabled = true,
3555 + escapeKey: escapeKey2 = true,
3556 + outsidePress: outsidePressProp = true,
3557 + outsidePressEvent = "sloppy",
3558 + referencePress = alwaysFalse,
3559 + bubbles,
3560 + externalTree
3561 + } = props;
3562 + const store2 = "rootStore" in context ? context.rootStore : context;
3563 + const open3 = store2.useState("open");
3564 + const floatingElement = store2.useState("floatingElement");
3565 + const {
3566 + dataRef,
3567 + events
3568 + } = store2.context;
3569 + const tree = useFloatingTree(externalTree);
3570 + const outsidePressFn = useStableCallback(typeof outsidePressProp === "function" ? outsidePressProp : () => false);
3571 + const outsidePress2 = typeof outsidePressProp === "function" ? outsidePressFn : outsidePressProp;
3572 + const outsidePressEnabled = outsidePress2 !== false;
3573 + const getOutsidePressEventProp = useStableCallback(() => outsidePressEvent);
3574 + const {
3575 + escapeKey: escapeKeyBubbles,
3576 + outsidePress: outsidePressBubbles
3577 + } = normalizeProp(bubbles);
3578 + const pressStartedInsideRef = React23.useRef(false);
3579 + const pressStartPreventedRef = React23.useRef(false);
3580 + const suppressNextOutsideClickRef = React23.useRef(false);
3581 + const sawPressWhileOpenRef = React23.useRef(false);
3582 + const isComposingRef = React23.useRef(false);
3583 + const currentPointerTypeRef = React23.useRef("");
3584 + const touchStateRef = React23.useRef(null);
3585 + const cancelDismissOnEndTimeout = useTimeout();
3586 + const clearInsideReactTreeTimeout = useTimeout();
3587 + const clearInsideReactTree = useStableCallback(() => {
3588 + clearInsideReactTreeTimeout.clear();
3589 + dataRef.current.insideReactTree = false;
3590 + });
3591 + const hasBlockingChild = useStableCallback((bubbleKey) => {
3592 + const nodeId = dataRef.current.floatingContext?.nodeId;
3593 + const children = tree ? getNodeChildren(tree.nodesRef.current, nodeId) : [];
3594 + return children.some((child) => child.context?.open && !child.context.dataRef.current[bubbleKey]);
3595 + });
3596 + const isEventWithinOwnElements = useStableCallback((event) => {
3597 + return isEventTargetWithin(event, store2.select("floatingElement")) || isEventTargetWithin(event, store2.select("domReferenceElement"));
3598 + });
3599 + const closeOnReferencePress = useStableCallback((event) => {
3600 + if (!referencePress()) {
3601 + return;
3602 + }
3603 + store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerPress, event.nativeEvent));
3604 + });
3605 + const closeOnEscapeKeyDown = useStableCallback((event) => {
3606 + if (!open3 || !enabled || !escapeKey2 || event.key !== "Escape") {
3607 + return;
3608 + }
3609 + if (isComposingRef.current) {
3610 + return;
3611 + }
3612 + if (!escapeKeyBubbles && hasBlockingChild("__escapeKeyBubbles")) {
3613 + return;
3614 + }
3615 + const native = isReactEvent(event) ? event.nativeEvent : event;
3616 + const eventDetails = createChangeEventDetails(reason_parts_exports.escapeKey, native);
3617 + store2.setOpen(false, eventDetails);
3618 + if (!eventDetails.isCanceled) {
3619 + event.preventDefault();
3620 + }
3621 + if (!escapeKeyBubbles && !eventDetails.isPropagationAllowed) {
3622 + event.stopPropagation();
3623 + }
3624 + });
3625 + const markInsideReactTree = useStableCallback(() => {
3626 + dataRef.current.insideReactTree = true;
3627 + clearInsideReactTreeTimeout.start(0, clearInsideReactTree);
3628 + });
3629 + const markPressStartedInsideReactTree = useStableCallback((event) => {
3630 + if (!open3 || !enabled || event.button !== 0) {
3631 + return;
3632 + }
3633 + const target = getTarget(event.nativeEvent);
3634 + if (!contains(store2.select("floatingElement"), target)) {
3635 + return;
3636 + }
3637 + if (!pressStartedInsideRef.current) {
3638 + pressStartedInsideRef.current = true;
3639 + pressStartPreventedRef.current = false;
3640 + }
3641 + });
3642 + const markInsidePressStartPrevented = useStableCallback((event) => {
3643 + if (!open3 || !enabled) {
3644 + return;
3645 + }
3646 + if (!(event.defaultPrevented || event.nativeEvent.defaultPrevented)) {
3647 + return;
3648 + }
3649 + if (pressStartedInsideRef.current) {
3650 + pressStartPreventedRef.current = true;
3651 + }
3652 + });
3653 + React23.useEffect(() => {
3654 + function handleOpenChange(details) {
3655 + if (!details.open) {
3656 + sawPressWhileOpenRef.current = false;
3657 + }
3658 + }
3659 + events.on("openchange", handleOpenChange);
3660 + return () => {
3661 + events.off("openchange", handleOpenChange);
3662 + };
3663 + }, [events]);
3664 + React23.useEffect(() => {
3665 + if (!open3 || !enabled) {
3666 + if (!open3) {
3667 + sawPressWhileOpenRef.current = false;
3668 + }
3669 + return clearInsideReactTree;
3670 + }
3671 + dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;
3672 + dataRef.current.__outsidePressBubbles = outsidePressBubbles;
3673 + const compositionTimeout = new Timeout();
3674 + const preventedPressSuppressionTimeout = new Timeout();
3675 + const doc = ownerDocument(floatingElement);
3676 + function handleCompositionStart() {
3677 + compositionTimeout.clear();
3678 + isComposingRef.current = true;
3679 + }
3680 + function handleCompositionEnd() {
3681 + compositionTimeout.start(
3682 + // 0ms or 1ms don't work in Safari. 5ms appears to consistently work.
3683 + // Only apply to WebKit for the test to remain 0ms.
3684 + parts_exports.engine.webkit ? 5 : 0,
3685 + () => {
3686 + isComposingRef.current = false;
3687 + }
3688 + );
3689 + }
3690 + function suppressImmediateOutsideClickAfterPreventedStart() {
3691 + suppressNextOutsideClickRef.current = true;
3692 + preventedPressSuppressionTimeout.start(0, () => {
3693 + suppressNextOutsideClickRef.current = false;
3694 + });
3695 + }
3696 + function resetPressStartState() {
3697 + pressStartedInsideRef.current = false;
3698 + pressStartPreventedRef.current = false;
3699 + }
3700 + function getOutsidePressEvent() {
3701 + const type = currentPointerTypeRef.current;
3702 + const computedType = type === "pen" || !type ? "mouse" : type;
3703 + const outsidePressEventValue = getOutsidePressEventProp();
3704 + const resolved = typeof outsidePressEventValue === "function" ? outsidePressEventValue() : outsidePressEventValue;
3705 + if (typeof resolved === "string") {
3706 + return resolved;
3707 + }
3708 + return resolved[computedType];
3709 + }
3710 + function shouldIgnoreEvent(event) {
3711 + const computedOutsidePressEvent = getOutsidePressEvent();
3712 + return computedOutsidePressEvent === "intentional" && event.type !== "click" || computedOutsidePressEvent === "sloppy" && event.type === "click";
3713 + }
3714 + function isEventWithinFloatingTree(event) {
3715 + const nodeId = dataRef.current.floatingContext?.nodeId;
3716 + const targetIsInsideChildren = tree && getNodeChildren(tree.nodesRef.current, nodeId).some((node) => isEventTargetWithin(event, node.context?.elements.floating));
3717 + return isEventWithinOwnElements(event) || targetIsInsideChildren;
3718 + }
3719 + function closeOnPressOutside(event) {
3720 + if (shouldIgnoreEvent(event)) {
3721 + if (event.type !== "click" && !isEventWithinOwnElements(event)) {
3722 + preventedPressSuppressionTimeout.clear();
3723 + suppressNextOutsideClickRef.current = false;
3724 + }
3725 + clearInsideReactTree();
3726 + return;
3727 + }
3728 + if (dataRef.current.insideReactTree) {
3729 + clearInsideReactTree();
3730 + return;
3731 + }
3732 + const target = getTarget(event);
3733 + const inertSelector = `[${createAttribute("inert")}]`;
3734 + const targetRoot = isElement(target) ? target.getRootNode() : null;
3735 + const markers = Array.from((isShadowRoot(targetRoot) ? targetRoot : ownerDocument(store2.select("floatingElement"))).querySelectorAll(inertSelector));
3736 + const triggers = store2.context.triggerElements;
3737 + if (target && (triggers.hasElement(target) || triggers.hasMatchingElement((trigger) => contains(trigger, target)))) {
3738 + return;
3739 + }
3740 + let targetRootAncestor = isElement(target) ? target : null;
3741 + while (targetRootAncestor && !isLastTraversableNode(targetRootAncestor)) {
3742 + const nextParent = getParentNode(targetRootAncestor);
3743 + if (isLastTraversableNode(nextParent) || !isElement(nextParent)) {
3744 + break;
3745 + }
3746 + targetRootAncestor = nextParent;
3747 + }
3748 + if (markers.length && isElement(target) && !isRootElement(target) && // Clicked on a direct ancestor (e.g. FloatingOverlay).
3749 + !contains(target, store2.select("floatingElement")) && // If the target root element contains none of the markers, then the
3750 + // element was injected after the floating element rendered.
3751 + markers.every((marker) => !contains(targetRootAncestor, marker))) {
3752 + return;
3753 + }
3754 + if (isHTMLElement(target) && !("touches" in event)) {
3755 + const lastTraversableNode = isLastTraversableNode(target);
3756 + const style = getComputedStyle2(target);
3757 + const scrollRe = /auto|scroll/;
3758 + const isScrollableX = lastTraversableNode || scrollRe.test(style.overflowX);
3759 + const isScrollableY = lastTraversableNode || scrollRe.test(style.overflowY);
3760 + const canScrollX = isScrollableX && target.clientWidth > 0 && target.scrollWidth > target.clientWidth;
3761 + const canScrollY = isScrollableY && target.clientHeight > 0 && target.scrollHeight > target.clientHeight;
3762 + const isRTL4 = style.direction === "rtl";
3763 + const pressedVerticalScrollbar = canScrollY && (isRTL4 ? event.offsetX <= target.offsetWidth - target.clientWidth : event.offsetX > target.clientWidth);
3764 + const pressedHorizontalScrollbar = canScrollX && event.offsetY > target.clientHeight;
3765 + if (pressedVerticalScrollbar || pressedHorizontalScrollbar) {
3766 + return;
3767 + }
3768 + }
3769 + if (isEventWithinFloatingTree(event)) {
3770 + return;
3771 + }
3772 + if (getOutsidePressEvent() === "intentional") {
3773 + if (event.detail !== 0 && !isVirtualClick(event) && !sawPressWhileOpenRef.current) {
3774 + return;
3775 + }
3776 + if (suppressNextOutsideClickRef.current) {
3777 + preventedPressSuppressionTimeout.clear();
3778 + suppressNextOutsideClickRef.current = false;
3779 + return;
3780 + }
3781 + }
3782 + if (typeof outsidePress2 === "function" && !outsidePress2(event)) {
3783 + return;
3784 + }
3785 + if (hasBlockingChild("__outsidePressBubbles")) {
3786 + return;
3787 + }
3788 + store2.setOpen(false, createChangeEventDetails(reason_parts_exports.outsidePress, event));
3789 + clearInsideReactTree();
3790 + }
3791 + function handlePointerDown(event) {
3792 + if (getOutsidePressEvent() !== "sloppy" || event.pointerType === "touch" || !store2.select("open") || !enabled || isEventWithinOwnElements(event)) {
3793 + return;
3794 + }
3795 + closeOnPressOutside(event);
3796 + }
3797 + function handleTouchStart(event) {
3798 + if (getOutsidePressEvent() !== "sloppy" || !store2.select("open") || !enabled || isEventWithinOwnElements(event)) {
3799 + return;
3800 + }
3801 + const touch = event.touches[0];
3802 + if (touch) {
3803 + touchStateRef.current = {
3804 + startTime: Date.now(),
3805 + startX: touch.clientX,
3806 + startY: touch.clientY,
3807 + dismissOnTouchEnd: false,
3808 + dismissOnMouseDown: true
3809 + };
3810 + cancelDismissOnEndTimeout.start(1e3, () => {
3811 + if (touchStateRef.current) {
3812 + touchStateRef.current.dismissOnTouchEnd = false;
3813 + touchStateRef.current.dismissOnMouseDown = false;
3814 + }
3815 + });
3816 + }
3817 + }
3818 + function addTargetEventListenerOnce(event, listener) {
3819 + const target = getTarget(event);
3820 + if (!target) {
3821 + return;
3822 + }
3823 + const unsubscribe2 = addEventListener(target, event.type, () => {
3824 + listener(event);
3825 + unsubscribe2();
3826 + });
3827 + }
3828 + function handleTouchStartCapture(event) {
3829 + currentPointerTypeRef.current = "touch";
3830 + addTargetEventListenerOnce(event, handleTouchStart);
3831 + }
3832 + function closeOnPressOutsideCapture(event) {
3833 + cancelDismissOnEndTimeout.clear();
3834 + if (event.type === "pointerdown") {
3835 + if (event.button === 0) {
3836 + sawPressWhileOpenRef.current = true;
3837 + }
3838 + currentPointerTypeRef.current = event.pointerType;
3839 + }
3840 + if (event.type === "mousedown" && touchStateRef.current && !touchStateRef.current.dismissOnMouseDown) {
3841 + return;
3842 + }
3843 + addTargetEventListenerOnce(event, (targetEvent) => {
3844 + if (targetEvent.type === "pointerdown") {
3845 + handlePointerDown(targetEvent);
3846 + } else {
3847 + closeOnPressOutside(targetEvent);
3848 + }
3849 + });
3850 + }
3851 + function handlePressEndCapture(event) {
3852 + if (event.type === "pointercancel") {
3853 + sawPressWhileOpenRef.current = false;
3854 + }
3855 + if (!pressStartedInsideRef.current) {
3856 + return;
3857 + }
3858 + const pressStartedInsideDefaultPrevented = pressStartPreventedRef.current;
3859 + resetPressStartState();
3860 + if (getOutsidePressEvent() !== "intentional") {
3861 + return;
3862 + }
3863 + if (event.type === "pointercancel") {
3864 + if (pressStartedInsideDefaultPrevented) {
3865 + suppressImmediateOutsideClickAfterPreventedStart();
3866 + }
3867 + return;
3868 + }
3869 + if (isEventWithinFloatingTree(event)) {
3870 + return;
3871 + }
3872 + if (pressStartedInsideDefaultPrevented) {
3873 + suppressImmediateOutsideClickAfterPreventedStart();
3874 + return;
3875 + }
3876 + if (typeof outsidePress2 === "function" && !outsidePress2(event)) {
3877 + return;
3878 + }
3879 + preventedPressSuppressionTimeout.clear();
3880 + suppressNextOutsideClickRef.current = true;
3881 + clearInsideReactTree();
3882 + }
3883 + function handleTouchMove(event) {
3884 + if (getOutsidePressEvent() !== "sloppy" || !touchStateRef.current || isEventWithinOwnElements(event)) {
3885 + return;
3886 + }
3887 + const touch = event.touches[0];
3888 + if (!touch) {
3889 + return;
3890 + }
3891 + const deltaX = Math.abs(touch.clientX - touchStateRef.current.startX);
3892 + const deltaY = Math.abs(touch.clientY - touchStateRef.current.startY);
3893 + const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
3894 + if (distance > 5) {
3895 + touchStateRef.current.dismissOnTouchEnd = true;
3896 + }
3897 + if (distance > 10) {
3898 + closeOnPressOutside(event);
3899 + cancelDismissOnEndTimeout.clear();
3900 + touchStateRef.current = null;
3901 + }
3902 + }
3903 + function handleTouchMoveCapture(event) {
3904 + addTargetEventListenerOnce(event, handleTouchMove);
3905 + }
3906 + function handleTouchEnd(event) {
3907 + if (getOutsidePressEvent() !== "sloppy" || !touchStateRef.current || isEventWithinOwnElements(event)) {
3908 + return;
3909 + }
3910 + if (touchStateRef.current.dismissOnTouchEnd) {
3911 + closeOnPressOutside(event);
3912 + }
3913 + cancelDismissOnEndTimeout.clear();
3914 + touchStateRef.current = null;
3915 + }
3916 + function handleTouchEndCapture(event) {
3917 + addTargetEventListenerOnce(event, handleTouchEnd);
3918 + }
3919 + const unsubscribe = mergeCleanups(escapeKey2 && mergeCleanups(addEventListener(doc, "keydown", closeOnEscapeKeyDown), addEventListener(doc, "compositionstart", handleCompositionStart), addEventListener(doc, "compositionend", handleCompositionEnd)), outsidePressEnabled && mergeCleanups(addEventListener(doc, "click", closeOnPressOutsideCapture, true), addEventListener(doc, "pointerdown", closeOnPressOutsideCapture, true), addEventListener(doc, "pointerup", handlePressEndCapture, true), addEventListener(doc, "pointercancel", handlePressEndCapture, true), addEventListener(doc, "mousedown", closeOnPressOutsideCapture, true), addEventListener(doc, "mouseup", handlePressEndCapture, true), addEventListener(doc, "touchstart", handleTouchStartCapture, {
3920 + capture: true,
3921 + passive: true
3922 + }), addEventListener(doc, "touchmove", handleTouchMoveCapture, {
3923 + capture: true,
3924 + passive: true
3925 + }), addEventListener(doc, "touchend", handleTouchEndCapture, {
3926 + capture: true,
3927 + passive: true
3928 + })));
3929 + return () => {
3930 + unsubscribe();
3931 + compositionTimeout.clear();
3932 + preventedPressSuppressionTimeout.clear();
3933 + resetPressStartState();
3934 + suppressNextOutsideClickRef.current = false;
3935 + clearInsideReactTree();
3936 + };
3937 + }, [dataRef, floatingElement, escapeKey2, outsidePressEnabled, outsidePress2, open3, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, clearInsideReactTree, getOutsidePressEventProp, hasBlockingChild, isEventWithinOwnElements, tree, store2, cancelDismissOnEndTimeout]);
3938 + const reference = React23.useMemo(() => ({
3939 + onKeyDown: closeOnEscapeKeyDown,
3940 + onPointerDown: closeOnReferencePress,
3941 + onClick: closeOnReferencePress
3942 + }), [closeOnEscapeKeyDown, closeOnReferencePress]);
3943 + const floating = React23.useMemo(() => ({
3944 + onKeyDown: closeOnEscapeKeyDown,
3945 + // `onMouseDown` may be blocked if `event.preventDefault()` is called in
3946 + // `onPointerDown`, such as with <NumberField.ScrubArea>.
3947 + // See https://github.com/mui/base-ui/pull/3379
3948 + onPointerDown: markInsidePressStartPrevented,
3949 + onMouseDown: markInsidePressStartPrevented,
3950 + onClickCapture: markInsideReactTree,
3951 + onMouseDownCapture(event) {
3952 + markInsideReactTree();
3953 + markPressStartedInsideReactTree(event);
3954 + },
3955 + onPointerDownCapture(event) {
3956 + markInsideReactTree();
3957 + markPressStartedInsideReactTree(event);
3958 + },
3959 + onMouseUpCapture: markInsideReactTree,
3960 + onTouchEndCapture: markInsideReactTree,
3961 + onTouchMoveCapture: markInsideReactTree
3962 + }), [closeOnEscapeKeyDown, markInsideReactTree, markPressStartedInsideReactTree, markInsidePressStartPrevented]);
3963 + return React23.useMemo(() => enabled ? {
3964 + reference,
3965 + floating,
3966 + trigger: reference
3967 + } : {}, [enabled, reference, floating]);
3968 + }
3969 +
3970 + // node_modules/@base-ui/react/floating-ui-react/hooks/useFloating.mjs
3971 + var React31 = __toESM(require_react(), 1);
3972 +
3973 + // node_modules/@floating-ui/core/dist/floating-ui.core.mjs
3974 + function computeCoordsFromPlacement(_ref, placement, rtl) {
3975 + let {
3976 + reference,
3977 + floating
3978 + } = _ref;
3979 + const sideAxis = getSideAxis(placement);
3980 + const alignmentAxis = getAlignmentAxis(placement);
3981 + const alignLength = getAxisLength(alignmentAxis);
3982 + const side = getSide(placement);
3983 + const isVertical = sideAxis === "y";
3984 + const commonX = reference.x + reference.width / 2 - floating.width / 2;
3985 + const commonY = reference.y + reference.height / 2 - floating.height / 2;
3986 + const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;
3987 + let coords;
3988 + switch (side) {
3989 + case "top":
3990 + coords = {
3991 + x: commonX,
3992 + y: reference.y - floating.height
3993 + };
3994 + break;
3995 + case "bottom":
3996 + coords = {
3997 + x: commonX,
3998 + y: reference.y + reference.height
3999 + };
4000 + break;
4001 + case "right":
4002 + coords = {
4003 + x: reference.x + reference.width,
4004 + y: commonY
4005 + };
4006 + break;
4007 + case "left":
4008 + coords = {
4009 + x: reference.x - floating.width,
4010 + y: commonY
4011 + };
4012 + break;
4013 + default:
4014 + coords = {
4015 + x: reference.x,
4016 + y: reference.y
4017 + };
4018 + }
4019 + const alignment = getAlignment(placement);
4020 + if (alignment) {
4021 + coords[alignmentAxis] += commonAlign * (alignment === "end" ? 1 : -1) * (rtl && isVertical ? -1 : 1);
4022 + }
4023 + return coords;
4024 + }
4025 + async function detectOverflow(state, options) {
4026 + var _await$platform$isEle;
4027 + if (options === void 0) {
4028 + options = {};
4029 + }
4030 + const {
4031 + x,
4032 + y,
4033 + platform: platform3,
4034 + rects,
4035 + elements,
4036 + strategy
4037 + } = state;
4038 + const {
4039 + boundary = "clippingAncestors",
4040 + rootBoundary = "viewport",
4041 + elementContext = "floating",
4042 + altBoundary = false,
4043 + padding = 0
4044 + } = evaluate(options, state);
4045 + const paddingObject = getPaddingObject(padding);
4046 + const altContext = elementContext === "floating" ? "reference" : "floating";
4047 + const element = elements[altBoundary ? altContext : elementContext];
4048 + const clippingClientRect = rectToClientRect(await platform3.getClippingRect({
4049 + element: ((_await$platform$isEle = await (platform3.isElement == null ? void 0 : platform3.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform3.getDocumentElement == null ? void 0 : platform3.getDocumentElement(elements.floating)),
4050 + boundary,
4051 + rootBoundary,
4052 + strategy
4053 + }));
4054 + const rect = elementContext === "floating" ? {
4055 + x,
4056 + y,
4057 + width: rects.floating.width,
4058 + height: rects.floating.height
4059 + } : rects.reference;
4060 + const offsetParent = await (platform3.getOffsetParent == null ? void 0 : platform3.getOffsetParent(elements.floating));
4061 + const offsetScale = await (platform3.isElement == null ? void 0 : platform3.isElement(offsetParent)) && await (platform3.getScale == null ? void 0 : platform3.getScale(offsetParent)) || {
4062 + x: 1,
4063 + y: 1
4064 + };
4065 + const elementClientRect = rectToClientRect(platform3.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform3.convertOffsetParentRelativeRectToViewportRelativeRect({
4066 + elements,
4067 + rect,
4068 + offsetParent,
4069 + strategy
4070 + }) : rect);
4071 + return {
4072 + top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
4073 + bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
4074 + left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
4075 + right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
4076 + };
4077 + }
4078 + var MAX_RESET_COUNT = 50;
4079 + var computePosition = async (reference, floating, config) => {
4080 + const {
4081 + placement = "bottom",
4082 + strategy = "absolute",
4083 + middleware = [],
4084 + platform: platform3
4085 + } = config;
4086 + const platformWithDetectOverflow = platform3.detectOverflow ? platform3 : {
4087 + ...platform3,
4088 + detectOverflow
4089 + };
4090 + const rtl = await (platform3.isRTL == null ? void 0 : platform3.isRTL(floating));
4091 + let rects = await platform3.getElementRects({
4092 + reference,
4093 + floating,
4094 + strategy
4095 + });
4096 + let {
4097 + x,
4098 + y
4099 + } = computeCoordsFromPlacement(rects, placement, rtl);
4100 + let statefulPlacement = placement;
4101 + let resetCount = 0;
4102 + const middlewareData = {};
4103 + for (let i = 0; i < middleware.length; i++) {
4104 + const currentMiddleware = middleware[i];
4105 + if (!currentMiddleware) {
4106 + continue;
4107 + }
4108 + const {
4109 + name,
4110 + fn
4111 + } = currentMiddleware;
4112 + const {
4113 + x: nextX,
4114 + y: nextY,
4115 + data,
4116 + reset
4117 + } = await fn({
4118 + x,
4119 + y,
4120 + initialPlacement: placement,
4121 + placement: statefulPlacement,
4122 + strategy,
4123 + middlewareData,
4124 + rects,
4125 + platform: platformWithDetectOverflow,
4126 + elements: {
4127 + reference,
4128 + floating
4129 + }
4130 + });
4131 + x = nextX != null ? nextX : x;
4132 + y = nextY != null ? nextY : y;
4133 + middlewareData[name] = {
4134 + ...middlewareData[name],
4135 + ...data
4136 + };
4137 + if (reset && resetCount < MAX_RESET_COUNT) {
4138 + resetCount++;
4139 + if (typeof reset === "object") {
4140 + if (reset.placement) {
4141 + statefulPlacement = reset.placement;
4142 + }
4143 + if (reset.rects) {
4144 + rects = reset.rects === true ? await platform3.getElementRects({
4145 + reference,
4146 + floating,
4147 + strategy
4148 + }) : reset.rects;
4149 + }
4150 + ({
4151 + x,
4152 + y
4153 + } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));
4154 + }
4155 + i = -1;
4156 + }
4157 + }
4158 + return {
4159 + x,
4160 + y,
4161 + placement: statefulPlacement,
4162 + strategy,
4163 + middlewareData
4164 + };
4165 + };
4166 + var flip = function(options) {
4167 + if (options === void 0) {
4168 + options = {};
4169 + }
4170 + return {
4171 + name: "flip",
4172 + options,
4173 + async fn(state) {
4174 + var _middlewareData$arrow, _middlewareData$flip;
4175 + const {
4176 + placement,
4177 + middlewareData,
4178 + rects,
4179 + initialPlacement,
4180 + platform: platform3,
4181 + elements
4182 + } = state;
4183 + const {
4184 + mainAxis: checkMainAxis = true,
4185 + crossAxis: checkCrossAxis = true,
4186 + fallbackPlacements: specifiedFallbackPlacements,
4187 + fallbackStrategy = "bestFit",
4188 + fallbackAxisSideDirection = "none",
4189 + flipAlignment = true,
4190 + ...detectOverflowOptions
4191 + } = evaluate(options, state);
4192 + if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
4193 + return {};
4194 + }
4195 + const side = getSide(placement);
4196 + const initialSideAxis = getSideAxis(initialPlacement);
4197 + const isBasePlacement = getSide(initialPlacement) === initialPlacement;
4198 + const rtl = await (platform3.isRTL == null ? void 0 : platform3.isRTL(elements.floating));
4199 + const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
4200 + const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== "none";
4201 + if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {
4202 + fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
4203 + }
4204 + const placements2 = [initialPlacement, ...fallbackPlacements];
4205 + const overflow = await platform3.detectOverflow(state, detectOverflowOptions);
4206 + const overflows = [];
4207 + let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
4208 + if (checkMainAxis) {
4209 + overflows.push(overflow[side]);
4210 + }
4211 + if (checkCrossAxis) {
4212 + const sides2 = getAlignmentSides(placement, rects, rtl);
4213 + overflows.push(overflow[sides2[0]], overflow[sides2[1]]);
4214 + }
4215 + overflowsData = [...overflowsData, {
4216 + placement,
4217 + overflows
4218 + }];
4219 + if (!overflows.every((side2) => side2 <= 0)) {
4220 + var _middlewareData$flip2, _overflowsData$filter;
4221 + const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
4222 + const nextPlacement = placements2[nextIndex];
4223 + if (nextPlacement) {
4224 + const ignoreCrossAxisOverflow = checkCrossAxis === "alignment" ? initialSideAxis !== getSideAxis(nextPlacement) : false;
4225 + if (!ignoreCrossAxisOverflow || // We leave the current main axis only if every placement on that axis
4226 + // overflows the main axis.
4227 + overflowsData.every((d) => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {
4228 + return {
4229 + data: {
4230 + index: nextIndex,
4231 + overflows: overflowsData
4232 + },
4233 + reset: {
4234 + placement: nextPlacement
4235 + }
4236 + };
4237 + }
4238 + }
4239 + let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;
4240 + if (!resetPlacement) {
4241 + switch (fallbackStrategy) {
4242 + case "bestFit": {
4243 + var _overflowsData$filter2;
4244 + const placement2 = (_overflowsData$filter2 = overflowsData.filter((d) => {
4245 + if (hasFallbackAxisSideDirection) {
4246 + const currentSideAxis = getSideAxis(d.placement);
4247 + return currentSideAxis === initialSideAxis || // Create a bias to the `y` side axis due to horizontal
4248 + // reading directions favoring greater width.
4249 + currentSideAxis === "y";
4250 + }
4251 + return true;
4252 + }).map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];
4253 + if (placement2) {
4254 + resetPlacement = placement2;
4255 + }
4256 + break;
4257 + }
4258 + case "initialPlacement":
4259 + resetPlacement = initialPlacement;
4260 + break;
4261 + }
4262 + }
4263 + if (placement !== resetPlacement) {
4264 + return {
4265 + reset: {
4266 + placement: resetPlacement
4267 + }
4268 + };
4269 + }
4270 + }
4271 + return {};
4272 + }
4273 + };
4274 + };
4275 + var originSides = /* @__PURE__ */ new Set(["left", "top"]);
4276 + async function convertValueToCoords(state, options) {
4277 + const {
4278 + placement,
4279 + platform: platform3,
4280 + elements
4281 + } = state;
4282 + const rtl = await (platform3.isRTL == null ? void 0 : platform3.isRTL(elements.floating));
4283 + const side = getSide(placement);
4284 + const alignment = getAlignment(placement);
4285 + const isVertical = getSideAxis(placement) === "y";
4286 + const mainAxisMulti = originSides.has(side) ? -1 : 1;
4287 + const crossAxisMulti = rtl && isVertical ? -1 : 1;
4288 + const rawValue = evaluate(options, state);
4289 + let {
4290 + mainAxis,
4291 + crossAxis,
4292 + alignmentAxis
4293 + } = typeof rawValue === "number" ? {
4294 + mainAxis: rawValue,
4295 + crossAxis: 0,
4296 + alignmentAxis: null
4297 + } : {
4298 + mainAxis: rawValue.mainAxis || 0,
4299 + crossAxis: rawValue.crossAxis || 0,
4300 + alignmentAxis: rawValue.alignmentAxis
4301 + };
4302 + if (alignment && typeof alignmentAxis === "number") {
4303 + crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
4304 + }
4305 + return isVertical ? {
4306 + x: crossAxis * crossAxisMulti,
4307 + y: mainAxis * mainAxisMulti
4308 + } : {
4309 + x: mainAxis * mainAxisMulti,
4310 + y: crossAxis * crossAxisMulti
4311 + };
4312 + }
4313 + var offset = function(options) {
4314 + if (options === void 0) {
4315 + options = 0;
4316 + }
4317 + return {
4318 + name: "offset",
4319 + options,
4320 + async fn(state) {
4321 + var _middlewareData$offse, _middlewareData$arrow;
4322 + const {
4323 + x,
4324 + y,
4325 + placement,
4326 + middlewareData
4327 + } = state;
4328 + const diffCoords = await convertValueToCoords(state, options);
4329 + if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
4330 + return {};
4331 + }
4332 + return {
4333 + x: x + diffCoords.x,
4334 + y: y + diffCoords.y,
4335 + data: {
4336 + ...diffCoords,
4337 + placement
4338 + }
4339 + };
4340 + }
4341 + };
4342 + };
4343 + var shift = function(options) {
4344 + if (options === void 0) {
4345 + options = {};
4346 + }
4347 + return {
4348 + name: "shift",
4349 + options,
4350 + async fn(state) {
4351 + const {
4352 + x,
4353 + y,
4354 + placement,
4355 + platform: platform3
4356 + } = state;
4357 + const {
4358 + mainAxis: checkMainAxis = true,
4359 + crossAxis: checkCrossAxis = false,
4360 + limiter = {
4361 + fn: (_ref) => {
4362 + let {
4363 + x: x2,
4364 + y: y2
4365 + } = _ref;
4366 + return {
4367 + x: x2,
4368 + y: y2
4369 + };
4370 + }
4371 + },
4372 + ...detectOverflowOptions
4373 + } = evaluate(options, state);
4374 + const coords = {
4375 + x,
4376 + y
4377 + };
4378 + const overflow = await platform3.detectOverflow(state, detectOverflowOptions);
4379 + const crossAxis = getSideAxis(placement);
4380 + const mainAxis = getOppositeAxis(crossAxis);
4381 + let mainAxisCoord = coords[mainAxis];
4382 + let crossAxisCoord = coords[crossAxis];
4383 + const clampCoord = (axis, coord) => clamp(coord + overflow[axis === "y" ? "top" : "left"], coord, coord - overflow[axis === "y" ? "bottom" : "right"]);
4384 + if (checkMainAxis) {
4385 + mainAxisCoord = clampCoord(mainAxis, mainAxisCoord);
4386 + }
4387 + if (checkCrossAxis) {
4388 + crossAxisCoord = clampCoord(crossAxis, crossAxisCoord);
4389 + }
4390 + const limitedCoords = limiter.fn({
4391 + ...state,
4392 + [mainAxis]: mainAxisCoord,
4393 + [crossAxis]: crossAxisCoord
4394 + });
4395 + return {
4396 + ...limitedCoords,
4397 + data: {
4398 + x: limitedCoords.x - x,
4399 + y: limitedCoords.y - y,
4400 + enabled: {
4401 + [mainAxis]: checkMainAxis,
4402 + [crossAxis]: checkCrossAxis
4403 + }
4404 + }
4405 + };
4406 + }
4407 + };
4408 + };
4409 + var limitShift = function(options) {
4410 + if (options === void 0) {
4411 + options = {};
4412 + }
4413 + return {
4414 + options,
4415 + fn(state) {
4416 + var _rawOffset$mainAxis, _rawOffset$crossAxis;
4417 + const {
4418 + x,
4419 + y,
4420 + placement,
4421 + rects,
4422 + middlewareData
4423 + } = state;
4424 + const {
4425 + offset: offset4 = 0,
4426 + mainAxis: checkMainAxis = true,
4427 + crossAxis: checkCrossAxis = true
4428 + } = evaluate(options, state);
4429 + const coords = {
4430 + x,
4431 + y
4432 + };
4433 + const crossAxis = getSideAxis(placement);
4434 + const mainAxis = getOppositeAxis(crossAxis);
4435 + let mainAxisCoord = coords[mainAxis];
4436 + let crossAxisCoord = coords[crossAxis];
4437 + const rawOffset = evaluate(offset4, state);
4438 + const computedOffset = typeof rawOffset === "number" ? {
4439 + mainAxis: rawOffset,
4440 + crossAxis: 0
4441 + } : {
4442 + mainAxis: (_rawOffset$mainAxis = rawOffset.mainAxis) != null ? _rawOffset$mainAxis : 0,
4443 + crossAxis: (_rawOffset$crossAxis = rawOffset.crossAxis) != null ? _rawOffset$crossAxis : 0
4444 + };
4445 + if (checkMainAxis) {
4446 + const len = mainAxis === "y" ? "height" : "width";
4447 + const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;
4448 + const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;
4449 + if (mainAxisCoord < limitMin) {
4450 + mainAxisCoord = limitMin;
4451 + } else if (mainAxisCoord > limitMax) {
4452 + mainAxisCoord = limitMax;
4453 + }
4454 + }
4455 + if (checkCrossAxis) {
4456 + var _middlewareData$offse, _middlewareData$offse2;
4457 + const len = mainAxis === "y" ? "width" : "height";
4458 + const isOriginSide = originSides.has(getSide(placement));
4459 + const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);
4460 + const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);
4461 + if (crossAxisCoord < limitMin) {
4462 + crossAxisCoord = limitMin;
4463 + } else if (crossAxisCoord > limitMax) {
4464 + crossAxisCoord = limitMax;
4465 + }
4466 + }
4467 + return {
4468 + [mainAxis]: mainAxisCoord,
4469 + [crossAxis]: crossAxisCoord
4470 + };
4471 + }
4472 + };
4473 + };
4474 + var size = function(options) {
4475 + if (options === void 0) {
4476 + options = {};
4477 + }
4478 + return {
4479 + name: "size",
4480 + options,
4481 + async fn(state) {
4482 + const {
4483 + placement,
4484 + rects,
4485 + platform: platform3,
4486 + elements
4487 + } = state;
4488 + const {
4489 + apply = () => {
4490 + },
4491 + ...detectOverflowOptions
4492 + } = evaluate(options, state);
4493 + const overflow = await platform3.detectOverflow(state, detectOverflowOptions);
4494 + const side = getSide(placement);
4495 + const alignment = getAlignment(placement);
4496 + const isYAxis = getSideAxis(placement) === "y";
4497 + const {
4498 + width,
4499 + height
4500 + } = rects.floating;
4501 + let heightSide;
4502 + let widthSide;
4503 + if (side === "top" || side === "bottom") {
4504 + heightSide = side;
4505 + widthSide = alignment === (await (platform3.isRTL == null ? void 0 : platform3.isRTL(elements.floating)) ? "start" : "end") ? "left" : "right";
4506 + } else {
4507 + widthSide = side;
4508 + heightSide = alignment === "end" ? "top" : "bottom";
4509 + }
4510 + const maximumClippingHeight = height - overflow.top - overflow.bottom;
4511 + const maximumClippingWidth = width - overflow.left - overflow.right;
4512 + const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
4513 + const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
4514 + const shiftData = state.middlewareData.shift;
4515 + const noShift = !shiftData;
4516 + let availableHeight2 = overflowAvailableHeight;
4517 + let availableWidth2 = overflowAvailableWidth;
4518 + if (shiftData != null && shiftData.enabled.x) {
4519 + availableWidth2 = maximumClippingWidth;
4520 + }
4521 + if (shiftData != null && shiftData.enabled.y) {
4522 + availableHeight2 = maximumClippingHeight;
4523 + }
4524 + if (noShift && !alignment) {
4525 + if (isYAxis) {
4526 + availableWidth2 = width - 2 * max(overflow.left, overflow.right);
4527 + } else {
4528 + availableHeight2 = height - 2 * max(overflow.top, overflow.bottom);
4529 + }
4530 + }
4531 + await apply({
4532 + ...state,
4533 + availableWidth: availableWidth2,
4534 + availableHeight: availableHeight2
4535 + });
4536 + const nextDimensions = await platform3.getDimensions(elements.floating);
4537 + if (width !== nextDimensions.width || height !== nextDimensions.height) {
4538 + return {
4539 + reset: {
4540 + rects: true
4541 + }
4542 + };
4543 + }
4544 + return {};
4545 + }
4546 + };
4547 + };
4548 +
4549 + // node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs
4550 + function getCssDimensions(element) {
4551 + const css = getComputedStyle2(element);
4552 + let width = parseFloat(css.width) || 0;
4553 + let height = parseFloat(css.height) || 0;
4554 + const hasOffset = isHTMLElement(element);
4555 + const offsetWidth = hasOffset ? element.offsetWidth : width;
4556 + const offsetHeight = hasOffset ? element.offsetHeight : height;
4557 + const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
4558 + if (shouldFallback) {
4559 + width = offsetWidth;
4560 + height = offsetHeight;
4561 + }
4562 + return {
4563 + width,
4564 + height,
4565 + $: shouldFallback
4566 + };
4567 + }
4568 + function unwrapElement(element) {
4569 + return !isElement(element) ? element.contextElement : element;
4570 + }
4571 + function getScale(element) {
4572 + const domElement = unwrapElement(element);
4573 + if (!isHTMLElement(domElement)) {
4574 + return createCoords(1);
4575 + }
4576 + const rect = domElement.getBoundingClientRect();
4577 + const {
4578 + width,
4579 + height,
4580 + $
4581 + } = getCssDimensions(domElement);
4582 + let x = ($ ? round(rect.width) : rect.width) / width;
4583 + let y = ($ ? round(rect.height) : rect.height) / height;
4584 + if (!x || !Number.isFinite(x)) {
4585 + x = 1;
4586 + }
4587 + if (!y || !Number.isFinite(y)) {
4588 + y = 1;
4589 + }
4590 + return {
4591 + x,
4592 + y
4593 + };
4594 + }
4595 + var noOffsets = /* @__PURE__ */ createCoords(0);
4596 + function getVisualOffsets(element) {
4597 + const win = getWindow(element);
4598 + if (!isWebKit() || !win.visualViewport) {
4599 + return noOffsets;
4600 + }
4601 + return {
4602 + x: win.visualViewport.offsetLeft,
4603 + y: win.visualViewport.offsetTop
4604 + };
4605 + }
4606 + function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
4607 + if (isFixed === void 0) {
4608 + isFixed = false;
4609 + }
4610 + return !!floatingOffsetParent && isFixed && floatingOffsetParent === getWindow(element);
4611 + }
4612 + function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
4613 + if (includeScale === void 0) {
4614 + includeScale = false;
4615 + }
4616 + if (isFixedStrategy === void 0) {
4617 + isFixedStrategy = false;
4618 + }
4619 + const clientRect = element.getBoundingClientRect();
4620 + const domElement = unwrapElement(element);
4621 + let scale = createCoords(1);
4622 + if (includeScale) {
4623 + if (offsetParent) {
4624 + if (isElement(offsetParent)) {
4625 + scale = getScale(offsetParent);
4626 + }
4627 + } else {
4628 + scale = getScale(element);
4629 + }
4630 + }
4631 + const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);
4632 + let x = (clientRect.left + visualOffsets.x) / scale.x;
4633 + let y = (clientRect.top + visualOffsets.y) / scale.y;
4634 + let width = clientRect.width / scale.x;
4635 + let height = clientRect.height / scale.y;
4636 + if (domElement && offsetParent) {
4637 + const win = getWindow(domElement);
4638 + const offsetWin = isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
4639 + let currentWin = win;
4640 + let currentIFrame = getFrameElement(currentWin);
4641 + while (currentIFrame && offsetWin !== currentWin) {
4642 + const iframeScale = getScale(currentIFrame);
4643 + const iframeRect = currentIFrame.getBoundingClientRect();
4644 + const css = getComputedStyle2(currentIFrame);
4645 + const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
4646 + const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
4647 + x *= iframeScale.x;
4648 + y *= iframeScale.y;
4649 + width *= iframeScale.x;
4650 + height *= iframeScale.y;
4651 + x += left;
4652 + y += top;
4653 + currentWin = getWindow(currentIFrame);
4654 + currentIFrame = getFrameElement(currentWin);
4655 + }
4656 + }
4657 + return rectToClientRect({
4658 + width,
4659 + height,
4660 + x,
4661 + y
4662 + });
4663 + }
4664 + function getWindowScrollBarX(element, rect) {
4665 + const leftScroll = getNodeScroll(element).scrollLeft;
4666 + if (!rect) {
4667 + return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;
4668 + }
4669 + return rect.left + leftScroll;
4670 + }
4671 + function getHTMLOffset(documentElement, scroll) {
4672 + const htmlRect = documentElement.getBoundingClientRect();
4673 + const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);
4674 + const y = htmlRect.top + scroll.scrollTop;
4675 + return {
4676 + x,
4677 + y
4678 + };
4679 + }
4680 + function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
4681 + let {
4682 + elements,
4683 + rect,
4684 + offsetParent,
4685 + strategy
4686 + } = _ref;
4687 + const isFixed = strategy === "fixed";
4688 + const documentElement = getDocumentElement(offsetParent);
4689 + const topLayer = elements ? isTopLayer(elements.floating) : false;
4690 + if (offsetParent === documentElement || topLayer && isFixed) {
4691 + return rect;
4692 + }
4693 + let scroll = {
4694 + scrollLeft: 0,
4695 + scrollTop: 0
4696 + };
4697 + let scale = createCoords(1);
4698 + const offsets = createCoords(0);
4699 + const isOffsetParentAnElement = isHTMLElement(offsetParent);
4700 + if (isOffsetParentAnElement || !isFixed) {
4701 + if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
4702 + scroll = getNodeScroll(offsetParent);
4703 + }
4704 + if (isOffsetParentAnElement) {
4705 + const offsetRect = getBoundingClientRect(offsetParent);
4706 + scale = getScale(offsetParent);
4707 + offsets.x = offsetRect.x + offsetParent.clientLeft;
4708 + offsets.y = offsetRect.y + offsetParent.clientTop;
4709 + }
4710 + }
4711 + const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
4712 + return {
4713 + width: rect.width * scale.x,
4714 + height: rect.height * scale.y,
4715 + x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,
4716 + y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y
4717 + };
4718 + }
4719 + function getClientRects(element) {
4720 + return element.getClientRects ? Array.from(element.getClientRects()) : [];
4721 + }
4722 + function getDocumentRect(html) {
4723 + const scroll = getNodeScroll(html);
4724 + const body = html.ownerDocument.body;
4725 + const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
4726 + const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
4727 + let x = -scroll.scrollLeft + getWindowScrollBarX(html);
4728 + const y = -scroll.scrollTop;
4729 + if (getComputedStyle2(body).direction === "rtl") {
4730 + x += max(html.clientWidth, body.clientWidth) - width;
4731 + }
4732 + return {
4733 + width,
4734 + height,
4735 + x,
4736 + y
4737 + };
4738 + }
4739 + var SCROLLBAR_MAX = 25;
4740 + function getViewportRect(element, strategy, rootBoundary) {
4741 + if (rootBoundary === void 0) {
4742 + rootBoundary = "viewport";
4743 + }
4744 + const isLayoutViewport = rootBoundary === "layoutViewport";
4745 + const win = getWindow(element);
4746 + const html = getDocumentElement(element);
4747 + const visualViewport = win.visualViewport;
4748 + let width = html.clientWidth;
4749 + let height = html.clientHeight;
4750 + let x = 0;
4751 + let y = 0;
4752 + if (visualViewport) {
4753 + const layoutRelativeClientCoords = !isWebKit() || strategy === "fixed";
4754 + if (isLayoutViewport) {
4755 + if (!layoutRelativeClientCoords) {
4756 + x = -visualViewport.offsetLeft;
4757 + y = -visualViewport.offsetTop;
4758 + }
4759 + } else {
4760 + width = visualViewport.width;
4761 + height = visualViewport.height;
4762 + if (layoutRelativeClientCoords) {
4763 + x = visualViewport.offsetLeft;
4764 + y = visualViewport.offsetTop;
4765 + }
4766 + }
4767 + }
4768 + const windowScrollbarX = getWindowScrollBarX(html);
4769 + if (windowScrollbarX <= 0) {
4770 + const doc = html.ownerDocument;
4771 + const body = doc.body;
4772 + const bodyStyles = getComputedStyle(body);
4773 + const bodyMarginInline = doc.compatMode === "CSS1Compat" ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
4774 + const reservedWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
4775 + const gutter = getComputedStyle(html).scrollbarGutter === "stable both-edges" ? reservedWidth / 2 : reservedWidth;
4776 + if (gutter <= SCROLLBAR_MAX) {
4777 + width -= gutter;
4778 + }
4779 + }
4780 + return {
4781 + width,
4782 + height,
4783 + x,
4784 + y
4785 + };
4786 + }
4787 + function getInnerBoundingClientRect(element, strategy) {
4788 + const clientRect = getBoundingClientRect(element, true, strategy === "fixed");
4789 + const top = clientRect.top + element.clientTop;
4790 + const left = clientRect.left + element.clientLeft;
4791 + const scale = getScale(element);
4792 + const width = element.clientWidth * scale.x;
4793 + const height = element.clientHeight * scale.y;
4794 + const x = left * scale.x;
4795 + const y = top * scale.y;
4796 + return {
4797 + width,
4798 + height,
4799 + x,
4800 + y
4801 + };
4802 + }
4803 + function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
4804 + let rect;
4805 + if (clippingAncestor === "viewport" || clippingAncestor === "layoutViewport") {
4806 + rect = getViewportRect(element, strategy, clippingAncestor);
4807 + } else if (clippingAncestor === "document") {
4808 + rect = getDocumentRect(getDocumentElement(element));
4809 + } else if (isElement(clippingAncestor)) {
4810 + rect = getInnerBoundingClientRect(clippingAncestor, strategy);
4811 + } else {
4812 + const visualOffsets = getVisualOffsets(element);
4813 + rect = {
4814 + x: clippingAncestor.x - visualOffsets.x,
4815 + y: clippingAncestor.y - visualOffsets.y,
4816 + width: clippingAncestor.width,
4817 + height: clippingAncestor.height
4818 + };
4819 + }
4820 + return rectToClientRect(rect);
4821 + }
4822 + function getClippingElementAncestors(element, cache) {
4823 + const cachedResult = cache.get(element);
4824 + if (cachedResult) {
4825 + return cachedResult;
4826 + }
4827 + let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== "body");
4828 + let lastKeptComputedStyle = null;
4829 + const elementIsFixed = getComputedStyle2(element).position === "fixed";
4830 + let currentNode = elementIsFixed ? getParentNode(element) : element;
4831 + while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
4832 + const computedStyle = getComputedStyle2(currentNode);
4833 + const currentNodeIsContaining = isContainingBlock(currentNode);
4834 + const lastPosition = lastKeptComputedStyle ? lastKeptComputedStyle.position : elementIsFixed ? "fixed" : "";
4835 + const shouldDropCurrentNode = !currentNodeIsContaining && (lastPosition === "fixed" || lastPosition === "absolute" && computedStyle.position === "static");
4836 + if (shouldDropCurrentNode) {
4837 + result = result.filter((ancestor) => ancestor !== currentNode);
4838 + } else {
4839 + lastKeptComputedStyle = computedStyle;
4840 + }
4841 + currentNode = getParentNode(currentNode);
4842 + }
4843 + cache.set(element, result);
4844 + return result;
4845 + }
4846 + function getClippingRect(_ref) {
4847 + let {
4848 + element,
4849 + boundary,
4850 + rootBoundary,
4851 + strategy
4852 + } = _ref;
4853 + const elementClippingAncestors = boundary === "clippingAncestors" ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);
4854 + const clippingAncestors = [...elementClippingAncestors, rootBoundary];
4855 + const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);
4856 + let top = firstRect.top;
4857 + let right = firstRect.right;
4858 + let bottom = firstRect.bottom;
4859 + let left = firstRect.left;
4860 + for (let i = 1; i < clippingAncestors.length; i++) {
4861 + const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);
4862 + top = max(rect.top, top);
4863 + right = min(rect.right, right);
4864 + bottom = min(rect.bottom, bottom);
4865 + left = max(rect.left, left);
4866 + }
4867 + return {
4868 + width: right - left,
4869 + height: bottom - top,
4870 + x: left,
4871 + y: top
4872 + };
4873 + }
4874 + function getDimensions2(element) {
4875 + const {
4876 + width,
4877 + height
4878 + } = getCssDimensions(element);
4879 + return {
4880 + width,
4881 + height
4882 + };
4883 + }
4884 + function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
4885 + const isOffsetParentAnElement = isHTMLElement(offsetParent);
4886 + const documentElement = getDocumentElement(offsetParent);
4887 + const isFixed = strategy === "fixed";
4888 + const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
4889 + let scroll = {
4890 + scrollLeft: 0,
4891 + scrollTop: 0
4892 + };
4893 + const offsets = createCoords(0);
4894 + if (isOffsetParentAnElement || !isFixed) {
4895 + if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
4896 + scroll = getNodeScroll(offsetParent);
4897 + }
4898 + if (isOffsetParentAnElement) {
4899 + const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
4900 + offsets.x = offsetRect.x + offsetParent.clientLeft;
4901 + offsets.y = offsetRect.y + offsetParent.clientTop;
4902 + }
4903 + }
4904 + if (!isOffsetParentAnElement && documentElement) {
4905 + offsets.x = getWindowScrollBarX(documentElement);
4906 + }
4907 + const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
4908 + const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
4909 + const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
4910 + return {
4911 + x,
4912 + y,
4913 + width: rect.width,
4914 + height: rect.height
4915 + };
4916 + }
4917 + function isStaticPositioned(element) {
4918 + return getComputedStyle2(element).position === "static";
4919 + }
4920 + function getTrueOffsetParent(element, polyfill) {
4921 + if (!isHTMLElement(element) || getComputedStyle2(element).position === "fixed") {
4922 + return null;
4923 + }
4924 + if (polyfill) {
4925 + return polyfill(element);
4926 + }
4927 + let rawOffsetParent = element.offsetParent;
4928 + if (getDocumentElement(element) === rawOffsetParent) {
4929 + rawOffsetParent = rawOffsetParent.ownerDocument.body;
4930 + }
4931 + return rawOffsetParent;
4932 + }
4933 + function getOffsetParent(element, polyfill) {
4934 + const win = getWindow(element);
4935 + if (isTopLayer(element)) {
4936 + return win;
4937 + }
4938 + if (!isHTMLElement(element)) {
4939 + let svgOffsetParent = getParentNode(element);
4940 + while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {
4941 + if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {
4942 + return svgOffsetParent;
4943 + }
4944 + svgOffsetParent = getParentNode(svgOffsetParent);
4945 + }
4946 + return win;
4947 + }
4948 + let offsetParent = getTrueOffsetParent(element, polyfill);
4949 + while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {
4950 + offsetParent = getTrueOffsetParent(offsetParent, polyfill);
4951 + }
4952 + if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {
4953 + return win;
4954 + }
4955 + return offsetParent || getContainingBlock(element) || win;
4956 + }
4957 + var getElementRects = async function(data) {
4958 + const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
4959 + const getDimensionsFn = this.getDimensions;
4960 + const floatingDimensions = await getDimensionsFn(data.floating);
4961 + return {
4962 + reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),
4963 + floating: {
4964 + x: 0,
4965 + y: 0,
4966 + width: floatingDimensions.width,
4967 + height: floatingDimensions.height
4968 + }
4969 + };
4970 + };
4971 + function isRTL(element) {
4972 + return getComputedStyle2(element).direction === "rtl";
4973 + }
4974 + var platform2 = {
4975 + convertOffsetParentRelativeRectToViewportRelativeRect,
4976 + getDocumentElement,
4977 + getClippingRect,
4978 + getOffsetParent,
4979 + getElementRects,
4980 + getClientRects,
4981 + getDimensions: getDimensions2,
4982 + getScale,
4983 + isElement,
4984 + isRTL
4985 + };
4986 + function rectsAreEqual(a, b) {
4987 + return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
4988 + }
4989 + function observeMove(element, onMove, ancestorResize) {
4990 + let io = null;
4991 + let timeoutId;
4992 + const root = getDocumentElement(element);
4993 + function cleanup() {
4994 + var _io;
4995 + clearTimeout(timeoutId);
4996 + (_io = io) == null || _io.disconnect();
4997 + io = null;
4998 + }
4999 + function refresh(skip, threshold) {
5000 + if (skip === void 0) {
5001 + skip = false;
5002 + }
5003 + if (threshold === void 0) {
5004 + threshold = 1;
5005 + }
5006 + cleanup();
5007 + const elementRectForRootMargin = element.getBoundingClientRect();
5008 + const {
5009 + left,
5010 + top,
5011 + width,
5012 + height
5013 + } = elementRectForRootMargin;
5014 + if (!skip) {
5015 + onMove();
5016 + }
5017 + if (!width || !height) {
5018 + return;
5019 + }
5020 + const insetTop = floor(top);
5021 + const insetRight = floor(root.clientWidth - (left + width));
5022 + const insetBottom = floor(root.clientHeight - (top + height));
5023 + const insetLeft = floor(left);
5024 + const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px";
5025 + const options = {
5026 + rootMargin,
5027 + threshold: max(0, min(1, threshold)) || 1
5028 + };
5029 + let isFirstUpdate = true;
5030 + function handleObserve(entries) {
5031 + const ratio = entries[0].intersectionRatio;
5032 + if (!rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
5033 + return refresh();
5034 + }
5035 + if (ratio !== threshold) {
5036 + if (!isFirstUpdate) {
5037 + return refresh();
5038 + }
5039 + if (!ratio) {
5040 + timeoutId = setTimeout(() => {
5041 + refresh(false, 1e-7);
5042 + }, 1e3);
5043 + } else {
5044 + refresh(false, ratio);
5045 + }
5046 + }
5047 + isFirstUpdate = false;
5048 + }
5049 + try {
5050 + io = new IntersectionObserver(handleObserve, {
5051 + ...options,
5052 + // Handle <iframe>s
5053 + root: root.ownerDocument
5054 + });
5055 + } catch (_e) {
5056 + io = new IntersectionObserver(handleObserve, options);
5057 + }
5058 + io.observe(element);
5059 + }
5060 + const win = getWindow(element);
5061 + const handleResize = () => refresh(ancestorResize);
5062 + win.addEventListener("resize", handleResize);
5063 + refresh(true);
5064 + return () => {
5065 + win.removeEventListener("resize", handleResize);
5066 + cleanup();
5067 + };
5068 + }
5069 + function autoUpdate(reference, floating, update2, options) {
5070 + if (options === void 0) {
5071 + options = {};
5072 + }
5073 + const {
5074 + ancestorScroll = true,
5075 + ancestorResize = true,
5076 + elementResize = typeof ResizeObserver === "function",
5077 + layoutShift = typeof IntersectionObserver === "function",
5078 + animationFrame = false
5079 + } = options;
5080 + const referenceEl = unwrapElement(reference);
5081 + const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...floating ? getOverflowAncestors(floating) : []] : [];
5082 + ancestors.forEach((ancestor) => {
5083 + ancestorScroll && ancestor.addEventListener("scroll", update2);
5084 + ancestorResize && ancestor.addEventListener("resize", update2);
5085 + });
5086 + const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update2, ancestorResize) : null;
5087 + let reobserveFrame = -1;
5088 + let resizeObserver = null;
5089 + if (elementResize) {
5090 + resizeObserver = new ResizeObserver((_ref) => {
5091 + let [firstEntry] = _ref;
5092 + if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {
5093 + resizeObserver.unobserve(floating);
5094 + cancelAnimationFrame(reobserveFrame);
5095 + reobserveFrame = requestAnimationFrame(() => {
5096 + var _resizeObserver;
5097 + (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);
5098 + });
5099 + }
5100 + update2();
5101 + });
5102 + if (referenceEl && !animationFrame) {
5103 + resizeObserver.observe(referenceEl);
5104 + }
5105 + if (floating) {
5106 + resizeObserver.observe(floating);
5107 + }
5108 + }
5109 + let frameId;
5110 + let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
5111 + if (animationFrame) {
5112 + frameLoop();
5113 + }
5114 + function frameLoop() {
5115 + const nextRefRect = getBoundingClientRect(reference);
5116 + if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {
5117 + update2();
5118 + }
5119 + prevRefRect = nextRefRect;
5120 + frameId = requestAnimationFrame(frameLoop);
5121 + }
5122 + update2();
5123 + return () => {
5124 + var _resizeObserver2;
5125 + ancestors.forEach((ancestor) => {
5126 + ancestorScroll && ancestor.removeEventListener("scroll", update2);
5127 + ancestorResize && ancestor.removeEventListener("resize", update2);
5128 + });
5129 + cleanupIo == null || cleanupIo();
5130 + (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();
5131 + resizeObserver = null;
5132 + if (animationFrame) {
5133 + cancelAnimationFrame(frameId);
5134 + }
5135 + };
5136 + }
5137 + var offset2 = offset;
5138 + var shift2 = shift;
5139 + var flip2 = flip;
5140 + var size2 = size;
5141 + var limitShift2 = limitShift;
5142 + var computePosition2 = (reference, floating, options) => {
5143 + const cache = /* @__PURE__ */ new Map();
5144 + const mergedOptions = options != null ? options : {};
5145 + const platformWithCache = {
5146 + ...platform2,
5147 + ...mergedOptions.platform,
5148 + _c: cache
5149 + };
5150 + return computePosition(reference, floating, {
5151 + ...mergedOptions,
5152 + platform: platformWithCache
5153 + });
5154 + };
5155 +
5156 + // node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs
5157 + var React24 = __toESM(require_react(), 1);
5158 + var import_react2 = __toESM(require_react(), 1);
5159 + var ReactDOM3 = __toESM(require_react_dom(), 1);
5160 + var isClient = typeof document !== "undefined";
5161 + var noop2 = function noop3() {
5162 + };
5163 + var index = isClient ? import_react2.useLayoutEffect : noop2;
5164 + function deepEqual(a, b) {
5165 + if (a === b) {
5166 + return true;
5167 + }
5168 + if (typeof a !== typeof b) {
5169 + return false;
5170 + }
5171 + if (typeof a === "function" && a.toString() === b.toString()) {
5172 + return true;
5173 + }
5174 + let length;
5175 + let i;
5176 + let keys;
5177 + if (a && b && typeof a === "object") {
5178 + if (Array.isArray(a)) {
5179 + length = a.length;
5180 + if (length !== b.length) return false;
5181 + for (i = length; i-- !== 0; ) {
5182 + if (!deepEqual(a[i], b[i])) {
5183 + return false;
5184 + }
5185 + }
5186 + return true;
5187 + }
5188 + keys = Object.keys(a);
5189 + length = keys.length;
5190 + if (length !== Object.keys(b).length) {
5191 + return false;
5192 + }
5193 + for (i = length; i-- !== 0; ) {
5194 + if (!{}.hasOwnProperty.call(b, keys[i])) {
5195 + return false;
5196 + }
5197 + }
5198 + for (i = length; i-- !== 0; ) {
5199 + const key = keys[i];
5200 + if (key === "_owner" && a.$$typeof) {
5201 + continue;
5202 + }
5203 + if (!deepEqual(a[key], b[key])) {
5204 + return false;
5205 + }
5206 + }
5207 + return true;
5208 + }
5209 + return a !== a && b !== b;
5210 + }
5211 + function getDPR(element) {
5212 + if (typeof window === "undefined") {
5213 + return 1;
5214 + }
5215 + const win = element.ownerDocument.defaultView || window;
5216 + return win.devicePixelRatio || 1;
5217 + }
5218 + function roundByDPR(element, value) {
5219 + const dpr = getDPR(element);
5220 + return Math.round(value * dpr) / dpr;
5221 + }
5222 + function useLatestRef(value) {
5223 + const ref = React24.useRef(value);
5224 + index(() => {
5225 + ref.current = value;
5226 + });
5227 + return ref;
5228 + }
5229 + function useFloating(options) {
5230 + if (options === void 0) {
5231 + options = {};
5232 + }
5233 + const {
5234 + placement = "bottom",
5235 + strategy = "absolute",
5236 + middleware = [],
5237 + platform: platform3,
5238 + elements: {
5239 + reference: externalReference,
5240 + floating: externalFloating
5241 + } = {},
5242 + transform = true,
5243 + whileElementsMounted,
5244 + open: open3
5245 + } = options;
5246 + const [data, setData] = React24.useState({
5247 + x: 0,
5248 + y: 0,
5249 + strategy,
5250 + placement,
5251 + middlewareData: {},
5252 + isPositioned: false
5253 + });
5254 + const [latestMiddleware, setLatestMiddleware] = React24.useState(middleware);
5255 + if (!deepEqual(latestMiddleware, middleware)) {
5256 + setLatestMiddleware(middleware);
5257 + }
5258 + const [_reference, _setReference] = React24.useState(null);
5259 + const [_floating, _setFloating] = React24.useState(null);
5260 + const setReference = React24.useCallback((node) => {
5261 + if (node !== referenceRef.current) {
5262 + referenceRef.current = node;
5263 + _setReference(node);
5264 + }
5265 + }, []);
5266 + const setFloating = React24.useCallback((node) => {
5267 + if (node !== floatingRef.current) {
5268 + floatingRef.current = node;
5269 + _setFloating(node);
5270 + }
5271 + }, []);
5272 + const referenceEl = externalReference || _reference;
5273 + const floatingEl = externalFloating || _floating;
5274 + const referenceRef = React24.useRef(null);
5275 + const floatingRef = React24.useRef(null);
5276 + const dataRef = React24.useRef(data);
5277 + const hasWhileElementsMounted = whileElementsMounted != null;
5278 + const whileElementsMountedRef = useLatestRef(whileElementsMounted);
5279 + const platformRef = useLatestRef(platform3);
5280 + const openRef = useLatestRef(open3);
5281 + const update2 = React24.useCallback(() => {
5282 + if (!referenceRef.current || !floatingRef.current) {
5283 + return;
5284 + }
5285 + const config = {
5286 + placement,
5287 + strategy,
5288 + middleware: latestMiddleware
5289 + };
5290 + if (platformRef.current) {
5291 + config.platform = platformRef.current;
5292 + }
5293 + computePosition2(referenceRef.current, floatingRef.current, config).then((data2) => {
5294 + const fullData = {
5295 + ...data2,
5296 + // The floating element's position may be recomputed while it's closed
5297 + // but still mounted (such as when transitioning out). To ensure
5298 + // `isPositioned` will be `false` initially on the next open, avoid
5299 + // setting it to `true` when `open === false` (must be specified).
5300 + isPositioned: openRef.current !== false
5301 + };
5302 + if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {
5303 + dataRef.current = fullData;
5304 + ReactDOM3.flushSync(() => {
5305 + setData(fullData);
5306 + });
5307 + }
5308 + });
5309 + }, [latestMiddleware, placement, strategy, platformRef, openRef]);
5310 + index(() => {
5311 + if (open3 === false && dataRef.current.isPositioned) {
5312 + dataRef.current.isPositioned = false;
5313 + setData((data2) => ({
5314 + ...data2,
5315 + isPositioned: false
5316 + }));
5317 + }
5318 + }, [open3]);
5319 + const isMountedRef = React24.useRef(false);
5320 + index(() => {
5321 + isMountedRef.current = true;
5322 + return () => {
5323 + isMountedRef.current = false;
5324 + };
5325 + }, []);
5326 + index(() => {
5327 + if (referenceEl) referenceRef.current = referenceEl;
5328 + if (floatingEl) floatingRef.current = floatingEl;
5329 + if (referenceEl && floatingEl) {
5330 + if (whileElementsMountedRef.current) {
5331 + return whileElementsMountedRef.current(referenceEl, floatingEl, update2);
5332 + }
5333 + update2();
5334 + }
5335 + }, [referenceEl, floatingEl, update2, whileElementsMountedRef, hasWhileElementsMounted]);
5336 + const refs = React24.useMemo(() => ({
5337 + reference: referenceRef,
5338 + floating: floatingRef,
5339 + setReference,
5340 + setFloating
5341 + }), [setReference, setFloating]);
5342 + const elements = React24.useMemo(() => ({
5343 + reference: referenceEl,
5344 + floating: floatingEl
5345 + }), [referenceEl, floatingEl]);
5346 + const floatingStyles = React24.useMemo(() => {
5347 + const initialStyles = {
5348 + position: strategy,
5349 + left: 0,
5350 + top: 0
5351 + };
5352 + if (!elements.floating) {
5353 + return initialStyles;
5354 + }
5355 + const x = roundByDPR(elements.floating, data.x);
5356 + const y = roundByDPR(elements.floating, data.y);
5357 + if (transform) {
5358 + return {
5359 + ...initialStyles,
5360 + transform: "translate(" + x + "px, " + y + "px)",
5361 + ...getDPR(elements.floating) >= 1.5 && {
5362 + willChange: "transform"
5363 + }
5364 + };
5365 + }
5366 + return {
5367 + position: strategy,
5368 + left: x,
5369 + top: y
5370 + };
5371 + }, [strategy, transform, elements.floating, data.x, data.y]);
5372 + return React24.useMemo(() => ({
5373 + ...data,
5374 + update: update2,
5375 + refs,
5376 + elements,
5377 + floatingStyles
5378 + }), [data, update2, refs, elements, floatingStyles]);
5379 + }
5380 + var offset3 = (options, deps) => {
5381 + const result = offset2(options);
5382 + return {
5383 + name: result.name,
5384 + fn: result.fn,
5385 + options: [options, deps]
5386 + };
5387 + };
5388 + var shift3 = (options, deps) => {
5389 + const result = shift2(options);
5390 + return {
5391 + name: result.name,
5392 + fn: result.fn,
5393 + options: [options, deps]
5394 + };
5395 + };
5396 + var limitShift3 = (options, deps) => {
5397 + const result = limitShift2(options);
5398 + return {
5399 + fn: result.fn,
5400 + options: [options, deps]
5401 + };
5402 + };
5403 + var flip3 = (options, deps) => {
5404 + const result = flip2(options);
5405 + return {
5406 + name: result.name,
5407 + fn: result.fn,
5408 + options: [options, deps]
5409 + };
5410 + };
5411 + var size3 = (options, deps) => {
5412 + const result = size2(options);
5413 + return {
5414 + name: result.name,
5415 + fn: result.fn,
5416 + options: [options, deps]
5417 + };
5418 + };
5419 +
5420 + // node_modules/@base-ui/react/utils/popups/popupHandle.mjs
5421 + var BasePopupHandle = class {
5422 + /**
5423 + * Stores of every root currently using this handle, in attach order. A handle is meant to be used
5424 + * by a single mounted root, but roots can transiently overlap (e.g. during an animated route
5425 + * transition), so this stack lets `attachStore`'s cleanup restore the previous root instead of
5426 + * leaving a still-mounted root uncontrollable when a newer overlapping root detaches first.
5427 + */
5428 + attachedStores = [];
5429 + /**
5430 + * Store of the root that currently controls the handle: the most recently attached one still
5431 + * mounted, or `null` when no root is attached. Imperative methods are no-ops while this is `null`.
5432 + */
5433 + attachedStoreValue = null;
5434 + /**
5435 + * Listeners notified when `attachedStore` changes, so detached triggers can follow the store pointer.
5436 + */
5437 + storeListeners = /* @__PURE__ */ new Set();
5438 + /**
5439 + * Creates a handle backed by the store used while no root is attached.
5440 + *
5441 + * @param fallbackStore Inert, closed store handed to detached triggers while no root is attached,
5442 + * so they can render and register without a mounted root. Triggers register into whichever store
5443 + * `store` currently resolves to, so while detached they live in this store's trigger map and
5444 + * migrate themselves to the root's store (and back) as it attaches/detaches.
5445 + * @param componentName Component name used to prefix dev warnings, e.g. `'Menu'` produces
5446 + * `MenuHandle.open()` in warning text.
5447 + * @param throwOnMissingTrigger Whether `open(triggerId)` throws when no trigger with that id is
5448 + * registered. Anchored popups (Menu, Popover, Tooltip, PreviewCard) need a trigger to anchor to,
5449 + * so they throw; Dialog is not anchored and instead opens unassociated with a dev warning.
5450 + */
5451 + constructor(fallbackStore, componentName, throwOnMissingTrigger = true) {
5452 + this.fallbackStore = fallbackStore;
5453 + this.componentName = componentName;
5454 + this.throwOnMissingTrigger = throwOnMissingTrigger;
5455 + }
5456 + get attachedStore() {
5457 + return this.attachedStoreValue;
5458 + }
5459 + /**
5460 + * Store that detached triggers read from: the attached root's store, or an inert fallback store
5461 + * used while no root is attached.
5462 + * @internal
5463 + */
5464 + get store() {
5465 + return this.attachedStoreValue ?? this.fallbackStore;
5466 + }
5467 + /**
5468 + * Stable fallback store used for server rendering and hydration. Root stores cannot be recorded on
5469 + * the handle during render because a handle can be shared by concurrent server-rendered requests.
5470 + * @internal
5471 + */
5472 + get serverStore() {
5473 + return this.fallbackStore;
5474 + }
5475 + /**
5476 + * Subscribes to changes of the attached store pointer so detached triggers re-render and re-bind
5477 + * when a root attaches or detaches. Returns a function that removes the listener.
5478 + * @internal
5479 + */
5480 + subscribeStore(listener) {
5481 + this.storeListeners.add(listener);
5482 + return () => {
5483 + this.storeListeners.delete(listener);
5484 + };
5485 + }
5486 + /**
5487 + * Points the handle at a root's store and notifies subscribers so detached triggers re-render and
5488 + * re-register into it (their registration effect migrates them when the store pointer changes).
5489 + * Returns a cleanup function that detaches the store again.
5490 + * @internal
5491 + */
5492 + attachStore(newStore) {
5493 + this.attachedStores.push(newStore);
5494 + this.setActiveStore(newStore);
5495 + if (true) {
5496 + if (this.attachedStores.length > 1) {
5497 + const dev = this;
5498 + (dev.overlapWarningFrame ??= AnimationFrame.create()).request(() => {
5499 + if (this.attachedStores.length > 1) {
5500 + console.warn("Base UI: A handle is attached to more than one mounted root at the same time. The most recently mounted root takes over and the previous one stops being controlled by the handle. A handle should be used by a single root that stays mounted for the lifetime of the handle.");
5501 + }
5502 + });
5503 + }
5504 + }
5505 + return () => {
5506 + const index2 = this.attachedStores.lastIndexOf(newStore);
5507 + if (index2 !== -1) {
5508 + this.attachedStores.splice(index2, 1);
5509 + }
5510 + this.setActiveStore(this.attachedStores[this.attachedStores.length - 1] ?? null);
5511 + };
5512 + }
5513 + /**
5514 + * Sets the store that currently controls the handle and notifies subscribers when it changes, so
5515 + * detached triggers re-render and migrate their registration to the new store.
5516 + */
5517 + setActiveStore(store2) {
5518 + if (this.attachedStoreValue !== store2) {
5519 + this.attachedStoreValue = store2;
5520 + this.storeListeners.forEach((listener) => {
5521 + listener();
5522 + });
5523 + }
5524 + }
5525 + /**
5526 + * Opens the attached root's store and associates it with the trigger with the given id, or a
5527 + * no-op (with a dev warning) while no root is attached. Shared by every concrete handle's public
5528 + * `open()` method, which only narrows the parameter type.
5529 + *
5530 + * When a trigger id is given but no matching trigger is registered, anchored popups throw (see
5531 + * `throwOnMissingTrigger`); Dialog opens unassociated with a dev warning instead.
5532 + *
5533 + * This method should only be called in an event handler or an effect (not during rendering).
5534 + *
5535 + * @param triggerId ID of the trigger to associate with the popup, or `null`/`undefined` to open
5536 + * without associating any trigger.
5537 + */
5538 + openByTrigger(triggerId) {
5539 + const attachedStore = this.attachedStore;
5540 + if (attachedStore === null) {
5541 + if (true) {
5542 + console.warn(`Base UI: ${this.componentName}Handle.open() was called while no root using this handle is mounted. The call was ignored; mount a root with this handle before opening it imperatively.`);
5543 + }
5544 + return;
5545 + }
5546 + let triggerElement;
5547 + if (triggerId) {
5548 + for (let i = this.attachedStores.length - 1; i >= 0 && !triggerElement; i -= 1) {
5549 + triggerElement = this.attachedStores[i].context.triggerElements.getById(triggerId);
5550 + }
5551 + triggerElement ??= this.fallbackStore.context.triggerElements.getById(triggerId);
5552 + }
5553 + if (triggerId && !triggerElement) {
5554 + if (this.throwOnMissingTrigger) {
5555 + throw new Error(true ? `Base UI: ${this.componentName}Handle.open() was called with the trigger id "${triggerId}", but no matching trigger is registered with this handle. An anchored popup cannot open without a trigger to anchor to. Pass the id of a mounted ${this.componentName}.Trigger that has this handle set on its "handle" prop.` : formatErrorMessage_default(99, this.componentName, triggerId, this.componentName));
5556 + }
5557 + if (true) {
5558 + console.warn(`Base UI: ${this.componentName}Handle.open: No trigger found with id "${triggerId}". The popup will open, but the trigger will not be associated with it.`);
5559 + }
5560 + }
5561 + attachedStore.setOpen(true, createChangeEventDetails(reason_parts_exports.imperativeAction, void 0, triggerElement));
5562 + }
5563 + /**
5564 + * Closes the popup by setting the attached root's store to closed, or a no-op (with a dev warning)
5565 + * while no root is attached. Shared by every concrete handle's public `close()` method.
5566 + *
5567 + * This method should only be called in an event handler or an effect (not during rendering).
5568 + */
5569 + closePopup() {
5570 + const attachedStore = this.attachedStore;
5571 + if (attachedStore === null) {
5572 + if (true) {
5573 + console.warn(`Base UI: ${this.componentName}Handle.close() was called while no root using this handle is mounted. The call was ignored.`);
5574 + }
5575 + return;
5576 + }
5577 + attachedStore.setOpen(false, createChangeEventDetails(reason_parts_exports.imperativeAction));
5578 + }
5579 + };
5580 +
5581 + // node_modules/@base-ui/react/utils/popups/popupStoreUtils.mjs
5582 + var React29 = __toESM(require_react(), 1);
5583 + var ReactDOM4 = __toESM(require_react_dom(), 1);
5584 +
5585 + // node_modules/@base-ui/react/floating-ui-react/hooks/useSyncedFloatingRootContext.mjs
5586 + var React28 = __toESM(require_react(), 1);
5587 +
5588 + // node_modules/@base-ui/utils/store/useStore.mjs
5589 + var React26 = __toESM(require_react(), 1);
5590 + var import_shim = __toESM(require_shim(), 1);
5591 + var import_with_selector = __toESM(require_with_selector(), 1);
5592 +
5593 + // node_modules/@base-ui/utils/fastHooks.mjs
5594 + var React25 = __toESM(require_react(), 1);
5595 + var hooks = [];
5596 + var currentInstance = void 0;
5597 + function getInstance() {
5598 + return currentInstance;
5599 + }
5600 + function register(hook) {
5601 + hooks.push(hook);
5602 + }
5603 + function fastComponent(fn) {
5604 + const FastComponent = (props, forwardedRef) => {
5605 + const instance = useRefWithInit(createInstance).current;
5606 + let result;
5607 + try {
5608 + currentInstance = instance;
5609 + for (const hook of hooks) {
5610 + hook.before(instance);
5611 + }
5612 + result = fn(props, forwardedRef);
5613 + for (const hook of hooks) {
5614 + hook.after(instance);
5615 + }
5616 + instance.didInitialize = true;
5617 + } finally {
5618 + currentInstance = void 0;
5619 + }
5620 + return result;
5621 + };
5622 + FastComponent.displayName = fn.displayName || fn.name;
5623 + return FastComponent;
5624 + }
5625 + function fastComponentRef(fn) {
5626 + return /* @__PURE__ */ React25.forwardRef(fastComponent(fn));
5627 + }
5628 + function createInstance() {
5629 + return {
5630 + didInitialize: false
5631 + };
5632 + }
5633 +
5634 + // node_modules/@base-ui/utils/store/useStore.mjs
5635 + var canUseRawUseSyncExternalStore = isReactVersionAtLeast(19);
5636 + var useStoreImplementation = canUseRawUseSyncExternalStore ? useStoreFast : useStoreLegacy;
5637 + function useStore(store2, selector, a1, a2, a3) {
5638 + return useStoreImplementation(store2, selector, a1, a2, a3);
5639 + }
5640 + function useStoreR19(store2, selector, a1, a2, a3) {
5641 + const getSelection = React26.useCallback(() => selector(store2.getSnapshot(), a1, a2, a3), [store2, selector, a1, a2, a3]);
5642 + return (0, import_shim.useSyncExternalStore)(store2.subscribe, getSelection, getSelection);
5643 + }
5644 + register({
5645 + before(instance) {
5646 + instance.syncIndex = 0;
5647 + if (!instance.didInitialize) {
5648 + instance.syncTick = 1;
5649 + instance.syncHooks = [];
5650 + instance.didChangeStore = true;
5651 + instance.getSnapshot = () => {
5652 + let didChange2 = false;
5653 + for (let i = 0; i < instance.syncHooks.length; i += 1) {
5654 + const hook = instance.syncHooks[i];
5655 + const value = hook.selector(hook.store.state, hook.a1, hook.a2, hook.a3);
5656 + if (!Object.is(hook.value, value)) {
5657 + didChange2 = true;
5658 + hook.value = value;
5659 + }
5660 + }
5661 + if (didChange2) {
5662 + instance.syncTick += 1;
5663 + }
5664 + return instance.syncTick;
5665 + };
5666 + }
5667 + },
5668 + after(instance) {
5669 + if (instance.syncHooks.length > 0) {
5670 + if (instance.didChangeStore) {
5671 + instance.didChangeStore = false;
5672 + instance.subscribe = (onStoreChange) => {
5673 + const stores = /* @__PURE__ */ new Set();
5674 + for (const hook of instance.syncHooks) {
5675 + stores.add(hook.store);
5676 + }
5677 + const unsubscribes = [];
5678 + for (const store2 of stores) {
5679 + unsubscribes.push(store2.subscribe(onStoreChange));
5680 + }
5681 + return () => {
5682 + for (const unsubscribe of unsubscribes) {
5683 + unsubscribe();
5684 + }
5685 + };
5686 + };
5687 + }
5688 + (0, import_shim.useSyncExternalStore)(instance.subscribe, instance.getSnapshot, instance.getSnapshot);
5689 + }
5690 + }
5691 + });
5692 + function useStoreFast(store2, selector, a1, a2, a3) {
5693 + const instance = getInstance();
5694 + if (!instance) {
5695 + return useStoreR19(store2, selector, a1, a2, a3);
5696 + }
5697 + const index2 = instance.syncIndex;
5698 + instance.syncIndex += 1;
5699 + let hook;
5700 + if (!instance.didInitialize) {
5701 + hook = {
5702 + store: store2,
5703 + selector,
5704 + a1,
5705 + a2,
5706 + a3,
5707 + value: selector(store2.getSnapshot(), a1, a2, a3)
5708 + };
5709 + instance.syncHooks.push(hook);
5710 + } else {
5711 + hook = instance.syncHooks[index2];
5712 + if (hook.store !== store2 || hook.selector !== selector || !Object.is(hook.a1, a1) || !Object.is(hook.a2, a2) || !Object.is(hook.a3, a3)) {
5713 + if (hook.store !== store2) {
5714 + instance.didChangeStore = true;
5715 + }
5716 + hook.store = store2;
5717 + hook.selector = selector;
5718 + hook.a1 = a1;
5719 + hook.a2 = a2;
5720 + hook.a3 = a3;
5721 + hook.value = selector(store2.getSnapshot(), a1, a2, a3);
5722 + }
5723 + }
5724 + return hook.value;
5725 + }
5726 + function useStoreLegacy(store2, selector, a1, a2, a3) {
5727 + return (0, import_with_selector.useSyncExternalStoreWithSelector)(store2.subscribe, store2.getSnapshot, store2.getSnapshot, (state) => selector(state, a1, a2, a3));
5728 + }
5729 +
5730 + // node_modules/@base-ui/utils/store/Store.mjs
5731 + var Store = class {
5732 + /**
5733 + * Creates a store with the given initial state, constructing the class it is called on.
5734 + * Calling it on a generic base class (e.g. `ReactStore.create(...)`) constructs that
5735 + * class but degrades the inferred instance type to `Store`; use `new` there instead.
5736 + */
5737 + static create(state) {
5738 + return new this(state);
5739 + }
5740 + /**
5741 + * The current state of the store.
5742 + * This property is updated immediately when the state changes as a result of calling {@link setState}, {@link update}, or {@link set}.
5743 + * To subscribe to state changes, use the {@link useState} method. The value returned by {@link useState} is updated after the component renders (similarly to React's useState).
5744 + * The values can be used directly (to avoid subscribing to the store) in effects or event handlers.
5745 + *
5746 + * Do not modify properties in state directly. Instead, use the provided methods to ensure proper state management and listener notification.
5747 + */
5748 + // Internal state to handle recursive `setState()` calls
5749 + constructor(state) {
5750 + this.state = state;
5751 + this.listeners = /* @__PURE__ */ new Set();
5752 + this.updateTick = 0;
5753 + }
5754 + /**
5755 + * Registers a listener that will be called whenever the store's state changes.
5756 + *
5757 + * @param fn The listener function to be called on state changes.
5758 + * @returns A function to unsubscribe the listener.
5759 + */
5760 + subscribe = (fn) => {
5761 + this.listeners.add(fn);
5762 + return () => {
5763 + this.listeners.delete(fn);
5764 + };
5765 + };
5766 + /**
5767 + * Returns the current state of the store.
5768 + */
5769 + getSnapshot = () => {
5770 + return this.state;
5771 + };
5772 + /**
5773 + * Updates the entire store's state and notifies all registered listeners.
5774 + *
5775 + * @param newState The new state to set for the store.
5776 + */
5777 + setState(newState) {
5778 + if (this.state === newState) {
5779 + return;
5780 + }
5781 + this.state = newState;
5782 + this.updateTick += 1;
5783 + const currentTick = this.updateTick;
5784 + for (const listener of this.listeners) {
5785 + if (currentTick !== this.updateTick) {
5786 + return;
5787 + }
5788 + listener(newState);
5789 + }
5790 + }
5791 + /**
5792 + * Merges the provided changes into the current state and notifies listeners if there are changes.
5793 + * Each value must match its state key. Pass an exact known subset rather than a broad
5794 + * `Partial<State>`, which may contain `undefined` for required state fields.
5795 + *
5796 + * @param changes An object containing the changes to apply to the current state.
5797 + */
5798 + update(changes) {
5799 + for (const key in changes) {
5800 + if (!Object.is(this.state[key], changes[key])) {
5801 + this.setState({
5802 + ...this.state,
5803 + ...changes
5804 + });
5805 + return;
5806 + }
5807 + }
5808 + }
5809 + /**
5810 + * Sets a specific key in the store's state to a new value and notifies listeners if the value has changed.
5811 + *
5812 + * @param key The key in the store's state to update.
5813 + * @param value The new value to set for the specified key.
5814 + */
5815 + set(key, value) {
5816 + if (!Object.is(this.state[key], value)) {
5817 + this.setState({
5818 + ...this.state,
5819 + [key]: value
5820 + });
5821 + }
5822 + }
5823 + /**
5824 + * Gives the state a new reference and updates all registered listeners.
5825 + */
5826 + notifyAll() {
5827 + const newState = {
5828 + ...this.state
5829 + };
5830 + this.setState(newState);
5831 + }
5832 + use(selector, a1, a2, a3) {
5833 + return useStore(this, selector, a1, a2, a3);
5834 + }
5835 + };
5836 +
5837 + // node_modules/@base-ui/utils/store/ReactStore.mjs
5838 + var React27 = __toESM(require_react(), 1);
5839 + var ReactStore = class extends Store {
5840 + /**
5841 + * Creates a new ReactStore instance.
5842 + *
5843 + * @param state Initial state of the store.
5844 + * @param context Non-reactive context values.
5845 + * @param selectors Optional selectors for use with `useState`.
5846 + */
5847 + constructor(state, context = {}, selectors3) {
5848 + super(state);
5849 + this.context = context;
5850 + this.selectors = selectors3;
5851 + }
5852 + /**
5853 + * Non-reactive values such as refs, callbacks, etc.
5854 + */
5855 + /**
5856 + * Synchronizes a single external value into the store.
5857 + *
5858 + * Note that the while the value in `state` is updated immediately, the value returned
5859 + * by `useState` is updated before the next render (similarly to React's `useState`).
5860 + */
5861 + useSyncedValue(key, value) {
5862 + React27.useDebugValue(key);
5863 + const store2 = this;
5864 + useIsoLayoutEffect(() => {
5865 + if (store2.state[key] !== value) {
5866 + store2.set(key, value);
5867 + }
5868 + }, [store2, key, value]);
5869 + }
5870 + /**
5871 + * Synchronizes a single external value into the store and
5872 + * cleans it up (sets to `undefined`) on unmount.
5873 + *
5874 + * Note that the while the value in `state` is updated immediately, the value returned
5875 + * by `useState` is updated before the next render (similarly to React's `useState`).
5876 + */
5877 + useSyncedValueWithCleanup(key, value) {
5878 + const store2 = this;
5879 + useIsoLayoutEffect(() => {
5880 + if (store2.state[key] !== value) {
5881 + store2.set(key, value);
5882 + }
5883 + return () => {
5884 + store2.set(key, void 0);
5885 + };
5886 + }, [store2, key, value]);
5887 + }
5888 + /**
5889 + * Synchronizes multiple external values into the store.
5890 + * Each value must match its state key. Pass an exact known subset rather than a broad
5891 + * `Partial<State>`, which may contain `undefined` for required state fields.
5892 + *
5893 + * Note that the while the values in `state` are updated immediately, the values returned
5894 + * by `useState` are updated before the next render (similarly to React's `useState`).
5895 + *
5896 + * @param statePart An exact subset of state fields to synchronize. Unknown keys are not accepted.
5897 + */
5898 + useSyncedValues(statePart) {
5899 + const store2 = this;
5900 + if (true) {
5901 + React27.useDebugValue(statePart, (p) => Object.keys(p));
5902 + const keys = React27.useRef(Object.keys(statePart)).current;
5903 + const nextKeys = Object.keys(statePart);
5904 + if (keys.length !== nextKeys.length || keys.some((key, index2) => key !== nextKeys[index2])) {
5905 + console.error("ReactStore.useSyncedValues expects the same prop keys on every render. Keys should be stable.");
5906 + }
5907 + }
5908 + const dependencies = Object.values(statePart);
5909 + useIsoLayoutEffect(() => {
5910 + store2.update(statePart);
5911 + }, [store2, ...dependencies]);
5912 + }
5913 + /**
5914 + * Registers a controllable prop pair (`controlled`, `defaultValue`) for a specific key. If `controlled`
5915 + * is non-undefined, the store's state at `key` is updated to match `controlled`.
5916 + */
5917 + useControlledProp(key, controlled) {
5918 + React27.useDebugValue(key);
5919 + const store2 = this;
5920 + const isControlled = controlled !== void 0;
5921 + useIsoLayoutEffect(() => {
5922 + if (isControlled && !Object.is(store2.state[key], controlled)) {
5923 + store2.setState({
5924 + ...store2.state,
5925 + [key]: controlled
5926 + });
5927 + }
5928 + }, [store2, key, controlled, isControlled]);
5929 + if (true) {
5930 + const cache = this.controlledValues ??= /* @__PURE__ */ new Map();
5931 + if (!cache.has(key)) {
5932 + cache.set(key, isControlled);
5933 + }
5934 + const previouslyControlled = cache.get(key);
5935 + if (previouslyControlled !== void 0 && previouslyControlled !== isControlled) {
5936 + console.error(`A component is changing the ${isControlled ? "" : "un"}controlled state of ${key.toString()} to be ${isControlled ? "un" : ""}controlled. Elements should not switch from uncontrolled to controlled (or vice versa).`);
5937 + }
5938 + }
5939 + }
5940 + /** Gets the current value from the store using a selector with the provided key.
5941 + *
5942 + * @param key Key of the selector to use.
5943 + */
5944 + select(key, a1, a2, a3) {
5945 + const selector = this.selectors[key];
5946 + return selector(this.state, a1, a2, a3);
5947 + }
5948 + /**
5949 + * Returns a value from the store's state using a selector function.
5950 + * Used to subscribe to specific parts of the state.
5951 + * This methods causes a rerender whenever the selected state changes.
5952 + *
5953 + * @param key Key of the selector to use.
5954 + */
5955 + useState(key, a1, a2, a3) {
5956 + React27.useDebugValue(key);
5957 + return useStore(this, this.selectors[key], a1, a2, a3);
5958 + }
5959 + /**
5960 + * Wraps a function with `useStableCallback` to ensure it has a stable reference
5961 + * and assigns it to the context.
5962 + *
5963 + * @param key Key of the event callback. Must be a function in the context.
5964 + * @param fn Function to assign.
5965 + */
5966 + useContextCallback(key, fn) {
5967 + React27.useDebugValue(key);
5968 + const stableFunction = useStableCallback(fn ?? NOOP);
5969 + this.context[key] = stableFunction;
5970 + }
5971 + /**
5972 + * Returns a stable setter function for a specific key in the store's state.
5973 + * It's commonly used to pass as a ref callback to React elements.
5974 + *
5975 + * @param key Key of the state to set.
5976 + */
5977 + useStateSetter(key) {
5978 + const ref = React27.useRef(void 0);
5979 + if (ref.current === void 0) {
5980 + ref.current = (value) => {
5981 + this.set(key, value);
5982 + };
5983 + }
5984 + return ref.current;
5985 + }
5986 + /**
5987 + * Observes changes derived from the store's selectors and calls the listener when the selected value changes.
5988 + *
5989 + * @param key Key of the selector to observe.
5990 + * @param listener Listener function called when the selector result changes.
5991 + */
5992 + observe(selector, listener) {
5993 + let selectFn;
5994 + if (typeof selector === "function") {
5995 + selectFn = selector;
5996 + } else {
5997 + selectFn = this.selectors[selector];
5998 + }
5999 + let prevValue = selectFn(this.state);
6000 + listener(prevValue, prevValue, this);
6001 + return this.subscribe((nextState) => {
6002 + const nextValue = selectFn(nextState);
6003 + if (!Object.is(prevValue, nextValue)) {
6004 + const oldValue = prevValue;
6005 + prevValue = nextValue;
6006 + listener(nextValue, oldValue, this);
6007 + }
6008 + });
6009 + }
6010 + };
6011 +
6012 + // node_modules/@base-ui/react/floating-ui-react/components/FloatingRootStore.mjs
6013 + var selectors = {
6014 + open: (state) => state.open,
6015 + transitionStatus: (state) => state.transitionStatus,
6016 + domReferenceElement: (state) => state.domReferenceElement,
6017 + referenceElement: (state) => state.positionReference ?? state.referenceElement,
6018 + floatingElement: (state) => state.floatingElement,
6019 + floatingId: (state) => state.floatingId
6020 + };
6021 + var FloatingRootStore = class extends ReactStore {
6022 + constructor(options) {
6023 + const {
6024 + syncOnly,
6025 + nested,
6026 + onOpenChange,
6027 + triggerElements,
6028 + ...initialState
6029 + } = options;
6030 + super({
6031 + ...initialState,
6032 + positionReference: initialState.referenceElement,
6033 + domReferenceElement: initialState.referenceElement
6034 + }, {
6035 + onOpenChange,
6036 + dataRef: {
6037 + current: {}
6038 + },
6039 + events: createEventEmitter(),
6040 + nested,
6041 + triggerElements
6042 + }, selectors);
6043 + this.syncOnly = syncOnly;
6044 + }
6045 + /**
6046 + * Syncs the event used by hover logic to distinguish hover-open from click-like interaction.
6047 + */
6048 + syncOpenEvent = (newOpen, event) => {
6049 + if (!newOpen || !this.state.open || // Prevent a pending hover-open from overwriting a click-open event, while allowing
6050 + // click events to upgrade a hover-open.
6051 + event != null && isClickLikeEvent(event)) {
6052 + this.context.dataRef.current.openEvent = newOpen ? event : void 0;
6053 + }
6054 + };
6055 + /**
6056 + * Runs the root-owned side effects for an open state change.
6057 + */
6058 + dispatchOpenChange = (newOpen, eventDetails) => {
6059 + this.syncOpenEvent(newOpen, eventDetails.event);
6060 + const details = {
6061 + open: newOpen,
6062 + reason: eventDetails.reason,
6063 + nativeEvent: eventDetails.event,
6064 + nested: this.context.nested,
6065 + triggerElement: eventDetails.trigger
6066 + };
6067 + this.context.events.emit("openchange", details);
6068 + };
6069 + /**
6070 + * Emits the `openchange` event through the internal event emitter and calls the `onOpenChange` handler with the provided arguments.
6071 + *
6072 + * @param newOpen The new open state.
6073 + * @param eventDetails Details about the event that triggered the open state change.
6074 + */
6075 + setOpen = (newOpen, eventDetails) => {
6076 + if (this.syncOnly) {
6077 + this.context.onOpenChange?.(newOpen, eventDetails);
6078 + return;
6079 + }
6080 + this.dispatchOpenChange(newOpen, eventDetails);
6081 + this.context.onOpenChange?.(newOpen, eventDetails);
6082 + };
6083 + };
6084 +
6085 + // node_modules/@base-ui/react/floating-ui-react/hooks/useSyncedFloatingRootContext.mjs
6086 + function useSyncedFloatingRootContext(options) {
6087 + const {
6088 + popupStore,
6089 + treatPopupAsFloatingElement = false,
6090 + floatingRootContext: floatingRootContextProp,
6091 + floatingId,
6092 + nested,
6093 + onOpenChange
6094 + } = options;
6095 + const open3 = popupStore.useState("open");
6096 + const referenceElement = popupStore.useState("activeTriggerElement");
6097 + const floatingElement = popupStore.useState(treatPopupAsFloatingElement ? "popupElement" : "positionerElement");
6098 + const triggerElements = popupStore.context.triggerElements;
6099 + const handleOpenChange = onOpenChange;
6100 + const internalStoreRef = React28.useRef(null);
6101 + if (floatingRootContextProp === void 0 && internalStoreRef.current === null) {
6102 + internalStoreRef.current = new FloatingRootStore({
6103 + open: open3,
6104 + transitionStatus: void 0,
6105 + referenceElement,
6106 + floatingElement,
6107 + triggerElements,
6108 + onOpenChange: handleOpenChange,
6109 + floatingId,
6110 + syncOnly: true,
6111 + nested
6112 + });
6113 + }
6114 + const store2 = floatingRootContextProp ?? internalStoreRef.current;
6115 + popupStore.useSyncedValue("floatingId", floatingId);
6116 + useIsoLayoutEffect(() => {
6117 + const valuesToSync = {
6118 + open: open3,
6119 + floatingId,
6120 + referenceElement,
6121 + floatingElement
6122 + };
6123 + if (isElement(referenceElement)) {
6124 + valuesToSync.domReferenceElement = referenceElement;
6125 + }
6126 + if (store2.state.positionReference === store2.state.referenceElement) {
6127 + valuesToSync.positionReference = referenceElement;
6128 + }
6129 + store2.update(valuesToSync);
6130 + }, [open3, floatingId, referenceElement, floatingElement, store2]);
6131 + store2.context.onOpenChange = handleOpenChange;
6132 + store2.context.nested = nested;
6133 + return store2;
6134 + }
6135 +
6136 + // node_modules/@base-ui/react/utils/popups/popupStoreUtils.mjs
6137 + var FOCUSABLE_POPUP_PROPS = {
6138 + tabIndex: -1,
6139 + [FOCUSABLE_ATTRIBUTE]: ""
6140 + };
6141 + function usePopupRootStore(createStore, treatPopupAsFloatingElement = false) {
6142 + const floatingId = useId();
6143 + const nested = useFloatingParentNodeId() != null;
6144 + const store2 = useRefWithInit(() => createStore(floatingId, nested)).current;
6145 + useSyncedFloatingRootContext({
6146 + popupStore: store2,
6147 + treatPopupAsFloatingElement,
6148 + floatingRootContext: store2.state.floatingRootContext,
6149 + floatingId,
6150 + nested,
6151 + onOpenChange: store2.setOpen
6152 + });
6153 + return store2;
6154 + }
6155 + function PopupHandleAttachment({
6156 + handle,
6157 + store: store2
6158 + }) {
6159 + useIsoLayoutEffect(() => {
6160 + return handle.attachStore(store2);
6161 + }, [handle, store2]);
6162 + return null;
6163 + }
6164 + function syncTriggerCount(store2) {
6165 + const triggerCount = store2.context.triggerElements.size;
6166 + if (store2.select("open") && store2.state.triggerCount !== triggerCount) {
6167 + store2.set("triggerCount", triggerCount);
6168 + }
6169 + }
6170 + function useTriggerRegistration(id, store2) {
6171 + const registrationRef = React29.useRef(null);
6172 + return useStableCallback((element) => {
6173 + const registration = registrationRef.current;
6174 + if (registration !== null) {
6175 + if (registration.element === element && registration.store === store2 && registration.id === id) {
6176 + return;
6177 + }
6178 + registrationRef.current = null;
6179 + const registeredStore = registration.store;
6180 + if (registeredStore.context.triggerElements.getById(registration.id) === registration.element) {
6181 + registeredStore.context.triggerElements.delete(registration.id);
6182 + syncTriggerCount(registeredStore);
6183 + }
6184 + }
6185 + if (element !== null && id !== void 0) {
6186 + registrationRef.current = {
6187 + store: store2,
6188 + id,
6189 + element
6190 + };
6191 + store2.context.triggerElements.add(id, element);
6192 + syncTriggerCount(store2);
6193 + }
6194 + });
6195 + }
6196 + function createPopupOpenState(state, open3, trigger, preventUnmountOnClose = false) {
6197 + let preventUnmountingOnClose = state.preventUnmountingOnClose;
6198 + if (open3) {
6199 + preventUnmountingOnClose = false;
6200 + } else if (preventUnmountOnClose) {
6201 + preventUnmountingOnClose = true;
6202 + }
6203 + const triggerId = trigger?.id ?? null;
6204 + let activeTriggerId = state.activeTriggerId;
6205 + let activeTriggerElement = state.activeTriggerElement;
6206 + if (triggerId || open3) {
6207 + activeTriggerId = triggerId;
6208 + activeTriggerElement = trigger ?? null;
6209 + }
6210 + return {
6211 + open: open3,
6212 + preventUnmountingOnClose,
6213 + activeTriggerId,
6214 + activeTriggerElement
6215 + };
6216 + }
6217 + function attachPreventUnmountOnClose(eventDetails) {
6218 + let preventUnmountOnClose = false;
6219 + eventDetails.preventUnmountOnClose = () => {
6220 + preventUnmountOnClose = true;
6221 + };
6222 + return () => preventUnmountOnClose;
6223 + }
6224 + function applyPopupOpenChange(store2, nextOpen, eventDetails, options = {}) {
6225 + const reason = eventDetails.reason;
6226 + const isHover = reason === reason_parts_exports.triggerHover;
6227 + const isFocusOpen = nextOpen && reason === reason_parts_exports.triggerFocus;
6228 + const isDismissClose = !nextOpen && (reason === reason_parts_exports.triggerPress || reason === reason_parts_exports.escapeKey);
6229 + const shouldPreventUnmountOnClose = attachPreventUnmountOnClose(eventDetails);
6230 + store2.context.onOpenChange?.(nextOpen, eventDetails);
6231 + if (eventDetails.isCanceled) {
6232 + return;
6233 + }
6234 + options.onBeforeDispatch?.();
6235 + store2.state.floatingRootContext.dispatchOpenChange(nextOpen, eventDetails);
6236 + const changeState = () => {
6237 + const popupOpenState = createPopupOpenState(store2.state, nextOpen, eventDetails.trigger, shouldPreventUnmountOnClose());
6238 + const updatedState = {
6239 + ...options.extraState,
6240 + ...popupOpenState
6241 + };
6242 + if (isFocusOpen) {
6243 + updatedState.instantType = "focus";
6244 + } else if (isDismissClose) {
6245 + updatedState.instantType = "dismiss";
6246 + } else if (isHover) {
6247 + updatedState.instantType = void 0;
6248 + }
6249 + store2.update(updatedState);
6250 + };
6251 + if (isHover) {
6252 + ReactDOM4.flushSync(changeState);
6253 + } else {
6254 + changeState();
6255 + }
6256 + }
6257 + function useTriggerDataForwarding(triggerId, triggerElementRef, store2, stateUpdates) {
6258 + const isMountedByThisTrigger = store2.useState("isMountedByTrigger", triggerId);
6259 + const baseRegisterTrigger = useTriggerRegistration(triggerId, store2);
6260 + const applyTriggerData = useStableCallback((element) => {
6261 + const open3 = store2.select("open");
6262 + const activeTriggerId = store2.select("activeTriggerId");
6263 + if (activeTriggerId === triggerId) {
6264 + const changes = {
6265 + activeTriggerElement: element,
6266 + ...open3 ? stateUpdates : null
6267 + };
6268 + store2.update(changes);
6269 + return;
6270 + }
6271 + if (activeTriggerId == null && open3) {
6272 + const changes = {
6273 + activeTriggerId: triggerId ?? null,
6274 + activeTriggerElement: element,
6275 + ...stateUpdates
6276 + };
6277 + store2.update(changes);
6278 + }
6279 + });
6280 + const registerTrigger = useStableCallback((element) => {
6281 + baseRegisterTrigger(element);
6282 + if (element) {
6283 + applyTriggerData(element);
6284 + }
6285 + });
6286 + useIsoLayoutEffect(() => {
6287 + registerTrigger(triggerElementRef.current);
6288 + return () => registerTrigger(null);
6289 + }, [registerTrigger, triggerElementRef, store2, triggerId]);
6290 + useIsoLayoutEffect(() => {
6291 + if (isMountedByThisTrigger) {
6292 + const changes = {
6293 + activeTriggerElement: triggerElementRef.current,
6294 + ...stateUpdates
6295 + };
6296 + store2.update(changes);
6297 + }
6298 + }, [isMountedByThisTrigger, store2, triggerElementRef, ...Object.values(stateUpdates)]);
6299 + return {
6300 + registerTrigger,
6301 + isMountedByThisTrigger
6302 + };
6303 + }
6304 + function useImplicitActiveTrigger(store2, options = {}) {
6305 + const {
6306 + closeOnActiveTriggerUnmount = false
6307 + } = options;
6308 + const resolvedActiveTriggerIdRef = React29.useRef(null);
6309 + const open3 = store2.useState("open");
6310 + const reactiveTriggerCount = store2.useState("triggerCount");
6311 + const activeTriggerId = store2.useState("activeTriggerId");
6312 + const reactiveActiveTriggerElement = store2.useState("activeTriggerElement");
6313 + useIsoLayoutEffect(() => {
6314 + if (!open3) {
6315 + resolvedActiveTriggerIdRef.current = null;
6316 + if (store2.state.triggerCount !== 0) {
6317 + store2.set("triggerCount", 0);
6318 + }
6319 + return;
6320 + }
6321 + const triggerCount = store2.context.triggerElements.size;
6322 + const stateUpdates = {};
6323 + if (store2.state.triggerCount !== triggerCount) {
6324 + stateUpdates.triggerCount = triggerCount;
6325 + }
6326 + const currentActiveTriggerId = store2.select("activeTriggerId");
6327 + let lostActiveTriggerId = null;
6328 + if (currentActiveTriggerId) {
6329 + const activeTriggerElement = store2.context.triggerElements.getById(currentActiveTriggerId);
6330 + if (!activeTriggerElement) {
6331 + for (const [triggerId, triggerElement] of store2.context.triggerElements.entries()) {
6332 + if (triggerElement === store2.state.activeTriggerElement) {
6333 + stateUpdates.activeTriggerId = triggerId;
6334 + stateUpdates.activeTriggerElement = triggerElement;
6335 + resolvedActiveTriggerIdRef.current = triggerId;
6336 + break;
6337 + }
6338 + }
6339 + if (stateUpdates.activeTriggerId === void 0) {
6340 + if (resolvedActiveTriggerIdRef.current === currentActiveTriggerId) {
6341 + lostActiveTriggerId = currentActiveTriggerId;
6342 + } else {
6343 + resolvedActiveTriggerIdRef.current = null;
6344 + }
6345 + }
6346 + } else {
6347 + resolvedActiveTriggerIdRef.current = currentActiveTriggerId;
6348 + if (activeTriggerElement !== store2.state.activeTriggerElement) {
6349 + stateUpdates.activeTriggerElement = activeTriggerElement;
6350 + }
6351 + }
6352 + } else {
6353 + resolvedActiveTriggerIdRef.current = null;
6354 + }
6355 + if (!lostActiveTriggerId && !currentActiveTriggerId && triggerCount === 1) {
6356 + const iteratorResult = store2.context.triggerElements.entries().next();
6357 + if (!iteratorResult.done) {
6358 + const [implicitTriggerId, implicitTriggerElement] = iteratorResult.value;
6359 + stateUpdates.activeTriggerId = implicitTriggerId;
6360 + stateUpdates.activeTriggerElement = implicitTriggerElement;
6361 + resolvedActiveTriggerIdRef.current = implicitTriggerId;
6362 + }
6363 + }
6364 + if (stateUpdates.triggerCount !== void 0 || stateUpdates.activeTriggerId !== void 0 || stateUpdates.activeTriggerElement !== void 0) {
6365 + store2.update(stateUpdates);
6366 + }
6367 + if (lostActiveTriggerId) {
6368 + if (closeOnActiveTriggerUnmount) {
6369 + queueMicrotask(() => {
6370 + if (store2.select("open") && store2.select("activeTriggerId") === lostActiveTriggerId && !store2.context.triggerElements.getById(lostActiveTriggerId)) {
6371 + const eventDetails = createChangeEventDetails(reason_parts_exports.none);
6372 + store2.setOpen(false, eventDetails);
6373 + if (!eventDetails.isCanceled) {
6374 + store2.update({
6375 + activeTriggerId: null,
6376 + activeTriggerElement: null
6377 + });
6378 + }
6379 + }
6380 + });
6381 + }
6382 + }
6383 + }, [open3, store2, reactiveTriggerCount, activeTriggerId, reactiveActiveTriggerElement, closeOnActiveTriggerUnmount]);
6384 + }
6385 + function useOpenStateTransitions(open3, store2, onUnmount, animateInitialOpen) {
6386 + const {
6387 + mounted,
6388 + setMounted,
6389 + transitionStatus
6390 + } = useTransitionStatus(open3, false, false, animateInitialOpen);
6391 + const preventUnmountingOnClose = store2.useState("preventUnmountingOnClose");
6392 + const syncedPreventUnmountingOnClose = open3 ? false : preventUnmountingOnClose;
6393 + store2.useSyncedValues({
6394 + mounted,
6395 + transitionStatus,
6396 + preventUnmountingOnClose: syncedPreventUnmountingOnClose
6397 + });
6398 + const forceUnmount = useStableCallback(() => {
6399 + setMounted(false);
6400 + store2.update({
6401 + activeTriggerId: null,
6402 + activeTriggerElement: null,
6403 + mounted: false,
6404 + preventUnmountingOnClose: false
6405 + });
6406 + onUnmount?.();
6407 + store2.context.onOpenChangeComplete?.(false);
6408 + });
6409 + useOpenChangeComplete({
6410 + enabled: mounted && !open3 && !syncedPreventUnmountingOnClose,
6411 + open: open3,
6412 + ref: store2.context.popupRef,
6413 + onComplete() {
6414 + if (!open3) {
6415 + forceUnmount();
6416 + }
6417 + }
6418 + });
6419 + return {
6420 + forceUnmount,
6421 + transitionStatus
6422 + };
6423 + }
6424 + function usePopupInteractionProps(store2, statePart) {
6425 + store2.useSyncedValues(statePart);
6426 + useIsoLayoutEffect(() => () => {
6427 + store2.update({
6428 + activeTriggerProps: EMPTY_OBJECT,
6429 + inactiveTriggerProps: EMPTY_OBJECT,
6430 + popupProps: EMPTY_OBJECT
6431 + });
6432 + }, [store2]);
6433 + }
6434 +
6435 + // node_modules/@base-ui/react/utils/popups/popupTriggerMap.mjs
6436 + var devElementIdsByMap;
6437 + function getDevElementIds(map) {
6438 + devElementIdsByMap ??= /* @__PURE__ */ new WeakMap();
6439 + let elementIds = devElementIdsByMap.get(map);
6440 + if (!elementIds) {
6441 + elementIds = /* @__PURE__ */ new WeakMap();
6442 + devElementIdsByMap.set(map, elementIds);
6443 + }
6444 + return elementIds;
6445 + }
6446 + var PopupTriggerMap = class {
6447 + constructor() {
6448 + this.idMap = /* @__PURE__ */ new Map();
6449 + }
6450 + /**
6451 + * Adds a trigger element with the given ID.
6452 + *
6453 + * Note: The provided element is assumed to not be registered under multiple IDs.
6454 + */
6455 + add(id, element) {
6456 + if (true) {
6457 + const elementIds = getDevElementIds(this);
6458 + const existingId = elementIds.get(element);
6459 + if (existingId !== void 0 && existingId !== id) {
6460 + throw new Error("Base UI: A trigger element cannot be registered under multiple IDs in PopupTriggerMap.");
6461 + }
6462 + const previousElement = this.idMap.get(id);
6463 + if (previousElement !== void 0 && previousElement !== element) {
6464 + elementIds.delete(previousElement);
6465 + }
6466 + elementIds.set(element, id);
6467 + }
6468 + this.idMap.set(id, element);
6469 + }
6470 + /**
6471 + * Removes the trigger element with the given ID.
6472 + */
6473 + delete(id) {
6474 + if (true) {
6475 + const element = this.idMap.get(id);
6476 + if (element !== void 0) {
6477 + devElementIdsByMap?.get(this)?.delete(element);
6478 + }
6479 + }
6480 + this.idMap.delete(id);
6481 + }
6482 + /**
6483 + * Whether the given element is registered as a trigger.
6484 + */
6485 + hasElement(element) {
6486 + for (const registered of this.idMap.values()) {
6487 + if (registered === element) {
6488 + return true;
6489 + }
6490 + }
6491 + return false;
6492 + }
6493 + /**
6494 + * Whether there is a registered trigger element matching the given predicate.
6495 + */
6496 + hasMatchingElement(predicate) {
6497 + for (const element of this.idMap.values()) {
6498 + if (predicate(element)) {
6499 + return true;
6500 + }
6501 + }
6502 + return false;
6503 + }
6504 + /**
6505 + * Returns the trigger element associated with the given ID, or undefined if no such element exists.
6506 + */
6507 + getById(id) {
6508 + return this.idMap.get(id);
6509 + }
6510 + /**
6511 + * Returns an iterable of all registered trigger entries, where each entry is a tuple of [id, element].
6512 + */
6513 + entries() {
6514 + return this.idMap.entries();
6515 + }
6516 + /**
6517 + * Returns an iterable of all registered trigger elements.
6518 + */
6519 + elements() {
6520 + return this.idMap.values();
6521 + }
6522 + /**
6523 + * Returns the number of registered trigger elements.
6524 + */
6525 + get size() {
6526 + return this.idMap.size;
6527 + }
6528 + };
6529 +
6530 + // node_modules/@base-ui/react/utils/popups/store.mjs
6531 + function createInitialPopupStoreState(triggerElements, floatingId, nested = false) {
6532 + return {
6533 + open: false,
6534 + openProp: void 0,
6535 + mounted: false,
6536 + transitionStatus: void 0,
6537 + floatingRootContext: new FloatingRootStore({
6538 + open: false,
6539 + transitionStatus: void 0,
6540 + floatingElement: null,
6541 + referenceElement: null,
6542 + triggerElements,
6543 + floatingId,
6544 + syncOnly: true,
6545 + nested,
6546 + onOpenChange: void 0
6547 + }),
6548 + floatingId,
6549 + triggerCount: 0,
6550 + preventUnmountingOnClose: false,
6551 + payload: void 0,
6552 + activeTriggerId: null,
6553 + activeTriggerElement: null,
6554 + triggerIdProp: void 0,
6555 + popupElement: null,
6556 + positionerElement: null,
6557 + activeTriggerProps: EMPTY_OBJECT,
6558 + inactiveTriggerProps: EMPTY_OBJECT,
6559 + popupProps: EMPTY_OBJECT
6560 + };
6561 + }
6562 + var activeTriggerIdSelector = (state) => state.triggerIdProp ?? state.activeTriggerId;
6563 + var openSelector = (state) => state.openProp ?? state.open;
6564 + var popupIdSelector = (state) => {
6565 + const popupId = state.popupElement?.id ?? state.floatingId;
6566 + return popupId || void 0;
6567 + };
6568 + function triggerOwnsOpenPopup(state, triggerId) {
6569 + return triggerId !== void 0 && openSelector(state) && activeTriggerIdSelector(state) === triggerId;
6570 + }
6571 + function triggerOwnsOpenPopupOrIsOnlyTrigger(state, triggerId) {
6572 + if (triggerOwnsOpenPopup(state, triggerId)) {
6573 + return true;
6574 + }
6575 + return triggerId !== void 0 && openSelector(state) && activeTriggerIdSelector(state) == null && state.triggerCount === 1;
6576 + }
6577 + var popupStoreSelectors = {
6578 + open: openSelector,
6579 + mounted: (state) => state.mounted,
6580 + transitionStatus: (state) => state.transitionStatus,
6581 + floatingRootContext: (state) => state.floatingRootContext,
6582 + triggerCount: (state) => state.triggerCount,
6583 + preventUnmountingOnClose: (state) => state.preventUnmountingOnClose,
6584 + payload: (state) => state.payload,
6585 + activeTriggerId: activeTriggerIdSelector,
6586 + activeTriggerElement: (state) => state.mounted ? state.activeTriggerElement : null,
6587 + popupId: popupIdSelector,
6588 + /**
6589 + * Whether the trigger with the given ID was used to open the popup.
6590 + */
6591 + isTriggerActive: (state, triggerId) => triggerId !== void 0 && activeTriggerIdSelector(state) === triggerId,
6592 + /**
6593 + * Whether the popup is open and was activated by a trigger with the given ID.
6594 + */
6595 + isOpenedByTrigger: (state, triggerId) => triggerOwnsOpenPopup(state, triggerId),
6596 + /**
6597 + * Whether the popup is mounted and was activated by a trigger with the given ID.
6598 + */
6599 + isMountedByTrigger: (state, triggerId) => triggerId !== void 0 && activeTriggerIdSelector(state) === triggerId && state.mounted,
6600 + triggerProps: (state, isActive) => isActive ? state.activeTriggerProps : state.inactiveTriggerProps,
6601 + /**
6602 + * Popup id for the trigger that currently owns the open popup.
6603 + */
6604 + triggerPopupId: (state, triggerId) => triggerOwnsOpenPopupOrIsOnlyTrigger(state, triggerId) ? popupIdSelector(state) : void 0,
6605 + popupProps: (state) => state.popupProps,
6606 + popupElement: (state) => state.popupElement,
6607 + positionerElement: (state) => state.positionerElement
6608 + };
6609 +
6610 + // node_modules/@base-ui/react/utils/popups/usePopupHandleStore.mjs
6611 + var React30 = __toESM(require_react(), 1);
6612 + var import_shim2 = __toESM(require_shim(), 1);
6613 + function usePopupHandleStore(handle) {
6614 + const subscribe = React30.useCallback((listener) => {
6615 + if (handle === void 0) {
6616 + return NOOP;
6617 + }
6618 + return handle.subscribeStore(listener);
6619 + }, [handle]);
6620 + const getSnapshot = React30.useCallback(() => {
6621 + return handle === void 0 ? void 0 : handle.store;
6622 + }, [handle]);
6623 + return (0, import_shim2.useSyncExternalStore)(subscribe, getSnapshot, () => handle?.serverStore);
6624 + }
6625 +
6626 + // node_modules/@base-ui/react/floating-ui-react/hooks/useFloating.mjs
6627 + function useBaseUIFloating(options) {
6628 + return useFloatingWithStore(options, options.rootContext);
6629 + }
6630 + function useFloatingWithStore(options, store2) {
6631 + const {
6632 + nodeId,
6633 + externalTree
6634 + } = options;
6635 + const referenceElement = store2.useState("referenceElement");
6636 + const floatingElement = store2.useState("floatingElement");
6637 + const domReferenceElement = store2.useState("domReferenceElement");
6638 + const open3 = store2.useState("open");
6639 + const floatingId = store2.useState("floatingId");
6640 + const [positionReference, setPositionReferenceRaw] = React31.useState(null);
6641 + const [localDomReference, setLocalDomReference] = React31.useState(void 0);
6642 + const [localFloatingElement, setLocalFloatingElement] = React31.useState(void 0);
6643 + const domReferenceRef = React31.useRef(null);
6644 + const tree = useFloatingTree(externalTree);
6645 + const storeElements = React31.useMemo(() => ({
6646 + reference: referenceElement,
6647 + floating: floatingElement,
6648 + domReference: domReferenceElement
6649 + }), [referenceElement, floatingElement, domReferenceElement]);
6650 + const position = useFloating({
6651 + ...options,
6652 + elements: {
6653 + ...storeElements,
6654 + ...positionReference && {
6655 + reference: positionReference
6656 + }
6657 + }
6658 + });
6659 + const localDomReferenceElement = isElement(localDomReference) ? localDomReference : null;
6660 + const syncedFloatingElement = localFloatingElement === void 0 ? store2.state.floatingElement : localFloatingElement;
6661 + store2.useSyncedValue("referenceElement", localDomReference ?? null);
6662 + store2.useSyncedValue("domReferenceElement", localDomReference === void 0 ? domReferenceElement : localDomReferenceElement);
6663 + store2.useSyncedValue("floatingElement", syncedFloatingElement);
6664 + const setPositionReference = React31.useCallback((node) => {
6665 + const computedPositionReference = isElement(node) ? {
6666 + getBoundingClientRect: () => node.getBoundingClientRect(),
6667 + getClientRects: () => node.getClientRects(),
6668 + contextElement: node
6669 + } : node;
6670 + setPositionReferenceRaw(computedPositionReference);
6671 + position.refs.setReference(computedPositionReference);
6672 + }, [position.refs]);
6673 + const setReference = React31.useCallback((node) => {
6674 + if (isElement(node) || node === null) {
6675 + domReferenceRef.current = node;
6676 + setLocalDomReference(node);
6677 + }
6678 + if (isElement(position.refs.reference.current) || position.refs.reference.current === null || // Don't allow setting virtual elements using the old technique back to
6679 + // `null` to support `positionReference` + an unstable `reference`
6680 + // callback ref.
6681 + node !== null && !isElement(node)) {
6682 + position.refs.setReference(node);
6683 + }
6684 + }, [position.refs, setLocalDomReference]);
6685 + const setFloating = React31.useCallback((node) => {
6686 + setLocalFloatingElement(node);
6687 + position.refs.setFloating(node);
6688 + }, [position.refs]);
6689 + const refs = React31.useMemo(() => ({
6690 + ...position.refs,
6691 + setReference,
6692 + setFloating,
6693 + setPositionReference,
6694 + domReference: domReferenceRef
6695 + }), [position.refs, setReference, setFloating, setPositionReference]);
6696 + const elements = React31.useMemo(() => ({
6697 + ...position.elements,
6698 + domReference: domReferenceElement
6699 + }), [position.elements, domReferenceElement]);
6700 + const context = React31.useMemo(() => ({
6701 + ...position,
6702 + dataRef: store2.context.dataRef,
6703 + open: open3,
6704 + onOpenChange: store2.setOpen,
6705 + events: store2.context.events,
6706 + floatingId,
6707 + refs,
6708 + elements,
6709 + nodeId,
6710 + rootStore: store2
6711 + }), [position, refs, elements, nodeId, store2, open3, floatingId]);
6712 + useIsoLayoutEffect(() => {
6713 + if (domReferenceElement) {
6714 + domReferenceRef.current = domReferenceElement;
6715 + }
6716 + }, [domReferenceElement]);
6717 + useIsoLayoutEffect(() => {
6718 + store2.context.dataRef.current.floatingContext = context;
6719 + const node = tree?.nodesRef.current.find((n) => n.id === nodeId);
6720 + if (node) {
6721 + node.context = context;
6722 + }
6723 + });
6724 + return React31.useMemo(() => ({
6725 + ...position,
6726 + context,
6727 + refs,
6728 + elements,
6729 + rootStore: store2
6730 + }), [position, refs, elements, context, store2]);
6731 + }
6732 +
6733 + // node_modules/@base-ui/react/floating-ui-react/hooks/useFocus.mjs
6734 + var React32 = __toESM(require_react(), 1);
6735 + var isMacSafari = parts_exports.os.mac && parts_exports.engine.webkit;
6736 + function useFocus(context, props = {}) {
6737 + const {
6738 + enabled = true,
6739 + delay
6740 + } = props;
6741 + const store2 = "rootStore" in context ? context.rootStore : context;
6742 + const {
6743 + events,
6744 + dataRef
6745 + } = store2.context;
6746 + const blockFocusRef = React32.useRef(false);
6747 + const blockedReferenceRef = React32.useRef(null);
6748 + const keyboardModalityRef = React32.useRef(true);
6749 + const timeout = useTimeout();
6750 + React32.useEffect(() => {
6751 + const domReference = store2.select("domReferenceElement");
6752 + if (!enabled) {
6753 + return void 0;
6754 + }
6755 + const win = getWindow(domReference);
6756 + function onBlur() {
6757 + const currentDomReference = store2.select("domReferenceElement");
6758 + if (!store2.select("open") && isHTMLElement(currentDomReference) && currentDomReference === activeElement(ownerDocument(currentDomReference))) {
6759 + blockFocusRef.current = true;
6760 + blockedReferenceRef.current = currentDomReference;
6761 + }
6762 + }
6763 + function onKeyDown() {
6764 + keyboardModalityRef.current = true;
6765 + }
6766 + function onPointerDown() {
6767 + keyboardModalityRef.current = false;
6768 + }
6769 + return mergeCleanups(addEventListener(win, "blur", onBlur), isMacSafari && addEventListener(win, "keydown", onKeyDown, true), isMacSafari && addEventListener(win, "pointerdown", onPointerDown, true));
6770 + }, [store2, enabled]);
6771 + React32.useEffect(() => {
6772 + if (!enabled) {
6773 + return void 0;
6774 + }
6775 + function onOpenChangeLocal(details) {
6776 + if (details.reason === reason_parts_exports.triggerPress || details.reason === reason_parts_exports.escapeKey) {
6777 + const referenceElement = store2.select("domReferenceElement");
6778 + if (isElement(referenceElement)) {
6779 + blockedReferenceRef.current = referenceElement;
6780 + blockFocusRef.current = true;
6781 + }
6782 + }
6783 + }
6784 + events.on("openchange", onOpenChangeLocal);
6785 + return () => {
6786 + events.off("openchange", onOpenChangeLocal);
6787 + };
6788 + }, [events, enabled, store2]);
6789 + const reference = React32.useMemo(() => {
6790 + function resetBlockedFocus() {
6791 + blockFocusRef.current = false;
6792 + blockedReferenceRef.current = null;
6793 + }
6794 + return {
6795 + onMouseLeave() {
6796 + resetBlockedFocus();
6797 + },
6798 + onFocus(event) {
6799 + const focusTarget = event.currentTarget;
6800 + if (blockFocusRef.current) {
6801 + if (blockedReferenceRef.current === focusTarget) {
6802 + return;
6803 + }
6804 + resetBlockedFocus();
6805 + }
6806 + const target = getTarget(event.nativeEvent);
6807 + if (isElement(target)) {
6808 + if (isMacSafari && !event.relatedTarget) {
6809 + if (!keyboardModalityRef.current && !isTypeableElement(target)) {
6810 + return;
6811 + }
6812 + } else if (!matchesFocusVisible(target)) {
6813 + return;
6814 + }
6815 + }
6816 + const movedFromOtherEnabledTrigger = isTargetInsideEnabledTrigger(event.relatedTarget, store2.context.triggerElements);
6817 + const {
6818 + nativeEvent,
6819 + currentTarget
6820 + } = event;
6821 + const delayValue = typeof delay === "function" ? delay() : delay;
6822 + if (store2.select("open") && movedFromOtherEnabledTrigger || delayValue === 0 || delayValue === void 0) {
6823 + store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerFocus, nativeEvent, currentTarget));
6824 + return;
6825 + }
6826 + timeout.start(delayValue, () => {
6827 + if (blockFocusRef.current) {
6828 + return;
6829 + }
6830 + store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerFocus, nativeEvent, currentTarget));
6831 + });
6832 + },
6833 + onBlur(event) {
6834 + resetBlockedFocus();
6835 + const relatedTarget = event.relatedTarget;
6836 + const nativeEvent = event.nativeEvent;
6837 + const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute(createAttribute("focus-guard")) && relatedTarget.getAttribute("data-type") === "outside";
6838 + timeout.start(0, () => {
6839 + const domReference = store2.select("domReferenceElement");
6840 + const activeEl = activeElement(ownerDocument(domReference));
6841 + if (!relatedTarget && activeEl === domReference) {
6842 + return;
6843 + }
6844 + if (contains(dataRef.current.floatingContext?.refs.floating.current, activeEl) || contains(domReference, activeEl) || movedToFocusGuard) {
6845 + return;
6846 + }
6847 + const nextFocusedElement = relatedTarget ?? activeEl;
6848 + if (isTargetInsideEnabledTrigger(nextFocusedElement, store2.context.triggerElements)) {
6849 + return;
6850 + }
6851 + store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerFocus, nativeEvent));
6852 + });
6853 + }
6854 + };
6855 + }, [dataRef, delay, store2, timeout]);
6856 + return React32.useMemo(() => enabled ? {
6857 + reference,
6858 + trigger: reference
6859 + } : {}, [enabled, reference]);
6860 + }
6861 +
6862 + // node_modules/@base-ui/react/floating-ui-react/hooks/useHoverFloatingInteraction.mjs
6863 + var React33 = __toESM(require_react(), 1);
6864 +
6865 + // node_modules/@base-ui/react/floating-ui-react/hooks/useHoverInteractionSharedState.mjs
6866 + var HoverInteraction = class _HoverInteraction {
6867 + constructor() {
6868 + this.pointerType = void 0;
6869 + this.interactedInside = false;
6870 + this.handler = void 0;
6871 + this.blockMouseMove = true;
6872 + this.performedPointerEventsMutation = false;
6873 + this.pointerEventsScopeElement = null;
6874 + this.pointerEventsReferenceElement = null;
6875 + this.pointerEventsFloatingElement = null;
6876 + this.restTimeoutPending = false;
6877 + this.openChangeTimeout = new Timeout();
6878 + this.restTimeout = new Timeout();
6879 + this.handleCloseOptions = void 0;
6880 + }
6881 + static create() {
6882 + return new _HoverInteraction();
6883 + }
6884 + dispose = () => {
6885 + this.openChangeTimeout.clear();
6886 + this.restTimeout.clear();
6887 + };
6888 + disposeEffect = () => {
6889 + return this.dispose;
6890 + };
6891 + };
6892 + var pointerEventsMutationOwnerByScopeElement = /* @__PURE__ */ new WeakMap();
6893 + function clearSafePolygonPointerEventsMutation(instance) {
6894 + if (!instance.performedPointerEventsMutation) {
6895 + return;
6896 + }
6897 + const scopeElement = instance.pointerEventsScopeElement;
6898 + if (scopeElement && pointerEventsMutationOwnerByScopeElement.get(scopeElement) === instance) {
6899 + instance.pointerEventsScopeElement?.style.removeProperty("pointer-events");
6900 + instance.pointerEventsReferenceElement?.style.removeProperty("pointer-events");
6901 + instance.pointerEventsFloatingElement?.style.removeProperty("pointer-events");
6902 + pointerEventsMutationOwnerByScopeElement.delete(scopeElement);
6903 + }
6904 + instance.performedPointerEventsMutation = false;
6905 + instance.pointerEventsScopeElement = null;
6906 + instance.pointerEventsReferenceElement = null;
6907 + instance.pointerEventsFloatingElement = null;
6908 + }
6909 + function applySafePolygonPointerEventsMutation(instance, options) {
6910 + const {
6911 + scopeElement,
6912 + referenceElement,
6913 + floatingElement
6914 + } = options;
6915 + const existingOwner = pointerEventsMutationOwnerByScopeElement.get(scopeElement);
6916 + if (existingOwner && existingOwner !== instance) {
6917 + clearSafePolygonPointerEventsMutation(existingOwner);
6918 + }
6919 + clearSafePolygonPointerEventsMutation(instance);
6920 + instance.performedPointerEventsMutation = true;
6921 + instance.pointerEventsScopeElement = scopeElement;
6922 + instance.pointerEventsReferenceElement = referenceElement;
6923 + instance.pointerEventsFloatingElement = floatingElement;
6924 + pointerEventsMutationOwnerByScopeElement.set(scopeElement, instance);
6925 + scopeElement.style.pointerEvents = "none";
6926 + referenceElement.style.pointerEvents = "auto";
6927 + floatingElement.style.pointerEvents = "auto";
6928 + }
6929 + function useHoverInteractionSharedState(store2) {
6930 + const data = store2.context.dataRef.current;
6931 + const instance = useRefWithInit(() => data.hoverInteractionState ?? HoverInteraction.create()).current;
6932 + if (!data.hoverInteractionState) {
6933 + data.hoverInteractionState = instance;
6934 + }
6935 + useOnMount(data.hoverInteractionState.disposeEffect);
6936 + return data.hoverInteractionState;
6937 + }
6938 +
6939 + // node_modules/@base-ui/react/floating-ui-react/hooks/useHoverFloatingInteraction.mjs
6940 + function useHoverFloatingInteraction(context, parameters = {}) {
6941 + const {
6942 + enabled = true,
6943 + closeDelay: closeDelayProp = 0,
6944 + nodeId: nodeIdProp
6945 + } = parameters;
6946 + const store2 = "rootStore" in context ? context.rootStore : context;
6947 + const open3 = store2.useState("open");
6948 + const floatingElement = store2.useState("floatingElement");
6949 + const domReferenceElement = store2.useState("domReferenceElement");
6950 + const {
6951 + dataRef
6952 + } = store2.context;
6953 + const tree = useFloatingTree();
6954 + const parentId = useFloatingParentNodeId();
6955 + const instance = useHoverInteractionSharedState(store2);
6956 + const childClosedTimeout = useTimeout();
6957 + const isClickLikeOpenEvent2 = useStableCallback(() => {
6958 + return isClickLikeOpenEvent(dataRef.current.openEvent?.type, instance.interactedInside);
6959 + });
6960 + const isHoverOpen = useStableCallback(() => {
6961 + return isHoverOpenEvent(dataRef.current.openEvent?.type);
6962 + });
6963 + const clearPointerEvents = useStableCallback(() => {
6964 + clearSafePolygonPointerEventsMutation(instance);
6965 + });
6966 + useIsoLayoutEffect(() => {
6967 + if (!open3) {
6968 + instance.pointerType = void 0;
6969 + instance.restTimeoutPending = false;
6970 + instance.interactedInside = false;
6971 + clearPointerEvents();
6972 + }
6973 + }, [open3, instance, clearPointerEvents]);
6974 + React33.useEffect(() => {
6975 + return clearPointerEvents;
6976 + }, [clearPointerEvents]);
6977 + useIsoLayoutEffect(() => {
6978 + if (!enabled) {
6979 + return void 0;
6980 + }
6981 + if (open3 && instance.handleCloseOptions?.blockPointerEvents && isHoverOpen() && isElement(domReferenceElement) && floatingElement) {
6982 + const ref = domReferenceElement;
6983 + const floatingEl = floatingElement;
6984 + const doc = ownerDocument(floatingElement);
6985 + const parentFloating = tree?.nodesRef.current.find((node) => node.id === parentId)?.context?.elements.floating;
6986 + if (parentFloating) {
6987 + parentFloating.style.pointerEvents = "";
6988 + }
6989 + const cachedScopeElement = instance.pointerEventsScopeElement !== floatingEl ? instance.pointerEventsScopeElement : null;
6990 + const parentScopeElement = parentFloating !== floatingEl ? parentFloating : null;
6991 + const scopeElement = instance.handleCloseOptions?.getScope?.() ?? cachedScopeElement ?? parentScopeElement ?? ref.closest("[data-rootownerid]") ?? doc.body;
6992 + applySafePolygonPointerEventsMutation(instance, {
6993 + scopeElement,
6994 + referenceElement: ref,
6995 + floatingElement: floatingEl
6996 + });
6997 + return () => {
6998 + clearPointerEvents();
6999 + };
7000 + }
7001 + return void 0;
7002 + }, [enabled, open3, domReferenceElement, floatingElement, instance, isHoverOpen, tree, parentId, clearPointerEvents]);
7003 + React33.useEffect(() => {
7004 + if (!enabled) {
7005 + return void 0;
7006 + }
7007 + function hasParentChildren() {
7008 + return !!(tree && parentId && getNodeChildren(tree.nodesRef.current, parentId).length > 0);
7009 + }
7010 + function closeWithDelay(event) {
7011 + const closeDelay = getDelay(closeDelayProp, "close", instance.pointerType);
7012 + const close = () => {
7013 + store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerHover, event));
7014 + tree?.events.emit("floating.closed", event);
7015 + };
7016 + if (closeDelay) {
7017 + instance.openChangeTimeout.start(closeDelay, close);
7018 + } else {
7019 + instance.openChangeTimeout.clear();
7020 + close();
7021 + }
7022 + }
7023 + function handleInteractInside(event) {
7024 + const target = getTarget(event);
7025 + if (!isInteractiveElement(target)) {
7026 + instance.interactedInside = false;
7027 + return;
7028 + }
7029 + instance.interactedInside = target?.closest("[aria-haspopup]") != null;
7030 + }
7031 + function onFloatingMouseEnter() {
7032 + instance.openChangeTimeout.clear();
7033 + childClosedTimeout.clear();
7034 + tree?.events.off("floating.closed", onNodeClosed);
7035 + clearPointerEvents();
7036 + }
7037 + function onFloatingMouseLeave(event) {
7038 + if (hasParentChildren() && tree) {
7039 + tree.events.on("floating.closed", onNodeClosed);
7040 + return;
7041 + }
7042 + if (isTargetInsideEnabledTrigger(event.relatedTarget, store2.context.triggerElements)) {
7043 + return;
7044 + }
7045 + const currentNodeId = dataRef.current.floatingContext?.nodeId ?? nodeIdProp;
7046 + const relatedTarget = event.relatedTarget;
7047 + const isMovingIntoDescendantFloating = tree && currentNodeId && isElement(relatedTarget) && getNodeChildren(tree.nodesRef.current, currentNodeId, false).some((node) => contains(node.context?.elements.floating, relatedTarget));
7048 + if (isMovingIntoDescendantFloating) {
7049 + return;
7050 + }
7051 + if (instance.handler) {
7052 + instance.handler(event);
7053 + return;
7054 + }
7055 + clearPointerEvents();
7056 + if (isHoverOpen() && !isClickLikeOpenEvent2()) {
7057 + closeWithDelay(event);
7058 + }
7059 + }
7060 + function onNodeClosed(event) {
7061 + if (!tree || !parentId || hasParentChildren()) {
7062 + return;
7063 + }
7064 + childClosedTimeout.start(0, () => {
7065 + tree.events.off("floating.closed", onNodeClosed);
7066 + store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerHover, event));
7067 + tree.events.emit("floating.closed", event);
7068 + });
7069 + }
7070 + const floating = floatingElement;
7071 + return mergeCleanups(floating && addEventListener(floating, "mouseenter", onFloatingMouseEnter), floating && addEventListener(floating, "mouseleave", onFloatingMouseLeave), floating && addEventListener(floating, "pointerdown", handleInteractInside, true), () => {
7072 + tree?.events.off("floating.closed", onNodeClosed);
7073 + });
7074 + }, [enabled, floatingElement, store2, dataRef, closeDelayProp, nodeIdProp, isHoverOpen, isClickLikeOpenEvent2, clearPointerEvents, instance, tree, parentId, childClosedTimeout]);
7075 + }
7076 +
7077 + // node_modules/@base-ui/react/floating-ui-react/hooks/useHoverReferenceInteraction.mjs
7078 + var React34 = __toESM(require_react(), 1);
7079 + var ReactDOM5 = __toESM(require_react_dom(), 1);
7080 + var EMPTY_REF = {
7081 + current: null
7082 + };
7083 + function useHoverReferenceInteraction(context, props = {}) {
7084 + const {
7085 + enabled = true,
7086 + delay = 0,
7087 + handleClose = null,
7088 + mouseOnly = false,
7089 + restMs = 0,
7090 + move = true,
7091 + triggerElementRef = EMPTY_REF,
7092 + externalTree,
7093 + isActiveTrigger = true,
7094 + getHandleCloseContext,
7095 + isClosing,
7096 + shouldOpen: shouldOpenProp,
7097 + guardStaleOpen = false
7098 + } = props;
7099 + const store2 = "rootStore" in context ? context.rootStore : context;
7100 + const {
7101 + dataRef,
7102 + events
7103 + } = store2.context;
7104 + const tree = useFloatingTree(externalTree);
7105 + const instance = useHoverInteractionSharedState(store2);
7106 + const isHoverCloseActiveRef = React34.useRef(false);
7107 + const handleCloseRef = useValueAsRef(handleClose);
7108 + const delayRef = useValueAsRef(delay);
7109 + const restMsRef = useValueAsRef(restMs);
7110 + const enabledRef = useValueAsRef(enabled);
7111 + const shouldOpenRef = useValueAsRef(shouldOpenProp);
7112 + const isClosingRef = useValueAsRef(isClosing);
7113 + const isClickLikeOpenEvent2 = useStableCallback(() => {
7114 + return isClickLikeOpenEvent(dataRef.current.openEvent?.type, instance.interactedInside);
7115 + });
7116 + const checkShouldOpen = useStableCallback(() => {
7117 + return shouldOpenRef.current?.() !== false;
7118 + });
7119 + const isOverInactiveTrigger = useStableCallback((currentDomReference, currentTarget, target) => {
7120 + const allTriggers = store2.context.triggerElements;
7121 + if (allTriggers.hasElement(currentTarget)) {
7122 + return !currentDomReference || !contains(currentDomReference, currentTarget);
7123 + }
7124 + if (!isElement(target)) {
7125 + return false;
7126 + }
7127 + const targetElement = target;
7128 + return allTriggers.hasMatchingElement((trigger) => contains(trigger, targetElement)) && (!currentDomReference || !contains(currentDomReference, targetElement));
7129 + });
7130 + const cleanupMouseMoveHandler = useStableCallback(() => {
7131 + if (!instance.handler) {
7132 + return;
7133 + }
7134 + const doc = ownerDocument(store2.select("domReferenceElement"));
7135 + doc.removeEventListener("mousemove", instance.handler);
7136 + instance.handler = void 0;
7137 + });
7138 + const clearPointerEvents = useStableCallback(() => {
7139 + clearSafePolygonPointerEventsMutation(instance);
7140 + });
7141 + if (isActiveTrigger) {
7142 + instance.handleCloseOptions = handleClose?.__options;
7143 + }
7144 + React34.useEffect(() => cleanupMouseMoveHandler, [cleanupMouseMoveHandler]);
7145 + React34.useEffect(() => {
7146 + if (!enabled) {
7147 + return void 0;
7148 + }
7149 + function onOpenChangeLocal(details) {
7150 + if (!details.open) {
7151 + isHoverCloseActiveRef.current = details.reason === reason_parts_exports.triggerHover;
7152 + cleanupMouseMoveHandler();
7153 + instance.openChangeTimeout.clear();
7154 + instance.restTimeout.clear();
7155 + instance.blockMouseMove = true;
7156 + instance.restTimeoutPending = false;
7157 + } else {
7158 + isHoverCloseActiveRef.current = false;
7159 + }
7160 + }
7161 + events.on("openchange", onOpenChangeLocal);
7162 + return () => {
7163 + events.off("openchange", onOpenChangeLocal);
7164 + };
7165 + }, [enabled, events, instance, cleanupMouseMoveHandler]);
7166 + React34.useEffect(() => {
7167 + if (!enabled) {
7168 + return void 0;
7169 + }
7170 + function closeWithDelay(event, runElseBranch = true) {
7171 + const closeDelay = getDelay(delayRef.current, "close", instance.pointerType);
7172 + if (closeDelay) {
7173 + instance.openChangeTimeout.start(closeDelay, () => {
7174 + store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerHover, event));
7175 + tree?.events.emit("floating.closed", event);
7176 + });
7177 + } else if (runElseBranch) {
7178 + instance.openChangeTimeout.clear();
7179 + store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerHover, event));
7180 + tree?.events.emit("floating.closed", event);
7181 + }
7182 + }
7183 + const trigger = triggerElementRef.current ?? (isActiveTrigger ? store2.select("domReferenceElement") : null);
7184 + if (!isElement(trigger)) {
7185 + return void 0;
7186 + }
7187 + function onMouseEnter(event) {
7188 + instance.openChangeTimeout.clear();
7189 + instance.blockMouseMove = false;
7190 + if (mouseOnly && !isMouseLikePointerType(instance.pointerType)) {
7191 + return;
7192 + }
7193 + const restMsValue = getRestMs(restMsRef.current);
7194 + const openDelay = getDelay(delayRef.current, "open", instance.pointerType);
7195 + const eventTarget = getTarget(event);
7196 + const currentTarget = event.currentTarget ?? null;
7197 + const currentDomReference = store2.select("domReferenceElement");
7198 + let triggerNode = currentTarget;
7199 + if (isElement(eventTarget) && !store2.context.triggerElements.hasElement(eventTarget)) {
7200 + for (const triggerElement of store2.context.triggerElements.elements()) {
7201 + if (contains(triggerElement, eventTarget)) {
7202 + triggerNode = triggerElement;
7203 + break;
7204 + }
7205 + }
7206 + }
7207 + if (isElement(currentTarget) && isElement(currentDomReference) && !store2.context.triggerElements.hasElement(currentTarget) && contains(currentTarget, currentDomReference)) {
7208 + triggerNode = currentDomReference;
7209 + }
7210 + const isOverInactive = triggerNode == null ? false : isOverInactiveTrigger(currentDomReference, triggerNode, eventTarget);
7211 + const isOpen = store2.select("open");
7212 + const isInClosingTransition = isClosingRef.current?.() ?? store2.select("transitionStatus") === "ending";
7213 + const isHoverCloseTransition = !isOpen && isInClosingTransition && isHoverCloseActiveRef.current;
7214 + const isReenteringSameTriggerDuringCloseTransition = !isOverInactive && isElement(triggerNode) && isElement(currentDomReference) && contains(currentDomReference, triggerNode) && isHoverCloseTransition;
7215 + const isRestOnlyDelay = restMsValue > 0 && !openDelay;
7216 + const shouldOpenImmediately = isOverInactive && (isOpen || isHoverCloseTransition) || isReenteringSameTriggerDuringCloseTransition;
7217 + const shouldOpen = !isOpen || isOverInactive;
7218 + if (shouldOpenImmediately) {
7219 + if (checkShouldOpen()) {
7220 + store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerHover, event, triggerNode));
7221 + }
7222 + return;
7223 + }
7224 + if (isRestOnlyDelay) {
7225 + return;
7226 + }
7227 + if (openDelay) {
7228 + instance.openChangeTimeout.start(openDelay, () => {
7229 + if (shouldOpen && checkShouldOpen()) {
7230 + store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerHover, event, triggerNode));
7231 + }
7232 + });
7233 + } else if (shouldOpen) {
7234 + if (checkShouldOpen()) {
7235 + store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerHover, event, triggerNode));
7236 + }
7237 + }
7238 + }
7239 + function onMouseLeave(event) {
7240 + if (isClickLikeOpenEvent2()) {
7241 + clearPointerEvents();
7242 + return;
7243 + }
7244 + cleanupMouseMoveHandler();
7245 + const domReferenceElement = store2.select("domReferenceElement");
7246 + const doc = ownerDocument(domReferenceElement);
7247 + instance.restTimeout.clear();
7248 + instance.restTimeoutPending = false;
7249 + const handleCloseContextBase = dataRef.current.floatingContext ?? getHandleCloseContext?.();
7250 + if (isTargetInsideEnabledTrigger(event.relatedTarget, store2.context.triggerElements)) {
7251 + return;
7252 + }
7253 + if (handleCloseRef.current && handleCloseContextBase) {
7254 + if (!store2.select("open")) {
7255 + instance.openChangeTimeout.clear();
7256 + }
7257 + const currentTrigger = triggerElementRef.current;
7258 + instance.handler = handleCloseRef.current({
7259 + ...handleCloseContextBase,
7260 + tree,
7261 + x: event.clientX,
7262 + y: event.clientY,
7263 + onClose() {
7264 + clearPointerEvents();
7265 + cleanupMouseMoveHandler();
7266 + if (enabledRef.current && !isClickLikeOpenEvent2() && currentTrigger === store2.select("domReferenceElement")) {
7267 + closeWithDelay(event, true);
7268 + }
7269 + }
7270 + });
7271 + doc.addEventListener("mousemove", instance.handler);
7272 + instance.handler(event);
7273 + return;
7274 + }
7275 + const shouldClose = instance.pointerType === "touch" ? !contains(store2.select("floatingElement"), event.relatedTarget) : true;
7276 + if (shouldClose) {
7277 + closeWithDelay(event);
7278 + }
7279 + }
7280 + function onMouseOut(event) {
7281 + if (contains(trigger, event.relatedTarget)) {
7282 + return;
7283 + }
7284 + instance.openChangeTimeout.clear();
7285 + instance.restTimeout.clear();
7286 + instance.restTimeoutPending = false;
7287 + }
7288 + const staleOpenGuard = guardStaleOpen ? addEventListener(trigger, "mouseout", onMouseOut) : void 0;
7289 + if (move) {
7290 + return mergeCleanups(addEventListener(trigger, "mousemove", onMouseEnter, {
7291 + once: true
7292 + }), addEventListener(trigger, "mouseenter", onMouseEnter), addEventListener(trigger, "mouseleave", onMouseLeave), staleOpenGuard);
7293 + }
7294 + return mergeCleanups(addEventListener(trigger, "mouseenter", onMouseEnter), addEventListener(trigger, "mouseleave", onMouseLeave), staleOpenGuard);
7295 + }, [cleanupMouseMoveHandler, clearPointerEvents, dataRef, delayRef, store2, enabled, handleCloseRef, instance, isActiveTrigger, isOverInactiveTrigger, isClickLikeOpenEvent2, mouseOnly, move, restMsRef, triggerElementRef, tree, enabledRef, getHandleCloseContext, isClosingRef, checkShouldOpen, guardStaleOpen]);
7296 + return React34.useMemo(() => {
7297 + if (!enabled) {
7298 + return void 0;
7299 + }
7300 + function setPointerRef(event) {
7301 + instance.pointerType = event.pointerType;
7302 + }
7303 + return {
7304 + onPointerDown: setPointerRef,
7305 + onPointerEnter: setPointerRef,
7306 + onMouseMove(event) {
7307 + const {
7308 + nativeEvent
7309 + } = event;
7310 + const trigger = event.currentTarget;
7311 + const currentDomReference = store2.select("domReferenceElement");
7312 + const currentOpen = store2.select("open");
7313 + const isOverInactive = isOverInactiveTrigger(currentDomReference, trigger, event.target);
7314 + if (mouseOnly && !isMouseLikePointerType(instance.pointerType)) {
7315 + return;
7316 + }
7317 + if (currentOpen && isOverInactive && instance.handleCloseOptions?.blockPointerEvents) {
7318 + const floatingElement = store2.select("floatingElement");
7319 + if (floatingElement) {
7320 + const scopeElement = instance.handleCloseOptions?.getScope?.() ?? trigger.ownerDocument.body;
7321 + applySafePolygonPointerEventsMutation(instance, {
7322 + scopeElement,
7323 + referenceElement: trigger,
7324 + floatingElement
7325 + });
7326 + }
7327 + }
7328 + const restMsValue = getRestMs(restMsRef.current);
7329 + if (currentOpen && !isOverInactive || restMsValue === 0) {
7330 + return;
7331 + }
7332 + if (!isOverInactive && instance.restTimeoutPending && event.movementX ** 2 + event.movementY ** 2 < 2) {
7333 + return;
7334 + }
7335 + instance.restTimeout.clear();
7336 + function handleMouseMove() {
7337 + instance.restTimeoutPending = false;
7338 + if (isClickLikeOpenEvent2()) {
7339 + return;
7340 + }
7341 + const latestOpen = store2.select("open");
7342 + if (!instance.blockMouseMove && (!latestOpen || isOverInactive) && checkShouldOpen()) {
7343 + store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerHover, nativeEvent, trigger));
7344 + }
7345 + }
7346 + if (instance.pointerType === "touch") {
7347 + ReactDOM5.flushSync(() => {
7348 + handleMouseMove();
7349 + });
7350 + } else if (isOverInactive && currentOpen) {
7351 + handleMouseMove();
7352 + } else {
7353 + instance.restTimeoutPending = true;
7354 + instance.restTimeout.start(restMsValue, handleMouseMove);
7355 + }
7356 + }
7357 + };
7358 + }, [enabled, instance, isClickLikeOpenEvent2, isOverInactiveTrigger, mouseOnly, store2, restMsRef, checkShouldOpen]);
7359 + }
7360 +
7361 + // node_modules/@base-ui/react/floating-ui-react/safePolygon.mjs
7362 + var CURSOR_SPEED_THRESHOLD = 0.1;
7363 + var CURSOR_SPEED_THRESHOLD_SQUARED = CURSOR_SPEED_THRESHOLD * CURSOR_SPEED_THRESHOLD;
7364 + var POLYGON_BUFFER = 0.5;
7365 + function hasIntersectingEdge(pointX, pointY, xi, yi, xj, yj) {
7366 + return yi >= pointY !== yj >= pointY && pointX <= (xj - xi) * (pointY - yi) / (yj - yi) + xi;
7367 + }
7368 + function isPointInQuadrilateral(pointX, pointY, x1, y1, x2, y2, x3, y3, x4, y4) {
7369 + let isInsideValue = false;
7370 + if (hasIntersectingEdge(pointX, pointY, x1, y1, x2, y2)) {
7371 + isInsideValue = !isInsideValue;
7372 + }
7373 + if (hasIntersectingEdge(pointX, pointY, x2, y2, x3, y3)) {
7374 + isInsideValue = !isInsideValue;
7375 + }
7376 + if (hasIntersectingEdge(pointX, pointY, x3, y3, x4, y4)) {
7377 + isInsideValue = !isInsideValue;
7378 + }
7379 + if (hasIntersectingEdge(pointX, pointY, x4, y4, x1, y1)) {
7380 + isInsideValue = !isInsideValue;
7381 + }
7382 + return isInsideValue;
7383 + }
7384 + function isInsideRect(pointX, pointY, rect) {
7385 + return pointX >= rect.x && pointX <= rect.x + rect.width && pointY >= rect.y && pointY <= rect.y + rect.height;
7386 + }
7387 + function isInsideAxisAlignedRect(pointX, pointY, x1, y1, x2, y2) {
7388 + const minX = Math.min(x1, x2);
7389 + const maxX = Math.max(x1, x2);
7390 + const minY = Math.min(y1, y2);
7391 + const maxY = Math.max(y1, y2);
7392 + return pointX >= minX && pointX <= maxX && pointY >= minY && pointY <= maxY;
7393 + }
7394 + function safePolygon(options = {}) {
7395 + const {
7396 + blockPointerEvents = false
7397 + } = options;
7398 + const timeout = new Timeout();
7399 + const fn = ({
7400 + x,
7401 + y,
7402 + placement,
7403 + elements,
7404 + onClose,
7405 + nodeId,
7406 + tree
7407 + }) => {
7408 + const side = placement?.split("-")[0];
7409 + let hasLanded = false;
7410 + let lastX = null;
7411 + let lastY = null;
7412 + let lastCursorTime = typeof performance !== "undefined" ? performance.now() : 0;
7413 + function isCursorMovingSlowly(nextX, nextY) {
7414 + const currentTime = performance.now();
7415 + const elapsedTime = currentTime - lastCursorTime;
7416 + if (lastX === null || lastY === null || elapsedTime === 0) {
7417 + lastX = nextX;
7418 + lastY = nextY;
7419 + lastCursorTime = currentTime;
7420 + return false;
7421 + }
7422 + const deltaX = nextX - lastX;
7423 + const deltaY = nextY - lastY;
7424 + const distanceSquared = deltaX * deltaX + deltaY * deltaY;
7425 + const thresholdSquared = elapsedTime * elapsedTime * CURSOR_SPEED_THRESHOLD_SQUARED;
7426 + lastX = nextX;
7427 + lastY = nextY;
7428 + lastCursorTime = currentTime;
7429 + return distanceSquared < thresholdSquared;
7430 + }
7431 + function close() {
7432 + timeout.clear();
7433 + onClose();
7434 + }
7435 + return function onMouseMove(event) {
7436 + timeout.clear();
7437 + const domReference = elements.domReference;
7438 + const floating = elements.floating;
7439 + if (!domReference || !floating || side == null || x == null || y == null) {
7440 + return void 0;
7441 + }
7442 + const {
7443 + clientX,
7444 + clientY
7445 + } = event;
7446 + const target = getTarget(event);
7447 + const isLeave = event.type === "mouseleave";
7448 + const isOverFloatingEl = contains(floating, target);
7449 + const isOverReferenceEl = contains(domReference, target);
7450 + if (isOverFloatingEl) {
7451 + hasLanded = true;
7452 + if (!isLeave) {
7453 + return void 0;
7454 + }
7455 + }
7456 + if (isOverReferenceEl) {
7457 + hasLanded = false;
7458 + if (!isLeave) {
7459 + hasLanded = true;
7460 + return void 0;
7461 + }
7462 + }
7463 + if (isLeave && isElement(event.relatedTarget) && contains(floating, event.relatedTarget)) {
7464 + return void 0;
7465 + }
7466 + function hasOpenChildNode() {
7467 + return Boolean(tree && getNodeChildren(tree.nodesRef.current, nodeId).length > 0);
7468 + }
7469 + function closeIfNoOpenChild() {
7470 + if (!hasOpenChildNode()) {
7471 + close();
7472 + }
7473 + }
7474 + if (hasOpenChildNode()) {
7475 + return void 0;
7476 + }
7477 + const refRect = domReference.getBoundingClientRect();
7478 + const rect = floating.getBoundingClientRect();
7479 + const cursorLeaveFromRight = x > rect.right - rect.width / 2;
7480 + const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;
7481 + const isFloatingWider = rect.width > refRect.width;
7482 + const isFloatingTaller = rect.height > refRect.height;
7483 + const left = (isFloatingWider ? refRect : rect).left;
7484 + const right = (isFloatingWider ? refRect : rect).right;
7485 + const top = (isFloatingTaller ? refRect : rect).top;
7486 + const bottom = (isFloatingTaller ? refRect : rect).bottom;
7487 + if (side === "top" && y >= refRect.bottom - 1 || side === "bottom" && y <= refRect.top + 1 || side === "left" && x >= refRect.right - 1 || side === "right" && x <= refRect.left + 1) {
7488 + closeIfNoOpenChild();
7489 + return void 0;
7490 + }
7491 + let isInsideTroughRect = false;
7492 + switch (side) {
7493 + case "top":
7494 + isInsideTroughRect = isInsideAxisAlignedRect(clientX, clientY, left, refRect.top + 1, right, rect.bottom - 1);
7495 + break;
7496 + case "bottom":
7497 + isInsideTroughRect = isInsideAxisAlignedRect(clientX, clientY, left, rect.top + 1, right, refRect.bottom - 1);
7498 + break;
7499 + case "left":
7500 + isInsideTroughRect = isInsideAxisAlignedRect(clientX, clientY, rect.right - 1, bottom, refRect.left + 1, top);
7501 + break;
7502 + case "right":
7503 + isInsideTroughRect = isInsideAxisAlignedRect(clientX, clientY, refRect.right - 1, bottom, rect.left + 1, top);
7504 + break;
7505 + default:
7506 + }
7507 + if (isInsideTroughRect) {
7508 + return void 0;
7509 + }
7510 + if (hasLanded && !isInsideRect(clientX, clientY, refRect)) {
7511 + closeIfNoOpenChild();
7512 + return void 0;
7513 + }
7514 + if (!isLeave && isCursorMovingSlowly(clientX, clientY)) {
7515 + closeIfNoOpenChild();
7516 + return void 0;
7517 + }
7518 + let isInsidePolygon = false;
7519 + switch (side) {
7520 + case "top": {
7521 + const cursorXOffset = isFloatingWider ? POLYGON_BUFFER / 2 : POLYGON_BUFFER * 4;
7522 + const cursorPointOneX = isFloatingWider ? x + cursorXOffset : cursorLeaveFromRight ? x + cursorXOffset : x - cursorXOffset;
7523 + const cursorPointTwoX = isFloatingWider ? x - cursorXOffset : cursorLeaveFromRight ? x + cursorXOffset : x - cursorXOffset;
7524 + const cursorPointY = y + POLYGON_BUFFER + 1;
7525 + const commonYLeft = cursorLeaveFromRight ? rect.bottom - POLYGON_BUFFER : isFloatingWider ? rect.bottom - POLYGON_BUFFER : rect.top;
7526 + const commonYRight = cursorLeaveFromRight ? isFloatingWider ? rect.bottom - POLYGON_BUFFER : rect.top : rect.bottom - POLYGON_BUFFER;
7527 + isInsidePolygon = isPointInQuadrilateral(clientX, clientY, cursorPointOneX, cursorPointY, cursorPointTwoX, cursorPointY, rect.left, commonYLeft, rect.right, commonYRight);
7528 + break;
7529 + }
7530 + case "bottom": {
7531 + const cursorXOffset = isFloatingWider ? POLYGON_BUFFER / 2 : POLYGON_BUFFER * 4;
7532 + const cursorPointOneX = isFloatingWider ? x + cursorXOffset : cursorLeaveFromRight ? x + cursorXOffset : x - cursorXOffset;
7533 + const cursorPointTwoX = isFloatingWider ? x - cursorXOffset : cursorLeaveFromRight ? x + cursorXOffset : x - cursorXOffset;
7534 + const cursorPointY = y - POLYGON_BUFFER;
7535 + const commonYLeft = cursorLeaveFromRight ? rect.top + POLYGON_BUFFER : isFloatingWider ? rect.top + POLYGON_BUFFER : rect.bottom;
7536 + const commonYRight = cursorLeaveFromRight ? isFloatingWider ? rect.top + POLYGON_BUFFER : rect.bottom : rect.top + POLYGON_BUFFER;
7537 + isInsidePolygon = isPointInQuadrilateral(clientX, clientY, cursorPointOneX, cursorPointY, cursorPointTwoX, cursorPointY, rect.left, commonYLeft, rect.right, commonYRight);
7538 + break;
7539 + }
7540 + case "left": {
7541 + const cursorYOffset = isFloatingTaller ? POLYGON_BUFFER / 2 : POLYGON_BUFFER * 4;
7542 + const cursorPointOneY = isFloatingTaller ? y + cursorYOffset : cursorLeaveFromBottom ? y + cursorYOffset : y - cursorYOffset;
7543 + const cursorPointTwoY = isFloatingTaller ? y - cursorYOffset : cursorLeaveFromBottom ? y + cursorYOffset : y - cursorYOffset;
7544 + const cursorPointX = x + POLYGON_BUFFER + 1;
7545 + const commonXTop = cursorLeaveFromBottom ? rect.right - POLYGON_BUFFER : isFloatingTaller ? rect.right - POLYGON_BUFFER : rect.left;
7546 + const commonXBottom = cursorLeaveFromBottom ? isFloatingTaller ? rect.right - POLYGON_BUFFER : rect.left : rect.right - POLYGON_BUFFER;
7547 + isInsidePolygon = isPointInQuadrilateral(clientX, clientY, commonXTop, rect.top, commonXBottom, rect.bottom, cursorPointX, cursorPointOneY, cursorPointX, cursorPointTwoY);
7548 + break;
7549 + }
7550 + case "right": {
7551 + const cursorYOffset = isFloatingTaller ? POLYGON_BUFFER / 2 : POLYGON_BUFFER * 4;
7552 + const cursorPointOneY = isFloatingTaller ? y + cursorYOffset : cursorLeaveFromBottom ? y + cursorYOffset : y - cursorYOffset;
7553 + const cursorPointTwoY = isFloatingTaller ? y - cursorYOffset : cursorLeaveFromBottom ? y + cursorYOffset : y - cursorYOffset;
7554 + const cursorPointX = x - POLYGON_BUFFER;
7555 + const commonXTop = cursorLeaveFromBottom ? rect.left + POLYGON_BUFFER : isFloatingTaller ? rect.left + POLYGON_BUFFER : rect.right;
7556 + const commonXBottom = cursorLeaveFromBottom ? isFloatingTaller ? rect.left + POLYGON_BUFFER : rect.right : rect.left + POLYGON_BUFFER;
7557 + isInsidePolygon = isPointInQuadrilateral(clientX, clientY, cursorPointX, cursorPointOneY, cursorPointX, cursorPointTwoY, commonXTop, rect.top, commonXBottom, rect.bottom);
7558 + break;
7559 + }
7560 + default:
7561 + }
7562 + if (!isInsidePolygon) {
7563 + closeIfNoOpenChild();
7564 + } else if (!hasLanded) {
7565 + timeout.start(40, closeIfNoOpenChild);
7566 + }
7567 + return void 0;
7568 + };
7569 + };
7570 + fn.__options = {
7571 + ...options,
7572 + blockPointerEvents
7573 + };
7574 + return fn;
7575 + }
7576 +
7577 + // node_modules/@base-ui/react/utils/NullStore.mjs
7578 + var NullStore = class extends ReactStore {
7579 + // `update`/`set`/`notifyAll` funnel through `setState` in the base `Store`, so overriding
7580 + // `setState` alone would neutralize them today. They are overridden explicitly so the store stays
7581 + // inert even if a future base-class change stops routing a mutator through `setState`.
7582 + setState(_newState) {
7583 + }
7584 + update(_changes) {
7585 + }
7586 + set(_key, _value) {
7587 + }
7588 + notifyAll() {
7589 + }
7590 + };
7591 +
7592 + // node_modules/@base-ui/utils/inertValue.mjs
7593 + function inertValue(value) {
7594 + if (isReactVersionAtLeast(19)) {
7595 + return value;
7596 + }
7597 + return value ? "true" : void 0;
7598 + }
7599 +
7600 + // node_modules/@base-ui/react/internals/direction-context/DirectionContext.mjs
7601 + var React35 = __toESM(require_react(), 1);
7602 + var DirectionContext = /* @__PURE__ */ React35.createContext(void 0);
7603 + if (true) DirectionContext.displayName = "DirectionContext";
7604 + function useDirection() {
7605 + const context = React35.useContext(DirectionContext);
7606 + return context?.direction ?? "ltr";
7607 + }
7608 +
7609 + // node_modules/@base-ui/react/internals/useAnchorPositioning.mjs
7610 + var React36 = __toESM(require_react(), 1);
7611 +
7612 + // node_modules/@base-ui/react/floating-ui-react/middleware/arrow.mjs
7613 + var baseArrow = (options) => ({
7614 + name: "arrow",
7615 + options,
7616 + async fn(state) {
7617 + const {
7618 + x,
7619 + y,
7620 + placement,
7621 + rects,
7622 + platform: platform3,
7623 + elements,
7624 + middlewareData
7625 + } = state;
7626 + const {
7627 + element,
7628 + padding = 0,
7629 + offsetParent = "real"
7630 + } = evaluate(options, state) || {};
7631 + if (element == null) {
7632 + return {};
7633 + }
7634 + const paddingObject = getPaddingObject(padding);
7635 + const coords = {
7636 + x,
7637 + y
7638 + };
7639 + const axis = getAlignmentAxis(placement);
7640 + const length = getAxisLength(axis);
7641 + const arrowDimensions = await platform3.getDimensions(element);
7642 + const isYAxis = axis === "y";
7643 + const minProp = isYAxis ? "top" : "left";
7644 + const maxProp = isYAxis ? "bottom" : "right";
7645 + const clientProp = isYAxis ? "clientHeight" : "clientWidth";
7646 + const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];
7647 + const startDiff = coords[axis] - rects.reference[axis];
7648 + const arrowOffsetParent = offsetParent === "real" ? await platform3.getOffsetParent?.(element) : elements.floating;
7649 + let clientSize = elements.floating[clientProp] || rects.floating[length];
7650 + if (!clientSize || !await platform3.isElement?.(arrowOffsetParent)) {
7651 + clientSize = elements.floating[clientProp] || rects.floating[length];
7652 + }
7653 + const centerToReference = endDiff / 2 - startDiff / 2;
7654 + const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;
7655 + const minPadding = Math.min(paddingObject[minProp], largestPossiblePadding);
7656 + const maxPadding = Math.min(paddingObject[maxProp], largestPossiblePadding);
7657 + const min2 = minPadding;
7658 + const max2 = clientSize - arrowDimensions[length] - maxPadding;
7659 + const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
7660 + const offset4 = clamp(min2, center, max2);
7661 + const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset4 && rects.reference[length] / 2 - (center < min2 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
7662 + const alignmentOffset = shouldAddOffset ? center < min2 ? center - min2 : center - max2 : 0;
7663 + return {
7664 + [axis]: coords[axis] + alignmentOffset,
7665 + data: {
7666 + [axis]: offset4,
7667 + centerOffset: center - offset4 - alignmentOffset,
7668 + ...shouldAddOffset && {
7669 + alignmentOffset
7670 + }
7671 + },
7672 + reset: shouldAddOffset
7673 + };
7674 + }
7675 + });
7676 + var arrow4 = (options, deps) => {
7677 + const {
7678 + name,
7679 + fn
7680 + } = baseArrow(options);
7681 + return {
7682 + name,
7683 + fn,
7684 + options: [options, deps]
7685 + };
7686 + };
7687 +
7688 + // node_modules/@base-ui/react/utils/hideMiddleware.mjs
7689 + var hide4 = {
7690 + name: "hide",
7691 + async fn(state) {
7692 + const {
7693 + width,
7694 + height,
7695 + x,
7696 + y
7697 + } = state.rects.reference;
7698 + const anchorHidden2 = width === 0 && height === 0 && x === 0 && y === 0;
7699 + const overflow = await state.platform.detectOverflow(state, {
7700 + elementContext: "reference"
7701 + });
7702 + const referenceHidden = overflow.top - height >= 0 || overflow.right - width >= 0 || overflow.bottom - height >= 0 || overflow.left - width >= 0;
7703 + return {
7704 + data: {
7705 + referenceHidden: referenceHidden || anchorHidden2
7706 + }
7707 + };
7708 + }
7709 + };
7710 +
7711 + // node_modules/@base-ui/react/utils/adaptiveOriginConstants.mjs
7712 + var DEFAULT_SIDES = {
7713 + sideX: "left",
7714 + sideY: "top"
7715 + };
7716 +
7717 + // node_modules/@base-ui/react/utils/CommonPositionerCssVars.mjs
7718 + var availableWidth = "--available-width";
7719 + var availableHeight = "--available-height";
7720 + var anchorWidth = "--anchor-width";
7721 + var anchorHeight = "--anchor-height";
7722 + var transformOrigin = "--transform-origin";
7723 + var positionerWidth = "--positioner-width";
7724 + var positionerHeight = "--positioner-height";
7725 +
7726 + // node_modules/@base-ui/react/internals/useAnchorPositioning.mjs
7727 + var AVAILABLE_WIDTH_VAR = availableWidth;
7728 + var AVAILABLE_HEIGHT_VAR = availableHeight;
7729 + function getLogicalSide(sideParam, renderedSide, isRtl) {
7730 + const isLogicalSideParam = sideParam === "inline-start" || sideParam === "inline-end";
7731 + const logicalRight = isRtl ? "inline-start" : "inline-end";
7732 + const logicalLeft = isRtl ? "inline-end" : "inline-start";
7733 + return {
7734 + top: "top",
7735 + right: isLogicalSideParam ? logicalRight : "right",
7736 + bottom: "bottom",
7737 + left: isLogicalSideParam ? logicalLeft : "left"
7738 + }[renderedSide];
7739 + }
7740 + function getOffsetData(state, sideParam, isRtl) {
7741 + const {
7742 + rects,
7743 + placement
7744 + } = state;
7745 + const data = {
7746 + side: getLogicalSide(sideParam, getSide(placement), isRtl),
7747 + align: getAlignment(placement) || "center",
7748 + anchor: {
7749 + width: rects.reference.width,
7750 + height: rects.reference.height
7751 + },
7752 + positioner: {
7753 + width: rects.floating.width,
7754 + height: rects.floating.height
7755 + }
7756 + };
7757 + return data;
7758 + }
7759 + function useAnchorPositioning(params) {
7760 + return useAnchorPositioningWithHook(params, useBaseUIFloating);
7761 + }
7762 + function useAnchorPositioningWithHook(params, useFloatingHook) {
7763 + const {
7764 + // Public parameters
7765 + anchor,
7766 + positionMethod = "absolute",
7767 + side: sideParam = "bottom",
7768 + sideOffset = 0,
7769 + align = "center",
7770 + alignOffset = 0,
7771 + collisionBoundary,
7772 + collisionPadding: collisionPaddingParam = 5,
7773 + sticky = false,
7774 + arrowPadding = 5,
7775 + disableAnchorTracking = false,
7776 + inline: inlineMiddleware,
7777 + // Private parameters
7778 + keepMounted = false,
7779 + floatingRootContext,
7780 + mounted,
7781 + collisionAvoidance,
7782 + shift: shift4,
7783 + nodeId,
7784 + adaptiveOrigin: adaptiveOrigin2,
7785 + lazyFlip = false,
7786 + externalTree
7787 + } = params;
7788 + const [mountSide, setMountSide] = React36.useState(null);
7789 + if (!mounted && mountSide !== null) {
7790 + setMountSide(null);
7791 + }
7792 + const collisionAvoidanceSide = collisionAvoidance.side || "flip";
7793 + const collisionAvoidanceAlign = collisionAvoidance.align || "flip";
7794 + const collisionAvoidanceFallbackAxisSide = collisionAvoidance.fallbackAxisSide || "end";
7795 + const shiftCrossAxis = shift4?.crossAxis ?? false;
7796 + const shiftRootBoundary = shift4?.rootBoundary;
7797 + const anchorFn = typeof anchor === "function" ? anchor : void 0;
7798 + const anchorFnCallback = useStableCallback(anchorFn);
7799 + const anchorDep = anchorFn ? anchorFnCallback : anchor;
7800 + const anchorValueRef = useValueAsRef(anchor);
7801 + const mountedRef = useValueAsRef(mounted);
7802 + const direction = useDirection();
7803 + const isRtl = direction === "rtl";
7804 + const side = mountSide || {
7805 + top: "top",
7806 + right: "right",
7807 + bottom: "bottom",
7808 + left: "left",
7809 + "inline-end": isRtl ? "left" : "right",
7810 + "inline-start": isRtl ? "right" : "left"
7811 + }[sideParam];
7812 + const placement = align === "center" ? side : `${side}-${align}`;
7813 + let collisionPadding = collisionPaddingParam;
7814 + if (typeof collisionPadding === "number") {
7815 + collisionPadding = {
7816 + top: collisionPadding,
7817 + right: collisionPadding,
7818 + bottom: collisionPadding,
7819 + left: collisionPadding
7820 + };
7821 + } else if (collisionPadding) {
7822 + collisionPadding = {
7823 + top: collisionPadding.top || 0,
7824 + right: collisionPadding.right || 0,
7825 + bottom: collisionPadding.bottom || 0,
7826 + left: collisionPadding.left || 0
7827 + };
7828 + }
7829 + const bias = 1;
7830 + const biasTop = sideParam === "bottom" ? bias : 0;
7831 + const biasBottom = sideParam === "top" ? bias : 0;
7832 + const biasLeft = sideParam === "right" ? bias : 0;
7833 + const biasRight = sideParam === "left" ? bias : 0;
7834 + const commonCollisionProps = {
7835 + boundary: collisionBoundary === "clipping-ancestors" ? "clippingAncestors" : collisionBoundary,
7836 + padding: collisionPadding
7837 + };
7838 + const arrowRef = React36.useRef(null);
7839 + const sideOffsetRef = useValueAsRef(sideOffset);
7840 + const alignOffsetRef = useValueAsRef(alignOffset);
7841 + const sideOffsetDep = typeof sideOffset !== "function" ? sideOffset : 0;
7842 + const alignOffsetDep = typeof alignOffset !== "function" ? alignOffset : 0;
7843 + const middleware = [];
7844 + if (inlineMiddleware) {
7845 + middleware.push(inlineMiddleware);
7846 + }
7847 + middleware.push(offset3((state) => {
7848 + const data = getOffsetData(state, sideParam, isRtl);
7849 + const sideAxis = typeof sideOffsetRef.current === "function" ? sideOffsetRef.current(data) : sideOffsetRef.current;
7850 + const alignAxis = typeof alignOffsetRef.current === "function" ? alignOffsetRef.current(data) : alignOffsetRef.current;
7851 + return {
7852 + mainAxis: sideAxis,
7853 + crossAxis: alignAxis,
7854 + alignmentAxis: alignAxis
7855 + };
7856 + }, [sideOffsetDep, alignOffsetDep, isRtl, sideParam]));
7857 + const shiftDisabled = collisionAvoidanceAlign === "none" && collisionAvoidanceSide !== "shift";
7858 + const crossAxisShiftEnabled = !shiftDisabled && (sticky || shiftCrossAxis || collisionAvoidanceSide === "shift");
7859 + const flipMiddleware = collisionAvoidanceSide === "none" ? null : flip3({
7860 + ...commonCollisionProps,
7861 + // Ensure the popup flips if it's been limited by its --available-height and it resizes.
7862 + // Since the size() padding is smaller than the flip() padding, flip() will take precedence.
7863 + padding: {
7864 + top: collisionPadding.top + bias + biasTop,
7865 + right: collisionPadding.right + bias + biasRight,
7866 + bottom: collisionPadding.bottom + bias + biasBottom,
7867 + left: collisionPadding.left + bias + biasLeft
7868 + },
7869 + mainAxis: !shiftCrossAxis && collisionAvoidanceSide === "flip",
7870 + crossAxis: collisionAvoidanceAlign === "flip" ? "alignment" : false,
7871 + fallbackAxisSideDirection: collisionAvoidanceFallbackAxisSide
7872 + });
7873 + const shiftMiddleware = shiftDisabled ? null : shift3({
7874 + ...commonCollisionProps,
7875 + // Use the Layout Viewport to avoid shifting around when pinch-zooming.
7876 + rootBoundary: shiftRootBoundary,
7877 + mainAxis: collisionAvoidanceAlign !== "none",
7878 + crossAxis: crossAxisShiftEnabled,
7879 + limiter: sticky || shiftCrossAxis ? void 0 : limitShift3((limitData) => {
7880 + if (!arrowRef.current) {
7881 + return {};
7882 + }
7883 + const {
7884 + width,
7885 + height
7886 + } = arrowRef.current.getBoundingClientRect();
7887 + const sideAxis = getSideAxis(getSide(limitData.placement));
7888 + const arrowSize = sideAxis === "y" ? width : height;
7889 + const offsetAmount = sideAxis === "y" ? collisionPadding.left + collisionPadding.right : collisionPadding.top + collisionPadding.bottom;
7890 + return {
7891 + offset: arrowSize / 2 + offsetAmount / 2
7892 + };
7893 + })
7894 + }, [commonCollisionProps, sticky, shiftCrossAxis, shiftRootBoundary, collisionPadding, collisionAvoidanceAlign]);
7895 + if (collisionAvoidanceSide === "shift" || collisionAvoidanceAlign === "shift" || align === "center") {
7896 + middleware.push(shiftMiddleware, flipMiddleware);
7897 + } else {
7898 + middleware.push(flipMiddleware, shiftMiddleware);
7899 + }
7900 + middleware.push(size3({
7901 + ...commonCollisionProps,
7902 + apply({
7903 + elements: {
7904 + floating
7905 + },
7906 + availableWidth: availableWidth2,
7907 + availableHeight: availableHeight2,
7908 + rects
7909 + }) {
7910 + if (!mountedRef.current) {
7911 + return;
7912 + }
7913 + const floatingStyle = floating.style;
7914 + floatingStyle.setProperty(AVAILABLE_WIDTH_VAR, `${availableWidth2}px`);
7915 + floatingStyle.setProperty(AVAILABLE_HEIGHT_VAR, `${availableHeight2}px`);
7916 + const dpr = getWindow(floating).devicePixelRatio || 1;
7917 + const {
7918 + x: x2,
7919 + y: y2,
7920 + width,
7921 + height
7922 + } = rects.reference;
7923 + const anchorWidth2 = (Math.round((x2 + width) * dpr) - Math.round(x2 * dpr)) / dpr;
7924 + const anchorHeight2 = (Math.round((y2 + height) * dpr) - Math.round(y2 * dpr)) / dpr;
7925 + floatingStyle.setProperty(anchorWidth, `${anchorWidth2}px`);
7926 + floatingStyle.setProperty(anchorHeight, `${anchorHeight2}px`);
7927 + }
7928 + }), arrow4((state) => ({
7929 + // `transform-origin` calculations rely on an element existing. If the arrow hasn't been set,
7930 + // we'll create a fake element.
7931 + element: arrowRef.current || ownerDocument(state.elements.floating).createElement("div"),
7932 + // No padding for the fake arrow: it would displace aligned popups on narrow anchors.
7933 + padding: arrowRef.current ? arrowPadding : 0,
7934 + offsetParent: "floating"
7935 + }), [arrowPadding]), {
7936 + name: "transformOrigin",
7937 + fn(state) {
7938 + const {
7939 + elements: {
7940 + floating
7941 + },
7942 + middlewareData: middlewareData2,
7943 + placement: renderedPlacement2,
7944 + platform: platform3,
7945 + rects,
7946 + y: y2
7947 + } = state;
7948 + const renderedSide2 = getSide(renderedPlacement2);
7949 + const renderedAlign2 = getAlignment(renderedPlacement2);
7950 + const isVertical = getSideAxis(renderedSide2) === "y";
7951 + const arrowEl = arrowRef.current;
7952 + const sideOffsetValue = typeof sideOffset === "function" ? sideOffset(getOffsetData(state, sideParam, isRtl)) : sideOffset;
7953 + let crossOrigin;
7954 + if (!arrowEl && renderedAlign2 && Math.abs(isVertical ? middlewareData2.shift?.x || 0 : middlewareData2.shift?.y || 0) <= 1) {
7955 + crossOrigin = renderedAlign2 === "start" === (isVertical && platform3.isRTL?.(floating) === true) ? "100%" : "0%";
7956 + } else {
7957 + const arrowOffset = isVertical ? middlewareData2.arrow?.x || 0 : middlewareData2.arrow?.y || 0;
7958 + const arrowSize = isVertical ? arrowEl?.clientWidth || 0 : arrowEl?.clientHeight || 0;
7959 + crossOrigin = `${arrowOffset + arrowSize / 2}px`;
7960 + }
7961 + let sideOrigin = renderedSide2 === "top" || renderedSide2 === "left" ? `calc(100% + ${sideOffsetValue}px)` : `${-sideOffsetValue}px`;
7962 + if (crossAxisShiftEnabled && isVertical && Math.abs(middlewareData2.shift?.y || 0) > sideOffsetValue) {
7963 + sideOrigin = `${rects.reference.y + rects.reference.height / 2 - y2}px`;
7964 + }
7965 + floating.style.setProperty(transformOrigin, isVertical ? `${crossOrigin} ${sideOrigin}` : `${sideOrigin} ${crossOrigin}`);
7966 + return {};
7967 + }
7968 + }, hide4, adaptiveOrigin2);
7969 + useIsoLayoutEffect(() => {
7970 + if (!mounted && floatingRootContext) {
7971 + floatingRootContext.update({
7972 + referenceElement: null,
7973 + floatingElement: null,
7974 + domReferenceElement: null,
7975 + positionReference: null
7976 + });
7977 + }
7978 + }, [mounted, floatingRootContext]);
7979 + const autoUpdateOptions = React36.useMemo(() => ({
7980 + ancestorScroll: !disableAnchorTracking,
7981 + elementResize: !disableAnchorTracking && typeof ResizeObserver !== "undefined",
7982 + layoutShift: !disableAnchorTracking && typeof IntersectionObserver !== "undefined"
7983 + }), [disableAnchorTracking]);
7984 + const {
7985 + refs,
7986 + elements,
7987 + x,
7988 + y,
7989 + middlewareData,
7990 + update: update2,
7991 + placement: renderedPlacement,
7992 + context,
7993 + isPositioned,
7994 + floatingStyles: originalFloatingStyles
7995 + } = useFloatingHook({
7996 + rootContext: floatingRootContext,
7997 + open: keepMounted ? mounted : void 0,
7998 + placement,
7999 + middleware,
8000 + strategy: positionMethod,
8001 + whileElementsMounted: keepMounted ? void 0 : (...args) => autoUpdate(...args, autoUpdateOptions),
8002 + nodeId,
8003 + externalTree
8004 + });
8005 + const {
8006 + sideX,
8007 + sideY
8008 + } = middlewareData.adaptiveOrigin || DEFAULT_SIDES;
8009 + const resolvedPosition = isPositioned ? positionMethod : "fixed";
8010 + const floatingStyles = React36.useMemo(() => {
8011 + let base;
8012 + if (!isPositioned) {
8013 + base = {
8014 + position: resolvedPosition,
8015 + top: 0,
8016 + left: 0
8017 + };
8018 + } else if (adaptiveOrigin2) {
8019 + base = {
8020 + position: resolvedPosition,
8021 + [sideX]: x,
8022 + [sideY]: y
8023 + };
8024 + } else {
8025 + base = {
8026 + ...originalFloatingStyles,
8027 + position: resolvedPosition
8028 + };
8029 + }
8030 + base[AVAILABLE_WIDTH_VAR] = "100vw";
8031 + base[AVAILABLE_HEIGHT_VAR] = "100vh";
8032 + if (!isPositioned) {
8033 + base.opacity = 0;
8034 + }
8035 + return base;
8036 + }, [adaptiveOrigin2, resolvedPosition, sideX, x, sideY, y, originalFloatingStyles, isPositioned]);
8037 + const registeredPositionReferenceRef = React36.useRef(null);
8038 + useIsoLayoutEffect(() => {
8039 + if (!mounted) {
8040 + return;
8041 + }
8042 + const anchorValue = anchorValueRef.current;
8043 + const resolvedAnchor = typeof anchorValue === "function" ? anchorValue() : anchorValue;
8044 + const unwrappedElement = (isRef(resolvedAnchor) ? resolvedAnchor.current : resolvedAnchor) || null;
8045 + const finalAnchor = unwrappedElement || null;
8046 + if (finalAnchor !== registeredPositionReferenceRef.current) {
8047 + refs.setPositionReference(finalAnchor);
8048 + registeredPositionReferenceRef.current = finalAnchor;
8049 + }
8050 + }, [mounted, refs, anchorDep, anchorValueRef]);
8051 + React36.useEffect(() => {
8052 + if (!mounted) {
8053 + return;
8054 + }
8055 + const anchorValue = anchorValueRef.current;
8056 + if (typeof anchorValue === "function") {
8057 + return;
8058 + }
8059 + if (isRef(anchorValue) && anchorValue.current !== registeredPositionReferenceRef.current) {
8060 + refs.setPositionReference(anchorValue.current);
8061 + registeredPositionReferenceRef.current = anchorValue.current;
8062 + }
8063 + }, [mounted, refs, anchorDep, anchorValueRef]);
8064 + React36.useEffect(() => {
8065 + if (keepMounted && mounted && elements.reference && elements.floating) {
8066 + return autoUpdate(elements.reference, elements.floating, update2, autoUpdateOptions);
8067 + }
8068 + return void 0;
8069 + }, [keepMounted, mounted, elements, update2, autoUpdateOptions]);
8070 + const renderedSide = getSide(renderedPlacement);
8071 + const logicalRenderedSide = getLogicalSide(sideParam, renderedSide, isRtl);
8072 + const renderedAlign = getAlignment(renderedPlacement) || "center";
8073 + const anchorHidden2 = Boolean(middlewareData.hide?.referenceHidden);
8074 + useIsoLayoutEffect(() => {
8075 + if (lazyFlip && mounted && isPositioned && renderedSide !== side) {
8076 + setMountSide(renderedSide);
8077 + }
8078 + }, [lazyFlip, mounted, isPositioned, renderedSide, side]);
8079 + const arrowStyles = React36.useMemo(() => ({
8080 + position: "absolute",
8081 + top: middlewareData.arrow?.y,
8082 + left: middlewareData.arrow?.x
8083 + }), [middlewareData.arrow]);
8084 + const arrowUncentered = middlewareData.arrow?.centerOffset !== 0;
8085 + return React36.useMemo(() => ({
8086 + positionerStyles: floatingStyles,
8087 + arrowStyles,
8088 + arrowRef,
8089 + arrowUncentered,
8090 + side: logicalRenderedSide,
8091 + align: renderedAlign,
8092 + physicalSide: renderedSide,
8093 + anchorHidden: anchorHidden2,
8094 + refs,
8095 + context,
8096 + isPositioned,
8097 + update: update2
8098 + }), [floatingStyles, arrowStyles, arrowRef, arrowUncentered, logicalRenderedSide, renderedAlign, renderedSide, anchorHidden2, refs, context, isPositioned, update2]);
8099 + }
8100 + function isRef(param) {
8101 + return param != null && "current" in param;
8102 + }
8103 +
8104 + // node_modules/@base-ui/react/internals/getDisabledMountTransitionStyles.mjs
8105 + function getDisabledMountTransitionStyles(transitionStatus) {
8106 + return transitionStatus === "starting" ? DISABLED_TRANSITIONS_STYLE : EMPTY_OBJECT;
8107 + }
8108 +
8109 + // node_modules/@base-ui/react/utils/usePositioner.mjs
8110 + function usePositioner(componentProps, state, {
8111 + styles,
8112 + transitionStatus,
8113 + props,
8114 + refs,
8115 + hidden,
8116 + inert = false
8117 + }) {
8118 + const style = {
8119 + ...styles
8120 + };
8121 + if (inert) {
8122 + style.pointerEvents = "none";
8123 + }
8124 + return useRenderElement("div", componentProps, {
8125 + state,
8126 + ref: refs,
8127 + props: [{
8128 + role: "presentation",
8129 + hidden,
8130 + style
8131 + }, getDisabledMountTransitionStyles(transitionStatus), props],
8132 + stateAttributesMapping: popupStateMapping
8133 + });
8134 + }
8135 +
8136 + // node_modules/@base-ui/react/button/Button.mjs
8137 + var React37 = __toESM(require_react(), 1);
8138 + var Button = /* @__PURE__ */ React37.forwardRef(function Button2(componentProps, forwardedRef) {
8139 + const {
8140 + render,
8141 + className,
8142 + disabled: disabled2 = false,
8143 + focusableWhenDisabled = false,
8144 + nativeButton = true,
8145 + style,
8146 + ...elementProps
8147 + } = componentProps;
8148 + const {
8149 + getButtonProps,
8150 + buttonRef
8151 + } = useButton({
8152 + disabled: disabled2,
8153 + focusableWhenDisabled,
8154 + native: nativeButton
8155 + });
8156 + const state = {
8157 + disabled: disabled2
8158 + };
8159 + return useRenderElement("button", componentProps, {
8160 + state,
8161 + ref: [forwardedRef, buttonRef],
8162 + props: [elementProps, getButtonProps]
8163 + });
8164 + });
8165 + if (true) Button.displayName = "Button";
8166 +
8167 + // node_modules/@base-ui/react/collapsible/index.parts.mjs
8168 + var index_parts_exports = {};
8169 + __export(index_parts_exports, {
8170 + Panel: () => CollapsiblePanel,
8171 + Root: () => CollapsibleRoot,
8172 + Trigger: () => CollapsibleTrigger
8173 + });
8174 +
8175 + // node_modules/@base-ui/react/collapsible/root/CollapsibleRoot.mjs
8176 + var React38 = __toESM(require_react(), 1);
8177 +
8178 + // node_modules/@base-ui/react/collapsible/root/stateAttributesMapping.mjs
8179 + var collapsibleStateAttributesMapping = {
8180 + ...collapsibleOpenStateMapping,
8181 + ...transitionStatusMapping
8182 + };
8183 +
8184 + // node_modules/@base-ui/react/collapsible/root/CollapsibleRoot.mjs
764 8185 var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
765 - var redo_default = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives5.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives5.Path, { d: "M15.6 6.5l-1.1 1 2.9 3.3H8c-.9 0-1.7.3-2.3.9-1.4 1.5-1.4 4.2-1.4 5.6v.2h1.5v-.3c0-1.1 0-3.5 1-4.5.3-.3.7-.5 1.3-.5h9.2L14.5 15l1.1 1.1 4.6-4.6-4.6-5z" }) });
8186 + var CollapsibleRoot = /* @__PURE__ */ React38.forwardRef(function CollapsibleRoot2(componentProps, forwardedRef) {
8187 + const {
8188 + render,
8189 + className,
8190 + defaultOpen = false,
8191 + disabled: disabled2 = false,
8192 + onOpenChange: onOpenChangeProp,
8193 + open: open3,
8194 + style,
8195 + ...elementProps
8196 + } = componentProps;
8197 + const onOpenChange = useStableCallback(onOpenChangeProp);
8198 + const collapsible = useCollapsibleRoot({
8199 + open: open3,
8200 + defaultOpen,
8201 + onOpenChange,
8202 + disabled: disabled2
8203 + });
8204 + const state = React38.useMemo(() => ({
8205 + open: collapsible.open,
8206 + disabled: collapsible.disabled,
8207 + transitionStatus: collapsible.transitionStatus
8208 + }), [collapsible.open, collapsible.disabled, collapsible.transitionStatus]);
8209 + const contextValue = React38.useMemo(() => ({
8210 + ...collapsible,
8211 + onOpenChange,
8212 + state
8213 + }), [collapsible, onOpenChange, state]);
8214 + const element = useRenderElement("div", componentProps, {
8215 + state,
8216 + ref: forwardedRef,
8217 + props: elementProps,
8218 + stateAttributesMapping: collapsibleStateAttributesMapping
8219 + });
8220 + return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(CollapsibleRootContext.Provider, {
8221 + value: contextValue,
8222 + children: element
8223 + });
8224 + });
8225 + if (true) CollapsibleRoot.displayName = "CollapsibleRoot";
766 8226
767 - // packages/icons/build-module/library/undo.mjs
768 - var import_primitives6 = __toESM(require_primitives(), 1);
8227 + // node_modules/@base-ui/react/collapsible/trigger/CollapsibleTrigger.mjs
8228 + var React39 = __toESM(require_react(), 1);
8229 + var stateAttributesMapping = {
8230 + ...triggerOpenStateMapping,
8231 + ...transitionStatusMapping
8232 + };
8233 + var CollapsibleTrigger = /* @__PURE__ */ React39.forwardRef(function CollapsibleTrigger2(componentProps, forwardedRef) {
8234 + const {
8235 + panelId,
8236 + open: open3,
8237 + handleTrigger,
8238 + state,
8239 + disabled: contextDisabled
8240 + } = useCollapsibleRootContext();
8241 + const {
8242 + className,
8243 + disabled: disabled2 = contextDisabled,
8244 + render,
8245 + nativeButton = true,
8246 + style,
8247 + ...elementProps
8248 + } = componentProps;
8249 + const {
8250 + getButtonProps,
8251 + buttonRef
8252 + } = useButton({
8253 + disabled: disabled2,
8254 + focusableWhenDisabled: true,
8255 + native: nativeButton
8256 + });
8257 + const element = useRenderElement("button", componentProps, {
8258 + state,
8259 + ref: [forwardedRef, buttonRef],
8260 + props: [{
8261 + "aria-controls": open3 ? panelId : void 0,
8262 + "aria-expanded": open3,
8263 + onClick: handleTrigger
8264 + }, elementProps, getButtonProps],
8265 + stateAttributesMapping
8266 + });
8267 + return element;
8268 + });
8269 + if (true) CollapsibleTrigger.displayName = "CollapsibleTrigger";
8270 +
8271 + // node_modules/@base-ui/react/collapsible/panel/CollapsiblePanel.mjs
8272 + var React40 = __toESM(require_react(), 1);
8273 +
8274 + // node_modules/@base-ui/react/collapsible/panel/CollapsiblePanelCssVars.mjs
8275 + var collapsiblePanelHeight = "--collapsible-panel-height";
8276 + var collapsiblePanelWidth = "--collapsible-panel-width";
8277 +
8278 + // node_modules/@base-ui/react/collapsible/panel/CollapsiblePanel.mjs
8279 + var CollapsiblePanel = /* @__PURE__ */ React40.forwardRef(function CollapsiblePanel2(componentProps, forwardedRef) {
8280 + const {
8281 + className,
8282 + hiddenUntilFound: hiddenUntilFoundProp,
8283 + keepMounted: keepMountedProp,
8284 + render,
8285 + id: idProp,
8286 + style,
8287 + ...elementProps
8288 + } = componentProps;
8289 + if (true) {
8290 + React40.useEffect(() => {
8291 + if (hiddenUntilFoundProp && keepMountedProp === false) {
8292 + warn("The `keepMounted={false}` prop on `Collapsible.Panel` is ignored when `hiddenUntilFound` is enabled, since the panel must remain mounted while closed.");
8293 + }
8294 + }, [hiddenUntilFoundProp, keepMountedProp]);
8295 + }
8296 + const {
8297 + defaultPanelId,
8298 + mounted,
8299 + onOpenChange,
8300 + open: open3,
8301 + setMounted,
8302 + setPanelIdState,
8303 + setOpen,
8304 + state,
8305 + transitionStatus
8306 + } = useCollapsibleRootContext();
8307 + const hiddenUntilFound = hiddenUntilFoundProp ?? false;
8308 + const keepMounted = keepMountedProp ?? false;
8309 + const registeredId = idProp || void 0;
8310 + const id = registeredId ?? defaultPanelId;
8311 + useIsoLayoutEffect(() => {
8312 + setPanelIdState((currentId) => registeredId ?? (currentId === null ? void 0 : currentId));
8313 + return () => {
8314 + setPanelIdState((currentId) => currentId === registeredId ? null : currentId);
8315 + };
8316 + }, [registeredId, setPanelIdState]);
8317 + const {
8318 + height,
8319 + props,
8320 + ref,
8321 + shouldPreventOpenAnimation,
8322 + shouldRender,
8323 + transitionStatus: panelTransitionStatus,
8324 + width
8325 + } = useCollapsiblePanel({
8326 + externalRef: forwardedRef,
8327 + hiddenUntilFound,
8328 + id,
8329 + keepMounted,
8330 + mounted,
8331 + onOpenChange,
8332 + open: open3,
8333 + setMounted,
8334 + setOpen,
8335 + transitionStatus
8336 + });
8337 + const panelState = {
8338 + ...state,
8339 + transitionStatus: panelTransitionStatus
8340 + };
8341 + const resolvedStyle = resolveStyle(style, panelState);
8342 + const element = useRenderElement("div", {
8343 + ...componentProps,
8344 + style: void 0
8345 + }, {
8346 + state: panelState,
8347 + ref,
8348 + props: [
8349 + props,
8350 + {
8351 + style: {
8352 + [collapsiblePanelHeight]: height === void 0 ? "auto" : `${height}px`,
8353 + [collapsiblePanelWidth]: width === void 0 ? "auto" : `${width}px`
8354 + }
8355 + },
8356 + elementProps,
8357 + resolvedStyle ? {
8358 + style: resolvedStyle
8359 + } : void 0,
8360 + // Resolve the public `style` prop so temporary `animationName: 'none'`
8361 + // can still win after user's inline styles have been merged.
8362 + shouldPreventOpenAnimation ? {
8363 + style: {
8364 + animationName: "none"
8365 + }
8366 + } : void 0
8367 + ],
8368 + stateAttributesMapping: collapsibleStateAttributesMapping
8369 + });
8370 + if (!shouldRender) {
8371 + return null;
8372 + }
8373 + return element;
8374 + });
8375 + if (true) CollapsiblePanel.displayName = "CollapsiblePanel";
8376 +
8377 + // node_modules/@base-ui/react/utils/usePopupViewport.mjs
8378 + var React44 = __toESM(require_react(), 1);
8379 + var ReactDOM6 = __toESM(require_react_dom(), 1);
8380 +
8381 + // node_modules/@base-ui/utils/usePreviousValue.mjs
8382 + var React41 = __toESM(require_react(), 1);
8383 + function usePreviousValue(value) {
8384 + const [state, setState] = React41.useState({
8385 + current: value,
8386 + previous: null
8387 + });
8388 + if (!Object.is(value, state.current)) {
8389 + setState({
8390 + current: value,
8391 + previous: state.current
8392 + });
8393 + }
8394 + return state.previous;
8395 + }
8396 +
8397 + // node_modules/@base-ui/react/utils/usePopupAutoResize.mjs
8398 + var React42 = __toESM(require_react(), 1);
8399 +
8400 + // node_modules/@base-ui/react/utils/getCssDimensions.mjs
8401 + function getCssDimensions2(element) {
8402 + const css = getComputedStyle2(element);
8403 + let width = parseFloat(css.width) || 0;
8404 + let height = parseFloat(css.height) || 0;
8405 + const hasOffset = isHTMLElement(element);
8406 + const offsetWidth = hasOffset ? element.offsetWidth : width;
8407 + const offsetHeight = hasOffset ? element.offsetHeight : height;
8408 + const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
8409 + if (shouldFallback) {
8410 + width = offsetWidth;
8411 + height = offsetHeight;
8412 + }
8413 + return {
8414 + width,
8415 + height
8416 + };
8417 + }
8418 +
8419 + // node_modules/@base-ui/react/utils/CommonPopupCssVars.mjs
8420 + var popupWidth = "--popup-width";
8421 + var popupHeight = "--popup-height";
8422 +
8423 + // node_modules/@base-ui/react/utils/usePopupAutoResize.mjs
8424 + function usePopupAutoResize(parameters) {
8425 + const {
8426 + popupElement,
8427 + positionerElement,
8428 + content,
8429 + mounted,
8430 + onMeasureLayout: onMeasureLayoutParam,
8431 + onMeasureLayoutComplete: onMeasureLayoutCompleteParam,
8432 + side,
8433 + direction
8434 + } = parameters;
8435 + const runOnceAnimationsFinish = useAnimationsFinished(popupElement, true);
8436 + const animationFrame = useAnimationFrame();
8437 + const committedDimensionsRef = React42.useRef(null);
8438 + const isInitialRenderRef = React42.useRef(true);
8439 + const restoreAnchoringStylesRef = React42.useRef(NOOP);
8440 + const onMeasureLayout = useStableCallback(onMeasureLayoutParam);
8441 + const onMeasureLayoutComplete = useStableCallback(onMeasureLayoutCompleteParam);
8442 + const anchoringStyles = React42.useMemo(() => getPopupAnchoringStyles(side, direction), [side, direction]);
8443 + useIsoLayoutEffect(() => {
8444 + if (!mounted) {
8445 + restoreAnchoringStylesRef.current = NOOP;
8446 + isInitialRenderRef.current = true;
8447 + committedDimensionsRef.current = null;
8448 + return void 0;
8449 + }
8450 + if (!popupElement || !positionerElement) {
8451 + return void 0;
8452 + }
8453 + restoreAnchoringStylesRef.current = applyElementStyles(popupElement, anchoringStyles);
8454 + setPopupCssSize(popupElement, "auto");
8455 + const restorePopupPosition = overrideElementStyle(popupElement, "position", "static");
8456 + const restorePopupTransform = overrideElementStyle(popupElement, "transform", "none");
8457 + const restorePopupScale = overrideElementStyle(popupElement, "scale", "1");
8458 + const restorePositionerAvailableSize = applyElementStyles(positionerElement, {
8459 + [availableWidth]: "max-content",
8460 + [availableHeight]: "max-content"
8461 + });
8462 + function restoreMeasurementOverrides() {
8463 + restorePopupPosition();
8464 + restorePopupTransform();
8465 + restorePositionerAvailableSize();
8466 + }
8467 + function restoreMeasurementOverridesIncludingScale() {
8468 + restoreMeasurementOverrides();
8469 + restorePopupScale();
8470 + }
8471 + onMeasureLayout?.();
8472 + if (isInitialRenderRef.current || committedDimensionsRef.current === null) {
8473 + setPositionerCssSize(positionerElement, "max-content");
8474 + const dimensions = getCssDimensions2(popupElement);
8475 + committedDimensionsRef.current = dimensions;
8476 + setPositionerCssSize(positionerElement, dimensions);
8477 + restoreMeasurementOverridesIncludingScale();
8478 + onMeasureLayoutComplete?.(null, dimensions);
8479 + isInitialRenderRef.current = false;
8480 + return () => {
8481 + restoreAnchoringStylesRef.current();
8482 + restoreAnchoringStylesRef.current = NOOP;
8483 + };
8484 + }
8485 + setPositionerCssSize(positionerElement, "max-content");
8486 + const previousDimensions = committedDimensionsRef.current;
8487 + const newDimensions = getCssDimensions2(popupElement);
8488 + committedDimensionsRef.current = newDimensions;
8489 + setPopupCssSize(popupElement, previousDimensions);
8490 + restoreMeasurementOverridesIncludingScale();
8491 + onMeasureLayoutComplete?.(previousDimensions, newDimensions);
8492 + setPositionerCssSize(positionerElement, newDimensions);
8493 + const abortController = new AbortController();
8494 + animationFrame.request(() => {
8495 + setPopupCssSize(popupElement, newDimensions);
8496 + runOnceAnimationsFinish(() => {
8497 + popupElement.style.setProperty(popupWidth, "auto");
8498 + popupElement.style.setProperty(popupHeight, "auto");
8499 + }, abortController.signal);
8500 + });
8501 + return () => {
8502 + abortController.abort();
8503 + animationFrame.cancel();
8504 + restoreAnchoringStylesRef.current();
8505 + restoreAnchoringStylesRef.current = NOOP;
8506 + };
8507 + }, [content, popupElement, positionerElement, runOnceAnimationsFinish, animationFrame, mounted, onMeasureLayout, onMeasureLayoutComplete, anchoringStyles]);
8508 + }
8509 + function getPopupAnchoringStyles(side, direction) {
8510 + const isPhysicalTop = side === "top";
8511 + const isPhysicalLeft = side === "left" || side === (direction === "rtl" ? "inline-end" : "inline-start");
8512 + if (!isPhysicalTop && !isPhysicalLeft) {
8513 + return EMPTY_OBJECT;
8514 + }
8515 + return {
8516 + position: "absolute",
8517 + [isPhysicalTop ? "bottom" : "top"]: "0",
8518 + [isPhysicalLeft ? "right" : "left"]: "0"
8519 + };
8520 + }
8521 + function overrideElementStyle(element, property, value) {
8522 + const originalValue = element.style.getPropertyValue(property);
8523 + element.style.setProperty(property, value);
8524 + return () => {
8525 + element.style.setProperty(property, originalValue);
8526 + };
8527 + }
8528 + function applyElementStyles(element, styles) {
8529 + const restorers = [];
8530 + for (const [key, value] of Object.entries(styles)) {
8531 + restorers.push(overrideElementStyle(element, key, value));
8532 + }
8533 + return restorers.length ? () => {
8534 + restorers.forEach((restore) => restore());
8535 + } : NOOP;
8536 + }
8537 + function setPopupCssSize(popupElement, size4) {
8538 + const width = size4 === "auto" ? "auto" : `${size4.width}px`;
8539 + const height = size4 === "auto" ? "auto" : `${size4.height}px`;
8540 + popupElement.style.setProperty(popupWidth, width);
8541 + popupElement.style.setProperty(popupHeight, height);
8542 + }
8543 + function setPositionerCssSize(positionerElement, size4) {
8544 + const width = size4 === "max-content" ? "max-content" : `${size4.width}px`;
8545 + const height = size4 === "max-content" ? "max-content" : `${size4.height}px`;
8546 + positionerElement.style.setProperty(positionerWidth, width);
8547 + positionerElement.style.setProperty(positionerHeight, height);
8548 + }
8549 +
8550 + // node_modules/@base-ui/react/direction-provider/DirectionProvider.mjs
8551 + var React43 = __toESM(require_react(), 1);
769 8552 var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
770 - var undo_default = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives6.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives6.Path, { d: "M18.3 11.7c-.6-.6-1.4-.9-2.3-.9H6.7l2.9-3.3-1.1-1-4.5 5L8.5 16l1-1-2.7-2.7H16c.5 0 .9.2 1.3.5 1 1 1 3.4 1 4.5v.3h1.5v-.2c0-1.5 0-4.3-1.5-5.7z" }) });
8553 + var DirectionProvider = function DirectionProvider2(props) {
8554 + const {
8555 + direction = "ltr"
8556 + } = props;
8557 + const contextValue = React43.useMemo(() => ({
8558 + direction
8559 + }), [direction]);
8560 + return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(DirectionContext.Provider, {
8561 + value: contextValue,
8562 + children: props.children
8563 + });
8564 + };
8565 + if (true) DirectionProvider.displayName = "DirectionProvider";
771 8566
772 - // packages/ui/build-module/visually-hidden/visually-hidden.mjs
773 - var import_element = __toESM(require_element(), 1);
8567 + // node_modules/@base-ui/react/utils/adaptiveOriginMiddleware.mjs
8568 + var adaptiveOrigin = {
8569 + name: "adaptiveOrigin",
8570 + async fn(state) {
8571 + const {
8572 + x: rawX,
8573 + y: rawY,
8574 + rects: {
8575 + floating: floatRect
8576 + },
8577 + elements: {
8578 + floating
8579 + },
8580 + platform: platform3,
8581 + strategy,
8582 + placement
8583 + } = state;
8584 + const win = getWindow(floating);
8585 + const styles = win.getComputedStyle(floating);
8586 + const hasTransition = styles.transitionDuration !== "0s" && styles.transitionDuration !== "";
8587 + if (!hasTransition) {
8588 + return {
8589 + x: rawX,
8590 + y: rawY,
8591 + data: DEFAULT_SIDES
8592 + };
8593 + }
8594 + const offsetParent = await platform3.getOffsetParent?.(floating);
8595 + let offsetDimensions = {
8596 + width: 0,
8597 + height: 0
8598 + };
8599 + if (strategy === "fixed" && win?.visualViewport) {
8600 + offsetDimensions = {
8601 + width: win.visualViewport.width,
8602 + height: win.visualViewport.height
8603 + };
8604 + } else if (offsetParent === win) {
8605 + const doc = ownerDocument(floating);
8606 + offsetDimensions = {
8607 + width: doc.documentElement.clientWidth,
8608 + height: doc.documentElement.clientHeight
8609 + };
8610 + } else if (await platform3.isElement?.(offsetParent)) {
8611 + offsetDimensions = await platform3.getDimensions(offsetParent);
8612 + }
8613 + const currentSide = getSide(placement);
8614 + let x = rawX;
8615 + let y = rawY;
8616 + if (currentSide === "left") {
8617 + x = offsetDimensions.width - (rawX + floatRect.width);
8618 + }
8619 + if (currentSide === "top") {
8620 + y = offsetDimensions.height - (rawY + floatRect.height);
8621 + }
8622 + const sideX = currentSide === "left" ? "right" : DEFAULT_SIDES.sideX;
8623 + const sideY = currentSide === "top" ? "bottom" : DEFAULT_SIDES.sideY;
8624 + return {
8625 + x,
8626 + y,
8627 + data: {
8628 + sideX,
8629 + sideY
8630 + }
8631 + };
8632 + }
8633 + };
8634 +
8635 + // node_modules/@base-ui/react/utils/CommonViewportDataAttributes.mjs
8636 + var activationDirection = "data-activation-direction";
8637 +
8638 + // node_modules/@base-ui/react/utils/usePopupViewport.mjs
8639 + var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1);
8640 + var popupViewportStateMapping = {
8641 + activationDirection: (value) => value ? {
8642 + [activationDirection]: value
8643 + } : null
8644 + };
8645 + function usePopupViewport(parameters) {
8646 + const {
8647 + store: store2,
8648 + side,
8649 + children
8650 + } = parameters;
8651 + const direction = useDirection();
8652 + const activeTrigger = store2.useState("activeTriggerElement");
8653 + const activeTriggerId = store2.useState("activeTriggerId");
8654 + const open3 = store2.useState("open");
8655 + const payload = store2.useState("payload");
8656 + const mounted = store2.useState("mounted");
8657 + const popupElement = store2.useState("popupElement");
8658 + const positionerElement = store2.useState("positionerElement");
8659 + const previousActiveTrigger = usePreviousValue(open3 ? activeTrigger : null);
8660 + const currentContentKey = usePopupContentKey(activeTriggerId, payload);
8661 + const capturedNodeRef = React44.useRef(null);
8662 + const [previousContentNode, setPreviousContentNode] = React44.useState(null);
8663 + const [newTriggerOffset, setNewTriggerOffset] = React44.useState(null);
8664 + const currentContainerRef = React44.useRef(null);
8665 + const previousContainerRef = React44.useRef(null);
8666 + const onAnimationsFinished = useAnimationsFinished(currentContainerRef, true);
8667 + const cleanupFrame = useAnimationFrame();
8668 + const cleanupControllerRef = React44.useRef(null);
8669 + const [previousContentDimensions, setPreviousContentDimensions] = React44.useState(null);
8670 + const [showStartingStyleAttribute, setShowStartingStyleAttribute] = React44.useState(false);
8671 + useIsoLayoutEffect(() => {
8672 + store2.set("adaptiveOrigin", adaptiveOrigin);
8673 + return () => {
8674 + store2.set("adaptiveOrigin", void 0);
8675 + };
8676 + }, [store2]);
8677 + const handleMeasureLayout = useStableCallback(() => {
8678 + currentContainerRef.current?.style.setProperty("animation", "none");
8679 + currentContainerRef.current?.style.setProperty("transition", "none");
8680 + previousContainerRef.current?.style.setProperty("display", "none");
8681 + });
8682 + const handleMeasureLayoutComplete = useStableCallback((previousDimensions) => {
8683 + currentContainerRef.current?.style.removeProperty("animation");
8684 + currentContainerRef.current?.style.removeProperty("transition");
8685 + previousContainerRef.current?.style.removeProperty("display");
8686 + if (previousDimensions) {
8687 + setPreviousContentDimensions(previousDimensions);
8688 + }
8689 + });
8690 + const armViewportCleanup = useStableCallback(() => {
8691 + cleanupControllerRef.current?.abort();
8692 + const controller = new AbortController();
8693 + cleanupControllerRef.current = controller;
8694 + onAnimationsFinished(() => {
8695 + setPreviousContentNode(null);
8696 + setPreviousContentDimensions(null);
8697 + capturedNodeRef.current = null;
8698 + }, controller.signal);
8699 + });
8700 + const lastHandledTriggerRef = React44.useRef(null);
8701 + useIsoLayoutEffect(() => {
8702 + if (!open3 || !mounted) {
8703 + lastHandledTriggerRef.current = null;
8704 + }
8705 + }, [open3, mounted]);
8706 + useIsoLayoutEffect(() => {
8707 + if (activeTrigger && previousActiveTrigger && activeTrigger !== previousActiveTrigger && lastHandledTriggerRef.current !== activeTrigger && capturedNodeRef.current) {
8708 + setPreviousContentNode(capturedNodeRef.current);
8709 + setShowStartingStyleAttribute(true);
8710 + const offset4 = calculateRelativePosition(previousActiveTrigger, activeTrigger);
8711 + setNewTriggerOffset(offset4);
8712 + lastHandledTriggerRef.current = activeTrigger;
8713 + }
8714 + }, [activeTrigger, previousActiveTrigger]);
8715 + useIsoLayoutEffect(() => {
8716 + if (previousContentNode == null) {
8717 + return;
8718 + }
8719 + cleanupControllerRef.current?.abort();
8720 + setShowStartingStyleAttribute(true);
8721 + cleanupFrame.request(() => {
8722 + ReactDOM6.flushSync(() => {
8723 + setShowStartingStyleAttribute(false);
8724 + });
8725 + armViewportCleanup();
8726 + });
8727 + }, [currentContentKey, previousContentNode, armViewportCleanup, cleanupFrame]);
8728 + useIsoLayoutEffect(() => {
8729 + const source = currentContainerRef.current;
8730 + if (!source) {
8731 + return;
8732 + }
8733 + const wrapper = ownerDocument(source).createElement("div");
8734 + for (const child of Array.from(source.childNodes)) {
8735 + wrapper.appendChild(child.cloneNode(true));
8736 + }
8737 + capturedNodeRef.current = wrapper;
8738 + });
8739 + const isTransitioning = previousContentNode != null;
8740 + let childrenToRender;
8741 + if (!isTransitioning) {
8742 + childrenToRender = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", {
8743 + "data-current": true,
8744 + ref: currentContainerRef,
8745 + children
8746 + }, currentContentKey);
8747 + } else {
8748 + childrenToRender = /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(React44.Fragment, {
8749 + children: [/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", {
8750 + "data-previous": true,
8751 + inert: inertValue(true),
8752 + ref: previousContainerRef,
8753 + style: {
8754 + ...previousContentDimensions ? {
8755 + [popupWidth]: `${previousContentDimensions.width}px`,
8756 + [popupHeight]: `${previousContentDimensions.height}px`
8757 + } : null,
8758 + position: "absolute"
8759 + },
8760 + "data-ending-style": showStartingStyleAttribute ? void 0 : ""
8761 + }, "previous"), /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", {
8762 + "data-current": true,
8763 + ref: currentContainerRef,
8764 + "data-starting-style": showStartingStyleAttribute ? "" : void 0,
8765 + children
8766 + }, currentContentKey)]
8767 + });
8768 + }
8769 + useIsoLayoutEffect(() => {
8770 + const container = previousContainerRef.current;
8771 + if (!container || !previousContentNode) {
8772 + return;
8773 + }
8774 + container.replaceChildren(...Array.from(previousContentNode.childNodes));
8775 + }, [previousContentNode]);
8776 + usePopupAutoResize({
8777 + popupElement,
8778 + positionerElement,
8779 + mounted,
8780 + content: payload,
8781 + onMeasureLayout: handleMeasureLayout,
8782 + onMeasureLayoutComplete: handleMeasureLayoutComplete,
8783 + side,
8784 + direction
8785 + });
8786 + const state = {
8787 + activationDirection: getActivationDirection(newTriggerOffset),
8788 + transitioning: isTransitioning
8789 + };
8790 + return {
8791 + children: childrenToRender,
8792 + state
8793 + };
8794 + }
8795 + function getActivationDirection(offset4) {
8796 + if (!offset4) {
8797 + return void 0;
8798 + }
8799 + return `${getValueWithTolerance(offset4.horizontal, 5, "right", "left")} ${getValueWithTolerance(offset4.vertical, 5, "down", "up")}`;
8800 + }
8801 + function getValueWithTolerance(value, tolerance, positiveLabel, negativeLabel) {
8802 + if (value > tolerance) {
8803 + return positiveLabel;
8804 + }
8805 + if (value < -tolerance) {
8806 + return negativeLabel;
8807 + }
8808 + return "";
8809 + }
8810 + function calculateRelativePosition(from, to) {
8811 + const fromRect = from.getBoundingClientRect();
8812 + const toRect = to.getBoundingClientRect();
8813 + const fromCenter = {
8814 + x: fromRect.left + fromRect.width / 2,
8815 + y: fromRect.top + fromRect.height / 2
8816 + };
8817 + const toCenter = {
8818 + x: toRect.left + toRect.width / 2,
8819 + y: toRect.top + toRect.height / 2
8820 + };
8821 + return {
8822 + horizontal: toCenter.x - fromCenter.x,
8823 + vertical: toCenter.y - fromCenter.y
8824 + };
8825 + }
8826 + function usePopupContentKey(activeTriggerId, payload) {
8827 + const [contentKey, setContentKey] = React44.useState(0);
8828 + const previousActiveTriggerIdRef = React44.useRef(activeTriggerId);
8829 + const previousPayloadRef = React44.useRef(payload);
8830 + const pendingPayloadUpdateRef = React44.useRef(false);
8831 + useIsoLayoutEffect(() => {
8832 + const previousActiveTriggerId = previousActiveTriggerIdRef.current;
8833 + const previousPayload = previousPayloadRef.current;
8834 + const triggerIdChanged = activeTriggerId !== previousActiveTriggerId;
8835 + const payloadChanged = payload !== previousPayload;
8836 + if (triggerIdChanged) {
8837 + setContentKey((value) => value + 1);
8838 + pendingPayloadUpdateRef.current = !payloadChanged;
8839 + } else if (pendingPayloadUpdateRef.current && payloadChanged) {
8840 + setContentKey((value) => value + 1);
8841 + pendingPayloadUpdateRef.current = false;
8842 + }
8843 + previousActiveTriggerIdRef.current = activeTriggerId;
8844 + previousPayloadRef.current = payload;
8845 + }, [activeTriggerId, payload]);
8846 + return `${activeTriggerId ?? "current"}-${contentKey}`;
8847 + }
8848 +
8849 + // node_modules/@base-ui/react/utils/FloatingPortalLite.mjs
8850 + var React45 = __toESM(require_react(), 1);
8851 + var ReactDOM7 = __toESM(require_react_dom(), 1);
8852 + var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
8853 + var FloatingPortalLite = /* @__PURE__ */ React45.forwardRef(function FloatingPortalLite2(componentProps, forwardedRef) {
8854 + const {
8855 + children,
8856 + container,
8857 + className,
8858 + render,
8859 + style,
8860 + ...elementProps
8861 + } = componentProps;
8862 + const {
8863 + node: portalNode,
8864 + subtree: portalSubtree
8865 + } = useFloatingPortalNode({
8866 + container,
8867 + ref: forwardedRef,
8868 + componentProps,
8869 + elementProps
8870 + });
8871 + if (!portalSubtree && !portalNode) {
8872 + return null;
8873 + }
8874 + return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(React45.Fragment, {
8875 + children: [portalSubtree, portalNode && /* @__PURE__ */ ReactDOM7.createPortal(children, portalNode)]
8876 + });
8877 + });
8878 + if (true) FloatingPortalLite.displayName = "FloatingPortalLite";
8879 +
8880 + // node_modules/@base-ui/react/tooltip/index.parts.mjs
8881 + var index_parts_exports2 = {};
8882 + __export(index_parts_exports2, {
8883 + Arrow: () => TooltipArrow,
8884 + Handle: () => TooltipHandle,
8885 + Popup: () => TooltipPopup,
8886 + Portal: () => TooltipPortal,
8887 + Positioner: () => TooltipPositioner,
8888 + Provider: () => TooltipProvider,
8889 + Root: () => TooltipRoot,
8890 + Trigger: () => TooltipTrigger,
8891 + Viewport: () => TooltipViewport,
8892 + createHandle: () => createTooltipHandle
8893 + });
8894 +
8895 + // node_modules/@base-ui/react/tooltip/root/TooltipRoot.mjs
8896 + var React48 = __toESM(require_react(), 1);
8897 +
8898 + // node_modules/@base-ui/react/tooltip/root/TooltipRootContext.mjs
8899 + var React46 = __toESM(require_react(), 1);
8900 + var TooltipRootContext = /* @__PURE__ */ React46.createContext(void 0);
8901 + if (true) TooltipRootContext.displayName = "TooltipRootContext";
8902 + function useTooltipRootContext(optional) {
8903 + const context = React46.useContext(TooltipRootContext);
8904 + if (context === void 0 && !optional) {
8905 + throw new Error(true ? "Base UI: TooltipRootContext is missing. Tooltip parts must be placed within <Tooltip.Root>." : formatErrorMessage_default(72));
8906 + }
8907 + return context;
8908 + }
8909 +
8910 + // node_modules/@base-ui/react/tooltip/store/TooltipStore.mjs
8911 + var React47 = __toESM(require_react(), 1);
8912 + var selectors2 = {
8913 + ...popupStoreSelectors,
8914 + disabled: (state) => state.disabled,
8915 + instantType: (state) => state.instantType,
8916 + isInstantPhase: (state) => state.isInstantPhase,
8917 + trackCursorAxis: (state) => state.trackCursorAxis,
8918 + disableHoverablePopup: (state) => state.disableHoverablePopup,
8919 + lastOpenChangeReason: (state) => state.openChangeReason,
8920 + closeOnClick: (state) => state.closeOnClick,
8921 + closeDelay: (state) => state.closeDelay,
8922 + adaptiveOrigin: (state) => state.adaptiveOrigin
8923 + };
8924 + var TooltipStore = class extends ReactStore {
8925 + constructor(initialState, floatingId, nested) {
8926 + const triggerElements = new PopupTriggerMap();
8927 + super(createInitialState(initialState, triggerElements, floatingId, nested), createInitialContext(triggerElements), selectors2);
8928 + }
8929 + setOpen = (nextOpen, eventDetails) => {
8930 + applyPopupOpenChange(this, nextOpen, eventDetails, {
8931 + extraState: {
8932 + openChangeReason: eventDetails.reason
8933 + }
8934 + });
8935 + };
8936 + // Used by trigger clicks to clear a delayed hover open without reporting a public open-state change.
8937 + cancelPendingOpen(event) {
8938 + this.state.floatingRootContext.dispatchOpenChange(false, createChangeEventDetails(reason_parts_exports.triggerPress, event));
8939 + }
8940 + };
8941 + function createNullTooltipStore() {
8942 + const triggerElements = new PopupTriggerMap();
8943 + const store2 = new NullStore(Object.freeze(createInitialState(void 0, triggerElements)), Object.freeze(createInitialContext(triggerElements)), selectors2);
8944 + return Object.assign(store2, {
8945 + setOpen: NOOP,
8946 + cancelPendingOpen: NOOP
8947 + });
8948 + }
8949 + function createInitialState(initialState, triggerElements, floatingId, nested = false) {
8950 + const state = {
8951 + ...createInitialPopupStoreState(triggerElements, floatingId, nested),
8952 + disabled: false,
8953 + instantType: void 0,
8954 + isInstantPhase: false,
8955 + trackCursorAxis: "none",
8956 + disableHoverablePopup: false,
8957 + openChangeReason: null,
8958 + closeOnClick: true,
8959 + closeDelay: 0,
8960 + adaptiveOrigin: void 0,
8961 + ...initialState
8962 + };
8963 + return state;
8964 + }
8965 + function createInitialContext(triggerElements) {
8966 + return {
8967 + popupRef: /* @__PURE__ */ React47.createRef(),
8968 + onOpenChange: void 0,
8969 + onOpenChangeComplete: void 0,
8970 + triggerElements
8971 + };
8972 + }
8973 +
8974 + // node_modules/@base-ui/react/tooltip/root/TooltipRoot.mjs
8975 + var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
8976 + var TooltipRoot = fastComponent(function TooltipRoot2(props) {
8977 + const {
8978 + disabled: disabled2 = false,
8979 + defaultOpen = false,
8980 + open: openProp,
8981 + disableHoverablePopup = false,
8982 + trackCursorAxis = "none",
8983 + actionsRef,
8984 + onOpenChange,
8985 + onOpenChangeComplete,
8986 + handle,
8987 + triggerId: triggerIdProp,
8988 + defaultTriggerId: defaultTriggerIdProp = null,
8989 + children
8990 + } = props;
8991 + const store2 = usePopupRootStore((floatingId, nested) => new TooltipStore({
8992 + open: defaultOpen,
8993 + openProp,
8994 + activeTriggerId: defaultTriggerIdProp,
8995 + triggerIdProp
8996 + }, floatingId, nested));
8997 + store2.useControlledProp("openProp", openProp);
8998 + store2.useControlledProp("triggerIdProp", triggerIdProp);
8999 + store2.useContextCallback("onOpenChange", onOpenChange);
9000 + store2.useContextCallback("onOpenChangeComplete", onOpenChangeComplete);
9001 + const openState = store2.useState("open");
9002 + const open3 = !disabled2 && openState;
9003 + const activeTriggerId = store2.useState("activeTriggerId");
9004 + const mounted = store2.useState("mounted");
9005 + const payload = store2.useState("payload");
9006 + store2.useSyncedValues({
9007 + trackCursorAxis,
9008 + disableHoverablePopup,
9009 + disabled: disabled2
9010 + });
9011 + useImplicitActiveTrigger(store2, {
9012 + closeOnActiveTriggerUnmount: true
9013 + });
9014 + const {
9015 + forceUnmount,
9016 + transitionStatus
9017 + } = useOpenStateTransitions(open3, store2);
9018 + const isInstantPhase = store2.useState("isInstantPhase");
9019 + const instantType = store2.useState("instantType");
9020 + const lastOpenChangeReason = store2.useState("lastOpenChangeReason");
9021 + const previousInstantTypeRef = React48.useRef(null);
9022 + useIsoLayoutEffect(() => {
9023 + if (openState && disabled2) {
9024 + store2.setOpen(false, createChangeEventDetails(reason_parts_exports.disabled));
9025 + }
9026 + }, [openState, disabled2, store2]);
9027 + useIsoLayoutEffect(() => {
9028 + if (transitionStatus === "ending" && lastOpenChangeReason === reason_parts_exports.none || transitionStatus !== "ending" && isInstantPhase) {
9029 + if (instantType !== "delay") {
9030 + previousInstantTypeRef.current = instantType;
9031 + }
9032 + store2.set("instantType", "delay");
9033 + } else if (previousInstantTypeRef.current !== null) {
9034 + store2.set("instantType", previousInstantTypeRef.current);
9035 + previousInstantTypeRef.current = null;
9036 + }
9037 + }, [transitionStatus, isInstantPhase, lastOpenChangeReason, instantType, store2]);
9038 + useIsoLayoutEffect(() => {
9039 + if (open3) {
9040 + if (activeTriggerId == null) {
9041 + store2.set("payload", void 0);
9042 + }
9043 + }
9044 + }, [store2, activeTriggerId, open3]);
9045 + React48.useImperativeHandle(actionsRef, () => ({
9046 + unmount: forceUnmount,
9047 + close: () => store2.setOpen(false, createChangeEventDetails(reason_parts_exports.imperativeAction))
9048 + }), [forceUnmount, store2]);
9049 + const shouldRenderInteractions = open3 || mounted || !disabled2 && trackCursorAxis !== "none";
9050 + return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(TooltipRootContext.Provider, {
9051 + value: store2,
9052 + children: [handle && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(PopupHandleAttachment, {
9053 + handle,
9054 + store: store2
9055 + }), shouldRenderInteractions && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(TooltipInteractions, {
9056 + store: store2,
9057 + disabled: disabled2,
9058 + trackCursorAxis
9059 + }), typeof children === "function" ? children({
9060 + payload
9061 + }) : children]
9062 + });
9063 + });
9064 + if (true) TooltipRoot.displayName = "TooltipRoot";
9065 + function TooltipInteractions({
9066 + store: store2,
9067 + disabled: disabled2,
9068 + trackCursorAxis
9069 + }) {
9070 + const floatingRootContext = store2.useState("floatingRootContext");
9071 + const dismiss = useDismiss(floatingRootContext, {
9072 + enabled: !disabled2,
9073 + referencePress: () => store2.select("closeOnClick")
9074 + });
9075 + const clientPoint = useClientPoint(floatingRootContext, {
9076 + enabled: !disabled2 && trackCursorAxis !== "none",
9077 + axis: trackCursorAxis === "none" ? void 0 : trackCursorAxis
9078 + });
9079 + const triggerProps = React48.useMemo(() => mergeProps(clientPoint.reference, dismiss.reference), [clientPoint.reference, dismiss.reference]);
9080 + usePopupInteractionProps(store2, {
9081 + activeTriggerProps: triggerProps,
9082 + inactiveTriggerProps: triggerProps,
9083 + popupProps: dismiss.floating ?? EMPTY_OBJECT
9084 + });
9085 + return null;
9086 + }
9087 +
9088 + // node_modules/@base-ui/react/tooltip/trigger/TooltipTrigger.mjs
9089 + var React50 = __toESM(require_react(), 1);
9090 +
9091 + // node_modules/@base-ui/react/tooltip/provider/TooltipProviderContext.mjs
9092 + var React49 = __toESM(require_react(), 1);
9093 + var TooltipProviderContext = /* @__PURE__ */ React49.createContext(void 0);
9094 + if (true) TooltipProviderContext.displayName = "TooltipProviderContext";
9095 + function useTooltipProviderContext() {
9096 + return React49.useContext(TooltipProviderContext);
9097 + }
9098 +
9099 + // node_modules/@base-ui/react/tooltip/utils/constants.mjs
9100 + var OPEN_DELAY = 600;
9101 +
9102 + // node_modules/@base-ui/react/tooltip/trigger/TooltipTrigger.mjs
9103 + var TOOLTIP_TRIGGER_IDENTIFIER = "data-base-ui-tooltip-trigger";
9104 + function getTargetElement(event) {
9105 + if ("composedPath" in event) {
9106 + const path = event.composedPath();
9107 + for (let i = 0; i < path.length; i += 1) {
9108 + const element = path[i];
9109 + if (isElement(element)) {
9110 + return element;
9111 + }
9112 + }
9113 + }
9114 + const target = event.target;
9115 + if (isElement(target)) {
9116 + return target;
9117 + }
9118 + return null;
9119 + }
9120 + function closestEnabledTooltipTrigger(element) {
9121 + let current = element;
9122 + while (current) {
9123 + const trigger = current.closest(`[${TOOLTIP_TRIGGER_IDENTIFIER}]`);
9124 + if (trigger) {
9125 + return trigger;
9126 + }
9127 + const root = current.getRootNode();
9128 + current = "host" in root && isElement(root.host) ? root.host : null;
9129 + }
9130 + return null;
9131 + }
9132 + var TooltipTrigger = fastComponentRef(function TooltipTrigger2(componentProps, forwardedRef) {
9133 + const {
9134 + render,
9135 + className,
9136 + style,
9137 + handle,
9138 + payload,
9139 + disabled: disabledProp,
9140 + delay,
9141 + closeOnClick = true,
9142 + closeDelay,
9143 + id: idProp,
9144 + ...elementProps
9145 + } = componentProps;
9146 + const rootContext = useTooltipRootContext(true);
9147 + const handleStore = usePopupHandleStore(handle);
9148 + const store2 = handleStore ?? rootContext;
9149 + if (!store2) {
9150 + throw new Error(true ? "Base UI: <Tooltip.Trigger> must be either used within a <Tooltip.Root> component or provided with a handle." : formatErrorMessage_default(82));
9151 + }
9152 + const thisTriggerId = useBaseUiId(idProp);
9153 + const isTriggerActive = store2.useState("isTriggerActive", thisTriggerId);
9154 + const isOpenedByThisTrigger = store2.useState("isOpenedByTrigger", thisTriggerId);
9155 + const floatingRootContext = store2.useState("floatingRootContext");
9156 + const triggerElementRef = React50.useRef(null);
9157 + const closeDelayWithDefault = closeDelay ?? 0;
9158 + const {
9159 + registerTrigger,
9160 + isMountedByThisTrigger
9161 + } = useTriggerDataForwarding(thisTriggerId, triggerElementRef, store2, {
9162 + payload,
9163 + closeOnClick,
9164 + closeDelay: closeDelayWithDefault
9165 + });
9166 + const providerDelay = useTooltipProviderContext();
9167 + const {
9168 + activeIdRef,
9169 + delayRef,
9170 + isInstantPhase,
9171 + hasProvider
9172 + } = useDelayGroup(floatingRootContext, {
9173 + open: isOpenedByThisTrigger
9174 + });
9175 + const hoverInteraction = useHoverInteractionSharedState(floatingRootContext);
9176 + store2.useSyncedValue("isInstantPhase", isInstantPhase);
9177 + const rootDisabled = store2.useState("disabled");
9178 + const disabled2 = disabledProp ?? rootDisabled;
9179 + const disabledRef = useValueAsRef(disabled2);
9180 + const trackCursorAxis = store2.useState("trackCursorAxis");
9181 + const disableHoverablePopup = store2.useState("disableHoverablePopup");
9182 + const isNestedTriggerHoveredRef = React50.useRef(false);
9183 + const nestedTriggerOpenTimeout = useTimeout();
9184 + const pointerTypeRef = React50.useRef(void 0);
9185 + function getOpenDelay() {
9186 + if (hasProvider && activeIdRef.current != null) {
9187 + return 0;
9188 + }
9189 + return delay ?? providerDelay ?? OPEN_DELAY;
9190 + }
9191 + function isEnabledNestedTriggerTarget(target) {
9192 + const triggerEl = triggerElementRef.current;
9193 + if (!triggerEl || !target) {
9194 + return false;
9195 + }
9196 + const nearestTrigger = closestEnabledTooltipTrigger(target);
9197 + return nearestTrigger !== null && nearestTrigger !== triggerEl && contains(triggerEl, nearestTrigger);
9198 + }
9199 + function detectNestedTriggerHover(target) {
9200 + const nestedTriggerHovered = isEnabledNestedTriggerTarget(target);
9201 + isNestedTriggerHoveredRef.current = nestedTriggerHovered;
9202 + if (nestedTriggerHovered) {
9203 + hoverInteraction.openChangeTimeout.clear();
9204 + hoverInteraction.restTimeout.clear();
9205 + hoverInteraction.restTimeoutPending = false;
9206 + nestedTriggerOpenTimeout.clear();
9207 + }
9208 + return nestedTriggerHovered;
9209 + }
9210 + const hoverProps = useHoverReferenceInteraction(floatingRootContext, {
9211 + enabled: !disabled2,
9212 + mouseOnly: true,
9213 + move: false,
9214 + handleClose: !disableHoverablePopup && trackCursorAxis !== "both" ? safePolygon() : null,
9215 + restMs: getOpenDelay,
9216 + delay() {
9217 + if (closeDelay == null && hasProvider) {
9218 + return {
9219 + close: getDelay(delayRef.current, "close")
9220 + };
9221 + }
9222 + return {
9223 + close: closeDelayWithDefault
9224 + };
9225 + },
9226 + triggerElementRef,
9227 + isActiveTrigger: isTriggerActive,
9228 + isClosing: () => store2.select("transitionStatus") === "ending",
9229 + shouldOpen() {
9230 + return !isNestedTriggerHoveredRef.current;
9231 + }
9232 + });
9233 + const focusProps = useFocus(floatingRootContext, {
9234 + enabled: !disabled2
9235 + }).reference;
9236 + const handleNestedTriggerHover = (event) => {
9237 + const wasNestedTriggerHovered = isNestedTriggerHoveredRef.current;
9238 + const target = getTargetElement(event);
9239 + const nestedTriggerHovered = detectNestedTriggerHover(target);
9240 + const triggerEl = triggerElementRef.current;
9241 + const targetInsideTrigger = triggerEl && target && contains(triggerEl, target);
9242 + if (nestedTriggerHovered && store2.select("open") && store2.select("lastOpenChangeReason") === reason_parts_exports.triggerHover) {
9243 + store2.setOpen(false, createChangeEventDetails(reason_parts_exports.triggerHover, event));
9244 + return;
9245 + }
9246 + if (wasNestedTriggerHovered && !nestedTriggerHovered && targetInsideTrigger && !disabledRef.current && !store2.select("open") && triggerEl && // Match the hover hook's non-strict mouse fallback for mouse-only event sequences.
9247 + isMouseLikePointerType(pointerTypeRef.current)) {
9248 + const open3 = () => {
9249 + if (!isNestedTriggerHoveredRef.current && !disabledRef.current && !store2.select("open")) {
9250 + store2.setOpen(true, createChangeEventDetails(reason_parts_exports.triggerHover, event, triggerEl));
9251 + }
9252 + };
9253 + const openDelay = getOpenDelay();
9254 + if (openDelay === 0) {
9255 + nestedTriggerOpenTimeout.clear();
9256 + open3();
9257 + } else {
9258 + nestedTriggerOpenTimeout.start(openDelay, open3);
9259 + }
9260 + }
9261 + };
9262 + const rootTriggerProps = store2.useState("triggerProps", isMountedByThisTrigger);
9263 + const shouldApplyRootTriggerProps = isMountedByThisTrigger || trackCursorAxis !== "none";
9264 + const state = {
9265 + open: isOpenedByThisTrigger
9266 + };
9267 + const element = useRenderElement("button", componentProps, {
9268 + state,
9269 + ref: [forwardedRef, registerTrigger, triggerElementRef],
9270 + props: [hoverProps, focusProps, shouldApplyRootTriggerProps ? rootTriggerProps : void 0, {
9271 + onMouseOver(event) {
9272 + handleNestedTriggerHover(event.nativeEvent);
9273 + },
9274 + onFocus(event) {
9275 + if (isEnabledNestedTriggerTarget(getTargetElement(event.nativeEvent))) {
9276 + event.preventBaseUIHandler();
9277 + }
9278 + },
9279 + onMouseLeave() {
9280 + isNestedTriggerHoveredRef.current = false;
9281 + nestedTriggerOpenTimeout.clear();
9282 + pointerTypeRef.current = void 0;
9283 + },
9284 + onPointerEnter(event) {
9285 + pointerTypeRef.current = event.pointerType;
9286 + },
9287 + onPointerDown(event) {
9288 + pointerTypeRef.current = event.pointerType;
9289 + store2.set("closeOnClick", closeOnClick);
9290 + if (closeOnClick && !store2.select("open")) {
9291 + store2.cancelPendingOpen(event.nativeEvent);
9292 + }
9293 + },
9294 + onClick(event) {
9295 + if (closeOnClick && !store2.select("open")) {
9296 + store2.cancelPendingOpen(event.nativeEvent);
9297 + }
9298 + },
9299 + id: thisTriggerId,
9300 + [triggerDisabled]: disabled2 ? "" : void 0,
9301 + [TOOLTIP_TRIGGER_IDENTIFIER]: disabled2 ? void 0 : ""
9302 + }, elementProps],
9303 + stateAttributesMapping: triggerOpenStateMapping2
9304 + });
9305 + return element;
9306 + });
9307 + if (true) TooltipTrigger.displayName = "TooltipTrigger";
9308 +
9309 + // node_modules/@base-ui/react/tooltip/portal/TooltipPortal.mjs
9310 + var React52 = __toESM(require_react(), 1);
9311 +
9312 + // node_modules/@base-ui/react/tooltip/portal/TooltipPortalContext.mjs
9313 + var React51 = __toESM(require_react(), 1);
9314 + var TooltipPortalContext = /* @__PURE__ */ React51.createContext(void 0);
9315 + if (true) TooltipPortalContext.displayName = "TooltipPortalContext";
9316 + function useTooltipPortalContext() {
9317 + const value = React51.useContext(TooltipPortalContext);
9318 + if (value === void 0) {
9319 + throw new Error(true ? "Base UI: <Tooltip.Portal> is missing." : formatErrorMessage_default(70));
9320 + }
9321 + return value;
9322 + }
9323 +
9324 + // node_modules/@base-ui/react/tooltip/portal/TooltipPortal.mjs
9325 + var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1);
9326 + var TooltipPortal = /* @__PURE__ */ React52.forwardRef(function TooltipPortal2(props, forwardedRef) {
9327 + const {
9328 + keepMounted = false,
9329 + ...portalProps
9330 + } = props;
9331 + const store2 = useTooltipRootContext();
9332 + const mounted = store2.useState("mounted");
9333 + const shouldRender = mounted || keepMounted;
9334 + if (!shouldRender) {
9335 + return null;
9336 + }
9337 + return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(TooltipPortalContext.Provider, {
9338 + value: keepMounted,
9339 + children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(FloatingPortalLite, {
9340 + ref: forwardedRef,
9341 + ...portalProps
9342 + })
9343 + });
9344 + });
9345 + if (true) TooltipPortal.displayName = "TooltipPortal";
9346 +
9347 + // node_modules/@base-ui/react/tooltip/positioner/TooltipPositioner.mjs
9348 + var React54 = __toESM(require_react(), 1);
9349 +
9350 + // node_modules/@base-ui/react/tooltip/positioner/TooltipPositionerContext.mjs
9351 + var React53 = __toESM(require_react(), 1);
9352 + var TooltipPositionerContext = /* @__PURE__ */ React53.createContext(void 0);
9353 + if (true) TooltipPositionerContext.displayName = "TooltipPositionerContext";
9354 + function useTooltipPositionerContext() {
9355 + const context = React53.useContext(TooltipPositionerContext);
9356 + if (context === void 0) {
9357 + throw new Error(true ? "Base UI: TooltipPositionerContext is missing. TooltipPositioner parts must be placed within <Tooltip.Positioner>." : formatErrorMessage_default(71));
9358 + }
9359 + return context;
9360 + }
9361 +
9362 + // node_modules/@base-ui/react/tooltip/positioner/TooltipPositioner.mjs
9363 + var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1);
9364 + var TooltipPositioner = /* @__PURE__ */ React54.forwardRef(function TooltipPositioner2(componentProps, forwardedRef) {
9365 + const {
9366 + render,
9367 + className,
9368 + anchor,
9369 + positionMethod = "absolute",
9370 + side = "top",
9371 + align = "center",
9372 + sideOffset = 0,
9373 + alignOffset = 0,
9374 + collisionBoundary = "clipping-ancestors",
9375 + collisionPadding = 5,
9376 + arrowPadding = 5,
9377 + sticky = false,
9378 + disableAnchorTracking = false,
9379 + collisionAvoidance = POPUP_COLLISION_AVOIDANCE,
9380 + style,
9381 + ...elementProps
9382 + } = componentProps;
9383 + const store2 = useTooltipRootContext();
9384 + const keepMounted = useTooltipPortalContext();
9385 + const open3 = store2.useState("open");
9386 + const mounted = store2.useState("mounted");
9387 + const trackCursorAxis = store2.useState("trackCursorAxis");
9388 + const disableHoverablePopup = store2.useState("disableHoverablePopup");
9389 + const floatingRootContext = store2.useState("floatingRootContext");
9390 + const instantType = store2.useState("instantType");
9391 + const transitionStatus = store2.useState("transitionStatus");
9392 + const adaptiveOrigin2 = store2.useState("adaptiveOrigin");
9393 + const positioning = useAnchorPositioning({
9394 + anchor,
9395 + positionMethod,
9396 + floatingRootContext,
9397 + mounted,
9398 + side,
9399 + sideOffset,
9400 + align,
9401 + alignOffset,
9402 + collisionBoundary,
9403 + collisionPadding,
9404 + sticky,
9405 + arrowPadding,
9406 + disableAnchorTracking,
9407 + keepMounted,
9408 + collisionAvoidance,
9409 + adaptiveOrigin: adaptiveOrigin2
9410 + });
9411 + const state = React54.useMemo(() => ({
9412 + open: open3,
9413 + side: positioning.side,
9414 + align: positioning.align,
9415 + anchorHidden: positioning.anchorHidden,
9416 + instant: trackCursorAxis !== "none" ? "tracking-cursor" : instantType
9417 + }), [open3, positioning.side, positioning.align, positioning.anchorHidden, trackCursorAxis, instantType]);
9418 + const element = usePositioner(componentProps, state, {
9419 + styles: positioning.positionerStyles,
9420 + transitionStatus,
9421 + props: elementProps,
9422 + refs: [forwardedRef, store2.useStateSetter("positionerElement")],
9423 + hidden: !mounted,
9424 + inert: !open3 || trackCursorAxis === "both" || disableHoverablePopup
9425 + });
9426 + return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TooltipPositionerContext.Provider, {
9427 + value: positioning,
9428 + children: element
9429 + });
9430 + });
9431 + if (true) TooltipPositioner.displayName = "TooltipPositioner";
9432 +
9433 + // node_modules/@base-ui/react/tooltip/popup/TooltipPopup.mjs
9434 + var React55 = __toESM(require_react(), 1);
9435 + var TooltipPopup = /* @__PURE__ */ React55.forwardRef(function TooltipPopup2(componentProps, forwardedRef) {
9436 + const {
9437 + render,
9438 + className,
9439 + style,
9440 + ...elementProps
9441 + } = componentProps;
9442 + const store2 = useTooltipRootContext();
9443 + const {
9444 + side,
9445 + align
9446 + } = useTooltipPositionerContext();
9447 + const open3 = store2.useState("open");
9448 + const instantType = store2.useState("instantType");
9449 + const transitionStatus = store2.useState("transitionStatus");
9450 + const popupProps = store2.useState("popupProps");
9451 + const floatingContext = store2.useState("floatingRootContext");
9452 + const disabled2 = store2.useState("disabled");
9453 + const closeDelay = store2.useState("closeDelay");
9454 + useOpenChangeComplete({
9455 + open: open3,
9456 + ref: store2.context.popupRef,
9457 + onComplete() {
9458 + if (open3) {
9459 + store2.context.onOpenChangeComplete?.(true);
9460 + }
9461 + }
9462 + });
9463 + useHoverFloatingInteraction(floatingContext, {
9464 + enabled: !disabled2,
9465 + closeDelay
9466 + });
9467 + const setPopupElement = store2.useStateSetter("popupElement");
9468 + const state = {
9469 + open: open3,
9470 + side,
9471 + align,
9472 + instant: instantType,
9473 + transitionStatus
9474 + };
9475 + const element = useRenderElement("div", componentProps, {
9476 + state,
9477 + ref: [forwardedRef, store2.context.popupRef, setPopupElement],
9478 + props: [FOCUSABLE_POPUP_PROPS, popupProps, getDisabledMountTransitionStyles(transitionStatus), elementProps],
9479 + stateAttributesMapping: popupTransitionStateMapping
9480 + });
9481 + return element;
9482 + });
9483 + if (true) TooltipPopup.displayName = "TooltipPopup";
9484 +
9485 + // node_modules/@base-ui/react/tooltip/arrow/TooltipArrow.mjs
9486 + var React56 = __toESM(require_react(), 1);
9487 + var TooltipArrow = /* @__PURE__ */ React56.forwardRef(function TooltipArrow2(componentProps, forwardedRef) {
9488 + const {
9489 + render,
9490 + className,
9491 + style,
9492 + ...elementProps
9493 + } = componentProps;
9494 + const store2 = useTooltipRootContext();
9495 + const {
9496 + arrowRef,
9497 + side,
9498 + align,
9499 + arrowUncentered,
9500 + arrowStyles
9501 + } = useTooltipPositionerContext();
9502 + const open3 = store2.useState("open");
9503 + const instantType = store2.useState("instantType");
9504 + const state = {
9505 + open: open3,
9506 + side,
9507 + align,
9508 + uncentered: arrowUncentered,
9509 + instant: instantType
9510 + };
9511 + const element = useRenderElement("div", componentProps, {
9512 + state,
9513 + ref: [forwardedRef, arrowRef],
9514 + props: [{
9515 + style: arrowStyles,
9516 + "aria-hidden": true
9517 + }, elementProps],
9518 + stateAttributesMapping: popupStateMapping
9519 + });
9520 + return element;
9521 + });
9522 + if (true) TooltipArrow.displayName = "TooltipArrow";
9523 +
9524 + // node_modules/@base-ui/react/tooltip/provider/TooltipProvider.mjs
9525 + var React57 = __toESM(require_react(), 1);
9526 + var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1);
9527 + var TooltipProvider = function TooltipProvider2(props) {
9528 + const {
9529 + delay,
9530 + closeDelay,
9531 + timeout = 400
9532 + } = props;
9533 + const delayValue = React57.useMemo(() => ({
9534 + open: delay,
9535 + close: closeDelay
9536 + }), [delay, closeDelay]);
9537 + return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(TooltipProviderContext.Provider, {
9538 + value: delay,
9539 + children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(FloatingDelayGroup, {
9540 + delay: delayValue,
9541 + timeoutMs: timeout,
9542 + children: props.children
9543 + })
9544 + });
9545 + };
9546 + if (true) TooltipProvider.displayName = "TooltipProvider";
9547 +
9548 + // node_modules/@base-ui/react/tooltip/viewport/TooltipViewport.mjs
9549 + var React58 = __toESM(require_react(), 1);
9550 + var TooltipViewport = /* @__PURE__ */ React58.forwardRef(function TooltipViewport2(componentProps, forwardedRef) {
9551 + const {
9552 + render,
9553 + className,
9554 + style,
9555 + children,
9556 + ...elementProps
9557 + } = componentProps;
9558 + const store2 = useTooltipRootContext();
9559 + const positioner = useTooltipPositionerContext();
9560 + const instantType = store2.useState("instantType");
9561 + const {
9562 + children: childrenToRender,
9563 + state: viewportState
9564 + } = usePopupViewport({
9565 + store: store2,
9566 + side: positioner.side,
9567 + children
9568 + });
9569 + const state = {
9570 + activationDirection: viewportState.activationDirection,
9571 + transitioning: viewportState.transitioning,
9572 + instant: instantType
9573 + };
9574 + return useRenderElement("div", componentProps, {
9575 + state,
9576 + ref: forwardedRef,
9577 + props: [elementProps, {
9578 + children: childrenToRender
9579 + }],
9580 + stateAttributesMapping: popupViewportStateMapping
9581 + });
9582 + });
9583 + if (true) TooltipViewport.displayName = "TooltipViewport";
9584 +
9585 + // node_modules/@base-ui/react/tooltip/store/TooltipHandle.mjs
9586 + var TooltipHandle = class extends BasePopupHandle {
9587 + constructor() {
9588 + super(createNullTooltipStore(), "Tooltip");
9589 + }
9590 + /**
9591 + * Opens the tooltip and associates it with the trigger with the given id.
9592 + *
9593 + * This method should only be called in an event handler or an effect (not during rendering).
9594 + *
9595 + * @param triggerId ID of the trigger to associate with the tooltip. The trigger must be a matching
9596 + * `Tooltip.Trigger` with this handle passed as a prop.
9597 + */
9598 + open(triggerId) {
9599 + this.openByTrigger(triggerId);
9600 + }
9601 + /**
9602 + * Closes the tooltip.
9603 + *
9604 + * This method should only be called in an event handler or an effect (not during rendering).
9605 + */
9606 + close() {
9607 + this.closePopup();
9608 + }
9609 + /**
9610 + * Whether the tooltip is currently open. Returns `false` while no root is attached to the handle.
9611 + */
9612 + get isOpen() {
9613 + return this.attachedStore?.select("open") ?? false;
9614 + }
9615 + };
9616 + function createTooltipHandle() {
9617 + return new TooltipHandle();
9618 + }
9619 +
9620 + // node_modules/@base-ui/react/use-render/useRender.mjs
9621 + function useRender(params) {
9622 + return useRenderElement(params.defaultTagName ?? "div", params, params);
9623 + }
9624 +
9625 + // packages/ui/build-module/text/text.mjs
9626 + var import_element10 = __toESM(require_element(), 1);
774 9627 var STYLE_HASH_ATTRIBUTE = "data-wp-hash";
775 9628 function getRuntime() {
776 9629 const globalScope = globalThis;
777 9630 if (globalScope.__wpStyleRuntime) {
@@ -851,18 +9704,791 @@
851 9704 injectStyle(targetDocument, hash, css);
852 9705 }
853 9706 }
854 9707 if (typeof process === "undefined" || true) {
855 - registerStyle("fa606a57ae", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{.f37b9e2e191ebd66__visually-hidden{word-wrap:normal;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal}}}");
9708 + registerStyle("3167e7d116", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._83ed8a8da5dd50ea__text{text-wrap:pretty;margin:0}._14437cfb77831647__heading-2xl{--_gcd-heading-font-size:var(--wpds-typography-font-size-2xl,32px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-emphasis,600);--_gcd-p-font-size:var(--wpds-typography-font-size-2xl,32px);--_gcd-p-line-height:var(--wpds-typography-line-height-2xl,40px);font-size:var(--wpds-typography-font-size-2xl,32px);line-height:var(--wpds-typography-line-height-2xl,40px)}._14437cfb77831647__heading-2xl,._3c78b7fa9b4072dd__heading-xl{font-family:var(--wpds-typography-font-family-heading,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-weight:var(--wpds-typography-font-weight-emphasis,600)}._3c78b7fa9b4072dd__heading-xl{--_gcd-heading-font-size:var(--wpds-typography-font-size-xl,20px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-emphasis,600);--_gcd-p-font-size:var(--wpds-typography-font-size-xl,20px);--_gcd-p-line-height:var(--wpds-typography-line-height-md,24px);font-size:var(--wpds-typography-font-size-xl,20px);line-height:var(--wpds-typography-line-height-md,24px)}.aa58f227716bcde2__heading-lg{--_gcd-heading-font-size:var(--wpds-typography-font-size-lg,15px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-emphasis,600);--_gcd-p-font-size:var(--wpds-typography-font-size-lg,15px);--_gcd-p-line-height:var(--wpds-typography-line-height-sm,20px);font-size:var(--wpds-typography-font-size-lg,15px)}.aa58f227716bcde2__heading-lg,.fc4da56d8dfe52c4__heading-md{font-family:var(--wpds-typography-font-family-heading,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-weight:var(--wpds-typography-font-weight-emphasis,600);line-height:var(--wpds-typography-line-height-sm,20px)}.fc4da56d8dfe52c4__heading-md{--_gcd-heading-font-size:var(--wpds-typography-font-size-md,13px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-emphasis,600);--_gcd-p-font-size:var(--wpds-typography-font-size-md,13px);--_gcd-p-line-height:var(--wpds-typography-line-height-sm,20px);font-size:var(--wpds-typography-font-size-md,13px)}.a9b78c7c82e8dff7__heading-sm{--_gcd-heading-font-size:var(--wpds-typography-font-size-xs,11px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-emphasis,600);--_gcd-p-font-size:var(--wpds-typography-font-size-xs,11px);--_gcd-p-line-height:var(--wpds-typography-line-height-xs,16px);font-family:var(--wpds-typography-font-family-heading,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wpds-typography-font-size-xs,11px);font-weight:var(--wpds-typography-font-weight-emphasis,600);line-height:var(--wpds-typography-line-height-xs,16px);text-transform:uppercase}._305ff559e52180d5__body-xl{--_gcd-heading-font-size:var(--wpds-typography-font-size-xl,20px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-default,400);--_gcd-p-font-size:var(--wpds-typography-font-size-xl,20px);--_gcd-p-line-height:var(--wpds-typography-line-height-xl,32px);font-size:var(--wpds-typography-font-size-xl,20px);line-height:var(--wpds-typography-line-height-xl,32px)}._305ff559e52180d5__body-xl,.ca1aa3fc2029e958__body-lg{font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-weight:var(--wpds-typography-font-weight-default,400)}.ca1aa3fc2029e958__body-lg{--_gcd-heading-font-size:var(--wpds-typography-font-size-lg,15px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-default,400);--_gcd-p-font-size:var(--wpds-typography-font-size-lg,15px);--_gcd-p-line-height:var(--wpds-typography-line-height-md,24px);font-size:var(--wpds-typography-font-size-lg,15px);line-height:var(--wpds-typography-line-height-md,24px)}._131101940be12424__body-md{--_gcd-heading-font-size:var(--wpds-typography-font-size-md,13px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-default,400);--_gcd-p-font-size:var(--wpds-typography-font-size-md,13px);--_gcd-p-line-height:var(--wpds-typography-line-height-sm,20px);font-size:var(--wpds-typography-font-size-md,13px);line-height:var(--wpds-typography-line-height-sm,20px)}._0e8d87a42c1f75fa__body-sm,._131101940be12424__body-md{font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-weight:var(--wpds-typography-font-weight-default,400)}._0e8d87a42c1f75fa__body-sm{--_gcd-heading-font-size:var(--wpds-typography-font-size-sm,12px);--_gcd-heading-font-weight:var(--wpds-typography-font-weight-default,400);--_gcd-p-font-size:var(--wpds-typography-font-size-sm,12px);--_gcd-p-line-height:var(--wpds-typography-line-height-xs,16px);font-size:var(--wpds-typography-font-size-sm,12px);line-height:var(--wpds-typography-line-height-xs,16px)}}}');
856 9709 }
857 - var style_default = { "visually-hidden": "f37b9e2e191ebd66__visually-hidden" };
858 - var VisuallyHidden = (0, import_element.forwardRef)(
9710 + var style_default = { "text": "_83ed8a8da5dd50ea__text", "heading-2xl": "_14437cfb77831647__heading-2xl", "heading-xl": "_3c78b7fa9b4072dd__heading-xl", "heading-lg": "aa58f227716bcde2__heading-lg", "heading-md": "fc4da56d8dfe52c4__heading-md", "heading-sm": "a9b78c7c82e8dff7__heading-sm", "body-xl": "_305ff559e52180d5__body-xl", "body-lg": "ca1aa3fc2029e958__body-lg", "body-md": "_131101940be12424__body-md", "body-sm": "_0e8d87a42c1f75fa__body-sm" };
9711 + if (typeof process === "undefined" || true) {
9712 + registerStyle("e8e31009f5", "._6defc79820e382c6__button{box-sizing:var(--_gcd-button-box-sizing,border-box);font-family:var(--_gcd-button-font-family,inherit);font-size:var(--_gcd-button-font-size,inherit);font-weight:var(--_gcd-button-font-weight,inherit)}.d2cff2e5dea83bd1__input{box-sizing:var(--_gcd-input-box-sizing,border-box);font-family:var(--_gcd-input-font-family,inherit);font-size:var(--_gcd-input-font-size,inherit);font-weight:var(--_gcd-input-font-weight,inherit);margin:var(--_gcd-input-margin,0);&::placeholder{color:var(--_gcd-input-placeholder-color,var(--wpds-color-foreground-interactive-neutral-weak,#707070))}&:is(textarea,[type=text],[type=password],[type=color],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){background-color:var(--_gcd-input-background-color,transparent);border:var(--_gcd-input-border,none);border-radius:var(--_gcd-input-border-radius,0);box-shadow:var(--_gcd-input-box-shadow,0 0 0 transparent);color:var(--_gcd-input-color,var(--wpds-color-foreground-interactive-neutral,#1e1e1e));&:focus{border-color:var(--_gcd-input-border-color-focus,var(--wp-admin-theme-color));box-shadow:var(--_gcd-input-box-shadow-focus,none);outline:var(--_gcd-input-outline-focus,none)}&:disabled{background:var(--_gcd-input-background-disabled,transparent);border-color:var(--_gcd-input-border-color-disabled,transparent);box-shadow:var(--_gcd-input-box-shadow-disabled,none);color:var(--_gcd-input-color-disabled,var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d))}}&:is(textarea,[type=text],[type=password],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){line-height:var(--_gcd-input-line-height,inherit);min-height:var(--_gcd-input-min-height,auto);padding:var(--_gcd-input-padding,0)}}._547d86373d02e108__textarea{box-sizing:var(--_gcd-textarea-box-sizing,border-box);overflow:var(--_gcd-textarea-overflow,auto);resize:var(--_gcd-textarea-resize,block)}._8c15fd0ed9f28ba4__div{outline:var(--_gcd-div-outline,0 solid transparent)}p._43cec3e1eec1066d__p{font-size:var(--_gcd-p-font-size,13px);line-height:var(--_gcd-p-line-height,1.5);margin:var(--_gcd-p-margin,0)}:is(h1,h2,h3,h4,h5,h6).e97669c6d9a38497__heading{color:var(--_gcd-heading-color,var(--wpds-color-foreground-content-neutral,#1e1e1e));font-size:var(--_gcd-heading-font-size,inherit);font-weight:var(--_gcd-heading-font-weight,var(--wpds-typography-font-weight-emphasis,600));margin:var(--_gcd-heading-margin,0)}._2c0831b0499dbd6e__a,._2c0831b0499dbd6e__a:is(:hover,:focus,:active){border-radius:var(--_gcd-a-border-radius,0);box-shadow:var(--_gcd-a-box-shadow,none);color:var(--_gcd-a-color,inherit);outline:var(--_gcd-a-outline,0 solid transparent);transition:var(--_gcd-a-transition,none)}.c59a0ebebd71fa4a__ol{list-style:var(--_gcd-ol-list-style,none);margin:var(--_gcd-ol-margin,0);padding-block:var(--_gcd-ol-padding-block,0);padding-inline:var(--_gcd-ol-padding-inline,0)}._46b5cb0c8e24e8c9__li{margin:var(--_gcd-li-margin,0)}");
9713 + }
9714 + var global_css_defense_default = { "button": "_6defc79820e382c6__button", "input": "d2cff2e5dea83bd1__input", "textarea": "_547d86373d02e108__textarea", "div": "_8c15fd0ed9f28ba4__div", "p": "_43cec3e1eec1066d__p", "heading": "e97669c6d9a38497__heading", "a": "_2c0831b0499dbd6e__a", "ol": "c59a0ebebd71fa4a__ol", "li": "_46b5cb0c8e24e8c9__li" };
9715 + var Text = (0, import_element10.forwardRef)(function Text2({ variant = "body-md", render, className, ...props }, ref) {
9716 + const element = useRender({
9717 + render,
9718 + defaultTagName: "span",
9719 + ref,
9720 + props: mergeProps(props, {
9721 + className: clsx_default(
9722 + style_default.text,
9723 + global_css_defense_default.heading,
9724 + global_css_defense_default.p,
9725 + style_default[variant],
9726 + className
9727 + )
9728 + })
9729 + });
9730 + return element;
9731 + });
9732 +
9733 + // packages/ui/build-module/tooltip/popup.mjs
9734 + var import_element14 = __toESM(require_element(), 1);
9735 +
9736 + // packages/ui/build-module/tooltip/portal.mjs
9737 + var import_element11 = __toESM(require_element(), 1);
9738 +
9739 + // packages/ui/build-module/utils/wp-compat-overlay-slot.mjs
9740 + var STYLE_HASH_ATTRIBUTE2 = "data-wp-hash";
9741 + function getRuntime2() {
9742 + const globalScope = globalThis;
9743 + if (globalScope.__wpStyleRuntime) {
9744 + return globalScope.__wpStyleRuntime;
9745 + }
9746 + globalScope.__wpStyleRuntime = {
9747 + documents: /* @__PURE__ */ new Map(),
9748 + styles: /* @__PURE__ */ new Map(),
9749 + injectedStyles: /* @__PURE__ */ new WeakMap()
9750 + };
9751 + if (typeof document !== "undefined") {
9752 + registerDocument2(document);
9753 + }
9754 + return globalScope.__wpStyleRuntime;
9755 + }
9756 + function documentContainsStyleHash2(targetDocument, hash) {
9757 + if (!targetDocument.head) {
9758 + return false;
9759 + }
9760 + for (const style of targetDocument.head.querySelectorAll(
9761 + `style[${STYLE_HASH_ATTRIBUTE2}]`
9762 + )) {
9763 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE2) === hash) {
9764 + return true;
9765 + }
9766 + }
9767 + return false;
9768 + }
9769 + function injectStyle2(targetDocument, hash, css) {
9770 + if (!targetDocument.head) {
9771 + return;
9772 + }
9773 + const runtime = getRuntime2();
9774 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
9775 + if (!injectedStyles) {
9776 + injectedStyles = /* @__PURE__ */ new Set();
9777 + runtime.injectedStyles.set(targetDocument, injectedStyles);
9778 + }
9779 + if (injectedStyles.has(hash)) {
9780 + return;
9781 + }
9782 + if (documentContainsStyleHash2(targetDocument, hash)) {
9783 + injectedStyles.add(hash);
9784 + return;
9785 + }
9786 + const style = targetDocument.createElement("style");
9787 + style.setAttribute(STYLE_HASH_ATTRIBUTE2, hash);
9788 + style.appendChild(targetDocument.createTextNode(css));
9789 + targetDocument.head.appendChild(style);
9790 + injectedStyles.add(hash);
9791 + }
9792 + function registerDocument2(targetDocument) {
9793 + const runtime = getRuntime2();
9794 + runtime.documents.set(
9795 + targetDocument,
9796 + (runtime.documents.get(targetDocument) ?? 0) + 1
9797 + );
9798 + for (const [hash, css] of runtime.styles) {
9799 + injectStyle2(targetDocument, hash, css);
9800 + }
9801 + return () => {
9802 + const count = runtime.documents.get(targetDocument);
9803 + if (count === void 0) {
9804 + return;
9805 + }
9806 + if (count <= 1) {
9807 + runtime.documents.delete(targetDocument);
9808 + return;
9809 + }
9810 + runtime.documents.set(targetDocument, count - 1);
9811 + };
9812 + }
9813 + function registerStyle2(hash, css) {
9814 + const runtime = getRuntime2();
9815 + runtime.styles.set(hash, css);
9816 + for (const targetDocument of runtime.documents.keys()) {
9817 + injectStyle2(targetDocument, hash, css);
9818 + }
9819 + }
9820 + if (typeof process === "undefined" || true) {
9821 + registerStyle2("be37f31c1e", "._11fc52b637ff8a7e__slot{inset:0;isolation:isolate;pointer-events:none;position:fixed;z-index:1000000003}@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._11fc52b637ff8a7e__slot>*{pointer-events:auto}}}");
9822 + }
9823 + var wp_compat_overlay_slot_default = { "slot": "_11fc52b637ff8a7e__slot" };
9824 + var WP_COMPAT_OVERLAY_SLOT_ATTRIBUTE = "data-wp-compat-overlay-slot";
9825 + function resolveOwnerDocument() {
9826 + return typeof document === "undefined" ? null : document;
9827 + }
9828 + function isInWordPressEnvironment() {
9829 + let topWp;
9830 + try {
9831 + topWp = window.top?.wp;
9832 + } catch {
9833 + }
9834 + const wp4 = topWp ?? window.wp;
9835 + return typeof wp4?.components === "object" && wp4.components !== null;
9836 + }
9837 + var cachedSlot = null;
9838 + function ensureSlotIsAccessible(element) {
9839 + element.setAttribute("aria-hidden", "false");
9840 + return element;
9841 + }
9842 + function createSlot(ownerDocument2) {
9843 + const element = ownerDocument2.createElement("div");
9844 + element.setAttribute(WP_COMPAT_OVERLAY_SLOT_ATTRIBUTE, "");
9845 + if (wp_compat_overlay_slot_default.slot) {
9846 + element.classList.add(wp_compat_overlay_slot_default.slot);
9847 + }
9848 + ownerDocument2.body.appendChild(element);
9849 + return element;
9850 + }
9851 + function getWpCompatOverlaySlot() {
9852 + if (typeof window === "undefined") {
9853 + return void 0;
9854 + }
9855 + if (!isInWordPressEnvironment() && window.__wpUiCompatOverlaySlotEnabled !== true) {
9856 + return void 0;
9857 + }
9858 + const ownerDocument2 = resolveOwnerDocument();
9859 + if (!ownerDocument2 || !ownerDocument2.body) {
9860 + return void 0;
9861 + }
9862 + if (cachedSlot && cachedSlot.ownerDocument === ownerDocument2 && cachedSlot.isConnected) {
9863 + return ensureSlotIsAccessible(cachedSlot);
9864 + }
9865 + const existing = ownerDocument2.querySelector(
9866 + `[${WP_COMPAT_OVERLAY_SLOT_ATTRIBUTE}]`
9867 + );
9868 + if (existing instanceof HTMLDivElement) {
9869 + cachedSlot = ensureSlotIsAccessible(existing);
9870 + return cachedSlot;
9871 + }
9872 + if (cachedSlot?.isConnected) {
9873 + cachedSlot.remove();
9874 + }
9875 + cachedSlot = ensureSlotIsAccessible(createSlot(ownerDocument2));
9876 + return cachedSlot;
9877 + }
9878 +
9879 + // packages/ui/build-module/tooltip/portal.mjs
9880 + var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1);
9881 + var Portal = (0, import_element11.forwardRef)(
9882 + function TooltipPortal3({ container, ...restProps }, ref) {
9883 + return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
9884 + index_parts_exports2.Portal,
9885 + {
9886 + container: container ?? getWpCompatOverlaySlot(),
9887 + ...restProps,
9888 + ref
9889 + }
9890 + );
9891 + }
9892 + );
9893 +
9894 + // packages/ui/build-module/tooltip/positioner.mjs
9895 + var import_element12 = __toESM(require_element(), 1);
9896 + var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
9897 + var STYLE_HASH_ATTRIBUTE3 = "data-wp-hash";
9898 + function getRuntime3() {
9899 + const globalScope = globalThis;
9900 + if (globalScope.__wpStyleRuntime) {
9901 + return globalScope.__wpStyleRuntime;
9902 + }
9903 + globalScope.__wpStyleRuntime = {
9904 + documents: /* @__PURE__ */ new Map(),
9905 + styles: /* @__PURE__ */ new Map(),
9906 + injectedStyles: /* @__PURE__ */ new WeakMap()
9907 + };
9908 + if (typeof document !== "undefined") {
9909 + registerDocument3(document);
9910 + }
9911 + return globalScope.__wpStyleRuntime;
9912 + }
9913 + function documentContainsStyleHash3(targetDocument, hash) {
9914 + if (!targetDocument.head) {
9915 + return false;
9916 + }
9917 + for (const style of targetDocument.head.querySelectorAll(
9918 + `style[${STYLE_HASH_ATTRIBUTE3}]`
9919 + )) {
9920 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE3) === hash) {
9921 + return true;
9922 + }
9923 + }
9924 + return false;
9925 + }
9926 + function injectStyle3(targetDocument, hash, css) {
9927 + if (!targetDocument.head) {
9928 + return;
9929 + }
9930 + const runtime = getRuntime3();
9931 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
9932 + if (!injectedStyles) {
9933 + injectedStyles = /* @__PURE__ */ new Set();
9934 + runtime.injectedStyles.set(targetDocument, injectedStyles);
9935 + }
9936 + if (injectedStyles.has(hash)) {
9937 + return;
9938 + }
9939 + if (documentContainsStyleHash3(targetDocument, hash)) {
9940 + injectedStyles.add(hash);
9941 + return;
9942 + }
9943 + const style = targetDocument.createElement("style");
9944 + style.setAttribute(STYLE_HASH_ATTRIBUTE3, hash);
9945 + style.appendChild(targetDocument.createTextNode(css));
9946 + targetDocument.head.appendChild(style);
9947 + injectedStyles.add(hash);
9948 + }
9949 + function registerDocument3(targetDocument) {
9950 + const runtime = getRuntime3();
9951 + runtime.documents.set(
9952 + targetDocument,
9953 + (runtime.documents.get(targetDocument) ?? 0) + 1
9954 + );
9955 + for (const [hash, css] of runtime.styles) {
9956 + injectStyle3(targetDocument, hash, css);
9957 + }
9958 + return () => {
9959 + const count = runtime.documents.get(targetDocument);
9960 + if (count === void 0) {
9961 + return;
9962 + }
9963 + if (count <= 1) {
9964 + runtime.documents.delete(targetDocument);
9965 + return;
9966 + }
9967 + runtime.documents.set(targetDocument, count - 1);
9968 + };
9969 + }
9970 + function registerStyle3(hash, css) {
9971 + const runtime = getRuntime3();
9972 + runtime.styles.set(hash, css);
9973 + for (const targetDocument of runtime.documents.keys()) {
9974 + injectStyle3(targetDocument, hash, css);
9975 + }
9976 + }
9977 + if (typeof process === "undefined" || true) {
9978 + registerStyle3("10f3806643", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._336cd3e4e743482f__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}}");
9979 + }
9980 + var resets_default = { "box-sizing": "_336cd3e4e743482f__box-sizing" };
9981 + if (typeof process === "undefined" || true) {
9982 + registerStyle3("19fcc06039", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._480b748dd3510e64__positioner{z-index:var(--wp-ui-tooltip-z-index,initial)}._50096b232db7709d__popup{--_wp-ui-elevation-sm:0 1px 2px rgba(0,0,0,.05),0 2px 3px rgba(0,0,0,.04),0 6px 6px rgba(0,0,0,.03),0 8px 8px rgba(0,0,0,.02);background-color:var(--wpds-color-background-surface-neutral-strong,#fff);border-radius:var(--wpds-border-radius-md,4px);box-shadow:var(--_wp-ui-elevation-sm);color:var(--wpds-color-foreground-content-neutral,#1e1e1e);font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wpds-typography-font-size-sm,12px);line-height:1.4;padding:var(--wpds-dimension-padding-xs,4px) var(--wpds-dimension-padding-sm,8px);@media (forced-colors:active){border-bottom-color:CanvasText;border-bottom-style:solid;border-bottom-width:1px;border-left-color:CanvasText;border-left-style:solid;border-left-width:1px;border-right-color:CanvasText;border-right-style:solid;border-right-width:1px;border-top-color:CanvasText;border-top-style:solid;border-top-width:1px}}}}');
9983 + }
9984 + var style_default2 = { "positioner": "_480b748dd3510e64__positioner", "popup": "_50096b232db7709d__popup" };
9985 + var Positioner = (0, import_element12.forwardRef)(
9986 + function TooltipPositioner3({ align = "center", className, side = "top", sideOffset = 4, ...props }, ref) {
9987 + return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
9988 + index_parts_exports2.Positioner,
9989 + {
9990 + ref,
9991 + align,
9992 + side,
9993 + sideOffset,
9994 + ...props,
9995 + className: clsx_default(
9996 + resets_default["box-sizing"],
9997 + style_default2.positioner,
9998 + className
9999 + )
10000 + }
10001 + );
10002 + }
10003 + );
10004 +
10005 + // packages/ui/build-module/utils/render-slot-with-children.mjs
10006 + var import_element13 = __toESM(require_element(), 1);
10007 + function renderSlotWithChildren(slot, defaultSlot, children) {
10008 + return (0, import_element13.cloneElement)(slot ?? defaultSlot, { children });
10009 + }
10010 +
10011 + // packages/ui/build-module/utils/theme-provider.mjs
10012 + var theme = __toESM(require_theme(), 1);
10013 +
10014 + // packages/ui/build-module/lock-unlock.mjs
10015 + var import_private_apis = __toESM(require_private_apis(), 1);
10016 + var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
10017 + "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
10018 + "@wordpress/ui"
10019 + );
10020 +
10021 + // packages/ui/build-module/utils/theme-provider.mjs
10022 + function getThemeProvider() {
10023 + const themePackage = theme;
10024 + if (themePackage.ThemeProvider) {
10025 + return themePackage.ThemeProvider;
10026 + }
10027 + if (!themePackage.privateApis) {
10028 + throw new Error(
10029 + "@wordpress/ui: @wordpress/theme must expose `ThemeProvider` or `privateApis.ThemeProvider`."
10030 + );
10031 + }
10032 + return unlock(
10033 + themePackage.privateApis
10034 + ).ThemeProvider;
10035 + }
10036 + var ThemeProvider = getThemeProvider();
10037 +
10038 + // packages/ui/build-module/tooltip/popup.mjs
10039 + var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
10040 + var STYLE_HASH_ATTRIBUTE4 = "data-wp-hash";
10041 + function getRuntime4() {
10042 + const globalScope = globalThis;
10043 + if (globalScope.__wpStyleRuntime) {
10044 + return globalScope.__wpStyleRuntime;
10045 + }
10046 + globalScope.__wpStyleRuntime = {
10047 + documents: /* @__PURE__ */ new Map(),
10048 + styles: /* @__PURE__ */ new Map(),
10049 + injectedStyles: /* @__PURE__ */ new WeakMap()
10050 + };
10051 + if (typeof document !== "undefined") {
10052 + registerDocument4(document);
10053 + }
10054 + return globalScope.__wpStyleRuntime;
10055 + }
10056 + function documentContainsStyleHash4(targetDocument, hash) {
10057 + if (!targetDocument.head) {
10058 + return false;
10059 + }
10060 + for (const style of targetDocument.head.querySelectorAll(
10061 + `style[${STYLE_HASH_ATTRIBUTE4}]`
10062 + )) {
10063 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE4) === hash) {
10064 + return true;
10065 + }
10066 + }
10067 + return false;
10068 + }
10069 + function injectStyle4(targetDocument, hash, css) {
10070 + if (!targetDocument.head) {
10071 + return;
10072 + }
10073 + const runtime = getRuntime4();
10074 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
10075 + if (!injectedStyles) {
10076 + injectedStyles = /* @__PURE__ */ new Set();
10077 + runtime.injectedStyles.set(targetDocument, injectedStyles);
10078 + }
10079 + if (injectedStyles.has(hash)) {
10080 + return;
10081 + }
10082 + if (documentContainsStyleHash4(targetDocument, hash)) {
10083 + injectedStyles.add(hash);
10084 + return;
10085 + }
10086 + const style = targetDocument.createElement("style");
10087 + style.setAttribute(STYLE_HASH_ATTRIBUTE4, hash);
10088 + style.appendChild(targetDocument.createTextNode(css));
10089 + targetDocument.head.appendChild(style);
10090 + injectedStyles.add(hash);
10091 + }
10092 + function registerDocument4(targetDocument) {
10093 + const runtime = getRuntime4();
10094 + runtime.documents.set(
10095 + targetDocument,
10096 + (runtime.documents.get(targetDocument) ?? 0) + 1
10097 + );
10098 + for (const [hash, css] of runtime.styles) {
10099 + injectStyle4(targetDocument, hash, css);
10100 + }
10101 + return () => {
10102 + const count = runtime.documents.get(targetDocument);
10103 + if (count === void 0) {
10104 + return;
10105 + }
10106 + if (count <= 1) {
10107 + runtime.documents.delete(targetDocument);
10108 + return;
10109 + }
10110 + runtime.documents.set(targetDocument, count - 1);
10111 + };
10112 + }
10113 + function registerStyle4(hash, css) {
10114 + const runtime = getRuntime4();
10115 + runtime.styles.set(hash, css);
10116 + for (const targetDocument of runtime.documents.keys()) {
10117 + injectStyle4(targetDocument, hash, css);
10118 + }
10119 + }
10120 + if (typeof process === "undefined" || true) {
10121 + registerStyle4("19fcc06039", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._480b748dd3510e64__positioner{z-index:var(--wp-ui-tooltip-z-index,initial)}._50096b232db7709d__popup{--_wp-ui-elevation-sm:0 1px 2px rgba(0,0,0,.05),0 2px 3px rgba(0,0,0,.04),0 6px 6px rgba(0,0,0,.03),0 8px 8px rgba(0,0,0,.02);background-color:var(--wpds-color-background-surface-neutral-strong,#fff);border-radius:var(--wpds-border-radius-md,4px);box-shadow:var(--_wp-ui-elevation-sm);color:var(--wpds-color-foreground-content-neutral,#1e1e1e);font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wpds-typography-font-size-sm,12px);line-height:1.4;padding:var(--wpds-dimension-padding-xs,4px) var(--wpds-dimension-padding-sm,8px);@media (forced-colors:active){border-bottom-color:CanvasText;border-bottom-style:solid;border-bottom-width:1px;border-left-color:CanvasText;border-left-style:solid;border-left-width:1px;border-right-color:CanvasText;border-right-style:solid;border-right-width:1px;border-top-color:CanvasText;border-top-style:solid;border-top-width:1px}}}}');
10122 + }
10123 + var style_default3 = { "positioner": "_480b748dd3510e64__positioner", "popup": "_50096b232db7709d__popup" };
10124 + var POPUP_COLOR = { background: "#1e1e1e" };
10125 + var Popup = (0, import_element14.forwardRef)(function TooltipPopup3({ portal, positioner, children, className, ...props }, ref) {
10126 + const popupContent = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ThemeProvider, { color: POPUP_COLOR, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
10127 + index_parts_exports2.Popup,
10128 + {
10129 + ref,
10130 + className: clsx_default(style_default3.popup, className),
10131 + ...props,
10132 + children
10133 + }
10134 + ) });
10135 + const positionedPopup = renderSlotWithChildren(
10136 + positioner,
10137 + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Positioner, {}),
10138 + popupContent
10139 + );
10140 + return renderSlotWithChildren(portal, /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Portal, {}), positionedPopup);
10141 + });
10142 +
10143 + // packages/ui/build-module/tooltip/trigger.mjs
10144 + var import_element15 = __toESM(require_element(), 1);
10145 + var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
10146 + var Trigger = (0, import_element15.forwardRef)(
10147 + function TooltipTrigger3(props, ref) {
10148 + return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(index_parts_exports2.Trigger, { ref, ...props });
10149 + }
10150 + );
10151 +
10152 + // packages/ui/build-module/utils/direction-provider.mjs
10153 + var import_i18n = __toESM(require_i18n(), 1);
10154 + var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
10155 + function DirectionProvider3({ children }) {
10156 + return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DirectionProvider, { direction: (0, import_i18n.isRTL)() ? "rtl" : "ltr", children });
10157 + }
10158 +
10159 + // packages/ui/build-module/tooltip/root.mjs
10160 + var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
10161 + function Root(props) {
10162 + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DirectionProvider3, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(index_parts_exports2.Root, { ...props }) });
10163 + }
10164 +
10165 + // packages/ui/build-module/link/link.mjs
10166 + var import_element16 = __toESM(require_element(), 1);
10167 + var import_i18n2 = __toESM(require_i18n(), 1);
10168 + var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
10169 + var STYLE_HASH_ATTRIBUTE5 = "data-wp-hash";
10170 + function getRuntime5() {
10171 + const globalScope = globalThis;
10172 + if (globalScope.__wpStyleRuntime) {
10173 + return globalScope.__wpStyleRuntime;
10174 + }
10175 + globalScope.__wpStyleRuntime = {
10176 + documents: /* @__PURE__ */ new Map(),
10177 + styles: /* @__PURE__ */ new Map(),
10178 + injectedStyles: /* @__PURE__ */ new WeakMap()
10179 + };
10180 + if (typeof document !== "undefined") {
10181 + registerDocument5(document);
10182 + }
10183 + return globalScope.__wpStyleRuntime;
10184 + }
10185 + function documentContainsStyleHash5(targetDocument, hash) {
10186 + if (!targetDocument.head) {
10187 + return false;
10188 + }
10189 + for (const style of targetDocument.head.querySelectorAll(
10190 + `style[${STYLE_HASH_ATTRIBUTE5}]`
10191 + )) {
10192 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE5) === hash) {
10193 + return true;
10194 + }
10195 + }
10196 + return false;
10197 + }
10198 + function injectStyle5(targetDocument, hash, css) {
10199 + if (!targetDocument.head) {
10200 + return;
10201 + }
10202 + const runtime = getRuntime5();
10203 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
10204 + if (!injectedStyles) {
10205 + injectedStyles = /* @__PURE__ */ new Set();
10206 + runtime.injectedStyles.set(targetDocument, injectedStyles);
10207 + }
10208 + if (injectedStyles.has(hash)) {
10209 + return;
10210 + }
10211 + if (documentContainsStyleHash5(targetDocument, hash)) {
10212 + injectedStyles.add(hash);
10213 + return;
10214 + }
10215 + const style = targetDocument.createElement("style");
10216 + style.setAttribute(STYLE_HASH_ATTRIBUTE5, hash);
10217 + style.appendChild(targetDocument.createTextNode(css));
10218 + targetDocument.head.appendChild(style);
10219 + injectedStyles.add(hash);
10220 + }
10221 + function registerDocument5(targetDocument) {
10222 + const runtime = getRuntime5();
10223 + runtime.documents.set(
10224 + targetDocument,
10225 + (runtime.documents.get(targetDocument) ?? 0) + 1
10226 + );
10227 + for (const [hash, css] of runtime.styles) {
10228 + injectStyle5(targetDocument, hash, css);
10229 + }
10230 + return () => {
10231 + const count = runtime.documents.get(targetDocument);
10232 + if (count === void 0) {
10233 + return;
10234 + }
10235 + if (count <= 1) {
10236 + runtime.documents.delete(targetDocument);
10237 + return;
10238 + }
10239 + runtime.documents.set(targetDocument, count - 1);
10240 + };
10241 + }
10242 + function registerStyle5(hash, css) {
10243 + const runtime = getRuntime5();
10244 + runtime.styles.set(hash, css);
10245 + for (const targetDocument of runtime.documents.keys()) {
10246 + injectStyle5(targetDocument, hash, css);
10247 + }
10248 + }
10249 + if (typeof process === "undefined" || true) {
10250 + registerStyle5("10f3806643", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._336cd3e4e743482f__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}}");
10251 + }
10252 + var resets_default2 = { "box-sizing": "_336cd3e4e743482f__box-sizing" };
10253 + if (typeof process === "undefined" || true) {
10254 + registerStyle5("08122b3d53", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{.af79fb116edb0dd7__outset-ring--focus:focus,.dfcfdc28396e5d98__outset-ring--focus-visible:focus-visible,.e5cd9ee879f6403a__outset-ring--focus-within:focus-within,:focus-visible ._81935a08e952f267__outset-ring--focus-parent-visible{--_gcd-a-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));--_gcd-div-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}._3c9f5ee9fc9c136d__outset-ring--focus-within-except-active:focus-within,.abc777e9713fa711__outset-ring--focus-except-active:focus{outline:none}._3c9f5ee9fc9c136d__outset-ring--focus-within-except-active:focus-within:not(:has(:active)),.abc777e9713fa711__outset-ring--focus-except-active:focus:not(:active){--_gcd-a-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));--_gcd-div-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}}}");
10255 + }
10256 + var focus_module_default = { "outset-ring--focus": "af79fb116edb0dd7__outset-ring--focus", "outset-ring--focus-visible": "dfcfdc28396e5d98__outset-ring--focus-visible", "outset-ring--focus-within": "e5cd9ee879f6403a__outset-ring--focus-within", "outset-ring--focus-parent-visible": "_81935a08e952f267__outset-ring--focus-parent-visible", "outset-ring--focus-except-active": "abc777e9713fa711__outset-ring--focus-except-active", "outset-ring--focus-within-except-active": "_3c9f5ee9fc9c136d__outset-ring--focus-within-except-active" };
10257 + if (typeof process === "undefined" || true) {
10258 + registerStyle5("e8e6a9be37", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{.d4250949359b05ce__link{text-decoration-thickness:from-font;text-underline-offset:.2em}.c6055659b8e2cd2c__is-brand,.c6055659b8e2cd2c__is-brand:visited{--_gcd-a-color:var(--wpds-color-foreground-interactive-brand,var(--wp-admin-theme-color,#3858e9));color:var(--wpds-color-foreground-interactive-brand,var(--wp-admin-theme-color,#3858e9))}.c6055659b8e2cd2c__is-brand:active,.c6055659b8e2cd2c__is-brand:hover{--_gcd-a-color:var(--wpds-color-foreground-interactive-brand-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 52%,#000));color:var(--wpds-color-foreground-interactive-brand-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 52%,#000))}._92e0dfcaeee15b88__is-neutral,._92e0dfcaeee15b88__is-neutral:visited{--_gcd-a-color:var(--wpds-color-foreground-interactive-neutral,#1e1e1e);color:var(--wpds-color-foreground-interactive-neutral,#1e1e1e);text-decoration-color:var(--wpds-color-stroke-interactive-neutral,#8d8d8d)}._92e0dfcaeee15b88__is-neutral:active,._92e0dfcaeee15b88__is-neutral:hover{--_gcd-a-color:var(--wpds-color-foreground-interactive-neutral-active,#1e1e1e);color:var(--wpds-color-foreground-interactive-neutral-active,#1e1e1e)}.cf122a9bf1035d42__is-unstyled{--_gcd-a-color:inherit;color:inherit;text-decoration:none}._0cb411afac4c86c7__link-icon{display:inline-block;font-weight:var(--wpds-typography-font-weight-default,400);line-height:1;margin-inline-start:var(--wpds-dimension-padding-xs,4px);text-decoration:none}._0cb411afac4c86c7__link-icon:after{content:"\\2197"}._0cb411afac4c86c7__link-icon:dir(rtl):after{content:"\\2196"}}}');
10259 + }
10260 + var style_default4 = { "link": "d4250949359b05ce__link", "is-brand": "c6055659b8e2cd2c__is-brand", "is-neutral": "_92e0dfcaeee15b88__is-neutral", "is-unstyled": "cf122a9bf1035d42__is-unstyled", "link-icon": "_0cb411afac4c86c7__link-icon" };
10261 + if (typeof process === "undefined" || true) {
10262 + registerStyle5("e8e31009f5", "._6defc79820e382c6__button{box-sizing:var(--_gcd-button-box-sizing,border-box);font-family:var(--_gcd-button-font-family,inherit);font-size:var(--_gcd-button-font-size,inherit);font-weight:var(--_gcd-button-font-weight,inherit)}.d2cff2e5dea83bd1__input{box-sizing:var(--_gcd-input-box-sizing,border-box);font-family:var(--_gcd-input-font-family,inherit);font-size:var(--_gcd-input-font-size,inherit);font-weight:var(--_gcd-input-font-weight,inherit);margin:var(--_gcd-input-margin,0);&::placeholder{color:var(--_gcd-input-placeholder-color,var(--wpds-color-foreground-interactive-neutral-weak,#707070))}&:is(textarea,[type=text],[type=password],[type=color],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){background-color:var(--_gcd-input-background-color,transparent);border:var(--_gcd-input-border,none);border-radius:var(--_gcd-input-border-radius,0);box-shadow:var(--_gcd-input-box-shadow,0 0 0 transparent);color:var(--_gcd-input-color,var(--wpds-color-foreground-interactive-neutral,#1e1e1e));&:focus{border-color:var(--_gcd-input-border-color-focus,var(--wp-admin-theme-color));box-shadow:var(--_gcd-input-box-shadow-focus,none);outline:var(--_gcd-input-outline-focus,none)}&:disabled{background:var(--_gcd-input-background-disabled,transparent);border-color:var(--_gcd-input-border-color-disabled,transparent);box-shadow:var(--_gcd-input-box-shadow-disabled,none);color:var(--_gcd-input-color-disabled,var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d))}}&:is(textarea,[type=text],[type=password],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){line-height:var(--_gcd-input-line-height,inherit);min-height:var(--_gcd-input-min-height,auto);padding:var(--_gcd-input-padding,0)}}._547d86373d02e108__textarea{box-sizing:var(--_gcd-textarea-box-sizing,border-box);overflow:var(--_gcd-textarea-overflow,auto);resize:var(--_gcd-textarea-resize,block)}._8c15fd0ed9f28ba4__div{outline:var(--_gcd-div-outline,0 solid transparent)}p._43cec3e1eec1066d__p{font-size:var(--_gcd-p-font-size,13px);line-height:var(--_gcd-p-line-height,1.5);margin:var(--_gcd-p-margin,0)}:is(h1,h2,h3,h4,h5,h6).e97669c6d9a38497__heading{color:var(--_gcd-heading-color,var(--wpds-color-foreground-content-neutral,#1e1e1e));font-size:var(--_gcd-heading-font-size,inherit);font-weight:var(--_gcd-heading-font-weight,var(--wpds-typography-font-weight-emphasis,600));margin:var(--_gcd-heading-margin,0)}._2c0831b0499dbd6e__a,._2c0831b0499dbd6e__a:is(:hover,:focus,:active){border-radius:var(--_gcd-a-border-radius,0);box-shadow:var(--_gcd-a-box-shadow,none);color:var(--_gcd-a-color,inherit);outline:var(--_gcd-a-outline,0 solid transparent);transition:var(--_gcd-a-transition,none)}.c59a0ebebd71fa4a__ol{list-style:var(--_gcd-ol-list-style,none);margin:var(--_gcd-ol-margin,0);padding-block:var(--_gcd-ol-padding-block,0);padding-inline:var(--_gcd-ol-padding-inline,0)}._46b5cb0c8e24e8c9__li{margin:var(--_gcd-li-margin,0)}");
10263 + }
10264 + var global_css_defense_default2 = { "button": "_6defc79820e382c6__button", "input": "d2cff2e5dea83bd1__input", "textarea": "_547d86373d02e108__textarea", "div": "_8c15fd0ed9f28ba4__div", "p": "_43cec3e1eec1066d__p", "heading": "e97669c6d9a38497__heading", "a": "_2c0831b0499dbd6e__a", "ol": "c59a0ebebd71fa4a__ol", "li": "_46b5cb0c8e24e8c9__li" };
10265 + var Link = (0, import_element16.forwardRef)(function Link2({
10266 + children,
10267 + variant = "default",
10268 + tone = "brand",
10269 + openInNewTab = false,
10270 + target,
10271 + render,
10272 + className,
10273 + ...props
10274 + }, ref) {
10275 + const shouldShowNewTabIndicator = openInNewTab || /^_blank$/i.test(target ?? "");
10276 + const element = useRender({
10277 + render,
10278 + defaultTagName: "a",
10279 + ref,
10280 + props: mergeProps(props, {
10281 + className: clsx_default(
10282 + global_css_defense_default2.a,
10283 + resets_default2["box-sizing"],
10284 + focus_module_default["outset-ring--focus-except-active"],
10285 + variant !== "unstyled" && style_default4.link,
10286 + variant !== "unstyled" && style_default4[`is-${tone}`],
10287 + variant === "unstyled" && style_default4["is-unstyled"],
10288 + className
10289 + ),
10290 + target: target ?? (openInNewTab ? "_blank" : void 0),
10291 + children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
10292 + children,
10293 + shouldShowNewTabIndicator && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
10294 + "span",
10295 + {
10296 + className: style_default4["link-icon"],
10297 + role: "img",
10298 + "aria-label": (
10299 + /* translators: accessibility text appended to link text */
10300 + (0, import_i18n2.__)("(opens in a new tab)")
10301 + )
10302 + }
10303 + )
10304 + ] })
10305 + })
10306 + });
10307 + return element;
10308 + });
10309 +
10310 + // packages/icons/build-module/library/caution.mjs
10311 + var import_primitives = __toESM(require_primitives(), 1);
10312 + var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
10313 + var caution_default = /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_primitives.Path, { d: "M12 8L12 13M12 14.5L12 16M4.75 12C4.75 7.99593 7.99594 4.75 12 4.75C16.0041 4.75 19.25 7.99594 19.25 12C19.25 16.0041 16.0041 19.25 12 19.25C7.99594 19.25 4.75 16.0041 4.75 12Z", strokeLinejoin: "round", vectorEffect: "non-scaling-stroke" }) });
10314 +
10315 + // packages/icons/build-module/library/chevron-down.mjs
10316 + var import_primitives2 = __toESM(require_primitives(), 1);
10317 + var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
10318 + var chevron_down_default = /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_primitives2.Path, { d: "M7 11L12 15L17 11", vectorEffect: "non-scaling-stroke" }) });
10319 +
10320 + // packages/icons/build-module/library/close-small.mjs
10321 + var import_primitives3 = __toESM(require_primitives(), 1);
10322 + var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
10323 + var close_small_default = /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_primitives3.Path, { d: "M7.75 16.25L16.25 7.75M16.25 16.25L7.75 7.75", vectorEffect: "non-scaling-stroke" }) });
10324 +
10325 + // packages/icons/build-module/library/error.mjs
10326 + var import_primitives4 = __toESM(require_primitives(), 1);
10327 + var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
10328 + var error_default = /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_primitives4.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_primitives4.Path, { d: "M12 9L12 14M12 15.5V17M11.1284 5.04947L3.83827 18.0097C3.46331 18.6763 3.94502 19.5 4.70985 19.5H19.2902C20.055 19.5 20.5367 18.6763 20.1617 18.0097L12.8716 5.04947C12.4893 4.36982 11.5107 4.36982 11.1284 5.04947Z", vectorEffect: "non-scaling-stroke" }) });
10329 +
10330 + // packages/icons/build-module/library/external.mjs
10331 + var import_primitives5 = __toESM(require_primitives(), 1);
10332 + var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
10333 + var external_default = /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_primitives5.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_primitives5.Path, { d: "M9.5 6.25H6.5C5.80964 6.25 5.25 6.80964 5.25 7.5V17.5C5.25 18.1904 5.80964 18.75 6.5 18.75H16.5C17.1904 18.75 17.75 18.1904 17.75 17.5V14.5M11.5 12.5L18.75 5.25M12.5 5.25H18.75V11.5", vectorEffect: "non-scaling-stroke" }) });
10334 +
10335 + // packages/icons/build-module/library/info.mjs
10336 + var import_primitives6 = __toESM(require_primitives(), 1);
10337 + var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
10338 + var info_default = /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_primitives6.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_primitives6.Path, { d: "M12 16V11M12 9.5V8M19.25 12C19.25 16.0041 16.0041 19.25 12 19.25C7.99594 19.25 4.75 16.0041 4.75 12C4.75 7.99594 7.99594 4.75 12 4.75C16.0041 4.75 19.25 7.99594 19.25 12Z", strokeLinejoin: "round", vectorEffect: "non-scaling-stroke" }) });
10339 +
10340 + // packages/icons/build-module/library/more-vertical.mjs
10341 + var import_primitives7 = __toESM(require_primitives(), 1);
10342 + var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1);
10343 + var more_vertical_default = /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_primitives7.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: [
10344 + /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_primitives7.Path, { d: "M11.75 18.25L12.25 18.25L12.25 17.75L11.75 17.75L11.75 18.25Z", fill: "currentColor", stroke: "none" }),
10345 + /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_primitives7.Path, { d: "M11.75 12.25L12.25 12.25L12.25 11.75L11.75 11.75L11.75 12.25Z", fill: "currentColor", stroke: "none" }),
10346 + /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_primitives7.Path, { d: "M11.75 6.25L12.25 6.25L12.25 5.75L11.75 5.75L11.75 6.25Z", fill: "currentColor", stroke: "none" }),
10347 + /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_primitives7.Path, { d: "M11.75 18.25L12.25 18.25L12.25 17.75L11.75 17.75L11.75 18.25Z", vectorEffect: "non-scaling-stroke" }),
10348 + /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_primitives7.Path, { d: "M11.75 12.25L12.25 12.25L12.25 11.75L11.75 11.75L11.75 12.25Z", vectorEffect: "non-scaling-stroke" }),
10349 + /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_primitives7.Path, { d: "M11.75 6.25L12.25 6.25L12.25 5.75L11.75 5.75L11.75 6.25Z", vectorEffect: "non-scaling-stroke" })
10350 + ] });
10351 +
10352 + // packages/icons/build-module/library/plus.mjs
10353 + var import_primitives8 = __toESM(require_primitives(), 1);
10354 + var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1);
10355 + var plus_default = /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_primitives8.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_primitives8.Path, { d: "M12 18V6M18 12H6", vectorEffect: "non-scaling-stroke" }) });
10356 +
10357 + // packages/icons/build-module/library/published.mjs
10358 + var import_primitives9 = __toESM(require_primitives(), 1);
10359 + var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
10360 + var published_default = /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_primitives9.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: [
10361 + /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_primitives9.Path, { d: "M12 19.25C16.0041 19.25 19.25 16.0041 19.25 12C19.25 7.99594 16.0041 4.75 12 4.75C7.99594 4.75 4.75 7.99594 4.75 12C4.75 16.0041 7.99594 19.25 12 19.25Z", strokeLinejoin: "round", vectorEffect: "non-scaling-stroke" }),
10362 + /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_primitives9.Path, { d: "M9 12L11 14L15 10", vectorEffect: "non-scaling-stroke" })
10363 + ] });
10364 +
10365 + // packages/icons/build-module/library/redo.mjs
10366 + var import_primitives10 = __toESM(require_primitives(), 1);
10367 + var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
10368 + var redo_default = /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_primitives10.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_primitives10.Path, { d: "M15 15L18.5 11L15 7M18.5 11H8C5 11 4.75 13.8 4.75 17", vectorEffect: "non-scaling-stroke" }) });
10369 +
10370 + // packages/icons/build-module/library/undo.mjs
10371 + var import_primitives11 = __toESM(require_primitives(), 1);
10372 + var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1);
10373 + var undo_default = /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_primitives11.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_primitives11.Path, { d: "M8.25 15L4.75 11L8.25 7M4.75 11H15.25C18.25 11 18.5 13.8 18.5 17", vectorEffect: "non-scaling-stroke" }) });
10374 +
10375 + // packages/ui/build-module/icon/icon.mjs
10376 + var import_element17 = __toESM(require_element(), 1);
10377 + var import_primitives12 = __toESM(require_primitives(), 1);
10378 + var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1);
10379 + var Icon = (0, import_element17.forwardRef)(function Icon2({ icon, size: size4 = 24, style, ...restProps }, ref) {
10380 + const mergedStyle = icon.props.style || style ? { ...icon.props.style, ...style } : void 0;
10381 + return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
10382 + import_primitives12.SVG,
10383 + {
10384 + ref,
10385 + ...icon.props,
10386 + ...restProps,
10387 + ...mergedStyle ? { style: mergedStyle } : {},
10388 + width: size4,
10389 + height: size4
10390 + }
10391 + );
10392 + });
10393 +
10394 + // packages/ui/build-module/utils/keyboard-shortcut.mjs
10395 + var import_element19 = __toESM(require_element(), 1);
10396 + var import_i18n3 = __toESM(require_i18n(), 1);
10397 +
10398 + // packages/ui/build-module/visually-hidden/visually-hidden.mjs
10399 + var import_element18 = __toESM(require_element(), 1);
10400 + var STYLE_HASH_ATTRIBUTE6 = "data-wp-hash";
10401 + function getRuntime6() {
10402 + const globalScope = globalThis;
10403 + if (globalScope.__wpStyleRuntime) {
10404 + return globalScope.__wpStyleRuntime;
10405 + }
10406 + globalScope.__wpStyleRuntime = {
10407 + documents: /* @__PURE__ */ new Map(),
10408 + styles: /* @__PURE__ */ new Map(),
10409 + injectedStyles: /* @__PURE__ */ new WeakMap()
10410 + };
10411 + if (typeof document !== "undefined") {
10412 + registerDocument6(document);
10413 + }
10414 + return globalScope.__wpStyleRuntime;
10415 + }
10416 + function documentContainsStyleHash6(targetDocument, hash) {
10417 + if (!targetDocument.head) {
10418 + return false;
10419 + }
10420 + for (const style of targetDocument.head.querySelectorAll(
10421 + `style[${STYLE_HASH_ATTRIBUTE6}]`
10422 + )) {
10423 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE6) === hash) {
10424 + return true;
10425 + }
10426 + }
10427 + return false;
10428 + }
10429 + function injectStyle6(targetDocument, hash, css) {
10430 + if (!targetDocument.head) {
10431 + return;
10432 + }
10433 + const runtime = getRuntime6();
10434 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
10435 + if (!injectedStyles) {
10436 + injectedStyles = /* @__PURE__ */ new Set();
10437 + runtime.injectedStyles.set(targetDocument, injectedStyles);
10438 + }
10439 + if (injectedStyles.has(hash)) {
10440 + return;
10441 + }
10442 + if (documentContainsStyleHash6(targetDocument, hash)) {
10443 + injectedStyles.add(hash);
10444 + return;
10445 + }
10446 + const style = targetDocument.createElement("style");
10447 + style.setAttribute(STYLE_HASH_ATTRIBUTE6, hash);
10448 + style.appendChild(targetDocument.createTextNode(css));
10449 + targetDocument.head.appendChild(style);
10450 + injectedStyles.add(hash);
10451 + }
10452 + function registerDocument6(targetDocument) {
10453 + const runtime = getRuntime6();
10454 + runtime.documents.set(
10455 + targetDocument,
10456 + (runtime.documents.get(targetDocument) ?? 0) + 1
10457 + );
10458 + for (const [hash, css] of runtime.styles) {
10459 + injectStyle6(targetDocument, hash, css);
10460 + }
10461 + return () => {
10462 + const count = runtime.documents.get(targetDocument);
10463 + if (count === void 0) {
10464 + return;
10465 + }
10466 + if (count <= 1) {
10467 + runtime.documents.delete(targetDocument);
10468 + return;
10469 + }
10470 + runtime.documents.set(targetDocument, count - 1);
10471 + };
10472 + }
10473 + function registerStyle6(hash, css) {
10474 + const runtime = getRuntime6();
10475 + runtime.styles.set(hash, css);
10476 + for (const targetDocument of runtime.documents.keys()) {
10477 + injectStyle6(targetDocument, hash, css);
10478 + }
10479 + }
10480 + if (typeof process === "undefined" || true) {
10481 + registerStyle6("f4df7461e9", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{.f37b9e2e191ebd66__visually-hidden{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;overflow-wrap:normal;padding:0;position:absolute;width:1px;word-break:normal}}}");
10482 + }
10483 + var style_default5 = { "visually-hidden": "f37b9e2e191ebd66__visually-hidden" };
10484 + var VisuallyHidden = (0, import_element18.forwardRef)(
859 10485 function VisuallyHidden2({ render, ...restProps }, ref) {
860 10486 const element = useRender({
861 10487 render,
862 10488 ref,
863 10489 props: mergeProps(
864 - { className: style_default["visually-hidden"] },
10490 + { className: style_default5["visually-hidden"] },
865 10491 restProps,
866 10492 {
867 10493 // @ts-expect-error Arbitrary data-* attributes aren't indexable on the typed div props. Kept hardcoded so consumers can't change or remove it.
868 10494 "data-visually-hidden": ""
@@ -872,8 +10498,2282 @@
872 10498 return element;
873 10499 }
874 10500 );
875 10501
10502 + // packages/ui/build-module/utils/keyboard-shortcut.mjs
10503 + var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1);
10504 + function useKeyboardShortcutProps({
10505 + "aria-describedby": ariaDescribedBy,
10506 + "aria-keyshortcuts": ariaKeyShortcuts,
10507 + shortcut
10508 + }) {
10509 + const generatedDescriptionId = (0, import_element19.useId)();
10510 + const descriptionId = shortcut ? generatedDescriptionId : void 0;
10511 + const describedBy = [ariaDescribedBy, descriptionId].filter(Boolean).join(" ");
10512 + return {
10513 + descriptionId,
10514 + targetProps: {
10515 + "aria-describedby": describedBy || void 0,
10516 + "aria-keyshortcuts": shortcut?.ariaKeyShortcut ?? ariaKeyShortcuts
10517 + }
10518 + };
10519 + }
10520 + var KeyboardShortcutDescription = (0, import_element19.forwardRef)(function KeyboardShortcutDescription2({ descriptionId, shortcut }, ref) {
10521 + return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
10522 + VisuallyHidden,
10523 + {
10524 + id: descriptionId,
10525 + "aria-hidden": "true",
10526 + render: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { ref }),
10527 + children: (0, import_i18n3.sprintf)(
10528 + /* translators: %s: keyboard shortcut. */
10529 + (0, import_i18n3.__)("Keyboard shortcut: %s"),
10530 + shortcut.label ?? shortcut.ariaKeyShortcut
10531 + )
10532 + }
10533 + );
10534 + });
10535 + var KeyboardShortcutDisplay = (0, import_element19.forwardRef)(function KeyboardShortcutDisplay2({ className, shortcut }, ref) {
10536 + return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { ref, "aria-hidden": "true", className, dir: "ltr", children: shortcut.displayShortcut });
10537 + });
10538 +
10539 + // packages/ui/build-module/button/button.mjs
10540 + var import_a11y = __toESM(require_a11y(), 1);
10541 + var import_element20 = __toESM(require_element(), 1);
10542 + var import_i18n4 = __toESM(require_i18n(), 1);
10543 + var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
10544 + var STYLE_HASH_ATTRIBUTE7 = "data-wp-hash";
10545 + function getRuntime7() {
10546 + const globalScope = globalThis;
10547 + if (globalScope.__wpStyleRuntime) {
10548 + return globalScope.__wpStyleRuntime;
10549 + }
10550 + globalScope.__wpStyleRuntime = {
10551 + documents: /* @__PURE__ */ new Map(),
10552 + styles: /* @__PURE__ */ new Map(),
10553 + injectedStyles: /* @__PURE__ */ new WeakMap()
10554 + };
10555 + if (typeof document !== "undefined") {
10556 + registerDocument7(document);
10557 + }
10558 + return globalScope.__wpStyleRuntime;
10559 + }
10560 + function documentContainsStyleHash7(targetDocument, hash) {
10561 + if (!targetDocument.head) {
10562 + return false;
10563 + }
10564 + for (const style of targetDocument.head.querySelectorAll(
10565 + `style[${STYLE_HASH_ATTRIBUTE7}]`
10566 + )) {
10567 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE7) === hash) {
10568 + return true;
10569 + }
10570 + }
10571 + return false;
10572 + }
10573 + function injectStyle7(targetDocument, hash, css) {
10574 + if (!targetDocument.head) {
10575 + return;
10576 + }
10577 + const runtime = getRuntime7();
10578 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
10579 + if (!injectedStyles) {
10580 + injectedStyles = /* @__PURE__ */ new Set();
10581 + runtime.injectedStyles.set(targetDocument, injectedStyles);
10582 + }
10583 + if (injectedStyles.has(hash)) {
10584 + return;
10585 + }
10586 + if (documentContainsStyleHash7(targetDocument, hash)) {
10587 + injectedStyles.add(hash);
10588 + return;
10589 + }
10590 + const style = targetDocument.createElement("style");
10591 + style.setAttribute(STYLE_HASH_ATTRIBUTE7, hash);
10592 + style.appendChild(targetDocument.createTextNode(css));
10593 + targetDocument.head.appendChild(style);
10594 + injectedStyles.add(hash);
10595 + }
10596 + function registerDocument7(targetDocument) {
10597 + const runtime = getRuntime7();
10598 + runtime.documents.set(
10599 + targetDocument,
10600 + (runtime.documents.get(targetDocument) ?? 0) + 1
10601 + );
10602 + for (const [hash, css] of runtime.styles) {
10603 + injectStyle7(targetDocument, hash, css);
10604 + }
10605 + return () => {
10606 + const count = runtime.documents.get(targetDocument);
10607 + if (count === void 0) {
10608 + return;
10609 + }
10610 + if (count <= 1) {
10611 + runtime.documents.delete(targetDocument);
10612 + return;
10613 + }
10614 + runtime.documents.set(targetDocument, count - 1);
10615 + };
10616 + }
10617 + function registerStyle7(hash, css) {
10618 + const runtime = getRuntime7();
10619 + runtime.styles.set(hash, css);
10620 + for (const targetDocument of runtime.documents.keys()) {
10621 + injectStyle7(targetDocument, hash, css);
10622 + }
10623 + }
10624 + if (typeof process === "undefined" || true) {
10625 + registerStyle7("effc4e3032", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._97b0fc33c028be1a__button,.abbb272e2ce49bd6__is-unstyled{appearance:none;padding:0}._97b0fc33c028be1a__button{--wp-ui-button-font-weight:var(--wpds-typography-font-weight-emphasis,600);--wp-ui-button-background-color:var(--wpds-color-background-interactive-brand-strong,var(--wp-admin-theme-color,#3858e9));--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-brand-strong-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 93%,#000));--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-brand-strong-disabled,#e6e6e6);--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-brand-strong,#fff);--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-brand-strong-active,#fff);--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-brand-strong-disabled,#8d8d8d);--wp-ui-button-padding-block:var(--wpds-dimension-padding-xs,4px);--wp-ui-button-padding-inline:var(--wpds-dimension-padding-md,12px);--wp-ui-button-height:var(--wpds-dimension-size-lg,40px);--wp-ui-button-aspect-ratio:auto;--wp-ui-button-font-size:var(--wpds-typography-font-size-md,13px);--wp-ui-button-min-width:calc(4ch + var(--wp-ui-button-padding-inline)*2);--wp-ui-button-icon-margin:calc((var(--wpds-dimension-size-2xs, 16px) - var(--wpds-dimension-size-sm, 24px))/2);--wp-ui-button-border-color:var(--wp-ui-button-background-color);--wp-ui-button-border-color-active:var(--wp-ui-button-background-color-active);--wp-ui-button-border-color-disabled:var(--wp-ui-button-background-color-disabled);--_gcd-button-font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);--_gcd-button-font-size:var(--wp-ui-button-font-size);--_gcd-button-font-weight:var(--wp-ui-button-font-weight);align-items:center;aspect-ratio:var(--wp-ui-button-aspect-ratio);background-clip:border-box;background-color:var(--wp-ui-button-background-color);border-color:var(--wp-ui-button-border-color);border-radius:var(--wpds-border-radius-sm,2px);border-style:solid;border-width:1px;color:var(--wp-ui-button-foreground-color);display:inline-flex;font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wp-ui-button-font-size);font-weight:var(--wp-ui-button-font-weight);gap:var(--wpds-dimension-gap-sm,8px);justify-content:center;line-height:var(--wpds-typography-line-height-sm,20px);max-width:100%;min-height:var(--wp-ui-button-height);min-width:var(--wp-ui-button-min-width);overflow-wrap:anywhere;padding-block:var(--wp-ui-button-padding-block);padding-inline:var(--wp-ui-button-padding-inline);position:relative;text-align:center;text-decoration:none;&:not([data-disabled]){cursor:var(--wpds-cursor-control,pointer)}@media not (prefers-reduced-motion){transition:color .1s ease-out;*{transition:opacity .1s ease-out}}&[href]{cursor:pointer}[href]{color:inherit;text-decoration:inherit}&:not([data-disabled]):is(:hover,:active,:focus){background-color:var(--wp-ui-button-background-color-active);border-color:var(--wp-ui-button-border-color-active);color:var(--wp-ui-button-foreground-color-active)}&[data-disabled]:not(._914b42f315c0e580__is-loading){background-color:var(--wp-ui-button-background-color-disabled);border-color:var(--wp-ui-button-border-color-disabled);color:var(--wp-ui-button-foreground-color-disabled);@media (forced-colors:active){border-bottom-color:GrayText;border-left-color:GrayText;border-right-color:GrayText;border-top-color:GrayText;color:GrayText}}&:before{aspect-ratio:1;border:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid;border-block-end-color:transparent;border-block-start-color:var(--wp-ui-button-foreground-color);border-inline-end-color:var(--wp-ui-button-foreground-color);border-inline-start-color:transparent;border-radius:50%;box-sizing:border-box;content:"";display:block;height:var(--wp-ui-button-font-size);left:50%;opacity:0;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);@media not (prefers-reduced-motion){transition:opacity .1s ease-out}@media (forced-colors:active){border-block-end-style:none;border-bottom-color:ButtonText;border-inline-start-style:none;border-left-color:ButtonText;border-right-color:ButtonText;border-top-color:ButtonText}}}._908205475f9f2a92__is-small{--wp-ui-button-padding-block:0px;--wp-ui-button-padding-inline:var(--wpds-dimension-padding-sm,8px);--wp-ui-button-height:var(--wpds-dimension-size-sm,24px)}._9f6fc6553aeb36fe__icon{margin:var(--wp-ui-button-icon-margin)}.dd460c965226cc77__is-brand{&._62d5a778b7b258ee__is-outline,&.ad0619a3217c6a5b__is-minimal{--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-brand,var(--wp-admin-theme-color,#3858e9));--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-brand-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 52%,#000));--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-brand-disabled,#8d8d8d)}&._62d5a778b7b258ee__is-outline{--wp-ui-button-background-color:var(--wpds-color-background-interactive-brand-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-brand-weak-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 12%,#fff));--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-brand-weak-disabled,#0000);--wp-ui-button-border-color:var(--wpds-color-stroke-interactive-brand,var(--wp-admin-theme-color,#3858e9));--wp-ui-button-border-color-active:var(--wpds-color-stroke-interactive-brand-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 85%,#000));--wp-ui-button-border-color-disabled:var(--wpds-color-stroke-interactive-brand-disabled,#dbdbdb)}&.ad0619a3217c6a5b__is-minimal{--wp-ui-button-background-color:var(--wpds-color-background-interactive-brand-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-brand-weak-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 12%,#fff));--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-brand-weak-disabled,#0000)}}.e722a8f96726aa99__is-neutral{&.ad0619a3217c6a5b__is-minimal[aria-pressed=true],&.b50b3358c5fb4d0b__is-solid{--wp-ui-button-background-color:var(--wpds-color-background-interactive-neutral-strong,#2d2d2d);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-neutral-strong-active,#1e1e1e);--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-neutral-strong-disabled,#e6e6e6);--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-neutral-strong,#f0f0f0);--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-neutral-strong-active,#f0f0f0);--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-neutral-strong-disabled,#8d8d8d)}&._62d5a778b7b258ee__is-outline,&.ad0619a3217c6a5b__is-minimal:not([aria-pressed=true]){--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-neutral,#1e1e1e);--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-neutral-active,#1e1e1e);--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d)}&._62d5a778b7b258ee__is-outline{--wp-ui-button-background-color:var(--wpds-color-background-interactive-neutral-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-neutral-weak-active,#ededed);--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-neutral-weak-disabled,#0000);--wp-ui-button-border-color:var(--wpds-color-stroke-interactive-neutral,#8d8d8d);--wp-ui-button-border-color-active:var(--wpds-color-stroke-interactive-neutral-active,#6e6e6e);--wp-ui-button-border-color-disabled:var(--wpds-color-stroke-interactive-neutral-disabled,#dbdbdb)}&.ad0619a3217c6a5b__is-minimal:not([aria-pressed=true]){--wp-ui-button-background-color:var(--wpds-color-background-interactive-neutral-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-neutral-weak-active,#ededed);--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-neutral-weak-disabled,#0000)}}.abbb272e2ce49bd6__is-unstyled{background:none;border:none;min-width:unset}.cf59cf1b69629838__is-compact{--wp-ui-button-height:var(--wpds-dimension-size-md,32px)}._914b42f315c0e580__is-loading:not(.abbb272e2ce49bd6__is-unstyled){color:transparent;&:not([data-disabled]):is(:hover,:active,:focus){color:transparent}@media (forced-colors:active){color:ButtonFace}*{opacity:0}&:before{opacity:1;transition-delay:.05s;@media not (prefers-reduced-motion){animation:_5a1d53da6f830c8d__loading-animation 1s linear infinite}}}}@keyframes _5a1d53da6f830c8d__loading-animation{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}}');
10626 + }
10627 + var style_default6 = { "button": "_97b0fc33c028be1a__button", "is-unstyled": "abbb272e2ce49bd6__is-unstyled", "is-loading": "_914b42f315c0e580__is-loading", "is-small": "_908205475f9f2a92__is-small", "icon": "_9f6fc6553aeb36fe__icon", "is-brand": "dd460c965226cc77__is-brand", "is-outline": "_62d5a778b7b258ee__is-outline", "is-minimal": "ad0619a3217c6a5b__is-minimal", "is-neutral": "e722a8f96726aa99__is-neutral", "is-solid": "b50b3358c5fb4d0b__is-solid", "is-compact": "cf59cf1b69629838__is-compact", "loading-animation": "_5a1d53da6f830c8d__loading-animation" };
10628 + if (typeof process === "undefined" || true) {
10629 + registerStyle7("10f3806643", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._336cd3e4e743482f__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}}");
10630 + }
10631 + var resets_default3 = { "box-sizing": "_336cd3e4e743482f__box-sizing" };
10632 + if (typeof process === "undefined" || true) {
10633 + registerStyle7("08122b3d53", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{.af79fb116edb0dd7__outset-ring--focus:focus,.dfcfdc28396e5d98__outset-ring--focus-visible:focus-visible,.e5cd9ee879f6403a__outset-ring--focus-within:focus-within,:focus-visible ._81935a08e952f267__outset-ring--focus-parent-visible{--_gcd-a-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));--_gcd-div-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}._3c9f5ee9fc9c136d__outset-ring--focus-within-except-active:focus-within,.abc777e9713fa711__outset-ring--focus-except-active:focus{outline:none}._3c9f5ee9fc9c136d__outset-ring--focus-within-except-active:focus-within:not(:has(:active)),.abc777e9713fa711__outset-ring--focus-except-active:focus:not(:active){--_gcd-a-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));--_gcd-div-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}}}");
10634 + }
10635 + var focus_module_default2 = { "outset-ring--focus": "af79fb116edb0dd7__outset-ring--focus", "outset-ring--focus-visible": "dfcfdc28396e5d98__outset-ring--focus-visible", "outset-ring--focus-within": "e5cd9ee879f6403a__outset-ring--focus-within", "outset-ring--focus-parent-visible": "_81935a08e952f267__outset-ring--focus-parent-visible", "outset-ring--focus-except-active": "abc777e9713fa711__outset-ring--focus-except-active", "outset-ring--focus-within-except-active": "_3c9f5ee9fc9c136d__outset-ring--focus-within-except-active" };
10636 + if (typeof process === "undefined" || true) {
10637 + registerStyle7("e8e31009f5", "._6defc79820e382c6__button{box-sizing:var(--_gcd-button-box-sizing,border-box);font-family:var(--_gcd-button-font-family,inherit);font-size:var(--_gcd-button-font-size,inherit);font-weight:var(--_gcd-button-font-weight,inherit)}.d2cff2e5dea83bd1__input{box-sizing:var(--_gcd-input-box-sizing,border-box);font-family:var(--_gcd-input-font-family,inherit);font-size:var(--_gcd-input-font-size,inherit);font-weight:var(--_gcd-input-font-weight,inherit);margin:var(--_gcd-input-margin,0);&::placeholder{color:var(--_gcd-input-placeholder-color,var(--wpds-color-foreground-interactive-neutral-weak,#707070))}&:is(textarea,[type=text],[type=password],[type=color],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){background-color:var(--_gcd-input-background-color,transparent);border:var(--_gcd-input-border,none);border-radius:var(--_gcd-input-border-radius,0);box-shadow:var(--_gcd-input-box-shadow,0 0 0 transparent);color:var(--_gcd-input-color,var(--wpds-color-foreground-interactive-neutral,#1e1e1e));&:focus{border-color:var(--_gcd-input-border-color-focus,var(--wp-admin-theme-color));box-shadow:var(--_gcd-input-box-shadow-focus,none);outline:var(--_gcd-input-outline-focus,none)}&:disabled{background:var(--_gcd-input-background-disabled,transparent);border-color:var(--_gcd-input-border-color-disabled,transparent);box-shadow:var(--_gcd-input-box-shadow-disabled,none);color:var(--_gcd-input-color-disabled,var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d))}}&:is(textarea,[type=text],[type=password],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){line-height:var(--_gcd-input-line-height,inherit);min-height:var(--_gcd-input-min-height,auto);padding:var(--_gcd-input-padding,0)}}._547d86373d02e108__textarea{box-sizing:var(--_gcd-textarea-box-sizing,border-box);overflow:var(--_gcd-textarea-overflow,auto);resize:var(--_gcd-textarea-resize,block)}._8c15fd0ed9f28ba4__div{outline:var(--_gcd-div-outline,0 solid transparent)}p._43cec3e1eec1066d__p{font-size:var(--_gcd-p-font-size,13px);line-height:var(--_gcd-p-line-height,1.5);margin:var(--_gcd-p-margin,0)}:is(h1,h2,h3,h4,h5,h6).e97669c6d9a38497__heading{color:var(--_gcd-heading-color,var(--wpds-color-foreground-content-neutral,#1e1e1e));font-size:var(--_gcd-heading-font-size,inherit);font-weight:var(--_gcd-heading-font-weight,var(--wpds-typography-font-weight-emphasis,600));margin:var(--_gcd-heading-margin,0)}._2c0831b0499dbd6e__a,._2c0831b0499dbd6e__a:is(:hover,:focus,:active){border-radius:var(--_gcd-a-border-radius,0);box-shadow:var(--_gcd-a-box-shadow,none);color:var(--_gcd-a-color,inherit);outline:var(--_gcd-a-outline,0 solid transparent);transition:var(--_gcd-a-transition,none)}.c59a0ebebd71fa4a__ol{list-style:var(--_gcd-ol-list-style,none);margin:var(--_gcd-ol-margin,0);padding-block:var(--_gcd-ol-padding-block,0);padding-inline:var(--_gcd-ol-padding-inline,0)}._46b5cb0c8e24e8c9__li{margin:var(--_gcd-li-margin,0)}");
10638 + }
10639 + var global_css_defense_default3 = { "button": "_6defc79820e382c6__button", "input": "d2cff2e5dea83bd1__input", "textarea": "_547d86373d02e108__textarea", "div": "_8c15fd0ed9f28ba4__div", "p": "_43cec3e1eec1066d__p", "heading": "e97669c6d9a38497__heading", "a": "_2c0831b0499dbd6e__a", "ol": "c59a0ebebd71fa4a__ol", "li": "_46b5cb0c8e24e8c9__li" };
10640 + var Button3 = (0, import_element20.forwardRef)(
10641 + function Button22({
10642 + tone = "brand",
10643 + variant = "solid",
10644 + size: size4 = "default",
10645 + className,
10646 + focusableWhenDisabled = true,
10647 + disabled: disabled2,
10648 + loading,
10649 + loadingAnnouncement = (0, import_i18n4.__)("Loading"),
10650 + children,
10651 + ...props
10652 + }, ref) {
10653 + const mergedClassName = clsx_default(
10654 + global_css_defense_default3.button,
10655 + resets_default3["box-sizing"],
10656 + focus_module_default2["outset-ring--focus-except-active"],
10657 + variant !== "unstyled" && style_default6.button,
10658 + style_default6[`is-${tone}`],
10659 + style_default6[`is-${variant}`],
10660 + style_default6[`is-${size4}`],
10661 + loading && style_default6["is-loading"],
10662 + className
10663 + );
10664 + (0, import_element20.useEffect)(() => {
10665 + if (loading && loadingAnnouncement) {
10666 + (0, import_a11y.speak)(loadingAnnouncement);
10667 + }
10668 + }, [loading, loadingAnnouncement]);
10669 + return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
10670 + Button,
10671 + {
10672 + ref,
10673 + className: mergedClassName,
10674 + focusableWhenDisabled,
10675 + disabled: disabled2 ?? loading,
10676 + ...props,
10677 + children
10678 + }
10679 + );
10680 + }
10681 + );
10682 +
10683 + // packages/ui/build-module/button/icon.mjs
10684 + var import_element21 = __toESM(require_element(), 1);
10685 + var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1);
10686 + var STYLE_HASH_ATTRIBUTE8 = "data-wp-hash";
10687 + function getRuntime8() {
10688 + const globalScope = globalThis;
10689 + if (globalScope.__wpStyleRuntime) {
10690 + return globalScope.__wpStyleRuntime;
10691 + }
10692 + globalScope.__wpStyleRuntime = {
10693 + documents: /* @__PURE__ */ new Map(),
10694 + styles: /* @__PURE__ */ new Map(),
10695 + injectedStyles: /* @__PURE__ */ new WeakMap()
10696 + };
10697 + if (typeof document !== "undefined") {
10698 + registerDocument8(document);
10699 + }
10700 + return globalScope.__wpStyleRuntime;
10701 + }
10702 + function documentContainsStyleHash8(targetDocument, hash) {
10703 + if (!targetDocument.head) {
10704 + return false;
10705 + }
10706 + for (const style of targetDocument.head.querySelectorAll(
10707 + `style[${STYLE_HASH_ATTRIBUTE8}]`
10708 + )) {
10709 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE8) === hash) {
10710 + return true;
10711 + }
10712 + }
10713 + return false;
10714 + }
10715 + function injectStyle8(targetDocument, hash, css) {
10716 + if (!targetDocument.head) {
10717 + return;
10718 + }
10719 + const runtime = getRuntime8();
10720 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
10721 + if (!injectedStyles) {
10722 + injectedStyles = /* @__PURE__ */ new Set();
10723 + runtime.injectedStyles.set(targetDocument, injectedStyles);
10724 + }
10725 + if (injectedStyles.has(hash)) {
10726 + return;
10727 + }
10728 + if (documentContainsStyleHash8(targetDocument, hash)) {
10729 + injectedStyles.add(hash);
10730 + return;
10731 + }
10732 + const style = targetDocument.createElement("style");
10733 + style.setAttribute(STYLE_HASH_ATTRIBUTE8, hash);
10734 + style.appendChild(targetDocument.createTextNode(css));
10735 + targetDocument.head.appendChild(style);
10736 + injectedStyles.add(hash);
10737 + }
10738 + function registerDocument8(targetDocument) {
10739 + const runtime = getRuntime8();
10740 + runtime.documents.set(
10741 + targetDocument,
10742 + (runtime.documents.get(targetDocument) ?? 0) + 1
10743 + );
10744 + for (const [hash, css] of runtime.styles) {
10745 + injectStyle8(targetDocument, hash, css);
10746 + }
10747 + return () => {
10748 + const count = runtime.documents.get(targetDocument);
10749 + if (count === void 0) {
10750 + return;
10751 + }
10752 + if (count <= 1) {
10753 + runtime.documents.delete(targetDocument);
10754 + return;
10755 + }
10756 + runtime.documents.set(targetDocument, count - 1);
10757 + };
10758 + }
10759 + function registerStyle8(hash, css) {
10760 + const runtime = getRuntime8();
10761 + runtime.styles.set(hash, css);
10762 + for (const targetDocument of runtime.documents.keys()) {
10763 + injectStyle8(targetDocument, hash, css);
10764 + }
10765 + }
10766 + if (typeof process === "undefined" || true) {
10767 + registerStyle8("effc4e3032", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._97b0fc33c028be1a__button,.abbb272e2ce49bd6__is-unstyled{appearance:none;padding:0}._97b0fc33c028be1a__button{--wp-ui-button-font-weight:var(--wpds-typography-font-weight-emphasis,600);--wp-ui-button-background-color:var(--wpds-color-background-interactive-brand-strong,var(--wp-admin-theme-color,#3858e9));--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-brand-strong-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 93%,#000));--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-brand-strong-disabled,#e6e6e6);--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-brand-strong,#fff);--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-brand-strong-active,#fff);--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-brand-strong-disabled,#8d8d8d);--wp-ui-button-padding-block:var(--wpds-dimension-padding-xs,4px);--wp-ui-button-padding-inline:var(--wpds-dimension-padding-md,12px);--wp-ui-button-height:var(--wpds-dimension-size-lg,40px);--wp-ui-button-aspect-ratio:auto;--wp-ui-button-font-size:var(--wpds-typography-font-size-md,13px);--wp-ui-button-min-width:calc(4ch + var(--wp-ui-button-padding-inline)*2);--wp-ui-button-icon-margin:calc((var(--wpds-dimension-size-2xs, 16px) - var(--wpds-dimension-size-sm, 24px))/2);--wp-ui-button-border-color:var(--wp-ui-button-background-color);--wp-ui-button-border-color-active:var(--wp-ui-button-background-color-active);--wp-ui-button-border-color-disabled:var(--wp-ui-button-background-color-disabled);--_gcd-button-font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);--_gcd-button-font-size:var(--wp-ui-button-font-size);--_gcd-button-font-weight:var(--wp-ui-button-font-weight);align-items:center;aspect-ratio:var(--wp-ui-button-aspect-ratio);background-clip:border-box;background-color:var(--wp-ui-button-background-color);border-color:var(--wp-ui-button-border-color);border-radius:var(--wpds-border-radius-sm,2px);border-style:solid;border-width:1px;color:var(--wp-ui-button-foreground-color);display:inline-flex;font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wp-ui-button-font-size);font-weight:var(--wp-ui-button-font-weight);gap:var(--wpds-dimension-gap-sm,8px);justify-content:center;line-height:var(--wpds-typography-line-height-sm,20px);max-width:100%;min-height:var(--wp-ui-button-height);min-width:var(--wp-ui-button-min-width);overflow-wrap:anywhere;padding-block:var(--wp-ui-button-padding-block);padding-inline:var(--wp-ui-button-padding-inline);position:relative;text-align:center;text-decoration:none;&:not([data-disabled]){cursor:var(--wpds-cursor-control,pointer)}@media not (prefers-reduced-motion){transition:color .1s ease-out;*{transition:opacity .1s ease-out}}&[href]{cursor:pointer}[href]{color:inherit;text-decoration:inherit}&:not([data-disabled]):is(:hover,:active,:focus){background-color:var(--wp-ui-button-background-color-active);border-color:var(--wp-ui-button-border-color-active);color:var(--wp-ui-button-foreground-color-active)}&[data-disabled]:not(._914b42f315c0e580__is-loading){background-color:var(--wp-ui-button-background-color-disabled);border-color:var(--wp-ui-button-border-color-disabled);color:var(--wp-ui-button-foreground-color-disabled);@media (forced-colors:active){border-bottom-color:GrayText;border-left-color:GrayText;border-right-color:GrayText;border-top-color:GrayText;color:GrayText}}&:before{aspect-ratio:1;border:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid;border-block-end-color:transparent;border-block-start-color:var(--wp-ui-button-foreground-color);border-inline-end-color:var(--wp-ui-button-foreground-color);border-inline-start-color:transparent;border-radius:50%;box-sizing:border-box;content:"";display:block;height:var(--wp-ui-button-font-size);left:50%;opacity:0;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);@media not (prefers-reduced-motion){transition:opacity .1s ease-out}@media (forced-colors:active){border-block-end-style:none;border-bottom-color:ButtonText;border-inline-start-style:none;border-left-color:ButtonText;border-right-color:ButtonText;border-top-color:ButtonText}}}._908205475f9f2a92__is-small{--wp-ui-button-padding-block:0px;--wp-ui-button-padding-inline:var(--wpds-dimension-padding-sm,8px);--wp-ui-button-height:var(--wpds-dimension-size-sm,24px)}._9f6fc6553aeb36fe__icon{margin:var(--wp-ui-button-icon-margin)}.dd460c965226cc77__is-brand{&._62d5a778b7b258ee__is-outline,&.ad0619a3217c6a5b__is-minimal{--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-brand,var(--wp-admin-theme-color,#3858e9));--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-brand-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 52%,#000));--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-brand-disabled,#8d8d8d)}&._62d5a778b7b258ee__is-outline{--wp-ui-button-background-color:var(--wpds-color-background-interactive-brand-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-brand-weak-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 12%,#fff));--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-brand-weak-disabled,#0000);--wp-ui-button-border-color:var(--wpds-color-stroke-interactive-brand,var(--wp-admin-theme-color,#3858e9));--wp-ui-button-border-color-active:var(--wpds-color-stroke-interactive-brand-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 85%,#000));--wp-ui-button-border-color-disabled:var(--wpds-color-stroke-interactive-brand-disabled,#dbdbdb)}&.ad0619a3217c6a5b__is-minimal{--wp-ui-button-background-color:var(--wpds-color-background-interactive-brand-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-brand-weak-active,color-mix(in oklch,var(--wp-admin-theme-color,#3858e9) 12%,#fff));--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-brand-weak-disabled,#0000)}}.e722a8f96726aa99__is-neutral{&.ad0619a3217c6a5b__is-minimal[aria-pressed=true],&.b50b3358c5fb4d0b__is-solid{--wp-ui-button-background-color:var(--wpds-color-background-interactive-neutral-strong,#2d2d2d);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-neutral-strong-active,#1e1e1e);--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-neutral-strong-disabled,#e6e6e6);--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-neutral-strong,#f0f0f0);--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-neutral-strong-active,#f0f0f0);--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-neutral-strong-disabled,#8d8d8d)}&._62d5a778b7b258ee__is-outline,&.ad0619a3217c6a5b__is-minimal:not([aria-pressed=true]){--wp-ui-button-foreground-color:var(--wpds-color-foreground-interactive-neutral,#1e1e1e);--wp-ui-button-foreground-color-active:var(--wpds-color-foreground-interactive-neutral-active,#1e1e1e);--wp-ui-button-foreground-color-disabled:var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d)}&._62d5a778b7b258ee__is-outline{--wp-ui-button-background-color:var(--wpds-color-background-interactive-neutral-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-neutral-weak-active,#ededed);--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-neutral-weak-disabled,#0000);--wp-ui-button-border-color:var(--wpds-color-stroke-interactive-neutral,#8d8d8d);--wp-ui-button-border-color-active:var(--wpds-color-stroke-interactive-neutral-active,#6e6e6e);--wp-ui-button-border-color-disabled:var(--wpds-color-stroke-interactive-neutral-disabled,#dbdbdb)}&.ad0619a3217c6a5b__is-minimal:not([aria-pressed=true]){--wp-ui-button-background-color:var(--wpds-color-background-interactive-neutral-weak,#0000);--wp-ui-button-background-color-active:var(--wpds-color-background-interactive-neutral-weak-active,#ededed);--wp-ui-button-background-color-disabled:var(--wpds-color-background-interactive-neutral-weak-disabled,#0000)}}.abbb272e2ce49bd6__is-unstyled{background:none;border:none;min-width:unset}.cf59cf1b69629838__is-compact{--wp-ui-button-height:var(--wpds-dimension-size-md,32px)}._914b42f315c0e580__is-loading:not(.abbb272e2ce49bd6__is-unstyled){color:transparent;&:not([data-disabled]):is(:hover,:active,:focus){color:transparent}@media (forced-colors:active){color:ButtonFace}*{opacity:0}&:before{opacity:1;transition-delay:.05s;@media not (prefers-reduced-motion){animation:_5a1d53da6f830c8d__loading-animation 1s linear infinite}}}}@keyframes _5a1d53da6f830c8d__loading-animation{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}}');
10768 + }
10769 + var style_default7 = { "button": "_97b0fc33c028be1a__button", "is-unstyled": "abbb272e2ce49bd6__is-unstyled", "is-loading": "_914b42f315c0e580__is-loading", "is-small": "_908205475f9f2a92__is-small", "icon": "_9f6fc6553aeb36fe__icon", "is-brand": "dd460c965226cc77__is-brand", "is-outline": "_62d5a778b7b258ee__is-outline", "is-minimal": "ad0619a3217c6a5b__is-minimal", "is-neutral": "e722a8f96726aa99__is-neutral", "is-solid": "b50b3358c5fb4d0b__is-solid", "is-compact": "cf59cf1b69629838__is-compact", "loading-animation": "_5a1d53da6f830c8d__loading-animation" };
10770 + var ButtonIcon = (0, import_element21.forwardRef)(
10771 + function ButtonIcon2({ className, icon, ...props }, ref) {
10772 + return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
10773 + Icon,
10774 + {
10775 + ref,
10776 + icon,
10777 + className: clsx_default(style_default7.icon, className),
10778 + size: 24,
10779 + ...props
10780 + }
10781 + );
10782 + }
10783 + );
10784 +
10785 + // packages/ui/build-module/button/index.mjs
10786 + ButtonIcon.displayName = "Button.Icon";
10787 + var Button4 = Object.assign(Button3, {
10788 + /**
10789 + * An icon component specifically designed to work well when rendered inside
10790 + * a `Button` component.
10791 + */
10792 + Icon: ButtonIcon
10793 + });
10794 +
10795 + // packages/ui/build-module/icon-button/icon-button.mjs
10796 + var import_element22 = __toESM(require_element(), 1);
10797 + var import_jsx_runtime35 = __toESM(require_jsx_runtime(), 1);
10798 + var STYLE_HASH_ATTRIBUTE9 = "data-wp-hash";
10799 + function getRuntime9() {
10800 + const globalScope = globalThis;
10801 + if (globalScope.__wpStyleRuntime) {
10802 + return globalScope.__wpStyleRuntime;
10803 + }
10804 + globalScope.__wpStyleRuntime = {
10805 + documents: /* @__PURE__ */ new Map(),
10806 + styles: /* @__PURE__ */ new Map(),
10807 + injectedStyles: /* @__PURE__ */ new WeakMap()
10808 + };
10809 + if (typeof document !== "undefined") {
10810 + registerDocument9(document);
10811 + }
10812 + return globalScope.__wpStyleRuntime;
10813 + }
10814 + function documentContainsStyleHash9(targetDocument, hash) {
10815 + if (!targetDocument.head) {
10816 + return false;
10817 + }
10818 + for (const style of targetDocument.head.querySelectorAll(
10819 + `style[${STYLE_HASH_ATTRIBUTE9}]`
10820 + )) {
10821 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE9) === hash) {
10822 + return true;
10823 + }
10824 + }
10825 + return false;
10826 + }
10827 + function injectStyle9(targetDocument, hash, css) {
10828 + if (!targetDocument.head) {
10829 + return;
10830 + }
10831 + const runtime = getRuntime9();
10832 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
10833 + if (!injectedStyles) {
10834 + injectedStyles = /* @__PURE__ */ new Set();
10835 + runtime.injectedStyles.set(targetDocument, injectedStyles);
10836 + }
10837 + if (injectedStyles.has(hash)) {
10838 + return;
10839 + }
10840 + if (documentContainsStyleHash9(targetDocument, hash)) {
10841 + injectedStyles.add(hash);
10842 + return;
10843 + }
10844 + const style = targetDocument.createElement("style");
10845 + style.setAttribute(STYLE_HASH_ATTRIBUTE9, hash);
10846 + style.appendChild(targetDocument.createTextNode(css));
10847 + targetDocument.head.appendChild(style);
10848 + injectedStyles.add(hash);
10849 + }
10850 + function registerDocument9(targetDocument) {
10851 + const runtime = getRuntime9();
10852 + runtime.documents.set(
10853 + targetDocument,
10854 + (runtime.documents.get(targetDocument) ?? 0) + 1
10855 + );
10856 + for (const [hash, css] of runtime.styles) {
10857 + injectStyle9(targetDocument, hash, css);
10858 + }
10859 + return () => {
10860 + const count = runtime.documents.get(targetDocument);
10861 + if (count === void 0) {
10862 + return;
10863 + }
10864 + if (count <= 1) {
10865 + runtime.documents.delete(targetDocument);
10866 + return;
10867 + }
10868 + runtime.documents.set(targetDocument, count - 1);
10869 + };
10870 + }
10871 + function registerStyle9(hash, css) {
10872 + const runtime = getRuntime9();
10873 + runtime.styles.set(hash, css);
10874 + for (const targetDocument of runtime.documents.keys()) {
10875 + injectStyle9(targetDocument, hash, css);
10876 + }
10877 + }
10878 + if (typeof process === "undefined" || true) {
10879 + registerStyle9("c5cdafb1bc", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer compositions{._28cfdc260e755391__icon-button{--wp-ui-button-aspect-ratio:1;--wp-ui-button-padding-inline:0px;--wp-ui-button-min-width:unset}.f1c70d719989a85a__icon{margin:-1px}}}");
10880 + }
10881 + var style_default8 = { "icon-button": "_28cfdc260e755391__icon-button", "icon": "f1c70d719989a85a__icon" };
10882 + var IconButton = (0, import_element22.forwardRef)(
10883 + function IconButton2({
10884 + label,
10885 + className,
10886 + // Prevent accidental forwarding of `children`
10887 + children: _children,
10888 + disabled: disabled2,
10889 + focusableWhenDisabled = true,
10890 + icon,
10891 + size: size4,
10892 + shortcut,
10893 + positioner,
10894 + "aria-describedby": ariaDescribedBy,
10895 + "aria-keyshortcuts": ariaKeyShortcuts,
10896 + ...restProps
10897 + }, ref) {
10898 + const classes = clsx_default(style_default8["icon-button"], className);
10899 + const { descriptionId, targetProps } = useKeyboardShortcutProps({
10900 + "aria-describedby": ariaDescribedBy,
10901 + "aria-keyshortcuts": ariaKeyShortcuts,
10902 + shortcut
10903 + });
10904 + return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Root, { children: [
10905 + /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
10906 + Trigger,
10907 + {
10908 + ref,
10909 + ...targetProps,
10910 + disabled: disabled2 && !focusableWhenDisabled,
10911 + render: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
10912 + Button4,
10913 + {
10914 + ...restProps,
10915 + size: size4,
10916 + "aria-label": label,
10917 + disabled: disabled2,
10918 + focusableWhenDisabled
10919 + }
10920 + ),
10921 + className: classes,
10922 + children: [
10923 + /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Icon, { icon, size: 24, className: style_default8.icon }),
10924 + shortcut && descriptionId && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
10925 + KeyboardShortcutDescription,
10926 + {
10927 + descriptionId,
10928 + shortcut
10929 + }
10930 + )
10931 + ]
10932 + }
10933 + ),
10934 + /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(Popup, { positioner, children: [
10935 + label,
10936 + shortcut && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
10937 + " ",
10938 + /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(KeyboardShortcutDisplay, { shortcut })
10939 + ] })
10940 + ] })
10941 + ] });
10942 + }
10943 + );
10944 +
10945 + // packages/ui/build-module/card/index.mjs
10946 + var card_exports = {};
10947 + __export(card_exports, {
10948 + Content: () => Content,
10949 + FullBleed: () => FullBleed,
10950 + Header: () => Header,
10951 + Root: () => Root2,
10952 + Title: () => Title
10953 + });
10954 +
10955 + // packages/ui/build-module/card/root.mjs
10956 + var import_element23 = __toESM(require_element(), 1);
10957 + var STYLE_HASH_ATTRIBUTE10 = "data-wp-hash";
10958 + function getRuntime10() {
10959 + const globalScope = globalThis;
10960 + if (globalScope.__wpStyleRuntime) {
10961 + return globalScope.__wpStyleRuntime;
10962 + }
10963 + globalScope.__wpStyleRuntime = {
10964 + documents: /* @__PURE__ */ new Map(),
10965 + styles: /* @__PURE__ */ new Map(),
10966 + injectedStyles: /* @__PURE__ */ new WeakMap()
10967 + };
10968 + if (typeof document !== "undefined") {
10969 + registerDocument10(document);
10970 + }
10971 + return globalScope.__wpStyleRuntime;
10972 + }
10973 + function documentContainsStyleHash10(targetDocument, hash) {
10974 + if (!targetDocument.head) {
10975 + return false;
10976 + }
10977 + for (const style of targetDocument.head.querySelectorAll(
10978 + `style[${STYLE_HASH_ATTRIBUTE10}]`
10979 + )) {
10980 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE10) === hash) {
10981 + return true;
10982 + }
10983 + }
10984 + return false;
10985 + }
10986 + function injectStyle10(targetDocument, hash, css) {
10987 + if (!targetDocument.head) {
10988 + return;
10989 + }
10990 + const runtime = getRuntime10();
10991 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
10992 + if (!injectedStyles) {
10993 + injectedStyles = /* @__PURE__ */ new Set();
10994 + runtime.injectedStyles.set(targetDocument, injectedStyles);
10995 + }
10996 + if (injectedStyles.has(hash)) {
10997 + return;
10998 + }
10999 + if (documentContainsStyleHash10(targetDocument, hash)) {
11000 + injectedStyles.add(hash);
11001 + return;
11002 + }
11003 + const style = targetDocument.createElement("style");
11004 + style.setAttribute(STYLE_HASH_ATTRIBUTE10, hash);
11005 + style.appendChild(targetDocument.createTextNode(css));
11006 + targetDocument.head.appendChild(style);
11007 + injectedStyles.add(hash);
11008 + }
11009 + function registerDocument10(targetDocument) {
11010 + const runtime = getRuntime10();
11011 + runtime.documents.set(
11012 + targetDocument,
11013 + (runtime.documents.get(targetDocument) ?? 0) + 1
11014 + );
11015 + for (const [hash, css] of runtime.styles) {
11016 + injectStyle10(targetDocument, hash, css);
11017 + }
11018 + return () => {
11019 + const count = runtime.documents.get(targetDocument);
11020 + if (count === void 0) {
11021 + return;
11022 + }
11023 + if (count <= 1) {
11024 + runtime.documents.delete(targetDocument);
11025 + return;
11026 + }
11027 + runtime.documents.set(targetDocument, count - 1);
11028 + };
11029 + }
11030 + function registerStyle10(hash, css) {
11031 + const runtime = getRuntime10();
11032 + runtime.styles.set(hash, css);
11033 + for (const targetDocument of runtime.documents.keys()) {
11034 + injectStyle10(targetDocument, hash, css);
11035 + }
11036 + }
11037 + if (typeof process === "undefined" || true) {
11038 + registerStyle10("10f3806643", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._336cd3e4e743482f__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}}");
11039 + }
11040 + var resets_default4 = { "box-sizing": "_336cd3e4e743482f__box-sizing" };
11041 + if (typeof process === "undefined" || true) {
11042 + registerStyle10("cb866dcef6", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._02872bf298eadc43__root{--wp-ui-card-padding:var(--wpds-dimension-padding-2xl,24px);--wp-ui-card-header-content-gap:var(--wpds-dimension-gap-xl,24px);--wp-ui-card-header-content-margin:calc(var(--wp-ui-card-header-content-gap) - var(--wp-ui-card-padding));background-color:var(--wpds-color-background-surface-neutral-strong,#fff);border:1px solid var(--wpds-color-stroke-surface-neutral,#dbdbdb);border-radius:var(--wpds-border-radius-lg,8px);color:var(--wpds-color-foreground-content-neutral,#1e1e1e);display:flex;flex-direction:column;overflow:clip}._5dffdaf2a6e669ac__content,.bbccc92e6ba5662d__header{padding:var(--wp-ui-card-padding);&:not(:first-child):not(:last-child){padding-block-end:0}}.bbccc92e6ba5662d__header+._5dffdaf2a6e669ac__content{margin-block-start:var(--wp-ui-card-header-content-margin);padding-block-start:0}.c1fa192587e1b4a6__fullbleed{margin-inline:calc(var(--wp-ui-card-padding)*-1);width:calc(100% + var(--wp-ui-card-padding)*2)}._02872bf298eadc43__root>:is(.bbccc92e6ba5662d__header,._5dffdaf2a6e669ac__content):first-child>.c1fa192587e1b4a6__fullbleed:first-child{margin-block-start:calc(var(--wp-ui-card-padding)*-1)}:is(.bbccc92e6ba5662d__header,._5dffdaf2a6e669ac__content):last-child>.c1fa192587e1b4a6__fullbleed:last-child{margin-block-end:calc(var(--wp-ui-card-padding)*-1)}}}");
11043 + }
11044 + var style_default9 = { "root": "_02872bf298eadc43__root", "header": "bbccc92e6ba5662d__header", "content": "_5dffdaf2a6e669ac__content", "fullbleed": "c1fa192587e1b4a6__fullbleed" };
11045 + var Root2 = (0, import_element23.forwardRef)(function Card({ render, ...restProps }, ref) {
11046 + const mergedClassName = clsx_default(style_default9.root, resets_default4["box-sizing"]);
11047 + const element = useRender({
11048 + defaultTagName: "div",
11049 + render,
11050 + ref,
11051 + props: mergeProps({ className: mergedClassName }, restProps)
11052 + });
11053 + return element;
11054 + });
11055 +
11056 + // packages/ui/build-module/card/header.mjs
11057 + var import_element24 = __toESM(require_element(), 1);
11058 + var STYLE_HASH_ATTRIBUTE11 = "data-wp-hash";
11059 + function getRuntime11() {
11060 + const globalScope = globalThis;
11061 + if (globalScope.__wpStyleRuntime) {
11062 + return globalScope.__wpStyleRuntime;
11063 + }
11064 + globalScope.__wpStyleRuntime = {
11065 + documents: /* @__PURE__ */ new Map(),
11066 + styles: /* @__PURE__ */ new Map(),
11067 + injectedStyles: /* @__PURE__ */ new WeakMap()
11068 + };
11069 + if (typeof document !== "undefined") {
11070 + registerDocument11(document);
11071 + }
11072 + return globalScope.__wpStyleRuntime;
11073 + }
11074 + function documentContainsStyleHash11(targetDocument, hash) {
11075 + if (!targetDocument.head) {
11076 + return false;
11077 + }
11078 + for (const style of targetDocument.head.querySelectorAll(
11079 + `style[${STYLE_HASH_ATTRIBUTE11}]`
11080 + )) {
11081 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE11) === hash) {
11082 + return true;
11083 + }
11084 + }
11085 + return false;
11086 + }
11087 + function injectStyle11(targetDocument, hash, css) {
11088 + if (!targetDocument.head) {
11089 + return;
11090 + }
11091 + const runtime = getRuntime11();
11092 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
11093 + if (!injectedStyles) {
11094 + injectedStyles = /* @__PURE__ */ new Set();
11095 + runtime.injectedStyles.set(targetDocument, injectedStyles);
11096 + }
11097 + if (injectedStyles.has(hash)) {
11098 + return;
11099 + }
11100 + if (documentContainsStyleHash11(targetDocument, hash)) {
11101 + injectedStyles.add(hash);
11102 + return;
11103 + }
11104 + const style = targetDocument.createElement("style");
11105 + style.setAttribute(STYLE_HASH_ATTRIBUTE11, hash);
11106 + style.appendChild(targetDocument.createTextNode(css));
11107 + targetDocument.head.appendChild(style);
11108 + injectedStyles.add(hash);
11109 + }
11110 + function registerDocument11(targetDocument) {
11111 + const runtime = getRuntime11();
11112 + runtime.documents.set(
11113 + targetDocument,
11114 + (runtime.documents.get(targetDocument) ?? 0) + 1
11115 + );
11116 + for (const [hash, css] of runtime.styles) {
11117 + injectStyle11(targetDocument, hash, css);
11118 + }
11119 + return () => {
11120 + const count = runtime.documents.get(targetDocument);
11121 + if (count === void 0) {
11122 + return;
11123 + }
11124 + if (count <= 1) {
11125 + runtime.documents.delete(targetDocument);
11126 + return;
11127 + }
11128 + runtime.documents.set(targetDocument, count - 1);
11129 + };
11130 + }
11131 + function registerStyle11(hash, css) {
11132 + const runtime = getRuntime11();
11133 + runtime.styles.set(hash, css);
11134 + for (const targetDocument of runtime.documents.keys()) {
11135 + injectStyle11(targetDocument, hash, css);
11136 + }
11137 + }
11138 + if (typeof process === "undefined" || true) {
11139 + registerStyle11("cb866dcef6", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._02872bf298eadc43__root{--wp-ui-card-padding:var(--wpds-dimension-padding-2xl,24px);--wp-ui-card-header-content-gap:var(--wpds-dimension-gap-xl,24px);--wp-ui-card-header-content-margin:calc(var(--wp-ui-card-header-content-gap) - var(--wp-ui-card-padding));background-color:var(--wpds-color-background-surface-neutral-strong,#fff);border:1px solid var(--wpds-color-stroke-surface-neutral,#dbdbdb);border-radius:var(--wpds-border-radius-lg,8px);color:var(--wpds-color-foreground-content-neutral,#1e1e1e);display:flex;flex-direction:column;overflow:clip}._5dffdaf2a6e669ac__content,.bbccc92e6ba5662d__header{padding:var(--wp-ui-card-padding);&:not(:first-child):not(:last-child){padding-block-end:0}}.bbccc92e6ba5662d__header+._5dffdaf2a6e669ac__content{margin-block-start:var(--wp-ui-card-header-content-margin);padding-block-start:0}.c1fa192587e1b4a6__fullbleed{margin-inline:calc(var(--wp-ui-card-padding)*-1);width:calc(100% + var(--wp-ui-card-padding)*2)}._02872bf298eadc43__root>:is(.bbccc92e6ba5662d__header,._5dffdaf2a6e669ac__content):first-child>.c1fa192587e1b4a6__fullbleed:first-child{margin-block-start:calc(var(--wp-ui-card-padding)*-1)}:is(.bbccc92e6ba5662d__header,._5dffdaf2a6e669ac__content):last-child>.c1fa192587e1b4a6__fullbleed:last-child{margin-block-end:calc(var(--wp-ui-card-padding)*-1)}}}");
11140 + }
11141 + var style_default10 = { "root": "_02872bf298eadc43__root", "header": "bbccc92e6ba5662d__header", "content": "_5dffdaf2a6e669ac__content", "fullbleed": "c1fa192587e1b4a6__fullbleed" };
11142 + var Header = (0, import_element24.forwardRef)(
11143 + function CardHeader({ render, ...props }, ref) {
11144 + const element = useRender({
11145 + defaultTagName: "div",
11146 + render,
11147 + ref,
11148 + props: mergeProps({ className: style_default10.header }, props)
11149 + });
11150 + return element;
11151 + }
11152 + );
11153 +
11154 + // packages/ui/build-module/card/content.mjs
11155 + var import_element25 = __toESM(require_element(), 1);
11156 + var STYLE_HASH_ATTRIBUTE12 = "data-wp-hash";
11157 + function getRuntime12() {
11158 + const globalScope = globalThis;
11159 + if (globalScope.__wpStyleRuntime) {
11160 + return globalScope.__wpStyleRuntime;
11161 + }
11162 + globalScope.__wpStyleRuntime = {
11163 + documents: /* @__PURE__ */ new Map(),
11164 + styles: /* @__PURE__ */ new Map(),
11165 + injectedStyles: /* @__PURE__ */ new WeakMap()
11166 + };
11167 + if (typeof document !== "undefined") {
11168 + registerDocument12(document);
11169 + }
11170 + return globalScope.__wpStyleRuntime;
11171 + }
11172 + function documentContainsStyleHash12(targetDocument, hash) {
11173 + if (!targetDocument.head) {
11174 + return false;
11175 + }
11176 + for (const style of targetDocument.head.querySelectorAll(
11177 + `style[${STYLE_HASH_ATTRIBUTE12}]`
11178 + )) {
11179 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE12) === hash) {
11180 + return true;
11181 + }
11182 + }
11183 + return false;
11184 + }
11185 + function injectStyle12(targetDocument, hash, css) {
11186 + if (!targetDocument.head) {
11187 + return;
11188 + }
11189 + const runtime = getRuntime12();
11190 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
11191 + if (!injectedStyles) {
11192 + injectedStyles = /* @__PURE__ */ new Set();
11193 + runtime.injectedStyles.set(targetDocument, injectedStyles);
11194 + }
11195 + if (injectedStyles.has(hash)) {
11196 + return;
11197 + }
11198 + if (documentContainsStyleHash12(targetDocument, hash)) {
11199 + injectedStyles.add(hash);
11200 + return;
11201 + }
11202 + const style = targetDocument.createElement("style");
11203 + style.setAttribute(STYLE_HASH_ATTRIBUTE12, hash);
11204 + style.appendChild(targetDocument.createTextNode(css));
11205 + targetDocument.head.appendChild(style);
11206 + injectedStyles.add(hash);
11207 + }
11208 + function registerDocument12(targetDocument) {
11209 + const runtime = getRuntime12();
11210 + runtime.documents.set(
11211 + targetDocument,
11212 + (runtime.documents.get(targetDocument) ?? 0) + 1
11213 + );
11214 + for (const [hash, css] of runtime.styles) {
11215 + injectStyle12(targetDocument, hash, css);
11216 + }
11217 + return () => {
11218 + const count = runtime.documents.get(targetDocument);
11219 + if (count === void 0) {
11220 + return;
11221 + }
11222 + if (count <= 1) {
11223 + runtime.documents.delete(targetDocument);
11224 + return;
11225 + }
11226 + runtime.documents.set(targetDocument, count - 1);
11227 + };
11228 + }
11229 + function registerStyle12(hash, css) {
11230 + const runtime = getRuntime12();
11231 + runtime.styles.set(hash, css);
11232 + for (const targetDocument of runtime.documents.keys()) {
11233 + injectStyle12(targetDocument, hash, css);
11234 + }
11235 + }
11236 + if (typeof process === "undefined" || true) {
11237 + registerStyle12("cb866dcef6", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._02872bf298eadc43__root{--wp-ui-card-padding:var(--wpds-dimension-padding-2xl,24px);--wp-ui-card-header-content-gap:var(--wpds-dimension-gap-xl,24px);--wp-ui-card-header-content-margin:calc(var(--wp-ui-card-header-content-gap) - var(--wp-ui-card-padding));background-color:var(--wpds-color-background-surface-neutral-strong,#fff);border:1px solid var(--wpds-color-stroke-surface-neutral,#dbdbdb);border-radius:var(--wpds-border-radius-lg,8px);color:var(--wpds-color-foreground-content-neutral,#1e1e1e);display:flex;flex-direction:column;overflow:clip}._5dffdaf2a6e669ac__content,.bbccc92e6ba5662d__header{padding:var(--wp-ui-card-padding);&:not(:first-child):not(:last-child){padding-block-end:0}}.bbccc92e6ba5662d__header+._5dffdaf2a6e669ac__content{margin-block-start:var(--wp-ui-card-header-content-margin);padding-block-start:0}.c1fa192587e1b4a6__fullbleed{margin-inline:calc(var(--wp-ui-card-padding)*-1);width:calc(100% + var(--wp-ui-card-padding)*2)}._02872bf298eadc43__root>:is(.bbccc92e6ba5662d__header,._5dffdaf2a6e669ac__content):first-child>.c1fa192587e1b4a6__fullbleed:first-child{margin-block-start:calc(var(--wp-ui-card-padding)*-1)}:is(.bbccc92e6ba5662d__header,._5dffdaf2a6e669ac__content):last-child>.c1fa192587e1b4a6__fullbleed:last-child{margin-block-end:calc(var(--wp-ui-card-padding)*-1)}}}");
11238 + }
11239 + var style_default11 = { "root": "_02872bf298eadc43__root", "header": "bbccc92e6ba5662d__header", "content": "_5dffdaf2a6e669ac__content", "fullbleed": "c1fa192587e1b4a6__fullbleed" };
11240 + var Content = (0, import_element25.forwardRef)(
11241 + function CardContent({ render, ...props }, ref) {
11242 + const element = useRender({
11243 + defaultTagName: "div",
11244 + render,
11245 + ref,
11246 + props: mergeProps({ className: style_default11.content }, props)
11247 + });
11248 + return element;
11249 + }
11250 + );
11251 +
11252 + // packages/ui/build-module/card/full-bleed.mjs
11253 + var import_element26 = __toESM(require_element(), 1);
11254 + var STYLE_HASH_ATTRIBUTE13 = "data-wp-hash";
11255 + function getRuntime13() {
11256 + const globalScope = globalThis;
11257 + if (globalScope.__wpStyleRuntime) {
11258 + return globalScope.__wpStyleRuntime;
11259 + }
11260 + globalScope.__wpStyleRuntime = {
11261 + documents: /* @__PURE__ */ new Map(),
11262 + styles: /* @__PURE__ */ new Map(),
11263 + injectedStyles: /* @__PURE__ */ new WeakMap()
11264 + };
11265 + if (typeof document !== "undefined") {
11266 + registerDocument13(document);
11267 + }
11268 + return globalScope.__wpStyleRuntime;
11269 + }
11270 + function documentContainsStyleHash13(targetDocument, hash) {
11271 + if (!targetDocument.head) {
11272 + return false;
11273 + }
11274 + for (const style of targetDocument.head.querySelectorAll(
11275 + `style[${STYLE_HASH_ATTRIBUTE13}]`
11276 + )) {
11277 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE13) === hash) {
11278 + return true;
11279 + }
11280 + }
11281 + return false;
11282 + }
11283 + function injectStyle13(targetDocument, hash, css) {
11284 + if (!targetDocument.head) {
11285 + return;
11286 + }
11287 + const runtime = getRuntime13();
11288 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
11289 + if (!injectedStyles) {
11290 + injectedStyles = /* @__PURE__ */ new Set();
11291 + runtime.injectedStyles.set(targetDocument, injectedStyles);
11292 + }
11293 + if (injectedStyles.has(hash)) {
11294 + return;
11295 + }
11296 + if (documentContainsStyleHash13(targetDocument, hash)) {
11297 + injectedStyles.add(hash);
11298 + return;
11299 + }
11300 + const style = targetDocument.createElement("style");
11301 + style.setAttribute(STYLE_HASH_ATTRIBUTE13, hash);
11302 + style.appendChild(targetDocument.createTextNode(css));
11303 + targetDocument.head.appendChild(style);
11304 + injectedStyles.add(hash);
11305 + }
11306 + function registerDocument13(targetDocument) {
11307 + const runtime = getRuntime13();
11308 + runtime.documents.set(
11309 + targetDocument,
11310 + (runtime.documents.get(targetDocument) ?? 0) + 1
11311 + );
11312 + for (const [hash, css] of runtime.styles) {
11313 + injectStyle13(targetDocument, hash, css);
11314 + }
11315 + return () => {
11316 + const count = runtime.documents.get(targetDocument);
11317 + if (count === void 0) {
11318 + return;
11319 + }
11320 + if (count <= 1) {
11321 + runtime.documents.delete(targetDocument);
11322 + return;
11323 + }
11324 + runtime.documents.set(targetDocument, count - 1);
11325 + };
11326 + }
11327 + function registerStyle13(hash, css) {
11328 + const runtime = getRuntime13();
11329 + runtime.styles.set(hash, css);
11330 + for (const targetDocument of runtime.documents.keys()) {
11331 + injectStyle13(targetDocument, hash, css);
11332 + }
11333 + }
11334 + if (typeof process === "undefined" || true) {
11335 + registerStyle13("cb866dcef6", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._02872bf298eadc43__root{--wp-ui-card-padding:var(--wpds-dimension-padding-2xl,24px);--wp-ui-card-header-content-gap:var(--wpds-dimension-gap-xl,24px);--wp-ui-card-header-content-margin:calc(var(--wp-ui-card-header-content-gap) - var(--wp-ui-card-padding));background-color:var(--wpds-color-background-surface-neutral-strong,#fff);border:1px solid var(--wpds-color-stroke-surface-neutral,#dbdbdb);border-radius:var(--wpds-border-radius-lg,8px);color:var(--wpds-color-foreground-content-neutral,#1e1e1e);display:flex;flex-direction:column;overflow:clip}._5dffdaf2a6e669ac__content,.bbccc92e6ba5662d__header{padding:var(--wp-ui-card-padding);&:not(:first-child):not(:last-child){padding-block-end:0}}.bbccc92e6ba5662d__header+._5dffdaf2a6e669ac__content{margin-block-start:var(--wp-ui-card-header-content-margin);padding-block-start:0}.c1fa192587e1b4a6__fullbleed{margin-inline:calc(var(--wp-ui-card-padding)*-1);width:calc(100% + var(--wp-ui-card-padding)*2)}._02872bf298eadc43__root>:is(.bbccc92e6ba5662d__header,._5dffdaf2a6e669ac__content):first-child>.c1fa192587e1b4a6__fullbleed:first-child{margin-block-start:calc(var(--wp-ui-card-padding)*-1)}:is(.bbccc92e6ba5662d__header,._5dffdaf2a6e669ac__content):last-child>.c1fa192587e1b4a6__fullbleed:last-child{margin-block-end:calc(var(--wp-ui-card-padding)*-1)}}}");
11336 + }
11337 + var style_default12 = { "root": "_02872bf298eadc43__root", "header": "bbccc92e6ba5662d__header", "content": "_5dffdaf2a6e669ac__content", "fullbleed": "c1fa192587e1b4a6__fullbleed" };
11338 + var FullBleed = (0, import_element26.forwardRef)(
11339 + function CardFullBleed({ render, ...props }, ref) {
11340 + const element = useRender({
11341 + defaultTagName: "div",
11342 + render,
11343 + ref,
11344 + props: mergeProps(
11345 + { className: style_default12.fullbleed },
11346 + props
11347 + )
11348 + });
11349 + return element;
11350 + }
11351 + );
11352 +
11353 + // packages/ui/build-module/card/title.mjs
11354 + var import_element27 = __toESM(require_element(), 1);
11355 + var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1);
11356 + var DEFAULT_TAG = /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", {});
11357 + var Title = (0, import_element27.forwardRef)(
11358 + function CardTitle({ render = DEFAULT_TAG, children, ...props }, ref) {
11359 + return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
11360 + Text,
11361 + {
11362 + ref,
11363 + variant: "heading-lg",
11364 + render,
11365 + ...props,
11366 + children
11367 + }
11368 + );
11369 + }
11370 + );
11371 +
11372 + // packages/ui/build-module/collapsible/panel.mjs
11373 + var import_element28 = __toESM(require_element(), 1);
11374 + var import_jsx_runtime37 = __toESM(require_jsx_runtime(), 1);
11375 + var Panel = (0, import_element28.forwardRef)(
11376 + function CollapsiblePanel3(props, forwardedRef) {
11377 + return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(index_parts_exports.Panel, { ref: forwardedRef, ...props });
11378 + }
11379 + );
11380 +
11381 + // packages/ui/build-module/collapsible/root.mjs
11382 + var import_element29 = __toESM(require_element(), 1);
11383 + var import_jsx_runtime38 = __toESM(require_jsx_runtime(), 1);
11384 + var Root3 = (0, import_element29.forwardRef)(
11385 + function CollapsibleRoot3(props, forwardedRef) {
11386 + return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(index_parts_exports.Root, { ref: forwardedRef, ...props });
11387 + }
11388 + );
11389 +
11390 + // packages/ui/build-module/collapsible/trigger.mjs
11391 + var import_element30 = __toESM(require_element(), 1);
11392 + var import_jsx_runtime39 = __toESM(require_jsx_runtime(), 1);
11393 + var Trigger2 = (0, import_element30.forwardRef)(
11394 + function CollapsibleTrigger3(props, forwardedRef) {
11395 + return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(index_parts_exports.Trigger, { ref: forwardedRef, ...props });
11396 + }
11397 + );
11398 +
11399 + // packages/ui/build-module/collapsible-card/index.mjs
11400 + var collapsible_card_exports = {};
11401 + __export(collapsible_card_exports, {
11402 + Content: () => Content2,
11403 + Header: () => Header2,
11404 + HeaderDescription: () => HeaderDescription,
11405 + Root: () => Root32
11406 + });
11407 +
11408 + // packages/ui/build-module/collapsible-card/root.mjs
11409 + var import_element31 = __toESM(require_element(), 1);
11410 + var import_jsx_runtime40 = __toESM(require_jsx_runtime(), 1);
11411 + var Root32 = (0, import_element31.forwardRef)(
11412 + function CollapsibleCardRoot({ render, ...restProps }, ref) {
11413 + return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
11414 + Root3,
11415 + {
11416 + ref,
11417 + render: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Root2, { render }),
11418 + ...restProps
11419 + }
11420 + );
11421 + }
11422 + );
11423 +
11424 + // packages/ui/build-module/collapsible-card/header.mjs
11425 + var import_compose = __toESM(require_compose(), 1);
11426 + var import_element33 = __toESM(require_element(), 1);
11427 +
11428 + // packages/ui/build-module/collapsible-card/context.mjs
11429 + var import_element32 = __toESM(require_element(), 1);
11430 + var HeaderDescriptionIdContext = (0, import_element32.createContext)(null);
11431 +
11432 + // packages/ui/build-module/collapsible-card/header.mjs
11433 + var import_jsx_runtime41 = __toESM(require_jsx_runtime(), 1);
11434 + var STYLE_HASH_ATTRIBUTE14 = "data-wp-hash";
11435 + function getRuntime14() {
11436 + const globalScope = globalThis;
11437 + if (globalScope.__wpStyleRuntime) {
11438 + return globalScope.__wpStyleRuntime;
11439 + }
11440 + globalScope.__wpStyleRuntime = {
11441 + documents: /* @__PURE__ */ new Map(),
11442 + styles: /* @__PURE__ */ new Map(),
11443 + injectedStyles: /* @__PURE__ */ new WeakMap()
11444 + };
11445 + if (typeof document !== "undefined") {
11446 + registerDocument14(document);
11447 + }
11448 + return globalScope.__wpStyleRuntime;
11449 + }
11450 + function documentContainsStyleHash14(targetDocument, hash) {
11451 + if (!targetDocument.head) {
11452 + return false;
11453 + }
11454 + for (const style of targetDocument.head.querySelectorAll(
11455 + `style[${STYLE_HASH_ATTRIBUTE14}]`
11456 + )) {
11457 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE14) === hash) {
11458 + return true;
11459 + }
11460 + }
11461 + return false;
11462 + }
11463 + function injectStyle14(targetDocument, hash, css) {
11464 + if (!targetDocument.head) {
11465 + return;
11466 + }
11467 + const runtime = getRuntime14();
11468 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
11469 + if (!injectedStyles) {
11470 + injectedStyles = /* @__PURE__ */ new Set();
11471 + runtime.injectedStyles.set(targetDocument, injectedStyles);
11472 + }
11473 + if (injectedStyles.has(hash)) {
11474 + return;
11475 + }
11476 + if (documentContainsStyleHash14(targetDocument, hash)) {
11477 + injectedStyles.add(hash);
11478 + return;
11479 + }
11480 + const style = targetDocument.createElement("style");
11481 + style.setAttribute(STYLE_HASH_ATTRIBUTE14, hash);
11482 + style.appendChild(targetDocument.createTextNode(css));
11483 + targetDocument.head.appendChild(style);
11484 + injectedStyles.add(hash);
11485 + }
11486 + function registerDocument14(targetDocument) {
11487 + const runtime = getRuntime14();
11488 + runtime.documents.set(
11489 + targetDocument,
11490 + (runtime.documents.get(targetDocument) ?? 0) + 1
11491 + );
11492 + for (const [hash, css] of runtime.styles) {
11493 + injectStyle14(targetDocument, hash, css);
11494 + }
11495 + return () => {
11496 + const count = runtime.documents.get(targetDocument);
11497 + if (count === void 0) {
11498 + return;
11499 + }
11500 + if (count <= 1) {
11501 + runtime.documents.delete(targetDocument);
11502 + return;
11503 + }
11504 + runtime.documents.set(targetDocument, count - 1);
11505 + };
11506 + }
11507 + function registerStyle14(hash, css) {
11508 + const runtime = getRuntime14();
11509 + runtime.styles.set(hash, css);
11510 + for (const targetDocument of runtime.documents.keys()) {
11511 + injectStyle14(targetDocument, hash, css);
11512 + }
11513 + }
11514 + if (typeof process === "undefined" || true) {
11515 + registerStyle14("64bdb4d46e", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._626190151275d6d3__heading-wrapper{--_gcd-heading-color:inherit;--_gcd-heading-font-size:inherit;--_gcd-heading-font-weight:inherit;--_gcd-heading-margin:0;font-family:inherit;line-height:inherit}.cab17c7a373cb60d__header-content{flex:1;min-width:0}._92ebbaa30c8a1d05__header-description{color:var(--wpds-color-foreground-content-neutral-weak,#707070)}.dd89d27c4f15912d__header-trigger-positioner{align-self:flex-start;flex-shrink:0;margin-block-start:calc(var(--wpds-typography-line-height-sm, 20px)/2);max-height:0;overflow:visible}.bcfab5f2448bafef__header-trigger-wrapper{border-radius:var(--wpds-border-radius-sm,2px);display:flex;translate:0 -50%}._3106f8d2b0330faa__header-trigger{@media not (prefers-reduced-motion){transition:rotate .15s ease-out}}._5d2dfcb4085c6d0f__header[data-panel-open] ._3106f8d2b0330faa__header-trigger{rotate:180deg}._5d2dfcb4085c6d0f__header[data-disabled] ._3106f8d2b0330faa__header-trigger{color:var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d)}.e34cf37ccd0d81e0__content{height:var(--collapsible-panel-height);margin-block-start:var(--wp-ui-card-header-content-margin);overflow:hidden;&._03cfdbcd710393c9__overflow-visible{overflow:visible}&[hidden]:not([hidden=until-found]){display:none}&[data-ending-style],&[data-starting-style]{height:0}@media not (prefers-reduced-motion){transition:all .15s ease-out}}}@layer compositions{._41bfdbf7b6c087c2__content-inner{padding-block-start:0}._5d2dfcb4085c6d0f__header{align-items:stretch;display:flex;flex-direction:row;gap:var(--wpds-dimension-gap-sm,8px);outline:none;&:not([data-disabled]){cursor:var(--wpds-cursor-control,pointer)}}}}");
11516 + }
11517 + var style_default13 = { "heading-wrapper": "_626190151275d6d3__heading-wrapper", "header-content": "cab17c7a373cb60d__header-content", "header-description": "_92ebbaa30c8a1d05__header-description", "header-trigger-positioner": "dd89d27c4f15912d__header-trigger-positioner", "header-trigger-wrapper": "bcfab5f2448bafef__header-trigger-wrapper", "header-trigger": "_3106f8d2b0330faa__header-trigger", "header": "_5d2dfcb4085c6d0f__header", "content": "e34cf37ccd0d81e0__content", "overflow-visible": "_03cfdbcd710393c9__overflow-visible", "content-inner": "_41bfdbf7b6c087c2__content-inner" };
11518 + if (typeof process === "undefined" || true) {
11519 + registerStyle14("e8e31009f5", "._6defc79820e382c6__button{box-sizing:var(--_gcd-button-box-sizing,border-box);font-family:var(--_gcd-button-font-family,inherit);font-size:var(--_gcd-button-font-size,inherit);font-weight:var(--_gcd-button-font-weight,inherit)}.d2cff2e5dea83bd1__input{box-sizing:var(--_gcd-input-box-sizing,border-box);font-family:var(--_gcd-input-font-family,inherit);font-size:var(--_gcd-input-font-size,inherit);font-weight:var(--_gcd-input-font-weight,inherit);margin:var(--_gcd-input-margin,0);&::placeholder{color:var(--_gcd-input-placeholder-color,var(--wpds-color-foreground-interactive-neutral-weak,#707070))}&:is(textarea,[type=text],[type=password],[type=color],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){background-color:var(--_gcd-input-background-color,transparent);border:var(--_gcd-input-border,none);border-radius:var(--_gcd-input-border-radius,0);box-shadow:var(--_gcd-input-box-shadow,0 0 0 transparent);color:var(--_gcd-input-color,var(--wpds-color-foreground-interactive-neutral,#1e1e1e));&:focus{border-color:var(--_gcd-input-border-color-focus,var(--wp-admin-theme-color));box-shadow:var(--_gcd-input-box-shadow-focus,none);outline:var(--_gcd-input-outline-focus,none)}&:disabled{background:var(--_gcd-input-background-disabled,transparent);border-color:var(--_gcd-input-border-color-disabled,transparent);box-shadow:var(--_gcd-input-box-shadow-disabled,none);color:var(--_gcd-input-color-disabled,var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d))}}&:is(textarea,[type=text],[type=password],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){line-height:var(--_gcd-input-line-height,inherit);min-height:var(--_gcd-input-min-height,auto);padding:var(--_gcd-input-padding,0)}}._547d86373d02e108__textarea{box-sizing:var(--_gcd-textarea-box-sizing,border-box);overflow:var(--_gcd-textarea-overflow,auto);resize:var(--_gcd-textarea-resize,block)}._8c15fd0ed9f28ba4__div{outline:var(--_gcd-div-outline,0 solid transparent)}p._43cec3e1eec1066d__p{font-size:var(--_gcd-p-font-size,13px);line-height:var(--_gcd-p-line-height,1.5);margin:var(--_gcd-p-margin,0)}:is(h1,h2,h3,h4,h5,h6).e97669c6d9a38497__heading{color:var(--_gcd-heading-color,var(--wpds-color-foreground-content-neutral,#1e1e1e));font-size:var(--_gcd-heading-font-size,inherit);font-weight:var(--_gcd-heading-font-weight,var(--wpds-typography-font-weight-emphasis,600));margin:var(--_gcd-heading-margin,0)}._2c0831b0499dbd6e__a,._2c0831b0499dbd6e__a:is(:hover,:focus,:active){border-radius:var(--_gcd-a-border-radius,0);box-shadow:var(--_gcd-a-box-shadow,none);color:var(--_gcd-a-color,inherit);outline:var(--_gcd-a-outline,0 solid transparent);transition:var(--_gcd-a-transition,none)}.c59a0ebebd71fa4a__ol{list-style:var(--_gcd-ol-list-style,none);margin:var(--_gcd-ol-margin,0);padding-block:var(--_gcd-ol-padding-block,0);padding-inline:var(--_gcd-ol-padding-inline,0)}._46b5cb0c8e24e8c9__li{margin:var(--_gcd-li-margin,0)}");
11520 + }
11521 + var global_css_defense_default4 = { "button": "_6defc79820e382c6__button", "input": "d2cff2e5dea83bd1__input", "textarea": "_547d86373d02e108__textarea", "div": "_8c15fd0ed9f28ba4__div", "p": "_43cec3e1eec1066d__p", "heading": "e97669c6d9a38497__heading", "a": "_2c0831b0499dbd6e__a", "ol": "c59a0ebebd71fa4a__ol", "li": "_46b5cb0c8e24e8c9__li" };
11522 + if (typeof process === "undefined" || true) {
11523 + registerStyle14("08122b3d53", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{.af79fb116edb0dd7__outset-ring--focus:focus,.dfcfdc28396e5d98__outset-ring--focus-visible:focus-visible,.e5cd9ee879f6403a__outset-ring--focus-within:focus-within,:focus-visible ._81935a08e952f267__outset-ring--focus-parent-visible{--_gcd-a-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));--_gcd-div-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}._3c9f5ee9fc9c136d__outset-ring--focus-within-except-active:focus-within,.abc777e9713fa711__outset-ring--focus-except-active:focus{outline:none}._3c9f5ee9fc9c136d__outset-ring--focus-within-except-active:focus-within:not(:has(:active)),.abc777e9713fa711__outset-ring--focus-except-active:focus:not(:active){--_gcd-a-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));--_gcd-div-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}}}");
11524 + }
11525 + var focus_module_default3 = { "outset-ring--focus": "af79fb116edb0dd7__outset-ring--focus", "outset-ring--focus-visible": "dfcfdc28396e5d98__outset-ring--focus-visible", "outset-ring--focus-within": "e5cd9ee879f6403a__outset-ring--focus-within", "outset-ring--focus-parent-visible": "_81935a08e952f267__outset-ring--focus-parent-visible", "outset-ring--focus-except-active": "abc777e9713fa711__outset-ring--focus-except-active", "outset-ring--focus-within-except-active": "_3c9f5ee9fc9c136d__outset-ring--focus-within-except-active" };
11526 + var Header2 = (0, import_element33.forwardRef)(
11527 + function CollapsibleCardHeader({
11528 + children,
11529 + className,
11530 + render,
11531 + "aria-describedby": ariaDescribedByProp,
11532 + ...restProps
11533 + }, ref) {
11534 + const [descriptionIds, setDescriptionIds] = (0, import_element33.useState)(
11535 + []
11536 + );
11537 + const [orderedDescriptionIds, setOrderedDescriptionIds] = (0, import_element33.useState)([]);
11538 + const headerContentRef = (0, import_element33.useRef)(null);
11539 + const registerDescriptionId = (0, import_element33.useCallback)((id) => {
11540 + setDescriptionIds((currentDescriptionIds) => {
11541 + if (currentDescriptionIds.includes(id)) {
11542 + return currentDescriptionIds;
11543 + }
11544 + return [...currentDescriptionIds, id];
11545 + });
11546 + return () => {
11547 + setDescriptionIds(
11548 + (currentDescriptionIds) => currentDescriptionIds.filter(
11549 + (descriptionId) => descriptionId !== id
11550 + )
11551 + );
11552 + };
11553 + }, []);
11554 + const contextValue = (0, import_element33.useMemo)(
11555 + () => ({ registerDescriptionId }),
11556 + [registerDescriptionId]
11557 + );
11558 + (0, import_compose.useIsomorphicLayoutEffect)(() => {
11559 + const registeredDescriptionIds = new Set(descriptionIds);
11560 + const nextDescriptionIds = Array.from(
11561 + headerContentRef.current?.querySelectorAll("[id]") ?? []
11562 + ).map((element) => element.id).filter((id) => registeredDescriptionIds.has(id));
11563 + setOrderedDescriptionIds((currentDescriptionIds) => {
11564 + if (currentDescriptionIds.length === nextDescriptionIds.length && currentDescriptionIds.every(
11565 + (id, index2) => id === nextDescriptionIds[index2]
11566 + )) {
11567 + return currentDescriptionIds;
11568 + }
11569 + return nextDescriptionIds;
11570 + });
11571 + });
11572 + const ariaDescribedBy = Array.from(
11573 + /* @__PURE__ */ new Set([
11574 + ...ariaDescribedByProp?.split(/\s+/).filter(Boolean) ?? [],
11575 + ...orderedDescriptionIds
11576 + ])
11577 + ).join(" ") || void 0;
11578 + return useRender({
11579 + defaultTagName: "div",
11580 + render,
11581 + ref,
11582 + props: mergeProps(restProps, {
11583 + className: clsx_default(
11584 + global_css_defense_default4.heading,
11585 + style_default13["heading-wrapper"],
11586 + className
11587 + ),
11588 + children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(HeaderDescriptionIdContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
11589 + Trigger2,
11590 + {
11591 + className: style_default13.header,
11592 + render: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Header, {}),
11593 + nativeButton: false,
11594 + "aria-describedby": ariaDescribedBy,
11595 + children: [
11596 + /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
11597 + "div",
11598 + {
11599 + ref: headerContentRef,
11600 + className: style_default13["header-content"],
11601 + children
11602 + }
11603 + ),
11604 + /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
11605 + "div",
11606 + {
11607 + className: clsx_default(
11608 + style_default13["header-trigger-positioner"]
11609 + ),
11610 + children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
11611 + "div",
11612 + {
11613 + className: clsx_default(
11614 + style_default13["header-trigger-wrapper"],
11615 + global_css_defense_default4.div,
11616 + // While the interactive trigger element is the whole header,
11617 + // the focus ring will be displayed only on the icon to visually
11618 + // emulate it being the button.
11619 + focus_module_default3["outset-ring--focus-parent-visible"]
11620 + ),
11621 + children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
11622 + Icon,
11623 + {
11624 + icon: chevron_down_default,
11625 + className: style_default13["header-trigger"]
11626 + }
11627 + )
11628 + }
11629 + )
11630 + }
11631 + )
11632 + ]
11633 + }
11634 + ) })
11635 + })
11636 + });
11637 + }
11638 + );
11639 +
11640 + // packages/ui/build-module/collapsible-card/header-description.mjs
11641 + var import_element34 = __toESM(require_element(), 1);
11642 + var import_jsx_runtime42 = __toESM(require_jsx_runtime(), 1);
11643 + var STYLE_HASH_ATTRIBUTE15 = "data-wp-hash";
11644 + function getRuntime15() {
11645 + const globalScope = globalThis;
11646 + if (globalScope.__wpStyleRuntime) {
11647 + return globalScope.__wpStyleRuntime;
11648 + }
11649 + globalScope.__wpStyleRuntime = {
11650 + documents: /* @__PURE__ */ new Map(),
11651 + styles: /* @__PURE__ */ new Map(),
11652 + injectedStyles: /* @__PURE__ */ new WeakMap()
11653 + };
11654 + if (typeof document !== "undefined") {
11655 + registerDocument15(document);
11656 + }
11657 + return globalScope.__wpStyleRuntime;
11658 + }
11659 + function documentContainsStyleHash15(targetDocument, hash) {
11660 + if (!targetDocument.head) {
11661 + return false;
11662 + }
11663 + for (const style of targetDocument.head.querySelectorAll(
11664 + `style[${STYLE_HASH_ATTRIBUTE15}]`
11665 + )) {
11666 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE15) === hash) {
11667 + return true;
11668 + }
11669 + }
11670 + return false;
11671 + }
11672 + function injectStyle15(targetDocument, hash, css) {
11673 + if (!targetDocument.head) {
11674 + return;
11675 + }
11676 + const runtime = getRuntime15();
11677 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
11678 + if (!injectedStyles) {
11679 + injectedStyles = /* @__PURE__ */ new Set();
11680 + runtime.injectedStyles.set(targetDocument, injectedStyles);
11681 + }
11682 + if (injectedStyles.has(hash)) {
11683 + return;
11684 + }
11685 + if (documentContainsStyleHash15(targetDocument, hash)) {
11686 + injectedStyles.add(hash);
11687 + return;
11688 + }
11689 + const style = targetDocument.createElement("style");
11690 + style.setAttribute(STYLE_HASH_ATTRIBUTE15, hash);
11691 + style.appendChild(targetDocument.createTextNode(css));
11692 + targetDocument.head.appendChild(style);
11693 + injectedStyles.add(hash);
11694 + }
11695 + function registerDocument15(targetDocument) {
11696 + const runtime = getRuntime15();
11697 + runtime.documents.set(
11698 + targetDocument,
11699 + (runtime.documents.get(targetDocument) ?? 0) + 1
11700 + );
11701 + for (const [hash, css] of runtime.styles) {
11702 + injectStyle15(targetDocument, hash, css);
11703 + }
11704 + return () => {
11705 + const count = runtime.documents.get(targetDocument);
11706 + if (count === void 0) {
11707 + return;
11708 + }
11709 + if (count <= 1) {
11710 + runtime.documents.delete(targetDocument);
11711 + return;
11712 + }
11713 + runtime.documents.set(targetDocument, count - 1);
11714 + };
11715 + }
11716 + function registerStyle15(hash, css) {
11717 + const runtime = getRuntime15();
11718 + runtime.styles.set(hash, css);
11719 + for (const targetDocument of runtime.documents.keys()) {
11720 + injectStyle15(targetDocument, hash, css);
11721 + }
11722 + }
11723 + if (typeof process === "undefined" || true) {
11724 + registerStyle15("64bdb4d46e", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._626190151275d6d3__heading-wrapper{--_gcd-heading-color:inherit;--_gcd-heading-font-size:inherit;--_gcd-heading-font-weight:inherit;--_gcd-heading-margin:0;font-family:inherit;line-height:inherit}.cab17c7a373cb60d__header-content{flex:1;min-width:0}._92ebbaa30c8a1d05__header-description{color:var(--wpds-color-foreground-content-neutral-weak,#707070)}.dd89d27c4f15912d__header-trigger-positioner{align-self:flex-start;flex-shrink:0;margin-block-start:calc(var(--wpds-typography-line-height-sm, 20px)/2);max-height:0;overflow:visible}.bcfab5f2448bafef__header-trigger-wrapper{border-radius:var(--wpds-border-radius-sm,2px);display:flex;translate:0 -50%}._3106f8d2b0330faa__header-trigger{@media not (prefers-reduced-motion){transition:rotate .15s ease-out}}._5d2dfcb4085c6d0f__header[data-panel-open] ._3106f8d2b0330faa__header-trigger{rotate:180deg}._5d2dfcb4085c6d0f__header[data-disabled] ._3106f8d2b0330faa__header-trigger{color:var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d)}.e34cf37ccd0d81e0__content{height:var(--collapsible-panel-height);margin-block-start:var(--wp-ui-card-header-content-margin);overflow:hidden;&._03cfdbcd710393c9__overflow-visible{overflow:visible}&[hidden]:not([hidden=until-found]){display:none}&[data-ending-style],&[data-starting-style]{height:0}@media not (prefers-reduced-motion){transition:all .15s ease-out}}}@layer compositions{._41bfdbf7b6c087c2__content-inner{padding-block-start:0}._5d2dfcb4085c6d0f__header{align-items:stretch;display:flex;flex-direction:row;gap:var(--wpds-dimension-gap-sm,8px);outline:none;&:not([data-disabled]){cursor:var(--wpds-cursor-control,pointer)}}}}");
11725 + }
11726 + var style_default14 = { "heading-wrapper": "_626190151275d6d3__heading-wrapper", "header-content": "cab17c7a373cb60d__header-content", "header-description": "_92ebbaa30c8a1d05__header-description", "header-trigger-positioner": "dd89d27c4f15912d__header-trigger-positioner", "header-trigger-wrapper": "bcfab5f2448bafef__header-trigger-wrapper", "header-trigger": "_3106f8d2b0330faa__header-trigger", "header": "_5d2dfcb4085c6d0f__header", "content": "e34cf37ccd0d81e0__content", "overflow-visible": "_03cfdbcd710393c9__overflow-visible", "content-inner": "_41bfdbf7b6c087c2__content-inner" };
11727 + var DEFAULT_TAG2 = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", {});
11728 + var HeaderDescription = (0, import_element34.forwardRef)(function CollapsibleCardHeaderDescription({ children, className, id: idProp, render = DEFAULT_TAG2, ...restProps }, ref) {
11729 + const generatedId = (0, import_element34.useId)();
11730 + const descriptionId = idProp ?? generatedId;
11731 + const context = (0, import_element34.useContext)(HeaderDescriptionIdContext);
11732 + if (!context) {
11733 + throw new Error(
11734 + "CollapsibleCard.HeaderDescription: Missing parent <CollapsibleCard.Header>. Render <CollapsibleCard.HeaderDescription> inside <CollapsibleCard.Header>."
11735 + );
11736 + }
11737 + (0, import_element34.useEffect)(() => {
11738 + return context?.registerDescriptionId(descriptionId);
11739 + }, [context, descriptionId]);
11740 + return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
11741 + Text,
11742 + {
11743 + ref,
11744 + variant: "body-md",
11745 + render,
11746 + id: descriptionId,
11747 + "aria-hidden": "true",
11748 + className: clsx_default(style_default14["header-description"], className),
11749 + ...restProps,
11750 + children
11751 + }
11752 + );
11753 + });
11754 +
11755 + // packages/ui/build-module/collapsible-card/content.mjs
11756 + var import_element35 = __toESM(require_element(), 1);
11757 + var import_jsx_runtime43 = __toESM(require_jsx_runtime(), 1);
11758 + var STYLE_HASH_ATTRIBUTE16 = "data-wp-hash";
11759 + function getRuntime16() {
11760 + const globalScope = globalThis;
11761 + if (globalScope.__wpStyleRuntime) {
11762 + return globalScope.__wpStyleRuntime;
11763 + }
11764 + globalScope.__wpStyleRuntime = {
11765 + documents: /* @__PURE__ */ new Map(),
11766 + styles: /* @__PURE__ */ new Map(),
11767 + injectedStyles: /* @__PURE__ */ new WeakMap()
11768 + };
11769 + if (typeof document !== "undefined") {
11770 + registerDocument16(document);
11771 + }
11772 + return globalScope.__wpStyleRuntime;
11773 + }
11774 + function documentContainsStyleHash16(targetDocument, hash) {
11775 + if (!targetDocument.head) {
11776 + return false;
11777 + }
11778 + for (const style of targetDocument.head.querySelectorAll(
11779 + `style[${STYLE_HASH_ATTRIBUTE16}]`
11780 + )) {
11781 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE16) === hash) {
11782 + return true;
11783 + }
11784 + }
11785 + return false;
11786 + }
11787 + function injectStyle16(targetDocument, hash, css) {
11788 + if (!targetDocument.head) {
11789 + return;
11790 + }
11791 + const runtime = getRuntime16();
11792 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
11793 + if (!injectedStyles) {
11794 + injectedStyles = /* @__PURE__ */ new Set();
11795 + runtime.injectedStyles.set(targetDocument, injectedStyles);
11796 + }
11797 + if (injectedStyles.has(hash)) {
11798 + return;
11799 + }
11800 + if (documentContainsStyleHash16(targetDocument, hash)) {
11801 + injectedStyles.add(hash);
11802 + return;
11803 + }
11804 + const style = targetDocument.createElement("style");
11805 + style.setAttribute(STYLE_HASH_ATTRIBUTE16, hash);
11806 + style.appendChild(targetDocument.createTextNode(css));
11807 + targetDocument.head.appendChild(style);
11808 + injectedStyles.add(hash);
11809 + }
11810 + function registerDocument16(targetDocument) {
11811 + const runtime = getRuntime16();
11812 + runtime.documents.set(
11813 + targetDocument,
11814 + (runtime.documents.get(targetDocument) ?? 0) + 1
11815 + );
11816 + for (const [hash, css] of runtime.styles) {
11817 + injectStyle16(targetDocument, hash, css);
11818 + }
11819 + return () => {
11820 + const count = runtime.documents.get(targetDocument);
11821 + if (count === void 0) {
11822 + return;
11823 + }
11824 + if (count <= 1) {
11825 + runtime.documents.delete(targetDocument);
11826 + return;
11827 + }
11828 + runtime.documents.set(targetDocument, count - 1);
11829 + };
11830 + }
11831 + function registerStyle16(hash, css) {
11832 + const runtime = getRuntime16();
11833 + runtime.styles.set(hash, css);
11834 + for (const targetDocument of runtime.documents.keys()) {
11835 + injectStyle16(targetDocument, hash, css);
11836 + }
11837 + }
11838 + if (typeof process === "undefined" || true) {
11839 + registerStyle16("64bdb4d46e", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._626190151275d6d3__heading-wrapper{--_gcd-heading-color:inherit;--_gcd-heading-font-size:inherit;--_gcd-heading-font-weight:inherit;--_gcd-heading-margin:0;font-family:inherit;line-height:inherit}.cab17c7a373cb60d__header-content{flex:1;min-width:0}._92ebbaa30c8a1d05__header-description{color:var(--wpds-color-foreground-content-neutral-weak,#707070)}.dd89d27c4f15912d__header-trigger-positioner{align-self:flex-start;flex-shrink:0;margin-block-start:calc(var(--wpds-typography-line-height-sm, 20px)/2);max-height:0;overflow:visible}.bcfab5f2448bafef__header-trigger-wrapper{border-radius:var(--wpds-border-radius-sm,2px);display:flex;translate:0 -50%}._3106f8d2b0330faa__header-trigger{@media not (prefers-reduced-motion){transition:rotate .15s ease-out}}._5d2dfcb4085c6d0f__header[data-panel-open] ._3106f8d2b0330faa__header-trigger{rotate:180deg}._5d2dfcb4085c6d0f__header[data-disabled] ._3106f8d2b0330faa__header-trigger{color:var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d)}.e34cf37ccd0d81e0__content{height:var(--collapsible-panel-height);margin-block-start:var(--wp-ui-card-header-content-margin);overflow:hidden;&._03cfdbcd710393c9__overflow-visible{overflow:visible}&[hidden]:not([hidden=until-found]){display:none}&[data-ending-style],&[data-starting-style]{height:0}@media not (prefers-reduced-motion){transition:all .15s ease-out}}}@layer compositions{._41bfdbf7b6c087c2__content-inner{padding-block-start:0}._5d2dfcb4085c6d0f__header{align-items:stretch;display:flex;flex-direction:row;gap:var(--wpds-dimension-gap-sm,8px);outline:none;&:not([data-disabled]){cursor:var(--wpds-cursor-control,pointer)}}}}");
11840 + }
11841 + var style_default15 = { "heading-wrapper": "_626190151275d6d3__heading-wrapper", "header-content": "cab17c7a373cb60d__header-content", "header-description": "_92ebbaa30c8a1d05__header-description", "header-trigger-positioner": "dd89d27c4f15912d__header-trigger-positioner", "header-trigger-wrapper": "bcfab5f2448bafef__header-trigger-wrapper", "header-trigger": "_3106f8d2b0330faa__header-trigger", "header": "_5d2dfcb4085c6d0f__header", "content": "e34cf37ccd0d81e0__content", "overflow-visible": "_03cfdbcd710393c9__overflow-visible", "content-inner": "_41bfdbf7b6c087c2__content-inner" };
11842 + var Content2 = (0, import_element35.forwardRef)(
11843 + function CollapsibleCardContent({ className, render, children, hiddenUntilFound = true, ...restProps }, ref) {
11844 + return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
11845 + Panel,
11846 + {
11847 + ref,
11848 + className: (state) => clsx_default(
11849 + style_default15.content,
11850 + state.open && state.transitionStatus === "idle" && style_default15["overflow-visible"],
11851 + className
11852 + ),
11853 + hiddenUntilFound,
11854 + ...restProps,
11855 + children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
11856 + Content,
11857 + {
11858 + className: style_default15["content-inner"],
11859 + render,
11860 + children
11861 + }
11862 + )
11863 + }
11864 + );
11865 + }
11866 + );
11867 +
11868 + // packages/ui/build-module/stack/stack.mjs
11869 + var import_element36 = __toESM(require_element(), 1);
11870 + var STYLE_HASH_ATTRIBUTE17 = "data-wp-hash";
11871 + function getRuntime17() {
11872 + const globalScope = globalThis;
11873 + if (globalScope.__wpStyleRuntime) {
11874 + return globalScope.__wpStyleRuntime;
11875 + }
11876 + globalScope.__wpStyleRuntime = {
11877 + documents: /* @__PURE__ */ new Map(),
11878 + styles: /* @__PURE__ */ new Map(),
11879 + injectedStyles: /* @__PURE__ */ new WeakMap()
11880 + };
11881 + if (typeof document !== "undefined") {
11882 + registerDocument17(document);
11883 + }
11884 + return globalScope.__wpStyleRuntime;
11885 + }
11886 + function documentContainsStyleHash17(targetDocument, hash) {
11887 + if (!targetDocument.head) {
11888 + return false;
11889 + }
11890 + for (const style of targetDocument.head.querySelectorAll(
11891 + `style[${STYLE_HASH_ATTRIBUTE17}]`
11892 + )) {
11893 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE17) === hash) {
11894 + return true;
11895 + }
11896 + }
11897 + return false;
11898 + }
11899 + function injectStyle17(targetDocument, hash, css) {
11900 + if (!targetDocument.head) {
11901 + return;
11902 + }
11903 + const runtime = getRuntime17();
11904 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
11905 + if (!injectedStyles) {
11906 + injectedStyles = /* @__PURE__ */ new Set();
11907 + runtime.injectedStyles.set(targetDocument, injectedStyles);
11908 + }
11909 + if (injectedStyles.has(hash)) {
11910 + return;
11911 + }
11912 + if (documentContainsStyleHash17(targetDocument, hash)) {
11913 + injectedStyles.add(hash);
11914 + return;
11915 + }
11916 + const style = targetDocument.createElement("style");
11917 + style.setAttribute(STYLE_HASH_ATTRIBUTE17, hash);
11918 + style.appendChild(targetDocument.createTextNode(css));
11919 + targetDocument.head.appendChild(style);
11920 + injectedStyles.add(hash);
11921 + }
11922 + function registerDocument17(targetDocument) {
11923 + const runtime = getRuntime17();
11924 + runtime.documents.set(
11925 + targetDocument,
11926 + (runtime.documents.get(targetDocument) ?? 0) + 1
11927 + );
11928 + for (const [hash, css] of runtime.styles) {
11929 + injectStyle17(targetDocument, hash, css);
11930 + }
11931 + return () => {
11932 + const count = runtime.documents.get(targetDocument);
11933 + if (count === void 0) {
11934 + return;
11935 + }
11936 + if (count <= 1) {
11937 + runtime.documents.delete(targetDocument);
11938 + return;
11939 + }
11940 + runtime.documents.set(targetDocument, count - 1);
11941 + };
11942 + }
11943 + function registerStyle17(hash, css) {
11944 + const runtime = getRuntime17();
11945 + runtime.styles.set(hash, css);
11946 + for (const targetDocument of runtime.documents.keys()) {
11947 + injectStyle17(targetDocument, hash, css);
11948 + }
11949 + }
11950 + if (typeof process === "undefined" || true) {
11951 + registerStyle17("32aba35fe1", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._19ce0419607e1896__stack{display:flex}}}");
11952 + }
11953 + var style_default16 = { "stack": "_19ce0419607e1896__stack" };
11954 + var gapTokens = {
11955 + xs: "var(--wpds-dimension-gap-xs, 4px)",
11956 + sm: "var(--wpds-dimension-gap-sm, 8px)",
11957 + md: "var(--wpds-dimension-gap-md, 12px)",
11958 + lg: "var(--wpds-dimension-gap-lg, 16px)",
11959 + xl: "var(--wpds-dimension-gap-xl, 24px)",
11960 + "2xl": "var(--wpds-dimension-gap-2xl, 32px)",
11961 + "3xl": "var(--wpds-dimension-gap-3xl, 40px)"
11962 + };
11963 + var Stack = (0, import_element36.forwardRef)(function Stack2({ direction, gap, align, justify, wrap, render, ...props }, ref) {
11964 + const style = {
11965 + gap: gap && gapTokens[gap],
11966 + alignItems: align,
11967 + justifyContent: justify,
11968 + flexDirection: direction,
11969 + flexWrap: wrap
11970 + };
11971 + const element = useRender({
11972 + render,
11973 + ref,
11974 + props: mergeProps(props, { style, className: style_default16.stack })
11975 + });
11976 + return element;
11977 + });
11978 +
11979 + // packages/ui/build-module/notice/index.mjs
11980 + var notice_exports = {};
11981 + __export(notice_exports, {
11982 + ActionButton: () => ActionButton,
11983 + ActionLink: () => ActionLink,
11984 + Actions: () => Actions,
11985 + CloseIcon: () => CloseIcon,
11986 + Description: () => Description,
11987 + Root: () => Root4,
11988 + Title: () => Title2
11989 + });
11990 +
11991 + // packages/ui/build-module/notice/root.mjs
11992 + var import_a11y2 = __toESM(require_a11y(), 1);
11993 + var import_element37 = __toESM(require_element(), 1);
11994 + var import_jsx_runtime44 = __toESM(require_jsx_runtime(), 1);
11995 + var STYLE_HASH_ATTRIBUTE18 = "data-wp-hash";
11996 + function getRuntime18() {
11997 + const globalScope = globalThis;
11998 + if (globalScope.__wpStyleRuntime) {
11999 + return globalScope.__wpStyleRuntime;
12000 + }
12001 + globalScope.__wpStyleRuntime = {
12002 + documents: /* @__PURE__ */ new Map(),
12003 + styles: /* @__PURE__ */ new Map(),
12004 + injectedStyles: /* @__PURE__ */ new WeakMap()
12005 + };
12006 + if (typeof document !== "undefined") {
12007 + registerDocument18(document);
12008 + }
12009 + return globalScope.__wpStyleRuntime;
12010 + }
12011 + function documentContainsStyleHash18(targetDocument, hash) {
12012 + if (!targetDocument.head) {
12013 + return false;
12014 + }
12015 + for (const style of targetDocument.head.querySelectorAll(
12016 + `style[${STYLE_HASH_ATTRIBUTE18}]`
12017 + )) {
12018 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE18) === hash) {
12019 + return true;
12020 + }
12021 + }
12022 + return false;
12023 + }
12024 + function injectStyle18(targetDocument, hash, css) {
12025 + if (!targetDocument.head) {
12026 + return;
12027 + }
12028 + const runtime = getRuntime18();
12029 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
12030 + if (!injectedStyles) {
12031 + injectedStyles = /* @__PURE__ */ new Set();
12032 + runtime.injectedStyles.set(targetDocument, injectedStyles);
12033 + }
12034 + if (injectedStyles.has(hash)) {
12035 + return;
12036 + }
12037 + if (documentContainsStyleHash18(targetDocument, hash)) {
12038 + injectedStyles.add(hash);
12039 + return;
12040 + }
12041 + const style = targetDocument.createElement("style");
12042 + style.setAttribute(STYLE_HASH_ATTRIBUTE18, hash);
12043 + style.appendChild(targetDocument.createTextNode(css));
12044 + targetDocument.head.appendChild(style);
12045 + injectedStyles.add(hash);
12046 + }
12047 + function registerDocument18(targetDocument) {
12048 + const runtime = getRuntime18();
12049 + runtime.documents.set(
12050 + targetDocument,
12051 + (runtime.documents.get(targetDocument) ?? 0) + 1
12052 + );
12053 + for (const [hash, css] of runtime.styles) {
12054 + injectStyle18(targetDocument, hash, css);
12055 + }
12056 + return () => {
12057 + const count = runtime.documents.get(targetDocument);
12058 + if (count === void 0) {
12059 + return;
12060 + }
12061 + if (count <= 1) {
12062 + runtime.documents.delete(targetDocument);
12063 + return;
12064 + }
12065 + runtime.documents.set(targetDocument, count - 1);
12066 + };
12067 + }
12068 + function registerStyle18(hash, css) {
12069 + const runtime = getRuntime18();
12070 + runtime.styles.set(hash, css);
12071 + for (const targetDocument of runtime.documents.keys()) {
12072 + injectStyle18(targetDocument, hash, css);
12073 + }
12074 + }
12075 + if (typeof process === "undefined" || true) {
12076 + registerStyle18("10f3806643", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._336cd3e4e743482f__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}}");
12077 + }
12078 + var resets_default5 = { "box-sizing": "_336cd3e4e743482f__box-sizing" };
12079 + if (typeof process === "undefined" || true) {
12080 + registerStyle18("2e53930a41", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._4145abab73d17514__notice{--icon-height:var(--wpds-dimension-size-sm,24px);--text-vertical-padding:calc((var(--icon-height) - var(--wpds-typography-line-height-sm, 20px))/2);--wp-ui-notice-background-color:var(--wpds-color-background-surface-neutral-weak,#f4f4f4);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);align-items:start;background-color:var(--wp-ui-notice-background-color);border:1px solid var(--wp-ui-notice-border-color);border-radius:var(--wpds-border-radius-lg,8px);container-type:inline-size;display:grid;grid-template-columns:auto 1fr auto;padding:var(--wpds-dimension-padding-md,12px)}.d0a25570cb528528__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._1904b570a89bb815__description,.b5397fb9d05389e3__title{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._0a1270dcdd79c031__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._4145abab73d17514__notice:has(._1904b570a89bb815__description) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}._983740ab855c4e09__action-button{flex-shrink:0}.d329e7416d368d31__action-link{flex-shrink:0;&:not(:first-child){margin-inline-start:var(--wpds-dimension-gap-xs,4px)}&:not(:last-child){margin-inline-end:var(--wpds-dimension-gap-xs,4px)}}._487e6a5c1375f7dc__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._531c140826094795__is-info{--wp-ui-notice-background-color:var(--wpds-color-background-surface-info-weak,#f3f9ff);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-info,#adc6e2);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-info,#001b4f);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-info-weak,#006bd7)}.ae2e1004697cce95__is-warning{--wp-ui-notice-background-color:var(--wpds-color-background-surface-warning-weak,#fff7e1);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-warning,#e1bd7c);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-warning,#2e1900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-warning-weak,#936300)}._2e614a76af494837__is-success{--wp-ui-notice-background-color:var(--wpds-color-background-surface-success-weak,#ebffed);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-success,#92d39d);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-success,#002900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-success-weak,#008030)}.af00331ae17a0065__is-error{--wp-ui-notice-background-color:var(--wpds-color-background-surface-error-weak,#fff6f5);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-error,#e0afa7);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-error,#470000);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-error-weak,#cc1818)}@container (max-width: 320px){._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._1904b570a89bb815__description{grid-column:1/3}}}@layer compositions{.d329e7416d368d31__action-link{margin-block:auto}._487e6a5c1375f7dc__close-icon,._983740ab855c4e09__action-button:is(._8ddb8fb33fbf3d38__is-action-button-outline,._77bbde495a8a0af3__is-action-button-minimal){--wp-ui-button-background-color-active:color-mix(in srgb,transparent 50%,var(--wpds-color-background-interactive-neutral-weak-active,#ededed))}}}");
12081 + }
12082 + var style_default17 = { "notice": "_4145abab73d17514__notice", "icon": "d0a25570cb528528__icon", "title": "b5397fb9d05389e3__title", "description": "_1904b570a89bb815__description", "actions": "_0a1270dcdd79c031__actions", "action-button": "_983740ab855c4e09__action-button", "action-link": "d329e7416d368d31__action-link", "close-icon": "_487e6a5c1375f7dc__close-icon", "is-info": "_531c140826094795__is-info", "is-warning": "ae2e1004697cce95__is-warning", "is-success": "_2e614a76af494837__is-success", "is-error": "af00331ae17a0065__is-error", "is-action-button-outline": "_8ddb8fb33fbf3d38__is-action-button-outline", "is-action-button-minimal": "_77bbde495a8a0af3__is-action-button-minimal" };
12083 + var icons = {
12084 + neutral: null,
12085 + info: info_default,
12086 + warning: caution_default,
12087 + success: published_default,
12088 + error: error_default
12089 + };
12090 + function getDefaultPoliteness(intent) {
12091 + return intent === "error" ? "assertive" : "polite";
12092 + }
12093 + function safeRenderToString(message) {
12094 + if (!message) {
12095 + return void 0;
12096 + }
12097 + if (typeof message === "string") {
12098 + return message;
12099 + }
12100 + try {
12101 + return (0, import_element37.renderToString)(message);
12102 + } catch {
12103 + return void 0;
12104 + }
12105 + }
12106 + function useSpokenMessage(message, politeness) {
12107 + const spokenMessage = safeRenderToString(message);
12108 + (0, import_element37.useEffect)(() => {
12109 + if (spokenMessage) {
12110 + (0, import_a11y2.speak)(spokenMessage, politeness);
12111 + }
12112 + }, [spokenMessage, politeness]);
12113 + }
12114 + var Root4 = (0, import_element37.forwardRef)(function Notice({
12115 + intent = "neutral",
12116 + children,
12117 + icon,
12118 + spokenMessage = children,
12119 + politeness = getDefaultPoliteness(intent),
12120 + render,
12121 + ...restProps
12122 + }, ref) {
12123 + useSpokenMessage(spokenMessage, politeness);
12124 + const iconElement = icon === null ? null : icon ?? icons[intent];
12125 + const mergedClassName = clsx_default(
12126 + style_default17.notice,
12127 + style_default17[`is-${intent}`],
12128 + resets_default5["box-sizing"]
12129 + );
12130 + const element = useRender({
12131 + defaultTagName: "div",
12132 + render,
12133 + ref,
12134 + props: mergeProps(
12135 + {
12136 + className: mergedClassName,
12137 + children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
12138 + children,
12139 + iconElement && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
12140 + Icon,
12141 + {
12142 + className: style_default17.icon,
12143 + icon: iconElement
12144 + }
12145 + )
12146 + ] })
12147 + },
12148 + restProps
12149 + )
12150 + });
12151 + return element;
12152 + });
12153 +
12154 + // packages/ui/build-module/notice/title.mjs
12155 + var import_element38 = __toESM(require_element(), 1);
12156 + var import_jsx_runtime45 = __toESM(require_jsx_runtime(), 1);
12157 + var STYLE_HASH_ATTRIBUTE19 = "data-wp-hash";
12158 + function getRuntime19() {
12159 + const globalScope = globalThis;
12160 + if (globalScope.__wpStyleRuntime) {
12161 + return globalScope.__wpStyleRuntime;
12162 + }
12163 + globalScope.__wpStyleRuntime = {
12164 + documents: /* @__PURE__ */ new Map(),
12165 + styles: /* @__PURE__ */ new Map(),
12166 + injectedStyles: /* @__PURE__ */ new WeakMap()
12167 + };
12168 + if (typeof document !== "undefined") {
12169 + registerDocument19(document);
12170 + }
12171 + return globalScope.__wpStyleRuntime;
12172 + }
12173 + function documentContainsStyleHash19(targetDocument, hash) {
12174 + if (!targetDocument.head) {
12175 + return false;
12176 + }
12177 + for (const style of targetDocument.head.querySelectorAll(
12178 + `style[${STYLE_HASH_ATTRIBUTE19}]`
12179 + )) {
12180 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE19) === hash) {
12181 + return true;
12182 + }
12183 + }
12184 + return false;
12185 + }
12186 + function injectStyle19(targetDocument, hash, css) {
12187 + if (!targetDocument.head) {
12188 + return;
12189 + }
12190 + const runtime = getRuntime19();
12191 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
12192 + if (!injectedStyles) {
12193 + injectedStyles = /* @__PURE__ */ new Set();
12194 + runtime.injectedStyles.set(targetDocument, injectedStyles);
12195 + }
12196 + if (injectedStyles.has(hash)) {
12197 + return;
12198 + }
12199 + if (documentContainsStyleHash19(targetDocument, hash)) {
12200 + injectedStyles.add(hash);
12201 + return;
12202 + }
12203 + const style = targetDocument.createElement("style");
12204 + style.setAttribute(STYLE_HASH_ATTRIBUTE19, hash);
12205 + style.appendChild(targetDocument.createTextNode(css));
12206 + targetDocument.head.appendChild(style);
12207 + injectedStyles.add(hash);
12208 + }
12209 + function registerDocument19(targetDocument) {
12210 + const runtime = getRuntime19();
12211 + runtime.documents.set(
12212 + targetDocument,
12213 + (runtime.documents.get(targetDocument) ?? 0) + 1
12214 + );
12215 + for (const [hash, css] of runtime.styles) {
12216 + injectStyle19(targetDocument, hash, css);
12217 + }
12218 + return () => {
12219 + const count = runtime.documents.get(targetDocument);
12220 + if (count === void 0) {
12221 + return;
12222 + }
12223 + if (count <= 1) {
12224 + runtime.documents.delete(targetDocument);
12225 + return;
12226 + }
12227 + runtime.documents.set(targetDocument, count - 1);
12228 + };
12229 + }
12230 + function registerStyle19(hash, css) {
12231 + const runtime = getRuntime19();
12232 + runtime.styles.set(hash, css);
12233 + for (const targetDocument of runtime.documents.keys()) {
12234 + injectStyle19(targetDocument, hash, css);
12235 + }
12236 + }
12237 + if (typeof process === "undefined" || true) {
12238 + registerStyle19("2e53930a41", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._4145abab73d17514__notice{--icon-height:var(--wpds-dimension-size-sm,24px);--text-vertical-padding:calc((var(--icon-height) - var(--wpds-typography-line-height-sm, 20px))/2);--wp-ui-notice-background-color:var(--wpds-color-background-surface-neutral-weak,#f4f4f4);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);align-items:start;background-color:var(--wp-ui-notice-background-color);border:1px solid var(--wp-ui-notice-border-color);border-radius:var(--wpds-border-radius-lg,8px);container-type:inline-size;display:grid;grid-template-columns:auto 1fr auto;padding:var(--wpds-dimension-padding-md,12px)}.d0a25570cb528528__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._1904b570a89bb815__description,.b5397fb9d05389e3__title{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._0a1270dcdd79c031__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._4145abab73d17514__notice:has(._1904b570a89bb815__description) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}._983740ab855c4e09__action-button{flex-shrink:0}.d329e7416d368d31__action-link{flex-shrink:0;&:not(:first-child){margin-inline-start:var(--wpds-dimension-gap-xs,4px)}&:not(:last-child){margin-inline-end:var(--wpds-dimension-gap-xs,4px)}}._487e6a5c1375f7dc__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._531c140826094795__is-info{--wp-ui-notice-background-color:var(--wpds-color-background-surface-info-weak,#f3f9ff);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-info,#adc6e2);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-info,#001b4f);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-info-weak,#006bd7)}.ae2e1004697cce95__is-warning{--wp-ui-notice-background-color:var(--wpds-color-background-surface-warning-weak,#fff7e1);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-warning,#e1bd7c);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-warning,#2e1900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-warning-weak,#936300)}._2e614a76af494837__is-success{--wp-ui-notice-background-color:var(--wpds-color-background-surface-success-weak,#ebffed);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-success,#92d39d);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-success,#002900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-success-weak,#008030)}.af00331ae17a0065__is-error{--wp-ui-notice-background-color:var(--wpds-color-background-surface-error-weak,#fff6f5);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-error,#e0afa7);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-error,#470000);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-error-weak,#cc1818)}@container (max-width: 320px){._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._1904b570a89bb815__description{grid-column:1/3}}}@layer compositions{.d329e7416d368d31__action-link{margin-block:auto}._487e6a5c1375f7dc__close-icon,._983740ab855c4e09__action-button:is(._8ddb8fb33fbf3d38__is-action-button-outline,._77bbde495a8a0af3__is-action-button-minimal){--wp-ui-button-background-color-active:color-mix(in srgb,transparent 50%,var(--wpds-color-background-interactive-neutral-weak-active,#ededed))}}}");
12239 + }
12240 + var style_default18 = { "notice": "_4145abab73d17514__notice", "icon": "d0a25570cb528528__icon", "title": "b5397fb9d05389e3__title", "description": "_1904b570a89bb815__description", "actions": "_0a1270dcdd79c031__actions", "action-button": "_983740ab855c4e09__action-button", "action-link": "d329e7416d368d31__action-link", "close-icon": "_487e6a5c1375f7dc__close-icon", "is-info": "_531c140826094795__is-info", "is-warning": "ae2e1004697cce95__is-warning", "is-success": "_2e614a76af494837__is-success", "is-error": "af00331ae17a0065__is-error", "is-action-button-outline": "_8ddb8fb33fbf3d38__is-action-button-outline", "is-action-button-minimal": "_77bbde495a8a0af3__is-action-button-minimal" };
12241 + var Title2 = (0, import_element38.forwardRef)(
12242 + function NoticeTitle({ className, ...props }, ref) {
12243 + return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
12244 + Text,
12245 + {
12246 + ref,
12247 + variant: "heading-md",
12248 + className: clsx_default(style_default18.title, className),
12249 + ...props
12250 + }
12251 + );
12252 + }
12253 + );
12254 +
12255 + // packages/ui/build-module/notice/description.mjs
12256 + var import_element39 = __toESM(require_element(), 1);
12257 + var import_jsx_runtime46 = __toESM(require_jsx_runtime(), 1);
12258 + var STYLE_HASH_ATTRIBUTE20 = "data-wp-hash";
12259 + function getRuntime20() {
12260 + const globalScope = globalThis;
12261 + if (globalScope.__wpStyleRuntime) {
12262 + return globalScope.__wpStyleRuntime;
12263 + }
12264 + globalScope.__wpStyleRuntime = {
12265 + documents: /* @__PURE__ */ new Map(),
12266 + styles: /* @__PURE__ */ new Map(),
12267 + injectedStyles: /* @__PURE__ */ new WeakMap()
12268 + };
12269 + if (typeof document !== "undefined") {
12270 + registerDocument20(document);
12271 + }
12272 + return globalScope.__wpStyleRuntime;
12273 + }
12274 + function documentContainsStyleHash20(targetDocument, hash) {
12275 + if (!targetDocument.head) {
12276 + return false;
12277 + }
12278 + for (const style of targetDocument.head.querySelectorAll(
12279 + `style[${STYLE_HASH_ATTRIBUTE20}]`
12280 + )) {
12281 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE20) === hash) {
12282 + return true;
12283 + }
12284 + }
12285 + return false;
12286 + }
12287 + function injectStyle20(targetDocument, hash, css) {
12288 + if (!targetDocument.head) {
12289 + return;
12290 + }
12291 + const runtime = getRuntime20();
12292 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
12293 + if (!injectedStyles) {
12294 + injectedStyles = /* @__PURE__ */ new Set();
12295 + runtime.injectedStyles.set(targetDocument, injectedStyles);
12296 + }
12297 + if (injectedStyles.has(hash)) {
12298 + return;
12299 + }
12300 + if (documentContainsStyleHash20(targetDocument, hash)) {
12301 + injectedStyles.add(hash);
12302 + return;
12303 + }
12304 + const style = targetDocument.createElement("style");
12305 + style.setAttribute(STYLE_HASH_ATTRIBUTE20, hash);
12306 + style.appendChild(targetDocument.createTextNode(css));
12307 + targetDocument.head.appendChild(style);
12308 + injectedStyles.add(hash);
12309 + }
12310 + function registerDocument20(targetDocument) {
12311 + const runtime = getRuntime20();
12312 + runtime.documents.set(
12313 + targetDocument,
12314 + (runtime.documents.get(targetDocument) ?? 0) + 1
12315 + );
12316 + for (const [hash, css] of runtime.styles) {
12317 + injectStyle20(targetDocument, hash, css);
12318 + }
12319 + return () => {
12320 + const count = runtime.documents.get(targetDocument);
12321 + if (count === void 0) {
12322 + return;
12323 + }
12324 + if (count <= 1) {
12325 + runtime.documents.delete(targetDocument);
12326 + return;
12327 + }
12328 + runtime.documents.set(targetDocument, count - 1);
12329 + };
12330 + }
12331 + function registerStyle20(hash, css) {
12332 + const runtime = getRuntime20();
12333 + runtime.styles.set(hash, css);
12334 + for (const targetDocument of runtime.documents.keys()) {
12335 + injectStyle20(targetDocument, hash, css);
12336 + }
12337 + }
12338 + if (typeof process === "undefined" || true) {
12339 + registerStyle20("2e53930a41", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._4145abab73d17514__notice{--icon-height:var(--wpds-dimension-size-sm,24px);--text-vertical-padding:calc((var(--icon-height) - var(--wpds-typography-line-height-sm, 20px))/2);--wp-ui-notice-background-color:var(--wpds-color-background-surface-neutral-weak,#f4f4f4);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);align-items:start;background-color:var(--wp-ui-notice-background-color);border:1px solid var(--wp-ui-notice-border-color);border-radius:var(--wpds-border-radius-lg,8px);container-type:inline-size;display:grid;grid-template-columns:auto 1fr auto;padding:var(--wpds-dimension-padding-md,12px)}.d0a25570cb528528__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._1904b570a89bb815__description,.b5397fb9d05389e3__title{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._0a1270dcdd79c031__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._4145abab73d17514__notice:has(._1904b570a89bb815__description) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}._983740ab855c4e09__action-button{flex-shrink:0}.d329e7416d368d31__action-link{flex-shrink:0;&:not(:first-child){margin-inline-start:var(--wpds-dimension-gap-xs,4px)}&:not(:last-child){margin-inline-end:var(--wpds-dimension-gap-xs,4px)}}._487e6a5c1375f7dc__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._531c140826094795__is-info{--wp-ui-notice-background-color:var(--wpds-color-background-surface-info-weak,#f3f9ff);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-info,#adc6e2);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-info,#001b4f);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-info-weak,#006bd7)}.ae2e1004697cce95__is-warning{--wp-ui-notice-background-color:var(--wpds-color-background-surface-warning-weak,#fff7e1);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-warning,#e1bd7c);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-warning,#2e1900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-warning-weak,#936300)}._2e614a76af494837__is-success{--wp-ui-notice-background-color:var(--wpds-color-background-surface-success-weak,#ebffed);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-success,#92d39d);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-success,#002900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-success-weak,#008030)}.af00331ae17a0065__is-error{--wp-ui-notice-background-color:var(--wpds-color-background-surface-error-weak,#fff6f5);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-error,#e0afa7);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-error,#470000);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-error-weak,#cc1818)}@container (max-width: 320px){._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._1904b570a89bb815__description{grid-column:1/3}}}@layer compositions{.d329e7416d368d31__action-link{margin-block:auto}._487e6a5c1375f7dc__close-icon,._983740ab855c4e09__action-button:is(._8ddb8fb33fbf3d38__is-action-button-outline,._77bbde495a8a0af3__is-action-button-minimal){--wp-ui-button-background-color-active:color-mix(in srgb,transparent 50%,var(--wpds-color-background-interactive-neutral-weak-active,#ededed))}}}");
12340 + }
12341 + var style_default19 = { "notice": "_4145abab73d17514__notice", "icon": "d0a25570cb528528__icon", "title": "b5397fb9d05389e3__title", "description": "_1904b570a89bb815__description", "actions": "_0a1270dcdd79c031__actions", "action-button": "_983740ab855c4e09__action-button", "action-link": "d329e7416d368d31__action-link", "close-icon": "_487e6a5c1375f7dc__close-icon", "is-info": "_531c140826094795__is-info", "is-warning": "ae2e1004697cce95__is-warning", "is-success": "_2e614a76af494837__is-success", "is-error": "af00331ae17a0065__is-error", "is-action-button-outline": "_8ddb8fb33fbf3d38__is-action-button-outline", "is-action-button-minimal": "_77bbde495a8a0af3__is-action-button-minimal" };
12342 + var Description = (0, import_element39.forwardRef)(
12343 + function NoticeDescription({ className, ...props }, ref) {
12344 + return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
12345 + Text,
12346 + {
12347 + ref,
12348 + variant: "body-md",
12349 + className: clsx_default(style_default19.description, className),
12350 + ...props
12351 + }
12352 + );
12353 + }
12354 + );
12355 +
12356 + // packages/ui/build-module/notice/actions.mjs
12357 + var import_element40 = __toESM(require_element(), 1);
12358 + var STYLE_HASH_ATTRIBUTE21 = "data-wp-hash";
12359 + function getRuntime21() {
12360 + const globalScope = globalThis;
12361 + if (globalScope.__wpStyleRuntime) {
12362 + return globalScope.__wpStyleRuntime;
12363 + }
12364 + globalScope.__wpStyleRuntime = {
12365 + documents: /* @__PURE__ */ new Map(),
12366 + styles: /* @__PURE__ */ new Map(),
12367 + injectedStyles: /* @__PURE__ */ new WeakMap()
12368 + };
12369 + if (typeof document !== "undefined") {
12370 + registerDocument21(document);
12371 + }
12372 + return globalScope.__wpStyleRuntime;
12373 + }
12374 + function documentContainsStyleHash21(targetDocument, hash) {
12375 + if (!targetDocument.head) {
12376 + return false;
12377 + }
12378 + for (const style of targetDocument.head.querySelectorAll(
12379 + `style[${STYLE_HASH_ATTRIBUTE21}]`
12380 + )) {
12381 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE21) === hash) {
12382 + return true;
12383 + }
12384 + }
12385 + return false;
12386 + }
12387 + function injectStyle21(targetDocument, hash, css) {
12388 + if (!targetDocument.head) {
12389 + return;
12390 + }
12391 + const runtime = getRuntime21();
12392 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
12393 + if (!injectedStyles) {
12394 + injectedStyles = /* @__PURE__ */ new Set();
12395 + runtime.injectedStyles.set(targetDocument, injectedStyles);
12396 + }
12397 + if (injectedStyles.has(hash)) {
12398 + return;
12399 + }
12400 + if (documentContainsStyleHash21(targetDocument, hash)) {
12401 + injectedStyles.add(hash);
12402 + return;
12403 + }
12404 + const style = targetDocument.createElement("style");
12405 + style.setAttribute(STYLE_HASH_ATTRIBUTE21, hash);
12406 + style.appendChild(targetDocument.createTextNode(css));
12407 + targetDocument.head.appendChild(style);
12408 + injectedStyles.add(hash);
12409 + }
12410 + function registerDocument21(targetDocument) {
12411 + const runtime = getRuntime21();
12412 + runtime.documents.set(
12413 + targetDocument,
12414 + (runtime.documents.get(targetDocument) ?? 0) + 1
12415 + );
12416 + for (const [hash, css] of runtime.styles) {
12417 + injectStyle21(targetDocument, hash, css);
12418 + }
12419 + return () => {
12420 + const count = runtime.documents.get(targetDocument);
12421 + if (count === void 0) {
12422 + return;
12423 + }
12424 + if (count <= 1) {
12425 + runtime.documents.delete(targetDocument);
12426 + return;
12427 + }
12428 + runtime.documents.set(targetDocument, count - 1);
12429 + };
12430 + }
12431 + function registerStyle21(hash, css) {
12432 + const runtime = getRuntime21();
12433 + runtime.styles.set(hash, css);
12434 + for (const targetDocument of runtime.documents.keys()) {
12435 + injectStyle21(targetDocument, hash, css);
12436 + }
12437 + }
12438 + if (typeof process === "undefined" || true) {
12439 + registerStyle21("2e53930a41", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._4145abab73d17514__notice{--icon-height:var(--wpds-dimension-size-sm,24px);--text-vertical-padding:calc((var(--icon-height) - var(--wpds-typography-line-height-sm, 20px))/2);--wp-ui-notice-background-color:var(--wpds-color-background-surface-neutral-weak,#f4f4f4);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);align-items:start;background-color:var(--wp-ui-notice-background-color);border:1px solid var(--wp-ui-notice-border-color);border-radius:var(--wpds-border-radius-lg,8px);container-type:inline-size;display:grid;grid-template-columns:auto 1fr auto;padding:var(--wpds-dimension-padding-md,12px)}.d0a25570cb528528__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._1904b570a89bb815__description,.b5397fb9d05389e3__title{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._0a1270dcdd79c031__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._4145abab73d17514__notice:has(._1904b570a89bb815__description) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}._983740ab855c4e09__action-button{flex-shrink:0}.d329e7416d368d31__action-link{flex-shrink:0;&:not(:first-child){margin-inline-start:var(--wpds-dimension-gap-xs,4px)}&:not(:last-child){margin-inline-end:var(--wpds-dimension-gap-xs,4px)}}._487e6a5c1375f7dc__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._531c140826094795__is-info{--wp-ui-notice-background-color:var(--wpds-color-background-surface-info-weak,#f3f9ff);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-info,#adc6e2);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-info,#001b4f);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-info-weak,#006bd7)}.ae2e1004697cce95__is-warning{--wp-ui-notice-background-color:var(--wpds-color-background-surface-warning-weak,#fff7e1);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-warning,#e1bd7c);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-warning,#2e1900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-warning-weak,#936300)}._2e614a76af494837__is-success{--wp-ui-notice-background-color:var(--wpds-color-background-surface-success-weak,#ebffed);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-success,#92d39d);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-success,#002900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-success-weak,#008030)}.af00331ae17a0065__is-error{--wp-ui-notice-background-color:var(--wpds-color-background-surface-error-weak,#fff6f5);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-error,#e0afa7);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-error,#470000);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-error-weak,#cc1818)}@container (max-width: 320px){._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._1904b570a89bb815__description{grid-column:1/3}}}@layer compositions{.d329e7416d368d31__action-link{margin-block:auto}._487e6a5c1375f7dc__close-icon,._983740ab855c4e09__action-button:is(._8ddb8fb33fbf3d38__is-action-button-outline,._77bbde495a8a0af3__is-action-button-minimal){--wp-ui-button-background-color-active:color-mix(in srgb,transparent 50%,var(--wpds-color-background-interactive-neutral-weak-active,#ededed))}}}");
12440 + }
12441 + var style_default20 = { "notice": "_4145abab73d17514__notice", "icon": "d0a25570cb528528__icon", "title": "b5397fb9d05389e3__title", "description": "_1904b570a89bb815__description", "actions": "_0a1270dcdd79c031__actions", "action-button": "_983740ab855c4e09__action-button", "action-link": "d329e7416d368d31__action-link", "close-icon": "_487e6a5c1375f7dc__close-icon", "is-info": "_531c140826094795__is-info", "is-warning": "ae2e1004697cce95__is-warning", "is-success": "_2e614a76af494837__is-success", "is-error": "af00331ae17a0065__is-error", "is-action-button-outline": "_8ddb8fb33fbf3d38__is-action-button-outline", "is-action-button-minimal": "_77bbde495a8a0af3__is-action-button-minimal" };
12442 + var Actions = (0, import_element40.forwardRef)(
12443 + function NoticeActions({ render, ...props }, ref) {
12444 + const element = useRender({
12445 + defaultTagName: "div",
12446 + render,
12447 + ref,
12448 + props: mergeProps(
12449 + {
12450 + className: style_default20.actions
12451 + },
12452 + props
12453 + )
12454 + });
12455 + return element;
12456 + }
12457 + );
12458 +
12459 + // packages/ui/build-module/notice/close-icon.mjs
12460 + var import_element41 = __toESM(require_element(), 1);
12461 + var import_i18n5 = __toESM(require_i18n(), 1);
12462 + var import_jsx_runtime47 = __toESM(require_jsx_runtime(), 1);
12463 + var STYLE_HASH_ATTRIBUTE22 = "data-wp-hash";
12464 + function getRuntime22() {
12465 + const globalScope = globalThis;
12466 + if (globalScope.__wpStyleRuntime) {
12467 + return globalScope.__wpStyleRuntime;
12468 + }
12469 + globalScope.__wpStyleRuntime = {
12470 + documents: /* @__PURE__ */ new Map(),
12471 + styles: /* @__PURE__ */ new Map(),
12472 + injectedStyles: /* @__PURE__ */ new WeakMap()
12473 + };
12474 + if (typeof document !== "undefined") {
12475 + registerDocument22(document);
12476 + }
12477 + return globalScope.__wpStyleRuntime;
12478 + }
12479 + function documentContainsStyleHash22(targetDocument, hash) {
12480 + if (!targetDocument.head) {
12481 + return false;
12482 + }
12483 + for (const style of targetDocument.head.querySelectorAll(
12484 + `style[${STYLE_HASH_ATTRIBUTE22}]`
12485 + )) {
12486 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE22) === hash) {
12487 + return true;
12488 + }
12489 + }
12490 + return false;
12491 + }
12492 + function injectStyle22(targetDocument, hash, css) {
12493 + if (!targetDocument.head) {
12494 + return;
12495 + }
12496 + const runtime = getRuntime22();
12497 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
12498 + if (!injectedStyles) {
12499 + injectedStyles = /* @__PURE__ */ new Set();
12500 + runtime.injectedStyles.set(targetDocument, injectedStyles);
12501 + }
12502 + if (injectedStyles.has(hash)) {
12503 + return;
12504 + }
12505 + if (documentContainsStyleHash22(targetDocument, hash)) {
12506 + injectedStyles.add(hash);
12507 + return;
12508 + }
12509 + const style = targetDocument.createElement("style");
12510 + style.setAttribute(STYLE_HASH_ATTRIBUTE22, hash);
12511 + style.appendChild(targetDocument.createTextNode(css));
12512 + targetDocument.head.appendChild(style);
12513 + injectedStyles.add(hash);
12514 + }
12515 + function registerDocument22(targetDocument) {
12516 + const runtime = getRuntime22();
12517 + runtime.documents.set(
12518 + targetDocument,
12519 + (runtime.documents.get(targetDocument) ?? 0) + 1
12520 + );
12521 + for (const [hash, css] of runtime.styles) {
12522 + injectStyle22(targetDocument, hash, css);
12523 + }
12524 + return () => {
12525 + const count = runtime.documents.get(targetDocument);
12526 + if (count === void 0) {
12527 + return;
12528 + }
12529 + if (count <= 1) {
12530 + runtime.documents.delete(targetDocument);
12531 + return;
12532 + }
12533 + runtime.documents.set(targetDocument, count - 1);
12534 + };
12535 + }
12536 + function registerStyle22(hash, css) {
12537 + const runtime = getRuntime22();
12538 + runtime.styles.set(hash, css);
12539 + for (const targetDocument of runtime.documents.keys()) {
12540 + injectStyle22(targetDocument, hash, css);
12541 + }
12542 + }
12543 + if (typeof process === "undefined" || true) {
12544 + registerStyle22("2e53930a41", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._4145abab73d17514__notice{--icon-height:var(--wpds-dimension-size-sm,24px);--text-vertical-padding:calc((var(--icon-height) - var(--wpds-typography-line-height-sm, 20px))/2);--wp-ui-notice-background-color:var(--wpds-color-background-surface-neutral-weak,#f4f4f4);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);align-items:start;background-color:var(--wp-ui-notice-background-color);border:1px solid var(--wp-ui-notice-border-color);border-radius:var(--wpds-border-radius-lg,8px);container-type:inline-size;display:grid;grid-template-columns:auto 1fr auto;padding:var(--wpds-dimension-padding-md,12px)}.d0a25570cb528528__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._1904b570a89bb815__description,.b5397fb9d05389e3__title{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._0a1270dcdd79c031__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._4145abab73d17514__notice:has(._1904b570a89bb815__description) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}._983740ab855c4e09__action-button{flex-shrink:0}.d329e7416d368d31__action-link{flex-shrink:0;&:not(:first-child){margin-inline-start:var(--wpds-dimension-gap-xs,4px)}&:not(:last-child){margin-inline-end:var(--wpds-dimension-gap-xs,4px)}}._487e6a5c1375f7dc__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._531c140826094795__is-info{--wp-ui-notice-background-color:var(--wpds-color-background-surface-info-weak,#f3f9ff);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-info,#adc6e2);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-info,#001b4f);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-info-weak,#006bd7)}.ae2e1004697cce95__is-warning{--wp-ui-notice-background-color:var(--wpds-color-background-surface-warning-weak,#fff7e1);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-warning,#e1bd7c);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-warning,#2e1900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-warning-weak,#936300)}._2e614a76af494837__is-success{--wp-ui-notice-background-color:var(--wpds-color-background-surface-success-weak,#ebffed);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-success,#92d39d);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-success,#002900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-success-weak,#008030)}.af00331ae17a0065__is-error{--wp-ui-notice-background-color:var(--wpds-color-background-surface-error-weak,#fff6f5);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-error,#e0afa7);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-error,#470000);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-error-weak,#cc1818)}@container (max-width: 320px){._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._1904b570a89bb815__description{grid-column:1/3}}}@layer compositions{.d329e7416d368d31__action-link{margin-block:auto}._487e6a5c1375f7dc__close-icon,._983740ab855c4e09__action-button:is(._8ddb8fb33fbf3d38__is-action-button-outline,._77bbde495a8a0af3__is-action-button-minimal){--wp-ui-button-background-color-active:color-mix(in srgb,transparent 50%,var(--wpds-color-background-interactive-neutral-weak-active,#ededed))}}}");
12545 + }
12546 + var style_default21 = { "notice": "_4145abab73d17514__notice", "icon": "d0a25570cb528528__icon", "title": "b5397fb9d05389e3__title", "description": "_1904b570a89bb815__description", "actions": "_0a1270dcdd79c031__actions", "action-button": "_983740ab855c4e09__action-button", "action-link": "d329e7416d368d31__action-link", "close-icon": "_487e6a5c1375f7dc__close-icon", "is-info": "_531c140826094795__is-info", "is-warning": "ae2e1004697cce95__is-warning", "is-success": "_2e614a76af494837__is-success", "is-error": "af00331ae17a0065__is-error", "is-action-button-outline": "_8ddb8fb33fbf3d38__is-action-button-outline", "is-action-button-minimal": "_77bbde495a8a0af3__is-action-button-minimal" };
12547 + var CloseIcon = (0, import_element41.forwardRef)(
12548 + function NoticeCloseIcon({ className, icon = close_small_default, label = (0, import_i18n5.__)("Dismiss"), ...props }, ref) {
12549 + return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
12550 + IconButton,
12551 + {
12552 + ...props,
12553 + ref,
12554 + className: clsx_default(style_default21["close-icon"], className),
12555 + variant: "minimal",
12556 + size: "small",
12557 + tone: "neutral",
12558 + icon,
12559 + label
12560 + }
12561 + );
12562 + }
12563 + );
12564 +
12565 + // packages/ui/build-module/notice/action-button.mjs
12566 + var import_element42 = __toESM(require_element(), 1);
12567 + var import_jsx_runtime48 = __toESM(require_jsx_runtime(), 1);
12568 + var STYLE_HASH_ATTRIBUTE23 = "data-wp-hash";
12569 + function getRuntime23() {
12570 + const globalScope = globalThis;
12571 + if (globalScope.__wpStyleRuntime) {
12572 + return globalScope.__wpStyleRuntime;
12573 + }
12574 + globalScope.__wpStyleRuntime = {
12575 + documents: /* @__PURE__ */ new Map(),
12576 + styles: /* @__PURE__ */ new Map(),
12577 + injectedStyles: /* @__PURE__ */ new WeakMap()
12578 + };
12579 + if (typeof document !== "undefined") {
12580 + registerDocument23(document);
12581 + }
12582 + return globalScope.__wpStyleRuntime;
12583 + }
12584 + function documentContainsStyleHash23(targetDocument, hash) {
12585 + if (!targetDocument.head) {
12586 + return false;
12587 + }
12588 + for (const style of targetDocument.head.querySelectorAll(
12589 + `style[${STYLE_HASH_ATTRIBUTE23}]`
12590 + )) {
12591 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE23) === hash) {
12592 + return true;
12593 + }
12594 + }
12595 + return false;
12596 + }
12597 + function injectStyle23(targetDocument, hash, css) {
12598 + if (!targetDocument.head) {
12599 + return;
12600 + }
12601 + const runtime = getRuntime23();
12602 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
12603 + if (!injectedStyles) {
12604 + injectedStyles = /* @__PURE__ */ new Set();
12605 + runtime.injectedStyles.set(targetDocument, injectedStyles);
12606 + }
12607 + if (injectedStyles.has(hash)) {
12608 + return;
12609 + }
12610 + if (documentContainsStyleHash23(targetDocument, hash)) {
12611 + injectedStyles.add(hash);
12612 + return;
12613 + }
12614 + const style = targetDocument.createElement("style");
12615 + style.setAttribute(STYLE_HASH_ATTRIBUTE23, hash);
12616 + style.appendChild(targetDocument.createTextNode(css));
12617 + targetDocument.head.appendChild(style);
12618 + injectedStyles.add(hash);
12619 + }
12620 + function registerDocument23(targetDocument) {
12621 + const runtime = getRuntime23();
12622 + runtime.documents.set(
12623 + targetDocument,
12624 + (runtime.documents.get(targetDocument) ?? 0) + 1
12625 + );
12626 + for (const [hash, css] of runtime.styles) {
12627 + injectStyle23(targetDocument, hash, css);
12628 + }
12629 + return () => {
12630 + const count = runtime.documents.get(targetDocument);
12631 + if (count === void 0) {
12632 + return;
12633 + }
12634 + if (count <= 1) {
12635 + runtime.documents.delete(targetDocument);
12636 + return;
12637 + }
12638 + runtime.documents.set(targetDocument, count - 1);
12639 + };
12640 + }
12641 + function registerStyle23(hash, css) {
12642 + const runtime = getRuntime23();
12643 + runtime.styles.set(hash, css);
12644 + for (const targetDocument of runtime.documents.keys()) {
12645 + injectStyle23(targetDocument, hash, css);
12646 + }
12647 + }
12648 + if (typeof process === "undefined" || true) {
12649 + registerStyle23("2e53930a41", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._4145abab73d17514__notice{--icon-height:var(--wpds-dimension-size-sm,24px);--text-vertical-padding:calc((var(--icon-height) - var(--wpds-typography-line-height-sm, 20px))/2);--wp-ui-notice-background-color:var(--wpds-color-background-surface-neutral-weak,#f4f4f4);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);align-items:start;background-color:var(--wp-ui-notice-background-color);border:1px solid var(--wp-ui-notice-border-color);border-radius:var(--wpds-border-radius-lg,8px);container-type:inline-size;display:grid;grid-template-columns:auto 1fr auto;padding:var(--wpds-dimension-padding-md,12px)}.d0a25570cb528528__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._1904b570a89bb815__description,.b5397fb9d05389e3__title{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._0a1270dcdd79c031__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._4145abab73d17514__notice:has(._1904b570a89bb815__description) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}._983740ab855c4e09__action-button{flex-shrink:0}.d329e7416d368d31__action-link{flex-shrink:0;&:not(:first-child){margin-inline-start:var(--wpds-dimension-gap-xs,4px)}&:not(:last-child){margin-inline-end:var(--wpds-dimension-gap-xs,4px)}}._487e6a5c1375f7dc__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._531c140826094795__is-info{--wp-ui-notice-background-color:var(--wpds-color-background-surface-info-weak,#f3f9ff);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-info,#adc6e2);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-info,#001b4f);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-info-weak,#006bd7)}.ae2e1004697cce95__is-warning{--wp-ui-notice-background-color:var(--wpds-color-background-surface-warning-weak,#fff7e1);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-warning,#e1bd7c);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-warning,#2e1900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-warning-weak,#936300)}._2e614a76af494837__is-success{--wp-ui-notice-background-color:var(--wpds-color-background-surface-success-weak,#ebffed);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-success,#92d39d);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-success,#002900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-success-weak,#008030)}.af00331ae17a0065__is-error{--wp-ui-notice-background-color:var(--wpds-color-background-surface-error-weak,#fff6f5);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-error,#e0afa7);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-error,#470000);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-error-weak,#cc1818)}@container (max-width: 320px){._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._1904b570a89bb815__description{grid-column:1/3}}}@layer compositions{.d329e7416d368d31__action-link{margin-block:auto}._487e6a5c1375f7dc__close-icon,._983740ab855c4e09__action-button:is(._8ddb8fb33fbf3d38__is-action-button-outline,._77bbde495a8a0af3__is-action-button-minimal){--wp-ui-button-background-color-active:color-mix(in srgb,transparent 50%,var(--wpds-color-background-interactive-neutral-weak-active,#ededed))}}}");
12650 + }
12651 + var style_default22 = { "notice": "_4145abab73d17514__notice", "icon": "d0a25570cb528528__icon", "title": "b5397fb9d05389e3__title", "description": "_1904b570a89bb815__description", "actions": "_0a1270dcdd79c031__actions", "action-button": "_983740ab855c4e09__action-button", "action-link": "d329e7416d368d31__action-link", "close-icon": "_487e6a5c1375f7dc__close-icon", "is-info": "_531c140826094795__is-info", "is-warning": "ae2e1004697cce95__is-warning", "is-success": "_2e614a76af494837__is-success", "is-error": "af00331ae17a0065__is-error", "is-action-button-outline": "_8ddb8fb33fbf3d38__is-action-button-outline", "is-action-button-minimal": "_77bbde495a8a0af3__is-action-button-minimal" };
12652 + var ActionButton = (0, import_element42.forwardRef)(
12653 + function NoticeActionButton({ className, loading, loadingAnnouncement, variant, ...props }, ref) {
12654 + const loadingProps = loading !== void 0 ? { loading, loadingAnnouncement: loadingAnnouncement ?? "" } : {};
12655 + return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
12656 + Button4,
12657 + {
12658 + ...props,
12659 + ...loadingProps,
12660 + ref,
12661 + size: "compact",
12662 + tone: "neutral",
12663 + variant,
12664 + className: clsx_default(
12665 + style_default22["action-button"],
12666 + style_default22[`is-action-button-${variant}`],
12667 + className
12668 + )
12669 + }
12670 + );
12671 + }
12672 + );
12673 +
12674 + // packages/ui/build-module/notice/action-link.mjs
12675 + var import_element43 = __toESM(require_element(), 1);
12676 + var import_jsx_runtime49 = __toESM(require_jsx_runtime(), 1);
12677 + var STYLE_HASH_ATTRIBUTE24 = "data-wp-hash";
12678 + function getRuntime24() {
12679 + const globalScope = globalThis;
12680 + if (globalScope.__wpStyleRuntime) {
12681 + return globalScope.__wpStyleRuntime;
12682 + }
12683 + globalScope.__wpStyleRuntime = {
12684 + documents: /* @__PURE__ */ new Map(),
12685 + styles: /* @__PURE__ */ new Map(),
12686 + injectedStyles: /* @__PURE__ */ new WeakMap()
12687 + };
12688 + if (typeof document !== "undefined") {
12689 + registerDocument24(document);
12690 + }
12691 + return globalScope.__wpStyleRuntime;
12692 + }
12693 + function documentContainsStyleHash24(targetDocument, hash) {
12694 + if (!targetDocument.head) {
12695 + return false;
12696 + }
12697 + for (const style of targetDocument.head.querySelectorAll(
12698 + `style[${STYLE_HASH_ATTRIBUTE24}]`
12699 + )) {
12700 + if (style.getAttribute(STYLE_HASH_ATTRIBUTE24) === hash) {
12701 + return true;
12702 + }
12703 + }
12704 + return false;
12705 + }
12706 + function injectStyle24(targetDocument, hash, css) {
12707 + if (!targetDocument.head) {
12708 + return;
12709 + }
12710 + const runtime = getRuntime24();
12711 + let injectedStyles = runtime.injectedStyles.get(targetDocument);
12712 + if (!injectedStyles) {
12713 + injectedStyles = /* @__PURE__ */ new Set();
12714 + runtime.injectedStyles.set(targetDocument, injectedStyles);
12715 + }
12716 + if (injectedStyles.has(hash)) {
12717 + return;
12718 + }
12719 + if (documentContainsStyleHash24(targetDocument, hash)) {
12720 + injectedStyles.add(hash);
12721 + return;
12722 + }
12723 + const style = targetDocument.createElement("style");
12724 + style.setAttribute(STYLE_HASH_ATTRIBUTE24, hash);
12725 + style.appendChild(targetDocument.createTextNode(css));
12726 + targetDocument.head.appendChild(style);
12727 + injectedStyles.add(hash);
12728 + }
12729 + function registerDocument24(targetDocument) {
12730 + const runtime = getRuntime24();
12731 + runtime.documents.set(
12732 + targetDocument,
12733 + (runtime.documents.get(targetDocument) ?? 0) + 1
12734 + );
12735 + for (const [hash, css] of runtime.styles) {
12736 + injectStyle24(targetDocument, hash, css);
12737 + }
12738 + return () => {
12739 + const count = runtime.documents.get(targetDocument);
12740 + if (count === void 0) {
12741 + return;
12742 + }
12743 + if (count <= 1) {
12744 + runtime.documents.delete(targetDocument);
12745 + return;
12746 + }
12747 + runtime.documents.set(targetDocument, count - 1);
12748 + };
12749 + }
12750 + function registerStyle24(hash, css) {
12751 + const runtime = getRuntime24();
12752 + runtime.styles.set(hash, css);
12753 + for (const targetDocument of runtime.documents.keys()) {
12754 + injectStyle24(targetDocument, hash, css);
12755 + }
12756 + }
12757 + if (typeof process === "undefined" || true) {
12758 + registerStyle24("2e53930a41", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._4145abab73d17514__notice{--icon-height:var(--wpds-dimension-size-sm,24px);--text-vertical-padding:calc((var(--icon-height) - var(--wpds-typography-line-height-sm, 20px))/2);--wp-ui-notice-background-color:var(--wpds-color-background-surface-neutral-weak,#f4f4f4);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-neutral,#dbdbdb);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-neutral,#1e1e1e);align-items:start;background-color:var(--wp-ui-notice-background-color);border:1px solid var(--wp-ui-notice-border-color);border-radius:var(--wpds-border-radius-lg,8px);container-type:inline-size;display:grid;grid-template-columns:auto 1fr auto;padding:var(--wpds-dimension-padding-md,12px)}.d0a25570cb528528__icon{color:var(--wp-ui-notice-decorative-icon-color);grid-column:1;grid-row:1;margin-inline-end:var(--wpds-dimension-gap-xs,4px)}._1904b570a89bb815__description,.b5397fb9d05389e3__title{color:var(--wp-ui-notice-text-color);grid-column:2;padding-block:var(--text-vertical-padding)}._0a1270dcdd79c031__actions{display:flex;flex-wrap:wrap;gap:var(--wpds-dimension-gap-md,12px);grid-column:2}._4145abab73d17514__notice:has(._1904b570a89bb815__description) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions{margin-block-start:var(--wpds-dimension-gap-sm,8px)}._983740ab855c4e09__action-button{flex-shrink:0}.d329e7416d368d31__action-link{flex-shrink:0;&:not(:first-child){margin-inline-start:var(--wpds-dimension-gap-xs,4px)}&:not(:last-child){margin-inline-end:var(--wpds-dimension-gap-xs,4px)}}._487e6a5c1375f7dc__close-icon{grid-column:3;grid-row:1;margin-inline-start:var(--wpds-dimension-gap-xs,4px)}._531c140826094795__is-info{--wp-ui-notice-background-color:var(--wpds-color-background-surface-info-weak,#f3f9ff);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-info,#adc6e2);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-info,#001b4f);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-info-weak,#006bd7)}.ae2e1004697cce95__is-warning{--wp-ui-notice-background-color:var(--wpds-color-background-surface-warning-weak,#fff7e1);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-warning,#e1bd7c);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-warning,#2e1900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-warning-weak,#936300)}._2e614a76af494837__is-success{--wp-ui-notice-background-color:var(--wpds-color-background-surface-success-weak,#ebffed);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-success,#92d39d);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-success,#002900);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-success-weak,#008030)}.af00331ae17a0065__is-error{--wp-ui-notice-background-color:var(--wpds-color-background-surface-error-weak,#fff6f5);--wp-ui-notice-border-color:var(--wpds-color-stroke-surface-error,#e0afa7);--wp-ui-notice-text-color:var(--wpds-color-foreground-content-error,#470000);--wp-ui-notice-decorative-icon-color:var(--wpds-color-foreground-content-error-weak,#cc1818)}@container (max-width: 320px){._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._0a1270dcdd79c031__actions,._4145abab73d17514__notice:has(.b5397fb9d05389e3__title) ._1904b570a89bb815__description{grid-column:1/3}}}@layer compositions{.d329e7416d368d31__action-link{margin-block:auto}._487e6a5c1375f7dc__close-icon,._983740ab855c4e09__action-button:is(._8ddb8fb33fbf3d38__is-action-button-outline,._77bbde495a8a0af3__is-action-button-minimal){--wp-ui-button-background-color-active:color-mix(in srgb,transparent 50%,var(--wpds-color-background-interactive-neutral-weak-active,#ededed))}}}");
12759 + }
12760 + var style_default23 = { "notice": "_4145abab73d17514__notice", "icon": "d0a25570cb528528__icon", "title": "b5397fb9d05389e3__title", "description": "_1904b570a89bb815__description", "actions": "_0a1270dcdd79c031__actions", "action-button": "_983740ab855c4e09__action-button", "action-link": "d329e7416d368d31__action-link", "close-icon": "_487e6a5c1375f7dc__close-icon", "is-info": "_531c140826094795__is-info", "is-warning": "ae2e1004697cce95__is-warning", "is-success": "_2e614a76af494837__is-success", "is-error": "af00331ae17a0065__is-error", "is-action-button-outline": "_8ddb8fb33fbf3d38__is-action-button-outline", "is-action-button-minimal": "_77bbde495a8a0af3__is-action-button-minimal" };
12761 + var ActionLink = (0, import_element43.forwardRef)(
12762 + function NoticeActionLink({ className, render, ...props }, ref) {
12763 + return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
12764 + Text,
12765 + {
12766 + ref,
12767 + className: clsx_default(style_default23["action-link"], className),
12768 + ...props,
12769 + variant: "body-md",
12770 + render: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Link, { tone: "neutral", variant: "default", render })
12771 + }
12772 + );
12773 + }
12774 + );
12775 +
876 12776 // packages/admin-ui/build-module/admin-theme-colors/index.mjs
877 12777 var DEFAULT_THEME_COLORS = {
878 12778 primary: "#3858e9",
879 12779 background: "#222524"
@@ -894,48 +12794,146 @@
894 12794 return ADMIN_THEME_COLORS.get(scheme) ?? DEFAULT_THEME_COLORS;
895 12795 }
896 12796
897 12797 // packages/customize-widgets/build-module/components/customize-widgets/index.mjs
898 - var import_element17 = __toESM(require_element(), 1);
899 - var import_components8 = __toESM(require_components(), 1);
12798 + var import_element59 = __toESM(require_element(), 1);
12799 + var import_components7 = __toESM(require_components(), 1);
900 12800 var import_theme = __toESM(require_theme(), 1);
901 12801
902 12802 // packages/customize-widgets/build-module/components/error-boundary/index.mjs
903 - var import_element2 = __toESM(require_element(), 1);
904 - var import_i18n = __toESM(require_i18n(), 1);
905 - var import_components = __toESM(require_components(), 1);
906 - var import_block_editor = __toESM(require_block_editor(), 1);
907 - var import_compose = __toESM(require_compose(), 1);
12803 + var import_element44 = __toESM(require_element(), 1);
12804 + var import_i18n6 = __toESM(require_i18n(), 1);
12805 + var import_compose2 = __toESM(require_compose(), 1);
908 12806 var import_hooks = __toESM(require_hooks(), 1);
909 - var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1);
910 - function CopyButton({ text, children }) {
911 - const ref = (0, import_compose.useCopyToClipboard)(text);
912 - return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_components.Button, { size: "compact", variant: "secondary", ref, children });
12807 + var import_jsx_runtime50 = __toESM(require_jsx_runtime(), 1);
12808 + function getErrorName(error2) {
12809 + return error2 instanceof Error && error2.name || "Error";
913 12810 }
914 - var ErrorBoundary = class extends import_element2.Component {
12811 + function getErrorMessage(error2) {
12812 + if (typeof error2 === "string" && error2) {
12813 + return error2;
12814 + }
12815 + if (typeof error2?.message === "string" && error2.message) {
12816 + return error2.message;
12817 + }
12818 + return "An unknown error occurred.";
12819 + }
12820 + function getErrorSections(error2, componentStack) {
12821 + const sections = [
12822 + { label: getErrorName(error2), content: getErrorMessage(error2) }
12823 + ];
12824 + if (error2?.stack) {
12825 + sections.push({
12826 + label: "Stack",
12827 + content: error2.stack.trim(),
12828 + preformatted: true
12829 + });
12830 + }
12831 + if (componentStack) {
12832 + sections.push({
12833 + label: "Component stack",
12834 + content: componentStack.trim(),
12835 + preformatted: true
12836 + });
12837 + }
12838 + sections.push({
12839 + label: "Environment",
12840 + content: `User agent: ${window.navigator.userAgent}`,
12841 + preformatted: true
12842 + });
12843 + return sections;
12844 + }
12845 + function getErrorReport(error2, componentStack) {
12846 + const sections = getErrorSections(error2, componentStack).map(
12847 + ({ label, content, preformatted }) => `**${label}**
12848 +
12849 +${preformatted ? `\`\`\`
12850 +${content}
12851 +\`\`\`` : content}`
12852 + );
12853 + return ["### Error report", ...sections].join("\n\n");
12854 + }
12855 + function CopyButton({ text, children, variant = "outline" }) {
12856 + const ref = (0, import_compose2.useCopyToClipboard)(text);
12857 + return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(notice_exports.ActionButton, { variant, ref, children });
12858 + }
12859 + function ErrorReport({ error: error2, componentStack }) {
12860 + return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
12861 + Stack,
12862 + {
12863 + className: "customize-widgets-error-boundary__report",
12864 + direction: "column",
12865 + gap: "md",
12866 + children: getErrorSections(error2, componentStack).map(
12867 + ({ label, content }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Stack, { direction: "column", gap: "xs", children: [
12868 + /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Text, { variant: "heading-md", children: label }),
12869 + /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("pre", { className: "customize-widgets-error-boundary__report-section", children: content })
12870 + ] }, label)
12871 + )
12872 + }
12873 + );
12874 + }
12875 + function ErrorDetails({ error: error2, componentStack }) {
12876 + return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(collapsible_card_exports.Root, { className: "customize-widgets-error-boundary__details", children: [
12877 + /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(collapsible_card_exports.Header, { children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(card_exports.Title, { children: (0, import_i18n6.__)("Error details") }) }),
12878 + /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(collapsible_card_exports.Content, { children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
12879 + ErrorReport,
12880 + {
12881 + error: error2,
12882 + componentStack
12883 + }
12884 + ) })
12885 + ] });
12886 + }
12887 + var ErrorBoundary = class extends import_element44.Component {
915 12888 constructor() {
916 12889 super(...arguments);
917 12890 this.state = {
918 - error: null
12891 + error: null,
12892 + componentStack: null
919 12893 };
920 12894 }
921 - componentDidCatch(error) {
922 - this.setState({ error });
923 - (0, import_hooks.doAction)("editor.ErrorBoundary.errorLogged", error);
12895 + componentDidCatch(error2, errorInfo) {
12896 + this.setState({ componentStack: errorInfo?.componentStack });
12897 + (0, import_hooks.doAction)("editor.ErrorBoundary.errorLogged", error2, errorInfo);
924 12898 }
12899 + static getDerivedStateFromError(error2) {
12900 + return { error: error2 };
12901 + }
925 12902 render() {
926 - const { error } = this.state;
927 - if (!error) {
12903 + const { error: error2, componentStack } = this.state;
12904 + if (!error2) {
928 12905 return this.props.children;
929 12906 }
930 - return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
931 - import_block_editor.Warning,
12907 + return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
12908 + Stack,
932 12909 {
933 12910 className: "customize-widgets-error-boundary",
934 - actions: [
935 - /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CopyButton, { text: error.stack, children: (0, import_i18n.__)("Copy Error") }, "copy-error")
936 - ],
937 - children: (0, import_i18n.__)("The editor has encountered an unexpected error.")
12911 + direction: "column",
12912 + gap: "lg",
12913 + children: [
12914 + /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(notice_exports.Root, { intent: "error", children: [
12915 + /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(notice_exports.Title, { children: (0, import_i18n6.__)("The editor has crashed") }),
12916 + /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(notice_exports.Description, { children: (0, import_i18n6.__)(
12917 + "An unknown error occurred. Reload your browser to try again, or copy the error to report the problem or search."
12918 + ) }),
12919 + /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(notice_exports.Actions, { children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
12920 + CopyButton,
12921 + {
12922 + variant: "solid",
12923 + text: () => getErrorReport(error2, componentStack),
12924 + children: (0, import_i18n6.__)("Copy error")
12925 + }
12926 + ) })
12927 + ] }),
12928 + true ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
12929 + ErrorDetails,
12930 + {
12931 + error: error2,
12932 + componentStack
12933 + }
12934 + ) : null
12935 + ]
938 12936 }
939 12937 );
940 12938 }
941 12939 };
@@ -940,34 +12938,34 @@
940 12938 }
941 12939 };
942 12940
943 12941 // packages/customize-widgets/build-module/components/sidebar-block-editor/index.mjs
944 - var import_compose3 = __toESM(require_compose(), 1);
12942 + var import_compose4 = __toESM(require_compose(), 1);
945 12943 var import_core_data = __toESM(require_core_data(), 1);
946 - var import_data12 = __toESM(require_data(), 1);
947 - var import_element14 = __toESM(require_element(), 1);
948 - var import_block_editor9 = __toESM(require_block_editor(), 1);
12944 + var import_data13 = __toESM(require_data(), 1);
12945 + var import_element56 = __toESM(require_element(), 1);
12946 + var import_block_editor8 = __toESM(require_block_editor(), 1);
949 12947 var import_media_utils = __toESM(require_media_utils(), 1);
950 12948 var import_preferences3 = __toESM(require_preferences(), 1);
951 12949
952 12950 // packages/customize-widgets/build-module/components/block-inspector-button/index.mjs
953 - var import_element3 = __toESM(require_element(), 1);
954 - var import_i18n2 = __toESM(require_i18n(), 1);
955 - var import_components2 = __toESM(require_components(), 1);
12951 + var import_element45 = __toESM(require_element(), 1);
12952 + var import_i18n7 = __toESM(require_i18n(), 1);
12953 + var import_components = __toESM(require_components(), 1);
956 12954 var import_data = __toESM(require_data(), 1);
957 - var import_block_editor2 = __toESM(require_block_editor(), 1);
958 - var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
12955 + var import_block_editor = __toESM(require_block_editor(), 1);
12956 + var import_jsx_runtime51 = __toESM(require_jsx_runtime(), 1);
959 12957 function BlockInspectorButton({ inspector, closeMenu, ...props }) {
960 12958 const selectedBlockClientId = (0, import_data.useSelect)(
961 - (select) => select(import_block_editor2.store).getSelectedBlockClientId(),
12959 + (select) => select(import_block_editor.store).getSelectedBlockClientId(),
962 12960 []
963 12961 );
964 - const selectedBlock = (0, import_element3.useMemo)(
12962 + const selectedBlock = (0, import_element45.useMemo)(
965 12963 () => document.getElementById(`block-${selectedBlockClientId}`),
966 12964 [selectedBlockClientId]
967 12965 );
968 - return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
969 - import_components2.MenuItem,
12966 + return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
12967 + import_components.MenuItem,
970 12968 {
971 12969 onClick: () => {
972 12970 inspector.open({
973 12971 returnFocusWhenClose: selectedBlock
@@ -974,9 +12972,9 @@
974 12972 });
975 12973 closeMenu();
976 12974 },
977 12975 ...props,
978 - children: (0, import_i18n2.__)("Show more settings")
12976 + children: (0, import_i18n7.__)("Show more settings")
979 12977 }
980 12978 );
981 12979 }
982 12980 var block_inspector_button_default = BlockInspectorButton;
@@ -981,19 +12979,19 @@
981 12979 }
982 12980 var block_inspector_button_default = BlockInspectorButton;
983 12981
984 12982 // packages/customize-widgets/build-module/components/header/index.mjs
985 - var import_components6 = __toESM(require_components(), 1);
986 - var import_block_editor4 = __toESM(require_block_editor(), 1);
987 - var import_element7 = __toESM(require_element(), 1);
12983 + var import_components5 = __toESM(require_components(), 1);
12984 + var import_block_editor3 = __toESM(require_block_editor(), 1);
12985 + var import_element49 = __toESM(require_element(), 1);
988 12986 var import_keycodes3 = __toESM(require_keycodes(), 1);
989 - var import_i18n7 = __toESM(require_i18n(), 1);
12987 + var import_i18n12 = __toESM(require_i18n(), 1);
990 12988
991 12989 // packages/customize-widgets/build-module/components/inserter/index.mjs
992 - var import_i18n3 = __toESM(require_i18n(), 1);
993 - var import_block_editor3 = __toESM(require_block_editor(), 1);
994 - var import_components3 = __toESM(require_components(), 1);
995 - var import_compose2 = __toESM(require_compose(), 1);
12990 + var import_i18n8 = __toESM(require_i18n(), 1);
12991 + var import_block_editor2 = __toESM(require_block_editor(), 1);
12992 + var import_components2 = __toESM(require_components(), 1);
12993 + var import_compose3 = __toESM(require_compose(), 1);
996 12994 var import_data4 = __toESM(require_data(), 1);
997 12995
998 12996 // packages/customize-widgets/build-module/store/index.mjs
999 12997 var import_data3 = __toESM(require_data(), 1);
@@ -1055,11 +13053,11 @@
1055 13053 var store = (0, import_data3.createReduxStore)(STORE_NAME, storeConfig);
1056 13054 (0, import_data3.register)(store);
1057 13055
1058 13056 // packages/customize-widgets/build-module/components/inserter/index.mjs
1059 - var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
13057 + var import_jsx_runtime52 = __toESM(require_jsx_runtime(), 1);
1060 13058 function Inserter({ setIsOpened }) {
1061 - const inserterTitleId = (0, import_compose2.useInstanceId)(
13059 + const inserterTitleId = (0, import_compose3.useInstanceId)(
1062 13060 Inserter,
1063 13061 "customize-widget-layout__inserter-panel-title"
1064 13062 );
1065 13063 const insertionPoint = (0, import_data4.useSelect)(
@@ -1065,35 +13063,35 @@
1065 13063 const insertionPoint = (0, import_data4.useSelect)(
1066 13064 (select) => select(store).__experimentalGetInsertionPoint(),
1067 13065 []
1068 13066 );
1069 - return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
13067 + return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
1070 13068 "div",
1071 13069 {
1072 13070 className: "customize-widgets-layout__inserter-panel",
1073 13071 "aria-labelledby": inserterTitleId,
1074 13072 children: [
1075 - /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "customize-widgets-layout__inserter-panel-header", children: [
1076 - /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
13073 + /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "customize-widgets-layout__inserter-panel-header", children: [
13074 + /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
1077 13075 "h2",
1078 13076 {
1079 13077 id: inserterTitleId,
1080 13078 className: "customize-widgets-layout__inserter-panel-header-title",
1081 - children: (0, import_i18n3.__)("Add a block")
13079 + children: (0, import_i18n8.__)("Add a block")
1082 13080 }
1083 13081 ),
1084 - /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1085 - import_components3.Button,
13082 + /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
13083 + import_components2.Button,
1086 13084 {
1087 13085 size: "small",
1088 13086 icon: close_small_default,
1089 13087 onClick: () => setIsOpened(false),
1090 - "aria-label": (0, import_i18n3.__)("Close inserter")
13088 + "aria-label": (0, import_i18n8.__)("Close inserter")
1091 13089 }
1092 13090 )
1093 13091 ] }),
1094 - /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "customize-widgets-layout__inserter-panel-content", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1095 - import_block_editor3.__experimentalLibrary,
13092 + /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "customize-widgets-layout__inserter-panel-content", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
13093 + import_block_editor2.__experimentalLibrary,
1096 13094 {
1097 13095 rootClientId: insertionPoint.rootClientId,
1098 13096 __experimentalInsertionIndex: insertionPoint.insertionIndex,
1099 13097 showInserterHelpPanel: true,
@@ -1106,56 +13104,57 @@
1106 13104 }
1107 13105 var inserter_default = Inserter;
1108 13106
1109 13107 // packages/customize-widgets/build-module/components/more-menu/index.mjs
1110 - var import_components5 = __toESM(require_components(), 1);
1111 - var import_element6 = __toESM(require_element(), 1);
1112 - var import_i18n6 = __toESM(require_i18n(), 1);
13108 + var import_components4 = __toESM(require_components(), 1);
13109 + var import_data7 = __toESM(require_data(), 1);
13110 + var import_element48 = __toESM(require_element(), 1);
13111 + var import_i18n11 = __toESM(require_i18n(), 1);
1113 13112 var import_keycodes2 = __toESM(require_keycodes(), 1);
1114 13113 var import_keyboard_shortcuts3 = __toESM(require_keyboard_shortcuts(), 1);
1115 13114 var import_preferences = __toESM(require_preferences(), 1);
1116 13115
1117 13116 // packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/index.mjs
1118 - var import_components4 = __toESM(require_components(), 1);
1119 - var import_i18n5 = __toESM(require_i18n(), 1);
13117 + var import_components3 = __toESM(require_components(), 1);
13118 + var import_i18n10 = __toESM(require_i18n(), 1);
1120 13119 var import_keyboard_shortcuts2 = __toESM(require_keyboard_shortcuts(), 1);
1121 13120 var import_data6 = __toESM(require_data(), 1);
1122 - var import_element5 = __toESM(require_element(), 1);
13121 + var import_element47 = __toESM(require_element(), 1);
1123 13122
1124 13123 // packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/config.mjs
1125 - var import_i18n4 = __toESM(require_i18n(), 1);
13124 + var import_i18n9 = __toESM(require_i18n(), 1);
1126 13125 var textFormattingShortcuts = [
1127 13126 {
1128 13127 keyCombination: { modifier: "primary", character: "b" },
1129 - description: (0, import_i18n4.__)("Make the selected text bold.")
13128 + description: (0, import_i18n9.__)("Make the selected text bold.")
1130 13129 },
1131 13130 {
1132 13131 keyCombination: { modifier: "primary", character: "i" },
1133 - description: (0, import_i18n4.__)("Make the selected text italic.")
13132 + description: (0, import_i18n9.__)("Make the selected text italic.")
1134 13133 },
1135 13134 {
1136 13135 keyCombination: { modifier: "primary", character: "k" },
1137 - description: (0, import_i18n4.__)("Convert the selected text into a link.")
13136 + description: (0, import_i18n9.__)("Convert the selected text into a link.")
1138 13137 },
1139 13138 {
1140 13139 keyCombination: { modifier: "primaryShift", character: "k" },
1141 - description: (0, import_i18n4.__)("Remove a link.")
13140 + description: (0, import_i18n9.__)("Remove a link.")
1142 13141 },
1143 13142 {
1144 13143 keyCombination: { character: "[[" },
1145 - description: (0, import_i18n4.__)("Insert a link to a post or page.")
13144 + description: (0, import_i18n9.__)("Insert a link to a post or page.")
1146 13145 },
1147 13146 {
1148 13147 keyCombination: { modifier: "primary", character: "u" },
1149 - description: (0, import_i18n4.__)("Underline the selected text.")
13148 + description: (0, import_i18n9.__)("Underline the selected text.")
1150 13149 },
1151 13150 {
1152 13151 keyCombination: { modifier: "access", character: "d" },
1153 - description: (0, import_i18n4.__)("Strikethrough the selected text.")
13152 + description: (0, import_i18n9.__)("Strikethrough the selected text.")
1154 13153 },
1155 13154 {
1156 13155 keyCombination: { modifier: "access", character: "x" },
1157 - description: (0, import_i18n4.__)("Make the selected text inline code.")
13156 + description: (0, import_i18n9.__)("Make the selected text inline code.")
1158 13157 },
1159 13158 {
1160 13159 keyCombination: {
1161 13160 modifier: "access",
@@ -1166,26 +13165,26 @@
1166 13165 modifier: "access",
1167 13166 character: "7"
1168 13167 }
1169 13168 ],
1170 - description: (0, import_i18n4.__)("Convert the current heading to a paragraph.")
13169 + description: (0, import_i18n9.__)("Convert the current heading to a paragraph.")
1171 13170 },
1172 13171 {
1173 13172 keyCombination: { modifier: "access", character: "1-6" },
1174 - description: (0, import_i18n4.__)(
13173 + description: (0, import_i18n9.__)(
1175 13174 "Convert the current paragraph or heading to a heading of level 1 to 6."
1176 13175 )
1177 13176 },
1178 13177 {
1179 13178 keyCombination: { modifier: "primaryShift", character: "SPACE" },
1180 - description: (0, import_i18n4.__)("Add non breaking space.")
13179 + description: (0, import_i18n9.__)("Add non breaking space.")
1181 13180 }
1182 13181 ];
1183 13182
1184 13183 // packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/shortcut.mjs
1185 - var import_element4 = __toESM(require_element(), 1);
13184 + var import_element46 = __toESM(require_element(), 1);
1186 13185 var import_keycodes = __toESM(require_keycodes(), 1);
1187 - var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1);
13186 + var import_jsx_runtime53 = __toESM(require_jsx_runtime(), 1);
1188 13187 function KeyCombination({ keyCombination, forceAriaLabel }) {
1189 13188 const shortcut = keyCombination.modifier ? import_keycodes.displayShortcutList[keyCombination.modifier](
1190 13189 keyCombination.character
1191 13190 ) : keyCombination.character;
@@ -1191,25 +13190,25 @@
1191 13190 ) : keyCombination.character;
1192 13191 const ariaLabel = keyCombination.modifier ? import_keycodes.shortcutAriaLabel[keyCombination.modifier](
1193 13192 keyCombination.character
1194 13193 ) : keyCombination.character;
1195 - return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
13194 + return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
1196 13195 "kbd",
1197 13196 {
1198 13197 className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination",
1199 13198 "aria-label": forceAriaLabel || ariaLabel,
1200 13199 children: (Array.isArray(shortcut) ? shortcut : [shortcut]).map(
1201 - (character, index) => {
13200 + (character, index2) => {
1202 13201 if (character === "+") {
1203 - return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_element4.Fragment, { children: character }, index);
13202 + return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_element46.Fragment, { children: character }, index2);
1204 13203 }
1205 - return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
13204 + return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
1206 13205 "kbd",
1207 13206 {
1208 13207 className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key",
1209 13208 children: character
1210 13209 },
1211 - index
13210 + index2
1212 13211 );
1213 13212 }
1214 13213 )
1215 13214 }
@@ -1215,12 +13214,12 @@
1215 13214 }
1216 13215 );
1217 13216 }
1218 13217 function Shortcut({ description, keyCombination, aliases = [], ariaLabel }) {
1219 - return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [
1220 - /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-description", children: description }),
1221 - /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-term", children: [
1222 - /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
13218 + return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
13219 + /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-description", children: description }),
13220 + /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-term", children: [
13221 + /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
1223 13222 KeyCombination,
1224 13223 {
1225 13224 keyCombination,
1226 13225 forceAriaLabel: ariaLabel
@@ -1225,15 +13224,15 @@
1225 13224 keyCombination,
1226 13225 forceAriaLabel: ariaLabel
1227 13226 }
1228 13227 ),
1229 - aliases.map((alias, index) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
13228 + aliases.map((alias, index2) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
1230 13229 KeyCombination,
1231 13230 {
1232 13231 keyCombination: alias,
1233 13232 forceAriaLabel: ariaLabel
1234 13233 },
1235 - index
13234 + index2
1236 13235 ))
1237 13236 ] })
1238 13237 ] });
1239 13238 }
@@ -1241,9 +13240,9 @@
1241 13240
1242 13241 // packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.mjs
1243 13242 var import_data5 = __toESM(require_data(), 1);
1244 13243 var import_keyboard_shortcuts = __toESM(require_keyboard_shortcuts(), 1);
1245 - var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1);
13244 + var import_jsx_runtime54 = __toESM(require_jsx_runtime(), 1);
1246 13245 function DynamicShortcut({ name }) {
1247 13246 const { keyCombination, description, aliases } = (0, import_data5.useSelect)(
1248 13247 (select) => {
1249 13248 const {
@@ -1261,9 +13260,9 @@
1261 13260 );
1262 13261 if (!keyCombination) {
1263 13262 return null;
1264 13263 }
1265 - return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
13264 + return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
1266 13265 shortcut_default,
1267 13266 {
1268 13267 keyCombination,
1269 13268 description,
@@ -1273,9 +13272,9 @@
1273 13272 }
1274 13273 var dynamic_shortcut_default = DynamicShortcut;
1275 13274
1276 13275 // packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/index.mjs
1277 - var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1);
13276 + var import_jsx_runtime55 = __toESM(require_jsx_runtime(), 1);
1278 13277 var ShortcutList = ({ shortcuts }) => (
1279 13278 /*
1280 13279 * Disable reason: The `list` ARIA role is redundant but
1281 13280 * Safari+VoiceOver won't announce the list otherwise.
@@ -1280,25 +13279,25 @@
1280 13279 * Disable reason: The `list` ARIA role is redundant but
1281 13280 * Safari+VoiceOver won't announce the list otherwise.
1282 13281 */
1283 13282 /* eslint-disable jsx-a11y/no-redundant-roles */
1284 - /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13283 + /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1285 13284 "ul",
1286 13285 {
1287 13286 className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-list",
1288 13287 role: "list",
1289 - children: shortcuts.map((shortcut, index) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13288 + children: shortcuts.map((shortcut, index2) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1290 13289 "li",
1291 13290 {
1292 13291 className: "customize-widgets-keyboard-shortcut-help-modal__shortcut",
1293 - children: typeof shortcut === "string" ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(dynamic_shortcut_default, { name: shortcut }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(shortcut_default, { ...shortcut })
13292 + children: typeof shortcut === "string" ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(dynamic_shortcut_default, { name: shortcut }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(shortcut_default, { ...shortcut })
1294 13293 },
1295 - index
13294 + index2
1296 13295 ))
1297 13296 }
1298 13297 )
1299 13298 );
1300 - var ShortcutSection = ({ title, shortcuts, className }) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
13299 + var ShortcutSection = ({ title, shortcuts, className }) => /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
1301 13300 "section",
1302 13301 {
1303 13302 className: clsx_default(
1304 13303 "customize-widgets-keyboard-shortcut-help-modal__section",
@@ -1304,10 +13303,10 @@
1304 13303 "customize-widgets-keyboard-shortcut-help-modal__section",
1305 13304 className
1306 13305 ),
1307 13306 children: [
1308 - !!title && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h2", { className: "customize-widgets-keyboard-shortcut-help-modal__section-title", children: title }),
1309 - /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ShortcutList, { shortcuts })
13307 + !!title && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("h2", { className: "customize-widgets-keyboard-shortcut-help-modal__section-title", children: title }),
13308 + /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ShortcutList, { shortcuts })
1310 13309 ]
1311 13310 }
1312 13311 );
1313 13312 var ShortcutCategorySection = ({
@@ -1322,9 +13321,9 @@
1322 13321 );
1323 13322 },
1324 13323 [categoryName]
1325 13324 );
1326 - return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13325 + return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1327 13326 ShortcutSection,
1328 13327 {
1329 13328 title,
1330 13329 shortcuts: categoryShortcuts.concat(additionalShortcuts)
@@ -1335,13 +13334,13 @@
1335 13334 isModalActive,
1336 13335 toggleModal
1337 13336 }) {
1338 13337 const { registerShortcut } = (0, import_data6.useDispatch)(import_keyboard_shortcuts2.store);
1339 - (0, import_element5.useEffect)(() => {
13338 + (0, import_element47.useEffect)(() => {
1340 13339 registerShortcut({
1341 13340 name: "core/customize-widgets/keyboard-shortcuts",
1342 13341 category: "main",
1343 - description: (0, import_i18n5.__)("Display these keyboard shortcuts."),
13342 + description: (0, import_i18n10.__)("Display these keyboard shortcuts."),
1344 13343 keyCombination: {
1345 13344 modifier: "access",
1346 13345 character: "h"
1347 13346 }
@@ -1350,16 +13349,16 @@
1350 13349 (0, import_keyboard_shortcuts2.useShortcut)("core/customize-widgets/keyboard-shortcuts", toggleModal);
1351 13350 if (!isModalActive) {
1352 13351 return null;
1353 13352 }
1354 - return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1355 - import_components4.Modal,
13353 + return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
13354 + import_components3.Modal,
1356 13355 {
1357 13356 className: "customize-widgets-keyboard-shortcut-help-modal",
1358 - title: (0, import_i18n5.__)("Keyboard shortcuts"),
13357 + title: (0, import_i18n10.__)("Keyboard shortcuts"),
1359 13358 onRequestClose: toggleModal,
1360 13359 children: [
1361 - /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13360 + /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1362 13361 ShortcutSection,
1363 13362 {
1364 13363 className: "customize-widgets-keyboard-shortcut-help-modal__main-shortcuts",
1365 13364 shortcuts: ["core/customize-widgets/keyboard-shortcuts"]
@@ -1364,43 +13363,43 @@
1364 13363 className: "customize-widgets-keyboard-shortcut-help-modal__main-shortcuts",
1365 13364 shortcuts: ["core/customize-widgets/keyboard-shortcuts"]
1366 13365 }
1367 13366 ),
1368 - /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13367 + /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1369 13368 ShortcutCategorySection,
1370 13369 {
1371 - title: (0, import_i18n5.__)("Global shortcuts"),
13370 + title: (0, import_i18n10.__)("Global shortcuts"),
1372 13371 categoryName: "global"
1373 13372 }
1374 13373 ),
1375 - /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13374 + /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1376 13375 ShortcutCategorySection,
1377 13376 {
1378 - title: (0, import_i18n5.__)("Selection shortcuts"),
13377 + title: (0, import_i18n10.__)("Selection shortcuts"),
1379 13378 categoryName: "selection"
1380 13379 }
1381 13380 ),
1382 - /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13381 + /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1383 13382 ShortcutCategorySection,
1384 13383 {
1385 - title: (0, import_i18n5.__)("Block shortcuts"),
13384 + title: (0, import_i18n10.__)("Block shortcuts"),
1386 13385 categoryName: "block",
1387 13386 additionalShortcuts: [
1388 13387 {
1389 13388 keyCombination: { character: "/" },
1390 - description: (0, import_i18n5.__)(
13389 + description: (0, import_i18n10.__)(
1391 13390 "Change the block type after adding a new paragraph."
1392 13391 ),
1393 13392 /* translators: The forward-slash character. e.g. '/'. */
1394 - ariaLabel: (0, import_i18n5.__)("Forward-slash")
13393 + ariaLabel: (0, import_i18n10.__)("Forward-slash")
1395 13394 }
1396 13395 ]
1397 13396 }
1398 13397 ),
1399 - /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13398 + /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1400 13399 ShortcutSection,
1401 13400 {
1402 - title: (0, import_i18n5.__)("Text formatting"),
13401 + title: (0, import_i18n10.__)("Text formatting"),
1403 13402 shortcuts: textFormattingShortcuts
1404 13403 }
1405 13404 )
1406 13405 ]
@@ -1408,25 +13407,26 @@
1408 13407 );
1409 13408 }
1410 13409
1411 13410 // packages/customize-widgets/build-module/components/more-menu/index.mjs
1412 - var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1);
13411 + var import_jsx_runtime56 = __toESM(require_jsx_runtime(), 1);
1413 13412 function MoreMenu() {
1414 13413 const [
1415 13414 isKeyboardShortcutsModalActive,
1416 13415 setIsKeyboardShortcutsModalVisible
1417 - ] = (0, import_element6.useState)(false);
13416 + ] = (0, import_element48.useState)(false);
1418 13417 const toggleKeyboardShortcutsModal = () => setIsKeyboardShortcutsModalVisible(!isKeyboardShortcutsModalActive);
1419 13418 (0, import_keyboard_shortcuts3.useShortcut)(
1420 13419 "core/customize-widgets/keyboard-shortcuts",
1421 13420 toggleKeyboardShortcutsModal
1422 13421 );
1423 - return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
1424 - /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1425 - import_components5.ToolbarDropdownMenu,
13422 + const { toggle } = (0, import_data7.useDispatch)(import_preferences.store);
13423 + return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_jsx_runtime56.Fragment, { children: [
13424 + /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
13425 + import_components4.ToolbarDropdownMenu,
1426 13426 {
1427 13427 icon: more_vertical_default,
1428 - label: (0, import_i18n6.__)("Options"),
13428 + label: (0, import_i18n11.__)("Options"),
1429 13429 popoverProps: {
1430 13430 placement: "bottom-end",
1431 13431 className: "more-menu-dropdown__content"
1432 13432 },
@@ -1433,81 +13433,83 @@
1433 13433 toggleProps: {
1434 13434 tooltipPosition: "bottom",
1435 13435 size: "compact"
1436 13436 },
1437 - children: () => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
1438 - /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_components5.MenuGroup, { label: (0, import_i18n6._x)("View", "noun"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
13437 + children: () => /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_jsx_runtime56.Fragment, { children: [
13438 + /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_components4.MenuGroup, { label: (0, import_i18n11._x)("View", "noun"), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
1439 13439 import_preferences.PreferenceToggleMenuItem,
1440 13440 {
1441 13441 scope: "core/customize-widgets",
1442 13442 name: "fixedToolbar",
1443 - label: (0, import_i18n6.__)("Top toolbar"),
1444 - info: (0, import_i18n6.__)(
13443 + label: (0, import_i18n11.__)("Top toolbar"),
13444 + info: (0, import_i18n11.__)(
1445 13445 "Access all block and document tools in a single place"
1446 13446 ),
1447 - messageActivated: (0, import_i18n6.__)(
13447 + messageActivated: (0, import_i18n11.__)(
1448 13448 "Top toolbar activated"
1449 13449 ),
1450 - messageDeactivated: (0, import_i18n6.__)(
13450 + messageDeactivated: (0, import_i18n11.__)(
1451 13451 "Top toolbar deactivated"
1452 13452 )
1453 13453 }
1454 13454 ) }),
1455 - /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_components5.MenuGroup, { label: (0, import_i18n6.__)("Tools"), children: [
1456 - /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1457 - import_components5.MenuItem,
13455 + /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_components4.MenuGroup, { label: (0, import_i18n11.__)("Tools"), children: [
13456 + /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
13457 + import_components4.MenuItem,
1458 13458 {
1459 13459 onClick: () => {
1460 13460 setIsKeyboardShortcutsModalVisible(true);
1461 13461 },
1462 13462 shortcut: import_keycodes2.displayShortcut.access("h"),
1463 - children: (0, import_i18n6.__)("Keyboard shortcuts")
13463 + children: (0, import_i18n11.__)("Keyboard shortcuts")
1464 13464 }
1465 13465 ),
1466 - /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1467 - import_preferences.PreferenceToggleMenuItem,
13466 + /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
13467 + import_components4.MenuItem,
1468 13468 {
1469 - scope: "core/customize-widgets",
1470 - name: "welcomeGuide",
1471 - label: (0, import_i18n6.__)("Welcome Guide")
13469 + onClick: () => toggle(
13470 + "core/customize-widgets",
13471 + "welcomeGuide"
13472 + ),
13473 + children: (0, import_i18n11.__)("Welcome Guide")
1472 13474 }
1473 13475 ),
1474 - /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
1475 - import_components5.MenuItem,
13476 + /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
13477 + import_components4.MenuItem,
1476 13478 {
1477 13479 role: "menuitem",
1478 13480 icon: external_default,
1479 - href: (0, import_i18n6.__)(
13481 + href: (0, import_i18n11.__)(
1480 13482 "https://wordpress.org/documentation/article/block-based-widgets-editor/"
1481 13483 ),
1482 13484 target: "_blank",
1483 13485 rel: "noopener",
1484 13486 children: [
1485 - (0, import_i18n6.__)("Help"),
1486 - /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(VisuallyHidden, {
1487 - render: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", {}),
13487 + (0, import_i18n11.__)("Help"),
13488 + /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(VisuallyHidden, {
13489 + render: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", {}),
1488 13490 /* translators: accessibility text */
1489 - children: (0, import_i18n6.__)("(opens in a new tab)")
13491 + children: (0, import_i18n11.__)("(opens in a new tab)")
1490 13492 })
1491 13493 ]
1492 13494 }
1493 13495 )
1494 13496 ] }),
1495 - /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_components5.MenuGroup, { label: (0, import_i18n6.__)("Preferences"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
13497 + /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_components4.MenuGroup, { label: (0, import_i18n11.__)("Preferences"), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
1496 13498 import_preferences.PreferenceToggleMenuItem,
1497 13499 {
1498 13500 scope: "core/customize-widgets",
1499 13501 name: "keepCaretInsideBlock",
1500 - label: (0, import_i18n6.__)(
13502 + label: (0, import_i18n11.__)(
1501 13503 "Contain text cursor inside block"
1502 13504 ),
1503 - info: (0, import_i18n6.__)(
13505 + info: (0, import_i18n11.__)(
1504 13506 "Aids screen readers by stopping text caret from leaving blocks."
1505 13507 ),
1506 - messageActivated: (0, import_i18n6.__)(
13508 + messageActivated: (0, import_i18n11.__)(
1507 13509 "Contain text cursor inside block activated"
1508 13510 ),
1509 - messageDeactivated: (0, import_i18n6.__)(
13511 + messageDeactivated: (0, import_i18n11.__)(
1510 13512 "Contain text cursor inside block deactivated"
1511 13513 )
1512 13514 }
1513 13515 ) })
@@ -1513,9 +13515,9 @@
1513 13515 ) })
1514 13516 ] })
1515 13517 }
1516 13518 ),
1517 - /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
13519 + /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
1518 13520 KeyboardShortcutHelpModal,
1519 13521 {
1520 13522 isModalActive: isKeyboardShortcutsModalActive,
1521 13523 toggleModal: toggleKeyboardShortcutsModal
@@ -1524,10 +13526,10 @@
1524 13526 ] });
1525 13527 }
1526 13528
1527 13529 // packages/customize-widgets/build-module/components/header/index.mjs
1528 - var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
1529 - function Header({
13530 + var import_jsx_runtime57 = __toESM(require_jsx_runtime(), 1);
13531 + function Header3({
1530 13532 sidebar,
1531 13533 inserter,
1532 13534 isInserterOpened: isInserterOpened2,
1533 13535 setIsInserterOpened: setIsInserterOpened2,
@@ -1532,93 +13534,99 @@
1532 13534 isInserterOpened: isInserterOpened2,
1533 13535 setIsInserterOpened: setIsInserterOpened2,
1534 13536 isFixedToolbarActive
1535 13537 }) {
1536 - const [[hasUndo, hasRedo], setUndoRedo] = (0, import_element7.useState)([
13538 + const [[hasUndo, hasRedo], setUndoRedo] = (0, import_element49.useState)([
1537 13539 sidebar.hasUndo(),
1538 13540 sidebar.hasRedo()
1539 13541 ]);
1540 13542 const shortcut = (0, import_keycodes3.isAppleOS)() ? import_keycodes3.displayShortcut.primaryShift("z") : import_keycodes3.displayShortcut.primary("y");
1541 - (0, import_element7.useEffect)(() => {
13543 + (0, import_element49.useEffect)(() => {
1542 13544 return sidebar.subscribeHistory(() => {
1543 13545 setUndoRedo([sidebar.hasUndo(), sidebar.hasRedo()]);
1544 13546 });
1545 13547 }, [sidebar]);
1546 - return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
1547 - /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13548 + return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
13549 + /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
1548 13550 "div",
1549 13551 {
1550 13552 className: clsx_default("customize-widgets-header", {
1551 13553 "is-fixed-toolbar-active": isFixedToolbarActive
1552 13554 }),
1553 - children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1554 - import_block_editor4.NavigableToolbar,
13555 + children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
13556 + import_block_editor3.NavigableToolbar,
1555 13557 {
1556 13558 className: "customize-widgets-header-toolbar",
1557 - "aria-label": (0, import_i18n7.__)("Document tools"),
13559 + "aria-label": (0, import_i18n12.__)("Document tools"),
1558 13560 children: [
1559 - /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1560 - import_components6.ToolbarButton,
13561 + /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13562 + import_components5.ToolbarItem,
1561 13563 {
1562 - icon: !(0, import_i18n7.isRTL)() ? undo_default : redo_default,
1563 - label: (0, import_i18n7.__)("Undo"),
13564 + as: import_components5.Button,
13565 + icon: !(0, import_i18n12.isRTL)() ? undo_default : redo_default,
13566 + label: (0, import_i18n12.__)("Undo"),
1564 13567 shortcut: import_keycodes3.displayShortcut.primary("z"),
1565 - disabled: !hasUndo,
1566 - onClick: sidebar.undo,
13568 + "aria-disabled": !hasUndo,
13569 + onClick: hasUndo ? sidebar.undo : void 0,
13570 + size: "compact",
1567 13571 className: "customize-widgets-editor-history-button undo-button"
1568 13572 }
1569 13573 ),
1570 - /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1571 - import_components6.ToolbarButton,
13574 + /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13575 + import_components5.ToolbarItem,
1572 13576 {
1573 - icon: !(0, import_i18n7.isRTL)() ? redo_default : undo_default,
1574 - label: (0, import_i18n7.__)("Redo"),
13577 + as: import_components5.Button,
13578 + icon: !(0, import_i18n12.isRTL)() ? redo_default : undo_default,
13579 + label: (0, import_i18n12.__)("Redo"),
1575 13580 shortcut,
1576 - disabled: !hasRedo,
1577 - onClick: sidebar.redo,
13581 + "aria-disabled": !hasRedo,
13582 + onClick: hasRedo ? sidebar.redo : void 0,
13583 + size: "compact",
1578 13584 className: "customize-widgets-editor-history-button redo-button"
1579 13585 }
1580 13586 ),
1581 - /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1582 - import_components6.ToolbarButton,
13587 + /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13588 + import_components5.ToolbarItem,
1583 13589 {
13590 + as: import_components5.Button,
1584 13591 className: "customize-widgets-header-toolbar__inserter-toggle",
1585 13592 isPressed: isInserterOpened2,
1586 13593 variant: "primary",
1587 13594 icon: plus_default,
1588 - label: (0, import_i18n7._x)(
13595 + label: (0, import_i18n12._x)(
1589 13596 "Add block",
1590 13597 "Generic label for block inserter button"
1591 13598 ),
1592 13599 onClick: () => {
1593 13600 setIsInserterOpened2((isOpen) => !isOpen);
1594 - }
13601 + },
13602 + size: "compact"
1595 13603 }
1596 13604 ),
1597 - /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(MoreMenu, {})
13605 + /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(MoreMenu, {})
1598 13606 ]
1599 13607 }
1600 13608 )
1601 13609 }
1602 13610 ),
1603 - (0, import_element7.createPortal)(
1604 - /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(inserter_default, { setIsOpened: setIsInserterOpened2 }),
13611 + (0, import_element49.createPortal)(
13612 + /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(inserter_default, { setIsOpened: setIsInserterOpened2 }),
1605 13613 inserter.contentContainer[0]
1606 13614 )
1607 13615 ] });
1608 13616 }
1609 - var header_default = Header;
13617 + var header_default = Header3;
1610 13618
1611 13619 // packages/customize-widgets/build-module/components/inserter/use-inserter.mjs
1612 - var import_element8 = __toESM(require_element(), 1);
1613 - var import_data7 = __toESM(require_data(), 1);
13620 + var import_element50 = __toESM(require_element(), 1);
13621 + var import_data8 = __toESM(require_data(), 1);
1614 13622 function useInserter(inserter) {
1615 - const isInserterOpened2 = (0, import_data7.useSelect)(
13623 + const isInserterOpened2 = (0, import_data8.useSelect)(
1616 13624 (select) => select(store).isInserterOpened(),
1617 13625 []
1618 13626 );
1619 - const { setIsInserterOpened: setIsInserterOpened2 } = (0, import_data7.useDispatch)(store);
1620 - (0, import_element8.useEffect)(() => {
13627 + const { setIsInserterOpened: setIsInserterOpened2 } = (0, import_data8.useDispatch)(store);
13628 + (0, import_element50.useEffect)(() => {
1621 13629 if (isInserterOpened2) {
1622 13630 inserter.open();
1623 13631 } else {
1624 13632 inserter.close();
@@ -1625,14 +13633,14 @@
1625 13633 }
1626 13634 }, [inserter, isInserterOpened2]);
1627 13635 return [
1628 13636 isInserterOpened2,
1629 - (0, import_element8.useCallback)(
13637 + (0, import_element50.useCallback)(
1630 13638 (updater) => {
1631 13639 let isOpen = updater;
1632 13640 if (typeof updater === "function") {
1633 13641 isOpen = updater(
1634 - (0, import_data7.select)(store).isInserterOpened()
13642 + (0, import_data8.select)(store).isInserterOpened()
1635 13643 );
1636 13644 }
1637 13645 setIsInserterOpened2(isOpen);
1638 13646 },
@@ -1641,13 +13649,13 @@
1641 13649 ];
1642 13650 }
1643 13651
1644 13652 // packages/customize-widgets/build-module/components/sidebar-block-editor/sidebar-editor-provider.mjs
1645 - var import_block_editor6 = __toESM(require_block_editor(), 1);
13653 + var import_block_editor5 = __toESM(require_block_editor(), 1);
1646 13654
1647 13655 // packages/customize-widgets/build-module/components/sidebar-block-editor/use-sidebar-block-editor.mjs
1648 13656 var import_es6 = __toESM(require_es6(), 1);
1649 - var import_element9 = __toESM(require_element(), 1);
13657 + var import_element51 = __toESM(require_element(), 1);
1650 13658 var import_is_shallow_equal = __toESM(require_is_shallow_equal(), 1);
1651 13659 var import_widgets2 = __toESM(require_widgets(), 1);
1652 13660
1653 13661 // packages/customize-widgets/build-module/utils.mjs
@@ -1738,12 +13746,12 @@
1738 13746 function widgetsToBlocks(widgets) {
1739 13747 return widgets.map((widget) => widgetToBlock(widget));
1740 13748 }
1741 13749 function useSidebarBlockEditor(sidebar) {
1742 - const [blocks, setBlocks] = (0, import_element9.useState)(
13750 + const [blocks, setBlocks] = (0, import_element51.useState)(
1743 13751 () => widgetsToBlocks(sidebar.getWidgets())
1744 13752 );
1745 - (0, import_element9.useEffect)(() => {
13753 + (0, import_element51.useEffect)(() => {
1746 13754 return sidebar.subscribe((prevWidgets, nextWidgets) => {
1747 13755 setBlocks((prevBlocks) => {
1748 13756 const prevWidgetsMap = new Map(
1749 13757 prevWidgets.map((widget) => [widget.id, widget])
@@ -1767,9 +13775,9 @@
1767 13775 return nextBlocks;
1768 13776 });
1769 13777 });
1770 13778 }, [sidebar]);
1771 - const onChangeBlocks = (0, import_element9.useCallback)(
13779 + const onChangeBlocks = (0, import_element51.useCallback)(
1772 13780 (nextBlocks) => {
1773 13781 setBlocks((prevBlocks) => {
1774 13782 if ((0, import_is_shallow_equal.isShallowEqual)(prevBlocks, nextBlocks)) {
1775 13783 return prevBlocks;
@@ -1796,15 +13804,15 @@
1796 13804 return prevBlocks;
1797 13805 }
1798 13806 const addedWidgetIds = sidebar.setWidgets(nextWidgets);
1799 13807 return nextBlocks.reduce(
1800 - (updatedNextBlocks, nextBlock, index) => {
1801 - const addedWidgetId = addedWidgetIds[index];
13808 + (updatedNextBlocks, nextBlock, index2) => {
13809 + const addedWidgetId = addedWidgetIds[index2];
1802 13810 if (addedWidgetId !== null) {
1803 13811 if (updatedNextBlocks === nextBlocks) {
1804 13812 updatedNextBlocks = nextBlocks.slice();
1805 13813 }
1806 - updatedNextBlocks[index] = (0, import_widgets2.addWidgetIdToBlock)(
13814 + updatedNextBlocks[index2] = (0, import_widgets2.addWidgetIdToBlock)(
1807 13815 nextBlock,
1808 13816 addedWidgetId
1809 13817 );
1810 13818 }
@@ -1819,23 +13827,23 @@
1819 13827 return [blocks, onChangeBlocks, onChangeBlocks];
1820 13828 }
1821 13829
1822 13830 // packages/customize-widgets/build-module/components/focus-control/use-blocks-focus-control.mjs
1823 - var import_element11 = __toESM(require_element(), 1);
1824 - var import_data8 = __toESM(require_data(), 1);
1825 - var import_block_editor5 = __toESM(require_block_editor(), 1);
13831 + var import_element53 = __toESM(require_element(), 1);
13832 + var import_data9 = __toESM(require_data(), 1);
13833 + var import_block_editor4 = __toESM(require_block_editor(), 1);
1826 13834 var import_widgets3 = __toESM(require_widgets(), 1);
1827 13835
1828 13836 // packages/customize-widgets/build-module/components/focus-control/index.mjs
1829 - var import_element10 = __toESM(require_element(), 1);
1830 - var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
1831 - var FocusControlContext = (0, import_element10.createContext)();
13837 + var import_element52 = __toESM(require_element(), 1);
13838 + var import_jsx_runtime58 = __toESM(require_jsx_runtime(), 1);
13839 + var FocusControlContext = (0, import_element52.createContext)();
1832 13840 FocusControlContext.displayName = "FocusControlContext";
1833 13841 function FocusControl({ api, sidebarControls, children }) {
1834 - const [focusedWidgetIdRef, setFocusedWidgetIdRef] = (0, import_element10.useState)({
13842 + const [focusedWidgetIdRef, setFocusedWidgetIdRef] = (0, import_element52.useState)({
1835 13843 current: null
1836 13844 });
1837 - const focusWidget = (0, import_element10.useCallback)(
13845 + const focusWidget = (0, import_element52.useCallback)(
1838 13846 (widgetId) => {
1839 13847 for (const sidebarControl of sidebarControls) {
1840 13848 const widgets = sidebarControl.setting.get();
1841 13849 if (widgets.includes(widgetId)) {
@@ -1851,9 +13859,9 @@
1851 13859 }
1852 13860 },
1853 13861 [sidebarControls]
1854 13862 );
1855 - (0, import_element10.useEffect)(() => {
13863 + (0, import_element52.useEffect)(() => {
1856 13864 function handleFocus(settingId) {
1857 13865 const widgetId = settingIdToWidgetId(settingId);
1858 13866 focusWidget(widgetId);
1859 13867 }
@@ -1875,25 +13883,25 @@
1875 13883 );
1876 13884 }
1877 13885 };
1878 13886 }, [api, focusWidget]);
1879 - const context = (0, import_element10.useMemo)(
13887 + const context = (0, import_element52.useMemo)(
1880 13888 () => [focusedWidgetIdRef, focusWidget],
1881 13889 [focusedWidgetIdRef, focusWidget]
1882 13890 );
1883 - return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(FocusControlContext.Provider, { value: context, children });
13891 + return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(FocusControlContext.Provider, { value: context, children });
1884 13892 }
1885 - var useFocusControl = () => (0, import_element10.useContext)(FocusControlContext);
13893 + var useFocusControl = () => (0, import_element52.useContext)(FocusControlContext);
1886 13894
1887 13895 // packages/customize-widgets/build-module/components/focus-control/use-blocks-focus-control.mjs
1888 13896 function useBlocksFocusControl(blocks) {
1889 - const { selectBlock } = (0, import_data8.useDispatch)(import_block_editor5.store);
13897 + const { selectBlock } = (0, import_data9.useDispatch)(import_block_editor4.store);
1890 13898 const [focusedWidgetIdRef] = useFocusControl();
1891 - const blocksRef = (0, import_element11.useRef)(blocks);
1892 - (0, import_element11.useEffect)(() => {
13899 + const blocksRef = (0, import_element53.useRef)(blocks);
13900 + (0, import_element53.useEffect)(() => {
1893 13901 blocksRef.current = blocks;
1894 13902 }, [blocks]);
1895 - (0, import_element11.useEffect)(() => {
13903 + (0, import_element53.useEffect)(() => {
1896 13904 if (focusedWidgetIdRef.current) {
1897 13905 const focusedBlock = blocksRef.current.find(
1898 13906 (block) => (0, import_widgets3.getWidgetIdFromBlock)(block) === focusedWidgetIdRef.current
1899 13907 );
@@ -1908,17 +13916,17 @@
1908 13916 }, [focusedWidgetIdRef, selectBlock]);
1909 13917 }
1910 13918
1911 13919 // packages/customize-widgets/build-module/lock-unlock.mjs
1912 - var import_private_apis = __toESM(require_private_apis(), 1);
1913 - var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
13920 + var import_private_apis2 = __toESM(require_private_apis(), 1);
13921 + var { lock: lock2, unlock: unlock2 } = (0, import_private_apis2.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
1914 13922 "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
1915 13923 "@wordpress/customize-widgets"
1916 13924 );
1917 13925
1918 13926 // packages/customize-widgets/build-module/components/sidebar-block-editor/sidebar-editor-provider.mjs
1919 - var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
1920 - var { ExperimentalBlockEditorProvider } = unlock(import_block_editor6.privateApis);
13927 + var import_jsx_runtime59 = __toESM(require_jsx_runtime(), 1);
13928 + var { ExperimentalBlockEditorProvider } = unlock2(import_block_editor5.privateApis);
1921 13929 function SidebarEditorProvider({
1922 13930 sidebar,
1923 13931 settings,
1924 13932 children
@@ -1924,9 +13932,9 @@
1924 13932 children
1925 13933 }) {
1926 13934 const [blocks, onInput, onChange] = useSidebarBlockEditor(sidebar);
1927 13935 useBlocksFocusControl(blocks);
1928 - return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
13936 + return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
1929 13937 ExperimentalBlockEditorProvider,
1930 13938 {
1931 13939 value: blocks,
1932 13940 onInput,
@@ -1938,19 +13946,19 @@
1938 13946 );
1939 13947 }
1940 13948
1941 13949 // packages/customize-widgets/build-module/components/welcome-guide/index.mjs
1942 - var import_i18n8 = __toESM(require_i18n(), 1);
1943 - var import_components7 = __toESM(require_components(), 1);
1944 - var import_data9 = __toESM(require_data(), 1);
13950 + var import_i18n13 = __toESM(require_i18n(), 1);
13951 + var import_components6 = __toESM(require_components(), 1);
13952 + var import_data10 = __toESM(require_data(), 1);
1945 13953 var import_preferences2 = __toESM(require_preferences(), 1);
1946 - var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
13954 + var import_jsx_runtime60 = __toESM(require_jsx_runtime(), 1);
1947 13955 function WelcomeGuide({ sidebar }) {
1948 - const { toggle } = (0, import_data9.useDispatch)(import_preferences2.store);
13956 + const { toggle } = (0, import_data10.useDispatch)(import_preferences2.store);
1949 13957 const isEntirelyBlockWidgets = sidebar.getWidgets().every((widget) => widget.id.startsWith("block-"));
1950 - return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "customize-widgets-welcome-guide", children: [
1951 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "customize-widgets-welcome-guide__image__wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("picture", { children: [
1952 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
13958 + return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "customize-widgets-welcome-guide", children: [
13959 + /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "customize-widgets-welcome-guide__image__wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("picture", { children: [
13960 + /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
1953 13961 "source",
1954 13962 {
1955 13963 srcSet: "https://s.w.org/images/block-editor/welcome-editor.svg",
1956 13964 media: "(prefers-reduced-motion: reduce)"
@@ -1955,9 +13963,9 @@
1955 13963 srcSet: "https://s.w.org/images/block-editor/welcome-editor.svg",
1956 13964 media: "(prefers-reduced-motion: reduce)"
1957 13965 }
1958 13966 ),
1959 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
13967 + /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
1960 13968 "img",
1961 13969 {
1962 13970 className: "customize-widgets-welcome-guide__image",
1963 13971 src: "https://s.w.org/images/block-editor/welcome-editor.gif",
@@ -1966,47 +13974,47 @@
1966 13974 alt: ""
1967 13975 }
1968 13976 )
1969 13977 ] }) }),
1970 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h1", { className: "customize-widgets-welcome-guide__heading", children: (0, import_i18n8.__)("Welcome to block Widgets") }),
1971 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "customize-widgets-welcome-guide__text", children: isEntirelyBlockWidgets ? (0, import_i18n8.__)(
13978 + /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("h1", { className: "customize-widgets-welcome-guide__heading", children: (0, import_i18n13.__)("Welcome to block Widgets") }),
13979 + /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "customize-widgets-welcome-guide__text", children: isEntirelyBlockWidgets ? (0, import_i18n13.__)(
1972 13980 "Your theme provides different \u201Cblock\u201D areas for you to add and edit content.\xA0Try adding a search bar, social icons, or other types of blocks here and see how they\u2019ll look on your site."
1973 - ) : (0, import_i18n8.__)(
13981 + ) : (0, import_i18n13.__)(
1974 13982 "You can now add any block to your site\u2019s widget areas. Don\u2019t worry, all of your favorite widgets still work flawlessly."
1975 13983 ) }),
1976 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1977 - import_components7.Button,
13984 + /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
13985 + import_components6.Button,
1978 13986 {
1979 13987 size: "compact",
1980 13988 variant: "primary",
1981 13989 onClick: () => toggle("core/customize-widgets", "welcomeGuide"),
1982 - children: (0, import_i18n8.__)("Got it")
13990 + children: (0, import_i18n13.__)("Got it")
1983 13991 }
1984 13992 ),
1985 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("hr", { className: "customize-widgets-welcome-guide__separator" }),
1986 - !isEntirelyBlockWidgets && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { className: "customize-widgets-welcome-guide__more-info", children: [
1987 - (0, import_i18n8.__)("Want to stick with the old widgets?"),
1988 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("br", {}),
1989 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1990 - import_components7.ExternalLink,
13993 + /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("hr", { className: "customize-widgets-welcome-guide__separator" }),
13994 + !isEntirelyBlockWidgets && /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("p", { className: "customize-widgets-welcome-guide__more-info", children: [
13995 + (0, import_i18n13.__)("Want to stick with the old widgets?"),
13996 + /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("br", {}),
13997 + /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
13998 + import_components6.ExternalLink,
1991 13999 {
1992 - href: (0, import_i18n8.__)(
14000 + href: (0, import_i18n13.__)(
1993 14001 "https://wordpress.org/plugins/classic-widgets/"
1994 14002 ),
1995 - children: (0, import_i18n8.__)("Get the Classic Widgets plugin.")
14003 + children: (0, import_i18n13.__)("Get the Classic Widgets plugin.")
1996 14004 }
1997 14005 )
1998 14006 ] }),
1999 - /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { className: "customize-widgets-welcome-guide__more-info", children: [
2000 - (0, import_i18n8.__)("New to the block editor?"),
2001 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("br", {}),
2002 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2003 - import_components7.ExternalLink,
14007 + /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("p", { className: "customize-widgets-welcome-guide__more-info", children: [
14008 + (0, import_i18n13.__)("New to the block editor?"),
14009 + /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("br", {}),
14010 + /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
14011 + import_components6.ExternalLink,
2004 14012 {
2005 - href: (0, import_i18n8.__)(
14013 + href: (0, import_i18n13.__)(
2006 14014 "https://wordpress.org/documentation/article/wordpress-block-editor/"
2007 14015 ),
2008 - children: (0, import_i18n8.__)("Here's a detailed guide.")
14016 + children: (0, import_i18n13.__)("Here's a detailed guide.")
2009 14017 }
2010 14018 )
2011 14019 ] })
2012 14020 ] });
@@ -2012,15 +14020,15 @@
2012 14020 ] });
2013 14021 }
2014 14022
2015 14023 // packages/customize-widgets/build-module/components/keyboard-shortcuts/index.mjs
2016 - var import_element12 = __toESM(require_element(), 1);
14024 + var import_element54 = __toESM(require_element(), 1);
2017 14025 var import_keyboard_shortcuts4 = __toESM(require_keyboard_shortcuts(), 1);
2018 14026 var import_keycodes4 = __toESM(require_keycodes(), 1);
2019 - var import_data10 = __toESM(require_data(), 1);
2020 - var import_i18n9 = __toESM(require_i18n(), 1);
2021 - var import_block_editor7 = __toESM(require_block_editor(), 1);
2022 - var { usesNativeUndo } = unlock(import_block_editor7.privateApis);
14027 + var import_data11 = __toESM(require_data(), 1);
14028 + var import_i18n14 = __toESM(require_i18n(), 1);
14029 + var import_block_editor6 = __toESM(require_block_editor(), 1);
14030 + var { usesNativeUndo } = unlock2(import_block_editor6.privateApis);
2023 14031 function KeyboardShortcuts({ undo, redo, save }) {
2024 14032 (0, import_keyboard_shortcuts4.useShortcut)("core/customize-widgets/undo", (event) => {
2025 14033 if (usesNativeUndo(event)) {
2026 14034 return;
@@ -2041,16 +14049,16 @@
2041 14049 });
2042 14050 return null;
2043 14051 }
2044 14052 function KeyboardShortcutsRegister() {
2045 - const { registerShortcut, unregisterShortcut } = (0, import_data10.useDispatch)(
14053 + const { registerShortcut, unregisterShortcut } = (0, import_data11.useDispatch)(
2046 14054 import_keyboard_shortcuts4.store
2047 14055 );
2048 - (0, import_element12.useEffect)(() => {
14056 + (0, import_element54.useEffect)(() => {
2049 14057 registerShortcut({
2050 14058 name: "core/customize-widgets/undo",
2051 14059 category: "global",
2052 - description: (0, import_i18n9.__)("Undo your last changes."),
14060 + description: (0, import_i18n14.__)("Undo your last changes."),
2053 14061 keyCombination: {
2054 14062 modifier: "primary",
2055 14063 character: "z"
2056 14064 }
@@ -2057,9 +14065,9 @@
2057 14065 });
2058 14066 registerShortcut({
2059 14067 name: "core/customize-widgets/redo",
2060 14068 category: "global",
2061 - description: (0, import_i18n9.__)("Redo your last undo."),
14069 + description: (0, import_i18n14.__)("Redo your last undo."),
2062 14070 keyCombination: {
2063 14071 modifier: "primaryShift",
2064 14072 character: "z"
2065 14073 },
@@ -2076,9 +14084,9 @@
2076 14084 });
2077 14085 registerShortcut({
2078 14086 name: "core/customize-widgets/save",
2079 14087 category: "global",
2080 - description: (0, import_i18n9.__)("Save your changes."),
14088 + description: (0, import_i18n14.__)("Save your changes."),
2081 14089 keyCombination: {
2082 14090 modifier: "primary",
2083 14091 character: "s"
2084 14092 }
@@ -2094,32 +14102,32 @@
2094 14102 KeyboardShortcuts.Register = KeyboardShortcutsRegister;
2095 14103 var keyboard_shortcuts_default = KeyboardShortcuts;
2096 14104
2097 14105 // packages/customize-widgets/build-module/components/block-appender/index.mjs
2098 - var import_element13 = __toESM(require_element(), 1);
2099 - var import_block_editor8 = __toESM(require_block_editor(), 1);
2100 - var import_data11 = __toESM(require_data(), 1);
2101 - var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
14106 + var import_element55 = __toESM(require_element(), 1);
14107 + var import_block_editor7 = __toESM(require_block_editor(), 1);
14108 + var import_data12 = __toESM(require_data(), 1);
14109 + var import_jsx_runtime61 = __toESM(require_jsx_runtime(), 1);
2102 14110 function BlockAppender(props) {
2103 - const ref = (0, import_element13.useRef)();
2104 - const isBlocksListEmpty = (0, import_data11.useSelect)(
2105 - (select) => select(import_block_editor8.store).getBlockCount() === 0
14111 + const ref = (0, import_element55.useRef)();
14112 + const isBlocksListEmpty = (0, import_data12.useSelect)(
14113 + (select) => select(import_block_editor7.store).getBlockCount() === 0
2106 14114 );
2107 - (0, import_element13.useEffect)(() => {
14115 + (0, import_element55.useEffect)(() => {
2108 14116 if (isBlocksListEmpty && ref.current) {
2109 - const { ownerDocument } = ref.current;
2110 - if (!ownerDocument.activeElement || ownerDocument.activeElement === ownerDocument.body) {
14117 + const { ownerDocument: ownerDocument2 } = ref.current;
14118 + if (!ownerDocument2.activeElement || ownerDocument2.activeElement === ownerDocument2.body) {
2111 14119 ref.current.focus();
2112 14120 }
2113 14121 }
2114 14122 }, [isBlocksListEmpty]);
2115 - return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_block_editor8.ButtonBlockAppender, { ...props, ref });
14123 + return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_block_editor7.ButtonBlockAppender, { ...props, ref });
2116 14124 }
2117 14125
2118 14126 // packages/customize-widgets/build-module/components/sidebar-block-editor/index.mjs
2119 - var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
2120 - var { ExperimentalBlockCanvas: BlockCanvas } = unlock(
2121 - import_block_editor9.privateApis
14127 + var import_jsx_runtime62 = __toESM(require_jsx_runtime(), 1);
14128 + var { ExperimentalBlockCanvas: BlockCanvas } = unlock2(
14129 + import_block_editor8.privateApis
2122 14130 );
2123 14131 function SidebarBlockEditor({
2124 14132 blockEditorSettings,
2125 14133 sidebar,
@@ -2126,15 +14134,15 @@
2126 14134 inserter,
2127 14135 inspector
2128 14136 }) {
2129 14137 const [isInserterOpened2, setIsInserterOpened2] = useInserter(inserter);
2130 - const isMediumViewport = (0, import_compose3.useViewportMatch)("small");
14138 + const isMediumViewport = (0, import_compose4.useViewportMatch)("small");
2131 14139 const {
2132 14140 hasUploadPermissions,
2133 14141 isFixedToolbarActive,
2134 14142 keepCaretInsideBlock,
2135 14143 isWelcomeGuideActive
2136 - } = (0, import_data12.useSelect)((select) => {
14144 + } = (0, import_data13.useSelect)((select) => {
2137 14145 const { get } = select(import_preferences3.store);
2138 14146 return {
2139 14147 hasUploadPermissions: select(import_core_data.store).canUser("create", {
2140 14148 kind: "postType",
@@ -2153,9 +14161,9 @@
2153 14161 "welcomeGuide"
2154 14162 )
2155 14163 };
2156 14164 }, []);
2157 - const settings = (0, import_element14.useMemo)(() => {
14165 + const settings = (0, import_element56.useMemo)(() => {
2158 14166 let mediaUploadBlockEditor;
2159 14167 if (hasUploadPermissions) {
2160 14168 mediaUploadBlockEditor = ({ onError, ...argumentsObject }) => {
2161 14169 (0, import_media_utils.uploadMedia)({
@@ -2170,9 +14178,8 @@
2170 14178 __experimentalSetIsInserterOpened: setIsInserterOpened2,
2171 14179 mediaUpload: mediaUploadBlockEditor,
2172 14180 hasFixedToolbar: isFixedToolbarActive || !isMediumViewport,
2173 14181 keepCaretInsideBlock,
2174 - editorTool: "edit",
2175 14182 __unstableHasCustomAppender: true
2176 14183 };
2177 14184 }, [
2178 14185 hasUploadPermissions,
@@ -2182,14 +14189,14 @@
2182 14189 keepCaretInsideBlock,
2183 14190 setIsInserterOpened2
2184 14191 ]);
2185 14192 if (isWelcomeGuideActive) {
2186 - return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(WelcomeGuide, { sidebar });
14193 + return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(WelcomeGuide, { sidebar });
2187 14194 }
2188 - return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
2189 - /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(keyboard_shortcuts_default.Register, {}),
2190 - /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(SidebarEditorProvider, { sidebar, settings, children: [
2191 - /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
14195 + return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_jsx_runtime62.Fragment, { children: [
14196 + /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(keyboard_shortcuts_default.Register, {}),
14197 + /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(SidebarEditorProvider, { sidebar, settings, children: [
14198 + /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2192 14199 keyboard_shortcuts_default,
2193 14200 {
2194 14201 undo: sidebar.undo,
2195 14202 redo: sidebar.redo,
@@ -2195,9 +14202,9 @@
2195 14202 redo: sidebar.redo,
2196 14203 save: sidebar.save
2197 14204 }
2198 14205 ),
2199 - /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
14206 + /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2200 14207 header_default,
2201 14208 {
2202 14209 sidebar,
2203 14210 inserter,
@@ -2205,26 +14212,26 @@
2205 14212 setIsInserterOpened: setIsInserterOpened2,
2206 14213 isFixedToolbarActive: isFixedToolbarActive || !isMediumViewport
2207 14214 }
2208 14215 ),
2209 - (isFixedToolbarActive || !isMediumViewport) && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_block_editor9.BlockToolbar, { hideDragHandle: true }),
2210 - /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
14216 + (isFixedToolbarActive || !isMediumViewport) && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_block_editor8.BlockToolbar, { hideDragHandle: true }),
14217 + /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2211 14218 BlockCanvas,
2212 14219 {
2213 14220 shouldIframe: false,
2214 14221 styles: settings.defaultEditorStyles,
2215 14222 height: "100%",
2216 - children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_block_editor9.BlockList, { renderAppender: BlockAppender })
14223 + children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_block_editor8.BlockList, { renderAppender: BlockAppender })
2217 14224 }
2218 14225 ),
2219 - (0, import_element14.createPortal)(
14226 + (0, import_element56.createPortal)(
2220 14227 // This is a temporary hack to prevent button component inside <BlockInspector>
2221 14228 // from submitting form when type="button" is not specified.
2222 - /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("form", { onSubmit: (event) => event.preventDefault(), children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_block_editor9.BlockInspector, {}) }),
14229 + /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("form", { onSubmit: (event) => event.preventDefault(), children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_block_editor8.BlockInspector, {}) }),
2223 14230 inspector.contentContainer[0]
2224 14231 )
2225 14232 ] }),
2226 - /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_block_editor9.__unstableBlockSettingsMenuFirstItem, { children: ({ onClose }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
14233 + /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_block_editor8.__unstableBlockSettingsMenuFirstItem, { children: ({ onClose }) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2227 14234 block_inspector_button_default,
2228 14235 {
2229 14236 inspector,
2230 14237 closeMenu: onClose
@@ -2233,11 +14240,11 @@
2233 14240 ] });
2234 14241 }
2235 14242
2236 14243 // packages/customize-widgets/build-module/components/sidebar-controls/index.mjs
2237 - var import_element15 = __toESM(require_element(), 1);
2238 - var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
2239 - var SidebarControlsContext = (0, import_element15.createContext)();
14244 + var import_element57 = __toESM(require_element(), 1);
14245 + var import_jsx_runtime63 = __toESM(require_jsx_runtime(), 1);
14246 + var SidebarControlsContext = (0, import_element57.createContext)();
2240 14247 SidebarControlsContext.displayName = "SidebarControlsContext";
2241 14248 function SidebarControls({
2242 14249 sidebarControls,
2243 14250 activeSidebarControl,
@@ -2242,9 +14249,9 @@
2242 14249 sidebarControls,
2243 14250 activeSidebarControl,
2244 14251 children
2245 14252 }) {
2246 - const context = (0, import_element15.useMemo)(
14253 + const context = (0, import_element57.useMemo)(
2247 14254 () => ({
2248 14255 sidebarControls,
2249 14256 activeSidebarControl
2250 14257 }),
@@ -2249,33 +14256,33 @@
2249 14256 activeSidebarControl
2250 14257 }),
2251 14258 [sidebarControls, activeSidebarControl]
2252 14259 );
2253 - return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(SidebarControlsContext.Provider, { value: context, children });
14260 + return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SidebarControlsContext.Provider, { value: context, children });
2254 14261 }
2255 14262 function useSidebarControls() {
2256 - const { sidebarControls } = (0, import_element15.useContext)(SidebarControlsContext);
14263 + const { sidebarControls } = (0, import_element57.useContext)(SidebarControlsContext);
2257 14264 return sidebarControls;
2258 14265 }
2259 14266 function useActiveSidebarControl() {
2260 - const { activeSidebarControl } = (0, import_element15.useContext)(SidebarControlsContext);
14267 + const { activeSidebarControl } = (0, import_element57.useContext)(SidebarControlsContext);
2261 14268 return activeSidebarControl;
2262 14269 }
2263 14270
2264 14271 // packages/customize-widgets/build-module/components/customize-widgets/use-clear-selected-block.mjs
2265 - var import_element16 = __toESM(require_element(), 1);
2266 - var import_data13 = __toESM(require_data(), 1);
2267 - var import_block_editor10 = __toESM(require_block_editor(), 1);
14272 + var import_element58 = __toESM(require_element(), 1);
14273 + var import_data14 = __toESM(require_data(), 1);
14274 + var import_block_editor9 = __toESM(require_block_editor(), 1);
2268 14275 function useClearSelectedBlock(sidebarControl, popoverRef) {
2269 - const { hasSelectedBlock, hasMultiSelection } = (0, import_data13.useSelect)(import_block_editor10.store);
2270 - const { clearSelectedBlock } = (0, import_data13.useDispatch)(import_block_editor10.store);
2271 - (0, import_element16.useEffect)(() => {
14276 + const { hasSelectedBlock, hasMultiSelection } = (0, import_data14.useSelect)(import_block_editor9.store);
14277 + const { clearSelectedBlock } = (0, import_data14.useDispatch)(import_block_editor9.store);
14278 + (0, import_element58.useEffect)(() => {
2272 14279 if (popoverRef.current && sidebarControl) {
2273 14280 let handleClearSelectedBlock = function(element) {
2274 14281 if (
2275 14282 // 1. Make sure there are blocks being selected.
2276 14283 (hasSelectedBlock() || hasMultiSelection()) && // 2. The element should exist in the DOM (not deleted).
2277 - element && ownerDocument.contains(element) && // 3. It should also not exist in the container, the popover, nor the dialog.
14284 + element && ownerDocument2.contains(element) && // 3. It should also not exist in the container, the popover, nor the dialog.
2278 14285 !container.contains(element) && !popoverRef.current.contains(element) && !element.closest('[role="dialog"]') && // 4. The inspector should not be opened.
2279 14286 !inspector.expanded()
2280 14287 ) {
2281 14288 clearSelectedBlock();
@@ -2282,18 +14289,18 @@
2282 14289 }
2283 14290 }, handleMouseDown = function(event) {
2284 14291 handleClearSelectedBlock(event.target);
2285 14292 }, handleBlur = function() {
2286 - handleClearSelectedBlock(ownerDocument.activeElement);
14293 + handleClearSelectedBlock(ownerDocument2.activeElement);
2287 14294 };
2288 14295 const inspector = sidebarControl.inspector;
2289 14296 const container = sidebarControl.container[0];
2290 - const ownerDocument = container.ownerDocument;
2291 - const ownerWindow = ownerDocument.defaultView;
2292 - ownerDocument.addEventListener("mousedown", handleMouseDown);
14297 + const ownerDocument2 = container.ownerDocument;
14298 + const ownerWindow = ownerDocument2.defaultView;
14299 + ownerDocument2.addEventListener("mousedown", handleMouseDown);
2293 14300 ownerWindow.addEventListener("blur", handleBlur);
2294 14301 return () => {
2295 - ownerDocument.removeEventListener(
14302 + ownerDocument2.removeEventListener(
2296 14303 "mousedown",
2297 14304 handleMouseDown
2298 14305 );
2299 14306 ownerWindow.removeEventListener("blur", handleBlur);
@@ -2308,22 +14315,22 @@
2308 14315 ]);
2309 14316 }
2310 14317
2311 14318 // packages/customize-widgets/build-module/components/customize-widgets/index.mjs
2312 - var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
14319 + var import_jsx_runtime64 = __toESM(require_jsx_runtime(), 1);
2313 14320 function CustomizeWidgets({
2314 14321 api,
2315 14322 sidebarControls,
2316 14323 blockEditorSettings
2317 14324 }) {
2318 - const [activeSidebarControl, setActiveSidebarControl] = (0, import_element17.useState)(null);
14325 + const [activeSidebarControl, setActiveSidebarControl] = (0, import_element59.useState)(null);
2319 14326 const parentContainer = document.getElementById(
2320 14327 "customize-theme-controls"
2321 14328 );
2322 - const popoverRef = (0, import_element17.useRef)();
2323 - const adminPrimary = (0, import_element17.useMemo)(() => getAdminThemeColors().primary, []);
14329 + const popoverRef = (0, import_element59.useRef)();
14330 + const adminPrimary = (0, import_element59.useMemo)(() => getAdminThemeColors().primary, []);
2324 14331 useClearSelectedBlock(activeSidebarControl, popoverRef);
2325 - (0, import_element17.useEffect)(() => {
14332 + (0, import_element59.useEffect)(() => {
2326 14333 const unsubscribers = sidebarControls.map(
2327 14334 (sidebarControl) => sidebarControl.subscribe((expanded) => {
2328 14335 if (expanded) {
2329 14336 setActiveSidebarControl(sidebarControl);
@@ -2333,10 +14340,10 @@
2333 14340 return () => {
2334 14341 unsubscribers.forEach((unsubscriber) => unsubscriber());
2335 14342 };
2336 14343 }, [sidebarControls]);
2337 - const activeSidebar = activeSidebarControl && (0, import_element17.createPortal)(
2338 - /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ErrorBoundary, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
14344 + const activeSidebar = activeSidebarControl && (0, import_element59.createPortal)(
14345 + /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ErrorBoundary, { children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
2339 14346 SidebarBlockEditor,
2340 14347 {
2341 14348 blockEditorSettings,
2342 14349 sidebar: activeSidebarControl.sidebarAdapter,
@@ -2346,18 +14353,18 @@
2346 14353 activeSidebarControl.id
2347 14354 ) }),
2348 14355 activeSidebarControl.container[0]
2349 14356 );
2350 - const popover = parentContainer && (0, import_element17.createPortal)(
2351 - /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "customize-widgets-popover", ref: popoverRef, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_components8.Popover.Slot, {}) }),
14357 + const popover = parentContainer && (0, import_element59.createPortal)(
14358 + /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "customize-widgets-popover", ref: popoverRef, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_components7.Popover.Slot, {}) }),
2352 14359 parentContainer
2353 14360 );
2354 - return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_components8.SlotFillProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_theme.ThemeProvider, { isRoot: true, color: { primary: adminPrimary }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
14361 + return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_components7.SlotFillProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_theme.ThemeProvider, { isRoot: true, color: { primary: adminPrimary }, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
2355 14362 SidebarControls,
2356 14363 {
2357 14364 sidebarControls,
2358 14365 activeSidebarControl,
2359 - children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
14366 + children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
2360 14367 FocusControl,
2361 14368 {
2362 14369 api,
2363 14370 sidebarControls,
@@ -2371,9 +14378,9 @@
2371 14378 ) }) });
2372 14379 }
2373 14380
2374 14381 // packages/customize-widgets/build-module/controls/sidebar-section.mjs
2375 - var import_i18n10 = __toESM(require_i18n(), 1);
14382 + var import_i18n15 = __toESM(require_i18n(), 1);
2376 14383
2377 14384 // packages/customize-widgets/build-module/controls/inspector-section.mjs
2378 14385 function getInspectorSection() {
2379 14386 const {
@@ -2462,13 +14469,13 @@
2462 14469 const InspectorSection = getInspectorSection();
2463 14470 this.inspector = new InspectorSection(
2464 14471 getInspectorSectionId(this.id),
2465 14472 {
2466 - title: (0, import_i18n10.__)("Block Settings"),
14473 + title: (0, import_i18n15.__)("Block Settings"),
2467 14474 parentSection: this,
2468 14475 customizeAction: [
2469 - (0, import_i18n10.__)("Customizing"),
2470 - (0, import_i18n10.__)("Widgets"),
14476 + (0, import_i18n15.__)("Customizing"),
14477 + (0, import_i18n15.__)("Widgets"),
2471 14478 this.params.title
2472 14479 ].join(" \u25B8 ")
2473 14480 }
2474 14481 );
@@ -2523,9 +14530,9 @@
2523 14530 };
2524 14531 }
2525 14532
2526 14533 // packages/customize-widgets/build-module/controls/sidebar-control.mjs
2527 - var import_data15 = __toESM(require_data(), 1);
14534 + var import_data16 = __toESM(require_data(), 1);
2528 14535
2529 14536 // packages/customize-widgets/build-module/components/sidebar-block-editor/sidebar-adapter.mjs
2530 14537 var { wp } = window;
2531 14538 function parseWidgetId(widgetId) {
@@ -2782,10 +14789,10 @@
2782 14789 };
2783 14790
2784 14791 // packages/customize-widgets/build-module/controls/inserter-outer-section.mjs
2785 14792 var import_keycodes5 = __toESM(require_keycodes(), 1);
2786 - var import_dom = __toESM(require_dom(), 1);
2787 - var import_data14 = __toESM(require_data(), 1);
14793 + var import_dom21 = __toESM(require_dom(), 1);
14794 + var import_data15 = __toESM(require_data(), 1);
2788 14795 function getInserterOuterSection() {
2789 14796 const {
2790 14797 wp: { customize }
2791 14798 } = window;
@@ -2816,9 +14823,9 @@
2816 14823 (event) => {
2817 14824 if (this.expanded() && (event.keyCode === import_keycodes5.ESCAPE || event.code === "Escape") && !event.defaultPrevented) {
2818 14825 event.preventDefault();
2819 14826 event.stopPropagation();
2820 - (0, import_data14.dispatch)(store).setIsInserterOpened(
14827 + (0, import_data15.dispatch)(store).setIsInserterOpened(
2821 14828 false
2822 14829 );
2823 14830 }
2824 14831 },
@@ -2828,9 +14835,9 @@
2828 14835 this.contentContainer.addClass("widgets-inserter");
2829 14836 this.isFromInternalAction = false;
2830 14837 this.expanded.bind(() => {
2831 14838 if (!this.isFromInternalAction) {
2832 - (0, import_data14.dispatch)(store).setIsInserterOpened(
14839 + (0, import_data15.dispatch)(store).setIsInserterOpened(
2833 14840 this.expanded()
2834 14841 );
2835 14842 }
2836 14843 this.isFromInternalAction = false;
@@ -2842,9 +14849,9 @@
2842 14849 this.activeElementBeforeExpanded = contentContainer.ownerDocument.activeElement;
2843 14850 this.isFromInternalAction = true;
2844 14851 this.expand({
2845 14852 completeCallback() {
2846 - const searchBox = import_dom.focus.tabbable.find(contentContainer)[1];
14853 + const searchBox = import_dom21.focus.tabbable.find(contentContainer)[1];
2847 14854 if (searchBox) {
2848 14855 searchBox.focus();
2849 14856 }
2850 14857 }
@@ -2853,13 +14860,13 @@
2853 14860 }
2854 14861 close() {
2855 14862 if (this.expanded()) {
2856 14863 const contentContainer = this.contentContainer[0];
2857 - const activeElement = contentContainer.ownerDocument.activeElement;
14864 + const activeElement2 = contentContainer.ownerDocument.activeElement;
2858 14865 this.isFromInternalAction = true;
2859 14866 this.collapse({
2860 14867 completeCallback() {
2861 - if (contentContainer.contains(activeElement)) {
14868 + if (contentContainer.contains(activeElement2)) {
2862 14869 if (this.activeElementBeforeExpanded) {
2863 14870 this.activeElementBeforeExpanded.focus();
2864 14871 }
2865 14872 }
@@ -2900,9 +14907,9 @@
2900 14907 }
2901 14908 onChangeSectionExpanded(expanded, args) {
2902 14909 if (!args.unchanged) {
2903 14910 if (!expanded) {
2904 - (0, import_data15.dispatch)(store).setIsInserterOpened(
14911 + (0, import_data16.dispatch)(store).setIsInserterOpened(
2905 14912 false
2906 14913 );
2907 14914 }
2908 14915 this.subscribers.forEach(
@@ -2913,15 +14920,15 @@
2913 14920 };
2914 14921 }
2915 14922
2916 14923 // packages/customize-widgets/build-module/filters/move-to-sidebar.mjs
2917 - var import_block_editor11 = __toESM(require_block_editor(), 1);
2918 - var import_compose4 = __toESM(require_compose(), 1);
2919 - var import_data16 = __toESM(require_data(), 1);
14924 + var import_block_editor10 = __toESM(require_block_editor(), 1);
14925 + var import_compose5 = __toESM(require_compose(), 1);
14926 + var import_data17 = __toESM(require_data(), 1);
2920 14927 var import_hooks2 = __toESM(require_hooks(), 1);
2921 14928 var import_widgets4 = __toESM(require_widgets(), 1);
2922 - var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
2923 - var withMoveToSidebarToolbarItem = (0, import_compose4.createHigherOrderComponent)(
14929 + var import_jsx_runtime65 = __toESM(require_jsx_runtime(), 1);
14930 + var withMoveToSidebarToolbarItem = (0, import_compose5.createHigherOrderComponent)(
2924 14931 (BlockEdit) => (props) => {
2925 14932 let widgetId = (0, import_widgets4.getWidgetIdFromBlock)(props);
2926 14933 const sidebarControls = useSidebarControls();
2927 14934 const activeSidebarControl = useActiveSidebarControl();
@@ -2927,11 +14934,11 @@
2927 14934 const activeSidebarControl = useActiveSidebarControl();
2928 14935 const hasMultipleSidebars = sidebarControls?.length > 1;
2929 14936 const blockName = props.name;
2930 14937 const clientId = props.clientId;
2931 - const canInsertBlockInSidebar = (0, import_data16.useSelect)(
14938 + const canInsertBlockInSidebar = (0, import_data17.useSelect)(
2932 14939 (select) => {
2933 - return select(import_block_editor11.store).canInsertBlockType(
14940 + return select(import_block_editor10.store).canInsertBlockType(
2934 14941 blockName,
2935 14942 ""
2936 14943 );
2937 14944 },
@@ -2936,13 +14943,13 @@
2936 14943 );
2937 14944 },
2938 14945 [blockName]
2939 14946 );
2940 - const block = (0, import_data16.useSelect)(
2941 - (select) => select(import_block_editor11.store).getBlock(clientId),
14947 + const block = (0, import_data17.useSelect)(
14948 + (select) => select(import_block_editor10.store).getBlock(clientId),
2942 14949 [clientId]
2943 14950 );
2944 - const { removeBlock } = (0, import_data16.useDispatch)(import_block_editor11.store);
14951 + const { removeBlock } = (0, import_data17.useDispatch)(import_block_editor10.store);
2945 14952 const [, focusWidget] = useFocusControl();
2946 14953 function moveToSidebar(sidebarControlId) {
2947 14954 const newSidebarControl = sidebarControls.find(
2948 14955 (sidebarControl) => sidebarControl.id === sidebarControlId
@@ -2962,11 +14969,11 @@
2962 14969 widgetId = addedWidgetIds.reverse().find((id) => !!id);
2963 14970 }
2964 14971 focusWidget(widgetId);
2965 14972 }
2966 - return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
2967 - /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(BlockEdit, { ...props }, "edit"),
2968 - hasMultipleSidebars && canInsertBlockInSidebar && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_block_editor11.BlockControls, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
14973 + return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
14974 + /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(BlockEdit, { ...props }, "edit"),
14975 + hasMultipleSidebars && canInsertBlockInSidebar && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_block_editor10.BlockControls, { children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
2969 14976 import_widgets4.MoveToWidgetArea,
2970 14977 {
2971 14978 widgetAreas: sidebarControls.map(
2972 14979 (sidebarControl) => ({
@@ -2999,19 +15006,19 @@
2999 15006 replaceMediaUpload
3000 15007 );
3001 15008
3002 15009 // packages/customize-widgets/build-module/filters/wide-widget-display.mjs
3003 - var import_compose5 = __toESM(require_compose(), 1);
15010 + var import_compose6 = __toESM(require_compose(), 1);
3004 15011 var import_hooks4 = __toESM(require_hooks(), 1);
3005 - var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
15012 + var import_jsx_runtime66 = __toESM(require_jsx_runtime(), 1);
3006 15013 var { wp: wp2 } = window;
3007 - var withWideWidgetDisplay = (0, import_compose5.createHigherOrderComponent)(
15014 + var withWideWidgetDisplay = (0, import_compose6.createHigherOrderComponent)(
3008 15015 (BlockEdit) => (props) => {
3009 15016 const { idBase } = props.attributes;
3010 15017 const isWide = wp2.customize.Widgets.data.availableWidgets.find(
3011 15018 (widget) => widget.id_base === idBase
3012 15019 )?.is_wide ?? false;
3013 - return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(BlockEdit, { ...props, isWide }, "edit");
15020 + return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(BlockEdit, { ...props, isWide }, "edit");
3014 15021 },
3015 15022 "withWideWidgetDisplay"
3016 15023 );
3017 15024 (0, import_hooks4.addFilter)(
@@ -3020,9 +15027,9 @@
3020 15027 withWideWidgetDisplay
3021 15028 );
3022 15029
3023 15030 // packages/customize-widgets/build-module/index.mjs
3024 - var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
15031 + var import_jsx_runtime67 = __toESM(require_jsx_runtime(), 1);
3025 15032 var { wp: wp3 } = window;
3026 15033 var DISABLED_BLOCKS = [
3027 15034 "core/more",
3028 15035 "core/block",
@@ -3030,13 +15037,13 @@
3030 15037 "core/template-part"
3031 15038 ];
3032 15039 var ENABLE_EXPERIMENTAL_FSE_BLOCKS = false;
3033 15040 function initialize(editorName, blockEditorSettings) {
3034 - (0, import_data17.dispatch)(import_preferences4.store).setDefaults("core/customize-widgets", {
15041 + (0, import_data18.dispatch)(import_preferences4.store).setDefaults("core/customize-widgets", {
3035 15042 fixedToolbar: false,
3036 15043 welcomeGuide: true
3037 15044 });
3038 - (0, import_data17.dispatch)(import_blocks2.store).reapplyBlockTypeFilters();
15045 + (0, import_data18.dispatch)(import_blocks2.store).reapplyBlockTypeFilters();
3039 15046 const coreBlocks = (0, import_block_library.__experimentalGetCoreBlocks)().filter((block) => {
3040 15047 return !(DISABLED_BLOCKS.includes(block.name) || block.name.startsWith("core/post") || block.name.startsWith("core/query") || block.name.startsWith("core/site") || block.name.startsWith("core/navigation") || block.name.startsWith("core/term"));
3041 15048 });
3042 15049 (0, import_block_library.registerCoreBlocks)(coreBlocks);
@@ -3060,10 +15067,10 @@
3060 15067 if (control instanceof SidebarControl) {
3061 15068 sidebarControls.push(control);
3062 15069 }
3063 15070 });
3064 - (0, import_element18.createRoot)(container).render(
3065 - /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_element18.StrictMode, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
15071 + (0, import_element60.createRoot)(container).render(
15072 + /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_element60.StrictMode, { children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
3066 15073 CustomizeWidgets,
3067 15074 {
3068 15075 api: wp3.customize,
3069 15076 sidebarControls,
@@ -3074,7 +15081,31 @@
3074 15081 });
3075 15082 }
3076 15083 return __toCommonJS(index_exports);
3077 15084 })();
15085 +/*! Bundled license information:
15086 +
15087 +use-sync-external-store/cjs/use-sync-external-store-shim.development.js:
15088 + (**
15089 + * @license React
15090 + * use-sync-external-store-shim.development.js
15091 + *
15092 + * Copyright (c) Meta Platforms, Inc. and affiliates.
15093 + *
15094 + * This source code is licensed under the MIT license found in the
15095 + * LICENSE file in the root directory of this source tree.
15096 + *)
15097 +
15098 +use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js:
15099 + (**
15100 + * @license React
15101 + * use-sync-external-store-shim/with-selector.development.js
15102 + *
15103 + * Copyright (c) Meta Platforms, Inc. and affiliates.
15104 + *
15105 + * This source code is licensed under the MIT license found in the
15106 + * LICENSE file in the root directory of this source tree.
15107 + *)
15108 +*/
3078 15109 (window.wp ||= {}).customizeWidgets = wp.customizeWidgets;
3079 15110 })();
3080 15111 //# sourceMappingURL=index.js.map