PluginProbe
Gutenberg / 24.1.0
Gutenberg v24.1.0
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 +12691 -615 23.6.0 → 24.1.0 View file →
@@ -1,4 +1,5 @@
1 +(function() {
1 2 var wp;
2 3 (wp ||= {}).customizeWidgets = (() => {
3 4 var __create = Object.create;
4 5 var __defProp = Object.defineProperty;
@@ -72,15 +73,8 @@
72 73 module.exports = window.wp.preferences;
73 74 }
74 75 });
75 76
76 - // package-external:@wordpress/components
77 - var require_components = __commonJS({
78 - "package-external:@wordpress/components"(exports, module) {
79 - module.exports = window.wp.components;
80 - }
81 - });
82 -
83 77 // package-external:@wordpress/i18n
84 78 var require_i18n = __commonJS({
85 79 "package-external:@wordpress/i18n"(exports, module) {
86 80 module.exports = window.wp.i18n;
@@ -86,15 +80,184 @@
86 80 module.exports = window.wp.i18n;
87 81 }
88 82 });
89 83
90 - // package-external:@wordpress/block-editor
91 - var require_block_editor = __commonJS({
92 - "package-external:@wordpress/block-editor"(exports, module) {
93 - module.exports = window.wp.blockEditor;
84 + // vendor-external:react
85 + var require_react = __commonJS({
86 + "vendor-external:react"(exports, module) {
87 + module.exports = window.React;
94 88 }
95 89 });
96 90
91 + // vendor-external:react/jsx-runtime
92 + var require_jsx_runtime = __commonJS({
93 + "vendor-external:react/jsx-runtime"(exports, module) {
94 + module.exports = window.ReactJSXRuntime;
95 + }
96 + });
97 +
98 + // vendor-external:react-dom
99 + var require_react_dom = __commonJS({
100 + "vendor-external:react-dom"(exports, module) {
101 + module.exports = window.ReactDOM;
102 + }
103 + });
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 +
97 260 // package-external:@wordpress/compose
98 261 var require_compose = __commonJS({
99 262 "package-external:@wordpress/compose"(exports, module) {
100 263 module.exports = window.wp.compose;
@@ -100,8 +263,43 @@
100 263 module.exports = window.wp.compose;
101 264 }
102 265 });
103 266
267 + // package-external:@wordpress/theme
268 + var require_theme = __commonJS({
269 + "package-external:@wordpress/theme"(exports, module) {
270 + module.exports = window.wp.theme;
271 + }
272 + });
273 +
274 + // package-external:@wordpress/private-apis
275 + var require_private_apis = __commonJS({
276 + "package-external:@wordpress/private-apis"(exports, module) {
277 + module.exports = window.wp.privateApis;
278 + }
279 + });
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 +
295 + // package-external:@wordpress/components
296 + var require_components = __commonJS({
297 + "package-external:@wordpress/components"(exports, module) {
298 + module.exports = window.wp.components;
299 + }
300 + });
301 +
104 302 // package-external:@wordpress/hooks
105 303 var require_hooks = __commonJS({
106 304 "package-external:@wordpress/hooks"(exports, module) {
107 305 module.exports = window.wp.hooks;
@@ -107,15 +305,8 @@
107 305 module.exports = window.wp.hooks;
108 306 }
109 307 });
110 308
111 - // vendor-external:react/jsx-runtime
112 - var require_jsx_runtime = __commonJS({
113 - "vendor-external:react/jsx-runtime"(exports, module) {
114 - module.exports = window.ReactJSXRuntime;
115 - }
116 - });
117 -
118 309 // package-external:@wordpress/core-data
119 310 var require_core_data = __commonJS({
120 311 "package-external:@wordpress/core-data"(exports, module) {
121 312 module.exports = window.wp.coreData;
@@ -121,8 +312,15 @@
121 312 module.exports = window.wp.coreData;
122 313 }
123 314 });
124 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 +
125 323 // package-external:@wordpress/media-utils
126 324 var require_media_utils = __commonJS({
127 325 "package-external:@wordpress/media-utils"(exports, module) {
128 326 module.exports = window.wp.mediaUtils;
@@ -135,15 +333,8 @@
135 333 module.exports = window.wp.keycodes;
136 334 }
137 335 });
138 336
139 - // package-external:@wordpress/primitives
140 - var require_primitives = __commonJS({
141 - "package-external:@wordpress/primitives"(exports, module) {
142 - module.exports = window.wp.primitives;
143 - }
144 - });
145 -
146 337 // package-external:@wordpress/keyboard-shortcuts
147 338 var require_keyboard_shortcuts = __commonJS({
148 339 "package-external:@wordpress/keyboard-shortcuts"(exports, module) {
149 340 module.exports = window.wp.keyboardShortcuts;
@@ -149,22 +340,8 @@
149 340 module.exports = window.wp.keyboardShortcuts;
150 341 }
151 342 });
152 343
153 - // vendor-external:react
154 - var require_react = __commonJS({
155 - "vendor-external:react"(exports, module) {
156 - module.exports = window.React;
157 - }
158 - });
159 -
160 - // package-external:@wordpress/private-apis
161 - var require_private_apis = __commonJS({
162 - "package-external:@wordpress/private-apis"(exports, module) {
163 - module.exports = window.wp.privateApis;
164 - }
165 - });
166 -
167 344 // node_modules/fast-deep-equal/es6/index.js
168 345 var require_es6 = __commonJS({
169 346 "node_modules/fast-deep-equal/es6/index.js"(exports, module) {
170 347 "use strict";
@@ -239,102 +416,15 @@
239 416 __export(index_exports, {
240 417 initialize: () => initialize,
241 418 store: () => store
242 419 });
243 - var import_element18 = __toESM(require_element(), 1);
244 - var import_block_library2 = __toESM(require_block_library(), 1);
420 + var import_element60 = __toESM(require_element(), 1);
421 + var import_block_library = __toESM(require_block_library(), 1);
245 422 var import_widgets5 = __toESM(require_widgets(), 1);
246 423 var import_blocks2 = __toESM(require_blocks(), 1);
247 - var import_data17 = __toESM(require_data(), 1);
424 + var import_data18 = __toESM(require_data(), 1);
248 425 var import_preferences4 = __toESM(require_preferences(), 1);
249 426
250 - // packages/customize-widgets/build-module/components/customize-widgets/index.mjs
251 - var import_element17 = __toESM(require_element(), 1);
252 - var import_components8 = __toESM(require_components(), 1);
253 -
254 - // packages/customize-widgets/build-module/components/error-boundary/index.mjs
255 - var import_element = __toESM(require_element(), 1);
256 - var import_i18n = __toESM(require_i18n(), 1);
257 - var import_components = __toESM(require_components(), 1);
258 - var import_block_editor = __toESM(require_block_editor(), 1);
259 - var import_compose = __toESM(require_compose(), 1);
260 - var import_hooks = __toESM(require_hooks(), 1);
261 - var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
262 - function CopyButton({ text, children }) {
263 - const ref = (0, import_compose.useCopyToClipboard)(text);
264 - return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Button, { size: "compact", variant: "secondary", ref, children });
265 - }
266 - var ErrorBoundary = class extends import_element.Component {
267 - constructor() {
268 - super(...arguments);
269 - this.state = {
270 - error: null
271 - };
272 - }
273 - componentDidCatch(error) {
274 - this.setState({ error });
275 - (0, import_hooks.doAction)("editor.ErrorBoundary.errorLogged", error);
276 - }
277 - render() {
278 - const { error } = this.state;
279 - if (!error) {
280 - return this.props.children;
281 - }
282 - return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
283 - import_block_editor.Warning,
284 - {
285 - className: "customize-widgets-error-boundary",
286 - actions: [
287 - /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CopyButton, { text: error.stack, children: (0, import_i18n.__)("Copy Error") }, "copy-error")
288 - ],
289 - children: (0, import_i18n.__)("The editor has encountered an unexpected error.")
290 - }
291 - );
292 - }
293 - };
294 -
295 - // packages/customize-widgets/build-module/components/sidebar-block-editor/index.mjs
296 - var import_compose3 = __toESM(require_compose(), 1);
297 - var import_core_data = __toESM(require_core_data(), 1);
298 - var import_data12 = __toESM(require_data(), 1);
299 - var import_element14 = __toESM(require_element(), 1);
300 - var import_block_editor8 = __toESM(require_block_editor(), 1);
301 - var import_media_utils = __toESM(require_media_utils(), 1);
302 - var import_preferences3 = __toESM(require_preferences(), 1);
303 - var import_block_library = __toESM(require_block_library(), 1);
304 -
305 - // packages/customize-widgets/build-module/components/block-inspector-button/index.mjs
306 - var import_element2 = __toESM(require_element(), 1);
307 - var import_i18n2 = __toESM(require_i18n(), 1);
308 - var import_components2 = __toESM(require_components(), 1);
309 - var import_data = __toESM(require_data(), 1);
310 - var import_block_editor2 = __toESM(require_block_editor(), 1);
311 - var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
312 - function BlockInspectorButton({ inspector, closeMenu, ...props }) {
313 - const selectedBlockClientId = (0, import_data.useSelect)(
314 - (select) => select(import_block_editor2.store).getSelectedBlockClientId(),
315 - []
316 - );
317 - const selectedBlock = (0, import_element2.useMemo)(
318 - () => document.getElementById(`block-${selectedBlockClientId}`),
319 - [selectedBlockClientId]
320 - );
321 - return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
322 - import_components2.MenuItem,
323 - {
324 - onClick: () => {
325 - inspector.open({
326 - returnFocusWhenClose: selectedBlock
327 - });
328 - closeMenu();
329 - },
330 - ...props,
331 - children: (0, import_i18n2.__)("Show more settings")
332 - }
333 - );
334 - }
335 - var block_inspector_button_default = BlockInspectorButton;
336 -
337 427 // node_modules/clsx/dist/clsx.mjs
338 428 function r(e) {
339 429 var t, f, n = "";
340 430 if ("string" == typeof e || "number" == typeof e) n += e;
@@ -349,176 +439,109 @@
349 439 return n;
350 440 }
351 441 var clsx_default = clsx;
352 442
353 - // packages/customize-widgets/build-module/components/header/index.mjs
354 - var import_components6 = __toESM(require_components(), 1);
355 - var import_block_editor4 = __toESM(require_block_editor(), 1);
356 - var import_element7 = __toESM(require_element(), 1);
357 - var import_keycodes3 = __toESM(require_keycodes(), 1);
358 - var import_i18n7 = __toESM(require_i18n(), 1);
443 + // node_modules/@base-ui/utils/useControlled.mjs
444 + var React = __toESM(require_react(), 1);
359 445
360 - // packages/icons/build-module/library/close-small.mjs
361 - var import_primitives = __toESM(require_primitives(), 1);
362 - var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
363 - var close_small_default = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime3.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" }) });
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 + }
364 468
365 - // packages/icons/build-module/library/external.mjs
366 - var import_primitives2 = __toESM(require_primitives(), 1);
367 - var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
368 - var external_default = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime4.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" }) });
469 + // node_modules/@base-ui/utils/error.mjs
470 + var error = createLogOnce("error", "Base UI");
369 471
370 - // packages/icons/build-module/library/more-vertical.mjs
371 - var import_primitives3 = __toESM(require_primitives(), 1);
372 - var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
373 - var more_vertical_default = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives3.Path, { d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z" }) });
374 -
375 - // packages/icons/build-module/library/plus.mjs
376 - var import_primitives4 = __toESM(require_primitives(), 1);
377 - var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
378 - var plus_default = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives4.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives4.Path, { d: "M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z" }) });
379 -
380 - // packages/icons/build-module/library/redo.mjs
381 - var import_primitives5 = __toESM(require_primitives(), 1);
382 - var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1);
383 - var redo_default = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives5.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime7.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" }) });
384 -
385 - // packages/icons/build-module/library/undo.mjs
386 - var import_primitives6 = __toESM(require_primitives(), 1);
387 - var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
388 - var undo_default = /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_primitives6.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime8.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" }) });
389 -
390 - // packages/customize-widgets/build-module/components/inserter/index.mjs
391 - var import_i18n3 = __toESM(require_i18n(), 1);
392 - var import_block_editor3 = __toESM(require_block_editor(), 1);
393 - var import_components3 = __toESM(require_components(), 1);
394 - var import_compose2 = __toESM(require_compose(), 1);
395 - var import_data4 = __toESM(require_data(), 1);
396 -
397 - // packages/customize-widgets/build-module/store/index.mjs
398 - var import_data3 = __toESM(require_data(), 1);
399 -
400 - // packages/customize-widgets/build-module/store/reducer.mjs
401 - var import_data2 = __toESM(require_data(), 1);
402 - function blockInserterPanel(state = false, action) {
403 - switch (action.type) {
404 - case "SET_IS_INSERTER_OPENED":
405 - return action.value;
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]);
406 498 }
407 - return state;
499 + const setValueIfUncontrolled = React.useCallback((newValue) => {
500 + if (!isControlled) {
501 + setValue(newValue);
502 + }
503 + }, []);
504 + return [value, setValueIfUncontrolled];
408 505 }
409 - var reducer_default = (0, import_data2.combineReducers)({
410 - blockInserterPanel
411 - });
412 -
413 - // packages/customize-widgets/build-module/store/selectors.mjs
414 - var selectors_exports = {};
415 - __export(selectors_exports, {
416 - __experimentalGetInsertionPoint: () => __experimentalGetInsertionPoint,
417 - isInserterOpened: () => isInserterOpened
418 - });
419 - var EMPTY_INSERTION_POINT = {
420 - rootClientId: void 0,
421 - insertionIndex: void 0
422 - };
423 - function isInserterOpened(state) {
424 - return !!state.blockInserterPanel;
425 - }
426 - function __experimentalGetInsertionPoint(state) {
427 - if (typeof state.blockInserterPanel === "boolean") {
428 - return EMPTY_INSERTION_POINT;
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__";
429 530 }
430 - return state.blockInserterPanel;
431 531 }
432 532
433 - // packages/customize-widgets/build-module/store/actions.mjs
434 - var actions_exports = {};
435 - __export(actions_exports, {
436 - setIsInserterOpened: () => setIsInserterOpened
437 - });
438 - function setIsInserterOpened(value) {
439 - return {
440 - type: "SET_IS_INSERTER_OPENED",
441 - value
442 - };
443 - }
444 -
445 - // packages/customize-widgets/build-module/store/constants.mjs
446 - var STORE_NAME = "core/customize-widgets";
447 -
448 - // packages/customize-widgets/build-module/store/index.mjs
449 - var storeConfig = {
450 - reducer: reducer_default,
451 - selectors: selectors_exports,
452 - actions: actions_exports
533 + // node_modules/@base-ui/utils/safeReact.mjs
534 + var React2 = __toESM(require_react(), 1);
535 + var SafeReact = {
536 + ...React2
453 537 };
454 - var store = (0, import_data3.createReduxStore)(STORE_NAME, storeConfig);
455 - (0, import_data3.register)(store);
456 538
457 - // packages/customize-widgets/build-module/components/inserter/index.mjs
458 - var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
459 - function Inserter({ setIsOpened }) {
460 - const inserterTitleId = (0, import_compose2.useInstanceId)(
461 - Inserter,
462 - "customize-widget-layout__inserter-panel-title"
463 - );
464 - const insertionPoint = (0, import_data4.useSelect)(
465 - (select) => select(store).__experimentalGetInsertionPoint(),
466 - []
467 - );
468 - return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
469 - "div",
470 - {
471 - className: "customize-widgets-layout__inserter-panel",
472 - "aria-labelledby": inserterTitleId,
473 - children: [
474 - /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "customize-widgets-layout__inserter-panel-header", children: [
475 - /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
476 - "h2",
477 - {
478 - id: inserterTitleId,
479 - className: "customize-widgets-layout__inserter-panel-header-title",
480 - children: (0, import_i18n3.__)("Add a block")
481 - }
482 - ),
483 - /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
484 - import_components3.Button,
485 - {
486 - size: "small",
487 - icon: close_small_default,
488 - onClick: () => setIsOpened(false),
489 - "aria-label": (0, import_i18n3.__)("Close inserter")
490 - }
491 - )
492 - ] }),
493 - /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "customize-widgets-layout__inserter-panel-content", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
494 - import_block_editor3.__experimentalLibrary,
495 - {
496 - rootClientId: insertionPoint.rootClientId,
497 - __experimentalInsertionIndex: insertionPoint.insertionIndex,
498 - showInserterHelpPanel: true,
499 - onSelect: () => setIsOpened(false)
500 - }
501 - ) })
502 - ]
503 - }
504 - );
505 - }
506 - var inserter_default = Inserter;
507 -
508 - // packages/customize-widgets/build-module/components/more-menu/index.mjs
509 - var import_components5 = __toESM(require_components(), 1);
510 - var import_element6 = __toESM(require_element(), 1);
511 - var import_i18n6 = __toESM(require_i18n(), 1);
512 - var import_keycodes2 = __toESM(require_keycodes(), 1);
513 - var import_keyboard_shortcuts3 = __toESM(require_keyboard_shortcuts(), 1);
514 - var import_preferences = __toESM(require_preferences(), 1);
515 -
516 539 // node_modules/@base-ui/utils/useRefWithInit.mjs
517 - var React = __toESM(require_react(), 1);
540 + var React3 = __toESM(require_react(), 1);
518 541 var UNINITIALIZED = {};
519 542 function useRefWithInit(init, initArg) {
520 - const ref = React.useRef(UNINITIALIZED);
543 + const ref = React3.useRef(UNINITIALIZED);
521 544 if (ref.current === UNINITIALIZED) {
522 545 ref.current = init(initArg);
523 546 }
524 547 return ref;
@@ -523,25 +546,58 @@
523 546 }
524 547 return ref;
525 548 }
526 549
527 - // node_modules/@base-ui/utils/warn.mjs
528 - var set;
529 - if (true) {
530 - 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;
531 562 }
532 - 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() {
533 575 if (true) {
534 - const messageKey = messages.join(" ");
535 - if (!set.has(messageKey)) {
536 - set.add(messageKey);
537 - console.warn(`Base UI: ${messageKey}`);
538 - }
576 + throw (
577 + /* minify-error-disabled */
578 + new Error("Base UI: Cannot call an event handler while rendering.")
579 + );
539 580 }
540 581 }
541 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 +
542 598 // node_modules/@base-ui/react/internals/useRenderElement.mjs
543 - var React4 = __toESM(require_react(), 1);
599 + var React7 = __toESM(require_react(), 1);
544 600
545 601 // node_modules/@base-ui/utils/useMergedRefs.mjs
546 602 function useMergedRefs(a, b, c, d) {
547 603 const forkRef = useRefWithInit(createForkRef).current;
@@ -567,9 +623,9 @@
567 623 function didChange(forkRef, a, b, c, d) {
568 624 return forkRef.refs[0] !== a || forkRef.refs[1] !== b || forkRef.refs[2] !== c || forkRef.refs[3] !== d;
569 625 }
570 626 function didChangeN(forkRef, newRefs) {
571 - 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]);
572 628 }
573 629 function update(forkRef, refs) {
574 630 forkRef.refs = refs;
575 631 if (refs.every((ref) => ref == null)) {
@@ -614,9 +670,9 @@
614 670 const cleanupCallback = cleanupCallbacks[i];
615 671 if (typeof cleanupCallback === "function") {
616 672 cleanupCallback();
617 673 } else {
618 - ref(null);
674 + void ref(null);
619 675 }
620 676 break;
621 677 }
622 678 case "object": {
@@ -631,13 +687,13 @@
631 687 };
632 688 }
633 689
634 690 // node_modules/@base-ui/utils/getReactElementRef.mjs
635 - var React3 = __toESM(require_react(), 1);
691 + var React6 = __toESM(require_react(), 1);
636 692
637 693 // node_modules/@base-ui/utils/reactVersion.mjs
638 - var React2 = __toESM(require_react(), 1);
639 - var majorVersion = parseInt(React2.version, 10);
694 + var React5 = __toESM(require_react(), 1);
695 + var majorVersion = parseInt(React5.version, 10);
640 696 function isReactVersionAtLeast(reactVersionToCheck) {
641 697 return majorVersion >= reactVersionToCheck;
642 698 }
643 699
@@ -642,9 +698,9 @@
642 698 }
643 699
644 700 // node_modules/@base-ui/utils/getReactElementRef.mjs
645 701 function getReactElementRef(element) {
646 - if (!/* @__PURE__ */ React3.isValidElement(element)) {
702 + if (!/* @__PURE__ */ React6.isValidElement(element)) {
647 703 return null;
648 704 }
649 705 const reactElement = element;
650 706 const propsWithRef = reactElement.props;
@@ -667,12 +723,8 @@
667 723 }
668 724 return void 0;
669 725 }
670 726
671 - // node_modules/@base-ui/utils/empty.mjs
672 - var EMPTY_ARRAY = Object.freeze([]);
673 - var EMPTY_OBJECT = Object.freeze({});
674 -
675 727 // node_modules/@base-ui/react/internals/getStateAttributesProps.mjs
676 728 function getStateAttributesProps(state, customMapping) {
677 729 const props = {};
678 730 for (const key in state) {
@@ -860,10 +912,13 @@
860 912
861 913 // node_modules/@base-ui/react/internals/useRenderElement.mjs
862 914 var import_react = __toESM(require_react(), 1);
863 915 function useRenderElement(element, componentProps, params = {}) {
864 - const renderProp = componentProps.render;
865 - 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);
866 921 if (params.enabled === false) {
867 922 return null;
868 923 }
869 924 const state = params.state ?? EMPTY_OBJECT;
@@ -868,29 +923,28 @@
868 923 }
869 924 const state = params.state ?? EMPTY_OBJECT;
870 925 return evaluateRenderProp(element, renderProp, outProps, state);
871 926 }
872 - function useRenderElementProps(componentProps, params = {}) {
927 + function useRenderElementProps(componentProps, params, renderProp) {
873 928 const {
874 929 className: classNameProp,
875 - style: styleProp,
876 - render: renderProp
930 + style: styleProp
877 931 } = componentProps;
878 932 const {
879 933 state = EMPTY_OBJECT,
880 934 ref,
881 935 props,
882 - stateAttributesMapping,
936 + stateAttributesMapping: stateAttributesMapping2,
883 937 enabled = true
884 938 } = params;
885 939 const className = enabled ? resolveClassName(classNameProp, state) : void 0;
886 940 const style = enabled ? resolveStyle(styleProp, state) : void 0;
887 - const stateProps = enabled ? getStateAttributesProps(state, stateAttributesMapping) : EMPTY_OBJECT;
941 + const stateProps = enabled ? getStateAttributesProps(state, stateAttributesMapping2) : EMPTY_OBJECT;
888 942 const resolvedProps = enabled && props ? resolveRenderFunctionProps(props) : void 0;
889 943 const outProps = enabled ? mergeObjects(stateProps, resolvedProps) ?? {} : EMPTY_OBJECT;
890 944 if (typeof document !== "undefined") {
891 945 if (!enabled) {
892 - useMergedRefs(null, null);
946 + void useMergedRefs(null, null);
893 947 } else if (Array.isArray(ref)) {
894 948 outProps.ref = useMergedRefsN([outProps.ref, getReactElementRef(renderProp), ...ref]);
895 949 } else {
896 950 outProps.ref = useMergedRefs(outProps.ref, getReactElementRef(renderProp), ref);
@@ -915,8 +969,15 @@
915 969 }
916 970 var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
917 971 var COMPONENT_IDENTIFIER_PATTERN = /^[A-Z][A-Za-z0-9$]*$/;
918 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 + }
919 980 function evaluateRenderProp(element, render, props, state) {
920 981 if (render) {
921 982 if (typeof render === "function") {
922 983 if (true) {
@@ -925,19 +986,14 @@
925 986 return render(props, state);
926 987 }
927 988 const mergedProps = mergeProps(props, render.props);
928 989 mergedProps.ref = props.ref;
929 - let newElement = render;
930 - if (newElement?.$$typeof === REACT_LAZY_TYPE) {
931 - const children = React4.Children.toArray(render);
932 - newElement = children[0];
933 - }
934 990 if (true) {
935 - if (!/* @__PURE__ */ React4.isValidElement(newElement)) {
991 + if (!/* @__PURE__ */ React7.isValidElement(render)) {
936 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"));
937 993 }
938 994 }
939 - return /* @__PURE__ */ React4.cloneElement(newElement, mergedProps);
995 + return /* @__PURE__ */ React7.cloneElement(render, mergedProps);
940 996 }
941 997 if (element) {
942 998 if (typeof element === "string") {
943 999 return renderTag(element, props);
@@ -972,18 +1028,8603 @@
972 1028 ...props,
973 1029 key: props.key
974 1030 });
975 1031 }
976 - return /* @__PURE__ */ React4.createElement(Tag, props);
1032 + return /* @__PURE__ */ React7.createElement(Tag, props);
977 1033 }
978 1034
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;
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 + }
1057 +
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
2619 + var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
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 + }
2775 +
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
2814 + var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
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";
2837 +
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
3184 + var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
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";
3349 +
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
3373 + var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
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 + };
3383 +
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
8185 + var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
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";
8226 +
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);
8552 + var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
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";
8566 +
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 +
979 9620 // node_modules/@base-ui/react/use-render/useRender.mjs
980 9621 function useRender(params) {
981 9622 return useRenderElement(params.defaultTagName ?? "div", params, params);
982 9623 }
983 9624
984 - // packages/ui/build-module/visually-hidden/visually-hidden.mjs
985 - var import_element3 = __toESM(require_element(), 1);
9625 + // packages/ui/build-module/text/text.mjs
9626 + var import_element10 = __toESM(require_element(), 1);
986 9627 var STYLE_HASH_ATTRIBUTE = "data-wp-hash";
987 9628 function getRuntime() {
988 9629 const globalScope = globalThis;
989 9630 if (globalScope.__wpStyleRuntime) {
@@ -1063,18 +9704,791 @@
1063 9704 injectStyle(targetDocument, hash, css);
1064 9705 }
1065 9706 }
1066 9707 if (typeof process === "undefined" || true) {
1067 - 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)}}}');
1068 9709 }
1069 - var style_default = { "visually-hidden": "f37b9e2e191ebd66__visually-hidden" };
1070 - var VisuallyHidden = (0, import_element3.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)(
1071 10485 function VisuallyHidden2({ render, ...restProps }, ref) {
1072 10486 const element = useRender({
1073 10487 render,
1074 10488 ref,
1075 10489 props: mergeProps(
1076 - { className: style_default["visually-hidden"] },
10490 + { className: style_default5["visually-hidden"] },
1077 10491 restProps,
1078 10492 {
1079 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.
1080 10494 "data-visually-hidden": ""
@@ -1084,49 +10498,2663 @@
1084 10498 return element;
1085 10499 }
1086 10500 );
1087 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 +
12776 + // packages/admin-ui/build-module/admin-theme-colors/index.mjs
12777 + var DEFAULT_THEME_COLORS = {
12778 + primary: "#3858e9",
12779 + background: "#222524"
12780 + };
12781 + var ADMIN_THEME_COLORS = /* @__PURE__ */ new Map([
12782 + ["modern", DEFAULT_THEME_COLORS],
12783 + ["fresh", { primary: "#007cba", background: "#25292b" }],
12784 + ["midnight", { primary: "#cf4339", background: "#3d4042" }],
12785 + ["coffee", { primary: "#916745", background: "#5b534d" }],
12786 + ["ocean", { primary: "#567958", background: "#5f787f" }],
12787 + ["blue", { primary: "#437aa8", background: "#3876a8" }],
12788 + ["ectoplasm", { primary: "#646c3e", background: "#4f386e" }],
12789 + ["sunrise", { primary: "#ad631e", background: "#cc4541" }],
12790 + ["light", { primary: "#007cba", background: "#eaeeed" }]
12791 + ]);
12792 + function getAdminThemeColors() {
12793 + const scheme = document.body.className.match(/admin-color-([\w-]+)/)?.[1] ?? "modern";
12794 + return ADMIN_THEME_COLORS.get(scheme) ?? DEFAULT_THEME_COLORS;
12795 + }
12796 +
12797 + // packages/customize-widgets/build-module/components/customize-widgets/index.mjs
12798 + var import_element59 = __toESM(require_element(), 1);
12799 + var import_components7 = __toESM(require_components(), 1);
12800 + var import_theme = __toESM(require_theme(), 1);
12801 +
12802 + // packages/customize-widgets/build-module/components/error-boundary/index.mjs
12803 + var import_element44 = __toESM(require_element(), 1);
12804 + var import_i18n6 = __toESM(require_i18n(), 1);
12805 + var import_compose2 = __toESM(require_compose(), 1);
12806 + var import_hooks = __toESM(require_hooks(), 1);
12807 + var import_jsx_runtime50 = __toESM(require_jsx_runtime(), 1);
12808 + function getErrorName(error2) {
12809 + return error2 instanceof Error && error2.name || "Error";
12810 + }
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 {
12888 + constructor() {
12889 + super(...arguments);
12890 + this.state = {
12891 + error: null,
12892 + componentStack: null
12893 + };
12894 + }
12895 + componentDidCatch(error2, errorInfo) {
12896 + this.setState({ componentStack: errorInfo?.componentStack });
12897 + (0, import_hooks.doAction)("editor.ErrorBoundary.errorLogged", error2, errorInfo);
12898 + }
12899 + static getDerivedStateFromError(error2) {
12900 + return { error: error2 };
12901 + }
12902 + render() {
12903 + const { error: error2, componentStack } = this.state;
12904 + if (!error2) {
12905 + return this.props.children;
12906 + }
12907 + return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
12908 + Stack,
12909 + {
12910 + className: "customize-widgets-error-boundary",
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 + ]
12936 + }
12937 + );
12938 + }
12939 + };
12940 +
12941 + // packages/customize-widgets/build-module/components/sidebar-block-editor/index.mjs
12942 + var import_compose4 = __toESM(require_compose(), 1);
12943 + var import_core_data = __toESM(require_core_data(), 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);
12947 + var import_media_utils = __toESM(require_media_utils(), 1);
12948 + var import_preferences3 = __toESM(require_preferences(), 1);
12949 +
12950 + // packages/customize-widgets/build-module/components/block-inspector-button/index.mjs
12951 + var import_element45 = __toESM(require_element(), 1);
12952 + var import_i18n7 = __toESM(require_i18n(), 1);
12953 + var import_components = __toESM(require_components(), 1);
12954 + var import_data = __toESM(require_data(), 1);
12955 + var import_block_editor = __toESM(require_block_editor(), 1);
12956 + var import_jsx_runtime51 = __toESM(require_jsx_runtime(), 1);
12957 + function BlockInspectorButton({ inspector, closeMenu, ...props }) {
12958 + const selectedBlockClientId = (0, import_data.useSelect)(
12959 + (select) => select(import_block_editor.store).getSelectedBlockClientId(),
12960 + []
12961 + );
12962 + const selectedBlock = (0, import_element45.useMemo)(
12963 + () => document.getElementById(`block-${selectedBlockClientId}`),
12964 + [selectedBlockClientId]
12965 + );
12966 + return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
12967 + import_components.MenuItem,
12968 + {
12969 + onClick: () => {
12970 + inspector.open({
12971 + returnFocusWhenClose: selectedBlock
12972 + });
12973 + closeMenu();
12974 + },
12975 + ...props,
12976 + children: (0, import_i18n7.__)("Show more settings")
12977 + }
12978 + );
12979 + }
12980 + var block_inspector_button_default = BlockInspectorButton;
12981 +
12982 + // packages/customize-widgets/build-module/components/header/index.mjs
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);
12986 + var import_keycodes3 = __toESM(require_keycodes(), 1);
12987 + var import_i18n12 = __toESM(require_i18n(), 1);
12988 +
12989 + // packages/customize-widgets/build-module/components/inserter/index.mjs
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);
12994 + var import_data4 = __toESM(require_data(), 1);
12995 +
12996 + // packages/customize-widgets/build-module/store/index.mjs
12997 + var import_data3 = __toESM(require_data(), 1);
12998 +
12999 + // packages/customize-widgets/build-module/store/reducer.mjs
13000 + var import_data2 = __toESM(require_data(), 1);
13001 + function blockInserterPanel(state = false, action) {
13002 + switch (action.type) {
13003 + case "SET_IS_INSERTER_OPENED":
13004 + return action.value;
13005 + }
13006 + return state;
13007 + }
13008 + var reducer_default = (0, import_data2.combineReducers)({
13009 + blockInserterPanel
13010 + });
13011 +
13012 + // packages/customize-widgets/build-module/store/selectors.mjs
13013 + var selectors_exports = {};
13014 + __export(selectors_exports, {
13015 + __experimentalGetInsertionPoint: () => __experimentalGetInsertionPoint,
13016 + isInserterOpened: () => isInserterOpened
13017 + });
13018 + var EMPTY_INSERTION_POINT = {
13019 + rootClientId: void 0,
13020 + insertionIndex: void 0
13021 + };
13022 + function isInserterOpened(state) {
13023 + return !!state.blockInserterPanel;
13024 + }
13025 + function __experimentalGetInsertionPoint(state) {
13026 + if (typeof state.blockInserterPanel === "boolean") {
13027 + return EMPTY_INSERTION_POINT;
13028 + }
13029 + return state.blockInserterPanel;
13030 + }
13031 +
13032 + // packages/customize-widgets/build-module/store/actions.mjs
13033 + var actions_exports = {};
13034 + __export(actions_exports, {
13035 + setIsInserterOpened: () => setIsInserterOpened
13036 + });
13037 + function setIsInserterOpened(value) {
13038 + return {
13039 + type: "SET_IS_INSERTER_OPENED",
13040 + value
13041 + };
13042 + }
13043 +
13044 + // packages/customize-widgets/build-module/store/constants.mjs
13045 + var STORE_NAME = "core/customize-widgets";
13046 +
13047 + // packages/customize-widgets/build-module/store/index.mjs
13048 + var storeConfig = {
13049 + reducer: reducer_default,
13050 + selectors: selectors_exports,
13051 + actions: actions_exports
13052 + };
13053 + var store = (0, import_data3.createReduxStore)(STORE_NAME, storeConfig);
13054 + (0, import_data3.register)(store);
13055 +
13056 + // packages/customize-widgets/build-module/components/inserter/index.mjs
13057 + var import_jsx_runtime52 = __toESM(require_jsx_runtime(), 1);
13058 + function Inserter({ setIsOpened }) {
13059 + const inserterTitleId = (0, import_compose3.useInstanceId)(
13060 + Inserter,
13061 + "customize-widget-layout__inserter-panel-title"
13062 + );
13063 + const insertionPoint = (0, import_data4.useSelect)(
13064 + (select) => select(store).__experimentalGetInsertionPoint(),
13065 + []
13066 + );
13067 + return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
13068 + "div",
13069 + {
13070 + className: "customize-widgets-layout__inserter-panel",
13071 + "aria-labelledby": inserterTitleId,
13072 + children: [
13073 + /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "customize-widgets-layout__inserter-panel-header", children: [
13074 + /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
13075 + "h2",
13076 + {
13077 + id: inserterTitleId,
13078 + className: "customize-widgets-layout__inserter-panel-header-title",
13079 + children: (0, import_i18n8.__)("Add a block")
13080 + }
13081 + ),
13082 + /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
13083 + import_components2.Button,
13084 + {
13085 + size: "small",
13086 + icon: close_small_default,
13087 + onClick: () => setIsOpened(false),
13088 + "aria-label": (0, import_i18n8.__)("Close inserter")
13089 + }
13090 + )
13091 + ] }),
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,
13094 + {
13095 + rootClientId: insertionPoint.rootClientId,
13096 + __experimentalInsertionIndex: insertionPoint.insertionIndex,
13097 + showInserterHelpPanel: true,
13098 + onSelect: () => setIsOpened(false)
13099 + }
13100 + ) })
13101 + ]
13102 + }
13103 + );
13104 + }
13105 + var inserter_default = Inserter;
13106 +
13107 + // packages/customize-widgets/build-module/components/more-menu/index.mjs
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);
13112 + var import_keycodes2 = __toESM(require_keycodes(), 1);
13113 + var import_keyboard_shortcuts3 = __toESM(require_keyboard_shortcuts(), 1);
13114 + var import_preferences = __toESM(require_preferences(), 1);
13115 +
1088 13116 // packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/index.mjs
1089 - var import_components4 = __toESM(require_components(), 1);
1090 - var import_i18n5 = __toESM(require_i18n(), 1);
13117 + var import_components3 = __toESM(require_components(), 1);
13118 + var import_i18n10 = __toESM(require_i18n(), 1);
1091 13119 var import_keyboard_shortcuts2 = __toESM(require_keyboard_shortcuts(), 1);
1092 13120 var import_data6 = __toESM(require_data(), 1);
1093 - var import_element5 = __toESM(require_element(), 1);
13121 + var import_element47 = __toESM(require_element(), 1);
1094 13122
1095 13123 // packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/config.mjs
1096 - var import_i18n4 = __toESM(require_i18n(), 1);
13124 + var import_i18n9 = __toESM(require_i18n(), 1);
1097 13125 var textFormattingShortcuts = [
1098 13126 {
1099 13127 keyCombination: { modifier: "primary", character: "b" },
1100 - description: (0, import_i18n4.__)("Make the selected text bold.")
13128 + description: (0, import_i18n9.__)("Make the selected text bold.")
1101 13129 },
1102 13130 {
1103 13131 keyCombination: { modifier: "primary", character: "i" },
1104 - description: (0, import_i18n4.__)("Make the selected text italic.")
13132 + description: (0, import_i18n9.__)("Make the selected text italic.")
1105 13133 },
1106 13134 {
1107 13135 keyCombination: { modifier: "primary", character: "k" },
1108 - description: (0, import_i18n4.__)("Convert the selected text into a link.")
13136 + description: (0, import_i18n9.__)("Convert the selected text into a link.")
1109 13137 },
1110 13138 {
1111 13139 keyCombination: { modifier: "primaryShift", character: "k" },
1112 - description: (0, import_i18n4.__)("Remove a link.")
13140 + description: (0, import_i18n9.__)("Remove a link.")
1113 13141 },
1114 13142 {
1115 13143 keyCombination: { character: "[[" },
1116 - 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.")
1117 13145 },
1118 13146 {
1119 13147 keyCombination: { modifier: "primary", character: "u" },
1120 - description: (0, import_i18n4.__)("Underline the selected text.")
13148 + description: (0, import_i18n9.__)("Underline the selected text.")
1121 13149 },
1122 13150 {
1123 13151 keyCombination: { modifier: "access", character: "d" },
1124 - description: (0, import_i18n4.__)("Strikethrough the selected text.")
13152 + description: (0, import_i18n9.__)("Strikethrough the selected text.")
1125 13153 },
1126 13154 {
1127 13155 keyCombination: { modifier: "access", character: "x" },
1128 - description: (0, import_i18n4.__)("Make the selected text inline code.")
13156 + description: (0, import_i18n9.__)("Make the selected text inline code.")
1129 13157 },
1130 13158 {
1131 13159 keyCombination: {
1132 13160 modifier: "access",
@@ -1137,26 +13165,26 @@
1137 13165 modifier: "access",
1138 13166 character: "7"
1139 13167 }
1140 13168 ],
1141 - description: (0, import_i18n4.__)("Convert the current heading to a paragraph.")
13169 + description: (0, import_i18n9.__)("Convert the current heading to a paragraph.")
1142 13170 },
1143 13171 {
1144 13172 keyCombination: { modifier: "access", character: "1-6" },
1145 - description: (0, import_i18n4.__)(
13173 + description: (0, import_i18n9.__)(
1146 13174 "Convert the current paragraph or heading to a heading of level 1 to 6."
1147 13175 )
1148 13176 },
1149 13177 {
1150 13178 keyCombination: { modifier: "primaryShift", character: "SPACE" },
1151 - description: (0, import_i18n4.__)("Add non breaking space.")
13179 + description: (0, import_i18n9.__)("Add non breaking space.")
1152 13180 }
1153 13181 ];
1154 13182
1155 13183 // packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/shortcut.mjs
1156 - var import_element4 = __toESM(require_element(), 1);
13184 + var import_element46 = __toESM(require_element(), 1);
1157 13185 var import_keycodes = __toESM(require_keycodes(), 1);
1158 - var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1);
13186 + var import_jsx_runtime53 = __toESM(require_jsx_runtime(), 1);
1159 13187 function KeyCombination({ keyCombination, forceAriaLabel }) {
1160 13188 const shortcut = keyCombination.modifier ? import_keycodes.displayShortcutList[keyCombination.modifier](
1161 13189 keyCombination.character
1162 13190 ) : keyCombination.character;
@@ -1162,25 +13190,25 @@
1162 13190 ) : keyCombination.character;
1163 13191 const ariaLabel = keyCombination.modifier ? import_keycodes.shortcutAriaLabel[keyCombination.modifier](
1164 13192 keyCombination.character
1165 13193 ) : keyCombination.character;
1166 - return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
13194 + return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
1167 13195 "kbd",
1168 13196 {
1169 13197 className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination",
1170 13198 "aria-label": forceAriaLabel || ariaLabel,
1171 13199 children: (Array.isArray(shortcut) ? shortcut : [shortcut]).map(
1172 - (character, index) => {
13200 + (character, index2) => {
1173 13201 if (character === "+") {
1174 - 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);
1175 13203 }
1176 - return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
13204 + return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
1177 13205 "kbd",
1178 13206 {
1179 13207 className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key",
1180 13208 children: character
1181 13209 },
1182 - index
13210 + index2
1183 13211 );
1184 13212 }
1185 13213 )
1186 13214 }
@@ -1186,12 +13214,12 @@
1186 13214 }
1187 13215 );
1188 13216 }
1189 13217 function Shortcut({ description, keyCombination, aliases = [], ariaLabel }) {
1190 - return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [
1191 - /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-description", children: description }),
1192 - /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-term", children: [
1193 - /* @__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)(
1194 13222 KeyCombination,
1195 13223 {
1196 13224 keyCombination,
1197 13225 forceAriaLabel: ariaLabel
@@ -1196,15 +13224,15 @@
1196 13224 keyCombination,
1197 13225 forceAriaLabel: ariaLabel
1198 13226 }
1199 13227 ),
1200 - aliases.map((alias, index) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
13228 + aliases.map((alias, index2) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
1201 13229 KeyCombination,
1202 13230 {
1203 13231 keyCombination: alias,
1204 13232 forceAriaLabel: ariaLabel
1205 13233 },
1206 - index
13234 + index2
1207 13235 ))
1208 13236 ] })
1209 13237 ] });
1210 13238 }
@@ -1212,9 +13240,9 @@
1212 13240
1213 13241 // packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.mjs
1214 13242 var import_data5 = __toESM(require_data(), 1);
1215 13243 var import_keyboard_shortcuts = __toESM(require_keyboard_shortcuts(), 1);
1216 - var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1);
13244 + var import_jsx_runtime54 = __toESM(require_jsx_runtime(), 1);
1217 13245 function DynamicShortcut({ name }) {
1218 13246 const { keyCombination, description, aliases } = (0, import_data5.useSelect)(
1219 13247 (select) => {
1220 13248 const {
@@ -1232,9 +13260,9 @@
1232 13260 );
1233 13261 if (!keyCombination) {
1234 13262 return null;
1235 13263 }
1236 - return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
13264 + return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
1237 13265 shortcut_default,
1238 13266 {
1239 13267 keyCombination,
1240 13268 description,
@@ -1244,9 +13272,9 @@
1244 13272 }
1245 13273 var dynamic_shortcut_default = DynamicShortcut;
1246 13274
1247 13275 // packages/customize-widgets/build-module/components/keyboard-shortcut-help-modal/index.mjs
1248 - var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1);
13276 + var import_jsx_runtime55 = __toESM(require_jsx_runtime(), 1);
1249 13277 var ShortcutList = ({ shortcuts }) => (
1250 13278 /*
1251 13279 * Disable reason: The `list` ARIA role is redundant but
1252 13280 * Safari+VoiceOver won't announce the list otherwise.
@@ -1251,25 +13279,25 @@
1251 13279 * Disable reason: The `list` ARIA role is redundant but
1252 13280 * Safari+VoiceOver won't announce the list otherwise.
1253 13281 */
1254 13282 /* eslint-disable jsx-a11y/no-redundant-roles */
1255 - /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13283 + /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1256 13284 "ul",
1257 13285 {
1258 13286 className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-list",
1259 13287 role: "list",
1260 - children: shortcuts.map((shortcut, index) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13288 + children: shortcuts.map((shortcut, index2) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1261 13289 "li",
1262 13290 {
1263 13291 className: "customize-widgets-keyboard-shortcut-help-modal__shortcut",
1264 - 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 })
1265 13293 },
1266 - index
13294 + index2
1267 13295 ))
1268 13296 }
1269 13297 )
1270 13298 );
1271 - var ShortcutSection = ({ title, shortcuts, className }) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
13299 + var ShortcutSection = ({ title, shortcuts, className }) => /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
1272 13300 "section",
1273 13301 {
1274 13302 className: clsx_default(
1275 13303 "customize-widgets-keyboard-shortcut-help-modal__section",
@@ -1275,10 +13303,10 @@
1275 13303 "customize-widgets-keyboard-shortcut-help-modal__section",
1276 13304 className
1277 13305 ),
1278 13306 children: [
1279 - !!title && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h2", { className: "customize-widgets-keyboard-shortcut-help-modal__section-title", children: title }),
1280 - /* @__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 })
1281 13309 ]
1282 13310 }
1283 13311 );
1284 13312 var ShortcutCategorySection = ({
@@ -1293,9 +13321,9 @@
1293 13321 );
1294 13322 },
1295 13323 [categoryName]
1296 13324 );
1297 - return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13325 + return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1298 13326 ShortcutSection,
1299 13327 {
1300 13328 title,
1301 13329 shortcuts: categoryShortcuts.concat(additionalShortcuts)
@@ -1306,13 +13334,13 @@
1306 13334 isModalActive,
1307 13335 toggleModal
1308 13336 }) {
1309 13337 const { registerShortcut } = (0, import_data6.useDispatch)(import_keyboard_shortcuts2.store);
1310 - (0, import_element5.useEffect)(() => {
13338 + (0, import_element47.useEffect)(() => {
1311 13339 registerShortcut({
1312 13340 name: "core/customize-widgets/keyboard-shortcuts",
1313 13341 category: "main",
1314 - description: (0, import_i18n5.__)("Display these keyboard shortcuts."),
13342 + description: (0, import_i18n10.__)("Display these keyboard shortcuts."),
1315 13343 keyCombination: {
1316 13344 modifier: "access",
1317 13345 character: "h"
1318 13346 }
@@ -1321,16 +13349,16 @@
1321 13349 (0, import_keyboard_shortcuts2.useShortcut)("core/customize-widgets/keyboard-shortcuts", toggleModal);
1322 13350 if (!isModalActive) {
1323 13351 return null;
1324 13352 }
1325 - return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1326 - import_components4.Modal,
13353 + return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
13354 + import_components3.Modal,
1327 13355 {
1328 13356 className: "customize-widgets-keyboard-shortcut-help-modal",
1329 - title: (0, import_i18n5.__)("Keyboard shortcuts"),
13357 + title: (0, import_i18n10.__)("Keyboard shortcuts"),
1330 13358 onRequestClose: toggleModal,
1331 13359 children: [
1332 - /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13360 + /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1333 13361 ShortcutSection,
1334 13362 {
1335 13363 className: "customize-widgets-keyboard-shortcut-help-modal__main-shortcuts",
1336 13364 shortcuts: ["core/customize-widgets/keyboard-shortcuts"]
@@ -1335,43 +13363,43 @@
1335 13363 className: "customize-widgets-keyboard-shortcut-help-modal__main-shortcuts",
1336 13364 shortcuts: ["core/customize-widgets/keyboard-shortcuts"]
1337 13365 }
1338 13366 ),
1339 - /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13367 + /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1340 13368 ShortcutCategorySection,
1341 13369 {
1342 - title: (0, import_i18n5.__)("Global shortcuts"),
13370 + title: (0, import_i18n10.__)("Global shortcuts"),
1343 13371 categoryName: "global"
1344 13372 }
1345 13373 ),
1346 - /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13374 + /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1347 13375 ShortcutCategorySection,
1348 13376 {
1349 - title: (0, import_i18n5.__)("Selection shortcuts"),
13377 + title: (0, import_i18n10.__)("Selection shortcuts"),
1350 13378 categoryName: "selection"
1351 13379 }
1352 13380 ),
1353 - /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13381 + /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1354 13382 ShortcutCategorySection,
1355 13383 {
1356 - title: (0, import_i18n5.__)("Block shortcuts"),
13384 + title: (0, import_i18n10.__)("Block shortcuts"),
1357 13385 categoryName: "block",
1358 13386 additionalShortcuts: [
1359 13387 {
1360 13388 keyCombination: { character: "/" },
1361 - description: (0, import_i18n5.__)(
13389 + description: (0, import_i18n10.__)(
1362 13390 "Change the block type after adding a new paragraph."
1363 13391 ),
1364 13392 /* translators: The forward-slash character. e.g. '/'. */
1365 - ariaLabel: (0, import_i18n5.__)("Forward-slash")
13393 + ariaLabel: (0, import_i18n10.__)("Forward-slash")
1366 13394 }
1367 13395 ]
1368 13396 }
1369 13397 ),
1370 - /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
13398 + /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
1371 13399 ShortcutSection,
1372 13400 {
1373 - title: (0, import_i18n5.__)("Text formatting"),
13401 + title: (0, import_i18n10.__)("Text formatting"),
1374 13402 shortcuts: textFormattingShortcuts
1375 13403 }
1376 13404 )
1377 13405 ]
@@ -1379,25 +13407,26 @@
1379 13407 );
1380 13408 }
1381 13409
1382 13410 // packages/customize-widgets/build-module/components/more-menu/index.mjs
1383 - var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1);
13411 + var import_jsx_runtime56 = __toESM(require_jsx_runtime(), 1);
1384 13412 function MoreMenu() {
1385 13413 const [
1386 13414 isKeyboardShortcutsModalActive,
1387 13415 setIsKeyboardShortcutsModalVisible
1388 - ] = (0, import_element6.useState)(false);
13416 + ] = (0, import_element48.useState)(false);
1389 13417 const toggleKeyboardShortcutsModal = () => setIsKeyboardShortcutsModalVisible(!isKeyboardShortcutsModalActive);
1390 13418 (0, import_keyboard_shortcuts3.useShortcut)(
1391 13419 "core/customize-widgets/keyboard-shortcuts",
1392 13420 toggleKeyboardShortcutsModal
1393 13421 );
1394 - return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
1395 - /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1396 - 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,
1397 13426 {
1398 13427 icon: more_vertical_default,
1399 - label: (0, import_i18n6.__)("Options"),
13428 + label: (0, import_i18n11.__)("Options"),
1400 13429 popoverProps: {
1401 13430 placement: "bottom-end",
1402 13431 className: "more-menu-dropdown__content"
1403 13432 },
@@ -1404,81 +13433,83 @@
1404 13433 toggleProps: {
1405 13434 tooltipPosition: "bottom",
1406 13435 size: "compact"
1407 13436 },
1408 - children: () => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
1409 - /* @__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)(
1410 13439 import_preferences.PreferenceToggleMenuItem,
1411 13440 {
1412 13441 scope: "core/customize-widgets",
1413 13442 name: "fixedToolbar",
1414 - label: (0, import_i18n6.__)("Top toolbar"),
1415 - info: (0, import_i18n6.__)(
13443 + label: (0, import_i18n11.__)("Top toolbar"),
13444 + info: (0, import_i18n11.__)(
1416 13445 "Access all block and document tools in a single place"
1417 13446 ),
1418 - messageActivated: (0, import_i18n6.__)(
13447 + messageActivated: (0, import_i18n11.__)(
1419 13448 "Top toolbar activated"
1420 13449 ),
1421 - messageDeactivated: (0, import_i18n6.__)(
13450 + messageDeactivated: (0, import_i18n11.__)(
1422 13451 "Top toolbar deactivated"
1423 13452 )
1424 13453 }
1425 13454 ) }),
1426 - /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_components5.MenuGroup, { label: (0, import_i18n6.__)("Tools"), children: [
1427 - /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1428 - 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,
1429 13458 {
1430 13459 onClick: () => {
1431 13460 setIsKeyboardShortcutsModalVisible(true);
1432 13461 },
1433 13462 shortcut: import_keycodes2.displayShortcut.access("h"),
1434 - children: (0, import_i18n6.__)("Keyboard shortcuts")
13463 + children: (0, import_i18n11.__)("Keyboard shortcuts")
1435 13464 }
1436 13465 ),
1437 - /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1438 - import_preferences.PreferenceToggleMenuItem,
13466 + /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
13467 + import_components4.MenuItem,
1439 13468 {
1440 - scope: "core/customize-widgets",
1441 - name: "welcomeGuide",
1442 - label: (0, import_i18n6.__)("Welcome Guide")
13469 + onClick: () => toggle(
13470 + "core/customize-widgets",
13471 + "welcomeGuide"
13472 + ),
13473 + children: (0, import_i18n11.__)("Welcome Guide")
1443 13474 }
1444 13475 ),
1445 - /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
1446 - import_components5.MenuItem,
13476 + /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
13477 + import_components4.MenuItem,
1447 13478 {
1448 13479 role: "menuitem",
1449 13480 icon: external_default,
1450 - href: (0, import_i18n6.__)(
13481 + href: (0, import_i18n11.__)(
1451 13482 "https://wordpress.org/documentation/article/block-based-widgets-editor/"
1452 13483 ),
1453 13484 target: "_blank",
1454 13485 rel: "noopener",
1455 13486 children: [
1456 - (0, import_i18n6.__)("Help"),
1457 - /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(VisuallyHidden, {
1458 - 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", {}),
1459 13490 /* translators: accessibility text */
1460 - children: (0, import_i18n6.__)("(opens in a new tab)")
13491 + children: (0, import_i18n11.__)("(opens in a new tab)")
1461 13492 })
1462 13493 ]
1463 13494 }
1464 13495 )
1465 13496 ] }),
1466 - /* @__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)(
1467 13498 import_preferences.PreferenceToggleMenuItem,
1468 13499 {
1469 13500 scope: "core/customize-widgets",
1470 13501 name: "keepCaretInsideBlock",
1471 - label: (0, import_i18n6.__)(
13502 + label: (0, import_i18n11.__)(
1472 13503 "Contain text cursor inside block"
1473 13504 ),
1474 - info: (0, import_i18n6.__)(
13505 + info: (0, import_i18n11.__)(
1475 13506 "Aids screen readers by stopping text caret from leaving blocks."
1476 13507 ),
1477 - messageActivated: (0, import_i18n6.__)(
13508 + messageActivated: (0, import_i18n11.__)(
1478 13509 "Contain text cursor inside block activated"
1479 13510 ),
1480 - messageDeactivated: (0, import_i18n6.__)(
13511 + messageDeactivated: (0, import_i18n11.__)(
1481 13512 "Contain text cursor inside block deactivated"
1482 13513 )
1483 13514 }
1484 13515 ) })
@@ -1484,9 +13515,9 @@
1484 13515 ) })
1485 13516 ] })
1486 13517 }
1487 13518 ),
1488 - /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
13519 + /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
1489 13520 KeyboardShortcutHelpModal,
1490 13521 {
1491 13522 isModalActive: isKeyboardShortcutsModalActive,
1492 13523 toggleModal: toggleKeyboardShortcutsModal
@@ -1495,10 +13526,10 @@
1495 13526 ] });
1496 13527 }
1497 13528
1498 13529 // packages/customize-widgets/build-module/components/header/index.mjs
1499 - var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
1500 - function Header({
13530 + var import_jsx_runtime57 = __toESM(require_jsx_runtime(), 1);
13531 + function Header3({
1501 13532 sidebar,
1502 13533 inserter,
1503 13534 isInserterOpened: isInserterOpened2,
1504 13535 setIsInserterOpened: setIsInserterOpened2,
@@ -1503,93 +13534,99 @@
1503 13534 isInserterOpened: isInserterOpened2,
1504 13535 setIsInserterOpened: setIsInserterOpened2,
1505 13536 isFixedToolbarActive
1506 13537 }) {
1507 - const [[hasUndo, hasRedo], setUndoRedo] = (0, import_element7.useState)([
13538 + const [[hasUndo, hasRedo], setUndoRedo] = (0, import_element49.useState)([
1508 13539 sidebar.hasUndo(),
1509 13540 sidebar.hasRedo()
1510 13541 ]);
1511 13542 const shortcut = (0, import_keycodes3.isAppleOS)() ? import_keycodes3.displayShortcut.primaryShift("z") : import_keycodes3.displayShortcut.primary("y");
1512 - (0, import_element7.useEffect)(() => {
13543 + (0, import_element49.useEffect)(() => {
1513 13544 return sidebar.subscribeHistory(() => {
1514 13545 setUndoRedo([sidebar.hasUndo(), sidebar.hasRedo()]);
1515 13546 });
1516 13547 }, [sidebar]);
1517 - return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
1518 - /* @__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)(
1519 13550 "div",
1520 13551 {
1521 13552 className: clsx_default("customize-widgets-header", {
1522 13553 "is-fixed-toolbar-active": isFixedToolbarActive
1523 13554 }),
1524 - children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1525 - import_block_editor4.NavigableToolbar,
13555 + children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
13556 + import_block_editor3.NavigableToolbar,
1526 13557 {
1527 13558 className: "customize-widgets-header-toolbar",
1528 - "aria-label": (0, import_i18n7.__)("Document tools"),
13559 + "aria-label": (0, import_i18n12.__)("Document tools"),
1529 13560 children: [
1530 - /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1531 - import_components6.ToolbarButton,
13561 + /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13562 + import_components5.ToolbarItem,
1532 13563 {
1533 - icon: !(0, import_i18n7.isRTL)() ? undo_default : redo_default,
1534 - 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"),
1535 13567 shortcut: import_keycodes3.displayShortcut.primary("z"),
1536 - disabled: !hasUndo,
1537 - onClick: sidebar.undo,
13568 + "aria-disabled": !hasUndo,
13569 + onClick: hasUndo ? sidebar.undo : void 0,
13570 + size: "compact",
1538 13571 className: "customize-widgets-editor-history-button undo-button"
1539 13572 }
1540 13573 ),
1541 - /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1542 - import_components6.ToolbarButton,
13574 + /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13575 + import_components5.ToolbarItem,
1543 13576 {
1544 - icon: !(0, import_i18n7.isRTL)() ? redo_default : undo_default,
1545 - 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"),
1546 13580 shortcut,
1547 - disabled: !hasRedo,
1548 - onClick: sidebar.redo,
13581 + "aria-disabled": !hasRedo,
13582 + onClick: hasRedo ? sidebar.redo : void 0,
13583 + size: "compact",
1549 13584 className: "customize-widgets-editor-history-button redo-button"
1550 13585 }
1551 13586 ),
1552 - /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1553 - import_components6.ToolbarButton,
13587 + /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13588 + import_components5.ToolbarItem,
1554 13589 {
13590 + as: import_components5.Button,
1555 13591 className: "customize-widgets-header-toolbar__inserter-toggle",
1556 13592 isPressed: isInserterOpened2,
1557 13593 variant: "primary",
1558 13594 icon: plus_default,
1559 - label: (0, import_i18n7._x)(
13595 + label: (0, import_i18n12._x)(
1560 13596 "Add block",
1561 13597 "Generic label for block inserter button"
1562 13598 ),
1563 13599 onClick: () => {
1564 13600 setIsInserterOpened2((isOpen) => !isOpen);
1565 - }
13601 + },
13602 + size: "compact"
1566 13603 }
1567 13604 ),
1568 - /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(MoreMenu, {})
13605 + /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(MoreMenu, {})
1569 13606 ]
1570 13607 }
1571 13608 )
1572 13609 }
1573 13610 ),
1574 - (0, import_element7.createPortal)(
1575 - /* @__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 }),
1576 13613 inserter.contentContainer[0]
1577 13614 )
1578 13615 ] });
1579 13616 }
1580 - var header_default = Header;
13617 + var header_default = Header3;
1581 13618
1582 13619 // packages/customize-widgets/build-module/components/inserter/use-inserter.mjs
1583 - var import_element8 = __toESM(require_element(), 1);
1584 - var import_data7 = __toESM(require_data(), 1);
13620 + var import_element50 = __toESM(require_element(), 1);
13621 + var import_data8 = __toESM(require_data(), 1);
1585 13622 function useInserter(inserter) {
1586 - const isInserterOpened2 = (0, import_data7.useSelect)(
13623 + const isInserterOpened2 = (0, import_data8.useSelect)(
1587 13624 (select) => select(store).isInserterOpened(),
1588 13625 []
1589 13626 );
1590 - const { setIsInserterOpened: setIsInserterOpened2 } = (0, import_data7.useDispatch)(store);
1591 - (0, import_element8.useEffect)(() => {
13627 + const { setIsInserterOpened: setIsInserterOpened2 } = (0, import_data8.useDispatch)(store);
13628 + (0, import_element50.useEffect)(() => {
1592 13629 if (isInserterOpened2) {
1593 13630 inserter.open();
1594 13631 } else {
1595 13632 inserter.close();
@@ -1596,14 +13633,14 @@
1596 13633 }
1597 13634 }, [inserter, isInserterOpened2]);
1598 13635 return [
1599 13636 isInserterOpened2,
1600 - (0, import_element8.useCallback)(
13637 + (0, import_element50.useCallback)(
1601 13638 (updater) => {
1602 13639 let isOpen = updater;
1603 13640 if (typeof updater === "function") {
1604 13641 isOpen = updater(
1605 - (0, import_data7.select)(store).isInserterOpened()
13642 + (0, import_data8.select)(store).isInserterOpened()
1606 13643 );
1607 13644 }
1608 13645 setIsInserterOpened2(isOpen);
1609 13646 },
@@ -1612,13 +13649,13 @@
1612 13649 ];
1613 13650 }
1614 13651
1615 13652 // packages/customize-widgets/build-module/components/sidebar-block-editor/sidebar-editor-provider.mjs
1616 - var import_block_editor6 = __toESM(require_block_editor(), 1);
13653 + var import_block_editor5 = __toESM(require_block_editor(), 1);
1617 13654
1618 13655 // packages/customize-widgets/build-module/components/sidebar-block-editor/use-sidebar-block-editor.mjs
1619 13656 var import_es6 = __toESM(require_es6(), 1);
1620 - var import_element9 = __toESM(require_element(), 1);
13657 + var import_element51 = __toESM(require_element(), 1);
1621 13658 var import_is_shallow_equal = __toESM(require_is_shallow_equal(), 1);
1622 13659 var import_widgets2 = __toESM(require_widgets(), 1);
1623 13660
1624 13661 // packages/customize-widgets/build-module/utils.mjs
@@ -1709,12 +13746,12 @@
1709 13746 function widgetsToBlocks(widgets) {
1710 13747 return widgets.map((widget) => widgetToBlock(widget));
1711 13748 }
1712 13749 function useSidebarBlockEditor(sidebar) {
1713 - const [blocks, setBlocks] = (0, import_element9.useState)(
13750 + const [blocks, setBlocks] = (0, import_element51.useState)(
1714 13751 () => widgetsToBlocks(sidebar.getWidgets())
1715 13752 );
1716 - (0, import_element9.useEffect)(() => {
13753 + (0, import_element51.useEffect)(() => {
1717 13754 return sidebar.subscribe((prevWidgets, nextWidgets) => {
1718 13755 setBlocks((prevBlocks) => {
1719 13756 const prevWidgetsMap = new Map(
1720 13757 prevWidgets.map((widget) => [widget.id, widget])
@@ -1738,9 +13775,9 @@
1738 13775 return nextBlocks;
1739 13776 });
1740 13777 });
1741 13778 }, [sidebar]);
1742 - const onChangeBlocks = (0, import_element9.useCallback)(
13779 + const onChangeBlocks = (0, import_element51.useCallback)(
1743 13780 (nextBlocks) => {
1744 13781 setBlocks((prevBlocks) => {
1745 13782 if ((0, import_is_shallow_equal.isShallowEqual)(prevBlocks, nextBlocks)) {
1746 13783 return prevBlocks;
@@ -1767,15 +13804,15 @@
1767 13804 return prevBlocks;
1768 13805 }
1769 13806 const addedWidgetIds = sidebar.setWidgets(nextWidgets);
1770 13807 return nextBlocks.reduce(
1771 - (updatedNextBlocks, nextBlock, index) => {
1772 - const addedWidgetId = addedWidgetIds[index];
13808 + (updatedNextBlocks, nextBlock, index2) => {
13809 + const addedWidgetId = addedWidgetIds[index2];
1773 13810 if (addedWidgetId !== null) {
1774 13811 if (updatedNextBlocks === nextBlocks) {
1775 13812 updatedNextBlocks = nextBlocks.slice();
1776 13813 }
1777 - updatedNextBlocks[index] = (0, import_widgets2.addWidgetIdToBlock)(
13814 + updatedNextBlocks[index2] = (0, import_widgets2.addWidgetIdToBlock)(
1778 13815 nextBlock,
1779 13816 addedWidgetId
1780 13817 );
1781 13818 }
@@ -1790,23 +13827,23 @@
1790 13827 return [blocks, onChangeBlocks, onChangeBlocks];
1791 13828 }
1792 13829
1793 13830 // packages/customize-widgets/build-module/components/focus-control/use-blocks-focus-control.mjs
1794 - var import_element11 = __toESM(require_element(), 1);
1795 - var import_data8 = __toESM(require_data(), 1);
1796 - 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);
1797 13834 var import_widgets3 = __toESM(require_widgets(), 1);
1798 13835
1799 13836 // packages/customize-widgets/build-module/components/focus-control/index.mjs
1800 - var import_element10 = __toESM(require_element(), 1);
1801 - var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
1802 - 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)();
1803 13840 FocusControlContext.displayName = "FocusControlContext";
1804 13841 function FocusControl({ api, sidebarControls, children }) {
1805 - const [focusedWidgetIdRef, setFocusedWidgetIdRef] = (0, import_element10.useState)({
13842 + const [focusedWidgetIdRef, setFocusedWidgetIdRef] = (0, import_element52.useState)({
1806 13843 current: null
1807 13844 });
1808 - const focusWidget = (0, import_element10.useCallback)(
13845 + const focusWidget = (0, import_element52.useCallback)(
1809 13846 (widgetId) => {
1810 13847 for (const sidebarControl of sidebarControls) {
1811 13848 const widgets = sidebarControl.setting.get();
1812 13849 if (widgets.includes(widgetId)) {
@@ -1822,9 +13859,9 @@
1822 13859 }
1823 13860 },
1824 13861 [sidebarControls]
1825 13862 );
1826 - (0, import_element10.useEffect)(() => {
13863 + (0, import_element52.useEffect)(() => {
1827 13864 function handleFocus(settingId) {
1828 13865 const widgetId = settingIdToWidgetId(settingId);
1829 13866 focusWidget(widgetId);
1830 13867 }
@@ -1846,25 +13883,25 @@
1846 13883 );
1847 13884 }
1848 13885 };
1849 13886 }, [api, focusWidget]);
1850 - const context = (0, import_element10.useMemo)(
13887 + const context = (0, import_element52.useMemo)(
1851 13888 () => [focusedWidgetIdRef, focusWidget],
1852 13889 [focusedWidgetIdRef, focusWidget]
1853 13890 );
1854 - 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 });
1855 13892 }
1856 - var useFocusControl = () => (0, import_element10.useContext)(FocusControlContext);
13893 + var useFocusControl = () => (0, import_element52.useContext)(FocusControlContext);
1857 13894
1858 13895 // packages/customize-widgets/build-module/components/focus-control/use-blocks-focus-control.mjs
1859 13896 function useBlocksFocusControl(blocks) {
1860 - const { selectBlock } = (0, import_data8.useDispatch)(import_block_editor5.store);
13897 + const { selectBlock } = (0, import_data9.useDispatch)(import_block_editor4.store);
1861 13898 const [focusedWidgetIdRef] = useFocusControl();
1862 - const blocksRef = (0, import_element11.useRef)(blocks);
1863 - (0, import_element11.useEffect)(() => {
13899 + const blocksRef = (0, import_element53.useRef)(blocks);
13900 + (0, import_element53.useEffect)(() => {
1864 13901 blocksRef.current = blocks;
1865 13902 }, [blocks]);
1866 - (0, import_element11.useEffect)(() => {
13903 + (0, import_element53.useEffect)(() => {
1867 13904 if (focusedWidgetIdRef.current) {
1868 13905 const focusedBlock = blocksRef.current.find(
1869 13906 (block) => (0, import_widgets3.getWidgetIdFromBlock)(block) === focusedWidgetIdRef.current
1870 13907 );
@@ -1879,17 +13916,17 @@
1879 13916 }, [focusedWidgetIdRef, selectBlock]);
1880 13917 }
1881 13918
1882 13919 // packages/customize-widgets/build-module/lock-unlock.mjs
1883 - var import_private_apis = __toESM(require_private_apis(), 1);
1884 - 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)(
1885 13922 "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
1886 13923 "@wordpress/customize-widgets"
1887 13924 );
1888 13925
1889 13926 // packages/customize-widgets/build-module/components/sidebar-block-editor/sidebar-editor-provider.mjs
1890 - var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
1891 - 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);
1892 13929 function SidebarEditorProvider({
1893 13930 sidebar,
1894 13931 settings,
1895 13932 children
@@ -1895,9 +13932,9 @@
1895 13932 children
1896 13933 }) {
1897 13934 const [blocks, onInput, onChange] = useSidebarBlockEditor(sidebar);
1898 13935 useBlocksFocusControl(blocks);
1899 - return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
13936 + return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
1900 13937 ExperimentalBlockEditorProvider,
1901 13938 {
1902 13939 value: blocks,
1903 13940 onInput,
@@ -1909,19 +13946,19 @@
1909 13946 );
1910 13947 }
1911 13948
1912 13949 // packages/customize-widgets/build-module/components/welcome-guide/index.mjs
1913 - var import_i18n8 = __toESM(require_i18n(), 1);
1914 - var import_components7 = __toESM(require_components(), 1);
1915 - 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);
1916 13953 var import_preferences2 = __toESM(require_preferences(), 1);
1917 - var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
13954 + var import_jsx_runtime60 = __toESM(require_jsx_runtime(), 1);
1918 13955 function WelcomeGuide({ sidebar }) {
1919 - const { toggle } = (0, import_data9.useDispatch)(import_preferences2.store);
13956 + const { toggle } = (0, import_data10.useDispatch)(import_preferences2.store);
1920 13957 const isEntirelyBlockWidgets = sidebar.getWidgets().every((widget) => widget.id.startsWith("block-"));
1921 - return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "customize-widgets-welcome-guide", children: [
1922 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "customize-widgets-welcome-guide__image__wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("picture", { children: [
1923 - /* @__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)(
1924 13961 "source",
1925 13962 {
1926 13963 srcSet: "https://s.w.org/images/block-editor/welcome-editor.svg",
1927 13964 media: "(prefers-reduced-motion: reduce)"
@@ -1926,9 +13963,9 @@
1926 13963 srcSet: "https://s.w.org/images/block-editor/welcome-editor.svg",
1927 13964 media: "(prefers-reduced-motion: reduce)"
1928 13965 }
1929 13966 ),
1930 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
13967 + /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
1931 13968 "img",
1932 13969 {
1933 13970 className: "customize-widgets-welcome-guide__image",
1934 13971 src: "https://s.w.org/images/block-editor/welcome-editor.gif",
@@ -1937,47 +13974,47 @@
1937 13974 alt: ""
1938 13975 }
1939 13976 )
1940 13977 ] }) }),
1941 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h1", { className: "customize-widgets-welcome-guide__heading", children: (0, import_i18n8.__)("Welcome to block Widgets") }),
1942 - /* @__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.__)(
1943 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."
1944 - ) : (0, import_i18n8.__)(
13981 + ) : (0, import_i18n13.__)(
1945 13982 "You can now add any block to your site\u2019s widget areas. Don\u2019t worry, all of your favorite widgets still work flawlessly."
1946 13983 ) }),
1947 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1948 - import_components7.Button,
13984 + /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
13985 + import_components6.Button,
1949 13986 {
1950 13987 size: "compact",
1951 13988 variant: "primary",
1952 13989 onClick: () => toggle("core/customize-widgets", "welcomeGuide"),
1953 - children: (0, import_i18n8.__)("Got it")
13990 + children: (0, import_i18n13.__)("Got it")
1954 13991 }
1955 13992 ),
1956 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("hr", { className: "customize-widgets-welcome-guide__separator" }),
1957 - !isEntirelyBlockWidgets && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { className: "customize-widgets-welcome-guide__more-info", children: [
1958 - (0, import_i18n8.__)("Want to stick with the old widgets?"),
1959 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("br", {}),
1960 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1961 - 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,
1962 13999 {
1963 - href: (0, import_i18n8.__)(
14000 + href: (0, import_i18n13.__)(
1964 14001 "https://wordpress.org/plugins/classic-widgets/"
1965 14002 ),
1966 - children: (0, import_i18n8.__)("Get the Classic Widgets plugin.")
14003 + children: (0, import_i18n13.__)("Get the Classic Widgets plugin.")
1967 14004 }
1968 14005 )
1969 14006 ] }),
1970 - /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { className: "customize-widgets-welcome-guide__more-info", children: [
1971 - (0, import_i18n8.__)("New to the block editor?"),
1972 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("br", {}),
1973 - /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1974 - 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,
1975 14012 {
1976 - href: (0, import_i18n8.__)(
14013 + href: (0, import_i18n13.__)(
1977 14014 "https://wordpress.org/documentation/article/wordpress-block-editor/"
1978 14015 ),
1979 - children: (0, import_i18n8.__)("Here's a detailed guide.")
14016 + children: (0, import_i18n13.__)("Here's a detailed guide.")
1980 14017 }
1981 14018 )
1982 14019 ] })
1983 14020 ] });
@@ -1983,19 +14020,27 @@
1983 14020 ] });
1984 14021 }
1985 14022
1986 14023 // packages/customize-widgets/build-module/components/keyboard-shortcuts/index.mjs
1987 - var import_element12 = __toESM(require_element(), 1);
14024 + var import_element54 = __toESM(require_element(), 1);
1988 14025 var import_keyboard_shortcuts4 = __toESM(require_keyboard_shortcuts(), 1);
1989 14026 var import_keycodes4 = __toESM(require_keycodes(), 1);
1990 - var import_data10 = __toESM(require_data(), 1);
1991 - var import_i18n9 = __toESM(require_i18n(), 1);
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);
1992 14031 function KeyboardShortcuts({ undo, redo, save }) {
1993 14032 (0, import_keyboard_shortcuts4.useShortcut)("core/customize-widgets/undo", (event) => {
14033 + if (usesNativeUndo(event)) {
14034 + return;
14035 + }
1994 14036 undo();
1995 14037 event.preventDefault();
1996 14038 });
1997 14039 (0, import_keyboard_shortcuts4.useShortcut)("core/customize-widgets/redo", (event) => {
14040 + if (usesNativeUndo(event)) {
14041 + return;
14042 + }
1998 14043 redo();
1999 14044 event.preventDefault();
2000 14045 });
2001 14046 (0, import_keyboard_shortcuts4.useShortcut)("core/customize-widgets/save", (event) => {
@@ -2004,16 +14049,16 @@
2004 14049 });
2005 14050 return null;
2006 14051 }
2007 14052 function KeyboardShortcutsRegister() {
2008 - const { registerShortcut, unregisterShortcut } = (0, import_data10.useDispatch)(
14053 + const { registerShortcut, unregisterShortcut } = (0, import_data11.useDispatch)(
2009 14054 import_keyboard_shortcuts4.store
2010 14055 );
2011 - (0, import_element12.useEffect)(() => {
14056 + (0, import_element54.useEffect)(() => {
2012 14057 registerShortcut({
2013 14058 name: "core/customize-widgets/undo",
2014 14059 category: "global",
2015 - description: (0, import_i18n9.__)("Undo your last changes."),
14060 + description: (0, import_i18n14.__)("Undo your last changes."),
2016 14061 keyCombination: {
2017 14062 modifier: "primary",
2018 14063 character: "z"
2019 14064 }
@@ -2020,9 +14065,9 @@
2020 14065 });
2021 14066 registerShortcut({
2022 14067 name: "core/customize-widgets/redo",
2023 14068 category: "global",
2024 - description: (0, import_i18n9.__)("Redo your last undo."),
14069 + description: (0, import_i18n14.__)("Redo your last undo."),
2025 14070 keyCombination: {
2026 14071 modifier: "primaryShift",
2027 14072 character: "z"
2028 14073 },
@@ -2039,9 +14084,9 @@
2039 14084 });
2040 14085 registerShortcut({
2041 14086 name: "core/customize-widgets/save",
2042 14087 category: "global",
2043 - description: (0, import_i18n9.__)("Save your changes."),
14088 + description: (0, import_i18n14.__)("Save your changes."),
2044 14089 keyCombination: {
2045 14090 modifier: "primary",
2046 14091 character: "s"
2047 14092 }
@@ -2057,34 +14102,33 @@
2057 14102 KeyboardShortcuts.Register = KeyboardShortcutsRegister;
2058 14103 var keyboard_shortcuts_default = KeyboardShortcuts;
2059 14104
2060 14105 // packages/customize-widgets/build-module/components/block-appender/index.mjs
2061 - var import_element13 = __toESM(require_element(), 1);
14106 + var import_element55 = __toESM(require_element(), 1);
2062 14107 var import_block_editor7 = __toESM(require_block_editor(), 1);
2063 - var import_data11 = __toESM(require_data(), 1);
2064 - var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
14108 + var import_data12 = __toESM(require_data(), 1);
14109 + var import_jsx_runtime61 = __toESM(require_jsx_runtime(), 1);
2065 14110 function BlockAppender(props) {
2066 - const ref = (0, import_element13.useRef)();
2067 - const isBlocksListEmpty = (0, import_data11.useSelect)(
14111 + const ref = (0, import_element55.useRef)();
14112 + const isBlocksListEmpty = (0, import_data12.useSelect)(
2068 14113 (select) => select(import_block_editor7.store).getBlockCount() === 0
2069 14114 );
2070 - (0, import_element13.useEffect)(() => {
14115 + (0, import_element55.useEffect)(() => {
2071 14116 if (isBlocksListEmpty && ref.current) {
2072 - const { ownerDocument } = ref.current;
2073 - if (!ownerDocument.activeElement || ownerDocument.activeElement === ownerDocument.body) {
14117 + const { ownerDocument: ownerDocument2 } = ref.current;
14118 + if (!ownerDocument2.activeElement || ownerDocument2.activeElement === ownerDocument2.body) {
2074 14119 ref.current.focus();
2075 14120 }
2076 14121 }
2077 14122 }, [isBlocksListEmpty]);
2078 - return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_block_editor7.ButtonBlockAppender, { ...props, ref });
14123 + return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_block_editor7.ButtonBlockAppender, { ...props, ref });
2079 14124 }
2080 14125
2081 14126 // packages/customize-widgets/build-module/components/sidebar-block-editor/index.mjs
2082 - var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
2083 - var { ExperimentalBlockCanvas: BlockCanvas } = unlock(
14127 + var import_jsx_runtime62 = __toESM(require_jsx_runtime(), 1);
14128 + var { ExperimentalBlockCanvas: BlockCanvas } = unlock2(
2084 14129 import_block_editor8.privateApis
2085 14130 );
2086 - var { BlockKeyboardShortcuts } = unlock(import_block_library.privateApis);
2087 14131 function SidebarBlockEditor({
2088 14132 blockEditorSettings,
2089 14133 sidebar,
2090 14134 inserter,
@@ -2090,15 +14134,15 @@
2090 14134 inserter,
2091 14135 inspector
2092 14136 }) {
2093 14137 const [isInserterOpened2, setIsInserterOpened2] = useInserter(inserter);
2094 - const isMediumViewport = (0, import_compose3.useViewportMatch)("small");
14138 + const isMediumViewport = (0, import_compose4.useViewportMatch)("small");
2095 14139 const {
2096 14140 hasUploadPermissions,
2097 14141 isFixedToolbarActive,
2098 14142 keepCaretInsideBlock,
2099 14143 isWelcomeGuideActive
2100 - } = (0, import_data12.useSelect)((select) => {
14144 + } = (0, import_data13.useSelect)((select) => {
2101 14145 const { get } = select(import_preferences3.store);
2102 14146 return {
2103 14147 hasUploadPermissions: select(import_core_data.store).canUser("create", {
2104 14148 kind: "postType",
@@ -2117,9 +14161,9 @@
2117 14161 "welcomeGuide"
2118 14162 )
2119 14163 };
2120 14164 }, []);
2121 - const settings = (0, import_element14.useMemo)(() => {
14165 + const settings = (0, import_element56.useMemo)(() => {
2122 14166 let mediaUploadBlockEditor;
2123 14167 if (hasUploadPermissions) {
2124 14168 mediaUploadBlockEditor = ({ onError, ...argumentsObject }) => {
2125 14169 (0, import_media_utils.uploadMedia)({
@@ -2134,9 +14178,8 @@
2134 14178 __experimentalSetIsInserterOpened: setIsInserterOpened2,
2135 14179 mediaUpload: mediaUploadBlockEditor,
2136 14180 hasFixedToolbar: isFixedToolbarActive || !isMediumViewport,
2137 14181 keepCaretInsideBlock,
2138 - editorTool: "edit",
2139 14182 __unstableHasCustomAppender: true
2140 14183 };
2141 14184 }, [
2142 14185 hasUploadPermissions,
@@ -2146,15 +14189,14 @@
2146 14189 keepCaretInsideBlock,
2147 14190 setIsInserterOpened2
2148 14191 ]);
2149 14192 if (isWelcomeGuideActive) {
2150 - return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(WelcomeGuide, { sidebar });
14193 + return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(WelcomeGuide, { sidebar });
2151 14194 }
2152 - return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
2153 - /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(keyboard_shortcuts_default.Register, {}),
2154 - /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(BlockKeyboardShortcuts, {}),
2155 - /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(SidebarEditorProvider, { sidebar, settings, children: [
2156 - /* @__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)(
2157 14199 keyboard_shortcuts_default,
2158 14200 {
2159 14201 undo: sidebar.undo,
2160 14202 redo: sidebar.redo,
@@ -2160,9 +14202,9 @@
2160 14202 redo: sidebar.redo,
2161 14203 save: sidebar.save
2162 14204 }
2163 14205 ),
2164 - /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
14206 + /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2165 14207 header_default,
2166 14208 {
2167 14209 sidebar,
2168 14210 inserter,
@@ -2170,26 +14212,26 @@
2170 14212 setIsInserterOpened: setIsInserterOpened2,
2171 14213 isFixedToolbarActive: isFixedToolbarActive || !isMediumViewport
2172 14214 }
2173 14215 ),
2174 - (isFixedToolbarActive || !isMediumViewport) && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_block_editor8.BlockToolbar, { hideDragHandle: true }),
2175 - /* @__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)(
2176 14218 BlockCanvas,
2177 14219 {
2178 14220 shouldIframe: false,
2179 14221 styles: settings.defaultEditorStyles,
2180 14222 height: "100%",
2181 - children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_block_editor8.BlockList, { renderAppender: BlockAppender })
14223 + children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_block_editor8.BlockList, { renderAppender: BlockAppender })
2182 14224 }
2183 14225 ),
2184 - (0, import_element14.createPortal)(
14226 + (0, import_element56.createPortal)(
2185 14227 // This is a temporary hack to prevent button component inside <BlockInspector>
2186 14228 // from submitting form when type="button" is not specified.
2187 - /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("form", { onSubmit: (event) => event.preventDefault(), children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_block_editor8.BlockInspector, {}) }),
14229 + /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("form", { onSubmit: (event) => event.preventDefault(), children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_block_editor8.BlockInspector, {}) }),
2188 14230 inspector.contentContainer[0]
2189 14231 )
2190 14232 ] }),
2191 - /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_block_editor8.__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)(
2192 14234 block_inspector_button_default,
2193 14235 {
2194 14236 inspector,
2195 14237 closeMenu: onClose
@@ -2198,11 +14240,11 @@
2198 14240 ] });
2199 14241 }
2200 14242
2201 14243 // packages/customize-widgets/build-module/components/sidebar-controls/index.mjs
2202 - var import_element15 = __toESM(require_element(), 1);
2203 - var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1);
2204 - 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)();
2205 14247 SidebarControlsContext.displayName = "SidebarControlsContext";
2206 14248 function SidebarControls({
2207 14249 sidebarControls,
2208 14250 activeSidebarControl,
@@ -2207,9 +14249,9 @@
2207 14249 sidebarControls,
2208 14250 activeSidebarControl,
2209 14251 children
2210 14252 }) {
2211 - const context = (0, import_element15.useMemo)(
14253 + const context = (0, import_element57.useMemo)(
2212 14254 () => ({
2213 14255 sidebarControls,
2214 14256 activeSidebarControl
2215 14257 }),
@@ -2214,33 +14256,33 @@
2214 14256 activeSidebarControl
2215 14257 }),
2216 14258 [sidebarControls, activeSidebarControl]
2217 14259 );
2218 - 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 });
2219 14261 }
2220 14262 function useSidebarControls() {
2221 - const { sidebarControls } = (0, import_element15.useContext)(SidebarControlsContext);
14263 + const { sidebarControls } = (0, import_element57.useContext)(SidebarControlsContext);
2222 14264 return sidebarControls;
2223 14265 }
2224 14266 function useActiveSidebarControl() {
2225 - const { activeSidebarControl } = (0, import_element15.useContext)(SidebarControlsContext);
14267 + const { activeSidebarControl } = (0, import_element57.useContext)(SidebarControlsContext);
2226 14268 return activeSidebarControl;
2227 14269 }
2228 14270
2229 14271 // packages/customize-widgets/build-module/components/customize-widgets/use-clear-selected-block.mjs
2230 - var import_element16 = __toESM(require_element(), 1);
2231 - var import_data13 = __toESM(require_data(), 1);
14272 + var import_element58 = __toESM(require_element(), 1);
14273 + var import_data14 = __toESM(require_data(), 1);
2232 14274 var import_block_editor9 = __toESM(require_block_editor(), 1);
2233 14275 function useClearSelectedBlock(sidebarControl, popoverRef) {
2234 - const { hasSelectedBlock, hasMultiSelection } = (0, import_data13.useSelect)(import_block_editor9.store);
2235 - const { clearSelectedBlock } = (0, import_data13.useDispatch)(import_block_editor9.store);
2236 - (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)(() => {
2237 14279 if (popoverRef.current && sidebarControl) {
2238 14280 let handleClearSelectedBlock = function(element) {
2239 14281 if (
2240 14282 // 1. Make sure there are blocks being selected.
2241 14283 (hasSelectedBlock() || hasMultiSelection()) && // 2. The element should exist in the DOM (not deleted).
2242 - 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.
2243 14285 !container.contains(element) && !popoverRef.current.contains(element) && !element.closest('[role="dialog"]') && // 4. The inspector should not be opened.
2244 14286 !inspector.expanded()
2245 14287 ) {
2246 14288 clearSelectedBlock();
@@ -2247,18 +14289,18 @@
2247 14289 }
2248 14290 }, handleMouseDown = function(event) {
2249 14291 handleClearSelectedBlock(event.target);
2250 14292 }, handleBlur = function() {
2251 - handleClearSelectedBlock(ownerDocument.activeElement);
14293 + handleClearSelectedBlock(ownerDocument2.activeElement);
2252 14294 };
2253 14295 const inspector = sidebarControl.inspector;
2254 14296 const container = sidebarControl.container[0];
2255 - const ownerDocument = container.ownerDocument;
2256 - const ownerWindow = ownerDocument.defaultView;
2257 - ownerDocument.addEventListener("mousedown", handleMouseDown);
14297 + const ownerDocument2 = container.ownerDocument;
14298 + const ownerWindow = ownerDocument2.defaultView;
14299 + ownerDocument2.addEventListener("mousedown", handleMouseDown);
2258 14300 ownerWindow.addEventListener("blur", handleBlur);
2259 14301 return () => {
2260 - ownerDocument.removeEventListener(
14302 + ownerDocument2.removeEventListener(
2261 14303 "mousedown",
2262 14304 handleMouseDown
2263 14305 );
2264 14306 ownerWindow.removeEventListener("blur", handleBlur);
@@ -2273,21 +14315,22 @@
2273 14315 ]);
2274 14316 }
2275 14317
2276 14318 // packages/customize-widgets/build-module/components/customize-widgets/index.mjs
2277 - var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
14319 + var import_jsx_runtime64 = __toESM(require_jsx_runtime(), 1);
2278 14320 function CustomizeWidgets({
2279 14321 api,
2280 14322 sidebarControls,
2281 14323 blockEditorSettings
2282 14324 }) {
2283 - const [activeSidebarControl, setActiveSidebarControl] = (0, import_element17.useState)(null);
14325 + const [activeSidebarControl, setActiveSidebarControl] = (0, import_element59.useState)(null);
2284 14326 const parentContainer = document.getElementById(
2285 14327 "customize-theme-controls"
2286 14328 );
2287 - const popoverRef = (0, import_element17.useRef)();
14329 + const popoverRef = (0, import_element59.useRef)();
14330 + const adminPrimary = (0, import_element59.useMemo)(() => getAdminThemeColors().primary, []);
2288 14331 useClearSelectedBlock(activeSidebarControl, popoverRef);
2289 - (0, import_element17.useEffect)(() => {
14332 + (0, import_element59.useEffect)(() => {
2290 14333 const unsubscribers = sidebarControls.map(
2291 14334 (sidebarControl) => sidebarControl.subscribe((expanded) => {
2292 14335 if (expanded) {
2293 14336 setActiveSidebarControl(sidebarControl);
@@ -2297,10 +14340,10 @@
2297 14340 return () => {
2298 14341 unsubscribers.forEach((unsubscriber) => unsubscriber());
2299 14342 };
2300 14343 }, [sidebarControls]);
2301 - const activeSidebar = activeSidebarControl && (0, import_element17.createPortal)(
2302 - /* @__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)(
2303 14346 SidebarBlockEditor,
2304 14347 {
2305 14348 blockEditorSettings,
2306 14349 sidebar: activeSidebarControl.sidebarAdapter,
@@ -2310,27 +14353,34 @@
2310 14353 activeSidebarControl.id
2311 14354 ) }),
2312 14355 activeSidebarControl.container[0]
2313 14356 );
2314 - const popover = parentContainer && (0, import_element17.createPortal)(
2315 - /* @__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, {}) }),
2316 14359 parentContainer
2317 14360 );
2318 - return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_components8.SlotFillProvider, { 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)(
2319 14362 SidebarControls,
2320 14363 {
2321 14364 sidebarControls,
2322 14365 activeSidebarControl,
2323 - children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(FocusControl, { api, sidebarControls, children: [
2324 - activeSidebar,
2325 - popover
2326 - ] })
14366 + children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
14367 + FocusControl,
14368 + {
14369 + api,
14370 + sidebarControls,
14371 + children: [
14372 + activeSidebar,
14373 + popover
14374 + ]
14375 + }
14376 + )
2327 14377 }
2328 - ) });
14378 + ) }) });
2329 14379 }
2330 14380
2331 14381 // packages/customize-widgets/build-module/controls/sidebar-section.mjs
2332 - var import_i18n10 = __toESM(require_i18n(), 1);
14382 + var import_i18n15 = __toESM(require_i18n(), 1);
2333 14383
2334 14384 // packages/customize-widgets/build-module/controls/inspector-section.mjs
2335 14385 function getInspectorSection() {
2336 14386 const {
@@ -2419,13 +14469,13 @@
2419 14469 const InspectorSection = getInspectorSection();
2420 14470 this.inspector = new InspectorSection(
2421 14471 getInspectorSectionId(this.id),
2422 14472 {
2423 - title: (0, import_i18n10.__)("Block Settings"),
14473 + title: (0, import_i18n15.__)("Block Settings"),
2424 14474 parentSection: this,
2425 14475 customizeAction: [
2426 - (0, import_i18n10.__)("Customizing"),
2427 - (0, import_i18n10.__)("Widgets"),
14476 + (0, import_i18n15.__)("Customizing"),
14477 + (0, import_i18n15.__)("Widgets"),
2428 14478 this.params.title
2429 14479 ].join(" \u25B8 ")
2430 14480 }
2431 14481 );
@@ -2480,9 +14530,9 @@
2480 14530 };
2481 14531 }
2482 14532
2483 14533 // packages/customize-widgets/build-module/controls/sidebar-control.mjs
2484 - var import_data15 = __toESM(require_data(), 1);
14534 + var import_data16 = __toESM(require_data(), 1);
2485 14535
2486 14536 // packages/customize-widgets/build-module/components/sidebar-block-editor/sidebar-adapter.mjs
2487 14537 var { wp } = window;
2488 14538 function parseWidgetId(widgetId) {
@@ -2739,10 +14789,10 @@
2739 14789 };
2740 14790
2741 14791 // packages/customize-widgets/build-module/controls/inserter-outer-section.mjs
2742 14792 var import_keycodes5 = __toESM(require_keycodes(), 1);
2743 - var import_dom = __toESM(require_dom(), 1);
2744 - var import_data14 = __toESM(require_data(), 1);
14793 + var import_dom21 = __toESM(require_dom(), 1);
14794 + var import_data15 = __toESM(require_data(), 1);
2745 14795 function getInserterOuterSection() {
2746 14796 const {
2747 14797 wp: { customize }
2748 14798 } = window;
@@ -2773,9 +14823,9 @@
2773 14823 (event) => {
2774 14824 if (this.expanded() && (event.keyCode === import_keycodes5.ESCAPE || event.code === "Escape") && !event.defaultPrevented) {
2775 14825 event.preventDefault();
2776 14826 event.stopPropagation();
2777 - (0, import_data14.dispatch)(store).setIsInserterOpened(
14827 + (0, import_data15.dispatch)(store).setIsInserterOpened(
2778 14828 false
2779 14829 );
2780 14830 }
2781 14831 },
@@ -2785,9 +14835,9 @@
2785 14835 this.contentContainer.addClass("widgets-inserter");
2786 14836 this.isFromInternalAction = false;
2787 14837 this.expanded.bind(() => {
2788 14838 if (!this.isFromInternalAction) {
2789 - (0, import_data14.dispatch)(store).setIsInserterOpened(
14839 + (0, import_data15.dispatch)(store).setIsInserterOpened(
2790 14840 this.expanded()
2791 14841 );
2792 14842 }
2793 14843 this.isFromInternalAction = false;
@@ -2799,9 +14849,9 @@
2799 14849 this.activeElementBeforeExpanded = contentContainer.ownerDocument.activeElement;
2800 14850 this.isFromInternalAction = true;
2801 14851 this.expand({
2802 14852 completeCallback() {
2803 - const searchBox = import_dom.focus.tabbable.find(contentContainer)[1];
14853 + const searchBox = import_dom21.focus.tabbable.find(contentContainer)[1];
2804 14854 if (searchBox) {
2805 14855 searchBox.focus();
2806 14856 }
2807 14857 }
@@ -2810,13 +14860,13 @@
2810 14860 }
2811 14861 close() {
2812 14862 if (this.expanded()) {
2813 14863 const contentContainer = this.contentContainer[0];
2814 - const activeElement = contentContainer.ownerDocument.activeElement;
14864 + const activeElement2 = contentContainer.ownerDocument.activeElement;
2815 14865 this.isFromInternalAction = true;
2816 14866 this.collapse({
2817 14867 completeCallback() {
2818 - if (contentContainer.contains(activeElement)) {
14868 + if (contentContainer.contains(activeElement2)) {
2819 14869 if (this.activeElementBeforeExpanded) {
2820 14870 this.activeElementBeforeExpanded.focus();
2821 14871 }
2822 14872 }
@@ -2857,9 +14907,9 @@
2857 14907 }
2858 14908 onChangeSectionExpanded(expanded, args) {
2859 14909 if (!args.unchanged) {
2860 14910 if (!expanded) {
2861 - (0, import_data15.dispatch)(store).setIsInserterOpened(
14911 + (0, import_data16.dispatch)(store).setIsInserterOpened(
2862 14912 false
2863 14913 );
2864 14914 }
2865 14915 this.subscribers.forEach(
@@ -2871,14 +14921,14 @@
2871 14921 }
2872 14922
2873 14923 // packages/customize-widgets/build-module/filters/move-to-sidebar.mjs
2874 14924 var import_block_editor10 = __toESM(require_block_editor(), 1);
2875 - var import_compose4 = __toESM(require_compose(), 1);
2876 - var import_data16 = __toESM(require_data(), 1);
14925 + var import_compose5 = __toESM(require_compose(), 1);
14926 + var import_data17 = __toESM(require_data(), 1);
2877 14927 var import_hooks2 = __toESM(require_hooks(), 1);
2878 14928 var import_widgets4 = __toESM(require_widgets(), 1);
2879 - var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1);
2880 - var withMoveToSidebarToolbarItem = (0, import_compose4.createHigherOrderComponent)(
14929 + var import_jsx_runtime65 = __toESM(require_jsx_runtime(), 1);
14930 + var withMoveToSidebarToolbarItem = (0, import_compose5.createHigherOrderComponent)(
2881 14931 (BlockEdit) => (props) => {
2882 14932 let widgetId = (0, import_widgets4.getWidgetIdFromBlock)(props);
2883 14933 const sidebarControls = useSidebarControls();
2884 14934 const activeSidebarControl = useActiveSidebarControl();
@@ -2884,9 +14934,9 @@
2884 14934 const activeSidebarControl = useActiveSidebarControl();
2885 14935 const hasMultipleSidebars = sidebarControls?.length > 1;
2886 14936 const blockName = props.name;
2887 14937 const clientId = props.clientId;
2888 - const canInsertBlockInSidebar = (0, import_data16.useSelect)(
14938 + const canInsertBlockInSidebar = (0, import_data17.useSelect)(
2889 14939 (select) => {
2890 14940 return select(import_block_editor10.store).canInsertBlockType(
2891 14941 blockName,
2892 14942 ""
@@ -2893,13 +14943,13 @@
2893 14943 );
2894 14944 },
2895 14945 [blockName]
2896 14946 );
2897 - const block = (0, import_data16.useSelect)(
14947 + const block = (0, import_data17.useSelect)(
2898 14948 (select) => select(import_block_editor10.store).getBlock(clientId),
2899 14949 [clientId]
2900 14950 );
2901 - const { removeBlock } = (0, import_data16.useDispatch)(import_block_editor10.store);
14951 + const { removeBlock } = (0, import_data17.useDispatch)(import_block_editor10.store);
2902 14952 const [, focusWidget] = useFocusControl();
2903 14953 function moveToSidebar(sidebarControlId) {
2904 14954 const newSidebarControl = sidebarControls.find(
2905 14955 (sidebarControl) => sidebarControl.id === sidebarControlId
@@ -2919,11 +14969,11 @@
2919 14969 widgetId = addedWidgetIds.reverse().find((id) => !!id);
2920 14970 }
2921 14971 focusWidget(widgetId);
2922 14972 }
2923 - return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
2924 - /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(BlockEdit, { ...props }, "edit"),
2925 - hasMultipleSidebars && canInsertBlockInSidebar && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_block_editor10.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)(
2926 14976 import_widgets4.MoveToWidgetArea,
2927 14977 {
2928 14978 widgetAreas: sidebarControls.map(
2929 14979 (sidebarControl) => ({
@@ -2956,19 +15006,19 @@
2956 15006 replaceMediaUpload
2957 15007 );
2958 15008
2959 15009 // packages/customize-widgets/build-module/filters/wide-widget-display.mjs
2960 - var import_compose5 = __toESM(require_compose(), 1);
15010 + var import_compose6 = __toESM(require_compose(), 1);
2961 15011 var import_hooks4 = __toESM(require_hooks(), 1);
2962 - var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1);
15012 + var import_jsx_runtime66 = __toESM(require_jsx_runtime(), 1);
2963 15013 var { wp: wp2 } = window;
2964 - var withWideWidgetDisplay = (0, import_compose5.createHigherOrderComponent)(
15014 + var withWideWidgetDisplay = (0, import_compose6.createHigherOrderComponent)(
2965 15015 (BlockEdit) => (props) => {
2966 15016 const { idBase } = props.attributes;
2967 15017 const isWide = wp2.customize.Widgets.data.availableWidgets.find(
2968 15018 (widget) => widget.id_base === idBase
2969 15019 )?.is_wide ?? false;
2970 - return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(BlockEdit, { ...props, isWide }, "edit");
15020 + return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(BlockEdit, { ...props, isWide }, "edit");
2971 15021 },
2972 15022 "withWideWidgetDisplay"
2973 15023 );
2974 15024 (0, import_hooks4.addFilter)(
@@ -2977,9 +15027,9 @@
2977 15027 withWideWidgetDisplay
2978 15028 );
2979 15029
2980 15030 // packages/customize-widgets/build-module/index.mjs
2981 - var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1);
15031 + var import_jsx_runtime67 = __toESM(require_jsx_runtime(), 1);
2982 15032 var { wp: wp3 } = window;
2983 15033 var DISABLED_BLOCKS = [
2984 15034 "core/more",
2985 15035 "core/block",
@@ -2987,20 +15037,20 @@
2987 15037 "core/template-part"
2988 15038 ];
2989 15039 var ENABLE_EXPERIMENTAL_FSE_BLOCKS = false;
2990 15040 function initialize(editorName, blockEditorSettings) {
2991 - (0, import_data17.dispatch)(import_preferences4.store).setDefaults("core/customize-widgets", {
15041 + (0, import_data18.dispatch)(import_preferences4.store).setDefaults("core/customize-widgets", {
2992 15042 fixedToolbar: false,
2993 15043 welcomeGuide: true
2994 15044 });
2995 - (0, import_data17.dispatch)(import_blocks2.store).reapplyBlockTypeFilters();
2996 - const coreBlocks = (0, import_block_library2.__experimentalGetCoreBlocks)().filter((block) => {
15045 + (0, import_data18.dispatch)(import_blocks2.store).reapplyBlockTypeFilters();
15046 + const coreBlocks = (0, import_block_library.__experimentalGetCoreBlocks)().filter((block) => {
2997 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"));
2998 15048 });
2999 - (0, import_block_library2.registerCoreBlocks)(coreBlocks);
15049 + (0, import_block_library.registerCoreBlocks)(coreBlocks);
3000 15050 (0, import_widgets5.registerLegacyWidgetBlock)();
3001 15051 if (true) {
3002 - (0, import_block_library2.__experimentalRegisterExperimentalCoreBlocks)({
15052 + (0, import_block_library.__experimentalRegisterExperimentalCoreBlocks)({
3003 15053 enableFSEBlocks: ENABLE_EXPERIMENTAL_FSE_BLOCKS
3004 15054 });
3005 15055 }
3006 15056 (0, import_widgets5.registerLegacyWidgetVariations)(blockEditorSettings);
@@ -3017,10 +15067,10 @@
3017 15067 if (control instanceof SidebarControl) {
3018 15068 sidebarControls.push(control);
3019 15069 }
3020 15070 });
3021 - (0, import_element18.createRoot)(container).render(
3022 - /* @__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)(
3023 15073 CustomizeWidgets,
3024 15074 {
3025 15075 api: wp3.customize,
3026 15076 sidebarControls,
@@ -3030,6 +15080,32 @@
3030 15080 );
3031 15081 });
3032 15082 }
3033 15083 return __toCommonJS(index_exports);
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 +*/
15109 +(window.wp ||= {}).customizeWidgets = wp.customizeWidgets;
3034 15110 })();
3035 15111 //# sourceMappingURL=index.js.map