File manager - Edit - /home/gzbnyc5/avenuesny.com/wp-includes/js/imgareaselect/script-modules.tar
Back
block-editor/utils/fit-text-frontend.min.asset.php 0000644 00000000264 15206736335 0016270 0 ustar 00 <?php return array('dependencies' => array(), 'module_dependencies' => array(array('id' => '@wordpress/interactivity', 'import' => 'static')), 'version' => '383c7a8bd24a1f2fd9b9'); block-editor/utils/fit-text-frontend.min.js 0000644 00000002126 15206736335 0014776 0 ustar 00 import{store as H,getElement as w,getContext as b}from"@wordpress/interactivity";function u(e,t){let o=e.scrollHeight>e.clientHeight,i=0,l=2400,g=i,f=window.getComputedStyle(e),p=parseFloat(f.paddingLeft)||0,h=parseFloat(f.paddingRight)||0,c=document.createRange();c.selectNodeContents(e);let r=e,s=e.parentElement;if(s){let n=window.getComputedStyle(s);n?.display==="flex"&&(r=s,p+=parseFloat(n.paddingLeft)||0,h+=parseFloat(n.paddingRight)||0)}let d=r.clientHeight;for(;i<=l;){let n=Math.floor((i+l)/2);t(n);let m=c.getBoundingClientRect().width,z=e.scrollWidth<=r.clientWidth&&m<=r.clientWidth-p-h,S=o||e.scrollHeight<=r.clientHeight||e.scrollHeight<=d;r.clientHeight>d&&(d=r.clientHeight),z&&S?(g=n,i=n+1):l=n-1}return c.detach(),g}function a(e,t){if(!e)return;t(0);let o=u(e,t);return t(o),o}H("core/fit-text",{callbacks:{init(){let e=b(),{ref:t}=w(),o=i=>{i===0?t.style.fontSize="":t.style.fontSize=`${i}px`};if(e.fontSize=a(t,o),window.ResizeObserver&&t.parentElement){let i=new window.ResizeObserver(()=>{e.fontSize=a(t,o)});return i.observe(t.parentElement),i.observe(t),()=>{i&&i.disconnect()}}}}}); block-editor/utils/fit-text-frontend.js 0000644 00000006071 15206736335 0014217 0 ustar 00 // packages/block-editor/build-module/utils/fit-text-frontend.mjs import { store, getElement, getContext } from "@wordpress/interactivity"; // packages/block-editor/build-module/utils/fit-text-utils.mjs function findOptimalFontSize(textElement, applyFontSize) { const alreadyHasScrollableHeight = textElement.scrollHeight > textElement.clientHeight; let minSize = 0; let maxSize = 2400; let bestSize = minSize; const computedStyle = window.getComputedStyle(textElement); let paddingLeft = parseFloat(computedStyle.paddingLeft) || 0; let paddingRight = parseFloat(computedStyle.paddingRight) || 0; const range = document.createRange(); range.selectNodeContents(textElement); let referenceElement = textElement; const parentElement = textElement.parentElement; if (parentElement) { const parentElementComputedStyle = window.getComputedStyle(parentElement); if (parentElementComputedStyle?.display === "flex") { referenceElement = parentElement; paddingLeft += parseFloat(parentElementComputedStyle.paddingLeft) || 0; paddingRight += parseFloat(parentElementComputedStyle.paddingRight) || 0; } } let maxclientHeight = referenceElement.clientHeight; while (minSize <= maxSize) { const midSize = Math.floor((minSize + maxSize) / 2); applyFontSize(midSize); const rect = range.getBoundingClientRect(); const textWidth = rect.width; const fitsWidth = textElement.scrollWidth <= referenceElement.clientWidth && textWidth <= referenceElement.clientWidth - paddingLeft - paddingRight; const fitsHeight = alreadyHasScrollableHeight || textElement.scrollHeight <= referenceElement.clientHeight || textElement.scrollHeight <= maxclientHeight; if (referenceElement.clientHeight > maxclientHeight) { maxclientHeight = referenceElement.clientHeight; } if (fitsWidth && fitsHeight) { bestSize = midSize; minSize = midSize + 1; } else { maxSize = midSize - 1; } } range.detach(); return bestSize; } function optimizeFitText(textElement, applyFontSize) { if (!textElement) { return; } applyFontSize(0); const optimalSize = findOptimalFontSize(textElement, applyFontSize); applyFontSize(optimalSize); return optimalSize; } // packages/block-editor/build-module/utils/fit-text-frontend.mjs store("core/fit-text", { callbacks: { init() { const context = getContext(); const { ref } = getElement(); const applyFontSize = (fontSize) => { if (fontSize === 0) { ref.style.fontSize = ""; } else { ref.style.fontSize = `${fontSize}px`; } }; context.fontSize = optimizeFitText(ref, applyFontSize); if (window.ResizeObserver && ref.parentElement) { const resizeObserver = new window.ResizeObserver(() => { context.fontSize = optimizeFitText(ref, applyFontSize); }); resizeObserver.observe(ref.parentElement); resizeObserver.observe(ref); return () => { if (resizeObserver) { resizeObserver.disconnect(); } }; } } } }); block-library/form/view.js 0000644 00000002652 15206736335 0011572 0 ustar 00 // packages/block-library/build-module/form/view.mjs var formSettings; try { formSettings = JSON.parse( document.getElementById( "wp-script-module-data-@wordpress/block-library/form/view" )?.textContent ); } catch { } document.querySelectorAll("form.wp-block-form").forEach(function(form) { if (!formSettings || !form.action || !form.action.startsWith("mailto:")) { return; } const redirectNotification = (status) => { const urlParams = new URLSearchParams(window.location.search); urlParams.append("wp-form-result", status); window.location.search = urlParams.toString(); }; form.addEventListener("submit", async function(event) { event.preventDefault(); const formData = Object.fromEntries(new FormData(form).entries()); formData.formAction = form.action; formData._ajax_nonce = formSettings.nonce; formData.action = formSettings.action; formData._wp_http_referer = window.location.href; formData.formAction = form.action; try { const response = await fetch(formSettings.ajaxUrl, { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams(formData).toString() }); if (response.ok) { redirectNotification("success"); } else { redirectNotification("error"); } } catch (error) { redirectNotification("error"); } }); }); block-library/form/view.min.asset.php 0000644 00000000123 15206736335 0013634 0 ustar 00 <?php return array('dependencies' => array(), 'version' => '5542f8ad251fe43ef09e'); block-library/form/view.min.js 0000644 00000001457 15206736335 0012356 0 ustar 00 var o;try{o=JSON.parse(document.getElementById("wp-script-module-data-@wordpress/block-library/form/view")?.textContent)}catch{}document.querySelectorAll("form.wp-block-form").forEach(function(e){if(!o||!e.action||!e.action.startsWith("mailto:"))return;let r=n=>{let t=new URLSearchParams(window.location.search);t.append("wp-form-result",n),window.location.search=t.toString()};e.addEventListener("submit",async function(n){n.preventDefault();let t=Object.fromEntries(new FormData(e).entries());t.formAction=e.action,t._ajax_nonce=o.nonce,t.action=o.action,t._wp_http_referer=window.location.href,t.formAction=e.action;try{(await fetch(o.ajaxUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()})).ok?r("success"):r("error")}catch{r("error")}})}); block-library/accordion/view.js 0000644 00000007006 15206736335 0012566 0 ustar 00 // packages/block-library/build-module/accordion/view.mjs import { store, getContext, withSyncEvent } from "@wordpress/interactivity"; var hashHandled = false; var { actions } = store( "core/accordion", { state: { get isOpen() { const { id, accordionItems } = getContext(); const accordionItem = accordionItems.find( (item) => item.id === id ); return accordionItem ? accordionItem.isOpen : false; } }, actions: { toggle: () => { const context = getContext(); const { id, autoclose, accordionItems } = context; const accordionItem = accordionItems.find( (item) => item.id === id ); if (autoclose) { accordionItems.forEach((item) => { item.isOpen = item.id === id ? !accordionItem.isOpen : false; }); } else { accordionItem.isOpen = !accordionItem.isOpen; } }, handleKeyDown: withSyncEvent((event) => { if (event.key !== "ArrowUp" && event.key !== "ArrowDown" && event.key !== "Home" && event.key !== "End") { return; } event.preventDefault(); const context = getContext(); const { id, accordionItems } = context; const currentIndex = accordionItems.findIndex( (item) => item.id === id ); let nextIndex; switch (event.key) { case "ArrowUp": nextIndex = Math.max(0, currentIndex - 1); break; case "ArrowDown": nextIndex = Math.min( currentIndex + 1, accordionItems.length - 1 ); break; case "Home": nextIndex = 0; break; case "End": nextIndex = accordionItems.length - 1; break; } const nextId = accordionItems[nextIndex].id; const nextButton = document.getElementById(nextId); if (nextButton) { nextButton.focus(); } }), openPanelByHash: () => { if (hashHandled || !window.location?.hash?.length) { return; } const context = getContext(); const { id, accordionItems, autoclose } = context; const hash = decodeURIComponent( window.location.hash.slice(1) ); const targetElement = window.document.getElementById(hash); if (!targetElement) { return; } const panelElement = window.document.querySelector( '.wp-block-accordion-panel[aria-labelledby="' + id + '"]' ); if (!panelElement || !panelElement.contains(targetElement)) { return; } hashHandled = true; if (autoclose) { accordionItems.forEach((item) => { item.isOpen = item.id === id; }); } else { const targetItem = accordionItems.find( (item) => item.id === id ); if (targetItem) { targetItem.isOpen = true; } } window.setTimeout(() => { targetElement.scrollIntoView(); }, 0); } }, callbacks: { initAccordionItems: () => { const context = getContext(); const { id, openByDefault, accordionItems } = context; accordionItems.push({ id, isOpen: openByDefault }); actions.openPanelByHash(); }, hashChange: () => { hashHandled = false; actions.openPanelByHash(); } } }, { lock: true } ); block-library/accordion/view.min.asset.php 0000644 00000000264 15206736335 0014640 0 ustar 00 <?php return array('dependencies' => array(), 'module_dependencies' => array(array('id' => '@wordpress/interactivity', 'import' => 'static')), 'version' => '2af01b43d30739c3fb8d'); block-library/accordion/view.min.js 0000644 00000002631 15206736335 0013347 0 ustar 00 import{store as f,getContext as i,withSyncEvent as m}from"@wordpress/interactivity";var l=!1,{actions:h}=f("core/accordion",{state:{get isOpen(){let{id:e,accordionItems:t}=i(),c=t.find(o=>o.id===e);return c?c.isOpen:!1}},actions:{toggle:()=>{let e=i(),{id:t,autoclose:c,accordionItems:o}=e,s=o.find(n=>n.id===t);c?o.forEach(n=>{n.isOpen=n.id===t?!s.isOpen:!1}):s.isOpen=!s.isOpen},handleKeyDown:m(e=>{if(e.key!=="ArrowUp"&&e.key!=="ArrowDown"&&e.key!=="Home"&&e.key!=="End")return;e.preventDefault();let t=i(),{id:c,accordionItems:o}=t,s=o.findIndex(d=>d.id===c),n;switch(e.key){case"ArrowUp":n=Math.max(0,s-1);break;case"ArrowDown":n=Math.min(s+1,o.length-1);break;case"Home":n=0;break;case"End":n=o.length-1;break}let r=o[n].id,a=document.getElementById(r);a&&a.focus()}),openPanelByHash:()=>{if(l||!window.location?.hash?.length)return;let e=i(),{id:t,accordionItems:c,autoclose:o}=e,s=decodeURIComponent(window.location.hash.slice(1)),n=window.document.getElementById(s);if(!n)return;let r=window.document.querySelector('.wp-block-accordion-panel[aria-labelledby="'+t+'"]');if(!(!r||!r.contains(n))){if(l=!0,o)c.forEach(a=>{a.isOpen=a.id===t});else{let a=c.find(d=>d.id===t);a&&(a.isOpen=!0)}window.setTimeout(()=>{n.scrollIntoView()},0)}}},callbacks:{initAccordionItems:()=>{let e=i(),{id:t,openByDefault:c,accordionItems:o}=e;o.push({id:t,isOpen:c}),h.openPanelByHash()},hashChange:()=>{l=!1,h.openPanelByHash()}}},{lock:!0}); block-library/tabs/view.js 0000644 00000015550 15206736335 0011561 0 ustar 00 // packages/block-library/build-module/tabs/view.mjs import { store, getContext, getElement, withSyncEvent } from "@wordpress/interactivity"; function createReadOnlyProxy(obj) { const arrayMutationMethods = /* @__PURE__ */ new Set([ "push", "pop", "shift", "unshift", "splice", "sort", "reverse", "copyWithin", "fill" ]); return new Proxy(obj, { get(target, prop) { if (Array.isArray(target) && arrayMutationMethods.has(prop)) { return () => { }; } const value = target[prop]; if (typeof value === "object" && value !== null) { return createReadOnlyProxy(value); } return value; }, set() { return false; }, deleteProperty() { return false; } }); } var { actions: privateActions, state: privateState } = store( "core/tabs/private", { state: { /** * Gets a contextually aware list of tabs for the current tabs block. * * @type {Array} */ get tabsList() { const context = getContext(); const tabsId = context?.tabsId; const tabsList = privateState[tabsId]; return tabsList; }, /** * Gets the index of the active tab element whether it * is a tab label or tab panel. * * @type {number|null} */ get tabIndex() { const { attributes } = getElement(); const tabId = attributes?.id?.replace("tab__", "") || null; if (!tabId) { return null; } const { tabsList } = privateState; const tabIndex = tabsList.findIndex((t) => t.id === tabId); return tabIndex; }, /** * Whether the tab panel or tab label is the active tab. * * @type {boolean} */ get isActiveTab() { const { activeTabIndex } = getContext(); const { tabIndex } = privateState; return activeTabIndex === tabIndex; }, /** * The value of the tabindex attribute for tab buttons. * Only the active tab should be in the tab sequence. * * @type {number} */ get tabIndexAttribute() { return privateState.isActiveTab ? 0 : -1; } }, actions: { /** * Handles the keydown events for the tab label and tabs controller. * * @param {KeyboardEvent} event The keydown event. */ handleTabKeyDown: withSyncEvent((event) => { const context = getContext(); const { isVertical } = context; const { tabIndex } = privateState; if (tabIndex === null) { return; } if (event.key === "ArrowRight" && !isVertical) { event.preventDefault(); privateActions.moveFocus(tabIndex + 1); } else if (event.key === "ArrowLeft" && !isVertical) { event.preventDefault(); privateActions.moveFocus(tabIndex - 1); } else if (event.key === "ArrowDown" && isVertical) { event.preventDefault(); privateActions.moveFocus(tabIndex + 1); } else if (event.key === "ArrowUp" && isVertical) { event.preventDefault(); privateActions.moveFocus(tabIndex - 1); } }), /** * Handles the click event for the tab label. * * @param {MouseEvent} event The click event. */ handleTabClick: withSyncEvent((event) => { event.preventDefault(); const { tabIndex } = privateState; if (tabIndex !== null) { privateActions.setActiveTab(tabIndex); } }), /** * Moves focus to a specific tab without activating it. * * @param {number} tabIndex The index to move focus to. */ moveFocus: (tabIndex) => { const { tabsList } = privateState; if (!tabsList || tabsList.length === 0) { return; } let newIndex = tabIndex; if (newIndex < 0) { newIndex = tabsList.length - 1; } else if (newIndex >= tabsList.length) { newIndex = 0; } const tabId = tabsList[newIndex].id; const tabElement = document.getElementById("tab__" + tabId); if (tabElement) { tabElement.focus(); } }, /** * Sets the active tab index (internal implementation). * * @param {number} tabIndex The index of the active tab. * @param {boolean} scrollToTab Whether to scroll to the tab element. */ setActiveTab: (tabIndex, scrollToTab = false) => { const { tabsList } = privateState; if (!tabsList || tabsList.length === 0) { return; } let newIndex = tabIndex; if (newIndex < 0) { newIndex = 0; } else if (newIndex >= tabsList.length) { newIndex = tabsList.length - 1; } const context = getContext(); context.activeTabIndex = newIndex; if (scrollToTab) { const tabId = tabsList[newIndex].id; const tabElement = document.getElementById(tabId); if (tabElement) { setTimeout(() => { tabElement.scrollIntoView({ behavior: "smooth" }); }, 100); } } } }, callbacks: { /** * When the tabs are initialized, we need to check if there is a hash in the url and if so if it exists in the current tabsList, set the active tab to that index. * */ onTabsInit: () => { const { tabsList } = privateState; if (tabsList.length === 0) { return; } const { hash } = window.location; const tabId = hash.replace("#", ""); const tabIndex = tabsList.findIndex((t) => t.id === tabId); if (tabIndex >= 0) { privateActions.setActiveTab(tabIndex, true); } } } }, { lock: true } ); store("core/tabs", { state: { /** * Gets a contextually aware list of tabs for the current tabs block. * Public API for third-party access. * * @type {Array} */ get tabsList() { return createReadOnlyProxy(privateState.tabsList); }, /** * Gets the index of the active tab element whether it * is a tab label or tab panel. * * @type {number|null} */ get tabIndex() { return privateState.tabIndex; }, /** * Whether the tab panel or tab label is the active tab. * * @type {boolean} */ get isActiveTab() { return privateState.isActiveTab; } }, actions: { /** * Sets the active tab index. * Public API for third-party programmatic tab activation. * * @param {number} tabIndex The index of the active tab. * @param {boolean} scrollToTab Whether to scroll to the tab element. */ setActiveTab: (tabIndex, scrollToTab = false) => { privateActions.setActiveTab(tabIndex, scrollToTab); } } }); block-library/tabs/view.min.asset.php 0000644 00000000264 15206736335 0013630 0 ustar 00 <?php return array('dependencies' => array(), 'module_dependencies' => array(array('id' => '@wordpress/interactivity', 'import' => 'static')), 'version' => '1f60dd5e3fa56c6b2e2e'); block-library/tabs/view.min.js 0000644 00000003660 15206736335 0012342 0 ustar 00 import{store as b,getContext as r,getElement as f,withSyncEvent as l}from"@wordpress/interactivity";function u(t){let e=new Set(["push","pop","shift","unshift","splice","sort","reverse","copyWithin","fill"]);return new Proxy(t,{get(n,s){if(Array.isArray(n)&&e.has(s))return()=>{};let a=n[s];return typeof a=="object"&&a!==null?u(a):a},set(){return!1},deleteProperty(){return!1}})}var{actions:o,state:i}=b("core/tabs/private",{state:{get tabsList(){let e=r()?.tabsId;return i[e]},get tabIndex(){let{attributes:t}=f(),e=t?.id?.replace("tab__","")||null;if(!e)return null;let{tabsList:n}=i;return n.findIndex(a=>a.id===e)},get isActiveTab(){let{activeTabIndex:t}=r(),{tabIndex:e}=i;return t===e},get tabIndexAttribute(){return i.isActiveTab?0:-1}},actions:{handleTabKeyDown:l(t=>{let e=r(),{isVertical:n}=e,{tabIndex:s}=i;s!==null&&(t.key==="ArrowRight"&&!n?(t.preventDefault(),o.moveFocus(s+1)):t.key==="ArrowLeft"&&!n?(t.preventDefault(),o.moveFocus(s-1)):t.key==="ArrowDown"&&n?(t.preventDefault(),o.moveFocus(s+1)):t.key==="ArrowUp"&&n&&(t.preventDefault(),o.moveFocus(s-1)))}),handleTabClick:l(t=>{t.preventDefault();let{tabIndex:e}=i;e!==null&&o.setActiveTab(e)}),moveFocus:t=>{let{tabsList:e}=i;if(!e||e.length===0)return;let n=t;n<0?n=e.length-1:n>=e.length&&(n=0);let s=e[n].id,a=document.getElementById("tab__"+s);a&&a.focus()},setActiveTab:(t,e=!1)=>{let{tabsList:n}=i;if(!n||n.length===0)return;let s=t;s<0?s=0:s>=n.length&&(s=n.length-1);let a=r();if(a.activeTabIndex=s,e){let d=n[s].id,c=document.getElementById(d);c&&setTimeout(()=>{c.scrollIntoView({behavior:"smooth"})},100)}}},callbacks:{onTabsInit:()=>{let{tabsList:t}=i;if(t.length===0)return;let{hash:e}=window.location,n=e.replace("#",""),s=t.findIndex(a=>a.id===n);s>=0&&o.setActiveTab(s,!0)}}},{lock:!0});b("core/tabs",{state:{get tabsList(){return u(i.tabsList)},get tabIndex(){return i.tabIndex},get isActiveTab(){return i.isActiveTab}},actions:{setActiveTab:(t,e=!1)=>{o.setActiveTab(t,e)}}}); block-library/playlist/view.js 0000644 00000003242 15206736335 0012464 0 ustar 00 // packages/block-library/build-module/playlist/view.mjs import { store, getContext, getElement } from "@wordpress/interactivity"; store( "core/playlist", { state: { playlists: {}, get currentTrack() { const { currentId, playlistId } = getContext(); if (!currentId || !playlistId) { return {}; } const playlist = this.playlists[playlistId]; if (!playlist) { return {}; } return playlist.tracks[currentId] || {}; }, get isCurrentTrack() { const { currentId, uniqueId } = getContext(); return currentId === uniqueId; } }, actions: { changeTrack() { const context = getContext(); context.currentId = context.uniqueId; context.isPlaying = true; }, isPlaying() { const context = getContext(); context.isPlaying = true; }, isPaused() { const context = getContext(); context.isPlaying = false; }, nextSong() { const context = getContext(); const currentIndex = context.tracks.findIndex( (uniqueId) => uniqueId === context.currentId ); const nextTrack = context.tracks[currentIndex + 1]; if (nextTrack) { context.currentId = nextTrack; const { ref } = getElement(); setTimeout(() => { ref.play(); }, 1e3); } } }, callbacks: { autoPlay() { const context = getContext(); const { ref } = getElement(); if (context.currentId && context.isPlaying) { ref.play(); } } } }, { lock: true } ); block-library/playlist/view.min.asset.php 0000644 00000000264 15206736335 0014540 0 ustar 00 <?php return array('dependencies' => array(), 'module_dependencies' => array(array('id' => '@wordpress/interactivity', 'import' => 'static')), 'version' => '99f747d731f80246db11'); block-library/playlist/view.min.js 0000644 00000001275 15206736335 0013252 0 ustar 00 import{store as a,getContext as e,getElement as s}from"@wordpress/interactivity";a("core/playlist",{state:{playlists:{},get currentTrack(){let{currentId:t,playlistId:n}=e();if(!t||!n)return{};let r=this.playlists[n];return r?r.tracks[t]||{}:{}},get isCurrentTrack(){let{currentId:t,uniqueId:n}=e();return t===n}},actions:{changeTrack(){let t=e();t.currentId=t.uniqueId,t.isPlaying=!0},isPlaying(){let t=e();t.isPlaying=!0},isPaused(){let t=e();t.isPlaying=!1},nextSong(){let t=e(),n=t.tracks.findIndex(c=>c===t.currentId),r=t.tracks[n+1];if(r){t.currentId=r;let{ref:c}=s();setTimeout(()=>{c.play()},1e3)}}},callbacks:{autoPlay(){let t=e(),{ref:n}=s();t.currentId&&t.isPlaying&&n.play()}}},{lock:!0}); block-library/navigation/view.js 0000644 00000013430 15206736335 0012762 0 ustar 00 // packages/block-library/build-module/navigation/view.mjs import { store, getContext, getElement, withSyncEvent } from "@wordpress/interactivity"; var focusableSelectors = [ "a[href]", 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])', "select:not([disabled]):not([aria-hidden])", "textarea:not([disabled]):not([aria-hidden])", "button:not([disabled]):not([aria-hidden])", "[contenteditable]", '[tabindex]:not([tabindex^="-"])' ]; function getFocusableElements(ref) { const focusableElements = ref.querySelectorAll(focusableSelectors); return Array.from(focusableElements).filter((element) => { if (typeof element.checkVisibility === "function") { return element.checkVisibility({ checkOpacity: false, checkVisibilityCSS: true }); } return element.offsetParent !== null; }); } document.addEventListener("click", () => { }); var { state, actions } = store( "core/navigation", { state: { get roleAttribute() { const ctx = getContext(); return ctx.type === "overlay" && state.isMenuOpen ? "dialog" : null; }, get ariaModal() { const ctx = getContext(); return ctx.type === "overlay" && state.isMenuOpen ? "true" : null; }, get ariaLabel() { const ctx = getContext(); return ctx.type === "overlay" && state.isMenuOpen ? ctx.ariaLabel : null; }, get isMenuOpen() { return Object.values(state.menuOpenedBy).filter(Boolean).length > 0; }, get menuOpenedBy() { const ctx = getContext(); return ctx.type === "overlay" ? ctx.overlayOpenedBy : ctx.submenuOpenedBy; } }, actions: { openMenuOnHover(event) { if (event?.pointerType === "touch") { return; } const { type, overlayOpenedBy } = getContext(); if (type === "submenu" && // Only open on hover if the overlay is closed. Object.values(overlayOpenedBy || {}).filter(Boolean).length === 0) { actions.openMenu("hover"); } }, closeMenuOnHover(event) { if (event?.pointerType === "touch") { return; } const { type, overlayOpenedBy } = getContext(); if (type === "submenu" && // Only close on hover if the overlay is closed. Object.values(overlayOpenedBy || {}).filter(Boolean).length === 0) { actions.closeMenu("hover"); } }, openMenuOnClick() { const ctx = getContext(); const { ref } = getElement(); ctx.previousFocus = ref; actions.openMenu("click"); }, closeMenuOnClick() { actions.closeMenu("click"); actions.closeMenu("focus"); }, openMenuOnFocus() { actions.openMenu("focus"); }, toggleMenuOnClick() { const ctx = getContext(); const { ref } = getElement(); if (window.document.activeElement !== ref) { ref.focus(); } const { menuOpenedBy } = state; if (menuOpenedBy.click || menuOpenedBy.focus) { actions.closeMenu("click"); actions.closeMenu("focus"); actions.closeMenu("hover"); } else { ctx.previousFocus = ref; actions.openMenu("click"); } }, handleMenuKeydown: withSyncEvent((event) => { const { type, firstFocusableElement, lastFocusableElement } = getContext(); if (state.menuOpenedBy.click) { if (event.key === "Escape") { event.stopPropagation(); actions.closeMenu("click"); actions.closeMenu("focus"); return; } if (type === "overlay" && event.key === "Tab") { if (event.shiftKey && window.document.activeElement === firstFocusableElement) { event.preventDefault(); lastFocusableElement.focus(); } else if (!event.shiftKey && window.document.activeElement === lastFocusableElement) { event.preventDefault(); firstFocusableElement.focus(); } } } }), handleMenuFocusout: withSyncEvent((event) => { const { modal, type } = getContext(); if (event.relatedTarget === null || !modal?.contains(event.relatedTarget) && event.target !== window.document.activeElement && type === "submenu") { actions.closeMenu("click"); actions.closeMenu("focus"); } }), openMenu(menuOpenedOn = "click") { const { type } = getContext(); state.menuOpenedBy[menuOpenedOn] = true; if (type === "overlay") { document.documentElement.classList.add("has-modal-open"); } }, closeMenu(menuClosedOn = "click") { const ctx = getContext(); state.menuOpenedBy[menuClosedOn] = false; if (!state.isMenuOpen) { if (ctx.modal?.contains(window.document.activeElement)) { ctx.previousFocus?.focus(); } ctx.modal = null; ctx.previousFocus = null; if (ctx.type === "overlay") { document.documentElement.classList.remove( "has-modal-open" ); } } } }, callbacks: { initMenu() { const ctx = getContext(); const { ref } = getElement(); if (state.isMenuOpen) { const focusableElements = getFocusableElements(ref); ctx.modal = ref; ctx.firstFocusableElement = focusableElements[0]; ctx.lastFocusableElement = focusableElements[focusableElements.length - 1]; } }, focusFirstElement() { const { ref } = getElement(); if (state.isMenuOpen) { const focusableElements = getFocusableElements(ref); focusableElements?.[0]?.focus(); } } } }, { lock: true } ); block-library/navigation/view.min.asset.php 0000644 00000000264 15206736335 0015036 0 ustar 00 <?php return array('dependencies' => array(), 'module_dependencies' => array(array('id' => '@wordpress/interactivity', 'import' => 'static')), 'version' => '96a846e1d7b789c39ab9'); block-library/navigation/view.min.js 0000644 00000005755 15206736335 0013557 0 ustar 00 import{store as r,getContext as c,getElement as s,withSyncEvent as i}from"@wordpress/interactivity";var d=["a[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden])","[contenteditable]",'[tabindex]:not([tabindex^="-"])'];function a(e){let n=e.querySelectorAll(d);return Array.from(n).filter(t=>typeof t.checkVisibility=="function"?t.checkVisibility({checkOpacity:!1,checkVisibilityCSS:!0}):t.offsetParent!==null)}document.addEventListener("click",()=>{});var{state:l,actions:o}=r("core/navigation",{state:{get roleAttribute(){return c().type==="overlay"&&l.isMenuOpen?"dialog":null},get ariaModal(){return c().type==="overlay"&&l.isMenuOpen?"true":null},get ariaLabel(){let e=c();return e.type==="overlay"&&l.isMenuOpen?e.ariaLabel:null},get isMenuOpen(){return Object.values(l.menuOpenedBy).filter(Boolean).length>0},get menuOpenedBy(){let e=c();return e.type==="overlay"?e.overlayOpenedBy:e.submenuOpenedBy}},actions:{openMenuOnHover(e){if(e?.pointerType==="touch")return;let{type:n,overlayOpenedBy:t}=c();n==="submenu"&&Object.values(t||{}).filter(Boolean).length===0&&o.openMenu("hover")},closeMenuOnHover(e){if(e?.pointerType==="touch")return;let{type:n,overlayOpenedBy:t}=c();n==="submenu"&&Object.values(t||{}).filter(Boolean).length===0&&o.closeMenu("hover")},openMenuOnClick(){let e=c(),{ref:n}=s();e.previousFocus=n,o.openMenu("click")},closeMenuOnClick(){o.closeMenu("click"),o.closeMenu("focus")},openMenuOnFocus(){o.openMenu("focus")},toggleMenuOnClick(){let e=c(),{ref:n}=s();window.document.activeElement!==n&&n.focus();let{menuOpenedBy:t}=l;t.click||t.focus?(o.closeMenu("click"),o.closeMenu("focus"),o.closeMenu("hover")):(e.previousFocus=n,o.openMenu("click"))},handleMenuKeydown:i(e=>{let{type:n,firstFocusableElement:t,lastFocusableElement:u}=c();if(l.menuOpenedBy.click){if(e.key==="Escape"){e.stopPropagation(),o.closeMenu("click"),o.closeMenu("focus");return}n==="overlay"&&e.key==="Tab"&&(e.shiftKey&&window.document.activeElement===t?(e.preventDefault(),u.focus()):!e.shiftKey&&window.document.activeElement===u&&(e.preventDefault(),t.focus()))}}),handleMenuFocusout:i(e=>{let{modal:n,type:t}=c();(e.relatedTarget===null||!n?.contains(e.relatedTarget)&&e.target!==window.document.activeElement&&t==="submenu")&&(o.closeMenu("click"),o.closeMenu("focus"))}),openMenu(e="click"){let{type:n}=c();l.menuOpenedBy[e]=!0,n==="overlay"&&document.documentElement.classList.add("has-modal-open")},closeMenu(e="click"){let n=c();l.menuOpenedBy[e]=!1,l.isMenuOpen||(n.modal?.contains(window.document.activeElement)&&n.previousFocus?.focus(),n.modal=null,n.previousFocus=null,n.type==="overlay"&&document.documentElement.classList.remove("has-modal-open"))}},callbacks:{initMenu(){let e=c(),{ref:n}=s();if(l.isMenuOpen){let t=a(n);e.modal=n,e.firstFocusableElement=t[0],e.lastFocusableElement=t[t.length-1]}},focusFirstElement(){let{ref:e}=s();l.isMenuOpen&&a(e)?.[0]?.focus()}}},{lock:!0}); block-library/search/view.js 0000644 00000003501 15206736335 0012066 0 ustar 00 // packages/block-library/build-module/search/view.mjs import { store, getContext, getElement, withSyncEvent } from "@wordpress/interactivity"; var { actions } = store( "core/search", { state: { get ariaLabel() { const { isSearchInputVisible, ariaLabelCollapsed, ariaLabelExpanded } = getContext(); return isSearchInputVisible ? ariaLabelExpanded : ariaLabelCollapsed; }, get ariaControls() { const { isSearchInputVisible, inputId } = getContext(); return isSearchInputVisible ? null : inputId; }, get type() { const { isSearchInputVisible } = getContext(); return isSearchInputVisible ? "submit" : "button"; }, get tabindex() { const { isSearchInputVisible } = getContext(); return isSearchInputVisible ? "0" : "-1"; } }, actions: { openSearchInput: withSyncEvent((event) => { const ctx = getContext(); const { ref } = getElement(); if (!ctx.isSearchInputVisible) { event.preventDefault(); ctx.isSearchInputVisible = true; ref.parentElement.querySelector("input").focus(); } }), closeSearchInput() { const ctx = getContext(); ctx.isSearchInputVisible = false; }, handleSearchKeydown: withSyncEvent((event) => { const { ref } = getElement(); if (event?.key === "Escape") { actions.closeSearchInput(); ref.querySelector("button").focus(); } }), handleSearchFocusout: withSyncEvent((event) => { const { ref } = getElement(); if (!ref.contains(event.relatedTarget) && event.target !== window.document.activeElement) { actions.closeSearchInput(); } }) } }, { lock: true } ); block-library/search/view.min.asset.php 0000644 00000000264 15206736335 0014144 0 ustar 00 <?php return array('dependencies' => array(), 'module_dependencies' => array(array('id' => '@wordpress/interactivity', 'import' => 'static')), 'version' => '38bd0e230eaffa354d2a'); block-library/search/view.min.js 0000644 00000001675 15206736335 0012662 0 ustar 00 import{store as i,getContext as n,getElement as a,withSyncEvent as c}from"@wordpress/interactivity";var{actions:s}=i("core/search",{state:{get ariaLabel(){let{isSearchInputVisible:e,ariaLabelCollapsed:t,ariaLabelExpanded:r}=n();return e?r:t},get ariaControls(){let{isSearchInputVisible:e,inputId:t}=n();return e?null:t},get type(){let{isSearchInputVisible:e}=n();return e?"submit":"button"},get tabindex(){let{isSearchInputVisible:e}=n();return e?"0":"-1"}},actions:{openSearchInput:c(e=>{let t=n(),{ref:r}=a();t.isSearchInputVisible||(e.preventDefault(),t.isSearchInputVisible=!0,r.parentElement.querySelector("input").focus())}),closeSearchInput(){let e=n();e.isSearchInputVisible=!1},handleSearchKeydown:c(e=>{let{ref:t}=a();e?.key==="Escape"&&(s.closeSearchInput(),t.querySelector("button").focus())}),handleSearchFocusout:c(e=>{let{ref:t}=a();!t.contains(e.relatedTarget)&&e.target!==window.document.activeElement&&s.closeSearchInput()})}},{lock:!0}); block-library/query/view.js 0000644 00000003352 15206736335 0011772 0 ustar 00 // packages/block-library/build-module/query/view.mjs import { store, getContext, getElement, withSyncEvent } from "@wordpress/interactivity"; var isValidLink = (ref) => ref && ref instanceof window.HTMLAnchorElement && ref.href && (!ref.target || ref.target === "_self") && ref.origin === window.location.origin; var isValidEvent = (event) => event.button === 0 && // Left clicks only. !event.metaKey && // Open in new tab (Mac). !event.ctrlKey && // Open in new tab (Windows). !event.altKey && // Download. !event.shiftKey && !event.defaultPrevented; store( "core/query", { actions: { navigate: withSyncEvent(function* (event) { const ctx = getContext(); const { ref } = getElement(); const queryRef = ref.closest( ".wp-block-query[data-wp-router-region]" ); if (isValidLink(ref) && isValidEvent(event)) { event.preventDefault(); const { actions } = yield import("@wordpress/interactivity-router"); yield actions.navigate(ref.href); ctx.url = ref.href; const firstAnchor = `.wp-block-post-template a[href]`; queryRef.querySelector(firstAnchor)?.focus(); } }), *prefetch() { const { ref } = getElement(); if (isValidLink(ref)) { const { actions } = yield import("@wordpress/interactivity-router"); yield actions.prefetch(ref.href); } } }, callbacks: { *prefetch() { const { url } = getContext(); const { ref } = getElement(); if (url && isValidLink(ref)) { const { actions } = yield import("@wordpress/interactivity-router"); yield actions.prefetch(ref.href); } } } }, { lock: true } ); block-library/query/view.min.asset.php 0000644 00000000375 15206736335 0014047 0 ustar 00 <?php return array('dependencies' => array(), 'module_dependencies' => array(array('id' => '@wordpress/interactivity', 'import' => 'static'), array('id' => '@wordpress/interactivity-router', 'import' => 'dynamic')), 'version' => '7a4ec5bfb61a7137cf4b'); block-library/query/view.min.js 0000644 00000001641 15206736335 0012553 0 ustar 00 import{store as a,getContext as c,getElement as r,withSyncEvent as l}from"@wordpress/interactivity";var i=t=>t&&t instanceof window.HTMLAnchorElement&&t.href&&(!t.target||t.target==="_self")&&t.origin===window.location.origin,f=t=>t.button===0&&!t.metaKey&&!t.ctrlKey&&!t.altKey&&!t.shiftKey&&!t.defaultPrevented;a("core/query",{actions:{navigate:l(function*(t){let e=c(),{ref:o}=r(),n=o.closest(".wp-block-query[data-wp-router-region]");if(i(o)&&f(t)){t.preventDefault();let{actions:s}=yield import("@wordpress/interactivity-router");yield s.navigate(o.href),e.url=o.href,n.querySelector(".wp-block-post-template a[href]")?.focus()}}),*prefetch(){let{ref:t}=r();if(i(t)){let{actions:e}=yield import("@wordpress/interactivity-router");yield e.prefetch(t.href)}}},callbacks:{*prefetch(){let{url:t}=c(),{ref:e}=r();if(t&&i(e)){let{actions:o}=yield import("@wordpress/interactivity-router");yield o.prefetch(e.href)}}}},{lock:!0}); block-library/image/view.js 0000644 00000041457 15206736335 0011717 0 ustar 00 // packages/block-library/build-module/image/view.mjs import { store, getContext, getElement, getConfig, withSyncEvent, withScope } from "@wordpress/interactivity"; // packages/block-library/build-module/image/constants.mjs var IMAGE_PRELOAD_DELAY = 200; // packages/block-library/build-module/image/view.mjs var isTouching = false; var lastTouchTime = 0; var touchStartEvent = { startX: 0, startY: 0, startTime: 0 }; var focusableSelectors = [ ".wp-lightbox-close-button", ".wp-lightbox-navigation-button" ]; function getImageSrc({ uploadedSrc }) { return uploadedSrc || "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="; } function getImageSrcset({ lightboxSrcset }) { return lightboxSrcset || ""; } var { state, actions, callbacks } = store( "core/image", { state: { selectedImageId: null, selectedGalleryId: null, preloadTimers: /* @__PURE__ */ new Map(), preloadedImageIds: /* @__PURE__ */ new Set(), get galleryImages() { if (!state.selectedGalleryId) { return [state.selectedImageId]; } return Object.entries(state.metadata).filter( ([, value]) => value.galleryId === state.selectedGalleryId ).sort(([, a], [, b]) => { const orderA = a.order ?? 0; const orderB = b.order ?? 0; return orderA - orderB; }).map(([key]) => key); }, get selectedImageIndex() { return state.galleryImages.findIndex( (id) => id === state.selectedImageId ); }, get selectedImage() { return state.metadata[state.selectedImageId]; }, get hasNavigationIcon() { const { navigationButtonType } = state.selectedImage; return navigationButtonType === "icon" || navigationButtonType === "both"; }, get hasNavigationText() { const { navigationButtonType } = state.selectedImage; return navigationButtonType === "text" || navigationButtonType === "both"; }, get thisImage() { const { imageId } = getContext(); return state.metadata[imageId]; }, get hasNavigation() { return state.galleryImages.length > 1; }, get hasNextImage() { return state.selectedImageIndex + 1 < state.galleryImages.length; }, get hasPreviousImage() { return state.selectedImageIndex - 1 >= 0; }, get overlayOpened() { return state.selectedImageId !== null; }, get roleAttribute() { return state.overlayOpened ? "dialog" : null; }, get ariaModal() { return state.overlayOpened ? "true" : null; }, get ariaLabel() { return state.selectedImage.customAriaLabel || getConfig().defaultAriaLabel; }, get closeButtonAriaLabel() { return state.hasNavigationText ? void 0 : getConfig().closeButtonText; }, get prevButtonAriaLabel() { return state.hasNavigationText ? void 0 : getConfig().prevButtonText; }, get nextButtonAriaLabel() { return state.hasNavigationText ? void 0 : getConfig().nextButtonText; }, get enlargedSrc() { return getImageSrc(state.selectedImage); }, get enlargedSrcset() { return getImageSrcset(state.selectedImage); }, get figureStyles() { return state.overlayOpened && `${state.selectedImage.figureStyles?.replace( /margin[^;]*;?/g, "" )};`; }, get imgStyles() { return state.overlayOpened && `${state.selectedImage.imgStyles?.replace( /;$/, "" )}; object-fit:cover;`; }, get isContentHidden() { const ctx = getContext(); return state.overlayEnabled && state.selectedImageId === ctx.imageId; }, get isContentVisible() { const ctx = getContext(); return !state.overlayEnabled && state.selectedImageId === ctx.imageId; } }, actions: { showLightbox() { const { imageId } = getContext(); if (!state.metadata[imageId].imageRef?.complete) { return; } state.scrollTopReset = document.documentElement.scrollTop; state.scrollLeftReset = document.documentElement.scrollLeft; state.selectedImageId = imageId; const { galleryId } = getContext("core/gallery") || {}; state.selectedGalleryId = galleryId || null; state.overlayEnabled = true; callbacks.setOverlayStyles(); }, hideLightbox() { if (state.overlayEnabled) { state.overlayEnabled = false; setTimeout(function() { state.selectedImage.buttonRef.focus({ preventScroll: true }); state.selectedImageId = null; state.selectedGalleryId = null; }, 450); } }, showPreviousImage: withSyncEvent((event) => { event.stopPropagation(); const nextIndex = state.hasPreviousImage ? state.selectedImageIndex - 1 : state.galleryImages.length - 1; state.selectedImageId = state.galleryImages[nextIndex]; callbacks.setOverlayStyles(); }), showNextImage: withSyncEvent((event) => { event.stopPropagation(); const nextIndex = state.hasNextImage ? state.selectedImageIndex + 1 : 0; state.selectedImageId = state.galleryImages[nextIndex]; callbacks.setOverlayStyles(); }), handleKeydown: withSyncEvent((event) => { if (state.overlayEnabled) { if (event.key === "Escape") { actions.hideLightbox(); } else if (event.key === "ArrowLeft") { actions.showPreviousImage(event); } else if (event.key === "ArrowRight") { actions.showNextImage(event); } else if (event.key === "Tab") { const focusableElements = Array.from( document.querySelectorAll(focusableSelectors) ); const firstFocusableElement = focusableElements[0]; const lastFocusableElement = focusableElements[focusableElements.length - 1]; if (event.shiftKey && event.target === firstFocusableElement) { event.preventDefault(); lastFocusableElement.focus(); } else if (!event.shiftKey && event.target === lastFocusableElement) { event.preventDefault(); firstFocusableElement.focus(); } } } }), handleTouchMove: withSyncEvent((event) => { if (state.overlayEnabled) { event.preventDefault(); } }), handleTouchStart(event) { isTouching = true; const t = event.touches && event.touches[0]; if (t) { touchStartEvent.startX = t.clientX; touchStartEvent.startY = t.clientY; touchStartEvent.startTime = Date.now(); } }, handleTouchEnd: withSyncEvent((event) => { const touchEndEvent = event.changedTouches && event.changedTouches[0] || event.touches && event.touches[0]; const now = Date.now(); if (touchEndEvent && state.overlayEnabled) { const deltaX = touchEndEvent.clientX - touchStartEvent.startX; const deltaY = touchEndEvent.clientY - touchStartEvent.startY; const absDeltaX = Math.abs(deltaX); const absDeltaY = Math.abs(deltaY); const elapsedMs = now - touchStartEvent.startTime; const isHorizontalSwipe = ( // Swipe distance is greater than 50px absDeltaX > 50 && // Horizontal movement is much larger than the vertical movement absDeltaX > absDeltaY * 1.5 && // Fast action of less than 800ms elapsedMs < 800 ); if (isHorizontalSwipe) { event.preventDefault(); if (deltaX < 0) { actions.showNextImage(event); } else { actions.showPreviousImage(event); } } } lastTouchTime = now; isTouching = false; }), handleScroll() { if (state.overlayOpened) { if (!isTouching && Date.now() - lastTouchTime > 450) { window.scrollTo( state.scrollLeftReset, state.scrollTopReset ); } } }, preloadImage() { const { imageId } = getContext(); if (state.preloadedImageIds.has(imageId)) { return; } const imageMetadata = state.metadata[imageId]; const imageLink = document.createElement("link"); imageLink.rel = "preload"; imageLink.as = "image"; imageLink.href = getImageSrc(imageMetadata); const srcset = getImageSrcset(imageMetadata); if (srcset) { imageLink.setAttribute("imagesrcset", srcset); imageLink.setAttribute("imagesizes", "100vw"); } document.head.appendChild(imageLink); state.preloadedImageIds.add(imageId); }, preloadImageWithDelay() { const { imageId } = getContext(); actions.cancelPreload(); const timerId = setTimeout( withScope(() => { actions.preloadImage(); state.preloadTimers.delete(imageId); }), IMAGE_PRELOAD_DELAY ); state.preloadTimers.set(imageId, timerId); }, cancelPreload() { const { imageId } = getContext(); if (state.preloadTimers.has(imageId)) { clearTimeout(state.preloadTimers.get(imageId)); state.preloadTimers.delete(imageId); } } }, callbacks: { setOverlayStyles() { if (!state.overlayEnabled) { return; } let { naturalWidth, naturalHeight, offsetWidth: originalWidth, offsetHeight: originalHeight } = state.selectedImage.imageRef; let { x: screenPosX, y: screenPosY } = state.selectedImage.imageRef.getBoundingClientRect(); const naturalRatio = naturalWidth / naturalHeight; let originalRatio = originalWidth / originalHeight; if (state.selectedImage.scaleAttr === "contain") { if (naturalRatio > originalRatio) { const heightWithoutSpace = originalWidth / naturalRatio; screenPosY += (originalHeight - heightWithoutSpace) / 2; originalHeight = heightWithoutSpace; } else { const widthWithoutSpace = originalHeight * naturalRatio; screenPosX += (originalWidth - widthWithoutSpace) / 2; originalWidth = widthWithoutSpace; } } originalRatio = originalWidth / originalHeight; let imgMaxWidth = parseFloat( state.selectedImage.targetWidth && state.selectedImage.targetWidth !== "none" ? state.selectedImage.targetWidth : naturalWidth ); let imgMaxHeight = parseFloat( state.selectedImage.targetHeight && state.selectedImage.targetHeight !== "none" ? state.selectedImage.targetHeight : naturalHeight ); let imgRatio = imgMaxWidth / imgMaxHeight; let containerMaxWidth = imgMaxWidth; let containerMaxHeight = imgMaxHeight; let containerWidth = imgMaxWidth; let containerHeight = imgMaxHeight; if (naturalRatio.toFixed(2) !== imgRatio.toFixed(2)) { if (naturalRatio > imgRatio) { const reducedHeight = imgMaxWidth / naturalRatio; if (imgMaxHeight - reducedHeight > imgMaxWidth) { imgMaxHeight = reducedHeight; imgMaxWidth = reducedHeight * naturalRatio; } else { imgMaxHeight = imgMaxWidth / naturalRatio; } } else { const reducedWidth = imgMaxHeight * naturalRatio; if (imgMaxWidth - reducedWidth > imgMaxHeight) { imgMaxWidth = reducedWidth; imgMaxHeight = reducedWidth / naturalRatio; } else { imgMaxWidth = imgMaxHeight * naturalRatio; } } containerWidth = imgMaxWidth; containerHeight = imgMaxHeight; imgRatio = imgMaxWidth / imgMaxHeight; if (originalRatio > imgRatio) { containerMaxWidth = imgMaxWidth; containerMaxHeight = containerMaxWidth / originalRatio; } else { containerMaxHeight = imgMaxHeight; containerMaxWidth = containerMaxHeight * originalRatio; } } if (originalWidth > containerWidth || originalHeight > containerHeight) { containerWidth = originalWidth; containerHeight = originalHeight; } let horizontalPadding = 0; let verticalPadding = 160; if (480 < window.innerWidth) { horizontalPadding = 80; verticalPadding = 160; } if (960 < window.innerWidth) { horizontalPadding = state.hasNavigation ? 320 : 80; verticalPadding = 80; } const targetMaxWidth = Math.min( window.innerWidth - horizontalPadding, containerWidth ); const targetMaxHeight = Math.min( window.innerHeight - verticalPadding, containerHeight ); const targetContainerRatio = targetMaxWidth / targetMaxHeight; if (originalRatio > targetContainerRatio) { containerWidth = targetMaxWidth; containerHeight = containerWidth / originalRatio; } else { containerHeight = targetMaxHeight; containerWidth = containerHeight * originalRatio; } const containerScale = originalWidth / containerWidth; const lightboxImgWidth = imgMaxWidth * (containerWidth / containerMaxWidth); const lightboxImgHeight = imgMaxHeight * (containerHeight / containerMaxHeight); state.overlayStyles = ` --wp--lightbox-initial-top-position: ${screenPosY}px; --wp--lightbox-initial-left-position: ${screenPosX}px; --wp--lightbox-container-width: ${containerWidth + 1}px; --wp--lightbox-container-height: ${containerHeight + 1}px; --wp--lightbox-image-width: ${lightboxImgWidth}px; --wp--lightbox-image-height: ${lightboxImgHeight}px; --wp--lightbox-scale: ${containerScale}; --wp--lightbox-scrollbar-width: ${window.innerWidth - document.documentElement.clientWidth}px; `; }, setButtonStyles() { const { ref } = getElement(); if (!ref) { return; } const { imageId } = getContext(); state.metadata[imageId].imageRef = ref; state.metadata[imageId].currentSrc = ref.currentSrc; const { naturalWidth, naturalHeight, offsetWidth, offsetHeight } = ref; if (naturalWidth === 0 || naturalHeight === 0) { return; } const figure = ref.parentElement; const figureWidth = ref.parentElement.clientWidth; let figureHeight = ref.parentElement.clientHeight; const caption = figure.querySelector("figcaption"); if (caption) { const captionComputedStyle = window.getComputedStyle(caption); if (!["absolute", "fixed"].includes( captionComputedStyle.position )) { figureHeight = figureHeight - caption.offsetHeight - parseFloat(captionComputedStyle.marginTop) - parseFloat(captionComputedStyle.marginBottom); } } const buttonOffsetTop = figureHeight - offsetHeight; const buttonOffsetRight = figureWidth - offsetWidth; let buttonTop = buttonOffsetTop + 16; let buttonRight = buttonOffsetRight + 16; if (state.metadata[imageId].scaleAttr === "contain") { const naturalRatio = naturalWidth / naturalHeight; const offsetRatio = offsetWidth / offsetHeight; if (naturalRatio >= offsetRatio) { const referenceHeight = offsetWidth / naturalRatio; buttonTop = (offsetHeight - referenceHeight) / 2 + buttonOffsetTop + 16; buttonRight = buttonOffsetRight + 16; } else { const referenceWidth = offsetHeight * naturalRatio; buttonTop = buttonOffsetTop + 16; buttonRight = (offsetWidth - referenceWidth) / 2 + buttonOffsetRight + 16; } } state.metadata[imageId].buttonTop = buttonTop; state.metadata[imageId].buttonRight = buttonRight; }, setOverlayFocus() { if (state.overlayEnabled) { const { ref } = getElement(); ref.focus(); } }, setInertElements() { document.querySelectorAll("body > :not(.wp-lightbox-overlay)").forEach((el) => { if (state.overlayEnabled) { el.setAttribute("inert", ""); } else { el.removeAttribute("inert"); } }); }, initTriggerButton() { const { imageId } = getContext(); const { ref } = getElement(); state.metadata[imageId].buttonRef = ref; } } }, { lock: true } ); block-library/image/view.min.asset.php 0000644 00000000264 15206736335 0013761 0 ustar 00 <?php return array('dependencies' => array(), 'module_dependencies' => array(array('id' => '@wordpress/interactivity', 'import' => 'static')), 'version' => '25ee935fd6c67371d0f3'); block-library/image/view.min.js 0000644 00000016040 15206736335 0012467 0 ustar 00 import{store as P,getContext as u,getElement as v,getConfig as A,withSyncEvent as T,withScope as C}from"@wordpress/interactivity";var L=200;var w=!1,W=0,x={startX:0,startY:0,startTime:0},Y=[".wp-lightbox-close-button",".wp-lightbox-navigation-button"];function O({uploadedSrc:t}){return t||"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="}function R({lightboxSrcset:t}){return t||""}var{state:e,actions:y,callbacks:S}=P("core/image",{state:{selectedImageId:null,selectedGalleryId:null,preloadTimers:new Map,preloadedImageIds:new Set,get galleryImages(){return e.selectedGalleryId?Object.entries(e.metadata).filter(([,t])=>t.galleryId===e.selectedGalleryId).sort(([,t],[,a])=>{let o=t.order??0,l=a.order??0;return o-l}).map(([t])=>t):[e.selectedImageId]},get selectedImageIndex(){return e.galleryImages.findIndex(t=>t===e.selectedImageId)},get selectedImage(){return e.metadata[e.selectedImageId]},get hasNavigationIcon(){let{navigationButtonType:t}=e.selectedImage;return t==="icon"||t==="both"},get hasNavigationText(){let{navigationButtonType:t}=e.selectedImage;return t==="text"||t==="both"},get thisImage(){let{imageId:t}=u();return e.metadata[t]},get hasNavigation(){return e.galleryImages.length>1},get hasNextImage(){return e.selectedImageIndex+1<e.galleryImages.length},get hasPreviousImage(){return e.selectedImageIndex-1>=0},get overlayOpened(){return e.selectedImageId!==null},get roleAttribute(){return e.overlayOpened?"dialog":null},get ariaModal(){return e.overlayOpened?"true":null},get ariaLabel(){return e.selectedImage.customAriaLabel||A().defaultAriaLabel},get closeButtonAriaLabel(){return e.hasNavigationText?void 0:A().closeButtonText},get prevButtonAriaLabel(){return e.hasNavigationText?void 0:A().prevButtonText},get nextButtonAriaLabel(){return e.hasNavigationText?void 0:A().nextButtonText},get enlargedSrc(){return O(e.selectedImage)},get enlargedSrcset(){return R(e.selectedImage)},get figureStyles(){return e.overlayOpened&&`${e.selectedImage.figureStyles?.replace(/margin[^;]*;?/g,"")};`},get imgStyles(){return e.overlayOpened&&`${e.selectedImage.imgStyles?.replace(/;$/,"")}; object-fit:cover;`},get isContentHidden(){let t=u();return e.overlayEnabled&&e.selectedImageId===t.imageId},get isContentVisible(){let t=u();return!e.overlayEnabled&&e.selectedImageId===t.imageId}},actions:{showLightbox(){let{imageId:t}=u();if(!e.metadata[t].imageRef?.complete)return;e.scrollTopReset=document.documentElement.scrollTop,e.scrollLeftReset=document.documentElement.scrollLeft,e.selectedImageId=t;let{galleryId:a}=u("core/gallery")||{};e.selectedGalleryId=a||null,e.overlayEnabled=!0,S.setOverlayStyles()},hideLightbox(){e.overlayEnabled&&(e.overlayEnabled=!1,setTimeout(function(){e.selectedImage.buttonRef.focus({preventScroll:!0}),e.selectedImageId=null,e.selectedGalleryId=null},450))},showPreviousImage:T(t=>{t.stopPropagation();let a=e.hasPreviousImage?e.selectedImageIndex-1:e.galleryImages.length-1;e.selectedImageId=e.galleryImages[a],S.setOverlayStyles()}),showNextImage:T(t=>{t.stopPropagation();let a=e.hasNextImage?e.selectedImageIndex+1:0;e.selectedImageId=e.galleryImages[a],S.setOverlayStyles()}),handleKeydown:T(t=>{if(e.overlayEnabled){if(t.key==="Escape")y.hideLightbox();else if(t.key==="ArrowLeft")y.showPreviousImage(t);else if(t.key==="ArrowRight")y.showNextImage(t);else if(t.key==="Tab"){let a=Array.from(document.querySelectorAll(Y)),o=a[0],l=a[a.length-1];t.shiftKey&&t.target===o?(t.preventDefault(),l.focus()):!t.shiftKey&&t.target===l&&(t.preventDefault(),o.focus())}}}),handleTouchMove:T(t=>{e.overlayEnabled&&t.preventDefault()}),handleTouchStart(t){w=!0;let a=t.touches&&t.touches[0];a&&(x.startX=a.clientX,x.startY=a.clientY,x.startTime=Date.now())},handleTouchEnd:T(t=>{let a=t.changedTouches&&t.changedTouches[0]||t.touches&&t.touches[0],o=Date.now();if(a&&e.overlayEnabled){let l=a.clientX-x.startX,h=a.clientY-x.startY,m=Math.abs(l),s=Math.abs(h),d=o-x.startTime;m>50&&m>s*1.5&&d<800&&(t.preventDefault(),l<0?y.showNextImage(t):y.showPreviousImage(t))}W=o,w=!1}),handleScroll(){e.overlayOpened&&!w&&Date.now()-W>450&&window.scrollTo(e.scrollLeftReset,e.scrollTopReset)},preloadImage(){let{imageId:t}=u();if(e.preloadedImageIds.has(t))return;let a=e.metadata[t],o=document.createElement("link");o.rel="preload",o.as="image",o.href=O(a);let l=R(a);l&&(o.setAttribute("imagesrcset",l),o.setAttribute("imagesizes","100vw")),document.head.appendChild(o),e.preloadedImageIds.add(t)},preloadImageWithDelay(){let{imageId:t}=u();y.cancelPreload();let a=setTimeout(C(()=>{y.preloadImage(),e.preloadTimers.delete(t)}),L);e.preloadTimers.set(t,a)},cancelPreload(){let{imageId:t}=u();e.preloadTimers.has(t)&&(clearTimeout(e.preloadTimers.get(t)),e.preloadTimers.delete(t))}},callbacks:{setOverlayStyles(){if(!e.overlayEnabled)return;let{naturalWidth:t,naturalHeight:a,offsetWidth:o,offsetHeight:l}=e.selectedImage.imageRef,{x:h,y:m}=e.selectedImage.imageRef.getBoundingClientRect(),s=t/a,d=o/l;if(e.selectedImage.scaleAttr==="contain")if(s>d){let g=o/s;m+=(l-g)/2,l=g}else{let g=l*s;h+=(o-g)/2,o=g}d=o/l;let r=parseFloat(e.selectedImage.targetWidth&&e.selectedImage.targetWidth!=="none"?e.selectedImage.targetWidth:t),i=parseFloat(e.selectedImage.targetHeight&&e.selectedImage.targetHeight!=="none"?e.selectedImage.targetHeight:a),I=r/i,f=r,p=i,c=r,n=i;if(s.toFixed(2)!==I.toFixed(2)){if(s>I){let g=r/s;i-g>r?(i=g,r=g*s):i=r/s}else{let g=i*s;r-g>i?(r=g,i=g/s):r=i*s}c=r,n=i,I=r/i,d>I?(f=r,p=f/d):(p=i,f=p*d)}(o>c||l>n)&&(c=o,n=l);let E=0,b=160;480<window.innerWidth&&(E=80,b=160),960<window.innerWidth&&(E=e.hasNavigation?320:80,b=80);let D=Math.min(window.innerWidth-E,c),N=Math.min(window.innerHeight-b,n),_=D/N;d>_?(c=D,n=c/d):(n=N,c=n*d);let M=o/c,H=r*(c/f),B=i*(n/p);e.overlayStyles=` --wp--lightbox-initial-top-position: ${m}px; --wp--lightbox-initial-left-position: ${h}px; --wp--lightbox-container-width: ${c+1}px; --wp--lightbox-container-height: ${n+1}px; --wp--lightbox-image-width: ${H}px; --wp--lightbox-image-height: ${B}px; --wp--lightbox-scale: ${M}; --wp--lightbox-scrollbar-width: ${window.innerWidth-document.documentElement.clientWidth}px; `},setButtonStyles(){let{ref:t}=v();if(!t)return;let{imageId:a}=u();e.metadata[a].imageRef=t,e.metadata[a].currentSrc=t.currentSrc;let{naturalWidth:o,naturalHeight:l,offsetWidth:h,offsetHeight:m}=t;if(o===0||l===0)return;let s=t.parentElement,d=t.parentElement.clientWidth,r=t.parentElement.clientHeight,i=s.querySelector("figcaption");if(i){let n=window.getComputedStyle(i);["absolute","fixed"].includes(n.position)||(r=r-i.offsetHeight-parseFloat(n.marginTop)-parseFloat(n.marginBottom))}let I=r-m,f=d-h,p=I+16,c=f+16;if(e.metadata[a].scaleAttr==="contain"){let n=o/l,E=h/m;if(n>=E){let b=h/n;p=(m-b)/2+I+16,c=f+16}else{let b=m*n;p=I+16,c=(h-b)/2+f+16}}e.metadata[a].buttonTop=p,e.metadata[a].buttonRight=c},setOverlayFocus(){if(e.overlayEnabled){let{ref:t}=v();t.focus()}},setInertElements(){document.querySelectorAll("body > :not(.wp-lightbox-overlay)").forEach(t=>{e.overlayEnabled?t.setAttribute("inert",""):t.removeAttribute("inert")})},initTriggerButton(){let{imageId:t}=u(),{ref:a}=v();e.metadata[t].buttonRef=a}}},{lock:!0}); block-library/file/view.js 0000644 00000002127 15206736335 0011543 0 ustar 00 // packages/block-library/build-module/file/view.mjs import { store } from "@wordpress/interactivity"; // packages/block-library/build-module/file/utils/index.mjs var browserSupportsPdfs = () => { if (window.navigator.pdfViewerEnabled) { return true; } if (window.navigator.userAgent.indexOf("Mobi") > -1) { return false; } if (window.navigator.userAgent.indexOf("Android") > -1) { return false; } if (window.navigator.userAgent.indexOf("Macintosh") > -1 && window.navigator.maxTouchPoints && window.navigator.maxTouchPoints > 2) { return false; } if (!!(window.ActiveXObject || "ActiveXObject" in window) && !(createActiveXObject("AcroPDF.PDF") || createActiveXObject("PDF.PdfCtrl"))) { return false; } return true; }; var createActiveXObject = (type) => { let ax; try { ax = new window.ActiveXObject(type); } catch (e) { ax = void 0; } return ax; }; // packages/block-library/build-module/file/view.mjs store( "core/file", { state: { get hasPdfPreview() { return browserSupportsPdfs(); } } }, { lock: true } ); block-library/file/view.min.asset.php 0000644 00000000264 15206736335 0013616 0 ustar 00 <?php return array('dependencies' => array(), 'module_dependencies' => array(array('id' => '@wordpress/interactivity', 'import' => 'static')), 'version' => '7d4d261d10dca47ebecb'); block-library/file/view.min.js 0000644 00000001037 15206736335 0012324 0 ustar 00 import{store as n}from"@wordpress/interactivity";var t=()=>window.navigator.pdfViewerEnabled?!0:!(window.navigator.userAgent.indexOf("Mobi")>-1||window.navigator.userAgent.indexOf("Android")>-1||window.navigator.userAgent.indexOf("Macintosh")>-1&&window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>2||(window.ActiveXObject||"ActiveXObject"in window)&&!(r("AcroPDF.PDF")||r("PDF.PdfCtrl"))),r=i=>{let e;try{e=new window.ActiveXObject(i)}catch{e=void 0}return e};n("core/file",{state:{get hasPdfPreview(){return t()}}},{lock:!0}); a11y/index.min.js 0000644 00000001131 15206736335 0007554 0 ustar 00 function i(){let t=document.getElementsByClassName("a11y-speak-region"),n=document.getElementById("a11y-speak-intro-text");for(let e=0;e<t.length;e++)t[e].textContent="";n&&n.setAttribute("hidden","hidden")}var a="";function c(t){return t=t.replace(/<[^<>]+>/g," "),a===t&&(t+="\xA0"),a=t,t}function l(t,n){i(),t=c(t);let e=document.getElementById("a11y-speak-intro-text"),o=document.getElementById("a11y-speak-assertive"),r=document.getElementById("a11y-speak-polite");o&&n==="assertive"?o.textContent=t:r&&(r.textContent=t),e&&e.removeAttribute("hidden")}var m=()=>{};export{m as setup,l as speak}; a11y/index.js 0000644 00000002502 15206736335 0006775 0 ustar 00 // packages/a11y/build-module/shared/clear.mjs function clear() { const regions = document.getElementsByClassName("a11y-speak-region"); const introText = document.getElementById("a11y-speak-intro-text"); for (let i = 0; i < regions.length; i++) { regions[i].textContent = ""; } if (introText) { introText.setAttribute("hidden", "hidden"); } } // packages/a11y/build-module/shared/filter-message.mjs var previousMessage = ""; function filterMessage(message) { message = message.replace(/<[^<>]+>/g, " "); if (previousMessage === message) { message += "\xA0"; } previousMessage = message; return message; } // packages/a11y/build-module/shared/index.mjs function speak(message, ariaLive) { clear(); message = filterMessage(message); const introText = document.getElementById("a11y-speak-intro-text"); const containerAssertive = document.getElementById( "a11y-speak-assertive" ); const containerPolite = document.getElementById("a11y-speak-polite"); if (containerAssertive && ariaLive === "assertive") { containerAssertive.textContent = message; } else if (containerPolite) { containerPolite.textContent = message; } if (introText) { introText.removeAttribute("hidden"); } } // packages/a11y/build-module/module/index.mjs var setup = () => { }; export { setup, speak }; a11y/index.min.asset.php 0000644 00000000123 15206736335 0011045 0 ustar 00 <?php return array('dependencies' => array(), 'version' => '1c371cb517a97cdbcb9f'); interactivity-router/full-page.min.js 0000644 00000001420 15206736335 0013763 0 ustar 00 var s=t=>t&&t instanceof window.HTMLAnchorElement&&t.href&&(!t.target||t.target==="_self")&&t.origin===window.location.origin&&!t.pathname.startsWith("/wp-admin")&&!t.pathname.startsWith("/wp-login.php")&&!t.getAttribute("href").startsWith("#")&&!new URL(t.href).searchParams.has("_wpnonce"),n=t=>t&&t.button===0&&!t.metaKey&&!t.ctrlKey&&!t.altKey&&!t.shiftKey&&!t.defaultPrevented;document.addEventListener("click",async t=>{let a=t.target.closest("a");if(s(a)&&n(t)){t.preventDefault();let{actions:i}=await import("@wordpress/interactivity-router");i.navigate(a.href)}});document.addEventListener("mouseenter",async t=>{if(t.target?.nodeName==="A"){let a=t.target.closest("a");if(s(a)&&n(t)){let{actions:i}=await import("@wordpress/interactivity-router");i.prefetch(a.href)}}},!0); interactivity-router/index.min.js 0000644 00000062100 15206736335 0013220 0 ustar 00 import{store as mA,privateApis as jA,getConfig as uA}from"@wordpress/interactivity";function V(A,e,t=(Q,o)=>Q===o){let Q=A.length,o=e.length,B=Array.from({length:Q+1},()=>Array(o+1).fill(null));for(let E=0;E<=Q;E++)B[E][0]=A.slice(0,E);for(let E=0;E<=o;E++)B[0][E]=e.slice(0,E);for(let E=1;E<=Q;E++)for(let i=1;i<=o;i++)if(t(A[E-1],e[i-1]))B[E][i]=B[E-1][i-1].concat(A[E-1]);else{let s=B[E-1][i].concat(A[E-1]),C=B[E][i-1].concat(e[i-1]);B[E][i]=s.length<=C.length?s:C}return B[Q][o]}var U=(A,e)=>A.isEqualNode(e),W=A=>{A=A.cloneNode(!0);let e=A.media,{originalMedia:t}=A.dataset;return e==="preload"?(A.media=t||"all",A.removeAttribute("data-original-media")):A.media||(A.media="all"),A};function RA(A,e,t=window.document.head){if(A.length===0)return e.map(c=>{let I=M(c);return t.appendChild(c),I});let Q=A.map(W),o=e.map(W),B=V(Q,o,U),E=A.length,i=e.length,s=[],C=A[E-1],g=0,r=0;for(let c of B){let I=A[g],l=e[r],n=Q[g],f=o[r];g<E&&U(n,c)?(r<i&&U(f,c)&&(s.push(M(I)),r++),g++):(s.push(M(l)),g<E?I.before(l):(C.after(l),C=l),r++)}return s}var K=new WeakMap,M=A=>{if(K.has(A))return K.get(A);if(window.document.contains(A)&&A.media!=="preload"){let t=Promise.resolve(A);return K.set(A,t),t}if(A.hasAttribute("media")&&A.media!=="all"&&(A.dataset.originalMedia=A.media),A.media="preload",A instanceof HTMLStyleElement){let t=Promise.resolve(A);return K.set(A,t),t}let e=new Promise((t,Q)=>{A.addEventListener("load",()=>t(A)),A.addEventListener("error",o=>{let{href:B}=o.target;Q(Error(`The style sheet with the following URL failed to load: ${B}`))})});return K.set(A,e),e},z=A=>{let e=Array.from(window.document.querySelectorAll("style,link[rel=stylesheet]")),t=Array.from(A.querySelectorAll("style,link[rel=stylesheet]"));return RA(e,t)},_=A=>{window.document.querySelectorAll("style,link[rel=stylesheet]").forEach(e=>{if(e.sheet)if(A.includes(e)){if(e.sheet.media.mediaText==="preload"){let{originalMedia:t="all"}=e.dataset;e.sheet.media.mediaText=t}e.sheet.disabled=!1}else e.sheet.disabled=!0})};var SA=/\\/g;function UA(A){if(A.indexOf(":")===-1)return!1;try{return new URL(A),!0}catch{return!1}}function k(A,e){let t=e.indexOf("#"),Q=e.indexOf("?");if(t+Q>-2&&(e=e.slice(0,t===-1?Q:Q===-1||Q>t?t:Q)),A.indexOf("\\")!==-1&&(A=A.replace(SA,"/")),A[0]==="/"&&A[1]==="/")return e.slice(0,e.indexOf(":")+1)+A;if(A[0]==="."&&(A[1]==="/"||A[1]==="."&&(A[2]==="/"||A.length===2&&(A+="/"))||A.length===1&&(A+="/"))||A[0]==="/"){let o=e.slice(0,e.indexOf(":")+1),B;if(e[o.length+1]==="/"?o!=="file:"?(B=e.slice(o.length+2),B=B.slice(B.indexOf("/")+1)):B=e.slice(8):B=e.slice(o.length+(e[o.length]==="/")),A[0]==="/")return e.slice(0,e.length-B.length-1)+A;let E=B.slice(0,B.lastIndexOf("/")+1)+A,i=[],s=-1;for(let C=0;C<E.length;C++){if(s!==-1){E[C]==="/"&&(i.push(E.slice(s,C+1)),s=-1);continue}else if(E[C]==="."){if(E[C+1]==="."&&(E[C+2]==="/"||C+2===E.length)){i.pop(),C+=2;continue}else if(E[C+1]==="/"||C+1===E.length){C+=1;continue}}for(;E[C]==="/";)C++;s=C}return s!==-1&&i.push(E.slice(s)),e.slice(0,e.length-B.length)+i.join("")}}function MA(A,e){return k(A,e)||(UA(A)?A:k("./"+A,e))}function F(A,e){if(e[A])return A;let t=A.length;do{let Q=A.slice(0,t+1);if(Q in e)return Q}while((t=A.lastIndexOf("/",t-1))!==-1)}function AA(A,e){let t=F(A,e);if(t){let Q=e[t];return Q===null?void 0:Q+A.slice(t.length)}}function QA(A,e,t){let Q=t&&F(t,A.scopes);for(;Q;){let o=AA(e,A.scopes[Q]);if(o)return o;Q=F(Q.slice(0,Q.lastIndexOf("/")),A.scopes)}return AA(e,A.imports)||e.indexOf(":")!==-1&&e}function eA(A,e,t,Q){for(let o in A){let B=k(o,t)||o,E=A[o];if(typeof E!="string")continue;let i=QA(Q,k(E,t)||E,t);if(i){e[B]=i;continue}}}function FA(A,e,t){let Q={imports:Object.assign({},t.imports),scopes:Object.assign({},t.scopes)};if(A.imports&&eA(A.imports,Q.imports,e,t),A.scopes)for(let o in A.scopes){let B=MA(o,e);eA(A.scopes[o],Q.scopes[B]||(Q.scopes[B]={}),e,t)}return Q}var G={imports:{},scopes:{}},GA=document.baseURI,YA=GA;function tA(A){G=FA(A,YA,G)}function D(A,e){let t=k(A,e);return QA(G,t||A,e)||A}var oA;(function(A){A[A.Static=1]="Static",A[A.Dynamic=2]="Dynamic",A[A.ImportMeta=3]="ImportMeta",A[A.StaticSourcePhase=4]="StaticSourcePhase",A[A.DynamicSourcePhase=5]="DynamicSourcePhase"})(oA||(oA={}));var qA=new Uint8Array(new Uint16Array([1]).buffer)[0]===1;function q(A,e="@"){if(!a)return x.then((()=>q(A)));let t=A.length+1,Q=(a.__heap_base.value||a.__heap_base)+4*t-a.memory.buffer.byteLength;Q>0&&a.memory.grow(Math.ceil(Q/65536));let o=a.sa(t-1);if((qA?HA:xA)(A,new Uint16Array(a.memory.buffer,o,t)),!a.parse())throw Object.assign(new Error(`Parse error ${e}:${A.slice(0,a.e()).split(` `).length}:${a.e()-A.lastIndexOf(` `,a.e()-1)}`),{idx:a.e()});let B=[],E=[];for(;a.ri();){let s=a.is(),C=a.ie(),g=a.it(),r=a.ai(),c=a.id(),I=a.ss(),l=a.se(),n;a.ip()&&(n=i(A.slice(c===-1?s-1:s,c===-1?C+1:C))),B.push({n,t:g,s,e:C,ss:I,se:l,d:c,a:r})}for(;a.re();){let s=a.es(),C=a.ee(),g=a.els(),r=a.ele(),c=A.slice(s,C),I=c[0],l=g<0?void 0:A.slice(g,r),n=l?l[0]:"";E.push({s,e:C,ls:g,le:r,n:I==='"'||I==="'"?i(c):c,ln:n==='"'||n==="'"?i(l):l})}function i(s){try{return(0,eval)(s)}catch{}}return[B,E,!!a.f(),!!a.ms()]}function xA(A,e){let t=A.length,Q=0;for(;Q<t;){let o=A.charCodeAt(Q);e[Q++]=(255&o)<<8|o>>>8}}function HA(A,e){let t=A.length,Q=0;for(;Q<t;)e[Q]=A.charCodeAt(Q++)}var a,x=WebAssembly.compile((Y="AGFzbQEAAAABKwhgAX8Bf2AEf39/fwBgAAF/YAAAYAF/AGADf39/AX9gAn9/AX9gA39/fwADMTAAAQECAgICAgICAgICAgICAgICAgIAAwMDBAQAAAUAAAAAAAMDAwAGAAAABwAGAgUEBQFwAQEBBQMBAAEGDwJ/AUHA8gALfwBBwPIACwd6FQZtZW1vcnkCAAJzYQAAAWUAAwJpcwAEAmllAAUCc3MABgJzZQAHAml0AAgCYWkACQJpZAAKAmlwAAsCZXMADAJlZQANA2VscwAOA2VsZQAPAnJpABACcmUAEQFmABICbXMAEwVwYXJzZQAUC19faGVhcF9iYXNlAwEKm0EwaAEBf0EAIAA2AoAKQQAoAtwJIgEgAEEBdGoiAEEAOwEAQQAgAEECaiIANgKECkEAIAA2AogKQQBBADYC4AlBAEEANgLwCUEAQQA2AugJQQBBADYC5AlBAEEANgL4CUEAQQA2AuwJIAEL0wEBA39BACgC8AkhBEEAQQAoAogKIgU2AvAJQQAgBDYC9AlBACAFQSRqNgKICiAEQSBqQeAJIAQbIAU2AgBBACgC1AkhBEEAKALQCSEGIAUgATYCACAFIAA2AgggBSACIAJBAmpBACAGIANGIgAbIAQgA0YiBBs2AgwgBSADNgIUIAVBADYCECAFIAI2AgQgBUEANgIgIAVBA0EBQQIgABsgBBs2AhwgBUEAKALQCSADRiICOgAYAkACQCACDQBBACgC1AkgA0cNAQtBAEEBOgCMCgsLXgEBf0EAKAL4CSIEQRBqQeQJIAQbQQAoAogKIgQ2AgBBACAENgL4CUEAIARBFGo2AogKQQBBAToAjAogBEEANgIQIAQgAzYCDCAEIAI2AgggBCABNgIEIAQgADYCAAsIAEEAKAKQCgsVAEEAKALoCSgCAEEAKALcCWtBAXULHgEBf0EAKALoCSgCBCIAQQAoAtwJa0EBdUF/IAAbCxUAQQAoAugJKAIIQQAoAtwJa0EBdQseAQF/QQAoAugJKAIMIgBBACgC3AlrQQF1QX8gABsLCwBBACgC6AkoAhwLHgEBf0EAKALoCSgCECIAQQAoAtwJa0EBdUF/IAAbCzsBAX8CQEEAKALoCSgCFCIAQQAoAtAJRw0AQX8PCwJAIABBACgC1AlHDQBBfg8LIABBACgC3AlrQQF1CwsAQQAoAugJLQAYCxUAQQAoAuwJKAIAQQAoAtwJa0EBdQsVAEEAKALsCSgCBEEAKALcCWtBAXULHgEBf0EAKALsCSgCCCIAQQAoAtwJa0EBdUF/IAAbCx4BAX9BACgC7AkoAgwiAEEAKALcCWtBAXVBfyAAGwslAQF/QQBBACgC6AkiAEEgakHgCSAAGygCACIANgLoCSAAQQBHCyUBAX9BAEEAKALsCSIAQRBqQeQJIAAbKAIAIgA2AuwJIABBAEcLCABBAC0AlAoLCABBAC0AjAoL3Q0BBX8jAEGA0ABrIgAkAEEAQQE6AJQKQQBBACgC2Ak2ApwKQQBBACgC3AlBfmoiATYCsApBACABQQAoAoAKQQF0aiICNgK0CkEAQQA6AIwKQQBBADsBlgpBAEEAOwGYCkEAQQA6AKAKQQBBADYCkApBAEEAOgD8CUEAIABBgBBqNgKkCkEAIAA2AqgKQQBBADoArAoCQAJAAkACQANAQQAgAUECaiIDNgKwCiABIAJPDQECQCADLwEAIgJBd2pBBUkNAAJAAkACQAJAAkAgAkGbf2oOBQEICAgCAAsgAkEgRg0EIAJBL0YNAyACQTtGDQIMBwtBAC8BmAoNASADEBVFDQEgAUEEakGCCEEKEC8NARAWQQAtAJQKDQFBAEEAKAKwCiIBNgKcCgwHCyADEBVFDQAgAUEEakGMCEEKEC8NABAXC0EAQQAoArAKNgKcCgwBCwJAIAEvAQQiA0EqRg0AIANBL0cNBBAYDAELQQEQGQtBACgCtAohAkEAKAKwCiEBDAALC0EAIQIgAyEBQQAtAPwJDQIMAQtBACABNgKwCkEAQQA6AJQKCwNAQQAgAUECaiIDNgKwCgJAAkACQAJAAkACQAJAIAFBACgCtApPDQAgAy8BACICQXdqQQVJDQYCQAJAAkACQAJAAkACQAJAAkACQCACQWBqDgoQDwYPDw8PBQECAAsCQAJAAkACQCACQaB/ag4KCxISAxIBEhISAgALIAJBhX9qDgMFEQYJC0EALwGYCg0QIAMQFUUNECABQQRqQYIIQQoQLw0QEBYMEAsgAxAVRQ0PIAFBBGpBjAhBChAvDQ8QFwwPCyADEBVFDQ4gASkABELsgISDsI7AOVINDiABLwEMIgNBd2oiAUEXSw0MQQEgAXRBn4CABHFFDQwMDQtBAEEALwGYCiIBQQFqOwGYCkEAKAKkCiABQQN0aiIBQQE2AgAgAUEAKAKcCjYCBAwNC0EALwGYCiIDRQ0JQQAgA0F/aiIDOwGYCkEALwGWCiICRQ0MQQAoAqQKIANB//8DcUEDdGooAgBBBUcNDAJAIAJBAnRBACgCqApqQXxqKAIAIgMoAgQNACADQQAoApwKQQJqNgIEC0EAIAJBf2o7AZYKIAMgAUEEajYCDAwMCwJAQQAoApwKIgEvAQBBKUcNAEEAKALwCSIDRQ0AIAMoAgQgAUcNAEEAQQAoAvQJIgM2AvAJAkAgA0UNACADQQA2AiAMAQtBAEEANgLgCQtBAEEALwGYCiIDQQFqOwGYCkEAKAKkCiADQQN0aiIDQQZBAkEALQCsChs2AgAgAyABNgIEQQBBADoArAoMCwtBAC8BmAoiAUUNB0EAIAFBf2oiATsBmApBACgCpAogAUH//wNxQQN0aigCAEEERg0EDAoLQScQGgwJC0EiEBoMCAsgAkEvRw0HAkACQCABLwEEIgFBKkYNACABQS9HDQEQGAwKC0EBEBkMCQsCQAJAAkACQEEAKAKcCiIBLwEAIgMQG0UNAAJAAkAgA0FVag4EAAkBAwkLIAFBfmovAQBBK0YNAwwICyABQX5qLwEAQS1GDQIMBwsgA0EpRw0BQQAoAqQKQQAvAZgKIgJBA3RqKAIEEBxFDQIMBgsgAUF+ai8BAEFQakH//wNxQQpPDQULQQAvAZgKIQILAkACQCACQf//A3EiAkUNACADQeYARw0AQQAoAqQKIAJBf2pBA3RqIgQoAgBBAUcNACABQX5qLwEAQe8ARw0BIAQoAgRBlghBAxAdRQ0BDAULIANB/QBHDQBBACgCpAogAkEDdGoiAigCBBAeDQQgAigCAEEGRg0ECyABEB8NAyADRQ0DIANBL0ZBAC0AoApBAEdxDQMCQEEAKAL4CSICRQ0AIAEgAigCAEkNACABIAIoAgRNDQQLIAFBfmohAUEAKALcCSECAkADQCABQQJqIgQgAk0NAUEAIAE2ApwKIAEvAQAhAyABQX5qIgQhASADECBFDQALIARBAmohBAsCQCADQf//A3EQIUUNACAEQX5qIQECQANAIAFBAmoiAyACTQ0BQQAgATYCnAogAS8BACEDIAFBfmoiBCEBIAMQIQ0ACyAEQQJqIQMLIAMQIg0EC0EAQQE6AKAKDAcLQQAoAqQKQQAvAZgKIgFBA3QiA2pBACgCnAo2AgRBACABQQFqOwGYCkEAKAKkCiADakEDNgIACxAjDAULQQAtAPwJQQAvAZYKQQAvAZgKcnJFIQIMBwsQJEEAQQA6AKAKDAMLECVBACECDAULIANBoAFHDQELQQBBAToArAoLQQBBACgCsAo2ApwKC0EAKAKwCiEBDAALCyAAQYDQAGokACACCxoAAkBBACgC3AkgAEcNAEEBDwsgAEF+ahAmC/4KAQZ/QQBBACgCsAoiAEEMaiIBNgKwCkEAKAL4CSECQQEQKSEDAkACQAJAAkACQAJAAkACQAJAQQAoArAKIgQgAUcNACADEChFDQELAkACQAJAAkACQAJAAkAgA0EqRg0AIANB+wBHDQFBACAEQQJqNgKwCkEBECkhA0EAKAKwCiEEA0ACQAJAIANB//8DcSIDQSJGDQAgA0EnRg0AIAMQLBpBACgCsAohAwwBCyADEBpBAEEAKAKwCkECaiIDNgKwCgtBARApGgJAIAQgAxAtIgNBLEcNAEEAQQAoArAKQQJqNgKwCkEBECkhAwsgA0H9AEYNA0EAKAKwCiIFIARGDQ8gBSEEIAVBACgCtApNDQAMDwsLQQAgBEECajYCsApBARApGkEAKAKwCiIDIAMQLRoMAgtBAEEAOgCUCgJAAkACQAJAAkACQCADQZ9/ag4MAgsEAQsDCwsLCwsFAAsgA0H2AEYNBAwKC0EAIARBDmoiAzYCsAoCQAJAAkBBARApQZ9/ag4GABICEhIBEgtBACgCsAoiBSkAAkLzgOSD4I3AMVINESAFLwEKECFFDRFBACAFQQpqNgKwCkEAECkaC0EAKAKwCiIFQQJqQbIIQQ4QLw0QIAUvARAiAkF3aiIBQRdLDQ1BASABdEGfgIAEcUUNDQwOC0EAKAKwCiIFKQACQuyAhIOwjsA5Ug0PIAUvAQoiAkF3aiIBQRdNDQYMCgtBACAEQQpqNgKwCkEAECkaQQAoArAKIQQLQQAgBEEQajYCsAoCQEEBECkiBEEqRw0AQQBBACgCsApBAmo2ArAKQQEQKSEEC0EAKAKwCiEDIAQQLBogA0EAKAKwCiIEIAMgBBACQQBBACgCsApBfmo2ArAKDwsCQCAEKQACQuyAhIOwjsA5Ug0AIAQvAQoQIEUNAEEAIARBCmo2ArAKQQEQKSEEQQAoArAKIQMgBBAsGiADQQAoArAKIgQgAyAEEAJBAEEAKAKwCkF+ajYCsAoPC0EAIARBBGoiBDYCsAoLQQAgBEEGajYCsApBAEEAOgCUCkEBECkhBEEAKAKwCiEDIAQQLCEEQQAoArAKIQIgBEHf/wNxIgFB2wBHDQNBACACQQJqNgKwCkEBECkhBUEAKAKwCiEDQQAhBAwEC0EAQQE6AIwKQQBBACgCsApBAmo2ArAKC0EBECkhBEEAKAKwCiEDAkAgBEHmAEcNACADQQJqQawIQQYQLw0AQQAgA0EIajYCsAogAEEBEClBABArIAJBEGpB5AkgAhshAwNAIAMoAgAiA0UNBSADQgA3AgggA0EQaiEDDAALC0EAIANBfmo2ArAKDAMLQQEgAXRBn4CABHFFDQMMBAtBASEECwNAAkACQCAEDgIAAQELIAVB//8DcRAsGkEBIQQMAQsCQAJAQQAoArAKIgQgA0YNACADIAQgAyAEEAJBARApIQQCQCABQdsARw0AIARBIHJB/QBGDQQLQQAoArAKIQMCQCAEQSxHDQBBACADQQJqNgKwCkEBECkhBUEAKAKwCiEDIAVBIHJB+wBHDQILQQAgA0F+ajYCsAoLIAFB2wBHDQJBACACQX5qNgKwCg8LQQAhBAwACwsPCyACQaABRg0AIAJB+wBHDQQLQQAgBUEKajYCsApBARApIgVB+wBGDQMMAgsCQCACQVhqDgMBAwEACyACQaABRw0CC0EAIAVBEGo2ArAKAkBBARApIgVBKkcNAEEAQQAoArAKQQJqNgKwCkEBECkhBQsgBUEoRg0BC0EAKAKwCiEBIAUQLBpBACgCsAoiBSABTQ0AIAQgAyABIAUQAkEAQQAoArAKQX5qNgKwCg8LIAQgA0EAQQAQAkEAIARBDGo2ArAKDwsQJQvcCAEGf0EAIQBBAEEAKAKwCiIBQQxqIgI2ArAKQQEQKSEDQQAoArAKIQQCQAJAAkACQAJAAkACQAJAIANBLkcNAEEAIARBAmo2ArAKAkBBARApIgNB8wBGDQAgA0HtAEcNB0EAKAKwCiIDQQJqQZwIQQYQLw0HAkBBACgCnAoiBBAqDQAgBC8BAEEuRg0ICyABIAEgA0EIakEAKALUCRABDwtBACgCsAoiA0ECakGiCEEKEC8NBgJAQQAoApwKIgQQKg0AIAQvAQBBLkYNBwsgA0EMaiEDDAELIANB8wBHDQEgBCACTQ0BQQYhAEEAIQIgBEECakGiCEEKEC8NAiAEQQxqIQMCQCAELwEMIgVBd2oiBEEXSw0AQQEgBHRBn4CABHENAQsgBUGgAUcNAgtBACADNgKwCkEBIQBBARApIQMLAkACQAJAAkAgA0H7AEYNACADQShHDQFBACgCpApBAC8BmAoiA0EDdGoiBEEAKAKwCjYCBEEAIANBAWo7AZgKIARBBTYCAEEAKAKcCi8BAEEuRg0HQQBBACgCsAoiBEECajYCsApBARApIQMgAUEAKAKwCkEAIAQQAQJAAkAgAA0AQQAoAvAJIQQMAQtBACgC8AkiBEEFNgIcC0EAQQAvAZYKIgBBAWo7AZYKQQAoAqgKIABBAnRqIAQ2AgACQCADQSJGDQAgA0EnRg0AQQBBACgCsApBfmo2ArAKDwsgAxAaQQBBACgCsApBAmoiAzYCsAoCQAJAAkBBARApQVdqDgQBAgIAAgtBAEEAKAKwCkECajYCsApBARApGkEAKALwCSIEIAM2AgQgBEEBOgAYIARBACgCsAoiAzYCEEEAIANBfmo2ArAKDwtBACgC8AkiBCADNgIEIARBAToAGEEAQQAvAZgKQX9qOwGYCiAEQQAoArAKQQJqNgIMQQBBAC8BlgpBf2o7AZYKDwtBAEEAKAKwCkF+ajYCsAoPCyAADQJBACgCsAohA0EALwGYCg0BA0ACQAJAAkAgA0EAKAK0Ck8NAEEBECkiA0EiRg0BIANBJ0YNASADQf0ARw0CQQBBACgCsApBAmo2ArAKC0EBECkhBEEAKAKwCiEDAkAgBEHmAEcNACADQQJqQawIQQYQLw0JC0EAIANBCGo2ArAKAkBBARApIgNBIkYNACADQSdHDQkLIAEgA0EAECsPCyADEBoLQQBBACgCsApBAmoiAzYCsAoMAAsLIAANAUEGIQBBACECAkAgA0FZag4EBAMDBAALIANBIkYNAwwCC0EAIANBfmo2ArAKDwtBDCEAQQEhAgtBACgCsAoiAyABIABBAXRqRw0AQQAgA0F+ajYCsAoPC0EALwGYCg0CQQAoArAKIQNBACgCtAohAANAIAMgAE8NAQJAAkAgAy8BACIEQSdGDQAgBEEiRw0BCyABIAQgAhArDwtBACADQQJqIgM2ArAKDAALCxAlCw8LQQBBACgCsApBfmo2ArAKC0cBA39BACgCsApBAmohAEEAKAK0CiEBAkADQCAAIgJBfmogAU8NASACQQJqIQAgAi8BAEF2ag4EAQAAAQALC0EAIAI2ArAKC5gBAQN/QQBBACgCsAoiAUECajYCsAogAUEGaiEBQQAoArQKIQIDQAJAAkACQCABQXxqIAJPDQAgAUF+ai8BACEDAkACQCAADQAgA0EqRg0BIANBdmoOBAIEBAIECyADQSpHDQMLIAEvAQBBL0cNAkEAIAFBfmo2ArAKDAELIAFBfmohAQtBACABNgKwCg8LIAFBAmohAQwACwuIAQEEf0EAKAKwCiEBQQAoArQKIQICQAJAA0AgASIDQQJqIQEgAyACTw0BIAEvAQAiBCAARg0CAkAgBEHcAEYNACAEQXZqDgQCAQECAQsgA0EEaiEBIAMvAQRBDUcNACADQQZqIAEgAy8BBkEKRhshAQwACwtBACABNgKwChAlDwtBACABNgKwCgtsAQF/AkACQCAAQV9qIgFBBUsNAEEBIAF0QTFxDQELIABBRmpB//8DcUEGSQ0AIABBKUcgAEFYakH//wNxQQdJcQ0AAkAgAEGlf2oOBAEAAAEACyAAQf0ARyAAQYV/akH//wNxQQRJcQ8LQQELLgEBf0EBIQECQCAAQaYJQQUQHQ0AIABBlghBAxAdDQAgAEGwCUECEB0hAQsgAQtGAQN/QQAhAwJAIAAgAkEBdCICayIEQQJqIgBBACgC3AkiBUkNACAAIAEgAhAvDQACQCAAIAVHDQBBAQ8LIAQQJiEDCyADC4MBAQJ/QQEhAQJAAkACQAJAAkACQCAALwEAIgJBRWoOBAUEBAEACwJAIAJBm39qDgQDBAQCAAsgAkEpRg0EIAJB+QBHDQMgAEF+akG8CUEGEB0PCyAAQX5qLwEAQT1GDwsgAEF+akG0CUEEEB0PCyAAQX5qQcgJQQMQHQ8LQQAhAQsgAQu0AwECf0EAIQECQAJAAkACQAJAAkACQAJAAkACQCAALwEAQZx/ag4UAAECCQkJCQMJCQQFCQkGCQcJCQgJCwJAAkAgAEF+ai8BAEGXf2oOBAAKCgEKCyAAQXxqQcoIQQIQHQ8LIABBfGpBzghBAxAdDwsCQAJAAkAgAEF+ai8BAEGNf2oOAwABAgoLAkAgAEF8ai8BACICQeEARg0AIAJB7ABHDQogAEF6akHlABAnDwsgAEF6akHjABAnDwsgAEF8akHUCEEEEB0PCyAAQXxqQdwIQQYQHQ8LIABBfmovAQBB7wBHDQYgAEF8ai8BAEHlAEcNBgJAIABBemovAQAiAkHwAEYNACACQeMARw0HIABBeGpB6AhBBhAdDwsgAEF4akH0CEECEB0PCyAAQX5qQfgIQQQQHQ8LQQEhASAAQX5qIgBB6QAQJw0EIABBgAlBBRAdDwsgAEF+akHkABAnDwsgAEF+akGKCUEHEB0PCyAAQX5qQZgJQQQQHQ8LAkAgAEF+ai8BACICQe8ARg0AIAJB5QBHDQEgAEF8akHuABAnDwsgAEF8akGgCUEDEB0hAQsgAQs0AQF/QQEhAQJAIABBd2pB//8DcUEFSQ0AIABBgAFyQaABRg0AIABBLkcgABAocSEBCyABCzABAX8CQAJAIABBd2oiAUEXSw0AQQEgAXRBjYCABHENAQsgAEGgAUYNAEEADwtBAQtOAQJ/QQAhAQJAAkAgAC8BACICQeUARg0AIAJB6wBHDQEgAEF+akH4CEEEEB0PCyAAQX5qLwEAQfUARw0AIABBfGpB3AhBBhAdIQELIAEL3gEBBH9BACgCsAohAEEAKAK0CiEBAkACQAJAA0AgACICQQJqIQAgAiABTw0BAkACQAJAIAAvAQAiA0Gkf2oOBQIDAwMBAAsgA0EkRw0CIAIvAQRB+wBHDQJBACACQQRqIgA2ArAKQQBBAC8BmAoiAkEBajsBmApBACgCpAogAkEDdGoiAkEENgIAIAIgADYCBA8LQQAgADYCsApBAEEALwGYCkF/aiIAOwGYCkEAKAKkCiAAQf//A3FBA3RqKAIAQQNHDQMMBAsgAkEEaiEADAALC0EAIAA2ArAKCxAlCwtwAQJ/AkACQANAQQBBACgCsAoiAEECaiIBNgKwCiAAQQAoArQKTw0BAkACQAJAIAEvAQAiAUGlf2oOAgECAAsCQCABQXZqDgQEAwMEAAsgAUEvRw0CDAQLEC4aDAELQQAgAEEEajYCsAoMAAsLECULCzUBAX9BAEEBOgD8CUEAKAKwCiEAQQBBACgCtApBAmo2ArAKQQAgAEEAKALcCWtBAXU2ApAKC0MBAn9BASEBAkAgAC8BACICQXdqQf//A3FBBUkNACACQYABckGgAUYNAEEAIQEgAhAoRQ0AIAJBLkcgABAqcg8LIAELPQECf0EAIQICQEEAKALcCSIDIABLDQAgAC8BACABRw0AAkAgAyAARw0AQQEPCyAAQX5qLwEAECAhAgsgAgtoAQJ/QQEhAQJAAkAgAEFfaiICQQVLDQBBASACdEExcQ0BCyAAQfj/A3FBKEYNACAAQUZqQf//A3FBBkkNAAJAIABBpX9qIgJBA0sNACACQQFHDQELIABBhX9qQf//A3FBBEkhAQsgAQucAQEDf0EAKAKwCiEBAkADQAJAAkAgAS8BACICQS9HDQACQCABLwECIgFBKkYNACABQS9HDQQQGAwCCyAAEBkMAQsCQAJAIABFDQAgAkF3aiIBQRdLDQFBASABdEGfgIAEcUUNAQwCCyACECFFDQMMAQsgAkGgAUcNAgtBAEEAKAKwCiIDQQJqIgE2ArAKIANBACgCtApJDQALCyACCzEBAX9BACEBAkAgAC8BAEEuRw0AIABBfmovAQBBLkcNACAAQXxqLwEAQS5GIQELIAELnAQBAX8CQCABQSJGDQAgAUEnRg0AECUPC0EAKAKwCiEDIAEQGiAAIANBAmpBACgCsApBACgC0AkQAQJAIAJFDQBBACgC8AlBBDYCHAtBAEEAKAKwCkECajYCsAoCQAJAAkACQEEAECkiAUHhAEYNACABQfcARg0BQQAoArAKIQEMAgtBACgCsAoiAUECakHACEEKEC8NAUEGIQAMAgtBACgCsAoiAS8BAkHpAEcNACABLwEEQfQARw0AQQQhACABLwEGQegARg0BC0EAIAFBfmo2ArAKDwtBACABIABBAXRqNgKwCgJAQQEQKUH7AEYNAEEAIAE2ArAKDwtBACgCsAoiAiEAA0BBACAAQQJqNgKwCgJAAkACQEEBECkiAEEiRg0AIABBJ0cNAUEnEBpBAEEAKAKwCkECajYCsApBARApIQAMAgtBIhAaQQBBACgCsApBAmo2ArAKQQEQKSEADAELIAAQLCEACwJAIABBOkYNAEEAIAE2ArAKDwtBAEEAKAKwCkECajYCsAoCQEEBECkiAEEiRg0AIABBJ0YNAEEAIAE2ArAKDwsgABAaQQBBACgCsApBAmo2ArAKAkACQEEBECkiAEEsRg0AIABB/QBGDQFBACABNgKwCg8LQQBBACgCsApBAmo2ArAKQQEQKUH9AEYNAEEAKAKwCiEADAELC0EAKALwCSIBIAI2AhAgAUEAKAKwCkECajYCDAttAQJ/AkACQANAAkAgAEH//wNxIgFBd2oiAkEXSw0AQQEgAnRBn4CABHENAgsgAUGgAUYNASAAIQIgARAoDQJBACECQQBBACgCsAoiAEECajYCsAogAC8BAiIADQAMAgsLIAAhAgsgAkH//wNxC6sBAQR/AkACQEEAKAKwCiICLwEAIgNB4QBGDQAgASEEIAAhBQwBC0EAIAJBBGo2ArAKQQEQKSECQQAoArAKIQUCQAJAIAJBIkYNACACQSdGDQAgAhAsGkEAKAKwCiEEDAELIAIQGkEAQQAoArAKQQJqIgQ2ArAKC0EBECkhA0EAKAKwCiECCwJAIAIgBUYNACAFIARBACAAIAAgAUYiAhtBACABIAIbEAILIAMLcgEEf0EAKAKwCiEAQQAoArQKIQECQAJAA0AgAEECaiECIAAgAU8NAQJAAkAgAi8BACIDQaR/ag4CAQQACyACIQAgA0F2ag4EAgEBAgELIABBBGohAAwACwtBACACNgKwChAlQQAPC0EAIAI2ArAKQd0AC0kBA39BACEDAkAgAkUNAAJAA0AgAC0AACIEIAEtAAAiBUcNASABQQFqIQEgAEEBaiEAIAJBf2oiAg0ADAILCyAEIAVrIQMLIAMLC+wBAgBBgAgLzgEAAHgAcABvAHIAdABtAHAAbwByAHQAZgBvAHIAZQB0AGEAbwB1AHIAYwBlAHIAbwBtAHUAbgBjAHQAaQBvAG4AcwBzAGUAcgB0AHYAbwB5AGkAZQBkAGUAbABlAGMAbwBuAHQAaQBuAGkAbgBzAHQAYQBuAHQAeQBiAHIAZQBhAHIAZQB0AHUAcgBkAGUAYgB1AGcAZwBlAGEAdwBhAGkAdABoAHIAdwBoAGkAbABlAGkAZgBjAGEAdABjAGYAaQBuAGEAbABsAGUAbABzAABB0AkLEAEAAAACAAAAAAQAAEA5AAA=",typeof Buffer<"u"?Buffer.from(Y,"base64"):Uint8Array.from(atob(Y),(A=>A.charCodeAt(0))))).then(WebAssembly.instantiate).then((({exports:A})=>{a=A})),Y;var H=(A,e)=>` fetching ${A}${e?` from ${e}`:""}`,bA=/^(text|application)\/(x-)?javascript(;|$)/;async function BA(A,e,t){let Q;try{Q=await fetch(A,e)}catch{throw Error(`Network error${H(A,t)}.`)}if(!Q.ok)throw Error(`Error ${Q.status}${H(A,t)}.`);let o=Q.headers.get("content-type");if(!bA.test(o))throw Error(`Bad Content-Type "${o}"${H(A,t)}.`);return{responseUrl:Q.url,source:await Q.text()}}var y=x,EA=window.document.querySelector("script#wp-importmap[type=importmap]"),m=EA?JSON.parse(EA.text):{imports:{},scopes:{}},CA=A=>Object.keys(m.imports).includes(A),$A={},h={};Object.keys(m.imports).forEach(A=>{h[A]={blobUrl:A}});async function gA(A,e){A.blobUrl||e[A.url]||(e[A.url]=1,await A.linkPromise,await Promise.all(A.deps.map(t=>gA(t,e))))}function iA(A){return`'${A.replace(/'/g,"\\'")}'`}var sA=(A,e="text/javascript")=>URL.createObjectURL(new Blob([A],{type:e}));function aA(A,e){if(A.blobUrl||!e[A.url])return;e[A.url]=0;for(let i of A.deps)aA(i,e);let[t,Q]=A.analysis,o=A.source,B="";if(!t.length)B+=o;else{let i=function(r){for(;g.length&&g[g.length-1]<r;){let c=g.pop();B+=`${o.slice(s,c)}, ${iA(A.responseUrl)}`,s=c}B+=o.slice(s,r),s=r},s=0,C=0,g=[];for(let{s:r,ss:c,se:I,d:l}of t)if(l===-1){let n=A.deps[C++],f=n.blobUrl,j=!f;j&&((f=n.shellUrl)||(f=n.shellUrl=sA(`export function u$_(m){${n.analysis[1].map(({s:d,e:u},S)=>{let Z=n.source[d]==='"'||n.source[d]==="'";return`e$_${S}=m${Z?"[":"."}${n.source.slice(d,u)}${Z?"]":""}`}).join(",")}}${n.analysis[1].length?`let ${n.analysis[1].map((d,u)=>`e$_${u}`).join(",")};`:""}export {${n.analysis[1].map(({s:d,e:u},S)=>`e$_${S} as ${n.source.slice(d,u)}`).join(",")}} //# sourceURL=${n.responseUrl}?cycle`))),i(r-1),B+=`/*${o.slice(r-1,I)}*/${iA(f)}`,!j&&n.shellUrl&&(B+=`;import*as m$_${C} from'${n.blobUrl}';import{u$_ as u$_${C}}from'${n.shellUrl}';u$_${C}(m$_${C})`,n.shellUrl=void 0),s=I}else{if(l===-2)throw Error("The import.meta property is not supported.");i(c),B+="wpInteractivityRouterImport(",g.push(I-1),s=r}A.shellUrl&&(B+=` ;import{u$_}from'${A.shellUrl}';try{u$_({${Q.filter(r=>r.ln).map(({s:r,e:c,ln:I})=>`${o.slice(r,c)}:${I}`).join(",")}})}catch(_){}; `),i(o.length)}let E=!1;B=B.replace(OA,(i,s,C)=>(E=!s,i.replace(C,()=>new URL(C,A.responseUrl).toString()))),E||(B+=` //# sourceURL=`+A.responseUrl),A.blobUrl=sA(B),A.source=void 0}var OA=/\n\/\/# source(Mapping)?URL=([^\n]+)\s*((;|\/\/[^#][^\n]*)\s*)*$/;function nA(A,e,t){let Q=h[A];if(Q)return Q;if(Q={url:A},h[A]){let o=0;for(;h[Q.url+ ++o];);Q.url+=o}return h[Q.url]=Q,Q.fetchPromise=(async()=>{let o;({responseUrl:Q.responseUrl,source:o}=await($A[A]||BA(A,e,t)));try{Q.analysis=q(o,Q.url)}catch(B){console.error(B),Q.analysis=[[],[],!1,!1]}return Q.source=o,Q})(),Q.linkPromise=Q.fetchPromise.then(async()=>{let o=e;Q.deps=(await Promise.all(Q.analysis[0].map(async({n:B,d:E})=>{if(E!==-1||!B)return;let i=D(B,Q.responseUrl||Q.url);return CA&&CA(i)?{blobUrl:i}:(o.integrity&&(o={...o,integrity:void 0}),nA(i,o,Q.responseUrl).fetchPromise)}))).filter(B=>B)}),Q}var rA=A=>import(A);async function P(A,e){await y;let t=nA(A,e,null),Q={};return await gA(t,Q),aA(t,Q),await Promise.resolve(),t}async function J(A){let e=await rA(A.blobUrl);return A.shellUrl&&(await rA(A.shellUrl)).u$_(e),e}async function cA(A,e){let t=await P(A,e);return J(t)}var XA=document.baseURI,IA=XA;Object.defineProperty(self,"wpInteractivityRouterImport",{value:TA,writable:!1,enumerable:!1,configurable:!1});async function TA(A){return await y,cA(D(A,IA),{credentials:"same-origin"})}async function lA(A,e){return tA(e),await y,P(D(A,IA),{credentials:"same-origin"})}var wA=new Set,pA=A=>{wA.add(A)},fA=A=>{let e=A.querySelector("script#wp-importmap[type=importmap]"),t=e?JSON.parse(e.text):{imports:{},scopes:{}};for(let o in m.imports)delete t.imports[o];return[...A.querySelectorAll("script[type=module][src][data-wp-router-options]")].filter(o=>{try{return JSON.parse(o.getAttribute("data-wp-router-options"))?.loadOnClientNavigation===!0}catch{return!1}}).map(o=>o.src).filter(o=>!wA.has(o)).map(o=>lA(o,t))},dA=A=>Promise.all(A.map(e=>J(e)));var{getRegionRootFragment:ZA,initialVdomPromise:VA,toVdom:WA,render:zA,parseServerData:_A,populateServerData:Ae,batch:T,routerRegions:b,h:ee,navigationSignal:Qe,sessionId:te,warn:De}=jA("I acknowledge that using private APIs means my theme or plugin will inevitably break in the next version of WordPress."),R="data-wp-router-region",$="data-wp-interactive",LA=`[${$}][${R}], [${$}] [${$}][${R}]`,p=new Map,N=A=>{let e=new URL(A,window.location.href);return e.pathname+e.search},NA=A=>{let e=A.getAttribute(R);try{let{id:t,attachTo:Q}=JSON.parse(e);return{id:t,attachTo:Q}}catch{return{id:e}}},oe=A=>{if(!A)return A;let e=A.props.priorityLevels,t=e.findIndex(o=>o.includes("router-region")),Q=t!==-1?e.slice(t+1):e;return Q.length>0?ee(A.type,{...A.props,priorityLevels:Q}):A.props.element},v=new WeakMap,O=new WeakMap,yA=new Set,Be=async(A,{html:e})=>{try{if(!e){let Q=await window.fetch(A);if(Q.status!==200)return!1;e=await Q.text()}let t=new window.DOMParser().parseFromString(e,"text/html");return await JA(A,t)}catch{return!1}},JA=async(A,e,{vdom:t}={})=>{e.querySelectorAll("noscript").forEach(C=>C.remove());let Q={},o={};e.querySelectorAll(LA).forEach(C=>{let{id:g,attachTo:r}=NA(C);C.parentElement.closest(`[${R}]`)?Q[g]=void 0:Q[g]=t?.has(C)?t.get(C):WA(C),r&&!yA.has(g)&&(o[g]=r)});let B=e.querySelector("title")?.innerText,E=_A(e),[i,s]=await Promise.all([Promise.all(z(e)),Promise.all(fA(e))]);return{regions:Q,regionsToAttach:o,styles:i,scriptModules:s,title:B,initialData:E,url:A}},vA=A=>{_(A.styles);let e={...A.regionsToAttach};T(()=>{Ae(A.initialData),Qe.value+=1,b.forEach(Q=>{Q.value=null});let t=new Set;for(let Q in e){let o=document.querySelector(e[Q]);v.has(o)||v.set(o,[]);let B=v.get(o);B.includes(Q)||(B.push(Q),t.add(o))}for(let Q in A.regions)b.has(Q)&&(b.get(Q).value=oe(A.regions[Q]));t.forEach(Q=>{let B=v.get(Q).map(i=>A.regions[i]);if(!O.has(Q)){let i=B.map(({props:s,type:C})=>{let g=typeof C=="function"?s.type:C,r=document.createElement(g);return Q.appendChild(r),r});O.set(Q,ZA(i))}let E=O.get(Q);zA(B,E)})}),A.title&&(document.title=A.title)},KA=A=>(window.location.assign(A),new Promise(()=>{}));window.addEventListener("popstate",async()=>{let A=N(window.location.href),e=p.has(A)&&await p.get(A);e?T(()=>{w.url=window.location.href,vA(e)}):window.location.reload()});document.querySelectorAll(LA).forEach(A=>{let{id:e,attachTo:t}=NA(A);t&&yA.add(e)});window.document.querySelectorAll("script[type=module][src]").forEach(({src:A})=>pA(A));(async()=>{let A=await VA;p.set(N(window.location.href),Promise.resolve(JA(N(window.location.href),document,{vdom:A})))})();var X="",kA=!1,L={loading:"Loading page, please wait.",loaded:"Page Loaded."},{state:DA}=mA("core/router/private",{state:{navigation:{hasStarted:!1,hasFinished:!1}}},{lock:!0}),{state:w,actions:Ee}=mA("core/router",{state:{get navigation(){return DA.navigation}},actions:{*navigate(A,e={}){let{clientNavigationDisabled:t}=uA();t&&(yield KA(A));let Q=N(A),{navigation:o}=DA,{loadingAnimation:B=!0,screenReaderAnnouncement:E=!0,timeout:i=1e4}=e;X=A,Ee.prefetch(Q,e);let s=new Promise(r=>setTimeout(r,i)),C=setTimeout(()=>{X===A&&(B&&(o.hasStarted=!0,o.hasFinished=!1),E&&hA("loading"))},400),g=yield Promise.race([p.get(Q),s]);if(clearTimeout(C),X===A)if(g&&!g.initialData?.config?.["core/router"]?.clientNavigationDisabled){yield dA(g.scriptModules),T(()=>{w.url=A,B&&(o.hasStarted=!1,o.hasFinished=!0),vA(g)}),window.history[e.replace?"replaceState":"pushState"]({wpInteractivityId:te},"",A),E&&hA("loaded");let{hash:r}=new URL(A,window.location.href);r&&document.querySelector(r)?.scrollIntoView()}else yield KA(A)},*prefetch(A,e={}){let{clientNavigationDisabled:t}=uA();if(t)return;let Q=N(A);(e.force||!p.has(Q))&&p.set(Q,Be(Q,{html:e.html})),yield p.get(Q)}}});w.url=w.url||window.location.href;function hA(A){if(!kA){kA=!0;let t=document.getElementById("wp-script-module-data-@wordpress/interactivity-router")?.textContent;if(t)try{let Q=JSON.parse(t);typeof Q?.i18n?.loading=="string"&&(L.loading=Q.i18n.loading),typeof Q?.i18n?.loaded=="string"&&(L.loaded=Q.i18n.loaded)}catch{}else w.navigation.texts?.loading&&(L.loading=w.navigation.texts.loading),w.navigation.texts?.loaded&&(L.loaded=w.navigation.texts.loaded)}let e=L[A];import("@wordpress/a11y").then(({speak:t})=>t(e),()=>{})}export{Ee as actions,w as state}; interactivity-router/index.js 0000644 00000126610 15206736335 0012445 0 ustar 00 // packages/interactivity-router/build-module/index.mjs import { store, privateApis, getConfig } from "@wordpress/interactivity"; // packages/interactivity-router/build-module/assets/scs.mjs function shortestCommonSupersequence(X, Y, isEqual = (a, b) => a === b) { const m = X.length; const n = Y.length; const dp = Array.from( { length: m + 1 }, () => Array(n + 1).fill(null) ); for (let i = 0; i <= m; i++) { dp[i][0] = X.slice(0, i); } for (let j = 0; j <= n; j++) { dp[0][j] = Y.slice(0, j); } for (let i = 1; i <= m; i++) { for (let j = 1; j <= n; j++) { if (isEqual(X[i - 1], Y[j - 1])) { dp[i][j] = dp[i - 1][j - 1].concat(X[i - 1]); } else { const option1 = dp[i - 1][j].concat(X[i - 1]); const option2 = dp[i][j - 1].concat(Y[j - 1]); dp[i][j] = option1.length <= option2.length ? option1 : option2; } } } return dp[m][n]; } // packages/interactivity-router/build-module/assets/styles.mjs var areNodesEqual = (a, b) => a.isEqualNode(b); var normalizeMedia = (element) => { element = element.cloneNode(true); const media = element.media; const { originalMedia } = element.dataset; if (media === "preload") { element.media = originalMedia || "all"; element.removeAttribute("data-original-media"); } else if (!element.media) { element.media = "all"; } return element; }; function updateStylesWithSCS(X, Y, parent = window.document.head) { if (X.length === 0) { return Y.map((element) => { const promise = prepareStylePromise(element); parent.appendChild(element); return promise; }); } const xNormalized = X.map(normalizeMedia); const yNormalized = Y.map(normalizeMedia); const scs = shortestCommonSupersequence( xNormalized, yNormalized, areNodesEqual ); const xLength = X.length; const yLength = Y.length; const promises = []; let last = X[xLength - 1]; let xIndex = 0; let yIndex = 0; for (const scsElement of scs) { const xElement = X[xIndex]; const yElement = Y[yIndex]; const xNormEl = xNormalized[xIndex]; const yNormEl = yNormalized[yIndex]; if (xIndex < xLength && areNodesEqual(xNormEl, scsElement)) { if (yIndex < yLength && areNodesEqual(yNormEl, scsElement)) { promises.push(prepareStylePromise(xElement)); yIndex++; } xIndex++; } else { promises.push(prepareStylePromise(yElement)); if (xIndex < xLength) { xElement.before(yElement); } else { last.after(yElement); last = yElement; } yIndex++; } } return promises; } var stylePromiseCache = /* @__PURE__ */ new WeakMap(); var prepareStylePromise = (element) => { if (stylePromiseCache.has(element)) { return stylePromiseCache.get(element); } if (window.document.contains(element) && element.media !== "preload") { const promise2 = Promise.resolve(element); stylePromiseCache.set(element, promise2); return promise2; } if (element.hasAttribute("media") && element.media !== "all") { element.dataset.originalMedia = element.media; } element.media = "preload"; if (element instanceof HTMLStyleElement) { const promise2 = Promise.resolve(element); stylePromiseCache.set(element, promise2); return promise2; } const promise = new Promise((resolve2, reject) => { element.addEventListener("load", () => resolve2(element)); element.addEventListener("error", (event) => { const { href } = event.target; reject( Error( `The style sheet with the following URL failed to load: ${href}` ) ); }); }); stylePromiseCache.set(element, promise); return promise; }; var preloadStyles = (doc) => { const currentStyleElements = Array.from( window.document.querySelectorAll( "style,link[rel=stylesheet]" ) ); const newStyleElements = Array.from( doc.querySelectorAll("style,link[rel=stylesheet]") ); return updateStylesWithSCS(currentStyleElements, newStyleElements); }; var applyStyles = (styles) => { window.document.querySelectorAll("style,link[rel=stylesheet]").forEach((el) => { if (el.sheet) { if (styles.includes(el)) { if (el.sheet.media.mediaText === "preload") { const { originalMedia = "all" } = el.dataset; el.sheet.media.mediaText = originalMedia; } el.sheet.disabled = false; } else { el.sheet.disabled = true; } } }); }; // packages/interactivity-router/build-module/assets/dynamic-importmap/resolver.mjs var backslashRegEx = /\\/g; function isURL(url) { if (url.indexOf(":") === -1) { return false; } try { new URL(url); return true; } catch (_) { return false; } } function resolveIfNotPlainOrUrl(relUrl, parentUrl) { const hIdx = parentUrl.indexOf("#"), qIdx = parentUrl.indexOf("?"); if (hIdx + qIdx > -2) { parentUrl = parentUrl.slice( 0, // eslint-disable-next-line no-nested-ternary hIdx === -1 ? qIdx : qIdx === -1 || qIdx > hIdx ? hIdx : qIdx ); } if (relUrl.indexOf("\\") !== -1) { relUrl = relUrl.replace(backslashRegEx, "/"); } if (relUrl[0] === "/" && relUrl[1] === "/") { return parentUrl.slice(0, parentUrl.indexOf(":") + 1) + relUrl; } else if (relUrl[0] === "." && (relUrl[1] === "/" || relUrl[1] === "." && (relUrl[2] === "/" || relUrl.length === 2 && (relUrl += "/")) || relUrl.length === 1 && (relUrl += "/")) || relUrl[0] === "/") { const parentProtocol = parentUrl.slice( 0, parentUrl.indexOf(":") + 1 ); let pathname; if (parentUrl[parentProtocol.length + 1] === "/") { if (parentProtocol !== "file:") { pathname = parentUrl.slice(parentProtocol.length + 2); pathname = pathname.slice(pathname.indexOf("/") + 1); } else { pathname = parentUrl.slice(8); } } else { pathname = parentUrl.slice( parentProtocol.length + (parentUrl[parentProtocol.length] === "/") ); } if (relUrl[0] === "/") { return parentUrl.slice(0, parentUrl.length - pathname.length - 1) + relUrl; } const segmented = pathname.slice(0, pathname.lastIndexOf("/") + 1) + relUrl; const output = []; let segmentIndex = -1; for (let i = 0; i < segmented.length; i++) { if (segmentIndex !== -1) { if (segmented[i] === "/") { output.push(segmented.slice(segmentIndex, i + 1)); segmentIndex = -1; } continue; } else if (segmented[i] === ".") { if (segmented[i + 1] === "." && (segmented[i + 2] === "/" || i + 2 === segmented.length)) { output.pop(); i += 2; continue; } else if (segmented[i + 1] === "/" || i + 1 === segmented.length) { i += 1; continue; } } while (segmented[i] === "/") { i++; } segmentIndex = i; } if (segmentIndex !== -1) { output.push(segmented.slice(segmentIndex)); } return parentUrl.slice(0, parentUrl.length - pathname.length) + output.join(""); } } function resolveUrl(relUrl, parentUrl) { return resolveIfNotPlainOrUrl(relUrl, parentUrl) || (isURL(relUrl) ? relUrl : resolveIfNotPlainOrUrl("./" + relUrl, parentUrl)); } function getMatch(path, matchObj) { if (matchObj[path]) { return path; } let sepIndex = path.length; do { const segment = path.slice(0, sepIndex + 1); if (segment in matchObj) { return segment; } } while ((sepIndex = path.lastIndexOf("/", sepIndex - 1)) !== -1); } function applyPackages(id, packages) { const pkgName = getMatch(id, packages); if (pkgName) { const pkg = packages[pkgName]; if (pkg === null) { return; } return pkg + id.slice(pkgName.length); } } function resolveImportMap(importMap2, resolvedOrPlain, parentUrl) { let scopeUrl = parentUrl && getMatch(parentUrl, importMap2.scopes); while (scopeUrl) { const packageResolution = applyPackages( resolvedOrPlain, importMap2.scopes[scopeUrl] ); if (packageResolution) { return packageResolution; } scopeUrl = getMatch( scopeUrl.slice(0, scopeUrl.lastIndexOf("/")), importMap2.scopes ); } return applyPackages(resolvedOrPlain, importMap2.imports) || resolvedOrPlain.indexOf(":") !== -1 && resolvedOrPlain; } function resolveAndComposePackages(packages, outPackages, baseUrl22, parentMap) { for (const p in packages) { const resolvedLhs = resolveIfNotPlainOrUrl(p, baseUrl22) || p; const target = packages[p]; if (typeof target !== "string") { continue; } const mapped = resolveImportMap( parentMap, resolveIfNotPlainOrUrl(target, baseUrl22) || target, baseUrl22 ); if (mapped) { outPackages[resolvedLhs] = mapped; continue; } } } function resolveAndComposeImportMap(json, baseUrl22, parentMap) { const outMap = { imports: Object.assign({}, parentMap.imports), scopes: Object.assign({}, parentMap.scopes) }; if (json.imports) { resolveAndComposePackages( json.imports, outMap.imports, baseUrl22, parentMap ); } if (json.scopes) { for (const s in json.scopes) { const resolvedScope = resolveUrl(s, baseUrl22); resolveAndComposePackages( json.scopes[s], outMap.scopes[resolvedScope] || (outMap.scopes[resolvedScope] = {}), baseUrl22, parentMap ); } } return outMap; } var importMap = { imports: {}, scopes: {} }; var baseUrl = document.baseURI; var pageBaseUrl = baseUrl; function addImportMap(importMapIn) { importMap = resolveAndComposeImportMap( importMapIn, pageBaseUrl, importMap ); } function resolve(id, parentUrl) { const urlResolved = resolveIfNotPlainOrUrl(id, parentUrl); return resolveImportMap(importMap, urlResolved || id, parentUrl) || id; } // node_modules/es-module-lexer/dist/lexer.js var ImportType; !(function(A2) { A2[A2.Static = 1] = "Static", A2[A2.Dynamic = 2] = "Dynamic", A2[A2.ImportMeta = 3] = "ImportMeta", A2[A2.StaticSourcePhase = 4] = "StaticSourcePhase", A2[A2.DynamicSourcePhase = 5] = "DynamicSourcePhase"; })(ImportType || (ImportType = {})); var A = 1 === new Uint8Array(new Uint16Array([1]).buffer)[0]; function parse(E2, g = "@") { if (!C) return init.then((() => parse(E2))); const I = E2.length + 1, w = (C.__heap_base.value || C.__heap_base) + 4 * I - C.memory.buffer.byteLength; w > 0 && C.memory.grow(Math.ceil(w / 65536)); const K = C.sa(I - 1); if ((A ? B : Q)(E2, new Uint16Array(C.memory.buffer, K, I)), !C.parse()) throw Object.assign(new Error(`Parse error ${g}:${E2.slice(0, C.e()).split("\n").length}:${C.e() - E2.lastIndexOf("\n", C.e() - 1)}`), { idx: C.e() }); const D = [], o = []; for (; C.ri(); ) { const A2 = C.is(), Q2 = C.ie(), B2 = C.it(), g2 = C.ai(), I2 = C.id(), w2 = C.ss(), K2 = C.se(); let o2; C.ip() && (o2 = k(E2.slice(-1 === I2 ? A2 - 1 : A2, -1 === I2 ? Q2 + 1 : Q2))), D.push({ n: o2, t: B2, s: A2, e: Q2, ss: w2, se: K2, d: I2, a: g2 }); } for (; C.re(); ) { const A2 = C.es(), Q2 = C.ee(), B2 = C.els(), g2 = C.ele(), I2 = E2.slice(A2, Q2), w2 = I2[0], K2 = B2 < 0 ? void 0 : E2.slice(B2, g2), D2 = K2 ? K2[0] : ""; o.push({ s: A2, e: Q2, ls: B2, le: g2, n: '"' === w2 || "'" === w2 ? k(I2) : I2, ln: '"' === D2 || "'" === D2 ? k(K2) : K2 }); } function k(A2) { try { return (0, eval)(A2); } catch (A3) { } } return [D, o, !!C.f(), !!C.ms()]; } function Q(A2, Q2) { const B2 = A2.length; let C2 = 0; for (; C2 < B2; ) { const B3 = A2.charCodeAt(C2); Q2[C2++] = (255 & B3) << 8 | B3 >>> 8; } } function B(A2, Q2) { const B2 = A2.length; let C2 = 0; for (; C2 < B2; ) Q2[C2] = A2.charCodeAt(C2++); } var C; var init = WebAssembly.compile((E = "AGFzbQEAAAABKwhgAX8Bf2AEf39/fwBgAAF/YAAAYAF/AGADf39/AX9gAn9/AX9gA39/fwADMTAAAQECAgICAgICAgICAgICAgICAgIAAwMDBAQAAAUAAAAAAAMDAwAGAAAABwAGAgUEBQFwAQEBBQMBAAEGDwJ/AUHA8gALfwBBwPIACwd6FQZtZW1vcnkCAAJzYQAAAWUAAwJpcwAEAmllAAUCc3MABgJzZQAHAml0AAgCYWkACQJpZAAKAmlwAAsCZXMADAJlZQANA2VscwAOA2VsZQAPAnJpABACcmUAEQFmABICbXMAEwVwYXJzZQAUC19faGVhcF9iYXNlAwEKm0EwaAEBf0EAIAA2AoAKQQAoAtwJIgEgAEEBdGoiAEEAOwEAQQAgAEECaiIANgKECkEAIAA2AogKQQBBADYC4AlBAEEANgLwCUEAQQA2AugJQQBBADYC5AlBAEEANgL4CUEAQQA2AuwJIAEL0wEBA39BACgC8AkhBEEAQQAoAogKIgU2AvAJQQAgBDYC9AlBACAFQSRqNgKICiAEQSBqQeAJIAQbIAU2AgBBACgC1AkhBEEAKALQCSEGIAUgATYCACAFIAA2AgggBSACIAJBAmpBACAGIANGIgAbIAQgA0YiBBs2AgwgBSADNgIUIAVBADYCECAFIAI2AgQgBUEANgIgIAVBA0EBQQIgABsgBBs2AhwgBUEAKALQCSADRiICOgAYAkACQCACDQBBACgC1AkgA0cNAQtBAEEBOgCMCgsLXgEBf0EAKAL4CSIEQRBqQeQJIAQbQQAoAogKIgQ2AgBBACAENgL4CUEAIARBFGo2AogKQQBBAToAjAogBEEANgIQIAQgAzYCDCAEIAI2AgggBCABNgIEIAQgADYCAAsIAEEAKAKQCgsVAEEAKALoCSgCAEEAKALcCWtBAXULHgEBf0EAKALoCSgCBCIAQQAoAtwJa0EBdUF/IAAbCxUAQQAoAugJKAIIQQAoAtwJa0EBdQseAQF/QQAoAugJKAIMIgBBACgC3AlrQQF1QX8gABsLCwBBACgC6AkoAhwLHgEBf0EAKALoCSgCECIAQQAoAtwJa0EBdUF/IAAbCzsBAX8CQEEAKALoCSgCFCIAQQAoAtAJRw0AQX8PCwJAIABBACgC1AlHDQBBfg8LIABBACgC3AlrQQF1CwsAQQAoAugJLQAYCxUAQQAoAuwJKAIAQQAoAtwJa0EBdQsVAEEAKALsCSgCBEEAKALcCWtBAXULHgEBf0EAKALsCSgCCCIAQQAoAtwJa0EBdUF/IAAbCx4BAX9BACgC7AkoAgwiAEEAKALcCWtBAXVBfyAAGwslAQF/QQBBACgC6AkiAEEgakHgCSAAGygCACIANgLoCSAAQQBHCyUBAX9BAEEAKALsCSIAQRBqQeQJIAAbKAIAIgA2AuwJIABBAEcLCABBAC0AlAoLCABBAC0AjAoL3Q0BBX8jAEGA0ABrIgAkAEEAQQE6AJQKQQBBACgC2Ak2ApwKQQBBACgC3AlBfmoiATYCsApBACABQQAoAoAKQQF0aiICNgK0CkEAQQA6AIwKQQBBADsBlgpBAEEAOwGYCkEAQQA6AKAKQQBBADYCkApBAEEAOgD8CUEAIABBgBBqNgKkCkEAIAA2AqgKQQBBADoArAoCQAJAAkACQANAQQAgAUECaiIDNgKwCiABIAJPDQECQCADLwEAIgJBd2pBBUkNAAJAAkACQAJAAkAgAkGbf2oOBQEICAgCAAsgAkEgRg0EIAJBL0YNAyACQTtGDQIMBwtBAC8BmAoNASADEBVFDQEgAUEEakGCCEEKEC8NARAWQQAtAJQKDQFBAEEAKAKwCiIBNgKcCgwHCyADEBVFDQAgAUEEakGMCEEKEC8NABAXC0EAQQAoArAKNgKcCgwBCwJAIAEvAQQiA0EqRg0AIANBL0cNBBAYDAELQQEQGQtBACgCtAohAkEAKAKwCiEBDAALC0EAIQIgAyEBQQAtAPwJDQIMAQtBACABNgKwCkEAQQA6AJQKCwNAQQAgAUECaiIDNgKwCgJAAkACQAJAAkACQAJAIAFBACgCtApPDQAgAy8BACICQXdqQQVJDQYCQAJAAkACQAJAAkACQAJAAkACQCACQWBqDgoQDwYPDw8PBQECAAsCQAJAAkACQCACQaB/ag4KCxISAxIBEhISAgALIAJBhX9qDgMFEQYJC0EALwGYCg0QIAMQFUUNECABQQRqQYIIQQoQLw0QEBYMEAsgAxAVRQ0PIAFBBGpBjAhBChAvDQ8QFwwPCyADEBVFDQ4gASkABELsgISDsI7AOVINDiABLwEMIgNBd2oiAUEXSw0MQQEgAXRBn4CABHFFDQwMDQtBAEEALwGYCiIBQQFqOwGYCkEAKAKkCiABQQN0aiIBQQE2AgAgAUEAKAKcCjYCBAwNC0EALwGYCiIDRQ0JQQAgA0F/aiIDOwGYCkEALwGWCiICRQ0MQQAoAqQKIANB//8DcUEDdGooAgBBBUcNDAJAIAJBAnRBACgCqApqQXxqKAIAIgMoAgQNACADQQAoApwKQQJqNgIEC0EAIAJBf2o7AZYKIAMgAUEEajYCDAwMCwJAQQAoApwKIgEvAQBBKUcNAEEAKALwCSIDRQ0AIAMoAgQgAUcNAEEAQQAoAvQJIgM2AvAJAkAgA0UNACADQQA2AiAMAQtBAEEANgLgCQtBAEEALwGYCiIDQQFqOwGYCkEAKAKkCiADQQN0aiIDQQZBAkEALQCsChs2AgAgAyABNgIEQQBBADoArAoMCwtBAC8BmAoiAUUNB0EAIAFBf2oiATsBmApBACgCpAogAUH//wNxQQN0aigCAEEERg0EDAoLQScQGgwJC0EiEBoMCAsgAkEvRw0HAkACQCABLwEEIgFBKkYNACABQS9HDQEQGAwKC0EBEBkMCQsCQAJAAkACQEEAKAKcCiIBLwEAIgMQG0UNAAJAAkAgA0FVag4EAAkBAwkLIAFBfmovAQBBK0YNAwwICyABQX5qLwEAQS1GDQIMBwsgA0EpRw0BQQAoAqQKQQAvAZgKIgJBA3RqKAIEEBxFDQIMBgsgAUF+ai8BAEFQakH//wNxQQpPDQULQQAvAZgKIQILAkACQCACQf//A3EiAkUNACADQeYARw0AQQAoAqQKIAJBf2pBA3RqIgQoAgBBAUcNACABQX5qLwEAQe8ARw0BIAQoAgRBlghBAxAdRQ0BDAULIANB/QBHDQBBACgCpAogAkEDdGoiAigCBBAeDQQgAigCAEEGRg0ECyABEB8NAyADRQ0DIANBL0ZBAC0AoApBAEdxDQMCQEEAKAL4CSICRQ0AIAEgAigCAEkNACABIAIoAgRNDQQLIAFBfmohAUEAKALcCSECAkADQCABQQJqIgQgAk0NAUEAIAE2ApwKIAEvAQAhAyABQX5qIgQhASADECBFDQALIARBAmohBAsCQCADQf//A3EQIUUNACAEQX5qIQECQANAIAFBAmoiAyACTQ0BQQAgATYCnAogAS8BACEDIAFBfmoiBCEBIAMQIQ0ACyAEQQJqIQMLIAMQIg0EC0EAQQE6AKAKDAcLQQAoAqQKQQAvAZgKIgFBA3QiA2pBACgCnAo2AgRBACABQQFqOwGYCkEAKAKkCiADakEDNgIACxAjDAULQQAtAPwJQQAvAZYKQQAvAZgKcnJFIQIMBwsQJEEAQQA6AKAKDAMLECVBACECDAULIANBoAFHDQELQQBBAToArAoLQQBBACgCsAo2ApwKC0EAKAKwCiEBDAALCyAAQYDQAGokACACCxoAAkBBACgC3AkgAEcNAEEBDwsgAEF+ahAmC/4KAQZ/QQBBACgCsAoiAEEMaiIBNgKwCkEAKAL4CSECQQEQKSEDAkACQAJAAkACQAJAAkACQAJAQQAoArAKIgQgAUcNACADEChFDQELAkACQAJAAkACQAJAAkAgA0EqRg0AIANB+wBHDQFBACAEQQJqNgKwCkEBECkhA0EAKAKwCiEEA0ACQAJAIANB//8DcSIDQSJGDQAgA0EnRg0AIAMQLBpBACgCsAohAwwBCyADEBpBAEEAKAKwCkECaiIDNgKwCgtBARApGgJAIAQgAxAtIgNBLEcNAEEAQQAoArAKQQJqNgKwCkEBECkhAwsgA0H9AEYNA0EAKAKwCiIFIARGDQ8gBSEEIAVBACgCtApNDQAMDwsLQQAgBEECajYCsApBARApGkEAKAKwCiIDIAMQLRoMAgtBAEEAOgCUCgJAAkACQAJAAkACQCADQZ9/ag4MAgsEAQsDCwsLCwsFAAsgA0H2AEYNBAwKC0EAIARBDmoiAzYCsAoCQAJAAkBBARApQZ9/ag4GABICEhIBEgtBACgCsAoiBSkAAkLzgOSD4I3AMVINESAFLwEKECFFDRFBACAFQQpqNgKwCkEAECkaC0EAKAKwCiIFQQJqQbIIQQ4QLw0QIAUvARAiAkF3aiIBQRdLDQ1BASABdEGfgIAEcUUNDQwOC0EAKAKwCiIFKQACQuyAhIOwjsA5Ug0PIAUvAQoiAkF3aiIBQRdNDQYMCgtBACAEQQpqNgKwCkEAECkaQQAoArAKIQQLQQAgBEEQajYCsAoCQEEBECkiBEEqRw0AQQBBACgCsApBAmo2ArAKQQEQKSEEC0EAKAKwCiEDIAQQLBogA0EAKAKwCiIEIAMgBBACQQBBACgCsApBfmo2ArAKDwsCQCAEKQACQuyAhIOwjsA5Ug0AIAQvAQoQIEUNAEEAIARBCmo2ArAKQQEQKSEEQQAoArAKIQMgBBAsGiADQQAoArAKIgQgAyAEEAJBAEEAKAKwCkF+ajYCsAoPC0EAIARBBGoiBDYCsAoLQQAgBEEGajYCsApBAEEAOgCUCkEBECkhBEEAKAKwCiEDIAQQLCEEQQAoArAKIQIgBEHf/wNxIgFB2wBHDQNBACACQQJqNgKwCkEBECkhBUEAKAKwCiEDQQAhBAwEC0EAQQE6AIwKQQBBACgCsApBAmo2ArAKC0EBECkhBEEAKAKwCiEDAkAgBEHmAEcNACADQQJqQawIQQYQLw0AQQAgA0EIajYCsAogAEEBEClBABArIAJBEGpB5AkgAhshAwNAIAMoAgAiA0UNBSADQgA3AgggA0EQaiEDDAALC0EAIANBfmo2ArAKDAMLQQEgAXRBn4CABHFFDQMMBAtBASEECwNAAkACQCAEDgIAAQELIAVB//8DcRAsGkEBIQQMAQsCQAJAQQAoArAKIgQgA0YNACADIAQgAyAEEAJBARApIQQCQCABQdsARw0AIARBIHJB/QBGDQQLQQAoArAKIQMCQCAEQSxHDQBBACADQQJqNgKwCkEBECkhBUEAKAKwCiEDIAVBIHJB+wBHDQILQQAgA0F+ajYCsAoLIAFB2wBHDQJBACACQX5qNgKwCg8LQQAhBAwACwsPCyACQaABRg0AIAJB+wBHDQQLQQAgBUEKajYCsApBARApIgVB+wBGDQMMAgsCQCACQVhqDgMBAwEACyACQaABRw0CC0EAIAVBEGo2ArAKAkBBARApIgVBKkcNAEEAQQAoArAKQQJqNgKwCkEBECkhBQsgBUEoRg0BC0EAKAKwCiEBIAUQLBpBACgCsAoiBSABTQ0AIAQgAyABIAUQAkEAQQAoArAKQX5qNgKwCg8LIAQgA0EAQQAQAkEAIARBDGo2ArAKDwsQJQvcCAEGf0EAIQBBAEEAKAKwCiIBQQxqIgI2ArAKQQEQKSEDQQAoArAKIQQCQAJAAkACQAJAAkACQAJAIANBLkcNAEEAIARBAmo2ArAKAkBBARApIgNB8wBGDQAgA0HtAEcNB0EAKAKwCiIDQQJqQZwIQQYQLw0HAkBBACgCnAoiBBAqDQAgBC8BAEEuRg0ICyABIAEgA0EIakEAKALUCRABDwtBACgCsAoiA0ECakGiCEEKEC8NBgJAQQAoApwKIgQQKg0AIAQvAQBBLkYNBwsgA0EMaiEDDAELIANB8wBHDQEgBCACTQ0BQQYhAEEAIQIgBEECakGiCEEKEC8NAiAEQQxqIQMCQCAELwEMIgVBd2oiBEEXSw0AQQEgBHRBn4CABHENAQsgBUGgAUcNAgtBACADNgKwCkEBIQBBARApIQMLAkACQAJAAkAgA0H7AEYNACADQShHDQFBACgCpApBAC8BmAoiA0EDdGoiBEEAKAKwCjYCBEEAIANBAWo7AZgKIARBBTYCAEEAKAKcCi8BAEEuRg0HQQBBACgCsAoiBEECajYCsApBARApIQMgAUEAKAKwCkEAIAQQAQJAAkAgAA0AQQAoAvAJIQQMAQtBACgC8AkiBEEFNgIcC0EAQQAvAZYKIgBBAWo7AZYKQQAoAqgKIABBAnRqIAQ2AgACQCADQSJGDQAgA0EnRg0AQQBBACgCsApBfmo2ArAKDwsgAxAaQQBBACgCsApBAmoiAzYCsAoCQAJAAkBBARApQVdqDgQBAgIAAgtBAEEAKAKwCkECajYCsApBARApGkEAKALwCSIEIAM2AgQgBEEBOgAYIARBACgCsAoiAzYCEEEAIANBfmo2ArAKDwtBACgC8AkiBCADNgIEIARBAToAGEEAQQAvAZgKQX9qOwGYCiAEQQAoArAKQQJqNgIMQQBBAC8BlgpBf2o7AZYKDwtBAEEAKAKwCkF+ajYCsAoPCyAADQJBACgCsAohA0EALwGYCg0BA0ACQAJAAkAgA0EAKAK0Ck8NAEEBECkiA0EiRg0BIANBJ0YNASADQf0ARw0CQQBBACgCsApBAmo2ArAKC0EBECkhBEEAKAKwCiEDAkAgBEHmAEcNACADQQJqQawIQQYQLw0JC0EAIANBCGo2ArAKAkBBARApIgNBIkYNACADQSdHDQkLIAEgA0EAECsPCyADEBoLQQBBACgCsApBAmoiAzYCsAoMAAsLIAANAUEGIQBBACECAkAgA0FZag4EBAMDBAALIANBIkYNAwwCC0EAIANBfmo2ArAKDwtBDCEAQQEhAgtBACgCsAoiAyABIABBAXRqRw0AQQAgA0F+ajYCsAoPC0EALwGYCg0CQQAoArAKIQNBACgCtAohAANAIAMgAE8NAQJAAkAgAy8BACIEQSdGDQAgBEEiRw0BCyABIAQgAhArDwtBACADQQJqIgM2ArAKDAALCxAlCw8LQQBBACgCsApBfmo2ArAKC0cBA39BACgCsApBAmohAEEAKAK0CiEBAkADQCAAIgJBfmogAU8NASACQQJqIQAgAi8BAEF2ag4EAQAAAQALC0EAIAI2ArAKC5gBAQN/QQBBACgCsAoiAUECajYCsAogAUEGaiEBQQAoArQKIQIDQAJAAkACQCABQXxqIAJPDQAgAUF+ai8BACEDAkACQCAADQAgA0EqRg0BIANBdmoOBAIEBAIECyADQSpHDQMLIAEvAQBBL0cNAkEAIAFBfmo2ArAKDAELIAFBfmohAQtBACABNgKwCg8LIAFBAmohAQwACwuIAQEEf0EAKAKwCiEBQQAoArQKIQICQAJAA0AgASIDQQJqIQEgAyACTw0BIAEvAQAiBCAARg0CAkAgBEHcAEYNACAEQXZqDgQCAQECAQsgA0EEaiEBIAMvAQRBDUcNACADQQZqIAEgAy8BBkEKRhshAQwACwtBACABNgKwChAlDwtBACABNgKwCgtsAQF/AkACQCAAQV9qIgFBBUsNAEEBIAF0QTFxDQELIABBRmpB//8DcUEGSQ0AIABBKUcgAEFYakH//wNxQQdJcQ0AAkAgAEGlf2oOBAEAAAEACyAAQf0ARyAAQYV/akH//wNxQQRJcQ8LQQELLgEBf0EBIQECQCAAQaYJQQUQHQ0AIABBlghBAxAdDQAgAEGwCUECEB0hAQsgAQtGAQN/QQAhAwJAIAAgAkEBdCICayIEQQJqIgBBACgC3AkiBUkNACAAIAEgAhAvDQACQCAAIAVHDQBBAQ8LIAQQJiEDCyADC4MBAQJ/QQEhAQJAAkACQAJAAkACQCAALwEAIgJBRWoOBAUEBAEACwJAIAJBm39qDgQDBAQCAAsgAkEpRg0EIAJB+QBHDQMgAEF+akG8CUEGEB0PCyAAQX5qLwEAQT1GDwsgAEF+akG0CUEEEB0PCyAAQX5qQcgJQQMQHQ8LQQAhAQsgAQu0AwECf0EAIQECQAJAAkACQAJAAkACQAJAAkACQCAALwEAQZx/ag4UAAECCQkJCQMJCQQFCQkGCQcJCQgJCwJAAkAgAEF+ai8BAEGXf2oOBAAKCgEKCyAAQXxqQcoIQQIQHQ8LIABBfGpBzghBAxAdDwsCQAJAAkAgAEF+ai8BAEGNf2oOAwABAgoLAkAgAEF8ai8BACICQeEARg0AIAJB7ABHDQogAEF6akHlABAnDwsgAEF6akHjABAnDwsgAEF8akHUCEEEEB0PCyAAQXxqQdwIQQYQHQ8LIABBfmovAQBB7wBHDQYgAEF8ai8BAEHlAEcNBgJAIABBemovAQAiAkHwAEYNACACQeMARw0HIABBeGpB6AhBBhAdDwsgAEF4akH0CEECEB0PCyAAQX5qQfgIQQQQHQ8LQQEhASAAQX5qIgBB6QAQJw0EIABBgAlBBRAdDwsgAEF+akHkABAnDwsgAEF+akGKCUEHEB0PCyAAQX5qQZgJQQQQHQ8LAkAgAEF+ai8BACICQe8ARg0AIAJB5QBHDQEgAEF8akHuABAnDwsgAEF8akGgCUEDEB0hAQsgAQs0AQF/QQEhAQJAIABBd2pB//8DcUEFSQ0AIABBgAFyQaABRg0AIABBLkcgABAocSEBCyABCzABAX8CQAJAIABBd2oiAUEXSw0AQQEgAXRBjYCABHENAQsgAEGgAUYNAEEADwtBAQtOAQJ/QQAhAQJAAkAgAC8BACICQeUARg0AIAJB6wBHDQEgAEF+akH4CEEEEB0PCyAAQX5qLwEAQfUARw0AIABBfGpB3AhBBhAdIQELIAEL3gEBBH9BACgCsAohAEEAKAK0CiEBAkACQAJAA0AgACICQQJqIQAgAiABTw0BAkACQAJAIAAvAQAiA0Gkf2oOBQIDAwMBAAsgA0EkRw0CIAIvAQRB+wBHDQJBACACQQRqIgA2ArAKQQBBAC8BmAoiAkEBajsBmApBACgCpAogAkEDdGoiAkEENgIAIAIgADYCBA8LQQAgADYCsApBAEEALwGYCkF/aiIAOwGYCkEAKAKkCiAAQf//A3FBA3RqKAIAQQNHDQMMBAsgAkEEaiEADAALC0EAIAA2ArAKCxAlCwtwAQJ/AkACQANAQQBBACgCsAoiAEECaiIBNgKwCiAAQQAoArQKTw0BAkACQAJAIAEvAQAiAUGlf2oOAgECAAsCQCABQXZqDgQEAwMEAAsgAUEvRw0CDAQLEC4aDAELQQAgAEEEajYCsAoMAAsLECULCzUBAX9BAEEBOgD8CUEAKAKwCiEAQQBBACgCtApBAmo2ArAKQQAgAEEAKALcCWtBAXU2ApAKC0MBAn9BASEBAkAgAC8BACICQXdqQf//A3FBBUkNACACQYABckGgAUYNAEEAIQEgAhAoRQ0AIAJBLkcgABAqcg8LIAELPQECf0EAIQICQEEAKALcCSIDIABLDQAgAC8BACABRw0AAkAgAyAARw0AQQEPCyAAQX5qLwEAECAhAgsgAgtoAQJ/QQEhAQJAAkAgAEFfaiICQQVLDQBBASACdEExcQ0BCyAAQfj/A3FBKEYNACAAQUZqQf//A3FBBkkNAAJAIABBpX9qIgJBA0sNACACQQFHDQELIABBhX9qQf//A3FBBEkhAQsgAQucAQEDf0EAKAKwCiEBAkADQAJAAkAgAS8BACICQS9HDQACQCABLwECIgFBKkYNACABQS9HDQQQGAwCCyAAEBkMAQsCQAJAIABFDQAgAkF3aiIBQRdLDQFBASABdEGfgIAEcUUNAQwCCyACECFFDQMMAQsgAkGgAUcNAgtBAEEAKAKwCiIDQQJqIgE2ArAKIANBACgCtApJDQALCyACCzEBAX9BACEBAkAgAC8BAEEuRw0AIABBfmovAQBBLkcNACAAQXxqLwEAQS5GIQELIAELnAQBAX8CQCABQSJGDQAgAUEnRg0AECUPC0EAKAKwCiEDIAEQGiAAIANBAmpBACgCsApBACgC0AkQAQJAIAJFDQBBACgC8AlBBDYCHAtBAEEAKAKwCkECajYCsAoCQAJAAkACQEEAECkiAUHhAEYNACABQfcARg0BQQAoArAKIQEMAgtBACgCsAoiAUECakHACEEKEC8NAUEGIQAMAgtBACgCsAoiAS8BAkHpAEcNACABLwEEQfQARw0AQQQhACABLwEGQegARg0BC0EAIAFBfmo2ArAKDwtBACABIABBAXRqNgKwCgJAQQEQKUH7AEYNAEEAIAE2ArAKDwtBACgCsAoiAiEAA0BBACAAQQJqNgKwCgJAAkACQEEBECkiAEEiRg0AIABBJ0cNAUEnEBpBAEEAKAKwCkECajYCsApBARApIQAMAgtBIhAaQQBBACgCsApBAmo2ArAKQQEQKSEADAELIAAQLCEACwJAIABBOkYNAEEAIAE2ArAKDwtBAEEAKAKwCkECajYCsAoCQEEBECkiAEEiRg0AIABBJ0YNAEEAIAE2ArAKDwsgABAaQQBBACgCsApBAmo2ArAKAkACQEEBECkiAEEsRg0AIABB/QBGDQFBACABNgKwCg8LQQBBACgCsApBAmo2ArAKQQEQKUH9AEYNAEEAKAKwCiEADAELC0EAKALwCSIBIAI2AhAgAUEAKAKwCkECajYCDAttAQJ/AkACQANAAkAgAEH//wNxIgFBd2oiAkEXSw0AQQEgAnRBn4CABHENAgsgAUGgAUYNASAAIQIgARAoDQJBACECQQBBACgCsAoiAEECajYCsAogAC8BAiIADQAMAgsLIAAhAgsgAkH//wNxC6sBAQR/AkACQEEAKAKwCiICLwEAIgNB4QBGDQAgASEEIAAhBQwBC0EAIAJBBGo2ArAKQQEQKSECQQAoArAKIQUCQAJAIAJBIkYNACACQSdGDQAgAhAsGkEAKAKwCiEEDAELIAIQGkEAQQAoArAKQQJqIgQ2ArAKC0EBECkhA0EAKAKwCiECCwJAIAIgBUYNACAFIARBACAAIAAgAUYiAhtBACABIAIbEAILIAMLcgEEf0EAKAKwCiEAQQAoArQKIQECQAJAA0AgAEECaiECIAAgAU8NAQJAAkAgAi8BACIDQaR/ag4CAQQACyACIQAgA0F2ag4EAgEBAgELIABBBGohAAwACwtBACACNgKwChAlQQAPC0EAIAI2ArAKQd0AC0kBA39BACEDAkAgAkUNAAJAA0AgAC0AACIEIAEtAAAiBUcNASABQQFqIQEgAEEBaiEAIAJBf2oiAg0ADAILCyAEIAVrIQMLIAMLC+wBAgBBgAgLzgEAAHgAcABvAHIAdABtAHAAbwByAHQAZgBvAHIAZQB0AGEAbwB1AHIAYwBlAHIAbwBtAHUAbgBjAHQAaQBvAG4AcwBzAGUAcgB0AHYAbwB5AGkAZQBkAGUAbABlAGMAbwBuAHQAaQBuAGkAbgBzAHQAYQBuAHQAeQBiAHIAZQBhAHIAZQB0AHUAcgBkAGUAYgB1AGcAZwBlAGEAdwBhAGkAdABoAHIAdwBoAGkAbABlAGkAZgBjAGEAdABjAGYAaQBuAGEAbABsAGUAbABzAABB0AkLEAEAAAACAAAAAAQAAEA5AAA=", "undefined" != typeof Buffer ? Buffer.from(E, "base64") : Uint8Array.from(atob(E), ((A2) => A2.charCodeAt(0))))).then(WebAssembly.instantiate).then((({ exports: A2 }) => { C = A2; })); var E; // packages/interactivity-router/build-module/assets/dynamic-importmap/fetch.mjs var fetching = (url, parent) => { return ` fetching ${url}${parent ? ` from ${parent}` : ""}`; }; var jsContentType = /^(text|application)\/(x-)?javascript(;|$)/; async function fetchModule(url, fetchOpts, parent) { let res; try { res = await fetch(url, fetchOpts); } catch (e) { throw Error(`Network error${fetching(url, parent)}.`); } if (!res.ok) { throw Error(`Error ${res.status}${fetching(url, parent)}.`); } const contentType = res.headers.get("content-type"); if (!jsContentType.test(contentType)) { throw Error( `Bad Content-Type "${contentType}"${fetching(url, parent)}.` ); } return { responseUrl: res.url, source: await res.text() }; } // packages/interactivity-router/build-module/assets/dynamic-importmap/loader.mjs var initPromise = init; var initialImportMapElement = window.document.querySelector( "script#wp-importmap[type=importmap]" ); var initialImportMap = initialImportMapElement ? JSON.parse(initialImportMapElement.text) : { imports: {}, scopes: {} }; var skip = (id) => Object.keys(initialImportMap.imports).includes(id); var fetchCache = {}; var registry = {}; Object.keys(initialImportMap.imports).forEach((id) => { registry[id] = { blobUrl: id }; }); async function loadAll(load, seen) { if (load.blobUrl || seen[load.url]) { return; } seen[load.url] = 1; await load.linkPromise; await Promise.all(load.deps.map((dep) => loadAll(dep, seen))); } function urlJsString(url) { return `'${url.replace(/'/g, "\\'")}'`; } var createBlob = (source, type = "text/javascript") => URL.createObjectURL(new Blob([source], { type })); function resolveDeps(load, seen) { if (load.blobUrl || !seen[load.url]) { return; } seen[load.url] = 0; for (const dep of load.deps) { resolveDeps(dep, seen); } const [imports, exports] = load.analysis; const source = load.source; let resolvedSource = ""; if (!imports.length) { resolvedSource += source; } else { let pushStringTo = function(originalIndex) { while (dynamicImportEndStack.length && dynamicImportEndStack[dynamicImportEndStack.length - 1] < originalIndex) { const dynamicImportEnd = dynamicImportEndStack.pop(); resolvedSource += `${source.slice( lastIndex, dynamicImportEnd )}, ${urlJsString(load.responseUrl)}`; lastIndex = dynamicImportEnd; } resolvedSource += source.slice(lastIndex, originalIndex); lastIndex = originalIndex; }; let lastIndex = 0; let depIndex = 0; const dynamicImportEndStack = []; for (const { s: start, ss: statementStart, se: statementEnd, d: dynamicImportIndex } of imports) { if (dynamicImportIndex === -1) { const depLoad = load.deps[depIndex++]; let blobUrl = depLoad.blobUrl; const cycleShell = !blobUrl; if (cycleShell) { if (!(blobUrl = depLoad.shellUrl)) { blobUrl = depLoad.shellUrl = createBlob( `export function u$_(m){${depLoad.analysis[1].map(({ s, e }, i) => { const q = depLoad.source[s] === '"' || depLoad.source[s] === "'"; return `e$_${i}=m${q ? `[` : "."}${depLoad.source.slice(s, e)}${q ? `]` : ""}`; }).join(",")}}${depLoad.analysis[1].length ? `let ${depLoad.analysis[1].map((_, i) => `e$_${i}`).join(",")};` : ""}export {${depLoad.analysis[1].map( ({ s, e }, i) => `e$_${i} as ${depLoad.source.slice( s, e )}` ).join(",")}} //# sourceURL=${depLoad.responseUrl}?cycle` ); } } pushStringTo(start - 1); resolvedSource += `/*${source.slice( start - 1, statementEnd )}*/${urlJsString(blobUrl)}`; if (!cycleShell && depLoad.shellUrl) { resolvedSource += `;import*as m$_${depIndex} from'${depLoad.blobUrl}';import{u$_ as u$_${depIndex}}from'${depLoad.shellUrl}';u$_${depIndex}(m$_${depIndex})`; depLoad.shellUrl = void 0; } lastIndex = statementEnd; } else if (dynamicImportIndex === -2) { throw Error("The import.meta property is not supported."); } else { pushStringTo(statementStart); resolvedSource += `wpInteractivityRouterImport(`; dynamicImportEndStack.push(statementEnd - 1); lastIndex = start; } } if (load.shellUrl) { resolvedSource += ` ;import{u$_}from'${load.shellUrl}';try{u$_({${exports.filter((e) => e.ln).map(({ s, e, ln }) => `${source.slice(s, e)}:${ln}`).join(",")}})}catch(_){}; `; } pushStringTo(source.length); } let hasSourceURL = false; resolvedSource = resolvedSource.replace( sourceMapURLRegEx, (match, isMapping, url) => { hasSourceURL = !isMapping; return match.replace( url, () => new URL(url, load.responseUrl).toString() ); } ); if (!hasSourceURL) { resolvedSource += "\n//# sourceURL=" + load.responseUrl; } load.blobUrl = createBlob(resolvedSource); load.source = void 0; } var sourceMapURLRegEx = /\n\/\/# source(Mapping)?URL=([^\n]+)\s*((;|\/\/[^#][^\n]*)\s*)*$/; function getOrCreateLoad(url, fetchOpts, parent) { let load = registry[url]; if (load) { return load; } load = { url }; if (registry[url]) { let i = 0; while (registry[load.url + ++i]) { } load.url += i; } registry[load.url] = load; load.fetchPromise = (async () => { let source; ({ responseUrl: load.responseUrl, source } = await (fetchCache[url] || fetchModule(url, fetchOpts, parent))); try { load.analysis = parse(source, load.url); } catch (e) { console.error(e); load.analysis = [[], [], false, false]; } load.source = source; return load; })(); load.linkPromise = load.fetchPromise.then(async () => { let childFetchOpts = fetchOpts; load.deps = (await Promise.all( load.analysis[0].map(async ({ n, d }) => { if (d !== -1 || !n) { return void 0; } const responseUrl = resolve( n, load.responseUrl || load.url ); if (skip && skip(responseUrl)) { return { blobUrl: responseUrl }; } if (childFetchOpts.integrity) { childFetchOpts = { ...childFetchOpts, integrity: void 0 }; } return getOrCreateLoad( responseUrl, childFetchOpts, load.responseUrl ).fetchPromise; }) )).filter((l) => l); }); return load; } var dynamicImport = (u) => import( /* webpackIgnore: true */ u ); async function preloadModule(url, fetchOpts) { await initPromise; const load = getOrCreateLoad(url, fetchOpts, null); const seen = {}; await loadAll(load, seen); resolveDeps(load, seen); await Promise.resolve(); return load; } async function importPreloadedModule(load) { const module = await dynamicImport(load.blobUrl); if (load.shellUrl) { (await dynamicImport(load.shellUrl)).u$_(module); } return module; } async function topLevelLoad(url, fetchOpts) { const load = await preloadModule(url, fetchOpts); return importPreloadedModule(load); } // packages/interactivity-router/build-module/assets/dynamic-importmap/index.mjs var baseUrl2 = document.baseURI; var pageBaseUrl2 = baseUrl2; Object.defineProperty(self, "wpInteractivityRouterImport", { value: importShim, writable: false, enumerable: false, configurable: false }); async function importShim(id) { await initPromise; return topLevelLoad(resolve(id, pageBaseUrl2), { credentials: "same-origin" }); } async function preloadWithMap(id, importMapIn) { addImportMap(importMapIn); await initPromise; return preloadModule(resolve(id, pageBaseUrl2), { credentials: "same-origin" }); } // packages/interactivity-router/build-module/assets/script-modules.mjs var resolvedScriptModules = /* @__PURE__ */ new Set(); var markScriptModuleAsResolved = (url) => { resolvedScriptModules.add(url); }; var preloadScriptModules = (doc) => { const importMapElement = doc.querySelector( "script#wp-importmap[type=importmap]" ); const importMap2 = importMapElement ? JSON.parse(importMapElement.text) : { imports: {}, scopes: {} }; for (const key in initialImportMap.imports) { delete importMap2.imports[key]; } const moduleUrls = [ ...doc.querySelectorAll( "script[type=module][src][data-wp-router-options]" ) ].filter((script) => { try { const parsed = JSON.parse( script.getAttribute("data-wp-router-options") ); return parsed?.loadOnClientNavigation === true; } catch { return false; } }).map((script) => script.src); return moduleUrls.filter((url) => !resolvedScriptModules.has(url)).map((url) => preloadWithMap(url, importMap2)); }; var importScriptModules = (modules) => Promise.all(modules.map((m) => importPreloadedModule(m))); // packages/interactivity-router/build-module/index.mjs var { getRegionRootFragment, initialVdomPromise, toVdom, render, parseServerData, populateServerData, batch, routerRegions, h: createElement, navigationSignal, sessionId, warn } = privateApis( "I acknowledge that using private APIs means my theme or plugin will inevitably break in the next version of WordPress." ); var regionAttr = `data-wp-router-region`; var interactiveAttr = `data-wp-interactive`; var regionsSelector = `[${interactiveAttr}][${regionAttr}], [${interactiveAttr}] [${interactiveAttr}][${regionAttr}]`; var pages = /* @__PURE__ */ new Map(); var getPagePath = (url) => { const u = new URL(url, window.location.href); return u.pathname + u.search; }; var parseRegionAttribute = (region) => { const value = region.getAttribute(regionAttr); try { const { id, attachTo } = JSON.parse(value); return { id, attachTo }; } catch (e) { return { id: value }; } }; var cloneRouterRegionContent = (vdom) => { if (!vdom) { return vdom; } const allPriorityLevels = vdom.props.priorityLevels; const routerRegionLevel = allPriorityLevels.findIndex( (level) => level.includes("router-region") ); const priorityLevels = routerRegionLevel !== -1 ? allPriorityLevels.slice(routerRegionLevel + 1) : allPriorityLevels; return priorityLevels.length > 0 ? createElement(vdom.type, { ...vdom.props, priorityLevels }) : vdom.props.element; }; var regionsToAttachByParent = /* @__PURE__ */ new WeakMap(); var rootFragmentsByParent = /* @__PURE__ */ new WeakMap(); var initialRegionsToAttach = /* @__PURE__ */ new Set(); var fetchPage = async (url, { html }) => { try { if (!html) { const res = await window.fetch(url); if (res.status !== 200) { return false; } html = await res.text(); } const dom = new window.DOMParser().parseFromString(html, "text/html"); return await preparePage(url, dom); } catch (e) { return false; } }; var preparePage = async (url, dom, { vdom } = {}) => { dom.querySelectorAll("noscript").forEach((el) => el.remove()); const regions = {}; const regionsToAttach = {}; dom.querySelectorAll(regionsSelector).forEach((region) => { const { id, attachTo } = parseRegionAttribute(region); if (region.parentElement.closest(`[${regionAttr}]`)) { regions[id] = void 0; } else { regions[id] = vdom?.has(region) ? vdom.get(region) : toVdom(region); } if (attachTo && !initialRegionsToAttach.has(id)) { regionsToAttach[id] = attachTo; } }); const title = dom.querySelector("title")?.innerText; const initialData = parseServerData(dom); const [styles, scriptModules] = await Promise.all([ Promise.all(preloadStyles(dom)), Promise.all(preloadScriptModules(dom)) ]); return { regions, regionsToAttach, styles, scriptModules, title, initialData, url }; }; var renderPage = (page) => { applyStyles(page.styles); const regionsToAttach = { ...page.regionsToAttach }; batch(() => { populateServerData(page.initialData); navigationSignal.value += 1; routerRegions.forEach((signal) => { signal.value = null; }); const parentsToUpdate = /* @__PURE__ */ new Set(); for (const id in regionsToAttach) { const parent = document.querySelector(regionsToAttach[id]); if (!regionsToAttachByParent.has(parent)) { regionsToAttachByParent.set(parent, []); } const regions = regionsToAttachByParent.get(parent); if (!regions.includes(id)) { regions.push(id); parentsToUpdate.add(parent); } } for (const id in page.regions) { if (routerRegions.has(id)) { routerRegions.get(id).value = cloneRouterRegionContent( page.regions[id] ); } } parentsToUpdate.forEach((parent) => { const ids = regionsToAttachByParent.get(parent); const vdoms = ids.map((id) => page.regions[id]); if (!rootFragmentsByParent.has(parent)) { const regions = vdoms.map(({ props, type }) => { const elementType = typeof type === "function" ? props.type : type; const region = document.createElement(elementType); parent.appendChild(region); return region; }); rootFragmentsByParent.set( parent, getRegionRootFragment(regions) ); } const fragment = rootFragmentsByParent.get(parent); render(vdoms, fragment); }); }); if (page.title) { document.title = page.title; } }; var forcePageReload = (href) => { window.location.assign(href); return new Promise(() => { }); }; window.addEventListener("popstate", async () => { const pagePath = getPagePath(window.location.href); const page = pages.has(pagePath) && await pages.get(pagePath); if (page) { batch(() => { state.url = window.location.href; renderPage(page); }); } else { window.location.reload(); } }); document.querySelectorAll(regionsSelector).forEach((region) => { const { id, attachTo } = parseRegionAttribute(region); if (attachTo) { initialRegionsToAttach.add(id); } }); window.document.querySelectorAll("script[type=module][src]").forEach(({ src }) => markScriptModuleAsResolved(src)); (async () => { const initialVdomMap = await initialVdomPromise; pages.set( getPagePath(window.location.href), Promise.resolve( preparePage(getPagePath(window.location.href), document, { vdom: initialVdomMap }) ) ); })(); var navigatingTo = ""; var hasLoadedNavigationTextsData = false; var navigationTexts = { loading: "Loading page, please wait.", loaded: "Page Loaded." }; var { state: privateState } = store( "core/router/private", { state: { navigation: { hasStarted: false, hasFinished: false } } }, { lock: true } ); var { state, actions } = store("core/router", { state: { get navigation() { if (true) { warn( `The usage of state.navigation.{hasStarted|hasFinished} from core/router is deprecated and will stop working in WordPress 7.1.` ); } return privateState.navigation; } }, actions: { /** * Navigates to the specified page. * * This function normalizes the passed href, fetches the page HTML if * needed, and updates any interactive regions whose contents have * changed. It also creates a new entry in the browser session history. * * @param href The page href. * @param [options] Options object. * @param [options.force] If true, it forces re-fetching the URL. * @param [options.html] HTML string to be used instead of fetching the requested URL. * @param [options.replace] If true, it replaces the current entry in the browser session history. * @param [options.timeout] Time until the navigation is aborted, in milliseconds. Default is 10000. * @param [options.loadingAnimation] Whether an animation should be shown while navigating. Default to `true`. * @param [options.screenReaderAnnouncement] Whether a message for screen readers should be announced while navigating. Default to `true`. * * @return Promise that resolves once the navigation is completed or aborted. */ *navigate(href, options = {}) { const { clientNavigationDisabled } = getConfig(); if (clientNavigationDisabled) { yield forcePageReload(href); } const pagePath = getPagePath(href); const { navigation } = privateState; const { loadingAnimation = true, screenReaderAnnouncement = true, timeout = 1e4 } = options; navigatingTo = href; actions.prefetch(pagePath, options); const timeoutPromise = new Promise( (resolve2) => setTimeout(resolve2, timeout) ); const loadingTimeout = setTimeout(() => { if (navigatingTo !== href) { return; } if (loadingAnimation) { navigation.hasStarted = true; navigation.hasFinished = false; } if (screenReaderAnnouncement) { a11ySpeak("loading"); } }, 400); const page = yield Promise.race([ pages.get(pagePath), timeoutPromise ]); clearTimeout(loadingTimeout); if (navigatingTo !== href) { return; } if (page && !page.initialData?.config?.["core/router"]?.clientNavigationDisabled) { yield importScriptModules(page.scriptModules); batch(() => { state.url = href; if (loadingAnimation) { navigation.hasStarted = false; navigation.hasFinished = true; } renderPage(page); }); window.history[options.replace ? "replaceState" : "pushState"]({ wpInteractivityId: sessionId }, "", href); if (screenReaderAnnouncement) { a11ySpeak("loaded"); } const { hash } = new URL(href, window.location.href); if (hash) { document.querySelector(hash)?.scrollIntoView(); } } else { yield forcePageReload(href); } }, /** * Prefetches the page with the passed URL. * * The function normalizes the URL and stores internally the fetch * promise, to avoid triggering a second fetch for an ongoing request. * * @param url The page URL. * @param [options] Options object. * @param [options.force] Force fetching the URL again. * @param [options.html] HTML string to be used instead of fetching the requested URL. * * @return Promise that resolves once the page has been fetched. */ *prefetch(url, options = {}) { const { clientNavigationDisabled } = getConfig(); if (clientNavigationDisabled) { return; } const pagePath = getPagePath(url); if (options.force || !pages.has(pagePath)) { pages.set( pagePath, fetchPage(pagePath, { html: options.html }) ); } yield pages.get(pagePath); } } }); state.url = state.url || window.location.href; function a11ySpeak(messageKey) { if (!hasLoadedNavigationTextsData) { hasLoadedNavigationTextsData = true; const content = document.getElementById( "wp-script-module-data-@wordpress/interactivity-router" )?.textContent; if (content) { try { const parsed = JSON.parse(content); if (typeof parsed?.i18n?.loading === "string") { navigationTexts.loading = parsed.i18n.loading; } if (typeof parsed?.i18n?.loaded === "string") { navigationTexts.loaded = parsed.i18n.loaded; } } catch { } } else { if (state.navigation.texts?.loading) { navigationTexts.loading = state.navigation.texts.loading; } if (state.navigation.texts?.loaded) { navigationTexts.loaded = state.navigation.texts.loaded; } } } const message = navigationTexts[messageKey]; import("@wordpress/a11y").then( ({ speak }) => speak(message), // Ignore failures to load the a11y module. () => { } ); } export { actions, state }; interactivity-router/full-page.js 0000644 00000002414 15206736335 0013205 0 ustar 00 // packages/interactivity-router/build-module/full-page.mjs var isValidLink = (ref) => ref && ref instanceof window.HTMLAnchorElement && ref.href && (!ref.target || ref.target === "_self") && ref.origin === window.location.origin && !ref.pathname.startsWith("/wp-admin") && !ref.pathname.startsWith("/wp-login.php") && !ref.getAttribute("href").startsWith("#") && !new URL(ref.href).searchParams.has("_wpnonce"); var isValidEvent = (event) => event && event.button === 0 && // Left clicks only. !event.metaKey && // Open in new tab (Mac). !event.ctrlKey && // Open in new tab (Windows). !event.altKey && // Download. !event.shiftKey && !event.defaultPrevented; document.addEventListener("click", async (event) => { const ref = event.target.closest("a"); if (isValidLink(ref) && isValidEvent(event)) { event.preventDefault(); const { actions } = await import("@wordpress/interactivity-router"); actions.navigate(ref.href); } }); document.addEventListener( "mouseenter", async (event) => { if (event.target?.nodeName === "A") { const ref = event.target.closest("a"); if (isValidLink(ref) && isValidEvent(event)) { const { actions } = await import("@wordpress/interactivity-router"); actions.prefetch(ref.href); } } }, true ); interactivity-router/full-page.min.asset.php 0000644 00000000274 15206736335 0015262 0 ustar 00 <?php return array('dependencies' => array(), 'module_dependencies' => array(array('id' => '@wordpress/interactivity-router', 'import' => 'dynamic')), 'version' => '5c07cd7a12ae073c5241'); interactivity-router/index.min.asset.php 0000644 00000000355 15206736335 0014515 0 ustar 00 <?php return array('dependencies' => array(), 'module_dependencies' => array(array('id' => '@wordpress/a11y', 'import' => 'dynamic'), array('id' => '@wordpress/interactivity', 'import' => 'static')), 'version' => '71aa17bac91628a0f874'); edit-site-init/index.min.js 0000644 00000011276 15206736335 0011644 0 ustar 00 var Z=Object.create;var H=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var G=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var g=(f,t)=>()=>(t||f((t={exports:{}}).exports,t),t.exports);var q=(f,t,r,D)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of _(t))!N.call(f,l)&&l!==r&&H(f,l,{get:()=>t[l],enumerable:!(D=I(t,l))||D.enumerable});return f};var a=(f,t,r)=>(r=f!=null?Z(G(f)):{},q(t||!f||!f.__esModule?H(r,"default",{value:f,enumerable:!0}):r,f));var e=g((J,M)=>{M.exports=window.wp.primitives});var o=g((W,P)=>{P.exports=window.ReactJSXRuntime});var A=g((pa,U)=>{U.exports=window.wp.data});var d=a(e(),1),w=a(o(),1),v=(0,w.jsx)(d.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,w.jsx)(d.Path,{d:"M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z"})});var u=a(e(),1),b=a(o(),1),y=(0,b.jsx)(u.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,b.jsx)(u.Path,{d:"M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z"})});var i=a(e(),1),x=a(o(),1),L=(0,x.jsx)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,x.jsx)(i.Path,{d:"M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14.5c-3.6 0-6.5-2.9-6.5-6.5S8.4 5.5 12 5.5s6.5 2.9 6.5 6.5-2.9 6.5-6.5 6.5zM9 16l4.5-3L15 8.4l-4.5 3L9 16z"})});var s=a(e(),1),m=a(o(),1),R=(0,m.jsxs)(s.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:[(0,m.jsx)(s.Path,{d:"M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z"}),(0,m.jsx)(s.Path,{d:"M17 4H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2ZM7 5.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H7a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5Z"})]});var p=a(e(),1),V=a(o(),1),S=(0,V.jsx)(p.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,V.jsx)(p.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M20 12a8 8 0 1 1-16 0 8 8 0 0 1 16 0Zm-1.5 0a6.5 6.5 0 0 1-6.5 6.5v-13a6.5 6.5 0 0 1 6.5 6.5Z"})});var n=a(e(),1),k=a(o(),1),B=(0,k.jsx)(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,k.jsx)(n.Path,{d:"M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-17.6 1L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z"})});var c=a(e(),1),C=a(o(),1),j=(0,C.jsx)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,C.jsx)(c.Path,{d:"M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-1 1.4l-5.6 5.6c-.1.1-.3.1-.4 0l-5.6-5.6c-.1-.1-.1-.3 0-.4l5.6-5.6s.1-.1.2-.1.1 0 .2.1l5.6 5.6c.1.1.1.3 0 .4zm-16.6-.4L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z"})});var h=a(e(),1),z=a(o(),1),T=(0,z.jsx)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,z.jsx)(h.Path,{d:"m8.6 7 3.9 10.8h-1.7l-1-2.8H5.7l-1 2.8H3L6.9 7h1.7Zm-2.4 6.6h3L7.7 9.3l-1.5 4.3ZM17.691 8.879c.473 0 .88.055 1.221.165.352.1.643.264.875.495.274.253.456.572.544.957.088.374.132.83.132 1.37v4.554c0 .274.033.472.099.593.077.11.198.166.363.166.11 0 .215-.028.313-.083.11-.055.237-.137.38-.247l.165.28a3.304 3.304 0 0 1-.71.446c-.23.11-.527.165-.89.165-.352 0-.639-.055-.858-.165-.22-.11-.386-.27-.495-.479-.1-.209-.149-.468-.149-.775-.286.462-.627.814-1.023 1.056-.396.242-.858.363-1.386.363-.462 0-.858-.088-1.188-.264a1.752 1.752 0 0 1-.742-.726 2.201 2.201 0 0 1-.248-1.056c0-.484.11-.875.33-1.172.22-.308.5-.556.841-.742.352-.187.721-.341 1.106-.462.396-.132.765-.253 1.106-.363.351-.121.637-.259.857-.413.232-.154.347-.357.347-.61V10.81c0-.396-.066-.71-.198-.941a1.05 1.05 0 0 0-.511-.511 1.763 1.763 0 0 0-.76-.149c-.253 0-.522.039-.808.116a1.165 1.165 0 0 0-.677.412 1.1 1.1 0 0 1 .595.396c.165.187.247.424.247.71 0 .307-.104.55-.313.726-.198.176-.451.263-.76.263-.34 0-.594-.104-.758-.313a1.231 1.231 0 0 1-.248-.759c0-.297.072-.539.214-.726.154-.187.352-.363.595-.528.264-.176.6-.324 1.006-.445.418-.121.88-.182 1.386-.182Zm.99 3.729a1.57 1.57 0 0 1-.528.462c-.231.121-.479.248-.742.38a5.377 5.377 0 0 0-.76.462c-.23.165-.423.38-.577.643-.154.264-.231.6-.231 1.007 0 .429.11.77.33 1.023.22.242.517.363.891.363.308 0 .594-.088.858-.264.275-.176.528-.44.759-.792v-3.284Z"})});var F=a(A(),1);import{store as O}from"@wordpress/boot";async function ha(){Object.entries({home:{icon:v},styles:{icon:S},navigation:{icon:L},pages:{icon:R},templateParts:{icon:B},patterns:{icon:j},templates:{icon:y},fontList:{icon:T}}).forEach(([t,{icon:r}])=>{(0,F.dispatch)(O).updateMenuItem(t,{icon:r})})}export{ha as init}; edit-site-init/index.js 0000644 00000020766 15206736335 0011066 0 ustar 00 var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // package-external:@wordpress/primitives var require_primitives = __commonJS({ "package-external:@wordpress/primitives"(exports, module) { module.exports = window.wp.primitives; } }); // vendor-external:react/jsx-runtime var require_jsx_runtime = __commonJS({ "vendor-external:react/jsx-runtime"(exports, module) { module.exports = window.ReactJSXRuntime; } }); // package-external:@wordpress/data var require_data = __commonJS({ "package-external:@wordpress/data"(exports, module) { module.exports = window.wp.data; } }); // packages/icons/build-module/library/home.mjs var import_primitives = __toESM(require_primitives(), 1); var import_jsx_runtime = __toESM(require_jsx_runtime(), 1); var home_default = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.Path, { d: "M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z" }) }); // packages/icons/build-module/library/layout.mjs var import_primitives2 = __toESM(require_primitives(), 1); var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1); var layout_default = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives2.Path, { d: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z" }) }); // packages/icons/build-module/library/navigation.mjs var import_primitives3 = __toESM(require_primitives(), 1); var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1); var navigation_default = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives3.Path, { d: "M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14.5c-3.6 0-6.5-2.9-6.5-6.5S8.4 5.5 12 5.5s6.5 2.9 6.5 6.5-2.9 6.5-6.5 6.5zM9 16l4.5-3L15 8.4l-4.5 3L9 16z" }) }); // packages/icons/build-module/library/page.mjs var import_primitives4 = __toESM(require_primitives(), 1); var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1); var page_default = /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_primitives4.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: [ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives4.Path, { d: "M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z" }), /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives4.Path, { d: "M17 4H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2ZM7 5.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H7a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5Z" }) ] }); // packages/icons/build-module/library/styles.mjs var import_primitives5 = __toESM(require_primitives(), 1); var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1); var styles_default = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives5.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives5.Path, { fillRule: "evenodd", clipRule: "evenodd", d: "M20 12a8 8 0 1 1-16 0 8 8 0 0 1 16 0Zm-1.5 0a6.5 6.5 0 0 1-6.5 6.5v-13a6.5 6.5 0 0 1 6.5 6.5Z" }) }); // packages/icons/build-module/library/symbol-filled.mjs var import_primitives6 = __toESM(require_primitives(), 1); var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1); var symbol_filled_default = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives6.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives6.Path, { d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-17.6 1L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z" }) }); // packages/icons/build-module/library/symbol.mjs var import_primitives7 = __toESM(require_primitives(), 1); var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1); var symbol_default = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives7.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives7.Path, { d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-1 1.4l-5.6 5.6c-.1.1-.3.1-.4 0l-5.6-5.6c-.1-.1-.1-.3 0-.4l5.6-5.6s.1-.1.2-.1.1 0 .2.1l5.6 5.6c.1.1.1.3 0 .4zm-16.6-.4L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z" }) }); // packages/icons/build-module/library/typography.mjs var import_primitives8 = __toESM(require_primitives(), 1); var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1); var typography_default = /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_primitives8.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_primitives8.Path, { d: "m8.6 7 3.9 10.8h-1.7l-1-2.8H5.7l-1 2.8H3L6.9 7h1.7Zm-2.4 6.6h3L7.7 9.3l-1.5 4.3ZM17.691 8.879c.473 0 .88.055 1.221.165.352.1.643.264.875.495.274.253.456.572.544.957.088.374.132.83.132 1.37v4.554c0 .274.033.472.099.593.077.11.198.166.363.166.11 0 .215-.028.313-.083.11-.055.237-.137.38-.247l.165.28a3.304 3.304 0 0 1-.71.446c-.23.11-.527.165-.89.165-.352 0-.639-.055-.858-.165-.22-.11-.386-.27-.495-.479-.1-.209-.149-.468-.149-.775-.286.462-.627.814-1.023 1.056-.396.242-.858.363-1.386.363-.462 0-.858-.088-1.188-.264a1.752 1.752 0 0 1-.742-.726 2.201 2.201 0 0 1-.248-1.056c0-.484.11-.875.33-1.172.22-.308.5-.556.841-.742.352-.187.721-.341 1.106-.462.396-.132.765-.253 1.106-.363.351-.121.637-.259.857-.413.232-.154.347-.357.347-.61V10.81c0-.396-.066-.71-.198-.941a1.05 1.05 0 0 0-.511-.511 1.763 1.763 0 0 0-.76-.149c-.253 0-.522.039-.808.116a1.165 1.165 0 0 0-.677.412 1.1 1.1 0 0 1 .595.396c.165.187.247.424.247.71 0 .307-.104.55-.313.726-.198.176-.451.263-.76.263-.34 0-.594-.104-.758-.313a1.231 1.231 0 0 1-.248-.759c0-.297.072-.539.214-.726.154-.187.352-.363.595-.528.264-.176.6-.324 1.006-.445.418-.121.88-.182 1.386-.182Zm.99 3.729a1.57 1.57 0 0 1-.528.462c-.231.121-.479.248-.742.38a5.377 5.377 0 0 0-.76.462c-.23.165-.423.38-.577.643-.154.264-.231.6-.231 1.007 0 .429.11.77.33 1.023.22.242.517.363.891.363.308 0 .594-.088.858-.264.275-.176.528-.44.759-.792v-3.284Z" }) }); // packages/edit-site-init/build-module/index.mjs var import_data = __toESM(require_data(), 1); import { store as bootStore } from "@wordpress/boot"; async function init() { const menuIcons = { home: { icon: home_default }, styles: { icon: styles_default }, navigation: { icon: navigation_default }, pages: { icon: page_default }, templateParts: { icon: symbol_filled_default }, patterns: { icon: symbol_default }, templates: { icon: layout_default }, fontList: { icon: typography_default } }; Object.entries(menuIcons).forEach(([id, { icon }]) => { (0, import_data.dispatch)(bootStore).updateMenuItem(id, { icon }); }); } export { init }; edit-site-init/index.min.asset.php 0000644 00000000350 15206736335 0013124 0 ustar 00 <?php return array('dependencies' => array('react-jsx-runtime', 'wp-data', 'wp-element', 'wp-primitives'), 'module_dependencies' => array(array('id' => '@wordpress/boot', 'import' => 'static')), 'version' => 'e57f44d1a9f69e75d2d9'); connectors/index.min.js 0000644 00000010766 15206736335 0011174 0 ustar 00 var W=Object.create;var y=Object.defineProperty;var J=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var X=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var f=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var Q=(e,r,i,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let c of U(r))!q.call(e,c)&&c!==i&&y(e,c,{get:()=>r[c],enumerable:!(s=J(r,c))||s.enumerable});return e};var m=(e,r,i)=>(i=e!=null?W(X(e)):{},Q(r||!e||!e.__esModule?y(i,"default",{value:e,enumerable:!0}):i,e));var C=f((ce,T)=>{T.exports=window.wp.data});var A=f((ae,R)=>{R.exports=window.wp.privateApis});var O=f((ge,P)=>{P.exports=window.wp.components});var j=f((xe,D)=>{D.exports=window.wp.element});var L=f((_e,G)=>{G.exports=window.wp.i18n});var B=f((he,z)=>{z.exports=window.ReactJSXRuntime});var E=m(C(),1);var g=m(C(),1);var b=m(A(),1),{lock:N,unlock:d}=(0,b.__dangerousOptInToUnstableAPIsOnlyForCoreModules)("I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.","@wordpress/connectors");var w="core/connectors",Z={connectors:{}},$={registerConnector(e,r){return{type:"REGISTER_CONNECTOR",slug:e,config:r}},unregisterConnector(e){return{type:"UNREGISTER_CONNECTOR",slug:e}}};function ee(e=Z,r){switch(r.type){case"REGISTER_CONNECTOR":return{...e,connectors:{...e.connectors,[r.slug]:{...e.connectors[r.slug],slug:r.slug,...r.config}}};case"UNREGISTER_CONNECTOR":{if(!e.connectors[r.slug])return e;let{[r.slug]:i,...s}=e.connectors;return{...e,connectors:s}}default:return e}}var re={getConnectors:(0,g.createSelector)(e=>Object.values(e.connectors),e=>[e.connectors]),getConnector(e,r){return e.connectors[r]}},l=(0,g.createReduxStore)(w,{reducer:ee});(0,g.register)(l);d(l).registerPrivateActions($);d(l).registerPrivateSelectors(re);function te(e,r){d((0,E.dispatch)(l)).registerConnector(e,r)}function ne(e){d((0,E.dispatch)(l)).unregisterConnector(e)}var t=m(O(),1),a=m(j(),1),o=m(L(),1),n=m(B(),1);function oe({className:e,logo:r,name:i,description:s,actionArea:c,children:p}){let u=(0,a.useId)();return(0,n.jsx)(t.__experimentalItem,{className:e,children:(0,n.jsxs)(t.__experimentalVStack,{spacing:4,role:"group","aria-labelledby":u,children:[(0,n.jsxs)(t.__experimentalHStack,{alignment:"center",spacing:4,wrap:!0,children:[r,(0,n.jsx)(t.FlexBlock,{children:(0,n.jsxs)(t.__experimentalVStack,{spacing:0,children:[(0,n.jsx)(t.__experimentalText,{weight:600,size:15,id:u,as:"h2",children:i}),(0,n.jsx)(t.__experimentalText,{variant:"muted",size:12,children:s})]})}),c]}),p]})})}function se({onSave:e,onRemove:r,initialValue:i="",helpUrl:s,helpLabel:c,readOnly:p=!1,keySource:u}){let[_,H]=(0,a.useState)(i),[h,I]=(0,a.useState)(!1),[k,v]=(0,a.useState)(null),S=c||s?.replace(/^https?:\/\//,""),K=s?(0,a.createInterpolateElement)((0,o.sprintf)((0,o.__)("Get your API key at %s"),"<a></a>"),{a:(0,n.jsx)(t.ExternalLink,{href:s,children:S})}):void 0,M=u==="env"||u==="constant",Y=()=>{if(M){if(u==="env")return(0,o.__)("This API key is configured using an environment variable.");if(u==="constant")return(0,o.__)("This API key is configured as a constant.")}return p?s?(0,a.createInterpolateElement)((0,o.sprintf)((0,o.__)("Your API key is stored securely. You can manage it at %s"),"<a></a>"),{a:(0,n.jsx)(t.ExternalLink,{href:s,children:S})}):(0,o.__)("Your API key is stored securely."):k?(0,n.jsx)("span",{role:"alert",className:"connector-settings__error",children:k}):K},V=async()=>{v(null),I(!0);try{await e?.(_)}catch(x){v(x instanceof Error?x.message:(0,o.__)("It was not possible to connect to the provider using this key."))}finally{I(!1)}};return(0,n.jsxs)(t.__experimentalVStack,{spacing:4,className:"connector-settings",style:p?{"--wp-components-color-background":"#f0f0f0"}:void 0,children:[(0,n.jsx)(t.TextControl,{__next40pxDefaultSize:!0,label:(0,o.__)("API Key"),value:_,onChange:x=>{p||(v(null),H(x))},placeholder:(0,o.__)("Enter your API key"),disabled:p||h,help:Y()}),p?r&&(0,n.jsx)(t.__experimentalHStack,{justify:"flex-start",children:(0,n.jsx)(t.Button,{variant:"link",isDestructive:!0,onClick:r,children:(0,o.__)("Remove and replace")})}):(0,n.jsx)(t.__experimentalHStack,{justify:"flex-start",children:(0,n.jsx)(t.Button,{__next40pxDefaultSize:!0,variant:"primary",disabled:!_||h,accessibleWhenDisabled:!0,isBusy:h,onClick:V,children:(0,o.__)("Save")})})]})}var F={};N(F,{store:l,STORE_NAME:w});export{oe as __experimentalConnectorItem,se as __experimentalDefaultConnectorSettings,te as __experimentalRegisterConnector,ne as __experimentalUnregisterConnector,F as privateApis}; connectors/index.js 0000644 00000025033 15206736335 0010403 0 ustar 00 var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // package-external:@wordpress/data var require_data = __commonJS({ "package-external:@wordpress/data"(exports, module) { module.exports = window.wp.data; } }); // package-external:@wordpress/private-apis var require_private_apis = __commonJS({ "package-external:@wordpress/private-apis"(exports, module) { module.exports = window.wp.privateApis; } }); // package-external:@wordpress/components var require_components = __commonJS({ "package-external:@wordpress/components"(exports, module) { module.exports = window.wp.components; } }); // package-external:@wordpress/element var require_element = __commonJS({ "package-external:@wordpress/element"(exports, module) { module.exports = window.wp.element; } }); // package-external:@wordpress/i18n var require_i18n = __commonJS({ "package-external:@wordpress/i18n"(exports, module) { module.exports = window.wp.i18n; } }); // vendor-external:react/jsx-runtime var require_jsx_runtime = __commonJS({ "vendor-external:react/jsx-runtime"(exports, module) { module.exports = window.ReactJSXRuntime; } }); // packages/connectors/build-module/api.mjs var import_data2 = __toESM(require_data(), 1); // packages/connectors/build-module/store.mjs var import_data = __toESM(require_data(), 1); // packages/connectors/build-module/lock-unlock.mjs var import_private_apis = __toESM(require_private_apis(), 1); var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)( "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.", "@wordpress/connectors" ); // packages/connectors/build-module/store.mjs var STORE_NAME = "core/connectors"; var DEFAULT_STATE = { connectors: {} }; var actions = { registerConnector(slug, config) { return { type: "REGISTER_CONNECTOR", slug, config }; }, unregisterConnector(slug) { return { type: "UNREGISTER_CONNECTOR", slug }; } }; function reducer(state = DEFAULT_STATE, action) { switch (action.type) { case "REGISTER_CONNECTOR": return { ...state, connectors: { ...state.connectors, [action.slug]: { ...state.connectors[action.slug], slug: action.slug, ...action.config } } }; case "UNREGISTER_CONNECTOR": { if (!state.connectors[action.slug]) { return state; } const { [action.slug]: _, ...rest } = state.connectors; return { ...state, connectors: rest }; } default: return state; } } var selectors = { getConnectors: (0, import_data.createSelector)( (state) => Object.values(state.connectors), (state) => [state.connectors] ), getConnector(state, slug) { return state.connectors[slug]; } }; var store = (0, import_data.createReduxStore)(STORE_NAME, { reducer }); (0, import_data.register)(store); unlock(store).registerPrivateActions(actions); unlock(store).registerPrivateSelectors(selectors); // packages/connectors/build-module/api.mjs function registerConnector(slug, config) { unlock((0, import_data2.dispatch)(store)).registerConnector(slug, config); } function unregisterConnector(slug) { unlock((0, import_data2.dispatch)(store)).unregisterConnector(slug); } // packages/connectors/build-module/connector-item.mjs var import_components = __toESM(require_components(), 1); var import_element = __toESM(require_element(), 1); var import_i18n = __toESM(require_i18n(), 1); var import_jsx_runtime = __toESM(require_jsx_runtime(), 1); function ConnectorItem({ className, logo, name, description, actionArea, children }) { const headingId = (0, import_element.useId)(); return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalItem, { className, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalVStack, { spacing: 4, role: "group", "aria-labelledby": headingId, children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalHStack, { alignment: "center", spacing: 4, wrap: true, children: [ logo, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.FlexBlock, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalVStack, { spacing: 0, children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_components.__experimentalText, { weight: 600, size: 15, id: headingId, as: "h2", children: name } ), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalText, { variant: "muted", size: 12, children: description }) ] }) }), actionArea ] }), children ] }) }); } function DefaultConnectorSettings({ onSave, onRemove, initialValue = "", helpUrl, helpLabel, readOnly = false, keySource }) { const [apiKey, setApiKey] = (0, import_element.useState)(initialValue); const [isSaving, setIsSaving] = (0, import_element.useState)(false); const [saveError, setSaveError] = (0, import_element.useState)(null); const helpLinkLabel = helpLabel || helpUrl?.replace(/^https?:\/\//, ""); const helpLink = helpUrl ? (0, import_element.createInterpolateElement)( (0, import_i18n.sprintf)( /* translators: %s: Link to provider settings. */ (0, import_i18n.__)("Get your API key at %s"), "<a></a>" ), { a: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.ExternalLink, { href: helpUrl, children: helpLinkLabel }) } ) : void 0; const isExternallyConfigured = keySource === "env" || keySource === "constant"; const getHelp = () => { if (isExternallyConfigured) { if (keySource === "env") { return (0, import_i18n.__)( "This API key is configured using an environment variable." ); } if (keySource === "constant") { return (0, import_i18n.__)("This API key is configured as a constant."); } } if (readOnly) { return helpUrl ? (0, import_element.createInterpolateElement)( (0, import_i18n.sprintf)( /* translators: %s: Link to provider settings. */ (0, import_i18n.__)( "Your API key is stored securely. You can manage it at %s" ), "<a></a>" ), { a: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.ExternalLink, { href: helpUrl, children: helpLinkLabel }) } ) : (0, import_i18n.__)("Your API key is stored securely."); } if (saveError) { return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { role: "alert", className: "connector-settings__error", children: saveError }); } return helpLink; }; const handleSave = async () => { setSaveError(null); setIsSaving(true); try { await onSave?.(apiKey); } catch (error) { setSaveError( error instanceof Error ? error.message : (0, import_i18n.__)( "It was not possible to connect to the provider using this key." ) ); } finally { setIsSaving(false); } }; return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)( import_components.__experimentalVStack, { spacing: 4, className: "connector-settings", style: readOnly ? { "--wp-components-color-background": "#f0f0f0" } : void 0, children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_components.TextControl, { __next40pxDefaultSize: true, label: (0, import_i18n.__)("API Key"), value: apiKey, onChange: (value) => { if (!readOnly) { setSaveError(null); setApiKey(value); } }, placeholder: (0, import_i18n.__)("Enter your API key"), disabled: readOnly || isSaving, help: getHelp() } ), readOnly ? onRemove && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalHStack, { justify: "flex-start", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_components.Button, { variant: "link", isDestructive: true, onClick: onRemove, children: (0, import_i18n.__)("Remove and replace") } ) }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalHStack, { justify: "flex-start", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_components.Button, { __next40pxDefaultSize: true, variant: "primary", disabled: !apiKey || isSaving, accessibleWhenDisabled: true, isBusy: isSaving, onClick: handleSave, children: (0, import_i18n.__)("Save") } ) }) ] } ); } // packages/connectors/build-module/private-apis.mjs var privateApis = {}; lock(privateApis, { store, STORE_NAME }); export { ConnectorItem as __experimentalConnectorItem, DefaultConnectorSettings as __experimentalDefaultConnectorSettings, registerConnector as __experimentalRegisterConnector, unregisterConnector as __experimentalUnregisterConnector, privateApis }; connectors/index.min.asset.php 0000644 00000000256 15206736335 0012456 0 ustar 00 <?php return array('dependencies' => array('react-jsx-runtime', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-private-apis'), 'version' => '274797868955a828dfdc'); interactivity/index.min.js 0000644 00000116252 15206736335 0011712 0 ustar 00 var me,m,jt,ft,V,Lt,Vt,zt,nt,$e,he,Kt,ct,it,ot,Jt,Me={},Be=[],Ar=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,We=Array.isArray;function B(e,t){for(var r in t)e[r]=t[r];return e}function ut(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function R(e,t,r){var n,o,i,s={};for(i in t)i=="key"?n=t[i]:i=="ref"?o=t[i]:s[i]=t[i];if(arguments.length>2&&(s.children=arguments.length>3?me.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(i in e.defaultProps)s[i]===void 0&&(s[i]=e.defaultProps[i]);return ve(e,s,n,o,null)}function ve(e,t,r,n,o){var i={type:e,props:t,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++jt,__i:-1,__u:0};return o==null&&m.vnode!=null&&m.vnode(i),i}function Fe(e){return e.children}function ae(e,t){this.props=e,this.context=t}function fe(e,t){if(t==null)return e.__?fe(e.__,e.__i+1):null;for(var r;t<e.__k.length;t++)if((r=e.__k[t])!=null&&r.__e!=null)return r.__e;return typeof e.type=="function"?fe(e):null}function Hr(e){if(e.__P&&e.__d){var t=e.__v,r=t.__e,n=[],o=[],i=B({},t);i.__v=t.__v+1,m.vnode&&m.vnode(i),lt(e.__P,i,t,e.__n,e.__P.namespaceURI,32&t.__u?[r]:null,n,r??fe(t),!!(32&t.__u),o),i.__v=t.__v,i.__.__k[i.__i]=i,Zt(n,i,o),t.__e=t.__=null,i.__e!=r&&Qt(i)}}function Qt(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),Qt(e)}function st(e){(!e.__d&&(e.__d=!0)&&V.push(e)&&!qe.__r++||Lt!=m.debounceRendering)&&((Lt=m.debounceRendering)||Vt)(qe)}function qe(){try{for(var e,t=1;V.length;)V.length>t&&V.sort(zt),e=V.shift(),t=V.length,Hr(e)}finally{V.length=qe.__r=0}}function Xt(e,t,r,n,o,i,s,f,u,c,l){var a,_,p,w,E,h,d,v=n&&n.__k||Be,I=t.length;for(u=jr(r,t,v,u,I),a=0;a<I;a++)(p=r.__k[a])!=null&&(_=p.__i!=-1&&v[p.__i]||Me,p.__i=a,h=lt(e,p,_,o,i,s,f,u,c,l),w=p.__e,p.ref&&_.ref!=p.ref&&(_.ref&&pt(_.ref,null,p),l.push(p.ref,p.__c||w,p)),E==null&&w!=null&&(E=w),(d=!!(4&p.__u))||_.__k===p.__k?(u=Yt(p,u,e,d),d&&_.__e&&(_.__e=null)):typeof p.type=="function"&&h!==void 0?u=h:w&&(u=w.nextSibling),p.__u&=-7);return r.__e=E,u}function jr(e,t,r,n,o){var i,s,f,u,c,l=r.length,a=l,_=0;for(e.__k=new Array(o),i=0;i<o;i++)(s=t[i])!=null&&typeof s!="boolean"&&typeof s!="function"?(typeof s=="string"||typeof s=="number"||typeof s=="bigint"||s.constructor==String?s=e.__k[i]=ve(null,s,null,null,null):We(s)?s=e.__k[i]=ve(Fe,{children:s},null,null,null):s.constructor===void 0&&s.__b>0?s=e.__k[i]=ve(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):e.__k[i]=s,u=i+_,s.__=e,s.__b=e.__b+1,f=null,(c=s.__i=Vr(s,r,u,a))!=-1&&(a--,(f=r[c])&&(f.__u|=2)),f==null||f.__v==null?(c==-1&&(o>l?_--:o<l&&_++),typeof s.type!="function"&&(s.__u|=4)):c!=u&&(c==u-1?_--:c==u+1?_++:(c>u?_--:_++,s.__u|=4))):e.__k[i]=null;if(a)for(i=0;i<l;i++)(f=r[i])!=null&&(2&f.__u)==0&&(f.__e==n&&(n=fe(f)),tr(f,f));return n}function Yt(e,t,r,n){var o,i;if(typeof e.type=="function"){for(o=e.__k,i=0;o&&i<o.length;i++)o[i]&&(o[i].__=e,t=Yt(o[i],t,r,n));return t}e.__e!=t&&(n&&(t&&e.type&&!t.parentNode&&(t=fe(e)),r.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function Vr(e,t,r,n){var o,i,s,f=e.key,u=e.type,c=t[r],l=c!=null&&(2&c.__u)==0;if(c===null&&f==null||l&&f==c.key&&u==c.type)return r;if(n>(l?1:0)){for(o=r-1,i=r+1;o>=0||i<t.length;)if((c=t[s=o>=0?o--:i++])!=null&&(2&c.__u)==0&&f==c.key&&u==c.type)return s}return-1}function At(e,t,r){t[0]=="-"?e.setProperty(t,r??""):e[t]=r==null?"":typeof r!="number"||Ar.test(t)?r:r+"px"}function Oe(e,t,r,n,o){var i,s;e:if(t=="style")if(typeof r=="string")e.style.cssText=r;else{if(typeof n=="string"&&(e.style.cssText=n=""),n)for(t in n)r&&t in r||At(e.style,t,"");if(r)for(t in r)n&&r[t]==n[t]||At(e.style,t,r[t])}else if(t[0]=="o"&&t[1]=="n")i=t!=(t=t.replace(Kt,"$1")),s=t.toLowerCase(),t=s in e||t=="onFocusOut"||t=="onFocusIn"?s.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=r,r?n?r[he]=n[he]:(r[he]=ct,e.addEventListener(t,i?ot:it,i)):e.removeEventListener(t,i?ot:it,i);else{if(o=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=r??"";break e}catch{}typeof r=="function"||(r==null||r===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&r==1?"":r))}}function Ht(e){return function(t){if(this.l){var r=this.l[t.type+e];if(t[$e]==null)t[$e]=ct++;else if(t[$e]<r[he])return;return r(m.event?m.event(t):t)}}}function lt(e,t,r,n,o,i,s,f,u,c){var l,a,_,p,w,E,h,d,v,I,C,b,U,oe,rt,M=t.type;if(t.constructor!==void 0)return null;128&r.__u&&(u=!!(32&r.__u),i=[f=t.__e=r.__e]),(l=m.__b)&&l(t);e:if(typeof M=="function")try{if(d=t.props,v=M.prototype&&M.prototype.render,I=(l=M.contextType)&&n[l.__c],C=l?I?I.props.value:l.__:n,r.__c?h=(a=t.__c=r.__c).__=a.__E:(v?t.__c=a=new M(d,C):(t.__c=a=new ae(d,C),a.constructor=M,a.render=Kr),I&&I.sub(a),a.state||(a.state={}),a.__n=n,_=a.__d=!0,a.__h=[],a._sb=[]),v&&a.__s==null&&(a.__s=a.state),v&&M.getDerivedStateFromProps!=null&&(a.__s==a.state&&(a.__s=B({},a.__s)),B(a.__s,M.getDerivedStateFromProps(d,a.__s))),p=a.props,w=a.state,a.__v=t,_)v&&M.getDerivedStateFromProps==null&&a.componentWillMount!=null&&a.componentWillMount(),v&&a.componentDidMount!=null&&a.__h.push(a.componentDidMount);else{if(v&&M.getDerivedStateFromProps==null&&d!==p&&a.componentWillReceiveProps!=null&&a.componentWillReceiveProps(d,C),t.__v==r.__v||!a.__e&&a.shouldComponentUpdate!=null&&a.shouldComponentUpdate(d,a.__s,C)===!1){t.__v!=r.__v&&(a.props=d,a.state=a.__s,a.__d=!1),t.__e=r.__e,t.__k=r.__k,t.__k.some(function(se){se&&(se.__=t)}),Be.push.apply(a.__h,a._sb),a._sb=[],a.__h.length&&s.push(a);break e}a.componentWillUpdate!=null&&a.componentWillUpdate(d,a.__s,C),v&&a.componentDidUpdate!=null&&a.__h.push(function(){a.componentDidUpdate(p,w,E)})}if(a.context=C,a.props=d,a.__P=e,a.__e=!1,b=m.__r,U=0,v)a.state=a.__s,a.__d=!1,b&&b(t),l=a.render(a.props,a.state,a.context),Be.push.apply(a.__h,a._sb),a._sb=[];else do a.__d=!1,b&&b(t),l=a.render(a.props,a.state,a.context),a.state=a.__s;while(a.__d&&++U<25);a.state=a.__s,a.getChildContext!=null&&(n=B(B({},n),a.getChildContext())),v&&!_&&a.getSnapshotBeforeUpdate!=null&&(E=a.getSnapshotBeforeUpdate(p,w)),oe=l!=null&&l.type===Fe&&l.key==null?er(l.props.children):l,f=Xt(e,We(oe)?oe:[oe],t,r,n,o,i,s,f,u,c),a.base=t.__e,t.__u&=-161,a.__h.length&&s.push(a),h&&(a.__E=a.__=null)}catch(se){if(t.__v=null,u||i!=null)if(se.then){for(t.__u|=u?160:128;f&&f.nodeType==8&&f.nextSibling;)f=f.nextSibling;i[i.indexOf(f)]=null,t.__e=f}else{for(rt=i.length;rt--;)ut(i[rt]);at(t)}else t.__e=r.__e,t.__k=r.__k,se.then||at(t);m.__e(se,t,r)}else i==null&&t.__v==r.__v?(t.__k=r.__k,t.__e=r.__e):f=t.__e=zr(r.__e,t,r,n,o,i,s,u,c);return(l=m.diffed)&&l(t),128&t.__u?void 0:f}function at(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(at))}function Zt(e,t,r){for(var n=0;n<r.length;n++)pt(r[n],r[++n],r[++n]);m.__c&&m.__c(t,e),e.some(function(o){try{e=o.__h,o.__h=[],e.some(function(i){i.call(o)})}catch(i){m.__e(i,o.__v)}})}function er(e){return typeof e!="object"||e==null||e.__b>0?e:We(e)?e.map(er):B({},e)}function zr(e,t,r,n,o,i,s,f,u){var c,l,a,_,p,w,E,h=r.props||Me,d=t.props,v=t.type;if(v=="svg"?o="http://www.w3.org/2000/svg":v=="math"?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),i!=null){for(c=0;c<i.length;c++)if((p=i[c])&&"setAttribute"in p==!!v&&(v?p.localName==v:p.nodeType==3)){e=p,i[c]=null;break}}if(e==null){if(v==null)return document.createTextNode(d);e=document.createElementNS(o,v,d.is&&d),f&&(m.__m&&m.__m(t,i),f=!1),i=null}if(v==null)h===d||f&&e.data==d||(e.data=d);else{if(i=i&&me.call(e.childNodes),!f&&i!=null)for(h={},c=0;c<e.attributes.length;c++)h[(p=e.attributes[c]).name]=p.value;for(c in h)p=h[c],c=="dangerouslySetInnerHTML"?a=p:c=="children"||c in d||c=="value"&&"defaultValue"in d||c=="checked"&&"defaultChecked"in d||Oe(e,c,null,p,o);for(c in d)p=d[c],c=="children"?_=p:c=="dangerouslySetInnerHTML"?l=p:c=="value"?w=p:c=="checked"?E=p:f&&typeof p!="function"||h[c]===p||Oe(e,c,p,h[c],o);if(l)f||a&&(l.__html==a.__html||l.__html==e.innerHTML)||(e.innerHTML=l.__html),t.__k=[];else if(a&&(e.innerHTML=""),Xt(t.type=="template"?e.content:e,We(_)?_:[_],t,r,n,v=="foreignObject"?"http://www.w3.org/1999/xhtml":o,i,s,i?i[0]:r.__k&&fe(r,0),f,u),i!=null)for(c=i.length;c--;)ut(i[c]);f||(c="value",v=="progress"&&w==null?e.removeAttribute("value"):w!=null&&(w!==e[c]||v=="progress"&&!w||v=="option"&&w!=h[c])&&Oe(e,c,w,h[c],o),c="checked",E!=null&&E!=e[c]&&Oe(e,c,E,h[c],o))}return e}function pt(e,t,r){try{if(typeof e=="function"){var n=typeof e.__u=="function";n&&e.__u(),n&&t==null||(e.__u=e(t))}else e.current=t}catch(o){m.__e(o,r)}}function tr(e,t,r){var n,o;if(m.unmount&&m.unmount(e),(n=e.ref)&&(n.current&&n.current!=e.__e||pt(n,null,t)),(n=e.__c)!=null){if(n.componentWillUnmount)try{n.componentWillUnmount()}catch(i){m.__e(i,t)}n.base=n.__P=null}if(n=e.__k)for(o=0;o<n.length;o++)n[o]&&tr(n[o],t,r||typeof e.type!="function");r||ut(e.__e),e.__c=e.__=e.__e=void 0}function Kr(e,t,r){return this.constructor(e,r)}function _t(e,t,r){var n,o,i,s;t==document&&(t=document.documentElement),m.__&&m.__(e,t),o=(n=typeof r=="function")?null:r&&r.__k||t.__k,i=[],s=[],lt(t,e=(!n&&r||t).__k=R(Fe,null,[e]),o||Me,Me,t.namespaceURI,!n&&r?[r]:o?null:t.firstChild?me.call(t.childNodes):null,i,!n&&r?r:o?o.__e:t.firstChild,n,s),Zt(i,e,s)}function dt(e,t){_t(e,t,dt)}function ce(e,t,r){var n,o,i,s,f=B({},e.props);for(i in e.type&&e.type.defaultProps&&(s=e.type.defaultProps),t)i=="key"?n=t[i]:i=="ref"?o=t[i]:f[i]=t[i]===void 0&&s!=null?s[i]:t[i];return arguments.length>2&&(f.children=arguments.length>3?me.call(arguments,2):r),ve(e.type,f,n||e.key,o||e.ref,null)}function rr(e){function t(r){var n,o;return this.getChildContext||(n=new Set,(o={})[t.__c]=this,this.getChildContext=function(){return o},this.componentWillUnmount=function(){n=null},this.shouldComponentUpdate=function(i){this.props.value!=i.value&&n.forEach(function(s){s.__e=!0,st(s)})},this.sub=function(i){n.add(i);var s=i.componentWillUnmount;i.componentWillUnmount=function(){n&&n.delete(i),s&&s.call(i)}}),r.children}return t.__c="__cC"+Jt++,t.__=e,t.Provider=t.__l=(t.Consumer=function(r,n){return r.children(n)}).contextType=t,t}me=Be.slice,m={__e:function(e,t,r,n){for(var o,i,s;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&i.getDerivedStateFromError!=null&&(o.setState(i.getDerivedStateFromError(e)),s=o.__d),o.componentDidCatch!=null&&(o.componentDidCatch(e,n||{}),s=o.__d),s)return o.__E=o}catch(f){e=f}throw e}},jt=0,ft=function(e){return e!=null&&e.constructor===void 0},ae.prototype.setState=function(e,t){var r;r=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=B({},this.state),typeof e=="function"&&(e=e(B({},r),this.props)),e&&B(r,e),e!=null&&this.__v&&(t&&this._sb.push(t),st(this))},ae.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),st(this))},ae.prototype.render=Fe,V=[],Vt=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,zt=function(e,t){return e.__v.__b-t.__v.__b},qe.__r=0,nt=Math.random().toString(8),$e="__d"+nt,he="__a"+nt,Kt=/(PointerCapture)$|Capture$/i,ct=0,it=Ht(!1),ot=Ht(!0),Jt=0;var Y,g,ht,nr,ye=0,lr=[],S=m,ir=S.__b,or=S.__r,sr=S.diffed,ar=S.__c,fr=S.unmount,cr=S.__;function ge(e,t){S.__h&&S.__h(g,e,ye||t),ye=0;var r=g.__H||(g.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({}),r.__[e]}function Jr(e){return ye=1,Qr(pr,e)}function Qr(e,t,r){var n=ge(Y++,2);if(n.t=e,!n.__c&&(n.__=[r?r(t):pr(void 0,t),function(f){var u=n.__N?n.__N[0]:n.__[0],c=n.t(u,f);u!==c&&(n.__N=[c,n.__[1]],n.__c.setState({}))}],n.__c=g,!g.__f)){var o=function(f,u,c){if(!n.__c.__H)return!0;var l=n.__c.__H.__.filter(function(_){return _.__c});if(l.every(function(_){return!_.__N}))return!i||i.call(this,f,u,c);var a=n.__c.props!==f;return l.some(function(_){if(_.__N){var p=_.__[0];_.__=_.__N,_.__N=void 0,p!==_.__[0]&&(a=!0)}}),i&&i.call(this,f,u,c)||a};g.__f=!0;var i=g.shouldComponentUpdate,s=g.componentWillUpdate;g.componentWillUpdate=function(f,u,c){if(this.__e){var l=i;i=void 0,o(f,u,c),i=l}s&&s.call(this,f,u,c)},g.shouldComponentUpdate=o}return n.__N||n.__}function we(e,t){var r=ge(Y++,3);!S.__s&&mt(r.__H,t)&&(r.__=e,r.u=t,g.__H.__h.push(r))}function Ae(e,t){var r=ge(Y++,4);!S.__s&&mt(r.__H,t)&&(r.__=e,r.u=t,g.__h.push(r))}function z(e){return ye=5,A(function(){return{current:e}},[])}function A(e,t){var r=ge(Y++,7);return mt(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function He(e,t){return ye=8,A(function(){return e},t)}function be(e){var t=g.context[e.__c],r=ge(Y++,9);return r.c=e,t?(r.__==null&&(r.__=!0,t.sub(g)),t.props.value):e.__}function Xr(){for(var e;e=lr.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(Le),t.__h.some(vt),t.__h=[]}catch(r){t.__h=[],S.__e(r,e.__v)}}}S.__b=function(e){g=null,ir&&ir(e)},S.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),cr&&cr(e,t)},S.__r=function(e){or&&or(e),Y=0;var t=(g=e.__c).__H;t&&(ht===g?(t.__h=[],g.__h=[],t.__.some(function(r){r.__N&&(r.__=r.__N),r.u=r.__N=void 0})):(t.__h.some(Le),t.__h.some(vt),t.__h=[],Y=0)),ht=g},S.diffed=function(e){sr&&sr(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(lr.push(t)!==1&&nr===S.requestAnimationFrame||((nr=S.requestAnimationFrame)||Yr)(Xr)),t.__H.__.some(function(r){r.u&&(r.__H=r.u),r.u=void 0})),ht=g=null},S.__c=function(e,t){t.some(function(r){try{r.__h.some(Le),r.__h=r.__h.filter(function(n){return!n.__||vt(n)})}catch(n){t.some(function(o){o.__h&&(o.__h=[])}),t=[],S.__e(n,r.__v)}}),ar&&ar(e,t)},S.unmount=function(e){fr&&fr(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.some(function(n){try{Le(n)}catch(o){t=o}}),r.__H=void 0,t&&S.__e(t,r.__v))};var ur=typeof requestAnimationFrame=="function";function Yr(e){var t,r=function(){clearTimeout(n),ur&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,35);ur&&(t=requestAnimationFrame(r))}function Le(e){var t=g,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),g=t}function vt(e){var t=g;e.__c=e.__(),g=t}function mt(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function pr(e,t){return typeof t=="function"?t(e):t}var Zr=Symbol.for("preact-signals");function Ve(){if(K>1)K--;else{for(var e,t=!1;Se!==void 0;){var r=Se;for(Se=void 0,yt++;r!==void 0;){var n=r.o;if(r.o=void 0,r.f&=-3,!(8&r.f)&&dr(r))try{r.c()}catch(o){t||(e=o,t=!0)}r=n}}if(yt=0,K--,t)throw e}}function Z(e){if(K>0)return e();K++;try{return e()}finally{Ve()}}var y=void 0;var Se=void 0,K=0,yt=0,je=0;function _r(e){if(y!==void 0){var t=e.n;if(t===void 0||t.t!==y)return t={i:0,S:e,p:y.s,n:void 0,t:y,e:void 0,x:void 0,r:t},y.s!==void 0&&(y.s.n=t),y.s=t,e.n=t,32&y.f&&e.S(t),t;if(t.i===-1)return t.i=0,t.n!==void 0&&(t.n.p=t.p,t.p!==void 0&&(t.p.n=t.n),t.p=y.s,t.n=void 0,y.s.n=t,y.s=t),t}}function P(e){this.v=e,this.i=0,this.n=void 0,this.t=void 0}P.prototype.brand=Zr;P.prototype.h=function(){return!0};P.prototype.S=function(e){this.t!==e&&e.e===void 0&&(e.x=this.t,this.t!==void 0&&(this.t.e=e),this.t=e)};P.prototype.U=function(e){if(this.t!==void 0){var t=e.e,r=e.x;t!==void 0&&(t.x=r,e.e=void 0),r!==void 0&&(r.e=t,e.x=void 0),e===this.t&&(this.t=r)}};P.prototype.subscribe=function(e){var t=this;return H(function(){var r=t.value,n=y;y=void 0;try{e(r)}finally{y=n}})};P.prototype.valueOf=function(){return this.value};P.prototype.toString=function(){return this.value+""};P.prototype.toJSON=function(){return this.value};P.prototype.peek=function(){var e=y;y=void 0;try{return this.value}finally{y=e}};Object.defineProperty(P.prototype,"value",{get:function(){var e=_r(this);return e!==void 0&&(e.i=this.i),this.v},set:function(e){if(e!==this.v){if(yt>100)throw new Error("Cycle detected");this.v=e,this.i++,je++,K++;try{for(var t=this.t;t!==void 0;t=t.x)t.t.N()}finally{Ve()}}}});function k(e){return new P(e)}function dr(e){for(var t=e.s;t!==void 0;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function hr(e){for(var t=e.s;t!==void 0;t=t.n){var r=t.S.n;if(r!==void 0&&(t.r=r),t.S.n=t,t.i=-1,t.n===void 0){e.s=t;break}}}function vr(e){for(var t=e.s,r=void 0;t!==void 0;){var n=t.p;t.i===-1?(t.S.U(t),n!==void 0&&(n.n=t.n),t.n!==void 0&&(t.n.p=n)):r=t,t.S.n=t.r,t.r!==void 0&&(t.r=void 0),t=n}e.s=r}function ue(e){P.call(this,void 0),this.x=e,this.s=void 0,this.g=je-1,this.f=4}(ue.prototype=new P).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===je))return!0;if(this.g=je,this.f|=1,this.i>0&&!dr(this))return this.f&=-2,!0;var e=y;try{hr(this),y=this;var t=this.x();(16&this.f||this.v!==t||this.i===0)&&(this.v=t,this.f&=-17,this.i++)}catch(r){this.v=r,this.f|=16,this.i++}return y=e,vr(this),this.f&=-2,!0};ue.prototype.S=function(e){if(this.t===void 0){this.f|=36;for(var t=this.s;t!==void 0;t=t.n)t.S.S(t)}P.prototype.S.call(this,e)};ue.prototype.U=function(e){if(this.t!==void 0&&(P.prototype.U.call(this,e),this.t===void 0)){this.f&=-33;for(var t=this.s;t!==void 0;t=t.n)t.S.U(t)}};ue.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var e=this.t;e!==void 0;e=e.x)e.t.N()}};Object.defineProperty(ue.prototype,"value",{get:function(){if(1&this.f)throw new Error("Cycle detected");var e=_r(this);if(this.h(),e!==void 0&&(e.i=this.i),16&this.f)throw this.v;return this.v}});function xe(e){return new ue(e)}function mr(e){var t=e.u;if(e.u=void 0,typeof t=="function"){K++;var r=y;y=void 0;try{t()}catch(n){throw e.f&=-2,e.f|=8,gt(e),n}finally{y=r,Ve()}}}function gt(e){for(var t=e.s;t!==void 0;t=t.n)t.S.U(t);e.x=void 0,e.s=void 0,mr(e)}function en(e){if(y!==this)throw new Error("Out-of-order effect");vr(this),y=e,this.f&=-2,8&this.f&>(this),Ve()}function Pe(e){this.x=e,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}Pe.prototype.c=function(){var e=this.S();try{if(8&this.f||this.x===void 0)return;var t=this.x();typeof t=="function"&&(this.u=t)}finally{e()}};Pe.prototype.S=function(){if(1&this.f)throw new Error("Cycle detected");this.f|=1,this.f&=-9,mr(this),hr(this),K++;var e=y;return y=this,en.bind(this,e)};Pe.prototype.N=function(){2&this.f||(this.f|=2,this.o=Se,Se=this)};Pe.prototype.d=function(){this.f|=8,1&this.f||gt(this)};function H(e){var t=new Pe(e);try{t.c()}catch(r){throw t.d(),r}return t.d.bind(t)}var bt,wt;function le(e,t){m[e]=t.bind(null,m[e]||function(){})}function ze(e){wt&&wt(),wt=e&&e.S()}function yr(e){var t=this,r=e.data,n=rn(r);n.value=r;var o=A(function(){for(var i=t.__v;i=i.__;)if(i.__c){i.__c.__$f|=4;break}return t.__$u.c=function(){var s;!ft(o.peek())&&((s=t.base)==null?void 0:s.nodeType)===3?t.base.data=o.peek():(t.__$f|=1,t.setState({}))},xe(function(){var s=n.value.value;return s===0?0:s===!0?"":s||""})},[]);return o.value}yr.displayName="_st";Object.defineProperties(P.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:yr},props:{configurable:!0,get:function(){return{data:this}}},__b:{configurable:!0,value:1}});le("__b",function(e,t){if(typeof t.type=="string"){var r,n=t.props;for(var o in n)if(o!=="children"){var i=n[o];i instanceof P&&(r||(t.__np=r={}),r[o]=i,n[o]=i.peek())}}e(t)});le("__r",function(e,t){ze();var r,n=t.__c;n&&(n.__$f&=-2,(r=n.__$u)===void 0&&(n.__$u=r=(function(o){var i;return H(function(){i=this}),i.c=function(){n.__$f|=1,n.setState({})},i})())),bt=n,ze(r),e(t)});le("__e",function(e,t,r,n){ze(),bt=void 0,e(t,r,n)});le("diffed",function(e,t){ze(),bt=void 0;var r;if(typeof t.type=="string"&&(r=t.__e)){var n=t.__np,o=t.props;if(n){var i=r.U;if(i)for(var s in i){var f=i[s];f!==void 0&&!(s in n)&&(f.d(),i[s]=void 0)}else r.U=i={};for(var u in n){var c=i[u],l=n[u];c===void 0?(c=tn(r,u,l,o),i[u]=c):c.o(l,o)}}}e(t)});function tn(e,t,r,n){var o=t in e&&e.ownerSVGElement===void 0,i=k(r);return{o:function(s,f){i.value=s,n=f},d:H(function(){var s=i.value.value;n[t]!==s&&(n[t]=s,o?e[t]=s:s?e.setAttribute(t,s):e.removeAttribute(t))})}}le("unmount",function(e,t){if(typeof t.type=="string"){var r=t.__e;if(r){var n=r.U;if(n){r.U=void 0;for(var o in n){var i=n[o];i&&i.d()}}}}else{var s=t.__c;if(s){var f=s.__$u;f&&(s.__$u=void 0,f.d())}}e(t)});le("__h",function(e,t,r,n){(n<3||n===9)&&(t.__$f|=2),e(t,r,n)});ae.prototype.shouldComponentUpdate=function(e,t){var r=this.__$u;if(!(r&&r.s!==void 0||4&this.__$f)||3&this.__$f)return!0;for(var n in t)return!0;for(var o in e)if(o!=="__source"&&e[o]!==this.props[o])return!0;for(var i in this.props)if(!(i in e))return!0;return!1};function rn(e){return A(function(){return k(e)},[])}var St=[],q=()=>St.slice(-1)[0],W=e=>{St.push(e)},F=()=>{St.pop()};var xt=[],D=()=>xt.slice(-1)[0],ee=e=>{xt.push(e)},j=()=>{xt.pop()};var nn=e=>D().context[e||q()],on=()=>{let e=D(),t={},{ref:r,attributes:n}=e;return Object.freeze({ref:r.current,attributes:Ee(n,t)})},Ke=k(0);function Pt(e){let t=D();return Pt.subscribe=Ke.value,J(t.serverContext[e||q()])}Pt.subscribe=0;var sn=e=>new Promise(t=>{let r=()=>{clearTimeout(n),window.cancelAnimationFrame(o),setTimeout(()=>{e(),t()})},n=setTimeout(r,100),o=window.requestAnimationFrame(r)}),te=typeof window.scheduler?.yield=="function"?window.scheduler.yield.bind(window.scheduler):()=>new Promise(e=>{setTimeout(e,0)}),gr=e=>{let[t]=performance.getEntriesByType("navigation");t.domContentLoadedEventStart>0?e():document.addEventListener("DOMContentLoaded",e)};function an(e,t){let r=()=>{},n=H(function(){return r=this.c.bind(this),this.x=e,this.c=t,e()});return{flush:r,dispose:n}}function fn(e){we(()=>{let t=null,r=!1;return t=an(e,async()=>{t&&!r&&(r=!0,await sn(t.flush),r=!1)}),t.dispose},[])}function O(e){let t=D(),r=q(),n;if(e?.constructor?.name==="GeneratorFunction"?n=async(...i)=>{let s=e(...i),f,u,c;for(;;){W(r),ee(t);try{u=c?s.throw(c):s.next(f),c=void 0}catch(l){throw l}finally{j(),F()}try{f=await u.value}catch(l){c=l}if(u.done){if(c)throw c;break}}return f}:n=(...i)=>{W(r),ee(t);try{return e(...i)}finally{F(),j()}},e.sync){let i=n;return i.sync=!0,i}return n}function Tt(e){fn(O(e))}function Q(e){we(O(e),[])}function cn(e,t){we(O(e),t)}function un(e,t){Ae(O(e),t)}function ln(e,t){return He(O(e),t)}function pn(e,t){return A(O(e),t)}var wr=(e,t)=>{t=[].concat(t);let r=t[t.length-1].nextSibling;function n(o,i){e.insertBefore(o,i||r)}return e.__k={nodeType:1,parentNode:e,firstChild:t[0],childNodes:t,insertBefore:n,appendChild:n,removeChild(o){e.removeChild(o)},contains(o){e.contains(o)}}};function br(e){return e.replace(/^-+|-+$/g,"").toLowerCase().replace(/-([a-z])/g,function(t,r){return r.toUpperCase()})}var Te=e=>{},T=e=>!!(e&&typeof e=="object"&&e.constructor===Object);function _n(e){let t=e;return t.sync=!0,t}var Et=new WeakMap,dn=e=>{let t=()=>!1;return{get(r,n){let o=r[n];return o&&typeof o=="object"?Ee(o,{errorMessage:e}):o},set:t,deleteProperty:t,defineProperty:t}};function Ee(e,t){let r=t?.errorMessage??"Cannot modify read-only object";if(!Et.has(e)){let n=dn(r);Et.set(e,new Proxy(e,n))}return Et.get(e)}var Je=k(0),Qe=Math.random().toString(36).slice(2);function J(e){return T(e)?Object.fromEntries(Object.entries(e).map(([t,r])=>[t,J(r)])):Array.isArray(e)?e.map(t=>J(t)):e}var Xe=new WeakMap,Sr=new WeakMap,It=new WeakMap,hn=new Set([Object,Array]),Ye=(e,t,r)=>{if(!re(t))throw Error("This object cannot be proxified.");if(!Xe.has(t)){let n=new Proxy(t,r);Xe.set(t,n),Sr.set(n,t),It.set(n,e)}return Xe.get(t)},Ze=e=>Xe.get(e),$=e=>It.get(e),re=e=>typeof e!="object"||e===null?!1:!It.has(e)&&hn.has(e.constructor),xr=e=>Sr.get(e);var vn={},Pr=class{owner;computedsByScope;valueSignal;getterSignal;pendingGetter;constructor(e){this.owner=e,this.computedsByScope=new WeakMap}setValue(e){this.update({value:e})}setGetter(e){this.update({get:e})}setPendingGetter(e){this.pendingGetter=e,queueMicrotask(()=>this.consolidateGetter())}consolidateGetter(){let e=this.pendingGetter;e&&(this.pendingGetter=void 0,this.update({get:e}))}getComputed(){let e=D()||vn;if(!this.valueSignal&&!this.getterSignal&&this.update({}),this.pendingGetter&&this.consolidateGetter(),!this.computedsByScope.has(e)){let t=()=>{let r=this.getterSignal?.value;return r?r.call(this.owner):this.valueSignal?.value};W($(this.owner)),this.computedsByScope.set(e,xe(O(t))),F()}return this.computedsByScope.get(e)}update({get:e,value:t}){this.valueSignal?(t!==this.valueSignal.peek()||e!==this.getterSignal.peek())&&Z(()=>{this.valueSignal.value=t,this.getterSignal.value=e}):(this.valueSignal=k(t),this.getterSignal=k(e))}};var mn=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(e=>typeof e=="symbol")),pe=new WeakMap,yn=(e,t)=>pe.has(e)&&pe.get(e).has(t),Ie=(e,t,r)=>{pe.has(e)||pe.set(e,new Map),t=typeof t=="number"?`${t}`:t;let n=pe.get(e);if(!n.has(t)){let o=$(e),i=new Pr(e);if(n.set(t,i),r){let{get:s,value:f}=r;s?i.setGetter(s):i.setValue(re(f)?G(o,f):f)}}return n.get(t)},L=new WeakMap,Ct=!1,N=Symbol("PENDING_GETTER"),gn={get(e,t,r){if(Ct||!e.hasOwnProperty(t)&&t in e||typeof t=="symbol"&&mn.has(t))return Reflect.get(e,t,r);let n=Object.getOwnPropertyDescriptor(e,t),i=Ie(r,t,n).getComputed().value;if(i===N)throw N;if(typeof i=="function"){let s=$(r);return(...f)=>{W(s);try{return i.call(r,...f)}finally{F()}}}return i},set(e,t,r,n){W($(n));try{return Reflect.set(e,t,r,n)}finally{F()}},defineProperty(e,t,r){let n=!(t in e),o=Reflect.defineProperty(e,t,r);if(o){let i=Ze(e),s=Ie(i,t),{get:f,value:u}=r;if(f)s.setGetter(f);else{let c=$(i);s.setValue(re(u)?G(c,u):u)}n&&L.has(e)&&L.get(e).value++,Array.isArray(e)&&pe.get(i)?.has("length")&&Ie(i,"length").setValue(e.length)}return o},deleteProperty(e,t){let r=Reflect.deleteProperty(e,t);return r&&(Ie(Ze(e),t).setValue(void 0),L.has(e)&&L.get(e).value++),r},ownKeys(e){return L.has(e)||L.set(e,k(0)),L._=L.get(e).value,Reflect.ownKeys(e)}},G=(e,t)=>Ye(e,t,gn),Nt=(e,t)=>{Ct=!0;try{return e[t]}finally{Ct=!1}},kt=(e,t,r=!0)=>{if(!(T(e)&&T(t)))return;let n=!1;for(let o in t){let i=!(o in e);n=n||i;let s=Object.getOwnPropertyDescriptor(t,o),f=Ze(e),u=!!f&&yn(f,o)&&Ie(f,o);if(typeof s.get=="function"||typeof s.set=="function")(r||i)&&(Object.defineProperty(e,o,{...s,configurable:!0,enumerable:!0}),s.get&&u&&u.setPendingGetter(s.get));else if(T(t[o])){let c=Object.getOwnPropertyDescriptor(e,o)?.value;if(i||r&&!T(c)){if(e[o]={},u){let l=$(f);u.setValue(G(l,e[o]))}kt(e[o],t[o],r)}else T(c)&&kt(e[o],t[o],r)}else if((r||i)&&(Object.defineProperty(e,o,s),u)){let{value:c}=s,l=$(f);u.setValue(re(c)?G(l,c):c)}}n&&L.has(e)&&L.get(e).value++},ne=(e,t,r=!0)=>Z(()=>kt(xr(e)||e,t,r));var Er=new WeakSet,wn={get:(e,t,r)=>{let n=Reflect.get(e,t),o=$(r);if(typeof n>"u"&&Er.has(r)){let i={};return Reflect.set(e,t,i),Ce(o,i,!1)}if(typeof n=="function"){W(o);let i=O(n);return F(),i}return T(n)&&re(n)?Ce(o,n,!1):n}},Ce=(e,t,r=!0)=>{let n=Ye(e,t,wn);return n&&r&&Er.add(n),n};var Rt=new WeakMap,_e=new WeakMap,Tr=new WeakSet,Ir=Reflect.getOwnPropertyDescriptor,bn={get:(e,t)=>{let r=_e.get(e),n=e[t];return t in e?n:r[t]},set:(e,t,r)=>{let n=_e.get(e),o=t in e||!(t in n)?e:n;return o[t]=r,!0},ownKeys:e=>[...new Set([...Object.keys(_e.get(e)),...Object.keys(e)])],getOwnPropertyDescriptor:(e,t)=>Ir(e,t)||Ir(_e.get(e),t),has:(e,t)=>Reflect.has(e,t)||Reflect.has(_e.get(e),t)},ke=(e,t={})=>{if(Tr.has(e))throw Error("This object cannot be proxified.");if(_e.set(e,t),!Rt.has(e)){let r=new Proxy(e,bn);Rt.set(e,r),Tr.add(r)}return Rt.get(e)};var Ne=new Map,Cr=new Map,et=new Map,Ut=new Map,Re=new Map,Sn=e=>Ut.get(e||q())||{};function Dt(e){let t=e||q();return Re.has(t)||Re.set(t,{}),Dt.subscribe=Je.value,J(Re.get(t))}Dt.subscribe=0;var ie="I acknowledge that using a private store means my plugin will inevitably break on the next store release.";function Ue(e,{state:t={},...r}={},{lock:n=!1}={}){if(Ne.has(e)){if(n!==ie&&!et.has(e))et.set(e,n);else{let i=et.get(e);if(!(n===ie||n!==!0&&n===i))throw Error(i?"Cannot unlock a private store with an invalid lock code":"Cannot lock a public store")}let o=Cr.get(e);ne(o,r),ne(o.state,t)}else{n!==ie&&et.set(e,n);let o={state:G(e,T(t)?t:{}),...r},i=Ce(e,o);Cr.set(e,o),Ne.set(e,i)}return Ne.get(e)}var Gt=(e=document)=>{let t=e.getElementById("wp-script-module-data-@wordpress/interactivity")??e.getElementById("wp-interactivity-data");if(t?.textContent)try{return JSON.parse(t.textContent)}catch{}return{}},Ot=e=>{Re.clear(),Ut.clear(),T(e?.state)&&Object.entries(e.state).forEach(([t,r])=>{let n=Ue(t,{},{lock:ie});ne(n.state,r,!1),Re.set(t,r)}),T(e?.config)&&Object.entries(e.config).forEach(([t,r])=>{Ut.set(t,r)}),T(e?.derivedStateClosures)&&Object.entries(e.derivedStateClosures).forEach(([t,r])=>{let n=Ue(t,{},{lock:ie});r.forEach(o=>{let i=o.split("."),s=i.splice(-1,1)[0],f=i.reduce((c,l)=>Nt(c,l),n),u=Object.getOwnPropertyDescriptor(f,s);T(u?.value)&&(f[s]=N)})})};function X(e){return e.suffix!==null}function de(e){return e.suffix===null}var kr=rr({client:{},server:{}}),$t={},Rr={},x=(e,t,{priority:r=10}={})=>{$t[e]=t,Rr[e]=r},xn=(e,t)=>{if(!t){Te(`Namespace missing for "${e}". The value for that path won't be resolved.`);return}let r=Ne.get(t);typeof r>"u"&&(r=Ue(t,{},{lock:ie}));let n={...r,context:D().context[t]};try{return e.split(".").reduce((i,s)=>i[s],n)}catch(o){if(o===N)return N}},Mt=({scope:e})=>((t,...r)=>{let{value:n,namespace:o}=t;if(typeof n!="string")throw new Error("The `value` prop should be a string path");let i=n[0]==="!"&&!!(n=n.slice(1));ee(e);let s=xn(n,o);if(typeof s=="function"){if(i){Te("Using a function with a negation operator is deprecated and will stop working in WordPress 6.9. Please use derived state instead.");let c=!s(...r);return j(),c}j();let u=(...c)=>{ee(e);let l=s(...c);return j(),l};if(s.sync){let c=u;c.sync=!0}return u}let f=s;return j(),i&&s!==N?!f:f}),Pn=e=>{let t=Object.keys(e).reduce((r,n)=>{if($t[n]){let o=Rr[n];(r[o]=r[o]||[]).push(n)}return r},{});return Object.entries(t).sort(([r],[n])=>parseInt(r)-parseInt(n)).map(([,r])=>r)},Ur=({directives:e,priorityLevels:[t,...r],element:n,originalProps:o,previousScope:i})=>{let s=z({}).current;s.evaluate=He(Mt({scope:s}),[]);let{client:f,server:u}=be(kr);s.context=f,s.serverContext=u,s.ref=i?.ref||z(null),n=ce(n,{ref:s.ref}),s.attributes=n.props;let c=r.length>0?R(Ur,{directives:e,priorityLevels:r,element:n,originalProps:o,previousScope:s}):n,l={...o,children:c},a={directives:e,props:l,element:n,context:kr,evaluate:s.evaluate};ee(s);for(let _ of t){let p=$t[_]?.(a);p!==void 0&&(l.children=p)}return j(),l.children},Nr=m.vnode;m.vnode=e=>{if(e.props.__directives){let t=e.props,r=t.__directives;r.key&&(e.key=r.key.find(de).value),delete t.__directives;let n=Pn(r);n.length>0&&(e.props={directives:r,priorityLevels:n,originalProps:t,type:e.type,element:R(e.type,t),top:!0},e.type=Ur)}Nr&&Nr(e)};function Mr(e){let t={get(r,n,o){let i=r[n];switch(n){case"currentTarget":break;case"preventDefault":case"stopImmediatePropagation":case"stopPropagation":break}return i instanceof Function?function(...s){return i.apply(this===o?r:this,s)}:i}};return new Proxy(e,t)}var En=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,Tn=/\/\*[^]*?\*\/| +/g,Dr=/\n+/g,Gr=" ",In=e=>{let t=[{}],r,n;for(;r=En.exec(e.replace(Tn,""));)r[4]?t.shift():r[3]?(n=r[3].replace(Dr,Gr).trim(),t.unshift(t[0][n]=t[0][n]||{})):t[0][r[1]]=r[2].replace(Dr,Gr).trim();return t[0]},Or=e=>({directives:t,evaluate:r})=>{t[`on-${e}`].filter(X).forEach(n=>{let i=n.suffix.split("--",2)[0];Q(()=>{let s=u=>{let c=r(n);typeof c=="function"&&(c?.sync||(u=Mr(u)),c(u))},f=e==="window"?window:document;return f.addEventListener(i,s),()=>f.removeEventListener(i,s)})})},Cn=(e,t,r,n,o)=>{let i={...e.client,[t]:{...e.client[t],[n]:r}},s={...D(),context:i,serverContext:e.server};return o?Mt({scope:s})(o):r},kn=function*(e,t,r,n,o){let{current:i}=z(new Map);for(let s of r){let f=Cn(e,t,s,n,o);i.has(f)||i.set(f,ke(G(t,{[n]:void 0}),e.client[t])),yield[s,i.get(f),f]}},$r=e=>({directives:t,evaluate:r})=>{t[`on-async-${e}`].filter(X).forEach(n=>{let o=n.suffix.split("--",1)[0];Q(()=>{let i=async f=>{await te();let u=r(n);typeof u=="function"&&u(f)},s=e==="window"?window:document;return s.addEventListener(o,i,{passive:!0}),()=>s.removeEventListener(o,i)})})},De=new Map,Br=()=>{x("context",({directives:{context:e},props:{children:t},context:r})=>{let n=e.filter(de).reverse();if(!n.length)return;let{Provider:o}=r,{client:i,server:s}=be(r),f=z({}),u={},c={client:{...i},server:{...s}},l=new Set;return n.forEach(({value:a,namespace:_,uniqueId:p})=>{T(a)&&(f.current[_]||(f.current[_]=G(_,{})),ne(f.current[_],J(a),!1),u[_]=a,l.add(_))}),l.forEach(a=>{c.client[a]=ke(f.current[a],i[a]),c.server[a]=ke(u[a],s[a])}),R(o,{value:c},t)},{priority:5}),x("watch",({directives:{watch:e},evaluate:t})=>{e.forEach(r=>{Tt(()=>{let n,o=t(r);return typeof o=="function"&&(o=o()),o})})}),x("init",({directives:{init:e},evaluate:t})=>{e.forEach(r=>{Q(()=>{let n,o=t(r);return typeof o=="function"&&(o=o()),o})})}),x("on",({directives:{on:e},element:t,evaluate:r})=>{let n=new Map;e.filter(X).forEach(o=>{let i=o.suffix.split("--",2);n.has(i[0])||n.set(i[0],new Set),n.get(i[0]).add(o)}),n.forEach((o,i)=>{let s=t.props[`on${i}`];t.props[`on${i}`]=f=>{s&&s(f),o.forEach(u=>{let c,l=r(u);typeof l=="function"&&(l?.sync||(f=Mr(f)),l(f))})}})}),x("on-async",({directives:{"on-async":e},element:t,evaluate:r})=>{let n=new Map;e.filter(X).forEach(o=>{let i=o.suffix.split("--",1)[0];n.has(i)||n.set(i,new Set),n.get(i).add(o)}),n.forEach((o,i)=>{let s=t.props[`on${i}`];t.props[`on${i}`]=f=>{s&&s(f),o.forEach(async u=>{await te();let c=r(u);typeof c=="function"&&c(f)})}})}),x("on-window",Or("window")),x("on-document",Or("document")),x("on-async-window",$r("window")),x("on-async-document",$r("document")),x("class",({directives:{class:e},element:t,evaluate:r})=>{e.filter(X).forEach(n=>{let o=n.uniqueId?`${n.suffix}---${n.uniqueId}`:n.suffix,i=r(n);if(i===N)return;typeof i=="function"&&(i=i());let s=t.props.class||"",f=new RegExp(`(^|\\s)${o}(\\s|$)`,"g");i?f.test(s)||(t.props.class=s?`${s} ${o}`:o):t.props.class=s.replace(f," ").trim(),Q(()=>{i?t.ref.current.classList.add(o):t.ref.current.classList.remove(o)})})}),x("style",({directives:{style:e},element:t,evaluate:r})=>{e.filter(X).forEach(n=>{if(n.uniqueId)return;let o=n.suffix,i=r(n);i!==N&&(typeof i=="function"&&(i=i()),t.props.style=t.props.style||{},typeof t.props.style=="string"&&(t.props.style=In(t.props.style)),i?t.props.style[o]=i:delete t.props.style[o],Q(()=>{i?t.ref.current.style.setProperty(o,i):t.ref.current.style.removeProperty(o)}))})}),x("bind",({directives:{bind:e},element:t,evaluate:r})=>{e.filter(X).forEach(n=>{if(n.uniqueId)return;let o=n.suffix,i=r(n);i!==N&&(typeof i=="function"&&(i=i()),t.props[o]=i,Q(()=>{let s=t.ref.current;if(o==="style"){typeof i=="string"&&(s.style.cssText=i);return}else if(o!=="width"&&o!=="height"&&o!=="href"&&o!=="list"&&o!=="form"&&o!=="tabIndex"&&o!=="download"&&o!=="rowSpan"&&o!=="colSpan"&&o!=="role"&&o!=="popover"&&o in s)try{s[o]=i??"";return}catch{}i!=null&&(i!==!1||o[4]==="-")?s.setAttribute(o,o==="popover"&&i===!0?"":i):s.removeAttribute(o)}))})}),x("ignore",({element:{type:e,props:{innerHTML:t,...r}}})=>{let n=A(()=>t,[]);return R(e,{dangerouslySetInnerHTML:{__html:n},...r})}),x("text",({directives:{text:e},element:t,evaluate:r})=>{let n=e.filter(de);n.length&&n.forEach(o=>{if(!o.uniqueId)try{let i=r(o);if(i===N)return;typeof i=="function"&&(i=i()),t.props.children=typeof i=="object"?null:i.toString()}catch{t.props.children=null}})}),x("run",({directives:{run:e},evaluate:t})=>{e.forEach(r=>{let n=t(r);return typeof n=="function"&&(n=n()),n})}),x("each",({directives:{each:e,"each-key":t},context:r,element:n,evaluate:o})=>{if(n.type!=="template")return;let{Provider:i}=r,s=be(r),[f]=e,{namespace:u,suffix:c,uniqueId:l}=f;if(e.length>1||l)return;let a=o(f);if(a===N||(typeof a=="function"&&(a=a()),typeof a?.[Symbol.iterator]!="function"))return;let _=c?br(c):"item",p=[],w=kn(s,u,a,_,t?.[0]);for(let[E,h,d]of w){let v={client:{...s.client,[u]:h},server:{...s.server}};v.client[u][_]=E,p.push(R(i,{value:v,key:d},n.props.content))}return p},{priority:20}),x("each-child",({directives:{"each-child":e},element:t,evaluate:r})=>{let n=e.find(de);return n?r(n)===N?t:null:void 0},{priority:1}),x("router-region",({directives:{"router-region":e}})=>{let t=e.find(de);if(!t||t.suffix||t.uniqueId)return;let r=typeof t.value=="string"?t.value:t.value.id;De.has(r)||De.set(r,k());let n=De.get(r).value;if(Ae(()=>{n&&typeof n.type!="string"&&(Ke.value=Ke.peek()+1)},[n]),n&&typeof n.type!="string"){let o=D();return ce(n,{previousScope:o})}return n},{priority:1})};var Bt="data-wp-",tt=[],Nn=()=>tt[tt.length-1]??null,Rn=e=>!!(e&&typeof e=="object"&&e.constructor===Object),Un=/[^a-z0-9-_]/i;function Dn(e){let t=e.substring(8);if(Un.test(t))return null;let r=t.indexOf("--");if(r===-1)return{prefix:t,suffix:null,uniqueId:null};let n=t.substring(0,r),o=t.substring(r);if(o.startsWith("---")&&o[3]!=="-")return{prefix:n,suffix:null,uniqueId:o.substring(3)||null};let i=o.substring(2),s=i.indexOf("---");if(s!==-1&&i.substring(s)[3]!=="-"){let f=i.substring(s+3)||null;return i=i.substring(0,s)||null,{prefix:n,suffix:i,uniqueId:f}}return{prefix:n,suffix:i||null,uniqueId:null}}var Gn=/^([\w_\/-]+)::(.+)$/,qt=new WeakSet;function Ge(e){let t=new Set,r=new Set,n=document.createTreeWalker(e,205);function o(s){let{nodeType:f}=s;if(f===3)return s.data;if(f===4)return r.add(s),s.nodeValue;if(f===8||f===7)return t.add(s),null;let u=s,{attributes:c}=u,l=u.localName,a={},_=[],p=[],w=!1,E=!1;for(let h=0;h<c.length;h++){let d=c[h].name,v=c[h].value;if(d[Bt.length]&&d.slice(0,Bt.length)===Bt)if(d==="data-wp-ignore")w=!0;else{let I=Gn.exec(v),C=I?.[1]??null,b=I?.[2]??v;try{let U=JSON.parse(b);b=Rn(U)?U:b}catch{}if(d==="data-wp-interactive"){E=!0;let U=typeof b=="string"?b:typeof b?.namespace=="string"?b.namespace:null;tt.push(U)}else p.push([d,C,b])}else if(d==="ref")continue;v===""&&u[d]===!0?a[d]=!0:a[d]=v}if(w&&!E)return[R(l,{...a,innerHTML:u.innerHTML,__directives:{ignore:!0}})];if(E&&qt.add(u),p.length){a.__directives=p.reduce((h,[d,v,I])=>{let C=Dn(d);if(C===null)return h;let{prefix:b,suffix:U,uniqueId:oe}=C;return h[b]=h[b]||[],h[b].push({namespace:v??Nn(),value:I,suffix:U,uniqueId:oe}),h},{});for(let h in a.__directives)a.__directives[h].sort((d,v)=>{let I=d.suffix??"",C=v.suffix??"";if(I!==C)return I<C?-1:1;let b=d.uniqueId??"",U=v.uniqueId??"";return+(b>U)-+(b<U)})}if(a.__directives?.["each-child"])a.dangerouslySetInnerHTML={__html:u.innerHTML};else if(l==="template")a.content=[...u.content.childNodes].map(h=>Ge(h));else{let h=n.firstChild();if(h){for(;h;){let d=o(h);d&&_.push(d),h=n.nextSibling()}n.parentNode()}}return E&&tt.pop(),R(l,a,_)}let i=o(n.currentNode);return t.forEach(s=>s.remove()),r.forEach(s=>s.replaceWith(new window.Text(s.nodeValue??""))),i}var Wt=new WeakMap,Ft=e=>{let t=Array.isArray(e)?e[0]:e;if(!t.parentElement)throw Error("The passed region should be an element with a parent.");return Wt.has(t)||Wt.set(t,wr(t.parentElement,e)),Wt.get(t)},qr=new WeakMap,Wr,Fr=new Promise(e=>{Wr=e}),Lr=async()=>{let e=document.querySelectorAll("[data-wp-interactive]");for(let t of e)if(!qt.has(t)){await te();let r=Ft(t),n=Ge(t);qr.set(t,n),await te(),dt(n,r)}Wr(qr)};var vo=H,On="I acknowledge that using private APIs means my theme or plugin will inevitably break in the next version of WordPress.",mo=e=>{if(e===On)return{getRegionRootFragment:Ft,initialVdomPromise:Fr,toVdom:Ge,directive:x,getNamespace:q,h:R,cloneElement:ce,render:_t,proxifyState:G,parseServerData:Gt,populateServerData:Ot,batch:Z,routerRegions:De,deepReadOnly:Ee,navigationSignal:Je,sessionId:Qe,warn:Te};throw new Error("Forbidden access.")};Ot(Gt());Br();gr(Lr);window.history.replaceState({...window.history.state,wpInteractivityId:Qe},"");window.addEventListener("popstate",e=>{e.state!==null&&e.state?.wpInteractivityId!==Qe&&window.location.reload()});export{Sn as getConfig,nn as getContext,on as getElement,Pt as getServerContext,Dt as getServerState,mo as privateApis,te as splitTask,Ue as store,ln as useCallback,cn as useEffect,Q as useInit,un as useLayoutEffect,pn as useMemo,z as useRef,Jr as useState,Tt as useWatch,vo as watch,O as withScope,_n as withSyncEvent}; interactivity/index.js 0000644 00000313751 15206736335 0011133 0 ustar 00 var __defProp = Object.defineProperty; var __getOwnPropNames = Object.getOwnPropertyNames; var __esm = (fn, res) => function __init() { return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; // node_modules/preact/dist/preact.module.js function m(n3, l6) { for (var u5 in l6) n3[u5] = l6[u5]; return n3; } function b(n3) { n3 && n3.parentNode && n3.parentNode.removeChild(n3); } function k(l6, u5, t5) { var i6, r5, o4, e4 = {}; for (o4 in u5) "key" == o4 ? i6 = u5[o4] : "ref" == o4 ? r5 = u5[o4] : e4[o4] = u5[o4]; if (arguments.length > 2 && (e4.children = arguments.length > 3 ? n.call(arguments, 2) : t5), "function" == typeof l6 && null != l6.defaultProps) for (o4 in l6.defaultProps) void 0 === e4[o4] && (e4[o4] = l6.defaultProps[o4]); return x(l6, e4, i6, r5, null); } function x(n3, t5, i6, r5, o4) { var e4 = { type: n3, props: t5, key: i6, ref: r5, __k: null, __: null, __b: 0, __e: null, __c: null, constructor: void 0, __v: null == o4 ? ++u : o4, __i: -1, __u: 0 }; return null == o4 && null != l.vnode && l.vnode(e4), e4; } function S(n3) { return n3.children; } function C(n3, l6) { this.props = n3, this.context = l6; } function $(n3, l6) { if (null == l6) return n3.__ ? $(n3.__, n3.__i + 1) : null; for (var u5; l6 < n3.__k.length; l6++) if (null != (u5 = n3.__k[l6]) && null != u5.__e) return u5.__e; return "function" == typeof n3.type ? $(n3) : null; } function I(n3) { if (n3.__P && n3.__d) { var u5 = n3.__v, t5 = u5.__e, i6 = [], r5 = [], o4 = m({}, u5); o4.__v = u5.__v + 1, l.vnode && l.vnode(o4), q(n3.__P, o4, u5, n3.__n, n3.__P.namespaceURI, 32 & u5.__u ? [t5] : null, i6, null == t5 ? $(u5) : t5, !!(32 & u5.__u), r5), o4.__v = u5.__v, o4.__.__k[o4.__i] = o4, D(i6, o4, r5), u5.__e = u5.__ = null, o4.__e != t5 && P(o4); } } function P(n3) { if (null != (n3 = n3.__) && null != n3.__c) return n3.__e = n3.__c.base = null, n3.__k.some(function(l6) { if (null != l6 && null != l6.__e) return n3.__e = n3.__c.base = l6.__e; }), P(n3); } function A(n3) { (!n3.__d && (n3.__d = true) && i.push(n3) && !H.__r++ || r != l.debounceRendering) && ((r = l.debounceRendering) || o)(H); } function H() { try { for (var n3, l6 = 1; i.length; ) i.length > l6 && i.sort(e), n3 = i.shift(), l6 = i.length, I(n3); } finally { i.length = H.__r = 0; } } function L(n3, l6, u5, t5, i6, r5, o4, e4, f5, c5, s6) { var a5, h5, p6, v6, y5, _5, g3, m4 = t5 && t5.__k || w, b4 = l6.length; for (f5 = T(u5, l6, m4, f5, b4), a5 = 0; a5 < b4; a5++) null != (p6 = u5.__k[a5]) && (h5 = -1 != p6.__i && m4[p6.__i] || d, p6.__i = a5, _5 = q(n3, p6, h5, i6, r5, o4, e4, f5, c5, s6), v6 = p6.__e, p6.ref && h5.ref != p6.ref && (h5.ref && J(h5.ref, null, p6), s6.push(p6.ref, p6.__c || v6, p6)), null == y5 && null != v6 && (y5 = v6), (g3 = !!(4 & p6.__u)) || h5.__k === p6.__k ? (f5 = j(p6, f5, n3, g3), g3 && h5.__e && (h5.__e = null)) : "function" == typeof p6.type && void 0 !== _5 ? f5 = _5 : v6 && (f5 = v6.nextSibling), p6.__u &= -7); return u5.__e = y5, f5; } function T(n3, l6, u5, t5, i6) { var r5, o4, e4, f5, c5, s6 = u5.length, a5 = s6, h5 = 0; for (n3.__k = new Array(i6), r5 = 0; r5 < i6; r5++) null != (o4 = l6[r5]) && "boolean" != typeof o4 && "function" != typeof o4 ? ("string" == typeof o4 || "number" == typeof o4 || "bigint" == typeof o4 || o4.constructor == String ? o4 = n3.__k[r5] = x(null, o4, null, null, null) : g(o4) ? o4 = n3.__k[r5] = x(S, { children: o4 }, null, null, null) : void 0 === o4.constructor && o4.__b > 0 ? o4 = n3.__k[r5] = x(o4.type, o4.props, o4.key, o4.ref ? o4.ref : null, o4.__v) : n3.__k[r5] = o4, f5 = r5 + h5, o4.__ = n3, o4.__b = n3.__b + 1, e4 = null, -1 != (c5 = o4.__i = O(o4, u5, f5, a5)) && (a5--, (e4 = u5[c5]) && (e4.__u |= 2)), null == e4 || null == e4.__v ? (-1 == c5 && (i6 > s6 ? h5-- : i6 < s6 && h5++), "function" != typeof o4.type && (o4.__u |= 4)) : c5 != f5 && (c5 == f5 - 1 ? h5-- : c5 == f5 + 1 ? h5++ : (c5 > f5 ? h5-- : h5++, o4.__u |= 4))) : n3.__k[r5] = null; if (a5) for (r5 = 0; r5 < s6; r5++) null != (e4 = u5[r5]) && 0 == (2 & e4.__u) && (e4.__e == t5 && (t5 = $(e4)), K(e4, e4)); return t5; } function j(n3, l6, u5, t5) { var i6, r5; if ("function" == typeof n3.type) { for (i6 = n3.__k, r5 = 0; i6 && r5 < i6.length; r5++) i6[r5] && (i6[r5].__ = n3, l6 = j(i6[r5], l6, u5, t5)); return l6; } n3.__e != l6 && (t5 && (l6 && n3.type && !l6.parentNode && (l6 = $(n3)), u5.insertBefore(n3.__e, l6 || null)), l6 = n3.__e); do { l6 = l6 && l6.nextSibling; } while (null != l6 && 8 == l6.nodeType); return l6; } function O(n3, l6, u5, t5) { var i6, r5, o4, e4 = n3.key, f5 = n3.type, c5 = l6[u5], s6 = null != c5 && 0 == (2 & c5.__u); if (null === c5 && null == e4 || s6 && e4 == c5.key && f5 == c5.type) return u5; if (t5 > (s6 ? 1 : 0)) { for (i6 = u5 - 1, r5 = u5 + 1; i6 >= 0 || r5 < l6.length; ) if (null != (c5 = l6[o4 = i6 >= 0 ? i6-- : r5++]) && 0 == (2 & c5.__u) && e4 == c5.key && f5 == c5.type) return o4; } return -1; } function z(n3, l6, u5) { "-" == l6[0] ? n3.setProperty(l6, null == u5 ? "" : u5) : n3[l6] = null == u5 ? "" : "number" != typeof u5 || _.test(l6) ? u5 : u5 + "px"; } function N(n3, l6, u5, t5, i6) { var r5, o4; n: if ("style" == l6) if ("string" == typeof u5) n3.style.cssText = u5; else { if ("string" == typeof t5 && (n3.style.cssText = t5 = ""), t5) for (l6 in t5) u5 && l6 in u5 || z(n3.style, l6, ""); if (u5) for (l6 in u5) t5 && u5[l6] == t5[l6] || z(n3.style, l6, u5[l6]); } else if ("o" == l6[0] && "n" == l6[1]) r5 = l6 != (l6 = l6.replace(a, "$1")), o4 = l6.toLowerCase(), l6 = o4 in n3 || "onFocusOut" == l6 || "onFocusIn" == l6 ? o4.slice(2) : l6.slice(2), n3.l || (n3.l = {}), n3.l[l6 + r5] = u5, u5 ? t5 ? u5[s] = t5[s] : (u5[s] = h, n3.addEventListener(l6, r5 ? v : p, r5)) : n3.removeEventListener(l6, r5 ? v : p, r5); else { if ("http://www.w3.org/2000/svg" == i6) l6 = l6.replace(/xlink(H|:h)/, "h").replace(/sName$/, "s"); else if ("width" != l6 && "height" != l6 && "href" != l6 && "list" != l6 && "form" != l6 && "tabIndex" != l6 && "download" != l6 && "rowSpan" != l6 && "colSpan" != l6 && "role" != l6 && "popover" != l6 && l6 in n3) try { n3[l6] = null == u5 ? "" : u5; break n; } catch (n4) { } "function" == typeof u5 || (null == u5 || false === u5 && "-" != l6[4] ? n3.removeAttribute(l6) : n3.setAttribute(l6, "popover" == l6 && 1 == u5 ? "" : u5)); } } function V(n3) { return function(u5) { if (this.l) { var t5 = this.l[u5.type + n3]; if (null == u5[c]) u5[c] = h++; else if (u5[c] < t5[s]) return; return t5(l.event ? l.event(u5) : u5); } }; } function q(n3, u5, t5, i6, r5, o4, e4, f5, c5, s6) { var a5, h5, p6, v6, y5, d6, _5, k3, x3, M, $2, I2, P2, A3, H2, T3 = u5.type; if (void 0 !== u5.constructor) return null; 128 & t5.__u && (c5 = !!(32 & t5.__u), o4 = [f5 = u5.__e = t5.__e]), (a5 = l.__b) && a5(u5); n: if ("function" == typeof T3) try { if (k3 = u5.props, x3 = T3.prototype && T3.prototype.render, M = (a5 = T3.contextType) && i6[a5.__c], $2 = a5 ? M ? M.props.value : a5.__ : i6, t5.__c ? _5 = (h5 = u5.__c = t5.__c).__ = h5.__E : (x3 ? u5.__c = h5 = new T3(k3, $2) : (u5.__c = h5 = new C(k3, $2), h5.constructor = T3, h5.render = Q), M && M.sub(h5), h5.state || (h5.state = {}), h5.__n = i6, p6 = h5.__d = true, h5.__h = [], h5._sb = []), x3 && null == h5.__s && (h5.__s = h5.state), x3 && null != T3.getDerivedStateFromProps && (h5.__s == h5.state && (h5.__s = m({}, h5.__s)), m(h5.__s, T3.getDerivedStateFromProps(k3, h5.__s))), v6 = h5.props, y5 = h5.state, h5.__v = u5, p6) x3 && null == T3.getDerivedStateFromProps && null != h5.componentWillMount && h5.componentWillMount(), x3 && null != h5.componentDidMount && h5.__h.push(h5.componentDidMount); else { if (x3 && null == T3.getDerivedStateFromProps && k3 !== v6 && null != h5.componentWillReceiveProps && h5.componentWillReceiveProps(k3, $2), u5.__v == t5.__v || !h5.__e && null != h5.shouldComponentUpdate && false === h5.shouldComponentUpdate(k3, h5.__s, $2)) { u5.__v != t5.__v && (h5.props = k3, h5.state = h5.__s, h5.__d = false), u5.__e = t5.__e, u5.__k = t5.__k, u5.__k.some(function(n4) { n4 && (n4.__ = u5); }), w.push.apply(h5.__h, h5._sb), h5._sb = [], h5.__h.length && e4.push(h5); break n; } null != h5.componentWillUpdate && h5.componentWillUpdate(k3, h5.__s, $2), x3 && null != h5.componentDidUpdate && h5.__h.push(function() { h5.componentDidUpdate(v6, y5, d6); }); } if (h5.context = $2, h5.props = k3, h5.__P = n3, h5.__e = false, I2 = l.__r, P2 = 0, x3) h5.state = h5.__s, h5.__d = false, I2 && I2(u5), a5 = h5.render(h5.props, h5.state, h5.context), w.push.apply(h5.__h, h5._sb), h5._sb = []; else do { h5.__d = false, I2 && I2(u5), a5 = h5.render(h5.props, h5.state, h5.context), h5.state = h5.__s; } while (h5.__d && ++P2 < 25); h5.state = h5.__s, null != h5.getChildContext && (i6 = m(m({}, i6), h5.getChildContext())), x3 && !p6 && null != h5.getSnapshotBeforeUpdate && (d6 = h5.getSnapshotBeforeUpdate(v6, y5)), A3 = null != a5 && a5.type === S && null == a5.key ? E(a5.props.children) : a5, f5 = L(n3, g(A3) ? A3 : [A3], u5, t5, i6, r5, o4, e4, f5, c5, s6), h5.base = u5.__e, u5.__u &= -161, h5.__h.length && e4.push(h5), _5 && (h5.__E = h5.__ = null); } catch (n4) { if (u5.__v = null, c5 || null != o4) if (n4.then) { for (u5.__u |= c5 ? 160 : 128; f5 && 8 == f5.nodeType && f5.nextSibling; ) f5 = f5.nextSibling; o4[o4.indexOf(f5)] = null, u5.__e = f5; } else { for (H2 = o4.length; H2--; ) b(o4[H2]); B(u5); } else u5.__e = t5.__e, u5.__k = t5.__k, n4.then || B(u5); l.__e(n4, u5, t5); } else null == o4 && u5.__v == t5.__v ? (u5.__k = t5.__k, u5.__e = t5.__e) : f5 = u5.__e = G(t5.__e, u5, t5, i6, r5, o4, e4, c5, s6); return (a5 = l.diffed) && a5(u5), 128 & u5.__u ? void 0 : f5; } function B(n3) { n3 && (n3.__c && (n3.__c.__e = true), n3.__k && n3.__k.some(B)); } function D(n3, u5, t5) { for (var i6 = 0; i6 < t5.length; i6++) J(t5[i6], t5[++i6], t5[++i6]); l.__c && l.__c(u5, n3), n3.some(function(u6) { try { n3 = u6.__h, u6.__h = [], n3.some(function(n4) { n4.call(u6); }); } catch (n4) { l.__e(n4, u6.__v); } }); } function E(n3) { return "object" != typeof n3 || null == n3 || n3.__b > 0 ? n3 : g(n3) ? n3.map(E) : m({}, n3); } function G(u5, t5, i6, r5, o4, e4, f5, c5, s6) { var a5, h5, p6, v6, y5, w5, _5, m4 = i6.props || d, k3 = t5.props, x3 = t5.type; if ("svg" == x3 ? o4 = "http://www.w3.org/2000/svg" : "math" == x3 ? o4 = "http://www.w3.org/1998/Math/MathML" : o4 || (o4 = "http://www.w3.org/1999/xhtml"), null != e4) { for (a5 = 0; a5 < e4.length; a5++) if ((y5 = e4[a5]) && "setAttribute" in y5 == !!x3 && (x3 ? y5.localName == x3 : 3 == y5.nodeType)) { u5 = y5, e4[a5] = null; break; } } if (null == u5) { if (null == x3) return document.createTextNode(k3); u5 = document.createElementNS(o4, x3, k3.is && k3), c5 && (l.__m && l.__m(t5, e4), c5 = false), e4 = null; } if (null == x3) m4 === k3 || c5 && u5.data == k3 || (u5.data = k3); else { if (e4 = e4 && n.call(u5.childNodes), !c5 && null != e4) for (m4 = {}, a5 = 0; a5 < u5.attributes.length; a5++) m4[(y5 = u5.attributes[a5]).name] = y5.value; for (a5 in m4) y5 = m4[a5], "dangerouslySetInnerHTML" == a5 ? p6 = y5 : "children" == a5 || a5 in k3 || "value" == a5 && "defaultValue" in k3 || "checked" == a5 && "defaultChecked" in k3 || N(u5, a5, null, y5, o4); for (a5 in k3) y5 = k3[a5], "children" == a5 ? v6 = y5 : "dangerouslySetInnerHTML" == a5 ? h5 = y5 : "value" == a5 ? w5 = y5 : "checked" == a5 ? _5 = y5 : c5 && "function" != typeof y5 || m4[a5] === y5 || N(u5, a5, y5, m4[a5], o4); if (h5) c5 || p6 && (h5.__html == p6.__html || h5.__html == u5.innerHTML) || (u5.innerHTML = h5.__html), t5.__k = []; else if (p6 && (u5.innerHTML = ""), L("template" == t5.type ? u5.content : u5, g(v6) ? v6 : [v6], t5, i6, r5, "foreignObject" == x3 ? "http://www.w3.org/1999/xhtml" : o4, e4, f5, e4 ? e4[0] : i6.__k && $(i6, 0), c5, s6), null != e4) for (a5 = e4.length; a5--; ) b(e4[a5]); c5 || (a5 = "value", "progress" == x3 && null == w5 ? u5.removeAttribute("value") : null != w5 && (w5 !== u5[a5] || "progress" == x3 && !w5 || "option" == x3 && w5 != m4[a5]) && N(u5, a5, w5, m4[a5], o4), a5 = "checked", null != _5 && _5 != u5[a5] && N(u5, a5, _5, m4[a5], o4)); } return u5; } function J(n3, u5, t5) { try { if ("function" == typeof n3) { var i6 = "function" == typeof n3.__u; i6 && n3.__u(), i6 && null == u5 || (n3.__u = n3(u5)); } else n3.current = u5; } catch (n4) { l.__e(n4, t5); } } function K(n3, u5, t5) { var i6, r5; if (l.unmount && l.unmount(n3), (i6 = n3.ref) && (i6.current && i6.current != n3.__e || J(i6, null, u5)), null != (i6 = n3.__c)) { if (i6.componentWillUnmount) try { i6.componentWillUnmount(); } catch (n4) { l.__e(n4, u5); } i6.base = i6.__P = null; } if (i6 = n3.__k) for (r5 = 0; r5 < i6.length; r5++) i6[r5] && K(i6[r5], u5, t5 || "function" != typeof n3.type); t5 || b(n3.__e), n3.__c = n3.__ = n3.__e = void 0; } function Q(n3, l6, u5) { return this.constructor(n3, u5); } function R(u5, t5, i6) { var r5, o4, e4, f5; t5 == document && (t5 = document.documentElement), l.__ && l.__(u5, t5), o4 = (r5 = "function" == typeof i6) ? null : i6 && i6.__k || t5.__k, e4 = [], f5 = [], q(t5, u5 = (!r5 && i6 || t5).__k = k(S, null, [u5]), o4 || d, d, t5.namespaceURI, !r5 && i6 ? [i6] : o4 ? null : t5.firstChild ? n.call(t5.childNodes) : null, e4, !r5 && i6 ? i6 : o4 ? o4.__e : t5.firstChild, r5, f5), D(e4, u5, f5); } function U(n3, l6) { R(n3, l6, U); } function W(l6, u5, t5) { var i6, r5, o4, e4, f5 = m({}, l6.props); for (o4 in l6.type && l6.type.defaultProps && (e4 = l6.type.defaultProps), u5) "key" == o4 ? i6 = u5[o4] : "ref" == o4 ? r5 = u5[o4] : f5[o4] = void 0 === u5[o4] && null != e4 ? e4[o4] : u5[o4]; return arguments.length > 2 && (f5.children = arguments.length > 3 ? n.call(arguments, 2) : t5), x(l6.type, f5, i6 || l6.key, r5 || l6.ref, null); } function X(n3) { function l6(n4) { var u5, t5; return this.getChildContext || (u5 = /* @__PURE__ */ new Set(), (t5 = {})[l6.__c] = this, this.getChildContext = function() { return t5; }, this.componentWillUnmount = function() { u5 = null; }, this.shouldComponentUpdate = function(n5) { this.props.value != n5.value && u5.forEach(function(n6) { n6.__e = true, A(n6); }); }, this.sub = function(n5) { u5.add(n5); var l7 = n5.componentWillUnmount; n5.componentWillUnmount = function() { u5 && u5.delete(n5), l7 && l7.call(n5); }; }), n4.children; } return l6.__c = "__cC" + y++, l6.__ = n3, l6.Provider = l6.__l = (l6.Consumer = function(n4, l7) { return n4.children(l7); }).contextType = l6, l6; } var n, l, u, t, i, r, o, e, f, c, s, a, h, p, v, y, d, w, _, g; var init_preact_module = __esm({ "node_modules/preact/dist/preact.module.js"() { d = {}; w = []; _ = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i; g = Array.isArray; n = w.slice, l = { __e: function(n3, l6, u5, t5) { for (var i6, r5, o4; l6 = l6.__; ) if ((i6 = l6.__c) && !i6.__) try { if ((r5 = i6.constructor) && null != r5.getDerivedStateFromError && (i6.setState(r5.getDerivedStateFromError(n3)), o4 = i6.__d), null != i6.componentDidCatch && (i6.componentDidCatch(n3, t5 || {}), o4 = i6.__d), o4) return i6.__E = i6; } catch (l7) { n3 = l7; } throw n3; } }, u = 0, t = function(n3) { return null != n3 && void 0 === n3.constructor; }, C.prototype.setState = function(n3, l6) { var u5; u5 = null != this.__s && this.__s != this.state ? this.__s : this.__s = m({}, this.state), "function" == typeof n3 && (n3 = n3(m({}, u5), this.props)), n3 && m(u5, n3), null != n3 && this.__v && (l6 && this._sb.push(l6), A(this)); }, C.prototype.forceUpdate = function(n3) { this.__v && (this.__e = true, n3 && this.__h.push(n3), A(this)); }, C.prototype.render = S, i = [], o = "function" == typeof Promise ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, e = function(n3, l6) { return n3.__v.__b - l6.__v.__b; }, H.__r = 0, f = Math.random().toString(8), c = "__d" + f, s = "__a" + f, a = /(PointerCapture)$|Capture$/i, h = 0, p = V(false), v = V(true), y = 0; } }); // node_modules/preact/devtools/dist/devtools.module.js var i4; var init_devtools_module = __esm({ "node_modules/preact/devtools/dist/devtools.module.js"() { init_preact_module(); null != (i4 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : void 0) && i4.__PREACT_DEVTOOLS__ && i4.__PREACT_DEVTOOLS__.attachPreact("10.29.1", l, { Fragment: S, Component: C }); } }); // node_modules/preact/debug/dist/debug.module.js var debug_module_exports = {}; __export(debug_module_exports, { getCurrentVNode: () => c4, getDisplayName: () => a4, getOwnerStack: () => f4, resetPropWarnings: () => r4 }); function r4() { t4 = {}; } function a4(e4) { return e4.type === S ? "Fragment" : "function" == typeof e4.type ? e4.type.displayName || e4.type.name : "string" == typeof e4.type ? e4.type : "#text"; } function c4() { return i5.length > 0 ? i5[i5.length - 1] : null; } function u4(e4) { return "function" == typeof e4.type && e4.type != S; } function f4(n3) { for (var e4 = [n3], o4 = n3; null != o4.__o; ) e4.push(o4.__o), o4 = o4.__o; return e4.reduce(function(n4, e5) { n4 += " in " + a4(e5); var o5 = e5.__source; return o5 ? n4 += " (at " + o5.fileName + ":" + o5.lineNumber + ")" : l5 && console.warn("Add @babel/plugin-transform-react-jsx-source to get a more detailed component stack. Note that you should not add it to production builds of your App for bundle size reasons."), l5 = false, n4 + "\n"; }, ""); } function p5(n3) { var e4 = []; return n3.__k ? (n3.__k.forEach(function(n4) { n4 && "function" == typeof n4.type ? e4.push.apply(e4, p5(n4)) : n4 && "string" == typeof n4.type && e4.push(n4.type); }), e4) : e4; } function h4(n3) { return n3 ? "function" == typeof n3.type ? null == n3.__ ? null != n3.__e && null != n3.__e.parentNode ? n3.__e.parentNode.localName : "" : h4(n3.__) : n3.type : ""; } function y4(n3) { return "table" === n3 || "tfoot" === n3 || "tbody" === n3 || "thead" === n3 || "td" === n3 || "tr" === n3 || "th" === n3; } function w4(n3) { var e4 = n3.props, o4 = a4(n3), t5 = ""; for (var r5 in e4) if (e4.hasOwnProperty(r5) && "children" !== r5) { var i6 = e4[r5]; "function" == typeof i6 && (i6 = "function " + (i6.displayName || i6.name) + "() {}"), i6 = Object(i6) !== i6 || i6.toString ? i6 + "" : Object.prototype.toString.call(i6), t5 += " " + r5 + "=" + JSON.stringify(i6); } var s6 = e4.children; return "<" + o4 + t5 + (s6 && s6.length ? ">..</" + o4 + ">" : " />"); } var t4, i5, s5, l5, d5, v5, m3, b3; var init_debug_module = __esm({ "node_modules/preact/debug/dist/debug.module.js"() { init_preact_module(); init_devtools_module(); t4 = {}; i5 = []; s5 = []; l5 = true; d5 = "function" == typeof WeakMap; v5 = C.prototype.setState; C.prototype.setState = function(n3, e4) { return null == this.__v && null == this.state && console.warn('Calling "this.setState" inside the constructor of a component is a no-op and might be a bug in your application. Instead, set "this.state = {}" directly.\n\n' + f4(c4())), v5.call(this, n3, e4); }; m3 = /^(address|article|aside|blockquote|details|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|main|menu|nav|ol|p|pre|search|section|table|ul)$/; b3 = C.prototype.forceUpdate; C.prototype.forceUpdate = function(n3) { return null == this.__v ? console.warn('Calling "this.forceUpdate" inside the constructor of a component is a no-op and might be a bug in your application.\n\n' + f4(c4())) : null == this.__P && console.warn(`Can't call "this.forceUpdate" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method. ` + f4(this.__v)), b3.call(this, n3); }, l.__m = function(n3, e4) { var o4 = n3.type, t5 = e4.map(function(n4) { return n4 && n4.localName; }).filter(Boolean); console.error('Expected a DOM node of type "' + o4 + '" but found "' + t5.join(", ") + `" as available DOM-node(s), this is caused by the SSR'd HTML containing different DOM-nodes compared to the hydrated one. ` + f4(n3)); }, (function() { !(function() { var n4 = l.__b, o5 = l.diffed, t5 = l.__, r6 = l.vnode, a5 = l.__r; l.diffed = function(n5) { u4(n5) && s5.pop(), i5.pop(), o5 && o5(n5); }, l.__b = function(e4) { u4(e4) && i5.push(e4), n4 && n4(e4); }, l.__ = function(n5, e4) { s5 = [], t5 && t5(n5, e4); }, l.vnode = function(n5) { n5.__o = s5.length > 0 ? s5[s5.length - 1] : null, r6 && r6(n5); }, l.__r = function(n5) { u4(n5) && s5.push(n5), a5 && a5(n5); }; })(); var n3 = false, o4 = l.__b, r5 = l.diffed, c5 = l.vnode, l6 = l.__r, v6 = l.__e, b4 = l.__, g3 = l.__h, E3 = d5 ? { useEffect: /* @__PURE__ */ new WeakMap(), useLayoutEffect: /* @__PURE__ */ new WeakMap(), lazyPropTypes: /* @__PURE__ */ new WeakMap() } : null, k3 = []; l.__e = function(n4, e4, o5, t5) { if (e4 && e4.__c && "function" == typeof n4.then) { var r6 = n4; n4 = new Error("Missing Suspense. The throwing component was: " + a4(e4)); for (var i6 = e4; i6; i6 = i6.__) if (i6.__c && i6.__c.__c) { n4 = r6; break; } if (n4 instanceof Error) throw n4; } try { (t5 = t5 || {}).componentStack = f4(e4), v6(n4, e4, o5, t5), "function" != typeof n4.then && setTimeout(function() { throw n4; }); } catch (n5) { throw n5; } }, l.__ = function(n4, e4) { if (!e4) throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id."); var o5; switch (e4.nodeType) { case 1: case 11: case 9: o5 = true; break; default: o5 = false; } if (!o5) { var t5 = a4(n4); throw new Error("Expected a valid HTML node as a second argument to render. Received " + e4 + " instead: render(<" + t5 + " />, " + e4 + ");"); } b4 && b4(n4, e4); }, l.__b = function(e4) { var r6 = e4.type; if (n3 = true, void 0 === r6) throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports" + w4(e4) + "\n\n" + f4(e4)); if (null != r6 && "object" == typeof r6) { if (void 0 !== r6.__k && void 0 !== r6.__e) throw new Error("Invalid type passed to createElement(): " + r6 + "\n\nDid you accidentally pass a JSX literal as JSX twice?\n\n let My" + a4(e4) + " = " + w4(r6) + ";\n let vnode = <My" + a4(e4) + " />;\n\nThis usually happens when you export a JSX literal and not the component.\n\n" + f4(e4)); throw new Error("Invalid type passed to createElement(): " + (Array.isArray(r6) ? "array" : r6)); } if (void 0 !== e4.ref && "function" != typeof e4.ref && "object" != typeof e4.ref && !("$$typeof" in e4)) throw new Error(`Component's "ref" property should be a function, or an object created by createRef(), but got [` + typeof e4.ref + "] instead\n" + w4(e4) + "\n\n" + f4(e4)); if ("string" == typeof e4.type) { for (var i6 in e4.props) if ("o" === i6[0] && "n" === i6[1] && "function" != typeof e4.props[i6] && null != e4.props[i6]) throw new Error(`Component's "` + i6 + '" property should be a function, but got [' + typeof e4.props[i6] + "] instead\n" + w4(e4) + "\n\n" + f4(e4)); } if ("function" == typeof e4.type && e4.type.propTypes) { if ("Lazy" === e4.type.displayName && E3 && !E3.lazyPropTypes.has(e4.type)) { var s6 = "PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. "; try { var c6 = e4.type(); E3.lazyPropTypes.set(e4.type, true), console.warn(s6 + "Component wrapped in lazy() is " + a4(c6)); } catch (n4) { console.warn(s6 + "We will log the wrapped component's name once it is loaded."); } } var l7 = e4.props; e4.type.__f && delete (l7 = (function(n4, e5) { for (var o5 in e5) n4[o5] = e5[o5]; return n4; })({}, l7)).ref, (function(n4, e5, o5, r7, a5) { Object.keys(n4).forEach(function(o6) { var i7; try { i7 = n4[o6](e5, o6, r7, "prop", null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"); } catch (n5) { i7 = n5; } i7 && !(i7.message in t4) && (t4[i7.message] = true, console.error("Failed prop type: " + i7.message + (a5 && "\n" + a5() || ""))); }); })(e4.type.propTypes, l7, 0, a4(e4), function() { return f4(e4); }); } o4 && o4(e4); }; var T3, _5 = 0; l.__r = function(e4) { l6 && l6(e4), n3 = true; var o5 = e4.__c; if (o5 === T3 ? _5++ : _5 = 1, _5 >= 25) throw new Error("Too many re-renders. This is limited to prevent an infinite loop which may lock up your browser. The component causing this is: " + a4(e4)); T3 = o5; }, l.__h = function(e4, o5, t5) { if (!e4 || !n3) throw new Error("Hook can only be invoked from render methods."); g3 && g3(e4, o5, t5); }; var O2 = function(n4, e4) { return { get: function() { var o5 = "get" + n4 + e4; k3 && k3.indexOf(o5) < 0 && (k3.push(o5), console.warn("getting vnode." + n4 + " is deprecated, " + e4)); }, set: function() { var o5 = "set" + n4 + e4; k3 && k3.indexOf(o5) < 0 && (k3.push(o5), console.warn("setting vnode." + n4 + " is not allowed, " + e4)); } }; }, I2 = { nodeName: O2("nodeName", "use vnode.type"), attributes: O2("attributes", "use vnode.props"), children: O2("children", "use vnode.props.children") }, M = Object.create({}, I2); l.vnode = function(n4) { var e4 = n4.props; if (null !== n4.type && null != e4 && ("__source" in e4 || "__self" in e4)) { var o5 = n4.props = {}; for (var t5 in e4) { var r6 = e4[t5]; "__source" === t5 ? n4.__source = r6 : "__self" === t5 ? n4.__self = r6 : o5[t5] = r6; } } n4.__proto__ = M, c5 && c5(n4); }, l.diffed = function(e4) { var o5, t5 = e4.type, i6 = e4.__; if (e4.__k && e4.__k.forEach(function(n4) { if ("object" == typeof n4 && n4 && void 0 === n4.type) { var o6 = Object.keys(n4).join(","); throw new Error("Objects are not valid as a child. Encountered an object with the keys {" + o6 + "}.\n\n" + f4(e4)); } }), e4.__c === T3 && (_5 = 0), "string" == typeof t5 && (y4(t5) || "p" === t5 || "a" === t5 || "button" === t5)) { var s6 = h4(i6); if ("" !== s6 && y4(t5)) "table" === t5 && "td" !== s6 && y4(s6) ? console.error("Improper nesting of table. Your <table> should not have a table-node parent." + w4(e4) + "\n\n" + f4(e4)) : "thead" !== t5 && "tfoot" !== t5 && "tbody" !== t5 || "table" === s6 ? "tr" === t5 && "thead" !== s6 && "tfoot" !== s6 && "tbody" !== s6 ? console.error("Improper nesting of table. Your <tr> should have a <thead/tbody/tfoot> parent." + w4(e4) + "\n\n" + f4(e4)) : "td" === t5 && "tr" !== s6 ? console.error("Improper nesting of table. Your <td> should have a <tr> parent." + w4(e4) + "\n\n" + f4(e4)) : "th" === t5 && "tr" !== s6 && console.error("Improper nesting of table. Your <th> should have a <tr>." + w4(e4) + "\n\n" + f4(e4)) : console.error("Improper nesting of table. Your <thead/tbody/tfoot> should have a <table> parent." + w4(e4) + "\n\n" + f4(e4)); else if ("p" === t5) { var c6 = p5(e4).filter(function(n4) { return m3.test(n4); }); c6.length && console.error("Improper nesting of paragraph. Your <p> should not have " + c6.join(", ") + " as child-elements." + w4(e4) + "\n\n" + f4(e4)); } else "a" !== t5 && "button" !== t5 || -1 !== p5(e4).indexOf(t5) && console.error("Improper nesting of interactive content. Your <" + t5 + "> should not have other " + ("a" === t5 ? "anchor" : "button") + " tags as child-elements." + w4(e4) + "\n\n" + f4(e4)); } if (n3 = false, r5 && r5(e4), null != e4.__k) for (var l7 = [], u5 = 0; u5 < e4.__k.length; u5++) { var d6 = e4.__k[u5]; if (d6 && null != d6.key) { var v7 = d6.key; if (-1 !== l7.indexOf(v7)) { console.error('Following component has two or more children with the same key attribute: "' + v7 + '". This may cause glitches and misbehavior in rendering process. Component: \n\n' + w4(e4) + "\n\n" + f4(e4)); break; } l7.push(v7); } } if (null != e4.__c && null != e4.__c.__H) { var b5 = e4.__c.__H.__; if (b5) for (var g4 = 0; g4 < b5.length; g4 += 1) { var E4 = b5[g4]; if (E4.__H) { for (var k4 = 0; k4 < E4.__H.length; k4++) if ((o5 = E4.__H[k4]) != o5) { var O3 = a4(e4); console.warn("Invalid argument passed to hook. Hooks should not be called with NaN in the dependency array. Hook index " + g4 + " in component " + O3 + " was called with NaN."); } } } } }; })(); } }); // packages/interactivity/build-module/index.mjs init_preact_module(); // node_modules/@preact/signals/dist/signals.module.js init_preact_module(); // node_modules/preact/hooks/dist/hooks.module.js init_preact_module(); var t2; var r2; var u2; var i2; var o2 = 0; var f2 = []; var c2 = l; var e2 = c2.__b; var a2 = c2.__r; var v2 = c2.diffed; var l2 = c2.__c; var m2 = c2.unmount; var s2 = c2.__; function p2(n3, t5) { c2.__h && c2.__h(r2, n3, o2 || t5), o2 = 0; var u5 = r2.__H || (r2.__H = { __: [], __h: [] }); return n3 >= u5.__.length && u5.__.push({}), u5.__[n3]; } function d2(n3) { return o2 = 1, h2(D2, n3); } function h2(n3, u5, i6) { var o4 = p2(t2++, 2); if (o4.t = n3, !o4.__c && (o4.__ = [i6 ? i6(u5) : D2(void 0, u5), function(n4) { var t5 = o4.__N ? o4.__N[0] : o4.__[0], r5 = o4.t(t5, n4); t5 !== r5 && (o4.__N = [r5, o4.__[1]], o4.__c.setState({})); }], o4.__c = r2, !r2.__f)) { var f5 = function(n4, t5, r5) { if (!o4.__c.__H) return true; var u6 = o4.__c.__H.__.filter(function(n5) { return n5.__c; }); if (u6.every(function(n5) { return !n5.__N; })) return !c5 || c5.call(this, n4, t5, r5); var i7 = o4.__c.props !== n4; return u6.some(function(n5) { if (n5.__N) { var t6 = n5.__[0]; n5.__ = n5.__N, n5.__N = void 0, t6 !== n5.__[0] && (i7 = true); } }), c5 && c5.call(this, n4, t5, r5) || i7; }; r2.__f = true; var c5 = r2.shouldComponentUpdate, e4 = r2.componentWillUpdate; r2.componentWillUpdate = function(n4, t5, r5) { if (this.__e) { var u6 = c5; c5 = void 0, f5(n4, t5, r5), c5 = u6; } e4 && e4.call(this, n4, t5, r5); }, r2.shouldComponentUpdate = f5; } return o4.__N || o4.__; } function y2(n3, u5) { var i6 = p2(t2++, 3); !c2.__s && C2(i6.__H, u5) && (i6.__ = n3, i6.u = u5, r2.__H.__h.push(i6)); } function _2(n3, u5) { var i6 = p2(t2++, 4); !c2.__s && C2(i6.__H, u5) && (i6.__ = n3, i6.u = u5, r2.__h.push(i6)); } function A2(n3) { return o2 = 5, T2(function() { return { current: n3 }; }, []); } function T2(n3, r5) { var u5 = p2(t2++, 7); return C2(u5.__H, r5) && (u5.__ = n3(), u5.__H = r5, u5.__h = n3), u5.__; } function q2(n3, t5) { return o2 = 8, T2(function() { return n3; }, t5); } function x2(n3) { var u5 = r2.context[n3.__c], i6 = p2(t2++, 9); return i6.c = n3, u5 ? (null == i6.__ && (i6.__ = true, u5.sub(r2)), u5.props.value) : n3.__; } function j2() { for (var n3; n3 = f2.shift(); ) { var t5 = n3.__H; if (n3.__P && t5) try { t5.__h.some(z2), t5.__h.some(B2), t5.__h = []; } catch (r5) { t5.__h = [], c2.__e(r5, n3.__v); } } } c2.__b = function(n3) { r2 = null, e2 && e2(n3); }, c2.__ = function(n3, t5) { n3 && t5.__k && t5.__k.__m && (n3.__m = t5.__k.__m), s2 && s2(n3, t5); }, c2.__r = function(n3) { a2 && a2(n3), t2 = 0; var i6 = (r2 = n3.__c).__H; i6 && (u2 === r2 ? (i6.__h = [], r2.__h = [], i6.__.some(function(n4) { n4.__N && (n4.__ = n4.__N), n4.u = n4.__N = void 0; })) : (i6.__h.some(z2), i6.__h.some(B2), i6.__h = [], t2 = 0)), u2 = r2; }, c2.diffed = function(n3) { v2 && v2(n3); var t5 = n3.__c; t5 && t5.__H && (t5.__H.__h.length && (1 !== f2.push(t5) && i2 === c2.requestAnimationFrame || ((i2 = c2.requestAnimationFrame) || w2)(j2)), t5.__H.__.some(function(n4) { n4.u && (n4.__H = n4.u), n4.u = void 0; })), u2 = r2 = null; }, c2.__c = function(n3, t5) { t5.some(function(n4) { try { n4.__h.some(z2), n4.__h = n4.__h.filter(function(n5) { return !n5.__ || B2(n5); }); } catch (r5) { t5.some(function(n5) { n5.__h && (n5.__h = []); }), t5 = [], c2.__e(r5, n4.__v); } }), l2 && l2(n3, t5); }, c2.unmount = function(n3) { m2 && m2(n3); var t5, r5 = n3.__c; r5 && r5.__H && (r5.__H.__.some(function(n4) { try { z2(n4); } catch (n5) { t5 = n5; } }), r5.__H = void 0, t5 && c2.__e(t5, r5.__v)); }; var k2 = "function" == typeof requestAnimationFrame; function w2(n3) { var t5, r5 = function() { clearTimeout(u5), k2 && cancelAnimationFrame(t5), setTimeout(n3); }, u5 = setTimeout(r5, 35); k2 && (t5 = requestAnimationFrame(r5)); } function z2(n3) { var t5 = r2, u5 = n3.__c; "function" == typeof u5 && (n3.__c = void 0, u5()), r2 = t5; } function B2(n3) { var t5 = r2; n3.__c = n3.__(), r2 = t5; } function C2(n3, t5) { return !n3 || n3.length !== t5.length || t5.some(function(t6, r5) { return t6 !== n3[r5]; }); } function D2(n3, t5) { return "function" == typeof t5 ? t5(n3) : t5; } // node_modules/@preact/signals-core/dist/signals-core.module.js var i3 = /* @__PURE__ */ Symbol.for("preact-signals"); function t3() { if (!(s3 > 1)) { var i6, t5 = false; while (void 0 !== h3) { var r5 = h3; h3 = void 0; f3++; while (void 0 !== r5) { var o4 = r5.o; r5.o = void 0; r5.f &= -3; if (!(8 & r5.f) && c3(r5)) try { r5.c(); } catch (r6) { if (!t5) { i6 = r6; t5 = true; } } r5 = o4; } } f3 = 0; s3--; if (t5) throw i6; } else s3--; } function r3(i6) { if (s3 > 0) return i6(); s3++; try { return i6(); } finally { t3(); } } var o3 = void 0; var h3 = void 0; var s3 = 0; var f3 = 0; var v3 = 0; function e3(i6) { if (void 0 !== o3) { var t5 = i6.n; if (void 0 === t5 || t5.t !== o3) { t5 = { i: 0, S: i6, p: o3.s, n: void 0, t: o3, e: void 0, x: void 0, r: t5 }; if (void 0 !== o3.s) o3.s.n = t5; o3.s = t5; i6.n = t5; if (32 & o3.f) i6.S(t5); return t5; } else if (-1 === t5.i) { t5.i = 0; if (void 0 !== t5.n) { t5.n.p = t5.p; if (void 0 !== t5.p) t5.p.n = t5.n; t5.p = o3.s; t5.n = void 0; o3.s.n = t5; o3.s = t5; } return t5; } } } function u3(i6) { this.v = i6; this.i = 0; this.n = void 0; this.t = void 0; } u3.prototype.brand = i3; u3.prototype.h = function() { return true; }; u3.prototype.S = function(i6) { if (this.t !== i6 && void 0 === i6.e) { i6.x = this.t; if (void 0 !== this.t) this.t.e = i6; this.t = i6; } }; u3.prototype.U = function(i6) { if (void 0 !== this.t) { var t5 = i6.e, r5 = i6.x; if (void 0 !== t5) { t5.x = r5; i6.e = void 0; } if (void 0 !== r5) { r5.e = t5; i6.x = void 0; } if (i6 === this.t) this.t = r5; } }; u3.prototype.subscribe = function(i6) { var t5 = this; return E2(function() { var r5 = t5.value, n3 = o3; o3 = void 0; try { i6(r5); } finally { o3 = n3; } }); }; u3.prototype.valueOf = function() { return this.value; }; u3.prototype.toString = function() { return this.value + ""; }; u3.prototype.toJSON = function() { return this.value; }; u3.prototype.peek = function() { var i6 = o3; o3 = void 0; try { return this.value; } finally { o3 = i6; } }; Object.defineProperty(u3.prototype, "value", { get: function() { var i6 = e3(this); if (void 0 !== i6) i6.i = this.i; return this.v; }, set: function(i6) { if (i6 !== this.v) { if (f3 > 100) throw new Error("Cycle detected"); this.v = i6; this.i++; v3++; s3++; try { for (var r5 = this.t; void 0 !== r5; r5 = r5.x) r5.t.N(); } finally { t3(); } } } }); function d3(i6) { return new u3(i6); } function c3(i6) { for (var t5 = i6.s; void 0 !== t5; t5 = t5.n) if (t5.S.i !== t5.i || !t5.S.h() || t5.S.i !== t5.i) return true; return false; } function a3(i6) { for (var t5 = i6.s; void 0 !== t5; t5 = t5.n) { var r5 = t5.S.n; if (void 0 !== r5) t5.r = r5; t5.S.n = t5; t5.i = -1; if (void 0 === t5.n) { i6.s = t5; break; } } } function l3(i6) { var t5 = i6.s, r5 = void 0; while (void 0 !== t5) { var o4 = t5.p; if (-1 === t5.i) { t5.S.U(t5); if (void 0 !== o4) o4.n = t5.n; if (void 0 !== t5.n) t5.n.p = o4; } else r5 = t5; t5.S.n = t5.r; if (void 0 !== t5.r) t5.r = void 0; t5 = o4; } i6.s = r5; } function y3(i6) { u3.call(this, void 0); this.x = i6; this.s = void 0; this.g = v3 - 1; this.f = 4; } (y3.prototype = new u3()).h = function() { this.f &= -3; if (1 & this.f) return false; if (32 == (36 & this.f)) return true; this.f &= -5; if (this.g === v3) return true; this.g = v3; this.f |= 1; if (this.i > 0 && !c3(this)) { this.f &= -2; return true; } var i6 = o3; try { a3(this); o3 = this; var t5 = this.x(); if (16 & this.f || this.v !== t5 || 0 === this.i) { this.v = t5; this.f &= -17; this.i++; } } catch (i7) { this.v = i7; this.f |= 16; this.i++; } o3 = i6; l3(this); this.f &= -2; return true; }; y3.prototype.S = function(i6) { if (void 0 === this.t) { this.f |= 36; for (var t5 = this.s; void 0 !== t5; t5 = t5.n) t5.S.S(t5); } u3.prototype.S.call(this, i6); }; y3.prototype.U = function(i6) { if (void 0 !== this.t) { u3.prototype.U.call(this, i6); if (void 0 === this.t) { this.f &= -33; for (var t5 = this.s; void 0 !== t5; t5 = t5.n) t5.S.U(t5); } } }; y3.prototype.N = function() { if (!(2 & this.f)) { this.f |= 6; for (var i6 = this.t; void 0 !== i6; i6 = i6.x) i6.t.N(); } }; Object.defineProperty(y3.prototype, "value", { get: function() { if (1 & this.f) throw new Error("Cycle detected"); var i6 = e3(this); this.h(); if (void 0 !== i6) i6.i = this.i; if (16 & this.f) throw this.v; return this.v; } }); function w3(i6) { return new y3(i6); } function _3(i6) { var r5 = i6.u; i6.u = void 0; if ("function" == typeof r5) { s3++; var n3 = o3; o3 = void 0; try { r5(); } catch (t5) { i6.f &= -2; i6.f |= 8; g2(i6); throw t5; } finally { o3 = n3; t3(); } } } function g2(i6) { for (var t5 = i6.s; void 0 !== t5; t5 = t5.n) t5.S.U(t5); i6.x = void 0; i6.s = void 0; _3(i6); } function p3(i6) { if (o3 !== this) throw new Error("Out-of-order effect"); l3(this); o3 = i6; this.f &= -2; if (8 & this.f) g2(this); t3(); } function b2(i6) { this.x = i6; this.u = void 0; this.s = void 0; this.o = void 0; this.f = 32; } b2.prototype.c = function() { var i6 = this.S(); try { if (8 & this.f) return; if (void 0 === this.x) return; var t5 = this.x(); if ("function" == typeof t5) this.u = t5; } finally { i6(); } }; b2.prototype.S = function() { if (1 & this.f) throw new Error("Cycle detected"); this.f |= 1; this.f &= -9; _3(this); a3(this); s3++; var i6 = o3; o3 = this; return p3.bind(this, i6); }; b2.prototype.N = function() { if (!(2 & this.f)) { this.f |= 2; this.o = h3; h3 = this; } }; b2.prototype.d = function() { this.f |= 8; if (!(1 & this.f)) g2(this); }; function E2(i6) { var t5 = new b2(i6); try { t5.c(); } catch (i7) { t5.d(); throw i7; } return t5.d.bind(t5); } // node_modules/@preact/signals/dist/signals.module.js var v4; var s4; function l4(n3, i6) { l[n3] = i6.bind(null, l[n3] || function() { }); } function d4(n3) { if (s4) s4(); s4 = n3 && n3.S(); } function p4(n3) { var r5 = this, f5 = n3.data, o4 = useSignal(f5); o4.value = f5; var e4 = T2(function() { var n4 = r5.__v; while (n4 = n4.__) if (n4.__c) { n4.__c.__$f |= 4; break; } r5.__$u.c = function() { var n5; if (!t(e4.peek()) && 3 === (null == (n5 = r5.base) ? void 0 : n5.nodeType)) r5.base.data = e4.peek(); else { r5.__$f |= 1; r5.setState({}); } }; return w3(function() { var n5 = o4.value.value; return 0 === n5 ? 0 : true === n5 ? "" : n5 || ""; }); }, []); return e4.value; } p4.displayName = "_st"; Object.defineProperties(u3.prototype, { constructor: { configurable: true, value: void 0 }, type: { configurable: true, value: p4 }, props: { configurable: true, get: function() { return { data: this }; } }, __b: { configurable: true, value: 1 } }); l4("__b", function(n3, r5) { if ("string" == typeof r5.type) { var i6, t5 = r5.props; for (var f5 in t5) if ("children" !== f5) { var o4 = t5[f5]; if (o4 instanceof u3) { if (!i6) r5.__np = i6 = {}; i6[f5] = o4; t5[f5] = o4.peek(); } } } n3(r5); }); l4("__r", function(n3, r5) { d4(); var i6, t5 = r5.__c; if (t5) { t5.__$f &= -2; if (void 0 === (i6 = t5.__$u)) t5.__$u = i6 = (function(n4) { var r6; E2(function() { r6 = this; }); r6.c = function() { t5.__$f |= 1; t5.setState({}); }; return r6; })(); } v4 = t5; d4(i6); n3(r5); }); l4("__e", function(n3, r5, i6, t5) { d4(); v4 = void 0; n3(r5, i6, t5); }); l4("diffed", function(n3, r5) { d4(); v4 = void 0; var i6; if ("string" == typeof r5.type && (i6 = r5.__e)) { var t5 = r5.__np, f5 = r5.props; if (t5) { var o4 = i6.U; if (o4) for (var e4 in o4) { var u5 = o4[e4]; if (void 0 !== u5 && !(e4 in t5)) { u5.d(); o4[e4] = void 0; } } else i6.U = o4 = {}; for (var a5 in t5) { var c5 = o4[a5], s6 = t5[a5]; if (void 0 === c5) { c5 = _4(i6, a5, s6, f5); o4[a5] = c5; } else c5.o(s6, f5); } } } n3(r5); }); function _4(n3, r5, i6, t5) { var f5 = r5 in n3 && void 0 === n3.ownerSVGElement, o4 = d3(i6); return { o: function(n4, r6) { o4.value = n4; t5 = r6; }, d: E2(function() { var i7 = o4.value.value; if (t5[r5] !== i7) { t5[r5] = i7; if (f5) n3[r5] = i7; else if (i7) n3.setAttribute(r5, i7); else n3.removeAttribute(r5); } }) }; } l4("unmount", function(n3, r5) { if ("string" == typeof r5.type) { var i6 = r5.__e; if (i6) { var t5 = i6.U; if (t5) { i6.U = void 0; for (var f5 in t5) { var o4 = t5[f5]; if (o4) o4.d(); } } } } else { var e4 = r5.__c; if (e4) { var u5 = e4.__$u; if (u5) { e4.__$u = void 0; u5.d(); } } } n3(r5); }); l4("__h", function(n3, r5, i6, t5) { if (t5 < 3 || 9 === t5) r5.__$f |= 2; n3(r5, i6, t5); }); C.prototype.shouldComponentUpdate = function(n3, r5) { var i6 = this.__$u; if (!(i6 && void 0 !== i6.s || 4 & this.__$f)) return true; if (3 & this.__$f) return true; for (var t5 in r5) return true; for (var f5 in n3) if ("__source" !== f5 && n3[f5] !== this.props[f5]) return true; for (var o4 in this.props) if (!(o4 in n3)) return true; return false; }; function useSignal(n3) { return T2(function() { return d3(n3); }, []); } // packages/interactivity/build-module/directives.mjs init_preact_module(); // packages/interactivity/build-module/namespaces.mjs var namespaceStack = []; var getNamespace = () => namespaceStack.slice(-1)[0]; var setNamespace = (namespace) => { namespaceStack.push(namespace); }; var resetNamespace = () => { namespaceStack.pop(); }; // packages/interactivity/build-module/scopes.mjs var scopeStack = []; var getScope = () => scopeStack.slice(-1)[0]; var setScope = (scope) => { scopeStack.push(scope); }; var resetScope = () => { scopeStack.pop(); }; var throwNotInScope = (method) => { throw Error( `Cannot call \`${method}()\` when there is no scope. If you are using an async function, please consider using a generator instead. If you are using some sort of async callbacks, like \`setTimeout\`, please wrap the callback with \`withScope(callback)\`.` ); }; var getContext = (namespace) => { const scope = getScope(); if (true) { if (!scope) { throwNotInScope("getContext"); } } return scope.context[namespace || getNamespace()]; }; var getElement = () => { const scope = getScope(); let deepReadOnlyOptions = {}; if (true) { if (!scope) { throwNotInScope("getElement"); } deepReadOnlyOptions = { errorMessage: "Don't mutate the attributes from `getElement`, use `data-wp-bind` to modify the attributes of an element instead." }; } const { ref, attributes } = scope; return Object.freeze({ ref: ref.current, attributes: deepReadOnly(attributes, deepReadOnlyOptions) }); }; var navigationContextSignal = d3(0); function getServerContext(namespace) { const scope = getScope(); if (true) { if (!scope) { throwNotInScope("getServerContext"); } } getServerContext.subscribe = navigationContextSignal.value; return deepClone(scope.serverContext[namespace || getNamespace()]); } getServerContext.subscribe = 0; // packages/interactivity/build-module/utils.mjs var afterNextFrame = (callback) => { return new Promise((resolve2) => { const done = () => { clearTimeout(timeout); window.cancelAnimationFrame(raf); setTimeout(() => { callback(); resolve2(); }); }; const timeout = setTimeout(done, 100); const raf = window.requestAnimationFrame(done); }); }; var splitTask = typeof window.scheduler?.yield === "function" ? window.scheduler.yield.bind(window.scheduler) : () => { return new Promise((resolve2) => { setTimeout(resolve2, 0); }); }; var onDOMReady = (callback) => { const [navigation] = performance.getEntriesByType("navigation"); if (navigation.domContentLoadedEventStart > 0) { callback(); } else { document.addEventListener("DOMContentLoaded", callback); } }; function createFlusher(compute, notify) { let flush = () => void 0; const dispose = E2(function() { flush = this.c.bind(this); this.x = compute; this.c = notify; return compute(); }); return { flush, dispose }; } function useSignalEffect(callback) { y2(() => { let eff = null; let isExecuting = false; const notify = async () => { if (eff && !isExecuting) { isExecuting = true; await afterNextFrame(eff.flush); isExecuting = false; } }; eff = createFlusher(callback, notify); return eff.dispose; }, []); } function withScope(func) { const scope = getScope(); const ns = getNamespace(); let wrapped; if (func?.constructor?.name === "GeneratorFunction") { wrapped = async (...args) => { const gen = func(...args); let value; let it; let error; while (true) { setNamespace(ns); setScope(scope); try { it = error ? gen.throw(error) : gen.next(value); error = void 0; } catch (e4) { throw e4; } finally { resetScope(); resetNamespace(); } try { value = await it.value; } catch (e4) { error = e4; } if (it.done) { if (error) { throw error; } else { break; } } } return value; }; } else { wrapped = (...args) => { setNamespace(ns); setScope(scope); try { return func(...args); } finally { resetNamespace(); resetScope(); } }; } const syncAware = func; if (syncAware.sync) { const syncAwareWrapped = wrapped; syncAwareWrapped.sync = true; return syncAwareWrapped; } return wrapped; } function useWatch(callback) { useSignalEffect(withScope(callback)); } function useInit(callback) { y2(withScope(callback), []); } function useEffect(callback, inputs) { y2(withScope(callback), inputs); } function useLayoutEffect(callback, inputs) { _2(withScope(callback), inputs); } function useCallback(callback, inputs) { return q2(withScope(callback), inputs); } function useMemo(factory, inputs) { return T2(withScope(factory), inputs); } var createRootFragment = (parent, replaceNode) => { replaceNode = [].concat(replaceNode); const sibling = replaceNode[replaceNode.length - 1].nextSibling; function insert(child, root) { parent.insertBefore(child, root || sibling); } return parent.__k = { nodeType: 1, parentNode: parent, firstChild: replaceNode[0], childNodes: replaceNode, insertBefore: insert, appendChild: insert, removeChild(c5) { parent.removeChild(c5); }, contains(c5) { parent.contains(c5); } }; }; function kebabToCamelCase(str) { return str.replace(/^-+|-+$/g, "").toLowerCase().replace(/-([a-z])/g, function(_match, group1) { return group1.toUpperCase(); }); } var logged = /* @__PURE__ */ new Set(); var warn = (message) => { if (true) { if (logged.has(message)) { return; } console.warn(message); try { throw Error(message); } catch (e4) { } logged.add(message); } }; var isPlainObject = (candidate) => Boolean( candidate && typeof candidate === "object" && candidate.constructor === Object ); function withSyncEvent(callback) { const syncAware = callback; syncAware.sync = true; return syncAware; } var readOnlyMap = /* @__PURE__ */ new WeakMap(); var createDeepReadOnlyHandlers = (errorMessage) => { const handleError = () => { if (true) { warn(errorMessage); } return false; }; return { get(target, prop) { const value = target[prop]; if (value && typeof value === "object") { return deepReadOnly(value, { errorMessage }); } return value; }, set: handleError, deleteProperty: handleError, defineProperty: handleError }; }; function deepReadOnly(obj, options) { const errorMessage = options?.errorMessage ?? "Cannot modify read-only object"; if (!readOnlyMap.has(obj)) { const handlers = createDeepReadOnlyHandlers(errorMessage); readOnlyMap.set(obj, new Proxy(obj, handlers)); } return readOnlyMap.get(obj); } var navigationSignal = d3(0); var sessionId = Math.random().toString(36).slice(2); function deepClone(source) { if (isPlainObject(source)) { return Object.fromEntries( Object.entries(source).map(([key, value]) => [ key, deepClone(value) ]) ); } if (Array.isArray(source)) { return source.map((i6) => deepClone(i6)); } return source; } // packages/interactivity/build-module/hooks.mjs init_preact_module(); // packages/interactivity/build-module/proxies/registry.mjs var objToProxy = /* @__PURE__ */ new WeakMap(); var proxyToObj = /* @__PURE__ */ new WeakMap(); var proxyToNs = /* @__PURE__ */ new WeakMap(); var supported = /* @__PURE__ */ new Set([Object, Array]); var createProxy = (namespace, obj, handlers) => { if (!shouldProxy(obj)) { throw Error("This object cannot be proxified."); } if (!objToProxy.has(obj)) { const proxy = new Proxy(obj, handlers); objToProxy.set(obj, proxy); proxyToObj.set(proxy, obj); proxyToNs.set(proxy, namespace); } return objToProxy.get(obj); }; var getProxyFromObject = (obj) => objToProxy.get(obj); var getNamespaceFromProxy = (proxy) => proxyToNs.get(proxy); var shouldProxy = (candidate) => { if (typeof candidate !== "object" || candidate === null) { return false; } return !proxyToNs.has(candidate) && supported.has(candidate.constructor); }; var getObjectFromProxy = (proxy) => proxyToObj.get(proxy); // packages/interactivity/build-module/proxies/signals.mjs var NO_SCOPE = {}; var PropSignal = class { /** * Proxy that holds the property this PropSignal is associated with. */ owner; /** * Relation of computeds by scope. These computeds are read-only signals * that depend on whether the property is a value or a getter and, * therefore, can return different values depending on the scope in which * the getter is accessed. */ computedsByScope; /** * Signal with the value assigned to the related property. */ valueSignal; /** * Signal with the getter assigned to the related property. */ getterSignal; /** * Pending getter to be consolidated. */ pendingGetter; /** * Structure that manages reactivity for a property in a state object, using * signals to keep track of property value or getter modifications. * * @param owner Proxy that holds the property this instance is associated * with. */ constructor(owner) { this.owner = owner; this.computedsByScope = /* @__PURE__ */ new WeakMap(); } /** * Changes the internal value. If a getter was set before, it is set to * `undefined`. * * @param value New value. */ setValue(value) { this.update({ value }); } /** * Changes the internal getter. If a value was set before, it is set to * `undefined`. * * @param getter New getter. */ setGetter(getter) { this.update({ get: getter }); } /** * Changes the internal getter asynchronously. * * The update is made in a microtask, which prevents issues with getters * accessing the state, and ensures the update occurs before any render. * * @param getter New getter. */ setPendingGetter(getter) { this.pendingGetter = getter; queueMicrotask(() => this.consolidateGetter()); } /** * Consolidate the pending value of the getter. */ consolidateGetter() { const getter = this.pendingGetter; if (getter) { this.pendingGetter = void 0; this.update({ get: getter }); } } /** * Returns the computed that holds the result of evaluating the prop in the * current scope. * * These computeds are read-only signals that depend on whether the property * is a value or a getter and, therefore, can return different values * depending on the scope in which the getter is accessed. * * @return Computed that depends on the scope. */ getComputed() { const scope = getScope() || NO_SCOPE; if (!this.valueSignal && !this.getterSignal) { this.update({}); } if (this.pendingGetter) { this.consolidateGetter(); } if (!this.computedsByScope.has(scope)) { const callback = () => { const getter = this.getterSignal?.value; return getter ? getter.call(this.owner) : this.valueSignal?.value; }; setNamespace(getNamespaceFromProxy(this.owner)); this.computedsByScope.set( scope, w3(withScope(callback)) ); resetNamespace(); } return this.computedsByScope.get(scope); } /** * Updates the internal signals for the value and the getter of the * corresponding prop. * * @param param0 * @param param0.get New getter. * @param param0.value New value. */ update({ get, value }) { if (!this.valueSignal) { this.valueSignal = d3(value); this.getterSignal = d3(get); } else if (value !== this.valueSignal.peek() || get !== this.getterSignal.peek()) { r3(() => { this.valueSignal.value = value; this.getterSignal.value = get; }); } } }; // packages/interactivity/build-module/proxies/state.mjs var wellKnownSymbols = new Set( Object.getOwnPropertyNames(Symbol).map((key) => Symbol[key]).filter((value) => typeof value === "symbol") ); var proxyToProps = /* @__PURE__ */ new WeakMap(); var hasPropSignal = (proxy, key) => proxyToProps.has(proxy) && proxyToProps.get(proxy).has(key); var getPropSignal = (proxy, key, initial) => { if (!proxyToProps.has(proxy)) { proxyToProps.set(proxy, /* @__PURE__ */ new Map()); } key = typeof key === "number" ? `${key}` : key; const props = proxyToProps.get(proxy); if (!props.has(key)) { const ns = getNamespaceFromProxy(proxy); const prop = new PropSignal(proxy); props.set(key, prop); if (initial) { const { get, value } = initial; if (get) { prop.setGetter(get); } else { prop.setValue( shouldProxy(value) ? proxifyState(ns, value) : value ); } } } return props.get(key); }; var objToIterable = /* @__PURE__ */ new WeakMap(); var peeking = false; var PENDING_GETTER = /* @__PURE__ */ Symbol("PENDING_GETTER"); var stateHandlers = { get(target, key, receiver) { if (peeking || !target.hasOwnProperty(key) && key in target || typeof key === "symbol" && wellKnownSymbols.has(key)) { return Reflect.get(target, key, receiver); } const desc = Object.getOwnPropertyDescriptor(target, key); const prop = getPropSignal(receiver, key, desc); const result = prop.getComputed().value; if (result === PENDING_GETTER) { throw PENDING_GETTER; } if (typeof result === "function") { const ns = getNamespaceFromProxy(receiver); return (...args) => { setNamespace(ns); try { return result.call(receiver, ...args); } finally { resetNamespace(); } }; } return result; }, set(target, key, value, receiver) { setNamespace(getNamespaceFromProxy(receiver)); try { return Reflect.set(target, key, value, receiver); } finally { resetNamespace(); } }, defineProperty(target, key, desc) { const isNew = !(key in target); const result = Reflect.defineProperty(target, key, desc); if (result) { const receiver = getProxyFromObject(target); const prop = getPropSignal(receiver, key); const { get, value } = desc; if (get) { prop.setGetter(get); } else { const ns = getNamespaceFromProxy(receiver); prop.setValue( shouldProxy(value) ? proxifyState(ns, value) : value ); } if (isNew && objToIterable.has(target)) { objToIterable.get(target).value++; } if (Array.isArray(target) && proxyToProps.get(receiver)?.has("length")) { const length = getPropSignal(receiver, "length"); length.setValue(target.length); } } return result; }, deleteProperty(target, key) { const result = Reflect.deleteProperty(target, key); if (result) { const prop = getPropSignal(getProxyFromObject(target), key); prop.setValue(void 0); if (objToIterable.has(target)) { objToIterable.get(target).value++; } } return result; }, ownKeys(target) { if (!objToIterable.has(target)) { objToIterable.set(target, d3(0)); } objToIterable._ = objToIterable.get(target).value; return Reflect.ownKeys(target); } }; var proxifyState = (namespace, obj) => { return createProxy(namespace, obj, stateHandlers); }; var peek = (obj, key) => { peeking = true; try { return obj[key]; } finally { peeking = false; } }; var deepMergeRecursive = (target, source, override = true) => { if (!(isPlainObject(target) && isPlainObject(source))) { return; } let hasNewKeys = false; for (const key in source) { const isNew = !(key in target); hasNewKeys = hasNewKeys || isNew; const desc = Object.getOwnPropertyDescriptor(source, key); const proxy = getProxyFromObject(target); const propSignal = !!proxy && hasPropSignal(proxy, key) && getPropSignal(proxy, key); if (typeof desc.get === "function" || typeof desc.set === "function") { if (override || isNew) { Object.defineProperty(target, key, { ...desc, configurable: true, enumerable: true }); if (desc.get && propSignal) { propSignal.setPendingGetter(desc.get); } } } else if (isPlainObject(source[key])) { const targetValue = Object.getOwnPropertyDescriptor(target, key)?.value; if (isNew || override && !isPlainObject(targetValue)) { target[key] = {}; if (propSignal) { const ns = getNamespaceFromProxy(proxy); propSignal.setValue( proxifyState(ns, target[key]) ); } deepMergeRecursive(target[key], source[key], override); } else if (isPlainObject(targetValue)) { deepMergeRecursive(target[key], source[key], override); } } else if (override || isNew) { Object.defineProperty(target, key, desc); if (propSignal) { const { value } = desc; const ns = getNamespaceFromProxy(proxy); propSignal.setValue( shouldProxy(value) ? proxifyState(ns, value) : value ); } } } if (hasNewKeys && objToIterable.has(target)) { objToIterable.get(target).value++; } }; var deepMerge = (target, source, override = true) => r3( () => deepMergeRecursive( getObjectFromProxy(target) || target, source, override ) ); // packages/interactivity/build-module/proxies/store.mjs var storeRoots = /* @__PURE__ */ new WeakSet(); var storeHandlers = { get: (target, key, receiver) => { const result = Reflect.get(target, key); const ns = getNamespaceFromProxy(receiver); if (typeof result === "undefined" && storeRoots.has(receiver)) { const obj = {}; Reflect.set(target, key, obj); return proxifyStore(ns, obj, false); } if (typeof result === "function") { setNamespace(ns); const scoped = withScope(result); resetNamespace(); return scoped; } if (isPlainObject(result) && shouldProxy(result)) { return proxifyStore(ns, result, false); } return result; } }; var proxifyStore = (namespace, obj, isRoot = true) => { const proxy = createProxy(namespace, obj, storeHandlers); if (proxy && isRoot) { storeRoots.add(proxy); } return proxy; }; // packages/interactivity/build-module/proxies/context.mjs var contextObjectToProxy = /* @__PURE__ */ new WeakMap(); var contextObjectToFallback = /* @__PURE__ */ new WeakMap(); var contextProxies = /* @__PURE__ */ new WeakSet(); var descriptor = Reflect.getOwnPropertyDescriptor; var contextHandlers = { get: (target, key) => { const fallback = contextObjectToFallback.get(target); const currentProp = target[key]; return key in target ? currentProp : fallback[key]; }, set: (target, key, value) => { const fallback = contextObjectToFallback.get(target); const obj = key in target || !(key in fallback) ? target : fallback; obj[key] = value; return true; }, ownKeys: (target) => [ .../* @__PURE__ */ new Set([ ...Object.keys(contextObjectToFallback.get(target)), ...Object.keys(target) ]) ], getOwnPropertyDescriptor: (target, key) => descriptor(target, key) || descriptor(contextObjectToFallback.get(target), key), has: (target, key) => Reflect.has(target, key) || Reflect.has(contextObjectToFallback.get(target), key) }; var proxifyContext = (current, inherited = {}) => { if (contextProxies.has(current)) { throw Error("This object cannot be proxified."); } contextObjectToFallback.set(current, inherited); if (!contextObjectToProxy.has(current)) { const proxy = new Proxy(current, contextHandlers); contextObjectToProxy.set(current, proxy); contextProxies.add(proxy); } return contextObjectToProxy.get(current); }; // packages/interactivity/build-module/store.mjs var stores = /* @__PURE__ */ new Map(); var rawStores = /* @__PURE__ */ new Map(); var storeLocks = /* @__PURE__ */ new Map(); var storeConfigs = /* @__PURE__ */ new Map(); var serverStates = /* @__PURE__ */ new Map(); var getConfig = (namespace) => storeConfigs.get(namespace || getNamespace()) || {}; function getServerState(namespace) { const ns = namespace || getNamespace(); if (!serverStates.has(ns)) { serverStates.set(ns, {}); } getServerState.subscribe = navigationSignal.value; return deepClone(serverStates.get(ns)); } getServerState.subscribe = 0; var universalUnlock = "I acknowledge that using a private store means my plugin will inevitably break on the next store release."; function store(namespace, { state = {}, ...block } = {}, { lock = false } = {}) { if (!stores.has(namespace)) { if (lock !== universalUnlock) { storeLocks.set(namespace, lock); } const rawStore = { state: proxifyState( namespace, isPlainObject(state) ? state : {} ), ...block }; const proxifiedStore = proxifyStore(namespace, rawStore); rawStores.set(namespace, rawStore); stores.set(namespace, proxifiedStore); } else { if (lock !== universalUnlock && !storeLocks.has(namespace)) { storeLocks.set(namespace, lock); } else { const storeLock = storeLocks.get(namespace); const isLockValid = lock === universalUnlock || lock !== true && lock === storeLock; if (!isLockValid) { if (!storeLock) { throw Error("Cannot lock a public store"); } else { throw Error( "Cannot unlock a private store with an invalid lock code" ); } } } const target = rawStores.get(namespace); deepMerge(target, block); deepMerge(target.state, state); } return stores.get(namespace); } var parseServerData = (dom = document) => { const jsonDataScriptTag = ( // Preferred Script Module data passing form dom.getElementById( "wp-script-module-data-@wordpress/interactivity" ) ?? // Legacy form dom.getElementById("wp-interactivity-data") ); if (jsonDataScriptTag?.textContent) { try { return JSON.parse(jsonDataScriptTag.textContent); } catch { } } return {}; }; var populateServerData = (data) => { serverStates.clear(); storeConfigs.clear(); if (isPlainObject(data?.state)) { Object.entries(data.state).forEach(([namespace, state]) => { const st = store(namespace, {}, { lock: universalUnlock }); deepMerge(st.state, state, false); serverStates.set(namespace, state); }); } if (isPlainObject(data?.config)) { Object.entries(data.config).forEach(([namespace, config]) => { storeConfigs.set(namespace, config); }); } if (isPlainObject(data?.derivedStateClosures)) { Object.entries(data.derivedStateClosures).forEach( ([namespace, paths]) => { const st = store( namespace, {}, { lock: universalUnlock } ); paths.forEach((path) => { const pathParts = path.split("."); const prop = pathParts.splice(-1, 1)[0]; const parent = pathParts.reduce( (prev, key) => peek(prev, key), st ); const desc = Object.getOwnPropertyDescriptor( parent, prop ); if (isPlainObject(desc?.value)) { parent[prop] = PENDING_GETTER; } }); } ); } }; // packages/interactivity/build-module/hooks.mjs function isNonDefaultDirectiveSuffix(entry) { return entry.suffix !== null; } function isDefaultDirectiveSuffix(entry) { return entry.suffix === null; } var context = X({ client: {}, server: {} }); var directiveCallbacks = {}; var directivePriorities = {}; var directive = (name, callback, { priority = 10 } = {}) => { directiveCallbacks[name] = callback; directivePriorities[name] = priority; }; var resolve = (path, namespace) => { if (!namespace) { warn( `Namespace missing for "${path}". The value for that path won't be resolved.` ); return; } let resolvedStore = stores.get(namespace); if (typeof resolvedStore === "undefined") { resolvedStore = store( namespace, {}, { lock: universalUnlock } ); } const current = { ...resolvedStore, context: getScope().context[namespace] }; try { const pathParts = path.split("."); return pathParts.reduce((acc, key) => acc[key], current); } catch (e4) { if (e4 === PENDING_GETTER) { return PENDING_GETTER; } } }; var getEvaluate = ({ scope }) => ( // TODO: When removing the temporarily remaining `value( ...args )` call below, remove the `...args` parameter too. ((entry, ...args) => { let { value: path, namespace } = entry; if (typeof path !== "string") { throw new Error("The `value` prop should be a string path"); } const hasNegationOperator = path[0] === "!" && !!(path = path.slice(1)); setScope(scope); const value = resolve(path, namespace); if (typeof value === "function") { if (hasNegationOperator) { warn( "Using a function with a negation operator is deprecated and will stop working in WordPress 6.9. Please use derived state instead." ); const functionResult = !value(...args); resetScope(); return functionResult; } resetScope(); const wrappedFunction = (...functionArgs) => { setScope(scope); const functionResult = value(...functionArgs); resetScope(); return functionResult; }; if (value.sync) { const syncAwareFunction = wrappedFunction; syncAwareFunction.sync = true; } return wrappedFunction; } const result = value; resetScope(); return hasNegationOperator && value !== PENDING_GETTER ? !result : result; }) ); var getPriorityLevels = (directives) => { const byPriority = Object.keys(directives).reduce((obj, name) => { if (directiveCallbacks[name]) { const priority = directivePriorities[name]; (obj[priority] = obj[priority] || []).push(name); } return obj; }, {}); return Object.entries(byPriority).sort(([p1], [p22]) => parseInt(p1) - parseInt(p22)).map(([, arr]) => arr); }; var Directives = ({ directives, priorityLevels: [currentPriorityLevel, ...nextPriorityLevels], element, originalProps, previousScope }) => { const scope = A2({}).current; scope.evaluate = q2(getEvaluate({ scope }), []); const { client, server } = x2(context); scope.context = client; scope.serverContext = server; scope.ref = previousScope?.ref || A2(null); element = W(element, { ref: scope.ref }); scope.attributes = element.props; const children = nextPriorityLevels.length > 0 ? k(Directives, { directives, priorityLevels: nextPriorityLevels, element, originalProps, previousScope: scope }) : element; const props = { ...originalProps, children }; const directiveArgs = { directives, props, element, context, evaluate: scope.evaluate }; setScope(scope); for (const directiveName of currentPriorityLevel) { const wrapper = directiveCallbacks[directiveName]?.(directiveArgs); if (wrapper !== void 0) { props.children = wrapper; } } resetScope(); return props.children; }; var old = l.vnode; l.vnode = (vnode) => { if (vnode.props.__directives) { const props = vnode.props; const directives = props.__directives; if (directives.key) { vnode.key = directives.key.find(isDefaultDirectiveSuffix).value; } delete props.__directives; const priorityLevels = getPriorityLevels(directives); if (priorityLevels.length > 0) { vnode.props = { directives, priorityLevels, originalProps: props, type: vnode.type, element: k(vnode.type, props), top: true }; vnode.type = Directives; } } if (old) { old(vnode); } }; // packages/interactivity/build-module/directives.mjs var warnUniqueIdWithTwoHyphens = (prefix, suffix, uniqueId) => { if (true) { warn( `The usage of data-wp-${prefix}--${suffix}${uniqueId ? `--${uniqueId}` : ""} (two hyphens for unique ID) is deprecated and will stop working in WordPress 7.1. Please use data-wp-${prefix}${uniqueId ? `--${suffix}---${uniqueId}` : `---${suffix}`} (three hyphens for unique ID) from now on.` ); } }; var warnUniqueIdNotSupported = (prefix, uniqueId) => { if (true) { warn( `Unique IDs are not supported for the data-wp-${prefix} directive. Ignoring the directive with unique ID "${uniqueId}".` ); } }; var warnWithSyncEvent = (wrongPrefix, rightPrefix) => { if (true) { warn( `The usage of data-wp-${wrongPrefix} is deprecated and will stop working in WordPress 7.0. Please, use data-wp-${rightPrefix} with the withSyncEvent() helper from now on.` ); } }; function wrapEventAsync(event) { const handler = { get(target, prop, receiver) { const value = target[prop]; switch (prop) { case "currentTarget": if (true) { warn( `Accessing the synchronous event.${prop} property in a store action without wrapping it in withSyncEvent() is deprecated and will stop working in WordPress 7.0. Please wrap the store action in withSyncEvent().` ); } break; case "preventDefault": case "stopImmediatePropagation": case "stopPropagation": if (true) { warn( `Using the synchronous event.${prop}() function in a store action without wrapping it in withSyncEvent() is deprecated and will stop working in WordPress 7.0. Please wrap the store action in withSyncEvent().` ); } break; } if (value instanceof Function) { return function(...args) { return value.apply( this === receiver ? target : this, args ); }; } return value; } }; return new Proxy(event, handler); } var newRule = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g; var ruleClean = /\/\*[^]*?\*\/| +/g; var ruleNewline = /\n+/g; var empty = " "; var cssStringToObject = (val) => { const tree = [{}]; let block, left; while (block = newRule.exec(val.replace(ruleClean, ""))) { if (block[4]) { tree.shift(); } else if (block[3]) { left = block[3].replace(ruleNewline, empty).trim(); tree.unshift(tree[0][left] = tree[0][left] || {}); } else { tree[0][block[1]] = block[2].replace(ruleNewline, empty).trim(); } } return tree[0]; }; var getGlobalEventDirective = (type) => { return ({ directives, evaluate }) => { directives[`on-${type}`].filter(isNonDefaultDirectiveSuffix).forEach((entry) => { const suffixParts = entry.suffix.split("--", 2); const eventName = suffixParts[0]; if (true) { if (suffixParts[1]) { warnUniqueIdWithTwoHyphens( `on-${type}`, suffixParts[0], suffixParts[1] ); } } useInit(() => { const cb = (event) => { const result = evaluate(entry); if (typeof result === "function") { if (!result?.sync) { event = wrapEventAsync(event); } result(event); } }; const globalVar = type === "window" ? window : document; globalVar.addEventListener(eventName, cb); return () => globalVar.removeEventListener(eventName, cb); }); }); }; }; var evaluateItemKey = (inheritedValue, namespace, item, itemProp, eachKey) => { const clientContextWithItem = { ...inheritedValue.client, [namespace]: { ...inheritedValue.client[namespace], [itemProp]: item } }; const scope = { ...getScope(), context: clientContextWithItem, serverContext: inheritedValue.server }; return eachKey ? getEvaluate({ scope })(eachKey) : item; }; var useItemContexts = function* (inheritedValue, namespace, items, itemProp, eachKey) { const { current: itemContexts } = A2(/* @__PURE__ */ new Map()); for (const item of items) { const key = evaluateItemKey( inheritedValue, namespace, item, itemProp, eachKey ); if (!itemContexts.has(key)) { itemContexts.set( key, proxifyContext( proxifyState(namespace, { // Inits the item prop in the context to shadow it in case // it was inherited from the parent context. The actual // value is set in the `wp-each` directive later on. [itemProp]: void 0 }), inheritedValue.client[namespace] ) ); } yield [item, itemContexts.get(key), key]; } }; var getGlobalAsyncEventDirective = (type) => { return ({ directives, evaluate }) => { directives[`on-async-${type}`].filter(isNonDefaultDirectiveSuffix).forEach((entry) => { if (true) { warnWithSyncEvent(`on-async-${type}`, `on-${type}`); } const eventName = entry.suffix.split("--", 1)[0]; useInit(() => { const cb = async (event) => { await splitTask(); const result = evaluate(entry); if (typeof result === "function") { result(event); } }; const globalVar = type === "window" ? window : document; globalVar.addEventListener(eventName, cb, { passive: true }); return () => globalVar.removeEventListener(eventName, cb); }); }); }; }; var routerRegions = /* @__PURE__ */ new Map(); var directives_default = () => { directive( "context", ({ directives: { context: context2 }, props: { children }, context: inheritedContext }) => { const entries = context2.filter(isDefaultDirectiveSuffix).reverse(); if (!entries.length) { if (true) { warn( "The usage of data-wp-context--unique-id (two hyphens) is not supported. To add a unique ID to the directive, please use data-wp-context---unique-id (three hyphens) instead." ); } return; } const { Provider } = inheritedContext; const { client: inheritedClient, server: inheritedServer } = x2(inheritedContext); const client = A2({}); const server = {}; const result = { client: { ...inheritedClient }, server: { ...inheritedServer } }; const namespaces2 = /* @__PURE__ */ new Set(); entries.forEach(({ value, namespace, uniqueId }) => { if (!isPlainObject(value)) { if (true) { warn( `The value of data-wp-context${uniqueId ? `---${uniqueId}` : ""} on the ${namespace} namespace must be a valid stringified JSON object.` ); } return; } if (!client.current[namespace]) { client.current[namespace] = proxifyState(namespace, {}); } deepMerge( client.current[namespace], deepClone(value), false ); server[namespace] = value; namespaces2.add(namespace); }); namespaces2.forEach((namespace) => { result.client[namespace] = proxifyContext( client.current[namespace], inheritedClient[namespace] ); result.server[namespace] = proxifyContext( server[namespace], inheritedServer[namespace] ); }); return k(Provider, { value: result }, children); }, { priority: 5 } ); directive("watch", ({ directives: { watch: watch2 }, evaluate }) => { watch2.forEach((entry) => { if (true) { if (entry.suffix) { warnUniqueIdWithTwoHyphens("watch", entry.suffix); } } useWatch(() => { let start; if (false) { if (true) { start = performance.now(); } } let result = evaluate(entry); if (typeof result === "function") { result = result(); } if (false) { if (true) { performance.measure( `interactivity api watch ${entry.namespace}`, { start, end: performance.now(), detail: { devtools: { track: `IA: watch ${entry.namespace}` } } } ); } } return result; }); }); }); directive("init", ({ directives: { init }, evaluate }) => { init.forEach((entry) => { if (true) { if (entry.suffix) { warnUniqueIdWithTwoHyphens("init", entry.suffix); } } useInit(() => { let start; if (false) { if (true) { start = performance.now(); } } let result = evaluate(entry); if (typeof result === "function") { result = result(); } if (false) { if (true) { performance.measure( `interactivity api init ${entry.namespace}`, { start, end: performance.now(), detail: { devtools: { track: `IA: init ${entry.namespace}` } } } ); } } return result; }); }); }); directive("on", ({ directives: { on }, element, evaluate }) => { const events = /* @__PURE__ */ new Map(); on.filter(isNonDefaultDirectiveSuffix).forEach((entry) => { const suffixParts = entry.suffix.split("--", 2); if (true) { if (suffixParts[1]) { warnUniqueIdWithTwoHyphens( "on", suffixParts[0], suffixParts[1] ); } } if (!events.has(suffixParts[0])) { events.set(suffixParts[0], /* @__PURE__ */ new Set()); } events.get(suffixParts[0]).add(entry); }); events.forEach((entries, eventType) => { const existingHandler = element.props[`on${eventType}`]; element.props[`on${eventType}`] = (event) => { if (existingHandler) { existingHandler(event); } entries.forEach((entry) => { let start; if (false) { if (true) { start = performance.now(); } } const result = evaluate(entry); if (typeof result === "function") { if (!result?.sync) { event = wrapEventAsync(event); } result(event); } if (false) { if (true) { performance.measure( `interactivity api on ${entry.namespace}`, { start, end: performance.now(), detail: { devtools: { track: `IA: on ${entry.namespace}` } } } ); } } }); }; }); }); directive( "on-async", ({ directives: { "on-async": onAsync }, element, evaluate }) => { if (true) { warnWithSyncEvent("on-async", "on"); } const events = /* @__PURE__ */ new Map(); onAsync.filter(isNonDefaultDirectiveSuffix).forEach((entry) => { const event = entry.suffix.split("--", 1)[0]; if (!events.has(event)) { events.set(event, /* @__PURE__ */ new Set()); } events.get(event).add(entry); }); events.forEach((entries, eventType) => { const existingHandler = element.props[`on${eventType}`]; element.props[`on${eventType}`] = (event) => { if (existingHandler) { existingHandler(event); } entries.forEach(async (entry) => { await splitTask(); const result = evaluate(entry); if (typeof result === "function") { result(event); } }); }; }); } ); directive("on-window", getGlobalEventDirective("window")); directive("on-document", getGlobalEventDirective("document")); directive("on-async-window", getGlobalAsyncEventDirective("window")); directive( "on-async-document", getGlobalAsyncEventDirective("document") ); directive( "class", ({ directives: { class: classNames }, element, evaluate }) => { classNames.filter(isNonDefaultDirectiveSuffix).forEach((entry) => { const className = entry.uniqueId ? `${entry.suffix}---${entry.uniqueId}` : entry.suffix; let result = evaluate(entry); if (result === PENDING_GETTER) { return; } if (typeof result === "function") { result = result(); } const currentClass = element.props.class || ""; const classFinder = new RegExp( `(^|\\s)${className}(\\s|$)`, "g" ); if (!result) { element.props.class = currentClass.replace(classFinder, " ").trim(); } else if (!classFinder.test(currentClass)) { element.props.class = currentClass ? `${currentClass} ${className}` : className; } useInit(() => { if (!result) { element.ref.current.classList.remove(className); } else { element.ref.current.classList.add(className); } }); }); } ); directive("style", ({ directives: { style }, element, evaluate }) => { style.filter(isNonDefaultDirectiveSuffix).forEach((entry) => { if (entry.uniqueId) { if (true) { warnUniqueIdNotSupported("style", entry.uniqueId); } return; } const styleProp = entry.suffix; let result = evaluate(entry); if (result === PENDING_GETTER) { return; } if (typeof result === "function") { result = result(); } element.props.style = element.props.style || {}; if (typeof element.props.style === "string") { element.props.style = cssStringToObject(element.props.style); } if (!result) { delete element.props.style[styleProp]; } else { element.props.style[styleProp] = result; } useInit(() => { if (!result) { element.ref.current.style.removeProperty(styleProp); } else { element.ref.current.style.setProperty(styleProp, result); } }); }); }); directive("bind", ({ directives: { bind }, element, evaluate }) => { bind.filter(isNonDefaultDirectiveSuffix).forEach((entry) => { if (entry.uniqueId) { if (true) { warnUniqueIdNotSupported("bind", entry.uniqueId); } return; } const attribute = entry.suffix; let result = evaluate(entry); if (result === PENDING_GETTER) { return; } if (typeof result === "function") { result = result(); } element.props[attribute] = result; useInit(() => { const el = element.ref.current; if (attribute === "style") { if (typeof result === "string") { el.style.cssText = result; } return; } else if (attribute !== "width" && attribute !== "height" && attribute !== "href" && attribute !== "list" && attribute !== "form" && /* * The value for `tabindex` follows the parsing rules for an * integer. If that fails, or if the attribute isn't present, then * the browsers should "follow platform conventions to determine if * the element should be considered as a focusable area", * practically meaning that most elements get a default of `-1` (not * focusable), but several also get a default of `0` (focusable in * order after all elements with a positive `tabindex` value). * * @see https://html.spec.whatwg.org/#tabindex-value */ attribute !== "tabIndex" && attribute !== "download" && attribute !== "rowSpan" && attribute !== "colSpan" && attribute !== "role" && attribute !== "popover" && attribute in el) { try { el[attribute] = result === null || result === void 0 ? "" : result; return; } catch (err) { } } if (result !== null && result !== void 0 && (result !== false || attribute[4] === "-")) { el.setAttribute( attribute, attribute === "popover" && result === true ? "" : result ); } else { el.removeAttribute(attribute); } }); }); }); directive( "ignore", ({ element: { type: Type, props: { innerHTML, ...rest } } }) => { if (true) { warn( "The data-wp-ignore directive is deprecated and will be removed in version 7.0." ); } const cached = T2(() => innerHTML, []); return k(Type, { dangerouslySetInnerHTML: { __html: cached }, ...rest }); } ); directive("text", ({ directives: { text }, element, evaluate }) => { const entries = text.filter(isDefaultDirectiveSuffix); if (!entries.length) { if (true) { warn( "The usage of data-wp-text--suffix is not supported. Please use data-wp-text instead." ); } return; } entries.forEach((entry) => { if (entry.uniqueId) { if (true) { warnUniqueIdNotSupported("text", entry.uniqueId); } return; } try { let result = evaluate(entry); if (result === PENDING_GETTER) { return; } if (typeof result === "function") { result = result(); } element.props.children = typeof result === "object" ? null : result.toString(); } catch (e4) { element.props.children = null; } }); }); directive("run", ({ directives: { run }, evaluate }) => { run.forEach((entry) => { if (true) { if (entry.suffix) { warnUniqueIdWithTwoHyphens("run", entry.suffix); } } let result = evaluate(entry); if (typeof result === "function") { result = result(); } return result; }); }); directive( "each", ({ directives: { each, "each-key": eachKey }, context: inheritedContext, element, evaluate }) => { if (element.type !== "template") { if (true) { warn( "The data-wp-each directive can only be used on <template> elements." ); } return; } const { Provider } = inheritedContext; const inheritedValue = x2(inheritedContext); const [entry] = each; const { namespace, suffix, uniqueId } = entry; if (each.length > 1) { if (true) { warn( "The usage of multiple data-wp-each directives on the same element is not supported. Please pick only one." ); } return; } if (uniqueId) { if (true) { warnUniqueIdNotSupported("each", uniqueId); } return; } let iterable = evaluate(entry); if (iterable === PENDING_GETTER) { return; } if (typeof iterable === "function") { iterable = iterable(); } if (typeof iterable?.[Symbol.iterator] !== "function") { return; } const itemProp = suffix ? kebabToCamelCase(suffix) : "item"; const result = []; const itemContexts = useItemContexts( inheritedValue, namespace, iterable, itemProp, eachKey?.[0] ); for (const [item, itemContext, key] of itemContexts) { const mergedContext = { client: { ...inheritedValue.client, [namespace]: itemContext }, server: { ...inheritedValue.server } }; mergedContext.client[namespace][itemProp] = item; result.push( k( Provider, { value: mergedContext, key }, element.props.content ) ); } return result; }, { priority: 20 } ); directive( "each-child", ({ directives: { "each-child": eachChild }, element, evaluate }) => { const entry = eachChild.find(isDefaultDirectiveSuffix); if (!entry) { return; } const iterable = evaluate(entry); return iterable === PENDING_GETTER ? element : null; }, { priority: 1 } ); directive( "router-region", ({ directives: { "router-region": routerRegion } }) => { const entry = routerRegion.find(isDefaultDirectiveSuffix); if (!entry) { return; } if (entry.suffix) { if (true) { warn( `Suffixes for the data-wp-router-region directive are not supported. Ignoring the directive with suffix "${entry.suffix}".` ); } return; } if (entry.uniqueId) { if (true) { warnUniqueIdNotSupported("router-region", entry.uniqueId); } return; } const regionId = typeof entry.value === "string" ? entry.value : entry.value.id; if (!routerRegions.has(regionId)) { routerRegions.set(regionId, d3()); } const vdom = routerRegions.get(regionId).value; _2(() => { if (vdom && typeof vdom.type !== "string") { navigationContextSignal.value = navigationContextSignal.peek() + 1; } }, [vdom]); if (vdom && typeof vdom.type !== "string") { const previousScope = getScope(); return W(vdom, { previousScope }); } return vdom; }, { priority: 1 } ); }; // packages/interactivity/build-module/hydration.mjs init_preact_module(); // packages/interactivity/build-module/vdom.mjs init_preact_module(); var directivePrefix = `data-wp-`; var namespaces = []; var currentNamespace = () => namespaces[namespaces.length - 1] ?? null; var isObject = (item) => Boolean(item && typeof item === "object" && item.constructor === Object); var invalidCharsRegex = /[^a-z0-9-_]/i; function parseDirectiveName(directiveName) { const name = directiveName.substring(8); if (invalidCharsRegex.test(name)) { return null; } const suffixIndex = name.indexOf("--"); if (suffixIndex === -1) { return { prefix: name, suffix: null, uniqueId: null }; } const prefix = name.substring(0, suffixIndex); const remaining = name.substring(suffixIndex); if (remaining.startsWith("---") && remaining[3] !== "-") { return { prefix, suffix: null, uniqueId: remaining.substring(3) || null }; } let suffix = remaining.substring(2); const uniqueIdIndex = suffix.indexOf("---"); if (uniqueIdIndex !== -1 && suffix.substring(uniqueIdIndex)[3] !== "-") { const uniqueId = suffix.substring(uniqueIdIndex + 3) || null; suffix = suffix.substring(0, uniqueIdIndex) || null; return { prefix, suffix, uniqueId }; } return { prefix, suffix: suffix || null, uniqueId: null }; } var nsPathRegExp = /^([\w_\/-]+)::(.+)$/; var hydratedIslands = /* @__PURE__ */ new WeakSet(); function toVdom(root) { const nodesToRemove = /* @__PURE__ */ new Set(); const nodesToReplace = /* @__PURE__ */ new Set(); const treeWalker = document.createTreeWalker( root, 205 // TEXT + CDATA_SECTION + COMMENT + PROCESSING_INSTRUCTION + ELEMENT ); function walk(node) { const { nodeType } = node; if (nodeType === 3) { return node.data; } if (nodeType === 4) { nodesToReplace.add(node); return node.nodeValue; } if (nodeType === 8 || nodeType === 7) { nodesToRemove.add(node); return null; } const elementNode = node; const { attributes } = elementNode; const localName = elementNode.localName; const props = {}; const children = []; const directives = []; let ignore = false; let island = false; for (let i6 = 0; i6 < attributes.length; i6++) { const attributeName = attributes[i6].name; const attributeValue = attributes[i6].value; if (attributeName[directivePrefix.length] && attributeName.slice(0, directivePrefix.length) === directivePrefix) { if (attributeName === "data-wp-ignore") { ignore = true; } else { const regexResult = nsPathRegExp.exec(attributeValue); const namespace = regexResult?.[1] ?? null; let value = regexResult?.[2] ?? attributeValue; try { const parsedValue = JSON.parse(value); value = isObject(parsedValue) ? parsedValue : value; } catch { } if (attributeName === "data-wp-interactive") { island = true; const islandNamespace = ( // eslint-disable-next-line no-nested-ternary typeof value === "string" ? value : typeof value?.namespace === "string" ? value.namespace : null ); namespaces.push(islandNamespace); } else { directives.push([attributeName, namespace, value]); } } } else if (attributeName === "ref") { continue; } if (attributeValue === "" && elementNode[attributeName] === true) { props[attributeName] = true; } else { props[attributeName] = attributeValue; } } if (ignore && !island) { return [ k(localName, { ...props, innerHTML: elementNode.innerHTML, __directives: { ignore: true } }) ]; } if (island) { hydratedIslands.add(elementNode); } if (directives.length) { props.__directives = directives.reduce((obj, [name, ns, value]) => { const directiveParsed = parseDirectiveName(name); if (directiveParsed === null) { if (true) { warn(`Found malformed directive name: ${name}.`); } return obj; } const { prefix, suffix, uniqueId } = directiveParsed; obj[prefix] = obj[prefix] || []; obj[prefix].push({ namespace: ns ?? currentNamespace(), value, suffix, uniqueId }); return obj; }, {}); for (const prefix in props.__directives) { props.__directives[prefix].sort( (a5, b4) => { const aSuffix = a5.suffix ?? ""; const bSuffix = b4.suffix ?? ""; if (aSuffix !== bSuffix) { return aSuffix < bSuffix ? -1 : 1; } const aId = a5.uniqueId ?? ""; const bId = b4.uniqueId ?? ""; return +(aId > bId) - +(aId < bId); } ); } } if (props.__directives?.["each-child"]) { props.dangerouslySetInnerHTML = { __html: elementNode.innerHTML }; } else if (localName === "template") { props.content = [ ...elementNode.content.childNodes ].map((childNode) => toVdom(childNode)); } else { let child = treeWalker.firstChild(); if (child) { while (child) { const vnode = walk(child); if (vnode) { children.push(vnode); } child = treeWalker.nextSibling(); } treeWalker.parentNode(); } } if (island) { namespaces.pop(); } return k(localName, props, children); } const vdom = walk(treeWalker.currentNode); nodesToRemove.forEach( (node) => node.remove() ); nodesToReplace.forEach( (node) => node.replaceWith( new window.Text(node.nodeValue ?? "") ) ); return vdom; } // packages/interactivity/build-module/hydration.mjs var regionRootFragments = /* @__PURE__ */ new WeakMap(); var getRegionRootFragment = (regions) => { const region = Array.isArray(regions) ? regions[0] : regions; if (!region.parentElement) { throw Error("The passed region should be an element with a parent."); } if (!regionRootFragments.has(region)) { regionRootFragments.set( region, createRootFragment(region.parentElement, regions) ); } return regionRootFragments.get(region); }; var initialVdom = /* @__PURE__ */ new WeakMap(); var resolveInitialVdom; var initialVdomPromise = new Promise((resolve2) => { resolveInitialVdom = resolve2; }); var hydrateRegions = async () => { const nodes = document.querySelectorAll(`[data-wp-interactive]`); for (const node of nodes) { if (!hydratedIslands.has(node)) { await splitTask(); const fragment = getRegionRootFragment(node); const vdom = toVdom(node); initialVdom.set(node, vdom); await splitTask(); U(vdom, fragment); } } resolveInitialVdom(initialVdom); }; // packages/interactivity/build-module/index.mjs if (true) { await Promise.resolve().then(() => (init_debug_module(), debug_module_exports)); } var watch = E2; var requiredConsent = "I acknowledge that using private APIs means my theme or plugin will inevitably break in the next version of WordPress."; var privateApis = (lock) => { if (lock === requiredConsent) { return { getRegionRootFragment, initialVdomPromise, toVdom, directive, getNamespace, h: k, cloneElement: W, render: R, proxifyState, parseServerData, populateServerData, batch: r3, routerRegions, deepReadOnly, navigationSignal, sessionId, warn }; } throw new Error("Forbidden access."); }; populateServerData(parseServerData()); directives_default(); onDOMReady(hydrateRegions); window.history.replaceState( { ...window.history.state, wpInteractivityId: sessionId }, "" ); window.addEventListener("popstate", (event) => { if (event.state !== null && event.state?.wpInteractivityId !== sessionId) { window.location.reload(); } }); export { getConfig, getContext, getElement, getServerContext, getServerState, privateApis, splitTask, store, useCallback, useEffect, useInit, useLayoutEffect, useMemo, A2 as useRef, d2 as useState, useWatch, watch, withScope, withSyncEvent }; interactivity/index.min.asset.php 0000644 00000000123 15206736335 0013170 0 ustar 00 <?php return array('dependencies' => array(), 'version' => 'efaa5193bbad9c60ffd1'); core-abilities/index.min.js 0000644 00000003435 15206736335 0011705 0 ustar 00 var E=Object.create;var s=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var v=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var c=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var b=(e,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of u(t))!w.call(e,a)&&a!==i&&s(e,a,{get:()=>t[a],enumerable:!(r=A(t,a))||r.enumerable});return e};var l=(e,t,i)=>(i=e!=null?E(v(e)):{},b(t||!e||!e.__esModule?s(i,"default",{value:e,enumerable:!0}):i,e));var f=c((C,d)=>{d.exports=window.wp.apiFetch});var y=c((D,p)=>{p.exports=window.wp.url});var o=l(f(),1),n=l(y(),1);import{registerAbility as h,registerAbilityCategory as T}from"@wordpress/abilities";var m="/wp-abilities/v1",g=`${m}/abilities`,I=`${m}/categories`;function S(e){return async t=>{let i="POST";e.meta?.annotations?.readonly?i="GET":e.meta?.annotations?.destructive&&e.meta?.annotations?.idempotent&&(i="DELETE");let r=`${g}/${e.name}/run`,a={method:i};return["GET","DELETE"].includes(i)&&t!==null&&t!==void 0?r=(0,n.addQueryArgs)(r,{input:t}):i==="POST"&&t!==null&&t!==void 0&&(a.data={input:t}),(0,o.default)({path:r,...a})}}async function x(){try{let e=await(0,o.default)({path:(0,n.addQueryArgs)(I,{per_page:-1,context:"edit"})});if(e&&Array.isArray(e))for(let t of e)T(t.slug,{label:t.label,description:t.description,meta:{annotations:{serverRegistered:!0}}})}catch(e){console.error("Failed to fetch ability categories:",e)}}async function O(){try{let e=await(0,o.default)({path:(0,n.addQueryArgs)(g,{per_page:-1,context:"edit"})});if(e&&Array.isArray(e))for(let t of e)h({...t,callback:S(t),meta:{annotations:{...t.meta?.annotations,serverRegistered:!0}}})}catch(e){console.error("Failed to fetch abilities:",e)}}async function P(){await x(),await O()}var N=P();export{N as ready}; core-abilities/index.js 0000644 00000010252 15206736335 0011116 0 ustar 00 var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // package-external:@wordpress/api-fetch var require_api_fetch = __commonJS({ "package-external:@wordpress/api-fetch"(exports, module) { module.exports = window.wp.apiFetch; } }); // package-external:@wordpress/url var require_url = __commonJS({ "package-external:@wordpress/url"(exports, module) { module.exports = window.wp.url; } }); // packages/core-abilities/build-module/index.mjs var import_api_fetch = __toESM(require_api_fetch(), 1); var import_url = __toESM(require_url(), 1); import { registerAbility, registerAbilityCategory } from "@wordpress/abilities"; var API_BASE = "/wp-abilities/v1"; var ABILITIES_ENDPOINT = `${API_BASE}/abilities`; var CATEGORIES_ENDPOINT = `${API_BASE}/categories`; function createServerCallback(ability) { return async (input) => { let method = "POST"; if (!!ability.meta?.annotations?.readonly) { method = "GET"; } else if (!!ability.meta?.annotations?.destructive && !!ability.meta?.annotations?.idempotent) { method = "DELETE"; } let path = `${ABILITIES_ENDPOINT}/${ability.name}/run`; const options = { method }; if (["GET", "DELETE"].includes(method) && input !== null && input !== void 0) { path = (0, import_url.addQueryArgs)(path, { input }); } else if (method === "POST" && input !== null && input !== void 0) { options.data = { input }; } return (0, import_api_fetch.default)({ path, ...options }); }; } async function initializeCategories() { try { const categories = await (0, import_api_fetch.default)({ path: (0, import_url.addQueryArgs)(CATEGORIES_ENDPOINT, { per_page: -1, context: "edit" }) }); if (categories && Array.isArray(categories)) { for (const category of categories) { registerAbilityCategory(category.slug, { label: category.label, description: category.description, meta: { annotations: { serverRegistered: true } } }); } } } catch (error) { console.error("Failed to fetch ability categories:", error); } } async function initializeAbilities() { try { const abilities = await (0, import_api_fetch.default)({ path: (0, import_url.addQueryArgs)(ABILITIES_ENDPOINT, { per_page: -1, context: "edit" }) }); if (abilities && Array.isArray(abilities)) { for (const ability of abilities) { registerAbility({ ...ability, callback: createServerCallback(ability), meta: { annotations: { ...ability.meta?.annotations, serverRegistered: true } } }); } } } catch (error) { console.error("Failed to fetch abilities:", error); } } async function initialize() { await initializeCategories(); await initializeAbilities(); } var ready = initialize(); export { ready }; core-abilities/index.min.asset.php 0000644 00000000310 15206736335 0013163 0 ustar 00 <?php return array('dependencies' => array('wp-api-fetch', 'wp-url'), 'module_dependencies' => array(array('id' => '@wordpress/abilities', 'import' => 'static')), 'version' => '012760fd849397dd0031'); route/index.min.js 0000644 00000222362 15206736335 0010152 0 ustar 00 var on=Object.create;var $o=Object.defineProperty;var rn=Object.getOwnPropertyDescriptor;var nn=Object.getOwnPropertyNames;var sn=Object.getPrototypeOf,an=Object.prototype.hasOwnProperty;var ct=(t,o)=>()=>(o||t((o={exports:{}}).exports,o),o.exports);var cn=(t,o,e,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of nn(o))!an.call(t,n)&&n!==e&&$o(t,n,{get:()=>o[n],enumerable:!(r=rn(o,n))||r.enumerable});return t};var x=(t,o,e)=>(e=t!=null?on(sn(t)):{},cn(o||!t||!t.__esModule?$o(e,"default",{value:t,enumerable:!0}):e,t));var K=ct((Vi,lr)=>{lr.exports=window.ReactJSXRuntime});var B=ct((Wi,fr)=>{fr.exports=window.React});var pr=ct(dr=>{"use strict";var Vt=B();function Jn(t,o){return t===o&&(t!==0||1/t===1/o)||t!==t&&o!==o}var Xn=typeof Object.is=="function"?Object.is:Jn,Zn=Vt.useState,Qn=Vt.useEffect,ts=Vt.useLayoutEffect,es=Vt.useDebugValue;function os(t,o){var e=o(),r=Zn({inst:{value:e,getSnapshot:o}}),n=r[0].inst,s=r[1];return ts(function(){n.value=e,n.getSnapshot=o,fo(n)&&s({inst:n})},[t,e,o]),Qn(function(){return fo(n)&&s({inst:n}),t(function(){fo(n)&&s({inst:n})})},[t]),es(e),e}function fo(t){var o=t.getSnapshot;t=t.value;try{var e=o();return!Xn(t,e)}catch{return!0}}function rs(t,o){return o()}var ns=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?rs:os;dr.useSyncExternalStore=Vt.useSyncExternalStore!==void 0?Vt.useSyncExternalStore:ns});var gr=ct((Gi,mr)=>{"use strict";mr.exports=pr()});var vr=ct(Rr=>{"use strict";var Me=B(),ss=gr();function is(t,o){return t===o&&(t!==0||1/t===1/o)||t!==t&&o!==o}var as=typeof Object.is=="function"?Object.is:is,cs=ss.useSyncExternalStore,us=Me.useRef,ls=Me.useEffect,fs=Me.useMemo,hs=Me.useDebugValue;Rr.useSyncExternalStoreWithSelector=function(t,o,e,r,n){var s=us(null);if(s.current===null){var i={hasValue:!1,value:null};s.current=i}else i=s.current;s=fs(function(){function a(d){if(!f){if(f=!0,u=d,d=r(d),n!==void 0&&i.hasValue){var p=i.value;if(n(p,d))return l=p}return l=d}if(p=l,as(u,d))return p;var m=r(d);return n!==void 0&&n(p,m)?(u=d,p):(u=d,l=m)}var f=!1,u,l,h=e===void 0?null:e;return[function(){return a(o())},h===null?void 0:function(){return a(h())}]},[o,e,r,n]);var c=cs(t,s[0],s[1]);return ls(function(){i.hasValue=!0,i.value=c},[c]),hs(c),c}});var Sr=ct((Yi,yr)=>{"use strict";yr.exports=vr()});var Tr=ct((Pa,br)=>{br.exports=window.ReactDOM});var Hr=ct((Tu,jr)=>{jr.exports=window.wp.privateApis});var ge=new WeakMap,Bo=new WeakMap,Gt={current:[]},ze=!1,Kt=0,Ht=new Set,me=new Map;function Do(t){for(let o of t){if(Gt.current.includes(o))continue;Gt.current.push(o),o.recompute();let e=Bo.get(o);if(e)for(let r of e){let n=ge.get(r);n?.length&&Do(n)}}}function un(t){let o={prevVal:t.prevState,currentVal:t.state};for(let e of t.listeners)e(o)}function ln(t){let o={prevVal:t.prevState,currentVal:t.state};for(let e of t.listeners)e(o)}function Re(t){if(Kt>0&&!me.has(t)&&me.set(t,t.prevState),Ht.add(t),!(Kt>0)&&!ze)try{for(ze=!0;Ht.size>0;){let o=Array.from(Ht);Ht.clear();for(let e of o){let r=me.get(e)??e.prevState;e.prevState=r,un(e)}for(let e of o){let r=ge.get(e);r&&(Gt.current.push(e),Do(r))}for(let e of o){let r=ge.get(e);if(r)for(let n of r)ln(n)}}}finally{ze=!1,Gt.current=[],me.clear()}}function ut(t){Kt++;try{t()}finally{if(Kt--,Kt===0){let o=Ht.values().next().value;o&&Re(o)}}}function Uo(t){return typeof t=="function"}var qt=class{constructor(o,e){this.listeners=new Set,this.subscribe=r=>{var n,s;this.listeners.add(r);let i=(s=(n=this.options)==null?void 0:n.onSubscribe)==null?void 0:s.call(n,r,this);return()=>{this.listeners.delete(r),i?.()}},this.prevState=o,this.state=o,this.options=e}setState(o){var e,r,n;this.prevState=this.state,(e=this.options)!=null&&e.updateFn?this.state=this.options.updateFn(this.prevState)(o):Uo(o)?this.state=o(this.prevState):this.state=o,(n=(r=this.options)==null?void 0:r.onUpdate)==null||n.call(r),Re(this)}};var lt="__TSR_index",Vo="popstate",Wo="beforeunload";function jo(t){let o=t.getLocation(),e=new Set,r=i=>{o=t.getLocation(),e.forEach(c=>c({location:o,action:i}))},n=i=>{t.notifyOnIndexChange??!0?r(i):o=t.getLocation()},s=async({task:i,navigateOpts:c,...a})=>{if(c?.ignoreBlocker??!1){i();return}let u=t.getBlockers?.()??[],l=a.type==="PUSH"||a.type==="REPLACE";if(typeof document<"u"&&u.length&&l)for(let h of u){let d=St(a.path,a.state);if(await h.blockerFn({currentLocation:o,nextLocation:d,action:a.type})){t.onBlocked?.();return}}i()};return{get location(){return o},get length(){return t.getLength()},subscribers:e,subscribe:i=>(e.add(i),()=>{e.delete(i)}),push:(i,c,a)=>{let f=o.state[lt];c=zo(f+1,c),s({task:()=>{t.pushState(i,c),r({type:"PUSH"})},navigateOpts:a,type:"PUSH",path:i,state:c})},replace:(i,c,a)=>{let f=o.state[lt];c=zo(f,c),s({task:()=>{t.replaceState(i,c),r({type:"REPLACE"})},navigateOpts:a,type:"REPLACE",path:i,state:c})},go:(i,c)=>{s({task:()=>{t.go(i),n({type:"GO",index:i})},navigateOpts:c,type:"GO"})},back:i=>{s({task:()=>{t.back(i?.ignoreBlocker??!1),n({type:"BACK"})},navigateOpts:i,type:"BACK"})},forward:i=>{s({task:()=>{t.forward(i?.ignoreBlocker??!1),n({type:"FORWARD"})},navigateOpts:i,type:"FORWARD"})},canGoBack:()=>o.state[lt]!==0,createHref:i=>t.createHref(i),block:i=>{if(!t.setBlockers)return()=>{};let c=t.getBlockers?.()??[];return t.setBlockers([...c,i]),()=>{let a=t.getBlockers?.()??[];t.setBlockers?.(a.filter(f=>f!==i))}},flush:()=>t.flush?.(),destroy:()=>t.destroy?.(),notify:r}}function zo(t,o){o||(o={});let e=je();return{...o,key:e,__TSR_key:e,[lt]:t}}function Yt(t){let o=t?.window??(typeof document<"u"?window:void 0),e=o.history.pushState,r=o.history.replaceState,n=[],s=()=>n,i=g=>n=g,c=t?.createHref??(g=>g),a=t?.parseLocation??(()=>St(`${o.location.pathname}${o.location.search}${o.location.hash}`,o.history.state));if(!o.history.state?.__TSR_key&&!o.history.state?.key){let g=je();o.history.replaceState({[lt]:0,key:g,__TSR_key:g},"")}let f=a(),u,l=!1,h=!1,d=!1,p=!1,m=()=>f,R,v,w=()=>{R&&(y._ignoreSubscribers=!0,(R.isPush?o.history.pushState:o.history.replaceState)(R.state,"",R.href),y._ignoreSubscribers=!1,R=void 0,v=void 0,u=void 0)},S=(g,P,_)=>{let k=c(P);v||(u=f),f=St(P,_),R={href:k,state:_,isPush:R?.isPush||g==="push"},v||(v=Promise.resolve().then(()=>w()))},L=g=>{f=a(),y.notify({type:g})},I=async()=>{if(h){h=!1;return}let g=a(),P=g.state[lt]-f.state[lt],_=P===1,k=P===-1,F=!_&&!k||l;l=!1;let rt=F?"GO":k?"BACK":"FORWARD",q=F?{type:"GO",index:P}:{type:k?"BACK":"FORWARD"};if(d)d=!1;else{let vt=s();if(typeof document<"u"&&vt.length){for(let To of vt)if(await To.blockerFn({currentLocation:f,nextLocation:g,action:rt})){h=!0,o.history.go(1),y.notify(q);return}}}f=a(),y.notify(q)},M=g=>{if(p){p=!1;return}let P=!1,_=s();if(typeof document<"u"&&_.length)for(let k of _){let F=k.enableBeforeUnload??!0;if(F===!0){P=!0;break}if(typeof F=="function"&&F()===!0){P=!0;break}}if(P)return g.preventDefault(),g.returnValue=""},y=jo({getLocation:m,getLength:()=>o.history.length,pushState:(g,P)=>S("push",g,P),replaceState:(g,P)=>S("replace",g,P),back:g=>(g&&(d=!0),p=!0,o.history.back()),forward:g=>{g&&(d=!0),p=!0,o.history.forward()},go:g=>{l=!0,o.history.go(g)},createHref:g=>c(g),flush:w,destroy:()=>{o.history.pushState=e,o.history.replaceState=r,o.removeEventListener(Wo,M,{capture:!0}),o.removeEventListener(Vo,I)},onBlocked:()=>{u&&f!==u&&(f=u)},getBlockers:s,setBlockers:i,notifyOnIndexChange:!1});return o.addEventListener(Wo,M,{capture:!0}),o.addEventListener(Vo,I),o.history.pushState=function(...g){let P=e.apply(o.history,g);return y._ignoreSubscribers||L("PUSH"),P},o.history.replaceState=function(...g){let P=r.apply(o.history,g);return y._ignoreSubscribers||L("REPLACE"),P},y}function St(t,o){let e=t.indexOf("#"),r=t.indexOf("?"),n=je();return{href:t,pathname:t.substring(0,e>0?r>0?Math.min(e,r):e:r>0?r:t.length),hash:e>-1?t.substring(e):"",search:r>-1?t.slice(r,e===-1?void 0:e):"",state:o||{[lt]:0,key:n,__TSR_key:n}}}function je(){return(Math.random()+1).toString(36).substring(7)}function It(t){return t[t.length-1]}function fn(t){return typeof t=="function"}function G(t,o){return fn(t)?t(o):t}var hn=Object.prototype.hasOwnProperty;function D(t,o){if(t===o)return t;let e=o,r=ve(t)&&ve(e);if(!r&&!(Tt(t)&&Tt(e)))return e;let n=r?t:Ho(t);if(!n)return e;let s=r?e:Ho(e);if(!s)return e;let i=n.length,c=s.length,a=r?new Array(c):{},f=0;for(let u=0;u<c;u++){let l=r?u:s[u],h=t[l],d=e[l];if(h===d){a[l]=h,(r?u<i:hn.call(t,l))&&f++;continue}if(h===null||d===null||typeof h!="object"||typeof d!="object"){a[l]=d;continue}let p=D(h,d);a[l]=p,p===h&&f++}return i===c&&f===i?t:a}function Ho(t){let o=[],e=Object.getOwnPropertyNames(t);for(let n of e){if(!Object.prototype.propertyIsEnumerable.call(t,n))return!1;o.push(n)}let r=Object.getOwnPropertySymbols(t);for(let n of r){if(!Object.prototype.propertyIsEnumerable.call(t,n))return!1;o.push(n)}return o}function Tt(t){if(!Ko(t))return!1;let o=t.constructor;if(typeof o>"u")return!0;let e=o.prototype;return!(!Ko(e)||!e.hasOwnProperty("isPrototypeOf"))}function Ko(t){return Object.prototype.toString.call(t)==="[object Object]"}function ve(t){return Array.isArray(t)&&t.length===Object.keys(t).length}function J(t,o,e){if(t===o)return!0;if(typeof t!=typeof o)return!1;if(Array.isArray(t)&&Array.isArray(o)){if(t.length!==o.length)return!1;for(let r=0,n=t.length;r<n;r++)if(!J(t[r],o[r],e))return!1;return!0}if(Tt(t)&&Tt(o)){let r=e?.ignoreUndefined??!0;if(e?.partial){for(let i in o)if((!r||o[i]!==void 0)&&!J(t[i],o[i],e))return!1;return!0}let n=0;if(!r)n=Object.keys(t).length;else for(let i in t)t[i]!==void 0&&n++;let s=0;for(let i in o)if((!r||o[i]!==void 0)&&(s++,s>n||!J(t[i],o[i],e)))return!1;return n===s}return!1}function X(t){let o,e,r=new Promise((n,s)=>{o=n,e=s});return r.status="pending",r.resolve=n=>{r.status="resolved",r.value=n,o(n),t?.(n)},r.reject=n=>{r.status="rejected",e(n)},r}function st(t){return!!(t&&typeof t=="object"&&typeof t.then=="function")}var dn=Array.from(new Map([["%","%25"],["\\","%5C"],["/","%2F"],[";","%3B"],[":","%3A"],["@","%40"],["&","%26"],["=","%3D"],["+","%2B"],["$","%24"],[",","%2C"]]).values());function Jt(t,o=dn,e=0){function r(n){try{return decodeURIComponent(n)}catch{return n.replaceAll(/%[0-9A-Fa-f]{2}/g,s=>{try{return decodeURIComponent(s)}catch{return s}})}}if(t===""||!t.match(/%[0-9A-Fa-f]{2}/g))return t;for(let n=e;n<o.length;n++){let s=o[n];if(s&&t.includes(s)){let i=t.split(s),c=[];for(let a of i)c.push(Jt(a,o,n+1));return c.join(s)}}return r(t)}var pn=!0,He="Invariant failed";function z(t,o){if(!t){if(pn)throw new Error(He);var e=typeof o=="function"?o():o,r=e?"".concat(He,": ").concat(e):He;throw new Error(r)}}var Z=0,ft=1,kt=2,Pt=3;function j(t){return Ot(t.filter(o=>o!==void 0).join("/"))}function Ot(t){return t.replace(/\/{2,}/g,"/")}function _t(t){return t==="/"?t:t.replace(/^\/{1,}/,"")}function H(t){return t==="/"?t:t.replace(/\/{1,}$/,"")}function ht(t){return H(_t(t))}function Ft(t,o){return t?.endsWith("/")&&t!=="/"&&t!==`${o}/`?t.slice(0,-1):t}function Ke(t,o,e){return Ft(t,e)===Ft(o,e)}function mn(t){let{type:o,value:e}=t;if(o===Z)return e;let{prefixSegment:r,suffixSegment:n}=t;if(o===ft){let s=e.substring(1);if(r&&n)return`${r}{$${s}}${n}`;if(r)return`${r}{$${s}}`;if(n)return`{$${s}}${n}`}if(o===Pt){let s=e.substring(1);return r&&n?`${r}{-$${s}}${n}`:r?`${r}{-$${s}}`:n?`{-$${s}}${n}`:`{-$${s}}`}if(o===kt){if(r&&n)return`${r}{$}${n}`;if(r)return`${r}{$}`;if(n)return`{$}${n}`}return e}function ye({base:t,to:o,trailingSlash:e="never",parseCache:r}){let n=it(t,r).slice(),s=it(o,r);n.length>1&&It(n)?.value==="/"&&n.pop();for(let a=0,f=s.length;a<f;a++){let u=s[a],l=u.value;l==="/"?a?a===f-1&&n.push(u):n=[u]:l===".."?n.pop():l==="."||n.push(u)}n.length>1&&(It(n).value==="/"?e==="never"&&n.pop():e==="always"&&n.push({type:Z,value:"/"}));let i=n.map(mn);return j(i)}var it=(t,o)=>{if(!t)return[];let e=o?.get(t);if(e)return e;let r=Pn(t);return o?.set(t,r),r},gn=/^\$.{1,}$/,Rn=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,vn=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,yn=/^\$$/,Sn=/^(.*?)\{\$\}(.*)$/;function Pn(t){t=Ot(t);let o=[];if(t.slice(0,1)==="/"&&(t=t.substring(1),o.push({type:Z,value:"/"})),!t)return o;let e=t.split("/").filter(Boolean);return o.push(...e.map(r=>{let n=r.match(Sn);if(n){let c=n[1],a=n[2];return{type:kt,value:"$",prefixSegment:c||void 0,suffixSegment:a||void 0}}let s=r.match(vn);if(s){let c=s[1],a=s[2],f=s[3];return{type:Pt,value:a,prefixSegment:c||void 0,suffixSegment:f||void 0}}let i=r.match(Rn);if(i){let c=i[1],a=i[2],f=i[3];return{type:ft,value:""+a,prefixSegment:c||void 0,suffixSegment:f||void 0}}if(gn.test(r)){let c=r.substring(1);return{type:ft,value:"$"+c,prefixSegment:void 0,suffixSegment:void 0}}return yn.test(r)?{type:kt,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:Z,value:Jt(r)}})),t.slice(-1)==="/"&&(t=t.substring(1),o.push({type:Z,value:"/"})),o}function wt({path:t,params:o,leaveWildcards:e,leaveParams:r,decodeCharMap:n,parseCache:s}){let i=it(t,s);function c(l){let h=o[l],d=typeof h=="string";return l==="*"||l==="_splat"?d?encodeURI(h):h:d?_n(h,n):h}let a=!1,f={},u=j(i.map(l=>{if(l.type===Z)return l.value;if(l.type===kt){f._splat=o._splat,f["*"]=o._splat;let h=l.prefixSegment||"",d=l.suffixSegment||"";if(!o._splat)return a=!0,e?`${h}${l.value}${d}`:h||d?`${h}${d}`:void 0;let p=c("_splat");return e?`${h}${l.value}${p??""}${d}`:`${h}${p}${d}`}if(l.type===ft){let h=l.value.substring(1);!a&&!(h in o)&&(a=!0),f[h]=o[h];let d=l.prefixSegment||"",p=l.suffixSegment||"";if(r){let m=c(l.value);return`${d}${l.value}${m??""}${p}`}return`${d}${c(h)??"undefined"}${p}`}if(l.type===Pt){let h=l.value.substring(1),d=l.prefixSegment||"",p=l.suffixSegment||"";if(!(h in o)||o[h]==null)return e?`${d}${h}${p}`:d||p?`${d}${p}`:void 0;if(f[h]=o[h],r){let m=c(l.value);return`${d}${l.value}${m??""}${p}`}return e?`${d}${h}${c(h)??""}${p}`:`${d}${c(h)??""}${p}`}return l.value}));return{usedParams:f,interpolatedPath:u,isMissingParams:a}}function _n(t,o){let e=encodeURIComponent(t);if(o)for(let[r,n]of o)e=e.replaceAll(r,n);return e}function At(t,o,e){let r=Ge(t,o,e);if(!(o.to&&!r))return r??{}}function Ge(t,{to:o,fuzzy:e,caseSensitive:r},n){let s=o,i=it(t.startsWith("/")?t:`/${t}`,n),c=it(s.startsWith("/")?s:`/${s}`,n),a={};return wn(i,c,a,e,r)?a:void 0}function wn(t,o,e,r,n){let s=0,i=0;for(;s<t.length||i<o.length;){let c=t[s],a=o[i];if(a){if(a.type===kt){let f=t.slice(s),u;if(a.prefixSegment||a.suffixSegment){if(!c)return!1;let l=a.prefixSegment||"",h=a.suffixSegment||"",d=c.value;if("prefixSegment"in a&&!d.startsWith(l)||"suffixSegment"in a&&!t[t.length-1]?.value.endsWith(h))return!1;let p=decodeURI(j(f.map(m=>m.value)));l&&p.startsWith(l)&&(p=p.slice(l.length)),h&&p.endsWith(h)&&(p=p.slice(0,p.length-h.length)),u=p}else u=decodeURI(j(f.map(l=>l.value)));return e["*"]=u,e._splat=u,!0}if(a.type===Z){if(a.value==="/"&&!c?.value){i++;continue}if(c){if(n){if(a.value!==c.value)return!1}else if(a.value.toLowerCase()!==c.value.toLowerCase())return!1;s++,i++;continue}else return!1}if(a.type===ft){if(!c||c.value==="/")return!1;let f="",u=!1;if(a.prefixSegment||a.suffixSegment){let l=a.prefixSegment||"",h=a.suffixSegment||"",d=c.value;if(l&&!d.startsWith(l)||h&&!d.endsWith(h))return!1;let p=d;l&&p.startsWith(l)&&(p=p.slice(l.length)),h&&p.endsWith(h)&&(p=p.slice(0,p.length-h.length)),f=decodeURIComponent(p),u=!0}else f=decodeURIComponent(c.value),u=!0;u&&(e[a.value.substring(1)]=f,s++),i++;continue}if(a.type===Pt){if(!c){i++;continue}if(c.value==="/"){i++;continue}let f="",u=!1;if(a.prefixSegment||a.suffixSegment){let l=a.prefixSegment||"",h=a.suffixSegment||"",d=c.value;if((!l||d.startsWith(l))&&(!h||d.endsWith(h))){let p=d;l&&p.startsWith(l)&&(p=p.slice(l.length)),h&&p.endsWith(h)&&(p=p.slice(0,p.length-h.length)),f=decodeURIComponent(p),u=!0}}else{let l=!0;for(let h=i+1;h<o.length;h++){let d=o[h];if(d?.type===Z&&d.value===c.value){l=!1;break}if(d?.type===ft||d?.type===kt){t.length<o.length&&(l=!1);break}}l&&(f=decodeURIComponent(c.value),u=!0)}u&&(e[a.value.substring(1)]=f,s++),i++;continue}}if(s<t.length&&i>=o.length)return e["**"]=j(t.slice(s).map(f=>f.value)),!!r&&o[o.length-1]?.value!=="/";if(i<o.length&&s>=t.length){for(let f=i;f<o.length;f++)if(o[f]?.type!==Pt)return!1;break}break}return!0}var xn=.75,Cn=1,Ln=.5,Mn=.4,En=.25,bn=.2,Tn=.05,In=.02,kn=.01,Go=2e-4,qo=1e-4;function Yo(t,o){return t.prefixSegment&&t.suffixSegment?o+Tn+Go*t.prefixSegment.length+qo*t.suffixSegment.length:t.prefixSegment?o+In+Go*t.prefixSegment.length:t.suffixSegment?o+kn+qo*t.suffixSegment.length:o}function Fn(t){let o=[];return t.forEach((r,n)=>{if(r.isRoot||!r.path)return;let s=_t(r.fullPath),i=it(s),c=0;for(;i.length>c+1&&i[c]?.value==="/";)c++;c>0&&(i=i.slice(c));let a=0,f=!1,u=i.map((l,h)=>{if(l.value==="/")return xn;if(l.type===Z)return Cn;let d;l.type===ft?d=Ln:l.type===Pt?(d=Mn,a++):d=En;for(let p=h+1;p<i.length;p++){let m=i[p];if(m.type===Z&&m.value!=="/")return f=!0,Yo(l,d+bn)}return Yo(l,d)});o.push({child:r,trimmed:s,parsed:i,index:n,scores:u,optionalParamCount:a,hasStaticAfter:f})}),o.sort((r,n)=>{let s=Math.min(r.scores.length,n.scores.length);for(let i=0;i<s;i++)if(r.scores[i]!==n.scores[i])return n.scores[i]-r.scores[i];if(r.scores.length!==n.scores.length){if(r.optionalParamCount!==n.optionalParamCount){if(r.hasStaticAfter===n.hasStaticAfter)return r.optionalParamCount-n.optionalParamCount;if(r.hasStaticAfter&&!n.hasStaticAfter)return-1;if(!r.hasStaticAfter&&n.hasStaticAfter)return 1}return n.scores.length-r.scores.length}for(let i=0;i<s;i++)if(r.parsed[i].value!==n.parsed[i].value)return r.parsed[i].value>n.parsed[i].value?1:-1;return r.index-n.index}).map((r,n)=>(r.child.rank=n,r.child))}function Jo({routeTree:t,initRoute:o}){let e={},r={},n=i=>{i.forEach((c,a)=>{o?.(c,a);let f=e[c.id];if(z(!f,`Duplicate routes found with id: ${String(c.id)}`),e[c.id]=c,!c.isRoot&&c.path){let l=H(c.fullPath);(!r[l]||c.fullPath.endsWith("/"))&&(r[l]=c)}let u=c.children;u?.length&&n(u)})};n([t]);let s=Fn(Object.values(e));return{routesById:e,routesByPath:r,flatRoutes:s}}function Se(t={}){if(t.isNotFound=!0,t.throw)throw t;return t}function $(t){return!!t?.isNotFound}function On(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}var Nt="tsr-scroll-restoration-v1_3",An=(t,o)=>{let e;return(...r)=>{e||(e=setTimeout(()=>{t(...r),e=null},o))}};function Nn(){let t=On();if(!t)return null;let o=t.getItem(Nt),e=o?JSON.parse(o):{};return{state:e,set:r=>(e=G(r,e)||e,t.setItem(Nt,JSON.stringify(e)))}}var Xt=Nn(),Zt=t=>t.state.__TSR_key||t.href;function Xo(t){let o=[],e;for(;e=t.parentNode;)o.push(`${t.tagName}:nth-child(${Array.prototype.indexOf.call(e.children,t)+1})`),t=e;return`${o.reverse().join(" > ")}`.toLowerCase()}var Pe=!1;function _e({storageKey:t,key:o,behavior:e,shouldScrollRestoration:r,scrollToTopSelectors:n,location:s}){let i;try{i=JSON.parse(sessionStorage.getItem(t)||"{}")}catch(f){console.error(f);return}let c=o||window.history.state?.__TSR_key,a=i[c];Pe=!0;t:{if(r&&a&&Object.keys(a).length>0){for(let l in a){let h=a[l];if(l==="window")window.scrollTo({top:h.scrollY,left:h.scrollX,behavior:e});else if(l){let d=document.querySelector(l);d&&(d.scrollLeft=h.scrollX,d.scrollTop=h.scrollY)}}break t}let f=(s??window.location).hash.split("#",2)[1];if(f){let l=window.history.state?.__hashScrollIntoViewOptions??!0;if(l){let h=document.getElementById(f);h&&h.scrollIntoView(l)}break t}let u={top:0,left:0,behavior:e};if(window.scrollTo(u),n)for(let l of n){if(l==="window")continue;let h=typeof l=="function"?l():document.querySelector(l);h&&h.scrollTo(u)}}Pe=!1}function qe(t,o){if(!Xt&&!t.isServer||((o??t.options.scrollRestoration??!1)&&(t.isScrollRestoring=!0),t.isServer||t.isScrollRestorationSetup||!Xt))return;t.isScrollRestorationSetup=!0,Pe=!1;let r=t.options.getScrollRestorationKey||Zt;window.history.scrollRestoration="manual";let n=s=>{if(Pe||!t.isScrollRestoring)return;let i="";if(s.target===document||s.target===window)i="window";else{let a=s.target.getAttribute("data-scroll-restoration-id");a?i=`[data-scroll-restoration-id="${a}"]`:i=Xo(s.target)}let c=r(t.state.location);Xt.set(a=>{let f=a[c]||={},u=f[i]||={};if(i==="window")u.scrollX=window.scrollX||0,u.scrollY=window.scrollY||0;else if(i){let l=document.querySelector(i);l&&(u.scrollX=l.scrollLeft||0,u.scrollY=l.scrollTop||0)}return a})};typeof document<"u"&&document.addEventListener("scroll",An(n,100),!0),t.subscribe("onRendered",s=>{let i=r(s.toLocation);if(!t.resetNextScroll){t.resetNextScroll=!0;return}typeof t.options.scrollRestoration=="function"&&!t.options.scrollRestoration({location:t.latestLocation})||(_e({storageKey:Nt,key:i,behavior:t.options.scrollRestorationBehavior,shouldScrollRestoration:t.isScrollRestoring,scrollToTopSelectors:t.options.scrollToTopSelectors,location:t.history.location}),t.isScrollRestoring&&Xt.set(c=>(c[i]||={},c)))})}function Ye(t){if(typeof document<"u"&&document.querySelector){let o=t.state.location.state.__hashScrollIntoViewOptions??!0;if(o&&t.state.location.hash!==""){let e=document.getElementById(t.state.location.hash);e&&e.scrollIntoView(o)}}}function Zo(t,o=String){let e=new URLSearchParams;for(let r in t){let n=t[r];n!==void 0&&e.set(r,o(n))}return e.toString()}function Je(t){return t?t==="false"?!1:t==="true"?!0:+t*0===0&&+t+""===t?+t:t:""}function Qo(t){let o=new URLSearchParams(t),e={};for(let[r,n]of o.entries()){let s=e[r];s==null?e[r]=Je(n):Array.isArray(s)?s.push(Je(n)):e[r]=[s,Je(n)]}return e}var Xe=tr(JSON.parse),Ze=er(JSON.stringify,JSON.parse);function tr(t){return o=>{o[0]==="?"&&(o=o.substring(1));let e=Qo(o);for(let r in e){let n=e[r];if(typeof n=="string")try{e[r]=t(n)}catch{}}return e}}function er(t,o){let e=typeof o=="function";function r(n){if(typeof n=="object"&&n!==null)try{return t(n)}catch{}else if(e&&typeof n=="string")try{return o(n),t(n)}catch{}return n}return n=>{let s=Zo(n,r);return s?`?${s}`:""}}var O="__root__";function xt(t){if(t.statusCode=t.statusCode||t.code||307,!t.reloadDocument&&typeof t.href=="string")try{new URL(t.href),t.reloadDocument=!0}catch{}let o=new Headers(t.headers);t.href&&o.get("Location")===null&&o.set("Location",t.href);let e=new Response(null,{status:t.statusCode,headers:o});if(e.options=t,t.throw)throw e;return e}function V(t){return t instanceof Response&&!!t.options}function or(t){let o=new Map,e,r,n=s=>{s.next&&(s.prev?(s.prev.next=s.next,s.next.prev=s.prev,s.next=void 0,r&&(r.next=s,s.prev=r)):(s.next.prev=void 0,e=s.next,s.next=void 0,r&&(s.prev=r,r.next=s)),r=s)};return{get(s){let i=o.get(s);if(i)return n(i),i.value},set(s,i){if(o.size>=t&&e){let a=e;o.delete(a.key),a.next&&(e=a.next,a.next.prev=void 0),a===r&&(r=void 0)}let c=o.get(s);if(c)c.value=i,n(c);else{let a={key:s,value:i,prev:r};r&&(r.next=a),r=a,e||(e=a),o.set(s,a)}}}}var xe=t=>{if(!t.rendered)return t.rendered=!0,t.onReady?.()},Ce=(t,o)=>!!(t.preload&&!t.router.state.matches.some(e=>e.id===o)),nr=(t,o)=>{let e=t.router.routesById[o.routeId??""]??t.router.routeTree;!e.options.notFoundComponent&&t.router.options?.defaultNotFoundComponent&&(e.options.notFoundComponent=t.router.options.defaultNotFoundComponent),z(e.options.notFoundComponent,"No notFoundComponent found. Please set a notFoundComponent on your route or provide a defaultNotFoundComponent to the router.");let r=t.matches.find(n=>n.routeId===e.id);z(r,"Could not find match for route: "+e.id),t.updateMatch(r.id,n=>({...n,status:"notFound",error:o,isFetching:!1})),o.routerCode==="BEFORE_LOAD"&&e.parentRoute&&(o.routeId=e.parentRoute.id,nr(t,o))},dt=(t,o,e)=>{if(!(!V(e)&&!$(e))){if(V(e)&&e.redirectHandled&&!e.options.reloadDocument)throw e;if(o){o._nonReactive.beforeLoadPromise?.resolve(),o._nonReactive.loaderPromise?.resolve(),o._nonReactive.beforeLoadPromise=void 0,o._nonReactive.loaderPromise=void 0;let r=V(e)?"redirected":"notFound";t.updateMatch(o.id,n=>({...n,status:r,isFetching:!1,error:e})),$(e)&&!e.routeId&&(e.routeId=o.routeId),o._nonReactive.loadPromise?.resolve()}throw V(e)?(t.rendered=!0,e.options._fromLocation=t.location,e.redirectHandled=!0,e=t.router.resolveRedirect(e),e):(nr(t,e),e)}},sr=(t,o)=>{let e=t.router.getMatch(o);return!!(!t.router.isServer&&e._nonReactive.dehydrated||t.router.isServer&&e.ssr===!1)},Qt=(t,o,e,r)=>{let{id:n,routeId:s}=t.matches[o],i=t.router.looseRoutesById[s];if(e instanceof Promise)throw e;e.routerCode=r,t.firstBadMatchIndex??=o,dt(t,t.router.getMatch(n),e);try{i.options.onError?.(e)}catch(c){e=c,dt(t,t.router.getMatch(n),e)}t.updateMatch(n,c=>(c._nonReactive.beforeLoadPromise?.resolve(),c._nonReactive.beforeLoadPromise=void 0,c._nonReactive.loadPromise?.resolve(),{...c,error:e,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}))},$n=(t,o,e,r)=>{let n=t.router.getMatch(o),s=t.matches[e-1]?.id,i=s?t.router.getMatch(s):void 0;if(t.router.isShell()){n.ssr=o===O;return}if(i?.ssr===!1){n.ssr=!1;return}let c=d=>d===!0&&i?.ssr==="data-only"?"data-only":d,a=t.router.options.defaultSsr??!0;if(r.options.ssr===void 0){n.ssr=c(a);return}if(typeof r.options.ssr!="function"){n.ssr=c(r.options.ssr);return}let{search:f,params:u}=n,l={search:we(f,n.searchError),params:we(u,n.paramsError),location:t.location,matches:t.matches.map(d=>({index:d.index,pathname:d.pathname,fullPath:d.fullPath,staticData:d.staticData,id:d.id,routeId:d.routeId,search:we(d.search,d.searchError),params:we(d.params,d.paramsError),ssr:d.ssr}))},h=r.options.ssr(l);if(st(h))return h.then(d=>{n.ssr=c(d??a)});n.ssr=c(h??a)},ir=(t,o,e,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;let n=e.options.pendingMs??t.router.options.defaultPendingMs;if(!!(t.onReady&&!t.router.isServer&&!Ce(t,o)&&(e.options.loader||e.options.beforeLoad||eo(e))&&typeof n=="number"&&n!==1/0&&(e.options.pendingComponent??t.router.options?.defaultPendingComponent))){let i=setTimeout(()=>{xe(t)},n);r._nonReactive.pendingTimeout=i}},Bn=(t,o,e)=>{let r=t.router.getMatch(o);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;ir(t,o,e,r);let n=()=>{let s=t.router.getMatch(o);s.preload&&(s.status==="redirected"||s.status==="notFound")&&dt(t,s,s.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(n):n()},Dn=(t,o,e,r)=>{let n=t.router.getMatch(o),s=n._nonReactive.loadPromise;n._nonReactive.loadPromise=X(()=>{s?.resolve()});let{paramsError:i,searchError:c}=n;i&&Qt(t,e,i,"PARSE_PARAMS"),c&&Qt(t,e,c,"VALIDATE_SEARCH"),ir(t,o,r,n);let a=new AbortController,f=t.matches[e-1]?.id,h={...(f?t.router.getMatch(f):void 0)?.context??t.router.options.context??void 0,...n.__routeContext},d=!1,p=()=>{d||(d=!0,t.updateMatch(o,y=>({...y,isFetching:"beforeLoad",fetchCount:y.fetchCount+1,abortController:a,context:h})))},m=()=>{n._nonReactive.beforeLoadPromise?.resolve(),n._nonReactive.beforeLoadPromise=void 0,t.updateMatch(o,y=>({...y,isFetching:!1}))};if(!r.options.beforeLoad){ut(()=>{p(),m()});return}n._nonReactive.beforeLoadPromise=X();let{search:R,params:v,cause:w}=n,S=Ce(t,o),L={search:R,abortController:a,params:v,preload:S,context:h,location:t.location,navigate:y=>t.router.navigate({...y,_fromLocation:t.location}),buildLocation:t.router.buildLocation,cause:S?"preload":w,matches:t.matches,...t.router.options.additionalContext},I=y=>{if(y===void 0){ut(()=>{p(),m()});return}(V(y)||$(y))&&(p(),Qt(t,e,y,"BEFORE_LOAD")),ut(()=>{p(),t.updateMatch(o,g=>({...g,__beforeLoadContext:y,context:{...g.context,...y}})),m()})},M;try{if(M=r.options.beforeLoad(L),st(M))return p(),M.catch(y=>{Qt(t,e,y,"BEFORE_LOAD")}).then(I)}catch(y){p(),Qt(t,e,y,"BEFORE_LOAD")}I(M)},Un=(t,o)=>{let{id:e,routeId:r}=t.matches[o],n=t.router.looseRoutesById[r],s=()=>{if(t.router.isServer){let a=$n(t,e,o,n);if(st(a))return a.then(c)}return c()},i=()=>Dn(t,e,o,n),c=()=>{if(sr(t,e))return;let a=Bn(t,e,n);return st(a)?a.then(i):i()};return s()},te=(t,o,e)=>{let r=t.router.getMatch(o);if(!r||!e.options.head&&!e.options.scripts&&!e.options.headers)return;let n={matches:t.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([e.options.head?.(n),e.options.scripts?.(n),e.options.headers?.(n)]).then(([s,i,c])=>{let a=s?.meta,f=s?.links,u=s?.scripts,l=s?.styles;return{meta:a,links:f,headScripts:u,headers:c,scripts:i,styles:l}})},ar=(t,o,e,r)=>{let n=t.matchPromises[e-1],{params:s,loaderDeps:i,abortController:c,context:a,cause:f}=t.router.getMatch(o),u=Ce(t,o);return{params:s,deps:i,preload:!!u,parentMatchPromise:n,abortController:c,context:a,location:t.location,navigate:l=>t.router.navigate({...l,_fromLocation:t.location}),cause:u?"preload":f,route:r,...t.router.options.additionalContext}},rr=async(t,o,e,r)=>{try{let n=t.router.getMatch(o);try{(!t.router.isServer||n.ssr===!0)&&to(r);let s=r.options.loader?.(ar(t,o,e,r)),i=r.options.loader&&st(s);if((i||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||n._nonReactive.minPendingPromise)&&t.updateMatch(o,l=>({...l,isFetching:"loader"})),r.options.loader){let l=i?await s:s;dt(t,t.router.getMatch(o),l),l!==void 0&&t.updateMatch(o,h=>({...h,loaderData:l}))}r._lazyPromise&&await r._lazyPromise;let a=te(t,o,r),f=a?await a:void 0,u=n._nonReactive.minPendingPromise;u&&await u,r._componentsPromise&&await r._componentsPromise,t.updateMatch(o,l=>({...l,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),...f}))}catch(s){let i=s,c=n._nonReactive.minPendingPromise;c&&await c,$(s)&&await r.options.notFoundComponent?.preload?.(),dt(t,t.router.getMatch(o),s);try{r.options.onError?.(s)}catch(u){i=u,dt(t,t.router.getMatch(o),u)}let a=te(t,o,r),f=a?await a:void 0;t.updateMatch(o,u=>({...u,error:i,status:"error",isFetching:!1,...f}))}}catch(n){let s=t.router.getMatch(o);if(s){let i=te(t,o,r);if(i){let c=await i;t.updateMatch(o,a=>({...a,...c}))}s._nonReactive.loaderPromise=void 0}dt(t,s,n)}},Vn=async(t,o)=>{let{id:e,routeId:r}=t.matches[o],n=!1,s=!1,i=t.router.looseRoutesById[r];if(sr(t,e)){if(t.router.isServer){let f=te(t,e,i);if(f){let u=await f;t.updateMatch(e,l=>({...l,...u}))}return t.router.getMatch(e)}}else{let f=t.router.getMatch(e);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!t.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;let u=t.router.getMatch(e);u.error&&dt(t,u,u.error)}else{let u=Date.now()-f.updatedAt,l=Ce(t,e),h=l?i.options.preloadStaleTime??t.router.options.defaultPreloadStaleTime??3e4:i.options.staleTime??t.router.options.defaultStaleTime??0,d=i.options.shouldReload,p=typeof d=="function"?d(ar(t,e,o,i)):d,m=!!l&&!t.router.state.matches.some(S=>S.id===e),R=t.router.getMatch(e);R._nonReactive.loaderPromise=X(),m!==R.preload&&t.updateMatch(e,S=>({...S,preload:m}));let{status:v,invalid:w}=R;if(n=v==="success"&&(w||(p??u>h)),!(l&&i.options.preload===!1))if(n&&!t.sync)s=!0,(async()=>{try{await rr(t,e,o,i);let S=t.router.getMatch(e);S._nonReactive.loaderPromise?.resolve(),S._nonReactive.loadPromise?.resolve(),S._nonReactive.loaderPromise=void 0}catch(S){V(S)&&await t.router.navigate(S.options)}})();else if(v!=="success"||n&&t.sync)await rr(t,e,o,i);else{let S=te(t,e,i);if(S){let L=await S;t.updateMatch(e,I=>({...I,...L}))}}}}let c=t.router.getMatch(e);s||(c._nonReactive.loaderPromise?.resolve(),c._nonReactive.loadPromise?.resolve()),clearTimeout(c._nonReactive.pendingTimeout),c._nonReactive.pendingTimeout=void 0,s||(c._nonReactive.loaderPromise=void 0),c._nonReactive.dehydrated=void 0;let a=s?c.isFetching:!1;return a!==c.isFetching||c.invalid!==!1?(t.updateMatch(e,f=>({...f,isFetching:a,invalid:!1})),t.router.getMatch(e)):c};async function Qe(t){let o=Object.assign(t,{matchPromises:[]});!o.router.isServer&&o.router.state.matches.some(e=>e._forcePending)&&xe(o);try{for(let n=0;n<o.matches.length;n++){let s=Un(o,n);st(s)&&await s}let e=o.firstBadMatchIndex??o.matches.length;for(let n=0;n<e;n++)o.matchPromises.push(Vn(o,n));await Promise.all(o.matchPromises);let r=xe(o);st(r)&&await r}catch(e){if($(e)&&!o.preload){let r=xe(o);throw st(r)&&await r,e}if(V(e))throw e}return o.matches}async function to(t){if(!t._lazyLoaded&&t._lazyPromise===void 0&&(t.lazyFn?t._lazyPromise=t.lazyFn().then(o=>{let{id:e,...r}=o.options;Object.assign(t.options,r),t._lazyLoaded=!0,t._lazyPromise=void 0}):t._lazyLoaded=!0),!t._componentsLoaded&&t._componentsPromise===void 0){let o=()=>{let e=[];for(let r of oo){let n=t.options[r]?.preload;n&&e.push(n())}if(e.length)return Promise.all(e).then(()=>{t._componentsLoaded=!0,t._componentsPromise=void 0});t._componentsLoaded=!0,t._componentsPromise=void 0};t._componentsPromise=t._lazyPromise?t._lazyPromise.then(o):o()}return t._componentsPromise}function we(t,o){return o?{status:"error",error:o}:{status:"success",value:t}}function eo(t){for(let o of oo)if(t.options[o]?.preload)return!0;return!1}var oo=["component","errorComponent","pendingComponent","notFoundComponent"];function ro(t){return{input:({url:o})=>{for(let e of t)o=no(e,o);return o},output:({url:o})=>{for(let e=t.length-1;e>=0;e--)o=so(t[e],o);return o}}}function cr(t){let o=ht(t.basepath),e=`/${o}`,r=`${e}/`,n=t.caseSensitive?e:e.toLowerCase(),s=t.caseSensitive?r:r.toLowerCase();return{input:({url:i})=>{let c=t.caseSensitive?i.pathname:i.pathname.toLowerCase();return c===n?i.pathname="/":c.startsWith(s)&&(i.pathname=i.pathname.slice(e.length)),i},output:({url:i})=>(i.pathname=j(["/",o,i.pathname]),i)}}function no(t,o){let e=t?.input?.({url:o});if(e){if(typeof e=="string")return new URL(e);if(e instanceof URL)return e}return o}function so(t,o){let e=t?.output?.({url:o});if(e){if(typeof e=="string")return new URL(e);if(e instanceof URL)return e}return o}function tt(t){let o=t.resolvedLocation,e=t.location,r=o?.pathname!==e.pathname,n=o?.href!==e.href,s=o?.hash!==e.hash;return{fromLocation:o,toLocation:e,pathChanged:r,hrefChanged:n,hashChanged:s}}var ee=class{constructor(o){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=e=>e(),this.update=e=>{e.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");let r=this.options,n=this.basepath??r?.basepath??"/",s=this.basepath===void 0,i=r?.rewrite;this.options={...r,...e},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(h=>[encodeURIComponent(h),h])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=Yt())),this.origin=this.options.origin,this.origin||(!this.isServer&&window?.origin&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new qt(ao(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(h=>!["redirected"].includes(h.status))}}}),qe(this));let c=!1,a=this.options.basepath??"/",f=this.options.rewrite;if(s||n!==a||i!==f){this.basepath=a;let h=[];ht(a)!==""&&h.push(cr({basepath:a})),f&&h.push(f),this.rewrite=h.length===0?void 0:h.length===1?h[0]:ro(h),this.history&&this.updateLatestLocation(),c=!0}c&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof window.CSS?.supports=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{let{routesById:e,routesByPath:r,flatRoutes:n}=Jo({routeTree:this.routeTree,initRoute:(i,c)=>{i.init({originalIndex:c})}});this.routesById=e,this.routesByPath=r,this.flatRoutes=n;let s=this.options.notFoundRoute;s&&(s.init({originalIndex:99999999999}),this.routesById[s.id]=s)},this.subscribe=(e,r)=>{let n={eventType:e,fn:r};return this.subscribers.add(n),()=>{this.subscribers.delete(n)}},this.emit=e=>{this.subscribers.forEach(r=>{r.eventType===e.type&&r.fn(e)})},this.parseLocation=(e,r)=>{let n=({href:a,state:f})=>{let u=new URL(a,this.origin),l=no(this.rewrite,u),h=this.options.parseSearch(l.search),d=this.options.stringifySearch(h);l.search=d;let p=l.href.replace(l.origin,""),{pathname:m,hash:R}=l;return{href:p,publicHref:a,url:l.href,pathname:m,searchStr:d,search:D(r?.search,h),hash:R.split("#").reverse()[0]??"",state:D(r?.state,f)}},s=n(e),{__tempLocation:i,__tempKey:c}=s.state;if(i&&(!c||c===this.tempLocationKey)){let a=n(i);return a.state.key=s.state.key,a.state.__TSR_key=s.state.__TSR_key,delete a.state.__tempLocation,{...a,maskedLocation:s}}return s},this.resolvePathWithBase=(e,r)=>ye({base:e,to:Ot(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(e,r,n)=>typeof e=="string"?this.matchRoutesInternal({pathname:e,search:r},n):this.matchRoutesInternal(e,r),this.parsePathnameCache=or(1e3),this.getMatchedRoutes=(e,r)=>ur({pathname:e,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=e=>{let r=this.getMatch(e);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{this.state.pendingMatches?.forEach(e=>{this.cancelMatch(e.id)})},this.buildLocation=e=>{let r=(s={})=>{let i=s._fromLocation||this.latestLocation,c=this.matchRoutes(i,{_buildLocation:!0}),a=It(c);s.from;let f=s.unsafeRelative==="path"?i.pathname:s.from??a.fullPath,u=this.resolvePathWithBase(f,"."),l=a.search,h={...a.params},d=s.to?this.resolvePathWithBase(u,`${s.to}`):this.resolvePathWithBase(u,"."),p=s.params===!1||s.params===null?{}:(s.params??!0)===!0?h:Object.assign(h,G(s.params,h)),m=wt({path:d,params:p,parseCache:this.parsePathnameCache}).interpolatedPath,R=this.matchRoutes(m,void 0,{_buildLocation:!0}).map(_=>this.looseRoutesById[_.routeId]);if(Object.keys(p).length>0)for(let _ of R){let k=_.options.params?.stringify??_.options.stringifyParams;k&&Object.assign(p,k(p))}let v=Jt(wt({path:d,params:p,leaveWildcards:!1,leaveParams:e.leaveParams,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath),w=l;if(e._includeValidateSearch&&this.options.search?.strict){let _={};R.forEach(k=>{if(k.options.validateSearch)try{Object.assign(_,io(k.options.validateSearch,{..._,...w}))}catch{}}),w=_}w=Wn({search:w,dest:s,destRoutes:R,_includeValidateSearch:e._includeValidateSearch}),w=D(l,w);let S=this.options.stringifySearch(w),L=s.hash===!0?i.hash:s.hash?G(s.hash,i.hash):void 0,I=L?`#${L}`:"",M=s.state===!0?i.state:s.state?G(s.state,i.state):{};M=D(i.state,M);let y=`${v}${S}${I}`,g=new URL(y,this.origin),P=so(this.rewrite,g);return{publicHref:P.pathname+P.search+P.hash,href:y,url:P.href,pathname:v,search:w,searchStr:S,state:M,hash:L??"",unmaskOnReload:s.unmaskOnReload}},n=(s={},i)=>{let c=r(s),a=i?r(i):void 0;if(!a){let f={},u=this.options.routeMasks?.find(l=>{let h=At(c.pathname,{to:l.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return h?(f=h,!0):!1});if(u){let{from:l,...h}=u;i={from:e.from,...h,params:f},a=r(i)}}return a&&(c.maskedLocation=a),c};return e.mask?n(e,{from:e.from,...e.mask}):n(e)},this.commitLocation=({viewTransition:e,ignoreBlocker:r,...n})=>{let s=()=>{let a=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];a.forEach(u=>{n.state[u]=this.latestLocation.state[u]});let f=J(n.state,this.latestLocation.state);return a.forEach(u=>{delete n.state[u]}),f},i=H(this.latestLocation.href)===H(n.href),c=this.commitLocationPromise;if(this.commitLocationPromise=X(()=>{c?.resolve()}),i&&s())this.load();else{let{maskedLocation:a,hashScrollIntoView:f,...u}=n;a&&(u={...a,state:{...a.state,__tempKey:void 0,__tempLocation:{...u,search:u.searchStr,state:{...u.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(u.unmaskOnReload??this.options.unmaskOnReload??!1)&&(u.state.__tempKey=this.tempLocationKey)),u.state.__hashScrollIntoViewOptions=f??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=e,this.history[n.replace?"replace":"push"](u.publicHref,u.state,{ignoreBlocker:r})}return this.resetNextScroll=n.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:e,resetScroll:r,hashScrollIntoView:n,viewTransition:s,ignoreBlocker:i,href:c,...a}={})=>{if(c){let u=this.history.location.state.__TSR_index,l=St(c,{__TSR_index:e?u:u+1});a.to=l.pathname,a.search=this.options.parseSearch(l.search),a.hash=l.hash.slice(1)}let f=this.buildLocation({...a,_includeValidateSearch:!0});return this.commitLocation({...f,viewTransition:s,replace:e,resetScroll:r,hashScrollIntoView:n,ignoreBlocker:i})},this.navigate=({to:e,reloadDocument:r,href:n,...s})=>{if(!r&&n)try{new URL(`${n}`),r=!0}catch{}return r?(n||(n=this.buildLocation({to:e,...s}).url),s.replace?window.location.replace(n):window.location.href=n,Promise.resolve()):this.buildAndCommitLocation({...s,href:n,to:e,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){let r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),n=s=>{try{return encodeURI(decodeURI(s))}catch{return s}};if(ht(n(this.latestLocation.href))!==ht(n(r.href))){let s=r.url;throw this.origin&&s.startsWith(this.origin)&&(s=s.replace(this.origin,"")||"/"),xt({href:s})}}let e=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:e,cachedMatches:r.cachedMatches.filter(n=>!e.some(s=>s.id===n.id))}))},this.load=async e=>{let r,n,s;for(s=new Promise(c=>{this.startTransition(async()=>{try{this.beforeLoad();let a=this.latestLocation,f=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...tt({resolvedLocation:f,location:a})}),this.emit({type:"onBeforeLoad",...tt({resolvedLocation:f,location:a})}),await Qe({router:this,sync:e?.sync,matches:this.state.pendingMatches,location:a,updateMatch:this.updateMatch,onReady:async()=>{this.startViewTransition(async()=>{let u,l,h;ut(()=>{this.__store.setState(d=>{let p=d.matches,m=d.pendingMatches||d.matches;return u=p.filter(R=>!m.some(v=>v.id===R.id)),l=m.filter(R=>!p.some(v=>v.id===R.id)),h=p.filter(R=>m.some(v=>v.id===R.id)),{...d,isLoading:!1,loadedAt:Date.now(),matches:m,pendingMatches:void 0,cachedMatches:[...d.cachedMatches,...u.filter(R=>R.status!=="error")]}}),this.clearExpiredCache()}),[[u,"onLeave"],[l,"onEnter"],[h,"onStay"]].forEach(([d,p])=>{d.forEach(m=>{this.looseRoutesById[m.routeId].options[p]?.(m)})})})}})}catch(a){V(a)?(r=a,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):$(a)&&(n=a),this.__store.setState(f=>({...f,statusCode:r?r.status:n?404:f.matches.some(u=>u.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===s&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),c()})}),this.latestLoadPromise=s,await s;this.latestLoadPromise&&s!==this.latestLoadPromise;)await this.latestLoadPromise;let i;this.hasNotFoundMatch()?i=404:this.__store.state.matches.some(c=>c.status==="error")&&(i=500),i!==void 0&&this.__store.setState(c=>({...c,statusCode:i}))},this.startViewTransition=e=>{let r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let n;if(typeof r=="object"&&this.isViewTransitionTypesSupported){let s=this.latestLocation,i=this.state.resolvedLocation,c=typeof r.types=="function"?r.types(tt({resolvedLocation:i,location:s})):r.types;if(c===!1){e();return}n={update:e,types:c}}else n=e;document.startViewTransition(n)}else e()},this.updateMatch=(e,r)=>{let n=this.state.pendingMatches?.some(s=>s.id===e)?"pendingMatches":this.state.matches.some(s=>s.id===e)?"matches":this.state.cachedMatches.some(s=>s.id===e)?"cachedMatches":"";n&&this.__store.setState(s=>({...s,[n]:s[n]?.map(i=>i.id===e?r(i):i)}))},this.getMatch=e=>{let r=n=>n.id===e;return this.state.cachedMatches.find(r)??this.state.pendingMatches?.find(r)??this.state.matches.find(r)},this.invalidate=e=>{let r=n=>e?.filter?.(n)??!0?{...n,invalid:!0,...e?.forcePending||n.status==="error"?{status:"pending",error:void 0}:void 0}:n;return this.__store.setState(n=>({...n,matches:n.matches.map(r),cachedMatches:n.cachedMatches.map(r),pendingMatches:n.pendingMatches?.map(r)})),this.shouldViewTransition=!1,this.load({sync:e?.sync})},this.resolveRedirect=e=>{if(!e.options.href){let r=this.buildLocation(e.options),n=r.url;this.origin&&n.startsWith(this.origin)&&(n=n.replace(this.origin,"")||"/"),e.options.href=r.href,e.headers.set("Location",n)}return e.headers.get("Location")||e.headers.set("Location",e.options.href),e},this.clearCache=e=>{let r=e?.filter;r!==void 0?this.__store.setState(n=>({...n,cachedMatches:n.cachedMatches.filter(s=>!r(s))})):this.__store.setState(n=>({...n,cachedMatches:[]}))},this.clearExpiredCache=()=>{let e=r=>{let n=this.looseRoutesById[r.routeId];if(!n.options.loader)return!0;let s=(r.preload?n.options.preloadGcTime??this.options.defaultPreloadGcTime:n.options.gcTime??this.options.defaultGcTime)??300*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=s};this.clearCache({filter:e})},this.loadRouteChunk=to,this.preloadRoute=async e=>{let r=this.buildLocation(e),n=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:e}),s=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(c=>c.id)),i=new Set([...s,...this.state.cachedMatches.map(c=>c.id)]);ut(()=>{n.forEach(c=>{i.has(c.id)||this.__store.setState(a=>({...a,cachedMatches:[...a.cachedMatches,c]}))})});try{return n=await Qe({router:this,matches:n,location:r,preload:!0,updateMatch:(c,a)=>{s.has(c)?n=n.map(f=>f.id===c?a(f):f):this.updateMatch(c,a)}}),n}catch(c){if(V(c))return c.options.reloadDocument?void 0:await this.preloadRoute({...c.options,_fromLocation:r});$(c)||console.error(c);return}},this.matchRoute=(e,r)=>{let n={...e,to:e.to?this.resolvePathWithBase(e.from||"",e.to):void 0,params:e.params||{},leaveParams:!0},s=this.buildLocation(n);if(r?.pending&&this.state.status!=="pending")return!1;let c=(r?.pending===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,a=At(c.pathname,{...r,to:s.pathname},this.parsePathnameCache);return!a||e.params&&!J(a,e.params,{partial:!0})?!1:a&&(r?.includeSearch??!0)?J(c.search,s.search,{partial:!0})?a:!1:a},this.hasNotFoundMatch=()=>this.__store.state.matches.some(e=>e.status==="notFound"||e.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...o,caseSensitive:o.caseSensitive??!1,notFoundMode:o.notFoundMode??"fuzzy",stringifySearch:o.stringifySearch??Ze,parseSearch:o.parseSearch??Xe}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(o,e){let{foundRoute:r,matchedRoutes:n,routeParams:s}=this.getMatchedRoutes(o.pathname,e?.dest?.to),i=!1;(r?r.path!=="/"&&s["**"]:H(o.pathname))&&(this.options.notFoundRoute?n.push(this.options.notFoundRoute):i=!0);let c=(()=>{if(i){if(this.options.notFoundMode!=="root")for(let u=n.length-1;u>=0;u--){let l=n[u];if(l.children)return l.id}return O}})(),a=[],f=u=>u?.id?u.context??this.options.context??void 0:this.options.context??void 0;return n.forEach((u,l)=>{let h=a[l-1],[d,p,m]=(()=>{let F=h?.search??o.search,rt=h?._strictSearch??void 0;try{let q=io(u.options.validateSearch,{...F})??void 0;return[{...F,...q},{...rt,...q},void 0]}catch(q){let vt=q;if(q instanceof pt||(vt=new pt(q.message,{cause:q})),e?.throwOnError)throw vt;return[F,{},vt]}})(),R=u.options.loaderDeps?.({search:d})??"",v=R?JSON.stringify(R):"",{interpolatedPath:w,usedParams:S}=wt({path:u.fullPath,params:s,decodeCharMap:this.pathParamsDecodeCharMap}),L=wt({path:u.id,params:s,leaveWildcards:!0,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath+v,I=this.getMatch(L),M=this.state.matches.find(F=>F.routeId===u.id),y=I?._strictParams??S,g;if(!I){let F=u.options.params?.parse??u.options.parseParams;if(F)try{Object.assign(y,F(y))}catch(rt){if(g=new oe(rt.message,{cause:rt}),e?.throwOnError)throw g}}Object.assign(s,y);let P=M?"stay":"enter",_;if(I)_={...I,cause:P,params:M?D(M.params,s):s,_strictParams:y,search:M?D(M.search,d):D(I.search,d),_strictSearch:p};else{let F=u.options.loader||u.options.beforeLoad||u.lazyFn||eo(u)?"pending":"success";_={id:L,index:l,routeId:u.id,params:M?D(M.params,s):s,_strictParams:y,pathname:w,updatedAt:Date.now(),search:M?D(M.search,d):d,_strictSearch:p,searchError:void 0,status:F,isFetching:!1,error:void 0,paramsError:g,__routeContext:void 0,_nonReactive:{loadPromise:X()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:P,loaderDeps:M?D(M.loaderDeps,R):R,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:u.options.staticData||{},fullPath:u.fullPath}}e?.preload||(_.globalNotFound=c===u.id),_.searchError=m;let k=f(h);_.context={...k,..._.__routeContext,..._.__beforeLoadContext},a.push(_)}),a.forEach((u,l)=>{let h=this.looseRoutesById[u.routeId];if(!this.getMatch(u.id)&&e?._buildLocation!==!0){let p=a[l-1],m=f(p);if(h.options.context){let R={deps:u.loaderDeps,params:u.params,context:m??{},location:o,navigate:v=>this.navigate({...v,_fromLocation:o}),buildLocation:this.buildLocation,cause:u.cause,abortController:u.abortController,preload:!!u.preload,matches:a};u.__routeContext=h.options.context(R)??void 0}u.context={...m,...u.__routeContext,...u.__beforeLoadContext}}}),a}},pt=class extends Error{},oe=class extends Error{};function ao(t){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:t,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function io(t,o){if(t==null)return{};if("~standard"in t){let e=t["~standard"].validate(o);if(e instanceof Promise)throw new pt("Async validation not supported");if(e.issues)throw new pt(JSON.stringify(e.issues,void 0,2),{cause:e});return e.value}return"parse"in t?t.parse(o):typeof t=="function"?t(o):{}}function ur({pathname:t,routePathname:o,caseSensitive:e,routesByPath:r,routesById:n,flatRoutes:s,parseCache:i}){let c={},a=H(t),f=d=>At(a,{to:d.fullPath,caseSensitive:d.options?.caseSensitive??e,fuzzy:!0},i),u=o!==void 0?r[o]:void 0;if(u)c=f(u);else{let d;for(let p of s){let m=f(p);if(m)if(p.path!=="/"&&m["**"])d||(d={foundRoute:p,routeParams:m});else{u=p,c=m;break}}!u&&d&&(u=d.foundRoute,c=d.routeParams)}let l=u||n[O],h=[l];for(;l.parentRoute;)l=l.parentRoute,h.push(l);return h.reverse(),{matchedRoutes:h,routeParams:c,foundRoute:u}}function Wn({search:t,dest:o,destRoutes:e,_includeValidateSearch:r}){let n=e.reduce((c,a)=>{let f=[];if("search"in a.options)a.options.search?.middlewares&&f.push(...a.options.search.middlewares);else if(a.options.preSearchFilters||a.options.postSearchFilters){let u=({search:l,next:h})=>{let d=l;"preSearchFilters"in a.options&&a.options.preSearchFilters&&(d=a.options.preSearchFilters.reduce((m,R)=>R(m),l));let p=h(d);return"postSearchFilters"in a.options&&a.options.postSearchFilters?a.options.postSearchFilters.reduce((m,R)=>R(m),p):p};f.push(u)}if(r&&a.options.validateSearch){let u=({search:l,next:h})=>{let d=h(l);try{return{...d,...io(a.options.validateSearch,d)??void 0}}catch{return d}};f.push(u)}return c.concat(f)},[])??[],s=({search:c})=>o.search?o.search===!0?c:G(o.search,c):{};n.push(s);let i=(c,a)=>{if(c>=n.length)return a;let f=n[c];return f({search:a,next:l=>i(c+1,l)})};return i(0,t)}var co="Error preloading route! \u261D\uFE0F";var $t=class{constructor(o){if(this.init=e=>{this.originalIndex=e.originalIndex;let r=this.options,n=!r?.path&&!r?.id;this.parentRoute=this.options.getParentRoute?.(),n?this._path=O:this.parentRoute||z(!1,"Child Route instances must pass a 'getParentRoute: () => ParentRoute' option that returns a Route instance.");let s=n?O:r?.path;s&&s!=="/"&&(s=_t(s));let i=r?.id||s,c=n?O:j([this.parentRoute.id===O?"":this.parentRoute.id,i]);s===O&&(s="/"),c!==O&&(c=j(["/",c]));let a=c===O?"/":j([this.parentRoute.fullPath,s]);this._path=s,this._id=c,this._fullPath=a,this._to=a},this.clone=e=>{this._path=e._path,this._id=e._id,this._fullPath=e._fullPath,this._to=e._to,this.options.getParentRoute=e.options.getParentRoute,this.children=e.children},this.addChildren=e=>this._addFileChildren(e),this._addFileChildren=e=>(Array.isArray(e)&&(this.children=e),typeof e=="object"&&e!==null&&(this.children=Object.values(e)),this),this._addFileTypes=()=>this,this.updateLoader=e=>(Object.assign(this.options,e),this),this.update=e=>(Object.assign(this.options,e),this),this.lazy=e=>(this.lazyFn=e,this),this.options=o||{},this.isRoot=!o?.getParentRoute,o?.id&&o?.path)throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}};var re=class extends $t{constructor(o){super(o)}};var Q=x(K(),1),Bt=x(B(),1);function Dt(t){let o=t.errorComponent??Ut;return(0,Q.jsx)(uo,{getResetKey:t.getResetKey,onCatch:t.onCatch,children:({error:e,reset:r})=>e?Bt.createElement(o,{error:e,reset:r}):t.children})}var uo=class extends Bt.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(o){return{resetKey:o.getResetKey()}}static getDerivedStateFromError(o){return{error:o}}reset(){this.setState({error:null})}componentDidUpdate(o,e){e.error&&e.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(o,e){this.props.onCatch&&this.props.onCatch(o,e)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}};function Ut({error:t}){let[o,e]=Bt.useState(!1);return(0,Q.jsxs)("div",{style:{padding:".5rem",maxWidth:"100%"},children:[(0,Q.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[(0,Q.jsx)("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),(0,Q.jsx)("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>e(r=>!r),children:o?"Hide Error":"Show Error"})]}),(0,Q.jsx)("div",{style:{height:".25rem"}}),o?(0,Q.jsx)("div",{children:(0,Q.jsx)("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:t.message?(0,Q.jsx)("code",{children:t.message}):null})}):null]})}var lo=x(K(),1),Le=x(B(),1);function hr({children:t,fallback:o=null}){return Kn()?(0,lo.jsx)(Le.default.Fragment,{children:t}):(0,lo.jsx)(Le.default.Fragment,{children:o})}function Kn(){return Le.default.useSyncExternalStore(Gn,()=>!0,()=>!1)}function Gn(){return()=>{}}var qn=!0;function Yn(t,o){if(!qn){if(t)return;var e="Warning: "+o;typeof console<"u"&&console.warn(e);try{throw Error(e)}catch{}}}var at=Yn;var vo=x(K(),1);var yo=x(B(),1);var Er=x(B(),1);var _r=x(Sr(),1);function wr(t,o=r=>r,e={}){let r=e.equal??ds;return(0,_r.useSyncExternalStoreWithSelector)(t.subscribe,()=>t.state,()=>t.state,o,r)}function ds(t,o){if(Object.is(t,o))return!0;if(typeof t!="object"||t===null||typeof o!="object"||o===null)return!1;if(t instanceof Map&&o instanceof Map){if(t.size!==o.size)return!1;for(let[r,n]of t)if(!o.has(r)||!Object.is(n,o.get(r)))return!1;return!0}if(t instanceof Set&&o instanceof Set){if(t.size!==o.size)return!1;for(let r of t)if(!o.has(r))return!1;return!0}if(t instanceof Date&&o instanceof Date)return t.getTime()===o.getTime();let e=Pr(t);if(e.length!==Pr(o).length)return!1;for(let r=0;r<e.length;r++)if(!Object.prototype.hasOwnProperty.call(o,e[r])||!Object.is(t[e[r]],o[e[r]]))return!1;return!0}function Pr(t){return Object.keys(t).concat(Object.getOwnPropertySymbols(t))}var Lr=x(B(),1);var Cr=x(B(),1);var xr=x(B(),1),ho=xr.createContext(null);function Ee(){return typeof document>"u"?ho:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=ho,ho)}function E(t){let o=Cr.useContext(Ee());return at(!((t?.warn??!0)&&!o),"useRouter must be used inside a <RouterProvider> component!"),o}function C(t){let o=E({warn:t?.router===void 0}),e=t?.router||o,r=(0,Lr.useRef)(void 0);return wr(e.__store,n=>{if(t?.select){if(t.structuralSharing??e.options.defaultStructuralSharing){let s=D(r.current,t.select(n));return r.current=s,s}return t.select(n)}return n})}var po=x(B(),1),Ct=po.createContext(void 0),Mr=po.createContext(void 0);function U(t){let o=Er.useContext(t.from?Mr:Ct);return C({select:r=>{let n=r.matches.find(s=>t.from?t.from===s.routeId:s.id===o);if(z(!((t.shouldThrow??!0)&&!n),`Could not find ${t.from?`an active match from "${t.from}"`:"a nearest match!"}`),n!==void 0)return t.select?t.select(n):n},structuralSharing:t.structuralSharing})}function mt(t){return U({from:t.from,strict:t.strict,structuralSharing:t.structuralSharing,select:o=>t.select?t.select(o.loaderData):o.loaderData})}function ne(t){let{select:o,...e}=t;return U({...e,select:r=>o?o(r.loaderDeps):r.loaderDeps})}function Lt(t){return U({from:t.from,shouldThrow:t.shouldThrow,structuralSharing:t.structuralSharing,strict:t.strict,select:o=>{let e=t.strict===!1?o.params:o._strictParams;return t.select?t.select(e):e}})}function Mt(t){return U({from:t.from,strict:t.strict,shouldThrow:t.shouldThrow,structuralSharing:t.structuralSharing,select:o=>t.select?t.select(o.search):o.search})}var be=x(B(),1);function Et(t){let o=E();return be.useCallback(e=>o.navigate({...e,from:e.from??t?.from}),[t?.from,o])}var Fr=x(K(),1),A=x(B(),1),Or=x(Tr(),1);var et=x(B(),1);var se=typeof window<"u"?et.useLayoutEffect:et.useEffect;function Te(t){let o=et.useRef({value:t,prev:null}),e=o.current.value;return t!==e&&(o.current={value:t,prev:e}),o.current.prev}function Ir(t,o,e={},r={}){et.useEffect(()=>{if(!t.current||r.disabled||typeof IntersectionObserver!="function")return;let n=new IntersectionObserver(([s])=>{o(s)},e);return n.observe(t.current),()=>{n.disconnect()}},[o,e,r.disabled,t])}function kr(t){let o=et.useRef(null);return et.useImperativeHandle(t,()=>o.current,[]),o}function go(t,o){let e=E(),[r,n]=A.useState(!1),s=A.useRef(!1),i=kr(o),{activeProps:c,inactiveProps:a,activeOptions:f,to:u,preload:l,preloadDelay:h,hashScrollIntoView:d,replace:p,startTransition:m,resetScroll:R,viewTransition:v,children:w,target:S,disabled:L,style:I,className:M,onClick:y,onFocus:g,onMouseEnter:P,onMouseLeave:_,onTouchStart:k,ignoreBlocker:F,params:rt,search:q,hash:vt,state:To,mask:Yr,reloadDocument:_s,unsafeRelative:ws,from:xs,_fromLocation:Cs,...Io}=t,Jr=C({select:b=>b.location.search,structuralSharing:!0}),ko=t.from,jt=A.useMemo(()=>({...t,from:ko}),[e,Jr,ko,t._fromLocation,t.hash,t.to,t.search,t.params,t.state,t.mask,t.unsafeRelative]),nt=A.useMemo(()=>e.buildLocation({...jt}),[e,jt]),fe=A.useMemo(()=>{if(L)return;let b=nt.maskedLocation?nt.maskedLocation.url:nt.url,N=!1;return e.origin&&(b.startsWith(e.origin)?b=e.history.createHref(b.replace(e.origin,""))||"/":N=!0),{href:b,external:N}},[L,nt.maskedLocation,nt.url,e.origin,e.history]),he=A.useMemo(()=>{if(fe?.external)return fe.href;try{return new URL(u),u}catch{}},[u,fe]),bt=t.reloadDocument||he?!1:l??e.options.defaultPreload,Ve=h??e.options.defaultPreloadDelay??0,We=C({select:b=>{if(he)return!1;if(f?.exact){if(!Ke(b.location.pathname,nt.pathname,e.basepath))return!1}else{let N=Ft(b.location.pathname,e.basepath),Y=Ft(nt.pathname,e.basepath);if(!(N.startsWith(Y)&&(N.length===Y.length||N[Y.length]==="/")))return!1}return(f?.includeSearch??!0)&&!J(b.location.search,nt.search,{partial:!f?.exact,ignoreUndefined:!f?.explicitUndefined})?!1:f?.includeHash?b.location.hash===nt.hash:!0}}),yt=A.useCallback(()=>{e.preloadRoute({...jt}).catch(b=>{console.warn(b),console.warn(co)})},[e,jt]),Xr=A.useCallback(b=>{b?.isIntersecting&&yt()},[yt]);Ir(i,Xr,vs,{disabled:!!L||bt!=="viewport"}),A.useEffect(()=>{s.current||!L&&bt==="render"&&(yt(),s.current=!0)},[L,yt,bt]);let Zr=b=>{let N=b.currentTarget.getAttribute("target"),Y=S!==void 0?S:N;if(!L&&!ys(b)&&!b.defaultPrevented&&(!Y||Y==="_self")&&b.button===0){b.preventDefault(),(0,Or.flushSync)(()=>{n(!0)});let No=e.subscribe("onResolved",()=>{No(),n(!1)});e.navigate({...jt,replace:p,resetScroll:R,hashScrollIntoView:d,startTransition:m,viewTransition:v,ignoreBlocker:F})}};if(he)return{...Io,ref:i,href:he,...w&&{children:w},...S&&{target:S},...L&&{disabled:L},...I&&{style:I},...M&&{className:M},...y&&{onClick:y},...g&&{onFocus:g},...P&&{onMouseEnter:P},..._&&{onMouseLeave:_},...k&&{onTouchStart:k}};let Fo=b=>{L||bt&&yt()},Qr=Fo,tn=b=>{if(!(L||!bt))if(!Ve)yt();else{let N=b.target;if(ie.has(N))return;let Y=setTimeout(()=>{ie.delete(N),yt()},Ve);ie.set(N,Y)}},en=b=>{if(L||!bt||!Ve)return;let N=b.target,Y=ie.get(N);Y&&(clearTimeout(Y),ie.delete(N))},de=We?G(c,{})??ps:mo,pe=We?mo:G(a,{})??mo,Oo=[M,de.className,pe.className].filter(Boolean).join(" "),Ao=(I||de.style||pe.style)&&{...I,...de.style,...pe.style};return{...Io,...de,...pe,href:fe?.href,ref:i,onClick:ae([y,Zr]),onFocus:ae([g,Fo]),onMouseEnter:ae([P,tn]),onMouseLeave:ae([_,en]),onTouchStart:ae([k,Qr]),disabled:!!L,target:S,...Ao&&{style:Ao},...Oo&&{className:Oo},...L&&ms,...We&&gs,...r&&Rs}}var mo={},ps={className:"active"},ms={role:"link","aria-disabled":!0},gs={"data-status":"active","aria-current":"page"},Rs={"data-transitioning":"transitioning"},ie=new WeakMap,vs={rootMargin:"100px"},ae=t=>o=>{for(let e of t)if(e){if(o.defaultPrevented)return;e(o)}};function Ro(t){return A.forwardRef(function(e,r){return(0,Fr.jsx)(Wt,{...e,_asChild:t,ref:r})})}var Wt=A.forwardRef((t,o)=>{let{_asChild:e,...r}=t,{type:n,ref:s,...i}=go(r,o),c=typeof r.children=="function"?r.children({isActive:i["data-status"]==="active"}):r.children;return e===void 0&&delete i.disabled,A.createElement(e||"a",{...i,ref:s},c)});function ys(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}var Ie=class extends $t{constructor(o){super(o),this.useMatch=e=>U({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>U({...e,from:this.id,select:r=>e?.select?e.select(r.context):r.context}),this.useSearch=e=>Mt({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>Lt({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>ne({...e,from:this.id}),this.useLoaderData=e=>mt({...e,from:this.id}),this.useNavigate=()=>Et({from:this.fullPath}),this.Link=yo.default.forwardRef((e,r)=>(0,vo.jsx)(Wt,{ref:r,from:this.fullPath,...e})),this.$$typeof=Symbol.for("react.memo")}};function ce(t){return new Ie(t)}var ke=class extends re{constructor(o){super(o),this.useMatch=e=>U({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>U({...e,from:this.id,select:r=>e?.select?e.select(r.context):r.context}),this.useSearch=e=>Mt({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>Lt({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>ne({...e,from:this.id}),this.useLoaderData=e=>mt({...e,from:this.id}),this.useNavigate=()=>Et({from:this.fullPath}),this.Link=yo.default.forwardRef((e,r)=>(0,vo.jsx)(Wt,{ref:r,from:this.fullPath,...e})),this.$$typeof=Symbol.for("react.memo")}};function So(t){return new ke(t)}function Fe(t){return typeof t=="object"?new ue(t,{silent:!0}).createRoute(t):new ue(t,{silent:!0}).createRoute}var ue=class{constructor(o,e){this.path=o,this.createRoute=r=>{at(this.silent,"FileRoute is deprecated and will be removed in the next major version. Use the createFileRoute(path)(options) function instead.");let n=ce(r);return n.isRoot=!1,n},this.silent=e?.silent}};var zt=class{constructor(o){this.useMatch=e=>U({select:e?.select,from:this.options.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>U({from:this.options.id,select:r=>e?.select?e.select(r.context):r.context}),this.useSearch=e=>Mt({select:e?.select,structuralSharing:e?.structuralSharing,from:this.options.id}),this.useParams=e=>Lt({select:e?.select,structuralSharing:e?.structuralSharing,from:this.options.id}),this.useLoaderDeps=e=>ne({...e,from:this.options.id}),this.useLoaderData=e=>mt({...e,from:this.options.id}),this.useNavigate=()=>{let e=E();return Et({from:e.routesById[this.options.id].fullPath})},this.options=o,this.$$typeof=Symbol.for("react.memo")}};function Po(t){return o=>new zt({id:t,...o})}function Oe(t){return typeof t=="object"?new zt(t):o=>new zt({id:t,...o})}var ot=x(K(),1),De=x(B(),1);var gt=x(B(),1);function Ar(){let t=E(),o=gt.useRef({router:t,mounted:!1}),[e,r]=gt.useState(!1),{hasPendingMatches:n,isLoading:s}=C({select:l=>({isLoading:l.isLoading,hasPendingMatches:l.matches.some(h=>h.status==="pending")}),structuralSharing:!0}),i=Te(s),c=s||e||n,a=Te(c),f=s||n,u=Te(f);return t.startTransition=l=>{r(!0),gt.startTransition(()=>{l(),r(!1)})},gt.useEffect(()=>{let l=t.history.subscribe(t.load),h=t.buildLocation({to:t.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return H(t.latestLocation.href)!==H(h.href)&&t.commitLocation({...h,replace:!0}),()=>{l()}},[t,t.history]),se(()=>{if(typeof window<"u"&&t.ssr||o.current.router===t&&o.current.mounted)return;o.current={router:t,mounted:!0},(async()=>{try{await t.load()}catch(h){console.error(h)}})()},[t]),se(()=>{i&&!s&&t.emit({type:"onLoad",...tt(t.state)})},[i,t,s]),se(()=>{u&&!f&&t.emit({type:"onBeforeRouteMount",...tt(t.state)})},[f,u,t]),se(()=>{a&&!c&&(t.emit({type:"onResolved",...tt(t.state)}),t.__store.setState(l=>({...l,status:"idle",resolvedLocation:l.location})),Ye(t))},[c,a,t]),null}var T=x(K(),1),W=x(B(),1);var _o=x(K(),1);function Nr(t){let o=C({select:e=>`not-found-${e.location.pathname}-${e.status}`});return(0,_o.jsx)(Dt,{getResetKey:()=>o,onCatch:(e,r)=>{if($(e))t.onCatch?.(e,r);else throw e},errorComponent:({error:e})=>{if($(e))return t.fallback?.(e);throw e},children:t.children})}function $r(){return(0,_o.jsx)("p",{children:"Not Found"})}var Ae=x(K(),1);function Rt(t){return(0,Ae.jsx)(Ae.Fragment,{children:t.children})}var Ne=x(K(),1);function wo(t,o,e){return o.options.notFoundComponent?(0,Ne.jsx)(o.options.notFoundComponent,{data:e}):t.options.defaultNotFoundComponent?(0,Ne.jsx)(t.options.defaultNotFoundComponent,{data:e}):(0,Ne.jsx)($r,{})}var Ur=x(K(),1);var Br=x(K(),1);function Dr({children:t}){let o=E();return o.isServer?(0,Br.jsx)("script",{nonce:o.options.ssr?.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[t].filter(Boolean).join(` `)+";$_TSR.c()"}}):null}function Vr(){let t=E();if(!t.isScrollRestoring||!t.isServer||typeof t.options.scrollRestoration=="function"&&!t.options.scrollRestoration({location:t.latestLocation}))return null;let e=(t.options.getScrollRestorationKey||Zt)(t.latestLocation),r=e!==Zt(t.latestLocation)?e:void 0,n={storageKey:Nt,shouldScrollRestoration:!0};return r&&(n.key=r),(0,Ur.jsx)(Dr,{children:`(${_e.toString()})(${JSON.stringify(n)})`})}var $e=W.memo(function({matchId:o}){let e=E(),r=C({select:v=>{let w=v.matches.find(S=>S.id===o);return z(w,`Could not find match for matchId "${o}". Please file an issue!`),{routeId:w.routeId,ssr:w.ssr,_displayPending:w._displayPending}},structuralSharing:!0}),n=e.routesById[r.routeId],s=n.options.pendingComponent??e.options.defaultPendingComponent,i=s?(0,T.jsx)(s,{}):null,c=n.options.errorComponent??e.options.defaultErrorComponent,a=n.options.onCatch??e.options.defaultOnCatch,f=n.isRoot?n.options.notFoundComponent??e.options.notFoundRoute?.options.component:n.options.notFoundComponent,u=r.ssr===!1||r.ssr==="data-only",l=(!n.isRoot||n.options.wrapInSuspense||u)&&(n.options.wrapInSuspense??s??(n.options.errorComponent?.preload||u))?W.Suspense:Rt,h=c?Dt:Rt,d=f?Nr:Rt,p=C({select:v=>v.loadedAt}),m=C({select:v=>{let w=v.matches.findIndex(S=>S.id===o);return v.matches[w-1]?.routeId}}),R=n.isRoot?n.options.shellComponent??Rt:Rt;return(0,T.jsxs)(R,{children:[(0,T.jsx)(Ct.Provider,{value:o,children:(0,T.jsx)(l,{fallback:i,children:(0,T.jsx)(h,{getResetKey:()=>p,errorComponent:c||Ut,onCatch:(v,w)=>{if($(v))throw v;at(!1,`Error in route match: ${o}`),a?.(v,w)},children:(0,T.jsx)(d,{fallback:v=>{if(!f||v.routeId&&v.routeId!==r.routeId||!v.routeId&&!n.isRoot)throw v;return W.createElement(f,v)},children:u||r._displayPending?(0,T.jsx)(hr,{fallback:i,children:(0,T.jsx)(Wr,{matchId:o})}):(0,T.jsx)(Wr,{matchId:o})})})})}),m===O&&e.options.scrollRestoration?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(Ss,{}),(0,T.jsx)(Vr,{})]}):null]})});function Ss(){let t=E(),o=W.useRef(void 0);return(0,T.jsx)("script",{suppressHydrationWarning:!0,ref:e=>{e&&(o.current===void 0||o.current.href!==t.latestLocation.href)&&(t.emit({type:"onRendered",...tt(t.state)}),o.current=t.latestLocation)}},t.latestLocation.state.__TSR_key)}var Wr=W.memo(function({matchId:o}){let e=E(),{match:r,key:n,routeId:s}=C({select:a=>{let f=a.matches.find(p=>p.id===o),u=f.routeId,h=(e.routesById[u].options.remountDeps??e.options.defaultRemountDeps)?.({routeId:u,loaderDeps:f.loaderDeps,params:f._strictParams,search:f._strictSearch});return{key:h?JSON.stringify(h):void 0,routeId:u,match:{id:f.id,status:f.status,error:f.error,_forcePending:f._forcePending,_displayPending:f._displayPending}}},structuralSharing:!0}),i=e.routesById[s],c=W.useMemo(()=>{let a=i.options.component??e.options.defaultComponent;return a?(0,T.jsx)(a,{},n):(0,T.jsx)(Be,{})},[n,i.options.component,e.options.defaultComponent]);if(r._displayPending)throw e.getMatch(r.id)?._nonReactive.displayPendingPromise;if(r._forcePending)throw e.getMatch(r.id)?._nonReactive.minPendingPromise;if(r.status==="pending"){let a=i.options.pendingMinMs??e.options.defaultPendingMinMs;if(a){let f=e.getMatch(r.id);if(f&&!f._nonReactive.minPendingPromise&&!e.isServer){let u=X();f._nonReactive.minPendingPromise=u,setTimeout(()=>{u.resolve(),f._nonReactive.minPendingPromise=void 0},a)}}throw e.getMatch(r.id)?._nonReactive.loadPromise}if(r.status==="notFound")return z($(r.error),"Expected a notFound error"),wo(e,i,r.error);if(r.status==="redirected")throw z(V(r.error),"Expected a redirect error"),e.getMatch(r.id)?._nonReactive.loadPromise;if(r.status==="error"){if(e.isServer){let a=(i.options.errorComponent??e.options.defaultErrorComponent)||Ut;return(0,T.jsx)(a,{error:r.error,reset:void 0,info:{componentStack:""}})}throw r.error}return c}),Be=W.memo(function(){let o=E(),e=W.useContext(Ct),r=C({select:f=>f.matches.find(u=>u.id===e)?.routeId}),n=o.routesById[r],s=C({select:f=>{let l=f.matches.find(h=>h.id===e);return z(l,`Could not find parent match for matchId "${e}"`),l.globalNotFound}}),i=C({select:f=>{let u=f.matches,l=u.findIndex(h=>h.id===e);return u[l+1]?.id}}),c=o.options.defaultPendingComponent?(0,T.jsx)(o.options.defaultPendingComponent,{}):null;if(s)return wo(o,n,void 0);if(!i)return null;let a=(0,T.jsx)($e,{matchId:i});return e===O?(0,T.jsx)(W.Suspense,{fallback:c,children:a}):a});function xo(){let t=E(),e=t.routesById[O].options.pendingComponent??t.options.defaultPendingComponent,r=e?(0,ot.jsx)(e,{}):null,n=t.isServer||typeof document<"u"&&t.ssr?Rt:De.Suspense,s=(0,ot.jsxs)(n,{fallback:r,children:[!t.isServer&&(0,ot.jsx)(Ar,{}),(0,ot.jsx)(Ps,{})]});return t.options.InnerWrap?(0,ot.jsx)(t.options.InnerWrap,{children:s}):s}function Ps(){let t=E(),o=C({select:n=>n.matches[0]?.id}),e=C({select:n=>n.loadedAt}),r=o?(0,ot.jsx)($e,{matchId:o}):null;return(0,ot.jsx)(Ct.Provider,{value:o,children:t.options.disableGlobalCatchBoundary?r:(0,ot.jsx)(Dt,{getResetKey:()=>e,errorComponent:Ut,onCatch:n=>{at(!1,"The following error wasn't caught by any route! At the very least, consider setting an 'errorComponent' in your RootRoute!"),at(!1,n.message||n.toString())},children:r})})}function Co(t){return C({select:o=>{let e=o.matches;return t?.select?t.select(e):e},structuralSharing:t?.structuralSharing})}var Lo=t=>new Ue(t),Ue=class extends ee{constructor(o){super(o)}};typeof globalThis<"u"?(globalThis.createFileRoute=Fe,globalThis.createLazyFileRoute=Oe):typeof window<"u"&&(window.createFileRoute=Fe,window.createLazyFileRoute=Oe);var le=x(K(),1);function zr({router:t,children:o,...e}){Object.keys(e).length>0&&t.update({...t.options,...e,context:{...t.options.context,...e.context}});let r=Ee(),n=(0,le.jsx)(r.Provider,{value:t,children:o});return t.options.Wrap?(0,le.jsx)(t.options.Wrap,{children:n}):n}function Mo({router:t,...o}){return(0,le.jsx)(zr,{router:t,...o,children:(0,le.jsx)(xo,{})})}function Eo(t){return C({select:o=>t?.select?t.select(o.location):o.location})}function bo(){return C({select:t=>t.location.state.__TSR_index!==0})}var Kr=x(Hr(),1),{lock:Gr,unlock:Iu}=(0,Kr.__dangerousOptInToUnstableAPIsOnlyForCoreModules)("I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.","@wordpress/route");var qr={};Gr(qr,{createBrowserHistory:Yt,createLazyRoute:Po,createRouter:Lo,createRootRoute:So,createRoute:ce,Outlet:Be,RouterProvider:Mo,redirect:xt,createLink:Ro,useCanGoBack:bo,useLoaderData:mt,useLocation:Eo,useMatches:Co,useRouter:E,useRouterState:C,parseHref:St});function Uu(){let t=E();return()=>t.invalidate()}export{Wt as Link,Se as notFound,qr as privateApis,xt as redirect,Uu as useInvalidate,go as useLinkProps,Et as useNavigate,Lt as useParams,Mt as useSearch}; /*! Bundled license information: use-sync-external-store/cjs/use-sync-external-store-shim.production.js: (** * @license React * use-sync-external-store-shim.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js: (** * @license React * use-sync-external-store-shim/with-selector.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) */ route/index.js 0000644 00000542626 15206736335 0007400 0 ustar 00 var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // vendor-external:react/jsx-runtime var require_jsx_runtime = __commonJS({ "vendor-external:react/jsx-runtime"(exports, module) { module.exports = window.ReactJSXRuntime; } }); // vendor-external:react var require_react = __commonJS({ "vendor-external:react"(exports, module) { module.exports = window.React; } }); // node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js var require_use_sync_external_store_shim_development = __commonJS({ "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js"(exports) { "use strict"; (function() { function is(x, y) { return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y; } function useSyncExternalStore$2(subscribe2, getSnapshot) { didWarnOld18Alpha || void 0 === React12.startTransition || (didWarnOld18Alpha = true, console.error( "You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release." )); var value = getSnapshot(); if (!didWarnUncachedGetSnapshot) { var cachedValue = getSnapshot(); objectIs(value, cachedValue) || (console.error( "The result of getSnapshot should be cached to avoid an infinite loop" ), didWarnUncachedGetSnapshot = true); } cachedValue = useState4({ inst: { value, getSnapshot } }); var inst = cachedValue[0].inst, forceUpdate = cachedValue[1]; useLayoutEffect3( function() { inst.value = value; inst.getSnapshot = getSnapshot; checkIfSnapshotChanged(inst) && forceUpdate({ inst }); }, [subscribe2, value, getSnapshot] ); useEffect5( function() { checkIfSnapshotChanged(inst) && forceUpdate({ inst }); return subscribe2(function() { checkIfSnapshotChanged(inst) && forceUpdate({ inst }); }); }, [subscribe2] ); useDebugValue(value); return value; } function checkIfSnapshotChanged(inst) { var latestGetSnapshot = inst.getSnapshot; inst = inst.value; try { var nextValue = latestGetSnapshot(); return !objectIs(inst, nextValue); } catch (error) { return true; } } function useSyncExternalStore$1(subscribe2, getSnapshot) { return getSnapshot(); } "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error()); var React12 = require_react(), objectIs = "function" === typeof Object.is ? Object.is : is, useState4 = React12.useState, useEffect5 = React12.useEffect, useLayoutEffect3 = React12.useLayoutEffect, useDebugValue = React12.useDebugValue, didWarnOld18Alpha = false, didWarnUncachedGetSnapshot = false, shim = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? useSyncExternalStore$1 : useSyncExternalStore$2; exports.useSyncExternalStore = void 0 !== React12.useSyncExternalStore ? React12.useSyncExternalStore : shim; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error()); })(); } }); // node_modules/use-sync-external-store/shim/index.js var require_shim = __commonJS({ "node_modules/use-sync-external-store/shim/index.js"(exports, module) { "use strict"; if (false) { module.exports = null; } else { module.exports = require_use_sync_external_store_shim_development(); } } }); // node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js var require_with_selector_development = __commonJS({ "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js"(exports) { "use strict"; (function() { function is(x, y) { return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y; } "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error()); var React12 = require_react(), shim = require_shim(), objectIs = "function" === typeof Object.is ? Object.is : is, useSyncExternalStore = shim.useSyncExternalStore, useRef7 = React12.useRef, useEffect5 = React12.useEffect, useMemo3 = React12.useMemo, useDebugValue = React12.useDebugValue; exports.useSyncExternalStoreWithSelector = function(subscribe2, getSnapshot, getServerSnapshot, selector, isEqual) { var instRef = useRef7(null); if (null === instRef.current) { var inst = { hasValue: false, value: null }; instRef.current = inst; } else inst = instRef.current; instRef = useMemo3( function() { function memoizedSelector(nextSnapshot) { if (!hasMemo) { hasMemo = true; memoizedSnapshot = nextSnapshot; nextSnapshot = selector(nextSnapshot); if (void 0 !== isEqual && inst.hasValue) { var currentSelection = inst.value; if (isEqual(currentSelection, nextSnapshot)) return memoizedSelection = currentSelection; } return memoizedSelection = nextSnapshot; } currentSelection = memoizedSelection; if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection; var nextSelection = selector(nextSnapshot); if (void 0 !== isEqual && isEqual(currentSelection, nextSelection)) return memoizedSnapshot = nextSnapshot, currentSelection; memoizedSnapshot = nextSnapshot; return memoizedSelection = nextSelection; } var hasMemo = false, memoizedSnapshot, memoizedSelection, maybeGetServerSnapshot = void 0 === getServerSnapshot ? null : getServerSnapshot; return [ function() { return memoizedSelector(getSnapshot()); }, null === maybeGetServerSnapshot ? void 0 : function() { return memoizedSelector(maybeGetServerSnapshot()); } ]; }, [getSnapshot, getServerSnapshot, selector, isEqual] ); var value = useSyncExternalStore(subscribe2, instRef[0], instRef[1]); useEffect5( function() { inst.hasValue = true; inst.value = value; }, [value] ); useDebugValue(value); return value; }; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error()); })(); } }); // node_modules/use-sync-external-store/shim/with-selector.js var require_with_selector = __commonJS({ "node_modules/use-sync-external-store/shim/with-selector.js"(exports, module) { "use strict"; if (false) { module.exports = null; } else { module.exports = require_with_selector_development(); } } }); // vendor-external:react-dom var require_react_dom = __commonJS({ "vendor-external:react-dom"(exports, module) { module.exports = window.ReactDOM; } }); // package-external:@wordpress/private-apis var require_private_apis = __commonJS({ "package-external:@wordpress/private-apis"(exports, module) { module.exports = window.wp.privateApis; } }); // node_modules/@tanstack/store/dist/esm/scheduler.js var __storeToDerived = /* @__PURE__ */ new WeakMap(); var __derivedToStore = /* @__PURE__ */ new WeakMap(); var __depsThatHaveWrittenThisTick = { current: [] }; var __isFlushing = false; var __batchDepth = 0; var __pendingUpdates = /* @__PURE__ */ new Set(); var __initialBatchValues = /* @__PURE__ */ new Map(); function __flush_internals(relatedVals) { for (const derived of relatedVals) { if (__depsThatHaveWrittenThisTick.current.includes(derived)) { continue; } __depsThatHaveWrittenThisTick.current.push(derived); derived.recompute(); const stores = __derivedToStore.get(derived); if (stores) { for (const store of stores) { const relatedLinkedDerivedVals = __storeToDerived.get(store); if (!(relatedLinkedDerivedVals == null ? void 0 : relatedLinkedDerivedVals.length)) continue; __flush_internals(relatedLinkedDerivedVals); } } } } function __notifyListeners(store) { const value = { prevVal: store.prevState, currentVal: store.state }; for (const listener of store.listeners) { listener(value); } } function __notifyDerivedListeners(derived) { const value = { prevVal: derived.prevState, currentVal: derived.state }; for (const listener of derived.listeners) { listener(value); } } function __flush(store) { if (__batchDepth > 0 && !__initialBatchValues.has(store)) { __initialBatchValues.set(store, store.prevState); } __pendingUpdates.add(store); if (__batchDepth > 0) return; if (__isFlushing) return; try { __isFlushing = true; while (__pendingUpdates.size > 0) { const stores = Array.from(__pendingUpdates); __pendingUpdates.clear(); for (const store2 of stores) { const prevState = __initialBatchValues.get(store2) ?? store2.prevState; store2.prevState = prevState; __notifyListeners(store2); } for (const store2 of stores) { const derivedVals = __storeToDerived.get(store2); if (!derivedVals) continue; __depsThatHaveWrittenThisTick.current.push(store2); __flush_internals(derivedVals); } for (const store2 of stores) { const derivedVals = __storeToDerived.get(store2); if (!derivedVals) continue; for (const derived of derivedVals) { __notifyDerivedListeners(derived); } } } } finally { __isFlushing = false; __depsThatHaveWrittenThisTick.current = []; __initialBatchValues.clear(); } } function batch(fn) { __batchDepth++; try { fn(); } finally { __batchDepth--; if (__batchDepth === 0) { const pendingUpdateToFlush = __pendingUpdates.values().next().value; if (pendingUpdateToFlush) { __flush(pendingUpdateToFlush); } } } } // node_modules/@tanstack/store/dist/esm/types.js function isUpdaterFunction(updater) { return typeof updater === "function"; } // node_modules/@tanstack/store/dist/esm/store.js var Store = class { constructor(initialState, options) { this.listeners = /* @__PURE__ */ new Set(); this.subscribe = (listener) => { var _a, _b; this.listeners.add(listener); const unsub = (_b = (_a = this.options) == null ? void 0 : _a.onSubscribe) == null ? void 0 : _b.call(_a, listener, this); return () => { this.listeners.delete(listener); unsub == null ? void 0 : unsub(); }; }; this.prevState = initialState; this.state = initialState; this.options = options; } setState(updater) { var _a, _b, _c; this.prevState = this.state; if ((_a = this.options) == null ? void 0 : _a.updateFn) { this.state = this.options.updateFn(this.prevState)(updater); } else { if (isUpdaterFunction(updater)) { this.state = updater(this.prevState); } else { this.state = updater; } } (_c = (_b = this.options) == null ? void 0 : _b.onUpdate) == null ? void 0 : _c.call(_b); __flush(this); } }; // node_modules/@tanstack/history/dist/esm/index.js var stateIndexKey = "__TSR_index"; var popStateEvent = "popstate"; var beforeUnloadEvent = "beforeunload"; function createHistory(opts) { let location = opts.getLocation(); const subscribers = /* @__PURE__ */ new Set(); const notify = (action) => { location = opts.getLocation(); subscribers.forEach((subscriber) => subscriber({ location, action })); }; const handleIndexChange = (action) => { if (opts.notifyOnIndexChange ?? true) notify(action); else location = opts.getLocation(); }; const tryNavigation = async ({ task, navigateOpts, ...actionInfo }) => { const ignoreBlocker = navigateOpts?.ignoreBlocker ?? false; if (ignoreBlocker) { task(); return; } const blockers = opts.getBlockers?.() ?? []; const isPushOrReplace = actionInfo.type === "PUSH" || actionInfo.type === "REPLACE"; if (typeof document !== "undefined" && blockers.length && isPushOrReplace) { for (const blocker of blockers) { const nextLocation = parseHref(actionInfo.path, actionInfo.state); const isBlocked = await blocker.blockerFn({ currentLocation: location, nextLocation, action: actionInfo.type }); if (isBlocked) { opts.onBlocked?.(); return; } } } task(); }; return { get location() { return location; }, get length() { return opts.getLength(); }, subscribers, subscribe: (cb) => { subscribers.add(cb); return () => { subscribers.delete(cb); }; }, push: (path, state, navigateOpts) => { const currentIndex = location.state[stateIndexKey]; state = assignKeyAndIndex(currentIndex + 1, state); tryNavigation({ task: () => { opts.pushState(path, state); notify({ type: "PUSH" }); }, navigateOpts, type: "PUSH", path, state }); }, replace: (path, state, navigateOpts) => { const currentIndex = location.state[stateIndexKey]; state = assignKeyAndIndex(currentIndex, state); tryNavigation({ task: () => { opts.replaceState(path, state); notify({ type: "REPLACE" }); }, navigateOpts, type: "REPLACE", path, state }); }, go: (index, navigateOpts) => { tryNavigation({ task: () => { opts.go(index); handleIndexChange({ type: "GO", index }); }, navigateOpts, type: "GO" }); }, back: (navigateOpts) => { tryNavigation({ task: () => { opts.back(navigateOpts?.ignoreBlocker ?? false); handleIndexChange({ type: "BACK" }); }, navigateOpts, type: "BACK" }); }, forward: (navigateOpts) => { tryNavigation({ task: () => { opts.forward(navigateOpts?.ignoreBlocker ?? false); handleIndexChange({ type: "FORWARD" }); }, navigateOpts, type: "FORWARD" }); }, canGoBack: () => location.state[stateIndexKey] !== 0, createHref: (str) => opts.createHref(str), block: (blocker) => { if (!opts.setBlockers) return () => { }; const blockers = opts.getBlockers?.() ?? []; opts.setBlockers([...blockers, blocker]); return () => { const blockers2 = opts.getBlockers?.() ?? []; opts.setBlockers?.(blockers2.filter((b) => b !== blocker)); }; }, flush: () => opts.flush?.(), destroy: () => opts.destroy?.(), notify }; } function assignKeyAndIndex(index, state) { if (!state) { state = {}; } const key = createRandomKey(); return { ...state, key, // TODO: Remove in v2 - use __TSR_key instead __TSR_key: key, [stateIndexKey]: index }; } function createBrowserHistory(opts) { const win = opts?.window ?? (typeof document !== "undefined" ? window : void 0); const originalPushState = win.history.pushState; const originalReplaceState = win.history.replaceState; let blockers = []; const _getBlockers = () => blockers; const _setBlockers = (newBlockers) => blockers = newBlockers; const createHref = opts?.createHref ?? ((path) => path); const parseLocation = opts?.parseLocation ?? (() => parseHref( `${win.location.pathname}${win.location.search}${win.location.hash}`, win.history.state )); if (!win.history.state?.__TSR_key && !win.history.state?.key) { const addedKey = createRandomKey(); win.history.replaceState( { [stateIndexKey]: 0, key: addedKey, // TODO: Remove in v2 - use __TSR_key instead __TSR_key: addedKey }, "" ); } let currentLocation = parseLocation(); let rollbackLocation; let nextPopIsGo = false; let ignoreNextPop = false; let skipBlockerNextPop = false; let ignoreNextBeforeUnload = false; const getLocation = () => currentLocation; let next; let scheduled; const flush = () => { if (!next) { return; } history._ignoreSubscribers = true; (next.isPush ? win.history.pushState : win.history.replaceState)( next.state, "", next.href ); history._ignoreSubscribers = false; next = void 0; scheduled = void 0; rollbackLocation = void 0; }; const queueHistoryAction = (type, destHref, state) => { const href = createHref(destHref); if (!scheduled) { rollbackLocation = currentLocation; } currentLocation = parseHref(destHref, state); next = { href, state, isPush: next?.isPush || type === "push" }; if (!scheduled) { scheduled = Promise.resolve().then(() => flush()); } }; const onPushPop = (type) => { currentLocation = parseLocation(); history.notify({ type }); }; const onPushPopEvent = async () => { if (ignoreNextPop) { ignoreNextPop = false; return; } const nextLocation = parseLocation(); const delta = nextLocation.state[stateIndexKey] - currentLocation.state[stateIndexKey]; const isForward = delta === 1; const isBack = delta === -1; const isGo = !isForward && !isBack || nextPopIsGo; nextPopIsGo = false; const action = isGo ? "GO" : isBack ? "BACK" : "FORWARD"; const notify = isGo ? { type: "GO", index: delta } : { type: isBack ? "BACK" : "FORWARD" }; if (skipBlockerNextPop) { skipBlockerNextPop = false; } else { const blockers2 = _getBlockers(); if (typeof document !== "undefined" && blockers2.length) { for (const blocker of blockers2) { const isBlocked = await blocker.blockerFn({ currentLocation, nextLocation, action }); if (isBlocked) { ignoreNextPop = true; win.history.go(1); history.notify(notify); return; } } } } currentLocation = parseLocation(); history.notify(notify); }; const onBeforeUnload = (e) => { if (ignoreNextBeforeUnload) { ignoreNextBeforeUnload = false; return; } let shouldBlock = false; const blockers2 = _getBlockers(); if (typeof document !== "undefined" && blockers2.length) { for (const blocker of blockers2) { const shouldHaveBeforeUnload = blocker.enableBeforeUnload ?? true; if (shouldHaveBeforeUnload === true) { shouldBlock = true; break; } if (typeof shouldHaveBeforeUnload === "function" && shouldHaveBeforeUnload() === true) { shouldBlock = true; break; } } } if (shouldBlock) { e.preventDefault(); return e.returnValue = ""; } return; }; const history = createHistory({ getLocation, getLength: () => win.history.length, pushState: (href, state) => queueHistoryAction("push", href, state), replaceState: (href, state) => queueHistoryAction("replace", href, state), back: (ignoreBlocker) => { if (ignoreBlocker) skipBlockerNextPop = true; ignoreNextBeforeUnload = true; return win.history.back(); }, forward: (ignoreBlocker) => { if (ignoreBlocker) skipBlockerNextPop = true; ignoreNextBeforeUnload = true; win.history.forward(); }, go: (n) => { nextPopIsGo = true; win.history.go(n); }, createHref: (href) => createHref(href), flush, destroy: () => { win.history.pushState = originalPushState; win.history.replaceState = originalReplaceState; win.removeEventListener(beforeUnloadEvent, onBeforeUnload, { capture: true }); win.removeEventListener(popStateEvent, onPushPopEvent); }, onBlocked: () => { if (rollbackLocation && currentLocation !== rollbackLocation) { currentLocation = rollbackLocation; } }, getBlockers: _getBlockers, setBlockers: _setBlockers, notifyOnIndexChange: false }); win.addEventListener(beforeUnloadEvent, onBeforeUnload, { capture: true }); win.addEventListener(popStateEvent, onPushPopEvent); win.history.pushState = function(...args) { const res = originalPushState.apply(win.history, args); if (!history._ignoreSubscribers) onPushPop("PUSH"); return res; }; win.history.replaceState = function(...args) { const res = originalReplaceState.apply(win.history, args); if (!history._ignoreSubscribers) onPushPop("REPLACE"); return res; }; return history; } function parseHref(href, state) { const hashIndex = href.indexOf("#"); const searchIndex = href.indexOf("?"); const addedKey = createRandomKey(); return { href, pathname: href.substring( 0, hashIndex > 0 ? searchIndex > 0 ? Math.min(hashIndex, searchIndex) : hashIndex : searchIndex > 0 ? searchIndex : href.length ), hash: hashIndex > -1 ? href.substring(hashIndex) : "", search: searchIndex > -1 ? href.slice(searchIndex, hashIndex === -1 ? void 0 : hashIndex) : "", state: state || { [stateIndexKey]: 0, key: addedKey, __TSR_key: addedKey } }; } function createRandomKey() { return (Math.random() + 1).toString(36).substring(7); } // node_modules/@tanstack/router-core/dist/esm/utils.js function last(arr) { return arr[arr.length - 1]; } function isFunction(d) { return typeof d === "function"; } function functionalUpdate(updater, previous) { if (isFunction(updater)) { return updater(previous); } return updater; } var hasOwn = Object.prototype.hasOwnProperty; function replaceEqualDeep(prev, _next) { if (prev === _next) { return prev; } const next = _next; const array = isPlainArray(prev) && isPlainArray(next); if (!array && !(isPlainObject(prev) && isPlainObject(next))) return next; const prevItems = array ? prev : getEnumerableOwnKeys(prev); if (!prevItems) return next; const nextItems = array ? next : getEnumerableOwnKeys(next); if (!nextItems) return next; const prevSize = prevItems.length; const nextSize = nextItems.length; const copy = array ? new Array(nextSize) : {}; let equalItems = 0; for (let i = 0; i < nextSize; i++) { const key = array ? i : nextItems[i]; const p = prev[key]; const n = next[key]; if (p === n) { copy[key] = p; if (array ? i < prevSize : hasOwn.call(prev, key)) equalItems++; continue; } if (p === null || n === null || typeof p !== "object" || typeof n !== "object") { copy[key] = n; continue; } const v = replaceEqualDeep(p, n); copy[key] = v; if (v === p) equalItems++; } return prevSize === nextSize && equalItems === prevSize ? prev : copy; } function getEnumerableOwnKeys(o) { const keys = []; const names = Object.getOwnPropertyNames(o); for (const name of names) { if (!Object.prototype.propertyIsEnumerable.call(o, name)) return false; keys.push(name); } const symbols = Object.getOwnPropertySymbols(o); for (const symbol of symbols) { if (!Object.prototype.propertyIsEnumerable.call(o, symbol)) return false; keys.push(symbol); } return keys; } function isPlainObject(o) { if (!hasObjectPrototype(o)) { return false; } const ctor = o.constructor; if (typeof ctor === "undefined") { return true; } const prot = ctor.prototype; if (!hasObjectPrototype(prot)) { return false; } if (!prot.hasOwnProperty("isPrototypeOf")) { return false; } return true; } function hasObjectPrototype(o) { return Object.prototype.toString.call(o) === "[object Object]"; } function isPlainArray(value) { return Array.isArray(value) && value.length === Object.keys(value).length; } function deepEqual(a, b, opts) { if (a === b) { return true; } if (typeof a !== typeof b) { return false; } if (Array.isArray(a) && Array.isArray(b)) { if (a.length !== b.length) return false; for (let i = 0, l = a.length; i < l; i++) { if (!deepEqual(a[i], b[i], opts)) return false; } return true; } if (isPlainObject(a) && isPlainObject(b)) { const ignoreUndefined = opts?.ignoreUndefined ?? true; if (opts?.partial) { for (const k in b) { if (!ignoreUndefined || b[k] !== void 0) { if (!deepEqual(a[k], b[k], opts)) return false; } } return true; } let aCount = 0; if (!ignoreUndefined) { aCount = Object.keys(a).length; } else { for (const k in a) { if (a[k] !== void 0) aCount++; } } let bCount = 0; for (const k in b) { if (!ignoreUndefined || b[k] !== void 0) { bCount++; if (bCount > aCount || !deepEqual(a[k], b[k], opts)) return false; } } return aCount === bCount; } return false; } function createControlledPromise(onResolve) { let resolveLoadPromise; let rejectLoadPromise; const controlledPromise = new Promise((resolve, reject) => { resolveLoadPromise = resolve; rejectLoadPromise = reject; }); controlledPromise.status = "pending"; controlledPromise.resolve = (value) => { controlledPromise.status = "resolved"; controlledPromise.value = value; resolveLoadPromise(value); onResolve?.(value); }; controlledPromise.reject = (e) => { controlledPromise.status = "rejected"; rejectLoadPromise(e); }; return controlledPromise; } function isPromise(value) { return Boolean( value && typeof value === "object" && typeof value.then === "function" ); } function findLast(array, predicate) { for (let i = array.length - 1; i >= 0; i--) { const item = array[i]; if (predicate(item)) return item; } return void 0; } var DECODE_IGNORE_LIST = Array.from( (/* @__PURE__ */ new Map([ ["%", "%25"], ["\\", "%5C"], ["/", "%2F"], [";", "%3B"], [":", "%3A"], ["@", "%40"], ["&", "%26"], ["=", "%3D"], ["+", "%2B"], ["$", "%24"], [",", "%2C"] ])).values() ); function decodePathSegment(part, decodeIgnore = DECODE_IGNORE_LIST, startIndex = 0) { function decode2(part2) { try { return decodeURIComponent(part2); } catch { return part2.replaceAll(/%[0-9A-Fa-f]{2}/g, (match) => { try { return decodeURIComponent(match); } catch { return match; } }); } } if (part === "" || !part.match(/%[0-9A-Fa-f]{2}/g)) return part; for (let i = startIndex; i < decodeIgnore.length; i++) { const char = decodeIgnore[i]; if (char && part.includes(char)) { const partsToDecode = part.split(char); const partsToJoin = []; for (const partToDecode of partsToDecode) { partsToJoin.push(decodePathSegment(partToDecode, decodeIgnore, i + 1)); } return partsToJoin.join(char); } } return decode2(part); } // node_modules/tiny-invariant/dist/esm/tiny-invariant.js var isProduction = false; var prefix = "Invariant failed"; function invariant(condition, message) { if (condition) { return; } if (isProduction) { throw new Error(prefix); } var provided = typeof message === "function" ? message() : message; var value = provided ? "".concat(prefix, ": ").concat(provided) : prefix; throw new Error(value); } // node_modules/@tanstack/router-core/dist/esm/path.js var SEGMENT_TYPE_PATHNAME = 0; var SEGMENT_TYPE_PARAM = 1; var SEGMENT_TYPE_WILDCARD = 2; var SEGMENT_TYPE_OPTIONAL_PARAM = 3; function joinPaths(paths) { return cleanPath( paths.filter((val) => { return val !== void 0; }).join("/") ); } function cleanPath(path) { return path.replace(/\/{2,}/g, "/"); } function trimPathLeft(path) { return path === "/" ? path : path.replace(/^\/{1,}/, ""); } function trimPathRight(path) { return path === "/" ? path : path.replace(/\/{1,}$/, ""); } function trimPath(path) { return trimPathRight(trimPathLeft(path)); } function removeTrailingSlash(value, basepath) { if (value?.endsWith("/") && value !== "/" && value !== `${basepath}/`) { return value.slice(0, -1); } return value; } function exactPathTest(pathName1, pathName2, basepath) { return removeTrailingSlash(pathName1, basepath) === removeTrailingSlash(pathName2, basepath); } function segmentToString(segment) { const { type, value } = segment; if (type === SEGMENT_TYPE_PATHNAME) { return value; } const { prefixSegment, suffixSegment } = segment; if (type === SEGMENT_TYPE_PARAM) { const param = value.substring(1); if (prefixSegment && suffixSegment) { return `${prefixSegment}{$${param}}${suffixSegment}`; } else if (prefixSegment) { return `${prefixSegment}{$${param}}`; } else if (suffixSegment) { return `{$${param}}${suffixSegment}`; } } if (type === SEGMENT_TYPE_OPTIONAL_PARAM) { const param = value.substring(1); if (prefixSegment && suffixSegment) { return `${prefixSegment}{-$${param}}${suffixSegment}`; } else if (prefixSegment) { return `${prefixSegment}{-$${param}}`; } else if (suffixSegment) { return `{-$${param}}${suffixSegment}`; } return `{-$${param}}`; } if (type === SEGMENT_TYPE_WILDCARD) { if (prefixSegment && suffixSegment) { return `${prefixSegment}{$}${suffixSegment}`; } else if (prefixSegment) { return `${prefixSegment}{$}`; } else if (suffixSegment) { return `{$}${suffixSegment}`; } } return value; } function resolvePath({ base, to, trailingSlash = "never", parseCache }) { let baseSegments = parsePathname(base, parseCache).slice(); const toSegments = parsePathname(to, parseCache); if (baseSegments.length > 1 && last(baseSegments)?.value === "/") { baseSegments.pop(); } for (let index = 0, length = toSegments.length; index < length; index++) { const toSegment = toSegments[index]; const value = toSegment.value; if (value === "/") { if (!index) { baseSegments = [toSegment]; } else if (index === length - 1) { baseSegments.push(toSegment); } else ; } else if (value === "..") { baseSegments.pop(); } else if (value === ".") ; else { baseSegments.push(toSegment); } } if (baseSegments.length > 1) { if (last(baseSegments).value === "/") { if (trailingSlash === "never") { baseSegments.pop(); } } else if (trailingSlash === "always") { baseSegments.push({ type: SEGMENT_TYPE_PATHNAME, value: "/" }); } } const segmentValues = baseSegments.map(segmentToString); const joined = joinPaths(segmentValues); return joined; } var parsePathname = (pathname, cache) => { if (!pathname) return []; const cached = cache?.get(pathname); if (cached) return cached; const parsed = baseParsePathname(pathname); cache?.set(pathname, parsed); return parsed; }; var PARAM_RE = /^\$.{1,}$/; var PARAM_W_CURLY_BRACES_RE = /^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/; var OPTIONAL_PARAM_W_CURLY_BRACES_RE = /^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/; var WILDCARD_RE = /^\$$/; var WILDCARD_W_CURLY_BRACES_RE = /^(.*?)\{\$\}(.*)$/; function baseParsePathname(pathname) { pathname = cleanPath(pathname); const segments = []; if (pathname.slice(0, 1) === "/") { pathname = pathname.substring(1); segments.push({ type: SEGMENT_TYPE_PATHNAME, value: "/" }); } if (!pathname) { return segments; } const split = pathname.split("/").filter(Boolean); segments.push( ...split.map((part) => { const wildcardBracesMatch = part.match(WILDCARD_W_CURLY_BRACES_RE); if (wildcardBracesMatch) { const prefix2 = wildcardBracesMatch[1]; const suffix = wildcardBracesMatch[2]; return { type: SEGMENT_TYPE_WILDCARD, value: "$", prefixSegment: prefix2 || void 0, suffixSegment: suffix || void 0 }; } const optionalParamBracesMatch = part.match( OPTIONAL_PARAM_W_CURLY_BRACES_RE ); if (optionalParamBracesMatch) { const prefix2 = optionalParamBracesMatch[1]; const paramName = optionalParamBracesMatch[2]; const suffix = optionalParamBracesMatch[3]; return { type: SEGMENT_TYPE_OPTIONAL_PARAM, value: paramName, // Now just $paramName (no prefix) prefixSegment: prefix2 || void 0, suffixSegment: suffix || void 0 }; } const paramBracesMatch = part.match(PARAM_W_CURLY_BRACES_RE); if (paramBracesMatch) { const prefix2 = paramBracesMatch[1]; const paramName = paramBracesMatch[2]; const suffix = paramBracesMatch[3]; return { type: SEGMENT_TYPE_PARAM, value: "" + paramName, prefixSegment: prefix2 || void 0, suffixSegment: suffix || void 0 }; } if (PARAM_RE.test(part)) { const paramName = part.substring(1); return { type: SEGMENT_TYPE_PARAM, value: "$" + paramName, prefixSegment: void 0, suffixSegment: void 0 }; } if (WILDCARD_RE.test(part)) { return { type: SEGMENT_TYPE_WILDCARD, value: "$", prefixSegment: void 0, suffixSegment: void 0 }; } return { type: SEGMENT_TYPE_PATHNAME, value: decodePathSegment(part) }; }) ); if (pathname.slice(-1) === "/") { pathname = pathname.substring(1); segments.push({ type: SEGMENT_TYPE_PATHNAME, value: "/" }); } return segments; } function interpolatePath({ path, params, leaveWildcards, leaveParams, decodeCharMap, parseCache }) { const interpolatedPathSegments = parsePathname(path, parseCache); function encodeParam(key) { const value = params[key]; const isValueString = typeof value === "string"; if (key === "*" || key === "_splat") { return isValueString ? encodeURI(value) : value; } else { return isValueString ? encodePathParam(value, decodeCharMap) : value; } } let isMissingParams = false; const usedParams = {}; const interpolatedPath = joinPaths( interpolatedPathSegments.map((segment) => { if (segment.type === SEGMENT_TYPE_PATHNAME) { return segment.value; } if (segment.type === SEGMENT_TYPE_WILDCARD) { usedParams._splat = params._splat; usedParams["*"] = params._splat; const segmentPrefix = segment.prefixSegment || ""; const segmentSuffix = segment.suffixSegment || ""; if (!params._splat) { isMissingParams = true; if (leaveWildcards) { return `${segmentPrefix}${segment.value}${segmentSuffix}`; } if (segmentPrefix || segmentSuffix) { return `${segmentPrefix}${segmentSuffix}`; } return void 0; } const value = encodeParam("_splat"); if (leaveWildcards) { return `${segmentPrefix}${segment.value}${value ?? ""}${segmentSuffix}`; } return `${segmentPrefix}${value}${segmentSuffix}`; } if (segment.type === SEGMENT_TYPE_PARAM) { const key = segment.value.substring(1); if (!isMissingParams && !(key in params)) { isMissingParams = true; } usedParams[key] = params[key]; const segmentPrefix = segment.prefixSegment || ""; const segmentSuffix = segment.suffixSegment || ""; if (leaveParams) { const value = encodeParam(segment.value); return `${segmentPrefix}${segment.value}${value ?? ""}${segmentSuffix}`; } return `${segmentPrefix}${encodeParam(key) ?? "undefined"}${segmentSuffix}`; } if (segment.type === SEGMENT_TYPE_OPTIONAL_PARAM) { const key = segment.value.substring(1); const segmentPrefix = segment.prefixSegment || ""; const segmentSuffix = segment.suffixSegment || ""; if (!(key in params) || params[key] == null) { if (leaveWildcards) { return `${segmentPrefix}${key}${segmentSuffix}`; } if (segmentPrefix || segmentSuffix) { return `${segmentPrefix}${segmentSuffix}`; } return void 0; } usedParams[key] = params[key]; if (leaveParams) { const value = encodeParam(segment.value); return `${segmentPrefix}${segment.value}${value ?? ""}${segmentSuffix}`; } if (leaveWildcards) { return `${segmentPrefix}${key}${encodeParam(key) ?? ""}${segmentSuffix}`; } return `${segmentPrefix}${encodeParam(key) ?? ""}${segmentSuffix}`; } return segment.value; }) ); return { usedParams, interpolatedPath, isMissingParams }; } function encodePathParam(value, decodeCharMap) { let encoded = encodeURIComponent(value); if (decodeCharMap) { for (const [encodedChar, char] of decodeCharMap) { encoded = encoded.replaceAll(encodedChar, char); } } return encoded; } function matchPathname(currentPathname, matchLocation, parseCache) { const pathParams = matchByPath(currentPathname, matchLocation, parseCache); if (matchLocation.to && !pathParams) { return; } return pathParams ?? {}; } function matchByPath(from, { to, fuzzy, caseSensitive }, parseCache) { const stringTo = to; const baseSegments = parsePathname( from.startsWith("/") ? from : `/${from}`, parseCache ); const routeSegments = parsePathname( stringTo.startsWith("/") ? stringTo : `/${stringTo}`, parseCache ); const params = {}; const result = isMatch( baseSegments, routeSegments, params, fuzzy, caseSensitive ); return result ? params : void 0; } function isMatch(baseSegments, routeSegments, params, fuzzy, caseSensitive) { let baseIndex = 0; let routeIndex = 0; while (baseIndex < baseSegments.length || routeIndex < routeSegments.length) { const baseSegment = baseSegments[baseIndex]; const routeSegment = routeSegments[routeIndex]; if (routeSegment) { if (routeSegment.type === SEGMENT_TYPE_WILDCARD) { const remainingBaseSegments = baseSegments.slice(baseIndex); let _splat; if (routeSegment.prefixSegment || routeSegment.suffixSegment) { if (!baseSegment) return false; const prefix2 = routeSegment.prefixSegment || ""; const suffix = routeSegment.suffixSegment || ""; const baseValue = baseSegment.value; if ("prefixSegment" in routeSegment) { if (!baseValue.startsWith(prefix2)) { return false; } } if ("suffixSegment" in routeSegment) { if (!baseSegments[baseSegments.length - 1]?.value.endsWith(suffix)) { return false; } } let rejoinedSplat = decodeURI( joinPaths(remainingBaseSegments.map((d) => d.value)) ); if (prefix2 && rejoinedSplat.startsWith(prefix2)) { rejoinedSplat = rejoinedSplat.slice(prefix2.length); } if (suffix && rejoinedSplat.endsWith(suffix)) { rejoinedSplat = rejoinedSplat.slice( 0, rejoinedSplat.length - suffix.length ); } _splat = rejoinedSplat; } else { _splat = decodeURI( joinPaths(remainingBaseSegments.map((d) => d.value)) ); } params["*"] = _splat; params["_splat"] = _splat; return true; } if (routeSegment.type === SEGMENT_TYPE_PATHNAME) { if (routeSegment.value === "/" && !baseSegment?.value) { routeIndex++; continue; } if (baseSegment) { if (caseSensitive) { if (routeSegment.value !== baseSegment.value) { return false; } } else if (routeSegment.value.toLowerCase() !== baseSegment.value.toLowerCase()) { return false; } baseIndex++; routeIndex++; continue; } else { return false; } } if (routeSegment.type === SEGMENT_TYPE_PARAM) { if (!baseSegment) { return false; } if (baseSegment.value === "/") { return false; } let _paramValue = ""; let matched = false; if (routeSegment.prefixSegment || routeSegment.suffixSegment) { const prefix2 = routeSegment.prefixSegment || ""; const suffix = routeSegment.suffixSegment || ""; const baseValue = baseSegment.value; if (prefix2 && !baseValue.startsWith(prefix2)) { return false; } if (suffix && !baseValue.endsWith(suffix)) { return false; } let paramValue = baseValue; if (prefix2 && paramValue.startsWith(prefix2)) { paramValue = paramValue.slice(prefix2.length); } if (suffix && paramValue.endsWith(suffix)) { paramValue = paramValue.slice(0, paramValue.length - suffix.length); } _paramValue = decodeURIComponent(paramValue); matched = true; } else { _paramValue = decodeURIComponent(baseSegment.value); matched = true; } if (matched) { params[routeSegment.value.substring(1)] = _paramValue; baseIndex++; } routeIndex++; continue; } if (routeSegment.type === SEGMENT_TYPE_OPTIONAL_PARAM) { if (!baseSegment) { routeIndex++; continue; } if (baseSegment.value === "/") { routeIndex++; continue; } let _paramValue = ""; let matched = false; if (routeSegment.prefixSegment || routeSegment.suffixSegment) { const prefix2 = routeSegment.prefixSegment || ""; const suffix = routeSegment.suffixSegment || ""; const baseValue = baseSegment.value; if ((!prefix2 || baseValue.startsWith(prefix2)) && (!suffix || baseValue.endsWith(suffix))) { let paramValue = baseValue; if (prefix2 && paramValue.startsWith(prefix2)) { paramValue = paramValue.slice(prefix2.length); } if (suffix && paramValue.endsWith(suffix)) { paramValue = paramValue.slice( 0, paramValue.length - suffix.length ); } _paramValue = decodeURIComponent(paramValue); matched = true; } } else { let shouldMatchOptional = true; for (let lookAhead = routeIndex + 1; lookAhead < routeSegments.length; lookAhead++) { const futureRouteSegment = routeSegments[lookAhead]; if (futureRouteSegment?.type === SEGMENT_TYPE_PATHNAME && futureRouteSegment.value === baseSegment.value) { shouldMatchOptional = false; break; } if (futureRouteSegment?.type === SEGMENT_TYPE_PARAM || futureRouteSegment?.type === SEGMENT_TYPE_WILDCARD) { if (baseSegments.length < routeSegments.length) { shouldMatchOptional = false; } break; } } if (shouldMatchOptional) { _paramValue = decodeURIComponent(baseSegment.value); matched = true; } } if (matched) { params[routeSegment.value.substring(1)] = _paramValue; baseIndex++; } routeIndex++; continue; } } if (baseIndex < baseSegments.length && routeIndex >= routeSegments.length) { params["**"] = joinPaths( baseSegments.slice(baseIndex).map((d) => d.value) ); return !!fuzzy && routeSegments[routeSegments.length - 1]?.value !== "/"; } if (routeIndex < routeSegments.length && baseIndex >= baseSegments.length) { for (let i = routeIndex; i < routeSegments.length; i++) { if (routeSegments[i]?.type !== SEGMENT_TYPE_OPTIONAL_PARAM) { return false; } } break; } break; } return true; } // node_modules/@tanstack/router-core/dist/esm/process-route-tree.js var SLASH_SCORE = 0.75; var STATIC_SEGMENT_SCORE = 1; var REQUIRED_PARAM_BASE_SCORE = 0.5; var OPTIONAL_PARAM_BASE_SCORE = 0.4; var WILDCARD_PARAM_BASE_SCORE = 0.25; var STATIC_AFTER_DYNAMIC_BONUS_SCORE = 0.2; var BOTH_PRESENCE_BASE_SCORE = 0.05; var PREFIX_PRESENCE_BASE_SCORE = 0.02; var SUFFIX_PRESENCE_BASE_SCORE = 0.01; var PREFIX_LENGTH_SCORE_MULTIPLIER = 2e-4; var SUFFIX_LENGTH_SCORE_MULTIPLIER = 1e-4; function handleParam(segment, baseScore) { if (segment.prefixSegment && segment.suffixSegment) { return baseScore + BOTH_PRESENCE_BASE_SCORE + PREFIX_LENGTH_SCORE_MULTIPLIER * segment.prefixSegment.length + SUFFIX_LENGTH_SCORE_MULTIPLIER * segment.suffixSegment.length; } if (segment.prefixSegment) { return baseScore + PREFIX_PRESENCE_BASE_SCORE + PREFIX_LENGTH_SCORE_MULTIPLIER * segment.prefixSegment.length; } if (segment.suffixSegment) { return baseScore + SUFFIX_PRESENCE_BASE_SCORE + SUFFIX_LENGTH_SCORE_MULTIPLIER * segment.suffixSegment.length; } return baseScore; } function sortRoutes(routes) { const scoredRoutes = []; routes.forEach((d, i) => { if (d.isRoot || !d.path) { return; } const trimmed = trimPathLeft(d.fullPath); let parsed = parsePathname(trimmed); let skip = 0; while (parsed.length > skip + 1 && parsed[skip]?.value === "/") { skip++; } if (skip > 0) parsed = parsed.slice(skip); let optionalParamCount = 0; let hasStaticAfter = false; const scores = parsed.map((segment, index) => { if (segment.value === "/") { return SLASH_SCORE; } if (segment.type === SEGMENT_TYPE_PATHNAME) { return STATIC_SEGMENT_SCORE; } let baseScore = void 0; if (segment.type === SEGMENT_TYPE_PARAM) { baseScore = REQUIRED_PARAM_BASE_SCORE; } else if (segment.type === SEGMENT_TYPE_OPTIONAL_PARAM) { baseScore = OPTIONAL_PARAM_BASE_SCORE; optionalParamCount++; } else { baseScore = WILDCARD_PARAM_BASE_SCORE; } for (let i2 = index + 1; i2 < parsed.length; i2++) { const nextSegment = parsed[i2]; if (nextSegment.type === SEGMENT_TYPE_PATHNAME && nextSegment.value !== "/") { hasStaticAfter = true; return handleParam( segment, baseScore + STATIC_AFTER_DYNAMIC_BONUS_SCORE ); } } return handleParam(segment, baseScore); }); scoredRoutes.push({ child: d, trimmed, parsed, index: i, scores, optionalParamCount, hasStaticAfter }); }); const flatRoutes = scoredRoutes.sort((a, b) => { const minLength = Math.min(a.scores.length, b.scores.length); for (let i = 0; i < minLength; i++) { if (a.scores[i] !== b.scores[i]) { return b.scores[i] - a.scores[i]; } } if (a.scores.length !== b.scores.length) { if (a.optionalParamCount !== b.optionalParamCount) { if (a.hasStaticAfter === b.hasStaticAfter) { return a.optionalParamCount - b.optionalParamCount; } else if (a.hasStaticAfter && !b.hasStaticAfter) { return -1; } else if (!a.hasStaticAfter && b.hasStaticAfter) { return 1; } } return b.scores.length - a.scores.length; } for (let i = 0; i < minLength; i++) { if (a.parsed[i].value !== b.parsed[i].value) { return a.parsed[i].value > b.parsed[i].value ? 1 : -1; } } return a.index - b.index; }).map((d, i) => { d.child.rank = i; return d.child; }); return flatRoutes; } function processRouteTree({ routeTree, initRoute }) { const routesById = {}; const routesByPath = {}; const recurseRoutes = (childRoutes) => { childRoutes.forEach((childRoute, i) => { initRoute?.(childRoute, i); const existingRoute = routesById[childRoute.id]; invariant( !existingRoute, `Duplicate routes found with id: ${String(childRoute.id)}` ); routesById[childRoute.id] = childRoute; if (!childRoute.isRoot && childRoute.path) { const trimmedFullPath = trimPathRight(childRoute.fullPath); if (!routesByPath[trimmedFullPath] || childRoute.fullPath.endsWith("/")) { routesByPath[trimmedFullPath] = childRoute; } } const children = childRoute.children; if (children?.length) { recurseRoutes(children); } }); }; recurseRoutes([routeTree]); const flatRoutes = sortRoutes(Object.values(routesById)); return { routesById, routesByPath, flatRoutes }; } // node_modules/@tanstack/router-core/dist/esm/not-found.js function notFound(options = {}) { options.isNotFound = true; if (options.throw) throw options; return options; } function isNotFound(obj) { return !!obj?.isNotFound; } // node_modules/@tanstack/router-core/dist/esm/scroll-restoration.js function getSafeSessionStorage() { try { if (typeof window !== "undefined" && typeof window.sessionStorage === "object") { return window.sessionStorage; } } catch { } return void 0; } var storageKey = "tsr-scroll-restoration-v1_3"; var throttle = (fn, wait) => { let timeout; return (...args) => { if (!timeout) { timeout = setTimeout(() => { fn(...args); timeout = null; }, wait); } }; }; function createScrollRestorationCache() { const safeSessionStorage = getSafeSessionStorage(); if (!safeSessionStorage) { return null; } const persistedState = safeSessionStorage.getItem(storageKey); let state = persistedState ? JSON.parse(persistedState) : {}; return { state, // This setter is simply to make sure that we set the sessionStorage right // after the state is updated. It doesn't necessarily need to be a functional // update. set: (updater) => (state = functionalUpdate(updater, state) || state, safeSessionStorage.setItem(storageKey, JSON.stringify(state))) }; } var scrollRestorationCache = createScrollRestorationCache(); var defaultGetScrollRestorationKey = (location) => { return location.state.__TSR_key || location.href; }; function getCssSelector(el) { const path = []; let parent; while (parent = el.parentNode) { path.push( `${el.tagName}:nth-child(${Array.prototype.indexOf.call(parent.children, el) + 1})` ); el = parent; } return `${path.reverse().join(" > ")}`.toLowerCase(); } var ignoreScroll = false; function restoreScroll({ storageKey: storageKey2, key, behavior, shouldScrollRestoration, scrollToTopSelectors, location }) { let byKey; try { byKey = JSON.parse(sessionStorage.getItem(storageKey2) || "{}"); } catch (error) { console.error(error); return; } const resolvedKey = key || window.history.state?.__TSR_key; const elementEntries = byKey[resolvedKey]; ignoreScroll = true; scroll: { if (shouldScrollRestoration && elementEntries && Object.keys(elementEntries).length > 0) { for (const elementSelector in elementEntries) { const entry = elementEntries[elementSelector]; if (elementSelector === "window") { window.scrollTo({ top: entry.scrollY, left: entry.scrollX, behavior }); } else if (elementSelector) { const element = document.querySelector(elementSelector); if (element) { element.scrollLeft = entry.scrollX; element.scrollTop = entry.scrollY; } } } break scroll; } const hash = (location ?? window.location).hash.split("#", 2)[1]; if (hash) { const hashScrollIntoViewOptions = window.history.state?.__hashScrollIntoViewOptions ?? true; if (hashScrollIntoViewOptions) { const el = document.getElementById(hash); if (el) { el.scrollIntoView(hashScrollIntoViewOptions); } } break scroll; } const scrollOptions = { top: 0, left: 0, behavior }; window.scrollTo(scrollOptions); if (scrollToTopSelectors) { for (const selector of scrollToTopSelectors) { if (selector === "window") continue; const element = typeof selector === "function" ? selector() : document.querySelector(selector); if (element) element.scrollTo(scrollOptions); } } } ignoreScroll = false; } function setupScrollRestoration(router, force) { if (!scrollRestorationCache && !router.isServer) { return; } const shouldScrollRestoration = force ?? router.options.scrollRestoration ?? false; if (shouldScrollRestoration) { router.isScrollRestoring = true; } if (router.isServer || router.isScrollRestorationSetup || !scrollRestorationCache) { return; } router.isScrollRestorationSetup = true; ignoreScroll = false; const getKey = router.options.getScrollRestorationKey || defaultGetScrollRestorationKey; window.history.scrollRestoration = "manual"; const onScroll = (event) => { if (ignoreScroll || !router.isScrollRestoring) { return; } let elementSelector = ""; if (event.target === document || event.target === window) { elementSelector = "window"; } else { const attrId = event.target.getAttribute( "data-scroll-restoration-id" ); if (attrId) { elementSelector = `[data-scroll-restoration-id="${attrId}"]`; } else { elementSelector = getCssSelector(event.target); } } const restoreKey = getKey(router.state.location); scrollRestorationCache.set((state) => { const keyEntry = state[restoreKey] ||= {}; const elementEntry = keyEntry[elementSelector] ||= {}; if (elementSelector === "window") { elementEntry.scrollX = window.scrollX || 0; elementEntry.scrollY = window.scrollY || 0; } else if (elementSelector) { const element = document.querySelector(elementSelector); if (element) { elementEntry.scrollX = element.scrollLeft || 0; elementEntry.scrollY = element.scrollTop || 0; } } return state; }); }; if (typeof document !== "undefined") { document.addEventListener("scroll", throttle(onScroll, 100), true); } router.subscribe("onRendered", (event) => { const cacheKey = getKey(event.toLocation); if (!router.resetNextScroll) { router.resetNextScroll = true; return; } if (typeof router.options.scrollRestoration === "function") { const shouldRestore = router.options.scrollRestoration({ location: router.latestLocation }); if (!shouldRestore) { return; } } restoreScroll({ storageKey, key: cacheKey, behavior: router.options.scrollRestorationBehavior, shouldScrollRestoration: router.isScrollRestoring, scrollToTopSelectors: router.options.scrollToTopSelectors, location: router.history.location }); if (router.isScrollRestoring) { scrollRestorationCache.set((state) => { state[cacheKey] ||= {}; return state; }); } }); } function handleHashScroll(router) { if (typeof document !== "undefined" && document.querySelector) { const hashScrollIntoViewOptions = router.state.location.state.__hashScrollIntoViewOptions ?? true; if (hashScrollIntoViewOptions && router.state.location.hash !== "") { const el = document.getElementById(router.state.location.hash); if (el) { el.scrollIntoView(hashScrollIntoViewOptions); } } } } // node_modules/@tanstack/router-core/dist/esm/qss.js function encode(obj, stringify = String) { const result = new URLSearchParams(); for (const key in obj) { const val = obj[key]; if (val !== void 0) { result.set(key, stringify(val)); } } return result.toString(); } function toValue(str) { if (!str) return ""; if (str === "false") return false; if (str === "true") return true; return +str * 0 === 0 && +str + "" === str ? +str : str; } function decode(str) { const searchParams = new URLSearchParams(str); const result = {}; for (const [key, value] of searchParams.entries()) { const previousValue = result[key]; if (previousValue == null) { result[key] = toValue(value); } else if (Array.isArray(previousValue)) { previousValue.push(toValue(value)); } else { result[key] = [previousValue, toValue(value)]; } } return result; } // node_modules/@tanstack/router-core/dist/esm/searchParams.js var defaultParseSearch = parseSearchWith(JSON.parse); var defaultStringifySearch = stringifySearchWith( JSON.stringify, JSON.parse ); function parseSearchWith(parser) { return (searchStr) => { if (searchStr[0] === "?") { searchStr = searchStr.substring(1); } const query = decode(searchStr); for (const key in query) { const value = query[key]; if (typeof value === "string") { try { query[key] = parser(value); } catch (_err) { } } } return query; }; } function stringifySearchWith(stringify, parser) { const hasParser = typeof parser === "function"; function stringifyValue(val) { if (typeof val === "object" && val !== null) { try { return stringify(val); } catch (_err) { } } else if (hasParser && typeof val === "string") { try { parser(val); return stringify(val); } catch (_err) { } } return val; } return (search) => { const searchStr = encode(search, stringifyValue); return searchStr ? `?${searchStr}` : ""; }; } // node_modules/@tanstack/router-core/dist/esm/root.js var rootRouteId = "__root__"; // node_modules/@tanstack/router-core/dist/esm/redirect.js function redirect(opts) { opts.statusCode = opts.statusCode || opts.code || 307; if (!opts.reloadDocument && typeof opts.href === "string") { try { new URL(opts.href); opts.reloadDocument = true; } catch { } } const headers = new Headers(opts.headers); if (opts.href && headers.get("Location") === null) { headers.set("Location", opts.href); } const response = new Response(null, { status: opts.statusCode, headers }); response.options = opts; if (opts.throw) { throw response; } return response; } function isRedirect(obj) { return obj instanceof Response && !!obj.options; } // node_modules/@tanstack/router-core/dist/esm/lru-cache.js function createLRUCache(max) { const cache = /* @__PURE__ */ new Map(); let oldest; let newest; const touch = (entry) => { if (!entry.next) return; if (!entry.prev) { entry.next.prev = void 0; oldest = entry.next; entry.next = void 0; if (newest) { entry.prev = newest; newest.next = entry; } } else { entry.prev.next = entry.next; entry.next.prev = entry.prev; entry.next = void 0; if (newest) { newest.next = entry; entry.prev = newest; } } newest = entry; }; return { get(key) { const entry = cache.get(key); if (!entry) return void 0; touch(entry); return entry.value; }, set(key, value) { if (cache.size >= max && oldest) { const toDelete = oldest; cache.delete(toDelete.key); if (toDelete.next) { oldest = toDelete.next; toDelete.next.prev = void 0; } if (toDelete === newest) { newest = void 0; } } const existing = cache.get(key); if (existing) { existing.value = value; touch(existing); } else { const entry = { key, value, prev: newest }; if (newest) newest.next = entry; newest = entry; if (!oldest) oldest = entry; cache.set(key, entry); } } }; } // node_modules/@tanstack/router-core/dist/esm/load-matches.js var triggerOnReady = (inner) => { if (!inner.rendered) { inner.rendered = true; return inner.onReady?.(); } }; var resolvePreload = (inner, matchId) => { return !!(inner.preload && !inner.router.state.matches.some((d) => d.id === matchId)); }; var _handleNotFound = (inner, err) => { const routeCursor = inner.router.routesById[err.routeId ?? ""] ?? inner.router.routeTree; if (!routeCursor.options.notFoundComponent && inner.router.options?.defaultNotFoundComponent) { routeCursor.options.notFoundComponent = inner.router.options.defaultNotFoundComponent; } invariant( routeCursor.options.notFoundComponent, "No notFoundComponent found. Please set a notFoundComponent on your route or provide a defaultNotFoundComponent to the router." ); const matchForRoute = inner.matches.find((m) => m.routeId === routeCursor.id); invariant(matchForRoute, "Could not find match for route: " + routeCursor.id); inner.updateMatch(matchForRoute.id, (prev) => ({ ...prev, status: "notFound", error: err, isFetching: false })); if (err.routerCode === "BEFORE_LOAD" && routeCursor.parentRoute) { err.routeId = routeCursor.parentRoute.id; _handleNotFound(inner, err); } }; var handleRedirectAndNotFound = (inner, match, err) => { if (!isRedirect(err) && !isNotFound(err)) return; if (isRedirect(err) && err.redirectHandled && !err.options.reloadDocument) { throw err; } if (match) { match._nonReactive.beforeLoadPromise?.resolve(); match._nonReactive.loaderPromise?.resolve(); match._nonReactive.beforeLoadPromise = void 0; match._nonReactive.loaderPromise = void 0; const status = isRedirect(err) ? "redirected" : "notFound"; inner.updateMatch(match.id, (prev) => ({ ...prev, status, isFetching: false, error: err })); if (isNotFound(err) && !err.routeId) { err.routeId = match.routeId; } match._nonReactive.loadPromise?.resolve(); } if (isRedirect(err)) { inner.rendered = true; err.options._fromLocation = inner.location; err.redirectHandled = true; err = inner.router.resolveRedirect(err); throw err; } else { _handleNotFound(inner, err); throw err; } }; var shouldSkipLoader = (inner, matchId) => { const match = inner.router.getMatch(matchId); if (!inner.router.isServer && match._nonReactive.dehydrated) { return true; } if (inner.router.isServer && match.ssr === false) { return true; } return false; }; var handleSerialError = (inner, index, err, routerCode) => { const { id: matchId, routeId } = inner.matches[index]; const route = inner.router.looseRoutesById[routeId]; if (err instanceof Promise) { throw err; } err.routerCode = routerCode; inner.firstBadMatchIndex ??= index; handleRedirectAndNotFound(inner, inner.router.getMatch(matchId), err); try { route.options.onError?.(err); } catch (errorHandlerErr) { err = errorHandlerErr; handleRedirectAndNotFound(inner, inner.router.getMatch(matchId), err); } inner.updateMatch(matchId, (prev) => { prev._nonReactive.beforeLoadPromise?.resolve(); prev._nonReactive.beforeLoadPromise = void 0; prev._nonReactive.loadPromise?.resolve(); return { ...prev, error: err, status: "error", isFetching: false, updatedAt: Date.now(), abortController: new AbortController() }; }); }; var isBeforeLoadSsr = (inner, matchId, index, route) => { const existingMatch = inner.router.getMatch(matchId); const parentMatchId = inner.matches[index - 1]?.id; const parentMatch = parentMatchId ? inner.router.getMatch(parentMatchId) : void 0; if (inner.router.isShell()) { existingMatch.ssr = matchId === rootRouteId; return; } if (parentMatch?.ssr === false) { existingMatch.ssr = false; return; } const parentOverride = (tempSsr2) => { if (tempSsr2 === true && parentMatch?.ssr === "data-only") { return "data-only"; } return tempSsr2; }; const defaultSsr = inner.router.options.defaultSsr ?? true; if (route.options.ssr === void 0) { existingMatch.ssr = parentOverride(defaultSsr); return; } if (typeof route.options.ssr !== "function") { existingMatch.ssr = parentOverride(route.options.ssr); return; } const { search, params } = existingMatch; const ssrFnContext = { search: makeMaybe(search, existingMatch.searchError), params: makeMaybe(params, existingMatch.paramsError), location: inner.location, matches: inner.matches.map((match) => ({ index: match.index, pathname: match.pathname, fullPath: match.fullPath, staticData: match.staticData, id: match.id, routeId: match.routeId, search: makeMaybe(match.search, match.searchError), params: makeMaybe(match.params, match.paramsError), ssr: match.ssr })) }; const tempSsr = route.options.ssr(ssrFnContext); if (isPromise(tempSsr)) { return tempSsr.then((ssr) => { existingMatch.ssr = parentOverride(ssr ?? defaultSsr); }); } existingMatch.ssr = parentOverride(tempSsr ?? defaultSsr); return; }; var setupPendingTimeout = (inner, matchId, route, match) => { if (match._nonReactive.pendingTimeout !== void 0) return; const pendingMs = route.options.pendingMs ?? inner.router.options.defaultPendingMs; const shouldPending = !!(inner.onReady && !inner.router.isServer && !resolvePreload(inner, matchId) && (route.options.loader || route.options.beforeLoad || routeNeedsPreload(route)) && typeof pendingMs === "number" && pendingMs !== Infinity && (route.options.pendingComponent ?? inner.router.options?.defaultPendingComponent)); if (shouldPending) { const pendingTimeout = setTimeout(() => { triggerOnReady(inner); }, pendingMs); match._nonReactive.pendingTimeout = pendingTimeout; } }; var preBeforeLoadSetup = (inner, matchId, route) => { const existingMatch = inner.router.getMatch(matchId); if (!existingMatch._nonReactive.beforeLoadPromise && !existingMatch._nonReactive.loaderPromise) return; setupPendingTimeout(inner, matchId, route, existingMatch); const then = () => { const match = inner.router.getMatch(matchId); if (match.preload && (match.status === "redirected" || match.status === "notFound")) { handleRedirectAndNotFound(inner, match, match.error); } }; return existingMatch._nonReactive.beforeLoadPromise ? existingMatch._nonReactive.beforeLoadPromise.then(then) : then(); }; var executeBeforeLoad = (inner, matchId, index, route) => { const match = inner.router.getMatch(matchId); const prevLoadPromise = match._nonReactive.loadPromise; match._nonReactive.loadPromise = createControlledPromise(() => { prevLoadPromise?.resolve(); }); const { paramsError, searchError } = match; if (paramsError) { handleSerialError(inner, index, paramsError, "PARSE_PARAMS"); } if (searchError) { handleSerialError(inner, index, searchError, "VALIDATE_SEARCH"); } setupPendingTimeout(inner, matchId, route, match); const abortController = new AbortController(); const parentMatchId = inner.matches[index - 1]?.id; const parentMatch = parentMatchId ? inner.router.getMatch(parentMatchId) : void 0; const parentMatchContext = parentMatch?.context ?? inner.router.options.context ?? void 0; const context = { ...parentMatchContext, ...match.__routeContext }; let isPending = false; const pending = () => { if (isPending) return; isPending = true; inner.updateMatch(matchId, (prev) => ({ ...prev, isFetching: "beforeLoad", fetchCount: prev.fetchCount + 1, abortController, context })); }; const resolve = () => { match._nonReactive.beforeLoadPromise?.resolve(); match._nonReactive.beforeLoadPromise = void 0; inner.updateMatch(matchId, (prev) => ({ ...prev, isFetching: false })); }; if (!route.options.beforeLoad) { batch(() => { pending(); resolve(); }); return; } match._nonReactive.beforeLoadPromise = createControlledPromise(); const { search, params, cause } = match; const preload = resolvePreload(inner, matchId); const beforeLoadFnContext = { search, abortController, params, preload, context, location: inner.location, navigate: (opts) => inner.router.navigate({ ...opts, _fromLocation: inner.location }), buildLocation: inner.router.buildLocation, cause: preload ? "preload" : cause, matches: inner.matches, ...inner.router.options.additionalContext }; const updateContext = (beforeLoadContext2) => { if (beforeLoadContext2 === void 0) { batch(() => { pending(); resolve(); }); return; } if (isRedirect(beforeLoadContext2) || isNotFound(beforeLoadContext2)) { pending(); handleSerialError(inner, index, beforeLoadContext2, "BEFORE_LOAD"); } batch(() => { pending(); inner.updateMatch(matchId, (prev) => ({ ...prev, __beforeLoadContext: beforeLoadContext2, context: { ...prev.context, ...beforeLoadContext2 } })); resolve(); }); }; let beforeLoadContext; try { beforeLoadContext = route.options.beforeLoad(beforeLoadFnContext); if (isPromise(beforeLoadContext)) { pending(); return beforeLoadContext.catch((err) => { handleSerialError(inner, index, err, "BEFORE_LOAD"); }).then(updateContext); } } catch (err) { pending(); handleSerialError(inner, index, err, "BEFORE_LOAD"); } updateContext(beforeLoadContext); return; }; var handleBeforeLoad = (inner, index) => { const { id: matchId, routeId } = inner.matches[index]; const route = inner.router.looseRoutesById[routeId]; const serverSsr = () => { if (inner.router.isServer) { const maybePromise = isBeforeLoadSsr(inner, matchId, index, route); if (isPromise(maybePromise)) return maybePromise.then(queueExecution); } return queueExecution(); }; const execute = () => executeBeforeLoad(inner, matchId, index, route); const queueExecution = () => { if (shouldSkipLoader(inner, matchId)) return; const result = preBeforeLoadSetup(inner, matchId, route); return isPromise(result) ? result.then(execute) : execute(); }; return serverSsr(); }; var executeHead = (inner, matchId, route) => { const match = inner.router.getMatch(matchId); if (!match) { return; } if (!route.options.head && !route.options.scripts && !route.options.headers) { return; } const assetContext = { matches: inner.matches, match, params: match.params, loaderData: match.loaderData }; return Promise.all([ route.options.head?.(assetContext), route.options.scripts?.(assetContext), route.options.headers?.(assetContext) ]).then(([headFnContent, scripts, headers]) => { const meta = headFnContent?.meta; const links = headFnContent?.links; const headScripts = headFnContent?.scripts; const styles = headFnContent?.styles; return { meta, links, headScripts, headers, scripts, styles }; }); }; var getLoaderContext = (inner, matchId, index, route) => { const parentMatchPromise = inner.matchPromises[index - 1]; const { params, loaderDeps, abortController, context, cause } = inner.router.getMatch(matchId); const preload = resolvePreload(inner, matchId); return { params, deps: loaderDeps, preload: !!preload, parentMatchPromise, abortController, context, location: inner.location, navigate: (opts) => inner.router.navigate({ ...opts, _fromLocation: inner.location }), cause: preload ? "preload" : cause, route, ...inner.router.options.additionalContext }; }; var runLoader = async (inner, matchId, index, route) => { try { const match = inner.router.getMatch(matchId); try { if (!inner.router.isServer || match.ssr === true) { loadRouteChunk(route); } const loaderResult = route.options.loader?.( getLoaderContext(inner, matchId, index, route) ); const loaderResultIsPromise = route.options.loader && isPromise(loaderResult); const willLoadSomething = !!(loaderResultIsPromise || route._lazyPromise || route._componentsPromise || route.options.head || route.options.scripts || route.options.headers || match._nonReactive.minPendingPromise); if (willLoadSomething) { inner.updateMatch(matchId, (prev) => ({ ...prev, isFetching: "loader" })); } if (route.options.loader) { const loaderData = loaderResultIsPromise ? await loaderResult : loaderResult; handleRedirectAndNotFound( inner, inner.router.getMatch(matchId), loaderData ); if (loaderData !== void 0) { inner.updateMatch(matchId, (prev) => ({ ...prev, loaderData })); } } if (route._lazyPromise) await route._lazyPromise; const headResult = executeHead(inner, matchId, route); const head = headResult ? await headResult : void 0; const pendingPromise = match._nonReactive.minPendingPromise; if (pendingPromise) await pendingPromise; if (route._componentsPromise) await route._componentsPromise; inner.updateMatch(matchId, (prev) => ({ ...prev, error: void 0, status: "success", isFetching: false, updatedAt: Date.now(), ...head })); } catch (e) { let error = e; const pendingPromise = match._nonReactive.minPendingPromise; if (pendingPromise) await pendingPromise; if (isNotFound(e)) { await route.options.notFoundComponent?.preload?.(); } handleRedirectAndNotFound(inner, inner.router.getMatch(matchId), e); try { route.options.onError?.(e); } catch (onErrorError) { error = onErrorError; handleRedirectAndNotFound( inner, inner.router.getMatch(matchId), onErrorError ); } const headResult = executeHead(inner, matchId, route); const head = headResult ? await headResult : void 0; inner.updateMatch(matchId, (prev) => ({ ...prev, error, status: "error", isFetching: false, ...head })); } } catch (err) { const match = inner.router.getMatch(matchId); if (match) { const headResult = executeHead(inner, matchId, route); if (headResult) { const head = await headResult; inner.updateMatch(matchId, (prev) => ({ ...prev, ...head })); } match._nonReactive.loaderPromise = void 0; } handleRedirectAndNotFound(inner, match, err); } }; var loadRouteMatch = async (inner, index) => { const { id: matchId, routeId } = inner.matches[index]; let loaderShouldRunAsync = false; let loaderIsRunningAsync = false; const route = inner.router.looseRoutesById[routeId]; if (shouldSkipLoader(inner, matchId)) { if (inner.router.isServer) { const headResult = executeHead(inner, matchId, route); if (headResult) { const head = await headResult; inner.updateMatch(matchId, (prev) => ({ ...prev, ...head })); } return inner.router.getMatch(matchId); } } else { const prevMatch = inner.router.getMatch(matchId); if (prevMatch._nonReactive.loaderPromise) { if (prevMatch.status === "success" && !inner.sync && !prevMatch.preload) { return prevMatch; } await prevMatch._nonReactive.loaderPromise; const match2 = inner.router.getMatch(matchId); if (match2.error) { handleRedirectAndNotFound(inner, match2, match2.error); } } else { const age = Date.now() - prevMatch.updatedAt; const preload = resolvePreload(inner, matchId); const staleAge = preload ? route.options.preloadStaleTime ?? inner.router.options.defaultPreloadStaleTime ?? 3e4 : route.options.staleTime ?? inner.router.options.defaultStaleTime ?? 0; const shouldReloadOption = route.options.shouldReload; const shouldReload = typeof shouldReloadOption === "function" ? shouldReloadOption(getLoaderContext(inner, matchId, index, route)) : shouldReloadOption; const nextPreload = !!preload && !inner.router.state.matches.some((d) => d.id === matchId); const match2 = inner.router.getMatch(matchId); match2._nonReactive.loaderPromise = createControlledPromise(); if (nextPreload !== match2.preload) { inner.updateMatch(matchId, (prev) => ({ ...prev, preload: nextPreload })); } const { status, invalid } = match2; loaderShouldRunAsync = status === "success" && (invalid || (shouldReload ?? age > staleAge)); if (preload && route.options.preload === false) ; else if (loaderShouldRunAsync && !inner.sync) { loaderIsRunningAsync = true; (async () => { try { await runLoader(inner, matchId, index, route); const match3 = inner.router.getMatch(matchId); match3._nonReactive.loaderPromise?.resolve(); match3._nonReactive.loadPromise?.resolve(); match3._nonReactive.loaderPromise = void 0; } catch (err) { if (isRedirect(err)) { await inner.router.navigate(err.options); } } })(); } else if (status !== "success" || loaderShouldRunAsync && inner.sync) { await runLoader(inner, matchId, index, route); } else { const headResult = executeHead(inner, matchId, route); if (headResult) { const head = await headResult; inner.updateMatch(matchId, (prev) => ({ ...prev, ...head })); } } } } const match = inner.router.getMatch(matchId); if (!loaderIsRunningAsync) { match._nonReactive.loaderPromise?.resolve(); match._nonReactive.loadPromise?.resolve(); } clearTimeout(match._nonReactive.pendingTimeout); match._nonReactive.pendingTimeout = void 0; if (!loaderIsRunningAsync) match._nonReactive.loaderPromise = void 0; match._nonReactive.dehydrated = void 0; const nextIsFetching = loaderIsRunningAsync ? match.isFetching : false; if (nextIsFetching !== match.isFetching || match.invalid !== false) { inner.updateMatch(matchId, (prev) => ({ ...prev, isFetching: nextIsFetching, invalid: false })); return inner.router.getMatch(matchId); } else { return match; } }; async function loadMatches(arg) { const inner = Object.assign(arg, { matchPromises: [] }); if (!inner.router.isServer && inner.router.state.matches.some((d) => d._forcePending)) { triggerOnReady(inner); } try { for (let i = 0; i < inner.matches.length; i++) { const beforeLoad = handleBeforeLoad(inner, i); if (isPromise(beforeLoad)) await beforeLoad; } const max = inner.firstBadMatchIndex ?? inner.matches.length; for (let i = 0; i < max; i++) { inner.matchPromises.push(loadRouteMatch(inner, i)); } await Promise.all(inner.matchPromises); const readyPromise = triggerOnReady(inner); if (isPromise(readyPromise)) await readyPromise; } catch (err) { if (isNotFound(err) && !inner.preload) { const readyPromise = triggerOnReady(inner); if (isPromise(readyPromise)) await readyPromise; throw err; } if (isRedirect(err)) { throw err; } } return inner.matches; } async function loadRouteChunk(route) { if (!route._lazyLoaded && route._lazyPromise === void 0) { if (route.lazyFn) { route._lazyPromise = route.lazyFn().then((lazyRoute) => { const { id: _id, ...options } = lazyRoute.options; Object.assign(route.options, options); route._lazyLoaded = true; route._lazyPromise = void 0; }); } else { route._lazyLoaded = true; } } if (!route._componentsLoaded && route._componentsPromise === void 0) { const loadComponents = () => { const preloads = []; for (const type of componentTypes) { const preload = route.options[type]?.preload; if (preload) preloads.push(preload()); } if (preloads.length) return Promise.all(preloads).then(() => { route._componentsLoaded = true; route._componentsPromise = void 0; }); route._componentsLoaded = true; route._componentsPromise = void 0; return; }; route._componentsPromise = route._lazyPromise ? route._lazyPromise.then(loadComponents) : loadComponents(); } return route._componentsPromise; } function makeMaybe(value, error) { if (error) { return { status: "error", error }; } return { status: "success", value }; } function routeNeedsPreload(route) { for (const componentType of componentTypes) { if (route.options[componentType]?.preload) { return true; } } return false; } var componentTypes = [ "component", "errorComponent", "pendingComponent", "notFoundComponent" ]; // node_modules/@tanstack/router-core/dist/esm/rewrite.js function composeRewrites(rewrites) { return { input: ({ url }) => { for (const rewrite of rewrites) { url = executeRewriteInput(rewrite, url); } return url; }, output: ({ url }) => { for (let i = rewrites.length - 1; i >= 0; i--) { url = executeRewriteOutput(rewrites[i], url); } return url; } }; } function rewriteBasepath(opts) { const trimmedBasepath = trimPath(opts.basepath); const normalizedBasepath = `/${trimmedBasepath}`; const normalizedBasepathWithSlash = `${normalizedBasepath}/`; const checkBasepath = opts.caseSensitive ? normalizedBasepath : normalizedBasepath.toLowerCase(); const checkBasepathWithSlash = opts.caseSensitive ? normalizedBasepathWithSlash : normalizedBasepathWithSlash.toLowerCase(); return { input: ({ url }) => { const pathname = opts.caseSensitive ? url.pathname : url.pathname.toLowerCase(); if (pathname === checkBasepath) { url.pathname = "/"; } else if (pathname.startsWith(checkBasepathWithSlash)) { url.pathname = url.pathname.slice(normalizedBasepath.length); } return url; }, output: ({ url }) => { url.pathname = joinPaths(["/", trimmedBasepath, url.pathname]); return url; } }; } function executeRewriteInput(rewrite, url) { const res = rewrite?.input?.({ url }); if (res) { if (typeof res === "string") { return new URL(res); } else if (res instanceof URL) { return res; } } return url; } function executeRewriteOutput(rewrite, url) { const res = rewrite?.output?.({ url }); if (res) { if (typeof res === "string") { return new URL(res); } else if (res instanceof URL) { return res; } } return url; } // node_modules/@tanstack/router-core/dist/esm/router.js function getLocationChangeInfo(routerState) { const fromLocation = routerState.resolvedLocation; const toLocation = routerState.location; const pathChanged = fromLocation?.pathname !== toLocation.pathname; const hrefChanged = fromLocation?.href !== toLocation.href; const hashChanged = fromLocation?.hash !== toLocation.hash; return { fromLocation, toLocation, pathChanged, hrefChanged, hashChanged }; } var RouterCore = class { /** * @deprecated Use the `createRouter` function instead */ constructor(options) { this.tempLocationKey = `${Math.round( Math.random() * 1e7 )}`; this.resetNextScroll = true; this.shouldViewTransition = void 0; this.isViewTransitionTypesSupported = void 0; this.subscribers = /* @__PURE__ */ new Set(); this.isScrollRestoring = false; this.isScrollRestorationSetup = false; this.startTransition = (fn) => fn(); this.update = (newOptions) => { if (newOptions.notFoundRoute) { console.warn( "The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info." ); } const prevOptions = this.options; const prevBasepath = this.basepath ?? prevOptions?.basepath ?? "/"; const basepathWasUnset = this.basepath === void 0; const prevRewriteOption = prevOptions?.rewrite; this.options = { ...prevOptions, ...newOptions }; this.isServer = this.options.isServer ?? typeof document === "undefined"; this.pathParamsDecodeCharMap = this.options.pathParamsAllowedCharacters ? new Map( this.options.pathParamsAllowedCharacters.map((char) => [ encodeURIComponent(char), char ]) ) : void 0; if (!this.history || this.options.history && this.options.history !== this.history) { if (!this.options.history) { if (!this.isServer) { this.history = createBrowserHistory(); } } else { this.history = this.options.history; } } this.origin = this.options.origin; if (!this.origin) { if (!this.isServer && window?.origin && window.origin !== "null") { this.origin = window.origin; } else { this.origin = "http://localhost"; } } if (this.history) { this.updateLatestLocation(); } if (this.options.routeTree !== this.routeTree) { this.routeTree = this.options.routeTree; this.buildRouteTree(); } if (!this.__store && this.latestLocation) { this.__store = new Store(getInitialRouterState(this.latestLocation), { onUpdate: () => { this.__store.state = { ...this.state, cachedMatches: this.state.cachedMatches.filter( (d) => !["redirected"].includes(d.status) ) }; } }); setupScrollRestoration(this); } let needsLocationUpdate = false; const nextBasepath = this.options.basepath ?? "/"; const nextRewriteOption = this.options.rewrite; const basepathChanged = basepathWasUnset || prevBasepath !== nextBasepath; const rewriteChanged = prevRewriteOption !== nextRewriteOption; if (basepathChanged || rewriteChanged) { this.basepath = nextBasepath; const rewrites = []; if (trimPath(nextBasepath) !== "") { rewrites.push( rewriteBasepath({ basepath: nextBasepath }) ); } if (nextRewriteOption) { rewrites.push(nextRewriteOption); } this.rewrite = rewrites.length === 0 ? void 0 : rewrites.length === 1 ? rewrites[0] : composeRewrites(rewrites); if (this.history) { this.updateLatestLocation(); } needsLocationUpdate = true; } if (needsLocationUpdate && this.__store) { this.__store.state = { ...this.state, location: this.latestLocation }; } if (typeof window !== "undefined" && "CSS" in window && typeof window.CSS?.supports === "function") { this.isViewTransitionTypesSupported = window.CSS.supports( "selector(:active-view-transition-type(a)" ); } }; this.updateLatestLocation = () => { this.latestLocation = this.parseLocation( this.history.location, this.latestLocation ); }; this.buildRouteTree = () => { const { routesById, routesByPath, flatRoutes } = processRouteTree({ routeTree: this.routeTree, initRoute: (route, i) => { route.init({ originalIndex: i }); } }); this.routesById = routesById; this.routesByPath = routesByPath; this.flatRoutes = flatRoutes; const notFoundRoute = this.options.notFoundRoute; if (notFoundRoute) { notFoundRoute.init({ originalIndex: 99999999999 }); this.routesById[notFoundRoute.id] = notFoundRoute; } }; this.subscribe = (eventType, fn) => { const listener = { eventType, fn }; this.subscribers.add(listener); return () => { this.subscribers.delete(listener); }; }; this.emit = (routerEvent) => { this.subscribers.forEach((listener) => { if (listener.eventType === routerEvent.type) { listener.fn(routerEvent); } }); }; this.parseLocation = (locationToParse, previousLocation) => { const parse = ({ href, state }) => { const fullUrl = new URL(href, this.origin); const url = executeRewriteInput(this.rewrite, fullUrl); const parsedSearch = this.options.parseSearch(url.search); const searchStr = this.options.stringifySearch(parsedSearch); url.search = searchStr; const fullPath = url.href.replace(url.origin, ""); const { pathname, hash } = url; return { href: fullPath, publicHref: href, url: url.href, pathname, searchStr, search: replaceEqualDeep(previousLocation?.search, parsedSearch), hash: hash.split("#").reverse()[0] ?? "", state: replaceEqualDeep(previousLocation?.state, state) }; }; const location = parse(locationToParse); const { __tempLocation, __tempKey } = location.state; if (__tempLocation && (!__tempKey || __tempKey === this.tempLocationKey)) { const parsedTempLocation = parse(__tempLocation); parsedTempLocation.state.key = location.state.key; parsedTempLocation.state.__TSR_key = location.state.__TSR_key; delete parsedTempLocation.state.__tempLocation; return { ...parsedTempLocation, maskedLocation: location }; } return location; }; this.resolvePathWithBase = (from, path) => { const resolvedPath = resolvePath({ base: from, to: cleanPath(path), trailingSlash: this.options.trailingSlash, parseCache: this.parsePathnameCache }); return resolvedPath; }; this.matchRoutes = (pathnameOrNext, locationSearchOrOpts, opts) => { if (typeof pathnameOrNext === "string") { return this.matchRoutesInternal( { pathname: pathnameOrNext, search: locationSearchOrOpts }, opts ); } return this.matchRoutesInternal(pathnameOrNext, locationSearchOrOpts); }; this.parsePathnameCache = createLRUCache(1e3); this.getMatchedRoutes = (pathname, routePathname) => { return getMatchedRoutes({ pathname, routePathname, caseSensitive: this.options.caseSensitive, routesByPath: this.routesByPath, routesById: this.routesById, flatRoutes: this.flatRoutes, parseCache: this.parsePathnameCache }); }; this.cancelMatch = (id) => { const match = this.getMatch(id); if (!match) return; match.abortController.abort(); clearTimeout(match._nonReactive.pendingTimeout); match._nonReactive.pendingTimeout = void 0; }; this.cancelMatches = () => { this.state.pendingMatches?.forEach((match) => { this.cancelMatch(match.id); }); }; this.buildLocation = (opts) => { const build = (dest = {}) => { const currentLocation = dest._fromLocation || this.latestLocation; const allCurrentLocationMatches = this.matchRoutes(currentLocation, { _buildLocation: true }); const lastMatch = last(allCurrentLocationMatches); if (dest.from && true && dest._isNavigate) { const allFromMatches = this.getMatchedRoutes( dest.from, void 0 ).matchedRoutes; const matchedFrom = findLast(allCurrentLocationMatches, (d) => { return comparePaths(d.fullPath, dest.from); }); const matchedCurrent = findLast(allFromMatches, (d) => { return comparePaths(d.fullPath, lastMatch.fullPath); }); if (!matchedFrom && !matchedCurrent) { console.warn(`Could not find match for from: ${dest.from}`); } } const defaultedFromPath = dest.unsafeRelative === "path" ? currentLocation.pathname : dest.from ?? lastMatch.fullPath; const fromPath = this.resolvePathWithBase(defaultedFromPath, "."); const fromSearch = lastMatch.search; const fromParams = { ...lastMatch.params }; const nextTo = dest.to ? this.resolvePathWithBase(fromPath, `${dest.to}`) : this.resolvePathWithBase(fromPath, "."); const nextParams = dest.params === false || dest.params === null ? {} : (dest.params ?? true) === true ? fromParams : Object.assign( fromParams, functionalUpdate(dest.params, fromParams) ); const interpolatedNextTo = interpolatePath({ path: nextTo, params: nextParams, parseCache: this.parsePathnameCache }).interpolatedPath; const destRoutes = this.matchRoutes(interpolatedNextTo, void 0, { _buildLocation: true }).map((d) => this.looseRoutesById[d.routeId]); if (Object.keys(nextParams).length > 0) { for (const route of destRoutes) { const fn = route.options.params?.stringify ?? route.options.stringifyParams; if (fn) { Object.assign(nextParams, fn(nextParams)); } } } const nextPathname = decodePathSegment( interpolatePath({ // Use the original template path for interpolation // This preserves the original parameter syntax including optional parameters path: nextTo, params: nextParams, leaveWildcards: false, leaveParams: opts.leaveParams, decodeCharMap: this.pathParamsDecodeCharMap, parseCache: this.parsePathnameCache }).interpolatedPath ); let nextSearch = fromSearch; if (opts._includeValidateSearch && this.options.search?.strict) { const validatedSearch = {}; destRoutes.forEach((route) => { if (route.options.validateSearch) { try { Object.assign( validatedSearch, validateSearch(route.options.validateSearch, { ...validatedSearch, ...nextSearch }) ); } catch { } } }); nextSearch = validatedSearch; } nextSearch = applySearchMiddleware({ search: nextSearch, dest, destRoutes, _includeValidateSearch: opts._includeValidateSearch }); nextSearch = replaceEqualDeep(fromSearch, nextSearch); const searchStr = this.options.stringifySearch(nextSearch); const hash = dest.hash === true ? currentLocation.hash : dest.hash ? functionalUpdate(dest.hash, currentLocation.hash) : void 0; const hashStr = hash ? `#${hash}` : ""; let nextState = dest.state === true ? currentLocation.state : dest.state ? functionalUpdate(dest.state, currentLocation.state) : {}; nextState = replaceEqualDeep(currentLocation.state, nextState); const fullPath = `${nextPathname}${searchStr}${hashStr}`; const url = new URL(fullPath, this.origin); const rewrittenUrl = executeRewriteOutput(this.rewrite, url); return { publicHref: rewrittenUrl.pathname + rewrittenUrl.search + rewrittenUrl.hash, href: fullPath, url: rewrittenUrl.href, pathname: nextPathname, search: nextSearch, searchStr, state: nextState, hash: hash ?? "", unmaskOnReload: dest.unmaskOnReload }; }; const buildWithMatches = (dest = {}, maskedDest) => { const next = build(dest); let maskedNext = maskedDest ? build(maskedDest) : void 0; if (!maskedNext) { let params = {}; const foundMask = this.options.routeMasks?.find((d) => { const match = matchPathname( next.pathname, { to: d.from, caseSensitive: false, fuzzy: false }, this.parsePathnameCache ); if (match) { params = match; return true; } return false; }); if (foundMask) { const { from: _from, ...maskProps } = foundMask; maskedDest = { from: opts.from, ...maskProps, params }; maskedNext = build(maskedDest); } } if (maskedNext) { next.maskedLocation = maskedNext; } return next; }; if (opts.mask) { return buildWithMatches(opts, { from: opts.from, ...opts.mask }); } return buildWithMatches(opts); }; this.commitLocation = ({ viewTransition, ignoreBlocker, ...next }) => { const isSameState = () => { const ignoredProps = [ "key", // TODO: Remove in v2 - use __TSR_key instead "__TSR_key", "__TSR_index", "__hashScrollIntoViewOptions" ]; ignoredProps.forEach((prop) => { next.state[prop] = this.latestLocation.state[prop]; }); const isEqual = deepEqual(next.state, this.latestLocation.state); ignoredProps.forEach((prop) => { delete next.state[prop]; }); return isEqual; }; const isSameUrl = trimPathRight(this.latestLocation.href) === trimPathRight(next.href); const previousCommitPromise = this.commitLocationPromise; this.commitLocationPromise = createControlledPromise(() => { previousCommitPromise?.resolve(); }); if (isSameUrl && isSameState()) { this.load(); } else { let { maskedLocation, hashScrollIntoView, ...nextHistory } = next; if (maskedLocation) { nextHistory = { ...maskedLocation, state: { ...maskedLocation.state, __tempKey: void 0, __tempLocation: { ...nextHistory, search: nextHistory.searchStr, state: { ...nextHistory.state, __tempKey: void 0, __tempLocation: void 0, __TSR_key: void 0, key: void 0 // TODO: Remove in v2 - use __TSR_key instead } } } }; if (nextHistory.unmaskOnReload ?? this.options.unmaskOnReload ?? false) { nextHistory.state.__tempKey = this.tempLocationKey; } } nextHistory.state.__hashScrollIntoViewOptions = hashScrollIntoView ?? this.options.defaultHashScrollIntoView ?? true; this.shouldViewTransition = viewTransition; this.history[next.replace ? "replace" : "push"]( nextHistory.publicHref, nextHistory.state, { ignoreBlocker } ); } this.resetNextScroll = next.resetScroll ?? true; if (!this.history.subscribers.size) { this.load(); } return this.commitLocationPromise; }; this.buildAndCommitLocation = ({ replace, resetScroll, hashScrollIntoView, viewTransition, ignoreBlocker, href, ...rest } = {}) => { if (href) { const currentIndex = this.history.location.state.__TSR_index; const parsed = parseHref(href, { __TSR_index: replace ? currentIndex : currentIndex + 1 }); rest.to = parsed.pathname; rest.search = this.options.parseSearch(parsed.search); rest.hash = parsed.hash.slice(1); } const location = this.buildLocation({ ...rest, _includeValidateSearch: true }); return this.commitLocation({ ...location, viewTransition, replace, resetScroll, hashScrollIntoView, ignoreBlocker }); }; this.navigate = ({ to, reloadDocument, href, ...rest }) => { if (!reloadDocument && href) { try { new URL(`${href}`); reloadDocument = true; } catch { } } if (reloadDocument) { if (!href) { const location = this.buildLocation({ to, ...rest }); href = location.url; } if (rest.replace) { window.location.replace(href); } else { window.location.href = href; } return Promise.resolve(); } return this.buildAndCommitLocation({ ...rest, href, to, _isNavigate: true }); }; this.beforeLoad = () => { this.cancelMatches(); this.updateLatestLocation(); if (this.isServer) { const nextLocation = this.buildLocation({ to: this.latestLocation.pathname, search: true, params: true, hash: true, state: true, _includeValidateSearch: true }); const normalizeUrl = (url) => { try { return encodeURI(decodeURI(url)); } catch { return url; } }; if (trimPath(normalizeUrl(this.latestLocation.href)) !== trimPath(normalizeUrl(nextLocation.href))) { let href = nextLocation.url; if (this.origin && href.startsWith(this.origin)) { href = href.replace(this.origin, "") || "/"; } throw redirect({ href }); } } const pendingMatches = this.matchRoutes(this.latestLocation); this.__store.setState((s) => ({ ...s, status: "pending", statusCode: 200, isLoading: true, location: this.latestLocation, pendingMatches, // If a cached moved to pendingMatches, remove it from cachedMatches cachedMatches: s.cachedMatches.filter( (d) => !pendingMatches.some((e) => e.id === d.id) ) })); }; this.load = async (opts) => { let redirect2; let notFound2; let loadPromise; loadPromise = new Promise((resolve) => { this.startTransition(async () => { try { this.beforeLoad(); const next = this.latestLocation; const prevLocation = this.state.resolvedLocation; if (!this.state.redirect) { this.emit({ type: "onBeforeNavigate", ...getLocationChangeInfo({ resolvedLocation: prevLocation, location: next }) }); } this.emit({ type: "onBeforeLoad", ...getLocationChangeInfo({ resolvedLocation: prevLocation, location: next }) }); await loadMatches({ router: this, sync: opts?.sync, matches: this.state.pendingMatches, location: next, updateMatch: this.updateMatch, // eslint-disable-next-line @typescript-eslint/require-await onReady: async () => { this.startViewTransition(async () => { let exitingMatches; let enteringMatches; let stayingMatches; batch(() => { this.__store.setState((s) => { const previousMatches = s.matches; const newMatches = s.pendingMatches || s.matches; exitingMatches = previousMatches.filter( (match) => !newMatches.some((d) => d.id === match.id) ); enteringMatches = newMatches.filter( (match) => !previousMatches.some((d) => d.id === match.id) ); stayingMatches = previousMatches.filter( (match) => newMatches.some((d) => d.id === match.id) ); return { ...s, isLoading: false, loadedAt: Date.now(), matches: newMatches, pendingMatches: void 0, cachedMatches: [ ...s.cachedMatches, ...exitingMatches.filter((d) => d.status !== "error") ] }; }); this.clearExpiredCache(); }); [ [exitingMatches, "onLeave"], [enteringMatches, "onEnter"], [stayingMatches, "onStay"] ].forEach(([matches, hook]) => { matches.forEach((match) => { this.looseRoutesById[match.routeId].options[hook]?.(match); }); }); }); } }); } catch (err) { if (isRedirect(err)) { redirect2 = err; if (!this.isServer) { this.navigate({ ...redirect2.options, replace: true, ignoreBlocker: true }); } } else if (isNotFound(err)) { notFound2 = err; } this.__store.setState((s) => ({ ...s, statusCode: redirect2 ? redirect2.status : notFound2 ? 404 : s.matches.some((d) => d.status === "error") ? 500 : 200, redirect: redirect2 })); } if (this.latestLoadPromise === loadPromise) { this.commitLocationPromise?.resolve(); this.latestLoadPromise = void 0; this.commitLocationPromise = void 0; } resolve(); }); }); this.latestLoadPromise = loadPromise; await loadPromise; while (this.latestLoadPromise && loadPromise !== this.latestLoadPromise) { await this.latestLoadPromise; } let newStatusCode = void 0; if (this.hasNotFoundMatch()) { newStatusCode = 404; } else if (this.__store.state.matches.some((d) => d.status === "error")) { newStatusCode = 500; } if (newStatusCode !== void 0) { this.__store.setState((s) => ({ ...s, statusCode: newStatusCode })); } }; this.startViewTransition = (fn) => { const shouldViewTransition = this.shouldViewTransition ?? this.options.defaultViewTransition; delete this.shouldViewTransition; if (shouldViewTransition && typeof document !== "undefined" && "startViewTransition" in document && typeof document.startViewTransition === "function") { let startViewTransitionParams; if (typeof shouldViewTransition === "object" && this.isViewTransitionTypesSupported) { const next = this.latestLocation; const prevLocation = this.state.resolvedLocation; const resolvedViewTransitionTypes = typeof shouldViewTransition.types === "function" ? shouldViewTransition.types( getLocationChangeInfo({ resolvedLocation: prevLocation, location: next }) ) : shouldViewTransition.types; if (resolvedViewTransitionTypes === false) { fn(); return; } startViewTransitionParams = { update: fn, types: resolvedViewTransitionTypes }; } else { startViewTransitionParams = fn; } document.startViewTransition(startViewTransitionParams); } else { fn(); } }; this.updateMatch = (id, updater) => { const matchesKey = this.state.pendingMatches?.some((d) => d.id === id) ? "pendingMatches" : this.state.matches.some((d) => d.id === id) ? "matches" : this.state.cachedMatches.some((d) => d.id === id) ? "cachedMatches" : ""; if (matchesKey) { this.__store.setState((s) => ({ ...s, [matchesKey]: s[matchesKey]?.map((d) => d.id === id ? updater(d) : d) })); } }; this.getMatch = (matchId) => { const findFn = (d) => d.id === matchId; return this.state.cachedMatches.find(findFn) ?? this.state.pendingMatches?.find(findFn) ?? this.state.matches.find(findFn); }; this.invalidate = (opts) => { const invalidate = (d) => { if (opts?.filter?.(d) ?? true) { return { ...d, invalid: true, ...opts?.forcePending || d.status === "error" ? { status: "pending", error: void 0 } : void 0 }; } return d; }; this.__store.setState((s) => ({ ...s, matches: s.matches.map(invalidate), cachedMatches: s.cachedMatches.map(invalidate), pendingMatches: s.pendingMatches?.map(invalidate) })); this.shouldViewTransition = false; return this.load({ sync: opts?.sync }); }; this.resolveRedirect = (redirect2) => { if (!redirect2.options.href) { const location = this.buildLocation(redirect2.options); let href = location.url; if (this.origin && href.startsWith(this.origin)) { href = href.replace(this.origin, "") || "/"; } redirect2.options.href = location.href; redirect2.headers.set("Location", href); } if (!redirect2.headers.get("Location")) { redirect2.headers.set("Location", redirect2.options.href); } return redirect2; }; this.clearCache = (opts) => { const filter = opts?.filter; if (filter !== void 0) { this.__store.setState((s) => { return { ...s, cachedMatches: s.cachedMatches.filter( (m) => !filter(m) ) }; }); } else { this.__store.setState((s) => { return { ...s, cachedMatches: [] }; }); } }; this.clearExpiredCache = () => { const filter = (d) => { const route = this.looseRoutesById[d.routeId]; if (!route.options.loader) { return true; } const gcTime = (d.preload ? route.options.preloadGcTime ?? this.options.defaultPreloadGcTime : route.options.gcTime ?? this.options.defaultGcTime) ?? 5 * 60 * 1e3; const isError = d.status === "error"; if (isError) return true; const gcEligible = Date.now() - d.updatedAt >= gcTime; return gcEligible; }; this.clearCache({ filter }); }; this.loadRouteChunk = loadRouteChunk; this.preloadRoute = async (opts) => { const next = this.buildLocation(opts); let matches = this.matchRoutes(next, { throwOnError: true, preload: true, dest: opts }); const activeMatchIds = new Set( [...this.state.matches, ...this.state.pendingMatches ?? []].map( (d) => d.id ) ); const loadedMatchIds = /* @__PURE__ */ new Set([ ...activeMatchIds, ...this.state.cachedMatches.map((d) => d.id) ]); batch(() => { matches.forEach((match) => { if (!loadedMatchIds.has(match.id)) { this.__store.setState((s) => ({ ...s, cachedMatches: [...s.cachedMatches, match] })); } }); }); try { matches = await loadMatches({ router: this, matches, location: next, preload: true, updateMatch: (id, updater) => { if (activeMatchIds.has(id)) { matches = matches.map((d) => d.id === id ? updater(d) : d); } else { this.updateMatch(id, updater); } } }); return matches; } catch (err) { if (isRedirect(err)) { if (err.options.reloadDocument) { return void 0; } return await this.preloadRoute({ ...err.options, _fromLocation: next }); } if (!isNotFound(err)) { console.error(err); } return void 0; } }; this.matchRoute = (location, opts) => { const matchLocation = { ...location, to: location.to ? this.resolvePathWithBase( location.from || "", location.to ) : void 0, params: location.params || {}, leaveParams: true }; const next = this.buildLocation(matchLocation); if (opts?.pending && this.state.status !== "pending") { return false; } const pending = opts?.pending === void 0 ? !this.state.isLoading : opts.pending; const baseLocation = pending ? this.latestLocation : this.state.resolvedLocation || this.state.location; const match = matchPathname( baseLocation.pathname, { ...opts, to: next.pathname }, this.parsePathnameCache ); if (!match) { return false; } if (location.params) { if (!deepEqual(match, location.params, { partial: true })) { return false; } } if (match && (opts?.includeSearch ?? true)) { return deepEqual(baseLocation.search, next.search, { partial: true }) ? match : false; } return match; }; this.hasNotFoundMatch = () => { return this.__store.state.matches.some( (d) => d.status === "notFound" || d.globalNotFound ); }; this.update({ defaultPreloadDelay: 50, defaultPendingMs: 1e3, defaultPendingMinMs: 500, context: void 0, ...options, caseSensitive: options.caseSensitive ?? false, notFoundMode: options.notFoundMode ?? "fuzzy", stringifySearch: options.stringifySearch ?? defaultStringifySearch, parseSearch: options.parseSearch ?? defaultParseSearch }); if (typeof document !== "undefined") { self.__TSR_ROUTER__ = this; } } isShell() { return !!this.options.isShell; } isPrerendering() { return !!this.options.isPrerendering; } get state() { return this.__store.state; } get looseRoutesById() { return this.routesById; } matchRoutesInternal(next, opts) { const { foundRoute, matchedRoutes, routeParams } = this.getMatchedRoutes( next.pathname, opts?.dest?.to ); let isGlobalNotFound = false; if ( // If we found a route, and it's not an index route and we have left over path foundRoute ? foundRoute.path !== "/" && routeParams["**"] : ( // Or if we didn't find a route and we have left over path trimPathRight(next.pathname) ) ) { if (this.options.notFoundRoute) { matchedRoutes.push(this.options.notFoundRoute); } else { isGlobalNotFound = true; } } const globalNotFoundRouteId = (() => { if (!isGlobalNotFound) { return void 0; } if (this.options.notFoundMode !== "root") { for (let i = matchedRoutes.length - 1; i >= 0; i--) { const route = matchedRoutes[i]; if (route.children) { return route.id; } } } return rootRouteId; })(); const matches = []; const getParentContext = (parentMatch) => { const parentMatchId = parentMatch?.id; const parentContext = !parentMatchId ? this.options.context ?? void 0 : parentMatch.context ?? this.options.context ?? void 0; return parentContext; }; matchedRoutes.forEach((route, index) => { const parentMatch = matches[index - 1]; const [preMatchSearch, strictMatchSearch, searchError] = (() => { const parentSearch = parentMatch?.search ?? next.search; const parentStrictSearch = parentMatch?._strictSearch ?? void 0; try { const strictSearch = validateSearch(route.options.validateSearch, { ...parentSearch }) ?? void 0; return [ { ...parentSearch, ...strictSearch }, { ...parentStrictSearch, ...strictSearch }, void 0 ]; } catch (err) { let searchParamError = err; if (!(err instanceof SearchParamError)) { searchParamError = new SearchParamError(err.message, { cause: err }); } if (opts?.throwOnError) { throw searchParamError; } return [parentSearch, {}, searchParamError]; } })(); const loaderDeps = route.options.loaderDeps?.({ search: preMatchSearch }) ?? ""; const loaderDepsHash = loaderDeps ? JSON.stringify(loaderDeps) : ""; const { interpolatedPath, usedParams } = interpolatePath({ path: route.fullPath, params: routeParams, decodeCharMap: this.pathParamsDecodeCharMap }); const matchId = interpolatePath({ path: route.id, params: routeParams, leaveWildcards: true, decodeCharMap: this.pathParamsDecodeCharMap, parseCache: this.parsePathnameCache }).interpolatedPath + loaderDepsHash; const existingMatch = this.getMatch(matchId); const previousMatch = this.state.matches.find( (d) => d.routeId === route.id ); const strictParams = existingMatch?._strictParams ?? usedParams; let paramsError = void 0; if (!existingMatch) { const strictParseParams = route.options.params?.parse ?? route.options.parseParams; if (strictParseParams) { try { Object.assign( strictParams, strictParseParams(strictParams) ); } catch (err) { paramsError = new PathParamError(err.message, { cause: err }); if (opts?.throwOnError) { throw paramsError; } } } } Object.assign(routeParams, strictParams); const cause = previousMatch ? "stay" : "enter"; let match; if (existingMatch) { match = { ...existingMatch, cause, params: previousMatch ? replaceEqualDeep(previousMatch.params, routeParams) : routeParams, _strictParams: strictParams, search: previousMatch ? replaceEqualDeep(previousMatch.search, preMatchSearch) : replaceEqualDeep(existingMatch.search, preMatchSearch), _strictSearch: strictMatchSearch }; } else { const status = route.options.loader || route.options.beforeLoad || route.lazyFn || routeNeedsPreload(route) ? "pending" : "success"; match = { id: matchId, index, routeId: route.id, params: previousMatch ? replaceEqualDeep(previousMatch.params, routeParams) : routeParams, _strictParams: strictParams, pathname: interpolatedPath, updatedAt: Date.now(), search: previousMatch ? replaceEqualDeep(previousMatch.search, preMatchSearch) : preMatchSearch, _strictSearch: strictMatchSearch, searchError: void 0, status, isFetching: false, error: void 0, paramsError, __routeContext: void 0, _nonReactive: { loadPromise: createControlledPromise() }, __beforeLoadContext: void 0, context: {}, abortController: new AbortController(), fetchCount: 0, cause, loaderDeps: previousMatch ? replaceEqualDeep(previousMatch.loaderDeps, loaderDeps) : loaderDeps, invalid: false, preload: false, links: void 0, scripts: void 0, headScripts: void 0, meta: void 0, staticData: route.options.staticData || {}, fullPath: route.fullPath }; } if (!opts?.preload) { match.globalNotFound = globalNotFoundRouteId === route.id; } match.searchError = searchError; const parentContext = getParentContext(parentMatch); match.context = { ...parentContext, ...match.__routeContext, ...match.__beforeLoadContext }; matches.push(match); }); matches.forEach((match, index) => { const route = this.looseRoutesById[match.routeId]; const existingMatch = this.getMatch(match.id); if (!existingMatch && opts?._buildLocation !== true) { const parentMatch = matches[index - 1]; const parentContext = getParentContext(parentMatch); if (route.options.context) { const contextFnContext = { deps: match.loaderDeps, params: match.params, context: parentContext ?? {}, location: next, navigate: (opts2) => this.navigate({ ...opts2, _fromLocation: next }), buildLocation: this.buildLocation, cause: match.cause, abortController: match.abortController, preload: !!match.preload, matches }; match.__routeContext = route.options.context(contextFnContext) ?? void 0; } match.context = { ...parentContext, ...match.__routeContext, ...match.__beforeLoadContext }; } }); return matches; } }; var SearchParamError = class extends Error { }; var PathParamError = class extends Error { }; var normalize = (str) => str.endsWith("/") && str.length > 1 ? str.slice(0, -1) : str; function comparePaths(a, b) { return normalize(a) === normalize(b); } function getInitialRouterState(location) { return { loadedAt: 0, isLoading: false, isTransitioning: false, status: "idle", resolvedLocation: void 0, location, matches: [], pendingMatches: [], cachedMatches: [], statusCode: 200 }; } function validateSearch(validateSearch2, input) { if (validateSearch2 == null) return {}; if ("~standard" in validateSearch2) { const result = validateSearch2["~standard"].validate(input); if (result instanceof Promise) throw new SearchParamError("Async validation not supported"); if (result.issues) throw new SearchParamError(JSON.stringify(result.issues, void 0, 2), { cause: result }); return result.value; } if ("parse" in validateSearch2) { return validateSearch2.parse(input); } if (typeof validateSearch2 === "function") { return validateSearch2(input); } return {}; } function getMatchedRoutes({ pathname, routePathname, caseSensitive, routesByPath, routesById, flatRoutes, parseCache }) { let routeParams = {}; const trimmedPath = trimPathRight(pathname); const getMatchedParams = (route) => { const result = matchPathname( trimmedPath, { to: route.fullPath, caseSensitive: route.options?.caseSensitive ?? caseSensitive, // we need fuzzy matching for `notFoundMode: 'fuzzy'` fuzzy: true }, parseCache ); return result; }; let foundRoute = routePathname !== void 0 ? routesByPath[routePathname] : void 0; if (foundRoute) { routeParams = getMatchedParams(foundRoute); } else { let fuzzyMatch = void 0; for (const route of flatRoutes) { const matchedParams = getMatchedParams(route); if (matchedParams) { if (route.path !== "/" && matchedParams["**"]) { if (!fuzzyMatch) { fuzzyMatch = { foundRoute: route, routeParams: matchedParams }; } } else { foundRoute = route; routeParams = matchedParams; break; } } } if (!foundRoute && fuzzyMatch) { foundRoute = fuzzyMatch.foundRoute; routeParams = fuzzyMatch.routeParams; } } let routeCursor = foundRoute || routesById[rootRouteId]; const matchedRoutes = [routeCursor]; while (routeCursor.parentRoute) { routeCursor = routeCursor.parentRoute; matchedRoutes.push(routeCursor); } matchedRoutes.reverse(); return { matchedRoutes, routeParams, foundRoute }; } function applySearchMiddleware({ search, dest, destRoutes, _includeValidateSearch }) { const allMiddlewares = destRoutes.reduce( (acc, route) => { const middlewares = []; if ("search" in route.options) { if (route.options.search?.middlewares) { middlewares.push(...route.options.search.middlewares); } } else if (route.options.preSearchFilters || route.options.postSearchFilters) { const legacyMiddleware = ({ search: search2, next }) => { let nextSearch = search2; if ("preSearchFilters" in route.options && route.options.preSearchFilters) { nextSearch = route.options.preSearchFilters.reduce( (prev, next2) => next2(prev), search2 ); } const result = next(nextSearch); if ("postSearchFilters" in route.options && route.options.postSearchFilters) { return route.options.postSearchFilters.reduce( (prev, next2) => next2(prev), result ); } return result; }; middlewares.push(legacyMiddleware); } if (_includeValidateSearch && route.options.validateSearch) { const validate = ({ search: search2, next }) => { const result = next(search2); try { const validatedSearch = { ...result, ...validateSearch(route.options.validateSearch, result) ?? void 0 }; return validatedSearch; } catch { return result; } }; middlewares.push(validate); } return acc.concat(middlewares); }, [] ) ?? []; const final = ({ search: search2 }) => { if (!dest.search) { return {}; } if (dest.search === true) { return search2; } return functionalUpdate(dest.search, search2); }; allMiddlewares.push(final); const applyNext = (index, currentSearch) => { if (index >= allMiddlewares.length) { return currentSearch; } const middleware = allMiddlewares[index]; const next = (newSearch) => { return applyNext(index + 1, newSearch); }; return middleware({ search: currentSearch, next }); }; return applyNext(0, search); } // node_modules/@tanstack/router-core/dist/esm/link.js var preloadWarning = "Error preloading route! \u261D\uFE0F"; // node_modules/@tanstack/router-core/dist/esm/route.js var BaseRoute = class { constructor(options) { this.init = (opts) => { this.originalIndex = opts.originalIndex; const options2 = this.options; const isRoot = !options2?.path && !options2?.id; this.parentRoute = this.options.getParentRoute?.(); if (isRoot) { this._path = rootRouteId; } else if (!this.parentRoute) { invariant( false, `Child Route instances must pass a 'getParentRoute: () => ParentRoute' option that returns a Route instance.` ); } let path = isRoot ? rootRouteId : options2?.path; if (path && path !== "/") { path = trimPathLeft(path); } const customId = options2?.id || path; let id = isRoot ? rootRouteId : joinPaths([ this.parentRoute.id === rootRouteId ? "" : this.parentRoute.id, customId ]); if (path === rootRouteId) { path = "/"; } if (id !== rootRouteId) { id = joinPaths(["/", id]); } const fullPath = id === rootRouteId ? "/" : joinPaths([this.parentRoute.fullPath, path]); this._path = path; this._id = id; this._fullPath = fullPath; this._to = fullPath; }; this.clone = (other) => { this._path = other._path; this._id = other._id; this._fullPath = other._fullPath; this._to = other._to; this.options.getParentRoute = other.options.getParentRoute; this.children = other.children; }; this.addChildren = (children) => { return this._addFileChildren(children); }; this._addFileChildren = (children) => { if (Array.isArray(children)) { this.children = children; } if (typeof children === "object" && children !== null) { this.children = Object.values(children); } return this; }; this._addFileTypes = () => { return this; }; this.updateLoader = (options2) => { Object.assign(this.options, options2); return this; }; this.update = (options2) => { Object.assign(this.options, options2); return this; }; this.lazy = (lazyFn2) => { this.lazyFn = lazyFn2; return this; }; this.options = options || {}; this.isRoot = !options?.getParentRoute; if (options?.id && options?.path) { throw new Error(`Route cannot have both an 'id' and a 'path' option.`); } } get to() { return this._to; } get id() { return this._id; } get path() { return this._path; } get fullPath() { return this._fullPath; } }; var BaseRootRoute = class extends BaseRoute { constructor(options) { super(options); } }; // node_modules/@tanstack/react-router/dist/esm/CatchBoundary.js var import_jsx_runtime = __toESM(require_jsx_runtime(), 1); var React = __toESM(require_react(), 1); function CatchBoundary(props) { const errorComponent = props.errorComponent ?? ErrorComponent; return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( CatchBoundaryImpl, { getResetKey: props.getResetKey, onCatch: props.onCatch, children: ({ error, reset }) => { if (error) { return React.createElement(errorComponent, { error, reset }); } return props.children; } } ); } var CatchBoundaryImpl = class extends React.Component { constructor() { super(...arguments); this.state = { error: null }; } static getDerivedStateFromProps(props) { return { resetKey: props.getResetKey() }; } static getDerivedStateFromError(error) { return { error }; } reset() { this.setState({ error: null }); } componentDidUpdate(prevProps, prevState) { if (prevState.error && prevState.resetKey !== this.state.resetKey) { this.reset(); } } componentDidCatch(error, errorInfo) { if (this.props.onCatch) { this.props.onCatch(error, errorInfo); } } render() { return this.props.children({ error: this.state.resetKey !== this.props.getResetKey() ? null : this.state.error, reset: () => { this.reset(); } }); } }; function ErrorComponent({ error }) { const [show, setShow] = React.useState(true); return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { padding: ".5rem", maxWidth: "100%" }, children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: ".5rem" }, children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { style: { fontSize: "1rem" }, children: "Something went wrong!" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "button", { style: { appearance: "none", fontSize: ".6em", border: "1px solid currentColor", padding: ".1rem .2rem", fontWeight: "bold", borderRadius: ".25rem" }, onClick: () => setShow((d) => !d), children: show ? "Hide Error" : "Show Error" } ) ] }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { height: ".25rem" } }), show ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "pre", { style: { fontSize: ".7em", border: "1px solid red", borderRadius: ".25rem", padding: ".3rem", color: "red", overflow: "auto" }, children: error.message ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("code", { children: error.message }) : null } ) }) : null ] }); } // node_modules/@tanstack/react-router/dist/esm/ClientOnly.js var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1); var import_react = __toESM(require_react(), 1); function ClientOnly({ children, fallback = null }) { return useHydrated() ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react.default.Fragment, { children }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react.default.Fragment, { children: fallback }); } function useHydrated() { return import_react.default.useSyncExternalStore( subscribe, () => true, () => false ); } function subscribe() { return () => { }; } // node_modules/tiny-warning/dist/tiny-warning.esm.js var isProduction2 = false; function warning(condition, message) { if (!isProduction2) { if (condition) { return; } var text = "Warning: " + message; if (typeof console !== "undefined") { console.warn(text); } try { throw Error(text); } catch (x) { } } } var tiny_warning_esm_default = warning; // node_modules/@tanstack/react-router/dist/esm/route.js var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1); var import_react3 = __toESM(require_react(), 1); // node_modules/@tanstack/react-router/dist/esm/useMatch.js var React5 = __toESM(require_react(), 1); // node_modules/@tanstack/react-store/dist/esm/index.js var import_with_selector = __toESM(require_with_selector(), 1); function useStore(store, selector = (d) => d, options = {}) { const equal = options.equal ?? shallow; const slice = (0, import_with_selector.useSyncExternalStoreWithSelector)( store.subscribe, () => store.state, () => store.state, selector, equal ); return slice; } function shallow(objA, objB) { if (Object.is(objA, objB)) { return true; } if (typeof objA !== "object" || objA === null || typeof objB !== "object" || objB === null) { return false; } if (objA instanceof Map && objB instanceof Map) { if (objA.size !== objB.size) return false; for (const [k, v] of objA) { if (!objB.has(k) || !Object.is(v, objB.get(k))) return false; } return true; } if (objA instanceof Set && objB instanceof Set) { if (objA.size !== objB.size) return false; for (const v of objA) { if (!objB.has(v)) return false; } return true; } if (objA instanceof Date && objB instanceof Date) { if (objA.getTime() !== objB.getTime()) return false; return true; } const keysA = getOwnKeys(objA); if (keysA.length !== getOwnKeys(objB).length) { return false; } for (let i = 0; i < keysA.length; i++) { if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) { return false; } } return true; } function getOwnKeys(obj) { return Object.keys(obj).concat( Object.getOwnPropertySymbols(obj) ); } // node_modules/@tanstack/react-router/dist/esm/useRouterState.js var import_react2 = __toESM(require_react(), 1); // node_modules/@tanstack/react-router/dist/esm/useRouter.js var React3 = __toESM(require_react(), 1); // node_modules/@tanstack/react-router/dist/esm/routerContext.js var React2 = __toESM(require_react(), 1); var routerContext = React2.createContext(null); function getRouterContext() { if (typeof document === "undefined") { return routerContext; } if (window.__TSR_ROUTER_CONTEXT__) { return window.__TSR_ROUTER_CONTEXT__; } window.__TSR_ROUTER_CONTEXT__ = routerContext; return routerContext; } // node_modules/@tanstack/react-router/dist/esm/useRouter.js function useRouter(opts) { const value = React3.useContext(getRouterContext()); tiny_warning_esm_default( !((opts?.warn ?? true) && !value), "useRouter must be used inside a <RouterProvider> component!" ); return value; } // node_modules/@tanstack/react-router/dist/esm/useRouterState.js function useRouterState(opts) { const contextRouter = useRouter({ warn: opts?.router === void 0 }); const router = opts?.router || contextRouter; const previousResult = (0, import_react2.useRef)(void 0); return useStore(router.__store, (state) => { if (opts?.select) { if (opts.structuralSharing ?? router.options.defaultStructuralSharing) { const newSlice = replaceEqualDeep( previousResult.current, opts.select(state) ); previousResult.current = newSlice; return newSlice; } return opts.select(state); } return state; }); } // node_modules/@tanstack/react-router/dist/esm/matchContext.js var React4 = __toESM(require_react(), 1); var matchContext = React4.createContext(void 0); var dummyMatchContext = React4.createContext( void 0 ); // node_modules/@tanstack/react-router/dist/esm/useMatch.js function useMatch(opts) { const nearestMatchId = React5.useContext( opts.from ? dummyMatchContext : matchContext ); const matchSelection = useRouterState({ select: (state) => { const match = state.matches.find( (d) => opts.from ? opts.from === d.routeId : d.id === nearestMatchId ); invariant( !((opts.shouldThrow ?? true) && !match), `Could not find ${opts.from ? `an active match from "${opts.from}"` : "a nearest match!"}` ); if (match === void 0) { return void 0; } return opts.select ? opts.select(match) : match; }, structuralSharing: opts.structuralSharing }); return matchSelection; } // node_modules/@tanstack/react-router/dist/esm/useLoaderData.js function useLoaderData(opts) { return useMatch({ from: opts.from, strict: opts.strict, structuralSharing: opts.structuralSharing, select: (s) => { return opts.select ? opts.select(s.loaderData) : s.loaderData; } }); } // node_modules/@tanstack/react-router/dist/esm/useLoaderDeps.js function useLoaderDeps(opts) { const { select, ...rest } = opts; return useMatch({ ...rest, select: (s) => { return select ? select(s.loaderDeps) : s.loaderDeps; } }); } // node_modules/@tanstack/react-router/dist/esm/useParams.js function useParams(opts) { return useMatch({ from: opts.from, shouldThrow: opts.shouldThrow, structuralSharing: opts.structuralSharing, strict: opts.strict, select: (match) => { const params = opts.strict === false ? match.params : match._strictParams; return opts.select ? opts.select(params) : params; } }); } // node_modules/@tanstack/react-router/dist/esm/useSearch.js function useSearch(opts) { return useMatch({ from: opts.from, strict: opts.strict, shouldThrow: opts.shouldThrow, structuralSharing: opts.structuralSharing, select: (match) => { return opts.select ? opts.select(match.search) : match.search; } }); } // node_modules/@tanstack/react-router/dist/esm/useNavigate.js var React6 = __toESM(require_react(), 1); function useNavigate(_defaultOpts) { const router = useRouter(); return React6.useCallback( (options) => { return router.navigate({ ...options, from: options.from ?? _defaultOpts?.from }); }, [_defaultOpts?.from, router] ); } // node_modules/@tanstack/react-router/dist/esm/link.js var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1); var React8 = __toESM(require_react(), 1); var import_react_dom = __toESM(require_react_dom(), 1); // node_modules/@tanstack/react-router/dist/esm/utils.js var React7 = __toESM(require_react(), 1); var useLayoutEffect2 = typeof window !== "undefined" ? React7.useLayoutEffect : React7.useEffect; function usePrevious(value) { const ref = React7.useRef({ value, prev: null }); const current = ref.current.value; if (value !== current) { ref.current = { value, prev: current }; } return ref.current.prev; } function useIntersectionObserver(ref, callback, intersectionObserverOptions2 = {}, options = {}) { React7.useEffect(() => { if (!ref.current || options.disabled || typeof IntersectionObserver !== "function") { return; } const observer = new IntersectionObserver(([entry]) => { callback(entry); }, intersectionObserverOptions2); observer.observe(ref.current); return () => { observer.disconnect(); }; }, [callback, intersectionObserverOptions2, options.disabled, ref]); } function useForwardedRef(ref) { const innerRef = React7.useRef(null); React7.useImperativeHandle(ref, () => innerRef.current, []); return innerRef; } // node_modules/@tanstack/react-router/dist/esm/link.js function useLinkProps(options, forwardedRef) { const router = useRouter(); const [isTransitioning, setIsTransitioning] = React8.useState(false); const hasRenderFetched = React8.useRef(false); const innerRef = useForwardedRef(forwardedRef); const { // custom props activeProps, inactiveProps, activeOptions, to, preload: userPreload, preloadDelay: userPreloadDelay, hashScrollIntoView, replace, startTransition: startTransition2, resetScroll, viewTransition, // element props children, target, disabled, style, className, onClick, onFocus, onMouseEnter, onMouseLeave, onTouchStart, ignoreBlocker, // prevent these from being returned params: _params, search: _search, hash: _hash, state: _state, mask: _mask, reloadDocument: _reloadDocument, unsafeRelative: _unsafeRelative, from: _from, _fromLocation, ...propsSafeToSpread } = options; const currentSearch = useRouterState({ select: (s) => s.location.search, structuralSharing: true }); const from = options.from; const _options = React8.useMemo( () => { return { ...options, from }; }, // eslint-disable-next-line react-hooks/exhaustive-deps [ router, currentSearch, from, options._fromLocation, options.hash, options.to, options.search, options.params, options.state, options.mask, options.unsafeRelative ] ); const next = React8.useMemo( () => router.buildLocation({ ..._options }), [router, _options] ); const hrefOption = React8.useMemo(() => { if (disabled) { return void 0; } let href = next.maskedLocation ? next.maskedLocation.url : next.url; let external = false; if (router.origin) { if (href.startsWith(router.origin)) { href = router.history.createHref(href.replace(router.origin, "")) || "/"; } else { external = true; } } return { href, external }; }, [disabled, next.maskedLocation, next.url, router.origin, router.history]); const externalLink = React8.useMemo(() => { if (hrefOption?.external) { return hrefOption.href; } try { new URL(to); return to; } catch { } return void 0; }, [to, hrefOption]); const preload = options.reloadDocument || externalLink ? false : userPreload ?? router.options.defaultPreload; const preloadDelay = userPreloadDelay ?? router.options.defaultPreloadDelay ?? 0; const isActive = useRouterState({ select: (s) => { if (externalLink) return false; if (activeOptions?.exact) { const testExact = exactPathTest( s.location.pathname, next.pathname, router.basepath ); if (!testExact) { return false; } } else { const currentPathSplit = removeTrailingSlash( s.location.pathname, router.basepath ); const nextPathSplit = removeTrailingSlash( next.pathname, router.basepath ); const pathIsFuzzyEqual = currentPathSplit.startsWith(nextPathSplit) && (currentPathSplit.length === nextPathSplit.length || currentPathSplit[nextPathSplit.length] === "/"); if (!pathIsFuzzyEqual) { return false; } } if (activeOptions?.includeSearch ?? true) { const searchTest = deepEqual(s.location.search, next.search, { partial: !activeOptions?.exact, ignoreUndefined: !activeOptions?.explicitUndefined }); if (!searchTest) { return false; } } if (activeOptions?.includeHash) { return s.location.hash === next.hash; } return true; } }); const doPreload = React8.useCallback(() => { router.preloadRoute({ ..._options }).catch((err) => { console.warn(err); console.warn(preloadWarning); }); }, [router, _options]); const preloadViewportIoCallback = React8.useCallback( (entry) => { if (entry?.isIntersecting) { doPreload(); } }, [doPreload] ); useIntersectionObserver( innerRef, preloadViewportIoCallback, intersectionObserverOptions, { disabled: !!disabled || !(preload === "viewport") } ); React8.useEffect(() => { if (hasRenderFetched.current) { return; } if (!disabled && preload === "render") { doPreload(); hasRenderFetched.current = true; } }, [disabled, doPreload, preload]); const handleClick = (e) => { const elementTarget = e.currentTarget.getAttribute("target"); const effectiveTarget = target !== void 0 ? target : elementTarget; if (!disabled && !isCtrlEvent(e) && !e.defaultPrevented && (!effectiveTarget || effectiveTarget === "_self") && e.button === 0) { e.preventDefault(); (0, import_react_dom.flushSync)(() => { setIsTransitioning(true); }); const unsub = router.subscribe("onResolved", () => { unsub(); setIsTransitioning(false); }); router.navigate({ ..._options, replace, resetScroll, hashScrollIntoView, startTransition: startTransition2, viewTransition, ignoreBlocker }); } }; if (externalLink) { return { ...propsSafeToSpread, ref: innerRef, href: externalLink, ...children && { children }, ...target && { target }, ...disabled && { disabled }, ...style && { style }, ...className && { className }, ...onClick && { onClick }, ...onFocus && { onFocus }, ...onMouseEnter && { onMouseEnter }, ...onMouseLeave && { onMouseLeave }, ...onTouchStart && { onTouchStart } }; } const handleFocus = (_) => { if (disabled) return; if (preload) { doPreload(); } }; const handleTouchStart = handleFocus; const handleEnter = (e) => { if (disabled || !preload) return; if (!preloadDelay) { doPreload(); } else { const eventTarget = e.target; if (timeoutMap.has(eventTarget)) { return; } const id = setTimeout(() => { timeoutMap.delete(eventTarget); doPreload(); }, preloadDelay); timeoutMap.set(eventTarget, id); } }; const handleLeave = (e) => { if (disabled || !preload || !preloadDelay) return; const eventTarget = e.target; const id = timeoutMap.get(eventTarget); if (id) { clearTimeout(id); timeoutMap.delete(eventTarget); } }; const resolvedActiveProps = isActive ? functionalUpdate(activeProps, {}) ?? STATIC_ACTIVE_OBJECT : STATIC_EMPTY_OBJECT; const resolvedInactiveProps = isActive ? STATIC_EMPTY_OBJECT : functionalUpdate(inactiveProps, {}) ?? STATIC_EMPTY_OBJECT; const resolvedClassName = [ className, resolvedActiveProps.className, resolvedInactiveProps.className ].filter(Boolean).join(" "); const resolvedStyle = (style || resolvedActiveProps.style || resolvedInactiveProps.style) && { ...style, ...resolvedActiveProps.style, ...resolvedInactiveProps.style }; return { ...propsSafeToSpread, ...resolvedActiveProps, ...resolvedInactiveProps, href: hrefOption?.href, ref: innerRef, onClick: composeHandlers([onClick, handleClick]), onFocus: composeHandlers([onFocus, handleFocus]), onMouseEnter: composeHandlers([onMouseEnter, handleEnter]), onMouseLeave: composeHandlers([onMouseLeave, handleLeave]), onTouchStart: composeHandlers([onTouchStart, handleTouchStart]), disabled: !!disabled, target, ...resolvedStyle && { style: resolvedStyle }, ...resolvedClassName && { className: resolvedClassName }, ...disabled && STATIC_DISABLED_PROPS, ...isActive && STATIC_ACTIVE_PROPS, ...isTransitioning && STATIC_TRANSITIONING_PROPS }; } var STATIC_EMPTY_OBJECT = {}; var STATIC_ACTIVE_OBJECT = { className: "active" }; var STATIC_DISABLED_PROPS = { role: "link", "aria-disabled": true }; var STATIC_ACTIVE_PROPS = { "data-status": "active", "aria-current": "page" }; var STATIC_TRANSITIONING_PROPS = { "data-transitioning": "transitioning" }; var timeoutMap = /* @__PURE__ */ new WeakMap(); var intersectionObserverOptions = { rootMargin: "100px" }; var composeHandlers = (handlers) => (e) => { for (const handler of handlers) { if (!handler) continue; if (e.defaultPrevented) return; handler(e); } }; function createLink(Comp) { return React8.forwardRef(function CreatedLink(props, ref) { return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Link, { ...props, _asChild: Comp, ref }); }); } var Link = React8.forwardRef( (props, ref) => { const { _asChild, ...rest } = props; const { type: _type, ref: innerRef, ...linkProps } = useLinkProps(rest, ref); const children = typeof rest.children === "function" ? rest.children({ isActive: linkProps["data-status"] === "active" }) : rest.children; if (_asChild === void 0) { delete linkProps.disabled; } return React8.createElement( _asChild ? _asChild : "a", { ...linkProps, ref: innerRef }, children ); } ); function isCtrlEvent(e) { return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey); } // node_modules/@tanstack/react-router/dist/esm/route.js var Route = class extends BaseRoute { /** * @deprecated Use the `createRoute` function instead. */ constructor(options) { super(options); this.useMatch = (opts) => { return useMatch({ select: opts?.select, from: this.id, structuralSharing: opts?.structuralSharing }); }; this.useRouteContext = (opts) => { return useMatch({ ...opts, from: this.id, select: (d) => opts?.select ? opts.select(d.context) : d.context }); }; this.useSearch = (opts) => { return useSearch({ select: opts?.select, structuralSharing: opts?.structuralSharing, from: this.id }); }; this.useParams = (opts) => { return useParams({ select: opts?.select, structuralSharing: opts?.structuralSharing, from: this.id }); }; this.useLoaderDeps = (opts) => { return useLoaderDeps({ ...opts, from: this.id }); }; this.useLoaderData = (opts) => { return useLoaderData({ ...opts, from: this.id }); }; this.useNavigate = () => { return useNavigate({ from: this.fullPath }); }; this.Link = import_react3.default.forwardRef( (props, ref) => { return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Link, { ref, from: this.fullPath, ...props }); } ); this.$$typeof = /* @__PURE__ */ Symbol.for("react.memo"); } }; function createRoute(options) { return new Route( // TODO: Help us TypeChris, you're our only hope! options ); } var RootRoute = class extends BaseRootRoute { /** * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead. */ constructor(options) { super(options); this.useMatch = (opts) => { return useMatch({ select: opts?.select, from: this.id, structuralSharing: opts?.structuralSharing }); }; this.useRouteContext = (opts) => { return useMatch({ ...opts, from: this.id, select: (d) => opts?.select ? opts.select(d.context) : d.context }); }; this.useSearch = (opts) => { return useSearch({ select: opts?.select, structuralSharing: opts?.structuralSharing, from: this.id }); }; this.useParams = (opts) => { return useParams({ select: opts?.select, structuralSharing: opts?.structuralSharing, from: this.id }); }; this.useLoaderDeps = (opts) => { return useLoaderDeps({ ...opts, from: this.id }); }; this.useLoaderData = (opts) => { return useLoaderData({ ...opts, from: this.id }); }; this.useNavigate = () => { return useNavigate({ from: this.fullPath }); }; this.Link = import_react3.default.forwardRef( (props, ref) => { return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Link, { ref, from: this.fullPath, ...props }); } ); this.$$typeof = /* @__PURE__ */ Symbol.for("react.memo"); } }; function createRootRoute(options) { return new RootRoute(options); } // node_modules/@tanstack/react-router/dist/esm/fileRoute.js function createFileRoute(path) { if (typeof path === "object") { return new FileRoute(path, { silent: true }).createRoute(path); } return new FileRoute(path, { silent: true }).createRoute; } var FileRoute = class { constructor(path, _opts) { this.path = path; this.createRoute = (options) => { tiny_warning_esm_default( this.silent, "FileRoute is deprecated and will be removed in the next major version. Use the createFileRoute(path)(options) function instead." ); const route = createRoute(options); route.isRoot = false; return route; }; this.silent = _opts?.silent; } }; var LazyRoute = class { constructor(opts) { this.useMatch = (opts2) => { return useMatch({ select: opts2?.select, from: this.options.id, structuralSharing: opts2?.structuralSharing }); }; this.useRouteContext = (opts2) => { return useMatch({ from: this.options.id, select: (d) => opts2?.select ? opts2.select(d.context) : d.context }); }; this.useSearch = (opts2) => { return useSearch({ select: opts2?.select, structuralSharing: opts2?.structuralSharing, from: this.options.id }); }; this.useParams = (opts2) => { return useParams({ select: opts2?.select, structuralSharing: opts2?.structuralSharing, from: this.options.id }); }; this.useLoaderDeps = (opts2) => { return useLoaderDeps({ ...opts2, from: this.options.id }); }; this.useLoaderData = (opts2) => { return useLoaderData({ ...opts2, from: this.options.id }); }; this.useNavigate = () => { const router = useRouter(); return useNavigate({ from: router.routesById[this.options.id].fullPath }); }; this.options = opts; this.$$typeof = /* @__PURE__ */ Symbol.for("react.memo"); } }; function createLazyRoute(id) { return (opts) => { return new LazyRoute({ id, ...opts }); }; } function createLazyFileRoute(id) { if (typeof id === "object") { return new LazyRoute(id); } return (opts) => new LazyRoute({ id, ...opts }); } // node_modules/@tanstack/react-router/dist/esm/Matches.js var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1); var React11 = __toESM(require_react(), 1); // node_modules/@tanstack/react-router/dist/esm/Transitioner.js var React9 = __toESM(require_react(), 1); function Transitioner() { const router = useRouter(); const mountLoadForRouter = React9.useRef({ router, mounted: false }); const [isTransitioning, setIsTransitioning] = React9.useState(false); const { hasPendingMatches, isLoading } = useRouterState({ select: (s) => ({ isLoading: s.isLoading, hasPendingMatches: s.matches.some((d) => d.status === "pending") }), structuralSharing: true }); const previousIsLoading = usePrevious(isLoading); const isAnyPending = isLoading || isTransitioning || hasPendingMatches; const previousIsAnyPending = usePrevious(isAnyPending); const isPagePending = isLoading || hasPendingMatches; const previousIsPagePending = usePrevious(isPagePending); router.startTransition = (fn) => { setIsTransitioning(true); React9.startTransition(() => { fn(); setIsTransitioning(false); }); }; React9.useEffect(() => { const unsub = router.history.subscribe(router.load); const nextLocation = router.buildLocation({ to: router.latestLocation.pathname, search: true, params: true, hash: true, state: true, _includeValidateSearch: true }); if (trimPathRight(router.latestLocation.href) !== trimPathRight(nextLocation.href)) { router.commitLocation({ ...nextLocation, replace: true }); } return () => { unsub(); }; }, [router, router.history]); useLayoutEffect2(() => { if ( // if we are hydrating from SSR, loading is triggered in ssr-client typeof window !== "undefined" && router.ssr || mountLoadForRouter.current.router === router && mountLoadForRouter.current.mounted ) { return; } mountLoadForRouter.current = { router, mounted: true }; const tryLoad = async () => { try { await router.load(); } catch (err) { console.error(err); } }; tryLoad(); }, [router]); useLayoutEffect2(() => { if (previousIsLoading && !isLoading) { router.emit({ type: "onLoad", // When the new URL has committed, when the new matches have been loaded into state.matches ...getLocationChangeInfo(router.state) }); } }, [previousIsLoading, router, isLoading]); useLayoutEffect2(() => { if (previousIsPagePending && !isPagePending) { router.emit({ type: "onBeforeRouteMount", ...getLocationChangeInfo(router.state) }); } }, [isPagePending, previousIsPagePending, router]); useLayoutEffect2(() => { if (previousIsAnyPending && !isAnyPending) { router.emit({ type: "onResolved", ...getLocationChangeInfo(router.state) }); router.__store.setState((s) => ({ ...s, status: "idle", resolvedLocation: s.location })); handleHashScroll(router); } }, [isAnyPending, previousIsAnyPending, router]); return null; } // node_modules/@tanstack/react-router/dist/esm/Match.js var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1); var React10 = __toESM(require_react(), 1); // node_modules/@tanstack/react-router/dist/esm/not-found.js var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1); function CatchNotFound(props) { const resetKey = useRouterState({ select: (s) => `not-found-${s.location.pathname}-${s.status}` }); return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)( CatchBoundary, { getResetKey: () => resetKey, onCatch: (error, errorInfo) => { if (isNotFound(error)) { props.onCatch?.(error, errorInfo); } else { throw error; } }, errorComponent: ({ error }) => { if (isNotFound(error)) { return props.fallback?.(error); } else { throw error; } }, children: props.children } ); } function DefaultGlobalNotFound() { return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { children: "Not Found" }); } // node_modules/@tanstack/react-router/dist/esm/SafeFragment.js var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1); function SafeFragment(props) { return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: props.children }); } // node_modules/@tanstack/react-router/dist/esm/renderRouteNotFound.js var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1); function renderRouteNotFound(router, route, data) { if (!route.options.notFoundComponent) { if (router.options.defaultNotFoundComponent) { return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(router.options.defaultNotFoundComponent, { data }); } if (true) { tiny_warning_esm_default( route.options.notFoundComponent, `A notFoundError was encountered on the route with ID "${route.id}", but a notFoundComponent option was not configured, nor was a router level defaultNotFoundComponent configured. Consider configuring at least one of these to avoid TanStack Router's overly generic defaultNotFoundComponent (<div>Not Found<div>)` ); } return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DefaultGlobalNotFound, {}); } return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(route.options.notFoundComponent, { data }); } // node_modules/@tanstack/react-router/dist/esm/scroll-restoration.js var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1); // node_modules/@tanstack/react-router/dist/esm/ScriptOnce.js var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1); function ScriptOnce({ children }) { const router = useRouter(); if (!router.isServer) { return null; } return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)( "script", { nonce: router.options.ssr?.nonce, className: "$tsr", dangerouslySetInnerHTML: { __html: [children].filter(Boolean).join("\n") + ";$_TSR.c()" } } ); } // node_modules/@tanstack/react-router/dist/esm/scroll-restoration.js function ScrollRestoration() { const router = useRouter(); if (!router.isScrollRestoring || !router.isServer) { return null; } if (typeof router.options.scrollRestoration === "function") { const shouldRestore = router.options.scrollRestoration({ location: router.latestLocation }); if (!shouldRestore) { return null; } } const getKey = router.options.getScrollRestorationKey || defaultGetScrollRestorationKey; const userKey = getKey(router.latestLocation); const resolvedKey = userKey !== defaultGetScrollRestorationKey(router.latestLocation) ? userKey : void 0; const restoreScrollOptions = { storageKey, shouldScrollRestoration: true }; if (resolvedKey) { restoreScrollOptions.key = resolvedKey; } return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)( ScriptOnce, { children: `(${restoreScroll.toString()})(${JSON.stringify(restoreScrollOptions)})` } ); } // node_modules/@tanstack/react-router/dist/esm/Match.js var Match = React10.memo(function MatchImpl({ matchId }) { const router = useRouter(); const matchState = useRouterState({ select: (s) => { const match = s.matches.find((d) => d.id === matchId); invariant( match, `Could not find match for matchId "${matchId}". Please file an issue!` ); return { routeId: match.routeId, ssr: match.ssr, _displayPending: match._displayPending }; }, structuralSharing: true }); const route = router.routesById[matchState.routeId]; const PendingComponent = route.options.pendingComponent ?? router.options.defaultPendingComponent; const pendingElement = PendingComponent ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(PendingComponent, {}) : null; const routeErrorComponent = route.options.errorComponent ?? router.options.defaultErrorComponent; const routeOnCatch = route.options.onCatch ?? router.options.defaultOnCatch; const routeNotFoundComponent = route.isRoot ? ( // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component route.options.notFoundComponent ?? router.options.notFoundRoute?.options.component ) : route.options.notFoundComponent; const resolvedNoSsr = matchState.ssr === false || matchState.ssr === "data-only"; const ResolvedSuspenseBoundary = ( // If we're on the root route, allow forcefully wrapping in suspense (!route.isRoot || route.options.wrapInSuspense || resolvedNoSsr) && (route.options.wrapInSuspense ?? PendingComponent ?? (route.options.errorComponent?.preload || resolvedNoSsr)) ? React10.Suspense : SafeFragment ); const ResolvedCatchBoundary = routeErrorComponent ? CatchBoundary : SafeFragment; const ResolvedNotFoundBoundary = routeNotFoundComponent ? CatchNotFound : SafeFragment; const resetKey = useRouterState({ select: (s) => s.loadedAt }); const parentRouteId = useRouterState({ select: (s) => { const index = s.matches.findIndex((d) => d.id === matchId); return s.matches[index - 1]?.routeId; } }); const ShellComponent = route.isRoot ? route.options.shellComponent ?? SafeFragment : SafeFragment; return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(ShellComponent, { children: [ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(matchContext.Provider, { value: matchId, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ResolvedSuspenseBoundary, { fallback: pendingElement, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)( ResolvedCatchBoundary, { getResetKey: () => resetKey, errorComponent: routeErrorComponent || ErrorComponent, onCatch: (error, errorInfo) => { if (isNotFound(error)) throw error; tiny_warning_esm_default(false, `Error in route match: ${matchId}`); routeOnCatch?.(error, errorInfo); }, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)( ResolvedNotFoundBoundary, { fallback: (error) => { if (!routeNotFoundComponent || error.routeId && error.routeId !== matchState.routeId || !error.routeId && !route.isRoot) throw error; return React10.createElement(routeNotFoundComponent, error); }, children: resolvedNoSsr || matchState._displayPending ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ClientOnly, { fallback: pendingElement, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(MatchInner, { matchId }) }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(MatchInner, { matchId }) } ) } ) }) }), parentRouteId === rootRouteId && router.options.scrollRestoration ? /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(OnRendered, {}), /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ScrollRestoration, {}) ] }) : null ] }); }); function OnRendered() { const router = useRouter(); const prevLocationRef = React10.useRef( void 0 ); return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)( "script", { suppressHydrationWarning: true, ref: (el) => { if (el && (prevLocationRef.current === void 0 || prevLocationRef.current.href !== router.latestLocation.href)) { router.emit({ type: "onRendered", ...getLocationChangeInfo(router.state) }); prevLocationRef.current = router.latestLocation; } } }, router.latestLocation.state.__TSR_key ); } var MatchInner = React10.memo(function MatchInnerImpl({ matchId }) { const router = useRouter(); const { match, key, routeId } = useRouterState({ select: (s) => { const match2 = s.matches.find((d) => d.id === matchId); const routeId2 = match2.routeId; const remountFn = router.routesById[routeId2].options.remountDeps ?? router.options.defaultRemountDeps; const remountDeps = remountFn?.({ routeId: routeId2, loaderDeps: match2.loaderDeps, params: match2._strictParams, search: match2._strictSearch }); const key2 = remountDeps ? JSON.stringify(remountDeps) : void 0; return { key: key2, routeId: routeId2, match: { id: match2.id, status: match2.status, error: match2.error, _forcePending: match2._forcePending, _displayPending: match2._displayPending } }; }, structuralSharing: true }); const route = router.routesById[routeId]; const out = React10.useMemo(() => { const Comp = route.options.component ?? router.options.defaultComponent; if (Comp) { return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Comp, {}, key); } return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Outlet, {}); }, [key, route.options.component, router.options.defaultComponent]); if (match._displayPending) { throw router.getMatch(match.id)?._nonReactive.displayPendingPromise; } if (match._forcePending) { throw router.getMatch(match.id)?._nonReactive.minPendingPromise; } if (match.status === "pending") { const pendingMinMs = route.options.pendingMinMs ?? router.options.defaultPendingMinMs; if (pendingMinMs) { const routerMatch = router.getMatch(match.id); if (routerMatch && !routerMatch._nonReactive.minPendingPromise) { if (!router.isServer) { const minPendingPromise = createControlledPromise(); routerMatch._nonReactive.minPendingPromise = minPendingPromise; setTimeout(() => { minPendingPromise.resolve(); routerMatch._nonReactive.minPendingPromise = void 0; }, pendingMinMs); } } } throw router.getMatch(match.id)?._nonReactive.loadPromise; } if (match.status === "notFound") { invariant(isNotFound(match.error), "Expected a notFound error"); return renderRouteNotFound(router, route, match.error); } if (match.status === "redirected") { invariant(isRedirect(match.error), "Expected a redirect error"); throw router.getMatch(match.id)?._nonReactive.loadPromise; } if (match.status === "error") { if (router.isServer) { const RouteErrorComponent = (route.options.errorComponent ?? router.options.defaultErrorComponent) || ErrorComponent; return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)( RouteErrorComponent, { error: match.error, reset: void 0, info: { componentStack: "" } } ); } throw match.error; } return out; }); var Outlet = React10.memo(function OutletImpl() { const router = useRouter(); const matchId = React10.useContext(matchContext); const routeId = useRouterState({ select: (s) => s.matches.find((d) => d.id === matchId)?.routeId }); const route = router.routesById[routeId]; const parentGlobalNotFound = useRouterState({ select: (s) => { const matches = s.matches; const parentMatch = matches.find((d) => d.id === matchId); invariant( parentMatch, `Could not find parent match for matchId "${matchId}"` ); return parentMatch.globalNotFound; } }); const childMatchId = useRouterState({ select: (s) => { const matches = s.matches; const index = matches.findIndex((d) => d.id === matchId); return matches[index + 1]?.id; } }); const pendingElement = router.options.defaultPendingComponent ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(router.options.defaultPendingComponent, {}) : null; if (parentGlobalNotFound) { return renderRouteNotFound(router, route, void 0); } if (!childMatchId) { return null; } const nextMatch = /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Match, { matchId: childMatchId }); if (matchId === rootRouteId) { return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(React10.Suspense, { fallback: pendingElement, children: nextMatch }); } return nextMatch; }); // node_modules/@tanstack/react-router/dist/esm/Matches.js function Matches() { const router = useRouter(); const rootRoute = router.routesById[rootRouteId]; const PendingComponent = rootRoute.options.pendingComponent ?? router.options.defaultPendingComponent; const pendingElement = PendingComponent ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(PendingComponent, {}) : null; const ResolvedSuspense = router.isServer || typeof document !== "undefined" && router.ssr ? SafeFragment : React11.Suspense; const inner = /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(ResolvedSuspense, { fallback: pendingElement, children: [ !router.isServer && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Transitioner, {}), /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(MatchesInner, {}) ] }); return router.options.InnerWrap ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(router.options.InnerWrap, { children: inner }) : inner; } function MatchesInner() { const router = useRouter(); const matchId = useRouterState({ select: (s) => { return s.matches[0]?.id; } }); const resetKey = useRouterState({ select: (s) => s.loadedAt }); const matchComponent = matchId ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Match, { matchId }) : null; return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(matchContext.Provider, { value: matchId, children: router.options.disableGlobalCatchBoundary ? matchComponent : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)( CatchBoundary, { getResetKey: () => resetKey, errorComponent: ErrorComponent, onCatch: (error) => { tiny_warning_esm_default( false, `The following error wasn't caught by any route! At the very least, consider setting an 'errorComponent' in your RootRoute!` ); tiny_warning_esm_default(false, error.message || error.toString()); }, children: matchComponent } ) }); } function useMatches(opts) { return useRouterState({ select: (state) => { const matches = state.matches; return opts?.select ? opts.select(matches) : matches; }, structuralSharing: opts?.structuralSharing }); } // node_modules/@tanstack/react-router/dist/esm/router.js var createRouter = (options) => { return new Router(options); }; var Router = class extends RouterCore { constructor(options) { super(options); } }; if (typeof globalThis !== "undefined") { globalThis.createFileRoute = createFileRoute; globalThis.createLazyFileRoute = createLazyFileRoute; } else if (typeof window !== "undefined") { window.createFileRoute = createFileRoute; window.createLazyFileRoute = createLazyFileRoute; } // node_modules/@tanstack/react-router/dist/esm/RouterProvider.js var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1); function RouterContextProvider({ router, children, ...rest }) { if (Object.keys(rest).length > 0) { router.update({ ...router.options, ...rest, context: { ...router.options.context, ...rest.context } }); } const routerContext2 = getRouterContext(); const provider = /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(routerContext2.Provider, { value: router, children }); if (router.options.Wrap) { return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(router.options.Wrap, { children: provider }); } return provider; } function RouterProvider({ router, ...rest }) { return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(RouterContextProvider, { router, ...rest, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Matches, {}) }); } // node_modules/@tanstack/react-router/dist/esm/useLocation.js function useLocation(opts) { return useRouterState({ select: (state) => opts?.select ? opts.select(state.location) : state.location }); } // node_modules/@tanstack/react-router/dist/esm/useCanGoBack.js function useCanGoBack() { return useRouterState({ select: (s) => s.location.state.__TSR_index !== 0 }); } // packages/route/build-module/lock-unlock.mjs var import_private_apis = __toESM(require_private_apis(), 1); var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)( "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.", "@wordpress/route" ); // packages/route/build-module/private-apis.mjs var privateApis = {}; lock(privateApis, { // Router creation and setup createBrowserHistory, createLazyRoute, createRouter, createRootRoute, createRoute, Outlet, RouterProvider, // Internal routing utilities redirect, createLink, useCanGoBack, useLoaderData, useLocation, useMatches, useRouter, useRouterState, // History utilities parseHref }); // packages/route/build-module/index.mjs function useInvalidate() { const router = useRouter(); return () => router.invalidate(); } export { Link, notFound, privateApis, redirect, useInvalidate, useLinkProps, useNavigate, useParams, useSearch }; /*! Bundled license information: use-sync-external-store/cjs/use-sync-external-store-shim.development.js: (** * @license React * use-sync-external-store-shim.development.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js: (** * @license React * use-sync-external-store-shim/with-selector.development.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) */ route/index.min.asset.php 0000644 00000000217 15206736335 0011434 0 ustar 00 <?php return array('dependencies' => array('react', 'react-dom', 'react-jsx-runtime', 'wp-private-apis'), 'version' => 'c5843b6c5e84b352f43b'); registry.php 0000644 00000010010 15206736335 0007127 0 ustar 00 <?php /** * Script module registry - Auto-generated by build process. * Do not edit this file manually. * * @package wp */ return array( array( 'id' => '@wordpress/a11y', 'path' => 'a11y/index', 'asset' => 'a11y/index.min.asset.php', ), array( 'id' => '@wordpress/abilities', 'path' => 'abilities/index', 'asset' => 'abilities/index.min.asset.php', ), array( 'id' => '@wordpress/block-editor/utils/fit-text-frontend', 'path' => 'block-editor/utils/fit-text-frontend', 'asset' => 'block-editor/utils/fit-text-frontend.min.asset.php', ), array( 'id' => '@wordpress/block-library/accordion/view', 'path' => 'block-library/accordion/view', 'asset' => 'block-library/accordion/view.min.asset.php', ), array( 'id' => '@wordpress/block-library/file/view', 'path' => 'block-library/file/view', 'asset' => 'block-library/file/view.min.asset.php', ), array( 'id' => '@wordpress/block-library/form/view', 'path' => 'block-library/form/view', 'asset' => 'block-library/form/view.min.asset.php', ), array( 'id' => '@wordpress/block-library/image/view', 'path' => 'block-library/image/view', 'asset' => 'block-library/image/view.min.asset.php', ), array( 'id' => '@wordpress/block-library/navigation/view', 'path' => 'block-library/navigation/view', 'asset' => 'block-library/navigation/view.min.asset.php', ), array( 'id' => '@wordpress/block-library/playlist/view', 'path' => 'block-library/playlist/view', 'asset' => 'block-library/playlist/view.min.asset.php', ), array( 'id' => '@wordpress/block-library/query/view', 'path' => 'block-library/query/view', 'asset' => 'block-library/query/view.min.asset.php', ), array( 'id' => '@wordpress/block-library/search/view', 'path' => 'block-library/search/view', 'asset' => 'block-library/search/view.min.asset.php', ), array( 'id' => '@wordpress/block-library/tabs/view', 'path' => 'block-library/tabs/view', 'asset' => 'block-library/tabs/view.min.asset.php', ), array( 'id' => '@wordpress/boot', 'path' => 'boot/index', 'asset' => 'boot/index.min.asset.php', ), array( 'id' => '@wordpress/boot', 'path' => 'boot/index', 'asset' => 'boot/index.min.asset.php', ), array( 'id' => '@wordpress/connectors', 'path' => 'connectors/index', 'asset' => 'connectors/index.min.asset.php', ), array( 'id' => '@wordpress/core-abilities', 'path' => 'core-abilities/index', 'asset' => 'core-abilities/index.min.asset.php', ), array( 'id' => '@wordpress/edit-site-init', 'path' => 'edit-site-init/index', 'asset' => 'edit-site-init/index.min.asset.php', ), array( 'id' => '@wordpress/interactivity', 'path' => 'interactivity/index', 'asset' => 'interactivity/index.min.asset.php', ), array( 'id' => '@wordpress/interactivity-router', 'path' => 'interactivity-router/index', 'asset' => 'interactivity-router/index.min.asset.php', ), array( 'id' => '@wordpress/interactivity-router/full-page', 'path' => 'interactivity-router/full-page', 'asset' => 'interactivity-router/full-page.min.asset.php', ), array( 'id' => '@wordpress/latex-to-mathml', 'path' => 'latex-to-mathml/index', 'asset' => 'latex-to-mathml/index.min.asset.php', ), array( 'id' => '@wordpress/latex-to-mathml/loader', 'path' => 'latex-to-mathml/loader', 'asset' => 'latex-to-mathml/loader.min.asset.php', ), array( 'id' => '@wordpress/lazy-editor', 'path' => 'lazy-editor/index', 'asset' => 'lazy-editor/index.min.asset.php', ), array( 'id' => '@wordpress/route', 'path' => 'route/index', 'asset' => 'route/index.min.asset.php', ), array( 'id' => '@wordpress/route', 'path' => 'route/index', 'asset' => 'route/index.min.asset.php', ), array( 'id' => '@wordpress/vips/loader', 'path' => 'vips/loader', 'asset' => 'vips/loader.min.asset.php', ), array( 'id' => '@wordpress/vips/worker', 'path' => 'vips/worker', 'asset' => 'vips/worker.min.asset.php', 'min_only' => true, ), array( 'id' => '@wordpress/workflow', 'path' => 'workflow/index', 'asset' => 'workflow/index.min.asset.php', ), ); latex-to-mathml/loader.js 0000644 00000000231 15206736335 0011373 0 ustar 00 // packages/latex-to-mathml/build-module/loader.mjs function loader() { return import("@wordpress/latex-to-mathml"); } export { loader as default }; latex-to-mathml/index.min.js 0000644 00000613760 15206736335 0012037 0 ustar 00 var w=class e{constructor(t,r){let o=" "+t,s,i=r&&r.loc;if(i&&i.start<=i.end){let u=i.lexer.input;s=i.start;let h=i.end;s===u.length?o+=" at end of input: ":o+=" at position "+(s+1)+": ";let x=u.slice(s,h).replace(/[^]/g,"$&\u0332"),A;s>15?A="\u2026"+u.slice(s-15,s):A=u.slice(0,s);let q;h+15<u.length?q=u.slice(h,h+15)+"\u2026":q=u.slice(h),o+=A+x+q}let l=new Error(o);return l.name="ParseError",l.__proto__=e.prototype,l.position=s,l}};w.prototype.__proto__=Error.prototype;var yr=function(e,t){return e===void 0?t:e},wr=/([A-Z])/g,vr=function(e){return e.replace(wr,"-$1").toLowerCase()},kr={"&":"&",">":">","<":"<",'"':""","'":"'"},Ar=/[&><"']/g;function Sr(e){return String(e).replace(Ar,t=>kr[t])}var me=function(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?me(e.body[0]):e:e.type==="font"?me(e.body):e},qr=function(e){let t=me(e);return t.type==="mathord"||t.type==="textord"||t.type==="atom"},_r=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},Tr=function(e){let t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?t[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():"_relative"},Cr=function(e){return+e.toFixed(4)},N={deflt:yr,escape:Sr,hyphenate:vr,getBaseElem:me,isCharacterBox:qr,protocolFromUrl:Tr,round:Cr},pe=class{constructor(t){t=t||{},this.displayMode=N.deflt(t.displayMode,!1),this.annotate=N.deflt(t.annotate,!1),this.leqno=N.deflt(t.leqno,!1),this.throwOnError=N.deflt(t.throwOnError,!1),this.errorColor=N.deflt(t.errorColor,"#b22222"),this.macros=t.macros||{},this.wrap=N.deflt(t.wrap,"tex"),this.xml=N.deflt(t.xml,!1),this.colorIsTextColor=N.deflt(t.colorIsTextColor,!1),this.strict=N.deflt(t.strict,!1),this.trust=N.deflt(t.trust,!1),this.maxSize=t.maxSize===void 0?[1/0,1/0]:Array.isArray(t.maxSize)?t.maxSize:[1/0,1/0],this.maxExpand=Math.max(0,N.deflt(t.maxExpand,1e3))}isTrusted(t){if(t.url&&!t.protocol){let o=N.protocolFromUrl(t.url);if(o==null)return!1;t.protocol=o}return!!(typeof this.trust=="function"?this.trust(t):this.trust)}},Ut={},Ce={};function S({type:e,names:t,props:r,handler:o,mathmlBuilder:s}){let i={type:e,numArgs:r.numArgs,argTypes:r.argTypes,allowedInArgument:!!r.allowedInArgument,allowedInText:!!r.allowedInText,allowedInMath:r.allowedInMath===void 0?!0:r.allowedInMath,numOptionalArgs:r.numOptionalArgs||0,infix:!!r.infix,primitive:!!r.primitive,handler:o};for(let l=0;l<t.length;++l)Ut[t[l]]=i;e&&s&&(Ce[e]=s)}function se({type:e,mathmlBuilder:t}){S({type:e,names:[],props:{numArgs:0},handler(){throw new Error("Should never be called.")},mathmlBuilder:t})}var fe=function(e){return e.type==="ordgroup"&&e.body.length===1?e.body[0]:e},z=function(e){return e.type==="ordgroup"?e.body:[e]},ge=class{constructor(t){this.children=t,this.classes=[],this.style={}}hasClass(t){return this.classes.includes(t)}toNode(){let t=document.createDocumentFragment();for(let r=0;r<this.children.length;r++)t.appendChild(this.children[r].toNode());return t}toMarkup(){let t="";for(let r=0;r<this.children.length;r++)t+=this.children[r].toMarkup();return t}toText(){let t=r=>r.toText();return this.children.map(t).join("")}},ue=function(e){return e.filter(t=>t).join(" ")},Dr=function(e,t){this.classes=e||[],this.attributes={},this.style=t||{}},Br=function(e){let t=document.createElement(e);t.className=ue(this.classes);for(let r in this.style)Object.prototype.hasOwnProperty.call(this.style,r)&&(t.style[r]=this.style[r]);for(let r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&t.setAttribute(r,this.attributes[r]);for(let r=0;r<this.children.length;r++)t.appendChild(this.children[r].toNode());return t},Nr=function(e){let t=`<${e}`;this.classes.length&&(t+=` class="${N.escape(ue(this.classes))}"`);let r="";for(let o in this.style)Object.prototype.hasOwnProperty.call(this.style,o)&&(r+=`${N.hyphenate(o)}:${this.style[o]};`);r&&(t+=` style="${r}"`);for(let o in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,o)&&(t+=` ${o}="${N.escape(this.attributes[o])}"`);t+=">";for(let o=0;o<this.children.length;o++)t+=this.children[o].toMarkup();return t+=`</${e}>`,t},De=class{constructor(t,r,o){Dr.call(this,t,o),this.children=r||[]}setAttribute(t,r){this.attributes[t]=r}toNode(){return Br.call(this,"span")}toMarkup(){return Nr.call(this,"span")}},Or=class{constructor(t){this.text=t}toNode(){return document.createTextNode(this.text)}toMarkup(){return N.escape(this.text)}},be=class{constructor(t,r,o){this.href=t,this.classes=r,this.children=o||[]}toNode(){let t=document.createElement("a");t.setAttribute("href",this.href),this.classes.length>0&&(t.className=ue(this.classes));for(let r=0;r<this.children.length;r++)t.appendChild(this.children[r].toNode());return t}toMarkup(){let t=`<a href='${N.escape(this.href)}'`;this.classes.length>0&&(t+=` class="${N.escape(ue(this.classes))}"`),t+=">";for(let r=0;r<this.children.length;r++)t+=this.children[r].toMarkup();return t+="</a>",t}},Re=class{constructor(t,r,o){this.alt=r,this.src=t,this.classes=["mord"],this.style=o}hasClass(t){return this.classes.includes(t)}toNode(){let t=document.createElement("img");t.src=this.src,t.alt=this.alt,t.className="mord";for(let r in this.style)Object.prototype.hasOwnProperty.call(this.style,r)&&(t.style[r]=this.style[r]);return t}toMarkup(){let t=`<img src='${this.src}' alt='${this.alt}'`,r="";for(let o in this.style)Object.prototype.hasOwnProperty.call(this.style,o)&&(r+=`${N.hyphenate(o)}:${this.style[o]};`);return r&&(t+=` style="${N.escape(r)}"`),t+=">",t}};function $r(e){return new ge(e)}var R=class{constructor(t,r,o,s){this.type=t,this.attributes={},this.children=r||[],this.classes=o||[],this.style=s||{},this.label=""}setAttribute(t,r){this.attributes[t]=r}getAttribute(t){return this.attributes[t]}setLabel(t){this.label=t}toNode(){let t=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(let r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&t.setAttribute(r,this.attributes[r]);this.classes.length>0&&(t.className=ue(this.classes));for(let r in this.style)Object.prototype.hasOwnProperty.call(this.style,r)&&(t.style[r]=this.style[r]);for(let r=0;r<this.children.length;r++)t.appendChild(this.children[r].toNode());return t}toMarkup(){let t="<"+this.type;for(let o in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,o)&&(t+=" "+o+'="',t+=N.escape(this.attributes[o]),t+='"');this.classes.length>0&&(t+=` class="${N.escape(ue(this.classes))}"`);let r="";for(let o in this.style)Object.prototype.hasOwnProperty.call(this.style,o)&&(r+=`${N.hyphenate(o)}:${this.style[o]};`);r&&(t+=` style="${r}"`),t+=">";for(let o=0;o<this.children.length;o++)t+=this.children[o].toMarkup();return t+="</"+this.type+">",t}toText(){return this.children.map(t=>t.toText()).join("")}},ae=class{constructor(t){this.text=t}toNode(){return document.createTextNode(this.text)}toMarkup(){return N.escape(this.toText())}toText(){return this.text}},Je=e=>{let t;return e.length===1&&e[0].type==="mrow"?(t=e.pop(),t.type="mstyle"):t=new R("mstyle",e),t},p={MathNode:R,TextNode:ae,newDocumentFragment:$r},de=e=>{let t=0;if(e.body)for(let r of e.body)t+=de(r);else if(e.type==="supsub")t+=de(e.base),e.sub&&(t+=.7*de(e.sub)),e.sup&&(t+=.7*de(e.sup));else if(e.type==="mathord"||e.type==="textord")for(let r of e.text.split("")){let o=r.codePointAt(0);96<o&&o<123||944<o&&o<970?t+=.56:47<o&&o<58?t+=.5:t+=.92}else t+=1;return t},Mr={widehat:"^",widecheck:"\u02C7",widetilde:"~",wideparen:"\u23DC",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23DF",overbrace:"\u23DE",overgroup:"\u23E0",overparen:"\u23DC",undergroup:"\u23E1",underparen:"\u23DD",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21D2",xRightarrow:"\u21D2",overleftharpoon:"\u21BC",xleftharpoonup:"\u21BC",overrightharpoon:"\u21C0",xrightharpoonup:"\u21C0",xLeftarrow:"\u21D0",xLeftrightarrow:"\u21D4",xhookleftarrow:"\u21A9",xhookrightarrow:"\u21AA",xmapsto:"\u21A6",xrightharpoondown:"\u21C1",xleftharpoondown:"\u21BD",xtwoheadleftarrow:"\u219E",xtwoheadrightarrow:"\u21A0",xlongequal:"=",xrightleftarrows:"\u21C4",yields:"\u2192",yieldsLeft:"\u2190",mesomerism:"\u2194",longrightharpoonup:"\u21C0",longleftharpoondown:"\u21BD",eqrightharpoonup:"\u21C0",eqleftharpoondown:"\u21BD","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},Vt=function(e){let t=new p.TextNode(Mr[e.slice(1)]),r=new p.MathNode("mo",[t]);return r.setAttribute("stretchy","true"),r},Er=["\\widetilde","\\widehat","\\widecheck","\\utilde"],zr=e=>{let t=Vt(e.label);if(Er.includes(e.label)){let r=de(e.base);1<r&&r<1.6?t.classes.push("tml-crooked-2"):1.6<=r&&r<2.5?t.classes.push("tml-crooked-3"):2.5<=r&&t.classes.push("tml-crooked-4")}return t},Me={mathMLnode:Vt,accentNode:zr},Lr={bin:1,close:1,inner:1,open:1,punct:1,rel:1},Fr={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},I={math:{},text:{}};function n(e,t,r,o,s){I[e][o]={group:t,replace:r},s&&r&&(I[e][r]=I[e][o])}var a="math",g="text",B="accent-token",f="bin",L="close",ie="inner",v="mathord",D="op-token",P="open",we="punct",d="rel",ee="spacing",m="textord";n(a,d,"\u2261","\\equiv",!0);n(a,d,"\u227A","\\prec",!0);n(a,d,"\u227B","\\succ",!0);n(a,d,"\u223C","\\sim",!0);n(a,d,"\u27C2","\\perp",!0);n(a,d,"\u2AAF","\\preceq",!0);n(a,d,"\u2AB0","\\succeq",!0);n(a,d,"\u2243","\\simeq",!0);n(a,d,"\u224C","\\backcong",!0);n(a,d,"|","\\mid",!0);n(a,d,"\u226A","\\ll",!0);n(a,d,"\u226B","\\gg",!0);n(a,d,"\u224D","\\asymp",!0);n(a,d,"\u2225","\\parallel");n(a,d,"\u2323","\\smile",!0);n(a,d,"\u2291","\\sqsubseteq",!0);n(a,d,"\u2292","\\sqsupseteq",!0);n(a,d,"\u2250","\\doteq",!0);n(a,d,"\u2322","\\frown",!0);n(a,d,"\u220B","\\ni",!0);n(a,d,"\u220C","\\notni",!0);n(a,d,"\u221D","\\propto",!0);n(a,d,"\u22A2","\\vdash",!0);n(a,d,"\u22A3","\\dashv",!0);n(a,d,"\u220B","\\owns");n(a,d,"\u2258","\\arceq",!0);n(a,d,"\u2259","\\wedgeq",!0);n(a,d,"\u225A","\\veeeq",!0);n(a,d,"\u225B","\\stareq",!0);n(a,d,"\u225D","\\eqdef",!0);n(a,d,"\u225E","\\measeq",!0);n(a,d,"\u225F","\\questeq",!0);n(a,d,"\u2260","\\ne",!0);n(a,d,"\u2260","\\neq");n(a,d,"\u2A75","\\eqeq",!0);n(a,d,"\u2A76","\\eqeqeq",!0);n(a,d,"\u2237","\\dblcolon",!0);n(a,d,"\u2254","\\coloneqq",!0);n(a,d,"\u2255","\\eqqcolon",!0);n(a,d,"\u2239","\\eqcolon",!0);n(a,d,"\u2A74","\\Coloneqq",!0);n(a,we,".","\\ldotp");n(a,we,"\xB7","\\cdotp");n(a,m,"#","\\#");n(g,m,"#","\\#");n(a,m,"&","\\&");n(g,m,"&","\\&");n(a,m,"\u2135","\\aleph",!0);n(a,m,"\u2200","\\forall",!0);n(a,m,"\u210F","\\hbar",!0);n(a,m,"\u2203","\\exists",!0);n(a,f,"\u2207","\\nabla",!0);n(a,m,"\u266D","\\flat",!0);n(a,m,"\u2113","\\ell",!0);n(a,m,"\u266E","\\natural",!0);n(a,m,"\u212B","\\Angstrom",!0);n(g,m,"\u212B","\\Angstrom",!0);n(a,m,"\u2663","\\clubsuit",!0);n(a,m,"\u2667","\\varclubsuit",!0);n(a,m,"\u2118","\\wp",!0);n(a,m,"\u266F","\\sharp",!0);n(a,m,"\u2662","\\diamondsuit",!0);n(a,m,"\u2666","\\vardiamondsuit",!0);n(a,m,"\u211C","\\Re",!0);n(a,m,"\u2661","\\heartsuit",!0);n(a,m,"\u2665","\\varheartsuit",!0);n(a,m,"\u2111","\\Im",!0);n(a,m,"\u2660","\\spadesuit",!0);n(a,m,"\u2664","\\varspadesuit",!0);n(a,m,"\u2640","\\female",!0);n(a,m,"\u2642","\\male",!0);n(a,m,"\xA7","\\S",!0);n(g,m,"\xA7","\\S");n(a,m,"\xB6","\\P",!0);n(g,m,"\xB6","\\P");n(g,m,"\u263A","\\smiley",!0);n(a,m,"\u263A","\\smiley",!0);n(a,m,"\u2020","\\dag");n(g,m,"\u2020","\\dag");n(g,m,"\u2020","\\textdagger");n(a,m,"\u2021","\\ddag");n(g,m,"\u2021","\\ddag");n(g,m,"\u2021","\\textdaggerdbl");n(a,L,"\u23B1","\\rmoustache",!0);n(a,P,"\u23B0","\\lmoustache",!0);n(a,L,"\u27EF","\\rgroup",!0);n(a,P,"\u27EE","\\lgroup",!0);n(a,f,"\u2213","\\mp",!0);n(a,f,"\u2296","\\ominus",!0);n(a,f,"\u228E","\\uplus",!0);n(a,f,"\u2293","\\sqcap",!0);n(a,f,"\u2217","\\ast");n(a,f,"\u2294","\\sqcup",!0);n(a,f,"\u25EF","\\bigcirc",!0);n(a,f,"\u2219","\\bullet",!0);n(a,f,"\u2021","\\ddagger");n(a,f,"\u2240","\\wr",!0);n(a,f,"\u2A3F","\\amalg");n(a,f,"&","\\And");n(a,f,"\u2AFD","\\sslash",!0);n(a,d,"\u27F5","\\longleftarrow",!0);n(a,d,"\u21D0","\\Leftarrow",!0);n(a,d,"\u27F8","\\Longleftarrow",!0);n(a,d,"\u27F6","\\longrightarrow",!0);n(a,d,"\u21D2","\\Rightarrow",!0);n(a,d,"\u27F9","\\Longrightarrow",!0);n(a,d,"\u2194","\\leftrightarrow",!0);n(a,d,"\u27F7","\\longleftrightarrow",!0);n(a,d,"\u21D4","\\Leftrightarrow",!0);n(a,d,"\u27FA","\\Longleftrightarrow",!0);n(a,d,"\u21A4","\\mapsfrom",!0);n(a,d,"\u21A6","\\mapsto",!0);n(a,d,"\u27FC","\\longmapsto",!0);n(a,d,"\u2197","\\nearrow",!0);n(a,d,"\u21A9","\\hookleftarrow",!0);n(a,d,"\u21AA","\\hookrightarrow",!0);n(a,d,"\u2198","\\searrow",!0);n(a,d,"\u21BC","\\leftharpoonup",!0);n(a,d,"\u21C0","\\rightharpoonup",!0);n(a,d,"\u2199","\\swarrow",!0);n(a,d,"\u21BD","\\leftharpoondown",!0);n(a,d,"\u21C1","\\rightharpoondown",!0);n(a,d,"\u2196","\\nwarrow",!0);n(a,d,"\u21CC","\\rightleftharpoons",!0);n(a,v,"\u21AF","\\lightning",!0);n(a,v,"\u220E","\\QED",!0);n(a,v,"\u2030","\\permil",!0);n(g,m,"\u2030","\\permil");n(a,v,"\u2609","\\astrosun",!0);n(a,v,"\u263C","\\sun",!0);n(a,v,"\u263E","\\leftmoon",!0);n(a,v,"\u263D","\\rightmoon",!0);n(a,v,"\u2295","\\Earth");n(a,d,"\u226E","\\nless",!0);n(a,d,"\u2A87","\\lneq",!0);n(a,d,"\u2268","\\lneqq",!0);n(a,d,"\u2268\uFE00","\\lvertneqq");n(a,d,"\u22E6","\\lnsim",!0);n(a,d,"\u2A89","\\lnapprox",!0);n(a,d,"\u2280","\\nprec",!0);n(a,d,"\u22E0","\\npreceq",!0);n(a,d,"\u22E8","\\precnsim",!0);n(a,d,"\u2AB9","\\precnapprox",!0);n(a,d,"\u2241","\\nsim",!0);n(a,d,"\u2224","\\nmid",!0);n(a,d,"\u2224","\\nshortmid");n(a,d,"\u22AC","\\nvdash",!0);n(a,d,"\u22AD","\\nvDash",!0);n(a,d,"\u22EA","\\ntriangleleft");n(a,d,"\u22EC","\\ntrianglelefteq",!0);n(a,d,"\u2284","\\nsubset",!0);n(a,d,"\u2285","\\nsupset",!0);n(a,d,"\u228A","\\subsetneq",!0);n(a,d,"\u228A\uFE00","\\varsubsetneq");n(a,d,"\u2ACB","\\subsetneqq",!0);n(a,d,"\u2ACB\uFE00","\\varsubsetneqq");n(a,d,"\u226F","\\ngtr",!0);n(a,d,"\u2A88","\\gneq",!0);n(a,d,"\u2269","\\gneqq",!0);n(a,d,"\u2269\uFE00","\\gvertneqq");n(a,d,"\u22E7","\\gnsim",!0);n(a,d,"\u2A8A","\\gnapprox",!0);n(a,d,"\u2281","\\nsucc",!0);n(a,d,"\u22E1","\\nsucceq",!0);n(a,d,"\u22E9","\\succnsim",!0);n(a,d,"\u2ABA","\\succnapprox",!0);n(a,d,"\u2246","\\ncong",!0);n(a,d,"\u2226","\\nparallel",!0);n(a,d,"\u2226","\\nshortparallel");n(a,d,"\u22AF","\\nVDash",!0);n(a,d,"\u22EB","\\ntriangleright");n(a,d,"\u22ED","\\ntrianglerighteq",!0);n(a,d,"\u228B","\\supsetneq",!0);n(a,d,"\u228B","\\varsupsetneq");n(a,d,"\u2ACC","\\supsetneqq",!0);n(a,d,"\u2ACC\uFE00","\\varsupsetneqq");n(a,d,"\u22AE","\\nVdash",!0);n(a,d,"\u2AB5","\\precneqq",!0);n(a,d,"\u2AB6","\\succneqq",!0);n(a,f,"\u22B4","\\unlhd");n(a,f,"\u22B5","\\unrhd");n(a,d,"\u219A","\\nleftarrow",!0);n(a,d,"\u219B","\\nrightarrow",!0);n(a,d,"\u21CD","\\nLeftarrow",!0);n(a,d,"\u21CF","\\nRightarrow",!0);n(a,d,"\u21AE","\\nleftrightarrow",!0);n(a,d,"\u21CE","\\nLeftrightarrow",!0);n(a,d,"\u25B3","\\vartriangle");n(a,m,"\u210F","\\hslash");n(a,m,"\u25BD","\\triangledown");n(a,m,"\u25CA","\\lozenge");n(a,m,"\u24C8","\\circledS");n(a,m,"\xAE","\\circledR",!0);n(g,m,"\xAE","\\circledR");n(g,m,"\xAE","\\textregistered");n(a,m,"\u2221","\\measuredangle",!0);n(a,m,"\u2204","\\nexists");n(a,m,"\u2127","\\mho");n(a,m,"\u2132","\\Finv",!0);n(a,m,"\u2141","\\Game",!0);n(a,m,"\u2035","\\backprime");n(a,m,"\u2036","\\backdprime");n(a,m,"\u2037","\\backtrprime");n(a,m,"\u25B2","\\blacktriangle");n(a,m,"\u25BC","\\blacktriangledown");n(a,m,"\u25A0","\\blacksquare");n(a,m,"\u29EB","\\blacklozenge");n(a,m,"\u2605","\\bigstar");n(a,m,"\u2222","\\sphericalangle",!0);n(a,m,"\u2201","\\complement",!0);n(a,m,"\xF0","\\eth",!0);n(g,m,"\xF0","\xF0");n(a,m,"\u2571","\\diagup");n(a,m,"\u2572","\\diagdown");n(a,m,"\u25A1","\\square");n(a,m,"\u25A1","\\Box");n(a,m,"\u25CA","\\Diamond");n(a,m,"\xA5","\\yen",!0);n(g,m,"\xA5","\\yen",!0);n(a,m,"\u2713","\\checkmark",!0);n(g,m,"\u2713","\\checkmark");n(a,m,"\u2717","\\ballotx",!0);n(g,m,"\u2717","\\ballotx");n(g,m,"\u2022","\\textbullet");n(a,m,"\u2136","\\beth",!0);n(a,m,"\u2138","\\daleth",!0);n(a,m,"\u2137","\\gimel",!0);n(a,m,"\u03DD","\\digamma",!0);n(a,m,"\u03F0","\\varkappa");n(a,P,"\u231C","\\ulcorner",!0);n(a,L,"\u231D","\\urcorner",!0);n(a,P,"\u231E","\\llcorner",!0);n(a,L,"\u231F","\\lrcorner",!0);n(a,d,"\u2266","\\leqq",!0);n(a,d,"\u2A7D","\\leqslant",!0);n(a,d,"\u2A95","\\eqslantless",!0);n(a,d,"\u2272","\\lesssim",!0);n(a,d,"\u2A85","\\lessapprox",!0);n(a,d,"\u224A","\\approxeq",!0);n(a,f,"\u22D6","\\lessdot");n(a,d,"\u22D8","\\lll",!0);n(a,d,"\u2276","\\lessgtr",!0);n(a,d,"\u22DA","\\lesseqgtr",!0);n(a,d,"\u2A8B","\\lesseqqgtr",!0);n(a,d,"\u2251","\\doteqdot");n(a,d,"\u2253","\\risingdotseq",!0);n(a,d,"\u2252","\\fallingdotseq",!0);n(a,d,"\u223D","\\backsim",!0);n(a,d,"\u22CD","\\backsimeq",!0);n(a,d,"\u2AC5","\\subseteqq",!0);n(a,d,"\u22D0","\\Subset",!0);n(a,d,"\u228F","\\sqsubset",!0);n(a,d,"\u227C","\\preccurlyeq",!0);n(a,d,"\u22DE","\\curlyeqprec",!0);n(a,d,"\u227E","\\precsim",!0);n(a,d,"\u2AB7","\\precapprox",!0);n(a,d,"\u22B2","\\vartriangleleft");n(a,d,"\u22B4","\\trianglelefteq");n(a,d,"\u22A8","\\vDash",!0);n(a,d,"\u22AB","\\VDash",!0);n(a,d,"\u22AA","\\Vvdash",!0);n(a,d,"\u2323","\\smallsmile");n(a,d,"\u2322","\\smallfrown");n(a,d,"\u224F","\\bumpeq",!0);n(a,d,"\u224E","\\Bumpeq",!0);n(a,d,"\u2267","\\geqq",!0);n(a,d,"\u2A7E","\\geqslant",!0);n(a,d,"\u2A96","\\eqslantgtr",!0);n(a,d,"\u2273","\\gtrsim",!0);n(a,d,"\u2A86","\\gtrapprox",!0);n(a,f,"\u22D7","\\gtrdot");n(a,d,"\u22D9","\\ggg",!0);n(a,d,"\u2277","\\gtrless",!0);n(a,d,"\u22DB","\\gtreqless",!0);n(a,d,"\u2A8C","\\gtreqqless",!0);n(a,d,"\u2256","\\eqcirc",!0);n(a,d,"\u2257","\\circeq",!0);n(a,d,"\u225C","\\triangleq",!0);n(a,d,"\u223C","\\thicksim");n(a,d,"\u2248","\\thickapprox");n(a,d,"\u2AC6","\\supseteqq",!0);n(a,d,"\u22D1","\\Supset",!0);n(a,d,"\u2290","\\sqsupset",!0);n(a,d,"\u227D","\\succcurlyeq",!0);n(a,d,"\u22DF","\\curlyeqsucc",!0);n(a,d,"\u227F","\\succsim",!0);n(a,d,"\u2AB8","\\succapprox",!0);n(a,d,"\u22B3","\\vartriangleright");n(a,d,"\u22B5","\\trianglerighteq");n(a,d,"\u22A9","\\Vdash",!0);n(a,d,"\u2223","\\shortmid");n(a,d,"\u2225","\\shortparallel");n(a,d,"\u226C","\\between",!0);n(a,d,"\u22D4","\\pitchfork",!0);n(a,d,"\u221D","\\varpropto");n(a,d,"\u25C0","\\blacktriangleleft");n(a,d,"\u2234","\\therefore",!0);n(a,d,"\u220D","\\backepsilon");n(a,d,"\u25B6","\\blacktriangleright");n(a,d,"\u2235","\\because",!0);n(a,d,"\u22D8","\\llless");n(a,d,"\u22D9","\\gggtr");n(a,f,"\u22B2","\\lhd");n(a,f,"\u22B3","\\rhd");n(a,d,"\u2242","\\eqsim",!0);n(a,d,"\u2251","\\Doteq",!0);n(a,d,"\u297D","\\strictif",!0);n(a,d,"\u297C","\\strictfi",!0);n(a,f,"\u2214","\\dotplus",!0);n(a,f,"\u2216","\\smallsetminus");n(a,f,"\u22D2","\\Cap",!0);n(a,f,"\u22D3","\\Cup",!0);n(a,f,"\u2A5E","\\doublebarwedge",!0);n(a,f,"\u229F","\\boxminus",!0);n(a,f,"\u229E","\\boxplus",!0);n(a,f,"\u29C4","\\boxslash",!0);n(a,f,"\u22C7","\\divideontimes",!0);n(a,f,"\u22C9","\\ltimes",!0);n(a,f,"\u22CA","\\rtimes",!0);n(a,f,"\u22CB","\\leftthreetimes",!0);n(a,f,"\u22CC","\\rightthreetimes",!0);n(a,f,"\u22CF","\\curlywedge",!0);n(a,f,"\u22CE","\\curlyvee",!0);n(a,f,"\u229D","\\circleddash",!0);n(a,f,"\u229B","\\circledast",!0);n(a,f,"\u22BA","\\intercal",!0);n(a,f,"\u22D2","\\doublecap");n(a,f,"\u22D3","\\doublecup");n(a,f,"\u22A0","\\boxtimes",!0);n(a,f,"\u22C8","\\bowtie",!0);n(a,f,"\u22C8","\\Join");n(a,f,"\u27D5","\\leftouterjoin",!0);n(a,f,"\u27D6","\\rightouterjoin",!0);n(a,f,"\u27D7","\\fullouterjoin",!0);n(a,f,"\u2238","\\dotminus",!0);n(a,f,"\u27D1","\\wedgedot",!0);n(a,f,"\u27C7","\\veedot",!0);n(a,f,"\u2A62","\\doublebarvee",!0);n(a,f,"\u2A63","\\veedoublebar",!0);n(a,f,"\u2A5F","\\wedgebar",!0);n(a,f,"\u2A60","\\wedgedoublebar",!0);n(a,f,"\u2A54","\\Vee",!0);n(a,f,"\u2A53","\\Wedge",!0);n(a,f,"\u2A43","\\barcap",!0);n(a,f,"\u2A42","\\barcup",!0);n(a,f,"\u2A48","\\capbarcup",!0);n(a,f,"\u2A40","\\capdot",!0);n(a,f,"\u2A47","\\capovercup",!0);n(a,f,"\u2A46","\\cupovercap",!0);n(a,f,"\u2A4D","\\closedvarcap",!0);n(a,f,"\u2A4C","\\closedvarcup",!0);n(a,f,"\u2A2A","\\minusdot",!0);n(a,f,"\u2A2B","\\minusfdots",!0);n(a,f,"\u2A2C","\\minusrdots",!0);n(a,f,"\u22BB","\\Xor",!0);n(a,f,"\u22BC","\\Nand",!0);n(a,f,"\u22BD","\\Nor",!0);n(a,f,"\u22BD","\\barvee");n(a,f,"\u2AF4","\\interleave",!0);n(a,f,"\u29E2","\\shuffle",!0);n(a,f,"\u2AF6","\\threedotcolon",!0);n(a,f,"\u2982","\\typecolon",!0);n(a,f,"\u223E","\\invlazys",!0);n(a,f,"\u2A4B","\\twocaps",!0);n(a,f,"\u2A4A","\\twocups",!0);n(a,f,"\u2A4E","\\Sqcap",!0);n(a,f,"\u2A4F","\\Sqcup",!0);n(a,f,"\u2A56","\\veeonvee",!0);n(a,f,"\u2A55","\\wedgeonwedge",!0);n(a,f,"\u29D7","\\blackhourglass",!0);n(a,f,"\u29C6","\\boxast",!0);n(a,f,"\u29C8","\\boxbox",!0);n(a,f,"\u29C7","\\boxcircle",!0);n(a,f,"\u229C","\\circledequal",!0);n(a,f,"\u29B7","\\circledparallel",!0);n(a,f,"\u29B6","\\circledvert",!0);n(a,f,"\u29B5","\\circlehbar",!0);n(a,f,"\u27E1","\\concavediamond",!0);n(a,f,"\u27E2","\\concavediamondtickleft",!0);n(a,f,"\u27E3","\\concavediamondtickright",!0);n(a,f,"\u22C4","\\diamond",!0);n(a,f,"\u29D6","\\hourglass",!0);n(a,f,"\u27E0","\\lozengeminus",!0);n(a,f,"\u233D","\\obar",!0);n(a,f,"\u29B8","\\obslash",!0);n(a,f,"\u2A38","\\odiv",!0);n(a,f,"\u29C1","\\ogreaterthan",!0);n(a,f,"\u29C0","\\olessthan",!0);n(a,f,"\u29B9","\\operp",!0);n(a,f,"\u2A37","\\Otimes",!0);n(a,f,"\u2A36","\\otimeshat",!0);n(a,f,"\u22C6","\\star",!0);n(a,f,"\u25B3","\\triangle",!0);n(a,f,"\u2A3A","\\triangleminus",!0);n(a,f,"\u2A39","\\triangleplus",!0);n(a,f,"\u2A3B","\\triangletimes",!0);n(a,f,"\u27E4","\\whitesquaretickleft",!0);n(a,f,"\u27E5","\\whitesquaretickright",!0);n(a,f,"\u2A33","\\smashtimes",!0);n(a,d,"\u21E2","\\dashrightarrow",!0);n(a,d,"\u21E0","\\dashleftarrow",!0);n(a,d,"\u21C7","\\leftleftarrows",!0);n(a,d,"\u21C6","\\leftrightarrows",!0);n(a,d,"\u21DA","\\Lleftarrow",!0);n(a,d,"\u219E","\\twoheadleftarrow",!0);n(a,d,"\u21A2","\\leftarrowtail",!0);n(a,d,"\u21AB","\\looparrowleft",!0);n(a,d,"\u21CB","\\leftrightharpoons",!0);n(a,d,"\u21B6","\\curvearrowleft",!0);n(a,d,"\u21BA","\\circlearrowleft",!0);n(a,d,"\u21B0","\\Lsh",!0);n(a,d,"\u21C8","\\upuparrows",!0);n(a,d,"\u21BF","\\upharpoonleft",!0);n(a,d,"\u21C3","\\downharpoonleft",!0);n(a,d,"\u22B6","\\origof",!0);n(a,d,"\u22B7","\\imageof",!0);n(a,d,"\u22B8","\\multimap",!0);n(a,d,"\u21AD","\\leftrightsquigarrow",!0);n(a,d,"\u21C9","\\rightrightarrows",!0);n(a,d,"\u21C4","\\rightleftarrows",!0);n(a,d,"\u21A0","\\twoheadrightarrow",!0);n(a,d,"\u21A3","\\rightarrowtail",!0);n(a,d,"\u21AC","\\looparrowright",!0);n(a,d,"\u21B7","\\curvearrowright",!0);n(a,d,"\u21BB","\\circlearrowright",!0);n(a,d,"\u21B1","\\Rsh",!0);n(a,d,"\u21CA","\\downdownarrows",!0);n(a,d,"\u21BE","\\upharpoonright",!0);n(a,d,"\u21C2","\\downharpoonright",!0);n(a,d,"\u21DD","\\rightsquigarrow",!0);n(a,d,"\u21DD","\\leadsto");n(a,d,"\u21DB","\\Rrightarrow",!0);n(a,d,"\u21BE","\\restriction");n(a,m,"\u2018","`");n(a,m,"$","\\$");n(g,m,"$","\\$");n(g,m,"$","\\textdollar");n(a,m,"\xA2","\\cent");n(g,m,"\xA2","\\cent");n(a,m,"%","\\%");n(g,m,"%","\\%");n(a,m,"_","\\_");n(g,m,"_","\\_");n(g,m,"_","\\textunderscore");n(g,m,"\u2423","\\textvisiblespace",!0);n(a,m,"\u2220","\\angle",!0);n(a,m,"\u221E","\\infty",!0);n(a,m,"\u2032","\\prime");n(a,m,"\u2033","\\dprime");n(a,m,"\u2034","\\trprime");n(a,m,"\u2057","\\qprime");n(a,m,"\u25B3","\\triangle");n(g,m,"\u0391","\\Alpha",!0);n(g,m,"\u0392","\\Beta",!0);n(g,m,"\u0393","\\Gamma",!0);n(g,m,"\u0394","\\Delta",!0);n(g,m,"\u0395","\\Epsilon",!0);n(g,m,"\u0396","\\Zeta",!0);n(g,m,"\u0397","\\Eta",!0);n(g,m,"\u0398","\\Theta",!0);n(g,m,"\u0399","\\Iota",!0);n(g,m,"\u039A","\\Kappa",!0);n(g,m,"\u039B","\\Lambda",!0);n(g,m,"\u039C","\\Mu",!0);n(g,m,"\u039D","\\Nu",!0);n(g,m,"\u039E","\\Xi",!0);n(g,m,"\u039F","\\Omicron",!0);n(g,m,"\u03A0","\\Pi",!0);n(g,m,"\u03A1","\\Rho",!0);n(g,m,"\u03A3","\\Sigma",!0);n(g,m,"\u03A4","\\Tau",!0);n(g,m,"\u03A5","\\Upsilon",!0);n(g,m,"\u03A6","\\Phi",!0);n(g,m,"\u03A7","\\Chi",!0);n(g,m,"\u03A8","\\Psi",!0);n(g,m,"\u03A9","\\Omega",!0);n(a,v,"\u0391","\\Alpha",!0);n(a,v,"\u0392","\\Beta",!0);n(a,v,"\u0393","\\Gamma",!0);n(a,v,"\u0394","\\Delta",!0);n(a,v,"\u0395","\\Epsilon",!0);n(a,v,"\u0396","\\Zeta",!0);n(a,v,"\u0397","\\Eta",!0);n(a,v,"\u0398","\\Theta",!0);n(a,v,"\u0399","\\Iota",!0);n(a,v,"\u039A","\\Kappa",!0);n(a,v,"\u039B","\\Lambda",!0);n(a,v,"\u039C","\\Mu",!0);n(a,v,"\u039D","\\Nu",!0);n(a,v,"\u039E","\\Xi",!0);n(a,v,"\u039F","\\Omicron",!0);n(a,v,"\u03A0","\\Pi",!0);n(a,v,"\u03A1","\\Rho",!0);n(a,v,"\u03A3","\\Sigma",!0);n(a,v,"\u03A4","\\Tau",!0);n(a,v,"\u03A5","\\Upsilon",!0);n(a,v,"\u03A6","\\Phi",!0);n(a,v,"\u03A7","\\Chi",!0);n(a,v,"\u03A8","\\Psi",!0);n(a,v,"\u03A9","\\Omega",!0);n(a,P,"\xAC","\\neg",!0);n(a,P,"\xAC","\\lnot");n(a,m,"\u22A4","\\top");n(a,m,"\u22A5","\\bot");n(a,m,"\u2205","\\emptyset");n(a,m,"\u2300","\\varnothing");n(a,v,"\u03B1","\\alpha",!0);n(a,v,"\u03B2","\\beta",!0);n(a,v,"\u03B3","\\gamma",!0);n(a,v,"\u03B4","\\delta",!0);n(a,v,"\u03F5","\\epsilon",!0);n(a,v,"\u03B6","\\zeta",!0);n(a,v,"\u03B7","\\eta",!0);n(a,v,"\u03B8","\\theta",!0);n(a,v,"\u03B9","\\iota",!0);n(a,v,"\u03BA","\\kappa",!0);n(a,v,"\u03BB","\\lambda",!0);n(a,v,"\u03BC","\\mu",!0);n(a,v,"\u03BD","\\nu",!0);n(a,v,"\u03BE","\\xi",!0);n(a,v,"\u03BF","\\omicron",!0);n(a,v,"\u03C0","\\pi",!0);n(a,v,"\u03C1","\\rho",!0);n(a,v,"\u03C3","\\sigma",!0);n(a,v,"\u03C4","\\tau",!0);n(a,v,"\u03C5","\\upsilon",!0);n(a,v,"\u03D5","\\phi",!0);n(a,v,"\u03C7","\\chi",!0);n(a,v,"\u03C8","\\psi",!0);n(a,v,"\u03C9","\\omega",!0);n(a,v,"\u03B5","\\varepsilon",!0);n(a,v,"\u03D1","\\vartheta",!0);n(a,v,"\u03D6","\\varpi",!0);n(a,v,"\u03F1","\\varrho",!0);n(a,v,"\u03C2","\\varsigma",!0);n(a,v,"\u03C6","\\varphi",!0);n(a,v,"\u03D8","\\Coppa",!0);n(a,v,"\u03D9","\\coppa",!0);n(a,v,"\u03D9","\\varcoppa",!0);n(a,v,"\u03DE","\\Koppa",!0);n(a,v,"\u03DF","\\koppa",!0);n(a,v,"\u03E0","\\Sampi",!0);n(a,v,"\u03E1","\\sampi",!0);n(a,v,"\u03DA","\\Stigma",!0);n(a,v,"\u03DB","\\stigma",!0);n(a,v,"\u2AEB","\\Bot");n(a,f,"\u2217","\u2217",!0);n(a,f,"+","+");n(a,f,"\u2217","*");n(a,f,"\u2044","/",!0);n(a,f,"\u2044","\u2044");n(a,f,"\u2212","-",!0);n(a,f,"\u22C5","\\cdot",!0);n(a,f,"\u2218","\\circ",!0);n(a,f,"\xF7","\\div",!0);n(a,f,"\xB1","\\pm",!0);n(a,f,"\xD7","\\times",!0);n(a,f,"\u2229","\\cap",!0);n(a,f,"\u222A","\\cup",!0);n(a,f,"\u2216","\\setminus",!0);n(a,f,"\u2227","\\land");n(a,f,"\u2228","\\lor");n(a,f,"\u2227","\\wedge",!0);n(a,f,"\u2228","\\vee",!0);n(a,P,"\u27E6","\\llbracket",!0);n(a,L,"\u27E7","\\rrbracket",!0);n(a,P,"\u27E8","\\langle",!0);n(a,P,"\u27EA","\\lAngle",!0);n(a,P,"\u2989","\\llangle",!0);n(a,P,"|","\\lvert");n(a,P,"\u2016","\\lVert",!0);n(a,m,"!","\\oc");n(a,m,"?","\\wn");n(a,m,"\u2193","\\shpos");n(a,m,"\u2195","\\shift");n(a,m,"\u2191","\\shneg");n(a,L,"?","?");n(a,L,"!","!");n(a,L,"\u203C","\u203C");n(a,L,"\u27E9","\\rangle",!0);n(a,L,"\u27EB","\\rAngle",!0);n(a,L,"\u298A","\\rrangle",!0);n(a,L,"|","\\rvert");n(a,L,"\u2016","\\rVert");n(a,P,"\u2983","\\lBrace",!0);n(a,L,"\u2984","\\rBrace",!0);n(a,d,"=","\\equal",!0);n(a,d,":",":");n(a,d,"\u2248","\\approx",!0);n(a,d,"\u2245","\\cong",!0);n(a,d,"\u2265","\\ge");n(a,d,"\u2265","\\geq",!0);n(a,d,"\u2190","\\gets");n(a,d,">","\\gt",!0);n(a,d,"\u2208","\\in",!0);n(a,d,"\u2209","\\notin",!0);n(a,d,"\uE020","\\@not");n(a,d,"\u2282","\\subset",!0);n(a,d,"\u2283","\\supset",!0);n(a,d,"\u2286","\\subseteq",!0);n(a,d,"\u2287","\\supseteq",!0);n(a,d,"\u2288","\\nsubseteq",!0);n(a,d,"\u2288","\\nsubseteqq");n(a,d,"\u2289","\\nsupseteq",!0);n(a,d,"\u2289","\\nsupseteqq");n(a,d,"\u22A8","\\models");n(a,d,"\u2190","\\leftarrow",!0);n(a,d,"\u2264","\\le");n(a,d,"\u2264","\\leq",!0);n(a,d,"<","\\lt",!0);n(a,d,"\u2192","\\rightarrow",!0);n(a,d,"\u2192","\\to");n(a,d,"\u2271","\\ngeq",!0);n(a,d,"\u2271","\\ngeqq");n(a,d,"\u2271","\\ngeqslant");n(a,d,"\u2270","\\nleq",!0);n(a,d,"\u2270","\\nleqq");n(a,d,"\u2270","\\nleqslant");n(a,d,"\u2AEB","\\Perp",!0);n(a,ee,"\xA0","\\ ");n(a,ee,"\xA0","\\space");n(a,ee,"\xA0","\\nobreakspace");n(g,ee,"\xA0","\\ ");n(g,ee,"\xA0"," ");n(g,ee,"\xA0","\\space");n(g,ee,"\xA0","\\nobreakspace");n(a,ee,null,"\\nobreak");n(a,ee,null,"\\allowbreak");n(a,we,",",",");n(g,we,":",":");n(a,we,";",";");n(a,f,"\u22BC","\\barwedge");n(a,f,"\u22BB","\\veebar");n(a,f,"\u2299","\\odot",!0);n(a,f,"\u2295\uFE0E","\\oplus");n(a,f,"\u2297","\\otimes",!0);n(a,m,"\u2202","\\partial",!0);n(a,f,"\u2298","\\oslash",!0);n(a,f,"\u229A","\\circledcirc",!0);n(a,f,"\u22A1","\\boxdot",!0);n(a,f,"\u25B3","\\bigtriangleup");n(a,f,"\u25BD","\\bigtriangledown");n(a,f,"\u2020","\\dagger");n(a,f,"\u22C4","\\diamond");n(a,f,"\u25C3","\\triangleleft");n(a,f,"\u25B9","\\triangleright");n(a,P,"{","\\{");n(g,m,"{","\\{");n(g,m,"{","\\textbraceleft");n(a,L,"}","\\}");n(g,m,"}","\\}");n(g,m,"}","\\textbraceright");n(a,P,"{","\\lbrace");n(a,L,"}","\\rbrace");n(a,P,"[","\\lbrack",!0);n(g,m,"[","\\lbrack",!0);n(a,L,"]","\\rbrack",!0);n(g,m,"]","\\rbrack",!0);n(a,P,"(","\\lparen",!0);n(a,L,")","\\rparen",!0);n(a,P,"\u2987","\\llparenthesis",!0);n(a,L,"\u2988","\\rrparenthesis",!0);n(g,m,"<","\\textless",!0);n(g,m,">","\\textgreater",!0);n(a,P,"\u230A","\\lfloor",!0);n(a,L,"\u230B","\\rfloor",!0);n(a,P,"\u2308","\\lceil",!0);n(a,L,"\u2309","\\rceil",!0);n(a,m,"\\","\\backslash");n(a,m,"|","|");n(a,m,"|","\\vert");n(g,m,"|","\\textbar",!0);n(a,m,"\u2016","\\|");n(a,m,"\u2016","\\Vert");n(g,m,"\u2016","\\textbardbl");n(g,m,"~","\\textasciitilde");n(g,m,"\\","\\textbackslash");n(g,m,"^","\\textasciicircum");n(a,d,"\u2191","\\uparrow",!0);n(a,d,"\u21D1","\\Uparrow",!0);n(a,d,"\u2193","\\downarrow",!0);n(a,d,"\u21D3","\\Downarrow",!0);n(a,d,"\u2195","\\updownarrow",!0);n(a,d,"\u21D5","\\Updownarrow",!0);n(a,D,"\u2210","\\coprod");n(a,D,"\u22C1","\\bigvee");n(a,D,"\u22C0","\\bigwedge");n(a,D,"\u2A04","\\biguplus");n(a,D,"\u2A04","\\bigcupplus");n(a,D,"\u2A03","\\bigcupdot");n(a,D,"\u2A07","\\bigdoublevee");n(a,D,"\u2A08","\\bigdoublewedge");n(a,D,"\u22C2","\\bigcap");n(a,D,"\u22C3","\\bigcup");n(a,D,"\u222B","\\int");n(a,D,"\u222B","\\intop");n(a,D,"\u222C","\\iint");n(a,D,"\u222D","\\iiint");n(a,D,"\u220F","\\prod");n(a,D,"\u2211","\\sum");n(a,D,"\u2A02","\\bigotimes");n(a,D,"\u2A01","\\bigoplus");n(a,D,"\u2A00","\\bigodot");n(a,D,"\u2A09","\\bigtimes");n(a,D,"\u222E","\\oint");n(a,D,"\u222F","\\oiint");n(a,D,"\u2230","\\oiiint");n(a,D,"\u2231","\\intclockwise");n(a,D,"\u2232","\\varointclockwise");n(a,D,"\u2A0C","\\iiiint");n(a,D,"\u2A0D","\\intbar");n(a,D,"\u2A0E","\\intBar");n(a,D,"\u2A0F","\\fint");n(a,D,"\u2A12","\\rppolint");n(a,D,"\u2A13","\\scpolint");n(a,D,"\u2A15","\\pointint");n(a,D,"\u2A16","\\sqint");n(a,D,"\u2A17","\\intlarhk");n(a,D,"\u2A18","\\intx");n(a,D,"\u2A19","\\intcap");n(a,D,"\u2A1A","\\intcup");n(a,D,"\u2A05","\\bigsqcap");n(a,D,"\u2A06","\\bigsqcup");n(a,D,"\u222B","\\smallint");n(g,ie,"\u2026","\\textellipsis");n(a,ie,"\u2026","\\mathellipsis");n(g,ie,"\u2026","\\ldots",!0);n(a,ie,"\u2026","\\ldots",!0);n(a,ie,"\u22F0","\\iddots",!0);n(a,ie,"\u22EF","\\@cdots",!0);n(a,ie,"\u22F1","\\ddots",!0);n(a,m,"\u22EE","\\varvdots");n(g,m,"\u22EE","\\varvdots");n(a,B,"\u02CA","\\acute");n(a,B,"`","\\grave");n(a,B,"\xA8","\\ddot");n(a,B,"\u2026","\\dddot");n(a,B,"\u2026.","\\ddddot");n(a,B,"~","\\tilde");n(a,B,"\u203E","\\bar");n(a,B,"\u02D8","\\breve");n(a,B,"\u02C7","\\check");n(a,B,"^","\\hat");n(a,B,"\u2192","\\vec");n(a,B,"\u02D9","\\dot");n(a,B,"\u02DA","\\mathring");n(a,v,"\u0131","\\imath",!0);n(a,v,"\u0237","\\jmath",!0);n(a,m,"\u0131","\u0131");n(a,m,"\u0237","\u0237");n(g,m,"\u0131","\\i",!0);n(g,m,"\u0237","\\j",!0);n(g,m,"\xDF","\\ss",!0);n(g,m,"\xE6","\\ae",!0);n(g,m,"\u0153","\\oe",!0);n(g,m,"\xF8","\\o",!0);n(a,v,"\xF8","\\o",!0);n(g,m,"\xC6","\\AE",!0);n(g,m,"\u0152","\\OE",!0);n(g,m,"\xD8","\\O",!0);n(a,v,"\xD8","\\O",!0);n(g,B,"\u02CA","\\'");n(g,B,"\u02CB","\\`");n(g,B,"\u02C6","\\^");n(g,B,"\u02DC","\\~");n(g,B,"\u02C9","\\=");n(g,B,"\u02D8","\\u");n(g,B,"\u02D9","\\.");n(g,B,"\xB8","\\c");n(g,B,"\u02DA","\\r");n(g,B,"\u02C7","\\v");n(g,B,"\xA8",'\\"');n(g,B,"\u02DD","\\H");n(a,B,"\u02CA","\\'");n(a,B,"\u02CB","\\`");n(a,B,"\u02C6","\\^");n(a,B,"\u02DC","\\~");n(a,B,"\u02C9","\\=");n(a,B,"\u02D8","\\u");n(a,B,"\u02D9","\\.");n(a,B,"\xB8","\\c");n(a,B,"\u02DA","\\r");n(a,B,"\u02C7","\\v");n(a,B,"\xA8",'\\"');n(a,B,"\u02DD","\\H");var Ir={"--":!0,"---":!0,"``":!0,"''":!0};n(g,m,"\u2013","--",!0);n(g,m,"\u2013","\\textendash");n(g,m,"\u2014","---",!0);n(g,m,"\u2014","\\textemdash");n(g,m,"\u2018","`",!0);n(g,m,"\u2018","\\textquoteleft");n(g,m,"\u2019","'",!0);n(g,m,"\u2019","\\textquoteright");n(g,m,"\u201C","``",!0);n(g,m,"\u201C","\\textquotedblleft");n(g,m,"\u201D","''",!0);n(g,m,"\u201D","\\textquotedblright");n(a,m,"\xB0","\\degree",!0);n(g,m,"\xB0","\\degree");n(g,m,"\xB0","\\textdegree",!0);n(a,m,"\xA3","\\pounds");n(a,m,"\xA3","\\mathsterling",!0);n(g,m,"\xA3","\\pounds");n(g,m,"\xA3","\\textsterling",!0);n(a,m,"\u2720","\\maltese");n(g,m,"\u2720","\\maltese");n(a,m,"\u20AC","\\euro",!0);n(g,m,"\u20AC","\\euro",!0);n(g,m,"\u20AC","\\texteuro");n(a,m,"\xA9","\\copyright",!0);n(g,m,"\xA9","\\textcopyright");n(a,m,"\u2300","\\diameter",!0);n(g,m,"\u2300","\\diameter");n(a,m,"\u{1D6E4}","\\varGamma");n(a,m,"\u{1D6E5}","\\varDelta");n(a,m,"\u{1D6E9}","\\varTheta");n(a,m,"\u{1D6EC}","\\varLambda");n(a,m,"\u{1D6EF}","\\varXi");n(a,m,"\u{1D6F1}","\\varPi");n(a,m,"\u{1D6F4}","\\varSigma");n(a,m,"\u{1D6F6}","\\varUpsilon");n(a,m,"\u{1D6F7}","\\varPhi");n(a,m,"\u{1D6F9}","\\varPsi");n(a,m,"\u{1D6FA}","\\varOmega");n(g,m,"\u{1D6E4}","\\varGamma");n(g,m,"\u{1D6E5}","\\varDelta");n(g,m,"\u{1D6E9}","\\varTheta");n(g,m,"\u{1D6EC}","\\varLambda");n(g,m,"\u{1D6EF}","\\varXi");n(g,m,"\u{1D6F1}","\\varPi");n(g,m,"\u{1D6F4}","\\varSigma");n(g,m,"\u{1D6F6}","\\varUpsilon");n(g,m,"\u{1D6F7}","\\varPhi");n(g,m,"\u{1D6F9}","\\varPsi");n(g,m,"\u{1D6FA}","\\varOmega");var ut='0123456789/@."';for(let e=0;e<ut.length;e++){let t=ut.charAt(e);n(a,m,t,t)}var ct='0123456789!@*()-=+";:?/.,';for(let e=0;e<ct.length;e++){let t=ct.charAt(e);n(g,m,t,t)}var Be="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";for(let e=0;e<Be.length;e++){let t=Be.charAt(e);n(a,v,t,t),n(g,m,t,t)}var dt="\xC7\xD0\xDE\xE7\xFE\u2102\u210D\u2115\u2119\u211A\u211D\u2124\u210E\u210F\u210A\u210B\u210C\u2110\u2111\u2112\u2113\u2118\u211B\u211C\u212C\u2130\u2131\u2133\u212D\u2128";for(let e=0;e<dt.length;e++){let t=dt.charAt(e);n(a,v,t,t),n(g,m,t,t)}var _="";for(let e=0;e<Be.length;e++){_=String.fromCharCode(55349,56320+e),n(a,v,_,_),n(g,m,_,_),_=String.fromCharCode(55349,56372+e),n(a,v,_,_),n(g,m,_,_),_=String.fromCharCode(55349,56424+e),n(a,v,_,_),n(g,m,_,_),_=String.fromCharCode(55349,56580+e),n(a,v,_,_),n(g,m,_,_),_=String.fromCharCode(55349,56736+e),n(a,v,_,_),n(g,m,_,_),_=String.fromCharCode(55349,56788+e),n(a,v,_,_),n(g,m,_,_),_=String.fromCharCode(55349,56840+e),n(a,v,_,_),n(g,m,_,_),_=String.fromCharCode(55349,56944+e),n(a,v,_,_),n(g,m,_,_),_=String.fromCharCode(55349,56632+e),n(a,v,_,_),n(g,m,_,_);let t=Be.charAt(e);_=String.fromCharCode(55349,56476+e),n(a,v,t,_),n(g,m,t,_)}for(let e=0;e<10;e++)_=String.fromCharCode(55349,57294+e),n(a,v,_,_),n(g,m,_,_),_=String.fromCharCode(55349,57314+e),n(a,v,_,_),n(g,m,_,_),_=String.fromCharCode(55349,57324+e),n(a,v,_,_),n(g,m,_,_),_=String.fromCharCode(55349,57334+e),n(a,v,_,_),n(g,m,_,_);var Pr="([{\u230A\u2308\u27E8\u27EE\u23B0\u27E6\u2983",Gr=")]}\u230B\u2309\u27E9\u27EF\u23B1\u27E6\u2984";function Rr(e,t,r){let o=[],s=[],i=[],l=0,u=0,h=0;for(;u<e.length;){for(;e[u]instanceof ge;)e.splice(u,1,...e[u].children);let x=e[u];if(x.attributes&&x.attributes.linebreak&&x.attributes.linebreak==="newline"){i.length>0&&s.push(new p.MathNode("mrow",i)),s.push(x),i=[];let A=new p.MathNode("mtd",s);A.style.textAlign="left",o.push(new p.MathNode("mtr",[A])),s=[],u+=1;continue}if(i.push(x),x.type&&x.type==="mo"&&x.children.length===1&&!Object.hasOwn(x.attributes,"movablelimits")){let A=x.children[0].text;if(Pr.indexOf(A)>-1)h+=1;else if(Gr.indexOf(A)>-1)h-=1;else if(h===0&&t==="="&&A==="="){if(l+=1,l>1){i.pop();let q=new p.MathNode("mrow",i);s.push(q),i=[x]}}else if(h===0&&t==="tex"&&A!=="\u2207"){let q=u<e.length-1?e[u+1]:null,b=!0;if(!(q&&q.type==="mtext"&&q.attributes.linebreak&&q.attributes.linebreak==="nobreak"))for(let k=u+1;k<e.length;k++){let T=e[k];if(T.type&&T.type==="mspace"&&!(T.attributes.linebreak&&T.attributes.linebreak==="newline"))i.push(T),u+=1,T.attributes&&T.attributes.linebreak&&T.attributes.linebreak==="nobreak"&&(b=!1);else break}if(b){let k=new p.MathNode("mrow",i);s.push(k),i=[]}}}u+=1}if(i.length>0){let x=new p.MathNode("mrow",i);s.push(x)}if(o.length>0){let x=new p.MathNode("mtd",s);x.style.textAlign="left";let A=new p.MathNode("mtr",[x]);o.push(A);let q=new p.MathNode("mtable",o);return r||(q.setAttribute("columnalign","left"),q.setAttribute("rowspacing","0em")),q}return p.newDocumentFragment(s)}var W=function(e,t,r){return I[t][e]&&I[t][e].replace&&e.charCodeAt(0)!==55349&&!(Object.prototype.hasOwnProperty.call(Ir,e)&&r&&(r.fontFamily&&r.fontFamily.slice(4,6)==="tt"||r.font&&r.font.slice(4,6)==="tt"))&&(e=I[t][e].replace),new p.TextNode(e)},mt=(e,t)=>{if(e.children.length===0||e.children[e.children.length-1].type!=="mtext"){let r=new p.MathNode("mtext",[new p.TextNode(t.children[0].text)]);e.children.push(r)}else e.children[e.children.length-1].children[0].text+=t.children[0].text},Ee=e=>{if(e.type!=="mrow"&&e.type!=="mstyle"||e.children.length===0)return e;let t=new p.MathNode("mrow");for(let r=0;r<e.children.length;r++){let o=e.children[r];if(o.type==="mtext"&&Object.keys(o.attributes).length===0)mt(t,o);else if(o.type==="mrow"){let s=!0;for(let i=0;i<o.children.length;i++)if(o.children[i].type!=="mtext"||Object.keys(o.attributes).length!==0){s=!1;break}if(s)for(let i=0;i<o.children.length;i++){let l=o.children[i];mt(t,l)}else t.children.push(o)}else t.children.push(o)}for(let r=0;r<t.children.length;r++)if(t.children[r].type==="mtext"){let o=t.children[r];o.children[0].text.charAt(0)===" "&&(o.children[0].text="\xA0"+o.children[0].text.slice(1));let s=o.children[0].text.length;s>0&&o.children[0].text.charAt(s-1)===" "&&(o.children[0].text=o.children[0].text.slice(0,-1)+"\xA0");for(let[i,l]of Object.entries(e.attributes))o.attributes[i]=l}return t.children.length===1&&t.children[0].type==="mtext"?t.children[0]:t},Qe=function(e,t=!1){if(e.length===1&&!(e[0]instanceof ge))return e[0];if(!t){e[0]instanceof R&&e[0].type==="mo"&&!e[0].attributes.fence&&(e[0].attributes.lspace="0em",e[0].attributes.rspace="0em");let r=e.length-1;e[r]instanceof R&&e[r].type==="mo"&&!e[r].attributes.fence&&(e[r].attributes.lspace="0em",e[r].attributes.rspace="0em")}return new p.MathNode("mrow",e)};function Fe(e){if(!e)return!1;if(e.type==="mi"&&e.children.length===1){let t=e.children[0];return t instanceof ae&&t.text==="."}else if(e.type==="mtext"&&e.children.length===1){let t=e.children[0];return t instanceof ae&&t.text==="\u2008"}else if(e.type==="mo"&&e.children.length===1&&e.getAttribute("separator")==="true"&&e.getAttribute("lspace")==="0em"&&e.getAttribute("rspace")==="0em"){let t=e.children[0];return t instanceof ae&&t.text===","}else return!1}var jr=(e,t)=>{let r=e[t],o=e[t+1];return r.type==="atom"&&r.text===","&&r.loc&&o.loc&&r.loc.end===o.loc.start},Se=e=>e.type==="atom"&&e.family==="rel"||e.type==="mclass"&&e.mclass==="mrel",U=function(e,t,r=!1){if(!r&&e.length===1){let l=O(e[0],t);return l instanceof R&&l.type==="mo"&&(l.setAttribute("lspace","0em"),l.setAttribute("rspace","0em")),[l]}let o=[],s=[],i;for(let l=0;l<e.length;l++)s.push(O(e[l],t));for(let l=0;l<s.length;l++){let u=s[l];if(l<e.length-1&&Se(e[l])&&Se(e[l+1])&&u.setAttribute("rspace","0em"),l>0&&Se(e[l])&&Se(e[l-1])&&u.setAttribute("lspace","0em"),u.type==="mn"&&i&&i.type==="mn"){i.children.push(...u.children);continue}else if(Fe(u)&&i&&i.type==="mn"){i.children.push(...u.children);continue}else if(i&&i.type==="mn"&&l<s.length-1&&s[l+1].type==="mn"&&jr(e,l)){i.children.push(...u.children);continue}else if(u.type==="mn"&&Fe(i))u.children=[...i.children,...u.children],o.pop();else if((u.type==="msup"||u.type==="msub")&&u.children.length>=1&&i&&(i.type==="mn"||Fe(i))){let h=u.children[0];h instanceof R&&h.type==="mn"&&i&&(h.children=[...i.children,...h.children],o.pop())}o.push(u),i=u}return o},te=function(e,t,r=!1){return Qe(U(e,t,r),r)},O=function(e,t){if(!e)return new p.MathNode("mrow");if(Ce[e.type])return Ce[e.type](e,t);throw new w("Got group of unknown type: '"+e.type+"'")},ht=e=>new p.MathNode("mtd",[],[],{padding:"0",width:"50%"}),Ur=["mrow","mtd","mtable","mtr"],je=e=>{for(let t of e.children)if(t.type&&Ur.includes(t.type)){if(t.classes&&t.classes[0]==="tml-label")return t.label;{let r=je(t);if(r)return r}}else if(!t.type){let r=je(t);if(r)return r}},Vr=(e,t,r,o)=>{t=te(t[0].body,r),t=Ee(t),t.classes.push("tml-tag");let s=je(e);e=new p.MathNode("mtd",[e]);let i=[ht(),e,ht()];i[o?0:2].classes.push(o?"tml-left":"tml-right"),i[o?0:2].children.push(t);let l=new p.MathNode("mtr",i,["tml-tageqn"]);s&&l.setAttribute("id",s);let u=new p.MathNode("mtable",[l]);return u.style.width="100%",u.setAttribute("displaystyle","true"),u};function Wr(e,t,r,o){let s=null;e.length===1&&e[0].type==="tag"&&(s=e[0].tag,e=e[0].body);let i=U(e,r);if(i.length===1&&i[0]instanceof be)return i[0];let l=o.displayMode||o.annotate?"none":o.wrap,u=i.length===0?null:i[0],h=i.length===1&&s===null&&u instanceof R?i[0]:Rr(i,l,o.displayMode);if(s&&(h=Vr(h,s,r,o.leqno)),o.annotate){let A=new p.MathNode("annotation",[new p.TextNode(t)]);A.setAttribute("encoding","application/x-tex"),h=new p.MathNode("semantics",[h,A])}let x=new p.MathNode("math",[h]);return o.xml&&x.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),h.style.width&&(x.style.width="100%"),o.displayMode&&(x.setAttribute("display","block"),x.style.display="block math",x.classes=["tml-display"]),x}var Wt="aceg\u0131\u0237mnopqrsuvwxyz\u03B1\u03B3\u03B5\u03B7\u03B9\u03BA\u03BC\u03BD\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C7\u03C9\u03D5\u{1D41A}\u{1D41C}\u{1D41E}\u{1D420}\u{1D426}\u{1D427}\u{1D428}\u{1D429}\u{1D42A}\u{1D42B}\u{1D42C}\u{1D42E}\u{1D42F}\u{1D430}\u{1D431}\u{1D432}\u{1D433}",Hr="ABCDEFGHIJKLMNOPQRSTUVWXYZbdfhklt\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B2\u03B4\u03BB\u03B6\u03C6\u03B8\u03C8\u{1D400}\u{1D401}\u{1D402}\u{1D403}\u{1D404}\u{1D405}\u{1D406}\u{1D407}\u{1D408}\u{1D409}\u{1D40A}\u{1D40B}\u{1D40C}\u{1D40D}\u{1D40E}\u{1D40F}\u{1D410}\u{1D411}\u{1D412}\u{1D413}\u{1D414}\u{1D415}\u{1D416}\u{1D417}\u{1D418}\u{1D419}\u{1D41B}\u{1D41D}\u{1D41F}\u{1D421}\u{1D424}\u{1D425}\u{1D42D}",Zr=new Set(["\\alpha","\\gamma","\\delta","\\epsilon","\\eta","\\iota","\\kappa","\\mu","\\nu","\\pi","\\rho","\\sigma","\\tau","\\upsilon","\\chi","\\psi","\\omega","\\imath","\\jmath"]),Xr=new Set(["\\Gamma","\\Delta","\\Sigma","\\Omega","\\beta","\\delta","\\lambda","\\theta","\\psi"]),Ht=(e,t)=>{let r=e.isStretchy?Me.accentNode(e):new p.MathNode("mo",[W(e.label,e.mode)]);if(e.label==="\\vec")r.style.transform="scale(0.75) translate(10%, 30%)";else if(r.style.mathStyle="normal",r.style.mathDepth="0",Kr.has(e.label)&&N.isCharacterBox(e.base)){let s="",i=e.base.text;(Wt.indexOf(i)>-1||Zr.has(i))&&(s="tml-xshift"),(Hr.indexOf(i)>-1||Xr.has(i))&&(s="tml-capshift"),s&&r.classes.push(s)}return e.isStretchy||r.setAttribute("stretchy","false"),new p.MathNode(e.label==="\\c"?"munder":"mover",[O(e.base,t),r])},Yr=new Set(["\\acute","\\grave","\\ddot","\\dddot","\\ddddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"]),Kr=new Set(["\\acute","\\bar","\\breve","\\check","\\dot","\\ddot","\\grave","\\hat","\\mathring","\\'","\\^","\\~","\\=","\\u","\\.",'\\"',"\\r","\\H","\\v"]),pt={"\\`":"\u0300","\\'":"\u0301","\\^":"\u0302","\\~":"\u0303","\\=":"\u0304","\\u":"\u0306","\\.":"\u0307",'\\"':"\u0308","\\r":"\u030A","\\H":"\u030B","\\v":"\u030C"};S({type:"accent",names:["\\acute","\\grave","\\ddot","\\dddot","\\ddddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\overparen","\\widecheck","\\widehat","\\wideparen","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(e,t)=>{let r=fe(t[0]),o=!Yr.has(e.funcName);return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:o,base:r}},mathmlBuilder:Ht});S({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\c","\\u","\\.",'\\"',"\\r","\\H","\\v"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(e,t)=>{let r=fe(t[0]),o=e.parser.mode;return o==="math"&&e.parser.settings.strict&&console.log(`Temml parse error: Command ${e.funcName} is invalid in math mode.`),o==="text"&&r.text&&r.text.length===1&&e.funcName in pt&&Wt.indexOf(r.text)>-1?{type:"textord",mode:"text",text:r.text+pt[e.funcName]}:{type:"accent",mode:o,label:e.funcName,isStretchy:!1,base:r}},mathmlBuilder:Ht});S({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underparen","\\utilde"],props:{numArgs:1},handler:({parser:e,funcName:t},r)=>{let o=r[0];return{type:"accentUnder",mode:e.mode,label:t,base:o}},mathmlBuilder:(e,t)=>{let r=Me.accentNode(e);return r.style["math-depth"]=0,new p.MathNode("munder",[O(e.base,t),r])}});var ft={pt:800/803,pc:12*800/803,dd:1238/1157*800/803,cc:14856/1157*800/803,nd:685/642*800/803,nc:1370/107*800/803,sp:1/65536*800/803,mm:25.4/72,cm:2.54/72,in:1/72,px:96/72},Jr=["em","ex","mu","pt","mm","cm","in","px","bp","pc","dd","cc","nd","nc","sp"],Zt=function(e){return typeof e!="string"&&(e=e.unit),Jr.indexOf(e)>-1},Xt=e=>{let t=Math.max(e-1,0);return[1,.7,.5][t]},K=function(e,t){let r=e.number;if(t.maxSize[0]<0&&r>0)return{number:0,unit:"em"};let o=e.unit;switch(o){case"mm":case"cm":case"in":case"px":return r*ft[o]>t.maxSize[1]?{number:t.maxSize[1],unit:"pt"}:{number:r,unit:o};case"em":case"ex":return o==="ex"&&(r*=.431),r=Math.min(r/Xt(t.level),t.maxSize[0]),{number:N.round(r),unit:"em"};case"bp":return r>t.maxSize[1]&&(r=t.maxSize[1]),{number:r,unit:"pt"};case"pt":case"pc":case"dd":case"cc":case"nd":case"nc":case"sp":return r=Math.min(r*ft[o],t.maxSize[1]),{number:N.round(r),unit:"pt"};case"mu":return r=Math.min(r/18,t.maxSize[0]),{number:N.round(r),unit:"em"};default:throw new w("Invalid unit: '"+o+"'")}},Q=e=>{let t=new p.MathNode("mspace");return t.setAttribute("width",e+"em"),t},qe=(e,t=.3,r=0,o=!1)=>{if(e==null&&r===0)return Q(t);let s=e?[e]:[];if(t!==0&&s.unshift(Q(t)),r>0&&s.push(Q(r)),o){let i=new p.MathNode("mpadded",s);return i.setAttribute("height","0"),i}else return new p.MathNode("mrow",s)},Ie=(e,t)=>Number(e)/Xt(t),Ue=(e,t,r,o)=>{let s=Me.mathMLnode(e),i=e.slice(1,3)==="eq",l=e.charAt(1)==="x"?"1.75":e.slice(2,4)==="cd"?"3.0":i?"1.0":"2.0";s.setAttribute("lspace","0"),s.setAttribute("rspace",i?"0.5em":"0");let u=o.withLevel(o.level<2?2:3),h=Ie(l,u.level),x=Ie(l,3),A=qe(null,h.toFixed(4),0),q=qe(null,x.toFixed(4),0),b=Ie(i?0:.3,u.level).toFixed(4),k,T,$=t&&t.body&&(t.body.body||t.body.length>0);if($){let E=O(t,u);E=qe(E,b,b,e==="\\\\cdrightarrow"||e==="\\\\cdleftarrow"),k=new p.MathNode("mover",[E,q])}let j=r&&r.body&&(r.body.body||r.body.length>0);if(j){let E=O(r,u);E=qe(E,b,b),T=new p.MathNode("munder",[E,q])}let G;return!$&&!j?G=new p.MathNode("mover",[s,A]):$&&j?G=new p.MathNode("munderover",[s,T,k]):$?G=new p.MathNode("mover",[s,k]):G=new p.MathNode("munder",[s,T]),l==="3.0"&&(G.style.height="1em"),G.setAttribute("accent","false"),G};S({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\yields","\\yieldsLeft","\\mesomerism","\\longrightharpoonup","\\longleftharpoondown","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler({parser:e,funcName:t},r,o){return{type:"xArrow",mode:e.mode,name:t,body:r[0],below:o[0]}},mathmlBuilder(e,t){let o=[Ue(e.name,e.body,e.below,t)];return o.unshift(Q(.2778)),o.push(Q(.2778)),new p.MathNode("mrow",o)}});var gt={"\\xtofrom":["\\xrightarrow","\\xleftarrow"],"\\xleftrightharpoons":["\\xleftharpoonup","\\xrightharpoondown"],"\\xrightleftharpoons":["\\xrightharpoonup","\\xleftharpoondown"],"\\yieldsLeftRight":["\\yields","\\yieldsLeft"],"\\equilibrium":["\\longrightharpoonup","\\longleftharpoondown"],"\\equilibriumRight":["\\longrightharpoonup","\\eqleftharpoondown"],"\\equilibriumLeft":["\\eqrightharpoonup","\\longleftharpoondown"]};S({type:"stackedArrow",names:["\\xtofrom","\\xleftrightharpoons","\\xrightleftharpoons","\\yieldsLeftRight","\\equilibrium","\\equilibriumRight","\\equilibriumLeft"],props:{numArgs:1,numOptionalArgs:1},handler({parser:e,funcName:t},r,o){let s=r[0]?{type:"hphantom",mode:e.mode,body:r[0]}:null,i=o[0]?{type:"hphantom",mode:e.mode,body:o[0]}:null;return{type:"stackedArrow",mode:e.mode,name:t,body:r[0],upperArrowBelow:i,lowerArrowBody:s,below:o[0]}},mathmlBuilder(e,t){let r=gt[e.name][0],o=gt[e.name][1],s=Ue(r,e.body,e.upperArrowBelow,t),i=Ue(o,e.lowerArrowBody,e.below,t),l,u=new p.MathNode("mpadded",[s]);if(u.setAttribute("voffset","0.3em"),u.setAttribute("height","+0.3em"),u.setAttribute("depth","-0.3em"),e.name==="\\equilibriumLeft"){let h=new p.MathNode("mpadded",[i]);h.setAttribute("width","0.5em"),l=new p.MathNode("mpadded",[Q(.2778),h,u,Q(.2778)])}else u.setAttribute("width",e.name==="\\equilibriumRight"?"0.5em":"0"),l=new p.MathNode("mpadded",[Q(.2778),u,i,Q(.2778)]);return l.setAttribute("voffset","-0.18em"),l.setAttribute("height","-0.18em"),l.setAttribute("depth","+0.18em"),l}});function C(e,t){if(!e||e.type!==t)throw new Error(`Expected node of type ${t}, but got `+(e?`node of type ${e.type}`:String(e)));return e}function et(e){let t=ze(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?`node of type ${e.type}`:String(e)));return t}function ze(e){return e&&(e.type==="atom"||Object.prototype.hasOwnProperty.call(Fr,e.type))?e:null}var Qr={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},bt=()=>({type:"styling",body:[],mode:"math",scriptLevel:"display"}),xt=e=>e.type==="textord"&&e.text==="@",en=(e,t)=>(e.type==="mathord"||e.type==="atom")&&e.text===t;function tn(e,t,r){let o=Qr[e];switch(o){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(o,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":{let s=r.callFunction("\\\\cdleft",[t[0]],[]),i={type:"atom",text:o,mode:"math",family:"rel"},l=r.callFunction("\\Big",[i],[]),u=r.callFunction("\\\\cdright",[t[1]],[]),h={type:"ordgroup",mode:"math",body:[s,l,u],semisimple:!0};return r.callFunction("\\\\cdparent",[h],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{let s={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[s],[])}default:return{type:"textord",text:" ",mode:"math"}}}function rn(e){let t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();let s=e.fetch().text;if(s==="&"||s==="\\\\")e.consume();else if(s==="\\end"){t[t.length-1].length===0&&t.pop();break}else throw new w("Expected \\\\ or \\cr or \\end",e.nextToken)}let r=[],o=[r];for(let s=0;s<t.length;s++){let i=t[s],l=bt();for(let u=0;u<i.length;u++)if(!xt(i[u]))l.body.push(i[u]);else{r.push(l),u+=1;let h=et(i[u]).text,x=new Array(2);if(x[0]={type:"ordgroup",mode:"math",body:[]},x[1]={type:"ordgroup",mode:"math",body:[]},!("=|.".indexOf(h)>-1))if("<>AV".indexOf(h)>-1)for(let q=0;q<2;q++){let b=!0;for(let k=u+1;k<i.length;k++){if(en(i[k],h)){b=!1,u=k;break}if(xt(i[k]))throw new w("Missing a "+h+" character to complete a CD arrow.",i[k]);x[q].body.push(i[k])}if(b)throw new w("Missing a "+h+" character to complete a CD arrow.",i[u])}else throw new w('Expected one of "<>AV=|." after @.');let A=tn(h,x,e);r.push(A),l=bt()}s%2===0?r.push(l):r.shift(),r=[],o.push(r)}return o.pop(),e.gullet.endGroup(),e.gullet.endGroup(),{type:"array",mode:"math",body:o,tags:null,labels:new Array(o.length+1).fill(""),envClasses:["jot","cd"],cols:[],hLinesBeforeRow:new Array(o.length+1).fill([])}}S({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler({parser:e,funcName:t},r){return{type:"cdlabel",mode:e.mode,side:t.slice(4),label:r[0]}},mathmlBuilder(e,t){if(e.label.body.length===0)return new p.MathNode("mrow",t);let r=new p.MathNode("mtd",[O(e.label,t)]);r.style.padding="0";let o=new p.MathNode("mtr",[r]),s=new p.MathNode("mtable",[o]),i=new p.MathNode("mpadded",[s]);return i.setAttribute("width","0"),i.setAttribute("displaystyle","false"),i.setAttribute("scriptlevel","1"),e.side==="left"&&(i.style.display="flex",i.style.justifyContent="flex-end"),i}});S({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler({parser:e},t){return{type:"cdlabelparent",mode:e.mode,fragment:t[0]}},mathmlBuilder(e,t){return new p.MathNode("mrow",[O(e.fragment,t)])}});S({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler({parser:e,token:t},r){let s=C(r[0],"ordgroup").body,i="";for(let u=0;u<s.length;u++){let h=C(s[u],"textord");i+=h.text}let l=parseInt(i);if(isNaN(l))throw new w(`\\@char has non-numeric argument ${i}`,t);return{type:"textord",mode:e.mode,text:String.fromCodePoint(l)}}});var nn=/^(#[a-f0-9]{3}|#?[a-f0-9]{6})$/i,on=/^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i,an=/^ *\d{1,3} *(?:, *\d{1,3} *){2}$/,sn=/^ *[10](?:\.\d*)? *(?:, *[10](?:\.\d*)? *){2}$/,ln=/^[a-f0-9]{6}$/i,yt=e=>{let t=e.toString(16);return t.length===1&&(t="0"+t),t},wt=JSON.parse(`{ "Apricot": "#ffb484", "Aquamarine": "#08b4bc", "Bittersweet": "#c84c14", "blue": "#0000FF", "Blue": "#303494", "BlueGreen": "#08b4bc", "BlueViolet": "#503c94", "BrickRed": "#b8341c", "brown": "#BF8040", "Brown": "#802404", "BurntOrange": "#f8941c", "CadetBlue": "#78749c", "CarnationPink": "#f884b4", "Cerulean": "#08a4e4", "CornflowerBlue": "#40ace4", "cyan": "#00FFFF", "Cyan": "#08acec", "Dandelion": "#ffbc44", "darkgray": "#404040", "DarkOrchid": "#a8548c", "Emerald": "#08ac9c", "ForestGreen": "#089c54", "Fuchsia": "#90348c", "Goldenrod": "#ffdc44", "gray": "#808080", "Gray": "#98949c", "green": "#00FF00", "Green": "#08a44c", "GreenYellow": "#e0e474", "JungleGreen": "#08ac9c", "Lavender": "#f89cc4", "lightgray": "#c0c0c0", "lime": "#BFFF00", "LimeGreen": "#90c43c", "magenta": "#FF00FF", "Magenta": "#f0048c", "Mahogany": "#b0341c", "Maroon": "#b03434", "Melon": "#f89c7c", "MidnightBlue": "#086494", "Mulberry": "#b03c94", "NavyBlue": "#086cbc", "olive": "#7F7F00", "OliveGreen": "#407c34", "orange": "#FF8000", "Orange": "#f8843c", "OrangeRed": "#f0145c", "Orchid": "#b074ac", "Peach": "#f8945c", "Periwinkle": "#8074bc", "PineGreen": "#088c74", "pink": "#ff7f7f", "Plum": "#98248c", "ProcessBlue": "#08b4ec", "purple": "#BF0040", "Purple": "#a0449c", "RawSienna": "#983c04", "red": "#ff0000", "Red": "#f01c24", "RedOrange": "#f86434", "RedViolet": "#a0246c", "Rhodamine": "#f0549c", "Royallue": "#0874bc", "RoyalPurple": "#683c9c", "RubineRed": "#f0047c", "Salmon": "#f8948c", "SeaGreen": "#30bc9c", "Sepia": "#701404", "SkyBlue": "#48c4dc", "SpringGreen": "#c8dc64", "Tan": "#e09c74", "teal": "#007F7F", "TealBlue": "#08acb4", "Thistle": "#d884b4", "Turquoise": "#08b4cc", "violet": "#800080", "Violet": "#60449c", "VioletRed": "#f054a4", "WildStrawberry": "#f0246c", "yellow": "#FFFF00", "Yellow": "#fff404", "YellowGreen": "#98cc6c", "YellowOrange": "#ffa41c" }`),ce=(e,t)=>{let r="";if(e==="HTML"){if(!nn.test(t))throw new w("Invalid HTML input.");r=t}else if(e==="RGB"){if(!an.test(t))throw new w("Invalid RGB input.");t.split(",").map(o=>{r+=yt(Number(o.trim()))})}else{if(!sn.test(t))throw new w("Invalid rbg input.");t.split(",").map(o=>{let s=Number(o.trim());if(s>1)throw new w("Color rgb input must be < 1.");r+=yt(Number((s*255).toFixed(0)))})}return r.charAt(0)!=="#"&&(r="#"+r),r},xe=(e,t,r)=>{let o=`\\\\color@${e}`;if(!on.exec(e))throw new w("Invalid color: '"+e+"'",r);return ln.test(e)?"#"+e:(e.charAt(0)==="#"||(t.has(o)?e=t.get(o).tokens[0].text:wt[e]&&(e=wt[e])),e)},Yt=(e,t)=>{let r=U(e.body,t.withColor(e.color));return r=r.map(o=>(o.style.color=e.color,o)),p.newDocumentFragment(r)};S({type:"color",names:["\\textcolor"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,argTypes:["raw","raw","original"]},handler({parser:e,token:t},r,o){let s=o[0]&&C(o[0],"raw").string,i="";if(s){let u=C(r[0],"raw").string;i=ce(s,u)}else i=xe(C(r[0],"raw").string,e.gullet.macros,t);let l=r[1];return{type:"color",mode:e.mode,color:i,isTextColor:!0,body:z(l)}},mathmlBuilder:Yt});S({type:"color",names:["\\color"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0,argTypes:["raw","raw"]},handler({parser:e,breakOnTokenText:t,token:r},o,s){let i=s[0]&&C(s[0],"raw").string,l="";if(i){let h=C(o[0],"raw").string;l=ce(i,h)}else l=xe(C(o[0],"raw").string,e.gullet.macros,r);let u=e.parseExpression(!0,t,!0);return{type:"color",mode:e.mode,color:l,isTextColor:!1,body:u}},mathmlBuilder:Yt});S({type:"color",names:["\\definecolor"],props:{numArgs:3,allowedInText:!0,argTypes:["raw","raw","raw"]},handler({parser:e,funcName:t,token:r},o){let s=C(o[0],"raw").string;if(!/^[A-Za-z]+$/.test(s))throw new w("Color name must be latin letters.",r);let i=C(o[1],"raw").string;if(!["HTML","RGB","rgb"].includes(i))throw new w("Color model must be HTML, RGB, or rgb.",r);let l=C(o[2],"raw").string,u=ce(i,l);return e.gullet.macros.set(`\\\\color@${s}`,{tokens:[{text:u}],numArgs:0}),{type:"internal",mode:e.mode}}});S({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler({parser:e},t,r){let o=e.gullet.future().text==="["?e.parseSizeGroup(!0):null,s=!e.settings.displayMode;return{type:"cr",mode:e.mode,newLine:s,size:o&&C(o,"size").value}},mathmlBuilder(e,t){let r=new p.MathNode("mo");if(e.newLine&&(r.setAttribute("linebreak","newline"),e.size)){let o=K(e.size,t);r.setAttribute("height",o.number+o.unit)}return r}});var Ve={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},Ne=e=>{let t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new w("Expected a control sequence",e);return t},un=e=>{let t=e.gullet.popToken();return t.text==="="&&(t=e.gullet.popToken(),t.text===" "&&(t=e.gullet.popToken())),t},Kt=(e,t,r,o)=>{let s=e.gullet.macros.get(r.text);s==null&&(r.noexpand=!0,s={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,s,o)};S({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler({parser:e,funcName:t}){e.consumeSpaces();let r=e.fetch();if(Ve[r.text])return(t==="\\global"||t==="\\\\globallong")&&(r.text=Ve[r.text]),C(e.parseFunction(),"internal");throw new w("Invalid token after macro prefix",r)}});S({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler({parser:e,funcName:t}){let r=e.gullet.popToken(),o=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(o))throw new w("Expected a control sequence",r);let s=0,i,l=[[]];for(;e.gullet.future().text!=="{";)if(r=e.gullet.popToken(),r.text==="#"){if(e.gullet.future().text==="{"){i=e.gullet.future(),l[s].push("{");break}if(r=e.gullet.popToken(),!/^[1-9]$/.test(r.text))throw new w(`Invalid argument number "${r.text}"`);if(parseInt(r.text)!==s+1)throw new w(`Argument number "${r.text}" out of order`);s++,l.push([])}else{if(r.text==="EOF")throw new w("Expected a macro definition");l[s].push(r.text)}let{tokens:u}=e.gullet.consumeArg();if(i&&u.unshift(i),t==="\\edef"||t==="\\xdef"){if(u=e.gullet.expandTokens(u),u.length>e.gullet.settings.maxExpand)throw new w("Too many expansions in an "+t);u.reverse()}return e.gullet.macros.set(o,{tokens:u,numArgs:s,delimiters:l},t===Ve[t]),{type:"internal",mode:e.mode}}});S({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler({parser:e,funcName:t}){let r=Ne(e.gullet.popToken());e.gullet.consumeSpaces();let o=un(e);return Kt(e,r,o,t==="\\\\globallet"),{type:"internal",mode:e.mode}}});S({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler({parser:e,funcName:t}){let r=Ne(e.gullet.popToken()),o=e.gullet.popToken(),s=e.gullet.popToken();return Kt(e,r,s,t==="\\\\globalfuture"),e.gullet.pushToken(s),e.gullet.pushToken(o),{type:"internal",mode:e.mode}}});S({type:"internal",names:["\\newcommand","\\renewcommand","\\providecommand"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler({parser:e,funcName:t}){let r="",o=e.gullet.popToken();o.text==="{"?(r=Ne(e.gullet.popToken()),e.gullet.popToken()):r=Ne(o);let s=e.gullet.isDefined(r);if(s&&t==="\\newcommand")throw new w(`\\newcommand{${r}} attempting to redefine ${r}; use \\renewcommand`);if(!s&&t==="\\renewcommand")throw new w(`\\renewcommand{${r}} when command ${r} does not yet exist; use \\newcommand`);let i=0;if(e.gullet.future().text==="["){let u=e.gullet.popToken();if(u=e.gullet.popToken(),!/^[0-9]$/.test(u.text))throw new w(`Invalid number of arguments: "${u.text}"`);if(i=parseInt(u.text),u=e.gullet.popToken(),u.text!=="]")throw new w(`Invalid argument "${u.text}"`)}let{tokens:l}=e.gullet.consumeArg();return t==="\\providecommand"&&e.gullet.macros.has(r)||e.gullet.macros.set(r,{tokens:l,numArgs:i}),{type:"internal",mode:e.mode}}});var We={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},Jt=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\u2987","\\llparenthesis","\u2988","\\rrparenthesis","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27E8","\\rangle","\u27E9","\\lAngle","\u27EA","\\rAngle","\u27EB","\\llangle","\u2989","\\rrangle","\u298A","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1","\\llbracket","\\rrbracket","\u27E6","\u27E6","\\lBrace","\\rBrace","\u2983","\u2984","/","\\backslash","|","\\vert","\\|","\\Vert","\u2016","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."],cn=["}","\\left","\\middle","\\right"],Le=e=>e.length>0&&(Jt.includes(e)||We[e]||cn.includes(e)),vt=[0,1.2,1.8,2.4,3];function ye(e,t){let r=ze(e);if(r&&Jt.includes(r.text))return["<","\\lt"].includes(r.text)&&(r.text="\u27E8"),[">","\\gt"].includes(r.text)&&(r.text="\u27E9"),r;throw r?new w(`Invalid delimiter '${r.text}' after '${t.funcName}'`,e):new w(`Invalid delimiter type '${e.type}'`,e)}var dn=["/","\\","\\backslash","\\vert","|"];S({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(e,t)=>{let r=ye(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:We[e.funcName].size,mclass:We[e.funcName].mclass,delim:r.text}},mathmlBuilder:e=>{let t=[];e.delim==="."&&(e.delim=""),t.push(W(e.delim,e.mode));let r=new p.MathNode("mo",t);return e.mclass==="mopen"||e.mclass==="mclose"?r.setAttribute("fence","true"):r.setAttribute("fence","false"),(dn.includes(e.delim)||e.delim.indexOf("arrow")>-1)&&r.setAttribute("stretchy","true"),r.setAttribute("symmetric","true"),r.setAttribute("minsize",vt[e.size]+"em"),r.setAttribute("maxsize",vt[e.size]+"em"),r}});function mn(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}S({type:"leftright-right",names:["\\right"],props:{numArgs:1,argTypes:["primitive"]},handler:(e,t)=>({type:"leftright-right",mode:e.parser.mode,delim:ye(t[0],e).text})});S({type:"leftright",names:["\\left"],props:{numArgs:1,argTypes:["primitive"]},handler:(e,t)=>{let r=ye(t[0],e),o=e.parser;++o.leftrightDepth;let s=o.parseExpression(!1,null,!0),i=o.fetch();for(;i.text==="\\middle";){o.consume();let u=o.fetch().text;if(!I.math[u])throw new w(`Invalid delimiter '${u}' after '\\middle'`);ye({type:"atom",mode:"math",text:u},{funcName:"\\middle"}),s.push({type:"middle",mode:"math",delim:u}),o.consume(),s=s.concat(o.parseExpression(!1,null,!0)),i=o.fetch()}--o.leftrightDepth,o.expect("\\right",!1);let l=C(o.parseFunction(),"leftright-right");return{type:"leftright",mode:o.mode,body:s,left:r.text,right:l.delim}},mathmlBuilder:(e,t)=>{mn(e);let r=U(e.body,t);e.left==="."&&(e.left="");let o=new p.MathNode("mo",[W(e.left,e.mode)]);o.setAttribute("fence","true"),o.setAttribute("form","prefix"),(e.left==="/"||e.left==="\\"||e.left.indexOf("arrow")>-1)&&o.setAttribute("stretchy","true"),r.unshift(o),e.right==="."&&(e.right="");let s=new p.MathNode("mo",[W(e.right,e.mode)]);if(s.setAttribute("fence","true"),s.setAttribute("form","postfix"),(e.right==="\u2216"||e.right.indexOf("arrow")>-1)&&s.setAttribute("stretchy","true"),e.body.length>0){let i=e.body[e.body.length-1];i.type==="color"&&!i.isTextColor&&s.setAttribute("mathcolor",i.color)}return r.push(s),Qe(r)}});S({type:"middle",names:["\\middle"],props:{numArgs:1,argTypes:["primitive"]},handler:(e,t)=>{let r=ye(t[0],e);if(!e.parser.leftrightDepth)throw new w("\\middle without preceding \\left",r);return{type:"middle",mode:e.parser.mode,delim:r.text}},mathmlBuilder:(e,t)=>{let r=W(e.delim,e.mode),o=new p.MathNode("mo",[r]);return o.setAttribute("fence","true"),e.delim.indexOf("arrow")>-1&&o.setAttribute("stretchy","true"),o.setAttribute("form","prefix"),o.setAttribute("lspace","0.05em"),o.setAttribute("rspace","0.05em"),o}});var kt=e=>{let t=new p.MathNode("mspace");return t.setAttribute("width","3pt"),t},ve=(e,t)=>{let r;switch(e.label.indexOf("colorbox")>-1||e.label==="\\boxed"?r=new p.MathNode("mrow",[kt(),O(e.body,t),kt()]):r=new p.MathNode("menclose",[O(e.body,t)]),e.label){case"\\overline":r.setAttribute("notation","top"),r.classes.push("tml-overline");break;case"\\underline":r.setAttribute("notation","bottom"),r.classes.push("tml-underline");break;case"\\cancel":r.setAttribute("notation","updiagonalstrike"),r.children.push(new p.MathNode("mrow",[],["tml-cancel","upstrike"]));break;case"\\bcancel":r.setAttribute("notation","downdiagonalstrike"),r.children.push(new p.MathNode("mrow",[],["tml-cancel","downstrike"]));break;case"\\sout":r.setAttribute("notation","horizontalstrike"),r.children.push(new p.MathNode("mrow",[],["tml-cancel","sout"]));break;case"\\xcancel":r.setAttribute("notation","updiagonalstrike downdiagonalstrike"),r.classes.push("tml-xcancel");break;case"\\longdiv":r.setAttribute("notation","longdiv"),r.classes.push("longdiv-top"),r.children.push(new p.MathNode("mrow",[],["longdiv-arc"]));break;case"\\phase":r.setAttribute("notation","phasorangle"),r.classes.push("phasor-bottom"),r.children.push(new p.MathNode("mrow",[],["phasor-angle"]));break;case"\\textcircled":r.setAttribute("notation","circle"),r.classes.push("circle-pad"),r.children.push(new p.MathNode("mrow",[],["textcircle"]));break;case"\\angl":r.setAttribute("notation","actuarial"),r.classes.push("actuarial");break;case"\\boxed":r.setAttribute("notation","box"),r.classes.push("tml-box"),r.setAttribute("scriptlevel","0"),r.setAttribute("displaystyle","true");break;case"\\fbox":r.setAttribute("notation","box"),r.classes.push("tml-fbox");break;case"\\fcolorbox":case"\\colorbox":{let o={padding:"3pt 0 3pt 0"};e.label==="\\fcolorbox"&&(o.border="0.0667em solid "+String(e.borderColor)),r.style=o;break}}return e.backgroundColor&&r.setAttribute("mathbackground",e.backgroundColor),r};S({type:"enclose",names:["\\colorbox"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,argTypes:["raw","raw","text"]},handler({parser:e,funcName:t},r,o){let s=o[0]&&C(o[0],"raw").string,i="";if(s){let u=C(r[0],"raw").string;i=ce(s,u)}else i=xe(C(r[0],"raw").string,e.gullet.macros);let l=r[1];return{type:"enclose",mode:e.mode,label:t,backgroundColor:i,body:l}},mathmlBuilder:ve});S({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,numOptionalArgs:1,allowedInText:!0,argTypes:["raw","raw","raw","text"]},handler({parser:e,funcName:t},r,o){let s=o[0]&&C(o[0],"raw").string,i="",l;if(s){let h=C(r[0],"raw").string,x=C(r[0],"raw").string;i=ce(s,h),l=ce(s,x)}else i=xe(C(r[0],"raw").string,e.gullet.macros),l=xe(C(r[1],"raw").string,e.gullet.macros);let u=r[2];return{type:"enclose",mode:e.mode,label:t,backgroundColor:l,borderColor:i,body:u}},mathmlBuilder:ve});S({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler({parser:e},t){return{type:"enclose",mode:e.mode,label:"\\fbox",body:t[0]}}});S({type:"enclose",names:["\\angl","\\cancel","\\bcancel","\\xcancel","\\sout","\\overline","\\boxed","\\longdiv","\\phase"],props:{numArgs:1},handler({parser:e,funcName:t},r){let o=r[0];return{type:"enclose",mode:e.mode,label:t,body:o}},mathmlBuilder:ve});S({type:"enclose",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler({parser:e,funcName:t},r){let o=r[0];return{type:"enclose",mode:e.mode,label:t,body:o}},mathmlBuilder:ve});S({type:"enclose",names:["\\textcircled"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler({parser:e,funcName:t},r){let o=r[0];return{type:"enclose",mode:e.mode,label:t,body:o}},mathmlBuilder:ve});var Qt={};function X({type:e,names:t,props:r,handler:o,mathmlBuilder:s}){let i={type:e,numArgs:r.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:o};for(let l=0;l<t.length;++l)Qt[t[l]]=i;s&&(Ce[e]=s)}var V=class e{constructor(t,r,o){this.lexer=t,this.start=r,this.end=o}static range(t,r){return r?!t||!t.loc||!r.loc||t.loc.lexer!==r.loc.lexer?null:new e(t.loc.lexer,t.loc.start,r.loc.end):t&&t.loc}},Z=class e{constructor(t,r){this.text=t,this.loc=r}range(t,r){return new e(r,V.range(this,t))}},F={DISPLAY:0,TEXT:1,SCRIPT:2,SCRIPTSCRIPT:3},er={};function c(e,t){er[e]=t}var hn=er;c("\\noexpand",function(e){let t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}});c("\\expandafter",function(e){let t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}});c("\\@firstoftwo",function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}});c("\\@secondoftwo",function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}});c("\\@ifnextchar",function(e){let t=e.consumeArgs(3);e.consumeSpaces();let r=e.future();return t[0].length===1&&t[0][0].text===r.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}});c("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");c("\\TextOrMath",function(e){let t=e.consumeArgs(2);return e.mode==="text"?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}});var He=e=>{let t="";for(let r=e.length-1;r>-1;r--)t+=e[r].text;return t},tt={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15},At=e=>{let t=e.future().text;return t==="EOF"?[null,""]:[tt[t.charAt(0)],t]},St=(e,t,r)=>{for(let o=1;o<t.length;o++){let s=tt[t.charAt(o)];e*=r,e+=s}return e};c("\\char",function(e){let t=e.popToken(),r,o="";if(t.text==="'")r=8,t=e.popToken();else if(t.text==='"')r=16,t=e.popToken();else if(t.text==="`")if(t=e.popToken(),t.text[0]==="\\")o=t.text.charCodeAt(1);else{if(t.text==="EOF")throw new w("\\char` missing argument");o=t.text.charCodeAt(0)}else r=10;if(r){let s=t.text;if(o=tt[s.charAt(0)],o==null||o>=r)throw new w(`Invalid base-${r} digit ${t.text}`);o=St(o,s,r);let i;for([i,s]=At(e);i!=null&&i<r;)o*=r,o+=i,o=St(o,s,r),e.popToken(),[i,s]=At(e)}return`\\@char{${o}}`});function rt(e){let t=e.consumeArgs(1)[0],r="",o=t[t.length-1].loc.start;for(let s=t.length-1;s>=0;s--){let i=t[s].loc.start;i>o&&(r+=" ",o=i),r+=t[s].text,o+=t[s].text.length}return r}c("\\surd","\\sqrt{\\vphantom{|}}");c("\u2295","\\oplus");c("\\long","");c("\\bgroup","{");c("\\egroup","}");c("~","\\nobreakspace");c("\\lq","`");c("\\rq","'");c("\\aa","\\r a");c("\\Bbbk","\\Bbb{k}");c("\\mathstrut","\\vphantom{(}");c("\\underbar","\\underline{\\text{#1}}");c("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");c("\u22EE","\\vdots");c("\\arraystretch","1");c("\\arraycolsep","6pt");c("\\substack","\\begin{subarray}{c}#1\\end{subarray}");c("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");c("\\implies","\\DOTSB\\;\\Longrightarrow\\;");c("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");var qt={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcap":"\\dotsb","\\bigsqcup":"\\dotsb","\\bigtimes":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};c("\\dots",function(e){let t="\\dotso",r=e.expandAfterFuture().text;return r in qt?t=qt[r]:(r.slice(0,4)==="\\not"||r in I.math&&["bin","rel"].includes(I.math[r].group))&&(t="\\dotsb"),t});var nt={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};c("\\dotso",function(e){return e.future().text in nt?"\\ldots\\,":"\\ldots"});c("\\dotsc",function(e){let t=e.future().text;return t in nt&&t!==","?"\\ldots\\,":"\\ldots"});c("\\cdots",function(e){return e.future().text in nt?"\\@cdots\\,":"\\@cdots"});c("\\dotsb","\\cdots");c("\\dotsm","\\cdots");c("\\dotsi","\\!\\cdots");c("\\idotsint","\\dotsi");c("\\dotsx","\\ldots\\,");c("\\DOTSI","\\relax");c("\\DOTSB","\\relax");c("\\DOTSX","\\relax");c("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");c("\\,","{\\tmspace+{3mu}{.1667em}}");c("\\thinspace","\\,");c("\\>","\\mskip{4mu}");c("\\:","{\\tmspace+{4mu}{.2222em}}");c("\\medspace","\\:");c("\\;","{\\tmspace+{5mu}{.2777em}}");c("\\thickspace","\\;");c("\\!","{\\tmspace-{3mu}{.1667em}}");c("\\negthinspace","\\!");c("\\negmedspace","{\\tmspace-{4mu}{.2222em}}");c("\\negthickspace","{\\tmspace-{5mu}{.277em}}");c("\\enspace","\\kern.5em ");c("\\enskip","\\hskip.5em\\relax");c("\\quad","\\hskip1em\\relax");c("\\qquad","\\hskip2em\\relax");c("\\AA","\\TextOrMath{\\Angstrom}{\\mathring{A}}\\relax");c("\\tag","\\@ifstar\\tag@literal\\tag@paren");c("\\tag@paren","\\tag@literal{({#1})}");c("\\tag@literal",e=>{if(e.macros.get("\\df@tag"))throw new w("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});c("\\notag","\\nonumber");c("\\nonumber","\\gdef\\@eqnsw{0}");c("\\bmod","\\mathbin{\\text{mod}}");c("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");c("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");c("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");c("\\newline","\\\\\\relax");c("\\TeX","\\textrm{T}\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125em\\textrm{X}");c("\\LaTeX","\\textrm{L}\\kern-.35em\\raisebox{0.2em}{\\scriptstyle A}\\kern-.15em\\TeX");c("\\Temml","\\textrm{T}\\kern-0.2em\\lower{0.2em}{\\textrm{E}}\\kern-0.08em{\\textrm{M}\\kern-0.08em\\raise{0.2em}\\textrm{M}\\kern-0.08em\\textrm{L}}");c("\\hspace","\\@ifstar\\@hspacer\\@hspace");c("\\@hspace","\\hskip #1\\relax");c("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");c("\\colon",'\\mathpunct{\\char"3a}');c("\\prescript","\\pres@cript{_{#1}^{#2}}{}{#3}");c("\\ordinarycolon",'\\char"3a');c("\\vcentcolon","\\mathrel{\\raisebox{0.035em}{\\ordinarycolon}}");c("\\coloneq",'\\mathrel{\\raisebox{0.035em}{\\ordinarycolon}\\char"2212}');c("\\Coloneq",'\\mathrel{\\char"2237\\char"2212}');c("\\Eqqcolon",'\\mathrel{\\char"3d\\char"2237}');c("\\Eqcolon",'\\mathrel{\\char"2212\\char"2237}');c("\\colonapprox",'\\mathrel{\\raisebox{0.035em}{\\ordinarycolon}\\char"2248}');c("\\Colonapprox",'\\mathrel{\\char"2237\\char"2248}');c("\\colonsim",'\\mathrel{\\raisebox{0.035em}{\\ordinarycolon}\\char"223c}');c("\\Colonsim",'\\mathrel{\\raisebox{0.035em}{\\ordinarycolon}\\char"223c}');c("\\ratio","\\vcentcolon");c("\\coloncolon","\\dblcolon");c("\\colonequals","\\coloneqq");c("\\coloncolonequals","\\Coloneqq");c("\\equalscolon","\\eqqcolon");c("\\equalscoloncolon","\\Eqqcolon");c("\\colonminus","\\coloneq");c("\\coloncolonminus","\\Coloneq");c("\\minuscolon","\\eqcolon");c("\\minuscoloncolon","\\Eqcolon");c("\\coloncolonapprox","\\Colonapprox");c("\\coloncolonsim","\\Colonsim");c("\\notni","\\mathrel{\\char`\u220C}");c("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");c("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");c("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");c("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");c("\\varlimsup","\\DOTSB\\operatorname*{\\overline{\\text{lim}}}");c("\\varliminf","\\DOTSB\\operatorname*{\\underline{\\text{lim}}}");c("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{\\text{lim}}}");c("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{\\text{lim}}}");c("\\centerdot","{\\medspace\\rule{0.167em}{0.189em}\\medspace}");c("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");c("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");c("\\plim","\\DOTSB\\operatorname*{plim}");c("\\leftmodels","\\mathop{\\reflectbox{$\\models$}}");c("\\bra","\\mathinner{\\langle{#1}|}");c("\\ket","\\mathinner{|{#1}\\rangle}");c("\\braket","\\mathinner{\\langle{#1}\\rangle}");c("\\Bra","\\left\\langle#1\\right|");c("\\Ket","\\left|#1\\right\\rangle");var tr=(e,t)=>{let o=`}\\,\\middle${t[0]==="|"?"\\vert":"\\Vert"}\\,{`;return e.slice(0,t.index)+o+e.slice(t.index+t[0].length)};c("\\Braket",function(e){let t=rt(e),r=/\|\||\||\\\|/g,o;for(;(o=r.exec(t))!==null;)t=tr(t,o);return"\\left\\langle{"+t+"}\\right\\rangle"});c("\\Set",function(e){let t=rt(e),r=/\|\||\||\\\|/.exec(t);return r&&(t=tr(t,r)),"\\left\\{\\:{"+t+"}\\:\\right\\}"});c("\\set",function(e){return"\\{{"+rt(e).replace(/\|/,"}\\mid{")+"}\\}"});c("\\angln","{\\angl n}");c("\\odv","\\@ifstar\\odv@next\\odv@numerator");c("\\odv@numerator","\\frac{\\mathrm{d}#1}{\\mathrm{d}#2}");c("\\odv@next","\\frac{\\mathrm{d}}{\\mathrm{d}#2}#1");c("\\pdv","\\@ifstar\\pdv@next\\pdv@numerator");var rr=e=>{let t=e[0][0].text,r=He(e[1]).split(","),o=String(r.length),s=o==="1"?"\\partial":`\\partial^${o}`,i="";return r.map(l=>{i+="\\partial "+l.trim()+"\\,"}),[t,s,i.replace(/\\,$/,"")]};c("\\pdv@numerator",function(e){let[t,r,o]=rr(e.consumeArgs(2));return`\\frac{${r} ${t}}{${o}}`});c("\\pdv@next",function(e){let[t,r,o]=rr(e.consumeArgs(2));return`\\frac{${r}}{${o}} ${t}`});c("\\upalpha","\\up@greek{\\alpha}");c("\\upbeta","\\up@greek{\\beta}");c("\\upgamma","\\up@greek{\\gamma}");c("\\updelta","\\up@greek{\\delta}");c("\\upepsilon","\\up@greek{\\epsilon}");c("\\upzeta","\\up@greek{\\zeta}");c("\\upeta","\\up@greek{\\eta}");c("\\uptheta","\\up@greek{\\theta}");c("\\upiota","\\up@greek{\\iota}");c("\\upkappa","\\up@greek{\\kappa}");c("\\uplambda","\\up@greek{\\lambda}");c("\\upmu","\\up@greek{\\mu}");c("\\upnu","\\up@greek{\\nu}");c("\\upxi","\\up@greek{\\xi}");c("\\upomicron","\\up@greek{\\omicron}");c("\\uppi","\\up@greek{\\pi}");c("\\upalpha","\\up@greek{\\alpha}");c("\\uprho","\\up@greek{\\rho}");c("\\upsigma","\\up@greek{\\sigma}");c("\\uptau","\\up@greek{\\tau}");c("\\upupsilon","\\up@greek{\\upsilon}");c("\\upphi","\\up@greek{\\phi}");c("\\upchi","\\up@greek{\\chi}");c("\\uppsi","\\up@greek{\\psi}");c("\\upomega","\\up@greek{\\omega}");c("\\invamp",'\\mathbin{\\char"214b}');c("\\parr",'\\mathbin{\\char"214b}');c("\\with",'\\mathbin{\\char"26}');c("\\multimapinv",'\\mathrel{\\char"27dc}');c("\\multimapboth",'\\mathrel{\\char"29df}');c("\\scoh",'{\\mkern5mu\\char"2322\\mkern5mu}');c("\\sincoh",'{\\mkern5mu\\char"2323\\mkern5mu}');c("\\coh",`{\\mkern5mu\\rule{}{0.7em}\\mathrlap{\\smash{\\raise2mu{\\char"2322}}} {\\smash{\\lower4mu{\\char"2323}}}\\mkern5mu}`);c("\\incoh",`{\\mkern5mu\\rule{}{0.7em}\\mathrlap{\\smash{\\raise2mu{\\char"2323}}} {\\smash{\\lower4mu{\\char"2322}}}\\mkern5mu}`);c("\\standardstate","\\text{\\tiny\\char`\u29B5}");c("\\ce",function(e){return nr(e.consumeArgs(1)[0],"ce")});c("\\pu",function(e){return nr(e.consumeArgs(1)[0],"pu")});c("\\uniDash","{\\rule{0.672em}{0.06em}}");c("\\triDash","{\\rule{0.15em}{0.06em}\\kern2mu\\rule{0.15em}{0.06em}\\kern2mu\\rule{0.15em}{0.06em}}");c("\\tripleDash","\\kern0.075em\\raise0.25em{\\triDash}\\kern0.075em");c("\\tripleDashOverLine","\\kern0.075em\\mathrlap{\\raise0.125em{\\uniDash}}\\raise0.34em{\\triDash}\\kern0.075em");c("\\tripleDashOverDoubleLine","\\kern0.075em\\mathrlap{\\mathrlap{\\raise0.48em{\\triDash}}\\raise0.27em{\\uniDash}}{\\raise0.05em{\\uniDash}}\\kern0.075em");c("\\tripleDashBetweenDoubleLine","\\kern0.075em\\mathrlap{\\mathrlap{\\raise0.48em{\\uniDash}}\\raise0.27em{\\triDash}}{\\raise0.05em{\\uniDash}}\\kern0.075em");var nr=function(e,t){for(var r="",o=e.length&&e[e.length-1].loc.start,s=e.length-1;s>=0;s--)e[s].loc.start>o&&(r+=" ",o=e[s].loc.start),r+=e[s].text,o+=e[s].text.length;var i=M.go(y.go(r,t));return i},y={go:function(e,t){if(!e)return[];t===void 0&&(t="ce");var r="0",o={};o.parenthesisLevel=0,e=e.replace(/\n/g," "),e=e.replace(/[\u2212\u2013\u2014\u2010]/g,"-"),e=e.replace(/[\u2026]/g,"...");for(var s,i=10,l=[];;){s!==e?(i=10,s=e):i--;var u=y.stateMachines[t],h=u.transitions[r]||u.transitions["*"];e:for(var x=0;x<h.length;x++){var A=y.patterns.match_(h[x].pattern,e);if(A){for(var q=h[x].task,b=0;b<q.action_.length;b++){var k;if(u.actions[q.action_[b].type_])k=u.actions[q.action_[b].type_](o,A.match_,q.action_[b].option);else if(y.actions[q.action_[b].type_])k=y.actions[q.action_[b].type_](o,A.match_,q.action_[b].option);else throw["MhchemBugA","mhchem bug A. Please report. ("+q.action_[b].type_+")"];y.concatArray(l,k)}if(r=q.nextState||r,e.length>0){if(q.revisit||(e=A.remainder),!q.toContinue)break e}else return l}}if(i<=0)throw["MhchemBugU","mhchem bug U. Please report."]}},concatArray:function(e,t){if(t)if(Array.isArray(t))for(var r=0;r<t.length;r++)e.push(t[r]);else e.push(t)},patterns:{patterns:{empty:/^$/,else:/^./,else2:/^./,space:/^\s/,"space A":/^\s(?=[A-Z\\$])/,space$:/^\s$/,"a-z":/^[a-z]/,x:/^x/,x$:/^x$/,i$:/^i$/,letters:/^(?:[a-zA-Z\u03B1-\u03C9\u0391-\u03A9?@]|(?:\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\s+|\{\}|(?![a-zA-Z]))))+/,"\\greek":/^\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\s+|\{\}|(?![a-zA-Z]))/,"one lowercase latin letter $":/^(?:([a-z])(?:$|[^a-zA-Z]))$/,"$one lowercase latin letter$ $":/^\$(?:([a-z])(?:$|[^a-zA-Z]))\$$/,"one lowercase greek letter $":/^(?:\$?[\u03B1-\u03C9]\$?|\$?\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)\s*\$?)(?:\s+|\{\}|(?![a-zA-Z]))$/,digits:/^[0-9]+/,"-9.,9":/^[+\-]?(?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))/,"-9.,9 no missing 0":/^[+\-]?[0-9]+(?:[.,][0-9]+)?/,"(-)(9.,9)(e)(99)":function(e){var t=e.match(/^(\+\-|\+\/\-|\+|\-|\\pm\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))?(\((?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))\))?(?:([eE]|\s*(\*|x|\\times|\u00D7)\s*10\^)([+\-]?[0-9]+|\{[+\-]?[0-9]+\}))?/);return t&&t[0]?{match_:t.splice(1),remainder:e.substr(t[0].length)}:null},"(-)(9)^(-9)":function(e){var t=e.match(/^(\+\-|\+\/\-|\+|\-|\\pm\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+)?)\^([+\-]?[0-9]+|\{[+\-]?[0-9]+\})/);return t&&t[0]?{match_:t.splice(1),remainder:e.substr(t[0].length)}:null},"state of aggregation $":function(e){var t=y.patterns.findObserveGroups(e,"",/^\([a-z]{1,3}(?=[\),])/,")","");if(t&&t.remainder.match(/^($|[\s,;\)\]\}])/))return t;var r=e.match(/^(?:\((?:\\ca\s?)?\$[amothc]\$\))/);return r?{match_:r[0],remainder:e.substr(r[0].length)}:null},"_{(state of aggregation)}$":/^_\{(\([a-z]{1,3}\))\}/,"{[(":/^(?:\\\{|\[|\()/,")]}":/^(?:\)|\]|\\\})/,", ":/^[,;]\s*/,",":/^[,;]/,".":/^[.]/,". ":/^([.\u22C5\u00B7\u2022])\s*/,"...":/^\.\.\.(?=$|[^.])/,"* ":/^([*])\s*/,"^{(...)}":function(e){return y.patterns.findObserveGroups(e,"^{","","","}")},"^($...$)":function(e){return y.patterns.findObserveGroups(e,"^","$","$","")},"^a":/^\^([0-9]+|[^\\_])/,"^\\x{}{}":function(e){return y.patterns.findObserveGroups(e,"^",/^\\[a-zA-Z]+\{/,"}","","","{","}","",!0)},"^\\x{}":function(e){return y.patterns.findObserveGroups(e,"^",/^\\[a-zA-Z]+\{/,"}","")},"^\\x":/^\^(\\[a-zA-Z]+)\s*/,"^(-1)":/^\^(-?\d+)/,"'":/^'/,"_{(...)}":function(e){return y.patterns.findObserveGroups(e,"_{","","","}")},"_($...$)":function(e){return y.patterns.findObserveGroups(e,"_","$","$","")},_9:/^_([+\-]?[0-9]+|[^\\])/,"_\\x{}{}":function(e){return y.patterns.findObserveGroups(e,"_",/^\\[a-zA-Z]+\{/,"}","","","{","}","",!0)},"_\\x{}":function(e){return y.patterns.findObserveGroups(e,"_",/^\\[a-zA-Z]+\{/,"}","")},"_\\x":/^_(\\[a-zA-Z]+)\s*/,"^_":/^(?:\^(?=_)|\_(?=\^)|[\^_]$)/,"{}":/^\{\}/,"{...}":function(e){return y.patterns.findObserveGroups(e,"","{","}","")},"{(...)}":function(e){return y.patterns.findObserveGroups(e,"{","","","}")},"$...$":function(e){return y.patterns.findObserveGroups(e,"","$","$","")},"${(...)}$":function(e){return y.patterns.findObserveGroups(e,"${","","","}$")},"$(...)$":function(e){return y.patterns.findObserveGroups(e,"$","","","$")},"=<>":/^[=<>]/,"#":/^[#\u2261]/,"+":/^\+/,"-$":/^-(?=[\s_},;\]/]|$|\([a-z]+\))/,"-9":/^-(?=[0-9])/,"- orbital overlap":/^-(?=(?:[spd]|sp)(?:$|[\s,;\)\]\}]))/,"-":/^-/,"pm-operator":/^(?:\\pm|\$\\pm\$|\+-|\+\/-)/,operator:/^(?:\+|(?:[\-=<>]|<<|>>|\\approx|\$\\approx\$)(?=\s|$|-?[0-9]))/,arrowUpDown:/^(?:v|\(v\)|\^|\(\^\))(?=$|[\s,;\)\]\}])/,"\\bond{(...)}":function(e){return y.patterns.findObserveGroups(e,"\\bond{","","","}")},"->":/^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\u2192\u27F6\u21CC])/,CMT:/^[CMT](?=\[)/,"[(...)]":function(e){return y.patterns.findObserveGroups(e,"[","","","]")},"1st-level escape":/^(&|\\\\|\\hline)\s*/,"\\,":/^(?:\\[,\ ;:])/,"\\x{}{}":function(e){return y.patterns.findObserveGroups(e,"",/^\\[a-zA-Z]+\{/,"}","","","{","}","",!0)},"\\x{}":function(e){return y.patterns.findObserveGroups(e,"",/^\\[a-zA-Z]+\{/,"}","")},"\\ca":/^\\ca(?:\s+|(?![a-zA-Z]))/,"\\x":/^(?:\\[a-zA-Z]+\s*|\\[_&{}%])/,orbital:/^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/,others:/^[\/~|]/,"\\frac{(...)}":function(e){return y.patterns.findObserveGroups(e,"\\frac{","","","}","{","","","}")},"\\overset{(...)}":function(e){return y.patterns.findObserveGroups(e,"\\overset{","","","}","{","","","}")},"\\underset{(...)}":function(e){return y.patterns.findObserveGroups(e,"\\underset{","","","}","{","","","}")},"\\underbrace{(...)}":function(e){return y.patterns.findObserveGroups(e,"\\underbrace{","","","}_","{","","","}")},"\\color{(...)}0":function(e){return y.patterns.findObserveGroups(e,"\\color{","","","}")},"\\color{(...)}{(...)}1":function(e){return y.patterns.findObserveGroups(e,"\\color{","","","}","{","","","}")},"\\color(...){(...)}2":function(e){return y.patterns.findObserveGroups(e,"\\color","\\","",/^(?=\{)/,"{","","","}")},"\\ce{(...)}":function(e){return y.patterns.findObserveGroups(e,"\\ce{","","","}")},oxidation$:/^(?:[+-][IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"d-oxidation$":/^(?:[+-]?\s?[IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"roman numeral":/^[IVX]+/,"1/2$":/^[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+(?:\$[a-z]\$|[a-z])?$/,amount:function(e){var t;if(t=e.match(/^(?:(?:(?:\([+\-]?[0-9]+\/[0-9]+\)|[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+|[+\-]?[0-9]+[.,][0-9]+|[+\-]?\.[0-9]+|[+\-]?[0-9]+)(?:[a-z](?=\s*[A-Z]))?)|[+\-]?[a-z](?=\s*[A-Z])|\+(?!\s))/),t)return{match_:t[0],remainder:e.substr(t[0].length)};var r=y.patterns.findObserveGroups(e,"","$","$","");return r&&(t=r.match_.match(/^\$(?:\(?[+\-]?(?:[0-9]*[a-z]?[+\-])?[0-9]*[a-z](?:[+\-][0-9]*[a-z]?)?\)?|\+|-)\$$/),t)?{match_:t[0],remainder:e.substr(t[0].length)}:null},amount2:function(e){return this.amount(e)},"(KV letters),":/^(?:[A-Z][a-z]{0,2}|i)(?=,)/,formula$:function(e){if(e.match(/^\([a-z]+\)$/))return null;var t=e.match(/^(?:[a-z]|(?:[0-9\ \+\-\,\.\(\)]+[a-z])+[0-9\ \+\-\,\.\(\)]*|(?:[a-z][0-9\ \+\-\,\.\(\)]+)+[a-z]?)$/);return t?{match_:t[0],remainder:e.substr(t[0].length)}:null},uprightEntities:/^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/,"/":/^\s*(\/)\s*/,"//":/^\s*(\/\/)\s*/,"*":/^\s*[*.]\s*/},findObserveGroups:function(e,t,r,o,s,i,l,u,h,x){var A=function(G,E){if(typeof E=="string")return G.indexOf(E)!==0?null:E;var H=G.match(E);return H?H[0]:null},q=function(G,E,H){for(var J=0;E<G.length;){var le=G.charAt(E),lt=A(G.substr(E),H);if(lt!==null&&J===0)return{endMatchBegin:E,endMatchEnd:E+lt.length};if(le==="{")J++;else if(le==="}"){if(J===0)throw["ExtraCloseMissingOpen","Extra close brace or missing open brace"];J--}E++}return J>0,null},b=A(e,t);if(b===null||(e=e.substr(b.length),b=A(e,r),b===null))return null;var k=q(e,b.length,o||s);if(k===null)return null;var T=e.substring(0,o?k.endMatchEnd:k.endMatchBegin);if(i||l){var $=this.findObserveGroups(e.substr(k.endMatchEnd),i,l,u,h);if($===null)return null;var j=[T,$.match_];return{match_:x?j.join(""):j,remainder:$.remainder}}else return{match_:T,remainder:e.substr(k.endMatchEnd)}},match_:function(e,t){var r=y.patterns.patterns[e];if(r===void 0)throw["MhchemBugP","mhchem bug P. Please report. ("+e+")"];if(typeof r=="function")return y.patterns.patterns[e](t);var o=t.match(r);if(o){var s;return o[2]?s=[o[1],o[2]]:o[1]?s=o[1]:s=o[0],{match_:s,remainder:t.substr(o[0].length)}}return null}},actions:{"a=":function(e,t){e.a=(e.a||"")+t},"b=":function(e,t){e.b=(e.b||"")+t},"p=":function(e,t){e.p=(e.p||"")+t},"o=":function(e,t){e.o=(e.o||"")+t},"q=":function(e,t){e.q=(e.q||"")+t},"d=":function(e,t){e.d=(e.d||"")+t},"rm=":function(e,t){e.rm=(e.rm||"")+t},"text=":function(e,t){e.text_=(e.text_||"")+t},insert:function(e,t,r){return{type_:r}},"insert+p1":function(e,t,r){return{type_:r,p1:t}},"insert+p1+p2":function(e,t,r){return{type_:r,p1:t[0],p2:t[1]}},copy:function(e,t){return t},rm:function(e,t){return{type_:"rm",p1:t||""}},text:function(e,t){return y.go(t,"text")},"{text}":function(e,t){var r=["{"];return y.concatArray(r,y.go(t,"text")),r.push("}"),r},"tex-math":function(e,t){return y.go(t,"tex-math")},"tex-math tight":function(e,t){return y.go(t,"tex-math tight")},bond:function(e,t,r){return{type_:"bond",kind_:r||t}},"color0-output":function(e,t){return{type_:"color0",color:t[0]}},ce:function(e,t){return y.go(t)},"1/2":function(e,t){var r=[];t.match(/^[+\-]/)&&(r.push(t.substr(0,1)),t=t.substr(1));var o=t.match(/^([0-9]+|\$[a-z]\$|[a-z])\/([0-9]+)(\$[a-z]\$|[a-z])?$/);return o[1]=o[1].replace(/\$/g,""),r.push({type_:"frac",p1:o[1],p2:o[2]}),o[3]&&(o[3]=o[3].replace(/\$/g,""),r.push({type_:"tex-math",p1:o[3]})),r},"9,9":function(e,t){return y.go(t,"9,9")}},createTransitions:function(e){var t,r,o,s,i={};for(t in e)for(r in e[t])for(o=r.split("|"),e[t][r].stateArray=o,s=0;s<o.length;s++)i[o[s]]=[];for(t in e)for(r in e[t])for(o=e[t][r].stateArray||[],s=0;s<o.length;s++){var l=e[t][r];if(l.action_){l.action_=[].concat(l.action_);for(var u=0;u<l.action_.length;u++)typeof l.action_[u]=="string"&&(l.action_[u]={type_:l.action_[u]})}else l.action_=[];for(var h=t.split("|"),x=0;x<h.length;x++)if(o[s]==="*")for(var A in i)i[A].push({pattern:h[x],task:l});else i[o[s]].push({pattern:h[x],task:l})}return i},stateMachines:{}};y.stateMachines={ce:{transitions:y.createTransitions({empty:{"*":{action_:"output"}},else:{"0|1|2":{action_:"beginsWithBond=false",revisit:!0,toContinue:!0}},oxidation$:{0:{action_:"oxidation-output"}},CMT:{r:{action_:"rdt=",nextState:"rt"},rd:{action_:"rqt=",nextState:"rdt"}},arrowUpDown:{"0|1|2|as":{action_:["sb=false","output","operator"],nextState:"1"}},uprightEntities:{"0|1|2":{action_:["o=","output"],nextState:"1"}},orbital:{"0|1|2|3":{action_:"o=",nextState:"o"}},"->":{"0|1|2|3":{action_:"r=",nextState:"r"},"a|as":{action_:["output","r="],nextState:"r"},"*":{action_:["output","r="],nextState:"r"}},"+":{o:{action_:"d= kv",nextState:"d"},"d|D":{action_:"d=",nextState:"d"},q:{action_:"d=",nextState:"qd"},"qd|qD":{action_:"d=",nextState:"qd"},dq:{action_:["output","d="],nextState:"d"},3:{action_:["sb=false","output","operator"],nextState:"0"}},amount:{"0|2":{action_:"a=",nextState:"a"}},"pm-operator":{"0|1|2|a|as":{action_:["sb=false","output",{type_:"operator",option:"\\pm"}],nextState:"0"}},operator:{"0|1|2|a|as":{action_:["sb=false","output","operator"],nextState:"0"}},"-$":{"o|q":{action_:["charge or bond","output"],nextState:"qd"},d:{action_:"d=",nextState:"d"},D:{action_:["output",{type_:"bond",option:"-"}],nextState:"3"},q:{action_:"d=",nextState:"qd"},qd:{action_:"d=",nextState:"qd"},"qD|dq":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},"-9":{"3|o":{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"3"}},"- orbital overlap":{o:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},d:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"}},"-":{"0|1|2":{action_:[{type_:"output",option:1},"beginsWithBond=true",{type_:"bond",option:"-"}],nextState:"3"},3:{action_:{type_:"bond",option:"-"}},a:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},as:{action_:[{type_:"output",option:2},{type_:"bond",option:"-"}],nextState:"3"},b:{action_:"b="},o:{action_:{type_:"- after o/d",option:!1},nextState:"2"},q:{action_:{type_:"- after o/d",option:!1},nextState:"2"},"d|qd|dq":{action_:{type_:"- after o/d",option:!0},nextState:"2"},"D|qD|p":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},amount2:{"1|3":{action_:"a=",nextState:"a"}},letters:{"0|1|2|3|a|as|b|p|bp|o":{action_:"o=",nextState:"o"},"q|dq":{action_:["output","o="],nextState:"o"},"d|D|qd|qD":{action_:"o after d",nextState:"o"}},digits:{o:{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},q:{action_:["output","o="],nextState:"o"},a:{action_:"o=",nextState:"o"}},"space A":{"b|p|bp":{}},space:{a:{nextState:"as"},0:{action_:"sb=false"},"1|2":{action_:"sb=true"},"r|rt|rd|rdt|rdq":{action_:"output",nextState:"0"},"*":{action_:["output","sb=true"],nextState:"1"}},"1st-level escape":{"1|2":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}]},"*":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}],nextState:"0"}},"[(...)]":{"r|rt":{action_:"rd=",nextState:"rd"},"rd|rdt":{action_:"rq=",nextState:"rdq"}},"...":{"o|d|D|dq|qd|qD":{action_:["output",{type_:"bond",option:"..."}],nextState:"3"},"*":{action_:[{type_:"output",option:1},{type_:"insert",option:"ellipsis"}],nextState:"1"}},". |* ":{"*":{action_:["output",{type_:"insert",option:"addition compound"}],nextState:"1"}},"state of aggregation $":{"*":{action_:["output","state of aggregation"],nextState:"1"}},"{[(":{"a|as|o":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"0|1|2|3":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"*":{action_:["output","o=","output","parenthesisLevel++"],nextState:"2"}},")]}":{"0|1|2|3|b|p|bp|o":{action_:["o=","parenthesisLevel--"],nextState:"o"},"a|as|d|D|q|qd|qD|dq":{action_:["output","o=","parenthesisLevel--"],nextState:"o"}},", ":{"*":{action_:["output","comma"],nextState:"0"}},"^_":{"*":{}},"^{(...)}|^($...$)":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"D"},q:{action_:"d=",nextState:"qD"},"d|D|qd|qD|dq":{action_:["output","d="],nextState:"D"}},"^a|^\\x{}{}|^\\x{}|^\\x|'":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"d"},q:{action_:"d=",nextState:"qd"},"d|qd|D|qD":{action_:"d="},dq:{action_:["output","d="],nextState:"d"}},"_{(state of aggregation)}$":{"d|D|q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"_{(...)}|_($...$)|_9|_\\x{}{}|_\\x{}|_\\x":{"0|1|2|as":{action_:"p=",nextState:"p"},b:{action_:"p=",nextState:"bp"},"3|o":{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},"q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"=<>":{"0|1|2|3|a|as|o|q|d|D|qd|qD|dq":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"#":{"0|1|2|3|a|as|o":{action_:[{type_:"output",option:2},{type_:"bond",option:"#"}],nextState:"3"}},"{}":{"*":{action_:{type_:"output",option:1},nextState:"1"}},"{...}":{"0|1|2|3|a|as|b|p|bp":{action_:"o=",nextState:"o"},"o|d|D|q|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"$...$":{a:{action_:"a="},"0|1|2|3|as|b|p|bp|o":{action_:"o=",nextState:"o"},"as|o":{action_:"o="},"q|d|D|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"\\bond{(...)}":{"*":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"\\frac{(...)}":{"*":{action_:[{type_:"output",option:1},"frac-output"],nextState:"3"}},"\\overset{(...)}":{"*":{action_:[{type_:"output",option:2},"overset-output"],nextState:"3"}},"\\underset{(...)}":{"*":{action_:[{type_:"output",option:2},"underset-output"],nextState:"3"}},"\\underbrace{(...)}":{"*":{action_:[{type_:"output",option:2},"underbrace-output"],nextState:"3"}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:[{type_:"output",option:2},"color-output"],nextState:"3"}},"\\color{(...)}0":{"*":{action_:[{type_:"output",option:2},"color0-output"]}},"\\ce{(...)}":{"*":{action_:[{type_:"output",option:2},"ce"],nextState:"3"}},"\\,":{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"1"}},"\\x{}{}|\\x{}|\\x":{"0|1|2|3|a|as|b|p|bp|o|c0":{action_:["o=","output"],nextState:"3"},"*":{action_:["output","o=","output"],nextState:"3"}},others:{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"3"}},else2:{a:{action_:"a to o",nextState:"o",revisit:!0},as:{action_:["output","sb=true"],nextState:"1",revisit:!0},"r|rt|rd|rdt|rdq":{action_:["output"],nextState:"0",revisit:!0},"*":{action_:["output","copy"],nextState:"3"}}}),actions:{"o after d":function(e,t){var r;if((e.d||"").match(/^[0-9]+$/)){var o=e.d;e.d=void 0,r=this.output(e),e.b=o}else r=this.output(e);return y.actions["o="](e,t),r},"d= kv":function(e,t){e.d=t,e.dType="kv"},"charge or bond":function(e,t){if(e.beginsWithBond){var r=[];return y.concatArray(r,this.output(e)),y.concatArray(r,y.actions.bond(e,t,"-")),r}else e.d=t},"- after o/d":function(e,t,r){var o=y.patterns.match_("orbital",e.o||""),s=y.patterns.match_("one lowercase greek letter $",e.o||""),i=y.patterns.match_("one lowercase latin letter $",e.o||""),l=y.patterns.match_("$one lowercase latin letter$ $",e.o||""),u=t==="-"&&(o&&o.remainder===""||s||i||l);u&&!e.a&&!e.b&&!e.p&&!e.d&&!e.q&&!o&&i&&(e.o="$"+e.o+"$");var h=[];return u?(y.concatArray(h,this.output(e)),h.push({type_:"hyphen"})):(o=y.patterns.match_("digits",e.d||""),r&&o&&o.remainder===""?(y.concatArray(h,y.actions["d="](e,t)),y.concatArray(h,this.output(e))):(y.concatArray(h,this.output(e)),y.concatArray(h,y.actions.bond(e,t,"-")))),h},"a to o":function(e){e.o=e.a,e.a=void 0},"sb=true":function(e){e.sb=!0},"sb=false":function(e){e.sb=!1},"beginsWithBond=true":function(e){e.beginsWithBond=!0},"beginsWithBond=false":function(e){e.beginsWithBond=!1},"parenthesisLevel++":function(e){e.parenthesisLevel++},"parenthesisLevel--":function(e){e.parenthesisLevel--},"state of aggregation":function(e,t){return{type_:"state of aggregation",p1:y.go(t,"o")}},comma:function(e,t){var r=t.replace(/\s*$/,""),o=r!==t;return o&&e.parenthesisLevel===0?{type_:"comma enumeration L",p1:r}:{type_:"comma enumeration M",p1:r}},output:function(e,t,r){var o;if(!e.r)o=[],!e.a&&!e.b&&!e.p&&!e.o&&!e.q&&!e.d&&!r||(e.sb&&o.push({type_:"entitySkip"}),!e.o&&!e.q&&!e.d&&!e.b&&!e.p&&r!==2?(e.o=e.a,e.a=void 0):!e.o&&!e.q&&!e.d&&(e.b||e.p)?(e.o=e.a,e.d=e.b,e.q=e.p,e.a=e.b=e.p=void 0):e.o&&e.dType==="kv"&&y.patterns.match_("d-oxidation$",e.d||"")?e.dType="oxidation":e.o&&e.dType==="kv"&&!e.q&&(e.dType=void 0),o.push({type_:"chemfive",a:y.go(e.a,"a"),b:y.go(e.b,"bd"),p:y.go(e.p,"pq"),o:y.go(e.o,"o"),q:y.go(e.q,"pq"),d:y.go(e.d,e.dType==="oxidation"?"oxidation":"bd"),dType:e.dType}));else{var s;e.rdt==="M"?s=y.go(e.rd,"tex-math"):e.rdt==="T"?s=[{type_:"text",p1:e.rd||""}]:s=y.go(e.rd);var i;e.rqt==="M"?i=y.go(e.rq,"tex-math"):e.rqt==="T"?i=[{type_:"text",p1:e.rq||""}]:i=y.go(e.rq),o={type_:"arrow",r:e.r,rd:s,rq:i}}for(var l in e)l!=="parenthesisLevel"&&l!=="beginsWithBond"&&delete e[l];return o},"oxidation-output":function(e,t){var r=["{"];return y.concatArray(r,y.go(t,"oxidation")),r.push("}"),r},"frac-output":function(e,t){return{type_:"frac-ce",p1:y.go(t[0]),p2:y.go(t[1])}},"overset-output":function(e,t){return{type_:"overset",p1:y.go(t[0]),p2:y.go(t[1])}},"underset-output":function(e,t){return{type_:"underset",p1:y.go(t[0]),p2:y.go(t[1])}},"underbrace-output":function(e,t){return{type_:"underbrace",p1:y.go(t[0]),p2:y.go(t[1])}},"color-output":function(e,t){return{type_:"color",color1:t[0],color2:y.go(t[1])}},"r=":function(e,t){e.r=t},"rdt=":function(e,t){e.rdt=t},"rd=":function(e,t){e.rd=t},"rqt=":function(e,t){e.rqt=t},"rq=":function(e,t){e.rq=t},operator:function(e,t,r){return{type_:"operator",kind_:r||t}}}},a:{transitions:y.createTransitions({empty:{"*":{}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"1",revisit:!0}},"$(...)$":{"*":{action_:"tex-math tight",nextState:"1"}},",":{"*":{action_:{type_:"insert",option:"commaDecimal"}}},else2:{"*":{action_:"copy"}}}),actions:{}},o:{transitions:y.createTransitions({empty:{"*":{}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"1",revisit:!0}},letters:{"*":{action_:"rm"}},"\\ca":{"*":{action_:{type_:"insert",option:"circa"}}},"\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"{text}"}},else2:{"*":{action_:"copy"}}}),actions:{}},text:{transitions:y.createTransitions({empty:{"*":{action_:"output"}},"{...}":{"*":{action_:"text="}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"\\greek":{"*":{action_:["output","rm"]}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:["output","copy"]}},else:{"*":{action_:"text="}}}),actions:{output:function(e){if(e.text_){var t={type_:"text",p1:e.text_};for(var r in e)delete e[r];return t}}}},pq:{transitions:y.createTransitions({empty:{"*":{}},"state of aggregation $":{"*":{action_:"state of aggregation"}},i$:{0:{nextState:"!f",revisit:!0}},"(KV letters),":{0:{action_:"rm",nextState:"0"}},formula$:{0:{nextState:"f",revisit:!0}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"!f",revisit:!0}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"a-z":{f:{action_:"tex-math"}},letters:{"*":{action_:"rm"}},"-9.,9":{"*":{action_:"9,9"}},",":{"*":{action_:{type_:"insert+p1",option:"comma enumeration S"}}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:"color-output"}},"\\color{(...)}0":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"state of aggregation":function(e,t){return{type_:"state of aggregation subscript",p1:y.go(t,"o")}},"color-output":function(e,t){return{type_:"color",color1:t[0],color2:y.go(t[1],"pq")}}}},bd:{transitions:y.createTransitions({empty:{"*":{}},x$:{0:{nextState:"!f",revisit:!0}},formula$:{0:{nextState:"f",revisit:!0}},else:{0:{nextState:"!f",revisit:!0}},"-9.,9 no missing 0":{"*":{action_:"9,9"}},".":{"*":{action_:{type_:"insert",option:"electron dot"}}},"a-z":{f:{action_:"tex-math"}},x:{"*":{action_:{type_:"insert",option:"KV x"}}},letters:{"*":{action_:"rm"}},"'":{"*":{action_:{type_:"insert",option:"prime"}}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:"color-output"}},"\\color{(...)}0":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"color-output":function(e,t){return{type_:"color",color1:t[0],color2:y.go(t[1],"bd")}}}},oxidation:{transitions:y.createTransitions({empty:{"*":{}},"roman numeral":{"*":{action_:"roman-numeral"}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},else:{"*":{action_:"copy"}}}),actions:{"roman-numeral":function(e,t){return{type_:"roman numeral",p1:t||""}}}},"tex-math":{transitions:y.createTransitions({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},else:{"*":{action_:"o="}}}),actions:{output:function(e){if(e.o){var t={type_:"tex-math",p1:e.o};for(var r in e)delete e[r];return t}}}},"tex-math tight":{transitions:y.createTransitions({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},"-|+":{"*":{action_:"tight operator"}},else:{"*":{action_:"o="}}}),actions:{"tight operator":function(e,t){e.o=(e.o||"")+"{"+t+"}"},output:function(e){if(e.o){var t={type_:"tex-math",p1:e.o};for(var r in e)delete e[r];return t}}}},"9,9":{transitions:y.createTransitions({empty:{"*":{}},",":{"*":{action_:"comma"}},else:{"*":{action_:"copy"}}}),actions:{comma:function(){return{type_:"commaDecimal"}}}},pu:{transitions:y.createTransitions({empty:{"*":{action_:"output"}},space$:{"*":{action_:["output","space"]}},"{[(|)]}":{"0|a":{action_:"copy"}},"(-)(9)^(-9)":{0:{action_:"number^",nextState:"a"}},"(-)(9.,9)(e)(99)":{0:{action_:"enumber",nextState:"a"}},space:{"0|a":{}},"pm-operator":{"0|a":{action_:{type_:"operator",option:"\\pm"},nextState:"0"}},operator:{"0|a":{action_:"copy",nextState:"0"}},"//":{d:{action_:"o=",nextState:"/"}},"/":{d:{action_:"o=",nextState:"/"}},"{...}|else":{"0|d":{action_:"d=",nextState:"d"},a:{action_:["space","d="],nextState:"d"},"/|q":{action_:"q=",nextState:"q"}}}),actions:{enumber:function(e,t){var r=[];return t[0]==="+-"||t[0]==="+/-"?r.push("\\pm "):t[0]&&r.push(t[0]),t[1]&&(y.concatArray(r,y.go(t[1],"pu-9,9")),t[2]&&(t[2].match(/[,.]/)?y.concatArray(r,y.go(t[2],"pu-9,9")):r.push(t[2])),t[3]=t[4]||t[3],t[3]&&(t[3]=t[3].trim(),t[3]==="e"||t[3].substr(0,1)==="*"?r.push({type_:"cdot"}):r.push({type_:"times"}))),t[3]&&r.push("10^{"+t[5]+"}"),r},"number^":function(e,t){var r=[];return t[0]==="+-"||t[0]==="+/-"?r.push("\\pm "):t[0]&&r.push(t[0]),y.concatArray(r,y.go(t[1],"pu-9,9")),r.push("^{"+t[2]+"}"),r},operator:function(e,t,r){return{type_:"operator",kind_:r||t}},space:function(){return{type_:"pu-space-1"}},output:function(e){var t,r=y.patterns.match_("{(...)}",e.d||"");r&&r.remainder===""&&(e.d=r.match_);var o=y.patterns.match_("{(...)}",e.q||"");if(o&&o.remainder===""&&(e.q=o.match_),e.d&&(e.d=e.d.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),e.d=e.d.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F")),e.q){e.q=e.q.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),e.q=e.q.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F");var s={d:y.go(e.d,"pu"),q:y.go(e.q,"pu")};e.o==="//"?t={type_:"pu-frac",p1:s.d,p2:s.q}:(t=s.d,s.d.length>1||s.q.length>1?t.push({type_:" / "}):t.push({type_:"/"}),y.concatArray(t,s.q))}else t=y.go(e.d,"pu-2");for(var i in e)delete e[i];return t}}},"pu-2":{transitions:y.createTransitions({empty:{"*":{action_:"output"}},"*":{"*":{action_:["output","cdot"],nextState:"0"}},"\\x":{"*":{action_:"rm="}},space:{"*":{action_:["output","space"],nextState:"0"}},"^{(...)}|^(-1)":{1:{action_:"^(-1)"}},"-9.,9":{0:{action_:"rm=",nextState:"0"},1:{action_:"^(-1)",nextState:"0"}},"{...}|else":{"*":{action_:"rm=",nextState:"1"}}}),actions:{cdot:function(){return{type_:"tight cdot"}},"^(-1)":function(e,t){e.rm+="^{"+t+"}"},space:function(){return{type_:"pu-space-2"}},output:function(e){var t=[];if(e.rm){var r=y.patterns.match_("{(...)}",e.rm||"");r&&r.remainder===""?t=y.go(r.match_,"pu"):t={type_:"rm",p1:e.rm}}for(var o in e)delete e[o];return t}}},"pu-9,9":{transitions:y.createTransitions({empty:{0:{action_:"output-0"},o:{action_:"output-o"}},",":{0:{action_:["output-0","comma"],nextState:"o"}},".":{0:{action_:["output-0","copy"],nextState:"o"}},else:{"*":{action_:"text="}}}),actions:{comma:function(){return{type_:"commaDecimal"}},"output-0":function(e){var t=[];if(e.text_=e.text_||"",e.text_.length>4){var r=e.text_.length%3;r===0&&(r=3);for(var o=e.text_.length-3;o>0;o-=3)t.push(e.text_.substr(o,3)),t.push({type_:"1000 separator"});t.push(e.text_.substr(0,r)),t.reverse()}else t.push(e.text_);for(var s in e)delete e[s];return t},"output-o":function(e){var t=[];if(e.text_=e.text_||"",e.text_.length>4){for(var r=e.text_.length-3,o=0;o<r;o+=3)t.push(e.text_.substr(o,3)),t.push({type_:"1000 separator"});t.push(e.text_.substr(o))}else t.push(e.text_);for(var s in e)delete e[s];return t}}}};var M={go:function(e,t){if(!e)return"";for(var r="",o=!1,s=0;s<e.length;s++){var i=e[s];typeof i=="string"?r+=i:(r+=M._go2(i),i.type_==="1st-level escape"&&(o=!0))}return!t&&!o&&r&&(r="{"+r+"}"),r},_goInner:function(e){return e&&M.go(e,!0)},_go2:function(e){var t;switch(e.type_){case"chemfive":t="";var r={a:M._goInner(e.a),b:M._goInner(e.b),p:M._goInner(e.p),o:M._goInner(e.o),q:M._goInner(e.q),d:M._goInner(e.d)};r.a&&(r.a.match(/^[+\-]/)&&(r.a="{"+r.a+"}"),t+=r.a+"\\,"),(r.b||r.p)&&(t+="{\\vphantom{X}}",t+="^{\\hphantom{"+(r.b||"")+"}}_{\\hphantom{"+(r.p||"")+"}}",t+="{\\vphantom{X}}",t+="^{\\vphantom{2}\\mathllap{"+(r.b||"")+"}}",t+="_{\\vphantom{2}\\mathllap{"+(r.p||"")+"}}"),r.o&&(r.o.match(/^[+\-]/)&&(r.o="{"+r.o+"}"),t+=r.o),e.dType==="kv"?((r.d||r.q)&&(t+="{\\vphantom{X}}"),r.d&&(t+="^{"+r.d+"}"),r.q&&(t+="_{"+r.q+"}")):e.dType==="oxidation"?(r.d&&(t+="{\\vphantom{X}}",t+="^{"+r.d+"}"),r.q&&(t+="{{}}",t+="_{"+r.q+"}")):(r.q&&(t+="{{}}",t+="_{"+r.q+"}"),r.d&&(t+="{{}}",t+="^{"+r.d+"}"));break;case"rm":t="\\mathrm{"+e.p1+"}";break;case"text":e.p1.match(/[\^_]/)?(e.p1=e.p1.replace(" ","~").replace("-","\\text{-}"),t="\\mathrm{"+e.p1+"}"):t="\\text{"+e.p1+"}";break;case"roman numeral":t="\\mathrm{"+e.p1+"}";break;case"state of aggregation":t="\\mskip2mu "+M._goInner(e.p1);break;case"state of aggregation subscript":t="\\mskip1mu "+M._goInner(e.p1);break;case"bond":if(t=M._getBond(e.kind_),!t)throw["MhchemErrorBond","mhchem Error. Unknown bond type ("+e.kind_+")"];break;case"frac":var o="\\frac{"+e.p1+"}{"+e.p2+"}";t="\\mathchoice{\\textstyle"+o+"}{"+o+"}{"+o+"}{"+o+"}";break;case"pu-frac":var s="\\frac{"+M._goInner(e.p1)+"}{"+M._goInner(e.p2)+"}";t="\\mathchoice{\\textstyle"+s+"}{"+s+"}{"+s+"}{"+s+"}";break;case"tex-math":t=e.p1+" ";break;case"frac-ce":t="\\frac{"+M._goInner(e.p1)+"}{"+M._goInner(e.p2)+"}";break;case"overset":t="\\overset{"+M._goInner(e.p1)+"}{"+M._goInner(e.p2)+"}";break;case"underset":t="\\underset{"+M._goInner(e.p1)+"}{"+M._goInner(e.p2)+"}";break;case"underbrace":t="\\underbrace{"+M._goInner(e.p1)+"}_{"+M._goInner(e.p2)+"}";break;case"color":t="{\\color{"+e.color1+"}{"+M._goInner(e.color2)+"}}";break;case"color0":t="\\color{"+e.color+"}";break;case"arrow":var i={rd:M._goInner(e.rd),rq:M._goInner(e.rq)},l=M._getArrow(e.r);i.rq&&(l+="[{\\rm "+i.rq+"}]"),i.rd?l+="{\\rm "+i.rd+"}":l+="{}",t=l;break;case"operator":t=M._getOperator(e.kind_);break;case"1st-level escape":t=e.p1+" ";break;case"space":t=" ";break;case"entitySkip":t="~";break;case"pu-space-1":t="~";break;case"pu-space-2":t="\\mkern3mu ";break;case"1000 separator":t="\\mkern2mu ";break;case"commaDecimal":t="{,}";break;case"comma enumeration L":t="{"+e.p1+"}\\mkern6mu ";break;case"comma enumeration M":t="{"+e.p1+"}\\mkern3mu ";break;case"comma enumeration S":t="{"+e.p1+"}\\mkern1mu ";break;case"hyphen":t="\\text{-}";break;case"addition compound":t="\\,{\\cdot}\\,";break;case"electron dot":t="\\mkern1mu \\text{\\textbullet}\\mkern1mu ";break;case"KV x":t="{\\times}";break;case"prime":t="\\prime ";break;case"cdot":t="\\cdot ";break;case"tight cdot":t="\\mkern1mu{\\cdot}\\mkern1mu ";break;case"times":t="\\times ";break;case"circa":t="{\\sim}";break;case"^":t="uparrow";break;case"v":t="downarrow";break;case"ellipsis":t="\\ldots ";break;case"/":t="/";break;case" / ":t="\\,/\\,";break;default:throw["MhchemBugT","mhchem bug T. Please report."]}return t},_getArrow:function(e){switch(e){case"->":return"\\yields";case"\u2192":return"\\yields";case"\u27F6":return"\\yields";case"<-":return"\\yieldsLeft";case"<->":return"\\mesomerism";case"<-->":return"\\yieldsLeftRight";case"<=>":return"\\equilibrium";case"\u21CC":return"\\equilibrium";case"<=>>":return"\\equilibriumRight";case"<<=>":return"\\equilibriumLeft";default:throw["MhchemBugT","mhchem bug T. Please report."]}},_getBond:function(e){switch(e){case"-":return"{-}";case"1":return"{-}";case"=":return"{=}";case"2":return"{=}";case"#":return"{\\equiv}";case"3":return"{\\equiv}";case"~":return"{\\tripleDash}";case"~-":return"{\\tripleDashOverLine}";case"~=":return"{\\tripleDashOverDoubleLine}";case"~--":return"{\\tripleDashOverDoubleLine}";case"-~-":return"{\\tripleDashBetweenDoubleLine}";case"...":return"{{\\cdot}{\\cdot}{\\cdot}}";case"....":return"{{\\cdot}{\\cdot}{\\cdot}{\\cdot}}";case"->":return"{\\rightarrow}";case"<-":return"{\\leftarrow}";case"<":return"{<}";case">":return"{>}";default:throw["MhchemBugT","mhchem bug T. Please report."]}},_getOperator:function(e){switch(e){case"+":return" {}+{} ";case"-":return" {}-{} ";case"=":return" {}={} ";case"<":return" {}<{} ";case">":return" {}>{} ";case"<<":return" {}\\ll{} ";case">>":return" {}\\gg{} ";case"\\pm":return" {}\\pm{} ";case"\\approx":return" {}\\approx{} ";case"$\\approx$":return" {}\\approx{} ";case"v":return" \\downarrow{} ";case"(v)":return" \\downarrow{} ";case"^":return" \\uparrow{} ";case"(^)":return" \\uparrow{} ";default:throw["MhchemBugT","mhchem bug T. Please report."]}}};c("\\darr","\\downarrow");c("\\dArr","\\Downarrow");c("\\Darr","\\Downarrow");c("\\lang","\\langle");c("\\rang","\\rangle");c("\\uarr","\\uparrow");c("\\uArr","\\Uparrow");c("\\Uarr","\\Uparrow");c("\\N","\\mathbb{N}");c("\\R","\\mathbb{R}");c("\\Z","\\mathbb{Z}");c("\\alef","\\aleph");c("\\alefsym","\\aleph");c("\\bull","\\bullet");c("\\clubs","\\clubsuit");c("\\cnums","\\mathbb{C}");c("\\Complex","\\mathbb{C}");c("\\Dagger","\\ddagger");c("\\diamonds","\\diamondsuit");c("\\empty","\\emptyset");c("\\exist","\\exists");c("\\harr","\\leftrightarrow");c("\\hArr","\\Leftrightarrow");c("\\Harr","\\Leftrightarrow");c("\\hearts","\\heartsuit");c("\\image","\\Im");c("\\infin","\\infty");c("\\isin","\\in");c("\\larr","\\leftarrow");c("\\lArr","\\Leftarrow");c("\\Larr","\\Leftarrow");c("\\lrarr","\\leftrightarrow");c("\\lrArr","\\Leftrightarrow");c("\\Lrarr","\\Leftrightarrow");c("\\natnums","\\mathbb{N}");c("\\plusmn","\\pm");c("\\rarr","\\rightarrow");c("\\rArr","\\Rightarrow");c("\\Rarr","\\Rightarrow");c("\\real","\\Re");c("\\reals","\\mathbb{R}");c("\\Reals","\\mathbb{R}");c("\\sdot","\\cdot");c("\\sect","\\S");c("\\spades","\\spadesuit");c("\\sub","\\subset");c("\\sube","\\subseteq");c("\\supe","\\supseteq");c("\\thetasym","\\vartheta");c("\\weierp","\\wp");c("\\quantity","{\\left\\{ #1 \\right\\}}");c("\\qty","{\\left\\{ #1 \\right\\}}");c("\\pqty","{\\left( #1 \\right)}");c("\\bqty","{\\left[ #1 \\right]}");c("\\vqty","{\\left\\vert #1 \\right\\vert}");c("\\Bqty","{\\left\\{ #1 \\right\\}}");c("\\absolutevalue","{\\left\\vert #1 \\right\\vert}");c("\\abs","{\\left\\vert #1 \\right\\vert}");c("\\norm","{\\left\\Vert #1 \\right\\Vert}");c("\\evaluated","{\\left.#1 \\right\\vert}");c("\\eval","{\\left.#1 \\right\\vert}");c("\\order","{\\mathcal{O} \\left( #1 \\right)}");c("\\commutator","{\\left[ #1 , #2 \\right]}");c("\\comm","{\\left[ #1 , #2 \\right]}");c("\\anticommutator","{\\left\\{ #1 , #2 \\right\\}}");c("\\acomm","{\\left\\{ #1 , #2 \\right\\}}");c("\\poissonbracket","{\\left\\{ #1 , #2 \\right\\}}");c("\\pb","{\\left\\{ #1 , #2 \\right\\}}");c("\\vectorbold","{\\boldsymbol{ #1 }}");c("\\vb","{\\boldsymbol{ #1 }}");c("\\vectorarrow","{\\vec{\\boldsymbol{ #1 }}}");c("\\va","{\\vec{\\boldsymbol{ #1 }}}");c("\\vectorunit","{{\\boldsymbol{\\hat{ #1 }}}}");c("\\vu","{{\\boldsymbol{\\hat{ #1 }}}}");c("\\dotproduct","\\mathbin{\\boldsymbol\\cdot}");c("\\vdot","{\\boldsymbol\\cdot}");c("\\crossproduct","\\mathbin{\\boldsymbol\\times}");c("\\cross","\\mathbin{\\boldsymbol\\times}");c("\\cp","\\mathbin{\\boldsymbol\\times}");c("\\gradient","{\\boldsymbol\\nabla}");c("\\grad","{\\boldsymbol\\nabla}");c("\\divergence","{\\grad\\vdot}");c("\\curl","{\\grad\\cross}");c("\\laplacian","\\nabla^2");c("\\tr","{\\operatorname{tr}}");c("\\Tr","{\\operatorname{Tr}}");c("\\rank","{\\operatorname{rank}}");c("\\erf","{\\operatorname{erf}}");c("\\Res","{\\operatorname{Res}}");c("\\principalvalue","{\\mathcal{P}}");c("\\pv","{\\mathcal{P}}");c("\\PV","{\\operatorname{P.V.}}");c("\\qqtext","{\\quad\\text{ #1 }\\quad}");c("\\qq","{\\quad\\text{ #1 }\\quad}");c("\\qcomma","{\\text{,}\\quad}");c("\\qc","{\\text{,}\\quad}");c("\\qcc","{\\quad\\text{c.c.}\\quad}");c("\\qif","{\\quad\\text{if}\\quad}");c("\\qthen","{\\quad\\text{then}\\quad}");c("\\qelse","{\\quad\\text{else}\\quad}");c("\\qotherwise","{\\quad\\text{otherwise}\\quad}");c("\\qunless","{\\quad\\text{unless}\\quad}");c("\\qgiven","{\\quad\\text{given}\\quad}");c("\\qusing","{\\quad\\text{using}\\quad}");c("\\qassume","{\\quad\\text{assume}\\quad}");c("\\qsince","{\\quad\\text{since}\\quad}");c("\\qlet","{\\quad\\text{let}\\quad}");c("\\qfor","{\\quad\\text{for}\\quad}");c("\\qall","{\\quad\\text{all}\\quad}");c("\\qeven","{\\quad\\text{even}\\quad}");c("\\qodd","{\\quad\\text{odd}\\quad}");c("\\qinteger","{\\quad\\text{integer}\\quad}");c("\\qand","{\\quad\\text{and}\\quad}");c("\\qor","{\\quad\\text{or}\\quad}");c("\\qas","{\\quad\\text{as}\\quad}");c("\\qin","{\\quad\\text{in}\\quad}");c("\\differential","{\\text{d}}");c("\\dd","{\\text{d}}");c("\\derivative","{\\frac{\\text{d}{ #1 }}{\\text{d}{ #2 }}}");c("\\dv","{\\frac{\\text{d}{ #1 }}{\\text{d}{ #2 }}}");c("\\partialderivative","{\\frac{\\partial{ #1 }}{\\partial{ #2 }}}");c("\\variation","{\\delta}");c("\\var","{\\delta}");c("\\functionalderivative","{\\frac{\\delta{ #1 }}{\\delta{ #2 }}}");c("\\fdv","{\\frac{\\delta{ #1 }}{\\delta{ #2 }}}");c("\\innerproduct","{\\left\\langle {#1} \\mid { #2} \\right\\rangle}");c("\\outerproduct","{\\left\\vert { #1 } \\right\\rangle\\left\\langle { #2} \\right\\vert}");c("\\dyad","{\\left\\vert { #1 } \\right\\rangle\\left\\langle { #2} \\right\\vert}");c("\\ketbra","{\\left\\vert { #1 } \\right\\rangle\\left\\langle { #2} \\right\\vert}");c("\\op","{\\left\\vert { #1 } \\right\\rangle\\left\\langle { #2} \\right\\vert}");c("\\expectationvalue","{\\left\\langle {#1 } \\right\\rangle}");c("\\expval","{\\left\\langle {#1 } \\right\\rangle}");c("\\ev","{\\left\\langle {#1 } \\right\\rangle}");c("\\matrixelement","{\\left\\langle{ #1 }\\right\\vert{ #2 }\\left\\vert{#3}\\right\\rangle}");c("\\matrixel","{\\left\\langle{ #1 }\\right\\vert{ #2 }\\left\\vert{#3}\\right\\rangle}");c("\\mel","{\\left\\langle{ #1 }\\right\\vert{ #2 }\\left\\vert{#3}\\right\\rangle}");function _t(e){let t=[];e.consumeSpaces();let r=e.fetch().text;for(r==="\\relax"&&(e.consume(),e.consumeSpaces(),r=e.fetch().text);r==="\\hline"||r==="\\hdashline";)e.consume(),t.push(r==="\\hdashline"),e.consumeSpaces(),r=e.fetch().text;return t}var ke=e=>{if(!e.parser.settings.displayMode)throw new w(`{${e.envName}} can be used only in display mode.`)},pn=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/,or=e=>{let t=e.get("\\arraystretch");typeof t!="string"&&(t=He(t.tokens)),t=isNaN(t)?null:Number(t);let r=e.get("\\arraycolsep");typeof r!="string"&&(r=He(r.tokens));let o=pn.exec(r),s=o?{number:+(o[1]+o[2]),unit:o[3]}:null;return[t,s]},Tt=e=>{let t="";for(let r=0;r<e.length;r++)if(e[r].type==="label"){if(t)throw new w("Multiple \\labels in one row");t=e[r].string}return t};function ot(e){if(e.indexOf("ed")===-1)return e.indexOf("*")===-1}function re(e,{cols:t,envClasses:r,autoTag:o,singleRow:s,emptySingleRow:i,maxNumCols:l,leqno:u,arraystretch:h,arraycolsep:x},A){e.gullet.beginGroup(),s||e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();let q=[],b=[q],k=[],T=[],$=[],j=o!=null?[]:void 0;function G(){o&&e.gullet.macros.set("\\@eqnsw","1",!0)}function E(){j&&(e.gullet.macros.get("\\df@tag")?(j.push(e.subparse([new Z("\\df@tag")])),e.gullet.macros.set("\\df@tag",void 0,!0)):j.push(!!o&&e.gullet.macros.get("\\@eqnsw")==="1"))}for(G(),$.push(_t(e));;){let H=e.parseExpression(!1,s?"\\end":"\\\\");e.gullet.endGroup(),e.gullet.beginGroup(),H={type:"ordgroup",mode:e.mode,body:H,semisimple:!0},q.push(H);let J=e.fetch().text;if(J==="&"){if(l&&q.length===l)if(r.includes("array")){if(e.settings.strict)throw new w("Too few columns specified in the {array} column argument.",e.nextToken)}else throw l===2?new w("The split environment accepts no more than two columns",e.nextToken):new w("The equation environment accepts only one column",e.nextToken);e.consume()}else if(J==="\\end"){E(),q.length===1&&H.body.length===0&&(b.length>1||!i)&&b.pop(),T.push(Tt(H.body)),$.length<b.length+1&&$.push([]);break}else if(J==="\\\\"){e.consume();let le;e.gullet.future().text!==" "&&(le=e.parseSizeGroup(!0)),k.push(le?le.value:null),E(),T.push(Tt(H.body)),$.push(_t(e)),q=[],b.push(q),G()}else throw new w("Expected & or \\\\ or \\cr or \\end",e.nextToken)}return e.gullet.endGroup(),e.gullet.endGroup(),{type:"array",mode:e.mode,body:b,cols:t,rowGaps:k,hLinesBeforeRow:$,envClasses:r,autoTag:o,scriptLevel:A,tags:j,labels:T,leqno:u,arraystretch:h,arraycolsep:x}}function ar(e){return e.slice(0,1)==="d"?"display":"text"}var fn={c:"center ",l:"left ",r:"right "},Ct=e=>{let t=new p.MathNode("mtd",[]);return t.style={padding:"0",width:"50%"},e.envClasses.includes("multline")&&(t.style.width="7.5%"),t},Y=function(e,t){let r=[],o=e.body.length,s=e.hLinesBeforeRow;for(let u=0;u<o;u++){let h=e.body[u],x=[],A=e.scriptLevel==="text"?F.TEXT:e.scriptLevel==="script"?F.SCRIPT:F.DISPLAY;for(let T=0;T<h.length;T++){let $=new p.MathNode("mtd",[O(h[T],t.withLevel(A))]);if(e.envClasses.includes("multline")){let j=u===0?"left":u===o-1?"right":"center";$.setAttribute("columnalign",j),j!=="center"&&$.classes.push("tml-"+j)}x.push($)}let q=e.body[0].length;for(let T=0;T<q-h.length;T++)x.push(new p.MathNode("mtd",[],t));if(e.autoTag){let T=e.tags[u],$;T===!0?$=new p.MathNode("mtext",[new De(["tml-eqn"])]):T===!1?$=new p.MathNode("mtext",[],[]):($=te(T[0].body,t.withLevel(A),!0),$=Ee($),$.classes=["tml-tag"]),$&&(x.unshift(Ct(e)),x.push(Ct(e)),e.leqno?(x[0].children.push($),x[0].classes.push("tml-left")):(x[x.length-1].children.push($),x[x.length-1].classes.push("tml-right")))}let b=new p.MathNode("mtr",x,[]),k=e.labels.shift();k&&e.tags&&e.tags[u]&&(b.setAttribute("id",k),Array.isArray(e.tags[u])&&b.classes.push("tml-tageqn")),u===0&&s[0].length>0&&(s[0].length===2?b.children.forEach(T=>{T.style.borderTop="0.15em double"}):b.children.forEach(T=>{T.style.borderTop=s[0][0]?"0.06em dashed":"0.06em solid"})),s[u+1].length>0&&(s[u+1].length===2?b.children.forEach(T=>{T.style.borderBottom="0.15em double"}):b.children.forEach(T=>{T.style.borderBottom=s[u+1][0]?"0.06em dashed":"0.06em solid"})),r.push(b)}if(e.envClasses.length>0){if(e.arraystretch&&e.arraystretch!==1){let b=String(1.4*e.arraystretch-.8)+"ex";for(let k=0;k<r.length;k++)for(let T=0;T<r[k].children.length;T++)r[k].children[T].style.paddingTop=b,r[k].children[T].style.paddingBottom=b}let u=e.envClasses.includes("abut")||e.envClasses.includes("cases")?"0":e.envClasses.includes("small")?"0.1389":e.envClasses.includes("cd")?"0.25":"0.4",h="em";if(e.arraycolsep){let b=K(e.arraycolsep,t);u=b.number.toFixed(4),h=b.unit}let x=r.length===0?0:r[0].children.length,A=(b,k)=>b===0&&k===0||b===x-1&&k===1?"0":e.envClasses[0]!=="align"?u:k===1?"0":e.autoTag?b%2?"1":"0":b%2?"0":"1";for(let b=0;b<r.length;b++)for(let k=0;k<r[b].children.length;k++)r[b].children[k].style.paddingLeft=`${A(k,0)}${h}`,r[b].children[k].style.paddingRight=`${A(k,1)}${h}`;let q=e.envClasses.includes("align")||e.envClasses.includes("alignat");for(let b=0;b<r.length;b++){let k=r[b];if(q){for(let T=0;T<k.children.length;T++)k.children[T].classes=["tml-"+(T%2?"left":"right")];if(e.autoTag){let T=e.leqno?0:k.children.length-1;k.children[T].classes=["tml-"+(e.leqno?"left":"right")]}}if(k.children.length>1&&e.envClasses.includes("cases")&&(k.children[1].style.paddingLeft="1em"),e.envClasses.includes("cases")||e.envClasses.includes("subarray"))for(let T of k.children)T.classes.push("tml-left")}}else for(let u=0;u<r.length;u++)r[u].children[0].style.paddingLeft="0em",r[u].children.length===r[0].children.length&&(r[u].children[r[u].children.length-1].style.paddingRight="0em");let i=new p.MathNode("mtable",r);e.envClasses.length>0&&(e.envClasses.includes("jot")?i.classes.push("tml-jot"):e.envClasses.includes("small")&&i.classes.push("tml-small")),e.scriptLevel==="display"&&i.setAttribute("displaystyle","true"),(e.autoTag||e.envClasses.includes("multline"))&&(i.style.width="100%");let l="";if(e.cols&&e.cols.length>0){let u=e.cols,h=!1,x=0,A=u.length;for(;u[x].type==="separator";)x+=1;for(;u[A-1].type==="separator";)A-=1;if(u[0].type==="separator"){let b=u[1].type==="separator"?"0.15em double":u[0].separator==="|"?"0.06em solid ":"0.06em dashed ";for(let k of i.children)k.children[0].style.borderLeft=b}let q=e.autoTag?0:-1;for(let b=x;b<A;b++)if(u[b].type==="align"){let k=fn[u[b].align];l+=k,q+=1;for(let T of i.children)k.trim()!=="center"&&q<T.children.length&&(T.children[q].classes=["tml-"+k.trim()]);h=!0}else if(u[b].type==="separator"){if(h){let k=u[b+1].type==="separator"?"0.15em double":u[b].separator==="|"?"0.06em solid":"0.06em dashed";for(let T of i.children)q<T.children.length&&(T.children[q].style.borderRight=k)}h=!1}if(u[u.length-1].type==="separator"){let b=u[u.length-2].type==="separator"?"0.15em double":u[u.length-1].separator==="|"?"0.06em solid":"0.06em dashed";for(let k of i.children)k.children[k.children.length-1].style.borderRight=b,k.children[k.children.length-1].style.paddingRight="0.4em"}}return e.autoTag&&(l="left "+(l.length>0?l:"center ")+"right "),l&&i.setAttribute("columnalign",l.trim()),e.envClasses.includes("small")&&(i=new p.MathNode("mstyle",[i]),i.setAttribute("scriptlevel","1")),i},sr=function(e,t){e.envName.indexOf("ed")===-1&&ke(e);let r=e.envName==="split",o=[],s=re(e.parser,{cols:o,emptySingleRow:!0,autoTag:r?void 0:ot(e.envName),envClasses:["abut","jot"],maxNumCols:e.envName==="split"?2:void 0,leqno:e.parser.settings.leqno},"display"),i,l=0,u=e.envName.indexOf("at")>-1;if(t[0]&&u){let h="";for(let x=0;x<t[0].body.length;x++){let A=C(t[0].body[x],"textord");h+=A.text}if(isNaN(h))throw new w("The alignat enviroment requires a numeric first argument.");i=Number(h),l=i*2}s.body.forEach(function(h){if(u){let x=h.length/2;if(i<x)throw new w(`Too many math in a row: expected ${i}, but got ${x}`,h[0])}else l<h.length&&(l=h.length)});for(let h=0;h<l;++h){let x="r";h%2===1&&(x="l"),o[h]={type:"align",align:x}}return e.envName==="split"||(u?s.envClasses.push("alignat"):s.envClasses[0]="align"),s};X({type:"array",names:["array","darray"],props:{numArgs:1},handler(e,t){let s=(ze(t[0])?[t[0]]:C(t[0],"ordgroup").body).map(function(h){let A=et(h).text;if("lcr".indexOf(A)!==-1)return{type:"align",align:A};if(A==="|")return{type:"separator",separator:"|"};if(A===":")return{type:"separator",separator:":"};throw new w("Unknown column alignment: "+A,h)}),[i,l]=or(e.parser.gullet.macros),u={cols:s,envClasses:["array"],maxNumCols:s.length,arraystretch:i,arraycolsep:l};return re(e.parser,u,ar(e.envName))},mathmlBuilder:Y});X({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(e){let t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],r="c",o={envClasses:[],cols:[]};if(e.envName.charAt(e.envName.length-1)==="*"){let u=e.parser;if(u.consumeSpaces(),u.fetch().text==="["){if(u.consume(),u.consumeSpaces(),r=u.fetch().text,"lcr".indexOf(r)===-1)throw new w("Expected l or c or r",u.nextToken);u.consume(),u.consumeSpaces(),u.expect("]"),u.consume(),o.cols=[]}}let s=re(e.parser,o,"text");s.cols=new Array(s.body[0].length).fill({type:"align",align:r});let[i,l]=or(e.parser.gullet.macros);return t?{type:"leftright",mode:e.mode,body:[s],left:t[0],right:t[1],rightColor:void 0,arraystretch:i,arraycolsep:l}:s},mathmlBuilder:Y});X({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(e){let t={type:"small"},r=re(e.parser,t,"script");return r.envClasses=["small"],r},mathmlBuilder:Y});X({type:"array",names:["subarray"],props:{numArgs:1},handler(e,t){let s=(ze(t[0])?[t[0]]:C(t[0],"ordgroup").body).map(function(l){let h=et(l).text;if("lc".indexOf(h)!==-1)return{type:"align",align:h};throw new w("Unknown column alignment: "+h,l)});if(s.length>1)throw new w("{subarray} can contain only one column");let i={cols:s,envClasses:["small"]};if(i=re(e.parser,i,"script"),i.body.length>0&&i.body[0].length>1)throw new w("{subarray} can contain only one column");return i},mathmlBuilder:Y});X({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(e){let t={cols:[],envClasses:["cases"]},r=re(e.parser,t,ar(e.envName));return{type:"leftright",mode:e.mode,body:[r],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},mathmlBuilder:Y});X({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:sr,mathmlBuilder:Y});X({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:sr,mathmlBuilder:Y});X({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(e){e.envName!=="gathered"&&ke(e);let t={cols:[],envClasses:["abut","jot"],autoTag:ot(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return re(e.parser,t,"display")},mathmlBuilder:Y});X({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(e){ke(e);let t={autoTag:ot(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,envClasses:["align"],leqno:e.parser.settings.leqno};return re(e.parser,t,"display")},mathmlBuilder:Y});X({type:"array",names:["multline","multline*"],props:{numArgs:0},handler(e){ke(e);let t={autoTag:e.envName==="multline",maxNumCols:1,envClasses:["jot","multline"],leqno:e.parser.settings.leqno};return re(e.parser,t,"display")},mathmlBuilder:Y});X({type:"array",names:["CD"],props:{numArgs:0},handler(e){return ke(e),rn(e.parser)},mathmlBuilder:Y});S({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(e,t){throw new w(`${e.funcName} valid only within array environment`)}});var Dt=Qt;S({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler({parser:e,funcName:t},r){let o=r[0];if(o.type!=="ordgroup")throw new w("Invalid environment name",o);let s="";for(let i=0;i<o.body.length;++i)s+=C(o.body[i],"textord").text;if(t==="\\begin"){if(!Object.prototype.hasOwnProperty.call(Dt,s))throw new w("No such environment: "+s,o);let i=Dt[s],{args:l,optArgs:u}=e.parseArguments("\\begin{"+s+"}",i),h={mode:e.mode,envName:s,parser:e},x=i.handler(h,l,u);e.expect("\\end",!1);let A=e.nextToken,q=C(e.parseFunction(),"environment");if(q.name!==s)throw new w(`Mismatch: \\begin{${s}} matched by \\end{${q.name}}`,A);return x}return{type:"environment",mode:e.mode,name:s,nameGroup:o}}});S({type:"envTag",names:["\\env@tag"],props:{numArgs:1,argTypes:["math"]},handler({parser:e},t){return{type:"envTag",mode:e.mode,body:t[0]}},mathmlBuilder(e,t){return new p.MathNode("mrow")}});S({type:"noTag",names:["\\env@notag"],props:{numArgs:0},handler({parser:e}){return{type:"noTag",mode:e.mode}},mathmlBuilder(e,t){return new p.MathNode("mrow")}});var gn=(e,t)=>{if(t!=="mathrm"||e.body.type!=="ordgroup"||e.body.body.length===1||e.body.body[0].type!=="mathord")return!1;for(let r=1;r<e.body.body.length;r++){let o=e.body.body[r].type;if(!(o==="mathord"||o==="textord"&&!isNaN(e.body.body[r].text)))return!1}return!0},ir=(e,t)=>{let r=e.font,o=t.withFont(r),s=O(e.body,o);if(s.children.length===0)return s;if(r==="boldsymbol"&&["mo","mpadded","mrow"].includes(s.type))return s.style.fontWeight="bold",s;if(gn(e,r)){let u=s.children[0].children[0];delete u.attributes.mathvariant;for(let x=1;x<s.children.length;x++)u.children[0].text+=s.children[x].type==="mn"?s.children[x].children[0].text:s.children[x].children[0].children[0].text;let h=new p.MathNode("mtext",new p.TextNode("\u200B"));return new p.MathNode("mrow",[h,u])}let i=s.children[0].type==="mo";for(let u=1;u<s.children.length;u++)s.children[u].type==="mo"&&r==="boldsymbol"&&(s.children[u].style.fontWeight="bold"),s.children[u].type!=="mi"&&(i=!1),(s.children[u].attributes&&s.children[u].attributes.mathvariant||"")!=="normal"&&(i=!1);if(!i)return s;let l=s.children[0];for(let u=1;u<s.children.length;u++)l.children.push(s.children[u].children[0]);if(l.attributes.mathvariant&&l.attributes.mathvariant==="normal"){let u=new p.MathNode("mtext",new p.TextNode("\u200B"));return new p.MathNode("mrow",[u,l])}return l},Bt={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};S({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\up@greek","\\boldsymbol","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathsfit","\\mathtt","\\Bbb","\\bm","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:({parser:e,funcName:t},r)=>{let o=fe(r[0]),s=t;return s in Bt&&(s=Bt[s]),{type:"font",mode:e.mode,font:s.slice(1),body:o}},mathmlBuilder:ir});S({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:({parser:e,funcName:t,breakOnTokenText:r},o)=>{let{mode:s}=e,i=e.parseExpression(!0,r,!0),l=`math${t.slice(1)}`;return{type:"font",mode:s,font:l,body:{type:"ordgroup",mode:e.mode,body:i}}},mathmlBuilder:ir});var Nt=["display","text","script","scriptscript"],bn={auto:-1,display:0,text:0,script:1,scriptscript:2},at=(e,t)=>{let r=e.scriptLevel==="auto"?t.incrementLevel():e.scriptLevel==="display"?t.withLevel(F.TEXT):e.scriptLevel==="text"?t.withLevel(F.SCRIPT):t.withLevel(F.SCRIPTSCRIPT),o=O(e.numer,r),s=O(e.denom,r);t.level===3&&(o.style.mathDepth="2",o.setAttribute("scriptlevel","2"),s.style.mathDepth="2",s.setAttribute("scriptlevel","2"));let i=new p.MathNode("mfrac",[o,s]);if(!e.hasBarLine)i.setAttribute("linethickness","0px");else if(e.barSize){let l=K(e.barSize,t);i.setAttribute("linethickness",l.number+l.unit)}if(e.leftDelim!=null||e.rightDelim!=null){let l=[];if(e.leftDelim!=null){let u=new p.MathNode("mo",[new p.TextNode(e.leftDelim.replace("\\",""))]);u.setAttribute("fence","true"),l.push(u)}if(l.push(i),e.rightDelim!=null){let u=new p.MathNode("mo",[new p.TextNode(e.rightDelim.replace("\\",""))]);u.setAttribute("fence","true"),l.push(u)}i=Qe(l)}return e.scriptLevel!=="auto"&&(i=new p.MathNode("mstyle",[i]),i.setAttribute("displaystyle",String(e.scriptLevel==="display")),i.setAttribute("scriptlevel",bn[e.scriptLevel])),i};S({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:({parser:e,funcName:t},r)=>{let o=r[0],s=r[1],i=!1,l=null,u=null,h="auto";switch(t){case"\\dfrac":case"\\frac":case"\\tfrac":i=!0;break;case"\\\\atopfrac":i=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":l="(",u=")";break;case"\\\\bracefrac":l="\\{",u="\\}";break;case"\\\\brackfrac":l="[",u="]";break;default:throw new Error("Unrecognized genfrac command")}switch(t){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text";break}return{type:"genfrac",mode:e.mode,continued:!1,numer:o,denom:s,hasBarLine:i,leftDelim:l,rightDelim:u,scriptLevel:h,barSize:null}},mathmlBuilder:at});S({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:({parser:e,funcName:t},r)=>{let o=r[0],s=r[1];return{type:"genfrac",mode:e.mode,continued:!0,numer:o,denom:s,hasBarLine:!0,leftDelim:null,rightDelim:null,scriptLevel:"display",barSize:null}}});S({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler({parser:e,funcName:t,token:r}){let o;switch(t){case"\\over":o="\\frac";break;case"\\choose":o="\\binom";break;case"\\atop":o="\\\\atopfrac";break;case"\\brace":o="\\\\bracefrac";break;case"\\brack":o="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:o,token:r}}});var Ot=function(e){let t=null;return e.length>0&&(t=e,t=t==="."?null:t),t};S({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler({parser:e},t){let r=t[4],o=t[5],s=fe(t[0]),i=s.type==="atom"&&s.family==="open"?Ot(s.text):null,l=fe(t[1]),u=l.type==="atom"&&l.family==="close"?Ot(l.text):null,h=C(t[2],"size"),x,A=null;h.isBlank?x=!0:(A=h.value,x=A.number>0);let q="auto",b=t[3];if(b.type==="ordgroup"){if(b.body.length>0){let k=C(b.body[0],"textord");q=Nt[Number(k.text)]}}else b=C(b,"textord"),q=Nt[Number(b.text)];return{type:"genfrac",mode:e.mode,numer:r,denom:o,continued:!1,hasBarLine:x,barSize:A,leftDelim:i,rightDelim:u,scriptLevel:q}},mathmlBuilder:at});S({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler({parser:e,funcName:t,token:r},o){return{type:"infix",mode:e.mode,replaceWith:"\\\\abovefrac",barSize:C(o[0],"size").value,token:r}}});S({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:({parser:e,funcName:t},r)=>{let o=r[0],s=_r(C(r[1],"infix").barSize),i=r[2],l=s.number>0;return{type:"genfrac",mode:e.mode,numer:o,denom:i,continued:!1,hasBarLine:l,barSize:s,leftDelim:null,rightDelim:null,scriptLevel:"auto"}},mathmlBuilder:at});S({type:"hbox",names:["\\hbox"],props:{numArgs:1,argTypes:["hbox"],allowedInArgument:!0,allowedInText:!1},handler({parser:e},t){return{type:"hbox",mode:e.mode,body:z(t[0])}},mathmlBuilder(e,t){let r=t.withLevel(F.TEXT),o=te(e.body,r);return Ee(o)}});var xn=(e,t)=>{let r=Me.mathMLnode(e.label);return r.style["math-depth"]=0,new p.MathNode(e.isOver?"mover":"munder",[O(e.base,t),r])};S({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler({parser:e,funcName:t},r){return{type:"horizBrace",mode:e.mode,label:t,isOver:/^\\over/.test(t),base:r[0]}},mathmlBuilder:xn});S({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:({parser:e,token:t},r)=>{let o=r[1],s=C(r[0],"url").url;if(!e.settings.isTrusted({command:"\\href",url:s}))throw new w('Function "\\href" is not trusted',t);return{type:"href",mode:e.mode,href:s,body:z(o)}},mathmlBuilder:(e,t)=>{let r=new R("math",[te(e.body,t)]);return new be(e.href,[],[r])}});S({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:({parser:e,token:t},r)=>{let o=C(r[0],"url").url;if(!e.settings.isTrusted({command:"\\url",url:o}))throw new w('Function "\\url" is not trusted',t);let s=[];for(let l=0;l<o.length;l++){let u=o[l];u==="~"&&(u="\\textasciitilde"),s.push({type:"textord",mode:"text",text:u})}let i={type:"text",mode:e.mode,font:"\\texttt",body:s};return{type:"href",mode:e.mode,href:o,body:z(i)}}});S({type:"html",names:["\\class","\\id","\\style","\\data"],props:{numArgs:2,argTypes:["raw","original"],allowedInText:!0},handler:({parser:e,funcName:t,token:r},o)=>{let s=C(o[0],"raw").string,i=o[1];if(e.settings.strict)throw new w(`Function "${t}" is disabled in strict mode`,r);let l,u={};switch(t){case"\\class":u.class=s,l={command:"\\class",class:s};break;case"\\id":u.id=s,l={command:"\\id",id:s};break;case"\\style":u.style=s,l={command:"\\style",style:s};break;case"\\data":{let h=s.split(",");for(let x=0;x<h.length;x++){let A=h[x].split("=");if(A.length!==2)throw new w("Error parsing key-value for \\data");u["data-"+A[0].trim()]=A[1].trim()}l={command:"\\data",attributes:u};break}default:throw new Error("Unrecognized html command")}if(!e.settings.isTrusted(l))throw new w(`Function "${t}" is not trusted`,r);return{type:"html",mode:e.mode,attributes:u,body:z(i)}},mathmlBuilder:(e,t)=>{let r=te(e.body,t),o=[];e.attributes.class&&o.push(...e.attributes.class.trim().split(/\s+/)),r.classes=o;for(let s in e.attributes)s!=="class"&&Object.prototype.hasOwnProperty.call(e.attributes,s)&&r.setAttribute(s,e.attributes[s]);return r}});var Pe=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};{let t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new w("Invalid size: '"+e+"' in \\includegraphics");let r={number:+(t[1]+t[2]),unit:t[3]};if(!Zt(r))throw new w("Invalid unit: '"+r.unit+"' in \\includegraphics.");return r}};S({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:({parser:e,token:t},r,o)=>{let s={number:0,unit:"em"},i={number:.9,unit:"em"},l={number:0,unit:"em"},u="";if(o[0]){let A=C(o[0],"raw").string.split(",");for(let q=0;q<A.length;q++){let b=A[q].split("=");if(b.length===2){let k=b[1].trim();switch(b[0].trim()){case"alt":u=k;break;case"width":s=Pe(k);break;case"height":i=Pe(k);break;case"totalheight":l=Pe(k);break;default:throw new w("Invalid key: '"+b[0]+"' in \\includegraphics.")}}}}let h=C(r[0],"url").url;if(u===""&&(u=h,u=u.replace(/^.*[\\/]/,""),u=u.substring(0,u.lastIndexOf("."))),!e.settings.isTrusted({command:"\\includegraphics",url:h}))throw new w('Function "\\includegraphics" is not trusted',t);return{type:"includegraphics",mode:e.mode,alt:u,width:s,height:i,totalheight:l,src:h}},mathmlBuilder:(e,t)=>{let r=K(e.height,t),o={number:0,unit:"em"};e.totalheight.number>0&&e.totalheight.unit===r.unit&&e.totalheight.number>r.number&&(o.number=e.totalheight.number-r.number,o.unit=r.unit);let s=0;e.width.number>0&&(s=K(e.width,t));let i={height:r.number+o.number+"em"};s.number>0&&(i.width=s.number+s.unit),o.number>0&&(i.verticalAlign=-o.number+o.unit);let l=new Re(e.src,e.alt,i);return l.height=r,l.depth=o,new p.MathNode("mtext",[l])}});S({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler({parser:e,funcName:t,token:r},o){let s=C(o[0],"size");if(e.settings.strict){let i=t[1]==="m",l=s.value.unit==="mu";if(i){if(!l)throw new w(`LaTeX's ${t} supports only mu units, not ${s.value.unit} units`,r);if(e.mode!=="math")throw new w(`LaTeX's ${t} works only in math mode`,r)}else if(l)throw new w(`LaTeX's ${t} doesn't support mu units`,r)}return{type:"kern",mode:e.mode,dimension:s.value}},mathmlBuilder(e,t){let r=K(e.dimension,t),o=r.unit==="em"?lr(r.number):"";if(e.mode==="text"&&o.length>0){let s=new p.TextNode(o);return new p.MathNode("mtext",[s])}else{let s=new p.MathNode("mspace");return s.setAttribute("width",r.number+r.unit),r.number<0&&(s.style.marginLeft=r.number+r.unit),s}}});var lr=function(e){return e>=.05555&&e<=.05556?"\u200A":e>=.1666&&e<=.1667?"\u2009":e>=.2222&&e<=.2223?"\u2005":e>=.2777&&e<=.2778?"\u2005\u200A":""},ur=/[^A-Za-z_0-9-]/g;S({type:"label",names:["\\label"],props:{numArgs:1,argTypes:["raw"]},handler({parser:e},t){return{type:"label",mode:e.mode,string:t[0].string.replace(ur,"")}},mathmlBuilder(e,t){let r=new p.MathNode("mrow",[],["tml-label"]);return e.string.length>0&&r.setLabel(e.string),r}});var yn=["\\clap","\\llap","\\rlap"];S({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap","\\clap","\\llap","\\rlap"],props:{numArgs:1,allowedInText:!0},handler:({parser:e,funcName:t,token:r},o)=>{if(yn.includes(t)){if(e.settings.strict&&e.mode!=="text")throw new w(`{${t}} can be used only in text mode. Try \\math${t.slice(1)}`,r);t=t.slice(1)}else t=t.slice(5);let s=o[0];return{type:"lap",mode:e.mode,alignment:t,body:s}},mathmlBuilder:(e,t)=>{let r;if(e.alignment==="llap"){let i=U(z(e.body),t),l=new p.MathNode("mphantom",i);r=new p.MathNode("mpadded",[l]),r.setAttribute("width","0px")}let o=O(e.body,t),s;if(e.alignment==="llap"?(o.style.position="absolute",o.style.right="0",o.style.bottom="0",s=new p.MathNode("mpadded",[r,o])):s=new p.MathNode("mpadded",[o]),e.alignment==="rlap")e.body.body.length>0&&e.body.body[0].type==="genfrac"&&s.setAttribute("lspace","0.16667em");else{let i=e.alignment==="llap"?"-1":"-0.5";s.setAttribute("lspace",i+"width"),e.alignment==="llap"?s.style.position="relative":(s.style.display="flex",s.style.justifyContent="center")}return s.setAttribute("width","0px"),s}});S({type:"ordgroup",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler({funcName:e,parser:t},r){let o=t.mode;t.switchMode("math");let s=e==="\\("?"\\)":"$",i=t.parseExpression(!1,s);return t.expect(s),t.switchMode(o),{type:"ordgroup",mode:t.mode,body:i}}});S({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){throw new w(`Mismatched ${e.funcName}`,t)}});var wn=(e,t)=>{switch(t.level){case F.DISPLAY:return e.display;case F.TEXT:return e.text;case F.SCRIPT:return e.script;case F.SCRIPTSCRIPT:return e.scriptscript;default:return e.text}};S({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:({parser:e},t)=>({type:"mathchoice",mode:e.mode,display:z(t[0]),text:z(t[1]),script:z(t[2]),scriptscript:z(t[3])}),mathmlBuilder:(e,t)=>{let r=wn(e,t);return te(r,t)}});var vn=["text","textord","mathord","atom"],ne=e=>{let t=new p.MathNode("mspace");return t.setAttribute("width",e+"em"),t};function cr(e,t){let r,o=U(e.body,t);if(e.mclass==="minner")r=new p.MathNode("mpadded",o);else if(e.mclass==="mord")e.isCharacterBox||o[0].type==="mathord"?(r=o[0],r.type="mi",r.children.length===1&&r.children[0].text&&r.children[0].text==="\u2207"&&r.setAttribute("mathvariant","normal")):r=new p.MathNode("mi",o);else{r=new p.MathNode("mrow",o),e.mustPromote?(r=o[0],r.type="mo",e.isCharacterBox&&e.body[0].text&&/[A-Za-z]/.test(e.body[0].text)&&r.setAttribute("mathvariant","italic")):r=new p.MathNode("mrow",o);let s=t.level<2;r.type==="mrow"?s&&(e.mclass==="mbin"?(r.children.unshift(ne(.2222)),r.children.push(ne(.2222))):e.mclass==="mrel"?(r.children.unshift(ne(.2778)),r.children.push(ne(.2778))):e.mclass==="mpunct"?r.children.push(ne(.1667)):e.mclass==="minner"&&(r.children.unshift(ne(.0556)),r.children.push(ne(.0556)))):e.mclass==="mbin"?(r.attributes.lspace=s?"0.2222em":"0",r.attributes.rspace=s?"0.2222em":"0"):e.mclass==="mrel"?(r.attributes.lspace=s?"0.2778em":"0",r.attributes.rspace=s?"0.2778em":"0"):e.mclass==="mpunct"?(r.attributes.lspace="0em",r.attributes.rspace=s?"0.1667em":"0"):e.mclass==="mopen"||e.mclass==="mclose"?(r.attributes.lspace="0em",r.attributes.rspace="0em"):e.mclass==="minner"&&s&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em"),e.mclass==="mopen"||e.mclass==="mclose"||(delete r.attributes.stretchy,delete r.attributes.form)}return r}S({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler({parser:e,funcName:t},r){let o=r[0],s=N.isCharacterBox(o),i=!0,l={type:"mathord",text:"",mode:e.mode},u=o.body?o.body:[o];for(let h of u)if(vn.includes(h.type))I[e.mode][h.text]?l.text+=I[e.mode][h.text].replace:h.text?l.text+=h.text:h.body&&h.body.map(x=>{l.text+=x.text});else{i=!1;break}return{type:"mclass",mode:e.mode,mclass:"m"+t.slice(5),body:z(i?l:o),isCharacterBox:s,mustPromote:i}},mathmlBuilder:cr});var kn=e=>{let t=e.type==="ordgroup"&&e.body.length?e.body[0]:e;return t.type==="atom"&&(t.family==="bin"||t.family==="rel")?"m"+t.family:"mord"};S({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler({parser:e},t){return{type:"mclass",mode:e.mode,mclass:kn(t[0]),body:z(t[1]),isCharacterBox:N.isCharacterBox(t[1])}}});S({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler({parser:e,funcName:t},r){let o=r[1],s=r[0],i={type:"op",mode:o.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,stack:!0,suppressBaseShift:t!=="\\stackrel",body:z(o)};return{type:"supsub",mode:s.mode,base:i,sup:t==="\\underset"?null:s,sub:t==="\\underset"?s:null}},mathmlBuilder:cr});var _e=(e,t,r)=>{if(!e)return r;let o=O(e,t);return o.type==="mrow"&&o.children.length===0?r:o};S({type:"multiscript",names:["\\sideset","\\pres@cript"],props:{numArgs:3},handler({parser:e,funcName:t,token:r},o){if(o[2].body.length===0)throw new w(t+"cannot parse an empty base.");let s=o[2].body[0];if(e.settings.strict&&t==="\\sideset"&&!s.symbol)throw new w("The base of \\sideset must be a big operator. Try \\prescript.");if(o[0].body.length>0&&o[0].body[0].type!=="supsub"||o[1].body.length>0&&o[1].body[0].type!=="supsub")throw new w("\\sideset can parse only subscripts and superscripts in its first two arguments",r);let i=o[0].body.length>0?o[0].body[0]:null,l=o[1].body.length>0?o[1].body[0]:null;return!i&&!l?s:i?{type:"multiscript",mode:e.mode,isSideset:t==="\\sideset",prescripts:i,postscripts:l,base:s}:{type:"styling",mode:e.mode,scriptLevel:"text",body:[{type:"supsub",mode:e.mode,base:s,sup:l.sup,sub:l.sub}]}},mathmlBuilder(e,t){let r=O(e.base,t),o=new p.MathNode("mprescripts"),s=new p.MathNode("none"),i=[],l=_e(e.prescripts.sub,t,s),u=_e(e.prescripts.sup,t,s);if(e.isSideset&&(l.setAttribute("style","text-align: left;"),u.setAttribute("style","text-align: left;")),e.postscripts){let h=_e(e.postscripts.sub,t,s),x=_e(e.postscripts.sup,t,s);i=[r,h,x,o,l,u]}else i=[r,o,l,u];return new p.MathNode("mmultiscripts",i)}});S({type:"not",names:["\\not"],props:{numArgs:1,primitive:!0,allowedInText:!1},handler({parser:e},t){let r=N.isCharacterBox(t[0]),o;return r?(o=z(t[0]),o[0].text.charAt(0)==="\\"&&(o[0].text=I.math[o[0].text].replace),o[0].text=o[0].text.slice(0,1)+"\u0338"+o[0].text.slice(1)):o=[{type:"textord",mode:"math",text:"\u0338"},{type:"kern",mode:"math",dimension:{number:-.6,unit:"em"}},t[0]],{type:"not",mode:e.mode,body:o,isCharacterBox:r}},mathmlBuilder(e,t){return e.isCharacterBox?U(e.body,t,!0)[0]:te(e.body,t)}});var An=["textord","mathord","atom"],Sn=["\\smallint"],st=["textord","mathord","ordgroup","close","leftright","font"],$t=e=>{e.attributes.lspace="0.1667em",e.attributes.rspace="0.1667em"},Ae=(e,t)=>{let r;if(e.symbol)r=new R("mo",[W(e.name,e.mode)]),Sn.includes(e.name)?r.setAttribute("largeop","false"):r.setAttribute("movablelimits","false"),e.fromMathOp&&$t(r);else if(e.body)r=new R("mo",U(e.body,t)),e.fromMathOp&&$t(r);else if(r=new R("mi",[new ae(e.name.slice(1))]),!e.parentIsSupSub){let o=new R("mo",[W("\u2061","text")]),s=[r,o];if(e.needsLeadingSpace){let i=new R("mspace");i.setAttribute("width","0.1667em"),s.unshift(i)}if(!e.isFollowedByDelimiter){let i=new R("mspace");i.setAttribute("width","0.1667em"),s.push(i)}r=new R("mrow",s)}return r},qn={"\u220F":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22C0":"\\bigwedge","\u22C1":"\\bigvee","\u22C2":"\\bigcap","\u22C3":"\\bigcup","\u2A00":"\\bigodot","\u2A01":"\\bigoplus","\u2A02":"\\bigotimes","\u2A04":"\\biguplus","\u2A05":"\\bigsqcap","\u2A06":"\\bigsqcup","\u2A03":"\\bigcupdot","\u2A07":"\\bigdoublevee","\u2A08":"\\bigdoublewedge","\u2A09":"\\bigtimes"};S({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcupplus","\\bigcupdot","\\bigcap","\\bigcup","\\bigdoublevee","\\bigdoublewedge","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcap","\\bigsqcup","\\bigtimes","\\smallint","\u220F","\u2210","\u2211","\u22C0","\u22C1","\u22C2","\u22C3","\u2A00","\u2A01","\u2A02","\u2A04","\u2A06"],props:{numArgs:0},handler:({parser:e,funcName:t},r)=>{let o=t;return o.length===1&&(o=qn[o]),{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!0,stack:!1,name:o}},mathmlBuilder:Ae});S({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:({parser:e},t)=>{let r=t[0],o=r.body?r.body:[r],s=o.length===1&&An.includes(o[0].type);return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:s,fromMathOp:!0,stack:!1,name:s?o[0].text:null,body:s?null:z(r)}},mathmlBuilder:Ae});var _n={"\u222B":"\\int","\u222C":"\\iint","\u222D":"\\iiint","\u222E":"\\oint","\u222F":"\\oiint","\u2230":"\\oiiint","\u2231":"\\intclockwise","\u2232":"\\varointclockwise","\u2A0C":"\\iiiint","\u2A0D":"\\intbar","\u2A0E":"\\intBar","\u2A0F":"\\fint","\u2A12":"\\rppolint","\u2A13":"\\scpolint","\u2A15":"\\pointint","\u2A16":"\\sqint","\u2A17":"\\intlarhk","\u2A18":"\\intx","\u2A19":"\\intcap","\u2A1A":"\\intcup"};S({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\sgn","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler({parser:e,funcName:t}){let r=e.prevAtomType,o=e.gullet.future().text;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,stack:!1,isFollowedByDelimiter:Le(o),needsLeadingSpace:r.length>0&&st.includes(r),name:t}},mathmlBuilder:Ae});S({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler({parser:e,funcName:t}){let r=e.prevAtomType,o=e.gullet.future().text;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,stack:!1,isFollowedByDelimiter:Le(o),needsLeadingSpace:r.length>0&&st.includes(r),name:t}},mathmlBuilder:Ae});S({type:"op",names:["\\int","\\iint","\\iiint","\\iiiint","\\oint","\\oiint","\\oiiint","\\intclockwise","\\varointclockwise","\\intbar","\\intBar","\\fint","\\rppolint","\\scpolint","\\pointint","\\sqint","\\intlarhk","\\intx","\\intcap","\\intcup","\u222B","\u222C","\u222D","\u222E","\u222F","\u2230","\u2231","\u2232","\u2A0C","\u2A0D","\u2A0E","\u2A0F","\u2A12","\u2A13","\u2A15","\u2A16","\u2A17","\u2A18","\u2A19","\u2A1A"],props:{numArgs:0},handler({parser:e,funcName:t}){let r=t;return r.length===1&&(r=_n[r]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,stack:!1,name:r}},mathmlBuilder:Ae});var Tn=(e,t)=>{let r=U(e.body,t.withFont("mathrm")),o=!0;for(let i=0;i<r.length;i++){let l=r[i];if(l instanceof p.MathNode)switch(l.type==="mrow"&&l.children.length===1&&l.children[0]instanceof p.MathNode&&(l=l.children[0]),l.type){case"mi":case"mn":case"ms":case"mtext":break;case"mspace":if(l.attributes.width){let u=l.attributes.width.replace("em",""),h=lr(Number(u));h===""?o=!1:r[i]=new p.MathNode("mtext",[new p.TextNode(h)])}break;case"mo":{let u=l.children[0];l.children.length===1&&u instanceof p.TextNode?u.text=u.text.replace(/\u2212/,"-").replace(/\u2217/,"*"):o=!1;break}default:o=!1}else o=!1}if(o){let i=r.map(l=>l.toText()).join("");r=[new p.TextNode(i)]}else if(r.length===1&&["mover","munder"].includes(r[0].type)&&(r[0].children[0].type==="mi"||r[0].children[0].type==="mtext")){if(r[0].children[0].type="mi",e.parentIsSupSub)return new p.MathNode("mrow",r);{let i=new p.MathNode("mo",[W("\u2061","text")]);return p.newDocumentFragment([r[0],i])}}let s;if(o?(s=new p.MathNode("mi",r),r[0].text.length===1&&s.setAttribute("mathvariant","normal")):s=new p.MathNode("mrow",r),!e.parentIsSupSub){let i=new p.MathNode("mo",[W("\u2061","text")]),l=[s,i];if(e.needsLeadingSpace){let u=new p.MathNode("mspace");u.setAttribute("width","0.1667em"),l.unshift(u)}if(!e.isFollowedByDelimiter){let u=new p.MathNode("mspace");u.setAttribute("width","0.1667em"),l.push(u)}return p.newDocumentFragment(l)}return s};S({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1,allowedInArgument:!0},handler:({parser:e,funcName:t},r)=>{let o=r[0],s=e.prevAtomType,i=e.gullet.future().text;return{type:"operatorname",mode:e.mode,body:z(o),alwaysHandleSupSub:t==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1,isFollowedByDelimiter:Le(i),needsLeadingSpace:s.length>0&&st.includes(s)}},mathmlBuilder:Tn});c("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");se({type:"ordgroup",mathmlBuilder(e,t){return te(e.body,t,e.semisimple)}});S({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:({parser:e},t)=>{let r=t[0];return{type:"phantom",mode:e.mode,body:z(r)}},mathmlBuilder:(e,t)=>{let r=U(e.body,t);return new p.MathNode("mphantom",r)}});S({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:({parser:e},t)=>{let r=t[0];return{type:"hphantom",mode:e.mode,body:r}},mathmlBuilder:(e,t)=>{let r=U(z(e.body),t),o=new p.MathNode("mphantom",r),s=new p.MathNode("mpadded",[o]);return s.setAttribute("height","0px"),s.setAttribute("depth","0px"),s}});S({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:({parser:e},t)=>{let r=t[0];return{type:"vphantom",mode:e.mode,body:r}},mathmlBuilder:(e,t)=>{let r=U(z(e.body),t),o=new p.MathNode("mphantom",r),s=new p.MathNode("mpadded",[o]);return s.setAttribute("width","0px"),s}});S({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler({parser:e},t){return{type:"pmb",mode:e.mode,body:z(t[0])}},mathmlBuilder(e,t){let r=U(e.body,t),o=Je(r);return o.setAttribute("style","font-weight:bold"),o}});var dr=(e,t)=>{let r=t.withLevel(F.TEXT),o=new p.MathNode("mpadded",[O(e.body,r)]),s=K(e.dy,t);return o.setAttribute("voffset",s.number+s.unit),s.number>0?o.style.padding=s.number+s.unit+" 0 0 0":o.style.padding="0 0 "+Math.abs(s.number)+s.unit+" 0",o};S({type:"raise",names:["\\raise","\\lower"],props:{numArgs:2,argTypes:["size","primitive"],primitive:!0},handler({parser:e,funcName:t},r){let o=C(r[0],"size").value;t==="\\lower"&&(o.number*=-1);let s=r[1];return{type:"raise",mode:e.mode,dy:o,body:s}},mathmlBuilder:dr});S({type:"raise",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler({parser:e,funcName:t},r){let o=C(r[0],"size").value,s=r[1];return{type:"raise",mode:e.mode,dy:o,body:s}},mathmlBuilder:dr});S({type:"ref",names:["\\ref","\\eqref"],props:{numArgs:1,argTypes:["raw"]},handler({parser:e,funcName:t},r){return{type:"ref",mode:e.mode,funcName:t,string:r[0].string.replace(ur,"")}},mathmlBuilder(e,t){let r=e.funcName==="\\ref"?["tml-ref"]:["tml-ref","tml-eqref"];return new be("#"+e.string,r,null)}});S({type:"reflect",names:["\\reflectbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler({parser:e},t){return{type:"reflect",mode:e.mode,body:t[0]}},mathmlBuilder(e,t){let r=O(e.body,t);return r.style.transform="scaleX(-1)",r}});S({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler({parser:e}){return{type:"internal",mode:e.mode}}});S({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler({parser:e},t,r){let o=r[0],s=C(t[0],"size"),i=C(t[1],"size");return{type:"rule",mode:e.mode,shift:o&&C(o,"size").value,width:s.value,height:i.value}},mathmlBuilder(e,t){let r=K(e.width,t),o=K(e.height,t),s=e.shift?K(e.shift,t):{number:0,unit:"em"},i=t.color&&t.getColor()||"black",l=new p.MathNode("mspace");if(r.number>0&&o.number>0&&l.setAttribute("mathbackground",i),l.setAttribute("width",r.number+r.unit),l.setAttribute("height",o.number+o.unit),s.number===0)return l;let u=new p.MathNode("mpadded",[l]);return s.number>=0?u.setAttribute("height","+"+s.number+s.unit):(u.setAttribute("height",s.number+s.unit),u.setAttribute("depth","+"+-s.number+s.unit)),u.setAttribute("voffset",s.number+s.unit),u}});var Mt={"\\tiny":.5,"\\sixptsize":.6,"\\Tiny":.6,"\\scriptsize":.7,"\\footnotesize":.8,"\\small":.9,"\\normalsize":1,"\\large":1.2,"\\Large":1.44,"\\LARGE":1.728,"\\huge":2.074,"\\Huge":2.488};S({type:"sizing",names:["\\tiny","\\sixptsize","\\Tiny","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],props:{numArgs:0,allowedInText:!0},handler:({breakOnTokenText:e,funcName:t,parser:r},o)=>{r.settings.strict&&r.mode==="math"&&console.log(`Temml strict-mode warning: Command ${t} is invalid in math mode.`);let s=r.parseExpression(!1,e,!0);return{type:"sizing",mode:r.mode,funcName:t,body:s}},mathmlBuilder:(e,t)=>{let r=t.withFontSize(Mt[e.funcName]),o=U(e.body,r),s=Je(o),i=(Mt[e.funcName]/t.fontSize).toFixed(4);return s.setAttribute("mathsize",i+"em"),s}});S({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:({parser:e},t,r)=>{let o=!1,s=!1,i=r[0]&&C(r[0],"ordgroup");if(i){let u="";for(let h=0;h<i.body.length;++h)if(u=i.body[h].text,u==="t")o=!0;else if(u==="b")s=!0;else{o=!1,s=!1;break}}else o=!0,s=!0;let l=t[0];return{type:"smash",mode:e.mode,body:l,smashHeight:o,smashDepth:s}},mathmlBuilder:(e,t)=>{let r=new p.MathNode("mpadded",[O(e.body,t)]);return e.smashHeight&&r.setAttribute("height","0px"),e.smashDepth&&r.setAttribute("depth","0px"),r}});S({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler({parser:e},t,r){let o=r[0],s=t[0];return{type:"sqrt",mode:e.mode,body:s,index:o}},mathmlBuilder(e,t){let{body:r,index:o}=e;return o?new p.MathNode("mroot",[O(r,t),O(o,t.incrementLevel())]):new p.MathNode("msqrt",[O(r,t)])}});var Cn={display:0,text:1,script:2,scriptscript:3},Dn={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]};S({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler({breakOnTokenText:e,funcName:t,parser:r},o){let s=r.parseExpression(!0,e,!0),i=t.slice(1,t.length-5);return{type:"styling",mode:r.mode,scriptLevel:i,body:s}},mathmlBuilder(e,t){let r=t.withLevel(Cn[e.scriptLevel]),o=U(e.body,r),s=Je(o),i=Dn[e.scriptLevel];return s.setAttribute("scriptlevel",i[0]),s.setAttribute("displaystyle",i[1]),s}});var Bn=/^m(over|under|underover)$/;se({type:"supsub",mathmlBuilder(e,t){let r=!1,o,s,i=!1,l=!1,u=!1;e.base&&e.base.type==="horizBrace"&&(s=!!e.sup,s===e.base.isOver&&(r=!0,o=e.base.isOver)),e.base&&!e.base.stack&&(e.base.type==="op"||e.base.type==="operatorname")&&(e.base.parentIsSupSub=!0,i=!e.base.symbol,l=i&&!e.isFollowedByDelimiter,u=e.base.needsLeadingSpace);let h=e.base&&e.base.stack?[O(e.base.body[0],t)]:[O(e.base,t)],x=t.inSubOrSup();if(e.sub){let b=O(e.sub,x);t.level===3&&b.setAttribute("scriptlevel","2"),h.push(b)}if(e.sup){let b=O(e.sup,x);t.level===3&&b.setAttribute("scriptlevel","2");let k=b.type==="mrow"?b.children[0]:b;k&&k.type==="mo"&&k.classes.includes("tml-prime")&&e.base&&e.base.text&&"fF".indexOf(e.base.text)>-1&&k.classes.push("prime-pad"),h.push(b)}let A;if(r)A=o?"mover":"munder";else if(e.sub)if(e.sup){let b=e.base;b&&(b.type==="op"&&b.limits||b.type==="multiscript")&&(t.level===F.DISPLAY||b.alwaysHandleSupSub)||b&&b.type==="operatorname"&&b.alwaysHandleSupSub&&(t.level===F.DISPLAY||b.limits)?A="munderover":A="msubsup"}else{let b=e.base;b&&b.type==="op"&&b.limits&&(t.level===F.DISPLAY||b.alwaysHandleSupSub)||b&&b.type==="operatorname"&&b.alwaysHandleSupSub&&(b.limits||t.level===F.DISPLAY)?A="munder":A="msub"}else{let b=e.base;b&&b.type==="op"&&b.limits&&(t.level===F.DISPLAY||b.alwaysHandleSupSub)||b&&b.type==="operatorname"&&b.alwaysHandleSupSub&&(b.limits||t.level===F.DISPLAY)?A="mover":A="msup"}let q=new p.MathNode(A,h);if(i){let b=new p.MathNode("mo",[W("\u2061","text")]);if(u){let k=new p.MathNode("mspace");k.setAttribute("width","0.1667em"),q=p.newDocumentFragment([k,q,b])}else q=p.newDocumentFragment([q,b]);if(l){let k=new p.MathNode("mspace");k.setAttribute("width","0.1667em"),q.children.push(k)}}else Bn.test(A)&&(q=new p.MathNode("mrow",[q]));return q}});var Nn=["\\shortmid","\\nshortmid","\\shortparallel","\\nshortparallel","\\smallsetminus"],On=["\\Rsh","\\Lsh","\\restriction"],$n=e=>{if(e.length===1){let t=e.codePointAt(0);return 8591<t&&t<8704}return e.indexOf("arrow")>-1||e.indexOf("harpoon")>-1||On.includes(e)};se({type:"atom",mathmlBuilder(e,t){let r=new p.MathNode("mo",[W(e.text,e.mode)]);return e.family==="punct"?r.setAttribute("separator","true"):e.family==="open"||e.family==="close"?e.family==="open"?(r.setAttribute("form","prefix"),r.setAttribute("stretchy","false")):e.family==="close"&&(r.setAttribute("form","postfix"),r.setAttribute("stretchy","false")):e.text==="\\mid"?(r.setAttribute("lspace","0.22em"),r.setAttribute("rspace","0.22em"),r.setAttribute("stretchy","false")):e.family==="rel"&&$n(e.text)?r.setAttribute("stretchy","false"):Nn.includes(e.text)?r.setAttribute("mathsize","70%"):e.text===":"&&(r.attributes.lspace="0.2222em",r.attributes.rspace="0.2222em"),r}});var Et={mathbf:"bold",mathrm:"normal",textit:"italic",mathit:"italic",mathnormal:"italic",mathbb:"double-struck",mathcal:"script",mathfrak:"fraktur",mathscr:"script",mathsf:"sans-serif",mathtt:"monospace"},mr=function(e,t){if(t.fontFamily==="texttt")return"monospace";if(t.fontFamily==="textsc")return"normal";if(t.fontFamily==="textsf")return t.fontShape==="textit"&&t.fontWeight==="textbf"?"sans-serif-bold-italic":t.fontShape==="textit"?"sans-serif-italic":t.fontWeight==="textbf"?"sans-serif-bold":"sans-serif";if(t.fontShape==="textit"&&t.fontWeight==="textbf")return"bold-italic";if(t.fontShape==="textit")return"italic";if(t.fontWeight==="textbf")return"bold";let r=t.font;if(!r||r==="mathnormal")return null;let o=e.mode;switch(r){case"mathit":return"italic";case"mathrm":{let i=e.text.codePointAt(0);return 939<i&&i<975?"italic":"normal"}case"greekItalic":return"italic";case"up@greek":return"normal";case"boldsymbol":case"mathboldsymbol":return"bold-italic";case"mathbf":return"bold";case"mathbb":return"double-struck";case"mathfrak":return"fraktur";case"mathscr":case"mathcal":return"script";case"mathsf":return"sans-serif";case"mathsfit":return"sans-serif-italic";case"mathtt":return"monospace"}let s=e.text;return I[o][s]&&I[o][s].replace&&(s=I[o][s].replace),Object.prototype.hasOwnProperty.call(Et,r)?Et[r]:null},zt=Object.freeze({B:8426,E:8427,F:8427,H:8387,I:8391,L:8390,M:8422,R:8393,e:8394,g:8355,o:8389}),Mn=Object.freeze({C:8426,H:8388,I:8392,R:8394,Z:8398}),En=Object.freeze({C:8383,H:8389,N:8391,P:8393,Q:8393,R:8395,Z:8394}),hr=Object.freeze({"\u03F5":119527,\u03D1:119564,\u03F0:119534,\u03C6:119577,\u03F1:119535,\u03D6:119563}),zn=Object.freeze({"\u03F5":119643,\u03D1:119680,\u03F0:119650,\u03C6:119693,\u03F1:119651,\u03D6:119679}),Lt=Object.freeze({"\u03F5":119701,\u03D1:119738,\u03F0:119708,\u03C6:119751,\u03F1:119709,\u03D6:119737}),Ln=Object.freeze({"\u03F5":119759,\u03D1:119796,\u03F0:119766,\u03C6:119809,\u03F1:119767,\u03D6:119795}),Fn=Object.freeze({upperCaseLatin:{normal:e=>0,bold:e=>119743,italic:e=>119795,"bold-italic":e=>119847,script:e=>zt[e]||119899,"script-bold":e=>119951,fraktur:e=>Mn[e]||120003,"fraktur-bold":e=>120107,"double-struck":e=>En[e]||120055,"sans-serif":e=>120159,"sans-serif-bold":e=>120211,"sans-serif-italic":e=>120263,"sans-serif-bold-italic":e=>120380,monospace:e=>120367},lowerCaseLatin:{normal:e=>0,bold:e=>119737,italic:e=>e==="h"?8358:119789,"bold-italic":e=>119841,script:e=>zt[e]||119893,"script-bold":e=>119945,fraktur:e=>119997,"fraktur-bold":e=>120101,"double-struck":e=>120049,"sans-serif":e=>120153,"sans-serif-bold":e=>120205,"sans-serif-italic":e=>120257,"sans-serif-bold-italic":e=>120309,monospace:e=>120361},upperCaseGreek:{normal:e=>0,bold:e=>119575,italic:e=>119633,"bold-italic":e=>119575,script:e=>0,"script-bold":e=>0,fraktur:e=>0,"fraktur-bold":e=>0,"double-struck":e=>0,"sans-serif":e=>119749,"sans-serif-bold":e=>119749,"sans-serif-italic":e=>0,"sans-serif-bold-italic":e=>119807,monospace:e=>0},lowerCaseGreek:{normal:e=>0,bold:e=>119569,italic:e=>119627,"bold-italic":e=>e==="\u03D5"?119678:119685,script:e=>0,"script-bold":e=>0,fraktur:e=>0,"fraktur-bold":e=>0,"double-struck":e=>0,"sans-serif":e=>119743,"sans-serif-bold":e=>119743,"sans-serif-italic":e=>0,"sans-serif-bold-italic":e=>119801,monospace:e=>0},varGreek:{normal:e=>0,bold:e=>hr[e]||-51,italic:e=>0,"bold-italic":e=>zn[e]||58,script:e=>0,"script-bold":e=>0,fraktur:e=>0,"fraktur-bold":e=>0,"double-struck":e=>0,"sans-serif":e=>Lt[e]||116,"sans-serif-bold":e=>Lt[e]||116,"sans-serif-italic":e=>0,"sans-serif-bold-italic":e=>Ln[e]||174,monospace:e=>0},numeral:{normal:e=>0,bold:e=>120734,italic:e=>0,"bold-italic":e=>0,script:e=>0,"script-bold":e=>0,fraktur:e=>0,"fraktur-bold":e=>0,"double-struck":e=>120744,"sans-serif":e=>120754,"sans-serif-bold":e=>120764,"sans-serif-italic":e=>0,"sans-serif-bold-italic":e=>0,monospace:e=>120774}}),he=(e,t)=>{let r=e.codePointAt(0),o=64<r&&r<91?"upperCaseLatin":96<r&&r<123?"lowerCaseLatin":912<r&&r<938?"upperCaseGreek":944<r&&r<970||e==="\u03D5"?"lowerCaseGreek":120545<r&&r<120572||hr[e]?"varGreek":47<r&&r<58?"numeral":"other";return o==="other"?e:String.fromCodePoint(r+Fn[o][t](e))},In=Object.freeze({a:"\u1D00",b:"\u0299",c:"\u1D04",d:"\u1D05",e:"\u1D07",f:"\uA730",g:"\u0262",h:"\u029C",i:"\u026A",j:"\u1D0A",k:"\u1D0B",l:"\u029F",m:"\u1D0D",n:"\u0274",o:"\u1D0F",p:"\u1D18",q:"\u01EB",r:"\u0280",s:"s",t:"\u1D1B",u:"\u1D1C",v:"\u1D20",w:"\u1D21",x:"x",y:"\u028F",z:"\u1D22"}),Pn=/^\d(?:[\d,.]*\d)?$/,Gn=/[A-Ba-z]/,Rn=new Set(["\\prime","\\dprime","\\trprime","\\qprime","\\backprime","\\backdprime","\\backtrprime"]),jn=(e,t,r)=>{let o=new p.MathNode(r,[e]),s=new p.MathNode("mstyle",[o]);return s.style["font-style"]="italic",s.style["font-family"]="Cambria, 'Times New Roman', serif",t==="bold-italic"&&(s.style["font-weight"]="bold"),s};se({type:"mathord",mathmlBuilder(e,t){let r=W(e.text,e.mode,t),o=r.text.codePointAt(0),s=912<o&&o<938?"normal":"italic",i=mr(e,t)||s;if(i==="script")return r.text=he(r.text,i),new p.MathNode("mi",[r],[t.font]);i!=="italic"&&(r.text=he(r.text,i));let l=new p.MathNode("mi",[r]);return i==="normal"&&(l.setAttribute("mathvariant","normal"),r.text.length===1&&(l=new p.MathNode("mrow",[l]))),l}});se({type:"textord",mathmlBuilder(e,t){let r=e.text,o=r.codePointAt(0);t.fontFamily==="textsc"&&96<o&&o<123&&(r=In[r]);let s=W(r,e.mode,t),i=mr(e,t)||"normal",l;if(Pn.test(e.text)){let u=e.mode==="text"?"mtext":"mn";if(i==="italic"||i==="bold-italic")return jn(s,i,u);i!=="normal"&&(s.text=s.text.split("").map(h=>he(h,i)).join("")),l=new p.MathNode(u,[s])}else if(e.mode==="text")i!=="normal"&&(s.text=he(s.text,i)),l=new p.MathNode("mtext",[s]);else if(Rn.has(e.text))l=new p.MathNode("mo",[s]),l.classes.push("tml-prime");else{let u=s.text;i!=="italic"&&(s.text=he(s.text,i)),l=new p.MathNode("mi",[s]),s.text===u&&Gn.test(u)&&l.setAttribute("mathvariant","italic")}return l}});var Un={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},Vn={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};se({type:"spacing",mathmlBuilder(e,t){let r;if(Object.prototype.hasOwnProperty.call(Vn,e.text))r=new p.MathNode("mtext",[new p.TextNode("\xA0")]);else if(Object.prototype.hasOwnProperty.call(Un,e.text))r=new p.MathNode("mo"),e.text==="\\nobreak"&&r.setAttribute("linebreak","nobreak");else throw new w(`Unknown type of space "${e.text}"`);return r}});se({type:"tag"});var Ft={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm","\\textsc":"textsc"},It={"\\textbf":"textbf","\\textmd":"textmd"},Wn={"\\textit":"textit","\\textup":"textup"},Hn=(e,t)=>{let r=e.font;if(r){if(Ft[r])return t.withTextFontFamily(Ft[r]);if(It[r])return t.withTextFontWeight(It[r]);if(r==="\\emph")return t.fontShape==="textit"?t.withTextFontShape("textup"):t.withTextFontShape("textit")}else return t;return t.withTextFontShape(Wn[r])};S({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textsc","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler({parser:e,funcName:t},r){let o=r[0];return{type:"text",mode:e.mode,body:z(o),font:t}},mathmlBuilder(e,t){let r=Hn(e,t),o=te(e.body,r);return Ee(o)}});S({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler({parser:e},t){return{type:"vcenter",mode:e.mode,body:t[0]}},mathmlBuilder(e,t){let r=new p.MathNode("mtd",[O(e.body,t)]);r.style.padding="0";let o=new p.MathNode("mtr",[r]);return new p.MathNode("mtable",[o])}});S({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(e,t,r){throw new w("\\verb ended by end of line instead of matching delimiter")},mathmlBuilder(e,t){let r=new p.TextNode(Zn(e)),o=new p.MathNode("mtext",[r]);return o.setAttribute("mathvariant","monospace"),o}});var Zn=e=>e.body.replace(/ /g,e.star?"\u2423":"\xA0"),oe=Ut,pr=`[ \r ]`,Xn="\\\\[a-zA-Z@]+",Yn="\\\\[^\uD800-\uDFFF]",Kn=`(${Xn})${pr}*`,Jn=`\\\\( |[ \r ]+ ?)[ \r ]*`,Ze="[\u0300-\u036F]",Pt=new RegExp(`${Ze}+$`),Qn=`(${pr}+)|${Jn}|([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]${Ze}*|[\uD800-\uDBFF][\uDC00-\uDFFF]${Ze}*|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5|${Kn}|${Yn})`,Oe=class{constructor(t,r){this.input=t,this.settings=r,this.tokenRegex=new RegExp(Qn,"g"),this.catcodes={"%":14,"~":13}}setCatcode(t,r){this.catcodes[t]=r}lex(){let t=this.input,r=this.tokenRegex.lastIndex;if(r===t.length)return new Z("EOF",new V(this,r,r));let o=this.tokenRegex.exec(t);if(o===null||o.index!==r)throw new w(`Unexpected character: '${t[r]}'`,new Z(t[r],new V(this,r,r+1)));let s=o[6]||o[3]||(o[2]?"\\ ":" ");if(this.catcodes[s]===14){let i=t.indexOf(` `,this.tokenRegex.lastIndex);if(i===-1){if(this.tokenRegex.lastIndex=t.length,this.settings.strict)throw new w("% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode")}else this.tokenRegex.lastIndex=i+1;return this.lex()}return new Z(s,new V(this,r,this.tokenRegex.lastIndex))}},Xe=class{constructor(t={},r={}){this.current=r,this.builtins=t,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new w("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");let t=this.undefStack.pop();for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(t[r]===void 0?delete this.current[r]:this.current[r]=t[r])}has(t){return Object.prototype.hasOwnProperty.call(this.current,t)||Object.prototype.hasOwnProperty.call(this.builtins,t)}get(t){return Object.prototype.hasOwnProperty.call(this.current,t)?this.current[t]:this.builtins[t]}set(t,r,o=!1){if(o){for(let s=0;s<this.undefStack.length;s++)delete this.undefStack[s][t];this.undefStack.length>0&&(this.undefStack[this.undefStack.length-1][t]=r)}else{let s=this.undefStack[this.undefStack.length-1];s&&!Object.prototype.hasOwnProperty.call(s,t)&&(s[t]=this.current[t])}this.current[t]=r}},fr={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},Ye=class{constructor(t,r,o){this.settings=r,this.expansionCount=0,this.feed(t),this.macros=new Xe(hn,r.macros),this.mode=o,this.stack=[]}feed(t){this.lexer=new Oe(t,this.settings)}switchMode(t){this.mode=t}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(t){this.stack.push(t)}pushTokens(t){this.stack.push(...t)}scanArgument(t){let r,o,s;if(t){if(this.consumeSpaces(),this.future().text!=="[")return null;r=this.popToken(),{tokens:s,end:o}=this.consumeArg(["]"])}else({tokens:s,start:r,end:o}=this.consumeArg());return this.pushToken(new Z("EOF",o.loc)),this.pushTokens(s),r.range(o,"")}consumeSpaces(){for(;this.future().text===" ";)this.stack.pop()}consumeArg(t){let r=[],o=t&&t.length>0;o||this.consumeSpaces();let s=this.future(),i,l=0,u=0;do{if(i=this.popToken(),r.push(i),i.text==="{")++l;else if(i.text==="}"){if(--l,l===-1)throw new w("Extra }",i)}else if(i.text==="EOF")throw new w("Unexpected end of input in a macro argument, expected '"+(t&&o?t[u]:"}")+"'",i);if(t&&o)if((l===0||l===1&&t[u]==="{")&&i.text===t[u]){if(++u,u===t.length){r.splice(-u,u);break}}else u=0}while(l!==0||o);return s.text==="{"&&r[r.length-1].text==="}"&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:s,end:i}}consumeArgs(t,r){if(r){if(r.length!==t+1)throw new w("The length of delimiters doesn't match the number of args!");let s=r[0];for(let i=0;i<s.length;i++){let l=this.popToken();if(s[i]!==l.text)throw new w("Use of the macro doesn't match its definition",l)}}let o=[];for(let s=0;s<t;s++)o.push(this.consumeArg(r&&r[s+1]).tokens);return o}expandOnce(t){let r=this.popToken(),o=r.text,s=r.noexpand?null:this._getExpansion(o);if(s==null||t&&s.unexpandable){if(t&&s==null&&o[0]==="\\"&&!this.isDefined(o))throw new w("Undefined control sequence: "+o);return this.pushToken(r),!1}if(this.expansionCount++,this.expansionCount>this.settings.maxExpand)throw new w("Too many expansions: infinite loop or need to increase maxExpand setting");let i=s.tokens,l=this.consumeArgs(s.numArgs,s.delimiters);if(s.numArgs){i=i.slice();for(let u=i.length-1;u>=0;--u){let h=i[u];if(h.text==="#"){if(u===0)throw new w("Incomplete placeholder at end of macro body",h);if(h=i[--u],h.text==="#")i.splice(u+1,1);else if(/^[1-9]$/.test(h.text))i.splice(u,2,...l[+h.text-1]);else throw new w("Not a valid argument number",h)}}}return this.pushTokens(i),i.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){let t=this.stack.pop();return t.treatAsRelax&&(t.text="\\relax"),t}throw new Error}expandMacro(t){return this.macros.has(t)?this.expandTokens([new Z(t)]):void 0}expandTokens(t){let r=[],o=this.stack.length;for(this.pushTokens(t);this.stack.length>o;)if(this.expandOnce(!0)===!1){let s=this.stack.pop();s.treatAsRelax&&(s.noexpand=!1,s.treatAsRelax=!1),r.push(s)}return r}expandMacroAsText(t){let r=this.expandMacro(t);return r&&r.map(o=>o.text).join("")}_getExpansion(t){let r=this.macros.get(t);if(r==null)return r;if(t.length===1){let s=this.lexer.catcodes[t];if(s!=null&&s!==13)return}let o=typeof r=="function"?r(this):r;if(typeof o=="string"){let s=0;if(o.indexOf("#")!==-1){let x=o.replace(/##/g,"");for(;x.indexOf("#"+(s+1))!==-1;)++s}let i=new Oe(o,this.settings),l=[],u=i.lex();for(;u.text!=="EOF";)l.push(u),u=i.lex();return l.reverse(),{tokens:l,numArgs:s}}return o}isDefined(t){return this.macros.has(t)||Object.prototype.hasOwnProperty.call(oe,t)||Object.prototype.hasOwnProperty.call(I.math,t)||Object.prototype.hasOwnProperty.call(I.text,t)||Object.prototype.hasOwnProperty.call(fr,t)}isExpandable(t){let r=this.macros.get(t);return r!=null?typeof r=="string"||typeof r=="function"||!r.unexpandable:Object.prototype.hasOwnProperty.call(oe,t)&&!oe[t].primitive}},Gt=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,Te=Object.freeze({"\u208A":"+","\u208B":"-","\u208C":"=","\u208D":"(","\u208E":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1D62":"i","\u2C7C":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209A":"p","\u1D63":"r","\u209B":"s","\u209C":"t","\u1D64":"u","\u1D65":"v","\u2093":"x","\u1D66":"\u03B2","\u1D67":"\u03B3","\u1D68":"\u03C1","\u1D69":"\u03D5","\u1D6A":"\u03C7","\u207A":"+","\u207B":"-","\u207C":"=","\u207D":"(","\u207E":")","\u2070":"0","\xB9":"1","\xB2":"2","\xB3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1D2C":"A","\u1D2E":"B","\u1D30":"D","\u1D31":"E","\u1D33":"G","\u1D34":"H","\u1D35":"I","\u1D36":"J","\u1D37":"K","\u1D38":"L","\u1D39":"M","\u1D3A":"N","\u1D3C":"O","\u1D3E":"P","\u1D3F":"R","\u1D40":"T","\u1D41":"U","\u2C7D":"V","\u1D42":"W","\u1D43":"a","\u1D47":"b","\u1D9C":"c","\u1D48":"d","\u1D49":"e","\u1DA0":"f","\u1D4D":"g",\u02B0:"h","\u2071":"i",\u02B2:"j","\u1D4F":"k",\u02E1:"l","\u1D50":"m",\u207F:"n","\u1D52":"o","\u1D56":"p",\u02B3:"r",\u02E2:"s","\u1D57":"t","\u1D58":"u","\u1D5B":"v",\u02B7:"w",\u02E3:"x",\u02B8:"y","\u1DBB":"z","\u1D5D":"\u03B2","\u1D5E":"\u03B3","\u1D5F":"\u03B4","\u1D60":"\u03D5","\u1D61":"\u03C7","\u1DBF":"\u03B8"}),Rt=Object.freeze({"\u{1D49C}":"A",\u212C:"B","\u{1D49E}":"C","\u{1D49F}":"D",\u2130:"E",\u2131:"F","\u{1D4A2}":"G",\u210B:"H",\u2110:"I","\u{1D4A5}":"J","\u{1D4A6}":"K",\u2112:"L",\u2133:"M","\u{1D4A9}":"N","\u{1D4AA}":"O","\u{1D4AB}":"P","\u{1D4AC}":"Q",\u211B:"R","\u{1D4AE}":"S","\u{1D4AF}":"T","\u{1D4B0}":"U","\u{1D4B1}":"V","\u{1D4B2}":"W","\u{1D4B3}":"X","\u{1D4B4}":"Y","\u{1D4B5}":"Z"}),Ge={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030C":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030A":{text:"\\r",math:"\\mathring"},"\u030B":{text:"\\H"},"\u0327":{text:"\\c"}},jt={\u00E1:"a\u0301",\u00E0:"a\u0300",\u00E4:"a\u0308",\u01DF:"a\u0308\u0304",\u00E3:"a\u0303",\u0101:"a\u0304",\u0103:"a\u0306",\u1EAF:"a\u0306\u0301",\u1EB1:"a\u0306\u0300",\u1EB5:"a\u0306\u0303",\u01CE:"a\u030C",\u00E2:"a\u0302",\u1EA5:"a\u0302\u0301",\u1EA7:"a\u0302\u0300",\u1EAB:"a\u0302\u0303",\u0227:"a\u0307",\u01E1:"a\u0307\u0304",\u00E5:"a\u030A",\u01FB:"a\u030A\u0301",\u1E03:"b\u0307",\u0107:"c\u0301",\u010D:"c\u030C",\u0109:"c\u0302",\u010B:"c\u0307",\u010F:"d\u030C",\u1E0B:"d\u0307",\u00E9:"e\u0301",\u00E8:"e\u0300",\u00EB:"e\u0308",\u1EBD:"e\u0303",\u0113:"e\u0304",\u1E17:"e\u0304\u0301",\u1E15:"e\u0304\u0300",\u0115:"e\u0306",\u011B:"e\u030C",\u00EA:"e\u0302",\u1EBF:"e\u0302\u0301",\u1EC1:"e\u0302\u0300",\u1EC5:"e\u0302\u0303",\u0117:"e\u0307",\u1E1F:"f\u0307",\u01F5:"g\u0301",\u1E21:"g\u0304",\u011F:"g\u0306",\u01E7:"g\u030C",\u011D:"g\u0302",\u0121:"g\u0307",\u1E27:"h\u0308",\u021F:"h\u030C",\u0125:"h\u0302",\u1E23:"h\u0307",\u00ED:"i\u0301",\u00EC:"i\u0300",\u00EF:"i\u0308",\u1E2F:"i\u0308\u0301",\u0129:"i\u0303",\u012B:"i\u0304",\u012D:"i\u0306",\u01D0:"i\u030C",\u00EE:"i\u0302",\u01F0:"j\u030C",\u0135:"j\u0302",\u1E31:"k\u0301",\u01E9:"k\u030C",\u013A:"l\u0301",\u013E:"l\u030C",\u1E3F:"m\u0301",\u1E41:"m\u0307",\u0144:"n\u0301",\u01F9:"n\u0300",\u00F1:"n\u0303",\u0148:"n\u030C",\u1E45:"n\u0307",\u00F3:"o\u0301",\u00F2:"o\u0300",\u00F6:"o\u0308",\u022B:"o\u0308\u0304",\u00F5:"o\u0303",\u1E4D:"o\u0303\u0301",\u1E4F:"o\u0303\u0308",\u022D:"o\u0303\u0304",\u014D:"o\u0304",\u1E53:"o\u0304\u0301",\u1E51:"o\u0304\u0300",\u014F:"o\u0306",\u01D2:"o\u030C",\u00F4:"o\u0302",\u1ED1:"o\u0302\u0301",\u1ED3:"o\u0302\u0300",\u1ED7:"o\u0302\u0303",\u022F:"o\u0307",\u0231:"o\u0307\u0304",\u0151:"o\u030B",\u1E55:"p\u0301",\u1E57:"p\u0307",\u0155:"r\u0301",\u0159:"r\u030C",\u1E59:"r\u0307",\u015B:"s\u0301",\u1E65:"s\u0301\u0307",\u0161:"s\u030C",\u1E67:"s\u030C\u0307",\u015D:"s\u0302",\u1E61:"s\u0307",\u1E97:"t\u0308",\u0165:"t\u030C",\u1E6B:"t\u0307",\u00FA:"u\u0301",\u00F9:"u\u0300",\u00FC:"u\u0308",\u01D8:"u\u0308\u0301",\u01DC:"u\u0308\u0300",\u01D6:"u\u0308\u0304",\u01DA:"u\u0308\u030C",\u0169:"u\u0303",\u1E79:"u\u0303\u0301",\u016B:"u\u0304",\u1E7B:"u\u0304\u0308",\u016D:"u\u0306",\u01D4:"u\u030C",\u00FB:"u\u0302",\u016F:"u\u030A",\u0171:"u\u030B",\u1E7D:"v\u0303",\u1E83:"w\u0301",\u1E81:"w\u0300",\u1E85:"w\u0308",\u0175:"w\u0302",\u1E87:"w\u0307",\u1E98:"w\u030A",\u1E8D:"x\u0308",\u1E8B:"x\u0307",\u00FD:"y\u0301",\u1EF3:"y\u0300",\u00FF:"y\u0308",\u1EF9:"y\u0303",\u0233:"y\u0304",\u0177:"y\u0302",\u1E8F:"y\u0307",\u1E99:"y\u030A",\u017A:"z\u0301",\u017E:"z\u030C",\u1E91:"z\u0302",\u017C:"z\u0307",\u00C1:"A\u0301",\u00C0:"A\u0300",\u00C4:"A\u0308",\u01DE:"A\u0308\u0304",\u00C3:"A\u0303",\u0100:"A\u0304",\u0102:"A\u0306",\u1EAE:"A\u0306\u0301",\u1EB0:"A\u0306\u0300",\u1EB4:"A\u0306\u0303",\u01CD:"A\u030C",\u00C2:"A\u0302",\u1EA4:"A\u0302\u0301",\u1EA6:"A\u0302\u0300",\u1EAA:"A\u0302\u0303",\u0226:"A\u0307",\u01E0:"A\u0307\u0304",\u00C5:"A\u030A",\u01FA:"A\u030A\u0301",\u1E02:"B\u0307",\u0106:"C\u0301",\u010C:"C\u030C",\u0108:"C\u0302",\u010A:"C\u0307",\u010E:"D\u030C",\u1E0A:"D\u0307",\u00C9:"E\u0301",\u00C8:"E\u0300",\u00CB:"E\u0308",\u1EBC:"E\u0303",\u0112:"E\u0304",\u1E16:"E\u0304\u0301",\u1E14:"E\u0304\u0300",\u0114:"E\u0306",\u011A:"E\u030C",\u00CA:"E\u0302",\u1EBE:"E\u0302\u0301",\u1EC0:"E\u0302\u0300",\u1EC4:"E\u0302\u0303",\u0116:"E\u0307",\u1E1E:"F\u0307",\u01F4:"G\u0301",\u1E20:"G\u0304",\u011E:"G\u0306",\u01E6:"G\u030C",\u011C:"G\u0302",\u0120:"G\u0307",\u1E26:"H\u0308",\u021E:"H\u030C",\u0124:"H\u0302",\u1E22:"H\u0307",\u00CD:"I\u0301",\u00CC:"I\u0300",\u00CF:"I\u0308",\u1E2E:"I\u0308\u0301",\u0128:"I\u0303",\u012A:"I\u0304",\u012C:"I\u0306",\u01CF:"I\u030C",\u00CE:"I\u0302",\u0130:"I\u0307",\u0134:"J\u0302",\u1E30:"K\u0301",\u01E8:"K\u030C",\u0139:"L\u0301",\u013D:"L\u030C",\u1E3E:"M\u0301",\u1E40:"M\u0307",\u0143:"N\u0301",\u01F8:"N\u0300",\u00D1:"N\u0303",\u0147:"N\u030C",\u1E44:"N\u0307",\u00D3:"O\u0301",\u00D2:"O\u0300",\u00D6:"O\u0308",\u022A:"O\u0308\u0304",\u00D5:"O\u0303",\u1E4C:"O\u0303\u0301",\u1E4E:"O\u0303\u0308",\u022C:"O\u0303\u0304",\u014C:"O\u0304",\u1E52:"O\u0304\u0301",\u1E50:"O\u0304\u0300",\u014E:"O\u0306",\u01D1:"O\u030C",\u00D4:"O\u0302",\u1ED0:"O\u0302\u0301",\u1ED2:"O\u0302\u0300",\u1ED6:"O\u0302\u0303",\u022E:"O\u0307",\u0230:"O\u0307\u0304",\u0150:"O\u030B",\u1E54:"P\u0301",\u1E56:"P\u0307",\u0154:"R\u0301",\u0158:"R\u030C",\u1E58:"R\u0307",\u015A:"S\u0301",\u1E64:"S\u0301\u0307",\u0160:"S\u030C",\u1E66:"S\u030C\u0307",\u015C:"S\u0302",\u1E60:"S\u0307",\u0164:"T\u030C",\u1E6A:"T\u0307",\u00DA:"U\u0301",\u00D9:"U\u0300",\u00DC:"U\u0308",\u01D7:"U\u0308\u0301",\u01DB:"U\u0308\u0300",\u01D5:"U\u0308\u0304",\u01D9:"U\u0308\u030C",\u0168:"U\u0303",\u1E78:"U\u0303\u0301",\u016A:"U\u0304",\u1E7A:"U\u0304\u0308",\u016C:"U\u0306",\u01D3:"U\u030C",\u00DB:"U\u0302",\u016E:"U\u030A",\u0170:"U\u030B",\u1E7C:"V\u0303",\u1E82:"W\u0301",\u1E80:"W\u0300",\u1E84:"W\u0308",\u0174:"W\u0302",\u1E86:"W\u0307",\u1E8C:"X\u0308",\u1E8A:"X\u0307",\u00DD:"Y\u0301",\u1EF2:"Y\u0300",\u0178:"Y\u0308",\u1EF8:"Y\u0303",\u0232:"Y\u0304",\u0176:"Y\u0302",\u1E8E:"Y\u0307",\u0179:"Z\u0301",\u017D:"Z\u030C",\u1E90:"Z\u0302",\u017B:"Z\u0307",\u03AC:"\u03B1\u0301",\u1F70:"\u03B1\u0300",\u1FB1:"\u03B1\u0304",\u1FB0:"\u03B1\u0306",\u03AD:"\u03B5\u0301",\u1F72:"\u03B5\u0300",\u03AE:"\u03B7\u0301",\u1F74:"\u03B7\u0300",\u03AF:"\u03B9\u0301",\u1F76:"\u03B9\u0300",\u03CA:"\u03B9\u0308",\u0390:"\u03B9\u0308\u0301",\u1FD2:"\u03B9\u0308\u0300",\u1FD1:"\u03B9\u0304",\u1FD0:"\u03B9\u0306",\u03CC:"\u03BF\u0301",\u1F78:"\u03BF\u0300",\u03CD:"\u03C5\u0301",\u1F7A:"\u03C5\u0300",\u03CB:"\u03C5\u0308",\u03B0:"\u03C5\u0308\u0301",\u1FE2:"\u03C5\u0308\u0300",\u1FE1:"\u03C5\u0304",\u1FE0:"\u03C5\u0306",\u03CE:"\u03C9\u0301",\u1F7C:"\u03C9\u0300",\u038E:"\u03A5\u0301",\u1FEA:"\u03A5\u0300",\u03AB:"\u03A5\u0308",\u1FE9:"\u03A5\u0304",\u1FE8:"\u03A5\u0306",\u038F:"\u03A9\u0301",\u1FFA:"\u03A9\u0300"},eo=["bin","op","open","punct","rel"],to=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/,$e=class e{constructor(t,r,o=!1){this.mode="math",this.gullet=new Ye(t,r,this.mode),this.settings=r,this.isPreamble=o,this.leftrightDepth=0,this.prevAtomType=""}expect(t,r=!0){if(this.fetch().text!==t)throw new w(`Expected '${t}', got '${this.fetch().text}'`,this.fetch());r&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(t){this.mode=t,this.gullet.switchMode(t)}parse(){this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");let t=this.parseExpression(!1);if(this.expect("EOF"),this.isPreamble){let o=Object.create(null);return Object.entries(this.gullet.macros.current).forEach(([s,i])=>{o[s]=i}),this.gullet.endGroup(),o}let r=this.gullet.macros.get("\\df@tag");return this.gullet.endGroup(),r&&(this.gullet.macros.current["\\df@tag"]=r),t}static get endOfExpression(){return["}","\\endgroup","\\end","\\right","\\endtoggle","&"]}subparse(t){let r=this.nextToken;this.consume(),this.gullet.pushToken(new Z("}")),this.gullet.pushTokens(t);let o=this.parseExpression(!1);return this.expect("}"),this.nextToken=r,o}parseExpression(t,r,o){let s=[];for(this.prevAtomType="";;){this.mode==="math"&&this.consumeSpaces();let i=this.fetch();if(e.endOfExpression.indexOf(i.text)!==-1||r&&i.text===r||o&&i.text==="\\middle"||t&&oe[i.text]&&oe[i.text].infix)break;let l=this.parseAtom(r);if(l){if(l.type==="internal")continue}else break;s.push(l),this.prevAtomType=l.type==="atom"?l.family:l.type}return this.mode==="text"&&this.formLigatures(s),this.handleInfixNodes(s)}handleInfixNodes(t){let r=-1,o;for(let s=0;s<t.length;s++)if(t[s].type==="infix"){if(r!==-1)throw new w("only one infix operator per group",t[s].token);r=s,o=t[s].replaceWith}if(r!==-1&&o){let s,i,l=t.slice(0,r),u=t.slice(r+1);l.length===1&&l[0].type==="ordgroup"?s=l[0]:s={type:"ordgroup",mode:this.mode,body:l},u.length===1&&u[0].type==="ordgroup"?i=u[0]:i={type:"ordgroup",mode:this.mode,body:u};let h;return o==="\\\\abovefrac"?h=this.callFunction(o,[s,t[r],i],[]):h=this.callFunction(o,[s,i],[]),[h]}else return t}handleSupSubscript(t){let r=this.fetch(),o=r.text;this.consume(),this.consumeSpaces();let s=this.parseGroup(t);if(!s)throw new w("Expected group after '"+o+"'",r);return s}formatUnsupportedCmd(t){let r=[];for(let i=0;i<t.length;i++)r.push({type:"textord",mode:"text",text:t[i]});let o={type:"text",mode:this.mode,body:r};return{type:"color",mode:this.mode,color:this.settings.errorColor,body:[o]}}parseAtom(t){let r=this.parseGroup("atom",t);if(this.mode==="text")return r;let o,s;for(;;){this.consumeSpaces();let i=this.fetch();if(i.text==="\\limits"||i.text==="\\nolimits"){if(r&&r.type==="op"){let l=i.text==="\\limits";r.limits=l,r.alwaysHandleSupSub=!0}else if(r&&r.type==="operatorname")r.alwaysHandleSupSub&&(r.limits=i.text==="\\limits");else throw new w("Limit controls must follow a math operator",i);this.consume()}else if(i.text==="^"){if(o)throw new w("Double superscript",i);o=this.handleSupSubscript("superscript")}else if(i.text==="_"){if(s)throw new w("Double subscript",i);s=this.handleSupSubscript("subscript")}else if(i.text==="'"){if(o)throw new w("Double superscript",i);let l={type:"textord",mode:this.mode,text:"\\prime"},u=[l];for(this.consume();this.fetch().text==="'";)u.push(l),this.consume();this.fetch().text==="^"&&u.push(this.handleSupSubscript("superscript")),o={type:"ordgroup",mode:this.mode,body:u}}else if(Te[i.text]){let l=Gt.test(i.text),u=[];for(u.push(new Z(Te[i.text])),this.consume();;){let x=this.fetch().text;if(!Te[x]||Gt.test(x)!==l)break;u.unshift(new Z(Te[x])),this.consume()}let h=this.subparse(u);l?s={type:"ordgroup",mode:"math",body:h}:o={type:"ordgroup",mode:"math",body:h}}else break}if(o||s){if(r&&r.type==="multiscript"&&!r.postscripts)return r.postscripts={sup:o,sub:s},r;{let i=!r||r.type!=="op"&&r.type!=="operatorname"?void 0:Le(this.nextToken.text);return{type:"supsub",mode:this.mode,base:r,sup:o,sub:s,isFollowedByDelimiter:i}}}else return r}parseFunction(t,r){let o=this.fetch(),s=o.text,i=oe[s];if(!i)return null;if(this.consume(),r&&r!=="atom"&&!i.allowedInArgument)throw new w("Got function '"+s+"' with no arguments"+(r?" as "+r:""),o);if(this.mode==="text"&&!i.allowedInText)throw new w("Can't use function '"+s+"' in text mode",o);if(this.mode==="math"&&i.allowedInMath===!1)throw new w("Can't use function '"+s+"' in math mode",o);let l=this.prevAtomType,{args:u,optArgs:h}=this.parseArguments(s,i);return this.prevAtomType=l,this.callFunction(s,u,h,o,t)}callFunction(t,r,o,s,i){let l={funcName:t,parser:this,token:s,breakOnTokenText:i},u=oe[t];if(u&&u.handler)return u.handler(l,r,o);throw new w(`No function handler for ${t}`)}parseArguments(t,r){let o=r.numArgs+r.numOptionalArgs;if(o===0)return{args:[],optArgs:[]};let s=[],i=[];for(let l=0;l<o;l++){let u=r.argTypes&&r.argTypes[l],h=l<r.numOptionalArgs;(r.primitive&&u==null||r.type==="sqrt"&&l===1&&i[0]==null)&&(u="primitive");let x=this.parseGroupOfType(`argument to '${t}'`,u,h);if(h)i.push(x);else if(x!=null)s.push(x);else throw new w("Null argument, please report this as a bug")}return{args:s,optArgs:i}}parseGroupOfType(t,r,o){switch(r){case"size":return this.parseSizeGroup(o);case"url":return this.parseUrlGroup(o);case"math":case"text":return this.parseArgumentGroup(o,r);case"hbox":{let s=this.parseArgumentGroup(o,"text");return s!=null?{type:"styling",mode:s.mode,body:[s],scriptLevel:"text"}:null}case"raw":{let s=this.parseStringGroup("raw",o);return s!=null?{type:"raw",mode:"text",string:s.text}:null}case"primitive":{if(o)throw new w("A primitive argument cannot be optional");let s=this.parseGroup(t);if(s==null)throw new w("Expected group as "+t,this.fetch());return s}case"original":case null:case void 0:return this.parseArgumentGroup(o);default:throw new w("Unknown group type as "+t,this.fetch())}}consumeSpaces(){for(;;){let t=this.fetch().text;if(t===" "||t==="\xA0"||t==="\uFE0E")this.consume();else break}}parseStringGroup(t,r){let o=this.gullet.scanArgument(r);if(o==null)return null;let s="",i;for(;(i=this.fetch()).text!=="EOF";)s+=i.text,this.consume();return this.consume(),o.text=s,o}parseRegexGroup(t,r){let o=this.fetch(),s=o,i="",l;for(;(l=this.fetch()).text!=="EOF"&&t.test(i+l.text);)s=l,i+=s.text,this.consume();if(i==="")throw new w("Invalid "+r+": '"+o.text+"'",o);return o.range(s,i)}parseSizeGroup(t){let r,o=!1;if(this.gullet.consumeSpaces(),!t&&this.gullet.future().text!=="{"?r=this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/,"size"):r=this.parseStringGroup("size",t),!r)return null;!t&&r.text.length===0&&(r.text="0pt",o=!0);let s=to.exec(r.text);if(!s)throw new w("Invalid size: '"+r.text+"'",r);let i={number:+(s[1]+s[2]),unit:s[3]};if(!Zt(i))throw new w("Invalid unit: '"+i.unit+"'",r);return{type:"size",mode:this.mode,value:i,isBlank:o}}parseUrlGroup(t){this.gullet.lexer.setCatcode("%",13),this.gullet.lexer.setCatcode("~",12);let r=this.parseStringGroup("url",t);if(this.gullet.lexer.setCatcode("%",14),this.gullet.lexer.setCatcode("~",13),r==null)return null;let o=r.text.replace(/\\([#$%&~_^{}])/g,"$1");return o=r.text.replace(/{\u2044}/g,"/"),{type:"url",mode:this.mode,url:o}}parseArgumentGroup(t,r){let o=this.gullet.scanArgument(t);if(o==null)return null;let s=this.mode;r&&this.switchMode(r),this.gullet.beginGroup();let i=this.parseExpression(!1,"EOF");this.expect("EOF"),this.gullet.endGroup();let l={type:"ordgroup",mode:this.mode,loc:o.loc,body:i};return r&&this.switchMode(s),l}parseGroup(t,r){let o=this.fetch(),s=o.text,i;if(s==="{"||s==="\\begingroup"||s==="\\toggle"){this.consume();let l=s==="{"?"}":s==="\\begingroup"?"\\endgroup":"\\endtoggle";this.gullet.beginGroup();let u=this.parseExpression(!1,l),h=this.fetch();this.expect(l),this.gullet.endGroup(),i={type:h.text==="\\endtoggle"?"toggle":"ordgroup",mode:this.mode,loc:V.range(o,h),body:u,semisimple:s==="\\begingroup"||void 0}}else i=this.parseFunction(r,t)||this.parseSymbol(),i==null&&s[0]==="\\"&&!Object.prototype.hasOwnProperty.call(fr,s)&&(i=this.formatUnsupportedCmd(s),this.consume());return i}formLigatures(t){let r=t.length-1;for(let o=0;o<r;++o){let s=t[o],i=s.text;i==="-"&&t[o+1].text==="-"&&(o+1<r&&t[o+2].text==="-"?(t.splice(o,3,{type:"textord",mode:"text",loc:V.range(s,t[o+2]),text:"---"}),r-=2):(t.splice(o,2,{type:"textord",mode:"text",loc:V.range(s,t[o+1]),text:"--"}),r-=1)),(i==="'"||i==="`")&&t[o+1].text===i&&(t.splice(o,2,{type:"textord",mode:"text",loc:V.range(s,t[o+1]),text:i+i}),r-=1)}}parseSymbol(){let t=this.fetch(),r=t.text;if(/^\\verb[^a-zA-Z]/.test(r)){this.consume();let i=r.slice(5),l=i.charAt(0)==="*";if(l&&(i=i.slice(1)),i.length<2||i.charAt(0)!==i.slice(-1))throw new w(`\\verb assertion failed -- please report what input caused this bug`);return i=i.slice(1,-1),{type:"verb",mode:"text",body:i,star:l}}if(Object.prototype.hasOwnProperty.call(jt,r[0])&&this.mode==="math"&&!I[this.mode][r[0]]){if(this.settings.strict&&this.mode==="math")throw new w(`Accented Unicode text character "${r[0]}" used in math mode`,t);r=jt[r[0]]+r.slice(1)}let o=this.mode==="math"?Pt.exec(r):null;o&&(r=r.substring(0,o.index),r==="i"?r="\u0131":r==="j"&&(r="\u0237"));let s;if(I[this.mode][r]){let i=I[this.mode][r].group;i==="bin"&&eo.includes(this.prevAtomType)&&(i="open");let l=V.range(t),u;if(Object.prototype.hasOwnProperty.call(Lr,i)){let h=i;u={type:"atom",mode:this.mode,family:h,loc:l,text:r}}else{if(Rt[r]){this.consume();let h=this.fetch().text.charCodeAt(0),x=h===65025?"mathscr":"mathcal";return(h===65024||h===65025)&&this.consume(),{type:"font",mode:"math",font:x,body:{type:"mathord",mode:"math",loc:l,text:Rt[r]}}}u={type:i,mode:this.mode,loc:l,text:r}}s=u}else if(r.charCodeAt(0)>=128||Pt.exec(r)){if(this.settings.strict&&this.mode==="math")throw new w(`Unicode text character "${r[0]}" used in math mode`,t);s={type:"textord",mode:"text",loc:V.range(t),text:r}}else return null;if(this.consume(),o)for(let i=0;i<o[0].length;i++){let l=o[0][i];if(!Ge[l])throw new w(`Unknown accent ' ${l}'`,t);let u=Ge[l][this.mode]||Ge[l].text;if(!u)throw new w(`Accent ${l} unsupported in ${this.mode} mode`,t);s={type:"accent",mode:this.mode,loc:V.range(t),label:u,isStretchy:!1,base:s}}return s}},gr=function(e,t){if(!(typeof e=="string"||e instanceof String))throw new TypeError("Temml can only parse string typed expression");let r=new $e(e,t);delete r.gullet.macros.current["\\df@tag"];let o=r.parse();if(!(o.length>0&&o[0].type&&o[0].type==="array"&&o[0].addEqnNum)&&r.gullet.macros.get("\\df@tag")){if(!t.displayMode)throw new w("\\tag works only in display mode");r.gullet.feed("\\df@tag"),o=[{type:"tag",mode:"text",body:o,tag:r.parse()}]}return o},ro=[2,2,3,3],Ke=class e{constructor(t){this.level=t.level,this.color=t.color,this.font=t.font||"",this.fontFamily=t.fontFamily||"",this.fontSize=t.fontSize||1,this.fontWeight=t.fontWeight||"",this.fontShape=t.fontShape||"",this.maxSize=t.maxSize}extend(t){let r={level:this.level,color:this.color,font:this.font,fontFamily:this.fontFamily,fontSize:this.fontSize,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=t[o]);return new e(r)}withLevel(t){return this.extend({level:t})}incrementLevel(){return this.extend({level:Math.min(this.level+1,3)})}inSubOrSup(){return this.extend({level:ro[this.level]})}withColor(t){return this.extend({color:t})}withFont(t){return this.extend({font:t})}withTextFontFamily(t){return this.extend({fontFamily:t,font:""})}withFontSize(t){return this.extend({fontSize:t})}withTextFontWeight(t){return this.extend({fontWeight:t,font:""})}withTextFontShape(t){return this.extend({fontShape:t,font:""})}getColor(){return this.color}},no="0.10.34";function oo(e){let t={},r=0,o=document.getElementsByClassName("tml-eqn");for(let l of o)for(r+=1,l.setAttribute("id","tml-eqn-"+String(r));l.tagName!=="mtable";)if(l.getElementsByClassName("tml-label").length>0){let h=l.attributes.id.value;t[h]=String(r);break}else l=l.parentElement;let s=document.getElementsByClassName("tml-tageqn");for(let l of s)if(l.getElementsByClassName("tml-label").length>0){let h=l.getElementsByClassName("tml-tag");if(h.length>0){let x=l.attributes.id.value;t[x]=h[0].textContent}}[...e.getElementsByClassName("tml-ref")].forEach(l=>{let u=l.getAttribute("href"),h=t[u.slice(1)];l.className.indexOf("tml-eqref")===-1?(h=h.replace(/^\(/,""),h=h.replace(/\)$/,"")):(h.charAt(0)!=="("&&(h="("+h),h.slice(-1)!==")"&&(h=h+")"));let x=document.createElementNS("http://www.w3.org/1998/Math/MathML","mtext");x.appendChild(document.createTextNode(h));let A=document.createElementNS("http://www.w3.org/1998/Math/MathML","math");A.appendChild(x),l.appendChild(A)})}var br=function(e,t,r={}){t.textContent="";let o=t.tagName.toLowerCase()==="math";o&&(r.wrap="none");let s=it(e,r);o?(t.textContent="",s.children.forEach(i=>{t.appendChild(i.toNode())})):s.children.length>1?(t.textContent="",s.children.forEach(i=>{t.appendChild(i.toNode())})):t.appendChild(s.toNode())};typeof document<"u"&&document.compatMode!=="CSS1Compat"&&(typeof console<"u"&&console.warn("Warning: Temml doesn't work in quirks mode. Make sure your website has a suitable doctype."),br=function(){throw new w("Temml doesn't work in quirks mode.")});var ao=function(e,t){return it(e,t).toMarkup()},so=function(e,t){let r=new pe(t);return gr(e,r)},io=function(e,t){let r=new pe(t);if(r.macros={},!(typeof e=="string"||e instanceof String))throw new TypeError("Temml can only parse string typed expression");let o=new $e(e,r,!0);return delete o.gullet.macros.current["\\df@tag"],o.parse()},lo=function(e,t,r){if(r.throwOnError||!(e instanceof w))throw e;let o=new De(["temml-error"],[new Or(t+` `+e.toString())]);return o.style.color=r.errorColor,o.style.whiteSpace="pre-line",o},it=function(e,t){let r=new pe(t);try{let o=gr(e,r),s=new Ke({level:r.displayMode?F.DISPLAY:F.TEXT,maxSize:r.maxSize});return Wr(o,e,s,r)}catch(o){return lo(o,e,r)}},xr={version:no,render:br,renderToString:ao,postProcess:oo,ParseError:w,definePreamble:io,__parse:so,__renderToMathMLTree:it,__defineSymbol:n,__defineMacro:c};function ho(e,{displayMode:t=!0}={}){let r=xr.renderToString(e,{displayMode:t,annotate:!0,throwOnError:!0}),o=document.implementation.createHTMLDocument("");return o.body.innerHTML=r,o.body.querySelector("math")?.innerHTML??""}export{ho as default}; latex-to-mathml/index.js 0000644 00001332025 15206736335 0011246 0 ustar 00 // node_modules/temml/dist/temml.mjs var ParseError = class _ParseError { constructor(message, token) { let error = " " + message; let start; const loc = token && token.loc; if (loc && loc.start <= loc.end) { const input = loc.lexer.input; start = loc.start; const end = loc.end; if (start === input.length) { error += " at end of input: "; } else { error += " at position " + (start + 1) + ": "; } const underlined = input.slice(start, end).replace(/[^]/g, "$&\u0332"); let left; if (start > 15) { left = "\u2026" + input.slice(start - 15, start); } else { left = input.slice(0, start); } let right; if (end + 15 < input.length) { right = input.slice(end, end + 15) + "\u2026"; } else { right = input.slice(end); } error += left + underlined + right; } const self = new Error(error); self.name = "ParseError"; self.__proto__ = _ParseError.prototype; self.position = start; return self; } }; ParseError.prototype.__proto__ = Error.prototype; var deflt = function(setting, defaultIfUndefined) { return setting === void 0 ? defaultIfUndefined : setting; }; var uppercase = /([A-Z])/g; var hyphenate = function(str) { return str.replace(uppercase, "-$1").toLowerCase(); }; var ESCAPE_LOOKUP = { "&": "&", ">": ">", "<": "<", '"': """, "'": "'" }; var ESCAPE_REGEX = /[&><"']/g; function escape(text2) { return String(text2).replace(ESCAPE_REGEX, (match) => ESCAPE_LOOKUP[match]); } var getBaseElem = function(group) { if (group.type === "ordgroup") { if (group.body.length === 1) { return getBaseElem(group.body[0]); } else { return group; } } else if (group.type === "color") { if (group.body.length === 1) { return getBaseElem(group.body[0]); } else { return group; } } else if (group.type === "font") { return getBaseElem(group.body); } else { return group; } }; var isCharacterBox = function(group) { const baseElem = getBaseElem(group); return baseElem.type === "mathord" || baseElem.type === "textord" || baseElem.type === "atom"; }; var assert = function(value) { if (!value) { throw new Error("Expected non-null, but got " + String(value)); } return value; }; var protocolFromUrl = function(url) { const protocol = /^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(url); if (!protocol) { return "_relative"; } if (protocol[2] !== ":") { return null; } if (!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(protocol[1])) { return null; } return protocol[1].toLowerCase(); }; var round = function(n) { return +n.toFixed(4); }; var utils = { deflt, escape, hyphenate, getBaseElem, isCharacterBox, protocolFromUrl, round }; var Settings = class { constructor(options) { options = options || {}; this.displayMode = utils.deflt(options.displayMode, false); this.annotate = utils.deflt(options.annotate, false); this.leqno = utils.deflt(options.leqno, false); this.throwOnError = utils.deflt(options.throwOnError, false); this.errorColor = utils.deflt(options.errorColor, "#b22222"); this.macros = options.macros || {}; this.wrap = utils.deflt(options.wrap, "tex"); this.xml = utils.deflt(options.xml, false); this.colorIsTextColor = utils.deflt(options.colorIsTextColor, false); this.strict = utils.deflt(options.strict, false); this.trust = utils.deflt(options.trust, false); this.maxSize = options.maxSize === void 0 ? [Infinity, Infinity] : Array.isArray(options.maxSize) ? options.maxSize : [Infinity, Infinity]; this.maxExpand = Math.max(0, utils.deflt(options.maxExpand, 1e3)); } /** * Check whether to test potentially dangerous input, and return * `true` (trusted) or `false` (untrusted). The sole argument `context` * should be an object with `command` field specifying the relevant LaTeX * command (as a string starting with `\`), and any other arguments, etc. * If `context` has a `url` field, a `protocol` field will automatically * get added by this function (changing the specified object). */ isTrusted(context) { if (context.url && !context.protocol) { const protocol = utils.protocolFromUrl(context.url); if (protocol == null) { return false; } context.protocol = protocol; } const trust = typeof this.trust === "function" ? this.trust(context) : this.trust; return Boolean(trust); } }; var _functions = {}; var _mathmlGroupBuilders = {}; function defineFunction({ type, names, props, handler, mathmlBuilder: mathmlBuilder2 }) { const data = { type, numArgs: props.numArgs, argTypes: props.argTypes, allowedInArgument: !!props.allowedInArgument, allowedInText: !!props.allowedInText, allowedInMath: props.allowedInMath === void 0 ? true : props.allowedInMath, numOptionalArgs: props.numOptionalArgs || 0, infix: !!props.infix, primitive: !!props.primitive, handler }; for (let i = 0; i < names.length; ++i) { _functions[names[i]] = data; } if (type) { if (mathmlBuilder2) { _mathmlGroupBuilders[type] = mathmlBuilder2; } } } function defineFunctionBuilders({ type, mathmlBuilder: mathmlBuilder2 }) { defineFunction({ type, names: [], props: { numArgs: 0 }, handler() { throw new Error("Should never be called."); }, mathmlBuilder: mathmlBuilder2 }); } var normalizeArgument = function(arg) { return arg.type === "ordgroup" && arg.body.length === 1 ? arg.body[0] : arg; }; var ordargument = function(arg) { return arg.type === "ordgroup" ? arg.body : [arg]; }; var DocumentFragment = class { constructor(children) { this.children = children; this.classes = []; this.style = {}; } hasClass(className) { return this.classes.includes(className); } /** Convert the fragment into a node. */ toNode() { const frag = document.createDocumentFragment(); for (let i = 0; i < this.children.length; i++) { frag.appendChild(this.children[i].toNode()); } return frag; } /** Convert the fragment into HTML markup. */ toMarkup() { let markup = ""; for (let i = 0; i < this.children.length; i++) { markup += this.children[i].toMarkup(); } return markup; } /** * Converts the math node into a string, similar to innerText. Applies to * MathDomNode's only. */ toText() { const toText = (child) => child.toText(); return this.children.map(toText).join(""); } }; var createClass = function(classes) { return classes.filter((cls) => cls).join(" "); }; var initNode = function(classes, style) { this.classes = classes || []; this.attributes = {}; this.style = style || {}; }; var toNode = function(tagName) { const node = document.createElement(tagName); node.className = createClass(this.classes); for (const style in this.style) { if (Object.prototype.hasOwnProperty.call(this.style, style)) { node.style[style] = this.style[style]; } } for (const attr in this.attributes) { if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) { node.setAttribute(attr, this.attributes[attr]); } } for (let i = 0; i < this.children.length; i++) { node.appendChild(this.children[i].toNode()); } return node; }; var toMarkup = function(tagName) { let markup = `<${tagName}`; if (this.classes.length) { markup += ` class="${utils.escape(createClass(this.classes))}"`; } let styles = ""; for (const style in this.style) { if (Object.prototype.hasOwnProperty.call(this.style, style)) { styles += `${utils.hyphenate(style)}:${this.style[style]};`; } } if (styles) { markup += ` style="${styles}"`; } for (const attr in this.attributes) { if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) { markup += ` ${attr}="${utils.escape(this.attributes[attr])}"`; } } markup += ">"; for (let i = 0; i < this.children.length; i++) { markup += this.children[i].toMarkup(); } markup += `</${tagName}>`; return markup; }; var Span = class { constructor(classes, children, style) { initNode.call(this, classes, style); this.children = children || []; } setAttribute(attribute, value) { this.attributes[attribute] = value; } toNode() { return toNode.call(this, "span"); } toMarkup() { return toMarkup.call(this, "span"); } }; var TextNode$1 = class TextNode { constructor(text2) { this.text = text2; } toNode() { return document.createTextNode(this.text); } toMarkup() { return utils.escape(this.text); } }; var AnchorNode = class { constructor(href, classes, children) { this.href = href; this.classes = classes; this.children = children || []; } toNode() { const node = document.createElement("a"); node.setAttribute("href", this.href); if (this.classes.length > 0) { node.className = createClass(this.classes); } for (let i = 0; i < this.children.length; i++) { node.appendChild(this.children[i].toNode()); } return node; } toMarkup() { let markup = `<a href='${utils.escape(this.href)}'`; if (this.classes.length > 0) { markup += ` class="${utils.escape(createClass(this.classes))}"`; } markup += ">"; for (let i = 0; i < this.children.length; i++) { markup += this.children[i].toMarkup(); } markup += "</a>"; return markup; } }; var Img = class { constructor(src, alt, style) { this.alt = alt; this.src = src; this.classes = ["mord"]; this.style = style; } hasClass(className) { return this.classes.includes(className); } toNode() { const node = document.createElement("img"); node.src = this.src; node.alt = this.alt; node.className = "mord"; for (const style in this.style) { if (Object.prototype.hasOwnProperty.call(this.style, style)) { node.style[style] = this.style[style]; } } return node; } toMarkup() { let markup = `<img src='${this.src}' alt='${this.alt}'`; let styles = ""; for (const style in this.style) { if (Object.prototype.hasOwnProperty.call(this.style, style)) { styles += `${utils.hyphenate(style)}:${this.style[style]};`; } } if (styles) { markup += ` style="${utils.escape(styles)}"`; } markup += ">"; return markup; } }; function newDocumentFragment(children) { return new DocumentFragment(children); } var MathNode = class { constructor(type, children, classes, style) { this.type = type; this.attributes = {}; this.children = children || []; this.classes = classes || []; this.style = style || {}; this.label = ""; } /** * Sets an attribute on a MathML node. MathML depends on attributes to convey a * semantic content, so this is used heavily. */ setAttribute(name, value) { this.attributes[name] = value; } /** * Gets an attribute on a MathML node. */ getAttribute(name) { return this.attributes[name]; } setLabel(value) { this.label = value; } /** * Converts the math node into a MathML-namespaced DOM element. */ toNode() { const node = document.createElementNS("http://www.w3.org/1998/Math/MathML", this.type); for (const attr in this.attributes) { if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) { node.setAttribute(attr, this.attributes[attr]); } } if (this.classes.length > 0) { node.className = createClass(this.classes); } for (const style in this.style) { if (Object.prototype.hasOwnProperty.call(this.style, style)) { node.style[style] = this.style[style]; } } for (let i = 0; i < this.children.length; i++) { node.appendChild(this.children[i].toNode()); } return node; } /** * Converts the math node into an HTML markup string. */ toMarkup() { let markup = "<" + this.type; for (const attr in this.attributes) { if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) { markup += " " + attr + '="'; markup += utils.escape(this.attributes[attr]); markup += '"'; } } if (this.classes.length > 0) { markup += ` class="${utils.escape(createClass(this.classes))}"`; } let styles = ""; for (const style in this.style) { if (Object.prototype.hasOwnProperty.call(this.style, style)) { styles += `${utils.hyphenate(style)}:${this.style[style]};`; } } if (styles) { markup += ` style="${styles}"`; } markup += ">"; for (let i = 0; i < this.children.length; i++) { markup += this.children[i].toMarkup(); } markup += "</" + this.type + ">"; return markup; } /** * Converts the math node into a string, similar to innerText, but escaped. */ toText() { return this.children.map((child) => child.toText()).join(""); } }; var TextNode2 = class { constructor(text2) { this.text = text2; } /** * Converts the text node into a DOM text node. */ toNode() { return document.createTextNode(this.text); } /** * Converts the text node into escaped HTML markup * (representing the text itself). */ toMarkup() { return utils.escape(this.toText()); } /** * Converts the text node into a string * (representing the text itself). */ toText() { return this.text; } }; var wrapWithMstyle = (expression) => { let node; if (expression.length === 1 && expression[0].type === "mrow") { node = expression.pop(); node.type = "mstyle"; } else { node = new MathNode("mstyle", expression); } return node; }; var mathMLTree = { MathNode, TextNode: TextNode2, newDocumentFragment }; var estimatedWidth = (node) => { let width = 0; if (node.body) { for (const item of node.body) { width += estimatedWidth(item); } } else if (node.type === "supsub") { width += estimatedWidth(node.base); if (node.sub) { width += 0.7 * estimatedWidth(node.sub); } if (node.sup) { width += 0.7 * estimatedWidth(node.sup); } } else if (node.type === "mathord" || node.type === "textord") { for (const ch of node.text.split("")) { const codePoint = ch.codePointAt(0); if (96 < codePoint && codePoint < 123 || 944 < codePoint && codePoint < 970) { width += 0.56; } else if (47 < codePoint && codePoint < 58) { width += 0.5; } else { width += 0.92; } } } else { width += 1; } return width; }; var stretchyCodePoint = { widehat: "^", widecheck: "\u02C7", widetilde: "~", wideparen: "\u23DC", // \u23dc utilde: "~", overleftarrow: "\u2190", underleftarrow: "\u2190", xleftarrow: "\u2190", overrightarrow: "\u2192", underrightarrow: "\u2192", xrightarrow: "\u2192", underbrace: "\u23DF", overbrace: "\u23DE", overgroup: "\u23E0", overparen: "\u23DC", undergroup: "\u23E1", underparen: "\u23DD", overleftrightarrow: "\u2194", underleftrightarrow: "\u2194", xleftrightarrow: "\u2194", Overrightarrow: "\u21D2", xRightarrow: "\u21D2", overleftharpoon: "\u21BC", xleftharpoonup: "\u21BC", overrightharpoon: "\u21C0", xrightharpoonup: "\u21C0", xLeftarrow: "\u21D0", xLeftrightarrow: "\u21D4", xhookleftarrow: "\u21A9", xhookrightarrow: "\u21AA", xmapsto: "\u21A6", xrightharpoondown: "\u21C1", xleftharpoondown: "\u21BD", xtwoheadleftarrow: "\u219E", xtwoheadrightarrow: "\u21A0", xlongequal: "=", xrightleftarrows: "\u21C4", yields: "\u2192", yieldsLeft: "\u2190", mesomerism: "\u2194", longrightharpoonup: "\u21C0", longleftharpoondown: "\u21BD", eqrightharpoonup: "\u21C0", eqleftharpoondown: "\u21BD", "\\cdrightarrow": "\u2192", "\\cdleftarrow": "\u2190", "\\cdlongequal": "=" }; var mathMLnode = function(label) { const child = new mathMLTree.TextNode(stretchyCodePoint[label.slice(1)]); const node = new mathMLTree.MathNode("mo", [child]); node.setAttribute("stretchy", "true"); return node; }; var crookedWides = ["\\widetilde", "\\widehat", "\\widecheck", "\\utilde"]; var accentNode = (group) => { const mo = mathMLnode(group.label); if (crookedWides.includes(group.label)) { const width = estimatedWidth(group.base); if (1 < width && width < 1.6) { mo.classes.push("tml-crooked-2"); } else if (1.6 <= width && width < 2.5) { mo.classes.push("tml-crooked-3"); } else if (2.5 <= width) { mo.classes.push("tml-crooked-4"); } } return mo; }; var stretchy = { mathMLnode, accentNode }; var ATOMS = { bin: 1, close: 1, inner: 1, open: 1, punct: 1, rel: 1 }; var NON_ATOMS = { "accent-token": 1, mathord: 1, "op-token": 1, spacing: 1, textord: 1 }; var symbols = { math: {}, text: {} }; function defineSymbol(mode, group, replace, name, acceptUnicodeChar) { symbols[mode][name] = { group, replace }; if (acceptUnicodeChar && replace) { symbols[mode][replace] = symbols[mode][name]; } } var math = "math"; var text = "text"; var accent = "accent-token"; var bin = "bin"; var close = "close"; var inner = "inner"; var mathord = "mathord"; var op = "op-token"; var open = "open"; var punct = "punct"; var rel = "rel"; var spacing = "spacing"; var textord = "textord"; defineSymbol(math, rel, "\u2261", "\\equiv", true); defineSymbol(math, rel, "\u227A", "\\prec", true); defineSymbol(math, rel, "\u227B", "\\succ", true); defineSymbol(math, rel, "\u223C", "\\sim", true); defineSymbol(math, rel, "\u27C2", "\\perp", true); defineSymbol(math, rel, "\u2AAF", "\\preceq", true); defineSymbol(math, rel, "\u2AB0", "\\succeq", true); defineSymbol(math, rel, "\u2243", "\\simeq", true); defineSymbol(math, rel, "\u224C", "\\backcong", true); defineSymbol(math, rel, "|", "\\mid", true); defineSymbol(math, rel, "\u226A", "\\ll", true); defineSymbol(math, rel, "\u226B", "\\gg", true); defineSymbol(math, rel, "\u224D", "\\asymp", true); defineSymbol(math, rel, "\u2225", "\\parallel"); defineSymbol(math, rel, "\u2323", "\\smile", true); defineSymbol(math, rel, "\u2291", "\\sqsubseteq", true); defineSymbol(math, rel, "\u2292", "\\sqsupseteq", true); defineSymbol(math, rel, "\u2250", "\\doteq", true); defineSymbol(math, rel, "\u2322", "\\frown", true); defineSymbol(math, rel, "\u220B", "\\ni", true); defineSymbol(math, rel, "\u220C", "\\notni", true); defineSymbol(math, rel, "\u221D", "\\propto", true); defineSymbol(math, rel, "\u22A2", "\\vdash", true); defineSymbol(math, rel, "\u22A3", "\\dashv", true); defineSymbol(math, rel, "\u220B", "\\owns"); defineSymbol(math, rel, "\u2258", "\\arceq", true); defineSymbol(math, rel, "\u2259", "\\wedgeq", true); defineSymbol(math, rel, "\u225A", "\\veeeq", true); defineSymbol(math, rel, "\u225B", "\\stareq", true); defineSymbol(math, rel, "\u225D", "\\eqdef", true); defineSymbol(math, rel, "\u225E", "\\measeq", true); defineSymbol(math, rel, "\u225F", "\\questeq", true); defineSymbol(math, rel, "\u2260", "\\ne", true); defineSymbol(math, rel, "\u2260", "\\neq"); defineSymbol(math, rel, "\u2A75", "\\eqeq", true); defineSymbol(math, rel, "\u2A76", "\\eqeqeq", true); defineSymbol(math, rel, "\u2237", "\\dblcolon", true); defineSymbol(math, rel, "\u2254", "\\coloneqq", true); defineSymbol(math, rel, "\u2255", "\\eqqcolon", true); defineSymbol(math, rel, "\u2239", "\\eqcolon", true); defineSymbol(math, rel, "\u2A74", "\\Coloneqq", true); defineSymbol(math, punct, ".", "\\ldotp"); defineSymbol(math, punct, "\xB7", "\\cdotp"); defineSymbol(math, textord, "#", "\\#"); defineSymbol(text, textord, "#", "\\#"); defineSymbol(math, textord, "&", "\\&"); defineSymbol(text, textord, "&", "\\&"); defineSymbol(math, textord, "\u2135", "\\aleph", true); defineSymbol(math, textord, "\u2200", "\\forall", true); defineSymbol(math, textord, "\u210F", "\\hbar", true); defineSymbol(math, textord, "\u2203", "\\exists", true); defineSymbol(math, bin, "\u2207", "\\nabla", true); defineSymbol(math, textord, "\u266D", "\\flat", true); defineSymbol(math, textord, "\u2113", "\\ell", true); defineSymbol(math, textord, "\u266E", "\\natural", true); defineSymbol(math, textord, "\u212B", "\\Angstrom", true); defineSymbol(text, textord, "\u212B", "\\Angstrom", true); defineSymbol(math, textord, "\u2663", "\\clubsuit", true); defineSymbol(math, textord, "\u2667", "\\varclubsuit", true); defineSymbol(math, textord, "\u2118", "\\wp", true); defineSymbol(math, textord, "\u266F", "\\sharp", true); defineSymbol(math, textord, "\u2662", "\\diamondsuit", true); defineSymbol(math, textord, "\u2666", "\\vardiamondsuit", true); defineSymbol(math, textord, "\u211C", "\\Re", true); defineSymbol(math, textord, "\u2661", "\\heartsuit", true); defineSymbol(math, textord, "\u2665", "\\varheartsuit", true); defineSymbol(math, textord, "\u2111", "\\Im", true); defineSymbol(math, textord, "\u2660", "\\spadesuit", true); defineSymbol(math, textord, "\u2664", "\\varspadesuit", true); defineSymbol(math, textord, "\u2640", "\\female", true); defineSymbol(math, textord, "\u2642", "\\male", true); defineSymbol(math, textord, "\xA7", "\\S", true); defineSymbol(text, textord, "\xA7", "\\S"); defineSymbol(math, textord, "\xB6", "\\P", true); defineSymbol(text, textord, "\xB6", "\\P"); defineSymbol(text, textord, "\u263A", "\\smiley", true); defineSymbol(math, textord, "\u263A", "\\smiley", true); defineSymbol(math, textord, "\u2020", "\\dag"); defineSymbol(text, textord, "\u2020", "\\dag"); defineSymbol(text, textord, "\u2020", "\\textdagger"); defineSymbol(math, textord, "\u2021", "\\ddag"); defineSymbol(text, textord, "\u2021", "\\ddag"); defineSymbol(text, textord, "\u2021", "\\textdaggerdbl"); defineSymbol(math, close, "\u23B1", "\\rmoustache", true); defineSymbol(math, open, "\u23B0", "\\lmoustache", true); defineSymbol(math, close, "\u27EF", "\\rgroup", true); defineSymbol(math, open, "\u27EE", "\\lgroup", true); defineSymbol(math, bin, "\u2213", "\\mp", true); defineSymbol(math, bin, "\u2296", "\\ominus", true); defineSymbol(math, bin, "\u228E", "\\uplus", true); defineSymbol(math, bin, "\u2293", "\\sqcap", true); defineSymbol(math, bin, "\u2217", "\\ast"); defineSymbol(math, bin, "\u2294", "\\sqcup", true); defineSymbol(math, bin, "\u25EF", "\\bigcirc", true); defineSymbol(math, bin, "\u2219", "\\bullet", true); defineSymbol(math, bin, "\u2021", "\\ddagger"); defineSymbol(math, bin, "\u2240", "\\wr", true); defineSymbol(math, bin, "\u2A3F", "\\amalg"); defineSymbol(math, bin, "&", "\\And"); defineSymbol(math, bin, "\u2AFD", "\\sslash", true); defineSymbol(math, rel, "\u27F5", "\\longleftarrow", true); defineSymbol(math, rel, "\u21D0", "\\Leftarrow", true); defineSymbol(math, rel, "\u27F8", "\\Longleftarrow", true); defineSymbol(math, rel, "\u27F6", "\\longrightarrow", true); defineSymbol(math, rel, "\u21D2", "\\Rightarrow", true); defineSymbol(math, rel, "\u27F9", "\\Longrightarrow", true); defineSymbol(math, rel, "\u2194", "\\leftrightarrow", true); defineSymbol(math, rel, "\u27F7", "\\longleftrightarrow", true); defineSymbol(math, rel, "\u21D4", "\\Leftrightarrow", true); defineSymbol(math, rel, "\u27FA", "\\Longleftrightarrow", true); defineSymbol(math, rel, "\u21A4", "\\mapsfrom", true); defineSymbol(math, rel, "\u21A6", "\\mapsto", true); defineSymbol(math, rel, "\u27FC", "\\longmapsto", true); defineSymbol(math, rel, "\u2197", "\\nearrow", true); defineSymbol(math, rel, "\u21A9", "\\hookleftarrow", true); defineSymbol(math, rel, "\u21AA", "\\hookrightarrow", true); defineSymbol(math, rel, "\u2198", "\\searrow", true); defineSymbol(math, rel, "\u21BC", "\\leftharpoonup", true); defineSymbol(math, rel, "\u21C0", "\\rightharpoonup", true); defineSymbol(math, rel, "\u2199", "\\swarrow", true); defineSymbol(math, rel, "\u21BD", "\\leftharpoondown", true); defineSymbol(math, rel, "\u21C1", "\\rightharpoondown", true); defineSymbol(math, rel, "\u2196", "\\nwarrow", true); defineSymbol(math, rel, "\u21CC", "\\rightleftharpoons", true); defineSymbol(math, mathord, "\u21AF", "\\lightning", true); defineSymbol(math, mathord, "\u220E", "\\QED", true); defineSymbol(math, mathord, "\u2030", "\\permil", true); defineSymbol(text, textord, "\u2030", "\\permil"); defineSymbol(math, mathord, "\u2609", "\\astrosun", true); defineSymbol(math, mathord, "\u263C", "\\sun", true); defineSymbol(math, mathord, "\u263E", "\\leftmoon", true); defineSymbol(math, mathord, "\u263D", "\\rightmoon", true); defineSymbol(math, mathord, "\u2295", "\\Earth"); defineSymbol(math, rel, "\u226E", "\\nless", true); defineSymbol(math, rel, "\u2A87", "\\lneq", true); defineSymbol(math, rel, "\u2268", "\\lneqq", true); defineSymbol(math, rel, "\u2268\uFE00", "\\lvertneqq"); defineSymbol(math, rel, "\u22E6", "\\lnsim", true); defineSymbol(math, rel, "\u2A89", "\\lnapprox", true); defineSymbol(math, rel, "\u2280", "\\nprec", true); defineSymbol(math, rel, "\u22E0", "\\npreceq", true); defineSymbol(math, rel, "\u22E8", "\\precnsim", true); defineSymbol(math, rel, "\u2AB9", "\\precnapprox", true); defineSymbol(math, rel, "\u2241", "\\nsim", true); defineSymbol(math, rel, "\u2224", "\\nmid", true); defineSymbol(math, rel, "\u2224", "\\nshortmid"); defineSymbol(math, rel, "\u22AC", "\\nvdash", true); defineSymbol(math, rel, "\u22AD", "\\nvDash", true); defineSymbol(math, rel, "\u22EA", "\\ntriangleleft"); defineSymbol(math, rel, "\u22EC", "\\ntrianglelefteq", true); defineSymbol(math, rel, "\u2284", "\\nsubset", true); defineSymbol(math, rel, "\u2285", "\\nsupset", true); defineSymbol(math, rel, "\u228A", "\\subsetneq", true); defineSymbol(math, rel, "\u228A\uFE00", "\\varsubsetneq"); defineSymbol(math, rel, "\u2ACB", "\\subsetneqq", true); defineSymbol(math, rel, "\u2ACB\uFE00", "\\varsubsetneqq"); defineSymbol(math, rel, "\u226F", "\\ngtr", true); defineSymbol(math, rel, "\u2A88", "\\gneq", true); defineSymbol(math, rel, "\u2269", "\\gneqq", true); defineSymbol(math, rel, "\u2269\uFE00", "\\gvertneqq"); defineSymbol(math, rel, "\u22E7", "\\gnsim", true); defineSymbol(math, rel, "\u2A8A", "\\gnapprox", true); defineSymbol(math, rel, "\u2281", "\\nsucc", true); defineSymbol(math, rel, "\u22E1", "\\nsucceq", true); defineSymbol(math, rel, "\u22E9", "\\succnsim", true); defineSymbol(math, rel, "\u2ABA", "\\succnapprox", true); defineSymbol(math, rel, "\u2246", "\\ncong", true); defineSymbol(math, rel, "\u2226", "\\nparallel", true); defineSymbol(math, rel, "\u2226", "\\nshortparallel"); defineSymbol(math, rel, "\u22AF", "\\nVDash", true); defineSymbol(math, rel, "\u22EB", "\\ntriangleright"); defineSymbol(math, rel, "\u22ED", "\\ntrianglerighteq", true); defineSymbol(math, rel, "\u228B", "\\supsetneq", true); defineSymbol(math, rel, "\u228B", "\\varsupsetneq"); defineSymbol(math, rel, "\u2ACC", "\\supsetneqq", true); defineSymbol(math, rel, "\u2ACC\uFE00", "\\varsupsetneqq"); defineSymbol(math, rel, "\u22AE", "\\nVdash", true); defineSymbol(math, rel, "\u2AB5", "\\precneqq", true); defineSymbol(math, rel, "\u2AB6", "\\succneqq", true); defineSymbol(math, bin, "\u22B4", "\\unlhd"); defineSymbol(math, bin, "\u22B5", "\\unrhd"); defineSymbol(math, rel, "\u219A", "\\nleftarrow", true); defineSymbol(math, rel, "\u219B", "\\nrightarrow", true); defineSymbol(math, rel, "\u21CD", "\\nLeftarrow", true); defineSymbol(math, rel, "\u21CF", "\\nRightarrow", true); defineSymbol(math, rel, "\u21AE", "\\nleftrightarrow", true); defineSymbol(math, rel, "\u21CE", "\\nLeftrightarrow", true); defineSymbol(math, rel, "\u25B3", "\\vartriangle"); defineSymbol(math, textord, "\u210F", "\\hslash"); defineSymbol(math, textord, "\u25BD", "\\triangledown"); defineSymbol(math, textord, "\u25CA", "\\lozenge"); defineSymbol(math, textord, "\u24C8", "\\circledS"); defineSymbol(math, textord, "\xAE", "\\circledR", true); defineSymbol(text, textord, "\xAE", "\\circledR"); defineSymbol(text, textord, "\xAE", "\\textregistered"); defineSymbol(math, textord, "\u2221", "\\measuredangle", true); defineSymbol(math, textord, "\u2204", "\\nexists"); defineSymbol(math, textord, "\u2127", "\\mho"); defineSymbol(math, textord, "\u2132", "\\Finv", true); defineSymbol(math, textord, "\u2141", "\\Game", true); defineSymbol(math, textord, "\u2035", "\\backprime"); defineSymbol(math, textord, "\u2036", "\\backdprime"); defineSymbol(math, textord, "\u2037", "\\backtrprime"); defineSymbol(math, textord, "\u25B2", "\\blacktriangle"); defineSymbol(math, textord, "\u25BC", "\\blacktriangledown"); defineSymbol(math, textord, "\u25A0", "\\blacksquare"); defineSymbol(math, textord, "\u29EB", "\\blacklozenge"); defineSymbol(math, textord, "\u2605", "\\bigstar"); defineSymbol(math, textord, "\u2222", "\\sphericalangle", true); defineSymbol(math, textord, "\u2201", "\\complement", true); defineSymbol(math, textord, "\xF0", "\\eth", true); defineSymbol(text, textord, "\xF0", "\xF0"); defineSymbol(math, textord, "\u2571", "\\diagup"); defineSymbol(math, textord, "\u2572", "\\diagdown"); defineSymbol(math, textord, "\u25A1", "\\square"); defineSymbol(math, textord, "\u25A1", "\\Box"); defineSymbol(math, textord, "\u25CA", "\\Diamond"); defineSymbol(math, textord, "\xA5", "\\yen", true); defineSymbol(text, textord, "\xA5", "\\yen", true); defineSymbol(math, textord, "\u2713", "\\checkmark", true); defineSymbol(text, textord, "\u2713", "\\checkmark"); defineSymbol(math, textord, "\u2717", "\\ballotx", true); defineSymbol(text, textord, "\u2717", "\\ballotx"); defineSymbol(text, textord, "\u2022", "\\textbullet"); defineSymbol(math, textord, "\u2136", "\\beth", true); defineSymbol(math, textord, "\u2138", "\\daleth", true); defineSymbol(math, textord, "\u2137", "\\gimel", true); defineSymbol(math, textord, "\u03DD", "\\digamma", true); defineSymbol(math, textord, "\u03F0", "\\varkappa"); defineSymbol(math, open, "\u231C", "\\ulcorner", true); defineSymbol(math, close, "\u231D", "\\urcorner", true); defineSymbol(math, open, "\u231E", "\\llcorner", true); defineSymbol(math, close, "\u231F", "\\lrcorner", true); defineSymbol(math, rel, "\u2266", "\\leqq", true); defineSymbol(math, rel, "\u2A7D", "\\leqslant", true); defineSymbol(math, rel, "\u2A95", "\\eqslantless", true); defineSymbol(math, rel, "\u2272", "\\lesssim", true); defineSymbol(math, rel, "\u2A85", "\\lessapprox", true); defineSymbol(math, rel, "\u224A", "\\approxeq", true); defineSymbol(math, bin, "\u22D6", "\\lessdot"); defineSymbol(math, rel, "\u22D8", "\\lll", true); defineSymbol(math, rel, "\u2276", "\\lessgtr", true); defineSymbol(math, rel, "\u22DA", "\\lesseqgtr", true); defineSymbol(math, rel, "\u2A8B", "\\lesseqqgtr", true); defineSymbol(math, rel, "\u2251", "\\doteqdot"); defineSymbol(math, rel, "\u2253", "\\risingdotseq", true); defineSymbol(math, rel, "\u2252", "\\fallingdotseq", true); defineSymbol(math, rel, "\u223D", "\\backsim", true); defineSymbol(math, rel, "\u22CD", "\\backsimeq", true); defineSymbol(math, rel, "\u2AC5", "\\subseteqq", true); defineSymbol(math, rel, "\u22D0", "\\Subset", true); defineSymbol(math, rel, "\u228F", "\\sqsubset", true); defineSymbol(math, rel, "\u227C", "\\preccurlyeq", true); defineSymbol(math, rel, "\u22DE", "\\curlyeqprec", true); defineSymbol(math, rel, "\u227E", "\\precsim", true); defineSymbol(math, rel, "\u2AB7", "\\precapprox", true); defineSymbol(math, rel, "\u22B2", "\\vartriangleleft"); defineSymbol(math, rel, "\u22B4", "\\trianglelefteq"); defineSymbol(math, rel, "\u22A8", "\\vDash", true); defineSymbol(math, rel, "\u22AB", "\\VDash", true); defineSymbol(math, rel, "\u22AA", "\\Vvdash", true); defineSymbol(math, rel, "\u2323", "\\smallsmile"); defineSymbol(math, rel, "\u2322", "\\smallfrown"); defineSymbol(math, rel, "\u224F", "\\bumpeq", true); defineSymbol(math, rel, "\u224E", "\\Bumpeq", true); defineSymbol(math, rel, "\u2267", "\\geqq", true); defineSymbol(math, rel, "\u2A7E", "\\geqslant", true); defineSymbol(math, rel, "\u2A96", "\\eqslantgtr", true); defineSymbol(math, rel, "\u2273", "\\gtrsim", true); defineSymbol(math, rel, "\u2A86", "\\gtrapprox", true); defineSymbol(math, bin, "\u22D7", "\\gtrdot"); defineSymbol(math, rel, "\u22D9", "\\ggg", true); defineSymbol(math, rel, "\u2277", "\\gtrless", true); defineSymbol(math, rel, "\u22DB", "\\gtreqless", true); defineSymbol(math, rel, "\u2A8C", "\\gtreqqless", true); defineSymbol(math, rel, "\u2256", "\\eqcirc", true); defineSymbol(math, rel, "\u2257", "\\circeq", true); defineSymbol(math, rel, "\u225C", "\\triangleq", true); defineSymbol(math, rel, "\u223C", "\\thicksim"); defineSymbol(math, rel, "\u2248", "\\thickapprox"); defineSymbol(math, rel, "\u2AC6", "\\supseteqq", true); defineSymbol(math, rel, "\u22D1", "\\Supset", true); defineSymbol(math, rel, "\u2290", "\\sqsupset", true); defineSymbol(math, rel, "\u227D", "\\succcurlyeq", true); defineSymbol(math, rel, "\u22DF", "\\curlyeqsucc", true); defineSymbol(math, rel, "\u227F", "\\succsim", true); defineSymbol(math, rel, "\u2AB8", "\\succapprox", true); defineSymbol(math, rel, "\u22B3", "\\vartriangleright"); defineSymbol(math, rel, "\u22B5", "\\trianglerighteq"); defineSymbol(math, rel, "\u22A9", "\\Vdash", true); defineSymbol(math, rel, "\u2223", "\\shortmid"); defineSymbol(math, rel, "\u2225", "\\shortparallel"); defineSymbol(math, rel, "\u226C", "\\between", true); defineSymbol(math, rel, "\u22D4", "\\pitchfork", true); defineSymbol(math, rel, "\u221D", "\\varpropto"); defineSymbol(math, rel, "\u25C0", "\\blacktriangleleft"); defineSymbol(math, rel, "\u2234", "\\therefore", true); defineSymbol(math, rel, "\u220D", "\\backepsilon"); defineSymbol(math, rel, "\u25B6", "\\blacktriangleright"); defineSymbol(math, rel, "\u2235", "\\because", true); defineSymbol(math, rel, "\u22D8", "\\llless"); defineSymbol(math, rel, "\u22D9", "\\gggtr"); defineSymbol(math, bin, "\u22B2", "\\lhd"); defineSymbol(math, bin, "\u22B3", "\\rhd"); defineSymbol(math, rel, "\u2242", "\\eqsim", true); defineSymbol(math, rel, "\u2251", "\\Doteq", true); defineSymbol(math, rel, "\u297D", "\\strictif", true); defineSymbol(math, rel, "\u297C", "\\strictfi", true); defineSymbol(math, bin, "\u2214", "\\dotplus", true); defineSymbol(math, bin, "\u2216", "\\smallsetminus"); defineSymbol(math, bin, "\u22D2", "\\Cap", true); defineSymbol(math, bin, "\u22D3", "\\Cup", true); defineSymbol(math, bin, "\u2A5E", "\\doublebarwedge", true); defineSymbol(math, bin, "\u229F", "\\boxminus", true); defineSymbol(math, bin, "\u229E", "\\boxplus", true); defineSymbol(math, bin, "\u29C4", "\\boxslash", true); defineSymbol(math, bin, "\u22C7", "\\divideontimes", true); defineSymbol(math, bin, "\u22C9", "\\ltimes", true); defineSymbol(math, bin, "\u22CA", "\\rtimes", true); defineSymbol(math, bin, "\u22CB", "\\leftthreetimes", true); defineSymbol(math, bin, "\u22CC", "\\rightthreetimes", true); defineSymbol(math, bin, "\u22CF", "\\curlywedge", true); defineSymbol(math, bin, "\u22CE", "\\curlyvee", true); defineSymbol(math, bin, "\u229D", "\\circleddash", true); defineSymbol(math, bin, "\u229B", "\\circledast", true); defineSymbol(math, bin, "\u22BA", "\\intercal", true); defineSymbol(math, bin, "\u22D2", "\\doublecap"); defineSymbol(math, bin, "\u22D3", "\\doublecup"); defineSymbol(math, bin, "\u22A0", "\\boxtimes", true); defineSymbol(math, bin, "\u22C8", "\\bowtie", true); defineSymbol(math, bin, "\u22C8", "\\Join"); defineSymbol(math, bin, "\u27D5", "\\leftouterjoin", true); defineSymbol(math, bin, "\u27D6", "\\rightouterjoin", true); defineSymbol(math, bin, "\u27D7", "\\fullouterjoin", true); defineSymbol(math, bin, "\u2238", "\\dotminus", true); defineSymbol(math, bin, "\u27D1", "\\wedgedot", true); defineSymbol(math, bin, "\u27C7", "\\veedot", true); defineSymbol(math, bin, "\u2A62", "\\doublebarvee", true); defineSymbol(math, bin, "\u2A63", "\\veedoublebar", true); defineSymbol(math, bin, "\u2A5F", "\\wedgebar", true); defineSymbol(math, bin, "\u2A60", "\\wedgedoublebar", true); defineSymbol(math, bin, "\u2A54", "\\Vee", true); defineSymbol(math, bin, "\u2A53", "\\Wedge", true); defineSymbol(math, bin, "\u2A43", "\\barcap", true); defineSymbol(math, bin, "\u2A42", "\\barcup", true); defineSymbol(math, bin, "\u2A48", "\\capbarcup", true); defineSymbol(math, bin, "\u2A40", "\\capdot", true); defineSymbol(math, bin, "\u2A47", "\\capovercup", true); defineSymbol(math, bin, "\u2A46", "\\cupovercap", true); defineSymbol(math, bin, "\u2A4D", "\\closedvarcap", true); defineSymbol(math, bin, "\u2A4C", "\\closedvarcup", true); defineSymbol(math, bin, "\u2A2A", "\\minusdot", true); defineSymbol(math, bin, "\u2A2B", "\\minusfdots", true); defineSymbol(math, bin, "\u2A2C", "\\minusrdots", true); defineSymbol(math, bin, "\u22BB", "\\Xor", true); defineSymbol(math, bin, "\u22BC", "\\Nand", true); defineSymbol(math, bin, "\u22BD", "\\Nor", true); defineSymbol(math, bin, "\u22BD", "\\barvee"); defineSymbol(math, bin, "\u2AF4", "\\interleave", true); defineSymbol(math, bin, "\u29E2", "\\shuffle", true); defineSymbol(math, bin, "\u2AF6", "\\threedotcolon", true); defineSymbol(math, bin, "\u2982", "\\typecolon", true); defineSymbol(math, bin, "\u223E", "\\invlazys", true); defineSymbol(math, bin, "\u2A4B", "\\twocaps", true); defineSymbol(math, bin, "\u2A4A", "\\twocups", true); defineSymbol(math, bin, "\u2A4E", "\\Sqcap", true); defineSymbol(math, bin, "\u2A4F", "\\Sqcup", true); defineSymbol(math, bin, "\u2A56", "\\veeonvee", true); defineSymbol(math, bin, "\u2A55", "\\wedgeonwedge", true); defineSymbol(math, bin, "\u29D7", "\\blackhourglass", true); defineSymbol(math, bin, "\u29C6", "\\boxast", true); defineSymbol(math, bin, "\u29C8", "\\boxbox", true); defineSymbol(math, bin, "\u29C7", "\\boxcircle", true); defineSymbol(math, bin, "\u229C", "\\circledequal", true); defineSymbol(math, bin, "\u29B7", "\\circledparallel", true); defineSymbol(math, bin, "\u29B6", "\\circledvert", true); defineSymbol(math, bin, "\u29B5", "\\circlehbar", true); defineSymbol(math, bin, "\u27E1", "\\concavediamond", true); defineSymbol(math, bin, "\u27E2", "\\concavediamondtickleft", true); defineSymbol(math, bin, "\u27E3", "\\concavediamondtickright", true); defineSymbol(math, bin, "\u22C4", "\\diamond", true); defineSymbol(math, bin, "\u29D6", "\\hourglass", true); defineSymbol(math, bin, "\u27E0", "\\lozengeminus", true); defineSymbol(math, bin, "\u233D", "\\obar", true); defineSymbol(math, bin, "\u29B8", "\\obslash", true); defineSymbol(math, bin, "\u2A38", "\\odiv", true); defineSymbol(math, bin, "\u29C1", "\\ogreaterthan", true); defineSymbol(math, bin, "\u29C0", "\\olessthan", true); defineSymbol(math, bin, "\u29B9", "\\operp", true); defineSymbol(math, bin, "\u2A37", "\\Otimes", true); defineSymbol(math, bin, "\u2A36", "\\otimeshat", true); defineSymbol(math, bin, "\u22C6", "\\star", true); defineSymbol(math, bin, "\u25B3", "\\triangle", true); defineSymbol(math, bin, "\u2A3A", "\\triangleminus", true); defineSymbol(math, bin, "\u2A39", "\\triangleplus", true); defineSymbol(math, bin, "\u2A3B", "\\triangletimes", true); defineSymbol(math, bin, "\u27E4", "\\whitesquaretickleft", true); defineSymbol(math, bin, "\u27E5", "\\whitesquaretickright", true); defineSymbol(math, bin, "\u2A33", "\\smashtimes", true); defineSymbol(math, rel, "\u21E2", "\\dashrightarrow", true); defineSymbol(math, rel, "\u21E0", "\\dashleftarrow", true); defineSymbol(math, rel, "\u21C7", "\\leftleftarrows", true); defineSymbol(math, rel, "\u21C6", "\\leftrightarrows", true); defineSymbol(math, rel, "\u21DA", "\\Lleftarrow", true); defineSymbol(math, rel, "\u219E", "\\twoheadleftarrow", true); defineSymbol(math, rel, "\u21A2", "\\leftarrowtail", true); defineSymbol(math, rel, "\u21AB", "\\looparrowleft", true); defineSymbol(math, rel, "\u21CB", "\\leftrightharpoons", true); defineSymbol(math, rel, "\u21B6", "\\curvearrowleft", true); defineSymbol(math, rel, "\u21BA", "\\circlearrowleft", true); defineSymbol(math, rel, "\u21B0", "\\Lsh", true); defineSymbol(math, rel, "\u21C8", "\\upuparrows", true); defineSymbol(math, rel, "\u21BF", "\\upharpoonleft", true); defineSymbol(math, rel, "\u21C3", "\\downharpoonleft", true); defineSymbol(math, rel, "\u22B6", "\\origof", true); defineSymbol(math, rel, "\u22B7", "\\imageof", true); defineSymbol(math, rel, "\u22B8", "\\multimap", true); defineSymbol(math, rel, "\u21AD", "\\leftrightsquigarrow", true); defineSymbol(math, rel, "\u21C9", "\\rightrightarrows", true); defineSymbol(math, rel, "\u21C4", "\\rightleftarrows", true); defineSymbol(math, rel, "\u21A0", "\\twoheadrightarrow", true); defineSymbol(math, rel, "\u21A3", "\\rightarrowtail", true); defineSymbol(math, rel, "\u21AC", "\\looparrowright", true); defineSymbol(math, rel, "\u21B7", "\\curvearrowright", true); defineSymbol(math, rel, "\u21BB", "\\circlearrowright", true); defineSymbol(math, rel, "\u21B1", "\\Rsh", true); defineSymbol(math, rel, "\u21CA", "\\downdownarrows", true); defineSymbol(math, rel, "\u21BE", "\\upharpoonright", true); defineSymbol(math, rel, "\u21C2", "\\downharpoonright", true); defineSymbol(math, rel, "\u21DD", "\\rightsquigarrow", true); defineSymbol(math, rel, "\u21DD", "\\leadsto"); defineSymbol(math, rel, "\u21DB", "\\Rrightarrow", true); defineSymbol(math, rel, "\u21BE", "\\restriction"); defineSymbol(math, textord, "\u2018", "`"); defineSymbol(math, textord, "$", "\\$"); defineSymbol(text, textord, "$", "\\$"); defineSymbol(text, textord, "$", "\\textdollar"); defineSymbol(math, textord, "\xA2", "\\cent"); defineSymbol(text, textord, "\xA2", "\\cent"); defineSymbol(math, textord, "%", "\\%"); defineSymbol(text, textord, "%", "\\%"); defineSymbol(math, textord, "_", "\\_"); defineSymbol(text, textord, "_", "\\_"); defineSymbol(text, textord, "_", "\\textunderscore"); defineSymbol(text, textord, "\u2423", "\\textvisiblespace", true); defineSymbol(math, textord, "\u2220", "\\angle", true); defineSymbol(math, textord, "\u221E", "\\infty", true); defineSymbol(math, textord, "\u2032", "\\prime"); defineSymbol(math, textord, "\u2033", "\\dprime"); defineSymbol(math, textord, "\u2034", "\\trprime"); defineSymbol(math, textord, "\u2057", "\\qprime"); defineSymbol(math, textord, "\u25B3", "\\triangle"); defineSymbol(text, textord, "\u0391", "\\Alpha", true); defineSymbol(text, textord, "\u0392", "\\Beta", true); defineSymbol(text, textord, "\u0393", "\\Gamma", true); defineSymbol(text, textord, "\u0394", "\\Delta", true); defineSymbol(text, textord, "\u0395", "\\Epsilon", true); defineSymbol(text, textord, "\u0396", "\\Zeta", true); defineSymbol(text, textord, "\u0397", "\\Eta", true); defineSymbol(text, textord, "\u0398", "\\Theta", true); defineSymbol(text, textord, "\u0399", "\\Iota", true); defineSymbol(text, textord, "\u039A", "\\Kappa", true); defineSymbol(text, textord, "\u039B", "\\Lambda", true); defineSymbol(text, textord, "\u039C", "\\Mu", true); defineSymbol(text, textord, "\u039D", "\\Nu", true); defineSymbol(text, textord, "\u039E", "\\Xi", true); defineSymbol(text, textord, "\u039F", "\\Omicron", true); defineSymbol(text, textord, "\u03A0", "\\Pi", true); defineSymbol(text, textord, "\u03A1", "\\Rho", true); defineSymbol(text, textord, "\u03A3", "\\Sigma", true); defineSymbol(text, textord, "\u03A4", "\\Tau", true); defineSymbol(text, textord, "\u03A5", "\\Upsilon", true); defineSymbol(text, textord, "\u03A6", "\\Phi", true); defineSymbol(text, textord, "\u03A7", "\\Chi", true); defineSymbol(text, textord, "\u03A8", "\\Psi", true); defineSymbol(text, textord, "\u03A9", "\\Omega", true); defineSymbol(math, mathord, "\u0391", "\\Alpha", true); defineSymbol(math, mathord, "\u0392", "\\Beta", true); defineSymbol(math, mathord, "\u0393", "\\Gamma", true); defineSymbol(math, mathord, "\u0394", "\\Delta", true); defineSymbol(math, mathord, "\u0395", "\\Epsilon", true); defineSymbol(math, mathord, "\u0396", "\\Zeta", true); defineSymbol(math, mathord, "\u0397", "\\Eta", true); defineSymbol(math, mathord, "\u0398", "\\Theta", true); defineSymbol(math, mathord, "\u0399", "\\Iota", true); defineSymbol(math, mathord, "\u039A", "\\Kappa", true); defineSymbol(math, mathord, "\u039B", "\\Lambda", true); defineSymbol(math, mathord, "\u039C", "\\Mu", true); defineSymbol(math, mathord, "\u039D", "\\Nu", true); defineSymbol(math, mathord, "\u039E", "\\Xi", true); defineSymbol(math, mathord, "\u039F", "\\Omicron", true); defineSymbol(math, mathord, "\u03A0", "\\Pi", true); defineSymbol(math, mathord, "\u03A1", "\\Rho", true); defineSymbol(math, mathord, "\u03A3", "\\Sigma", true); defineSymbol(math, mathord, "\u03A4", "\\Tau", true); defineSymbol(math, mathord, "\u03A5", "\\Upsilon", true); defineSymbol(math, mathord, "\u03A6", "\\Phi", true); defineSymbol(math, mathord, "\u03A7", "\\Chi", true); defineSymbol(math, mathord, "\u03A8", "\\Psi", true); defineSymbol(math, mathord, "\u03A9", "\\Omega", true); defineSymbol(math, open, "\xAC", "\\neg", true); defineSymbol(math, open, "\xAC", "\\lnot"); defineSymbol(math, textord, "\u22A4", "\\top"); defineSymbol(math, textord, "\u22A5", "\\bot"); defineSymbol(math, textord, "\u2205", "\\emptyset"); defineSymbol(math, textord, "\u2300", "\\varnothing"); defineSymbol(math, mathord, "\u03B1", "\\alpha", true); defineSymbol(math, mathord, "\u03B2", "\\beta", true); defineSymbol(math, mathord, "\u03B3", "\\gamma", true); defineSymbol(math, mathord, "\u03B4", "\\delta", true); defineSymbol(math, mathord, "\u03F5", "\\epsilon", true); defineSymbol(math, mathord, "\u03B6", "\\zeta", true); defineSymbol(math, mathord, "\u03B7", "\\eta", true); defineSymbol(math, mathord, "\u03B8", "\\theta", true); defineSymbol(math, mathord, "\u03B9", "\\iota", true); defineSymbol(math, mathord, "\u03BA", "\\kappa", true); defineSymbol(math, mathord, "\u03BB", "\\lambda", true); defineSymbol(math, mathord, "\u03BC", "\\mu", true); defineSymbol(math, mathord, "\u03BD", "\\nu", true); defineSymbol(math, mathord, "\u03BE", "\\xi", true); defineSymbol(math, mathord, "\u03BF", "\\omicron", true); defineSymbol(math, mathord, "\u03C0", "\\pi", true); defineSymbol(math, mathord, "\u03C1", "\\rho", true); defineSymbol(math, mathord, "\u03C3", "\\sigma", true); defineSymbol(math, mathord, "\u03C4", "\\tau", true); defineSymbol(math, mathord, "\u03C5", "\\upsilon", true); defineSymbol(math, mathord, "\u03D5", "\\phi", true); defineSymbol(math, mathord, "\u03C7", "\\chi", true); defineSymbol(math, mathord, "\u03C8", "\\psi", true); defineSymbol(math, mathord, "\u03C9", "\\omega", true); defineSymbol(math, mathord, "\u03B5", "\\varepsilon", true); defineSymbol(math, mathord, "\u03D1", "\\vartheta", true); defineSymbol(math, mathord, "\u03D6", "\\varpi", true); defineSymbol(math, mathord, "\u03F1", "\\varrho", true); defineSymbol(math, mathord, "\u03C2", "\\varsigma", true); defineSymbol(math, mathord, "\u03C6", "\\varphi", true); defineSymbol(math, mathord, "\u03D8", "\\Coppa", true); defineSymbol(math, mathord, "\u03D9", "\\coppa", true); defineSymbol(math, mathord, "\u03D9", "\\varcoppa", true); defineSymbol(math, mathord, "\u03DE", "\\Koppa", true); defineSymbol(math, mathord, "\u03DF", "\\koppa", true); defineSymbol(math, mathord, "\u03E0", "\\Sampi", true); defineSymbol(math, mathord, "\u03E1", "\\sampi", true); defineSymbol(math, mathord, "\u03DA", "\\Stigma", true); defineSymbol(math, mathord, "\u03DB", "\\stigma", true); defineSymbol(math, mathord, "\u2AEB", "\\Bot"); defineSymbol(math, bin, "\u2217", "\u2217", true); defineSymbol(math, bin, "+", "+"); defineSymbol(math, bin, "\u2217", "*"); defineSymbol(math, bin, "\u2044", "/", true); defineSymbol(math, bin, "\u2044", "\u2044"); defineSymbol(math, bin, "\u2212", "-", true); defineSymbol(math, bin, "\u22C5", "\\cdot", true); defineSymbol(math, bin, "\u2218", "\\circ", true); defineSymbol(math, bin, "\xF7", "\\div", true); defineSymbol(math, bin, "\xB1", "\\pm", true); defineSymbol(math, bin, "\xD7", "\\times", true); defineSymbol(math, bin, "\u2229", "\\cap", true); defineSymbol(math, bin, "\u222A", "\\cup", true); defineSymbol(math, bin, "\u2216", "\\setminus", true); defineSymbol(math, bin, "\u2227", "\\land"); defineSymbol(math, bin, "\u2228", "\\lor"); defineSymbol(math, bin, "\u2227", "\\wedge", true); defineSymbol(math, bin, "\u2228", "\\vee", true); defineSymbol(math, open, "\u27E6", "\\llbracket", true); defineSymbol(math, close, "\u27E7", "\\rrbracket", true); defineSymbol(math, open, "\u27E8", "\\langle", true); defineSymbol(math, open, "\u27EA", "\\lAngle", true); defineSymbol(math, open, "\u2989", "\\llangle", true); defineSymbol(math, open, "|", "\\lvert"); defineSymbol(math, open, "\u2016", "\\lVert", true); defineSymbol(math, textord, "!", "\\oc"); defineSymbol(math, textord, "?", "\\wn"); defineSymbol(math, textord, "\u2193", "\\shpos"); defineSymbol(math, textord, "\u2195", "\\shift"); defineSymbol(math, textord, "\u2191", "\\shneg"); defineSymbol(math, close, "?", "?"); defineSymbol(math, close, "!", "!"); defineSymbol(math, close, "\u203C", "\u203C"); defineSymbol(math, close, "\u27E9", "\\rangle", true); defineSymbol(math, close, "\u27EB", "\\rAngle", true); defineSymbol(math, close, "\u298A", "\\rrangle", true); defineSymbol(math, close, "|", "\\rvert"); defineSymbol(math, close, "\u2016", "\\rVert"); defineSymbol(math, open, "\u2983", "\\lBrace", true); defineSymbol(math, close, "\u2984", "\\rBrace", true); defineSymbol(math, rel, "=", "\\equal", true); defineSymbol(math, rel, ":", ":"); defineSymbol(math, rel, "\u2248", "\\approx", true); defineSymbol(math, rel, "\u2245", "\\cong", true); defineSymbol(math, rel, "\u2265", "\\ge"); defineSymbol(math, rel, "\u2265", "\\geq", true); defineSymbol(math, rel, "\u2190", "\\gets"); defineSymbol(math, rel, ">", "\\gt", true); defineSymbol(math, rel, "\u2208", "\\in", true); defineSymbol(math, rel, "\u2209", "\\notin", true); defineSymbol(math, rel, "\uE020", "\\@not"); defineSymbol(math, rel, "\u2282", "\\subset", true); defineSymbol(math, rel, "\u2283", "\\supset", true); defineSymbol(math, rel, "\u2286", "\\subseteq", true); defineSymbol(math, rel, "\u2287", "\\supseteq", true); defineSymbol(math, rel, "\u2288", "\\nsubseteq", true); defineSymbol(math, rel, "\u2288", "\\nsubseteqq"); defineSymbol(math, rel, "\u2289", "\\nsupseteq", true); defineSymbol(math, rel, "\u2289", "\\nsupseteqq"); defineSymbol(math, rel, "\u22A8", "\\models"); defineSymbol(math, rel, "\u2190", "\\leftarrow", true); defineSymbol(math, rel, "\u2264", "\\le"); defineSymbol(math, rel, "\u2264", "\\leq", true); defineSymbol(math, rel, "<", "\\lt", true); defineSymbol(math, rel, "\u2192", "\\rightarrow", true); defineSymbol(math, rel, "\u2192", "\\to"); defineSymbol(math, rel, "\u2271", "\\ngeq", true); defineSymbol(math, rel, "\u2271", "\\ngeqq"); defineSymbol(math, rel, "\u2271", "\\ngeqslant"); defineSymbol(math, rel, "\u2270", "\\nleq", true); defineSymbol(math, rel, "\u2270", "\\nleqq"); defineSymbol(math, rel, "\u2270", "\\nleqslant"); defineSymbol(math, rel, "\u2AEB", "\\Perp", true); defineSymbol(math, spacing, "\xA0", "\\ "); defineSymbol(math, spacing, "\xA0", "\\space"); defineSymbol(math, spacing, "\xA0", "\\nobreakspace"); defineSymbol(text, spacing, "\xA0", "\\ "); defineSymbol(text, spacing, "\xA0", " "); defineSymbol(text, spacing, "\xA0", "\\space"); defineSymbol(text, spacing, "\xA0", "\\nobreakspace"); defineSymbol(math, spacing, null, "\\nobreak"); defineSymbol(math, spacing, null, "\\allowbreak"); defineSymbol(math, punct, ",", ","); defineSymbol(text, punct, ":", ":"); defineSymbol(math, punct, ";", ";"); defineSymbol(math, bin, "\u22BC", "\\barwedge"); defineSymbol(math, bin, "\u22BB", "\\veebar"); defineSymbol(math, bin, "\u2299", "\\odot", true); defineSymbol(math, bin, "\u2295\uFE0E", "\\oplus"); defineSymbol(math, bin, "\u2297", "\\otimes", true); defineSymbol(math, textord, "\u2202", "\\partial", true); defineSymbol(math, bin, "\u2298", "\\oslash", true); defineSymbol(math, bin, "\u229A", "\\circledcirc", true); defineSymbol(math, bin, "\u22A1", "\\boxdot", true); defineSymbol(math, bin, "\u25B3", "\\bigtriangleup"); defineSymbol(math, bin, "\u25BD", "\\bigtriangledown"); defineSymbol(math, bin, "\u2020", "\\dagger"); defineSymbol(math, bin, "\u22C4", "\\diamond"); defineSymbol(math, bin, "\u25C3", "\\triangleleft"); defineSymbol(math, bin, "\u25B9", "\\triangleright"); defineSymbol(math, open, "{", "\\{"); defineSymbol(text, textord, "{", "\\{"); defineSymbol(text, textord, "{", "\\textbraceleft"); defineSymbol(math, close, "}", "\\}"); defineSymbol(text, textord, "}", "\\}"); defineSymbol(text, textord, "}", "\\textbraceright"); defineSymbol(math, open, "{", "\\lbrace"); defineSymbol(math, close, "}", "\\rbrace"); defineSymbol(math, open, "[", "\\lbrack", true); defineSymbol(text, textord, "[", "\\lbrack", true); defineSymbol(math, close, "]", "\\rbrack", true); defineSymbol(text, textord, "]", "\\rbrack", true); defineSymbol(math, open, "(", "\\lparen", true); defineSymbol(math, close, ")", "\\rparen", true); defineSymbol(math, open, "\u2987", "\\llparenthesis", true); defineSymbol(math, close, "\u2988", "\\rrparenthesis", true); defineSymbol(text, textord, "<", "\\textless", true); defineSymbol(text, textord, ">", "\\textgreater", true); defineSymbol(math, open, "\u230A", "\\lfloor", true); defineSymbol(math, close, "\u230B", "\\rfloor", true); defineSymbol(math, open, "\u2308", "\\lceil", true); defineSymbol(math, close, "\u2309", "\\rceil", true); defineSymbol(math, textord, "\\", "\\backslash"); defineSymbol(math, textord, "|", "|"); defineSymbol(math, textord, "|", "\\vert"); defineSymbol(text, textord, "|", "\\textbar", true); defineSymbol(math, textord, "\u2016", "\\|"); defineSymbol(math, textord, "\u2016", "\\Vert"); defineSymbol(text, textord, "\u2016", "\\textbardbl"); defineSymbol(text, textord, "~", "\\textasciitilde"); defineSymbol(text, textord, "\\", "\\textbackslash"); defineSymbol(text, textord, "^", "\\textasciicircum"); defineSymbol(math, rel, "\u2191", "\\uparrow", true); defineSymbol(math, rel, "\u21D1", "\\Uparrow", true); defineSymbol(math, rel, "\u2193", "\\downarrow", true); defineSymbol(math, rel, "\u21D3", "\\Downarrow", true); defineSymbol(math, rel, "\u2195", "\\updownarrow", true); defineSymbol(math, rel, "\u21D5", "\\Updownarrow", true); defineSymbol(math, op, "\u2210", "\\coprod"); defineSymbol(math, op, "\u22C1", "\\bigvee"); defineSymbol(math, op, "\u22C0", "\\bigwedge"); defineSymbol(math, op, "\u2A04", "\\biguplus"); defineSymbol(math, op, "\u2A04", "\\bigcupplus"); defineSymbol(math, op, "\u2A03", "\\bigcupdot"); defineSymbol(math, op, "\u2A07", "\\bigdoublevee"); defineSymbol(math, op, "\u2A08", "\\bigdoublewedge"); defineSymbol(math, op, "\u22C2", "\\bigcap"); defineSymbol(math, op, "\u22C3", "\\bigcup"); defineSymbol(math, op, "\u222B", "\\int"); defineSymbol(math, op, "\u222B", "\\intop"); defineSymbol(math, op, "\u222C", "\\iint"); defineSymbol(math, op, "\u222D", "\\iiint"); defineSymbol(math, op, "\u220F", "\\prod"); defineSymbol(math, op, "\u2211", "\\sum"); defineSymbol(math, op, "\u2A02", "\\bigotimes"); defineSymbol(math, op, "\u2A01", "\\bigoplus"); defineSymbol(math, op, "\u2A00", "\\bigodot"); defineSymbol(math, op, "\u2A09", "\\bigtimes"); defineSymbol(math, op, "\u222E", "\\oint"); defineSymbol(math, op, "\u222F", "\\oiint"); defineSymbol(math, op, "\u2230", "\\oiiint"); defineSymbol(math, op, "\u2231", "\\intclockwise"); defineSymbol(math, op, "\u2232", "\\varointclockwise"); defineSymbol(math, op, "\u2A0C", "\\iiiint"); defineSymbol(math, op, "\u2A0D", "\\intbar"); defineSymbol(math, op, "\u2A0E", "\\intBar"); defineSymbol(math, op, "\u2A0F", "\\fint"); defineSymbol(math, op, "\u2A12", "\\rppolint"); defineSymbol(math, op, "\u2A13", "\\scpolint"); defineSymbol(math, op, "\u2A15", "\\pointint"); defineSymbol(math, op, "\u2A16", "\\sqint"); defineSymbol(math, op, "\u2A17", "\\intlarhk"); defineSymbol(math, op, "\u2A18", "\\intx"); defineSymbol(math, op, "\u2A19", "\\intcap"); defineSymbol(math, op, "\u2A1A", "\\intcup"); defineSymbol(math, op, "\u2A05", "\\bigsqcap"); defineSymbol(math, op, "\u2A06", "\\bigsqcup"); defineSymbol(math, op, "\u222B", "\\smallint"); defineSymbol(text, inner, "\u2026", "\\textellipsis"); defineSymbol(math, inner, "\u2026", "\\mathellipsis"); defineSymbol(text, inner, "\u2026", "\\ldots", true); defineSymbol(math, inner, "\u2026", "\\ldots", true); defineSymbol(math, inner, "\u22F0", "\\iddots", true); defineSymbol(math, inner, "\u22EF", "\\@cdots", true); defineSymbol(math, inner, "\u22F1", "\\ddots", true); defineSymbol(math, textord, "\u22EE", "\\varvdots"); defineSymbol(text, textord, "\u22EE", "\\varvdots"); defineSymbol(math, accent, "\u02CA", "\\acute"); defineSymbol(math, accent, "`", "\\grave"); defineSymbol(math, accent, "\xA8", "\\ddot"); defineSymbol(math, accent, "\u2026", "\\dddot"); defineSymbol(math, accent, "\u2026.", "\\ddddot"); defineSymbol(math, accent, "~", "\\tilde"); defineSymbol(math, accent, "\u203E", "\\bar"); defineSymbol(math, accent, "\u02D8", "\\breve"); defineSymbol(math, accent, "\u02C7", "\\check"); defineSymbol(math, accent, "^", "\\hat"); defineSymbol(math, accent, "\u2192", "\\vec"); defineSymbol(math, accent, "\u02D9", "\\dot"); defineSymbol(math, accent, "\u02DA", "\\mathring"); defineSymbol(math, mathord, "\u0131", "\\imath", true); defineSymbol(math, mathord, "\u0237", "\\jmath", true); defineSymbol(math, textord, "\u0131", "\u0131"); defineSymbol(math, textord, "\u0237", "\u0237"); defineSymbol(text, textord, "\u0131", "\\i", true); defineSymbol(text, textord, "\u0237", "\\j", true); defineSymbol(text, textord, "\xDF", "\\ss", true); defineSymbol(text, textord, "\xE6", "\\ae", true); defineSymbol(text, textord, "\u0153", "\\oe", true); defineSymbol(text, textord, "\xF8", "\\o", true); defineSymbol(math, mathord, "\xF8", "\\o", true); defineSymbol(text, textord, "\xC6", "\\AE", true); defineSymbol(text, textord, "\u0152", "\\OE", true); defineSymbol(text, textord, "\xD8", "\\O", true); defineSymbol(math, mathord, "\xD8", "\\O", true); defineSymbol(text, accent, "\u02CA", "\\'"); defineSymbol(text, accent, "\u02CB", "\\`"); defineSymbol(text, accent, "\u02C6", "\\^"); defineSymbol(text, accent, "\u02DC", "\\~"); defineSymbol(text, accent, "\u02C9", "\\="); defineSymbol(text, accent, "\u02D8", "\\u"); defineSymbol(text, accent, "\u02D9", "\\."); defineSymbol(text, accent, "\xB8", "\\c"); defineSymbol(text, accent, "\u02DA", "\\r"); defineSymbol(text, accent, "\u02C7", "\\v"); defineSymbol(text, accent, "\xA8", '\\"'); defineSymbol(text, accent, "\u02DD", "\\H"); defineSymbol(math, accent, "\u02CA", "\\'"); defineSymbol(math, accent, "\u02CB", "\\`"); defineSymbol(math, accent, "\u02C6", "\\^"); defineSymbol(math, accent, "\u02DC", "\\~"); defineSymbol(math, accent, "\u02C9", "\\="); defineSymbol(math, accent, "\u02D8", "\\u"); defineSymbol(math, accent, "\u02D9", "\\."); defineSymbol(math, accent, "\xB8", "\\c"); defineSymbol(math, accent, "\u02DA", "\\r"); defineSymbol(math, accent, "\u02C7", "\\v"); defineSymbol(math, accent, "\xA8", '\\"'); defineSymbol(math, accent, "\u02DD", "\\H"); var ligatures = { "--": true, "---": true, "``": true, "''": true }; defineSymbol(text, textord, "\u2013", "--", true); defineSymbol(text, textord, "\u2013", "\\textendash"); defineSymbol(text, textord, "\u2014", "---", true); defineSymbol(text, textord, "\u2014", "\\textemdash"); defineSymbol(text, textord, "\u2018", "`", true); defineSymbol(text, textord, "\u2018", "\\textquoteleft"); defineSymbol(text, textord, "\u2019", "'", true); defineSymbol(text, textord, "\u2019", "\\textquoteright"); defineSymbol(text, textord, "\u201C", "``", true); defineSymbol(text, textord, "\u201C", "\\textquotedblleft"); defineSymbol(text, textord, "\u201D", "''", true); defineSymbol(text, textord, "\u201D", "\\textquotedblright"); defineSymbol(math, textord, "\xB0", "\\degree", true); defineSymbol(text, textord, "\xB0", "\\degree"); defineSymbol(text, textord, "\xB0", "\\textdegree", true); defineSymbol(math, textord, "\xA3", "\\pounds"); defineSymbol(math, textord, "\xA3", "\\mathsterling", true); defineSymbol(text, textord, "\xA3", "\\pounds"); defineSymbol(text, textord, "\xA3", "\\textsterling", true); defineSymbol(math, textord, "\u2720", "\\maltese"); defineSymbol(text, textord, "\u2720", "\\maltese"); defineSymbol(math, textord, "\u20AC", "\\euro", true); defineSymbol(text, textord, "\u20AC", "\\euro", true); defineSymbol(text, textord, "\u20AC", "\\texteuro"); defineSymbol(math, textord, "\xA9", "\\copyright", true); defineSymbol(text, textord, "\xA9", "\\textcopyright"); defineSymbol(math, textord, "\u2300", "\\diameter", true); defineSymbol(text, textord, "\u2300", "\\diameter"); defineSymbol(math, textord, "\u{1D6E4}", "\\varGamma"); defineSymbol(math, textord, "\u{1D6E5}", "\\varDelta"); defineSymbol(math, textord, "\u{1D6E9}", "\\varTheta"); defineSymbol(math, textord, "\u{1D6EC}", "\\varLambda"); defineSymbol(math, textord, "\u{1D6EF}", "\\varXi"); defineSymbol(math, textord, "\u{1D6F1}", "\\varPi"); defineSymbol(math, textord, "\u{1D6F4}", "\\varSigma"); defineSymbol(math, textord, "\u{1D6F6}", "\\varUpsilon"); defineSymbol(math, textord, "\u{1D6F7}", "\\varPhi"); defineSymbol(math, textord, "\u{1D6F9}", "\\varPsi"); defineSymbol(math, textord, "\u{1D6FA}", "\\varOmega"); defineSymbol(text, textord, "\u{1D6E4}", "\\varGamma"); defineSymbol(text, textord, "\u{1D6E5}", "\\varDelta"); defineSymbol(text, textord, "\u{1D6E9}", "\\varTheta"); defineSymbol(text, textord, "\u{1D6EC}", "\\varLambda"); defineSymbol(text, textord, "\u{1D6EF}", "\\varXi"); defineSymbol(text, textord, "\u{1D6F1}", "\\varPi"); defineSymbol(text, textord, "\u{1D6F4}", "\\varSigma"); defineSymbol(text, textord, "\u{1D6F6}", "\\varUpsilon"); defineSymbol(text, textord, "\u{1D6F7}", "\\varPhi"); defineSymbol(text, textord, "\u{1D6F9}", "\\varPsi"); defineSymbol(text, textord, "\u{1D6FA}", "\\varOmega"); var mathTextSymbols = '0123456789/@."'; for (let i = 0; i < mathTextSymbols.length; i++) { const ch = mathTextSymbols.charAt(i); defineSymbol(math, textord, ch, ch); } var textSymbols = '0123456789!@*()-=+";:?/.,'; for (let i = 0; i < textSymbols.length; i++) { const ch = textSymbols.charAt(i); defineSymbol(text, textord, ch, ch); } var letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; for (let i = 0; i < letters.length; i++) { const ch = letters.charAt(i); defineSymbol(math, mathord, ch, ch); defineSymbol(text, textord, ch, ch); } var narrow = "\xC7\xD0\xDE\xE7\xFE\u2102\u210D\u2115\u2119\u211A\u211D\u2124\u210E\u210F\u210A\u210B\u210C\u2110\u2111\u2112\u2113\u2118\u211B\u211C\u212C\u2130\u2131\u2133\u212D\u2128"; for (let i = 0; i < narrow.length; i++) { const ch = narrow.charAt(i); defineSymbol(math, mathord, ch, ch); defineSymbol(text, textord, ch, ch); } var wideChar = ""; for (let i = 0; i < letters.length; i++) { wideChar = String.fromCharCode(55349, 56320 + i); defineSymbol(math, mathord, wideChar, wideChar); defineSymbol(text, textord, wideChar, wideChar); wideChar = String.fromCharCode(55349, 56372 + i); defineSymbol(math, mathord, wideChar, wideChar); defineSymbol(text, textord, wideChar, wideChar); wideChar = String.fromCharCode(55349, 56424 + i); defineSymbol(math, mathord, wideChar, wideChar); defineSymbol(text, textord, wideChar, wideChar); wideChar = String.fromCharCode(55349, 56580 + i); defineSymbol(math, mathord, wideChar, wideChar); defineSymbol(text, textord, wideChar, wideChar); wideChar = String.fromCharCode(55349, 56736 + i); defineSymbol(math, mathord, wideChar, wideChar); defineSymbol(text, textord, wideChar, wideChar); wideChar = String.fromCharCode(55349, 56788 + i); defineSymbol(math, mathord, wideChar, wideChar); defineSymbol(text, textord, wideChar, wideChar); wideChar = String.fromCharCode(55349, 56840 + i); defineSymbol(math, mathord, wideChar, wideChar); defineSymbol(text, textord, wideChar, wideChar); wideChar = String.fromCharCode(55349, 56944 + i); defineSymbol(math, mathord, wideChar, wideChar); defineSymbol(text, textord, wideChar, wideChar); wideChar = String.fromCharCode(55349, 56632 + i); defineSymbol(math, mathord, wideChar, wideChar); defineSymbol(text, textord, wideChar, wideChar); const ch = letters.charAt(i); wideChar = String.fromCharCode(55349, 56476 + i); defineSymbol(math, mathord, ch, wideChar); defineSymbol(text, textord, ch, wideChar); } for (let i = 0; i < 10; i++) { wideChar = String.fromCharCode(55349, 57294 + i); defineSymbol(math, mathord, wideChar, wideChar); defineSymbol(text, textord, wideChar, wideChar); wideChar = String.fromCharCode(55349, 57314 + i); defineSymbol(math, mathord, wideChar, wideChar); defineSymbol(text, textord, wideChar, wideChar); wideChar = String.fromCharCode(55349, 57324 + i); defineSymbol(math, mathord, wideChar, wideChar); defineSymbol(text, textord, wideChar, wideChar); wideChar = String.fromCharCode(55349, 57334 + i); defineSymbol(math, mathord, wideChar, wideChar); defineSymbol(text, textord, wideChar, wideChar); } var openDelims = "([{\u230A\u2308\u27E8\u27EE\u23B0\u27E6\u2983"; var closeDelims = ")]}\u230B\u2309\u27E9\u27EF\u23B1\u27E6\u2984"; function setLineBreaks(expression, wrapMode, isDisplayMode) { const mtrs = []; let mrows = []; let block = []; let numTopLevelEquals = 0; let i = 0; let level = 0; while (i < expression.length) { while (expression[i] instanceof DocumentFragment) { expression.splice(i, 1, ...expression[i].children); } const node = expression[i]; if (node.attributes && node.attributes.linebreak && node.attributes.linebreak === "newline") { if (block.length > 0) { mrows.push(new mathMLTree.MathNode("mrow", block)); } mrows.push(node); block = []; const mtd = new mathMLTree.MathNode("mtd", mrows); mtd.style.textAlign = "left"; mtrs.push(new mathMLTree.MathNode("mtr", [mtd])); mrows = []; i += 1; continue; } block.push(node); if (node.type && node.type === "mo" && node.children.length === 1 && !Object.hasOwn(node.attributes, "movablelimits")) { const ch = node.children[0].text; if (openDelims.indexOf(ch) > -1) { level += 1; } else if (closeDelims.indexOf(ch) > -1) { level -= 1; } else if (level === 0 && wrapMode === "=" && ch === "=") { numTopLevelEquals += 1; if (numTopLevelEquals > 1) { block.pop(); const element = new mathMLTree.MathNode("mrow", block); mrows.push(element); block = [node]; } } else if (level === 0 && wrapMode === "tex" && ch !== "\u2207") { const next = i < expression.length - 1 ? expression[i + 1] : null; let glueIsFreeOfNobreak = true; if (!(next && next.type === "mtext" && next.attributes.linebreak && next.attributes.linebreak === "nobreak")) { for (let j = i + 1; j < expression.length; j++) { const nd = expression[j]; if (nd.type && nd.type === "mspace" && !(nd.attributes.linebreak && nd.attributes.linebreak === "newline")) { block.push(nd); i += 1; if (nd.attributes && nd.attributes.linebreak && nd.attributes.linebreak === "nobreak") { glueIsFreeOfNobreak = false; } } else { break; } } } if (glueIsFreeOfNobreak) { const element = new mathMLTree.MathNode("mrow", block); mrows.push(element); block = []; } } } i += 1; } if (block.length > 0) { const element = new mathMLTree.MathNode("mrow", block); mrows.push(element); } if (mtrs.length > 0) { const mtd = new mathMLTree.MathNode("mtd", mrows); mtd.style.textAlign = "left"; const mtr = new mathMLTree.MathNode("mtr", [mtd]); mtrs.push(mtr); const mtable = new mathMLTree.MathNode("mtable", mtrs); if (!isDisplayMode) { mtable.setAttribute("columnalign", "left"); mtable.setAttribute("rowspacing", "0em"); } return mtable; } return mathMLTree.newDocumentFragment(mrows); } var makeText = function(text2, mode, style) { if (symbols[mode][text2] && symbols[mode][text2].replace && text2.charCodeAt(0) !== 55349 && !(Object.prototype.hasOwnProperty.call(ligatures, text2) && style && (style.fontFamily && style.fontFamily.slice(4, 6) === "tt" || style.font && style.font.slice(4, 6) === "tt"))) { text2 = symbols[mode][text2].replace; } return new mathMLTree.TextNode(text2); }; var copyChar = (newRow, child) => { if (newRow.children.length === 0 || newRow.children[newRow.children.length - 1].type !== "mtext") { const mtext = new mathMLTree.MathNode( "mtext", [new mathMLTree.TextNode(child.children[0].text)] ); newRow.children.push(mtext); } else { newRow.children[newRow.children.length - 1].children[0].text += child.children[0].text; } }; var consolidateText = (mrow) => { if (mrow.type !== "mrow" && mrow.type !== "mstyle") { return mrow; } if (mrow.children.length === 0) { return mrow; } const newRow = new mathMLTree.MathNode("mrow"); for (let i = 0; i < mrow.children.length; i++) { const child = mrow.children[i]; if (child.type === "mtext" && Object.keys(child.attributes).length === 0) { copyChar(newRow, child); } else if (child.type === "mrow") { let canConsolidate = true; for (let j = 0; j < child.children.length; j++) { const grandChild = child.children[j]; if (grandChild.type !== "mtext" || Object.keys(child.attributes).length !== 0) { canConsolidate = false; break; } } if (canConsolidate) { for (let j = 0; j < child.children.length; j++) { const grandChild = child.children[j]; copyChar(newRow, grandChild); } } else { newRow.children.push(child); } } else { newRow.children.push(child); } } for (let i = 0; i < newRow.children.length; i++) { if (newRow.children[i].type === "mtext") { const mtext = newRow.children[i]; if (mtext.children[0].text.charAt(0) === " ") { mtext.children[0].text = "\xA0" + mtext.children[0].text.slice(1); } const L = mtext.children[0].text.length; if (L > 0 && mtext.children[0].text.charAt(L - 1) === " ") { mtext.children[0].text = mtext.children[0].text.slice(0, -1) + "\xA0"; } for (const [key, value] of Object.entries(mrow.attributes)) { mtext.attributes[key] = value; } } } if (newRow.children.length === 1 && newRow.children[0].type === "mtext") { return newRow.children[0]; } else { return newRow; } }; var makeRow = function(body, semisimple = false) { if (body.length === 1 && !(body[0] instanceof DocumentFragment)) { return body[0]; } else if (!semisimple) { if (body[0] instanceof MathNode && body[0].type === "mo" && !body[0].attributes.fence) { body[0].attributes.lspace = "0em"; body[0].attributes.rspace = "0em"; } const end = body.length - 1; if (body[end] instanceof MathNode && body[end].type === "mo" && !body[end].attributes.fence) { body[end].attributes.lspace = "0em"; body[end].attributes.rspace = "0em"; } } return new mathMLTree.MathNode("mrow", body); }; function isNumberPunctuation(group) { if (!group) { return false; } if (group.type === "mi" && group.children.length === 1) { const child = group.children[0]; return child instanceof TextNode2 && child.text === "."; } else if (group.type === "mtext" && group.children.length === 1) { const child = group.children[0]; return child instanceof TextNode2 && child.text === "\u2008"; } else if (group.type === "mo" && group.children.length === 1 && group.getAttribute("separator") === "true" && group.getAttribute("lspace") === "0em" && group.getAttribute("rspace") === "0em") { const child = group.children[0]; return child instanceof TextNode2 && child.text === ","; } else { return false; } } var isComma = (expression, i) => { const node = expression[i]; const followingNode = expression[i + 1]; return node.type === "atom" && node.text === "," && // Don't consolidate if there is a space after the comma. node.loc && followingNode.loc && node.loc.end === followingNode.loc.start; }; var isRel = (item) => { return item.type === "atom" && item.family === "rel" || item.type === "mclass" && item.mclass === "mrel"; }; var buildExpression = function(expression, style, semisimple = false) { if (!semisimple && expression.length === 1) { const group = buildGroup$1(expression[0], style); if (group instanceof MathNode && group.type === "mo") { group.setAttribute("lspace", "0em"); group.setAttribute("rspace", "0em"); } return [group]; } const groups = []; const groupArray = []; let lastGroup; for (let i = 0; i < expression.length; i++) { groupArray.push(buildGroup$1(expression[i], style)); } for (let i = 0; i < groupArray.length; i++) { const group = groupArray[i]; if (i < expression.length - 1 && isRel(expression[i]) && isRel(expression[i + 1])) { group.setAttribute("rspace", "0em"); } if (i > 0 && isRel(expression[i]) && isRel(expression[i - 1])) { group.setAttribute("lspace", "0em"); } if (group.type === "mn" && lastGroup && lastGroup.type === "mn") { lastGroup.children.push(...group.children); continue; } else if (isNumberPunctuation(group) && lastGroup && lastGroup.type === "mn") { lastGroup.children.push(...group.children); continue; } else if (lastGroup && lastGroup.type === "mn" && i < groupArray.length - 1 && groupArray[i + 1].type === "mn" && isComma(expression, i)) { lastGroup.children.push(...group.children); continue; } else if (group.type === "mn" && isNumberPunctuation(lastGroup)) { group.children = [...lastGroup.children, ...group.children]; groups.pop(); } else if ((group.type === "msup" || group.type === "msub") && group.children.length >= 1 && lastGroup && (lastGroup.type === "mn" || isNumberPunctuation(lastGroup))) { const base = group.children[0]; if (base instanceof MathNode && base.type === "mn" && lastGroup) { base.children = [...lastGroup.children, ...base.children]; groups.pop(); } } groups.push(group); lastGroup = group; } return groups; }; var buildExpressionRow = function(expression, style, semisimple = false) { return makeRow(buildExpression(expression, style, semisimple), semisimple); }; var buildGroup$1 = function(group, style) { if (!group) { return new mathMLTree.MathNode("mrow"); } if (_mathmlGroupBuilders[group.type]) { const result = _mathmlGroupBuilders[group.type](group, style); return result; } else { throw new ParseError("Got group of unknown type: '" + group.type + "'"); } }; var glue$1 = (_) => { return new mathMLTree.MathNode("mtd", [], [], { padding: "0", width: "50%" }); }; var labelContainers = ["mrow", "mtd", "mtable", "mtr"]; var getLabel = (parent) => { for (const node of parent.children) { if (node.type && labelContainers.includes(node.type)) { if (node.classes && node.classes[0] === "tml-label") { const label = node.label; return label; } else { const label = getLabel(node); if (label) { return label; } } } else if (!node.type) { const label = getLabel(node); if (label) { return label; } } } }; var taggedExpression = (expression, tag, style, leqno) => { tag = buildExpressionRow(tag[0].body, style); tag = consolidateText(tag); tag.classes.push("tml-tag"); const label = getLabel(expression); expression = new mathMLTree.MathNode("mtd", [expression]); const rowArray = [glue$1(), expression, glue$1()]; rowArray[leqno ? 0 : 2].classes.push(leqno ? "tml-left" : "tml-right"); rowArray[leqno ? 0 : 2].children.push(tag); const mtr = new mathMLTree.MathNode("mtr", rowArray, ["tml-tageqn"]); if (label) { mtr.setAttribute("id", label); } const table = new mathMLTree.MathNode("mtable", [mtr]); table.style.width = "100%"; table.setAttribute("displaystyle", "true"); return table; }; function buildMathML(tree, texExpression, style, settings) { let tag = null; if (tree.length === 1 && tree[0].type === "tag") { tag = tree[0].tag; tree = tree[0].body; } const expression = buildExpression(tree, style); if (expression.length === 1 && expression[0] instanceof AnchorNode) { return expression[0]; } const wrap = settings.displayMode || settings.annotate ? "none" : settings.wrap; const n1 = expression.length === 0 ? null : expression[0]; let wrapper = expression.length === 1 && tag === null && n1 instanceof MathNode ? expression[0] : setLineBreaks(expression, wrap, settings.displayMode); if (tag) { wrapper = taggedExpression(wrapper, tag, style, settings.leqno); } if (settings.annotate) { const annotation = new mathMLTree.MathNode( "annotation", [new mathMLTree.TextNode(texExpression)] ); annotation.setAttribute("encoding", "application/x-tex"); wrapper = new mathMLTree.MathNode("semantics", [wrapper, annotation]); } const math2 = new mathMLTree.MathNode("math", [wrapper]); if (settings.xml) { math2.setAttribute("xmlns", "http://www.w3.org/1998/Math/MathML"); } if (wrapper.style.width) { math2.style.width = "100%"; } if (settings.displayMode) { math2.setAttribute("display", "block"); math2.style.display = "block math"; math2.classes = ["tml-display"]; } return math2; } var smalls = "aceg\u0131\u0237mnopqrsuvwxyz\u03B1\u03B3\u03B5\u03B7\u03B9\u03BA\u03BC\u03BD\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C7\u03C9\u03D5\u{1D41A}\u{1D41C}\u{1D41E}\u{1D420}\u{1D426}\u{1D427}\u{1D428}\u{1D429}\u{1D42A}\u{1D42B}\u{1D42C}\u{1D42E}\u{1D42F}\u{1D430}\u{1D431}\u{1D432}\u{1D433}"; var talls = "ABCDEFGHIJKLMNOPQRSTUVWXYZbdfhklt\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B2\u03B4\u03BB\u03B6\u03C6\u03B8\u03C8\u{1D400}\u{1D401}\u{1D402}\u{1D403}\u{1D404}\u{1D405}\u{1D406}\u{1D407}\u{1D408}\u{1D409}\u{1D40A}\u{1D40B}\u{1D40C}\u{1D40D}\u{1D40E}\u{1D40F}\u{1D410}\u{1D411}\u{1D412}\u{1D413}\u{1D414}\u{1D415}\u{1D416}\u{1D417}\u{1D418}\u{1D419}\u{1D41B}\u{1D41D}\u{1D41F}\u{1D421}\u{1D424}\u{1D425}\u{1D42D}"; var longSmalls = /* @__PURE__ */ new Set([ "\\alpha", "\\gamma", "\\delta", "\\epsilon", "\\eta", "\\iota", "\\kappa", "\\mu", "\\nu", "\\pi", "\\rho", "\\sigma", "\\tau", "\\upsilon", "\\chi", "\\psi", "\\omega", "\\imath", "\\jmath" ]); var longTalls = /* @__PURE__ */ new Set([ "\\Gamma", "\\Delta", "\\Sigma", "\\Omega", "\\beta", "\\delta", "\\lambda", "\\theta", "\\psi" ]); var mathmlBuilder$a = (group, style) => { const accentNode2 = group.isStretchy ? stretchy.accentNode(group) : new mathMLTree.MathNode("mo", [makeText(group.label, group.mode)]); if (group.label === "\\vec") { accentNode2.style.transform = "scale(0.75) translate(10%, 30%)"; } else { accentNode2.style.mathStyle = "normal"; accentNode2.style.mathDepth = "0"; if (needWebkitShift.has(group.label) && utils.isCharacterBox(group.base)) { let shift = ""; const ch = group.base.text; if (smalls.indexOf(ch) > -1 || longSmalls.has(ch)) { shift = "tml-xshift"; } if (talls.indexOf(ch) > -1 || longTalls.has(ch)) { shift = "tml-capshift"; } if (shift) { accentNode2.classes.push(shift); } } } if (!group.isStretchy) { accentNode2.setAttribute("stretchy", "false"); } const node = new mathMLTree.MathNode( group.label === "\\c" ? "munder" : "mover", [buildGroup$1(group.base, style), accentNode2] ); return node; }; var nonStretchyAccents = /* @__PURE__ */ new Set([ "\\acute", "\\grave", "\\ddot", "\\dddot", "\\ddddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\mathring" ]); var needWebkitShift = /* @__PURE__ */ new Set([ "\\acute", "\\bar", "\\breve", "\\check", "\\dot", "\\ddot", "\\grave", "\\hat", "\\mathring", "\\'", "\\^", "\\~", "\\=", "\\u", "\\.", '\\"', "\\r", "\\H", "\\v" ]); var combiningChar = { "\\`": "\u0300", "\\'": "\u0301", "\\^": "\u0302", "\\~": "\u0303", "\\=": "\u0304", "\\u": "\u0306", "\\.": "\u0307", '\\"': "\u0308", "\\r": "\u030A", "\\H": "\u030B", "\\v": "\u030C" }; defineFunction({ type: "accent", names: [ "\\acute", "\\grave", "\\ddot", "\\dddot", "\\ddddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\mathring", "\\overparen", "\\widecheck", "\\widehat", "\\wideparen", "\\widetilde", "\\overrightarrow", "\\overleftarrow", "\\Overrightarrow", "\\overleftrightarrow", "\\overgroup", "\\overleftharpoon", "\\overrightharpoon" ], props: { numArgs: 1 }, handler: (context, args) => { const base = normalizeArgument(args[0]); const isStretchy = !nonStretchyAccents.has(context.funcName); return { type: "accent", mode: context.parser.mode, label: context.funcName, isStretchy, base }; }, mathmlBuilder: mathmlBuilder$a }); defineFunction({ type: "accent", names: ["\\'", "\\`", "\\^", "\\~", "\\=", "\\c", "\\u", "\\.", '\\"', "\\r", "\\H", "\\v"], props: { numArgs: 1, allowedInText: true, allowedInMath: true, argTypes: ["primitive"] }, handler: (context, args) => { const base = normalizeArgument(args[0]); const mode = context.parser.mode; if (mode === "math" && context.parser.settings.strict) { console.log(`Temml parse error: Command ${context.funcName} is invalid in math mode.`); } if (mode === "text" && base.text && base.text.length === 1 && context.funcName in combiningChar && smalls.indexOf(base.text) > -1) { return { type: "textord", mode: "text", text: base.text + combiningChar[context.funcName] }; } else { return { type: "accent", mode, label: context.funcName, isStretchy: false, base }; } }, mathmlBuilder: mathmlBuilder$a }); defineFunction({ type: "accentUnder", names: [ "\\underleftarrow", "\\underrightarrow", "\\underleftrightarrow", "\\undergroup", "\\underparen", "\\utilde" ], props: { numArgs: 1 }, handler: ({ parser, funcName }, args) => { const base = args[0]; return { type: "accentUnder", mode: parser.mode, label: funcName, base }; }, mathmlBuilder: (group, style) => { const accentNode2 = stretchy.accentNode(group); accentNode2.style["math-depth"] = 0; const node = new mathMLTree.MathNode("munder", [ buildGroup$1(group.base, style), accentNode2 ]); return node; } }); var ptPerUnit = { // Convert to CSS (Postscipt) points, not TeX points // https://en.wikibooks.org/wiki/LaTeX/Lengths and // https://tex.stackexchange.com/a/8263 pt: 800 / 803, // convert TeX point to CSS (Postscript) point pc: 12 * 800 / 803, // pica dd: 1238 / 1157 * 800 / 803, // didot cc: 14856 / 1157 * 800 / 803, // cicero (12 didot) nd: 685 / 642 * 800 / 803, // new didot nc: 1370 / 107 * 800 / 803, // new cicero (12 new didot) sp: 1 / 65536 * 800 / 803, // scaled point (TeX's internal smallest unit) mm: 25.4 / 72, cm: 2.54 / 72, in: 1 / 72, px: 96 / 72 }; var validUnits = [ "em", "ex", "mu", "pt", "mm", "cm", "in", "px", "bp", "pc", "dd", "cc", "nd", "nc", "sp" ]; var validUnit = function(unit) { if (typeof unit !== "string") { unit = unit.unit; } return validUnits.indexOf(unit) > -1; }; var emScale = (styleLevel) => { const scriptLevel2 = Math.max(styleLevel - 1, 0); return [1, 0.7, 0.5][scriptLevel2]; }; var calculateSize = function(sizeValue, style) { let number = sizeValue.number; if (style.maxSize[0] < 0 && number > 0) { return { number: 0, unit: "em" }; } const unit = sizeValue.unit; switch (unit) { case "mm": case "cm": case "in": case "px": { const numInCssPts = number * ptPerUnit[unit]; if (numInCssPts > style.maxSize[1]) { return { number: style.maxSize[1], unit: "pt" }; } return { number, unit }; } case "em": case "ex": { if (unit === "ex") { number *= 0.431; } number = Math.min(number / emScale(style.level), style.maxSize[0]); return { number: utils.round(number), unit: "em" }; } case "bp": { if (number > style.maxSize[1]) { number = style.maxSize[1]; } return { number, unit: "pt" }; } case "pt": case "pc": case "dd": case "cc": case "nd": case "nc": case "sp": { number = Math.min(number * ptPerUnit[unit], style.maxSize[1]); return { number: utils.round(number), unit: "pt" }; } case "mu": { number = Math.min(number / 18, style.maxSize[0]); return { number: utils.round(number), unit: "em" }; } default: throw new ParseError("Invalid unit: '" + unit + "'"); } }; var padding$2 = (width) => { const node = new mathMLTree.MathNode("mspace"); node.setAttribute("width", width + "em"); return node; }; var paddedNode = (group, lspace = 0.3, rspace = 0, mustSmash = false) => { if (group == null && rspace === 0) { return padding$2(lspace); } const row = group ? [group] : []; if (lspace !== 0) { row.unshift(padding$2(lspace)); } if (rspace > 0) { row.push(padding$2(rspace)); } if (mustSmash) { const mpadded = new mathMLTree.MathNode("mpadded", row); mpadded.setAttribute("height", "0"); return mpadded; } else { return new mathMLTree.MathNode("mrow", row); } }; var labelSize = (size, scriptLevel2) => Number(size) / emScale(scriptLevel2); var munderoverNode = (fName, body, below, style) => { const arrowNode = stretchy.mathMLnode(fName); const isEq = fName.slice(1, 3) === "eq"; const minWidth = fName.charAt(1) === "x" ? "1.75" : fName.slice(2, 4) === "cd" ? "3.0" : isEq ? "1.0" : "2.0"; arrowNode.setAttribute("lspace", "0"); arrowNode.setAttribute("rspace", isEq ? "0.5em" : "0"); const labelStyle = style.withLevel(style.level < 2 ? 2 : 3); const minArrowWidth = labelSize(minWidth, labelStyle.level); const dummyWidth = labelSize(minWidth, 3); const emptyLabel = paddedNode(null, minArrowWidth.toFixed(4), 0); const dummyNode = paddedNode(null, dummyWidth.toFixed(4), 0); const space = labelSize(isEq ? 0 : 0.3, labelStyle.level).toFixed(4); let upperNode; let lowerNode; const gotUpper = body && body.body && // \hphantom visible content (body.body.body || body.body.length > 0); if (gotUpper) { let label = buildGroup$1(body, labelStyle); const mustSmash = fName === "\\\\cdrightarrow" || fName === "\\\\cdleftarrow"; label = paddedNode(label, space, space, mustSmash); upperNode = new mathMLTree.MathNode("mover", [label, dummyNode]); } const gotLower = below && below.body && (below.body.body || below.body.length > 0); if (gotLower) { let label = buildGroup$1(below, labelStyle); label = paddedNode(label, space, space); lowerNode = new mathMLTree.MathNode("munder", [label, dummyNode]); } let node; if (!gotUpper && !gotLower) { node = new mathMLTree.MathNode("mover", [arrowNode, emptyLabel]); } else if (gotUpper && gotLower) { node = new mathMLTree.MathNode("munderover", [arrowNode, lowerNode, upperNode]); } else if (gotUpper) { node = new mathMLTree.MathNode("mover", [arrowNode, upperNode]); } else { node = new mathMLTree.MathNode("munder", [arrowNode, lowerNode]); } if (minWidth === "3.0") { node.style.height = "1em"; } node.setAttribute("accent", "false"); return node; }; defineFunction({ type: "xArrow", names: [ "\\xleftarrow", "\\xrightarrow", "\\xLeftarrow", "\\xRightarrow", "\\xleftrightarrow", "\\xLeftrightarrow", "\\xhookleftarrow", "\\xhookrightarrow", "\\xmapsto", "\\xrightharpoondown", "\\xrightharpoonup", "\\xleftharpoondown", "\\xleftharpoonup", "\\xlongequal", "\\xtwoheadrightarrow", "\\xtwoheadleftarrow", // The next 5 functions are here only to support mhchem "\\yields", "\\yieldsLeft", "\\mesomerism", "\\longrightharpoonup", "\\longleftharpoondown", // The next 3 functions are here only to support the {CD} environment. "\\\\cdrightarrow", "\\\\cdleftarrow", "\\\\cdlongequal" ], props: { numArgs: 1, numOptionalArgs: 1 }, handler({ parser, funcName }, args, optArgs) { return { type: "xArrow", mode: parser.mode, name: funcName, body: args[0], below: optArgs[0] }; }, mathmlBuilder(group, style) { const node = munderoverNode(group.name, group.body, group.below, style); const row = [node]; row.unshift(padding$2(0.2778)); row.push(padding$2(0.2778)); return new mathMLTree.MathNode("mrow", row); } }); var arrowComponent = { "\\xtofrom": ["\\xrightarrow", "\\xleftarrow"], "\\xleftrightharpoons": ["\\xleftharpoonup", "\\xrightharpoondown"], "\\xrightleftharpoons": ["\\xrightharpoonup", "\\xleftharpoondown"], "\\yieldsLeftRight": ["\\yields", "\\yieldsLeft"], // The next three all get the same harpoon glyphs. Only the lengths and paddings differ. "\\equilibrium": ["\\longrightharpoonup", "\\longleftharpoondown"], "\\equilibriumRight": ["\\longrightharpoonup", "\\eqleftharpoondown"], "\\equilibriumLeft": ["\\eqrightharpoonup", "\\longleftharpoondown"] }; defineFunction({ type: "stackedArrow", names: [ "\\xtofrom", // expfeil "\\xleftrightharpoons", // mathtools "\\xrightleftharpoons", // mathtools "\\yieldsLeftRight", // mhchem "\\equilibrium", // mhchem "\\equilibriumRight", "\\equilibriumLeft" ], props: { numArgs: 1, numOptionalArgs: 1 }, handler({ parser, funcName }, args, optArgs) { const lowerArrowBody = args[0] ? { type: "hphantom", mode: parser.mode, body: args[0] } : null; const upperArrowBelow = optArgs[0] ? { type: "hphantom", mode: parser.mode, body: optArgs[0] } : null; return { type: "stackedArrow", mode: parser.mode, name: funcName, body: args[0], upperArrowBelow, lowerArrowBody, below: optArgs[0] }; }, mathmlBuilder(group, style) { const topLabel = arrowComponent[group.name][0]; const botLabel = arrowComponent[group.name][1]; const topArrow = munderoverNode(topLabel, group.body, group.upperArrowBelow, style); const botArrow = munderoverNode(botLabel, group.lowerArrowBody, group.below, style); let wrapper; const raiseNode = new mathMLTree.MathNode("mpadded", [topArrow]); raiseNode.setAttribute("voffset", "0.3em"); raiseNode.setAttribute("height", "+0.3em"); raiseNode.setAttribute("depth", "-0.3em"); if (group.name === "\\equilibriumLeft") { const botNode = new mathMLTree.MathNode("mpadded", [botArrow]); botNode.setAttribute("width", "0.5em"); wrapper = new mathMLTree.MathNode( "mpadded", [padding$2(0.2778), botNode, raiseNode, padding$2(0.2778)] ); } else { raiseNode.setAttribute("width", group.name === "\\equilibriumRight" ? "0.5em" : "0"); wrapper = new mathMLTree.MathNode( "mpadded", [padding$2(0.2778), raiseNode, botArrow, padding$2(0.2778)] ); } wrapper.setAttribute("voffset", "-0.18em"); wrapper.setAttribute("height", "-0.18em"); wrapper.setAttribute("depth", "+0.18em"); return wrapper; } }); function assertNodeType(node, type) { if (!node || node.type !== type) { throw new Error( `Expected node of type ${type}, but got ` + (node ? `node of type ${node.type}` : String(node)) ); } return node; } function assertSymbolNodeType(node) { const typedNode = checkSymbolNodeType(node); if (!typedNode) { throw new Error( `Expected node of symbol group type, but got ` + (node ? `node of type ${node.type}` : String(node)) ); } return typedNode; } function checkSymbolNodeType(node) { if (node && (node.type === "atom" || Object.prototype.hasOwnProperty.call(NON_ATOMS, node.type))) { return node; } return null; } var cdArrowFunctionName = { ">": "\\\\cdrightarrow", "<": "\\\\cdleftarrow", "=": "\\\\cdlongequal", A: "\\uparrow", V: "\\downarrow", "|": "\\Vert", ".": "no arrow" }; var newCell = () => { return { type: "styling", body: [], mode: "math", scriptLevel: "display" }; }; var isStartOfArrow = (node) => { return node.type === "textord" && node.text === "@"; }; var isLabelEnd = (node, endChar) => { return (node.type === "mathord" || node.type === "atom") && node.text === endChar; }; function cdArrow(arrowChar, labels, parser) { const funcName = cdArrowFunctionName[arrowChar]; switch (funcName) { case "\\\\cdrightarrow": case "\\\\cdleftarrow": return parser.callFunction(funcName, [labels[0]], [labels[1]]); case "\\uparrow": case "\\downarrow": { const leftLabel = parser.callFunction("\\\\cdleft", [labels[0]], []); const bareArrow = { type: "atom", text: funcName, mode: "math", family: "rel" }; const sizedArrow = parser.callFunction("\\Big", [bareArrow], []); const rightLabel = parser.callFunction("\\\\cdright", [labels[1]], []); const arrowGroup = { type: "ordgroup", mode: "math", body: [leftLabel, sizedArrow, rightLabel], semisimple: true }; return parser.callFunction("\\\\cdparent", [arrowGroup], []); } case "\\\\cdlongequal": return parser.callFunction("\\\\cdlongequal", [], []); case "\\Vert": { const arrow = { type: "textord", text: "\\Vert", mode: "math" }; return parser.callFunction("\\Big", [arrow], []); } default: return { type: "textord", text: " ", mode: "math" }; } } function parseCD(parser) { const parsedRows = []; parser.gullet.beginGroup(); parser.gullet.macros.set("\\cr", "\\\\\\relax"); parser.gullet.beginGroup(); while (true) { parsedRows.push(parser.parseExpression(false, "\\\\")); parser.gullet.endGroup(); parser.gullet.beginGroup(); const next = parser.fetch().text; if (next === "&" || next === "\\\\") { parser.consume(); } else if (next === "\\end") { if (parsedRows[parsedRows.length - 1].length === 0) { parsedRows.pop(); } break; } else { throw new ParseError("Expected \\\\ or \\cr or \\end", parser.nextToken); } } let row = []; const body = [row]; for (let i = 0; i < parsedRows.length; i++) { const rowNodes = parsedRows[i]; let cell = newCell(); for (let j = 0; j < rowNodes.length; j++) { if (!isStartOfArrow(rowNodes[j])) { cell.body.push(rowNodes[j]); } else { row.push(cell); j += 1; const arrowChar = assertSymbolNodeType(rowNodes[j]).text; const labels = new Array(2); labels[0] = { type: "ordgroup", mode: "math", body: [] }; labels[1] = { type: "ordgroup", mode: "math", body: [] }; if ("=|.".indexOf(arrowChar) > -1) ; else if ("<>AV".indexOf(arrowChar) > -1) { for (let labelNum = 0; labelNum < 2; labelNum++) { let inLabel = true; for (let k = j + 1; k < rowNodes.length; k++) { if (isLabelEnd(rowNodes[k], arrowChar)) { inLabel = false; j = k; break; } if (isStartOfArrow(rowNodes[k])) { throw new ParseError( "Missing a " + arrowChar + " character to complete a CD arrow.", rowNodes[k] ); } labels[labelNum].body.push(rowNodes[k]); } if (inLabel) { throw new ParseError( "Missing a " + arrowChar + " character to complete a CD arrow.", rowNodes[j] ); } } } else { throw new ParseError(`Expected one of "<>AV=|." after @.`); } const arrow = cdArrow(arrowChar, labels, parser); row.push(arrow); cell = newCell(); } } if (i % 2 === 0) { row.push(cell); } else { row.shift(); } row = []; body.push(row); } body.pop(); parser.gullet.endGroup(); parser.gullet.endGroup(); return { type: "array", mode: "math", body, tags: null, labels: new Array(body.length + 1).fill(""), envClasses: ["jot", "cd"], cols: [], hLinesBeforeRow: new Array(body.length + 1).fill([]) }; } defineFunction({ type: "cdlabel", names: ["\\\\cdleft", "\\\\cdright"], props: { numArgs: 1 }, handler({ parser, funcName }, args) { return { type: "cdlabel", mode: parser.mode, side: funcName.slice(4), label: args[0] }; }, mathmlBuilder(group, style) { if (group.label.body.length === 0) { return new mathMLTree.MathNode("mrow", style); } const mtd = new mathMLTree.MathNode("mtd", [buildGroup$1(group.label, style)]); mtd.style.padding = "0"; const mtr = new mathMLTree.MathNode("mtr", [mtd]); const mtable = new mathMLTree.MathNode("mtable", [mtr]); const label = new mathMLTree.MathNode("mpadded", [mtable]); label.setAttribute("width", "0"); label.setAttribute("displaystyle", "false"); label.setAttribute("scriptlevel", "1"); if (group.side === "left") { label.style.display = "flex"; label.style.justifyContent = "flex-end"; } return label; } }); defineFunction({ type: "cdlabelparent", names: ["\\\\cdparent"], props: { numArgs: 1 }, handler({ parser }, args) { return { type: "cdlabelparent", mode: parser.mode, fragment: args[0] }; }, mathmlBuilder(group, style) { return new mathMLTree.MathNode("mrow", [buildGroup$1(group.fragment, style)]); } }); defineFunction({ type: "textord", names: ["\\@char"], props: { numArgs: 1, allowedInText: true }, handler({ parser, token }, args) { const arg = assertNodeType(args[0], "ordgroup"); const group = arg.body; let number = ""; for (let i = 0; i < group.length; i++) { const node = assertNodeType(group[i], "textord"); number += node.text; } const code = parseInt(number); if (isNaN(code)) { throw new ParseError(`\\@char has non-numeric argument ${number}`, token); } return { type: "textord", mode: parser.mode, text: String.fromCodePoint(code) }; } }); var htmlRegEx = /^(#[a-f0-9]{3}|#?[a-f0-9]{6})$/i; var htmlOrNameRegEx = /^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i; var RGBregEx = /^ *\d{1,3} *(?:, *\d{1,3} *){2}$/; var rgbRegEx = /^ *[10](?:\.\d*)? *(?:, *[10](?:\.\d*)? *){2}$/; var xcolorHtmlRegEx = /^[a-f0-9]{6}$/i; var toHex = (num) => { let str = num.toString(16); if (str.length === 1) { str = "0" + str; } return str; }; var xcolors = JSON.parse(`{ "Apricot": "#ffb484", "Aquamarine": "#08b4bc", "Bittersweet": "#c84c14", "blue": "#0000FF", "Blue": "#303494", "BlueGreen": "#08b4bc", "BlueViolet": "#503c94", "BrickRed": "#b8341c", "brown": "#BF8040", "Brown": "#802404", "BurntOrange": "#f8941c", "CadetBlue": "#78749c", "CarnationPink": "#f884b4", "Cerulean": "#08a4e4", "CornflowerBlue": "#40ace4", "cyan": "#00FFFF", "Cyan": "#08acec", "Dandelion": "#ffbc44", "darkgray": "#404040", "DarkOrchid": "#a8548c", "Emerald": "#08ac9c", "ForestGreen": "#089c54", "Fuchsia": "#90348c", "Goldenrod": "#ffdc44", "gray": "#808080", "Gray": "#98949c", "green": "#00FF00", "Green": "#08a44c", "GreenYellow": "#e0e474", "JungleGreen": "#08ac9c", "Lavender": "#f89cc4", "lightgray": "#c0c0c0", "lime": "#BFFF00", "LimeGreen": "#90c43c", "magenta": "#FF00FF", "Magenta": "#f0048c", "Mahogany": "#b0341c", "Maroon": "#b03434", "Melon": "#f89c7c", "MidnightBlue": "#086494", "Mulberry": "#b03c94", "NavyBlue": "#086cbc", "olive": "#7F7F00", "OliveGreen": "#407c34", "orange": "#FF8000", "Orange": "#f8843c", "OrangeRed": "#f0145c", "Orchid": "#b074ac", "Peach": "#f8945c", "Periwinkle": "#8074bc", "PineGreen": "#088c74", "pink": "#ff7f7f", "Plum": "#98248c", "ProcessBlue": "#08b4ec", "purple": "#BF0040", "Purple": "#a0449c", "RawSienna": "#983c04", "red": "#ff0000", "Red": "#f01c24", "RedOrange": "#f86434", "RedViolet": "#a0246c", "Rhodamine": "#f0549c", "Royallue": "#0874bc", "RoyalPurple": "#683c9c", "RubineRed": "#f0047c", "Salmon": "#f8948c", "SeaGreen": "#30bc9c", "Sepia": "#701404", "SkyBlue": "#48c4dc", "SpringGreen": "#c8dc64", "Tan": "#e09c74", "teal": "#007F7F", "TealBlue": "#08acb4", "Thistle": "#d884b4", "Turquoise": "#08b4cc", "violet": "#800080", "Violet": "#60449c", "VioletRed": "#f054a4", "WildStrawberry": "#f0246c", "yellow": "#FFFF00", "Yellow": "#fff404", "YellowGreen": "#98cc6c", "YellowOrange": "#ffa41c" }`); var colorFromSpec = (model, spec) => { let color = ""; if (model === "HTML") { if (!htmlRegEx.test(spec)) { throw new ParseError("Invalid HTML input."); } color = spec; } else if (model === "RGB") { if (!RGBregEx.test(spec)) { throw new ParseError("Invalid RGB input."); } spec.split(",").map((e) => { color += toHex(Number(e.trim())); }); } else { if (!rgbRegEx.test(spec)) { throw new ParseError("Invalid rbg input."); } spec.split(",").map((e) => { const num = Number(e.trim()); if (num > 1) { throw new ParseError("Color rgb input must be < 1."); } color += toHex(Number((num * 255).toFixed(0))); }); } if (color.charAt(0) !== "#") { color = "#" + color; } return color; }; var validateColor = (color, macros2, token) => { const macroName = `\\\\color@${color}`; const match = htmlOrNameRegEx.exec(color); if (!match) { throw new ParseError("Invalid color: '" + color + "'", token); } if (xcolorHtmlRegEx.test(color)) { return "#" + color; } else if (color.charAt(0) === "#") { return color; } else if (macros2.has(macroName)) { color = macros2.get(macroName).tokens[0].text; } else if (xcolors[color]) { color = xcolors[color]; } return color; }; var mathmlBuilder$9 = (group, style) => { let expr = buildExpression(group.body, style.withColor(group.color)); expr = expr.map((e) => { e.style.color = group.color; return e; }); return mathMLTree.newDocumentFragment(expr); }; defineFunction({ type: "color", names: ["\\textcolor"], props: { numArgs: 2, numOptionalArgs: 1, allowedInText: true, argTypes: ["raw", "raw", "original"] }, handler({ parser, token }, args, optArgs) { const model = optArgs[0] && assertNodeType(optArgs[0], "raw").string; let color = ""; if (model) { const spec = assertNodeType(args[0], "raw").string; color = colorFromSpec(model, spec); } else { color = validateColor(assertNodeType(args[0], "raw").string, parser.gullet.macros, token); } const body = args[1]; return { type: "color", mode: parser.mode, color, isTextColor: true, body: ordargument(body) }; }, mathmlBuilder: mathmlBuilder$9 }); defineFunction({ type: "color", names: ["\\color"], props: { numArgs: 1, numOptionalArgs: 1, allowedInText: true, argTypes: ["raw", "raw"] }, handler({ parser, breakOnTokenText, token }, args, optArgs) { const model = optArgs[0] && assertNodeType(optArgs[0], "raw").string; let color = ""; if (model) { const spec = assertNodeType(args[0], "raw").string; color = colorFromSpec(model, spec); } else { color = validateColor(assertNodeType(args[0], "raw").string, parser.gullet.macros, token); } const body = parser.parseExpression(true, breakOnTokenText, true); return { type: "color", mode: parser.mode, color, isTextColor: false, body }; }, mathmlBuilder: mathmlBuilder$9 }); defineFunction({ type: "color", names: ["\\definecolor"], props: { numArgs: 3, allowedInText: true, argTypes: ["raw", "raw", "raw"] }, handler({ parser, funcName, token }, args) { const name = assertNodeType(args[0], "raw").string; if (!/^[A-Za-z]+$/.test(name)) { throw new ParseError("Color name must be latin letters.", token); } const model = assertNodeType(args[1], "raw").string; if (!["HTML", "RGB", "rgb"].includes(model)) { throw new ParseError("Color model must be HTML, RGB, or rgb.", token); } const spec = assertNodeType(args[2], "raw").string; const color = colorFromSpec(model, spec); parser.gullet.macros.set(`\\\\color@${name}`, { tokens: [{ text: color }], numArgs: 0 }); return { type: "internal", mode: parser.mode }; } // No mathmlBuilder. The point of \definecolor is to set a macro. }); defineFunction({ type: "cr", names: ["\\\\"], props: { numArgs: 0, numOptionalArgs: 0, allowedInText: true }, handler({ parser }, args, optArgs) { const size = parser.gullet.future().text === "[" ? parser.parseSizeGroup(true) : null; const newLine = !parser.settings.displayMode; return { type: "cr", mode: parser.mode, newLine, size: size && assertNodeType(size, "size").value }; }, // The following builder is called only at the top level, // not within tabular/array environments. mathmlBuilder(group, style) { const node = new mathMLTree.MathNode("mo"); if (group.newLine) { node.setAttribute("linebreak", "newline"); if (group.size) { const size = calculateSize(group.size, style); node.setAttribute("height", size.number + size.unit); } } return node; } }); var globalMap = { "\\global": "\\global", "\\long": "\\\\globallong", "\\\\globallong": "\\\\globallong", "\\def": "\\gdef", "\\gdef": "\\gdef", "\\edef": "\\xdef", "\\xdef": "\\xdef", "\\let": "\\\\globallet", "\\futurelet": "\\\\globalfuture" }; var checkControlSequence = (tok) => { const name = tok.text; if (/^(?:[\\{}$&#^_]|EOF)$/.test(name)) { throw new ParseError("Expected a control sequence", tok); } return name; }; var getRHS = (parser) => { let tok = parser.gullet.popToken(); if (tok.text === "=") { tok = parser.gullet.popToken(); if (tok.text === " ") { tok = parser.gullet.popToken(); } } return tok; }; var letCommand = (parser, name, tok, global) => { let macro = parser.gullet.macros.get(tok.text); if (macro == null) { tok.noexpand = true; macro = { tokens: [tok], numArgs: 0, // reproduce the same behavior in expansion unexpandable: !parser.gullet.isExpandable(tok.text) }; } parser.gullet.macros.set(name, macro, global); }; defineFunction({ type: "internal", names: [ "\\global", "\\long", "\\\\globallong" // can’t be entered directly ], props: { numArgs: 0, allowedInText: true }, handler({ parser, funcName }) { parser.consumeSpaces(); const token = parser.fetch(); if (globalMap[token.text]) { if (funcName === "\\global" || funcName === "\\\\globallong") { token.text = globalMap[token.text]; } return assertNodeType(parser.parseFunction(), "internal"); } throw new ParseError(`Invalid token after macro prefix`, token); } }); defineFunction({ type: "internal", names: ["\\def", "\\gdef", "\\edef", "\\xdef"], props: { numArgs: 0, allowedInText: true, primitive: true }, handler({ parser, funcName }) { let tok = parser.gullet.popToken(); const name = tok.text; if (/^(?:[\\{}$&#^_]|EOF)$/.test(name)) { throw new ParseError("Expected a control sequence", tok); } let numArgs = 0; let insert; const delimiters2 = [[]]; while (parser.gullet.future().text !== "{") { tok = parser.gullet.popToken(); if (tok.text === "#") { if (parser.gullet.future().text === "{") { insert = parser.gullet.future(); delimiters2[numArgs].push("{"); break; } tok = parser.gullet.popToken(); if (!/^[1-9]$/.test(tok.text)) { throw new ParseError(`Invalid argument number "${tok.text}"`); } if (parseInt(tok.text) !== numArgs + 1) { throw new ParseError(`Argument number "${tok.text}" out of order`); } numArgs++; delimiters2.push([]); } else if (tok.text === "EOF") { throw new ParseError("Expected a macro definition"); } else { delimiters2[numArgs].push(tok.text); } } let { tokens } = parser.gullet.consumeArg(); if (insert) { tokens.unshift(insert); } if (funcName === "\\edef" || funcName === "\\xdef") { tokens = parser.gullet.expandTokens(tokens); if (tokens.length > parser.gullet.settings.maxExpand) { throw new ParseError("Too many expansions in an " + funcName); } tokens.reverse(); } parser.gullet.macros.set( name, { tokens, numArgs, delimiters: delimiters2 }, funcName === globalMap[funcName] ); return { type: "internal", mode: parser.mode }; } }); defineFunction({ type: "internal", names: [ "\\let", "\\\\globallet" // can’t be entered directly ], props: { numArgs: 0, allowedInText: true, primitive: true }, handler({ parser, funcName }) { const name = checkControlSequence(parser.gullet.popToken()); parser.gullet.consumeSpaces(); const tok = getRHS(parser); letCommand(parser, name, tok, funcName === "\\\\globallet"); return { type: "internal", mode: parser.mode }; } }); defineFunction({ type: "internal", names: [ "\\futurelet", "\\\\globalfuture" // can’t be entered directly ], props: { numArgs: 0, allowedInText: true, primitive: true }, handler({ parser, funcName }) { const name = checkControlSequence(parser.gullet.popToken()); const middle = parser.gullet.popToken(); const tok = parser.gullet.popToken(); letCommand(parser, name, tok, funcName === "\\\\globalfuture"); parser.gullet.pushToken(tok); parser.gullet.pushToken(middle); return { type: "internal", mode: parser.mode }; } }); defineFunction({ type: "internal", names: ["\\newcommand", "\\renewcommand", "\\providecommand"], props: { numArgs: 0, allowedInText: true, primitive: true }, handler({ parser, funcName }) { let name = ""; const tok = parser.gullet.popToken(); if (tok.text === "{") { name = checkControlSequence(parser.gullet.popToken()); parser.gullet.popToken(); } else { name = checkControlSequence(tok); } const exists = parser.gullet.isDefined(name); if (exists && funcName === "\\newcommand") { throw new ParseError( `\\newcommand{${name}} attempting to redefine ${name}; use \\renewcommand` ); } if (!exists && funcName === "\\renewcommand") { throw new ParseError( `\\renewcommand{${name}} when command ${name} does not yet exist; use \\newcommand` ); } let numArgs = 0; if (parser.gullet.future().text === "[") { let tok2 = parser.gullet.popToken(); tok2 = parser.gullet.popToken(); if (!/^[0-9]$/.test(tok2.text)) { throw new ParseError(`Invalid number of arguments: "${tok2.text}"`); } numArgs = parseInt(tok2.text); tok2 = parser.gullet.popToken(); if (tok2.text !== "]") { throw new ParseError(`Invalid argument "${tok2.text}"`); } } const { tokens } = parser.gullet.consumeArg(); if (!(funcName === "\\providecommand" && parser.gullet.macros.has(name))) { parser.gullet.macros.set( name, { tokens, numArgs } ); } return { type: "internal", mode: parser.mode }; } }); var delimiterSizes = { "\\bigl": { mclass: "mopen", size: 1 }, "\\Bigl": { mclass: "mopen", size: 2 }, "\\biggl": { mclass: "mopen", size: 3 }, "\\Biggl": { mclass: "mopen", size: 4 }, "\\bigr": { mclass: "mclose", size: 1 }, "\\Bigr": { mclass: "mclose", size: 2 }, "\\biggr": { mclass: "mclose", size: 3 }, "\\Biggr": { mclass: "mclose", size: 4 }, "\\bigm": { mclass: "mrel", size: 1 }, "\\Bigm": { mclass: "mrel", size: 2 }, "\\biggm": { mclass: "mrel", size: 3 }, "\\Biggm": { mclass: "mrel", size: 4 }, "\\big": { mclass: "mord", size: 1 }, "\\Big": { mclass: "mord", size: 2 }, "\\bigg": { mclass: "mord", size: 3 }, "\\Bigg": { mclass: "mord", size: 4 } }; var delimiters = [ "(", "\\lparen", ")", "\\rparen", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\u2987", "\\llparenthesis", "\u2988", "\\rrparenthesis", "\\lfloor", "\\rfloor", "\u230A", "\u230B", "\\lceil", "\\rceil", "\u2308", "\u2309", "<", ">", "\\langle", "\u27E8", "\\rangle", "\u27E9", "\\lAngle", "\u27EA", "\\rAngle", "\u27EB", "\\llangle", "\u2989", "\\rrangle", "\u298A", "\\lt", "\\gt", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "\u27EE", "\u27EF", "\\lmoustache", "\\rmoustache", "\u23B0", "\u23B1", "\\llbracket", "\\rrbracket", "\u27E6", "\u27E6", "\\lBrace", "\\rBrace", "\u2983", "\u2984", "/", "\\backslash", "|", "\\vert", "\\|", "\\Vert", "\u2016", "\\uparrow", "\\Uparrow", "\\downarrow", "\\Downarrow", "\\updownarrow", "\\Updownarrow", "." ]; var dels = ["}", "\\left", "\\middle", "\\right"]; var isDelimiter = (str) => str.length > 0 && (delimiters.includes(str) || delimiterSizes[str] || dels.includes(str)); var sizeToMaxHeight = [0, 1.2, 1.8, 2.4, 3]; function checkDelimiter(delim, context) { const symDelim = checkSymbolNodeType(delim); if (symDelim && delimiters.includes(symDelim.text)) { if (["<", "\\lt"].includes(symDelim.text)) { symDelim.text = "\u27E8"; } if ([">", "\\gt"].includes(symDelim.text)) { symDelim.text = "\u27E9"; } return symDelim; } else if (symDelim) { throw new ParseError(`Invalid delimiter '${symDelim.text}' after '${context.funcName}'`, delim); } else { throw new ParseError(`Invalid delimiter type '${delim.type}'`, delim); } } var needExplicitStretch = ["/", "\\", "\\backslash", "\\vert", "|"]; defineFunction({ type: "delimsizing", names: [ "\\bigl", "\\Bigl", "\\biggl", "\\Biggl", "\\bigr", "\\Bigr", "\\biggr", "\\Biggr", "\\bigm", "\\Bigm", "\\biggm", "\\Biggm", "\\big", "\\Big", "\\bigg", "\\Bigg" ], props: { numArgs: 1, argTypes: ["primitive"] }, handler: (context, args) => { const delim = checkDelimiter(args[0], context); return { type: "delimsizing", mode: context.parser.mode, size: delimiterSizes[context.funcName].size, mclass: delimiterSizes[context.funcName].mclass, delim: delim.text }; }, mathmlBuilder: (group) => { const children = []; if (group.delim === ".") { group.delim = ""; } children.push(makeText(group.delim, group.mode)); const node = new mathMLTree.MathNode("mo", children); if (group.mclass === "mopen" || group.mclass === "mclose") { node.setAttribute("fence", "true"); } else { node.setAttribute("fence", "false"); } if (needExplicitStretch.includes(group.delim) || group.delim.indexOf("arrow") > -1) { node.setAttribute("stretchy", "true"); } node.setAttribute("symmetric", "true"); node.setAttribute("minsize", sizeToMaxHeight[group.size] + "em"); node.setAttribute("maxsize", sizeToMaxHeight[group.size] + "em"); return node; } }); function assertParsed(group) { if (!group.body) { throw new Error("Bug: The leftright ParseNode wasn't fully parsed."); } } defineFunction({ type: "leftright-right", names: ["\\right"], props: { numArgs: 1, argTypes: ["primitive"] }, handler: (context, args) => { return { type: "leftright-right", mode: context.parser.mode, delim: checkDelimiter(args[0], context).text }; } }); defineFunction({ type: "leftright", names: ["\\left"], props: { numArgs: 1, argTypes: ["primitive"] }, handler: (context, args) => { const delim = checkDelimiter(args[0], context); const parser = context.parser; ++parser.leftrightDepth; let body = parser.parseExpression(false, null, true); let nextToken = parser.fetch(); while (nextToken.text === "\\middle") { parser.consume(); const middle = parser.fetch().text; if (!symbols.math[middle]) { throw new ParseError(`Invalid delimiter '${middle}' after '\\middle'`); } checkDelimiter({ type: "atom", mode: "math", text: middle }, { funcName: "\\middle" }); body.push({ type: "middle", mode: "math", delim: middle }); parser.consume(); body = body.concat(parser.parseExpression(false, null, true)); nextToken = parser.fetch(); } --parser.leftrightDepth; parser.expect("\\right", false); const right = assertNodeType(parser.parseFunction(), "leftright-right"); return { type: "leftright", mode: parser.mode, body, left: delim.text, right: right.delim }; }, mathmlBuilder: (group, style) => { assertParsed(group); const inner2 = buildExpression(group.body, style); if (group.left === ".") { group.left = ""; } const leftNode = new mathMLTree.MathNode("mo", [makeText(group.left, group.mode)]); leftNode.setAttribute("fence", "true"); leftNode.setAttribute("form", "prefix"); if (group.left === "/" || group.left === "\\" || group.left.indexOf("arrow") > -1) { leftNode.setAttribute("stretchy", "true"); } inner2.unshift(leftNode); if (group.right === ".") { group.right = ""; } const rightNode = new mathMLTree.MathNode("mo", [makeText(group.right, group.mode)]); rightNode.setAttribute("fence", "true"); rightNode.setAttribute("form", "postfix"); if (group.right === "\u2216" || group.right.indexOf("arrow") > -1) { rightNode.setAttribute("stretchy", "true"); } if (group.body.length > 0) { const lastElement = group.body[group.body.length - 1]; if (lastElement.type === "color" && !lastElement.isTextColor) { rightNode.setAttribute("mathcolor", lastElement.color); } } inner2.push(rightNode); return makeRow(inner2); } }); defineFunction({ type: "middle", names: ["\\middle"], props: { numArgs: 1, argTypes: ["primitive"] }, handler: (context, args) => { const delim = checkDelimiter(args[0], context); if (!context.parser.leftrightDepth) { throw new ParseError("\\middle without preceding \\left", delim); } return { type: "middle", mode: context.parser.mode, delim: delim.text }; }, mathmlBuilder: (group, style) => { const textNode = makeText(group.delim, group.mode); const middleNode = new mathMLTree.MathNode("mo", [textNode]); middleNode.setAttribute("fence", "true"); if (group.delim.indexOf("arrow") > -1) { middleNode.setAttribute("stretchy", "true"); } middleNode.setAttribute("form", "prefix"); middleNode.setAttribute("lspace", "0.05em"); middleNode.setAttribute("rspace", "0.05em"); return middleNode; } }); var padding$1 = (_) => { const node = new mathMLTree.MathNode("mspace"); node.setAttribute("width", "3pt"); return node; }; var mathmlBuilder$8 = (group, style) => { let node; if (group.label.indexOf("colorbox") > -1 || group.label === "\\boxed") { node = new mathMLTree.MathNode("mrow", [ padding$1(), buildGroup$1(group.body, style), padding$1() ]); } else { node = new mathMLTree.MathNode("menclose", [buildGroup$1(group.body, style)]); } switch (group.label) { case "\\overline": node.setAttribute("notation", "top"); node.classes.push("tml-overline"); break; case "\\underline": node.setAttribute("notation", "bottom"); node.classes.push("tml-underline"); break; case "\\cancel": node.setAttribute("notation", "updiagonalstrike"); node.children.push(new mathMLTree.MathNode("mrow", [], ["tml-cancel", "upstrike"])); break; case "\\bcancel": node.setAttribute("notation", "downdiagonalstrike"); node.children.push(new mathMLTree.MathNode("mrow", [], ["tml-cancel", "downstrike"])); break; case "\\sout": node.setAttribute("notation", "horizontalstrike"); node.children.push(new mathMLTree.MathNode("mrow", [], ["tml-cancel", "sout"])); break; case "\\xcancel": node.setAttribute("notation", "updiagonalstrike downdiagonalstrike"); node.classes.push("tml-xcancel"); break; case "\\longdiv": node.setAttribute("notation", "longdiv"); node.classes.push("longdiv-top"); node.children.push(new mathMLTree.MathNode("mrow", [], ["longdiv-arc"])); break; case "\\phase": node.setAttribute("notation", "phasorangle"); node.classes.push("phasor-bottom"); node.children.push(new mathMLTree.MathNode("mrow", [], ["phasor-angle"])); break; case "\\textcircled": node.setAttribute("notation", "circle"); node.classes.push("circle-pad"); node.children.push(new mathMLTree.MathNode("mrow", [], ["textcircle"])); break; case "\\angl": node.setAttribute("notation", "actuarial"); node.classes.push("actuarial"); break; case "\\boxed": node.setAttribute("notation", "box"); node.classes.push("tml-box"); node.setAttribute("scriptlevel", "0"); node.setAttribute("displaystyle", "true"); break; case "\\fbox": node.setAttribute("notation", "box"); node.classes.push("tml-fbox"); break; case "\\fcolorbox": case "\\colorbox": { const style2 = { padding: "3pt 0 3pt 0" }; if (group.label === "\\fcolorbox") { style2.border = "0.0667em solid " + String(group.borderColor); } node.style = style2; break; } } if (group.backgroundColor) { node.setAttribute("mathbackground", group.backgroundColor); } return node; }; defineFunction({ type: "enclose", names: ["\\colorbox"], props: { numArgs: 2, numOptionalArgs: 1, allowedInText: true, argTypes: ["raw", "raw", "text"] }, handler({ parser, funcName }, args, optArgs) { const model = optArgs[0] && assertNodeType(optArgs[0], "raw").string; let color = ""; if (model) { const spec = assertNodeType(args[0], "raw").string; color = colorFromSpec(model, spec); } else { color = validateColor(assertNodeType(args[0], "raw").string, parser.gullet.macros); } const body = args[1]; return { type: "enclose", mode: parser.mode, label: funcName, backgroundColor: color, body }; }, mathmlBuilder: mathmlBuilder$8 }); defineFunction({ type: "enclose", names: ["\\fcolorbox"], props: { numArgs: 3, numOptionalArgs: 1, allowedInText: true, argTypes: ["raw", "raw", "raw", "text"] }, handler({ parser, funcName }, args, optArgs) { const model = optArgs[0] && assertNodeType(optArgs[0], "raw").string; let borderColor = ""; let backgroundColor; if (model) { const borderSpec = assertNodeType(args[0], "raw").string; const backgroundSpec = assertNodeType(args[0], "raw").string; borderColor = colorFromSpec(model, borderSpec); backgroundColor = colorFromSpec(model, backgroundSpec); } else { borderColor = validateColor(assertNodeType(args[0], "raw").string, parser.gullet.macros); backgroundColor = validateColor(assertNodeType(args[1], "raw").string, parser.gullet.macros); } const body = args[2]; return { type: "enclose", mode: parser.mode, label: funcName, backgroundColor, borderColor, body }; }, mathmlBuilder: mathmlBuilder$8 }); defineFunction({ type: "enclose", names: ["\\fbox"], props: { numArgs: 1, argTypes: ["hbox"], allowedInText: true }, handler({ parser }, args) { return { type: "enclose", mode: parser.mode, label: "\\fbox", body: args[0] }; } }); defineFunction({ type: "enclose", names: [ "\\angl", "\\cancel", "\\bcancel", "\\xcancel", "\\sout", "\\overline", "\\boxed", "\\longdiv", "\\phase" ], props: { numArgs: 1 }, handler({ parser, funcName }, args) { const body = args[0]; return { type: "enclose", mode: parser.mode, label: funcName, body }; }, mathmlBuilder: mathmlBuilder$8 }); defineFunction({ type: "enclose", names: ["\\underline"], props: { numArgs: 1, allowedInText: true }, handler({ parser, funcName }, args) { const body = args[0]; return { type: "enclose", mode: parser.mode, label: funcName, body }; }, mathmlBuilder: mathmlBuilder$8 }); defineFunction({ type: "enclose", names: ["\\textcircled"], props: { numArgs: 1, argTypes: ["text"], allowedInArgument: true, allowedInText: true }, handler({ parser, funcName }, args) { const body = args[0]; return { type: "enclose", mode: parser.mode, label: funcName, body }; }, mathmlBuilder: mathmlBuilder$8 }); var _environments = {}; function defineEnvironment({ type, names, props, handler, mathmlBuilder: mathmlBuilder2 }) { const data = { type, numArgs: props.numArgs || 0, allowedInText: false, numOptionalArgs: 0, handler }; for (let i = 0; i < names.length; ++i) { _environments[names[i]] = data; } if (mathmlBuilder2) { _mathmlGroupBuilders[type] = mathmlBuilder2; } } var SourceLocation = class _SourceLocation { constructor(lexer, start, end) { this.lexer = lexer; this.start = start; this.end = end; } /** * Merges two `SourceLocation`s from location providers, given they are * provided in order of appearance. * - Returns the first one's location if only the first is provided. * - Returns a merged range of the first and the last if both are provided * and their lexers match. * - Otherwise, returns null. */ static range(first, second) { if (!second) { return first && first.loc; } else if (!first || !first.loc || !second.loc || first.loc.lexer !== second.loc.lexer) { return null; } else { return new _SourceLocation(first.loc.lexer, first.loc.start, second.loc.end); } } }; var Token = class _Token { constructor(text2, loc) { this.text = text2; this.loc = loc; } /** * Given a pair of tokens (this and endToken), compute a `Token` encompassing * the whole input range enclosed by these two. */ range(endToken, text2) { return new _Token(text2, SourceLocation.range(this, endToken)); } }; var StyleLevel = { DISPLAY: 0, TEXT: 1, SCRIPT: 2, SCRIPTSCRIPT: 3 }; var _macros = {}; function defineMacro(name, body) { _macros[name] = body; } var macros = _macros; defineMacro("\\noexpand", function(context) { const t = context.popToken(); if (context.isExpandable(t.text)) { t.noexpand = true; t.treatAsRelax = true; } return { tokens: [t], numArgs: 0 }; }); defineMacro("\\expandafter", function(context) { const t = context.popToken(); context.expandOnce(true); return { tokens: [t], numArgs: 0 }; }); defineMacro("\\@firstoftwo", function(context) { const args = context.consumeArgs(2); return { tokens: args[0], numArgs: 0 }; }); defineMacro("\\@secondoftwo", function(context) { const args = context.consumeArgs(2); return { tokens: args[1], numArgs: 0 }; }); defineMacro("\\@ifnextchar", function(context) { const args = context.consumeArgs(3); context.consumeSpaces(); const nextToken = context.future(); if (args[0].length === 1 && args[0][0].text === nextToken.text) { return { tokens: args[1], numArgs: 0 }; } else { return { tokens: args[2], numArgs: 0 }; } }); defineMacro("\\@ifstar", "\\@ifnextchar *{\\@firstoftwo{#1}}"); defineMacro("\\TextOrMath", function(context) { const args = context.consumeArgs(2); if (context.mode === "text") { return { tokens: args[0], numArgs: 0 }; } else { return { tokens: args[1], numArgs: 0 }; } }); var stringFromArg = (arg) => { let str = ""; for (let i = arg.length - 1; i > -1; i--) { str += arg[i].text; } return str; }; var digitToNumber = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, a: 10, A: 10, b: 11, B: 11, c: 12, C: 12, d: 13, D: 13, e: 14, E: 14, f: 15, F: 15 }; var nextCharNumber = (context) => { const numStr = context.future().text; if (numStr === "EOF") { return [null, ""]; } return [digitToNumber[numStr.charAt(0)], numStr]; }; var appendCharNumbers = (number, numStr, base) => { for (let i = 1; i < numStr.length; i++) { const digit = digitToNumber[numStr.charAt(i)]; number *= base; number += digit; } return number; }; defineMacro("\\char", function(context) { let token = context.popToken(); let base; let number = ""; if (token.text === "'") { base = 8; token = context.popToken(); } else if (token.text === '"') { base = 16; token = context.popToken(); } else if (token.text === "`") { token = context.popToken(); if (token.text[0] === "\\") { number = token.text.charCodeAt(1); } else if (token.text === "EOF") { throw new ParseError("\\char` missing argument"); } else { number = token.text.charCodeAt(0); } } else { base = 10; } if (base) { let numStr = token.text; number = digitToNumber[numStr.charAt(0)]; if (number == null || number >= base) { throw new ParseError(`Invalid base-${base} digit ${token.text}`); } number = appendCharNumbers(number, numStr, base); let digit; [digit, numStr] = nextCharNumber(context); while (digit != null && digit < base) { number *= base; number += digit; number = appendCharNumbers(number, numStr, base); context.popToken(); [digit, numStr] = nextCharNumber(context); } } return `\\@char{${number}}`; }); function recreateArgStr(context) { const tokens = context.consumeArgs(1)[0]; let str = ""; let expectedLoc = tokens[tokens.length - 1].loc.start; for (let i = tokens.length - 1; i >= 0; i--) { const actualLoc = tokens[i].loc.start; if (actualLoc > expectedLoc) { str += " "; expectedLoc = actualLoc; } str += tokens[i].text; expectedLoc += tokens[i].text.length; } return str; } defineMacro("\\surd", "\\sqrt{\\vphantom{|}}"); defineMacro("\u2295", "\\oplus"); defineMacro("\\long", ""); defineMacro("\\bgroup", "{"); defineMacro("\\egroup", "}"); defineMacro("~", "\\nobreakspace"); defineMacro("\\lq", "`"); defineMacro("\\rq", "'"); defineMacro("\\aa", "\\r a"); defineMacro("\\Bbbk", "\\Bbb{k}"); defineMacro("\\mathstrut", "\\vphantom{(}"); defineMacro("\\underbar", "\\underline{\\text{#1}}"); defineMacro("\\vdots", "{\\varvdots\\rule{0pt}{15pt}}"); defineMacro("\u22EE", "\\vdots"); defineMacro("\\arraystretch", "1"); defineMacro("\\arraycolsep", "6pt"); defineMacro("\\substack", "\\begin{subarray}{c}#1\\end{subarray}"); defineMacro("\\iff", "\\DOTSB\\;\\Longleftrightarrow\\;"); defineMacro("\\implies", "\\DOTSB\\;\\Longrightarrow\\;"); defineMacro("\\impliedby", "\\DOTSB\\;\\Longleftarrow\\;"); var dotsByToken = { ",": "\\dotsc", "\\not": "\\dotsb", // \keybin@ checks for the following: "+": "\\dotsb", "=": "\\dotsb", "<": "\\dotsb", ">": "\\dotsb", "-": "\\dotsb", "*": "\\dotsb", ":": "\\dotsb", // Symbols whose definition starts with \DOTSB: "\\DOTSB": "\\dotsb", "\\coprod": "\\dotsb", "\\bigvee": "\\dotsb", "\\bigwedge": "\\dotsb", "\\biguplus": "\\dotsb", "\\bigcap": "\\dotsb", "\\bigcup": "\\dotsb", "\\prod": "\\dotsb", "\\sum": "\\dotsb", "\\bigotimes": "\\dotsb", "\\bigoplus": "\\dotsb", "\\bigodot": "\\dotsb", "\\bigsqcap": "\\dotsb", "\\bigsqcup": "\\dotsb", "\\bigtimes": "\\dotsb", "\\And": "\\dotsb", "\\longrightarrow": "\\dotsb", "\\Longrightarrow": "\\dotsb", "\\longleftarrow": "\\dotsb", "\\Longleftarrow": "\\dotsb", "\\longleftrightarrow": "\\dotsb", "\\Longleftrightarrow": "\\dotsb", "\\mapsto": "\\dotsb", "\\longmapsto": "\\dotsb", "\\hookrightarrow": "\\dotsb", "\\doteq": "\\dotsb", // Symbols whose definition starts with \mathbin: "\\mathbin": "\\dotsb", // Symbols whose definition starts with \mathrel: "\\mathrel": "\\dotsb", "\\relbar": "\\dotsb", "\\Relbar": "\\dotsb", "\\xrightarrow": "\\dotsb", "\\xleftarrow": "\\dotsb", // Symbols whose definition starts with \DOTSI: "\\DOTSI": "\\dotsi", "\\int": "\\dotsi", "\\oint": "\\dotsi", "\\iint": "\\dotsi", "\\iiint": "\\dotsi", "\\iiiint": "\\dotsi", "\\idotsint": "\\dotsi", // Symbols whose definition starts with \DOTSX: "\\DOTSX": "\\dotsx" }; defineMacro("\\dots", function(context) { let thedots = "\\dotso"; const next = context.expandAfterFuture().text; if (next in dotsByToken) { thedots = dotsByToken[next]; } else if (next.slice(0, 4) === "\\not") { thedots = "\\dotsb"; } else if (next in symbols.math) { if (["bin", "rel"].includes(symbols.math[next].group)) { thedots = "\\dotsb"; } } return thedots; }); var spaceAfterDots = { // \rightdelim@ checks for the following: ")": true, "]": true, "\\rbrack": true, "\\}": true, "\\rbrace": true, "\\rangle": true, "\\rceil": true, "\\rfloor": true, "\\rgroup": true, "\\rmoustache": true, "\\right": true, "\\bigr": true, "\\biggr": true, "\\Bigr": true, "\\Biggr": true, // \extra@ also tests for the following: $: true, // \extrap@ checks for the following: ";": true, ".": true, ",": true }; defineMacro("\\dotso", function(context) { const next = context.future().text; if (next in spaceAfterDots) { return "\\ldots\\,"; } else { return "\\ldots"; } }); defineMacro("\\dotsc", function(context) { const next = context.future().text; if (next in spaceAfterDots && next !== ",") { return "\\ldots\\,"; } else { return "\\ldots"; } }); defineMacro("\\cdots", function(context) { const next = context.future().text; if (next in spaceAfterDots) { return "\\@cdots\\,"; } else { return "\\@cdots"; } }); defineMacro("\\dotsb", "\\cdots"); defineMacro("\\dotsm", "\\cdots"); defineMacro("\\dotsi", "\\!\\cdots"); defineMacro("\\idotsint", "\\dotsi"); defineMacro("\\dotsx", "\\ldots\\,"); defineMacro("\\DOTSI", "\\relax"); defineMacro("\\DOTSB", "\\relax"); defineMacro("\\DOTSX", "\\relax"); defineMacro("\\tmspace", "\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"); defineMacro("\\,", "{\\tmspace+{3mu}{.1667em}}"); defineMacro("\\thinspace", "\\,"); defineMacro("\\>", "\\mskip{4mu}"); defineMacro("\\:", "{\\tmspace+{4mu}{.2222em}}"); defineMacro("\\medspace", "\\:"); defineMacro("\\;", "{\\tmspace+{5mu}{.2777em}}"); defineMacro("\\thickspace", "\\;"); defineMacro("\\!", "{\\tmspace-{3mu}{.1667em}}"); defineMacro("\\negthinspace", "\\!"); defineMacro("\\negmedspace", "{\\tmspace-{4mu}{.2222em}}"); defineMacro("\\negthickspace", "{\\tmspace-{5mu}{.277em}}"); defineMacro("\\enspace", "\\kern.5em "); defineMacro("\\enskip", "\\hskip.5em\\relax"); defineMacro("\\quad", "\\hskip1em\\relax"); defineMacro("\\qquad", "\\hskip2em\\relax"); defineMacro("\\AA", "\\TextOrMath{\\Angstrom}{\\mathring{A}}\\relax"); defineMacro("\\tag", "\\@ifstar\\tag@literal\\tag@paren"); defineMacro("\\tag@paren", "\\tag@literal{({#1})}"); defineMacro("\\tag@literal", (context) => { if (context.macros.get("\\df@tag")) { throw new ParseError("Multiple \\tag"); } return "\\gdef\\df@tag{\\text{#1}}"; }); defineMacro("\\notag", "\\nonumber"); defineMacro("\\nonumber", "\\gdef\\@eqnsw{0}"); defineMacro("\\bmod", "\\mathbin{\\text{mod}}"); defineMacro( "\\pod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)" ); defineMacro("\\pmod", "\\pod{{\\rm mod}\\mkern6mu#1}"); defineMacro( "\\mod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1" ); defineMacro("\\newline", "\\\\\\relax"); defineMacro("\\TeX", "\\textrm{T}\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125em\\textrm{X}"); defineMacro( "\\LaTeX", "\\textrm{L}\\kern-.35em\\raisebox{0.2em}{\\scriptstyle A}\\kern-.15em\\TeX" ); defineMacro( "\\Temml", // eslint-disable-next-line max-len "\\textrm{T}\\kern-0.2em\\lower{0.2em}{\\textrm{E}}\\kern-0.08em{\\textrm{M}\\kern-0.08em\\raise{0.2em}\\textrm{M}\\kern-0.08em\\textrm{L}}" ); defineMacro("\\hspace", "\\@ifstar\\@hspacer\\@hspace"); defineMacro("\\@hspace", "\\hskip #1\\relax"); defineMacro("\\@hspacer", "\\rule{0pt}{0pt}\\hskip #1\\relax"); defineMacro("\\colon", `\\mathpunct{\\char"3a}`); defineMacro("\\prescript", "\\pres@cript{_{#1}^{#2}}{}{#3}"); defineMacro("\\ordinarycolon", `\\char"3a`); defineMacro("\\vcentcolon", "\\mathrel{\\raisebox{0.035em}{\\ordinarycolon}}"); defineMacro("\\coloneq", '\\mathrel{\\raisebox{0.035em}{\\ordinarycolon}\\char"2212}'); defineMacro("\\Coloneq", '\\mathrel{\\char"2237\\char"2212}'); defineMacro("\\Eqqcolon", '\\mathrel{\\char"3d\\char"2237}'); defineMacro("\\Eqcolon", '\\mathrel{\\char"2212\\char"2237}'); defineMacro("\\colonapprox", '\\mathrel{\\raisebox{0.035em}{\\ordinarycolon}\\char"2248}'); defineMacro("\\Colonapprox", '\\mathrel{\\char"2237\\char"2248}'); defineMacro("\\colonsim", '\\mathrel{\\raisebox{0.035em}{\\ordinarycolon}\\char"223c}'); defineMacro("\\Colonsim", '\\mathrel{\\raisebox{0.035em}{\\ordinarycolon}\\char"223c}'); defineMacro("\\ratio", "\\vcentcolon"); defineMacro("\\coloncolon", "\\dblcolon"); defineMacro("\\colonequals", "\\coloneqq"); defineMacro("\\coloncolonequals", "\\Coloneqq"); defineMacro("\\equalscolon", "\\eqqcolon"); defineMacro("\\equalscoloncolon", "\\Eqqcolon"); defineMacro("\\colonminus", "\\coloneq"); defineMacro("\\coloncolonminus", "\\Coloneq"); defineMacro("\\minuscolon", "\\eqcolon"); defineMacro("\\minuscoloncolon", "\\Eqcolon"); defineMacro("\\coloncolonapprox", "\\Colonapprox"); defineMacro("\\coloncolonsim", "\\Colonsim"); defineMacro("\\notni", "\\mathrel{\\char`\u220C}"); defineMacro("\\limsup", "\\DOTSB\\operatorname*{lim\\,sup}"); defineMacro("\\liminf", "\\DOTSB\\operatorname*{lim\\,inf}"); defineMacro("\\injlim", "\\DOTSB\\operatorname*{inj\\,lim}"); defineMacro("\\projlim", "\\DOTSB\\operatorname*{proj\\,lim}"); defineMacro("\\varlimsup", "\\DOTSB\\operatorname*{\\overline{\\text{lim}}}"); defineMacro("\\varliminf", "\\DOTSB\\operatorname*{\\underline{\\text{lim}}}"); defineMacro("\\varinjlim", "\\DOTSB\\operatorname*{\\underrightarrow{\\text{lim}}}"); defineMacro("\\varprojlim", "\\DOTSB\\operatorname*{\\underleftarrow{\\text{lim}}}"); defineMacro("\\centerdot", "{\\medspace\\rule{0.167em}{0.189em}\\medspace}"); defineMacro("\\argmin", "\\DOTSB\\operatorname*{arg\\,min}"); defineMacro("\\argmax", "\\DOTSB\\operatorname*{arg\\,max}"); defineMacro("\\plim", "\\DOTSB\\operatorname*{plim}"); defineMacro("\\leftmodels", "\\mathop{\\reflectbox{$\\models$}}"); defineMacro("\\bra", "\\mathinner{\\langle{#1}|}"); defineMacro("\\ket", "\\mathinner{|{#1}\\rangle}"); defineMacro("\\braket", "\\mathinner{\\langle{#1}\\rangle}"); defineMacro("\\Bra", "\\left\\langle#1\\right|"); defineMacro("\\Ket", "\\left|#1\\right\\rangle"); var replaceVert = (argStr, match) => { const ch = match[0] === "|" ? "\\vert" : "\\Vert"; const replaceStr = `}\\,\\middle${ch}\\,{`; return argStr.slice(0, match.index) + replaceStr + argStr.slice(match.index + match[0].length); }; defineMacro("\\Braket", function(context) { let argStr = recreateArgStr(context); const regEx = /\|\||\||\\\|/g; let match; while ((match = regEx.exec(argStr)) !== null) { argStr = replaceVert(argStr, match); } return "\\left\\langle{" + argStr + "}\\right\\rangle"; }); defineMacro("\\Set", function(context) { let argStr = recreateArgStr(context); const match = /\|\||\||\\\|/.exec(argStr); if (match) { argStr = replaceVert(argStr, match); } return "\\left\\{\\:{" + argStr + "}\\:\\right\\}"; }); defineMacro("\\set", function(context) { const argStr = recreateArgStr(context); return "\\{{" + argStr.replace(/\|/, "}\\mid{") + "}\\}"; }); defineMacro("\\angln", "{\\angl n}"); defineMacro("\\odv", "\\@ifstar\\odv@next\\odv@numerator"); defineMacro("\\odv@numerator", "\\frac{\\mathrm{d}#1}{\\mathrm{d}#2}"); defineMacro("\\odv@next", "\\frac{\\mathrm{d}}{\\mathrm{d}#2}#1"); defineMacro("\\pdv", "\\@ifstar\\pdv@next\\pdv@numerator"); var pdvHelper = (args) => { const numerator = args[0][0].text; const denoms = stringFromArg(args[1]).split(","); const power = String(denoms.length); const numOp = power === "1" ? "\\partial" : `\\partial^${power}`; let denominator = ""; denoms.map((e) => { denominator += "\\partial " + e.trim() + "\\,"; }); return [numerator, numOp, denominator.replace(/\\,$/, "")]; }; defineMacro("\\pdv@numerator", function(context) { const [numerator, numOp, denominator] = pdvHelper(context.consumeArgs(2)); return `\\frac{${numOp} ${numerator}}{${denominator}}`; }); defineMacro("\\pdv@next", function(context) { const [numerator, numOp, denominator] = pdvHelper(context.consumeArgs(2)); return `\\frac{${numOp}}{${denominator}} ${numerator}`; }); defineMacro("\\upalpha", "\\up@greek{\\alpha}"); defineMacro("\\upbeta", "\\up@greek{\\beta}"); defineMacro("\\upgamma", "\\up@greek{\\gamma}"); defineMacro("\\updelta", "\\up@greek{\\delta}"); defineMacro("\\upepsilon", "\\up@greek{\\epsilon}"); defineMacro("\\upzeta", "\\up@greek{\\zeta}"); defineMacro("\\upeta", "\\up@greek{\\eta}"); defineMacro("\\uptheta", "\\up@greek{\\theta}"); defineMacro("\\upiota", "\\up@greek{\\iota}"); defineMacro("\\upkappa", "\\up@greek{\\kappa}"); defineMacro("\\uplambda", "\\up@greek{\\lambda}"); defineMacro("\\upmu", "\\up@greek{\\mu}"); defineMacro("\\upnu", "\\up@greek{\\nu}"); defineMacro("\\upxi", "\\up@greek{\\xi}"); defineMacro("\\upomicron", "\\up@greek{\\omicron}"); defineMacro("\\uppi", "\\up@greek{\\pi}"); defineMacro("\\upalpha", "\\up@greek{\\alpha}"); defineMacro("\\uprho", "\\up@greek{\\rho}"); defineMacro("\\upsigma", "\\up@greek{\\sigma}"); defineMacro("\\uptau", "\\up@greek{\\tau}"); defineMacro("\\upupsilon", "\\up@greek{\\upsilon}"); defineMacro("\\upphi", "\\up@greek{\\phi}"); defineMacro("\\upchi", "\\up@greek{\\chi}"); defineMacro("\\uppsi", "\\up@greek{\\psi}"); defineMacro("\\upomega", "\\up@greek{\\omega}"); defineMacro("\\invamp", '\\mathbin{\\char"214b}'); defineMacro("\\parr", '\\mathbin{\\char"214b}'); defineMacro("\\with", '\\mathbin{\\char"26}'); defineMacro("\\multimapinv", '\\mathrel{\\char"27dc}'); defineMacro("\\multimapboth", '\\mathrel{\\char"29df}'); defineMacro("\\scoh", '{\\mkern5mu\\char"2322\\mkern5mu}'); defineMacro("\\sincoh", '{\\mkern5mu\\char"2323\\mkern5mu}'); defineMacro("\\coh", `{\\mkern5mu\\rule{}{0.7em}\\mathrlap{\\smash{\\raise2mu{\\char"2322}}} {\\smash{\\lower4mu{\\char"2323}}}\\mkern5mu}`); defineMacro("\\incoh", `{\\mkern5mu\\rule{}{0.7em}\\mathrlap{\\smash{\\raise2mu{\\char"2323}}} {\\smash{\\lower4mu{\\char"2322}}}\\mkern5mu}`); defineMacro("\\standardstate", "\\text{\\tiny\\char`\u29B5}"); defineMacro("\\ce", function(context) { return chemParse(context.consumeArgs(1)[0], "ce"); }); defineMacro("\\pu", function(context) { return chemParse(context.consumeArgs(1)[0], "pu"); }); defineMacro("\\uniDash", `{\\rule{0.672em}{0.06em}}`); defineMacro("\\triDash", `{\\rule{0.15em}{0.06em}\\kern2mu\\rule{0.15em}{0.06em}\\kern2mu\\rule{0.15em}{0.06em}}`); defineMacro("\\tripleDash", `\\kern0.075em\\raise0.25em{\\triDash}\\kern0.075em`); defineMacro("\\tripleDashOverLine", `\\kern0.075em\\mathrlap{\\raise0.125em{\\uniDash}}\\raise0.34em{\\triDash}\\kern0.075em`); defineMacro("\\tripleDashOverDoubleLine", `\\kern0.075em\\mathrlap{\\mathrlap{\\raise0.48em{\\triDash}}\\raise0.27em{\\uniDash}}{\\raise0.05em{\\uniDash}}\\kern0.075em`); defineMacro("\\tripleDashBetweenDoubleLine", `\\kern0.075em\\mathrlap{\\mathrlap{\\raise0.48em{\\uniDash}}\\raise0.27em{\\triDash}}{\\raise0.05em{\\uniDash}}\\kern0.075em`); var chemParse = function(tokens, stateMachine) { var str = ""; var expectedLoc = tokens.length && tokens[tokens.length - 1].loc.start; for (var i = tokens.length - 1; i >= 0; i--) { if (tokens[i].loc.start > expectedLoc) { str += " "; expectedLoc = tokens[i].loc.start; } str += tokens[i].text; expectedLoc += tokens[i].text.length; } var tex = texify.go(mhchemParser.go(str, stateMachine)); return tex; }; var mhchemParser = { // // Parses mchem \ce syntax // // Call like // go("H2O"); // go: function(input, stateMachine) { if (!input) { return []; } if (stateMachine === void 0) { stateMachine = "ce"; } var state = "0"; var buffer = {}; buffer["parenthesisLevel"] = 0; input = input.replace(/\n/g, " "); input = input.replace(/[\u2212\u2013\u2014\u2010]/g, "-"); input = input.replace(/[\u2026]/g, "..."); var lastInput; var watchdog = 10; var output = []; while (true) { if (lastInput !== input) { watchdog = 10; lastInput = input; } else { watchdog--; } var machine = mhchemParser.stateMachines[stateMachine]; var t = machine.transitions[state] || machine.transitions["*"]; iterateTransitions: for (var i = 0; i < t.length; i++) { var matches = mhchemParser.patterns.match_(t[i].pattern, input); if (matches) { var task = t[i].task; for (var iA = 0; iA < task.action_.length; iA++) { var o; if (machine.actions[task.action_[iA].type_]) { o = machine.actions[task.action_[iA].type_](buffer, matches.match_, task.action_[iA].option); } else if (mhchemParser.actions[task.action_[iA].type_]) { o = mhchemParser.actions[task.action_[iA].type_](buffer, matches.match_, task.action_[iA].option); } else { throw ["MhchemBugA", "mhchem bug A. Please report. (" + task.action_[iA].type_ + ")"]; } mhchemParser.concatArray(output, o); } state = task.nextState || state; if (input.length > 0) { if (!task.revisit) { input = matches.remainder; } if (!task.toContinue) { break iterateTransitions; } } else { return output; } } } if (watchdog <= 0) { throw ["MhchemBugU", "mhchem bug U. Please report."]; } } }, concatArray: function(a, b) { if (b) { if (Array.isArray(b)) { for (var iB = 0; iB < b.length; iB++) { a.push(b[iB]); } } else { a.push(b); } } }, patterns: { // // Matching patterns // either regexps or function that return null or {match_:"a", remainder:"bc"} // patterns: { // property names must not look like integers ("2") for correct property traversal order, later on "empty": /^$/, "else": /^./, "else2": /^./, "space": /^\s/, "space A": /^\s(?=[A-Z\\$])/, "space$": /^\s$/, "a-z": /^[a-z]/, "x": /^x/, "x$": /^x$/, "i$": /^i$/, "letters": /^(?:[a-zA-Z\u03B1-\u03C9\u0391-\u03A9?@]|(?:\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\s+|\{\}|(?![a-zA-Z]))))+/, "\\greek": /^\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\s+|\{\}|(?![a-zA-Z]))/, "one lowercase latin letter $": /^(?:([a-z])(?:$|[^a-zA-Z]))$/, "$one lowercase latin letter$ $": /^\$(?:([a-z])(?:$|[^a-zA-Z]))\$$/, "one lowercase greek letter $": /^(?:\$?[\u03B1-\u03C9]\$?|\$?\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)\s*\$?)(?:\s+|\{\}|(?![a-zA-Z]))$/, "digits": /^[0-9]+/, "-9.,9": /^[+\-]?(?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))/, "-9.,9 no missing 0": /^[+\-]?[0-9]+(?:[.,][0-9]+)?/, "(-)(9.,9)(e)(99)": function(input) { var m = input.match(/^(\+\-|\+\/\-|\+|\-|\\pm\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))?(\((?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))\))?(?:([eE]|\s*(\*|x|\\times|\u00D7)\s*10\^)([+\-]?[0-9]+|\{[+\-]?[0-9]+\}))?/); if (m && m[0]) { return { match_: m.splice(1), remainder: input.substr(m[0].length) }; } return null; }, "(-)(9)^(-9)": function(input) { var m = input.match(/^(\+\-|\+\/\-|\+|\-|\\pm\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+)?)\^([+\-]?[0-9]+|\{[+\-]?[0-9]+\})/); if (m && m[0]) { return { match_: m.splice(1), remainder: input.substr(m[0].length) }; } return null; }, "state of aggregation $": function(input) { var a = mhchemParser.patterns.findObserveGroups(input, "", /^\([a-z]{1,3}(?=[\),])/, ")", ""); if (a && a.remainder.match(/^($|[\s,;\)\]\}])/)) { return a; } var m = input.match(/^(?:\((?:\\ca\s?)?\$[amothc]\$\))/); if (m) { return { match_: m[0], remainder: input.substr(m[0].length) }; } return null; }, "_{(state of aggregation)}$": /^_\{(\([a-z]{1,3}\))\}/, "{[(": /^(?:\\\{|\[|\()/, ")]}": /^(?:\)|\]|\\\})/, ", ": /^[,;]\s*/, ",": /^[,;]/, ".": /^[.]/, ". ": /^([.\u22C5\u00B7\u2022])\s*/, "...": /^\.\.\.(?=$|[^.])/, "* ": /^([*])\s*/, "^{(...)}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "^{", "", "", "}"); }, "^($...$)": function(input) { return mhchemParser.patterns.findObserveGroups(input, "^", "$", "$", ""); }, "^a": /^\^([0-9]+|[^\\_])/, "^\\x{}{}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "^", /^\\[a-zA-Z]+\{/, "}", "", "", "{", "}", "", true); }, "^\\x{}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "^", /^\\[a-zA-Z]+\{/, "}", ""); }, "^\\x": /^\^(\\[a-zA-Z]+)\s*/, "^(-1)": /^\^(-?\d+)/, "'": /^'/, "_{(...)}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "_{", "", "", "}"); }, "_($...$)": function(input) { return mhchemParser.patterns.findObserveGroups(input, "_", "$", "$", ""); }, "_9": /^_([+\-]?[0-9]+|[^\\])/, "_\\x{}{}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "_", /^\\[a-zA-Z]+\{/, "}", "", "", "{", "}", "", true); }, "_\\x{}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "_", /^\\[a-zA-Z]+\{/, "}", ""); }, "_\\x": /^_(\\[a-zA-Z]+)\s*/, "^_": /^(?:\^(?=_)|\_(?=\^)|[\^_]$)/, "{}": /^\{\}/, "{...}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "", "{", "}", ""); }, "{(...)}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "{", "", "", "}"); }, "$...$": function(input) { return mhchemParser.patterns.findObserveGroups(input, "", "$", "$", ""); }, "${(...)}$": function(input) { return mhchemParser.patterns.findObserveGroups(input, "${", "", "", "}$"); }, "$(...)$": function(input) { return mhchemParser.patterns.findObserveGroups(input, "$", "", "", "$"); }, "=<>": /^[=<>]/, "#": /^[#\u2261]/, "+": /^\+/, "-$": /^-(?=[\s_},;\]/]|$|\([a-z]+\))/, // -space -, -; -] -/ -$ -state-of-aggregation "-9": /^-(?=[0-9])/, "- orbital overlap": /^-(?=(?:[spd]|sp)(?:$|[\s,;\)\]\}]))/, "-": /^-/, "pm-operator": /^(?:\\pm|\$\\pm\$|\+-|\+\/-)/, "operator": /^(?:\+|(?:[\-=<>]|<<|>>|\\approx|\$\\approx\$)(?=\s|$|-?[0-9]))/, "arrowUpDown": /^(?:v|\(v\)|\^|\(\^\))(?=$|[\s,;\)\]\}])/, "\\bond{(...)}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "\\bond{", "", "", "}"); }, "->": /^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\u2192\u27F6\u21CC])/, "CMT": /^[CMT](?=\[)/, "[(...)]": function(input) { return mhchemParser.patterns.findObserveGroups(input, "[", "", "", "]"); }, "1st-level escape": /^(&|\\\\|\\hline)\s*/, "\\,": /^(?:\\[,\ ;:])/, // \\x - but output no space before "\\x{}{}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "", /^\\[a-zA-Z]+\{/, "}", "", "", "{", "}", "", true); }, "\\x{}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "", /^\\[a-zA-Z]+\{/, "}", ""); }, "\\ca": /^\\ca(?:\s+|(?![a-zA-Z]))/, "\\x": /^(?:\\[a-zA-Z]+\s*|\\[_&{}%])/, "orbital": /^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/, // only those with numbers in front, because the others will be formatted correctly anyway "others": /^[\/~|]/, "\\frac{(...)}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "\\frac{", "", "", "}", "{", "", "", "}"); }, "\\overset{(...)}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "\\overset{", "", "", "}", "{", "", "", "}"); }, "\\underset{(...)}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "\\underset{", "", "", "}", "{", "", "", "}"); }, "\\underbrace{(...)}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "\\underbrace{", "", "", "}_", "{", "", "", "}"); }, "\\color{(...)}0": function(input) { return mhchemParser.patterns.findObserveGroups(input, "\\color{", "", "", "}"); }, "\\color{(...)}{(...)}1": function(input) { return mhchemParser.patterns.findObserveGroups(input, "\\color{", "", "", "}", "{", "", "", "}"); }, "\\color(...){(...)}2": function(input) { return mhchemParser.patterns.findObserveGroups(input, "\\color", "\\", "", /^(?=\{)/, "{", "", "", "}"); }, "\\ce{(...)}": function(input) { return mhchemParser.patterns.findObserveGroups(input, "\\ce{", "", "", "}"); }, "oxidation$": /^(?:[+-][IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/, "d-oxidation$": /^(?:[+-]?\s?[IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/, // 0 could be oxidation or charge "roman numeral": /^[IVX]+/, "1/2$": /^[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+(?:\$[a-z]\$|[a-z])?$/, "amount": function(input) { var match; match = input.match(/^(?:(?:(?:\([+\-]?[0-9]+\/[0-9]+\)|[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+|[+\-]?[0-9]+[.,][0-9]+|[+\-]?\.[0-9]+|[+\-]?[0-9]+)(?:[a-z](?=\s*[A-Z]))?)|[+\-]?[a-z](?=\s*[A-Z])|\+(?!\s))/); if (match) { return { match_: match[0], remainder: input.substr(match[0].length) }; } var a = mhchemParser.patterns.findObserveGroups(input, "", "$", "$", ""); if (a) { match = a.match_.match(/^\$(?:\(?[+\-]?(?:[0-9]*[a-z]?[+\-])?[0-9]*[a-z](?:[+\-][0-9]*[a-z]?)?\)?|\+|-)\$$/); if (match) { return { match_: match[0], remainder: input.substr(match[0].length) }; } } return null; }, "amount2": function(input) { return this["amount"](input); }, "(KV letters),": /^(?:[A-Z][a-z]{0,2}|i)(?=,)/, "formula$": function(input) { if (input.match(/^\([a-z]+\)$/)) { return null; } var match = input.match(/^(?:[a-z]|(?:[0-9\ \+\-\,\.\(\)]+[a-z])+[0-9\ \+\-\,\.\(\)]*|(?:[a-z][0-9\ \+\-\,\.\(\)]+)+[a-z]?)$/); if (match) { return { match_: match[0], remainder: input.substr(match[0].length) }; } return null; }, "uprightEntities": /^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/, "/": /^\s*(\/)\s*/, "//": /^\s*(\/\/)\s*/, "*": /^\s*[*.]\s*/ }, findObserveGroups: function(input, begExcl, begIncl, endIncl, endExcl, beg2Excl, beg2Incl, end2Incl, end2Excl, combine) { var _match = function(input2, pattern) { if (typeof pattern === "string") { if (input2.indexOf(pattern) !== 0) { return null; } return pattern; } else { var match2 = input2.match(pattern); if (!match2) { return null; } return match2[0]; } }; var _findObserveGroups = function(input2, i, endChars) { var braces = 0; while (i < input2.length) { var a = input2.charAt(i); var match2 = _match(input2.substr(i), endChars); if (match2 !== null && braces === 0) { return { endMatchBegin: i, endMatchEnd: i + match2.length }; } else if (a === "{") { braces++; } else if (a === "}") { if (braces === 0) { throw ["ExtraCloseMissingOpen", "Extra close brace or missing open brace"]; } else { braces--; } } i++; } if (braces > 0) { return null; } return null; }; var match = _match(input, begExcl); if (match === null) { return null; } input = input.substr(match.length); match = _match(input, begIncl); if (match === null) { return null; } var e = _findObserveGroups(input, match.length, endIncl || endExcl); if (e === null) { return null; } var match1 = input.substring(0, endIncl ? e.endMatchEnd : e.endMatchBegin); if (!(beg2Excl || beg2Incl)) { return { match_: match1, remainder: input.substr(e.endMatchEnd) }; } else { var group2 = this.findObserveGroups(input.substr(e.endMatchEnd), beg2Excl, beg2Incl, end2Incl, end2Excl); if (group2 === null) { return null; } var matchRet = [match1, group2.match_]; return { match_: combine ? matchRet.join("") : matchRet, remainder: group2.remainder }; } }, // // Matching function // e.g. match("a", input) will look for the regexp called "a" and see if it matches // returns null or {match_:"a", remainder:"bc"} // match_: function(m, input) { var pattern = mhchemParser.patterns.patterns[m]; if (pattern === void 0) { throw ["MhchemBugP", "mhchem bug P. Please report. (" + m + ")"]; } else if (typeof pattern === "function") { return mhchemParser.patterns.patterns[m](input); } else { var match = input.match(pattern); if (match) { var mm; if (match[2]) { mm = [match[1], match[2]]; } else if (match[1]) { mm = match[1]; } else { mm = match[0]; } return { match_: mm, remainder: input.substr(match[0].length) }; } return null; } } }, // // Generic state machine actions // actions: { "a=": function(buffer, m) { buffer.a = (buffer.a || "") + m; }, "b=": function(buffer, m) { buffer.b = (buffer.b || "") + m; }, "p=": function(buffer, m) { buffer.p = (buffer.p || "") + m; }, "o=": function(buffer, m) { buffer.o = (buffer.o || "") + m; }, "q=": function(buffer, m) { buffer.q = (buffer.q || "") + m; }, "d=": function(buffer, m) { buffer.d = (buffer.d || "") + m; }, "rm=": function(buffer, m) { buffer.rm = (buffer.rm || "") + m; }, "text=": function(buffer, m) { buffer.text_ = (buffer.text_ || "") + m; }, "insert": function(buffer, m, a) { return { type_: a }; }, "insert+p1": function(buffer, m, a) { return { type_: a, p1: m }; }, "insert+p1+p2": function(buffer, m, a) { return { type_: a, p1: m[0], p2: m[1] }; }, "copy": function(buffer, m) { return m; }, "rm": function(buffer, m) { return { type_: "rm", p1: m || "" }; }, "text": function(buffer, m) { return mhchemParser.go(m, "text"); }, "{text}": function(buffer, m) { var ret = ["{"]; mhchemParser.concatArray(ret, mhchemParser.go(m, "text")); ret.push("}"); return ret; }, "tex-math": function(buffer, m) { return mhchemParser.go(m, "tex-math"); }, "tex-math tight": function(buffer, m) { return mhchemParser.go(m, "tex-math tight"); }, "bond": function(buffer, m, k) { return { type_: "bond", kind_: k || m }; }, "color0-output": function(buffer, m) { return { type_: "color0", color: m[0] }; }, "ce": function(buffer, m) { return mhchemParser.go(m); }, "1/2": function(buffer, m) { var ret = []; if (m.match(/^[+\-]/)) { ret.push(m.substr(0, 1)); m = m.substr(1); } var n = m.match(/^([0-9]+|\$[a-z]\$|[a-z])\/([0-9]+)(\$[a-z]\$|[a-z])?$/); n[1] = n[1].replace(/\$/g, ""); ret.push({ type_: "frac", p1: n[1], p2: n[2] }); if (n[3]) { n[3] = n[3].replace(/\$/g, ""); ret.push({ type_: "tex-math", p1: n[3] }); } return ret; }, "9,9": function(buffer, m) { return mhchemParser.go(m, "9,9"); } }, // // createTransitions // convert { 'letter': { 'state': { action_: 'output' } } } to { 'state' => [ { pattern: 'letter', task: { action_: [{type_: 'output'}] } } ] } // with expansion of 'a|b' to 'a' and 'b' (at 2 places) // createTransitions: function(o) { var pattern, state; var stateArray; var i; var transitions = {}; for (pattern in o) { for (state in o[pattern]) { stateArray = state.split("|"); o[pattern][state].stateArray = stateArray; for (i = 0; i < stateArray.length; i++) { transitions[stateArray[i]] = []; } } } for (pattern in o) { for (state in o[pattern]) { stateArray = o[pattern][state].stateArray || []; for (i = 0; i < stateArray.length; i++) { var p = o[pattern][state]; if (p.action_) { p.action_ = [].concat(p.action_); for (var k = 0; k < p.action_.length; k++) { if (typeof p.action_[k] === "string") { p.action_[k] = { type_: p.action_[k] }; } } } else { p.action_ = []; } var patternArray = pattern.split("|"); for (var j = 0; j < patternArray.length; j++) { if (stateArray[i] === "*") { for (var t in transitions) { transitions[t].push({ pattern: patternArray[j], task: p }); } } else { transitions[stateArray[i]].push({ pattern: patternArray[j], task: p }); } } } } } return transitions; }, stateMachines: {} }; mhchemParser.stateMachines = { // // \ce state machines // //#region ce "ce": { // main parser transitions: mhchemParser.createTransitions({ "empty": { "*": { action_: "output" } }, "else": { "0|1|2": { action_: "beginsWithBond=false", revisit: true, toContinue: true } }, "oxidation$": { "0": { action_: "oxidation-output" } }, "CMT": { "r": { action_: "rdt=", nextState: "rt" }, "rd": { action_: "rqt=", nextState: "rdt" } }, "arrowUpDown": { "0|1|2|as": { action_: ["sb=false", "output", "operator"], nextState: "1" } }, "uprightEntities": { "0|1|2": { action_: ["o=", "output"], nextState: "1" } }, "orbital": { "0|1|2|3": { action_: "o=", nextState: "o" } }, "->": { "0|1|2|3": { action_: "r=", nextState: "r" }, "a|as": { action_: ["output", "r="], nextState: "r" }, "*": { action_: ["output", "r="], nextState: "r" } }, "+": { "o": { action_: "d= kv", nextState: "d" }, "d|D": { action_: "d=", nextState: "d" }, "q": { action_: "d=", nextState: "qd" }, "qd|qD": { action_: "d=", nextState: "qd" }, "dq": { action_: ["output", "d="], nextState: "d" }, "3": { action_: ["sb=false", "output", "operator"], nextState: "0" } }, "amount": { "0|2": { action_: "a=", nextState: "a" } }, "pm-operator": { "0|1|2|a|as": { action_: ["sb=false", "output", { type_: "operator", option: "\\pm" }], nextState: "0" } }, "operator": { "0|1|2|a|as": { action_: ["sb=false", "output", "operator"], nextState: "0" } }, "-$": { "o|q": { action_: ["charge or bond", "output"], nextState: "qd" }, "d": { action_: "d=", nextState: "d" }, "D": { action_: ["output", { type_: "bond", option: "-" }], nextState: "3" }, "q": { action_: "d=", nextState: "qd" }, "qd": { action_: "d=", nextState: "qd" }, "qD|dq": { action_: ["output", { type_: "bond", option: "-" }], nextState: "3" } }, "-9": { "3|o": { action_: ["output", { type_: "insert", option: "hyphen" }], nextState: "3" } }, "- orbital overlap": { "o": { action_: ["output", { type_: "insert", option: "hyphen" }], nextState: "2" }, "d": { action_: ["output", { type_: "insert", option: "hyphen" }], nextState: "2" } }, "-": { "0|1|2": { action_: [{ type_: "output", option: 1 }, "beginsWithBond=true", { type_: "bond", option: "-" }], nextState: "3" }, "3": { action_: { type_: "bond", option: "-" } }, "a": { action_: ["output", { type_: "insert", option: "hyphen" }], nextState: "2" }, "as": { action_: [{ type_: "output", option: 2 }, { type_: "bond", option: "-" }], nextState: "3" }, "b": { action_: "b=" }, "o": { action_: { type_: "- after o/d", option: false }, nextState: "2" }, "q": { action_: { type_: "- after o/d", option: false }, nextState: "2" }, "d|qd|dq": { action_: { type_: "- after o/d", option: true }, nextState: "2" }, "D|qD|p": { action_: ["output", { type_: "bond", option: "-" }], nextState: "3" } }, "amount2": { "1|3": { action_: "a=", nextState: "a" } }, "letters": { "0|1|2|3|a|as|b|p|bp|o": { action_: "o=", nextState: "o" }, "q|dq": { action_: ["output", "o="], nextState: "o" }, "d|D|qd|qD": { action_: "o after d", nextState: "o" } }, "digits": { "o": { action_: "q=", nextState: "q" }, "d|D": { action_: "q=", nextState: "dq" }, "q": { action_: ["output", "o="], nextState: "o" }, "a": { action_: "o=", nextState: "o" } }, "space A": { "b|p|bp": {} }, "space": { "a": { nextState: "as" }, "0": { action_: "sb=false" }, "1|2": { action_: "sb=true" }, "r|rt|rd|rdt|rdq": { action_: "output", nextState: "0" }, "*": { action_: ["output", "sb=true"], nextState: "1" } }, "1st-level escape": { "1|2": { action_: ["output", { type_: "insert+p1", option: "1st-level escape" }] }, "*": { action_: ["output", { type_: "insert+p1", option: "1st-level escape" }], nextState: "0" } }, "[(...)]": { "r|rt": { action_: "rd=", nextState: "rd" }, "rd|rdt": { action_: "rq=", nextState: "rdq" } }, "...": { "o|d|D|dq|qd|qD": { action_: ["output", { type_: "bond", option: "..." }], nextState: "3" }, "*": { action_: [{ type_: "output", option: 1 }, { type_: "insert", option: "ellipsis" }], nextState: "1" } }, ". |* ": { "*": { action_: ["output", { type_: "insert", option: "addition compound" }], nextState: "1" } }, "state of aggregation $": { "*": { action_: ["output", "state of aggregation"], nextState: "1" } }, "{[(": { "a|as|o": { action_: ["o=", "output", "parenthesisLevel++"], nextState: "2" }, "0|1|2|3": { action_: ["o=", "output", "parenthesisLevel++"], nextState: "2" }, "*": { action_: ["output", "o=", "output", "parenthesisLevel++"], nextState: "2" } }, ")]}": { "0|1|2|3|b|p|bp|o": { action_: ["o=", "parenthesisLevel--"], nextState: "o" }, "a|as|d|D|q|qd|qD|dq": { action_: ["output", "o=", "parenthesisLevel--"], nextState: "o" } }, ", ": { "*": { action_: ["output", "comma"], nextState: "0" } }, "^_": { // ^ and _ without a sensible argument "*": {} }, "^{(...)}|^($...$)": { "0|1|2|as": { action_: "b=", nextState: "b" }, "p": { action_: "b=", nextState: "bp" }, "3|o": { action_: "d= kv", nextState: "D" }, "q": { action_: "d=", nextState: "qD" }, "d|D|qd|qD|dq": { action_: ["output", "d="], nextState: "D" } }, "^a|^\\x{}{}|^\\x{}|^\\x|'": { "0|1|2|as": { action_: "b=", nextState: "b" }, "p": { action_: "b=", nextState: "bp" }, "3|o": { action_: "d= kv", nextState: "d" }, "q": { action_: "d=", nextState: "qd" }, "d|qd|D|qD": { action_: "d=" }, "dq": { action_: ["output", "d="], nextState: "d" } }, "_{(state of aggregation)}$": { "d|D|q|qd|qD|dq": { action_: ["output", "q="], nextState: "q" } }, "_{(...)}|_($...$)|_9|_\\x{}{}|_\\x{}|_\\x": { "0|1|2|as": { action_: "p=", nextState: "p" }, "b": { action_: "p=", nextState: "bp" }, "3|o": { action_: "q=", nextState: "q" }, "d|D": { action_: "q=", nextState: "dq" }, "q|qd|qD|dq": { action_: ["output", "q="], nextState: "q" } }, "=<>": { "0|1|2|3|a|as|o|q|d|D|qd|qD|dq": { action_: [{ type_: "output", option: 2 }, "bond"], nextState: "3" } }, "#": { "0|1|2|3|a|as|o": { action_: [{ type_: "output", option: 2 }, { type_: "bond", option: "#" }], nextState: "3" } }, "{}": { "*": { action_: { type_: "output", option: 1 }, nextState: "1" } }, "{...}": { "0|1|2|3|a|as|b|p|bp": { action_: "o=", nextState: "o" }, "o|d|D|q|qd|qD|dq": { action_: ["output", "o="], nextState: "o" } }, "$...$": { "a": { action_: "a=" }, // 2$n$ "0|1|2|3|as|b|p|bp|o": { action_: "o=", nextState: "o" }, // not 'amount' "as|o": { action_: "o=" }, "q|d|D|qd|qD|dq": { action_: ["output", "o="], nextState: "o" } }, "\\bond{(...)}": { "*": { action_: [{ type_: "output", option: 2 }, "bond"], nextState: "3" } }, "\\frac{(...)}": { "*": { action_: [{ type_: "output", option: 1 }, "frac-output"], nextState: "3" } }, "\\overset{(...)}": { "*": { action_: [{ type_: "output", option: 2 }, "overset-output"], nextState: "3" } }, "\\underset{(...)}": { "*": { action_: [{ type_: "output", option: 2 }, "underset-output"], nextState: "3" } }, "\\underbrace{(...)}": { "*": { action_: [{ type_: "output", option: 2 }, "underbrace-output"], nextState: "3" } }, "\\color{(...)}{(...)}1|\\color(...){(...)}2": { "*": { action_: [{ type_: "output", option: 2 }, "color-output"], nextState: "3" } }, "\\color{(...)}0": { "*": { action_: [{ type_: "output", option: 2 }, "color0-output"] } }, "\\ce{(...)}": { "*": { action_: [{ type_: "output", option: 2 }, "ce"], nextState: "3" } }, "\\,": { "*": { action_: [{ type_: "output", option: 1 }, "copy"], nextState: "1" } }, "\\x{}{}|\\x{}|\\x": { "0|1|2|3|a|as|b|p|bp|o|c0": { action_: ["o=", "output"], nextState: "3" }, "*": { action_: ["output", "o=", "output"], nextState: "3" } }, "others": { "*": { action_: [{ type_: "output", option: 1 }, "copy"], nextState: "3" } }, "else2": { "a": { action_: "a to o", nextState: "o", revisit: true }, "as": { action_: ["output", "sb=true"], nextState: "1", revisit: true }, "r|rt|rd|rdt|rdq": { action_: ["output"], nextState: "0", revisit: true }, "*": { action_: ["output", "copy"], nextState: "3" } } }), actions: { "o after d": function(buffer, m) { var ret; if ((buffer.d || "").match(/^[0-9]+$/)) { var tmp = buffer.d; buffer.d = void 0; ret = this["output"](buffer); buffer.b = tmp; } else { ret = this["output"](buffer); } mhchemParser.actions["o="](buffer, m); return ret; }, "d= kv": function(buffer, m) { buffer.d = m; buffer.dType = "kv"; }, "charge or bond": function(buffer, m) { if (buffer["beginsWithBond"]) { var ret = []; mhchemParser.concatArray(ret, this["output"](buffer)); mhchemParser.concatArray(ret, mhchemParser.actions["bond"](buffer, m, "-")); return ret; } else { buffer.d = m; } }, "- after o/d": function(buffer, m, isAfterD) { var c1 = mhchemParser.patterns.match_("orbital", buffer.o || ""); var c2 = mhchemParser.patterns.match_("one lowercase greek letter $", buffer.o || ""); var c3 = mhchemParser.patterns.match_("one lowercase latin letter $", buffer.o || ""); var c4 = mhchemParser.patterns.match_("$one lowercase latin letter$ $", buffer.o || ""); var hyphenFollows = m === "-" && (c1 && c1.remainder === "" || c2 || c3 || c4); if (hyphenFollows && !buffer.a && !buffer.b && !buffer.p && !buffer.d && !buffer.q && !c1 && c3) { buffer.o = "$" + buffer.o + "$"; } var ret = []; if (hyphenFollows) { mhchemParser.concatArray(ret, this["output"](buffer)); ret.push({ type_: "hyphen" }); } else { c1 = mhchemParser.patterns.match_("digits", buffer.d || ""); if (isAfterD && c1 && c1.remainder === "") { mhchemParser.concatArray(ret, mhchemParser.actions["d="](buffer, m)); mhchemParser.concatArray(ret, this["output"](buffer)); } else { mhchemParser.concatArray(ret, this["output"](buffer)); mhchemParser.concatArray(ret, mhchemParser.actions["bond"](buffer, m, "-")); } } return ret; }, "a to o": function(buffer) { buffer.o = buffer.a; buffer.a = void 0; }, "sb=true": function(buffer) { buffer.sb = true; }, "sb=false": function(buffer) { buffer.sb = false; }, "beginsWithBond=true": function(buffer) { buffer["beginsWithBond"] = true; }, "beginsWithBond=false": function(buffer) { buffer["beginsWithBond"] = false; }, "parenthesisLevel++": function(buffer) { buffer["parenthesisLevel"]++; }, "parenthesisLevel--": function(buffer) { buffer["parenthesisLevel"]--; }, "state of aggregation": function(buffer, m) { return { type_: "state of aggregation", p1: mhchemParser.go(m, "o") }; }, "comma": function(buffer, m) { var a = m.replace(/\s*$/, ""); var withSpace = a !== m; if (withSpace && buffer["parenthesisLevel"] === 0) { return { type_: "comma enumeration L", p1: a }; } else { return { type_: "comma enumeration M", p1: a }; } }, "output": function(buffer, m, entityFollows) { var ret; if (!buffer.r) { ret = []; if (!buffer.a && !buffer.b && !buffer.p && !buffer.o && !buffer.q && !buffer.d && !entityFollows) { } else { if (buffer.sb) { ret.push({ type_: "entitySkip" }); } if (!buffer.o && !buffer.q && !buffer.d && !buffer.b && !buffer.p && entityFollows !== 2) { buffer.o = buffer.a; buffer.a = void 0; } else if (!buffer.o && !buffer.q && !buffer.d && (buffer.b || buffer.p)) { buffer.o = buffer.a; buffer.d = buffer.b; buffer.q = buffer.p; buffer.a = buffer.b = buffer.p = void 0; } else { if (buffer.o && buffer.dType === "kv" && mhchemParser.patterns.match_("d-oxidation$", buffer.d || "")) { buffer.dType = "oxidation"; } else if (buffer.o && buffer.dType === "kv" && !buffer.q) { buffer.dType = void 0; } } ret.push({ type_: "chemfive", a: mhchemParser.go(buffer.a, "a"), b: mhchemParser.go(buffer.b, "bd"), p: mhchemParser.go(buffer.p, "pq"), o: mhchemParser.go(buffer.o, "o"), q: mhchemParser.go(buffer.q, "pq"), d: mhchemParser.go(buffer.d, buffer.dType === "oxidation" ? "oxidation" : "bd"), dType: buffer.dType }); } } else { var rd; if (buffer.rdt === "M") { rd = mhchemParser.go(buffer.rd, "tex-math"); } else if (buffer.rdt === "T") { rd = [{ type_: "text", p1: buffer.rd || "" }]; } else { rd = mhchemParser.go(buffer.rd); } var rq; if (buffer.rqt === "M") { rq = mhchemParser.go(buffer.rq, "tex-math"); } else if (buffer.rqt === "T") { rq = [{ type_: "text", p1: buffer.rq || "" }]; } else { rq = mhchemParser.go(buffer.rq); } ret = { type_: "arrow", r: buffer.r, rd, rq }; } for (var p in buffer) { if (p !== "parenthesisLevel" && p !== "beginsWithBond") { delete buffer[p]; } } return ret; }, "oxidation-output": function(buffer, m) { var ret = ["{"]; mhchemParser.concatArray(ret, mhchemParser.go(m, "oxidation")); ret.push("}"); return ret; }, "frac-output": function(buffer, m) { return { type_: "frac-ce", p1: mhchemParser.go(m[0]), p2: mhchemParser.go(m[1]) }; }, "overset-output": function(buffer, m) { return { type_: "overset", p1: mhchemParser.go(m[0]), p2: mhchemParser.go(m[1]) }; }, "underset-output": function(buffer, m) { return { type_: "underset", p1: mhchemParser.go(m[0]), p2: mhchemParser.go(m[1]) }; }, "underbrace-output": function(buffer, m) { return { type_: "underbrace", p1: mhchemParser.go(m[0]), p2: mhchemParser.go(m[1]) }; }, "color-output": function(buffer, m) { return { type_: "color", color1: m[0], color2: mhchemParser.go(m[1]) }; }, "r=": function(buffer, m) { buffer.r = m; }, "rdt=": function(buffer, m) { buffer.rdt = m; }, "rd=": function(buffer, m) { buffer.rd = m; }, "rqt=": function(buffer, m) { buffer.rqt = m; }, "rq=": function(buffer, m) { buffer.rq = m; }, "operator": function(buffer, m, p1) { return { type_: "operator", kind_: p1 || m }; } } }, "a": { transitions: mhchemParser.createTransitions({ "empty": { "*": {} }, "1/2$": { "0": { action_: "1/2" } }, "else": { "0": { nextState: "1", revisit: true } }, "$(...)$": { "*": { action_: "tex-math tight", nextState: "1" } }, ",": { "*": { action_: { type_: "insert", option: "commaDecimal" } } }, "else2": { "*": { action_: "copy" } } }), actions: {} }, "o": { transitions: mhchemParser.createTransitions({ "empty": { "*": {} }, "1/2$": { "0": { action_: "1/2" } }, "else": { "0": { nextState: "1", revisit: true } }, "letters": { "*": { action_: "rm" } }, "\\ca": { "*": { action_: { type_: "insert", option: "circa" } } }, "\\x{}{}|\\x{}|\\x": { "*": { action_: "copy" } }, "${(...)}$|$(...)$": { "*": { action_: "tex-math" } }, "{(...)}": { "*": { action_: "{text}" } }, "else2": { "*": { action_: "copy" } } }), actions: {} }, "text": { transitions: mhchemParser.createTransitions({ "empty": { "*": { action_: "output" } }, "{...}": { "*": { action_: "text=" } }, "${(...)}$|$(...)$": { "*": { action_: "tex-math" } }, "\\greek": { "*": { action_: ["output", "rm"] } }, "\\,|\\x{}{}|\\x{}|\\x": { "*": { action_: ["output", "copy"] } }, "else": { "*": { action_: "text=" } } }), actions: { "output": function(buffer) { if (buffer.text_) { var ret = { type_: "text", p1: buffer.text_ }; for (var p in buffer) { delete buffer[p]; } return ret; } } } }, "pq": { transitions: mhchemParser.createTransitions({ "empty": { "*": {} }, "state of aggregation $": { "*": { action_: "state of aggregation" } }, "i$": { "0": { nextState: "!f", revisit: true } }, "(KV letters),": { "0": { action_: "rm", nextState: "0" } }, "formula$": { "0": { nextState: "f", revisit: true } }, "1/2$": { "0": { action_: "1/2" } }, "else": { "0": { nextState: "!f", revisit: true } }, "${(...)}$|$(...)$": { "*": { action_: "tex-math" } }, "{(...)}": { "*": { action_: "text" } }, "a-z": { "f": { action_: "tex-math" } }, "letters": { "*": { action_: "rm" } }, "-9.,9": { "*": { action_: "9,9" } }, ",": { "*": { action_: { type_: "insert+p1", option: "comma enumeration S" } } }, "\\color{(...)}{(...)}1|\\color(...){(...)}2": { "*": { action_: "color-output" } }, "\\color{(...)}0": { "*": { action_: "color0-output" } }, "\\ce{(...)}": { "*": { action_: "ce" } }, "\\,|\\x{}{}|\\x{}|\\x": { "*": { action_: "copy" } }, "else2": { "*": { action_: "copy" } } }), actions: { "state of aggregation": function(buffer, m) { return { type_: "state of aggregation subscript", p1: mhchemParser.go(m, "o") }; }, "color-output": function(buffer, m) { return { type_: "color", color1: m[0], color2: mhchemParser.go(m[1], "pq") }; } } }, "bd": { transitions: mhchemParser.createTransitions({ "empty": { "*": {} }, "x$": { "0": { nextState: "!f", revisit: true } }, "formula$": { "0": { nextState: "f", revisit: true } }, "else": { "0": { nextState: "!f", revisit: true } }, "-9.,9 no missing 0": { "*": { action_: "9,9" } }, ".": { "*": { action_: { type_: "insert", option: "electron dot" } } }, "a-z": { "f": { action_: "tex-math" } }, "x": { "*": { action_: { type_: "insert", option: "KV x" } } }, "letters": { "*": { action_: "rm" } }, "'": { "*": { action_: { type_: "insert", option: "prime" } } }, "${(...)}$|$(...)$": { "*": { action_: "tex-math" } }, "{(...)}": { "*": { action_: "text" } }, "\\color{(...)}{(...)}1|\\color(...){(...)}2": { "*": { action_: "color-output" } }, "\\color{(...)}0": { "*": { action_: "color0-output" } }, "\\ce{(...)}": { "*": { action_: "ce" } }, "\\,|\\x{}{}|\\x{}|\\x": { "*": { action_: "copy" } }, "else2": { "*": { action_: "copy" } } }), actions: { "color-output": function(buffer, m) { return { type_: "color", color1: m[0], color2: mhchemParser.go(m[1], "bd") }; } } }, "oxidation": { transitions: mhchemParser.createTransitions({ "empty": { "*": {} }, "roman numeral": { "*": { action_: "roman-numeral" } }, "${(...)}$|$(...)$": { "*": { action_: "tex-math" } }, "else": { "*": { action_: "copy" } } }), actions: { "roman-numeral": function(buffer, m) { return { type_: "roman numeral", p1: m || "" }; } } }, "tex-math": { transitions: mhchemParser.createTransitions({ "empty": { "*": { action_: "output" } }, "\\ce{(...)}": { "*": { action_: ["output", "ce"] } }, "{...}|\\,|\\x{}{}|\\x{}|\\x": { "*": { action_: "o=" } }, "else": { "*": { action_: "o=" } } }), actions: { "output": function(buffer) { if (buffer.o) { var ret = { type_: "tex-math", p1: buffer.o }; for (var p in buffer) { delete buffer[p]; } return ret; } } } }, "tex-math tight": { transitions: mhchemParser.createTransitions({ "empty": { "*": { action_: "output" } }, "\\ce{(...)}": { "*": { action_: ["output", "ce"] } }, "{...}|\\,|\\x{}{}|\\x{}|\\x": { "*": { action_: "o=" } }, "-|+": { "*": { action_: "tight operator" } }, "else": { "*": { action_: "o=" } } }), actions: { "tight operator": function(buffer, m) { buffer.o = (buffer.o || "") + "{" + m + "}"; }, "output": function(buffer) { if (buffer.o) { var ret = { type_: "tex-math", p1: buffer.o }; for (var p in buffer) { delete buffer[p]; } return ret; } } } }, "9,9": { transitions: mhchemParser.createTransitions({ "empty": { "*": {} }, ",": { "*": { action_: "comma" } }, "else": { "*": { action_: "copy" } } }), actions: { "comma": function() { return { type_: "commaDecimal" }; } } }, //#endregion // // \pu state machines // //#region pu "pu": { transitions: mhchemParser.createTransitions({ "empty": { "*": { action_: "output" } }, "space$": { "*": { action_: ["output", "space"] } }, "{[(|)]}": { "0|a": { action_: "copy" } }, "(-)(9)^(-9)": { "0": { action_: "number^", nextState: "a" } }, "(-)(9.,9)(e)(99)": { "0": { action_: "enumber", nextState: "a" } }, "space": { "0|a": {} }, "pm-operator": { "0|a": { action_: { type_: "operator", option: "\\pm" }, nextState: "0" } }, "operator": { "0|a": { action_: "copy", nextState: "0" } }, "//": { "d": { action_: "o=", nextState: "/" } }, "/": { "d": { action_: "o=", nextState: "/" } }, "{...}|else": { "0|d": { action_: "d=", nextState: "d" }, "a": { action_: ["space", "d="], nextState: "d" }, "/|q": { action_: "q=", nextState: "q" } } }), actions: { "enumber": function(buffer, m) { var ret = []; if (m[0] === "+-" || m[0] === "+/-") { ret.push("\\pm "); } else if (m[0]) { ret.push(m[0]); } if (m[1]) { mhchemParser.concatArray(ret, mhchemParser.go(m[1], "pu-9,9")); if (m[2]) { if (m[2].match(/[,.]/)) { mhchemParser.concatArray(ret, mhchemParser.go(m[2], "pu-9,9")); } else { ret.push(m[2]); } } m[3] = m[4] || m[3]; if (m[3]) { m[3] = m[3].trim(); if (m[3] === "e" || m[3].substr(0, 1) === "*") { ret.push({ type_: "cdot" }); } else { ret.push({ type_: "times" }); } } } if (m[3]) { ret.push("10^{" + m[5] + "}"); } return ret; }, "number^": function(buffer, m) { var ret = []; if (m[0] === "+-" || m[0] === "+/-") { ret.push("\\pm "); } else if (m[0]) { ret.push(m[0]); } mhchemParser.concatArray(ret, mhchemParser.go(m[1], "pu-9,9")); ret.push("^{" + m[2] + "}"); return ret; }, "operator": function(buffer, m, p1) { return { type_: "operator", kind_: p1 || m }; }, "space": function() { return { type_: "pu-space-1" }; }, "output": function(buffer) { var ret; var md = mhchemParser.patterns.match_("{(...)}", buffer.d || ""); if (md && md.remainder === "") { buffer.d = md.match_; } var mq = mhchemParser.patterns.match_("{(...)}", buffer.q || ""); if (mq && mq.remainder === "") { buffer.q = mq.match_; } if (buffer.d) { buffer.d = buffer.d.replace(/\u00B0C|\^oC|\^{o}C/g, "{}^{\\circ}C"); buffer.d = buffer.d.replace(/\u00B0F|\^oF|\^{o}F/g, "{}^{\\circ}F"); } if (buffer.q) { buffer.q = buffer.q.replace(/\u00B0C|\^oC|\^{o}C/g, "{}^{\\circ}C"); buffer.q = buffer.q.replace(/\u00B0F|\^oF|\^{o}F/g, "{}^{\\circ}F"); var b5 = { d: mhchemParser.go(buffer.d, "pu"), q: mhchemParser.go(buffer.q, "pu") }; if (buffer.o === "//") { ret = { type_: "pu-frac", p1: b5.d, p2: b5.q }; } else { ret = b5.d; if (b5.d.length > 1 || b5.q.length > 1) { ret.push({ type_: " / " }); } else { ret.push({ type_: "/" }); } mhchemParser.concatArray(ret, b5.q); } } else { ret = mhchemParser.go(buffer.d, "pu-2"); } for (var p in buffer) { delete buffer[p]; } return ret; } } }, "pu-2": { transitions: mhchemParser.createTransitions({ "empty": { "*": { action_: "output" } }, "*": { "*": { action_: ["output", "cdot"], nextState: "0" } }, "\\x": { "*": { action_: "rm=" } }, "space": { "*": { action_: ["output", "space"], nextState: "0" } }, "^{(...)}|^(-1)": { "1": { action_: "^(-1)" } }, "-9.,9": { "0": { action_: "rm=", nextState: "0" }, "1": { action_: "^(-1)", nextState: "0" } }, "{...}|else": { "*": { action_: "rm=", nextState: "1" } } }), actions: { "cdot": function() { return { type_: "tight cdot" }; }, "^(-1)": function(buffer, m) { buffer.rm += "^{" + m + "}"; }, "space": function() { return { type_: "pu-space-2" }; }, "output": function(buffer) { var ret = []; if (buffer.rm) { var mrm = mhchemParser.patterns.match_("{(...)}", buffer.rm || ""); if (mrm && mrm.remainder === "") { ret = mhchemParser.go(mrm.match_, "pu"); } else { ret = { type_: "rm", p1: buffer.rm }; } } for (var p in buffer) { delete buffer[p]; } return ret; } } }, "pu-9,9": { transitions: mhchemParser.createTransitions({ "empty": { "0": { action_: "output-0" }, "o": { action_: "output-o" } }, ",": { "0": { action_: ["output-0", "comma"], nextState: "o" } }, ".": { "0": { action_: ["output-0", "copy"], nextState: "o" } }, "else": { "*": { action_: "text=" } } }), actions: { "comma": function() { return { type_: "commaDecimal" }; }, "output-0": function(buffer) { var ret = []; buffer.text_ = buffer.text_ || ""; if (buffer.text_.length > 4) { var a = buffer.text_.length % 3; if (a === 0) { a = 3; } for (var i = buffer.text_.length - 3; i > 0; i -= 3) { ret.push(buffer.text_.substr(i, 3)); ret.push({ type_: "1000 separator" }); } ret.push(buffer.text_.substr(0, a)); ret.reverse(); } else { ret.push(buffer.text_); } for (var p in buffer) { delete buffer[p]; } return ret; }, "output-o": function(buffer) { var ret = []; buffer.text_ = buffer.text_ || ""; if (buffer.text_.length > 4) { var a = buffer.text_.length - 3; for (var i = 0; i < a; i += 3) { ret.push(buffer.text_.substr(i, 3)); ret.push({ type_: "1000 separator" }); } ret.push(buffer.text_.substr(i)); } else { ret.push(buffer.text_); } for (var p in buffer) { delete buffer[p]; } return ret; } } } //#endregion }; var texify = { go: function(input, isInner) { if (!input) { return ""; } var res = ""; var cee = false; for (var i = 0; i < input.length; i++) { var inputi = input[i]; if (typeof inputi === "string") { res += inputi; } else { res += texify._go2(inputi); if (inputi.type_ === "1st-level escape") { cee = true; } } } if (!isInner && !cee && res) { res = "{" + res + "}"; } return res; }, _goInner: function(input) { if (!input) { return input; } return texify.go(input, true); }, _go2: function(buf) { var res; switch (buf.type_) { case "chemfive": res = ""; var b5 = { a: texify._goInner(buf.a), b: texify._goInner(buf.b), p: texify._goInner(buf.p), o: texify._goInner(buf.o), q: texify._goInner(buf.q), d: texify._goInner(buf.d) }; if (b5.a) { if (b5.a.match(/^[+\-]/)) { b5.a = "{" + b5.a + "}"; } res += b5.a + "\\,"; } if (b5.b || b5.p) { res += "{\\vphantom{X}}"; res += "^{\\hphantom{" + (b5.b || "") + "}}_{\\hphantom{" + (b5.p || "") + "}}"; res += "{\\vphantom{X}}"; res += "^{\\vphantom{2}\\mathllap{" + (b5.b || "") + "}}"; res += "_{\\vphantom{2}\\mathllap{" + (b5.p || "") + "}}"; } if (b5.o) { if (b5.o.match(/^[+\-]/)) { b5.o = "{" + b5.o + "}"; } res += b5.o; } if (buf.dType === "kv") { if (b5.d || b5.q) { res += "{\\vphantom{X}}"; } if (b5.d) { res += "^{" + b5.d + "}"; } if (b5.q) { res += "_{" + b5.q + "}"; } } else if (buf.dType === "oxidation") { if (b5.d) { res += "{\\vphantom{X}}"; res += "^{" + b5.d + "}"; } if (b5.q) { res += "{{}}"; res += "_{" + b5.q + "}"; } } else { if (b5.q) { res += "{{}}"; res += "_{" + b5.q + "}"; } if (b5.d) { res += "{{}}"; res += "^{" + b5.d + "}"; } } break; case "rm": res = "\\mathrm{" + buf.p1 + "}"; break; case "text": if (buf.p1.match(/[\^_]/)) { buf.p1 = buf.p1.replace(" ", "~").replace("-", "\\text{-}"); res = "\\mathrm{" + buf.p1 + "}"; } else { res = "\\text{" + buf.p1 + "}"; } break; case "roman numeral": res = "\\mathrm{" + buf.p1 + "}"; break; case "state of aggregation": res = "\\mskip2mu " + texify._goInner(buf.p1); break; case "state of aggregation subscript": res = "\\mskip1mu " + texify._goInner(buf.p1); break; case "bond": res = texify._getBond(buf.kind_); if (!res) { throw ["MhchemErrorBond", "mhchem Error. Unknown bond type (" + buf.kind_ + ")"]; } break; case "frac": var c = "\\frac{" + buf.p1 + "}{" + buf.p2 + "}"; res = "\\mathchoice{\\textstyle" + c + "}{" + c + "}{" + c + "}{" + c + "}"; break; case "pu-frac": var d = "\\frac{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}"; res = "\\mathchoice{\\textstyle" + d + "}{" + d + "}{" + d + "}{" + d + "}"; break; case "tex-math": res = buf.p1 + " "; break; case "frac-ce": res = "\\frac{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}"; break; case "overset": res = "\\overset{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}"; break; case "underset": res = "\\underset{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}"; break; case "underbrace": res = "\\underbrace{" + texify._goInner(buf.p1) + "}_{" + texify._goInner(buf.p2) + "}"; break; case "color": res = "{\\color{" + buf.color1 + "}{" + texify._goInner(buf.color2) + "}}"; break; case "color0": res = "\\color{" + buf.color + "}"; break; case "arrow": var b6 = { rd: texify._goInner(buf.rd), rq: texify._goInner(buf.rq) }; var arrow = texify._getArrow(buf.r); if (b6.rq) { arrow += "[{\\rm " + b6.rq + "}]"; } if (b6.rd) { arrow += "{\\rm " + b6.rd + "}"; } else { arrow += "{}"; } res = arrow; break; case "operator": res = texify._getOperator(buf.kind_); break; case "1st-level escape": res = buf.p1 + " "; break; case "space": res = " "; break; case "entitySkip": res = "~"; break; case "pu-space-1": res = "~"; break; case "pu-space-2": res = "\\mkern3mu "; break; case "1000 separator": res = "\\mkern2mu "; break; case "commaDecimal": res = "{,}"; break; case "comma enumeration L": res = "{" + buf.p1 + "}\\mkern6mu "; break; case "comma enumeration M": res = "{" + buf.p1 + "}\\mkern3mu "; break; case "comma enumeration S": res = "{" + buf.p1 + "}\\mkern1mu "; break; case "hyphen": res = "\\text{-}"; break; case "addition compound": res = "\\,{\\cdot}\\,"; break; case "electron dot": res = "\\mkern1mu \\text{\\textbullet}\\mkern1mu "; break; case "KV x": res = "{\\times}"; break; case "prime": res = "\\prime "; break; case "cdot": res = "\\cdot "; break; case "tight cdot": res = "\\mkern1mu{\\cdot}\\mkern1mu "; break; case "times": res = "\\times "; break; case "circa": res = "{\\sim}"; break; case "^": res = "uparrow"; break; case "v": res = "downarrow"; break; case "ellipsis": res = "\\ldots "; break; case "/": res = "/"; break; case " / ": res = "\\,/\\,"; break; default: assertNever(buf); throw ["MhchemBugT", "mhchem bug T. Please report."]; } assertString(res); return res; }, _getArrow: function(a) { switch (a) { case "->": return "\\yields"; case "\u2192": return "\\yields"; case "\u27F6": return "\\yields"; case "<-": return "\\yieldsLeft"; case "<->": return "\\mesomerism"; case "<-->": return "\\yieldsLeftRight"; case "<=>": return "\\equilibrium"; case "\u21CC": return "\\equilibrium"; case "<=>>": return "\\equilibriumRight"; case "<<=>": return "\\equilibriumLeft"; default: assertNever(a); throw ["MhchemBugT", "mhchem bug T. Please report."]; } }, _getBond: function(a) { switch (a) { case "-": return "{-}"; case "1": return "{-}"; case "=": return "{=}"; case "2": return "{=}"; case "#": return "{\\equiv}"; case "3": return "{\\equiv}"; case "~": return "{\\tripleDash}"; case "~-": return "{\\tripleDashOverLine}"; case "~=": return "{\\tripleDashOverDoubleLine}"; case "~--": return "{\\tripleDashOverDoubleLine}"; case "-~-": return "{\\tripleDashBetweenDoubleLine}"; case "...": return "{{\\cdot}{\\cdot}{\\cdot}}"; case "....": return "{{\\cdot}{\\cdot}{\\cdot}{\\cdot}}"; case "->": return "{\\rightarrow}"; case "<-": return "{\\leftarrow}"; case "<": return "{<}"; case ">": return "{>}"; default: assertNever(a); throw ["MhchemBugT", "mhchem bug T. Please report."]; } }, _getOperator: function(a) { switch (a) { case "+": return " {}+{} "; case "-": return " {}-{} "; case "=": return " {}={} "; case "<": return " {}<{} "; case ">": return " {}>{} "; case "<<": return " {}\\ll{} "; case ">>": return " {}\\gg{} "; case "\\pm": return " {}\\pm{} "; case "\\approx": return " {}\\approx{} "; case "$\\approx$": return " {}\\approx{} "; case "v": return " \\downarrow{} "; case "(v)": return " \\downarrow{} "; case "^": return " \\uparrow{} "; case "(^)": return " \\uparrow{} "; default: assertNever(a); throw ["MhchemBugT", "mhchem bug T. Please report."]; } } }; function assertNever(a) { } function assertString(a) { } defineMacro("\\darr", "\\downarrow"); defineMacro("\\dArr", "\\Downarrow"); defineMacro("\\Darr", "\\Downarrow"); defineMacro("\\lang", "\\langle"); defineMacro("\\rang", "\\rangle"); defineMacro("\\uarr", "\\uparrow"); defineMacro("\\uArr", "\\Uparrow"); defineMacro("\\Uarr", "\\Uparrow"); defineMacro("\\N", "\\mathbb{N}"); defineMacro("\\R", "\\mathbb{R}"); defineMacro("\\Z", "\\mathbb{Z}"); defineMacro("\\alef", "\\aleph"); defineMacro("\\alefsym", "\\aleph"); defineMacro("\\bull", "\\bullet"); defineMacro("\\clubs", "\\clubsuit"); defineMacro("\\cnums", "\\mathbb{C}"); defineMacro("\\Complex", "\\mathbb{C}"); defineMacro("\\Dagger", "\\ddagger"); defineMacro("\\diamonds", "\\diamondsuit"); defineMacro("\\empty", "\\emptyset"); defineMacro("\\exist", "\\exists"); defineMacro("\\harr", "\\leftrightarrow"); defineMacro("\\hArr", "\\Leftrightarrow"); defineMacro("\\Harr", "\\Leftrightarrow"); defineMacro("\\hearts", "\\heartsuit"); defineMacro("\\image", "\\Im"); defineMacro("\\infin", "\\infty"); defineMacro("\\isin", "\\in"); defineMacro("\\larr", "\\leftarrow"); defineMacro("\\lArr", "\\Leftarrow"); defineMacro("\\Larr", "\\Leftarrow"); defineMacro("\\lrarr", "\\leftrightarrow"); defineMacro("\\lrArr", "\\Leftrightarrow"); defineMacro("\\Lrarr", "\\Leftrightarrow"); defineMacro("\\natnums", "\\mathbb{N}"); defineMacro("\\plusmn", "\\pm"); defineMacro("\\rarr", "\\rightarrow"); defineMacro("\\rArr", "\\Rightarrow"); defineMacro("\\Rarr", "\\Rightarrow"); defineMacro("\\real", "\\Re"); defineMacro("\\reals", "\\mathbb{R}"); defineMacro("\\Reals", "\\mathbb{R}"); defineMacro("\\sdot", "\\cdot"); defineMacro("\\sect", "\\S"); defineMacro("\\spades", "\\spadesuit"); defineMacro("\\sub", "\\subset"); defineMacro("\\sube", "\\subseteq"); defineMacro("\\supe", "\\supseteq"); defineMacro("\\thetasym", "\\vartheta"); defineMacro("\\weierp", "\\wp"); defineMacro("\\quantity", "{\\left\\{ #1 \\right\\}}"); defineMacro("\\qty", "{\\left\\{ #1 \\right\\}}"); defineMacro("\\pqty", "{\\left( #1 \\right)}"); defineMacro("\\bqty", "{\\left[ #1 \\right]}"); defineMacro("\\vqty", "{\\left\\vert #1 \\right\\vert}"); defineMacro("\\Bqty", "{\\left\\{ #1 \\right\\}}"); defineMacro("\\absolutevalue", "{\\left\\vert #1 \\right\\vert}"); defineMacro("\\abs", "{\\left\\vert #1 \\right\\vert}"); defineMacro("\\norm", "{\\left\\Vert #1 \\right\\Vert}"); defineMacro("\\evaluated", "{\\left.#1 \\right\\vert}"); defineMacro("\\eval", "{\\left.#1 \\right\\vert}"); defineMacro("\\order", "{\\mathcal{O} \\left( #1 \\right)}"); defineMacro("\\commutator", "{\\left[ #1 , #2 \\right]}"); defineMacro("\\comm", "{\\left[ #1 , #2 \\right]}"); defineMacro("\\anticommutator", "{\\left\\{ #1 , #2 \\right\\}}"); defineMacro("\\acomm", "{\\left\\{ #1 , #2 \\right\\}}"); defineMacro("\\poissonbracket", "{\\left\\{ #1 , #2 \\right\\}}"); defineMacro("\\pb", "{\\left\\{ #1 , #2 \\right\\}}"); defineMacro("\\vectorbold", "{\\boldsymbol{ #1 }}"); defineMacro("\\vb", "{\\boldsymbol{ #1 }}"); defineMacro("\\vectorarrow", "{\\vec{\\boldsymbol{ #1 }}}"); defineMacro("\\va", "{\\vec{\\boldsymbol{ #1 }}}"); defineMacro("\\vectorunit", "{{\\boldsymbol{\\hat{ #1 }}}}"); defineMacro("\\vu", "{{\\boldsymbol{\\hat{ #1 }}}}"); defineMacro("\\dotproduct", "\\mathbin{\\boldsymbol\\cdot}"); defineMacro("\\vdot", "{\\boldsymbol\\cdot}"); defineMacro("\\crossproduct", "\\mathbin{\\boldsymbol\\times}"); defineMacro("\\cross", "\\mathbin{\\boldsymbol\\times}"); defineMacro("\\cp", "\\mathbin{\\boldsymbol\\times}"); defineMacro("\\gradient", "{\\boldsymbol\\nabla}"); defineMacro("\\grad", "{\\boldsymbol\\nabla}"); defineMacro("\\divergence", "{\\grad\\vdot}"); defineMacro("\\curl", "{\\grad\\cross}"); defineMacro("\\laplacian", "\\nabla^2"); defineMacro("\\tr", "{\\operatorname{tr}}"); defineMacro("\\Tr", "{\\operatorname{Tr}}"); defineMacro("\\rank", "{\\operatorname{rank}}"); defineMacro("\\erf", "{\\operatorname{erf}}"); defineMacro("\\Res", "{\\operatorname{Res}}"); defineMacro("\\principalvalue", "{\\mathcal{P}}"); defineMacro("\\pv", "{\\mathcal{P}}"); defineMacro("\\PV", "{\\operatorname{P.V.}}"); defineMacro("\\qqtext", "{\\quad\\text{ #1 }\\quad}"); defineMacro("\\qq", "{\\quad\\text{ #1 }\\quad}"); defineMacro("\\qcomma", "{\\text{,}\\quad}"); defineMacro("\\qc", "{\\text{,}\\quad}"); defineMacro("\\qcc", "{\\quad\\text{c.c.}\\quad}"); defineMacro("\\qif", "{\\quad\\text{if}\\quad}"); defineMacro("\\qthen", "{\\quad\\text{then}\\quad}"); defineMacro("\\qelse", "{\\quad\\text{else}\\quad}"); defineMacro("\\qotherwise", "{\\quad\\text{otherwise}\\quad}"); defineMacro("\\qunless", "{\\quad\\text{unless}\\quad}"); defineMacro("\\qgiven", "{\\quad\\text{given}\\quad}"); defineMacro("\\qusing", "{\\quad\\text{using}\\quad}"); defineMacro("\\qassume", "{\\quad\\text{assume}\\quad}"); defineMacro("\\qsince", "{\\quad\\text{since}\\quad}"); defineMacro("\\qlet", "{\\quad\\text{let}\\quad}"); defineMacro("\\qfor", "{\\quad\\text{for}\\quad}"); defineMacro("\\qall", "{\\quad\\text{all}\\quad}"); defineMacro("\\qeven", "{\\quad\\text{even}\\quad}"); defineMacro("\\qodd", "{\\quad\\text{odd}\\quad}"); defineMacro("\\qinteger", "{\\quad\\text{integer}\\quad}"); defineMacro("\\qand", "{\\quad\\text{and}\\quad}"); defineMacro("\\qor", "{\\quad\\text{or}\\quad}"); defineMacro("\\qas", "{\\quad\\text{as}\\quad}"); defineMacro("\\qin", "{\\quad\\text{in}\\quad}"); defineMacro("\\differential", "{\\text{d}}"); defineMacro("\\dd", "{\\text{d}}"); defineMacro("\\derivative", "{\\frac{\\text{d}{ #1 }}{\\text{d}{ #2 }}}"); defineMacro("\\dv", "{\\frac{\\text{d}{ #1 }}{\\text{d}{ #2 }}}"); defineMacro("\\partialderivative", "{\\frac{\\partial{ #1 }}{\\partial{ #2 }}}"); defineMacro("\\variation", "{\\delta}"); defineMacro("\\var", "{\\delta}"); defineMacro("\\functionalderivative", "{\\frac{\\delta{ #1 }}{\\delta{ #2 }}}"); defineMacro("\\fdv", "{\\frac{\\delta{ #1 }}{\\delta{ #2 }}}"); defineMacro("\\innerproduct", "{\\left\\langle {#1} \\mid { #2} \\right\\rangle}"); defineMacro( "\\outerproduct", "{\\left\\vert { #1 } \\right\\rangle\\left\\langle { #2} \\right\\vert}" ); defineMacro( "\\dyad", "{\\left\\vert { #1 } \\right\\rangle\\left\\langle { #2} \\right\\vert}" ); defineMacro( "\\ketbra", "{\\left\\vert { #1 } \\right\\rangle\\left\\langle { #2} \\right\\vert}" ); defineMacro( "\\op", "{\\left\\vert { #1 } \\right\\rangle\\left\\langle { #2} \\right\\vert}" ); defineMacro("\\expectationvalue", "{\\left\\langle {#1 } \\right\\rangle}"); defineMacro("\\expval", "{\\left\\langle {#1 } \\right\\rangle}"); defineMacro("\\ev", "{\\left\\langle {#1 } \\right\\rangle}"); defineMacro( "\\matrixelement", "{\\left\\langle{ #1 }\\right\\vert{ #2 }\\left\\vert{#3}\\right\\rangle}" ); defineMacro( "\\matrixel", "{\\left\\langle{ #1 }\\right\\vert{ #2 }\\left\\vert{#3}\\right\\rangle}" ); defineMacro( "\\mel", "{\\left\\langle{ #1 }\\right\\vert{ #2 }\\left\\vert{#3}\\right\\rangle}" ); function getHLines(parser) { const hlineInfo = []; parser.consumeSpaces(); let nxt = parser.fetch().text; if (nxt === "\\relax") { parser.consume(); parser.consumeSpaces(); nxt = parser.fetch().text; } while (nxt === "\\hline" || nxt === "\\hdashline") { parser.consume(); hlineInfo.push(nxt === "\\hdashline"); parser.consumeSpaces(); nxt = parser.fetch().text; } return hlineInfo; } var validateAmsEnvironmentContext = (context) => { const settings = context.parser.settings; if (!settings.displayMode) { throw new ParseError(`{${context.envName}} can be used only in display mode.`); } }; var sizeRegEx$1 = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/; var arrayGaps = (macros2) => { let arraystretch = macros2.get("\\arraystretch"); if (typeof arraystretch !== "string") { arraystretch = stringFromArg(arraystretch.tokens); } arraystretch = isNaN(arraystretch) ? null : Number(arraystretch); let arraycolsepStr = macros2.get("\\arraycolsep"); if (typeof arraycolsepStr !== "string") { arraycolsepStr = stringFromArg(arraycolsepStr.tokens); } const match = sizeRegEx$1.exec(arraycolsepStr); const arraycolsep = match ? { number: +(match[1] + match[2]), unit: match[3] } : null; return [arraystretch, arraycolsep]; }; var checkCellForLabels = (cell) => { let rowLabel = ""; for (let i = 0; i < cell.length; i++) { if (cell[i].type === "label") { if (rowLabel) { throw new ParseError("Multiple \\labels in one row"); } rowLabel = cell[i].string; } } return rowLabel; }; function getAutoTag(name) { if (name.indexOf("ed") === -1) { return name.indexOf("*") === -1; } } function parseArray(parser, { cols, // [{ type: string , align: l|c|r|null }] envClasses, // align(ed|at|edat) | array | cases | cd | small | multline autoTag, // boolean singleRow, // boolean emptySingleRow, // boolean maxNumCols, // number leqno, // boolean arraystretch, // number | null arraycolsep // size value | null }, scriptLevel2) { parser.gullet.beginGroup(); if (!singleRow) { parser.gullet.macros.set("\\cr", "\\\\\\relax"); } parser.gullet.beginGroup(); let row = []; const body = [row]; const rowGaps = []; const labels = []; const hLinesBeforeRow = []; const tags = autoTag != null ? [] : void 0; function beginRow() { if (autoTag) { parser.gullet.macros.set("\\@eqnsw", "1", true); } } function endRow() { if (tags) { if (parser.gullet.macros.get("\\df@tag")) { tags.push(parser.subparse([new Token("\\df@tag")])); parser.gullet.macros.set("\\df@tag", void 0, true); } else { tags.push(Boolean(autoTag) && parser.gullet.macros.get("\\@eqnsw") === "1"); } } } beginRow(); hLinesBeforeRow.push(getHLines(parser)); while (true) { let cell = parser.parseExpression(false, singleRow ? "\\end" : "\\\\"); parser.gullet.endGroup(); parser.gullet.beginGroup(); cell = { type: "ordgroup", mode: parser.mode, body: cell, semisimple: true }; row.push(cell); const next = parser.fetch().text; if (next === "&") { if (maxNumCols && row.length === maxNumCols) { if (envClasses.includes("array")) { if (parser.settings.strict) { throw new ParseError( "Too few columns specified in the {array} column argument.", parser.nextToken ); } } else if (maxNumCols === 2) { throw new ParseError( "The split environment accepts no more than two columns", parser.nextToken ); } else { throw new ParseError( "The equation environment accepts only one column", parser.nextToken ); } } parser.consume(); } else if (next === "\\end") { endRow(); if (row.length === 1 && cell.body.length === 0 && (body.length > 1 || !emptySingleRow)) { body.pop(); } labels.push(checkCellForLabels(cell.body)); if (hLinesBeforeRow.length < body.length + 1) { hLinesBeforeRow.push([]); } break; } else if (next === "\\\\") { parser.consume(); let size; if (parser.gullet.future().text !== " ") { size = parser.parseSizeGroup(true); } rowGaps.push(size ? size.value : null); endRow(); labels.push(checkCellForLabels(cell.body)); hLinesBeforeRow.push(getHLines(parser)); row = []; body.push(row); beginRow(); } else { throw new ParseError("Expected & or \\\\ or \\cr or \\end", parser.nextToken); } } parser.gullet.endGroup(); parser.gullet.endGroup(); return { type: "array", mode: parser.mode, body, cols, rowGaps, hLinesBeforeRow, envClasses, autoTag, scriptLevel: scriptLevel2, tags, labels, leqno, arraystretch, arraycolsep }; } function dCellStyle(envName) { return envName.slice(0, 1) === "d" ? "display" : "text"; } var alignMap = { c: "center ", l: "left ", r: "right " }; var glue = (group) => { const glueNode = new mathMLTree.MathNode("mtd", []); glueNode.style = { padding: "0", width: "50%" }; if (group.envClasses.includes("multline")) { glueNode.style.width = "7.5%"; } return glueNode; }; var mathmlBuilder$7 = function(group, style) { const tbl = []; const numRows = group.body.length; const hlines = group.hLinesBeforeRow; for (let i = 0; i < numRows; i++) { const rw = group.body[i]; const row = []; const cellLevel = group.scriptLevel === "text" ? StyleLevel.TEXT : group.scriptLevel === "script" ? StyleLevel.SCRIPT : StyleLevel.DISPLAY; for (let j = 0; j < rw.length; j++) { const mtd = new mathMLTree.MathNode( "mtd", [buildGroup$1(rw[j], style.withLevel(cellLevel))] ); if (group.envClasses.includes("multline")) { const align2 = i === 0 ? "left" : i === numRows - 1 ? "right" : "center"; mtd.setAttribute("columnalign", align2); if (align2 !== "center") { mtd.classes.push("tml-" + align2); } } row.push(mtd); } const numColumns = group.body[0].length; for (let k = 0; k < numColumns - rw.length; k++) { row.push(new mathMLTree.MathNode("mtd", [], style)); } if (group.autoTag) { const tag = group.tags[i]; let tagElement; if (tag === true) { tagElement = new mathMLTree.MathNode("mtext", [new Span(["tml-eqn"])]); } else if (tag === false) { tagElement = new mathMLTree.MathNode("mtext", [], []); } else { tagElement = buildExpressionRow(tag[0].body, style.withLevel(cellLevel), true); tagElement = consolidateText(tagElement); tagElement.classes = ["tml-tag"]; } if (tagElement) { row.unshift(glue(group)); row.push(glue(group)); if (group.leqno) { row[0].children.push(tagElement); row[0].classes.push("tml-left"); } else { row[row.length - 1].children.push(tagElement); row[row.length - 1].classes.push("tml-right"); } } } const mtr = new mathMLTree.MathNode("mtr", row, []); const label = group.labels.shift(); if (label && group.tags && group.tags[i]) { mtr.setAttribute("id", label); if (Array.isArray(group.tags[i])) { mtr.classes.push("tml-tageqn"); } } if (i === 0 && hlines[0].length > 0) { if (hlines[0].length === 2) { mtr.children.forEach((cell) => { cell.style.borderTop = "0.15em double"; }); } else { mtr.children.forEach((cell) => { cell.style.borderTop = hlines[0][0] ? "0.06em dashed" : "0.06em solid"; }); } } if (hlines[i + 1].length > 0) { if (hlines[i + 1].length === 2) { mtr.children.forEach((cell) => { cell.style.borderBottom = "0.15em double"; }); } else { mtr.children.forEach((cell) => { cell.style.borderBottom = hlines[i + 1][0] ? "0.06em dashed" : "0.06em solid"; }); } } tbl.push(mtr); } if (group.envClasses.length > 0) { if (group.arraystretch && group.arraystretch !== 1) { const pad = String(1.4 * group.arraystretch - 0.8) + "ex"; for (let i = 0; i < tbl.length; i++) { for (let j = 0; j < tbl[i].children.length; j++) { tbl[i].children[j].style.paddingTop = pad; tbl[i].children[j].style.paddingBottom = pad; } } } let sidePadding = group.envClasses.includes("abut") ? "0" : group.envClasses.includes("cases") ? "0" : group.envClasses.includes("small") ? "0.1389" : group.envClasses.includes("cd") ? "0.25" : "0.4"; let sidePadUnit = "em"; if (group.arraycolsep) { const arraySidePad = calculateSize(group.arraycolsep, style); sidePadding = arraySidePad.number.toFixed(4); sidePadUnit = arraySidePad.unit; } const numCols = tbl.length === 0 ? 0 : tbl[0].children.length; const sidePad = (j, hand) => { if (j === 0 && hand === 0) { return "0"; } if (j === numCols - 1 && hand === 1) { return "0"; } if (group.envClasses[0] !== "align") { return sidePadding; } if (hand === 1) { return "0"; } if (group.autoTag) { return j % 2 ? "1" : "0"; } else { return j % 2 ? "0" : "1"; } }; for (let i = 0; i < tbl.length; i++) { for (let j = 0; j < tbl[i].children.length; j++) { tbl[i].children[j].style.paddingLeft = `${sidePad(j, 0)}${sidePadUnit}`; tbl[i].children[j].style.paddingRight = `${sidePad(j, 1)}${sidePadUnit}`; } } const align2 = group.envClasses.includes("align") || group.envClasses.includes("alignat"); for (let i = 0; i < tbl.length; i++) { const row = tbl[i]; if (align2) { for (let j = 0; j < row.children.length; j++) { row.children[j].classes = ["tml-" + (j % 2 ? "left" : "right")]; } if (group.autoTag) { const k = group.leqno ? 0 : row.children.length - 1; row.children[k].classes = ["tml-" + (group.leqno ? "left" : "right")]; } } if (row.children.length > 1 && group.envClasses.includes("cases")) { row.children[1].style.paddingLeft = "1em"; } if (group.envClasses.includes("cases") || group.envClasses.includes("subarray")) { for (const cell of row.children) { cell.classes.push("tml-left"); } } } } else { for (let i = 0; i < tbl.length; i++) { tbl[i].children[0].style.paddingLeft = "0em"; if (tbl[i].children.length === tbl[0].children.length) { tbl[i].children[tbl[i].children.length - 1].style.paddingRight = "0em"; } } } let table = new mathMLTree.MathNode("mtable", tbl); if (group.envClasses.length > 0) { if (group.envClasses.includes("jot")) { table.classes.push("tml-jot"); } else if (group.envClasses.includes("small")) { table.classes.push("tml-small"); } } if (group.scriptLevel === "display") { table.setAttribute("displaystyle", "true"); } if (group.autoTag || group.envClasses.includes("multline")) { table.style.width = "100%"; } let align = ""; if (group.cols && group.cols.length > 0) { const cols = group.cols; let prevTypeWasAlign = false; let iStart = 0; let iEnd = cols.length; while (cols[iStart].type === "separator") { iStart += 1; } while (cols[iEnd - 1].type === "separator") { iEnd -= 1; } if (cols[0].type === "separator") { const sep = cols[1].type === "separator" ? "0.15em double" : cols[0].separator === "|" ? "0.06em solid " : "0.06em dashed "; for (const row of table.children) { row.children[0].style.borderLeft = sep; } } let iCol = group.autoTag ? 0 : -1; for (let i = iStart; i < iEnd; i++) { if (cols[i].type === "align") { const colAlign = alignMap[cols[i].align]; align += colAlign; iCol += 1; for (const row of table.children) { if (colAlign.trim() !== "center" && iCol < row.children.length) { row.children[iCol].classes = ["tml-" + colAlign.trim()]; } } prevTypeWasAlign = true; } else if (cols[i].type === "separator") { if (prevTypeWasAlign) { const sep = cols[i + 1].type === "separator" ? "0.15em double" : cols[i].separator === "|" ? "0.06em solid" : "0.06em dashed"; for (const row of table.children) { if (iCol < row.children.length) { row.children[iCol].style.borderRight = sep; } } } prevTypeWasAlign = false; } } if (cols[cols.length - 1].type === "separator") { const sep = cols[cols.length - 2].type === "separator" ? "0.15em double" : cols[cols.length - 1].separator === "|" ? "0.06em solid" : "0.06em dashed"; for (const row of table.children) { row.children[row.children.length - 1].style.borderRight = sep; row.children[row.children.length - 1].style.paddingRight = "0.4em"; } } } if (group.autoTag) { align = "left " + (align.length > 0 ? align : "center ") + "right "; } if (align) { table.setAttribute("columnalign", align.trim()); } if (group.envClasses.includes("small")) { table = new mathMLTree.MathNode("mstyle", [table]); table.setAttribute("scriptlevel", "1"); } return table; }; var alignedHandler = function(context, args) { if (context.envName.indexOf("ed") === -1) { validateAmsEnvironmentContext(context); } const isSplit = context.envName === "split"; const cols = []; const res = parseArray( context.parser, { cols, emptySingleRow: true, autoTag: isSplit ? void 0 : getAutoTag(context.envName), envClasses: ["abut", "jot"], // set row spacing & provisional column spacing maxNumCols: context.envName === "split" ? 2 : void 0, leqno: context.parser.settings.leqno }, "display" ); let numMaths; let numCols = 0; const isAlignedAt = context.envName.indexOf("at") > -1; if (args[0] && isAlignedAt) { let arg0 = ""; for (let i = 0; i < args[0].body.length; i++) { const textord2 = assertNodeType(args[0].body[i], "textord"); arg0 += textord2.text; } if (isNaN(arg0)) { throw new ParseError("The alignat enviroment requires a numeric first argument."); } numMaths = Number(arg0); numCols = numMaths * 2; } res.body.forEach(function(row) { if (isAlignedAt) { const curMaths = row.length / 2; if (numMaths < curMaths) { throw new ParseError( `Too many math in a row: expected ${numMaths}, but got ${curMaths}`, row[0] ); } } else if (numCols < row.length) { numCols = row.length; } }); for (let i = 0; i < numCols; ++i) { let align = "r"; if (i % 2 === 1) { align = "l"; } cols[i] = { type: "align", align }; } if (context.envName === "split") ; else if (isAlignedAt) { res.envClasses.push("alignat"); } else { res.envClasses[0] = "align"; } return res; }; defineEnvironment({ type: "array", names: ["array", "darray"], props: { numArgs: 1 }, handler(context, args) { const symNode = checkSymbolNodeType(args[0]); const colalign = symNode ? [args[0]] : assertNodeType(args[0], "ordgroup").body; const cols = colalign.map(function(nde) { const node = assertSymbolNodeType(nde); const ca = node.text; if ("lcr".indexOf(ca) !== -1) { return { type: "align", align: ca }; } else if (ca === "|") { return { type: "separator", separator: "|" }; } else if (ca === ":") { return { type: "separator", separator: ":" }; } throw new ParseError("Unknown column alignment: " + ca, nde); }); const [arraystretch, arraycolsep] = arrayGaps(context.parser.gullet.macros); const res = { cols, envClasses: ["array"], maxNumCols: cols.length, arraystretch, arraycolsep }; return parseArray(context.parser, res, dCellStyle(context.envName)); }, mathmlBuilder: mathmlBuilder$7 }); defineEnvironment({ type: "array", names: [ "matrix", "pmatrix", "bmatrix", "Bmatrix", "vmatrix", "Vmatrix", "matrix*", "pmatrix*", "bmatrix*", "Bmatrix*", "vmatrix*", "Vmatrix*" ], props: { numArgs: 0 }, handler(context) { const delimiters2 = { matrix: null, pmatrix: ["(", ")"], bmatrix: ["[", "]"], Bmatrix: ["\\{", "\\}"], vmatrix: ["|", "|"], Vmatrix: ["\\Vert", "\\Vert"] }[context.envName.replace("*", "")]; let colAlign = "c"; const payload = { envClasses: [], cols: [] }; if (context.envName.charAt(context.envName.length - 1) === "*") { const parser = context.parser; parser.consumeSpaces(); if (parser.fetch().text === "[") { parser.consume(); parser.consumeSpaces(); colAlign = parser.fetch().text; if ("lcr".indexOf(colAlign) === -1) { throw new ParseError("Expected l or c or r", parser.nextToken); } parser.consume(); parser.consumeSpaces(); parser.expect("]"); parser.consume(); payload.cols = []; } } const res = parseArray(context.parser, payload, "text"); res.cols = new Array(res.body[0].length).fill({ type: "align", align: colAlign }); const [arraystretch, arraycolsep] = arrayGaps(context.parser.gullet.macros); return delimiters2 ? { type: "leftright", mode: context.mode, body: [res], left: delimiters2[0], right: delimiters2[1], rightColor: void 0, // \right uninfluenced by \color in array arraystretch, arraycolsep } : res; }, mathmlBuilder: mathmlBuilder$7 }); defineEnvironment({ type: "array", names: ["smallmatrix"], props: { numArgs: 0 }, handler(context) { const payload = { type: "small" }; const res = parseArray(context.parser, payload, "script"); res.envClasses = ["small"]; return res; }, mathmlBuilder: mathmlBuilder$7 }); defineEnvironment({ type: "array", names: ["subarray"], props: { numArgs: 1 }, handler(context, args) { const symNode = checkSymbolNodeType(args[0]); const colalign = symNode ? [args[0]] : assertNodeType(args[0], "ordgroup").body; const cols = colalign.map(function(nde) { const node = assertSymbolNodeType(nde); const ca = node.text; if ("lc".indexOf(ca) !== -1) { return { type: "align", align: ca }; } throw new ParseError("Unknown column alignment: " + ca, nde); }); if (cols.length > 1) { throw new ParseError("{subarray} can contain only one column"); } let res = { cols, envClasses: ["small"] }; res = parseArray(context.parser, res, "script"); if (res.body.length > 0 && res.body[0].length > 1) { throw new ParseError("{subarray} can contain only one column"); } return res; }, mathmlBuilder: mathmlBuilder$7 }); defineEnvironment({ type: "array", names: ["cases", "dcases", "rcases", "drcases"], props: { numArgs: 0 }, handler(context) { const payload = { cols: [], envClasses: ["cases"] }; const res = parseArray(context.parser, payload, dCellStyle(context.envName)); return { type: "leftright", mode: context.mode, body: [res], left: context.envName.indexOf("r") > -1 ? "." : "\\{", right: context.envName.indexOf("r") > -1 ? "\\}" : ".", rightColor: void 0 }; }, mathmlBuilder: mathmlBuilder$7 }); defineEnvironment({ type: "array", names: ["align", "align*", "aligned", "split"], props: { numArgs: 0 }, handler: alignedHandler, mathmlBuilder: mathmlBuilder$7 }); defineEnvironment({ type: "array", names: ["alignat", "alignat*", "alignedat"], props: { numArgs: 1 }, handler: alignedHandler, mathmlBuilder: mathmlBuilder$7 }); defineEnvironment({ type: "array", names: ["gathered", "gather", "gather*"], props: { numArgs: 0 }, handler(context) { if (context.envName !== "gathered") { validateAmsEnvironmentContext(context); } const res = { cols: [], envClasses: ["abut", "jot"], autoTag: getAutoTag(context.envName), emptySingleRow: true, leqno: context.parser.settings.leqno }; return parseArray(context.parser, res, "display"); }, mathmlBuilder: mathmlBuilder$7 }); defineEnvironment({ type: "array", names: ["equation", "equation*"], props: { numArgs: 0 }, handler(context) { validateAmsEnvironmentContext(context); const res = { autoTag: getAutoTag(context.envName), emptySingleRow: true, singleRow: true, maxNumCols: 1, envClasses: ["align"], leqno: context.parser.settings.leqno }; return parseArray(context.parser, res, "display"); }, mathmlBuilder: mathmlBuilder$7 }); defineEnvironment({ type: "array", names: ["multline", "multline*"], props: { numArgs: 0 }, handler(context) { validateAmsEnvironmentContext(context); const res = { autoTag: context.envName === "multline", maxNumCols: 1, envClasses: ["jot", "multline"], leqno: context.parser.settings.leqno }; return parseArray(context.parser, res, "display"); }, mathmlBuilder: mathmlBuilder$7 }); defineEnvironment({ type: "array", names: ["CD"], props: { numArgs: 0 }, handler(context) { validateAmsEnvironmentContext(context); return parseCD(context.parser); }, mathmlBuilder: mathmlBuilder$7 }); defineFunction({ type: "text", // Doesn't matter what this is. names: ["\\hline", "\\hdashline"], props: { numArgs: 0, allowedInText: true, allowedInMath: true }, handler(context, args) { throw new ParseError(`${context.funcName} valid only within array environment`); } }); var environments = _environments; defineFunction({ type: "environment", names: ["\\begin", "\\end"], props: { numArgs: 1, argTypes: ["text"] }, handler({ parser, funcName }, args) { const nameGroup = args[0]; if (nameGroup.type !== "ordgroup") { throw new ParseError("Invalid environment name", nameGroup); } let envName = ""; for (let i = 0; i < nameGroup.body.length; ++i) { envName += assertNodeType(nameGroup.body[i], "textord").text; } if (funcName === "\\begin") { if (!Object.prototype.hasOwnProperty.call(environments, envName)) { throw new ParseError("No such environment: " + envName, nameGroup); } const env = environments[envName]; const { args: args2, optArgs } = parser.parseArguments("\\begin{" + envName + "}", env); const context = { mode: parser.mode, envName, parser }; const result = env.handler(context, args2, optArgs); parser.expect("\\end", false); const endNameToken = parser.nextToken; const end = assertNodeType(parser.parseFunction(), "environment"); if (end.name !== envName) { throw new ParseError( `Mismatch: \\begin{${envName}} matched by \\end{${end.name}}`, endNameToken ); } return result; } return { type: "environment", mode: parser.mode, name: envName, nameGroup }; } }); defineFunction({ type: "envTag", names: ["\\env@tag"], props: { numArgs: 1, argTypes: ["math"] }, handler({ parser }, args) { return { type: "envTag", mode: parser.mode, body: args[0] }; }, mathmlBuilder(group, style) { return new mathMLTree.MathNode("mrow"); } }); defineFunction({ type: "noTag", names: ["\\env@notag"], props: { numArgs: 0 }, handler({ parser }) { return { type: "noTag", mode: parser.mode }; }, mathmlBuilder(group, style) { return new mathMLTree.MathNode("mrow"); } }); var isLongVariableName = (group, font) => { if (font !== "mathrm" || group.body.type !== "ordgroup" || group.body.body.length === 1) { return false; } if (group.body.body[0].type !== "mathord") { return false; } for (let i = 1; i < group.body.body.length; i++) { const parseNodeType = group.body.body[i].type; if (!(parseNodeType === "mathord" || parseNodeType === "textord" && !isNaN(group.body.body[i].text))) { return false; } } return true; }; var mathmlBuilder$6 = (group, style) => { const font = group.font; const newStyle = style.withFont(font); const mathGroup = buildGroup$1(group.body, newStyle); if (mathGroup.children.length === 0) { return mathGroup; } if (font === "boldsymbol" && ["mo", "mpadded", "mrow"].includes(mathGroup.type)) { mathGroup.style.fontWeight = "bold"; return mathGroup; } if (isLongVariableName(group, font)) { const mi2 = mathGroup.children[0].children[0]; delete mi2.attributes.mathvariant; for (let i = 1; i < mathGroup.children.length; i++) { mi2.children[0].text += mathGroup.children[i].type === "mn" ? mathGroup.children[i].children[0].text : mathGroup.children[i].children[0].children[0].text; } const bogus = new mathMLTree.MathNode("mtext", new mathMLTree.TextNode("\u200B")); return new mathMLTree.MathNode("mrow", [bogus, mi2]); } let canConsolidate = mathGroup.children[0].type === "mo"; for (let i = 1; i < mathGroup.children.length; i++) { if (mathGroup.children[i].type === "mo" && font === "boldsymbol") { mathGroup.children[i].style.fontWeight = "bold"; } if (mathGroup.children[i].type !== "mi") { canConsolidate = false; } const localVariant = mathGroup.children[i].attributes && mathGroup.children[i].attributes.mathvariant || ""; if (localVariant !== "normal") { canConsolidate = false; } } if (!canConsolidate) { return mathGroup; } const mi = mathGroup.children[0]; for (let i = 1; i < mathGroup.children.length; i++) { mi.children.push(mathGroup.children[i].children[0]); } if (mi.attributes.mathvariant && mi.attributes.mathvariant === "normal") { const bogus = new mathMLTree.MathNode("mtext", new mathMLTree.TextNode("\u200B")); return new mathMLTree.MathNode("mrow", [bogus, mi]); } return mi; }; var fontAliases = { "\\Bbb": "\\mathbb", "\\bold": "\\mathbf", "\\frak": "\\mathfrak", "\\bm": "\\boldsymbol" }; defineFunction({ type: "font", names: [ // styles "\\mathrm", "\\mathit", "\\mathbf", "\\mathnormal", "\\up@greek", "\\boldsymbol", // families "\\mathbb", "\\mathcal", "\\mathfrak", "\\mathscr", "\\mathsf", "\\mathsfit", "\\mathtt", // aliases "\\Bbb", "\\bm", "\\bold", "\\frak" ], props: { numArgs: 1, allowedInArgument: true }, handler: ({ parser, funcName }, args) => { const body = normalizeArgument(args[0]); let func = funcName; if (func in fontAliases) { func = fontAliases[func]; } return { type: "font", mode: parser.mode, font: func.slice(1), body }; }, mathmlBuilder: mathmlBuilder$6 }); defineFunction({ type: "font", names: ["\\rm", "\\sf", "\\tt", "\\bf", "\\it", "\\cal"], props: { numArgs: 0, allowedInText: true }, handler: ({ parser, funcName, breakOnTokenText }, args) => { const { mode } = parser; const body = parser.parseExpression(true, breakOnTokenText, true); const fontStyle = `math${funcName.slice(1)}`; return { type: "font", mode, font: fontStyle, body: { type: "ordgroup", mode: parser.mode, body } }; }, mathmlBuilder: mathmlBuilder$6 }); var stylArray = ["display", "text", "script", "scriptscript"]; var scriptLevel = { auto: -1, display: 0, text: 0, script: 1, scriptscript: 2 }; var mathmlBuilder$5 = (group, style) => { const childOptions = group.scriptLevel === "auto" ? style.incrementLevel() : group.scriptLevel === "display" ? style.withLevel(StyleLevel.TEXT) : group.scriptLevel === "text" ? style.withLevel(StyleLevel.SCRIPT) : style.withLevel(StyleLevel.SCRIPTSCRIPT); const numer = buildGroup$1(group.numer, childOptions); const denom = buildGroup$1(group.denom, childOptions); if (style.level === 3) { numer.style.mathDepth = "2"; numer.setAttribute("scriptlevel", "2"); denom.style.mathDepth = "2"; denom.setAttribute("scriptlevel", "2"); } let node = new mathMLTree.MathNode("mfrac", [numer, denom]); if (!group.hasBarLine) { node.setAttribute("linethickness", "0px"); } else if (group.barSize) { const ruleWidth = calculateSize(group.barSize, style); node.setAttribute("linethickness", ruleWidth.number + ruleWidth.unit); } if (group.leftDelim != null || group.rightDelim != null) { const withDelims = []; if (group.leftDelim != null) { const leftOp = new mathMLTree.MathNode("mo", [ new mathMLTree.TextNode(group.leftDelim.replace("\\", "")) ]); leftOp.setAttribute("fence", "true"); withDelims.push(leftOp); } withDelims.push(node); if (group.rightDelim != null) { const rightOp = new mathMLTree.MathNode("mo", [ new mathMLTree.TextNode(group.rightDelim.replace("\\", "")) ]); rightOp.setAttribute("fence", "true"); withDelims.push(rightOp); } node = makeRow(withDelims); } if (group.scriptLevel !== "auto") { node = new mathMLTree.MathNode("mstyle", [node]); node.setAttribute("displaystyle", String(group.scriptLevel === "display")); node.setAttribute("scriptlevel", scriptLevel[group.scriptLevel]); } return node; }; defineFunction({ type: "genfrac", names: [ "\\dfrac", "\\frac", "\\tfrac", "\\dbinom", "\\binom", "\\tbinom", "\\\\atopfrac", // can’t be entered directly "\\\\bracefrac", "\\\\brackfrac" // ditto ], props: { numArgs: 2, allowedInArgument: true }, handler: ({ parser, funcName }, args) => { const numer = args[0]; const denom = args[1]; let hasBarLine = false; let leftDelim = null; let rightDelim = null; let scriptLevel2 = "auto"; switch (funcName) { case "\\dfrac": case "\\frac": case "\\tfrac": hasBarLine = true; break; case "\\\\atopfrac": hasBarLine = false; break; case "\\dbinom": case "\\binom": case "\\tbinom": leftDelim = "("; rightDelim = ")"; break; case "\\\\bracefrac": leftDelim = "\\{"; rightDelim = "\\}"; break; case "\\\\brackfrac": leftDelim = "["; rightDelim = "]"; break; default: throw new Error("Unrecognized genfrac command"); } switch (funcName) { case "\\dfrac": case "\\dbinom": scriptLevel2 = "display"; break; case "\\tfrac": case "\\tbinom": scriptLevel2 = "text"; break; } return { type: "genfrac", mode: parser.mode, continued: false, numer, denom, hasBarLine, leftDelim, rightDelim, scriptLevel: scriptLevel2, barSize: null }; }, mathmlBuilder: mathmlBuilder$5 }); defineFunction({ type: "genfrac", names: ["\\cfrac"], props: { numArgs: 2 }, handler: ({ parser, funcName }, args) => { const numer = args[0]; const denom = args[1]; return { type: "genfrac", mode: parser.mode, continued: true, numer, denom, hasBarLine: true, leftDelim: null, rightDelim: null, scriptLevel: "display", barSize: null }; } }); defineFunction({ type: "infix", names: ["\\over", "\\choose", "\\atop", "\\brace", "\\brack"], props: { numArgs: 0, infix: true }, handler({ parser, funcName, token }) { let replaceWith; switch (funcName) { case "\\over": replaceWith = "\\frac"; break; case "\\choose": replaceWith = "\\binom"; break; case "\\atop": replaceWith = "\\\\atopfrac"; break; case "\\brace": replaceWith = "\\\\bracefrac"; break; case "\\brack": replaceWith = "\\\\brackfrac"; break; default: throw new Error("Unrecognized infix genfrac command"); } return { type: "infix", mode: parser.mode, replaceWith, token }; } }); var delimFromValue = function(delimString) { let delim = null; if (delimString.length > 0) { delim = delimString; delim = delim === "." ? null : delim; } return delim; }; defineFunction({ type: "genfrac", names: ["\\genfrac"], props: { numArgs: 6, allowedInArgument: true, argTypes: ["math", "math", "size", "text", "math", "math"] }, handler({ parser }, args) { const numer = args[4]; const denom = args[5]; const leftNode = normalizeArgument(args[0]); const leftDelim = leftNode.type === "atom" && leftNode.family === "open" ? delimFromValue(leftNode.text) : null; const rightNode = normalizeArgument(args[1]); const rightDelim = rightNode.type === "atom" && rightNode.family === "close" ? delimFromValue(rightNode.text) : null; const barNode = assertNodeType(args[2], "size"); let hasBarLine; let barSize = null; if (barNode.isBlank) { hasBarLine = true; } else { barSize = barNode.value; hasBarLine = barSize.number > 0; } let scriptLevel2 = "auto"; let styl = args[3]; if (styl.type === "ordgroup") { if (styl.body.length > 0) { const textOrd = assertNodeType(styl.body[0], "textord"); scriptLevel2 = stylArray[Number(textOrd.text)]; } } else { styl = assertNodeType(styl, "textord"); scriptLevel2 = stylArray[Number(styl.text)]; } return { type: "genfrac", mode: parser.mode, numer, denom, continued: false, hasBarLine, barSize, leftDelim, rightDelim, scriptLevel: scriptLevel2 }; }, mathmlBuilder: mathmlBuilder$5 }); defineFunction({ type: "infix", names: ["\\above"], props: { numArgs: 1, argTypes: ["size"], infix: true }, handler({ parser, funcName, token }, args) { return { type: "infix", mode: parser.mode, replaceWith: "\\\\abovefrac", barSize: assertNodeType(args[0], "size").value, token }; } }); defineFunction({ type: "genfrac", names: ["\\\\abovefrac"], props: { numArgs: 3, argTypes: ["math", "size", "math"] }, handler: ({ parser, funcName }, args) => { const numer = args[0]; const barSize = assert(assertNodeType(args[1], "infix").barSize); const denom = args[2]; const hasBarLine = barSize.number > 0; return { type: "genfrac", mode: parser.mode, numer, denom, continued: false, hasBarLine, barSize, leftDelim: null, rightDelim: null, scriptLevel: "auto" }; }, mathmlBuilder: mathmlBuilder$5 }); defineFunction({ type: "hbox", names: ["\\hbox"], props: { numArgs: 1, argTypes: ["hbox"], allowedInArgument: true, allowedInText: false }, handler({ parser }, args) { return { type: "hbox", mode: parser.mode, body: ordargument(args[0]) }; }, mathmlBuilder(group, style) { const newStyle = style.withLevel(StyleLevel.TEXT); const mrow = buildExpressionRow(group.body, newStyle); return consolidateText(mrow); } }); var mathmlBuilder$4 = (group, style) => { const accentNode2 = stretchy.mathMLnode(group.label); accentNode2.style["math-depth"] = 0; return new mathMLTree.MathNode(group.isOver ? "mover" : "munder", [ buildGroup$1(group.base, style), accentNode2 ]); }; defineFunction({ type: "horizBrace", names: ["\\overbrace", "\\underbrace"], props: { numArgs: 1 }, handler({ parser, funcName }, args) { return { type: "horizBrace", mode: parser.mode, label: funcName, isOver: /^\\over/.test(funcName), base: args[0] }; }, mathmlBuilder: mathmlBuilder$4 }); defineFunction({ type: "href", names: ["\\href"], props: { numArgs: 2, argTypes: ["url", "original"], allowedInText: true }, handler: ({ parser, token }, args) => { const body = args[1]; const href = assertNodeType(args[0], "url").url; if (!parser.settings.isTrusted({ command: "\\href", url: href })) { throw new ParseError(`Function "\\href" is not trusted`, token); } return { type: "href", mode: parser.mode, href, body: ordargument(body) }; }, mathmlBuilder: (group, style) => { const math2 = new MathNode("math", [buildExpressionRow(group.body, style)]); const anchorNode = new AnchorNode(group.href, [], [math2]); return anchorNode; } }); defineFunction({ type: "href", names: ["\\url"], props: { numArgs: 1, argTypes: ["url"], allowedInText: true }, handler: ({ parser, token }, args) => { const href = assertNodeType(args[0], "url").url; if (!parser.settings.isTrusted({ command: "\\url", url: href })) { throw new ParseError(`Function "\\url" is not trusted`, token); } const chars = []; for (let i = 0; i < href.length; i++) { let c = href[i]; if (c === "~") { c = "\\textasciitilde"; } chars.push({ type: "textord", mode: "text", text: c }); } const body = { type: "text", mode: parser.mode, font: "\\texttt", body: chars }; return { type: "href", mode: parser.mode, href, body: ordargument(body) }; } }); defineFunction({ type: "html", names: ["\\class", "\\id", "\\style", "\\data"], props: { numArgs: 2, argTypes: ["raw", "original"], allowedInText: true }, handler: ({ parser, funcName, token }, args) => { const value = assertNodeType(args[0], "raw").string; const body = args[1]; if (parser.settings.strict) { throw new ParseError(`Function "${funcName}" is disabled in strict mode`, token); } let trustContext; const attributes = {}; switch (funcName) { case "\\class": attributes.class = value; trustContext = { command: "\\class", class: value }; break; case "\\id": attributes.id = value; trustContext = { command: "\\id", id: value }; break; case "\\style": attributes.style = value; trustContext = { command: "\\style", style: value }; break; case "\\data": { const data = value.split(","); for (let i = 0; i < data.length; i++) { const keyVal = data[i].split("="); if (keyVal.length !== 2) { throw new ParseError("Error parsing key-value for \\data"); } attributes["data-" + keyVal[0].trim()] = keyVal[1].trim(); } trustContext = { command: "\\data", attributes }; break; } default: throw new Error("Unrecognized html command"); } if (!parser.settings.isTrusted(trustContext)) { throw new ParseError(`Function "${funcName}" is not trusted`, token); } return { type: "html", mode: parser.mode, attributes, body: ordargument(body) }; }, mathmlBuilder: (group, style) => { const element = buildExpressionRow(group.body, style); const classes = []; if (group.attributes.class) { classes.push(...group.attributes.class.trim().split(/\s+/)); } element.classes = classes; for (const attr in group.attributes) { if (attr !== "class" && Object.prototype.hasOwnProperty.call(group.attributes, attr)) { element.setAttribute(attr, group.attributes[attr]); } } return element; } }); var sizeData = function(str) { if (/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(str)) { return { number: +str, unit: "bp" }; } else { const match = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(str); if (!match) { throw new ParseError("Invalid size: '" + str + "' in \\includegraphics"); } const data = { number: +(match[1] + match[2]), // sign + magnitude, cast to number unit: match[3] }; if (!validUnit(data)) { throw new ParseError("Invalid unit: '" + data.unit + "' in \\includegraphics."); } return data; } }; defineFunction({ type: "includegraphics", names: ["\\includegraphics"], props: { numArgs: 1, numOptionalArgs: 1, argTypes: ["raw", "url"], allowedInText: false }, handler: ({ parser, token }, args, optArgs) => { let width = { number: 0, unit: "em" }; let height = { number: 0.9, unit: "em" }; let totalheight = { number: 0, unit: "em" }; let alt = ""; if (optArgs[0]) { const attributeStr = assertNodeType(optArgs[0], "raw").string; const attributes = attributeStr.split(","); for (let i = 0; i < attributes.length; i++) { const keyVal = attributes[i].split("="); if (keyVal.length === 2) { const str = keyVal[1].trim(); switch (keyVal[0].trim()) { case "alt": alt = str; break; case "width": width = sizeData(str); break; case "height": height = sizeData(str); break; case "totalheight": totalheight = sizeData(str); break; default: throw new ParseError("Invalid key: '" + keyVal[0] + "' in \\includegraphics."); } } } } const src = assertNodeType(args[0], "url").url; if (alt === "") { alt = src; alt = alt.replace(/^.*[\\/]/, ""); alt = alt.substring(0, alt.lastIndexOf(".")); } if (!parser.settings.isTrusted({ command: "\\includegraphics", url: src })) { throw new ParseError(`Function "\\includegraphics" is not trusted`, token); } return { type: "includegraphics", mode: parser.mode, alt, width, height, totalheight, src }; }, mathmlBuilder: (group, style) => { const height = calculateSize(group.height, style); const depth = { number: 0, unit: "em" }; if (group.totalheight.number > 0) { if (group.totalheight.unit === height.unit && group.totalheight.number > height.number) { depth.number = group.totalheight.number - height.number; depth.unit = height.unit; } } let width = 0; if (group.width.number > 0) { width = calculateSize(group.width, style); } const graphicStyle = { height: height.number + depth.number + "em" }; if (width.number > 0) { graphicStyle.width = width.number + width.unit; } if (depth.number > 0) { graphicStyle.verticalAlign = -depth.number + depth.unit; } const node = new Img(group.src, group.alt, graphicStyle); node.height = height; node.depth = depth; return new mathMLTree.MathNode("mtext", [node]); } }); defineFunction({ type: "kern", names: ["\\kern", "\\mkern", "\\hskip", "\\mskip"], props: { numArgs: 1, argTypes: ["size"], primitive: true, allowedInText: true }, handler({ parser, funcName, token }, args) { const size = assertNodeType(args[0], "size"); if (parser.settings.strict) { const mathFunction = funcName[1] === "m"; const muUnit = size.value.unit === "mu"; if (mathFunction) { if (!muUnit) { throw new ParseError(`LaTeX's ${funcName} supports only mu units, not ${size.value.unit} units`, token); } if (parser.mode !== "math") { throw new ParseError(`LaTeX's ${funcName} works only in math mode`, token); } } else { if (muUnit) { throw new ParseError(`LaTeX's ${funcName} doesn't support mu units`, token); } } } return { type: "kern", mode: parser.mode, dimension: size.value }; }, mathmlBuilder(group, style) { const dimension = calculateSize(group.dimension, style); const ch = dimension.unit === "em" ? spaceCharacter(dimension.number) : ""; if (group.mode === "text" && ch.length > 0) { const character = new mathMLTree.TextNode(ch); return new mathMLTree.MathNode("mtext", [character]); } else { const node = new mathMLTree.MathNode("mspace"); node.setAttribute("width", dimension.number + dimension.unit); if (dimension.number < 0) { node.style.marginLeft = dimension.number + dimension.unit; } return node; } } }); var spaceCharacter = function(width) { if (width >= 0.05555 && width <= 0.05556) { return "\u200A"; } else if (width >= 0.1666 && width <= 0.1667) { return "\u2009"; } else if (width >= 0.2222 && width <= 0.2223) { return "\u2005"; } else if (width >= 0.2777 && width <= 0.2778) { return "\u2005\u200A"; } else { return ""; } }; var invalidIdRegEx = /[^A-Za-z_0-9-]/g; defineFunction({ type: "label", names: ["\\label"], props: { numArgs: 1, argTypes: ["raw"] }, handler({ parser }, args) { return { type: "label", mode: parser.mode, string: args[0].string.replace(invalidIdRegEx, "") }; }, mathmlBuilder(group, style) { const node = new mathMLTree.MathNode("mrow", [], ["tml-label"]); if (group.string.length > 0) { node.setLabel(group.string); } return node; } }); var textModeLap = ["\\clap", "\\llap", "\\rlap"]; defineFunction({ type: "lap", names: ["\\mathllap", "\\mathrlap", "\\mathclap", "\\clap", "\\llap", "\\rlap"], props: { numArgs: 1, allowedInText: true }, handler: ({ parser, funcName, token }, args) => { if (textModeLap.includes(funcName)) { if (parser.settings.strict && parser.mode !== "text") { throw new ParseError(`{${funcName}} can be used only in text mode. Try \\math${funcName.slice(1)}`, token); } funcName = funcName.slice(1); } else { funcName = funcName.slice(5); } const body = args[0]; return { type: "lap", mode: parser.mode, alignment: funcName, body }; }, mathmlBuilder: (group, style) => { let strut; if (group.alignment === "llap") { const phantomInner = buildExpression(ordargument(group.body), style); const phantom = new mathMLTree.MathNode("mphantom", phantomInner); strut = new mathMLTree.MathNode("mpadded", [phantom]); strut.setAttribute("width", "0px"); } const inner2 = buildGroup$1(group.body, style); let node; if (group.alignment === "llap") { inner2.style.position = "absolute"; inner2.style.right = "0"; inner2.style.bottom = `0`; node = new mathMLTree.MathNode("mpadded", [strut, inner2]); } else { node = new mathMLTree.MathNode("mpadded", [inner2]); } if (group.alignment === "rlap") { if (group.body.body.length > 0 && group.body.body[0].type === "genfrac") { node.setAttribute("lspace", "0.16667em"); } } else { const offset2 = group.alignment === "llap" ? "-1" : "-0.5"; node.setAttribute("lspace", offset2 + "width"); if (group.alignment === "llap") { node.style.position = "relative"; } else { node.style.display = "flex"; node.style.justifyContent = "center"; } } node.setAttribute("width", "0px"); return node; } }); defineFunction({ type: "ordgroup", names: ["\\(", "$"], props: { numArgs: 0, allowedInText: true, allowedInMath: false }, handler({ funcName, parser }, args) { const outerMode = parser.mode; parser.switchMode("math"); const close2 = funcName === "\\(" ? "\\)" : "$"; const body = parser.parseExpression(false, close2); parser.expect(close2); parser.switchMode(outerMode); return { type: "ordgroup", mode: parser.mode, body }; } }); defineFunction({ type: "text", // Doesn't matter what this is. names: ["\\)", "\\]"], props: { numArgs: 0, allowedInText: true, allowedInMath: false }, handler(context, token) { throw new ParseError(`Mismatched ${context.funcName}`, token); } }); var chooseStyle = (group, style) => { switch (style.level) { case StyleLevel.DISPLAY: return group.display; case StyleLevel.TEXT: return group.text; case StyleLevel.SCRIPT: return group.script; case StyleLevel.SCRIPTSCRIPT: return group.scriptscript; default: return group.text; } }; defineFunction({ type: "mathchoice", names: ["\\mathchoice"], props: { numArgs: 4, primitive: true }, handler: ({ parser }, args) => { return { type: "mathchoice", mode: parser.mode, display: ordargument(args[0]), text: ordargument(args[1]), script: ordargument(args[2]), scriptscript: ordargument(args[3]) }; }, mathmlBuilder: (group, style) => { const body = chooseStyle(group, style); return buildExpressionRow(body, style); } }); var textAtomTypes = ["text", "textord", "mathord", "atom"]; var padding = (width) => { const node = new mathMLTree.MathNode("mspace"); node.setAttribute("width", width + "em"); return node; }; function mathmlBuilder$3(group, style) { let node; const inner2 = buildExpression(group.body, style); if (group.mclass === "minner") { node = new mathMLTree.MathNode("mpadded", inner2); } else if (group.mclass === "mord") { if (group.isCharacterBox || inner2[0].type === "mathord") { node = inner2[0]; node.type = "mi"; if (node.children.length === 1 && node.children[0].text && node.children[0].text === "\u2207") { node.setAttribute("mathvariant", "normal"); } } else { node = new mathMLTree.MathNode("mi", inner2); } } else { node = new mathMLTree.MathNode("mrow", inner2); if (group.mustPromote) { node = inner2[0]; node.type = "mo"; if (group.isCharacterBox && group.body[0].text && /[A-Za-z]/.test(group.body[0].text)) { node.setAttribute("mathvariant", "italic"); } } else { node = new mathMLTree.MathNode("mrow", inner2); } const doSpacing = style.level < 2; if (node.type === "mrow") { if (doSpacing) { if (group.mclass === "mbin") { node.children.unshift(padding(0.2222)); node.children.push(padding(0.2222)); } else if (group.mclass === "mrel") { node.children.unshift(padding(0.2778)); node.children.push(padding(0.2778)); } else if (group.mclass === "mpunct") { node.children.push(padding(0.1667)); } else if (group.mclass === "minner") { node.children.unshift(padding(0.0556)); node.children.push(padding(0.0556)); } } } else { if (group.mclass === "mbin") { node.attributes.lspace = doSpacing ? "0.2222em" : "0"; node.attributes.rspace = doSpacing ? "0.2222em" : "0"; } else if (group.mclass === "mrel") { node.attributes.lspace = doSpacing ? "0.2778em" : "0"; node.attributes.rspace = doSpacing ? "0.2778em" : "0"; } else if (group.mclass === "mpunct") { node.attributes.lspace = "0em"; node.attributes.rspace = doSpacing ? "0.1667em" : "0"; } else if (group.mclass === "mopen" || group.mclass === "mclose") { node.attributes.lspace = "0em"; node.attributes.rspace = "0em"; } else if (group.mclass === "minner" && doSpacing) { node.attributes.lspace = "0.0556em"; node.attributes.width = "+0.1111em"; } } if (!(group.mclass === "mopen" || group.mclass === "mclose")) { delete node.attributes.stretchy; delete node.attributes.form; } } return node; } defineFunction({ type: "mclass", names: [ "\\mathord", "\\mathbin", "\\mathrel", "\\mathopen", "\\mathclose", "\\mathpunct", "\\mathinner" ], props: { numArgs: 1, primitive: true }, handler({ parser, funcName }, args) { const body = args[0]; const isCharacterBox2 = utils.isCharacterBox(body); let mustPromote = true; const mord = { type: "mathord", text: "", mode: parser.mode }; const arr = body.body ? body.body : [body]; for (const arg of arr) { if (textAtomTypes.includes(arg.type)) { if (symbols[parser.mode][arg.text]) { mord.text += symbols[parser.mode][arg.text].replace; } else if (arg.text) { mord.text += arg.text; } else if (arg.body) { arg.body.map((e) => { mord.text += e.text; }); } } else { mustPromote = false; break; } } return { type: "mclass", mode: parser.mode, mclass: "m" + funcName.slice(5), body: ordargument(mustPromote ? mord : body), isCharacterBox: isCharacterBox2, mustPromote }; }, mathmlBuilder: mathmlBuilder$3 }); var binrelClass = (arg) => { const atom = arg.type === "ordgroup" && arg.body.length ? arg.body[0] : arg; if (atom.type === "atom" && (atom.family === "bin" || atom.family === "rel")) { return "m" + atom.family; } else { return "mord"; } }; defineFunction({ type: "mclass", names: ["\\@binrel"], props: { numArgs: 2 }, handler({ parser }, args) { return { type: "mclass", mode: parser.mode, mclass: binrelClass(args[0]), body: ordargument(args[1]), isCharacterBox: utils.isCharacterBox(args[1]) }; } }); defineFunction({ type: "mclass", names: ["\\stackrel", "\\overset", "\\underset"], props: { numArgs: 2 }, handler({ parser, funcName }, args) { const baseArg = args[1]; const shiftedArg = args[0]; const baseOp = { type: "op", mode: baseArg.mode, limits: true, alwaysHandleSupSub: true, parentIsSupSub: false, symbol: false, stack: true, suppressBaseShift: funcName !== "\\stackrel", body: ordargument(baseArg) }; return { type: "supsub", mode: shiftedArg.mode, base: baseOp, sup: funcName === "\\underset" ? null : shiftedArg, sub: funcName === "\\underset" ? shiftedArg : null }; }, mathmlBuilder: mathmlBuilder$3 }); var buildGroup = (el, style, noneNode) => { if (!el) { return noneNode; } const node = buildGroup$1(el, style); if (node.type === "mrow" && node.children.length === 0) { return noneNode; } return node; }; defineFunction({ type: "multiscript", names: ["\\sideset", "\\pres@cript"], // See macros.js for \prescript props: { numArgs: 3 }, handler({ parser, funcName, token }, args) { if (args[2].body.length === 0) { throw new ParseError(funcName + `cannot parse an empty base.`); } const base = args[2].body[0]; if (parser.settings.strict && funcName === "\\sideset" && !base.symbol) { throw new ParseError(`The base of \\sideset must be a big operator. Try \\prescript.`); } if (args[0].body.length > 0 && args[0].body[0].type !== "supsub" || args[1].body.length > 0 && args[1].body[0].type !== "supsub") { throw new ParseError("\\sideset can parse only subscripts and superscripts in its first two arguments", token); } const prescripts = args[0].body.length > 0 ? args[0].body[0] : null; const postscripts = args[1].body.length > 0 ? args[1].body[0] : null; if (!prescripts && !postscripts) { return base; } else if (!prescripts) { return { type: "styling", mode: parser.mode, scriptLevel: "text", body: [{ type: "supsub", mode: parser.mode, base, sup: postscripts.sup, sub: postscripts.sub }] }; } else { return { type: "multiscript", mode: parser.mode, isSideset: funcName === "\\sideset", prescripts, postscripts, base }; } }, mathmlBuilder(group, style) { const base = buildGroup$1(group.base, style); const prescriptsNode = new mathMLTree.MathNode("mprescripts"); const noneNode = new mathMLTree.MathNode("none"); let children = []; const preSub = buildGroup(group.prescripts.sub, style, noneNode); const preSup = buildGroup(group.prescripts.sup, style, noneNode); if (group.isSideset) { preSub.setAttribute("style", "text-align: left;"); preSup.setAttribute("style", "text-align: left;"); } if (group.postscripts) { const postSub = buildGroup(group.postscripts.sub, style, noneNode); const postSup = buildGroup(group.postscripts.sup, style, noneNode); children = [base, postSub, postSup, prescriptsNode, preSub, preSup]; } else { children = [base, prescriptsNode, preSub, preSup]; } return new mathMLTree.MathNode("mmultiscripts", children); } }); defineFunction({ type: "not", names: ["\\not"], props: { numArgs: 1, primitive: true, allowedInText: false }, handler({ parser }, args) { const isCharacterBox2 = utils.isCharacterBox(args[0]); let body; if (isCharacterBox2) { body = ordargument(args[0]); if (body[0].text.charAt(0) === "\\") { body[0].text = symbols.math[body[0].text].replace; } body[0].text = body[0].text.slice(0, 1) + "\u0338" + body[0].text.slice(1); } else { const notNode = { type: "textord", mode: "math", text: "\u0338" }; const kernNode = { type: "kern", mode: "math", dimension: { number: -0.6, unit: "em" } }; body = [notNode, kernNode, args[0]]; } return { type: "not", mode: parser.mode, body, isCharacterBox: isCharacterBox2 }; }, mathmlBuilder(group, style) { if (group.isCharacterBox) { const inner2 = buildExpression(group.body, style, true); return inner2[0]; } else { return buildExpressionRow(group.body, style); } } }); var ordAtomTypes = ["textord", "mathord", "atom"]; var noSuccessor = ["\\smallint"]; var ordTypes = ["textord", "mathord", "ordgroup", "close", "leftright", "font"]; var setSpacing = (node) => { node.attributes.lspace = "0.1667em"; node.attributes.rspace = "0.1667em"; }; var mathmlBuilder$2 = (group, style) => { let node; if (group.symbol) { node = new MathNode("mo", [makeText(group.name, group.mode)]); if (noSuccessor.includes(group.name)) { node.setAttribute("largeop", "false"); } else { node.setAttribute("movablelimits", "false"); } if (group.fromMathOp) { setSpacing(node); } } else if (group.body) { node = new MathNode("mo", buildExpression(group.body, style)); if (group.fromMathOp) { setSpacing(node); } } else { node = new MathNode("mi", [new TextNode2(group.name.slice(1))]); if (!group.parentIsSupSub) { const operator = new MathNode("mo", [makeText("\u2061", "text")]); const row = [node, operator]; if (group.needsLeadingSpace) { const lead = new MathNode("mspace"); lead.setAttribute("width", "0.1667em"); row.unshift(lead); } if (!group.isFollowedByDelimiter) { const trail = new MathNode("mspace"); trail.setAttribute("width", "0.1667em"); row.push(trail); } node = new MathNode("mrow", row); } } return node; }; var singleCharBigOps = { "\u220F": "\\prod", "\u2210": "\\coprod", "\u2211": "\\sum", "\u22C0": "\\bigwedge", "\u22C1": "\\bigvee", "\u22C2": "\\bigcap", "\u22C3": "\\bigcup", "\u2A00": "\\bigodot", "\u2A01": "\\bigoplus", "\u2A02": "\\bigotimes", "\u2A04": "\\biguplus", "\u2A05": "\\bigsqcap", "\u2A06": "\\bigsqcup", "\u2A03": "\\bigcupdot", "\u2A07": "\\bigdoublevee", "\u2A08": "\\bigdoublewedge", "\u2A09": "\\bigtimes" }; defineFunction({ type: "op", names: [ "\\coprod", "\\bigvee", "\\bigwedge", "\\biguplus", "\\bigcupplus", "\\bigcupdot", "\\bigcap", "\\bigcup", "\\bigdoublevee", "\\bigdoublewedge", "\\intop", "\\prod", "\\sum", "\\bigotimes", "\\bigoplus", "\\bigodot", "\\bigsqcap", "\\bigsqcup", "\\bigtimes", "\\smallint", "\u220F", "\u2210", "\u2211", "\u22C0", "\u22C1", "\u22C2", "\u22C3", "\u2A00", "\u2A01", "\u2A02", "\u2A04", "\u2A06" ], props: { numArgs: 0 }, handler: ({ parser, funcName }, args) => { let fName = funcName; if (fName.length === 1) { fName = singleCharBigOps[fName]; } return { type: "op", mode: parser.mode, limits: true, parentIsSupSub: false, symbol: true, stack: false, // This is true for \stackrel{}, not here. name: fName }; }, mathmlBuilder: mathmlBuilder$2 }); defineFunction({ type: "op", names: ["\\mathop"], props: { numArgs: 1, primitive: true }, handler: ({ parser }, args) => { const body = args[0]; const arr = body.body ? body.body : [body]; const isSymbol = arr.length === 1 && ordAtomTypes.includes(arr[0].type); return { type: "op", mode: parser.mode, limits: true, parentIsSupSub: false, symbol: isSymbol, fromMathOp: true, stack: false, name: isSymbol ? arr[0].text : null, body: isSymbol ? null : ordargument(body) }; }, mathmlBuilder: mathmlBuilder$2 }); var singleCharIntegrals = { "\u222B": "\\int", "\u222C": "\\iint", "\u222D": "\\iiint", "\u222E": "\\oint", "\u222F": "\\oiint", "\u2230": "\\oiiint", "\u2231": "\\intclockwise", "\u2232": "\\varointclockwise", "\u2A0C": "\\iiiint", "\u2A0D": "\\intbar", "\u2A0E": "\\intBar", "\u2A0F": "\\fint", "\u2A12": "\\rppolint", "\u2A13": "\\scpolint", "\u2A15": "\\pointint", "\u2A16": "\\sqint", "\u2A17": "\\intlarhk", "\u2A18": "\\intx", "\u2A19": "\\intcap", "\u2A1A": "\\intcup" }; defineFunction({ type: "op", names: [ "\\arcsin", "\\arccos", "\\arctan", "\\arctg", "\\arcctg", "\\arg", "\\ch", "\\cos", "\\cosec", "\\cosh", "\\cot", "\\cotg", "\\coth", "\\csc", "\\ctg", "\\cth", "\\deg", "\\dim", "\\exp", "\\hom", "\\ker", "\\lg", "\\ln", "\\log", "\\sec", "\\sin", "\\sinh", "\\sh", "\\sgn", "\\tan", "\\tanh", "\\tg", "\\th" ], props: { numArgs: 0 }, handler({ parser, funcName }) { const prevAtomType = parser.prevAtomType; const next = parser.gullet.future().text; return { type: "op", mode: parser.mode, limits: false, parentIsSupSub: false, symbol: false, stack: false, isFollowedByDelimiter: isDelimiter(next), needsLeadingSpace: prevAtomType.length > 0 && ordTypes.includes(prevAtomType), name: funcName }; }, mathmlBuilder: mathmlBuilder$2 }); defineFunction({ type: "op", names: ["\\det", "\\gcd", "\\inf", "\\lim", "\\max", "\\min", "\\Pr", "\\sup"], props: { numArgs: 0 }, handler({ parser, funcName }) { const prevAtomType = parser.prevAtomType; const next = parser.gullet.future().text; return { type: "op", mode: parser.mode, limits: true, parentIsSupSub: false, symbol: false, stack: false, isFollowedByDelimiter: isDelimiter(next), needsLeadingSpace: prevAtomType.length > 0 && ordTypes.includes(prevAtomType), name: funcName }; }, mathmlBuilder: mathmlBuilder$2 }); defineFunction({ type: "op", names: [ "\\int", "\\iint", "\\iiint", "\\iiiint", "\\oint", "\\oiint", "\\oiiint", "\\intclockwise", "\\varointclockwise", "\\intbar", "\\intBar", "\\fint", "\\rppolint", "\\scpolint", "\\pointint", "\\sqint", "\\intlarhk", "\\intx", "\\intcap", "\\intcup", "\u222B", "\u222C", "\u222D", "\u222E", "\u222F", "\u2230", "\u2231", "\u2232", "\u2A0C", "\u2A0D", "\u2A0E", "\u2A0F", "\u2A12", "\u2A13", "\u2A15", "\u2A16", "\u2A17", "\u2A18", "\u2A19", "\u2A1A" ], props: { numArgs: 0 }, handler({ parser, funcName }) { let fName = funcName; if (fName.length === 1) { fName = singleCharIntegrals[fName]; } return { type: "op", mode: parser.mode, limits: false, parentIsSupSub: false, symbol: true, stack: false, name: fName }; }, mathmlBuilder: mathmlBuilder$2 }); var mathmlBuilder$1 = (group, style) => { let expression = buildExpression(group.body, style.withFont("mathrm")); let isAllString = true; for (let i = 0; i < expression.length; i++) { let node = expression[i]; if (node instanceof mathMLTree.MathNode) { if (node.type === "mrow" && node.children.length === 1 && node.children[0] instanceof mathMLTree.MathNode) { node = node.children[0]; } switch (node.type) { case "mi": case "mn": case "ms": case "mtext": break; // Do nothing yet. case "mspace": { if (node.attributes.width) { const width = node.attributes.width.replace("em", ""); const ch = spaceCharacter(Number(width)); if (ch === "") { isAllString = false; } else { expression[i] = new mathMLTree.MathNode("mtext", [new mathMLTree.TextNode(ch)]); } } } break; case "mo": { const child = node.children[0]; if (node.children.length === 1 && child instanceof mathMLTree.TextNode) { child.text = child.text.replace(/\u2212/, "-").replace(/\u2217/, "*"); } else { isAllString = false; } break; } default: isAllString = false; } } else { isAllString = false; } } if (isAllString) { const word = expression.map((node) => node.toText()).join(""); expression = [new mathMLTree.TextNode(word)]; } else if (expression.length === 1 && ["mover", "munder"].includes(expression[0].type) && (expression[0].children[0].type === "mi" || expression[0].children[0].type === "mtext")) { expression[0].children[0].type = "mi"; if (group.parentIsSupSub) { return new mathMLTree.MathNode("mrow", expression); } else { const operator = new mathMLTree.MathNode("mo", [makeText("\u2061", "text")]); return mathMLTree.newDocumentFragment([expression[0], operator]); } } let wrapper; if (isAllString) { wrapper = new mathMLTree.MathNode("mi", expression); if (expression[0].text.length === 1) { wrapper.setAttribute("mathvariant", "normal"); } } else { wrapper = new mathMLTree.MathNode("mrow", expression); } if (!group.parentIsSupSub) { const operator = new mathMLTree.MathNode("mo", [makeText("\u2061", "text")]); const fragment = [wrapper, operator]; if (group.needsLeadingSpace) { const space = new mathMLTree.MathNode("mspace"); space.setAttribute("width", "0.1667em"); fragment.unshift(space); } if (!group.isFollowedByDelimiter) { const trail = new mathMLTree.MathNode("mspace"); trail.setAttribute("width", "0.1667em"); fragment.push(trail); } return mathMLTree.newDocumentFragment(fragment); } return wrapper; }; defineFunction({ type: "operatorname", names: ["\\operatorname@", "\\operatornamewithlimits"], props: { numArgs: 1, allowedInArgument: true }, handler: ({ parser, funcName }, args) => { const body = args[0]; const prevAtomType = parser.prevAtomType; const next = parser.gullet.future().text; return { type: "operatorname", mode: parser.mode, body: ordargument(body), alwaysHandleSupSub: funcName === "\\operatornamewithlimits", limits: false, parentIsSupSub: false, isFollowedByDelimiter: isDelimiter(next), needsLeadingSpace: prevAtomType.length > 0 && ordTypes.includes(prevAtomType) }; }, mathmlBuilder: mathmlBuilder$1 }); defineMacro( "\\operatorname", "\\@ifstar\\operatornamewithlimits\\operatorname@" ); defineFunctionBuilders({ type: "ordgroup", mathmlBuilder(group, style) { return buildExpressionRow(group.body, style, group.semisimple); } }); defineFunction({ type: "phantom", names: ["\\phantom"], props: { numArgs: 1, allowedInText: true }, handler: ({ parser }, args) => { const body = args[0]; return { type: "phantom", mode: parser.mode, body: ordargument(body) }; }, mathmlBuilder: (group, style) => { const inner2 = buildExpression(group.body, style); return new mathMLTree.MathNode("mphantom", inner2); } }); defineFunction({ type: "hphantom", names: ["\\hphantom"], props: { numArgs: 1, allowedInText: true }, handler: ({ parser }, args) => { const body = args[0]; return { type: "hphantom", mode: parser.mode, body }; }, mathmlBuilder: (group, style) => { const inner2 = buildExpression(ordargument(group.body), style); const phantom = new mathMLTree.MathNode("mphantom", inner2); const node = new mathMLTree.MathNode("mpadded", [phantom]); node.setAttribute("height", "0px"); node.setAttribute("depth", "0px"); return node; } }); defineFunction({ type: "vphantom", names: ["\\vphantom"], props: { numArgs: 1, allowedInText: true }, handler: ({ parser }, args) => { const body = args[0]; return { type: "vphantom", mode: parser.mode, body }; }, mathmlBuilder: (group, style) => { const inner2 = buildExpression(ordargument(group.body), style); const phantom = new mathMLTree.MathNode("mphantom", inner2); const node = new mathMLTree.MathNode("mpadded", [phantom]); node.setAttribute("width", "0px"); return node; } }); defineFunction({ type: "pmb", names: ["\\pmb"], props: { numArgs: 1, allowedInText: true }, handler({ parser }, args) { return { type: "pmb", mode: parser.mode, body: ordargument(args[0]) }; }, mathmlBuilder(group, style) { const inner2 = buildExpression(group.body, style); const node = wrapWithMstyle(inner2); node.setAttribute("style", "font-weight:bold"); return node; } }); var mathmlBuilder = (group, style) => { const newStyle = style.withLevel(StyleLevel.TEXT); const node = new mathMLTree.MathNode("mpadded", [buildGroup$1(group.body, newStyle)]); const dy = calculateSize(group.dy, style); node.setAttribute("voffset", dy.number + dy.unit); if (dy.number > 0) { node.style.padding = dy.number + dy.unit + " 0 0 0"; } else { node.style.padding = "0 0 " + Math.abs(dy.number) + dy.unit + " 0"; } return node; }; defineFunction({ type: "raise", names: ["\\raise", "\\lower"], props: { numArgs: 2, argTypes: ["size", "primitive"], primitive: true }, handler({ parser, funcName }, args) { const amount = assertNodeType(args[0], "size").value; if (funcName === "\\lower") { amount.number *= -1; } const body = args[1]; return { type: "raise", mode: parser.mode, dy: amount, body }; }, mathmlBuilder }); defineFunction({ type: "raise", names: ["\\raisebox"], props: { numArgs: 2, argTypes: ["size", "hbox"], allowedInText: true }, handler({ parser, funcName }, args) { const amount = assertNodeType(args[0], "size").value; const body = args[1]; return { type: "raise", mode: parser.mode, dy: amount, body }; }, mathmlBuilder }); defineFunction({ type: "ref", names: ["\\ref", "\\eqref"], props: { numArgs: 1, argTypes: ["raw"] }, handler({ parser, funcName }, args) { return { type: "ref", mode: parser.mode, funcName, string: args[0].string.replace(invalidIdRegEx, "") }; }, mathmlBuilder(group, style) { const classes = group.funcName === "\\ref" ? ["tml-ref"] : ["tml-ref", "tml-eqref"]; return new AnchorNode("#" + group.string, classes, null); } }); defineFunction({ type: "reflect", names: ["\\reflectbox"], props: { numArgs: 1, argTypes: ["hbox"], allowedInText: true }, handler({ parser }, args) { return { type: "reflect", mode: parser.mode, body: args[0] }; }, mathmlBuilder(group, style) { const node = buildGroup$1(group.body, style); node.style.transform = "scaleX(-1)"; return node; } }); defineFunction({ type: "internal", names: ["\\relax"], props: { numArgs: 0, allowedInText: true }, handler({ parser }) { return { type: "internal", mode: parser.mode }; } }); defineFunction({ type: "rule", names: ["\\rule"], props: { numArgs: 2, numOptionalArgs: 1, allowedInText: true, allowedInMath: true, argTypes: ["size", "size", "size"] }, handler({ parser }, args, optArgs) { const shift = optArgs[0]; const width = assertNodeType(args[0], "size"); const height = assertNodeType(args[1], "size"); return { type: "rule", mode: parser.mode, shift: shift && assertNodeType(shift, "size").value, width: width.value, height: height.value }; }, mathmlBuilder(group, style) { const width = calculateSize(group.width, style); const height = calculateSize(group.height, style); const shift = group.shift ? calculateSize(group.shift, style) : { number: 0, unit: "em" }; const color = style.color && style.getColor() || "black"; const rule = new mathMLTree.MathNode("mspace"); if (width.number > 0 && height.number > 0) { rule.setAttribute("mathbackground", color); } rule.setAttribute("width", width.number + width.unit); rule.setAttribute("height", height.number + height.unit); if (shift.number === 0) { return rule; } const wrapper = new mathMLTree.MathNode("mpadded", [rule]); if (shift.number >= 0) { wrapper.setAttribute("height", "+" + shift.number + shift.unit); } else { wrapper.setAttribute("height", shift.number + shift.unit); wrapper.setAttribute("depth", "+" + -shift.number + shift.unit); } wrapper.setAttribute("voffset", shift.number + shift.unit); return wrapper; } }); var sizeMap = { "\\tiny": 0.5, "\\sixptsize": 0.6, "\\Tiny": 0.6, "\\scriptsize": 0.7, "\\footnotesize": 0.8, "\\small": 0.9, "\\normalsize": 1, "\\large": 1.2, "\\Large": 1.44, "\\LARGE": 1.728, "\\huge": 2.074, "\\Huge": 2.488 }; defineFunction({ type: "sizing", names: [ "\\tiny", "\\sixptsize", "\\Tiny", "\\scriptsize", "\\footnotesize", "\\small", "\\normalsize", "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge" ], props: { numArgs: 0, allowedInText: true }, handler: ({ breakOnTokenText, funcName, parser }, args) => { if (parser.settings.strict && parser.mode === "math") { console.log(`Temml strict-mode warning: Command ${funcName} is invalid in math mode.`); } const body = parser.parseExpression(false, breakOnTokenText, true); return { type: "sizing", mode: parser.mode, funcName, body }; }, mathmlBuilder: (group, style) => { const newStyle = style.withFontSize(sizeMap[group.funcName]); const inner2 = buildExpression(group.body, newStyle); const node = wrapWithMstyle(inner2); const factor = (sizeMap[group.funcName] / style.fontSize).toFixed(4); node.setAttribute("mathsize", factor + "em"); return node; } }); defineFunction({ type: "smash", names: ["\\smash"], props: { numArgs: 1, numOptionalArgs: 1, allowedInText: true }, handler: ({ parser }, args, optArgs) => { let smashHeight = false; let smashDepth = false; const tbArg = optArgs[0] && assertNodeType(optArgs[0], "ordgroup"); if (tbArg) { let letter = ""; for (let i = 0; i < tbArg.body.length; ++i) { const node = tbArg.body[i]; letter = node.text; if (letter === "t") { smashHeight = true; } else if (letter === "b") { smashDepth = true; } else { smashHeight = false; smashDepth = false; break; } } } else { smashHeight = true; smashDepth = true; } const body = args[0]; return { type: "smash", mode: parser.mode, body, smashHeight, smashDepth }; }, mathmlBuilder: (group, style) => { const node = new mathMLTree.MathNode("mpadded", [buildGroup$1(group.body, style)]); if (group.smashHeight) { node.setAttribute("height", "0px"); } if (group.smashDepth) { node.setAttribute("depth", "0px"); } return node; } }); defineFunction({ type: "sqrt", names: ["\\sqrt"], props: { numArgs: 1, numOptionalArgs: 1 }, handler({ parser }, args, optArgs) { const index = optArgs[0]; const body = args[0]; return { type: "sqrt", mode: parser.mode, body, index }; }, mathmlBuilder(group, style) { const { body, index } = group; return index ? new mathMLTree.MathNode("mroot", [ buildGroup$1(body, style), buildGroup$1(index, style.incrementLevel()) ]) : new mathMLTree.MathNode("msqrt", [buildGroup$1(body, style)]); } }); var styleMap = { display: 0, text: 1, script: 2, scriptscript: 3 }; var styleAttributes = { display: ["0", "true"], text: ["0", "false"], script: ["1", "false"], scriptscript: ["2", "false"] }; defineFunction({ type: "styling", names: ["\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle"], props: { numArgs: 0, allowedInText: true, primitive: true }, handler({ breakOnTokenText, funcName, parser }, args) { const body = parser.parseExpression(true, breakOnTokenText, true); const scriptLevel2 = funcName.slice(1, funcName.length - 5); return { type: "styling", mode: parser.mode, // Figure out what scriptLevel to use by pulling out the scriptLevel from // the function name scriptLevel: scriptLevel2, body }; }, mathmlBuilder(group, style) { const newStyle = style.withLevel(styleMap[group.scriptLevel]); const inner2 = buildExpression(group.body, newStyle); const node = wrapWithMstyle(inner2); const attr = styleAttributes[group.scriptLevel]; node.setAttribute("scriptlevel", attr[0]); node.setAttribute("displaystyle", attr[1]); return node; } }); var symbolRegEx = /^m(over|under|underover)$/; defineFunctionBuilders({ type: "supsub", mathmlBuilder(group, style) { let isBrace = false; let isOver; let isSup; let appendApplyFunction = false; let appendSpace = false; let needsLeadingSpace = false; if (group.base && group.base.type === "horizBrace") { isSup = !!group.sup; if (isSup === group.base.isOver) { isBrace = true; isOver = group.base.isOver; } } if (group.base && !group.base.stack && (group.base.type === "op" || group.base.type === "operatorname")) { group.base.parentIsSupSub = true; appendApplyFunction = !group.base.symbol; appendSpace = appendApplyFunction && !group.isFollowedByDelimiter; needsLeadingSpace = group.base.needsLeadingSpace; } const children = group.base && group.base.stack ? [buildGroup$1(group.base.body[0], style)] : [buildGroup$1(group.base, style)]; const childStyle = style.inSubOrSup(); if (group.sub) { const sub = buildGroup$1(group.sub, childStyle); if (style.level === 3) { sub.setAttribute("scriptlevel", "2"); } children.push(sub); } if (group.sup) { const sup = buildGroup$1(group.sup, childStyle); if (style.level === 3) { sup.setAttribute("scriptlevel", "2"); } const testNode = sup.type === "mrow" ? sup.children[0] : sup; if (testNode && testNode.type === "mo" && testNode.classes.includes("tml-prime") && group.base && group.base.text && "fF".indexOf(group.base.text) > -1) { testNode.classes.push("prime-pad"); } children.push(sup); } let nodeType; if (isBrace) { nodeType = isOver ? "mover" : "munder"; } else if (!group.sub) { const base = group.base; if (base && base.type === "op" && base.limits && (style.level === StyleLevel.DISPLAY || base.alwaysHandleSupSub)) { nodeType = "mover"; } else if (base && base.type === "operatorname" && base.alwaysHandleSupSub && (base.limits || style.level === StyleLevel.DISPLAY)) { nodeType = "mover"; } else { nodeType = "msup"; } } else if (!group.sup) { const base = group.base; if (base && base.type === "op" && base.limits && (style.level === StyleLevel.DISPLAY || base.alwaysHandleSupSub)) { nodeType = "munder"; } else if (base && base.type === "operatorname" && base.alwaysHandleSupSub && (base.limits || style.level === StyleLevel.DISPLAY)) { nodeType = "munder"; } else { nodeType = "msub"; } } else { const base = group.base; if (base && (base.type === "op" && base.limits || base.type === "multiscript") && (style.level === StyleLevel.DISPLAY || base.alwaysHandleSupSub)) { nodeType = "munderover"; } else if (base && base.type === "operatorname" && base.alwaysHandleSupSub && (style.level === StyleLevel.DISPLAY || base.limits)) { nodeType = "munderover"; } else { nodeType = "msubsup"; } } let node = new mathMLTree.MathNode(nodeType, children); if (appendApplyFunction) { const operator = new mathMLTree.MathNode("mo", [makeText("\u2061", "text")]); if (needsLeadingSpace) { const space = new mathMLTree.MathNode("mspace"); space.setAttribute("width", "0.1667em"); node = mathMLTree.newDocumentFragment([space, node, operator]); } else { node = mathMLTree.newDocumentFragment([node, operator]); } if (appendSpace) { const space = new mathMLTree.MathNode("mspace"); space.setAttribute("width", "0.1667em"); node.children.push(space); } } else if (symbolRegEx.test(nodeType)) { node = new mathMLTree.MathNode("mrow", [node]); } return node; } }); var short = [ "\\shortmid", "\\nshortmid", "\\shortparallel", "\\nshortparallel", "\\smallsetminus" ]; var arrows = ["\\Rsh", "\\Lsh", "\\restriction"]; var isArrow = (str) => { if (str.length === 1) { const codePoint = str.codePointAt(0); return 8591 < codePoint && codePoint < 8704; } return str.indexOf("arrow") > -1 || str.indexOf("harpoon") > -1 || arrows.includes(str); }; defineFunctionBuilders({ type: "atom", mathmlBuilder(group, style) { const node = new mathMLTree.MathNode("mo", [makeText(group.text, group.mode)]); if (group.family === "punct") { node.setAttribute("separator", "true"); } else if (group.family === "open" || group.family === "close") { if (group.family === "open") { node.setAttribute("form", "prefix"); node.setAttribute("stretchy", "false"); } else if (group.family === "close") { node.setAttribute("form", "postfix"); node.setAttribute("stretchy", "false"); } } else if (group.text === "\\mid") { node.setAttribute("lspace", "0.22em"); node.setAttribute("rspace", "0.22em"); node.setAttribute("stretchy", "false"); } else if (group.family === "rel" && isArrow(group.text)) { node.setAttribute("stretchy", "false"); } else if (short.includes(group.text)) { node.setAttribute("mathsize", "70%"); } else if (group.text === ":") { node.attributes.lspace = "0.2222em"; node.attributes.rspace = "0.2222em"; } return node; } }); var fontMap = { // styles mathbf: "bold", mathrm: "normal", textit: "italic", mathit: "italic", mathnormal: "italic", // families mathbb: "double-struck", mathcal: "script", mathfrak: "fraktur", mathscr: "script", mathsf: "sans-serif", mathtt: "monospace" }; var getVariant = function(group, style) { if (style.fontFamily === "texttt") { return "monospace"; } else if (style.fontFamily === "textsc") { return "normal"; } else if (style.fontFamily === "textsf") { if (style.fontShape === "textit" && style.fontWeight === "textbf") { return "sans-serif-bold-italic"; } else if (style.fontShape === "textit") { return "sans-serif-italic"; } else if (style.fontWeight === "textbf") { return "sans-serif-bold"; } else { return "sans-serif"; } } else if (style.fontShape === "textit" && style.fontWeight === "textbf") { return "bold-italic"; } else if (style.fontShape === "textit") { return "italic"; } else if (style.fontWeight === "textbf") { return "bold"; } const font = style.font; if (!font || font === "mathnormal") { return null; } const mode = group.mode; switch (font) { case "mathit": return "italic"; case "mathrm": { const codePoint = group.text.codePointAt(0); return 939 < codePoint && codePoint < 975 ? "italic" : "normal"; } case "greekItalic": return "italic"; case "up@greek": return "normal"; case "boldsymbol": case "mathboldsymbol": return "bold-italic"; case "mathbf": return "bold"; case "mathbb": return "double-struck"; case "mathfrak": return "fraktur"; case "mathscr": case "mathcal": return "script"; case "mathsf": return "sans-serif"; case "mathsfit": return "sans-serif-italic"; case "mathtt": return "monospace"; } let text2 = group.text; if (symbols[mode][text2] && symbols[mode][text2].replace) { text2 = symbols[mode][text2].replace; } return Object.prototype.hasOwnProperty.call(fontMap, font) ? fontMap[font] : null; }; var script = Object.freeze({ B: 8426, // Offset from ASCII B to Unicode script B E: 8427, F: 8427, H: 8387, I: 8391, L: 8390, M: 8422, R: 8393, e: 8394, g: 8355, o: 8389 }); var frak = Object.freeze({ C: 8426, H: 8388, I: 8392, R: 8394, Z: 8398 }); var bbb = Object.freeze({ C: 8383, // blackboard bold H: 8389, N: 8391, P: 8393, Q: 8393, R: 8395, Z: 8394 }); var bold = Object.freeze({ "\u03F5": 119527, // lunate epsilon "\u03D1": 119564, // vartheta "\u03F0": 119534, // varkappa "\u03C6": 119577, // varphi "\u03F1": 119535, // varrho "\u03D6": 119563 // varpi }); var boldItalic = Object.freeze({ "\u03F5": 119643, // lunate epsilon "\u03D1": 119680, // vartheta "\u03F0": 119650, // varkappa "\u03C6": 119693, // varphi "\u03F1": 119651, // varrho "\u03D6": 119679 // varpi }); var boldsf = Object.freeze({ "\u03F5": 119701, // lunate epsilon "\u03D1": 119738, // vartheta "\u03F0": 119708, // varkappa "\u03C6": 119751, // varphi "\u03F1": 119709, // varrho "\u03D6": 119737 // varpi }); var bisf = Object.freeze({ "\u03F5": 119759, // lunate epsilon "\u03D1": 119796, // vartheta "\u03F0": 119766, // varkappa "\u03C6": 119809, // varphi "\u03F1": 119767, // varrho "\u03D6": 119795 // varpi }); var offset = Object.freeze({ upperCaseLatin: { // A-Z "normal": (ch) => { return 0; }, "bold": (ch) => { return 119743; }, "italic": (ch) => { return 119795; }, "bold-italic": (ch) => { return 119847; }, "script": (ch) => { return script[ch] || 119899; }, "script-bold": (ch) => { return 119951; }, "fraktur": (ch) => { return frak[ch] || 120003; }, "fraktur-bold": (ch) => { return 120107; }, "double-struck": (ch) => { return bbb[ch] || 120055; }, "sans-serif": (ch) => { return 120159; }, "sans-serif-bold": (ch) => { return 120211; }, "sans-serif-italic": (ch) => { return 120263; }, "sans-serif-bold-italic": (ch) => { return 120380; }, "monospace": (ch) => { return 120367; } }, lowerCaseLatin: { // a-z "normal": (ch) => { return 0; }, "bold": (ch) => { return 119737; }, "italic": (ch) => { return ch === "h" ? 8358 : 119789; }, "bold-italic": (ch) => { return 119841; }, "script": (ch) => { return script[ch] || 119893; }, "script-bold": (ch) => { return 119945; }, "fraktur": (ch) => { return 119997; }, "fraktur-bold": (ch) => { return 120101; }, "double-struck": (ch) => { return 120049; }, "sans-serif": (ch) => { return 120153; }, "sans-serif-bold": (ch) => { return 120205; }, "sans-serif-italic": (ch) => { return 120257; }, "sans-serif-bold-italic": (ch) => { return 120309; }, "monospace": (ch) => { return 120361; } }, upperCaseGreek: { // A-Ω "normal": (ch) => { return 0; }, "bold": (ch) => { return 119575; }, "italic": (ch) => { return 119633; }, // \boldsymbol actually returns upright bold for upperCaseGreek "bold-italic": (ch) => { return 119575; }, "script": (ch) => { return 0; }, "script-bold": (ch) => { return 0; }, "fraktur": (ch) => { return 0; }, "fraktur-bold": (ch) => { return 0; }, "double-struck": (ch) => { return 0; }, // Unicode has no code points for regular-weight san-serif Greek. Use bold. "sans-serif": (ch) => { return 119749; }, "sans-serif-bold": (ch) => { return 119749; }, "sans-serif-italic": (ch) => { return 0; }, "sans-serif-bold-italic": (ch) => { return 119807; }, "monospace": (ch) => { return 0; } }, lowerCaseGreek: { // α-ω "normal": (ch) => { return 0; }, "bold": (ch) => { return 119569; }, "italic": (ch) => { return 119627; }, "bold-italic": (ch) => { return ch === "\u03D5" ? 119678 : 119685; }, "script": (ch) => { return 0; }, "script-bold": (ch) => { return 0; }, "fraktur": (ch) => { return 0; }, "fraktur-bold": (ch) => { return 0; }, "double-struck": (ch) => { return 0; }, // Unicode has no code points for regular-weight san-serif Greek. Use bold. "sans-serif": (ch) => { return 119743; }, "sans-serif-bold": (ch) => { return 119743; }, "sans-serif-italic": (ch) => { return 0; }, "sans-serif-bold-italic": (ch) => { return 119801; }, "monospace": (ch) => { return 0; } }, varGreek: { // \varGamma, etc "normal": (ch) => { return 0; }, "bold": (ch) => { return bold[ch] || -51; }, "italic": (ch) => { return 0; }, "bold-italic": (ch) => { return boldItalic[ch] || 58; }, "script": (ch) => { return 0; }, "script-bold": (ch) => { return 0; }, "fraktur": (ch) => { return 0; }, "fraktur-bold": (ch) => { return 0; }, "double-struck": (ch) => { return 0; }, "sans-serif": (ch) => { return boldsf[ch] || 116; }, "sans-serif-bold": (ch) => { return boldsf[ch] || 116; }, "sans-serif-italic": (ch) => { return 0; }, "sans-serif-bold-italic": (ch) => { return bisf[ch] || 174; }, "monospace": (ch) => { return 0; } }, numeral: { // 0-9 "normal": (ch) => { return 0; }, "bold": (ch) => { return 120734; }, "italic": (ch) => { return 0; }, "bold-italic": (ch) => { return 0; }, "script": (ch) => { return 0; }, "script-bold": (ch) => { return 0; }, "fraktur": (ch) => { return 0; }, "fraktur-bold": (ch) => { return 0; }, "double-struck": (ch) => { return 120744; }, "sans-serif": (ch) => { return 120754; }, "sans-serif-bold": (ch) => { return 120764; }, "sans-serif-italic": (ch) => { return 0; }, "sans-serif-bold-italic": (ch) => { return 0; }, "monospace": (ch) => { return 120774; } } }); var variantChar = (ch, variant) => { const codePoint = ch.codePointAt(0); const block = 64 < codePoint && codePoint < 91 ? "upperCaseLatin" : 96 < codePoint && codePoint < 123 ? "lowerCaseLatin" : 912 < codePoint && codePoint < 938 ? "upperCaseGreek" : 944 < codePoint && codePoint < 970 || ch === "\u03D5" ? "lowerCaseGreek" : 120545 < codePoint && codePoint < 120572 || bold[ch] ? "varGreek" : 47 < codePoint && codePoint < 58 ? "numeral" : "other"; return block === "other" ? ch : String.fromCodePoint(codePoint + offset[block][variant](ch)); }; var smallCaps = Object.freeze({ a: "\u1D00", b: "\u0299", c: "\u1D04", d: "\u1D05", e: "\u1D07", f: "\uA730", g: "\u0262", h: "\u029C", i: "\u026A", j: "\u1D0A", k: "\u1D0B", l: "\u029F", m: "\u1D0D", n: "\u0274", o: "\u1D0F", p: "\u1D18", q: "\u01EB", r: "\u0280", s: "s", t: "\u1D1B", u: "\u1D1C", v: "\u1D20", w: "\u1D21", x: "x", y: "\u028F", z: "\u1D22" }); var numberRegEx = /^\d(?:[\d,.]*\d)?$/; var latinRegEx = /[A-Ba-z]/; var primes = /* @__PURE__ */ new Set([ "\\prime", "\\dprime", "\\trprime", "\\qprime", "\\backprime", "\\backdprime", "\\backtrprime" ]); var italicNumber = (text2, variant, tag) => { const mn = new mathMLTree.MathNode(tag, [text2]); const wrapper = new mathMLTree.MathNode("mstyle", [mn]); wrapper.style["font-style"] = "italic"; wrapper.style["font-family"] = "Cambria, 'Times New Roman', serif"; if (variant === "bold-italic") { wrapper.style["font-weight"] = "bold"; } return wrapper; }; defineFunctionBuilders({ type: "mathord", mathmlBuilder(group, style) { const text2 = makeText(group.text, group.mode, style); const codePoint = text2.text.codePointAt(0); const defaultVariant = 912 < codePoint && codePoint < 938 ? "normal" : "italic"; const variant = getVariant(group, style) || defaultVariant; if (variant === "script") { text2.text = variantChar(text2.text, variant); return new mathMLTree.MathNode("mi", [text2], [style.font]); } else if (variant !== "italic") { text2.text = variantChar(text2.text, variant); } let node = new mathMLTree.MathNode("mi", [text2]); if (variant === "normal") { node.setAttribute("mathvariant", "normal"); if (text2.text.length === 1) { node = new mathMLTree.MathNode("mrow", [node]); } } return node; } }); defineFunctionBuilders({ type: "textord", mathmlBuilder(group, style) { let ch = group.text; const codePoint = ch.codePointAt(0); if (style.fontFamily === "textsc") { if (96 < codePoint && codePoint < 123) { ch = smallCaps[ch]; } } const text2 = makeText(ch, group.mode, style); const variant = getVariant(group, style) || "normal"; let node; if (numberRegEx.test(group.text)) { const tag = group.mode === "text" ? "mtext" : "mn"; if (variant === "italic" || variant === "bold-italic") { return italicNumber(text2, variant, tag); } else { if (variant !== "normal") { text2.text = text2.text.split("").map((c) => variantChar(c, variant)).join(""); } node = new mathMLTree.MathNode(tag, [text2]); } } else if (group.mode === "text") { if (variant !== "normal") { text2.text = variantChar(text2.text, variant); } node = new mathMLTree.MathNode("mtext", [text2]); } else if (primes.has(group.text)) { node = new mathMLTree.MathNode("mo", [text2]); node.classes.push("tml-prime"); } else { const origText = text2.text; if (variant !== "italic") { text2.text = variantChar(text2.text, variant); } node = new mathMLTree.MathNode("mi", [text2]); if (text2.text === origText && latinRegEx.test(origText)) { node.setAttribute("mathvariant", "italic"); } } return node; } }); var cssSpace = { "\\nobreak": "nobreak", "\\allowbreak": "allowbreak" }; var regularSpace = { " ": {}, "\\ ": {}, "~": { className: "nobreak" }, "\\space": {}, "\\nobreakspace": { className: "nobreak" } }; defineFunctionBuilders({ type: "spacing", mathmlBuilder(group, style) { let node; if (Object.prototype.hasOwnProperty.call(regularSpace, group.text)) { node = new mathMLTree.MathNode("mtext", [new mathMLTree.TextNode("\xA0")]); } else if (Object.prototype.hasOwnProperty.call(cssSpace, group.text)) { node = new mathMLTree.MathNode("mo"); if (group.text === "\\nobreak") { node.setAttribute("linebreak", "nobreak"); } } else { throw new ParseError(`Unknown type of space "${group.text}"`); } return node; } }); defineFunctionBuilders({ type: "tag" }); var textFontFamilies = { "\\text": void 0, "\\textrm": "textrm", "\\textsf": "textsf", "\\texttt": "texttt", "\\textnormal": "textrm", "\\textsc": "textsc" // small caps }; var textFontWeights = { "\\textbf": "textbf", "\\textmd": "textmd" }; var textFontShapes = { "\\textit": "textit", "\\textup": "textup" }; var styleWithFont = (group, style) => { const font = group.font; if (!font) { return style; } else if (textFontFamilies[font]) { return style.withTextFontFamily(textFontFamilies[font]); } else if (textFontWeights[font]) { return style.withTextFontWeight(textFontWeights[font]); } else if (font === "\\emph") { return style.fontShape === "textit" ? style.withTextFontShape("textup") : style.withTextFontShape("textit"); } return style.withTextFontShape(textFontShapes[font]); }; defineFunction({ type: "text", names: [ // Font families "\\text", "\\textrm", "\\textsf", "\\texttt", "\\textnormal", "\\textsc", // Font weights "\\textbf", "\\textmd", // Font Shapes "\\textit", "\\textup", "\\emph" ], props: { numArgs: 1, argTypes: ["text"], allowedInArgument: true, allowedInText: true }, handler({ parser, funcName }, args) { const body = args[0]; return { type: "text", mode: parser.mode, body: ordargument(body), font: funcName }; }, mathmlBuilder(group, style) { const newStyle = styleWithFont(group, style); const mrow = buildExpressionRow(group.body, newStyle); return consolidateText(mrow); } }); defineFunction({ type: "vcenter", names: ["\\vcenter"], props: { numArgs: 1, argTypes: ["original"], allowedInText: false }, handler({ parser }, args) { return { type: "vcenter", mode: parser.mode, body: args[0] }; }, mathmlBuilder(group, style) { const mtd = new mathMLTree.MathNode("mtd", [buildGroup$1(group.body, style)]); mtd.style.padding = "0"; const mtr = new mathMLTree.MathNode("mtr", [mtd]); return new mathMLTree.MathNode("mtable", [mtr]); } }); defineFunction({ type: "verb", names: ["\\verb"], props: { numArgs: 0, allowedInText: true }, handler(context, args, optArgs) { throw new ParseError("\\verb ended by end of line instead of matching delimiter"); }, mathmlBuilder(group, style) { const text2 = new mathMLTree.TextNode(makeVerb(group)); const node = new mathMLTree.MathNode("mtext", [text2]); node.setAttribute("mathvariant", "monospace"); return node; } }); var makeVerb = (group) => group.body.replace(/ /g, group.star ? "\u2423" : "\xA0"); var functions = _functions; var spaceRegexString = "[ \r\n ]"; var controlWordRegexString = "\\\\[a-zA-Z@]+"; var controlSymbolRegexString = "\\\\[^\uD800-\uDFFF]"; var controlWordWhitespaceRegexString = `(${controlWordRegexString})${spaceRegexString}*`; var controlSpaceRegexString = "\\\\(\n|[ \r ]+\n?)[ \r ]*"; var combiningDiacriticalMarkString = "[\u0300-\u036F]"; var combiningDiacriticalMarksEndRegex = new RegExp(`${combiningDiacriticalMarkString}+$`); var tokenRegexString = `(${spaceRegexString}+)|${controlSpaceRegexString}|([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]${combiningDiacriticalMarkString}*|[\uD800-\uDBFF][\uDC00-\uDFFF]${combiningDiacriticalMarkString}*|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5|${controlWordWhitespaceRegexString}|${controlSymbolRegexString})`; var Lexer = class { constructor(input, settings) { this.input = input; this.settings = settings; this.tokenRegex = new RegExp(tokenRegexString, "g"); this.catcodes = { "%": 14, // comment character "~": 13 // active character }; } setCatcode(char, code) { this.catcodes[char] = code; } /** * This function lexes a single token. */ lex() { const input = this.input; const pos = this.tokenRegex.lastIndex; if (pos === input.length) { return new Token("EOF", new SourceLocation(this, pos, pos)); } const match = this.tokenRegex.exec(input); if (match === null || match.index !== pos) { throw new ParseError( `Unexpected character: '${input[pos]}'`, new Token(input[pos], new SourceLocation(this, pos, pos + 1)) ); } const text2 = match[6] || match[3] || (match[2] ? "\\ " : " "); if (this.catcodes[text2] === 14) { const nlIndex = input.indexOf("\n", this.tokenRegex.lastIndex); if (nlIndex === -1) { this.tokenRegex.lastIndex = input.length; if (this.settings.strict) { throw new ParseError("% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode"); } } else { this.tokenRegex.lastIndex = nlIndex + 1; } return this.lex(); } return new Token(text2, new SourceLocation(this, pos, this.tokenRegex.lastIndex)); } }; var Namespace = class { /** * Both arguments are optional. The first argument is an object of * built-in mappings which never change. The second argument is an object * of initial (global-level) mappings, which will constantly change * according to any global/top-level `set`s done. */ constructor(builtins = {}, globalMacros = {}) { this.current = globalMacros; this.builtins = builtins; this.undefStack = []; } /** * Start a new nested group, affecting future local `set`s. */ beginGroup() { this.undefStack.push({}); } /** * End current nested group, restoring values before the group began. */ endGroup() { if (this.undefStack.length === 0) { throw new ParseError( "Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug" ); } const undefs = this.undefStack.pop(); for (const undef in undefs) { if (Object.prototype.hasOwnProperty.call(undefs, undef)) { if (undefs[undef] === void 0) { delete this.current[undef]; } else { this.current[undef] = undefs[undef]; } } } } /** * Detect whether `name` has a definition. Equivalent to * `get(name) != null`. */ has(name) { return Object.prototype.hasOwnProperty.call(this.current, name) || Object.prototype.hasOwnProperty.call(this.builtins, name); } /** * Get the current value of a name, or `undefined` if there is no value. * * Note: Do not use `if (namespace.get(...))` to detect whether a macro * is defined, as the definition may be the empty string which evaluates * to `false` in JavaScript. Use `if (namespace.get(...) != null)` or * `if (namespace.has(...))`. */ get(name) { if (Object.prototype.hasOwnProperty.call(this.current, name)) { return this.current[name]; } else { return this.builtins[name]; } } /** * Set the current value of a name, and optionally set it globally too. * Local set() sets the current value and (when appropriate) adds an undo * operation to the undo stack. Global set() may change the undo * operation at every level, so takes time linear in their number. */ set(name, value, global = false) { if (global) { for (let i = 0; i < this.undefStack.length; i++) { delete this.undefStack[i][name]; } if (this.undefStack.length > 0) { this.undefStack[this.undefStack.length - 1][name] = value; } } else { const top = this.undefStack[this.undefStack.length - 1]; if (top && !Object.prototype.hasOwnProperty.call(top, name)) { top[name] = this.current[name]; } } this.current[name] = value; } }; var implicitCommands = { "^": true, // Parser.js _: true, // Parser.js "\\limits": true, // Parser.js "\\nolimits": true // Parser.js }; var MacroExpander = class { constructor(input, settings, mode) { this.settings = settings; this.expansionCount = 0; this.feed(input); this.macros = new Namespace(macros, settings.macros); this.mode = mode; this.stack = []; } /** * Feed a new input string to the same MacroExpander * (with existing macros etc.). */ feed(input) { this.lexer = new Lexer(input, this.settings); } /** * Switches between "text" and "math" modes. */ switchMode(newMode) { this.mode = newMode; } /** * Start a new group nesting within all namespaces. */ beginGroup() { this.macros.beginGroup(); } /** * End current group nesting within all namespaces. */ endGroup() { this.macros.endGroup(); } /** * Returns the topmost token on the stack, without expanding it. * Similar in behavior to TeX's `\futurelet`. */ future() { if (this.stack.length === 0) { this.pushToken(this.lexer.lex()); } return this.stack[this.stack.length - 1]; } /** * Remove and return the next unexpanded token. */ popToken() { this.future(); return this.stack.pop(); } /** * Add a given token to the token stack. In particular, this get be used * to put back a token returned from one of the other methods. */ pushToken(token) { this.stack.push(token); } /** * Append an array of tokens to the token stack. */ pushTokens(tokens) { this.stack.push(...tokens); } /** * Find an macro argument without expanding tokens and append the array of * tokens to the token stack. Uses Token as a container for the result. */ scanArgument(isOptional) { let start; let end; let tokens; if (isOptional) { this.consumeSpaces(); if (this.future().text !== "[") { return null; } start = this.popToken(); ({ tokens, end } = this.consumeArg(["]"])); } else { ({ tokens, start, end } = this.consumeArg()); } this.pushToken(new Token("EOF", end.loc)); this.pushTokens(tokens); return start.range(end, ""); } /** * Consume all following space tokens, without expansion. */ consumeSpaces() { for (; ; ) { const token = this.future(); if (token.text === " ") { this.stack.pop(); } else { break; } } } /** * Consume an argument from the token stream, and return the resulting array * of tokens and start/end token. */ consumeArg(delims) { const tokens = []; const isDelimited = delims && delims.length > 0; if (!isDelimited) { this.consumeSpaces(); } const start = this.future(); let tok; let depth = 0; let match = 0; do { tok = this.popToken(); tokens.push(tok); if (tok.text === "{") { ++depth; } else if (tok.text === "}") { --depth; if (depth === -1) { throw new ParseError("Extra }", tok); } } else if (tok.text === "EOF") { throw new ParseError( "Unexpected end of input in a macro argument, expected '" + (delims && isDelimited ? delims[match] : "}") + "'", tok ); } if (delims && isDelimited) { if ((depth === 0 || depth === 1 && delims[match] === "{") && tok.text === delims[match]) { ++match; if (match === delims.length) { tokens.splice(-match, match); break; } } else { match = 0; } } } while (depth !== 0 || isDelimited); if (start.text === "{" && tokens[tokens.length - 1].text === "}") { tokens.pop(); tokens.shift(); } tokens.reverse(); return { tokens, start, end: tok }; } /** * Consume the specified number of (delimited) arguments from the token * stream and return the resulting array of arguments. */ consumeArgs(numArgs, delimiters2) { if (delimiters2) { if (delimiters2.length !== numArgs + 1) { throw new ParseError("The length of delimiters doesn't match the number of args!"); } const delims = delimiters2[0]; for (let i = 0; i < delims.length; i++) { const tok = this.popToken(); if (delims[i] !== tok.text) { throw new ParseError("Use of the macro doesn't match its definition", tok); } } } const args = []; for (let i = 0; i < numArgs; i++) { args.push(this.consumeArg(delimiters2 && delimiters2[i + 1]).tokens); } return args; } /** * Expand the next token only once if possible. * * If the token is expanded, the resulting tokens will be pushed onto * the stack in reverse order, and the number of such tokens will be * returned. This number might be zero or positive. * * If not, the return value is `false`, and the next token remains at the * top of the stack. * * In either case, the next token will be on the top of the stack, * or the stack will be empty (in case of empty expansion * and no other tokens). * * Used to implement `expandAfterFuture` and `expandNextToken`. * * If expandableOnly, only expandable tokens are expanded and * an undefined control sequence results in an error. */ expandOnce(expandableOnly) { const topToken = this.popToken(); const name = topToken.text; const expansion = !topToken.noexpand ? this._getExpansion(name) : null; if (expansion == null || expandableOnly && expansion.unexpandable) { if (expandableOnly && expansion == null && name[0] === "\\" && !this.isDefined(name)) { throw new ParseError("Undefined control sequence: " + name); } this.pushToken(topToken); return false; } this.expansionCount++; if (this.expansionCount > this.settings.maxExpand) { throw new ParseError( "Too many expansions: infinite loop or need to increase maxExpand setting" ); } let tokens = expansion.tokens; const args = this.consumeArgs(expansion.numArgs, expansion.delimiters); if (expansion.numArgs) { tokens = tokens.slice(); for (let i = tokens.length - 1; i >= 0; --i) { let tok = tokens[i]; if (tok.text === "#") { if (i === 0) { throw new ParseError("Incomplete placeholder at end of macro body", tok); } tok = tokens[--i]; if (tok.text === "#") { tokens.splice(i + 1, 1); } else if (/^[1-9]$/.test(tok.text)) { tokens.splice(i, 2, ...args[+tok.text - 1]); } else { throw new ParseError("Not a valid argument number", tok); } } } } this.pushTokens(tokens); return tokens.length; } /** * Expand the next token only once (if possible), and return the resulting * top token on the stack (without removing anything from the stack). * Similar in behavior to TeX's `\expandafter\futurelet`. * Equivalent to expandOnce() followed by future(). */ expandAfterFuture() { this.expandOnce(); return this.future(); } /** * Recursively expand first token, then return first non-expandable token. */ expandNextToken() { for (; ; ) { if (this.expandOnce() === false) { const token = this.stack.pop(); if (token.treatAsRelax) { token.text = "\\relax"; } return token; } } throw new Error(); } /** * Fully expand the given macro name and return the resulting list of * tokens, or return `undefined` if no such macro is defined. */ expandMacro(name) { return this.macros.has(name) ? this.expandTokens([new Token(name)]) : void 0; } /** * Fully expand the given token stream and return the resulting list of * tokens. Note that the input tokens are in reverse order, but the * output tokens are in forward order. */ expandTokens(tokens) { const output = []; const oldStackLength = this.stack.length; this.pushTokens(tokens); while (this.stack.length > oldStackLength) { if (this.expandOnce(true) === false) { const token = this.stack.pop(); if (token.treatAsRelax) { token.noexpand = false; token.treatAsRelax = false; } output.push(token); } } return output; } /** * Fully expand the given macro name and return the result as a string, * or return `undefined` if no such macro is defined. */ expandMacroAsText(name) { const tokens = this.expandMacro(name); if (tokens) { return tokens.map((token) => token.text).join(""); } else { return tokens; } } /** * Returns the expanded macro as a reversed array of tokens and a macro * argument count. Or returns `null` if no such macro. */ _getExpansion(name) { const definition = this.macros.get(name); if (definition == null) { return definition; } if (name.length === 1) { const catcode = this.lexer.catcodes[name]; if (catcode != null && catcode !== 13) { return; } } const expansion = typeof definition === "function" ? definition(this) : definition; if (typeof expansion === "string") { let numArgs = 0; if (expansion.indexOf("#") !== -1) { const stripped = expansion.replace(/##/g, ""); while (stripped.indexOf("#" + (numArgs + 1)) !== -1) { ++numArgs; } } const bodyLexer = new Lexer(expansion, this.settings); const tokens = []; let tok = bodyLexer.lex(); while (tok.text !== "EOF") { tokens.push(tok); tok = bodyLexer.lex(); } tokens.reverse(); const expanded = { tokens, numArgs }; return expanded; } return expansion; } /** * Determine whether a command is currently "defined" (has some * functionality), meaning that it's a macro (in the current group), * a function, a symbol, or one of the special commands listed in * `implicitCommands`. */ isDefined(name) { return this.macros.has(name) || Object.prototype.hasOwnProperty.call(functions, name) || Object.prototype.hasOwnProperty.call(symbols.math, name) || Object.prototype.hasOwnProperty.call(symbols.text, name) || Object.prototype.hasOwnProperty.call(implicitCommands, name); } /** * Determine whether a command is expandable. */ isExpandable(name) { const macro = this.macros.get(name); return macro != null ? typeof macro === "string" || typeof macro === "function" || !macro.unexpandable : Object.prototype.hasOwnProperty.call(functions, name) && !functions[name].primitive; } }; var unicodeSubRegEx = /^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/; var uSubsAndSups = Object.freeze({ "\u208A": "+", "\u208B": "-", "\u208C": "=", "\u208D": "(", "\u208E": ")", "\u2080": "0", "\u2081": "1", "\u2082": "2", "\u2083": "3", "\u2084": "4", "\u2085": "5", "\u2086": "6", "\u2087": "7", "\u2088": "8", "\u2089": "9", "\u2090": "a", "\u2091": "e", "\u2095": "h", "\u1D62": "i", "\u2C7C": "j", "\u2096": "k", "\u2097": "l", "\u2098": "m", "\u2099": "n", "\u2092": "o", "\u209A": "p", "\u1D63": "r", "\u209B": "s", "\u209C": "t", "\u1D64": "u", "\u1D65": "v", "\u2093": "x", "\u1D66": "\u03B2", "\u1D67": "\u03B3", "\u1D68": "\u03C1", "\u1D69": "\u03D5", "\u1D6A": "\u03C7", "\u207A": "+", "\u207B": "-", "\u207C": "=", "\u207D": "(", "\u207E": ")", "\u2070": "0", "\xB9": "1", "\xB2": "2", "\xB3": "3", "\u2074": "4", "\u2075": "5", "\u2076": "6", "\u2077": "7", "\u2078": "8", "\u2079": "9", "\u1D2C": "A", "\u1D2E": "B", "\u1D30": "D", "\u1D31": "E", "\u1D33": "G", "\u1D34": "H", "\u1D35": "I", "\u1D36": "J", "\u1D37": "K", "\u1D38": "L", "\u1D39": "M", "\u1D3A": "N", "\u1D3C": "O", "\u1D3E": "P", "\u1D3F": "R", "\u1D40": "T", "\u1D41": "U", "\u2C7D": "V", "\u1D42": "W", "\u1D43": "a", "\u1D47": "b", "\u1D9C": "c", "\u1D48": "d", "\u1D49": "e", "\u1DA0": "f", "\u1D4D": "g", "\u02B0": "h", "\u2071": "i", "\u02B2": "j", "\u1D4F": "k", "\u02E1": "l", "\u1D50": "m", "\u207F": "n", "\u1D52": "o", "\u1D56": "p", "\u02B3": "r", "\u02E2": "s", "\u1D57": "t", "\u1D58": "u", "\u1D5B": "v", "\u02B7": "w", "\u02E3": "x", "\u02B8": "y", "\u1DBB": "z", "\u1D5D": "\u03B2", "\u1D5E": "\u03B3", "\u1D5F": "\u03B4", "\u1D60": "\u03D5", "\u1D61": "\u03C7", "\u1DBF": "\u03B8" }); var asciiFromScript = Object.freeze({ "\u{1D49C}": "A", "\u212C": "B", "\u{1D49E}": "C", "\u{1D49F}": "D", "\u2130": "E", "\u2131": "F", "\u{1D4A2}": "G", "\u210B": "H", "\u2110": "I", "\u{1D4A5}": "J", "\u{1D4A6}": "K", "\u2112": "L", "\u2133": "M", "\u{1D4A9}": "N", "\u{1D4AA}": "O", "\u{1D4AB}": "P", "\u{1D4AC}": "Q", "\u211B": "R", "\u{1D4AE}": "S", "\u{1D4AF}": "T", "\u{1D4B0}": "U", "\u{1D4B1}": "V", "\u{1D4B2}": "W", "\u{1D4B3}": "X", "\u{1D4B4}": "Y", "\u{1D4B5}": "Z" }); var unicodeAccents = { "\u0301": { text: "\\'", math: "\\acute" }, "\u0300": { text: "\\`", math: "\\grave" }, "\u0308": { text: '\\"', math: "\\ddot" }, "\u0303": { text: "\\~", math: "\\tilde" }, "\u0304": { text: "\\=", math: "\\bar" }, "\u0306": { text: "\\u", math: "\\breve" }, "\u030C": { text: "\\v", math: "\\check" }, "\u0302": { text: "\\^", math: "\\hat" }, "\u0307": { text: "\\.", math: "\\dot" }, "\u030A": { text: "\\r", math: "\\mathring" }, "\u030B": { text: "\\H" }, "\u0327": { text: "\\c" } }; var unicodeSymbols = { "\xE1": "a\u0301", "\xE0": "a\u0300", "\xE4": "a\u0308", "\u01DF": "a\u0308\u0304", "\xE3": "a\u0303", "\u0101": "a\u0304", "\u0103": "a\u0306", "\u1EAF": "a\u0306\u0301", "\u1EB1": "a\u0306\u0300", "\u1EB5": "a\u0306\u0303", "\u01CE": "a\u030C", "\xE2": "a\u0302", "\u1EA5": "a\u0302\u0301", "\u1EA7": "a\u0302\u0300", "\u1EAB": "a\u0302\u0303", "\u0227": "a\u0307", "\u01E1": "a\u0307\u0304", "\xE5": "a\u030A", "\u01FB": "a\u030A\u0301", "\u1E03": "b\u0307", "\u0107": "c\u0301", "\u010D": "c\u030C", "\u0109": "c\u0302", "\u010B": "c\u0307", "\u010F": "d\u030C", "\u1E0B": "d\u0307", "\xE9": "e\u0301", "\xE8": "e\u0300", "\xEB": "e\u0308", "\u1EBD": "e\u0303", "\u0113": "e\u0304", "\u1E17": "e\u0304\u0301", "\u1E15": "e\u0304\u0300", "\u0115": "e\u0306", "\u011B": "e\u030C", "\xEA": "e\u0302", "\u1EBF": "e\u0302\u0301", "\u1EC1": "e\u0302\u0300", "\u1EC5": "e\u0302\u0303", "\u0117": "e\u0307", "\u1E1F": "f\u0307", "\u01F5": "g\u0301", "\u1E21": "g\u0304", "\u011F": "g\u0306", "\u01E7": "g\u030C", "\u011D": "g\u0302", "\u0121": "g\u0307", "\u1E27": "h\u0308", "\u021F": "h\u030C", "\u0125": "h\u0302", "\u1E23": "h\u0307", "\xED": "i\u0301", "\xEC": "i\u0300", "\xEF": "i\u0308", "\u1E2F": "i\u0308\u0301", "\u0129": "i\u0303", "\u012B": "i\u0304", "\u012D": "i\u0306", "\u01D0": "i\u030C", "\xEE": "i\u0302", "\u01F0": "j\u030C", "\u0135": "j\u0302", "\u1E31": "k\u0301", "\u01E9": "k\u030C", "\u013A": "l\u0301", "\u013E": "l\u030C", "\u1E3F": "m\u0301", "\u1E41": "m\u0307", "\u0144": "n\u0301", "\u01F9": "n\u0300", "\xF1": "n\u0303", "\u0148": "n\u030C", "\u1E45": "n\u0307", "\xF3": "o\u0301", "\xF2": "o\u0300", "\xF6": "o\u0308", "\u022B": "o\u0308\u0304", "\xF5": "o\u0303", "\u1E4D": "o\u0303\u0301", "\u1E4F": "o\u0303\u0308", "\u022D": "o\u0303\u0304", "\u014D": "o\u0304", "\u1E53": "o\u0304\u0301", "\u1E51": "o\u0304\u0300", "\u014F": "o\u0306", "\u01D2": "o\u030C", "\xF4": "o\u0302", "\u1ED1": "o\u0302\u0301", "\u1ED3": "o\u0302\u0300", "\u1ED7": "o\u0302\u0303", "\u022F": "o\u0307", "\u0231": "o\u0307\u0304", "\u0151": "o\u030B", "\u1E55": "p\u0301", "\u1E57": "p\u0307", "\u0155": "r\u0301", "\u0159": "r\u030C", "\u1E59": "r\u0307", "\u015B": "s\u0301", "\u1E65": "s\u0301\u0307", "\u0161": "s\u030C", "\u1E67": "s\u030C\u0307", "\u015D": "s\u0302", "\u1E61": "s\u0307", "\u1E97": "t\u0308", "\u0165": "t\u030C", "\u1E6B": "t\u0307", "\xFA": "u\u0301", "\xF9": "u\u0300", "\xFC": "u\u0308", "\u01D8": "u\u0308\u0301", "\u01DC": "u\u0308\u0300", "\u01D6": "u\u0308\u0304", "\u01DA": "u\u0308\u030C", "\u0169": "u\u0303", "\u1E79": "u\u0303\u0301", "\u016B": "u\u0304", "\u1E7B": "u\u0304\u0308", "\u016D": "u\u0306", "\u01D4": "u\u030C", "\xFB": "u\u0302", "\u016F": "u\u030A", "\u0171": "u\u030B", "\u1E7D": "v\u0303", "\u1E83": "w\u0301", "\u1E81": "w\u0300", "\u1E85": "w\u0308", "\u0175": "w\u0302", "\u1E87": "w\u0307", "\u1E98": "w\u030A", "\u1E8D": "x\u0308", "\u1E8B": "x\u0307", "\xFD": "y\u0301", "\u1EF3": "y\u0300", "\xFF": "y\u0308", "\u1EF9": "y\u0303", "\u0233": "y\u0304", "\u0177": "y\u0302", "\u1E8F": "y\u0307", "\u1E99": "y\u030A", "\u017A": "z\u0301", "\u017E": "z\u030C", "\u1E91": "z\u0302", "\u017C": "z\u0307", "\xC1": "A\u0301", "\xC0": "A\u0300", "\xC4": "A\u0308", "\u01DE": "A\u0308\u0304", "\xC3": "A\u0303", "\u0100": "A\u0304", "\u0102": "A\u0306", "\u1EAE": "A\u0306\u0301", "\u1EB0": "A\u0306\u0300", "\u1EB4": "A\u0306\u0303", "\u01CD": "A\u030C", "\xC2": "A\u0302", "\u1EA4": "A\u0302\u0301", "\u1EA6": "A\u0302\u0300", "\u1EAA": "A\u0302\u0303", "\u0226": "A\u0307", "\u01E0": "A\u0307\u0304", "\xC5": "A\u030A", "\u01FA": "A\u030A\u0301", "\u1E02": "B\u0307", "\u0106": "C\u0301", "\u010C": "C\u030C", "\u0108": "C\u0302", "\u010A": "C\u0307", "\u010E": "D\u030C", "\u1E0A": "D\u0307", "\xC9": "E\u0301", "\xC8": "E\u0300", "\xCB": "E\u0308", "\u1EBC": "E\u0303", "\u0112": "E\u0304", "\u1E16": "E\u0304\u0301", "\u1E14": "E\u0304\u0300", "\u0114": "E\u0306", "\u011A": "E\u030C", "\xCA": "E\u0302", "\u1EBE": "E\u0302\u0301", "\u1EC0": "E\u0302\u0300", "\u1EC4": "E\u0302\u0303", "\u0116": "E\u0307", "\u1E1E": "F\u0307", "\u01F4": "G\u0301", "\u1E20": "G\u0304", "\u011E": "G\u0306", "\u01E6": "G\u030C", "\u011C": "G\u0302", "\u0120": "G\u0307", "\u1E26": "H\u0308", "\u021E": "H\u030C", "\u0124": "H\u0302", "\u1E22": "H\u0307", "\xCD": "I\u0301", "\xCC": "I\u0300", "\xCF": "I\u0308", "\u1E2E": "I\u0308\u0301", "\u0128": "I\u0303", "\u012A": "I\u0304", "\u012C": "I\u0306", "\u01CF": "I\u030C", "\xCE": "I\u0302", "\u0130": "I\u0307", "\u0134": "J\u0302", "\u1E30": "K\u0301", "\u01E8": "K\u030C", "\u0139": "L\u0301", "\u013D": "L\u030C", "\u1E3E": "M\u0301", "\u1E40": "M\u0307", "\u0143": "N\u0301", "\u01F8": "N\u0300", "\xD1": "N\u0303", "\u0147": "N\u030C", "\u1E44": "N\u0307", "\xD3": "O\u0301", "\xD2": "O\u0300", "\xD6": "O\u0308", "\u022A": "O\u0308\u0304", "\xD5": "O\u0303", "\u1E4C": "O\u0303\u0301", "\u1E4E": "O\u0303\u0308", "\u022C": "O\u0303\u0304", "\u014C": "O\u0304", "\u1E52": "O\u0304\u0301", "\u1E50": "O\u0304\u0300", "\u014E": "O\u0306", "\u01D1": "O\u030C", "\xD4": "O\u0302", "\u1ED0": "O\u0302\u0301", "\u1ED2": "O\u0302\u0300", "\u1ED6": "O\u0302\u0303", "\u022E": "O\u0307", "\u0230": "O\u0307\u0304", "\u0150": "O\u030B", "\u1E54": "P\u0301", "\u1E56": "P\u0307", "\u0154": "R\u0301", "\u0158": "R\u030C", "\u1E58": "R\u0307", "\u015A": "S\u0301", "\u1E64": "S\u0301\u0307", "\u0160": "S\u030C", "\u1E66": "S\u030C\u0307", "\u015C": "S\u0302", "\u1E60": "S\u0307", "\u0164": "T\u030C", "\u1E6A": "T\u0307", "\xDA": "U\u0301", "\xD9": "U\u0300", "\xDC": "U\u0308", "\u01D7": "U\u0308\u0301", "\u01DB": "U\u0308\u0300", "\u01D5": "U\u0308\u0304", "\u01D9": "U\u0308\u030C", "\u0168": "U\u0303", "\u1E78": "U\u0303\u0301", "\u016A": "U\u0304", "\u1E7A": "U\u0304\u0308", "\u016C": "U\u0306", "\u01D3": "U\u030C", "\xDB": "U\u0302", "\u016E": "U\u030A", "\u0170": "U\u030B", "\u1E7C": "V\u0303", "\u1E82": "W\u0301", "\u1E80": "W\u0300", "\u1E84": "W\u0308", "\u0174": "W\u0302", "\u1E86": "W\u0307", "\u1E8C": "X\u0308", "\u1E8A": "X\u0307", "\xDD": "Y\u0301", "\u1EF2": "Y\u0300", "\u0178": "Y\u0308", "\u1EF8": "Y\u0303", "\u0232": "Y\u0304", "\u0176": "Y\u0302", "\u1E8E": "Y\u0307", "\u0179": "Z\u0301", "\u017D": "Z\u030C", "\u1E90": "Z\u0302", "\u017B": "Z\u0307", "\u03AC": "\u03B1\u0301", "\u1F70": "\u03B1\u0300", "\u1FB1": "\u03B1\u0304", "\u1FB0": "\u03B1\u0306", "\u03AD": "\u03B5\u0301", "\u1F72": "\u03B5\u0300", "\u03AE": "\u03B7\u0301", "\u1F74": "\u03B7\u0300", "\u03AF": "\u03B9\u0301", "\u1F76": "\u03B9\u0300", "\u03CA": "\u03B9\u0308", "\u0390": "\u03B9\u0308\u0301", "\u1FD2": "\u03B9\u0308\u0300", "\u1FD1": "\u03B9\u0304", "\u1FD0": "\u03B9\u0306", "\u03CC": "\u03BF\u0301", "\u1F78": "\u03BF\u0300", "\u03CD": "\u03C5\u0301", "\u1F7A": "\u03C5\u0300", "\u03CB": "\u03C5\u0308", "\u03B0": "\u03C5\u0308\u0301", "\u1FE2": "\u03C5\u0308\u0300", "\u1FE1": "\u03C5\u0304", "\u1FE0": "\u03C5\u0306", "\u03CE": "\u03C9\u0301", "\u1F7C": "\u03C9\u0300", "\u038E": "\u03A5\u0301", "\u1FEA": "\u03A5\u0300", "\u03AB": "\u03A5\u0308", "\u1FE9": "\u03A5\u0304", "\u1FE8": "\u03A5\u0306", "\u038F": "\u03A9\u0301", "\u1FFA": "\u03A9\u0300" }; var binLeftCancellers = ["bin", "op", "open", "punct", "rel"]; var sizeRegEx = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/; var Parser = class _Parser { constructor(input, settings, isPreamble = false) { this.mode = "math"; this.gullet = new MacroExpander(input, settings, this.mode); this.settings = settings; this.isPreamble = isPreamble; this.leftrightDepth = 0; this.prevAtomType = ""; } /** * Checks a result to make sure it has the right type, and throws an * appropriate error otherwise. */ expect(text2, consume = true) { if (this.fetch().text !== text2) { throw new ParseError(`Expected '${text2}', got '${this.fetch().text}'`, this.fetch()); } if (consume) { this.consume(); } } /** * Discards the current lookahead token, considering it consumed. */ consume() { this.nextToken = null; } /** * Return the current lookahead token, or if there isn't one (at the * beginning, or if the previous lookahead token was consume()d), * fetch the next token as the new lookahead token and return it. */ fetch() { if (this.nextToken == null) { this.nextToken = this.gullet.expandNextToken(); } return this.nextToken; } /** * Switches between "text" and "math" modes. */ switchMode(newMode) { this.mode = newMode; this.gullet.switchMode(newMode); } /** * Main parsing function, which parses an entire input. */ parse() { this.gullet.beginGroup(); if (this.settings.colorIsTextColor) { this.gullet.macros.set("\\color", "\\textcolor"); } const parse = this.parseExpression(false); this.expect("EOF"); if (this.isPreamble) { const macros2 = /* @__PURE__ */ Object.create(null); Object.entries(this.gullet.macros.current).forEach(([key, value]) => { macros2[key] = value; }); this.gullet.endGroup(); return macros2; } const tag = this.gullet.macros.get("\\df@tag"); this.gullet.endGroup(); if (tag) { this.gullet.macros.current["\\df@tag"] = tag; } return parse; } static get endOfExpression() { return ["}", "\\endgroup", "\\end", "\\right", "\\endtoggle", "&"]; } /** * Fully parse a separate sequence of tokens as a separate job. * Tokens should be specified in reverse order, as in a MacroDefinition. */ subparse(tokens) { const oldToken = this.nextToken; this.consume(); this.gullet.pushToken(new Token("}")); this.gullet.pushTokens(tokens); const parse = this.parseExpression(false); this.expect("}"); this.nextToken = oldToken; return parse; } /** * Parses an "expression", which is a list of atoms. * * `breakOnInfix`: Should the parsing stop when we hit infix nodes? This * happens when functions have higher precedence han infix * nodes in implicit parses. * * `breakOnTokenText`: The text of the token that the expression should end * with, or `null` if something else should end the * expression. * * `breakOnMiddle`: \color, \over, and old styling functions work on an implicit group. * These groups end just before the usual tokens, but they also * end just before `\middle`. */ parseExpression(breakOnInfix, breakOnTokenText, breakOnMiddle) { const body = []; this.prevAtomType = ""; while (true) { if (this.mode === "math") { this.consumeSpaces(); } const lex = this.fetch(); if (_Parser.endOfExpression.indexOf(lex.text) !== -1) { break; } if (breakOnTokenText && lex.text === breakOnTokenText) { break; } if (breakOnMiddle && lex.text === "\\middle") { break; } if (breakOnInfix && functions[lex.text] && functions[lex.text].infix) { break; } const atom = this.parseAtom(breakOnTokenText); if (!atom) { break; } else if (atom.type === "internal") { continue; } body.push(atom); this.prevAtomType = atom.type === "atom" ? atom.family : atom.type; } if (this.mode === "text") { this.formLigatures(body); } return this.handleInfixNodes(body); } /** * Rewrites infix operators such as \over with corresponding commands such * as \frac. * * There can only be one infix operator per group. If there's more than one * then the expression is ambiguous. This can be resolved by adding {}. */ handleInfixNodes(body) { let overIndex = -1; let funcName; for (let i = 0; i < body.length; i++) { if (body[i].type === "infix") { if (overIndex !== -1) { throw new ParseError("only one infix operator per group", body[i].token); } overIndex = i; funcName = body[i].replaceWith; } } if (overIndex !== -1 && funcName) { let numerNode; let denomNode; const numerBody = body.slice(0, overIndex); const denomBody = body.slice(overIndex + 1); if (numerBody.length === 1 && numerBody[0].type === "ordgroup") { numerNode = numerBody[0]; } else { numerNode = { type: "ordgroup", mode: this.mode, body: numerBody }; } if (denomBody.length === 1 && denomBody[0].type === "ordgroup") { denomNode = denomBody[0]; } else { denomNode = { type: "ordgroup", mode: this.mode, body: denomBody }; } let node; if (funcName === "\\\\abovefrac") { node = this.callFunction(funcName, [numerNode, body[overIndex], denomNode], []); } else { node = this.callFunction(funcName, [numerNode, denomNode], []); } return [node]; } else { return body; } } /** * Handle a subscript or superscript with nice errors. */ handleSupSubscript(name) { const symbolToken = this.fetch(); const symbol = symbolToken.text; this.consume(); this.consumeSpaces(); const group = this.parseGroup(name); if (!group) { throw new ParseError("Expected group after '" + symbol + "'", symbolToken); } return group; } /** * Converts the textual input of an unsupported command into a text node * contained within a color node whose color is determined by errorColor */ formatUnsupportedCmd(text2) { const textordArray = []; for (let i = 0; i < text2.length; i++) { textordArray.push({ type: "textord", mode: "text", text: text2[i] }); } const textNode = { type: "text", mode: this.mode, body: textordArray }; const colorNode = { type: "color", mode: this.mode, color: this.settings.errorColor, body: [textNode] }; return colorNode; } /** * Parses a group with optional super/subscripts. */ parseAtom(breakOnTokenText) { const base = this.parseGroup("atom", breakOnTokenText); if (this.mode === "text") { return base; } let superscript; let subscript; while (true) { this.consumeSpaces(); const lex = this.fetch(); if (lex.text === "\\limits" || lex.text === "\\nolimits") { if (base && base.type === "op") { const limits = lex.text === "\\limits"; base.limits = limits; base.alwaysHandleSupSub = true; } else if (base && base.type === "operatorname") { if (base.alwaysHandleSupSub) { base.limits = lex.text === "\\limits"; } } else { throw new ParseError("Limit controls must follow a math operator", lex); } this.consume(); } else if (lex.text === "^") { if (superscript) { throw new ParseError("Double superscript", lex); } superscript = this.handleSupSubscript("superscript"); } else if (lex.text === "_") { if (subscript) { throw new ParseError("Double subscript", lex); } subscript = this.handleSupSubscript("subscript"); } else if (lex.text === "'") { if (superscript) { throw new ParseError("Double superscript", lex); } const prime = { type: "textord", mode: this.mode, text: "\\prime" }; const primes2 = [prime]; this.consume(); while (this.fetch().text === "'") { primes2.push(prime); this.consume(); } if (this.fetch().text === "^") { primes2.push(this.handleSupSubscript("superscript")); } superscript = { type: "ordgroup", mode: this.mode, body: primes2 }; } else if (uSubsAndSups[lex.text]) { const isSub = unicodeSubRegEx.test(lex.text); const subsupTokens = []; subsupTokens.push(new Token(uSubsAndSups[lex.text])); this.consume(); while (true) { const token = this.fetch().text; if (!uSubsAndSups[token]) { break; } if (unicodeSubRegEx.test(token) !== isSub) { break; } subsupTokens.unshift(new Token(uSubsAndSups[token])); this.consume(); } const body = this.subparse(subsupTokens); if (isSub) { subscript = { type: "ordgroup", mode: "math", body }; } else { superscript = { type: "ordgroup", mode: "math", body }; } } else { break; } } if (superscript || subscript) { if (base && base.type === "multiscript" && !base.postscripts) { base.postscripts = { sup: superscript, sub: subscript }; return base; } else { const isFollowedByDelimiter = !base || base.type !== "op" && base.type !== "operatorname" ? void 0 : isDelimiter(this.nextToken.text); return { type: "supsub", mode: this.mode, base, sup: superscript, sub: subscript, isFollowedByDelimiter }; } } else { return base; } } /** * Parses an entire function, including its base and all of its arguments. */ parseFunction(breakOnTokenText, name) { const token = this.fetch(); const func = token.text; const funcData = functions[func]; if (!funcData) { return null; } this.consume(); if (name && name !== "atom" && !funcData.allowedInArgument) { throw new ParseError( "Got function '" + func + "' with no arguments" + (name ? " as " + name : ""), token ); } else if (this.mode === "text" && !funcData.allowedInText) { throw new ParseError("Can't use function '" + func + "' in text mode", token); } else if (this.mode === "math" && funcData.allowedInMath === false) { throw new ParseError("Can't use function '" + func + "' in math mode", token); } const prevAtomType = this.prevAtomType; const { args, optArgs } = this.parseArguments(func, funcData); this.prevAtomType = prevAtomType; return this.callFunction(func, args, optArgs, token, breakOnTokenText); } /** * Call a function handler with a suitable context and arguments. */ callFunction(name, args, optArgs, token, breakOnTokenText) { const context = { funcName: name, parser: this, token, breakOnTokenText }; const func = functions[name]; if (func && func.handler) { return func.handler(context, args, optArgs); } else { throw new ParseError(`No function handler for ${name}`); } } /** * Parses the arguments of a function or environment */ parseArguments(func, funcData) { const totalArgs = funcData.numArgs + funcData.numOptionalArgs; if (totalArgs === 0) { return { args: [], optArgs: [] }; } const args = []; const optArgs = []; for (let i = 0; i < totalArgs; i++) { let argType = funcData.argTypes && funcData.argTypes[i]; const isOptional = i < funcData.numOptionalArgs; if (funcData.primitive && argType == null || // \sqrt expands into primitive if optional argument doesn't exist funcData.type === "sqrt" && i === 1 && optArgs[0] == null) { argType = "primitive"; } const arg = this.parseGroupOfType(`argument to '${func}'`, argType, isOptional); if (isOptional) { optArgs.push(arg); } else if (arg != null) { args.push(arg); } else { throw new ParseError("Null argument, please report this as a bug"); } } return { args, optArgs }; } /** * Parses a group when the mode is changing. */ parseGroupOfType(name, type, optional) { switch (type) { case "size": return this.parseSizeGroup(optional); case "url": return this.parseUrlGroup(optional); case "math": case "text": return this.parseArgumentGroup(optional, type); case "hbox": { const group = this.parseArgumentGroup(optional, "text"); return group != null ? { type: "styling", mode: group.mode, body: [group], scriptLevel: "text" // simulate \textstyle } : null; } case "raw": { const token = this.parseStringGroup("raw", optional); return token != null ? { type: "raw", mode: "text", string: token.text } : null; } case "primitive": { if (optional) { throw new ParseError("A primitive argument cannot be optional"); } const group = this.parseGroup(name); if (group == null) { throw new ParseError("Expected group as " + name, this.fetch()); } return group; } case "original": case null: case void 0: return this.parseArgumentGroup(optional); default: throw new ParseError("Unknown group type as " + name, this.fetch()); } } /** * Discard any space tokens, fetching the next non-space token. */ consumeSpaces() { while (true) { const ch = this.fetch().text; if (ch === " " || ch === "\xA0" || ch === "\uFE0E") { this.consume(); } else { break; } } } /** * Parses a group, essentially returning the string formed by the * brace-enclosed tokens plus some position information. */ parseStringGroup(modeName, optional) { const argToken = this.gullet.scanArgument(optional); if (argToken == null) { return null; } let str = ""; let nextToken; while ((nextToken = this.fetch()).text !== "EOF") { str += nextToken.text; this.consume(); } this.consume(); argToken.text = str; return argToken; } /** * Parses a regex-delimited group: the largest sequence of tokens * whose concatenated strings match `regex`. Returns the string * formed by the tokens plus some position information. */ parseRegexGroup(regex, modeName) { const firstToken = this.fetch(); let lastToken = firstToken; let str = ""; let nextToken; while ((nextToken = this.fetch()).text !== "EOF" && regex.test(str + nextToken.text)) { lastToken = nextToken; str += lastToken.text; this.consume(); } if (str === "") { throw new ParseError("Invalid " + modeName + ": '" + firstToken.text + "'", firstToken); } return firstToken.range(lastToken, str); } /** * Parses a size specification, consisting of magnitude and unit. */ parseSizeGroup(optional) { let res; let isBlank = false; this.gullet.consumeSpaces(); if (!optional && this.gullet.future().text !== "{") { res = this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/, "size"); } else { res = this.parseStringGroup("size", optional); } if (!res) { return null; } if (!optional && res.text.length === 0) { res.text = "0pt"; isBlank = true; } const match = sizeRegEx.exec(res.text); if (!match) { throw new ParseError("Invalid size: '" + res.text + "'", res); } const data = { number: +(match[1] + match[2]), // sign + magnitude, cast to number unit: match[3] }; if (!validUnit(data)) { throw new ParseError("Invalid unit: '" + data.unit + "'", res); } return { type: "size", mode: this.mode, value: data, isBlank }; } /** * Parses an URL, checking escaped letters and allowed protocols, * and setting the catcode of % as an active character (as in \hyperref). */ parseUrlGroup(optional) { this.gullet.lexer.setCatcode("%", 13); this.gullet.lexer.setCatcode("~", 12); const res = this.parseStringGroup("url", optional); this.gullet.lexer.setCatcode("%", 14); this.gullet.lexer.setCatcode("~", 13); if (res == null) { return null; } let url = res.text.replace(/\\([#$%&~_^{}])/g, "$1"); url = res.text.replace(/{\u2044}/g, "/"); return { type: "url", mode: this.mode, url }; } /** * Parses an argument with the mode specified. */ parseArgumentGroup(optional, mode) { const argToken = this.gullet.scanArgument(optional); if (argToken == null) { return null; } const outerMode = this.mode; if (mode) { this.switchMode(mode); } this.gullet.beginGroup(); const expression = this.parseExpression(false, "EOF"); this.expect("EOF"); this.gullet.endGroup(); const result = { type: "ordgroup", mode: this.mode, loc: argToken.loc, body: expression }; if (mode) { this.switchMode(outerMode); } return result; } /** * Parses an ordinary group, which is either a single nucleus (like "x") * or an expression in braces (like "{x+y}") or an implicit group, a group * that starts at the current position, and ends right before a higher explicit * group ends, or at EOF. */ parseGroup(name, breakOnTokenText) { const firstToken = this.fetch(); const text2 = firstToken.text; let result; if (text2 === "{" || text2 === "\\begingroup" || text2 === "\\toggle") { this.consume(); const groupEnd = text2 === "{" ? "}" : text2 === "\\begingroup" ? "\\endgroup" : "\\endtoggle"; this.gullet.beginGroup(); const expression = this.parseExpression(false, groupEnd); const lastToken = this.fetch(); this.expect(groupEnd); this.gullet.endGroup(); result = { type: lastToken.text === "\\endtoggle" ? "toggle" : "ordgroup", mode: this.mode, loc: SourceLocation.range(firstToken, lastToken), body: expression, // A group formed by \begingroup...\endgroup is a semi-simple group // which doesn't affect spacing in math mode, i.e., is transparent. // https://tex.stackexchange.com/questions/1930/ semisimple: text2 === "\\begingroup" || void 0 }; } else { result = this.parseFunction(breakOnTokenText, name) || this.parseSymbol(); if (result == null && text2[0] === "\\" && !Object.prototype.hasOwnProperty.call(implicitCommands, text2)) { result = this.formatUnsupportedCmd(text2); this.consume(); } } return result; } /** * Form ligature-like combinations of characters for text mode. * This includes inputs like "--", "---", "``" and "''". * The result will simply replace multiple textord nodes with a single * character in each value by a single textord node having multiple * characters in its value. The representation is still ASCII source. * The group will be modified in place. */ formLigatures(group) { let n = group.length - 1; for (let i = 0; i < n; ++i) { const a = group[i]; const v = a.text; if (v === "-" && group[i + 1].text === "-") { if (i + 1 < n && group[i + 2].text === "-") { group.splice(i, 3, { type: "textord", mode: "text", loc: SourceLocation.range(a, group[i + 2]), text: "---" }); n -= 2; } else { group.splice(i, 2, { type: "textord", mode: "text", loc: SourceLocation.range(a, group[i + 1]), text: "--" }); n -= 1; } } if ((v === "'" || v === "`") && group[i + 1].text === v) { group.splice(i, 2, { type: "textord", mode: "text", loc: SourceLocation.range(a, group[i + 1]), text: v + v }); n -= 1; } } } /** * Parse a single symbol out of the string. Here, we handle single character * symbols and special functions like \verb. */ parseSymbol() { const nucleus = this.fetch(); let text2 = nucleus.text; if (/^\\verb[^a-zA-Z]/.test(text2)) { this.consume(); let arg = text2.slice(5); const star = arg.charAt(0) === "*"; if (star) { arg = arg.slice(1); } if (arg.length < 2 || arg.charAt(0) !== arg.slice(-1)) { throw new ParseError(`\\verb assertion failed -- please report what input caused this bug`); } arg = arg.slice(1, -1); return { type: "verb", mode: "text", body: arg, star }; } if (Object.prototype.hasOwnProperty.call(unicodeSymbols, text2[0]) && this.mode === "math" && !symbols[this.mode][text2[0]]) { if (this.settings.strict && this.mode === "math") { throw new ParseError( `Accented Unicode text character "${text2[0]}" used in math mode`, nucleus ); } text2 = unicodeSymbols[text2[0]] + text2.slice(1); } const match = this.mode === "math" ? combiningDiacriticalMarksEndRegex.exec(text2) : null; if (match) { text2 = text2.substring(0, match.index); if (text2 === "i") { text2 = "\u0131"; } else if (text2 === "j") { text2 = "\u0237"; } } let symbol; if (symbols[this.mode][text2]) { let group = symbols[this.mode][text2].group; if (group === "bin" && binLeftCancellers.includes(this.prevAtomType)) { group = "open"; } const loc = SourceLocation.range(nucleus); let s; if (Object.prototype.hasOwnProperty.call(ATOMS, group)) { const family = group; s = { type: "atom", mode: this.mode, family, loc, text: text2 }; } else { if (asciiFromScript[text2]) { this.consume(); const nextCode = this.fetch().text.charCodeAt(0); const font = nextCode === 65025 ? "mathscr" : "mathcal"; if (nextCode === 65024 || nextCode === 65025) { this.consume(); } return { type: "font", mode: "math", font, body: { type: "mathord", mode: "math", loc, text: asciiFromScript[text2] } }; } s = { type: group, mode: this.mode, loc, text: text2 }; } symbol = s; } else if (text2.charCodeAt(0) >= 128 || combiningDiacriticalMarksEndRegex.exec(text2)) { if (this.settings.strict && this.mode === "math") { throw new ParseError(`Unicode text character "${text2[0]}" used in math mode`, nucleus); } symbol = { type: "textord", mode: "text", loc: SourceLocation.range(nucleus), text: text2 }; } else { return null; } this.consume(); if (match) { for (let i = 0; i < match[0].length; i++) { const accent2 = match[0][i]; if (!unicodeAccents[accent2]) { throw new ParseError(`Unknown accent ' ${accent2}'`, nucleus); } const command = unicodeAccents[accent2][this.mode] || unicodeAccents[accent2].text; if (!command) { throw new ParseError(`Accent ${accent2} unsupported in ${this.mode} mode`, nucleus); } symbol = { type: "accent", mode: this.mode, loc: SourceLocation.range(nucleus), label: command, isStretchy: false, base: symbol }; } } return symbol; } }; var parseTree = function(toParse, settings) { if (!(typeof toParse === "string" || toParse instanceof String)) { throw new TypeError("Temml can only parse string typed expression"); } const parser = new Parser(toParse, settings); delete parser.gullet.macros.current["\\df@tag"]; let tree = parser.parse(); if (!(tree.length > 0 && tree[0].type && tree[0].type === "array" && tree[0].addEqnNum)) { if (parser.gullet.macros.get("\\df@tag")) { if (!settings.displayMode) { throw new ParseError("\\tag works only in display mode"); } parser.gullet.feed("\\df@tag"); tree = [ { type: "tag", mode: "text", body: tree, tag: parser.parse() } ]; } } return tree; }; var subOrSupLevel = [2, 2, 3, 3]; var Style = class _Style { constructor(data) { this.level = data.level; this.color = data.color; this.font = data.font || ""; this.fontFamily = data.fontFamily || ""; this.fontSize = data.fontSize || 1; this.fontWeight = data.fontWeight || ""; this.fontShape = data.fontShape || ""; this.maxSize = data.maxSize; } /** * Returns a new style object with the same properties as "this". Properties * from "extension" will be copied to the new style object. */ extend(extension) { const data = { level: this.level, color: this.color, font: this.font, fontFamily: this.fontFamily, fontSize: this.fontSize, fontWeight: this.fontWeight, fontShape: this.fontShape, maxSize: this.maxSize }; for (const key in extension) { if (Object.prototype.hasOwnProperty.call(extension, key)) { data[key] = extension[key]; } } return new _Style(data); } withLevel(n) { return this.extend({ level: n }); } incrementLevel() { return this.extend({ level: Math.min(this.level + 1, 3) }); } inSubOrSup() { return this.extend({ level: subOrSupLevel[this.level] }); } /** * Create a new style object with the given color. */ withColor(color) { return this.extend({ color }); } /** * Creates a new style object with the given math font or old text font. * @type {[type]} */ withFont(font) { return this.extend({ font }); } /** * Create a new style objects with the given fontFamily. */ withTextFontFamily(fontFamily) { return this.extend({ fontFamily, font: "" }); } /** * Creates a new style object with the given font size */ withFontSize(num) { return this.extend({ fontSize: num }); } /** * Creates a new style object with the given font weight */ withTextFontWeight(fontWeight) { return this.extend({ fontWeight, font: "" }); } /** * Creates a new style object with the given font weight */ withTextFontShape(fontShape) { return this.extend({ fontShape, font: "" }); } /** * Gets the CSS color of the current style object */ getColor() { return this.color; } }; var version = "0.10.34"; function postProcess(block) { const labelMap = {}; let i = 0; const amsEqns = document.getElementsByClassName("tml-eqn"); for (let parent of amsEqns) { i += 1; parent.setAttribute("id", "tml-eqn-" + String(i)); while (true) { if (parent.tagName === "mtable") { break; } const labels = parent.getElementsByClassName("tml-label"); if (labels.length > 0) { const id = parent.attributes.id.value; labelMap[id] = String(i); break; } else { parent = parent.parentElement; } } } const taggedEqns = document.getElementsByClassName("tml-tageqn"); for (const parent of taggedEqns) { const labels = parent.getElementsByClassName("tml-label"); if (labels.length > 0) { const tags = parent.getElementsByClassName("tml-tag"); if (tags.length > 0) { const id = parent.attributes.id.value; labelMap[id] = tags[0].textContent; } } } const refs = block.getElementsByClassName("tml-ref"); [...refs].forEach((ref) => { const attr = ref.getAttribute("href"); let str = labelMap[attr.slice(1)]; if (ref.className.indexOf("tml-eqref") === -1) { str = str.replace(/^\(/, ""); str = str.replace(/\)$/, ""); } else { if (str.charAt(0) !== "(") { str = "(" + str; } if (str.slice(-1) !== ")") { str = str + ")"; } } const mtext = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mtext"); mtext.appendChild(document.createTextNode(str)); const math2 = document.createElementNS("http://www.w3.org/1998/Math/MathML", "math"); math2.appendChild(mtext); ref.appendChild(math2); }); } var render = function(expression, baseNode, options = {}) { baseNode.textContent = ""; const alreadyInMathElement = baseNode.tagName.toLowerCase() === "math"; if (alreadyInMathElement) { options.wrap = "none"; } const math2 = renderToMathMLTree(expression, options); if (alreadyInMathElement) { baseNode.textContent = ""; math2.children.forEach((e) => { baseNode.appendChild(e.toNode()); }); } else if (math2.children.length > 1) { baseNode.textContent = ""; math2.children.forEach((e) => { baseNode.appendChild(e.toNode()); }); } else { baseNode.appendChild(math2.toNode()); } }; if (typeof document !== "undefined") { if (document.compatMode !== "CSS1Compat") { typeof console !== "undefined" && console.warn( "Warning: Temml doesn't work in quirks mode. Make sure your website has a suitable doctype." ); render = function() { throw new ParseError("Temml doesn't work in quirks mode."); }; } } var renderToString = function(expression, options) { const markup = renderToMathMLTree(expression, options).toMarkup(); return markup; }; var generateParseTree = function(expression, options) { const settings = new Settings(options); return parseTree(expression, settings); }; var definePreamble = function(expression, options) { const settings = new Settings(options); settings.macros = {}; if (!(typeof expression === "string" || expression instanceof String)) { throw new TypeError("Temml can only parse string typed expression"); } const parser = new Parser(expression, settings, true); delete parser.gullet.macros.current["\\df@tag"]; const macros2 = parser.parse(); return macros2; }; var renderError = function(error, expression, options) { if (options.throwOnError || !(error instanceof ParseError)) { throw error; } const node = new Span(["temml-error"], [new TextNode$1(expression + "\n" + error.toString())]); node.style.color = options.errorColor; node.style.whiteSpace = "pre-line"; return node; }; var renderToMathMLTree = function(expression, options) { const settings = new Settings(options); try { const tree = parseTree(expression, settings); const style = new Style({ level: settings.displayMode ? StyleLevel.DISPLAY : StyleLevel.TEXT, maxSize: settings.maxSize }); return buildMathML(tree, expression, style, settings); } catch (error) { return renderError(error, expression, settings); } }; var temml = { /** * Current Temml version */ version, /** * Renders the given LaTeX into MathML, and adds * it as a child to the specified DOM node. */ render, /** * Renders the given LaTeX into MathML string, * for sending to the client. */ renderToString, /** * Post-process an entire HTML block. * Writes AMS auto-numbers and implements \ref{}. * Typcally called once, after a loop has rendered many individual spans. */ postProcess, /** * Temml error, usually during parsing. */ ParseError, /** * Creates a set of macros with document-wide scope. */ definePreamble, /** * Parses the given LaTeX into Temml's internal parse tree structure, * without rendering to HTML or MathML. * * NOTE: This method is not currently recommended for public use. * The internal tree representation is unstable and is very likely * to change. Use at your own risk. */ __parse: generateParseTree, /** * Renders the given LaTeX into a MathML internal DOM tree * representation, without flattening that representation to a string. * * NOTE: This method is not currently recommended for public use. * The internal tree representation is unstable and is very likely * to change. Use at your own risk. */ __renderToMathMLTree: renderToMathMLTree, /** * adds a new symbol to builtin symbols table */ __defineSymbol: defineSymbol, /** * adds a new macro to builtin macro list */ __defineMacro: defineMacro }; // packages/latex-to-mathml/build-module/index.mjs function latexToMathML(latex, { displayMode = true } = {}) { const mathML = temml.renderToString(latex, { displayMode, annotate: true, throwOnError: true }); const doc = document.implementation.createHTMLDocument(""); doc.body.innerHTML = mathML; return doc.body.querySelector("math")?.innerHTML ?? ""; } export { latexToMathML as default }; latex-to-mathml/index.min.asset.php 0000644 00000000123 15206736335 0013307 0 ustar 00 <?php return array('dependencies' => array(), 'version' => 'e5fd3ae6d2c3b6e669da'); latex-to-mathml/loader.min.js 0000644 00000000117 15206736335 0012160 0 ustar 00 function r(){return import("@wordpress/latex-to-mathml")}export{r as default}; latex-to-mathml/loader.min.asset.php 0000644 00000000267 15206736335 0013457 0 ustar 00 <?php return array('dependencies' => array(), 'module_dependencies' => array(array('id' => '@wordpress/latex-to-mathml', 'import' => 'dynamic')), 'version' => '4f37456af539bd3d2351'); boot/index.min.js 0000644 00000174007 15206736335 0007761 0 ustar 00 var $a=Object.create;var ee=Object.defineProperty;var Ka=Object.getOwnPropertyDescriptor;var Xa=Object.getOwnPropertyNames;var Ja=Object.getPrototypeOf,Za=Object.prototype.hasOwnProperty;var g=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Ye=(t,e)=>{for(var o in e)ee(t,o,{get:e[o],enumerable:!0})},Qa=(t,e,o,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Xa(e))!Za.call(t,r)&&r!==o&&ee(t,r,{get:()=>e[r],enumerable:!(a=Ka(e,r))||a.enumerable});return t};var i=(t,e,o)=>(o=t!=null?$a(Ja(t)):{},Qa(e||!t||!t.__esModule?ee(o,"default",{value:t,enumerable:!0}):o,t));var w=g((_i,$e)=>{$e.exports=window.wp.element});var k=g((yi,Ke)=>{Ke.exports=window.wp.data});var S=g((ki,Xe)=>{Xe.exports=window.wp.i18n});var v=g((Si,Je)=>{Je.exports=window.wp.components});var f=g((Ri,Ze)=>{Ze.exports=window.ReactJSXRuntime});var X=g((Ci,ro)=>{ro.exports=window.React});var R=g((rs,_o)=>{_o.exports=window.wp.primitives});var ko=g((Ps,yo)=>{yo.exports=window.wp.theme});var Ro=g((Ts,So)=>{So.exports=window.wp.privateApis});var ut=g((Ls,Io)=>{Io.exports=window.wp.compose});var F=g(($s,Ao)=>{Ao.exports=window.wp.coreData});var Ce=g((Ks,Mo)=>{Mo.exports=window.wp.notices});var Pe=g((Xs,Do)=>{Do.exports=window.wp.htmlEntities});var Te=g((Js,zo)=>{zo.exports=window.wp.keycodes});var Bo=g((Zs,jo)=>{jo.exports=window.wp.commands});var Uo=g((Qs,Oo)=>{Oo.exports=window.wp.url});var Ut=g((Xn,ga)=>{ga.exports=window.wp.editor});var wa=g((Jn,ba)=>{ba.exports=window.wp.keyboardShortcuts});var nt=i(w(),1),K=i(k(),1);var qe=i(S(),1),Ua=i(w(),1);function Qe(t){var e,o,a="";if(typeof t=="string"||typeof t=="number")a+=t;else if(typeof t=="object")if(Array.isArray(t)){var r=t.length;for(e=0;e<r;e++)t[e]&&(o=Qe(t[e]))&&(a&&(a+=" "),a+=o)}else for(o in t)t[o]&&(a&&(a+=" "),a+=o);return a}function tr(){for(var t,e,o=0,a="",r=arguments.length;o<r;o++)(t=arguments[o])&&(e=Qe(t))&&(a&&(a+=" "),a+=e);return a}var h=tr;var to=i(w(),1),eo=i(f(),1),oo=(0,to.forwardRef)(({children:t,className:e,ariaLabel:o,as:a="div",...r},s)=>(0,eo.jsx)(a,{ref:s,className:h("admin-ui-navigable-region",e),"aria-label":o,role:"region",tabIndex:"-1",...r,children:t}));oo.displayName="NavigableRegion";var ao=oo;var so=i(X(),1),io={};function oe(t,e){let o=so.useRef(io);return o.current===io&&(o.current=t(e)),o}function ae(t,...e){let o=new URL(`https://base-ui.com/production-error/${t}`);return e.forEach(a=>o.searchParams.append("args[]",a)),`Base UI error #${t}; visit ${o} for the full message.`}var vt=i(X(),1);function re(t,e,o,a){let r=oe(lo).current;return er(r,t,e,o,a)&&fo(r,[t,e,o,a]),r.callback}function no(t){let e=oe(lo).current;return or(e,t)&&fo(e,t),e.callback}function lo(){return{callback:null,cleanup:null,refs:[]}}function er(t,e,o,a,r){return t.refs[0]!==e||t.refs[1]!==o||t.refs[2]!==a||t.refs[3]!==r}function or(t,e){return t.refs.length!==e.length||t.refs.some((o,a)=>o!==e[a])}function fo(t,e){if(t.refs=e,e.every(o=>o==null)){t.callback=null;return}t.callback=o=>{if(t.cleanup&&(t.cleanup(),t.cleanup=null),o!=null){let a=Array(e.length).fill(null);for(let r=0;r<e.length;r+=1){let s=e[r];if(s!=null)switch(typeof s){case"function":{let n=s(o);typeof n=="function"&&(a[r]=n);break}case"object":{s.current=o;break}default:}}t.cleanup=()=>{for(let r=0;r<e.length;r+=1){let s=e[r];if(s!=null)switch(typeof s){case"function":{let n=a[r];typeof n=="function"?n():s(null);break}case"object":{s.current=null;break}default:}}}}}}var po=i(X(),1);var uo=i(X(),1),ar=parseInt(uo.version,10);function mo(t){return ar>=t}function ie(t){if(!po.isValidElement(t))return null;let e=t,o=e.props;return(mo(19)?o?.ref:e.ref)??null}function lt(t,e){if(t&&!e)return t;if(!t&&e)return e;if(t||e)return{...t,...e}}function co(t,e){let o={};for(let a in t){let r=t[a];if(e?.hasOwnProperty(a)){let s=e[a](r);s!=null&&Object.assign(o,s);continue}r===!0?o[`data-${a.toLowerCase()}`]="":r&&(o[`data-${a.toLowerCase()}`]=r.toString())}return o}function ho(t,e){return typeof t=="function"?t(e):t}function go(t,e){return typeof t=="function"?t(e):t}var ft={};function wt(t,e,o,a,r){let s={...se(t,ft)};return e&&(s=dt(s,e)),o&&(s=dt(s,o)),a&&(s=dt(s,a)),r&&(s=dt(s,r)),s}function bo(t){if(t.length===0)return ft;if(t.length===1)return se(t[0],ft);let e={...se(t[0],ft)};for(let o=1;o<t.length;o+=1)e=dt(e,t[o]);return e}function dt(t,e){return wo(e)?e(t):rr(t,e)}function rr(t,e){if(!e)return t;for(let o in e){let a=e[o];switch(o){case"style":{t[o]=lt(t.style,a);break}case"className":{t[o]=ne(t.className,a);break}default:ir(o,a)?t[o]=sr(t[o],a):t[o]=a}}return t}function ir(t,e){let o=t.charCodeAt(0),a=t.charCodeAt(1),r=t.charCodeAt(2);return o===111&&a===110&&r>=65&&r<=90&&(typeof e=="function"||typeof e>"u")}function wo(t){return typeof t=="function"}function se(t,e){return wo(t)?t(e):t??ft}function sr(t,e){return e?t?o=>{if(lr(o)){let r=o;nr(r);let s=e(r);return r.baseUIHandlerPrevented||t?.(r),s}let a=e(o);return t?.(o),a}:e:t}function nr(t){return t.preventBaseUIHandler=()=>{t.baseUIHandlerPrevented=!0},t}function ne(t,e){return e?t?e+" "+t:e:t}function lr(t){return t!=null&&typeof t=="object"&&"nativeEvent"in t}var dr=Object.freeze([]),B=Object.freeze({});var le=i(X(),1);function vo(t,e,o={}){let a=e.render,r=fr(e,o);if(o.enabled===!1)return null;let s=o.state??B;return ur(t,a,r,s)}function fr(t,e={}){let{className:o,style:a,render:r}=t,{state:s=B,ref:n,props:d,stateAttributesMapping:u,enabled:l=!0}=e,c=l?ho(o,s):void 0,E=l?go(a,s):void 0,_=l?co(s,u):B,b=l?lt(_,Array.isArray(d)?bo(d):d)??B:B;return typeof document<"u"&&(l?Array.isArray(n)?b.ref=no([b.ref,ie(r),...n]):b.ref=re(b.ref,ie(r),n):re(null,null)),l?(c!==void 0&&(b.className=ne(b.className,c)),E!==void 0&&(b.style=lt(b.style,E)),b):B}function ur(t,e,o,a){if(e){if(typeof e=="function")return e(o,a);let r=wt(o,e.props);return r.ref=o.ref,vt.cloneElement(e,r)}if(t&&typeof t=="string")return mr(t,o);throw new Error(ae(8))}function mr(t,e){return t==="button"?(0,le.createElement)("button",{type:"button",...e,key:e.key}):t==="img"?(0,le.createElement)("img",{alt:"",...e,key:e.key}):vt.createElement(t,e)}function xo(t){return vo(t.defaultTagName??"div",t,t)}var xt=i(w(),1),de=(0,xt.forwardRef)(({icon:t,size:e=24,...o},a)=>(0,xt.cloneElement)(t,{width:e,height:e,...o,ref:a}));var _t=i(R(),1),fe=i(f(),1),ue=(0,fe.jsx)(_t.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,fe.jsx)(_t.Path,{d:"M14 6H6v8h1.5V8.5L17 18l1-1-9.5-9.5H14V6Z"})});var yt=i(R(),1),me=i(f(),1),pe=(0,me.jsx)(yt.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,me.jsx)(yt.Path,{d:"M16.5 7.5 10 13.9l-2.5-2.4-1 1 3.5 3.6 7.5-7.6z"})});var kt=i(R(),1),ce=i(f(),1),he=(0,ce.jsx)(kt.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,ce.jsx)(kt.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"})});var St=i(R(),1),ge=i(f(),1),be=(0,ge.jsx)(St.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,ge.jsx)(St.Path,{d:"m13.1 16-3.4-4 3.4-4 1.1 1-2.6 3 2.6 3-1.1 1z"})});var Rt=i(R(),1),we=i(f(),1),ve=(0,we.jsx)(Rt.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,we.jsx)(Rt.Path,{d:"M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z"})});var It=i(R(),1),xe=i(f(),1),_e=(0,xe.jsx)(It.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,xe.jsx)(It.Path,{d:"M10.8622 8.04053L14.2805 12.0286L10.8622 16.0167L9.72327 15.0405L12.3049 12.0286L9.72327 9.01672L10.8622 8.04053Z"})});var Nt=i(R(),1),ye=i(f(),1),ke=(0,ye.jsx)(Nt.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,ye.jsx)(Nt.Path,{d:"M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"})});var Et=i(R(),1),Se=i(f(),1),Ct=(0,Se.jsx)(Et.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,Se.jsx)(Et.Path,{d:"M5 5v1.5h14V5H5zm0 7.8h14v-1.5H5v1.5zM5 19h14v-1.5H5V19z"})});var Pt=i(R(),1),Re=i(f(),1),Ie=(0,Re.jsx)(Pt.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,Re.jsx)(Pt.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"})});var Tt=i(R(),1),Ne=i(f(),1),Ee=(0,Ne.jsx)(Tt.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"-2 -2 24 24",children:(0,Ne.jsx)(Tt.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"})});var No=i(w(),1);if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='71d20935c2']")){let t=document.createElement("style");t.setAttribute("data-wp-hash","71d20935c2"),t.appendChild(document.createTextNode("@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{._19ce0419607e1896__stack{display:flex}}")),document.head.appendChild(t)}var pr={stack:"_19ce0419607e1896__stack"},cr={xs:"var(--wpds-dimension-gap-xs, 4px)",sm:"var(--wpds-dimension-gap-sm, 8px)",md:"var(--wpds-dimension-gap-md, 12px)",lg:"var(--wpds-dimension-gap-lg, 16px)",xl:"var(--wpds-dimension-gap-xl, 24px)","2xl":"var(--wpds-dimension-gap-2xl, 32px)","3xl":"var(--wpds-dimension-gap-3xl, 40px)"},J=(0,No.forwardRef)(function({direction:e,gap:o,align:a,justify:r,wrap:s,render:n,...d},u){let l={gap:o&&cr[o],alignItems:a,justifyContent:r,flexDirection:e,flexWrap:s};return xo({render:n,ref:u,props:wt(d,{style:l,className:pr.stack})})});var Eo=i(v(),1),{Fill:Co,Slot:Po}=(0,Eo.createSlotFill)("SidebarToggle");var M=i(f(),1);function To({headingLevel:t=1,breadcrumbs:e,badges:o,title:a,subTitle:r,actions:s,showSidebarToggle:n=!0}){let d=`h${t}`;return(0,M.jsxs)(J,{direction:"column",className:"admin-ui-page__header",children:[(0,M.jsxs)(J,{direction:"row",justify:"space-between",gap:"sm",children:[(0,M.jsxs)(J,{direction:"row",gap:"sm",align:"center",justify:"start",children:[n&&(0,M.jsx)(Po,{bubblesVirtually:!0,className:"admin-ui-page__sidebar-toggle-slot"}),a&&(0,M.jsx)(d,{className:"admin-ui-page__header-title",children:a}),e,o]}),(0,M.jsx)(J,{direction:"row",gap:"sm",style:{width:"auto",flexShrink:0},className:"admin-ui-page__header-actions",align:"center",children:s})]}),r&&(0,M.jsx)("p",{className:"admin-ui-page__header-subtitle",children:r})]})}var mt=i(f(),1);function Lo({headingLevel:t,breadcrumbs:e,badges:o,title:a,subTitle:r,children:s,className:n,actions:d,hasPadding:u=!1,showSidebarToggle:l=!0}){let c=h("admin-ui-page",n);return(0,mt.jsxs)(ao,{className:c,ariaLabel:a,children:[(a||e||o)&&(0,mt.jsx)(To,{headingLevel:t,breadcrumbs:e,badges:o,title:a,subTitle:r,actions:d,showSidebarToggle:l}),u?(0,mt.jsx)("div",{className:"admin-ui-page__content has-padding",children:s}):s]})}Lo.SidebarToggleFill=Co;var pt=Lo;var Ha=i(k(),1),Va=i(F(),1);import{privateApis as oi}from"@wordpress/route";var Oa=i(Ce(),1),Jt=i(ut(),1),C=i(v(),1);import{privateApis as Zr}from"@wordpress/route";var Zt=i(w(),1),Xt=i(S(),1);var Dt=i(k(),1),Z=i(v(),1),Me=i(S(),1),$o=i(F(),1),Ko=i(Pe(),1);var Xo=i(Te(),1),Jo=i(Bo(),1),De=i(Uo(),1);var qo=i(v(),1);import{Link as gr,privateApis as br}from"@wordpress/route";var Ho=i(Ro(),1),{lock:tn,unlock:x}=(0,Ho.__dangerousOptInToUnstableAPIsOnlyForCoreModules)("I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.","@wordpress/boot");var Vo=i(k(),1);var Fo=i(S(),1),Go=i(F(),1),ct=i(f(),1);if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='1a8e849690']")){let t=document.createElement("style");t.setAttribute("data-wp-hash","1a8e849690"),t.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}")),document.head.appendChild(t)}function hr({className:t}){let{isRequestingSite:e,siteIconUrl:o}=(0,Vo.useSelect)(r=>{let{getEntityRecord:s}=r(Go.store),n=s("root","__unstableBase",void 0);return{isRequestingSite:!n,siteIconUrl:n?.site_icon_url}},[]),a=null;return e&&!o?a=(0,ct.jsx)("div",{className:"boot-site-icon__image"}):a=o?(0,ct.jsx)("img",{className:"boot-site-icon__image",alt:(0,Fo.__)("Site Icon"),src:o}):(0,ct.jsx)(de,{className:"boot-site-icon__icon",icon:Ee,size:48}),(0,ct.jsx)("div",{className:h(t,"boot-site-icon"),children:a})}var Lt=hr;var At=i(f(),1);if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='3de37b6316']")){let t=document.createElement("style");t.setAttribute("data-wp-hash","3de37b6316"),t.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,2px) solid var(--wpds-color-stroke-focus-brand,#0073aa);outline-offset:calc(var(--wpds-border-width-focus, 2px)*-1)}")),document.head.appendChild(t)}var{useCanGoBack:wr,useRouter:vr}=x(br);function xr({to:t,isBackButton:e,...o}){let a=vr(),r=wr();return(0,At.jsx)(qo.Tooltip,{text:o["aria-label"],placement:"right",children:(0,At.jsx)(gr,{to:t,"aria-label":o["aria-label"],className:"boot-site-icon-link",onClick:s=>{r&&e&&(s.preventDefault(),a.history.back())},children:(0,At.jsx)(Lt,{})})})}var Wo=xr;var Mt=i(k(),1);var _r={menuItems:{},routes:[],dashboardLink:void 0};function Yo(t=_r,e){switch(e.type){case"REGISTER_MENU_ITEM":return{...t,menuItems:{...t.menuItems,[e.id]:e.menuItem}};case"UPDATE_MENU_ITEM":return{...t,menuItems:{...t.menuItems,[e.id]:{...t.menuItems[e.id],...e.updates}}};case"REGISTER_ROUTE":return{...t,routes:[...t.routes,e.route]};case"SET_DASHBOARD_LINK":return{...t,dashboardLink:e.dashboardLink}}return t}var Le={};Ye(Le,{registerMenuItem:()=>yr,registerRoute:()=>Sr,setDashboardLink:()=>Rr,updateMenuItem:()=>kr});function yr(t,e){return{type:"REGISTER_MENU_ITEM",id:t,menuItem:e}}function kr(t,e){return{type:"UPDATE_MENU_ITEM",id:t,updates:e}}function Sr(t){return{type:"REGISTER_ROUTE",route:t}}function Rr(t){return{type:"SET_DASHBOARD_LINK",dashboardLink:t}}var Ae={};Ye(Ae,{getDashboardLink:()=>Er,getMenuItems:()=>Ir,getRoutes:()=>Nr});function Ir(t){return Object.values(t.menuItems)}function Nr(t){return t.routes}function Er(t){return t.dashboardLink}var G="wordpress/boot",P=(0,Mt.createReduxStore)(G,{reducer:Yo,actions:Le,selectors:Ae});(0,Mt.register)(P);var D=i(f(),1);if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='78184fe2c5']")){let t=document.createElement("style");t.setAttribute("data-wp-hash","78184fe2c5"),t.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,2px) solid var(--wpds-color-stroke-focus-brand,#0073aa);outline-offset:calc(var(--wpds-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,#757575);font-size:12px}")),document.head.appendChild(t)}function Cr(){let{dashboardLink:t,homeUrl:e,siteTitle:o}=(0,Dt.useSelect)(r=>{let{getEntityRecord:s}=r($o.store),n=s("root","__unstableBase");return{dashboardLink:r(P).getDashboardLink(),homeUrl:n?.home,siteTitle:!n?.name&&n?.url?(0,De.filterURLForDisplay)(n?.url):n?.name}},[]),{open:a}=(0,Dt.useDispatch)(Jo.store);return(0,D.jsxs)("div",{className:"boot-site-hub",children:[(0,D.jsx)(Wo,{to:t||"/","aria-label":(0,Me.__)("Go to the Dashboard")}),(0,D.jsxs)(Z.ExternalLink,{href:e??"/",className:"boot-site-hub__title",children:[(0,D.jsx)("div",{className:"boot-site-hub__title-text",children:o&&(0,Ko.decodeEntities)(o)}),(0,D.jsx)("div",{className:"boot-site-hub__url",children:(0,De.filterURLForDisplay)(e??"")})]}),(0,D.jsx)(Z.__experimentalHStack,{className:"boot-site-hub__actions",children:(0,D.jsx)(Z.Button,{variant:"tertiary",icon:Ie,onClick:()=>a(),size:"compact",label:(0,Me.__)("Open command palette"),shortcut:Xo.displayShortcut.primary("k")})})]})}var Zo=Cr;var q=i(w(),1),ca=i(k(),1);var et=i(v(),1);var Qo=i(w(),1),ta=i(v(),1);import{privateApis as Pr}from"@wordpress/route";var ea=i(f(),1),{createLink:Tr}=x(Pr);function Lr(t,e){return(0,ea.jsx)(ta.__experimentalItem,{as:"a",ref:e,...t})}var Ar=Tr((0,Qo.forwardRef)(Lr)),oa=Ar;var aa=i(w(),1),zt=i(v(),1),ra=i(R(),1),ht=i(f(),1);function Mr(t){return(0,aa.isValidElement)(t)&&(t.type===ra.SVG||t.type==="svg")}function Q(t,e=!0){if(Mr(t))return(0,ht.jsx)(zt.Icon,{icon:t});if(typeof t=="string"&&t.startsWith("dashicons-")){let o=t.replace(/^dashicons-/,"");return(0,ht.jsx)(zt.Dashicon,{style:{padding:"2px"},icon:o,"aria-hidden":"true"})}return typeof t=="string"&&t.startsWith("data:")?(0,ht.jsx)("img",{src:t,alt:"","aria-hidden":"true",style:{width:"20px",height:"20px",display:"block",padding:"2px"}}):t||(e?(0,ht.jsx)("div",{style:{width:"24px",height:"24px"},"aria-hidden":"true"}):null)}var tt=i(f(),1);if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='ead8c8ad15']")){let t=document.createElement("style");t.setAttribute("data-wp-hash","ead8c8ad15"),t.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,#0073aa)}.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,#0073aa);font-weight:499}.boot-navigation-item.components-item:focus-visible{transform:translateZ(0)}.boot-navigation-item.components-item.with-suffix{padding-right:16px}')),document.head.appendChild(t)}function jt({className:t,icon:e,shouldShowPlaceholder:o=!0,children:a,to:r}){let s=!String(new URL(r,window.location.origin)).startsWith(window.location.origin),n=(0,tt.jsxs)(et.__experimentalHStack,{justify:"flex-start",spacing:2,style:{flexGrow:"1"},children:[Q(e,o),(0,tt.jsx)(et.FlexBlock,{children:a})]});return s?(0,tt.jsx)(et.__experimentalItem,{as:"a",href:r,className:h("boot-navigation-item",t),children:n}):(0,tt.jsx)(oa,{to:r,className:h("boot-navigation-item",t),children:n})}var O=i(v(),1),ia=i(S(),1);var ot=i(f(),1);function sa({className:t,id:e,icon:o,shouldShowPlaceholder:a=!0,children:r,onNavigate:s}){let n=d=>{d.preventDefault(),s({id:e,direction:"forward"})};return(0,ot.jsx)(O.__experimentalItem,{className:h("boot-navigation-item",t),onClick:n,children:(0,ot.jsxs)(O.__experimentalHStack,{justify:"flex-start",spacing:2,style:{flexGrow:"1"},children:[Q(o,a),(0,ot.jsx)(O.FlexBlock,{children:r}),(0,ot.jsx)(O.Icon,{icon:(0,ia.isRTL)()?be:_e})]})})}var I=i(v(),1);var na=i(ut(),1),la=i(k(),1);var T=i(f(),1);if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='58e2debd11']")){let t=document.createElement("style");t.setAttribute("data-wp-hash","58e2debd11"),t.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)}")),document.head.appendChild(t)}var Dr=.2;function da({className:t,id:e,icon:o,children:a,isExpanded:r,onToggle:s}){let d=(0,la.useSelect)(l=>l(G).getMenuItems(),[]).filter(l=>l.parent===e),u=(0,na.useReducedMotion)();return(0,T.jsxs)("div",{className:"boot-dropdown-item",children:[(0,T.jsx)(I.__experimentalItem,{className:h("boot-navigation-item",t),onClick:l=>{l.preventDefault(),l.stopPropagation(),s()},onMouseDown:l=>l.preventDefault(),children:(0,T.jsxs)(I.__experimentalHStack,{justify:"flex-start",spacing:2,style:{flexGrow:"1"},children:[Q(o,!1),(0,T.jsx)(I.FlexBlock,{children:a}),(0,T.jsx)(I.Icon,{icon:he,className:h("boot-dropdown-item__chevron",{"is-up":r})})]})}),(0,T.jsx)(I.__unstableAnimatePresence,{initial:!1,children:r&&(0,T.jsx)(I.__unstableMotion.div,{initial:{height:0},animate:{height:"auto"},exit:{height:0},transition:{type:"tween",duration:u?0:Dr,ease:"easeOut"},className:"boot-dropdown-item__children",children:d.map((l,c)=>(0,T.jsx)(jt,{to:l.to,shouldShowPlaceholder:!1,children:l.label},c))})})]})}var A=i(v(),1),Bt=i(S(),1);var fa=i(ut(),1),L=i(f(),1);if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='c52b1efb2f']")){let t=document.createElement("style");t.setAttribute("data-wp-hash","c52b1efb2f"),t.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}")),document.head.appendChild(t)}var zr=.3,jr={initial:t=>({x:t==="forward"?100:-100,opacity:0}),animate:{x:0,opacity:1},exit:t=>({x:t==="forward"?100:-100,opacity:0})};function ua({isRoot:t,title:e,actions:o,content:a,description:r,animationDirection:s,backMenuItem:n,backButtonRef:d,navigationKey:u,onNavigate:l}){let c=(0,Bt.isRTL)()?ke:ve,E=(0,fa.useReducedMotion)(),_=b=>{b.preventDefault(),l({id:n,direction:"backward"})};return(0,L.jsx)("div",{className:"boot-navigation-screen",style:{overflow:"hidden",position:"relative",display:"grid",gridTemplateColumns:"1fr",gridTemplateRows:"1fr"},children:(0,L.jsx)(A.__unstableAnimatePresence,{initial:!1,children:(0,L.jsxs)(A.__unstableMotion.div,{custom:s,variants:jr,initial:"initial",animate:"animate",exit:"exit",transition:{type:"tween",duration:E?0:zr,ease:[.33,0,0,1]},style:{width:"100%",gridColumn:"1",gridRow:"1"},children:[(0,L.jsxs)(A.__experimentalHStack,{spacing:2,className:"boot-navigation-screen__title-icon",children:[!t&&(0,L.jsx)(A.Button,{ref:d,icon:c,onClick:_,label:(0,Bt.__)("Back"),size:"small",variant:"tertiary"}),(0,L.jsx)(A.__experimentalHeading,{className:"boot-navigation-screen__title",level:1,size:"15px",children:e}),o&&(0,L.jsx)("div",{className:"boot-navigation-screen__actions",children:o})]}),r&&(0,L.jsx)("div",{className:"boot-navigation-screen__description",children:r}),a]},u)})})}var gt=i(w(),1),ma=i(k(),1);import{privateApis as Or}from"@wordpress/route";var Br=(t,e)=>{if(!e||e===t)return!1;let o=s=>{let n=s.startsWith("/")?s:"/"+s;return n.endsWith("/")&&n.length>1?n.slice(0,-1):n},a=o(t),r=o(e);return a.startsWith(r)&&(a[r.length]==="/"||r==="/")},ze=(t,e)=>{let o=e.find(s=>s.to===t);if(o)return o;let a=null,r=0;for(let s of e)s.to&&Br(t,s.to)&&s.to.length>r&&(a=s,r=s.to.length);return a},Ot=(t,e)=>{if(!t)return;let o=e.find(a=>a.id===t);if(o&&o.parent){let a=e.find(r=>r.id===o.parent);if(a?.parent_type==="drilldown")return a.id;if(a)return Ot(a.id,e)}},je=(t,e)=>{if(!t)return;let o=e.find(a=>a.id===t);if(o&&o.parent){let a=e.find(r=>r.id===o.parent);if(a?.parent_type==="dropdown")return a.id}};var{useRouter:Ur,useMatches:Hr}=x(Or);function pa(){let t=Hr(),e=Ur(),o=(0,ma.useSelect)(l=>l(G).getMenuItems(),[]),a=t[t.length-1].pathname.slice(e.options.basepath?.length??0),r=ze(a,o),[s,n]=(0,gt.useState)(Ot(r?.id,o)),[d,u]=(0,gt.useState)(je(r?.id,o));return(0,gt.useEffect)(()=>{let l=ze(a,o),c=Ot(l?.id,o),E=je(l?.id,o);n(c),u(E)},[a,o]),[s,n,d,u]}var U=i(f(),1);function Vr(){let t=(0,q.useRef)(null),[e,o]=(0,q.useState)(null),[a,r,s,n]=pa(),d=(0,ca.useSelect)(m=>m(G).getMenuItems(),[]),u=(0,q.useMemo)(()=>d.find(m=>m.id===a),[d,a]),l=u?`drilldown-${u.id}`:"root",c=({id:m,direction:Qt})=>{o(Qt),r(m)},E=m=>{n(s===m?void 0:m)},_=(0,q.useMemo)(()=>d.filter(m=>m.parent===a),[d,a]),b=_.some(m=>!!m.icon);return(0,U.jsx)(ua,{isRoot:!u,title:u?u.label:"",backMenuItem:u?.parent,backButtonRef:t,animationDirection:e||void 0,navigationKey:l,onNavigate:c,content:(0,U.jsx)(U.Fragment,{children:_.map(m=>m.parent_type==="dropdown"?(0,U.jsx)(da,{id:m.id,className:"boot-navigation-item",icon:m.icon,shouldShowPlaceholder:b,isExpanded:s===m.id,onToggle:()=>E(m.id),children:m.label},m.id):m.parent_type==="drilldown"?(0,U.jsx)(sa,{id:m.id,icon:m.icon,shouldShowPlaceholder:b,onNavigate:c,children:m.label},m.id):(0,U.jsx)(jt,{to:m.to,icon:m.icon,shouldShowPlaceholder:b,children:m.label},m.id))})})}var ha=Vr;var rt=i(w(),1),ya=i(k(),1),W=i(S(),1),ka=i(F(),1),Ft=i(Te(),1);var Sa=i(Ut(),1),it=i(v(),1);var va=i(w(),1),Ht=i(wa(),1),xa=i(S(),1),at=i(k(),1),_a=i(F(),1),Oe=i(Ut(),1),Be="core/boot/save";function Vt({openSavePanel:t}){let{__experimentalGetDirtyEntityRecords:e,isSavingEntityRecord:o}=(0,at.useSelect)(_a.store),{hasNonPostEntityChanges:a,isPostSavingLocked:r}=(0,at.useSelect)(Oe.store),{savePost:s}=(0,at.useDispatch)(Oe.store),{registerShortcut:n,unregisterShortcut:d}=(0,at.useDispatch)(Ht.store);(0,va.useEffect)(()=>(n({name:Be,category:"global",description:(0,xa.__)("Save your changes."),keyCombination:{modifier:"primary",character:"s"}}),()=>{d(Be)}),[n,d]),(0,Ht.useShortcut)(Be,u=>{u.preventDefault();let l=e(),c=!!l.length,E=l.some(_=>o(_.kind,_.name,_.key));!c||E||(a()?t():r()||s())})}var z=i(f(),1);if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='a012fe845a']")){let t=document.createElement("style");t.setAttribute("data-wp-hash","a012fe845a"),t.appendChild(document.createTextNode(".boot-save-button{width:100%}")),document.head.appendChild(t)}function Ra(){let[t,e]=(0,rt.useState)(!1),{isSaving:o,dirtyEntityRecordsCount:a}=(0,ya.useSelect)(b=>{let{isSavingEntityRecord:m,__experimentalGetDirtyEntityRecords:Qt}=b(ka.store),We=Qt();return{isSaving:We.some(te=>m(te.kind,te.name,te.key)),dirtyEntityRecordsCount:We.length}},[]),[r,s]=(0,rt.useState)(!1);(0,rt.useEffect)(()=>{o&&s(!0)},[o]);let n=a>0;(0,rt.useEffect)(()=>{!o&&n&&s(!1)},[o,n]);function d(){r&&s(!1)}let u=n||r;if(Vt({openSavePanel:()=>e(!0)}),!u)return null;let l=r&&!n,c=o||l,_=l?(0,W.__)("Saved"):(0,W.sprintf)((0,W._n)("Review %d change\u2026","Review %d changes\u2026",a),a);return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(it.Tooltip,{text:n?_:void 0,shortcut:Ft.displayShortcut.primary("s"),children:(0,z.jsx)(it.Button,{variant:"primary",size:"compact",onClick:()=>e(!0),onBlur:d,disabled:c,accessibleWhenDisabled:!0,isBusy:o,"aria-keyshortcuts":Ft.rawShortcut.primary("s"),className:"boot-save-button",icon:l?pe:void 0,children:_})}),t&&(0,z.jsx)(it.Modal,{title:(0,W.__)("Review changes"),onRequestClose:()=>e(!1),size:"small",children:(0,z.jsx)(Sa.EntitiesSavedStates,{close:()=>e(!1),variant:"inline"})})]})}var H=i(f(),1);if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='e5d2041211']")){let t=document.createElement("style");t.setAttribute("data-wp-hash","e5d2041211"),t.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}")),document.head.appendChild(t)}function Ue(){return(0,H.jsxs)("div",{className:"boot-sidebar__scrollable",children:[(0,H.jsx)(Zo,{}),(0,H.jsx)("div",{className:"boot-sidebar__content",children:(0,H.jsx)(ha,{})}),(0,H.jsx)("div",{className:"boot-sidebar__footer",children:(0,H.jsx)(Ra,{})})]})}var Ia=i(w(),1),Na=i(v(),1),Ea=i(Ut(),1),Ca=i(S(),1);var He=i(f(),1);function Gt(){let[t,e]=(0,Ia.useState)(!1);return Vt({openSavePanel:()=>e(!0)}),t?(0,He.jsx)(Na.Modal,{className:"edit-site-save-panel__modal",onRequestClose:()=>e(!1),title:(0,Ca.__)("Review changes"),size:"small",children:(0,He.jsx)(Ea.EntitiesSavedStates,{close:()=>e(!1),variant:"inline"})}):!1}var Wt=i(w(),1);var qt=i(w(),1),Aa=i(v(),1);import{useNavigate as Gr}from"@wordpress/route";var $=i(v(),1);var Pa=i(ut(),1),Ta=i(S(),1);var Y=i(f(),1);if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='68d99fe376']")){let t=document.createElement("style");t.setAttribute("data-wp-hash","68d99fe376"),t.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}")),document.head.appendChild(t)}var Fr={edit:{opacity:0,scale:.2},hover:{opacity:1,scale:1,clipPath:"inset( 22% round 2px )"}};function La({length:t}){let e=(0,Pa.useReducedMotion)(),o=()=>{window.history.back()};if(t>1)return null;let a={duration:e?0:.3};return(0,Y.jsxs)($.__unstableMotion.div,{className:"boot-canvas-back-button",animate:"edit",initial:"edit",whileHover:"hover",whileTap:"tap",transition:a,children:[(0,Y.jsx)($.Button,{className:"boot-canvas-back-button__link",onClick:o,"aria-label":(0,Ta.__)("Go back"),__next40pxDefaultSize:!0,children:(0,Y.jsx)(Lt,{})}),(0,Y.jsx)($.__unstableMotion.div,{className:"boot-canvas-back-button__icon",variants:Fr,children:(0,Y.jsx)($.Icon,{icon:ue})})]})}var j=i(f(),1);function Ma({canvas:t}){let[e,o]=(0,qt.useState)(null),a=Gr();if((0,qt.useEffect)(()=>{import("@wordpress/lazy-editor").then(s=>{o(()=>s.Editor)}).catch(s=>{console.error("Failed to load lazy editor:",s)})},[]),!e)return(0,j.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%",padding:"2rem"},children:(0,j.jsx)(Aa.Spinner,{})});let r=t.isPreview?void 0:({length:s})=>(0,j.jsx)(La,{length:s});return(0,j.jsxs)("div",{style:{height:"100%",position:"relative"},children:[(0,j.jsx)("div",{style:{height:"100%"},inert:t.isPreview?"true":void 0,children:(0,j.jsx)(e,{postType:t.postType,postId:t.postId,settings:{isPreviewMode:t.isPreview},backButton:r})}),t.isPreview&&t.editLink&&(0,j.jsx)("div",{onClick:()=>a({to:t.editLink}),onKeyDown:s=>{(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),a({to:t.editLink}))},style:{position:"absolute",inset:0,cursor:"pointer",zIndex:1},role:"button",tabIndex:0,"aria-label":"Click to edit"})]})}var Ve=i(f(),1);function Yt({canvas:t,routeContentModule:e}){let[o,a]=(0,Wt.useState)(null);return(0,Wt.useEffect)(()=>{t===null&&e?import(e).then(r=>{a(()=>r.canvas)}).catch(r=>{console.error("Failed to load custom canvas:",r)}):a(null)},[t,e]),t===void 0?null:t===null?o?(0,Ve.jsx)(o,{}):null:(0,Ve.jsx)(Ma,{canvas:t})}var bt=i(w(),1),Da=i(k(),1),za=i(F(),1),$t=i(S(),1),Fe=i(Pe(),1);import{speak as qr}from"@wordpress/a11y";import{privateApis as Wr}from"@wordpress/route";var{useLocation:Yr,useMatches:$r}=x(Wr);function Kt(){let t=Yr(),e=$r(),a=e[e.length-1]?.loaderData?.title,r=(0,Da.useSelect)(n=>n(za.store).getEntityRecord("root","__unstableBase")?.name,[]),s=(0,bt.useRef)(!0);(0,bt.useEffect)(()=>{s.current=!1},[t]),(0,bt.useEffect)(()=>{if(!s.current&&a&&typeof a=="string"&&r&&typeof r=="string"){let n=(0,Fe.decodeEntities)(a),d=(0,Fe.decodeEntities)(r),u=(0,$t.sprintf)((0,$t.__)("%1$s \u2039 %2$s \u2014 WordPress"),n,d);document.title=u,n&&qr(n,"assertive")}},[a,r,t])}var ja=i(ko(),1);var Ba=i(f(),1),Kr=x(ja.privateApis).ThemeProvider,Xr=new Map([["light","#0085ba"],["modern","#3858e9"],["blue","#096484"],["coffee","#46403c"],["ectoplasm","#523f6d"],["midnight","#e14d43"],["ocean","#627c83"],["sunrise","#dd823b"]]);function Jr(){let t=document.body.className.match(/admin-color-([a-z]+)/)?.[1];return t&&Xr.get(t)}function V({color:t,...e}){let o=Jr();return(0,Ba.jsx)(Kr,{...e,color:{primary:o,...t}})}var p=i(f(),1);if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='d1ebf43fe1']")){let t=document.createElement("style");t.setAttribute("data-wp-hash","d1ebf43fe1"),t.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,#fff);border-bottom:1px solid var(--wpds-color-stroke-surface-neutral-weak,#ddd);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,#fff);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--single-page .boot-layout__inspector,.boot-layout--single-page .boot-layout__stage{height: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,#fff);border:1px solid var(--wpds-color-stroke-surface-neutral-weak,#ddd);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--single-page .boot-layout__canvas{height: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}}")),document.head.appendChild(t)}var{useLocation:Qr,useMatches:ti,Outlet:ei}=x(Zr);function Ge(){let t=ti(),e=Qr(),o=t[t.length-1],a=o?.loaderData?.canvas,r=o?.loaderData?.routeContentModule,s=a&&!a.isPreview;Kt();let n=(0,Jt.useViewportMatch)("medium","<"),[d,u]=(0,Zt.useState)(!1),l=(0,Jt.useReducedMotion)();return(0,Zt.useEffect)(()=>{u(!1)},[e.pathname,n]),(0,p.jsx)(C.SlotFillProvider,{children:(0,p.jsx)(V,{isRoot:!0,color:{bg:"#f8f8f8"},children:(0,p.jsx)(V,{color:{bg:"#1d2327"},children:(0,p.jsxs)("div",{className:h("boot-layout",{"has-canvas":!!a||a===null,"has-full-canvas":s}),children:[(0,p.jsx)(Gt,{}),(0,p.jsx)(Oa.SnackbarNotices,{className:"boot-notices__snackbar"}),n&&(0,p.jsx)(pt.SidebarToggleFill,{children:(0,p.jsx)(C.Button,{icon:Ct,onClick:()=>u(!0),label:(0,Xt.__)("Open navigation panel"),size:"compact"})}),(0,p.jsx)(C.__unstableAnimatePresence,{children:n&&d&&!s&&(0,p.jsx)(C.__unstableMotion.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{type:"tween",duration:l?0:.2,ease:"easeOut"},className:"boot-layout__sidebar-backdrop",onClick:()=>u(!1),onKeyDown:c=>{c.key==="Escape"&&u(!1)},role:"button",tabIndex:-1,"aria-label":(0,Xt.__)("Close navigation panel")})}),(0,p.jsx)(C.__unstableAnimatePresence,{children:n&&d&&!s&&(0,p.jsx)(C.__unstableMotion.div,{initial:{x:"-100%"},animate:{x:0},exit:{x:"-100%"},transition:{type:"tween",duration:l?0:.2,ease:"easeOut"},className:"boot-layout__sidebar is-mobile",children:(0,p.jsx)(Ue,{})})}),!n&&!s&&(0,p.jsx)("div",{className:"boot-layout__sidebar",children:(0,p.jsx)(Ue,{})}),(0,p.jsx)("div",{className:"boot-layout__surfaces",children:(0,p.jsxs)(V,{color:{bg:"#ffffff"},children:[(0,p.jsx)(ei,{}),(a||a===null)&&(0,p.jsxs)("div",{className:h("boot-layout__canvas",{"has-mobile-drawer":a?.isPreview&&n}),children:[a?.isPreview&&n&&(0,p.jsx)("div",{className:"boot-layout__mobile-sidebar-drawer",children:(0,p.jsx)(C.Button,{icon:Ct,onClick:()=>u(!0),label:(0,Xt.__)("Open navigation panel"),size:"compact"})}),(0,p.jsx)(Yt,{canvas:a,routeContentModule:r})]})]})})]})})})})}var N=i(f(),1),{createLazyRoute:ai,createRouter:ri,createRootRoute:ii,createRoute:si,RouterProvider:ni,createBrowserHistory:li,parseHref:di,useLoaderData:fi}=x(oi);function ui(){return(0,N.jsx)("div",{className:"boot-layout__stage",children:(0,N.jsx)(pt,{title:(0,qe.__)("Route not found"),hasPadding:!0,children:(0,qe.__)("The page you're looking for does not exist")})})}function mi(t,e){let o=si({getParentRoute:()=>e,path:t.path,beforeLoad:async a=>{if(t.route_module){let s=(await import(t.route_module)).route||{};if(s.beforeLoad)return s.beforeLoad({params:a.params||{},search:a.search||{}})}},loader:async a=>{let r={};t.route_module&&(r=(await import(t.route_module)).route||{});let s={params:a.params||{},search:a.deps||{}},[,n,d,u]=await Promise.all([(0,Ha.resolveSelect)(Va.store).getEntityRecord("root","__unstableBase"),r.loader?r.loader(s):Promise.resolve(void 0),r.canvas?r.canvas(s):Promise.resolve(void 0),r.title?r.title(s):Promise.resolve(void 0)]),l=!0;return r.inspector&&(l=await r.inspector(s)),{...n,canvas:d,inspector:l,title:u,routeContentModule:t.content_module}},loaderDeps:a=>a.search});return o=o.lazy(async()=>{let a=t.content_module?await import(t.content_module):{},r=a.stage,s=a.inspector;return ai(t.path)({component:function(){let{inspector:d}=fi({from:t.path})??{};return(0,N.jsxs)(N.Fragment,{children:[r&&(0,N.jsx)("div",{className:"boot-layout__stage",children:(0,N.jsx)(r,{})}),s&&d&&(0,N.jsx)("div",{className:"boot-layout__inspector",children:(0,N.jsx)(s,{})})]})}})}),o}function pi(t,e=Ge){let o=ii({component:e,context:()=>({})}),a=t.map(r=>mi(r,o));return o.addChildren(a)}function ci(){return li({parseLocation:()=>{let t=new URL(window.location.href),o=`${t.searchParams.get("p")||"/"}${t.hash}`;return di(o,window.history.state)},createHref:t=>{let e=new URLSearchParams(window.location.search);return e.set("p",t),`${window.location.pathname}?${e}`}})}function Fa({routes:t,rootComponent:e=Ge}){let o=(0,Ua.useMemo)(()=>{let a=ci(),r=pi(t,e);return ri({history:a,routeTree:r,defaultPreload:"intent",defaultNotFoundComponent:ui,defaultViewTransition:{types:({fromLocation:s})=>s?["navigate"]:!1}})},[t,e]);return(0,N.jsx)(ni,{router:o})}var Ga=i(Ce(),1),qa=i(v(),1);import{privateApis as hi}from"@wordpress/route";var y=i(f(),1);if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='d1ebf43fe1']")){let t=document.createElement("style");t.setAttribute("data-wp-hash","d1ebf43fe1"),t.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,#fff);border-bottom:1px solid var(--wpds-color-stroke-surface-neutral-weak,#ddd);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,#fff);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--single-page .boot-layout__inspector,.boot-layout--single-page .boot-layout__stage{height: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,#fff);border:1px solid var(--wpds-color-stroke-surface-neutral-weak,#ddd);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--single-page .boot-layout__canvas{height: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}}")),document.head.appendChild(t)}var{useMatches:gi,Outlet:bi}=x(hi);function Wa(){let t=gi(),e=t[t.length-1],o=e?.loaderData?.canvas,a=e?.loaderData?.routeContentModule,r=o&&!o.isPreview;return Kt(),(0,y.jsx)(qa.SlotFillProvider,{children:(0,y.jsx)(V,{isRoot:!0,color:{bg:"#f8f8f8"},children:(0,y.jsx)(V,{color:{bg:"#1d2327"},children:(0,y.jsxs)("div",{className:h("boot-layout boot-layout--single-page",{"has-canvas":!!o||o===null,"has-full-canvas":r}),children:[(0,y.jsx)(Gt,{}),(0,y.jsx)(Ga.SnackbarNotices,{className:"boot-notices__snackbar"}),(0,y.jsx)("div",{className:"boot-layout__surfaces",children:(0,y.jsxs)(V,{color:{bg:"#ffffff"},children:[(0,y.jsx)(bi,{}),(o||o===null)&&(0,y.jsx)("div",{className:"boot-layout__canvas",children:(0,y.jsx)(Yt,{canvas:o,routeContentModule:a})})]})})]})})})})}var st=i(f(),1);function Ya({rootComponent:t}){let e=(0,K.useSelect)(o=>o(P).getRoutes(),[]);return(0,st.jsx)(Fa,{routes:e,rootComponent:t})}async function wi({mountId:t,menuItems:e,routes:o,initModules:a,dashboardLink:r}){(e??[]).forEach(n=>{(0,K.dispatch)(P).registerMenuItem(n.id,n)}),(o??[]).forEach(n=>{(0,K.dispatch)(P).registerRoute(n)}),r&&(0,K.dispatch)(P).setDashboardLink(r);for(let n of a??[])await(await import(n)).init();let s=document.getElementById(t);s&&(0,nt.createRoot)(s).render((0,st.jsx)(nt.StrictMode,{children:(0,st.jsx)(Ya,{})}))}async function vi({mountId:t,routes:e}){(e??[]).forEach(a=>{(0,K.dispatch)(P).registerRoute(a)});let o=document.getElementById(t);o&&(0,nt.createRoot)(o).render((0,st.jsx)(nt.StrictMode,{children:(0,st.jsx)(Ya,{rootComponent:Wa})}))}if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='e39fdc0848']")){let t=document.createElement("style");t.setAttribute("data-wp-hash","e39fdc0848"),t.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-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-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}@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-lg,16px) 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-xl,20px);font-weight:var(--wpds-font-weight-medium,499);line-height:var(--wpds-font-line-height-xl,32px);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-size:15px;font-weight:500;gap:0;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}')),document.head.appendChild(t)}if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='2a741c061f']")){let t=document.createElement("style");t.setAttribute("data-wp-hash","2a741c061f"),t.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%)}}")),document.head.appendChild(t)}export{wi as init,vi as initSinglePage,P as store}; boot/index.js 0000644 00000337040 15206736335 0007175 0 ustar 00 var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // package-external:@wordpress/element var require_element = __commonJS({ "package-external:@wordpress/element"(exports, module) { module.exports = window.wp.element; } }); // package-external:@wordpress/data var require_data = __commonJS({ "package-external:@wordpress/data"(exports, module) { module.exports = window.wp.data; } }); // package-external:@wordpress/i18n var require_i18n = __commonJS({ "package-external:@wordpress/i18n"(exports, module) { module.exports = window.wp.i18n; } }); // package-external:@wordpress/components var require_components = __commonJS({ "package-external:@wordpress/components"(exports, module) { module.exports = window.wp.components; } }); // vendor-external:react/jsx-runtime var require_jsx_runtime = __commonJS({ "vendor-external:react/jsx-runtime"(exports, module) { module.exports = window.ReactJSXRuntime; } }); // vendor-external:react var require_react = __commonJS({ "vendor-external:react"(exports, module) { module.exports = window.React; } }); // package-external:@wordpress/primitives var require_primitives = __commonJS({ "package-external:@wordpress/primitives"(exports, module) { module.exports = window.wp.primitives; } }); // package-external:@wordpress/theme var require_theme = __commonJS({ "package-external:@wordpress/theme"(exports, module) { module.exports = window.wp.theme; } }); // package-external:@wordpress/private-apis var require_private_apis = __commonJS({ "package-external:@wordpress/private-apis"(exports, module) { module.exports = window.wp.privateApis; } }); // package-external:@wordpress/compose var require_compose = __commonJS({ "package-external:@wordpress/compose"(exports, module) { module.exports = window.wp.compose; } }); // package-external:@wordpress/core-data var require_core_data = __commonJS({ "package-external:@wordpress/core-data"(exports, module) { module.exports = window.wp.coreData; } }); // package-external:@wordpress/notices var require_notices = __commonJS({ "package-external:@wordpress/notices"(exports, module) { module.exports = window.wp.notices; } }); // package-external:@wordpress/html-entities var require_html_entities = __commonJS({ "package-external:@wordpress/html-entities"(exports, module) { module.exports = window.wp.htmlEntities; } }); // package-external:@wordpress/keycodes var require_keycodes = __commonJS({ "package-external:@wordpress/keycodes"(exports, module) { module.exports = window.wp.keycodes; } }); // package-external:@wordpress/commands var require_commands = __commonJS({ "package-external:@wordpress/commands"(exports, module) { module.exports = window.wp.commands; } }); // package-external:@wordpress/url var require_url = __commonJS({ "package-external:@wordpress/url"(exports, module) { module.exports = window.wp.url; } }); // package-external:@wordpress/editor var require_editor = __commonJS({ "package-external:@wordpress/editor"(exports, module) { module.exports = window.wp.editor; } }); // package-external:@wordpress/keyboard-shortcuts var require_keyboard_shortcuts = __commonJS({ "package-external:@wordpress/keyboard-shortcuts"(exports, module) { module.exports = window.wp.keyboardShortcuts; } }); // packages/boot/build-module/components/app/index.mjs var import_element16 = __toESM(require_element(), 1); var import_data11 = __toESM(require_data(), 1); // packages/boot/build-module/components/app/router.mjs var import_i18n11 = __toESM(require_i18n(), 1); var import_element15 = __toESM(require_element(), 1); // node_modules/clsx/dist/clsx.mjs function r(e) { var t, f, n = ""; if ("string" == typeof e || "number" == typeof e) n += e; else if ("object" == typeof e) if (Array.isArray(e)) { var o = e.length; for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f); } else for (f in e) e[f] && (n && (n += " "), n += f); return n; } function clsx() { for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t); return n; } var clsx_default = clsx; // packages/admin-ui/build-module/navigable-region/index.mjs var import_element = __toESM(require_element(), 1); var import_jsx_runtime = __toESM(require_jsx_runtime(), 1); var NavigableRegion = (0, import_element.forwardRef)( ({ children, className, ariaLabel, as: Tag = "div", ...props }, ref) => { return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( Tag, { ref, className: clsx_default("admin-ui-navigable-region", className), "aria-label": ariaLabel, role: "region", tabIndex: "-1", ...props, children } ); } ); NavigableRegion.displayName = "NavigableRegion"; var navigable_region_default = NavigableRegion; // node_modules/@base-ui/utils/esm/useRefWithInit.js var React = __toESM(require_react(), 1); var UNINITIALIZED = {}; function useRefWithInit(init2, initArg) { const ref = React.useRef(UNINITIALIZED); if (ref.current === UNINITIALIZED) { ref.current = init2(initArg); } return ref; } // node_modules/@base-ui/react/esm/utils/useRenderElement.js var React4 = __toESM(require_react(), 1); // node_modules/@base-ui/utils/esm/useMergedRefs.js function useMergedRefs(a, b, c, d) { const forkRef = useRefWithInit(createForkRef).current; if (didChange(forkRef, a, b, c, d)) { update(forkRef, [a, b, c, d]); } return forkRef.callback; } function useMergedRefsN(refs) { const forkRef = useRefWithInit(createForkRef).current; if (didChangeN(forkRef, refs)) { update(forkRef, refs); } return forkRef.callback; } function createForkRef() { return { callback: null, cleanup: null, refs: [] }; } function didChange(forkRef, a, b, c, d) { return forkRef.refs[0] !== a || forkRef.refs[1] !== b || forkRef.refs[2] !== c || forkRef.refs[3] !== d; } function didChangeN(forkRef, newRefs) { return forkRef.refs.length !== newRefs.length || forkRef.refs.some((ref, index) => ref !== newRefs[index]); } function update(forkRef, refs) { forkRef.refs = refs; if (refs.every((ref) => ref == null)) { forkRef.callback = null; return; } forkRef.callback = (instance) => { if (forkRef.cleanup) { forkRef.cleanup(); forkRef.cleanup = null; } if (instance != null) { const cleanupCallbacks = Array(refs.length).fill(null); for (let i = 0; i < refs.length; i += 1) { const ref = refs[i]; if (ref == null) { continue; } switch (typeof ref) { case "function": { const refCleanup = ref(instance); if (typeof refCleanup === "function") { cleanupCallbacks[i] = refCleanup; } break; } case "object": { ref.current = instance; break; } default: } } forkRef.cleanup = () => { for (let i = 0; i < refs.length; i += 1) { const ref = refs[i]; if (ref == null) { continue; } switch (typeof ref) { case "function": { const cleanupCallback = cleanupCallbacks[i]; if (typeof cleanupCallback === "function") { cleanupCallback(); } else { ref(null); } break; } case "object": { ref.current = null; break; } default: } } }; } }; } // node_modules/@base-ui/utils/esm/getReactElementRef.js var React3 = __toESM(require_react(), 1); // node_modules/@base-ui/utils/esm/reactVersion.js var React2 = __toESM(require_react(), 1); var majorVersion = parseInt(React2.version, 10); function isReactVersionAtLeast(reactVersionToCheck) { return majorVersion >= reactVersionToCheck; } // node_modules/@base-ui/utils/esm/getReactElementRef.js function getReactElementRef(element) { if (!/* @__PURE__ */ React3.isValidElement(element)) { return null; } const reactElement = element; const propsWithRef = reactElement.props; return (isReactVersionAtLeast(19) ? propsWithRef?.ref : reactElement.ref) ?? null; } // node_modules/@base-ui/utils/esm/mergeObjects.js function mergeObjects(a, b) { if (a && !b) { return a; } if (!a && b) { return b; } if (a || b) { return { ...a, ...b }; } return void 0; } // node_modules/@base-ui/react/esm/utils/getStateAttributesProps.js function getStateAttributesProps(state, customMapping) { const props = {}; for (const key in state) { const value = state[key]; if (customMapping?.hasOwnProperty(key)) { const customProps = customMapping[key](value); if (customProps != null) { Object.assign(props, customProps); } continue; } if (value === true) { props[`data-${key.toLowerCase()}`] = ""; } else if (value) { props[`data-${key.toLowerCase()}`] = value.toString(); } } return props; } // node_modules/@base-ui/react/esm/utils/resolveClassName.js function resolveClassName(className, state) { return typeof className === "function" ? className(state) : className; } // node_modules/@base-ui/react/esm/utils/resolveStyle.js function resolveStyle(style, state) { return typeof style === "function" ? style(state) : style; } // node_modules/@base-ui/react/esm/merge-props/mergeProps.js var EMPTY_PROPS = {}; function mergeProps(a, b, c, d, e) { let merged = { ...resolvePropsGetter(a, EMPTY_PROPS) }; if (b) { merged = mergeOne(merged, b); } if (c) { merged = mergeOne(merged, c); } if (d) { merged = mergeOne(merged, d); } if (e) { merged = mergeOne(merged, e); } return merged; } function mergePropsN(props) { if (props.length === 0) { return EMPTY_PROPS; } if (props.length === 1) { return resolvePropsGetter(props[0], EMPTY_PROPS); } let merged = { ...resolvePropsGetter(props[0], EMPTY_PROPS) }; for (let i = 1; i < props.length; i += 1) { merged = mergeOne(merged, props[i]); } return merged; } function mergeOne(merged, inputProps) { if (isPropsGetter(inputProps)) { return inputProps(merged); } return mutablyMergeInto(merged, inputProps); } function mutablyMergeInto(mergedProps, externalProps) { if (!externalProps) { return mergedProps; } for (const propName in externalProps) { const externalPropValue = externalProps[propName]; switch (propName) { case "style": { mergedProps[propName] = mergeObjects(mergedProps.style, externalPropValue); break; } case "className": { mergedProps[propName] = mergeClassNames(mergedProps.className, externalPropValue); break; } default: { if (isEventHandler(propName, externalPropValue)) { mergedProps[propName] = mergeEventHandlers(mergedProps[propName], externalPropValue); } else { mergedProps[propName] = externalPropValue; } } } } return mergedProps; } function isEventHandler(key, value) { const code0 = key.charCodeAt(0); const code1 = key.charCodeAt(1); const code2 = key.charCodeAt(2); return code0 === 111 && code1 === 110 && code2 >= 65 && code2 <= 90 && (typeof value === "function" || typeof value === "undefined"); } function isPropsGetter(inputProps) { return typeof inputProps === "function"; } function resolvePropsGetter(inputProps, previousProps) { if (isPropsGetter(inputProps)) { return inputProps(previousProps); } return inputProps ?? EMPTY_PROPS; } function mergeEventHandlers(ourHandler, theirHandler) { if (!theirHandler) { return ourHandler; } if (!ourHandler) { return theirHandler; } return (event) => { if (isSyntheticEvent(event)) { const baseUIEvent = event; makeEventPreventable(baseUIEvent); const result2 = theirHandler(baseUIEvent); if (!baseUIEvent.baseUIHandlerPrevented) { ourHandler?.(baseUIEvent); } return result2; } const result = theirHandler(event); ourHandler?.(event); return result; }; } function makeEventPreventable(event) { event.preventBaseUIHandler = () => { event.baseUIHandlerPrevented = true; }; return event; } function mergeClassNames(ourClassName, theirClassName) { if (theirClassName) { if (ourClassName) { return theirClassName + " " + ourClassName; } return theirClassName; } return ourClassName; } function isSyntheticEvent(event) { return event != null && typeof event === "object" && "nativeEvent" in event; } // node_modules/@base-ui/utils/esm/empty.js var EMPTY_ARRAY = Object.freeze([]); var EMPTY_OBJECT = Object.freeze({}); // node_modules/@base-ui/react/esm/utils/useRenderElement.js var import_react = __toESM(require_react(), 1); function useRenderElement(element, componentProps, params = {}) { const renderProp = componentProps.render; const outProps = useRenderElementProps(componentProps, params); if (params.enabled === false) { return null; } const state = params.state ?? EMPTY_OBJECT; return evaluateRenderProp(element, renderProp, outProps, state); } function useRenderElementProps(componentProps, params = {}) { const { className: classNameProp, style: styleProp, render: renderProp } = componentProps; const { state = EMPTY_OBJECT, ref, props, stateAttributesMapping, enabled = true } = params; const className = enabled ? resolveClassName(classNameProp, state) : void 0; const style = enabled ? resolveStyle(styleProp, state) : void 0; const stateProps = enabled ? getStateAttributesProps(state, stateAttributesMapping) : EMPTY_OBJECT; const outProps = enabled ? mergeObjects(stateProps, Array.isArray(props) ? mergePropsN(props) : props) ?? EMPTY_OBJECT : EMPTY_OBJECT; if (typeof document !== "undefined") { if (!enabled) { useMergedRefs(null, null); } else if (Array.isArray(ref)) { outProps.ref = useMergedRefsN([outProps.ref, getReactElementRef(renderProp), ...ref]); } else { outProps.ref = useMergedRefs(outProps.ref, getReactElementRef(renderProp), ref); } } if (!enabled) { return EMPTY_OBJECT; } if (className !== void 0) { outProps.className = mergeClassNames(outProps.className, className); } if (style !== void 0) { outProps.style = mergeObjects(outProps.style, style); } return outProps; } function evaluateRenderProp(element, render, props, state) { if (render) { if (typeof render === "function") { return render(props, state); } const mergedProps = mergeProps(props, render.props); mergedProps.ref = props.ref; return /* @__PURE__ */ React4.cloneElement(render, mergedProps); } if (element) { if (typeof element === "string") { return renderTag(element, props); } } throw new Error(true ? "Base UI: Render element or function are not defined." : formatErrorMessage(8)); } function renderTag(Tag, props) { if (Tag === "button") { return /* @__PURE__ */ (0, import_react.createElement)("button", { type: "button", ...props, key: props.key }); } if (Tag === "img") { return /* @__PURE__ */ (0, import_react.createElement)("img", { alt: "", ...props, key: props.key }); } return /* @__PURE__ */ React4.createElement(Tag, props); } // node_modules/@base-ui/react/esm/use-render/useRender.js function useRender(params) { return useRenderElement(params.defaultTagName ?? "div", params, params); } // packages/icons/build-module/icon/index.mjs var import_element2 = __toESM(require_element(), 1); var icon_default = (0, import_element2.forwardRef)( ({ icon, size = 24, ...props }, ref) => { return (0, import_element2.cloneElement)(icon, { width: size, height: size, ...props, ref }); } ); // packages/icons/build-module/library/arrow-up-left.mjs var import_primitives = __toESM(require_primitives(), 1); var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1); var arrow_up_left_default = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives.Path, { d: "M14 6H6v8h1.5V8.5L17 18l1-1-9.5-9.5H14V6Z" }) }); // packages/icons/build-module/library/check.mjs var import_primitives2 = __toESM(require_primitives(), 1); var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1); var check_default = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives2.Path, { d: "M16.5 7.5 10 13.9l-2.5-2.4-1 1 3.5 3.6 7.5-7.6z" }) }); // packages/icons/build-module/library/chevron-down-small.mjs var import_primitives3 = __toESM(require_primitives(), 1); var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1); var chevron_down_small_default = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives3.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" }) }); // packages/icons/build-module/library/chevron-left-small.mjs var import_primitives4 = __toESM(require_primitives(), 1); var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1); var chevron_left_small_default = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives4.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives4.Path, { d: "m13.1 16-3.4-4 3.4-4 1.1 1-2.6 3 2.6 3-1.1 1z" }) }); // packages/icons/build-module/library/chevron-left.mjs var import_primitives5 = __toESM(require_primitives(), 1); var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1); var chevron_left_default = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives5.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives5.Path, { d: "M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z" }) }); // packages/icons/build-module/library/chevron-right-small.mjs var import_primitives6 = __toESM(require_primitives(), 1); var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1); var chevron_right_small_default = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives6.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives6.Path, { d: "M10.8622 8.04053L14.2805 12.0286L10.8622 16.0167L9.72327 15.0405L12.3049 12.0286L9.72327 9.01672L10.8622 8.04053Z" }) }); // packages/icons/build-module/library/chevron-right.mjs var import_primitives7 = __toESM(require_primitives(), 1); var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1); var chevron_right_default = /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_primitives7.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_primitives7.Path, { d: "M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z" }) }); // packages/icons/build-module/library/menu.mjs var import_primitives8 = __toESM(require_primitives(), 1); var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1); var menu_default = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_primitives8.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_primitives8.Path, { d: "M5 5v1.5h14V5H5zm0 7.8h14v-1.5H5v1.5zM5 19h14v-1.5H5V19z" }) }); // packages/icons/build-module/library/search.mjs var import_primitives9 = __toESM(require_primitives(), 1); var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1); var search_default = /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_primitives9.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_primitives9.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" }) }); // packages/icons/build-module/library/wordpress.mjs var import_primitives10 = __toESM(require_primitives(), 1); var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1); var wordpress_default = /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_primitives10.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "-2 -2 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_primitives10.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" }) }); // packages/ui/build-module/stack/stack.mjs var import_element3 = __toESM(require_element(), 1); if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='71d20935c2']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "71d20935c2"); style.appendChild(document.createTextNode("@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{._19ce0419607e1896__stack{display:flex}}")); document.head.appendChild(style); } var style_default = { "stack": "_19ce0419607e1896__stack" }; var gapTokens = { xs: "var(--wpds-dimension-gap-xs, 4px)", sm: "var(--wpds-dimension-gap-sm, 8px)", md: "var(--wpds-dimension-gap-md, 12px)", lg: "var(--wpds-dimension-gap-lg, 16px)", xl: "var(--wpds-dimension-gap-xl, 24px)", "2xl": "var(--wpds-dimension-gap-2xl, 32px)", "3xl": "var(--wpds-dimension-gap-3xl, 40px)" }; var Stack = (0, import_element3.forwardRef)(function Stack2({ direction, gap, align, justify, wrap, render, ...props }, ref) { const style = { gap: gap && gapTokens[gap], alignItems: align, justifyContent: justify, flexDirection: direction, flexWrap: wrap }; const element = useRender({ render, ref, props: mergeProps(props, { style, className: style_default.stack }) }); return element; }); // packages/admin-ui/build-module/page/sidebar-toggle-slot.mjs var import_components = __toESM(require_components(), 1); var { Fill: SidebarToggleFill, Slot: SidebarToggleSlot } = (0, import_components.createSlotFill)("SidebarToggle"); // packages/admin-ui/build-module/page/header.mjs var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1); function Header({ headingLevel = 1, breadcrumbs, badges, title, subTitle, actions, showSidebarToggle = true }) { const HeadingTag = `h${headingLevel}`; return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Stack, { direction: "column", className: "admin-ui-page__header", children: [ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Stack, { direction: "row", justify: "space-between", gap: "sm", children: [ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Stack, { direction: "row", gap: "sm", align: "center", justify: "start", children: [ showSidebarToggle && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)( SidebarToggleSlot, { bubblesVirtually: true, className: "admin-ui-page__sidebar-toggle-slot" } ), title && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(HeadingTag, { className: "admin-ui-page__header-title", children: title }), breadcrumbs, badges ] }), /* @__PURE__ */ (0, import_jsx_runtime12.jsx)( Stack, { direction: "row", gap: "sm", style: { width: "auto", flexShrink: 0 }, className: "admin-ui-page__header-actions", align: "center", children: actions } ) ] }), subTitle && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "admin-ui-page__header-subtitle", children: subTitle }) ] }); } // packages/admin-ui/build-module/page/index.mjs var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1); function Page({ headingLevel, breadcrumbs, badges, title, subTitle, children, className, actions, hasPadding = false, showSidebarToggle = true }) { const classes = clsx_default("admin-ui-page", className); return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(navigable_region_default, { className: classes, ariaLabel: title, children: [ (title || breadcrumbs || badges) && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( Header, { headingLevel, breadcrumbs, badges, title, subTitle, actions, showSidebarToggle } ), hasPadding ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "admin-ui-page__content has-padding", children }) : children ] }); } Page.SidebarToggleFill = SidebarToggleFill; var page_default = Page; // packages/boot/build-module/components/app/router.mjs var import_data10 = __toESM(require_data(), 1); var import_core_data6 = __toESM(require_core_data(), 1); import { privateApis as routePrivateApis6 } from "@wordpress/route"; // packages/boot/build-module/components/root/index.mjs var import_notices = __toESM(require_notices(), 1); var import_compose4 = __toESM(require_compose(), 1); var import_components14 = __toESM(require_components(), 1); import { privateApis as routePrivateApis5 } from "@wordpress/route"; var import_element14 = __toESM(require_element(), 1); var import_i18n10 = __toESM(require_i18n(), 1); // packages/boot/build-module/components/site-hub/index.mjs var import_data3 = __toESM(require_data(), 1); var import_components3 = __toESM(require_components(), 1); var import_i18n2 = __toESM(require_i18n(), 1); var import_core_data2 = __toESM(require_core_data(), 1); var import_html_entities = __toESM(require_html_entities(), 1); var import_keycodes = __toESM(require_keycodes(), 1); var import_commands = __toESM(require_commands(), 1); var import_url = __toESM(require_url(), 1); // packages/boot/build-module/components/site-icon-link/index.mjs var import_components2 = __toESM(require_components(), 1); import { Link, privateApis as routePrivateApis } from "@wordpress/route"; // packages/boot/build-module/lock-unlock.mjs var import_private_apis = __toESM(require_private_apis(), 1); var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)( "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.", "@wordpress/boot" ); // packages/boot/build-module/components/site-icon/index.mjs var import_data = __toESM(require_data(), 1); var import_i18n = __toESM(require_i18n(), 1); var import_core_data = __toESM(require_core_data(), 1); var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1); if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='1a8e849690']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "1a8e849690"); style.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}")); document.head.appendChild(style); } function SiteIcon({ className }) { const { isRequestingSite, siteIconUrl } = (0, import_data.useSelect)((select) => { const { getEntityRecord } = select(import_core_data.store); const siteData = getEntityRecord( "root", "__unstableBase", void 0 ); return { isRequestingSite: !siteData, siteIconUrl: siteData?.site_icon_url }; }, []); let icon = null; if (isRequestingSite && !siteIconUrl) { icon = /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "boot-site-icon__image" }); } else { icon = siteIconUrl ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)( "img", { className: "boot-site-icon__image", alt: (0, import_i18n.__)("Site Icon"), src: siteIconUrl } ) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)( icon_default, { className: "boot-site-icon__icon", icon: wordpress_default, size: 48 } ); } return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: clsx_default(className, "boot-site-icon"), children: icon }); } var site_icon_default = SiteIcon; // packages/boot/build-module/components/site-icon-link/index.mjs var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1); if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='3de37b6316']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "3de37b6316"); style.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,2px) solid var(--wpds-color-stroke-focus-brand,#0073aa);outline-offset:calc(var(--wpds-border-width-focus, 2px)*-1)}")); document.head.appendChild(style); } var { useCanGoBack, useRouter } = unlock(routePrivateApis); function SiteIconLink({ to, isBackButton, ...props }) { const router = useRouter(); const canGoBack = useCanGoBack(); return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_components2.Tooltip, { text: props["aria-label"], placement: "right", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( Link, { to, "aria-label": props["aria-label"], className: "boot-site-icon-link", onClick: (event) => { if (canGoBack && isBackButton) { event.preventDefault(); router.history.back(); } }, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(site_icon_default, {}) } ) }); } var site_icon_link_default = SiteIconLink; // packages/boot/build-module/store/index.mjs var import_data2 = __toESM(require_data(), 1); // packages/boot/build-module/store/reducer.mjs var initialState = { menuItems: {}, routes: [], dashboardLink: void 0 }; function reducer(state = initialState, action) { switch (action.type) { case "REGISTER_MENU_ITEM": return { ...state, menuItems: { ...state.menuItems, [action.id]: action.menuItem } }; case "UPDATE_MENU_ITEM": return { ...state, menuItems: { ...state.menuItems, [action.id]: { ...state.menuItems[action.id], ...action.updates } } }; case "REGISTER_ROUTE": return { ...state, routes: [...state.routes, action.route] }; case "SET_DASHBOARD_LINK": return { ...state, dashboardLink: action.dashboardLink }; } return state; } // packages/boot/build-module/store/actions.mjs var actions_exports = {}; __export(actions_exports, { registerMenuItem: () => registerMenuItem, registerRoute: () => registerRoute, setDashboardLink: () => setDashboardLink, updateMenuItem: () => updateMenuItem }); function registerMenuItem(id, menuItem) { return { type: "REGISTER_MENU_ITEM", id, menuItem }; } function updateMenuItem(id, updates) { return { type: "UPDATE_MENU_ITEM", id, updates }; } function registerRoute(route) { return { type: "REGISTER_ROUTE", route }; } function setDashboardLink(dashboardLink) { return { type: "SET_DASHBOARD_LINK", dashboardLink }; } // packages/boot/build-module/store/selectors.mjs var selectors_exports = {}; __export(selectors_exports, { getDashboardLink: () => getDashboardLink, getMenuItems: () => getMenuItems, getRoutes: () => getRoutes }); function getMenuItems(state) { return Object.values(state.menuItems); } function getRoutes(state) { return state.routes; } function getDashboardLink(state) { return state.dashboardLink; } // packages/boot/build-module/store/index.mjs var STORE_NAME = "wordpress/boot"; var store = (0, import_data2.createReduxStore)(STORE_NAME, { reducer, actions: actions_exports, selectors: selectors_exports }); (0, import_data2.register)(store); // packages/boot/build-module/components/site-hub/index.mjs var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1); if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='78184fe2c5']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "78184fe2c5"); style.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,2px) solid var(--wpds-color-stroke-focus-brand,#0073aa);outline-offset:calc(var(--wpds-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,#757575);font-size:12px}")); document.head.appendChild(style); } function SiteHub() { const { dashboardLink, homeUrl, siteTitle } = (0, import_data3.useSelect)((select) => { const { getEntityRecord } = select(import_core_data2.store); const _base = getEntityRecord( "root", "__unstableBase" ); return { dashboardLink: select(store).getDashboardLink(), homeUrl: _base?.home, siteTitle: !_base?.name && !!_base?.url ? (0, import_url.filterURLForDisplay)(_base?.url) : _base?.name }; }, []); const { open: openCommandCenter } = (0, import_data3.useDispatch)(import_commands.store); return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "boot-site-hub", children: [ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)( site_icon_link_default, { to: dashboardLink || "/", "aria-label": (0, import_i18n2.__)("Go to the Dashboard") } ), /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)( import_components3.ExternalLink, { href: homeUrl ?? "/", className: "boot-site-hub__title", children: [ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "boot-site-hub__title-text", children: siteTitle && (0, import_html_entities.decodeEntities)(siteTitle) }), /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "boot-site-hub__url", children: (0, import_url.filterURLForDisplay)(homeUrl ?? "") }) ] } ), /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_components3.__experimentalHStack, { className: "boot-site-hub__actions", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)( import_components3.Button, { variant: "tertiary", icon: search_default, onClick: () => openCommandCenter(), size: "compact", label: (0, import_i18n2.__)("Open command palette"), shortcut: import_keycodes.displayShortcut.primary("k") } ) }) ] }); } var site_hub_default = SiteHub; // packages/boot/build-module/components/navigation/index.mjs var import_element7 = __toESM(require_element(), 1); var import_data6 = __toESM(require_data(), 1); // packages/boot/build-module/components/navigation/navigation-item/index.mjs var import_components6 = __toESM(require_components(), 1); // packages/boot/build-module/components/navigation/router-link-item.mjs var import_element4 = __toESM(require_element(), 1); var import_components4 = __toESM(require_components(), 1); import { privateApis as routePrivateApis2 } from "@wordpress/route"; var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1); var { createLink } = unlock(routePrivateApis2); function AnchorOnlyItem(props, forwardedRef) { return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_components4.__experimentalItem, { as: "a", ref: forwardedRef, ...props }); } var RouterLinkItem = createLink((0, import_element4.forwardRef)(AnchorOnlyItem)); var router_link_item_default = RouterLinkItem; // packages/boot/build-module/components/navigation/items.mjs var import_element5 = __toESM(require_element(), 1); var import_components5 = __toESM(require_components(), 1); var import_primitives11 = __toESM(require_primitives(), 1); var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1); function isSvg(element) { return (0, import_element5.isValidElement)(element) && (element.type === import_primitives11.SVG || element.type === "svg"); } function wrapIcon(icon, shouldShowPlaceholder = true) { if (isSvg(icon)) { return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_components5.Icon, { icon }); } if (typeof icon === "string" && icon.startsWith("dashicons-")) { const iconKey = icon.replace( /^dashicons-/, "" ); return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( import_components5.Dashicon, { style: { padding: "2px" }, icon: iconKey, "aria-hidden": "true" } ); } if (typeof icon === "string" && icon.startsWith("data:")) { return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( "img", { src: icon, alt: "", "aria-hidden": "true", style: { width: "20px", height: "20px", display: "block", padding: "2px" } } ); } if (icon) { return icon; } if (shouldShowPlaceholder) { return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( "div", { style: { width: "24px", height: "24px" }, "aria-hidden": "true" } ); } return null; } // packages/boot/build-module/components/navigation/navigation-item/index.mjs var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1); if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='ead8c8ad15']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "ead8c8ad15"); style.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,#0073aa)}.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,#0073aa);font-weight:499}.boot-navigation-item.components-item:focus-visible{transform:translateZ(0)}.boot-navigation-item.components-item.with-suffix{padding-right:16px}')); document.head.appendChild(style); } function NavigationItem({ className, icon, shouldShowPlaceholder = true, children, to }) { const isExternal = !String( new URL(to, window.location.origin) ).startsWith(window.location.origin); const content = /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_components6.__experimentalHStack, { justify: "flex-start", spacing: 2, style: { flexGrow: "1" }, children: [ wrapIcon(icon, shouldShowPlaceholder), /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_components6.FlexBlock, { children }) ] }); if (isExternal) { return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)( import_components6.__experimentalItem, { as: "a", href: to, className: clsx_default("boot-navigation-item", className), children: content } ); } return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)( router_link_item_default, { to, className: clsx_default("boot-navigation-item", className), children: content } ); } // packages/boot/build-module/components/navigation/drilldown-item/index.mjs var import_components7 = __toESM(require_components(), 1); var import_i18n3 = __toESM(require_i18n(), 1); var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1); function DrilldownItem({ className, id, icon, shouldShowPlaceholder = true, children, onNavigate }) { const handleClick = (e) => { e.preventDefault(); onNavigate({ id, direction: "forward" }); }; return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)( import_components7.__experimentalItem, { className: clsx_default("boot-navigation-item", className), onClick: handleClick, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)( import_components7.__experimentalHStack, { justify: "flex-start", spacing: 2, style: { flexGrow: "1" }, children: [ wrapIcon(icon, shouldShowPlaceholder), /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_components7.FlexBlock, { children }), /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_components7.Icon, { icon: (0, import_i18n3.isRTL)() ? chevron_left_small_default : chevron_right_small_default }) ] } ) } ); } // packages/boot/build-module/components/navigation/dropdown-item/index.mjs var import_components8 = __toESM(require_components(), 1); var import_compose = __toESM(require_compose(), 1); var import_data4 = __toESM(require_data(), 1); var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1); if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='58e2debd11']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "58e2debd11"); style.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)}")); document.head.appendChild(style); } var ANIMATION_DURATION = 0.2; function DropdownItem({ className, id, icon, children, isExpanded, onToggle }) { const menuItems = (0, import_data4.useSelect)( (select) => ( // @ts-ignore select(STORE_NAME).getMenuItems() ), [] ); const items = menuItems.filter((item) => item.parent === id); const disableMotion = (0, import_compose.useReducedMotion)(); return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "boot-dropdown-item", children: [ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)( import_components8.__experimentalItem, { className: clsx_default("boot-navigation-item", className), onClick: (e) => { e.preventDefault(); e.stopPropagation(); onToggle(); }, onMouseDown: (e) => e.preventDefault(), children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)( import_components8.__experimentalHStack, { justify: "flex-start", spacing: 2, style: { flexGrow: "1" }, children: [ wrapIcon(icon, false), /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_components8.FlexBlock, { children }), /* @__PURE__ */ (0, import_jsx_runtime21.jsx)( import_components8.Icon, { icon: chevron_down_small_default, className: clsx_default("boot-dropdown-item__chevron", { "is-up": isExpanded }) } ) ] } ) } ), /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_components8.__unstableAnimatePresence, { initial: false, children: isExpanded && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)( import_components8.__unstableMotion.div, { initial: { height: 0 }, animate: { height: "auto" }, exit: { height: 0 }, transition: { type: "tween", duration: disableMotion ? 0 : ANIMATION_DURATION, ease: "easeOut" }, className: "boot-dropdown-item__children", children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)( NavigationItem, { to: item.to, shouldShowPlaceholder: false, children: item.label }, index )) } ) }) ] }); } // packages/boot/build-module/components/navigation/navigation-screen/index.mjs var import_components9 = __toESM(require_components(), 1); var import_i18n4 = __toESM(require_i18n(), 1); var import_compose2 = __toESM(require_compose(), 1); var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1); if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='c52b1efb2f']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "c52b1efb2f"); style.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}")); document.head.appendChild(style); } var ANIMATION_DURATION2 = 0.3; var slideVariants = { initial: (direction) => ({ x: direction === "forward" ? 100 : -100, opacity: 0 }), animate: { x: 0, opacity: 1 }, exit: (direction) => ({ x: direction === "forward" ? 100 : -100, opacity: 0 }) }; function NavigationScreen({ isRoot, title, actions, content, description, animationDirection, backMenuItem, backButtonRef, navigationKey, onNavigate }) { const icon = (0, import_i18n4.isRTL)() ? chevron_right_default : chevron_left_default; const disableMotion = (0, import_compose2.useReducedMotion)(); const handleBackClick = (e) => { e.preventDefault(); onNavigate({ id: backMenuItem, direction: "backward" }); }; return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)( "div", { className: "boot-navigation-screen", style: { overflow: "hidden", position: "relative", display: "grid", gridTemplateColumns: "1fr", gridTemplateRows: "1fr" }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_components9.__unstableAnimatePresence, { initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)( import_components9.__unstableMotion.div, { custom: animationDirection, variants: slideVariants, initial: "initial", animate: "animate", exit: "exit", transition: { type: "tween", duration: disableMotion ? 0 : ANIMATION_DURATION2, ease: [0.33, 0, 0, 1] }, style: { width: "100%", gridColumn: "1", gridRow: "1" }, children: [ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)( import_components9.__experimentalHStack, { spacing: 2, className: "boot-navigation-screen__title-icon", children: [ !isRoot && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)( import_components9.Button, { ref: backButtonRef, icon, onClick: handleBackClick, label: (0, import_i18n4.__)("Back"), size: "small", variant: "tertiary" } ), /* @__PURE__ */ (0, import_jsx_runtime22.jsx)( import_components9.__experimentalHeading, { className: "boot-navigation-screen__title", level: 1, size: "15px", children: title } ), actions && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "boot-navigation-screen__actions", children: actions }) ] } ), description && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "boot-navigation-screen__description", children: description }), content ] }, navigationKey ) }) } ); } // packages/boot/build-module/components/navigation/use-sidebar-parent.mjs var import_element6 = __toESM(require_element(), 1); var import_data5 = __toESM(require_data(), 1); import { privateApis as routePrivateApis3 } from "@wordpress/route"; // packages/boot/build-module/components/navigation/path-matching.mjs var isValidParentPath = (currentPath, menuPath) => { if (!menuPath || menuPath === currentPath) { return false; } const normalizePath = (path) => { const normalized = path.startsWith("/") ? path : "/" + path; return normalized.endsWith("/") && normalized.length > 1 ? normalized.slice(0, -1) : normalized; }; const normalizedCurrent = normalizePath(currentPath); const normalizedMenu = normalizePath(menuPath); return normalizedCurrent.startsWith(normalizedMenu) && (normalizedCurrent[normalizedMenu.length] === "/" || normalizedMenu === "/"); }; var findClosestMenuItem = (currentPath, menuItems) => { const exactMatch = menuItems.find((item) => item.to === currentPath); if (exactMatch) { return exactMatch; } let bestMatch = null; let bestPathLength = 0; for (const item of menuItems) { if (!item.to) { continue; } if (isValidParentPath(currentPath, item.to)) { if (item.to.length > bestPathLength) { bestMatch = item; bestPathLength = item.to.length; } } } return bestMatch; }; var findDrilldownParent = (id, menuItems) => { if (!id) { return void 0; } const currentItem = menuItems.find((item) => item.id === id); if (!currentItem) { return void 0; } if (currentItem.parent) { const parentItem = menuItems.find( (item) => item.id === currentItem.parent ); if (parentItem?.parent_type === "drilldown") { return parentItem.id; } if (parentItem) { return findDrilldownParent(parentItem.id, menuItems); } } return void 0; }; var findDropdownParent = (id, menuItems) => { if (!id) { return void 0; } const currentItem = menuItems.find((item) => item.id === id); if (!currentItem) { return void 0; } if (currentItem.parent) { const parentItem = menuItems.find( (item) => item.id === currentItem.parent ); if (parentItem?.parent_type === "dropdown") { return parentItem.id; } } return void 0; }; // packages/boot/build-module/components/navigation/use-sidebar-parent.mjs var { useRouter: useRouter2, useMatches } = unlock(routePrivateApis3); function useSidebarParent() { const matches = useMatches(); const router = useRouter2(); const menuItems = (0, import_data5.useSelect)( (select) => ( // @ts-ignore select(STORE_NAME).getMenuItems() ), [] ); const currentPath = matches[matches.length - 1].pathname.slice( router.options.basepath?.length ?? 0 ); const currentMenuItem = findClosestMenuItem(currentPath, menuItems); const [parentId, setParentId] = (0, import_element6.useState)( findDrilldownParent(currentMenuItem?.id, menuItems) ); const [parentDropdownId, setParentDropdownId] = (0, import_element6.useState)(findDropdownParent(currentMenuItem?.id, menuItems)); (0, import_element6.useEffect)(() => { const matchedMenuItem = findClosestMenuItem(currentPath, menuItems); const updatedParentId = findDrilldownParent( matchedMenuItem?.id, menuItems ); const updatedDropdownParent = findDropdownParent( matchedMenuItem?.id, menuItems ); setParentId(updatedParentId); setParentDropdownId(updatedDropdownParent); }, [currentPath, menuItems]); return [ parentId, setParentId, parentDropdownId, setParentDropdownId ]; } // packages/boot/build-module/components/navigation/index.mjs var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1); function Navigation() { const backButtonRef = (0, import_element7.useRef)(null); const [animationDirection, setAnimationDirection] = (0, import_element7.useState)(null); const [parentId, setParentId, parentDropdownId, setParentDropdownId] = useSidebarParent(); const menuItems = (0, import_data6.useSelect)( (select) => ( // @ts-ignore select(STORE_NAME).getMenuItems() ), [] ); const parent = (0, import_element7.useMemo)( () => menuItems.find((item) => item.id === parentId), [menuItems, parentId] ); const navigationKey = parent ? `drilldown-${parent.id}` : "root"; const handleNavigate = ({ id, direction }) => { setAnimationDirection(direction); setParentId(id); }; const handleDropdownToggle = (dropdownId) => { setParentDropdownId( parentDropdownId === dropdownId ? void 0 : dropdownId ); }; const items = (0, import_element7.useMemo)( () => menuItems.filter((item) => item.parent === parentId), [menuItems, parentId] ); const hasRealIcons = items.some((item) => !!item.icon); return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)( NavigationScreen, { isRoot: !parent, title: parent ? parent.label : "", backMenuItem: parent?.parent, backButtonRef, animationDirection: animationDirection || void 0, navigationKey, onNavigate: handleNavigate, content: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_jsx_runtime23.Fragment, { children: items.map((item) => { if (item.parent_type === "dropdown") { return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)( DropdownItem, { id: item.id, className: "boot-navigation-item", icon: item.icon, shouldShowPlaceholder: hasRealIcons, isExpanded: parentDropdownId === item.id, onToggle: () => handleDropdownToggle(item.id), children: item.label }, item.id ); } if (item.parent_type === "drilldown") { return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)( DrilldownItem, { id: item.id, icon: item.icon, shouldShowPlaceholder: hasRealIcons, onNavigate: handleNavigate, children: item.label }, item.id ); } return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)( NavigationItem, { to: item.to, icon: item.icon, shouldShowPlaceholder: hasRealIcons, children: item.label }, item.id ); }) }) } ); } var navigation_default = Navigation; // packages/boot/build-module/components/save-button/index.mjs var import_element9 = __toESM(require_element(), 1); var import_data8 = __toESM(require_data(), 1); var import_i18n6 = __toESM(require_i18n(), 1); var import_core_data4 = __toESM(require_core_data(), 1); var import_keycodes2 = __toESM(require_keycodes(), 1); var import_editor2 = __toESM(require_editor(), 1); var import_components10 = __toESM(require_components(), 1); // packages/boot/build-module/components/save-panel/use-save-shortcut.mjs var import_element8 = __toESM(require_element(), 1); var import_keyboard_shortcuts = __toESM(require_keyboard_shortcuts(), 1); var import_i18n5 = __toESM(require_i18n(), 1); var import_data7 = __toESM(require_data(), 1); var import_core_data3 = __toESM(require_core_data(), 1); var import_editor = __toESM(require_editor(), 1); var shortcutName = "core/boot/save"; function useSaveShortcut({ openSavePanel }) { const { __experimentalGetDirtyEntityRecords, isSavingEntityRecord } = (0, import_data7.useSelect)(import_core_data3.store); const { hasNonPostEntityChanges, isPostSavingLocked } = (0, import_data7.useSelect)(import_editor.store); const { savePost } = (0, import_data7.useDispatch)(import_editor.store); const { registerShortcut, unregisterShortcut } = (0, import_data7.useDispatch)( import_keyboard_shortcuts.store ); (0, import_element8.useEffect)(() => { registerShortcut({ name: shortcutName, category: "global", description: (0, import_i18n5.__)("Save your changes."), keyCombination: { modifier: "primary", character: "s" } }); return () => { unregisterShortcut(shortcutName); }; }, [registerShortcut, unregisterShortcut]); (0, import_keyboard_shortcuts.useShortcut)(shortcutName, (event) => { event.preventDefault(); const dirtyEntityRecords = __experimentalGetDirtyEntityRecords(); const hasDirtyEntities = !!dirtyEntityRecords.length; const isSaving = dirtyEntityRecords.some( (record) => isSavingEntityRecord(record.kind, record.name, record.key) ); if (!hasDirtyEntities || isSaving) { return; } if (hasNonPostEntityChanges()) { openSavePanel(); } else if (!isPostSavingLocked()) { savePost(); } }); } // packages/boot/build-module/components/save-button/index.mjs var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1); if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='a012fe845a']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "a012fe845a"); style.appendChild(document.createTextNode(".boot-save-button{width:100%}")); document.head.appendChild(style); } function SaveButton() { const [isSaveViewOpen, setIsSaveViewOpened] = (0, import_element9.useState)(false); const { isSaving, dirtyEntityRecordsCount } = (0, import_data8.useSelect)((select) => { const { isSavingEntityRecord, __experimentalGetDirtyEntityRecords } = select(import_core_data4.store); const dirtyEntityRecords = __experimentalGetDirtyEntityRecords(); return { isSaving: dirtyEntityRecords.some( (record) => isSavingEntityRecord(record.kind, record.name, record.key) ), dirtyEntityRecordsCount: dirtyEntityRecords.length }; }, []); const [showSavedState, setShowSavedState] = (0, import_element9.useState)(false); (0, import_element9.useEffect)(() => { if (isSaving) { setShowSavedState(true); } }, [isSaving]); const hasChanges = dirtyEntityRecordsCount > 0; (0, import_element9.useEffect)(() => { if (!isSaving && hasChanges) { setShowSavedState(false); } }, [isSaving, hasChanges]); function hideSavedState() { if (showSavedState) { setShowSavedState(false); } } const shouldShowButton = hasChanges || showSavedState; useSaveShortcut({ openSavePanel: () => setIsSaveViewOpened(true) }); if (!shouldShowButton) { return null; } const isInSavedState = showSavedState && !hasChanges; const disabled = isSaving || isInSavedState; const getLabel = () => { if (isInSavedState) { return (0, import_i18n6.__)("Saved"); } return (0, import_i18n6.sprintf)( // translators: %d: number of unsaved changes (number). (0, import_i18n6._n)( "Review %d change\u2026", "Review %d changes\u2026", dirtyEntityRecordsCount ), dirtyEntityRecordsCount ); }; const label = getLabel(); return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_jsx_runtime24.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)( import_components10.Tooltip, { text: hasChanges ? label : void 0, shortcut: import_keycodes2.displayShortcut.primary("s"), children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)( import_components10.Button, { variant: "primary", size: "compact", onClick: () => setIsSaveViewOpened(true), onBlur: hideSavedState, disabled, accessibleWhenDisabled: true, isBusy: isSaving, "aria-keyshortcuts": import_keycodes2.rawShortcut.primary("s"), className: "boot-save-button", icon: isInSavedState ? check_default : void 0, children: label } ) } ), isSaveViewOpen && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)( import_components10.Modal, { title: (0, import_i18n6.__)("Review changes"), onRequestClose: () => setIsSaveViewOpened(false), size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)( import_editor2.EntitiesSavedStates, { close: () => setIsSaveViewOpened(false), variant: "inline" } ) } ) ] }); } // packages/boot/build-module/components/sidebar/index.mjs var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1); if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='e5d2041211']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "e5d2041211"); style.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}")); document.head.appendChild(style); } function Sidebar() { return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "boot-sidebar__scrollable", children: [ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(site_hub_default, {}), /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "boot-sidebar__content", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(navigation_default, {}) }), /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "boot-sidebar__footer", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SaveButton, {}) }) ] }); } // packages/boot/build-module/components/save-panel/index.mjs var import_element10 = __toESM(require_element(), 1); var import_components11 = __toESM(require_components(), 1); var import_editor3 = __toESM(require_editor(), 1); var import_i18n7 = __toESM(require_i18n(), 1); var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1); function SavePanel() { const [isOpen, setIsOpen] = (0, import_element10.useState)(false); useSaveShortcut({ openSavePanel: () => setIsOpen(true) }); if (!isOpen) { return false; } return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)( import_components11.Modal, { className: "edit-site-save-panel__modal", onRequestClose: () => setIsOpen(false), title: (0, import_i18n7.__)("Review changes"), size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)( import_editor3.EntitiesSavedStates, { close: () => setIsOpen(false), variant: "inline" } ) } ); } // packages/boot/build-module/components/canvas-renderer/index.mjs var import_element12 = __toESM(require_element(), 1); // packages/boot/build-module/components/canvas/index.mjs var import_element11 = __toESM(require_element(), 1); var import_components13 = __toESM(require_components(), 1); import { useNavigate } from "@wordpress/route"; // packages/boot/build-module/components/canvas/back-button.mjs var import_components12 = __toESM(require_components(), 1); var import_compose3 = __toESM(require_compose(), 1); var import_i18n8 = __toESM(require_i18n(), 1); var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1); if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='68d99fe376']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "68d99fe376"); style.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}")); document.head.appendChild(style); } var toggleHomeIconVariants = { edit: { opacity: 0, scale: 0.2 }, hover: { opacity: 1, scale: 1, clipPath: "inset( 22% round 2px )" } }; function BootBackButton({ length }) { const disableMotion = (0, import_compose3.useReducedMotion)(); const handleBack = () => { window.history.back(); }; if (length > 1) { return null; } const transition = { duration: disableMotion ? 0 : 0.3 }; return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)( import_components12.__unstableMotion.div, { className: "boot-canvas-back-button", animate: "edit", initial: "edit", whileHover: "hover", whileTap: "tap", transition, children: [ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)( import_components12.Button, { className: "boot-canvas-back-button__link", onClick: handleBack, "aria-label": (0, import_i18n8.__)("Go back"), __next40pxDefaultSize: true, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(site_icon_default, {}) } ), /* @__PURE__ */ (0, import_jsx_runtime27.jsx)( import_components12.__unstableMotion.div, { className: "boot-canvas-back-button__icon", variants: toggleHomeIconVariants, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_components12.Icon, { icon: arrow_up_left_default }) } ) ] } ); } // packages/boot/build-module/components/canvas/index.mjs var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1); function Canvas({ canvas }) { const [Editor, setEditor] = (0, import_element11.useState)(null); const navigate = useNavigate(); (0, import_element11.useEffect)(() => { import("@wordpress/lazy-editor").then((module) => { setEditor(() => module.Editor); }).catch((error) => { console.error("Failed to load lazy editor:", error); }); }, []); if (!Editor) { return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)( "div", { style: { display: "flex", justifyContent: "center", alignItems: "center", height: "100%", padding: "2rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_components13.Spinner, {}) } ); } const backButton = !canvas.isPreview ? ({ length }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(BootBackButton, { length }) : void 0; return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { style: { height: "100%", position: "relative" }, children: [ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)( "div", { style: { height: "100%" }, inert: canvas.isPreview ? "true" : void 0, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)( Editor, { postType: canvas.postType, postId: canvas.postId, settings: { isPreviewMode: canvas.isPreview }, backButton } ) } ), canvas.isPreview && canvas.editLink && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)( "div", { onClick: () => navigate({ to: canvas.editLink }), onKeyDown: (e) => { if (e.key === "Enter" || e.key === " ") { e.preventDefault(); navigate({ to: canvas.editLink }); } }, style: { position: "absolute", inset: 0, cursor: "pointer", zIndex: 1 }, role: "button", tabIndex: 0, "aria-label": "Click to edit" } ) ] }); } // packages/boot/build-module/components/canvas-renderer/index.mjs var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1); function CanvasRenderer({ canvas, routeContentModule }) { const [CustomCanvas, setCustomCanvas] = (0, import_element12.useState)(null); (0, import_element12.useEffect)(() => { if (canvas === null && routeContentModule) { import(routeContentModule).then((module) => { setCustomCanvas(() => module.canvas); }).catch((error) => { console.error("Failed to load custom canvas:", error); }); } else { setCustomCanvas(null); } }, [canvas, routeContentModule]); if (canvas === void 0) { return null; } if (canvas === null) { if (!CustomCanvas) { return null; } return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CustomCanvas, {}); } return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Canvas, { canvas }); } // packages/boot/build-module/components/app/use-route-title.mjs var import_element13 = __toESM(require_element(), 1); var import_data9 = __toESM(require_data(), 1); var import_core_data5 = __toESM(require_core_data(), 1); var import_i18n9 = __toESM(require_i18n(), 1); var import_html_entities2 = __toESM(require_html_entities(), 1); import { speak } from "@wordpress/a11y"; import { privateApis as routePrivateApis4 } from "@wordpress/route"; var { useLocation, useMatches: useMatches2 } = unlock(routePrivateApis4); function useRouteTitle() { const location = useLocation(); const matches = useMatches2(); const currentMatch = matches[matches.length - 1]; const routeTitle = currentMatch?.loaderData?.title; const siteTitle = (0, import_data9.useSelect)( (select) => select(import_core_data5.store).getEntityRecord( "root", "__unstableBase" )?.name, [] ); const isInitialLocationRef = (0, import_element13.useRef)(true); (0, import_element13.useEffect)(() => { isInitialLocationRef.current = false; }, [location]); (0, import_element13.useEffect)(() => { if (isInitialLocationRef.current) { return; } if (routeTitle && typeof routeTitle === "string" && siteTitle && typeof siteTitle === "string") { const decodedRouteTitle = (0, import_html_entities2.decodeEntities)(routeTitle); const decodedSiteTitle = (0, import_html_entities2.decodeEntities)(siteTitle); const formattedTitle = (0, import_i18n9.sprintf)( /* translators: Admin document title. 1: Admin screen name, 2: Site name. */ (0, import_i18n9.__)("%1$s \u2039 %2$s \u2014 WordPress"), decodedRouteTitle, decodedSiteTitle ); document.title = formattedTitle; if (decodedRouteTitle) { speak(decodedRouteTitle, "assertive"); } } }, [routeTitle, siteTitle, location]); } // packages/boot/build-module/components/user-theme-provider/index.mjs var import_theme = __toESM(require_theme(), 1); var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1); var ThemeProvider = unlock(import_theme.privateApis).ThemeProvider; var THEME_PRIMARY_COLORS = /* @__PURE__ */ new Map([ ["light", "#0085ba"], ["modern", "#3858e9"], ["blue", "#096484"], ["coffee", "#46403c"], ["ectoplasm", "#523f6d"], ["midnight", "#e14d43"], ["ocean", "#627c83"], ["sunrise", "#dd823b"] ]); function getAdminThemePrimaryColor() { const theme = document.body.className.match(/admin-color-([a-z]+)/)?.[1]; return theme && THEME_PRIMARY_COLORS.get(theme); } function UserThemeProvider({ color, ...restProps }) { const primary = getAdminThemePrimaryColor(); return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ThemeProvider, { ...restProps, color: { primary, ...color } }); } // packages/boot/build-module/components/root/index.mjs var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1); if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='d1ebf43fe1']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "d1ebf43fe1"); style.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,#fff);border-bottom:1px solid var(--wpds-color-stroke-surface-neutral-weak,#ddd);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,#fff);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--single-page .boot-layout__inspector,.boot-layout--single-page .boot-layout__stage{height: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,#fff);border:1px solid var(--wpds-color-stroke-surface-neutral-weak,#ddd);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--single-page .boot-layout__canvas{height: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}}")); document.head.appendChild(style); } var { useLocation: useLocation2, useMatches: useMatches3, Outlet } = unlock(routePrivateApis5); function Root() { const matches = useMatches3(); const location = useLocation2(); const currentMatch = matches[matches.length - 1]; const canvas = currentMatch?.loaderData?.canvas; const routeContentModule = currentMatch?.loaderData?.routeContentModule; const isFullScreen = canvas && !canvas.isPreview; useRouteTitle(); const isMobileViewport = (0, import_compose4.useViewportMatch)("medium", "<"); const [isMobileSidebarOpen, setIsMobileSidebarOpen] = (0, import_element14.useState)(false); const disableMotion = (0, import_compose4.useReducedMotion)(); (0, import_element14.useEffect)(() => { setIsMobileSidebarOpen(false); }, [location.pathname, isMobileViewport]); return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_components14.SlotFillProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(UserThemeProvider, { isRoot: true, color: { bg: "#f8f8f8" }, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(UserThemeProvider, { color: { bg: "#1d2327" }, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)( "div", { className: clsx_default("boot-layout", { "has-canvas": !!canvas || canvas === null, "has-full-canvas": isFullScreen }), children: [ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SavePanel, {}), /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_notices.SnackbarNotices, { className: "boot-notices__snackbar" }), isMobileViewport && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(page_default.SidebarToggleFill, { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)( import_components14.Button, { icon: menu_default, onClick: () => setIsMobileSidebarOpen(true), label: (0, import_i18n10.__)("Open navigation panel"), size: "compact" } ) }), /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_components14.__unstableAnimatePresence, { children: isMobileViewport && isMobileSidebarOpen && !isFullScreen && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)( import_components14.__unstableMotion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { type: "tween", duration: disableMotion ? 0 : 0.2, ease: "easeOut" }, className: "boot-layout__sidebar-backdrop", onClick: () => setIsMobileSidebarOpen(false), onKeyDown: (event) => { if (event.key === "Escape") { setIsMobileSidebarOpen(false); } }, role: "button", tabIndex: -1, "aria-label": (0, import_i18n10.__)( "Close navigation panel" ) } ) }), /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_components14.__unstableAnimatePresence, { children: isMobileViewport && isMobileSidebarOpen && !isFullScreen && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)( import_components14.__unstableMotion.div, { initial: { x: "-100%" }, animate: { x: 0 }, exit: { x: "-100%" }, transition: { type: "tween", duration: disableMotion ? 0 : 0.2, ease: "easeOut" }, className: "boot-layout__sidebar is-mobile", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Sidebar, {}) } ) }), !isMobileViewport && !isFullScreen && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "boot-layout__sidebar", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Sidebar, {}) }), /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "boot-layout__surfaces", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(UserThemeProvider, { color: { bg: "#ffffff" }, children: [ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Outlet, {}), (canvas || canvas === null) && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)( "div", { className: clsx_default( "boot-layout__canvas", { "has-mobile-drawer": canvas?.isPreview && isMobileViewport } ), children: [ canvas?.isPreview && isMobileViewport && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "boot-layout__mobile-sidebar-drawer", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)( import_components14.Button, { icon: menu_default, onClick: () => setIsMobileSidebarOpen( true ), label: (0, import_i18n10.__)( "Open navigation panel" ), size: "compact" } ) }), /* @__PURE__ */ (0, import_jsx_runtime31.jsx)( CanvasRenderer, { canvas, routeContentModule } ) ] } ) ] }) }) ] } ) }) }) }); } // packages/boot/build-module/components/app/router.mjs var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1); var { createLazyRoute, createRouter, createRootRoute, createRoute, RouterProvider, createBrowserHistory, parseHref, useLoaderData } = unlock(routePrivateApis6); function NotFoundComponent() { return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "boot-layout__stage", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(page_default, { title: (0, import_i18n11.__)("Route not found"), hasPadding: true, children: (0, import_i18n11.__)("The page you're looking for does not exist") }) }); } function createRouteFromDefinition(route, parentRoute) { let tanstackRoute = createRoute({ getParentRoute: () => parentRoute, path: route.path, beforeLoad: async (opts) => { if (route.route_module) { const module = await import(route.route_module); const routeConfig = module.route || {}; if (routeConfig.beforeLoad) { return routeConfig.beforeLoad({ params: opts.params || {}, search: opts.search || {} }); } } }, loader: async (opts) => { let routeConfig = {}; if (route.route_module) { const module = await import(route.route_module); routeConfig = module.route || {}; } const context = { params: opts.params || {}, search: opts.deps || {} }; const [, loaderData, canvasData, titleData] = await Promise.all([ (0, import_data10.resolveSelect)(import_core_data6.store).getEntityRecord( "root", "__unstableBase" ), routeConfig.loader ? routeConfig.loader(context) : Promise.resolve(void 0), routeConfig.canvas ? routeConfig.canvas(context) : Promise.resolve(void 0), routeConfig.title ? routeConfig.title(context) : Promise.resolve(void 0) ]); let inspector = true; if (routeConfig.inspector) { inspector = await routeConfig.inspector(context); } return { ...loaderData, canvas: canvasData, inspector, title: titleData, routeContentModule: route.content_module }; }, loaderDeps: (opts) => opts.search }); tanstackRoute = tanstackRoute.lazy(async () => { const module = route.content_module ? await import(route.content_module) : {}; const Stage = module.stage; const Inspector = module.inspector; return createLazyRoute(route.path)({ component: function RouteComponent() { const { inspector: showInspector } = useLoaderData({ from: route.path }) ?? {}; return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [ Stage && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "boot-layout__stage", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Stage, {}) }), Inspector && showInspector && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "boot-layout__inspector", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Inspector, {}) }) ] }); } }); }); return tanstackRoute; } function createRouteTree(routes, rootComponent = Root) { const rootRoute = createRootRoute({ component: rootComponent, context: () => ({}) }); const dynamicRoutes = routes.map( (route) => createRouteFromDefinition(route, rootRoute) ); return rootRoute.addChildren(dynamicRoutes); } function createPathHistory() { return createBrowserHistory({ parseLocation: () => { const url = new URL(window.location.href); const path = url.searchParams.get("p") || "/"; const pathHref = `${path}${url.hash}`; return parseHref(pathHref, window.history.state); }, createHref: (href) => { const searchParams = new URLSearchParams(window.location.search); searchParams.set("p", href); return `${window.location.pathname}?${searchParams}`; } }); } function Router({ routes, rootComponent = Root }) { const router = (0, import_element15.useMemo)(() => { const history = createPathHistory(); const routeTree = createRouteTree(routes, rootComponent); return createRouter({ history, routeTree, defaultPreload: "intent", defaultNotFoundComponent: NotFoundComponent, defaultViewTransition: { types: ({ fromLocation }) => { if (!fromLocation) { return false; } return ["navigate"]; } } }); }, [routes, rootComponent]); return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(RouterProvider, { router }); } // packages/boot/build-module/components/root/single-page.mjs var import_notices2 = __toESM(require_notices(), 1); var import_components15 = __toESM(require_components(), 1); import { privateApis as routePrivateApis7 } from "@wordpress/route"; var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1); if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='d1ebf43fe1']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "d1ebf43fe1"); style.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,#fff);border-bottom:1px solid var(--wpds-color-stroke-surface-neutral-weak,#ddd);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,#fff);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--single-page .boot-layout__inspector,.boot-layout--single-page .boot-layout__stage{height: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,#fff);border:1px solid var(--wpds-color-stroke-surface-neutral-weak,#ddd);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--single-page .boot-layout__canvas{height: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}}")); document.head.appendChild(style); } var { useMatches: useMatches4, Outlet: Outlet2 } = unlock(routePrivateApis7); function RootSinglePage() { const matches = useMatches4(); const currentMatch = matches[matches.length - 1]; const canvas = currentMatch?.loaderData?.canvas; const routeContentModule = currentMatch?.loaderData?.routeContentModule; const isFullScreen = canvas && !canvas.isPreview; useRouteTitle(); return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_components15.SlotFillProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(UserThemeProvider, { isRoot: true, color: { bg: "#f8f8f8" }, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(UserThemeProvider, { color: { bg: "#1d2327" }, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)( "div", { className: clsx_default( "boot-layout boot-layout--single-page", { "has-canvas": !!canvas || canvas === null, "has-full-canvas": isFullScreen } ), children: [ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SavePanel, {}), /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_notices2.SnackbarNotices, { className: "boot-notices__snackbar" }), /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "boot-layout__surfaces", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(UserThemeProvider, { color: { bg: "#ffffff" }, children: [ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Outlet2, {}), (canvas || canvas === null) && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "boot-layout__canvas", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)( CanvasRenderer, { canvas, routeContentModule } ) }) ] }) }) ] } ) }) }) }); } // packages/boot/build-module/components/app/index.mjs var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1); function App({ rootComponent }) { const routes = (0, import_data11.useSelect)((select) => select(store).getRoutes(), []); return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Router, { routes, rootComponent }); } async function init({ mountId, menuItems, routes, initModules, dashboardLink }) { (menuItems ?? []).forEach((menuItem) => { (0, import_data11.dispatch)(store).registerMenuItem(menuItem.id, menuItem); }); (routes ?? []).forEach((route) => { (0, import_data11.dispatch)(store).registerRoute(route); }); if (dashboardLink) { (0, import_data11.dispatch)(store).setDashboardLink(dashboardLink); } for (const moduleId of initModules ?? []) { const module = await import(moduleId); await module.init(); } const rootElement = document.getElementById(mountId); if (rootElement) { const root = (0, import_element16.createRoot)(rootElement); root.render( /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_element16.StrictMode, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(App, {}) }) ); } } async function initSinglePage({ mountId, routes }) { (routes ?? []).forEach((route) => { (0, import_data11.dispatch)(store).registerRoute(route); }); const rootElement = document.getElementById(mountId); if (rootElement) { const root = (0, import_element16.createRoot)(rootElement); root.render( /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_element16.StrictMode, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(App, { rootComponent: RootSinglePage }) }) ); } } // packages/boot/build-module/index.mjs if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='e39fdc0848']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "e39fdc0848"); style.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-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-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}@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-lg,16px) 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-xl,20px);font-weight:var(--wpds-font-weight-medium,499);line-height:var(--wpds-font-line-height-xl,32px);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-size:15px;font-weight:500;gap:0;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}')); document.head.appendChild(style); } if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='2a741c061f']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "2a741c061f"); style.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%)}}")); document.head.appendChild(style); } export { init, initSinglePage, store }; boot/index.min.asset.php 0000644 00000001100 15206736335 0011231 0 ustar 00 <?php return array('dependencies' => array('react', 'react-dom', 'react-jsx-runtime', 'wp-commands', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-editor', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-notices', 'wp-primitives', 'wp-private-apis', 'wp-theme', 'wp-url'), 'module_dependencies' => array(array('id' => '@wordpress/a11y', 'import' => 'static'), array('id' => '@wordpress/lazy-editor', 'import' => 'dynamic'), array('id' => '@wordpress/route', 'import' => 'static')), 'version' => '54bb5a420026a61c7e4f'); lazy-editor/index.min.js 0000644 00000111456 15206736335 0011260 0 ustar 00 var We=Object.create;var Tt=Object.defineProperty;var De=Object.getOwnPropertyDescriptor;var Ke=Object.getOwnPropertyNames;var He=Object.getPrototypeOf,Xe=Object.prototype.hasOwnProperty;var P=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ye=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Ke(e))!Xe.call(t,n)&&n!==o&&Tt(t,n,{get:()=>e[n],enumerable:!(r=De(e,n))||r.enumerable});return t};var h=(t,e,o)=>(o=t!=null?We(He(t)):{},Ye(e||!t||!t.__esModule?Tt(o,"default",{value:t,enumerable:!0}):o,t));var pt=P((Bo,Ct)=>{Ct.exports=window.wp.editor});var U=P((No,Vt)=>{Vt.exports=window.wp.coreData});var G=P((Wo,zt)=>{zt.exports=window.wp.data});var Lt=P((Do,Mt)=>{Mt.exports=window.wp.components});var B=P((Ko,Gt)=>{Gt.exports=window.wp.element});var dt=P((Jo,Wt)=>{Wt.exports=window.wp.styleEngine});var Jt=P((nr,Zt)=>{Zt.exports=window.wp.i18n});var ht=P((sr,qt)=>{qt.exports=window.wp.blocks});var $e=P((Fr,xe)=>{xe.exports=window.wp.privateApis});var It=P((Br,Re)=>{Re.exports=window.ReactJSXRuntime});var Me=P((Xr,ze)=>{ze.exports=window.wp.blockEditor});var Te=h(pt(),1),Pt=h(U(),1),jt=h(G(),1),Ce=h(Lt(),1),Ve=h(B(),1);var Ut=h(U(),1),Bt=h(G(),1);function ot({templateId:t}={}){let{globalStylesId:e,stylesId:o}=(0,Bt.useSelect)(r=>{let n=r(Ut.store),s=t?n.getEntityRecord("postType","wp_template",t):null;return{globalStylesId:n.__experimentalGetCurrentGlobalStylesId(),stylesId:s?.styles_id}},[t]);return o||e}function rt(t,e,o){e=Array.isArray(e)?[...e]:[e],t=Array.isArray(t)?[...t]:{...t};let r=e.pop(),n=t;for(let s of e){let i=n[s];n=n[s]=Array.isArray(i)?[...i]:{...i}}return n[r]=o,t}var S=(t,e,o)=>{let r=Array.isArray(e)?e:e.split("."),n=t;return r.forEach(s=>{n=n?.[s]}),n??o};var Ze=["appearanceTools","useRootPaddingAwareAlignments","background.backgroundImage","background.backgroundRepeat","background.backgroundSize","background.backgroundPosition","border.color","border.radius","border.radiusSizes","border.style","border.width","shadow.presets","shadow.defaultPresets","color.background","color.button","color.caption","color.custom","color.customDuotone","color.customGradient","color.defaultDuotone","color.defaultGradients","color.defaultPalette","color.duotone","color.gradients","color.heading","color.link","color.palette","color.text","custom","dimensions.aspectRatio","dimensions.height","dimensions.minHeight","dimensions.width","dimensions.dimensionSizes","layout.contentSize","layout.definitions","layout.wideSize","lightbox.enabled","lightbox.allowEditing","position.fixed","position.sticky","spacing.customSpacingSize","spacing.defaultSpacingSizes","spacing.spacingSizes","spacing.spacingScale","spacing.blockGap","spacing.margin","spacing.padding","spacing.units","typography.fluid","typography.customFontSize","typography.defaultFontSizes","typography.dropCap","typography.fontFamilies","typography.fontSizes","typography.fontStyle","typography.fontWeight","typography.letterSpacing","typography.lineHeight","typography.textAlign","typography.textColumns","typography.textDecoration","typography.textIndent","typography.textTransform","typography.writingMode"];function Nt(t,e,o){let r=o?".blocks."+o:"",n=e?"."+e:"",s=`settings${r}${n}`,i=`settings${n}`;if(e)return S(t,s)??S(t,i);let a={};return Ze.forEach(l=>{let c=S(t,`settings${r}.${l}`)??S(t,`settings.${l}`);c!==void 0&&(a=rt(a,l.split("."),c))}),a}var Kt=h(dt(),1);var Je="1600px",qe="320px",Qe=1,to=.25,eo=.75,oo="14px";function Dt({minimumFontSize:t,maximumFontSize:e,fontSize:o,minimumViewportWidth:r=qe,maximumViewportWidth:n=Je,scaleFactor:s=Qe,minimumFontSizeLimit:i}){if(i=R(i)?i:oo,o){let b=R(o);if(!b?.unit||!b?.value)return null;let E=R(i,{coerceTo:b.unit});if(E?.value&&!t&&!e&&b?.value<=E?.value)return null;if(e||(e=`${b.value}${b.unit}`),!t){let M=b.unit==="px"?b.value:b.value*16,ut=Math.min(Math.max(1-.075*Math.log2(M),to),eo),D=H(b.value*ut,3);E?.value&&D<E?.value?t=`${E.value}${E.unit}`:t=`${D}${b.unit}`}}let a=R(t),l=a?.unit||"rem",c=R(e,{coerceTo:l});if(!a||!c)return null;let d=R(t,{coerceTo:"rem"}),f=R(n,{coerceTo:l}),p=R(r,{coerceTo:l});if(!f||!p||!d)return null;let g=f.value-p.value;if(!g)return null;let u=H(p.value/100,3),m=H(u,3)+l,v=100*((c.value-a.value)/g),y=H((v||1)*s,3),O=`${d.value}${d.unit} + ((1vw - ${m}) * ${y})`;return`clamp(${t}, ${O}, ${e})`}function R(t,e={}){if(typeof t!="string"&&typeof t!="number")return null;isFinite(t)&&(t=`${t}px`);let{coerceTo:o,rootSizeValue:r,acceptableUnits:n}={coerceTo:"",rootSizeValue:16,acceptableUnits:["rem","px","em"],...e},s=n?.join("|"),i=new RegExp(`^(\\d*\\.?\\d+)(${s}){1,1}$`),a=t.toString().match(i);if(!a||a.length<3)return null;let[,l,c]=a,d=parseFloat(l);return o==="px"&&(c==="em"||c==="rem")&&(d=d*r,c=o),c==="px"&&(o==="em"||o==="rem")&&(d=d/r,c=o),(o==="em"||o==="rem")&&(c==="em"||c==="rem")&&(c=o),c?{value:H(d,3),unit:c}:null}function H(t,e=3){let o=Math.pow(10,e);return Math.round(t*o)/o}function gt(t){let e=t?.fluid;return e===!0||e&&typeof e=="object"&&Object.keys(e).length>0}function ro(t){let e=t?.typography??{},o=t?.layout,r=R(o?.wideSize)?o?.wideSize:null;return gt(e)&&r?{fluid:{maxViewportWidth:r,...typeof e.fluid=="object"?e.fluid:{}}}:{fluid:e?.fluid}}function nt(t,e){let{size:o}=t;if(!o||o==="0"||t?.fluid===!1||!gt(e?.typography)&&!gt(t))return o;let r=ro(e)?.fluid??{},n=Dt({minimumFontSize:typeof t?.fluid=="boolean"?void 0:t?.fluid?.min,maximumFontSize:typeof t?.fluid=="boolean"?void 0:t?.fluid?.max,fontSize:o,minimumFontSizeLimit:typeof r=="object"?r?.minFontSize:void 0,maximumViewportWidth:typeof r=="object"?r?.maxViewportWidth:void 0,minimumViewportWidth:typeof r=="object"?r?.minViewportWidth:void 0});return n||o}var T="body",X=":root",Y=[{path:["color","palette"],valueKey:"color",cssVarInfix:"color",classes:[{classSuffix:"color",propertyName:"color"},{classSuffix:"background-color",propertyName:"background-color"},{classSuffix:"border-color",propertyName:"border-color"}]},{path:["color","gradients"],valueKey:"gradient",cssVarInfix:"gradient",classes:[{classSuffix:"gradient-background",propertyName:"background"}]},{path:["color","duotone"],valueKey:"colors",cssVarInfix:"duotone",valueFunc:({slug:t})=>`url( '#wp-duotone-${t}' )`,classes:[]},{path:["shadow","presets"],valueKey:"shadow",cssVarInfix:"shadow",classes:[]},{path:["typography","fontSizes"],valueFunc:(t,e)=>nt(t,e),valueKey:"size",cssVarInfix:"font-size",classes:[{classSuffix:"font-size",propertyName:"font-size"}]},{path:["typography","fontFamilies"],valueKey:"fontFamily",cssVarInfix:"font-family",classes:[{classSuffix:"font-family",propertyName:"font-family"}]},{path:["spacing","spacingSizes"],valueKey:"size",cssVarInfix:"spacing",valueFunc:({size:t})=>t,classes:[]},{path:["border","radiusSizes"],valueKey:"size",cssVarInfix:"border-radius",classes:[]},{path:["dimensions","dimensionSizes"],valueKey:"size",cssVarInfix:"dimension",classes:[]}];function j(t,e){if(!t||!e)return e;let o=t.split(","),r=e.split(","),n=[];return o.forEach(s=>{r.forEach(i=>{n.push(`${s.trim()} ${i.trim()}`)})}),n.join(", ")}function Ht(t,e){if(!t||!e)return;let o={};return Object.entries(e).forEach(([r,n])=>{typeof n=="string"&&(o[r]=j(t,n)),typeof n=="object"&&(o[r]={},Object.entries(n).forEach(([s,i])=>{o[r][s]=j(t,i)}))}),o}function Xt(t,e){return t.includes(",")?t.split(",").map(n=>n+e).join(","):t+e}function Yt(t,e){let o=`.is-style-${t}`;if(!e)return o;let r=/((?::\([^)]+\))?\s*)([^\s:]+)/,n=(i,a,l)=>a+l+o;return e.split(",").map(i=>i.replace(r,n)).join(",")}function no(t,e){if(!t||!e)return t;if(typeof t=="object"&&"ref"in t&&t?.ref){let o=(0,Kt.getCSSValueFromRawStyle)(S(e,t.ref));return typeof o=="object"&&o!==null&&"ref"in o&&o?.ref?void 0:o===void 0?t:o}return t}function so(t,e){if(!t||!e||!Array.isArray(e))return t;let o=e.find(r=>r?.name===t);return o?.href?o?.href:t}function mt(t,e){if(!t||!e)return t;let o=no(t,e);return typeof o=="object"&&o!==null&&"url"in o&&o?.url&&(o.url=so(o.url,e?._links?.["wp:theme-file"])),o}var x=h(ht(),1),J=h(dt(),1),ye=h(G(),1);function N(t,e="root",o={}){if(!e)return null;let{fallback:r=!1}=o,{name:n,selectors:s,supports:i}=t,a=s&&Object.keys(s).length>0,l=Array.isArray(e)?e.join("."):e,c=null;if(a&&s.root?c=s?.root:i?.__experimentalSelector?c=i.__experimentalSelector:c=".wp-block-"+n.replace("core/","").replace("/","-"),l==="root")return c;let d=Array.isArray(e)?e:e.split(".");if(d.length===1){let p=r?c:null;if(a)return S(s,`${l}.root`,null)||S(s,l,null)||p;let g=i?S(i,`${l}.__experimentalSelector`,null):void 0;return g?j(c,g):p}let f;return a&&(f=S(s,l,null)),f||(r?N(t,d[0],o):null)}var io={grad:.9,turn:360,rad:360/(2*Math.PI)},C=function(t){return typeof t=="string"?t.length>0:typeof t=="number"},w=function(t,e,o){return e===void 0&&(e=0),o===void 0&&(o=Math.pow(10,e)),Math.round(o*t)/o+0},I=function(t,e,o){return e===void 0&&(e=0),o===void 0&&(o=1),t>o?o:t>e?t:e},ae=function(t){return(t=isFinite(t)?t%360:0)>0?t:t+360},Qt=function(t){return{r:I(t.r,0,255),g:I(t.g,0,255),b:I(t.b,0,255),a:I(t.a)}},yt=function(t){return{r:w(t.r),g:w(t.g),b:w(t.b),a:w(t.a,3)}},ao=/^#([0-9a-f]{3,8})$/i,st=function(t){var e=t.toString(16);return e.length<2?"0"+e:e},le=function(t){var e=t.r,o=t.g,r=t.b,n=t.a,s=Math.max(e,o,r),i=s-Math.min(e,o,r),a=i?s===e?(o-r)/i:s===o?2+(r-e)/i:4+(e-o)/i:0;return{h:60*(a<0?a+6:a),s:s?i/s*100:0,v:s/255*100,a:n}},ce=function(t){var e=t.h,o=t.s,r=t.v,n=t.a;e=e/360*6,o/=100,r/=100;var s=Math.floor(e),i=r*(1-o),a=r*(1-(e-s)*o),l=r*(1-(1-e+s)*o),c=s%6;return{r:255*[r,a,i,i,l,r][c],g:255*[l,r,r,a,i,i][c],b:255*[i,i,l,r,r,a][c],a:n}},te=function(t){return{h:ae(t.h),s:I(t.s,0,100),l:I(t.l,0,100),a:I(t.a)}},ee=function(t){return{h:w(t.h),s:w(t.s),l:w(t.l),a:w(t.a,3)}},oe=function(t){return ce((o=(e=t).s,{h:e.h,s:(o*=((r=e.l)<50?r:100-r)/100)>0?2*o/(r+o)*100:0,v:r+o,a:e.a}));var e,o,r},Z=function(t){return{h:(e=le(t)).h,s:(n=(200-(o=e.s))*(r=e.v)/100)>0&&n<200?o*r/100/(n<=100?n:200-n)*100:0,l:n/2,a:e.a};var e,o,r,n},lo=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,co=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,uo=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,fo=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,re={string:[[function(t){var e=ao.exec(t);return e?(t=e[1]).length<=4?{r:parseInt(t[0]+t[0],16),g:parseInt(t[1]+t[1],16),b:parseInt(t[2]+t[2],16),a:t.length===4?w(parseInt(t[3]+t[3],16)/255,2):1}:t.length===6||t.length===8?{r:parseInt(t.substr(0,2),16),g:parseInt(t.substr(2,2),16),b:parseInt(t.substr(4,2),16),a:t.length===8?w(parseInt(t.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(t){var e=uo.exec(t)||fo.exec(t);return e?e[2]!==e[4]||e[4]!==e[6]?null:Qt({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(t){var e=lo.exec(t)||co.exec(t);if(!e)return null;var o,r,n=te({h:(o=e[1],r=e[2],r===void 0&&(r="deg"),Number(o)*(io[r]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return oe(n)},"hsl"]],object:[[function(t){var e=t.r,o=t.g,r=t.b,n=t.a,s=n===void 0?1:n;return C(e)&&C(o)&&C(r)?Qt({r:Number(e),g:Number(o),b:Number(r),a:Number(s)}):null},"rgb"],[function(t){var e=t.h,o=t.s,r=t.l,n=t.a,s=n===void 0?1:n;if(!C(e)||!C(o)||!C(r))return null;var i=te({h:Number(e),s:Number(o),l:Number(r),a:Number(s)});return oe(i)},"hsl"],[function(t){var e=t.h,o=t.s,r=t.v,n=t.a,s=n===void 0?1:n;if(!C(e)||!C(o)||!C(r))return null;var i=(function(a){return{h:ae(a.h),s:I(a.s,0,100),v:I(a.v,0,100),a:I(a.a)}})({h:Number(e),s:Number(o),v:Number(r),a:Number(s)});return ce(i)},"hsv"]]},ne=function(t,e){for(var o=0;o<e.length;o++){var r=e[o][0](t);if(r)return[r,e[o][1]]}return[null,void 0]},po=function(t){return typeof t=="string"?ne(t.trim(),re.string):typeof t=="object"&&t!==null?ne(t,re.object):[null,void 0]};var bt=function(t,e){var o=Z(t);return{h:o.h,s:I(o.s+100*e,0,100),l:o.l,a:o.a}},St=function(t){return(299*t.r+587*t.g+114*t.b)/1e3/255},se=function(t,e){var o=Z(t);return{h:o.h,s:o.s,l:I(o.l+100*e,0,100),a:o.a}},ie=(function(){function t(e){this.parsed=po(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return t.prototype.isValid=function(){return this.parsed!==null},t.prototype.brightness=function(){return w(St(this.rgba),2)},t.prototype.isDark=function(){return St(this.rgba)<.5},t.prototype.isLight=function(){return St(this.rgba)>=.5},t.prototype.toHex=function(){return e=yt(this.rgba),o=e.r,r=e.g,n=e.b,i=(s=e.a)<1?st(w(255*s)):"","#"+st(o)+st(r)+st(n)+i;var e,o,r,n,s,i},t.prototype.toRgb=function(){return yt(this.rgba)},t.prototype.toRgbString=function(){return e=yt(this.rgba),o=e.r,r=e.g,n=e.b,(s=e.a)<1?"rgba("+o+", "+r+", "+n+", "+s+")":"rgb("+o+", "+r+", "+n+")";var e,o,r,n,s},t.prototype.toHsl=function(){return ee(Z(this.rgba))},t.prototype.toHslString=function(){return e=ee(Z(this.rgba)),o=e.h,r=e.s,n=e.l,(s=e.a)<1?"hsla("+o+", "+r+"%, "+n+"%, "+s+")":"hsl("+o+", "+r+"%, "+n+"%)";var e,o,r,n,s},t.prototype.toHsv=function(){return e=le(this.rgba),{h:w(e.h),s:w(e.s),v:w(e.v),a:w(e.a,3)};var e},t.prototype.invert=function(){return A({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},t.prototype.saturate=function(e){return e===void 0&&(e=.1),A(bt(this.rgba,e))},t.prototype.desaturate=function(e){return e===void 0&&(e=.1),A(bt(this.rgba,-e))},t.prototype.grayscale=function(){return A(bt(this.rgba,-1))},t.prototype.lighten=function(e){return e===void 0&&(e=.1),A(se(this.rgba,e))},t.prototype.darken=function(e){return e===void 0&&(e=.1),A(se(this.rgba,-e))},t.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},t.prototype.alpha=function(e){return typeof e=="number"?A({r:(o=this.rgba).r,g:o.g,b:o.b,a:e}):w(this.rgba.a,3);var o},t.prototype.hue=function(e){var o=Z(this.rgba);return typeof e=="number"?A({h:e,s:o.s,l:o.l,a:o.a}):w(o.h)},t.prototype.isEqual=function(e){return this.toHex()===A(e).toHex()},t})(),A=function(t){return t instanceof ie?t:new ie(t)};function go(t=[]){let e={r:[],g:[],b:[],a:[]};return t.forEach(o=>{let r=A(o).toRgb();e.r.push(r.r/255),e.g.push(r.g/255),e.b.push(r.b/255),e.a.push(r.a)}),e}function ue(t,e){let o=go(e);return` <svg xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" aria-hidden="true" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;" > <defs> <filter id="${t}"> <!-- Use sRGB instead of linearRGB so transparency looks correct. Use perceptual brightness to convert to grayscale. --> <feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 "></feColorMatrix> <!-- Use sRGB instead of linearRGB to be consistent with how CSS gradients work. --> <feComponentTransfer color-interpolation-filters="sRGB"> <feFuncR type="table" tableValues="${o.r.join(" ")}"></feFuncR> <feFuncG type="table" tableValues="${o.g.join(" ")}"></feFuncG> <feFuncB type="table" tableValues="${o.b.join(" ")}"></feFuncB> <feFuncA type="table" tableValues="${o.a.join(" ")}"></feFuncA> </feComponentTransfer> <!-- Re-mask the image with the original transparency since the feColorMatrix above loses that information. --> <feComposite in2="SourceGraphic" operator="in"></feComposite> </filter> </defs> </svg>`}function V(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/([0-9])([a-zA-Z])/g,"$1-$2").replace(/([a-zA-Z])([0-9])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase()}function vt(t){if(!t)return;let e=t.match(/var:preset\|spacing\|(.+)/);return e?`var(--wp--preset--spacing--${e[1]})`:t}function mo(t){if(!t)return null;let e=typeof t=="string";return{top:e?t:t?.top,left:e?t:t?.left}}function wt(t,e="0"){let o=mo(t);if(!o)return null;let r=vt(o?.top)||e,n=vt(o?.left)||e;return r===n?r:`${r} ${n}`}var fe={backgroundSize:"cover",backgroundPosition:"50% 50%"};function pe(t){if(!t||!t?.backgroundImage?.url)return;let e;return t?.backgroundSize||(e={backgroundSize:fe.backgroundSize}),t?.backgroundSize==="contain"&&!t?.backgroundPosition&&(e={backgroundPosition:fe.backgroundPosition}),e}var de={default:{name:"default",slug:"flow",className:"is-layout-flow",baseStyles:[{selector:" > .alignleft",rules:{float:"left","margin-inline-start":"0","margin-inline-end":"2em"}},{selector:" > .alignright",rules:{float:"right","margin-inline-start":"2em","margin-inline-end":"0"}},{selector:" > .aligncenter",rules:{"margin-left":"auto !important","margin-right":"auto !important"}}],spacingStyles:[{selector:" > :first-child",rules:{"margin-block-start":"0"}},{selector:" > :last-child",rules:{"margin-block-end":"0"}},{selector:" > *",rules:{"margin-block-start":null,"margin-block-end":"0"}}]},constrained:{name:"constrained",slug:"constrained",className:"is-layout-constrained",baseStyles:[{selector:" > .alignleft",rules:{float:"left","margin-inline-start":"0","margin-inline-end":"2em"}},{selector:" > .alignright",rules:{float:"right","margin-inline-start":"2em","margin-inline-end":"0"}},{selector:" > .aligncenter",rules:{"margin-left":"auto !important","margin-right":"auto !important"}},{selector:" > :where(:not(.alignleft):not(.alignright):not(.alignfull))",rules:{"max-width":"var(--wp--style--global--content-size)","margin-left":"auto !important","margin-right":"auto !important"}},{selector:" > .alignwide",rules:{"max-width":"var(--wp--style--global--wide-size)"}}],spacingStyles:[{selector:" > :first-child",rules:{"margin-block-start":"0"}},{selector:" > :last-child",rules:{"margin-block-end":"0"}},{selector:" > *",rules:{"margin-block-start":null,"margin-block-end":"0"}}]},flex:{name:"flex",slug:"flex",className:"is-layout-flex",displayMode:"flex",baseStyles:[{selector:"",rules:{"flex-wrap":"wrap","align-items":"center"}},{selector:" > :is(*, div)",rules:{margin:"0"}}],spacingStyles:[{selector:"",rules:{gap:null}}]},grid:{name:"grid",slug:"grid",className:"is-layout-grid",displayMode:"grid",baseStyles:[{selector:" > :is(*, div)",rules:{margin:"0"}}],spacingStyles:[{selector:"",rules:{gap:null}}]}};var ho={button:"wp-element-button",caption:"wp-element-caption"},yo={__experimentalBorder:"border",color:"color",dimensions:"dimensions",spacing:"spacing",typography:"typography"};function bo(t={},e){return Y.reduce((o,{path:r,valueKey:n,valueFunc:s,cssVarInfix:i})=>{let a=S(t,r,[]);return["default","theme","custom"].forEach(l=>{a[l]&&a[l].forEach(c=>{n&&!s?o.push(`--wp--preset--${i}--${V(c.slug)}: ${c[n]}`):s&&typeof s=="function"&&o.push(`--wp--preset--${i}--${V(c.slug)}: ${s(c,e)}`)})}),o},[])}function So(t="*",e={}){return Y.reduce((o,{path:r,cssVarInfix:n,classes:s})=>{if(!s)return o;let i=S(e,r,[]);return["default","theme","custom"].forEach(a=>{i[a]&&i[a].forEach(({slug:l})=>{s.forEach(({classSuffix:c,propertyName:d})=>{let f=`.has-${V(l)}-${c}`,p=t.split(",").map(u=>`${u}${f}`).join(","),g=`var(--wp--preset--${n}--${V(l)})`;o+=`${p}{${d}: ${g} !important;}`})})}),o},"")}function vo(t={}){return Y.filter(e=>e.path.at(-1)==="duotone").flatMap(e=>{let o=S(t,e.path,{});return["default","theme"].filter(r=>o[r]).flatMap(r=>o[r].map(n=>ue(`wp-duotone-${n.slug}`,n.colors))).join("")})}function be(t={},e,o){let r=[];return Object.keys(t).forEach(n=>{let s=e+V(n.replace("/","-")),i=t[n];if(i instanceof Object){let a=s+o;r=[...r,...be(i,a,o)]}else r.push(`${s}: ${i}`)}),r}function wo(t,e){let o=t.split(","),r=[];return o.forEach(n=>{r.push(`${e.trim()}${n.trim()}`)}),r.join(", ")}var ge=(t,e,o)=>{if(o!=="core/paragraph"||(e?.blocks?.["core/paragraph"]?.typography?.textIndent??e?.typography?.textIndent??"subsequent")!=="all")return t;let s=".wp-block-paragraph + .wp-block-paragraph",i=".wp-block-paragraph";if(s in t){let a=t[s],l={...t};return delete l[s],l[i]=a,l}return t},me=(t,e)=>{let o={};return Object.entries(t).forEach(([r,n])=>{if(r==="root"||!e?.[r])return;let s=typeof n=="string";if(!s&&typeof n=="object"&&n!==null&&Object.entries(n).forEach(([i,a])=>{if(i==="root"||!e?.[r][i])return;let l={[r]:{[i]:e[r][i]}},c=W(l);o[a]=[...o[a]||[],...c],delete e[r][i]}),s||typeof n=="object"&&n!==null&&"root"in n){let i=s?n:n.root,a={[r]:e[r]},l=W(a);o[i]=[...o[i]||[],...l],delete e[r]}}),o};function W(t={},e="",o,r={},n=!1){let s=T===e,i=Object.entries(x.__EXPERIMENTAL_STYLE_PROPERTY).reduce((l,[c,{value:d,properties:f,useEngine:p,rootOnly:g}])=>{if(g&&!s)return l;let u=d;if(u[0]==="elements"||p)return l;let m=S(t,u);if(c==="--wp--style--root--padding"&&(typeof m=="string"||!o))return l;if(f&&typeof m!="string")Object.entries(f).forEach(v=>{let[y,O]=v;if(!S(m,[O],!1))return;let b=y.startsWith("--")?y:V(y);l.push(`${b}: ${(0,J.getCSSValueFromRawStyle)(S(m,[O]))}`)});else if(S(t,u,!1)){let v=c.startsWith("--")?c:V(c);l.push(`${v}: ${(0,J.getCSSValueFromRawStyle)(S(t,u))}`)}return l},[]);return t.background&&(t.background?.backgroundImage&&(t.background.backgroundImage=mt(t.background.backgroundImage,r)),!s&&t.background?.backgroundImage?.id&&(t={...t,background:{...t.background,...pe(t.background)}})),(0,J.getCSSRules)(t).forEach(l=>{if(s&&(o||n)&&l.key.startsWith("padding"))return;let c=l.key.startsWith("--")?l.key:V(l.key),d=mt(l.value,r);c==="font-size"&&(d=nt({name:"",slug:"",size:d},r?.settings)),c==="aspect-ratio"&&i.push("min-height: unset"),i.push(`${c}: ${d}`)}),i}function he({layoutDefinitions:t=de,style:e,selector:o,hasBlockGapSupport:r,hasFallbackGapSupport:n,fallbackGapValue:s}){let i="",a=r?wt(e?.spacing?.blockGap):"";if(n&&(o===T?a=a||"0.5em":!r&&s&&(a=s)),a&&t&&(Object.values(t).forEach(({className:l,name:c,spacingStyles:d})=>{!r&&c!=="flex"&&c!=="grid"||d?.length&&d.forEach(f=>{let p=[];if(f.rules&&Object.entries(f.rules).forEach(([g,u])=>{p.push(`${g}: ${u||a}`)}),p.length){let g="";r?g=o===T?`:root :where(.${l})${f?.selector||""}`:`:root :where(${o}-${l})${f?.selector||""}`:g=o===T?`:where(.${l}${f?.selector||""})`:`:where(${o}.${l}${f?.selector||""})`,i+=`${g} { ${p.join("; ")}; }`}})}),o===T&&r&&(i+=`${X} { --wp--style--block-gap: ${a}; }`)),o===T&&t){let l=["block","flex","grid"];Object.values(t).forEach(({className:c,displayMode:d,baseStyles:f})=>{d&&l.includes(d)&&(i+=`${o} .${c} { display:${d}; }`),f?.length&&f.forEach(p=>{let g=[];if(p.rules&&Object.entries(p.rules).forEach(([u,m])=>{g.push(`${u}: ${m}`)}),g.length){let u=`.${c}${p?.selector||""}`;i+=`${u} { ${g.join("; ")}; }`}})})}return i}var Eo=["border","color","dimensions","spacing","typography","filter","outline","shadow","background"];function it(t){if(!t)return{};let r=Object.entries(t).filter(([n])=>Eo.includes(n)).map(([n,s])=>[n,JSON.parse(JSON.stringify(s))]);return Object.fromEntries(r)}var xo=(t,e)=>{let o=[];if(!t?.styles)return o;let r=it(t.styles);return r&&o.push({styles:r,selector:T,skipSelectorWrapper:!0}),Object.entries(x.__EXPERIMENTAL_ELEMENTS).forEach(([n,s])=>{t.styles?.elements?.[n]&&o.push({styles:t.styles?.elements?.[n]??{},selector:s,skipSelectorWrapper:!ho[n]})}),Object.entries(t.styles?.blocks??{}).forEach(([n,s])=>{let i=it(s),a=s,l=[];if(a?.variations){let c={};Object.entries(a.variations).forEach(([d,f])=>{let p=f;c[d]=it(p),p?.css&&(c[d].css=p.css);let g=typeof e!="string"?e[n]?.styleVariationSelectors?.[d]:void 0;Object.entries(p?.elements??{}).forEach(([u,m])=>{m&&x.__EXPERIMENTAL_ELEMENTS[u]&&l.push({styles:m,selector:j(g,x.__EXPERIMENTAL_ELEMENTS[u])})}),Object.entries(p?.blocks??{}).forEach(([u,m])=>{let v=typeof e!="string"?j(g,e[u]?.selector):void 0,y=typeof e!="string"?j(g,e[u]?.duotoneSelector):void 0,O=typeof e!="string"?Ht(g,e[u]?.featureSelectors??{}):void 0,b=it(m);m?.css&&(b.css=m.css),!(!v||typeof e=="string")&&(l.push({selector:v,duotoneSelector:y,featureSelectors:O,fallbackGapValue:e[u]?.fallbackGapValue,hasLayoutSupport:e[u]?.hasLayoutSupport,styles:b}),Object.entries(m.elements??{}).forEach(([E,M])=>{M&&x.__EXPERIMENTAL_ELEMENTS[E]&&l.push({styles:M,selector:j(v,x.__EXPERIMENTAL_ELEMENTS[E])})}))})}),i.variations=c}typeof e!="string"&&e?.[n]?.selector&&o.push({duotoneSelector:e[n].duotoneSelector,fallbackGapValue:e[n].fallbackGapValue,hasLayoutSupport:e[n].hasLayoutSupport,selector:e[n].selector,styles:i,featureSelectors:e[n].featureSelectors,styleVariationSelectors:e[n].styleVariationSelectors,name:n}),Object.entries(a?.elements??{}).forEach(([c,d])=>{typeof e!="string"&&d&&e?.[n]&&x.__EXPERIMENTAL_ELEMENTS[c]&&o.push({styles:d,selector:e[n]?.selector.split(",").map(f=>x.__EXPERIMENTAL_ELEMENTS[c].split(",").map(g=>f+" "+g)).join(",")})}),o.push(...l)}),o},xt=(t,e)=>{let o=[];if(!t?.settings)return o;let r=i=>{let a={};return Y.forEach(({path:l})=>{let c=S(i,l,!1);c!==!1&&(a=rt(a,l,c))}),a},n=r(t.settings),s=t.settings?.custom;return(Object.keys(n).length>0||s)&&o.push({presets:n,custom:s,selector:X}),Object.entries(t.settings?.blocks??{}).forEach(([i,a])=>{let l=a.custom;if(typeof e=="string"||!e[i])return;let c=r(a);(Object.keys(c).length>0||l)&&o.push({presets:c,custom:l,selector:e[i]?.selector})}),o},$o=(t,e)=>{let o=xt(t,e),r="";return o.forEach(({presets:n,custom:s,selector:i})=>{let a=t?.settings?bo(n,t?.settings):[],l=be(s,"--wp--custom--","--");l.length>0&&a.push(...l),a.length>0&&(r+=`${i}{${a.join(";")};}`)}),r},_o=(t,e,o,r,n=!1,s=!1,i={})=>{let a={blockGap:!0,blockStyles:!0,layoutStyles:!0,marginReset:!0,presets:!0,rootPadding:!0,variationStyles:!1,...i},l=xo(t,e),c=xt(t,e),d=t?.settings?.useRootPaddingAwareAlignments,{contentSize:f,wideSize:p}=t?.settings?.layout||{},g=a.marginReset||a.rootPadding||a.layoutStyles,u="";if(a.presets&&(f||p)&&(u+=`${X} {`,u=f?u+` --wp--style--global--content-size: ${f};`:u,u=p?u+` --wp--style--global--wide-size: ${p};`:u,u+="}"),g&&(u+=":where(body) {margin: 0;",a.rootPadding&&d&&(u+=`padding-right: 0; padding-left: 0; padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom) } .has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); } .has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); } .has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull)) { padding-right: 0; padding-left: 0; } .has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull)) > .alignfull { margin-left: 0; margin-right: 0; `),u+="}"),a.blockStyles&&l.forEach(({selector:m,duotoneSelector:v,styles:y,fallbackGapValue:O,hasLayoutSupport:b,featureSelectors:E,styleVariationSelectors:M,skipSelectorWrapper:ut,name:D})=>{if(E){let $=me(E,y);$=ge($,t.settings,D),Object.entries($).forEach(([k,_])=>{if(_.length){let K=_.join(";");u+=`:root :where(${k}){${K};}`}})}if(v){let $={};y?.filter&&($.filter=y.filter,delete y.filter);let k=W($);k.length&&(u+=`${v}{${k.join(";")};}`)}!n&&(T===m||b)&&(u+=he({style:y,selector:m,hasBlockGapSupport:o,hasFallbackGapSupport:r,fallbackGapValue:O}));let At=W(y,m,d,t,s);if(At?.length){let $=ut?m:`:root :where(${m})`;u+=`${$}{${At.join(";")};}`}y?.css&&(u+=Et(y.css,`:root :where(${m})`)),a.variationStyles&&M&&Object.entries(M).forEach(([$,k])=>{let _=y?.variations?.[$];if(_){if(E){let L=me(E,_);L=ge(L,t.settings,D),Object.entries(L).forEach(([ft,Rt])=>{if(Rt.length){let Be=wo(ft,k),Ne=Rt.join(";");u+=`:root :where(${Be}){${Ne};}`}})}let K=W(_,k,d,t);if(K.length&&(u+=`:root :where(${k}){${K.join(";")};}`),_?.css&&(u+=Et(_.css,`:root :where(${k})`)),b&&_?.spacing?.blockGap){let L=k+m;u+=he({style:_,selector:L,hasBlockGapSupport:!0,hasFallbackGapSupport:r,fallbackGapValue:O})}}});let Ft=Object.entries(y).filter(([$])=>$.startsWith(":"));Ft?.length&&Ft.forEach(([$,k])=>{let _=W(k);if(!_?.length)return;let L=`:root :where(${m.split(",").map(ft=>ft+$).join(",")}){${_.join(";")};}`;u+=L})}),a.layoutStyles&&(u=u+".wp-site-blocks > .alignleft { float: left; margin-right: 2em; }",u=u+".wp-site-blocks > .alignright { float: right; margin-left: 2em; }",u=u+".wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }"),a.blockGap&&o){let m=wt(t?.styles?.spacing?.blockGap)||"0.5em";u=u+`:root :where(.wp-site-blocks) > * { margin-block-start: ${m}; margin-block-end: 0; }`,u=u+":root :where(.wp-site-blocks) > :first-child { margin-block-start: 0; }",u=u+":root :where(.wp-site-blocks) > :last-child { margin-block-end: 0; }"}return a.presets&&c.forEach(({selector:m,presets:v})=>{(T===m||X===m)&&(m="");let y=So(m,v);y.length>0&&(u+=y)}),u};function Oo(t,e){return xt(t,e).flatMap(({presets:r})=>vo(r))}var ko=(t,e)=>{if(t?.selectors&&Object.keys(t.selectors).length>0)return t.selectors;let o={root:e};return Object.entries(yo).forEach(([r,n])=>{let s=N(t,r);s&&(o[n]=s)}),o},Io=(t,e)=>{let{getBlockStyles:o}=(0,ye.select)(x.store),r={};return t.forEach(n=>{let s=n.name,i=N(n);if(!i)return;let a=N(n,"filter.duotone");if(!a){let g=N(n),u=(0,x.getBlockSupport)(n,"color.__experimentalDuotone",!1);a=u&&g&&j(g,u)}let l=!!n?.supports?.layout||!!n?.supports?.__experimentalLayout,c=n?.supports?.spacing?.blockGap?.__experimentalDefault,d=o(s),f={};d?.forEach(g=>{let u=e?`-${e}`:"",m=`${g.name}${u}`,v=Yt(m,i);f[m]=v});let p=ko(n,i);r[s]={duotoneSelector:a??void 0,fallbackGapValue:c,featureSelectors:Object.keys(p).length?p:void 0,hasLayoutSupport:l,name:s,selector:i,styleVariationSelectors:d?.length?f:void 0}}),r};function Po(t){let e=t.styles?.blocks,o=e?.["core/separator"];return o&&o.color?.background&&!o.color?.text&&!o.border?.color?{...t,styles:{...t.styles,blocks:{...e,"core/separator":{...o,color:{...o.color,text:o.color?.background}}}}}:t}function Et(t,e){let o="";return!t||t.trim()===""||t.split("&").forEach(n=>{if(!n||n.trim()==="")return;if(!n.includes("{"))o+=`:root :where(${e}){${n.trim()}}`;else{let i=n.replace("}","").split("{");if(i.length!==2)return;let[a,l]=i,c=a.match(/([>+~\s]*::[a-zA-Z-]+)/),d=c?c[1]:"",f=c?a.replace(d,"").trim():a.trim(),p;f===""?p=e:p=a.startsWith(" ")?j(e,f):Xt(e,f),o+=`:root :where(${p})${d}{${l.trim()}}`}}),o}function $t(t={},e=[],o={}){let{hasBlockGapSupport:r,hasFallbackGapSupport:n,disableLayoutStyles:s=!1,disableRootPadding:i=!1,styleOptions:a={}}=o,l=e.length>0?e:(0,x.getBlockTypes)(),c=Nt(t,"spacing.blockGap"),d=r??c!==null,f=n??!d;if(!t?.styles||!t?.settings)return[[],{}];let p=Po(t),g=Io(l),u=$o(p,g),m=_o(p,g,d,f,s,i,a),v=Oo(p,g),y=[{css:u,isGlobalStyles:!0},{css:m,isGlobalStyles:!0},{css:p?.styles?.css??"",isGlobalStyles:!0},{assets:v,__unstableType:"svg",isGlobalStyles:!0}];return l.forEach(O=>{let b=p?.styles?.blocks?.[O.name];if(b?.css){let E=g[O.name].selector;y.push({css:Et(b.css,E),isGlobalStyles:!0})}}),[y,p.settings]}var Oe=h(U(),1),_t=h(B(),1),ke=h(G(),1);var Se=h(U(),1),ve=h(G(),1),we=h(B(),1);function Ee(t){let{userGlobalStyles:e}=(0,ve.useSelect)(o=>{let{getEntityRecord:r,getEditedEntityRecord:n,canUser:s}=o(Se.store),i=s("update",{kind:"root",name:"globalStyles",id:t}),a;return typeof i=="boolean"&&(i?a=n("root","globalStyles",t):a=r("root","globalStyles",t,{context:"view"})),{userGlobalStyles:a}},[t]);return(0,we.useMemo)(()=>e?{user:e}:{user:void 0},[e])}var _e=h($e(),1),{unlock:F}=(0,_e.__dangerousOptInToUnstableAPIsOnlyForCoreModules)("I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.","@wordpress/lazy-editor");function at({stylesId:t}){let{editorSettings:e}=(0,ke.useSelect)(i=>({editorSettings:F(i(Oe.store)).getEditorSettings()}),[]),{user:o}=Ee(t),[r]=$t(o),n=!!e,s=(0,_t.useMemo)(()=>n?[...e?.styles??[],...r]:[],[n,e?.styles,r]);return{isReady:n,editorSettings:(0,_t.useMemo)(()=>({...e??{},styles:s}),[e,s])}}function jo(t){if(!t||Object.keys(t).length===0)return;let e=document.querySelector("script#wp-importmap[type=importmap]");if(e)try{let o=JSON.parse(e.text);o.imports||(o.imports={}),o.imports={...o.imports,...t},e.text=JSON.stringify(o,null,2)}catch(o){console.error("Failed to parse or update import map:",o)}else{let o=document.createElement("script");o.type="importmap",o.id="wp-importmap",o.text=JSON.stringify({imports:t},null,2),document.head.appendChild(o)}}function Ao(t,e){return new Promise(o=>{if(!e.src){o();return}if(document.getElementById(t+"-css")){o();return}let n=document.createElement("link");n.rel="stylesheet",n.href=e.src+(e.version?"?ver="+e.version:""),n.id=t+"-css",n.media=e.media||"all",n.onload=()=>o(),n.onerror=()=>{console.error(`Failed to load stylesheet: ${t}`),o()},document.head.appendChild(n)})}function Fo(t,e){if(!e.src){let r=document.createElement("script");return r.id=t+"-js",r.textContent="// Processed: "+t,r}let o=document.createElement("script");return o.src=e.src+(e.version?"?ver="+e.version:""),o.id=t+"-js",o.async=!1,o}function Ie(t,e,o){let r="";if(Array.isArray(e)?r=e.join(` `):typeof e=="string"&&(r=e),r&&r.trim()){let n=t+"-"+o+"-inline-css";if(!document.getElementById(n)){let s=document.createElement("style");s.id=n,s.textContent=r.trim(),document.head.appendChild(s)}}}function Pe(t,e,o){let r=e;Array.isArray(r)&&(r=r.join(` `));let n=document.createElement("script");return n.id=t+"-"+o+"-js",n.textContent=r.trim(),n}function je(t){let e=new Set,o=new Set,r=[];function n(s){if(!e.has(s)){if(o.has(s)){console.warn(`Circular dependency detected for handle: ${s}`);return}o.add(s),t[s]&&(t[s].deps||[]).forEach(a=>{t[a]&&n(a)}),o.delete(s),e.add(s),t[s]&&r.push(s)}}return Object.keys(t).forEach(s=>{n(s)}),r}async function Ro(t,e){let o=[];for(let r of t){if(r.src){let n=Promise.withResolvers();r.onload=()=>n.resolve(),r.onerror=()=>{console.error(`Failed to load script: ${r.id}`),n.resolve()},o.push(n.promise)}else await Promise.all(o),o=[];e.appendChild(r)}await Promise.all(o),o=[]}async function To(t,e,o,r,n,s){s&&jo(s);let i=je(o),a=je(t),l=[];for(let f of i){let p=r.before?.[f];p&&Ie(f,p,"before"),l.push(Ao(f,o[f]));let g=r.after?.[f];g&&Ie(f,g,"after")}let c=[];for(let f of a){let p=e.before?.[f];p&&c.push(Pe(f,p,"before")),c.push(Fo(f,t[f]));let g=e.after?.[f];g&&c.push(Pe(f,g,"after"))}let d=Ro(c,document.body);await Promise.all([Promise.all(l),d]),n&&n.length>0&&n.forEach(f=>{let p=f.match(/<script([^>]*)>(.*?)<\/script>/is);if(p){let g=p[1],u=p[2],m=document.createElement("script"),v=g.match(/id=["']([^"']+)["']/);v&&(m.id=v[1]);let y=g.match(/type=["']([^"']+)["']/);y&&(m.type=y[1]),m.textContent=u,document.body.appendChild(m)}})}var Ae=To;var kt=h(U(),1),lt=h(B(),1),ct=h(G(),1);var Ot;async function Fe(){return Ot||(Ot=(async()=>{let e=await F((0,ct.resolveSelect)(kt.store)).getEditorAssets();await Ae(e.scripts||{},e.inline_scripts||{before:{},after:{}},e.styles||{},e.inline_styles||{before:{},after:{}},e.html_templates||[],e.script_modules||{})})()),Ot}function q(){let t=(0,ct.useSelect)(r=>F(r(kt.store)).getEditorAssets(),[]),[e,o]=(0,lt.useState)(!1);return(0,lt.useEffect)(()=>{t&&!e&&Fe().then(()=>{o(!0)}).catch(r=>{console.error("Failed to load editor assets:",r)})},[t,e]),{isReady:!!t&&e,assetsLoaded:e}}var Q=h(It(),1),{Editor:Co,BackButton:Vo}=F(Te.privateApis);function zo({postType:t,postId:e,settings:o,backButton:r}){let n=(0,jt.useSelect)(g=>{if(t||e)return null;let{getHomePage:u}=F(g(Pt.store));return u()},[t,e]),s=t||n?.postType,i=e||n?.postId,a=(0,jt.useSelect)(g=>{if(!(!s||!i))return s==="wp_template"?i:F(g(Pt.store)).getTemplateId(s,i)},[s,i]),l=ot({templateId:a}),{isReady:c,editorSettings:d}=at({stylesId:l}),{isReady:f}=q(),p=(0,Ve.useMemo)(()=>({...d,...o}),[d,o]);return!c||!f?(0,Q.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,Q.jsx)(Ce.Spinner,{})}):(0,Q.jsx)(Co,{postType:s,postId:i,templateId:a,settings:p,styles:p.styles,children:r&&(0,Q.jsx)(Vo,{children:r})})}var Le=h(Jt(),1),et=h(B(),1),tt=h(Me(),1),Ge=h(pt(),1),Ue=h(ht(),1);var z=h(It(),1);if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='5619aa31a1']")){let t=document.createElement("style");t.setAttribute("data-wp-hash","5619aa31a1"),t.appendChild(document.createTextNode(".lazy-editor-block-preview__container{align-items:center;border-radius:4px;display:flex;flex-direction:column;height:100%;justify-content:center}.dataviews-view-grid .lazy-editor-block-preview__container .block-editor-block-preview__container{height:100%}.dataviews-view-table .lazy-editor-block-preview__container{text-wrap:balance;text-wrap:pretty;flex-grow:0;width:96px}")),document.head.appendChild(t)}var{useStyle:Mo}=F(Ge.privateApis);function Lo({blocks:t,content:e,description:o}){let r=(0,et.useId)(),n=Mo("color.background"),s=(0,et.useMemo)(()=>t??(0,Ue.parse)(e,{__unstableSkipMigrationLogs:!0}),[e,t]),i=!s?.length;return(0,z.jsxs)("div",{className:"lazy-editor-block-preview__container",style:{backgroundColor:n},"aria-describedby":o?r:void 0,children:[i&&(0,Le.__)("Empty."),!i&&(0,z.jsx)(tt.BlockPreview.Async,{children:(0,z.jsx)(tt.BlockPreview,{blocks:s})}),!!o&&(0,z.jsx)("div",{hidden:!0,id:r,children:o})]})}function Go({blocks:t,content:e,description:o}){let r=ot(),{isReady:n,editorSettings:s}=at({stylesId:r}),{isReady:i}=q(),a=(0,et.useMemo)(()=>({...s,isPreviewMode:!0}),[s]);return!n||!i?null:(0,z.jsx)(tt.BlockEditorProvider,{settings:a,children:(0,z.jsx)(Lo,{blocks:t,content:e,description:o})})}export{zo as Editor,Go as Preview,Fe as loadEditorAssets,q as useEditorAssets}; lazy-editor/index.js 0000644 00000257411 15206736335 0010500 0 ustar 00 var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // package-external:@wordpress/editor var require_editor = __commonJS({ "package-external:@wordpress/editor"(exports, module) { module.exports = window.wp.editor; } }); // package-external:@wordpress/core-data var require_core_data = __commonJS({ "package-external:@wordpress/core-data"(exports, module) { module.exports = window.wp.coreData; } }); // package-external:@wordpress/data var require_data = __commonJS({ "package-external:@wordpress/data"(exports, module) { module.exports = window.wp.data; } }); // package-external:@wordpress/components var require_components = __commonJS({ "package-external:@wordpress/components"(exports, module) { module.exports = window.wp.components; } }); // package-external:@wordpress/element var require_element = __commonJS({ "package-external:@wordpress/element"(exports, module) { module.exports = window.wp.element; } }); // package-external:@wordpress/style-engine var require_style_engine = __commonJS({ "package-external:@wordpress/style-engine"(exports, module) { module.exports = window.wp.styleEngine; } }); // package-external:@wordpress/i18n var require_i18n = __commonJS({ "package-external:@wordpress/i18n"(exports, module) { module.exports = window.wp.i18n; } }); // package-external:@wordpress/blocks var require_blocks = __commonJS({ "package-external:@wordpress/blocks"(exports, module) { module.exports = window.wp.blocks; } }); // package-external:@wordpress/private-apis var require_private_apis = __commonJS({ "package-external:@wordpress/private-apis"(exports, module) { module.exports = window.wp.privateApis; } }); // vendor-external:react/jsx-runtime var require_jsx_runtime = __commonJS({ "vendor-external:react/jsx-runtime"(exports, module) { module.exports = window.ReactJSXRuntime; } }); // package-external:@wordpress/block-editor var require_block_editor = __commonJS({ "package-external:@wordpress/block-editor"(exports, module) { module.exports = window.wp.blockEditor; } }); // packages/lazy-editor/build-module/components/editor/index.mjs var import_editor = __toESM(require_editor(), 1); var import_core_data5 = __toESM(require_core_data(), 1); var import_data6 = __toESM(require_data(), 1); var import_components = __toESM(require_components(), 1); var import_element4 = __toESM(require_element(), 1); // packages/lazy-editor/build-module/hooks/use-styles-id.mjs var import_core_data = __toESM(require_core_data(), 1); var import_data = __toESM(require_data(), 1); function useStylesId({ templateId } = {}) { const { globalStylesId, stylesId } = (0, import_data.useSelect)( (select2) => { const coreDataSelect = select2(import_core_data.store); const template = templateId ? coreDataSelect.getEntityRecord( "postType", "wp_template", templateId ) : null; return { globalStylesId: coreDataSelect.__experimentalGetCurrentGlobalStylesId(), stylesId: template?.styles_id }; }, [templateId] ); return stylesId || globalStylesId; } // packages/global-styles-engine/build-module/utils/object.mjs function setImmutably(object, path, value) { path = Array.isArray(path) ? [...path] : [path]; object = Array.isArray(object) ? [...object] : { ...object }; const leaf = path.pop(); let prev = object; for (const key of path) { const lvl = prev[key]; prev = prev[key] = Array.isArray(lvl) ? [...lvl] : { ...lvl }; } prev[leaf] = value; return object; } var getValueFromObjectPath = (object, path, defaultValue) => { const arrayPath = Array.isArray(path) ? path : path.split("."); let value = object; arrayPath.forEach((fieldName) => { value = value?.[fieldName]; }); return value ?? defaultValue; }; // packages/global-styles-engine/build-module/settings/get-setting.mjs var VALID_SETTINGS = [ "appearanceTools", "useRootPaddingAwareAlignments", "background.backgroundImage", "background.backgroundRepeat", "background.backgroundSize", "background.backgroundPosition", "border.color", "border.radius", "border.radiusSizes", "border.style", "border.width", "shadow.presets", "shadow.defaultPresets", "color.background", "color.button", "color.caption", "color.custom", "color.customDuotone", "color.customGradient", "color.defaultDuotone", "color.defaultGradients", "color.defaultPalette", "color.duotone", "color.gradients", "color.heading", "color.link", "color.palette", "color.text", "custom", "dimensions.aspectRatio", "dimensions.height", "dimensions.minHeight", "dimensions.width", "dimensions.dimensionSizes", "layout.contentSize", "layout.definitions", "layout.wideSize", "lightbox.enabled", "lightbox.allowEditing", "position.fixed", "position.sticky", "spacing.customSpacingSize", "spacing.defaultSpacingSizes", "spacing.spacingSizes", "spacing.spacingScale", "spacing.blockGap", "spacing.margin", "spacing.padding", "spacing.units", "typography.fluid", "typography.customFontSize", "typography.defaultFontSizes", "typography.dropCap", "typography.fontFamilies", "typography.fontSizes", "typography.fontStyle", "typography.fontWeight", "typography.letterSpacing", "typography.lineHeight", "typography.textAlign", "typography.textColumns", "typography.textDecoration", "typography.textIndent", "typography.textTransform", "typography.writingMode" ]; function getSetting(globalStyles, path, blockName) { const appendedBlockPath = blockName ? ".blocks." + blockName : ""; const appendedPropertyPath = path ? "." + path : ""; const contextualPath = `settings${appendedBlockPath}${appendedPropertyPath}`; const globalPath = `settings${appendedPropertyPath}`; if (path) { return getValueFromObjectPath(globalStyles, contextualPath) ?? getValueFromObjectPath(globalStyles, globalPath); } let result = {}; VALID_SETTINGS.forEach((setting) => { const value = getValueFromObjectPath( globalStyles, `settings${appendedBlockPath}.${setting}` ) ?? getValueFromObjectPath(globalStyles, `settings.${setting}`); if (value !== void 0) { result = setImmutably(result, setting.split("."), value); } }); return result; } // packages/global-styles-engine/build-module/utils/common.mjs var import_style_engine = __toESM(require_style_engine(), 1); // packages/global-styles-engine/build-module/utils/fluid.mjs var DEFAULT_MAXIMUM_VIEWPORT_WIDTH = "1600px"; var DEFAULT_MINIMUM_VIEWPORT_WIDTH = "320px"; var DEFAULT_SCALE_FACTOR = 1; var DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MIN = 0.25; var DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MAX = 0.75; var DEFAULT_MINIMUM_FONT_SIZE_LIMIT = "14px"; function getComputedFluidTypographyValue({ minimumFontSize, maximumFontSize, fontSize, minimumViewportWidth = DEFAULT_MINIMUM_VIEWPORT_WIDTH, maximumViewportWidth = DEFAULT_MAXIMUM_VIEWPORT_WIDTH, scaleFactor = DEFAULT_SCALE_FACTOR, minimumFontSizeLimit }) { minimumFontSizeLimit = !!getTypographyValueAndUnit(minimumFontSizeLimit) ? minimumFontSizeLimit : DEFAULT_MINIMUM_FONT_SIZE_LIMIT; if (fontSize) { const fontSizeParsed = getTypographyValueAndUnit(fontSize); if (!fontSizeParsed?.unit || !fontSizeParsed?.value) { return null; } const minimumFontSizeLimitParsed = getTypographyValueAndUnit( minimumFontSizeLimit, { coerceTo: fontSizeParsed.unit } ); if (!!minimumFontSizeLimitParsed?.value && !minimumFontSize && !maximumFontSize) { if (fontSizeParsed?.value <= minimumFontSizeLimitParsed?.value) { return null; } } if (!maximumFontSize) { maximumFontSize = `${fontSizeParsed.value}${fontSizeParsed.unit}`; } if (!minimumFontSize) { const fontSizeValueInPx = fontSizeParsed.unit === "px" ? fontSizeParsed.value : fontSizeParsed.value * 16; const minimumFontSizeFactor = Math.min( Math.max( 1 - 0.075 * Math.log2(fontSizeValueInPx), DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MIN ), DEFAULT_MINIMUM_FONT_SIZE_FACTOR_MAX ); const calculatedMinimumFontSize = roundToPrecision( fontSizeParsed.value * minimumFontSizeFactor, 3 ); if (!!minimumFontSizeLimitParsed?.value && calculatedMinimumFontSize < minimumFontSizeLimitParsed?.value) { minimumFontSize = `${minimumFontSizeLimitParsed.value}${minimumFontSizeLimitParsed.unit}`; } else { minimumFontSize = `${calculatedMinimumFontSize}${fontSizeParsed.unit}`; } } } const minimumFontSizeParsed = getTypographyValueAndUnit(minimumFontSize); const fontSizeUnit = minimumFontSizeParsed?.unit || "rem"; const maximumFontSizeParsed = getTypographyValueAndUnit(maximumFontSize, { coerceTo: fontSizeUnit }); if (!minimumFontSizeParsed || !maximumFontSizeParsed) { return null; } const minimumFontSizeRem = getTypographyValueAndUnit(minimumFontSize, { coerceTo: "rem" }); const maximumViewportWidthParsed = getTypographyValueAndUnit( maximumViewportWidth, { coerceTo: fontSizeUnit } ); const minimumViewportWidthParsed = getTypographyValueAndUnit( minimumViewportWidth, { coerceTo: fontSizeUnit } ); if (!maximumViewportWidthParsed || !minimumViewportWidthParsed || !minimumFontSizeRem) { return null; } const linearDenominator = maximumViewportWidthParsed.value - minimumViewportWidthParsed.value; if (!linearDenominator) { return null; } const minViewportWidthOffsetValue = roundToPrecision( minimumViewportWidthParsed.value / 100, 3 ); const viewportWidthOffset = roundToPrecision(minViewportWidthOffsetValue, 3) + fontSizeUnit; const linearFactor = 100 * ((maximumFontSizeParsed.value - minimumFontSizeParsed.value) / linearDenominator); const linearFactorScaled = roundToPrecision( (linearFactor || 1) * scaleFactor, 3 ); const fluidTargetFontSize = `${minimumFontSizeRem.value}${minimumFontSizeRem.unit} + ((1vw - ${viewportWidthOffset}) * ${linearFactorScaled})`; return `clamp(${minimumFontSize}, ${fluidTargetFontSize}, ${maximumFontSize})`; } function getTypographyValueAndUnit(rawValue, options = {}) { if (typeof rawValue !== "string" && typeof rawValue !== "number") { return null; } if (isFinite(rawValue)) { rawValue = `${rawValue}px`; } const { coerceTo, rootSizeValue, acceptableUnits } = { coerceTo: "", // Default browser font size. Later we could inject some JS to compute this `getComputedStyle( document.querySelector( "html" ) ).fontSize`. rootSizeValue: 16, acceptableUnits: ["rem", "px", "em"], ...options }; const acceptableUnitsGroup = acceptableUnits?.join("|"); const regexUnits = new RegExp( `^(\\d*\\.?\\d+)(${acceptableUnitsGroup}){1,1}$` ); const matches = rawValue.toString().match(regexUnits); if (!matches || matches.length < 3) { return null; } let [, value, unit] = matches; let returnValue = parseFloat(value); if ("px" === coerceTo && ("em" === unit || "rem" === unit)) { returnValue = returnValue * rootSizeValue; unit = coerceTo; } if ("px" === unit && ("em" === coerceTo || "rem" === coerceTo)) { returnValue = returnValue / rootSizeValue; unit = coerceTo; } if (("em" === coerceTo || "rem" === coerceTo) && ("em" === unit || "rem" === unit)) { unit = coerceTo; } if (!unit) { return null; } return { value: roundToPrecision(returnValue, 3), unit }; } function roundToPrecision(value, digits = 3) { const base = Math.pow(10, digits); return Math.round(value * base) / base; } // packages/global-styles-engine/build-module/utils/typography.mjs function isFluidTypographyEnabled(typographySettings) { const fluidSettings = typographySettings?.fluid; return true === fluidSettings || fluidSettings && typeof fluidSettings === "object" && Object.keys(fluidSettings).length > 0; } function getFluidTypographyOptionsFromSettings(settings) { const typographySettings = settings?.typography ?? {}; const layoutSettings = settings?.layout; const defaultMaxViewportWidth = getTypographyValueAndUnit( layoutSettings?.wideSize ) ? layoutSettings?.wideSize : null; return isFluidTypographyEnabled(typographySettings) && defaultMaxViewportWidth ? { fluid: { maxViewportWidth: defaultMaxViewportWidth, ...typeof typographySettings.fluid === "object" ? typographySettings.fluid : {} } } : { fluid: typographySettings?.fluid }; } function getTypographyFontSizeValue(preset, settings) { const { size: defaultSize } = preset; if (!defaultSize || "0" === defaultSize || false === preset?.fluid) { return defaultSize; } if (!isFluidTypographyEnabled(settings?.typography) && !isFluidTypographyEnabled(preset)) { return defaultSize; } const fluidTypographySettings = getFluidTypographyOptionsFromSettings(settings)?.fluid ?? {}; const fluidFontSizeValue = getComputedFluidTypographyValue({ minimumFontSize: typeof preset?.fluid === "boolean" ? void 0 : preset?.fluid?.min, maximumFontSize: typeof preset?.fluid === "boolean" ? void 0 : preset?.fluid?.max, fontSize: defaultSize, minimumFontSizeLimit: typeof fluidTypographySettings === "object" ? fluidTypographySettings?.minFontSize : void 0, maximumViewportWidth: typeof fluidTypographySettings === "object" ? fluidTypographySettings?.maxViewportWidth : void 0, minimumViewportWidth: typeof fluidTypographySettings === "object" ? fluidTypographySettings?.minViewportWidth : void 0 }); if (!!fluidFontSizeValue) { return fluidFontSizeValue; } return defaultSize; } // packages/global-styles-engine/build-module/utils/common.mjs var ROOT_BLOCK_SELECTOR = "body"; var ROOT_CSS_PROPERTIES_SELECTOR = ":root"; var PRESET_METADATA = [ { path: ["color", "palette"], valueKey: "color", cssVarInfix: "color", classes: [ { classSuffix: "color", propertyName: "color" }, { classSuffix: "background-color", propertyName: "background-color" }, { classSuffix: "border-color", propertyName: "border-color" } ] }, { path: ["color", "gradients"], valueKey: "gradient", cssVarInfix: "gradient", classes: [ { classSuffix: "gradient-background", propertyName: "background" } ] }, { path: ["color", "duotone"], valueKey: "colors", cssVarInfix: "duotone", valueFunc: ({ slug }) => `url( '#wp-duotone-${slug}' )`, classes: [] }, { path: ["shadow", "presets"], valueKey: "shadow", cssVarInfix: "shadow", classes: [] }, { path: ["typography", "fontSizes"], valueFunc: (preset, settings) => getTypographyFontSizeValue(preset, settings), valueKey: "size", cssVarInfix: "font-size", classes: [{ classSuffix: "font-size", propertyName: "font-size" }] }, { path: ["typography", "fontFamilies"], valueKey: "fontFamily", cssVarInfix: "font-family", classes: [ { classSuffix: "font-family", propertyName: "font-family" } ] }, { path: ["spacing", "spacingSizes"], valueKey: "size", cssVarInfix: "spacing", valueFunc: ({ size }) => size, classes: [] }, { path: ["border", "radiusSizes"], valueKey: "size", cssVarInfix: "border-radius", classes: [] }, { path: ["dimensions", "dimensionSizes"], valueKey: "size", cssVarInfix: "dimension", classes: [] } ]; function scopeSelector(scope, selector) { if (!scope || !selector) { return selector; } const scopes = scope.split(","); const selectors = selector.split(","); const selectorsScoped = []; scopes.forEach((outer) => { selectors.forEach((inner) => { selectorsScoped.push(`${outer.trim()} ${inner.trim()}`); }); }); return selectorsScoped.join(", "); } function scopeFeatureSelectors(scope, selectors) { if (!scope || !selectors) { return; } const featureSelectors = {}; Object.entries(selectors).forEach(([feature, selector]) => { if (typeof selector === "string") { featureSelectors[feature] = scopeSelector(scope, selector); } if (typeof selector === "object") { featureSelectors[feature] = {}; Object.entries(selector).forEach( ([subfeature, subfeatureSelector]) => { featureSelectors[feature][subfeature] = scopeSelector( scope, subfeatureSelector ); } ); } }); return featureSelectors; } function appendToSelector(selector, toAppend) { if (!selector.includes(",")) { return selector + toAppend; } const selectors = selector.split(","); const newSelectors = selectors.map((sel) => sel + toAppend); return newSelectors.join(","); } function getBlockStyleVariationSelector(variation, blockSelector) { const variationClass = `.is-style-${variation}`; if (!blockSelector) { return variationClass; } const ancestorRegex = /((?::\([^)]+\))?\s*)([^\s:]+)/; const addVariationClass = (_match, group1, group2) => { return group1 + group2 + variationClass; }; const result = blockSelector.split(",").map((part) => part.replace(ancestorRegex, addVariationClass)); return result.join(","); } function getResolvedRefValue(ruleValue, tree) { if (!ruleValue || !tree) { return ruleValue; } if (typeof ruleValue === "object" && "ref" in ruleValue && ruleValue?.ref) { const resolvedRuleValue = (0, import_style_engine.getCSSValueFromRawStyle)( getValueFromObjectPath(tree, ruleValue.ref) ); if (typeof resolvedRuleValue === "object" && resolvedRuleValue !== null && "ref" in resolvedRuleValue && resolvedRuleValue?.ref) { return void 0; } if (resolvedRuleValue === void 0) { return ruleValue; } return resolvedRuleValue; } return ruleValue; } function getResolvedThemeFilePath(file, themeFileURIs) { if (!file || !themeFileURIs || !Array.isArray(themeFileURIs)) { return file; } const uri = themeFileURIs.find( (themeFileUri) => themeFileUri?.name === file ); if (!uri?.href) { return file; } return uri?.href; } function getResolvedValue(ruleValue, tree) { if (!ruleValue || !tree) { return ruleValue; } const resolvedValue = getResolvedRefValue(ruleValue, tree); if (typeof resolvedValue === "object" && resolvedValue !== null && "url" in resolvedValue && resolvedValue?.url) { resolvedValue.url = getResolvedThemeFilePath( resolvedValue.url, tree?._links?.["wp:theme-file"] ); } return resolvedValue; } // packages/global-styles-engine/build-module/core/render.mjs var import_blocks = __toESM(require_blocks(), 1); var import_style_engine2 = __toESM(require_style_engine(), 1); var import_data2 = __toESM(require_data(), 1); // packages/global-styles-engine/build-module/core/selectors.mjs function getBlockSelector(blockType, target = "root", options = {}) { if (!target) { return null; } const { fallback = false } = options; const { name, selectors, supports } = blockType; const hasSelectors = selectors && Object.keys(selectors).length > 0; const path = Array.isArray(target) ? target.join(".") : target; let rootSelector = null; if (hasSelectors && selectors.root) { rootSelector = selectors?.root; } else if (supports?.__experimentalSelector) { rootSelector = supports.__experimentalSelector; } else { rootSelector = ".wp-block-" + name.replace("core/", "").replace("/", "-"); } if (path === "root") { return rootSelector; } const pathArray = Array.isArray(target) ? target : target.split("."); if (pathArray.length === 1) { const fallbackSelector = fallback ? rootSelector : null; if (hasSelectors) { const featureSelector2 = getValueFromObjectPath( selectors, `${path}.root`, null ) || getValueFromObjectPath(selectors, path, null); return featureSelector2 || fallbackSelector; } const featureSelector = supports ? getValueFromObjectPath( supports, `${path}.__experimentalSelector`, null ) : void 0; if (!featureSelector) { return fallbackSelector; } return scopeSelector(rootSelector, featureSelector); } let subfeatureSelector; if (hasSelectors) { subfeatureSelector = getValueFromObjectPath(selectors, path, null); } if (subfeatureSelector) { return subfeatureSelector; } if (fallback) { return getBlockSelector(blockType, pathArray[0], options); } return null; } // node_modules/colord/index.mjs var r = { grad: 0.9, turn: 360, rad: 360 / (2 * Math.PI) }; var t = function(r2) { return "string" == typeof r2 ? r2.length > 0 : "number" == typeof r2; }; var n = function(r2, t2, n2) { return void 0 === t2 && (t2 = 0), void 0 === n2 && (n2 = Math.pow(10, t2)), Math.round(n2 * r2) / n2 + 0; }; var e = function(r2, t2, n2) { return void 0 === t2 && (t2 = 0), void 0 === n2 && (n2 = 1), r2 > n2 ? n2 : r2 > t2 ? r2 : t2; }; var u = function(r2) { return (r2 = isFinite(r2) ? r2 % 360 : 0) > 0 ? r2 : r2 + 360; }; var a = function(r2) { return { r: e(r2.r, 0, 255), g: e(r2.g, 0, 255), b: e(r2.b, 0, 255), a: e(r2.a) }; }; var o = function(r2) { return { r: n(r2.r), g: n(r2.g), b: n(r2.b), a: n(r2.a, 3) }; }; var i = /^#([0-9a-f]{3,8})$/i; var s = function(r2) { var t2 = r2.toString(16); return t2.length < 2 ? "0" + t2 : t2; }; var h = function(r2) { var t2 = r2.r, n2 = r2.g, e2 = r2.b, u2 = r2.a, a2 = Math.max(t2, n2, e2), o2 = a2 - Math.min(t2, n2, e2), i2 = o2 ? a2 === t2 ? (n2 - e2) / o2 : a2 === n2 ? 2 + (e2 - t2) / o2 : 4 + (t2 - n2) / o2 : 0; return { h: 60 * (i2 < 0 ? i2 + 6 : i2), s: a2 ? o2 / a2 * 100 : 0, v: a2 / 255 * 100, a: u2 }; }; var b = function(r2) { var t2 = r2.h, n2 = r2.s, e2 = r2.v, u2 = r2.a; t2 = t2 / 360 * 6, n2 /= 100, e2 /= 100; var a2 = Math.floor(t2), o2 = e2 * (1 - n2), i2 = e2 * (1 - (t2 - a2) * n2), s2 = e2 * (1 - (1 - t2 + a2) * n2), h2 = a2 % 6; return { r: 255 * [e2, i2, o2, o2, s2, e2][h2], g: 255 * [s2, e2, e2, i2, o2, o2][h2], b: 255 * [o2, o2, s2, e2, e2, i2][h2], a: u2 }; }; var g = function(r2) { return { h: u(r2.h), s: e(r2.s, 0, 100), l: e(r2.l, 0, 100), a: e(r2.a) }; }; var d = function(r2) { return { h: n(r2.h), s: n(r2.s), l: n(r2.l), a: n(r2.a, 3) }; }; var f = function(r2) { return b((n2 = (t2 = r2).s, { h: t2.h, s: (n2 *= ((e2 = t2.l) < 50 ? e2 : 100 - e2) / 100) > 0 ? 2 * n2 / (e2 + n2) * 100 : 0, v: e2 + n2, a: t2.a })); var t2, n2, e2; }; var c = function(r2) { return { h: (t2 = h(r2)).h, s: (u2 = (200 - (n2 = t2.s)) * (e2 = t2.v) / 100) > 0 && u2 < 200 ? n2 * e2 / 100 / (u2 <= 100 ? u2 : 200 - u2) * 100 : 0, l: u2 / 2, a: t2.a }; var t2, n2, e2, u2; }; var l = /^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i; var p = /^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i; var v = /^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i; var m = /^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i; var y = { string: [[function(r2) { var t2 = i.exec(r2); return t2 ? (r2 = t2[1]).length <= 4 ? { r: parseInt(r2[0] + r2[0], 16), g: parseInt(r2[1] + r2[1], 16), b: parseInt(r2[2] + r2[2], 16), a: 4 === r2.length ? n(parseInt(r2[3] + r2[3], 16) / 255, 2) : 1 } : 6 === r2.length || 8 === r2.length ? { r: parseInt(r2.substr(0, 2), 16), g: parseInt(r2.substr(2, 2), 16), b: parseInt(r2.substr(4, 2), 16), a: 8 === r2.length ? n(parseInt(r2.substr(6, 2), 16) / 255, 2) : 1 } : null : null; }, "hex"], [function(r2) { var t2 = v.exec(r2) || m.exec(r2); return t2 ? t2[2] !== t2[4] || t2[4] !== t2[6] ? null : a({ r: Number(t2[1]) / (t2[2] ? 100 / 255 : 1), g: Number(t2[3]) / (t2[4] ? 100 / 255 : 1), b: Number(t2[5]) / (t2[6] ? 100 / 255 : 1), a: void 0 === t2[7] ? 1 : Number(t2[7]) / (t2[8] ? 100 : 1) }) : null; }, "rgb"], [function(t2) { var n2 = l.exec(t2) || p.exec(t2); if (!n2) return null; var e2, u2, a2 = g({ h: (e2 = n2[1], u2 = n2[2], void 0 === u2 && (u2 = "deg"), Number(e2) * (r[u2] || 1)), s: Number(n2[3]), l: Number(n2[4]), a: void 0 === n2[5] ? 1 : Number(n2[5]) / (n2[6] ? 100 : 1) }); return f(a2); }, "hsl"]], object: [[function(r2) { var n2 = r2.r, e2 = r2.g, u2 = r2.b, o2 = r2.a, i2 = void 0 === o2 ? 1 : o2; return t(n2) && t(e2) && t(u2) ? a({ r: Number(n2), g: Number(e2), b: Number(u2), a: Number(i2) }) : null; }, "rgb"], [function(r2) { var n2 = r2.h, e2 = r2.s, u2 = r2.l, a2 = r2.a, o2 = void 0 === a2 ? 1 : a2; if (!t(n2) || !t(e2) || !t(u2)) return null; var i2 = g({ h: Number(n2), s: Number(e2), l: Number(u2), a: Number(o2) }); return f(i2); }, "hsl"], [function(r2) { var n2 = r2.h, a2 = r2.s, o2 = r2.v, i2 = r2.a, s2 = void 0 === i2 ? 1 : i2; if (!t(n2) || !t(a2) || !t(o2)) return null; var h2 = (function(r3) { return { h: u(r3.h), s: e(r3.s, 0, 100), v: e(r3.v, 0, 100), a: e(r3.a) }; })({ h: Number(n2), s: Number(a2), v: Number(o2), a: Number(s2) }); return b(h2); }, "hsv"]] }; var N = function(r2, t2) { for (var n2 = 0; n2 < t2.length; n2++) { var e2 = t2[n2][0](r2); if (e2) return [e2, t2[n2][1]]; } return [null, void 0]; }; var x = function(r2) { return "string" == typeof r2 ? N(r2.trim(), y.string) : "object" == typeof r2 && null !== r2 ? N(r2, y.object) : [null, void 0]; }; var M = function(r2, t2) { var n2 = c(r2); return { h: n2.h, s: e(n2.s + 100 * t2, 0, 100), l: n2.l, a: n2.a }; }; var H = function(r2) { return (299 * r2.r + 587 * r2.g + 114 * r2.b) / 1e3 / 255; }; var $ = function(r2, t2) { var n2 = c(r2); return { h: n2.h, s: n2.s, l: e(n2.l + 100 * t2, 0, 100), a: n2.a }; }; var j = (function() { function r2(r3) { this.parsed = x(r3)[0], this.rgba = this.parsed || { r: 0, g: 0, b: 0, a: 1 }; } return r2.prototype.isValid = function() { return null !== this.parsed; }, r2.prototype.brightness = function() { return n(H(this.rgba), 2); }, r2.prototype.isDark = function() { return H(this.rgba) < 0.5; }, r2.prototype.isLight = function() { return H(this.rgba) >= 0.5; }, r2.prototype.toHex = function() { return r3 = o(this.rgba), t2 = r3.r, e2 = r3.g, u2 = r3.b, i2 = (a2 = r3.a) < 1 ? s(n(255 * a2)) : "", "#" + s(t2) + s(e2) + s(u2) + i2; var r3, t2, e2, u2, a2, i2; }, r2.prototype.toRgb = function() { return o(this.rgba); }, r2.prototype.toRgbString = function() { return r3 = o(this.rgba), t2 = r3.r, n2 = r3.g, e2 = r3.b, (u2 = r3.a) < 1 ? "rgba(" + t2 + ", " + n2 + ", " + e2 + ", " + u2 + ")" : "rgb(" + t2 + ", " + n2 + ", " + e2 + ")"; var r3, t2, n2, e2, u2; }, r2.prototype.toHsl = function() { return d(c(this.rgba)); }, r2.prototype.toHslString = function() { return r3 = d(c(this.rgba)), t2 = r3.h, n2 = r3.s, e2 = r3.l, (u2 = r3.a) < 1 ? "hsla(" + t2 + ", " + n2 + "%, " + e2 + "%, " + u2 + ")" : "hsl(" + t2 + ", " + n2 + "%, " + e2 + "%)"; var r3, t2, n2, e2, u2; }, r2.prototype.toHsv = function() { return r3 = h(this.rgba), { h: n(r3.h), s: n(r3.s), v: n(r3.v), a: n(r3.a, 3) }; var r3; }, r2.prototype.invert = function() { return w({ r: 255 - (r3 = this.rgba).r, g: 255 - r3.g, b: 255 - r3.b, a: r3.a }); var r3; }, r2.prototype.saturate = function(r3) { return void 0 === r3 && (r3 = 0.1), w(M(this.rgba, r3)); }, r2.prototype.desaturate = function(r3) { return void 0 === r3 && (r3 = 0.1), w(M(this.rgba, -r3)); }, r2.prototype.grayscale = function() { return w(M(this.rgba, -1)); }, r2.prototype.lighten = function(r3) { return void 0 === r3 && (r3 = 0.1), w($(this.rgba, r3)); }, r2.prototype.darken = function(r3) { return void 0 === r3 && (r3 = 0.1), w($(this.rgba, -r3)); }, r2.prototype.rotate = function(r3) { return void 0 === r3 && (r3 = 15), this.hue(this.hue() + r3); }, r2.prototype.alpha = function(r3) { return "number" == typeof r3 ? w({ r: (t2 = this.rgba).r, g: t2.g, b: t2.b, a: r3 }) : n(this.rgba.a, 3); var t2; }, r2.prototype.hue = function(r3) { var t2 = c(this.rgba); return "number" == typeof r3 ? w({ h: r3, s: t2.s, l: t2.l, a: t2.a }) : n(t2.h); }, r2.prototype.isEqual = function(r3) { return this.toHex() === w(r3).toHex(); }, r2; })(); var w = function(r2) { return r2 instanceof j ? r2 : new j(r2); }; // packages/global-styles-engine/build-module/utils/duotone.mjs function getValuesFromColors(colors = []) { const values = { r: [], g: [], b: [], a: [] }; colors.forEach((color) => { const rgbColor = w(color).toRgb(); values.r.push(rgbColor.r / 255); values.g.push(rgbColor.g / 255); values.b.push(rgbColor.b / 255); values.a.push(rgbColor.a); }); return values; } function getDuotoneFilter(id, colors) { const values = getValuesFromColors(colors); return ` <svg xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" aria-hidden="true" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;" > <defs> <filter id="${id}"> <!-- Use sRGB instead of linearRGB so transparency looks correct. Use perceptual brightness to convert to grayscale. --> <feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 "></feColorMatrix> <!-- Use sRGB instead of linearRGB to be consistent with how CSS gradients work. --> <feComponentTransfer color-interpolation-filters="sRGB"> <feFuncR type="table" tableValues="${values.r.join(" ")}"></feFuncR> <feFuncG type="table" tableValues="${values.g.join(" ")}"></feFuncG> <feFuncB type="table" tableValues="${values.b.join(" ")}"></feFuncB> <feFuncA type="table" tableValues="${values.a.join(" ")}"></feFuncA> </feComponentTransfer> <!-- Re-mask the image with the original transparency since the feColorMatrix above loses that information. --> <feComposite in2="SourceGraphic" operator="in"></feComposite> </filter> </defs> </svg>`; } // packages/global-styles-engine/build-module/utils/string.mjs function kebabCase(str) { return str.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/([0-9])([a-zA-Z])/g, "$1-$2").replace(/([a-zA-Z])([0-9])/g, "$1-$2").replace(/[\s_]+/g, "-").toLowerCase(); } // packages/global-styles-engine/build-module/utils/spacing.mjs function getSpacingPresetCssVar(value) { if (!value) { return; } const slug = value.match(/var:preset\|spacing\|(.+)/); if (!slug) { return value; } return `var(--wp--preset--spacing--${slug[1]})`; } // packages/global-styles-engine/build-module/utils/gap.mjs function getGapBoxControlValueFromStyle(blockGapValue) { if (!blockGapValue) { return null; } const isValueString = typeof blockGapValue === "string"; return { top: isValueString ? blockGapValue : blockGapValue?.top, left: isValueString ? blockGapValue : blockGapValue?.left }; } function getGapCSSValue(blockGapValue, defaultValue = "0") { const blockGapBoxControlValue = getGapBoxControlValueFromStyle(blockGapValue); if (!blockGapBoxControlValue) { return null; } const row = getSpacingPresetCssVar(blockGapBoxControlValue?.top) || defaultValue; const column = getSpacingPresetCssVar(blockGapBoxControlValue?.left) || defaultValue; return row === column ? row : `${row} ${column}`; } // packages/global-styles-engine/build-module/utils/background.mjs var BACKGROUND_BLOCK_DEFAULT_VALUES = { backgroundSize: "cover", backgroundPosition: "50% 50%" // used only when backgroundSize is 'contain'. }; function setBackgroundStyleDefaults(backgroundStyle) { if (!backgroundStyle || // @ts-expect-error !backgroundStyle?.backgroundImage?.url) { return; } let backgroundStylesWithDefaults; if (!backgroundStyle?.backgroundSize) { backgroundStylesWithDefaults = { backgroundSize: BACKGROUND_BLOCK_DEFAULT_VALUES.backgroundSize }; } if ("contain" === backgroundStyle?.backgroundSize && !backgroundStyle?.backgroundPosition) { backgroundStylesWithDefaults = { backgroundPosition: BACKGROUND_BLOCK_DEFAULT_VALUES.backgroundPosition }; } return backgroundStylesWithDefaults; } // packages/global-styles-engine/build-module/utils/layout.mjs var LAYOUT_DEFINITIONS = { default: { name: "default", slug: "flow", className: "is-layout-flow", baseStyles: [ { selector: " > .alignleft", rules: { float: "left", "margin-inline-start": "0", "margin-inline-end": "2em" } }, { selector: " > .alignright", rules: { float: "right", "margin-inline-start": "2em", "margin-inline-end": "0" } }, { selector: " > .aligncenter", rules: { "margin-left": "auto !important", "margin-right": "auto !important" } } ], spacingStyles: [ { selector: " > :first-child", rules: { "margin-block-start": "0" } }, { selector: " > :last-child", rules: { "margin-block-end": "0" } }, { selector: " > *", rules: { "margin-block-start": null, "margin-block-end": "0" } } ] }, constrained: { name: "constrained", slug: "constrained", className: "is-layout-constrained", baseStyles: [ { selector: " > .alignleft", rules: { float: "left", "margin-inline-start": "0", "margin-inline-end": "2em" } }, { selector: " > .alignright", rules: { float: "right", "margin-inline-start": "2em", "margin-inline-end": "0" } }, { selector: " > .aligncenter", rules: { "margin-left": "auto !important", "margin-right": "auto !important" } }, { selector: " > :where(:not(.alignleft):not(.alignright):not(.alignfull))", rules: { "max-width": "var(--wp--style--global--content-size)", "margin-left": "auto !important", "margin-right": "auto !important" } }, { selector: " > .alignwide", rules: { "max-width": "var(--wp--style--global--wide-size)" } } ], spacingStyles: [ { selector: " > :first-child", rules: { "margin-block-start": "0" } }, { selector: " > :last-child", rules: { "margin-block-end": "0" } }, { selector: " > *", rules: { "margin-block-start": null, "margin-block-end": "0" } } ] }, flex: { name: "flex", slug: "flex", className: "is-layout-flex", displayMode: "flex", baseStyles: [ { selector: "", rules: { "flex-wrap": "wrap", "align-items": "center" } }, { selector: " > :is(*, div)", // :is(*, div) instead of just * increases the specificity by 001. rules: { margin: "0" } } ], spacingStyles: [ { selector: "", rules: { gap: null } } ] }, grid: { name: "grid", slug: "grid", className: "is-layout-grid", displayMode: "grid", baseStyles: [ { selector: " > :is(*, div)", // :is(*, div) instead of just * increases the specificity by 001. rules: { margin: "0" } } ], spacingStyles: [ { selector: "", rules: { gap: null } } ] } }; // packages/global-styles-engine/build-module/core/render.mjs var ELEMENT_CLASS_NAMES = { button: "wp-element-button", caption: "wp-element-caption" }; var BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS = { __experimentalBorder: "border", color: "color", dimensions: "dimensions", spacing: "spacing", typography: "typography" }; function getPresetsDeclarations(blockPresets = {}, mergedSettings) { return PRESET_METADATA.reduce( (declarations, { path, valueKey, valueFunc, cssVarInfix }) => { const presetByOrigin = getValueFromObjectPath( blockPresets, path, [] ); ["default", "theme", "custom"].forEach((origin) => { if (presetByOrigin[origin]) { presetByOrigin[origin].forEach((value) => { if (valueKey && !valueFunc) { declarations.push( `--wp--preset--${cssVarInfix}--${kebabCase( value.slug )}: ${value[valueKey]}` ); } else if (valueFunc && typeof valueFunc === "function") { declarations.push( `--wp--preset--${cssVarInfix}--${kebabCase( value.slug )}: ${valueFunc(value, mergedSettings)}` ); } }); } }); return declarations; }, [] ); } function getPresetsClasses(blockSelector = "*", blockPresets = {}) { return PRESET_METADATA.reduce( (declarations, { path, cssVarInfix, classes }) => { if (!classes) { return declarations; } const presetByOrigin = getValueFromObjectPath( blockPresets, path, [] ); ["default", "theme", "custom"].forEach((origin) => { if (presetByOrigin[origin]) { presetByOrigin[origin].forEach( ({ slug }) => { classes.forEach( ({ classSuffix, propertyName }) => { const classSelectorToUse = `.has-${kebabCase( slug )}-${classSuffix}`; const selectorToUse = blockSelector.split(",").map( (selector) => `${selector}${classSelectorToUse}` ).join(","); const value = `var(--wp--preset--${cssVarInfix}--${kebabCase( slug )})`; declarations += `${selectorToUse}{${propertyName}: ${value} !important;}`; } ); } ); } }); return declarations; }, "" ); } function getPresetsSvgFilters(blockPresets = {}) { return PRESET_METADATA.filter( // Duotone are the only type of filters for now. (metadata) => metadata.path.at(-1) === "duotone" ).flatMap((metadata) => { const presetByOrigin = getValueFromObjectPath( blockPresets, metadata.path, {} ); return ["default", "theme"].filter((origin) => presetByOrigin[origin]).flatMap( (origin) => presetByOrigin[origin].map( (preset) => getDuotoneFilter( `wp-duotone-${preset.slug}`, preset.colors ) ) ).join(""); }); } function flattenTree(input = {}, prefix, token) { let result = []; Object.keys(input).forEach((key) => { const newKey = prefix + kebabCase(key.replace("/", "-")); const newLeaf = input[key]; if (newLeaf instanceof Object) { const newPrefix = newKey + token; result = [...result, ...flattenTree(newLeaf, newPrefix, token)]; } else { result.push(`${newKey}: ${newLeaf}`); } }); return result; } function concatFeatureVariationSelectorString(featureSelector, styleVariationSelector) { const featureSelectors = featureSelector.split(","); const combinedSelectors = []; featureSelectors.forEach((selector) => { combinedSelectors.push( `${styleVariationSelector.trim()}${selector.trim()}` ); }); return combinedSelectors.join(", "); } var updateParagraphTextIndentSelector = (featureDeclarations, settings, blockName) => { if (blockName !== "core/paragraph") { return featureDeclarations; } const blockSettings = settings?.blocks?.["core/paragraph"]; const textIndentSetting = blockSettings?.typography?.textIndent ?? settings?.typography?.textIndent ?? "subsequent"; if (textIndentSetting !== "all") { return featureDeclarations; } const oldSelector = ".wp-block-paragraph + .wp-block-paragraph"; const newSelector = ".wp-block-paragraph"; if (oldSelector in featureDeclarations) { const declarations = featureDeclarations[oldSelector]; const updated = { ...featureDeclarations }; delete updated[oldSelector]; updated[newSelector] = declarations; return updated; } return featureDeclarations; }; var getFeatureDeclarations = (selectors, styles) => { const declarations = {}; Object.entries(selectors).forEach(([feature, selector]) => { if (feature === "root" || !styles?.[feature]) { return; } const isShorthand = typeof selector === "string"; if (!isShorthand && typeof selector === "object" && selector !== null) { Object.entries(selector).forEach( ([subfeature, subfeatureSelector]) => { if (subfeature === "root" || !styles?.[feature][subfeature]) { return; } const subfeatureStyles = { [feature]: { [subfeature]: styles[feature][subfeature] } }; const newDeclarations = getStylesDeclarations(subfeatureStyles); declarations[subfeatureSelector] = [ ...declarations[subfeatureSelector] || [], ...newDeclarations ]; delete styles[feature][subfeature]; } ); } if (isShorthand || typeof selector === "object" && selector !== null && "root" in selector) { const featureSelector = isShorthand ? selector : selector.root; const featureStyles = { [feature]: styles[feature] }; const newDeclarations = getStylesDeclarations(featureStyles); declarations[featureSelector] = [ ...declarations[featureSelector] || [], ...newDeclarations ]; delete styles[feature]; } }); return declarations; }; function getStylesDeclarations(blockStyles = {}, selector = "", useRootPaddingAlign, tree = {}, disableRootPadding = false) { const isRoot = ROOT_BLOCK_SELECTOR === selector; const output = Object.entries( import_blocks.__EXPERIMENTAL_STYLE_PROPERTY ).reduce( (declarations, [key, { value, properties, useEngine, rootOnly }]) => { if (rootOnly && !isRoot) { return declarations; } const pathToValue = value; if (pathToValue[0] === "elements" || useEngine) { return declarations; } const styleValue = getValueFromObjectPath( blockStyles, pathToValue ); if (key === "--wp--style--root--padding" && (typeof styleValue === "string" || !useRootPaddingAlign)) { return declarations; } if (properties && typeof styleValue !== "string") { Object.entries(properties).forEach((entry) => { const [name, prop] = entry; if (!getValueFromObjectPath(styleValue, [prop], false)) { return; } const cssProperty = name.startsWith("--") ? name : kebabCase(name); declarations.push( `${cssProperty}: ${(0, import_style_engine2.getCSSValueFromRawStyle)( getValueFromObjectPath(styleValue, [prop]) )}` ); }); } else if (getValueFromObjectPath(blockStyles, pathToValue, false)) { const cssProperty = key.startsWith("--") ? key : kebabCase(key); declarations.push( `${cssProperty}: ${(0, import_style_engine2.getCSSValueFromRawStyle)( getValueFromObjectPath(blockStyles, pathToValue) )}` ); } return declarations; }, [] ); if (!!blockStyles.background) { if (blockStyles.background?.backgroundImage) { blockStyles.background.backgroundImage = getResolvedValue( blockStyles.background.backgroundImage, tree ); } if (!isRoot && !!blockStyles.background?.backgroundImage?.id) { blockStyles = { ...blockStyles, background: { ...blockStyles.background, ...setBackgroundStyleDefaults(blockStyles.background) } }; } } const extraRules = (0, import_style_engine2.getCSSRules)(blockStyles); extraRules.forEach((rule) => { if (isRoot && (useRootPaddingAlign || disableRootPadding) && rule.key.startsWith("padding")) { return; } const cssProperty = rule.key.startsWith("--") ? rule.key : kebabCase(rule.key); let ruleValue = getResolvedValue(rule.value, tree); if (cssProperty === "font-size") { ruleValue = getTypographyFontSizeValue( { name: "", slug: "", size: ruleValue }, tree?.settings ); } if (cssProperty === "aspect-ratio") { output.push("min-height: unset"); } output.push(`${cssProperty}: ${ruleValue}`); }); return output; } function getLayoutStyles({ layoutDefinitions = LAYOUT_DEFINITIONS, style, selector, hasBlockGapSupport, hasFallbackGapSupport, fallbackGapValue }) { let ruleset = ""; let gapValue = hasBlockGapSupport ? getGapCSSValue(style?.spacing?.blockGap) : ""; if (hasFallbackGapSupport) { if (selector === ROOT_BLOCK_SELECTOR) { gapValue = !gapValue ? "0.5em" : gapValue; } else if (!hasBlockGapSupport && fallbackGapValue) { gapValue = fallbackGapValue; } } if (gapValue && layoutDefinitions) { Object.values(layoutDefinitions).forEach( ({ className, name, spacingStyles }) => { if (!hasBlockGapSupport && "flex" !== name && "grid" !== name) { return; } if (spacingStyles?.length) { spacingStyles.forEach((spacingStyle) => { const declarations = []; if (spacingStyle.rules) { Object.entries(spacingStyle.rules).forEach( ([cssProperty, cssValue]) => { declarations.push( `${cssProperty}: ${cssValue ? cssValue : gapValue}` ); } ); } if (declarations.length) { let combinedSelector = ""; if (!hasBlockGapSupport) { combinedSelector = selector === ROOT_BLOCK_SELECTOR ? `:where(.${className}${spacingStyle?.selector || ""})` : `:where(${selector}.${className}${spacingStyle?.selector || ""})`; } else { combinedSelector = selector === ROOT_BLOCK_SELECTOR ? `:root :where(.${className})${spacingStyle?.selector || ""}` : `:root :where(${selector}-${className})${spacingStyle?.selector || ""}`; } ruleset += `${combinedSelector} { ${declarations.join( "; " )}; }`; } }); } } ); if (selector === ROOT_BLOCK_SELECTOR && hasBlockGapSupport) { ruleset += `${ROOT_CSS_PROPERTIES_SELECTOR} { --wp--style--block-gap: ${gapValue}; }`; } } if (selector === ROOT_BLOCK_SELECTOR && layoutDefinitions) { const validDisplayModes = ["block", "flex", "grid"]; Object.values(layoutDefinitions).forEach( ({ className, displayMode, baseStyles }) => { if (displayMode && validDisplayModes.includes(displayMode)) { ruleset += `${selector} .${className} { display:${displayMode}; }`; } if (baseStyles?.length) { baseStyles.forEach((baseStyle) => { const declarations = []; if (baseStyle.rules) { Object.entries(baseStyle.rules).forEach( ([cssProperty, cssValue]) => { declarations.push( `${cssProperty}: ${cssValue}` ); } ); } if (declarations.length) { const combinedSelector = `.${className}${baseStyle?.selector || ""}`; ruleset += `${combinedSelector} { ${declarations.join( "; " )}; }`; } }); } } ); } return ruleset; } var STYLE_KEYS = [ "border", "color", "dimensions", "spacing", "typography", "filter", "outline", "shadow", "background" ]; function pickStyleKeys(treeToPickFrom) { if (!treeToPickFrom) { return {}; } const entries = Object.entries(treeToPickFrom); const pickedEntries = entries.filter( ([key]) => STYLE_KEYS.includes(key) ); const clonedEntries = pickedEntries.map(([key, style]) => [ key, JSON.parse(JSON.stringify(style)) ]); return Object.fromEntries(clonedEntries); } var getNodesWithStyles = (tree, blockSelectors) => { const nodes = []; if (!tree?.styles) { return nodes; } const styles = pickStyleKeys(tree.styles); if (styles) { nodes.push({ styles, selector: ROOT_BLOCK_SELECTOR, // Root selector (body) styles should not be wrapped in `:root where()` to keep // specificity at (0,0,1) and maintain backwards compatibility. skipSelectorWrapper: true }); } Object.entries(import_blocks.__EXPERIMENTAL_ELEMENTS).forEach(([name, selector]) => { if (tree.styles?.elements?.[name]) { nodes.push({ styles: tree.styles?.elements?.[name] ?? {}, selector, // Top level elements that don't use a class name should not receive the // `:root :where()` wrapper to maintain backwards compatibility. skipSelectorWrapper: !ELEMENT_CLASS_NAMES[name] }); } }); Object.entries(tree.styles?.blocks ?? {}).forEach( ([blockName, node]) => { const blockStyles = pickStyleKeys(node); const typedNode = node; const variationNodesToAdd = []; if (typedNode?.variations) { const variations = {}; Object.entries(typedNode.variations).forEach( ([variationName, variation]) => { const typedVariation = variation; variations[variationName] = pickStyleKeys(typedVariation); if (typedVariation?.css) { variations[variationName].css = typedVariation.css; } const variationSelector = typeof blockSelectors !== "string" ? blockSelectors[blockName]?.styleVariationSelectors?.[variationName] : void 0; Object.entries( typedVariation?.elements ?? {} ).forEach(([element, elementStyles]) => { if (elementStyles && import_blocks.__EXPERIMENTAL_ELEMENTS[element]) { variationNodesToAdd.push({ styles: elementStyles, selector: scopeSelector( variationSelector, import_blocks.__EXPERIMENTAL_ELEMENTS[element] ) }); } }); Object.entries(typedVariation?.blocks ?? {}).forEach( ([ variationBlockName, variationBlockStyles ]) => { const variationBlockSelector = typeof blockSelectors !== "string" ? scopeSelector( variationSelector, blockSelectors[variationBlockName]?.selector ) : void 0; const variationDuotoneSelector = typeof blockSelectors !== "string" ? scopeSelector( variationSelector, blockSelectors[variationBlockName]?.duotoneSelector ) : void 0; const variationFeatureSelectors = typeof blockSelectors !== "string" ? scopeFeatureSelectors( variationSelector, blockSelectors[variationBlockName]?.featureSelectors ?? {} ) : void 0; const variationBlockStyleNodes = pickStyleKeys(variationBlockStyles); if (variationBlockStyles?.css) { variationBlockStyleNodes.css = variationBlockStyles.css; } if (!variationBlockSelector || typeof blockSelectors === "string") { return; } variationNodesToAdd.push({ selector: variationBlockSelector, duotoneSelector: variationDuotoneSelector, featureSelectors: variationFeatureSelectors, fallbackGapValue: blockSelectors[variationBlockName]?.fallbackGapValue, hasLayoutSupport: blockSelectors[variationBlockName]?.hasLayoutSupport, styles: variationBlockStyleNodes }); Object.entries( variationBlockStyles.elements ?? {} ).forEach( ([ variationBlockElement, variationBlockElementStyles ]) => { if (variationBlockElementStyles && import_blocks.__EXPERIMENTAL_ELEMENTS[variationBlockElement]) { variationNodesToAdd.push({ styles: variationBlockElementStyles, selector: scopeSelector( variationBlockSelector, import_blocks.__EXPERIMENTAL_ELEMENTS[variationBlockElement] ) }); } } ); } ); } ); blockStyles.variations = variations; } if (typeof blockSelectors !== "string" && blockSelectors?.[blockName]?.selector) { nodes.push({ duotoneSelector: blockSelectors[blockName].duotoneSelector, fallbackGapValue: blockSelectors[blockName].fallbackGapValue, hasLayoutSupport: blockSelectors[blockName].hasLayoutSupport, selector: blockSelectors[blockName].selector, styles: blockStyles, featureSelectors: blockSelectors[blockName].featureSelectors, styleVariationSelectors: blockSelectors[blockName].styleVariationSelectors, name: blockName }); } Object.entries(typedNode?.elements ?? {}).forEach( ([elementName, value]) => { if (typeof blockSelectors !== "string" && value && blockSelectors?.[blockName] && import_blocks.__EXPERIMENTAL_ELEMENTS[elementName]) { nodes.push({ styles: value, selector: blockSelectors[blockName]?.selector.split(",").map((sel) => { const elementSelectors = import_blocks.__EXPERIMENTAL_ELEMENTS[elementName].split(","); return elementSelectors.map( (elementSelector) => sel + " " + elementSelector ); }).join(",") }); } } ); nodes.push(...variationNodesToAdd); } ); return nodes; }; var getNodesWithSettings = (tree, blockSelectors) => { const nodes = []; if (!tree?.settings) { return nodes; } const pickPresets = (treeToPickFrom) => { let presets2 = {}; PRESET_METADATA.forEach(({ path }) => { const value = getValueFromObjectPath(treeToPickFrom, path, false); if (value !== false) { presets2 = setImmutably(presets2, path, value); } }); return presets2; }; const presets = pickPresets(tree.settings); const custom = tree.settings?.custom; if (Object.keys(presets).length > 0 || custom) { nodes.push({ presets, custom, selector: ROOT_CSS_PROPERTIES_SELECTOR }); } Object.entries(tree.settings?.blocks ?? {}).forEach( ([blockName, node]) => { const blockCustom = node.custom; if (typeof blockSelectors === "string" || !blockSelectors[blockName]) { return; } const blockPresets = pickPresets(node); if (Object.keys(blockPresets).length > 0 || blockCustom) { nodes.push({ presets: blockPresets, custom: blockCustom, selector: blockSelectors[blockName]?.selector }); } } ); return nodes; }; var generateCustomProperties = (tree, blockSelectors) => { const settings = getNodesWithSettings(tree, blockSelectors); let ruleset = ""; settings.forEach(({ presets, custom, selector }) => { const declarations = tree?.settings ? getPresetsDeclarations(presets, tree?.settings) : []; const customProps = flattenTree(custom, "--wp--custom--", "--"); if (customProps.length > 0) { declarations.push(...customProps); } if (declarations.length > 0) { ruleset += `${selector}{${declarations.join(";")};}`; } }); return ruleset; }; var transformToStyles = (tree, blockSelectors, hasBlockGapSupport, hasFallbackGapSupport, disableLayoutStyles = false, disableRootPadding = false, styleOptions = {}) => { const options = { blockGap: true, blockStyles: true, layoutStyles: true, marginReset: true, presets: true, rootPadding: true, variationStyles: false, ...styleOptions }; const nodesWithStyles = getNodesWithStyles(tree, blockSelectors); const nodesWithSettings = getNodesWithSettings(tree, blockSelectors); const useRootPaddingAlign = tree?.settings?.useRootPaddingAwareAlignments; const { contentSize, wideSize } = tree?.settings?.layout || {}; const hasBodyStyles = options.marginReset || options.rootPadding || options.layoutStyles; let ruleset = ""; if (options.presets && (contentSize || wideSize)) { ruleset += `${ROOT_CSS_PROPERTIES_SELECTOR} {`; ruleset = contentSize ? ruleset + ` --wp--style--global--content-size: ${contentSize};` : ruleset; ruleset = wideSize ? ruleset + ` --wp--style--global--wide-size: ${wideSize};` : ruleset; ruleset += "}"; } if (hasBodyStyles) { ruleset += ":where(body) {margin: 0;"; if (options.rootPadding && useRootPaddingAlign) { ruleset += `padding-right: 0; padding-left: 0; padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom) } .has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); } .has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); } .has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull)) { padding-right: 0; padding-left: 0; } .has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull)) > .alignfull { margin-left: 0; margin-right: 0; `; } ruleset += "}"; } if (options.blockStyles) { nodesWithStyles.forEach( ({ selector, duotoneSelector, styles, fallbackGapValue, hasLayoutSupport, featureSelectors, styleVariationSelectors, skipSelectorWrapper, name }) => { if (featureSelectors) { let featureDeclarations = getFeatureDeclarations( featureSelectors, styles ); featureDeclarations = updateParagraphTextIndentSelector( featureDeclarations, tree.settings, name ); Object.entries(featureDeclarations).forEach( ([cssSelector, declarations]) => { if (declarations.length) { const rules = declarations.join(";"); ruleset += `:root :where(${cssSelector}){${rules};}`; } } ); } if (duotoneSelector) { const duotoneStyles = {}; if (styles?.filter) { duotoneStyles.filter = styles.filter; delete styles.filter; } const duotoneDeclarations = getStylesDeclarations(duotoneStyles); if (duotoneDeclarations.length) { ruleset += `${duotoneSelector}{${duotoneDeclarations.join( ";" )};}`; } } if (!disableLayoutStyles && (ROOT_BLOCK_SELECTOR === selector || hasLayoutSupport)) { ruleset += getLayoutStyles({ style: styles, selector, hasBlockGapSupport, hasFallbackGapSupport, fallbackGapValue }); } const styleDeclarations = getStylesDeclarations( styles, selector, useRootPaddingAlign, tree, disableRootPadding ); if (styleDeclarations?.length) { const generalSelector = skipSelectorWrapper ? selector : `:root :where(${selector})`; ruleset += `${generalSelector}{${styleDeclarations.join( ";" )};}`; } if (styles?.css) { ruleset += processCSSNesting( styles.css, `:root :where(${selector})` ); } if (options.variationStyles && styleVariationSelectors) { Object.entries(styleVariationSelectors).forEach( ([styleVariationName, styleVariationSelector]) => { const styleVariations = styles?.variations?.[styleVariationName]; if (styleVariations) { if (featureSelectors) { let featureDeclarations = getFeatureDeclarations( featureSelectors, styleVariations ); featureDeclarations = updateParagraphTextIndentSelector( featureDeclarations, tree.settings, name ); Object.entries( featureDeclarations ).forEach( ([baseSelector, declarations]) => { if (declarations.length) { const cssSelector = concatFeatureVariationSelectorString( baseSelector, styleVariationSelector ); const rules = declarations.join(";"); ruleset += `:root :where(${cssSelector}){${rules};}`; } } ); } const styleVariationDeclarations = getStylesDeclarations( styleVariations, styleVariationSelector, useRootPaddingAlign, tree ); if (styleVariationDeclarations.length) { ruleset += `:root :where(${styleVariationSelector}){${styleVariationDeclarations.join( ";" )};}`; } if (styleVariations?.css) { ruleset += processCSSNesting( styleVariations.css, `:root :where(${styleVariationSelector})` ); } if (hasLayoutSupport && styleVariations?.spacing?.blockGap) { const variationSelectorWithBlock = styleVariationSelector + selector; ruleset += getLayoutStyles({ style: styleVariations, selector: variationSelectorWithBlock, hasBlockGapSupport: true, hasFallbackGapSupport, fallbackGapValue }); } } } ); } const pseudoSelectorStyles = Object.entries(styles).filter( ([key]) => key.startsWith(":") ); if (pseudoSelectorStyles?.length) { pseudoSelectorStyles.forEach( ([pseudoKey, pseudoStyle]) => { const pseudoDeclarations = getStylesDeclarations(pseudoStyle); if (!pseudoDeclarations?.length) { return; } const _selector = selector.split(",").map((sel) => sel + pseudoKey).join(","); const pseudoRule = `:root :where(${_selector}){${pseudoDeclarations.join( ";" )};}`; ruleset += pseudoRule; } ); } } ); } if (options.layoutStyles) { ruleset = ruleset + ".wp-site-blocks > .alignleft { float: left; margin-right: 2em; }"; ruleset = ruleset + ".wp-site-blocks > .alignright { float: right; margin-left: 2em; }"; ruleset = ruleset + ".wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }"; } if (options.blockGap && hasBlockGapSupport) { const gapValue = getGapCSSValue(tree?.styles?.spacing?.blockGap) || "0.5em"; ruleset = ruleset + `:root :where(.wp-site-blocks) > * { margin-block-start: ${gapValue}; margin-block-end: 0; }`; ruleset = ruleset + ":root :where(.wp-site-blocks) > :first-child { margin-block-start: 0; }"; ruleset = ruleset + ":root :where(.wp-site-blocks) > :last-child { margin-block-end: 0; }"; } if (options.presets) { nodesWithSettings.forEach(({ selector, presets }) => { if (ROOT_BLOCK_SELECTOR === selector || ROOT_CSS_PROPERTIES_SELECTOR === selector) { selector = ""; } const classes = getPresetsClasses(selector, presets); if (classes.length > 0) { ruleset += classes; } }); } return ruleset; }; function generateSvgFilters(tree, blockSelectors) { const nodesWithSettings = getNodesWithSettings(tree, blockSelectors); return nodesWithSettings.flatMap(({ presets }) => { return getPresetsSvgFilters(presets); }); } var getSelectorsConfig = (blockType, rootSelector) => { if (blockType?.selectors && Object.keys(blockType.selectors).length > 0) { return blockType.selectors; } const config = { root: rootSelector }; Object.entries(BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS).forEach( ([featureKey, featureName]) => { const featureSelector = getBlockSelector(blockType, featureKey); if (featureSelector) { config[featureName] = featureSelector; } } ); return config; }; var getBlockSelectors = (blockTypes, variationInstanceId) => { const { getBlockStyles } = (0, import_data2.select)(import_blocks.store); const result = {}; blockTypes.forEach((blockType) => { const name = blockType.name; const selector = getBlockSelector(blockType); if (!selector) { return; } let duotoneSelector = getBlockSelector(blockType, "filter.duotone"); if (!duotoneSelector) { const rootSelector = getBlockSelector(blockType); const duotoneSupport = (0, import_blocks.getBlockSupport)( blockType, "color.__experimentalDuotone", false ); duotoneSelector = duotoneSupport && rootSelector && scopeSelector(rootSelector, duotoneSupport); } const hasLayoutSupport = !!blockType?.supports?.layout || !!blockType?.supports?.__experimentalLayout; const fallbackGapValue = ( // @ts-expect-error blockType?.supports?.spacing?.blockGap?.__experimentalDefault ); const blockStyleVariations = getBlockStyles(name); const styleVariationSelectors = {}; blockStyleVariations?.forEach((variation) => { const variationSuffix = variationInstanceId ? `-${variationInstanceId}` : ""; const variationName = `${variation.name}${variationSuffix}`; const styleVariationSelector = getBlockStyleVariationSelector( variationName, selector ); styleVariationSelectors[variationName] = styleVariationSelector; }); const featureSelectors = getSelectorsConfig(blockType, selector); result[name] = { duotoneSelector: duotoneSelector ?? void 0, fallbackGapValue, featureSelectors: Object.keys(featureSelectors).length ? featureSelectors : void 0, hasLayoutSupport, name, selector, styleVariationSelectors: blockStyleVariations?.length ? styleVariationSelectors : void 0 }; }); return result; }; function updateConfigWithSeparator(config) { const blocks = config.styles?.blocks; const separatorBlock = blocks?.["core/separator"]; const needsSeparatorStyleUpdate = separatorBlock && separatorBlock.color?.background && !separatorBlock.color?.text && !separatorBlock.border?.color; if (needsSeparatorStyleUpdate) { return { ...config, styles: { ...config.styles, blocks: { ...blocks, "core/separator": { ...separatorBlock, color: { ...separatorBlock.color, text: separatorBlock.color?.background } } } } }; } return config; } function processCSSNesting(css, blockSelector) { let processedCSS = ""; if (!css || css.trim() === "") { return processedCSS; } const parts = css.split("&"); parts.forEach((part) => { if (!part || part.trim() === "") { return; } const isRootCss = !part.includes("{"); if (isRootCss) { processedCSS += `:root :where(${blockSelector}){${part.trim()}}`; } else { const splitPart = part.replace("}", "").split("{"); if (splitPart.length !== 2) { return; } const [nestedSelector, cssValue] = splitPart; const matches = nestedSelector.match(/([>+~\s]*::[a-zA-Z-]+)/); const pseudoPart = matches ? matches[1] : ""; const withoutPseudoElement = matches ? nestedSelector.replace(pseudoPart, "").trim() : nestedSelector.trim(); let combinedSelector; if (withoutPseudoElement === "") { combinedSelector = blockSelector; } else { combinedSelector = nestedSelector.startsWith(" ") ? scopeSelector(blockSelector, withoutPseudoElement) : appendToSelector(blockSelector, withoutPseudoElement); } processedCSS += `:root :where(${combinedSelector})${pseudoPart}{${cssValue.trim()}}`; } }); return processedCSS; } function generateGlobalStyles(config = {}, blockTypes = [], options = {}) { const { hasBlockGapSupport: hasBlockGapSupportOption, hasFallbackGapSupport: hasFallbackGapSupportOption, disableLayoutStyles = false, disableRootPadding = false, styleOptions = {} } = options; const blocks = blockTypes.length > 0 ? blockTypes : (0, import_blocks.getBlockTypes)(); const blockGap = getSetting(config, "spacing.blockGap"); const hasBlockGapSupport = hasBlockGapSupportOption ?? blockGap !== null; const hasFallbackGapSupport = hasFallbackGapSupportOption ?? !hasBlockGapSupport; if (!config?.styles || !config?.settings) { return [[], {}]; } const updatedConfig = updateConfigWithSeparator(config); const blockSelectors = getBlockSelectors(blocks); const customProperties = generateCustomProperties( updatedConfig, blockSelectors ); const globalStyles = transformToStyles( updatedConfig, blockSelectors, hasBlockGapSupport, hasFallbackGapSupport, disableLayoutStyles, disableRootPadding, styleOptions ); const svgs = generateSvgFilters(updatedConfig, blockSelectors); const styles = [ { css: customProperties, isGlobalStyles: true }, { css: globalStyles, isGlobalStyles: true }, // Load custom CSS in own stylesheet so that any invalid CSS entered in the input won't break all the global styles in the editor. { css: updatedConfig?.styles?.css ?? "", isGlobalStyles: true }, { assets: svgs, __unstableType: "svg", isGlobalStyles: true } ]; blocks.forEach((blockType) => { const blockStyles = updatedConfig?.styles?.blocks?.[blockType.name]; if (blockStyles?.css) { const selector = blockSelectors[blockType.name].selector; styles.push({ css: processCSSNesting(blockStyles.css, selector), isGlobalStyles: true }); } }); return [styles, updatedConfig.settings]; } // packages/lazy-editor/build-module/hooks/use-editor-settings.mjs var import_core_data3 = __toESM(require_core_data(), 1); var import_element2 = __toESM(require_element(), 1); var import_data4 = __toESM(require_data(), 1); // packages/lazy-editor/build-module/hooks/use-global-styles.mjs var import_core_data2 = __toESM(require_core_data(), 1); var import_data3 = __toESM(require_data(), 1); var import_element = __toESM(require_element(), 1); function useUserGlobalStyles(id) { const { userGlobalStyles } = (0, import_data3.useSelect)( (select2) => { const { getEntityRecord, getEditedEntityRecord, canUser } = select2(import_core_data2.store); const userCanEditGlobalStyles = canUser("update", { kind: "root", name: "globalStyles", id }); let record; if ( /* * Test that the OPTIONS request for user capabilities is complete * before fetching the global styles entity record. * This is to avoid fetching the global styles entity unnecessarily. */ typeof userCanEditGlobalStyles === "boolean" ) { if (userCanEditGlobalStyles) { record = getEditedEntityRecord( "root", "globalStyles", id ); } else { record = getEntityRecord("root", "globalStyles", id, { context: "view" }); } } return { userGlobalStyles: record }; }, [id] ); return (0, import_element.useMemo)(() => { if (!userGlobalStyles) { return { user: void 0 }; } const user = userGlobalStyles; return { user }; }, [userGlobalStyles]); } // packages/lazy-editor/build-module/lock-unlock.mjs var import_private_apis = __toESM(require_private_apis(), 1); var { unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)( "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.", "@wordpress/lazy-editor" ); // packages/lazy-editor/build-module/hooks/use-editor-settings.mjs function useEditorSettings({ stylesId }) { const { editorSettings } = (0, import_data4.useSelect)( (select2) => ({ editorSettings: unlock( select2(import_core_data3.store) ).getEditorSettings() }), [] ); const { user: globalStyles } = useUserGlobalStyles(stylesId); const [globalStylesCSS] = generateGlobalStyles(globalStyles); const hasEditorSettings = !!editorSettings; const styles = (0, import_element2.useMemo)(() => { if (!hasEditorSettings) { return []; } return [ ...editorSettings?.styles ?? [], ...globalStylesCSS ]; }, [hasEditorSettings, editorSettings?.styles, globalStylesCSS]); return { isReady: hasEditorSettings, editorSettings: (0, import_element2.useMemo)( () => ({ ...editorSettings ?? {}, styles }), [editorSettings, styles] ) }; } // packages/asset-loader/build-module/index.mjs function injectImportMap(scriptModules) { if (!scriptModules || Object.keys(scriptModules).length === 0) { return; } const existingMapElement = document.querySelector( "script#wp-importmap[type=importmap]" ); if (existingMapElement) { try { const existingMap = JSON.parse(existingMapElement.text); if (!existingMap.imports) { existingMap.imports = {}; } existingMap.imports = { ...existingMap.imports, ...scriptModules }; existingMapElement.text = JSON.stringify(existingMap, null, 2); } catch (error) { console.error("Failed to parse or update import map:", error); } } else { const script = document.createElement("script"); script.type = "importmap"; script.id = "wp-importmap"; script.text = JSON.stringify( { imports: scriptModules }, null, 2 ); document.head.appendChild(script); } } function loadStylesheet(handle, styleData) { return new Promise((resolve) => { if (!styleData.src) { resolve(); return; } const existingLink = document.getElementById(handle + "-css"); if (existingLink) { resolve(); return; } const link = document.createElement("link"); link.rel = "stylesheet"; link.href = styleData.src + (styleData.version ? "?ver=" + styleData.version : ""); link.id = handle + "-css"; link.media = styleData.media || "all"; link.onload = () => resolve(); link.onerror = () => { console.error(`Failed to load stylesheet: ${handle}`); resolve(); }; document.head.appendChild(link); }); } function loadScript(handle, scriptData) { if (!scriptData.src) { const marker = document.createElement("script"); marker.id = handle + "-js"; marker.textContent = "// Processed: " + handle; return marker; } const script = document.createElement("script"); script.src = scriptData.src + (scriptData.version ? "?ver=" + scriptData.version : ""); script.id = handle + "-js"; script.async = false; return script; } function injectInlineStyle(handle, inlineStyle, position) { let styleContent = ""; if (Array.isArray(inlineStyle)) { styleContent = inlineStyle.join("\n"); } else if (typeof inlineStyle === "string") { styleContent = inlineStyle; } if (styleContent && styleContent.trim()) { const styleId = handle + "-" + position + "-inline-css"; if (!document.getElementById(styleId)) { const style = document.createElement("style"); style.id = styleId; style.textContent = styleContent.trim(); document.head.appendChild(style); } } } function injectInlineScript(handle, inlineScript, position) { let scriptContent = inlineScript; if (Array.isArray(scriptContent)) { scriptContent = scriptContent.join("\n"); } const script = document.createElement("script"); script.id = handle + "-" + position + "-js"; script.textContent = scriptContent.trim(); return script; } function buildDependencyOrderedList(assetsData) { const visited = /* @__PURE__ */ new Set(); const visiting = /* @__PURE__ */ new Set(); const orderedList = []; function visit(handle) { if (visited.has(handle)) { return; } if (visiting.has(handle)) { console.warn( `Circular dependency detected for handle: ${handle}` ); return; } visiting.add(handle); if (assetsData[handle]) { const deps = assetsData[handle].deps || []; deps.forEach((dep) => { if (assetsData[dep]) { visit(dep); } }); } visiting.delete(handle); visited.add(handle); if (assetsData[handle]) { orderedList.push(handle); } } Object.keys(assetsData).forEach((handle) => { visit(handle); }); return orderedList; } async function performScriptLoad(scriptElements, destination) { let parallel = []; for (const scriptElement of scriptElements) { if (scriptElement.src) { const loader = Promise.withResolvers(); scriptElement.onload = () => loader.resolve(); scriptElement.onerror = () => { console.error(`Failed to load script: ${scriptElement.id}`); loader.resolve(); }; parallel.push(loader.promise); } else { await Promise.all(parallel); parallel = []; } destination.appendChild(scriptElement); } await Promise.all(parallel); parallel = []; } async function loadAssets(scriptsData, inlineScripts, stylesData, inlineStyles, htmlTemplates, scriptModules) { if (scriptModules) { injectImportMap(scriptModules); } const orderedStyles = buildDependencyOrderedList(stylesData); const orderedScripts = buildDependencyOrderedList(scriptsData); const stylePromises = []; for (const handle of orderedStyles) { const beforeInline = inlineStyles.before?.[handle]; if (beforeInline) { injectInlineStyle(handle, beforeInline, "before"); } stylePromises.push(loadStylesheet(handle, stylesData[handle])); const afterInline = inlineStyles.after?.[handle]; if (afterInline) { injectInlineStyle(handle, afterInline, "after"); } } const scriptElements = []; for (const handle of orderedScripts) { const beforeInline = inlineScripts.before?.[handle]; if (beforeInline) { scriptElements.push( injectInlineScript(handle, beforeInline, "before") ); } scriptElements.push(loadScript(handle, scriptsData[handle])); const afterInline = inlineScripts.after?.[handle]; if (afterInline) { scriptElements.push( injectInlineScript(handle, afterInline, "after") ); } } const scriptsPromise = performScriptLoad(scriptElements, document.body); await Promise.all([Promise.all(stylePromises), scriptsPromise]); if (htmlTemplates && htmlTemplates.length > 0) { htmlTemplates.forEach((templateHtml) => { const scriptMatch = templateHtml.match( /<script([^>]*)>(.*?)<\/script>/is ); if (scriptMatch) { const attributes = scriptMatch[1]; const content = scriptMatch[2]; const script = document.createElement("script"); const idMatch = attributes.match(/id=["']([^"']+)["']/); if (idMatch) { script.id = idMatch[1]; } const typeMatch = attributes.match(/type=["']([^"']+)["']/); if (typeMatch) { script.type = typeMatch[1]; } script.textContent = content; document.body.appendChild(script); } }); } } var index_default = loadAssets; // packages/lazy-editor/build-module/hooks/use-editor-assets.mjs var import_core_data4 = __toESM(require_core_data(), 1); var import_element3 = __toESM(require_element(), 1); var import_data5 = __toESM(require_data(), 1); var loadAssetsPromise; async function loadEditorAssets() { const load = async () => { const editorAssets = await unlock( (0, import_data5.resolveSelect)(import_core_data4.store) ).getEditorAssets(); await index_default( editorAssets.scripts || {}, editorAssets.inline_scripts || { before: {}, after: {} }, editorAssets.styles || {}, editorAssets.inline_styles || { before: {}, after: {} }, editorAssets.html_templates || [], editorAssets.script_modules || {} ); }; if (!loadAssetsPromise) { loadAssetsPromise = load(); } return loadAssetsPromise; } function useEditorAssets() { const editorAssets = (0, import_data5.useSelect)((select2) => { return unlock(select2(import_core_data4.store)).getEditorAssets(); }, []); const [assetsLoaded, setAssetsLoaded] = (0, import_element3.useState)(false); (0, import_element3.useEffect)(() => { if (editorAssets && !assetsLoaded) { loadEditorAssets().then(() => { setAssetsLoaded(true); }).catch((error) => { console.error("Failed to load editor assets:", error); }); } }, [editorAssets, assetsLoaded]); return { isReady: !!editorAssets && assetsLoaded, assetsLoaded }; } // packages/lazy-editor/build-module/components/editor/index.mjs var import_jsx_runtime = __toESM(require_jsx_runtime(), 1); var { Editor: PrivateEditor, BackButton } = unlock(import_editor.privateApis); function Editor({ postType, postId, settings, backButton }) { const homePage = (0, import_data6.useSelect)( (select2) => { if (postType || postId) { return null; } const { getHomePage } = unlock(select2(import_core_data5.store)); return getHomePage(); }, [postType, postId] ); const resolvedPostType = postType || homePage?.postType; const resolvedPostId = postId || homePage?.postId; const templateId = (0, import_data6.useSelect)( (select2) => { if (!resolvedPostType || !resolvedPostId) { return void 0; } if (resolvedPostType === "wp_template") { return resolvedPostId; } return unlock(select2(import_core_data5.store)).getTemplateId( resolvedPostType, resolvedPostId ); }, [resolvedPostType, resolvedPostId] ); const stylesId = useStylesId({ templateId }); const { isReady: settingsReady, editorSettings } = useEditorSettings({ stylesId }); const { isReady: assetsReady } = useEditorAssets(); const finalSettings = (0, import_element4.useMemo)( () => ({ ...editorSettings, ...settings }), [editorSettings, settings] ); if (!settingsReady || !assetsReady) { return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "div", { style: { display: "flex", justifyContent: "center", alignItems: "center", height: "100vh" }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Spinner, {}) } ); } return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( PrivateEditor, { postType: resolvedPostType, postId: resolvedPostId, templateId, settings: finalSettings, styles: finalSettings.styles, children: backButton && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(BackButton, { children: backButton }) } ); } // packages/lazy-editor/build-module/components/preview/index.mjs var import_i18n = __toESM(require_i18n(), 1); var import_element5 = __toESM(require_element(), 1); var import_block_editor = __toESM(require_block_editor(), 1); var import_editor2 = __toESM(require_editor(), 1); var import_blocks2 = __toESM(require_blocks(), 1); var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1); if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='5619aa31a1']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "5619aa31a1"); style.appendChild(document.createTextNode(".lazy-editor-block-preview__container{align-items:center;border-radius:4px;display:flex;flex-direction:column;height:100%;justify-content:center}.dataviews-view-grid .lazy-editor-block-preview__container .block-editor-block-preview__container{height:100%}.dataviews-view-table .lazy-editor-block-preview__container{text-wrap:balance;text-wrap:pretty;flex-grow:0;width:96px}")); document.head.appendChild(style); } var { useStyle } = unlock(import_editor2.privateApis); function PreviewContent({ blocks, content, description }) { const descriptionId = (0, import_element5.useId)(); const backgroundColor = useStyle("color.background"); const actualBlocks = (0, import_element5.useMemo)(() => { return blocks ?? (0, import_blocks2.parse)(content, { __unstableSkipMigrationLogs: true }); }, [content, blocks]); const isEmpty = !actualBlocks?.length; return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)( "div", { className: "lazy-editor-block-preview__container", style: { backgroundColor }, "aria-describedby": !!description ? descriptionId : void 0, children: [ isEmpty && (0, import_i18n.__)("Empty."), !isEmpty && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_block_editor.BlockPreview.Async, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_block_editor.BlockPreview, { blocks: actualBlocks }) }), !!description && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { hidden: true, id: descriptionId, children: description }) ] } ); } function Preview({ blocks, content, description }) { const stylesId = useStylesId(); const { isReady: settingsReady, editorSettings } = useEditorSettings({ stylesId }); const { isReady: assetsReady } = useEditorAssets(); const finalSettings = (0, import_element5.useMemo)( () => ({ ...editorSettings, isPreviewMode: true }), [editorSettings] ); if (!settingsReady || !assetsReady) { return null; } return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_block_editor.BlockEditorProvider, { settings: finalSettings, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)( PreviewContent, { blocks, content, description } ) }); } export { Editor, Preview, loadEditorAssets, useEditorAssets }; lazy-editor/index.min.asset.php 0000644 00000000376 15206736335 0012547 0 ustar 00 <?php return array('dependencies' => array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-editor', 'wp-element', 'wp-i18n', 'wp-private-apis', 'wp-style-engine'), 'version' => '30ab62f45bfe9f971ea0'); abilities/index.min.js 0000644 00000422713 15206736336 0010764 0 ustar 00 var Xo=Object.create;var Or=Object.defineProperty;var Qo=Object.getOwnPropertyDescriptor;var eu=Object.getOwnPropertyNames;var tu=Object.getPrototypeOf,ru=Object.prototype.hasOwnProperty;var y=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Jn=(e,t)=>{for(var r in t)Or(e,r,{get:t[r],enumerable:!0})},su=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of eu(t))!ru.call(e,n)&&n!==r&&Or(e,n,{get:()=>t[n],enumerable:!(s=Qo(t,n))||s.enumerable});return e};var we=(e,t,r)=>(r=e!=null?Xo(tu(e)):{},su(t||!e||!e.__esModule?Or(r,"default",{value:e,enumerable:!0}):r,e));var ot=y((Yp,Wn)=>{Wn.exports=window.wp.data});var kr=y((Bp,Zn)=>{Zn.exports=window.wp.i18n});var dt=y(k=>{"use strict";Object.defineProperty(k,"__esModule",{value:!0});k.regexpCode=k.getEsmExportName=k.getProperty=k.safeStringify=k.stringify=k.strConcat=k.addCodeArg=k.str=k._=k.nil=k._Code=k.Name=k.IDENTIFIER=k._CodeOrName=void 0;var ut=class{};k._CodeOrName=ut;k.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var qe=class extends ut{constructor(t){if(super(),!k.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};k.Name=qe;var W=class extends ut{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((r,s)=>`${r}${s}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,s)=>(s instanceof qe&&(r[s.str]=(r[s.str]||0)+1),r),{})}};k._Code=W;k.nil=new W("");function sa(e,...t){let r=[e[0]],s=0;for(;s<t.length;)Mr(r,t[s]),r.push(e[++s]);return new W(r)}k._=sa;var Cr=new W("+");function na(e,...t){let r=[ct(e[0])],s=0;for(;s<t.length;)r.push(Cr),Mr(r,t[s]),r.push(Cr,ct(e[++s]));return vu(r),new W(r)}k.str=na;function Mr(e,t){t instanceof W?e.push(...t._items):t instanceof qe?e.push(t):e.push(Eu(t))}k.addCodeArg=Mr;function vu(e){let t=1;for(;t<e.length-1;){if(e[t]===Cr){let r=wu(e[t-1],e[t+1]);if(r!==void 0){e.splice(t-1,3,r);continue}e[t++]="+"}t++}}function wu(e,t){if(t==='""')return e;if(e==='""')return t;if(typeof e=="string")return t instanceof qe||e[e.length-1]!=='"'?void 0:typeof t!="string"?`${e.slice(0,-1)}${t}"`:t[0]==='"'?e.slice(0,-1)+t.slice(1):void 0;if(typeof t=="string"&&t[0]==='"'&&!(e instanceof qe))return`"${e}${t.slice(1)}`}function bu(e,t){return t.emptyStr()?e:e.emptyStr()?t:na`${e}${t}`}k.strConcat=bu;function Eu(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:ct(Array.isArray(e)?e.join(","):e)}function Su(e){return new W(ct(e))}k.stringify=Su;function ct(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}k.safeStringify=ct;function Pu(e){return typeof e=="string"&&k.IDENTIFIER.test(e)?new W(`.${e}`):sa`[${e}]`}k.getProperty=Pu;function Tu(e){if(typeof e=="string"&&k.IDENTIFIER.test(e))return new W(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}k.getEsmExportName=Tu;function Iu(e){return new W(e.toString())}k.regexpCode=Iu});var Vr=y(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.ValueScope=Y.ValueScopeName=Y.Scope=Y.varKinds=Y.UsedValueState=void 0;var H=dt(),Dr=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},Ut;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(Ut||(Y.UsedValueState=Ut={}));Y.varKinds={const:new H.Name("const"),let:new H.Name("let"),var:new H.Name("var")};var Ft=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof H.Name?t:this.name(t)}name(t){return new H.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,s;if(!((s=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||s===void 0)&&s.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};Y.Scope=Ft;var Kt=class extends H.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:s}){this.value=t,this.scopePath=(0,H._)`.${new H.Name(r)}[${s}]`}};Y.ValueScopeName=Kt;var Nu=(0,H._)`\n`,zr=class extends Ft{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?Nu:H.nil}}get(){return this._scope}name(t){return new Kt(t,this._newName(t))}value(t,r){var s;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let n=this.toName(t),{prefix:a}=n,i=(s=r.key)!==null&&s!==void 0?s:r.ref,o=this._values[a];if(o){let c=o.get(i);if(c)return c}else o=this._values[a]=new Map;o.set(i,n);let u=this._scope[a]||(this._scope[a]=[]),d=u.length;return u[d]=r.ref,n.setValue(r,{property:a,itemIndex:d}),n}getValue(t,r){let s=this._values[t];if(s)return s.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,s=>{if(s.scopePath===void 0)throw new Error(`CodeGen: name "${s}" has no value`);return(0,H._)`${t}${s.scopePath}`})}scopeCode(t=this._values,r,s){return this._reduceValues(t,n=>{if(n.value===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return n.value.code},r,s)}_reduceValues(t,r,s={},n){let a=H.nil;for(let i in t){let o=t[i];if(!o)continue;let u=s[i]=s[i]||new Map;o.forEach(d=>{if(u.has(d))return;u.set(d,Ut.Started);let c=r(d);if(c){let l=this.opts.es5?Y.varKinds.var:Y.varKinds.const;a=(0,H._)`${a}${l} ${d} = ${c};${this.opts._n}`}else if(c=n?.(d))a=(0,H._)`${a}${c}${this.opts._n}`;else throw new Dr(d);u.set(d,Ut.Completed)})}return a}};Y.ValueScope=zr});var b=y(S=>{"use strict";Object.defineProperty(S,"__esModule",{value:!0});S.or=S.and=S.not=S.CodeGen=S.operators=S.varKinds=S.ValueScopeName=S.ValueScope=S.Scope=S.Name=S.regexpCode=S.stringify=S.getProperty=S.nil=S.strConcat=S.str=S._=void 0;var I=dt(),te=Vr(),be=dt();Object.defineProperty(S,"_",{enumerable:!0,get:function(){return be._}});Object.defineProperty(S,"str",{enumerable:!0,get:function(){return be.str}});Object.defineProperty(S,"strConcat",{enumerable:!0,get:function(){return be.strConcat}});Object.defineProperty(S,"nil",{enumerable:!0,get:function(){return be.nil}});Object.defineProperty(S,"getProperty",{enumerable:!0,get:function(){return be.getProperty}});Object.defineProperty(S,"stringify",{enumerable:!0,get:function(){return be.stringify}});Object.defineProperty(S,"regexpCode",{enumerable:!0,get:function(){return be.regexpCode}});Object.defineProperty(S,"Name",{enumerable:!0,get:function(){return be.Name}});var Bt=Vr();Object.defineProperty(S,"Scope",{enumerable:!0,get:function(){return Bt.Scope}});Object.defineProperty(S,"ValueScope",{enumerable:!0,get:function(){return Bt.ValueScope}});Object.defineProperty(S,"ValueScopeName",{enumerable:!0,get:function(){return Bt.ValueScopeName}});Object.defineProperty(S,"varKinds",{enumerable:!0,get:function(){return Bt.varKinds}});S.operators={GT:new I._Code(">"),GTE:new I._Code(">="),LT:new I._Code("<"),LTE:new I._Code("<="),EQ:new I._Code("==="),NEQ:new I._Code("!=="),NOT:new I._Code("!"),OR:new I._Code("||"),AND:new I._Code("&&"),ADD:new I._Code("+")};var ye=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},xr=class extends ye{constructor(t,r,s){super(),this.varKind=t,this.name=r,this.rhs=s}render({es5:t,_n:r}){let s=t?te.varKinds.var:this.varKind,n=this.rhs===void 0?"":` = ${this.rhs}`;return`${s} ${this.name}${n};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=Ue(this.rhs,t,r)),this}get names(){return this.rhs instanceof I._CodeOrName?this.rhs.names:{}}},Gt=class extends ye{constructor(t,r,s){super(),this.lhs=t,this.rhs=r,this.sideEffects=s}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof I.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=Ue(this.rhs,t,r),this}get names(){let t=this.lhs instanceof I.Name?{}:{...this.lhs.names};return Yt(t,this.rhs)}},Lr=class extends Gt{constructor(t,r,s,n){super(t,s,n),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},Ur=class extends ye{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},Fr=class extends ye{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},Kr=class extends ye{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},Gr=class extends ye{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=Ue(this.code,t,r),this}get names(){return this.code instanceof I._CodeOrName?this.code.names:{}}},lt=class extends ye{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,s)=>r+s.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let s=t[r].optimizeNodes();Array.isArray(s)?t.splice(r,1,...s):s?t[r]=s:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:s}=this,n=s.length;for(;n--;){let a=s[n];a.optimizeNames(t,r)||(Ou(t,a.names),s.splice(n,1))}return s.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>Ae(t,r.names),{})}},_e=class extends lt{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},Hr=class extends lt{},Le=class extends _e{};Le.kind="else";var Re=class e extends _e{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let s=r.optimizeNodes();r=this.else=Array.isArray(s)?new Le(s):s}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(aa(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var s;if(this.else=(s=this.else)===null||s===void 0?void 0:s.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=Ue(this.condition,t,r),this}get names(){let t=super.names;return Yt(t,this.condition),this.else&&Ae(t,this.else.names),t}};Re.kind="if";var je=class extends _e{};je.kind="for";var Yr=class extends je{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=Ue(this.iteration,t,r),this}get names(){return Ae(super.names,this.iteration.names)}},Br=class extends je{constructor(t,r,s,n){super(),this.varKind=t,this.name=r,this.from=s,this.to=n}render(t){let r=t.es5?te.varKinds.var:this.varKind,{name:s,from:n,to:a}=this;return`for(${r} ${s}=${n}; ${s}<${a}; ${s}++)`+super.render(t)}get names(){let t=Yt(super.names,this.from);return Yt(t,this.to)}},Ht=class extends je{constructor(t,r,s,n){super(),this.loop=t,this.varKind=r,this.name=s,this.iterable=n}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=Ue(this.iterable,t,r),this}get names(){return Ae(super.names,this.iterable.names)}},ft=class extends _e{constructor(t,r,s){super(),this.name=t,this.args=r,this.async=s}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};ft.kind="func";var mt=class extends lt{render(t){return"return "+super.render(t)}};mt.kind="return";var Jr=class extends _e{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var s,n;return super.optimizeNames(t,r),(s=this.catch)===null||s===void 0||s.optimizeNames(t,r),(n=this.finally)===null||n===void 0||n.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&Ae(t,this.catch.names),this.finally&&Ae(t,this.finally.names),t}},pt=class extends _e{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};pt.kind="catch";var ht=class extends _e{render(t){return"finally"+super.render(t)}};ht.kind="finally";var Wr=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` `:""},this._extScope=t,this._scope=new te.Scope({parent:t}),this._nodes=[new Hr]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let s=this._extScope.value(t,r);return(this._values[s.prefix]||(this._values[s.prefix]=new Set)).add(s),s}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,s,n){let a=this._scope.toName(r);return s!==void 0&&n&&(this._constants[a.str]=s),this._leafNode(new xr(t,a,s)),a}const(t,r,s){return this._def(te.varKinds.const,t,r,s)}let(t,r,s){return this._def(te.varKinds.let,t,r,s)}var(t,r,s){return this._def(te.varKinds.var,t,r,s)}assign(t,r,s){return this._leafNode(new Gt(t,r,s))}add(t,r){return this._leafNode(new Lr(t,S.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==I.nil&&this._leafNode(new Gr(t)),this}object(...t){let r=["{"];for(let[s,n]of t)r.length>1&&r.push(","),r.push(s),(s!==n||this.opts.es5)&&(r.push(":"),(0,I.addCodeArg)(r,n));return r.push("}"),new I._Code(r)}if(t,r,s){if(this._blockNode(new Re(t)),r&&s)this.code(r).else().code(s).endIf();else if(r)this.code(r).endIf();else if(s)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new Re(t))}else(){return this._elseNode(new Le)}endIf(){return this._endBlockNode(Re,Le)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new Yr(t),r)}forRange(t,r,s,n,a=this.opts.es5?te.varKinds.var:te.varKinds.let){let i=this._scope.toName(t);return this._for(new Br(a,i,r,s),()=>n(i))}forOf(t,r,s,n=te.varKinds.const){let a=this._scope.toName(t);if(this.opts.es5){let i=r instanceof I.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,I._)`${i}.length`,o=>{this.var(a,(0,I._)`${i}[${o}]`),s(a)})}return this._for(new Ht("of",n,a,r),()=>s(a))}forIn(t,r,s,n=this.opts.es5?te.varKinds.var:te.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,I._)`Object.keys(${r})`,s);let a=this._scope.toName(t);return this._for(new Ht("in",n,a,r),()=>s(a))}endFor(){return this._endBlockNode(je)}label(t){return this._leafNode(new Ur(t))}break(t){return this._leafNode(new Fr(t))}return(t){let r=new mt;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(mt)}try(t,r,s){if(!r&&!s)throw new Error('CodeGen: "try" without "catch" and "finally"');let n=new Jr;if(this._blockNode(n),this.code(t),r){let a=this.name("e");this._currNode=n.catch=new pt(a),r(a)}return s&&(this._currNode=n.finally=new ht,this.code(s)),this._endBlockNode(pt,ht)}throw(t){return this._leafNode(new Kr(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let s=this._nodes.length-r;if(s<0||t!==void 0&&s!==t)throw new Error(`CodeGen: wrong number of nodes: ${s} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=I.nil,s,n){return this._blockNode(new ft(t,r,s)),n&&this.code(n).endFunc(),this}endFunc(){return this._endBlockNode(ft)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,r){let s=this._currNode;if(s instanceof t||r&&s instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof Re))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};S.CodeGen=Wr;function Ae(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function Yt(e,t){return t instanceof I._CodeOrName?Ae(e,t.names):e}function Ue(e,t,r){if(e instanceof I.Name)return s(e);if(!n(e))return e;return new I._Code(e._items.reduce((a,i)=>(i instanceof I.Name&&(i=s(i)),i instanceof I._Code?a.push(...i._items):a.push(i),a),[]));function s(a){let i=r[a.str];return i===void 0||t[a.str]!==1?a:(delete t[a.str],i)}function n(a){return a instanceof I._Code&&a._items.some(i=>i instanceof I.Name&&t[i.str]===1&&r[i.str]!==void 0)}}function Ou(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function aa(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,I._)`!${Zr(e)}`}S.not=aa;var ku=ia(S.operators.AND);function qu(...e){return e.reduce(ku)}S.and=qu;var Ru=ia(S.operators.OR);function ju(...e){return e.reduce(Ru)}S.or=ju;function ia(e){return(t,r)=>t===I.nil?r:r===I.nil?t:(0,I._)`${Zr(t)} ${e} ${Zr(r)}`}function Zr(e){return e instanceof I.Name?e:(0,I._)`(${e})`}});var q=y(P=>{"use strict";Object.defineProperty(P,"__esModule",{value:!0});P.checkStrictMode=P.getErrorPath=P.Type=P.useFunc=P.setEvaluated=P.evaluatedPropsToName=P.mergeEvaluated=P.eachItem=P.unescapeJsonPointer=P.escapeJsonPointer=P.escapeFragment=P.unescapeFragment=P.schemaRefOrVal=P.schemaHasRulesButRef=P.schemaHasRules=P.checkUnknownRules=P.alwaysValidSchema=P.toHash=void 0;var j=b(),Au=dt();function Cu(e){let t={};for(let r of e)t[r]=!0;return t}P.toHash=Cu;function Mu(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(ca(e,t),!da(t,e.self.RULES.all))}P.alwaysValidSchema=Mu;function ca(e,t=e.schema){let{opts:r,self:s}=e;if(!r.strictSchema||typeof t=="boolean")return;let n=s.RULES.keywords;for(let a in t)n[a]||ma(e,`unknown keyword: "${a}"`)}P.checkUnknownRules=ca;function da(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}P.schemaHasRules=da;function Du(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}P.schemaHasRulesButRef=Du;function zu({topSchemaRef:e,schemaPath:t},r,s,n){if(!n){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,j._)`${r}`}return(0,j._)`${e}${t}${(0,j.getProperty)(s)}`}P.schemaRefOrVal=zu;function Vu(e){return la(decodeURIComponent(e))}P.unescapeFragment=Vu;function xu(e){return encodeURIComponent(Qr(e))}P.escapeFragment=xu;function Qr(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}P.escapeJsonPointer=Qr;function la(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}P.unescapeJsonPointer=la;function Lu(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}P.eachItem=Lu;function oa({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:s}){return(n,a,i,o)=>{let u=i===void 0?a:i instanceof j.Name?(a instanceof j.Name?e(n,a,i):t(n,a,i),i):a instanceof j.Name?(t(n,i,a),a):r(a,i);return o===j.Name&&!(u instanceof j.Name)?s(n,u):u}}P.mergeEvaluated={props:oa({mergeNames:(e,t,r)=>e.if((0,j._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,j._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,j._)`${r} || {}`).code((0,j._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,j._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,j._)`${r} || {}`),es(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:fa}),items:oa({mergeNames:(e,t,r)=>e.if((0,j._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,j._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,j._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,j._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function fa(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,j._)`{}`);return t!==void 0&&es(e,r,t),r}P.evaluatedPropsToName=fa;function es(e,t,r){Object.keys(r).forEach(s=>e.assign((0,j._)`${t}${(0,j.getProperty)(s)}`,!0))}P.setEvaluated=es;var ua={};function Uu(e,t){return e.scopeValue("func",{ref:t,code:ua[t.code]||(ua[t.code]=new Au._Code(t.code))})}P.useFunc=Uu;var Xr;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(Xr||(P.Type=Xr={}));function Fu(e,t,r){if(e instanceof j.Name){let s=t===Xr.Num;return r?s?(0,j._)`"[" + ${e} + "]"`:(0,j._)`"['" + ${e} + "']"`:s?(0,j._)`"/" + ${e}`:(0,j._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,j.getProperty)(e).toString():"/"+Qr(e)}P.getErrorPath=Fu;function ma(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}P.checkStrictMode=ma});var ge=y(ts=>{"use strict";Object.defineProperty(ts,"__esModule",{value:!0});var L=b(),Ku={data:new L.Name("data"),valCxt:new L.Name("valCxt"),instancePath:new L.Name("instancePath"),parentData:new L.Name("parentData"),parentDataProperty:new L.Name("parentDataProperty"),rootData:new L.Name("rootData"),dynamicAnchors:new L.Name("dynamicAnchors"),vErrors:new L.Name("vErrors"),errors:new L.Name("errors"),this:new L.Name("this"),self:new L.Name("self"),scope:new L.Name("scope"),json:new L.Name("json"),jsonPos:new L.Name("jsonPos"),jsonLen:new L.Name("jsonLen"),jsonPart:new L.Name("jsonPart")};ts.default=Ku});var yt=y(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.extendErrors=U.resetErrorsCount=U.reportExtraError=U.reportError=U.keyword$DataError=U.keywordError=void 0;var O=b(),Jt=q(),K=ge();U.keywordError={message:({keyword:e})=>(0,O.str)`must pass "${e}" keyword validation`};U.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,O.str)`"${e}" keyword must be ${t} ($data)`:(0,O.str)`"${e}" keyword is invalid ($data)`};function Gu(e,t=U.keywordError,r,s){let{it:n}=e,{gen:a,compositeRule:i,allErrors:o}=n,u=ya(e,t,r);s??(i||o)?pa(a,u):ha(n,(0,O._)`[${u}]`)}U.reportError=Gu;function Hu(e,t=U.keywordError,r){let{it:s}=e,{gen:n,compositeRule:a,allErrors:i}=s,o=ya(e,t,r);pa(n,o),a||i||ha(s,K.default.vErrors)}U.reportExtraError=Hu;function Yu(e,t){e.assign(K.default.errors,t),e.if((0,O._)`${K.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,O._)`${K.default.vErrors}.length`,t),()=>e.assign(K.default.vErrors,null)))}U.resetErrorsCount=Yu;function Bu({gen:e,keyword:t,schemaValue:r,data:s,errsCount:n,it:a}){if(n===void 0)throw new Error("ajv implementation error");let i=e.name("err");e.forRange("i",n,K.default.errors,o=>{e.const(i,(0,O._)`${K.default.vErrors}[${o}]`),e.if((0,O._)`${i}.instancePath === undefined`,()=>e.assign((0,O._)`${i}.instancePath`,(0,O.strConcat)(K.default.instancePath,a.errorPath))),e.assign((0,O._)`${i}.schemaPath`,(0,O.str)`${a.errSchemaPath}/${t}`),a.opts.verbose&&(e.assign((0,O._)`${i}.schema`,r),e.assign((0,O._)`${i}.data`,s))})}U.extendErrors=Bu;function pa(e,t){let r=e.const("err",t);e.if((0,O._)`${K.default.vErrors} === null`,()=>e.assign(K.default.vErrors,(0,O._)`[${r}]`),(0,O._)`${K.default.vErrors}.push(${r})`),e.code((0,O._)`${K.default.errors}++`)}function ha(e,t){let{gen:r,validateName:s,schemaEnv:n}=e;n.$async?r.throw((0,O._)`new ${e.ValidationError}(${t})`):(r.assign((0,O._)`${s}.errors`,t),r.return(!1))}var Ce={keyword:new O.Name("keyword"),schemaPath:new O.Name("schemaPath"),params:new O.Name("params"),propertyName:new O.Name("propertyName"),message:new O.Name("message"),schema:new O.Name("schema"),parentSchema:new O.Name("parentSchema")};function ya(e,t,r){let{createErrors:s}=e.it;return s===!1?(0,O._)`{}`:Ju(e,t,r)}function Ju(e,t,r={}){let{gen:s,it:n}=e,a=[Wu(n,r),Zu(e,r)];return Xu(e,t,a),s.object(...a)}function Wu({errorPath:e},{instancePath:t}){let r=t?(0,O.str)`${e}${(0,Jt.getErrorPath)(t,Jt.Type.Str)}`:e;return[K.default.instancePath,(0,O.strConcat)(K.default.instancePath,r)]}function Zu({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:s}){let n=s?t:(0,O.str)`${t}/${e}`;return r&&(n=(0,O.str)`${n}${(0,Jt.getErrorPath)(r,Jt.Type.Str)}`),[Ce.schemaPath,n]}function Xu(e,{params:t,message:r},s){let{keyword:n,data:a,schemaValue:i,it:o}=e,{opts:u,propertyName:d,topSchemaRef:c,schemaPath:l}=o;s.push([Ce.keyword,n],[Ce.params,typeof t=="function"?t(e):t||(0,O._)`{}`]),u.messages&&s.push([Ce.message,typeof r=="function"?r(e):r]),u.verbose&&s.push([Ce.schema,i],[Ce.parentSchema,(0,O._)`${c}${l}`],[K.default.data,a]),d&&s.push([Ce.propertyName,d])}});var ga=y(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.boolOrEmptySchema=Fe.topBoolOrEmptySchema=void 0;var Qu=yt(),ec=b(),tc=ge(),rc={message:"boolean schema is false"};function sc(e){let{gen:t,schema:r,validateName:s}=e;r===!1?_a(e,!1):typeof r=="object"&&r.$async===!0?t.return(tc.default.data):(t.assign((0,ec._)`${s}.errors`,null),t.return(!0))}Fe.topBoolOrEmptySchema=sc;function nc(e,t){let{gen:r,schema:s}=e;s===!1?(r.var(t,!1),_a(e)):r.var(t,!0)}Fe.boolOrEmptySchema=nc;function _a(e,t){let{gen:r,data:s}=e,n={gen:r,keyword:"false schema",data:s,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,Qu.reportError)(n,rc,void 0,t)}});var rs=y(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.getRules=Ke.isJSONType=void 0;var ac=["string","number","integer","boolean","null","object","array"],ic=new Set(ac);function oc(e){return typeof e=="string"&&ic.has(e)}Ke.isJSONType=oc;function uc(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}Ke.getRules=uc});var ss=y(Ee=>{"use strict";Object.defineProperty(Ee,"__esModule",{value:!0});Ee.shouldUseRule=Ee.shouldUseGroup=Ee.schemaHasRulesForType=void 0;function cc({schema:e,self:t},r){let s=t.RULES.types[r];return s&&s!==!0&&$a(e,s)}Ee.schemaHasRulesForType=cc;function $a(e,t){return t.rules.some(r=>va(e,r))}Ee.shouldUseGroup=$a;function va(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(s=>e[s]!==void 0))}Ee.shouldUseRule=va});var _t=y(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.reportTypeError=F.checkDataTypes=F.checkDataType=F.coerceAndCheckDataType=F.getJSONTypes=F.getSchemaTypes=F.DataType=void 0;var dc=rs(),lc=ss(),fc=yt(),E=b(),wa=q(),Ge;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(Ge||(F.DataType=Ge={}));function mc(e){let t=ba(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}F.getSchemaTypes=mc;function ba(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(dc.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}F.getJSONTypes=ba;function pc(e,t){let{gen:r,data:s,opts:n}=e,a=hc(t,n.coerceTypes),i=t.length>0&&!(a.length===0&&t.length===1&&(0,lc.schemaHasRulesForType)(e,t[0]));if(i){let o=as(t,s,n.strictNumbers,Ge.Wrong);r.if(o,()=>{a.length?yc(e,t,a):is(e)})}return i}F.coerceAndCheckDataType=pc;var Ea=new Set(["string","number","integer","boolean","null"]);function hc(e,t){return t?e.filter(r=>Ea.has(r)||t==="array"&&r==="array"):[]}function yc(e,t,r){let{gen:s,data:n,opts:a}=e,i=s.let("dataType",(0,E._)`typeof ${n}`),o=s.let("coerced",(0,E._)`undefined`);a.coerceTypes==="array"&&s.if((0,E._)`${i} == 'object' && Array.isArray(${n}) && ${n}.length == 1`,()=>s.assign(n,(0,E._)`${n}[0]`).assign(i,(0,E._)`typeof ${n}`).if(as(t,n,a.strictNumbers),()=>s.assign(o,n))),s.if((0,E._)`${o} !== undefined`);for(let d of r)(Ea.has(d)||d==="array"&&a.coerceTypes==="array")&&u(d);s.else(),is(e),s.endIf(),s.if((0,E._)`${o} !== undefined`,()=>{s.assign(n,o),_c(e,o)});function u(d){switch(d){case"string":s.elseIf((0,E._)`${i} == "number" || ${i} == "boolean"`).assign(o,(0,E._)`"" + ${n}`).elseIf((0,E._)`${n} === null`).assign(o,(0,E._)`""`);return;case"number":s.elseIf((0,E._)`${i} == "boolean" || ${n} === null || (${i} == "string" && ${n} && ${n} == +${n})`).assign(o,(0,E._)`+${n}`);return;case"integer":s.elseIf((0,E._)`${i} === "boolean" || ${n} === null || (${i} === "string" && ${n} && ${n} == +${n} && !(${n} % 1))`).assign(o,(0,E._)`+${n}`);return;case"boolean":s.elseIf((0,E._)`${n} === "false" || ${n} === 0 || ${n} === null`).assign(o,!1).elseIf((0,E._)`${n} === "true" || ${n} === 1`).assign(o,!0);return;case"null":s.elseIf((0,E._)`${n} === "" || ${n} === 0 || ${n} === false`),s.assign(o,null);return;case"array":s.elseIf((0,E._)`${i} === "string" || ${i} === "number" || ${i} === "boolean" || ${n} === null`).assign(o,(0,E._)`[${n}]`)}}}function _c({gen:e,parentData:t,parentDataProperty:r},s){e.if((0,E._)`${t} !== undefined`,()=>e.assign((0,E._)`${t}[${r}]`,s))}function ns(e,t,r,s=Ge.Correct){let n=s===Ge.Correct?E.operators.EQ:E.operators.NEQ,a;switch(e){case"null":return(0,E._)`${t} ${n} null`;case"array":a=(0,E._)`Array.isArray(${t})`;break;case"object":a=(0,E._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":a=i((0,E._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":a=i();break;default:return(0,E._)`typeof ${t} ${n} ${e}`}return s===Ge.Correct?a:(0,E.not)(a);function i(o=E.nil){return(0,E.and)((0,E._)`typeof ${t} == "number"`,o,r?(0,E._)`isFinite(${t})`:E.nil)}}F.checkDataType=ns;function as(e,t,r,s){if(e.length===1)return ns(e[0],t,r,s);let n,a=(0,wa.toHash)(e);if(a.array&&a.object){let i=(0,E._)`typeof ${t} != "object"`;n=a.null?i:(0,E._)`!${t} || ${i}`,delete a.null,delete a.array,delete a.object}else n=E.nil;a.number&&delete a.integer;for(let i in a)n=(0,E.and)(n,ns(i,t,r,s));return n}F.checkDataTypes=as;var gc={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,E._)`{type: ${e}}`:(0,E._)`{type: ${t}}`};function is(e){let t=$c(e);(0,fc.reportError)(t,gc)}F.reportTypeError=is;function $c(e){let{gen:t,data:r,schema:s}=e,n=(0,wa.schemaRefOrVal)(e,s,"type");return{gen:t,keyword:"type",data:r,schema:s.type,schemaCode:n,schemaValue:n,parentSchema:s,params:{},it:e}}});var Pa=y(Wt=>{"use strict";Object.defineProperty(Wt,"__esModule",{value:!0});Wt.assignDefaults=void 0;var He=b(),vc=q();function wc(e,t){let{properties:r,items:s}=e.schema;if(t==="object"&&r)for(let n in r)Sa(e,n,r[n].default);else t==="array"&&Array.isArray(s)&&s.forEach((n,a)=>Sa(e,a,n.default))}Wt.assignDefaults=wc;function Sa(e,t,r){let{gen:s,compositeRule:n,data:a,opts:i}=e;if(r===void 0)return;let o=(0,He._)`${a}${(0,He.getProperty)(t)}`;if(n){(0,vc.checkStrictMode)(e,`default is ignored for: ${o}`);return}let u=(0,He._)`${o} === undefined`;i.useDefaults==="empty"&&(u=(0,He._)`${u} || ${o} === null || ${o} === ""`),s.if(u,(0,He._)`${o} = ${(0,He.stringify)(r)}`)}});var Z=y(R=>{"use strict";Object.defineProperty(R,"__esModule",{value:!0});R.validateUnion=R.validateArray=R.usePattern=R.callValidateCode=R.schemaProperties=R.allSchemaProperties=R.noPropertyInData=R.propertyInData=R.isOwnProperty=R.hasPropFunc=R.reportMissingProp=R.checkMissingProp=R.checkReportMissingProp=void 0;var C=b(),os=q(),Se=ge(),bc=q();function Ec(e,t){let{gen:r,data:s,it:n}=e;r.if(cs(r,s,t,n.opts.ownProperties),()=>{e.setParams({missingProperty:(0,C._)`${t}`},!0),e.error()})}R.checkReportMissingProp=Ec;function Sc({gen:e,data:t,it:{opts:r}},s,n){return(0,C.or)(...s.map(a=>(0,C.and)(cs(e,t,a,r.ownProperties),(0,C._)`${n} = ${a}`)))}R.checkMissingProp=Sc;function Pc(e,t){e.setParams({missingProperty:t},!0),e.error()}R.reportMissingProp=Pc;function Ta(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,C._)`Object.prototype.hasOwnProperty`})}R.hasPropFunc=Ta;function us(e,t,r){return(0,C._)`${Ta(e)}.call(${t}, ${r})`}R.isOwnProperty=us;function Tc(e,t,r,s){let n=(0,C._)`${t}${(0,C.getProperty)(r)} !== undefined`;return s?(0,C._)`${n} && ${us(e,t,r)}`:n}R.propertyInData=Tc;function cs(e,t,r,s){let n=(0,C._)`${t}${(0,C.getProperty)(r)} === undefined`;return s?(0,C.or)(n,(0,C.not)(us(e,t,r))):n}R.noPropertyInData=cs;function Ia(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}R.allSchemaProperties=Ia;function Ic(e,t){return Ia(t).filter(r=>!(0,os.alwaysValidSchema)(e,t[r]))}R.schemaProperties=Ic;function Nc({schemaCode:e,data:t,it:{gen:r,topSchemaRef:s,schemaPath:n,errorPath:a},it:i},o,u,d){let c=d?(0,C._)`${e}, ${t}, ${s}${n}`:t,l=[[Se.default.instancePath,(0,C.strConcat)(Se.default.instancePath,a)],[Se.default.parentData,i.parentData],[Se.default.parentDataProperty,i.parentDataProperty],[Se.default.rootData,Se.default.rootData]];i.opts.dynamicRef&&l.push([Se.default.dynamicAnchors,Se.default.dynamicAnchors]);let h=(0,C._)`${c}, ${r.object(...l)}`;return u!==C.nil?(0,C._)`${o}.call(${u}, ${h})`:(0,C._)`${o}(${h})`}R.callValidateCode=Nc;var Oc=(0,C._)`new RegExp`;function kc({gen:e,it:{opts:t}},r){let s=t.unicodeRegExp?"u":"",{regExp:n}=t.code,a=n(r,s);return e.scopeValue("pattern",{key:a.toString(),ref:a,code:(0,C._)`${n.code==="new RegExp"?Oc:(0,bc.useFunc)(e,n)}(${r}, ${s})`})}R.usePattern=kc;function qc(e){let{gen:t,data:r,keyword:s,it:n}=e,a=t.name("valid");if(n.allErrors){let o=t.let("valid",!0);return i(()=>t.assign(o,!1)),o}return t.var(a,!0),i(()=>t.break()),a;function i(o){let u=t.const("len",(0,C._)`${r}.length`);t.forRange("i",0,u,d=>{e.subschema({keyword:s,dataProp:d,dataPropType:os.Type.Num},a),t.if((0,C.not)(a),o)})}}R.validateArray=qc;function Rc(e){let{gen:t,schema:r,keyword:s,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(u=>(0,os.alwaysValidSchema)(n,u))&&!n.opts.unevaluated)return;let i=t.let("valid",!1),o=t.name("_valid");t.block(()=>r.forEach((u,d)=>{let c=e.subschema({keyword:s,schemaProp:d,compositeRule:!0},o);t.assign(i,(0,C._)`${i} || ${o}`),e.mergeValidEvaluated(c,o)||t.if((0,C.not)(i))})),e.result(i,()=>e.reset(),()=>e.error(!0))}R.validateUnion=Rc});var ka=y(oe=>{"use strict";Object.defineProperty(oe,"__esModule",{value:!0});oe.validateKeywordUsage=oe.validSchemaType=oe.funcKeywordCode=oe.macroKeywordCode=void 0;var G=b(),Me=ge(),jc=Z(),Ac=yt();function Cc(e,t){let{gen:r,keyword:s,schema:n,parentSchema:a,it:i}=e,o=t.macro.call(i.self,n,a,i),u=Oa(r,s,o);i.opts.validateSchema!==!1&&i.self.validateSchema(o,!0);let d=r.name("valid");e.subschema({schema:o,schemaPath:G.nil,errSchemaPath:`${i.errSchemaPath}/${s}`,topSchemaRef:u,compositeRule:!0},d),e.pass(d,()=>e.error(!0))}oe.macroKeywordCode=Cc;function Mc(e,t){var r;let{gen:s,keyword:n,schema:a,parentSchema:i,$data:o,it:u}=e;zc(u,t);let d=!o&&t.compile?t.compile.call(u.self,a,i,u):t.validate,c=Oa(s,n,d),l=s.let("valid");e.block$data(l,h),e.ok((r=t.valid)!==null&&r!==void 0?r:l);function h(){if(t.errors===!1)m(),t.modifying&&Na(e),_(()=>e.error());else{let g=t.async?p():f();t.modifying&&Na(e),_(()=>Dc(e,g))}}function p(){let g=s.let("ruleErrs",null);return s.try(()=>m((0,G._)`await `),N=>s.assign(l,!1).if((0,G._)`${N} instanceof ${u.ValidationError}`,()=>s.assign(g,(0,G._)`${N}.errors`),()=>s.throw(N))),g}function f(){let g=(0,G._)`${c}.errors`;return s.assign(g,null),m(G.nil),g}function m(g=t.async?(0,G._)`await `:G.nil){let N=u.opts.passContext?Me.default.this:Me.default.self,T=!("compile"in t&&!o||t.schema===!1);s.assign(l,(0,G._)`${g}${(0,jc.callValidateCode)(e,c,N,T)}`,t.modifying)}function _(g){var N;s.if((0,G.not)((N=t.valid)!==null&&N!==void 0?N:l),g)}}oe.funcKeywordCode=Mc;function Na(e){let{gen:t,data:r,it:s}=e;t.if(s.parentData,()=>t.assign(r,(0,G._)`${s.parentData}[${s.parentDataProperty}]`))}function Dc(e,t){let{gen:r}=e;r.if((0,G._)`Array.isArray(${t})`,()=>{r.assign(Me.default.vErrors,(0,G._)`${Me.default.vErrors} === null ? ${t} : ${Me.default.vErrors}.concat(${t})`).assign(Me.default.errors,(0,G._)`${Me.default.vErrors}.length`),(0,Ac.extendErrors)(e)},()=>e.error())}function zc({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function Oa(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,G.stringify)(r)})}function Vc(e,t,r=!1){return!t.length||t.some(s=>s==="array"?Array.isArray(e):s==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==s||r&&typeof e>"u")}oe.validSchemaType=Vc;function xc({schema:e,opts:t,self:r,errSchemaPath:s},n,a){if(Array.isArray(n.keyword)?!n.keyword.includes(a):n.keyword!==a)throw new Error("ajv implementation error");let i=n.dependencies;if(i?.some(o=>!Object.prototype.hasOwnProperty.call(e,o)))throw new Error(`parent schema must have dependencies of ${a}: ${i.join(",")}`);if(n.validateSchema&&!n.validateSchema(e[a])){let u=`keyword "${a}" value is invalid at path "${s}": `+r.errorsText(n.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(u);else throw new Error(u)}}oe.validateKeywordUsage=xc});var Ra=y(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.extendSubschemaMode=Pe.extendSubschemaData=Pe.getSubschema=void 0;var ue=b(),qa=q();function Lc(e,{keyword:t,schemaProp:r,schema:s,schemaPath:n,errSchemaPath:a,topSchemaRef:i}){if(t!==void 0&&s!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let o=e.schema[t];return r===void 0?{schema:o,schemaPath:(0,ue._)`${e.schemaPath}${(0,ue.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:o[r],schemaPath:(0,ue._)`${e.schemaPath}${(0,ue.getProperty)(t)}${(0,ue.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,qa.escapeFragment)(r)}`}}if(s!==void 0){if(n===void 0||a===void 0||i===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:s,schemaPath:n,topSchemaRef:i,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}Pe.getSubschema=Lc;function Uc(e,t,{dataProp:r,dataPropType:s,data:n,dataTypes:a,propertyName:i}){if(n!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:o}=t;if(r!==void 0){let{errorPath:d,dataPathArr:c,opts:l}=t,h=o.let("data",(0,ue._)`${t.data}${(0,ue.getProperty)(r)}`,!0);u(h),e.errorPath=(0,ue.str)`${d}${(0,qa.getErrorPath)(r,s,l.jsPropertySyntax)}`,e.parentDataProperty=(0,ue._)`${r}`,e.dataPathArr=[...c,e.parentDataProperty]}if(n!==void 0){let d=n instanceof ue.Name?n:o.let("data",n,!0);u(d),i!==void 0&&(e.propertyName=i)}a&&(e.dataTypes=a);function u(d){e.data=d,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,d]}}Pe.extendSubschemaData=Uc;function Fc(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:s,createErrors:n,allErrors:a}){s!==void 0&&(e.compositeRule=s),n!==void 0&&(e.createErrors=n),a!==void 0&&(e.allErrors=a),e.jtdDiscriminator=t,e.jtdMetadata=r}Pe.extendSubschemaMode=Fc});var ds=y((yh,ja)=>{"use strict";ja.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var s,n,a;if(Array.isArray(t)){if(s=t.length,s!=r.length)return!1;for(n=s;n--!==0;)if(!e(t[n],r[n]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(a=Object.keys(t),s=a.length,s!==Object.keys(r).length)return!1;for(n=s;n--!==0;)if(!Object.prototype.hasOwnProperty.call(r,a[n]))return!1;for(n=s;n--!==0;){var i=a[n];if(!e(t[i],r[i]))return!1}return!0}return t!==t&&r!==r}});var Ca=y((_h,Aa)=>{"use strict";var Te=Aa.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var s=typeof r=="function"?r:r.pre||function(){},n=r.post||function(){};Zt(t,s,n,e,"",e)};Te.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Te.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Te.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Te.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function Zt(e,t,r,s,n,a,i,o,u,d){if(s&&typeof s=="object"&&!Array.isArray(s)){t(s,n,a,i,o,u,d);for(var c in s){var l=s[c];if(Array.isArray(l)){if(c in Te.arrayKeywords)for(var h=0;h<l.length;h++)Zt(e,t,r,l[h],n+"/"+c+"/"+h,a,n,c,s,h)}else if(c in Te.propsKeywords){if(l&&typeof l=="object")for(var p in l)Zt(e,t,r,l[p],n+"/"+c+"/"+Kc(p),a,n,c,s,p)}else(c in Te.keywords||e.allKeys&&!(c in Te.skipKeywords))&&Zt(e,t,r,l,n+"/"+c,a,n,c,s)}r(s,n,a,i,o,u,d)}}function Kc(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var gt=y(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});B.getSchemaRefs=B.resolveUrl=B.normalizeId=B._getFullPath=B.getFullPath=B.inlineRef=void 0;var Gc=q(),Hc=ds(),Yc=Ca(),Bc=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Jc(e,t=!0){return typeof e=="boolean"?!0:t===!0?!ls(e):t?Ma(e)<=t:!1}B.inlineRef=Jc;var Wc=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ls(e){for(let t in e){if(Wc.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(ls)||typeof r=="object"&&ls(r))return!0}return!1}function Ma(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!Bc.has(r)&&(typeof e[r]=="object"&&(0,Gc.eachItem)(e[r],s=>t+=Ma(s)),t===1/0))return 1/0}return t}function Da(e,t="",r){r!==!1&&(t=Ye(t));let s=e.parse(t);return za(e,s)}B.getFullPath=Da;function za(e,t){return e.serialize(t).split("#")[0]+"#"}B._getFullPath=za;var Zc=/#\/?$/;function Ye(e){return e?e.replace(Zc,""):""}B.normalizeId=Ye;function Xc(e,t,r){return r=Ye(r),e.resolve(t,r)}B.resolveUrl=Xc;var Qc=/^[a-z_][-a-z0-9._]*$/i;function ed(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:s}=this.opts,n=Ye(e[r]||t),a={"":n},i=Da(s,n,!1),o={},u=new Set;return Yc(e,{allKeys:!0},(l,h,p,f)=>{if(f===void 0)return;let m=i+h,_=a[f];typeof l[r]=="string"&&(_=g.call(this,l[r])),N.call(this,l.$anchor),N.call(this,l.$dynamicAnchor),a[h]=_;function g(T){let A=this.opts.uriResolver.resolve;if(T=Ye(_?A(_,T):T),u.has(T))throw c(T);u.add(T);let w=this.refs[T];return typeof w=="string"&&(w=this.refs[w]),typeof w=="object"?d(l,w.schema,T):T!==Ye(m)&&(T[0]==="#"?(d(l,o[T],T),o[T]=l):this.refs[T]=m),T}function N(T){if(typeof T=="string"){if(!Qc.test(T))throw new Error(`invalid anchor "${T}"`);g.call(this,`#${T}`)}}}),o;function d(l,h,p){if(h!==void 0&&!Hc(l,h))throw c(p)}function c(l){return new Error(`reference "${l}" resolves to more than one schema`)}}B.getSchemaRefs=ed});var wt=y(Ie=>{"use strict";Object.defineProperty(Ie,"__esModule",{value:!0});Ie.getData=Ie.KeywordCxt=Ie.validateFunctionCode=void 0;var Fa=ga(),Va=_t(),ms=ss(),Xt=_t(),td=Pa(),vt=ka(),fs=Ra(),$=b(),v=ge(),rd=gt(),$e=q(),$t=yt();function sd(e){if(Ha(e)&&(Ya(e),Ga(e))){id(e);return}Ka(e,()=>(0,Fa.topBoolOrEmptySchema)(e))}Ie.validateFunctionCode=sd;function Ka({gen:e,validateName:t,schema:r,schemaEnv:s,opts:n},a){n.code.es5?e.func(t,(0,$._)`${v.default.data}, ${v.default.valCxt}`,s.$async,()=>{e.code((0,$._)`"use strict"; ${xa(r,n)}`),ad(e,n),e.code(a)}):e.func(t,(0,$._)`${v.default.data}, ${nd(n)}`,s.$async,()=>e.code(xa(r,n)).code(a))}function nd(e){return(0,$._)`{${v.default.instancePath}="", ${v.default.parentData}, ${v.default.parentDataProperty}, ${v.default.rootData}=${v.default.data}${e.dynamicRef?(0,$._)`, ${v.default.dynamicAnchors}={}`:$.nil}}={}`}function ad(e,t){e.if(v.default.valCxt,()=>{e.var(v.default.instancePath,(0,$._)`${v.default.valCxt}.${v.default.instancePath}`),e.var(v.default.parentData,(0,$._)`${v.default.valCxt}.${v.default.parentData}`),e.var(v.default.parentDataProperty,(0,$._)`${v.default.valCxt}.${v.default.parentDataProperty}`),e.var(v.default.rootData,(0,$._)`${v.default.valCxt}.${v.default.rootData}`),t.dynamicRef&&e.var(v.default.dynamicAnchors,(0,$._)`${v.default.valCxt}.${v.default.dynamicAnchors}`)},()=>{e.var(v.default.instancePath,(0,$._)`""`),e.var(v.default.parentData,(0,$._)`undefined`),e.var(v.default.parentDataProperty,(0,$._)`undefined`),e.var(v.default.rootData,v.default.data),t.dynamicRef&&e.var(v.default.dynamicAnchors,(0,$._)`{}`)})}function id(e){let{schema:t,opts:r,gen:s}=e;Ka(e,()=>{r.$comment&&t.$comment&&Ja(e),ld(e),s.let(v.default.vErrors,null),s.let(v.default.errors,0),r.unevaluated&&od(e),Ba(e),pd(e)})}function od(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,$._)`${r}.evaluated`),t.if((0,$._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,$._)`${e.evaluated}.props`,(0,$._)`undefined`)),t.if((0,$._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,$._)`${e.evaluated}.items`,(0,$._)`undefined`))}function xa(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,$._)`/*# sourceURL=${r} */`:$.nil}function ud(e,t){if(Ha(e)&&(Ya(e),Ga(e))){cd(e,t);return}(0,Fa.boolOrEmptySchema)(e,t)}function Ga({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let r in e)if(t.RULES.all[r])return!0;return!1}function Ha(e){return typeof e.schema!="boolean"}function cd(e,t){let{schema:r,gen:s,opts:n}=e;n.$comment&&r.$comment&&Ja(e),fd(e),md(e);let a=s.const("_errs",v.default.errors);Ba(e,a),s.var(t,(0,$._)`${a} === ${v.default.errors}`)}function Ya(e){(0,$e.checkUnknownRules)(e),dd(e)}function Ba(e,t){if(e.opts.jtd)return La(e,[],!1,t);let r=(0,Va.getSchemaTypes)(e.schema),s=(0,Va.coerceAndCheckDataType)(e,r);La(e,r,!s,t)}function dd(e){let{schema:t,errSchemaPath:r,opts:s,self:n}=e;t.$ref&&s.ignoreKeywordsWithRef&&(0,$e.schemaHasRulesButRef)(t,n.RULES)&&n.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function ld(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,$e.checkStrictMode)(e,"default is ignored in the schema root")}function fd(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,rd.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function md(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function Ja({gen:e,schemaEnv:t,schema:r,errSchemaPath:s,opts:n}){let a=r.$comment;if(n.$comment===!0)e.code((0,$._)`${v.default.self}.logger.log(${a})`);else if(typeof n.$comment=="function"){let i=(0,$.str)`${s}/$comment`,o=e.scopeValue("root",{ref:t.root});e.code((0,$._)`${v.default.self}.opts.$comment(${a}, ${i}, ${o}.schema)`)}}function pd(e){let{gen:t,schemaEnv:r,validateName:s,ValidationError:n,opts:a}=e;r.$async?t.if((0,$._)`${v.default.errors} === 0`,()=>t.return(v.default.data),()=>t.throw((0,$._)`new ${n}(${v.default.vErrors})`)):(t.assign((0,$._)`${s}.errors`,v.default.vErrors),a.unevaluated&&hd(e),t.return((0,$._)`${v.default.errors} === 0`))}function hd({gen:e,evaluated:t,props:r,items:s}){r instanceof $.Name&&e.assign((0,$._)`${t}.props`,r),s instanceof $.Name&&e.assign((0,$._)`${t}.items`,s)}function La(e,t,r,s){let{gen:n,schema:a,data:i,allErrors:o,opts:u,self:d}=e,{RULES:c}=d;if(a.$ref&&(u.ignoreKeywordsWithRef||!(0,$e.schemaHasRulesButRef)(a,c))){n.block(()=>Za(e,"$ref",c.all.$ref.definition));return}u.jtd||yd(e,t),n.block(()=>{for(let h of c.rules)l(h);l(c.post)});function l(h){(0,ms.shouldUseGroup)(a,h)&&(h.type?(n.if((0,Xt.checkDataType)(h.type,i,u.strictNumbers)),Ua(e,h),t.length===1&&t[0]===h.type&&r&&(n.else(),(0,Xt.reportTypeError)(e)),n.endIf()):Ua(e,h),o||n.if((0,$._)`${v.default.errors} === ${s||0}`))}}function Ua(e,t){let{gen:r,schema:s,opts:{useDefaults:n}}=e;n&&(0,td.assignDefaults)(e,t.type),r.block(()=>{for(let a of t.rules)(0,ms.shouldUseRule)(s,a)&&Za(e,a.keyword,a.definition,t.type)})}function yd(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(_d(e,t),e.opts.allowUnionTypes||gd(e,t),$d(e,e.dataTypes))}function _d(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{Wa(e.dataTypes,r)||ps(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),wd(e,t)}}function gd(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&ps(e,"use allowUnionTypes to allow union type keyword")}function $d(e,t){let r=e.self.RULES.all;for(let s in r){let n=r[s];if(typeof n=="object"&&(0,ms.shouldUseRule)(e.schema,n)){let{type:a}=n.definition;a.length&&!a.some(i=>vd(t,i))&&ps(e,`missing type "${a.join(",")}" for keyword "${s}"`)}}}function vd(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function Wa(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function wd(e,t){let r=[];for(let s of e.dataTypes)Wa(t,s)?r.push(s):t.includes("integer")&&s==="number"&&r.push("integer");e.dataTypes=r}function ps(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,$e.checkStrictMode)(e,t,e.opts.strictTypes)}var Qt=class{constructor(t,r,s){if((0,vt.validateKeywordUsage)(t,r,s),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=s,this.data=t.data,this.schema=t.schema[s],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,$e.schemaRefOrVal)(t,this.schema,s,this.$data),this.schemaType=r.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=r,this.$data)this.schemaCode=t.gen.const("vSchema",Xa(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,vt.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${s} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",v.default.errors))}result(t,r,s){this.failResult((0,$.not)(t),r,s)}failResult(t,r,s){this.gen.if(t),s?s():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,$.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,$._)`${r} !== undefined && (${(0,$.or)(this.invalid$data(),t)})`)}error(t,r,s){if(r){this.setParams(r),this._error(t,s),this.setParams({});return}this._error(t,s)}_error(t,r){(t?$t.reportExtraError:$t.reportError)(this,this.def.error,r)}$dataError(){(0,$t.reportError)(this,this.def.$dataError||$t.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,$t.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,s=$.nil){this.gen.block(()=>{this.check$data(t,s),r()})}check$data(t=$.nil,r=$.nil){if(!this.$data)return;let{gen:s,schemaCode:n,schemaType:a,def:i}=this;s.if((0,$.or)((0,$._)`${n} === undefined`,r)),t!==$.nil&&s.assign(t,!0),(a.length||i.validateSchema)&&(s.elseIf(this.invalid$data()),this.$dataError(),t!==$.nil&&s.assign(t,!1)),s.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:s,def:n,it:a}=this;return(0,$.or)(i(),o());function i(){if(s.length){if(!(r instanceof $.Name))throw new Error("ajv implementation error");let u=Array.isArray(s)?s:[s];return(0,$._)`${(0,Xt.checkDataTypes)(u,r,a.opts.strictNumbers,Xt.DataType.Wrong)}`}return $.nil}function o(){if(n.validateSchema){let u=t.scopeValue("validate$data",{ref:n.validateSchema});return(0,$._)`!${u}(${r})`}return $.nil}}subschema(t,r){let s=(0,fs.getSubschema)(this.it,t);(0,fs.extendSubschemaData)(s,this.it,t),(0,fs.extendSubschemaMode)(s,t);let n={...this.it,...s,items:void 0,props:void 0};return ud(n,r),n}mergeEvaluated(t,r){let{it:s,gen:n}=this;s.opts.unevaluated&&(s.props!==!0&&t.props!==void 0&&(s.props=$e.mergeEvaluated.props(n,t.props,s.props,r)),s.items!==!0&&t.items!==void 0&&(s.items=$e.mergeEvaluated.items(n,t.items,s.items,r)))}mergeValidEvaluated(t,r){let{it:s,gen:n}=this;if(s.opts.unevaluated&&(s.props!==!0||s.items!==!0))return n.if(r,()=>this.mergeEvaluated(t,$.Name)),!0}};Ie.KeywordCxt=Qt;function Za(e,t,r,s){let n=new Qt(e,r,t);"code"in r?r.code(n,s):n.$data&&r.validate?(0,vt.funcKeywordCode)(n,r):"macro"in r?(0,vt.macroKeywordCode)(n,r):(r.compile||r.validate)&&(0,vt.funcKeywordCode)(n,r)}var bd=/^\/(?:[^~]|~0|~1)*$/,Ed=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Xa(e,{dataLevel:t,dataNames:r,dataPathArr:s}){let n,a;if(e==="")return v.default.rootData;if(e[0]==="/"){if(!bd.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);n=e,a=v.default.rootData}else{let d=Ed.exec(e);if(!d)throw new Error(`Invalid JSON-pointer: ${e}`);let c=+d[1];if(n=d[2],n==="#"){if(c>=t)throw new Error(u("property/index",c));return s[t-c]}if(c>t)throw new Error(u("data",c));if(a=r[t-c],!n)return a}let i=a,o=n.split("/");for(let d of o)d&&(a=(0,$._)`${a}${(0,$.getProperty)((0,$e.unescapeJsonPointer)(d))}`,i=(0,$._)`${i} && ${a}`);return i;function u(d,c){return`Cannot access ${d} ${c} levels up, current level is ${t}`}}Ie.getData=Xa});var er=y(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});var hs=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};ys.default=hs});var bt=y($s=>{"use strict";Object.defineProperty($s,"__esModule",{value:!0});var _s=gt(),gs=class extends Error{constructor(t,r,s,n){super(n||`can't resolve reference ${s} from id ${r}`),this.missingRef=(0,_s.resolveUrl)(t,r,s),this.missingSchema=(0,_s.normalizeId)((0,_s.getFullPath)(t,this.missingRef))}};$s.default=gs});var rr=y(X=>{"use strict";Object.defineProperty(X,"__esModule",{value:!0});X.resolveSchema=X.getCompilingSchema=X.resolveRef=X.compileSchema=X.SchemaEnv=void 0;var re=b(),Sd=er(),De=ge(),se=gt(),Qa=q(),Pd=wt(),Be=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let s;typeof t.schema=="object"&&(s=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,se.normalizeId)(s?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=s?.$async,this.refs={}}};X.SchemaEnv=Be;function ws(e){let t=ei.call(this,e);if(t)return t;let r=(0,se.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:s,lines:n}=this.opts.code,{ownProperties:a}=this.opts,i=new re.CodeGen(this.scope,{es5:s,lines:n,ownProperties:a}),o;e.$async&&(o=i.scopeValue("Error",{ref:Sd.default,code:(0,re._)`require("ajv/dist/runtime/validation_error").default`}));let u=i.scopeName("validate");e.validateName=u;let d={gen:i,allErrors:this.opts.allErrors,data:De.default.data,parentData:De.default.parentData,parentDataProperty:De.default.parentDataProperty,dataNames:[De.default.data],dataPathArr:[re.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:i.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,re.stringify)(e.schema)}:{ref:e.schema}),validateName:u,ValidationError:o,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:re.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,re._)`""`,opts:this.opts,self:this},c;try{this._compilations.add(e),(0,Pd.validateFunctionCode)(d),i.optimize(this.opts.code.optimize);let l=i.toString();c=`${i.scopeRefs(De.default.scope)}return ${l}`,this.opts.code.process&&(c=this.opts.code.process(c,e));let p=new Function(`${De.default.self}`,`${De.default.scope}`,c)(this,this.scope.get());if(this.scope.value(u,{ref:p}),p.errors=null,p.schema=e.schema,p.schemaEnv=e,e.$async&&(p.$async=!0),this.opts.code.source===!0&&(p.source={validateName:u,validateCode:l,scopeValues:i._values}),this.opts.unevaluated){let{props:f,items:m}=d;p.evaluated={props:f instanceof re.Name?void 0:f,items:m instanceof re.Name?void 0:m,dynamicProps:f instanceof re.Name,dynamicItems:m instanceof re.Name},p.source&&(p.source.evaluated=(0,re.stringify)(p.evaluated))}return e.validate=p,e}catch(l){throw delete e.validate,delete e.validateName,c&&this.logger.error("Error compiling schema, function code:",c),l}finally{this._compilations.delete(e)}}X.compileSchema=ws;function Td(e,t,r){var s;r=(0,se.resolveUrl)(this.opts.uriResolver,t,r);let n=e.refs[r];if(n)return n;let a=Od.call(this,e,r);if(a===void 0){let i=(s=e.localRefs)===null||s===void 0?void 0:s[r],{schemaId:o}=this.opts;i&&(a=new Be({schema:i,schemaId:o,root:e,baseId:t}))}if(a!==void 0)return e.refs[r]=Id.call(this,a)}X.resolveRef=Td;function Id(e){return(0,se.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:ws.call(this,e)}function ei(e){for(let t of this._compilations)if(Nd(t,e))return t}X.getCompilingSchema=ei;function Nd(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function Od(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||tr.call(this,e,t)}function tr(e,t){let r=this.opts.uriResolver.parse(t),s=(0,se._getFullPath)(this.opts.uriResolver,r),n=(0,se.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&s===n)return vs.call(this,r,e);let a=(0,se.normalizeId)(s),i=this.refs[a]||this.schemas[a];if(typeof i=="string"){let o=tr.call(this,e,i);return typeof o?.schema!="object"?void 0:vs.call(this,r,o)}if(typeof i?.schema=="object"){if(i.validate||ws.call(this,i),a===(0,se.normalizeId)(t)){let{schema:o}=i,{schemaId:u}=this.opts,d=o[u];return d&&(n=(0,se.resolveUrl)(this.opts.uriResolver,n,d)),new Be({schema:o,schemaId:u,root:e,baseId:n})}return vs.call(this,r,i)}}X.resolveSchema=tr;var kd=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function vs(e,{baseId:t,schema:r,root:s}){var n;if(((n=e.fragment)===null||n===void 0?void 0:n[0])!=="/")return;for(let o of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let u=r[(0,Qa.unescapeFragment)(o)];if(u===void 0)return;r=u;let d=typeof r=="object"&&r[this.opts.schemaId];!kd.has(o)&&d&&(t=(0,se.resolveUrl)(this.opts.uriResolver,t,d))}let a;if(typeof r!="boolean"&&r.$ref&&!(0,Qa.schemaHasRulesButRef)(r,this.RULES)){let o=(0,se.resolveUrl)(this.opts.uriResolver,t,r.$ref);a=tr.call(this,s,o)}let{schemaId:i}=this.opts;if(a=a||new Be({schema:r,schemaId:i,root:s,baseId:t}),a.schema!==a.root.schema)return a}});var ti=y((Eh,qd)=>{qd.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var si=y((Sh,ri)=>{"use strict";var Rd={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};ri.exports={HEX:Rd}});var li=y((Ph,di)=>{"use strict";var{HEX:jd}=si();function oi(e){if(ci(e,".")<3)return{host:e,isIPV4:!1};let t=e.match(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u)||[],[r]=t;return r?{host:Cd(r,"."),isIPV4:!0}:{host:e,isIPV4:!1}}function bs(e,t=!1){let r="",s=!0;for(let n of e){if(jd[n]===void 0)return;n!=="0"&&s===!0&&(s=!1),s||(r+=n)}return t&&r.length===0&&(r="0"),r}function Ad(e){let t=0,r={error:!1,address:"",zone:""},s=[],n=[],a=!1,i=!1,o=!1;function u(){if(n.length){if(a===!1){let d=bs(n);if(d!==void 0)s.push(d);else return r.error=!0,!1}n.length=0}return!0}for(let d=0;d<e.length;d++){let c=e[d];if(!(c==="["||c==="]"))if(c===":"){if(i===!0&&(o=!0),!u())break;if(t++,s.push(":"),t>7){r.error=!0;break}d-1>=0&&e[d-1]===":"&&(i=!0);continue}else if(c==="%"){if(!u())break;a=!0}else{n.push(c);continue}}return n.length&&(a?r.zone=n.join(""):o?s.push(n.join("")):s.push(bs(n))),r.address=s.join(""),r}function ui(e,t={}){if(ci(e,":")<2)return{host:e,isIPV6:!1};let r=Ad(e);if(r.error)return{host:e,isIPV6:!1};{let s=r.address,n=r.address;return r.zone&&(s+="%"+r.zone,n+="%25"+r.zone),{host:s,escapedHost:n,isIPV6:!0}}}function Cd(e,t){let r="",s=!0,n=e.length;for(let a=0;a<n;a++){let i=e[a];i==="0"&&s?(a+1<=n&&e[a+1]===t||a+1===n)&&(r+=i,s=!1):(i===t?s=!0:s=!1,r+=i)}return r}function ci(e,t){let r=0;for(let s=0;s<e.length;s++)e[s]===t&&r++;return r}var ni=/^\.\.?\//u,ai=/^\/\.(?:\/|$)/u,ii=/^\/\.\.(?:\/|$)/u,Md=/^\/?(?:.|\n)*?(?=\/|$)/u;function Dd(e){let t=[];for(;e.length;)if(e.match(ni))e=e.replace(ni,"");else if(e.match(ai))e=e.replace(ai,"/");else if(e.match(ii))e=e.replace(ii,"/"),t.pop();else if(e==="."||e==="..")e="";else{let r=e.match(Md);if(r){let s=r[0];e=e.slice(s.length),t.push(s)}else throw new Error("Unexpected dot segment condition")}return t.join("")}function zd(e,t){let r=t!==!0?escape:unescape;return e.scheme!==void 0&&(e.scheme=r(e.scheme)),e.userinfo!==void 0&&(e.userinfo=r(e.userinfo)),e.host!==void 0&&(e.host=r(e.host)),e.path!==void 0&&(e.path=r(e.path)),e.query!==void 0&&(e.query=r(e.query)),e.fragment!==void 0&&(e.fragment=r(e.fragment)),e}function Vd(e,t){let r=[];if(e.userinfo!==void 0&&(r.push(e.userinfo),r.push("@")),e.host!==void 0){let s=unescape(e.host),n=oi(s);if(n.isIPV4)s=n.host;else{let a=ui(n.host,{isIPV4:!1});a.isIPV6===!0?s=`[${a.escapedHost}]`:s=e.host}r.push(s)}return(typeof e.port=="number"||typeof e.port=="string")&&(r.push(":"),r.push(String(e.port))),r.length?r.join(""):void 0}di.exports={recomposeAuthority:Vd,normalizeComponentEncoding:zd,removeDotSegments:Dd,normalizeIPv4:oi,normalizeIPv6:ui,stringArrayToHexStripped:bs}});var _i=y((Th,yi)=>{"use strict";var xd=/^[\da-f]{8}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{12}$/iu,Ld=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function fi(e){return typeof e.secure=="boolean"?e.secure:String(e.scheme).toLowerCase()==="wss"}function mi(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function pi(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function Ud(e){return e.secure=fi(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function Fd(e){if((e.port===(fi(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,r]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function Kd(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(Ld);if(r){let s=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let n=`${s}:${t.nid||e.nid}`,a=Es[n];e.path=void 0,a&&(e=a.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function Gd(e,t){let r=t.scheme||e.scheme||"urn",s=e.nid.toLowerCase(),n=`${r}:${t.nid||s}`,a=Es[n];a&&(e=a.serialize(e,t));let i=e,o=e.nss;return i.path=`${s||t.nid}:${o}`,t.skipEscape=!0,i}function Hd(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!xd.test(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function Yd(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var hi={scheme:"http",domainHost:!0,parse:mi,serialize:pi},Bd={scheme:"https",domainHost:hi.domainHost,parse:mi,serialize:pi},sr={scheme:"ws",domainHost:!0,parse:Ud,serialize:Fd},Jd={scheme:"wss",domainHost:sr.domainHost,parse:sr.parse,serialize:sr.serialize},Wd={scheme:"urn",parse:Kd,serialize:Gd,skipNormalize:!0},Zd={scheme:"urn:uuid",parse:Hd,serialize:Yd,skipNormalize:!0},Es={http:hi,https:Bd,ws:sr,wss:Jd,urn:Wd,"urn:uuid":Zd};yi.exports=Es});var $i=y((Ih,ar)=>{"use strict";var{normalizeIPv6:Xd,normalizeIPv4:Qd,removeDotSegments:Et,recomposeAuthority:el,normalizeComponentEncoding:nr}=li(),Ss=_i();function tl(e,t){return typeof e=="string"?e=ce(ve(e,t),t):typeof e=="object"&&(e=ve(ce(e,t),t)),e}function rl(e,t,r){let s=Object.assign({scheme:"null"},r),n=gi(ve(e,s),ve(t,s),s,!0);return ce(n,{...s,skipEscape:!0})}function gi(e,t,r,s){let n={};return s||(e=ve(ce(e,r),r),t=ve(ce(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(n.scheme=t.scheme,n.userinfo=t.userinfo,n.host=t.host,n.port=t.port,n.path=Et(t.path||""),n.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(n.userinfo=t.userinfo,n.host=t.host,n.port=t.port,n.path=Et(t.path||""),n.query=t.query):(t.path?(t.path.charAt(0)==="/"?n.path=Et(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?n.path="/"+t.path:e.path?n.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:n.path=t.path,n.path=Et(n.path)),n.query=t.query):(n.path=e.path,t.query!==void 0?n.query=t.query:n.query=e.query),n.userinfo=e.userinfo,n.host=e.host,n.port=e.port),n.scheme=e.scheme),n.fragment=t.fragment,n}function sl(e,t,r){return typeof e=="string"?(e=unescape(e),e=ce(nr(ve(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=ce(nr(e,!0),{...r,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=ce(nr(ve(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=ce(nr(t,!0),{...r,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function ce(e,t){let r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},s=Object.assign({},t),n=[],a=Ss[(s.scheme||r.scheme||"").toLowerCase()];a&&a.serialize&&a.serialize(r,s),r.path!==void 0&&(s.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),s.reference!=="suffix"&&r.scheme&&(n.push(r.scheme),n.push(":"));let i=el(r,s);if(i!==void 0&&(s.reference!=="suffix"&&n.push("//"),n.push(i),r.path&&r.path.charAt(0)!=="/"&&n.push("/")),r.path!==void 0){let o=r.path;!s.absolutePath&&(!a||!a.absolutePath)&&(o=Et(o)),i===void 0&&(o=o.replace(/^\/\//u,"/%2F")),n.push(o)}return r.query!==void 0&&(n.push("?"),n.push(r.query)),r.fragment!==void 0&&(n.push("#"),n.push(r.fragment)),n.join("")}var nl=Array.from({length:127},(e,t)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(t)));function al(e){let t=0;for(let r=0,s=e.length;r<s;++r)if(t=e.charCodeAt(r),t>126||nl[t])return!0;return!1}var il=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function ve(e,t){let r=Object.assign({},t),s={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},n=e.indexOf("%")!==-1,a=!1;r.reference==="suffix"&&(e=(r.scheme?r.scheme+":":"")+"//"+e);let i=e.match(il);if(i){if(s.scheme=i[1],s.userinfo=i[3],s.host=i[4],s.port=parseInt(i[5],10),s.path=i[6]||"",s.query=i[7],s.fragment=i[8],isNaN(s.port)&&(s.port=i[5]),s.host){let u=Qd(s.host);if(u.isIPV4===!1){let d=Xd(u.host,{isIPV4:!1});s.host=d.host.toLowerCase(),a=d.isIPV6}else s.host=u.host,a=!0}s.scheme===void 0&&s.userinfo===void 0&&s.host===void 0&&s.port===void 0&&!s.path&&s.query===void 0?s.reference="same-document":s.scheme===void 0?s.reference="relative":s.fragment===void 0?s.reference="absolute":s.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==s.reference&&(s.error=s.error||"URI is not a "+r.reference+" reference.");let o=Ss[(r.scheme||s.scheme||"").toLowerCase()];if(!r.unicodeSupport&&(!o||!o.unicodeSupport)&&s.host&&(r.domainHost||o&&o.domainHost)&&a===!1&&al(s.host))try{s.host=URL.domainToASCII(s.host.toLowerCase())}catch(u){s.error=s.error||"Host's domain name can not be converted to ASCII: "+u}(!o||o&&!o.skipNormalize)&&(n&&s.scheme!==void 0&&(s.scheme=unescape(s.scheme)),n&&s.userinfo!==void 0&&(s.userinfo=unescape(s.userinfo)),n&&s.host!==void 0&&(s.host=unescape(s.host)),s.path!==void 0&&s.path.length&&(s.path=escape(unescape(s.path))),s.fragment!==void 0&&s.fragment.length&&(s.fragment=encodeURI(decodeURIComponent(s.fragment)))),o&&o.parse&&o.parse(s,r)}else s.error=s.error||"URI can not be parsed.";return s}var Ps={SCHEMES:Ss,normalize:tl,resolve:rl,resolveComponents:gi,equal:sl,serialize:ce,parse:ve};ar.exports=Ps;ar.exports.default=Ps;ar.exports.fastUri=Ps});var wi=y(Ts=>{"use strict";Object.defineProperty(Ts,"__esModule",{value:!0});var vi=$i();vi.code='require("ajv/dist/runtime/uri").default';Ts.default=vi});var We=y(V=>{"use strict";Object.defineProperty(V,"__esModule",{value:!0});V.CodeGen=V.Name=V.nil=V.stringify=V.str=V._=V.KeywordCxt=void 0;var ol=wt();Object.defineProperty(V,"KeywordCxt",{enumerable:!0,get:function(){return ol.KeywordCxt}});var Je=b();Object.defineProperty(V,"_",{enumerable:!0,get:function(){return Je._}});Object.defineProperty(V,"str",{enumerable:!0,get:function(){return Je.str}});Object.defineProperty(V,"stringify",{enumerable:!0,get:function(){return Je.stringify}});Object.defineProperty(V,"nil",{enumerable:!0,get:function(){return Je.nil}});Object.defineProperty(V,"Name",{enumerable:!0,get:function(){return Je.Name}});Object.defineProperty(V,"CodeGen",{enumerable:!0,get:function(){return Je.CodeGen}});var ul=er(),Ti=bt(),cl=rs(),St=rr(),dl=b(),Pt=gt(),ir=_t(),Ns=q(),bi=ti(),ll=wi(),Ii=(e,t)=>new RegExp(e,t);Ii.code="new RegExp";var fl=["removeAdditional","useDefaults","coerceTypes"],ml=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),pl={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},hl={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},Ei=200;function yl(e){var t,r,s,n,a,i,o,u,d,c,l,h,p,f,m,_,g,N,T,A,w,ie,pe,Tr,Ir;let it=e.strict,Nr=(t=e.code)===null||t===void 0?void 0:t.optimize,Yn=Nr===!0||Nr===void 0?1:Nr||0,Bn=(s=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&s!==void 0?s:Ii,Zo=(n=e.uriResolver)!==null&&n!==void 0?n:ll.default;return{strictSchema:(i=(a=e.strictSchema)!==null&&a!==void 0?a:it)!==null&&i!==void 0?i:!0,strictNumbers:(u=(o=e.strictNumbers)!==null&&o!==void 0?o:it)!==null&&u!==void 0?u:!0,strictTypes:(c=(d=e.strictTypes)!==null&&d!==void 0?d:it)!==null&&c!==void 0?c:"log",strictTuples:(h=(l=e.strictTuples)!==null&&l!==void 0?l:it)!==null&&h!==void 0?h:"log",strictRequired:(f=(p=e.strictRequired)!==null&&p!==void 0?p:it)!==null&&f!==void 0?f:!1,code:e.code?{...e.code,optimize:Yn,regExp:Bn}:{optimize:Yn,regExp:Bn},loopRequired:(m=e.loopRequired)!==null&&m!==void 0?m:Ei,loopEnum:(_=e.loopEnum)!==null&&_!==void 0?_:Ei,meta:(g=e.meta)!==null&&g!==void 0?g:!0,messages:(N=e.messages)!==null&&N!==void 0?N:!0,inlineRefs:(T=e.inlineRefs)!==null&&T!==void 0?T:!0,schemaId:(A=e.schemaId)!==null&&A!==void 0?A:"$id",addUsedSchema:(w=e.addUsedSchema)!==null&&w!==void 0?w:!0,validateSchema:(ie=e.validateSchema)!==null&&ie!==void 0?ie:!0,validateFormats:(pe=e.validateFormats)!==null&&pe!==void 0?pe:!0,unicodeRegExp:(Tr=e.unicodeRegExp)!==null&&Tr!==void 0?Tr:!0,int32range:(Ir=e.int32range)!==null&&Ir!==void 0?Ir:!0,uriResolver:Zo}}var Tt=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...yl(t)};let{es5:r,lines:s}=this.opts.code;this.scope=new dl.ValueScope({scope:{},prefixes:ml,es5:r,lines:s}),this.logger=bl(t.logger);let n=t.validateFormats;t.validateFormats=!1,this.RULES=(0,cl.getRules)(),Si.call(this,pl,t,"NOT SUPPORTED"),Si.call(this,hl,t,"DEPRECATED","warn"),this._metaOpts=vl.call(this),t.formats&&gl.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&$l.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),_l.call(this),t.validateFormats=n}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:s}=this.opts,n=bi;s==="id"&&(n={...bi},n.id=n.$id,delete n.$id),r&&t&&this.addMetaSchema(n,n[s],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let s;if(typeof t=="string"){if(s=this.getSchema(t),!s)throw new Error(`no schema with key or ref "${t}"`)}else s=this.compile(t);let n=s(r);return"$async"in s||(this.errors=s.errors),n}compile(t,r){let s=this._addSchema(t,r);return s.validate||this._compileSchemaEnv(s)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:s}=this.opts;return n.call(this,t,r);async function n(c,l){await a.call(this,c.$schema);let h=this._addSchema(c,l);return h.validate||i.call(this,h)}async function a(c){c&&!this.getSchema(c)&&await n.call(this,{$ref:c},!0)}async function i(c){try{return this._compileSchemaEnv(c)}catch(l){if(!(l instanceof Ti.default))throw l;return o.call(this,l),await u.call(this,l.missingSchema),i.call(this,c)}}function o({missingSchema:c,missingRef:l}){if(this.refs[c])throw new Error(`AnySchema ${c} is loaded but ${l} cannot be resolved`)}async function u(c){let l=await d.call(this,c);this.refs[c]||await a.call(this,l.$schema),this.refs[c]||this.addSchema(l,c,r)}async function d(c){let l=this._loading[c];if(l)return l;try{return await(this._loading[c]=s(c))}finally{delete this._loading[c]}}}addSchema(t,r,s,n=this.opts.validateSchema){if(Array.isArray(t)){for(let i of t)this.addSchema(i,void 0,s,n);return this}let a;if(typeof t=="object"){let{schemaId:i}=this.opts;if(a=t[i],a!==void 0&&typeof a!="string")throw new Error(`schema ${i} must be string`)}return r=(0,Pt.normalizeId)(r||a),this._checkUnique(r),this.schemas[r]=this._addSchema(t,s,r,n,!0),this}addMetaSchema(t,r,s=this.opts.validateSchema){return this.addSchema(t,r,!0,s),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let s;if(s=t.$schema,s!==void 0&&typeof s!="string")throw new Error("$schema must be a string");if(s=s||this.opts.defaultMeta||this.defaultMeta(),!s)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let n=this.validate(s,t);if(!n&&r){let a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}return n}getSchema(t){let r;for(;typeof(r=Pi.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:s}=this.opts,n=new St.SchemaEnv({schema:{},schemaId:s});if(r=St.resolveSchema.call(this,n,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=Pi.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let s=t[this.opts.schemaId];return s&&(s=(0,Pt.normalizeId)(s),delete this.schemas[s],delete this.refs[s]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let s;if(typeof t=="string")s=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=s);else if(typeof t=="object"&&r===void 0){if(r=t,s=r.keyword,Array.isArray(s)&&!s.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(Sl.call(this,s,r),!r)return(0,Ns.eachItem)(s,a=>Is.call(this,a)),this;Tl.call(this,r);let n={...r,type:(0,ir.getJSONTypes)(r.type),schemaType:(0,ir.getJSONTypes)(r.schemaType)};return(0,Ns.eachItem)(s,n.type.length===0?a=>Is.call(this,a,n):a=>n.type.forEach(i=>Is.call(this,a,n,i))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let s of r.rules){let n=s.rules.findIndex(a=>a.keyword===t);n>=0&&s.rules.splice(n,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:s="data"}={}){return!t||t.length===0?"No errors":t.map(n=>`${s}${n.instancePath} ${n.message}`).reduce((n,a)=>n+r+a)}$dataMetaSchema(t,r){let s=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let n of r){let a=n.split("/").slice(1),i=t;for(let o of a)i=i[o];for(let o in s){let u=s[o];if(typeof u!="object")continue;let{$data:d}=u.definition,c=i[o];d&&c&&(i[o]=Ni(c))}}return t}_removeAllSchemas(t,r){for(let s in t){let n=t[s];(!r||r.test(s))&&(typeof n=="string"?delete t[s]:n&&!n.meta&&(this._cache.delete(n.schema),delete t[s]))}}_addSchema(t,r,s,n=this.opts.validateSchema,a=this.opts.addUsedSchema){let i,{schemaId:o}=this.opts;if(typeof t=="object")i=t[o];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let u=this._cache.get(t);if(u!==void 0)return u;s=(0,Pt.normalizeId)(i||s);let d=Pt.getSchemaRefs.call(this,t,s);return u=new St.SchemaEnv({schema:t,schemaId:o,meta:r,baseId:s,localRefs:d}),this._cache.set(u.schema,u),a&&!s.startsWith("#")&&(s&&this._checkUnique(s),this.refs[s]=u),n&&this.validateSchema(t,!0),u}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):St.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{St.compileSchema.call(this,t)}finally{this.opts=r}}};Tt.ValidationError=ul.default;Tt.MissingRefError=Ti.default;V.default=Tt;function Si(e,t,r,s="error"){for(let n in e){let a=n;a in t&&this.logger[s](`${r}: option ${n}. ${e[a]}`)}}function Pi(e){return e=(0,Pt.normalizeId)(e),this.schemas[e]||this.refs[e]}function _l(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function gl(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function $l(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function vl(){let e={...this.opts};for(let t of fl)delete e[t];return e}var wl={log(){},warn(){},error(){}};function bl(e){if(e===!1)return wl;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var El=/^[a-z_$][a-z0-9_$:-]*$/i;function Sl(e,t){let{RULES:r}=this;if((0,Ns.eachItem)(e,s=>{if(r.keywords[s])throw new Error(`Keyword ${s} is already defined`);if(!El.test(s))throw new Error(`Keyword ${s} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function Is(e,t,r){var s;let n=t?.post;if(r&&n)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:a}=this,i=n?a.post:a.rules.find(({type:u})=>u===r);if(i||(i={type:r,rules:[]},a.rules.push(i)),a.keywords[e]=!0,!t)return;let o={keyword:e,definition:{...t,type:(0,ir.getJSONTypes)(t.type),schemaType:(0,ir.getJSONTypes)(t.schemaType)}};t.before?Pl.call(this,i,o,t.before):i.rules.push(o),a.all[e]=o,(s=t.implements)===null||s===void 0||s.forEach(u=>this.addKeyword(u))}function Pl(e,t,r){let s=e.rules.findIndex(n=>n.keyword===r);s>=0?e.rules.splice(s,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function Tl(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=Ni(t)),e.validateSchema=this.compile(t,!0))}var Il={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Ni(e){return{anyOf:[e,Il]}}});var Os=y(ze=>{"use strict";Object.defineProperty(ze,"__esModule",{value:!0});ze.callRef=ze.getValidate=void 0;var Nl=bt(),Oi=Z(),J=b(),Ze=ge(),ki=rr(),or=q(),Ol={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:s}=e,{baseId:n,schemaEnv:a,validateName:i,opts:o,self:u}=s,{root:d}=a;if((r==="#"||r==="#/")&&n===d.baseId)return l();let c=ki.resolveRef.call(u,d,n,r);if(c===void 0)throw new Nl.default(s.opts.uriResolver,n,r);if(c instanceof ki.SchemaEnv)return h(c);return p(c);function l(){if(a===d)return ur(e,i,a,a.$async);let f=t.scopeValue("root",{ref:d});return ur(e,(0,J._)`${f}.validate`,d,d.$async)}function h(f){let m=qi(e,f);ur(e,m,f,f.$async)}function p(f){let m=t.scopeValue("schema",o.code.source===!0?{ref:f,code:(0,J.stringify)(f)}:{ref:f}),_=t.name("valid"),g=e.subschema({schema:f,dataTypes:[],schemaPath:J.nil,topSchemaRef:m,errSchemaPath:r},_);e.mergeEvaluated(g),e.ok(_)}}};function qi(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,J._)`${r.scopeValue("wrapper",{ref:t})}.validate`}ze.getValidate=qi;function ur(e,t,r,s){let{gen:n,it:a}=e,{allErrors:i,schemaEnv:o,opts:u}=a,d=u.passContext?Ze.default.this:J.nil;s?c():l();function c(){if(!o.$async)throw new Error("async schema referenced by sync schema");let f=n.let("valid");n.try(()=>{n.code((0,J._)`await ${(0,Oi.callValidateCode)(e,t,d)}`),p(t),i||n.assign(f,!0)},m=>{n.if((0,J._)`!(${m} instanceof ${a.ValidationError})`,()=>n.throw(m)),h(m),i||n.assign(f,!1)}),e.ok(f)}function l(){e.result((0,Oi.callValidateCode)(e,t,d),()=>p(t),()=>h(t))}function h(f){let m=(0,J._)`${f}.errors`;n.assign(Ze.default.vErrors,(0,J._)`${Ze.default.vErrors} === null ? ${m} : ${Ze.default.vErrors}.concat(${m})`),n.assign(Ze.default.errors,(0,J._)`${Ze.default.vErrors}.length`)}function p(f){var m;if(!a.opts.unevaluated)return;let _=(m=r?.validate)===null||m===void 0?void 0:m.evaluated;if(a.props!==!0)if(_&&!_.dynamicProps)_.props!==void 0&&(a.props=or.mergeEvaluated.props(n,_.props,a.props));else{let g=n.var("props",(0,J._)`${f}.evaluated.props`);a.props=or.mergeEvaluated.props(n,g,a.props,J.Name)}if(a.items!==!0)if(_&&!_.dynamicItems)_.items!==void 0&&(a.items=or.mergeEvaluated.items(n,_.items,a.items));else{let g=n.var("items",(0,J._)`${f}.evaluated.items`);a.items=or.mergeEvaluated.items(n,g,a.items,J.Name)}}}ze.callRef=ur;ze.default=Ol});var Ri=y(ks=>{"use strict";Object.defineProperty(ks,"__esModule",{value:!0});var kl=Os(),ql=["$schema","id","$defs",{keyword:"$comment"},"definitions",kl.default];ks.default=ql});var ji=y(As=>{"use strict";Object.defineProperty(As,"__esModule",{value:!0});var qs=We(),Rl=b(),Ne=Rl.operators,Rs={maximum:{exclusive:"exclusiveMaximum",ops:[{okStr:"<=",ok:Ne.LTE,fail:Ne.GT},{okStr:"<",ok:Ne.LT,fail:Ne.GTE}]},minimum:{exclusive:"exclusiveMinimum",ops:[{okStr:">=",ok:Ne.GTE,fail:Ne.LT},{okStr:">",ok:Ne.GT,fail:Ne.LTE}]}},jl={message:e=>qs.str`must be ${js(e).okStr} ${e.schemaCode}`,params:e=>qs._`{comparison: ${js(e).okStr}, limit: ${e.schemaCode}}`},Al={keyword:Object.keys(Rs),type:"number",schemaType:"number",$data:!0,error:jl,code(e){let{data:t,schemaCode:r}=e;e.fail$data(qs._`${t} ${js(e).fail} ${r} || isNaN(${t})`)}};function js(e){var t;let r=e.keyword,s=!((t=e.parentSchema)===null||t===void 0)&&t[Rs[r].exclusive]?1:0;return Rs[r].ops[s]}As.default=Al});var Ci=y(Cs=>{"use strict";Object.defineProperty(Cs,"__esModule",{value:!0});var Ai={exclusiveMaximum:"maximum",exclusiveMinimum:"minimum"},Cl={keyword:Object.keys(Ai),type:"number",schemaType:"boolean",code({keyword:e,parentSchema:t}){let r=Ai[e];if(t[r]===void 0)throw new Error(`${e} can only be used with ${r}`)}};Cs.default=Cl});var Ds=y(Ms=>{"use strict";Object.defineProperty(Ms,"__esModule",{value:!0});var It=b(),Ml={message:({schemaCode:e})=>(0,It.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,It._)`{multipleOf: ${e}}`},Dl={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:Ml,code(e){let{gen:t,data:r,schemaCode:s,it:n}=e,a=n.opts.multipleOfPrecision,i=t.let("res"),o=a?(0,It._)`Math.abs(Math.round(${i}) - ${i}) > 1e-${a}`:(0,It._)`${i} !== parseInt(${i})`;e.fail$data((0,It._)`(${s} === 0 || (${i} = ${r}/${s}, ${o}))`)}};Ms.default=Dl});var Di=y(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});function Mi(e){let t=e.length,r=0,s=0,n;for(;s<t;)r++,n=e.charCodeAt(s++),n>=55296&&n<=56319&&s<t&&(n=e.charCodeAt(s),(n&64512)===56320&&s++);return r}zs.default=Mi;Mi.code='require("ajv/dist/runtime/ucs2length").default'});var xs=y(Vs=>{"use strict";Object.defineProperty(Vs,"__esModule",{value:!0});var Ve=b(),zl=q(),Vl=Di(),xl={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,Ve.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,Ve._)`{limit: ${e}}`},Ll={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:xl,code(e){let{keyword:t,data:r,schemaCode:s,it:n}=e,a=t==="maxLength"?Ve.operators.GT:Ve.operators.LT,i=n.opts.unicode===!1?(0,Ve._)`${r}.length`:(0,Ve._)`${(0,zl.useFunc)(e.gen,Vl.default)}(${r})`;e.fail$data((0,Ve._)`${i} ${a} ${s}`)}};Vs.default=Ll});var Us=y(Ls=>{"use strict";Object.defineProperty(Ls,"__esModule",{value:!0});var Ul=Z(),cr=b(),Fl={message:({schemaCode:e})=>(0,cr.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,cr._)`{pattern: ${e}}`},Kl={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Fl,code(e){let{data:t,$data:r,schema:s,schemaCode:n,it:a}=e,i=a.opts.unicodeRegExp?"u":"",o=r?(0,cr._)`(new RegExp(${n}, ${i}))`:(0,Ul.usePattern)(e,s);e.fail$data((0,cr._)`!${o}.test(${t})`)}};Ls.default=Kl});var Ks=y(Fs=>{"use strict";Object.defineProperty(Fs,"__esModule",{value:!0});var Nt=b(),Gl={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,Nt.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,Nt._)`{limit: ${e}}`},Hl={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Gl,code(e){let{keyword:t,data:r,schemaCode:s}=e,n=t==="maxProperties"?Nt.operators.GT:Nt.operators.LT;e.fail$data((0,Nt._)`Object.keys(${r}).length ${n} ${s}`)}};Fs.default=Hl});var Hs=y(Gs=>{"use strict";Object.defineProperty(Gs,"__esModule",{value:!0});var Ot=Z(),kt=b(),Yl=q(),Bl={message:({params:{missingProperty:e}})=>(0,kt.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,kt._)`{missingProperty: ${e}}`},Jl={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Bl,code(e){let{gen:t,schema:r,schemaCode:s,data:n,$data:a,it:i}=e,{opts:o}=i;if(!a&&r.length===0)return;let u=r.length>=o.loopRequired;if(i.allErrors?d():c(),o.strictRequired){let p=e.parentSchema.properties,{definedProperties:f}=e.it;for(let m of r)if(p?.[m]===void 0&&!f.has(m)){let _=i.schemaEnv.baseId+i.errSchemaPath,g=`required property "${m}" is not defined at "${_}" (strictRequired)`;(0,Yl.checkStrictMode)(i,g,i.opts.strictRequired)}}function d(){if(u||a)e.block$data(kt.nil,l);else for(let p of r)(0,Ot.checkReportMissingProp)(e,p)}function c(){let p=t.let("missing");if(u||a){let f=t.let("valid",!0);e.block$data(f,()=>h(p,f)),e.ok(f)}else t.if((0,Ot.checkMissingProp)(e,r,p)),(0,Ot.reportMissingProp)(e,p),t.else()}function l(){t.forOf("prop",s,p=>{e.setParams({missingProperty:p}),t.if((0,Ot.noPropertyInData)(t,n,p,o.ownProperties),()=>e.error())})}function h(p,f){e.setParams({missingProperty:p}),t.forOf(p,s,()=>{t.assign(f,(0,Ot.propertyInData)(t,n,p,o.ownProperties)),t.if((0,kt.not)(f),()=>{e.error(),t.break()})},kt.nil)}}};Gs.default=Jl});var Bs=y(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});var qt=b(),Wl={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,qt.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,qt._)`{limit: ${e}}`},Zl={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Wl,code(e){let{keyword:t,data:r,schemaCode:s}=e,n=t==="maxItems"?qt.operators.GT:qt.operators.LT;e.fail$data((0,qt._)`${r}.length ${n} ${s}`)}};Ys.default=Zl});var dr=y(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});var zi=ds();zi.code='require("ajv/dist/runtime/equal").default';Js.default=zi});var Xs=y(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});var Ws=_t(),x=b(),Xl=q(),Ql=dr(),ef={message:({params:{i:e,j:t}})=>(0,x.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,x._)`{i: ${e}, j: ${t}}`},tf={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:ef,code(e){let{gen:t,data:r,$data:s,schema:n,parentSchema:a,schemaCode:i,it:o}=e;if(!s&&!n)return;let u=t.let("valid"),d=a.items?(0,Ws.getSchemaTypes)(a.items):[];e.block$data(u,c,(0,x._)`${i} === false`),e.ok(u);function c(){let f=t.let("i",(0,x._)`${r}.length`),m=t.let("j");e.setParams({i:f,j:m}),t.assign(u,!0),t.if((0,x._)`${f} > 1`,()=>(l()?h:p)(f,m))}function l(){return d.length>0&&!d.some(f=>f==="object"||f==="array")}function h(f,m){let _=t.name("item"),g=(0,Ws.checkDataTypes)(d,_,o.opts.strictNumbers,Ws.DataType.Wrong),N=t.const("indices",(0,x._)`{}`);t.for((0,x._)`;${f}--;`,()=>{t.let(_,(0,x._)`${r}[${f}]`),t.if(g,(0,x._)`continue`),d.length>1&&t.if((0,x._)`typeof ${_} == "string"`,(0,x._)`${_} += "_"`),t.if((0,x._)`typeof ${N}[${_}] == "number"`,()=>{t.assign(m,(0,x._)`${N}[${_}]`),e.error(),t.assign(u,!1).break()}).code((0,x._)`${N}[${_}] = ${f}`)})}function p(f,m){let _=(0,Xl.useFunc)(t,Ql.default),g=t.name("outer");t.label(g).for((0,x._)`;${f}--;`,()=>t.for((0,x._)`${m} = ${f}; ${m}--;`,()=>t.if((0,x._)`${_}(${r}[${f}], ${r}[${m}])`,()=>{e.error(),t.assign(u,!1).break(g)})))}}};Zs.default=tf});var tn=y(en=>{"use strict";Object.defineProperty(en,"__esModule",{value:!0});var Qs=b(),rf=q(),sf=dr(),nf={message:"must be equal to constant",params:({schemaCode:e})=>(0,Qs._)`{allowedValue: ${e}}`},af={keyword:"const",$data:!0,error:nf,code(e){let{gen:t,data:r,$data:s,schemaCode:n,schema:a}=e;s||a&&typeof a=="object"?e.fail$data((0,Qs._)`!${(0,rf.useFunc)(t,sf.default)}(${r}, ${n})`):e.fail((0,Qs._)`${a} !== ${r}`)}};en.default=af});var sn=y(rn=>{"use strict";Object.defineProperty(rn,"__esModule",{value:!0});var Rt=b(),of=q(),uf=dr(),cf={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,Rt._)`{allowedValues: ${e}}`},df={keyword:"enum",schemaType:"array",$data:!0,error:cf,code(e){let{gen:t,data:r,$data:s,schema:n,schemaCode:a,it:i}=e;if(!s&&n.length===0)throw new Error("enum must have non-empty array");let o=n.length>=i.opts.loopEnum,u,d=()=>u??(u=(0,of.useFunc)(t,uf.default)),c;if(o||s)c=t.let("valid"),e.block$data(c,l);else{if(!Array.isArray(n))throw new Error("ajv implementation error");let p=t.const("vSchema",a);c=(0,Rt.or)(...n.map((f,m)=>h(p,m)))}e.pass(c);function l(){t.assign(c,!1),t.forOf("v",a,p=>t.if((0,Rt._)`${d()}(${r}, ${p})`,()=>t.assign(c,!0).break()))}function h(p,f){let m=n[f];return typeof m=="object"&&m!==null?(0,Rt._)`${d()}(${r}, ${p}[${f}])`:(0,Rt._)`${r} === ${m}`}}};rn.default=df});var Vi=y(nn=>{"use strict";Object.defineProperty(nn,"__esModule",{value:!0});var lf=ji(),ff=Ci(),mf=Ds(),pf=xs(),hf=Us(),yf=Ks(),_f=Hs(),gf=Bs(),$f=Xs(),vf=tn(),wf=sn(),bf=[lf.default,ff.default,mf.default,pf.default,hf.default,yf.default,_f.default,gf.default,$f.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},vf.default,wf.default];nn.default=bf});var on=y(jt=>{"use strict";Object.defineProperty(jt,"__esModule",{value:!0});jt.validateAdditionalItems=void 0;var xe=b(),an=q(),Ef={message:({params:{len:e}})=>(0,xe.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,xe._)`{limit: ${e}}`},Sf={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Ef,code(e){let{parentSchema:t,it:r}=e,{items:s}=t;if(!Array.isArray(s)){(0,an.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}xi(e,s)}};function xi(e,t){let{gen:r,schema:s,data:n,keyword:a,it:i}=e;i.items=!0;let o=r.const("len",(0,xe._)`${n}.length`);if(s===!1)e.setParams({len:t.length}),e.pass((0,xe._)`${o} <= ${t.length}`);else if(typeof s=="object"&&!(0,an.alwaysValidSchema)(i,s)){let d=r.var("valid",(0,xe._)`${o} <= ${t.length}`);r.if((0,xe.not)(d),()=>u(d)),e.ok(d)}function u(d){r.forRange("i",t.length,o,c=>{e.subschema({keyword:a,dataProp:c,dataPropType:an.Type.Num},d),i.allErrors||r.if((0,xe.not)(d),()=>r.break())})}}jt.validateAdditionalItems=xi;jt.default=Sf});var un=y(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.validateTuple=void 0;var Li=b(),lr=q(),Pf=Z(),Tf={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return Ui(e,"additionalItems",t);r.items=!0,!(0,lr.alwaysValidSchema)(r,t)&&e.ok((0,Pf.validateArray)(e))}};function Ui(e,t,r=e.schema){let{gen:s,parentSchema:n,data:a,keyword:i,it:o}=e;c(n),o.opts.unevaluated&&r.length&&o.items!==!0&&(o.items=lr.mergeEvaluated.items(s,r.length,o.items));let u=s.name("valid"),d=s.const("len",(0,Li._)`${a}.length`);r.forEach((l,h)=>{(0,lr.alwaysValidSchema)(o,l)||(s.if((0,Li._)`${d} > ${h}`,()=>e.subschema({keyword:i,schemaProp:h,dataProp:h},u)),e.ok(u))});function c(l){let{opts:h,errSchemaPath:p}=o,f=r.length,m=f===l.minItems&&(f===l.maxItems||l[t]===!1);if(h.strictTuples&&!m){let _=`"${i}" is ${f}-tuple, but minItems or maxItems/${t} are not specified or different at path "${p}"`;(0,lr.checkStrictMode)(o,_,h.strictTuples)}}}At.validateTuple=Ui;At.default=Tf});var Fi=y(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});var If=un(),Nf={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,If.validateTuple)(e,"items")};cn.default=Nf});var Gi=y(dn=>{"use strict";Object.defineProperty(dn,"__esModule",{value:!0});var Ki=b(),Of=q(),kf=Z(),qf=on(),Rf={message:({params:{len:e}})=>(0,Ki.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Ki._)`{limit: ${e}}`},jf={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:Rf,code(e){let{schema:t,parentSchema:r,it:s}=e,{prefixItems:n}=r;s.items=!0,!(0,Of.alwaysValidSchema)(s,t)&&(n?(0,qf.validateAdditionalItems)(e,n):e.ok((0,kf.validateArray)(e)))}};dn.default=jf});var Hi=y(ln=>{"use strict";Object.defineProperty(ln,"__esModule",{value:!0});var Q=b(),fr=q(),Af={message:({params:{min:e,max:t}})=>t===void 0?(0,Q.str)`must contain at least ${e} valid item(s)`:(0,Q.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,Q._)`{minContains: ${e}}`:(0,Q._)`{minContains: ${e}, maxContains: ${t}}`},Cf={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:Af,code(e){let{gen:t,schema:r,parentSchema:s,data:n,it:a}=e,i,o,{minContains:u,maxContains:d}=s;a.opts.next?(i=u===void 0?1:u,o=d):i=1;let c=t.const("len",(0,Q._)`${n}.length`);if(e.setParams({min:i,max:o}),o===void 0&&i===0){(0,fr.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(o!==void 0&&i>o){(0,fr.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,fr.alwaysValidSchema)(a,r)){let m=(0,Q._)`${c} >= ${i}`;o!==void 0&&(m=(0,Q._)`${m} && ${c} <= ${o}`),e.pass(m);return}a.items=!0;let l=t.name("valid");o===void 0&&i===1?p(l,()=>t.if(l,()=>t.break())):i===0?(t.let(l,!0),o!==void 0&&t.if((0,Q._)`${n}.length > 0`,h)):(t.let(l,!1),h()),e.result(l,()=>e.reset());function h(){let m=t.name("_valid"),_=t.let("count",0);p(m,()=>t.if(m,()=>f(_)))}function p(m,_){t.forRange("i",0,c,g=>{e.subschema({keyword:"contains",dataProp:g,dataPropType:fr.Type.Num,compositeRule:!0},m),_()})}function f(m){t.code((0,Q._)`${m}++`),o===void 0?t.if((0,Q._)`${m} >= ${i}`,()=>t.assign(l,!0).break()):(t.if((0,Q._)`${m} > ${o}`,()=>t.assign(l,!1).break()),i===1?t.assign(l,!0):t.if((0,Q._)`${m} >= ${i}`,()=>t.assign(l,!0)))}}};ln.default=Cf});var Ji=y(de=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.validateSchemaDeps=de.validatePropertyDeps=de.error=void 0;var fn=b(),Mf=q(),Ct=Z();de.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let s=t===1?"property":"properties";return(0,fn.str)`must have ${s} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:s}})=>(0,fn._)`{property: ${e}, missingProperty: ${s}, depsCount: ${t}, deps: ${r}}`};var Df={keyword:"dependencies",type:"object",schemaType:"object",error:de.error,code(e){let[t,r]=zf(e);Yi(e,t),Bi(e,r)}};function zf({schema:e}){let t={},r={};for(let s in e){if(s==="__proto__")continue;let n=Array.isArray(e[s])?t:r;n[s]=e[s]}return[t,r]}function Yi(e,t=e.schema){let{gen:r,data:s,it:n}=e;if(Object.keys(t).length===0)return;let a=r.let("missing");for(let i in t){let o=t[i];if(o.length===0)continue;let u=(0,Ct.propertyInData)(r,s,i,n.opts.ownProperties);e.setParams({property:i,depsCount:o.length,deps:o.join(", ")}),n.allErrors?r.if(u,()=>{for(let d of o)(0,Ct.checkReportMissingProp)(e,d)}):(r.if((0,fn._)`${u} && (${(0,Ct.checkMissingProp)(e,o,a)})`),(0,Ct.reportMissingProp)(e,a),r.else())}}de.validatePropertyDeps=Yi;function Bi(e,t=e.schema){let{gen:r,data:s,keyword:n,it:a}=e,i=r.name("valid");for(let o in t)(0,Mf.alwaysValidSchema)(a,t[o])||(r.if((0,Ct.propertyInData)(r,s,o,a.opts.ownProperties),()=>{let u=e.subschema({keyword:n,schemaProp:o},i);e.mergeValidEvaluated(u,i)},()=>r.var(i,!0)),e.ok(i))}de.validateSchemaDeps=Bi;de.default=Df});var Zi=y(mn=>{"use strict";Object.defineProperty(mn,"__esModule",{value:!0});var Wi=b(),Vf=q(),xf={message:"property name must be valid",params:({params:e})=>(0,Wi._)`{propertyName: ${e.propertyName}}`},Lf={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:xf,code(e){let{gen:t,schema:r,data:s,it:n}=e;if((0,Vf.alwaysValidSchema)(n,r))return;let a=t.name("valid");t.forIn("key",s,i=>{e.setParams({propertyName:i}),e.subschema({keyword:"propertyNames",data:i,dataTypes:["string"],propertyName:i,compositeRule:!0},a),t.if((0,Wi.not)(a),()=>{e.error(!0),n.allErrors||t.break()})}),e.ok(a)}};mn.default=Lf});var hn=y(pn=>{"use strict";Object.defineProperty(pn,"__esModule",{value:!0});var mr=Z(),ne=b(),Uf=ge(),pr=q(),Ff={message:"must NOT have additional properties",params:({params:e})=>(0,ne._)`{additionalProperty: ${e.additionalProperty}}`},Kf={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:Ff,code(e){let{gen:t,schema:r,parentSchema:s,data:n,errsCount:a,it:i}=e;if(!a)throw new Error("ajv implementation error");let{allErrors:o,opts:u}=i;if(i.props=!0,u.removeAdditional!=="all"&&(0,pr.alwaysValidSchema)(i,r))return;let d=(0,mr.allSchemaProperties)(s.properties),c=(0,mr.allSchemaProperties)(s.patternProperties);l(),e.ok((0,ne._)`${a} === ${Uf.default.errors}`);function l(){t.forIn("key",n,_=>{!d.length&&!c.length?f(_):t.if(h(_),()=>f(_))})}function h(_){let g;if(d.length>8){let N=(0,pr.schemaRefOrVal)(i,s.properties,"properties");g=(0,mr.isOwnProperty)(t,N,_)}else d.length?g=(0,ne.or)(...d.map(N=>(0,ne._)`${_} === ${N}`)):g=ne.nil;return c.length&&(g=(0,ne.or)(g,...c.map(N=>(0,ne._)`${(0,mr.usePattern)(e,N)}.test(${_})`))),(0,ne.not)(g)}function p(_){t.code((0,ne._)`delete ${n}[${_}]`)}function f(_){if(u.removeAdditional==="all"||u.removeAdditional&&r===!1){p(_);return}if(r===!1){e.setParams({additionalProperty:_}),e.error(),o||t.break();return}if(typeof r=="object"&&!(0,pr.alwaysValidSchema)(i,r)){let g=t.name("valid");u.removeAdditional==="failing"?(m(_,g,!1),t.if((0,ne.not)(g),()=>{e.reset(),p(_)})):(m(_,g),o||t.if((0,ne.not)(g),()=>t.break()))}}function m(_,g,N){let T={keyword:"additionalProperties",dataProp:_,dataPropType:pr.Type.Str};N===!1&&Object.assign(T,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(T,g)}}};pn.default=Kf});var eo=y(_n=>{"use strict";Object.defineProperty(_n,"__esModule",{value:!0});var Gf=wt(),Xi=Z(),yn=q(),Qi=hn(),Hf={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:s,data:n,it:a}=e;a.opts.removeAdditional==="all"&&s.additionalProperties===void 0&&Qi.default.code(new Gf.KeywordCxt(a,Qi.default,"additionalProperties"));let i=(0,Xi.allSchemaProperties)(r);for(let l of i)a.definedProperties.add(l);a.opts.unevaluated&&i.length&&a.props!==!0&&(a.props=yn.mergeEvaluated.props(t,(0,yn.toHash)(i),a.props));let o=i.filter(l=>!(0,yn.alwaysValidSchema)(a,r[l]));if(o.length===0)return;let u=t.name("valid");for(let l of o)d(l)?c(l):(t.if((0,Xi.propertyInData)(t,n,l,a.opts.ownProperties)),c(l),a.allErrors||t.else().var(u,!0),t.endIf()),e.it.definedProperties.add(l),e.ok(u);function d(l){return a.opts.useDefaults&&!a.compositeRule&&r[l].default!==void 0}function c(l){e.subschema({keyword:"properties",schemaProp:l,dataProp:l},u)}}};_n.default=Hf});var no=y(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});var to=Z(),hr=b(),ro=q(),so=q(),Yf={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:s,parentSchema:n,it:a}=e,{opts:i}=a,o=(0,to.allSchemaProperties)(r),u=o.filter(m=>(0,ro.alwaysValidSchema)(a,r[m]));if(o.length===0||u.length===o.length&&(!a.opts.unevaluated||a.props===!0))return;let d=i.strictSchema&&!i.allowMatchingProperties&&n.properties,c=t.name("valid");a.props!==!0&&!(a.props instanceof hr.Name)&&(a.props=(0,so.evaluatedPropsToName)(t,a.props));let{props:l}=a;h();function h(){for(let m of o)d&&p(m),a.allErrors?f(m):(t.var(c,!0),f(m),t.if(c))}function p(m){for(let _ in d)new RegExp(m).test(_)&&(0,ro.checkStrictMode)(a,`property ${_} matches pattern ${m} (use allowMatchingProperties)`)}function f(m){t.forIn("key",s,_=>{t.if((0,hr._)`${(0,to.usePattern)(e,m)}.test(${_})`,()=>{let g=u.includes(m);g||e.subschema({keyword:"patternProperties",schemaProp:m,dataProp:_,dataPropType:so.Type.Str},c),a.opts.unevaluated&&l!==!0?t.assign((0,hr._)`${l}[${_}]`,!0):!g&&!a.allErrors&&t.if((0,hr.not)(c),()=>t.break())})})}}};gn.default=Yf});var ao=y($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});var Bf=q(),Jf={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:s}=e;if((0,Bf.alwaysValidSchema)(s,r)){e.fail();return}let n=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},n),e.failResult(n,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};$n.default=Jf});var io=y(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});var Wf=Z(),Zf={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:Wf.validateUnion,error:{message:"must match a schema in anyOf"}};vn.default=Zf});var oo=y(wn=>{"use strict";Object.defineProperty(wn,"__esModule",{value:!0});var yr=b(),Xf=q(),Qf={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,yr._)`{passingSchemas: ${e.passing}}`},em={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:Qf,code(e){let{gen:t,schema:r,parentSchema:s,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(n.opts.discriminator&&s.discriminator)return;let a=r,i=t.let("valid",!1),o=t.let("passing",null),u=t.name("_valid");e.setParams({passing:o}),t.block(d),e.result(i,()=>e.reset(),()=>e.error(!0));function d(){a.forEach((c,l)=>{let h;(0,Xf.alwaysValidSchema)(n,c)?t.var(u,!0):h=e.subschema({keyword:"oneOf",schemaProp:l,compositeRule:!0},u),l>0&&t.if((0,yr._)`${u} && ${i}`).assign(i,!1).assign(o,(0,yr._)`[${o}, ${l}]`).else(),t.if(u,()=>{t.assign(i,!0),t.assign(o,l),h&&e.mergeEvaluated(h,yr.Name)})})}}};wn.default=em});var uo=y(bn=>{"use strict";Object.defineProperty(bn,"__esModule",{value:!0});var tm=q(),rm={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:s}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let n=t.name("valid");r.forEach((a,i)=>{if((0,tm.alwaysValidSchema)(s,a))return;let o=e.subschema({keyword:"allOf",schemaProp:i},n);e.ok(n),e.mergeEvaluated(o)})}};bn.default=rm});var fo=y(En=>{"use strict";Object.defineProperty(En,"__esModule",{value:!0});var _r=b(),lo=q(),sm={message:({params:e})=>(0,_r.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,_r._)`{failingKeyword: ${e.ifClause}}`},nm={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:sm,code(e){let{gen:t,parentSchema:r,it:s}=e;r.then===void 0&&r.else===void 0&&(0,lo.checkStrictMode)(s,'"if" without "then" and "else" is ignored');let n=co(s,"then"),a=co(s,"else");if(!n&&!a)return;let i=t.let("valid",!0),o=t.name("_valid");if(u(),e.reset(),n&&a){let c=t.let("ifClause");e.setParams({ifClause:c}),t.if(o,d("then",c),d("else",c))}else n?t.if(o,d("then")):t.if((0,_r.not)(o),d("else"));e.pass(i,()=>e.error(!0));function u(){let c=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},o);e.mergeEvaluated(c)}function d(c,l){return()=>{let h=e.subschema({keyword:c},o);t.assign(i,o),e.mergeValidEvaluated(h,i),l?t.assign(l,(0,_r._)`${c}`):e.setParams({ifClause:c})}}}};function co(e,t){let r=e.schema[t];return r!==void 0&&!(0,lo.alwaysValidSchema)(e,r)}En.default=nm});var mo=y(Sn=>{"use strict";Object.defineProperty(Sn,"__esModule",{value:!0});var am=q(),im={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,am.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};Sn.default=im});var Tn=y(Pn=>{"use strict";Object.defineProperty(Pn,"__esModule",{value:!0});var om=on(),um=Fi(),cm=un(),dm=Gi(),lm=Hi(),fm=Ji(),mm=Zi(),pm=hn(),hm=eo(),ym=no(),_m=ao(),gm=io(),$m=oo(),vm=uo(),wm=fo(),bm=mo();function Em(e=!1){let t=[_m.default,gm.default,$m.default,vm.default,wm.default,bm.default,mm.default,pm.default,fm.default,hm.default,ym.default];return e?t.push(um.default,dm.default):t.push(om.default,cm.default),t.push(lm.default),t}Pn.default=Em});var po=y(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});var D=b(),Sm={message:({schemaCode:e})=>(0,D.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,D._)`{format: ${e}}`},Pm={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Sm,code(e,t){let{gen:r,data:s,$data:n,schema:a,schemaCode:i,it:o}=e,{opts:u,errSchemaPath:d,schemaEnv:c,self:l}=o;if(!u.validateFormats)return;n?h():p();function h(){let f=r.scopeValue("formats",{ref:l.formats,code:u.code.formats}),m=r.const("fDef",(0,D._)`${f}[${i}]`),_=r.let("fType"),g=r.let("format");r.if((0,D._)`typeof ${m} == "object" && !(${m} instanceof RegExp)`,()=>r.assign(_,(0,D._)`${m}.type || "string"`).assign(g,(0,D._)`${m}.validate`),()=>r.assign(_,(0,D._)`"string"`).assign(g,m)),e.fail$data((0,D.or)(N(),T()));function N(){return u.strictSchema===!1?D.nil:(0,D._)`${i} && !${g}`}function T(){let A=c.$async?(0,D._)`(${m}.async ? await ${g}(${s}) : ${g}(${s}))`:(0,D._)`${g}(${s})`,w=(0,D._)`(typeof ${g} == "function" ? ${A} : ${g}.test(${s}))`;return(0,D._)`${g} && ${g} !== true && ${_} === ${t} && !${w}`}}function p(){let f=l.formats[a];if(!f){N();return}if(f===!0)return;let[m,_,g]=T(f);m===t&&e.pass(A());function N(){if(u.strictSchema===!1){l.logger.warn(w());return}throw new Error(w());function w(){return`unknown format "${a}" ignored in schema at path "${d}"`}}function T(w){let ie=w instanceof RegExp?(0,D.regexpCode)(w):u.code.formats?(0,D._)`${u.code.formats}${(0,D.getProperty)(a)}`:void 0,pe=r.scopeValue("formats",{key:a,ref:w,code:ie});return typeof w=="object"&&!(w instanceof RegExp)?[w.type||"string",w.validate,(0,D._)`${pe}.validate`]:["string",w,pe]}function A(){if(typeof f=="object"&&!(f instanceof RegExp)&&f.async){if(!c.$async)throw new Error("async format in sync schema");return(0,D._)`await ${g}(${s})`}return typeof _=="function"?(0,D._)`${g}(${s})`:(0,D._)`${g}.test(${s})`}}}};In.default=Pm});var On=y(Nn=>{"use strict";Object.defineProperty(Nn,"__esModule",{value:!0});var Tm=po(),Im=[Tm.default];Nn.default=Im});var ho=y(kn=>{"use strict";Object.defineProperty(kn,"__esModule",{value:!0});var Nm=Ri(),Om=Vi(),km=Tn(),qm=On(),Rm=["title","description","default"],jm=[Nm.default,Om.default,km.default(),qm.default,Rm];kn.default=jm});var _o=y(gr=>{"use strict";Object.defineProperty(gr,"__esModule",{value:!0});gr.DiscrError=void 0;var yo;(function(e){e.Tag="tag",e.Mapping="mapping"})(yo||(gr.DiscrError=yo={}))});var jn=y(Rn=>{"use strict";Object.defineProperty(Rn,"__esModule",{value:!0});var Xe=b(),qn=_o(),go=rr(),Am=bt(),Cm=q(),Mm={message:({params:{discrError:e,tagName:t}})=>e===qn.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,Xe._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},Dm={keyword:"discriminator",type:"object",schemaType:"object",error:Mm,code(e){let{gen:t,data:r,schema:s,parentSchema:n,it:a}=e,{oneOf:i}=n;if(!a.opts.discriminator)throw new Error("discriminator: requires discriminator option");let o=s.propertyName;if(typeof o!="string")throw new Error("discriminator: requires propertyName");if(s.mapping)throw new Error("discriminator: mapping is not supported");if(!i)throw new Error("discriminator: requires oneOf keyword");let u=t.let("valid",!1),d=t.const("tag",(0,Xe._)`${r}${(0,Xe.getProperty)(o)}`);t.if((0,Xe._)`typeof ${d} == "string"`,()=>c(),()=>e.error(!1,{discrError:qn.DiscrError.Tag,tag:d,tagName:o})),e.ok(u);function c(){let p=h();t.if(!1);for(let f in p)t.elseIf((0,Xe._)`${d} === ${f}`),t.assign(u,l(p[f]));t.else(),e.error(!1,{discrError:qn.DiscrError.Mapping,tag:d,tagName:o}),t.endIf()}function l(p){let f=t.name("valid"),m=e.subschema({keyword:"oneOf",schemaProp:p},f);return e.mergeEvaluated(m,Xe.Name),f}function h(){var p;let f={},m=g(n),_=!0;for(let A=0;A<i.length;A++){let w=i[A];if(w?.$ref&&!(0,Cm.schemaHasRulesButRef)(w,a.self.RULES)){let pe=w.$ref;if(w=go.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,pe),w instanceof go.SchemaEnv&&(w=w.schema),w===void 0)throw new Am.default(a.opts.uriResolver,a.baseId,pe)}let ie=(p=w?.properties)===null||p===void 0?void 0:p[o];if(typeof ie!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${o}"`);_=_&&(m||g(w)),N(ie,A)}if(!_)throw new Error(`discriminator: "${o}" must be required`);return f;function g({required:A}){return Array.isArray(A)&&A.includes(o)}function N(A,w){if(A.const)T(A.const,w);else if(A.enum)for(let ie of A.enum)T(ie,w);else throw new Error(`discriminator: "properties/${o}" must have "const" or "enum"`)}function T(A,w){if(typeof A!="string"||A in f)throw new Error(`discriminator: "${o}" values must be unique strings`);f[A]=w}}}};Rn.default=Dm});var $o=y((py,zm)=>{zm.exports={id:"http://json-schema.org/draft-04/schema#",$schema:"http://json-schema.org/draft-04/schema#",description:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},positiveInteger:{type:"integer",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:"#/definitions/positiveInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},minItems:1,uniqueItems:!0}},type:"object",properties:{id:{type:"string",format:"uri"},$schema:{type:"string",format:"uri"},title:{type:"string"},description:{type:"string"},default:{},multipleOf:{type:"number",minimum:0,exclusiveMinimum:!0},maximum:{type:"number"},exclusiveMaximum:{type:"boolean",default:!1},minimum:{type:"number"},exclusiveMinimum:{type:"boolean",default:!1},maxLength:{$ref:"#/definitions/positiveInteger"},minLength:{$ref:"#/definitions/positiveIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{anyOf:[{type:"boolean"},{$ref:"#"}],default:{}},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:{}},maxItems:{$ref:"#/definitions/positiveInteger"},minItems:{$ref:"#/definitions/positiveIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},maxProperties:{$ref:"#/definitions/positiveInteger"},minProperties:{$ref:"#/definitions/positiveIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{anyOf:[{type:"boolean"},{$ref:"#"}],default:{}},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},enum:{type:"array",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},dependencies:{exclusiveMaximum:["maximum"],exclusiveMinimum:["minimum"]},default:{}}});var bo=y((z,wo)=>{"use strict";Object.defineProperty(z,"__esModule",{value:!0});z.CodeGen=z.Name=z.nil=z.stringify=z.str=z._=z.KeywordCxt=void 0;var Vm=We(),xm=ho(),Lm=jn(),vo=$o(),Um=["/properties"],$r="http://json-schema.org/draft-04/schema",vr=class extends Vm.default{constructor(t={}){super({...t,schemaId:"id"})}_addVocabularies(){super._addVocabularies(),xm.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(Lm.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(vo,Um):vo;this.addMetaSchema(t,$r,!1),this.refs["http://json-schema.org/schema"]=$r}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema($r)?$r:void 0)}};wo.exports=z=vr;Object.defineProperty(z,"__esModule",{value:!0});z.default=vr;var Fm=We();Object.defineProperty(z,"KeywordCxt",{enumerable:!0,get:function(){return Fm.KeywordCxt}});var Qe=We();Object.defineProperty(z,"_",{enumerable:!0,get:function(){return Qe._}});Object.defineProperty(z,"str",{enumerable:!0,get:function(){return Qe.str}});Object.defineProperty(z,"stringify",{enumerable:!0,get:function(){return Qe.stringify}});Object.defineProperty(z,"nil",{enumerable:!0,get:function(){return Qe.nil}});Object.defineProperty(z,"Name",{enumerable:!0,get:function(){return Qe.Name}});Object.defineProperty(z,"CodeGen",{enumerable:!0,get:function(){return Qe.CodeGen}})});var ko=y(fe=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});fe.formatNames=fe.fastFormats=fe.fullFormats=void 0;function le(e,t){return{validate:e,compare:t}}fe.fullFormats={date:le(To,Dn),time:le(Cn(!0),zn),"date-time":le(Eo(!0),No),"iso-time":le(Cn(),Io),"iso-date-time":le(Eo(),Oo),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:Jm,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:rp,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:Wm,int32:{type:"number",validate:Qm},int64:{type:"number",validate:ep},float:{type:"number",validate:Po},double:{type:"number",validate:Po},password:!0,binary:!0};fe.fastFormats={...fe.fullFormats,date:le(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,Dn),time:le(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,zn),"date-time":le(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,No),"iso-time":le(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,Io),"iso-date-time":le(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,Oo),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};fe.formatNames=Object.keys(fe.fullFormats);function Km(e){return e%4===0&&(e%100!==0||e%400===0)}var Gm=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Hm=[0,31,28,31,30,31,30,31,31,30,31,30,31];function To(e){let t=Gm.exec(e);if(!t)return!1;let r=+t[1],s=+t[2],n=+t[3];return s>=1&&s<=12&&n>=1&&n<=(s===2&&Km(r)?29:Hm[s])}function Dn(e,t){if(e&&t)return e>t?1:e<t?-1:0}var An=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function Cn(e){return function(r){let s=An.exec(r);if(!s)return!1;let n=+s[1],a=+s[2],i=+s[3],o=s[4],u=s[5]==="-"?-1:1,d=+(s[6]||0),c=+(s[7]||0);if(d>23||c>59||e&&!o)return!1;if(n<=23&&a<=59&&i<60)return!0;let l=a-c*u,h=n-d*u-(l<0?1:0);return(h===23||h===-1)&&(l===59||l===-1)&&i<61}}function zn(e,t){if(!(e&&t))return;let r=new Date("2020-01-01T"+e).valueOf(),s=new Date("2020-01-01T"+t).valueOf();if(r&&s)return r-s}function Io(e,t){if(!(e&&t))return;let r=An.exec(e),s=An.exec(t);if(r&&s)return e=r[1]+r[2]+r[3],t=s[1]+s[2]+s[3],e>t?1:e<t?-1:0}var Mn=/t|\s/i;function Eo(e){let t=Cn(e);return function(s){let n=s.split(Mn);return n.length===2&&To(n[0])&&t(n[1])}}function No(e,t){if(!(e&&t))return;let r=new Date(e).valueOf(),s=new Date(t).valueOf();if(r&&s)return r-s}function Oo(e,t){if(!(e&&t))return;let[r,s]=e.split(Mn),[n,a]=t.split(Mn),i=Dn(r,n);if(i!==void 0)return i||zn(s,a)}var Ym=/\/|:/,Bm=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function Jm(e){return Ym.test(e)&&Bm.test(e)}var So=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function Wm(e){return So.lastIndex=0,So.test(e)}var Zm=-(2**31),Xm=2**31-1;function Qm(e){return Number.isInteger(e)&&e<=Xm&&e>=Zm}function ep(e){return Number.isInteger(e)}function Po(){return!0}var tp=/[^\\]\\Z/;function rp(e){if(tp.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var qo=y(Vn=>{"use strict";Object.defineProperty(Vn,"__esModule",{value:!0});var sp={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Vn.default=sp});var Ro=y(xn=>{"use strict";Object.defineProperty(xn,"__esModule",{value:!0});var np=qo(),ap=Os(),ip=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",np.default,ap.default];xn.default=ip});var jo=y(Ln=>{"use strict";Object.defineProperty(Ln,"__esModule",{value:!0});var wr=b(),Oe=wr.operators,br={maximum:{okStr:"<=",ok:Oe.LTE,fail:Oe.GT},minimum:{okStr:">=",ok:Oe.GTE,fail:Oe.LT},exclusiveMaximum:{okStr:"<",ok:Oe.LT,fail:Oe.GTE},exclusiveMinimum:{okStr:">",ok:Oe.GT,fail:Oe.LTE}},op={message:({keyword:e,schemaCode:t})=>(0,wr.str)`must be ${br[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,wr._)`{comparison: ${br[e].okStr}, limit: ${t}}`},up={keyword:Object.keys(br),type:"number",schemaType:"number",$data:!0,error:op,code(e){let{keyword:t,data:r,schemaCode:s}=e;e.fail$data((0,wr._)`${r} ${br[t].fail} ${s} || isNaN(${r})`)}};Ln.default=up});var Ao=y(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});var cp=jo(),dp=Ds(),lp=xs(),fp=Us(),mp=Ks(),pp=Hs(),hp=Bs(),yp=Xs(),_p=tn(),gp=sn(),$p=[cp.default,dp.default,lp.default,fp.default,mp.default,pp.default,hp.default,yp.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},_p.default,gp.default];Un.default=$p});var Co=y(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.contentVocabulary=et.metadataVocabulary=void 0;et.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];et.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var Do=y(Fn=>{"use strict";Object.defineProperty(Fn,"__esModule",{value:!0});var vp=Ro(),wp=Ao(),bp=Tn(),Ep=On(),Mo=Co(),Sp=[vp.default,wp.default,(0,bp.default)(),Ep.default,Mo.metadataVocabulary,Mo.contentVocabulary];Fn.default=Sp});var zo=y((by,Pp)=>{Pp.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var xo=y((M,Kn)=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0});M.MissingRefError=M.ValidationError=M.CodeGen=M.Name=M.nil=M.stringify=M.str=M._=M.KeywordCxt=M.Ajv=void 0;var Tp=We(),Ip=Do(),Np=jn(),Vo=zo(),Op=["/properties"],Er="http://json-schema.org/draft-07/schema",tt=class extends Tp.default{_addVocabularies(){super._addVocabularies(),Ip.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(Np.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(Vo,Op):Vo;this.addMetaSchema(t,Er,!1),this.refs["http://json-schema.org/schema"]=Er}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Er)?Er:void 0)}};M.Ajv=tt;Kn.exports=M=tt;Kn.exports.Ajv=tt;Object.defineProperty(M,"__esModule",{value:!0});M.default=tt;var kp=wt();Object.defineProperty(M,"KeywordCxt",{enumerable:!0,get:function(){return kp.KeywordCxt}});var rt=b();Object.defineProperty(M,"_",{enumerable:!0,get:function(){return rt._}});Object.defineProperty(M,"str",{enumerable:!0,get:function(){return rt.str}});Object.defineProperty(M,"stringify",{enumerable:!0,get:function(){return rt.stringify}});Object.defineProperty(M,"nil",{enumerable:!0,get:function(){return rt.nil}});Object.defineProperty(M,"Name",{enumerable:!0,get:function(){return rt.Name}});Object.defineProperty(M,"CodeGen",{enumerable:!0,get:function(){return rt.CodeGen}});var qp=er();Object.defineProperty(M,"ValidationError",{enumerable:!0,get:function(){return qp.default}});var Rp=bt();Object.defineProperty(M,"MissingRefError",{enumerable:!0,get:function(){return Rp.default}})});var Lo=y(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.formatLimitDefinition=void 0;var jp=xo(),ae=b(),ke=ae.operators,Sr={formatMaximum:{okStr:"<=",ok:ke.LTE,fail:ke.GT},formatMinimum:{okStr:">=",ok:ke.GTE,fail:ke.LT},formatExclusiveMaximum:{okStr:"<",ok:ke.LT,fail:ke.GTE},formatExclusiveMinimum:{okStr:">",ok:ke.GT,fail:ke.LTE}},Ap={message:({keyword:e,schemaCode:t})=>(0,ae.str)`should be ${Sr[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,ae._)`{comparison: ${Sr[e].okStr}, limit: ${t}}`};st.formatLimitDefinition={keyword:Object.keys(Sr),type:"string",schemaType:"string",$data:!0,error:Ap,code(e){let{gen:t,data:r,schemaCode:s,keyword:n,it:a}=e,{opts:i,self:o}=a;if(!i.validateFormats)return;let u=new jp.KeywordCxt(a,o.RULES.all.format.definition,"format");u.$data?d():c();function d(){let h=t.scopeValue("formats",{ref:o.formats,code:i.code.formats}),p=t.const("fmt",(0,ae._)`${h}[${u.schemaCode}]`);e.fail$data((0,ae.or)((0,ae._)`typeof ${p} != "object"`,(0,ae._)`${p} instanceof RegExp`,(0,ae._)`typeof ${p}.compare != "function"`,l(p)))}function c(){let h=u.schema,p=o.formats[h];if(!p||p===!0)return;if(typeof p!="object"||p instanceof RegExp||typeof p.compare!="function")throw new Error(`"${n}": format "${h}" does not define "compare" function`);let f=t.scopeValue("formats",{key:h,ref:p,code:i.code.formats?(0,ae._)`${i.code.formats}${(0,ae.getProperty)(h)}`:void 0});e.fail$data(l(f))}function l(h){return(0,ae._)`${h}.compare(${r}, ${s}) ${Sr[n].fail} 0`}},dependencies:["format"]};var Cp=e=>(e.addKeyword(st.formatLimitDefinition),e);st.default=Cp});var Go=y((Mt,Ko)=>{"use strict";Object.defineProperty(Mt,"__esModule",{value:!0});var nt=ko(),Mp=Lo(),Gn=b(),Uo=new Gn.Name("fullFormats"),Dp=new Gn.Name("fastFormats"),Hn=(e,t={keywords:!0})=>{if(Array.isArray(t))return Fo(e,t,nt.fullFormats,Uo),e;let[r,s]=t.mode==="fast"?[nt.fastFormats,Dp]:[nt.fullFormats,Uo],n=t.formats||nt.formatNames;return Fo(e,n,r,s),t.keywords&&(0,Mp.default)(e),e};Hn.get=(e,t="full")=>{let s=(t==="fast"?nt.fastFormats:nt.fullFormats)[e];if(!s)throw new Error(`Unknown format "${e}"`);return s};function Fo(e,t,r,s){var n,a;(n=(a=e.opts.code).formats)!==null&&n!==void 0||(a.formats=(0,Gn._)`require("ajv-formats/dist/formats").${s}`);for(let i of t)e.addFormat(i,r[i])}Ko.exports=Mt=Hn;Object.defineProperty(Mt,"__esModule",{value:!0});Mt.default=Hn});var me=we(ot(),1),at=we(kr(),1);var Lt=we(ot(),1);var ea=we(ot(),1);var Xn="core/abilities",Qn=/^[a-z0-9-]+(?:\/[a-z0-9-]+){1,3}$/,qr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,Dt="REGISTER_ABILITY",zt="UNREGISTER_ABILITY",Vt="REGISTER_ABILITY_CATEGORY",xt="UNREGISTER_ABILITY_CATEGORY";var nu=["name","label","description","category","input_schema","output_schema","meta","callback","permissionCallback"],au=["slug","label","description","meta"];function iu(e){return Object.keys(e).filter(t=>nu.includes(t)&&e[t]!==void 0).reduce((t,r)=>({...t,[r]:e[r]}),{})}function ou(e){return Object.keys(e).filter(t=>au.includes(t)&&e[t]!==void 0).reduce((t,r)=>({...t,[r]:e[r]}),{})}var uu={};function cu(e=uu,t){switch(t.type){case Dt:return t.ability?{...e,[t.ability.name]:iu(t.ability)}:e;case zt:{if(!e[t.name])return e;let{[t.name]:r,...s}=e;return s}default:return e}}var du={};function lu(e=du,t){switch(t.type){case Vt:return t.category?{...e,[t.category.slug]:ou(t.category)}:e;case xt:{if(!e[t.slug])return e;let{[t.slug]:r,...s}=e;return s}default:return e}}var ta=(0,ea.combineReducers)({abilitiesByName:cu,categoriesBySlug:lu});var Rr={};Jn(Rr,{registerAbility:()=>fu,registerAbilityCategory:()=>pu,unregisterAbility:()=>mu,unregisterAbilityCategory:()=>hu});var he=we(kr(),1);function ra(e,t){let r={};if(e)for(let s of t)e[s]!==void 0&&(r[s]=e[s]);return r}function fu(e){return({select:t,dispatch:r})=>{if(!e.name)throw new Error("Ability name is required");if(!Qn.test(e.name))throw new Error('Ability name must be a string containing a namespace prefix with 2-4 segments, e.g. "my-plugin/my-ability" or "core/posts/find". It can only contain lowercase alphanumeric characters, dashes and the forward slash.');if(!e.label)throw new Error((0,he.sprintf)('Ability "%s" must have a label',e.name));if(!e.description)throw new Error((0,he.sprintf)('Ability "%s" must have a description',e.name));if(!e.category)throw new Error((0,he.sprintf)('Ability "%s" must have a category',e.name));if(!qr.test(e.category))throw new Error((0,he.sprintf)('Ability "%1$s" has an invalid category. Category must be lowercase alphanumeric with dashes only. Got: "%2$s"',e.name,e.category));if(!t.getAbilityCategories().find(u=>u.slug===e.category))throw new Error((0,he.sprintf)('Ability "%1$s" references non-existent category "%2$s". Please register the category first.',e.name,e.category));if(e.callback&&typeof e.callback!="function")throw new Error((0,he.sprintf)('Ability "%s" has an invalid callback. Callback must be a function',e.name));if(t.getAbility(e.name))throw new Error((0,he.sprintf)('Ability "%s" is already registered',e.name));let i=ra(e.meta?.annotations,["readonly","destructive","idempotent","serverRegistered","clientRegistered"]);i.serverRegistered||(i.clientRegistered=!0);let o={...e.meta||{},annotations:i};r({type:Dt,ability:{...e,meta:o}})}}function mu(e){return{type:zt,name:e}}function pu(e,t){return({select:r,dispatch:s})=>{if(!e)throw new Error("Category slug is required");if(!qr.test(e))throw new Error("Category slug must contain only lowercase alphanumeric characters and dashes.");if(r.getAbilityCategory(e))throw new Error((0,he.sprintf)('Category "%s" is already registered.',e));if(!t.label||typeof t.label!="string")throw new Error("The category properties must contain a `label` string.");if(!t.description||typeof t.description!="string")throw new Error("The category properties must contain a `description` string.");if(t.meta!==void 0&&(typeof t.meta!="object"||Array.isArray(t.meta)))throw new Error("The category properties should provide a valid `meta` object.");let a=ra(t.meta?.annotations,["serverRegistered","clientRegistered"]);a.serverRegistered||(a.clientRegistered=!0);let i={...t.meta||{},annotations:a},o={slug:e,label:t.label,description:t.description,meta:i};s({type:Vt,category:o})}}function hu(e){return{type:xt,slug:e}}var Ar={};Jn(Ar,{getAbilities:()=>yu,getAbility:()=>_u,getAbilityCategories:()=>gu,getAbilityCategory:()=>$u});var jr=we(ot(),1),yu=(0,jr.createSelector)((e,{category:t}={})=>{let r=Object.values(e.abilitiesByName);return t?r.filter(s=>s.category===t):r},(e,{category:t}={})=>[e.abilitiesByName,t]);function _u(e,t){return e.abilitiesByName[t]}var gu=(0,jr.createSelector)(e=>Object.values(e.categoriesBySlug),e=>[e.categoriesBySlug]);function $u(e,t){return e.categoriesBySlug[t]}var ee=(0,Lt.createReduxStore)(Xn,{reducer:ta,actions:Rr,selectors:Ar});(0,Lt.register)(ee);var Yo=we(bo(),1),Bo=we(Go(),1),Jo=new Yo.default({coerceTypes:!1,useDefaults:!0,removeAdditional:!1,allErrors:!0,verbose:!0,allowUnionTypes:!0});(0,Bo.default)(Jo,["date-time","email","hostname","ipv4","ipv6","uuid"]);function Ho(e,t){let r=e.instancePath?e.instancePath.replace(/\//g,"][").replace(/^\]\[/,"[")+"]":"",s=t+r;switch(e.keyword){case"type":return`${s} is not of type ${e.params.type}.`;case"required":return`${e.params.missingProperty} is a required property of ${s}.`;case"additionalProperties":return`${e.params.additionalProperty} is not a valid property of Object.`;case"enum":let n=e.params.allowedValues.map(o=>typeof o=="string"?o:JSON.stringify(o)).join(", ");return e.params.allowedValues.length===1?`${s} is not ${n}.`:`${s} is not one of ${n}.`;case"pattern":return`${s} does not match pattern ${e.params.pattern}.`;case"format":let a=e.params.format;return{email:"Invalid email address.","date-time":"Invalid date.",uuid:`${s} is not a valid UUID.`,ipv4:`${s} is not a valid IP address.`,ipv6:`${s} is not a valid IP address.`,hostname:`${s} is not a valid hostname.`}[a]||`Invalid ${a}.`;case"minimum":case"exclusiveMinimum":return e.keyword==="exclusiveMinimum"?`${s} must be greater than ${e.params.limit}`:`${s} must be greater than or equal to ${e.params.limit}`;case"maximum":case"exclusiveMaximum":return e.keyword==="exclusiveMaximum"?`${s} must be less than ${e.params.limit}`:`${s} must be less than or equal to ${e.params.limit}`;case"multipleOf":return`${s} must be a multiple of ${e.params.multipleOf}.`;case"anyOf":case"oneOf":return`${s} is invalid (failed ${e.keyword} validation).`;case"minLength":return`${s} must be at least ${e.params.limit} character${e.params.limit===1?"":"s"} long.`;case"maxLength":return`${s} must be at most ${e.params.limit} character${e.params.limit===1?"":"s"} long.`;case"minItems":return`${s} must contain at least ${e.params.limit} item${e.params.limit===1?"":"s"}.`;case"maxItems":return`${s} must contain at most ${e.params.limit} item${e.params.limit===1?"":"s"}.`;case"uniqueItems":return`${s} has duplicate items.`;case"minProperties":return`${s} must contain at least ${e.params.limit} propert${e.params.limit===1?"y":"ies"}.`;case"maxProperties":return`${s} must contain at most ${e.params.limit} propert${e.params.limit===1?"y":"ies"}.`;default:return e.message||`${s} is invalid (failed ${e.keyword} validation).`}}function Pr(e,t,r=""){if(!t||typeof t!="object")return console.warn(`Schema must be an object. Received ${typeof t}.`),!0;if(!t.type&&!t.anyOf&&!t.oneOf)return console.warn(`The "type" schema keyword for ${r||"value"} is required.`),!0;try{let{default:s,...n}=t,a=Jo.compile(n);if(a(e===void 0?s:e))return!0;if(a.errors&&a.errors.length>0){let o=a.errors.find(u=>u.keyword==="anyOf"||u.keyword==="oneOf");return Ho(o||a.errors[0],r)}return`${r} is invalid.`}catch(s){return console.error("Schema compilation error:",s),"Invalid schema provided for validation."}}function zp(e={}){return(0,me.select)(ee).getAbilities(e)}function Wo(e){return(0,me.select)(ee).getAbility(e)}function Vp(){return(0,me.select)(ee).getAbilityCategories()}function xp(e){return(0,me.select)(ee).getAbilityCategory(e)}function Lp(e){(0,me.dispatch)(ee).registerAbility(e)}function Up(e){(0,me.dispatch)(ee).unregisterAbility(e)}function Fp(e,t){(0,me.dispatch)(ee).registerAbilityCategory(e,t)}function Kp(e){(0,me.dispatch)(ee).unregisterAbilityCategory(e)}async function Gp(e,t){let r=Wo(e);if(!r)throw new Error((0,at.sprintf)("Ability not found: %s",e));if(!r.callback)throw new Error((0,at.sprintf)('Ability "%s" is missing callback. Please ensure the ability is properly registered.',r.name));if(r.permissionCallback&&!await r.permissionCallback(t)){let a=new Error((0,at.sprintf)("Permission denied for ability: %s",r.name));throw a.code="ability_permission_denied",a}if(r.input_schema){let n=Pr(t,r.input_schema,"input");if(n!==!0){let a=new Error((0,at.sprintf)('Ability "%1$s" has invalid input. Reason: %2$s',r.name,n));throw a.code="ability_invalid_input",a}}let s;try{s=await r.callback(t)}catch(n){throw console.error(`Error executing ability ${r.name}:`,n),n}if(r.output_schema){let n=Pr(s,r.output_schema,"output");if(n!==!0){let a=new Error((0,at.sprintf)('Ability "%1$s" has invalid output. Reason: %2$s',r.name,n));throw a.code="ability_invalid_output",a}}return s}export{Gp as executeAbility,zp as getAbilities,Wo as getAbility,Vp as getAbilityCategories,xp as getAbilityCategory,Lp as registerAbility,Fp as registerAbilityCategory,ee as store,Up as unregisterAbility,Kp as unregisterAbilityCategory,Pr as validateValueFromSchema}; abilities/index.js 0000644 00001063152 15206736336 0010201 0 ustar 00 var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // package-external:@wordpress/data var require_data = __commonJS({ "package-external:@wordpress/data"(exports, module) { module.exports = window.wp.data; } }); // package-external:@wordpress/i18n var require_i18n = __commonJS({ "package-external:@wordpress/i18n"(exports, module) { module.exports = window.wp.i18n; } }); // node_modules/ajv/dist/compile/codegen/code.js var require_code = __commonJS({ "node_modules/ajv/dist/compile/codegen/code.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0; var _CodeOrName = class { }; exports._CodeOrName = _CodeOrName; exports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i; var Name = class extends _CodeOrName { constructor(s) { super(); if (!exports.IDENTIFIER.test(s)) throw new Error("CodeGen: name must be a valid identifier"); this.str = s; } toString() { return this.str; } emptyStr() { return false; } get names() { return { [this.str]: 1 }; } }; exports.Name = Name; var _Code = class extends _CodeOrName { constructor(code) { super(); this._items = typeof code === "string" ? [code] : code; } toString() { return this.str; } emptyStr() { if (this._items.length > 1) return false; const item = this._items[0]; return item === "" || item === '""'; } get str() { var _a; return (_a = this._str) !== null && _a !== void 0 ? _a : this._str = this._items.reduce((s, c) => `${s}${c}`, ""); } get names() { var _a; return (_a = this._names) !== null && _a !== void 0 ? _a : this._names = this._items.reduce((names, c) => { if (c instanceof Name) names[c.str] = (names[c.str] || 0) + 1; return names; }, {}); } }; exports._Code = _Code; exports.nil = new _Code(""); function _(strs, ...args) { const code = [strs[0]]; let i = 0; while (i < args.length) { addCodeArg(code, args[i]); code.push(strs[++i]); } return new _Code(code); } exports._ = _; var plus = new _Code("+"); function str(strs, ...args) { const expr = [safeStringify(strs[0])]; let i = 0; while (i < args.length) { expr.push(plus); addCodeArg(expr, args[i]); expr.push(plus, safeStringify(strs[++i])); } optimize(expr); return new _Code(expr); } exports.str = str; function addCodeArg(code, arg) { if (arg instanceof _Code) code.push(...arg._items); else if (arg instanceof Name) code.push(arg); else code.push(interpolate(arg)); } exports.addCodeArg = addCodeArg; function optimize(expr) { let i = 1; while (i < expr.length - 1) { if (expr[i] === plus) { const res = mergeExprItems(expr[i - 1], expr[i + 1]); if (res !== void 0) { expr.splice(i - 1, 3, res); continue; } expr[i++] = "+"; } i++; } } function mergeExprItems(a, b) { if (b === '""') return a; if (a === '""') return b; if (typeof a == "string") { if (b instanceof Name || a[a.length - 1] !== '"') return; if (typeof b != "string") return `${a.slice(0, -1)}${b}"`; if (b[0] === '"') return a.slice(0, -1) + b.slice(1); return; } if (typeof b == "string" && b[0] === '"' && !(a instanceof Name)) return `"${a}${b.slice(1)}`; return; } function strConcat(c1, c2) { return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str`${c1}${c2}`; } exports.strConcat = strConcat; function interpolate(x) { return typeof x == "number" || typeof x == "boolean" || x === null ? x : safeStringify(Array.isArray(x) ? x.join(",") : x); } function stringify(x) { return new _Code(safeStringify(x)); } exports.stringify = stringify; function safeStringify(x) { return JSON.stringify(x).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029"); } exports.safeStringify = safeStringify; function getProperty(key) { return typeof key == "string" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _`[${key}]`; } exports.getProperty = getProperty; function getEsmExportName(key) { if (typeof key == "string" && exports.IDENTIFIER.test(key)) { return new _Code(`${key}`); } throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`); } exports.getEsmExportName = getEsmExportName; function regexpCode(rx) { return new _Code(rx.toString()); } exports.regexpCode = regexpCode; } }); // node_modules/ajv/dist/compile/codegen/scope.js var require_scope = __commonJS({ "node_modules/ajv/dist/compile/codegen/scope.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0; var code_1 = require_code(); var ValueError = class extends Error { constructor(name) { super(`CodeGen: "code" for ${name} not defined`); this.value = name.value; } }; var UsedValueState; (function(UsedValueState2) { UsedValueState2[UsedValueState2["Started"] = 0] = "Started"; UsedValueState2[UsedValueState2["Completed"] = 1] = "Completed"; })(UsedValueState || (exports.UsedValueState = UsedValueState = {})); exports.varKinds = { const: new code_1.Name("const"), let: new code_1.Name("let"), var: new code_1.Name("var") }; var Scope = class { constructor({ prefixes, parent } = {}) { this._names = {}; this._prefixes = prefixes; this._parent = parent; } toName(nameOrPrefix) { return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix); } name(prefix) { return new code_1.Name(this._newName(prefix)); } _newName(prefix) { const ng = this._names[prefix] || this._nameGroup(prefix); return `${prefix}${ng.index++}`; } _nameGroup(prefix) { var _a, _b; if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || this._prefixes && !this._prefixes.has(prefix)) { throw new Error(`CodeGen: prefix "${prefix}" is not allowed in this scope`); } return this._names[prefix] = { prefix, index: 0 }; } }; exports.Scope = Scope; var ValueScopeName = class extends code_1.Name { constructor(prefix, nameStr) { super(nameStr); this.prefix = prefix; } setValue(value, { property, itemIndex }) { this.value = value; this.scopePath = (0, code_1._)`.${new code_1.Name(property)}[${itemIndex}]`; } }; exports.ValueScopeName = ValueScopeName; var line = (0, code_1._)`\n`; var ValueScope = class extends Scope { constructor(opts) { super(opts); this._values = {}; this._scope = opts.scope; this.opts = { ...opts, _n: opts.lines ? line : code_1.nil }; } get() { return this._scope; } name(prefix) { return new ValueScopeName(prefix, this._newName(prefix)); } value(nameOrPrefix, value) { var _a; if (value.ref === void 0) throw new Error("CodeGen: ref must be passed in value"); const name = this.toName(nameOrPrefix); const { prefix } = name; const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref; let vs = this._values[prefix]; if (vs) { const _name = vs.get(valueKey); if (_name) return _name; } else { vs = this._values[prefix] = /* @__PURE__ */ new Map(); } vs.set(valueKey, name); const s = this._scope[prefix] || (this._scope[prefix] = []); const itemIndex = s.length; s[itemIndex] = value.ref; name.setValue(value, { property: prefix, itemIndex }); return name; } getValue(prefix, keyOrRef) { const vs = this._values[prefix]; if (!vs) return; return vs.get(keyOrRef); } scopeRefs(scopeName, values = this._values) { return this._reduceValues(values, (name) => { if (name.scopePath === void 0) throw new Error(`CodeGen: name "${name}" has no value`); return (0, code_1._)`${scopeName}${name.scopePath}`; }); } scopeCode(values = this._values, usedValues, getCode) { return this._reduceValues(values, (name) => { if (name.value === void 0) throw new Error(`CodeGen: name "${name}" has no value`); return name.value.code; }, usedValues, getCode); } _reduceValues(values, valueCode, usedValues = {}, getCode) { let code = code_1.nil; for (const prefix in values) { const vs = values[prefix]; if (!vs) continue; const nameSet = usedValues[prefix] = usedValues[prefix] || /* @__PURE__ */ new Map(); vs.forEach((name) => { if (nameSet.has(name)) return; nameSet.set(name, UsedValueState.Started); let c = valueCode(name); if (c) { const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const; code = (0, code_1._)`${code}${def} ${name} = ${c};${this.opts._n}`; } else if (c = getCode === null || getCode === void 0 ? void 0 : getCode(name)) { code = (0, code_1._)`${code}${c}${this.opts._n}`; } else { throw new ValueError(name); } nameSet.set(name, UsedValueState.Completed); }); } return code; } }; exports.ValueScope = ValueScope; } }); // node_modules/ajv/dist/compile/codegen/index.js var require_codegen = __commonJS({ "node_modules/ajv/dist/compile/codegen/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0; var code_1 = require_code(); var scope_1 = require_scope(); var code_2 = require_code(); Object.defineProperty(exports, "_", { enumerable: true, get: function() { return code_2._; } }); Object.defineProperty(exports, "str", { enumerable: true, get: function() { return code_2.str; } }); Object.defineProperty(exports, "strConcat", { enumerable: true, get: function() { return code_2.strConcat; } }); Object.defineProperty(exports, "nil", { enumerable: true, get: function() { return code_2.nil; } }); Object.defineProperty(exports, "getProperty", { enumerable: true, get: function() { return code_2.getProperty; } }); Object.defineProperty(exports, "stringify", { enumerable: true, get: function() { return code_2.stringify; } }); Object.defineProperty(exports, "regexpCode", { enumerable: true, get: function() { return code_2.regexpCode; } }); Object.defineProperty(exports, "Name", { enumerable: true, get: function() { return code_2.Name; } }); var scope_2 = require_scope(); Object.defineProperty(exports, "Scope", { enumerable: true, get: function() { return scope_2.Scope; } }); Object.defineProperty(exports, "ValueScope", { enumerable: true, get: function() { return scope_2.ValueScope; } }); Object.defineProperty(exports, "ValueScopeName", { enumerable: true, get: function() { return scope_2.ValueScopeName; } }); Object.defineProperty(exports, "varKinds", { enumerable: true, get: function() { return scope_2.varKinds; } }); exports.operators = { GT: new code_1._Code(">"), GTE: new code_1._Code(">="), LT: new code_1._Code("<"), LTE: new code_1._Code("<="), EQ: new code_1._Code("==="), NEQ: new code_1._Code("!=="), NOT: new code_1._Code("!"), OR: new code_1._Code("||"), AND: new code_1._Code("&&"), ADD: new code_1._Code("+") }; var Node = class { optimizeNodes() { return this; } optimizeNames(_names, _constants) { return this; } }; var Def = class extends Node { constructor(varKind, name, rhs) { super(); this.varKind = varKind; this.name = name; this.rhs = rhs; } render({ es5, _n }) { const varKind = es5 ? scope_1.varKinds.var : this.varKind; const rhs = this.rhs === void 0 ? "" : ` = ${this.rhs}`; return `${varKind} ${this.name}${rhs};` + _n; } optimizeNames(names, constants) { if (!names[this.name.str]) return; if (this.rhs) this.rhs = optimizeExpr(this.rhs, names, constants); return this; } get names() { return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {}; } }; var Assign = class extends Node { constructor(lhs, rhs, sideEffects) { super(); this.lhs = lhs; this.rhs = rhs; this.sideEffects = sideEffects; } render({ _n }) { return `${this.lhs} = ${this.rhs};` + _n; } optimizeNames(names, constants) { if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects) return; this.rhs = optimizeExpr(this.rhs, names, constants); return this; } get names() { const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names }; return addExprNames(names, this.rhs); } }; var AssignOp = class extends Assign { constructor(lhs, op, rhs, sideEffects) { super(lhs, rhs, sideEffects); this.op = op; } render({ _n }) { return `${this.lhs} ${this.op}= ${this.rhs};` + _n; } }; var Label = class extends Node { constructor(label) { super(); this.label = label; this.names = {}; } render({ _n }) { return `${this.label}:` + _n; } }; var Break = class extends Node { constructor(label) { super(); this.label = label; this.names = {}; } render({ _n }) { const label = this.label ? ` ${this.label}` : ""; return `break${label};` + _n; } }; var Throw = class extends Node { constructor(error) { super(); this.error = error; } render({ _n }) { return `throw ${this.error};` + _n; } get names() { return this.error.names; } }; var AnyCode = class extends Node { constructor(code) { super(); this.code = code; } render({ _n }) { return `${this.code};` + _n; } optimizeNodes() { return `${this.code}` ? this : void 0; } optimizeNames(names, constants) { this.code = optimizeExpr(this.code, names, constants); return this; } get names() { return this.code instanceof code_1._CodeOrName ? this.code.names : {}; } }; var ParentNode = class extends Node { constructor(nodes = []) { super(); this.nodes = nodes; } render(opts) { return this.nodes.reduce((code, n) => code + n.render(opts), ""); } optimizeNodes() { const { nodes } = this; let i = nodes.length; while (i--) { const n = nodes[i].optimizeNodes(); if (Array.isArray(n)) nodes.splice(i, 1, ...n); else if (n) nodes[i] = n; else nodes.splice(i, 1); } return nodes.length > 0 ? this : void 0; } optimizeNames(names, constants) { const { nodes } = this; let i = nodes.length; while (i--) { const n = nodes[i]; if (n.optimizeNames(names, constants)) continue; subtractNames(names, n.names); nodes.splice(i, 1); } return nodes.length > 0 ? this : void 0; } get names() { return this.nodes.reduce((names, n) => addNames(names, n.names), {}); } }; var BlockNode = class extends ParentNode { render(opts) { return "{" + opts._n + super.render(opts) + "}" + opts._n; } }; var Root = class extends ParentNode { }; var Else = class extends BlockNode { }; Else.kind = "else"; var If = class _If extends BlockNode { constructor(condition, nodes) { super(nodes); this.condition = condition; } render(opts) { let code = `if(${this.condition})` + super.render(opts); if (this.else) code += "else " + this.else.render(opts); return code; } optimizeNodes() { super.optimizeNodes(); const cond = this.condition; if (cond === true) return this.nodes; let e = this.else; if (e) { const ns = e.optimizeNodes(); e = this.else = Array.isArray(ns) ? new Else(ns) : ns; } if (e) { if (cond === false) return e instanceof _If ? e : e.nodes; if (this.nodes.length) return this; return new _If(not(cond), e instanceof _If ? [e] : e.nodes); } if (cond === false || !this.nodes.length) return void 0; return this; } optimizeNames(names, constants) { var _a; this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants); if (!(super.optimizeNames(names, constants) || this.else)) return; this.condition = optimizeExpr(this.condition, names, constants); return this; } get names() { const names = super.names; addExprNames(names, this.condition); if (this.else) addNames(names, this.else.names); return names; } }; If.kind = "if"; var For = class extends BlockNode { }; For.kind = "for"; var ForLoop = class extends For { constructor(iteration) { super(); this.iteration = iteration; } render(opts) { return `for(${this.iteration})` + super.render(opts); } optimizeNames(names, constants) { if (!super.optimizeNames(names, constants)) return; this.iteration = optimizeExpr(this.iteration, names, constants); return this; } get names() { return addNames(super.names, this.iteration.names); } }; var ForRange = class extends For { constructor(varKind, name, from, to) { super(); this.varKind = varKind; this.name = name; this.from = from; this.to = to; } render(opts) { const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind; const { name, from, to } = this; return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts); } get names() { const names = addExprNames(super.names, this.from); return addExprNames(names, this.to); } }; var ForIter = class extends For { constructor(loop, varKind, name, iterable) { super(); this.loop = loop; this.varKind = varKind; this.name = name; this.iterable = iterable; } render(opts) { return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts); } optimizeNames(names, constants) { if (!super.optimizeNames(names, constants)) return; this.iterable = optimizeExpr(this.iterable, names, constants); return this; } get names() { return addNames(super.names, this.iterable.names); } }; var Func = class extends BlockNode { constructor(name, args, async) { super(); this.name = name; this.args = args; this.async = async; } render(opts) { const _async = this.async ? "async " : ""; return `${_async}function ${this.name}(${this.args})` + super.render(opts); } }; Func.kind = "func"; var Return = class extends ParentNode { render(opts) { return "return " + super.render(opts); } }; Return.kind = "return"; var Try = class extends BlockNode { render(opts) { let code = "try" + super.render(opts); if (this.catch) code += this.catch.render(opts); if (this.finally) code += this.finally.render(opts); return code; } optimizeNodes() { var _a, _b; super.optimizeNodes(); (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes(); (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes(); return this; } optimizeNames(names, constants) { var _a, _b; super.optimizeNames(names, constants); (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants); (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants); return this; } get names() { const names = super.names; if (this.catch) addNames(names, this.catch.names); if (this.finally) addNames(names, this.finally.names); return names; } }; var Catch = class extends BlockNode { constructor(error) { super(); this.error = error; } render(opts) { return `catch(${this.error})` + super.render(opts); } }; Catch.kind = "catch"; var Finally = class extends BlockNode { render(opts) { return "finally" + super.render(opts); } }; Finally.kind = "finally"; var CodeGen = class { constructor(extScope, opts = {}) { this._values = {}; this._blockStarts = []; this._constants = {}; this.opts = { ...opts, _n: opts.lines ? "\n" : "" }; this._extScope = extScope; this._scope = new scope_1.Scope({ parent: extScope }); this._nodes = [new Root()]; } toString() { return this._root.render(this.opts); } // returns unique name in the internal scope name(prefix) { return this._scope.name(prefix); } // reserves unique name in the external scope scopeName(prefix) { return this._extScope.name(prefix); } // reserves unique name in the external scope and assigns value to it scopeValue(prefixOrName, value) { const name = this._extScope.value(prefixOrName, value); const vs = this._values[name.prefix] || (this._values[name.prefix] = /* @__PURE__ */ new Set()); vs.add(name); return name; } getScopeValue(prefix, keyOrRef) { return this._extScope.getValue(prefix, keyOrRef); } // return code that assigns values in the external scope to the names that are used internally // (same names that were returned by gen.scopeName or gen.scopeValue) scopeRefs(scopeName) { return this._extScope.scopeRefs(scopeName, this._values); } scopeCode() { return this._extScope.scopeCode(this._values); } _def(varKind, nameOrPrefix, rhs, constant) { const name = this._scope.toName(nameOrPrefix); if (rhs !== void 0 && constant) this._constants[name.str] = rhs; this._leafNode(new Def(varKind, name, rhs)); return name; } // `const` declaration (`var` in es5 mode) const(nameOrPrefix, rhs, _constant) { return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant); } // `let` declaration with optional assignment (`var` in es5 mode) let(nameOrPrefix, rhs, _constant) { return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant); } // `var` declaration with optional assignment var(nameOrPrefix, rhs, _constant) { return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant); } // assignment code assign(lhs, rhs, sideEffects) { return this._leafNode(new Assign(lhs, rhs, sideEffects)); } // `+=` code add(lhs, rhs) { return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs)); } // appends passed SafeExpr to code or executes Block code(c) { if (typeof c == "function") c(); else if (c !== code_1.nil) this._leafNode(new AnyCode(c)); return this; } // returns code for object literal for the passed argument list of key-value pairs object(...keyValues) { const code = ["{"]; for (const [key, value] of keyValues) { if (code.length > 1) code.push(","); code.push(key); if (key !== value || this.opts.es5) { code.push(":"); (0, code_1.addCodeArg)(code, value); } } code.push("}"); return new code_1._Code(code); } // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed) if(condition, thenBody, elseBody) { this._blockNode(new If(condition)); if (thenBody && elseBody) { this.code(thenBody).else().code(elseBody).endIf(); } else if (thenBody) { this.code(thenBody).endIf(); } else if (elseBody) { throw new Error('CodeGen: "else" body without "then" body'); } return this; } // `else if` clause - invalid without `if` or after `else` clauses elseIf(condition) { return this._elseNode(new If(condition)); } // `else` clause - only valid after `if` or `else if` clauses else() { return this._elseNode(new Else()); } // end `if` statement (needed if gen.if was used only with condition) endIf() { return this._endBlockNode(If, Else); } _for(node, forBody) { this._blockNode(node); if (forBody) this.code(forBody).endFor(); return this; } // a generic `for` clause (or statement if `forBody` is passed) for(iteration, forBody) { return this._for(new ForLoop(iteration), forBody); } // `for` statement for a range of values forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) { const name = this._scope.toName(nameOrPrefix); return this._for(new ForRange(varKind, name, from, to), () => forBody(name)); } // `for-of` statement (in es5 mode replace with a normal for loop) forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) { const name = this._scope.toName(nameOrPrefix); if (this.opts.es5) { const arr = iterable instanceof code_1.Name ? iterable : this.var("_arr", iterable); return this.forRange("_i", 0, (0, code_1._)`${arr}.length`, (i) => { this.var(name, (0, code_1._)`${arr}[${i}]`); forBody(name); }); } return this._for(new ForIter("of", varKind, name, iterable), () => forBody(name)); } // `for-in` statement. // With option `ownProperties` replaced with a `for-of` loop for object keys forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) { if (this.opts.ownProperties) { return this.forOf(nameOrPrefix, (0, code_1._)`Object.keys(${obj})`, forBody); } const name = this._scope.toName(nameOrPrefix); return this._for(new ForIter("in", varKind, name, obj), () => forBody(name)); } // end `for` loop endFor() { return this._endBlockNode(For); } // `label` statement label(label) { return this._leafNode(new Label(label)); } // `break` statement break(label) { return this._leafNode(new Break(label)); } // `return` statement return(value) { const node = new Return(); this._blockNode(node); this.code(value); if (node.nodes.length !== 1) throw new Error('CodeGen: "return" should have one node'); return this._endBlockNode(Return); } // `try` statement try(tryBody, catchCode, finallyCode) { if (!catchCode && !finallyCode) throw new Error('CodeGen: "try" without "catch" and "finally"'); const node = new Try(); this._blockNode(node); this.code(tryBody); if (catchCode) { const error = this.name("e"); this._currNode = node.catch = new Catch(error); catchCode(error); } if (finallyCode) { this._currNode = node.finally = new Finally(); this.code(finallyCode); } return this._endBlockNode(Catch, Finally); } // `throw` statement throw(error) { return this._leafNode(new Throw(error)); } // start self-balancing block block(body, nodeCount) { this._blockStarts.push(this._nodes.length); if (body) this.code(body).endBlock(nodeCount); return this; } // end the current self-balancing block endBlock(nodeCount) { const len = this._blockStarts.pop(); if (len === void 0) throw new Error("CodeGen: not in self-balancing block"); const toClose = this._nodes.length - len; if (toClose < 0 || nodeCount !== void 0 && toClose !== nodeCount) { throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`); } this._nodes.length = len; return this; } // `function` heading (or definition if funcBody is passed) func(name, args = code_1.nil, async, funcBody) { this._blockNode(new Func(name, args, async)); if (funcBody) this.code(funcBody).endFunc(); return this; } // end function definition endFunc() { return this._endBlockNode(Func); } optimize(n = 1) { while (n-- > 0) { this._root.optimizeNodes(); this._root.optimizeNames(this._root.names, this._constants); } } _leafNode(node) { this._currNode.nodes.push(node); return this; } _blockNode(node) { this._currNode.nodes.push(node); this._nodes.push(node); } _endBlockNode(N1, N2) { const n = this._currNode; if (n instanceof N1 || N2 && n instanceof N2) { this._nodes.pop(); return this; } throw new Error(`CodeGen: not in block "${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}"`); } _elseNode(node) { const n = this._currNode; if (!(n instanceof If)) { throw new Error('CodeGen: "else" without "if"'); } this._currNode = n.else = node; return this; } get _root() { return this._nodes[0]; } get _currNode() { const ns = this._nodes; return ns[ns.length - 1]; } set _currNode(node) { const ns = this._nodes; ns[ns.length - 1] = node; } }; exports.CodeGen = CodeGen; function addNames(names, from) { for (const n in from) names[n] = (names[n] || 0) + (from[n] || 0); return names; } function addExprNames(names, from) { return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names; } function optimizeExpr(expr, names, constants) { if (expr instanceof code_1.Name) return replaceName(expr); if (!canOptimize(expr)) return expr; return new code_1._Code(expr._items.reduce((items, c) => { if (c instanceof code_1.Name) c = replaceName(c); if (c instanceof code_1._Code) items.push(...c._items); else items.push(c); return items; }, [])); function replaceName(n) { const c = constants[n.str]; if (c === void 0 || names[n.str] !== 1) return n; delete names[n.str]; return c; } function canOptimize(e) { return e instanceof code_1._Code && e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== void 0); } } function subtractNames(names, from) { for (const n in from) names[n] = (names[n] || 0) - (from[n] || 0); } function not(x) { return typeof x == "boolean" || typeof x == "number" || x === null ? !x : (0, code_1._)`!${par(x)}`; } exports.not = not; var andCode = mappend(exports.operators.AND); function and(...args) { return args.reduce(andCode); } exports.and = and; var orCode = mappend(exports.operators.OR); function or(...args) { return args.reduce(orCode); } exports.or = or; function mappend(op) { return (x, y) => x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._)`${par(x)} ${op} ${par(y)}`; } function par(x) { return x instanceof code_1.Name ? x : (0, code_1._)`(${x})`; } } }); // node_modules/ajv/dist/compile/util.js var require_util = __commonJS({ "node_modules/ajv/dist/compile/util.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0; var codegen_1 = require_codegen(); var code_1 = require_code(); function toHash(arr) { const hash = {}; for (const item of arr) hash[item] = true; return hash; } exports.toHash = toHash; function alwaysValidSchema(it, schema) { if (typeof schema == "boolean") return schema; if (Object.keys(schema).length === 0) return true; checkUnknownRules(it, schema); return !schemaHasRules(schema, it.self.RULES.all); } exports.alwaysValidSchema = alwaysValidSchema; function checkUnknownRules(it, schema = it.schema) { const { opts, self } = it; if (!opts.strictSchema) return; if (typeof schema === "boolean") return; const rules = self.RULES.keywords; for (const key in schema) { if (!rules[key]) checkStrictMode(it, `unknown keyword: "${key}"`); } } exports.checkUnknownRules = checkUnknownRules; function schemaHasRules(schema, rules) { if (typeof schema == "boolean") return !schema; for (const key in schema) if (rules[key]) return true; return false; } exports.schemaHasRules = schemaHasRules; function schemaHasRulesButRef(schema, RULES) { if (typeof schema == "boolean") return !schema; for (const key in schema) if (key !== "$ref" && RULES.all[key]) return true; return false; } exports.schemaHasRulesButRef = schemaHasRulesButRef; function schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) { if (!$data) { if (typeof schema == "number" || typeof schema == "boolean") return schema; if (typeof schema == "string") return (0, codegen_1._)`${schema}`; } return (0, codegen_1._)`${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`; } exports.schemaRefOrVal = schemaRefOrVal; function unescapeFragment(str) { return unescapeJsonPointer(decodeURIComponent(str)); } exports.unescapeFragment = unescapeFragment; function escapeFragment(str) { return encodeURIComponent(escapeJsonPointer(str)); } exports.escapeFragment = escapeFragment; function escapeJsonPointer(str) { if (typeof str == "number") return `${str}`; return str.replace(/~/g, "~0").replace(/\//g, "~1"); } exports.escapeJsonPointer = escapeJsonPointer; function unescapeJsonPointer(str) { return str.replace(/~1/g, "/").replace(/~0/g, "~"); } exports.unescapeJsonPointer = unescapeJsonPointer; function eachItem(xs, f) { if (Array.isArray(xs)) { for (const x of xs) f(x); } else { f(xs); } } exports.eachItem = eachItem; function makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName }) { return (gen, from, to, toName) => { const res = to === void 0 ? from : to instanceof codegen_1.Name ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to) : from instanceof codegen_1.Name ? (mergeToName(gen, to, from), from) : mergeValues(from, to); return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res; }; } exports.mergeEvaluated = { props: makeMergeEvaluated({ mergeNames: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true && ${from} !== undefined`, () => { gen.if((0, codegen_1._)`${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._)`${to} || {}`).code((0, codegen_1._)`Object.assign(${to}, ${from})`)); }), mergeToName: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true`, () => { if (from === true) { gen.assign(to, true); } else { gen.assign(to, (0, codegen_1._)`${to} || {}`); setEvaluated(gen, to, from); } }), mergeValues: (from, to) => from === true ? true : { ...from, ...to }, resultToName: evaluatedPropsToName }), items: makeMergeEvaluated({ mergeNames: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._)`${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)), mergeToName: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._)`${to} > ${from} ? ${to} : ${from}`)), mergeValues: (from, to) => from === true ? true : Math.max(from, to), resultToName: (gen, items) => gen.var("items", items) }) }; function evaluatedPropsToName(gen, ps) { if (ps === true) return gen.var("props", true); const props = gen.var("props", (0, codegen_1._)`{}`); if (ps !== void 0) setEvaluated(gen, props, ps); return props; } exports.evaluatedPropsToName = evaluatedPropsToName; function setEvaluated(gen, props, ps) { Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._)`${props}${(0, codegen_1.getProperty)(p)}`, true)); } exports.setEvaluated = setEvaluated; var snippets = {}; function useFunc(gen, f) { return gen.scopeValue("func", { ref: f, code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)) }); } exports.useFunc = useFunc; var Type; (function(Type2) { Type2[Type2["Num"] = 0] = "Num"; Type2[Type2["Str"] = 1] = "Str"; })(Type || (exports.Type = Type = {})); function getErrorPath(dataProp, dataPropType, jsPropertySyntax) { if (dataProp instanceof codegen_1.Name) { const isNumber = dataPropType === Type.Num; return jsPropertySyntax ? isNumber ? (0, codegen_1._)`"[" + ${dataProp} + "]"` : (0, codegen_1._)`"['" + ${dataProp} + "']"` : isNumber ? (0, codegen_1._)`"/" + ${dataProp}` : (0, codegen_1._)`"/" + ${dataProp}.replace(/~/g, "~0").replace(/\\//g, "~1")`; } return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : "/" + escapeJsonPointer(dataProp); } exports.getErrorPath = getErrorPath; function checkStrictMode(it, msg, mode = it.opts.strictSchema) { if (!mode) return; msg = `strict mode: ${msg}`; if (mode === true) throw new Error(msg); it.self.logger.warn(msg); } exports.checkStrictMode = checkStrictMode; } }); // node_modules/ajv/dist/compile/names.js var require_names = __commonJS({ "node_modules/ajv/dist/compile/names.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var codegen_1 = require_codegen(); var names = { // validation function arguments data: new codegen_1.Name("data"), // data passed to validation function // args passed from referencing schema valCxt: new codegen_1.Name("valCxt"), // validation/data context - should not be used directly, it is destructured to the names below instancePath: new codegen_1.Name("instancePath"), parentData: new codegen_1.Name("parentData"), parentDataProperty: new codegen_1.Name("parentDataProperty"), rootData: new codegen_1.Name("rootData"), // root data - same as the data passed to the first/top validation function dynamicAnchors: new codegen_1.Name("dynamicAnchors"), // used to support recursiveRef and dynamicRef // function scoped variables vErrors: new codegen_1.Name("vErrors"), // null or array of validation errors errors: new codegen_1.Name("errors"), // counter of validation errors this: new codegen_1.Name("this"), // "globals" self: new codegen_1.Name("self"), scope: new codegen_1.Name("scope"), // JTD serialize/parse name for JSON string and position json: new codegen_1.Name("json"), jsonPos: new codegen_1.Name("jsonPos"), jsonLen: new codegen_1.Name("jsonLen"), jsonPart: new codegen_1.Name("jsonPart") }; exports.default = names; } }); // node_modules/ajv/dist/compile/errors.js var require_errors = __commonJS({ "node_modules/ajv/dist/compile/errors.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0; var codegen_1 = require_codegen(); var util_1 = require_util(); var names_1 = require_names(); exports.keywordError = { message: ({ keyword }) => (0, codegen_1.str)`must pass "${keyword}" keyword validation` }; exports.keyword$DataError = { message: ({ keyword, schemaType }) => schemaType ? (0, codegen_1.str)`"${keyword}" keyword must be ${schemaType} ($data)` : (0, codegen_1.str)`"${keyword}" keyword is invalid ($data)` }; function reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) { const { it } = cxt; const { gen, compositeRule, allErrors } = it; const errObj = errorObjectCode(cxt, error, errorPaths); if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : compositeRule || allErrors) { addError(gen, errObj); } else { returnErrors(it, (0, codegen_1._)`[${errObj}]`); } } exports.reportError = reportError; function reportExtraError(cxt, error = exports.keywordError, errorPaths) { const { it } = cxt; const { gen, compositeRule, allErrors } = it; const errObj = errorObjectCode(cxt, error, errorPaths); addError(gen, errObj); if (!(compositeRule || allErrors)) { returnErrors(it, names_1.default.vErrors); } } exports.reportExtraError = reportExtraError; function resetErrorsCount(gen, errsCount) { gen.assign(names_1.default.errors, errsCount); gen.if((0, codegen_1._)`${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._)`${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null))); } exports.resetErrorsCount = resetErrorsCount; function extendErrors({ gen, keyword, schemaValue, data, errsCount, it }) { if (errsCount === void 0) throw new Error("ajv implementation error"); const err = gen.name("err"); gen.forRange("i", errsCount, names_1.default.errors, (i) => { gen.const(err, (0, codegen_1._)`${names_1.default.vErrors}[${i}]`); gen.if((0, codegen_1._)`${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._)`${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath))); gen.assign((0, codegen_1._)`${err}.schemaPath`, (0, codegen_1.str)`${it.errSchemaPath}/${keyword}`); if (it.opts.verbose) { gen.assign((0, codegen_1._)`${err}.schema`, schemaValue); gen.assign((0, codegen_1._)`${err}.data`, data); } }); } exports.extendErrors = extendErrors; function addError(gen, errObj) { const err = gen.const("err", errObj); gen.if((0, codegen_1._)`${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._)`[${err}]`), (0, codegen_1._)`${names_1.default.vErrors}.push(${err})`); gen.code((0, codegen_1._)`${names_1.default.errors}++`); } function returnErrors(it, errs) { const { gen, validateName, schemaEnv } = it; if (schemaEnv.$async) { gen.throw((0, codegen_1._)`new ${it.ValidationError}(${errs})`); } else { gen.assign((0, codegen_1._)`${validateName}.errors`, errs); gen.return(false); } } var E = { keyword: new codegen_1.Name("keyword"), schemaPath: new codegen_1.Name("schemaPath"), // also used in JTD errors params: new codegen_1.Name("params"), propertyName: new codegen_1.Name("propertyName"), message: new codegen_1.Name("message"), schema: new codegen_1.Name("schema"), parentSchema: new codegen_1.Name("parentSchema") }; function errorObjectCode(cxt, error, errorPaths) { const { createErrors } = cxt.it; if (createErrors === false) return (0, codegen_1._)`{}`; return errorObject(cxt, error, errorPaths); } function errorObject(cxt, error, errorPaths = {}) { const { gen, it } = cxt; const keyValues = [ errorInstancePath(it, errorPaths), errorSchemaPath(cxt, errorPaths) ]; extraErrorProps(cxt, error, keyValues); return gen.object(...keyValues); } function errorInstancePath({ errorPath }, { instancePath }) { const instPath = instancePath ? (0, codegen_1.str)`${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}` : errorPath; return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)]; } function errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) { let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str)`${errSchemaPath}/${keyword}`; if (schemaPath) { schPath = (0, codegen_1.str)`${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`; } return [E.schemaPath, schPath]; } function extraErrorProps(cxt, { params, message }, keyValues) { const { keyword, data, schemaValue, it } = cxt; const { opts, propertyName, topSchemaRef, schemaPath } = it; keyValues.push([E.keyword, keyword], [E.params, typeof params == "function" ? params(cxt) : params || (0, codegen_1._)`{}`]); if (opts.messages) { keyValues.push([E.message, typeof message == "function" ? message(cxt) : message]); } if (opts.verbose) { keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._)`${topSchemaRef}${schemaPath}`], [names_1.default.data, data]); } if (propertyName) keyValues.push([E.propertyName, propertyName]); } } }); // node_modules/ajv/dist/compile/validate/boolSchema.js var require_boolSchema = __commonJS({ "node_modules/ajv/dist/compile/validate/boolSchema.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0; var errors_1 = require_errors(); var codegen_1 = require_codegen(); var names_1 = require_names(); var boolError = { message: "boolean schema is false" }; function topBoolOrEmptySchema(it) { const { gen, schema, validateName } = it; if (schema === false) { falseSchemaError(it, false); } else if (typeof schema == "object" && schema.$async === true) { gen.return(names_1.default.data); } else { gen.assign((0, codegen_1._)`${validateName}.errors`, null); gen.return(true); } } exports.topBoolOrEmptySchema = topBoolOrEmptySchema; function boolOrEmptySchema(it, valid) { const { gen, schema } = it; if (schema === false) { gen.var(valid, false); falseSchemaError(it); } else { gen.var(valid, true); } } exports.boolOrEmptySchema = boolOrEmptySchema; function falseSchemaError(it, overrideAllErrors) { const { gen, data } = it; const cxt = { gen, keyword: "false schema", data, schema: false, schemaCode: false, schemaValue: false, params: {}, it }; (0, errors_1.reportError)(cxt, boolError, void 0, overrideAllErrors); } } }); // node_modules/ajv/dist/compile/rules.js var require_rules = __commonJS({ "node_modules/ajv/dist/compile/rules.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getRules = exports.isJSONType = void 0; var _jsonTypes = ["string", "number", "integer", "boolean", "null", "object", "array"]; var jsonTypes = new Set(_jsonTypes); function isJSONType(x) { return typeof x == "string" && jsonTypes.has(x); } exports.isJSONType = isJSONType; function getRules() { const groups = { number: { type: "number", rules: [] }, string: { type: "string", rules: [] }, array: { type: "array", rules: [] }, object: { type: "object", rules: [] } }; return { types: { ...groups, integer: true, boolean: true, null: true }, rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object], post: { rules: [] }, all: {}, keywords: {} }; } exports.getRules = getRules; } }); // node_modules/ajv/dist/compile/validate/applicability.js var require_applicability = __commonJS({ "node_modules/ajv/dist/compile/validate/applicability.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0; function schemaHasRulesForType({ schema, self }, type) { const group = self.RULES.types[type]; return group && group !== true && shouldUseGroup(schema, group); } exports.schemaHasRulesForType = schemaHasRulesForType; function shouldUseGroup(schema, group) { return group.rules.some((rule) => shouldUseRule(schema, rule)); } exports.shouldUseGroup = shouldUseGroup; function shouldUseRule(schema, rule) { var _a; return schema[rule.keyword] !== void 0 || ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== void 0)); } exports.shouldUseRule = shouldUseRule; } }); // node_modules/ajv/dist/compile/validate/dataType.js var require_dataType = __commonJS({ "node_modules/ajv/dist/compile/validate/dataType.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0; var rules_1 = require_rules(); var applicability_1 = require_applicability(); var errors_1 = require_errors(); var codegen_1 = require_codegen(); var util_1 = require_util(); var DataType; (function(DataType2) { DataType2[DataType2["Correct"] = 0] = "Correct"; DataType2[DataType2["Wrong"] = 1] = "Wrong"; })(DataType || (exports.DataType = DataType = {})); function getSchemaTypes(schema) { const types = getJSONTypes(schema.type); const hasNull = types.includes("null"); if (hasNull) { if (schema.nullable === false) throw new Error("type: null contradicts nullable: false"); } else { if (!types.length && schema.nullable !== void 0) { throw new Error('"nullable" cannot be used without "type"'); } if (schema.nullable === true) types.push("null"); } return types; } exports.getSchemaTypes = getSchemaTypes; function getJSONTypes(ts) { const types = Array.isArray(ts) ? ts : ts ? [ts] : []; if (types.every(rules_1.isJSONType)) return types; throw new Error("type must be JSONType or JSONType[]: " + types.join(",")); } exports.getJSONTypes = getJSONTypes; function coerceAndCheckDataType(it, types) { const { gen, data, opts } = it; const coerceTo = coerceToTypes(types, opts.coerceTypes); const checkTypes = types.length > 0 && !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0])); if (checkTypes) { const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong); gen.if(wrongType, () => { if (coerceTo.length) coerceData(it, types, coerceTo); else reportTypeError(it); }); } return checkTypes; } exports.coerceAndCheckDataType = coerceAndCheckDataType; var COERCIBLE = /* @__PURE__ */ new Set(["string", "number", "integer", "boolean", "null"]); function coerceToTypes(types, coerceTypes) { return coerceTypes ? types.filter((t) => COERCIBLE.has(t) || coerceTypes === "array" && t === "array") : []; } function coerceData(it, types, coerceTo) { const { gen, data, opts } = it; const dataType = gen.let("dataType", (0, codegen_1._)`typeof ${data}`); const coerced = gen.let("coerced", (0, codegen_1._)`undefined`); if (opts.coerceTypes === "array") { gen.if((0, codegen_1._)`${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen.assign(data, (0, codegen_1._)`${data}[0]`).assign(dataType, (0, codegen_1._)`typeof ${data}`).if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data))); } gen.if((0, codegen_1._)`${coerced} !== undefined`); for (const t of coerceTo) { if (COERCIBLE.has(t) || t === "array" && opts.coerceTypes === "array") { coerceSpecificType(t); } } gen.else(); reportTypeError(it); gen.endIf(); gen.if((0, codegen_1._)`${coerced} !== undefined`, () => { gen.assign(data, coerced); assignParentData(it, coerced); }); function coerceSpecificType(t) { switch (t) { case "string": gen.elseIf((0, codegen_1._)`${dataType} == "number" || ${dataType} == "boolean"`).assign(coerced, (0, codegen_1._)`"" + ${data}`).elseIf((0, codegen_1._)`${data} === null`).assign(coerced, (0, codegen_1._)`""`); return; case "number": gen.elseIf((0, codegen_1._)`${dataType} == "boolean" || ${data} === null || (${dataType} == "string" && ${data} && ${data} == +${data})`).assign(coerced, (0, codegen_1._)`+${data}`); return; case "integer": gen.elseIf((0, codegen_1._)`${dataType} === "boolean" || ${data} === null || (${dataType} === "string" && ${data} && ${data} == +${data} && !(${data} % 1))`).assign(coerced, (0, codegen_1._)`+${data}`); return; case "boolean": gen.elseIf((0, codegen_1._)`${data} === "false" || ${data} === 0 || ${data} === null`).assign(coerced, false).elseIf((0, codegen_1._)`${data} === "true" || ${data} === 1`).assign(coerced, true); return; case "null": gen.elseIf((0, codegen_1._)`${data} === "" || ${data} === 0 || ${data} === false`); gen.assign(coerced, null); return; case "array": gen.elseIf((0, codegen_1._)`${dataType} === "string" || ${dataType} === "number" || ${dataType} === "boolean" || ${data} === null`).assign(coerced, (0, codegen_1._)`[${data}]`); } } } function assignParentData({ gen, parentData, parentDataProperty }, expr) { gen.if((0, codegen_1._)`${parentData} !== undefined`, () => gen.assign((0, codegen_1._)`${parentData}[${parentDataProperty}]`, expr)); } function checkDataType(dataType, data, strictNums, correct = DataType.Correct) { const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ; let cond; switch (dataType) { case "null": return (0, codegen_1._)`${data} ${EQ} null`; case "array": cond = (0, codegen_1._)`Array.isArray(${data})`; break; case "object": cond = (0, codegen_1._)`${data} && typeof ${data} == "object" && !Array.isArray(${data})`; break; case "integer": cond = numCond((0, codegen_1._)`!(${data} % 1) && !isNaN(${data})`); break; case "number": cond = numCond(); break; default: return (0, codegen_1._)`typeof ${data} ${EQ} ${dataType}`; } return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond); function numCond(_cond = codegen_1.nil) { return (0, codegen_1.and)((0, codegen_1._)`typeof ${data} == "number"`, _cond, strictNums ? (0, codegen_1._)`isFinite(${data})` : codegen_1.nil); } } exports.checkDataType = checkDataType; function checkDataTypes(dataTypes, data, strictNums, correct) { if (dataTypes.length === 1) { return checkDataType(dataTypes[0], data, strictNums, correct); } let cond; const types = (0, util_1.toHash)(dataTypes); if (types.array && types.object) { const notObj = (0, codegen_1._)`typeof ${data} != "object"`; cond = types.null ? notObj : (0, codegen_1._)`!${data} || ${notObj}`; delete types.null; delete types.array; delete types.object; } else { cond = codegen_1.nil; } if (types.number) delete types.integer; for (const t in types) cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct)); return cond; } exports.checkDataTypes = checkDataTypes; var typeError = { message: ({ schema }) => `must be ${schema}`, params: ({ schema, schemaValue }) => typeof schema == "string" ? (0, codegen_1._)`{type: ${schema}}` : (0, codegen_1._)`{type: ${schemaValue}}` }; function reportTypeError(it) { const cxt = getTypeErrorContext(it); (0, errors_1.reportError)(cxt, typeError); } exports.reportTypeError = reportTypeError; function getTypeErrorContext(it) { const { gen, data, schema } = it; const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, "type"); return { gen, keyword: "type", data, schema: schema.type, schemaCode, schemaValue: schemaCode, parentSchema: schema, params: {}, it }; } } }); // node_modules/ajv/dist/compile/validate/defaults.js var require_defaults = __commonJS({ "node_modules/ajv/dist/compile/validate/defaults.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.assignDefaults = void 0; var codegen_1 = require_codegen(); var util_1 = require_util(); function assignDefaults(it, ty) { const { properties, items } = it.schema; if (ty === "object" && properties) { for (const key in properties) { assignDefault(it, key, properties[key].default); } } else if (ty === "array" && Array.isArray(items)) { items.forEach((sch, i) => assignDefault(it, i, sch.default)); } } exports.assignDefaults = assignDefaults; function assignDefault(it, prop, defaultValue) { const { gen, compositeRule, data, opts } = it; if (defaultValue === void 0) return; const childData = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(prop)}`; if (compositeRule) { (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`); return; } let condition = (0, codegen_1._)`${childData} === undefined`; if (opts.useDefaults === "empty") { condition = (0, codegen_1._)`${condition} || ${childData} === null || ${childData} === ""`; } gen.if(condition, (0, codegen_1._)`${childData} = ${(0, codegen_1.stringify)(defaultValue)}`); } } }); // node_modules/ajv/dist/vocabularies/code.js var require_code2 = __commonJS({ "node_modules/ajv/dist/vocabularies/code.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0; var codegen_1 = require_codegen(); var util_1 = require_util(); var names_1 = require_names(); var util_2 = require_util(); function checkReportMissingProp(cxt, prop) { const { gen, data, it } = cxt; gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => { cxt.setParams({ missingProperty: (0, codegen_1._)`${prop}` }, true); cxt.error(); }); } exports.checkReportMissingProp = checkReportMissingProp; function checkMissingProp({ gen, data, it: { opts } }, properties, missing) { return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._)`${missing} = ${prop}`))); } exports.checkMissingProp = checkMissingProp; function reportMissingProp(cxt, missing) { cxt.setParams({ missingProperty: missing }, true); cxt.error(); } exports.reportMissingProp = reportMissingProp; function hasPropFunc(gen) { return gen.scopeValue("func", { // eslint-disable-next-line @typescript-eslint/unbound-method ref: Object.prototype.hasOwnProperty, code: (0, codegen_1._)`Object.prototype.hasOwnProperty` }); } exports.hasPropFunc = hasPropFunc; function isOwnProperty(gen, data, property) { return (0, codegen_1._)`${hasPropFunc(gen)}.call(${data}, ${property})`; } exports.isOwnProperty = isOwnProperty; function propertyInData(gen, data, property, ownProperties) { const cond = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(property)} !== undefined`; return ownProperties ? (0, codegen_1._)`${cond} && ${isOwnProperty(gen, data, property)}` : cond; } exports.propertyInData = propertyInData; function noPropertyInData(gen, data, property, ownProperties) { const cond = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(property)} === undefined`; return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond; } exports.noPropertyInData = noPropertyInData; function allSchemaProperties(schemaMap) { return schemaMap ? Object.keys(schemaMap).filter((p) => p !== "__proto__") : []; } exports.allSchemaProperties = allSchemaProperties; function schemaProperties(it, schemaMap) { return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p])); } exports.schemaProperties = schemaProperties; function callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) { const dataAndSchema = passSchema ? (0, codegen_1._)`${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data; const valCxt = [ [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)], [names_1.default.parentData, it.parentData], [names_1.default.parentDataProperty, it.parentDataProperty], [names_1.default.rootData, names_1.default.rootData] ]; if (it.opts.dynamicRef) valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]); const args = (0, codegen_1._)`${dataAndSchema}, ${gen.object(...valCxt)}`; return context !== codegen_1.nil ? (0, codegen_1._)`${func}.call(${context}, ${args})` : (0, codegen_1._)`${func}(${args})`; } exports.callValidateCode = callValidateCode; var newRegExp = (0, codegen_1._)`new RegExp`; function usePattern({ gen, it: { opts } }, pattern) { const u = opts.unicodeRegExp ? "u" : ""; const { regExp } = opts.code; const rx = regExp(pattern, u); return gen.scopeValue("pattern", { key: rx.toString(), ref: rx, code: (0, codegen_1._)`${regExp.code === "new RegExp" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})` }); } exports.usePattern = usePattern; function validateArray(cxt) { const { gen, data, keyword, it } = cxt; const valid = gen.name("valid"); if (it.allErrors) { const validArr = gen.let("valid", true); validateItems(() => gen.assign(validArr, false)); return validArr; } gen.var(valid, true); validateItems(() => gen.break()); return valid; function validateItems(notValid) { const len = gen.const("len", (0, codegen_1._)`${data}.length`); gen.forRange("i", 0, len, (i) => { cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid); gen.if((0, codegen_1.not)(valid), notValid); }); } } exports.validateArray = validateArray; function validateUnion(cxt) { const { gen, schema, keyword, it } = cxt; if (!Array.isArray(schema)) throw new Error("ajv implementation error"); const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch)); if (alwaysValid && !it.opts.unevaluated) return; const valid = gen.let("valid", false); const schValid = gen.name("_valid"); gen.block(() => schema.forEach((_sch, i) => { const schCxt = cxt.subschema({ keyword, schemaProp: i, compositeRule: true }, schValid); gen.assign(valid, (0, codegen_1._)`${valid} || ${schValid}`); const merged = cxt.mergeValidEvaluated(schCxt, schValid); if (!merged) gen.if((0, codegen_1.not)(valid)); })); cxt.result(valid, () => cxt.reset(), () => cxt.error(true)); } exports.validateUnion = validateUnion; } }); // node_modules/ajv/dist/compile/validate/keyword.js var require_keyword = __commonJS({ "node_modules/ajv/dist/compile/validate/keyword.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0; var codegen_1 = require_codegen(); var names_1 = require_names(); var code_1 = require_code2(); var errors_1 = require_errors(); function macroKeywordCode(cxt, def) { const { gen, keyword, schema, parentSchema, it } = cxt; const macroSchema = def.macro.call(it.self, schema, parentSchema, it); const schemaRef = useKeyword(gen, keyword, macroSchema); if (it.opts.validateSchema !== false) it.self.validateSchema(macroSchema, true); const valid = gen.name("valid"); cxt.subschema({ schema: macroSchema, schemaPath: codegen_1.nil, errSchemaPath: `${it.errSchemaPath}/${keyword}`, topSchemaRef: schemaRef, compositeRule: true }, valid); cxt.pass(valid, () => cxt.error(true)); } exports.macroKeywordCode = macroKeywordCode; function funcKeywordCode(cxt, def) { var _a; const { gen, keyword, schema, parentSchema, $data, it } = cxt; checkAsyncKeyword(it, def); const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate; const validateRef = useKeyword(gen, keyword, validate); const valid = gen.let("valid"); cxt.block$data(valid, validateKeyword); cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid); function validateKeyword() { if (def.errors === false) { assignValid(); if (def.modifying) modifyData(cxt); reportErrs(() => cxt.error()); } else { const ruleErrs = def.async ? validateAsync() : validateSync(); if (def.modifying) modifyData(cxt); reportErrs(() => addErrs(cxt, ruleErrs)); } } function validateAsync() { const ruleErrs = gen.let("ruleErrs", null); gen.try(() => assignValid((0, codegen_1._)`await `), (e) => gen.assign(valid, false).if((0, codegen_1._)`${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._)`${e}.errors`), () => gen.throw(e))); return ruleErrs; } function validateSync() { const validateErrs = (0, codegen_1._)`${validateRef}.errors`; gen.assign(validateErrs, null); assignValid(codegen_1.nil); return validateErrs; } function assignValid(_await = def.async ? (0, codegen_1._)`await ` : codegen_1.nil) { const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self; const passSchema = !("compile" in def && !$data || def.schema === false); gen.assign(valid, (0, codegen_1._)`${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying); } function reportErrs(errors) { var _a2; gen.if((0, codegen_1.not)((_a2 = def.valid) !== null && _a2 !== void 0 ? _a2 : valid), errors); } } exports.funcKeywordCode = funcKeywordCode; function modifyData(cxt) { const { gen, data, it } = cxt; gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._)`${it.parentData}[${it.parentDataProperty}]`)); } function addErrs(cxt, errs) { const { gen } = cxt; gen.if((0, codegen_1._)`Array.isArray(${errs})`, () => { gen.assign(names_1.default.vErrors, (0, codegen_1._)`${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`).assign(names_1.default.errors, (0, codegen_1._)`${names_1.default.vErrors}.length`); (0, errors_1.extendErrors)(cxt); }, () => cxt.error()); } function checkAsyncKeyword({ schemaEnv }, def) { if (def.async && !schemaEnv.$async) throw new Error("async keyword in sync schema"); } function useKeyword(gen, keyword, result) { if (result === void 0) throw new Error(`keyword "${keyword}" failed to compile`); return gen.scopeValue("keyword", typeof result == "function" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) }); } function validSchemaType(schema, schemaType, allowUndefined = false) { return !schemaType.length || schemaType.some((st) => st === "array" ? Array.isArray(schema) : st === "object" ? schema && typeof schema == "object" && !Array.isArray(schema) : typeof schema == st || allowUndefined && typeof schema == "undefined"); } exports.validSchemaType = validSchemaType; function validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) { if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) { throw new Error("ajv implementation error"); } const deps = def.dependencies; if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) { throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(",")}`); } if (def.validateSchema) { const valid = def.validateSchema(schema[keyword]); if (!valid) { const msg = `keyword "${keyword}" value is invalid at path "${errSchemaPath}": ` + self.errorsText(def.validateSchema.errors); if (opts.validateSchema === "log") self.logger.error(msg); else throw new Error(msg); } } } exports.validateKeywordUsage = validateKeywordUsage; } }); // node_modules/ajv/dist/compile/validate/subschema.js var require_subschema = __commonJS({ "node_modules/ajv/dist/compile/validate/subschema.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0; var codegen_1 = require_codegen(); var util_1 = require_util(); function getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) { if (keyword !== void 0 && schema !== void 0) { throw new Error('both "keyword" and "schema" passed, only one allowed'); } if (keyword !== void 0) { const sch = it.schema[keyword]; return schemaProp === void 0 ? { schema: sch, schemaPath: (0, codegen_1._)`${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`, errSchemaPath: `${it.errSchemaPath}/${keyword}` } : { schema: sch[schemaProp], schemaPath: (0, codegen_1._)`${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`, errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}` }; } if (schema !== void 0) { if (schemaPath === void 0 || errSchemaPath === void 0 || topSchemaRef === void 0) { throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"'); } return { schema, schemaPath, topSchemaRef, errSchemaPath }; } throw new Error('either "keyword" or "schema" must be passed'); } exports.getSubschema = getSubschema; function extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) { if (data !== void 0 && dataProp !== void 0) { throw new Error('both "data" and "dataProp" passed, only one allowed'); } const { gen } = it; if (dataProp !== void 0) { const { errorPath, dataPathArr, opts } = it; const nextData = gen.let("data", (0, codegen_1._)`${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true); dataContextProps(nextData); subschema.errorPath = (0, codegen_1.str)`${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`; subschema.parentDataProperty = (0, codegen_1._)`${dataProp}`; subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty]; } if (data !== void 0) { const nextData = data instanceof codegen_1.Name ? data : gen.let("data", data, true); dataContextProps(nextData); if (propertyName !== void 0) subschema.propertyName = propertyName; } if (dataTypes) subschema.dataTypes = dataTypes; function dataContextProps(_nextData) { subschema.data = _nextData; subschema.dataLevel = it.dataLevel + 1; subschema.dataTypes = []; it.definedProperties = /* @__PURE__ */ new Set(); subschema.parentData = it.data; subschema.dataNames = [...it.dataNames, _nextData]; } } exports.extendSubschemaData = extendSubschemaData; function extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) { if (compositeRule !== void 0) subschema.compositeRule = compositeRule; if (createErrors !== void 0) subschema.createErrors = createErrors; if (allErrors !== void 0) subschema.allErrors = allErrors; subschema.jtdDiscriminator = jtdDiscriminator; subschema.jtdMetadata = jtdMetadata; } exports.extendSubschemaMode = extendSubschemaMode; } }); // node_modules/fast-deep-equal/index.js var require_fast_deep_equal = __commonJS({ "node_modules/fast-deep-equal/index.js"(exports, module) { "use strict"; module.exports = function equal(a, b) { if (a === b) return true; if (a && b && typeof a == "object" && typeof b == "object") { if (a.constructor !== b.constructor) return false; var length, i, keys; if (Array.isArray(a)) { length = a.length; if (length != b.length) return false; for (i = length; i-- !== 0; ) if (!equal(a[i], b[i])) return false; return true; } if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); keys = Object.keys(a); length = keys.length; if (length !== Object.keys(b).length) return false; for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; for (i = length; i-- !== 0; ) { var key = keys[i]; if (!equal(a[key], b[key])) return false; } return true; } return a !== a && b !== b; }; } }); // node_modules/ajv/node_modules/json-schema-traverse/index.js var require_json_schema_traverse = __commonJS({ "node_modules/ajv/node_modules/json-schema-traverse/index.js"(exports, module) { "use strict"; var traverse = module.exports = function(schema, opts, cb) { if (typeof opts == "function") { cb = opts; opts = {}; } cb = opts.cb || cb; var pre = typeof cb == "function" ? cb : cb.pre || function() { }; var post = cb.post || function() { }; _traverse(opts, pre, post, schema, "", schema); }; traverse.keywords = { additionalItems: true, items: true, contains: true, additionalProperties: true, propertyNames: true, not: true, if: true, then: true, else: true }; traverse.arrayKeywords = { items: true, allOf: true, anyOf: true, oneOf: true }; traverse.propsKeywords = { $defs: true, definitions: true, properties: true, patternProperties: true, dependencies: true }; traverse.skipKeywords = { default: true, enum: true, const: true, required: true, maximum: true, minimum: true, exclusiveMaximum: true, exclusiveMinimum: true, multipleOf: true, maxLength: true, minLength: true, pattern: true, format: true, maxItems: true, minItems: true, uniqueItems: true, maxProperties: true, minProperties: true }; function _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) { if (schema && typeof schema == "object" && !Array.isArray(schema)) { pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex); for (var key in schema) { var sch = schema[key]; if (Array.isArray(sch)) { if (key in traverse.arrayKeywords) { for (var i = 0; i < sch.length; i++) _traverse(opts, pre, post, sch[i], jsonPtr + "/" + key + "/" + i, rootSchema, jsonPtr, key, schema, i); } } else if (key in traverse.propsKeywords) { if (sch && typeof sch == "object") { for (var prop in sch) _traverse(opts, pre, post, sch[prop], jsonPtr + "/" + key + "/" + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop); } } else if (key in traverse.keywords || opts.allKeys && !(key in traverse.skipKeywords)) { _traverse(opts, pre, post, sch, jsonPtr + "/" + key, rootSchema, jsonPtr, key, schema); } } post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex); } } function escapeJsonPtr(str) { return str.replace(/~/g, "~0").replace(/\//g, "~1"); } } }); // node_modules/ajv/dist/compile/resolve.js var require_resolve = __commonJS({ "node_modules/ajv/dist/compile/resolve.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = void 0; var util_1 = require_util(); var equal = require_fast_deep_equal(); var traverse = require_json_schema_traverse(); var SIMPLE_INLINED = /* @__PURE__ */ new Set([ "type", "format", "pattern", "maxLength", "minLength", "maxProperties", "minProperties", "maxItems", "minItems", "maximum", "minimum", "uniqueItems", "multipleOf", "required", "enum", "const" ]); function inlineRef(schema, limit = true) { if (typeof schema == "boolean") return true; if (limit === true) return !hasRef(schema); if (!limit) return false; return countKeys(schema) <= limit; } exports.inlineRef = inlineRef; var REF_KEYWORDS = /* @__PURE__ */ new Set([ "$ref", "$recursiveRef", "$recursiveAnchor", "$dynamicRef", "$dynamicAnchor" ]); function hasRef(schema) { for (const key in schema) { if (REF_KEYWORDS.has(key)) return true; const sch = schema[key]; if (Array.isArray(sch) && sch.some(hasRef)) return true; if (typeof sch == "object" && hasRef(sch)) return true; } return false; } function countKeys(schema) { let count = 0; for (const key in schema) { if (key === "$ref") return Infinity; count++; if (SIMPLE_INLINED.has(key)) continue; if (typeof schema[key] == "object") { (0, util_1.eachItem)(schema[key], (sch) => count += countKeys(sch)); } if (count === Infinity) return Infinity; } return count; } function getFullPath(resolver, id = "", normalize) { if (normalize !== false) id = normalizeId(id); const p = resolver.parse(id); return _getFullPath(resolver, p); } exports.getFullPath = getFullPath; function _getFullPath(resolver, p) { const serialized = resolver.serialize(p); return serialized.split("#")[0] + "#"; } exports._getFullPath = _getFullPath; var TRAILING_SLASH_HASH = /#\/?$/; function normalizeId(id) { return id ? id.replace(TRAILING_SLASH_HASH, "") : ""; } exports.normalizeId = normalizeId; function resolveUrl(resolver, baseId, id) { id = normalizeId(id); return resolver.resolve(baseId, id); } exports.resolveUrl = resolveUrl; var ANCHOR = /^[a-z_][-a-z0-9._]*$/i; function getSchemaRefs(schema, baseId) { if (typeof schema == "boolean") return {}; const { schemaId, uriResolver } = this.opts; const schId = normalizeId(schema[schemaId] || baseId); const baseIds = { "": schId }; const pathPrefix = getFullPath(uriResolver, schId, false); const localRefs = {}; const schemaRefs = /* @__PURE__ */ new Set(); traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => { if (parentJsonPtr === void 0) return; const fullPath = pathPrefix + jsonPtr; let innerBaseId = baseIds[parentJsonPtr]; if (typeof sch[schemaId] == "string") innerBaseId = addRef.call(this, sch[schemaId]); addAnchor.call(this, sch.$anchor); addAnchor.call(this, sch.$dynamicAnchor); baseIds[jsonPtr] = innerBaseId; function addRef(ref) { const _resolve = this.opts.uriResolver.resolve; ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref); if (schemaRefs.has(ref)) throw ambiguos(ref); schemaRefs.add(ref); let schOrRef = this.refs[ref]; if (typeof schOrRef == "string") schOrRef = this.refs[schOrRef]; if (typeof schOrRef == "object") { checkAmbiguosRef(sch, schOrRef.schema, ref); } else if (ref !== normalizeId(fullPath)) { if (ref[0] === "#") { checkAmbiguosRef(sch, localRefs[ref], ref); localRefs[ref] = sch; } else { this.refs[ref] = fullPath; } } return ref; } function addAnchor(anchor) { if (typeof anchor == "string") { if (!ANCHOR.test(anchor)) throw new Error(`invalid anchor "${anchor}"`); addRef.call(this, `#${anchor}`); } } }); return localRefs; function checkAmbiguosRef(sch1, sch2, ref) { if (sch2 !== void 0 && !equal(sch1, sch2)) throw ambiguos(ref); } function ambiguos(ref) { return new Error(`reference "${ref}" resolves to more than one schema`); } } exports.getSchemaRefs = getSchemaRefs; } }); // node_modules/ajv/dist/compile/validate/index.js var require_validate = __commonJS({ "node_modules/ajv/dist/compile/validate/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0; var boolSchema_1 = require_boolSchema(); var dataType_1 = require_dataType(); var applicability_1 = require_applicability(); var dataType_2 = require_dataType(); var defaults_1 = require_defaults(); var keyword_1 = require_keyword(); var subschema_1 = require_subschema(); var codegen_1 = require_codegen(); var names_1 = require_names(); var resolve_1 = require_resolve(); var util_1 = require_util(); var errors_1 = require_errors(); function validateFunctionCode(it) { if (isSchemaObj(it)) { checkKeywords(it); if (schemaCxtHasRules(it)) { topSchemaObjCode(it); return; } } validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it)); } exports.validateFunctionCode = validateFunctionCode; function validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) { if (opts.code.es5) { gen.func(validateName, (0, codegen_1._)`${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => { gen.code((0, codegen_1._)`"use strict"; ${funcSourceUrl(schema, opts)}`); destructureValCxtES5(gen, opts); gen.code(body); }); } else { gen.func(validateName, (0, codegen_1._)`${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body)); } } function destructureValCxt(opts) { return (0, codegen_1._)`{${names_1.default.instancePath}="", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._)`, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`; } function destructureValCxtES5(gen, opts) { gen.if(names_1.default.valCxt, () => { gen.var(names_1.default.instancePath, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.instancePath}`); gen.var(names_1.default.parentData, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.parentData}`); gen.var(names_1.default.parentDataProperty, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.parentDataProperty}`); gen.var(names_1.default.rootData, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.rootData}`); if (opts.dynamicRef) gen.var(names_1.default.dynamicAnchors, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`); }, () => { gen.var(names_1.default.instancePath, (0, codegen_1._)`""`); gen.var(names_1.default.parentData, (0, codegen_1._)`undefined`); gen.var(names_1.default.parentDataProperty, (0, codegen_1._)`undefined`); gen.var(names_1.default.rootData, names_1.default.data); if (opts.dynamicRef) gen.var(names_1.default.dynamicAnchors, (0, codegen_1._)`{}`); }); } function topSchemaObjCode(it) { const { schema, opts, gen } = it; validateFunction(it, () => { if (opts.$comment && schema.$comment) commentKeyword(it); checkNoDefault(it); gen.let(names_1.default.vErrors, null); gen.let(names_1.default.errors, 0); if (opts.unevaluated) resetEvaluated(it); typeAndKeywords(it); returnResults(it); }); return; } function resetEvaluated(it) { const { gen, validateName } = it; it.evaluated = gen.const("evaluated", (0, codegen_1._)`${validateName}.evaluated`); gen.if((0, codegen_1._)`${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._)`${it.evaluated}.props`, (0, codegen_1._)`undefined`)); gen.if((0, codegen_1._)`${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._)`${it.evaluated}.items`, (0, codegen_1._)`undefined`)); } function funcSourceUrl(schema, opts) { const schId = typeof schema == "object" && schema[opts.schemaId]; return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._)`/*# sourceURL=${schId} */` : codegen_1.nil; } function subschemaCode(it, valid) { if (isSchemaObj(it)) { checkKeywords(it); if (schemaCxtHasRules(it)) { subSchemaObjCode(it, valid); return; } } (0, boolSchema_1.boolOrEmptySchema)(it, valid); } function schemaCxtHasRules({ schema, self }) { if (typeof schema == "boolean") return !schema; for (const key in schema) if (self.RULES.all[key]) return true; return false; } function isSchemaObj(it) { return typeof it.schema != "boolean"; } function subSchemaObjCode(it, valid) { const { schema, gen, opts } = it; if (opts.$comment && schema.$comment) commentKeyword(it); updateContext(it); checkAsyncSchema(it); const errsCount = gen.const("_errs", names_1.default.errors); typeAndKeywords(it, errsCount); gen.var(valid, (0, codegen_1._)`${errsCount} === ${names_1.default.errors}`); } function checkKeywords(it) { (0, util_1.checkUnknownRules)(it); checkRefsAndKeywords(it); } function typeAndKeywords(it, errsCount) { if (it.opts.jtd) return schemaKeywords(it, [], false, errsCount); const types = (0, dataType_1.getSchemaTypes)(it.schema); const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types); schemaKeywords(it, types, !checkedTypes, errsCount); } function checkRefsAndKeywords(it) { const { schema, errSchemaPath, opts, self } = it; if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) { self.logger.warn(`$ref: keywords ignored in schema at path "${errSchemaPath}"`); } } function checkNoDefault(it) { const { schema, opts } = it; if (schema.default !== void 0 && opts.useDefaults && opts.strictSchema) { (0, util_1.checkStrictMode)(it, "default is ignored in the schema root"); } } function updateContext(it) { const schId = it.schema[it.opts.schemaId]; if (schId) it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId); } function checkAsyncSchema(it) { if (it.schema.$async && !it.schemaEnv.$async) throw new Error("async schema in sync schema"); } function commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) { const msg = schema.$comment; if (opts.$comment === true) { gen.code((0, codegen_1._)`${names_1.default.self}.logger.log(${msg})`); } else if (typeof opts.$comment == "function") { const schemaPath = (0, codegen_1.str)`${errSchemaPath}/$comment`; const rootName = gen.scopeValue("root", { ref: schemaEnv.root }); gen.code((0, codegen_1._)`${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`); } } function returnResults(it) { const { gen, schemaEnv, validateName, ValidationError, opts } = it; if (schemaEnv.$async) { gen.if((0, codegen_1._)`${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._)`new ${ValidationError}(${names_1.default.vErrors})`)); } else { gen.assign((0, codegen_1._)`${validateName}.errors`, names_1.default.vErrors); if (opts.unevaluated) assignEvaluated(it); gen.return((0, codegen_1._)`${names_1.default.errors} === 0`); } } function assignEvaluated({ gen, evaluated, props, items }) { if (props instanceof codegen_1.Name) gen.assign((0, codegen_1._)`${evaluated}.props`, props); if (items instanceof codegen_1.Name) gen.assign((0, codegen_1._)`${evaluated}.items`, items); } function schemaKeywords(it, types, typeErrors, errsCount) { const { gen, schema, data, allErrors, opts, self } = it; const { RULES } = self; if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) { gen.block(() => keywordCode(it, "$ref", RULES.all.$ref.definition)); return; } if (!opts.jtd) checkStrictTypes(it, types); gen.block(() => { for (const group of RULES.rules) groupKeywords(group); groupKeywords(RULES.post); }); function groupKeywords(group) { if (!(0, applicability_1.shouldUseGroup)(schema, group)) return; if (group.type) { gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers)); iterateKeywords(it, group); if (types.length === 1 && types[0] === group.type && typeErrors) { gen.else(); (0, dataType_2.reportTypeError)(it); } gen.endIf(); } else { iterateKeywords(it, group); } if (!allErrors) gen.if((0, codegen_1._)`${names_1.default.errors} === ${errsCount || 0}`); } } function iterateKeywords(it, group) { const { gen, schema, opts: { useDefaults } } = it; if (useDefaults) (0, defaults_1.assignDefaults)(it, group.type); gen.block(() => { for (const rule of group.rules) { if ((0, applicability_1.shouldUseRule)(schema, rule)) { keywordCode(it, rule.keyword, rule.definition, group.type); } } }); } function checkStrictTypes(it, types) { if (it.schemaEnv.meta || !it.opts.strictTypes) return; checkContextTypes(it, types); if (!it.opts.allowUnionTypes) checkMultipleTypes(it, types); checkKeywordTypes(it, it.dataTypes); } function checkContextTypes(it, types) { if (!types.length) return; if (!it.dataTypes.length) { it.dataTypes = types; return; } types.forEach((t) => { if (!includesType(it.dataTypes, t)) { strictTypesError(it, `type "${t}" not allowed by context "${it.dataTypes.join(",")}"`); } }); narrowSchemaTypes(it, types); } function checkMultipleTypes(it, ts) { if (ts.length > 1 && !(ts.length === 2 && ts.includes("null"))) { strictTypesError(it, "use allowUnionTypes to allow union type keyword"); } } function checkKeywordTypes(it, ts) { const rules = it.self.RULES.all; for (const keyword in rules) { const rule = rules[keyword]; if (typeof rule == "object" && (0, applicability_1.shouldUseRule)(it.schema, rule)) { const { type } = rule.definition; if (type.length && !type.some((t) => hasApplicableType(ts, t))) { strictTypesError(it, `missing type "${type.join(",")}" for keyword "${keyword}"`); } } } } function hasApplicableType(schTs, kwdT) { return schTs.includes(kwdT) || kwdT === "number" && schTs.includes("integer"); } function includesType(ts, t) { return ts.includes(t) || t === "integer" && ts.includes("number"); } function narrowSchemaTypes(it, withTypes) { const ts = []; for (const t of it.dataTypes) { if (includesType(withTypes, t)) ts.push(t); else if (withTypes.includes("integer") && t === "number") ts.push("integer"); } it.dataTypes = ts; } function strictTypesError(it, msg) { const schemaPath = it.schemaEnv.baseId + it.errSchemaPath; msg += ` at "${schemaPath}" (strictTypes)`; (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes); } var KeywordCxt = class { constructor(it, def, keyword) { (0, keyword_1.validateKeywordUsage)(it, def, keyword); this.gen = it.gen; this.allErrors = it.allErrors; this.keyword = keyword; this.data = it.data; this.schema = it.schema[keyword]; this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data; this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data); this.schemaType = def.schemaType; this.parentSchema = it.schema; this.params = {}; this.it = it; this.def = def; if (this.$data) { this.schemaCode = it.gen.const("vSchema", getData(this.$data, it)); } else { this.schemaCode = this.schemaValue; if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) { throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`); } } if ("code" in def ? def.trackErrors : def.errors !== false) { this.errsCount = it.gen.const("_errs", names_1.default.errors); } } result(condition, successAction, failAction) { this.failResult((0, codegen_1.not)(condition), successAction, failAction); } failResult(condition, successAction, failAction) { this.gen.if(condition); if (failAction) failAction(); else this.error(); if (successAction) { this.gen.else(); successAction(); if (this.allErrors) this.gen.endIf(); } else { if (this.allErrors) this.gen.endIf(); else this.gen.else(); } } pass(condition, failAction) { this.failResult((0, codegen_1.not)(condition), void 0, failAction); } fail(condition) { if (condition === void 0) { this.error(); if (!this.allErrors) this.gen.if(false); return; } this.gen.if(condition); this.error(); if (this.allErrors) this.gen.endIf(); else this.gen.else(); } fail$data(condition) { if (!this.$data) return this.fail(condition); const { schemaCode } = this; this.fail((0, codegen_1._)`${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`); } error(append, errorParams, errorPaths) { if (errorParams) { this.setParams(errorParams); this._error(append, errorPaths); this.setParams({}); return; } this._error(append, errorPaths); } _error(append, errorPaths) { ; (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths); } $dataError() { (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError); } reset() { if (this.errsCount === void 0) throw new Error('add "trackErrors" to keyword definition'); (0, errors_1.resetErrorsCount)(this.gen, this.errsCount); } ok(cond) { if (!this.allErrors) this.gen.if(cond); } setParams(obj, assign) { if (assign) Object.assign(this.params, obj); else this.params = obj; } block$data(valid, codeBlock, $dataValid = codegen_1.nil) { this.gen.block(() => { this.check$data(valid, $dataValid); codeBlock(); }); } check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) { if (!this.$data) return; const { gen, schemaCode, schemaType, def } = this; gen.if((0, codegen_1.or)((0, codegen_1._)`${schemaCode} === undefined`, $dataValid)); if (valid !== codegen_1.nil) gen.assign(valid, true); if (schemaType.length || def.validateSchema) { gen.elseIf(this.invalid$data()); this.$dataError(); if (valid !== codegen_1.nil) gen.assign(valid, false); } gen.else(); } invalid$data() { const { gen, schemaCode, schemaType, def, it } = this; return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema()); function wrong$DataType() { if (schemaType.length) { if (!(schemaCode instanceof codegen_1.Name)) throw new Error("ajv implementation error"); const st = Array.isArray(schemaType) ? schemaType : [schemaType]; return (0, codegen_1._)`${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`; } return codegen_1.nil; } function invalid$DataSchema() { if (def.validateSchema) { const validateSchemaRef = gen.scopeValue("validate$data", { ref: def.validateSchema }); return (0, codegen_1._)`!${validateSchemaRef}(${schemaCode})`; } return codegen_1.nil; } } subschema(appl, valid) { const subschema = (0, subschema_1.getSubschema)(this.it, appl); (0, subschema_1.extendSubschemaData)(subschema, this.it, appl); (0, subschema_1.extendSubschemaMode)(subschema, appl); const nextContext = { ...this.it, ...subschema, items: void 0, props: void 0 }; subschemaCode(nextContext, valid); return nextContext; } mergeEvaluated(schemaCxt, toName) { const { it, gen } = this; if (!it.opts.unevaluated) return; if (it.props !== true && schemaCxt.props !== void 0) { it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName); } if (it.items !== true && schemaCxt.items !== void 0) { it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName); } } mergeValidEvaluated(schemaCxt, valid) { const { it, gen } = this; if (it.opts.unevaluated && (it.props !== true || it.items !== true)) { gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name)); return true; } } }; exports.KeywordCxt = KeywordCxt; function keywordCode(it, keyword, def, ruleType) { const cxt = new KeywordCxt(it, def, keyword); if ("code" in def) { def.code(cxt, ruleType); } else if (cxt.$data && def.validate) { (0, keyword_1.funcKeywordCode)(cxt, def); } else if ("macro" in def) { (0, keyword_1.macroKeywordCode)(cxt, def); } else if (def.compile || def.validate) { (0, keyword_1.funcKeywordCode)(cxt, def); } } var JSON_POINTER = /^\/(?:[^~]|~0|~1)*$/; var RELATIVE_JSON_POINTER = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/; function getData($data, { dataLevel, dataNames, dataPathArr }) { let jsonPointer; let data; if ($data === "") return names_1.default.rootData; if ($data[0] === "/") { if (!JSON_POINTER.test($data)) throw new Error(`Invalid JSON-pointer: ${$data}`); jsonPointer = $data; data = names_1.default.rootData; } else { const matches = RELATIVE_JSON_POINTER.exec($data); if (!matches) throw new Error(`Invalid JSON-pointer: ${$data}`); const up = +matches[1]; jsonPointer = matches[2]; if (jsonPointer === "#") { if (up >= dataLevel) throw new Error(errorMsg("property/index", up)); return dataPathArr[dataLevel - up]; } if (up > dataLevel) throw new Error(errorMsg("data", up)); data = dataNames[dataLevel - up]; if (!jsonPointer) return data; } let expr = data; const segments = jsonPointer.split("/"); for (const segment of segments) { if (segment) { data = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`; expr = (0, codegen_1._)`${expr} && ${data}`; } } return expr; function errorMsg(pointerType, up) { return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`; } } exports.getData = getData; } }); // node_modules/ajv/dist/runtime/validation_error.js var require_validation_error = __commonJS({ "node_modules/ajv/dist/runtime/validation_error.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var ValidationError = class extends Error { constructor(errors) { super("validation failed"); this.errors = errors; this.ajv = this.validation = true; } }; exports.default = ValidationError; } }); // node_modules/ajv/dist/compile/ref_error.js var require_ref_error = __commonJS({ "node_modules/ajv/dist/compile/ref_error.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var resolve_1 = require_resolve(); var MissingRefError = class extends Error { constructor(resolver, baseId, ref, msg) { super(msg || `can't resolve reference ${ref} from id ${baseId}`); this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref); this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef)); } }; exports.default = MissingRefError; } }); // node_modules/ajv/dist/compile/index.js var require_compile = __commonJS({ "node_modules/ajv/dist/compile/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0; var codegen_1 = require_codegen(); var validation_error_1 = require_validation_error(); var names_1 = require_names(); var resolve_1 = require_resolve(); var util_1 = require_util(); var validate_1 = require_validate(); var SchemaEnv = class { constructor(env) { var _a; this.refs = {}; this.dynamicAnchors = {}; let schema; if (typeof env.schema == "object") schema = env.schema; this.schema = env.schema; this.schemaId = env.schemaId; this.root = env.root || this; this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || "$id"]); this.schemaPath = env.schemaPath; this.localRefs = env.localRefs; this.meta = env.meta; this.$async = schema === null || schema === void 0 ? void 0 : schema.$async; this.refs = {}; } }; exports.SchemaEnv = SchemaEnv; function compileSchema(sch) { const _sch = getCompilingSchema.call(this, sch); if (_sch) return _sch; const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); const { es5, lines } = this.opts.code; const { ownProperties } = this.opts; const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties }); let _ValidationError; if (sch.$async) { _ValidationError = gen.scopeValue("Error", { ref: validation_error_1.default, code: (0, codegen_1._)`require("ajv/dist/runtime/validation_error").default` }); } const validateName = gen.scopeName("validate"); sch.validateName = validateName; const schemaCxt = { gen, allErrors: this.opts.allErrors, data: names_1.default.data, parentData: names_1.default.parentData, parentDataProperty: names_1.default.parentDataProperty, dataNames: [names_1.default.data], dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed? dataLevel: 0, dataTypes: [], definedProperties: /* @__PURE__ */ new Set(), topSchemaRef: gen.scopeValue("schema", this.opts.code.source === true ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) } : { ref: sch.schema }), validateName, ValidationError: _ValidationError, schema: sch.schema, schemaEnv: sch, rootId, baseId: sch.baseId || rootId, schemaPath: codegen_1.nil, errSchemaPath: sch.schemaPath || (this.opts.jtd ? "" : "#"), errorPath: (0, codegen_1._)`""`, opts: this.opts, self: this }; let sourceCode; try { this._compilations.add(sch); (0, validate_1.validateFunctionCode)(schemaCxt); gen.optimize(this.opts.code.optimize); const validateCode = gen.toString(); sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`; if (this.opts.code.process) sourceCode = this.opts.code.process(sourceCode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode); const validate = makeValidate(this, this.scope.get()); this.scope.value(validateName, { ref: validate }); validate.errors = null; validate.schema = sch.schema; validate.schemaEnv = sch; if (sch.$async) validate.$async = true; if (this.opts.code.source === true) { validate.source = { validateName, validateCode, scopeValues: gen._values }; } if (this.opts.unevaluated) { const { props, items } = schemaCxt; validate.evaluated = { props: props instanceof codegen_1.Name ? void 0 : props, items: items instanceof codegen_1.Name ? void 0 : items, dynamicProps: props instanceof codegen_1.Name, dynamicItems: items instanceof codegen_1.Name }; if (validate.source) validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated); } sch.validate = validate; return sch; } catch (e) { delete sch.validate; delete sch.validateName; if (sourceCode) this.logger.error("Error compiling schema, function code:", sourceCode); throw e; } finally { this._compilations.delete(sch); } } exports.compileSchema = compileSchema; function resolveRef(root, baseId, ref) { var _a; ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref); const schOrFunc = root.refs[ref]; if (schOrFunc) return schOrFunc; let _sch = resolve.call(this, root, ref); if (_sch === void 0) { const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; const { schemaId } = this.opts; if (schema) _sch = new SchemaEnv({ schema, schemaId, root, baseId }); } if (_sch === void 0) return; return root.refs[ref] = inlineOrCompile.call(this, _sch); } exports.resolveRef = resolveRef; function inlineOrCompile(sch) { if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs)) return sch.schema; return sch.validate ? sch : compileSchema.call(this, sch); } function getCompilingSchema(schEnv) { for (const sch of this._compilations) { if (sameSchemaEnv(sch, schEnv)) return sch; } } exports.getCompilingSchema = getCompilingSchema; function sameSchemaEnv(s1, s2) { return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId; } function resolve(root, ref) { let sch; while (typeof (sch = this.refs[ref]) == "string") ref = sch; return sch || this.schemas[ref] || resolveSchema.call(this, root, ref); } function resolveSchema(root, ref) { const p = this.opts.uriResolver.parse(ref); const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p); let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, void 0); if (Object.keys(root.schema).length > 0 && refPath === baseId) { return getJsonPointer.call(this, p, root); } const id = (0, resolve_1.normalizeId)(refPath); const schOrRef = this.refs[id] || this.schemas[id]; if (typeof schOrRef == "string") { const sch = resolveSchema.call(this, root, schOrRef); if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== "object") return; return getJsonPointer.call(this, p, sch); } if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== "object") return; if (!schOrRef.validate) compileSchema.call(this, schOrRef); if (id === (0, resolve_1.normalizeId)(ref)) { const { schema } = schOrRef; const { schemaId } = this.opts; const schId = schema[schemaId]; if (schId) baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId); return new SchemaEnv({ schema, schemaId, root, baseId }); } return getJsonPointer.call(this, p, schOrRef); } exports.resolveSchema = resolveSchema; var PREVENT_SCOPE_CHANGE = /* @__PURE__ */ new Set([ "properties", "patternProperties", "enum", "dependencies", "definitions" ]); function getJsonPointer(parsedRef, { baseId, schema, root }) { var _a; if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== "/") return; for (const part of parsedRef.fragment.slice(1).split("/")) { if (typeof schema === "boolean") return; const partSchema = schema[(0, util_1.unescapeFragment)(part)]; if (partSchema === void 0) return; schema = partSchema; const schId = typeof schema === "object" && schema[this.opts.schemaId]; if (!PREVENT_SCOPE_CHANGE.has(part) && schId) { baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId); } } let env; if (typeof schema != "boolean" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) { const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref); env = resolveSchema.call(this, root, $ref); } const { schemaId } = this.opts; env = env || new SchemaEnv({ schema, schemaId, root, baseId }); if (env.schema !== env.root.schema) return env; return void 0; } } }); // node_modules/ajv/dist/refs/data.json var require_data2 = __commonJS({ "node_modules/ajv/dist/refs/data.json"(exports, module) { module.exports = { $id: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#", description: "Meta-schema for $data reference (JSON AnySchema extension proposal)", type: "object", required: ["$data"], properties: { $data: { type: "string", anyOf: [{ format: "relative-json-pointer" }, { format: "json-pointer" }] } }, additionalProperties: false }; } }); // node_modules/fast-uri/lib/scopedChars.js var require_scopedChars = __commonJS({ "node_modules/fast-uri/lib/scopedChars.js"(exports, module) { "use strict"; var HEX = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, a: 10, A: 10, b: 11, B: 11, c: 12, C: 12, d: 13, D: 13, e: 14, E: 14, f: 15, F: 15 }; module.exports = { HEX }; } }); // node_modules/fast-uri/lib/utils.js var require_utils = __commonJS({ "node_modules/fast-uri/lib/utils.js"(exports, module) { "use strict"; var { HEX } = require_scopedChars(); function normalizeIPv4(host) { if (findToken(host, ".") < 3) { return { host, isIPV4: false }; } const matches = host.match(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u) || []; const [address] = matches; if (address) { return { host: stripLeadingZeros(address, "."), isIPV4: true }; } else { return { host, isIPV4: false }; } } function stringArrayToHexStripped(input, keepZero = false) { let acc = ""; let strip = true; for (const c of input) { if (HEX[c] === void 0) return void 0; if (c !== "0" && strip === true) strip = false; if (!strip) acc += c; } if (keepZero && acc.length === 0) acc = "0"; return acc; } function getIPV6(input) { let tokenCount = 0; const output = { error: false, address: "", zone: "" }; const address = []; const buffer = []; let isZone = false; let endipv6Encountered = false; let endIpv6 = false; function consume() { if (buffer.length) { if (isZone === false) { const hex = stringArrayToHexStripped(buffer); if (hex !== void 0) { address.push(hex); } else { output.error = true; return false; } } buffer.length = 0; } return true; } for (let i = 0; i < input.length; i++) { const cursor = input[i]; if (cursor === "[" || cursor === "]") { continue; } if (cursor === ":") { if (endipv6Encountered === true) { endIpv6 = true; } if (!consume()) { break; } tokenCount++; address.push(":"); if (tokenCount > 7) { output.error = true; break; } if (i - 1 >= 0 && input[i - 1] === ":") { endipv6Encountered = true; } continue; } else if (cursor === "%") { if (!consume()) { break; } isZone = true; } else { buffer.push(cursor); continue; } } if (buffer.length) { if (isZone) { output.zone = buffer.join(""); } else if (endIpv6) { address.push(buffer.join("")); } else { address.push(stringArrayToHexStripped(buffer)); } } output.address = address.join(""); return output; } function normalizeIPv6(host, opts = {}) { if (findToken(host, ":") < 2) { return { host, isIPV6: false }; } const ipv6 = getIPV6(host); if (!ipv6.error) { let newHost = ipv6.address; let escapedHost = ipv6.address; if (ipv6.zone) { newHost += "%" + ipv6.zone; escapedHost += "%25" + ipv6.zone; } return { host: newHost, escapedHost, isIPV6: true }; } else { return { host, isIPV6: false }; } } function stripLeadingZeros(str, token) { let out = ""; let skip = true; const l = str.length; for (let i = 0; i < l; i++) { const c = str[i]; if (c === "0" && skip) { if (i + 1 <= l && str[i + 1] === token || i + 1 === l) { out += c; skip = false; } } else { if (c === token) { skip = true; } else { skip = false; } out += c; } } return out; } function findToken(str, token) { let ind = 0; for (let i = 0; i < str.length; i++) { if (str[i] === token) ind++; } return ind; } var RDS1 = /^\.\.?\//u; var RDS2 = /^\/\.(?:\/|$)/u; var RDS3 = /^\/\.\.(?:\/|$)/u; var RDS5 = /^\/?(?:.|\n)*?(?=\/|$)/u; function removeDotSegments(input) { const output = []; while (input.length) { if (input.match(RDS1)) { input = input.replace(RDS1, ""); } else if (input.match(RDS2)) { input = input.replace(RDS2, "/"); } else if (input.match(RDS3)) { input = input.replace(RDS3, "/"); output.pop(); } else if (input === "." || input === "..") { input = ""; } else { const im = input.match(RDS5); if (im) { const s = im[0]; input = input.slice(s.length); output.push(s); } else { throw new Error("Unexpected dot segment condition"); } } } return output.join(""); } function normalizeComponentEncoding(components, esc) { const func = esc !== true ? escape : unescape; if (components.scheme !== void 0) { components.scheme = func(components.scheme); } if (components.userinfo !== void 0) { components.userinfo = func(components.userinfo); } if (components.host !== void 0) { components.host = func(components.host); } if (components.path !== void 0) { components.path = func(components.path); } if (components.query !== void 0) { components.query = func(components.query); } if (components.fragment !== void 0) { components.fragment = func(components.fragment); } return components; } function recomposeAuthority(components, options) { const uriTokens = []; if (components.userinfo !== void 0) { uriTokens.push(components.userinfo); uriTokens.push("@"); } if (components.host !== void 0) { let host = unescape(components.host); const ipV4res = normalizeIPv4(host); if (ipV4res.isIPV4) { host = ipV4res.host; } else { const ipV6res = normalizeIPv6(ipV4res.host, { isIPV4: false }); if (ipV6res.isIPV6 === true) { host = `[${ipV6res.escapedHost}]`; } else { host = components.host; } } uriTokens.push(host); } if (typeof components.port === "number" || typeof components.port === "string") { uriTokens.push(":"); uriTokens.push(String(components.port)); } return uriTokens.length ? uriTokens.join("") : void 0; } module.exports = { recomposeAuthority, normalizeComponentEncoding, removeDotSegments, normalizeIPv4, normalizeIPv6, stringArrayToHexStripped }; } }); // node_modules/fast-uri/lib/schemes.js var require_schemes = __commonJS({ "node_modules/fast-uri/lib/schemes.js"(exports, module) { "use strict"; var UUID_REG = /^[\da-f]{8}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{12}$/iu; var URN_REG = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu; function isSecure(wsComponents) { return typeof wsComponents.secure === "boolean" ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === "wss"; } function httpParse(components) { if (!components.host) { components.error = components.error || "HTTP URIs must have a host."; } return components; } function httpSerialize(components) { const secure = String(components.scheme).toLowerCase() === "https"; if (components.port === (secure ? 443 : 80) || components.port === "") { components.port = void 0; } if (!components.path) { components.path = "/"; } return components; } function wsParse(wsComponents) { wsComponents.secure = isSecure(wsComponents); wsComponents.resourceName = (wsComponents.path || "/") + (wsComponents.query ? "?" + wsComponents.query : ""); wsComponents.path = void 0; wsComponents.query = void 0; return wsComponents; } function wsSerialize(wsComponents) { if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === "") { wsComponents.port = void 0; } if (typeof wsComponents.secure === "boolean") { wsComponents.scheme = wsComponents.secure ? "wss" : "ws"; wsComponents.secure = void 0; } if (wsComponents.resourceName) { const [path, query] = wsComponents.resourceName.split("?"); wsComponents.path = path && path !== "/" ? path : void 0; wsComponents.query = query; wsComponents.resourceName = void 0; } wsComponents.fragment = void 0; return wsComponents; } function urnParse(urnComponents, options) { if (!urnComponents.path) { urnComponents.error = "URN can not be parsed"; return urnComponents; } const matches = urnComponents.path.match(URN_REG); if (matches) { const scheme = options.scheme || urnComponents.scheme || "urn"; urnComponents.nid = matches[1].toLowerCase(); urnComponents.nss = matches[2]; const urnScheme = `${scheme}:${options.nid || urnComponents.nid}`; const schemeHandler = SCHEMES[urnScheme]; urnComponents.path = void 0; if (schemeHandler) { urnComponents = schemeHandler.parse(urnComponents, options); } } else { urnComponents.error = urnComponents.error || "URN can not be parsed."; } return urnComponents; } function urnSerialize(urnComponents, options) { const scheme = options.scheme || urnComponents.scheme || "urn"; const nid = urnComponents.nid.toLowerCase(); const urnScheme = `${scheme}:${options.nid || nid}`; const schemeHandler = SCHEMES[urnScheme]; if (schemeHandler) { urnComponents = schemeHandler.serialize(urnComponents, options); } const uriComponents = urnComponents; const nss = urnComponents.nss; uriComponents.path = `${nid || options.nid}:${nss}`; options.skipEscape = true; return uriComponents; } function urnuuidParse(urnComponents, options) { const uuidComponents = urnComponents; uuidComponents.uuid = uuidComponents.nss; uuidComponents.nss = void 0; if (!options.tolerant && (!uuidComponents.uuid || !UUID_REG.test(uuidComponents.uuid))) { uuidComponents.error = uuidComponents.error || "UUID is not valid."; } return uuidComponents; } function urnuuidSerialize(uuidComponents) { const urnComponents = uuidComponents; urnComponents.nss = (uuidComponents.uuid || "").toLowerCase(); return urnComponents; } var http = { scheme: "http", domainHost: true, parse: httpParse, serialize: httpSerialize }; var https = { scheme: "https", domainHost: http.domainHost, parse: httpParse, serialize: httpSerialize }; var ws = { scheme: "ws", domainHost: true, parse: wsParse, serialize: wsSerialize }; var wss = { scheme: "wss", domainHost: ws.domainHost, parse: ws.parse, serialize: ws.serialize }; var urn = { scheme: "urn", parse: urnParse, serialize: urnSerialize, skipNormalize: true }; var urnuuid = { scheme: "urn:uuid", parse: urnuuidParse, serialize: urnuuidSerialize, skipNormalize: true }; var SCHEMES = { http, https, ws, wss, urn, "urn:uuid": urnuuid }; module.exports = SCHEMES; } }); // node_modules/fast-uri/index.js var require_fast_uri = __commonJS({ "node_modules/fast-uri/index.js"(exports, module) { "use strict"; var { normalizeIPv6, normalizeIPv4, removeDotSegments, recomposeAuthority, normalizeComponentEncoding } = require_utils(); var SCHEMES = require_schemes(); function normalize(uri, options) { if (typeof uri === "string") { uri = serialize(parse(uri, options), options); } else if (typeof uri === "object") { uri = parse(serialize(uri, options), options); } return uri; } function resolve(baseURI, relativeURI, options) { const schemelessOptions = Object.assign({ scheme: "null" }, options); const resolved = resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true); return serialize(resolved, { ...schemelessOptions, skipEscape: true }); } function resolveComponents(base, relative, options, skipNormalization) { const target = {}; if (!skipNormalization) { base = parse(serialize(base, options), options); relative = parse(serialize(relative, options), options); } options = options || {}; if (!options.tolerant && relative.scheme) { target.scheme = relative.scheme; target.userinfo = relative.userinfo; target.host = relative.host; target.port = relative.port; target.path = removeDotSegments(relative.path || ""); target.query = relative.query; } else { if (relative.userinfo !== void 0 || relative.host !== void 0 || relative.port !== void 0) { target.userinfo = relative.userinfo; target.host = relative.host; target.port = relative.port; target.path = removeDotSegments(relative.path || ""); target.query = relative.query; } else { if (!relative.path) { target.path = base.path; if (relative.query !== void 0) { target.query = relative.query; } else { target.query = base.query; } } else { if (relative.path.charAt(0) === "/") { target.path = removeDotSegments(relative.path); } else { if ((base.userinfo !== void 0 || base.host !== void 0 || base.port !== void 0) && !base.path) { target.path = "/" + relative.path; } else if (!base.path) { target.path = relative.path; } else { target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative.path; } target.path = removeDotSegments(target.path); } target.query = relative.query; } target.userinfo = base.userinfo; target.host = base.host; target.port = base.port; } target.scheme = base.scheme; } target.fragment = relative.fragment; return target; } function equal(uriA, uriB, options) { if (typeof uriA === "string") { uriA = unescape(uriA); uriA = serialize(normalizeComponentEncoding(parse(uriA, options), true), { ...options, skipEscape: true }); } else if (typeof uriA === "object") { uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true }); } if (typeof uriB === "string") { uriB = unescape(uriB); uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), { ...options, skipEscape: true }); } else if (typeof uriB === "object") { uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true }); } return uriA.toLowerCase() === uriB.toLowerCase(); } function serialize(cmpts, opts) { const components = { host: cmpts.host, scheme: cmpts.scheme, userinfo: cmpts.userinfo, port: cmpts.port, path: cmpts.path, query: cmpts.query, nid: cmpts.nid, nss: cmpts.nss, uuid: cmpts.uuid, fragment: cmpts.fragment, reference: cmpts.reference, resourceName: cmpts.resourceName, secure: cmpts.secure, error: "" }; const options = Object.assign({}, opts); const uriTokens = []; const schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()]; if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options); if (components.path !== void 0) { if (!options.skipEscape) { components.path = escape(components.path); if (components.scheme !== void 0) { components.path = components.path.split("%3A").join(":"); } } else { components.path = unescape(components.path); } } if (options.reference !== "suffix" && components.scheme) { uriTokens.push(components.scheme); uriTokens.push(":"); } const authority = recomposeAuthority(components, options); if (authority !== void 0) { if (options.reference !== "suffix") { uriTokens.push("//"); } uriTokens.push(authority); if (components.path && components.path.charAt(0) !== "/") { uriTokens.push("/"); } } if (components.path !== void 0) { let s = components.path; if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) { s = removeDotSegments(s); } if (authority === void 0) { s = s.replace(/^\/\//u, "/%2F"); } uriTokens.push(s); } if (components.query !== void 0) { uriTokens.push("?"); uriTokens.push(components.query); } if (components.fragment !== void 0) { uriTokens.push("#"); uriTokens.push(components.fragment); } return uriTokens.join(""); } var hexLookUp = Array.from({ length: 127 }, (v, k) => /[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(k))); function nonSimpleDomain(value) { let code = 0; for (let i = 0, len = value.length; i < len; ++i) { code = value.charCodeAt(i); if (code > 126 || hexLookUp[code]) { return true; } } return false; } var URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u; function parse(uri, opts) { const options = Object.assign({}, opts); const parsed = { scheme: void 0, userinfo: void 0, host: "", port: void 0, path: "", query: void 0, fragment: void 0 }; const gotEncoding = uri.indexOf("%") !== -1; let isIP = false; if (options.reference === "suffix") uri = (options.scheme ? options.scheme + ":" : "") + "//" + uri; const matches = uri.match(URI_PARSE); if (matches) { parsed.scheme = matches[1]; parsed.userinfo = matches[3]; parsed.host = matches[4]; parsed.port = parseInt(matches[5], 10); parsed.path = matches[6] || ""; parsed.query = matches[7]; parsed.fragment = matches[8]; if (isNaN(parsed.port)) { parsed.port = matches[5]; } if (parsed.host) { const ipv4result = normalizeIPv4(parsed.host); if (ipv4result.isIPV4 === false) { const ipv6result = normalizeIPv6(ipv4result.host, { isIPV4: false }); parsed.host = ipv6result.host.toLowerCase(); isIP = ipv6result.isIPV6; } else { parsed.host = ipv4result.host; isIP = true; } } if (parsed.scheme === void 0 && parsed.userinfo === void 0 && parsed.host === void 0 && parsed.port === void 0 && !parsed.path && parsed.query === void 0) { parsed.reference = "same-document"; } else if (parsed.scheme === void 0) { parsed.reference = "relative"; } else if (parsed.fragment === void 0) { parsed.reference = "absolute"; } else { parsed.reference = "uri"; } if (options.reference && options.reference !== "suffix" && options.reference !== parsed.reference) { parsed.error = parsed.error || "URI is not a " + options.reference + " reference."; } const schemeHandler = SCHEMES[(options.scheme || parsed.scheme || "").toLowerCase()]; if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) { if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) { try { parsed.host = URL.domainToASCII(parsed.host.toLowerCase()); } catch (e) { parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e; } } } if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) { if (gotEncoding && parsed.scheme !== void 0) { parsed.scheme = unescape(parsed.scheme); } if (gotEncoding && parsed.userinfo !== void 0) { parsed.userinfo = unescape(parsed.userinfo); } if (gotEncoding && parsed.host !== void 0) { parsed.host = unescape(parsed.host); } if (parsed.path !== void 0 && parsed.path.length) { parsed.path = escape(unescape(parsed.path)); } if (parsed.fragment !== void 0 && parsed.fragment.length) { parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment)); } } if (schemeHandler && schemeHandler.parse) { schemeHandler.parse(parsed, options); } } else { parsed.error = parsed.error || "URI can not be parsed."; } return parsed; } var fastUri = { SCHEMES, normalize, resolve, resolveComponents, equal, serialize, parse }; module.exports = fastUri; module.exports.default = fastUri; module.exports.fastUri = fastUri; } }); // node_modules/ajv/dist/runtime/uri.js var require_uri = __commonJS({ "node_modules/ajv/dist/runtime/uri.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var uri = require_fast_uri(); uri.code = 'require("ajv/dist/runtime/uri").default'; exports.default = uri; } }); // node_modules/ajv/dist/core.js var require_core = __commonJS({ "node_modules/ajv/dist/core.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0; var validate_1 = require_validate(); Object.defineProperty(exports, "KeywordCxt", { enumerable: true, get: function() { return validate_1.KeywordCxt; } }); var codegen_1 = require_codegen(); Object.defineProperty(exports, "_", { enumerable: true, get: function() { return codegen_1._; } }); Object.defineProperty(exports, "str", { enumerable: true, get: function() { return codegen_1.str; } }); Object.defineProperty(exports, "stringify", { enumerable: true, get: function() { return codegen_1.stringify; } }); Object.defineProperty(exports, "nil", { enumerable: true, get: function() { return codegen_1.nil; } }); Object.defineProperty(exports, "Name", { enumerable: true, get: function() { return codegen_1.Name; } }); Object.defineProperty(exports, "CodeGen", { enumerable: true, get: function() { return codegen_1.CodeGen; } }); var validation_error_1 = require_validation_error(); var ref_error_1 = require_ref_error(); var rules_1 = require_rules(); var compile_1 = require_compile(); var codegen_2 = require_codegen(); var resolve_1 = require_resolve(); var dataType_1 = require_dataType(); var util_1 = require_util(); var $dataRefSchema = require_data2(); var uri_1 = require_uri(); var defaultRegExp = (str, flags) => new RegExp(str, flags); defaultRegExp.code = "new RegExp"; var META_IGNORE_OPTIONS = ["removeAdditional", "useDefaults", "coerceTypes"]; var EXT_SCOPE_NAMES = /* @__PURE__ */ new Set([ "validate", "serialize", "parse", "wrapper", "root", "schema", "keyword", "pattern", "formats", "validate$data", "func", "obj", "Error" ]); var removedOptions = { errorDataPath: "", format: "`validateFormats: false` can be used instead.", nullable: '"nullable" keyword is supported by default.', jsonPointers: "Deprecated jsPropertySyntax can be used instead.", extendRefs: "Deprecated ignoreKeywordsWithRef can be used instead.", missingRefs: "Pass empty schema with $id that should be ignored to ajv.addSchema.", processCode: "Use option `code: {process: (code, schemaEnv: object) => string}`", sourceCode: "Use option `code: {source: true}`", strictDefaults: "It is default now, see option `strict`.", strictKeywords: "It is default now, see option `strict`.", uniqueItems: '"uniqueItems" keyword is always validated.', unknownFormats: "Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).", cache: "Map is used as cache, schema object as key.", serialize: "Map is used as cache, schema object as key.", ajvErrors: "It is default now." }; var deprecatedOptions = { ignoreKeywordsWithRef: "", jsPropertySyntax: "", unicode: '"minLength"/"maxLength" account for unicode characters by default.' }; var MAX_EXPRESSION = 200; function requiredOptions(o) { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0; const s = o.strict; const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize; const optimize = _optz === true || _optz === void 0 ? 1 : _optz || 0; const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp; const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default; return { strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true, strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true, strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : "log", strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : "log", strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false, code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp }, loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION, loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION, meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true, messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true, inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true, schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : "$id", addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true, validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true, validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true, unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true, int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true, uriResolver }; } var Ajv2 = class { constructor(opts = {}) { this.schemas = {}; this.refs = {}; this.formats = {}; this._compilations = /* @__PURE__ */ new Set(); this._loading = {}; this._cache = /* @__PURE__ */ new Map(); opts = this.opts = { ...opts, ...requiredOptions(opts) }; const { es5, lines } = this.opts.code; this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines }); this.logger = getLogger(opts.logger); const formatOpt = opts.validateFormats; opts.validateFormats = false; this.RULES = (0, rules_1.getRules)(); checkOptions.call(this, removedOptions, opts, "NOT SUPPORTED"); checkOptions.call(this, deprecatedOptions, opts, "DEPRECATED", "warn"); this._metaOpts = getMetaSchemaOptions.call(this); if (opts.formats) addInitialFormats.call(this); this._addVocabularies(); this._addDefaultMetaSchema(); if (opts.keywords) addInitialKeywords.call(this, opts.keywords); if (typeof opts.meta == "object") this.addMetaSchema(opts.meta); addInitialSchemas.call(this); opts.validateFormats = formatOpt; } _addVocabularies() { this.addKeyword("$async"); } _addDefaultMetaSchema() { const { $data, meta, schemaId } = this.opts; let _dataRefSchema = $dataRefSchema; if (schemaId === "id") { _dataRefSchema = { ...$dataRefSchema }; _dataRefSchema.id = _dataRefSchema.$id; delete _dataRefSchema.$id; } if (meta && $data) this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false); } defaultMeta() { const { meta, schemaId } = this.opts; return this.opts.defaultMeta = typeof meta == "object" ? meta[schemaId] || meta : void 0; } validate(schemaKeyRef, data) { let v; if (typeof schemaKeyRef == "string") { v = this.getSchema(schemaKeyRef); if (!v) throw new Error(`no schema with key or ref "${schemaKeyRef}"`); } else { v = this.compile(schemaKeyRef); } const valid = v(data); if (!("$async" in v)) this.errors = v.errors; return valid; } compile(schema, _meta) { const sch = this._addSchema(schema, _meta); return sch.validate || this._compileSchemaEnv(sch); } compileAsync(schema, meta) { if (typeof this.opts.loadSchema != "function") { throw new Error("options.loadSchema should be a function"); } const { loadSchema } = this.opts; return runCompileAsync.call(this, schema, meta); async function runCompileAsync(_schema, _meta) { await loadMetaSchema.call(this, _schema.$schema); const sch = this._addSchema(_schema, _meta); return sch.validate || _compileAsync.call(this, sch); } async function loadMetaSchema($ref) { if ($ref && !this.getSchema($ref)) { await runCompileAsync.call(this, { $ref }, true); } } async function _compileAsync(sch) { try { return this._compileSchemaEnv(sch); } catch (e) { if (!(e instanceof ref_error_1.default)) throw e; checkLoaded.call(this, e); await loadMissingSchema.call(this, e.missingSchema); return _compileAsync.call(this, sch); } } function checkLoaded({ missingSchema: ref, missingRef }) { if (this.refs[ref]) { throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`); } } async function loadMissingSchema(ref) { const _schema = await _loadSchema.call(this, ref); if (!this.refs[ref]) await loadMetaSchema.call(this, _schema.$schema); if (!this.refs[ref]) this.addSchema(_schema, ref, meta); } async function _loadSchema(ref) { const p = this._loading[ref]; if (p) return p; try { return await (this._loading[ref] = loadSchema(ref)); } finally { delete this._loading[ref]; } } } // Adds schema to the instance addSchema(schema, key, _meta, _validateSchema = this.opts.validateSchema) { if (Array.isArray(schema)) { for (const sch of schema) this.addSchema(sch, void 0, _meta, _validateSchema); return this; } let id; if (typeof schema === "object") { const { schemaId } = this.opts; id = schema[schemaId]; if (id !== void 0 && typeof id != "string") { throw new Error(`schema ${schemaId} must be string`); } } key = (0, resolve_1.normalizeId)(key || id); this._checkUnique(key); this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true); return this; } // Add schema that will be used to validate other schemas // options in META_IGNORE_OPTIONS are alway set to false addMetaSchema(schema, key, _validateSchema = this.opts.validateSchema) { this.addSchema(schema, key, true, _validateSchema); return this; } // Validate schema against its meta-schema validateSchema(schema, throwOrLogError) { if (typeof schema == "boolean") return true; let $schema; $schema = schema.$schema; if ($schema !== void 0 && typeof $schema != "string") { throw new Error("$schema must be a string"); } $schema = $schema || this.opts.defaultMeta || this.defaultMeta(); if (!$schema) { this.logger.warn("meta-schema not available"); this.errors = null; return true; } const valid = this.validate($schema, schema); if (!valid && throwOrLogError) { const message = "schema is invalid: " + this.errorsText(); if (this.opts.validateSchema === "log") this.logger.error(message); else throw new Error(message); } return valid; } // Get compiled schema by `key` or `ref`. // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id) getSchema(keyRef) { let sch; while (typeof (sch = getSchEnv.call(this, keyRef)) == "string") keyRef = sch; if (sch === void 0) { const { schemaId } = this.opts; const root = new compile_1.SchemaEnv({ schema: {}, schemaId }); sch = compile_1.resolveSchema.call(this, root, keyRef); if (!sch) return; this.refs[keyRef] = sch; } return sch.validate || this._compileSchemaEnv(sch); } // Remove cached schema(s). // If no parameter is passed all schemas but meta-schemas are removed. // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed. // Even if schema is referenced by other schemas it still can be removed as other schemas have local references. removeSchema(schemaKeyRef) { if (schemaKeyRef instanceof RegExp) { this._removeAllSchemas(this.schemas, schemaKeyRef); this._removeAllSchemas(this.refs, schemaKeyRef); return this; } switch (typeof schemaKeyRef) { case "undefined": this._removeAllSchemas(this.schemas); this._removeAllSchemas(this.refs); this._cache.clear(); return this; case "string": { const sch = getSchEnv.call(this, schemaKeyRef); if (typeof sch == "object") this._cache.delete(sch.schema); delete this.schemas[schemaKeyRef]; delete this.refs[schemaKeyRef]; return this; } case "object": { const cacheKey = schemaKeyRef; this._cache.delete(cacheKey); let id = schemaKeyRef[this.opts.schemaId]; if (id) { id = (0, resolve_1.normalizeId)(id); delete this.schemas[id]; delete this.refs[id]; } return this; } default: throw new Error("ajv.removeSchema: invalid parameter"); } } // add "vocabulary" - a collection of keywords addVocabulary(definitions) { for (const def of definitions) this.addKeyword(def); return this; } addKeyword(kwdOrDef, def) { let keyword; if (typeof kwdOrDef == "string") { keyword = kwdOrDef; if (typeof def == "object") { this.logger.warn("these parameters are deprecated, see docs for addKeyword"); def.keyword = keyword; } } else if (typeof kwdOrDef == "object" && def === void 0) { def = kwdOrDef; keyword = def.keyword; if (Array.isArray(keyword) && !keyword.length) { throw new Error("addKeywords: keyword must be string or non-empty array"); } } else { throw new Error("invalid addKeywords parameters"); } checkKeyword.call(this, keyword, def); if (!def) { (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd)); return this; } keywordMetaschema.call(this, def); const definition = { ...def, type: (0, dataType_1.getJSONTypes)(def.type), schemaType: (0, dataType_1.getJSONTypes)(def.schemaType) }; (0, util_1.eachItem)(keyword, definition.type.length === 0 ? (k) => addRule.call(this, k, definition) : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t))); return this; } getKeyword(keyword) { const rule = this.RULES.all[keyword]; return typeof rule == "object" ? rule.definition : !!rule; } // Remove keyword removeKeyword(keyword) { const { RULES } = this; delete RULES.keywords[keyword]; delete RULES.all[keyword]; for (const group of RULES.rules) { const i = group.rules.findIndex((rule) => rule.keyword === keyword); if (i >= 0) group.rules.splice(i, 1); } return this; } // Add format addFormat(name, format) { if (typeof format == "string") format = new RegExp(format); this.formats[name] = format; return this; } errorsText(errors = this.errors, { separator = ", ", dataVar = "data" } = {}) { if (!errors || errors.length === 0) return "No errors"; return errors.map((e) => `${dataVar}${e.instancePath} ${e.message}`).reduce((text, msg) => text + separator + msg); } $dataMetaSchema(metaSchema, keywordsJsonPointers) { const rules = this.RULES.all; metaSchema = JSON.parse(JSON.stringify(metaSchema)); for (const jsonPointer of keywordsJsonPointers) { const segments = jsonPointer.split("/").slice(1); let keywords = metaSchema; for (const seg of segments) keywords = keywords[seg]; for (const key in rules) { const rule = rules[key]; if (typeof rule != "object") continue; const { $data } = rule.definition; const schema = keywords[key]; if ($data && schema) keywords[key] = schemaOrData(schema); } } return metaSchema; } _removeAllSchemas(schemas, regex) { for (const keyRef in schemas) { const sch = schemas[keyRef]; if (!regex || regex.test(keyRef)) { if (typeof sch == "string") { delete schemas[keyRef]; } else if (sch && !sch.meta) { this._cache.delete(sch.schema); delete schemas[keyRef]; } } } } _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) { let id; const { schemaId } = this.opts; if (typeof schema == "object") { id = schema[schemaId]; } else { if (this.opts.jtd) throw new Error("schema must be object"); else if (typeof schema != "boolean") throw new Error("schema must be object or boolean"); } let sch = this._cache.get(schema); if (sch !== void 0) return sch; baseId = (0, resolve_1.normalizeId)(id || baseId); const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId); sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs }); this._cache.set(sch.schema, sch); if (addSchema && !baseId.startsWith("#")) { if (baseId) this._checkUnique(baseId); this.refs[baseId] = sch; } if (validateSchema) this.validateSchema(schema, true); return sch; } _checkUnique(id) { if (this.schemas[id] || this.refs[id]) { throw new Error(`schema with key or id "${id}" already exists`); } } _compileSchemaEnv(sch) { if (sch.meta) this._compileMetaSchema(sch); else compile_1.compileSchema.call(this, sch); if (!sch.validate) throw new Error("ajv implementation error"); return sch.validate; } _compileMetaSchema(sch) { const currentOpts = this.opts; this.opts = this._metaOpts; try { compile_1.compileSchema.call(this, sch); } finally { this.opts = currentOpts; } } }; Ajv2.ValidationError = validation_error_1.default; Ajv2.MissingRefError = ref_error_1.default; exports.default = Ajv2; function checkOptions(checkOpts, options, msg, log = "error") { for (const key in checkOpts) { const opt = key; if (opt in options) this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`); } } function getSchEnv(keyRef) { keyRef = (0, resolve_1.normalizeId)(keyRef); return this.schemas[keyRef] || this.refs[keyRef]; } function addInitialSchemas() { const optsSchemas = this.opts.schemas; if (!optsSchemas) return; if (Array.isArray(optsSchemas)) this.addSchema(optsSchemas); else for (const key in optsSchemas) this.addSchema(optsSchemas[key], key); } function addInitialFormats() { for (const name in this.opts.formats) { const format = this.opts.formats[name]; if (format) this.addFormat(name, format); } } function addInitialKeywords(defs) { if (Array.isArray(defs)) { this.addVocabulary(defs); return; } this.logger.warn("keywords option as map is deprecated, pass array"); for (const keyword in defs) { const def = defs[keyword]; if (!def.keyword) def.keyword = keyword; this.addKeyword(def); } } function getMetaSchemaOptions() { const metaOpts = { ...this.opts }; for (const opt of META_IGNORE_OPTIONS) delete metaOpts[opt]; return metaOpts; } var noLogs = { log() { }, warn() { }, error() { } }; function getLogger(logger) { if (logger === false) return noLogs; if (logger === void 0) return console; if (logger.log && logger.warn && logger.error) return logger; throw new Error("logger must implement log, warn and error methods"); } var KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i; function checkKeyword(keyword, def) { const { RULES } = this; (0, util_1.eachItem)(keyword, (kwd) => { if (RULES.keywords[kwd]) throw new Error(`Keyword ${kwd} is already defined`); if (!KEYWORD_NAME.test(kwd)) throw new Error(`Keyword ${kwd} has invalid name`); }); if (!def) return; if (def.$data && !("code" in def || "validate" in def)) { throw new Error('$data keyword must have "code" or "validate" function'); } } function addRule(keyword, definition, dataType) { var _a; const post = definition === null || definition === void 0 ? void 0 : definition.post; if (dataType && post) throw new Error('keyword with "post" flag cannot have "type"'); const { RULES } = this; let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType); if (!ruleGroup) { ruleGroup = { type: dataType, rules: [] }; RULES.rules.push(ruleGroup); } RULES.keywords[keyword] = true; if (!definition) return; const rule = { keyword, definition: { ...definition, type: (0, dataType_1.getJSONTypes)(definition.type), schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType) } }; if (definition.before) addBeforeRule.call(this, ruleGroup, rule, definition.before); else ruleGroup.rules.push(rule); RULES.all[keyword] = rule; (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd)); } function addBeforeRule(ruleGroup, rule, before) { const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before); if (i >= 0) { ruleGroup.rules.splice(i, 0, rule); } else { ruleGroup.rules.push(rule); this.logger.warn(`rule ${before} is not defined`); } } function keywordMetaschema(def) { let { metaSchema } = def; if (metaSchema === void 0) return; if (def.$data && this.opts.$data) metaSchema = schemaOrData(metaSchema); def.validateSchema = this.compile(metaSchema, true); } var $dataRef = { $ref: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#" }; function schemaOrData(schema) { return { anyOf: [schema, $dataRef] }; } } }); // node_modules/ajv/dist/vocabularies/core/ref.js var require_ref = __commonJS({ "node_modules/ajv/dist/vocabularies/core/ref.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.callRef = exports.getValidate = void 0; var ref_error_1 = require_ref_error(); var code_1 = require_code2(); var codegen_1 = require_codegen(); var names_1 = require_names(); var compile_1 = require_compile(); var util_1 = require_util(); var def = { keyword: "$ref", schemaType: "string", code(cxt) { const { gen, schema: $ref, it } = cxt; const { baseId, schemaEnv: env, validateName, opts, self } = it; const { root } = env; if (($ref === "#" || $ref === "#/") && baseId === root.baseId) return callRootRef(); const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref); if (schOrEnv === void 0) throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref); if (schOrEnv instanceof compile_1.SchemaEnv) return callValidate(schOrEnv); return inlineRefSchema(schOrEnv); function callRootRef() { if (env === root) return callRef(cxt, validateName, env, env.$async); const rootName = gen.scopeValue("root", { ref: root }); return callRef(cxt, (0, codegen_1._)`${rootName}.validate`, root, root.$async); } function callValidate(sch) { const v = getValidate(cxt, sch); callRef(cxt, v, sch, sch.$async); } function inlineRefSchema(sch) { const schName = gen.scopeValue("schema", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch }); const valid = gen.name("valid"); const schCxt = cxt.subschema({ schema: sch, dataTypes: [], schemaPath: codegen_1.nil, topSchemaRef: schName, errSchemaPath: $ref }, valid); cxt.mergeEvaluated(schCxt); cxt.ok(valid); } } }; function getValidate(cxt, sch) { const { gen } = cxt; return sch.validate ? gen.scopeValue("validate", { ref: sch.validate }) : (0, codegen_1._)`${gen.scopeValue("wrapper", { ref: sch })}.validate`; } exports.getValidate = getValidate; function callRef(cxt, v, sch, $async) { const { gen, it } = cxt; const { allErrors, schemaEnv: env, opts } = it; const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil; if ($async) callAsyncRef(); else callSyncRef(); function callAsyncRef() { if (!env.$async) throw new Error("async schema referenced by sync schema"); const valid = gen.let("valid"); gen.try(() => { gen.code((0, codegen_1._)`await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`); addEvaluatedFrom(v); if (!allErrors) gen.assign(valid, true); }, (e) => { gen.if((0, codegen_1._)`!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e)); addErrorsFrom(e); if (!allErrors) gen.assign(valid, false); }); cxt.ok(valid); } function callSyncRef() { cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v)); } function addErrorsFrom(source) { const errs = (0, codegen_1._)`${source}.errors`; gen.assign(names_1.default.vErrors, (0, codegen_1._)`${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); gen.assign(names_1.default.errors, (0, codegen_1._)`${names_1.default.vErrors}.length`); } function addEvaluatedFrom(source) { var _a; if (!it.opts.unevaluated) return; const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated; if (it.props !== true) { if (schEvaluated && !schEvaluated.dynamicProps) { if (schEvaluated.props !== void 0) { it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props); } } else { const props = gen.var("props", (0, codegen_1._)`${source}.evaluated.props`); it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name); } } if (it.items !== true) { if (schEvaluated && !schEvaluated.dynamicItems) { if (schEvaluated.items !== void 0) { it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items); } } else { const items = gen.var("items", (0, codegen_1._)`${source}.evaluated.items`); it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name); } } } } exports.callRef = callRef; exports.default = def; } }); // node_modules/ajv-draft-04/dist/vocabulary/core.js var require_core2 = __commonJS({ "node_modules/ajv-draft-04/dist/vocabulary/core.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var ref_1 = require_ref(); var core = [ "$schema", "id", "$defs", { keyword: "$comment" }, "definitions", ref_1.default ]; exports.default = core; } }); // node_modules/ajv-draft-04/dist/vocabulary/validation/limitNumber.js var require_limitNumber = __commonJS({ "node_modules/ajv-draft-04/dist/vocabulary/validation/limitNumber.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require_core(); var codegen_1 = require_codegen(); var ops = codegen_1.operators; var KWDs = { maximum: { exclusive: "exclusiveMaximum", ops: [ { okStr: "<=", ok: ops.LTE, fail: ops.GT }, { okStr: "<", ok: ops.LT, fail: ops.GTE } ] }, minimum: { exclusive: "exclusiveMinimum", ops: [ { okStr: ">=", ok: ops.GTE, fail: ops.LT }, { okStr: ">", ok: ops.GT, fail: ops.LTE } ] } }; var error = { message: (cxt) => core_1.str`must be ${kwdOp(cxt).okStr} ${cxt.schemaCode}`, params: (cxt) => core_1._`{comparison: ${kwdOp(cxt).okStr}, limit: ${cxt.schemaCode}}` }; var def = { keyword: Object.keys(KWDs), type: "number", schemaType: "number", $data: true, error, code(cxt) { const { data, schemaCode } = cxt; cxt.fail$data(core_1._`${data} ${kwdOp(cxt).fail} ${schemaCode} || isNaN(${data})`); } }; function kwdOp(cxt) { var _a; const keyword = cxt.keyword; const opsIdx = ((_a = cxt.parentSchema) === null || _a === void 0 ? void 0 : _a[KWDs[keyword].exclusive]) ? 1 : 0; return KWDs[keyword].ops[opsIdx]; } exports.default = def; } }); // node_modules/ajv-draft-04/dist/vocabulary/validation/limitNumberExclusive.js var require_limitNumberExclusive = __commonJS({ "node_modules/ajv-draft-04/dist/vocabulary/validation/limitNumberExclusive.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var KWDs = { exclusiveMaximum: "maximum", exclusiveMinimum: "minimum" }; var def = { keyword: Object.keys(KWDs), type: "number", schemaType: "boolean", code({ keyword, parentSchema }) { const limitKwd = KWDs[keyword]; if (parentSchema[limitKwd] === void 0) { throw new Error(`${keyword} can only be used with ${limitKwd}`); } } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/validation/multipleOf.js var require_multipleOf = __commonJS({ "node_modules/ajv/dist/vocabularies/validation/multipleOf.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var codegen_1 = require_codegen(); var error = { message: ({ schemaCode }) => (0, codegen_1.str)`must be multiple of ${schemaCode}`, params: ({ schemaCode }) => (0, codegen_1._)`{multipleOf: ${schemaCode}}` }; var def = { keyword: "multipleOf", type: "number", schemaType: "number", $data: true, error, code(cxt) { const { gen, data, schemaCode, it } = cxt; const prec = it.opts.multipleOfPrecision; const res = gen.let("res"); const invalid = prec ? (0, codegen_1._)`Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}` : (0, codegen_1._)`${res} !== parseInt(${res})`; cxt.fail$data((0, codegen_1._)`(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`); } }; exports.default = def; } }); // node_modules/ajv/dist/runtime/ucs2length.js var require_ucs2length = __commonJS({ "node_modules/ajv/dist/runtime/ucs2length.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function ucs2length(str) { const len = str.length; let length = 0; let pos = 0; let value; while (pos < len) { length++; value = str.charCodeAt(pos++); if (value >= 55296 && value <= 56319 && pos < len) { value = str.charCodeAt(pos); if ((value & 64512) === 56320) pos++; } } return length; } exports.default = ucs2length; ucs2length.code = 'require("ajv/dist/runtime/ucs2length").default'; } }); // node_modules/ajv/dist/vocabularies/validation/limitLength.js var require_limitLength = __commonJS({ "node_modules/ajv/dist/vocabularies/validation/limitLength.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var codegen_1 = require_codegen(); var util_1 = require_util(); var ucs2length_1 = require_ucs2length(); var error = { message({ keyword, schemaCode }) { const comp = keyword === "maxLength" ? "more" : "fewer"; return (0, codegen_1.str)`must NOT have ${comp} than ${schemaCode} characters`; }, params: ({ schemaCode }) => (0, codegen_1._)`{limit: ${schemaCode}}` }; var def = { keyword: ["maxLength", "minLength"], type: "string", schemaType: "number", $data: true, error, code(cxt) { const { keyword, data, schemaCode, it } = cxt; const op = keyword === "maxLength" ? codegen_1.operators.GT : codegen_1.operators.LT; const len = it.opts.unicode === false ? (0, codegen_1._)`${data}.length` : (0, codegen_1._)`${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`; cxt.fail$data((0, codegen_1._)`${len} ${op} ${schemaCode}`); } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/validation/pattern.js var require_pattern = __commonJS({ "node_modules/ajv/dist/vocabularies/validation/pattern.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var code_1 = require_code2(); var codegen_1 = require_codegen(); var error = { message: ({ schemaCode }) => (0, codegen_1.str)`must match pattern "${schemaCode}"`, params: ({ schemaCode }) => (0, codegen_1._)`{pattern: ${schemaCode}}` }; var def = { keyword: "pattern", type: "string", schemaType: "string", $data: true, error, code(cxt) { const { data, $data, schema, schemaCode, it } = cxt; const u = it.opts.unicodeRegExp ? "u" : ""; const regExp = $data ? (0, codegen_1._)`(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema); cxt.fail$data((0, codegen_1._)`!${regExp}.test(${data})`); } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/validation/limitProperties.js var require_limitProperties = __commonJS({ "node_modules/ajv/dist/vocabularies/validation/limitProperties.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var codegen_1 = require_codegen(); var error = { message({ keyword, schemaCode }) { const comp = keyword === "maxProperties" ? "more" : "fewer"; return (0, codegen_1.str)`must NOT have ${comp} than ${schemaCode} properties`; }, params: ({ schemaCode }) => (0, codegen_1._)`{limit: ${schemaCode}}` }; var def = { keyword: ["maxProperties", "minProperties"], type: "object", schemaType: "number", $data: true, error, code(cxt) { const { keyword, data, schemaCode } = cxt; const op = keyword === "maxProperties" ? codegen_1.operators.GT : codegen_1.operators.LT; cxt.fail$data((0, codegen_1._)`Object.keys(${data}).length ${op} ${schemaCode}`); } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/validation/required.js var require_required = __commonJS({ "node_modules/ajv/dist/vocabularies/validation/required.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var code_1 = require_code2(); var codegen_1 = require_codegen(); var util_1 = require_util(); var error = { message: ({ params: { missingProperty } }) => (0, codegen_1.str)`must have required property '${missingProperty}'`, params: ({ params: { missingProperty } }) => (0, codegen_1._)`{missingProperty: ${missingProperty}}` }; var def = { keyword: "required", type: "object", schemaType: "array", $data: true, error, code(cxt) { const { gen, schema, schemaCode, data, $data, it } = cxt; const { opts } = it; if (!$data && schema.length === 0) return; const useLoop = schema.length >= opts.loopRequired; if (it.allErrors) allErrorsMode(); else exitOnErrorMode(); if (opts.strictRequired) { const props = cxt.parentSchema.properties; const { definedProperties } = cxt.it; for (const requiredKey of schema) { if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === void 0 && !definedProperties.has(requiredKey)) { const schemaPath = it.schemaEnv.baseId + it.errSchemaPath; const msg = `required property "${requiredKey}" is not defined at "${schemaPath}" (strictRequired)`; (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired); } } } function allErrorsMode() { if (useLoop || $data) { cxt.block$data(codegen_1.nil, loopAllRequired); } else { for (const prop of schema) { (0, code_1.checkReportMissingProp)(cxt, prop); } } } function exitOnErrorMode() { const missing = gen.let("missing"); if (useLoop || $data) { const valid = gen.let("valid", true); cxt.block$data(valid, () => loopUntilMissing(missing, valid)); cxt.ok(valid); } else { gen.if((0, code_1.checkMissingProp)(cxt, schema, missing)); (0, code_1.reportMissingProp)(cxt, missing); gen.else(); } } function loopAllRequired() { gen.forOf("prop", schemaCode, (prop) => { cxt.setParams({ missingProperty: prop }); gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error()); }); } function loopUntilMissing(missing, valid) { cxt.setParams({ missingProperty: missing }); gen.forOf(missing, schemaCode, () => { gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties)); gen.if((0, codegen_1.not)(valid), () => { cxt.error(); gen.break(); }); }, codegen_1.nil); } } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/validation/limitItems.js var require_limitItems = __commonJS({ "node_modules/ajv/dist/vocabularies/validation/limitItems.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var codegen_1 = require_codegen(); var error = { message({ keyword, schemaCode }) { const comp = keyword === "maxItems" ? "more" : "fewer"; return (0, codegen_1.str)`must NOT have ${comp} than ${schemaCode} items`; }, params: ({ schemaCode }) => (0, codegen_1._)`{limit: ${schemaCode}}` }; var def = { keyword: ["maxItems", "minItems"], type: "array", schemaType: "number", $data: true, error, code(cxt) { const { keyword, data, schemaCode } = cxt; const op = keyword === "maxItems" ? codegen_1.operators.GT : codegen_1.operators.LT; cxt.fail$data((0, codegen_1._)`${data}.length ${op} ${schemaCode}`); } }; exports.default = def; } }); // node_modules/ajv/dist/runtime/equal.js var require_equal = __commonJS({ "node_modules/ajv/dist/runtime/equal.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var equal = require_fast_deep_equal(); equal.code = 'require("ajv/dist/runtime/equal").default'; exports.default = equal; } }); // node_modules/ajv/dist/vocabularies/validation/uniqueItems.js var require_uniqueItems = __commonJS({ "node_modules/ajv/dist/vocabularies/validation/uniqueItems.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var dataType_1 = require_dataType(); var codegen_1 = require_codegen(); var util_1 = require_util(); var equal_1 = require_equal(); var error = { message: ({ params: { i, j } }) => (0, codegen_1.str)`must NOT have duplicate items (items ## ${j} and ${i} are identical)`, params: ({ params: { i, j } }) => (0, codegen_1._)`{i: ${i}, j: ${j}}` }; var def = { keyword: "uniqueItems", type: "array", schemaType: "boolean", $data: true, error, code(cxt) { const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt; if (!$data && !schema) return; const valid = gen.let("valid"); const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : []; cxt.block$data(valid, validateUniqueItems, (0, codegen_1._)`${schemaCode} === false`); cxt.ok(valid); function validateUniqueItems() { const i = gen.let("i", (0, codegen_1._)`${data}.length`); const j = gen.let("j"); cxt.setParams({ i, j }); gen.assign(valid, true); gen.if((0, codegen_1._)`${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j)); } function canOptimize() { return itemTypes.length > 0 && !itemTypes.some((t) => t === "object" || t === "array"); } function loopN(i, j) { const item = gen.name("item"); const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong); const indices = gen.const("indices", (0, codegen_1._)`{}`); gen.for((0, codegen_1._)`;${i}--;`, () => { gen.let(item, (0, codegen_1._)`${data}[${i}]`); gen.if(wrongType, (0, codegen_1._)`continue`); if (itemTypes.length > 1) gen.if((0, codegen_1._)`typeof ${item} == "string"`, (0, codegen_1._)`${item} += "_"`); gen.if((0, codegen_1._)`typeof ${indices}[${item}] == "number"`, () => { gen.assign(j, (0, codegen_1._)`${indices}[${item}]`); cxt.error(); gen.assign(valid, false).break(); }).code((0, codegen_1._)`${indices}[${item}] = ${i}`); }); } function loopN2(i, j) { const eql = (0, util_1.useFunc)(gen, equal_1.default); const outer = gen.name("outer"); gen.label(outer).for((0, codegen_1._)`;${i}--;`, () => gen.for((0, codegen_1._)`${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._)`${eql}(${data}[${i}], ${data}[${j}])`, () => { cxt.error(); gen.assign(valid, false).break(outer); }))); } } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/validation/const.js var require_const = __commonJS({ "node_modules/ajv/dist/vocabularies/validation/const.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var codegen_1 = require_codegen(); var util_1 = require_util(); var equal_1 = require_equal(); var error = { message: "must be equal to constant", params: ({ schemaCode }) => (0, codegen_1._)`{allowedValue: ${schemaCode}}` }; var def = { keyword: "const", $data: true, error, code(cxt) { const { gen, data, $data, schemaCode, schema } = cxt; if ($data || schema && typeof schema == "object") { cxt.fail$data((0, codegen_1._)`!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`); } else { cxt.fail((0, codegen_1._)`${schema} !== ${data}`); } } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/validation/enum.js var require_enum = __commonJS({ "node_modules/ajv/dist/vocabularies/validation/enum.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var codegen_1 = require_codegen(); var util_1 = require_util(); var equal_1 = require_equal(); var error = { message: "must be equal to one of the allowed values", params: ({ schemaCode }) => (0, codegen_1._)`{allowedValues: ${schemaCode}}` }; var def = { keyword: "enum", schemaType: "array", $data: true, error, code(cxt) { const { gen, data, $data, schema, schemaCode, it } = cxt; if (!$data && schema.length === 0) throw new Error("enum must have non-empty array"); const useLoop = schema.length >= it.opts.loopEnum; let eql; const getEql = () => eql !== null && eql !== void 0 ? eql : eql = (0, util_1.useFunc)(gen, equal_1.default); let valid; if (useLoop || $data) { valid = gen.let("valid"); cxt.block$data(valid, loopEnum); } else { if (!Array.isArray(schema)) throw new Error("ajv implementation error"); const vSchema = gen.const("vSchema", schemaCode); valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i))); } cxt.pass(valid); function loopEnum() { gen.assign(valid, false); gen.forOf("v", schemaCode, (v) => gen.if((0, codegen_1._)`${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break())); } function equalCode(vSchema, i) { const sch = schema[i]; return typeof sch === "object" && sch !== null ? (0, codegen_1._)`${getEql()}(${data}, ${vSchema}[${i}])` : (0, codegen_1._)`${data} === ${sch}`; } } }; exports.default = def; } }); // node_modules/ajv-draft-04/dist/vocabulary/validation/index.js var require_validation = __commonJS({ "node_modules/ajv-draft-04/dist/vocabulary/validation/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var limitNumber_1 = require_limitNumber(); var limitNumberExclusive_1 = require_limitNumberExclusive(); var multipleOf_1 = require_multipleOf(); var limitLength_1 = require_limitLength(); var pattern_1 = require_pattern(); var limitProperties_1 = require_limitProperties(); var required_1 = require_required(); var limitItems_1 = require_limitItems(); var uniqueItems_1 = require_uniqueItems(); var const_1 = require_const(); var enum_1 = require_enum(); var validation = [ // number limitNumber_1.default, limitNumberExclusive_1.default, multipleOf_1.default, // string limitLength_1.default, pattern_1.default, // object limitProperties_1.default, required_1.default, // array limitItems_1.default, uniqueItems_1.default, // any { keyword: "type", schemaType: ["string", "array"] }, { keyword: "nullable", schemaType: "boolean" }, const_1.default, enum_1.default ]; exports.default = validation; } }); // node_modules/ajv/dist/vocabularies/applicator/additionalItems.js var require_additionalItems = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/additionalItems.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateAdditionalItems = void 0; var codegen_1 = require_codegen(); var util_1 = require_util(); var error = { message: ({ params: { len } }) => (0, codegen_1.str)`must NOT have more than ${len} items`, params: ({ params: { len } }) => (0, codegen_1._)`{limit: ${len}}` }; var def = { keyword: "additionalItems", type: "array", schemaType: ["boolean", "object"], before: "uniqueItems", error, code(cxt) { const { parentSchema, it } = cxt; const { items } = parentSchema; if (!Array.isArray(items)) { (0, util_1.checkStrictMode)(it, '"additionalItems" is ignored when "items" is not an array of schemas'); return; } validateAdditionalItems(cxt, items); } }; function validateAdditionalItems(cxt, items) { const { gen, schema, data, keyword, it } = cxt; it.items = true; const len = gen.const("len", (0, codegen_1._)`${data}.length`); if (schema === false) { cxt.setParams({ len: items.length }); cxt.pass((0, codegen_1._)`${len} <= ${items.length}`); } else if (typeof schema == "object" && !(0, util_1.alwaysValidSchema)(it, schema)) { const valid = gen.var("valid", (0, codegen_1._)`${len} <= ${items.length}`); gen.if((0, codegen_1.not)(valid), () => validateItems(valid)); cxt.ok(valid); } function validateItems(valid) { gen.forRange("i", items.length, len, (i) => { cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid); if (!it.allErrors) gen.if((0, codegen_1.not)(valid), () => gen.break()); }); } } exports.validateAdditionalItems = validateAdditionalItems; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/items.js var require_items = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/items.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateTuple = void 0; var codegen_1 = require_codegen(); var util_1 = require_util(); var code_1 = require_code2(); var def = { keyword: "items", type: "array", schemaType: ["object", "array", "boolean"], before: "uniqueItems", code(cxt) { const { schema, it } = cxt; if (Array.isArray(schema)) return validateTuple(cxt, "additionalItems", schema); it.items = true; if ((0, util_1.alwaysValidSchema)(it, schema)) return; cxt.ok((0, code_1.validateArray)(cxt)); } }; function validateTuple(cxt, extraItems, schArr = cxt.schema) { const { gen, parentSchema, data, keyword, it } = cxt; checkStrictTuple(parentSchema); if (it.opts.unevaluated && schArr.length && it.items !== true) { it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items); } const valid = gen.name("valid"); const len = gen.const("len", (0, codegen_1._)`${data}.length`); schArr.forEach((sch, i) => { if ((0, util_1.alwaysValidSchema)(it, sch)) return; gen.if((0, codegen_1._)`${len} > ${i}`, () => cxt.subschema({ keyword, schemaProp: i, dataProp: i }, valid)); cxt.ok(valid); }); function checkStrictTuple(sch) { const { opts, errSchemaPath } = it; const l = schArr.length; const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false); if (opts.strictTuples && !fullTuple) { const msg = `"${keyword}" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path "${errSchemaPath}"`; (0, util_1.checkStrictMode)(it, msg, opts.strictTuples); } } } exports.validateTuple = validateTuple; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/prefixItems.js var require_prefixItems = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/prefixItems.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var items_1 = require_items(); var def = { keyword: "prefixItems", type: "array", schemaType: ["array"], before: "uniqueItems", code: (cxt) => (0, items_1.validateTuple)(cxt, "items") }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/items2020.js var require_items2020 = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/items2020.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var codegen_1 = require_codegen(); var util_1 = require_util(); var code_1 = require_code2(); var additionalItems_1 = require_additionalItems(); var error = { message: ({ params: { len } }) => (0, codegen_1.str)`must NOT have more than ${len} items`, params: ({ params: { len } }) => (0, codegen_1._)`{limit: ${len}}` }; var def = { keyword: "items", type: "array", schemaType: ["object", "boolean"], before: "uniqueItems", error, code(cxt) { const { schema, parentSchema, it } = cxt; const { prefixItems } = parentSchema; it.items = true; if ((0, util_1.alwaysValidSchema)(it, schema)) return; if (prefixItems) (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems); else cxt.ok((0, code_1.validateArray)(cxt)); } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/contains.js var require_contains = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/contains.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var codegen_1 = require_codegen(); var util_1 = require_util(); var error = { message: ({ params: { min, max } }) => max === void 0 ? (0, codegen_1.str)`must contain at least ${min} valid item(s)` : (0, codegen_1.str)`must contain at least ${min} and no more than ${max} valid item(s)`, params: ({ params: { min, max } }) => max === void 0 ? (0, codegen_1._)`{minContains: ${min}}` : (0, codegen_1._)`{minContains: ${min}, maxContains: ${max}}` }; var def = { keyword: "contains", type: "array", schemaType: ["object", "boolean"], before: "uniqueItems", trackErrors: true, error, code(cxt) { const { gen, schema, parentSchema, data, it } = cxt; let min; let max; const { minContains, maxContains } = parentSchema; if (it.opts.next) { min = minContains === void 0 ? 1 : minContains; max = maxContains; } else { min = 1; } const len = gen.const("len", (0, codegen_1._)`${data}.length`); cxt.setParams({ min, max }); if (max === void 0 && min === 0) { (0, util_1.checkStrictMode)(it, `"minContains" == 0 without "maxContains": "contains" keyword ignored`); return; } if (max !== void 0 && min > max) { (0, util_1.checkStrictMode)(it, `"minContains" > "maxContains" is always invalid`); cxt.fail(); return; } if ((0, util_1.alwaysValidSchema)(it, schema)) { let cond = (0, codegen_1._)`${len} >= ${min}`; if (max !== void 0) cond = (0, codegen_1._)`${cond} && ${len} <= ${max}`; cxt.pass(cond); return; } it.items = true; const valid = gen.name("valid"); if (max === void 0 && min === 1) { validateItems(valid, () => gen.if(valid, () => gen.break())); } else if (min === 0) { gen.let(valid, true); if (max !== void 0) gen.if((0, codegen_1._)`${data}.length > 0`, validateItemsWithCount); } else { gen.let(valid, false); validateItemsWithCount(); } cxt.result(valid, () => cxt.reset()); function validateItemsWithCount() { const schValid = gen.name("_valid"); const count = gen.let("count", 0); validateItems(schValid, () => gen.if(schValid, () => checkLimits(count))); } function validateItems(_valid, block) { gen.forRange("i", 0, len, (i) => { cxt.subschema({ keyword: "contains", dataProp: i, dataPropType: util_1.Type.Num, compositeRule: true }, _valid); block(); }); } function checkLimits(count) { gen.code((0, codegen_1._)`${count}++`); if (max === void 0) { gen.if((0, codegen_1._)`${count} >= ${min}`, () => gen.assign(valid, true).break()); } else { gen.if((0, codegen_1._)`${count} > ${max}`, () => gen.assign(valid, false).break()); if (min === 1) gen.assign(valid, true); else gen.if((0, codegen_1._)`${count} >= ${min}`, () => gen.assign(valid, true)); } } } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/dependencies.js var require_dependencies = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/dependencies.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0; var codegen_1 = require_codegen(); var util_1 = require_util(); var code_1 = require_code2(); exports.error = { message: ({ params: { property, depsCount, deps } }) => { const property_ies = depsCount === 1 ? "property" : "properties"; return (0, codegen_1.str)`must have ${property_ies} ${deps} when property ${property} is present`; }, params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._)`{property: ${property}, missingProperty: ${missingProperty}, depsCount: ${depsCount}, deps: ${deps}}` // TODO change to reference }; var def = { keyword: "dependencies", type: "object", schemaType: "object", error: exports.error, code(cxt) { const [propDeps, schDeps] = splitDependencies(cxt); validatePropertyDeps(cxt, propDeps); validateSchemaDeps(cxt, schDeps); } }; function splitDependencies({ schema }) { const propertyDeps = {}; const schemaDeps = {}; for (const key in schema) { if (key === "__proto__") continue; const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps; deps[key] = schema[key]; } return [propertyDeps, schemaDeps]; } function validatePropertyDeps(cxt, propertyDeps = cxt.schema) { const { gen, data, it } = cxt; if (Object.keys(propertyDeps).length === 0) return; const missing = gen.let("missing"); for (const prop in propertyDeps) { const deps = propertyDeps[prop]; if (deps.length === 0) continue; const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties); cxt.setParams({ property: prop, depsCount: deps.length, deps: deps.join(", ") }); if (it.allErrors) { gen.if(hasProperty, () => { for (const depProp of deps) { (0, code_1.checkReportMissingProp)(cxt, depProp); } }); } else { gen.if((0, codegen_1._)`${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`); (0, code_1.reportMissingProp)(cxt, missing); gen.else(); } } } exports.validatePropertyDeps = validatePropertyDeps; function validateSchemaDeps(cxt, schemaDeps = cxt.schema) { const { gen, data, keyword, it } = cxt; const valid = gen.name("valid"); for (const prop in schemaDeps) { if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop])) continue; gen.if( (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => { const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid); cxt.mergeValidEvaluated(schCxt, valid); }, () => gen.var(valid, true) // TODO var ); cxt.ok(valid); } } exports.validateSchemaDeps = validateSchemaDeps; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/propertyNames.js var require_propertyNames = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/propertyNames.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var codegen_1 = require_codegen(); var util_1 = require_util(); var error = { message: "property name must be valid", params: ({ params }) => (0, codegen_1._)`{propertyName: ${params.propertyName}}` }; var def = { keyword: "propertyNames", type: "object", schemaType: ["object", "boolean"], error, code(cxt) { const { gen, schema, data, it } = cxt; if ((0, util_1.alwaysValidSchema)(it, schema)) return; const valid = gen.name("valid"); gen.forIn("key", data, (key) => { cxt.setParams({ propertyName: key }); cxt.subschema({ keyword: "propertyNames", data: key, dataTypes: ["string"], propertyName: key, compositeRule: true }, valid); gen.if((0, codegen_1.not)(valid), () => { cxt.error(true); if (!it.allErrors) gen.break(); }); }); cxt.ok(valid); } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js var require_additionalProperties = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var code_1 = require_code2(); var codegen_1 = require_codegen(); var names_1 = require_names(); var util_1 = require_util(); var error = { message: "must NOT have additional properties", params: ({ params }) => (0, codegen_1._)`{additionalProperty: ${params.additionalProperty}}` }; var def = { keyword: "additionalProperties", type: ["object"], schemaType: ["boolean", "object"], allowUndefined: true, trackErrors: true, error, code(cxt) { const { gen, schema, parentSchema, data, errsCount, it } = cxt; if (!errsCount) throw new Error("ajv implementation error"); const { allErrors, opts } = it; it.props = true; if (opts.removeAdditional !== "all" && (0, util_1.alwaysValidSchema)(it, schema)) return; const props = (0, code_1.allSchemaProperties)(parentSchema.properties); const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties); checkAdditionalProperties(); cxt.ok((0, codegen_1._)`${errsCount} === ${names_1.default.errors}`); function checkAdditionalProperties() { gen.forIn("key", data, (key) => { if (!props.length && !patProps.length) additionalPropertyCode(key); else gen.if(isAdditional(key), () => additionalPropertyCode(key)); }); } function isAdditional(key) { let definedProp; if (props.length > 8) { const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, "properties"); definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key); } else if (props.length) { definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._)`${key} === ${p}`)); } else { definedProp = codegen_1.nil; } if (patProps.length) { definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._)`${(0, code_1.usePattern)(cxt, p)}.test(${key})`)); } return (0, codegen_1.not)(definedProp); } function deleteAdditional(key) { gen.code((0, codegen_1._)`delete ${data}[${key}]`); } function additionalPropertyCode(key) { if (opts.removeAdditional === "all" || opts.removeAdditional && schema === false) { deleteAdditional(key); return; } if (schema === false) { cxt.setParams({ additionalProperty: key }); cxt.error(); if (!allErrors) gen.break(); return; } if (typeof schema == "object" && !(0, util_1.alwaysValidSchema)(it, schema)) { const valid = gen.name("valid"); if (opts.removeAdditional === "failing") { applyAdditionalSchema(key, valid, false); gen.if((0, codegen_1.not)(valid), () => { cxt.reset(); deleteAdditional(key); }); } else { applyAdditionalSchema(key, valid); if (!allErrors) gen.if((0, codegen_1.not)(valid), () => gen.break()); } } } function applyAdditionalSchema(key, valid, errors) { const subschema = { keyword: "additionalProperties", dataProp: key, dataPropType: util_1.Type.Str }; if (errors === false) { Object.assign(subschema, { compositeRule: true, createErrors: false, allErrors: false }); } cxt.subschema(subschema, valid); } } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/properties.js var require_properties = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/properties.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var validate_1 = require_validate(); var code_1 = require_code2(); var util_1 = require_util(); var additionalProperties_1 = require_additionalProperties(); var def = { keyword: "properties", type: "object", schemaType: "object", code(cxt) { const { gen, schema, parentSchema, data, it } = cxt; if (it.opts.removeAdditional === "all" && parentSchema.additionalProperties === void 0) { additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, "additionalProperties")); } const allProps = (0, code_1.allSchemaProperties)(schema); for (const prop of allProps) { it.definedProperties.add(prop); } if (it.opts.unevaluated && allProps.length && it.props !== true) { it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props); } const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p])); if (properties.length === 0) return; const valid = gen.name("valid"); for (const prop of properties) { if (hasDefault(prop)) { applyPropertySchema(prop); } else { gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties)); applyPropertySchema(prop); if (!it.allErrors) gen.else().var(valid, true); gen.endIf(); } cxt.it.definedProperties.add(prop); cxt.ok(valid); } function hasDefault(prop) { return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== void 0; } function applyPropertySchema(prop) { cxt.subschema({ keyword: "properties", schemaProp: prop, dataProp: prop }, valid); } } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/patternProperties.js var require_patternProperties = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/patternProperties.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var code_1 = require_code2(); var codegen_1 = require_codegen(); var util_1 = require_util(); var util_2 = require_util(); var def = { keyword: "patternProperties", type: "object", schemaType: "object", code(cxt) { const { gen, schema, data, parentSchema, it } = cxt; const { opts } = it; const patterns = (0, code_1.allSchemaProperties)(schema); const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p])); if (patterns.length === 0 || alwaysValidPatterns.length === patterns.length && (!it.opts.unevaluated || it.props === true)) { return; } const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties; const valid = gen.name("valid"); if (it.props !== true && !(it.props instanceof codegen_1.Name)) { it.props = (0, util_2.evaluatedPropsToName)(gen, it.props); } const { props } = it; validatePatternProperties(); function validatePatternProperties() { for (const pat of patterns) { if (checkProperties) checkMatchingProperties(pat); if (it.allErrors) { validateProperties(pat); } else { gen.var(valid, true); validateProperties(pat); gen.if(valid); } } } function checkMatchingProperties(pat) { for (const prop in checkProperties) { if (new RegExp(pat).test(prop)) { (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`); } } } function validateProperties(pat) { gen.forIn("key", data, (key) => { gen.if((0, codegen_1._)`${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => { const alwaysValid = alwaysValidPatterns.includes(pat); if (!alwaysValid) { cxt.subschema({ keyword: "patternProperties", schemaProp: pat, dataProp: key, dataPropType: util_2.Type.Str }, valid); } if (it.opts.unevaluated && props !== true) { gen.assign((0, codegen_1._)`${props}[${key}]`, true); } else if (!alwaysValid && !it.allErrors) { gen.if((0, codegen_1.not)(valid), () => gen.break()); } }); }); } } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/not.js var require_not = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/not.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var util_1 = require_util(); var def = { keyword: "not", schemaType: ["object", "boolean"], trackErrors: true, code(cxt) { const { gen, schema, it } = cxt; if ((0, util_1.alwaysValidSchema)(it, schema)) { cxt.fail(); return; } const valid = gen.name("valid"); cxt.subschema({ keyword: "not", compositeRule: true, createErrors: false, allErrors: false }, valid); cxt.failResult(valid, () => cxt.reset(), () => cxt.error()); }, error: { message: "must NOT be valid" } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/anyOf.js var require_anyOf = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/anyOf.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var code_1 = require_code2(); var def = { keyword: "anyOf", schemaType: "array", trackErrors: true, code: code_1.validateUnion, error: { message: "must match a schema in anyOf" } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/oneOf.js var require_oneOf = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/oneOf.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var codegen_1 = require_codegen(); var util_1 = require_util(); var error = { message: "must match exactly one schema in oneOf", params: ({ params }) => (0, codegen_1._)`{passingSchemas: ${params.passing}}` }; var def = { keyword: "oneOf", schemaType: "array", trackErrors: true, error, code(cxt) { const { gen, schema, parentSchema, it } = cxt; if (!Array.isArray(schema)) throw new Error("ajv implementation error"); if (it.opts.discriminator && parentSchema.discriminator) return; const schArr = schema; const valid = gen.let("valid", false); const passing = gen.let("passing", null); const schValid = gen.name("_valid"); cxt.setParams({ passing }); gen.block(validateOneOf); cxt.result(valid, () => cxt.reset(), () => cxt.error(true)); function validateOneOf() { schArr.forEach((sch, i) => { let schCxt; if ((0, util_1.alwaysValidSchema)(it, sch)) { gen.var(schValid, true); } else { schCxt = cxt.subschema({ keyword: "oneOf", schemaProp: i, compositeRule: true }, schValid); } if (i > 0) { gen.if((0, codegen_1._)`${schValid} && ${valid}`).assign(valid, false).assign(passing, (0, codegen_1._)`[${passing}, ${i}]`).else(); } gen.if(schValid, () => { gen.assign(valid, true); gen.assign(passing, i); if (schCxt) cxt.mergeEvaluated(schCxt, codegen_1.Name); }); }); } } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/allOf.js var require_allOf = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/allOf.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var util_1 = require_util(); var def = { keyword: "allOf", schemaType: "array", code(cxt) { const { gen, schema, it } = cxt; if (!Array.isArray(schema)) throw new Error("ajv implementation error"); const valid = gen.name("valid"); schema.forEach((sch, i) => { if ((0, util_1.alwaysValidSchema)(it, sch)) return; const schCxt = cxt.subschema({ keyword: "allOf", schemaProp: i }, valid); cxt.ok(valid); cxt.mergeEvaluated(schCxt); }); } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/if.js var require_if = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/if.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var codegen_1 = require_codegen(); var util_1 = require_util(); var error = { message: ({ params }) => (0, codegen_1.str)`must match "${params.ifClause}" schema`, params: ({ params }) => (0, codegen_1._)`{failingKeyword: ${params.ifClause}}` }; var def = { keyword: "if", schemaType: ["object", "boolean"], trackErrors: true, error, code(cxt) { const { gen, parentSchema, it } = cxt; if (parentSchema.then === void 0 && parentSchema.else === void 0) { (0, util_1.checkStrictMode)(it, '"if" without "then" and "else" is ignored'); } const hasThen = hasSchema(it, "then"); const hasElse = hasSchema(it, "else"); if (!hasThen && !hasElse) return; const valid = gen.let("valid", true); const schValid = gen.name("_valid"); validateIf(); cxt.reset(); if (hasThen && hasElse) { const ifClause = gen.let("ifClause"); cxt.setParams({ ifClause }); gen.if(schValid, validateClause("then", ifClause), validateClause("else", ifClause)); } else if (hasThen) { gen.if(schValid, validateClause("then")); } else { gen.if((0, codegen_1.not)(schValid), validateClause("else")); } cxt.pass(valid, () => cxt.error(true)); function validateIf() { const schCxt = cxt.subschema({ keyword: "if", compositeRule: true, createErrors: false, allErrors: false }, schValid); cxt.mergeEvaluated(schCxt); } function validateClause(keyword, ifClause) { return () => { const schCxt = cxt.subschema({ keyword }, schValid); gen.assign(valid, schValid); cxt.mergeValidEvaluated(schCxt, valid); if (ifClause) gen.assign(ifClause, (0, codegen_1._)`${keyword}`); else cxt.setParams({ ifClause: keyword }); }; } } }; function hasSchema(it, keyword) { const schema = it.schema[keyword]; return schema !== void 0 && !(0, util_1.alwaysValidSchema)(it, schema); } exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/thenElse.js var require_thenElse = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/thenElse.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var util_1 = require_util(); var def = { keyword: ["then", "else"], schemaType: ["object", "boolean"], code({ keyword, parentSchema, it }) { if (parentSchema.if === void 0) (0, util_1.checkStrictMode)(it, `"${keyword}" without "if" is ignored`); } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/applicator/index.js var require_applicator = __commonJS({ "node_modules/ajv/dist/vocabularies/applicator/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var additionalItems_1 = require_additionalItems(); var prefixItems_1 = require_prefixItems(); var items_1 = require_items(); var items2020_1 = require_items2020(); var contains_1 = require_contains(); var dependencies_1 = require_dependencies(); var propertyNames_1 = require_propertyNames(); var additionalProperties_1 = require_additionalProperties(); var properties_1 = require_properties(); var patternProperties_1 = require_patternProperties(); var not_1 = require_not(); var anyOf_1 = require_anyOf(); var oneOf_1 = require_oneOf(); var allOf_1 = require_allOf(); var if_1 = require_if(); var thenElse_1 = require_thenElse(); function getApplicator(draft2020 = false) { const applicator = [ // any not_1.default, anyOf_1.default, oneOf_1.default, allOf_1.default, if_1.default, thenElse_1.default, // object propertyNames_1.default, additionalProperties_1.default, dependencies_1.default, properties_1.default, patternProperties_1.default ]; if (draft2020) applicator.push(prefixItems_1.default, items2020_1.default); else applicator.push(additionalItems_1.default, items_1.default); applicator.push(contains_1.default); return applicator; } exports.default = getApplicator; } }); // node_modules/ajv/dist/vocabularies/format/format.js var require_format = __commonJS({ "node_modules/ajv/dist/vocabularies/format/format.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var codegen_1 = require_codegen(); var error = { message: ({ schemaCode }) => (0, codegen_1.str)`must match format "${schemaCode}"`, params: ({ schemaCode }) => (0, codegen_1._)`{format: ${schemaCode}}` }; var def = { keyword: "format", type: ["number", "string"], schemaType: "string", $data: true, error, code(cxt, ruleType) { const { gen, data, $data, schema, schemaCode, it } = cxt; const { opts, errSchemaPath, schemaEnv, self } = it; if (!opts.validateFormats) return; if ($data) validate$DataFormat(); else validateFormat(); function validate$DataFormat() { const fmts = gen.scopeValue("formats", { ref: self.formats, code: opts.code.formats }); const fDef = gen.const("fDef", (0, codegen_1._)`${fmts}[${schemaCode}]`); const fType = gen.let("fType"); const format = gen.let("format"); gen.if((0, codegen_1._)`typeof ${fDef} == "object" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._)`${fDef}.type || "string"`).assign(format, (0, codegen_1._)`${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._)`"string"`).assign(format, fDef)); cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt())); function unknownFmt() { if (opts.strictSchema === false) return codegen_1.nil; return (0, codegen_1._)`${schemaCode} && !${format}`; } function invalidFmt() { const callFormat = schemaEnv.$async ? (0, codegen_1._)`(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))` : (0, codegen_1._)`${format}(${data})`; const validData = (0, codegen_1._)`(typeof ${format} == "function" ? ${callFormat} : ${format}.test(${data}))`; return (0, codegen_1._)`${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`; } } function validateFormat() { const formatDef = self.formats[schema]; if (!formatDef) { unknownFormat(); return; } if (formatDef === true) return; const [fmtType, format, fmtRef] = getFormat(formatDef); if (fmtType === ruleType) cxt.pass(validCondition()); function unknownFormat() { if (opts.strictSchema === false) { self.logger.warn(unknownMsg()); return; } throw new Error(unknownMsg()); function unknownMsg() { return `unknown format "${schema}" ignored in schema at path "${errSchemaPath}"`; } } function getFormat(fmtDef) { const code = fmtDef instanceof RegExp ? (0, codegen_1.regexpCode)(fmtDef) : opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(schema)}` : void 0; const fmt = gen.scopeValue("formats", { key: schema, ref: fmtDef, code }); if (typeof fmtDef == "object" && !(fmtDef instanceof RegExp)) { return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt}.validate`]; } return ["string", fmtDef, fmt]; } function validCondition() { if (typeof formatDef == "object" && !(formatDef instanceof RegExp) && formatDef.async) { if (!schemaEnv.$async) throw new Error("async format in sync schema"); return (0, codegen_1._)`await ${fmtRef}(${data})`; } return typeof format == "function" ? (0, codegen_1._)`${fmtRef}(${data})` : (0, codegen_1._)`${fmtRef}.test(${data})`; } } } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/format/index.js var require_format2 = __commonJS({ "node_modules/ajv/dist/vocabularies/format/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var format_1 = require_format(); var format = [format_1.default]; exports.default = format; } }); // node_modules/ajv-draft-04/dist/vocabulary/draft4.js var require_draft4 = __commonJS({ "node_modules/ajv-draft-04/dist/vocabulary/draft4.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require_core2(); var validation_1 = require_validation(); var applicator_1 = require_applicator(); var format_1 = require_format2(); var metadataVocabulary = ["title", "description", "default"]; var draft4Vocabularies = [ core_1.default, validation_1.default, applicator_1.default(), format_1.default, metadataVocabulary ]; exports.default = draft4Vocabularies; } }); // node_modules/ajv/dist/vocabularies/discriminator/types.js var require_types = __commonJS({ "node_modules/ajv/dist/vocabularies/discriminator/types.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DiscrError = void 0; var DiscrError; (function(DiscrError2) { DiscrError2["Tag"] = "tag"; DiscrError2["Mapping"] = "mapping"; })(DiscrError || (exports.DiscrError = DiscrError = {})); } }); // node_modules/ajv/dist/vocabularies/discriminator/index.js var require_discriminator = __commonJS({ "node_modules/ajv/dist/vocabularies/discriminator/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var codegen_1 = require_codegen(); var types_1 = require_types(); var compile_1 = require_compile(); var ref_error_1 = require_ref_error(); var util_1 = require_util(); var error = { message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag ? `tag "${tagName}" must be string` : `value of tag "${tagName}" must be in oneOf`, params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._)`{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}` }; var def = { keyword: "discriminator", type: "object", schemaType: "object", error, code(cxt) { const { gen, data, schema, parentSchema, it } = cxt; const { oneOf } = parentSchema; if (!it.opts.discriminator) { throw new Error("discriminator: requires discriminator option"); } const tagName = schema.propertyName; if (typeof tagName != "string") throw new Error("discriminator: requires propertyName"); if (schema.mapping) throw new Error("discriminator: mapping is not supported"); if (!oneOf) throw new Error("discriminator: requires oneOf keyword"); const valid = gen.let("valid", false); const tag = gen.const("tag", (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(tagName)}`); gen.if((0, codegen_1._)`typeof ${tag} == "string"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName })); cxt.ok(valid); function validateMapping() { const mapping = getMapping(); gen.if(false); for (const tagValue in mapping) { gen.elseIf((0, codegen_1._)`${tag} === ${tagValue}`); gen.assign(valid, applyTagSchema(mapping[tagValue])); } gen.else(); cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName }); gen.endIf(); } function applyTagSchema(schemaProp) { const _valid = gen.name("valid"); const schCxt = cxt.subschema({ keyword: "oneOf", schemaProp }, _valid); cxt.mergeEvaluated(schCxt, codegen_1.Name); return _valid; } function getMapping() { var _a; const oneOfMapping = {}; const topRequired = hasRequired(parentSchema); let tagRequired = true; for (let i = 0; i < oneOf.length; i++) { let sch = oneOf[i]; if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) { const ref = sch.$ref; sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref); if (sch instanceof compile_1.SchemaEnv) sch = sch.schema; if (sch === void 0) throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref); } const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName]; if (typeof propSch != "object") { throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${tagName}"`); } tagRequired = tagRequired && (topRequired || hasRequired(sch)); addMappings(propSch, i); } if (!tagRequired) throw new Error(`discriminator: "${tagName}" must be required`); return oneOfMapping; function hasRequired({ required }) { return Array.isArray(required) && required.includes(tagName); } function addMappings(sch, i) { if (sch.const) { addMapping(sch.const, i); } else if (sch.enum) { for (const tagValue of sch.enum) { addMapping(tagValue, i); } } else { throw new Error(`discriminator: "properties/${tagName}" must have "const" or "enum"`); } } function addMapping(tagValue, i) { if (typeof tagValue != "string" || tagValue in oneOfMapping) { throw new Error(`discriminator: "${tagName}" values must be unique strings`); } oneOfMapping[tagValue] = i; } } } }; exports.default = def; } }); // node_modules/ajv-draft-04/dist/refs/json-schema-draft-04.json var require_json_schema_draft_04 = __commonJS({ "node_modules/ajv-draft-04/dist/refs/json-schema-draft-04.json"(exports, module) { module.exports = { id: "http://json-schema.org/draft-04/schema#", $schema: "http://json-schema.org/draft-04/schema#", description: "Core schema meta-schema", definitions: { schemaArray: { type: "array", minItems: 1, items: { $ref: "#" } }, positiveInteger: { type: "integer", minimum: 0 }, positiveIntegerDefault0: { allOf: [{ $ref: "#/definitions/positiveInteger" }, { default: 0 }] }, simpleTypes: { enum: ["array", "boolean", "integer", "null", "number", "object", "string"] }, stringArray: { type: "array", items: { type: "string" }, minItems: 1, uniqueItems: true } }, type: "object", properties: { id: { type: "string", format: "uri" }, $schema: { type: "string", format: "uri" }, title: { type: "string" }, description: { type: "string" }, default: {}, multipleOf: { type: "number", minimum: 0, exclusiveMinimum: true }, maximum: { type: "number" }, exclusiveMaximum: { type: "boolean", default: false }, minimum: { type: "number" }, exclusiveMinimum: { type: "boolean", default: false }, maxLength: { $ref: "#/definitions/positiveInteger" }, minLength: { $ref: "#/definitions/positiveIntegerDefault0" }, pattern: { type: "string", format: "regex" }, additionalItems: { anyOf: [{ type: "boolean" }, { $ref: "#" }], default: {} }, items: { anyOf: [{ $ref: "#" }, { $ref: "#/definitions/schemaArray" }], default: {} }, maxItems: { $ref: "#/definitions/positiveInteger" }, minItems: { $ref: "#/definitions/positiveIntegerDefault0" }, uniqueItems: { type: "boolean", default: false }, maxProperties: { $ref: "#/definitions/positiveInteger" }, minProperties: { $ref: "#/definitions/positiveIntegerDefault0" }, required: { $ref: "#/definitions/stringArray" }, additionalProperties: { anyOf: [{ type: "boolean" }, { $ref: "#" }], default: {} }, definitions: { type: "object", additionalProperties: { $ref: "#" }, default: {} }, properties: { type: "object", additionalProperties: { $ref: "#" }, default: {} }, patternProperties: { type: "object", additionalProperties: { $ref: "#" }, default: {} }, dependencies: { type: "object", additionalProperties: { anyOf: [{ $ref: "#" }, { $ref: "#/definitions/stringArray" }] } }, enum: { type: "array", minItems: 1, uniqueItems: true }, type: { anyOf: [ { $ref: "#/definitions/simpleTypes" }, { type: "array", items: { $ref: "#/definitions/simpleTypes" }, minItems: 1, uniqueItems: true } ] }, allOf: { $ref: "#/definitions/schemaArray" }, anyOf: { $ref: "#/definitions/schemaArray" }, oneOf: { $ref: "#/definitions/schemaArray" }, not: { $ref: "#" } }, dependencies: { exclusiveMaximum: ["maximum"], exclusiveMinimum: ["minimum"] }, default: {} }; } }); // node_modules/ajv-draft-04/dist/index.js var require_dist = __commonJS({ "node_modules/ajv-draft-04/dist/index.js"(exports, module) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0; var core_1 = require_core(); var draft4_1 = require_draft4(); var discriminator_1 = require_discriminator(); var draft4MetaSchema = require_json_schema_draft_04(); var META_SUPPORT_DATA = ["/properties"]; var META_SCHEMA_ID = "http://json-schema.org/draft-04/schema"; var Ajv2 = class extends core_1.default { constructor(opts = {}) { super({ ...opts, schemaId: "id" }); } _addVocabularies() { super._addVocabularies(); draft4_1.default.forEach((v) => this.addVocabulary(v)); if (this.opts.discriminator) this.addKeyword(discriminator_1.default); } _addDefaultMetaSchema() { super._addDefaultMetaSchema(); if (!this.opts.meta) return; const metaSchema = this.opts.$data ? this.$dataMetaSchema(draft4MetaSchema, META_SUPPORT_DATA) : draft4MetaSchema; this.addMetaSchema(metaSchema, META_SCHEMA_ID, false); this.refs["http://json-schema.org/schema"] = META_SCHEMA_ID; } defaultMeta() { return this.opts.defaultMeta = super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : void 0); } }; module.exports = exports = Ajv2; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Ajv2; var core_2 = require_core(); Object.defineProperty(exports, "KeywordCxt", { enumerable: true, get: function() { return core_2.KeywordCxt; } }); var core_3 = require_core(); Object.defineProperty(exports, "_", { enumerable: true, get: function() { return core_3._; } }); Object.defineProperty(exports, "str", { enumerable: true, get: function() { return core_3.str; } }); Object.defineProperty(exports, "stringify", { enumerable: true, get: function() { return core_3.stringify; } }); Object.defineProperty(exports, "nil", { enumerable: true, get: function() { return core_3.nil; } }); Object.defineProperty(exports, "Name", { enumerable: true, get: function() { return core_3.Name; } }); Object.defineProperty(exports, "CodeGen", { enumerable: true, get: function() { return core_3.CodeGen; } }); } }); // packages/abilities/node_modules/ajv-formats/dist/formats.js var require_formats = __commonJS({ "packages/abilities/node_modules/ajv-formats/dist/formats.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatNames = exports.fastFormats = exports.fullFormats = void 0; function fmtDef(validate, compare) { return { validate, compare }; } exports.fullFormats = { // date: http://tools.ietf.org/html/rfc3339#section-5.6 date: fmtDef(date, compareDate), // date-time: http://tools.ietf.org/html/rfc3339#section-5.6 time: fmtDef(getTime(true), compareTime), "date-time": fmtDef(getDateTime(true), compareDateTime), "iso-time": fmtDef(getTime(), compareIsoTime), "iso-date-time": fmtDef(getDateTime(), compareIsoDateTime), // duration: https://tools.ietf.org/html/rfc3339#appendix-A duration: /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/, uri, "uri-reference": /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i, // uri-template: https://tools.ietf.org/html/rfc6570 "uri-template": /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i, // For the source: https://gist.github.com/dperini/729294 // For test cases: https://mathiasbynens.be/demo/url-regex url: /^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu, email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i, hostname: /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i, // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html ipv4: /^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/, ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i, regex, // uuid: http://tools.ietf.org/html/rfc4122 uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i, // JSON-pointer: https://tools.ietf.org/html/rfc6901 // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A "json-pointer": /^(?:\/(?:[^~/]|~0|~1)*)*$/, "json-pointer-uri-fragment": /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i, // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00 "relative-json-pointer": /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/, // the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types // byte: https://github.com/miguelmota/is-base64 byte, // signed 32 bit integer int32: { type: "number", validate: validateInt32 }, // signed 64 bit integer int64: { type: "number", validate: validateInt64 }, // C-type float float: { type: "number", validate: validateNumber }, // C-type double double: { type: "number", validate: validateNumber }, // hint to the UI to hide input strings password: true, // unchecked string payload binary: true }; exports.fastFormats = { ...exports.fullFormats, date: fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\d$/, compareDate), time: fmtDef(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, compareTime), "date-time": fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, compareDateTime), "iso-time": fmtDef(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, compareIsoTime), "iso-date-time": fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, compareIsoDateTime), // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i, "uri-reference": /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i, // email (sources from jsen validator): // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363 // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation') email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i }; exports.formatNames = Object.keys(exports.fullFormats); function isLeapYear(year) { return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); } var DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/; var DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; function date(str) { const matches = DATE.exec(str); if (!matches) return false; const year = +matches[1]; const month = +matches[2]; const day = +matches[3]; return month >= 1 && month <= 12 && day >= 1 && day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]); } function compareDate(d1, d2) { if (!(d1 && d2)) return void 0; if (d1 > d2) return 1; if (d1 < d2) return -1; return 0; } var TIME = /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i; function getTime(strictTimeZone) { return function time(str) { const matches = TIME.exec(str); if (!matches) return false; const hr = +matches[1]; const min = +matches[2]; const sec = +matches[3]; const tz = matches[4]; const tzSign = matches[5] === "-" ? -1 : 1; const tzH = +(matches[6] || 0); const tzM = +(matches[7] || 0); if (tzH > 23 || tzM > 59 || strictTimeZone && !tz) return false; if (hr <= 23 && min <= 59 && sec < 60) return true; const utcMin = min - tzM * tzSign; const utcHr = hr - tzH * tzSign - (utcMin < 0 ? 1 : 0); return (utcHr === 23 || utcHr === -1) && (utcMin === 59 || utcMin === -1) && sec < 61; }; } function compareTime(s1, s2) { if (!(s1 && s2)) return void 0; const t1 = (/* @__PURE__ */ new Date("2020-01-01T" + s1)).valueOf(); const t2 = (/* @__PURE__ */ new Date("2020-01-01T" + s2)).valueOf(); if (!(t1 && t2)) return void 0; return t1 - t2; } function compareIsoTime(t1, t2) { if (!(t1 && t2)) return void 0; const a1 = TIME.exec(t1); const a2 = TIME.exec(t2); if (!(a1 && a2)) return void 0; t1 = a1[1] + a1[2] + a1[3]; t2 = a2[1] + a2[2] + a2[3]; if (t1 > t2) return 1; if (t1 < t2) return -1; return 0; } var DATE_TIME_SEPARATOR = /t|\s/i; function getDateTime(strictTimeZone) { const time = getTime(strictTimeZone); return function date_time(str) { const dateTime = str.split(DATE_TIME_SEPARATOR); return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1]); }; } function compareDateTime(dt1, dt2) { if (!(dt1 && dt2)) return void 0; const d1 = new Date(dt1).valueOf(); const d2 = new Date(dt2).valueOf(); if (!(d1 && d2)) return void 0; return d1 - d2; } function compareIsoDateTime(dt1, dt2) { if (!(dt1 && dt2)) return void 0; const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR); const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR); const res = compareDate(d1, d2); if (res === void 0) return void 0; return res || compareTime(t1, t2); } var NOT_URI_FRAGMENT = /\/|:/; var URI = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i; function uri(str) { return NOT_URI_FRAGMENT.test(str) && URI.test(str); } var BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm; function byte(str) { BYTE.lastIndex = 0; return BYTE.test(str); } var MIN_INT32 = -(2 ** 31); var MAX_INT32 = 2 ** 31 - 1; function validateInt32(value) { return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32; } function validateInt64(value) { return Number.isInteger(value); } function validateNumber() { return true; } var Z_ANCHOR = /[^\\]\\Z/; function regex(str) { if (Z_ANCHOR.test(str)) return false; try { new RegExp(str); return true; } catch (e) { return false; } } } }); // node_modules/ajv/dist/vocabularies/core/id.js var require_id = __commonJS({ "node_modules/ajv/dist/vocabularies/core/id.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var def = { keyword: "id", code() { throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID'); } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/core/index.js var require_core3 = __commonJS({ "node_modules/ajv/dist/vocabularies/core/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var id_1 = require_id(); var ref_1 = require_ref(); var core = [ "$schema", "$id", "$defs", "$vocabulary", { keyword: "$comment" }, "definitions", id_1.default, ref_1.default ]; exports.default = core; } }); // node_modules/ajv/dist/vocabularies/validation/limitNumber.js var require_limitNumber2 = __commonJS({ "node_modules/ajv/dist/vocabularies/validation/limitNumber.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var codegen_1 = require_codegen(); var ops = codegen_1.operators; var KWDs = { maximum: { okStr: "<=", ok: ops.LTE, fail: ops.GT }, minimum: { okStr: ">=", ok: ops.GTE, fail: ops.LT }, exclusiveMaximum: { okStr: "<", ok: ops.LT, fail: ops.GTE }, exclusiveMinimum: { okStr: ">", ok: ops.GT, fail: ops.LTE } }; var error = { message: ({ keyword, schemaCode }) => (0, codegen_1.str)`must be ${KWDs[keyword].okStr} ${schemaCode}`, params: ({ keyword, schemaCode }) => (0, codegen_1._)`{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}` }; var def = { keyword: Object.keys(KWDs), type: "number", schemaType: "number", $data: true, error, code(cxt) { const { keyword, data, schemaCode } = cxt; cxt.fail$data((0, codegen_1._)`${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`); } }; exports.default = def; } }); // node_modules/ajv/dist/vocabularies/validation/index.js var require_validation2 = __commonJS({ "node_modules/ajv/dist/vocabularies/validation/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var limitNumber_1 = require_limitNumber2(); var multipleOf_1 = require_multipleOf(); var limitLength_1 = require_limitLength(); var pattern_1 = require_pattern(); var limitProperties_1 = require_limitProperties(); var required_1 = require_required(); var limitItems_1 = require_limitItems(); var uniqueItems_1 = require_uniqueItems(); var const_1 = require_const(); var enum_1 = require_enum(); var validation = [ // number limitNumber_1.default, multipleOf_1.default, // string limitLength_1.default, pattern_1.default, // object limitProperties_1.default, required_1.default, // array limitItems_1.default, uniqueItems_1.default, // any { keyword: "type", schemaType: ["string", "array"] }, { keyword: "nullable", schemaType: "boolean" }, const_1.default, enum_1.default ]; exports.default = validation; } }); // node_modules/ajv/dist/vocabularies/metadata.js var require_metadata = __commonJS({ "node_modules/ajv/dist/vocabularies/metadata.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.contentVocabulary = exports.metadataVocabulary = void 0; exports.metadataVocabulary = [ "title", "description", "default", "deprecated", "readOnly", "writeOnly", "examples" ]; exports.contentVocabulary = [ "contentMediaType", "contentEncoding", "contentSchema" ]; } }); // node_modules/ajv/dist/vocabularies/draft7.js var require_draft7 = __commonJS({ "node_modules/ajv/dist/vocabularies/draft7.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require_core3(); var validation_1 = require_validation2(); var applicator_1 = require_applicator(); var format_1 = require_format2(); var metadata_1 = require_metadata(); var draft7Vocabularies = [ core_1.default, validation_1.default, (0, applicator_1.default)(), format_1.default, metadata_1.metadataVocabulary, metadata_1.contentVocabulary ]; exports.default = draft7Vocabularies; } }); // node_modules/ajv/dist/refs/json-schema-draft-07.json var require_json_schema_draft_07 = __commonJS({ "node_modules/ajv/dist/refs/json-schema-draft-07.json"(exports, module) { module.exports = { $schema: "http://json-schema.org/draft-07/schema#", $id: "http://json-schema.org/draft-07/schema#", title: "Core schema meta-schema", definitions: { schemaArray: { type: "array", minItems: 1, items: { $ref: "#" } }, nonNegativeInteger: { type: "integer", minimum: 0 }, nonNegativeIntegerDefault0: { allOf: [{ $ref: "#/definitions/nonNegativeInteger" }, { default: 0 }] }, simpleTypes: { enum: ["array", "boolean", "integer", "null", "number", "object", "string"] }, stringArray: { type: "array", items: { type: "string" }, uniqueItems: true, default: [] } }, type: ["object", "boolean"], properties: { $id: { type: "string", format: "uri-reference" }, $schema: { type: "string", format: "uri" }, $ref: { type: "string", format: "uri-reference" }, $comment: { type: "string" }, title: { type: "string" }, description: { type: "string" }, default: true, readOnly: { type: "boolean", default: false }, examples: { type: "array", items: true }, multipleOf: { type: "number", exclusiveMinimum: 0 }, maximum: { type: "number" }, exclusiveMaximum: { type: "number" }, minimum: { type: "number" }, exclusiveMinimum: { type: "number" }, maxLength: { $ref: "#/definitions/nonNegativeInteger" }, minLength: { $ref: "#/definitions/nonNegativeIntegerDefault0" }, pattern: { type: "string", format: "regex" }, additionalItems: { $ref: "#" }, items: { anyOf: [{ $ref: "#" }, { $ref: "#/definitions/schemaArray" }], default: true }, maxItems: { $ref: "#/definitions/nonNegativeInteger" }, minItems: { $ref: "#/definitions/nonNegativeIntegerDefault0" }, uniqueItems: { type: "boolean", default: false }, contains: { $ref: "#" }, maxProperties: { $ref: "#/definitions/nonNegativeInteger" }, minProperties: { $ref: "#/definitions/nonNegativeIntegerDefault0" }, required: { $ref: "#/definitions/stringArray" }, additionalProperties: { $ref: "#" }, definitions: { type: "object", additionalProperties: { $ref: "#" }, default: {} }, properties: { type: "object", additionalProperties: { $ref: "#" }, default: {} }, patternProperties: { type: "object", additionalProperties: { $ref: "#" }, propertyNames: { format: "regex" }, default: {} }, dependencies: { type: "object", additionalProperties: { anyOf: [{ $ref: "#" }, { $ref: "#/definitions/stringArray" }] } }, propertyNames: { $ref: "#" }, const: true, enum: { type: "array", items: true, minItems: 1, uniqueItems: true }, type: { anyOf: [ { $ref: "#/definitions/simpleTypes" }, { type: "array", items: { $ref: "#/definitions/simpleTypes" }, minItems: 1, uniqueItems: true } ] }, format: { type: "string" }, contentMediaType: { type: "string" }, contentEncoding: { type: "string" }, if: { $ref: "#" }, then: { $ref: "#" }, else: { $ref: "#" }, allOf: { $ref: "#/definitions/schemaArray" }, anyOf: { $ref: "#/definitions/schemaArray" }, oneOf: { $ref: "#/definitions/schemaArray" }, not: { $ref: "#" } }, default: true }; } }); // node_modules/ajv/dist/ajv.js var require_ajv = __commonJS({ "node_modules/ajv/dist/ajv.js"(exports, module) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0; var core_1 = require_core(); var draft7_1 = require_draft7(); var discriminator_1 = require_discriminator(); var draft7MetaSchema = require_json_schema_draft_07(); var META_SUPPORT_DATA = ["/properties"]; var META_SCHEMA_ID = "http://json-schema.org/draft-07/schema"; var Ajv2 = class extends core_1.default { _addVocabularies() { super._addVocabularies(); draft7_1.default.forEach((v) => this.addVocabulary(v)); if (this.opts.discriminator) this.addKeyword(discriminator_1.default); } _addDefaultMetaSchema() { super._addDefaultMetaSchema(); if (!this.opts.meta) return; const metaSchema = this.opts.$data ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA) : draft7MetaSchema; this.addMetaSchema(metaSchema, META_SCHEMA_ID, false); this.refs["http://json-schema.org/schema"] = META_SCHEMA_ID; } defaultMeta() { return this.opts.defaultMeta = super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : void 0); } }; exports.Ajv = Ajv2; module.exports = exports = Ajv2; module.exports.Ajv = Ajv2; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Ajv2; var validate_1 = require_validate(); Object.defineProperty(exports, "KeywordCxt", { enumerable: true, get: function() { return validate_1.KeywordCxt; } }); var codegen_1 = require_codegen(); Object.defineProperty(exports, "_", { enumerable: true, get: function() { return codegen_1._; } }); Object.defineProperty(exports, "str", { enumerable: true, get: function() { return codegen_1.str; } }); Object.defineProperty(exports, "stringify", { enumerable: true, get: function() { return codegen_1.stringify; } }); Object.defineProperty(exports, "nil", { enumerable: true, get: function() { return codegen_1.nil; } }); Object.defineProperty(exports, "Name", { enumerable: true, get: function() { return codegen_1.Name; } }); Object.defineProperty(exports, "CodeGen", { enumerable: true, get: function() { return codegen_1.CodeGen; } }); var validation_error_1 = require_validation_error(); Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function() { return validation_error_1.default; } }); var ref_error_1 = require_ref_error(); Object.defineProperty(exports, "MissingRefError", { enumerable: true, get: function() { return ref_error_1.default; } }); } }); // packages/abilities/node_modules/ajv-formats/dist/limit.js var require_limit = __commonJS({ "packages/abilities/node_modules/ajv-formats/dist/limit.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatLimitDefinition = void 0; var ajv_1 = require_ajv(); var codegen_1 = require_codegen(); var ops = codegen_1.operators; var KWDs = { formatMaximum: { okStr: "<=", ok: ops.LTE, fail: ops.GT }, formatMinimum: { okStr: ">=", ok: ops.GTE, fail: ops.LT }, formatExclusiveMaximum: { okStr: "<", ok: ops.LT, fail: ops.GTE }, formatExclusiveMinimum: { okStr: ">", ok: ops.GT, fail: ops.LTE } }; var error = { message: ({ keyword, schemaCode }) => (0, codegen_1.str)`should be ${KWDs[keyword].okStr} ${schemaCode}`, params: ({ keyword, schemaCode }) => (0, codegen_1._)`{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}` }; exports.formatLimitDefinition = { keyword: Object.keys(KWDs), type: "string", schemaType: "string", $data: true, error, code(cxt) { const { gen, data, schemaCode, keyword, it } = cxt; const { opts, self } = it; if (!opts.validateFormats) return; const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, "format"); if (fCxt.$data) validate$DataFormat(); else validateFormat(); function validate$DataFormat() { const fmts = gen.scopeValue("formats", { ref: self.formats, code: opts.code.formats }); const fmt = gen.const("fmt", (0, codegen_1._)`${fmts}[${fCxt.schemaCode}]`); cxt.fail$data((0, codegen_1.or)((0, codegen_1._)`typeof ${fmt} != "object"`, (0, codegen_1._)`${fmt} instanceof RegExp`, (0, codegen_1._)`typeof ${fmt}.compare != "function"`, compareCode(fmt))); } function validateFormat() { const format = fCxt.schema; const fmtDef = self.formats[format]; if (!fmtDef || fmtDef === true) return; if (typeof fmtDef != "object" || fmtDef instanceof RegExp || typeof fmtDef.compare != "function") { throw new Error(`"${keyword}": format "${format}" does not define "compare" function`); } const fmt = gen.scopeValue("formats", { key: format, ref: fmtDef, code: opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(format)}` : void 0 }); cxt.fail$data(compareCode(fmt)); } function compareCode(fmt) { return (0, codegen_1._)`${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`; } }, dependencies: ["format"] }; var formatLimitPlugin = (ajv2) => { ajv2.addKeyword(exports.formatLimitDefinition); return ajv2; }; exports.default = formatLimitPlugin; } }); // packages/abilities/node_modules/ajv-formats/dist/index.js var require_dist2 = __commonJS({ "packages/abilities/node_modules/ajv-formats/dist/index.js"(exports, module) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var formats_1 = require_formats(); var limit_1 = require_limit(); var codegen_1 = require_codegen(); var fullName = new codegen_1.Name("fullFormats"); var fastName = new codegen_1.Name("fastFormats"); var formatsPlugin = (ajv2, opts = { keywords: true }) => { if (Array.isArray(opts)) { addFormats2(ajv2, opts, formats_1.fullFormats, fullName); return ajv2; } const [formats, exportName] = opts.mode === "fast" ? [formats_1.fastFormats, fastName] : [formats_1.fullFormats, fullName]; const list = opts.formats || formats_1.formatNames; addFormats2(ajv2, list, formats, exportName); if (opts.keywords) (0, limit_1.default)(ajv2); return ajv2; }; formatsPlugin.get = (name, mode = "full") => { const formats = mode === "fast" ? formats_1.fastFormats : formats_1.fullFormats; const f = formats[name]; if (!f) throw new Error(`Unknown format "${name}"`); return f; }; function addFormats2(ajv2, list, fs, exportName) { var _a; var _b; (_a = (_b = ajv2.opts.code).formats) !== null && _a !== void 0 ? _a : _b.formats = (0, codegen_1._)`require("ajv-formats/dist/formats").${exportName}`; for (const f of list) ajv2.addFormat(f, fs[f]); } module.exports = exports = formatsPlugin; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = formatsPlugin; } }); // packages/abilities/build-module/api.mjs var import_data4 = __toESM(require_data(), 1); var import_i18n2 = __toESM(require_i18n(), 1); // packages/abilities/build-module/store/index.mjs var import_data3 = __toESM(require_data(), 1); // packages/abilities/build-module/store/reducer.mjs var import_data = __toESM(require_data(), 1); // packages/abilities/build-module/store/constants.mjs var STORE_NAME = "core/abilities"; var ABILITY_NAME_PATTERN = /^[a-z0-9-]+(?:\/[a-z0-9-]+){1,3}$/; var CATEGORY_SLUG_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/; var REGISTER_ABILITY = "REGISTER_ABILITY"; var UNREGISTER_ABILITY = "UNREGISTER_ABILITY"; var REGISTER_ABILITY_CATEGORY = "REGISTER_ABILITY_CATEGORY"; var UNREGISTER_ABILITY_CATEGORY = "UNREGISTER_ABILITY_CATEGORY"; // packages/abilities/build-module/store/reducer.mjs var ABILITY_KEYS = [ "name", "label", "description", "category", "input_schema", "output_schema", "meta", "callback", "permissionCallback" ]; var CATEGORY_KEYS = ["slug", "label", "description", "meta"]; function sanitizeAbility(ability) { return Object.keys(ability).filter( (key) => ABILITY_KEYS.includes(key) && ability[key] !== void 0 ).reduce( (obj, key) => ({ ...obj, [key]: ability[key] }), {} ); } function sanitizeCategory(category) { return Object.keys(category).filter( (key) => CATEGORY_KEYS.includes(key) && category[key] !== void 0 ).reduce( (obj, key) => ({ ...obj, [key]: category[key] }), {} ); } var DEFAULT_STATE = {}; function abilitiesByName(state = DEFAULT_STATE, action) { switch (action.type) { case REGISTER_ABILITY: { if (!action.ability) { return state; } return { ...state, [action.ability.name]: sanitizeAbility(action.ability) }; } case UNREGISTER_ABILITY: { if (!state[action.name]) { return state; } const { [action.name]: _, ...newState } = state; return newState; } default: return state; } } var DEFAULT_CATEGORIES_STATE = {}; function categoriesBySlug(state = DEFAULT_CATEGORIES_STATE, action) { switch (action.type) { case REGISTER_ABILITY_CATEGORY: { if (!action.category) { return state; } return { ...state, [action.category.slug]: sanitizeCategory(action.category) }; } case UNREGISTER_ABILITY_CATEGORY: { if (!state[action.slug]) { return state; } const { [action.slug]: _, ...newState } = state; return newState; } default: return state; } } var reducer_default = (0, import_data.combineReducers)({ abilitiesByName, categoriesBySlug }); // packages/abilities/build-module/store/actions.mjs var actions_exports = {}; __export(actions_exports, { registerAbility: () => registerAbility, registerAbilityCategory: () => registerAbilityCategory, unregisterAbility: () => unregisterAbility, unregisterAbilityCategory: () => unregisterAbilityCategory }); var import_i18n = __toESM(require_i18n(), 1); function filterAnnotations(sourceAnnotations, allowedKeys) { const annotations = {}; if (sourceAnnotations) { for (const key of allowedKeys) { if (sourceAnnotations[key] !== void 0) { annotations[key] = sourceAnnotations[key]; } } } return annotations; } function registerAbility(ability) { return ({ select: select2, dispatch: dispatch2 }) => { if (!ability.name) { throw new Error("Ability name is required"); } if (!ABILITY_NAME_PATTERN.test(ability.name)) { throw new Error( 'Ability name must be a string containing a namespace prefix with 2-4 segments, e.g. "my-plugin/my-ability" or "core/posts/find". It can only contain lowercase alphanumeric characters, dashes and the forward slash.' ); } if (!ability.label) { throw new Error( (0, import_i18n.sprintf)('Ability "%s" must have a label', ability.name) ); } if (!ability.description) { throw new Error( (0, import_i18n.sprintf)('Ability "%s" must have a description', ability.name) ); } if (!ability.category) { throw new Error( (0, import_i18n.sprintf)('Ability "%s" must have a category', ability.name) ); } if (!CATEGORY_SLUG_PATTERN.test(ability.category)) { throw new Error( (0, import_i18n.sprintf)( 'Ability "%1$s" has an invalid category. Category must be lowercase alphanumeric with dashes only. Got: "%2$s"', ability.name, ability.category ) ); } const categories = select2.getAbilityCategories(); const existingCategory = categories.find( (cat) => cat.slug === ability.category ); if (!existingCategory) { throw new Error( (0, import_i18n.sprintf)( 'Ability "%1$s" references non-existent category "%2$s". Please register the category first.', ability.name, ability.category ) ); } if (ability.callback && typeof ability.callback !== "function") { throw new Error( (0, import_i18n.sprintf)( 'Ability "%s" has an invalid callback. Callback must be a function', ability.name ) ); } const existingAbility = select2.getAbility(ability.name); if (existingAbility) { throw new Error( (0, import_i18n.sprintf)('Ability "%s" is already registered', ability.name) ); } const annotations = filterAnnotations(ability.meta?.annotations, [ "readonly", "destructive", "idempotent", "serverRegistered", "clientRegistered" ]); if (!annotations.serverRegistered) { annotations.clientRegistered = true; } const meta = { ...ability.meta || {}, annotations }; dispatch2({ type: REGISTER_ABILITY, ability: { ...ability, meta } }); }; } function unregisterAbility(name) { return { type: UNREGISTER_ABILITY, name }; } function registerAbilityCategory(slug, args) { return ({ select: select2, dispatch: dispatch2 }) => { if (!slug) { throw new Error("Category slug is required"); } if (!CATEGORY_SLUG_PATTERN.test(slug)) { throw new Error( "Category slug must contain only lowercase alphanumeric characters and dashes." ); } const existingCategory = select2.getAbilityCategory(slug); if (existingCategory) { throw new Error( (0, import_i18n.sprintf)('Category "%s" is already registered.', slug) ); } if (!args.label || typeof args.label !== "string") { throw new Error( "The category properties must contain a `label` string." ); } if (!args.description || typeof args.description !== "string") { throw new Error( "The category properties must contain a `description` string." ); } if (args.meta !== void 0 && (typeof args.meta !== "object" || Array.isArray(args.meta))) { throw new Error( "The category properties should provide a valid `meta` object." ); } const annotations = filterAnnotations(args.meta?.annotations, [ "serverRegistered", "clientRegistered" ]); if (!annotations.serverRegistered) { annotations.clientRegistered = true; } const meta = { ...args.meta || {}, annotations }; const category = { slug, label: args.label, description: args.description, meta }; dispatch2({ type: REGISTER_ABILITY_CATEGORY, category }); }; } function unregisterAbilityCategory(slug) { return { type: UNREGISTER_ABILITY_CATEGORY, slug }; } // packages/abilities/build-module/store/selectors.mjs var selectors_exports = {}; __export(selectors_exports, { getAbilities: () => getAbilities, getAbility: () => getAbility, getAbilityCategories: () => getAbilityCategories, getAbilityCategory: () => getAbilityCategory }); var import_data2 = __toESM(require_data(), 1); var getAbilities = (0, import_data2.createSelector)( (state, { category } = {}) => { const abilities = Object.values(state.abilitiesByName); if (category) { return abilities.filter( (ability) => ability.category === category ); } return abilities; }, (state, { category } = {}) => [ state.abilitiesByName, category ] ); function getAbility(state, name) { return state.abilitiesByName[name]; } var getAbilityCategories = (0, import_data2.createSelector)( (state) => { return Object.values(state.categoriesBySlug); }, (state) => [state.categoriesBySlug] ); function getAbilityCategory(state, slug) { return state.categoriesBySlug[slug]; } // packages/abilities/build-module/store/index.mjs var store = (0, import_data3.createReduxStore)(STORE_NAME, { reducer: reducer_default, actions: actions_exports, selectors: selectors_exports }); (0, import_data3.register)(store); // packages/abilities/build-module/validation.mjs var import_ajv_draft_04 = __toESM(require_dist(), 1); var import_ajv_formats = __toESM(require_dist2(), 1); var ajv = new import_ajv_draft_04.default({ coerceTypes: false, // No type coercion - AI should send proper JSON useDefaults: true, removeAdditional: false, // Keep additional properties allErrors: true, verbose: true, allowUnionTypes: true // Allow anyOf without explicit type }); (0, import_ajv_formats.default)(ajv, ["date-time", "email", "hostname", "ipv4", "ipv6", "uuid"]); function formatAjvError(ajvError, param) { const instancePath = ajvError.instancePath ? ajvError.instancePath.replace(/\//g, "][").replace(/^\]\[/, "[") + "]" : ""; const fullParam = param + instancePath; switch (ajvError.keyword) { case "type": return `${fullParam} is not of type ${ajvError.params.type}.`; case "required": return `${ajvError.params.missingProperty} is a required property of ${fullParam}.`; case "additionalProperties": return `${ajvError.params.additionalProperty} is not a valid property of Object.`; case "enum": const enumValues = ajvError.params.allowedValues.map( (v) => typeof v === "string" ? v : JSON.stringify(v) ).join(", "); return ajvError.params.allowedValues.length === 1 ? `${fullParam} is not ${enumValues}.` : `${fullParam} is not one of ${enumValues}.`; case "pattern": return `${fullParam} does not match pattern ${ajvError.params.pattern}.`; case "format": const format = ajvError.params.format; const formatMessages = { email: "Invalid email address.", "date-time": "Invalid date.", uuid: `${fullParam} is not a valid UUID.`, ipv4: `${fullParam} is not a valid IP address.`, ipv6: `${fullParam} is not a valid IP address.`, hostname: `${fullParam} is not a valid hostname.` }; return formatMessages[format] || `Invalid ${format}.`; case "minimum": case "exclusiveMinimum": return ajvError.keyword === "exclusiveMinimum" ? `${fullParam} must be greater than ${ajvError.params.limit}` : `${fullParam} must be greater than or equal to ${ajvError.params.limit}`; case "maximum": case "exclusiveMaximum": return ajvError.keyword === "exclusiveMaximum" ? `${fullParam} must be less than ${ajvError.params.limit}` : `${fullParam} must be less than or equal to ${ajvError.params.limit}`; case "multipleOf": return `${fullParam} must be a multiple of ${ajvError.params.multipleOf}.`; case "anyOf": case "oneOf": return `${fullParam} is invalid (failed ${ajvError.keyword} validation).`; case "minLength": return `${fullParam} must be at least ${ajvError.params.limit} character${ajvError.params.limit === 1 ? "" : "s"} long.`; case "maxLength": return `${fullParam} must be at most ${ajvError.params.limit} character${ajvError.params.limit === 1 ? "" : "s"} long.`; case "minItems": return `${fullParam} must contain at least ${ajvError.params.limit} item${ajvError.params.limit === 1 ? "" : "s"}.`; case "maxItems": return `${fullParam} must contain at most ${ajvError.params.limit} item${ajvError.params.limit === 1 ? "" : "s"}.`; case "uniqueItems": return `${fullParam} has duplicate items.`; case "minProperties": return `${fullParam} must contain at least ${ajvError.params.limit} propert${ajvError.params.limit === 1 ? "y" : "ies"}.`; case "maxProperties": return `${fullParam} must contain at most ${ajvError.params.limit} propert${ajvError.params.limit === 1 ? "y" : "ies"}.`; default: return ajvError.message || `${fullParam} is invalid (failed ${ajvError.keyword} validation).`; } } function validateValueFromSchema(value, args, param = "") { if (!args || typeof args !== "object") { console.warn(`Schema must be an object. Received ${typeof args}.`); return true; } if (!args.type && !args.anyOf && !args.oneOf) { console.warn( `The "type" schema keyword for ${param || "value"} is required.` ); return true; } try { const { default: defaultValue, ...schemaWithoutDefault } = args; const validate = ajv.compile(schemaWithoutDefault); const valid = validate(value === void 0 ? defaultValue : value); if (valid) { return true; } if (validate.errors && validate.errors.length > 0) { const anyOfError = validate.errors.find( (e) => e.keyword === "anyOf" || e.keyword === "oneOf" ); if (anyOfError) { return formatAjvError(anyOfError, param); } return formatAjvError(validate.errors[0], param); } return `${param} is invalid.`; } catch (error) { console.error("Schema compilation error:", error); return "Invalid schema provided for validation."; } } // packages/abilities/build-module/api.mjs function getAbilities2(args = {}) { return (0, import_data4.select)(store).getAbilities(args); } function getAbility2(name) { return (0, import_data4.select)(store).getAbility(name); } function getAbilityCategories2() { return (0, import_data4.select)(store).getAbilityCategories(); } function getAbilityCategory2(slug) { return (0, import_data4.select)(store).getAbilityCategory(slug); } function registerAbility2(ability) { (0, import_data4.dispatch)(store).registerAbility(ability); } function unregisterAbility2(name) { (0, import_data4.dispatch)(store).unregisterAbility(name); } function registerAbilityCategory2(slug, args) { (0, import_data4.dispatch)(store).registerAbilityCategory(slug, args); } function unregisterAbilityCategory2(slug) { (0, import_data4.dispatch)(store).unregisterAbilityCategory(slug); } async function executeAbility(name, input) { const ability = getAbility2(name); if (!ability) { throw new Error((0, import_i18n2.sprintf)("Ability not found: %s", name)); } if (!ability.callback) { throw new Error( (0, import_i18n2.sprintf)( 'Ability "%s" is missing callback. Please ensure the ability is properly registered.', ability.name ) ); } if (ability.permissionCallback) { const hasPermission = await ability.permissionCallback(input); if (!hasPermission) { const error = new Error( (0, import_i18n2.sprintf)("Permission denied for ability: %s", ability.name) ); error.code = "ability_permission_denied"; throw error; } } if (ability.input_schema) { const inputValidation = validateValueFromSchema( input, ability.input_schema, "input" ); if (inputValidation !== true) { const error = new Error( (0, import_i18n2.sprintf)( 'Ability "%1$s" has invalid input. Reason: %2$s', ability.name, inputValidation ) ); error.code = "ability_invalid_input"; throw error; } } let result; try { result = await ability.callback(input); } catch (error) { console.error(`Error executing ability ${ability.name}:`, error); throw error; } if (ability.output_schema) { const outputValidation = validateValueFromSchema( result, ability.output_schema, "output" ); if (outputValidation !== true) { const error = new Error( (0, import_i18n2.sprintf)( 'Ability "%1$s" has invalid output. Reason: %2$s', ability.name, outputValidation ) ); error.code = "ability_invalid_output"; throw error; } } return result; } export { executeAbility, getAbilities2 as getAbilities, getAbility2 as getAbility, getAbilityCategories2 as getAbilityCategories, getAbilityCategory2 as getAbilityCategory, registerAbility2 as registerAbility, registerAbilityCategory2 as registerAbilityCategory, store, unregisterAbility2 as unregisterAbility, unregisterAbilityCategory2 as unregisterAbilityCategory, validateValueFromSchema }; abilities/index.min.asset.php 0000644 00000000147 15206736336 0012246 0 ustar 00 <?php return array('dependencies' => array('wp-data', 'wp-i18n'), 'version' => 'f3475bc77a30dcc5b38d'); workflow/index.min.js 0000644 00000174130 15206736336 0010666 0 ustar 00 var Wa=Object.create;var vr=Object.defineProperty;var Ba=Object.getOwnPropertyDescriptor;var Va=Object.getOwnPropertyNames;var $a=Object.getPrototypeOf,Ua=Object.prototype.hasOwnProperty;var te=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ha=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Va(t))!Ua.call(e,a)&&a!==r&&vr(e,a,{get:()=>t[a],enumerable:!(o=Ba(t,a))||o.enumerable});return e};var m=(e,t,r)=>(r=e!=null?Wa($a(e)):{},Ha(t||!e||!e.__esModule?vr(r,"default",{value:e,enumerable:!0}):r,e));var je=te((vl,hr)=>{hr.exports=window.wp.element});var b=te((gl,br)=>{br.exports=window.React});var U=te((bl,xr)=>{xr.exports=window.ReactJSXRuntime});var ue=te((Dl,Or)=>{Or.exports=window.ReactDOM});var Ea=te((af,ba)=>{ba.exports=window.wp.data});var xa=te((nf,Sa)=>{Sa.exports=window.wp.i18n});var _a=te((lf,Ca)=>{Ca.exports=window.wp.components});var Pa=te((sf,ka)=>{ka.exports=window.wp.keyboardShortcuts});var Da=te((ff,Oa)=>{Oa.exports=window.wp.primitives});var Ia=te((gf,Na)=>{Na.exports=window.wp.privateApis});var pt=m(je(),1);var gr=1,za=.9,Ka=.8,Ga=.17,yt=.1,Rt=.999,qa=.9999,Ya=.99,Xa=/[\\\/_+.#"@\[\(\{&]/,Za=/[\\\/_+.#"@\[\(\{&]/g,Ja=/[\s-]/,yr=/[\s-]/g;function bt(e,t,r,o,a,n,l){if(n===t.length)return a===e.length?gr:Ya;var i=`${a},${n}`;if(l[i]!==void 0)return l[i];for(var u=o.charAt(n),s=r.indexOf(u,a),f=0,c,g,w,C;s>=0;)c=bt(e,t,r,o,s+1,n+1,l),c>f&&(s===a?c*=gr:Xa.test(e.charAt(s-1))?(c*=Ka,w=e.slice(a,s-1).match(Za),w&&a>0&&(c*=Math.pow(Rt,w.length))):Ja.test(e.charAt(s-1))?(c*=za,C=e.slice(a,s-1).match(yr),C&&a>0&&(c*=Math.pow(Rt,C.length))):(c*=Ga,a>0&&(c*=Math.pow(Rt,s-a))),e.charAt(s)!==t.charAt(n)&&(c*=qa)),(c<yt&&r.charAt(s-1)===o.charAt(n+1)||o.charAt(n+1)===o.charAt(n)&&r.charAt(s-1)!==o.charAt(n))&&(g=bt(e,t,r,o,s+1,n+2,l),g*yt>c&&(c=g*yt)),c>f&&(f=c),s=r.indexOf(u,s+1);return l[i]=f,f}function wr(e){return e.toLowerCase().replace(yr," ")}function Rr(e,t,r){return e=r&&r.length>0?`${e+" "+r.join(" ")}`:e,bt(e,t,wr(e),wr(t),0,0,{})}var N=m(b(),1);var wl=!!(typeof window<"u"&&window.document&&window.document.createElement);function ye(e,t,{checkForDefaultPrevented:r=!0}={}){return function(a){if(e?.(a),r===!1||!a.defaultPrevented)return t?.(a)}}var Sr=m(b(),1);function Er(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Et(...e){return t=>{let r=!1,o=e.map(a=>{let n=Er(a,t);return!r&&typeof n=="function"&&(r=!0),n});if(r)return()=>{for(let a=0;a<o.length;a++){let n=o[a];typeof n=="function"?n():Er(e[a],null)}}}}function We(...e){return Sr.useCallback(Et(...e),e)}var Z=m(b(),1),St=m(U(),1);function Cr(e,t){let r=Z.createContext(t),o=n=>{let{children:l,...i}=n,u=Z.useMemo(()=>i,Object.values(i));return(0,St.jsx)(r.Provider,{value:u,children:l})};o.displayName=e+"Provider";function a(n){let l=Z.useContext(r);if(l)return l;if(t!==void 0)return t;throw new Error(`\`${n}\` must be used within \`${e}\``)}return[o,a]}function _r(e,t=[]){let r=[];function o(n,l){let i=Z.createContext(l),u=r.length;r=[...r,l];let s=c=>{let{scope:g,children:w,...C}=c,v=g?.[e]?.[u]||i,p=Z.useMemo(()=>C,Object.values(C));return(0,St.jsx)(v.Provider,{value:p,children:w})};s.displayName=n+"Provider";function f(c,g){let w=g?.[e]?.[u]||i,C=Z.useContext(w);if(C)return C;if(l!==void 0)return l;throw new Error(`\`${c}\` must be used within \`${n}\``)}return[s,f]}let a=()=>{let n=r.map(l=>Z.createContext(l));return function(i){let u=i?.[e]||n;return Z.useMemo(()=>({[`__scope${e}`]:{...i,[e]:u}}),[i,u])}};return a.scopeName=e,[o,Qa(a,...t)]}function Qa(...e){let t=e[0];if(e.length===1)return t;let r=()=>{let o=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(n){let l=o.reduce((i,{useScope:u,scopeName:s})=>{let c=u(n)[`__scope${s}`];return{...i,...c}},{});return Z.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return r.scopeName=t.scopeName,r}var xt=m(b(),1);var kr=m(b(),1),Be=globalThis?.document?kr.useLayoutEffect:()=>{};var en=xt[" useId ".trim().toString()]||(()=>{}),tn=0;function Ve(e){let[t,r]=xt.useState(en());return Be(()=>{e||r(o=>o??String(tn++))},[e]),e||(t?`radix-${t}`:"")}var J=m(b(),1);var $e=m(b(),1);var rn=J[" useInsertionEffect ".trim().toString()]||Be;function Pr({prop:e,defaultProp:t,onChange:r=()=>{},caller:o}){let[a,n,l]=on({defaultProp:t,onChange:r}),i=e!==void 0,u=i?e:a;{let f=J.useRef(e!==void 0);J.useEffect(()=>{let c=f.current;c!==i&&console.warn(`${o} is changing from ${c?"controlled":"uncontrolled"} to ${i?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=i},[i,o])}let s=J.useCallback(f=>{if(i){let c=an(f)?f(e):f;c!==e&&l.current?.(c)}else n(f)},[i,e,n,l]);return[u,s]}function on({defaultProp:e,onChange:t}){let[r,o]=J.useState(e),a=J.useRef(r),n=J.useRef(t);return rn(()=>{n.current=t},[t]),J.useEffect(()=>{a.current!==r&&(n.current?.(r),a.current=r)},[r,a]),[r,o,n]}function an(e){return typeof e=="function"}var F=m(b(),1);var Pl=!!(typeof window<"u"&&window.document&&window.document.createElement);function Ue(e,t,{checkForDefaultPrevented:r=!0}={}){return function(a){if(e?.(a),r===!1||!a.defaultPrevented)return t?.(a)}}var Ar=m(b(),1),Tr=m(ue(),1);var W=m(b(),1);var Nr=m(b(),1);function Dr(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Ct(...e){return t=>{let r=!1,o=e.map(a=>{let n=Dr(a,t);return!r&&typeof n=="function"&&(r=!0),n});if(r)return()=>{for(let a=0;a<o.length;a++){let n=o[a];typeof n=="function"?n():Dr(e[a],null)}}}}function _t(...e){return Nr.useCallback(Ct(...e),e)}var He=m(U(),1);function Ir(e){let t=nn(e),r=W.forwardRef((o,a)=>{let{children:n,...l}=o,i=W.Children.toArray(n),u=i.find(sn);if(u){let s=u.props.children,f=i.map(c=>c===u?W.Children.count(s)>1?W.Children.only(null):W.isValidElement(s)?s.props.children:null:c);return(0,He.jsx)(t,{...l,ref:a,children:W.isValidElement(s)?W.cloneElement(s,void 0,f):null})}return(0,He.jsx)(t,{...l,ref:a,children:n})});return r.displayName=`${e}.Slot`,r}function nn(e){let t=W.forwardRef((r,o)=>{let{children:a,...n}=r;if(W.isValidElement(a)){let l=fn(a),i=un(n,a.props);return a.type!==W.Fragment&&(i.ref=o?Ct(o,l):l),W.cloneElement(a,i)}return W.Children.count(a)>1?W.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var ln=Symbol("radix.slottable");function sn(e){return W.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ln}function un(e,t){let r={...t};for(let o in t){let a=e[o],n=t[o];/^on[A-Z]/.test(o)?a&&n?r[o]=(...i)=>{let u=n(...i);return a(...i),u}:a&&(r[o]=a):o==="style"?r[o]={...a,...n}:o==="className"&&(r[o]=[a,n].filter(Boolean).join(" "))}return{...e,...r}}function fn(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var Lr=m(U(),1),cn=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],kt=cn.reduce((e,t)=>{let r=Ir(`Primitive.${t}`),o=Ar.forwardRef((a,n)=>{let{asChild:l,...i}=a,u=l?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),(0,Lr.jsx)(u,{...i,ref:n})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function Mr(e,t){e&&Tr.flushSync(()=>e.dispatchEvent(t))}var Re=m(b(),1);function De(e){let t=Re.useRef(e);return Re.useEffect(()=>{t.current=e}),Re.useMemo(()=>(...r)=>t.current?.(...r),[])}var Fr=m(b(),1);function jr(e,t=globalThis?.document){let r=De(e);Fr.useEffect(()=>{let o=a=>{a.key==="Escape"&&r(a)};return t.addEventListener("keydown",o,{capture:!0}),()=>t.removeEventListener("keydown",o,{capture:!0})},[r,t])}var Ot=m(U(),1),dn="DismissableLayer",Pt="dismissableLayer.update",mn="dismissableLayer.pointerDownOutside",pn="dismissableLayer.focusOutside",Wr,Vr=F.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Dt=F.forwardRef((e,t)=>{let{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:n,onInteractOutside:l,onDismiss:i,...u}=e,s=F.useContext(Vr),[f,c]=F.useState(null),g=f?.ownerDocument??globalThis?.document,[,w]=F.useState({}),C=_t(t,R=>c(R)),v=Array.from(s.layers),[p]=[...s.layersWithOutsidePointerEventsDisabled].slice(-1),E=v.indexOf(p),k=f?v.indexOf(f):-1,T=s.layersWithOutsidePointerEventsDisabled.size>0,L=k>=E,P=gn(R=>{let z=R.target,ne=[...s.branches].some(se=>se.contains(z));!L||ne||(a?.(R),l?.(R),R.defaultPrevented||i?.())},g),x=wn(R=>{let z=R.target;[...s.branches].some(se=>se.contains(z))||(n?.(R),l?.(R),R.defaultPrevented||i?.())},g);return jr(R=>{k===s.layers.size-1&&(o?.(R),!R.defaultPrevented&&i&&(R.preventDefault(),i()))},g),F.useEffect(()=>{if(f)return r&&(s.layersWithOutsidePointerEventsDisabled.size===0&&(Wr=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),s.layersWithOutsidePointerEventsDisabled.add(f)),s.layers.add(f),Br(),()=>{r&&s.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=Wr)}},[f,g,r,s]),F.useEffect(()=>()=>{f&&(s.layers.delete(f),s.layersWithOutsidePointerEventsDisabled.delete(f),Br())},[f,s]),F.useEffect(()=>{let R=()=>w({});return document.addEventListener(Pt,R),()=>document.removeEventListener(Pt,R)},[]),(0,Ot.jsx)(kt.div,{...u,ref:C,style:{pointerEvents:T?L?"auto":"none":void 0,...e.style},onFocusCapture:Ue(e.onFocusCapture,x.onFocusCapture),onBlurCapture:Ue(e.onBlurCapture,x.onBlurCapture),onPointerDownCapture:Ue(e.onPointerDownCapture,P.onPointerDownCapture)})});Dt.displayName=dn;var vn="DismissableLayerBranch",hn=F.forwardRef((e,t)=>{let r=F.useContext(Vr),o=F.useRef(null),a=_t(t,o);return F.useEffect(()=>{let n=o.current;if(n)return r.branches.add(n),()=>{r.branches.delete(n)}},[r.branches]),(0,Ot.jsx)(kt.div,{...e,ref:a})});hn.displayName=vn;function gn(e,t=globalThis?.document){let r=De(e),o=F.useRef(!1),a=F.useRef(()=>{});return F.useEffect(()=>{let n=i=>{if(i.target&&!o.current){let s=function(){$r(mn,r,f,{discrete:!0})};var u=s;let f={originalEvent:i};i.pointerType==="touch"?(t.removeEventListener("click",a.current),a.current=s,t.addEventListener("click",a.current,{once:!0})):s()}else t.removeEventListener("click",a.current);o.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",n)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",n),t.removeEventListener("click",a.current)}},[t,r]),{onPointerDownCapture:()=>o.current=!0}}function wn(e,t=globalThis?.document){let r=De(e),o=F.useRef(!1);return F.useEffect(()=>{let a=n=>{n.target&&!o.current&&$r(pn,r,{originalEvent:n},{discrete:!1})};return t.addEventListener("focusin",a),()=>t.removeEventListener("focusin",a)},[t,r]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function Br(){let e=new CustomEvent(Pt);document.dispatchEvent(e)}function $r(e,t,r,{discrete:o}){let a=r.originalEvent.target,n=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&a.addEventListener(e,t,{once:!0}),o?Mr(a,n):a.dispatchEvent(n)}var Q=m(b(),1);var Hr=m(b(),1);function Ur(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Nt(...e){return t=>{let r=!1,o=e.map(a=>{let n=Ur(a,t);return!r&&typeof n=="function"&&(r=!0),n});if(r)return()=>{for(let a=0;a<o.length;a++){let n=o[a];typeof n=="function"?n():Ur(e[a],null)}}}}function zr(...e){return Hr.useCallback(Nt(...e),e)}var Gr=m(b(),1),xn=m(ue(),1);var B=m(b(),1);var ze=m(U(),1);function Kr(e){let t=yn(e),r=B.forwardRef((o,a)=>{let{children:n,...l}=o,i=B.Children.toArray(n),u=i.find(bn);if(u){let s=u.props.children,f=i.map(c=>c===u?B.Children.count(s)>1?B.Children.only(null):B.isValidElement(s)?s.props.children:null:c);return(0,ze.jsx)(t,{...l,ref:a,children:B.isValidElement(s)?B.cloneElement(s,void 0,f):null})}return(0,ze.jsx)(t,{...l,ref:a,children:n})});return r.displayName=`${e}.Slot`,r}function yn(e){let t=B.forwardRef((r,o)=>{let{children:a,...n}=r;if(B.isValidElement(a)){let l=Sn(a),i=En(n,a.props);return a.type!==B.Fragment&&(i.ref=o?Nt(o,l):l),B.cloneElement(a,i)}return B.Children.count(a)>1?B.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Rn=Symbol("radix.slottable");function bn(e){return B.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Rn}function En(e,t){let r={...t};for(let o in t){let a=e[o],n=t[o];/^on[A-Z]/.test(o)?a&&n?r[o]=(...i)=>{let u=n(...i);return a(...i),u}:a&&(r[o]=a):o==="style"?r[o]={...a,...n}:o==="className"&&(r[o]=[a,n].filter(Boolean).join(" "))}return{...e,...r}}function Sn(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var qr=m(U(),1),Cn=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Yr=Cn.reduce((e,t)=>{let r=Kr(`Primitive.${t}`),o=Gr.forwardRef((a,n)=>{let{asChild:l,...i}=a,u=l?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),(0,qr.jsx)(u,{...i,ref:n})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});var be=m(b(),1);function It(e){let t=be.useRef(e);return be.useEffect(()=>{t.current=e}),be.useMemo(()=>(...r)=>t.current?.(...r),[])}var eo=m(U(),1),At="focusScope.autoFocusOnMount",Tt="focusScope.autoFocusOnUnmount",Xr={bubbles:!1,cancelable:!0},_n="FocusScope",Lt=Q.forwardRef((e,t)=>{let{loop:r=!1,trapped:o=!1,onMountAutoFocus:a,onUnmountAutoFocus:n,...l}=e,[i,u]=Q.useState(null),s=It(a),f=It(n),c=Q.useRef(null),g=zr(t,v=>u(v)),w=Q.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;Q.useEffect(()=>{if(o){let k=function(x){if(w.paused||!i)return;let R=x.target;i.contains(R)?c.current=R:ie(c.current,{select:!0})},T=function(x){if(w.paused||!i)return;let R=x.relatedTarget;R!==null&&(i.contains(R)||ie(c.current,{select:!0}))},L=function(x){if(document.activeElement===document.body)for(let z of x)z.removedNodes.length>0&&ie(i)};var v=k,p=T,E=L;document.addEventListener("focusin",k),document.addEventListener("focusout",T);let P=new MutationObserver(L);return i&&P.observe(i,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",k),document.removeEventListener("focusout",T),P.disconnect()}}},[o,i,w.paused]),Q.useEffect(()=>{if(i){Jr.add(w);let v=document.activeElement;if(!i.contains(v)){let E=new CustomEvent(At,Xr);i.addEventListener(At,s),i.dispatchEvent(E),E.defaultPrevented||(kn(In(to(i)),{select:!0}),document.activeElement===v&&ie(i))}return()=>{i.removeEventListener(At,s),setTimeout(()=>{let E=new CustomEvent(Tt,Xr);i.addEventListener(Tt,f),i.dispatchEvent(E),E.defaultPrevented||ie(v??document.body,{select:!0}),i.removeEventListener(Tt,f),Jr.remove(w)},0)}}},[i,s,f,w]);let C=Q.useCallback(v=>{if(!r&&!o||w.paused)return;let p=v.key==="Tab"&&!v.altKey&&!v.ctrlKey&&!v.metaKey,E=document.activeElement;if(p&&E){let k=v.currentTarget,[T,L]=Pn(k);T&&L?!v.shiftKey&&E===L?(v.preventDefault(),r&&ie(T,{select:!0})):v.shiftKey&&E===T&&(v.preventDefault(),r&&ie(L,{select:!0})):E===k&&v.preventDefault()}},[r,o,w.paused]);return(0,eo.jsx)(Yr.div,{tabIndex:-1,...l,ref:g,onKeyDown:C})});Lt.displayName=_n;function kn(e,{select:t=!1}={}){let r=document.activeElement;for(let o of e)if(ie(o,{select:t}),document.activeElement!==r)return}function Pn(e){let t=to(e),r=Zr(t,e),o=Zr(t.reverse(),e);return[r,o]}function to(e){let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{let a=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||a?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function Zr(e,t){for(let r of e)if(!On(r,{upTo:t}))return r}function On(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Dn(e){return e instanceof HTMLInputElement&&"select"in e}function ie(e,{select:t=!1}={}){if(e&&e.focus){let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&Dn(e)&&t&&e.select()}}var Jr=Nn();function Nn(){let e=[];return{add(t){let r=e[0];t!==r&&r?.pause(),e=Qr(e,t),e.unshift(t)},remove(t){e=Qr(e,t),e[0]?.resume()}}}function Qr(e,t){let r=[...e],o=r.indexOf(t);return o!==-1&&r.splice(o,1),r}function In(e){return e.filter(t=>t.tagName!=="A")}var Ge=m(b(),1),fo=m(ue(),1);var no=m(b(),1),Wn=m(ue(),1);var V=m(b(),1);var An=m(b(),1);function ro(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function oo(...e){return t=>{let r=!1,o=e.map(a=>{let n=ro(a,t);return!r&&typeof n=="function"&&(r=!0),n});if(r)return()=>{for(let a=0;a<o.length;a++){let n=o[a];typeof n=="function"?n():ro(e[a],null)}}}}var Ke=m(U(),1);function ao(e){let t=Tn(e),r=V.forwardRef((o,a)=>{let{children:n,...l}=o,i=V.Children.toArray(n),u=i.find(Mn);if(u){let s=u.props.children,f=i.map(c=>c===u?V.Children.count(s)>1?V.Children.only(null):V.isValidElement(s)?s.props.children:null:c);return(0,Ke.jsx)(t,{...l,ref:a,children:V.isValidElement(s)?V.cloneElement(s,void 0,f):null})}return(0,Ke.jsx)(t,{...l,ref:a,children:n})});return r.displayName=`${e}.Slot`,r}function Tn(e){let t=V.forwardRef((r,o)=>{let{children:a,...n}=r;if(V.isValidElement(a)){let l=jn(a),i=Fn(n,a.props);return a.type!==V.Fragment&&(i.ref=o?oo(o,l):l),V.cloneElement(a,i)}return V.Children.count(a)>1?V.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Ln=Symbol("radix.slottable");function Mn(e){return V.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Ln}function Fn(e,t){let r={...t};for(let o in t){let a=e[o],n=t[o];/^on[A-Z]/.test(o)?a&&n?r[o]=(...i)=>{let u=n(...i);return a(...i),u}:a&&(r[o]=a):o==="style"?r[o]={...a,...n}:o==="className"&&(r[o]=[a,n].filter(Boolean).join(" "))}return{...e,...r}}function jn(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var io=m(U(),1),Bn=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],lo=Bn.reduce((e,t)=>{let r=ao(`Primitive.${t}`),o=no.forwardRef((a,n)=>{let{asChild:l,...i}=a,u=l?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),(0,io.jsx)(u,{...i,ref:n})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});var so=m(b(),1),uo=globalThis?.document?so.useLayoutEffect:()=>{};var co=m(U(),1),Vn="Portal",Mt=Ge.forwardRef((e,t)=>{let{container:r,...o}=e,[a,n]=Ge.useState(!1);uo(()=>n(!0),[]);let l=r||a&&globalThis?.document?.body;return l?fo.default.createPortal((0,co.jsx)(lo.div,{...o,ref:t}),l):null});Mt.displayName=Vn;var q=m(b(),1);var po=m(b(),1);function mo(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function $n(...e){return t=>{let r=!1,o=e.map(a=>{let n=mo(a,t);return!r&&typeof n=="function"&&(r=!0),n});if(r)return()=>{for(let a=0;a<o.length;a++){let n=o[a];typeof n=="function"?n():mo(e[a],null)}}}}function vo(...e){return po.useCallback($n(...e),e)}var ho=m(b(),1),Ft=globalThis?.document?ho.useLayoutEffect:()=>{};var go=m(b(),1);function Un(e,t){return go.useReducer((r,o)=>t[r][o]??r,e)}var Ne=e=>{let{present:t,children:r}=e,o=Hn(t),a=typeof r=="function"?r({present:o.isPresent}):q.Children.only(r),n=vo(o.ref,zn(a));return typeof r=="function"||o.isPresent?q.cloneElement(a,{ref:n}):null};Ne.displayName="Presence";function Hn(e){let[t,r]=q.useState(),o=q.useRef(null),a=q.useRef(e),n=q.useRef("none"),l=e?"mounted":"unmounted",[i,u]=Un(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return q.useEffect(()=>{let s=qe(o.current);n.current=i==="mounted"?s:"none"},[i]),Ft(()=>{let s=o.current,f=a.current;if(f!==e){let g=n.current,w=qe(s);e?u("MOUNT"):w==="none"||s?.display==="none"?u("UNMOUNT"):u(f&&g!==w?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,u]),Ft(()=>{if(t){let s,f=t.ownerDocument.defaultView??window,c=w=>{let v=qe(o.current).includes(CSS.escape(w.animationName));if(w.target===t&&v&&(u("ANIMATION_END"),!a.current)){let p=t.style.animationFillMode;t.style.animationFillMode="forwards",s=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=p)})}},g=w=>{w.target===t&&(n.current=qe(o.current))};return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",c),t.addEventListener("animationend",c),()=>{f.clearTimeout(s),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",c),t.removeEventListener("animationend",c)}}else u("ANIMATION_END")},[t,u]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:q.useCallback(s=>{o.current=s?getComputedStyle(s):null,r(s)},[])}}function qe(e){return e?.animationName||"none"}function zn(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var wo=m(b(),1),Zn=m(ue(),1);var $=m(b(),1);var Ye=m(U(),1);function Xe(e){let t=Kn(e),r=$.forwardRef((o,a)=>{let{children:n,...l}=o,i=$.Children.toArray(n),u=i.find(qn);if(u){let s=u.props.children,f=i.map(c=>c===u?$.Children.count(s)>1?$.Children.only(null):$.isValidElement(s)?s.props.children:null:c);return(0,Ye.jsx)(t,{...l,ref:a,children:$.isValidElement(s)?$.cloneElement(s,void 0,f):null})}return(0,Ye.jsx)(t,{...l,ref:a,children:n})});return r.displayName=`${e}.Slot`,r}function Kn(e){let t=$.forwardRef((r,o)=>{let{children:a,...n}=r;if($.isValidElement(a)){let l=Xn(a),i=Yn(n,a.props);return a.type!==$.Fragment&&(i.ref=o?Et(o,l):l),$.cloneElement(a,i)}return $.Children.count(a)>1?$.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Gn=Symbol("radix.slottable");function qn(e){return $.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Gn}function Yn(e,t){let r={...t};for(let o in t){let a=e[o],n=t[o];/^on[A-Z]/.test(o)?a&&n?r[o]=(...i)=>{let u=n(...i);return a(...i),u}:a&&(r[o]=a):o==="style"?r[o]={...a,...n}:o==="className"&&(r[o]=[a,n].filter(Boolean).join(" "))}return{...e,...r}}function Xn(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var yo=m(U(),1),Jn=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ee=Jn.reduce((e,t)=>{let r=Xe(`Primitive.${t}`),o=wo.forwardRef((a,n)=>{let{asChild:l,...i}=a,u=l?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),(0,yo.jsx)(u,{...i,ref:n})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});var bo=m(b(),1),jt=0;function Eo(){bo.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??Ro()),document.body.insertAdjacentElement("beforeend",e[1]??Ro()),jt++,()=>{jt===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),jt--}},[])}function Ro(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Y=function(){return Y=Object.assign||function(t){for(var r,o=1,a=arguments.length;o<a;o++){r=arguments[o];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Y.apply(this,arguments)};function Ze(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,o=Object.getOwnPropertySymbols(e);a<o.length;a++)t.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(e,o[a])&&(r[o[a]]=e[o[a]]);return r}function So(e,t,r){if(r||arguments.length===2)for(var o=0,a=t.length,n;o<a;o++)(n||!(o in t))&&(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))}var rt=m(b());var H=m(b());var fe="right-scroll-bar-position",ce="width-before-scroll-bar",Wt="with-scroll-bars-hidden",Bt="--removed-body-scroll-bar-size";function Je(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}var xo=m(b());function Co(e,t){var r=(0,xo.useState)(function(){return{value:e,callback:t,facade:{get current(){return r.value},set current(o){var a=r.value;a!==o&&(r.value=o,r.callback(o,a))}}}})[0];return r.callback=t,r.facade}var Qe=m(b());var Qn=typeof window<"u"?Qe.useLayoutEffect:Qe.useEffect,_o=new WeakMap;function Vt(e,t){var r=Co(t||null,function(o){return e.forEach(function(a){return Je(a,o)})});return Qn(function(){var o=_o.get(r);if(o){var a=new Set(o),n=new Set(e),l=r.current;a.forEach(function(i){n.has(i)||Je(i,null)}),n.forEach(function(i){a.has(i)||Je(i,l)})}_o.set(r,e)},[e]),r}function ei(e){return e}function ti(e,t){t===void 0&&(t=ei);var r=[],o=!1,a={read:function(){if(o)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:e},useMedium:function(n){var l=t(n,o);return r.push(l),function(){r=r.filter(function(i){return i!==l})}},assignSyncMedium:function(n){for(o=!0;r.length;){var l=r;r=[],l.forEach(n)}r={push:function(i){return n(i)},filter:function(){return r}}},assignMedium:function(n){o=!0;var l=[];if(r.length){var i=r;r=[],i.forEach(n),l=r}var u=function(){var f=l;l=[],f.forEach(n)},s=function(){return Promise.resolve().then(u)};s(),r={push:function(f){l.push(f),s()},filter:function(f){return l=l.filter(f),r}}}};return a}function $t(e){e===void 0&&(e={});var t=ti(null);return t.options=Y({async:!0,ssr:!1},e),t}var ko=m(b()),Po=function(e){var t=e.sideCar,r=Ze(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var o=t.read();if(!o)throw new Error("Sidecar medium not found");return ko.createElement(o,Y({},r))};Po.isSideCarExport=!0;function Ut(e,t){return e.useMedium(t),Po}var et=$t();var Ht=function(){},Ie=H.forwardRef(function(e,t){var r=H.useRef(null),o=H.useState({onScrollCapture:Ht,onWheelCapture:Ht,onTouchMoveCapture:Ht}),a=o[0],n=o[1],l=e.forwardProps,i=e.children,u=e.className,s=e.removeScrollBar,f=e.enabled,c=e.shards,g=e.sideCar,w=e.noRelative,C=e.noIsolation,v=e.inert,p=e.allowPinchZoom,E=e.as,k=E===void 0?"div":E,T=e.gapMode,L=Ze(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),P=g,x=Vt([r,t]),R=Y(Y({},L),a);return H.createElement(H.Fragment,null,f&&H.createElement(P,{sideCar:et,removeScrollBar:s,shards:c,noRelative:w,noIsolation:C,inert:v,setCallbacks:n,allowPinchZoom:!!p,lockRef:r,gapMode:T}),l?H.cloneElement(H.Children.only(i),Y(Y({},R),{ref:x})):H.createElement(k,Y({},R,{className:u,ref:x}),i))});Ie.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Ie.classNames={fullWidth:ce,zeroRight:fe};var I=m(b());var xe=m(b());var No=m(b());var Oo;var Do=function(){if(Oo)return Oo;if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function ri(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=Do();return t&&e.setAttribute("nonce",t),e}function oi(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function ai(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var zt=function(){var e=0,t=null;return{add:function(r){e==0&&(t=ri())&&(oi(t,r),ai(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}};var Kt=function(){var e=zt();return function(t,r){No.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}};var Ae=function(){var e=Kt(),t=function(r){var o=r.styles,a=r.dynamic;return e(o,a),null};return t};var ni={left:0,top:0,right:0,gap:0},Gt=function(e){return parseInt(e||"",10)||0},ii=function(e){var t=window.getComputedStyle(document.body),r=t[e==="padding"?"paddingLeft":"marginLeft"],o=t[e==="padding"?"paddingTop":"marginTop"],a=t[e==="padding"?"paddingRight":"marginRight"];return[Gt(r),Gt(o),Gt(a)]},qt=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return ni;var t=ii(e),r=document.documentElement.clientWidth,o=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,o-r+t[2]-t[0])}};var li=Ae(),Se="data-scroll-locked",si=function(e,t,r,o){var a=e.left,n=e.top,l=e.right,i=e.gap;return r===void 0&&(r="margin"),` .`.concat(Wt,` { overflow: hidden `).concat(o,`; padding-right: `).concat(i,"px ").concat(o,`; } body[`).concat(Se,`] { overflow: hidden `).concat(o,`; overscroll-behavior: contain; `).concat([t&&"position: relative ".concat(o,";"),r==="margin"&&` padding-left: `.concat(a,`px; padding-top: `).concat(n,`px; padding-right: `).concat(l,`px; margin-left:0; margin-top:0; margin-right: `).concat(i,"px ").concat(o,`; `),r==="padding"&&"padding-right: ".concat(i,"px ").concat(o,";")].filter(Boolean).join(""),` } .`).concat(fe,` { right: `).concat(i,"px ").concat(o,`; } .`).concat(ce,` { margin-right: `).concat(i,"px ").concat(o,`; } .`).concat(fe," .").concat(fe,` { right: 0 `).concat(o,`; } .`).concat(ce," .").concat(ce,` { margin-right: 0 `).concat(o,`; } body[`).concat(Se,`] { `).concat(Bt,": ").concat(i,`px; } `)},Io=function(){var e=parseInt(document.body.getAttribute(Se)||"0",10);return isFinite(e)?e:0},ui=function(){xe.useEffect(function(){return document.body.setAttribute(Se,(Io()+1).toString()),function(){var e=Io()-1;e<=0?document.body.removeAttribute(Se):document.body.setAttribute(Se,e.toString())}},[])},Yt=function(e){var t=e.noRelative,r=e.noImportant,o=e.gapMode,a=o===void 0?"margin":o;ui();var n=xe.useMemo(function(){return qt(a)},[a]);return xe.createElement(li,{styles:si(n,!t,a,r?"":"!important")})};var Xt=!1;if(typeof window<"u")try{Te=Object.defineProperty({},"passive",{get:function(){return Xt=!0,!0}}),window.addEventListener("test",Te,Te),window.removeEventListener("test",Te,Te)}catch{Xt=!1}var Te,de=Xt?{passive:!1}:!1;var fi=function(e){return e.tagName==="TEXTAREA"},Ao=function(e,t){if(!(e instanceof Element))return!1;var r=window.getComputedStyle(e);return r[t]!=="hidden"&&!(r.overflowY===r.overflowX&&!fi(e)&&r[t]==="visible")},ci=function(e){return Ao(e,"overflowY")},di=function(e){return Ao(e,"overflowX")},Zt=function(e,t){var r=t.ownerDocument,o=t;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var a=To(e,o);if(a){var n=Lo(e,o),l=n[1],i=n[2];if(l>i)return!0}o=o.parentNode}while(o&&o!==r.body);return!1},mi=function(e){var t=e.scrollTop,r=e.scrollHeight,o=e.clientHeight;return[t,r,o]},pi=function(e){var t=e.scrollLeft,r=e.scrollWidth,o=e.clientWidth;return[t,r,o]},To=function(e,t){return e==="v"?ci(t):di(t)},Lo=function(e,t){return e==="v"?mi(t):pi(t)},vi=function(e,t){return e==="h"&&t==="rtl"?-1:1},Mo=function(e,t,r,o,a){var n=vi(e,window.getComputedStyle(t).direction),l=n*o,i=r.target,u=t.contains(i),s=!1,f=l>0,c=0,g=0;do{if(!i)break;var w=Lo(e,i),C=w[0],v=w[1],p=w[2],E=v-p-n*C;(C||E)&&To(e,i)&&(c+=E,g+=C);var k=i.parentNode;i=k&&k.nodeType===Node.DOCUMENT_FRAGMENT_NODE?k.host:k}while(!u&&i!==document.body||u&&(t.contains(i)||t===i));return(f&&(a&&Math.abs(c)<1||!a&&l>c)||!f&&(a&&Math.abs(g)<1||!a&&-l>g))&&(s=!0),s};var tt=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Fo=function(e){return[e.deltaX,e.deltaY]},jo=function(e){return e&&"current"in e?e.current:e},hi=function(e,t){return e[0]===t[0]&&e[1]===t[1]},gi=function(e){return` .block-interactivity-`.concat(e,` {pointer-events: none;} .allow-interactivity-`).concat(e,` {pointer-events: all;} `)},wi=0,Ce=[];function Wo(e){var t=I.useRef([]),r=I.useRef([0,0]),o=I.useRef(),a=I.useState(wi++)[0],n=I.useState(Ae)[0],l=I.useRef(e);I.useEffect(function(){l.current=e},[e]),I.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var v=So([e.lockRef.current],(e.shards||[]).map(jo),!0).filter(Boolean);return v.forEach(function(p){return p.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),v.forEach(function(p){return p.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var i=I.useCallback(function(v,p){if("touches"in v&&v.touches.length===2||v.type==="wheel"&&v.ctrlKey)return!l.current.allowPinchZoom;var E=tt(v),k=r.current,T="deltaX"in v?v.deltaX:k[0]-E[0],L="deltaY"in v?v.deltaY:k[1]-E[1],P,x=v.target,R=Math.abs(T)>Math.abs(L)?"h":"v";if("touches"in v&&R==="h"&&x.type==="range")return!1;var z=Zt(R,x);if(!z)return!0;if(z?P=R:(P=R==="v"?"h":"v",z=Zt(R,x)),!z)return!1;if(!o.current&&"changedTouches"in v&&(T||L)&&(o.current=P),!P)return!0;var ne=o.current||P;return Mo(ne,p,v,ne==="h"?T:L,!0)},[]),u=I.useCallback(function(v){var p=v;if(!(!Ce.length||Ce[Ce.length-1]!==n)){var E="deltaY"in p?Fo(p):tt(p),k=t.current.filter(function(P){return P.name===p.type&&(P.target===p.target||p.target===P.shadowParent)&&hi(P.delta,E)})[0];if(k&&k.should){p.cancelable&&p.preventDefault();return}if(!k){var T=(l.current.shards||[]).map(jo).filter(Boolean).filter(function(P){return P.contains(p.target)}),L=T.length>0?i(p,T[0]):!l.current.noIsolation;L&&p.cancelable&&p.preventDefault()}}},[]),s=I.useCallback(function(v,p,E,k){var T={name:v,delta:p,target:E,should:k,shadowParent:yi(E)};t.current.push(T),setTimeout(function(){t.current=t.current.filter(function(L){return L!==T})},1)},[]),f=I.useCallback(function(v){r.current=tt(v),o.current=void 0},[]),c=I.useCallback(function(v){s(v.type,Fo(v),v.target,i(v,e.lockRef.current))},[]),g=I.useCallback(function(v){s(v.type,tt(v),v.target,i(v,e.lockRef.current))},[]);I.useEffect(function(){return Ce.push(n),e.setCallbacks({onScrollCapture:c,onWheelCapture:c,onTouchMoveCapture:g}),document.addEventListener("wheel",u,de),document.addEventListener("touchmove",u,de),document.addEventListener("touchstart",f,de),function(){Ce=Ce.filter(function(v){return v!==n}),document.removeEventListener("wheel",u,de),document.removeEventListener("touchmove",u,de),document.removeEventListener("touchstart",f,de)}},[]);var w=e.removeScrollBar,C=e.inert;return I.createElement(I.Fragment,null,C?I.createElement(n,{styles:gi(a)}):null,w?I.createElement(Yt,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function yi(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var Bo=Ut(et,Wo);var Vo=rt.forwardRef(function(e,t){return rt.createElement(Ie,Y({},e,{ref:t,sideCar:Bo}))});Vo.classNames=Ie.classNames;var Jt=Vo;var Ri=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},_e=new WeakMap,ot=new WeakMap,at={},Qt=0,$o=function(e){return e&&(e.host||$o(e.parentNode))},bi=function(e,t){return t.map(function(r){if(e.contains(r))return r;var o=$o(r);return o&&e.contains(o)?o:(console.error("aria-hidden",r,"in not contained inside",e,". Doing nothing"),null)}).filter(function(r){return!!r})},Ei=function(e,t,r,o){var a=bi(t,Array.isArray(e)?e:[e]);at[r]||(at[r]=new WeakMap);var n=at[r],l=[],i=new Set,u=new Set(a),s=function(c){!c||i.has(c)||(i.add(c),s(c.parentNode))};a.forEach(s);var f=function(c){!c||u.has(c)||Array.prototype.forEach.call(c.children,function(g){if(i.has(g))f(g);else try{var w=g.getAttribute(o),C=w!==null&&w!=="false",v=(_e.get(g)||0)+1,p=(n.get(g)||0)+1;_e.set(g,v),n.set(g,p),l.push(g),v===1&&C&&ot.set(g,!0),p===1&&g.setAttribute(r,"true"),C||g.setAttribute(o,"true")}catch(E){console.error("aria-hidden: cannot operate on ",g,E)}})};return f(t),i.clear(),Qt++,function(){l.forEach(function(c){var g=_e.get(c)-1,w=n.get(c)-1;_e.set(c,g),n.set(c,w),g||(ot.has(c)||c.removeAttribute(o),ot.delete(c)),w||c.removeAttribute(r)}),Qt--,Qt||(_e=new WeakMap,_e=new WeakMap,ot=new WeakMap,at={})}},Uo=function(e,t,r){r===void 0&&(r="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),a=t||Ri(e);return a?(o.push.apply(o,Array.from(a.querySelectorAll("[aria-live], script"))),Ei(o,a,r,"aria-hidden")):function(){return null}};var O=m(U(),1),it="Dialog",[Ho,Uu]=_r(it),[Si,ee]=Ho(it),zo=e=>{let{__scopeDialog:t,children:r,open:o,defaultOpen:a,onOpenChange:n,modal:l=!0}=e,i=N.useRef(null),u=N.useRef(null),[s,f]=Pr({prop:o,defaultProp:a??!1,onChange:n,caller:it});return(0,O.jsx)(Si,{scope:t,triggerRef:i,contentRef:u,contentId:Ve(),titleId:Ve(),descriptionId:Ve(),open:s,onOpenChange:f,onOpenToggle:N.useCallback(()=>f(c=>!c),[f]),modal:l,children:r})};zo.displayName=it;var Ko="DialogTrigger",xi=N.forwardRef((e,t)=>{let{__scopeDialog:r,...o}=e,a=ee(Ko,r),n=We(t,a.triggerRef);return(0,O.jsx)(Ee.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":rr(a.open),...o,ref:n,onClick:ye(e.onClick,a.onOpenToggle)})});xi.displayName=Ko;var er="DialogPortal",[Ci,Go]=Ho(er,{forceMount:void 0}),qo=e=>{let{__scopeDialog:t,forceMount:r,children:o,container:a}=e,n=ee(er,t);return(0,O.jsx)(Ci,{scope:t,forceMount:r,children:N.Children.map(o,l=>(0,O.jsx)(Ne,{present:r||n.open,children:(0,O.jsx)(Mt,{asChild:!0,container:a,children:l})}))})};qo.displayName=er;var nt="DialogOverlay",Yo=N.forwardRef((e,t)=>{let r=Go(nt,e.__scopeDialog),{forceMount:o=r.forceMount,...a}=e,n=ee(nt,e.__scopeDialog);return n.modal?(0,O.jsx)(Ne,{present:o||n.open,children:(0,O.jsx)(ki,{...a,ref:t})}):null});Yo.displayName=nt;var _i=Xe("DialogOverlay.RemoveScroll"),ki=N.forwardRef((e,t)=>{let{__scopeDialog:r,...o}=e,a=ee(nt,r);return(0,O.jsx)(Jt,{as:_i,allowPinchZoom:!0,shards:[a.contentRef],children:(0,O.jsx)(Ee.div,{"data-state":rr(a.open),...o,ref:t,style:{pointerEvents:"auto",...o.style}})})}),me="DialogContent",Xo=N.forwardRef((e,t)=>{let r=Go(me,e.__scopeDialog),{forceMount:o=r.forceMount,...a}=e,n=ee(me,e.__scopeDialog);return(0,O.jsx)(Ne,{present:o||n.open,children:n.modal?(0,O.jsx)(Pi,{...a,ref:t}):(0,O.jsx)(Oi,{...a,ref:t})})});Xo.displayName=me;var Pi=N.forwardRef((e,t)=>{let r=ee(me,e.__scopeDialog),o=N.useRef(null),a=We(t,r.contentRef,o);return N.useEffect(()=>{let n=o.current;if(n)return Uo(n)},[]),(0,O.jsx)(Zo,{...e,ref:a,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:ye(e.onCloseAutoFocus,n=>{n.preventDefault(),r.triggerRef.current?.focus()}),onPointerDownOutside:ye(e.onPointerDownOutside,n=>{let l=n.detail.originalEvent,i=l.button===0&&l.ctrlKey===!0;(l.button===2||i)&&n.preventDefault()}),onFocusOutside:ye(e.onFocusOutside,n=>n.preventDefault())})}),Oi=N.forwardRef((e,t)=>{let r=ee(me,e.__scopeDialog),o=N.useRef(!1),a=N.useRef(!1);return(0,O.jsx)(Zo,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:n=>{e.onCloseAutoFocus?.(n),n.defaultPrevented||(o.current||r.triggerRef.current?.focus(),n.preventDefault()),o.current=!1,a.current=!1},onInteractOutside:n=>{e.onInteractOutside?.(n),n.defaultPrevented||(o.current=!0,n.detail.originalEvent.type==="pointerdown"&&(a.current=!0));let l=n.target;r.triggerRef.current?.contains(l)&&n.preventDefault(),n.detail.originalEvent.type==="focusin"&&a.current&&n.preventDefault()}})}),Zo=N.forwardRef((e,t)=>{let{__scopeDialog:r,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:n,...l}=e,i=ee(me,r),u=N.useRef(null),s=We(t,u);return Eo(),(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(Lt,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:a,onUnmountAutoFocus:n,children:(0,O.jsx)(Dt,{role:"dialog",id:i.contentId,"aria-describedby":i.descriptionId,"aria-labelledby":i.titleId,"data-state":rr(i.open),...l,ref:s,onDismiss:()=>i.onOpenChange(!1)})}),(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(Ai,{titleId:i.titleId}),(0,O.jsx)(Li,{contentRef:u,descriptionId:i.descriptionId})]})]})}),tr="DialogTitle",Di=N.forwardRef((e,t)=>{let{__scopeDialog:r,...o}=e,a=ee(tr,r);return(0,O.jsx)(Ee.h2,{id:a.titleId,...o,ref:t})});Di.displayName=tr;var Jo="DialogDescription",Ni=N.forwardRef((e,t)=>{let{__scopeDialog:r,...o}=e,a=ee(Jo,r);return(0,O.jsx)(Ee.p,{id:a.descriptionId,...o,ref:t})});Ni.displayName=Jo;var Qo="DialogClose",Ii=N.forwardRef((e,t)=>{let{__scopeDialog:r,...o}=e,a=ee(Qo,r);return(0,O.jsx)(Ee.button,{type:"button",...o,ref:t,onClick:ye(e.onClick,()=>a.onOpenChange(!1))})});Ii.displayName=Qo;function rr(e){return e?"open":"closed"}var ea="DialogTitleWarning",[Hu,ta]=Cr(ea,{contentName:me,titleName:tr,docsSlug:"dialog"}),Ai=({titleId:e})=>{let t=ta(ea),r=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return N.useEffect(()=>{e&&(document.getElementById(e)||console.error(r))},[r,e]),null},Ti="DialogDescriptionWarning",Li=({contentRef:e,descriptionId:t})=>{let o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${ta(Ti).contentName}}.`;return N.useEffect(()=>{let a=e.current?.getAttribute("aria-describedby");t&&a&&(document.getElementById(t)||console.warn(o))},[o,e,t]),null},ra=zo;var oa=qo,aa=Yo,na=Xo;var h=m(b(),1);var ua=m(b(),1),zi=m(ue(),1);var j=m(b(),1);var Fi=m(b(),1);function ia(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function le(...e){return t=>{let r=!1,o=e.map(a=>{let n=ia(a,t);return!r&&typeof n=="function"&&(r=!0),n});if(r)return()=>{for(let a=0;a<o.length;a++){let n=o[a];typeof n=="function"?n():ia(e[a],null)}}}}var lt=m(U(),1),ji=Symbol.for("react.lazy"),st=j[" use ".trim().toString()];function Wi(e){return typeof e=="object"&&e!==null&&"then"in e}function la(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===ji&&"_payload"in e&&Wi(e._payload)}function sa(e){let t=Bi(e),r=j.forwardRef((o,a)=>{let{children:n,...l}=o;la(n)&&typeof st=="function"&&(n=st(n._payload));let i=j.Children.toArray(n),u=i.find($i);if(u){let s=u.props.children,f=i.map(c=>c===u?j.Children.count(s)>1?j.Children.only(null):j.isValidElement(s)?s.props.children:null:c);return(0,lt.jsx)(t,{...l,ref:a,children:j.isValidElement(s)?j.cloneElement(s,void 0,f):null})}return(0,lt.jsx)(t,{...l,ref:a,children:n})});return r.displayName=`${e}.Slot`,r}function Bi(e){let t=j.forwardRef((r,o)=>{let{children:a,...n}=r;if(la(a)&&typeof st=="function"&&(a=st(a._payload)),j.isValidElement(a)){let l=Hi(a),i=Ui(n,a.props);return a.type!==j.Fragment&&(i.ref=o?le(o,l):l),j.cloneElement(a,i)}return j.Children.count(a)>1?j.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Vi=Symbol("radix.slottable");function $i(e){return j.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Vi}function Ui(e,t){let r={...t};for(let o in t){let a=e[o],n=t[o];/^on[A-Z]/.test(o)?a&&n?r[o]=(...i)=>{let u=n(...i);return a(...i),u}:a&&(r[o]=a):o==="style"?r[o]={...a,...n}:o==="className"&&(r[o]=[a,n].filter(Boolean).join(" "))}return{...e,...r}}function Hi(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var fa=m(U(),1),Ki=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ae=Ki.reduce((e,t)=>{let r=sa(`Primitive.${t}`),o=ua.forwardRef((a,n)=>{let{asChild:l,...i}=a,u=l?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),(0,fa.jsx)(u,{...i,ref:n})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});var or=m(b(),1);var ca=m(b(),1),da=globalThis?.document?ca.useLayoutEffect:()=>{};var Gi=or[" useId ".trim().toString()]||(()=>{}),qi=0;function pe(e){let[t,r]=or.useState(Gi());return da(()=>{e||r(o=>o??String(qi++))},[e]),e||(t?`radix-${t}`:"")}var Le='[cmdk-group=""]',ar='[cmdk-group-items=""]',Yi='[cmdk-group-heading=""]',pa='[cmdk-item=""]',ma=`${pa}:not([aria-disabled="true"])`,nr="cmdk-item-select",ke="data-value",Xi=(e,t,r)=>Rr(e,t,r),va=h.createContext(void 0),Me=()=>h.useContext(va),ha=h.createContext(void 0),ir=()=>h.useContext(ha),ga=h.createContext(void 0),wa=h.forwardRef((e,t)=>{let r=Pe(()=>{var d,S;return{search:"",value:(S=(d=e.value)!=null?d:e.defaultValue)!=null?S:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),o=Pe(()=>new Set),a=Pe(()=>new Map),n=Pe(()=>new Map),l=Pe(()=>new Set),i=ya(e),{label:u,children:s,value:f,onValueChange:c,filter:g,shouldFilter:w,loop:C,disablePointerSelection:v=!1,vimBindings:p=!0,...E}=e,k=pe(),T=pe(),L=pe(),P=h.useRef(null),x=ll();ve(()=>{if(f!==void 0){let d=f.trim();r.current.value=d,R.emit()}},[f]),ve(()=>{x(6,fr)},[]);let R=h.useMemo(()=>({subscribe:d=>(l.current.add(d),()=>l.current.delete(d)),snapshot:()=>r.current,setState:(d,S,_)=>{var y,D,M,X;if(!Object.is(r.current[d],S)){if(r.current[d]=S,d==="search")ht(),se(),x(1,vt);else if(d==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let K=document.getElementById(L);K?K.focus():(y=document.getElementById(k))==null||y.focus()}if(x(7,()=>{var K;r.current.selectedItemId=(K=we())==null?void 0:K.id,R.emit()}),_||x(5,fr),((D=i.current)==null?void 0:D.value)!==void 0){let K=S??"";(X=(M=i.current).onValueChange)==null||X.call(M,K);return}}R.emit()}},emit:()=>{l.current.forEach(d=>d())}}),[]),z=h.useMemo(()=>({value:(d,S,_)=>{var y;S!==((y=n.current.get(d))==null?void 0:y.value)&&(n.current.set(d,{value:S,keywords:_}),r.current.filtered.items.set(d,ne(S,_)),x(2,()=>{se(),R.emit()}))},item:(d,S)=>(o.current.add(d),S&&(a.current.has(S)?a.current.get(S).add(d):a.current.set(S,new Set([d]))),x(3,()=>{ht(),se(),r.current.value||vt(),R.emit()}),()=>{n.current.delete(d),o.current.delete(d),r.current.filtered.items.delete(d);let _=we();x(4,()=>{ht(),_?.getAttribute("id")===d&&vt(),R.emit()})}),group:d=>(a.current.has(d)||a.current.set(d,new Set),()=>{n.current.delete(d),a.current.delete(d)}),filter:()=>i.current.shouldFilter,label:u||e["aria-label"],getDisablePointerSelection:()=>i.current.disablePointerSelection,listId:k,inputId:L,labelId:T,listInnerRef:P}),[]);function ne(d,S){var _,y;let D=(y=(_=i.current)==null?void 0:_.filter)!=null?y:Xi;return d?D(d,r.current.search,S):0}function se(){if(!r.current.search||i.current.shouldFilter===!1)return;let d=r.current.filtered.items,S=[];r.current.filtered.groups.forEach(y=>{let D=a.current.get(y),M=0;D.forEach(X=>{let K=d.get(X);M=Math.max(K,M)}),S.push([y,M])});let _=P.current;Oe().sort((y,D)=>{var M,X;let K=y.getAttribute("id"),Fe=D.getAttribute("id");return((M=d.get(Fe))!=null?M:0)-((X=d.get(K))!=null?X:0)}).forEach(y=>{let D=y.closest(ar);D?D.appendChild(y.parentElement===D?y:y.closest(`${ar} > *`)):_.appendChild(y.parentElement===_?y:y.closest(`${ar} > *`))}),S.sort((y,D)=>D[1]-y[1]).forEach(y=>{var D;let M=(D=P.current)==null?void 0:D.querySelector(`${Le}[${ke}="${encodeURIComponent(y[0])}"]`);M?.parentElement.appendChild(M)})}function vt(){let d=Oe().find(_=>_.getAttribute("aria-disabled")!=="true"),S=d?.getAttribute(ke);R.setState("value",S||void 0)}function ht(){var d,S,_,y;if(!r.current.search||i.current.shouldFilter===!1){r.current.filtered.count=o.current.size;return}r.current.filtered.groups=new Set;let D=0;for(let M of o.current){let X=(S=(d=n.current.get(M))==null?void 0:d.value)!=null?S:"",K=(y=(_=n.current.get(M))==null?void 0:_.keywords)!=null?y:[],Fe=ne(X,K);r.current.filtered.items.set(M,Fe),Fe>0&&D++}for(let[M,X]of a.current)for(let K of X)if(r.current.filtered.items.get(K)>0){r.current.filtered.groups.add(M);break}r.current.filtered.count=D}function fr(){var d,S,_;let y=we();y&&(((d=y.parentElement)==null?void 0:d.firstChild)===y&&((_=(S=y.closest(Le))==null?void 0:S.querySelector(Yi))==null||_.scrollIntoView({block:"nearest"})),y.scrollIntoView({block:"nearest"}))}function we(){var d;return(d=P.current)==null?void 0:d.querySelector(`${pa}[aria-selected="true"]`)}function Oe(){var d;return Array.from(((d=P.current)==null?void 0:d.querySelectorAll(ma))||[])}function gt(d){let S=Oe()[d];S&&R.setState("value",S.getAttribute(ke))}function wt(d){var S;let _=we(),y=Oe(),D=y.findIndex(X=>X===_),M=y[D+d];(S=i.current)!=null&&S.loop&&(M=D+d<0?y[y.length-1]:D+d===y.length?y[0]:y[D+d]),M&&R.setState("value",M.getAttribute(ke))}function cr(d){let S=we(),_=S?.closest(Le),y;for(;_&&!y;)_=d>0?nl(_,Le):il(_,Le),y=_?.querySelector(ma);y?R.setState("value",y.getAttribute(ke)):wt(d)}let dr=()=>gt(Oe().length-1),mr=d=>{d.preventDefault(),d.metaKey?dr():d.altKey?cr(1):wt(1)},pr=d=>{d.preventDefault(),d.metaKey?gt(0):d.altKey?cr(-1):wt(-1)};return h.createElement(ae.div,{ref:t,tabIndex:-1,...E,"cmdk-root":"",onKeyDown:d=>{var S;(S=E.onKeyDown)==null||S.call(E,d);let _=d.nativeEvent.isComposing||d.keyCode===229;if(!(d.defaultPrevented||_))switch(d.key){case"n":case"j":{p&&d.ctrlKey&&mr(d);break}case"ArrowDown":{mr(d);break}case"p":case"k":{p&&d.ctrlKey&&pr(d);break}case"ArrowUp":{pr(d);break}case"Home":{d.preventDefault(),gt(0);break}case"End":{d.preventDefault(),dr();break}case"Enter":{d.preventDefault();let y=we();if(y){let D=new Event(nr);y.dispatchEvent(D)}}}}},h.createElement("label",{"cmdk-label":"",htmlFor:z.inputId,id:z.labelId,style:ul},u),ut(e,d=>h.createElement(ha.Provider,{value:R},h.createElement(va.Provider,{value:z},d))))}),Zi=h.forwardRef((e,t)=>{var r,o;let a=pe(),n=h.useRef(null),l=h.useContext(ga),i=Me(),u=ya(e),s=(o=(r=u.current)==null?void 0:r.forceMount)!=null?o:l?.forceMount;ve(()=>{if(!s)return i.item(a,l?.id)},[s]);let f=Ra(a,n,[e.value,e.children,n],e.keywords),c=ir(),g=re(x=>x.value&&x.value===f.current),w=re(x=>s||i.filter()===!1?!0:x.search?x.filtered.items.get(a)>0:!0);h.useEffect(()=>{let x=n.current;if(!(!x||e.disabled))return x.addEventListener(nr,C),()=>x.removeEventListener(nr,C)},[w,e.onSelect,e.disabled]);function C(){var x,R;v(),(R=(x=u.current).onSelect)==null||R.call(x,f.current)}function v(){c.setState("value",f.current,!0)}if(!w)return null;let{disabled:p,value:E,onSelect:k,forceMount:T,keywords:L,...P}=e;return h.createElement(ae.div,{ref:le(n,t),...P,id:a,"cmdk-item":"",role:"option","aria-disabled":!!p,"aria-selected":!!g,"data-disabled":!!p,"data-selected":!!g,onPointerMove:p||i.getDisablePointerSelection()?void 0:v,onClick:p?void 0:C},e.children)}),Ji=h.forwardRef((e,t)=>{let{heading:r,children:o,forceMount:a,...n}=e,l=pe(),i=h.useRef(null),u=h.useRef(null),s=pe(),f=Me(),c=re(w=>a||f.filter()===!1?!0:w.search?w.filtered.groups.has(l):!0);ve(()=>f.group(l),[]),Ra(l,i,[e.value,e.heading,u]);let g=h.useMemo(()=>({id:l,forceMount:a}),[a]);return h.createElement(ae.div,{ref:le(i,t),...n,"cmdk-group":"",role:"presentation",hidden:c?void 0:!0},r&&h.createElement("div",{ref:u,"cmdk-group-heading":"","aria-hidden":!0,id:s},r),ut(e,w=>h.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?s:void 0},h.createElement(ga.Provider,{value:g},w))))}),Qi=h.forwardRef((e,t)=>{let{alwaysRender:r,...o}=e,a=h.useRef(null),n=re(l=>!l.search);return!r&&!n?null:h.createElement(ae.div,{ref:le(a,t),...o,"cmdk-separator":"",role:"separator"})}),el=h.forwardRef((e,t)=>{let{onValueChange:r,...o}=e,a=e.value!=null,n=ir(),l=re(s=>s.search),i=re(s=>s.selectedItemId),u=Me();return h.useEffect(()=>{e.value!=null&&n.setState("search",e.value)},[e.value]),h.createElement(ae.input,{ref:t,...o,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":u.listId,"aria-labelledby":u.labelId,"aria-activedescendant":i,id:u.inputId,type:"text",value:a?e.value:l,onChange:s=>{a||n.setState("search",s.target.value),r?.(s.target.value)}})}),tl=h.forwardRef((e,t)=>{let{children:r,label:o="Suggestions",...a}=e,n=h.useRef(null),l=h.useRef(null),i=re(s=>s.selectedItemId),u=Me();return h.useEffect(()=>{if(l.current&&n.current){let s=l.current,f=n.current,c,g=new ResizeObserver(()=>{c=requestAnimationFrame(()=>{let w=s.offsetHeight;f.style.setProperty("--cmdk-list-height",w.toFixed(1)+"px")})});return g.observe(s),()=>{cancelAnimationFrame(c),g.unobserve(s)}}},[]),h.createElement(ae.div,{ref:le(n,t),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":i,"aria-label":o,id:u.listId},ut(e,s=>h.createElement("div",{ref:le(l,u.listInnerRef),"cmdk-list-sizer":""},s)))}),rl=h.forwardRef((e,t)=>{let{open:r,onOpenChange:o,overlayClassName:a,contentClassName:n,container:l,...i}=e;return h.createElement(ra,{open:r,onOpenChange:o},h.createElement(oa,{container:l},h.createElement(aa,{"cmdk-overlay":"",className:a}),h.createElement(na,{"aria-label":e.label,"cmdk-dialog":"",className:n},h.createElement(wa,{ref:t,...i}))))}),ol=h.forwardRef((e,t)=>re(r=>r.filtered.count===0)?h.createElement(ae.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),al=h.forwardRef((e,t)=>{let{progress:r,children:o,label:a="Loading...",...n}=e;return h.createElement(ae.div,{ref:t,...n,"cmdk-loading":"",role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},ut(e,l=>h.createElement("div",{"aria-hidden":!0},l)))}),he=Object.assign(wa,{List:tl,Item:Zi,Input:el,Group:Ji,Separator:Qi,Dialog:rl,Empty:ol,Loading:al});function nl(e,t){let r=e.nextElementSibling;for(;r;){if(r.matches(t))return r;r=r.nextElementSibling}}function il(e,t){let r=e.previousElementSibling;for(;r;){if(r.matches(t))return r;r=r.previousElementSibling}}function ya(e){let t=h.useRef(e);return ve(()=>{t.current=e}),t}var ve=typeof window>"u"?h.useEffect:h.useLayoutEffect;function Pe(e){let t=h.useRef();return t.current===void 0&&(t.current=e()),t}function re(e){let t=ir(),r=()=>e(t.snapshot());return h.useSyncExternalStore(t.subscribe,r,r)}function Ra(e,t,r,o=[]){let a=h.useRef(),n=Me();return ve(()=>{var l;let i=(()=>{var s;for(let f of r){if(typeof f=="string")return f.trim();if(typeof f=="object"&&"current"in f)return f.current?(s=f.current.textContent)==null?void 0:s.trim():a.current}})(),u=o.map(s=>s.trim());n.value(e,i,u),(l=t.current)==null||l.setAttribute(ke,i),a.current=i}),a}var ll=()=>{let[e,t]=h.useState(),r=Pe(()=>new Map);return ve(()=>{r.current.forEach(o=>o()),r.current=new Map},[e]),(o,a)=>{r.current.set(o,a),t({})}};function sl(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function ut({asChild:e,children:t},r){return e&&h.isValidElement(t)?h.cloneElement(sl(t),{ref:t.ref},r(t.props.children)):r(t)}var ul={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};var dt=m(Ea(),1),G=m(je(),1),ge=m(xa(),1),oe=m(_a(),1),mt=m(Pa(),1);var ft=m(je(),1),lr=(0,ft.forwardRef)(({icon:e,size:t=24,...r},o)=>(0,ft.cloneElement)(e,{width:t,height:t,...r,ref:o}));var ct=m(Da(),1),sr=m(U(),1),ur=(0,sr.jsx)(ct.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,sr.jsx)(ct.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"})});import{executeAbility as fl,store as cl}from"@wordpress/abilities";var Aa=m(Ia(),1),{lock:wf,unlock:Ta}=(0,Aa.__dangerousOptInToUnstableAPIsOnlyForCoreModules)("I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.","@wordpress/workflows");var A=m(U(),1);if(typeof document<"u"&&!document.head.querySelector("style[data-wp-hash='cbad731ae6']")){let e=document.createElement("style");e.setAttribute("data-wp-hash","cbad731ae6"),e.appendChild(document.createTextNode(":root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.workflows-workflow-menu{border-radius:4px;margin:auto;max-width:400px;position:relative;top:calc(5% + 64px);width:calc(100% - 32px)}@media (min-width:600px){.workflows-workflow-menu{top:calc(10% + 64px)}}.workflows-workflow-menu .components-modal__content{margin:0;padding:0}.workflows-workflow-menu__overlay{align-items:start;display:block}.workflows-workflow-menu__header{padding:0 16px}.workflows-workflow-menu__header-search-icon:dir(ltr){transform:scaleX(-1)}.workflows-workflow-menu__container{will-change:transform}.workflows-workflow-menu__container:focus{outline:none}.workflows-workflow-menu__container [cmdk-input]{border:none;border-radius:0;color:#1e1e1e;font-size:15px;line-height:28px;margin:0;outline:none;padding:16px 4px;width:100%}.workflows-workflow-menu__container [cmdk-input]::placeholder{color:#757575}.workflows-workflow-menu__container [cmdk-input]:focus{box-shadow:none;outline:none}.workflows-workflow-menu__container [cmdk-item]{align-items:center;border-radius:2px;color:#1e1e1e;cursor:pointer;display:flex;font-size:13px}.workflows-workflow-menu__container [cmdk-item]:active,.workflows-workflow-menu__container [cmdk-item][aria-selected=true]{background:var(--wp-admin-theme-color);color:#fff}.workflows-workflow-menu__container [cmdk-item][aria-disabled=true]{color:#949494;cursor:not-allowed}.workflows-workflow-menu__container [cmdk-item]>div{min-height:40px;padding:4px 4px 4px 16px}.workflows-workflow-menu__container [cmdk-root]>[cmdk-list]{max-height:368px;overflow:auto}.workflows-workflow-menu__container [cmdk-root]>[cmdk-list] [cmdk-list-sizer]>[cmdk-group]:last-child [cmdk-group-items]:not(:empty){padding-bottom:8px}.workflows-workflow-menu__container [cmdk-root]>[cmdk-list] [cmdk-list-sizer]>[cmdk-group]>[cmdk-group-items]:not(:empty){padding:0 8px}.workflows-workflow-menu__container [cmdk-empty]{align-items:center;color:#1e1e1e;display:flex;justify-content:center;padding:8px 0 32px;white-space:pre-wrap}.workflows-workflow-menu__container [cmdk-loading]{padding:16px}.workflows-workflow-menu__container [cmdk-list-sizer]{position:relative}.workflows-workflow-menu__item span{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workflows-workflow-menu__item mark{background:unset;color:inherit;font-weight:600}.workflows-workflow-menu__output{padding:16px}.workflows-workflow-menu__output-header{border-bottom:1px solid #ddd;margin-bottom:16px;padding-bottom:8px}.workflows-workflow-menu__output-header h3{color:#1e1e1e;font-size:16px;font-weight:600;margin:0 0 4px}.workflows-workflow-menu__output-hint{color:#757575;font-size:12px;margin:0}.workflows-workflow-menu__output-content{max-height:400px;overflow:auto}.workflows-workflow-menu__output-content pre{background:#f0f0f0;border-radius:2px;color:#1e1e1e;font-size:12px;line-height:1.5;margin:0;padding:12px;white-space:pre-wrap;word-break:break-word}.workflows-workflow-menu__output-error{background:#e0e0e0;border:1px solid #9e1313;border-radius:2px;color:#cc1818;padding:12px}.workflows-workflow-menu__output-error p{font-size:13px;margin:0}.workflows-workflow-menu__executing{color:#757575;font-size:14px;padding:24px 16px}")),document.head.appendChild(e)}var{withIgnoreIMEEvents:La}=Ta(oe.privateApis),dl=[],Ma=(0,ge.__)("Run abilities and workflows");function ml({isOpen:e,search:t,setSearch:r,abilities:o}){let a=(0,G.useRef)(),n=re(i=>i.value),l=(0,G.useMemo)(()=>o.find(u=>u.label===n)?.name,[n,o]);return(0,G.useEffect)(()=>{e&&a.current.focus()},[e]),(0,A.jsx)(he.Input,{ref:a,value:t,onValueChange:r,placeholder:Ma,"aria-activedescendant":l})}function Fa(){let{registerShortcut:e}=(0,dt.useDispatch)(mt.store),[t,r]=(0,G.useState)(""),[o,a]=(0,G.useState)(!1),[n,l]=(0,G.useState)(null),[i,u]=(0,G.useState)(!1),s=(0,G.useRef)(),f=(0,dt.useSelect)(p=>p(cl).getAbilities()||dl,[]),c=(0,G.useMemo)(()=>{if(!t)return f;let p=t.toLowerCase();return f.filter(E=>E.label?.toLowerCase().includes(p)||E.name?.toLowerCase().includes(p))},[f,t]);(0,G.useEffect)(()=>{n&&s.current&&s.current.focus()},[n]),(0,G.useEffect)(()=>{e({name:"core/workflows",category:"global",description:(0,ge.__)("Open the workflow palette."),keyCombination:{modifier:"primary",character:"j"}})},[e]),(0,mt.useShortcut)("core/workflows",La(p=>{p.defaultPrevented||(p.preventDefault(),a(!o))}),{bindGlobal:!0});let g=()=>{r(""),a(!1),l(null),u(!1)},w=()=>{l(null),u(!1),r("")},C=async p=>{u(!0);try{let E=await fl(p.name);l({name:p.name,label:p?.label||p.name,description:p?.description||"",success:!0,data:E})}catch(E){l({name:p.name,label:p?.label||p.name,description:p?.description||"",success:!1,error:E.message||String(E)})}finally{u(!1)}},v=p=>{n&&(p.key==="Escape"||p.key==="Backspace"||p.key==="Delete")&&(p.preventDefault(),p.stopPropagation(),w())};return o?(0,A.jsx)(oe.Modal,{className:"workflows-workflow-menu",overlayClassName:"workflows-workflow-menu__overlay",onRequestClose:n?w:g,__experimentalHideHeader:!0,contentLabel:(0,ge.__)("Workflow palette"),children:(0,A.jsx)("div",{className:"workflows-workflow-menu__container",onKeyDown:La(v),ref:s,tabIndex:-1,role:"presentation",children:n?(0,A.jsxs)("div",{className:"workflows-workflow-menu__output",children:[(0,A.jsxs)("div",{className:"workflows-workflow-menu__output-header",children:[(0,A.jsx)("h3",{children:n.label}),n.description&&(0,A.jsx)("p",{className:"workflows-workflow-menu__output-hint",children:n.description})]}),(0,A.jsx)("div",{className:"workflows-workflow-menu__output-content",children:n.success?(0,A.jsx)("pre",{children:JSON.stringify(n.data,null,2)}):(0,A.jsx)("div",{className:"workflows-workflow-menu__output-error",children:(0,A.jsx)("p",{children:n.error})})})]}):(0,A.jsxs)(he,{label:Ma,shouldFilter:!1,children:[(0,A.jsxs)(oe.__experimentalHStack,{className:"workflows-workflow-menu__header",children:[(0,A.jsx)(lr,{className:"workflows-workflow-menu__header-search-icon",icon:ur}),(0,A.jsx)(ml,{search:t,setSearch:r,isOpen:o,abilities:f})]}),(0,A.jsxs)(he.List,{label:(0,ge.__)("Workflow suggestions"),children:[i&&(0,A.jsx)(oe.__experimentalHStack,{className:"workflows-workflow-menu__executing",align:"center",children:(0,ge.__)("Executing ability\u2026")}),!i&&t&&c.length===0&&(0,A.jsx)(he.Empty,{children:(0,ge.__)("No results found.")}),!i&&c.length>0&&(0,A.jsx)(he.Group,{children:c.map(p=>(0,A.jsx)(he.Item,{value:p.label,className:"workflows-workflow-menu__item",onSelect:()=>C(p),id:p.name,children:(0,A.jsx)(oe.__experimentalHStack,{alignment:"left",children:(0,A.jsx)("span",{children:(0,A.jsx)(oe.TextHighlight,{text:p.label,highlight:t})})})},p.name))})]})]})})}):null}var ja=document.createElement("div");document.body.appendChild(ja);(0,pt.createRoot)(ja).render((0,pt.createElement)(Fa)); workflow/index.js 0000644 00000421314 15206736336 0010103 0 ustar 00 var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // package-external:@wordpress/element var require_element = __commonJS({ "package-external:@wordpress/element"(exports, module) { module.exports = window.wp.element; } }); // vendor-external:react var require_react = __commonJS({ "vendor-external:react"(exports, module) { module.exports = window.React; } }); // vendor-external:react/jsx-runtime var require_jsx_runtime = __commonJS({ "vendor-external:react/jsx-runtime"(exports, module) { module.exports = window.ReactJSXRuntime; } }); // vendor-external:react-dom var require_react_dom = __commonJS({ "vendor-external:react-dom"(exports, module) { module.exports = window.ReactDOM; } }); // package-external:@wordpress/data var require_data = __commonJS({ "package-external:@wordpress/data"(exports, module) { module.exports = window.wp.data; } }); // package-external:@wordpress/i18n var require_i18n = __commonJS({ "package-external:@wordpress/i18n"(exports, module) { module.exports = window.wp.i18n; } }); // package-external:@wordpress/components var require_components = __commonJS({ "package-external:@wordpress/components"(exports, module) { module.exports = window.wp.components; } }); // package-external:@wordpress/keyboard-shortcuts var require_keyboard_shortcuts = __commonJS({ "package-external:@wordpress/keyboard-shortcuts"(exports, module) { module.exports = window.wp.keyboardShortcuts; } }); // package-external:@wordpress/primitives var require_primitives = __commonJS({ "package-external:@wordpress/primitives"(exports, module) { module.exports = window.wp.primitives; } }); // package-external:@wordpress/private-apis var require_private_apis = __commonJS({ "package-external:@wordpress/private-apis"(exports, module) { module.exports = window.wp.privateApis; } }); // packages/workflow/build-module/index.mjs var import_element3 = __toESM(require_element(), 1); // node_modules/cmdk/dist/chunk-NZJY6EH4.mjs var U = 1; var Y = 0.9; var H = 0.8; var J = 0.17; var p = 0.1; var u = 0.999; var $ = 0.9999; var k = 0.99; var m = /[\\\/_+.#"@\[\(\{&]/; var B = /[\\\/_+.#"@\[\(\{&]/g; var K = /[\s-]/; var X = /[\s-]/g; function G(_, C, h, P2, A, f, O) { if (f === C.length) return A === _.length ? U : k; var T2 = `${A},${f}`; if (O[T2] !== void 0) return O[T2]; for (var L2 = P2.charAt(f), c = h.indexOf(L2, A), S = 0, E, N2, R, M; c >= 0; ) E = G(_, C, h, P2, c + 1, f + 1, O), E > S && (c === A ? E *= U : m.test(_.charAt(c - 1)) ? (E *= H, R = _.slice(A, c - 1).match(B), R && A > 0 && (E *= Math.pow(u, R.length))) : K.test(_.charAt(c - 1)) ? (E *= Y, M = _.slice(A, c - 1).match(X), M && A > 0 && (E *= Math.pow(u, M.length))) : (E *= J, A > 0 && (E *= Math.pow(u, c - A))), _.charAt(c) !== C.charAt(f) && (E *= $)), (E < p && h.charAt(c - 1) === P2.charAt(f + 1) || P2.charAt(f + 1) === P2.charAt(f) && h.charAt(c - 1) !== P2.charAt(f)) && (N2 = G(_, C, h, P2, c + 1, f + 2, O), N2 * p > E && (E = N2 * p)), E > S && (S = E), c = h.indexOf(L2, c + 1); return O[T2] = S, S; } function D(_) { return _.toLowerCase().replace(X, " "); } function W(_, C, h) { return _ = h && h.length > 0 ? `${_ + " " + h.join(" ")}` : _, G(_, C, D(_), D(C), 0, 0, {}); } // node_modules/@radix-ui/react-dialog/dist/index.mjs var React37 = __toESM(require_react(), 1); // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/primitive/dist/index.mjs var canUseDOM = !!(typeof window !== "undefined" && window.document && window.document.createElement); function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) { return function handleEvent(event) { originalEventHandler?.(event); if (checkForDefaultPrevented === false || !event.defaultPrevented) { return ourEventHandler?.(event); } }; } // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-compose-refs/dist/index.mjs var React = __toESM(require_react(), 1); function setRef(ref, value) { if (typeof ref === "function") { return ref(value); } else if (ref !== null && ref !== void 0) { ref.current = value; } } function composeRefs(...refs) { return (node) => { let hasCleanup = false; const cleanups = refs.map((ref) => { const cleanup = setRef(ref, node); if (!hasCleanup && typeof cleanup == "function") { hasCleanup = true; } return cleanup; }); if (hasCleanup) { return () => { for (let i = 0; i < cleanups.length; i++) { const cleanup = cleanups[i]; if (typeof cleanup == "function") { cleanup(); } else { setRef(refs[i], null); } } }; } }; } function useComposedRefs(...refs) { return React.useCallback(composeRefs(...refs), refs); } // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-context/dist/index.mjs var React2 = __toESM(require_react(), 1); var import_jsx_runtime = __toESM(require_jsx_runtime(), 1); function createContext2(rootComponentName, defaultContext) { const Context = React2.createContext(defaultContext); const Provider = (props) => { const { children, ...context } = props; const value = React2.useMemo(() => context, Object.values(context)); return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Context.Provider, { value, children }); }; Provider.displayName = rootComponentName + "Provider"; function useContext22(consumerName) { const context = React2.useContext(Context); if (context) return context; if (defaultContext !== void 0) return defaultContext; throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``); } return [Provider, useContext22]; } function createContextScope(scopeName, createContextScopeDeps = []) { let defaultContexts = []; function createContext32(rootComponentName, defaultContext) { const BaseContext = React2.createContext(defaultContext); const index = defaultContexts.length; defaultContexts = [...defaultContexts, defaultContext]; const Provider = (props) => { const { scope, children, ...context } = props; const Context = scope?.[scopeName]?.[index] || BaseContext; const value = React2.useMemo(() => context, Object.values(context)); return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Context.Provider, { value, children }); }; Provider.displayName = rootComponentName + "Provider"; function useContext22(consumerName, scope) { const Context = scope?.[scopeName]?.[index] || BaseContext; const context = React2.useContext(Context); if (context) return context; if (defaultContext !== void 0) return defaultContext; throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``); } return [Provider, useContext22]; } const createScope = () => { const scopeContexts = defaultContexts.map((defaultContext) => { return React2.createContext(defaultContext); }); return function useScope(scope) { const contexts = scope?.[scopeName] || scopeContexts; return React2.useMemo( () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }), [scope, contexts] ); }; }; createScope.scopeName = scopeName; return [createContext32, composeContextScopes(createScope, ...createContextScopeDeps)]; } function composeContextScopes(...scopes) { const baseScope = scopes[0]; if (scopes.length === 1) return baseScope; const createScope = () => { const scopeHooks = scopes.map((createScope2) => ({ useScope: createScope2(), scopeName: createScope2.scopeName })); return function useComposedScopes(overrideScopes) { const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => { const scopeProps = useScope(overrideScopes); const currentScope = scopeProps[`__scope${scopeName}`]; return { ...nextScopes2, ...currentScope }; }, {}); return React2.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]); }; }; createScope.scopeName = baseScope.scopeName; return createScope; } // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-id/dist/index.mjs var React4 = __toESM(require_react(), 1); // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs var React3 = __toESM(require_react(), 1); var useLayoutEffect2 = globalThis?.document ? React3.useLayoutEffect : () => { }; // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-id/dist/index.mjs var useReactId = React4[" useId ".trim().toString()] || (() => void 0); var count = 0; function useId(deterministicId) { const [id, setId] = React4.useState(useReactId()); useLayoutEffect2(() => { if (!deterministicId) setId((reactId) => reactId ?? String(count++)); }, [deterministicId]); return deterministicId || (id ? `radix-${id}` : ""); } // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs var React5 = __toESM(require_react(), 1); var React22 = __toESM(require_react(), 1); var useInsertionEffect = React5[" useInsertionEffect ".trim().toString()] || useLayoutEffect2; function useControllableState({ prop, defaultProp, onChange = () => { }, caller }) { const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({ defaultProp, onChange }); const isControlled = prop !== void 0; const value = isControlled ? prop : uncontrolledProp; if (true) { const isControlledRef = React5.useRef(prop !== void 0); React5.useEffect(() => { const wasControlled = isControlledRef.current; if (wasControlled !== isControlled) { const from = wasControlled ? "controlled" : "uncontrolled"; const to = isControlled ? "controlled" : "uncontrolled"; console.warn( `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.` ); } isControlledRef.current = isControlled; }, [isControlled, caller]); } const setValue = React5.useCallback( (nextValue) => { if (isControlled) { const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue; if (value2 !== prop) { onChangeRef.current?.(value2); } } else { setUncontrolledProp(nextValue); } }, [isControlled, prop, setUncontrolledProp, onChangeRef] ); return [value, setValue]; } function useUncontrolledState({ defaultProp, onChange }) { const [value, setValue] = React5.useState(defaultProp); const prevValueRef = React5.useRef(value); const onChangeRef = React5.useRef(onChange); useInsertionEffect(() => { onChangeRef.current = onChange; }, [onChange]); React5.useEffect(() => { if (prevValueRef.current !== value) { onChangeRef.current?.(value); prevValueRef.current = value; } }, [value, prevValueRef]); return [value, setValue, onChangeRef]; } function isFunction(value) { return typeof value === "function"; } // node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs var React11 = __toESM(require_react(), 1); // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/primitive/dist/index.mjs var canUseDOM2 = !!(typeof window !== "undefined" && window.document && window.document.createElement); function composeEventHandlers2(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) { return function handleEvent(event) { originalEventHandler?.(event); if (checkForDefaultPrevented === false || !event.defaultPrevented) { return ourEventHandler?.(event); } }; } // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-primitive/dist/index.mjs var React8 = __toESM(require_react(), 1); var ReactDOM = __toESM(require_react_dom(), 1); // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-slot/dist/index.mjs var React7 = __toESM(require_react(), 1); // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-compose-refs/dist/index.mjs var React6 = __toESM(require_react(), 1); function setRef2(ref, value) { if (typeof ref === "function") { return ref(value); } else if (ref !== null && ref !== void 0) { ref.current = value; } } function composeRefs2(...refs) { return (node) => { let hasCleanup = false; const cleanups = refs.map((ref) => { const cleanup = setRef2(ref, node); if (!hasCleanup && typeof cleanup == "function") { hasCleanup = true; } return cleanup; }); if (hasCleanup) { return () => { for (let i = 0; i < cleanups.length; i++) { const cleanup = cleanups[i]; if (typeof cleanup == "function") { cleanup(); } else { setRef2(refs[i], null); } } }; } }; } function useComposedRefs2(...refs) { return React6.useCallback(composeRefs2(...refs), refs); } // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-slot/dist/index.mjs var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1); // @__NO_SIDE_EFFECTS__ function createSlot(ownerName) { const SlotClone = /* @__PURE__ */ createSlotClone(ownerName); const Slot2 = React7.forwardRef((props, forwardedRef) => { const { children, ...slotProps } = props; const childrenArray = React7.Children.toArray(children); const slottable = childrenArray.find(isSlottable); if (slottable) { const newElement = slottable.props.children; const newChildren = childrenArray.map((child) => { if (child === slottable) { if (React7.Children.count(newElement) > 1) return React7.Children.only(null); return React7.isValidElement(newElement) ? newElement.props.children : null; } else { return child; } }); return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React7.isValidElement(newElement) ? React7.cloneElement(newElement, void 0, newChildren) : null }); } return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children }); }); Slot2.displayName = `${ownerName}.Slot`; return Slot2; } // @__NO_SIDE_EFFECTS__ function createSlotClone(ownerName) { const SlotClone = React7.forwardRef((props, forwardedRef) => { const { children, ...slotProps } = props; if (React7.isValidElement(children)) { const childrenRef = getElementRef(children); const props2 = mergeProps(slotProps, children.props); if (children.type !== React7.Fragment) { props2.ref = forwardedRef ? composeRefs2(forwardedRef, childrenRef) : childrenRef; } return React7.cloneElement(children, props2); } return React7.Children.count(children) > 1 ? React7.Children.only(null) : null; }); SlotClone.displayName = `${ownerName}.SlotClone`; return SlotClone; } var SLOTTABLE_IDENTIFIER = /* @__PURE__ */ Symbol("radix.slottable"); function isSlottable(child) { return React7.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER; } function mergeProps(slotProps, childProps) { const overrideProps = { ...childProps }; for (const propName in childProps) { const slotPropValue = slotProps[propName]; const childPropValue = childProps[propName]; const isHandler = /^on[A-Z]/.test(propName); if (isHandler) { if (slotPropValue && childPropValue) { overrideProps[propName] = (...args) => { const result = childPropValue(...args); slotPropValue(...args); return result; }; } else if (slotPropValue) { overrideProps[propName] = slotPropValue; } } else if (propName === "style") { overrideProps[propName] = { ...slotPropValue, ...childPropValue }; } else if (propName === "className") { overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" "); } } return { ...slotProps, ...overrideProps }; } function getElementRef(element) { let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; if (mayWarn) { return element.ref; } getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; if (mayWarn) { return element.props.ref; } return element.props.ref || element.ref; } // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-primitive/dist/index.mjs var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1); var NODES = [ "a", "button", "div", "form", "h2", "h3", "img", "input", "label", "li", "nav", "ol", "p", "select", "span", "svg", "ul" ]; var Primitive = NODES.reduce((primitive, node) => { const Slot2 = createSlot(`Primitive.${node}`); const Node2 = React8.forwardRef((props, forwardedRef) => { const { asChild, ...primitiveProps } = props; const Comp = asChild ? Slot2 : node; if (typeof window !== "undefined") { window[/* @__PURE__ */ Symbol.for("radix-ui")] = true; } return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Comp, { ...primitiveProps, ref: forwardedRef }); }); Node2.displayName = `Primitive.${node}`; return { ...primitive, [node]: Node2 }; }, {}); function dispatchDiscreteCustomEvent(target, event) { if (target) ReactDOM.flushSync(() => target.dispatchEvent(event)); } // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs var React9 = __toESM(require_react(), 1); function useCallbackRef(callback) { const callbackRef = React9.useRef(callback); React9.useEffect(() => { callbackRef.current = callback; }); return React9.useMemo(() => (...args) => callbackRef.current?.(...args), []); } // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs var React10 = __toESM(require_react(), 1); function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) { const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp); React10.useEffect(() => { const handleKeyDown = (event) => { if (event.key === "Escape") { onEscapeKeyDown(event); } }; ownerDocument.addEventListener("keydown", handleKeyDown, { capture: true }); return () => ownerDocument.removeEventListener("keydown", handleKeyDown, { capture: true }); }, [onEscapeKeyDown, ownerDocument]); } // node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1); var DISMISSABLE_LAYER_NAME = "DismissableLayer"; var CONTEXT_UPDATE = "dismissableLayer.update"; var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside"; var FOCUS_OUTSIDE = "dismissableLayer.focusOutside"; var originalBodyPointerEvents; var DismissableLayerContext = React11.createContext({ layers: /* @__PURE__ */ new Set(), layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(), branches: /* @__PURE__ */ new Set() }); var DismissableLayer = React11.forwardRef( (props, forwardedRef) => { const { disableOutsidePointerEvents = false, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, ...layerProps } = props; const context = React11.useContext(DismissableLayerContext); const [node, setNode] = React11.useState(null); const ownerDocument = node?.ownerDocument ?? globalThis?.document; const [, force] = React11.useState({}); const composedRefs = useComposedRefs2(forwardedRef, (node2) => setNode(node2)); const layers = Array.from(context.layers); const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1); const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled); const index = node ? layers.indexOf(node) : -1; const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0; const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex; const pointerDownOutside = usePointerDownOutside((event) => { const target = event.target; const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target)); if (!isPointerEventsEnabled || isPointerDownOnBranch) return; onPointerDownOutside?.(event); onInteractOutside?.(event); if (!event.defaultPrevented) onDismiss?.(); }, ownerDocument); const focusOutside = useFocusOutside((event) => { const target = event.target; const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target)); if (isFocusInBranch) return; onFocusOutside?.(event); onInteractOutside?.(event); if (!event.defaultPrevented) onDismiss?.(); }, ownerDocument); useEscapeKeydown((event) => { const isHighestLayer = index === context.layers.size - 1; if (!isHighestLayer) return; onEscapeKeyDown?.(event); if (!event.defaultPrevented && onDismiss) { event.preventDefault(); onDismiss(); } }, ownerDocument); React11.useEffect(() => { if (!node) return; if (disableOutsidePointerEvents) { if (context.layersWithOutsidePointerEventsDisabled.size === 0) { originalBodyPointerEvents = ownerDocument.body.style.pointerEvents; ownerDocument.body.style.pointerEvents = "none"; } context.layersWithOutsidePointerEventsDisabled.add(node); } context.layers.add(node); dispatchUpdate(); return () => { if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) { ownerDocument.body.style.pointerEvents = originalBodyPointerEvents; } }; }, [node, ownerDocument, disableOutsidePointerEvents, context]); React11.useEffect(() => { return () => { if (!node) return; context.layers.delete(node); context.layersWithOutsidePointerEventsDisabled.delete(node); dispatchUpdate(); }; }, [node, context]); React11.useEffect(() => { const handleUpdate = () => force({}); document.addEventListener(CONTEXT_UPDATE, handleUpdate); return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate); }, []); return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( Primitive.div, { ...layerProps, ref: composedRefs, style: { pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0, ...props.style }, onFocusCapture: composeEventHandlers2(props.onFocusCapture, focusOutside.onFocusCapture), onBlurCapture: composeEventHandlers2(props.onBlurCapture, focusOutside.onBlurCapture), onPointerDownCapture: composeEventHandlers2( props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture ) } ); } ); DismissableLayer.displayName = DISMISSABLE_LAYER_NAME; var BRANCH_NAME = "DismissableLayerBranch"; var DismissableLayerBranch = React11.forwardRef((props, forwardedRef) => { const context = React11.useContext(DismissableLayerContext); const ref = React11.useRef(null); const composedRefs = useComposedRefs2(forwardedRef, ref); React11.useEffect(() => { const node = ref.current; if (node) { context.branches.add(node); return () => { context.branches.delete(node); }; } }, [context.branches]); return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Primitive.div, { ...props, ref: composedRefs }); }); DismissableLayerBranch.displayName = BRANCH_NAME; function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) { const handlePointerDownOutside = useCallbackRef(onPointerDownOutside); const isPointerInsideReactTreeRef = React11.useRef(false); const handleClickRef = React11.useRef(() => { }); React11.useEffect(() => { const handlePointerDown = (event) => { if (event.target && !isPointerInsideReactTreeRef.current) { let handleAndDispatchPointerDownOutsideEvent2 = function() { handleAndDispatchCustomEvent( POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, { discrete: true } ); }; var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2; const eventDetail = { originalEvent: event }; if (event.pointerType === "touch") { ownerDocument.removeEventListener("click", handleClickRef.current); handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2; ownerDocument.addEventListener("click", handleClickRef.current, { once: true }); } else { handleAndDispatchPointerDownOutsideEvent2(); } } else { ownerDocument.removeEventListener("click", handleClickRef.current); } isPointerInsideReactTreeRef.current = false; }; const timerId = window.setTimeout(() => { ownerDocument.addEventListener("pointerdown", handlePointerDown); }, 0); return () => { window.clearTimeout(timerId); ownerDocument.removeEventListener("pointerdown", handlePointerDown); ownerDocument.removeEventListener("click", handleClickRef.current); }; }, [ownerDocument, handlePointerDownOutside]); return { // ensures we check React component tree (not just DOM tree) onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true }; } function useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) { const handleFocusOutside = useCallbackRef(onFocusOutside); const isFocusInsideReactTreeRef = React11.useRef(false); React11.useEffect(() => { const handleFocus = (event) => { if (event.target && !isFocusInsideReactTreeRef.current) { const eventDetail = { originalEvent: event }; handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, { discrete: false }); } }; ownerDocument.addEventListener("focusin", handleFocus); return () => ownerDocument.removeEventListener("focusin", handleFocus); }, [ownerDocument, handleFocusOutside]); return { onFocusCapture: () => isFocusInsideReactTreeRef.current = true, onBlurCapture: () => isFocusInsideReactTreeRef.current = false }; } function dispatchUpdate() { const event = new CustomEvent(CONTEXT_UPDATE); document.dispatchEvent(event); } function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) { const target = detail.originalEvent.target; const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail }); if (handler) target.addEventListener(name, handler, { once: true }); if (discrete) { dispatchDiscreteCustomEvent(target, event); } else { target.dispatchEvent(event); } } // node_modules/@radix-ui/react-focus-scope/dist/index.mjs var React16 = __toESM(require_react(), 1); // node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-compose-refs/dist/index.mjs var React12 = __toESM(require_react(), 1); function setRef3(ref, value) { if (typeof ref === "function") { return ref(value); } else if (ref !== null && ref !== void 0) { ref.current = value; } } function composeRefs3(...refs) { return (node) => { let hasCleanup = false; const cleanups = refs.map((ref) => { const cleanup = setRef3(ref, node); if (!hasCleanup && typeof cleanup == "function") { hasCleanup = true; } return cleanup; }); if (hasCleanup) { return () => { for (let i = 0; i < cleanups.length; i++) { const cleanup = cleanups[i]; if (typeof cleanup == "function") { cleanup(); } else { setRef3(refs[i], null); } } }; } }; } function useComposedRefs3(...refs) { return React12.useCallback(composeRefs3(...refs), refs); } // node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive/dist/index.mjs var React14 = __toESM(require_react(), 1); var ReactDOM2 = __toESM(require_react_dom(), 1); // node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-slot/dist/index.mjs var React13 = __toESM(require_react(), 1); var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1); // @__NO_SIDE_EFFECTS__ function createSlot2(ownerName) { const SlotClone = /* @__PURE__ */ createSlotClone2(ownerName); const Slot2 = React13.forwardRef((props, forwardedRef) => { const { children, ...slotProps } = props; const childrenArray = React13.Children.toArray(children); const slottable = childrenArray.find(isSlottable2); if (slottable) { const newElement = slottable.props.children; const newChildren = childrenArray.map((child) => { if (child === slottable) { if (React13.Children.count(newElement) > 1) return React13.Children.only(null); return React13.isValidElement(newElement) ? newElement.props.children : null; } else { return child; } }); return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React13.isValidElement(newElement) ? React13.cloneElement(newElement, void 0, newChildren) : null }); } return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children }); }); Slot2.displayName = `${ownerName}.Slot`; return Slot2; } // @__NO_SIDE_EFFECTS__ function createSlotClone2(ownerName) { const SlotClone = React13.forwardRef((props, forwardedRef) => { const { children, ...slotProps } = props; if (React13.isValidElement(children)) { const childrenRef = getElementRef2(children); const props2 = mergeProps2(slotProps, children.props); if (children.type !== React13.Fragment) { props2.ref = forwardedRef ? composeRefs3(forwardedRef, childrenRef) : childrenRef; } return React13.cloneElement(children, props2); } return React13.Children.count(children) > 1 ? React13.Children.only(null) : null; }); SlotClone.displayName = `${ownerName}.SlotClone`; return SlotClone; } var SLOTTABLE_IDENTIFIER2 = /* @__PURE__ */ Symbol("radix.slottable"); function isSlottable2(child) { return React13.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER2; } function mergeProps2(slotProps, childProps) { const overrideProps = { ...childProps }; for (const propName in childProps) { const slotPropValue = slotProps[propName]; const childPropValue = childProps[propName]; const isHandler = /^on[A-Z]/.test(propName); if (isHandler) { if (slotPropValue && childPropValue) { overrideProps[propName] = (...args) => { const result = childPropValue(...args); slotPropValue(...args); return result; }; } else if (slotPropValue) { overrideProps[propName] = slotPropValue; } } else if (propName === "style") { overrideProps[propName] = { ...slotPropValue, ...childPropValue }; } else if (propName === "className") { overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" "); } } return { ...slotProps, ...overrideProps }; } function getElementRef2(element) { let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; if (mayWarn) { return element.ref; } getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; if (mayWarn) { return element.props.ref; } return element.props.ref || element.ref; } // node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive/dist/index.mjs var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1); var NODES2 = [ "a", "button", "div", "form", "h2", "h3", "img", "input", "label", "li", "nav", "ol", "p", "select", "span", "svg", "ul" ]; var Primitive2 = NODES2.reduce((primitive, node) => { const Slot2 = createSlot2(`Primitive.${node}`); const Node2 = React14.forwardRef((props, forwardedRef) => { const { asChild, ...primitiveProps } = props; const Comp = asChild ? Slot2 : node; if (typeof window !== "undefined") { window[/* @__PURE__ */ Symbol.for("radix-ui")] = true; } return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Comp, { ...primitiveProps, ref: forwardedRef }); }); Node2.displayName = `Primitive.${node}`; return { ...primitive, [node]: Node2 }; }, {}); // node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs var React15 = __toESM(require_react(), 1); function useCallbackRef2(callback) { const callbackRef = React15.useRef(callback); React15.useEffect(() => { callbackRef.current = callback; }); return React15.useMemo(() => (...args) => callbackRef.current?.(...args), []); } // node_modules/@radix-ui/react-focus-scope/dist/index.mjs var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1); var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount"; var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount"; var EVENT_OPTIONS = { bubbles: false, cancelable: true }; var FOCUS_SCOPE_NAME = "FocusScope"; var FocusScope = React16.forwardRef((props, forwardedRef) => { const { loop = false, trapped = false, onMountAutoFocus: onMountAutoFocusProp, onUnmountAutoFocus: onUnmountAutoFocusProp, ...scopeProps } = props; const [container, setContainer] = React16.useState(null); const onMountAutoFocus = useCallbackRef2(onMountAutoFocusProp); const onUnmountAutoFocus = useCallbackRef2(onUnmountAutoFocusProp); const lastFocusedElementRef = React16.useRef(null); const composedRefs = useComposedRefs3(forwardedRef, (node) => setContainer(node)); const focusScope = React16.useRef({ paused: false, pause() { this.paused = true; }, resume() { this.paused = false; } }).current; React16.useEffect(() => { if (trapped) { let handleFocusIn2 = function(event) { if (focusScope.paused || !container) return; const target = event.target; if (container.contains(target)) { lastFocusedElementRef.current = target; } else { focus(lastFocusedElementRef.current, { select: true }); } }, handleFocusOut2 = function(event) { if (focusScope.paused || !container) return; const relatedTarget = event.relatedTarget; if (relatedTarget === null) return; if (!container.contains(relatedTarget)) { focus(lastFocusedElementRef.current, { select: true }); } }, handleMutations2 = function(mutations) { const focusedElement = document.activeElement; if (focusedElement !== document.body) return; for (const mutation of mutations) { if (mutation.removedNodes.length > 0) focus(container); } }; var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2; document.addEventListener("focusin", handleFocusIn2); document.addEventListener("focusout", handleFocusOut2); const mutationObserver = new MutationObserver(handleMutations2); if (container) mutationObserver.observe(container, { childList: true, subtree: true }); return () => { document.removeEventListener("focusin", handleFocusIn2); document.removeEventListener("focusout", handleFocusOut2); mutationObserver.disconnect(); }; } }, [trapped, container, focusScope.paused]); React16.useEffect(() => { if (container) { focusScopesStack.add(focusScope); const previouslyFocusedElement = document.activeElement; const hasFocusedCandidate = container.contains(previouslyFocusedElement); if (!hasFocusedCandidate) { const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS); container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus); container.dispatchEvent(mountEvent); if (!mountEvent.defaultPrevented) { focusFirst(removeLinks(getTabbableCandidates(container)), { select: true }); if (document.activeElement === previouslyFocusedElement) { focus(container); } } } return () => { container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus); setTimeout(() => { const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS); container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus); container.dispatchEvent(unmountEvent); if (!unmountEvent.defaultPrevented) { focus(previouslyFocusedElement ?? document.body, { select: true }); } container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus); focusScopesStack.remove(focusScope); }, 0); }; } }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]); const handleKeyDown = React16.useCallback( (event) => { if (!loop && !trapped) return; if (focusScope.paused) return; const isTabKey = event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey; const focusedElement = document.activeElement; if (isTabKey && focusedElement) { const container2 = event.currentTarget; const [first, last] = getTabbableEdges(container2); const hasTabbableElementsInside = first && last; if (!hasTabbableElementsInside) { if (focusedElement === container2) event.preventDefault(); } else { if (!event.shiftKey && focusedElement === last) { event.preventDefault(); if (loop) focus(first, { select: true }); } else if (event.shiftKey && focusedElement === first) { event.preventDefault(); if (loop) focus(last, { select: true }); } } } }, [loop, trapped, focusScope.paused] ); return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Primitive2.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown }); }); FocusScope.displayName = FOCUS_SCOPE_NAME; function focusFirst(candidates, { select = false } = {}) { const previouslyFocusedElement = document.activeElement; for (const candidate of candidates) { focus(candidate, { select }); if (document.activeElement !== previouslyFocusedElement) return; } } function getTabbableEdges(container) { const candidates = getTabbableCandidates(container); const first = findVisible(candidates, container); const last = findVisible(candidates.reverse(), container); return [first, last]; } function getTabbableCandidates(container) { const nodes = []; const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, { acceptNode: (node) => { const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden"; if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP; return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP; } }); while (walker.nextNode()) nodes.push(walker.currentNode); return nodes; } function findVisible(elements, container) { for (const element of elements) { if (!isHidden(element, { upTo: container })) return element; } } function isHidden(node, { upTo }) { if (getComputedStyle(node).visibility === "hidden") return true; while (node) { if (upTo !== void 0 && node === upTo) return false; if (getComputedStyle(node).display === "none") return true; node = node.parentElement; } return false; } function isSelectableInput(element) { return element instanceof HTMLInputElement && "select" in element; } function focus(element, { select = false } = {}) { if (element && element.focus) { const previouslyFocusedElement = document.activeElement; element.focus({ preventScroll: true }); if (element !== previouslyFocusedElement && isSelectableInput(element) && select) element.select(); } } var focusScopesStack = createFocusScopesStack(); function createFocusScopesStack() { let stack = []; return { add(focusScope) { const activeFocusScope = stack[0]; if (focusScope !== activeFocusScope) { activeFocusScope?.pause(); } stack = arrayRemove(stack, focusScope); stack.unshift(focusScope); }, remove(focusScope) { stack = arrayRemove(stack, focusScope); stack[0]?.resume(); } }; } function arrayRemove(array, item) { const updatedArray = [...array]; const index = updatedArray.indexOf(item); if (index !== -1) { updatedArray.splice(index, 1); } return updatedArray; } function removeLinks(items) { return items.filter((item) => item.tagName !== "A"); } // node_modules/@radix-ui/react-portal/dist/index.mjs var React21 = __toESM(require_react(), 1); var import_react_dom = __toESM(require_react_dom(), 1); // node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-primitive/dist/index.mjs var React19 = __toESM(require_react(), 1); var ReactDOM3 = __toESM(require_react_dom(), 1); // node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-slot/dist/index.mjs var React18 = __toESM(require_react(), 1); // node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-compose-refs/dist/index.mjs var React17 = __toESM(require_react(), 1); function setRef4(ref, value) { if (typeof ref === "function") { return ref(value); } else if (ref !== null && ref !== void 0) { ref.current = value; } } function composeRefs4(...refs) { return (node) => { let hasCleanup = false; const cleanups = refs.map((ref) => { const cleanup = setRef4(ref, node); if (!hasCleanup && typeof cleanup == "function") { hasCleanup = true; } return cleanup; }); if (hasCleanup) { return () => { for (let i = 0; i < cleanups.length; i++) { const cleanup = cleanups[i]; if (typeof cleanup == "function") { cleanup(); } else { setRef4(refs[i], null); } } }; } }; } // node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-slot/dist/index.mjs var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1); // @__NO_SIDE_EFFECTS__ function createSlot3(ownerName) { const SlotClone = /* @__PURE__ */ createSlotClone3(ownerName); const Slot2 = React18.forwardRef((props, forwardedRef) => { const { children, ...slotProps } = props; const childrenArray = React18.Children.toArray(children); const slottable = childrenArray.find(isSlottable3); if (slottable) { const newElement = slottable.props.children; const newChildren = childrenArray.map((child) => { if (child === slottable) { if (React18.Children.count(newElement) > 1) return React18.Children.only(null); return React18.isValidElement(newElement) ? newElement.props.children : null; } else { return child; } }); return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React18.isValidElement(newElement) ? React18.cloneElement(newElement, void 0, newChildren) : null }); } return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children }); }); Slot2.displayName = `${ownerName}.Slot`; return Slot2; } // @__NO_SIDE_EFFECTS__ function createSlotClone3(ownerName) { const SlotClone = React18.forwardRef((props, forwardedRef) => { const { children, ...slotProps } = props; if (React18.isValidElement(children)) { const childrenRef = getElementRef3(children); const props2 = mergeProps3(slotProps, children.props); if (children.type !== React18.Fragment) { props2.ref = forwardedRef ? composeRefs4(forwardedRef, childrenRef) : childrenRef; } return React18.cloneElement(children, props2); } return React18.Children.count(children) > 1 ? React18.Children.only(null) : null; }); SlotClone.displayName = `${ownerName}.SlotClone`; return SlotClone; } var SLOTTABLE_IDENTIFIER3 = /* @__PURE__ */ Symbol("radix.slottable"); function isSlottable3(child) { return React18.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER3; } function mergeProps3(slotProps, childProps) { const overrideProps = { ...childProps }; for (const propName in childProps) { const slotPropValue = slotProps[propName]; const childPropValue = childProps[propName]; const isHandler = /^on[A-Z]/.test(propName); if (isHandler) { if (slotPropValue && childPropValue) { overrideProps[propName] = (...args) => { const result = childPropValue(...args); slotPropValue(...args); return result; }; } else if (slotPropValue) { overrideProps[propName] = slotPropValue; } } else if (propName === "style") { overrideProps[propName] = { ...slotPropValue, ...childPropValue }; } else if (propName === "className") { overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" "); } } return { ...slotProps, ...overrideProps }; } function getElementRef3(element) { let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; if (mayWarn) { return element.ref; } getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; if (mayWarn) { return element.props.ref; } return element.props.ref || element.ref; } // node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-primitive/dist/index.mjs var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1); var NODES3 = [ "a", "button", "div", "form", "h2", "h3", "img", "input", "label", "li", "nav", "ol", "p", "select", "span", "svg", "ul" ]; var Primitive3 = NODES3.reduce((primitive, node) => { const Slot2 = createSlot3(`Primitive.${node}`); const Node2 = React19.forwardRef((props, forwardedRef) => { const { asChild, ...primitiveProps } = props; const Comp = asChild ? Slot2 : node; if (typeof window !== "undefined") { window[/* @__PURE__ */ Symbol.for("radix-ui")] = true; } return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Comp, { ...primitiveProps, ref: forwardedRef }); }); Node2.displayName = `Primitive.${node}`; return { ...primitive, [node]: Node2 }; }, {}); // node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs var React20 = __toESM(require_react(), 1); var useLayoutEffect22 = globalThis?.document ? React20.useLayoutEffect : () => { }; // node_modules/@radix-ui/react-portal/dist/index.mjs var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1); var PORTAL_NAME = "Portal"; var Portal = React21.forwardRef((props, forwardedRef) => { const { container: containerProp, ...portalProps } = props; const [mounted, setMounted] = React21.useState(false); useLayoutEffect22(() => setMounted(true), []); const container = containerProp || mounted && globalThis?.document?.body; return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Primitive3.div, { ...portalProps, ref: forwardedRef }), container) : null; }); Portal.displayName = PORTAL_NAME; // node_modules/@radix-ui/react-presence/dist/index.mjs var React25 = __toESM(require_react(), 1); // node_modules/@radix-ui/react-presence/node_modules/@radix-ui/react-compose-refs/dist/index.mjs var React23 = __toESM(require_react(), 1); function setRef5(ref, value) { if (typeof ref === "function") { return ref(value); } else if (ref !== null && ref !== void 0) { ref.current = value; } } function composeRefs5(...refs) { return (node) => { let hasCleanup = false; const cleanups = refs.map((ref) => { const cleanup = setRef5(ref, node); if (!hasCleanup && typeof cleanup == "function") { hasCleanup = true; } return cleanup; }); if (hasCleanup) { return () => { for (let i = 0; i < cleanups.length; i++) { const cleanup = cleanups[i]; if (typeof cleanup == "function") { cleanup(); } else { setRef5(refs[i], null); } } }; } }; } function useComposedRefs4(...refs) { return React23.useCallback(composeRefs5(...refs), refs); } // node_modules/@radix-ui/react-presence/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs var React24 = __toESM(require_react(), 1); var useLayoutEffect23 = globalThis?.document ? React24.useLayoutEffect : () => { }; // node_modules/@radix-ui/react-presence/dist/index.mjs var React26 = __toESM(require_react(), 1); function useStateMachine(initialState, machine) { return React26.useReducer((state, event) => { const nextState = machine[state][event]; return nextState ?? state; }, initialState); } var Presence = (props) => { const { present, children } = props; const presence = usePresence(present); const child = typeof children === "function" ? children({ present: presence.isPresent }) : React25.Children.only(children); const ref = useComposedRefs4(presence.ref, getElementRef4(child)); const forceMount = typeof children === "function"; return forceMount || presence.isPresent ? React25.cloneElement(child, { ref }) : null; }; Presence.displayName = "Presence"; function usePresence(present) { const [node, setNode] = React25.useState(); const stylesRef = React25.useRef(null); const prevPresentRef = React25.useRef(present); const prevAnimationNameRef = React25.useRef("none"); const initialState = present ? "mounted" : "unmounted"; const [state, send] = useStateMachine(initialState, { mounted: { UNMOUNT: "unmounted", ANIMATION_OUT: "unmountSuspended" }, unmountSuspended: { MOUNT: "mounted", ANIMATION_END: "unmounted" }, unmounted: { MOUNT: "mounted" } }); React25.useEffect(() => { const currentAnimationName = getAnimationName(stylesRef.current); prevAnimationNameRef.current = state === "mounted" ? currentAnimationName : "none"; }, [state]); useLayoutEffect23(() => { const styles = stylesRef.current; const wasPresent = prevPresentRef.current; const hasPresentChanged = wasPresent !== present; if (hasPresentChanged) { const prevAnimationName = prevAnimationNameRef.current; const currentAnimationName = getAnimationName(styles); if (present) { send("MOUNT"); } else if (currentAnimationName === "none" || styles?.display === "none") { send("UNMOUNT"); } else { const isAnimating = prevAnimationName !== currentAnimationName; if (wasPresent && isAnimating) { send("ANIMATION_OUT"); } else { send("UNMOUNT"); } } prevPresentRef.current = present; } }, [present, send]); useLayoutEffect23(() => { if (node) { let timeoutId; const ownerWindow = node.ownerDocument.defaultView ?? window; const handleAnimationEnd = (event) => { const currentAnimationName = getAnimationName(stylesRef.current); const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName)); if (event.target === node && isCurrentAnimation) { send("ANIMATION_END"); if (!prevPresentRef.current) { const currentFillMode = node.style.animationFillMode; node.style.animationFillMode = "forwards"; timeoutId = ownerWindow.setTimeout(() => { if (node.style.animationFillMode === "forwards") { node.style.animationFillMode = currentFillMode; } }); } } }; const handleAnimationStart = (event) => { if (event.target === node) { prevAnimationNameRef.current = getAnimationName(stylesRef.current); } }; node.addEventListener("animationstart", handleAnimationStart); node.addEventListener("animationcancel", handleAnimationEnd); node.addEventListener("animationend", handleAnimationEnd); return () => { ownerWindow.clearTimeout(timeoutId); node.removeEventListener("animationstart", handleAnimationStart); node.removeEventListener("animationcancel", handleAnimationEnd); node.removeEventListener("animationend", handleAnimationEnd); }; } else { send("ANIMATION_END"); } }, [node, send]); return { isPresent: ["mounted", "unmountSuspended"].includes(state), ref: React25.useCallback((node2) => { stylesRef.current = node2 ? getComputedStyle(node2) : null; setNode(node2); }, []) }; } function getAnimationName(styles) { return styles?.animationName || "none"; } function getElementRef4(element) { let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; if (mayWarn) { return element.ref; } getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; if (mayWarn) { return element.props.ref; } return element.props.ref || element.ref; } // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.mjs var React28 = __toESM(require_react(), 1); var ReactDOM5 = __toESM(require_react_dom(), 1); // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs var React27 = __toESM(require_react(), 1); var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1); // @__NO_SIDE_EFFECTS__ function createSlot4(ownerName) { const SlotClone = /* @__PURE__ */ createSlotClone4(ownerName); const Slot2 = React27.forwardRef((props, forwardedRef) => { const { children, ...slotProps } = props; const childrenArray = React27.Children.toArray(children); const slottable = childrenArray.find(isSlottable4); if (slottable) { const newElement = slottable.props.children; const newChildren = childrenArray.map((child) => { if (child === slottable) { if (React27.Children.count(newElement) > 1) return React27.Children.only(null); return React27.isValidElement(newElement) ? newElement.props.children : null; } else { return child; } }); return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React27.isValidElement(newElement) ? React27.cloneElement(newElement, void 0, newChildren) : null }); } return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children }); }); Slot2.displayName = `${ownerName}.Slot`; return Slot2; } // @__NO_SIDE_EFFECTS__ function createSlotClone4(ownerName) { const SlotClone = React27.forwardRef((props, forwardedRef) => { const { children, ...slotProps } = props; if (React27.isValidElement(children)) { const childrenRef = getElementRef5(children); const props2 = mergeProps4(slotProps, children.props); if (children.type !== React27.Fragment) { props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef; } return React27.cloneElement(children, props2); } return React27.Children.count(children) > 1 ? React27.Children.only(null) : null; }); SlotClone.displayName = `${ownerName}.SlotClone`; return SlotClone; } var SLOTTABLE_IDENTIFIER4 = /* @__PURE__ */ Symbol("radix.slottable"); function isSlottable4(child) { return React27.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER4; } function mergeProps4(slotProps, childProps) { const overrideProps = { ...childProps }; for (const propName in childProps) { const slotPropValue = slotProps[propName]; const childPropValue = childProps[propName]; const isHandler = /^on[A-Z]/.test(propName); if (isHandler) { if (slotPropValue && childPropValue) { overrideProps[propName] = (...args) => { const result = childPropValue(...args); slotPropValue(...args); return result; }; } else if (slotPropValue) { overrideProps[propName] = slotPropValue; } } else if (propName === "style") { overrideProps[propName] = { ...slotPropValue, ...childPropValue }; } else if (propName === "className") { overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" "); } } return { ...slotProps, ...overrideProps }; } function getElementRef5(element) { let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; if (mayWarn) { return element.ref; } getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; if (mayWarn) { return element.props.ref; } return element.props.ref || element.ref; } // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.mjs var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1); var NODES4 = [ "a", "button", "div", "form", "h2", "h3", "img", "input", "label", "li", "nav", "ol", "p", "select", "span", "svg", "ul" ]; var Primitive4 = NODES4.reduce((primitive, node) => { const Slot2 = createSlot4(`Primitive.${node}`); const Node2 = React28.forwardRef((props, forwardedRef) => { const { asChild, ...primitiveProps } = props; const Comp = asChild ? Slot2 : node; if (typeof window !== "undefined") { window[/* @__PURE__ */ Symbol.for("radix-ui")] = true; } return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Comp, { ...primitiveProps, ref: forwardedRef }); }); Node2.displayName = `Primitive.${node}`; return { ...primitive, [node]: Node2 }; }, {}); // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-guards/dist/index.mjs var React29 = __toESM(require_react(), 1); var count2 = 0; function useFocusGuards() { React29.useEffect(() => { const edgeGuards = document.querySelectorAll("[data-radix-focus-guard]"); document.body.insertAdjacentElement("afterbegin", edgeGuards[0] ?? createFocusGuard()); document.body.insertAdjacentElement("beforeend", edgeGuards[1] ?? createFocusGuard()); count2++; return () => { if (count2 === 1) { document.querySelectorAll("[data-radix-focus-guard]").forEach((node) => node.remove()); } count2--; }; }, []); } function createFocusGuard() { const element = document.createElement("span"); element.setAttribute("data-radix-focus-guard", ""); element.tabIndex = 0; element.style.outline = "none"; element.style.opacity = "0"; element.style.position = "fixed"; element.style.pointerEvents = "none"; return element; } // node_modules/tslib/tslib.es6.mjs var __assign = function() { __assign = Object.assign || function __assign2(t2) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p2 in s) if (Object.prototype.hasOwnProperty.call(s, p2)) t2[p2] = s[p2]; } return t2; }; return __assign.apply(this, arguments); }; function __rest(s, e) { var t2 = {}; for (var p2 in s) if (Object.prototype.hasOwnProperty.call(s, p2) && e.indexOf(p2) < 0) t2[p2] = s[p2]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p2 = Object.getOwnPropertySymbols(s); i < p2.length; i++) { if (e.indexOf(p2[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p2[i])) t2[p2[i]] = s[p2[i]]; } return t2; } function __spreadArray(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); } // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/Combination.js var React36 = __toESM(require_react()); // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/UI.js var React32 = __toESM(require_react()); // node_modules/react-remove-scroll-bar/dist/es2015/constants.js var zeroRightClassName = "right-scroll-bar-position"; var fullWidthClassName = "width-before-scroll-bar"; var noScrollbarsClassName = "with-scroll-bars-hidden"; var removedBarSizeVariable = "--removed-body-scroll-bar-size"; // node_modules/use-callback-ref/dist/es2015/assignRef.js function assignRef(ref, value) { if (typeof ref === "function") { ref(value); } else if (ref) { ref.current = value; } return ref; } // node_modules/use-callback-ref/dist/es2015/useRef.js var import_react = __toESM(require_react()); function useCallbackRef3(initialValue, callback) { var ref = (0, import_react.useState)(function() { return { // value value: initialValue, // last callback callback, // "memoized" public interface facade: { get current() { return ref.value; }, set current(value) { var last = ref.value; if (last !== value) { ref.value = value; ref.callback(value, last); } } } }; })[0]; ref.callback = callback; return ref.facade; } // node_modules/use-callback-ref/dist/es2015/useMergeRef.js var React30 = __toESM(require_react()); var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React30.useLayoutEffect : React30.useEffect; var currentValues = /* @__PURE__ */ new WeakMap(); function useMergeRefs(refs, defaultValue) { var callbackRef = useCallbackRef3(defaultValue || null, function(newValue) { return refs.forEach(function(ref) { return assignRef(ref, newValue); }); }); useIsomorphicLayoutEffect(function() { var oldValue = currentValues.get(callbackRef); if (oldValue) { var prevRefs_1 = new Set(oldValue); var nextRefs_1 = new Set(refs); var current_1 = callbackRef.current; prevRefs_1.forEach(function(ref) { if (!nextRefs_1.has(ref)) { assignRef(ref, null); } }); nextRefs_1.forEach(function(ref) { if (!prevRefs_1.has(ref)) { assignRef(ref, current_1); } }); } currentValues.set(callbackRef, refs); }, [refs]); return callbackRef; } // node_modules/use-sidecar/dist/es2015/medium.js function ItoI(a) { return a; } function innerCreateMedium(defaults, middleware) { if (middleware === void 0) { middleware = ItoI; } var buffer = []; var assigned = false; var medium = { read: function() { if (assigned) { throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`."); } if (buffer.length) { return buffer[buffer.length - 1]; } return defaults; }, useMedium: function(data) { var item = middleware(data, assigned); buffer.push(item); return function() { buffer = buffer.filter(function(x) { return x !== item; }); }; }, assignSyncMedium: function(cb) { assigned = true; while (buffer.length) { var cbs = buffer; buffer = []; cbs.forEach(cb); } buffer = { push: function(x) { return cb(x); }, filter: function() { return buffer; } }; }, assignMedium: function(cb) { assigned = true; var pendingQueue = []; if (buffer.length) { var cbs = buffer; buffer = []; cbs.forEach(cb); pendingQueue = buffer; } var executeQueue = function() { var cbs2 = pendingQueue; pendingQueue = []; cbs2.forEach(cb); }; var cycle = function() { return Promise.resolve().then(executeQueue); }; cycle(); buffer = { push: function(x) { pendingQueue.push(x); cycle(); }, filter: function(filter) { pendingQueue = pendingQueue.filter(filter); return buffer; } }; } }; return medium; } function createSidecarMedium(options) { if (options === void 0) { options = {}; } var medium = innerCreateMedium(null); medium.options = __assign({ async: true, ssr: false }, options); return medium; } // node_modules/use-sidecar/dist/es2015/exports.js var React31 = __toESM(require_react()); var SideCar = function(_a) { var sideCar = _a.sideCar, rest = __rest(_a, ["sideCar"]); if (!sideCar) { throw new Error("Sidecar: please provide `sideCar` property to import the right car"); } var Target = sideCar.read(); if (!Target) { throw new Error("Sidecar medium not found"); } return React31.createElement(Target, __assign({}, rest)); }; SideCar.isSideCarExport = true; function exportSidecar(medium, exported) { medium.useMedium(exported); return SideCar; } // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/medium.js var effectCar = createSidecarMedium(); // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/UI.js var nothing = function() { return; }; var RemoveScroll = React32.forwardRef(function(props, parentRef) { var ref = React32.useRef(null); var _a = React32.useState({ onScrollCapture: nothing, onWheelCapture: nothing, onTouchMoveCapture: nothing }), callbacks = _a[0], setCallbacks = _a[1]; var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noRelative = props.noRelative, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? "div" : _b, gapMode = props.gapMode, rest = __rest(props, ["forwardProps", "children", "className", "removeScrollBar", "enabled", "shards", "sideCar", "noRelative", "noIsolation", "inert", "allowPinchZoom", "as", "gapMode"]); var SideCar2 = sideCar; var containerRef = useMergeRefs([ref, parentRef]); var containerProps = __assign(__assign({}, rest), callbacks); return React32.createElement( React32.Fragment, null, enabled && React32.createElement(SideCar2, { sideCar: effectCar, removeScrollBar, shards, noRelative, noIsolation, inert, setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode }), forwardProps ? React32.cloneElement(React32.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef })) : React32.createElement(Container, __assign({}, containerProps, { className, ref: containerRef }), children) ); }); RemoveScroll.defaultProps = { enabled: true, removeScrollBar: true, inert: false }; RemoveScroll.classNames = { fullWidth: fullWidthClassName, zeroRight: zeroRightClassName }; // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/SideEffect.js var React35 = __toESM(require_react()); // node_modules/react-remove-scroll-bar/dist/es2015/component.js var React34 = __toESM(require_react()); // node_modules/react-style-singleton/dist/es2015/hook.js var React33 = __toESM(require_react()); // node_modules/get-nonce/dist/es2015/index.js var currentNonce; var getNonce = function() { if (currentNonce) { return currentNonce; } if (typeof __webpack_nonce__ !== "undefined") { return __webpack_nonce__; } return void 0; }; // node_modules/react-style-singleton/dist/es2015/singleton.js function makeStyleTag() { if (!document) return null; var tag = document.createElement("style"); tag.type = "text/css"; var nonce = getNonce(); if (nonce) { tag.setAttribute("nonce", nonce); } return tag; } function injectStyles(tag, css) { if (tag.styleSheet) { tag.styleSheet.cssText = css; } else { tag.appendChild(document.createTextNode(css)); } } function insertStyleTag(tag) { var head = document.head || document.getElementsByTagName("head")[0]; head.appendChild(tag); } var stylesheetSingleton = function() { var counter = 0; var stylesheet = null; return { add: function(style) { if (counter == 0) { if (stylesheet = makeStyleTag()) { injectStyles(stylesheet, style); insertStyleTag(stylesheet); } } counter++; }, remove: function() { counter--; if (!counter && stylesheet) { stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet); stylesheet = null; } } }; }; // node_modules/react-style-singleton/dist/es2015/hook.js var styleHookSingleton = function() { var sheet = stylesheetSingleton(); return function(styles, isDynamic) { React33.useEffect(function() { sheet.add(styles); return function() { sheet.remove(); }; }, [styles && isDynamic]); }; }; // node_modules/react-style-singleton/dist/es2015/component.js var styleSingleton = function() { var useStyle = styleHookSingleton(); var Sheet = function(_a) { var styles = _a.styles, dynamic = _a.dynamic; useStyle(styles, dynamic); return null; }; return Sheet; }; // node_modules/react-remove-scroll-bar/dist/es2015/utils.js var zeroGap = { left: 0, top: 0, right: 0, gap: 0 }; var parse = function(x) { return parseInt(x || "", 10) || 0; }; var getOffset = function(gapMode) { var cs = window.getComputedStyle(document.body); var left = cs[gapMode === "padding" ? "paddingLeft" : "marginLeft"]; var top = cs[gapMode === "padding" ? "paddingTop" : "marginTop"]; var right = cs[gapMode === "padding" ? "paddingRight" : "marginRight"]; return [parse(left), parse(top), parse(right)]; }; var getGapWidth = function(gapMode) { if (gapMode === void 0) { gapMode = "margin"; } if (typeof window === "undefined") { return zeroGap; } var offsets = getOffset(gapMode); var documentWidth = document.documentElement.clientWidth; var windowWidth = window.innerWidth; return { left: offsets[0], top: offsets[1], right: offsets[2], gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]) }; }; // node_modules/react-remove-scroll-bar/dist/es2015/component.js var Style = styleSingleton(); var lockAttribute = "data-scroll-locked"; var getStyles = function(_a, allowRelative, gapMode, important) { var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap; if (gapMode === void 0) { gapMode = "margin"; } return "\n .".concat(noScrollbarsClassName, " {\n overflow: hidden ").concat(important, ";\n padding-right: ").concat(gap, "px ").concat(important, ";\n }\n body[").concat(lockAttribute, "] {\n overflow: hidden ").concat(important, ";\n overscroll-behavior: contain;\n ").concat([ allowRelative && "position: relative ".concat(important, ";"), gapMode === "margin" && "\n padding-left: ".concat(left, "px;\n padding-top: ").concat(top, "px;\n padding-right: ").concat(right, "px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(gap, "px ").concat(important, ";\n "), gapMode === "padding" && "padding-right: ".concat(gap, "px ").concat(important, ";") ].filter(Boolean).join(""), "\n }\n \n .").concat(zeroRightClassName, " {\n right: ").concat(gap, "px ").concat(important, ";\n }\n \n .").concat(fullWidthClassName, " {\n margin-right: ").concat(gap, "px ").concat(important, ";\n }\n \n .").concat(zeroRightClassName, " .").concat(zeroRightClassName, " {\n right: 0 ").concat(important, ";\n }\n \n .").concat(fullWidthClassName, " .").concat(fullWidthClassName, " {\n margin-right: 0 ").concat(important, ";\n }\n \n body[").concat(lockAttribute, "] {\n ").concat(removedBarSizeVariable, ": ").concat(gap, "px;\n }\n"); }; var getCurrentUseCounter = function() { var counter = parseInt(document.body.getAttribute(lockAttribute) || "0", 10); return isFinite(counter) ? counter : 0; }; var useLockAttribute = function() { React34.useEffect(function() { document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString()); return function() { var newCounter = getCurrentUseCounter() - 1; if (newCounter <= 0) { document.body.removeAttribute(lockAttribute); } else { document.body.setAttribute(lockAttribute, newCounter.toString()); } }; }, []); }; var RemoveScrollBar = function(_a) { var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? "margin" : _b; useLockAttribute(); var gap = React34.useMemo(function() { return getGapWidth(gapMode); }, [gapMode]); return React34.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? "!important" : "") }); }; // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js var passiveSupported = false; if (typeof window !== "undefined") { try { options = Object.defineProperty({}, "passive", { get: function() { passiveSupported = true; return true; } }); window.addEventListener("test", options, options); window.removeEventListener("test", options, options); } catch (err) { passiveSupported = false; } } var options; var nonPassive = passiveSupported ? { passive: false } : false; // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/handleScroll.js var alwaysContainsScroll = function(node) { return node.tagName === "TEXTAREA"; }; var elementCanBeScrolled = function(node, overflow) { if (!(node instanceof Element)) { return false; } var styles = window.getComputedStyle(node); return ( // not-not-scrollable styles[overflow] !== "hidden" && // contains scroll inside self !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === "visible") ); }; var elementCouldBeVScrolled = function(node) { return elementCanBeScrolled(node, "overflowY"); }; var elementCouldBeHScrolled = function(node) { return elementCanBeScrolled(node, "overflowX"); }; var locationCouldBeScrolled = function(axis, node) { var ownerDocument = node.ownerDocument; var current = node; do { if (typeof ShadowRoot !== "undefined" && current instanceof ShadowRoot) { current = current.host; } var isScrollable = elementCouldBeScrolled(axis, current); if (isScrollable) { var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2]; if (scrollHeight > clientHeight) { return true; } } current = current.parentNode; } while (current && current !== ownerDocument.body); return false; }; var getVScrollVariables = function(_a) { var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight; return [ scrollTop, scrollHeight, clientHeight ]; }; var getHScrollVariables = function(_a) { var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth; return [ scrollLeft, scrollWidth, clientWidth ]; }; var elementCouldBeScrolled = function(axis, node) { return axis === "v" ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node); }; var getScrollVariables = function(axis, node) { return axis === "v" ? getVScrollVariables(node) : getHScrollVariables(node); }; var getDirectionFactor = function(axis, direction) { return axis === "h" && direction === "rtl" ? -1 : 1; }; var handleScroll = function(axis, endTarget, event, sourceDelta, noOverscroll) { var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction); var delta = directionFactor * sourceDelta; var target = event.target; var targetInLock = endTarget.contains(target); var shouldCancelScroll = false; var isDeltaPositive = delta > 0; var availableScroll = 0; var availableScrollTop = 0; do { if (!target) { break; } var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2]; var elementScroll = scroll_1 - capacity - directionFactor * position; if (position || elementScroll) { if (elementCouldBeScrolled(axis, target)) { availableScroll += elementScroll; availableScrollTop += position; } } var parent_1 = target.parentNode; target = parent_1 && parent_1.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? parent_1.host : parent_1; } while ( // portaled content !targetInLock && target !== document.body || // self content targetInLock && (endTarget.contains(target) || endTarget === target) ); if (isDeltaPositive && (noOverscroll && Math.abs(availableScroll) < 1 || !noOverscroll && delta > availableScroll)) { shouldCancelScroll = true; } else if (!isDeltaPositive && (noOverscroll && Math.abs(availableScrollTop) < 1 || !noOverscroll && -delta > availableScrollTop)) { shouldCancelScroll = true; } return shouldCancelScroll; }; // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/SideEffect.js var getTouchXY = function(event) { return "changedTouches" in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0]; }; var getDeltaXY = function(event) { return [event.deltaX, event.deltaY]; }; var extractRef = function(ref) { return ref && "current" in ref ? ref.current : ref; }; var deltaCompare = function(x, y) { return x[0] === y[0] && x[1] === y[1]; }; var generateStyle = function(id) { return "\n .block-interactivity-".concat(id, " {pointer-events: none;}\n .allow-interactivity-").concat(id, " {pointer-events: all;}\n"); }; var idCounter = 0; var lockStack = []; function RemoveScrollSideCar(props) { var shouldPreventQueue = React35.useRef([]); var touchStartRef = React35.useRef([0, 0]); var activeAxis = React35.useRef(); var id = React35.useState(idCounter++)[0]; var Style2 = React35.useState(styleSingleton)[0]; var lastProps = React35.useRef(props); React35.useEffect(function() { lastProps.current = props; }, [props]); React35.useEffect(function() { if (props.inert) { document.body.classList.add("block-interactivity-".concat(id)); var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean); allow_1.forEach(function(el) { return el.classList.add("allow-interactivity-".concat(id)); }); return function() { document.body.classList.remove("block-interactivity-".concat(id)); allow_1.forEach(function(el) { return el.classList.remove("allow-interactivity-".concat(id)); }); }; } return; }, [props.inert, props.lockRef.current, props.shards]); var shouldCancelEvent = React35.useCallback(function(event, parent) { if ("touches" in event && event.touches.length === 2 || event.type === "wheel" && event.ctrlKey) { return !lastProps.current.allowPinchZoom; } var touch = getTouchXY(event); var touchStart = touchStartRef.current; var deltaX = "deltaX" in event ? event.deltaX : touchStart[0] - touch[0]; var deltaY = "deltaY" in event ? event.deltaY : touchStart[1] - touch[1]; var currentAxis; var target = event.target; var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? "h" : "v"; if ("touches" in event && moveDirection === "h" && target.type === "range") { return false; } var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target); if (!canBeScrolledInMainDirection) { return true; } if (canBeScrolledInMainDirection) { currentAxis = moveDirection; } else { currentAxis = moveDirection === "v" ? "h" : "v"; canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target); } if (!canBeScrolledInMainDirection) { return false; } if (!activeAxis.current && "changedTouches" in event && (deltaX || deltaY)) { activeAxis.current = currentAxis; } if (!currentAxis) { return true; } var cancelingAxis = activeAxis.current || currentAxis; return handleScroll(cancelingAxis, parent, event, cancelingAxis === "h" ? deltaX : deltaY, true); }, []); var shouldPrevent = React35.useCallback(function(_event) { var event = _event; if (!lockStack.length || lockStack[lockStack.length - 1] !== Style2) { return; } var delta = "deltaY" in event ? getDeltaXY(event) : getTouchXY(event); var sourceEvent = shouldPreventQueue.current.filter(function(e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0]; if (sourceEvent && sourceEvent.should) { if (event.cancelable) { event.preventDefault(); } return; } if (!sourceEvent) { var shardNodes = (lastProps.current.shards || []).map(extractRef).filter(Boolean).filter(function(node) { return node.contains(event.target); }); var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation; if (shouldStop) { if (event.cancelable) { event.preventDefault(); } } } }, []); var shouldCancel = React35.useCallback(function(name, delta, target, should) { var event = { name, delta, target, should, shadowParent: getOutermostShadowParent(target) }; shouldPreventQueue.current.push(event); setTimeout(function() { shouldPreventQueue.current = shouldPreventQueue.current.filter(function(e) { return e !== event; }); }, 1); }, []); var scrollTouchStart = React35.useCallback(function(event) { touchStartRef.current = getTouchXY(event); activeAxis.current = void 0; }, []); var scrollWheel = React35.useCallback(function(event) { shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current)); }, []); var scrollTouchMove = React35.useCallback(function(event) { shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current)); }, []); React35.useEffect(function() { lockStack.push(Style2); props.setCallbacks({ onScrollCapture: scrollWheel, onWheelCapture: scrollWheel, onTouchMoveCapture: scrollTouchMove }); document.addEventListener("wheel", shouldPrevent, nonPassive); document.addEventListener("touchmove", shouldPrevent, nonPassive); document.addEventListener("touchstart", scrollTouchStart, nonPassive); return function() { lockStack = lockStack.filter(function(inst) { return inst !== Style2; }); document.removeEventListener("wheel", shouldPrevent, nonPassive); document.removeEventListener("touchmove", shouldPrevent, nonPassive); document.removeEventListener("touchstart", scrollTouchStart, nonPassive); }; }, []); var removeScrollBar = props.removeScrollBar, inert = props.inert; return React35.createElement( React35.Fragment, null, inert ? React35.createElement(Style2, { styles: generateStyle(id) }) : null, removeScrollBar ? React35.createElement(RemoveScrollBar, { noRelative: props.noRelative, gapMode: props.gapMode }) : null ); } function getOutermostShadowParent(node) { var shadowParent = null; while (node !== null) { if (node instanceof ShadowRoot) { shadowParent = node.host; node = node.host; } node = node.parentNode; } return shadowParent; } // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/sidecar.js var sidecar_default = exportSidecar(effectCar, RemoveScrollSideCar); // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/Combination.js var ReactRemoveScroll = React36.forwardRef(function(props, ref) { return React36.createElement(RemoveScroll, __assign({}, props, { ref, sideCar: sidecar_default })); }); ReactRemoveScroll.classNames = RemoveScroll.classNames; var Combination_default = ReactRemoveScroll; // node_modules/aria-hidden/dist/es2015/index.js var getDefaultParent = function(originalTarget) { if (typeof document === "undefined") { return null; } var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget; return sampleTarget.ownerDocument.body; }; var counterMap = /* @__PURE__ */ new WeakMap(); var uncontrolledNodes = /* @__PURE__ */ new WeakMap(); var markerMap = {}; var lockCount = 0; var unwrapHost = function(node) { return node && (node.host || unwrapHost(node.parentNode)); }; var correctTargets = function(parent, targets) { return targets.map(function(target) { if (parent.contains(target)) { return target; } var correctedTarget = unwrapHost(target); if (correctedTarget && parent.contains(correctedTarget)) { return correctedTarget; } console.error("aria-hidden", target, "in not contained inside", parent, ". Doing nothing"); return null; }).filter(function(x) { return Boolean(x); }); }; var applyAttributeToOthers = function(originalTarget, parentNode, markerName, controlAttribute) { var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]); if (!markerMap[markerName]) { markerMap[markerName] = /* @__PURE__ */ new WeakMap(); } var markerCounter = markerMap[markerName]; var hiddenNodes = []; var elementsToKeep = /* @__PURE__ */ new Set(); var elementsToStop = new Set(targets); var keep = function(el) { if (!el || elementsToKeep.has(el)) { return; } elementsToKeep.add(el); keep(el.parentNode); }; targets.forEach(keep); var deep = function(parent) { if (!parent || elementsToStop.has(parent)) { return; } Array.prototype.forEach.call(parent.children, function(node) { if (elementsToKeep.has(node)) { deep(node); } else { try { var attr = node.getAttribute(controlAttribute); var alreadyHidden = attr !== null && attr !== "false"; var counterValue = (counterMap.get(node) || 0) + 1; var markerValue = (markerCounter.get(node) || 0) + 1; counterMap.set(node, counterValue); markerCounter.set(node, markerValue); hiddenNodes.push(node); if (counterValue === 1 && alreadyHidden) { uncontrolledNodes.set(node, true); } if (markerValue === 1) { node.setAttribute(markerName, "true"); } if (!alreadyHidden) { node.setAttribute(controlAttribute, "true"); } } catch (e) { console.error("aria-hidden: cannot operate on ", node, e); } } }); }; deep(parentNode); elementsToKeep.clear(); lockCount++; return function() { hiddenNodes.forEach(function(node) { var counterValue = counterMap.get(node) - 1; var markerValue = markerCounter.get(node) - 1; counterMap.set(node, counterValue); markerCounter.set(node, markerValue); if (!counterValue) { if (!uncontrolledNodes.has(node)) { node.removeAttribute(controlAttribute); } uncontrolledNodes.delete(node); } if (!markerValue) { node.removeAttribute(markerName); } }); lockCount--; if (!lockCount) { counterMap = /* @__PURE__ */ new WeakMap(); counterMap = /* @__PURE__ */ new WeakMap(); uncontrolledNodes = /* @__PURE__ */ new WeakMap(); markerMap = {}; } }; }; var hideOthers = function(originalTarget, parentNode, markerName) { if (markerName === void 0) { markerName = "data-aria-hidden"; } var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]); var activeParentNode = parentNode || getDefaultParent(originalTarget); if (!activeParentNode) { return function() { return null; }; } targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll("[aria-live], script"))); return applyAttributeToOthers(targets, activeParentNode, markerName, "aria-hidden"); }; // node_modules/@radix-ui/react-dialog/dist/index.mjs var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1); var DIALOG_NAME = "Dialog"; var [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME); var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME); var Dialog = (props) => { const { __scopeDialog, children, open: openProp, defaultOpen, onOpenChange, modal = true } = props; const triggerRef = React37.useRef(null); const contentRef = React37.useRef(null); const [open, setOpen] = useControllableState({ prop: openProp, defaultProp: defaultOpen ?? false, onChange: onOpenChange, caller: DIALOG_NAME }); return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( DialogProvider, { scope: __scopeDialog, triggerRef, contentRef, contentId: useId(), titleId: useId(), descriptionId: useId(), open, onOpenChange: setOpen, onOpenToggle: React37.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]), modal, children } ); }; Dialog.displayName = DIALOG_NAME; var TRIGGER_NAME = "DialogTrigger"; var DialogTrigger = React37.forwardRef( (props, forwardedRef) => { const { __scopeDialog, ...triggerProps } = props; const context = useDialogContext(TRIGGER_NAME, __scopeDialog); const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef); return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( Primitive4.button, { type: "button", "aria-haspopup": "dialog", "aria-expanded": context.open, "aria-controls": context.contentId, "data-state": getState(context.open), ...triggerProps, ref: composedTriggerRef, onClick: composeEventHandlers(props.onClick, context.onOpenToggle) } ); } ); DialogTrigger.displayName = TRIGGER_NAME; var PORTAL_NAME2 = "DialogPortal"; var [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME2, { forceMount: void 0 }); var DialogPortal = (props) => { const { __scopeDialog, forceMount, children, container } = props; const context = useDialogContext(PORTAL_NAME2, __scopeDialog); return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(PortalProvider, { scope: __scopeDialog, forceMount, children: React37.Children.map(children, (child) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Portal, { asChild: true, container, children: child }) })) }); }; DialogPortal.displayName = PORTAL_NAME2; var OVERLAY_NAME = "DialogOverlay"; var DialogOverlay = React37.forwardRef( (props, forwardedRef) => { const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog); const { forceMount = portalContext.forceMount, ...overlayProps } = props; const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog); return context.modal ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null; } ); DialogOverlay.displayName = OVERLAY_NAME; var Slot = createSlot4("DialogOverlay.RemoveScroll"); var DialogOverlayImpl = React37.forwardRef( (props, forwardedRef) => { const { __scopeDialog, ...overlayProps } = props; const context = useDialogContext(OVERLAY_NAME, __scopeDialog); return ( // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll` // ie. when `Overlay` and `Content` are siblings /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Combination_default, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( Primitive4.div, { "data-state": getState(context.open), ...overlayProps, ref: forwardedRef, style: { pointerEvents: "auto", ...overlayProps.style } } ) }) ); } ); var CONTENT_NAME = "DialogContent"; var DialogContent = React37.forwardRef( (props, forwardedRef) => { const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog); const { forceMount = portalContext.forceMount, ...contentProps } = props; const context = useDialogContext(CONTENT_NAME, props.__scopeDialog); return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) }); } ); DialogContent.displayName = CONTENT_NAME; var DialogContentModal = React37.forwardRef( (props, forwardedRef) => { const context = useDialogContext(CONTENT_NAME, props.__scopeDialog); const contentRef = React37.useRef(null); const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef); React37.useEffect(() => { const content = contentRef.current; if (content) return hideOthers(content); }, []); return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( DialogContentImpl, { ...props, ref: composedRefs, trapFocus: context.open, disableOutsidePointerEvents: true, onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => { event.preventDefault(); context.triggerRef.current?.focus(); }), onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => { const originalEvent = event.detail.originalEvent; const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true; const isRightClick = originalEvent.button === 2 || ctrlLeftClick; if (isRightClick) event.preventDefault(); }), onFocusOutside: composeEventHandlers( props.onFocusOutside, (event) => event.preventDefault() ) } ); } ); var DialogContentNonModal = React37.forwardRef( (props, forwardedRef) => { const context = useDialogContext(CONTENT_NAME, props.__scopeDialog); const hasInteractedOutsideRef = React37.useRef(false); const hasPointerDownOutsideRef = React37.useRef(false); return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( DialogContentImpl, { ...props, ref: forwardedRef, trapFocus: false, disableOutsidePointerEvents: false, onCloseAutoFocus: (event) => { props.onCloseAutoFocus?.(event); if (!event.defaultPrevented) { if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus(); event.preventDefault(); } hasInteractedOutsideRef.current = false; hasPointerDownOutsideRef.current = false; }, onInteractOutside: (event) => { props.onInteractOutside?.(event); if (!event.defaultPrevented) { hasInteractedOutsideRef.current = true; if (event.detail.originalEvent.type === "pointerdown") { hasPointerDownOutsideRef.current = true; } } const target = event.target; const targetIsTrigger = context.triggerRef.current?.contains(target); if (targetIsTrigger) event.preventDefault(); if (event.detail.originalEvent.type === "focusin" && hasPointerDownOutsideRef.current) { event.preventDefault(); } } } ); } ); var DialogContentImpl = React37.forwardRef( (props, forwardedRef) => { const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props; const context = useDialogContext(CONTENT_NAME, __scopeDialog); const contentRef = React37.useRef(null); const composedRefs = useComposedRefs(forwardedRef, contentRef); useFocusGuards(); return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( FocusScope, { asChild: true, loop: true, trapped: trapFocus, onMountAutoFocus: onOpenAutoFocus, onUnmountAutoFocus: onCloseAutoFocus, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( DismissableLayer, { role: "dialog", id: context.contentId, "aria-describedby": context.descriptionId, "aria-labelledby": context.titleId, "data-state": getState(context.open), ...contentProps, ref: composedRefs, onDismiss: () => context.onOpenChange(false) } ) } ), /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(TitleWarning, { titleId: context.titleId }), /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DescriptionWarning, { contentRef, descriptionId: context.descriptionId }) ] }) ] }); } ); var TITLE_NAME = "DialogTitle"; var DialogTitle = React37.forwardRef( (props, forwardedRef) => { const { __scopeDialog, ...titleProps } = props; const context = useDialogContext(TITLE_NAME, __scopeDialog); return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Primitive4.h2, { id: context.titleId, ...titleProps, ref: forwardedRef }); } ); DialogTitle.displayName = TITLE_NAME; var DESCRIPTION_NAME = "DialogDescription"; var DialogDescription = React37.forwardRef( (props, forwardedRef) => { const { __scopeDialog, ...descriptionProps } = props; const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog); return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Primitive4.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef }); } ); DialogDescription.displayName = DESCRIPTION_NAME; var CLOSE_NAME = "DialogClose"; var DialogClose = React37.forwardRef( (props, forwardedRef) => { const { __scopeDialog, ...closeProps } = props; const context = useDialogContext(CLOSE_NAME, __scopeDialog); return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( Primitive4.button, { type: "button", ...closeProps, ref: forwardedRef, onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false)) } ); } ); DialogClose.displayName = CLOSE_NAME; function getState(open) { return open ? "open" : "closed"; } var TITLE_WARNING_NAME = "DialogTitleWarning"; var [WarningProvider, useWarningContext] = createContext2(TITLE_WARNING_NAME, { contentName: CONTENT_NAME, titleName: TITLE_NAME, docsSlug: "dialog" }); var TitleWarning = ({ titleId }) => { const titleWarningContext = useWarningContext(TITLE_WARNING_NAME); const MESSAGE = `\`${titleWarningContext.contentName}\` requires a \`${titleWarningContext.titleName}\` for the component to be accessible for screen reader users. If you want to hide the \`${titleWarningContext.titleName}\`, you can wrap it with our VisuallyHidden component. For more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`; React37.useEffect(() => { if (titleId) { const hasTitle = document.getElementById(titleId); if (!hasTitle) console.error(MESSAGE); } }, [MESSAGE, titleId]); return null; }; var DESCRIPTION_WARNING_NAME = "DialogDescriptionWarning"; var DescriptionWarning = ({ contentRef, descriptionId }) => { const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME); const MESSAGE = `Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${descriptionWarningContext.contentName}}.`; React37.useEffect(() => { const describedById = contentRef.current?.getAttribute("aria-describedby"); if (descriptionId && describedById) { const hasDescription = document.getElementById(descriptionId); if (!hasDescription) console.warn(MESSAGE); } }, [MESSAGE, contentRef, descriptionId]); return null; }; var Root = Dialog; var Portal2 = DialogPortal; var Overlay = DialogOverlay; var Content = DialogContent; // node_modules/cmdk/dist/index.mjs var t = __toESM(require_react(), 1); // node_modules/cmdk/node_modules/@radix-ui/react-primitive/dist/index.mjs var React40 = __toESM(require_react(), 1); var ReactDOM6 = __toESM(require_react_dom(), 1); // node_modules/cmdk/node_modules/@radix-ui/react-slot/dist/index.mjs var React39 = __toESM(require_react(), 1); // node_modules/cmdk/node_modules/@radix-ui/react-compose-refs/dist/index.mjs var React38 = __toESM(require_react(), 1); function setRef6(ref, value) { if (typeof ref === "function") { return ref(value); } else if (ref !== null && ref !== void 0) { ref.current = value; } } function composeRefs6(...refs) { return (node) => { let hasCleanup = false; const cleanups = refs.map((ref) => { const cleanup = setRef6(ref, node); if (!hasCleanup && typeof cleanup == "function") { hasCleanup = true; } return cleanup; }); if (hasCleanup) { return () => { for (let i = 0; i < cleanups.length; i++) { const cleanup = cleanups[i]; if (typeof cleanup == "function") { cleanup(); } else { setRef6(refs[i], null); } } }; } }; } // node_modules/cmdk/node_modules/@radix-ui/react-slot/dist/index.mjs var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1); var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy"); var use = React39[" use ".trim().toString()]; function isPromiseLike(value) { return typeof value === "object" && value !== null && "then" in value; } function isLazyComponent(element) { return element != null && typeof element === "object" && "$$typeof" in element && element.$$typeof === REACT_LAZY_TYPE && "_payload" in element && isPromiseLike(element._payload); } // @__NO_SIDE_EFFECTS__ function createSlot5(ownerName) { const SlotClone = /* @__PURE__ */ createSlotClone5(ownerName); const Slot2 = React39.forwardRef((props, forwardedRef) => { let { children, ...slotProps } = props; if (isLazyComponent(children) && typeof use === "function") { children = use(children._payload); } const childrenArray = React39.Children.toArray(children); const slottable = childrenArray.find(isSlottable5); if (slottable) { const newElement = slottable.props.children; const newChildren = childrenArray.map((child) => { if (child === slottable) { if (React39.Children.count(newElement) > 1) return React39.Children.only(null); return React39.isValidElement(newElement) ? newElement.props.children : null; } else { return child; } }); return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React39.isValidElement(newElement) ? React39.cloneElement(newElement, void 0, newChildren) : null }); } return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children }); }); Slot2.displayName = `${ownerName}.Slot`; return Slot2; } // @__NO_SIDE_EFFECTS__ function createSlotClone5(ownerName) { const SlotClone = React39.forwardRef((props, forwardedRef) => { let { children, ...slotProps } = props; if (isLazyComponent(children) && typeof use === "function") { children = use(children._payload); } if (React39.isValidElement(children)) { const childrenRef = getElementRef6(children); const props2 = mergeProps5(slotProps, children.props); if (children.type !== React39.Fragment) { props2.ref = forwardedRef ? composeRefs6(forwardedRef, childrenRef) : childrenRef; } return React39.cloneElement(children, props2); } return React39.Children.count(children) > 1 ? React39.Children.only(null) : null; }); SlotClone.displayName = `${ownerName}.SlotClone`; return SlotClone; } var SLOTTABLE_IDENTIFIER5 = /* @__PURE__ */ Symbol("radix.slottable"); function isSlottable5(child) { return React39.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER5; } function mergeProps5(slotProps, childProps) { const overrideProps = { ...childProps }; for (const propName in childProps) { const slotPropValue = slotProps[propName]; const childPropValue = childProps[propName]; const isHandler = /^on[A-Z]/.test(propName); if (isHandler) { if (slotPropValue && childPropValue) { overrideProps[propName] = (...args) => { const result = childPropValue(...args); slotPropValue(...args); return result; }; } else if (slotPropValue) { overrideProps[propName] = slotPropValue; } } else if (propName === "style") { overrideProps[propName] = { ...slotPropValue, ...childPropValue }; } else if (propName === "className") { overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" "); } } return { ...slotProps, ...overrideProps }; } function getElementRef6(element) { let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; if (mayWarn) { return element.ref; } getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; if (mayWarn) { return element.props.ref; } return element.props.ref || element.ref; } // node_modules/cmdk/node_modules/@radix-ui/react-primitive/dist/index.mjs var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1); var NODES5 = [ "a", "button", "div", "form", "h2", "h3", "img", "input", "label", "li", "nav", "ol", "p", "select", "span", "svg", "ul" ]; var Primitive5 = NODES5.reduce((primitive, node) => { const Slot2 = createSlot5(`Primitive.${node}`); const Node2 = React40.forwardRef((props, forwardedRef) => { const { asChild, ...primitiveProps } = props; const Comp = asChild ? Slot2 : node; if (typeof window !== "undefined") { window[/* @__PURE__ */ Symbol.for("radix-ui")] = true; } return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Comp, { ...primitiveProps, ref: forwardedRef }); }); Node2.displayName = `Primitive.${node}`; return { ...primitive, [node]: Node2 }; }, {}); // node_modules/cmdk/node_modules/@radix-ui/react-id/dist/index.mjs var React42 = __toESM(require_react(), 1); // node_modules/cmdk/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs var React41 = __toESM(require_react(), 1); var useLayoutEffect24 = globalThis?.document ? React41.useLayoutEffect : () => { }; // node_modules/cmdk/node_modules/@radix-ui/react-id/dist/index.mjs var useReactId2 = React42[" useId ".trim().toString()] || (() => void 0); var count3 = 0; function useId2(deterministicId) { const [id, setId] = React42.useState(useReactId2()); useLayoutEffect24(() => { if (!deterministicId) setId((reactId) => reactId ?? String(count3++)); }, [deterministicId]); return deterministicId || (id ? `radix-${id}` : ""); } // node_modules/cmdk/dist/index.mjs var N = '[cmdk-group=""]'; var Y2 = '[cmdk-group-items=""]'; var be = '[cmdk-group-heading=""]'; var le = '[cmdk-item=""]'; var ce = `${le}:not([aria-disabled="true"])`; var Z = "cmdk-item-select"; var T = "data-value"; var Re = (r, o, n) => W(r, o, n); var ue = t.createContext(void 0); var K2 = () => t.useContext(ue); var de = t.createContext(void 0); var ee = () => t.useContext(de); var fe = t.createContext(void 0); var me = t.forwardRef((r, o) => { let n = L(() => { var e, a; return { search: "", value: (a = (e = r.value) != null ? e : r.defaultValue) != null ? a : "", selectedItemId: void 0, filtered: { count: 0, items: /* @__PURE__ */ new Map(), groups: /* @__PURE__ */ new Set() } }; }), u2 = L(() => /* @__PURE__ */ new Set()), c = L(() => /* @__PURE__ */ new Map()), d = L(() => /* @__PURE__ */ new Map()), f = L(() => /* @__PURE__ */ new Set()), p2 = pe(r), { label: b, children: m2, value: R, onValueChange: x, filter: C, shouldFilter: S, loop: A, disablePointerSelection: ge = false, vimBindings: j = true, ...O } = r, $2 = useId2(), q = useId2(), _ = useId2(), I = t.useRef(null), v = ke(); k2(() => { if (R !== void 0) { let e = R.trim(); n.current.value = e, E.emit(); } }, [R]), k2(() => { v(6, ne); }, []); let E = t.useMemo(() => ({ subscribe: (e) => (f.current.add(e), () => f.current.delete(e)), snapshot: () => n.current, setState: (e, a, s) => { var i, l, g, y; if (!Object.is(n.current[e], a)) { if (n.current[e] = a, e === "search") J2(), z(), v(1, W2); else if (e === "value") { if (document.activeElement.hasAttribute("cmdk-input") || document.activeElement.hasAttribute("cmdk-root")) { let h = document.getElementById(_); h ? h.focus() : (i = document.getElementById($2)) == null || i.focus(); } if (v(7, () => { var h; n.current.selectedItemId = (h = M()) == null ? void 0 : h.id, E.emit(); }), s || v(5, ne), ((l = p2.current) == null ? void 0 : l.value) !== void 0) { let h = a != null ? a : ""; (y = (g = p2.current).onValueChange) == null || y.call(g, h); return; } } E.emit(); } }, emit: () => { f.current.forEach((e) => e()); } }), []), U2 = t.useMemo(() => ({ value: (e, a, s) => { var i; a !== ((i = d.current.get(e)) == null ? void 0 : i.value) && (d.current.set(e, { value: a, keywords: s }), n.current.filtered.items.set(e, te(a, s)), v(2, () => { z(), E.emit(); })); }, item: (e, a) => (u2.current.add(e), a && (c.current.has(a) ? c.current.get(a).add(e) : c.current.set(a, /* @__PURE__ */ new Set([e]))), v(3, () => { J2(), z(), n.current.value || W2(), E.emit(); }), () => { d.current.delete(e), u2.current.delete(e), n.current.filtered.items.delete(e); let s = M(); v(4, () => { J2(), (s == null ? void 0 : s.getAttribute("id")) === e && W2(), E.emit(); }); }), group: (e) => (c.current.has(e) || c.current.set(e, /* @__PURE__ */ new Set()), () => { d.current.delete(e), c.current.delete(e); }), filter: () => p2.current.shouldFilter, label: b || r["aria-label"], getDisablePointerSelection: () => p2.current.disablePointerSelection, listId: $2, inputId: _, labelId: q, listInnerRef: I }), []); function te(e, a) { var i, l; let s = (l = (i = p2.current) == null ? void 0 : i.filter) != null ? l : Re; return e ? s(e, n.current.search, a) : 0; } function z() { if (!n.current.search || p2.current.shouldFilter === false) return; let e = n.current.filtered.items, a = []; n.current.filtered.groups.forEach((i) => { let l = c.current.get(i), g = 0; l.forEach((y) => { let h = e.get(y); g = Math.max(h, g); }), a.push([i, g]); }); let s = I.current; V().sort((i, l) => { var h, F; let g = i.getAttribute("id"), y = l.getAttribute("id"); return ((h = e.get(y)) != null ? h : 0) - ((F = e.get(g)) != null ? F : 0); }).forEach((i) => { let l = i.closest(Y2); l ? l.appendChild(i.parentElement === l ? i : i.closest(`${Y2} > *`)) : s.appendChild(i.parentElement === s ? i : i.closest(`${Y2} > *`)); }), a.sort((i, l) => l[1] - i[1]).forEach((i) => { var g; let l = (g = I.current) == null ? void 0 : g.querySelector(`${N}[${T}="${encodeURIComponent(i[0])}"]`); l == null || l.parentElement.appendChild(l); }); } function W2() { let e = V().find((s) => s.getAttribute("aria-disabled") !== "true"), a = e == null ? void 0 : e.getAttribute(T); E.setState("value", a || void 0); } function J2() { var a, s, i, l; if (!n.current.search || p2.current.shouldFilter === false) { n.current.filtered.count = u2.current.size; return; } n.current.filtered.groups = /* @__PURE__ */ new Set(); let e = 0; for (let g of u2.current) { let y = (s = (a = d.current.get(g)) == null ? void 0 : a.value) != null ? s : "", h = (l = (i = d.current.get(g)) == null ? void 0 : i.keywords) != null ? l : [], F = te(y, h); n.current.filtered.items.set(g, F), F > 0 && e++; } for (let [g, y] of c.current) for (let h of y) if (n.current.filtered.items.get(h) > 0) { n.current.filtered.groups.add(g); break; } n.current.filtered.count = e; } function ne() { var a, s, i; let e = M(); e && (((a = e.parentElement) == null ? void 0 : a.firstChild) === e && ((i = (s = e.closest(N)) == null ? void 0 : s.querySelector(be)) == null || i.scrollIntoView({ block: "nearest" })), e.scrollIntoView({ block: "nearest" })); } function M() { var e; return (e = I.current) == null ? void 0 : e.querySelector(`${le}[aria-selected="true"]`); } function V() { var e; return Array.from(((e = I.current) == null ? void 0 : e.querySelectorAll(ce)) || []); } function X2(e) { let s = V()[e]; s && E.setState("value", s.getAttribute(T)); } function Q(e) { var g; let a = M(), s = V(), i = s.findIndex((y) => y === a), l = s[i + e]; (g = p2.current) != null && g.loop && (l = i + e < 0 ? s[s.length - 1] : i + e === s.length ? s[0] : s[i + e]), l && E.setState("value", l.getAttribute(T)); } function re(e) { let a = M(), s = a == null ? void 0 : a.closest(N), i; for (; s && !i; ) s = e > 0 ? we(s, N) : De(s, N), i = s == null ? void 0 : s.querySelector(ce); i ? E.setState("value", i.getAttribute(T)) : Q(e); } let oe = () => X2(V().length - 1), ie = (e) => { e.preventDefault(), e.metaKey ? oe() : e.altKey ? re(1) : Q(1); }, se = (e) => { e.preventDefault(), e.metaKey ? X2(0) : e.altKey ? re(-1) : Q(-1); }; return t.createElement(Primitive5.div, { ref: o, tabIndex: -1, ...O, "cmdk-root": "", onKeyDown: (e) => { var s; (s = O.onKeyDown) == null || s.call(O, e); let a = e.nativeEvent.isComposing || e.keyCode === 229; if (!(e.defaultPrevented || a)) switch (e.key) { case "n": case "j": { j && e.ctrlKey && ie(e); break; } case "ArrowDown": { ie(e); break; } case "p": case "k": { j && e.ctrlKey && se(e); break; } case "ArrowUp": { se(e); break; } case "Home": { e.preventDefault(), X2(0); break; } case "End": { e.preventDefault(), oe(); break; } case "Enter": { e.preventDefault(); let i = M(); if (i) { let l = new Event(Z); i.dispatchEvent(l); } } } } }, t.createElement("label", { "cmdk-label": "", htmlFor: U2.inputId, id: U2.labelId, style: Te }, b), B2(r, (e) => t.createElement(de.Provider, { value: E }, t.createElement(ue.Provider, { value: U2 }, e)))); }); var he = t.forwardRef((r, o) => { var _, I; let n = useId2(), u2 = t.useRef(null), c = t.useContext(fe), d = K2(), f = pe(r), p2 = (I = (_ = f.current) == null ? void 0 : _.forceMount) != null ? I : c == null ? void 0 : c.forceMount; k2(() => { if (!p2) return d.item(n, c == null ? void 0 : c.id); }, [p2]); let b = ve(n, u2, [r.value, r.children, u2], r.keywords), m2 = ee(), R = P((v) => v.value && v.value === b.current), x = P((v) => p2 || d.filter() === false ? true : v.search ? v.filtered.items.get(n) > 0 : true); t.useEffect(() => { let v = u2.current; if (!(!v || r.disabled)) return v.addEventListener(Z, C), () => v.removeEventListener(Z, C); }, [x, r.onSelect, r.disabled]); function C() { var v, E; S(), (E = (v = f.current).onSelect) == null || E.call(v, b.current); } function S() { m2.setState("value", b.current, true); } if (!x) return null; let { disabled: A, value: ge, onSelect: j, forceMount: O, keywords: $2, ...q } = r; return t.createElement(Primitive5.div, { ref: composeRefs6(u2, o), ...q, id: n, "cmdk-item": "", role: "option", "aria-disabled": !!A, "aria-selected": !!R, "data-disabled": !!A, "data-selected": !!R, onPointerMove: A || d.getDisablePointerSelection() ? void 0 : S, onClick: A ? void 0 : C }, r.children); }); var Ee = t.forwardRef((r, o) => { let { heading: n, children: u2, forceMount: c, ...d } = r, f = useId2(), p2 = t.useRef(null), b = t.useRef(null), m2 = useId2(), R = K2(), x = P((S) => c || R.filter() === false ? true : S.search ? S.filtered.groups.has(f) : true); k2(() => R.group(f), []), ve(f, p2, [r.value, r.heading, b]); let C = t.useMemo(() => ({ id: f, forceMount: c }), [c]); return t.createElement(Primitive5.div, { ref: composeRefs6(p2, o), ...d, "cmdk-group": "", role: "presentation", hidden: x ? void 0 : true }, n && t.createElement("div", { ref: b, "cmdk-group-heading": "", "aria-hidden": true, id: m2 }, n), B2(r, (S) => t.createElement("div", { "cmdk-group-items": "", role: "group", "aria-labelledby": n ? m2 : void 0 }, t.createElement(fe.Provider, { value: C }, S)))); }); var ye = t.forwardRef((r, o) => { let { alwaysRender: n, ...u2 } = r, c = t.useRef(null), d = P((f) => !f.search); return !n && !d ? null : t.createElement(Primitive5.div, { ref: composeRefs6(c, o), ...u2, "cmdk-separator": "", role: "separator" }); }); var Se = t.forwardRef((r, o) => { let { onValueChange: n, ...u2 } = r, c = r.value != null, d = ee(), f = P((m2) => m2.search), p2 = P((m2) => m2.selectedItemId), b = K2(); return t.useEffect(() => { r.value != null && d.setState("search", r.value); }, [r.value]), t.createElement(Primitive5.input, { ref: o, ...u2, "cmdk-input": "", autoComplete: "off", autoCorrect: "off", spellCheck: false, "aria-autocomplete": "list", role: "combobox", "aria-expanded": true, "aria-controls": b.listId, "aria-labelledby": b.labelId, "aria-activedescendant": p2, id: b.inputId, type: "text", value: c ? r.value : f, onChange: (m2) => { c || d.setState("search", m2.target.value), n == null || n(m2.target.value); } }); }); var Ce = t.forwardRef((r, o) => { let { children: n, label: u2 = "Suggestions", ...c } = r, d = t.useRef(null), f = t.useRef(null), p2 = P((m2) => m2.selectedItemId), b = K2(); return t.useEffect(() => { if (f.current && d.current) { let m2 = f.current, R = d.current, x, C = new ResizeObserver(() => { x = requestAnimationFrame(() => { let S = m2.offsetHeight; R.style.setProperty("--cmdk-list-height", S.toFixed(1) + "px"); }); }); return C.observe(m2), () => { cancelAnimationFrame(x), C.unobserve(m2); }; } }, []), t.createElement(Primitive5.div, { ref: composeRefs6(d, o), ...c, "cmdk-list": "", role: "listbox", tabIndex: -1, "aria-activedescendant": p2, "aria-label": u2, id: b.listId }, B2(r, (m2) => t.createElement("div", { ref: composeRefs6(f, b.listInnerRef), "cmdk-list-sizer": "" }, m2))); }); var xe = t.forwardRef((r, o) => { let { open: n, onOpenChange: u2, overlayClassName: c, contentClassName: d, container: f, ...p2 } = r; return t.createElement(Root, { open: n, onOpenChange: u2 }, t.createElement(Portal2, { container: f }, t.createElement(Overlay, { "cmdk-overlay": "", className: c }), t.createElement(Content, { "aria-label": r.label, "cmdk-dialog": "", className: d }, t.createElement(me, { ref: o, ...p2 })))); }); var Ie = t.forwardRef((r, o) => P((u2) => u2.filtered.count === 0) ? t.createElement(Primitive5.div, { ref: o, ...r, "cmdk-empty": "", role: "presentation" }) : null); var Pe = t.forwardRef((r, o) => { let { progress: n, children: u2, label: c = "Loading...", ...d } = r; return t.createElement(Primitive5.div, { ref: o, ...d, "cmdk-loading": "", role: "progressbar", "aria-valuenow": n, "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": c }, B2(r, (f) => t.createElement("div", { "aria-hidden": true }, f))); }); var _e = Object.assign(me, { List: Ce, Item: he, Input: Se, Group: Ee, Separator: ye, Dialog: xe, Empty: Ie, Loading: Pe }); function we(r, o) { let n = r.nextElementSibling; for (; n; ) { if (n.matches(o)) return n; n = n.nextElementSibling; } } function De(r, o) { let n = r.previousElementSibling; for (; n; ) { if (n.matches(o)) return n; n = n.previousElementSibling; } } function pe(r) { let o = t.useRef(r); return k2(() => { o.current = r; }), o; } var k2 = typeof window == "undefined" ? t.useEffect : t.useLayoutEffect; function L(r) { let o = t.useRef(); return o.current === void 0 && (o.current = r()), o; } function P(r) { let o = ee(), n = () => r(o.snapshot()); return t.useSyncExternalStore(o.subscribe, n, n); } function ve(r, o, n, u2 = []) { let c = t.useRef(), d = K2(); return k2(() => { var b; let f = (() => { var m2; for (let R of n) { if (typeof R == "string") return R.trim(); if (typeof R == "object" && "current" in R) return R.current ? (m2 = R.current.textContent) == null ? void 0 : m2.trim() : c.current; } })(), p2 = u2.map((m2) => m2.trim()); d.value(r, f, p2), (b = o.current) == null || b.setAttribute(T, f), c.current = f; }), c; } var ke = () => { let [r, o] = t.useState(), n = L(() => /* @__PURE__ */ new Map()); return k2(() => { n.current.forEach((u2) => u2()), n.current = /* @__PURE__ */ new Map(); }, [r]), (u2, c) => { n.current.set(u2, c), o({}); }; }; function Me(r) { let o = r.type; return typeof o == "function" ? o(r.props) : "render" in o ? o.render(r.props) : r; } function B2({ asChild: r, children: o }, n) { return r && t.isValidElement(o) ? t.cloneElement(Me(o), { ref: o.ref }, n(o.props.children)) : n(o); } var Te = { position: "absolute", width: "1px", height: "1px", padding: "0", margin: "-1px", overflow: "hidden", clip: "rect(0, 0, 0, 0)", whiteSpace: "nowrap", borderWidth: "0" }; // packages/workflow/build-module/components/workflow-menu.mjs var import_data = __toESM(require_data(), 1); var import_element2 = __toESM(require_element(), 1); var import_i18n = __toESM(require_i18n(), 1); var import_components = __toESM(require_components(), 1); var import_keyboard_shortcuts = __toESM(require_keyboard_shortcuts(), 1); // packages/icons/build-module/icon/index.mjs var import_element = __toESM(require_element(), 1); var icon_default = (0, import_element.forwardRef)( ({ icon, size = 24, ...props }, ref) => { return (0, import_element.cloneElement)(icon, { width: size, height: size, ...props, ref }); } ); // packages/icons/build-module/library/search.mjs var import_primitives = __toESM(require_primitives(), 1); var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1); var search_default = /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_primitives.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" }) }); // packages/workflow/build-module/components/workflow-menu.mjs import { executeAbility, store as abilitiesStore } from "@wordpress/abilities"; // packages/workflow/build-module/lock-unlock.mjs var import_private_apis = __toESM(require_private_apis(), 1); var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)( "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.", "@wordpress/workflows" ); // packages/workflow/build-module/components/workflow-menu.mjs var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1); if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='cbad731ae6']")) { const style = document.createElement("style"); style.setAttribute("data-wp-hash", "cbad731ae6"); style.appendChild(document.createTextNode(":root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.workflows-workflow-menu{border-radius:4px;margin:auto;max-width:400px;position:relative;top:calc(5% + 64px);width:calc(100% - 32px)}@media (min-width:600px){.workflows-workflow-menu{top:calc(10% + 64px)}}.workflows-workflow-menu .components-modal__content{margin:0;padding:0}.workflows-workflow-menu__overlay{align-items:start;display:block}.workflows-workflow-menu__header{padding:0 16px}.workflows-workflow-menu__header-search-icon:dir(ltr){transform:scaleX(-1)}.workflows-workflow-menu__container{will-change:transform}.workflows-workflow-menu__container:focus{outline:none}.workflows-workflow-menu__container [cmdk-input]{border:none;border-radius:0;color:#1e1e1e;font-size:15px;line-height:28px;margin:0;outline:none;padding:16px 4px;width:100%}.workflows-workflow-menu__container [cmdk-input]::placeholder{color:#757575}.workflows-workflow-menu__container [cmdk-input]:focus{box-shadow:none;outline:none}.workflows-workflow-menu__container [cmdk-item]{align-items:center;border-radius:2px;color:#1e1e1e;cursor:pointer;display:flex;font-size:13px}.workflows-workflow-menu__container [cmdk-item]:active,.workflows-workflow-menu__container [cmdk-item][aria-selected=true]{background:var(--wp-admin-theme-color);color:#fff}.workflows-workflow-menu__container [cmdk-item][aria-disabled=true]{color:#949494;cursor:not-allowed}.workflows-workflow-menu__container [cmdk-item]>div{min-height:40px;padding:4px 4px 4px 16px}.workflows-workflow-menu__container [cmdk-root]>[cmdk-list]{max-height:368px;overflow:auto}.workflows-workflow-menu__container [cmdk-root]>[cmdk-list] [cmdk-list-sizer]>[cmdk-group]:last-child [cmdk-group-items]:not(:empty){padding-bottom:8px}.workflows-workflow-menu__container [cmdk-root]>[cmdk-list] [cmdk-list-sizer]>[cmdk-group]>[cmdk-group-items]:not(:empty){padding:0 8px}.workflows-workflow-menu__container [cmdk-empty]{align-items:center;color:#1e1e1e;display:flex;justify-content:center;padding:8px 0 32px;white-space:pre-wrap}.workflows-workflow-menu__container [cmdk-loading]{padding:16px}.workflows-workflow-menu__container [cmdk-list-sizer]{position:relative}.workflows-workflow-menu__item span{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workflows-workflow-menu__item mark{background:unset;color:inherit;font-weight:600}.workflows-workflow-menu__output{padding:16px}.workflows-workflow-menu__output-header{border-bottom:1px solid #ddd;margin-bottom:16px;padding-bottom:8px}.workflows-workflow-menu__output-header h3{color:#1e1e1e;font-size:16px;font-weight:600;margin:0 0 4px}.workflows-workflow-menu__output-hint{color:#757575;font-size:12px;margin:0}.workflows-workflow-menu__output-content{max-height:400px;overflow:auto}.workflows-workflow-menu__output-content pre{background:#f0f0f0;border-radius:2px;color:#1e1e1e;font-size:12px;line-height:1.5;margin:0;padding:12px;white-space:pre-wrap;word-break:break-word}.workflows-workflow-menu__output-error{background:#e0e0e0;border:1px solid #9e1313;border-radius:2px;color:#cc1818;padding:12px}.workflows-workflow-menu__output-error p{font-size:13px;margin:0}.workflows-workflow-menu__executing{color:#757575;font-size:14px;padding:24px 16px}")); document.head.appendChild(style); } var { withIgnoreIMEEvents } = unlock(import_components.privateApis); var EMPTY_ARRAY = []; var inputLabel = (0, import_i18n.__)("Run abilities and workflows"); function WorkflowInput({ isOpen, search, setSearch, abilities }) { const workflowMenuInput = (0, import_element2.useRef)(); const _value = P((state) => state.value); const selectedItemId = (0, import_element2.useMemo)(() => { const ability = abilities.find((a) => a.label === _value); return ability?.name; }, [_value, abilities]); (0, import_element2.useEffect)(() => { if (isOpen) { workflowMenuInput.current.focus(); } }, [isOpen]); return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( _e.Input, { ref: workflowMenuInput, value: search, onValueChange: setSearch, placeholder: inputLabel, "aria-activedescendant": selectedItemId } ); } function WorkflowMenu() { const { registerShortcut } = (0, import_data.useDispatch)(import_keyboard_shortcuts.store); const [search, setSearch] = (0, import_element2.useState)(""); const [isOpen, setIsOpen] = (0, import_element2.useState)(false); const [abilityOutput, setAbilityOutput] = (0, import_element2.useState)(null); const [isExecuting, setIsExecuting] = (0, import_element2.useState)(false); const containerRef = (0, import_element2.useRef)(); const abilities = (0, import_data.useSelect)((select) => { const allAbilities = select(abilitiesStore).getAbilities(); return allAbilities || EMPTY_ARRAY; }, []); const filteredAbilities = (0, import_element2.useMemo)(() => { if (!search) { return abilities; } const searchLower = search.toLowerCase(); return abilities.filter( (ability) => ability.label?.toLowerCase().includes(searchLower) || ability.name?.toLowerCase().includes(searchLower) ); }, [abilities, search]); (0, import_element2.useEffect)(() => { if (abilityOutput && containerRef.current) { containerRef.current.focus(); } }, [abilityOutput]); (0, import_element2.useEffect)(() => { registerShortcut({ name: "core/workflows", category: "global", description: (0, import_i18n.__)("Open the workflow palette."), keyCombination: { modifier: "primary", character: "j" } }); }, [registerShortcut]); (0, import_keyboard_shortcuts.useShortcut)( "core/workflows", /** @type {React.KeyboardEventHandler} */ withIgnoreIMEEvents((event) => { if (event.defaultPrevented) { return; } event.preventDefault(); setIsOpen(!isOpen); }), { bindGlobal: true } ); const closeAndReset = () => { setSearch(""); setIsOpen(false); setAbilityOutput(null); setIsExecuting(false); }; const goBack = () => { setAbilityOutput(null); setIsExecuting(false); setSearch(""); }; const handleExecuteAbility = async (ability) => { setIsExecuting(true); try { const result = await executeAbility(ability.name); setAbilityOutput({ name: ability.name, label: ability?.label || ability.name, description: ability?.description || "", success: true, data: result }); } catch (error) { setAbilityOutput({ name: ability.name, label: ability?.label || ability.name, description: ability?.description || "", success: false, error: error.message || String(error) }); } finally { setIsExecuting(false); } }; const onContainerKeyDown = (event) => { if (abilityOutput && (event.key === "Escape" || event.key === "Backspace" || event.key === "Delete")) { event.preventDefault(); event.stopPropagation(); goBack(); } }; if (!isOpen) { return null; } return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( import_components.Modal, { className: "workflows-workflow-menu", overlayClassName: "workflows-workflow-menu__overlay", onRequestClose: abilityOutput ? goBack : closeAndReset, __experimentalHideHeader: true, contentLabel: (0, import_i18n.__)("Workflow palette"), children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( "div", { className: "workflows-workflow-menu__container", onKeyDown: withIgnoreIMEEvents(onContainerKeyDown), ref: containerRef, tabIndex: -1, role: "presentation", children: abilityOutput ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "workflows-workflow-menu__output", children: [ /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "workflows-workflow-menu__output-header", children: [ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { children: abilityOutput.label }), abilityOutput.description && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "workflows-workflow-menu__output-hint", children: abilityOutput.description }) ] }), /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "workflows-workflow-menu__output-content", children: abilityOutput.success ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("pre", { children: JSON.stringify( abilityOutput.data, null, 2 ) }) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "workflows-workflow-menu__output-error", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { children: abilityOutput.error }) }) }) ] }) : /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(_e, { label: inputLabel, shouldFilter: false, children: [ /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_components.__experimentalHStack, { className: "workflows-workflow-menu__header", children: [ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( icon_default, { className: "workflows-workflow-menu__header-search-icon", icon: search_default } ), /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( WorkflowInput, { search, setSearch, isOpen, abilities } ) ] }), /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(_e.List, { label: (0, import_i18n.__)("Workflow suggestions"), children: [ isExecuting && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( import_components.__experimentalHStack, { className: "workflows-workflow-menu__executing", align: "center", children: (0, import_i18n.__)("Executing ability\u2026") } ), !isExecuting && search && filteredAbilities.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(_e.Empty, { children: (0, import_i18n.__)("No results found.") }), !isExecuting && filteredAbilities.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(_e.Group, { children: filteredAbilities.map((ability) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( _e.Item, { value: ability.label, className: "workflows-workflow-menu__item", onSelect: () => handleExecuteAbility(ability), id: ability.name, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_components.__experimentalHStack, { alignment: "left", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( import_components.TextHighlight, { text: ability.label, highlight: search } ) }) }) }, ability.name )) }) ] }) ] }) } ) } ); } // packages/workflow/build-module/index.mjs var root = document.createElement("div"); document.body.appendChild(root); (0, import_element3.createRoot)(root).render((0, import_element3.createElement)(WorkflowMenu)); workflow/index.min.asset.php 0000644 00000000513 15206736336 0012150 0 ustar 00 <?php return array('dependencies' => array('react', 'react-dom', 'react-jsx-runtime', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-primitives', 'wp-private-apis'), 'module_dependencies' => array(array('id' => '@wordpress/abilities', 'import' => 'static')), 'version' => '13556bc597bbf2a8d620');
| ver. 1.4 |
Github
|
.
| PHP 8.2.31 | Generation time: 0.22 |
proxy
|
phpinfo
|
Settings