UNPKG

@preprio/prepr-nextjs

Version:

Next.js package for Prepr CMS preview functionality with advanced debugging and visual editing capabilities

1,264 lines (1,249 loc) 392 kB
"use client"; "use client"; var __create = Object.create; var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropNames = Object.getOwnPropertyNames; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a18, b7) => { for (var prop in b7 || (b7 = {})) if (__hasOwnProp.call(b7, prop)) __defNormalProp(a18, prop, b7[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b7)) { if (__propIsEnum.call(b7, prop)) __defNormalProp(a18, prop, b7[prop]); } return a18; }; var __spreadProps = (a18, b7) => __defProps(a18, __getOwnPropDescs(b7)); var __require = /* @__PURE__ */ ((x8) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x8, { get: (a18, b7) => (typeof require !== "undefined" ? require : a18)[b7] }) : x8)(function(x8) { if (typeof require !== "undefined") return require.apply(this, arguments); throw Error('Dynamic require of "' + x8 + '" is not supported'); }); var __restKey = (key) => typeof key === "symbol" ? key : key + ""; var __objRest = (source, exclude) => { var target = {}; for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop]; if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) { if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop]; } return target; }; var __commonJS = (cb, mod) => function __require2() { 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 )); var __async = (__this, __arguments, generator) => { return new Promise((resolve, reject) => { var fulfilled = (value) => { try { step(generator.next(value)); } catch (e7) { reject(e7); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e7) { reject(e7); } }; var step = (x8) => x8.done ? resolve(x8.value) : Promise.resolve(x8.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; // node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_default.cjs var require_interop_require_default = __commonJS({ "node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_default.cjs"(exports) { "use strict"; function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports._ = _interop_require_default; } }); // node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs var require_interop_require_wildcard = __commonJS({ "node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs"(exports) { "use strict"; function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop2) { return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) return obj; if (obj === null || typeof obj !== "object" && typeof obj !== "function") return { default: obj }; var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) return cache.get(obj); var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc); else newObj[key] = obj[key]; } } newObj.default = obj; if (cache) cache.set(obj, newObj); return newObj; } exports._ = _interop_require_wildcard; } }); // node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js var require_head_manager_context_shared_runtime = __commonJS({ "node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "HeadManagerContext", { enumerable: true, get: function() { return HeadManagerContext; } }); var _interop_require_default = require_interop_require_default(); var _react = /* @__PURE__ */ _interop_require_default._(__require("react")); var HeadManagerContext = _react.default.createContext({}); if (process.env.NODE_ENV !== "production") { HeadManagerContext.displayName = "HeadManagerContext"; } } }); // node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/client/set-attributes-from-props.js var require_set_attributes_from_props = __commonJS({ "node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/client/set-attributes-from-props.js"(exports, module) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "setAttributesFromProps", { enumerable: true, get: function() { return setAttributesFromProps; } }); var DOMAttributeNames = { acceptCharset: "accept-charset", className: "class", htmlFor: "for", httpEquiv: "http-equiv", noModule: "noModule" }; var ignoreProps = [ "onLoad", "onReady", "dangerouslySetInnerHTML", "children", "onError", "strategy", "stylesheets" ]; function isBooleanScriptAttribute(attr) { return [ "async", "defer", "noModule" ].includes(attr); } function setAttributesFromProps(el, props) { for (const [p7, value] of Object.entries(props)) { if (!props.hasOwnProperty(p7)) continue; if (ignoreProps.includes(p7)) continue; if (value === void 0) { continue; } const attr = DOMAttributeNames[p7] || p7.toLowerCase(); if (el.tagName === "SCRIPT" && isBooleanScriptAttribute(attr)) { ; el[attr] = !!value; } else { el.setAttribute(attr, String(value)); } if (value === false || el.tagName === "SCRIPT" && isBooleanScriptAttribute(attr) && (!value || value === "false")) { el.setAttribute(attr, ""); el.removeAttribute(attr); } } } if ((typeof exports.default === "function" || typeof exports.default === "object" && exports.default !== null) && typeof exports.default.__esModule === "undefined") { Object.defineProperty(exports.default, "__esModule", { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } } }); // node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/client/request-idle-callback.js var require_request_idle_callback = __commonJS({ "node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/client/request-idle-callback.js"(exports, module) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _export(target, all) { for (var name in all) Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { cancelIdleCallback: function() { return cancelIdleCallback; }, requestIdleCallback: function() { return requestIdleCallback; } }); var requestIdleCallback = typeof self !== "undefined" && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function(cb) { let start = Date.now(); return self.setTimeout(function() { cb({ didTimeout: false, timeRemaining: function() { return Math.max(0, 50 - (Date.now() - start)); } }); }, 1); }; var cancelIdleCallback = typeof self !== "undefined" && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function(id) { return clearTimeout(id); }; if ((typeof exports.default === "function" || typeof exports.default === "object" && exports.default !== null) && typeof exports.default.__esModule === "undefined") { Object.defineProperty(exports.default, "__esModule", { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } } }); // node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/client/script.js var require_script = __commonJS({ "node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/client/script.js"(exports, module) { "use strict"; "use client"; Object.defineProperty(exports, "__esModule", { value: true }); function _export(target, all) { for (var name in all) Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { default: function() { return _default; }, handleClientScriptLoad: function() { return handleClientScriptLoad; }, initScriptLoader: function() { return initScriptLoader; } }); var _interop_require_default = require_interop_require_default(); var _interop_require_wildcard = require_interop_require_wildcard(); var _jsxruntime = __require("react/jsx-runtime"); var _reactdom = /* @__PURE__ */ _interop_require_default._(__require("react-dom")); var _react = /* @__PURE__ */ _interop_require_wildcard._(__require("react")); var _headmanagercontextsharedruntime = require_head_manager_context_shared_runtime(); var _setattributesfromprops = require_set_attributes_from_props(); var _requestidlecallback = require_request_idle_callback(); var ScriptCache = /* @__PURE__ */ new Map(); var LoadCache = /* @__PURE__ */ new Set(); var insertStylesheets = (stylesheets) => { if (_reactdom.default.preinit) { stylesheets.forEach((stylesheet) => { _reactdom.default.preinit(stylesheet, { as: "style" }); }); return; } if (typeof window !== "undefined") { let head = document.head; stylesheets.forEach((stylesheet) => { let link = document.createElement("link"); link.type = "text/css"; link.rel = "stylesheet"; link.href = stylesheet; head.appendChild(link); }); } }; var loadScript = (props) => { const { src, id, onLoad = () => { }, onReady = null, dangerouslySetInnerHTML, children = "", strategy = "afterInteractive", onError, stylesheets } = props; const cacheKey = id || src; if (cacheKey && LoadCache.has(cacheKey)) { return; } if (ScriptCache.has(src)) { LoadCache.add(cacheKey); ScriptCache.get(src).then(onLoad, onError); return; } const afterLoad = () => { if (onReady) { onReady(); } LoadCache.add(cacheKey); }; const el = document.createElement("script"); const loadPromise = new Promise((resolve, reject) => { el.addEventListener("load", function(e7) { resolve(); if (onLoad) { onLoad.call(this, e7); } afterLoad(); }); el.addEventListener("error", function(e7) { reject(e7); }); }).catch(function(e7) { if (onError) { onError(e7); } }); if (dangerouslySetInnerHTML) { el.innerHTML = dangerouslySetInnerHTML.__html || ""; afterLoad(); } else if (children) { el.textContent = typeof children === "string" ? children : Array.isArray(children) ? children.join("") : ""; afterLoad(); } else if (src) { el.src = src; ScriptCache.set(src, loadPromise); } (0, _setattributesfromprops.setAttributesFromProps)(el, props); if (strategy === "worker") { el.setAttribute("type", "text/partytown"); } el.setAttribute("data-nscript", strategy); if (stylesheets) { insertStylesheets(stylesheets); } document.body.appendChild(el); }; function handleClientScriptLoad(props) { const { strategy = "afterInteractive" } = props; if (strategy === "lazyOnload") { window.addEventListener("load", () => { (0, _requestidlecallback.requestIdleCallback)(() => loadScript(props)); }); } else { loadScript(props); } } function loadLazyScript(props) { if (document.readyState === "complete") { (0, _requestidlecallback.requestIdleCallback)(() => loadScript(props)); } else { window.addEventListener("load", () => { (0, _requestidlecallback.requestIdleCallback)(() => loadScript(props)); }); } } function addBeforeInteractiveToCache() { const scripts = [ ...document.querySelectorAll('[data-nscript="beforeInteractive"]'), ...document.querySelectorAll('[data-nscript="beforePageRender"]') ]; scripts.forEach((script) => { const cacheKey = script.id || script.getAttribute("src"); LoadCache.add(cacheKey); }); } function initScriptLoader(scriptLoaderItems) { scriptLoaderItems.forEach(handleClientScriptLoad); addBeforeInteractiveToCache(); } function Script2(props) { const _a = props, { id, src = "", onLoad = () => { }, onReady = null, strategy = "afterInteractive", onError, stylesheets } = _a, restProps = __objRest(_a, ["id", "src", "onLoad", "onReady", "strategy", "onError", "stylesheets"]); const { updateScripts, scripts, getIsSsr, appDir, nonce } = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext); const hasOnReadyEffectCalled = (0, _react.useRef)(false); (0, _react.useEffect)(() => { const cacheKey = id || src; if (!hasOnReadyEffectCalled.current) { if (onReady && cacheKey && LoadCache.has(cacheKey)) { onReady(); } hasOnReadyEffectCalled.current = true; } }, [ onReady, id, src ]); const hasLoadScriptEffectCalled = (0, _react.useRef)(false); (0, _react.useEffect)(() => { if (!hasLoadScriptEffectCalled.current) { if (strategy === "afterInteractive") { loadScript(props); } else if (strategy === "lazyOnload") { loadLazyScript(props); } hasLoadScriptEffectCalled.current = true; } }, [ props, strategy ]); if (strategy === "beforeInteractive" || strategy === "worker") { if (updateScripts) { scripts[strategy] = (scripts[strategy] || []).concat([ __spreadValues({ id, src, onLoad, onReady, onError }, restProps) ]); updateScripts(scripts); } else if (getIsSsr && getIsSsr()) { LoadCache.add(id || src); } else if (getIsSsr && !getIsSsr()) { loadScript(props); } } if (appDir) { if (stylesheets) { stylesheets.forEach((styleSrc) => { _reactdom.default.preinit(styleSrc, { as: "style" }); }); } if (strategy === "beforeInteractive") { if (!src) { if (restProps.dangerouslySetInnerHTML) { restProps.children = restProps.dangerouslySetInnerHTML.__html; delete restProps.dangerouslySetInnerHTML; } return /* @__PURE__ */ (0, _jsxruntime.jsx)("script", { nonce, dangerouslySetInnerHTML: { __html: "(self.__next_s=self.__next_s||[]).push(" + JSON.stringify([ 0, __spreadProps(__spreadValues({}, restProps), { id }) ]) + ")" } }); } else { _reactdom.default.preload(src, restProps.integrity ? { as: "script", integrity: restProps.integrity, nonce, crossOrigin: restProps.crossOrigin } : { as: "script", nonce, crossOrigin: restProps.crossOrigin }); return /* @__PURE__ */ (0, _jsxruntime.jsx)("script", { nonce, dangerouslySetInnerHTML: { __html: "(self.__next_s=self.__next_s||[]).push(" + JSON.stringify([ src, __spreadProps(__spreadValues({}, restProps), { id }) ]) + ")" } }); } } else if (strategy === "afterInteractive") { if (src) { _reactdom.default.preload(src, restProps.integrity ? { as: "script", integrity: restProps.integrity, nonce, crossOrigin: restProps.crossOrigin } : { as: "script", nonce, crossOrigin: restProps.crossOrigin }); } } } return null; } Object.defineProperty(Script2, "__nextScript", { value: true }); var _default = Script2; if ((typeof exports.default === "function" || typeof exports.default === "object" && exports.default !== null) && typeof exports.default.__esModule === "undefined") { Object.defineProperty(exports.default, "__esModule", { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } } }); // node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/script.js var require_script2 = __commonJS({ "node_modules/.pnpm/next@15.3.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/script.js"(exports, module) { "use strict"; module.exports = require_script(); } }); // node_modules/.pnpm/use-sync-external-store@1.5.0_react@19.1.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js var require_use_sync_external_store_with_selector_production = __commonJS({ "node_modules/.pnpm/use-sync-external-store@1.5.0_react@19.1.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js"(exports) { "use strict"; var React27 = __require("react"); function is(x8, y7) { return x8 === y7 && (0 !== x8 || 1 / x8 === 1 / y7) || x8 !== x8 && y7 !== y7; } var objectIs = "function" === typeof Object.is ? Object.is : is; var useSyncExternalStore = React27.useSyncExternalStore; var useRef9 = React27.useRef; var useEffect11 = React27.useEffect; var useMemo5 = React27.useMemo; var useDebugValue = React27.useDebugValue; exports.useSyncExternalStoreWithSelector = function(subscribe, getSnapshot, getServerSnapshot, selector, isEqual) { var instRef = useRef9(null); if (null === instRef.current) { var inst = { hasValue: false, value: null }; instRef.current = inst; } else inst = instRef.current; instRef = useMemo5( 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(subscribe, instRef[0], instRef[1]); useEffect11( function() { inst.hasValue = true; inst.value = value; }, [value] ); useDebugValue(value); return value; }; } }); // node_modules/.pnpm/use-sync-external-store@1.5.0_react@19.1.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js var require_use_sync_external_store_with_selector_development = __commonJS({ "node_modules/.pnpm/use-sync-external-store@1.5.0_react@19.1.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js"(exports) { "use strict"; "production" !== process.env.NODE_ENV && function() { function is(x8, y7) { return x8 === y7 && (0 !== x8 || 1 / x8 === 1 / y7) || x8 !== x8 && y7 !== y7; } "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error()); var React27 = __require("react"), objectIs = "function" === typeof Object.is ? Object.is : is, useSyncExternalStore = React27.useSyncExternalStore, useRef9 = React27.useRef, useEffect11 = React27.useEffect, useMemo5 = React27.useMemo, useDebugValue = React27.useDebugValue; exports.useSyncExternalStoreWithSelector = function(subscribe, getSnapshot, getServerSnapshot, selector, isEqual) { var instRef = useRef9(null); if (null === instRef.current) { var inst = { hasValue: false, value: null }; instRef.current = inst; } else inst = instRef.current; instRef = useMemo5( 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(subscribe, instRef[0], instRef[1]); useEffect11( 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/.pnpm/use-sync-external-store@1.5.0_react@19.1.0/node_modules/use-sync-external-store/with-selector.js var require_with_selector = __commonJS({ "node_modules/.pnpm/use-sync-external-store@1.5.0_react@19.1.0/node_modules/use-sync-external-store/with-selector.js"(exports, module) { "use strict"; if (process.env.NODE_ENV === "production") { module.exports = require_use_sync_external_store_with_selector_production(); } else { module.exports = require_use_sync_external_store_with_selector_development(); } } }); // src/react/components/toolbar/toolbar-provider.tsx import React5, { useEffect as useEffect3, useCallback, useMemo } from "react"; // src/react/contexts/segment-context.tsx import React, { createContext, useContext, useState } from "react"; // src/utils/errors.ts var StegaError = { DECODE_FAILED: "STEGA_DECODE_FAILED", INVALID_FORMAT: "STEGA_INVALID_FORMAT", DOM_MANIPULATION_FAILED: "DOM_MANIPULATION_FAILED", CONTEXT_NOT_FOUND: "CONTEXT_NOT_FOUND" }; function createErrorInfo(type, context, error2, additionalData) { return { type, context, message: error2.message, timestamp: (/* @__PURE__ */ new Date()).toISOString(), stack: error2.stack, additionalData }; } function handleStegaError(error2, context, additionalData) { const errorInfo = createErrorInfo( StegaError.DECODE_FAILED, context, error2, additionalData ); console.error("Stega Error:", errorInfo); if (process.env.NODE_ENV === "production") { } return errorInfo; } function handleDOMError(error2, context) { const errorInfo = createErrorInfo( StegaError.DOM_MANIPULATION_FAILED, context, error2 ); console.error("DOM Error:", errorInfo); return errorInfo; } function handleContextError(contextName) { const error2 = new Error(`${contextName} must be used within its provider`); const errorInfo = createErrorInfo( StegaError.CONTEXT_NOT_FOUND, contextName, error2 ); console.error("Context Error:", errorInfo); throw error2; } // node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs function r(e7) { var t10, f14, n13 = ""; if ("string" == typeof e7 || "number" == typeof e7) n13 += e7; else if ("object" == typeof e7) if (Array.isArray(e7)) { var o17 = e7.length; for (t10 = 0; t10 < o17; t10++) e7[t10] && (f14 = r(e7[t10])) && (n13 && (n13 += " "), n13 += f14); } else for (f14 in e7) e7[f14] && (n13 && (n13 += " "), n13 += f14); return n13; } function clsx() { for (var e7, t10, f14 = 0, n13 = "", o17 = arguments.length; f14 < o17; f14++) (e7 = arguments[f14]) && (t10 = r(e7)) && (n13 && (n13 += " "), n13 += t10); return n13; } // node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/dist/bundle-mjs.mjs var CLASS_PART_SEPARATOR = "-"; var createClassGroupUtils = (config) => { const classMap = createClassMap(config); const { conflictingClassGroups, conflictingClassGroupModifiers } = config; const getClassGroupId = (className) => { const classParts = className.split(CLASS_PART_SEPARATOR); if (classParts[0] === "" && classParts.length !== 1) { classParts.shift(); } return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className); }; const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => { const conflicts = conflictingClassGroups[classGroupId] || []; if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) { return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]]; } return conflicts; }; return { getClassGroupId, getConflictingClassGroupIds }; }; var getGroupRecursive = (classParts, classPartObject) => { var _a; if (classParts.length === 0) { return classPartObject.classGroupId; } const currentClassPart = classParts[0]; const nextClassPartObject = classPartObject.nextPart.get(currentClassPart); const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : void 0; if (classGroupFromNextClassPart) { return classGroupFromNextClassPart; } if (classPartObject.validators.length === 0) { return void 0; } const classRest = classParts.join(CLASS_PART_SEPARATOR); return (_a = classPartObject.validators.find(({ validator }) => validator(classRest))) == null ? void 0 : _a.classGroupId; }; var arbitraryPropertyRegex = /^\[(.+)\]$/; var getGroupIdForArbitraryProperty = (className) => { if (arbitraryPropertyRegex.test(className)) { const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1]; const property = arbitraryPropertyClassName == null ? void 0 : arbitraryPropertyClassName.substring(0, arbitraryPropertyClassName.indexOf(":")); if (property) { return "arbitrary.." + property; } } }; var createClassMap = (config) => { const { theme, classGroups } = config; const classMap = { nextPart: /* @__PURE__ */ new Map(), validators: [] }; for (const classGroupId in classGroups) { processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme); } return classMap; }; var processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => { classGroup.forEach((classDefinition) => { if (typeof classDefinition === "string") { const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition); classPartObjectToEdit.classGroupId = classGroupId; return; } if (typeof classDefinition === "function") { if (isThemeGetter(classDefinition)) { processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme); return; } classPartObject.validators.push({ validator: classDefinition, classGroupId }); return; } Object.entries(classDefinition).forEach(([key, classGroup2]) => { processClassesRecursively(classGroup2, getPart(classPartObject, key), classGroupId, theme); }); }); }; var getPart = (classPartObject, path) => { let currentClassPartObject = classPartObject; path.split(CLASS_PART_SEPARATOR).forEach((pathPart) => { if (!currentClassPartObject.nextPart.has(pathPart)) { currentClassPartObject.nextPart.set(pathPart, { nextPart: /* @__PURE__ */ new Map(), validators: [] }); } currentClassPartObject = currentClassPartObject.nextPart.get(pathPart); }); return currentClassPartObject; }; var isThemeGetter = (func) => func.isThemeGetter; var createLruCache = (maxCacheSize) => { if (maxCacheSize < 1) { return { get: () => void 0, set: () => { } }; } let cacheSize = 0; let cache = /* @__PURE__ */ new Map(); let previousCache = /* @__PURE__ */ new Map(); const update = (key, value) => { cache.set(key, value); cacheSize++; if (cacheSize > maxCacheSize) { cacheSize = 0; previousCache = cache; cache = /* @__PURE__ */ new Map(); } }; return { get(key) { let value = cache.get(key); if (value !== void 0) { return value; } if ((value = previousCache.get(key)) !== void 0) { update(key, value); return value; } }, set(key, value) { if (cache.has(key)) { cache.set(key, value); } else { update(key, value); } } }; }; var IMPORTANT_MODIFIER = "!"; var MODIFIER_SEPARATOR = ":"; var MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length; var createParseClassName = (config) => { const { prefix, experimentalParseClassName } = config; let parseClassName = (className) => { const modifiers = []; let bracketDepth = 0; let parenDepth = 0; let modifierStart = 0; let postfixModifierPosition; for (let index3 = 0; index3 < className.length; index3++) { let currentCharacter = className[index3]; if (bracketDepth === 0 && parenDepth === 0) { if (currentCharacter === MODIFIER_SEPARATOR) { modifiers.push(className.slice(modifierStart, index3)); modifierStart = index3 + MODIFIER_SEPARATOR_LENGTH; continue; } if (currentCharacter === "/") { postfixModifierPosition = index3; continue; } } if (currentCharacter === "[") { bracketDepth++; } else if (currentCharacter === "]") { bracketDepth--; } else if (currentCharacter === "(") { parenDepth++; } else if (currentCharacter === ")") { parenDepth--; } } const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart); const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier); const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier; const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : void 0; return { modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition }; }; if (prefix) { const fullPrefix = prefix + MODIFIER_SEPARATOR; const parseClassNameOriginal = parseClassName; parseClassName = (className) => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : { isExternal: true, modifiers: [], hasImportantModifier: false, baseClassName: className, maybePostfixModifierPosition: void 0 }; } if (experimentalParseClassName) { const parseClassNameOriginal = parseClassName; parseClassName = (className) => experimentalParseClassName({ className, parseClassName: parseClassNameOriginal }); } return parseClassName; }; var stripImportantModifier = (baseClassName) => { if (baseClassName.endsWith(IMPORTANT_MODIFIER)) { return baseClassName.substring(0, baseClassName.length - 1); } if (baseClassName.startsWith(IMPORTANT_MODIFIER)) { return baseClassName.substring(1); } return baseClassName; }; var createSortModifiers = (config) => { const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map((modifier) => [modifier, true])); const sortModifiers = (modifiers) => { if (modifiers.length <= 1) { return modifiers; } const sortedModifiers = []; let unsortedModifiers = []; modifiers.forEach((modifier) => { const isPositionSensitive = modifier[0] === "[" || orderSensitiveModifiers[modifier]; if (isPositionSensitive) { sortedModifiers.push(...unsortedModifiers.sort(), modifier); unsortedModifiers = []; } else { unsortedModifiers.push(modifier); } }); sortedModifiers.push(...unsortedModifiers.sort()); return sortedModifiers; }; return sortModifiers; }; var createConfigUtils = (config) => __spreadValues({ cache: createLruCache(config.cacheSize), parseClassName: createParseClassName(config), sortModifiers: createSortModifiers(config) }, createClassGroupUtils(config)); var SPLIT_CLASSES_REGEX = /\s+/; var mergeClassList = (classList, configUtils) => { const { parseClassName, getClassGroupId, getConflictingClassGroupIds, sortModifiers } = configUtils; const classGroupsInConflict = []; const classNames = classList.trim().split(SPLIT_CLASSES_REGEX); let result = ""; for (let index3 = classNames.length - 1; index3 >= 0; index3 -= 1) { const originalClassName = classNames[index3]; const { isExternal, modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition } = parseClassName(originalClassName); if (isExternal) { result = originalClassName + (result.length > 0 ? " " + result : result); continue; } let hasPostfixModifier = !!maybePostfixModifierPosition; let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName); if (!classGroupId) { if (!hasPostfixModifier) { result = originalClassName + (result.length > 0 ? " " + result : result); continue; } classGroupId = getClassGroupId(baseClassName); if (!classGroupId) { result = originalClassName + (result.length > 0 ? " " + result : result); continue; } hasPostfixModifier = false; } const variantModifier = sortModifiers(modifiers).join(":"); const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier; const classId = modifierId + classGroupId; if (classGroupsInConflict.includes(classId)) { continue; } classGroupsInConflict.push(classId); const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier); for (let i12 = 0; i12 < conflictGroups.length; ++i12) { const group = conflictGroups[i12]; classGroupsInConflict.push(modifierId + group); } result = originalClassName + (result.length > 0 ? " " + result : result); } return result; }; function twJoin() { let index3 = 0; let argument; let resolvedValue; let string = ""; while (index3 < arguments.length) { if (argument = arguments[index3++]) { if (resolvedValue = toValue(argument)) { string && (string += " "); string += resolvedValue; } } } return string; } var toValue = (mix) => { if (typeof mix === "string") { return mix; } let resolvedValue; let string = ""; for (let k7 = 0; k7 < mix.length; k7++) { if (mix[k7]) { if (resolvedValue = toValue(mix[k7])) { string && (string += " "); string += resolvedValue; } } } return string; }; function createTailwindMerge(createConfigFirst, ...createConfigRest) { let configUtils; let cacheGet; let cacheSet; let functionToCall = initTailwindMerge; function initTailwindMerge(classList) { const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst()); configUtils = createConfigUtils(config); cacheGet = configUtils.cache.get; cacheSet = configUtils.cache.set; functionToCall = tailwindMerge; return tailwindMerge(classList); } function tailwindMerge(classList) { const cachedResult = cacheGet(classList); if (cachedResult) { return cachedResult; } const result = mergeClassList(classList, configUtils); cacheSet(classList, result); return result; } return function callTailwindMerge() { return functionToCall(twJoin.apply(null, arguments)); }; } var fromTheme = (key) => { const themeGetter = (theme) => theme[key] || []; themeGetter.isThemeGetter = true; return themeGetter; }; var arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i; var arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i; var fractionRegex = /^\d+\/\d+$/; var tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/; var lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/; var colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/; var shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/; var imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/; var isFraction = (value) => fractionRegex.test(value); var isNumber = (value) => !!value && !Number.isNaN(Number(value)); var isInteger = (value) => !!value && Number.isInteger(Number(value)); var isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1)); var isTshirtSize = (value) => tshirtUnitRegex.test(value); var isAny = () => true; var isLengthOnly = (value) => ( // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths. // For example, `hsl(0 0% 0%)` would be classified as a length without this check. // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough. lengthUnitRegex.test(value) && !colorFunctionRegex.test(value) ); var isNever = () => false; var isShadow = (value) => shadowRegex.test(value); var isImage = (value) => imageRegex.test(value); var isAnyNonArbitrary = (value) => !isArbitraryValue(value) && !isArbitraryVariable(value); var isArbitrarySize = (value) => getIsArbitraryValue(value, isLabelSize, isNever); var isArbitraryValue = (value) => arbitraryValueRegex.test(value); var isArbitraryLength = (value) => getIsArbitraryValue(value, isLabelLength, isLengthOnly); var isArbitraryNumber = (value) => getIsArbitraryValue(value, isLabelNumber, isNumber); var isArbitraryPosition = (value) => getIsArbitraryValue(value, isLabelPosition, isNever); var isArbitraryImage = (value) => getIsArbitraryValue(value, isLabelImage, isImage); var isArbitraryShadow = (value) => getIsArbitraryValue(value, isLabelShadow, isShadow); var isArbitraryVariable = (value) => arbitraryVariableRegex.test(value); var isArbitraryVariableLength = (value) => getIsArbitraryVariable(value, isLabelLength); var isArbitraryVariableFamilyName = (value) => getIsArbitraryVariable(value, isLabelFamilyName); var isArbitraryVariablePosition = (value) => getIsArbitraryVariable(value, isLabelPosition); var isArbitraryVariableSize = (value) => getIsArbitraryVariable(value, isLabelSize); var isArbitraryVariableImage = (value) => getIsArbitraryVariable(value, isLabelImage); var isArbitraryVariableShadow = (value) => getIsArbitraryVariable(value, isLabelShadow, true); var getIsArbitraryValue = (value, testLabel, testValue) => { const result = arbitraryValueRegex.exec(value); if (result) { if (result[1]) { return testLabel(result[1]); } return testValue(result[2]); } return false; }; var getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => { const result = arbitraryVariableRegex.exec(value); if (result) { if (result[1]) { return testLabel(result[1]); } return shouldMatchNoLabel; } return false; }; var isLabelPosition = (label) => label === "position" || label === "percentage"; var isLabelImage = (label) => label === "image" || label === "url"; var isLabelSize = (label) => label === "length" || label === "size" || label === "bg-size"; var isLabelLength = (label) => label === "length"; var isLabelNumber = (label) => label === "number"; var isLabelFamilyName = (label) => label === "family-name"; var isLabelShadow = (label) => label === "shadow"; var getDefaultConfig = () => { const themeColor = fromTheme("color"); const themeFont = fromTheme("font"); const themeText = fromTheme("text"); const themeFontWeight = fromTheme("font-weight"); const themeTracking = fromTheme("tracking"); const themeLeading = fromTheme("leading"); const themeBreakpoint = fromTheme("breakpoint"); const themeContainer = fromTheme("container"); const themeSpacing = fromTheme("spacing"); const themeRadius = fromTheme("radius"); const themeShadow = fromTheme("shadow"); const themeInsetShadow = fromTheme("inset-shadow"); const themeTextShadow = fromTheme("text-shadow"); const themeDropShadow = fromTheme("drop-shadow"); const themeBlur = fromTheme("blur"); const themePerspective = fromTheme("perspective"); const themeAspect = fromTheme("aspect"); const themeEase = fromTheme("ease"); const themeAnimate = fromTheme("animate"); const scaleBreak = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"]; const scalePosition = () => [ "center", "top", "bottom", "left", "right", "top-left", // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 "left-top", "top-right", // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 "right-top", "bottom-right", // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 "right-bottom", "bottom-left", // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 "left-bottom" ]; const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue]; const scaleOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"]; const scaleOverscroll = () => ["auto", "contain", "none"]; const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing]; const scaleInset = () => [isFraction, "full", "auto", ...scaleUnambiguousSpacing()]; const scaleGridTemplateColsRows = () => [isInteger, "none", "subgrid", isArbitraryVariable, isArbitraryValue]; const scaleGridColRowStartAndEnd = () => ["auto", { span: ["full", isInteger, isArbitraryVariable, isArbitraryValue] }, isInteger, isArbitraryVariable, isArbitraryValue]; const scaleGridColRowStartOrEnd = () => [isInteger, "auto", isArbitraryVariable, isArbitraryValue]; const scaleGridAutoColsRows = () => ["auto", "min", "max", "fr", isArbitraryVariable, isArbitraryValue]; const scaleAlignPrimaryAxis = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"]; const scaleAlignSecondaryAxis = () => ["start", "end", "center", "stretch", "center-safe", "end-safe"]; const scaleMargin = () => ["auto", ...scaleUnambiguousSpacing()]; const scaleSizing = () => [isFraction, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...scaleUnambiguousSpacing()]; const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue]; const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, { position: [isArbitraryVariable, isArbitraryValue] }]; const scaleBgRepeat = () => ["no-repeat", { repeat: ["", "x", "y", "space", "round"] }]; const scaleBgSize = () => ["auto", "cover", "contain", isArbitraryVariableSize, isArbitrarySize, { size: [isArbitraryVariable, isArbitraryValue] }]; const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength]; const scaleRadius = () => [ // Deprecated since Tailwind CSS v4.0.0 "", "none", "full", themeRadius, isArbitraryVariable, isArbitraryValue ]; const scaleBorderWidth = () => ["", isNumber, isArbitraryVariableLength, isArbitraryLength]; const scaleLineStyle = () => ["solid", "dashed", "dotted", "double"]; const scaleBlendMode = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"]; const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVaria