File: /homepages/16/d176908298/htdocs/wdev/wp-content/plugins/gutenberg/build/modules/boot/index.js.map
{
"version": 3,
"sources": ["package-external:@wordpress/element", "package-external:@wordpress/data", "package-external:@wordpress/i18n", "package-external:@wordpress/components", "vendor-external:react/jsx-runtime", "vendor-external:react", "package-external:@wordpress/primitives", "package-external:@wordpress/theme", "package-external:@wordpress/private-apis", "package-external:@wordpress/compose", "package-external:@wordpress/core-data", "package-external:@wordpress/notices", "package-external:@wordpress/html-entities", "package-external:@wordpress/keycodes", "package-external:@wordpress/commands", "package-external:@wordpress/url", "package-external:@wordpress/editor", "package-external:@wordpress/keyboard-shortcuts", "../../../packages/boot/src/components/app/index.tsx", "../../../packages/boot/src/components/app/router.tsx", "../../../node_modules/clsx/dist/clsx.mjs", "../../../packages/admin-ui/src/navigable-region/index.tsx", "../../../node_modules/@base-ui/utils/esm/useRefWithInit.js", "../../../node_modules/@base-ui/react/esm/utils/useRenderElement.js", "../../../node_modules/@base-ui/utils/esm/useMergedRefs.js", "../../../node_modules/@base-ui/utils/esm/getReactElementRef.js", "../../../node_modules/@base-ui/utils/esm/reactVersion.js", "../../../node_modules/@base-ui/utils/esm/mergeObjects.js", "../../../node_modules/@base-ui/react/esm/utils/getStateAttributesProps.js", "../../../node_modules/@base-ui/react/esm/utils/resolveClassName.js", "../../../node_modules/@base-ui/react/esm/utils/resolveStyle.js", "../../../node_modules/@base-ui/react/esm/merge-props/mergeProps.js", "../../../node_modules/@base-ui/utils/esm/empty.js", "../../../node_modules/@base-ui/react/esm/use-render/useRender.js", "../../../packages/icons/src/icon/index.ts", "../../../packages/icons/src/library/arrow-up-left.tsx", "../../../packages/icons/src/library/check.tsx", "../../../packages/icons/src/library/chevron-down-small.tsx", "../../../packages/icons/src/library/chevron-left-small.tsx", "../../../packages/icons/src/library/chevron-left.tsx", "../../../packages/icons/src/library/chevron-right-small.tsx", "../../../packages/icons/src/library/chevron-right.tsx", "../../../packages/icons/src/library/menu.tsx", "../../../packages/icons/src/library/search.tsx", "../../../packages/icons/src/library/wordpress.tsx", "../../../packages/ui/src/stack/stack.tsx", "../../../packages/ui/src/stack/style.module.css", "../../../packages/admin-ui/src/page/sidebar-toggle-slot.tsx", "../../../packages/admin-ui/src/page/header.tsx", "../../../packages/admin-ui/src/page/index.tsx", "../../../packages/boot/src/components/root/index.tsx", "../../../packages/boot/src/components/root/style.scss", "../../../packages/boot/src/components/site-hub/index.tsx", "../../../packages/boot/src/components/site-hub/style.scss", "../../../packages/boot/src/components/site-icon-link/index.tsx", "../../../packages/boot/src/components/site-icon-link/style.scss", "../../../packages/boot/src/lock-unlock.ts", "../../../packages/boot/src/components/site-icon/index.tsx", "../../../packages/boot/src/components/site-icon/style.scss", "../../../packages/boot/src/store/index.ts", "../../../packages/boot/src/store/reducer.ts", "../../../packages/boot/src/store/actions.ts", "../../../packages/boot/src/store/selectors.ts", "../../../packages/boot/src/components/navigation/index.tsx", "../../../packages/boot/src/components/navigation/navigation-item/index.tsx", "../../../packages/boot/src/components/navigation/navigation-item/style.scss", "../../../packages/boot/src/components/navigation/router-link-item.tsx", "../../../packages/boot/src/components/navigation/items.tsx", "../../../packages/boot/src/components/navigation/drilldown-item/index.tsx", "../../../packages/boot/src/components/navigation/dropdown-item/index.tsx", "../../../packages/boot/src/components/navigation/dropdown-item/style.scss", "../../../packages/boot/src/components/navigation/navigation-screen/index.tsx", "../../../packages/boot/src/components/navigation/navigation-screen/style.scss", "../../../packages/boot/src/components/navigation/use-sidebar-parent.ts", "../../../packages/boot/src/components/navigation/path-matching.ts", "../../../packages/boot/src/components/save-button/index.tsx", "../../../packages/boot/src/components/save-button/style.scss", "../../../packages/boot/src/components/save-panel/use-save-shortcut.ts", "../../../packages/boot/src/components/sidebar/index.tsx", "../../../packages/boot/src/components/sidebar/style.scss", "../../../packages/boot/src/components/save-panel/index.tsx", "../../../packages/boot/src/components/canvas-renderer/index.tsx", "../../../packages/boot/src/components/canvas/index.tsx", "../../../packages/boot/src/components/canvas/back-button.tsx", "../../../packages/boot/src/components/canvas/back-button.scss", "../../../packages/boot/src/components/app/use-route-title.ts", "../../../packages/boot/src/components/user-theme-provider/index.tsx", "../../../packages/boot/src/components/root/single-page.tsx", "../../../packages/boot/src/components/root/style.scss", "../../../packages/boot/src/style.scss", "../../../packages/boot/src/view-transitions.scss", "../../../packages/boot/src/index.tsx"],
"sourcesContent": ["module.exports = window.wp.element;", "module.exports = window.wp.data;", "module.exports = window.wp.i18n;", "module.exports = window.wp.components;", "module.exports = window.ReactJSXRuntime;", "module.exports = window.React;", "module.exports = window.wp.primitives;", "module.exports = window.wp.theme;", "module.exports = window.wp.privateApis;", "module.exports = window.wp.compose;", "module.exports = window.wp.coreData;", "module.exports = window.wp.notices;", "module.exports = window.wp.htmlEntities;", "module.exports = window.wp.keycodes;", "module.exports = window.wp.commands;", "module.exports = window.wp.url;", "module.exports = window.wp.editor;", "module.exports = window.wp.keyboardShortcuts;", "/**\n * WordPress dependencies\n */\nimport { createRoot, StrictMode, type ComponentType } from '@wordpress/element';\nimport { dispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport Router from './router';\nimport RootSinglePage from '../root/single-page';\nimport { store } from '../../store';\nimport type { MenuItem, Route } from '../../store/types';\n\nfunction App( { rootComponent }: { rootComponent?: ComponentType } ) {\n\tconst routes = useSelect( ( select ) => select( store ).getRoutes(), [] );\n\n\treturn <Router routes={ routes } rootComponent={ rootComponent } />;\n}\n\nexport async function init( {\n\tmountId,\n\tmenuItems,\n\troutes,\n\tinitModules,\n\tdashboardLink,\n}: {\n\tmountId: string;\n\tmenuItems?: MenuItem[];\n\troutes?: Route[];\n\tinitModules?: string[];\n\tdashboardLink?: string;\n} ) {\n\t( menuItems ?? [] ).forEach( ( menuItem ) => {\n\t\tdispatch( store ).registerMenuItem( menuItem.id, menuItem );\n\t} );\n\n\t( routes ?? [] ).forEach( ( route ) => {\n\t\tdispatch( store ).registerRoute( route );\n\t} );\n\n\tif ( dashboardLink ) {\n\t\tdispatch( store ).setDashboardLink( dashboardLink );\n\t}\n\n\tfor ( const moduleId of initModules ?? [] ) {\n\t\tconst module = await import( moduleId );\n\t\tawait module.init();\n\t}\n\n\t// Render the app\n\tconst rootElement = document.getElementById( mountId );\n\tif ( rootElement ) {\n\t\tconst root = createRoot( rootElement );\n\t\troot.render(\n\t\t\t<StrictMode>\n\t\t\t\t<App />\n\t\t\t</StrictMode>\n\t\t);\n\t}\n}\n\nexport async function initSinglePage( {\n\tmountId,\n\troutes,\n}: {\n\tmountId: string;\n\troutes?: Route[];\n} ) {\n\t( routes ?? [] ).forEach( ( route ) => {\n\t\tdispatch( store ).registerRoute( route );\n\t} );\n\n\t// Render the app without sidebar\n\tconst rootElement = document.getElementById( mountId );\n\tif ( rootElement ) {\n\t\tconst root = createRoot( rootElement );\n\t\troot.render(\n\t\t\t<StrictMode>\n\t\t\t\t<App rootComponent={ RootSinglePage } />\n\t\t\t</StrictMode>\n\t\t);\n\t}\n}\n", "/**\n * External dependencies\n */\nimport type { ComponentType } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport { Page } from '@wordpress/admin-ui';\nimport {\n\tprivateApis as routePrivateApis,\n\ttype AnyRoute,\n} from '@wordpress/route';\nimport { resolveSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport Root from '../root';\nimport type { Route, RouteConfig, RouteLoaderContext } from '../../store/types';\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tcreateLazyRoute,\n\tcreateRouter,\n\tcreateRootRoute,\n\tcreateRoute,\n\tRouterProvider,\n\tcreateBrowserHistory,\n\tparseHref,\n\tuseLoaderData,\n} = unlock( routePrivateApis );\n\n// Not found component\nfunction NotFoundComponent() {\n\treturn (\n\t\t<div className=\"boot-layout__stage\">\n\t\t\t<Page title={ __( 'Route not found' ) } hasPadding>\n\t\t\t\t{ __( \"The page you're looking for does not exist\" ) }\n\t\t\t</Page>\n\t\t</div>\n\t);\n}\n\n/**\n * Creates a TanStack route from a Route definition.\n *\n * @param route Route configuration\n * @param parentRoute Parent route.\n * @return Tanstack Route.\n */\nfunction createRouteFromDefinition( route: Route, parentRoute: AnyRoute ) {\n\t// Create route without component initially\n\tlet tanstackRoute = createRoute( {\n\t\tgetParentRoute: () => parentRoute,\n\t\tpath: route.path,\n\t\tbeforeLoad: async ( opts: any ) => {\n\t\t\t// Import route module here (lazy)\n\t\t\tif ( route.route_module ) {\n\t\t\t\tconst module = await import( route.route_module );\n\t\t\t\tconst routeConfig = module.route || {};\n\n\t\t\t\tif ( routeConfig.beforeLoad ) {\n\t\t\t\t\treturn routeConfig.beforeLoad( {\n\t\t\t\t\t\tparams: opts.params || {},\n\t\t\t\t\t\tsearch: opts.search || {},\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tloader: async ( opts: any ) => {\n\t\t\t// Import route module here (lazy)\n\t\t\tlet routeConfig: RouteConfig = {};\n\t\t\tif ( route.route_module ) {\n\t\t\t\tconst module = await import( route.route_module );\n\t\t\t\trouteConfig = module.route || {};\n\t\t\t}\n\n\t\t\tconst context: RouteLoaderContext = {\n\t\t\t\tparams: opts.params || {},\n\t\t\t\tsearch: opts.deps || {},\n\t\t\t};\n\n\t\t\tconst [ , loaderData, canvasData, titleData ] = await Promise.all( [\n\t\t\t\tresolveSelect( coreStore ).getEntityRecord(\n\t\t\t\t\t'root',\n\t\t\t\t\t'__unstableBase'\n\t\t\t\t),\n\t\t\t\trouteConfig.loader\n\t\t\t\t\t? routeConfig.loader( context )\n\t\t\t\t\t: Promise.resolve( undefined ),\n\t\t\t\trouteConfig.canvas\n\t\t\t\t\t? routeConfig.canvas( context )\n\t\t\t\t\t: Promise.resolve( undefined ),\n\t\t\t\trouteConfig.title\n\t\t\t\t\t? routeConfig.title( context )\n\t\t\t\t\t: Promise.resolve( undefined ),\n\t\t\t] );\n\n\t\t\tlet inspector = true;\n\t\t\tif ( routeConfig.inspector ) {\n\t\t\t\tinspector = await routeConfig.inspector( context );\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...( loaderData as any ),\n\t\t\t\tcanvas: canvasData,\n\t\t\t\tinspector,\n\t\t\t\ttitle: titleData,\n\t\t\t\trouteContentModule: route.content_module,\n\t\t\t};\n\t\t},\n\t\tloaderDeps: ( opts: any ) => opts.search,\n\t} );\n\n\t// Chain .lazy() to preload content module on intent\n\ttanstackRoute = tanstackRoute.lazy( async () => {\n\t\tconst module = route.content_module\n\t\t\t? await import( route.content_module )\n\t\t\t: {};\n\n\t\tconst Stage = module.stage;\n\t\tconst Inspector = module.inspector;\n\n\t\treturn createLazyRoute( route.path )( {\n\t\t\tcomponent: function RouteComponent() {\n\t\t\t\tconst { inspector: showInspector } =\n\t\t\t\t\tuseLoaderData( { from: route.path } ) ?? {};\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ Stage && (\n\t\t\t\t\t\t\t<div className=\"boot-layout__stage\">\n\t\t\t\t\t\t\t\t<Stage />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ Inspector && showInspector && (\n\t\t\t\t\t\t\t<div className=\"boot-layout__inspector\">\n\t\t\t\t\t\t\t\t<Inspector />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t},\n\t\t} );\n\t} );\n\n\treturn tanstackRoute;\n}\n\n/**\n * Creates a route tree from route definitions.\n *\n * @param routes Routes definition.\n * @param rootComponent Root component to use for the router.\n * @return Router tree.\n */\nfunction createRouteTree(\n\troutes: Route[],\n\trootComponent: ComponentType = Root\n) {\n\tconst rootRoute = createRootRoute( {\n\t\tcomponent: rootComponent as any,\n\t\tcontext: () => ( {} ),\n\t} );\n\n\t// Create routes from definitions (now synchronous)\n\tconst dynamicRoutes = routes.map( ( route ) =>\n\t\tcreateRouteFromDefinition( route, rootRoute )\n\t);\n\n\treturn rootRoute.addChildren( dynamicRoutes );\n}\n\n// Create custom history that parses ?p= query parameter\nfunction createPathHistory() {\n\treturn createBrowserHistory( {\n\t\tparseLocation: () => {\n\t\t\tconst url = new URL( window.location.href );\n\t\t\tconst path = url.searchParams.get( 'p' ) || '/';\n\t\t\tconst pathHref = `${ path }${ url.hash }`;\n\t\t\treturn parseHref( pathHref, window.history.state );\n\t\t},\n\t\tcreateHref: ( href: string ) => {\n\t\t\tconst searchParams = new URLSearchParams( window.location.search );\n\t\t\tsearchParams.set( 'p', href );\n\t\t\treturn `${ window.location.pathname }?${ searchParams }`;\n\t\t},\n\t} );\n}\n\ninterface RouterProps {\n\troutes: Route[];\n\trootComponent?: ComponentType;\n}\n\nexport default function Router( {\n\troutes,\n\trootComponent = Root,\n}: RouterProps ) {\n\tconst router = useMemo( () => {\n\t\tconst history = createPathHistory();\n\t\tconst routeTree = createRouteTree( routes, rootComponent );\n\n\t\treturn createRouter( {\n\t\t\thistory,\n\t\t\trouteTree,\n\t\t\tdefaultPreload: 'intent',\n\t\t\tdefaultNotFoundComponent: NotFoundComponent,\n\t\t\tdefaultViewTransition: {\n\t\t\t\ttypes: ( {\n\t\t\t\t\tfromLocation,\n\t\t\t\t}: {\n\t\t\t\t\tfromLocation?: unknown;\n\t\t\t\t\ttoLocation: unknown;\n\t\t\t\t\tpathChanged: boolean;\n\t\t\t\t\threfChanged: boolean;\n\t\t\t\t\thashChanged: boolean;\n\t\t\t\t} ) => {\n\t\t\t\t\t// Disable view transition on initial navigation (no previous location)\n\t\t\t\t\tif ( ! fromLocation ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Enable with navigation type for subsequent navigations\n\t\t\t\t\treturn [ 'navigate' ];\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\t}, [ routes, rootComponent ] );\n\n\treturn <RouterProvider router={ router } />;\n}\n", "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}export 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}export default clsx;", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Type definitions\n */\ntype NavigableRegionProps = {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n\tariaLabel: string;\n\tas?: React.ElementType;\n\t[ key: string ]: any;\n};\n\n// This is a copy of the private `NavigableRegion` component from the '@wordpress/editor' private APIs.\nconst NavigableRegion = forwardRef< HTMLElement, NavigableRegionProps >(\n\t( { children, className, ariaLabel, as: Tag = 'div', ...props }, ref ) => {\n\t\treturn (\n\t\t\t<Tag\n\t\t\t\tref={ ref }\n\t\t\t\tclassName={ clsx( 'admin-ui-navigable-region', className ) }\n\t\t\t\taria-label={ ariaLabel }\n\t\t\t\trole=\"region\"\n\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Tag>\n\t\t);\n\t}\n);\n\nNavigableRegion.displayName = 'NavigableRegion';\n\nexport default NavigableRegion;\n", "'use client';\n\nimport * as React from 'react';\nconst UNINITIALIZED = {};\n\n/**\n * A React.useRef() that is initialized with a function. Note that it accepts an optional\n * initialization argument, so the initialization function doesn't need to be an inline closure.\n *\n * @usage\n * const ref = useRefWithInit(sortColumns, columns)\n */\n\nexport function useRefWithInit(init, initArg) {\n const ref = React.useRef(UNINITIALIZED);\n if (ref.current === UNINITIALIZED) {\n ref.current = init(initArg);\n }\n return ref;\n}", "import _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { useMergedRefs, useMergedRefsN } from '@base-ui/utils/useMergedRefs';\nimport { getReactElementRef } from '@base-ui/utils/getReactElementRef';\nimport { mergeObjects } from '@base-ui/utils/mergeObjects';\nimport { getStateAttributesProps } from \"./getStateAttributesProps.js\";\nimport { resolveClassName } from \"./resolveClassName.js\";\nimport { resolveStyle } from \"./resolveStyle.js\";\nimport { mergeProps, mergePropsN, mergeClassNames } from \"../merge-props/index.js\";\nimport { EMPTY_OBJECT } from \"./constants.js\";\nimport { createElement as _createElement } from \"react\";\n/**\n * Renders a Base UI element.\n *\n * @param element The default HTML element to render. Can be overridden by the `render` prop.\n * @param componentProps An object containing the `render` and `className` props to be used for element customization. Other props are ignored.\n * @param params Additional parameters for rendering the element.\n */\nexport function useRenderElement(element, componentProps, params = {}) {\n const renderProp = componentProps.render;\n const outProps = useRenderElementProps(componentProps, params);\n if (params.enabled === false) {\n return null;\n }\n const state = params.state ?? EMPTY_OBJECT;\n return evaluateRenderProp(element, renderProp, outProps, state);\n}\n\n/**\n * Computes render element final props.\n */\nfunction useRenderElementProps(componentProps, params = {}) {\n const {\n className: classNameProp,\n style: styleProp,\n render: renderProp\n } = componentProps;\n const {\n state = EMPTY_OBJECT,\n ref,\n props,\n stateAttributesMapping,\n enabled = true\n } = params;\n const className = enabled ? resolveClassName(classNameProp, state) : undefined;\n const style = enabled ? resolveStyle(styleProp, state) : undefined;\n const stateProps = enabled ? getStateAttributesProps(state, stateAttributesMapping) : EMPTY_OBJECT;\n const outProps = enabled ? mergeObjects(stateProps, Array.isArray(props) ? mergePropsN(props) : props) ?? EMPTY_OBJECT : EMPTY_OBJECT;\n\n // SAFETY: The `useMergedRefs` functions use a single hook to store the same value,\n // switching between them at runtime is safe. If this assertion fails, React will\n // throw at runtime anyway.\n // This also skips the `useMergedRefs` call on the server, which is fine because\n // refs are not used on the server side.\n /* eslint-disable react-hooks/rules-of-hooks */\n if (typeof document !== 'undefined') {\n if (!enabled) {\n useMergedRefs(null, null);\n } else if (Array.isArray(ref)) {\n outProps.ref = useMergedRefsN([outProps.ref, getReactElementRef(renderProp), ...ref]);\n } else {\n outProps.ref = useMergedRefs(outProps.ref, getReactElementRef(renderProp), ref);\n }\n }\n if (!enabled) {\n return EMPTY_OBJECT;\n }\n if (className !== undefined) {\n outProps.className = mergeClassNames(outProps.className, className);\n }\n if (style !== undefined) {\n outProps.style = mergeObjects(outProps.style, style);\n }\n return outProps;\n}\n\n// The symbol React uses internally for lazy components\n// https://github.com/facebook/react/blob/a0566250b210499b4c5677f5ac2eedbd71d51a1b/packages/shared/ReactSymbols.js#L31\n//\n// TODO delete once https://github.com/facebook/react/issues/32392 is fixed\nconst REACT_LAZY_TYPE = Symbol.for('react.lazy');\nfunction evaluateRenderProp(element, render, props, state) {\n if (render) {\n if (typeof render === 'function') {\n return render(props, state);\n }\n const mergedProps = mergeProps(props, render.props);\n mergedProps.ref = props.ref;\n let newElement = render;\n\n // Workaround for https://github.com/facebook/react/issues/32392\n // This works because the toArray() logic unwrap lazy element type in\n // https://github.com/facebook/react/blob/a0566250b210499b4c5677f5ac2eedbd71d51a1b/packages/react/src/ReactChildren.js#L186\n if (newElement?.$$typeof === REACT_LAZY_TYPE) {\n const children = React.Children.toArray(render);\n newElement = children[0];\n }\n\n // There is a high number of indirections, the error message thrown by React.cloneElement() is\n // hard to use for developers, this logic provides a better context.\n //\n // Our general guideline is to never change the control flow depending on the environment.\n // However, React.cloneElement() throws if React.isValidElement() is false,\n // so we can throw before with custom message.\n if (process.env.NODE_ENV !== 'production') {\n if (! /*#__PURE__*/React.isValidElement(newElement)) {\n 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'));\n }\n }\n return /*#__PURE__*/React.cloneElement(newElement, mergedProps);\n }\n if (element) {\n if (typeof element === 'string') {\n return renderTag(element, props);\n }\n }\n // Unreachable, but the typings on `useRenderElement` need to be reworked\n // to annotate it correctly.\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: Render element or function are not defined.' : _formatErrorMessage(8));\n}\nfunction renderTag(Tag, props) {\n if (Tag === 'button') {\n return /*#__PURE__*/_createElement(\"button\", {\n type: \"button\",\n ...props,\n key: props.key\n });\n }\n if (Tag === 'img') {\n return /*#__PURE__*/_createElement(\"img\", {\n alt: \"\",\n ...props,\n key: props.key\n });\n }\n return /*#__PURE__*/React.createElement(Tag, props);\n}", "import { useRefWithInit } from \"./useRefWithInit.js\";\n\n/**\n * Merges refs into a single memoized callback ref or `null`.\n * This makes sure multiple refs are updated together and have the same value.\n *\n * This function accepts up to four refs. If you need to merge more, or have an unspecified number of refs to merge,\n * use `useMergedRefsN` instead.\n */\n\nexport function useMergedRefs(a, b, c, d) {\n const forkRef = useRefWithInit(createForkRef).current;\n if (didChange(forkRef, a, b, c, d)) {\n update(forkRef, [a, b, c, d]);\n }\n return forkRef.callback;\n}\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n *\n * If you need to merge a fixed number (up to four) of refs, use `useMergedRefs` instead for better performance.\n */\nexport function useMergedRefsN(refs) {\n const forkRef = useRefWithInit(createForkRef).current;\n if (didChangeN(forkRef, refs)) {\n update(forkRef, refs);\n }\n return forkRef.callback;\n}\nfunction createForkRef() {\n return {\n callback: null,\n cleanup: null,\n refs: []\n };\n}\nfunction didChange(forkRef, a, b, c, d) {\n // prettier-ignore\n return forkRef.refs[0] !== a || forkRef.refs[1] !== b || forkRef.refs[2] !== c || forkRef.refs[3] !== d;\n}\nfunction didChangeN(forkRef, newRefs) {\n return forkRef.refs.length !== newRefs.length || forkRef.refs.some((ref, index) => ref !== newRefs[index]);\n}\nfunction update(forkRef, refs) {\n forkRef.refs = refs;\n if (refs.every(ref => ref == null)) {\n forkRef.callback = null;\n return;\n }\n forkRef.callback = instance => {\n if (forkRef.cleanup) {\n forkRef.cleanup();\n forkRef.cleanup = null;\n }\n if (instance != null) {\n const cleanupCallbacks = Array(refs.length).fill(null);\n for (let i = 0; i < refs.length; i += 1) {\n const ref = refs[i];\n if (ref == null) {\n continue;\n }\n switch (typeof ref) {\n case 'function':\n {\n const refCleanup = ref(instance);\n if (typeof refCleanup === 'function') {\n cleanupCallbacks[i] = refCleanup;\n }\n break;\n }\n case 'object':\n {\n ref.current = instance;\n break;\n }\n default:\n }\n }\n forkRef.cleanup = () => {\n for (let i = 0; i < refs.length; i += 1) {\n const ref = refs[i];\n if (ref == null) {\n continue;\n }\n switch (typeof ref) {\n case 'function':\n {\n const cleanupCallback = cleanupCallbacks[i];\n if (typeof cleanupCallback === 'function') {\n cleanupCallback();\n } else {\n ref(null);\n }\n break;\n }\n case 'object':\n {\n ref.current = null;\n break;\n }\n default:\n }\n }\n };\n }\n };\n}", "import * as React from 'react';\nimport { isReactVersionAtLeast } from \"./reactVersion.js\";\n\n/**\n * Extracts the `ref` from a React element, handling different React versions.\n */\nexport function getReactElementRef(element) {\n if (! /*#__PURE__*/React.isValidElement(element)) {\n return null;\n }\n const reactElement = element;\n const propsWithRef = reactElement.props;\n return (isReactVersionAtLeast(19) ? propsWithRef?.ref : reactElement.ref) ?? null;\n}", "import * as React from 'react';\nconst majorVersion = parseInt(React.version, 10);\nexport function isReactVersionAtLeast(reactVersionToCheck) {\n return majorVersion >= reactVersionToCheck;\n}", "export function mergeObjects(a, b) {\n if (a && !b) {\n return a;\n }\n if (!a && b) {\n return b;\n }\n if (a || b) {\n return {\n ...a,\n ...b\n };\n }\n return undefined;\n}", "export function getStateAttributesProps(state, customMapping) {\n const props = {};\n\n /* eslint-disable-next-line guard-for-in */\n for (const key in state) {\n const value = state[key];\n if (customMapping?.hasOwnProperty(key)) {\n const customProps = customMapping[key](value);\n if (customProps != null) {\n Object.assign(props, customProps);\n }\n continue;\n }\n if (value === true) {\n props[`data-${key.toLowerCase()}`] = '';\n } else if (value) {\n props[`data-${key.toLowerCase()}`] = value.toString();\n }\n }\n return props;\n}", "/**\n * If the provided className is a string, it will be returned as is.\n * Otherwise, the function will call the className function with the state as the first argument.\n *\n * @param className\n * @param state\n */\nexport function resolveClassName(className, state) {\n return typeof className === 'function' ? className(state) : className;\n}", "/**\n * If the provided style is an object, it will be returned as is.\n * Otherwise, the function will call the style function with the state as the first argument.\n *\n * @param style\n * @param state\n */\nexport function resolveStyle(style, state) {\n return typeof style === 'function' ? style(state) : style;\n}", "import { mergeObjects } from '@base-ui/utils/mergeObjects';\nconst EMPTY_PROPS = {};\n\n/* eslint-disable id-denylist */\n/**\n * Merges multiple sets of React props. It follows the Object.assign pattern where the rightmost object's fields overwrite\n * the conflicting ones from others. This doesn't apply to event handlers, `className` and `style` props.\n *\n * Event handlers are merged and called in right-to-left order (rightmost handler executes first, leftmost last).\n * For React synthetic events, the rightmost handler can prevent prior (left-positioned) handlers from executing\n * by calling `event.preventBaseUIHandler()`. For non-synthetic events (custom events with primitive/object values),\n * all handlers always execute without prevention capability.\n *\n * The `className` prop is merged by concatenating classes in right-to-left order (rightmost class appears first in the string).\n * The `style` prop is merged with rightmost styles overwriting the prior ones.\n *\n * Props can either be provided as objects or as functions that take the previous props as an argument.\n * The function will receive the merged props up to that point (going from left to right):\n * so in the case of `(obj1, obj2, fn, obj3)`, `fn` will receive the merged props of `obj1` and `obj2`.\n * The function is responsible for chaining event handlers if needed (i.e. we don't run the merge logic).\n *\n * Event handlers returned by the functions are not automatically prevented when `preventBaseUIHandler` is called.\n * They must check `event.baseUIHandlerPrevented` themselves and bail out if it's true.\n *\n * @important **`ref` is not merged.**\n * @param a Props object to merge.\n * @param b Props object to merge. The function will overwrite conflicting props from `a`.\n * @param c Props object to merge. The function will overwrite conflicting props from previous parameters.\n * @param d Props object to merge. The function will overwrite conflicting props from previous parameters.\n * @param e Props object to merge. The function will overwrite conflicting props from previous parameters.\n * @returns The merged props.\n * @public\n */\n\nexport function mergeProps(a, b, c, d, e) {\n // We need to mutably own `merged`\n let merged = {\n ...resolvePropsGetter(a, EMPTY_PROPS)\n };\n if (b) {\n merged = mergeOne(merged, b);\n }\n if (c) {\n merged = mergeOne(merged, c);\n }\n if (d) {\n merged = mergeOne(merged, d);\n }\n if (e) {\n merged = mergeOne(merged, e);\n }\n return merged;\n}\n/* eslint-enable id-denylist */\n\n/**\n * Merges an arbitrary number of React props using the same logic as {@link mergeProps}.\n * This function accepts an array of props instead of individual arguments.\n *\n * This has slightly lower performance than {@link mergeProps} due to accepting an array\n * instead of a fixed number of arguments. Prefer {@link mergeProps} when merging 5 or\n * fewer prop sets for better performance.\n *\n * @param props Array of props to merge.\n * @returns The merged props.\n * @see mergeProps\n * @public\n */\nexport function mergePropsN(props) {\n if (props.length === 0) {\n return EMPTY_PROPS;\n }\n if (props.length === 1) {\n return resolvePropsGetter(props[0], EMPTY_PROPS);\n }\n\n // We need to mutably own `merged`\n let merged = {\n ...resolvePropsGetter(props[0], EMPTY_PROPS)\n };\n for (let i = 1; i < props.length; i += 1) {\n merged = mergeOne(merged, props[i]);\n }\n return merged;\n}\nfunction mergeOne(merged, inputProps) {\n if (isPropsGetter(inputProps)) {\n return inputProps(merged);\n }\n return mutablyMergeInto(merged, inputProps);\n}\n\n/**\n * Merges two sets of props. In case of conflicts, the external props take precedence.\n */\nfunction mutablyMergeInto(mergedProps, externalProps) {\n if (!externalProps) {\n return mergedProps;\n }\n\n // eslint-disable-next-line guard-for-in\n for (const propName in externalProps) {\n const externalPropValue = externalProps[propName];\n switch (propName) {\n case 'style':\n {\n mergedProps[propName] = mergeObjects(mergedProps.style, externalPropValue);\n break;\n }\n case 'className':\n {\n mergedProps[propName] = mergeClassNames(mergedProps.className, externalPropValue);\n break;\n }\n default:\n {\n if (isEventHandler(propName, externalPropValue)) {\n mergedProps[propName] = mergeEventHandlers(mergedProps[propName], externalPropValue);\n } else {\n mergedProps[propName] = externalPropValue;\n }\n }\n }\n }\n return mergedProps;\n}\nfunction isEventHandler(key, value) {\n // This approach is more efficient than using a regex.\n const code0 = key.charCodeAt(0);\n const code1 = key.charCodeAt(1);\n const code2 = key.charCodeAt(2);\n return code0 === 111 /* o */ && code1 === 110 /* n */ && code2 >= 65 /* A */ && code2 <= 90 /* Z */ && (typeof value === 'function' || typeof value === 'undefined');\n}\nfunction isPropsGetter(inputProps) {\n return typeof inputProps === 'function';\n}\nfunction resolvePropsGetter(inputProps, previousProps) {\n if (isPropsGetter(inputProps)) {\n return inputProps(previousProps);\n }\n return inputProps ?? EMPTY_PROPS;\n}\nfunction mergeEventHandlers(ourHandler, theirHandler) {\n if (!theirHandler) {\n return ourHandler;\n }\n if (!ourHandler) {\n return theirHandler;\n }\n return event => {\n if (isSyntheticEvent(event)) {\n const baseUIEvent = event;\n makeEventPreventable(baseUIEvent);\n const result = theirHandler(baseUIEvent);\n if (!baseUIEvent.baseUIHandlerPrevented) {\n ourHandler?.(baseUIEvent);\n }\n return result;\n }\n const result = theirHandler(event);\n ourHandler?.(event);\n return result;\n };\n}\nexport function makeEventPreventable(event) {\n event.preventBaseUIHandler = () => {\n event.baseUIHandlerPrevented = true;\n };\n return event;\n}\nexport function mergeClassNames(ourClassName, theirClassName) {\n if (theirClassName) {\n if (ourClassName) {\n // eslint-disable-next-line prefer-template\n return theirClassName + ' ' + ourClassName;\n }\n return theirClassName;\n }\n return ourClassName;\n}\nfunction isSyntheticEvent(event) {\n return event != null && typeof event === 'object' && 'nativeEvent' in event;\n}", "export function NOOP() {}\nexport const EMPTY_ARRAY = Object.freeze([]);\nexport const EMPTY_OBJECT = Object.freeze({});", "import { useRenderElement } from \"../utils/useRenderElement.js\";\n/**\n * Renders a Base UI element.\n *\n * @public\n */\nexport function useRender(params) {\n return useRenderElement(params.defaultTagName ?? 'div', params, params);\n}", "/**\n * WordPress dependencies\n */\nimport { cloneElement, forwardRef } from '@wordpress/element';\n\n/**\n * External dependencies\n */\nimport type { ReactElement } from 'react';\nimport type { SVGProps } from '@wordpress/primitives';\n\nexport interface IconProps extends SVGProps {\n\t/**\n\t * The SVG component to render\n\t */\n\ticon: ReactElement;\n\t/**\n\t * The size of the icon in pixels\n\t *\n\t * @default 24\n\t */\n\tsize?: number;\n}\n\n/**\n * Return an SVG icon.\n *\n * @param props The component props.\n *\n * @return Icon component\n */\nexport default forwardRef< HTMLElement, IconProps >(\n\t( { icon, size = 24, ...props }: IconProps, ref ) => {\n\t\treturn cloneElement( icon, {\n\t\t\twidth: size,\n\t\t\theight: size,\n\t\t\t...props,\n\t\t\tref,\n\t\t} );\n\t}\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M14 6H6v8h1.5V8.5L17 18l1-1-9.5-9.5H14V6Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M16.5 7.5 10 13.9l-2.5-2.4-1 1 3.5 3.6 7.5-7.6z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"m15.99 10.889-3.988 3.418-3.988-3.418.976-1.14 3.012 2.582 3.012-2.581.976 1.139Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"m13.1 16-3.4-4 3.4-4 1.1 1-2.6 3 2.6 3-1.1 1z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M10.8622 8.04053L14.2805 12.0286L10.8622 16.0167L9.72327 15.0405L12.3049 12.0286L9.72327 9.01672L10.8622 8.04053Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M5 5v1.5h14V5H5zm0 7.8h14v-1.5H5v1.5zM5 19h14v-1.5H5V19z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-2 -2 24 24\">\n\t\t<Path d=\"M20 10c0-5.51-4.49-10-10-10C4.48 0 0 4.49 0 10c0 5.52 4.48 10 10 10 5.51 0 10-4.48 10-10zM7.78 15.37L4.37 6.22c.55-.02 1.17-.08 1.17-.08.5-.06.44-1.13-.06-1.11 0 0-1.45.11-2.37.11-.18 0-.37 0-.58-.01C4.12 2.69 6.87 1.11 10 1.11c2.33 0 4.45.87 6.05 2.34-.68-.11-1.65.39-1.65 1.58 0 .74.45 1.36.9 2.1.35.61.55 1.36.55 2.46 0 1.49-1.4 5-1.4 5l-3.03-8.37c.54-.02.82-.17.82-.17.5-.05.44-1.25-.06-1.22 0 0-1.44.12-2.38.12-.87 0-2.33-.12-2.33-.12-.5-.03-.56 1.2-.06 1.22l.92.08 1.26 3.41zM17.41 10c.24-.64.74-1.87.43-4.25.7 1.29 1.05 2.71 1.05 4.25 0 3.29-1.73 6.24-4.4 7.78.97-2.59 1.94-5.2 2.92-7.78zM6.1 18.09C3.12 16.65 1.11 13.53 1.11 10c0-1.3.23-2.48.72-3.59C3.25 10.3 4.67 14.2 6.1 18.09zm4.03-6.63l2.58 6.98c-.86.29-1.76.45-2.71.45-.79 0-1.57-.11-2.29-.33.81-2.38 1.62-4.74 2.42-7.1z\" />\n\t</SVG>\n);\n", "import { useRender, mergeProps } from '@base-ui/react';\nimport { forwardRef } from '@wordpress/element';\nimport type { GapSize } from '@wordpress/theme';\nimport { type StackProps } from './types';\nimport styles from './style.module.css';\n\n// Static map so that the build-time token fallback plugin can inject fallback\n// values into each `var()` call.\nconst gapTokens: Record< GapSize, string > = {\n\txs: 'var(--wpds-dimension-gap-xs, 4px)',\n\tsm: 'var(--wpds-dimension-gap-sm, 8px)',\n\tmd: 'var(--wpds-dimension-gap-md, 12px)',\n\tlg: 'var(--wpds-dimension-gap-lg, 16px)',\n\txl: 'var(--wpds-dimension-gap-xl, 24px)',\n\t'2xl': 'var(--wpds-dimension-gap-2xl, 32px)',\n\t'3xl': 'var(--wpds-dimension-gap-3xl, 40px)',\n};\n\n/**\n * A flexible layout component using CSS Flexbox for consistent spacing and alignment.\n * Built on design tokens for predictable spacing values.\n */\nexport const Stack = forwardRef< HTMLDivElement, StackProps >( function Stack(\n\t{ direction, gap, align, justify, wrap, render, ...props },\n\tref\n) {\n\tconst style: React.CSSProperties = {\n\t\tgap: gap && gapTokens[ gap ],\n\t\talignItems: align,\n\t\tjustifyContent: justify,\n\t\tflexDirection: direction,\n\t\tflexWrap: wrap,\n\t};\n\n\tconst element = useRender( {\n\t\trender,\n\t\tref,\n\t\tprops: mergeProps< 'div' >( props, { style, className: styles.stack } ),\n\t} );\n\n\treturn element;\n} );\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='71d20935c2']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"71d20935c2\");\n\tstyle.appendChild(document.createTextNode(\"@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{._19ce0419607e1896__stack{display:flex}}\"));\n\tdocument.head.appendChild(style);\n}\nexport default {\"stack\":\"_19ce0419607e1896__stack\"};\n", "/**\n * WordPress dependencies\n */\nimport { createSlotFill } from '@wordpress/components';\n\nconst { Fill: SidebarToggleFill, Slot: SidebarToggleSlot } =\n\tcreateSlotFill( 'SidebarToggle' );\n\nexport { SidebarToggleFill, SidebarToggleSlot };\n", "/**\n * WordPress dependencies\n */\nimport { Stack } from '@wordpress/ui';\n\n/**\n * Internal dependencies\n */\nimport { SidebarToggleSlot } from './sidebar-toggle-slot';\n\nexport default function Header( {\n\theadingLevel = 2,\n\tbreadcrumbs,\n\tbadges,\n\ttitle,\n\tsubTitle,\n\tactions,\n\tshowSidebarToggle = true,\n}: {\n\theadingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n\tbreadcrumbs?: React.ReactNode;\n\tbadges?: React.ReactNode;\n\ttitle?: React.ReactNode;\n\tsubTitle: React.ReactNode;\n\tactions?: React.ReactNode;\n\tshowSidebarToggle?: boolean;\n} ) {\n\tconst HeadingTag = `h${ headingLevel }` as const;\n\treturn (\n\t\t<Stack\n\t\t\tdirection=\"column\"\n\t\t\tclassName=\"admin-ui-page__header\"\n\t\t\trender={ <header /> }\n\t\t>\n\t\t\t<Stack direction=\"row\" justify=\"space-between\" gap=\"sm\">\n\t\t\t\t<Stack direction=\"row\" gap=\"sm\" align=\"center\" justify=\"start\">\n\t\t\t\t\t{ showSidebarToggle && (\n\t\t\t\t\t\t<SidebarToggleSlot\n\t\t\t\t\t\t\tbubblesVirtually\n\t\t\t\t\t\t\tclassName=\"admin-ui-page__sidebar-toggle-slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ title && (\n\t\t\t\t\t\t<HeadingTag className=\"admin-ui-page__header-title\">\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</HeadingTag>\n\t\t\t\t\t) }\n\t\t\t\t\t{ breadcrumbs }\n\t\t\t\t\t{ badges }\n\t\t\t\t</Stack>\n\t\t\t\t<Stack\n\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\tgap=\"sm\"\n\t\t\t\t\tstyle={ { width: 'auto', flexShrink: 0 } }\n\t\t\t\t\tclassName=\"admin-ui-page__header-actions\"\n\t\t\t\t\talign=\"center\"\n\t\t\t\t>\n\t\t\t\t\t{ actions }\n\t\t\t\t</Stack>\n\t\t\t</Stack>\n\t\t\t{ subTitle && (\n\t\t\t\t<p className=\"admin-ui-page__header-subtitle\">{ subTitle }</p>\n\t\t\t) }\n\t\t</Stack>\n\t);\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Internal dependencies\n */\nimport Header from './header';\nimport NavigableRegion from '../navigable-region';\nimport { SidebarToggleFill } from './sidebar-toggle-slot';\n\nfunction Page( {\n\theadingLevel,\n\tbreadcrumbs,\n\tbadges,\n\ttitle,\n\tsubTitle,\n\tchildren,\n\tclassName,\n\tactions,\n\tariaLabel,\n\thasPadding = false,\n\tshowSidebarToggle = true,\n}: {\n\theadingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n\tbreadcrumbs?: React.ReactNode;\n\tbadges?: React.ReactNode;\n\ttitle?: React.ReactNode;\n\tsubTitle?: React.ReactNode;\n\tchildren: React.ReactNode;\n\tclassName?: string;\n\tactions?: React.ReactNode;\n\tariaLabel?: string;\n\thasPadding?: boolean;\n\tshowSidebarToggle?: boolean;\n} ) {\n\tconst classes = clsx( 'admin-ui-page', className );\n\tconst effectiveAriaLabel =\n\t\tariaLabel ?? ( typeof title === 'string' ? title : '' );\n\n\treturn (\n\t\t<NavigableRegion className={ classes } ariaLabel={ effectiveAriaLabel }>\n\t\t\t{ ( title || breadcrumbs || badges ) && (\n\t\t\t\t<Header\n\t\t\t\t\theadingLevel={ headingLevel }\n\t\t\t\t\tbreadcrumbs={ breadcrumbs }\n\t\t\t\t\tbadges={ badges }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tsubTitle={ subTitle }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t\tshowSidebarToggle={ showSidebarToggle }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasPadding ? (\n\t\t\t\t<div className=\"admin-ui-page__content has-padding\">\n\t\t\t\t\t{ children }\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\tchildren\n\t\t\t) }\n\t\t</NavigableRegion>\n\t);\n}\n\nPage.SidebarToggleFill = SidebarToggleFill;\n\nexport default Page;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { privateApis as routePrivateApis } from '@wordpress/route';\nimport { SnackbarNotices } from '@wordpress/notices';\nimport { useViewportMatch, useReducedMotion } from '@wordpress/compose';\nimport {\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n\tButton,\n\tSlotFillProvider,\n} from '@wordpress/components';\nimport { menu } from '@wordpress/icons';\nimport { useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Page } from '@wordpress/admin-ui';\n\n/**\n * Internal dependencies\n */\nimport Sidebar from '../sidebar';\nimport SavePanel from '../save-panel';\nimport CanvasRenderer from '../canvas-renderer';\nimport useRouteTitle from '../app/use-route-title';\nimport { unlock } from '../../lock-unlock';\nimport type { CanvasData } from '../../store/types';\nimport './style.scss';\nimport { UserThemeProvider } from '../user-theme-provider';\n\nconst { useLocation, useMatches, Outlet } = unlock( routePrivateApis );\n\nexport default function Root() {\n\tconst matches = useMatches();\n\tconst location = useLocation();\n\tconst currentMatch = matches[ matches.length - 1 ];\n\tconst canvas = ( currentMatch?.loaderData as any )?.canvas as\n\t\t| CanvasData\n\t\t| null\n\t\t| undefined;\n\tconst routeContentModule = ( currentMatch?.loaderData as any )\n\t\t?.routeContentModule as string | undefined;\n\tconst isFullScreen = canvas && ! canvas.isPreview;\n\n\tuseRouteTitle();\n\n\t// Mobile sidebar state\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst [ isMobileSidebarOpen, setIsMobileSidebarOpen ] = useState( false );\n\tconst disableMotion = useReducedMotion();\n\t// Close mobile sidebar on viewport resize and path change\n\tuseEffect( () => {\n\t\tsetIsMobileSidebarOpen( false );\n\t}, [ location.pathname, isMobileViewport ] );\n\n\treturn (\n\t\t<SlotFillProvider>\n\t\t\t<UserThemeProvider isRoot color={ { bg: '#f8f8f8' } }>\n\t\t\t\t<UserThemeProvider color={ { bg: '#1d2327' } }>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx( 'boot-layout', {\n\t\t\t\t\t\t\t'has-canvas': !! canvas || canvas === null,\n\t\t\t\t\t\t\t'has-full-canvas': isFullScreen,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<SavePanel />\n\t\t\t\t\t\t<SnackbarNotices className=\"boot-notices__snackbar\" />\n\t\t\t\t\t\t{ isMobileViewport && (\n\t\t\t\t\t\t\t<Page.SidebarToggleFill>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ menu }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsMobileSidebarOpen( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Open navigation panel' ) }\n\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Page.SidebarToggleFill>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ /* Mobile Sidebar Backdrop */ }\n\t\t\t\t\t\t<AnimatePresence>\n\t\t\t\t\t\t\t{ isMobileViewport &&\n\t\t\t\t\t\t\t\tisMobileSidebarOpen &&\n\t\t\t\t\t\t\t\t! isFullScreen && (\n\t\t\t\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t\t\t\tinitial={ { opacity: 0 } }\n\t\t\t\t\t\t\t\t\t\tanimate={ { opacity: 1 } }\n\t\t\t\t\t\t\t\t\t\texit={ { opacity: 0 } }\n\t\t\t\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\t\t\t\tduration: disableMotion ? 0 : 0.2,\n\t\t\t\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tclassName=\"boot-layout__sidebar-backdrop\"\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetIsMobileSidebarOpen( false )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\tif ( event.key === 'Escape' ) {\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsMobileSidebarOpen( false );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Close navigation panel'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</AnimatePresence>\n\t\t\t\t\t\t{ /* Mobile Sidebar */ }\n\t\t\t\t\t\t<AnimatePresence>\n\t\t\t\t\t\t\t{ isMobileViewport &&\n\t\t\t\t\t\t\t\tisMobileSidebarOpen &&\n\t\t\t\t\t\t\t\t! isFullScreen && (\n\t\t\t\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t\t\t\tinitial={ { x: '-100%' } }\n\t\t\t\t\t\t\t\t\t\tanimate={ { x: 0 } }\n\t\t\t\t\t\t\t\t\t\texit={ { x: '-100%' } }\n\t\t\t\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\t\t\t\tduration: disableMotion ? 0 : 0.2,\n\t\t\t\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tclassName=\"boot-layout__sidebar is-mobile\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Sidebar />\n\t\t\t\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</AnimatePresence>\n\t\t\t\t\t\t{ /* Desktop Sidebar */ }\n\t\t\t\t\t\t{ ! isMobileViewport && ! isFullScreen && (\n\t\t\t\t\t\t\t<div className=\"boot-layout__sidebar\">\n\t\t\t\t\t\t\t\t<Sidebar />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<div className=\"boot-layout__surfaces\">\n\t\t\t\t\t\t\t<UserThemeProvider color={ { bg: '#ffffff' } }>\n\t\t\t\t\t\t\t\t<Outlet />\n\t\t\t\t\t\t\t\t{ /* Render Canvas in Root to prevent remounting on route changes */ }\n\t\t\t\t\t\t\t\t{ ( canvas || canvas === null ) && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t'boot-layout__canvas',\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t'has-mobile-drawer':\n\t\t\t\t\t\t\t\t\t\t\t\t\tcanvas?.isPreview &&\n\t\t\t\t\t\t\t\t\t\t\t\t\tisMobileViewport,\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ canvas?.isPreview &&\n\t\t\t\t\t\t\t\t\t\t\tisMobileViewport && (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"boot-layout__mobile-sidebar-drawer\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ menu }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsMobileSidebarOpen(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Open navigation panel'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t<CanvasRenderer\n\t\t\t\t\t\t\t\t\t\t\tcanvas={ canvas }\n\t\t\t\t\t\t\t\t\t\t\trouteContentModule={\n\t\t\t\t\t\t\t\t\t\t\t\trouteContentModule\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</UserThemeProvider>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</UserThemeProvider>\n\t\t\t</UserThemeProvider>\n\t\t</SlotFillProvider>\n\t);\n}\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='dc5d4f8de6']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"dc5d4f8de6\");\n\tstyle.appendChild(document.createTextNode(\".boot-layout{background:var(--wpds-color-bg-surface-neutral-weak,#f0f0f0);color:var(--wpds-color-fg-content-neutral,#1e1e1e);display:flex;flex-direction:row;height:100%;isolation:isolate;width:100%}.boot-layout__sidebar-backdrop{background-color:#00000080;bottom:0;cursor:pointer;left:0;position:fixed;right:0;top:0;z-index:100002}.boot-layout__sidebar{flex-shrink:0;height:100%;overflow:hidden;position:relative;width:240px}.boot-layout__sidebar.is-mobile{background:var(--wpds-color-bg-surface-neutral-weak,#f0f0f0);bottom:0;box-shadow:2px 0 8px #0003;inset-inline-start:0;max-width:85vw;position:fixed;top:0;width:300px;z-index:100003}.boot-layout__mobile-sidebar-drawer{left:0;position:fixed;right:0;top:0}.boot-layout--single-page .boot-layout__mobile-sidebar-drawer{top:46px}.boot-layout__mobile-sidebar-drawer{align-items:center;background:var(--wpds-color-bg-surface-neutral,#f8f8f8);border-bottom:1px solid var(--wpds-color-stroke-surface-neutral-weak,#e0e0e0);display:flex;justify-content:flex-start;padding:16px;z-index:3}.boot-layout__canvas.has-mobile-drawer{padding-top:65px;position:relative}.boot-layout__surfaces{display:flex;flex-grow:1;gap:8px;margin:0}@media (min-width:782px){.boot-layout__surfaces{margin:8px}.boot-layout--single-page .boot-layout__surfaces{margin-top:0;margin-inline-start:0}}.boot-layout__inspector,.boot-layout__stage{background:var(--wpds-color-bg-surface-neutral,#f8f8f8);border-radius:0;bottom:0;color:var(--wpds-color-fg-content-neutral,#1e1e1e);flex:1;height:100vh;left:0;margin:0;overflow-y:auto;position:relative;position:fixed;right:0;top:0;width:100vw}.boot-layout--single-page .boot-layout__inspector,.boot-layout--single-page .boot-layout__stage{height:calc(100vh - 46px);top:46px}@media (min-width:782px){.boot-layout__inspector,.boot-layout__stage{border-radius:8px;height:auto;margin:0;position:static;width:auto}}.boot-layout__stage{z-index:2}@media (min-width:782px){.boot-layout__stage{z-index:auto}}.boot-layout__inspector{z-index:3}@media (min-width:782px){.boot-layout__inspector{z-index:auto}}.boot-layout__canvas{background:var(--wpds-color-bg-surface-neutral,#f8f8f8);border:1px solid var(--wpds-color-stroke-surface-neutral-weak,#e0e0e0);border-radius:0;bottom:0;box-shadow:0 1px 3px #0000001a;color:var(--wpds-color-fg-content-neutral,#1e1e1e);flex:1;height:100vh;left:0;margin:0;overflow-y:auto;position:relative;position:fixed;right:0;top:0;width:100vw;z-index:1}.boot-layout--single-page .boot-layout__canvas{height:calc(100vh - 46px);top:46px}@media (min-width:782px){.boot-layout__canvas{border-radius:8px;height:auto;position:static;width:auto;z-index:auto}.boot-layout.has-canvas .boot-layout__stage,.boot-layout__inspector{max-width:400px}}.boot-layout__canvas .interface-interface-skeleton{height:100%;left:0!important;position:relative;top:0!important}.boot-layout.has-full-canvas .boot-layout__surfaces{gap:0;margin:0}.boot-layout.has-full-canvas .boot-layout__inspector,.boot-layout.has-full-canvas .boot-layout__stage{display:none}.boot-layout.has-full-canvas .boot-layout__canvas{border:none;border-radius:0;bottom:0;box-shadow:none;left:0;margin:0;max-width:none;overflow:hidden;position:fixed;right:0;top:0}.boot-layout--single-page .boot-layout.has-full-canvas .boot-layout__canvas{top:46px}@media (min-width:782px){.boot-layout--single-page .boot-layout.has-full-canvas .boot-layout__canvas{top:32px}}\"));\n\tdocument.head.appendChild(style);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tExternalLink,\n\tButton,\n\t// @ts-ignore\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { search } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\n// @ts-expect-error Commands is not typed properly.\nimport { store as commandsStore } from '@wordpress/commands';\nimport { filterURLForDisplay } from '@wordpress/url';\nimport type { UnstableBase } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport SiteIconLink from '../site-icon-link';\nimport { store as bootStore } from '../../store';\nimport './style.scss';\n\nfunction SiteHub() {\n\tconst { dashboardLink, homeUrl, siteTitle } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst _base = getEntityRecord< UnstableBase >(\n\t\t\t'root',\n\t\t\t'__unstableBase'\n\t\t);\n\t\treturn {\n\t\t\tdashboardLink: select( bootStore ).getDashboardLink(),\n\t\t\thomeUrl: _base?.home,\n\t\t\tsiteTitle:\n\t\t\t\t! _base?.name && !! _base?.url\n\t\t\t\t\t? filterURLForDisplay( _base?.url )\n\t\t\t\t\t: _base?.name,\n\t\t};\n\t}, [] );\n\tconst { open: openCommandCenter } = useDispatch( commandsStore );\n\n\treturn (\n\t\t<div className=\"boot-site-hub\">\n\t\t\t<SiteIconLink\n\t\t\t\tto={ dashboardLink || '/' }\n\t\t\t\taria-label={ __( 'Go to the Dashboard' ) }\n\t\t\t/>\n\t\t\t<ExternalLink\n\t\t\t\thref={ homeUrl ?? '/' }\n\t\t\t\tclassName=\"boot-site-hub__title\"\n\t\t\t>\n\t\t\t\t<div className=\"boot-site-hub__title-text\">\n\t\t\t\t\t{ siteTitle && decodeEntities( siteTitle ) }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"boot-site-hub__url\">\n\t\t\t\t\t{ filterURLForDisplay( homeUrl ?? '' ) }\n\t\t\t\t</div>\n\t\t\t</ExternalLink>\n\t\t\t<HStack className=\"boot-site-hub__actions\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\ticon={ search }\n\t\t\t\t\tonClick={ () => openCommandCenter() }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tlabel={ __( 'Open command palette' ) }\n\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t</div>\n\t);\n}\n\nexport default SiteHub;\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='face62a01a']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"face62a01a\");\n\tstyle.appendChild(document.createTextNode(\".boot-site-hub{align-items:center;background-color:var(--wpds-color-bg-surface-neutral-weak,#f0f0f0);display:grid;flex-shrink:0;grid-template-columns:60px 1fr auto;padding-right:16px;position:sticky;top:0;z-index:1}.boot-site-hub__actions{flex-shrink:0}.boot-site-hub__title{align-items:center;display:flex;text-decoration:none}.boot-site-hub__title .components-external-link__contents{margin-inline-start:4px;max-width:140px;overflow:hidden;text-decoration:none}.boot-site-hub__title .components-external-link__icon{opacity:0;transition:opacity .1s ease-out}.boot-site-hub__title:hover .components-external-link__icon{opacity:1}@media not (prefers-reduced-motion){.boot-site-hub__title{transition:outline .1s ease-out}}.boot-site-hub__title:focus:not(:active){outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));outline-offset:calc(var(--wpds-border-width-focus, var(--wp-admin-border-width-focus, 2px))*-1)}.boot-site-hub__title-text{color:var(--wpds-color-fg-content-neutral,#1e1e1e);font-size:13px;font-weight:499}.boot-site-hub__title-text,.boot-site-hub__url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.boot-site-hub__url{color:var(--wpds-color-fg-content-neutral-weak,#6d6d6d);font-size:12px}\"));\n\tdocument.head.appendChild(style);\n}\n", "/**\n * WordPress dependencies\n */\nimport { Link, privateApis as routePrivateApis } from '@wordpress/route';\nimport { Tooltip } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport SiteIcon from '../site-icon';\nimport './style.scss';\n\nconst { useCanGoBack, useRouter } = unlock( routePrivateApis );\n\nfunction SiteIconLink( {\n\tto,\n\tisBackButton,\n\t...props\n}: {\n\tto: string;\n\t'aria-label': string;\n\tisBackButton?: boolean;\n} ) {\n\tconst router = useRouter();\n\tconst canGoBack = useCanGoBack();\n\n\treturn (\n\t\t<Tooltip text={ props[ 'aria-label' ] } placement=\"right\">\n\t\t\t<Link\n\t\t\t\tto={ to }\n\t\t\t\taria-label={ props[ 'aria-label' ] }\n\t\t\t\tclassName=\"boot-site-icon-link\"\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t// If possible, restore the previous page with\n\t\t\t\t\t// filters etc.\n\t\t\t\t\tif ( canGoBack && isBackButton ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\trouter.history.back();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<SiteIcon />\n\t\t\t</Link>\n\t\t</Tooltip>\n\t);\n}\n\nexport default SiteIconLink;\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='476dd9945f']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"476dd9945f\");\n\tstyle.appendChild(document.createTextNode(\".boot-site-icon-link{align-items:center;background:var(--wpds-color-bg-surface-neutral-weak,#f0f0f0);display:inline-flex;height:64px;justify-content:center;text-decoration:none;width:64px}@media not (prefers-reduced-motion){.boot-site-icon-link{transition:outline .1s ease-out}}.boot-site-icon-link:focus:not(:active){outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));outline-offset:calc(var(--wpds-border-width-focus, var(--wp-admin-border-width-focus, 2px))*-1)}\"));\n\tdocument.head.appendChild(style);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.',\n\t\t'@wordpress/boot'\n\t);\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { Icon, wordpress } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport type { UnstableBase } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport './style.scss';\n\nfunction SiteIcon( { className }: { className?: string } ) {\n\tconst { isRequestingSite, siteIconUrl } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord } = select( coreDataStore );\n\t\tconst siteData = getEntityRecord< UnstableBase >(\n\t\t\t'root',\n\t\t\t'__unstableBase',\n\t\t\tundefined\n\t\t);\n\n\t\treturn {\n\t\t\tisRequestingSite: ! siteData,\n\t\t\tsiteIconUrl: siteData?.site_icon_url,\n\t\t};\n\t}, [] );\n\n\tlet icon = null;\n\n\tif ( isRequestingSite && ! siteIconUrl ) {\n\t\ticon = <div className=\"boot-site-icon__image\" />;\n\t} else {\n\t\ticon = siteIconUrl ? (\n\t\t\t<img\n\t\t\t\tclassName=\"boot-site-icon__image\"\n\t\t\t\talt={ __( 'Site Icon' ) }\n\t\t\t\tsrc={ siteIconUrl }\n\t\t\t/>\n\t\t) : (\n\t\t\t<Icon\n\t\t\t\tclassName=\"boot-site-icon__icon\"\n\t\t\t\ticon={ wordpress }\n\t\t\t\tsize={ 48 }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={ clsx( className, 'boot-site-icon' ) }>{ icon }</div>\n\t);\n}\n\nexport default SiteIcon;\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='5581b9dcd8']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"5581b9dcd8\");\n\tstyle.appendChild(document.createTextNode(\".boot-site-icon{display:flex}.boot-site-icon__icon{fill:var(--wpds-color-fg-content-neutral,#1e1e1e);height:32px;width:32px}.boot-site-icon__image{aspect-ratio:1/1;border-radius:var(--wpds-border-radius-md,4px);height:32px;object-fit:cover;width:32px}\"));\n\tdocument.head.appendChild(style);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createReduxStore, register } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { reducer } from './reducer';\nimport * as actions from './actions';\nimport * as selectors from './selectors';\n\nconst STORE_NAME = 'wordpress/boot';\n\nexport const store = createReduxStore( STORE_NAME, {\n\treducer,\n\tactions,\n\tselectors,\n} );\n\nregister( store );\n\nexport { STORE_NAME };\n", "/**\n * Internal dependencies\n */\nimport type { Action } from './actions';\nimport type { State } from './types';\n\nconst initialState: State = {\n\tmenuItems: {},\n\troutes: [],\n\tdashboardLink: undefined,\n};\n\nexport function reducer( state: State = initialState, action: Action ): State {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_MENU_ITEM':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmenuItems: {\n\t\t\t\t\t...state.menuItems,\n\t\t\t\t\t[ action.id ]: action.menuItem,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'UPDATE_MENU_ITEM':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmenuItems: {\n\t\t\t\t\t...state.menuItems,\n\t\t\t\t\t[ action.id ]: {\n\t\t\t\t\t\t...state.menuItems[ action.id ],\n\t\t\t\t\t\t...action.updates,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'REGISTER_ROUTE':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\troutes: [ ...state.routes, action.route ],\n\t\t\t};\n\n\t\tcase 'SET_DASHBOARD_LINK':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tdashboardLink: action.dashboardLink,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n", "/**\n * Internal dependencies\n */\nimport type { MenuItem, Route } from './types';\n\nexport function registerMenuItem( id: string, menuItem: MenuItem ) {\n\treturn {\n\t\ttype: 'REGISTER_MENU_ITEM' as const,\n\t\tid,\n\t\tmenuItem,\n\t};\n}\n\nexport function updateMenuItem( id: string, updates: Partial< MenuItem > ) {\n\treturn {\n\t\ttype: 'UPDATE_MENU_ITEM' as const,\n\t\tid,\n\t\tupdates,\n\t};\n}\n\nexport function registerRoute( route: Route ) {\n\treturn {\n\t\ttype: 'REGISTER_ROUTE' as const,\n\t\troute,\n\t};\n}\n\nexport function setDashboardLink( dashboardLink: string ) {\n\treturn {\n\t\ttype: 'SET_DASHBOARD_LINK' as const,\n\t\tdashboardLink,\n\t};\n}\n\nexport type Action =\n\t| ReturnType< typeof registerMenuItem >\n\t| ReturnType< typeof updateMenuItem >\n\t| ReturnType< typeof registerRoute >\n\t| ReturnType< typeof setDashboardLink >;\n", "/**\n * Internal dependencies\n */\nimport type { State } from './types';\n\nexport function getMenuItems( state: State ) {\n\treturn Object.values( state.menuItems );\n}\n\nexport function getRoutes( state: State ) {\n\treturn state.routes;\n}\n\nexport function getDashboardLink( state: State ) {\n\treturn state.dashboardLink;\n}\n", "/**\n * WordPress dependencies\n */\nimport { useState, useMemo, useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME } from '../../store';\nimport NavigationItem from './navigation-item';\nimport DrilldownItem from './drilldown-item';\nimport DropdownItem from './dropdown-item';\nimport NavigationScreen from './navigation-screen';\nimport { useSidebarParent } from './use-sidebar-parent';\nimport type { MenuItem } from '../../store/types';\n\nfunction Navigation() {\n\tconst backButtonRef = useRef< HTMLButtonElement >( null );\n\tconst [ animationDirection, setAnimationDirection ] = useState<\n\t\t'forward' | 'backward' | null\n\t>( null );\n\tconst [ parentId, setParentId, parentDropdownId, setParentDropdownId ] =\n\t\tuseSidebarParent();\n\tconst menuItems = useSelect(\n\t\t( select ) =>\n\t\t\t// @ts-ignore\n\t\t\tselect( STORE_NAME ).getMenuItems() as MenuItem[],\n\t\t[]\n\t);\n\tconst parent = useMemo(\n\t\t() => menuItems.find( ( item ) => item.id === parentId ),\n\t\t[ menuItems, parentId ]\n\t);\n\t// Create a unique key for the current navigation state\n\t// The sidebar will animate when the key changes.\n\tconst navigationKey = parent ? `drilldown-${ parent.id }` : 'root';\n\n\t// We use transitions to handle navigation clicks\n\t// This allows smooth animations and non blocking navigation.\n\tconst handleNavigate = ( {\n\t\tid,\n\t\tdirection,\n\t}: {\n\t\tid?: string;\n\t\tdirection: 'forward' | 'backward';\n\t} ) => {\n\t\tsetAnimationDirection( direction );\n\t\tsetParentId( id );\n\t};\n\n\tconst handleDropdownToggle = ( dropdownId: string ) => {\n\t\tsetParentDropdownId(\n\t\t\tparentDropdownId === dropdownId ? undefined : dropdownId\n\t\t);\n\t};\n\n\tconst items = useMemo(\n\t\t() => menuItems.filter( ( item ) => item.parent === parentId ),\n\t\t[ menuItems, parentId ]\n\t);\n\n\tconst hasRealIcons = items.some( ( item ) => !! item.icon );\n\n\treturn (\n\t\t<NavigationScreen\n\t\t\tisRoot={ ! parent }\n\t\t\ttitle={ parent ? parent.label : '' }\n\t\t\tbackMenuItem={ parent?.parent }\n\t\t\tbackButtonRef={ backButtonRef }\n\t\t\tanimationDirection={ animationDirection || undefined }\n\t\t\tnavigationKey={ navigationKey }\n\t\t\tonNavigate={ handleNavigate }\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ items.map( ( item: MenuItem ) => {\n\t\t\t\t\t\tif ( item.parent_type === 'dropdown' ) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<DropdownItem\n\t\t\t\t\t\t\t\t\tkey={ item.id }\n\t\t\t\t\t\t\t\t\tid={ item.id }\n\t\t\t\t\t\t\t\t\tclassName=\"boot-navigation-item\"\n\t\t\t\t\t\t\t\t\ticon={ item.icon }\n\t\t\t\t\t\t\t\t\tshouldShowPlaceholder={ hasRealIcons }\n\t\t\t\t\t\t\t\t\tisExpanded={ parentDropdownId === item.id }\n\t\t\t\t\t\t\t\t\tonToggle={ () =>\n\t\t\t\t\t\t\t\t\t\thandleDropdownToggle( item.id )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ item.label }\n\t\t\t\t\t\t\t\t</DropdownItem>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( item.parent_type === 'drilldown' ) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<DrilldownItem\n\t\t\t\t\t\t\t\t\tkey={ item.id }\n\t\t\t\t\t\t\t\t\tid={ item.id }\n\t\t\t\t\t\t\t\t\ticon={ item.icon }\n\t\t\t\t\t\t\t\t\tshouldShowPlaceholder={ hasRealIcons }\n\t\t\t\t\t\t\t\t\tonNavigate={ handleNavigate }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ item.label }\n\t\t\t\t\t\t\t\t</DrilldownItem>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<NavigationItem\n\t\t\t\t\t\t\t\tkey={ item.id }\n\t\t\t\t\t\t\t\tto={ item.to }\n\t\t\t\t\t\t\t\ticon={ item.icon }\n\t\t\t\t\t\t\t\tshouldShowPlaceholder={ hasRealIcons }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ item.label }\n\t\t\t\t\t\t\t</NavigationItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</>\n\t\t\t}\n\t\t/>\n\t);\n}\n\nexport default Navigation;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tFlexBlock,\n\t__experimentalItem as Item,\n\t// @ts-ignore\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport RouterLinkItem from '../router-link-item';\nimport { wrapIcon } from '../items';\nimport type { IconType } from '../../../store/types';\nimport './style.scss';\n\ninterface NavigationItemProps {\n\t/**\n\t * Optional CSS class name.\n\t */\n\tclassName?: string;\n\t/**\n\t * Icon to display with the navigation item.\n\t */\n\ticon?: IconType;\n\t/**\n\t * Whether to show placeholder icons for alignment.\n\t */\n\tshouldShowPlaceholder?: boolean;\n\t/**\n\t * Content to display inside the navigation item.\n\t */\n\tchildren: ReactNode;\n\t/**\n\t * The path to navigate to.\n\t */\n\tto: string;\n}\n\nexport default function NavigationItem( {\n\tclassName,\n\ticon,\n\tshouldShowPlaceholder = true,\n\tchildren,\n\tto,\n}: NavigationItemProps ) {\n\t// Check if the 'to' prop is an external URL\n\tconst isExternal = ! String(\n\t\tnew URL( to, window.location.origin )\n\t).startsWith( window.location.origin );\n\n\tconst content = (\n\t\t<HStack justify=\"flex-start\" spacing={ 2 } style={ { flexGrow: '1' } }>\n\t\t\t{ wrapIcon( icon, shouldShowPlaceholder ) }\n\t\t\t<FlexBlock>{ children }</FlexBlock>\n\t\t</HStack>\n\t);\n\n\tif ( isExternal ) {\n\t\t// Render as a regular anchor tag for external URLs\n\t\treturn (\n\t\t\t<Item\n\t\t\t\tas=\"a\"\n\t\t\t\thref={ to }\n\t\t\t\tclassName={ clsx( 'boot-navigation-item', className ) }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Item>\n\t\t);\n\t}\n\n\treturn (\n\t\t<RouterLinkItem\n\t\t\tto={ to }\n\t\t\tclassName={ clsx( 'boot-navigation-item', className ) }\n\t\t>\n\t\t\t{ content }\n\t\t</RouterLinkItem>\n\t);\n}\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='7926d80c75']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"7926d80c75\");\n\tstyle.appendChild(document.createTextNode(\".boot-navigation-item.components-item{align-items:center;border:none;color:var(--wpds-color-fg-interactive-neutral,#1e1e1e);display:flex;font-family:-apple-system,\\\"system-ui\\\",Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:400;line-height:20px;margin-block-end:4px;margin-inline:12px;min-height:32px;padding-block:0;padding-inline:4px;width:calc(100% - 24px)}.boot-dropdown-item__children .boot-navigation-item.components-item{min-height:24px}.boot-navigation-item.components-item{border-radius:var(--wpds-border-radius-sm,2px)}.boot-navigation-item.components-item.active,.boot-navigation-item.components-item:focus,.boot-navigation-item.components-item:hover,.boot-navigation-item.components-item[aria-current=true]{color:var(--wpds-color-fg-interactive-brand-active,var(--wp-admin-theme-color,#3858e9))}.boot-navigation-item.components-item.active{font-weight:499}.boot-navigation-item.components-item svg:last-child{padding:4px}.boot-navigation-item.components-item[aria-current=true]{color:var(--wpds-color-fg-interactive-brand-active,var(--wp-admin-theme-color,#3858e9));font-weight:499}.boot-navigation-item.components-item:focus-visible{transform:translateZ(0)}.boot-navigation-item.components-item.with-suffix{padding-right:16px}\"));\n\tdocument.head.appendChild(style);\n}\n", "/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport { __experimentalItem as Item } from '@wordpress/components';\nimport { privateApis as routePrivateApis } from '@wordpress/route';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { createLink } = unlock( routePrivateApis );\n\nfunction AnchorOnlyItem(\n\tprops: React.ComponentProps< typeof Item >,\n\tforwardedRef: ForwardedRef< HTMLAnchorElement >\n) {\n\treturn <Item as=\"a\" ref={ forwardedRef } { ...props } />;\n}\n\nconst RouterLinkItem = createLink( forwardRef( AnchorOnlyItem ) );\n\nexport default RouterLinkItem;\n", "/**\n * WordPress dependencies\n */\nimport { isValidElement } from '@wordpress/element';\nimport { Dashicon, Icon } from '@wordpress/components';\nimport { SVG } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport type { IconType } from '../../store/types';\n\n/**\n * Type guard for verifying whether a given element\n * is a valid SVG element for the Icon component.\n *\n * @param element - The element to check\n */\nfunction isSvg( element: unknown ): element is React.JSX.Element {\n\treturn (\n\t\tisValidElement( element ) &&\n\t\t( element.type === SVG || element.type === 'svg' )\n\t);\n}\n\n/**\n * Converts the given IconType into a renderable component:\n * - Dashicon string into a Dashicon component\n * - JSX SVG element into an Icon component\n * - Data URL into an img element\n *\n * @param icon - The icon to convert\n * @param shouldShowPlaceholder - Whether to show placeholder when no icon is provided\n * @return The converted icon as a JSX element\n */\nexport function wrapIcon(\n\ticon?: IconType,\n\tshouldShowPlaceholder: boolean = true\n) {\n\tif ( isSvg( icon ) ) {\n\t\treturn <Icon icon={ icon } />;\n\t}\n\n\tif ( typeof icon === 'string' && icon.startsWith( 'dashicons-' ) ) {\n\t\tconst iconKey = icon.replace(\n\t\t\t/^dashicons-/,\n\t\t\t''\n\t\t) as React.ComponentProps< typeof Dashicon >[ 'icon' ];\n\n\t\treturn (\n\t\t\t<Dashicon\n\t\t\t\tstyle={ { padding: '2px' } }\n\t\t\t\ticon={ iconKey }\n\t\t\t\taria-hidden=\"true\"\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Handle data URLs (SVG images)\n\tif ( typeof icon === 'string' && icon.startsWith( 'data:' ) ) {\n\t\treturn (\n\t\t\t<img\n\t\t\t\tsrc={ icon }\n\t\t\t\talt=\"\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth: '20px',\n\t\t\t\t\theight: '20px',\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\tpadding: '2px',\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\t// If icon is provided and valid, return it as-is\n\tif ( icon ) {\n\t\treturn icon;\n\t}\n\n\t// Return empty 24px placeholder for alignment when no icon is provided\n\t// Only if shouldShowPlaceholder is true\n\tif ( shouldShowPlaceholder ) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={ { width: '24px', height: '24px' } }\n\t\t\t\taria-hidden=\"true\"\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tFlexBlock,\n\t__experimentalItem as Item,\n\t// @ts-ignore\n\t__experimentalHStack as HStack,\n\tIcon,\n} from '@wordpress/components';\nimport { isRTL } from '@wordpress/i18n';\nimport { chevronRightSmall, chevronLeftSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { wrapIcon } from '../items';\nimport type { IconType } from '../../../store/types';\n\ninterface DrilldownItemProps {\n\t/**\n\t * Optional CSS class name.\n\t */\n\tclassName?: string;\n\t/**\n\t * Identifier of the navigation item.\n\t */\n\tid: string;\n\t/**\n\t * Icon to display with the navigation item.\n\t */\n\ticon?: IconType;\n\t/**\n\t * Whether to show placeholder icons for alignment.\n\t */\n\tshouldShowPlaceholder?: boolean;\n\t/**\n\t * Content to display inside the navigation item.\n\t */\n\tchildren: ReactNode;\n\t/**\n\t * Function to handle sidebar navigation when the item is clicked.\n\t */\n\tonNavigate: ( {\n\t\tid,\n\t\tdirection,\n\t}: {\n\t\tid?: string;\n\t\tdirection: 'forward' | 'backward';\n\t} ) => void;\n}\n\nexport default function DrilldownItem( {\n\tclassName,\n\tid,\n\ticon,\n\tshouldShowPlaceholder = true,\n\tchildren,\n\tonNavigate,\n}: DrilldownItemProps ) {\n\tconst handleClick = ( e: React.MouseEvent ) => {\n\t\te.preventDefault();\n\t\tonNavigate( { id, direction: 'forward' } );\n\t};\n\n\treturn (\n\t\t<Item\n\t\t\tclassName={ clsx( 'boot-navigation-item', className ) }\n\t\t\tonClick={ handleClick }\n\t\t>\n\t\t\t<HStack\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tspacing={ 2 }\n\t\t\t\tstyle={ { flexGrow: '1' } }\n\t\t\t>\n\t\t\t\t{ wrapIcon( icon, shouldShowPlaceholder ) }\n\t\t\t\t<FlexBlock>{ children }</FlexBlock>\n\t\t\t\t<Icon icon={ isRTL() ? chevronLeftSmall : chevronRightSmall } />\n\t\t\t</HStack>\n\t\t</Item>\n\t);\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tFlexBlock,\n\t__experimentalItem as Item,\n\t// @ts-ignore\n\t__experimentalHStack as HStack,\n\tIcon,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { chevronDownSmall } from '@wordpress/icons';\nimport { useReducedMotion } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME } from '../../../store';\nimport NavigationItem from '../navigation-item';\nimport { wrapIcon } from '../items';\nimport type { IconType, MenuItem } from '../../../store/types';\nimport './style.scss';\n\nconst ANIMATION_DURATION = 0.2;\n\ninterface DropdownItemProps {\n\t/**\n\t * Optional CSS class name.\n\t */\n\tclassName?: string;\n\t/**\n\t * Identifier of the parent menu item.\n\t */\n\tid: string;\n\t/**\n\t * Icon to display with the dropdown item.\n\t */\n\ticon?: IconType;\n\t/**\n\t * Whether to show placeholder icons for alignment.\n\t */\n\tshouldShowPlaceholder?: boolean;\n\t/**\n\t * Content to display inside the dropdown item.\n\t */\n\tchildren: ReactNode;\n\t/**\n\t * Whether this dropdown is currently expanded.\n\t */\n\tisExpanded: boolean;\n\t/**\n\t * Function to toggle this dropdown's expanded state.\n\t */\n\tonToggle: () => void;\n}\n\nexport default function DropdownItem( {\n\tclassName,\n\tid,\n\ticon,\n\tchildren,\n\tisExpanded,\n\tonToggle,\n}: DropdownItemProps ) {\n\tconst menuItems: MenuItem[] = useSelect(\n\t\t( select ) =>\n\t\t\t// @ts-ignore\n\t\t\tselect( STORE_NAME ).getMenuItems(),\n\t\t[]\n\t);\n\tconst items = menuItems.filter( ( item ) => item.parent === id );\n\tconst disableMotion = useReducedMotion();\n\treturn (\n\t\t<div className=\"boot-dropdown-item\">\n\t\t\t<Item\n\t\t\t\tclassName={ clsx( 'boot-navigation-item', className ) }\n\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tonToggle();\n\t\t\t\t} }\n\t\t\t\tonMouseDown={ ( e ) => e.preventDefault() }\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\tstyle={ { flexGrow: '1' } }\n\t\t\t\t>\n\t\t\t\t\t{ wrapIcon( icon, false ) }\n\t\t\t\t\t<FlexBlock>{ children }</FlexBlock>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ chevronDownSmall }\n\t\t\t\t\t\tclassName={ clsx( 'boot-dropdown-item__chevron', {\n\t\t\t\t\t\t\t'is-up': isExpanded,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t</Item>\n\t\t\t<AnimatePresence initial={ false }>\n\t\t\t\t{ isExpanded && (\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tinitial={ { height: 0 } }\n\t\t\t\t\t\tanimate={ { height: 'auto' } }\n\t\t\t\t\t\texit={ { height: 0 } }\n\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\tduration: disableMotion ? 0 : ANIMATION_DURATION,\n\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tclassName=\"boot-dropdown-item__children\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ items.map( ( item, index ) => (\n\t\t\t\t\t\t\t<NavigationItem\n\t\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\t\tto={ item.to }\n\t\t\t\t\t\t\t\tshouldShowPlaceholder={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ item.label }\n\t\t\t\t\t\t\t</NavigationItem>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</motion.div>\n\t\t\t\t) }\n\t\t\t</AnimatePresence>\n\t\t</div>\n\t);\n}\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='58e2debd11']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"58e2debd11\");\n\tstyle.appendChild(document.createTextNode(\".boot-dropdown-item__children{display:flex;flex-direction:column;margin-block-end:2px;margin-block-start:-2px;margin-inline-start:30px;overflow:hidden;padding:2px}.boot-dropdown-item__chevron.is-up{transform:rotate(180deg)}\"));\n\tdocument.head.appendChild(style);\n}\n", "/**\n * External dependencies\n */\nimport type { ReactNode, RefObject } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHeading as Heading,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n\tButton,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { chevronRight, chevronLeft } from '@wordpress/icons';\nimport { useReducedMotion } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport './style.scss';\n\nconst ANIMATION_DURATION = 0.3;\nconst slideVariants = {\n\tinitial: ( direction: 'forward' | 'backward' ) => ( {\n\t\tx: direction === 'forward' ? 100 : -100,\n\t\topacity: 0,\n\t} ),\n\tanimate: {\n\t\tx: 0,\n\t\topacity: 1,\n\t},\n\texit: ( direction: 'forward' | 'backward' ) => ( {\n\t\tx: direction === 'forward' ? 100 : -100,\n\t\topacity: 0,\n\t} ),\n};\n\nexport default function NavigationScreen( {\n\tisRoot,\n\ttitle,\n\tactions,\n\tcontent,\n\tdescription,\n\tanimationDirection,\n\tbackMenuItem,\n\tbackButtonRef,\n\tnavigationKey,\n\tonNavigate,\n}: {\n\tisRoot?: boolean;\n\ttitle: string;\n\tactions?: ReactNode;\n\tcontent: ReactNode;\n\tdescription?: ReactNode;\n\tbackMenuItem?: string;\n\tbackButtonRef?: RefObject< HTMLButtonElement | null >;\n\tanimationDirection?: 'forward' | 'backward';\n\tnavigationKey?: string;\n\tonNavigate: ( {\n\t\tid,\n\t\tdirection,\n\t}: {\n\t\tid?: string;\n\t\tdirection: 'forward' | 'backward';\n\t} ) => void;\n} ) {\n\tconst icon = isRTL() ? chevronRight : chevronLeft;\n\tconst disableMotion = useReducedMotion();\n\n\tconst handleBackClick = ( e: React.MouseEvent ) => {\n\t\te.preventDefault();\n\t\tonNavigate( { id: backMenuItem, direction: 'backward' } );\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"boot-navigation-screen\"\n\t\t\tstyle={ {\n\t\t\t\toverflow: 'hidden',\n\t\t\t\tposition: 'relative',\n\t\t\t\tdisplay: 'grid',\n\t\t\t\tgridTemplateColumns: '1fr',\n\t\t\t\tgridTemplateRows: '1fr',\n\t\t\t} }\n\t\t>\n\t\t\t<AnimatePresence initial={ false }>\n\t\t\t\t<motion.div\n\t\t\t\t\tkey={ navigationKey }\n\t\t\t\t\tcustom={ animationDirection }\n\t\t\t\t\tvariants={ slideVariants }\n\t\t\t\t\tinitial=\"initial\"\n\t\t\t\t\tanimate=\"animate\"\n\t\t\t\t\texit=\"exit\"\n\t\t\t\t\ttransition={ {\n\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\tduration: disableMotion ? 0 : ANIMATION_DURATION,\n\t\t\t\t\t\tease: [ 0.33, 0, 0, 1 ],\n\t\t\t\t\t} }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\tgridColumn: '1',\n\t\t\t\t\t\tgridRow: '1',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\tclassName=\"boot-navigation-screen__title-icon\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! isRoot && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tref={ backButtonRef }\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tonClick={ handleBackClick }\n\t\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\tclassName=\"boot-navigation-screen__title\"\n\t\t\t\t\t\t\tlevel={ 1 }\n\t\t\t\t\t\t\tsize=\"15px\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{ actions && (\n\t\t\t\t\t\t\t<div className=\"boot-navigation-screen__actions\">\n\t\t\t\t\t\t\t\t{ actions }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</HStack>\n\n\t\t\t\t\t{ description && (\n\t\t\t\t\t\t<div className=\"boot-navigation-screen__description\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ content }\n\t\t\t\t</motion.div>\n\t\t\t</AnimatePresence>\n\t\t</div>\n\t);\n}\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='62d6bb51ee']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"62d6bb51ee\");\n\tstyle.appendChild(document.createTextNode(\".boot-navigation-screen{padding-block-end:4px}.boot-navigation-screen .components-text{color:var(--wpds-color-fg-content-neutral,#1e1e1e)}.boot-navigation-screen__title-icon{padding:12px 16px 8px;position:sticky;top:0}.boot-navigation-screen__title{flex-grow:1;overflow-wrap:break-word}.boot-navigation-screen__title.boot-navigation-screen__title,.boot-navigation-screen__title.boot-navigation-screen__title .boot-navigation-screen__title{color:var(--wpds-color-fg-content-neutral,#1e1e1e);line-height:32px}.boot-navigation-screen__actions{display:flex;flex-shrink:0}\"));\n\tdocument.head.appendChild(style);\n}\n", "/**\n * WordPress dependencies\n */\nimport { privateApis as routePrivateApis } from '@wordpress/route';\nimport { useEffect, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { useRouter, useMatches } = unlock( routePrivateApis );\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME } from '../../store';\nimport {\n\tfindDrilldownParent,\n\tfindDropdownParent,\n\tfindClosestMenuItem,\n} from './path-matching';\n\n/**\n * The `useSidebarParent` hook returns the ID of the parent menu item\n * to render in the sidebar based on the current route.\n *\n * - It finds the closest matching menu item when exact path matches fail\n * - It allows the user to navigate in the sidebar (local state) without changing the URL.\n * - If the URL changes, it will update the parent ID to ensure the correct drilldown level is displayed.\n *\n * @return The ID of the parent menu item to render in the sidebar.\n */\nexport function useSidebarParent() {\n\tconst matches = useMatches();\n\tconst router = useRouter();\n\tconst menuItems = useSelect(\n\t\t( select ) =>\n\t\t\t// @ts-ignore\n\t\t\tselect( STORE_NAME ).getMenuItems(),\n\t\t[]\n\t);\n\n\tconst currentPath = matches[ matches.length - 1 ].pathname.slice(\n\t\trouter.options.basepath?.length ?? 0\n\t);\n\n\tconst currentMenuItem = findClosestMenuItem( currentPath, menuItems );\n\tconst [ parentId, setParentId ] = useState< string | undefined >(\n\t\tfindDrilldownParent( currentMenuItem?.id, menuItems )\n\t);\n\tconst [ parentDropdownId, setParentDropdownId ] = useState<\n\t\tstring | undefined\n\t>( findDropdownParent( currentMenuItem?.id, menuItems ) );\n\n\t// Effect to update parent IDs when URL or menu items change\n\tuseEffect( () => {\n\t\tconst matchedMenuItem = findClosestMenuItem( currentPath, menuItems );\n\t\t// Find the appropriate parents for the current route\n\t\tconst updatedParentId = findDrilldownParent(\n\t\t\tmatchedMenuItem?.id,\n\t\t\tmenuItems\n\t\t);\n\t\tconst updatedDropdownParent = findDropdownParent(\n\t\t\tmatchedMenuItem?.id,\n\t\t\tmenuItems\n\t\t);\n\n\t\tsetParentId( updatedParentId );\n\t\tsetParentDropdownId( updatedDropdownParent );\n\t}, [ currentPath, menuItems ] );\n\n\treturn [\n\t\tparentId,\n\t\tsetParentId,\n\t\tparentDropdownId,\n\t\tsetParentDropdownId,\n\t] as const;\n}\n", "/**\n * Internal dependencies\n */\nimport type { MenuItem } from '../../store/types';\n\n/**\n * Checks if a menu path is a valid parent path of the current path.\n * A valid parent path must be a complete path prefix, not just share segments.\n *\n * @param currentPath - Current page path\n * @param menuPath - Menu item path to check as potential parent\n * @return True if menuPath is a parent of currentPath\n */\nconst isValidParentPath = (\n\tcurrentPath: string,\n\tmenuPath: string\n): boolean => {\n\tif ( ! menuPath || menuPath === currentPath ) {\n\t\treturn false;\n\t}\n\n\t// Normalize paths by removing trailing slashes and ensuring leading slash\n\tconst normalizePath = ( path: string ) => {\n\t\tconst normalized = path.startsWith( '/' ) ? path : '/' + path;\n\t\treturn normalized.endsWith( '/' ) && normalized.length > 1\n\t\t\t? normalized.slice( 0, -1 )\n\t\t\t: normalized;\n\t};\n\n\tconst normalizedCurrent = normalizePath( currentPath );\n\tconst normalizedMenu = normalizePath( menuPath );\n\n\t// Menu path must be shorter and current path must start with menu path + '/'\n\treturn (\n\t\tnormalizedCurrent.startsWith( normalizedMenu ) &&\n\t\t( normalizedCurrent[ normalizedMenu.length ] === '/' ||\n\t\t\tnormalizedMenu === '/' )\n\t);\n};\n\n/**\n * Finds the menu item that is the closest parent of the current path.\n * Only considers menu items that have a 'to' path defined and are valid parents.\n *\n * @param currentPath - Current page path\n * @param menuItems - Array of all menu items\n * @return Menu item that is the closest parent, or null if no valid parent found\n */\nexport const findClosestMenuItem = (\n\tcurrentPath: string,\n\tmenuItems: MenuItem[]\n): MenuItem | null => {\n\tconst exactMatch = menuItems.find( ( item ) => item.to === currentPath );\n\tif ( exactMatch ) {\n\t\treturn exactMatch;\n\t}\n\n\tlet bestMatch: MenuItem | null = null;\n\tlet bestPathLength = 0;\n\n\tfor ( const item of menuItems ) {\n\t\tif ( ! item.to ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Only consider items that are valid parents of the current path\n\t\tif ( isValidParentPath( currentPath, item.to ) ) {\n\t\t\t// Prefer the longest parent path (most specific)\n\t\t\tif ( item.to.length > bestPathLength ) {\n\t\t\t\tbestMatch = item;\n\t\t\t\tbestPathLength = item.to.length;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn bestMatch;\n};\n\n/**\n * Finds the drilldown parent of a menu item by traversing up the menu tree.\n *\n * @param id - The ID of the menu item to find the drilldown parent for\n * @param menuItems - Array of all menu items\n * @return The ID of the drilldown parent, or undefined if none found\n */\nexport const findDrilldownParent = (\n\tid: string | undefined,\n\tmenuItems: MenuItem[]\n): string | undefined => {\n\tif ( ! id ) {\n\t\treturn undefined;\n\t}\n\n\tconst currentItem = menuItems.find( ( item ) => item.id === id );\n\tif ( ! currentItem ) {\n\t\treturn undefined;\n\t}\n\n\t// If the item has a parent, check if that parent is a drilldown\n\tif ( currentItem.parent ) {\n\t\tconst parentItem = menuItems.find(\n\t\t\t( item ) => item.id === currentItem.parent\n\t\t);\n\n\t\tif ( parentItem?.parent_type === 'drilldown' ) {\n\t\t\treturn parentItem.id;\n\t\t}\n\n\t\tif ( parentItem ) {\n\t\t\treturn findDrilldownParent( parentItem.id, menuItems );\n\t\t}\n\t}\n\n\treturn undefined;\n};\n\n/**\n * Finds the dropdown parent of a menu item.\n *\n * @param id - The ID of the menu item to find the dropdown parent for\n * @param menuItems - Array of all menu items\n * @return The ID of the dropdown parent, or undefined if none found\n */\nexport const findDropdownParent = (\n\tid: string | undefined,\n\tmenuItems: MenuItem[]\n): string | undefined => {\n\tif ( ! id ) {\n\t\treturn undefined;\n\t}\n\n\tconst currentItem = menuItems.find( ( item ) => item.id === id );\n\tif ( ! currentItem ) {\n\t\treturn undefined;\n\t}\n\n\t// If the item has a parent, check if that parent is a dropdown\n\tif ( currentItem.parent ) {\n\t\tconst parentItem = menuItems.find(\n\t\t\t( item ) => item.id === currentItem.parent\n\t\t);\n\n\t\tif ( parentItem?.parent_type === 'dropdown' ) {\n\t\t\treturn parentItem.id;\n\t\t}\n\t}\n\n\treturn undefined;\n};\n", "/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { _n, __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { displayShortcut, rawShortcut } from '@wordpress/keycodes';\nimport { check } from '@wordpress/icons';\nimport { EntitiesSavedStates } from '@wordpress/editor';\nimport { Button, Modal, Tooltip } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport './style.scss';\nimport useSaveShortcut from '../save-panel/use-save-shortcut';\n\nexport default function SaveButton() {\n\tconst [ isSaveViewOpen, setIsSaveViewOpened ] = useState( false );\n\tconst { isSaving, dirtyEntityRecordsCount } = useSelect( ( select ) => {\n\t\tconst { isSavingEntityRecord, __experimentalGetDirtyEntityRecords } =\n\t\t\tselect( coreStore );\n\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\treturn {\n\t\t\tisSaving: dirtyEntityRecords.some( ( record ) =>\n\t\t\t\tisSavingEntityRecord( record.kind, record.name, record.key )\n\t\t\t),\n\t\t\tdirtyEntityRecordsCount: dirtyEntityRecords.length,\n\t\t};\n\t}, [] );\n\tconst [ showSavedState, setShowSavedState ] = useState( false );\n\n\tuseEffect( () => {\n\t\tif ( isSaving ) {\n\t\t\t// Proactively expect to show saved state. This is done once save\n\t\t\t// starts to avoid race condition where setting it after would cause\n\t\t\t// the button to be unmounted before state is updated.\n\t\t\tsetShowSavedState( true );\n\t\t}\n\t}, [ isSaving ] );\n\n\tconst hasChanges = dirtyEntityRecordsCount > 0;\n\n\t// Handle save failure case: If we were showing saved state but saving\n\t// failed, reset to show changes again.\n\tuseEffect( () => {\n\t\tif ( ! isSaving && hasChanges ) {\n\t\t\tsetShowSavedState( false );\n\t\t}\n\t}, [ isSaving, hasChanges ] );\n\n\tfunction hideSavedState() {\n\t\tif ( showSavedState ) {\n\t\t\tsetShowSavedState( false );\n\t\t}\n\t}\n\n\tconst shouldShowButton = hasChanges || showSavedState;\n\n\tuseSaveShortcut( { openSavePanel: () => setIsSaveViewOpened( true ) } );\n\n\tif ( ! shouldShowButton ) {\n\t\treturn null;\n\t}\n\n\tconst isInSavedState = showSavedState && ! hasChanges;\n\tconst disabled = isSaving || isInSavedState;\n\n\tconst getLabel = () => {\n\t\tif ( isInSavedState ) {\n\t\t\treturn __( 'Saved' );\n\t\t}\n\t\treturn sprintf(\n\t\t\t// translators: %d: number of unsaved changes (number).\n\t\t\t_n(\n\t\t\t\t'Review %d change\u2026',\n\t\t\t\t'Review %d changes\u2026',\n\t\t\t\tdirtyEntityRecordsCount\n\t\t\t),\n\t\t\tdirtyEntityRecordsCount\n\t\t);\n\t};\n\tconst label = getLabel();\n\n\treturn (\n\t\t<>\n\t\t\t<Tooltip\n\t\t\t\ttext={ hasChanges ? label : undefined }\n\t\t\t\tshortcut={ displayShortcut.primary( 's' ) }\n\t\t\t>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tonClick={ () => setIsSaveViewOpened( true ) }\n\t\t\t\t\tonBlur={ hideSavedState }\n\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\taria-keyshortcuts={ rawShortcut.primary( 's' ) }\n\t\t\t\t\tclassName=\"boot-save-button\"\n\t\t\t\t\ticon={ isInSavedState ? check : undefined }\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</Button>\n\t\t\t</Tooltip>\n\t\t\t{ isSaveViewOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Review changes' ) }\n\t\t\t\t\tonRequestClose={ () => setIsSaveViewOpened( false ) }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t>\n\t\t\t\t\t<EntitiesSavedStates\n\t\t\t\t\t\tclose={ () => setIsSaveViewOpened( false ) }\n\t\t\t\t\t\tvariant=\"inline\"\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='a012fe845a']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"a012fe845a\");\n\tstyle.appendChild(document.createTextNode(\".boot-save-button{width:100%}\"));\n\tdocument.head.appendChild(style);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport {\n\tuseShortcut,\n\tstore as keyboardShortcutsStore,\n\t// @ts-expect-error - No types available yet.\n} from '@wordpress/keyboard-shortcuts';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\n\nconst shortcutName = 'core/boot/save';\n\n/**\n * Register the save keyboard shortcut in view mode.\n *\n * @param param0 Object containing the function to open the save panel.\n * @param param0.openSavePanel Function to open the save panel.\n */\nexport default function useSaveShortcut( {\n\topenSavePanel,\n}: {\n\topenSavePanel: () => void;\n} ) {\n\tconst { __experimentalGetDirtyEntityRecords, isSavingEntityRecord } =\n\t\tuseSelect( coreStore );\n\tconst { hasNonPostEntityChanges, isPostSavingLocked } =\n\t\tuseSelect( editorStore );\n\tconst { savePost } = useDispatch( editorStore );\n\tconst { registerShortcut, unregisterShortcut } = useDispatch(\n\t\tkeyboardShortcutsStore\n\t);\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: shortcutName,\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Save your changes.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 's',\n\t\t\t},\n\t\t} );\n\t\treturn () => {\n\t\t\tunregisterShortcut( shortcutName );\n\t\t};\n\t}, [ registerShortcut, unregisterShortcut ] );\n\n\tuseShortcut( shortcutName, ( event: Event ) => {\n\t\tevent.preventDefault();\n\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\tconst hasDirtyEntities = !! dirtyEntityRecords.length;\n\t\tconst isSaving = dirtyEntityRecords.some( ( record ) =>\n\t\t\tisSavingEntityRecord( record.kind, record.name, record.key )\n\t\t);\n\t\tif ( ! hasDirtyEntities || isSaving ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( hasNonPostEntityChanges() ) {\n\t\t\topenSavePanel();\n\t\t} else if ( ! isPostSavingLocked() ) {\n\t\t\tsavePost();\n\t\t}\n\t} );\n}\n", "/**\n * Internal dependencies\n */\nimport SiteHub from '../site-hub';\nimport Navigation from '../navigation';\nimport SaveButton from '../save-button';\nimport './style.scss';\n\nexport default function Sidebar() {\n\treturn (\n\t\t<div className=\"boot-sidebar__scrollable\">\n\t\t\t<SiteHub />\n\t\t\t<div className=\"boot-sidebar__content\">\n\t\t\t\t<Navigation />\n\t\t\t</div>\n\t\t\t<div className=\"boot-sidebar__footer\">\n\t\t\t\t<SaveButton />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='e5d2041211']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"e5d2041211\");\n\tstyle.appendChild(document.createTextNode(\".boot-sidebar__scrollable{display:flex;flex-direction:column;height:100%;overflow:auto;position:relative}.boot-sidebar__content{contain:content;flex-grow:1;position:relative}.boot-sidebar__footer{padding:16px 8px 8px 16px}\"));\n\tdocument.head.appendChild(style);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { Modal } from '@wordpress/components';\nimport { EntitiesSavedStates } from '@wordpress/editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useSaveShortcut from './use-save-shortcut';\n\nexport default function SavePanel() {\n\tconst [ isOpen, setIsOpen ] = useState< boolean >( false );\n\tuseSaveShortcut( {\n\t\topenSavePanel: () => setIsOpen( true ),\n\t} );\n\tif ( ! isOpen ) {\n\t\treturn false;\n\t}\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"edit-site-save-panel__modal\"\n\t\t\tonRequestClose={ () => setIsOpen( false ) }\n\t\t\ttitle={ __( 'Review changes' ) }\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<EntitiesSavedStates\n\t\t\t\tclose={ () => setIsOpen( false ) }\n\t\t\t\tvariant=\"inline\"\n\t\t\t/>\n\t\t</Modal>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Canvas from '../canvas';\nimport type { CanvasData } from '../../store/types';\n\ninterface CanvasRendererProps {\n\tcanvas: CanvasData | null | undefined;\n\trouteContentModule?: string;\n}\n\n/**\n * CanvasRenderer handles rendering of both default and custom canvas components.\n * The logic here would have been way simpler if we just render the canvas within\n * the RouteComponent like the other surfaces.\n * The issue is that doing so forces the canvas to remount on every route change,\n * which is not desirable for smooth transitions.\n *\n * - When canvas is undefined: No canvas is rendered\n * - When canvas is null: Loads and renders custom canvas from contentModulePath\n * - When canvas is CanvasData: Renders default Canvas component with editor\n *\n * This component is designed to be rendered at the Root level to prevent\n * remounting when navigating between routes.\n *\n * @param props Component props\n * @param props.canvas Canvas data from route loader\n * @param props.routeContentModule Path to content module for custom canvas\n * @return Canvas renderer\n */\nexport default function CanvasRenderer( {\n\tcanvas,\n\trouteContentModule,\n}: CanvasRendererProps ) {\n\tconst [ CustomCanvas, setCustomCanvas ] = useState< any >( null );\n\n\tuseEffect( () => {\n\t\tif ( canvas === null && routeContentModule ) {\n\t\t\timport( routeContentModule )\n\t\t\t\t.then( ( module ) => {\n\t\t\t\t\tsetCustomCanvas( () => module.canvas );\n\t\t\t\t} )\n\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.error( 'Failed to load custom canvas:', error );\n\t\t\t\t} );\n\t\t} else {\n\t\t\tsetCustomCanvas( null );\n\t\t}\n\t}, [ canvas, routeContentModule ] );\n\n\t// No canvas\n\tif ( canvas === undefined ) {\n\t\treturn null;\n\t}\n\n\t// Custom canvas\n\tif ( canvas === null ) {\n\t\tif ( ! CustomCanvas ) {\n\t\t\treturn null; // Still loading\n\t\t}\n\t\treturn <CustomCanvas />;\n\t}\n\n\t// Default canvas\n\treturn <Canvas canvas={ canvas } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { Spinner } from '@wordpress/components';\nimport { useNavigate } from '@wordpress/route';\n\n/**\n * Internal dependencies\n */\nimport type { CanvasData } from '../../store/types';\nimport BootBackButton from './back-button';\n\ninterface CanvasProps {\n\tcanvas: CanvasData;\n}\n\n/**\n * Canvas component that dynamically loads and renders the lazy editor.\n *\n * @param {Object} props - Component props\n * @param {Object} props.canvas - Canvas data containing postType and postId\n * @return Canvas surface with editor\n */\nexport default function Canvas( { canvas }: CanvasProps ) {\n\tconst [ Editor, setEditor ] = useState< any >( null );\n\tconst navigate = useNavigate();\n\n\tuseEffect( () => {\n\t\t// Dynamically import the lazy-editor module\n\t\timport( '@wordpress/lazy-editor' )\n\t\t\t.then( ( module ) => {\n\t\t\t\tsetEditor( () => module.Editor );\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error( 'Failed to load lazy editor:', error );\n\t\t\t} );\n\t}, [] );\n\n\t// Show spinner while loading the editor module\n\tif ( ! Editor ) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\talignItems: 'center',\n\t\t\t\t\theight: '100%',\n\t\t\t\t\tpadding: '2rem',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<Spinner />\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Render back button in full-screen mode (when not preview)\n\t// Uses render prop pattern to receive fillProps from Slot\n\tconst backButton = ! canvas.isPreview\n\t\t? ( { length }: { length: number } ) => (\n\t\t\t\t<BootBackButton length={ length } />\n\t\t )\n\t\t: undefined;\n\n\t// Render the editor with canvas data\n\treturn (\n\t\t<div style={ { height: '100%', position: 'relative' } }>\n\t\t\t<div\n\t\t\t\tstyle={ { height: '100%' } }\n\t\t\t\t// @ts-expect-error inert not typed properly\n\t\t\t\tinert={ canvas.isPreview ? 'true' : undefined }\n\t\t\t>\n\t\t\t\t<Editor\n\t\t\t\t\tpostType={ canvas.postType }\n\t\t\t\t\tpostId={ canvas.postId }\n\t\t\t\t\tsettings={ {\n\t\t\t\t\t\tisPreviewMode: canvas.isPreview,\n\t\t\t\t\t\tstyles: canvas.isPreview\n\t\t\t\t\t\t\t? [ { css: 'body{min-height:100vh;}' } ]\n\t\t\t\t\t\t\t: [],\n\t\t\t\t\t} }\n\t\t\t\t\tbackButton={ backButton }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ canvas.isPreview && canvas.editLink && (\n\t\t\t\t<div\n\t\t\t\t\tonClick={ () => navigate( { to: canvas.editLink } ) }\n\t\t\t\t\tonKeyDown={ ( e ) => {\n\t\t\t\t\t\tif ( e.key === 'Enter' || e.key === ' ' ) {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tnavigate( { to: canvas.editLink } );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tinset: 0,\n\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\tzIndex: 1,\n\t\t\t\t\t} }\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\taria-label=\"Click to edit\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tIcon,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { arrowUpLeft } from '@wordpress/icons';\nimport { useReducedMotion } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport SiteIcon from '../site-icon';\nimport './back-button.scss';\n\n/**\n * Overlay arrow animation that appears on hover.\n * Matches next-admin implementation with clip-path.\n */\nconst toggleHomeIconVariants = {\n\tedit: {\n\t\topacity: 0,\n\t\tscale: 0.2,\n\t},\n\thover: {\n\t\topacity: 1,\n\t\tscale: 1,\n\t\tclipPath: 'inset( 22% round 2px )',\n\t},\n};\n\n/**\n * Back button component that appears in full-screen canvas mode.\n * Matches next-admin's SiteIconBackButton design.\n *\n * @param {Object} props Component props\n * @param {number} props.length Number of BackButton fills (from Slot)\n * @return Back button with slide and hover animations\n */\nexport default function BootBackButton( { length }: { length: number } ) {\n\tconst disableMotion = useReducedMotion();\n\n\tconst handleBack = () => {\n\t\twindow.history.back();\n\t};\n\n\t// Only render if this is the only back button\n\tif ( length > 1 ) {\n\t\treturn null;\n\t}\n\n\tconst transition = {\n\t\tduration: disableMotion ? 0 : 0.3,\n\t};\n\n\treturn (\n\t\t<motion.div\n\t\t\tclassName=\"boot-canvas-back-button\"\n\t\t\tanimate=\"edit\"\n\t\t\tinitial=\"edit\"\n\t\t\twhileHover=\"hover\"\n\t\t\twhileTap=\"tap\"\n\t\t\ttransition={ transition }\n\t\t>\n\t\t\t<Button\n\t\t\t\tclassName=\"boot-canvas-back-button__link\"\n\t\t\t\tonClick={ handleBack }\n\t\t\t\taria-label={ __( 'Go back' ) }\n\t\t\t\t__next40pxDefaultSize\n\t\t\t>\n\t\t\t\t<SiteIcon />\n\t\t\t</Button>\n\n\t\t\t{ /* Overlay arrow that appears on hover */ }\n\t\t\t<motion.div\n\t\t\t\tclassName=\"boot-canvas-back-button__icon\"\n\t\t\t\tvariants={ toggleHomeIconVariants }\n\t\t\t>\n\t\t\t\t<Icon icon={ arrowUpLeft } />\n\t\t\t</motion.div>\n\t\t</motion.div>\n\t);\n}\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='68d99fe376']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"68d99fe376\");\n\tstyle.appendChild(document.createTextNode(\".boot-canvas-back-button{height:64px;left:0;position:absolute;top:0;width:64px;z-index:100}.boot-canvas-back-button__container{height:100%;position:relative;width:100%}.boot-canvas-back-button__link.components-button{align-items:center;background:var(--wpds-color-bg-surface-neutral-weak,#f0f0f0);border-radius:0;display:inline-flex;height:64px;justify-content:center;padding:0;text-decoration:none;width:64px}@media not (prefers-reduced-motion){.boot-canvas-back-button__link.components-button{transition:outline .1s ease-out}}.boot-canvas-back-button__link.components-button:focus:not(:active){outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));outline-offset:calc(var(--wpds-border-width-focus, var(--wp-admin-border-width-focus, 2px))*-1)}.boot-canvas-back-button__icon{align-items:center;background-color:#ccc;display:flex;height:64px;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;width:64px}.boot-canvas-back-button__icon svg{fill:currentColor}.boot-canvas-back-button__icon.has-site-icon{-webkit-backdrop-filter:saturate(180%) blur(15px);backdrop-filter:saturate(180%) blur(15px);background-color:#fff9}.interface-interface-skeleton__header{margin-top:0!important}\"));\n\tdocument.head.appendChild(style);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore, type UnstableBase } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { privateApis as routePrivateApis } from '@wordpress/route';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation, useMatches } = unlock( routePrivateApis );\n\n/**\n * Hook that manages document title updates based on route changes.\n * Formats titles with WordPress conventions and announces them to screen readers.\n *\n * This hook should be called from the Root component to ensure it runs on every route.\n */\nexport default function useRouteTitle() {\n\tconst location = useLocation();\n\tconst matches = useMatches();\n\tconst currentMatch = matches[ matches.length - 1 ];\n\tconst routeTitle = ( currentMatch?.loaderData as any )?.title as\n\t\t| string\n\t\t| undefined;\n\n\tconst siteTitle = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecord< UnstableBase >(\n\t\t\t\t'root',\n\t\t\t\t'__unstableBase'\n\t\t\t)?.name,\n\t\t[]\n\t);\n\n\tconst isInitialLocationRef = useRef( true );\n\n\tuseEffect( () => {\n\t\tisInitialLocationRef.current = false;\n\t}, [ location ] );\n\n\tuseEffect( () => {\n\t\t// Don't update or announce the title for initial page load.\n\t\tif ( isInitialLocationRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\trouteTitle &&\n\t\t\ttypeof routeTitle === 'string' &&\n\t\t\tsiteTitle &&\n\t\t\ttypeof siteTitle === 'string'\n\t\t) {\n\t\t\t// Decode entities for display\n\t\t\tconst decodedRouteTitle = decodeEntities( routeTitle );\n\t\t\tconst decodedSiteTitle = decodeEntities( siteTitle );\n\n\t\t\t// Format title following WordPress admin conventions\n\t\t\tconst formattedTitle = sprintf(\n\t\t\t\t/* translators: Admin document title. 1: Admin screen name, 2: Site name. */\n\t\t\t\t__( '%1$s \u2039 %2$s \u2014 WordPress' ),\n\t\t\t\tdecodedRouteTitle,\n\t\t\t\tdecodedSiteTitle\n\t\t\t);\n\n\t\t\tdocument.title = formattedTitle;\n\n\t\t\t// Announce title on route change for screen readers.\n\t\t\tif ( decodedRouteTitle ) {\n\t\t\t\tspeak( decodedRouteTitle, 'assertive' );\n\t\t\t}\n\t\t}\n\t}, [ routeTitle, siteTitle, location ] );\n}\n", "import {\n\ttype ThemeProvider as ThemeProviderType,\n\tprivateApis as themePrivateApis,\n} from '@wordpress/theme';\nimport { unlock } from '../../lock-unlock';\n\nconst ThemeProvider: typeof ThemeProviderType =\n\tunlock( themePrivateApis ).ThemeProvider;\n\nconst THEME_PRIMARY_COLORS = new Map< string, string >( [\n\t[ 'light', '#0085ba' ],\n\t[ 'modern', '#3858e9' ],\n\t[ 'blue', '#096484' ],\n\t[ 'coffee', '#46403c' ],\n\t[ 'ectoplasm', '#523f6d' ],\n\t[ 'midnight', '#e14d43' ],\n\t[ 'ocean', '#627c83' ],\n\t[ 'sunrise', '#dd823b' ],\n] );\n\nexport function getAdminThemePrimaryColor(): string | undefined {\n\tconst theme =\n\t\tdocument.body.className.match( /admin-color-([a-z]+)/ )?.[ 1 ];\n\n\treturn theme && THEME_PRIMARY_COLORS.get( theme );\n}\n\nexport function UserThemeProvider( {\n\tcolor,\n\t...restProps\n}: React.ComponentProps< typeof ThemeProvider > ) {\n\tconst primary = getAdminThemePrimaryColor();\n\n\treturn <ThemeProvider { ...restProps } color={ { primary, ...color } } />;\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { privateApis as routePrivateApis } from '@wordpress/route';\nimport { SnackbarNotices } from '@wordpress/notices';\nimport { SlotFillProvider } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport SavePanel from '../save-panel';\nimport CanvasRenderer from '../canvas-renderer';\nimport { unlock } from '../../lock-unlock';\nimport type { CanvasData } from '../../store/types';\nimport './style.scss';\nimport useRouteTitle from '../app/use-route-title';\nimport { UserThemeProvider } from '../user-theme-provider';\n\nconst { useMatches, Outlet } = unlock( routePrivateApis );\n\n/**\n * Root component for single page mode (no sidebar).\n * Used when rendering pages within wp-admin without taking over the full page.\n */\nexport default function RootSinglePage() {\n\tconst matches = useMatches();\n\tconst currentMatch = matches[ matches.length - 1 ];\n\tconst canvas = ( currentMatch?.loaderData as any )?.canvas as\n\t\t| CanvasData\n\t\t| null\n\t\t| undefined;\n\tconst routeContentModule = ( currentMatch?.loaderData as any )\n\t\t?.routeContentModule as string | undefined;\n\tconst isFullScreen = canvas && ! canvas.isPreview;\n\n\tuseRouteTitle();\n\n\treturn (\n\t\t<SlotFillProvider>\n\t\t\t<UserThemeProvider isRoot color={ { bg: '#f8f8f8' } }>\n\t\t\t\t<UserThemeProvider color={ { bg: '#1d2327' } }>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'boot-layout boot-layout--single-page',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'has-canvas': !! canvas || canvas === null,\n\t\t\t\t\t\t\t\t'has-full-canvas': isFullScreen,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<SavePanel />\n\t\t\t\t\t\t<SnackbarNotices className=\"boot-notices__snackbar\" />\n\t\t\t\t\t\t<div className=\"boot-layout__surfaces\">\n\t\t\t\t\t\t\t<UserThemeProvider color={ { bg: '#ffffff' } }>\n\t\t\t\t\t\t\t\t<Outlet />\n\t\t\t\t\t\t\t\t{ /* Render Canvas in Root to prevent remounting on route changes */ }\n\t\t\t\t\t\t\t\t{ ( canvas || canvas === null ) && (\n\t\t\t\t\t\t\t\t\t<div className=\"boot-layout__canvas\">\n\t\t\t\t\t\t\t\t\t\t<CanvasRenderer\n\t\t\t\t\t\t\t\t\t\t\tcanvas={ canvas }\n\t\t\t\t\t\t\t\t\t\t\trouteContentModule={\n\t\t\t\t\t\t\t\t\t\t\t\trouteContentModule\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</UserThemeProvider>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</UserThemeProvider>\n\t\t\t</UserThemeProvider>\n\t\t</SlotFillProvider>\n\t);\n}\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='dc5d4f8de6']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"dc5d4f8de6\");\n\tstyle.appendChild(document.createTextNode(\".boot-layout{background:var(--wpds-color-bg-surface-neutral-weak,#f0f0f0);color:var(--wpds-color-fg-content-neutral,#1e1e1e);display:flex;flex-direction:row;height:100%;isolation:isolate;width:100%}.boot-layout__sidebar-backdrop{background-color:#00000080;bottom:0;cursor:pointer;left:0;position:fixed;right:0;top:0;z-index:100002}.boot-layout__sidebar{flex-shrink:0;height:100%;overflow:hidden;position:relative;width:240px}.boot-layout__sidebar.is-mobile{background:var(--wpds-color-bg-surface-neutral-weak,#f0f0f0);bottom:0;box-shadow:2px 0 8px #0003;inset-inline-start:0;max-width:85vw;position:fixed;top:0;width:300px;z-index:100003}.boot-layout__mobile-sidebar-drawer{left:0;position:fixed;right:0;top:0}.boot-layout--single-page .boot-layout__mobile-sidebar-drawer{top:46px}.boot-layout__mobile-sidebar-drawer{align-items:center;background:var(--wpds-color-bg-surface-neutral,#f8f8f8);border-bottom:1px solid var(--wpds-color-stroke-surface-neutral-weak,#e0e0e0);display:flex;justify-content:flex-start;padding:16px;z-index:3}.boot-layout__canvas.has-mobile-drawer{padding-top:65px;position:relative}.boot-layout__surfaces{display:flex;flex-grow:1;gap:8px;margin:0}@media (min-width:782px){.boot-layout__surfaces{margin:8px}.boot-layout--single-page .boot-layout__surfaces{margin-top:0;margin-inline-start:0}}.boot-layout__inspector,.boot-layout__stage{background:var(--wpds-color-bg-surface-neutral,#f8f8f8);border-radius:0;bottom:0;color:var(--wpds-color-fg-content-neutral,#1e1e1e);flex:1;height:100vh;left:0;margin:0;overflow-y:auto;position:relative;position:fixed;right:0;top:0;width:100vw}.boot-layout--single-page .boot-layout__inspector,.boot-layout--single-page .boot-layout__stage{height:calc(100vh - 46px);top:46px}@media (min-width:782px){.boot-layout__inspector,.boot-layout__stage{border-radius:8px;height:auto;margin:0;position:static;width:auto}}.boot-layout__stage{z-index:2}@media (min-width:782px){.boot-layout__stage{z-index:auto}}.boot-layout__inspector{z-index:3}@media (min-width:782px){.boot-layout__inspector{z-index:auto}}.boot-layout__canvas{background:var(--wpds-color-bg-surface-neutral,#f8f8f8);border:1px solid var(--wpds-color-stroke-surface-neutral-weak,#e0e0e0);border-radius:0;bottom:0;box-shadow:0 1px 3px #0000001a;color:var(--wpds-color-fg-content-neutral,#1e1e1e);flex:1;height:100vh;left:0;margin:0;overflow-y:auto;position:relative;position:fixed;right:0;top:0;width:100vw;z-index:1}.boot-layout--single-page .boot-layout__canvas{height:calc(100vh - 46px);top:46px}@media (min-width:782px){.boot-layout__canvas{border-radius:8px;height:auto;position:static;width:auto;z-index:auto}.boot-layout.has-canvas .boot-layout__stage,.boot-layout__inspector{max-width:400px}}.boot-layout__canvas .interface-interface-skeleton{height:100%;left:0!important;position:relative;top:0!important}.boot-layout.has-full-canvas .boot-layout__surfaces{gap:0;margin:0}.boot-layout.has-full-canvas .boot-layout__inspector,.boot-layout.has-full-canvas .boot-layout__stage{display:none}.boot-layout.has-full-canvas .boot-layout__canvas{border:none;border-radius:0;bottom:0;box-shadow:none;left:0;margin:0;max-width:none;overflow:hidden;position:fixed;right:0;top:0}.boot-layout--single-page .boot-layout.has-full-canvas .boot-layout__canvas{top:46px}@media (min-width:782px){.boot-layout--single-page .boot-layout.has-full-canvas .boot-layout__canvas{top:32px}}\"));\n\tdocument.head.appendChild(style);\n}\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='054355f47c']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"054355f47c\");\n\tstyle.appendChild(document.createTextNode(\":root{--wpds-border-radius-lg:8px;--wpds-border-radius-md:4px;--wpds-border-radius-sm:2px;--wpds-border-radius-xs:1px;--wpds-border-width-focus:2px;--wpds-border-width-lg:8px;--wpds-border-width-md:4px;--wpds-border-width-sm:2px;--wpds-border-width-xs:1px;--wpds-color-bg-interactive-brand-strong:#3858e9;--wpds-color-bg-interactive-brand-strong-active:#2e49d9;--wpds-color-bg-interactive-brand-weak:#0000;--wpds-color-bg-interactive-brand-weak-active:#e6eaf4;--wpds-color-bg-interactive-error:#0000;--wpds-color-bg-interactive-error-active:#fff6f4;--wpds-color-bg-interactive-error-strong:#cc1818;--wpds-color-bg-interactive-error-strong-active:#b90000;--wpds-color-bg-interactive-error-weak:#0000;--wpds-color-bg-interactive-error-weak-active:#f6e6e3;--wpds-color-bg-interactive-neutral-strong:#2d2d2d;--wpds-color-bg-interactive-neutral-strong-active:#1e1e1e;--wpds-color-bg-interactive-neutral-strong-disabled:#e2e2e2;--wpds-color-bg-interactive-neutral-weak:#0000;--wpds-color-bg-interactive-neutral-weak-active:#eaeaea;--wpds-color-bg-interactive-neutral-weak-disabled:#0000;--wpds-color-bg-surface-brand:#ecf0f9;--wpds-color-bg-surface-caution:#fee994;--wpds-color-bg-surface-caution-weak:#fff9c9;--wpds-color-bg-surface-error:#f6e6e3;--wpds-color-bg-surface-error-weak:#fff6f4;--wpds-color-bg-surface-info:#deebfa;--wpds-color-bg-surface-info-weak:#f2f9ff;--wpds-color-bg-surface-neutral:#f8f8f8;--wpds-color-bg-surface-neutral-strong:#fff;--wpds-color-bg-surface-neutral-weak:#f0f0f0;--wpds-color-bg-surface-success:#c5f7cc;--wpds-color-bg-surface-success-weak:#eaffed;--wpds-color-bg-surface-warning:#fde6bd;--wpds-color-bg-surface-warning-weak:#fff7e0;--wpds-color-bg-thumb-brand:#3858e9;--wpds-color-bg-thumb-brand-active:#3858e9;--wpds-color-bg-thumb-neutral-disabled:#d8d8d8;--wpds-color-bg-thumb-neutral-weak:#8a8a8a;--wpds-color-bg-thumb-neutral-weak-active:#6c6c6c;--wpds-color-bg-track-neutral:#d8d8d8;--wpds-color-bg-track-neutral-weak:#e0e0e0;--wpds-color-fg-content-caution:#281d00;--wpds-color-fg-content-caution-weak:#826a00;--wpds-color-fg-content-error:#470000;--wpds-color-fg-content-error-weak:#cc1818;--wpds-color-fg-content-info:#001b4f;--wpds-color-fg-content-info-weak:#006bd7;--wpds-color-fg-content-neutral:#1e1e1e;--wpds-color-fg-content-neutral-weak:#6d6d6d;--wpds-color-fg-content-success:#002900;--wpds-color-fg-content-success-weak:#007f30;--wpds-color-fg-content-warning:#2e1900;--wpds-color-fg-content-warning-weak:#926300;--wpds-color-fg-interactive-brand:#3858e9;--wpds-color-fg-interactive-brand-active:#3858e9;--wpds-color-fg-interactive-brand-strong:#eff0f2;--wpds-color-fg-interactive-brand-strong-active:#eff0f2;--wpds-color-fg-interactive-error:#cc1818;--wpds-color-fg-interactive-error-active:#cc1818;--wpds-color-fg-interactive-error-strong:#f2efef;--wpds-color-fg-interactive-error-strong-active:#f2efef;--wpds-color-fg-interactive-neutral:#1e1e1e;--wpds-color-fg-interactive-neutral-active:#1e1e1e;--wpds-color-fg-interactive-neutral-disabled:#8a8a8a;--wpds-color-fg-interactive-neutral-strong:#f0f0f0;--wpds-color-fg-interactive-neutral-strong-active:#f0f0f0;--wpds-color-fg-interactive-neutral-strong-disabled:#8a8a8a;--wpds-color-fg-interactive-neutral-weak:#6d6d6d;--wpds-color-fg-interactive-neutral-weak-disabled:#8a8a8a;--wpds-color-stroke-focus-brand:#3858e9;--wpds-color-stroke-interactive-brand:#3858e9;--wpds-color-stroke-interactive-brand-active:#2337c8;--wpds-color-stroke-interactive-error:#cc1818;--wpds-color-stroke-interactive-error-active:#9d0000;--wpds-color-stroke-interactive-error-strong:#cc1818;--wpds-color-stroke-interactive-neutral:#8a8a8a;--wpds-color-stroke-interactive-neutral-active:#6c6c6c;--wpds-color-stroke-interactive-neutral-disabled:#d8d8d8;--wpds-color-stroke-interactive-neutral-strong:#6c6c6c;--wpds-color-stroke-surface-brand:#a3b1d4;--wpds-color-stroke-surface-brand-strong:#3858e9;--wpds-color-stroke-surface-error:#daa39b;--wpds-color-stroke-surface-error-strong:#cc1818;--wpds-color-stroke-surface-info:#9fbcdc;--wpds-color-stroke-surface-info-strong:#006bd7;--wpds-color-stroke-surface-neutral:#d8d8d8;--wpds-color-stroke-surface-neutral-strong:#8a8a8a;--wpds-color-stroke-surface-neutral-weak:#e0e0e0;--wpds-color-stroke-surface-success:#8ac894;--wpds-color-stroke-surface-success-strong:#007f30;--wpds-color-stroke-surface-warning:#d0b381;--wpds-color-stroke-surface-warning-strong:#926300;--wpds-cursor-control:default;--wpds-dimension-base:4px;--wpds-dimension-gap-2xl:32px;--wpds-dimension-gap-3xl:40px;--wpds-dimension-gap-lg:16px;--wpds-dimension-gap-md:12px;--wpds-dimension-gap-sm:8px;--wpds-dimension-gap-xl:24px;--wpds-dimension-gap-xs:4px;--wpds-dimension-padding-2xl:24px;--wpds-dimension-padding-3xl:32px;--wpds-dimension-padding-lg:16px;--wpds-dimension-padding-md:12px;--wpds-dimension-padding-sm:8px;--wpds-dimension-padding-xl:20px;--wpds-dimension-padding-xs:4px;--wpds-dimension-surface-width-2xl:960px;--wpds-dimension-surface-width-lg:560px;--wpds-dimension-surface-width-md:400px;--wpds-dimension-surface-width-sm:320px;--wpds-dimension-surface-width-xl:720px;--wpds-dimension-surface-width-xs:240px;--wpds-elevation-lg:0 5px 15px 0 #00000014,0 15px 27px 0 #00000012,0 30px 36px 0 #0000000a,0 50px 43px 0 #00000005;--wpds-elevation-md:0 2px 3px 0 #0000000d,0 4px 5px 0 #0000000a,0 12px 12px 0 #00000008,0 16px 16px 0 #00000005;--wpds-elevation-sm:0 1px 2px 0 #0000000d,0 2px 3px 0 #0000000a,0 6px 6px 0 #00000008,0 8px 8px 0 #00000005;--wpds-elevation-xs:0 1px 1px 0 #00000008,0 1px 2px 0 #00000005,0 3px 3px 0 #00000005,0 4px 4px 0 #00000003;--wpds-font-family-body:-apple-system,system-ui,\\\"Segoe UI\\\",\\\"Roboto\\\",\\\"Oxygen-Sans\\\",\\\"Ubuntu\\\",\\\"Cantarell\\\",\\\"Helvetica Neue\\\",sans-serif;--wpds-font-family-heading:-apple-system,system-ui,\\\"Segoe UI\\\",\\\"Roboto\\\",\\\"Oxygen-Sans\\\",\\\"Ubuntu\\\",\\\"Cantarell\\\",\\\"Helvetica Neue\\\",sans-serif;--wpds-font-family-mono:\\\"Menlo\\\",\\\"Consolas\\\",monaco,monospace;--wpds-font-line-height-2xl:40px;--wpds-font-line-height-lg:28px;--wpds-font-line-height-md:24px;--wpds-font-line-height-sm:20px;--wpds-font-line-height-xl:32px;--wpds-font-line-height-xs:16px;--wpds-font-size-2xl:32px;--wpds-font-size-lg:15px;--wpds-font-size-md:13px;--wpds-font-size-sm:12px;--wpds-font-size-xl:20px;--wpds-font-size-xs:11px;--wpds-font-weight-medium:499;--wpds-font-weight-regular:400}[data-wpds-theme-provider-id][data-wpds-density=compact]{--wpds-dimension-gap-2xl:24px;--wpds-dimension-gap-3xl:32px;--wpds-dimension-gap-lg:12px;--wpds-dimension-gap-md:8px;--wpds-dimension-gap-sm:4px;--wpds-dimension-gap-xl:20px;--wpds-dimension-gap-xs:4px;--wpds-dimension-padding-2xl:20px;--wpds-dimension-padding-3xl:24px;--wpds-dimension-padding-lg:12px;--wpds-dimension-padding-md:8px;--wpds-dimension-padding-sm:4px;--wpds-dimension-padding-xl:16px;--wpds-dimension-padding-xs:4px}[data-wpds-theme-provider-id][data-wpds-density=comfortable]{--wpds-dimension-gap-2xl:40px;--wpds-dimension-gap-3xl:48px;--wpds-dimension-gap-lg:20px;--wpds-dimension-gap-md:16px;--wpds-dimension-gap-sm:12px;--wpds-dimension-gap-xl:32px;--wpds-dimension-gap-xs:8px;--wpds-dimension-padding-2xl:32px;--wpds-dimension-padding-3xl:40px;--wpds-dimension-padding-lg:20px;--wpds-dimension-padding-md:16px;--wpds-dimension-padding-sm:12px;--wpds-dimension-padding-xl:24px;--wpds-dimension-padding-xs:8px}[data-wpds-theme-provider-id][data-wpds-density=default]{--wpds-dimension-base:4px;--wpds-dimension-gap-2xl:32px;--wpds-dimension-gap-3xl:40px;--wpds-dimension-gap-lg:16px;--wpds-dimension-gap-md:12px;--wpds-dimension-gap-sm:8px;--wpds-dimension-gap-xl:24px;--wpds-dimension-gap-xs:4px;--wpds-dimension-padding-2xl:24px;--wpds-dimension-padding-3xl:32px;--wpds-dimension-padding-lg:16px;--wpds-dimension-padding-md:12px;--wpds-dimension-padding-sm:8px;--wpds-dimension-padding-xl:20px;--wpds-dimension-padding-xs:4px;--wpds-dimension-surface-width-2xl:960px;--wpds-dimension-surface-width-lg:560px;--wpds-dimension-surface-width-md:400px;--wpds-dimension-surface-width-sm:320px;--wpds-dimension-surface-width-xl:720px;--wpds-dimension-surface-width-xs:240px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){:root{--wpds-border-width-focus:1.5px}}.admin-ui-page{text-wrap:pretty;background-color:var(--wpds-color-bg-surface-neutral-strong,#fff);color:var(--wpds-color-fg-content-neutral,#1e1e1e);display:flex;flex-flow:column;height:100%;position:relative;z-index:1}.admin-ui-page__header{background:var(--wpds-color-bg-surface-neutral-strong,#fff);border-bottom:var(--wpds-border-width-xs,1px) solid var(--wpds-color-stroke-surface-neutral-weak,#e0e0e0);padding:var(--wpds-dimension-padding-md,12px) var(--wpds-dimension-padding-2xl,24px);position:sticky;top:0;z-index:1}.admin-ui-page__header-title{font-family:var(--wpds-font-family-heading,-apple-system,system-ui,\\\"Segoe UI\\\",\\\"Roboto\\\",\\\"Oxygen-Sans\\\",\\\"Ubuntu\\\",\\\"Cantarell\\\",\\\"Helvetica Neue\\\",sans-serif);font-size:var(--wpds-font-size-lg,15px);font-weight:var(--wpds-font-weight-medium,499);line-height:var(--wpds-font-line-height-lg,28px);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-ui-page__sidebar-toggle-slot:empty{display:none}.admin-ui-page__header-subtitle{color:var(--wpds-color-fg-content-neutral-weak,#6d6d6d);font-size:var(--wpds-font-size-md,13px);line-height:var(--wpds-font-line-height-md,24px);margin:0;padding-block-end:var(--wpds-dimension-padding-xs,4px)}.admin-ui-page__content{display:flex;flex-direction:column;flex-grow:1;overflow:auto}.admin-ui-page__content.has-padding{padding:var(--wpds-dimension-padding-lg,16px) var(--wpds-dimension-padding-2xl,24px)}.show-icon-labels .admin-ui-page__header-actions .components-button.has-icon{padding:0 var(--wpds-dimension-padding-xs,4px);width:auto}.show-icon-labels .admin-ui-page__header-actions .components-button.has-icon svg{display:none}.show-icon-labels .admin-ui-page__header-actions .components-button.has-icon:after{content:attr(aria-label);font-size:var(--wpds-font-size-sm,12px)}.admin-ui-breadcrumbs__list{font-family:var(--wpds-font-family-heading,-apple-system,system-ui,\\\"Segoe UI\\\",\\\"Roboto\\\",\\\"Oxygen-Sans\\\",\\\"Ubuntu\\\",\\\"Cantarell\\\",\\\"Helvetica Neue\\\",sans-serif);font-size:var(--wpds-font-size-lg,15px);font-weight:var(--wpds-font-weight-medium,499);gap:0;line-height:var(--wpds-font-line-height-lg,28px);list-style:none;margin:0;min-height:32px;padding:0}.admin-ui-breadcrumbs__list li:not(:last-child):after{content:\\\"/\\\";margin:0 8px}.admin-ui-breadcrumbs__list h1{font-size:inherit;line-height:inherit}@media (min-width:600px){.boot-layout-container .boot-layout{bottom:0;left:0;min-height:calc(100vh - 46px);position:absolute;right:0;top:0}}@media (min-width:782px){.boot-layout-container .boot-layout{min-height:calc(100vh - 32px)}body:has(.boot-layout.has-full-canvas) .boot-layout-container .boot-layout{min-height:100vh}}.boot-layout-container .boot-layout img{height:auto;max-width:100%}.boot-layout .boot-notices__snackbar{bottom:24px;box-sizing:border-box;display:flex;flex-direction:column;left:0;padding-inline:16px;pointer-events:none;position:fixed;right:0}.boot-layout .boot-notices__snackbar .components-snackbar{margin-inline:auto}\"));\n\tdocument.head.appendChild(style);\n}\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='2a741c061f']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"2a741c061f\");\n\tstyle.appendChild(document.createTextNode(\"@media (max-width:782px){*{view-transition-name:none!important}}::view-transition-new(root),::view-transition-old(root){animation-duration:.25s}@media not (prefers-reduced-motion:reduce){.boot-layout__canvas .interface-interface-skeleton__header{view-transition-name:boot--canvas-header}.boot-layout__canvas .interface-interface-skeleton__sidebar{view-transition-name:boot--canvas-sidebar}.boot-layout.has-full-canvas .boot-layout__canvas .boot-site-icon-link,.boot-layout:not(.has-full-canvas) .boot-site-hub .boot-site-icon-link{view-transition-name:boot--site-icon-link}.boot-layout__stage{view-transition-name:boot--stage}.boot-layout__inspector{view-transition-name:boot--inspector}.boot-layout__canvas.is-full-canvas .interface-interface-skeleton__content,.boot-layout__canvas:not(.is-full-canvas){view-transition-name:boot--canvas}@supports (-webkit-hyphens:none) and (not (-moz-appearance:none)){.boot-layout__stage{view-transition-name:boot-safari--stage}.boot-layout__inspector{view-transition-name:boot-safari--inspector}.boot-layout__canvas.is-full-canvas .interface-interface-skeleton__content,.boot-layout__canvas:not(.is-full-canvas){view-transition-name:boot-safari--canvas}}.components-popover:first-of-type{view-transition-name:boot--components-popover}}::view-transition-group(boot--canvas),::view-transition-group(boot--canvas-header),::view-transition-group(boot--canvas-sidebar),::view-transition-group(boot-safari--canvas){z-index:1}::view-transition-group(boot--site-icon-link){z-index:2}::view-transition-new(boot--site-icon-link),::view-transition-old(boot--site-icon-link){animation:none}::view-transition-new(boot-safari--canvas),::view-transition-new(boot-safari--inspector),::view-transition-new(boot-safari--stage),::view-transition-old(boot-safari--canvas),::view-transition-old(boot-safari--inspector),::view-transition-old(boot-safari--stage){width:auto}::view-transition-new(boot--canvas),::view-transition-new(boot--inspector),::view-transition-new(boot--stage),::view-transition-old(boot--canvas),::view-transition-old(boot--inspector),::view-transition-old(boot--stage){background:#fff;border-radius:8px;height:100%;object-fit:none;object-position:left top;overflow:hidden;width:100%}::view-transition-new(boot--canvas),::view-transition-old(boot--canvas){object-position:center top}::view-transition-old(boot--inspector):only-child,::view-transition-old(boot--stage):only-child,::view-transition-old(boot-safari--inspector):only-child,::view-transition-old(boot-safari--stage):only-child{animation-name:zoomOut;will-change:transform,opacity}::view-transition-new(boot--inspector):only-child,::view-transition-new(boot--stage):only-child,::view-transition-new(boot-safari--inspector):only-child,::view-transition-new(boot-safari--stage):only-child{animation-name:zoomIn;will-change:transform,opacity}@keyframes zoomOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes zoomIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}::view-transition-new(boot--canvas):only-child,::view-transition-new(boot-safari--canvas):only-child{animation-name:slideFromRight;will-change:transform}::view-transition-old(boot--canvas):only-child,::view-transition-old(boot-safari--canvas):only-child{animation-name:slideToRight;will-change:transform}@keyframes slideFromRight{0%{transform:translateX(100vw)}to{transform:translateX(0)}}@keyframes slideToRight{0%{transform:translateX(0)}to{transform:translateX(100vw)}}::view-transition-new(boot--canvas-header):only-child{animation-name:slideHeaderFromTop;will-change:transform}::view-transition-old(boot--canvas-header):only-child{animation-name:slideHeaderToTop;will-change:transform}@keyframes slideHeaderFromTop{0%{transform:translateY(-100%)}}@keyframes slideHeaderToTop{to{transform:translateY(-100%)}}::view-transition-new(boot--canvas-sidebar):only-child{animation-name:slideSidebarFromRight;will-change:transform}::view-transition-old(boot--canvas-sidebar):only-child{animation-name:slideSidebarToRight;will-change:transform}@keyframes slideSidebarFromRight{0%{transform:translateX(100%)}}@keyframes slideSidebarToRight{to{transform:translateX(100%)}}\"));\n\tdocument.head.appendChild(style);\n}\n", "/**\n * Internal dependencies\n */\nimport './style.scss';\nimport './view-transitions.scss';\nexport { init, initSinglePage } from './components/app';\nexport { store } from './store';\n"],
"mappings": "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",
"names": ["import_element", "import_data", "import_i18n", "import_element", "init", "React", "React", "React", "result", "_createElement", "import_element", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_element", "Stack", "import_jsx_runtime", "import_jsx_runtime", "import_data", "import_core_data", "routePrivateApis", "import_compose", "import_components", "routePrivateApis", "import_element", "import_i18n", "import_data", "import_components", "import_i18n", "import_core_data", "import_components", "import_jsx_runtime", "coreDataStore", "import_jsx_runtime", "import_data", "import_jsx_runtime", "coreStore", "commandsStore", "HStack", "import_element", "import_data", "import_components", "import_element", "import_components", "routePrivateApis", "import_jsx_runtime", "routePrivateApis", "Item", "import_element", "import_components", "import_primitives", "import_jsx_runtime", "import_jsx_runtime", "HStack", "Item", "import_components", "import_i18n", "import_jsx_runtime", "Item", "HStack", "import_components", "import_data", "import_jsx_runtime", "Item", "HStack", "AnimatePresence", "motion", "import_components", "import_i18n", "import_compose", "import_jsx_runtime", "ANIMATION_DURATION", "AnimatePresence", "motion", "HStack", "Heading", "import_element", "import_data", "routePrivateApis", "useRouter", "routePrivateApis", "import_jsx_runtime", "import_element", "import_data", "import_i18n", "import_core_data", "import_keycodes", "import_editor", "import_components", "import_element", "import_i18n", "import_data", "import_core_data", "coreStore", "editorStore", "keyboardShortcutsStore", "import_jsx_runtime", "coreStore", "import_jsx_runtime", "import_element", "import_components", "import_editor", "import_i18n", "import_jsx_runtime", "import_element", "import_element", "import_components", "import_components", "import_compose", "import_i18n", "import_jsx_runtime", "motion", "import_jsx_runtime", "import_jsx_runtime", "import_element", "import_data", "import_core_data", "import_i18n", "import_html_entities", "routePrivateApis", "useMatches", "routePrivateApis", "coreStore", "import_jsx_runtime", "themePrivateApis", "import_jsx_runtime", "useLocation", "useMatches", "routePrivateApis", "AnimatePresence", "motion", "import_jsx_runtime", "routePrivateApis", "coreStore", "import_notices", "import_components", "routePrivateApis", "import_jsx_runtime", "useMatches", "Outlet", "routePrivateApis", "import_jsx_runtime"]
}