/
home
/
techb158
/
public_html
/
wp-includes
/
js
/
dist
/
/home/techb158/public_html/wp-includes/js/dist
mkdir
upload
Name
Size
Mode
Actions
development/
-
0777
rm
script-modules/
-
0755
rm
vendor/
-
0777
rm
a11y.js
5697
0666
edit
dl
rm
a11y.min.js
2616
0666
edit
dl
rm
annotations.js
15952
0666
edit
dl
rm
annotations.min.js
5978
0666
edit
dl
rm
api-fetch.js
20003
0666
edit
dl
rm
api-fetch.min.js
7510
0666
edit
dl
rm
autop.js
10019
0666
edit
dl
rm
autop.min.js
5694
0666
edit
dl
rm
base-styles.js
115
0666
edit
dl
rm
base-styles.min.js
142
0666
edit
dl
rm
blob.js
2410
0666
edit
dl
rm
blob.min.js
1243
0666
edit
dl
rm
block-directory.js
381638
0666
edit
dl
rm
block-directory.min.js
129573
0666
edit
dl
rm
block-editor.js
3779291
0666
edit
dl
rm
block-editor.min.js
1411106
0666
edit
dl
rm
block-library.js
3022684
0666
edit
dl
rm
block-library.min.js
1304378
0666
edit
dl
rm
block-serialization-default-parser.js
6800
0666
edit
dl
rm
block-serialization-default-parser.min.js
2560
0666
edit
dl
rm
block-serialization-spec-parser.js
51796
0666
edit
dl
rm
block-serialization-spec-parser.min.js
10728
0666
edit
dl
rm
blocks.js
299905
0666
edit
dl
rm
blocks.min.js
146426
0666
edit
dl
rm
commands.js
131739
0666
edit
dl
rm
commands.min.js
57227
0666
edit
dl
rm
components.js
3821298
0666
edit
dl
rm
components.min.js
836689
0666
edit
dl
rm
compose.js
85752
0666
edit
dl
rm
compose.min.js
30098
0666
edit
dl
rm
core-commands.js
29805
0666
edit
dl
rm
core-commands.min.js
12489
0666
edit
dl
rm
core-data.js
675840
0666
edit
dl
rm
core-data.min.js
231957
0666
edit
dl
rm
customize-widgets.js
114226
0666
edit
dl
rm
customize-widgets.min.js
44466
0666
edit
dl
rm
data-controls.js
4301
0666
edit
dl
rm
data-controls.min.js
1885
0666
edit
dl
rm
data.js
85698
0666
edit
dl
rm
data.min.js
26664
0666
edit
dl
rm
date.js
180935
0666
edit
dl
rm
date.min.js
144747
0666
edit
dl
rm
deprecated.js
3180
0666
edit
dl
rm
deprecated.min.js
1382
0666
edit
dl
rm
dom-ready.js
1571
0666
edit
dl
rm
dom-ready.min.js
881
0666
edit
dl
rm
dom.js
35962
0666
edit
dl
rm
dom.min.js
13172
0666
edit
dl
rm
edit-post.js
451359
0666
edit
dl
rm
edit-post.min.js
160157
0666
edit
dl
rm
edit-site.js
2304757
0666
edit
dl
rm
edit-site.min.js
905288
0666
edit
dl
rm
edit-widgets.js
184620
0666
edit
dl
rm
edit-widgets.min.js
70465
0666
edit
dl
rm
editor.js
3968367
0666
edit
dl
rm
editor.min.js
1573886
0666
edit
dl
rm
element.js
27971
0666
edit
dl
rm
element.min.js
12468
0666
edit
dl
rm
escape-html.js
2413
0666
edit
dl
rm
escape-html.min.js
1158
0666
edit
dl
rm
format-library.js
234957
0666
edit
dl
rm
format-library.min.js
98495
0666
edit
dl
rm
hooks.js
12299
0666
edit
dl
rm
hooks.min.js
5107
0666
edit
dl
rm
html-entities.js
1756
0666
edit
dl
rm
html-entities.min.js
950
0666
edit
dl
rm
i18n.js
15725
0666
edit
dl
rm
i18n.min.js
5791
0666
edit
dl
rm
is-shallow-equal.js
2833
0666
edit
dl
rm
is-shallow-equal.min.js
1197
0666
edit
dl
rm
keyboard-shortcuts.js
10508
0666
edit
dl
rm
keyboard-shortcuts.min.js
3682
0666
edit
dl
rm
keycodes.js
8564
0666
edit
dl
rm
keycodes.min.js
3038
0666
edit
dl
rm
list-reusable-blocks.js
13662
0666
edit
dl
rm
list-reusable-blocks.min.js
5539
0666
edit
dl
rm
media-utils.js
1065027
0666
edit
dl
rm
media-utils.min.js
390995
0666
edit
dl
rm
notices.js
9783
0666
edit
dl
rm
notices.min.js
3947
0666
edit
dl
rm
nux.js
4423
0666
edit
dl
rm
nux.min.js
1749
0666
edit
dl
rm
patterns.js
90184
0666
edit
dl
rm
patterns.min.js
38302
0666
edit
dl
rm
plugins.js
21220
0666
edit
dl
rm
plugins.min.js
7253
0666
edit
dl
rm
preferences-persistence.js
17720
0666
edit
dl
rm
preferences-persistence.min.js
5713
0666
edit
dl
rm
preferences.js
21531
0666
edit
dl
rm
preferences.min.js
8028
0666
edit
dl
rm
primitives.js
5270
0666
edit
dl
rm
primitives.min.js
2093
0666
edit
dl
rm
priority-queue.js
10338
0666
edit
dl
rm
priority-queue.min.js
3505
0666
edit
dl
rm
private-apis.js
4531
0666
edit
dl
rm
private-apis.min.js
3017
0666
edit
dl
rm
react-i18n.js
4064
0666
edit
dl
rm
react-i18n.min.js
1627
0666
edit
dl
rm
redux-routine.js
25346
0666
edit
dl
rm
redux-routine.min.js
9952
0666
edit
dl
rm
reusable-blocks.js
22391
0666
edit
dl
rm
reusable-blocks.min.js
8185
0666
edit
dl
rm
rich-text.js
107405
0666
edit
dl
rm
rich-text.min.js
43182
0666
edit
dl
rm
router.js
37079
0666
edit
dl
rm
router.min.js
14552
0666
edit
dl
rm
server-side-render.js
11588
0666
edit
dl
rm
server-side-render.min.js
4198
0666
edit
dl
rm
shortcode.js
8215
0666
edit
dl
rm
shortcode.min.js
3426
0666
edit
dl
rm
style-engine.js
18810
0666
edit
dl
rm
style-engine.min.js
6946
0666
edit
dl
rm
theme.js
138733
0666
edit
dl
rm
theme.min.js
61144
0666
edit
dl
rm
token-list.js
6327
0666
edit
dl
rm
token-list.min.js
1723
0666
edit
dl
rm
undo-manager.js
5491
0666
edit
dl
rm
undo-manager.min.js
1808
0666
edit
dl
rm
upload-media.js
118036
0666
edit
dl
rm
upload-media.min.js
49874
0666
edit
dl
rm
url.js
23957
0666
edit
dl
rm
url.min.js
10423
0666
edit
dl
rm
viewport.js
7312
0666
edit
dl
rm
viewport.min.js
2374
0666
edit
dl
rm
warning.js
1616
0666
edit
dl
rm
warning.min.js
816
0666
edit
dl
rm
widgets.js
51346
0666
edit
dl
rm
widgets.min.js
21475
0666
edit
dl
rm
wordcount.js
7166
0666
edit
dl
rm
wordcount.min.js
2570
0666
edit
dl
rm
Edit:
/home/techb158/public_html/wp-includes/js/dist/format-library.js
(234957B)
(function() { var wp; (wp ||= {}).formatLibrary = (() => { var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) { if (typeof require !== "undefined") return require.apply(this, arguments); throw Error('Dynamic require of "' + x + '" is not supported'); }); var __commonJS = (cb, mod) => function __require2() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name16 in all) __defProp(target, name16, { get: all[name16], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // package-external:@wordpress/rich-text var require_rich_text = __commonJS({ "package-external:@wordpress/rich-text"(exports, module) { module.exports = window.wp.richText; } }); // package-external:@wordpress/i18n var require_i18n = __commonJS({ "package-external:@wordpress/i18n"(exports, module) { module.exports = window.wp.i18n; } }); // package-external:@wordpress/block-editor var require_block_editor = __commonJS({ "package-external:@wordpress/block-editor"(exports, module) { module.exports = window.wp.blockEditor; } }); // package-external:@wordpress/element var require_element = __commonJS({ "package-external:@wordpress/element"(exports, module) { module.exports = window.wp.element; } }); // package-external:@wordpress/primitives var require_primitives = __commonJS({ "package-external:@wordpress/primitives"(exports, module) { module.exports = window.wp.primitives; } }); // vendor-external:react/jsx-runtime var require_jsx_runtime = __commonJS({ "vendor-external:react/jsx-runtime"(exports, module) { module.exports = window.ReactJSXRuntime; } }); // package-external:@wordpress/components var require_components = __commonJS({ "package-external:@wordpress/components"(exports, module) { module.exports = window.wp.components; } }); // vendor-external:react var require_react = __commonJS({ "vendor-external:react"(exports, module) { module.exports = window.React; } }); // vendor-external:react-dom var require_react_dom = __commonJS({ "vendor-external:react-dom"(exports, module) { module.exports = window.ReactDOM; } }); // node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js var require_use_sync_external_store_shim_development = __commonJS({ "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js"(exports) { "use strict"; (function() { function is(x, y) { return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y; } function useSyncExternalStore$2(subscribe2, getSnapshot2) { didWarnOld18Alpha || void 0 === React31.startTransition || (didWarnOld18Alpha = true, console.error( "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." )); var value = getSnapshot2(); if (!didWarnUncachedGetSnapshot) { var cachedValue = getSnapshot2(); objectIs(value, cachedValue) || (console.error( "The result of getSnapshot should be cached to avoid an infinite loop" ), didWarnUncachedGetSnapshot = true); } cachedValue = useState17({ inst: { value, getSnapshot: getSnapshot2 } }); var inst = cachedValue[0].inst, forceUpdate = cachedValue[1]; useLayoutEffect3( function() { inst.value = value; inst.getSnapshot = getSnapshot2; checkIfSnapshotChanged(inst) && forceUpdate({ inst }); }, [subscribe2, value, getSnapshot2] ); useEffect12( function() { checkIfSnapshotChanged(inst) && forceUpdate({ inst }); return subscribe2(function() { checkIfSnapshotChanged(inst) && forceUpdate({ inst }); }); }, [subscribe2] ); useDebugValue(value); return value; } function checkIfSnapshotChanged(inst) { var latestGetSnapshot = inst.getSnapshot; inst = inst.value; try { var nextValue = latestGetSnapshot(); return !objectIs(inst, nextValue); } catch (error2) { return true; } } function useSyncExternalStore$1(subscribe2, getSnapshot2) { return getSnapshot2(); } "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error()); var React31 = require_react(), objectIs = "function" === typeof Object.is ? Object.is : is, useState17 = React31.useState, useEffect12 = React31.useEffect, useLayoutEffect3 = React31.useLayoutEffect, useDebugValue = React31.useDebugValue, didWarnOld18Alpha = false, didWarnUncachedGetSnapshot = false, shim = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? useSyncExternalStore$1 : useSyncExternalStore$2; exports.useSyncExternalStore = void 0 !== React31.useSyncExternalStore ? React31.useSyncExternalStore : shim; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error()); })(); } }); // node_modules/use-sync-external-store/shim/index.js var require_shim = __commonJS({ "node_modules/use-sync-external-store/shim/index.js"(exports, module) { "use strict"; if (false) { module.exports = null; } else { module.exports = require_use_sync_external_store_shim_development(); } } }); // package-external:@wordpress/a11y var require_a11y = __commonJS({ "package-external:@wordpress/a11y"(exports, module) { module.exports = window.wp.a11y; } }); // package-external:@wordpress/compose var require_compose = __commonJS({ "package-external:@wordpress/compose"(exports, module) { module.exports = window.wp.compose; } }); // package-external:@wordpress/private-apis var require_private_apis = __commonJS({ "package-external:@wordpress/private-apis"(exports, module) { module.exports = window.wp.privateApis; } }); // package-external:@wordpress/url var require_url = __commonJS({ "package-external:@wordpress/url"(exports, module) { module.exports = window.wp.url; } }); // package-external:@wordpress/html-entities var require_html_entities = __commonJS({ "package-external:@wordpress/html-entities"(exports, module) { module.exports = window.wp.htmlEntities; } }); // package-external:@wordpress/data var require_data = __commonJS({ "package-external:@wordpress/data"(exports, module) { module.exports = window.wp.data; } }); // packages/format-library/build-module/index.mjs var import_rich_text18 = __toESM(require_rich_text(), 1); // packages/format-library/build-module/bold/index.mjs var import_i18n = __toESM(require_i18n(), 1); var import_rich_text = __toESM(require_rich_text(), 1); var import_block_editor = __toESM(require_block_editor(), 1); // packages/icons/build-module/icon/index.mjs var import_element = __toESM(require_element(), 1); var icon_default = (0, import_element.forwardRef)( ({ icon, size = 24, ...props }, ref) => { return (0, import_element.cloneElement)(icon, { width: size, height: size, ...props, ref }); } ); // packages/icons/build-module/library/button.mjs var import_primitives = __toESM(require_primitives(), 1); var import_jsx_runtime = __toESM(require_jsx_runtime(), 1); var button_default = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.Path, { d: "M8 12.5h8V11H8v1.5Z M19 6.5H5a2 2 0 0 0-2 2V15a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a2 2 0 0 0-2-2ZM5 8h14a.5.5 0 0 1 .5.5V15a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V8.5A.5.5 0 0 1 5 8Z" }) }); // packages/icons/build-module/library/chevron-right.mjs var import_primitives2 = __toESM(require_primitives(), 1); var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1); var chevron_right_default = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives2.Path, { d: "M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z" }) }); // packages/icons/build-module/library/code.mjs var import_primitives3 = __toESM(require_primitives(), 1); var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1); var code_default = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives3.Path, { d: "M20.8 10.7l-4.3-4.3-1.1 1.1 4.3 4.3c.1.1.1.3 0 .4l-4.3 4.3 1.1 1.1 4.3-4.3c.7-.8.7-1.9 0-2.6zM4.2 11.8l4.3-4.3-1-1-4.3 4.3c-.7.7-.7 1.8 0 2.5l4.3 4.3 1.1-1.1-4.3-4.3c-.2-.1-.2-.3-.1-.4z" }) }); // packages/icons/build-module/library/color.mjs var import_primitives4 = __toESM(require_primitives(), 1); var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1); var color_default = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives4.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives4.Path, { d: "M17.2 10.9c-.5-1-1.2-2.1-2.1-3.2-.6-.9-1.3-1.7-2.1-2.6L12 4l-1 1.1c-.6.9-1.3 1.7-2 2.6-.8 1.2-1.5 2.3-2 3.2-.6 1.2-1 2.2-1 3 0 3.4 2.7 6.1 6.1 6.1s6.1-2.7 6.1-6.1c0-.8-.3-1.8-1-3zm-5.1 7.6c-2.5 0-4.6-2.1-4.6-4.6 0-.3.1-1 .8-2.3.5-.9 1.1-1.9 2-3.1.7-.9 1.3-1.7 1.8-2.3.7.8 1.3 1.6 1.8 2.3.8 1.1 1.5 2.2 2 3.1.7 1.3.8 2 .8 2.3 0 2.5-2.1 4.6-4.6 4.6z" }) }); // packages/icons/build-module/library/format-bold.mjs var import_primitives5 = __toESM(require_primitives(), 1); var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1); var format_bold_default = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives5.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives5.Path, { d: "M14.7 11.3c1-.6 1.5-1.6 1.5-3 0-2.3-1.3-3.4-4-3.4H7v14h5.8c1.4 0 2.5-.3 3.3-1 .8-.7 1.2-1.7 1.2-2.9.1-1.9-.8-3.1-2.6-3.7zm-5.1-4h2.3c.6 0 1.1.1 1.4.4.3.3.5.7.5 1.2s-.2 1-.5 1.2c-.3.3-.8.4-1.4.4H9.6V7.3zm4.6 9c-.4.3-1 .4-1.7.4H9.6v-3.9h2.9c.7 0 1.3.2 1.7.5.4.3.6.8.6 1.5s-.2 1.2-.6 1.5z" }) }); // packages/icons/build-module/library/format-italic.mjs var import_primitives6 = __toESM(require_primitives(), 1); var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1); var format_italic_default = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives6.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives6.Path, { d: "M12.5 5L10 19h1.9l2.5-14z" }) }); // packages/icons/build-module/library/format-strikethrough.mjs var import_primitives7 = __toESM(require_primitives(), 1); var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1); var format_strikethrough_default = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives7.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives7.Path, { d: "M9.1 9v-.5c0-.6.2-1.1.7-1.4.5-.3 1.2-.5 2-.5.7 0 1.4.1 2.1.3.7.2 1.4.5 2.1.9l.2-1.9c-.6-.3-1.2-.5-1.9-.7-.8-.1-1.6-.2-2.4-.2-1.5 0-2.7.3-3.6 1-.8.7-1.2 1.5-1.2 2.6V9h2zM20 12H4v1h8.3c.3.1.6.2.8.3.5.2.9.5 1.1.8.3.3.4.7.4 1.2 0 .7-.2 1.1-.8 1.5-.5.3-1.2.5-2.1.5-.8 0-1.6-.1-2.4-.3-.8-.2-1.5-.5-2.2-.8L7 18.1c.5.2 1.2.4 2 .6.8.2 1.6.3 2.4.3 1.7 0 3-.3 3.9-1 .9-.7 1.3-1.6 1.3-2.8 0-.9-.2-1.7-.7-2.2H20v-1z" }) }); // packages/icons/build-module/library/help.mjs var import_primitives8 = __toESM(require_primitives(), 1); var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1); var help_default = /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_primitives8.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_primitives8.Path, { d: "M12 4a8 8 0 1 1 .001 16.001A8 8 0 0 1 12 4Zm0 1.5a6.5 6.5 0 1 0-.001 13.001A6.5 6.5 0 0 0 12 5.5Zm.75 11h-1.5V15h1.5v1.5Zm-.445-9.234a3 3 0 0 1 .445 5.89V14h-1.5v-1.25c0-.57.452-.958.917-1.01A1.5 1.5 0 0 0 12 8.75a1.5 1.5 0 0 0-1.5 1.5H9a3 3 0 0 1 3.305-2.984Z" }) }); // packages/icons/build-module/library/language.mjs var import_primitives9 = __toESM(require_primitives(), 1); var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1); var language_default = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_primitives9.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_primitives9.Path, { d: "M17.5 10h-1.7l-3.7 10.5h1.7l.9-2.6h3.9l.9 2.6h1.7L17.5 10zm-2.2 6.3 1.4-4 1.4 4h-2.8zm-4.8-3.8c1.6-1.8 2.9-3.6 3.7-5.7H16V5.2h-5.8V3H8.8v2.2H3v1.5h9.6c-.7 1.6-1.8 3.1-3.1 4.6C8.6 10.2 7.8 9 7.2 8H5.6c.6 1.4 1.7 2.9 2.9 4.4l-2.4 2.4c-.3.4-.7.8-1.1 1.2l1 1 1.2-1.2c.8-.8 1.6-1.5 2.3-2.3.8.9 1.7 1.7 2.5 2.5l.6-1.5c-.7-.6-1.4-1.3-2.1-2z" }) }); // packages/icons/build-module/library/link.mjs var import_primitives10 = __toESM(require_primitives(), 1); var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1); var link_default = /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_primitives10.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_primitives10.Path, { d: "M10 17.389H8.444A5.194 5.194 0 1 1 8.444 7H10v1.5H8.444a3.694 3.694 0 0 0 0 7.389H10v1.5ZM14 7h1.556a5.194 5.194 0 0 1 0 10.39H14v-1.5h1.556a3.694 3.694 0 0 0 0-7.39H14V7Zm-4.5 6h5v-1.5h-5V13Z" }) }); // packages/icons/build-module/library/math.mjs var import_primitives11 = __toESM(require_primitives(), 1); var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1); var math_default = /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_primitives11.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_primitives11.Path, { d: "M11.2 6.8c-.7 0-1.4.5-1.6 1.1l-2.8 7.5-1.2-1.8c-.1-.2-.4-.3-.6-.3H3v1.5h1.6l1.2 1.8c.6.9 1.9.7 2.2-.3l2.9-7.9s.1-.2.2-.2h7.8V6.7h-7.8Zm5.3 3.4-1.9 1.9-1.9-1.9-1.1 1.1 1.9 1.9-1.9 1.9 1.1 1.1 1.9-1.9 1.9 1.9 1.1-1.1-1.9-1.9 1.9-1.9-1.1-1.1Z" }) }); // packages/icons/build-module/library/subscript.mjs var import_primitives12 = __toESM(require_primitives(), 1); var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1); var subscript_default = /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_primitives12.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_primitives12.Path, { d: "M16.9 18.3l.8-1.2c.4-.6.7-1.2.9-1.6.2-.4.3-.8.3-1.2 0-.3-.1-.7-.2-1-.1-.3-.4-.5-.6-.7-.3-.2-.6-.3-1-.3s-.8.1-1.1.2c-.3.1-.7.3-1 .6l.2 1.3c.3-.3.5-.5.8-.6s.6-.2.9-.2c.3 0 .5.1.7.2.2.2.2.4.2.7 0 .3-.1.5-.2.8-.1.3-.4.7-.8 1.3L15 19.4h4.3v-1.2h-2.4zM14.1 7.2h-2L9.5 11 6.9 7.2h-2l3.6 5.3L4.7 18h2l2.7-4 2.7 4h2l-3.8-5.5 3.8-5.3z" }) }); // packages/icons/build-module/library/superscript.mjs var import_primitives13 = __toESM(require_primitives(), 1); var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1); var superscript_default = /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_primitives13.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_primitives13.Path, { d: "M16.9 10.3l.8-1.3c.4-.6.7-1.2.9-1.6.2-.4.3-.8.3-1.2 0-.3-.1-.7-.2-1-.2-.2-.4-.4-.7-.6-.3-.2-.6-.3-1-.3s-.8.1-1.1.2c-.3.1-.7.3-1 .6l.1 1.3c.3-.3.5-.5.8-.6s.6-.2.9-.2c.3 0 .5.1.7.2.2.2.2.4.2.7 0 .3-.1.5-.2.8-.1.3-.4.7-.8 1.3l-1.8 2.8h4.3v-1.2h-2.2zm-2.8-3.1h-2L9.5 11 6.9 7.2h-2l3.6 5.3L4.7 18h2l2.7-4 2.7 4h2l-3.8-5.5 3.8-5.3z" }) }); // packages/icons/build-module/library/text-color.mjs var import_primitives14 = __toESM(require_primitives(), 1); var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1); var text_color_default = /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_primitives14.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_primitives14.Path, { d: "M12.9 6h-2l-4 11h1.9l1.1-3h4.2l1.1 3h1.9L12.9 6zm-2.5 6.5l1.5-4.9 1.7 4.9h-3.2z" }) }); // packages/format-library/build-module/bold/index.mjs var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1); var name = "core/bold"; var title = (0, import_i18n.__)("Bold"); var bold = { name, title, tagName: "strong", className: null, edit({ isActive, value, onChange, onFocus, isVisible = true }) { function onToggle() { onChange((0, import_rich_text.toggleFormat)(value, { type: name, title })); } function onClick() { onChange((0, import_rich_text.toggleFormat)(value, { type: name })); onFocus(); } return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( import_block_editor.RichTextShortcut, { type: "primary", character: "b", onUse: onToggle } ), isVisible && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( import_block_editor.RichTextToolbarButton, { name: "bold", icon: format_bold_default, title, onClick, isActive, shortcutType: "primary", shortcutCharacter: "b" } ), /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( import_block_editor.__unstableRichTextInputEvent, { inputType: "formatBold", onInput: onToggle } ) ] }); } }; // packages/format-library/build-module/code/index.mjs var import_i18n2 = __toESM(require_i18n(), 1); var import_rich_text2 = __toESM(require_rich_text(), 1); var import_block_editor2 = __toESM(require_block_editor(), 1); var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1); var name2 = "core/code"; var title2 = (0, import_i18n2.__)("Inline code"); var code = { name: name2, title: title2, tagName: "code", className: null, __unstableInputRule(value) { const BACKTICK = "`"; const { start, text } = value; const characterBefore = text[start - 1]; if (characterBefore !== BACKTICK) { return value; } if (start - 2 < 0) { return value; } const indexBefore = text.lastIndexOf(BACKTICK, start - 2); if (indexBefore === -1) { return value; } const startIndex = indexBefore; const endIndex = start - 2; if (startIndex === endIndex) { return value; } value = (0, import_rich_text2.remove)(value, startIndex, startIndex + 1); value = (0, import_rich_text2.remove)(value, endIndex, endIndex + 1); value = (0, import_rich_text2.applyFormat)(value, { type: name2 }, startIndex, endIndex); return value; }, edit({ value, onChange, onFocus, isActive }) { function onClick() { onChange((0, import_rich_text2.toggleFormat)(value, { type: name2, title: title2 })); onFocus(); } return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)( import_block_editor2.RichTextShortcut, { type: "access", character: "x", onUse: onClick } ), /* @__PURE__ */ (0, import_jsx_runtime16.jsx)( import_block_editor2.RichTextToolbarButton, { icon: code_default, title: title2, onClick, isActive, role: "menuitemcheckbox" } ) ] }); } }; // packages/format-library/build-module/image/index.mjs var import_components = __toESM(require_components(), 1); // node_modules/clsx/dist/clsx.mjs function r(e) { var t, f, n = ""; if ("string" == typeof e || "number" == typeof e) n += e; else if ("object" == typeof e) if (Array.isArray(e)) { var o = e.length; for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f); } else for (f in e) e[f] && (n && (n += " "), n += f); return n; } function clsx() { for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t); return n; } var clsx_default = clsx; // node_modules/@base-ui/utils/useControlled.mjs var React = __toESM(require_react(), 1); // node_modules/@base-ui/utils/error.mjs var set; if (true) { set = /* @__PURE__ */ new Set(); } function error(...messages) { if (true) { const messageKey = messages.join(" "); if (!set.has(messageKey)) { set.add(messageKey); console.error(`Base UI: ${messageKey}`); } } } // node_modules/@base-ui/utils/useControlled.mjs function useControlled({ controlled, default: defaultProp, name: name16, state = "value" }) { const { current: isControlled } = React.useRef(controlled !== void 0); const [valueState, setValue] = React.useState(defaultProp); const value = isControlled ? controlled : valueState; if (true) { React.useEffect(() => { if (isControlled !== (controlled !== void 0)) { error([`A component is changing the ${isControlled ? "" : "un"}controlled ${state} state of ${name16} to be ${isControlled ? "un" : ""}controlled.`, "Elements should not switch from uncontrolled to controlled (or vice versa).", `Decide between using a controlled or uncontrolled ${name16} 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")); } }, [state, name16, controlled]); const { current: defaultValue } = React.useRef(defaultProp); React.useEffect(() => { if (!isControlled && serializeToDevModeString(defaultValue) !== serializeToDevModeString(defaultProp)) { error([`A component is changing the default ${state} state of an uncontrolled ${name16} after being initialized. To suppress this warning opt to use a controlled ${name16}.`].join("\n")); } }, [defaultProp]); } const setValueIfUncontrolled = React.useCallback((newValue) => { if (!isControlled) { setValue(newValue); } }, []); return [value, setValueIfUncontrolled]; } function serializeToDevModeString(input) { let nextId = 0; const seen = /* @__PURE__ */ new WeakMap(); try { const result = JSON.stringify(input, function replacer(key, value) { if (key === "_owner" && this != null && typeof this === "object" && "$$typeof" in this) { return void 0; } if (typeof value === "bigint") { return `__bigint__:${value}`; } if (value !== null && typeof value === "object") { const id = seen.get(value); if (id !== void 0) { return `__object__:${id}`; } seen.set(value, nextId); nextId += 1; } return value; }); return result ?? `__top__:${typeof input}`; } catch { return "__unserializable__"; } } // node_modules/@base-ui/utils/safeReact.mjs var React2 = __toESM(require_react(), 1); var SafeReact = { ...React2 }; // node_modules/@base-ui/utils/useRefWithInit.mjs var React3 = __toESM(require_react(), 1); var UNINITIALIZED = {}; function useRefWithInit(init, initArg) { const ref = React3.useRef(UNINITIALIZED); if (ref.current === UNINITIALIZED) { ref.current = init(initArg); } return ref; } // node_modules/@base-ui/utils/useStableCallback.mjs var useInsertionEffect = SafeReact.useInsertionEffect; var useSafeInsertionEffect = ( // React 17 doesn't have useInsertionEffect. useInsertionEffect && // Preact replaces useInsertionEffect with useLayoutEffect and fires too late. useInsertionEffect !== SafeReact.useLayoutEffect ? useInsertionEffect : (fn) => fn() ); function useStableCallback(callback) { const stable = useRefWithInit(createStableCallback).current; stable.next = callback; useSafeInsertionEffect(stable.effect); return stable.trampoline; } function createStableCallback() { const stable = { next: void 0, callback: assertNotCalled, trampoline: (...args) => stable.callback?.(...args), effect: () => { stable.callback = stable.next; } }; return stable; } function assertNotCalled() { if (true) { throw ( /* minify-error-disabled */ new Error("Base UI: Cannot call an event handler while rendering.") ); } } // node_modules/@base-ui/utils/useIsoLayoutEffect.mjs var React4 = __toESM(require_react(), 1); var noop = () => { }; var useIsoLayoutEffect = typeof document !== "undefined" ? React4.useLayoutEffect : noop; // node_modules/@base-ui/utils/warn.mjs var set2; if (true) { set2 = /* @__PURE__ */ new Set(); } function warn(...messages) { if (true) { const messageKey = messages.join(" "); if (!set2.has(messageKey)) { set2.add(messageKey); console.warn(`Base UI: ${messageKey}`); } } } // node_modules/@base-ui/react/internals/composite/list/CompositeList.mjs var React6 = __toESM(require_react(), 1); // node_modules/@base-ui/react/internals/composite/list/CompositeListContext.mjs var React5 = __toESM(require_react(), 1); var CompositeListContext = /* @__PURE__ */ React5.createContext({ register: () => { }, unregister: () => { }, subscribeMapChange: () => { return () => { }; }, elementsRef: { current: [] }, nextIndexRef: { current: 0 } }); if (true) CompositeListContext.displayName = "CompositeListContext"; function useCompositeListContext() { return React5.useContext(CompositeListContext); } // node_modules/@base-ui/react/internals/composite/list/CompositeList.mjs var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1); function CompositeList(props) { const { children, elementsRef, labelsRef, onMapChange: onMapChangeProp } = props; const onMapChange = useStableCallback(onMapChangeProp); const nextIndexRef = React6.useRef(0); const listeners = useRefWithInit(createListeners).current; const map = useRefWithInit(createMap).current; const [mapTick, setMapTick] = React6.useState(0); const lastTickRef = React6.useRef(mapTick); const register = useStableCallback((node, metadata) => { map.set(node, metadata ?? null); lastTickRef.current += 1; setMapTick(lastTickRef.current); }); const unregister = useStableCallback((node) => { map.delete(node); lastTickRef.current += 1; setMapTick(lastTickRef.current); }); const sortedMap = React6.useMemo(() => { disableEslintWarning(mapTick); const newMap = /* @__PURE__ */ new Map(); const sortedNodes = Array.from(map.keys()).filter((node) => node.isConnected).sort(sortByDocumentPosition); sortedNodes.forEach((node, index) => { const metadata = map.get(node) ?? {}; newMap.set(node, { ...metadata, index }); }); return newMap; }, [map, mapTick]); useIsoLayoutEffect(() => { if (typeof MutationObserver !== "function" || sortedMap.size === 0) { return void 0; } const mutationObserver = new MutationObserver((entries) => { const diff = /* @__PURE__ */ new Set(); const updateDiff = (node) => diff.has(node) ? diff.delete(node) : diff.add(node); entries.forEach((entry) => { entry.removedNodes.forEach(updateDiff); entry.addedNodes.forEach(updateDiff); }); if (diff.size === 0) { lastTickRef.current += 1; setMapTick(lastTickRef.current); } }); sortedMap.forEach((_, node) => { if (node.parentElement) { mutationObserver.observe(node.parentElement, { childList: true }); } }); return () => { mutationObserver.disconnect(); }; }, [sortedMap]); useIsoLayoutEffect(() => { const shouldUpdateLengths = lastTickRef.current === mapTick; if (shouldUpdateLengths) { if (elementsRef.current.length !== sortedMap.size) { elementsRef.current.length = sortedMap.size; } if (labelsRef && labelsRef.current.length !== sortedMap.size) { labelsRef.current.length = sortedMap.size; } nextIndexRef.current = sortedMap.size; } onMapChange(sortedMap); }, [onMapChange, sortedMap, elementsRef, labelsRef, mapTick]); useIsoLayoutEffect(() => { return () => { elementsRef.current = []; }; }, [elementsRef]); useIsoLayoutEffect(() => { return () => { if (labelsRef) { labelsRef.current = []; } }; }, [labelsRef]); const subscribeMapChange = useStableCallback((fn) => { listeners.add(fn); return () => { listeners.delete(fn); }; }); useIsoLayoutEffect(() => { listeners.forEach((l) => l(sortedMap)); }, [listeners, sortedMap]); const contextValue = React6.useMemo(() => ({ register, unregister, subscribeMapChange, elementsRef, labelsRef, nextIndexRef }), [register, unregister, subscribeMapChange, elementsRef, labelsRef, nextIndexRef]); return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(CompositeListContext.Provider, { value: contextValue, children }); } function createMap() { return /* @__PURE__ */ new Map(); } function createListeners() { return /* @__PURE__ */ new Set(); } function sortByDocumentPosition(a, b) { const position = a.compareDocumentPosition(b); if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) { return -1; } if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) { return 1; } return 0; } function disableEslintWarning(_) { } // node_modules/@base-ui/react/internals/direction-context/DirectionContext.mjs var React7 = __toESM(require_react(), 1); var DirectionContext = /* @__PURE__ */ React7.createContext(void 0); if (true) DirectionContext.displayName = "DirectionContext"; function useDirection() { const context = React7.useContext(DirectionContext); return context?.direction ?? "ltr"; } // node_modules/@base-ui/react/internals/useRenderElement.mjs var React10 = __toESM(require_react(), 1); // node_modules/@base-ui/utils/useMergedRefs.mjs function useMergedRefs(a, b, c, d) { const forkRef = useRefWithInit(createForkRef).current; if (didChange(forkRef, a, b, c, d)) { update(forkRef, [a, b, c, d]); } return forkRef.callback; } function useMergedRefsN(refs) { const forkRef = useRefWithInit(createForkRef).current; if (didChangeN(forkRef, refs)) { update(forkRef, refs); } return forkRef.callback; } function createForkRef() { return { callback: null, cleanup: null, refs: [] }; } function didChange(forkRef, a, b, c, d) { return forkRef.refs[0] !== a || forkRef.refs[1] !== b || forkRef.refs[2] !== c || forkRef.refs[3] !== d; } function didChangeN(forkRef, newRefs) { return forkRef.refs.length !== newRefs.length || forkRef.refs.some((ref, index) => ref !== newRefs[index]); } function update(forkRef, refs) { forkRef.refs = refs; if (refs.every((ref) => ref == null)) { forkRef.callback = null; return; } forkRef.callback = (instance) => { if (forkRef.cleanup) { forkRef.cleanup(); forkRef.cleanup = null; } if (instance != null) { const cleanupCallbacks = Array(refs.length).fill(null); for (let i = 0; i < refs.length; i += 1) { const ref = refs[i]; if (ref == null) { continue; } switch (typeof ref) { case "function": { const refCleanup = ref(instance); if (typeof refCleanup === "function") { cleanupCallbacks[i] = refCleanup; } break; } case "object": { ref.current = instance; break; } default: } } forkRef.cleanup = () => { for (let i = 0; i < refs.length; i += 1) { const ref = refs[i]; if (ref == null) { continue; } switch (typeof ref) { case "function": { const cleanupCallback = cleanupCallbacks[i]; if (typeof cleanupCallback === "function") { cleanupCallback(); } else { ref(null); } break; } case "object": { ref.current = null; break; } default: } } }; } }; } // node_modules/@base-ui/utils/getReactElementRef.mjs var React9 = __toESM(require_react(), 1); // node_modules/@base-ui/utils/reactVersion.mjs var React8 = __toESM(require_react(), 1); var majorVersion = parseInt(React8.version, 10); function isReactVersionAtLeast(reactVersionToCheck) { return majorVersion >= reactVersionToCheck; } // node_modules/@base-ui/utils/getReactElementRef.mjs function getReactElementRef(element) { if (!/* @__PURE__ */ React9.isValidElement(element)) { return null; } const reactElement = element; const propsWithRef = reactElement.props; return (isReactVersionAtLeast(19) ? propsWithRef?.ref : reactElement.ref) ?? null; } // node_modules/@base-ui/utils/mergeObjects.mjs function mergeObjects(a, b) { if (a && !b) { return a; } if (!a && b) { return b; } if (a || b) { return { ...a, ...b }; } return void 0; } // node_modules/@base-ui/utils/empty.mjs function NOOP() { } var EMPTY_ARRAY = Object.freeze([]); var EMPTY_OBJECT = Object.freeze({}); // node_modules/@base-ui/react/internals/getStateAttributesProps.mjs function getStateAttributesProps(state, customMapping) { const props = {}; for (const key in state) { const value = state[key]; if (customMapping?.hasOwnProperty(key)) { const customProps = customMapping[key](value); if (customProps != null) { Object.assign(props, customProps); } continue; } if (value === true) { props[`data-${key.toLowerCase()}`] = ""; } else if (value) { props[`data-${key.toLowerCase()}`] = value.toString(); } } return props; } // node_modules/@base-ui/react/utils/resolveClassName.mjs function resolveClassName(className, state) { return typeof className === "function" ? className(state) : className; } // node_modules/@base-ui/react/utils/resolveStyle.mjs function resolveStyle(style, state) { return typeof style === "function" ? style(state) : style; } // node_modules/@base-ui/react/merge-props/mergeProps.mjs var EMPTY_PROPS = {}; function mergeProps(a, b, c, d, e) { if (!c && !d && !e && !a) { return createInitialMergedProps(b); } let merged = createInitialMergedProps(a); if (b) { merged = mergeInto(merged, b); } if (c) { merged = mergeInto(merged, c); } if (d) { merged = mergeInto(merged, d); } if (e) { merged = mergeInto(merged, e); } return merged; } function mergePropsN(props) { if (props.length === 0) { return EMPTY_PROPS; } if (props.length === 1) { return createInitialMergedProps(props[0]); } let merged = createInitialMergedProps(props[0]); for (let i = 1; i < props.length; i += 1) { merged = mergeInto(merged, props[i]); } return merged; } function createInitialMergedProps(inputProps) { if (isPropsGetter(inputProps)) { return { ...resolvePropsGetter(inputProps, EMPTY_PROPS) }; } return copyInitialProps(inputProps); } function mergeInto(merged, inputProps) { if (isPropsGetter(inputProps)) { return resolvePropsGetter(inputProps, merged); } return mutablyMergeInto(merged, inputProps); } function copyInitialProps(inputProps) { const copiedProps = { ...inputProps }; for (const propName in copiedProps) { const propValue = copiedProps[propName]; if (isEventHandler(propName, propValue)) { copiedProps[propName] = wrapEventHandler(propValue); } } return copiedProps; } function mutablyMergeInto(mergedProps, externalProps) { if (!externalProps) { return mergedProps; } for (const propName in externalProps) { const externalPropValue = externalProps[propName]; switch (propName) { case "style": { mergedProps[propName] = mergeObjects(mergedProps.style, externalPropValue); break; } case "className": { mergedProps[propName] = mergeClassNames(mergedProps.className, externalPropValue); break; } default: { if (isEventHandler(propName, externalPropValue)) { mergedProps[propName] = mergeEventHandlers(mergedProps[propName], externalPropValue); } else { mergedProps[propName] = externalPropValue; } } } } return mergedProps; } function isEventHandler(key, value) { const code0 = key.charCodeAt(0); const code1 = key.charCodeAt(1); const code2 = key.charCodeAt(2); return code0 === 111 && code1 === 110 && code2 >= 65 && code2 <= 90 && (typeof value === "function" || typeof value === "undefined"); } function isPropsGetter(inputProps) { return typeof inputProps === "function"; } function resolvePropsGetter(inputProps, previousProps) { if (isPropsGetter(inputProps)) { return inputProps(previousProps); } return inputProps ?? EMPTY_PROPS; } function mergeEventHandlers(ourHandler, theirHandler) { if (!theirHandler) { return ourHandler; } if (!ourHandler) { return wrapEventHandler(theirHandler); } return (...args) => { const event = args[0]; if (isSyntheticEvent(event)) { const baseUIEvent = event; makeEventPreventable(baseUIEvent); const result2 = theirHandler(...args); if (!baseUIEvent.baseUIHandlerPrevented) { ourHandler?.(...args); } return result2; } const result = theirHandler(...args); ourHandler?.(...args); return result; }; } function wrapEventHandler(handler) { if (!handler) { return handler; } return (...args) => { const event = args[0]; if (isSyntheticEvent(event)) { makeEventPreventable(event); } return handler(...args); }; } function makeEventPreventable(event) { event.preventBaseUIHandler = () => { event.baseUIHandlerPrevented = true; }; return event; } function mergeClassNames(ourClassName, theirClassName) { if (theirClassName) { if (ourClassName) { return theirClassName + " " + ourClassName; } return theirClassName; } return ourClassName; } function isSyntheticEvent(event) { return event != null && typeof event === "object" && "nativeEvent" in event; } // node_modules/@base-ui/react/internals/useRenderElement.mjs var import_react = __toESM(require_react(), 1); function useRenderElement(element, componentProps, params = {}) { const renderProp = componentProps.render; const outProps = useRenderElementProps(componentProps, params); if (params.enabled === false) { return null; } const state = params.state ?? EMPTY_OBJECT; return evaluateRenderProp(element, renderProp, outProps, state); } function useRenderElementProps(componentProps, params = {}) { const { className: classNameProp, style: styleProp, render: renderProp } = componentProps; const { state = EMPTY_OBJECT, ref, props, stateAttributesMapping: stateAttributesMapping3, enabled = true } = params; const className = enabled ? resolveClassName(classNameProp, state) : void 0; const style = enabled ? resolveStyle(styleProp, state) : void 0; const stateProps = enabled ? getStateAttributesProps(state, stateAttributesMapping3) : EMPTY_OBJECT; const resolvedProps = enabled && props ? resolveRenderFunctionProps(props) : void 0; const outProps = enabled ? mergeObjects(stateProps, resolvedProps) ?? {} : EMPTY_OBJECT; if (typeof document !== "undefined") { if (!enabled) { useMergedRefs(null, null); } else if (Array.isArray(ref)) { outProps.ref = useMergedRefsN([outProps.ref, getReactElementRef(renderProp), ...ref]); } else { outProps.ref = useMergedRefs(outProps.ref, getReactElementRef(renderProp), ref); } } if (!enabled) { return EMPTY_OBJECT; } if (className !== void 0) { outProps.className = mergeClassNames(outProps.className, className); } if (style !== void 0) { outProps.style = mergeObjects(outProps.style, style); } return outProps; } function resolveRenderFunctionProps(props) { if (Array.isArray(props)) { return mergePropsN(props); } return mergeProps(void 0, props); } var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy"); var COMPONENT_IDENTIFIER_PATTERN = /^[A-Z][A-Za-z0-9$]*$/; var LOWERCASE_CHARACTER_PATTERN = /[a-z]/; function evaluateRenderProp(element, render, props, state) { if (render) { if (typeof render === "function") { if (true) { warnIfRenderPropLooksLikeComponent(render); } return render(props, state); } const mergedProps = mergeProps(props, render.props); mergedProps.ref = props.ref; let newElement = render; if (newElement?.$$typeof === REACT_LAZY_TYPE) { const children = React10.Children.toArray(render); newElement = children[0]; } if (true) { if (!/* @__PURE__ */ React10.isValidElement(newElement)) { 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")); } } return /* @__PURE__ */ React10.cloneElement(newElement, mergedProps); } if (element) { if (typeof element === "string") { return renderTag(element, props); } } throw new Error(true ? "Base UI: Render element or function are not defined." : formatErrorMessage_default(8)); } function warnIfRenderPropLooksLikeComponent(renderFn) { const functionName = renderFn.name; if (functionName.length === 0) { return; } if (!COMPONENT_IDENTIFIER_PATTERN.test(functionName)) { return; } if (!LOWERCASE_CHARACTER_PATTERN.test(functionName)) { return; } warn(`The \`render\` prop received a function named \`${functionName}\` that starts with an uppercase letter.`, "This usually means a React component was passed directly as `render={Component}`.", "Base UI calls `render` as a plain function, which can break the Rules of Hooks during reconciliation.", "If this is an intentional render callback, rename it to start with a lowercase letter.", "Use `render={<Component />}` or `render={(props) => <Component {...props} />}` instead.", "https://base-ui.com/r/invalid-render-prop"); } function renderTag(Tag, props) { if (Tag === "button") { return /* @__PURE__ */ (0, import_react.createElement)("button", { type: "button", ...props, key: props.key }); } if (Tag === "img") { return /* @__PURE__ */ (0, import_react.createElement)("img", { alt: "", ...props, key: props.key }); } return /* @__PURE__ */ React10.createElement(Tag, props); } // node_modules/@base-ui/utils/useId.mjs var React11 = __toESM(require_react(), 1); var globalId = 0; function useGlobalId(idOverride, prefix = "mui") { const [defaultId, setDefaultId] = React11.useState(idOverride); const id = idOverride || defaultId; React11.useEffect(() => { if (defaultId == null) { globalId += 1; setDefaultId(`${prefix}-${globalId}`); } }, [defaultId, prefix]); return id; } var maybeReactUseId = SafeReact.useId; function useId(idOverride, prefix) { if (maybeReactUseId !== void 0) { const reactId = maybeReactUseId(); return idOverride ?? (prefix ? `${prefix}-${reactId}` : reactId); } return useGlobalId(idOverride, prefix); } // node_modules/@base-ui/react/internals/useBaseUiId.mjs function useBaseUiId(idOverride) { return useId(idOverride, "base-ui"); } // node_modules/@base-ui/react/internals/reason-parts.mjs var reason_parts_exports = {}; __export(reason_parts_exports, { cancelOpen: () => cancelOpen, chipRemovePress: () => chipRemovePress, clearPress: () => clearPress, closePress: () => closePress, closeWatcher: () => closeWatcher, decrementPress: () => decrementPress, disabled: () => disabled, drag: () => drag, escapeKey: () => escapeKey, focusOut: () => focusOut, imperativeAction: () => imperativeAction, incrementPress: () => incrementPress, initial: () => initial, inputBlur: () => inputBlur, inputChange: () => inputChange, inputClear: () => inputClear, inputPaste: () => inputPaste, inputPress: () => inputPress, itemPress: () => itemPress, keyboard: () => keyboard, linkPress: () => linkPress, listNavigation: () => listNavigation, missing: () => missing, none: () => none, outsidePress: () => outsidePress, pointer: () => pointer, scrub: () => scrub, siblingOpen: () => siblingOpen, swipe: () => swipe, trackPress: () => trackPress, triggerFocus: () => triggerFocus, triggerHover: () => triggerHover, triggerPress: () => triggerPress, wheel: () => wheel, windowResize: () => windowResize }); var none = "none"; var triggerPress = "trigger-press"; var triggerHover = "trigger-hover"; var triggerFocus = "trigger-focus"; var outsidePress = "outside-press"; var itemPress = "item-press"; var closePress = "close-press"; var linkPress = "link-press"; var clearPress = "clear-press"; var chipRemovePress = "chip-remove-press"; var trackPress = "track-press"; var incrementPress = "increment-press"; var decrementPress = "decrement-press"; var inputChange = "input-change"; var inputClear = "input-clear"; var inputBlur = "input-blur"; var inputPaste = "input-paste"; var inputPress = "input-press"; var focusOut = "focus-out"; var escapeKey = "escape-key"; var closeWatcher = "close-watcher"; var listNavigation = "list-navigation"; var keyboard = "keyboard"; var pointer = "pointer"; var drag = "drag"; var wheel = "wheel"; var scrub = "scrub"; var cancelOpen = "cancel-open"; var siblingOpen = "sibling-open"; var disabled = "disabled"; var missing = "missing"; var initial = "initial"; var imperativeAction = "imperative-action"; var swipe = "swipe"; var windowResize = "window-resize"; // node_modules/@base-ui/react/internals/createBaseUIEventDetails.mjs function createChangeEventDetails(reason, event, trigger, customProperties) { let canceled = false; let allowPropagation = false; const custom = customProperties ?? EMPTY_OBJECT; const details = { reason, event: event ?? new Event("base-ui"), cancel() { canceled = true; }, allowPropagation() { allowPropagation = true; }, get isCanceled() { return canceled; }, get isPropagationAllowed() { return allowPropagation; }, trigger, ...custom }; return details; } // node_modules/@base-ui/react/internals/useTransitionStatus.mjs var React13 = __toESM(require_react(), 1); // node_modules/@base-ui/utils/useOnMount.mjs var React12 = __toESM(require_react(), 1); var EMPTY = []; function useOnMount(fn) { React12.useEffect(fn, EMPTY); } // node_modules/@base-ui/utils/useAnimationFrame.mjs var EMPTY2 = null; var LAST_RAF = globalThis.requestAnimationFrame; var Scheduler = class { /* This implementation uses an array as a backing data-structure for frame callbacks. * It allows `O(1)` callback cancelling by inserting a `null` in the array, though it * never calls the native `cancelAnimationFrame` if there are no frames left. This can * be much more efficient if there is a call pattern that alterns as * "request-cancel-request-cancel-…". * But in the case of "request-request-…-cancel-cancel-…", it leaves the final animation * frame to run anyway. We turn that frame into a `O(1)` no-op via `callbacksCount`. */ callbacks = []; callbacksCount = 0; nextId = 1; startId = 1; isScheduled = false; tick = (timestamp) => { this.isScheduled = false; const currentCallbacks = this.callbacks; const currentCallbacksCount = this.callbacksCount; this.callbacks = []; this.callbacksCount = 0; this.startId = this.nextId; if (currentCallbacksCount > 0) { for (let i = 0; i < currentCallbacks.length; i += 1) { currentCallbacks[i]?.(timestamp); } } }; request(fn) { const id = this.nextId; this.nextId += 1; this.callbacks.push(fn); this.callbacksCount += 1; const didRAFChange = LAST_RAF !== requestAnimationFrame && (LAST_RAF = requestAnimationFrame, true); if (!this.isScheduled || didRAFChange) { requestAnimationFrame(this.tick); this.isScheduled = true; } return id; } cancel(id) { const index = id - this.startId; if (index < 0 || index >= this.callbacks.length) { return; } this.callbacks[index] = null; this.callbacksCount -= 1; } }; var scheduler = new Scheduler(); var AnimationFrame = class _AnimationFrame { static create() { return new _AnimationFrame(); } static request(fn) { return scheduler.request(fn); } static cancel(id) { return scheduler.cancel(id); } currentId = EMPTY2; /** * Executes `fn` after `delay`, clearing any previously scheduled call. */ request(fn) { this.cancel(); this.currentId = scheduler.request(() => { this.currentId = EMPTY2; fn(); }); } cancel = () => { if (this.currentId !== EMPTY2) { scheduler.cancel(this.currentId); this.currentId = EMPTY2; } }; disposeEffect = () => { return this.cancel; }; }; function useAnimationFrame() { const timeout = useRefWithInit(AnimationFrame.create).current; useOnMount(timeout.disposeEffect); return timeout; } // node_modules/@base-ui/react/internals/useTransitionStatus.mjs function useTransitionStatus(open, enableIdleState = false, deferEndingState = false) { const [transitionStatus, setTransitionStatus] = React13.useState(open && enableIdleState ? "idle" : void 0); const [mounted, setMounted] = React13.useState(open); if (open && !mounted) { setMounted(true); setTransitionStatus("starting"); } if (!open && mounted && transitionStatus !== "ending" && !deferEndingState) { setTransitionStatus("ending"); } if (!open && !mounted && transitionStatus === "ending") { setTransitionStatus(void 0); } useIsoLayoutEffect(() => { if (!open && mounted && transitionStatus !== "ending" && deferEndingState) { const frame = AnimationFrame.request(() => { setTransitionStatus("ending"); }); return () => { AnimationFrame.cancel(frame); }; } return void 0; }, [open, mounted, transitionStatus, deferEndingState]); useIsoLayoutEffect(() => { if (!open || enableIdleState) { return void 0; } const frame = AnimationFrame.request(() => { setTransitionStatus(void 0); }); return () => { AnimationFrame.cancel(frame); }; }, [enableIdleState, open]); useIsoLayoutEffect(() => { if (!open || !enableIdleState) { return void 0; } if (open && mounted && transitionStatus !== "idle") { setTransitionStatus("starting"); } const frame = AnimationFrame.request(() => { setTransitionStatus("idle"); }); return () => { AnimationFrame.cancel(frame); }; }, [enableIdleState, open, mounted, transitionStatus]); return { mounted, setMounted, transitionStatus }; } // node_modules/@base-ui/react/internals/composite/list/useCompositeListItem.mjs var React14 = __toESM(require_react(), 1); var IndexGuessBehavior = /* @__PURE__ */ (function(IndexGuessBehavior2) { IndexGuessBehavior2[IndexGuessBehavior2["None"] = 0] = "None"; IndexGuessBehavior2[IndexGuessBehavior2["GuessFromOrder"] = 1] = "GuessFromOrder"; return IndexGuessBehavior2; })({}); function useCompositeListItem(params = {}) { const { label, metadata, textRef, indexGuessBehavior, index: externalIndex } = params; const { register, unregister, subscribeMapChange, elementsRef, labelsRef, nextIndexRef } = useCompositeListContext(); const indexRef = React14.useRef(-1); const [index, setIndex] = React14.useState(externalIndex ?? (indexGuessBehavior === IndexGuessBehavior.GuessFromOrder ? () => { if (indexRef.current === -1) { const newIndex = nextIndexRef.current; nextIndexRef.current += 1; indexRef.current = newIndex; } return indexRef.current; } : -1)); const componentRef = React14.useRef(null); const ref = React14.useCallback((node) => { componentRef.current = node; if (index !== -1 && node !== null) { elementsRef.current[index] = node; if (labelsRef) { const isLabelDefined = label !== void 0; labelsRef.current[index] = isLabelDefined ? label : textRef?.current?.textContent ?? node.textContent; } } }, [index, elementsRef, labelsRef, label, textRef]); useIsoLayoutEffect(() => { if (externalIndex != null) { return void 0; } const node = componentRef.current; if (node) { register(node, metadata); return () => { unregister(node); }; } return void 0; }, [externalIndex, register, unregister, metadata]); useIsoLayoutEffect(() => { if (externalIndex != null) { return void 0; } return subscribeMapChange((map) => { const i = componentRef.current ? map.get(componentRef.current)?.index : null; if (i != null) { setIndex(i); } }); }, [externalIndex, subscribeMapChange, setIndex]); return { ref, index }; } // node_modules/@base-ui/react/internals/stateAttributesMapping.mjs var TransitionStatusDataAttributes = /* @__PURE__ */ (function(TransitionStatusDataAttributes2) { TransitionStatusDataAttributes2["startingStyle"] = "data-starting-style"; TransitionStatusDataAttributes2["endingStyle"] = "data-ending-style"; return TransitionStatusDataAttributes2; })({}); var STARTING_HOOK = { [TransitionStatusDataAttributes.startingStyle]: "" }; var ENDING_HOOK = { [TransitionStatusDataAttributes.endingStyle]: "" }; var transitionStatusMapping = { transitionStatus(value) { if (value === "starting") { return STARTING_HOOK; } if (value === "ending") { return ENDING_HOOK; } return null; } }; // node_modules/@base-ui/react/internals/use-button/useButton.mjs var React17 = __toESM(require_react(), 1); // node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs function hasWindow() { return typeof window !== "undefined"; } function getWindow(node) { var _node$ownerDocument; return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window; } function isHTMLElement(value) { if (!hasWindow()) { return false; } return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement; } function isShadowRoot(value) { if (!hasWindow() || typeof ShadowRoot === "undefined") { return false; } return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot; } function getComputedStyle2(element) { return getWindow(element).getComputedStyle(element); } // node_modules/@base-ui/react/internals/composite/root/CompositeRootContext.mjs var React15 = __toESM(require_react(), 1); var CompositeRootContext = /* @__PURE__ */ React15.createContext(void 0); if (true) CompositeRootContext.displayName = "CompositeRootContext"; function useCompositeRootContext(optional = false) { const context = React15.useContext(CompositeRootContext); if (context === void 0 && !optional) { throw new Error(true ? "Base UI: CompositeRootContext is missing. Composite parts must be placed within <Composite.Root>." : formatErrorMessage_default(16)); } return context; } // node_modules/@base-ui/react/utils/useFocusableWhenDisabled.mjs var React16 = __toESM(require_react(), 1); function useFocusableWhenDisabled(parameters) { const { focusableWhenDisabled, disabled: disabled2, composite = false, tabIndex: tabIndexProp = 0, isNativeButton } = parameters; const isFocusableComposite = composite && focusableWhenDisabled !== false; const isNonFocusableComposite = composite && focusableWhenDisabled === false; const props = React16.useMemo(() => { const additionalProps = { // allow Tabbing away from focusableWhenDisabled elements onKeyDown(event) { if (disabled2 && focusableWhenDisabled && event.key !== "Tab") { event.preventDefault(); } } }; if (!composite) { additionalProps.tabIndex = tabIndexProp; if (!isNativeButton && disabled2) { additionalProps.tabIndex = focusableWhenDisabled ? tabIndexProp : -1; } } if (isNativeButton && (focusableWhenDisabled || isFocusableComposite) || !isNativeButton && disabled2) { additionalProps["aria-disabled"] = disabled2; } if (isNativeButton && (!focusableWhenDisabled || isNonFocusableComposite)) { additionalProps.disabled = disabled2; } return additionalProps; }, [composite, disabled2, focusableWhenDisabled, isFocusableComposite, isNonFocusableComposite, isNativeButton, tabIndexProp]); return { props }; } // node_modules/@base-ui/react/internals/use-button/useButton.mjs function useButton(parameters = {}) { const { disabled: disabled2 = false, focusableWhenDisabled, tabIndex = 0, native: isNativeButton = true, composite: compositeProp } = parameters; const elementRef = React17.useRef(null); const compositeRootContext = useCompositeRootContext(true); const isCompositeItem = compositeProp ?? compositeRootContext !== void 0; const { props: focusableWhenDisabledProps } = useFocusableWhenDisabled({ focusableWhenDisabled, disabled: disabled2, composite: isCompositeItem, tabIndex, isNativeButton }); if (true) { React17.useEffect(() => { if (!elementRef.current) { return; } const isButtonTag = isButtonElement(elementRef.current); if (isNativeButton) { if (!isButtonTag) { const ownerStackMessage = SafeReact.captureOwnerStack?.() || ""; 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`."; error(`${message}${ownerStackMessage}`); } } else if (isButtonTag) { const ownerStackMessage = SafeReact.captureOwnerStack?.() || ""; 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`."; error(`${message}${ownerStackMessage}`); } }, [isNativeButton]); } const updateDisabled = React17.useCallback(() => { const element = elementRef.current; if (!isButtonElement(element)) { return; } if (isCompositeItem && disabled2 && focusableWhenDisabledProps.disabled === void 0 && element.disabled) { element.disabled = false; } }, [disabled2, focusableWhenDisabledProps.disabled, isCompositeItem]); useIsoLayoutEffect(updateDisabled, [updateDisabled]); const getButtonProps = React17.useCallback((externalProps = {}) => { const { onClick: externalOnClick, onMouseDown: externalOnMouseDown, onKeyUp: externalOnKeyUp, onKeyDown: externalOnKeyDown, onPointerDown: externalOnPointerDown, ...otherExternalProps } = externalProps; return mergeProps({ onClick(event) { if (disabled2) { event.preventDefault(); return; } externalOnClick?.(event); }, onMouseDown(event) { if (!disabled2) { externalOnMouseDown?.(event); } }, onKeyDown(event) { if (disabled2) { return; } makeEventPreventable(event); externalOnKeyDown?.(event); if (event.baseUIHandlerPrevented) { return; } const isCurrentTarget = event.target === event.currentTarget; const currentTarget = event.currentTarget; const isButton = isButtonElement(currentTarget); const isLink = !isNativeButton && isValidLinkElement(currentTarget); const shouldClick = isCurrentTarget && (isNativeButton ? isButton : !isLink); const isEnterKey = event.key === "Enter"; const isSpaceKey = event.key === " "; const role = currentTarget.getAttribute("role"); const isTextNavigationRole = role?.startsWith("menuitem") || role === "option" || role === "gridcell"; if (isCurrentTarget && isCompositeItem && isSpaceKey) { if (event.defaultPrevented && isTextNavigationRole) { return; } event.preventDefault(); if (isLink || isNativeButton && isButton) { currentTarget.click(); event.preventBaseUIHandler(); } else if (shouldClick) { externalOnClick?.(event); event.preventBaseUIHandler(); } return; } if (shouldClick) { if (!isNativeButton && (isSpaceKey || isEnterKey)) { event.preventDefault(); } if (!isNativeButton && isEnterKey) { externalOnClick?.(event); } } }, onKeyUp(event) { if (disabled2) { return; } makeEventPreventable(event); externalOnKeyUp?.(event); if (event.target === event.currentTarget && isNativeButton && isCompositeItem && isButtonElement(event.currentTarget) && event.key === " ") { event.preventDefault(); return; } if (event.baseUIHandlerPrevented) { return; } if (event.target === event.currentTarget && !isNativeButton && !isCompositeItem && event.key === " ") { externalOnClick?.(event); } }, onPointerDown(event) { if (disabled2) { event.preventDefault(); return; } externalOnPointerDown?.(event); } }, isNativeButton ? { type: "button" } : { role: "button" }, focusableWhenDisabledProps, otherExternalProps); }, [disabled2, focusableWhenDisabledProps, isCompositeItem, isNativeButton]); const buttonRef = useStableCallback((element) => { elementRef.current = element; updateDisabled(); }); return { getButtonProps, buttonRef }; } function isButtonElement(elem) { return isHTMLElement(elem) && elem.tagName === "BUTTON"; } function isValidLinkElement(elem) { return Boolean(elem?.tagName === "A" && elem?.href); } // node_modules/@base-ui/utils/owner.mjs function ownerDocument(node) { return node?.ownerDocument || document; } // node_modules/@base-ui/react/internals/useOpenChangeComplete.mjs var React18 = __toESM(require_react(), 1); // node_modules/@base-ui/react/internals/useAnimationsFinished.mjs var ReactDOM = __toESM(require_react_dom(), 1); // node_modules/@base-ui/react/utils/resolveRef.mjs function resolveRef(maybeRef) { if (maybeRef == null) { return maybeRef; } return "current" in maybeRef ? maybeRef.current : maybeRef; } // node_modules/@base-ui/react/internals/useAnimationsFinished.mjs function useAnimationsFinished(elementOrRef, waitForStartingStyleRemoved = false, treatAbortedAsFinished = true) { const frame = useAnimationFrame(); return useStableCallback((fnToExecute, signal = null) => { frame.cancel(); const element = resolveRef(elementOrRef); if (element == null) { return; } const resolvedElement = element; const done = () => { ReactDOM.flushSync(fnToExecute); }; if (typeof resolvedElement.getAnimations !== "function" || globalThis.BASE_UI_ANIMATIONS_DISABLED) { fnToExecute(); return; } function exec() { Promise.all(resolvedElement.getAnimations().map((animation) => animation.finished)).then(() => { if (!signal?.aborted) { done(); } }).catch(() => { if (treatAbortedAsFinished) { if (!signal?.aborted) { done(); } return; } const currentAnimations = resolvedElement.getAnimations(); if (!signal?.aborted && currentAnimations.length > 0 && currentAnimations.some((animation) => animation.pending || animation.playState !== "finished")) { exec(); } }); } if (waitForStartingStyleRemoved) { const startingStyleAttribute = TransitionStatusDataAttributes.startingStyle; if (!resolvedElement.hasAttribute(startingStyleAttribute)) { frame.request(exec); return; } const attributeObserver = new MutationObserver(() => { if (!resolvedElement.hasAttribute(startingStyleAttribute)) { attributeObserver.disconnect(); exec(); } }); attributeObserver.observe(resolvedElement, { attributes: true, attributeFilter: [startingStyleAttribute] }); signal?.addEventListener("abort", () => attributeObserver.disconnect(), { once: true }); return; } frame.request(exec); }); } // node_modules/@base-ui/react/internals/useOpenChangeComplete.mjs function useOpenChangeComplete(parameters) { const { enabled = true, open, ref, onComplete: onCompleteParam } = parameters; const onComplete = useStableCallback(onCompleteParam); const runOnceAnimationsFinish = useAnimationsFinished(ref, open, false); React18.useEffect(() => { if (!enabled) { return void 0; } const abortController = new AbortController(); runOnceAnimationsFinish(onComplete, abortController.signal); return () => { abortController.abort(); }; }, [enabled, open, onComplete, runOnceAnimationsFinish]); } // node_modules/@base-ui/react/internals/shadowDom.mjs function activeElement(doc) { let element = doc.activeElement; while (element?.shadowRoot?.activeElement != null) { element = element.shadowRoot.activeElement; } return element; } function contains(parent, child) { if (!parent || !child) { return false; } const rootNode = child.getRootNode?.(); if (parent.contains(child)) { return true; } if (rootNode && isShadowRoot(rootNode)) { let next = child; while (next) { if (parent === next) { return true; } next = next.parentNode || next.host; } } return false; } function getTarget(event) { if ("composedPath" in event) { return event.composedPath()[0]; } return event.target; } // node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs var round = Math.round; // node_modules/@base-ui/react/floating-ui-react/utils/composite.mjs function isIndexOutOfListBounds(list, index) { return index < 0 || index >= list.length; } function getMinListIndex(listRef, disabledIndices) { return findNonDisabledListIndex(listRef.current, { disabledIndices }); } function getMaxListIndex(listRef, disabledIndices) { return findNonDisabledListIndex(listRef.current, { decrement: true, startingIndex: listRef.current.length, disabledIndices }); } function findNonDisabledListIndex(list, { startingIndex = -1, decrement = false, disabledIndices, amount = 1 } = {}) { let index = startingIndex; do { index += decrement ? -amount : amount; } while (index >= 0 && index <= list.length - 1 && isListIndexDisabled(list, index, disabledIndices)); return index; } function isListIndexDisabled(list, index, disabledIndices) { const isExplicitlyDisabled = typeof disabledIndices === "function" ? disabledIndices(index) : disabledIndices?.includes(index) ?? false; if (isExplicitlyDisabled) { return true; } const element = list[index]; if (!element) { return false; } if (!isElementVisible(element)) { return true; } return !disabledIndices && (element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true"); } function isHiddenByStyles(styles) { return styles.visibility === "hidden" || styles.visibility === "collapse"; } function isElementVisible(element, styles = element ? getComputedStyle2(element) : null) { if (!element || !element.isConnected || !styles || isHiddenByStyles(styles)) { return false; } if (typeof element.checkVisibility === "function") { return element.checkVisibility(); } return styles.display !== "none" && styles.display !== "contents"; } // node_modules/@base-ui/utils/useForcedRerendering.mjs var React19 = __toESM(require_react(), 1); function useForcedRerendering() { const [, setState] = React19.useState({}); return React19.useCallback(() => { setState({}); }, []); } // node_modules/@base-ui/react/internals/composite/composite.mjs var ARROW_UP = "ArrowUp"; var ARROW_DOWN = "ArrowDown"; var ARROW_LEFT = "ArrowLeft"; var ARROW_RIGHT = "ArrowRight"; var HOME = "Home"; var END = "End"; var HORIZONTAL_KEYS = /* @__PURE__ */ new Set([ARROW_LEFT, ARROW_RIGHT]); var HORIZONTAL_KEYS_WITH_EXTRA_KEYS = /* @__PURE__ */ new Set([ARROW_LEFT, ARROW_RIGHT, HOME, END]); var VERTICAL_KEYS = /* @__PURE__ */ new Set([ARROW_UP, ARROW_DOWN]); var VERTICAL_KEYS_WITH_EXTRA_KEYS = /* @__PURE__ */ new Set([ARROW_UP, ARROW_DOWN, HOME, END]); var ARROW_KEYS = /* @__PURE__ */ new Set([...HORIZONTAL_KEYS, ...VERTICAL_KEYS]); var COMPOSITE_KEYS = /* @__PURE__ */ new Set([...ARROW_KEYS, HOME, END]); var SHIFT = "Shift"; var CONTROL = "Control"; var ALT = "Alt"; var META = "Meta"; var MODIFIER_KEYS = /* @__PURE__ */ new Set([SHIFT, CONTROL, ALT, META]); function isInputElement(element) { return isHTMLElement(element) && element.tagName === "INPUT"; } function isNativeInput(element) { if (isInputElement(element) && element.selectionStart != null) { return true; } if (isHTMLElement(element) && element.tagName === "TEXTAREA") { return true; } return false; } function scrollIntoViewIfNeeded(scrollContainer, element, direction, orientation) { if (!scrollContainer || !element || !element.scrollTo) { return; } let targetX = scrollContainer.scrollLeft; let targetY = scrollContainer.scrollTop; const isOverflowingX = scrollContainer.clientWidth < scrollContainer.scrollWidth; const isOverflowingY = scrollContainer.clientHeight < scrollContainer.scrollHeight; if (isOverflowingX && orientation !== "vertical") { const elementOffsetLeft = getOffset(scrollContainer, element, "left"); const containerStyles = getStyles(scrollContainer); const elementStyles = getStyles(element); if (direction === "ltr") { if (elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight > scrollContainer.scrollLeft + scrollContainer.clientWidth - containerStyles.scrollPaddingRight) { targetX = elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight - scrollContainer.clientWidth + containerStyles.scrollPaddingRight; } else if (elementOffsetLeft - elementStyles.scrollMarginLeft < scrollContainer.scrollLeft + containerStyles.scrollPaddingLeft) { targetX = elementOffsetLeft - elementStyles.scrollMarginLeft - containerStyles.scrollPaddingLeft; } } if (direction === "rtl") { if (elementOffsetLeft - elementStyles.scrollMarginRight < scrollContainer.scrollLeft + containerStyles.scrollPaddingLeft) { targetX = elementOffsetLeft - elementStyles.scrollMarginLeft - containerStyles.scrollPaddingLeft; } else if (elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight > scrollContainer.scrollLeft + scrollContainer.clientWidth - containerStyles.scrollPaddingRight) { targetX = elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight - scrollContainer.clientWidth + containerStyles.scrollPaddingRight; } } } if (isOverflowingY && orientation !== "horizontal") { const elementOffsetTop = getOffset(scrollContainer, element, "top"); const containerStyles = getStyles(scrollContainer); const elementStyles = getStyles(element); if (elementOffsetTop - elementStyles.scrollMarginTop < scrollContainer.scrollTop + containerStyles.scrollPaddingTop) { targetY = elementOffsetTop - elementStyles.scrollMarginTop - containerStyles.scrollPaddingTop; } else if (elementOffsetTop + element.offsetHeight + elementStyles.scrollMarginBottom > scrollContainer.scrollTop + scrollContainer.clientHeight - containerStyles.scrollPaddingBottom) { targetY = elementOffsetTop + element.offsetHeight + elementStyles.scrollMarginBottom - scrollContainer.clientHeight + containerStyles.scrollPaddingBottom; } } scrollContainer.scrollTo({ left: targetX, top: targetY, behavior: "auto" }); } function getOffset(ancestor, element, side) { const propName = side === "left" ? "offsetLeft" : "offsetTop"; let result = 0; while (element.offsetParent) { result += element[propName]; if (element.offsetParent === ancestor) { break; } element = element.offsetParent; } return result; } function getStyles(element) { const styles = getComputedStyle(element); return { scrollMarginTop: parseFloat(styles.scrollMarginTop) || 0, scrollMarginRight: parseFloat(styles.scrollMarginRight) || 0, scrollMarginBottom: parseFloat(styles.scrollMarginBottom) || 0, scrollMarginLeft: parseFloat(styles.scrollMarginLeft) || 0, scrollPaddingTop: parseFloat(styles.scrollPaddingTop) || 0, scrollPaddingRight: parseFloat(styles.scrollPaddingRight) || 0, scrollPaddingBottom: parseFloat(styles.scrollPaddingBottom) || 0, scrollPaddingLeft: parseFloat(styles.scrollPaddingLeft) || 0 }; } // node_modules/@base-ui/utils/inertValue.mjs function inertValue(value) { if (isReactVersionAtLeast(19)) { return value; } return value ? "true" : void 0; } // node_modules/@base-ui/react/internals/composite/item/useCompositeItem.mjs var React20 = __toESM(require_react(), 1); function useCompositeItem(params = {}) { const { highlightItemOnHover, highlightedIndex, onHighlightedIndexChange } = useCompositeRootContext(); const { ref, index } = useCompositeListItem(params); const isHighlighted = highlightedIndex === index; const itemRef = React20.useRef(null); const mergedRef = useMergedRefs(ref, itemRef); const compositeProps = { tabIndex: isHighlighted ? 0 : -1, onFocus() { onHighlightedIndexChange(index); }, onMouseMove() { const item = itemRef.current; if (!highlightItemOnHover || !item) { return; } const disabled2 = item.hasAttribute("disabled") || item.ariaDisabled === "true"; if (!isHighlighted && !disabled2) { item.focus(); } } }; return { compositeProps, compositeRef: mergedRef, index }; } // node_modules/@base-ui/react/utils/getCssDimensions.mjs function getCssDimensions(element) { const css = getComputedStyle2(element); let width = parseFloat(css.width) || 0; let height = parseFloat(css.height) || 0; const hasOffset = isHTMLElement(element); const offsetWidth = hasOffset ? element.offsetWidth : width; const offsetHeight = hasOffset ? element.offsetHeight : height; const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight; if (shouldFallback) { width = offsetWidth; height = offsetHeight; } return { width, height }; } // node_modules/@base-ui/utils/isElementDisabled.mjs function isElementDisabled(element) { return element == null || element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true"; } // node_modules/@base-ui/react/internals/csp-context/CSPContext.mjs var React21 = __toESM(require_react(), 1); var CSPContext = /* @__PURE__ */ React21.createContext(void 0); if (true) CSPContext.displayName = "CSPContext"; var DEFAULT_CSP_CONTEXT_VALUE = { disableStyleElements: false }; function useCSPContext() { return React21.useContext(CSPContext) ?? DEFAULT_CSP_CONTEXT_VALUE; } // node_modules/@base-ui/react/internals/composite/root/CompositeRoot.mjs var React23 = __toESM(require_react(), 1); // node_modules/@base-ui/react/internals/composite/root/useCompositeRoot.mjs var React22 = __toESM(require_react(), 1); // node_modules/@base-ui/react/internals/composite/constants.mjs var ACTIVE_COMPOSITE_ITEM = "data-composite-item-active"; // node_modules/@base-ui/react/internals/composite/root/useCompositeRoot.mjs var EMPTY_ARRAY2 = []; function useCompositeRoot(params) { const { loopFocus = true, orientation = "both", grid, onLoop, direction, highlightedIndex: externalHighlightedIndex, onHighlightedIndexChange: externalSetHighlightedIndex, rootRef: externalRef, enableHomeAndEndKeys = false, stopEventPropagation = false, disabledIndices, modifierKeys = EMPTY_ARRAY2 } = params; const [internalHighlightedIndex, internalSetHighlightedIndex] = React22.useState(0); const isGrid = grid != null; const rootRef = React22.useRef(null); const mergedRef = useMergedRefs(rootRef, externalRef); const elementsRef = React22.useRef([]); const hasSetDefaultIndexRef = React22.useRef(false); const highlightedIndex = externalHighlightedIndex ?? internalHighlightedIndex; const onHighlightedIndexChange = useStableCallback((index, shouldScrollIntoView = false) => { (externalSetHighlightedIndex ?? internalSetHighlightedIndex)(index); if (shouldScrollIntoView) { const newActiveItem = elementsRef.current[index]; scrollIntoViewIfNeeded(rootRef.current, newActiveItem, direction, orientation); } }); const onMapChange = useStableCallback((map) => { if (map.size === 0 || hasSetDefaultIndexRef.current) { return; } hasSetDefaultIndexRef.current = true; const sortedElements = Array.from(map.keys()); const activeItem = sortedElements.find((compositeElement) => compositeElement?.hasAttribute(ACTIVE_COMPOSITE_ITEM)) ?? null; const activeIndex = activeItem ? sortedElements.indexOf(activeItem) : -1; if (activeIndex !== -1) { onHighlightedIndexChange(activeIndex); } else if (isListIndexDisabled(sortedElements, highlightedIndex, disabledIndices)) { const firstEnabledIndex = findNonDisabledListIndex(sortedElements, { disabledIndices }); if (!isIndexOutOfListBounds(sortedElements, firstEnabledIndex)) { onHighlightedIndexChange(firstEnabledIndex); } } scrollIntoViewIfNeeded(rootRef.current, activeItem, direction, orientation); }); useIsoLayoutEffect(() => { if (disabledIndices == null || externalHighlightedIndex != null || !hasSetDefaultIndexRef.current) { return; } const elements = elementsRef.current; if (isListIndexDisabled(elements, highlightedIndex, disabledIndices)) { const firstEnabledIndex = findNonDisabledListIndex(elements, { disabledIndices }); if (!isIndexOutOfListBounds(elements, firstEnabledIndex)) { onHighlightedIndexChange(firstEnabledIndex); } } }, [disabledIndices, externalHighlightedIndex, highlightedIndex, elementsRef, onHighlightedIndexChange]); const wrappedOnLoop = useStableCallback((event, prevIndex, nextIndex) => { if (!onLoop) { return nextIndex; } return onLoop(event, prevIndex, nextIndex, elementsRef); }); const onKeyDown = useStableCallback((event) => { const RELEVANT_KEYS = enableHomeAndEndKeys ? COMPOSITE_KEYS : ARROW_KEYS; if (!RELEVANT_KEYS.has(event.key)) { return; } if (isModifierKeySet(event, modifierKeys)) { return; } const element = rootRef.current; if (!element) { return; } const isRtl = direction === "rtl"; const horizontalForwardKey = isRtl ? ARROW_LEFT : ARROW_RIGHT; const forwardKey = { horizontal: horizontalForwardKey, vertical: ARROW_DOWN, both: horizontalForwardKey }[orientation]; const horizontalBackwardKey = isRtl ? ARROW_RIGHT : ARROW_LEFT; const backwardKey = { horizontal: horizontalBackwardKey, vertical: ARROW_UP, both: horizontalBackwardKey }[orientation]; const target = getTarget(event.nativeEvent); if (target != null && isNativeInput(target) && !isElementDisabled(target)) { const selectionStart = target.selectionStart; const selectionEnd = target.selectionEnd; const textContent = target.value ?? ""; if (selectionStart == null || event.shiftKey || selectionStart !== selectionEnd) { return; } if (event.key !== backwardKey && selectionStart < textContent.length) { return; } if (event.key !== forwardKey && selectionStart > 0) { return; } } let nextIndex = highlightedIndex; const minIndex = getMinListIndex(elementsRef, disabledIndices); const maxIndex = getMaxListIndex(elementsRef, disabledIndices); if (grid != null) { nextIndex = grid({ disabledIndices, elementsRef, event, highlightedIndex, loopFocus, maxIndex, minIndex, onLoop: wrappedOnLoop, orientation, rtl: isRtl }); } const forwardKeys = { horizontal: [horizontalForwardKey], vertical: [ARROW_DOWN], both: [horizontalForwardKey, ARROW_DOWN] }[orientation]; const backwardKeys = { horizontal: [horizontalBackwardKey], vertical: [ARROW_UP], both: [horizontalBackwardKey, ARROW_UP] }[orientation]; const preventedKeys = isGrid ? RELEVANT_KEYS : { horizontal: enableHomeAndEndKeys ? HORIZONTAL_KEYS_WITH_EXTRA_KEYS : HORIZONTAL_KEYS, vertical: enableHomeAndEndKeys ? VERTICAL_KEYS_WITH_EXTRA_KEYS : VERTICAL_KEYS, both: RELEVANT_KEYS }[orientation]; if (enableHomeAndEndKeys) { if (event.key === HOME) { nextIndex = minIndex; } else if (event.key === END) { nextIndex = maxIndex; } } if (nextIndex === highlightedIndex && (forwardKeys.includes(event.key) || backwardKeys.includes(event.key))) { if (loopFocus && nextIndex === maxIndex && forwardKeys.includes(event.key)) { nextIndex = minIndex; if (onLoop) { nextIndex = onLoop(event, highlightedIndex, nextIndex, elementsRef); } } else if (loopFocus && nextIndex === minIndex && backwardKeys.includes(event.key)) { nextIndex = maxIndex; if (onLoop) { nextIndex = onLoop(event, highlightedIndex, nextIndex, elementsRef); } } else { nextIndex = findNonDisabledListIndex(elementsRef.current, { startingIndex: nextIndex, decrement: backwardKeys.includes(event.key), disabledIndices }); } } if (nextIndex !== highlightedIndex && !isIndexOutOfListBounds(elementsRef.current, nextIndex)) { if (stopEventPropagation) { event.stopPropagation(); } if (preventedKeys.has(event.key)) { event.preventDefault(); } onHighlightedIndexChange(nextIndex, true); queueMicrotask(() => { elementsRef.current[nextIndex]?.focus(); }); } }); const props = { ref: mergedRef, onFocus(event) { const element = rootRef.current; const target = getTarget(event.nativeEvent); if (!element || target == null || !isNativeInput(target)) { return; } target.setSelectionRange(0, target.value.length ?? 0); }, onKeyDown }; return { props, highlightedIndex, onHighlightedIndexChange, elementsRef, disabledIndices, onMapChange, relayKeyboardEvent: onKeyDown }; } function isModifierKeySet(event, ignoredModifierKeys) { for (const key of MODIFIER_KEYS.values()) { if (ignoredModifierKeys.includes(key)) { continue; } if (event.getModifierState(key)) { return true; } } return false; } // node_modules/@base-ui/react/internals/composite/root/CompositeRoot.mjs var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1); function CompositeRoot(componentProps) { const { render, className, style, refs = EMPTY_ARRAY, props = EMPTY_ARRAY, state = EMPTY_OBJECT, stateAttributesMapping: stateAttributesMapping3, highlightedIndex: highlightedIndexProp, onHighlightedIndexChange: onHighlightedIndexChangeProp, orientation, grid, loopFocus, onLoop, enableHomeAndEndKeys, onMapChange: onMapChangeProp, stopEventPropagation = true, rootRef, disabledIndices, modifierKeys, highlightItemOnHover = false, tag = "div", ...elementProps } = componentProps; const direction = useDirection(); const { props: defaultProps, highlightedIndex, onHighlightedIndexChange, elementsRef, onMapChange: onMapChangeUnwrapped, relayKeyboardEvent } = useCompositeRoot({ grid, loopFocus, onLoop, orientation, highlightedIndex: highlightedIndexProp, onHighlightedIndexChange: onHighlightedIndexChangeProp, rootRef, stopEventPropagation, enableHomeAndEndKeys, direction, disabledIndices, modifierKeys }); const element = useRenderElement(tag, componentProps, { state, ref: refs, props: [defaultProps, ...props, elementProps], stateAttributesMapping: stateAttributesMapping3 }); const contextValue = React23.useMemo(() => ({ highlightedIndex, onHighlightedIndexChange, highlightItemOnHover, relayKeyboardEvent }), [highlightedIndex, onHighlightedIndexChange, highlightItemOnHover, relayKeyboardEvent]); return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(CompositeRootContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(CompositeList, { elementsRef, onMapChange: (newMap) => { onMapChangeProp?.(newMap); onMapChangeUnwrapped(newMap); }, children: element }) }); } // node_modules/@base-ui/react/utils/useIsHydrating.mjs var import_shim = __toESM(require_shim(), 1); function subscribe() { return NOOP; } function getSnapshot() { return false; } function getServerSnapshot() { return true; } function useIsHydrating() { return (0, import_shim.useSyncExternalStore)(subscribe, getSnapshot, getServerSnapshot); } // node_modules/@base-ui/react/tabs/index.parts.mjs var index_parts_exports = {}; __export(index_parts_exports, { Indicator: () => TabsIndicator, List: () => TabsList, Panel: () => TabsPanel, Root: () => TabsRoot, Tab: () => TabsTab }); // node_modules/@base-ui/react/tabs/root/TabsRoot.mjs var React25 = __toESM(require_react(), 1); // node_modules/@base-ui/react/tabs/root/TabsRootContext.mjs var React24 = __toESM(require_react(), 1); var TabsRootContext = /* @__PURE__ */ React24.createContext(void 0); if (true) TabsRootContext.displayName = "TabsRootContext"; function useTabsRootContext() { const context = React24.useContext(TabsRootContext); if (context === void 0) { throw new Error(true ? "Base UI: TabsRootContext is missing. Tabs parts must be placed within <Tabs.Root>." : formatErrorMessage_default(64)); } return context; } // node_modules/@base-ui/react/tabs/root/TabsRootDataAttributes.mjs var TabsRootDataAttributes = /* @__PURE__ */ (function(TabsRootDataAttributes2) { TabsRootDataAttributes2["activationDirection"] = "data-activation-direction"; TabsRootDataAttributes2["orientation"] = "data-orientation"; return TabsRootDataAttributes2; })({}); // node_modules/@base-ui/react/tabs/root/stateAttributesMapping.mjs var tabsStateAttributesMapping = { tabActivationDirection: (dir) => ({ [TabsRootDataAttributes.activationDirection]: dir }) }; // node_modules/@base-ui/react/tabs/root/TabsRoot.mjs var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1); var TabsRoot = /* @__PURE__ */ React25.forwardRef(function TabsRoot2(componentProps, forwardedRef) { const { className, defaultValue: defaultValueProp = 0, onValueChange: onValueChangeProp, orientation = "horizontal", render, value: valueProp, style, ...elementProps } = componentProps; const hasExplicitDefaultValueProp = componentProps.defaultValue !== void 0; const tabPanelRefs = React25.useRef([]); const [mountedTabPanels, setMountedTabPanels] = React25.useState(() => /* @__PURE__ */ new Map()); const [value, setValue] = useControlled({ controlled: valueProp, default: defaultValueProp, name: "Tabs", state: "value" }); const isControlled = valueProp !== void 0; const [tabMap, setTabMap] = React25.useState(() => /* @__PURE__ */ new Map()); const lastKnownTabElementRef = React25.useRef(void 0); const getTabElementBySelectedValue = React25.useCallback((selectedValue) => { if (selectedValue === void 0) { return null; } for (const [tabElement, tabMetadata] of tabMap.entries()) { if (tabMetadata != null && selectedValue === (tabMetadata.value ?? tabMetadata.index)) { return tabElement; } } return null; }, [tabMap]); const [activationDirectionState, setActivationDirectionState] = React25.useState(() => ({ previousValue: value, tabActivationDirection: "none" })); const { previousValue, tabActivationDirection: committedTabActivationDirection } = activationDirectionState; let tabActivationDirection = committedTabActivationDirection; let directionComputationIncomplete = false; if (previousValue !== value) { tabActivationDirection = computeActivationDirection(previousValue, value, orientation, tabMap); directionComputationIncomplete = previousValue != null && value != null && getTabElementBySelectedValue(value) == null; } const nextPreviousValue = directionComputationIncomplete ? previousValue : value; const shouldSyncActivationDirectionState = previousValue !== nextPreviousValue || committedTabActivationDirection !== tabActivationDirection; useIsoLayoutEffect(() => { if (!shouldSyncActivationDirectionState) { return; } setActivationDirectionState({ previousValue: nextPreviousValue, tabActivationDirection }); }, [nextPreviousValue, shouldSyncActivationDirectionState, tabActivationDirection]); const onValueChange = useStableCallback((newValue, eventDetails) => { const activationDirection = computeActivationDirection(value, newValue, orientation, tabMap); eventDetails.activationDirection = activationDirection; onValueChangeProp?.(newValue, eventDetails); if (eventDetails.isCanceled) { return; } setValue(newValue); }); const notifyAutomaticValueChange = useStableCallback((nextValue, reason) => { onValueChangeProp?.(nextValue, createChangeEventDetails(reason, void 0, void 0, { activationDirection: "none" })); }); const registerMountedTabPanel = useStableCallback((panelValue, panelId) => { setMountedTabPanels((prev) => { if (prev.get(panelValue) === panelId) { return prev; } const next = new Map(prev); next.set(panelValue, panelId); return next; }); }); const unregisterMountedTabPanel = useStableCallback((panelValue, panelId) => { setMountedTabPanels((prev) => { if (!prev.has(panelValue) || prev.get(panelValue) !== panelId) { return prev; } const next = new Map(prev); next.delete(panelValue); return next; }); }); const getTabPanelIdByValue = React25.useCallback((tabValue) => { return mountedTabPanels.get(tabValue); }, [mountedTabPanels]); const getTabIdByPanelValue = React25.useCallback((tabPanelValue) => { for (const tabMetadata of tabMap.values()) { if (tabPanelValue === tabMetadata?.value) { return tabMetadata?.id; } } return void 0; }, [tabMap]); const tabsContextValue = React25.useMemo(() => ({ getTabElementBySelectedValue, getTabIdByPanelValue, getTabPanelIdByValue, onValueChange, orientation, registerMountedTabPanel, setTabMap, unregisterMountedTabPanel, tabActivationDirection, value }), [getTabElementBySelectedValue, getTabIdByPanelValue, getTabPanelIdByValue, onValueChange, orientation, registerMountedTabPanel, setTabMap, unregisterMountedTabPanel, tabActivationDirection, value]); const selectedTabMetadata = React25.useMemo(() => { for (const tabMetadata of tabMap.values()) { if (tabMetadata != null && tabMetadata.value === value) { return tabMetadata; } } return void 0; }, [tabMap, value]); const firstEnabledTabValue = React25.useMemo(() => { for (const tabMetadata of tabMap.values()) { if (tabMetadata != null && !tabMetadata.disabled) { return tabMetadata.value; } } return void 0; }, [tabMap]); const shouldNotifyInitialValueChangeRef = React25.useRef(!hasExplicitDefaultValueProp); const initialDefaultValueRef = React25.useRef(defaultValueProp); const shouldHonorDisabledDefaultValueRef = React25.useRef(hasExplicitDefaultValueProp); const didRegisterTabsRef = React25.useRef(false); useIsoLayoutEffect(() => { if (isControlled) { return; } function commitAutomaticValueChange(fallbackValue, fallbackReason) { setValue(fallbackValue); setActivationDirectionState((prev) => { if (prev.previousValue === fallbackValue && prev.tabActivationDirection === "none") { return prev; } return { previousValue: fallbackValue, tabActivationDirection: "none" }; }); notifyAutomaticValueChange(fallbackValue, fallbackReason); shouldNotifyInitialValueChangeRef.current = false; } if (tabMap.size === 0) { if (didRegisterTabsRef.current && value !== null && !lastKnownTabElementRef.current?.isConnected) { commitAutomaticValueChange(null, reason_parts_exports.missing); } return; } didRegisterTabsRef.current = true; lastKnownTabElementRef.current = tabMap.keys().next().value; const selectionIsDisabled = selectedTabMetadata?.disabled; const selectionIsMissing = selectedTabMetadata == null && value !== null; if (!selectionIsDisabled && value === initialDefaultValueRef.current) { shouldHonorDisabledDefaultValueRef.current = false; } if (shouldHonorDisabledDefaultValueRef.current && selectionIsDisabled && value === initialDefaultValueRef.current) { return; } const shouldNotifyInitialValueChange = shouldNotifyInitialValueChangeRef.current; if (selectionIsDisabled || selectionIsMissing) { const fallbackValue = firstEnabledTabValue ?? null; if (value === fallbackValue) { shouldNotifyInitialValueChangeRef.current = false; return; } let fallbackReason = reason_parts_exports.missing; if (shouldNotifyInitialValueChange) { fallbackReason = reason_parts_exports.initial; } else if (selectionIsDisabled) { fallbackReason = reason_parts_exports.disabled; } commitAutomaticValueChange(fallbackValue, fallbackReason); return; } if (shouldNotifyInitialValueChange && selectedTabMetadata != null) { notifyAutomaticValueChange(value, reason_parts_exports.initial); shouldNotifyInitialValueChangeRef.current = false; } }, [firstEnabledTabValue, isControlled, notifyAutomaticValueChange, selectedTabMetadata, setValue, tabMap, value]); const state = { orientation, tabActivationDirection }; const element = useRenderElement("div", componentProps, { state, ref: forwardedRef, props: elementProps, stateAttributesMapping: tabsStateAttributesMapping }); return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TabsRootContext.Provider, { value: tabsContextValue, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(CompositeList, { elementsRef: tabPanelRefs, children: element }) }); }); if (true) TabsRoot.displayName = "TabsRoot"; function computeActivationDirection(oldValue, newValue, orientation, tabMap) { if (oldValue == null || newValue == null) { return "none"; } let oldTab = null; let newTab = null; for (const [tabElement, tabMetadata] of tabMap.entries()) { if (tabMetadata == null) { continue; } const tabValue = tabMetadata.value ?? tabMetadata.index; if (oldValue === tabValue) { oldTab = tabElement; } if (newValue === tabValue) { newTab = tabElement; } if (oldTab != null && newTab != null) { break; } } if (oldTab == null || newTab == null) { if (oldTab !== newTab && (typeof oldValue === "number" || typeof oldValue === "string") && typeof oldValue === typeof newValue) { if (orientation === "horizontal") { return newValue > oldValue ? "right" : "left"; } return newValue > oldValue ? "down" : "up"; } return "none"; } const oldRect = oldTab.getBoundingClientRect(); const newRect = newTab.getBoundingClientRect(); if (orientation === "horizontal") { if (newRect.left < oldRect.left) { return "left"; } if (newRect.left > oldRect.left) { return "right"; } } else { if (newRect.top < oldRect.top) { return "up"; } if (newRect.top > oldRect.top) { return "down"; } } return "none"; } // node_modules/@base-ui/react/tabs/tab/TabsTab.mjs var React27 = __toESM(require_react(), 1); // node_modules/@base-ui/react/tabs/list/TabsListContext.mjs var React26 = __toESM(require_react(), 1); var TabsListContext = /* @__PURE__ */ React26.createContext(void 0); if (true) TabsListContext.displayName = "TabsListContext"; function useTabsListContext() { const context = React26.useContext(TabsListContext); if (context === void 0) { throw new Error(true ? "Base UI: TabsListContext is missing. TabsList parts must be placed within <Tabs.List>." : formatErrorMessage_default(65)); } return context; } // node_modules/@base-ui/react/tabs/tab/TabsTab.mjs var TabsTab = /* @__PURE__ */ React27.forwardRef(function TabsTab2(componentProps, forwardedRef) { const { className, disabled: disabled2 = false, render, value, id: idProp, nativeButton = true, style, ...elementProps } = componentProps; const { value: activeTabValue, getTabPanelIdByValue, orientation, tabActivationDirection } = useTabsRootContext(); const { activateOnFocus, highlightedTabIndex, onTabActivation, registerTabResizeObserverElement, setHighlightedTabIndex, tabsListElement } = useTabsListContext(); const id = useBaseUiId(idProp); const tabMetadata = React27.useMemo(() => ({ disabled: disabled2, id, value }), [disabled2, id, value]); const { compositeProps, compositeRef, index // hook is used instead of the CompositeItem component // because the index is needed for Tab internals } = useCompositeItem({ metadata: tabMetadata }); const active = value === activeTabValue; const isNavigatingRef = React27.useRef(false); const tabElementRef = React27.useRef(null); useIsoLayoutEffect(() => { const tabElement = tabElementRef.current; if (!tabElement) { return void 0; } return registerTabResizeObserverElement(tabElement); }, [registerTabResizeObserverElement]); useIsoLayoutEffect(() => { if (isNavigatingRef.current) { isNavigatingRef.current = false; return; } if (!(active && index > -1 && highlightedTabIndex !== index)) { return; } const listElement = tabsListElement; if (listElement != null) { const activeEl = activeElement(ownerDocument(listElement)); if (activeEl && contains(listElement, activeEl)) { return; } } if (!disabled2) { setHighlightedTabIndex(index); } }, [active, index, highlightedTabIndex, setHighlightedTabIndex, disabled2, tabsListElement]); const { getButtonProps, buttonRef } = useButton({ disabled: disabled2, native: nativeButton, focusableWhenDisabled: true }); const tabPanelId = getTabPanelIdByValue(value); const isPressingRef = React27.useRef(false); const isMainButtonRef = React27.useRef(false); function onClick(event) { if (active || disabled2) { return; } onTabActivation(value, createChangeEventDetails(reason_parts_exports.none, event.nativeEvent, void 0, { activationDirection: "none" })); } function onFocus(event) { if (active) { return; } if (index > -1 && !disabled2) { setHighlightedTabIndex(index); } if (disabled2) { return; } if (activateOnFocus && (!isPressingRef.current || // keyboard or touch focus isPressingRef.current && isMainButtonRef.current)) { onTabActivation(value, createChangeEventDetails(reason_parts_exports.none, event.nativeEvent, void 0, { activationDirection: "none" })); } } function onPointerDown(event) { if (active || disabled2) { return; } isPressingRef.current = true; function handlePointerUp() { isPressingRef.current = false; isMainButtonRef.current = false; } if (!event.button || event.button === 0) { isMainButtonRef.current = true; const doc = ownerDocument(event.currentTarget); doc.addEventListener("pointerup", handlePointerUp, { once: true }); } } const state = { disabled: disabled2, active, orientation, tabActivationDirection }; const element = useRenderElement("button", componentProps, { state, ref: [forwardedRef, buttonRef, compositeRef, tabElementRef], props: [compositeProps, { role: "tab", "aria-controls": tabPanelId, "aria-selected": active, id, onClick, onFocus, onPointerDown, [ACTIVE_COMPOSITE_ITEM]: active ? "" : void 0, onKeyDownCapture() { isNavigatingRef.current = true; } }, elementProps, getButtonProps], stateAttributesMapping: tabsStateAttributesMapping }); return element; }); if (true) TabsTab.displayName = "TabsTab"; // node_modules/@base-ui/react/tabs/indicator/TabsIndicator.mjs var React28 = __toESM(require_react(), 1); // node_modules/@base-ui/react/tabs/indicator/prehydrationScript.min.mjs var script = '!function(){const t=document.currentScript.previousElementSibling;if(!t)return;const e=t.closest(\'[role="tablist"]\');if(!e)return;const i=e.querySelector("[data-active]");if(!i)return;if(0===i.offsetWidth||0===e.offsetWidth)return;let o=0,n=0,h=0,l=0,r=0,f=0;function s(t){const e=getComputedStyle(t);let i=parseFloat(e.width)||0,o=parseFloat(e.height)||0;return(Math.round(i)!==t.offsetWidth||Math.round(o)!==t.offsetHeight)&&(i=t.offsetWidth,o=t.offsetHeight),{width:i,height:o}}if(null!=i&&null!=e){const{width:t,height:c}=s(i),{width:u,height:d}=s(e),a=i.getBoundingClientRect(),g=e.getBoundingClientRect(),p=u>0?g.width/u:1,b=d>0?g.height/d:1;if(Math.abs(p)>Number.EPSILON&&Math.abs(b)>Number.EPSILON){const t=a.left-g.left,i=a.top-g.top;o=t/p+e.scrollLeft-e.clientLeft,h=i/b+e.scrollTop-e.clientTop}else o=i.offsetLeft,h=i.offsetTop;r=t,f=c,n=e.scrollWidth-o-r,l=e.scrollHeight-h-f}function c(e,i){t.style.setProperty(`--active-tab-${e}`,`${i}px`)}c("left",o),c("right",n),c("top",h),c("bottom",l),c("width",r),c("height",f),r>0&&f>0&&t.removeAttribute("hidden")}();'; // node_modules/@base-ui/react/tabs/indicator/TabsIndicatorCssVars.mjs var TabsIndicatorCssVars = /* @__PURE__ */ (function(TabsIndicatorCssVars2) { TabsIndicatorCssVars2["activeTabLeft"] = "--active-tab-left"; TabsIndicatorCssVars2["activeTabRight"] = "--active-tab-right"; TabsIndicatorCssVars2["activeTabTop"] = "--active-tab-top"; TabsIndicatorCssVars2["activeTabBottom"] = "--active-tab-bottom"; TabsIndicatorCssVars2["activeTabWidth"] = "--active-tab-width"; TabsIndicatorCssVars2["activeTabHeight"] = "--active-tab-height"; return TabsIndicatorCssVars2; })({}); // node_modules/@base-ui/react/tabs/indicator/TabsIndicator.mjs var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1); var stateAttributesMapping = { ...tabsStateAttributesMapping, activeTabPosition: () => null, activeTabSize: () => null }; var TabsIndicator = /* @__PURE__ */ React28.forwardRef(function TabsIndicator2(componentProps, forwardedRef) { const { className, render, renderBeforeHydration = false, style: styleProp, ...elementProps } = componentProps; const { nonce } = useCSPContext(); const { getTabElementBySelectedValue, orientation, tabActivationDirection, value } = useTabsRootContext(); const { tabsListElement, registerIndicatorUpdateListener } = useTabsListContext(); const isHydrating = useIsHydrating(); const rerender = useForcedRerendering(); React28.useEffect(() => { return registerIndicatorUpdateListener(rerender); }, [registerIndicatorUpdateListener, rerender]); let left = 0; let right = 0; let top = 0; let bottom = 0; let width = 0; let height = 0; let isTabSelected = false; if (value != null && tabsListElement != null) { const activeTab = getTabElementBySelectedValue(value); if (activeTab != null) { isTabSelected = true; const { width: computedWidth, height: computedHeight } = getCssDimensions(activeTab); const { width: tabListWidth, height: tabListHeight } = getCssDimensions(tabsListElement); const tabRect = activeTab.getBoundingClientRect(); const tabsListRect = tabsListElement.getBoundingClientRect(); const scaleX = tabListWidth > 0 ? tabsListRect.width / tabListWidth : 1; const scaleY = tabListHeight > 0 ? tabsListRect.height / tabListHeight : 1; const hasNonZeroScale = Math.abs(scaleX) > Number.EPSILON && Math.abs(scaleY) > Number.EPSILON; if (hasNonZeroScale) { const tabLeftDelta = tabRect.left - tabsListRect.left; const tabTopDelta = tabRect.top - tabsListRect.top; left = tabLeftDelta / scaleX + tabsListElement.scrollLeft - tabsListElement.clientLeft; top = tabTopDelta / scaleY + tabsListElement.scrollTop - tabsListElement.clientTop; } else { left = activeTab.offsetLeft; top = activeTab.offsetTop; } width = computedWidth; height = computedHeight; right = tabsListElement.scrollWidth - left - width; bottom = tabsListElement.scrollHeight - top - height; } } const activeTabPosition = isTabSelected ? { left, right, top, bottom } : null; const activeTabSize = isTabSelected ? { width, height } : null; const style = isTabSelected ? { [TabsIndicatorCssVars.activeTabLeft]: `${left}px`, [TabsIndicatorCssVars.activeTabRight]: `${right}px`, [TabsIndicatorCssVars.activeTabTop]: `${top}px`, [TabsIndicatorCssVars.activeTabBottom]: `${bottom}px`, [TabsIndicatorCssVars.activeTabWidth]: `${width}px`, [TabsIndicatorCssVars.activeTabHeight]: `${height}px` } : void 0; const displayIndicator = isTabSelected && width > 0 && height > 0; const state = { orientation, activeTabPosition, activeTabSize, tabActivationDirection }; const element = useRenderElement("span", componentProps, { state, ref: forwardedRef, props: [{ role: "presentation", style, hidden: !displayIndicator // do not display the indicator before the layout is settled }, elementProps, { suppressHydrationWarning: true }], stateAttributesMapping }); if (value == null) { return null; } return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(React28.Fragment, { children: [element, isHydrating && renderBeforeHydration && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("script", { nonce, dangerouslySetInnerHTML: { __html: script }, suppressHydrationWarning: true })] }); }); if (true) TabsIndicator.displayName = "TabsIndicator"; // node_modules/@base-ui/react/tabs/panel/TabsPanel.mjs var React29 = __toESM(require_react(), 1); // node_modules/@base-ui/react/tabs/panel/TabsPanelDataAttributes.mjs var TabsPanelDataAttributes = (function(TabsPanelDataAttributes2) { TabsPanelDataAttributes2["index"] = "data-index"; TabsPanelDataAttributes2["activationDirection"] = "data-activation-direction"; TabsPanelDataAttributes2["orientation"] = "data-orientation"; TabsPanelDataAttributes2["hidden"] = "data-hidden"; TabsPanelDataAttributes2[TabsPanelDataAttributes2["startingStyle"] = TransitionStatusDataAttributes.startingStyle] = "startingStyle"; TabsPanelDataAttributes2[TabsPanelDataAttributes2["endingStyle"] = TransitionStatusDataAttributes.endingStyle] = "endingStyle"; return TabsPanelDataAttributes2; })({}); // node_modules/@base-ui/react/tabs/panel/TabsPanel.mjs var stateAttributesMapping2 = { ...tabsStateAttributesMapping, ...transitionStatusMapping }; var TabsPanel = /* @__PURE__ */ React29.forwardRef(function TabsPanel2(componentProps, forwardedRef) { const { className, value, render, keepMounted = false, style, ...elementProps } = componentProps; const { value: selectedValue, getTabIdByPanelValue, orientation, tabActivationDirection, registerMountedTabPanel, unregisterMountedTabPanel } = useTabsRootContext(); const id = useBaseUiId(); const metadata = React29.useMemo(() => ({ id, value }), [id, value]); const { ref: listItemRef, index } = useCompositeListItem({ metadata }); const open = value === selectedValue; const { mounted, transitionStatus, setMounted } = useTransitionStatus(open); const hidden = !mounted; const correspondingTabId = getTabIdByPanelValue(value); const state = { hidden, orientation, tabActivationDirection, transitionStatus }; const panelRef = React29.useRef(null); const element = useRenderElement("div", componentProps, { state, ref: [forwardedRef, listItemRef, panelRef], props: [{ "aria-labelledby": correspondingTabId, hidden, id, role: "tabpanel", tabIndex: open ? 0 : -1, inert: inertValue(!open), [TabsPanelDataAttributes.index]: index }, elementProps], stateAttributesMapping: stateAttributesMapping2 }); useOpenChangeComplete({ open, ref: panelRef, onComplete() { if (!open) { setMounted(false); } } }); useIsoLayoutEffect(() => { if (hidden && !keepMounted) { return void 0; } if (id == null) { return void 0; } registerMountedTabPanel(value, id); return () => { unregisterMountedTabPanel(value, id); }; }, [hidden, keepMounted, value, id, registerMountedTabPanel, unregisterMountedTabPanel]); const shouldRender = keepMounted || mounted; if (!shouldRender) { return null; } return element; }); if (true) TabsPanel.displayName = "TabsPanel"; // node_modules/@base-ui/react/tabs/list/TabsList.mjs var React30 = __toESM(require_react(), 1); var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1); var TabsList = /* @__PURE__ */ React30.forwardRef(function TabsList2(componentProps, forwardedRef) { const { activateOnFocus = false, className, loopFocus = true, render, style, ...elementProps } = componentProps; const { onValueChange, orientation, value, setTabMap, tabActivationDirection } = useTabsRootContext(); const [highlightedTabIndex, setHighlightedTabIndex] = React30.useState(0); const [tabsListElement, setTabsListElement] = React30.useState(null); const indicatorUpdateListenersRef = React30.useRef(/* @__PURE__ */ new Set()); const tabResizeObserverElementsRef = React30.useRef(/* @__PURE__ */ new Set()); const resizeObserverRef = React30.useRef(null); useIsoLayoutEffect(() => { if (typeof ResizeObserver === "undefined") { return void 0; } const resizeObserver = new ResizeObserver(() => { indicatorUpdateListenersRef.current.forEach((listener) => { listener(); }); }); resizeObserverRef.current = resizeObserver; if (tabsListElement) { resizeObserver.observe(tabsListElement); } tabResizeObserverElementsRef.current.forEach((element) => { resizeObserver.observe(element); }); return () => { resizeObserver.disconnect(); resizeObserverRef.current = null; }; }, [tabsListElement]); const registerIndicatorUpdateListener = useStableCallback((listener) => { indicatorUpdateListenersRef.current.add(listener); return () => { indicatorUpdateListenersRef.current.delete(listener); }; }); const registerTabResizeObserverElement = useStableCallback((element) => { tabResizeObserverElementsRef.current.add(element); resizeObserverRef.current?.observe(element); return () => { tabResizeObserverElementsRef.current.delete(element); resizeObserverRef.current?.unobserve(element); }; }); const onTabActivation = useStableCallback((newValue, eventDetails) => { if (newValue !== value) { onValueChange(newValue, eventDetails); } }); const state = { orientation, tabActivationDirection }; const defaultProps = { "aria-orientation": orientation === "vertical" ? "vertical" : void 0, role: "tablist" }; const tabsListContextValue = React30.useMemo(() => ({ activateOnFocus, highlightedTabIndex, registerIndicatorUpdateListener, registerTabResizeObserverElement, onTabActivation, setHighlightedTabIndex, tabsListElement }), [activateOnFocus, highlightedTabIndex, registerIndicatorUpdateListener, registerTabResizeObserverElement, onTabActivation, setHighlightedTabIndex, tabsListElement]); return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TabsListContext.Provider, { value: tabsListContextValue, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(CompositeRoot, { render, className, style, state, refs: [forwardedRef, setTabsListElement], props: [defaultProps, elementProps], stateAttributesMapping: tabsStateAttributesMapping, highlightedIndex: highlightedTabIndex, enableHomeAndEndKeys: true, loopFocus, orientation, onHighlightedIndexChange: setHighlightedTabIndex, onMapChange: setTabMap, disabledIndices: EMPTY_ARRAY }) }); }); if (true) TabsList.displayName = "TabsList"; // node_modules/@base-ui/react/use-render/useRender.mjs function useRender(params) { return useRenderElement(params.defaultTagName ?? "div", params, params); } // packages/ui/build-module/icon/icon.mjs var import_element2 = __toESM(require_element(), 1); var import_primitives15 = __toESM(require_primitives(), 1); var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1); var Icon = (0, import_element2.forwardRef)(function Icon2({ icon, size = 24, ...restProps }, ref) { return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)( import_primitives15.SVG, { ref, ...icon.props, ...restProps, width: size, height: size } ); }); // packages/ui/build-module/stack/stack.mjs var import_element3 = __toESM(require_element(), 1); var STYLE_HASH_ATTRIBUTE = "data-wp-hash"; function getRuntime() { const globalScope = globalThis; if (globalScope.__wpStyleRuntime) { return globalScope.__wpStyleRuntime; } globalScope.__wpStyleRuntime = { documents: /* @__PURE__ */ new Map(), styles: /* @__PURE__ */ new Map(), injectedStyles: /* @__PURE__ */ new WeakMap() }; if (typeof document !== "undefined") { registerDocument(document); } return globalScope.__wpStyleRuntime; } function documentContainsStyleHash(targetDocument, hash) { if (!targetDocument.head) { return false; } for (const style of targetDocument.head.querySelectorAll( `style[${STYLE_HASH_ATTRIBUTE}]` )) { if (style.getAttribute(STYLE_HASH_ATTRIBUTE) === hash) { return true; } } return false; } function injectStyle(targetDocument, hash, css) { if (!targetDocument.head) { return; } const runtime = getRuntime(); let injectedStyles = runtime.injectedStyles.get(targetDocument); if (!injectedStyles) { injectedStyles = /* @__PURE__ */ new Set(); runtime.injectedStyles.set(targetDocument, injectedStyles); } if (injectedStyles.has(hash)) { return; } if (documentContainsStyleHash(targetDocument, hash)) { injectedStyles.add(hash); return; } const style = targetDocument.createElement("style"); style.setAttribute(STYLE_HASH_ATTRIBUTE, hash); style.appendChild(targetDocument.createTextNode(css)); targetDocument.head.appendChild(style); injectedStyles.add(hash); } function registerDocument(targetDocument) { const runtime = getRuntime(); runtime.documents.set( targetDocument, (runtime.documents.get(targetDocument) ?? 0) + 1 ); for (const [hash, css] of runtime.styles) { injectStyle(targetDocument, hash, css); } return () => { const count = runtime.documents.get(targetDocument); if (count === void 0) { return; } if (count <= 1) { runtime.documents.delete(targetDocument); return; } runtime.documents.set(targetDocument, count - 1); }; } function registerStyle(hash, css) { const runtime = getRuntime(); runtime.styles.set(hash, css); for (const targetDocument of runtime.documents.keys()) { injectStyle(targetDocument, hash, css); } } if (typeof process === "undefined" || true) { registerStyle("32aba35fe1", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._19ce0419607e1896__stack{display:flex}}}"); } var style_default = { "stack": "_19ce0419607e1896__stack" }; var gapTokens = { xs: "var(--wpds-dimension-gap-xs, 4px)", sm: "var(--wpds-dimension-gap-sm, 8px)", md: "var(--wpds-dimension-gap-md, 12px)", lg: "var(--wpds-dimension-gap-lg, 16px)", xl: "var(--wpds-dimension-gap-xl, 24px)", "2xl": "var(--wpds-dimension-gap-2xl, 32px)", "3xl": "var(--wpds-dimension-gap-3xl, 40px)" }; var Stack = (0, import_element3.forwardRef)(function Stack2({ direction, gap, align, justify, wrap, render, ...props }, ref) { const style = { gap: gap && gapTokens[gap], alignItems: align, justifyContent: justify, flexDirection: direction, flexWrap: wrap }; const element = useRender({ render, ref, props: mergeProps(props, { style, className: style_default.stack }) }); return element; }); // packages/ui/build-module/utils/use-schedule-validation.mjs var import_element4 = __toESM(require_element(), 1); function useScheduleValidation(validate) { const validateRef = (0, import_element4.useRef)(validate); validateRef.current = validate; const timerRef = (0, import_element4.useRef)(null); const unmountedRef = (0, import_element4.useRef)(false); const scheduleValidation = (0, import_element4.useCallback)(() => { if (unmountedRef.current) { return; } if (timerRef.current) { clearTimeout(timerRef.current); } timerRef.current = setTimeout(() => { validateRef.current(); timerRef.current = null; }, 0); }, []); (0, import_element4.useEffect)(() => { unmountedRef.current = false; return () => { unmountedRef.current = true; if (timerRef.current) { clearTimeout(timerRef.current); } }; }, []); return scheduleValidation; } // packages/ui/build-module/visually-hidden/visually-hidden.mjs var import_element5 = __toESM(require_element(), 1); var STYLE_HASH_ATTRIBUTE2 = "data-wp-hash"; function getRuntime2() { const globalScope = globalThis; if (globalScope.__wpStyleRuntime) { return globalScope.__wpStyleRuntime; } globalScope.__wpStyleRuntime = { documents: /* @__PURE__ */ new Map(), styles: /* @__PURE__ */ new Map(), injectedStyles: /* @__PURE__ */ new WeakMap() }; if (typeof document !== "undefined") { registerDocument2(document); } return globalScope.__wpStyleRuntime; } function documentContainsStyleHash2(targetDocument, hash) { if (!targetDocument.head) { return false; } for (const style of targetDocument.head.querySelectorAll( `style[${STYLE_HASH_ATTRIBUTE2}]` )) { if (style.getAttribute(STYLE_HASH_ATTRIBUTE2) === hash) { return true; } } return false; } function injectStyle2(targetDocument, hash, css) { if (!targetDocument.head) { return; } const runtime = getRuntime2(); let injectedStyles = runtime.injectedStyles.get(targetDocument); if (!injectedStyles) { injectedStyles = /* @__PURE__ */ new Set(); runtime.injectedStyles.set(targetDocument, injectedStyles); } if (injectedStyles.has(hash)) { return; } if (documentContainsStyleHash2(targetDocument, hash)) { injectedStyles.add(hash); return; } const style = targetDocument.createElement("style"); style.setAttribute(STYLE_HASH_ATTRIBUTE2, hash); style.appendChild(targetDocument.createTextNode(css)); targetDocument.head.appendChild(style); injectedStyles.add(hash); } function registerDocument2(targetDocument) { const runtime = getRuntime2(); runtime.documents.set( targetDocument, (runtime.documents.get(targetDocument) ?? 0) + 1 ); for (const [hash, css] of runtime.styles) { injectStyle2(targetDocument, hash, css); } return () => { const count = runtime.documents.get(targetDocument); if (count === void 0) { return; } if (count <= 1) { runtime.documents.delete(targetDocument); return; } runtime.documents.set(targetDocument, count - 1); }; } function registerStyle2(hash, css) { const runtime = getRuntime2(); runtime.styles.set(hash, css); for (const targetDocument of runtime.documents.keys()) { injectStyle2(targetDocument, hash, css); } } if (typeof process === "undefined" || true) { registerStyle2("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}}}"); } var style_default2 = { "visually-hidden": "f37b9e2e191ebd66__visually-hidden" }; var VisuallyHidden = (0, import_element5.forwardRef)( function VisuallyHidden2({ render, ...restProps }, ref) { const element = useRender({ render, ref, props: mergeProps( { className: style_default2["visually-hidden"] }, restProps, { // @ts-expect-error Arbitrary data-* attributes aren't indexable on the typed div props. Kept hardcoded so consumers can't change or remove it. "data-visually-hidden": "" } ) }); return element; } ); // packages/ui/build-module/link/link.mjs var import_element6 = __toESM(require_element(), 1); var import_i18n3 = __toESM(require_i18n(), 1); var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1); var STYLE_HASH_ATTRIBUTE3 = "data-wp-hash"; function getRuntime3() { const globalScope = globalThis; if (globalScope.__wpStyleRuntime) { return globalScope.__wpStyleRuntime; } globalScope.__wpStyleRuntime = { documents: /* @__PURE__ */ new Map(), styles: /* @__PURE__ */ new Map(), injectedStyles: /* @__PURE__ */ new WeakMap() }; if (typeof document !== "undefined") { registerDocument3(document); } return globalScope.__wpStyleRuntime; } function documentContainsStyleHash3(targetDocument, hash) { if (!targetDocument.head) { return false; } for (const style of targetDocument.head.querySelectorAll( `style[${STYLE_HASH_ATTRIBUTE3}]` )) { if (style.getAttribute(STYLE_HASH_ATTRIBUTE3) === hash) { return true; } } return false; } function injectStyle3(targetDocument, hash, css) { if (!targetDocument.head) { return; } const runtime = getRuntime3(); let injectedStyles = runtime.injectedStyles.get(targetDocument); if (!injectedStyles) { injectedStyles = /* @__PURE__ */ new Set(); runtime.injectedStyles.set(targetDocument, injectedStyles); } if (injectedStyles.has(hash)) { return; } if (documentContainsStyleHash3(targetDocument, hash)) { injectedStyles.add(hash); return; } const style = targetDocument.createElement("style"); style.setAttribute(STYLE_HASH_ATTRIBUTE3, hash); style.appendChild(targetDocument.createTextNode(css)); targetDocument.head.appendChild(style); injectedStyles.add(hash); } function registerDocument3(targetDocument) { const runtime = getRuntime3(); runtime.documents.set( targetDocument, (runtime.documents.get(targetDocument) ?? 0) + 1 ); for (const [hash, css] of runtime.styles) { injectStyle3(targetDocument, hash, css); } return () => { const count = runtime.documents.get(targetDocument); if (count === void 0) { return; } if (count <= 1) { runtime.documents.delete(targetDocument); return; } runtime.documents.set(targetDocument, count - 1); }; } function registerStyle3(hash, css) { const runtime = getRuntime3(); runtime.styles.set(hash, css); for (const targetDocument of runtime.documents.keys()) { injectStyle3(targetDocument, hash, css); } } if (typeof process === "undefined" || true) { registerStyle3("10f3806643", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._336cd3e4e743482f__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}}"); } var resets_default = { "box-sizing": "_336cd3e4e743482f__box-sizing" }; if (typeof process === "undefined" || true) { registerStyle3("da99a163ac", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._08e8a2e44959f892__outset-ring--focus:focus,.c5cb3ee4bddaa8e4__outset-ring--focus-within-visible:focus-within:has(:focus-visible),.cd83dfc2126a0846__outset-ring--focus-within:focus-within,.d0541bc9dd9dc7b6__outset-ring--focus-visible:focus-visible,:focus-visible .ecadb9e080e2dfa5__outset-ring--focus-parent-visible{--_gcd-a-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid 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(--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(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}._970d04df7376df67__outset-ring--focus-within-except-active:focus-within,.e25b2bdd7aa21721__outset-ring--focus-except-active:focus{outline:none}._970d04df7376df67__outset-ring--focus-within-except-active:focus-within:not(:has(:active)),.e25b2bdd7aa21721__outset-ring--focus-except-active:focus:not(:active){@include mixins.focus-ring()}}}"); } var focus_default = { "outset-ring--focus": "_08e8a2e44959f892__outset-ring--focus", "outset-ring--focus-visible": "d0541bc9dd9dc7b6__outset-ring--focus-visible", "outset-ring--focus-within": "cd83dfc2126a0846__outset-ring--focus-within", "outset-ring--focus-within-visible": "c5cb3ee4bddaa8e4__outset-ring--focus-within-visible", "outset-ring--focus-parent-visible": "ecadb9e080e2dfa5__outset-ring--focus-parent-visible", "outset-ring--focus-except-active": "e25b2bdd7aa21721__outset-ring--focus-except-active", "outset-ring--focus-within-except-active": "_970d04df7376df67__outset-ring--focus-within-except-active" }; if (typeof process === "undefined" || true) { registerStyle3("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"}}}'); } var style_default3 = { "link": "d4250949359b05ce__link", "is-brand": "c6055659b8e2cd2c__is-brand", "is-neutral": "_92e0dfcaeee15b88__is-neutral", "is-unstyled": "cf122a9bf1035d42__is-unstyled", "link-icon": "_0cb411afac4c86c7__link-icon" }; if (typeof process === "undefined" || true) { registerStyle3("af6d9984a6", "._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);&: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))}&::placeholder{color:var(--_gcd-input-placeholder-color,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)}"); } 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" }; var Link = (0, import_element6.forwardRef)(function Link2({ children, variant = "default", tone = "brand", openInNewTab = false, render, className, ...props }, ref) { const element = useRender({ render, defaultTagName: "a", ref, props: mergeProps(props, { className: clsx_default( global_css_defense_default.a, resets_default["box-sizing"], focus_default["outset-ring--focus-except-active"], variant !== "unstyled" && style_default3.link, variant !== "unstyled" && style_default3[`is-${tone}`], variant === "unstyled" && style_default3["is-unstyled"], className ), target: openInNewTab ? "_blank" : void 0, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [ children, openInNewTab && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)( "span", { className: style_default3["link-icon"], role: "img", "aria-label": ( /* translators: accessibility text appended to link text */ (0, import_i18n3.__)("(opens in a new tab)") ) } ) ] }) }) }); return element; }); // packages/ui/build-module/tabs/index.mjs var tabs_exports = {}; __export(tabs_exports, { List: () => List, Panel: () => Panel, Root: () => Root, Tab: () => Tab }); // packages/ui/build-module/tabs/list.mjs var import_element7 = __toESM(require_element(), 1); var import_compose = __toESM(require_compose(), 1); var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1); var STYLE_HASH_ATTRIBUTE4 = "data-wp-hash"; function getRuntime4() { const globalScope = globalThis; if (globalScope.__wpStyleRuntime) { return globalScope.__wpStyleRuntime; } globalScope.__wpStyleRuntime = { documents: /* @__PURE__ */ new Map(), styles: /* @__PURE__ */ new Map(), injectedStyles: /* @__PURE__ */ new WeakMap() }; if (typeof document !== "undefined") { registerDocument4(document); } return globalScope.__wpStyleRuntime; } function documentContainsStyleHash4(targetDocument, hash) { if (!targetDocument.head) { return false; } for (const style of targetDocument.head.querySelectorAll( `style[${STYLE_HASH_ATTRIBUTE4}]` )) { if (style.getAttribute(STYLE_HASH_ATTRIBUTE4) === hash) { return true; } } return false; } function injectStyle4(targetDocument, hash, css) { if (!targetDocument.head) { return; } const runtime = getRuntime4(); let injectedStyles = runtime.injectedStyles.get(targetDocument); if (!injectedStyles) { injectedStyles = /* @__PURE__ */ new Set(); runtime.injectedStyles.set(targetDocument, injectedStyles); } if (injectedStyles.has(hash)) { return; } if (documentContainsStyleHash4(targetDocument, hash)) { injectedStyles.add(hash); return; } const style = targetDocument.createElement("style"); style.setAttribute(STYLE_HASH_ATTRIBUTE4, hash); style.appendChild(targetDocument.createTextNode(css)); targetDocument.head.appendChild(style); injectedStyles.add(hash); } function registerDocument4(targetDocument) { const runtime = getRuntime4(); runtime.documents.set( targetDocument, (runtime.documents.get(targetDocument) ?? 0) + 1 ); for (const [hash, css] of runtime.styles) { injectStyle4(targetDocument, hash, css); } return () => { const count = runtime.documents.get(targetDocument); if (count === void 0) { return; } if (count <= 1) { runtime.documents.delete(targetDocument); return; } runtime.documents.set(targetDocument, count - 1); }; } function registerStyle4(hash, css) { const runtime = getRuntime4(); runtime.styles.set(hash, css); for (const targetDocument of runtime.documents.keys()) { injectStyle4(targetDocument, hash, css); } } if (typeof process === "undefined" || true) { registerStyle4("bb8cbb8f31", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._7313adbc8a112e90__tablist{--direction-factor:1;--direction-start:left;--direction-end:right;align-items:stretch;display:flex;overflow-inline:auto;overscroll-behavior-inline:none;position:relative;&:dir(rtl){--direction-factor:-1;--direction-start:right;--direction-end:left}&[data-orientation=horizontal]{--fade-width:4rem;--fade-gradient-base:transparent 0%,#000 var(--fade-width);--fade-gradient-composed:var(--fade-gradient-base),#000 60%,transparent 50%;width:fit-content;&._9f2ac729c68a735a__is-overflowing-first{mask-image:linear-gradient(to var(--direction-end),var(--fade-gradient-base))}&._81c799c1f3cdd261__is-overflowing-last{mask-image:linear-gradient(to var(--direction-start),var(--fade-gradient-base))}&._9f2ac729c68a735a__is-overflowing-first._81c799c1f3cdd261__is-overflowing-last{mask-image:linear-gradient(to right,var(--fade-gradient-composed)),linear-gradient(to left,var(--fade-gradient-composed))}&._59228b5227f38a99__is-minimal-variant{gap:1rem}}&[data-orientation=vertical]{flex-direction:column}}._1c37dcfaa1ad8cda__indicator{@media not (prefers-reduced-motion){transition-duration:.2s;transition-property:translate,width,height,border-radius,border-block;transition-timing-function:ease-out}outline:2px solid transparent;outline-offset:-1px;pointer-events:none;position:absolute;&[data-orientation=horizontal]{background-color:var(--wpds-color-stroke-interactive-neutral-strong,#6e6e6e);bottom:0;height:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px));left:0;translate:var(--active-tab-left) 0;width:var(--active-tab-width);z-index:1}&[data-orientation=vertical]{background-color:var(--wpds-color-background-interactive-neutral-weak-active,#ededed);border-radius:var(--wpds-border-radius-sm,2px);height:var(--active-tab-height);left:50%;top:0;translate:-50% var(--active-tab-top);width:100%;z-index:0}._7313adbc8a112e90__tablist[data-select-on-move=true]:has(:focus-visible)\n &[data-orientation=vertical]{border:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9));box-sizing:border-box}}.a5fd8814f195aa5e__tab{align-items:center;background:transparent;border:none;border-radius:0;box-shadow:none;color:var(--wpds-color-foreground-interactive-neutral,#1e1e1e);cursor:var(--wpds-cursor-control,pointer);display:flex;flex:1 0 auto;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-md,13px);font-weight:400;line-height:1.2;outline:none;padding:0;position:relative;white-space:nowrap;z-index:1;&[data-disabled]{color:var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d);cursor:default;@media (forced-colors:active){color:GrayText}}&:not([data-disabled]):is(:hover,:focus-visible){color:var(--wpds-color-foreground-interactive-neutral-active,#1e1e1e)}&:after{border-radius:var(--wpds-border-radius-sm,2px);opacity:0;outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9));pointer-events:none;position:absolute;z-index:-1;@media not (prefers-reduced-motion){transition:opacity .1s linear}}&:focus-visible:after{opacity:1}[data-orientation=horizontal] &{height:48px;padding-inline:var(--wpds-dimension-padding-lg,16px);scroll-margin:24px;&:after{content:"";inset:var(--wpds-dimension-padding-md,12px)}}._59228b5227f38a99__is-minimal-variant[data-orientation=horizontal] &{padding-inline:0;&:after{inset-inline:round(up,var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)),1px)}}[data-orientation=vertical] &{min-height:var(--wpds-dimension-size-lg,40px);padding:var(--wpds-dimension-padding-sm,8px) var(--wpds-dimension-padding-md,12px)}[data-orientation=vertical][data-select-on-move=false] &:after{content:"";inset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}}._5dfc77e6edd345d4__tab-children{align-items:center;display:flex;flex-grow:1;[data-orientation=horizontal] &{justify-content:center}[data-orientation=vertical] &{justify-content:start}}._4a20e969d15e5ac1__tab-chevron{flex-shrink:0;margin-inline-end:calc(var(--wpds-dimension-gap-xs, 4px)*-1);opacity:0;[data-orientation=horizontal] &{display:none}[role=tab]:is([aria-selected=true],:focus-visible,:hover) &{opacity:1}@media not (prefers-reduced-motion){[data-select-on-move=true]\n [role=tab]:is([aria-selected=true])\n &{transition:opacity .15s linear .15s}}&:dir(rtl){rotate:180deg}}}}'); } var style_default4 = { "tablist": "_7313adbc8a112e90__tablist", "is-overflowing-first": "_9f2ac729c68a735a__is-overflowing-first", "is-overflowing-last": "_81c799c1f3cdd261__is-overflowing-last", "is-minimal-variant": "_59228b5227f38a99__is-minimal-variant", "indicator": "_1c37dcfaa1ad8cda__indicator", "tab": "a5fd8814f195aa5e__tab", "tab-children": "_5dfc77e6edd345d4__tab-children", "tab-chevron": "_4a20e969d15e5ac1__tab-chevron" }; var SCROLL_EPSILON = 1; var List = (0, import_element7.forwardRef)( function TabList({ children, variant = "default", className, activateOnFocus, ...otherProps }, forwardedRef) { const [listEl, setListEl] = (0, import_element7.useState)(null); const [overflow, setOverflow] = (0, import_element7.useState)({ first: false, last: false, isScrolling: false }); (0, import_element7.useEffect)(() => { if (!listEl) { return; } const measureOverflow = () => { const { scrollWidth, clientWidth, scrollLeft } = listEl; const maxScroll = Math.max(scrollWidth - clientWidth, 0); const direction = listEl.dir || (typeof window !== "undefined" ? window.getComputedStyle(listEl).direction : "ltr"); const scrollFromStart = direction === "rtl" && scrollLeft < 0 ? ( // In RTL layouts, scrollLeft is typically 0 at the visual "start" // (right edge) and becomes negative toward the "end" (left edge). // Normalize value for correct first/last detection logic. -scrollLeft ) : scrollLeft; const next = { first: scrollFromStart > SCROLL_EPSILON, last: scrollFromStart < maxScroll - SCROLL_EPSILON, isScrolling: scrollWidth > clientWidth }; setOverflow( (prev) => prev.first === next.first && prev.last === next.last && prev.isScrolling === next.isScrolling ? prev : next ); }; const resizeObserver = new ResizeObserver(measureOverflow); const observeTabs = () => { resizeObserver.disconnect(); resizeObserver.observe(listEl); listEl.querySelectorAll('[role="tab"]').forEach((tab) => resizeObserver.observe(tab)); }; const mutationObserver = new MutationObserver(observeTabs); mutationObserver.observe(listEl, { childList: true, subtree: true }); let scrollTick = false; const throttleMeasureOverflowOnScroll = () => { if (!scrollTick) { requestAnimationFrame(() => { measureOverflow(); scrollTick = false; }); scrollTick = true; } }; listEl.addEventListener( "scroll", throttleMeasureOverflowOnScroll, { passive: true } ); observeTabs(); measureOverflow(); return () => { listEl.removeEventListener( "scroll", throttleMeasureOverflowOnScroll ); resizeObserver.disconnect(); mutationObserver.disconnect(); }; }, [listEl]); const mergedListRef = (0, import_compose.useMergeRefs)([ forwardedRef, (el) => setListEl(el) ]); return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)( index_parts_exports.List, { ref: mergedListRef, activateOnFocus, "data-select-on-move": activateOnFocus ? "true" : "false", className: clsx_default( style_default4.tablist, overflow.first && style_default4["is-overflowing-first"], overflow.last && style_default4["is-overflowing-last"], style_default4[`is-${variant}-variant`], className ), ...otherProps, tabIndex: otherProps.tabIndex ?? (overflow.isScrolling ? -1 : void 0), children: [ children, /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(index_parts_exports.Indicator, { className: style_default4.indicator }) ] } ); } ); // packages/ui/build-module/tabs/panel.mjs var import_element9 = __toESM(require_element(), 1); // packages/ui/build-module/tabs/context.mjs var import_element8 = __toESM(require_element(), 1); var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1); var VALIDATION_ENABLED = true; var TabsValidationContext = VALIDATION_ENABLED ? (0, import_element8.createContext)(null) : null; function useRegisterTabDev() { const context = (0, import_element8.useContext)(TabsValidationContext); (0, import_element8.useEffect)(() => { if (context) { return context.registerTab(); } return void 0; }, [context]); } function useRegisterTabProd() { } var useRegisterTab = VALIDATION_ENABLED ? useRegisterTabDev : useRegisterTabProd; function useRegisterPanelDev() { const context = (0, import_element8.useContext)(TabsValidationContext); (0, import_element8.useEffect)(() => { if (context) { return context.registerPanel(); } return void 0; }, [context]); } function useRegisterPanelProd() { } var useRegisterPanel = VALIDATION_ENABLED ? useRegisterPanelDev : useRegisterPanelProd; function TabsValidationProviderDev({ children }) { const tabCountRef = (0, import_element8.useRef)(0); const panelCountRef = (0, import_element8.useRef)(0); const scheduleValidation = useScheduleValidation(() => { const tabCount = tabCountRef.current; const panelCount = panelCountRef.current; if (tabCount !== panelCount) { throw new Error( `Tabs: Tab/Panel count mismatch (${tabCount} Tabs, ${panelCount} Panels). Each Tab must be associated with exactly one Panel. Mismatched or missing associations can break screen reader navigation and violate WAI-ARIA Tabs pattern requirements.` ); } }); const registerTab = (0, import_element8.useCallback)(() => { tabCountRef.current += 1; scheduleValidation(); return () => { tabCountRef.current -= 1; scheduleValidation(); }; }, [scheduleValidation]); const registerPanel = (0, import_element8.useCallback)(() => { panelCountRef.current += 1; scheduleValidation(); return () => { panelCountRef.current -= 1; scheduleValidation(); }; }, [scheduleValidation]); const contextValue = (0, import_element8.useMemo)( () => ({ registerTab, registerPanel }), [registerTab, registerPanel] ); return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(TabsValidationContext.Provider, { value: contextValue, children }); } function TabsValidationProviderProd({ children }) { return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_jsx_runtime25.Fragment, { children }); } var TabsValidationProvider = VALIDATION_ENABLED ? TabsValidationProviderDev : TabsValidationProviderProd; // packages/ui/build-module/tabs/panel.mjs var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1); var STYLE_HASH_ATTRIBUTE5 = "data-wp-hash"; function getRuntime5() { const globalScope = globalThis; if (globalScope.__wpStyleRuntime) { return globalScope.__wpStyleRuntime; } globalScope.__wpStyleRuntime = { documents: /* @__PURE__ */ new Map(), styles: /* @__PURE__ */ new Map(), injectedStyles: /* @__PURE__ */ new WeakMap() }; if (typeof document !== "undefined") { registerDocument5(document); } return globalScope.__wpStyleRuntime; } function documentContainsStyleHash5(targetDocument, hash) { if (!targetDocument.head) { return false; } for (const style of targetDocument.head.querySelectorAll( `style[${STYLE_HASH_ATTRIBUTE5}]` )) { if (style.getAttribute(STYLE_HASH_ATTRIBUTE5) === hash) { return true; } } return false; } function injectStyle5(targetDocument, hash, css) { if (!targetDocument.head) { return; } const runtime = getRuntime5(); let injectedStyles = runtime.injectedStyles.get(targetDocument); if (!injectedStyles) { injectedStyles = /* @__PURE__ */ new Set(); runtime.injectedStyles.set(targetDocument, injectedStyles); } if (injectedStyles.has(hash)) { return; } if (documentContainsStyleHash5(targetDocument, hash)) { injectedStyles.add(hash); return; } const style = targetDocument.createElement("style"); style.setAttribute(STYLE_HASH_ATTRIBUTE5, hash); style.appendChild(targetDocument.createTextNode(css)); targetDocument.head.appendChild(style); injectedStyles.add(hash); } function registerDocument5(targetDocument) { const runtime = getRuntime5(); runtime.documents.set( targetDocument, (runtime.documents.get(targetDocument) ?? 0) + 1 ); for (const [hash, css] of runtime.styles) { injectStyle5(targetDocument, hash, css); } return () => { const count = runtime.documents.get(targetDocument); if (count === void 0) { return; } if (count <= 1) { runtime.documents.delete(targetDocument); return; } runtime.documents.set(targetDocument, count - 1); }; } function registerStyle5(hash, css) { const runtime = getRuntime5(); runtime.styles.set(hash, css); for (const targetDocument of runtime.documents.keys()) { injectStyle5(targetDocument, hash, css); } } if (typeof process === "undefined" || true) { registerStyle5("af6d9984a6", "._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);&: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))}&::placeholder{color:var(--_gcd-input-placeholder-color,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)}"); } 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" }; if (typeof process === "undefined" || true) { registerStyle5("da99a163ac", "@layer wp-ui{@layer utilities, components, compositions, overrides;@layer utilities{._08e8a2e44959f892__outset-ring--focus:focus,.c5cb3ee4bddaa8e4__outset-ring--focus-within-visible:focus-within:has(:focus-visible),.cd83dfc2126a0846__outset-ring--focus-within:focus-within,.d0541bc9dd9dc7b6__outset-ring--focus-visible:focus-visible,:focus-visible .ecadb9e080e2dfa5__outset-ring--focus-parent-visible{--_gcd-a-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid 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(--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(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}._970d04df7376df67__outset-ring--focus-within-except-active:focus-within,.e25b2bdd7aa21721__outset-ring--focus-except-active:focus{outline:none}._970d04df7376df67__outset-ring--focus-within-except-active:focus-within:not(:has(:active)),.e25b2bdd7aa21721__outset-ring--focus-except-active:focus:not(:active){@include mixins.focus-ring()}}}"); } var focus_default2 = { "outset-ring--focus": "_08e8a2e44959f892__outset-ring--focus", "outset-ring--focus-visible": "d0541bc9dd9dc7b6__outset-ring--focus-visible", "outset-ring--focus-within": "cd83dfc2126a0846__outset-ring--focus-within", "outset-ring--focus-within-visible": "c5cb3ee4bddaa8e4__outset-ring--focus-within-visible", "outset-ring--focus-parent-visible": "ecadb9e080e2dfa5__outset-ring--focus-parent-visible", "outset-ring--focus-except-active": "e25b2bdd7aa21721__outset-ring--focus-except-active", "outset-ring--focus-within-except-active": "_970d04df7376df67__outset-ring--focus-within-except-active" }; var Panel = (0, import_element9.forwardRef)( function TabPanel({ className, ...otherProps }, forwardedRef) { useRegisterPanel(); return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)( index_parts_exports.Panel, { ref: forwardedRef, className: clsx_default( global_css_defense_default2.div, focus_default2["outset-ring--focus-visible"], className ), ...otherProps } ); } ); // packages/ui/build-module/tabs/root.mjs var import_element10 = __toESM(require_element(), 1); var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1); var Root = (0, import_element10.forwardRef)( function TabsRoot3({ ...otherProps }, forwardedRef) { return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(TabsValidationProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(index_parts_exports.Root, { ref: forwardedRef, ...otherProps }) }); } ); // packages/ui/build-module/tabs/tab.mjs var import_element11 = __toESM(require_element(), 1); var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1); var STYLE_HASH_ATTRIBUTE6 = "data-wp-hash"; function getRuntime6() { const globalScope = globalThis; if (globalScope.__wpStyleRuntime) { return globalScope.__wpStyleRuntime; } globalScope.__wpStyleRuntime = { documents: /* @__PURE__ */ new Map(), styles: /* @__PURE__ */ new Map(), injectedStyles: /* @__PURE__ */ new WeakMap() }; if (typeof document !== "undefined") { registerDocument6(document); } return globalScope.__wpStyleRuntime; } function documentContainsStyleHash6(targetDocument, hash) { if (!targetDocument.head) { return false; } for (const style of targetDocument.head.querySelectorAll( `style[${STYLE_HASH_ATTRIBUTE6}]` )) { if (style.getAttribute(STYLE_HASH_ATTRIBUTE6) === hash) { return true; } } return false; } function injectStyle6(targetDocument, hash, css) { if (!targetDocument.head) { return; } const runtime = getRuntime6(); let injectedStyles = runtime.injectedStyles.get(targetDocument); if (!injectedStyles) { injectedStyles = /* @__PURE__ */ new Set(); runtime.injectedStyles.set(targetDocument, injectedStyles); } if (injectedStyles.has(hash)) { return; } if (documentContainsStyleHash6(targetDocument, hash)) { injectedStyles.add(hash); return; } const style = targetDocument.createElement("style"); style.setAttribute(STYLE_HASH_ATTRIBUTE6, hash); style.appendChild(targetDocument.createTextNode(css)); targetDocument.head.appendChild(style); injectedStyles.add(hash); } function registerDocument6(targetDocument) { const runtime = getRuntime6(); runtime.documents.set( targetDocument, (runtime.documents.get(targetDocument) ?? 0) + 1 ); for (const [hash, css] of runtime.styles) { injectStyle6(targetDocument, hash, css); } return () => { const count = runtime.documents.get(targetDocument); if (count === void 0) { return; } if (count <= 1) { runtime.documents.delete(targetDocument); return; } runtime.documents.set(targetDocument, count - 1); }; } function registerStyle6(hash, css) { const runtime = getRuntime6(); runtime.styles.set(hash, css); for (const targetDocument of runtime.documents.keys()) { injectStyle6(targetDocument, hash, css); } } if (typeof process === "undefined" || true) { registerStyle6("bb8cbb8f31", '@layer wp-ui{@layer utilities, components, compositions, overrides;@layer components{._7313adbc8a112e90__tablist{--direction-factor:1;--direction-start:left;--direction-end:right;align-items:stretch;display:flex;overflow-inline:auto;overscroll-behavior-inline:none;position:relative;&:dir(rtl){--direction-factor:-1;--direction-start:right;--direction-end:left}&[data-orientation=horizontal]{--fade-width:4rem;--fade-gradient-base:transparent 0%,#000 var(--fade-width);--fade-gradient-composed:var(--fade-gradient-base),#000 60%,transparent 50%;width:fit-content;&._9f2ac729c68a735a__is-overflowing-first{mask-image:linear-gradient(to var(--direction-end),var(--fade-gradient-base))}&._81c799c1f3cdd261__is-overflowing-last{mask-image:linear-gradient(to var(--direction-start),var(--fade-gradient-base))}&._9f2ac729c68a735a__is-overflowing-first._81c799c1f3cdd261__is-overflowing-last{mask-image:linear-gradient(to right,var(--fade-gradient-composed)),linear-gradient(to left,var(--fade-gradient-composed))}&._59228b5227f38a99__is-minimal-variant{gap:1rem}}&[data-orientation=vertical]{flex-direction:column}}._1c37dcfaa1ad8cda__indicator{@media not (prefers-reduced-motion){transition-duration:.2s;transition-property:translate,width,height,border-radius,border-block;transition-timing-function:ease-out}outline:2px solid transparent;outline-offset:-1px;pointer-events:none;position:absolute;&[data-orientation=horizontal]{background-color:var(--wpds-color-stroke-interactive-neutral-strong,#6e6e6e);bottom:0;height:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px));left:0;translate:var(--active-tab-left) 0;width:var(--active-tab-width);z-index:1}&[data-orientation=vertical]{background-color:var(--wpds-color-background-interactive-neutral-weak-active,#ededed);border-radius:var(--wpds-border-radius-sm,2px);height:var(--active-tab-height);left:50%;top:0;translate:-50% var(--active-tab-top);width:100%;z-index:0}._7313adbc8a112e90__tablist[data-select-on-move=true]:has(:focus-visible)\n &[data-orientation=vertical]{border:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9));box-sizing:border-box}}.a5fd8814f195aa5e__tab{align-items:center;background:transparent;border:none;border-radius:0;box-shadow:none;color:var(--wpds-color-foreground-interactive-neutral,#1e1e1e);cursor:var(--wpds-cursor-control,pointer);display:flex;flex:1 0 auto;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-md,13px);font-weight:400;line-height:1.2;outline:none;padding:0;position:relative;white-space:nowrap;z-index:1;&[data-disabled]{color:var(--wpds-color-foreground-interactive-neutral-disabled,#8d8d8d);cursor:default;@media (forced-colors:active){color:GrayText}}&:not([data-disabled]):is(:hover,:focus-visible){color:var(--wpds-color-foreground-interactive-neutral-active,#1e1e1e)}&:after{border-radius:var(--wpds-border-radius-sm,2px);opacity:0;outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9));pointer-events:none;position:absolute;z-index:-1;@media not (prefers-reduced-motion){transition:opacity .1s linear}}&:focus-visible:after{opacity:1}[data-orientation=horizontal] &{height:48px;padding-inline:var(--wpds-dimension-padding-lg,16px);scroll-margin:24px;&:after{content:"";inset:var(--wpds-dimension-padding-md,12px)}}._59228b5227f38a99__is-minimal-variant[data-orientation=horizontal] &{padding-inline:0;&:after{inset-inline:round(up,var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)),1px)}}[data-orientation=vertical] &{min-height:var(--wpds-dimension-size-lg,40px);padding:var(--wpds-dimension-padding-sm,8px) var(--wpds-dimension-padding-md,12px)}[data-orientation=vertical][data-select-on-move=false] &:after{content:"";inset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}}._5dfc77e6edd345d4__tab-children{align-items:center;display:flex;flex-grow:1;[data-orientation=horizontal] &{justify-content:center}[data-orientation=vertical] &{justify-content:start}}._4a20e969d15e5ac1__tab-chevron{flex-shrink:0;margin-inline-end:calc(var(--wpds-dimension-gap-xs, 4px)*-1);opacity:0;[data-orientation=horizontal] &{display:none}[role=tab]:is([aria-selected=true],:focus-visible,:hover) &{opacity:1}@media not (prefers-reduced-motion){[data-select-on-move=true]\n [role=tab]:is([aria-selected=true])\n &{transition:opacity .15s linear .15s}}&:dir(rtl){rotate:180deg}}}}'); } var style_default5 = { "tablist": "_7313adbc8a112e90__tablist", "is-overflowing-first": "_9f2ac729c68a735a__is-overflowing-first", "is-overflowing-last": "_81c799c1f3cdd261__is-overflowing-last", "is-minimal-variant": "_59228b5227f38a99__is-minimal-variant", "indicator": "_1c37dcfaa1ad8cda__indicator", "tab": "a5fd8814f195aa5e__tab", "tab-children": "_5dfc77e6edd345d4__tab-children", "tab-chevron": "_4a20e969d15e5ac1__tab-chevron" }; var Tab = (0, import_element11.forwardRef)(function Tab2({ className, children, ...otherProps }, forwardedRef) { useRegisterTab(); return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)( index_parts_exports.Tab, { ref: forwardedRef, className: clsx_default(style_default5.tab, className), ...otherProps, children: [ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: style_default5["tab-children"], children }), /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon, { icon: chevron_right_default, className: style_default5["tab-chevron"] }) ] } ); }); // packages/format-library/build-module/image/index.mjs var import_i18n4 = __toESM(require_i18n(), 1); var import_element12 = __toESM(require_element(), 1); var import_rich_text3 = __toESM(require_rich_text(), 1); var import_block_editor3 = __toESM(require_block_editor(), 1); var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1); var ALLOWED_MEDIA_TYPES = ["image"]; var name3 = "core/image"; var title3 = (0, import_i18n4.__)("Inline image"); function getCurrentImageId(activeObjectAttributes) { if (!activeObjectAttributes?.className) { return void 0; } const [, id] = activeObjectAttributes.className.match(/wp-image-(\d+)/) ?? []; return id ? parseInt(id, 10) : void 0; } var image = { name: name3, title: title3, keywords: [(0, import_i18n4.__)("photo"), (0, import_i18n4.__)("media")], object: true, tagName: "img", className: null, attributes: { className: "class", style: "style", url: "src", alt: "alt" }, edit: Edit }; function InlineUI({ value, onChange, activeObjectAttributes, contentRef }) { const { style, alt } = activeObjectAttributes; const width = style?.replace(/\D/g, ""); const [editedWidth, setEditedWidth] = (0, import_element12.useState)(width); const [editedAlt, setEditedAlt] = (0, import_element12.useState)(alt); const hasChanged = editedWidth !== width || editedAlt !== alt; const popoverAnchor = (0, import_rich_text3.useAnchor)({ editableContentElement: contentRef.current, settings: image }); return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)( import_components.Popover, { focusOnMount: false, anchor: popoverAnchor, className: "block-editor-format-toolbar__image-popover", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)( "form", { className: "block-editor-format-toolbar__image-container-content", onSubmit: (event) => { const newReplacements = value.replacements.slice(); newReplacements[value.start] = { type: name3, attributes: { ...activeObjectAttributes, style: editedWidth ? `width: ${editedWidth}px;` : "", alt: editedAlt } }; onChange({ ...value, replacements: newReplacements }); event.preventDefault(); }, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Stack, { direction: "column", gap: "lg", children: [ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)( import_components.__experimentalNumberControl, { label: (0, import_i18n4.__)("Width"), value: editedWidth, min: 1, onChange: (newWidth) => { setEditedWidth(newWidth); } } ), /* @__PURE__ */ (0, import_jsx_runtime29.jsx)( import_components.TextareaControl, { label: (0, import_i18n4.__)("Alternative text"), value: editedAlt, onChange: (newAlt) => { setEditedAlt(newAlt); }, help: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)( Link, { openInNewTab: true, href: ( // translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations. (0, import_i18n4.__)( "https://www.w3.org/WAI/tutorials/images/decision-tree/" ) ), children: (0, import_i18n4.__)( "Describe the purpose of the image." ) } ), /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("br", {}), (0, import_i18n4.__)("Leave empty if decorative.") ] }) } ), /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Stack, { justify: "right", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)( import_components.Button, { disabled: !hasChanged, accessibleWhenDisabled: true, variant: "primary", type: "submit", size: "compact", children: (0, import_i18n4.__)("Apply") } ) }) ] }) } ) } ); } function Edit({ value, onChange, onFocus, isObjectActive, activeObjectAttributes, contentRef }) { return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_block_editor3.MediaUploadCheck, { children: [ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)( import_block_editor3.MediaUpload, { allowedTypes: ALLOWED_MEDIA_TYPES, value: getCurrentImageId(activeObjectAttributes), onSelect: ({ id, url, alt, width: imgWidth }) => { onChange( (0, import_rich_text3.insertObject)(value, { type: name3, attributes: { className: `wp-image-${id}`, style: `width: ${Math.min( imgWidth, 150 )}px;`, url, alt } }) ); onFocus(); }, render: ({ open }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)( import_block_editor3.RichTextToolbarButton, { icon: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)( import_components.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_components.Path, { d: "M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z" }) } ), title: isObjectActive ? (0, import_i18n4.__)("Replace image") : title3, onClick: open, isActive: isObjectActive } ) } ), isObjectActive && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)( InlineUI, { value, onChange, activeObjectAttributes, contentRef } ) ] }); } // packages/format-library/build-module/italic/index.mjs var import_i18n5 = __toESM(require_i18n(), 1); var import_rich_text4 = __toESM(require_rich_text(), 1); var import_block_editor4 = __toESM(require_block_editor(), 1); var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1); var name4 = "core/italic"; var title4 = (0, import_i18n5.__)("Italic"); var italic = { name: name4, title: title4, tagName: "em", className: null, edit({ isActive, value, onChange, onFocus, isVisible = true }) { function onToggle() { onChange((0, import_rich_text4.toggleFormat)(value, { type: name4, title: title4 })); } function onClick() { onChange((0, import_rich_text4.toggleFormat)(value, { type: name4 })); onFocus(); } return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)( import_block_editor4.RichTextShortcut, { type: "primary", character: "i", onUse: onToggle } ), isVisible && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)( import_block_editor4.RichTextToolbarButton, { name: "italic", icon: format_italic_default, title: title4, onClick, isActive, shortcutType: "primary", shortcutCharacter: "i" } ), /* @__PURE__ */ (0, import_jsx_runtime30.jsx)( import_block_editor4.__unstableRichTextInputEvent, { inputType: "formatItalic", onInput: onToggle } ) ] }); } }; // packages/format-library/build-module/link/index.mjs var import_i18n8 = __toESM(require_i18n(), 1); var import_element15 = __toESM(require_element(), 1); var import_rich_text6 = __toESM(require_rich_text(), 1); var import_url3 = __toESM(require_url(), 1); var import_block_editor6 = __toESM(require_block_editor(), 1); var import_html_entities = __toESM(require_html_entities(), 1); var import_a11y2 = __toESM(require_a11y(), 1); // packages/format-library/build-module/link/inline.mjs var import_element14 = __toESM(require_element(), 1); var import_i18n7 = __toESM(require_i18n(), 1); var import_a11y = __toESM(require_a11y(), 1); var import_components3 = __toESM(require_components(), 1); var import_url2 = __toESM(require_url(), 1); var import_rich_text5 = __toESM(require_rich_text(), 1); var import_block_editor5 = __toESM(require_block_editor(), 1); var import_data = __toESM(require_data(), 1); // packages/format-library/build-module/link/utils.mjs var import_url = __toESM(require_url(), 1); function isValidHref(href) { if (!href) { return false; } const trimmedHref = href.trim(); if (!trimmedHref) { return false; } if (/^\S+:/.test(trimmedHref)) { const protocol = (0, import_url.getProtocol)(trimmedHref); if (!(0, import_url.isValidProtocol)(protocol)) { return false; } if (protocol.startsWith("http") && !/^https?:\/\/[^\/\s]/i.test(trimmedHref)) { return false; } const authority = (0, import_url.getAuthority)(trimmedHref); if (!(0, import_url.isValidAuthority)(authority)) { return false; } const path = (0, import_url.getPath)(trimmedHref); if (path && !(0, import_url.isValidPath)(path)) { return false; } const queryString = (0, import_url.getQueryString)(trimmedHref); if (queryString && !(0, import_url.isValidQueryString)(queryString)) { return false; } const fragment = (0, import_url.getFragment)(trimmedHref); if (fragment && !(0, import_url.isValidFragment)(fragment)) { return false; } } if (trimmedHref.startsWith("#") && !(0, import_url.isValidFragment)(trimmedHref)) { return false; } return true; } function createLinkFormat({ url, type, id, opensInNewWindow, nofollow, cssClasses }) { const format = { type: "core/link", attributes: { url } }; if (type) { format.attributes.type = type; } if (id) { format.attributes.id = id; } if (opensInNewWindow) { format.attributes.target = "_blank"; format.attributes.rel = format.attributes.rel ? format.attributes.rel + " noopener" : "noopener"; } if (nofollow) { format.attributes.rel = format.attributes.rel ? format.attributes.rel + " nofollow" : "nofollow"; } const trimmedCssClasses = cssClasses?.trim(); if (trimmedCssClasses?.length) { format.attributes.class = trimmedCssClasses; } return format; } function getFormatBoundary(value, format, startIndex = value.start, endIndex = value.end) { const EMPTY_BOUNDARIES = { start: void 0, end: void 0 }; const { formats } = value; let targetFormat; let initialIndex; if (!formats?.length) { return EMPTY_BOUNDARIES; } const newFormats = formats.slice(); const formatAtStart = newFormats[startIndex]?.find( ({ type }) => type === format.type ); const formatAtEnd = newFormats[endIndex]?.find( ({ type }) => type === format.type ); const formatAtEndMinusOne = newFormats[endIndex - 1]?.find( ({ type }) => type === format.type ); if (!!formatAtStart) { targetFormat = formatAtStart; initialIndex = startIndex; } else if (!!formatAtEnd) { targetFormat = formatAtEnd; initialIndex = endIndex; } else if (!!formatAtEndMinusOne) { targetFormat = formatAtEndMinusOne; initialIndex = endIndex - 1; } else { return EMPTY_BOUNDARIES; } const index = newFormats[initialIndex].indexOf(targetFormat); const walkingArgs = [newFormats, initialIndex, targetFormat, index]; startIndex = walkToStart(...walkingArgs); endIndex = walkToEnd(...walkingArgs); startIndex = startIndex < 0 ? 0 : startIndex; return { start: startIndex, end: endIndex + 1 }; } function walkToBoundary(formats, initialIndex, targetFormatRef, formatIndex, direction) { let index = initialIndex; const directions = { forwards: 1, backwards: -1 }; const directionIncrement = directions[direction] || 1; const inverseDirectionIncrement = directionIncrement * -1; while (formats[index] && formats[index][formatIndex] === targetFormatRef) { index = index + directionIncrement; } index = index + inverseDirectionIncrement; return index; } var partialRight = (fn, ...partialArgs) => (...args) => fn(...args, ...partialArgs); var walkToStart = partialRight(walkToBoundary, "backwards"); var walkToEnd = partialRight(walkToBoundary, "forwards"); // packages/format-library/build-module/link/css-classes-setting.mjs var import_element13 = __toESM(require_element(), 1); var import_compose2 = __toESM(require_compose(), 1); var import_i18n6 = __toESM(require_i18n(), 1); var import_components2 = __toESM(require_components(), 1); var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1); var CSSClassesSettingComponent = ({ setting, value, onChange }) => { const hasValue = value ? value?.cssClasses?.length > 0 : false; const [isSettingActive, setIsSettingActive] = (0, import_element13.useState)(hasValue); const instanceId = (0, import_compose2.useInstanceId)(CSSClassesSettingComponent); const controlledRegionId = `css-classes-setting-${instanceId}`; const handleSettingChange = (newValue) => { const sanitizedValue = typeof newValue === "string" ? newValue.replace(/,/g, " ").replace(/\s+/g, " ").trim() : newValue; onChange({ ...value, [setting.id]: sanitizedValue }); }; const handleCheckboxChange = () => { if (isSettingActive) { if (hasValue) { handleSettingChange(""); } setIsSettingActive(false); } else { setIsSettingActive(true); } }; return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("fieldset", { children: [ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(VisuallyHidden, { render: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("legend", {}), children: setting.title }), /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Stack, { direction: "column", gap: "md", children: [ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)( import_components2.CheckboxControl, { label: setting.title, onChange: handleCheckboxChange, checked: isSettingActive || hasValue, "aria-expanded": isSettingActive, "aria-controls": isSettingActive ? controlledRegionId : void 0 } ), isSettingActive && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { id: controlledRegionId, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)( import_components2.__experimentalInputControl, { label: (0, import_i18n6.__)("CSS classes"), value: value?.cssClasses, onChange: handleSettingChange, help: (0, import_i18n6.__)( "Separate multiple classes with spaces." ), __unstableInputWidth: "100%" } ) }) ] }) ] }); }; var css_classes_setting_default = CSSClassesSettingComponent; // packages/format-library/build-module/link/inline.mjs var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1); var LINK_SETTINGS = [ ...import_block_editor5.LinkControl.DEFAULT_LINK_SETTINGS, { id: "nofollow", title: (0, import_i18n7.__)("Mark as nofollow") }, { id: "cssClasses", title: (0, import_i18n7.__)("Additional CSS class(es)"), render: (setting, value, onChange) => { return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)( css_classes_setting_default, { setting, value, onChange } ); } } ]; function InlineLinkUI({ isActive, activeAttributes, value, onChange, onFocusOutside, stopAddingLink, contentRef, focusOnMount }) { const richLinkTextValue = getRichTextValueFromSelection(value, isActive); const richTextText = richLinkTextValue.text; const { selectionChange } = (0, import_data.useDispatch)(import_block_editor5.store); const { createPageEntity, userCanCreatePages, selectionStart } = (0, import_data.useSelect)( (select) => { const { getSettings, getSelectionStart } = select(import_block_editor5.store); const _settings = getSettings(); return { createPageEntity: _settings.__experimentalCreatePageEntity, userCanCreatePages: _settings.__experimentalUserCanCreatePages, selectionStart: getSelectionStart() }; }, [] ); const linkValue = (0, import_element14.useMemo)( () => ({ url: activeAttributes.url, type: activeAttributes.type, id: activeAttributes.id, opensInNewTab: activeAttributes.target === "_blank", nofollow: activeAttributes.rel?.includes("nofollow"), title: richTextText, cssClasses: activeAttributes.class }), [ activeAttributes.class, activeAttributes.id, activeAttributes.rel, activeAttributes.target, activeAttributes.type, activeAttributes.url, richTextText ] ); function removeLink() { const newValue = (0, import_rich_text5.removeFormat)(value, "core/link"); onChange(newValue); stopAddingLink(); (0, import_a11y.speak)((0, import_i18n7.__)("Link removed."), "assertive"); } function onChangeLink(nextValue) { const hasLink = linkValue?.url; const isNewLink = !hasLink; nextValue = { ...linkValue, ...nextValue }; const newUrl = (0, import_url2.prependHTTPS)(nextValue.url); const linkFormat = createLinkFormat({ url: newUrl, type: nextValue.type, id: nextValue.id !== void 0 && nextValue.id !== null ? String(nextValue.id) : void 0, opensInNewWindow: nextValue.opensInNewTab, nofollow: nextValue.nofollow, cssClasses: nextValue.cssClasses }); const newText = nextValue.title || newUrl; let newValue; if ((0, import_rich_text5.isCollapsed)(value) && !isActive) { const inserted = (0, import_rich_text5.insert)(value, newText); newValue = (0, import_rich_text5.applyFormat)( inserted, linkFormat, value.start, value.start + newText.length ); onChange(newValue); stopAddingLink(); selectionChange({ clientId: selectionStart.clientId, identifier: selectionStart.attributeKey, start: value.start + newText.length + 1 }); return; } else if (newText === richTextText) { const boundary = getFormatBoundary(value, { type: "core/link" }); newValue = (0, import_rich_text5.applyFormat)( value, linkFormat, boundary.start, boundary.end ); } else { newValue = (0, import_rich_text5.create)({ text: newText }); newValue = (0, import_rich_text5.applyFormat)(newValue, linkFormat, 0, newText.length); const boundary = getFormatBoundary(value, { type: "core/link" }); const [valBefore, valAfter] = (0, import_rich_text5.split)( value, boundary.start, boundary.start ); const newValAfter = (0, import_rich_text5.replace)(valAfter, richTextText, newValue); newValue = (0, import_rich_text5.concat)(valBefore, newValAfter); } onChange(newValue); if (!isNewLink) { stopAddingLink(); } if (!isValidHref(newUrl)) { (0, import_a11y.speak)( (0, import_i18n7.__)( "Warning: the link has been inserted but may have errors. Please test it." ), "assertive" ); } else if (isActive) { (0, import_a11y.speak)((0, import_i18n7.__)("Link edited."), "assertive"); } else { (0, import_a11y.speak)((0, import_i18n7.__)("Link inserted."), "assertive"); } } const popoverAnchor = (0, import_rich_text5.useAnchor)({ editableContentElement: contentRef.current, settings: { ...link, isActive } }); async function handleCreate(pageTitle) { const page = await createPageEntity({ title: pageTitle, status: "draft" }); return { id: page.id, type: page.type, title: page.title.rendered, url: page.link, kind: "post-type" }; } function createButtonText(searchTerm) { return (0, import_element14.createInterpolateElement)( (0, import_i18n7.sprintf)( /* translators: %s: search term. */ (0, import_i18n7.__)("Create page: <mark>%s</mark>"), searchTerm ), { mark: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("mark", {}) } ); } return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)( import_components3.Popover, { anchor: popoverAnchor, animate: false, onClose: stopAddingLink, onFocusOutside, placement: "bottom", offset: 8, shift: true, focusOnMount, constrainTabbing: true, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)( import_block_editor5.LinkControl, { value: linkValue, onChange: onChangeLink, onRemove: removeLink, hasRichPreviews: true, createSuggestion: createPageEntity && handleCreate, withCreateSuggestion: userCanCreatePages, createSuggestionButtonText: createButtonText, hasTextControl: true, settings: LINK_SETTINGS, showInitialSuggestions: true, suggestionsQuery: { // always show Pages as initial suggestions initialSuggestionsSearchOptions: { type: "post", subtype: "page", perPage: 20 } } } ) } ); } function getRichTextValueFromSelection(value, isActive) { let textStart = value.start; let textEnd = value.end; if (isActive) { const boundary = getFormatBoundary(value, { type: "core/link" }); textStart = boundary.start; textEnd = boundary.end; } return (0, import_rich_text5.slice)(value, textStart, textEnd); } var inline_default = InlineLinkUI; // packages/format-library/build-module/link/index.mjs var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1); var name5 = "core/link"; var title5 = (0, import_i18n8.__)("Link"); function Edit2({ isActive, activeAttributes, value, onChange, onFocus, contentRef, isVisible = true }) { const [addingLink, setAddingLink] = (0, import_element15.useState)(false); const [openedBy, setOpenedBy] = (0, import_element15.useState)(null); (0, import_element15.useEffect)(() => { if (!isActive) { setAddingLink(false); } }, [isActive]); (0, import_element15.useLayoutEffect)(() => { const editableContentElement = contentRef.current; if (!editableContentElement) { return; } function handleClick(event) { const link2 = event.target.closest("[contenteditable] a"); if (!link2 || // other formats (e.g. bold) may be nested within the link. !isActive) { return; } setAddingLink(true); setOpenedBy({ el: link2, action: "click" }); } editableContentElement.addEventListener("click", handleClick); return () => { editableContentElement.removeEventListener("click", handleClick); }; }, [contentRef, isActive]); function addLink(target) { const text = (0, import_rich_text6.getTextContent)((0, import_rich_text6.slice)(value)); if (!isActive && text && (0, import_url3.isURL)(text) && isValidHref(text)) { onChange( (0, import_rich_text6.applyFormat)(value, { type: name5, attributes: { url: text } }) ); } else if (!isActive && text && (0, import_url3.isEmail)(text)) { onChange( (0, import_rich_text6.applyFormat)(value, { type: name5, attributes: { url: `mailto:${text}` } }) ); } else if (!isActive && text && (0, import_url3.isPhoneNumber)(text)) { onChange( (0, import_rich_text6.applyFormat)(value, { type: name5, attributes: { url: `tel:${text.replace(/\D/g, "")}` } }) ); } else { if (target) { setOpenedBy({ el: target, action: null // We don't need to distinguish between click or keyboard here }); } setAddingLink(true); } } function stopAddingLink() { setAddingLink(false); if (openedBy?.el?.tagName === "BUTTON") { openedBy.el.focus(); } else { onFocus(); } setOpenedBy(null); } function onFocusOutside() { setAddingLink(false); setOpenedBy(null); } function onRemoveFormat() { onChange((0, import_rich_text6.removeFormat)(value, name5)); (0, import_a11y2.speak)((0, import_i18n8.__)("Link removed."), "assertive"); } const shouldAutoFocus = !(openedBy?.el?.tagName === "A" && openedBy?.action === "click"); const hasSelection = !(0, import_rich_text6.isCollapsed)(value); return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_jsx_runtime33.Fragment, { children: [ hasSelection && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)( import_block_editor6.RichTextShortcut, { type: "primary", character: "k", onUse: addLink } ), /* @__PURE__ */ (0, import_jsx_runtime33.jsx)( import_block_editor6.RichTextShortcut, { type: "primaryShift", character: "k", onUse: onRemoveFormat } ), isVisible && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)( import_block_editor6.RichTextToolbarButton, { name: "link", icon: link_default, title: isActive ? (0, import_i18n8.__)("Link") : title5, onClick: (event) => { addLink(event.currentTarget); }, isActive: isActive || addingLink, shortcutType: "primary", shortcutCharacter: "k", "aria-haspopup": "true", "aria-expanded": addingLink } ), isVisible && addingLink && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)( inline_default, { stopAddingLink, onFocusOutside, isActive, activeAttributes, value, onChange, contentRef, focusOnMount: shouldAutoFocus ? "firstElement" : false } ) ] }); } var link = { name: name5, title: title5, tagName: "a", className: null, attributes: { url: "href", type: "data-type", id: "data-id", _id: "id", target: "target", rel: "rel", class: "class" }, __unstablePasteRule(value, { html, plainText }) { const pastedText = (html || plainText).replace(/<[^>]+>/g, "").trim(); if (!(0, import_url3.isURL)(pastedText) || !/^https?:/.test(pastedText)) { return value; } window.console.log("Created link:\n\n", pastedText); const format = { type: name5, attributes: { url: (0, import_html_entities.decodeEntities)(pastedText) } }; if ((0, import_rich_text6.isCollapsed)(value)) { return (0, import_rich_text6.insert)( value, (0, import_rich_text6.applyFormat)( (0, import_rich_text6.create)({ text: plainText }), format, 0, plainText.length ) ); } return (0, import_rich_text6.applyFormat)(value, format); }, edit: Edit2 }; // packages/format-library/build-module/strikethrough/index.mjs var import_i18n9 = __toESM(require_i18n(), 1); var import_rich_text7 = __toESM(require_rich_text(), 1); var import_block_editor7 = __toESM(require_block_editor(), 1); var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1); var name6 = "core/strikethrough"; var title6 = (0, import_i18n9.__)("Strikethrough"); var strikethrough = { name: name6, title: title6, tagName: "s", className: null, edit({ isActive, value, onChange, onFocus }) { function onClick() { onChange((0, import_rich_text7.toggleFormat)(value, { type: name6, title: title6 })); onFocus(); } return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)( import_block_editor7.RichTextShortcut, { type: "access", character: "d", onUse: onClick } ), /* @__PURE__ */ (0, import_jsx_runtime34.jsx)( import_block_editor7.RichTextToolbarButton, { icon: format_strikethrough_default, title: title6, onClick, isActive, role: "menuitemcheckbox" } ) ] }); } }; // packages/format-library/build-module/underline/index.mjs var import_i18n10 = __toESM(require_i18n(), 1); var import_rich_text8 = __toESM(require_rich_text(), 1); var import_block_editor8 = __toESM(require_block_editor(), 1); var import_jsx_runtime35 = __toESM(require_jsx_runtime(), 1); var name7 = "core/underline"; var title7 = (0, import_i18n10.__)("Underline"); var underline = { name: name7, title: title7, tagName: "span", className: null, attributes: { style: "style" }, edit({ value, onChange }) { const onToggle = () => { onChange( (0, import_rich_text8.toggleFormat)(value, { type: name7, attributes: { style: "text-decoration: underline;" }, title: title7 }) ); }; return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)( import_block_editor8.RichTextShortcut, { type: "primary", character: "u", onUse: onToggle } ), /* @__PURE__ */ (0, import_jsx_runtime35.jsx)( import_block_editor8.__unstableRichTextInputEvent, { inputType: "formatUnderline", onInput: onToggle } ) ] }); } }; // packages/format-library/build-module/text-color/index.mjs var import_i18n12 = __toESM(require_i18n(), 1); var import_element17 = __toESM(require_element(), 1); var import_block_editor10 = __toESM(require_block_editor(), 1); var import_rich_text10 = __toESM(require_rich_text(), 1); // packages/format-library/build-module/text-color/inline.mjs var import_element16 = __toESM(require_element(), 1); var import_data2 = __toESM(require_data(), 1); var import_rich_text9 = __toESM(require_rich_text(), 1); var import_block_editor9 = __toESM(require_block_editor(), 1); var import_components4 = __toESM(require_components(), 1); var import_i18n11 = __toESM(require_i18n(), 1); var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1); var TABS = [ { name: "color", title: (0, import_i18n11.__)("Text") }, { name: "backgroundColor", title: (0, import_i18n11.__)("Background") } ]; function parseCSS(css = "") { return css.split(";").reduce((accumulator, rule) => { if (rule) { const [property, value] = rule.split(":"); if (property === "color") { accumulator.color = value; } if (property === "background-color" && value !== transparentValue) { accumulator.backgroundColor = value; } } return accumulator; }, {}); } function parseClassName(className = "", colorSettings) { return className.split(" ").reduce((accumulator, name16) => { if (name16.startsWith("has-") && name16.endsWith("-color")) { const colorSlug = name16.replace(/^has-/, "").replace(/-color$/, ""); const colorObject = (0, import_block_editor9.getColorObjectByAttributeValues)( colorSettings, colorSlug ); accumulator.color = colorObject.color; } return accumulator; }, {}); } function getActiveColors(value, name16, colorSettings) { const activeColorFormat = (0, import_rich_text9.getActiveFormat)(value, name16); if (!activeColorFormat) { return {}; } return { ...parseCSS(activeColorFormat.attributes.style), ...parseClassName(activeColorFormat.attributes.class, colorSettings) }; } function setColors(value, name16, colorSettings, colors) { const { color, backgroundColor } = { ...getActiveColors(value, name16, colorSettings), ...colors }; if (!color && !backgroundColor) { return (0, import_rich_text9.removeFormat)(value, name16); } const styles = []; const classNames = []; const attributes = {}; if (backgroundColor) { styles.push(["background-color", backgroundColor].join(":")); } else { styles.push(["background-color", transparentValue].join(":")); } if (color) { const colorObject = (0, import_block_editor9.getColorObjectByColorValue)(colorSettings, color); if (colorObject) { classNames.push((0, import_block_editor9.getColorClassName)("color", colorObject.slug)); } else { styles.push(["color", color].join(":")); } } if (styles.length) { attributes.style = styles.join(";"); } if (classNames.length) { attributes.class = classNames.join(" "); } return (0, import_rich_text9.applyFormat)(value, { type: name16, attributes }); } function ColorPicker({ name: name16, property, value, onChange }) { const colors = (0, import_data2.useSelect)((select) => { const { getSettings } = select(import_block_editor9.store); return getSettings().colors ?? []; }, []); const activeColors = (0, import_element16.useMemo)( () => getActiveColors(value, name16, colors), [name16, value, colors] ); return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)( import_block_editor9.ColorPalette, { value: activeColors[property], onChange: (color) => { onChange( setColors(value, name16, colors, { [property]: color }) ); }, enableAlpha: true, __experimentalIsRenderedInSidebar: true } ); } function InlineColorUI({ name: name16, value, onChange, onClose, contentRef, isActive }) { const popoverAnchor = (0, import_rich_text9.useAnchor)({ editableContentElement: contentRef.current, settings: { ...textColor, isActive } }); return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)( import_components4.Popover, { onClose, className: "format-library__inline-color-popover", anchor: popoverAnchor, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(tabs_exports.Root, { defaultValue: TABS[0].name, children: [ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(tabs_exports.List, { children: TABS.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(tabs_exports.Tab, { value: tab.name, children: tab.title }, tab.name)) }), TABS.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)( tabs_exports.Panel, { value: tab.name, tabIndex: -1, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)( ColorPicker, { name: name16, property: tab.name, value, onChange } ) }, tab.name )) ] }) } ); } // packages/format-library/build-module/text-color/index.mjs var import_jsx_runtime37 = __toESM(require_jsx_runtime(), 1); var transparentValue = "rgba(0, 0, 0, 0)"; var name8 = "core/text-color"; var title8 = (0, import_i18n12.__)("Highlight"); var EMPTY_ARRAY3 = []; function getComputedStyleProperty(element, property) { const { ownerDocument: ownerDocument2 } = element; const { defaultView } = ownerDocument2; const style = defaultView.getComputedStyle(element); const value = style.getPropertyValue(property); if (property === "background-color" && value === transparentValue && element.parentElement) { return getComputedStyleProperty(element.parentElement, property); } return value; } function fillComputedColors(element, { color, backgroundColor }) { if (!color && !backgroundColor) { return; } return { color: color || getComputedStyleProperty(element, "color"), backgroundColor: backgroundColor === transparentValue ? getComputedStyleProperty(element, "background-color") : backgroundColor }; } function TextColorEdit({ value, onChange, isActive, activeAttributes, contentRef }) { const [allowCustomControl, colors = EMPTY_ARRAY3] = (0, import_block_editor10.useSettings)( "color.custom", "color.palette" ); const [isAddingColor, setIsAddingColor] = (0, import_element17.useState)(false); const colorIndicatorStyle = (0, import_element17.useMemo)( () => fillComputedColors( contentRef.current, getActiveColors(value, name8, colors) ), [contentRef, value, colors] ); const hasColorsToChoose = !!colors.length || allowCustomControl; if (!hasColorsToChoose && !isActive) { return null; } return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)( import_block_editor10.RichTextToolbarButton, { className: "format-library-text-color-button", isActive, icon: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)( icon_default, { icon: Object.keys(activeAttributes).length ? text_color_default : color_default, style: colorIndicatorStyle } ), title: title8, onClick: hasColorsToChoose ? () => setIsAddingColor(true) : () => onChange((0, import_rich_text10.removeFormat)(value, name8)), role: "menuitemcheckbox" } ), isAddingColor && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)( InlineColorUI, { name: name8, onClose: () => setIsAddingColor(false), activeAttributes, value, onChange, contentRef, isActive } ) ] }); } var textColor = { name: name8, title: title8, tagName: "mark", className: "has-inline-color", attributes: { style: "style", class: "class" }, edit: TextColorEdit }; // packages/format-library/build-module/subscript/index.mjs var import_i18n13 = __toESM(require_i18n(), 1); var import_rich_text11 = __toESM(require_rich_text(), 1); var import_block_editor11 = __toESM(require_block_editor(), 1); var import_jsx_runtime38 = __toESM(require_jsx_runtime(), 1); var name9 = "core/subscript"; var title9 = (0, import_i18n13.__)("Subscript"); var subscript = { name: name9, title: title9, tagName: "sub", className: null, edit({ isActive, value, onChange, onFocus }) { function onToggle() { onChange((0, import_rich_text11.toggleFormat)(value, { type: name9, title: title9 })); } function onClick() { onToggle(); onFocus(); } return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)( import_block_editor11.RichTextToolbarButton, { icon: subscript_default, title: title9, onClick, isActive, role: "menuitemcheckbox" } ); } }; // packages/format-library/build-module/superscript/index.mjs var import_i18n14 = __toESM(require_i18n(), 1); var import_rich_text12 = __toESM(require_rich_text(), 1); var import_block_editor12 = __toESM(require_block_editor(), 1); var import_jsx_runtime39 = __toESM(require_jsx_runtime(), 1); var name10 = "core/superscript"; var title10 = (0, import_i18n14.__)("Superscript"); var superscript = { name: name10, title: title10, tagName: "sup", className: null, edit({ isActive, value, onChange, onFocus }) { function onToggle() { onChange((0, import_rich_text12.toggleFormat)(value, { type: name10, title: title10 })); } function onClick() { onToggle(); onFocus(); } return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)( import_block_editor12.RichTextToolbarButton, { icon: superscript_default, title: title10, onClick, isActive, role: "menuitemcheckbox" } ); } }; // packages/format-library/build-module/keyboard/index.mjs var import_i18n15 = __toESM(require_i18n(), 1); var import_rich_text13 = __toESM(require_rich_text(), 1); var import_block_editor13 = __toESM(require_block_editor(), 1); var import_jsx_runtime40 = __toESM(require_jsx_runtime(), 1); var name11 = "core/keyboard"; var title11 = (0, import_i18n15.__)("Keyboard input"); var keyboard2 = { name: name11, title: title11, tagName: "kbd", className: null, edit({ isActive, value, onChange, onFocus }) { function onToggle() { onChange((0, import_rich_text13.toggleFormat)(value, { type: name11, title: title11 })); } function onClick() { onToggle(); onFocus(); } return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)( import_block_editor13.RichTextToolbarButton, { icon: button_default, title: title11, onClick, isActive, role: "menuitemcheckbox" } ); } }; // packages/format-library/build-module/unknown/index.mjs var import_i18n16 = __toESM(require_i18n(), 1); var import_rich_text14 = __toESM(require_rich_text(), 1); var import_block_editor14 = __toESM(require_block_editor(), 1); var import_jsx_runtime41 = __toESM(require_jsx_runtime(), 1); var name12 = "core/unknown"; var title12 = (0, import_i18n16.__)("Clear Unknown Formatting"); function selectionContainsUnknownFormats(value) { if ((0, import_rich_text14.isCollapsed)(value)) { return false; } const selectedValue = (0, import_rich_text14.slice)(value); return selectedValue.formats.some((formats) => { return formats.some((format) => format.type === name12); }); } var unknown = { name: name12, title: title12, tagName: "*", className: null, edit({ isActive, value, onChange, onFocus }) { if (!isActive && !selectionContainsUnknownFormats(value)) { return null; } function onClick() { onChange((0, import_rich_text14.removeFormat)(value, name12)); onFocus(); } return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)( import_block_editor14.RichTextToolbarButton, { name: "unknown", icon: help_default, title: title12, onClick, isActive: true } ); } }; // packages/format-library/build-module/language/index.mjs var import_i18n17 = __toESM(require_i18n(), 1); var import_block_editor15 = __toESM(require_block_editor(), 1); var import_components5 = __toESM(require_components(), 1); var import_element18 = __toESM(require_element(), 1); var import_rich_text15 = __toESM(require_rich_text(), 1); var import_jsx_runtime42 = __toESM(require_jsx_runtime(), 1); var name13 = "core/language"; var title13 = (0, import_i18n17.__)("Language"); var language = { name: name13, title: title13, tagName: "bdo", className: null, attributes: { lang: "lang", dir: "dir" }, edit: Edit3 }; function Edit3({ isActive, value, onChange, contentRef }) { const [isPopoverVisible, setIsPopoverVisible] = (0, import_element18.useState)(false); const togglePopover = () => { setIsPopoverVisible((state) => !state); }; return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)( import_block_editor15.RichTextToolbarButton, { icon: language_default, label: title13, title: title13, onClick: () => { if (isActive) { onChange((0, import_rich_text15.removeFormat)(value, name13)); } else { togglePopover(); } }, isActive, role: "menuitemcheckbox" } ), isPopoverVisible && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)( InlineLanguageUI, { value, onChange, onClose: togglePopover, contentRef } ) ] }); } function InlineLanguageUI({ value, contentRef, onChange, onClose }) { const popoverAnchor = (0, import_rich_text15.useAnchor)({ editableContentElement: contentRef.current, settings: language }); const [lang, setLang] = (0, import_element18.useState)(""); const [dir, setDir] = (0, import_element18.useState)("ltr"); return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)( import_components5.Popover, { className: "block-editor-format-toolbar__language-popover", anchor: popoverAnchor, onClose, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)( Stack, { render: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("form", {}), direction: "column", gap: "lg", className: "block-editor-format-toolbar__language-container-content", onSubmit: (event) => { event.preventDefault(); onChange( (0, import_rich_text15.applyFormat)(value, { type: name13, attributes: { lang, dir } }) ); onClose(); }, children: [ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)( import_components5.TextControl, { label: title13, value: lang, onChange: (val) => setLang(val), help: (0, import_i18n17.__)( 'A valid language attribute, like "en" or "fr".' ) } ), /* @__PURE__ */ (0, import_jsx_runtime42.jsx)( import_components5.SelectControl, { label: (0, import_i18n17.__)("Text direction"), value: dir, options: [ { label: (0, import_i18n17.__)("Left to right"), value: "ltr" }, { label: (0, import_i18n17.__)("Right to left"), value: "rtl" } ], onChange: (val) => setDir(val) } ), /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Stack, { justify: "right", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)( import_components5.Button, { __next40pxDefaultSize: true, variant: "primary", type: "submit", text: (0, import_i18n17.__)("Apply") } ) }) ] } ) } ); } // packages/format-library/build-module/math/index.mjs var import_i18n18 = __toESM(require_i18n(), 1); var import_element19 = __toESM(require_element(), 1); var import_rich_text16 = __toESM(require_rich_text(), 1); var import_block_editor16 = __toESM(require_block_editor(), 1); var import_components6 = __toESM(require_components(), 1); var import_a11y3 = __toESM(require_a11y(), 1); // packages/format-library/build-module/lock-unlock.mjs var import_private_apis = __toESM(require_private_apis(), 1); var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)( "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.", "@wordpress/format-library" ); // packages/format-library/build-module/math/index.mjs var import_jsx_runtime43 = __toESM(require_jsx_runtime(), 1); var { Badge: WCBadge } = unlock(import_components6.privateApis); var name14 = "core/math"; var title14 = (0, import_i18n18.__)("Math"); function InlineUI2({ value, onChange, activeAttributes, contentRef, latexToMathML }) { const [latex, setLatex] = (0, import_element19.useState)( activeAttributes?.["data-latex"] || "" ); const [error2, setError] = (0, import_element19.useState)(null); const popoverAnchor = (0, import_rich_text16.useAnchor)({ editableContentElement: contentRef.current, settings: math }); const handleLatexChange = (newLatex) => { let mathML = ""; setLatex(newLatex); if (newLatex) { try { mathML = latexToMathML(newLatex, { displayMode: false }); setError(null); } catch (err) { setError(err.message); (0, import_a11y3.speak)( (0, import_i18n18.sprintf)( /* translators: %s: error message returned when parsing LaTeX. */ (0, import_i18n18.__)("Error parsing mathematical expression: %s"), err.message ) ); return; } } const newReplacements = value.replacements.slice(); newReplacements[value.start] = { type: name14, attributes: { "data-latex": newLatex }, innerHTML: mathML }; onChange({ ...value, replacements: newReplacements }); }; return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)( import_components6.Popover, { placement: "bottom-start", offset: 8, focusOnMount: false, anchor: popoverAnchor, className: "block-editor-format-toolbar__math-popover", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { style: { minWidth: "300px", padding: "4px" }, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(Stack, { direction: "column", gap: "xs", children: [ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)( import_components6.TextControl, { hideLabelFromVision: true, label: (0, import_i18n18.__)("LaTeX math syntax"), value: latex, onChange: handleLatexChange, placeholder: (0, import_i18n18.__)("e.g., x^2, \\frac{a}{b}"), autoComplete: "off", className: "block-editor-format-toolbar__math-input" } ), error2 && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)( WCBadge, { intent: "error", className: "wp-block-math__error", children: (0, import_i18n18.sprintf)( /* translators: %s: error message returned when parsing LaTeX. */ (0, import_i18n18.__)("Error: %s"), error2 ) } ), /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("style", { children: ".wp-block-math__error .components-badge__content{white-space:normal}" }) ] }) ] }) }) } ); } function Edit4({ value, onChange, onFocus, isObjectActive, activeObjectAttributes, contentRef }) { const [latexToMathML, setLatexToMathML] = (0, import_element19.useState)(); (0, import_element19.useEffect)(() => { import("@wordpress/latex-to-mathml").then((module) => { setLatexToMathML(() => module.default); }); }, []); function onClick() { let newValue; if (isObjectActive) { const latex = activeObjectAttributes?.["data-latex"] || ""; newValue = (0, import_rich_text16.insert)(value, latex); newValue.start = newValue.end - latex.length; } else { const selectedText = (0, import_rich_text16.getTextContent)((0, import_rich_text16.slice)(value)); let innerHTML = ""; if (selectedText && latexToMathML) { try { innerHTML = latexToMathML(selectedText, { displayMode: false }); } catch { } } newValue = (0, import_rich_text16.insertObject)(value, { type: name14, attributes: { "data-latex": selectedText }, innerHTML }); newValue.start = newValue.end - 1; } onChange(newValue); onFocus(); } return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)( import_block_editor16.RichTextToolbarButton, { icon: math_default, title: title14, onClick, isActive: isObjectActive } ), isObjectActive && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)( InlineUI2, { value, onChange, activeAttributes: activeObjectAttributes, contentRef, latexToMathML } ) ] }); } var math = { name: name14, title: title14, tagName: "math", className: null, attributes: { "data-latex": "data-latex" }, contentEditable: false, edit: Edit4 }; // packages/format-library/build-module/non-breaking-space/index.mjs var import_i18n19 = __toESM(require_i18n(), 1); var import_rich_text17 = __toESM(require_rich_text(), 1); var import_block_editor17 = __toESM(require_block_editor(), 1); var import_jsx_runtime44 = __toESM(require_jsx_runtime(), 1); var name15 = "core/non-breaking-space"; var title15 = (0, import_i18n19.__)("Non breaking space"); var nonBreakingSpace = { name: name15, title: title15, tagName: "nbsp", className: null, edit({ value, onChange }) { function addNonBreakingSpace() { onChange((0, import_rich_text17.insert)(value, "\xA0")); } return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)( import_block_editor17.RichTextShortcut, { type: "primaryShift", character: " ", onUse: addNonBreakingSpace } ); } }; // packages/format-library/build-module/default-formats.mjs var default_formats_default = [ bold, code, image, italic, link, strikethrough, underline, textColor, subscript, superscript, keyboard2, unknown, language, math, nonBreakingSpace ]; // packages/format-library/build-module/index.mjs default_formats_default.forEach( ({ name: name16, ...settings }) => (0, import_rich_text18.registerFormatType)(name16, settings) ); })(); /*! Bundled license information: use-sync-external-store/cjs/use-sync-external-store-shim.development.js: (** * @license React * use-sync-external-store-shim.development.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) */ (window.wp ||= {}).formatLibrary = wp.formatLibrary; })();
Save
cmd:
run