@llmnative/react 2.2.1 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +1 -1
- package/dist/index.js +20 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1615 -1592
- package/dist/index.mjs.map +1 -1
- package/dist/types/src/App.d.ts +2 -0
- package/llms-full.txt +3 -0
- package/package.json +1 -1
- package/themes/default.ts +1 -1
- package/themes/flat.ts +1 -1
package/dist/index.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./logHeader-CUsdmGAo.js"),t=require("./modelIdentity-CgRMrC5H.js");let n=require("react");n=e.r(n);let r=require("react-router-dom"),i=require("clsx"),a=require("tailwind-merge"),o=require("lucide-react");o=e.r(o);let s=require("@phosphor-icons/react");s=e.r(s);let c=require("react-dom"),l=require("firebase/app"),u=require("firebase/auth"),d=require("firebase/firestore"),f=require("@supabase/supabase-js"),p=require("firebase/storage"),m=require("papaparse");m=e.r(m);let h=require("react-markdown");h=e.r(h);let g=require("remark-gfm");g=e.r(g);let _=require("rehype-slug");_=e.r(_);let v=require("rehype-autolink-headings");v=e.r(v);let y=require("rehype-sanitize");y=e.r(y);let b=require("firebase/database");require("react-dom/server");function x(e){let t=new Date(typeof e==`number`||/^\d+$/.test(String(e))?Number(e):e);if(isNaN(t.getTime()))return{year:``,shortYear:``,month:``,day:``,hours:``,minutes:``,seconds:``,hour:``,minute:``,second:``};let n=e=>e.toString().padStart(2,`0`);return{year:t.getFullYear().toString(),shortYear:t.getFullYear().toString().slice(-2),month:n(t.getMonth()+1),day:n(t.getDate()),hours:n(t.getHours()),minutes:n(t.getMinutes()),seconds:n(t.getSeconds()),hour:t.getHours().toString(),minute:t.getMinutes().toString(),second:t.getSeconds().toString()}}function S(e,t){let{year:n,shortYear:r,month:i,day:a,hours:o,minutes:s,seconds:c,hour:l,minute:u,second:d}=x(e),f={YYYY:n,YY:r,MM:i,DD:a,hh:o,mm:s,ss:c,h:l,m:u,s:d};return t.replace(/YYYY|YY|MM|DD|hh|mm|ss|h|m|s/g,e=>f[e]||e)}function C(){let e=new Date;return new Intl.DateTimeFormat(void 0,{year:`numeric`,month:`2-digit`,day:`2-digit`}).formatToParts(e).map(e=>{switch(e.type){case`year`:return`YYYY`;case`month`:return`MM`;case`day`:return`DD`;default:return e.value}}).join(``)}function w(){let e=new Date;return new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}).formatToParts(e).map(e=>{switch(e.type){case`hour`:return`hh`;case`minute`:return`mm`;case`second`:return`ss`;default:return e.value}}).join(``)}var T=(e,t,n,r)=>{if(!e||!t)return``;let i=t.split(`.`),a=e;for(let e=0;e<i.length;e++){let t=i[e];if(a==null)return``;if(t.endsWith(`[]`)){let o=t.slice(0,-2),s=a[o];if(!Array.isArray(s))return``;let c=i.slice(e+1).join(`.`);if(!c)return n?(n.key&&(n.value[n.key]=s)||(n.value=s),``):s;let l=n?.value??{};for(let e in s){let t=(()=>{let t=T(s[e],c);return r?.(t)??t})();n&&(!n.hideEmpty||t!==``)&&(l[e]=n.key?{...l[e]??{},[n.key]:t}:t)}return n?``:l}a=a[t]}return a=r?.(a)??a,n&&(!n.hideEmpty||a!==``)?(n.key&&(n.value[n.key]=a)||(n.value=a),``):a},E={parse:(e,t,n=void 0,r=void 0)=>typeof t==`string`?O(D(t.replace(/{([^}:]+)(?::([^}:]+))?(?::([^}:]+))?}/g,(t,i,a,o)=>{let[s,c]=(i||``).indexOf(`(`)===-1?[``,i]:i.split(`(`,2),[l,u]=(a||``).indexOf(`)`)===-1?[a,``]:a.split(`)`,2),d=T(e,c,n,r);return!E?.[l]||!d?d||``:s+E[l](d,o)+u}))):t,toDate:(e,t=void 0)=>{let n=C();return t===`ISO`?S(e,`YYYY-MM-DD`):S(e,t||n)},toTime:(e,t=void 0)=>{let n=w();return t===`ISO`?S(e,`hh:mm:ss`):S(e,t||n)},toDateTime:(e,t=void 0)=>{let n=`${C()} ${w()}`;return t===`ISO`?S(e,`YYYY-MM-DD hh:mm:ss`):S(e,t||n)},toCamel:(e,t=``,n=[`-`,`_`,` `])=>{let r=e.split(`/`),i=r.pop()||``,a=n.map(e=>`\\`+e).join(``),o=RegExp(`(?:[${a}]+|^)(.)`,`g`),s=i.toLowerCase().replace(o,(e,n)=>t+n.toUpperCase());return[...r,s].join(`/`)},toUpper:e=>e.toUpperCase(),toLower:e=>e.toLowerCase(),toSlug:e=>P(e),toNumberFormat:(e,t=navigator.language)=>new Intl.NumberFormat(t).format(Number(e)),splitLast:(e,t,n=void 0)=>{let r=t=>{let r=e.split(t);if(r.length<=1)return null;let i=r.pop()||``;for(;r.length&&n?.test(r[r.length-1]);)i=r.pop()+t+i;return[r.join(t),i]},i=typeof t==`string`?[t]:Array.isArray(t)?t:[];for(let e of i){let t=r(e);if(t)return t}return[e,``]},splitFirst:(e,t,n=void 0)=>{let r=t=>{let r=e.split(t);if(r.length<=1)return null;let i=r.shift()||``;for(;r.length&&n?.test(r[0]);)i+=t+r.shift();return[i,r.join(t)]},i=typeof t==`string`?[t]:Array.isArray(t)?t:[];for(let e of i){let t=r(e);if(t)return t}return[e,``]},padLeft:(e,t,n=` `,r=void 0)=>r?e.replace(r,e=>e.padStart(t,n)):e.padStart(t,n),padRight:(e,t,n=` `,r=void 0)=>r?e.replace(r,e=>e.padEnd(t,n)):e.padEnd(t,n),toQueryString:(e,t=`?`,n=void 0)=>{let r=Object.keys(e);return(r.length>0?t:``)+r.map(t=>`${encodeURIComponent(t)}=${encodeURIComponent(n===void 0?e[t]:n)}`).join(`&`)},fillObject:(e,t=void 0)=>{let n={};for(let r in e)n[r]=t;return n},subStringCount:(e,t)=>t===``?0:e.split(t).length-1,truncate:(e,t=100)=>e.length>t?e.substring(0,t):e};function D(e){return e.replace(/replace\(([^,]+),([^,]+),([^)]+)\)/gi,(e,t,n,r)=>t.replaceAll(n,r))}function O(e){return e.replace(/split\(([^,]+),([^,]+),([^)]+)\)/gi,(e,t,n,r=0)=>t.split(n)[r])}var k=e=>{try{let t=e.split(`.`),n=atob(t[1]);return JSON.parse(n)}catch(e){console.error(`Errore durante la decodifica del token:`,e)}},A=e=>{try{navigator.clipboard.writeText(e).then(()=>{console.log(`Selettore HTML copiato negli appunti:`,e)}).catch(e=>{console.error(`Errore durante la copia del selettore HTML negli appunti:`,e)})}catch(e){console.error(`Clipboard API non supportata:`,e)}},j=e=>M(e).replace(/\/$/,``).replace(/^\//,``),M=e=>e?e.replaceAll(` `,`-`).replaceAll(`'`,`-`).replaceAll(`"`,`-`).toLowerCase().replace(/[^a-z0-9\-/]+/g,``).replace(/-+/g,`-`).replace(/\/+/g,`/`):``,N=e=>typeof e==`number`?String(e):typeof e==`boolean`?e?`true`:`false`:e?e.startsWith(`/`)?e.substring(1):e:``,P=e=>N(e).replaceAll(`/`,`|`).replaceAll(` `,`-`).replaceAll(`'`,`-`).replaceAll(`"`,`-`).replaceAll(`.`,`-`).replaceAll(`@`,`-`).replaceAll(`#`,`-`).replaceAll(`$`,`-`).replaceAll(`[`,`-`).replaceAll(`]`,`-`).replaceAll(`_`,`-`).toLowerCase().replace(/[^a-z0-9\-|]+/g,``).replace(/^-+|-+$/g,``).replace(/-+/g,`-`),F=e=>{if(!e)return``;e=e.replace(/\/$/,``);let t=e.split(`/`);return t.pop(),t.join(`/`)};async function I(e){return new Promise(t=>setTimeout(t,e))}function L(e=null){return`${Date.now().toString(36)}-${e||Math.random().toString(36).substring(2)}`}function R(e,t){let n=e.target;if(n.tagName.toLowerCase()===t.toLowerCase())return n;for(;n.parentNode;){let e=n.parentNode;if(e.tagName.toLowerCase()===t.toLowerCase())return e;n=e}return null}var z=(e,t)=>e.split(t).length-1,B=(e,t)=>e.replace(/\$(\d+)/g,(e,n)=>t[parseInt(n)]||``).trim(),ee=(e,t,n)=>{for(let r of e){let e=M(ne(r.key,t)),i=M(B(ne(r.value,t),n));if((r.operator===`==`||r.operator===`=`)&&e===i||r.operator===`!=`&&e!==i||r.operator===`>`&&e>i||r.operator===`<`&&e<i||r.operator===`>=`&&e>=i||r.operator===`<=`&&e<=i||r.operator===`contains`&&e.includes(i)||r.operator===`not contains`&&!e.includes(i))return!0}return!1},V=e=>{let t=[];for(let e=0;e<256;e++){let n=e;for(let e=0;e<8;e++)n&1?n=3988292384^n>>>1:n>>>=1;t[e]=n}let n=-1;for(let r=0;r<e.length;r++)n=n>>>8^t[(n^e.charCodeAt(r))&255];return(n^-1)>>>0},H=e=>e?e.charAt(0).toUpperCase()+e.slice(1):``,U=e=>{if(!e.length)return;let t=document.createDocumentFragment();e.forEach(({src:e,clean:n,...r})=>{if(!e)return;let i=document.createElement(`script`);i.setAttribute(`src`,String(e)),Object.entries(r).forEach(([e,t])=>{i.setAttribute(e,String(t))}),n&&(i.onload=()=>document.body.removeChild(i)),t.appendChild(i)}),document.body.appendChild(t)},te=(e,t)=>{let n={};for(let r in e)e.hasOwnProperty(r)&&r in t&&(n[r]=e[r]);return n},ne=(e,t)=>((e.match(/{[^}]*}/g)||[]).forEach(n=>{let r=n.slice(1,-1).split(`:`),i=r[0],a=r[1],o=(a&&typeof E[a]==`function`?E[a](t[i]):t[i])||``;e=e.replaceAll(n,o)}),e),re=(e,t)=>{if(t){let n=new Set;return e.filter(e=>{let r=e[t];return!n.has(r)&&(n.add(r),!0)})}return[...new Set(e)]},W=e=>e==null||e===``||e===!1||e===`0`||e===0||typeof e==`object`&&!!e&&Object.keys(e).length===0;function G(e,t=new WeakMap){if(typeof e!=`object`||!e||n.default.isValidElement(e))return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(t.has(e))return t.get(e);if(Array.isArray(e)){let n=[];return t.set(e,n),e.forEach((e,r)=>{n[r]=G(e,t)}),n}if(e instanceof Map){let n=new Map;return t.set(e,n),e.forEach((e,r)=>{n.set(G(r,t),G(e,t))}),n}if(e instanceof Set){let n=new Set;return t.set(e,n),e.forEach(e=>{n.add(G(e,t))}),n}let r=Object.getPrototypeOf(e);if(r&&r!==Object.prototype)return e;let i={};return t.set(e,i),Object.entries(e).forEach(([e,n])=>{i[e]=G(n,t)}),i}function ie(e){if(typeof structuredClone!=`function`)return G(e);try{return structuredClone(e)}catch{return G(e)}}function ae(e){return(typeof e==`string`?Buffer.from(e,`utf8`):e instanceof ArrayBuffer?Buffer.from(new Uint8Array(e)):Buffer.from(e)).toString(`base64`).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function oe(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function se(e){return e.replace(/[^a-zA-Z0-9-_:.]/g,`_`)}function ce(e,t){let n=e.target,r=!!(n.closest(`a`)||n.closest(`button`)||n.closest(`input`)||n.closest(`textarea`)||n.closest(`select`));return t?r&&!n.closest(t):r}var le=e=>{let t=new Uint8Array(e),n=``;for(let e=0;e<t.byteLength;e++)n+=String.fromCharCode(t[e]);return btoa(n)},ue=(e,t)=>{try{let n=e.includes(`,`)?e.split(`,`)[1]:e,r=atob(n),i=Array(r.length);for(let e=0;e<r.length;e++)i[e]=r.charCodeAt(e);let a=new Uint8Array(i);return new Blob([a],{type:t})}catch(e){console.warn(`Failed to create blob from base64:`,e);return}},K=(e,t)=>{let n=ue(e,t);return n?URL.createObjectURL(n):void 0},de=(e,t)=>{if(e&&t)return t.split(`.`).reduce((e,t)=>{if(e!=null&&!(typeof e!=`object`||Array.isArray(e)))return e[t]},e)},fe=e=>{let t={};if(!e)return t;if(e instanceof File)return{name:e.name,type:e.type,size:e.size,lastModified:e.lastModified};for(let[n,r]of Object.entries(e))n&&(Array.isArray(r)?t[n]=r.map(e=>typeof e==`object`?fe(e):e).filter(e=>e!==void 0):r&&typeof r==`object`?t[n]=fe(r):r!==void 0&&(t[n]=r));return t},pe=e=>`${e.name}${e.type}${e.size}${e.lastModified}`;function me(e,t){if(e===t)return!0;if(e instanceof File||t instanceof File)return e instanceof File&&t instanceof File&&pe(e)===pe(t);if(Array.isArray(e)||Array.isArray(t)){if(!Array.isArray(e)||!Array.isArray(t))return!1;let n=e.filter(e=>e!==void 0),r=t.filter(e=>e!==void 0);if(n.length!==r.length)return!1;for(let e=0;e<n.length;e++)if(!me(n[e],r[e]))return!1;return!0}let n=!!e&&typeof e==`object`;if(n!==(!!t&&typeof t==`object`))return!1;if(!n)return e===t;let r=e,i=t,a=new Set([...Object.keys(r),...Object.keys(i)]);for(let e of a){if(!e)continue;let t=r[e],n=i[e];if((t!==void 0||n!==void 0)&&!me(t,n))return!1}return!0}var he=e=>e==null||e===``||typeof e!=`string`?e:/^(true|false)$/i.test(e)?e.toLowerCase()===`true`:/^0\d+$/.test(e)?e:/^-?\d+(\.\d+)?$/.test(e)?Number(e):e.trim(),ge=/auth|key|token|secret/i,_e=[`key`,`apikey`,`api_key`,`access_token`,`token`,`secret`];function ve(e){return e?(e instanceof Headers?Array.from(e.entries()):Array.isArray(e)?e:Object.entries(e)).reduce((e,[t,n])=>(e[t]=ge.test(t)?`[REDACTED]`:n,e),{}):{}}function ye(e){return{...e,headers:ve(e.headers)}}function be(e){try{let t=new URL(e,`http://placeholder-base.invalid`),n=!1;for(let e of _e)t.searchParams.has(e)&&(t.searchParams.set(e,`[REDACTED]`),n=!0);return n?e.startsWith(`http`)?t.toString():`${t.pathname}${t.search}${t.hash}`:e}catch{return e}}function xe(e){let{body:t,headers:n}=e,r=n?.[`Content-Type`]||``;return(Array.isArray(t)||typeof t==`object`?[`application/json`,`application/x-www-form-urlencoded`,`multipart/form-data`]:[`text/plain`,`text/html`]).includes(r)?r:typeof t==`object`?`application/json`:typeof t==`string`&&t.startsWith(`<`)?`text/html`:`text/plain`}async function Se(e,t=null,n=globalThis.fetch){let r={redirect:`follow`,method:t?.method?.toUpperCase()||`GET`,headers:t?.headers||{},signal:t?.signal};if(t?.body){if([`GET`,`HEAD`].includes(r.method))e+=(e.includes(`?`)?`&`:`?`)+new URLSearchParams(t.body);else switch(xe(t)){case`application/json`:r.body=JSON.stringify(t.body);break;case`application/x-www-form-urlencoded`:r.body=new URLSearchParams(t.body);break;case`multipart/form-data`:{let e=new FormData,n=t.body;for(let t in n)e.append(t,n[t]);r.body=e;break}case`text/html`:case`text/plain`:if(typeof t.body!=`string`)throw Error(`Fetch: Body must be a string for text/plain or text/html content types.`);r.body=t.body;break;default:throw Error(`Fetch: Unsupported Content-Type`)}}return n(e,r).then(e=>{if(!e.ok)return e.text().then(t=>{throw{response:e,text:t}});let n=t?.headers?.Accept,r=e.headers.get(`Content-Type`)?.split(`;`)[0];return n&&n.split(`;`)[0]!==r?e.text().then(t=>{throw{response:e,text:t}}):e?.headers&&e.headers.get(`Content-Type`)===`application/json`?e.json():e.text()}).catch(n=>{if(n.message)return console.warn(`fetch: ${n.message}`,be(e),ye(r)),null;let{response:i,text:a}=n;function o(){let n=i?.headers.get(`Content-Type`)?.split(`;`)[0]||``;if(n===`application/json`&&(a.startsWith(`{`)||a.startsWith(`[`))){let t=JSON.parse(a);return console.warn(`fetch: Error`,be(e),ye(r),i.status,t),t}{let o=t?.headers?.Accept?.split(`;`)[0]||``,s=o===n?o===`application/json`?`Request Accept header is application/json but response is not JSON`:null:`Request Accept header does not match response Content-Type (Accept: `+o+`, Content-Type: `+n+`)`;return console.warn(`fetch: ${s}`,be(e),ye(r),i.status,a),s&&o===`application/json`?{error:a,status:520}:a}}throw o()})}async function Ce(e,t=null,n=globalThis.fetch){return Se(e,{...t,headers:{Accept:`application/json`,"Content-Type":`application/json`,...t?.headers}},n).then(e=>{if(e?.error)throw e;return e})}async function we(e,t={},n=3,r=[429],i=globalThis.fetch){return i(e,t).then(a=>a.ok?a.json():!r.includes(a.status)&&n>0?(console.log(`Retrying...`,n,be(e),ye(t)),I(500).then(()=>we(e,t,n-1,r,i))):(console.error(a),a)).catch(e=>console.error(e,`BBBBBBBBBBBBBBBBBBBBBBB`))}var Te={mode:`light`,radius:.5,colors:{background:`0 0% 100%`,foreground:`222.2 84% 4.9%`,canvas:`210 40% 98%`,card:`0 0% 100%`,cardForeground:`222.2 84% 4.9%`,popover:`0 0% 100%`,popoverForeground:`222.2 84% 4.9%`,primary:`221.2 83.2% 53.3%`,primaryForeground:`210 40% 98%`,secondary:`210 40% 96.1%`,secondaryForeground:`222.2 47.4% 11.2%`,muted:`210 40% 96.1%`,mutedForeground:`215.4 16.3% 46.9%`,accent:`210 40% 96.1%`,accentForeground:`222.2 47.4% 11.2%`,destructive:`0 84.2% 60.2%`,destructiveForeground:`210 40% 98%`,success:`142.1 76.2% 36.3%`,successForeground:`0 0% 100%`,warning:`32.1 94.6% 43.7%`,warningForeground:`0 0% 100%`,info:`198.6 88.7% 48.4%`,infoForeground:`0 0% 100%`,border:`214.3 31.8% 91.4%`,input:`214.3 31.8% 91.4%`,ring:`221.2 83.2% 53.3%`},dark:{background:`222.2 84% 4.9%`,foreground:`210 40% 98%`,canvas:`222.2 84% 4.9%`,card:`222.2 84% 4.9%`,cardForeground:`210 40% 98%`,popover:`222.2 84% 4.9%`,popoverForeground:`210 40% 98%`,primary:`217.2 91.2% 59.8%`,primaryForeground:`222.2 47.4% 11.2%`,secondary:`217.2 32.6% 17.5%`,secondaryForeground:`210 40% 98%`,muted:`217.2 32.6% 17.5%`,mutedForeground:`215 20.2% 65.1%`,accent:`217.2 32.6% 17.5%`,accentForeground:`210 40% 98%`,destructive:`0 62.8% 30.6%`,destructiveForeground:`210 40% 98%`,success:`142.1 70.6% 45.3%`,successForeground:`0 0% 100%`,warning:`32.1 94.6% 55%`,warningForeground:`0 0% 100%`,info:`198.6 88.7% 60%`,infoForeground:`0 0% 100%`,border:`217.2 32.6% 17.5%`,input:`217.2 32.6% 17.5%`,ring:`224.3 76.3% 48%`}},Ee={none:{from:{},to:{},transition:{duration:0,easing:`linear`,properties:[`opacity`,`transform`,`box-shadow`]},reducedMotion:`always`},fade:{from:{opacity:0},to:{opacity:1},transition:{duration:160,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`opacity`]},reducedMotion:`respect-user`},fadeUp:{from:{opacity:0,transform:`translateY(8px)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:160,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},fadeDown:{from:{opacity:0,transform:`translateY(-8px)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:140,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`opacity`,`transform`,`visibility`]},reducedMotion:`respect-user`},slideFromRight:{from:{opacity:0,transform:`translateX(100%)`},to:{opacity:1,transform:`translateX(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromLeft:{from:{opacity:0,transform:`translateX(-100%)`},to:{opacity:1,transform:`translateX(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromTop:{from:{opacity:0,transform:`translateY(-100%)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromBottom:{from:{opacity:0,transform:`translateY(100%)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},press:{from:{},to:{transform:`scale(0.98)`},transition:{duration:100,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`transform`,`box-shadow`]},reducedMotion:`respect-user`},imageZoom:{from:{transform:`scale(1)`},to:{transform:`scale(1.06)`},transition:{duration:300,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`transform`]},reducedMotion:`respect-user`}},De={Grid:{Card:{wrapperClassName:``,className:`rounded-none border-0 bg-transparent shadow-none`,headerClassName:`flex justify-between border-b-0 bg-transparent px-0 py-2`,bodyClassName:`p-0 mt-2`,footerClassName:`border-t-0 bg-transparent px-0 py-2`,loading:!1},Table:{wrapperClassName:`rounded-lg border border-border bg-card shadow-sm`,className:``,headerClassName:``,bodyClassName:``,footerClassName:``,scrollClassName:`overflow-x-auto`,selectedClassName:`bg-primary/10`},Gallery:{wrapperClassName:`rounded-lg border border-border bg-card shadow-sm p-3`,className:``,scrollClassName:``,headerClassName:``,bodyClassName:``,footerClassName:``,selectedClassName:`bg-primary/20`,gap:1,rowCols:4},Modal:{mode:`form`,size:`lg`,position:`center`,wrapperClassName:``,className:``,headerClassName:``,titleClassName:``,subtitleClassName:`pr-1 text-muted-foreground`,bodyClassName:``,footerClassName:``,iconExpand:`fullscreen`,iconCollapse:`fullscreen-exit`,motion:{center:`fade`,top:`slideFromTop`,left:`slideFromLeft`,right:`slideFromRight`,bottom:`slideFromBottom`,backdrop:`fade`}}},Table:{wrapperClassName:``,className:``,headerClassName:``,bodyClassName:``,footerClassName:``,scrollClassName:`overflow-x-auto`,selectedClassName:`bg-primary/10`},Gallery:{wrapperClassName:``,className:``,scrollClassName:``,headerClassName:``,bodyClassName:``,footerClassName:``,selectedClassName:`bg-primary/20`,gap:4,rowCols:2},Pagination:{wrapperClassName:``,className:``,stickyClassName:`fixed bottom-0 left-0 right-0 mx-5`,scrollToTop:!1,scrollBehavior:`auto`,maxItems:5,sticky:!0,align:`end`},Carousel:{showIndicators:!0,showControls:!0,showCaption:!0,dark:!1,autoPlay:!0},Card:{wrapperClassName:``,className:``,headerClassName:`flex justify-between bg-white/[.15] font-normal`,bodyClassName:`flex flex-col`,footerClassName:``,loading:!1},Loader:{wrapperClassName:``,className:``,icon:`loader-2`,title:`Loading..`,description:``},ActionButton:{className:`btn-primary`,badgeClassName:`rounded-full bg-destructive text-destructive-foreground`,motion:{press:`press`}},LoadingButton:{className:`btn-primary`,badgeClassName:`rounded-full bg-destructive text-destructive-foreground`,motion:{press:`press`}},LinkButton:{className:`btn-outline-secondary`},Alert:{className:``},Badge:{className:``},Modal:{size:`lg`,position:`center`,wrapperClassName:``,className:``,headerClassName:``,titleClassName:``,subtitleClassName:`pr-1 text-muted-foreground`,bodyClassName:``,footerClassName:``,iconExpand:`fullscreen`,iconCollapse:`fullscreen-exit`,motion:{center:`fade`,top:`slideFromTop`,left:`slideFromLeft`,right:`slideFromRight`,bottom:`slideFromBottom`,backdrop:`fade`}},Dropdown:{wrapperClassName:``,className:``,triggerClassName:`btn btn-outline-primary`,badgeClassName:``,menuClassName:`border-border/60 bg-popover/95 shadow-xl shadow-black/5 backdrop-blur supports-[backdrop-filter]:bg-popover/90 dark:shadow-black/20`,menuHeaderClass:`text-muted-foreground/70`,menuItemClass:``,menuDividerClass:`bg-border/60`,headerClassName:``,footerClassName:``,Menu:{wrapperClassName:``,className:`list-none p-0 m-0`,headerClassName:``,itemClassName:``,linkClassName:`flex items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent`,iconClassName:`text-muted-foreground`,textClassName:``,badgeClassName:``,arrowClassName:``,submenuClassName:``},motion:{open:`fadeDown`,close:`fadeDown`,press:`press`}},Notifications:{wrapperClassName:``,Dropdown:{className:``,triggerClassName:`btn btn-link`,menuClassName:`mt-1 text-[11px] w-[300px] pt-1`}},Select:{wrapperClassName:``,className:``},Autocomplete:{wrapperClassName:``,className:``,listClassName:``,optionClassName:``},AddressAutocomplete:{wrapperClassName:``,className:``,menuClassName:`border-border/60 bg-popover/95 shadow-xl shadow-black/5 backdrop-blur supports-[backdrop-filter]:bg-popover/90 dark:shadow-black/20`,itemClassName:``},Form:{wrapperClassName:``,buttonSaveClass:`btn-outline-primary`,buttonDeleteClass:`btn-outline-danger`,buttonBackClass:`btn-link`,Card:{headerClassName:``,bodyClassName:``,footerClassName:`flex items-center justify-end gap-3`}},Menu:{wrapperClassName:`flex-1 overflow-auto p-4`,className:`flex flex-col mb-auto`,headerClassName:``,itemClassName:``,linkClassName:`flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent/50 hover:text-foreground`,iconClassName:`mr-1 shrink-0`,textClassName:`flex-1`,badgeClassName:`ml-1`,arrowClassName:``,submenuClassName:`mt-1 flex flex-col gap-1 pl-4`},SideNav:{wrapperClassName:``,shellClassName:`border-r border-sidebar-border bg-sidebar text-sidebar-foreground`,overlayClassName:`shadow-xl`,headerClassName:`border-b border-sidebar-border px-1.5 py-2`,navClassName:`px-1.5 py-2`,bottomNavClassName:`border-t border-sidebar-border px-1.5 py-2`,footerClassName:`border-t border-sidebar-border px-1.5 py-2`,groupLabelClassName:`text-[10.5px] font-semibold uppercase tracking-widest text-sidebar-foreground/60 select-none`,groupDividerClassName:`bg-sidebar-border`,itemClassName:`rounded-lg`,itemActiveClassName:`bg-sidebar-accent text-sidebar-accent-foreground font-medium`,itemChildActiveClassName:`bg-sidebar-accent/60 text-sidebar-accent-foreground font-medium`,itemInactiveClassName:`text-sidebar-foreground/80 hover:text-sidebar-accent-foreground hover:bg-sidebar-accent/70`,itemIconClassName:``,itemTextClassName:``,itemBadgeClassName:`ml-auto shrink-0 text-[10px] font-semibold leading-none px-1.5 py-[3px] rounded-full bg-primary/15 text-primary`,itemCollapsedBadgeClassName:`absolute -top-0.5 -right-1 h-[7px] w-[7px] rounded-full bg-primary ring-1 ring-card`,itemToggleClassName:`shrink-0 flex items-center justify-center w-6 h-6 rounded-md transition-colors text-muted-foreground/50 hover:text-foreground hover:bg-accent/70`,subItemClassName:`rounded-md`,subItemActiveClassName:`bg-sidebar-accent text-sidebar-accent-foreground font-medium`,subItemInactiveClassName:`text-sidebar-foreground/80 hover:text-sidebar-accent-foreground hover:bg-sidebar-accent/70`,collapseButtonClassName:`shrink-0 flex items-center justify-center rounded-md w-8 h-8 transition-colors text-sidebar-foreground/70 hover:text-sidebar-accent-foreground hover:bg-sidebar-accent/70`},Toolbar:{wrapperClassName:`z-20 w-full`,stickyClassName:`sticky top-0`,restingClassName:`bg-transparent border-transparent shadow-none`,scrolledClassName:`border-b border-border/60 bg-background/85 backdrop-blur supports-[backdrop-filter]:bg-background/75`,innerClassName:`flex min-h-14 items-center gap-3 px-4 md:px-6`,leadingClassName:`flex min-w-0 items-center gap-2 shrink-0`,centerClassName:`flex min-w-0 flex-1 items-center gap-3`,trailingClassName:`flex items-center gap-2 shrink-0`},ListCard:{wrapperClassName:``,className:`shadow-sm`,activeClassName:`border-primary/30 bg-primary/10 shadow-sm`,inactiveClassName:`hover:bg-accent/40`,disabledClassName:`cursor-not-allowed opacity-60`,dashedClassName:`border-dashed`,compactClassName:`p-3`,leadingClassName:``,bodyClassName:``,headerClassName:``,titleClassName:``,descriptionClassName:``,metaClassName:``,badgeClassName:``,trailingClassName:``,footerClassName:``,motion:{press:`press`}},ProviderSwitcher:{wrapperClassName:`w-full`,className:`w-full`,triggerClassName:`flex w-full items-center gap-2 rounded-xl px-1.5 py-1.5 text-left text-sm font-semibold text-foreground transition-colors hover:bg-accent/40`,disabledClassName:`pointer-events-none opacity-60`,iconWrapperClassName:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,labelClassName:`block truncate`,captionClassName:`block truncate text-[11px] font-normal text-muted-foreground/80`,chevronClassName:`ml-auto shrink-0 text-muted-foreground/70`,itemClassName:``,itemActiveClassName:``,itemInactiveClassName:``,itemMetaClassName:`text-xs text-muted-foreground`,checkClassName:`text-primary`},Brand:{wrapperClassName:``,className:`flex items-center`,logoClassName:`flex items-center gap-2 font-semibold`,labelClassName:`text-sm font-medium`},SignIn:{className:`flex items-center`,avatarClass:`mx-2 rounded-full object-cover`},Image:{wrapperClassName:``,className:``,motion:{enter:`fade`,hover:!1}},ImageAvatar:{wrapperClassName:``,className:``,motion:{enter:`fade`,hover:!1}},Identicon:{wrapperClassName:``,className:``},Percentage:{wrapperClassName:``,className:``},Tree:{wrapperClassName:``,className:``,itemClassName:``,selectedClassName:``},DescriptionList:{wrapperClassName:``,className:``,itemClassName:``,labelClassName:``,valueClassName:``},Tab:{wrapperClassName:``,className:``,menuClassName:``,itemClassName:``,contentClassName:``,triggerClassName:``,activeTriggerClassName:``,inactiveTriggerClassName:``,motion:{enter:`fadeUp`}},Code:{wrapperClassName:``,className:``},CodeEditor:{wrapperClassName:``,className:``},Prompt:{wrapperClassName:``,className:``},Repeat:{itemClassName:``,inlineItemClassName:``,addButtonClassName:``}},Oe={preset:Te,motion:Ee,components:De},ke={preset:{mode:`light`,radius:.125,colors:{background:`0 0% 98%`,foreground:`215 25% 16%`,card:`0 0% 100%`,cardForeground:`215 25% 16%`,popover:`0 0% 100%`,popoverForeground:`215 25% 16%`,primary:`215 25% 27%`,primaryForeground:`210 40% 98%`,secondary:`215 15% 93%`,secondaryForeground:`215 25% 27%`,muted:`215 15% 93%`,mutedForeground:`215 15% 50%`,accent:`215 15% 90%`,accentForeground:`215 25% 27%`,destructive:`0 72% 51%`,destructiveForeground:`0 0% 100%`,success:`142.1 76.2% 36.3%`,successForeground:`0 0% 100%`,warning:`32.1 94.6% 43.7%`,warningForeground:`0 0% 100%`,info:`198.6 88.7% 48.4%`,infoForeground:`0 0% 100%`,border:`215 15% 85%`,input:`215 15% 85%`,ring:`215 25% 27%`},dark:{background:`215 20% 12%`,foreground:`215 10% 85%`,card:`215 20% 15%`,cardForeground:`215 10% 85%`,popover:`215 20% 15%`,popoverForeground:`215 10% 85%`,primary:`215 35% 55%`,primaryForeground:`0 0% 100%`,secondary:`215 20% 20%`,secondaryForeground:`215 10% 75%`,muted:`215 20% 20%`,mutedForeground:`215 10% 55%`,accent:`215 20% 22%`,accentForeground:`215 10% 85%`,destructive:`0 62% 40%`,destructiveForeground:`0 0% 100%`,success:`142.1 70.6% 45.3%`,successForeground:`0 0% 100%`,warning:`32.1 94.6% 55%`,warningForeground:`0 0% 100%`,info:`198.6 88.7% 60%`,infoForeground:`0 0% 100%`,border:`215 20% 22%`,input:`215 20% 22%`,ring:`215 35% 55%`}},motion:{none:{from:{},to:{},transition:{duration:0,easing:`linear`,properties:[`opacity`,`transform`,`box-shadow`]},reducedMotion:`always`},fade:{from:{opacity:0},to:{opacity:1},transition:{duration:140,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`opacity`]},reducedMotion:`respect-user`},fadeUp:{from:{opacity:0,transform:`translateY(4px)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:140,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},fadeDown:{from:{opacity:0,transform:`translateY(-4px)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:120,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`opacity`,`transform`,`visibility`]},reducedMotion:`respect-user`},slideFromRight:{from:{opacity:0,transform:`translateX(100%)`},to:{opacity:1,transform:`translateX(0)`},transition:{duration:180,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromLeft:{from:{opacity:0,transform:`translateX(-100%)`},to:{opacity:1,transform:`translateX(0)`},transition:{duration:180,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromTop:{from:{opacity:0,transform:`translateY(-100%)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:180,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromBottom:{from:{opacity:0,transform:`translateY(100%)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:180,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},press:{from:{},to:{transform:`scale(0.99)`},transition:{duration:90,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`transform`,`box-shadow`]},reducedMotion:`respect-user`},imageZoom:{from:{transform:`scale(1)`},to:{transform:`scale(1.06)`},transition:{duration:300,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`transform`]},reducedMotion:`respect-user`}},components:{Grid:{Card:{wrapperClassName:``,className:`rounded-none border-0 bg-transparent shadow-none`,headerClassName:`flex justify-between border-b-0 bg-transparent px-0 py-2`,bodyClassName:`p-0 mt-2`,footerClassName:`border-t-0 bg-transparent px-0 py-2`,loading:!1},Table:{wrapperClassName:`rounded-lg border border-border bg-card shadow-sm`,className:``,headerClassName:``,bodyClassName:``,footerClassName:``,scrollClassName:`overflow-x-auto`,selectedClassName:`bg-primary/10`},Gallery:{wrapperClassName:`rounded-lg border border-border bg-card shadow-sm p-3`,className:``,scrollClassName:``,headerClassName:``,bodyClassName:``,footerClassName:``,selectedClassName:`bg-primary/20`,gap:1,rowCols:4},Modal:{mode:`form`,size:`lg`,position:`center`,wrapperClassName:``,className:``,headerClassName:``,titleClassName:``,subtitleClassName:`pr-1 text-muted-foreground`,bodyClassName:``,footerClassName:``,iconExpand:`fullscreen`,iconCollapse:`fullscreen-exit`,motion:{center:`fade`,top:`slideFromTop`,left:`slideFromLeft`,right:`slideFromRight`,bottom:`slideFromBottom`,backdrop:`fade`}}},Table:{wrapperClassName:``,className:``,headerClassName:``,bodyClassName:``,footerClassName:``,scrollClassName:`overflow-x-auto`,selectedClassName:`bg-primary/10`},Gallery:{wrapperClassName:``,className:``,scrollClassName:``,headerClassName:``,bodyClassName:``,footerClassName:``,selectedClassName:`bg-primary/20`,gap:4,rowCols:2},Pagination:{wrapperClassName:``,className:``,stickyClassName:`fixed bottom-0 left-0 right-0 mx-5`,scrollToTop:!1,scrollBehavior:`auto`,maxItems:5,sticky:!0,align:`end`},Carousel:{showIndicators:!0,showControls:!0,showCaption:!0,dark:!1,autoPlay:!0},Card:{wrapperClassName:``,className:``,headerClassName:`flex justify-between bg-white/[.15] font-normal`,bodyClassName:`flex flex-col`,footerClassName:``,loading:!1},Loader:{wrapperClassName:``,className:``,icon:`loader-2`,title:`Loading..`,description:``},ActionButton:{className:`btn-primary`,badgeClassName:`rounded-full bg-destructive text-destructive-foreground`,motion:{press:`press`}},LoadingButton:{className:`btn-primary`,badgeClassName:`rounded-full bg-destructive text-destructive-foreground`,motion:{press:`press`}},LinkButton:{className:`btn-outline-secondary`},Alert:{className:``},Badge:{className:``},Modal:{size:`lg`,position:`center`,wrapperClassName:``,className:``,headerClassName:``,titleClassName:``,subtitleClassName:`pr-1 text-muted-foreground`,bodyClassName:``,footerClassName:``,iconExpand:`fullscreen`,iconCollapse:`fullscreen-exit`,motion:{center:`fade`,top:`slideFromTop`,left:`slideFromLeft`,right:`slideFromRight`,bottom:`slideFromBottom`,backdrop:`fade`}},Dropdown:{wrapperClassName:``,className:``,triggerClassName:`btn btn-outline-primary`,badgeClassName:``,menuClassName:`border-border/60 bg-popover/95 shadow-lg shadow-black/5 supports-[backdrop-filter]:bg-popover/92`,menuHeaderClass:`text-muted-foreground/70`,menuItemClass:``,menuDividerClass:`bg-border/60`,headerClassName:``,footerClassName:``,Menu:{wrapperClassName:``,className:`list-none p-0 m-0`,headerClassName:``,itemClassName:``,linkClassName:`flex items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent`,iconClassName:`text-muted-foreground`,textClassName:``,badgeClassName:``,arrowClassName:``,submenuClassName:``},motion:{open:`fadeDown`,close:`fadeDown`,press:`press`}},Notifications:{wrapperClassName:``,Dropdown:{className:``,triggerClassName:`btn btn-link`,menuClassName:`mt-1 text-[11px] w-[300px] pt-1`}},Select:{wrapperClassName:``,className:``},Autocomplete:{wrapperClassName:``,className:``,listClassName:``,optionClassName:``},AddressAutocomplete:{wrapperClassName:``,className:``,menuClassName:`border-border/60 bg-popover/95 shadow-lg shadow-black/5 supports-[backdrop-filter]:bg-popover/92`,itemClassName:``},Form:{wrapperClassName:``,buttonSaveClass:`btn-outline-primary`,buttonDeleteClass:`btn-outline-danger`,buttonBackClass:`btn-link`,Card:{headerClassName:``,bodyClassName:``,footerClassName:`flex items-center justify-end gap-3`}},Menu:{wrapperClassName:`flex-1 overflow-auto p-4`,className:`flex flex-col mb-auto`,headerClassName:``,itemClassName:``,linkClassName:`flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent/50 hover:text-foreground`,iconClassName:`mr-1 shrink-0`,textClassName:`flex-1`,badgeClassName:`ml-1`,arrowClassName:``,submenuClassName:`mt-1 flex flex-col gap-1 pl-4`},SideNav:{wrapperClassName:``,shellClassName:`border-r border-border bg-card text-foreground`,overlayClassName:`shadow-lg`,headerClassName:`border-b border-border px-1.5 py-2`,navClassName:`px-1.5 py-2`,bottomNavClassName:`border-t border-border px-1.5 py-2`,footerClassName:`border-t border-border px-1.5 py-2`,groupLabelClassName:`text-[10px] font-semibold uppercase tracking-[0.16em] text-muted-foreground/70 select-none`,groupDividerClassName:`bg-border/60`,itemClassName:`rounded-md`,itemActiveClassName:`bg-primary/10 text-primary font-medium`,itemChildActiveClassName:`bg-accent text-foreground font-medium`,itemInactiveClassName:`text-muted-foreground hover:text-foreground hover:bg-accent/80`,itemIconClassName:``,itemTextClassName:``,itemBadgeClassName:`ml-auto shrink-0 text-[10px] font-semibold leading-none px-1.5 py-[3px] rounded-full bg-primary/15 text-primary`,itemCollapsedBadgeClassName:`absolute -top-0.5 -right-1 h-[7px] w-[7px] rounded-full bg-primary ring-1 ring-card`,itemToggleClassName:`shrink-0 flex items-center justify-center w-6 h-6 rounded transition-colors text-muted-foreground/50 hover:text-foreground hover:bg-accent/80`,subItemClassName:`rounded-sm`,subItemActiveClassName:`bg-primary/10 text-primary font-medium`,subItemInactiveClassName:`text-muted-foreground hover:text-foreground hover:bg-accent/80`,collapseButtonClassName:`shrink-0 flex items-center justify-center rounded-md w-8 h-8 transition-colors text-muted-foreground hover:text-foreground hover:bg-accent/80`},Toolbar:{wrapperClassName:`z-20 w-full`,stickyClassName:`sticky top-0`,restingClassName:`bg-transparent border-transparent shadow-none`,scrolledClassName:`border-b border-border bg-background/90 backdrop-blur supports-[backdrop-filter]:bg-background/85`,innerClassName:`flex min-h-13 items-center gap-3 px-4 md:px-5`,leadingClassName:`flex min-w-0 items-center gap-2 shrink-0`,centerClassName:`flex min-w-0 flex-1 items-center gap-3`,trailingClassName:`flex items-center gap-2 shrink-0`},ListCard:{wrapperClassName:``,className:``,activeClassName:`border-primary/30 bg-primary/10`,inactiveClassName:`hover:bg-accent/60`,disabledClassName:`cursor-not-allowed opacity-60`,dashedClassName:`border-dashed`,compactClassName:`p-3`,leadingClassName:``,bodyClassName:``,headerClassName:``,titleClassName:``,descriptionClassName:``,metaClassName:``,badgeClassName:``,trailingClassName:``,footerClassName:``,motion:{press:`press`}},ProviderSwitcher:{wrapperClassName:`w-full`,className:`w-full`,triggerClassName:`flex w-full items-center gap-2 rounded-xl px-1.5 py-1.5 text-left text-sm font-semibold text-foreground transition-colors hover:bg-accent/60`,disabledClassName:`pointer-events-none opacity-60`,iconWrapperClassName:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,labelClassName:`block truncate`,captionClassName:`block truncate text-[11px] font-normal text-muted-foreground/80`,chevronClassName:`ml-auto shrink-0 text-muted-foreground/70`,itemClassName:``,itemActiveClassName:``,itemInactiveClassName:``,itemMetaClassName:`text-xs text-muted-foreground`,checkClassName:`text-primary`},Brand:{wrapperClassName:``,className:`flex items-center`,logoClassName:`flex items-center gap-2 font-semibold`,labelClassName:`text-sm font-medium`},SignIn:{className:`flex items-center`,avatarClass:`mx-2 rounded-full object-cover`},Image:{wrapperClassName:``,className:``,motion:{enter:`fade`,hover:!1}},ImageAvatar:{wrapperClassName:``,className:``,motion:{enter:`fade`,hover:!1}},Identicon:{wrapperClassName:``,className:``},Percentage:{wrapperClassName:``,className:``},Tree:{wrapperClassName:``,className:``,itemClassName:``,selectedClassName:``},DescriptionList:{wrapperClassName:``,className:``,itemClassName:``,labelClassName:``,valueClassName:``},Tab:{wrapperClassName:``,className:``,menuClassName:``,itemClassName:``,contentClassName:``,triggerClassName:``,activeTriggerClassName:``,inactiveTriggerClassName:``,motion:{enter:`fadeUp`}},Code:{wrapperClassName:``,className:``},CodeEditor:{wrapperClassName:``,className:``},Prompt:{wrapperClassName:``,className:``},Repeat:{itemClassName:``,inlineItemClassName:``,addButtonClassName:``}}},Ae={preset:{mode:`dark`,radius:0,colors:{background:`0 0% 98%`,foreground:`215 25% 16%`,card:`0 0% 100%`,cardForeground:`215 25% 16%`,popover:`0 0% 100%`,popoverForeground:`215 25% 16%`,primary:`160 84% 39%`,primaryForeground:`0 0% 0%`,secondary:`160 20% 92%`,secondaryForeground:`160 25% 20%`,muted:`160 15% 93%`,mutedForeground:`215 15% 50%`,accent:`160 30% 90%`,accentForeground:`160 84% 25%`,destructive:`0 72% 51%`,destructiveForeground:`0 0% 100%`,success:`160 84% 39%`,successForeground:`0 0% 0%`,warning:`45 96% 48%`,warningForeground:`0 0% 0%`,info:`199 89% 48%`,infoForeground:`0 0% 0%`,border:`160 20% 85%`,input:`160 20% 85%`,ring:`160 84% 39%`},dark:{background:`220 20% 7%`,foreground:`160 10% 90%`,card:`220 20% 10%`,cardForeground:`160 10% 90%`,popover:`220 20% 10%`,popoverForeground:`160 10% 90%`,primary:`160 84% 39%`,primaryForeground:`0 0% 0%`,secondary:`220 20% 15%`,secondaryForeground:`160 10% 75%`,muted:`220 20% 14%`,mutedForeground:`220 10% 55%`,accent:`160 60% 15%`,accentForeground:`160 84% 70%`,destructive:`0 72% 51%`,destructiveForeground:`0 0% 100%`,success:`160 84% 45%`,successForeground:`0 0% 0%`,warning:`45 96% 55%`,warningForeground:`0 0% 0%`,info:`199 89% 55%`,infoForeground:`0 0% 0%`,border:`220 20% 18%`,input:`220 20% 18%`,ring:`160 84% 39%`}},motion:{none:{from:{},to:{},transition:{duration:0,easing:`linear`,properties:[`opacity`,`transform`,`box-shadow`]},reducedMotion:`always`},fade:{from:{opacity:0},to:{opacity:1},transition:{duration:180,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`]},reducedMotion:`respect-user`},fadeUp:{from:{opacity:0,transform:`translateY(10px)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:200,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},fadeDown:{from:{opacity:0,transform:`translateY(-10px)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:180,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`,`visibility`]},reducedMotion:`respect-user`},slideFromRight:{from:{opacity:0,transform:`translateX(100%)`},to:{opacity:1,transform:`translateX(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromLeft:{from:{opacity:0,transform:`translateX(-100%)`},to:{opacity:1,transform:`translateX(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromTop:{from:{opacity:0,transform:`translateY(-100%)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromBottom:{from:{opacity:0,transform:`translateY(100%)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},press:{from:{},to:{transform:`scale(0.97)`},transition:{duration:110,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`transform`,`box-shadow`]},reducedMotion:`respect-user`},imageZoom:{from:{transform:`scale(1)`},to:{transform:`scale(1.06)`},transition:{duration:280,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`transform`]},reducedMotion:`respect-user`}},components:{Grid:{Card:{wrapperClassName:``,className:`rounded-none border-0 bg-transparent shadow-none`,headerClassName:`flex justify-between border-b-0 bg-transparent px-0 py-2`,bodyClassName:`p-0 mt-2`,footerClassName:`border-t-0 bg-transparent px-0 py-2`,loading:!1},Table:{wrapperClassName:`rounded-lg border border-border bg-card shadow-sm`,className:``,headerClassName:``,bodyClassName:``,footerClassName:``,scrollClassName:`overflow-x-auto`,selectedClassName:`bg-primary/10`},Gallery:{wrapperClassName:`rounded-lg border border-border bg-card shadow-sm p-3`,className:``,scrollClassName:``,headerClassName:``,bodyClassName:``,footerClassName:``,selectedClassName:`bg-primary/20`,gap:1,rowCols:4},Modal:{mode:`form`,size:`lg`,position:`center`,wrapperClassName:``,className:``,headerClassName:``,titleClassName:``,subtitleClassName:`pr-1 text-muted-foreground`,bodyClassName:``,footerClassName:``,iconExpand:`fullscreen`,iconCollapse:`fullscreen-exit`,motion:{center:`fade`,top:`slideFromTop`,left:`slideFromLeft`,right:`slideFromRight`,bottom:`slideFromBottom`,backdrop:`fade`}}},Table:{wrapperClassName:``,className:``,headerClassName:``,bodyClassName:``,footerClassName:``,scrollClassName:`overflow-x-auto`,selectedClassName:`bg-primary/10`},Gallery:{wrapperClassName:``,className:``,scrollClassName:``,headerClassName:``,bodyClassName:``,footerClassName:``,selectedClassName:`bg-primary/20`,gap:4,rowCols:2},Pagination:{wrapperClassName:``,className:``,stickyClassName:`fixed bottom-0 left-0 right-0 mx-5`,scrollToTop:!1,scrollBehavior:`auto`,maxItems:5,sticky:!0,align:`end`},Carousel:{showIndicators:!0,showControls:!0,showCaption:!0,dark:!1,autoPlay:!0},Card:{wrapperClassName:``,className:``,headerClassName:`flex justify-between bg-white/[.15] font-normal`,bodyClassName:`flex flex-col`,footerClassName:``,loading:!1},Loader:{wrapperClassName:``,className:``,icon:`loader-2`,title:`Loading..`,description:``},ActionButton:{className:`btn-primary`,badgeClassName:`rounded-full bg-destructive text-destructive-foreground`,motion:{press:`press`}},LoadingButton:{className:`btn-primary`,badgeClassName:`rounded-full bg-destructive text-destructive-foreground`,motion:{press:`press`}},LinkButton:{className:`btn-outline-secondary`},Alert:{className:``},Badge:{className:``},Modal:{size:`lg`,position:`center`,wrapperClassName:``,className:``,headerClassName:``,titleClassName:``,subtitleClassName:`pr-1 text-muted-foreground`,bodyClassName:``,footerClassName:``,iconExpand:`fullscreen`,iconCollapse:`fullscreen-exit`,motion:{center:`fade`,top:`slideFromTop`,left:`slideFromLeft`,right:`slideFromRight`,bottom:`slideFromBottom`,backdrop:`fade`}},Dropdown:{wrapperClassName:``,className:``,triggerClassName:`btn btn-outline-primary`,badgeClassName:``,menuClassName:`rounded-none border-border/70 bg-popover/95 shadow-[0_0_0_1px_hsl(var(--border)/0.55),0_12px_32px_rgba(0,0,0,0.35)] supports-[backdrop-filter]:bg-popover/92`,menuHeaderClass:`text-muted-foreground/75`,menuItemClass:``,menuDividerClass:`bg-border/70`,headerClassName:``,footerClassName:``,Menu:{wrapperClassName:``,className:`list-none p-0 m-0`,headerClassName:``,itemClassName:``,linkClassName:`flex items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent`,iconClassName:`text-muted-foreground`,textClassName:``,badgeClassName:``,arrowClassName:``,submenuClassName:``},motion:{open:`fadeDown`,close:`fadeDown`,press:`press`}},Notifications:{wrapperClassName:``,Dropdown:{className:``,triggerClassName:`btn btn-link`,menuClassName:`mt-1 text-[11px] w-[300px] pt-1`}},Select:{wrapperClassName:``,className:``},Autocomplete:{wrapperClassName:``,className:``,listClassName:``,optionClassName:``},AddressAutocomplete:{wrapperClassName:``,className:``,menuClassName:`rounded-none border-border/70 bg-popover/95 shadow-[0_0_0_1px_hsl(var(--border)/0.55),0_12px_32px_rgba(0,0,0,0.35)] supports-[backdrop-filter]:bg-popover/92`,itemClassName:``},Form:{wrapperClassName:``,buttonSaveClass:`btn-outline-primary`,buttonDeleteClass:`btn-outline-danger`,buttonBackClass:`btn-link`,Card:{headerClassName:``,bodyClassName:``,footerClassName:`flex items-center justify-end gap-3`}},Menu:{wrapperClassName:`flex-1 overflow-auto p-4`,className:`flex flex-col mb-auto`,headerClassName:``,itemClassName:``,linkClassName:`flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent/50 hover:text-foreground`,iconClassName:`mr-1 shrink-0`,textClassName:`flex-1`,badgeClassName:`ml-1`,arrowClassName:``,submenuClassName:`mt-1 flex flex-col gap-1 pl-4`},SideNav:{wrapperClassName:``,shellClassName:`border-r border-border bg-card/95 text-foreground`,overlayClassName:`shadow-[0_0_32px_rgba(16,185,129,0.18)]`,headerClassName:`border-b border-border px-1.5 py-2`,navClassName:`px-1.5 py-2`,bottomNavClassName:`border-t border-border px-1.5 py-2`,footerClassName:`border-t border-border px-1.5 py-2`,groupLabelClassName:`text-[10px] font-semibold uppercase tracking-[0.18em] text-muted-foreground/70 select-none`,groupDividerClassName:`bg-border/70`,itemClassName:`rounded-none`,itemActiveClassName:`bg-primary/12 text-primary font-medium`,itemChildActiveClassName:`bg-accent/90 text-foreground font-medium`,itemInactiveClassName:`text-muted-foreground hover:text-foreground hover:bg-accent/80`,itemIconClassName:``,itemTextClassName:``,itemBadgeClassName:`ml-auto shrink-0 text-[10px] font-semibold leading-none px-1.5 py-[3px] rounded-none bg-primary/15 text-primary`,itemCollapsedBadgeClassName:`absolute -top-0.5 -right-1 h-[7px] w-[7px] rounded-none bg-primary ring-1 ring-card`,itemToggleClassName:`shrink-0 flex items-center justify-center w-6 h-6 rounded-none transition-colors text-muted-foreground/50 hover:text-foreground hover:bg-accent/80`,subItemClassName:`rounded-none`,subItemActiveClassName:`bg-primary/12 text-primary font-medium`,subItemInactiveClassName:`text-muted-foreground hover:text-foreground hover:bg-accent/80`,collapseButtonClassName:`shrink-0 flex items-center justify-center rounded-none w-8 h-8 transition-colors text-muted-foreground hover:text-foreground hover:bg-accent/80`},Toolbar:{wrapperClassName:`z-20 w-full`,stickyClassName:`sticky top-0`,restingClassName:`bg-transparent border-transparent shadow-none`,scrolledClassName:`border-b border-border bg-background/90 backdrop-blur supports-[backdrop-filter]:bg-background/85`,innerClassName:`flex min-h-14 items-center gap-3 px-4 md:px-6`,leadingClassName:`flex min-w-0 items-center gap-2 shrink-0`,centerClassName:`flex min-w-0 flex-1 items-center gap-3`,trailingClassName:`flex items-center gap-2 shrink-0`},ListCard:{wrapperClassName:``,className:`rounded-none shadow-[0_0_0_1px_hsl(var(--border)/0.7)]`,activeClassName:`border-primary/50 bg-primary/10 text-foreground`,inactiveClassName:`hover:bg-accent/70`,disabledClassName:`cursor-not-allowed opacity-60`,dashedClassName:`border-dashed`,compactClassName:`p-3`,leadingClassName:`rounded-none`,bodyClassName:``,headerClassName:``,titleClassName:``,descriptionClassName:``,metaClassName:``,badgeClassName:``,trailingClassName:``,footerClassName:``,motion:{press:`press`}},ProviderSwitcher:{wrapperClassName:`w-full`,className:`w-full`,triggerClassName:`flex w-full items-center gap-2 rounded-none px-1.5 py-1.5 text-left text-sm font-semibold text-foreground transition-colors hover:bg-accent/70`,disabledClassName:`pointer-events-none opacity-60`,iconWrapperClassName:`flex h-8 w-8 shrink-0 items-center justify-center rounded-none bg-primary/10 text-primary`,labelClassName:`block truncate`,captionClassName:`block truncate text-[11px] font-normal text-muted-foreground/80`,chevronClassName:`ml-auto shrink-0 text-muted-foreground/70`,itemClassName:`rounded-none`,itemActiveClassName:``,itemInactiveClassName:``,itemMetaClassName:`text-xs text-muted-foreground`,checkClassName:`text-primary`},Brand:{wrapperClassName:``,className:`flex items-center`,logoClassName:`flex items-center gap-2 font-semibold`,labelClassName:`text-sm font-medium`},SignIn:{className:`flex items-center`,avatarClass:`mx-2 rounded-full object-cover`},Image:{wrapperClassName:``,className:``,motion:{enter:`fade`,hover:`imageZoom`}},ImageAvatar:{wrapperClassName:``,className:``,motion:{enter:`fade`,hover:`imageZoom`}},Identicon:{wrapperClassName:``,className:``},Percentage:{wrapperClassName:``,className:``},Tree:{wrapperClassName:``,className:``,itemClassName:``,selectedClassName:``},DescriptionList:{wrapperClassName:``,className:``,itemClassName:``,labelClassName:``,valueClassName:``},Tab:{wrapperClassName:``,className:``,menuClassName:``,itemClassName:``,contentClassName:``,triggerClassName:``,activeTriggerClassName:``,inactiveTriggerClassName:``,motion:{enter:`fadeUp`}},Code:{wrapperClassName:``,className:``},CodeEditor:{wrapperClassName:``,className:``},Prompt:{wrapperClassName:``,className:``},Repeat:{itemClassName:``,inlineItemClassName:``,addButtonClassName:``}}},je={...Oe,preset:{...Oe.preset,mode:`dark`,colors:{...Oe.preset.colors,background:`0 0% 100%`,foreground:`0 0% 23.1%`,canvas:`0 0% 97.3%`,card:`0 0% 100%`,cardForeground:`0 0% 23.1%`,popover:`0 0% 100%`,popoverForeground:`0 0% 23.1%`,primary:`209 100% 36.1%`,primaryForeground:`0 0% 100%`,secondary:`0 0% 89.8%`,secondaryForeground:`0 0% 23.1%`,muted:`0 0% 94.9%`,mutedForeground:`0 0% 23.1%`,accent:`0 0% 94.9%`,accentForeground:`0 0% 23.1%`,border:`0 0% 89.8%`,input:`0 0% 80.8%`,ring:`209 100% 36.1%`,header:`0 0% 97.3%`,headerForeground:`0 0% 11.8%`,headerBorder:`0 0% 89.8%`,sidebar:`0 0% 97.3%`,sidebarForeground:`0 0% 23.1%`,sidebarBorder:`0 0% 89.8%`,sidebarAccent:`230.8 31.7% 92%`,sidebarAccentForeground:`0 0% 23.1%`,footer:`0 0% 97.3%`,footerForeground:`0 0% 23.1%`,footerBorder:`0 0% 89.8%`},dark:{...Oe.preset.dark,background:`0 0% 12.2%`,foreground:`0 0% 80%`,canvas:`0 0% 9.4%`,card:`0 0% 12.2%`,cardForeground:`0 0% 80%`,popover:`0 0% 12.2%`,popoverForeground:`0 0% 80%`,primary:`206 100% 41.6%`,primaryForeground:`0 0% 100%`,secondary:`195 4.5% 17.3%`,secondaryForeground:`0 0% 80%`,muted:`195 4.5% 17.3%`,mutedForeground:`0 0% 61.6%`,accent:`195 4.5% 17.3%`,accentForeground:`0 0% 80%`,border:`0 0% 16.9%`,input:`0 0% 23.5%`,ring:`206 100% 41.6%`,header:`0 0% 9.4%`,headerForeground:`0 0% 80%`,headerBorder:`0 0% 16.9%`,sidebar:`0 0% 9.4%`,sidebarForeground:`0 0% 80%`,sidebarBorder:`0 0% 16.9%`,sidebarAccent:`240 5.2% 22.7%`,sidebarAccentForeground:`0 0% 80%`,footer:`0 0% 9.4%`,footerForeground:`0 0% 80%`,footerBorder:`0 0% 16.9%`}}},Me={...Oe,preset:{...Oe.preset,mode:`light`,colors:{...Oe.preset.colors,background:`0 0% 100%`,foreground:`0 0% 23.1%`,canvas:`0 0% 97.3%`,card:`0 0% 100%`,cardForeground:`0 0% 23.1%`,popover:`0 0% 100%`,popoverForeground:`0 0% 23.1%`,primary:`209 100% 36.1%`,primaryForeground:`0 0% 100%`,secondary:`0 0% 89.8%`,secondaryForeground:`0 0% 23.1%`,muted:`0 0% 94.9%`,mutedForeground:`0 0% 23.1%`,accent:`0 0% 94.9%`,accentForeground:`0 0% 23.1%`,border:`0 0% 89.8%`,input:`0 0% 80.8%`,ring:`209 100% 36.1%`,header:`0 0% 97.3%`,headerForeground:`0 0% 11.8%`,headerBorder:`0 0% 89.8%`,sidebar:`0 0% 97.3%`,sidebarForeground:`0 0% 23.1%`,sidebarBorder:`0 0% 89.8%`,sidebarAccent:`230.8 31.7% 92%`,sidebarAccentForeground:`0 0% 23.1%`,footer:`0 0% 97.3%`,footerForeground:`0 0% 23.1%`,footerBorder:`0 0% 89.8%`},dark:{...Oe.preset.dark,background:`0 0% 12.2%`,foreground:`0 0% 80%`,canvas:`0 0% 9.4%`,card:`0 0% 12.2%`,cardForeground:`0 0% 80%`,popover:`0 0% 12.2%`,popoverForeground:`0 0% 80%`,primary:`206 100% 41.6%`,primaryForeground:`0 0% 100%`,secondary:`195 4.5% 17.3%`,secondaryForeground:`0 0% 80%`,muted:`195 4.5% 17.3%`,mutedForeground:`0 0% 61.6%`,accent:`195 4.5% 17.3%`,accentForeground:`0 0% 80%`,border:`0 0% 16.9%`,input:`0 0% 23.5%`,ring:`206 100% 41.6%`,header:`0 0% 9.4%`,headerForeground:`0 0% 80%`,headerBorder:`0 0% 16.9%`,sidebar:`0 0% 9.4%`,sidebarForeground:`0 0% 80%`,sidebarBorder:`0 0% 16.9%`,sidebarAccent:`240 5.2% 22.7%`,sidebarAccentForeground:`0 0% 80%`,footer:`0 0% 9.4%`,footerForeground:`0 0% 80%`,footerBorder:`0 0% 16.9%`}}},Ne={...Oe,preset:{...Oe.preset,mode:`dark`,colors:{...Oe.preset.colors,background:`0 0% 100%`,foreground:`0 0% 0%`,canvas:`0 0% 95.3%`,card:`0 0% 100%`,cardForeground:`0 0% 0%`,popover:`0 0% 100%`,popoverForeground:`0 0% 38%`,primary:`204.1 100% 40%`,primaryForeground:`0 0% 100%`,secondary:`0 0% 91%`,secondaryForeground:`0 0% 38%`,muted:`0 0% 91%`,mutedForeground:`0 0% 44.3%`,accent:`0 0% 91%`,accentForeground:`0 0% 38%`,border:`0 0% 82.7%`,input:`0 0% 80.8%`,ring:`204.1 100% 47.3%`,header:`0 0% 86.7%`,headerForeground:`0 0% 20%`,headerBorder:`0 0% 86.7%`,sidebar:`0 0% 95.3%`,sidebarForeground:`0 0% 38%`,sidebarBorder:`0 0% 95.3%`,sidebarAccent:`230.8 31.7% 92%`,sidebarAccentForeground:`0 0% 38%`,footer:`204.1 100% 40%`,footerForeground:`0 0% 100%`,footerBorder:`204.1 100% 40%`},dark:{...Oe.preset.dark,background:`0 0% 11.8%`,foreground:`0 0% 83.1%`,canvas:`0 0% 11.8%`,card:`240 1.3% 14.7%`,cardForeground:`0 0% 83.1%`,popover:`240 1.3% 14.7%`,popoverForeground:`0 0% 80%`,primary:`204.1 83.5% 33.3%`,primaryForeground:`0 0% 100%`,secondary:`195 4.5% 17.3%`,secondaryForeground:`0 0% 80%`,muted:`195 4.5% 17.3%`,mutedForeground:`240 0.5% 60.6%`,accent:`195 4.5% 17.3%`,accentForeground:`0 0% 80%`,border:`0 0% 27.1%`,input:`0 0% 23.5%`,ring:`204.1 100% 41.6%`,header:`0 0% 23.5%`,headerForeground:`0 0% 80%`,headerBorder:`0 0% 23.5%`,sidebar:`240 1.3% 14.7%`,sidebarForeground:`0 0% 80%`,sidebarBorder:`240 1.3% 14.7%`,sidebarAccent:`240 5.2% 22.7%`,sidebarAccentForeground:`0 0% 80%`,footer:`204.1 100% 40%`,footerForeground:`0 0% 100%`,footerBorder:`204.1 100% 40%`}}},Pe={...Oe,preset:{...Oe.preset,mode:`light`,colors:{...Oe.preset.colors,background:`0 0% 100%`,foreground:`0 0% 0%`,canvas:`0 0% 95.3%`,card:`0 0% 100%`,cardForeground:`0 0% 0%`,popover:`0 0% 100%`,popoverForeground:`0 0% 38%`,primary:`204.1 100% 40%`,primaryForeground:`0 0% 100%`,secondary:`0 0% 91%`,secondaryForeground:`0 0% 38%`,muted:`0 0% 91%`,mutedForeground:`0 0% 44.3%`,accent:`0 0% 91%`,accentForeground:`0 0% 38%`,border:`0 0% 82.7%`,input:`0 0% 80.8%`,ring:`204.1 100% 47.3%`,header:`0 0% 86.7%`,headerForeground:`0 0% 20%`,headerBorder:`0 0% 86.7%`,sidebar:`0 0% 95.3%`,sidebarForeground:`0 0% 38%`,sidebarBorder:`0 0% 95.3%`,sidebarAccent:`230.8 31.7% 92%`,sidebarAccentForeground:`0 0% 38%`,footer:`204.1 100% 40%`,footerForeground:`0 0% 100%`,footerBorder:`204.1 100% 40%`},dark:{...Oe.preset.dark,background:`0 0% 11.8%`,foreground:`0 0% 83.1%`,canvas:`0 0% 11.8%`,card:`240 1.3% 14.7%`,cardForeground:`0 0% 83.1%`,popover:`240 1.3% 14.7%`,popoverForeground:`0 0% 80%`,primary:`204.1 83.5% 33.3%`,primaryForeground:`0 0% 100%`,secondary:`195 4.5% 17.3%`,secondaryForeground:`0 0% 80%`,muted:`195 4.5% 17.3%`,mutedForeground:`240 0.5% 60.6%`,accent:`195 4.5% 17.3%`,accentForeground:`0 0% 80%`,border:`0 0% 27.1%`,input:`0 0% 23.5%`,ring:`204.1 100% 41.6%`,header:`0 0% 23.5%`,headerForeground:`0 0% 80%`,headerBorder:`0 0% 23.5%`,sidebar:`240 1.3% 14.7%`,sidebarForeground:`0 0% 80%`,sidebarBorder:`240 1.3% 14.7%`,sidebarAccent:`240 5.2% 22.7%`,sidebarAccentForeground:`0 0% 80%`,footer:`204.1 100% 40%`,footerForeground:`0 0% 100%`,footerBorder:`204.1 100% 40%`}}},Fe={...Oe,preset:{...Oe.preset,mode:`dark`,colors:{...Oe.preset.colors,background:`231.4 16.3% 91.6%`,foreground:`228.6 26.2% 27.6%`,canvas:`226.7 12.3% 85.7%`,card:`231.4 16.3% 91.6%`,cardForeground:`228.6 26.2% 27.6%`,popover:`226.7 12.3% 85.7%`,popoverForeground:`224.3 17.6% 25.7%`,primary:`217.7 46.1% 48%`,primaryForeground:`0 0% 100%`,secondary:`232.5 6.7% 47.1%`,secondaryForeground:`224.3 17.6% 25.7%`,muted:`231.4 13.2% 89.6%`,mutedForeground:`232.5 6.7% 47.1%`,accent:`231.4 13.2% 89.6%`,accentForeground:`224.3 17.6% 25.7%`,border:`230 5.1% 76.9%`,input:`230 5.1% 76.9%`,ring:`226.7 10.1% 82.5%`,header:`226.7 12.3% 85.7%`,headerForeground:`224.3 17.6% 25.7%`,headerBorder:`230 5.1% 76.9%`,sidebar:`226.7 12.3% 85.7%`,sidebarForeground:`224.3 17.6% 25.7%`,sidebarBorder:`230 5.1% 76.9%`,sidebarAccent:`231.4 16.3% 91.6%`,sidebarAccentForeground:`224.3 17.6% 25.7%`,footer:`226.7 12.3% 85.7%`,footerForeground:`224.3 17.6% 25.7%`,footerBorder:`230 5.1% 76.9%`},dark:{...Oe.preset.dark,background:`235 18.8% 12.5%`,foreground:`229.3 35.4% 75.1%`,canvas:`240 15.4% 10.2%`,card:`235 18.8% 12.5%`,cardForeground:`229.3 35.4% 75.1%`,popover:`240 15.4% 10.2%`,popoverForeground:`232.7 13.9% 53.5%`,primary:`223.1 44.3% 39.4%`,primaryForeground:`0 0% 100%`,secondary:`232.2 16.3% 27.6%`,secondaryForeground:`232.7 13.9% 53.5%`,muted:`240 15.6% 8.8%`,mutedForeground:`230.3 16.1% 37.8%`,accent:`240 15.6% 8.8%`,accentForeground:`229.3 35.4% 75.1%`,border:`240 11.1% 7.1%`,input:`240 14.3% 6.9%`,ring:`233.3 19.1% 18.4%`,header:`240 15.4% 10.2%`,headerForeground:`232.7 13.9% 53.5%`,headerBorder:`240 11.1% 7.1%`,sidebar:`240 15.4% 10.2%`,sidebarForeground:`232.7 13.9% 53.5%`,sidebarBorder:`240 11.1% 7.1%`,sidebarAccent:`235.4 18.8% 13.5%`,sidebarAccentForeground:`229.3 35.4% 75.1%`,footer:`240 15.4% 10.2%`,footerForeground:`232.7 13.9% 53.5%`,footerBorder:`240 11.1% 7.1%`}}},Ie={...Oe,preset:{...Oe.preset,mode:`light`,colors:{...Oe.preset.colors,background:`231.4 16.3% 91.6%`,foreground:`228.6 26.2% 27.6%`,canvas:`226.7 12.3% 85.7%`,card:`231.4 16.3% 91.6%`,cardForeground:`228.6 26.2% 27.6%`,popover:`226.7 12.3% 85.7%`,popoverForeground:`224.3 17.6% 25.7%`,primary:`217.7 46.1% 48%`,primaryForeground:`0 0% 100%`,secondary:`232.5 6.7% 47.1%`,secondaryForeground:`224.3 17.6% 25.7%`,muted:`231.4 13.2% 89.6%`,mutedForeground:`232.5 6.7% 47.1%`,accent:`231.4 13.2% 89.6%`,accentForeground:`224.3 17.6% 25.7%`,border:`230 5.1% 76.9%`,input:`230 5.1% 76.9%`,ring:`226.7 10.1% 82.5%`,header:`226.7 12.3% 85.7%`,headerForeground:`224.3 17.6% 25.7%`,headerBorder:`230 5.1% 76.9%`,sidebar:`226.7 12.3% 85.7%`,sidebarForeground:`224.3 17.6% 25.7%`,sidebarBorder:`230 5.1% 76.9%`,sidebarAccent:`231.4 16.3% 91.6%`,sidebarAccentForeground:`224.3 17.6% 25.7%`,footer:`226.7 12.3% 85.7%`,footerForeground:`224.3 17.6% 25.7%`,footerBorder:`230 5.1% 76.9%`},dark:{...Oe.preset.dark,background:`235 18.8% 12.5%`,foreground:`229.3 35.4% 75.1%`,canvas:`240 15.4% 10.2%`,card:`235 18.8% 12.5%`,cardForeground:`229.3 35.4% 75.1%`,popover:`240 15.4% 10.2%`,popoverForeground:`232.7 13.9% 53.5%`,primary:`223.1 44.3% 39.4%`,primaryForeground:`0 0% 100%`,secondary:`232.2 16.3% 27.6%`,secondaryForeground:`232.7 13.9% 53.5%`,muted:`240 15.6% 8.8%`,mutedForeground:`230.3 16.1% 37.8%`,accent:`240 15.6% 8.8%`,accentForeground:`229.3 35.4% 75.1%`,border:`240 11.1% 7.1%`,input:`240 14.3% 6.9%`,ring:`233.3 19.1% 18.4%`,header:`240 15.4% 10.2%`,headerForeground:`232.7 13.9% 53.5%`,headerBorder:`240 11.1% 7.1%`,sidebar:`240 15.4% 10.2%`,sidebarForeground:`232.7 13.9% 53.5%`,sidebarBorder:`240 11.1% 7.1%`,sidebarAccent:`235.4 18.8% 13.5%`,sidebarAccentForeground:`229.3 35.4% 75.1%`,footer:`240 15.4% 10.2%`,footerForeground:`232.7 13.9% 53.5%`,footerBorder:`240 11.1% 7.1%`}}},Le=[`default`,`flat`,`cyber`,`vscode-dark-modern`,`vscode-light-modern`,`vscode-dark-plus`,`vscode-light-plus`,`tokyo-night`,`tokyo-night-light`],Re=(0,n.createContext)(De),ze=(0,n.createContext)(Oe.motion),Be=(0,n.createContext)(null),Ve={default:Oe,flat:ke,cyber:Ae,"vscode-dark-modern":je,"vscode-light-modern":Me,"vscode-dark-plus":Ne,"vscode-light-plus":Pe,"tokyo-night":Fe,"tokyo-night-light":Ie},He=(e,t)=>{let n=e,r=t;for(let e in r)Object.prototype.hasOwnProperty.call(r,e)&&(typeof r[e]==`object`&&r[e]!==null?(n[e]||(n[e]={}),He(n[e],r[e])):r[e]!==null&&(n[e]=r[e]));return e},Ue=e=>He({},e);function We(e){return typeof e==`object`&&!!e&&`preset`in e&&`motion`in e&&`components`in e}function Ge(e){return typeof e==`string`||e===void 0?{theme:e??`default`,themes:{...Ve}}:We(e)?{theme:`custom`,themes:{...Ve,custom:e}}:{defaultMode:e.defaultMode,theme:e.theme??`default`,themes:{...Ve,...e.themes??{}},themeOverride:e.themeOverride}}var Ke=`llmnative.theme.activeTheme`,qe=`llmnative.theme.mode`;function Je(e){if(typeof window<`u`)try{let t=window.localStorage.getItem(Ke);return t&&e[t]?t:void 0}catch{return}}function Ye(){if(typeof window<`u`)try{let e=window.localStorage.getItem(qe);return e===`light`||e===`dark`||e===`system`?e:void 0}catch{return}}function Xe(e,t){if(typeof window<`u`)try{window.localStorage.setItem(Ke,e),window.localStorage.setItem(qe,t)}catch{}}function Ze(e){return e===`system`?typeof window>`u`||!window.matchMedia?`light`:window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:e}function Qe(e){return`--rf-`+e.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`)}function $e({mode:e,radius:t,fontSans:n,fontMono:r,colors:i,dark:a,variables:o}){if(typeof document>`u`)return;document.documentElement.classList.toggle(`dark`,Ze(e)===`dark`);let s={},c={};for(let[e,t]of Object.entries(i??{}))t!==void 0&&(s[Qe(e)]=t);for(let[e,t]of Object.entries(a??{}))t!==void 0&&(c[Qe(e)]=t);s[`--radius`]=`${t}rem`,s[`--radius-sm`]=`${(t*.5).toFixed(4).replace(/\.?0+$/,``)}rem`,s[`--radius-md`]=`${(t*.75).toFixed(4).replace(/\.?0+$/,``)}rem`,s[`--radius-lg`]=`${t}rem`,s[`--radius-xl`]=`${(t*1.5).toFixed(4).replace(/\.?0+$/,``)}rem`,s[`--radius-2xl`]=`${(t*2).toFixed(4).replace(/\.?0+$/,``)}rem`,s[`--radius-3xl`]=`${(t*3).toFixed(4).replace(/\.?0+$/,``)}rem`,n&&(s[`--font-sans`]=n),r&&(s[`--font-mono`]=r);for(let[e,t]of Object.entries(o??{}))s[e.startsWith(`--`)?e:`--${e}`]=t;let l=document.getElementById(`rf-theme-vars`);l||(l=document.createElement(`style`),l.id=`rf-theme-vars`,document.head.appendChild(l));let u=e=>Object.entries(e).map(([e,t])=>` ${e}: ${t};`).join(`
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./logHeader-CUsdmGAo.js"),t=require("./modelIdentity-CgRMrC5H.js");let n=require("react");n=e.r(n);let r=require("react-router-dom"),i=require("clsx"),a=require("tailwind-merge"),o=require("lucide-react");o=e.r(o);let s=require("@phosphor-icons/react");s=e.r(s);let c=require("react-dom"),l=require("firebase/app"),u=require("firebase/auth"),d=require("firebase/firestore"),f=require("@supabase/supabase-js"),p=require("firebase/storage"),m=require("papaparse");m=e.r(m);let h=require("react-markdown");h=e.r(h);let g=require("remark-gfm");g=e.r(g);let _=require("rehype-slug");_=e.r(_);let v=require("rehype-autolink-headings");v=e.r(v);let y=require("rehype-sanitize");y=e.r(y);let b=require("firebase/database");require("react-dom/server");function x(e){let t=new Date(typeof e==`number`||/^\d+$/.test(String(e))?Number(e):e);if(isNaN(t.getTime()))return{year:``,shortYear:``,month:``,day:``,hours:``,minutes:``,seconds:``,hour:``,minute:``,second:``};let n=e=>e.toString().padStart(2,`0`);return{year:t.getFullYear().toString(),shortYear:t.getFullYear().toString().slice(-2),month:n(t.getMonth()+1),day:n(t.getDate()),hours:n(t.getHours()),minutes:n(t.getMinutes()),seconds:n(t.getSeconds()),hour:t.getHours().toString(),minute:t.getMinutes().toString(),second:t.getSeconds().toString()}}function S(e,t){let{year:n,shortYear:r,month:i,day:a,hours:o,minutes:s,seconds:c,hour:l,minute:u,second:d}=x(e),f={YYYY:n,YY:r,MM:i,DD:a,hh:o,mm:s,ss:c,h:l,m:u,s:d};return t.replace(/YYYY|YY|MM|DD|hh|mm|ss|h|m|s/g,e=>f[e]||e)}function C(){let e=new Date;return new Intl.DateTimeFormat(void 0,{year:`numeric`,month:`2-digit`,day:`2-digit`}).formatToParts(e).map(e=>{switch(e.type){case`year`:return`YYYY`;case`month`:return`MM`;case`day`:return`DD`;default:return e.value}}).join(``)}function w(){let e=new Date;return new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}).formatToParts(e).map(e=>{switch(e.type){case`hour`:return`hh`;case`minute`:return`mm`;case`second`:return`ss`;default:return e.value}}).join(``)}var T=(e,t,n,r)=>{if(!e||!t)return``;let i=t.split(`.`),a=e;for(let e=0;e<i.length;e++){let t=i[e];if(a==null)return``;if(t.endsWith(`[]`)){let o=t.slice(0,-2),s=a[o];if(!Array.isArray(s))return``;let c=i.slice(e+1).join(`.`);if(!c)return n?(n.key&&(n.value[n.key]=s)||(n.value=s),``):s;let l=n?.value??{};for(let e in s){let t=(()=>{let t=T(s[e],c);return r?.(t)??t})();n&&(!n.hideEmpty||t!==``)&&(l[e]=n.key?{...l[e]??{},[n.key]:t}:t)}return n?``:l}a=a[t]}return a=r?.(a)??a,n&&(!n.hideEmpty||a!==``)?(n.key&&(n.value[n.key]=a)||(n.value=a),``):a},E={parse:(e,t,n=void 0,r=void 0)=>typeof t==`string`?O(D(t.replace(/{([^}:]+)(?::([^}:]+))?(?::([^}:]+))?}/g,(t,i,a,o)=>{let[s,c]=(i||``).indexOf(`(`)===-1?[``,i]:i.split(`(`,2),[l,u]=(a||``).indexOf(`)`)===-1?[a,``]:a.split(`)`,2),d=T(e,c,n,r);return!E?.[l]||!d?d||``:s+E[l](d,o)+u}))):t,toDate:(e,t=void 0)=>{let n=C();return t===`ISO`?S(e,`YYYY-MM-DD`):S(e,t||n)},toTime:(e,t=void 0)=>{let n=w();return t===`ISO`?S(e,`hh:mm:ss`):S(e,t||n)},toDateTime:(e,t=void 0)=>{let n=`${C()} ${w()}`;return t===`ISO`?S(e,`YYYY-MM-DD hh:mm:ss`):S(e,t||n)},toCamel:(e,t=``,n=[`-`,`_`,` `])=>{let r=e.split(`/`),i=r.pop()||``,a=n.map(e=>`\\`+e).join(``),o=RegExp(`(?:[${a}]+|^)(.)`,`g`),s=i.toLowerCase().replace(o,(e,n)=>t+n.toUpperCase());return[...r,s].join(`/`)},toUpper:e=>e.toUpperCase(),toLower:e=>e.toLowerCase(),toSlug:e=>P(e),toNumberFormat:(e,t=navigator.language)=>new Intl.NumberFormat(t).format(Number(e)),splitLast:(e,t,n=void 0)=>{let r=t=>{let r=e.split(t);if(r.length<=1)return null;let i=r.pop()||``;for(;r.length&&n?.test(r[r.length-1]);)i=r.pop()+t+i;return[r.join(t),i]},i=typeof t==`string`?[t]:Array.isArray(t)?t:[];for(let e of i){let t=r(e);if(t)return t}return[e,``]},splitFirst:(e,t,n=void 0)=>{let r=t=>{let r=e.split(t);if(r.length<=1)return null;let i=r.shift()||``;for(;r.length&&n?.test(r[0]);)i+=t+r.shift();return[i,r.join(t)]},i=typeof t==`string`?[t]:Array.isArray(t)?t:[];for(let e of i){let t=r(e);if(t)return t}return[e,``]},padLeft:(e,t,n=` `,r=void 0)=>r?e.replace(r,e=>e.padStart(t,n)):e.padStart(t,n),padRight:(e,t,n=` `,r=void 0)=>r?e.replace(r,e=>e.padEnd(t,n)):e.padEnd(t,n),toQueryString:(e,t=`?`,n=void 0)=>{let r=Object.keys(e);return(r.length>0?t:``)+r.map(t=>`${encodeURIComponent(t)}=${encodeURIComponent(n===void 0?e[t]:n)}`).join(`&`)},fillObject:(e,t=void 0)=>{let n={};for(let r in e)n[r]=t;return n},subStringCount:(e,t)=>t===``?0:e.split(t).length-1,truncate:(e,t=100)=>e.length>t?e.substring(0,t):e};function D(e){return e.replace(/replace\(([^,]+),([^,]+),([^)]+)\)/gi,(e,t,n,r)=>t.replaceAll(n,r))}function O(e){return e.replace(/split\(([^,]+),([^,]+),([^)]+)\)/gi,(e,t,n,r=0)=>t.split(n)[r])}var k=e=>{try{let t=e.split(`.`),n=atob(t[1]);return JSON.parse(n)}catch(e){console.error(`Errore durante la decodifica del token:`,e)}},A=e=>{try{navigator.clipboard.writeText(e).then(()=>{console.log(`Selettore HTML copiato negli appunti:`,e)}).catch(e=>{console.error(`Errore durante la copia del selettore HTML negli appunti:`,e)})}catch(e){console.error(`Clipboard API non supportata:`,e)}},j=e=>M(e).replace(/\/$/,``).replace(/^\//,``),M=e=>e?e.replaceAll(` `,`-`).replaceAll(`'`,`-`).replaceAll(`"`,`-`).toLowerCase().replace(/[^a-z0-9\-/]+/g,``).replace(/-+/g,`-`).replace(/\/+/g,`/`):``,N=e=>typeof e==`number`?String(e):typeof e==`boolean`?e?`true`:`false`:e?e.startsWith(`/`)?e.substring(1):e:``,P=e=>N(e).replaceAll(`/`,`|`).replaceAll(` `,`-`).replaceAll(`'`,`-`).replaceAll(`"`,`-`).replaceAll(`.`,`-`).replaceAll(`@`,`-`).replaceAll(`#`,`-`).replaceAll(`$`,`-`).replaceAll(`[`,`-`).replaceAll(`]`,`-`).replaceAll(`_`,`-`).toLowerCase().replace(/[^a-z0-9\-|]+/g,``).replace(/^-+|-+$/g,``).replace(/-+/g,`-`),F=e=>{if(!e)return``;e=e.replace(/\/$/,``);let t=e.split(`/`);return t.pop(),t.join(`/`)};async function I(e){return new Promise(t=>setTimeout(t,e))}function L(e=null){return`${Date.now().toString(36)}-${e||Math.random().toString(36).substring(2)}`}function R(e,t){let n=e.target;if(n.tagName.toLowerCase()===t.toLowerCase())return n;for(;n.parentNode;){let e=n.parentNode;if(e.tagName.toLowerCase()===t.toLowerCase())return e;n=e}return null}var z=(e,t)=>e.split(t).length-1,B=(e,t)=>e.replace(/\$(\d+)/g,(e,n)=>t[parseInt(n)]||``).trim(),ee=(e,t,n)=>{for(let r of e){let e=M(ne(r.key,t)),i=M(B(ne(r.value,t),n));if((r.operator===`==`||r.operator===`=`)&&e===i||r.operator===`!=`&&e!==i||r.operator===`>`&&e>i||r.operator===`<`&&e<i||r.operator===`>=`&&e>=i||r.operator===`<=`&&e<=i||r.operator===`contains`&&e.includes(i)||r.operator===`not contains`&&!e.includes(i))return!0}return!1},V=e=>{let t=[];for(let e=0;e<256;e++){let n=e;for(let e=0;e<8;e++)n&1?n=3988292384^n>>>1:n>>>=1;t[e]=n}let n=-1;for(let r=0;r<e.length;r++)n=n>>>8^t[(n^e.charCodeAt(r))&255];return(n^-1)>>>0},H=e=>e?e.charAt(0).toUpperCase()+e.slice(1):``,U=e=>{if(!e.length)return;let t=document.createDocumentFragment();e.forEach(({src:e,clean:n,...r})=>{if(!e)return;let i=document.createElement(`script`);i.setAttribute(`src`,String(e)),Object.entries(r).forEach(([e,t])=>{i.setAttribute(e,String(t))}),n&&(i.onload=()=>document.body.removeChild(i)),t.appendChild(i)}),document.body.appendChild(t)},te=(e,t)=>{let n={};for(let r in e)e.hasOwnProperty(r)&&r in t&&(n[r]=e[r]);return n},ne=(e,t)=>((e.match(/{[^}]*}/g)||[]).forEach(n=>{let r=n.slice(1,-1).split(`:`),i=r[0],a=r[1],o=(a&&typeof E[a]==`function`?E[a](t[i]):t[i])||``;e=e.replaceAll(n,o)}),e),re=(e,t)=>{if(t){let n=new Set;return e.filter(e=>{let r=e[t];return!n.has(r)&&(n.add(r),!0)})}return[...new Set(e)]},W=e=>e==null||e===``||e===!1||e===`0`||e===0||typeof e==`object`&&!!e&&Object.keys(e).length===0;function G(e,t=new WeakMap){if(typeof e!=`object`||!e||n.default.isValidElement(e))return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(t.has(e))return t.get(e);if(Array.isArray(e)){let n=[];return t.set(e,n),e.forEach((e,r)=>{n[r]=G(e,t)}),n}if(e instanceof Map){let n=new Map;return t.set(e,n),e.forEach((e,r)=>{n.set(G(r,t),G(e,t))}),n}if(e instanceof Set){let n=new Set;return t.set(e,n),e.forEach(e=>{n.add(G(e,t))}),n}let r=Object.getPrototypeOf(e);if(r&&r!==Object.prototype)return e;let i={};return t.set(e,i),Object.entries(e).forEach(([e,n])=>{i[e]=G(n,t)}),i}function ie(e){if(typeof structuredClone!=`function`)return G(e);try{return structuredClone(e)}catch{return G(e)}}function ae(e){return(typeof e==`string`?Buffer.from(e,`utf8`):e instanceof ArrayBuffer?Buffer.from(new Uint8Array(e)):Buffer.from(e)).toString(`base64`).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function oe(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function se(e){return e.replace(/[^a-zA-Z0-9-_:.]/g,`_`)}function ce(e,t){let n=e.target,r=!!(n.closest(`a`)||n.closest(`button`)||n.closest(`input`)||n.closest(`textarea`)||n.closest(`select`));return t?r&&!n.closest(t):r}var le=e=>{let t=new Uint8Array(e),n=``;for(let e=0;e<t.byteLength;e++)n+=String.fromCharCode(t[e]);return btoa(n)},ue=(e,t)=>{try{let n=e.includes(`,`)?e.split(`,`)[1]:e,r=atob(n),i=Array(r.length);for(let e=0;e<r.length;e++)i[e]=r.charCodeAt(e);let a=new Uint8Array(i);return new Blob([a],{type:t})}catch(e){console.warn(`Failed to create blob from base64:`,e);return}},K=(e,t)=>{let n=ue(e,t);return n?URL.createObjectURL(n):void 0},de=(e,t)=>{if(e&&t)return t.split(`.`).reduce((e,t)=>{if(e!=null&&!(typeof e!=`object`||Array.isArray(e)))return e[t]},e)},fe=e=>{let t={};if(!e)return t;if(e instanceof File)return{name:e.name,type:e.type,size:e.size,lastModified:e.lastModified};for(let[n,r]of Object.entries(e))n&&(Array.isArray(r)?t[n]=r.map(e=>typeof e==`object`?fe(e):e).filter(e=>e!==void 0):r&&typeof r==`object`?t[n]=fe(r):r!==void 0&&(t[n]=r));return t},pe=e=>`${e.name}${e.type}${e.size}${e.lastModified}`;function me(e,t){if(e===t)return!0;if(e instanceof File||t instanceof File)return e instanceof File&&t instanceof File&&pe(e)===pe(t);if(Array.isArray(e)||Array.isArray(t)){if(!Array.isArray(e)||!Array.isArray(t))return!1;let n=e.filter(e=>e!==void 0),r=t.filter(e=>e!==void 0);if(n.length!==r.length)return!1;for(let e=0;e<n.length;e++)if(!me(n[e],r[e]))return!1;return!0}let n=!!e&&typeof e==`object`;if(n!==(!!t&&typeof t==`object`))return!1;if(!n)return e===t;let r=e,i=t,a=new Set([...Object.keys(r),...Object.keys(i)]);for(let e of a){if(!e)continue;let t=r[e],n=i[e];if((t!==void 0||n!==void 0)&&!me(t,n))return!1}return!0}var he=e=>e==null||e===``||typeof e!=`string`?e:/^(true|false)$/i.test(e)?e.toLowerCase()===`true`:/^0\d+$/.test(e)?e:/^-?\d+(\.\d+)?$/.test(e)?Number(e):e.trim(),ge=/auth|key|token|secret/i,_e=[`key`,`apikey`,`api_key`,`access_token`,`token`,`secret`];function ve(e){return e?(e instanceof Headers?Array.from(e.entries()):Array.isArray(e)?e:Object.entries(e)).reduce((e,[t,n])=>(e[t]=ge.test(t)?`[REDACTED]`:n,e),{}):{}}function ye(e){return{...e,headers:ve(e.headers)}}function be(e){try{let t=new URL(e,`http://placeholder-base.invalid`),n=!1;for(let e of _e)t.searchParams.has(e)&&(t.searchParams.set(e,`[REDACTED]`),n=!0);return n?e.startsWith(`http`)?t.toString():`${t.pathname}${t.search}${t.hash}`:e}catch{return e}}function xe(e){let{body:t,headers:n}=e,r=n?.[`Content-Type`]||``;return(Array.isArray(t)||typeof t==`object`?[`application/json`,`application/x-www-form-urlencoded`,`multipart/form-data`]:[`text/plain`,`text/html`]).includes(r)?r:typeof t==`object`?`application/json`:typeof t==`string`&&t.startsWith(`<`)?`text/html`:`text/plain`}async function Se(e,t=null,n=globalThis.fetch){let r={redirect:`follow`,method:t?.method?.toUpperCase()||`GET`,headers:t?.headers||{},signal:t?.signal};if(t?.body){if([`GET`,`HEAD`].includes(r.method))e+=(e.includes(`?`)?`&`:`?`)+new URLSearchParams(t.body);else switch(xe(t)){case`application/json`:r.body=JSON.stringify(t.body);break;case`application/x-www-form-urlencoded`:r.body=new URLSearchParams(t.body);break;case`multipart/form-data`:{let e=new FormData,n=t.body;for(let t in n)e.append(t,n[t]);r.body=e;break}case`text/html`:case`text/plain`:if(typeof t.body!=`string`)throw Error(`Fetch: Body must be a string for text/plain or text/html content types.`);r.body=t.body;break;default:throw Error(`Fetch: Unsupported Content-Type`)}}return n(e,r).then(e=>{if(!e.ok)return e.text().then(t=>{throw{response:e,text:t}});let n=t?.headers?.Accept,r=e.headers.get(`Content-Type`)?.split(`;`)[0];return n&&n.split(`;`)[0]!==r?e.text().then(t=>{throw{response:e,text:t}}):e?.headers&&e.headers.get(`Content-Type`)===`application/json`?e.json():e.text()}).catch(n=>{if(n.message)return console.warn(`fetch: ${n.message}`,be(e),ye(r)),null;let{response:i,text:a}=n;function o(){let n=i?.headers.get(`Content-Type`)?.split(`;`)[0]||``;if(n===`application/json`&&(a.startsWith(`{`)||a.startsWith(`[`))){let t=JSON.parse(a);return console.warn(`fetch: Error`,be(e),ye(r),i.status,t),t}{let o=t?.headers?.Accept?.split(`;`)[0]||``,s=o===n?o===`application/json`?`Request Accept header is application/json but response is not JSON`:null:`Request Accept header does not match response Content-Type (Accept: `+o+`, Content-Type: `+n+`)`;return console.warn(`fetch: ${s}`,be(e),ye(r),i.status,a),s&&o===`application/json`?{error:a,status:520}:a}}throw o()})}async function Ce(e,t=null,n=globalThis.fetch){return Se(e,{...t,headers:{Accept:`application/json`,"Content-Type":`application/json`,...t?.headers}},n).then(e=>{if(e?.error)throw e;return e})}async function we(e,t={},n=3,r=[429],i=globalThis.fetch){return i(e,t).then(a=>a.ok?a.json():!r.includes(a.status)&&n>0?(console.log(`Retrying...`,n,be(e),ye(t)),I(500).then(()=>we(e,t,n-1,r,i))):(console.error(a),a)).catch(e=>console.error(e,`BBBBBBBBBBBBBBBBBBBBBBB`))}var Te={mode:`light`,radius:.5,colors:{background:`0 0% 100%`,foreground:`222.2 84% 4.9%`,canvas:`210 40% 98%`,card:`0 0% 100%`,cardForeground:`222.2 84% 4.9%`,popover:`0 0% 100%`,popoverForeground:`222.2 84% 4.9%`,primary:`221.2 83.2% 53.3%`,primaryForeground:`210 40% 98%`,secondary:`210 40% 96.1%`,secondaryForeground:`222.2 47.4% 11.2%`,muted:`210 40% 96.1%`,mutedForeground:`215.4 16.3% 46.9%`,accent:`210 40% 96.1%`,accentForeground:`222.2 47.4% 11.2%`,destructive:`0 84.2% 60.2%`,destructiveForeground:`210 40% 98%`,success:`142.1 76.2% 36.3%`,successForeground:`0 0% 100%`,warning:`32.1 94.6% 43.7%`,warningForeground:`0 0% 100%`,info:`198.6 88.7% 48.4%`,infoForeground:`0 0% 100%`,border:`214.3 31.8% 91.4%`,input:`214.3 31.8% 91.4%`,ring:`221.2 83.2% 53.3%`},dark:{background:`222.2 84% 4.9%`,foreground:`210 40% 98%`,canvas:`222.2 84% 4.9%`,card:`222.2 84% 4.9%`,cardForeground:`210 40% 98%`,popover:`222.2 84% 4.9%`,popoverForeground:`210 40% 98%`,primary:`217.2 91.2% 59.8%`,primaryForeground:`222.2 47.4% 11.2%`,secondary:`217.2 32.6% 17.5%`,secondaryForeground:`210 40% 98%`,muted:`217.2 32.6% 17.5%`,mutedForeground:`215 20.2% 65.1%`,accent:`217.2 32.6% 17.5%`,accentForeground:`210 40% 98%`,destructive:`0 72% 51%`,destructiveForeground:`210 40% 98%`,success:`142.1 70.6% 45.3%`,successForeground:`0 0% 100%`,warning:`32.1 94.6% 55%`,warningForeground:`0 0% 100%`,info:`198.6 88.7% 60%`,infoForeground:`0 0% 100%`,border:`217.2 32.6% 17.5%`,input:`217.2 32.6% 17.5%`,ring:`224.3 76.3% 48%`}},Ee={none:{from:{},to:{},transition:{duration:0,easing:`linear`,properties:[`opacity`,`transform`,`box-shadow`]},reducedMotion:`always`},fade:{from:{opacity:0},to:{opacity:1},transition:{duration:160,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`opacity`]},reducedMotion:`respect-user`},fadeUp:{from:{opacity:0,transform:`translateY(8px)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:160,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},fadeDown:{from:{opacity:0,transform:`translateY(-8px)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:140,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`opacity`,`transform`,`visibility`]},reducedMotion:`respect-user`},slideFromRight:{from:{opacity:0,transform:`translateX(100%)`},to:{opacity:1,transform:`translateX(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromLeft:{from:{opacity:0,transform:`translateX(-100%)`},to:{opacity:1,transform:`translateX(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromTop:{from:{opacity:0,transform:`translateY(-100%)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromBottom:{from:{opacity:0,transform:`translateY(100%)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},press:{from:{},to:{transform:`scale(0.98)`},transition:{duration:100,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`transform`,`box-shadow`]},reducedMotion:`respect-user`},imageZoom:{from:{transform:`scale(1)`},to:{transform:`scale(1.06)`},transition:{duration:300,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`transform`]},reducedMotion:`respect-user`}},De={Grid:{Card:{wrapperClassName:``,className:`rounded-none border-0 bg-transparent shadow-none`,headerClassName:`flex justify-between border-b-0 bg-transparent px-0 py-2`,bodyClassName:`p-0 mt-2`,footerClassName:`border-t-0 bg-transparent px-0 py-2`,loading:!1},Table:{wrapperClassName:`rounded-lg border border-border bg-card shadow-sm`,className:``,headerClassName:``,bodyClassName:``,footerClassName:``,scrollClassName:`overflow-x-auto`,selectedClassName:`bg-primary/10`},Gallery:{wrapperClassName:`rounded-lg border border-border bg-card shadow-sm p-3`,className:``,scrollClassName:``,headerClassName:``,bodyClassName:``,footerClassName:``,selectedClassName:`bg-primary/20`,gap:1,rowCols:4},Modal:{mode:`form`,size:`lg`,position:`center`,wrapperClassName:``,className:``,headerClassName:``,titleClassName:``,subtitleClassName:`pr-1 text-muted-foreground`,bodyClassName:``,footerClassName:``,iconExpand:`fullscreen`,iconCollapse:`fullscreen-exit`,motion:{center:`fade`,top:`slideFromTop`,left:`slideFromLeft`,right:`slideFromRight`,bottom:`slideFromBottom`,backdrop:`fade`}}},Table:{wrapperClassName:``,className:``,headerClassName:``,bodyClassName:``,footerClassName:``,scrollClassName:`overflow-x-auto`,selectedClassName:`bg-primary/10`},Gallery:{wrapperClassName:``,className:``,scrollClassName:``,headerClassName:``,bodyClassName:``,footerClassName:``,selectedClassName:`bg-primary/20`,gap:4,rowCols:2},Pagination:{wrapperClassName:``,className:``,stickyClassName:`fixed bottom-0 left-0 right-0 mx-5`,scrollToTop:!1,scrollBehavior:`auto`,maxItems:5,sticky:!0,align:`end`},Carousel:{showIndicators:!0,showControls:!0,showCaption:!0,dark:!1,autoPlay:!0},Card:{wrapperClassName:``,className:``,headerClassName:`flex justify-between bg-white/[.15] font-normal`,bodyClassName:`flex flex-col`,footerClassName:``,loading:!1},Loader:{wrapperClassName:``,className:``,icon:`loader-2`,title:`Loading..`,description:``},ActionButton:{className:`btn-primary`,badgeClassName:`rounded-full bg-destructive text-destructive-foreground`,motion:{press:`press`}},LoadingButton:{className:`btn-primary`,badgeClassName:`rounded-full bg-destructive text-destructive-foreground`,motion:{press:`press`}},LinkButton:{className:`btn-outline-secondary`},Alert:{className:``},Badge:{className:``},Modal:{size:`lg`,position:`center`,wrapperClassName:``,className:``,headerClassName:``,titleClassName:``,subtitleClassName:`pr-1 text-muted-foreground`,bodyClassName:``,footerClassName:``,iconExpand:`fullscreen`,iconCollapse:`fullscreen-exit`,motion:{center:`fade`,top:`slideFromTop`,left:`slideFromLeft`,right:`slideFromRight`,bottom:`slideFromBottom`,backdrop:`fade`}},Dropdown:{wrapperClassName:``,className:``,triggerClassName:`btn btn-outline-primary`,badgeClassName:``,menuClassName:`border-border/60 bg-popover/95 shadow-xl shadow-black/5 backdrop-blur supports-[backdrop-filter]:bg-popover/90 dark:shadow-black/20`,menuHeaderClass:`text-muted-foreground/70`,menuItemClass:``,menuDividerClass:`bg-border/60`,headerClassName:``,footerClassName:``,Menu:{wrapperClassName:``,className:`list-none p-0 m-0`,headerClassName:``,itemClassName:``,linkClassName:`flex items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent`,iconClassName:`text-muted-foreground`,textClassName:``,badgeClassName:``,arrowClassName:``,submenuClassName:``},motion:{open:`fadeDown`,close:`fadeDown`,press:`press`}},Notifications:{wrapperClassName:``,Dropdown:{className:``,triggerClassName:`btn btn-link`,menuClassName:`mt-1 text-[11px] w-[300px] pt-1`}},Select:{wrapperClassName:``,className:``},Autocomplete:{wrapperClassName:``,className:``,listClassName:``,optionClassName:``},AddressAutocomplete:{wrapperClassName:``,className:``,menuClassName:`border-border/60 bg-popover/95 shadow-xl shadow-black/5 backdrop-blur supports-[backdrop-filter]:bg-popover/90 dark:shadow-black/20`,itemClassName:``},Form:{wrapperClassName:``,buttonSaveClass:`btn-outline-primary`,buttonDeleteClass:`btn-outline-danger`,buttonBackClass:`btn-link`,Card:{headerClassName:``,bodyClassName:``,footerClassName:`flex items-center justify-end gap-3`}},Menu:{wrapperClassName:`flex-1 overflow-auto p-4`,className:`flex flex-col mb-auto`,headerClassName:``,itemClassName:``,linkClassName:`flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent/50 hover:text-foreground`,iconClassName:`mr-1 shrink-0`,textClassName:`flex-1`,badgeClassName:`ml-1`,arrowClassName:``,submenuClassName:`mt-1 flex flex-col gap-1 pl-4`},SideNav:{wrapperClassName:``,shellClassName:`border-r border-sidebar-border bg-sidebar text-sidebar-foreground`,overlayClassName:`shadow-xl`,headerClassName:`border-b border-sidebar-border px-1.5 py-2`,navClassName:`px-1.5 py-2`,bottomNavClassName:`border-t border-sidebar-border px-1.5 py-2`,footerClassName:`border-t border-sidebar-border px-1.5 py-2`,groupLabelClassName:`text-[10.5px] font-semibold uppercase tracking-widest text-sidebar-foreground/60 select-none`,groupDividerClassName:`bg-sidebar-border`,itemClassName:`rounded-lg`,itemActiveClassName:`bg-sidebar-accent text-sidebar-accent-foreground font-medium`,itemChildActiveClassName:`bg-sidebar-accent/60 text-sidebar-accent-foreground font-medium`,itemInactiveClassName:`text-sidebar-foreground/80 hover:text-sidebar-accent-foreground hover:bg-sidebar-accent/70`,itemIconClassName:``,itemTextClassName:``,itemBadgeClassName:`ml-auto shrink-0 text-[10px] font-semibold leading-none px-1.5 py-[3px] rounded-full bg-primary/15 text-primary`,itemCollapsedBadgeClassName:`absolute -top-0.5 -right-1 h-[7px] w-[7px] rounded-full bg-primary ring-1 ring-card`,itemToggleClassName:`shrink-0 flex items-center justify-center w-6 h-6 rounded-md transition-colors text-muted-foreground/50 hover:text-foreground hover:bg-accent/70`,subItemClassName:`rounded-md`,subItemActiveClassName:`bg-sidebar-accent text-sidebar-accent-foreground font-medium`,subItemInactiveClassName:`text-sidebar-foreground/80 hover:text-sidebar-accent-foreground hover:bg-sidebar-accent/70`,collapseButtonClassName:`shrink-0 flex items-center justify-center rounded-md w-8 h-8 transition-colors text-sidebar-foreground/70 hover:text-sidebar-accent-foreground hover:bg-sidebar-accent/70`},Toolbar:{wrapperClassName:`z-20 w-full`,stickyClassName:`sticky top-0`,restingClassName:`bg-transparent border-transparent shadow-none`,scrolledClassName:`border-b border-border/60 bg-background/85 backdrop-blur supports-[backdrop-filter]:bg-background/75`,innerClassName:`flex min-h-14 items-center gap-3 px-4 md:px-6`,leadingClassName:`flex min-w-0 items-center gap-2 shrink-0`,centerClassName:`flex min-w-0 flex-1 items-center gap-3`,trailingClassName:`flex items-center gap-2 shrink-0`},ListCard:{wrapperClassName:``,className:`shadow-sm`,activeClassName:`border-primary/30 bg-primary/10 shadow-sm`,inactiveClassName:`hover:bg-accent/40`,disabledClassName:`cursor-not-allowed opacity-60`,dashedClassName:`border-dashed`,compactClassName:`p-3`,leadingClassName:``,bodyClassName:``,headerClassName:``,titleClassName:``,descriptionClassName:``,metaClassName:``,badgeClassName:``,trailingClassName:``,footerClassName:``,motion:{press:`press`}},ProviderSwitcher:{wrapperClassName:`w-full`,className:`w-full`,triggerClassName:`flex w-full items-center gap-2 rounded-xl px-1.5 py-1.5 text-left text-sm font-semibold text-foreground transition-colors hover:bg-accent/40`,disabledClassName:`pointer-events-none opacity-60`,iconWrapperClassName:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,labelClassName:`block truncate`,captionClassName:`block truncate text-[11px] font-normal text-muted-foreground/80`,chevronClassName:`ml-auto shrink-0 text-muted-foreground/70`,itemClassName:``,itemActiveClassName:``,itemInactiveClassName:``,itemMetaClassName:`text-xs text-muted-foreground`,checkClassName:`text-primary`},Brand:{wrapperClassName:``,className:`flex items-center`,logoClassName:`flex items-center gap-2 font-semibold`,labelClassName:`text-sm font-medium`},SignIn:{className:`flex items-center`,avatarClass:`mx-2 rounded-full object-cover`},Image:{wrapperClassName:``,className:``,motion:{enter:`fade`,hover:!1}},ImageAvatar:{wrapperClassName:``,className:``,motion:{enter:`fade`,hover:!1}},Identicon:{wrapperClassName:``,className:``},Percentage:{wrapperClassName:``,className:``},Tree:{wrapperClassName:``,className:``,itemClassName:``,selectedClassName:``},DescriptionList:{wrapperClassName:``,className:``,itemClassName:``,labelClassName:``,valueClassName:``},Tab:{wrapperClassName:``,className:``,menuClassName:``,itemClassName:``,contentClassName:``,triggerClassName:``,activeTriggerClassName:``,inactiveTriggerClassName:``,motion:{enter:`fadeUp`}},Code:{wrapperClassName:``,className:``},CodeEditor:{wrapperClassName:``,className:``},Prompt:{wrapperClassName:``,className:``},Repeat:{itemClassName:``,inlineItemClassName:``,addButtonClassName:``}},Oe={preset:Te,motion:Ee,components:De},ke={preset:{mode:`light`,radius:.125,colors:{background:`0 0% 98%`,foreground:`215 25% 16%`,card:`0 0% 100%`,cardForeground:`215 25% 16%`,popover:`0 0% 100%`,popoverForeground:`215 25% 16%`,primary:`215 25% 27%`,primaryForeground:`210 40% 98%`,secondary:`215 15% 93%`,secondaryForeground:`215 25% 27%`,muted:`215 15% 93%`,mutedForeground:`215 15% 50%`,accent:`215 15% 90%`,accentForeground:`215 25% 27%`,destructive:`0 72% 51%`,destructiveForeground:`0 0% 100%`,success:`142.1 76.2% 36.3%`,successForeground:`0 0% 100%`,warning:`32.1 94.6% 43.7%`,warningForeground:`0 0% 100%`,info:`198.6 88.7% 48.4%`,infoForeground:`0 0% 100%`,border:`215 15% 85%`,input:`215 15% 85%`,ring:`215 25% 27%`},dark:{background:`215 20% 12%`,foreground:`215 10% 85%`,card:`215 20% 15%`,cardForeground:`215 10% 85%`,popover:`215 20% 15%`,popoverForeground:`215 10% 85%`,primary:`215 35% 55%`,primaryForeground:`0 0% 100%`,secondary:`215 20% 20%`,secondaryForeground:`215 10% 75%`,muted:`215 20% 20%`,mutedForeground:`215 10% 55%`,accent:`215 20% 22%`,accentForeground:`215 10% 85%`,destructive:`0 72% 51%`,destructiveForeground:`0 0% 100%`,success:`142.1 70.6% 45.3%`,successForeground:`0 0% 100%`,warning:`32.1 94.6% 55%`,warningForeground:`0 0% 100%`,info:`198.6 88.7% 60%`,infoForeground:`0 0% 100%`,border:`215 20% 22%`,input:`215 20% 22%`,ring:`215 35% 55%`}},motion:{none:{from:{},to:{},transition:{duration:0,easing:`linear`,properties:[`opacity`,`transform`,`box-shadow`]},reducedMotion:`always`},fade:{from:{opacity:0},to:{opacity:1},transition:{duration:140,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`opacity`]},reducedMotion:`respect-user`},fadeUp:{from:{opacity:0,transform:`translateY(4px)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:140,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},fadeDown:{from:{opacity:0,transform:`translateY(-4px)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:120,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`opacity`,`transform`,`visibility`]},reducedMotion:`respect-user`},slideFromRight:{from:{opacity:0,transform:`translateX(100%)`},to:{opacity:1,transform:`translateX(0)`},transition:{duration:180,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromLeft:{from:{opacity:0,transform:`translateX(-100%)`},to:{opacity:1,transform:`translateX(0)`},transition:{duration:180,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromTop:{from:{opacity:0,transform:`translateY(-100%)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:180,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromBottom:{from:{opacity:0,transform:`translateY(100%)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:180,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},press:{from:{},to:{transform:`scale(0.99)`},transition:{duration:90,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`transform`,`box-shadow`]},reducedMotion:`respect-user`},imageZoom:{from:{transform:`scale(1)`},to:{transform:`scale(1.06)`},transition:{duration:300,easing:`cubic-bezier(0.2, 0, 0, 1)`,properties:[`transform`]},reducedMotion:`respect-user`}},components:{Grid:{Card:{wrapperClassName:``,className:`rounded-none border-0 bg-transparent shadow-none`,headerClassName:`flex justify-between border-b-0 bg-transparent px-0 py-2`,bodyClassName:`p-0 mt-2`,footerClassName:`border-t-0 bg-transparent px-0 py-2`,loading:!1},Table:{wrapperClassName:`rounded-lg border border-border bg-card shadow-sm`,className:``,headerClassName:``,bodyClassName:``,footerClassName:``,scrollClassName:`overflow-x-auto`,selectedClassName:`bg-primary/10`},Gallery:{wrapperClassName:`rounded-lg border border-border bg-card shadow-sm p-3`,className:``,scrollClassName:``,headerClassName:``,bodyClassName:``,footerClassName:``,selectedClassName:`bg-primary/20`,gap:1,rowCols:4},Modal:{mode:`form`,size:`lg`,position:`center`,wrapperClassName:``,className:``,headerClassName:``,titleClassName:``,subtitleClassName:`pr-1 text-muted-foreground`,bodyClassName:``,footerClassName:``,iconExpand:`fullscreen`,iconCollapse:`fullscreen-exit`,motion:{center:`fade`,top:`slideFromTop`,left:`slideFromLeft`,right:`slideFromRight`,bottom:`slideFromBottom`,backdrop:`fade`}}},Table:{wrapperClassName:``,className:``,headerClassName:``,bodyClassName:``,footerClassName:``,scrollClassName:`overflow-x-auto`,selectedClassName:`bg-primary/10`},Gallery:{wrapperClassName:``,className:``,scrollClassName:``,headerClassName:``,bodyClassName:``,footerClassName:``,selectedClassName:`bg-primary/20`,gap:4,rowCols:2},Pagination:{wrapperClassName:``,className:``,stickyClassName:`fixed bottom-0 left-0 right-0 mx-5`,scrollToTop:!1,scrollBehavior:`auto`,maxItems:5,sticky:!0,align:`end`},Carousel:{showIndicators:!0,showControls:!0,showCaption:!0,dark:!1,autoPlay:!0},Card:{wrapperClassName:``,className:``,headerClassName:`flex justify-between bg-white/[.15] font-normal`,bodyClassName:`flex flex-col`,footerClassName:``,loading:!1},Loader:{wrapperClassName:``,className:``,icon:`loader-2`,title:`Loading..`,description:``},ActionButton:{className:`btn-primary`,badgeClassName:`rounded-full bg-destructive text-destructive-foreground`,motion:{press:`press`}},LoadingButton:{className:`btn-primary`,badgeClassName:`rounded-full bg-destructive text-destructive-foreground`,motion:{press:`press`}},LinkButton:{className:`btn-outline-secondary`},Alert:{className:``},Badge:{className:``},Modal:{size:`lg`,position:`center`,wrapperClassName:``,className:``,headerClassName:``,titleClassName:``,subtitleClassName:`pr-1 text-muted-foreground`,bodyClassName:``,footerClassName:``,iconExpand:`fullscreen`,iconCollapse:`fullscreen-exit`,motion:{center:`fade`,top:`slideFromTop`,left:`slideFromLeft`,right:`slideFromRight`,bottom:`slideFromBottom`,backdrop:`fade`}},Dropdown:{wrapperClassName:``,className:``,triggerClassName:`btn btn-outline-primary`,badgeClassName:``,menuClassName:`border-border/60 bg-popover/95 shadow-lg shadow-black/5 supports-[backdrop-filter]:bg-popover/92`,menuHeaderClass:`text-muted-foreground/70`,menuItemClass:``,menuDividerClass:`bg-border/60`,headerClassName:``,footerClassName:``,Menu:{wrapperClassName:``,className:`list-none p-0 m-0`,headerClassName:``,itemClassName:``,linkClassName:`flex items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent`,iconClassName:`text-muted-foreground`,textClassName:``,badgeClassName:``,arrowClassName:``,submenuClassName:``},motion:{open:`fadeDown`,close:`fadeDown`,press:`press`}},Notifications:{wrapperClassName:``,Dropdown:{className:``,triggerClassName:`btn btn-link`,menuClassName:`mt-1 text-[11px] w-[300px] pt-1`}},Select:{wrapperClassName:``,className:``},Autocomplete:{wrapperClassName:``,className:``,listClassName:``,optionClassName:``},AddressAutocomplete:{wrapperClassName:``,className:``,menuClassName:`border-border/60 bg-popover/95 shadow-lg shadow-black/5 supports-[backdrop-filter]:bg-popover/92`,itemClassName:``},Form:{wrapperClassName:``,buttonSaveClass:`btn-outline-primary`,buttonDeleteClass:`btn-outline-danger`,buttonBackClass:`btn-link`,Card:{headerClassName:``,bodyClassName:``,footerClassName:`flex items-center justify-end gap-3`}},Menu:{wrapperClassName:`flex-1 overflow-auto p-4`,className:`flex flex-col mb-auto`,headerClassName:``,itemClassName:``,linkClassName:`flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent/50 hover:text-foreground`,iconClassName:`mr-1 shrink-0`,textClassName:`flex-1`,badgeClassName:`ml-1`,arrowClassName:``,submenuClassName:`mt-1 flex flex-col gap-1 pl-4`},SideNav:{wrapperClassName:``,shellClassName:`border-r border-border bg-card text-foreground`,overlayClassName:`shadow-lg`,headerClassName:`border-b border-border px-1.5 py-2`,navClassName:`px-1.5 py-2`,bottomNavClassName:`border-t border-border px-1.5 py-2`,footerClassName:`border-t border-border px-1.5 py-2`,groupLabelClassName:`text-[10px] font-semibold uppercase tracking-[0.16em] text-muted-foreground/70 select-none`,groupDividerClassName:`bg-border/60`,itemClassName:`rounded-md`,itemActiveClassName:`bg-primary/10 text-primary font-medium`,itemChildActiveClassName:`bg-accent text-foreground font-medium`,itemInactiveClassName:`text-muted-foreground hover:text-foreground hover:bg-accent/80`,itemIconClassName:``,itemTextClassName:``,itemBadgeClassName:`ml-auto shrink-0 text-[10px] font-semibold leading-none px-1.5 py-[3px] rounded-full bg-primary/15 text-primary`,itemCollapsedBadgeClassName:`absolute -top-0.5 -right-1 h-[7px] w-[7px] rounded-full bg-primary ring-1 ring-card`,itemToggleClassName:`shrink-0 flex items-center justify-center w-6 h-6 rounded transition-colors text-muted-foreground/50 hover:text-foreground hover:bg-accent/80`,subItemClassName:`rounded-sm`,subItemActiveClassName:`bg-primary/10 text-primary font-medium`,subItemInactiveClassName:`text-muted-foreground hover:text-foreground hover:bg-accent/80`,collapseButtonClassName:`shrink-0 flex items-center justify-center rounded-md w-8 h-8 transition-colors text-muted-foreground hover:text-foreground hover:bg-accent/80`},Toolbar:{wrapperClassName:`z-20 w-full`,stickyClassName:`sticky top-0`,restingClassName:`bg-transparent border-transparent shadow-none`,scrolledClassName:`border-b border-border bg-background/90 backdrop-blur supports-[backdrop-filter]:bg-background/85`,innerClassName:`flex min-h-13 items-center gap-3 px-4 md:px-5`,leadingClassName:`flex min-w-0 items-center gap-2 shrink-0`,centerClassName:`flex min-w-0 flex-1 items-center gap-3`,trailingClassName:`flex items-center gap-2 shrink-0`},ListCard:{wrapperClassName:``,className:``,activeClassName:`border-primary/30 bg-primary/10`,inactiveClassName:`hover:bg-accent/60`,disabledClassName:`cursor-not-allowed opacity-60`,dashedClassName:`border-dashed`,compactClassName:`p-3`,leadingClassName:``,bodyClassName:``,headerClassName:``,titleClassName:``,descriptionClassName:``,metaClassName:``,badgeClassName:``,trailingClassName:``,footerClassName:``,motion:{press:`press`}},ProviderSwitcher:{wrapperClassName:`w-full`,className:`w-full`,triggerClassName:`flex w-full items-center gap-2 rounded-xl px-1.5 py-1.5 text-left text-sm font-semibold text-foreground transition-colors hover:bg-accent/60`,disabledClassName:`pointer-events-none opacity-60`,iconWrapperClassName:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,labelClassName:`block truncate`,captionClassName:`block truncate text-[11px] font-normal text-muted-foreground/80`,chevronClassName:`ml-auto shrink-0 text-muted-foreground/70`,itemClassName:``,itemActiveClassName:``,itemInactiveClassName:``,itemMetaClassName:`text-xs text-muted-foreground`,checkClassName:`text-primary`},Brand:{wrapperClassName:``,className:`flex items-center`,logoClassName:`flex items-center gap-2 font-semibold`,labelClassName:`text-sm font-medium`},SignIn:{className:`flex items-center`,avatarClass:`mx-2 rounded-full object-cover`},Image:{wrapperClassName:``,className:``,motion:{enter:`fade`,hover:!1}},ImageAvatar:{wrapperClassName:``,className:``,motion:{enter:`fade`,hover:!1}},Identicon:{wrapperClassName:``,className:``},Percentage:{wrapperClassName:``,className:``},Tree:{wrapperClassName:``,className:``,itemClassName:``,selectedClassName:``},DescriptionList:{wrapperClassName:``,className:``,itemClassName:``,labelClassName:``,valueClassName:``},Tab:{wrapperClassName:``,className:``,menuClassName:``,itemClassName:``,contentClassName:``,triggerClassName:``,activeTriggerClassName:``,inactiveTriggerClassName:``,motion:{enter:`fadeUp`}},Code:{wrapperClassName:``,className:``},CodeEditor:{wrapperClassName:``,className:``},Prompt:{wrapperClassName:``,className:``},Repeat:{itemClassName:``,inlineItemClassName:``,addButtonClassName:``}}},Ae={preset:{mode:`dark`,radius:0,colors:{background:`0 0% 98%`,foreground:`215 25% 16%`,card:`0 0% 100%`,cardForeground:`215 25% 16%`,popover:`0 0% 100%`,popoverForeground:`215 25% 16%`,primary:`160 84% 39%`,primaryForeground:`0 0% 0%`,secondary:`160 20% 92%`,secondaryForeground:`160 25% 20%`,muted:`160 15% 93%`,mutedForeground:`215 15% 50%`,accent:`160 30% 90%`,accentForeground:`160 84% 25%`,destructive:`0 72% 51%`,destructiveForeground:`0 0% 100%`,success:`160 84% 39%`,successForeground:`0 0% 0%`,warning:`45 96% 48%`,warningForeground:`0 0% 0%`,info:`199 89% 48%`,infoForeground:`0 0% 0%`,border:`160 20% 85%`,input:`160 20% 85%`,ring:`160 84% 39%`},dark:{background:`220 20% 7%`,foreground:`160 10% 90%`,card:`220 20% 10%`,cardForeground:`160 10% 90%`,popover:`220 20% 10%`,popoverForeground:`160 10% 90%`,primary:`160 84% 39%`,primaryForeground:`0 0% 0%`,secondary:`220 20% 15%`,secondaryForeground:`160 10% 75%`,muted:`220 20% 14%`,mutedForeground:`220 10% 55%`,accent:`160 60% 15%`,accentForeground:`160 84% 70%`,destructive:`0 72% 51%`,destructiveForeground:`0 0% 100%`,success:`160 84% 45%`,successForeground:`0 0% 0%`,warning:`45 96% 55%`,warningForeground:`0 0% 0%`,info:`199 89% 55%`,infoForeground:`0 0% 0%`,border:`220 20% 18%`,input:`220 20% 18%`,ring:`160 84% 39%`}},motion:{none:{from:{},to:{},transition:{duration:0,easing:`linear`,properties:[`opacity`,`transform`,`box-shadow`]},reducedMotion:`always`},fade:{from:{opacity:0},to:{opacity:1},transition:{duration:180,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`]},reducedMotion:`respect-user`},fadeUp:{from:{opacity:0,transform:`translateY(10px)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:200,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},fadeDown:{from:{opacity:0,transform:`translateY(-10px)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:180,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`,`visibility`]},reducedMotion:`respect-user`},slideFromRight:{from:{opacity:0,transform:`translateX(100%)`},to:{opacity:1,transform:`translateX(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromLeft:{from:{opacity:0,transform:`translateX(-100%)`},to:{opacity:1,transform:`translateX(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromTop:{from:{opacity:0,transform:`translateY(-100%)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},slideFromBottom:{from:{opacity:0,transform:`translateY(100%)`},to:{opacity:1,transform:`translateY(0)`},transition:{duration:220,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`opacity`,`transform`]},reducedMotion:`respect-user`},press:{from:{},to:{transform:`scale(0.97)`},transition:{duration:110,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`transform`,`box-shadow`]},reducedMotion:`respect-user`},imageZoom:{from:{transform:`scale(1)`},to:{transform:`scale(1.06)`},transition:{duration:280,easing:`cubic-bezier(0.16, 1, 0.3, 1)`,properties:[`transform`]},reducedMotion:`respect-user`}},components:{Grid:{Card:{wrapperClassName:``,className:`rounded-none border-0 bg-transparent shadow-none`,headerClassName:`flex justify-between border-b-0 bg-transparent px-0 py-2`,bodyClassName:`p-0 mt-2`,footerClassName:`border-t-0 bg-transparent px-0 py-2`,loading:!1},Table:{wrapperClassName:`rounded-lg border border-border bg-card shadow-sm`,className:``,headerClassName:``,bodyClassName:``,footerClassName:``,scrollClassName:`overflow-x-auto`,selectedClassName:`bg-primary/10`},Gallery:{wrapperClassName:`rounded-lg border border-border bg-card shadow-sm p-3`,className:``,scrollClassName:``,headerClassName:``,bodyClassName:``,footerClassName:``,selectedClassName:`bg-primary/20`,gap:1,rowCols:4},Modal:{mode:`form`,size:`lg`,position:`center`,wrapperClassName:``,className:``,headerClassName:``,titleClassName:``,subtitleClassName:`pr-1 text-muted-foreground`,bodyClassName:``,footerClassName:``,iconExpand:`fullscreen`,iconCollapse:`fullscreen-exit`,motion:{center:`fade`,top:`slideFromTop`,left:`slideFromLeft`,right:`slideFromRight`,bottom:`slideFromBottom`,backdrop:`fade`}}},Table:{wrapperClassName:``,className:``,headerClassName:``,bodyClassName:``,footerClassName:``,scrollClassName:`overflow-x-auto`,selectedClassName:`bg-primary/10`},Gallery:{wrapperClassName:``,className:``,scrollClassName:``,headerClassName:``,bodyClassName:``,footerClassName:``,selectedClassName:`bg-primary/20`,gap:4,rowCols:2},Pagination:{wrapperClassName:``,className:``,stickyClassName:`fixed bottom-0 left-0 right-0 mx-5`,scrollToTop:!1,scrollBehavior:`auto`,maxItems:5,sticky:!0,align:`end`},Carousel:{showIndicators:!0,showControls:!0,showCaption:!0,dark:!1,autoPlay:!0},Card:{wrapperClassName:``,className:``,headerClassName:`flex justify-between bg-white/[.15] font-normal`,bodyClassName:`flex flex-col`,footerClassName:``,loading:!1},Loader:{wrapperClassName:``,className:``,icon:`loader-2`,title:`Loading..`,description:``},ActionButton:{className:`btn-primary`,badgeClassName:`rounded-full bg-destructive text-destructive-foreground`,motion:{press:`press`}},LoadingButton:{className:`btn-primary`,badgeClassName:`rounded-full bg-destructive text-destructive-foreground`,motion:{press:`press`}},LinkButton:{className:`btn-outline-secondary`},Alert:{className:``},Badge:{className:``},Modal:{size:`lg`,position:`center`,wrapperClassName:``,className:``,headerClassName:``,titleClassName:``,subtitleClassName:`pr-1 text-muted-foreground`,bodyClassName:``,footerClassName:``,iconExpand:`fullscreen`,iconCollapse:`fullscreen-exit`,motion:{center:`fade`,top:`slideFromTop`,left:`slideFromLeft`,right:`slideFromRight`,bottom:`slideFromBottom`,backdrop:`fade`}},Dropdown:{wrapperClassName:``,className:``,triggerClassName:`btn btn-outline-primary`,badgeClassName:``,menuClassName:`rounded-none border-border/70 bg-popover/95 shadow-[0_0_0_1px_hsl(var(--border)/0.55),0_12px_32px_rgba(0,0,0,0.35)] supports-[backdrop-filter]:bg-popover/92`,menuHeaderClass:`text-muted-foreground/75`,menuItemClass:``,menuDividerClass:`bg-border/70`,headerClassName:``,footerClassName:``,Menu:{wrapperClassName:``,className:`list-none p-0 m-0`,headerClassName:``,itemClassName:``,linkClassName:`flex items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent`,iconClassName:`text-muted-foreground`,textClassName:``,badgeClassName:``,arrowClassName:``,submenuClassName:``},motion:{open:`fadeDown`,close:`fadeDown`,press:`press`}},Notifications:{wrapperClassName:``,Dropdown:{className:``,triggerClassName:`btn btn-link`,menuClassName:`mt-1 text-[11px] w-[300px] pt-1`}},Select:{wrapperClassName:``,className:``},Autocomplete:{wrapperClassName:``,className:``,listClassName:``,optionClassName:``},AddressAutocomplete:{wrapperClassName:``,className:``,menuClassName:`rounded-none border-border/70 bg-popover/95 shadow-[0_0_0_1px_hsl(var(--border)/0.55),0_12px_32px_rgba(0,0,0,0.35)] supports-[backdrop-filter]:bg-popover/92`,itemClassName:``},Form:{wrapperClassName:``,buttonSaveClass:`btn-outline-primary`,buttonDeleteClass:`btn-outline-danger`,buttonBackClass:`btn-link`,Card:{headerClassName:``,bodyClassName:``,footerClassName:`flex items-center justify-end gap-3`}},Menu:{wrapperClassName:`flex-1 overflow-auto p-4`,className:`flex flex-col mb-auto`,headerClassName:``,itemClassName:``,linkClassName:`flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent/50 hover:text-foreground`,iconClassName:`mr-1 shrink-0`,textClassName:`flex-1`,badgeClassName:`ml-1`,arrowClassName:``,submenuClassName:`mt-1 flex flex-col gap-1 pl-4`},SideNav:{wrapperClassName:``,shellClassName:`border-r border-border bg-card/95 text-foreground`,overlayClassName:`shadow-[0_0_32px_rgba(16,185,129,0.18)]`,headerClassName:`border-b border-border px-1.5 py-2`,navClassName:`px-1.5 py-2`,bottomNavClassName:`border-t border-border px-1.5 py-2`,footerClassName:`border-t border-border px-1.5 py-2`,groupLabelClassName:`text-[10px] font-semibold uppercase tracking-[0.18em] text-muted-foreground/70 select-none`,groupDividerClassName:`bg-border/70`,itemClassName:`rounded-none`,itemActiveClassName:`bg-primary/12 text-primary font-medium`,itemChildActiveClassName:`bg-accent/90 text-foreground font-medium`,itemInactiveClassName:`text-muted-foreground hover:text-foreground hover:bg-accent/80`,itemIconClassName:``,itemTextClassName:``,itemBadgeClassName:`ml-auto shrink-0 text-[10px] font-semibold leading-none px-1.5 py-[3px] rounded-none bg-primary/15 text-primary`,itemCollapsedBadgeClassName:`absolute -top-0.5 -right-1 h-[7px] w-[7px] rounded-none bg-primary ring-1 ring-card`,itemToggleClassName:`shrink-0 flex items-center justify-center w-6 h-6 rounded-none transition-colors text-muted-foreground/50 hover:text-foreground hover:bg-accent/80`,subItemClassName:`rounded-none`,subItemActiveClassName:`bg-primary/12 text-primary font-medium`,subItemInactiveClassName:`text-muted-foreground hover:text-foreground hover:bg-accent/80`,collapseButtonClassName:`shrink-0 flex items-center justify-center rounded-none w-8 h-8 transition-colors text-muted-foreground hover:text-foreground hover:bg-accent/80`},Toolbar:{wrapperClassName:`z-20 w-full`,stickyClassName:`sticky top-0`,restingClassName:`bg-transparent border-transparent shadow-none`,scrolledClassName:`border-b border-border bg-background/90 backdrop-blur supports-[backdrop-filter]:bg-background/85`,innerClassName:`flex min-h-14 items-center gap-3 px-4 md:px-6`,leadingClassName:`flex min-w-0 items-center gap-2 shrink-0`,centerClassName:`flex min-w-0 flex-1 items-center gap-3`,trailingClassName:`flex items-center gap-2 shrink-0`},ListCard:{wrapperClassName:``,className:`rounded-none shadow-[0_0_0_1px_hsl(var(--border)/0.7)]`,activeClassName:`border-primary/50 bg-primary/10 text-foreground`,inactiveClassName:`hover:bg-accent/70`,disabledClassName:`cursor-not-allowed opacity-60`,dashedClassName:`border-dashed`,compactClassName:`p-3`,leadingClassName:`rounded-none`,bodyClassName:``,headerClassName:``,titleClassName:``,descriptionClassName:``,metaClassName:``,badgeClassName:``,trailingClassName:``,footerClassName:``,motion:{press:`press`}},ProviderSwitcher:{wrapperClassName:`w-full`,className:`w-full`,triggerClassName:`flex w-full items-center gap-2 rounded-none px-1.5 py-1.5 text-left text-sm font-semibold text-foreground transition-colors hover:bg-accent/70`,disabledClassName:`pointer-events-none opacity-60`,iconWrapperClassName:`flex h-8 w-8 shrink-0 items-center justify-center rounded-none bg-primary/10 text-primary`,labelClassName:`block truncate`,captionClassName:`block truncate text-[11px] font-normal text-muted-foreground/80`,chevronClassName:`ml-auto shrink-0 text-muted-foreground/70`,itemClassName:`rounded-none`,itemActiveClassName:``,itemInactiveClassName:``,itemMetaClassName:`text-xs text-muted-foreground`,checkClassName:`text-primary`},Brand:{wrapperClassName:``,className:`flex items-center`,logoClassName:`flex items-center gap-2 font-semibold`,labelClassName:`text-sm font-medium`},SignIn:{className:`flex items-center`,avatarClass:`mx-2 rounded-full object-cover`},Image:{wrapperClassName:``,className:``,motion:{enter:`fade`,hover:`imageZoom`}},ImageAvatar:{wrapperClassName:``,className:``,motion:{enter:`fade`,hover:`imageZoom`}},Identicon:{wrapperClassName:``,className:``},Percentage:{wrapperClassName:``,className:``},Tree:{wrapperClassName:``,className:``,itemClassName:``,selectedClassName:``},DescriptionList:{wrapperClassName:``,className:``,itemClassName:``,labelClassName:``,valueClassName:``},Tab:{wrapperClassName:``,className:``,menuClassName:``,itemClassName:``,contentClassName:``,triggerClassName:``,activeTriggerClassName:``,inactiveTriggerClassName:``,motion:{enter:`fadeUp`}},Code:{wrapperClassName:``,className:``},CodeEditor:{wrapperClassName:``,className:``},Prompt:{wrapperClassName:``,className:``},Repeat:{itemClassName:``,inlineItemClassName:``,addButtonClassName:``}}},je={...Oe,preset:{...Oe.preset,mode:`dark`,colors:{...Oe.preset.colors,background:`0 0% 100%`,foreground:`0 0% 23.1%`,canvas:`0 0% 97.3%`,card:`0 0% 100%`,cardForeground:`0 0% 23.1%`,popover:`0 0% 100%`,popoverForeground:`0 0% 23.1%`,primary:`209 100% 36.1%`,primaryForeground:`0 0% 100%`,secondary:`0 0% 89.8%`,secondaryForeground:`0 0% 23.1%`,muted:`0 0% 94.9%`,mutedForeground:`0 0% 23.1%`,accent:`0 0% 94.9%`,accentForeground:`0 0% 23.1%`,border:`0 0% 89.8%`,input:`0 0% 80.8%`,ring:`209 100% 36.1%`,header:`0 0% 97.3%`,headerForeground:`0 0% 11.8%`,headerBorder:`0 0% 89.8%`,sidebar:`0 0% 97.3%`,sidebarForeground:`0 0% 23.1%`,sidebarBorder:`0 0% 89.8%`,sidebarAccent:`230.8 31.7% 92%`,sidebarAccentForeground:`0 0% 23.1%`,footer:`0 0% 97.3%`,footerForeground:`0 0% 23.1%`,footerBorder:`0 0% 89.8%`},dark:{...Oe.preset.dark,background:`0 0% 12.2%`,foreground:`0 0% 80%`,canvas:`0 0% 9.4%`,card:`0 0% 12.2%`,cardForeground:`0 0% 80%`,popover:`0 0% 12.2%`,popoverForeground:`0 0% 80%`,primary:`206 100% 41.6%`,primaryForeground:`0 0% 100%`,secondary:`195 4.5% 17.3%`,secondaryForeground:`0 0% 80%`,muted:`195 4.5% 17.3%`,mutedForeground:`0 0% 61.6%`,accent:`195 4.5% 17.3%`,accentForeground:`0 0% 80%`,border:`0 0% 16.9%`,input:`0 0% 23.5%`,ring:`206 100% 41.6%`,header:`0 0% 9.4%`,headerForeground:`0 0% 80%`,headerBorder:`0 0% 16.9%`,sidebar:`0 0% 9.4%`,sidebarForeground:`0 0% 80%`,sidebarBorder:`0 0% 16.9%`,sidebarAccent:`240 5.2% 22.7%`,sidebarAccentForeground:`0 0% 80%`,footer:`0 0% 9.4%`,footerForeground:`0 0% 80%`,footerBorder:`0 0% 16.9%`}}},Me={...Oe,preset:{...Oe.preset,mode:`light`,colors:{...Oe.preset.colors,background:`0 0% 100%`,foreground:`0 0% 23.1%`,canvas:`0 0% 97.3%`,card:`0 0% 100%`,cardForeground:`0 0% 23.1%`,popover:`0 0% 100%`,popoverForeground:`0 0% 23.1%`,primary:`209 100% 36.1%`,primaryForeground:`0 0% 100%`,secondary:`0 0% 89.8%`,secondaryForeground:`0 0% 23.1%`,muted:`0 0% 94.9%`,mutedForeground:`0 0% 23.1%`,accent:`0 0% 94.9%`,accentForeground:`0 0% 23.1%`,border:`0 0% 89.8%`,input:`0 0% 80.8%`,ring:`209 100% 36.1%`,header:`0 0% 97.3%`,headerForeground:`0 0% 11.8%`,headerBorder:`0 0% 89.8%`,sidebar:`0 0% 97.3%`,sidebarForeground:`0 0% 23.1%`,sidebarBorder:`0 0% 89.8%`,sidebarAccent:`230.8 31.7% 92%`,sidebarAccentForeground:`0 0% 23.1%`,footer:`0 0% 97.3%`,footerForeground:`0 0% 23.1%`,footerBorder:`0 0% 89.8%`},dark:{...Oe.preset.dark,background:`0 0% 12.2%`,foreground:`0 0% 80%`,canvas:`0 0% 9.4%`,card:`0 0% 12.2%`,cardForeground:`0 0% 80%`,popover:`0 0% 12.2%`,popoverForeground:`0 0% 80%`,primary:`206 100% 41.6%`,primaryForeground:`0 0% 100%`,secondary:`195 4.5% 17.3%`,secondaryForeground:`0 0% 80%`,muted:`195 4.5% 17.3%`,mutedForeground:`0 0% 61.6%`,accent:`195 4.5% 17.3%`,accentForeground:`0 0% 80%`,border:`0 0% 16.9%`,input:`0 0% 23.5%`,ring:`206 100% 41.6%`,header:`0 0% 9.4%`,headerForeground:`0 0% 80%`,headerBorder:`0 0% 16.9%`,sidebar:`0 0% 9.4%`,sidebarForeground:`0 0% 80%`,sidebarBorder:`0 0% 16.9%`,sidebarAccent:`240 5.2% 22.7%`,sidebarAccentForeground:`0 0% 80%`,footer:`0 0% 9.4%`,footerForeground:`0 0% 80%`,footerBorder:`0 0% 16.9%`}}},Ne={...Oe,preset:{...Oe.preset,mode:`dark`,colors:{...Oe.preset.colors,background:`0 0% 100%`,foreground:`0 0% 0%`,canvas:`0 0% 95.3%`,card:`0 0% 100%`,cardForeground:`0 0% 0%`,popover:`0 0% 100%`,popoverForeground:`0 0% 38%`,primary:`204.1 100% 40%`,primaryForeground:`0 0% 100%`,secondary:`0 0% 91%`,secondaryForeground:`0 0% 38%`,muted:`0 0% 91%`,mutedForeground:`0 0% 44.3%`,accent:`0 0% 91%`,accentForeground:`0 0% 38%`,border:`0 0% 82.7%`,input:`0 0% 80.8%`,ring:`204.1 100% 47.3%`,header:`0 0% 86.7%`,headerForeground:`0 0% 20%`,headerBorder:`0 0% 86.7%`,sidebar:`0 0% 95.3%`,sidebarForeground:`0 0% 38%`,sidebarBorder:`0 0% 95.3%`,sidebarAccent:`230.8 31.7% 92%`,sidebarAccentForeground:`0 0% 38%`,footer:`204.1 100% 40%`,footerForeground:`0 0% 100%`,footerBorder:`204.1 100% 40%`},dark:{...Oe.preset.dark,background:`0 0% 11.8%`,foreground:`0 0% 83.1%`,canvas:`0 0% 11.8%`,card:`240 1.3% 14.7%`,cardForeground:`0 0% 83.1%`,popover:`240 1.3% 14.7%`,popoverForeground:`0 0% 80%`,primary:`204.1 83.5% 33.3%`,primaryForeground:`0 0% 100%`,secondary:`195 4.5% 17.3%`,secondaryForeground:`0 0% 80%`,muted:`195 4.5% 17.3%`,mutedForeground:`240 0.5% 60.6%`,accent:`195 4.5% 17.3%`,accentForeground:`0 0% 80%`,border:`0 0% 27.1%`,input:`0 0% 23.5%`,ring:`204.1 100% 41.6%`,header:`0 0% 23.5%`,headerForeground:`0 0% 80%`,headerBorder:`0 0% 23.5%`,sidebar:`240 1.3% 14.7%`,sidebarForeground:`0 0% 80%`,sidebarBorder:`240 1.3% 14.7%`,sidebarAccent:`240 5.2% 22.7%`,sidebarAccentForeground:`0 0% 80%`,footer:`204.1 100% 40%`,footerForeground:`0 0% 100%`,footerBorder:`204.1 100% 40%`}}},Pe={...Oe,preset:{...Oe.preset,mode:`light`,colors:{...Oe.preset.colors,background:`0 0% 100%`,foreground:`0 0% 0%`,canvas:`0 0% 95.3%`,card:`0 0% 100%`,cardForeground:`0 0% 0%`,popover:`0 0% 100%`,popoverForeground:`0 0% 38%`,primary:`204.1 100% 40%`,primaryForeground:`0 0% 100%`,secondary:`0 0% 91%`,secondaryForeground:`0 0% 38%`,muted:`0 0% 91%`,mutedForeground:`0 0% 44.3%`,accent:`0 0% 91%`,accentForeground:`0 0% 38%`,border:`0 0% 82.7%`,input:`0 0% 80.8%`,ring:`204.1 100% 47.3%`,header:`0 0% 86.7%`,headerForeground:`0 0% 20%`,headerBorder:`0 0% 86.7%`,sidebar:`0 0% 95.3%`,sidebarForeground:`0 0% 38%`,sidebarBorder:`0 0% 95.3%`,sidebarAccent:`230.8 31.7% 92%`,sidebarAccentForeground:`0 0% 38%`,footer:`204.1 100% 40%`,footerForeground:`0 0% 100%`,footerBorder:`204.1 100% 40%`},dark:{...Oe.preset.dark,background:`0 0% 11.8%`,foreground:`0 0% 83.1%`,canvas:`0 0% 11.8%`,card:`240 1.3% 14.7%`,cardForeground:`0 0% 83.1%`,popover:`240 1.3% 14.7%`,popoverForeground:`0 0% 80%`,primary:`204.1 83.5% 33.3%`,primaryForeground:`0 0% 100%`,secondary:`195 4.5% 17.3%`,secondaryForeground:`0 0% 80%`,muted:`195 4.5% 17.3%`,mutedForeground:`240 0.5% 60.6%`,accent:`195 4.5% 17.3%`,accentForeground:`0 0% 80%`,border:`0 0% 27.1%`,input:`0 0% 23.5%`,ring:`204.1 100% 41.6%`,header:`0 0% 23.5%`,headerForeground:`0 0% 80%`,headerBorder:`0 0% 23.5%`,sidebar:`240 1.3% 14.7%`,sidebarForeground:`0 0% 80%`,sidebarBorder:`240 1.3% 14.7%`,sidebarAccent:`240 5.2% 22.7%`,sidebarAccentForeground:`0 0% 80%`,footer:`204.1 100% 40%`,footerForeground:`0 0% 100%`,footerBorder:`204.1 100% 40%`}}},Fe={...Oe,preset:{...Oe.preset,mode:`dark`,colors:{...Oe.preset.colors,background:`231.4 16.3% 91.6%`,foreground:`228.6 26.2% 27.6%`,canvas:`226.7 12.3% 85.7%`,card:`231.4 16.3% 91.6%`,cardForeground:`228.6 26.2% 27.6%`,popover:`226.7 12.3% 85.7%`,popoverForeground:`224.3 17.6% 25.7%`,primary:`217.7 46.1% 48%`,primaryForeground:`0 0% 100%`,secondary:`232.5 6.7% 47.1%`,secondaryForeground:`224.3 17.6% 25.7%`,muted:`231.4 13.2% 89.6%`,mutedForeground:`232.5 6.7% 47.1%`,accent:`231.4 13.2% 89.6%`,accentForeground:`224.3 17.6% 25.7%`,border:`230 5.1% 76.9%`,input:`230 5.1% 76.9%`,ring:`226.7 10.1% 82.5%`,header:`226.7 12.3% 85.7%`,headerForeground:`224.3 17.6% 25.7%`,headerBorder:`230 5.1% 76.9%`,sidebar:`226.7 12.3% 85.7%`,sidebarForeground:`224.3 17.6% 25.7%`,sidebarBorder:`230 5.1% 76.9%`,sidebarAccent:`231.4 16.3% 91.6%`,sidebarAccentForeground:`224.3 17.6% 25.7%`,footer:`226.7 12.3% 85.7%`,footerForeground:`224.3 17.6% 25.7%`,footerBorder:`230 5.1% 76.9%`},dark:{...Oe.preset.dark,background:`235 18.8% 12.5%`,foreground:`229.3 35.4% 75.1%`,canvas:`240 15.4% 10.2%`,card:`235 18.8% 12.5%`,cardForeground:`229.3 35.4% 75.1%`,popover:`240 15.4% 10.2%`,popoverForeground:`232.7 13.9% 53.5%`,primary:`223.1 44.3% 39.4%`,primaryForeground:`0 0% 100%`,secondary:`232.2 16.3% 27.6%`,secondaryForeground:`232.7 13.9% 53.5%`,muted:`240 15.6% 8.8%`,mutedForeground:`230.3 16.1% 37.8%`,accent:`240 15.6% 8.8%`,accentForeground:`229.3 35.4% 75.1%`,border:`240 11.1% 7.1%`,input:`240 14.3% 6.9%`,ring:`233.3 19.1% 18.4%`,header:`240 15.4% 10.2%`,headerForeground:`232.7 13.9% 53.5%`,headerBorder:`240 11.1% 7.1%`,sidebar:`240 15.4% 10.2%`,sidebarForeground:`232.7 13.9% 53.5%`,sidebarBorder:`240 11.1% 7.1%`,sidebarAccent:`235.4 18.8% 13.5%`,sidebarAccentForeground:`229.3 35.4% 75.1%`,footer:`240 15.4% 10.2%`,footerForeground:`232.7 13.9% 53.5%`,footerBorder:`240 11.1% 7.1%`}}},Ie={...Oe,preset:{...Oe.preset,mode:`light`,colors:{...Oe.preset.colors,background:`231.4 16.3% 91.6%`,foreground:`228.6 26.2% 27.6%`,canvas:`226.7 12.3% 85.7%`,card:`231.4 16.3% 91.6%`,cardForeground:`228.6 26.2% 27.6%`,popover:`226.7 12.3% 85.7%`,popoverForeground:`224.3 17.6% 25.7%`,primary:`217.7 46.1% 48%`,primaryForeground:`0 0% 100%`,secondary:`232.5 6.7% 47.1%`,secondaryForeground:`224.3 17.6% 25.7%`,muted:`231.4 13.2% 89.6%`,mutedForeground:`232.5 6.7% 47.1%`,accent:`231.4 13.2% 89.6%`,accentForeground:`224.3 17.6% 25.7%`,border:`230 5.1% 76.9%`,input:`230 5.1% 76.9%`,ring:`226.7 10.1% 82.5%`,header:`226.7 12.3% 85.7%`,headerForeground:`224.3 17.6% 25.7%`,headerBorder:`230 5.1% 76.9%`,sidebar:`226.7 12.3% 85.7%`,sidebarForeground:`224.3 17.6% 25.7%`,sidebarBorder:`230 5.1% 76.9%`,sidebarAccent:`231.4 16.3% 91.6%`,sidebarAccentForeground:`224.3 17.6% 25.7%`,footer:`226.7 12.3% 85.7%`,footerForeground:`224.3 17.6% 25.7%`,footerBorder:`230 5.1% 76.9%`},dark:{...Oe.preset.dark,background:`235 18.8% 12.5%`,foreground:`229.3 35.4% 75.1%`,canvas:`240 15.4% 10.2%`,card:`235 18.8% 12.5%`,cardForeground:`229.3 35.4% 75.1%`,popover:`240 15.4% 10.2%`,popoverForeground:`232.7 13.9% 53.5%`,primary:`223.1 44.3% 39.4%`,primaryForeground:`0 0% 100%`,secondary:`232.2 16.3% 27.6%`,secondaryForeground:`232.7 13.9% 53.5%`,muted:`240 15.6% 8.8%`,mutedForeground:`230.3 16.1% 37.8%`,accent:`240 15.6% 8.8%`,accentForeground:`229.3 35.4% 75.1%`,border:`240 11.1% 7.1%`,input:`240 14.3% 6.9%`,ring:`233.3 19.1% 18.4%`,header:`240 15.4% 10.2%`,headerForeground:`232.7 13.9% 53.5%`,headerBorder:`240 11.1% 7.1%`,sidebar:`240 15.4% 10.2%`,sidebarForeground:`232.7 13.9% 53.5%`,sidebarBorder:`240 11.1% 7.1%`,sidebarAccent:`235.4 18.8% 13.5%`,sidebarAccentForeground:`229.3 35.4% 75.1%`,footer:`240 15.4% 10.2%`,footerForeground:`232.7 13.9% 53.5%`,footerBorder:`240 11.1% 7.1%`}}},Le=[`default`,`flat`,`cyber`,`vscode-dark-modern`,`vscode-light-modern`,`vscode-dark-plus`,`vscode-light-plus`,`tokyo-night`,`tokyo-night-light`],Re=(0,n.createContext)(De),ze=(0,n.createContext)(Oe.motion),Be=(0,n.createContext)(null),Ve={default:Oe,flat:ke,cyber:Ae,"vscode-dark-modern":je,"vscode-light-modern":Me,"vscode-dark-plus":Ne,"vscode-light-plus":Pe,"tokyo-night":Fe,"tokyo-night-light":Ie},He=(e,t)=>{let n=e,r=t;for(let e in r)Object.prototype.hasOwnProperty.call(r,e)&&(typeof r[e]==`object`&&r[e]!==null?(n[e]||(n[e]={}),He(n[e],r[e])):r[e]!==null&&(n[e]=r[e]));return e},Ue=e=>He({},e);function We(e){return typeof e==`object`&&!!e&&`preset`in e&&`motion`in e&&`components`in e}function Ge(e){return typeof e==`string`||e===void 0?{theme:e??`default`,themes:{...Ve}}:We(e)?{theme:`custom`,themes:{...Ve,custom:e}}:{defaultMode:e.defaultMode,theme:e.theme??`default`,themes:{...Ve,...e.themes??{}},themeOverride:e.themeOverride}}var Ke=`llmnative.theme.activeTheme`,qe=`llmnative.theme.mode`;function Je(e){if(typeof window<`u`)try{let t=window.localStorage.getItem(Ke);return t&&e[t]?t:void 0}catch{return}}function Ye(){if(typeof window<`u`)try{let e=window.localStorage.getItem(qe);return e===`light`||e===`dark`||e===`system`?e:void 0}catch{return}}function Xe(e,t){if(typeof window<`u`)try{window.localStorage.setItem(Ke,e),window.localStorage.setItem(qe,t)}catch{}}function Ze(e){return e===`system`?typeof window>`u`||!window.matchMedia?`light`:window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:e}function Qe(e){return`--rf-`+e.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`)}function $e({mode:e,radius:t,fontSans:n,fontMono:r,colors:i,dark:a,variables:o}){if(typeof document>`u`)return;document.documentElement.classList.toggle(`dark`,Ze(e)===`dark`);let s={},c={};for(let[e,t]of Object.entries(i??{}))t!==void 0&&(s[Qe(e)]=t);for(let[e,t]of Object.entries(a??{}))t!==void 0&&(c[Qe(e)]=t);s[`--radius`]=`${t}rem`,s[`--radius-sm`]=`${(t*.5).toFixed(4).replace(/\.?0+$/,``)}rem`,s[`--radius-md`]=`${(t*.75).toFixed(4).replace(/\.?0+$/,``)}rem`,s[`--radius-lg`]=`${t}rem`,s[`--radius-xl`]=`${(t*1.5).toFixed(4).replace(/\.?0+$/,``)}rem`,s[`--radius-2xl`]=`${(t*2).toFixed(4).replace(/\.?0+$/,``)}rem`,s[`--radius-3xl`]=`${(t*3).toFixed(4).replace(/\.?0+$/,``)}rem`,n&&(s[`--font-sans`]=n),r&&(s[`--font-mono`]=r);for(let[e,t]of Object.entries(o??{}))s[e.startsWith(`--`)?e:`--${e}`]=t;let l=document.getElementById(`rf-theme-vars`);l||(l=document.createElement(`style`),l.id=`rf-theme-vars`,document.head.appendChild(l));let u=e=>Object.entries(e).map(([e,t])=>` ${e}: ${t};`).join(`
|
|
2
2
|
`);l.textContent=[Object.keys(s).length?`:root {\n${u(s)}\n}`:``,Object.keys(c).length?`.dark {\n${u(c)}\n}`:``].filter(Boolean).join(`
|
|
3
|
-
`)}var et=`data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='50' fill='%23eef2f7'/%3E%3Ccircle cx='50' cy='38' r='16' fill='%2364758b'/%3E%3Cpath d='M22 84c3.8-20 19-31 28-31s24.2 11 28 31c.5 2.8-1.7 5-4.5 5h-47c-2.8 0-5-2.2-4.5-5z' fill='%2364758b'/%3E%3C/svg%3E`,tt=({children:e,config:t=void 0})=>{let r=(0,n.useMemo)(()=>Ge(t),[t]),i=Je(r.themes)??r.theme,a=r.themes[i]??r.themes.default,o=a.preset,[s,c]=(0,n.useState)(r.themes),[l,u]=(0,n.useState)(i),[d,f]=(0,n.useState)(Ye()??r.defaultMode??o.mode??`light`),[p,m]=(0,n.useState)(o.radius??Ve.default.preset.radius),[h,g]=(0,n.useState)(o.fontSans??``),[_,v]=(0,n.useState)(o.fontMono??``),[y,b]=(0,n.useState)(o.colors),[x,S]=(0,n.useState)(o.dark),[C,w]=(0,n.useState)(()=>Ue(a.components)),[T,E]=(0,n.useState)(a.motion);(0,n.useEffect)(()=>{let e=Je(r.themes)??r.theme,t=r.themes[e]??r.themes.default,n=t.preset;c(r.themes),u(e),f(Ye()??r.defaultMode??n.mode??`light`),m(n.radius??Ve.default.preset.radius),g(n.fontSans??``),v(n.fontMono??``),b(n.colors),S(n.dark),E(t.motion)},[r]),(0,n.useEffect)(()=>{let e=s[l]??s.default,t=Ue(e.components);He(t,r.themeOverride??{}),w(t),E(e.motion)},[l,r.themeOverride,s]),(0,n.useEffect)(()=>{Xe(l,d)},[l,d]),(0,n.useEffect)(()=>{let e=(s[l]??s.default).preset;$e({mode:d,radius:p,fontSans:h,fontMono:_,colors:y,dark:x,variables:e.variables})},[d,s,l,p,h,_,y,x]);let D=(0,n.useMemo)(()=>({mode:d,resolvedMode:Ze(d),theme:l,primary:y?.primary??Ve.default.preset.colors.primary,primaryForeground:y?.primaryForeground??Ve.default.preset.colors.primaryForeground,radius:p,fontSans:h,fontMono:_,colors:y,dark:x,themes:s,setMode:f,toggleMode(){f(e=>Ze(e)===`dark`?`light`:`dark`)},applyTheme(e){s[e]||(process.env.NODE_ENV!==`production`&&console.warn(`[ThemeProvider] Unknown theme "${e}", falling back to "default".`),e=`default`);let t=(s[e]??s.default).preset;u(e),f(t.mode??`light`),m(t.radius??Ve.default.preset.radius),g(t.fontSans??``),v(t.fontMono??``),b(t.colors),S(t.dark)},setPrimary(e){let t=e.split(` `)[0];b(n=>({...n,primary:e,ring:e,secondary:`${t} 40% 96%`,secondaryForeground:`${t} 47% 11%`,accent:`${t} 40% 94%`,accentForeground:`${t} 47% 11%`})),S(n=>({...n,primary:e,ring:e,secondary:`${t} 30% 18%`,secondaryForeground:`${t} 10% 96%`,accent:`${t} 30% 18%`,accentForeground:`${t} 10% 96%`}))},setRadius:m,setFont(e,t){g(e),t!==void 0&&v(t)},setColors(e){b(e)},setTokens(e){b(t=>({...t,...e})),S(t=>({...t,...e}))}}),[d,l,p,h,_,y,x,s]);return n.default.createElement(Be.Provider,{value:D},n.default.createElement(ze.Provider,{value:T},n.default.createElement(Re.Provider,{value:C},e)))},q=e=>(0,n.useContext)(Re),nt=()=>(0,n.useContext)(ze),rt=()=>{let e=(0,n.useContext)(Be);if(!e)throw Error(`useThemeController must be used inside <App> or <ThemeProvider>.`);return e},it={common:{save:`Save`,cancel:`Cancel`,delete:`Delete`,close:`Close`,back:`Back`,search:`Search`,loading:`Loading...`,noDataFound:`No data found`,pageNavigation:`Page navigation`,previous:`Previous`,next:`Next`,notFoundMessage:`Oops! Page not found.`,goHome:`Go to Home`,openNavigation:`Open navigation`},auth:{signIn:`Sign in`,signOut:`Sign out`,connect:`Connect`,connected:`Connected`,authenticated:`Authenticated`,notConfigured:`Auth provider "{provider}" is not configured. Add the required client key before using this action.`,notImplemented:`AuthProvider does not implement signIn().`},access:{email:`Email`,emailPlaceholder:`name@company.com`,password:`Password`,newPassword:`New password`,name:`Full name`,showPassword:`Show password`,hidePassword:`Hide password`,or:`or`,continue:`Continue`,backToSignIn:`Back to sign in`,emailRequired:`Enter your email.`,emailInvalid:`Enter a valid email address, like name@company.com.`,passwordRequired:`Enter your password.`,nameRequired:`Enter your name.`,signInTitle:`Sign in`,signInTitleApp:`Sign in to {app}`,signInDescription:`Welcome back. Sign in to continue.`,signInSubmit:`Sign in`,forgotPassword:`Forgot password?`,noAccount:`Don’t have an account?`,signUpLink:`Create one`,continueWith:`Continue with {provider}`,codeRequest:`Email me a sign-in code`,usePassword:`Sign in with a password instead`,useCode:`Email me a code instead`,signUpTitle:`Create your account`,signUpDescription:`It takes less than a minute.`,signUpSubmit:`Create account`,haveAccount:`Already have an account?`,signInLink:`Sign in`,terms:`I accept the terms of service and the privacy policy`,termsRequired:`Accept the terms to continue.`,passwordRules:`Your password needs`,ruleLength:`at least {min} characters`,ruleNumber:`a number`,ruleCase:`upper and lower case letters`,ruleSymbol:`a symbol, like ! or #`,ruleMet:`done`,ruleNotMet:`missing`,checkEmailTitle:`Check your email`,checkEmailSignUp:`We sent a link to {email}. Open it to activate your account.`,checkEmailHint:`Can’t find it? Look in the spam folder.`,resend:`Send it again`,resendIn:`Send again in {seconds} s`,resent:`Sent. It may take a minute to arrive.`,useOtherEmail:`Use a different email`,forgotTitle:`Forgot your password?`,forgotDescription:`Enter the email of your account and we’ll send you a link to choose a new password.`,forgotSubmit:`Send the link`,forgotSent:`If an account exists for {email}, a link to choose a new password is on its way.`,resetTitle:`Choose a new password`,resetDescription:`Use a password you don’t use on other sites.`,resetDescriptionFor:`For {email}. Use a password you don’t use on other sites.`,resetSubmit:`Save the password`,resetDoneTitle:`Password changed`,resetDone:`Your new password is saved. Use it to sign in from now on.`,linkExpiredTitle:`This link no longer works`,linkExpired:`Links work once and for a limited time. Ask for a new one.`,requestNewLink:`Ask for a new link`,verifyTitle:`Confirm your email`,verifyPending:`We sent a link to {email}. Open it to confirm your address.`,verifyPendingNoEmail:`We sent you a link. Open it to confirm your address.`,verifyChecking:`Confirming your email…`,verifyDoneTitle:`Email confirmed`,verifyDone:`Your account is active. You can continue.`,verifiedContinue:`I’ve confirmed it`,notVerifiedYet:`Your email is not confirmed yet. Open the link in the email we sent you.`,codeTitle:`Enter the code`,codeDescription:`We sent a {length}-digit code to {email}. It works for a few minutes.`,codeLabel:`Sign-in code`,codeDigit:`Digit {index} of {length}`,codeSubmit:`Verify`,codeNotReceived:`Didn’t get the code?`,deniedTitle:`No access`,denied:`You are signed in as {user}, but this account can’t open this app. Ask an administrator for access.`,signInOther:`Sign in with another account`,errorGeneric:`Something went wrong. Try again in a moment.`,errorCredentials:`The email or the password is not correct.`,errorEmailInUse:`An account with this email already exists. Sign in instead.`,errorWeakPassword:`This password is too easy to guess. Choose a longer one.`,errorInvalidEmail:`Enter a valid email address.`,errorTooManyRequests:`Too many attempts. Wait a few minutes and try again.`,errorNetwork:`No connection. Check your network and try again.`,errorInvalidCode:`The code is not correct or has expired.`,errorExpiredLink:`This link has expired or was already used. Ask for a new one.`,errorDisabled:`This account is disabled. Contact an administrator.`,errorCancelled:`Sign-in was cancelled before it finished.`,errorNotSupported:`This way of signing in is not available.`},form:{headerAdd:`New record`,headerEdit:`Edit record`,buttonSave:`Save`,buttonDelete:`Delete`,buttonBack:`Back`,requiredField:`{field} is required`,requiredFieldGeneric:`Required field`,saveSuccess:`Record saved successfully`,saveError:`Something went wrong. Try again.`,deleteSuccess:`Record deleted successfully`,noticeRequiredFields:`Please fill in all required fields`,noChangesToSave:`No changes to save`,draftRestoreTitle:`Unsaved changes found`,draftRestoreMessage:`A local draft is available for this form. Restore it or discard it.`,draftRestoreAction:`Restore`,draftDiscardAction:`Discard`,draftRestoredTitle:`Draft restored`,draftRestoredMessage:`The local draft has been restored. You can still discard it for a few seconds.`,draftSaveError:`Could not save a local draft — the change is too large for browser storage (e.g. an unsent image upload). Save the form to keep it.`},grid:{buttonAdd:`Add`,deleteConfirm:`Delete record`,emptyState:`No records found`,filtersButton:`Filters`,filtersPanelTitle:`Filters`,filtersClearAll:`Clear all`,filtersSelectPlaceholder:`All`,filtersRangeFrom:`From`,filtersRangeTo:`To`,filtersRangeMin:`Min`,filtersRangeMax:`Max`,filtersSelectedCountTemplate:`{count} selected`,tableView:`Table view`,galleryView:`Gallery view`,columns:`Columns`,fields:`Fields`},select:{placeholder:`Select...`,loading:`Loading...`},modal:{save:`Save`,delete:`Delete`,cancel:`Cancel`,close:`Close`,ok:`Ok`,yes:`Yes`,no:`No`},upload:{clickOrDrag:`Click to upload or drag and drop`,dropToUpload:`Drop to upload`,uploadMore:`Upload more files`,editFileName:`Edit file name`,editorImage:`Edit image`,loaded:`Loaded`,removeFile:`Remove`,uploadAnother:`Upload another file`,dropToParse:`Drop to parse`,insertFromUrl:`Insert from URL`,urlPlaceholder:`https://…/image.png`,invalidUrl:`Enter a valid URL`},notifications:{title:`Notifications`,seeAll:`See all`,markAllRead:`Mark all read`,empty:`No notifications`,emptyHint:`You're all caught up`},code:{copyCode:`Copy code`,copy:`Copy`,copied:`Copied`,codeLanguageDefault:`text`},table:{noDataFound:`No data found`,selectAllRows:`Select all rows`,sortBy:`Sort by {label}`,sortByCurrent:`Sort by {label}, currently {direction}`,selectRow:`Select row {key}`,reorderRow:`Reorder row {key}`},gallery:{selectItem:`Select item {key}`},sortableList:{handle:`Move item {position} of {total}: drag it, or use the up and down arrows`,moved:`Moved to position {position} of {total}`},crop:{enableCrop:`Click {scale} to enable this crop`,variants:`Variants`,outputFile:`Output file`,active:`active`,removeVariant:`Remove {scale} variant`,fileName:`File name`,altText:`Alt text`,altTextPlaceholder:`Describe this image…`},imageEditor:{title:`Image Editor`,save:`Save`,undo:`Undo`,redo:`Redo`,zoomOut:`Zoom Out`,zoomIn:`Zoom In`,crop:`Crop`,flipHorizontal:`Flip horizontal`,flipVertical:`Flip vertical`,rotate:`Rotate 90°`,freeDrawing:`Free drawing`,arrow:`Arrow`,text:`Text`,rectangle:`Rectangle`,circle:`Circle`,triangle:`Triangle`},prompt:{noProviders:`No AI providers are registered.`,aiNotConfiguredEdit:`AI is not configured. You can still edit and save this prompt.`,aiNotConfiguredRun:`AI is not configured. Prompt execution is unavailable.`,aiNotConfiguredShort:`AI not configured`,toggleOnTitle:`Prompt ON. In PromptRun, this textarea is treated as the prompt template and can be executed against the current record. Turn OFF to skip the prompt system and use the plain fallback text instead.`,toggleOffTitle:`Prompt OFF. In PromptRun, the prompt system is skipped and the plain fallback text is used directly. Turn ON to use this textarea as the prompt template.`,closeEditor:`Close prompt editor`,editSettings:`Edit prompt settings`,attachFiles:`Attach files`,dropFilesHere:`Drop files to attach`,modelPricing:`Input / output, USD per 1M tokens`,modelPriceNotFound:`Price not found`,attachmentsNotSupported:`The selected AI provider does not support image or document attachments.`,run:`Run prompt`,runFailed:`Prompt execution failed.`,noMatchingCommands:`No matching commands`,tokenUsage:`Token usage`,tokenInput:`Input: {count} tok`,tokenOutput:`Output: {count} tok`,tokenContext:`Context: {percent}%`,tokenCost:"Cost: ~${amount}",tokenTime:`Time: {seconds}s`,tokenUsageEmpty:`Run the prompt to see token usage.`,hidePreview:`Hide preview`,showPreview:`Show resolved preview`,noProvider:`No AI provider is available for this prompt.`,noResponse:`The AI provider returned no response.`,promptLabel:`Prompt: `,defaultOption:`Default`,role:`Role`,language:`Language`,voice:`Voice`,style:`Style`,temperature:`Temperature`,stop:`Stop`,stopping:`Stopping…`},layout:{maxElements:`You already have 12 items in the row: remove one before adding another.`,noSpace:`No space available: cannot resize items enough to insert this field.`,dragToMove:`Drag to move`,remove:`Remove`,dragToResize:`Drag to resize`,dragHere:`Drag an element here`},sideNav:{expandGroup:`Expand`,collapseGroup:`Collapse`,expandSidebar:`Expand sidebar`,collapseSidebar:`Collapse sidebar`},autocomplete:{noResults:`No results`,create:`Create «{value}»`,createPlaceholder:`Type or press Enter to create...`,remove:`Remove`},addressAutocomplete:{placeholder:`Search an address...`,noResults:`No matching address`,searching:`Searching...`,notConfigured:`Address search is not configured (missing Google Maps API key).`,loadError:`Could not load address search.`},errorBoundary:{title:`This page ran into a problem`,description:`An unexpected error occurred while rendering this content.`,technicalDetails:`Technical details`,debugInformation:`Debug information`,context:`Context`,time:`Time`,agent:`Agent`,componentTree:`Component tree`,copyDebug:`Copy debug info`,copied:`Copied!`,sendReport:`Send report`,sending:`Sending...`,reportSent:`Report sent ✓`,reportFailed:`Failed - retry`,tryAgain:`Try again`,goHome:`Go to home`},themeSwitcher:{title:`Customize theme`,subtitle:`Live theme tokens and mode controls with no reload.`,colorMode:`Color mode`,light:`Light`,dark:`Dark`,primaryColor:`Primary color`,borderRadius:`Border radius`,sharp:`Sharp`,rounded:`Rounded`,font:`Font`,statusColors:`Status colors`,theme:`Theme`,themeDescription:`Theme available in the current registry.`,iconLibrary:`Icon library`,weight:`Weight`,blue:`Blue`,violet:`Violet`,green:`Green`,rose:`Rose`,orange:`Orange`,slate:`Slate`,success:`Success`,warning:`Warning`,info:`Info`,danger:`Danger`,lucideDescription:`Clean outline icon set`,phosphorDescription:`Flexible icon weights and styles`,weightThin:`Thin`,weightLight:`Light`,weightRegular:`Regular`,weightBold:`Bold`,weightFill:`Fill`},imageField:{openOriginal:`Open original`,crop:`Crop`,cropTitle:`Crop — {name}`,cropImage:`Crop image`,editImage:`Edit image`,generatingVariants:`Generating variants…`,responsiveVariants:`Responsive variants`,variantsGenerated:`({count} generated)`,imageUrl:`Image URL`,imageUrlHint:`(path or https://…)`,altText:`Alt text`,altTextHint:`(accessibility & SEO)`,altPlaceholder:`E.g. Product hero shot`,linkUrl:`Link URL`,optionalHint:`(optional)`,newTab:`New tab`,sameTab:`Same tab`,insertImage:`Insert image`,insertImages:`Insert images`,include:`Include`,insert:`Insert`,insertCount:`Insert ({count})`},richText:{bold:`Bold`,italic:`Italic`,underline:`Underline`,strike:`Strikethrough`,heading1:`Heading 1`,heading2:`Heading 2`,heading3:`Heading 3`,bulletList:`Bullet List`,orderedList:`Ordered List`,blockquote:`Blockquote`,inlineCode:`Inline Code`,codeBlock:`Code Block`,link:`Link`,undo:`Undo`,redo:`Redo`,clearFormat:`Clear Format`,paragraphStyle:`Paragraph style`,normal:`Normal`,insertTable:`Insert Table`,insertTableSize:`Insert {rows} by {cols} table`,addRowAbove:`Add row above`,addRowBelow:`Add row below`,addColumnLeft:`Add column left`,addColumnRight:`Add column right`,deleteRow:`Delete row`,deleteColumn:`Delete column`,deleteTable:`Delete table`,uploadImage:`Upload Image`,uploadDocument:`Upload Document`,sourceCode:`Source Code`,source:`{name} source`,words:`{count} words`,chars:`{count} chars`,editLink:`Edit link`,removeLink:`Remove link`,altPlaceholder:`E.g. Team photo at company retreat`},tabDynamic:{addTab:`Add tab`},breadcrumbs:{label:`Breadcrumb`},chat:{reasoning:`Reasoning`,reasoningStreaming:`Reasoning…`,reasoningFor:`Reasoned for {duration}`,durationSeconds:`{seconds} s`,durationMinutes:`{minutes} min {seconds} s`,questions:`Questions`,questionTab:`Question {index}`,review:`Review`,reviewHint:`Check your answers, then submit them.`,other:`Other`,otherPlaceholder:`Type your answer`,recommended:`Recommended`,chooseOne:`Choose one`,chooseMany:`Choose one or more`,keyboardHint:`Keys {first}–{last} choose, Enter continues`,textKeyboardHint:`Enter adds a line, Ctrl/⌘+Enter continues`,next:`Next`,back:`Back`,submit:`Submit`,noAnswer:`No answer`,answered:`Answered`,activityCount:`{count} steps`,activityFailed:`{count} failed`,activityCommands:`Commands`,activityHide:`Hide`,activityLog:`Whole log`,activitySteps:`Steps view`,activityFiles:`{count} files changed`,activityChanges:`See the changes`,activityEmpty:`Nothing yet`},charts:{noData:`No data`,total:`Total`,less:`Less`,more:`More`,dataTable:`Chart data`,sequence:`Sequence`}};function at(e){return e}function ot(e){return e}function J(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>String(t[n]??`{${n}}`))}function st(e,t){let n=e=>typeof e==`object`&&!!e&&!Array.isArray(e),r=(e,t)=>{if(!n(e)||!n(t))return t??e;let i={...e};for(let e of Object.keys(t))i[e]=e in i?r(i[e],t[e]):t[e];return i};return r(e,t)}var ct=`llmnative_locale`,lt=31536e3;function ut(){if(typeof document>`u`)return null;let e=document.cookie.match(/(?:^|;\s*)llmnative_locale=([^;]+)/);return e?decodeURIComponent(e[1]):null}function dt(e){typeof document<`u`&&(document.cookie=`${ct}=${encodeURIComponent(e)}; max-age=${lt}; path=/; SameSite=Lax`)}var ft=(0,n.createContext)(null),pt=({children:e,config:t})=>{let[r,i]=(0,n.useState)({}),a=(0,n.useMemo)(()=>{let e=[...Object.keys(t?.translations??{}),...Object.keys(r)];return Array.from(new Set([`en`,...e.filter(e=>e!==`en`)]))},[t?.translations,r]),[o,s]=(0,n.useState)(()=>{let e=ut();return e&&a.includes(e)?e:t?.locale??`en`}),c=(0,n.useMemo)(()=>{let e=t?.translations?.[o],n=r[o],i=it;return e&&(i=st(i,e)),n&&(i=st(i,n)),i},[o,t?.translations,r]),l=(0,n.useCallback)(e=>{dt(e),s(e)},[]),u=(0,n.useCallback)((e,t)=>{i(n=>{let r=n[e],i=r?st(r,t):t;return{...n,[e]:i}})},[]),d=(0,n.useMemo)(()=>({dict:c,locale:o,availableLocales:a,setLocale:l,registerTranslations:u}),[c,o,a,l,u]);return n.default.createElement(ft.Provider,{value:d},e)};function Y(e){let t=(0,n.useContext)(ft);if(!t)throw Error(`useI18n must be used inside <App> or <I18nProvider>.`);return e===void 0?t:e.split(`.`).reduce((e,t)=>e?.[t],t.dict)}function mt(){return(0,n.useContext)(ft)?.dict??it}function ht(){let e=(0,n.useContext)(ft);return e?{dict:e.dict,locale:e.locale}:{dict:it,locale:`en`}}function X(...e){return(0,a.twMerge)((0,i.clsx)(e))}var gt=`mx-auto w-full px-3 sm:max-w-[540px] md:max-w-[720px] lg:max-w-[960px] xl:max-w-[1140px] 2xl:max-w-[1320px]`,_t=`rf-row`,vt=`rf-col`,yt=`rf-col-fill`,bt=`rf-col-12`,xt=(e,t)=>e===`xs`?`rf-col-${t}`:`rf-col-${e}-${t}`,St=e=>e===`xs`?`rf-col-auto`:`rf-col-${e}-auto`,Ct=e=>({auto:St(e),1:xt(e,1),2:xt(e,2),3:xt(e,3),4:xt(e,4),5:xt(e,5),6:xt(e,6),7:xt(e,7),8:xt(e,8),9:xt(e,9),10:xt(e,10),11:xt(e,11),12:xt(e,12)}),wt={xs:Ct(`xs`),sm:Ct(`sm`),md:Ct(`md`),lg:Ct(`lg`),xl:Ct(`xl`),xxl:Ct(`xxl`)},Tt=(e,t)=>{let n=String(t);return wt[e][n]},Z=({children:e=void 0,className:t=void 0,style:r=void 0,onClick:i=void 0})=>t?n.default.createElement(`div`,{className:t,style:r,onClick:i},e):n.default.createElement(n.default.Fragment,null,e),Et=({children:e=void 0,className:t=void 0,style:r=void 0})=>n.default.createElement(`div`,{className:X(gt,t),style:r},e),Dt=({children:e=void 0,className:t=void 0,style:r=void 0})=>n.default.createElement(`div`,{className:X(_t,t),style:r},e),Ot=({children:e=void 0,className:t=void 0,style:r=void 0,defaultSize:i=void 0,xxl:a=void 0,xl:o=void 0,lg:s=void 0,md:c=void 0,sm:l=void 0,xs:u=void 0})=>{let d=u??i,f=[vt,d===void 0&&l===void 0&&c===void 0&&s===void 0&&o===void 0&&a===void 0?yt:d===void 0?bt:Tt(`xs`,d),l===void 0?void 0:Tt(`sm`,l),c===void 0?void 0:Tt(`md`,c),s===void 0?void 0:Tt(`lg`,s),o===void 0?void 0:Tt(`xl`,o),a===void 0?void 0:Tt(`xxl`,a),t];return n.default.createElement(`div`,{className:X(f),style:r},e)};function kt(e){return typeof e==`object`&&!!e&&!n.default.isValidElement(e)&&`content`in e}function At(e,t=`info`,n){if(e!=null&&e!==!1)return kt(e)?{...e,variant:e.variant||t,className:X(e.className,n)}:{content:e,variant:t,className:n}}var jt=({badge:e,content:t=void 0,variant:r=void 0,defaultType:i=`info`,className:a=void 0,descriptorOnly:o=!1,children:s=void 0})=>{let c=t===void 0?e:{content:t,variant:r,className:a};if(o&&t===void 0&&!kt(e))return e??null;let l=At(c,r||i,a);return l?s===void 0?n.default.createElement(Mt,{variant:l.variant,className:l.className},l.content):n.default.createElement(Mt,{variant:l.variant,after:l.content,className:l.className},s):s??null},Mt=({children:e,variant:t=`info`,before:r=void 0,after:i=void 0,wrapperClassName:a=void 0,className:o=void 0})=>{let s=q(`badge`);if(n.default.isValidElement(e)){let c=X(`badge badge-overlay badge-`+t,`absolute top-0 z-10`,o||s.Badge.className);return n.default.createElement(`span`,{className:X(`relative inline-flex`,a)},e,r!==void 0&&n.default.createElement(`span`,{className:X(c,`left-0 -translate-x-1/2 -translate-y-1/2`)},r),i!==void 0&&n.default.createElement(`span`,{className:X(c,`right-0 translate-x-1/2 -translate-y-1/2`)},i),r===void 0&&i===void 0&&n.default.createElement(`span`,{className:X(c,`right-0 translate-x-1/2 -translate-y-1/2 !p-0 !min-w-0 w-2.5 h-2.5 rounded-full`)}))}return n.default.createElement(Z,{className:a},r,n.default.createElement(`span`,{className:X(`badge badge-`+t,o||s.Badge.className)},e),i)},Nt={from:{},to:{},transition:{duration:0,easing:`linear`,delay:0,properties:[`opacity`,`transform`,`box-shadow`]},reducedMotion:`always`},Pt={from:{},to:{},transition:{duration:160,easing:`cubic-bezier(0.2, 0, 0, 1)`,delay:0,properties:[`opacity`,`transform`,`box-shadow`]},reducedMotion:`respect-user`},Ft=()=>typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,It=(e,t,n=`fade`)=>{let r=e===void 0?n:e;return r===!1?Nt:typeof r==`string`?t[r]??t.none??Nt:r},Lt=e=>e.properties.map(t=>`${t} ${e.duration}ms ${e.easing} ${e.delay}ms`).join(`, `),Rt=(e,t={},n)=>{let r=It(n,t,`fade`),i=It(e,t,n),a={...Pt.transition,...r.transition,...i.transition},o=i.reducedMotion??r.reducedMotion??Pt.reducedMotion,s=o===`always`||o===`respect-user`&&Ft(),c={duration:s?0:a.duration,easing:s?`linear`:a.easing,delay:s?0:a.delay,properties:a.properties};return{from:s?{}:{...r.from??{},...i.from??{}},to:s?{}:{...r.to??{},...i.to??{}},transition:c,reducedMotion:o,transitionValue:Lt(c)}},zt=(e,t)=>{let r=nt();return n.default.useMemo(()=>Rt(e,r,t),[e,r,t])},Bt=(e,t,r,i)=>{let a=zt(t,r);return n.default.useMemo(()=>({...i,...e?a.to:a.from,transition:[i?.transition,a.transitionValue].filter(Boolean).join(`, `)}),[e,i,a])},Vt=(e=!1,t,r,i=`press`)=>{let a=zt(r,i),[o,s]=n.default.useState(!1);return{style:n.default.useMemo(()=>({...t,...o&&!e?a.to:a.from,transition:[t?.transition,a.transitionValue].filter(Boolean).join(`, `)}),[t,e,a,o]),pressHandlers:{onMouseDown:()=>!e&&s(!0),onMouseUp:()=>s(!1),onMouseLeave:()=>s(!1),onBlur:()=>s(!1)}}},Ht=(e,t,r=`fadeUp`)=>{let[i,a]=n.default.useState(!1);return n.default.useEffect(()=>{a(!1);let e=window.requestAnimationFrame(()=>a(!0));return()=>window.cancelAnimationFrame(e)},[t,r]),Bt(i,t,r,e)},Ut={add:`Plus`,"arrow-arc-left":`Undo2`,"arrow-arc-right":`Redo2`,"arrow-line-down":`FlipVertical`,"arrow-line-right":`FlipHorizontal`,"camera-rotate":`RotateCw`,"caret-down":`ChevronDown`,"caret-right":`ChevronRight`,close:`X`,dashboard:`LayoutDashboard`,edit:`Pencil`,file:`FileText`,"floppy-disk":`Save`,fullscreen:`Maximize`,"fullscreen-exit":`Minimize`,github:`GitBranch`,"house-door":`Home`,"link-break":`Unlink`,"magnifying-glass-minus":`ZoomOut`,"magnifying-glass-plus":`ZoomIn`,rectangle:`Square`,"text-t":`Type`,trash:`Trash2`,"check-circle":`CircleCheck`,"warning-circle":`CircleAlert`,"mail-open":`MailOpen`,"shield-warning":`ShieldAlert`,warning:`TriangleAlert`};function Wt(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}var Gt=class{id=`lucide`;resolve(e){let t=Ut[e]??Wt(e);return o[t]??null}},Kt={add:`Plus`,"arrow-arc-left":`ArrowArcLeft`,"arrow-arc-right":`ArrowArcRight`,"arrow-line-down":`ArrowLineDown`,"arrow-line-right":`ArrowLineRight`,"camera-rotate":`CameraRotate`,"caret-down":`CaretDown`,"caret-right":`CaretRight`,close:`X`,dashboard:`SquaresFour`,edit:`PencilSimple`,"external-link":`ArrowSquareOut`,file:`FileText`,"floppy-disk":`FloppyDisk`,fullscreen:`CornersOut`,"fullscreen-exit":`CornersIn`,github:`GithubLogo`,"house-door":`House`,"link-break":`LinkBreak`,"magnifying-glass-minus":`MagnifyingGlassMinus`,"magnifying-glass-plus":`MagnifyingGlassPlus`,menu:`List`,rectangle:`Rectangle`,search:`MagnifyingGlass`,settings:`Gear`,"text-t":`TextT`,trash:`Trash`,warning:`Warning`,layers:`Stack`,mail:`Envelope`,"mail-open":`EnvelopeOpen`,"eye-off":`EyeSlash`};function qt(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}var Jt=class{weight;id=`phosphor`;_cache=new Map;constructor(e=`regular`){this.weight=e}resolve(e){let t=this._cache.get(e);if(t)return t;let r=Kt[e]??qt(e),i=s[r];if(!i)return null;let a=this.weight,o=e=>n.default.createElement(i,{weight:a,...e});return this._cache.set(e,o),o}},Yt=n.default.createContext(null),Xt=n.default.createContext(null),Zt={lucide:new Gt,phosphor:new Jt},Qt=`lucide`;function $t(e){return!!e&&typeof e==`object`&&typeof e.id==`string`&&typeof e.resolve==`function`}function en(e){if(!e)return{defaultId:Qt,providers:{...Zt},aliases:{}};if(typeof e==`string`)return{defaultId:e,providers:{...Zt},aliases:{}};if($t(e))return{defaultId:e.id,providers:{...Zt,[e.id]:e},aliases:{}};if(`default`in e&&`providers`in e){let t=e;return{defaultId:t.default,providers:{...Zt,...t.providers},aliases:t.aliases??{}}}return{defaultId:e.provider.id,providers:{...Zt,[e.provider.id]:e.provider},aliases:e.aliases??{}}}function tn(e,t){return Object.keys(t).length===0?e:{id:e.id,resolve(n){return e.resolve(t[n]??n)}}}function nn({provider:e,config:t,children:r}){let i=n.default.useMemo(()=>en(t??e),[t,e]),[a,o]=n.default.useState(i.providers),[s,c]=n.default.useState(i.defaultId);n.default.useEffect(()=>{o(i.providers),c(i.defaultId)},[i]);let l=a[s]??a[Qt],u=n.default.useMemo(()=>l?tn(l,i.aliases):null,[l,i.aliases]),d=n.default.useMemo(()=>({providerId:l?.id??Qt,providers:a,aliases:i.aliases,setProvider(e){if(a[e]){c(e);return}process.env.NODE_ENV!==`production`&&console.warn(`[IconProvider] Unknown provider "${e}", falling back to "${Qt}".`),c(Qt)},registerProvider(e,t){o(n=>({...n,[e]:t}))},resolve(e){return u?.resolve(e)??null}}),[l,a,i.aliases,u]);return n.default.createElement(Xt.Provider,{value:d},n.default.createElement(Yt.Provider,{value:u},r))}function rn(){return n.default.useContext(Yt)}function an(){let e=n.default.useContext(Xt);if(!e)throw Error(`useIconController must be used inside <App> or <IconProvider>.`);return e}var on=new Gt,Q=({name:e,size:t=16,className:r,style:i,provider:a,label:o,weight:s})=>{let c=rn(),l=a??c??on;if(!l||typeof e!=`string`||!e.trim())return null;let u=l.resolve(e);return u?n.default.createElement(u,{size:t,className:r,style:i,weight:s,"aria-label":o,"aria-hidden":!o||void 0}):null},sn=`btn`,cn=`btn-primary`,ln=`btn-secondary`,un=`btn-danger`,dn=`btn-success`,fn=`btn-warning`,pn=`btn-info`,mn=`btn-light`,hn=`btn-dark`,gn=`btn-outline-primary`,_n=`btn-outline-secondary`,vn=`btn-outline-danger`,yn=`btn-outline-success`,bn=`btn-link`,xn=e=>{switch(e){case`primary`:return cn;case`secondary`:return ln;case`danger`:return un;case`success`:return dn;case`warning`:return fn;case`info`:return pn;case`light`:return mn;case`dark`:return hn;case`outline-primary`:return gn;case`outline-secondary`:return _n;case`outline-danger`:return vn;case`outline-success`:return yn;case`link`:return bn;default:return}},Sn=({onClick:e,icon:t=void 0,label:r=void 0,badge:i=void 0,title:a=void 0,ariaLabel:o=void 0,disabled:s=!1,loading:c=!1,before:l=void 0,after:u=void 0,wrapperClassName:d=void 0,className:f=void 0,iconClassName:p=void 0,style:m=void 0,loadingLabel:h=void 0,variant:g=void 0,motion:_=void 0}={})=>{let[v,y]=(0,n.useState)(c),[b,x]=(0,n.useState)(s),[S,C]=(0,n.useState)(``),w=e=>{C(e.message??``)},T=q(`button`),E=Vt(b||v,m,_??T.LoadingButton.motion?.press??`press`),D=h??(S||(typeof r==`string`?`${r}...`:r));(0,n.useEffect)(()=>{y(c),x(s)},[c,s]);let O=n.default.createElement(`button`,{type:`button`,title:a,"aria-label":o||t&&!r&&a||void 0,className:X(`btn`,g?xn(g):f||T.LoadingButton.className,g?f:void 0,v&&`whitespace-nowrap`),style:E.style,disabled:b||v,...E.pressHandlers,onClick:async t=>{t.stopPropagation(),x(!0),y(!0),await e?.(t,w),y(!1),x(!1)}},v&&n.default.createElement(n.default.Fragment,null,n.default.createElement(`span`,{className:X(D&&`mr-1`,`inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`)}),D&&n.default.createElement(`span`,null,D)),t&&!v&&n.default.createElement(Q,{name:t,className:X(r&&`mr-1`,p)}),!v&&r);return n.default.createElement(Z,{className:d},l,n.default.createElement(jt,{badge:v?void 0:i},O),u)},Cn=({onClick:e,icon:t=void 0,label:r=void 0,badge:i=void 0,title:a=void 0,ariaLabel:o=void 0,disabled:s=!1,before:c=void 0,after:l=void 0,wrapperClassName:u=void 0,className:d=void 0,iconClassName:f=void 0,style:p=void 0,variant:m=void 0,motion:h=void 0}={})=>{let g=q(`button`),_=Vt(s,p,h??g.ActionButton.motion?.press??`press`),v=n.default.createElement(`button`,{type:`button`,title:a,"aria-label":o||t&&!r&&a||void 0,className:X(`btn`,m?xn(m):d||g.ActionButton.className,m?d:void 0),style:_.style,disabled:s,..._.pressHandlers,onClick:t=>{t.preventDefault(),t.stopPropagation(),e?.(t)}},t&&n.default.createElement(Q,{name:t,className:X(r&&`mr-1`,f)}),r);return n.default.createElement(Z,{className:u},c,n.default.createElement(`span`,{title:s?a:void 0,style:s?{cursor:`not-allowed`}:void 0},n.default.createElement(jt,{badge:i},v)),l)},wn=({label:e=void 0,before:t=void 0,after:i=void 0,wrapperClassName:a=void 0,className:o=void 0})=>{let s=(0,r.useNavigate)(),c=q(`button`),l=Y(`common`);return n.default.createElement(Z,{className:a},t,n.default.createElement(`a`,{href:`#`,className:X(`btn`,o||c.LinkButton.className),onClick:e=>{e.preventDefault(),s(-1)}},e??l.back),i)},Tn=({label:e,href:t,before:r=void 0,after:i=void 0,wrapperClassName:a=void 0,className:o=void 0})=>(q(`button`),n.default.createElement(Z,{className:a},r,n.default.createElement(`h1`,{className:X(`m-0 text-2xl font-bold`,o)},e+` `,n.default.createElement(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`},n.default.createElement(Q,{name:`external-link`}))),i)),En=({title:e,href:t,imageSrc:r,width:i,before:a=void 0,after:o=void 0,wrapperClassName:s=void 0,className:c=void 0})=>n.default.createElement(Z,{className:s},a,n.default.createElement(`a`,{href:t,className:X(`mr-1`,c),target:`_blank`,title:e,rel:`noopener noreferrer`},n.default.createElement(`img`,{src:r,width:i||`100`,height:`30`,alt:e})),o),Dn=`globalVars`,On=(0,n.createContext)(void 0),kn=()=>JSON.parse(localStorage.getItem(Dn)||`{}`),An=({children:e})=>{let[t,r]=(0,n.useState)(()=>kn());(0,n.useEffect)(()=>{let e=e=>{e.storageArea===localStorage&&e.key===Dn&&r(kn())};return window.addEventListener(`storage`,e),()=>{window.removeEventListener(`storage`,e)}},[]);let i=e=>{localStorage.setItem(Dn,JSON.stringify(e)),r(e)};return n.default.createElement(On.Provider,{value:{globalVars:t,setGlobalVars:(e,n)=>{let r={...t,[n]:e};i(r)},removeGlobalVars:e=>{let n={...t};delete n[e],i(n)}}},e)},jn=e=>{let t=(0,n.useContext)(On);if(!t)throw Error(`useGlobalVars must be used within a GlobalProvider`);let{globalVars:r,setGlobalVars:i,removeGlobalVars:a}=t;return[r[e]??null,t=>i(t,e),()=>a(e)]},Mn=(e=null)=>{let t=kn();return e?t[e]||{}:t},Nn=(e,t)=>{let n={...kn(),[t]:e};localStorage.setItem(Dn,JSON.stringify(n))},Pn=e=>{let t={...kn()};delete t[e],localStorage.setItem(Dn,JSON.stringify(t))},Fn=(0,n.createContext)(null),In=({registry:e,defaultKey:t,children:r})=>{let i=(0,n.useMemo)(()=>({registry:e,defaultKey:t}),[e,t]);return n.default.createElement(Fn.Provider,{value:i},r)},Ln=e=>{let t=(0,n.useContext)(Fn);if(!t)throw Error(`useAuthProvider must be used inside <App providers={...} />.`);let r=e??t.defaultKey,i=t.registry[r];if(!i)throw Error(`AuthProvider '${r}' is not registered. Available: ${Object.keys(t.registry).join(`, `)}`);return i},Rn={basename:e=>e.split(`/`).filter(Boolean).pop()||``,extname:e=>{let t=e.lastIndexOf(`.`);return t>0?e.slice(t):``},dirname:e=>{let t=e.split(`/`).filter(Boolean);return t.pop(),`/`+t.join(`/`)},filename:e=>{let t=e.split(`/`).pop()||``,n=t.includes(`.`)?t.slice(t.lastIndexOf(`.`)):``;return t.replace(n,``)},parentBasename:e=>{let t=e.split(`/`).filter(Boolean);return t.pop(),t.pop()||``},parentDirname:e=>{let t=e.split(`/`).filter(Boolean);return t.pop(),t.pop(),`/`+t.join(`/`)},parentFilename:e=>{let t=e.split(`/`).filter(Boolean);t.pop();let n=t.pop()||``,r=n.includes(`.`)?n.slice(n.lastIndexOf(`.`)):``;return n.replace(r,``)},append:(e,t)=>{let n=e.split(`/`).slice(0,-1).join(`/`),r=e.split(`/`).pop()||``,i=r.includes(`.`)?r.slice(r.lastIndexOf(`.`)):``,a=r.replace(i,``);return(n?n+`/`:``)+a+t+i},prepend:(e,t)=>{let n=e.split(`/`).slice(0,-1).join(`/`),r=e.split(`/`).pop()||``,i=r.includes(`.`)?r.slice(r.lastIndexOf(`.`)):``,a=r.replace(i,``);return(n?n+`/`:``)+t+a+i},changeFilename:(e,{prefix:t=``,suffix:n=``,ext:r=null}={})=>{let i=e.split(`/`).slice(0,-1).join(`/`),a=e.split(`/`).pop()||``,o=a.includes(`.`)?a.slice(a.lastIndexOf(`.`)):``,s=a.replace(o,``),c=r===null?o:r?r.startsWith(`.`)?r:`.`+r:``;return(i?i+`/`:``)+t+s+n+c},join:(...e)=>e.join(`/`).replace(/\/+/g,`/`),parse:e=>{let t=Rn.extname(e),n=Rn.basename(e),r=Rn.dirname(e);return{root:e.startsWith(`/`)?`/`:``,dir:r,base:n,ext:t,name:n.replace(t,``)}}},zn=({src:e,width:t=void 0,height:r=void 0,title:i=void 0,alt:a=void 0,fit:o=`cover`,badge:s=void 0,feedback:c=void 0,before:l=void 0,after:u=void 0,wrapperClassName:d=void 0,className:f=void 0})=>{let p=q(`image`),[m,h]=(0,n.useState)(et),g=p.ImageAvatar?.motion?.enter??!1,_=p.ImageAvatar?.motion?.hover??!1,v=_!==!1,y=Ht(void 0,g,!1),[b,x]=(0,n.useState)(!1),S=Bt(b,_,!1),C=e&&e.split(`?`)[0],w=`avatar::${C}`,T=`avatar-fetch-failed::${C}`,E=a||i||Rn.filename(e||`data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='50' fill='%23eef2f7'/%3E%3Ccircle cx='50' cy='38' r='16' fill='%2364758b'/%3E%3Cpath d='M22 84c3.8-20 19-31 28-31s24.2 11 28 31c.5 2.8-1.7 5-4.5 5h-47c-2.8 0-5-2.2-4.5-5z' fill='%2364758b'/%3E%3C/svg%3E`);(0,n.useEffect)(()=>{if(!e||e.startsWith(`data:`)){h(e||`data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='50' fill='%23eef2f7'/%3E%3Ccircle cx='50' cy='38' r='16' fill='%2364758b'/%3E%3Cpath d='M22 84c3.8-20 19-31 28-31s24.2 11 28 31c.5 2.8-1.7 5-4.5 5h-47c-2.8 0-5-2.2-4.5-5z' fill='%2364758b'/%3E%3C/svg%3E`);return}let t=localStorage.getItem(w);if(t){h(t);return}h(e);let n=Number(localStorage.getItem(T)||0);n&&Date.now()-n<864e5||fetch(e).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.blob()}).then(e=>{let t=new FileReader;t.onloadend=()=>{let e=t.result;localStorage.setItem(w,e),localStorage.removeItem(T),h(e)},t.readAsDataURL(e)}).catch(e=>{console.warn(`ImageAvatar:`,e.message),localStorage.setItem(T,String(Date.now()))})},[e,w,T]);let D=t??r??void 0,O={...t&&r?{width:t,height:r,objectFit:o}:D?{width:D,height:D,objectFit:o}:{objectFit:o},...v?S:{}};return n.default.createElement(Z,{className:X(`flex items-center gap-3`,d||p.ImageAvatar?.wrapperClassName)},l&&n.default.createElement(`div`,{className:`shrink-0 self-center`},l),n.default.createElement(`div`,{className:X(`relative shrink-0`,v&&`overflow-hidden`),style:y,onMouseEnter:v?()=>x(!0):void 0,onMouseLeave:v?()=>x(!1):void 0},n.default.createElement(`img`,{src:m,alt:E,width:t??D,height:r??D,className:X(f||p.ImageAvatar?.className),title:i,style:O,onError:()=>h(et)}),s&&n.default.createElement(`span`,{className:X(`badge badge-overlay absolute top-0 right-0 translate-x-1/4 -translate-y-1/4 z-10`,`badge-`+(s.variant||`success`),!s.content&&`!p-0 !min-w-0 w-3 h-3 rounded-full`,s.className)},s.content),c&&n.default.createElement(`div`,{className:`mt-1 text-xs text-center`},c)),u&&n.default.createElement(`div`,{className:`min-w-0 self-center`},u))},Bn=(e,t,n=``)=>t.filter(t=>{let n=e?.[t];return n==null||n===``}).map(e=>`${n}${e}`),Vn=(e,t)=>({configured:t.length===0,missingKeys:t,reason:t.length?`${e} is not configured. Missing: ${t.join(`, `)}.`:void 0}),Hn=(e,t=`Provider`)=>{if(!e)return{configured:!1,reason:`${t} is not registered.`};if(e.getConfigurationState)return e.getConfigurationState();if(e.isConfigured){let n=e.isConfigured();return{configured:n,reason:n?void 0:`${t} is not configured.`}}return{configured:!0}},Un=`/__/authorize`,Wn=`auths`;function Gn(){let e=new Uint32Array(28);return window.crypto.getRandomValues(e),Array.from(e,e=>`0${e.toString(16)}`.substr(-2)).join(``)}async function Kn(e){let t=new TextEncoder().encode(e),n=await window.crypto.subtle.digest(`SHA-256`,t);return btoa(String.fromCharCode(...new Uint8Array(n))).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}var qn=(e,t,n)=>{let r=window.screen.width/2-n/2,i=`width=${n},height=${n},top=${window.screen.height/2-n/2},left=${r}`;return window.open(e,t,i)};function Jn({authServer:e,clientID:t,scopes:n=void 0,refreshParamName:r=`access_type`}){let i=Gn();localStorage.setItem(`authChallenge`,JSON.stringify({authServer:e,clientID:t,codeVerifier:i})),Kn(i).then(i=>{qn(`https://${e}/authorize?${new URLSearchParams({response_type:`code`,client_id:t,redirect_uri:`${window.location.origin}${Un}`,scope:n?n.join(` `):``,code_challenge:i,code_challenge_method:`S256`,[r]:`offline`}).toString()}`,`auth`,600)})}var Yn=(e,t,n)=>{Nn({[t]:{...n,server:e,client_id:t,iat:Math.floor(Date.now()/1e3)}},Wn)},Xn=()=>{let e=(0,r.useLocation)().search,t=Y(`common`);return(0,n.useEffect)(()=>{let t=new URLSearchParams(e).get(`code`),n=((e,t)=>{try{return JSON.parse(localStorage.getItem(e)||``)||t}catch{return t}})(`authChallenge`);if(!t||!n)return;let{authServer:r,clientID:i,codeVerifier:a}=n;Se(`https://${r}/token`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:{grant_type:`authorization_code`,client_id:i,code:t,redirect_uri:`${window.location.origin}${Un}`,code_verifier:a}}).then(e=>{Yn(r,i,e),localStorage.removeItem(`authChallenge`),window.close()}).catch(e=>console.error(`Error:`,e))},[e]),n.default.createElement(`div`,null,t.loading)},Zn=(e,t,n)=>Se(`https://${e}/token`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:{grant_type:`refresh_token`,client_id:t,refresh_token:n}}).then(n=>(Yn(e,t,n),n.access_token)).catch(e=>(console.error(`Error:`,e),localStorage.removeItem(Wn),null)),Qn=(e,t=!0)=>{let[n]=jn(Wn),r=n?.[e]||{},i=Math.floor(Date.now()/1e3)>=(r?.iat??0)+(r?.expires_in??0);return!!(r&&r?.access_token&&(!i||t&&i&&r.refresh_token&&(Zn(r.server??``,r.client_id??``,r.refresh_token)||1)))},$n=e=>Mn(Wn)?.[e],er=e=>{let t=Mn(Wn)||{};t[e]&&(delete t[e],Nn(t,Wn))},tr=e=>{let t=$n(e),n=Math.floor(Date.now()/1e3)>(t?.iat??0)+(t?.expires_in??0);return!n&&t?.access_token?Promise.resolve(t.access_token):n&&t?.refresh_token?Zn(t.server??``,t.client_id??``,t.refresh_token):Promise.resolve(null)},nr=e=>e===`signOut`||e===`disconnect`,rr=({provider:e,intent:t=`signIn`,aspect:r=`button`,scopes:i=void 0,iconLogout:a=`log-out`,avatarClass:o=void 0,options:s={},label:c=void 0,icon:l=void 0,title:u=void 0,className:d=void 0,disabled:f=!1,...p})=>{let m=Ln(e),h=q(`auth`),g=Y(`auth`),_=e||`AuthProvider`,v=n.default.useCallback(()=>Hn(m,_),[m,_]),y=n.default.useMemo(()=>v(),[v]),b=y.configured,[x,S]=n.default.useState(()=>b?m.getUser():null),[C,w]=n.default.useState(()=>b&&(m.isAuthenticated?.()??!!m.getUser())),[T,E]=n.default.useState(!1),D=n.default.useRef(null),O=y.reason||J(g.notConfigured,{provider:_});n.default.useEffect(()=>v().configured?(S(m.getUser()),w(m.isAuthenticated?.()??!!m.getUser()),m.onAuthChange(e=>{S(e),w(m.isAuthenticated?.()??!!e)})):(S(null),w(!1),E(!1),()=>{}),[m,v]),n.default.useEffect(()=>{if(!T)return()=>{};let e=e=>{D.current?.contains(e.target)||E(!1)},t=e=>{e.key===`Escape`&&E(!1)};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[T]);let k=()=>{if(!v().configured){S(null),w(!1);return}let e=m.getUser();S(e),w(m.isAuthenticated?.()??!!e)},A=async()=>{if(v().configured){if(nr(t)){await m.signOut(),k();return}if(!m.signIn)throw Error(g.notImplemented);await m.signIn({scopes:i,intent:t}),k()}},j={...p,...s,label:s.label??c??(C?g.connected:t===`signIn`?g.signIn:g.connect),icon:s.icon??l??(C?`link`:`link-break`),title:b?s.title??u:O,className:s.className??d,disabled:!b||(s.disabled??f),style:b?s.style??p.style:{...p.style||{},...s.style||{},opacity:.55,cursor:`not-allowed`}};if(r===`avatar`){let e=x?.displayName??x?.email??(C?g.authenticated:g.signIn);return n.default.createElement(`div`,{ref:D,className:d||h.SignIn.className,style:{position:`relative`,display:`inline-flex`},title:b?void 0:O},n.default.createElement(`button`,{type:`button`,className:`cursor-pointer border-0 bg-transparent p-0`,title:b?e:O,"aria-label":e,"aria-expanded":T,"aria-haspopup":`menu`,disabled:!b||f,"aria-disabled":!b||f,style:b?void 0:{opacity:.55,cursor:`not-allowed`},onClick:e=>{e.preventDefault(),e.stopPropagation(),b&&!f&&E(e=>!e)}},n.default.createElement(zn,{src:x?.photoURL??`data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='50' fill='%23eef2f7'/%3E%3Ccircle cx='50' cy='38' r='16' fill='%2364758b'/%3E%3Cpath d='M22 84c3.8-20 19-31 28-31s24.2 11 28 31c.5 2.8-1.7 5-4.5 5h-47c-2.8 0-5-2.2-4.5-5z' fill='%2364758b'/%3E%3C/svg%3E`,title:b?e:O,height:36,className:o||h.SignIn.avatarClass})),T&&n.default.createElement(`div`,{role:`menu`,className:`absolute right-0 top-full z-50 mt-2 min-w-40 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md`},!C&&n.default.createElement(`button`,{type:`button`,role:`menuitem`,className:`flex w-full cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground`,onClick:A},c??g.signIn.toUpperCase()),C&&n.default.createElement(`button`,{type:`button`,role:`menuitem`,className:`flex w-full cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground`,onClick:async()=>{await m.signOut(),k(),E(!1)}},a&&n.default.createElement(Q,{name:a,className:`mr-2`}),g.signOut.toUpperCase())))}return n.default.createElement(Cn,{...j,onClick:A})},ir={neutral:`bg-muted text-foreground`,success:`bg-success/15 text-success`,warning:`bg-warning/20 text-foreground`,danger:`bg-destructive/15 text-destructive`};function ar({title:e,description:t,icon:r,tone:i=`neutral`,brand:a,toolbar:o,below:s,footer:c,focusKey:l,children:u,className:d}){let f=(0,n.useRef)(null),p=l??(typeof e==`string`?e:void 0),m=(0,n.useRef)(!0);return(0,n.useEffect)(()=>{if(m.current){m.current=!1;return}f.current?.focus()},[p]),n.default.createElement(`div`,{className:X(`flex min-h-dvh flex-col bg-background text-foreground`,d)},o&&n.default.createElement(`div`,{className:`flex justify-end gap-2 px-4 pt-4 sm:px-6`},o),n.default.createElement(`main`,{className:`flex flex-1 flex-col items-center justify-center px-4 py-8 sm:py-12`},n.default.createElement(`div`,{className:`w-full max-w-[400px]`},a&&n.default.createElement(`div`,{className:`mb-8 flex justify-center`},a),n.default.createElement(`div`,{className:`sm:rounded-xl sm:border sm:border-border sm:bg-card sm:p-8 sm:text-card-foreground sm:shadow-sm`},n.default.createElement(`div`,{className:`space-y-2 text-center`},r&&n.default.createElement(`div`,{className:X(`mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full`,ir[i])},n.default.createElement(Q,{name:r,size:22})),n.default.createElement(`h1`,{ref:f,tabIndex:-1,className:`text-2xl font-semibold leading-tight tracking-tight outline-none`},e),t&&n.default.createElement(`div`,{className:`text-sm leading-relaxed text-muted-foreground`},t)),u&&n.default.createElement(`div`,{className:`mt-6`},u)),s&&n.default.createElement(`div`,{className:`mt-6`},s))),c&&n.default.createElement(`footer`,{className:`px-4 pb-6 text-center text-xs text-muted-foreground`},c))}function or({bare:e,...t}){return e?n.default.createElement(`div`,{className:X(`w-full`,t.className)},n.default.createElement(`div`,{className:`space-y-2 text-center`},t.icon&&n.default.createElement(`div`,{className:X(`mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full`,ir[t.tone??`neutral`])},n.default.createElement(Q,{name:t.icon,size:22})),n.default.createElement(`h2`,{className:`text-xl font-semibold tracking-tight`},t.title),t.description&&n.default.createElement(`div`,{className:`text-sm text-muted-foreground`},t.description)),t.children&&n.default.createElement(`div`,{className:`mt-6`},t.children),t.below&&n.default.createElement(`div`,{className:`mt-6`},t.below)):n.default.createElement(ar,t)}var sr=(0,n.createContext)(null),cr=({registry:e,defaultKey:t,children:r})=>{let i=(0,n.useMemo)(()=>({registry:e,defaultKey:t}),[e,t]);return n.default.createElement(sr.Provider,{value:i},r)},lr=e=>{let t=(0,n.useContext)(sr);if(!t)throw Error(`useDataProvider must be used inside <App>.`);let r=e??t.defaultKey,i=t.registry[r];if(!i)throw Error(`DataProvider '${r}' is not registered. Available: ${Object.keys(t.registry).join(`, `)}`);return i};function ur({children:e,show:t=!1,icon:r=void 0,title:i=void 0,description:a=void 0,minHeight:o=`200px`,before:s=void 0,after:c=void 0,wrapperClassName:l=void 0,className:u=void 0}){let d=q(`loader`);return r||=d.Loader.icon,i||=d.Loader.title,a||=d.Loader.description,t?n.default.createElement(Z,{className:l||d.Loader.wrapperClassName},n.default.createElement(`div`,{className:`relative `+(u||d.Loader.className),style:{minHeight:o}},n.default.createElement(`div`,{className:`absolute top-0 bottom-0 left-0 right-0 z-10 bg-background/60 backdrop-blur-[2px]`},s,(r||i||a)&&n.default.createElement(`div`,{className:`flex flex-col items-center justify-center gap-2 p-4 text-center`},r&&n.default.createElement(Q,{name:r,size:32,className:`animate-spin text-primary`}),i&&n.default.createElement(`p`,{className:`text-sm font-semibold text-foreground`},i),a&&n.default.createElement(`p`,{className:`text-xs text-muted-foreground`},a)),c),e)):e}var dr=`rounded-lg border border-border bg-card text-card-foreground shadow-sm`,fr=`flex items-center gap-3 border-b border-border px-4 py-3`,pr=`p-4`,mr=`border-t border-border px-4 py-3`,hr=({children:e,title:t=void 0,header:r=void 0,footer:i=void 0,loading:a=void 0,loaderMinHeight:o=void 0,wrapperClassName:s=void 0,className:c=void 0,headerClassName:l=void 0,bodyClassName:u=void 0,footerClassName:d=void 0,before:f=void 0,after:p=void 0})=>{let m=q(`card`),h=s??m.Card.wrapperClassName??(f||p?`flex items-center gap-2`:void 0);return n.default.createElement(Z,{className:h},f,n.default.createElement(`div`,{className:X(dr,m.Card.className,c)},r||t?n.default.createElement(`div`,{className:X(fr,m.Card.headerClassName,l)},t?n.default.createElement(`h5`,{className:`m-0 whitespace-nowrap text-base leading-none font-semibold`},t):null,r):null,n.default.createElement(`div`,{className:X(pr,m.Card.bodyClassName,u)},n.default.createElement(ur,{show:a??m.Card.loading,...o===void 0?{}:{minHeight:o}},e)),i?n.default.createElement(`div`,{className:X(mr,m.Card.footerClassName,d)},i):null),p)},gr={info:`text-blue-600`,success:`text-green-600`,warning:`text-yellow-600`,danger:`text-red-600`,primary:`text-primary`,secondary:`text-secondary`,light:`text-gray-400`,dark:`text-gray-800`},_r=`bg-card supports-[backdrop-filter]:backdrop-blur-sm`,vr=({children:e,variant:t=`info`,appearance:r=`default`,placement:i=`inline`,anchorRef:a=void 0,timeout:o=void 0,onClose:s=void 0,icon:l=!0,before:u=void 0,after:d=void 0,wrapperClassName:f=void 0,className:p=void 0})=>{let m=q(`alert`),[h,g]=(0,n.useState)(null);(0,n.useLayoutEffect)(()=>{if(i!==`sticky`){g(null);return}let e=0,t=null,n=!1,r=()=>{let i=a?.current;if(!n){if(!i){e=requestAnimationFrame(r);return}t=document.createElement(`div`),t.style.cssText=`position:sticky;top:0;left:0;right:0;z-index:50;width:100%`,i.prepend(t),g(t)}};return r(),()=>{n=!0,e&&cancelAnimationFrame(e),t&&t.remove(),g(null)}},[i,a]);let _=l===!1?null:l===!0?{info:`info`,success:`check`,warning:`warning`,danger:`x-circle`,primary:``,secondary:``,light:``,dark:``}[t]||null:l||null;(0,n.useEffect)(()=>{if(typeof s==`function`){let e=setTimeout(()=>{s()},o??5e3);return()=>clearTimeout(e)}},[s,o]);let v=r===`text`?n.default.createElement(`span`,{role:`status`,className:X(`inline-flex items-center gap-1 text-sm font-medium`,gr[t]??`text-foreground`,p)},_&&n.default.createElement(Q,{name:_,size:14,className:`shrink-0`}),e):n.default.createElement(`div`,{role:`alert`,className:X(`alert alert-`+t,p||m.Alert.className,(i===`fixed`||i===`sticky`)&&[`w-full rounded-none border-x-0 shadow-md`,_r])},_&&n.default.createElement(Q,{name:_,size:16,className:`shrink-0`}),e);if(i===`fixed`){let e=(()=>{let e=`__alert-portal-fixed__`,t=document.getElementById(e);return t||(t=document.createElement(`div`),t.id=e,t.style.cssText=`position:fixed;top:0;left:0;right:0;z-index:9999;width:100%`,document.body.appendChild(t)),t})();return(0,c.createPortal)(v,e)}if(i===`sticky`)return h?(0,c.createPortal)(v,h):null;let y=f??(u||d?`flex items-center gap-2`:void 0);return n.default.createElement(Z,{className:y},u,v,d)},yr=`_key`,br={container:Et,wrapper:Z,row:Dt,col:Ot},xr={field:``,dir:`asc`},Sr=e=>typeof e==`string`&&!Number.isNaN(Date.parse(e)),Cr=(e,t)=>e==null&&t==null?0:e==null?1:t==null?-1:typeof e==`number`&&typeof t==`number`?e-t:typeof e==`boolean`&&typeof t==`boolean`?Number(e)-Number(t):e instanceof Date&&t instanceof Date?e.getTime()-t.getTime():Sr(e)&&Sr(t)?Date.parse(e)-Date.parse(t):String(e).localeCompare(String(t),void 0,{numeric:!0,sensitivity:`base`}),wr={normalize(e){if(e?.field)return{field:e.field,dir:e.dir===`desc`?`desc`:`asc`}},toggle(e,t){return!e||e.field!==t?{field:t,dir:`asc`}:{field:t,dir:e.dir===`asc`?`desc`:`asc`}},compareValues(e,t,n=`asc`){let r=Cr(e,t);return n===`desc`?-r:r},compareRecords(e,t,n){let r=this.normalize(n);if(!r)return 0;let i=de(e,r.field),a=de(t,r.field);return this.compareValues(i,a,r.dir)},records(e,t){if(!e)return e;let n=this.normalize(t);return n?[...e].sort((e,t)=>this.compareRecords(e,t,n)):[...e]}};function Tr(e){let t=[],r=e=>{if(e!=null&&typeof e!=`boolean`){if(typeof e==`string`||typeof e==`number`||typeof e==`bigint`){t.push(String(e));return}if(Array.isArray(e)){e.forEach(r);return}n.default.isValidElement(e)&&r(e.props.children)}};return r(e),t.join(` `).replace(/\s+/g,` `).trim()}var Er=e=>e==null||e===``||typeof e==`boolean`||typeof e==`object`&&!Array.isArray(e)?[]:typeof e==`string`||typeof e==`number`?e.toString().split(`,`):e,Dr=e=>e?typeof e==`object`?{label:String(e?.label??``)||``,value:String(e?.value??``)||``}:{label:e?.toString()||``,value:e?.toString()||``}:{label:`@value`,value:`@value`},Or=e=>e.map(e=>Dr({label:e.label??e.name??e.title??e._key??``,value:e.value??e._key??e.label??e.name??``}));function kr(e){return{fieldMap:e?.fieldMap,where:e?.where,order:e?.order,onLoad:e?.onLoad}}var Ar=(e,t,n)=>{let r=e?.[n.field],[i]=Object.entries(t||{});if(!i||!r)return!1;let[a,o]=i;return a===r&&o===n.dir},jr=(e,t,n,r,i)=>{let a=n||{...xr,field:`label`},o=[...e.map(Dr),...t];return e.length===0&&Ar(i,r,a)?o:wr.records(o,a)||[]},Mr=({children:e,side:t})=>n.default.createElement(`span`,{className:X(Hc,t===`before`?`rounded-l-md rounded-r-none border-r-0`:`rounded-l-none rounded-r-md border-l-0`)},e),Nr=({name:e,onChange:t=void 0,defaultValue:r=void 0,required:i=!1,readOnlyAfterSet:a=!1,disabled:o=!1,placeholderOption:s=void 0,label:c=void 0,title:l=void 0,before:u=void 0,after:d=void 0,feedback:f=void 0,options:p=[],optionsSource:m=void 0,order:h=void 0,inheritWrapperClassName:g=!0,wrapperClassName:_=void 0,className:v=void 0,validator:y=void 0})=>{let{value:b,handleChange:x,formWrapClass:S}=Ec({name:e,onChange:t,wrapperClassName:_,defaultValue:r,inheritWrapperClassName:g}),C=Tc(e,{required:i,label:c,validator:y}),w=q(`select`),T=Y(`select`),E=s??{label:T.placeholder,value:``},D=(0,n.useMemo)(()=>kr(m),[m?.fieldMap,m?.where,m?.order,m?.onLoad]),O=lr(),[k,A]=(0,n.useState)([]);(0,n.useEffect)(()=>O.subscribe(m?.path,e=>A(Or(e)),D),[O,m?.path,D]);let j=(0,n.useMemo)(()=>{let e=jr(p,k,h,m?.order,D.fieldMap);return re(b&&!e.length?[...e,{label:`× ${b.toString()}`,value:b.toString()}]:e)},[p,k,h,m?.order,D.fieldMap,b]);!b&&!E&&j.length>0&&x?.({target:{name:e,value:j[0].value}});let M=(0,n.useId)();return n.default.createElement(Z,{className:S||w.Select.wrapperClassName},c&&n.default.createElement(hl,{label:c,required:i,htmlFor:M}),n.default.createElement(Z,{className:u||d?X(Vc,`flex-nowrap`):``},u&&n.default.createElement(Mr,{side:`before`},u),n.default.createElement(`select`,{id:M,name:e,className:X(zc,`appearance-none pr-8`,u&&`!rounded-l-none`,d&&`!rounded-r-none`,C&&`border-destructive focus-visible:ring-destructive/20`,v||w.Select.className),value:b??``,required:i,disabled:o||a&&!W(b),onChange:x,title:l},E&&n.default.createElement(`option`,{key:`${M}-empty`,value:E.value},E.label),j.some(e=>e.group)?Object.entries(j.reduce((e,t)=>{let n=t.group??``;return(e[n]??=[]).push(t),e},{})).map(([e,t])=>e?n.default.createElement(`optgroup`,{key:e,label:e},t.map((t,r)=>n.default.createElement(`option`,{key:`${M}-${e}-${r}`,value:t.value},t.label))):t.map((e,t)=>n.default.createElement(`option`,{key:`${M}-nogroup-${t}`,value:e.value},e.label))):j.map((e,t)=>n.default.createElement(`option`,{key:`${M}-${t}`,value:e.value},e.label))),d&&n.default.createElement(Mr,{side:`after`},d)),C?n.default.createElement(Xc,{message:C}):f&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},f))},Pr=e=>e.toLocaleLowerCase().normalize(`NFD`).replace(/[̀-ͯ]/g,``),Fr=({name:e,defaultValue:t=void 0,minItems:r=void 0,maxItems:i=void 0,onChange:a=void 0,required:o=!1,readOnlyAfterSet:s=!1,disabled:l=!1,label:u=void 0,title:d=void 0,placeholder:f=void 0,before:p=void 0,after:m=void 0,feedback:h=void 0,options:g=[],optionsSource:_=void 0,order:v=void 0,inheritWrapperClassName:y=!0,wrapperClassName:b=void 0,className:x=void 0,listClassName:S=void 0,optionClassName:C=void 0,validator:w=void 0,creatable:T=!1,onCreate:E=void 0})=>{let{value:D,handleChange:O,formWrapClass:k}=Ec({name:e,onChange:a,wrapperClassName:b,defaultValue:t,inheritWrapperClassName:y}),A=Tc(e,{required:o,label:u,validator:w}),j=q(`select`),M=Y(`autocomplete`),N=(0,n.useMemo)(()=>Er(D),[D]),[P,F]=(0,n.useState)(()=>N);(0,n.useEffect)(()=>{oe(N,P)||F(N)},[N,P]);let I=(0,n.useMemo)(()=>kr(_),[_?.fieldMap,_?.where,_?.order,_?.onLoad]),L=lr(),[R,z]=(0,n.useState)([]);(0,n.useEffect)(()=>L.subscribe(_?.path,e=>z(Or(e)),I),[L,_?.path,I]);let[B,ee]=(0,n.useState)([]),V=(0,n.useMemo)(()=>re(jr([...g,...B],R,v,_?.order,I.fieldMap),`value`),[g,B,R,v,_?.order,I.fieldMap]),H=(0,n.useMemo)(()=>new Map(V.map(e=>[e.value,e.label||e.value])),[V]),[U,te]=(0,n.useState)(``),[ne,G]=(0,n.useState)(!1),[ie,ae]=(0,n.useState)(0),[se,ce]=(0,n.useState)(null),le=(0,n.useRef)(null),ue=(0,n.useRef)(null),K=(0,n.useRef)(null),de=P,fe=!i||de.length<i,pe=l||s&&!W(D),me=(0,n.useMemo)(()=>{let e=U.trim(),t=Pr(e),n=V.filter(e=>!de.includes(e.value)).filter(e=>!t||Pr(e.label||e.value).includes(t)||Pr(e.value).includes(t)).map(e=>({kind:`option`,option:e})),r=!!e&&V.some(n=>Pr(n.label||n.value)===t||n.value===e);return T&&e&&!r?[...n,{kind:`create`,text:e}]:n},[V,de,U,T]),he=(0,n.useId)(),ge=`${he}-options`,_e=e=>`${he}-option-${e}`,ve=ne&&fe&&!pe,ye=(0,n.useCallback)(()=>{let e=le.current;if(!e)return;let t=e.getBoundingClientRect(),n=window.innerHeight-t.bottom-8,r=t.top-8,i=n>=200||n>=r;ce({...i?{top:t.bottom+4}:{bottom:window.innerHeight-t.top+4},left:t.left,width:t.width,maxHeight:Math.max(120,Math.min(288,i?n:r))})},[]);(0,n.useEffect)(()=>{if(!ve)return;ye();let e=()=>ye(),t=e=>{let t=e.target;le.current?.contains(t)||K.current?.contains(t)||G(!1)};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),document.addEventListener(`mousedown`,t),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0),document.removeEventListener(`mousedown`,t)}},[ve,ye,de.length]),(0,n.useEffect)(()=>{ae(e=>Math.min(e,Math.max(0,me.length-1)))},[me.length]),(0,n.useEffect)(()=>{if(!ve)return;let e=document.getElementById(_e(ie));e&&typeof e.scrollIntoView==`function`&&e.scrollIntoView({block:`nearest`})},[ie,ve]);let be=t=>{F(t),O?.({target:{name:e,value:t}})},xe=e=>{if(!e||de.includes(e)||!fe)return;let t=[...de,e];be(t),te(``),ae(0),i&&t.length>=i&&G(!1)},Se=async e=>{if(te(``),ae(0),await E?.(e)===!1){G(!1);return}ee(t=>t.some(t=>t.value===e)?t:[...t,{label:e,value:e}]),xe(e)},Ce=e=>{e&&(e.kind===`option`?xe(e.option.value):Se(e.text))},we=e=>{be(de.filter(t=>t!==e))},Te=e=>{if(e.key===`ArrowDown`){if(e.preventDefault(),!ne){G(!0);return}ae(e=>Math.min(e+1,Math.max(0,me.length-1)))}else if(e.key===`ArrowUp`)e.preventDefault(),ae(e=>Math.max(e-1,0));else if(e.key===`Enter`){if(e.preventDefault(),ve&&me[ie]){Ce(me[ie]);return}let t=U.trim();if(!t)return;let n=V.find(e=>e.value===t||Pr(e.label||e.value)===Pr(t));n?xe(n.value):T&&Se(t)}else if(e.key===`Escape`){if(!ve)return;e.preventDefault(),e.nativeEvent.stopPropagation(),G(!1)}else e.key===`Tab`?G(!1):e.key===`Backspace`&&!U&&de.length>0&&we(de[de.length-1])},Ee=ve&&se&&n.default.createElement(`ul`,{ref:K,id:ge,role:`listbox`,"aria-label":Tr(u)||d||e,className:X(`fixed z-[250] overflow-y-auto rounded-xl border border-border/60 bg-popover/95 p-1 text-sm text-popover-foreground shadow-xl shadow-black/5 backdrop-blur supports-[backdrop-filter]:bg-popover/90 dark:shadow-black/20`,S||j.Autocomplete.listClassName),style:{top:se.top,bottom:se.bottom,left:se.left,width:se.width,maxHeight:se.maxHeight}},me.length===0?n.default.createElement(`li`,{role:`presentation`,className:`px-2.5 py-2 text-muted-foreground`},M.noResults):me.map((e,t)=>n.default.createElement(`li`,{key:e.kind===`option`?`option-${e.option.value}`:`create-${e.text}`,id:_e(t),role:`option`,"aria-selected":t===ie,className:X(`cursor-pointer select-none rounded-md px-2.5 py-2 transition-colors`,t===ie?`bg-accent text-accent-foreground`:`hover:bg-accent/60`,e.kind===`create`&&`font-medium`,C||j.Autocomplete.optionClassName),onMouseDown:e=>e.preventDefault(),onMouseEnter:()=>ae(t),onClick:()=>Ce(e)},e.kind===`option`?e.option.label||e.option.value:M.create.replace(`{value}`,e.text))));return n.default.createElement(Z,{className:k||j.Autocomplete.wrapperClassName},u&&n.default.createElement(hl,{label:u,required:o,htmlFor:he}),n.default.createElement(Z,{className:p||m?X(Vc,`flex-nowrap`):``},p&&n.default.createElement(Mr,{side:`before`},p),n.default.createElement(`div`,{ref:le,className:X(zc,`h-auto min-h-9 flex-wrap items-center gap-1 py-1.5 px-2`,p&&`rounded-l-none`,m&&`rounded-r-none`,A&&`border-destructive focus-within:ring-destructive/20`),onClick:()=>{pe||(ue.current?.focus(),G(!0))}},de.map(e=>n.default.createElement(`span`,{className:`inline-flex max-w-full items-center gap-1 rounded-full border border-primary/20 bg-primary/10 px-2 py-0.5 text-xs font-medium text-primary`,key:e},n.default.createElement(`span`,{className:`truncate`},H.get(e)??e),!pe&&n.default.createElement(`button`,{type:`button`,"aria-label":`${M.remove} ${H.get(e)??e}`,className:`ml-0.5 cursor-pointer opacity-60 transition-opacity hover:opacity-100`,onClick:t=>{t.stopPropagation(),we(e)}},`×`))),fe&&n.default.createElement(`input`,{ref:ue,id:he,type:`text`,role:`combobox`,"aria-expanded":!!(ve&&se),"aria-controls":ge,"aria-autocomplete":`list`,"aria-activedescendant":ve&&me[ie]?_e(ie):void 0,autoComplete:`off`,className:X(`min-w-[120px] flex-1 border-none bg-transparent text-sm outline-none placeholder:text-muted-foreground`,x||j.Autocomplete.className),required:o&&de.length<(r||0),disabled:pe,placeholder:T?f??M.createPlaceholder:f,title:d,value:U,onChange:e=>{te(e.target.value),ae(0),G(!0)},onFocus:()=>G(!0),onBlur:()=>G(!1),onKeyDown:Te})),m&&n.default.createElement(Mr,{side:`after`},m)),Ee&&typeof document<`u`?(0,c.createPortal)(Ee,document.body):null,A?n.default.createElement(Xc,{message:A}):h&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},h))},Ir=({name:e,defaultValue:t=void 0,onChange:r=void 0,required:i=!1,readOnlyAfterSet:a=!1,disabled:o=!1,label:s=void 0,title:c=void 0,before:l=void 0,after:u=void 0,feedback:d=void 0,options:f=[],optionsSource:p=void 0,order:m=void 0,inheritWrapperClassName:h=!0,wrapperClassName:g=void 0,className:_=void 0,validator:v=void 0,itemClassName:y=void 0})=>{let{value:b,handleChange:x,formWrapClass:S}=Ec({name:e,onChange:r,wrapperClassName:g,defaultValue:t,inheritWrapperClassName:h}),C=Tc(e,{required:i,label:s,validator:v}),w=(0,n.useMemo)(()=>Er(b),[b]),[T,E]=(0,n.useState)(()=>w);(0,n.useEffect)(()=>{oe(w,T)||E(w)},[w,T]);let D=(0,n.useMemo)(()=>kr(p),[p?.fieldMap,p?.where,p?.order,p?.onLoad]),O=lr(),[k,A]=(0,n.useState)([]);(0,n.useEffect)(()=>O.subscribe(p?.path,e=>A(Or(e)),D),[O,p?.path,D]);let j=(0,n.useMemo)(()=>re(jr(f,k,m,p?.order,D.fieldMap),`value`),[f,k,m,p?.order,D.fieldMap]),M=t=>{E(n=>{let r=n.filter(e=>e!==t);return setTimeout(()=>{x?.({target:{name:e,value:r}})},0),r})},N=t=>{let n=t.target.value;if(!t.target.checked){M(n);return}j.filter(e=>e.value===n).length!==0&&(T.includes(n)||E(t=>{let r=[...t,n];return setTimeout(()=>{x?.({target:{name:e,value:r}})},0),r}))},P=(0,n.useId)(),F=o||a&&T.length>0,I=n.default.createElement(Z,{className:X(l||u?X(zc,`h-auto min-h-9 w-full min-w-0 flex-col items-start py-2 px-3`):``,`space-y-1`)},j.map(t=>{let r=se(`cl-${P}-${e}-${t.value}`);return n.default.createElement(`div`,{key:r,className:X(`flex w-full items-center gap-2`,y)},n.default.createElement(`input`,{className:`h-4 w-4 shrink-0 rounded-sm border border-input bg-background text-primary shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,type:`checkbox`,id:r,name:e,value:t.value,onChange:N,checked:T.includes(t.value),disabled:F,title:c}),n.default.createElement(`label`,{htmlFor:r,className:`text-sm font-medium leading-none text-foreground`},t.label))}));return n.default.createElement(Z,{className:X(S,_)},s&&n.default.createElement(n.default.Fragment,null,n.default.createElement(hl,{label:s,required:i}),n.default.createElement(`hr`,{className:`mt-0`})),l||u?n.default.createElement(Z,{className:X(Vc,`flex-nowrap items-stretch`)},l&&n.default.createElement(Mr,{side:`before`},l),I,u&&n.default.createElement(Mr,{side:`after`},u)):I,C?n.default.createElement(Xc,{message:C}):d&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},d))};function Lr(e,t){if(!t)return e;let n=e.indexOf(`?`),r=n===-1?e:e.slice(0,n),i=n===-1?``:e.slice(n),a=r.lastIndexOf(`.`);return a===-1?`${r}${t}${i}`:`${r.slice(0,a)}${t}${r.slice(a)}${i}`}function Rr(e,t){return t.mode===`explicit`?t.variants.map(e=>`width`in e?`${e.src} ${e.width}w`:`${e.src} ${e.density}x`).join(`, `):t.mode===`density`?(t.densities??[1,2]).map(n=>`${Lr(e,t.suffix?t.suffix(n):n===1?``:`@${n}x`)} ${n}x`).join(`, `):t.widths.map(n=>`${Lr(e,t.suffix?t.suffix(n):`-${n}w`)} ${n}w`).join(`, `)}function zr(e,t){let n=e.priority?`eager`:e.loading??`lazy`,r={src:e.src,alt:e.alt,width:e.width,height:e.height,loading:n,decoding:e.decoding??`async`,...e.priority&&{fetchpriority:`high`},...e.title&&{title:e.title},...e.className&&{class:e.className},...e.crossorigin&&{crossorigin:e.crossorigin},...e.referrerpolicy&&{referrerpolicy:e.referrerpolicy}},i=[];return e.fit&&i.push(`object-fit: ${e.fit}`),e.position&&i.push(`object-position: ${e.position}`),i.length&&(r.style=i.join(`; `)),t&&(r.srcset=Rr(e.src,t),t.mode!==`density`&&t.sizes&&(r.sizes=t.sizes)),Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}function Br(e){let t=[`src`,`srcset`,`sizes`,`alt`,`title`,`width`,`height`,`style`,`class`,`loading`,`decoding`,`fetchpriority`,`crossorigin`,`referrerpolicy`].filter(t=>e[t]!==void 0).map(t=>`${t}="${String(e[t])}"`);if(t.length===0)return`<img />`;let[n,...r]=t;return r.length===0?`<img ${n} />`:`<img ${n}\n ${r.join(`
|
|
4
|
-
`)} />`}function Vr(e){return{toHtml:t=>Br(zr(e,t)),toJson:t=>JSON.stringify(zr(e,t),null,2),params:t=>zr(e,t)}}async function Hr(e,t){return new Promise((n,r)=>{let i=new Image;i.onload=()=>{let r=i.naturalWidth,a=i.naturalHeight,o=e.startsWith(`data:`)?e.slice(5,e.indexOf(`;`)):`image/jpeg`,s=[...t].sort((e,t)=>e-t).filter(e=>e<r).map(e=>{let t=Math.round(e/r*a),n=document.createElement(`canvas`);n.width=e,n.height=t;let s=n.getContext(`2d`);if(!s)throw Error(`Canvas 2D context unavailable`);return s.drawImage(i,0,0,e,t),{src:n.toDataURL(o),width:e}});s.push({src:e,width:r}),n(s)},i.onerror=()=>r(Error(`resizeVariants: failed to load image`)),e.startsWith(`data:`)||(i.crossOrigin=`anonymous`),i.src=e})}async function Ur(e,t){let n=await Hr(e,t.length?t:[]),r=n.at(-1)?.width??0,i=n.slice(0,-1);return{variants:await Promise.all(i.map(async e=>{let t=await fetch(e.src).then(e=>e.blob());return{width:e.width,dataUri:e.src,localUrl:URL.createObjectURL(t)}})),naturalWidth:r}}async function Wr(e,t,n,r){let i=r.replace(/\.[^/.]+$/,``),a=r.split(`.`).pop()??`jpg`;return Promise.all(e.map(async e=>({url:await t.upload(e.dataUri,`${n}/${i}_${e.width}w.${a}`)??e.localUrl,width:e.width})))}function Gr(e){return[...e].sort((e,t)=>e.width-t.width).map(e=>`${e.url} ${e.width}w`).join(`, `)}function Kr(e){if(e.startsWith(`data:`)||e.startsWith(`blob:`))return`image.jpg`;try{return new URL(e).pathname.split(`/`).pop()||`image.jpg`}catch{return e.split(`/`).pop()||`image.jpg`}}function qr(e){return e.replace(/\.[^/.]+$/,``).replace(/[-_]+/g,` `).replace(/\s+/g,` `).trim().replace(/^(.)/,e=>e.toUpperCase())}var Jr=(0,n.createContext)(null),Yr=({registry:e,defaultKey:t,children:r})=>{let i=(0,n.useMemo)(()=>({registry:e,defaultKey:t}),[e,t]);return n.default.createElement(Jr.Provider,{value:i},r)},Xr=e=>{let t=(0,n.useContext)(Jr);if(!t)return null;let r=e??t.defaultKey;return t.registry[r]??null},Zr=1.1,Qr=[],$r=new Set,ei=()=>$r.forEach(e=>e()),ti=e=>{let t=Qr.find(t=>t.dialog===e);if(!t)return;let n=Qr.filter(e=>e.side===t.side);if(!(n.length<2))return n[0].natural*Zr**(n.length-1-n.indexOf(t))},ni=[],ri=0,ii=``,ai=()=>{ri++===0&&(ii=window.document.body.style.overflow,window.document.body.style.overflow=`hidden`)},oi=()=>{ri>0&&--ri===0&&(window.document.body.style.overflow=ii)},si=e=>n.default.createElement(ci,e),ci=({children:e,title:t=void 0,header:r=void 0,footer:i=void 0,onClose:a=void 0,onSave:o=void 0,onDelete:s=void 0,size:l=void 0,position:u=void 0,allowFullscreen:d=!1,showCancel:f=!0,before:p=void 0,after:m=void 0,wrapperClassName:h=void 0,className:g=void 0,headerClassName:_=void 0,titleClassName:v=void 0,subtitleClassName:y=void 0,bodyClassName:b=void 0,footerClassName:x=void 0,closeOnBackdrop:S=!0,closeOnEscape:C=!0,zIndex:w=void 0,stackedBehind:T=!1,rightInset:E=void 0,closeSlot:D=void 0,motion:O=void 0})=>{let k=q(`modal`),A=Y(`modal`),[j,M]=n.default.useState(!1),N=n.default.useRef(!1),P=n.default.useRef(null),[,F]=n.default.useReducer(e=>e+1,0),I=n.default.useRef(void 0),L=n.default.useRef(()=>void 0),R=n.default.useRef(void 0),[z,B]=(0,n.useState)(l),ee={sm:`max-w-sm`,md:`max-w-md`,lg:`max-w-2xl`,xl:`max-w-4xl`,"2xl":`max-w-6xl`,fullscreen:`max-w-none w-screen h-dvh rounded-none`}[z||k.Modal.size||`lg`],V={sm:`w-72`,md:`w-96`,lg:`w-[36rem]`,xl:`w-[48rem]`,"2xl":`w-[64rem]`,fullscreen:`w-screen`}[z||k.Modal.size||`lg`],H={sm:`max-h-[30vh]`,md:`max-h-[45vh]`,lg:`max-h-[60vh]`,xl:`max-h-[85vh]`,"2xl":`max-h-[90vh]`,fullscreen:`h-dvh max-h-none`}[z||k.Modal.size||`lg`],U={center:{coverClass:`fixed inset-0 z-50 flex items-center justify-center overflow-y-auto p-4`,dialogClass:X(`relative z-50 flex w-full flex-col overflow-hidden rounded-lg border border-border/60 bg-card shadow-xl`,z!==`fullscreen`&&`max-h-[calc(100dvh-2rem)]`,ee,h||k.Modal.wrapperClassName),contentClass:X(`flex min-h-0 flex-1 flex-col`,g||k.Modal.className),headerClassName:X(`flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3`,_||k.Modal.headerClassName),titleClassName:X(`text-lg font-semibold leading-none`,v||k.Modal.titleClassName),subtitleClassName:X(`mt-1 text-sm text-muted-foreground`,y||k.Modal.subtitleClassName),bodyClassName:X(`min-h-0 flex-1 overflow-auto p-4`,b||k.Modal.bodyClassName),footerClassName:X(`flex items-center justify-end gap-3 border-t border-border/60 px-4 py-3`,x||k.Modal.footerClassName)},top:{coverClass:`fixed inset-0 z-50`,dialogClass:X(`fixed left-0 right-0 top-0 z-50 flex flex-col border-b border-border/60 bg-card shadow-xl`,H,h||k.Modal.wrapperClassName),contentClass:X(`flex min-h-0 flex-1 flex-col`,g||k.Modal.className),headerClassName:X(`flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3`,_||k.Modal.headerClassName),titleClassName:X(`text-lg font-semibold leading-none`,v||k.Modal.titleClassName),subtitleClassName:X(`mt-1 text-sm text-muted-foreground`,y||k.Modal.subtitleClassName),bodyClassName:X(`min-h-0 flex-1 overflow-auto p-4`,b||k.Modal.bodyClassName),footerClassName:X(`flex items-center justify-end gap-3 border-t border-border/60 px-4 py-3`,x||k.Modal.footerClassName)},left:{coverClass:`fixed inset-0 z-50`,dialogClass:X(`fixed bottom-0 left-0 top-0 z-50 flex max-w-full flex-col border-r border-border/60 bg-card shadow-xl`,V,h||k.Modal.wrapperClassName),contentClass:X(`flex min-h-0 flex-1 flex-col`,g||k.Modal.className),headerClassName:X(`flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3`,_||k.Modal.headerClassName),titleClassName:X(`text-lg font-semibold leading-none`,v||k.Modal.titleClassName),subtitleClassName:X(`mt-1 text-sm text-muted-foreground`,y||k.Modal.subtitleClassName),bodyClassName:X(`min-h-0 flex-1 overflow-auto p-4`,b||k.Modal.bodyClassName),footerClassName:X(`flex items-center justify-end gap-3 border-t border-border/60 px-4 py-3`,x||k.Modal.footerClassName)},right:{coverClass:`fixed inset-0 z-50`,dialogClass:X(`fixed bottom-0 right-0 top-0 z-50 flex max-w-full flex-col border-l border-border/60 bg-card shadow-xl`,V,h||k.Modal.wrapperClassName),contentClass:X(`flex min-h-0 flex-1 flex-col`,g||k.Modal.className),headerClassName:X(`flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3`,_||k.Modal.headerClassName),titleClassName:X(`text-lg font-semibold leading-none`,v||k.Modal.titleClassName),subtitleClassName:X(`mt-1 text-sm text-muted-foreground`,y||k.Modal.subtitleClassName),bodyClassName:X(`min-h-0 flex-1 overflow-auto p-4`,b||k.Modal.bodyClassName),footerClassName:X(`flex items-center justify-end gap-3 border-t border-border/60 px-4 py-3`,x||k.Modal.footerClassName)},bottom:{coverClass:`fixed inset-0 z-50`,dialogClass:X(`fixed bottom-0 left-0 right-0 z-50 flex flex-col border-t border-border/60 bg-card shadow-xl`,H,h||k.Modal.wrapperClassName),contentClass:X(`flex min-h-0 flex-1 flex-col`,g||k.Modal.className),headerClassName:X(`flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3`,_||k.Modal.headerClassName),titleClassName:X(`text-lg font-semibold leading-none`,v||k.Modal.titleClassName),subtitleClassName:X(`mt-1 text-sm text-muted-foreground`,y||k.Modal.subtitleClassName),bodyClassName:X(`min-h-0 flex-1 overflow-auto p-4`,b||k.Modal.bodyClassName),footerClassName:X(`flex items-center justify-end gap-3 border-t border-border/60 px-4 py-3`,x||k.Modal.footerClassName)}},te=z===`fullscreen`?`center`:u||k.Modal.position,ne=U[te],re=z===`fullscreen`?X(ne.coverClass,`!overflow-hidden !p-0`):ne.coverClass,W=n.default.useRef(!1),G=()=>{W.current&&(W.current=!1,oi())};n.default.useEffect(()=>{ai(),W.current=!0;let e=window.requestAnimationFrame(()=>M(!0));return()=>{window.cancelAnimationFrame(e),R.current!==void 0&&window.clearTimeout(R.current),G()}},[]);let ie=O??k.Modal.motion?.[te]??`fade`,ae=zt(ie,ie),oe=n.default.useRef(()=>void 0),se=C&&!!a;n.default.useEffect(()=>{if(T||!se)return;let e=Symbol(`modal`);ni.push(e);let t=t=>{t.key===`Escape`&&ni[ni.length-1]===e&&(t.preventDefault(),oe.current())};return window.document.addEventListener(`keydown`,t),()=>{window.document.removeEventListener(`keydown`,t);let n=ni.indexOf(e);n!==-1&&ni.splice(n,1)}},[T,se]);let ce=()=>{if(N.current)return;N.current=!0,I.current=ti(P.current),L.current(),M(!1),G();let e=ae.transition.duration+ae.transition.delay;R.current=window.setTimeout(()=>{a?.()},e)};oe.current=ce;let le=Bt(j,ie,ie),ue=E?{right:E}:{},K={...Bt(j,k.Modal.motion?.backdrop??`fade`,k.Modal.motion?.backdrop??`fade`),...T?{pointerEvents:`none`}:{},cursor:S&&a?`pointer`:`default`,...w===void 0?{}:{zIndex:w-10},...ue},de={cursor:S&&a?`pointer`:`default`,...w===void 0?{}:{zIndex:w},...T?{pointerEvents:`none`}:{},...ue},fe=te===`right`||te===`left`?te:void 0;n.default.useLayoutEffect(()=>{let e=P.current;if(!e||!fe)return;let t={dialog:e,side:fe,natural:e.offsetWidth};Qr.push(t),$r.add(F);let n=!1,r=()=>{if(n)return;n=!0;let e=Qr.indexOf(t);e!==-1&&Qr.splice(e,1),ei()};return L.current=r,ei(),()=>{$r.delete(F),r()}},[fe]);let pe=N.current?I.current:ti(P.current),me=pe===void 0?{}:{width:pe,maxWidth:`100%`,transition:[le.transition,ae.transition.duration?`width ${ae.transition.duration}ms ${ae.transition.easing}`:``].filter(Boolean).join(`, `)},he={opacity:+!!T,transition:ae.transition.duration?`opacity ${ae.transition.duration}ms ${ae.transition.easing}`:void 0},ge=i!==!1&&(i||o||s||f&&a),_e=(0,n.useId)(),ve=t||typeof r==`string`&&r?_e:void 0,ye=`inline-flex h-9 w-9 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`;return(0,c.createPortal)(n.default.createElement(n.default.Fragment,null,n.default.createElement(`div`,{className:re,style:de,onClick:()=>{S&&a&&ce()}},n.default.createElement(`div`,{ref:P,role:`dialog`,"aria-modal":!T||void 0,"aria-labelledby":ve,className:ne.dialogClass,style:{...le,...me,...w===void 0?{}:{zIndex:w},...te===`right`?ue:{}},onClick:e=>e.stopPropagation()},p,n.default.createElement(`div`,{className:ne.contentClass},(r||t||d||a||D)&&n.default.createElement(`div`,{className:ne.headerClassName},n.default.createElement(`div`,{className:`min-w-0`},t&&n.default.createElement(`h3`,{id:_e,className:ne.titleClassName},t),t&&r&&n.default.createElement(`div`,{className:ne.subtitleClassName},r),!t&&r&&(typeof r==`string`?n.default.createElement(`h3`,{id:_e,className:ne.titleClassName},r):r)),(d||a||D)&&n.default.createElement(`div`,{className:`ml-auto flex shrink-0 items-center gap-1`},d&&n.default.createElement(`button`,{type:`button`,title:z===`fullscreen`?`Exit fullscreen`:`Enter fullscreen`,"aria-label":z===`fullscreen`?`Exit fullscreen`:`Enter fullscreen`,className:ye,onClick:e=>{e.preventDefault(),e.stopPropagation(),B(e=>e===`fullscreen`?l===`fullscreen`?`lg`:l:`fullscreen`)}},n.default.createElement(Q,{name:z===`fullscreen`?k.Modal.iconCollapse:k.Modal.iconExpand,size:18})),D??(a&&n.default.createElement(`button`,{type:`button`,title:A.close,"aria-label":A.close,className:ye,onClick:e=>{e.preventDefault(),e.stopPropagation(),ce()}},n.default.createElement(Q,{name:`x`,size:20}))))),n.default.createElement(`div`,{className:ne.bodyClassName},e),ge&&n.default.createElement(`div`,{className:ne.footerClassName},i,!i&&o&&n.default.createElement(Sn,{variant:`primary`,label:A.save,onClick:async e=>{e.preventDefault(),await o(e)&&ce()}}),!i&&s&&n.default.createElement(Sn,{variant:`danger`,label:A.delete,onClick:async e=>{e.preventDefault(),await s(e),ce()}}),!i&&f&&a&&n.default.createElement(Cn,{variant:`link`,label:A.cancel,onClick:ce}))),m,n.default.createElement(`div`,{"data-rf-modal-veil":``,"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 z-10 bg-black/40`,style:he}))),n.default.createElement(`div`,{"data-rf-modal-backdrop":``,"aria-hidden":`true`,className:`fixed inset-0 z-40 bg-black/60 backdrop-blur-sm`,style:K,onClick:()=>{S&&a&&ce()}})),document.body)},li=({children:e,title:t=void 0,onYes:r=void 0,onNo:i=void 0,onClose:a=void 0})=>{let o=Y(`modal`);return n.default.createElement(ci,{title:t,onClose:a,allowFullscreen:!1,footer:n.default.createElement(n.default.Fragment,null,r&&n.default.createElement(Sn,{variant:`primary`,label:o.yes,onClick:async e=>{e.preventDefault(),await r(e),a?.()}}),i&&n.default.createElement(Sn,{variant:`secondary`,label:o.no,onClick:async e=>{e.preventDefault(),await i(e),a?.()}}))},e)},ui=({children:e,title:t=void 0,onClose:r=void 0})=>{let i=Y(`modal`);return n.default.createElement(ci,{title:t,onClose:r,allowFullscreen:!1,footer:n.default.createElement(n.default.Fragment,null,n.default.createElement(Cn,{variant:`primary`,label:i.ok,onClick:r}))},e)},di=()=>n.default.createElement(`div`,{className:`h-5 w-px bg-border shrink-0 mx-0.5`}),fi=({src:e,title:t=void 0,width:r=700,height:i=500,mode:a=`inline`,onImageLoad:o=void 0,onClose:s=void 0,onSave:c=void 0})=>{let l=Y(`imageEditor`),u=(0,n.useRef)(null),d=(0,n.useRef)(null),f={width:10,color:`rgba(255,0,0,0.5)`,fill:`transparent`},[p,m]=(0,n.useState)(1);(0,n.useEffect)(()=>{if(!u.current)return;let t,n=!1;return(async()=>{let[{default:a}]=await Promise.all([import(`tui-image-editor`),import(`tui-image-editor/dist/tui-image-editor.css`)]);!n&&u.current&&(t=new a(u.current,{cssMaxWidth:r,cssMaxHeight:i,selectionStyle:{cornerSize:10,rotatingPointOffset:70,cornerColor:`white`,cornerStrokeColor:`red`,borderColor:`red`}}),d.current=t,e&&t.loadImageFromURL(e,`Sample Image`).then(()=>{o?.(),t.clearUndoStack(),t.clearRedoStack()}).catch(e=>{console.error(`Error loading image:`,e)}),t.on(`objectAdded`,e=>{console.log(`objectAdded`,e),t.stopDrawingMode()}),t.on(`addText`,e=>{let n=e;t.stopDrawingMode(),t.addText(`init text`,{styles:{fill:`#FF0000`,fontSize:30,fontWeight:`bold`},position:{x:n.originPosition?.x,y:n.originPosition?.y}})}))})(),()=>{n=!0,t?.destroy(),d.current=null}},[r,i]);let h=(0,n.useCallback)(()=>{let t=d.current;e&&t&&t.loadImageFromURL(e,`Sample Image`).then(()=>{o?.(),t.clearUndoStack(),t.clearRedoStack()}).catch(e=>{console.error(`Error loading image:`,e)})},[e,o]);(0,n.useEffect)(()=>{d.current&&h()},[h]);let g=(e,t)=>{e.preventDefault();let n=d.current;if(n)switch(t){case`ZOOMIN`:p<3&&m(e=>e*1.2);break;case`ZOOMOUT`:p>1&&m(e=>Math.max(e*.8,1));break;case`UNDO`:n.isEmptyUndoStack()||n.undo();break;case`REDO`:n.isEmptyRedoStack()||n.redo();break;case`FLIPX`:n.flipX();break;case`FLIPY`:n.flipY();break;case`ROTATE`:n.rotate(90);break;case`CROPPER`:n.startDrawingMode(t);break;case`FREE_DRAWING`:n.startDrawingMode(t,{width:f.width,color:f.color});break;case`LINE_DRAWING`:n.startDrawingMode(t,{width:f.width,color:f.color,arrowType:{tail:`chevron`}});break;case`TEXT`:n.startDrawingMode(t);break;case`circle`:case`rect`:case`triangle`:n.setDrawingShape(t,{fill:f.fill,stroke:f.color,strokeWidth:3}),n.startDrawingMode(`SHAPE`)}};(0,n.useEffect)(()=>{if(a===`modal`)return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=``}},[a]);let _=async()=>{let e=d.current;if(e){try{let t=e.getCropzoneRect?.();t&&t.width>0&&t.height>0&&await e.crop(t)}catch{}await c?.(e.toDataURL())}},v=()=>{s?.()},y=`inline-flex h-8 w-8 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,b=n.default.createElement(n.default.Fragment,null,n.default.createElement(`button`,{className:y,title:l.undo,onClick:e=>g(e,`UNDO`)},n.default.createElement(Q,{name:`arrow-arc-left`,size:16})),n.default.createElement(`button`,{className:y,title:l.redo,onClick:e=>g(e,`REDO`)},n.default.createElement(Q,{name:`arrow-arc-right`,size:16})),n.default.createElement(`button`,{className:y,title:l.zoomOut,onClick:e=>g(e,`ZOOMOUT`)},n.default.createElement(Q,{name:`magnifying-glass-minus`,size:16})),n.default.createElement(`button`,{className:y,title:l.zoomIn,onClick:e=>g(e,`ZOOMIN`)},n.default.createElement(Q,{name:`magnifying-glass-plus`,size:16})),n.default.createElement(di,null),n.default.createElement(`button`,{className:y,title:l.crop,onClick:e=>g(e,`CROPPER`)},n.default.createElement(Q,{name:`crop`,size:16})),n.default.createElement(`button`,{className:y,title:l.flipHorizontal,onClick:e=>g(e,`FLIPX`)},n.default.createElement(Q,{name:`arrow-line-right`,size:16})),n.default.createElement(`button`,{className:y,title:l.flipVertical,onClick:e=>g(e,`FLIPY`)},n.default.createElement(Q,{name:`arrow-line-down`,size:16})),n.default.createElement(`button`,{className:y,title:l.rotate,onClick:e=>g(e,`ROTATE`)},n.default.createElement(Q,{name:`camera-rotate`,size:16})),n.default.createElement(di,null),n.default.createElement(`button`,{className:y,title:l.freeDrawing,onClick:e=>g(e,`FREE_DRAWING`)},n.default.createElement(Q,{name:`pencil`,size:16})),n.default.createElement(`button`,{className:y,title:l.arrow,onClick:e=>g(e,`LINE_DRAWING`)},n.default.createElement(Q,{name:`arrow-right`,size:16})),n.default.createElement(`button`,{className:y,title:l.text,onClick:e=>g(e,`TEXT`)},n.default.createElement(Q,{name:`text-t`,size:16})),n.default.createElement(`button`,{className:y,title:l.rectangle,onClick:e=>g(e,`rect`)},n.default.createElement(Q,{name:`rectangle`,size:16})),n.default.createElement(`button`,{className:y,title:l.circle,onClick:e=>g(e,`circle`)},n.default.createElement(Q,{name:`circle`,size:16})),n.default.createElement(`button`,{className:y,title:l.triangle,onClick:e=>g(e,`triangle`)},n.default.createElement(Q,{name:`triangle`,size:16}))),x=n.default.createElement(`div`,{className:`flex flex-1 min-w-0 items-center gap-0.5 overflow-x-auto`},n.default.createElement(`span`,{className:`shrink-0 text-sm font-semibold text-foreground pr-2 mr-1`},t||l.title),n.default.createElement(di,null),b,c&&n.default.createElement(n.default.Fragment,null,n.default.createElement(di,null),n.default.createElement(Sn,{className:`btn-primary h-8 px-3 text-xs ml-1`,onClick:_,icon:`floppy-disk`,label:l.save}))),S=n.default.createElement(`div`,{className:`flex items-center gap-0.5 border-b px-2 py-1`},b,c&&n.default.createElement(`div`,{className:`ml-auto pl-2`},n.default.createElement(Sn,{className:`btn-primary h-8 px-3 text-xs`,onClick:_,icon:`floppy-disk`,label:l.save}))),C=n.default.createElement(`div`,{className:X(`flex w-full items-center justify-center overflow-auto pt-3`,`[background-image:repeating-conic-gradient(#e4e4e4_0%_25%,#f5f5f5_0%_50%)]`,`dark:[background-image:repeating-conic-gradient(#2a2a2a_0%_25%,#343434_0%_50%)]`,`[background-size:16px_16px]`),style:{minHeight:i*p+`px`}},n.default.createElement(`style`,null,`.tui-image-editor,.tui-image-editor canvas{background:transparent!important}`),n.default.createElement(`div`,{ref:u,style:{transform:`scale(${p})`,transformOrigin:`center center`,display:`inline-block`,userSelect:`none`,width:r+`px`,height:i*p+`px`}}));return a===`modal`?n.default.createElement(si,{size:`xl`,header:x,bodyClassName:`overflow-hidden p-0`,onClose:v,footer:!1},C):n.default.createElement(n.default.Fragment,null,S,C)},pi=({srcset:e})=>{let t=Y(`imageField`),r=e.split(`,`).map(e=>e.trim()).map(e=>{let[t,n]=e.split(` `);return{url:t,width:parseInt(n,10)}}).filter(e=>e.url&&!isNaN(e.width));return r.length<2?null:n.default.createElement(`div`,{className:`mt-2 flex flex-col gap-1`},n.default.createElement(`p`,{className:`text-xs font-medium text-muted-foreground`},t.responsiveVariants,n.default.createElement(`span`,{className:`ml-1 font-normal opacity-60`},J(t.variantsGenerated,{count:r.length}))),n.default.createElement(`div`,{className:`flex gap-1.5`},r.map(e=>n.default.createElement(`a`,{key:e.width,href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`group relative flex-1 overflow-hidden rounded border border-border`,style:{backgroundImage:`repeating-conic-gradient(#e4e4e4 0% 25%, #f5f5f5 0% 50%)`,backgroundSize:`8px 8px`}},n.default.createElement(`img`,{src:e.url,alt:`${e.width}w`,className:`h-12 w-full object-contain transition-opacity group-hover:opacity-80`}),n.default.createElement(`span`,{className:`absolute bottom-0.5 left-0.5 rounded bg-black/60 px-1 py-0.5 text-[9px] font-mono leading-none text-white`},e.width,`px`),n.default.createElement(`div`,{className:`absolute inset-0 flex items-center justify-center opacity-0 transition-opacity group-hover:opacity-100`},n.default.createElement(`div`,{className:`rounded-md bg-black/60 p-1`},n.default.createElement(Q,{name:`external-link`,size:11,className:`text-white`})))))))},mi=({name:e,onChange:t=void 0,defaultValue:r=void 0,label:i=void 0,required:a=!1,disabled:o=!1,feedback:s=void 0,srcsetWidths:c=[],uploadPath:l=void 0,id:u=void 0,labelClassName:d=void 0,inheritWrapperClassName:f=!0,wrapperClassName:p=void 0,className:m=void 0,before:h=void 0,after:g=void 0})=>{let{value:_,handleChange:v,formWrapClass:y}=Ec({name:e,onChange:t,defaultValue:r,wrapperClassName:p,inheritWrapperClassName:f}),b=Tc(e,{required:a,label:i}),x=_&&typeof _==`object`&&!Array.isArray(_)?_:{},S=x.src??``,C=x.alt??``,w=x.srcset??``,T=x.sizes??``,E=Xr(),D=Y(`imageField`),[O,k]=(0,n.useState)(!1),[A,j]=(0,n.useState)(!1),M=(0,n.useRef)(null),N=(0,n.useCallback)(t=>{v?.({target:{name:e,value:{...x,...t}}})},[v,e,x]),P=(0,n.useRef)(``);(0,n.useEffect)(()=>{S&&S!==P.current&&!C&&N({alt:qr(Kr(S))}),P.current=S},[S]),(0,n.useEffect)(()=>{if(!S||!c.length)return;let e=!1;return k(!0),(async()=>{let{variants:t,naturalWidth:n}=await Ur(S,c);if(e)return;let r=Kr(S),i,a=S.startsWith(`data:`)?URL.createObjectURL(await fetch(S).then(e=>e.blob())):S;i=E&&l&&t.length?[...await Wr(t,E,l,r),{url:a,width:n}]:[...t.map(e=>({url:e.localUrl,width:e.width})),{url:a,width:n}],e||(N({srcset:Gr(i),sizes:`(max-width: 640px) 100vw, 800px`}),k(!1))})().catch(()=>{e||k(!1)}),()=>{e=!0}},[S,c.join(`,`)]);let F=e=>{N({src:e,srcset:``,sizes:``}),j(!1)},I=!!b;return n.default.createElement(Z,{className:y},h,i&&n.default.createElement(hl,{label:i,required:a,htmlFor:u??e,className:d}),n.default.createElement(`div`,{className:X(`rounded-lg border border-input bg-background shadow-sm transition-colors`,`focus-within:ring-1 focus-within:ring-ring`,I&&`border-destructive focus-within:ring-destructive/20`,o&&`cursor-not-allowed opacity-50`,m)},n.default.createElement(`div`,{className:X(`group relative flex min-h-[120px] items-center justify-center overflow-hidden rounded-t-lg transition-colors`,`[background-image:repeating-conic-gradient(#e4e4e4_0%_25%,#f5f5f5_0%_50%)]`,`dark:[background-image:repeating-conic-gradient(#2a2a2a_0%_25%,#343434_0%_50%)]`,`[background-size:16px_16px]`)},S?n.default.createElement(`img`,{src:S,srcSet:w||void 0,sizes:T||void 0,alt:``,className:`max-h-[180px] max-w-full object-contain`}):n.default.createElement(Q,{name:`image`,size:36,className:`opacity-20 text-muted-foreground`}),S&&n.default.createElement(`div`,{className:`absolute right-2 top-2 flex gap-1 opacity-0 transition-opacity group-hover:opacity-100`},n.default.createElement(`a`,{href:S,target:`_blank`,rel:`noopener noreferrer`,title:D.openOriginal,className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80`},n.default.createElement(Q,{name:`external-link`,size:13})),n.default.createElement(`button`,{type:`button`,title:D.crop,disabled:o,onClick:()=>j(!0),className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80 disabled:cursor-not-allowed disabled:opacity-40`},n.default.createElement(Q,{name:`crop`,size:13}))),O&&n.default.createElement(`div`,{className:`absolute inset-0 flex items-center justify-center bg-background/70 backdrop-blur-sm`},n.default.createElement(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`},n.default.createElement(Q,{name:`loader-circle`,size:14,className:`animate-spin`}),D.generatingVariants))),n.default.createElement(`div`,{className:`flex flex-col gap-3 p-3`},n.default.createElement(`div`,{className:`flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},D.imageUrl,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},D.imageUrlHint)),n.default.createElement(`input`,{type:`url`,value:S,disabled:o,onChange:e=>N({src:e.target.value,srcset:``,sizes:``}),placeholder:`https://example.com/image.jpg`,className:`h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring disabled:opacity-50`})),n.default.createElement(`div`,{className:`flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},D.altText,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},D.altTextHint),a&&n.default.createElement(`span`,{className:`ml-1 text-destructive`},`*`)),n.default.createElement(`input`,{ref:M,type:`text`,value:C,disabled:o,onChange:e=>N({alt:e.target.value}),placeholder:D.altPlaceholder,className:X(`h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring disabled:opacity-50`,I&&`border-destructive`)})),w&&n.default.createElement(pi,{srcset:w}))),b&&n.default.createElement(Xc,{message:b}),!b&&s&&n.default.createElement(`p`,{className:`mt-1 text-xs text-muted-foreground`},s),g,A&&S&&n.default.createElement(fi,{src:S,mode:`modal`,title:J(D.cropTitle,{name:Kr(S)}),onClose:()=>j(!1),onSave:F}))},hi={primary:`primary`,secondary:`secondary`,success:`success`,warning:`warning`,danger:`destructive`,info:`info`,light:`muted`,dark:`foreground`},gi={primary:`primary-foreground`,secondary:`secondary-foreground`,success:`success-foreground`,warning:`warning-foreground`,danger:`destructive-foreground`,info:`info-foreground`,light:`muted-foreground`,dark:`background`},_i=(e,t)=>`hsl(var(--rf-${e})${t===void 0?``:` / ${t}`})`,vi=({progress:e,variant:t,thickness:r,showText:i,trackVariant:a,size:o,fontSize:s,className:c})=>{let l=_i(hi[a],a===`secondary`||a===`light`?.55:.16),u=_i(hi[t]),d=_i(e>=12?gi[t]:`foreground`);return n.default.createElement(`div`,{className:X(`relative overflow-hidden rounded-full border border-border shadow-sm`,c),style:{height:`${r}px`,width:`${o}%`,minWidth:o<100?120:void 0,backgroundColor:l},role:`progressbar`,"aria-valuenow":e,"aria-valuemin":0,"aria-valuemax":100},n.default.createElement(`div`,{className:`h-full rounded-full transition-all duration-300`,style:{width:`${e}%`,backgroundColor:u}}),i&&n.default.createElement(`span`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center font-medium tabular-nums`,style:{fontSize:`${s}px`,color:d}},e,`%`))},yi=({progress:e,variant:t,thickness:r,showText:i,trackVariant:a,size:o,fontSize:s,className:c})=>{let l=o/2,u=l-r/2,d=2*Math.PI*u,f=d*((100-e)/100),p=_i(hi[a],a===`secondary`||a===`light`?.55:.18),m=_i(hi[t]),h=_i(`foreground`);return n.default.createElement(`span`,{className:X(`inline-flex items-center justify-center`,c),role:`progressbar`,"aria-valuenow":e,"aria-valuemin":0,"aria-valuemax":100},n.default.createElement(`svg`,{width:o,height:o,viewBox:`0 0 ${o} ${o}`},n.default.createElement(`circle`,{r:u,cx:l,cy:l,fill:`none`,stroke:p,strokeWidth:r}),n.default.createElement(`circle`,{r:u,cx:l,cy:l,fill:`none`,stroke:m,strokeWidth:r,strokeLinecap:`round`,strokeDasharray:d,strokeDashoffset:f,style:{transform:`rotate(-90deg)`,transformOrigin:`center`,transition:`stroke-dashoffset 300ms ease`}}),i&&n.default.createElement(`text`,{x:`50%`,y:`50%`,textAnchor:`middle`,dominantBaseline:`middle`,fontWeight:700,fontSize:s,fill:h},`${e}%`)))},bi=({value:e=0,max:t=100,min:r=0,appearance:i=`bar`,variant:a=`primary`,trackVariant:o=`secondary`,thickness:s=10,showText:c=!0,size:l=100,fontSize:u=16,label:d=void 0,before:f=void 0,after:p=void 0,wrapperClassName:m=void 0,className:h=void 0})=>{let g=q(`percentage`),_=t-r,v=_<=0?0:Math.round(Math.max(0,Math.min(100,(e-r)/_*100))),y=h||g.Percentage?.className||``;return n.default.createElement(Z,{className:m||g.Percentage?.wrapperClassName},f,d&&n.default.createElement(hl,{label:d}),i===`bar`?n.default.createElement(vi,{progress:v,variant:a,thickness:s,showText:c,trackVariant:o,size:l,fontSize:u,className:y}):n.default.createElement(yi,{progress:v,variant:a,thickness:s,showText:c,trackVariant:o,size:l,fontSize:u,className:y}),p)},xi={"1:1":1,"3:4":3/4,"4:3":4/3},Si=48,Ci=(e,t)=>{let n=e.split(`.`).pop()??``;return`${e.replace(/\.[^/.]+$/,``)}${`_${t.replace(`:`,`x`)}`}.${n}`},wi={nw:`nwse-resize`,n:`ns-resize`,ne:`nesw-resize`,e:`ew-resize`,se:`nwse-resize`,s:`ns-resize`,sw:`nesw-resize`,w:`ew-resize`},Ti=()=>{let[e,t]=(0,n.useState)(()=>document.documentElement.classList.contains(`dark`));return(0,n.useEffect)(()=>{let e=new MutationObserver(()=>t(document.documentElement.classList.contains(`dark`)));return e.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),()=>e.disconnect()},[]),e},Ei=(0,n.forwardRef)(({img:e,title:t,scales:r},i)=>{let a=r??xi,o=Y(`crop`),s=(0,n.useRef)(null),c=(0,n.useRef)(null),l=()=>{let t=Object.keys(e.variants??{}).filter(e=>e in a);return t.length?t:Object.keys(a)},u=Ti(),[d,f]=(0,n.useState)(l),[p,m]=(0,n.useState)(()=>l()[0]??Object.keys(a)[0]),[h,g]=(0,n.useState)(e.fileName),[_,v]=(0,n.useState)(e.alt??``),[y,b]=(0,n.useState)(e.variants??{}),[x,S]=(0,n.useState)(null),[C,w]=(0,n.useState)(!1),[T,E]=(0,n.useState)(!1),D=(0,n.useRef)(y),O=(0,n.useRef)(x),k=(0,n.useRef)(p),A=(0,n.useRef)(d),j=(0,n.useRef)(h);(0,n.useEffect)(()=>{D.current=y},[y]),(0,n.useEffect)(()=>{O.current=x},[x]),(0,n.useEffect)(()=>{k.current=p},[p]),(0,n.useEffect)(()=>{A.current=d},[d]),(0,n.useEffect)(()=>{j.current=h},[h]),(0,n.useEffect)(()=>{b(e=>{let t={};for(let[n,r]of Object.entries(e))t[n]={...r,fileName:Ci(h,n)};return t})},[h]);let M=(0,n.useRef)(null),N=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=e=>{let t=M.current,n=N.current;if(!t&&!n)return;let r=k.current,i=O.current,o=D.current[r];if(!i||!o)return;let s=a[r]??1;if(t){let n=Math.max(0,Math.min(e.clientX-t.offsetX,i.width-o.width)),a=Math.max(0,Math.min(e.clientY-t.offsetY,i.height-o.height));b(e=>({...e,[r]:{...e[r],left:n,top:a}}))}if(n){let{handle:t,sx:a,sy:o,sl:c,st:l,sw:u,sh:d}=n,f=e.clientX-a,p=e.clientY-o,m=c,h=l,g=u,_=d;if(t===`n`||t===`s`){let e=t===`n`?-p:p;_=Math.max(Si,d+e),g=_*s,t===`n`&&(h=l+d-_),m=c+(u-g)/2}else if(t===`e`||t===`w`){let e=t===`w`?-f:f;g=Math.max(Si,u+e),_=g/s,t===`w`&&(m=c+u-g),h=l+(d-_)/2}else{let e=t.includes(`e`)?f:-f,n=t.includes(`s`)?p:-p;g=Math.max(Si,u+(Math.abs(e)>Math.abs(n)?e:n)),_=g/s,t.includes(`n`)&&(h=l+d-_),t.includes(`w`)&&(m=c+u-g)}m=Math.max(0,m),h=Math.max(0,h);let v=i.width-m,y=i.height-h;if(g>v||_>y){let e=Math.min(v/g,y/_);g*=e,_*=e}g<Si&&(g=Si,_=g/s),_<Si&&(_=Si,g=_*s),b(e=>({...e,[r]:{...e[r],left:m,top:h,width:g,height:_}}))}},t=()=>{M.current=null,N.current=null,E(!1)};return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t)}},[]),(0,n.useLayoutEffect)(()=>{if(!C)return;let t=c.current;if(!t)return;let{width:n,height:r}=t.getBoundingClientRect();if(n&&r&&(S(e=>e&&e.width===n&&e.height===r?e:{width:n,height:r}),!D.current[p])){let t=a[p]??1,i=Math.min(n*.78,r*t*.78),o=i/t;b(t=>({...t,[p]:{fileName:Ci(j.current,p),type:e.type,scale:p,left:(n-i)/2,top:(r-o)/2,width:i,height:o,base64:``}}))}},[p,C]),(0,n.useImperativeHandle)(i,()=>({handleSave:()=>{let e=s.current,t=e?.getContext(`2d`),n=c.current;if(!e||!t||!n)return{fileName:j.current,alt:_,variants:{}};let r=O.current,i={};for(let a of A.current){let o=D.current[a];if(!o||!r)continue;let s=n.naturalWidth/r.width,c=n.naturalHeight/r.height,{top:l,left:u,width:d,height:f}=o;e.width=Math.round(d*s),e.height=Math.round(f*c),t.clearRect(0,0,e.width,e.height),t.drawImage(n,u*s,l*c,d*s,f*c,0,0,e.width,e.height),i[a]={...o,base64:e.toDataURL(o.type)}}return{fileName:j.current,alt:_,variants:i}}}));let P=e=>{d.includes(e)||f(t=>[...t,e]),m(e)},F=(e,t)=>{t.stopPropagation();let n=d.filter(t=>t!==e);if(f(n),e===p){let t=n.filter(e=>e in a);m(t[0]??Object.keys(a).find(t=>t!==e)??Object.keys(a)[0])}},I=e=>{e.preventDefault(),e.stopPropagation();let t=D.current[p];t&&(M.current={offsetX:e.clientX-t.left,offsetY:e.clientY-t.top},E(!0))},L=(e,t)=>{e.preventDefault(),e.stopPropagation();let n=D.current[p];n&&(N.current={handle:t,sx:e.clientX,sy:e.clientY,sl:n.left,st:n.top,sw:n.width,sh:n.height},E(!0))},R=d.includes(p),z=y[p];return n.default.createElement(`div`,{className:[`flex gap-4 h-full min-h-0`,t?`flex-col`:``].join(` `)},t&&n.default.createElement(`h3`,{className:`text-base font-semibold shrink-0`},t),n.default.createElement(`div`,{className:`flex gap-4 flex-1 min-h-0`},n.default.createElement(`div`,{className:`flex-1 min-w-0 min-h-0 flex items-center justify-center rounded-xl overflow-hidden`,style:{cursor:T?`grabbing`:void 0,...u?{backgroundColor:`#1a1a1a`,backgroundImage:`linear-gradient(45deg,#272727 25%,transparent 25%),linear-gradient(-45deg,#272727 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#272727 75%),linear-gradient(-45deg,transparent 75%,#272727 75%)`}:{backgroundColor:`#f0f0f0`,backgroundImage:`linear-gradient(45deg,#dcdcdc 25%,transparent 25%),linear-gradient(-45deg,#dcdcdc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#dcdcdc 75%),linear-gradient(-45deg,transparent 75%,#dcdcdc 75%)`},backgroundSize:`20px 20px`,backgroundPosition:`0 0,0 10px,10px -10px,-10px 0`}},R?n.default.createElement(`div`,{className:`relative select-none`,style:{display:`inline-block`,lineHeight:0}},n.default.createElement(`img`,{src:Bi(e),alt:`Crop target`,ref:c,style:{maxHeight:`calc(100dvh - 200px)`,maxWidth:`100%`,display:`block`},draggable:!1,onLoad:()=>w(!0)}),z&&x&&n.default.createElement(ji,{crop:z,onMoveStart:I,onResizeStart:L})):n.default.createElement(`div`,{className:`flex flex-col items-center gap-3 text-zinc-500 select-none`},n.default.createElement(`svg`,{className:`w-10 h-10 opacity-30`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},n.default.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5,d:`M4 8V6a2 2 0 012-2h2M4 16v2a2 2 0 002 2h2M16 4h2a2 2 0 012 2v2M16 20h2a2 2 0 002-2v-2M9 12l2 2 4-4`})),n.default.createElement(`p`,{className:`text-sm`},o.enableCrop.split(`{scale}`)[0],n.default.createElement(`strong`,{className:`text-zinc-300`},p),o.enableCrop.split(`{scale}`)[1]))),n.default.createElement(`div`,{className:`w-52 shrink-0 flex flex-col gap-4 min-h-0`},n.default.createElement(`div`,null,n.default.createElement(Mi,{value:h,onChange:g,label:o.fileName})),n.default.createElement(`div`,{className:`flex flex-col gap-1 shrink-0`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},o.altText),n.default.createElement(`textarea`,{defaultValue:_,onBlur:e=>v(e.target.value),placeholder:o.altTextPlaceholder,rows:2,className:`w-full min-w-0 resize-none rounded-md border border-input bg-background px-2.5 py-1.5 text-sm focus:outline-none focus:ring-1 focus:ring-ring`})),n.default.createElement(`div`,{className:`flex-1 min-h-0 flex flex-col gap-2 overflow-y-auto`},n.default.createElement(`p`,{className:`text-xs font-semibold text-muted-foreground uppercase tracking-wide shrink-0`},o.variants),Object.keys(a).map(t=>n.default.createElement(Ai,{key:t,scale:t,ratio:a[t],img:e,crop:y[t],bounds:x,enabled:d.includes(t),active:t===p,onClick:()=>P(t),onRemove:e=>F(t,e)}))),R&&z&&n.default.createElement(`div`,{className:`shrink-0 pt-3 border-t border-border`},n.default.createElement(`p`,{className:`text-xs font-medium text-muted-foreground mb-1`},o.outputFile),n.default.createElement(`p`,{className:`text-xs text-foreground/70 truncate tabular-nums`,title:z.fileName},z.fileName??Ci(h,p))))),n.default.createElement(`canvas`,{ref:s,className:`hidden`}))});Ei.displayName=`CropImage`;var Di=120,Oi=88,ki=e=>{let t=Oi*e,n=Oi;return t>Di&&(t=Di,n=Di/e),{w:Math.round(t),h:Math.round(n)}},Ai=({scale:e,ratio:t,img:r,crop:i,bounds:a,enabled:o,active:s,onClick:c,onRemove:l})=>{let u=Y(`crop`),{w:d,h:f}=ki(t),p=(()=>{if(!i||!a||!i.width)return{background:`hsl(var(--muted))`};let e=d/i.width;return{backgroundImage:`url(${Bi(r)})`,backgroundSize:`${Math.round(a.width*e)}px ${Math.round(a.height*e)}px`,backgroundPosition:`-${Math.round(i.left*e)}px -${Math.round(i.top*e)}px`,backgroundRepeat:`no-repeat`}})();return n.default.createElement(`button`,{type:`button`,onClick:c,className:[`relative group flex flex-col rounded-lg border-2 transition-all overflow-hidden w-full text-left`,s?`border-primary bg-primary/5 shadow-sm`:o?`border-border hover:border-primary/40 bg-card`:`border-dashed border-muted-foreground/25 bg-transparent hover:border-muted-foreground/50`].join(` `)},n.default.createElement(`div`,{className:`flex items-center justify-center py-3 px-3 bg-muted/20`},o&&i&&a?n.default.createElement(`div`,{className:`rounded shadow-sm overflow-hidden shrink-0`,style:{width:d,height:f,...p}}):n.default.createElement(`div`,{className:`rounded border border-dashed border-muted-foreground/30 flex items-center justify-center shrink-0`,style:{width:d,height:f}},n.default.createElement(`svg`,{className:`w-5 h-5 text-muted-foreground/40`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},n.default.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5,d:`M12 4v16m8-8H4`})))),n.default.createElement(`div`,{className:`flex items-center justify-between px-2.5 py-1.5 border-t border-border/60`},n.default.createElement(`span`,{className:[`text-xs font-semibold tabular-nums`,s?`text-primary`:`text-foreground`].join(` `)},e),s&&o&&n.default.createElement(`span`,{className:`text-xs text-primary/60 font-normal`},u.active),o&&n.default.createElement(`span`,{role:`button`,tabIndex:-1,onClick:l,title:J(u.removeVariant,{scale:e}),className:`ml-auto w-5 h-5 flex items-center justify-center rounded-full text-muted-foreground hover:bg-destructive/10 hover:text-destructive transition-colors text-base leading-none`},`×`)))},ji=({crop:e,onMoveStart:t,onResizeStart:r})=>{let{top:i,left:a,width:o,height:s}=e;return n.default.createElement(`div`,{className:`absolute inset-0 pointer-events-none`},n.default.createElement(`div`,{className:`absolute`,style:{top:0,left:0,right:0,height:i,background:`rgba(0,0,0,0.55)`}}),n.default.createElement(`div`,{className:`absolute`,style:{top:i+s,left:0,right:0,bottom:0,background:`rgba(0,0,0,0.55)`}}),n.default.createElement(`div`,{className:`absolute`,style:{top:i,left:0,width:a,height:s,background:`rgba(0,0,0,0.55)`}}),n.default.createElement(`div`,{className:`absolute`,style:{top:i,left:a+o,right:0,height:s,background:`rgba(0,0,0,0.55)`}}),n.default.createElement(`div`,{onMouseDown:t,className:`absolute pointer-events-auto cursor-grab active:cursor-grabbing`,style:{top:i,left:a,width:o,height:s,border:`1.5px solid rgba(255,255,255,0.92)`,boxSizing:`border-box`}},n.default.createElement(`div`,{className:`absolute inset-0 pointer-events-none`,style:{backgroundImage:`linear-gradient(to right, rgba(255,255,255,0.18) 1px, transparent 1px),linear-gradient(to bottom, rgba(255,255,255,0.18) 1px, transparent 1px)`,backgroundSize:`33.33% 33.33%`}}),[`nw`,`ne`,`sw`,`se`].map(e=>n.default.createElement(`div`,{key:e,onMouseDown:t=>{t.stopPropagation(),r(t,e)},className:`absolute pointer-events-auto`,style:{cursor:wi[e],width:22,height:22,display:`flex`,alignItems:e.includes(`n`)?`flex-start`:`flex-end`,justifyContent:e.includes(`w`)?`flex-start`:`flex-end`,...e.includes(`n`)?{top:-2}:{bottom:-2},...e.includes(`w`)?{left:-2}:{right:-2}}},n.default.createElement(`span`,{style:{display:`block`,width:10,height:10,background:`#fff`,borderRadius:2,boxShadow:`0 1px 3px rgba(0,0,0,0.5)`}}))),[`n`,`s`].map(e=>n.default.createElement(`div`,{key:e,onMouseDown:t=>{t.stopPropagation(),r(t,e)},className:`absolute pointer-events-auto`,style:{cursor:wi[e],...e===`n`?{top:-4}:{bottom:-4},left:`50%`,transform:`translateX(-50%)`,width:24,height:12,display:`flex`,alignItems:`center`,justifyContent:`center`}},n.default.createElement(`span`,{style:{display:`block`,width:20,height:4,background:`#fff`,borderRadius:2,boxShadow:`0 1px 3px rgba(0,0,0,0.5)`}}))),[`e`,`w`].map(e=>n.default.createElement(`div`,{key:e,onMouseDown:t=>{t.stopPropagation(),r(t,e)},className:`absolute pointer-events-auto`,style:{cursor:wi[e],...e===`w`?{left:-4}:{right:-4},top:`50%`,transform:`translateY(-50%)`,width:12,height:24,display:`flex`,alignItems:`center`,justifyContent:`center`}},n.default.createElement(`span`,{style:{display:`block`,width:4,height:20,background:`#fff`,borderRadius:2,boxShadow:`0 1px 3px rgba(0,0,0,0.5)`}})))))},Mi=({value:e,onChange:t,label:r,scale:i})=>{let a=e?.split(`.`).pop()??``,o=i?`_${i.replace(`:`,`x`)}`:void 0;return n.default.createElement(`div`,{className:`flex flex-col gap-1`},r&&n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},r),n.default.createElement(`div`,{className:`flex items-center gap-1.5`},n.default.createElement(`input`,{type:`text`,defaultValue:(e=>{let t=e.replace(/\.[^/.]+$/,``);return o&&t.endsWith(o)?t.slice(0,-o.length):t})(e||``),onBlur:e=>t(`${e.target.value.trim()}${o??``}.${a}`),className:`flex-1 h-8 min-w-0 rounded-md border border-input bg-background px-2.5 text-sm focus:outline-none focus:ring-1 focus:ring-ring`}),o&&n.default.createElement(`span`,{className:`text-xs text-muted-foreground shrink-0 tabular-nums`},o,`.`,a)))},Ni=Mi,Pi=({onFilesChange:e,onFileReady:t,uploadPath:r,srcsetWidths:i,initialFiles:a,storageKey:o,storageProvider:s})=>{let[c,l]=(0,n.useState)(a??[]),u=s??Xr(o),d=(0,n.useRef)(null),f=(0,n.useRef)(e);f.current=e;let p=(0,n.useRef)(t);p.current=t;let m=(0,n.useRef)(new Set);(0,n.useEffect)(()=>{f.current?.(c);for(let e of c)e.progress===100&&!m.current.has(e.key)&&(m.current.add(e.key),p.current?.(e))},[c]);let h=(0,n.useCallback)((e,t)=>{l(n=>n.map(n=>n.key===e?{...n,...t}:n))},[]),g=(0,n.useCallback)(e=>{l(t=>t.filter(t=>t.key!==e)),m.current.delete(e)},[]),_=(0,n.useCallback)(e=>{l(t=>{let n=[...t];return e.forEach(e=>{let t={key:e.name,fileName:e.name,size:e.size,type:e.type,progress:0,url:``,base64:``,variants:{}},r=n.findIndex(t=>t.key===e.name);r===-1?n.push(t):n[r]=t}),n}),e.forEach(e=>{let t=new FileReader;t.onprogress=t=>{t.lengthComputable&&h(e.name,{progress:Math.round(t.loaded/t.total*75)})},t.onloadend=async()=>{let n=le(t.result),a=`data:${e.type};base64,${n}`;if(h(e.name,{base64:n,progress:80}),i?.length)try{let{variants:t,naturalWidth:n}=await Ur(a,i),o=u&&r?await Wr(t,u,r,e.name):t.map(e=>({url:e.localUrl,width:e.width})),s=e.name.split(`.`).pop()??`jpg`,c=e.name.replace(/\.[^/.]+$/,``),l=u&&r?await u.upload(a,`${r}/${c}_${n}w.${s}`):void 0,d=l??(u&&r?a:URL.createObjectURL(await fetch(a).then(e=>e.blob()))),f=[...o,{url:d,width:n}];if(f.length>0){h(e.name,{url:d,srcset:Gr(f),sizes:`(max-width: 640px) 100vw, 800px`,progress:100,...l?{base64:void 0}:{}});return}}catch{}else if(u&&r)try{let t=await u.upload(a,`${r}/${e.name}`);if(t){h(e.name,{url:t,progress:100,base64:void 0});return}}catch{}h(e.name,{progress:100})},t.readAsArrayBuffer(e)}),d.current&&(d.current.value=``)},[u,r,i,h]);return{files:c,setFiles:l,fileInputRef:d,updateFile:h,handleFiles:_,handleUpload:()=>d.current?.click(),handleUploadChange:(0,n.useCallback)(e=>{_(Array.from(e.target.files??[]))},[_]),handleRemove:g}},Fi=(e,t,r,i,a,o,s)=>{let{value:c,handleChange:l,formWrapClass:u}=Ec({name:e,onChange:t,wrapperClassName:r}),[d,f]=(0,n.useState)(null),p=(0,n.useRef)(c),m=(0,n.useRef)(new WeakSet),h=Pi({initialFiles:Array.isArray(c)?c:[],onFilesChange:t=>{p.current=t,m.current.add(t),l({target:{name:e,value:t}})},uploadPath:i,srcsetWidths:a,storageKey:o,storageProvider:s});(0,n.useEffect)(()=>{if(c===p.current||Array.isArray(c)&&m.current.has(c))return;let e=Array.isArray(c)?c:[];p.current=c,(e.length!==0||h.files.length!==0)&&h.setFiles(e)},[c]);let g=e=>{d&&(h.updateFile(d.key,e),f(null))};return{...h,formWrapClass:u,currentFile:d,handleSave:g,handleEdit:e=>f(e),handleClose:()=>f(null)}},Ii=({name:e,fileInputRef:t,accept:r,onUpload:i,onChange:a,required:o=!1,multiple:s=!1,height:c,width:l,feedback:u})=>n.default.createElement(n.default.Fragment,null,n.default.createElement(`button`,{type:`button`,onClick:i,className:`flex flex-col items-center justify-center rounded-lg border-2 border-dashed border-muted-foreground/25 bg-muted/30 text-muted-foreground/50 transition-all hover:border-primary/40 hover:bg-primary/5 hover:text-primary/60 cursor-pointer`,style:{width:l,height:c}},n.default.createElement(Q,{name:`upload`,className:`w-8 h-8`}),u&&n.default.createElement(`span`,{className:`mt-1.5 max-w-full px-1.5 text-center text-[10px] font-medium leading-tight whitespace-pre-wrap`},u)),n.default.createElement(`input`,{name:e,type:`file`,accept:r,ref:t,multiple:s,required:o,className:`hidden`,onChange:a})),Li=({title:e,file:t,type:r,onSave:i,onClose:a})=>{let o=Y(`crop`),[s,c]=(0,n.useState)(t.fileName),l=(0,n.useRef)(null);return n.default.createElement(si,{title:e,onSave:async()=>(i?.(l.current?l.current.handleSave():{fileName:s,variants:{}}),!0),onClose:a,size:r===`img`?`fullscreen`:void 0},r===`document`&&n.default.createElement(Ni,{value:s,onChange:c,label:o.fileName}),r===`img`&&n.default.createElement(Ei,{ref:l,img:t}))},Ri=(e,t,n)=>e.length<t&&(n||e.length===0),zi=new Map,Bi=(e,t=`origin`)=>{if(e.url)return e.url;if(e.base64){let n=`${e.fileName} ${t}`;return zi.has(n)||zi.set(n,K(e.base64,e.type)??`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InRyYW5zcGFyZW50Ii8+PGNpcmNsZSBjeD0iNjUiIGN5PSIzNSIgcj0iMTAiIGZpbGw9IiM5Y2EzYWYiLz48cGF0aCBkPSJNMTAsNzUgTDMyLDUwIEw1Miw3MCBMNjgsNTIgTDkwLDcyIEw5MCw4MCBIMTAgWiIgZmlsbD0iIzljYTNhZiIvPjwvc3ZnPg==`),zi.get(n)??`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InRyYW5zcGFyZW50Ii8+PGNpcmNsZSBjeD0iNjUiIGN5PSIzNSIgcj0iMTAiIGZpbGw9IiM5Y2EzYWYiLz48cGF0aCBkPSJNMTAsNzUgTDMyLDUwIEw1Miw3MCBMNjgsNTIgTDkwLDcyIEw5MCw4MCBIMTAgWiIgZmlsbD0iIzljYTNhZiIvPjwvc3ZnPg==`}return``},Vi=({name:e,onChange:t=void 0,label:r=void 0,required:i=!1,editable:a=!1,multiple:o=!1,max:s=100,accept:c=`.pdf,.doc,.docx,.txt,.iso`,uploadPath:l=void 0,storageKey:u=void 0,storageProvider:d=void 0,before:f=void 0,after:p=void 0,wrapperClassName:m=void 0,className:h=void 0})=>{let{files:g,currentFile:_,fileInputRef:v,formWrapClass:y,handleFiles:b,handleUploadChange:x,handleUpload:S,handleRemove:C,handleSave:w,handleEdit:T,handleClose:E}=Fi(e,t,m,l,void 0,u,d),D=Tc(e,{required:i,label:r}),O=Y(`upload`),[k,A]=(0,n.useState)(!1),j=Ri(g,s,o),M=e=>{e.preventDefault(),j&&A(!0)},N=()=>A(!1),P=e=>{e.preventDefault(),A(!1),j&&b(o?Array.from(e.dataTransfer.files):[e.dataTransfer.files[0]])};return n.default.createElement(Z,{className:y},f,n.default.createElement(`div`,{className:h},r&&n.default.createElement(hl,{label:r,required:i}),j&&g.length===0&&n.default.createElement(`button`,{type:`button`,onClick:S,onDragOver:M,onDragLeave:N,onDrop:P,className:[`w-full flex flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed py-8 px-4 transition-colors cursor-pointer`,k?`border-primary/60 bg-primary/8 text-primary`:`border-muted-foreground/25 bg-muted/30 text-muted-foreground hover:border-primary/40 hover:bg-primary/5 hover:text-primary/70`].join(` `)},n.default.createElement(Q,{name:`upload`,className:`w-8 h-8`}),n.default.createElement(`span`,{className:`text-sm font-medium`},k?O.dropToUpload:O.clickOrDrag),n.default.createElement(`span`,{className:`text-xs opacity-60`},c)),g.length>0&&n.default.createElement(`div`,{className:`rounded-lg border border-border overflow-hidden`},n.default.createElement(`table`,{className:`w-full text-sm`},n.default.createElement(`tbody`,null,g.map(e=>n.default.createElement(`tr`,{key:e.key,className:`border-b border-border last:border-0 ${a?`cursor-pointer hover:bg-muted/40`:``}`,onClick:()=>a&&T(e)},n.default.createElement(`td`,{className:`px-3 py-2.5`},n.default.createElement(`div`,{className:`flex items-center gap-2`},n.default.createElement(Q,{name:`file`,className:`w-4 h-4 shrink-0 text-muted-foreground`}),e.progress===100?n.default.createElement(`a`,{href:Bi(e),target:`_blank`,rel:`noopener noreferrer`,className:`hover:underline truncate max-w-xs`,onClick:e=>e.stopPropagation()},e.fileName):n.default.createElement(`span`,{className:`truncate max-w-xs text-muted-foreground`},e.fileName))),n.default.createElement(`td`,{className:`px-3 py-2.5 text-muted-foreground text-right whitespace-nowrap w-24`},e.progress===100?(e.size/1024).toFixed(2)+` KB`:n.default.createElement(bi,{max:100,min:0,value:e.progress,appearance:`bar`})),n.default.createElement(`td`,{className:`px-3 py-2.5 w-10 text-right`},n.default.createElement(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),C(e.key)},className:`flex items-center justify-center w-6 h-6 rounded-full text-muted-foreground hover:bg-red-50 hover:text-red-500 transition-colors ml-auto cursor-pointer`},n.default.createElement(Q,{name:`x`,className:`w-3.5 h-3.5`}))))))),j&&n.default.createElement(`div`,{className:`px-3 py-2 border-t border-border bg-muted/20 ${k?`bg-primary/5`:``}`,onDragOver:M,onDragLeave:N,onDrop:P},n.default.createElement(`button`,{type:`button`,onClick:S,className:`flex items-center gap-1.5 text-xs text-muted-foreground hover:text-primary transition-colors cursor-pointer`},n.default.createElement(Q,{name:`upload`,className:`w-3.5 h-3.5`}),O.uploadMore))),n.default.createElement(`input`,{name:e,type:`file`,accept:c,ref:v,multiple:o,required:i,className:`hidden`,onChange:x}),D&&n.default.createElement(Xc,{message:D})),a&&_&&n.default.createElement(Li,{title:O.editFileName,file:_,type:`document`,onSave:w,onClose:E}),p)},Hi=({name:e,onChange:t=void 0,label:r=void 0,feedback:i=void 0,editable:a=!1,multiple:o=!1,accept:s=`image/*`,required:c=!1,max:l=100,previewHeight:u=100,previewWidth:d=100,uploadPath:f=void 0,srcsetWidths:p=void 0,storageKey:m=void 0,storageProvider:h=void 0,allowUrl:g=!1,before:_=void 0,after:v=void 0,wrapperClassName:y=void 0,className:b=void 0})=>{let{files:x,setFiles:S,currentFile:C,fileInputRef:w,formWrapClass:T,handleUploadChange:E,handleUpload:D,handleRemove:O,handleSave:k,handleEdit:A,handleClose:j}=Fi(e,t,y,f,p,m,h),M=Tc(e,{required:c,label:r}),N=Y(`upload`),[P,F]=(0,n.useState)(null),[I,L]=(0,n.useState)(new Set),[R,z]=(0,n.useState)(!1),[B,ee]=(0,n.useState)(``),[V,H]=(0,n.useState)(void 0),U=async()=>{let e=B.trim();try{new URL(e)}catch{return H(N.invalidUrl),!1}let t={key:e,fileName:e.split(`/`).pop()||`image`,size:0,type:``,progress:100,url:e,base64:``,variants:{}};return S(e=>o?[...e,t]:[t]),ee(``),H(void 0),z(!1),!0},te=()=>{z(!1),ee(``),H(void 0)},ne=(e,t)=>{let n=e.currentTarget,r=n.naturalWidth>0&&n.naturalHeight>0&&(n.naturalWidth<d||n.naturalHeight<u);L(e=>{let n=new Set(e);return r?n.add(t):n.delete(t),n})},re=({scales:e})=>{if(!e)return;let t=Object.keys(e);return t.length===0?null:t.map(t=>n.default.createElement(Mt,{key:t},n.default.createElement(`a`,{href:Bi(e[t],t),className:`text-white`,target:`_blank`,rel:`noopener noreferrer`},t)))};return n.default.createElement(Z,{className:T},_,n.default.createElement(Z,{className:b},r&&n.default.createElement(hl,{label:r,required:c}),n.default.createElement(`div`,{className:`flex gap-2 flex-wrap`},x.map((e,t)=>n.default.createElement(`div`,{key:t,className:`relative overflow-hidden rounded-lg border border-border`,style:{width:d,height:u},onMouseEnter:()=>F(t),onMouseLeave:()=>F(null)},e.progress===100?n.default.createElement(n.default.Fragment,null,I.has(e.key)&&n.default.createElement(n.default.Fragment,null,n.default.createElement(`div`,{className:`absolute inset-0 dark:hidden`,style:{backgroundColor:`#f0f0f0`,backgroundImage:`linear-gradient(45deg,#dcdcdc 25%,transparent 25%),linear-gradient(-45deg,#dcdcdc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#dcdcdc 75%),linear-gradient(-45deg,transparent 75%,#dcdcdc 75%)`,backgroundSize:`10px 10px`,backgroundPosition:`0 0,0 5px,5px -5px,-5px 0`}}),n.default.createElement(`div`,{className:`absolute inset-0 hidden dark:block`,style:{backgroundColor:`#1a1a1a`,backgroundImage:`linear-gradient(45deg,#272727 25%,transparent 25%),linear-gradient(-45deg,#272727 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#272727 75%),linear-gradient(-45deg,transparent 75%,#272727 75%)`,backgroundSize:`10px 10px`,backgroundPosition:`0 0,0 5px,5px -5px,-5px 0`}})),n.default.createElement(`img`,{src:Bi(e),alt:`preview-${t}`,className:`absolute inset-0 w-full h-full ${I.has(e.key)?`object-contain p-1`:`object-cover`}`,onLoad:t=>ne(t,e.key)}),n.default.createElement(`div`,{className:`absolute inset-0 bg-black/55 backdrop-blur-[1px] flex flex-col items-center justify-end pb-2 gap-1 transition-opacity`,style:{display:P===t?`flex`:`none`}},n.default.createElement(`div`,{className:`flex items-center gap-1.5`},n.default.createElement(`a`,{href:Bi(e),target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center justify-center w-7 h-7 rounded-full bg-white/20 hover:bg-white/35 text-white transition-colors`},n.default.createElement(Q,{name:`eye`,className:`w-4 h-4`})),a&&n.default.createElement(`button`,{type:`button`,onClick:()=>A(e),className:`flex items-center justify-center w-7 h-7 rounded-full bg-white/20 hover:bg-white/35 text-white transition-colors cursor-pointer`},n.default.createElement(Q,{name:`pencil`,className:`w-4 h-4`})),n.default.createElement(`button`,{type:`button`,onClick:t=>{t.preventDefault(),t.stopPropagation(),O(e.key)},className:`flex items-center justify-center w-7 h-7 rounded-full bg-red-500/70 hover:bg-red-500/90 text-white transition-colors cursor-pointer`},n.default.createElement(Q,{name:`x`,className:`w-4 h-4`}))),a&&e.variants&&Object.keys(e.variants).length>0&&n.default.createElement(`div`,{className:`flex flex-wrap gap-1 px-1`},n.default.createElement(re,{scales:e.variants})))):n.default.createElement(bi,{max:100,min:0,value:e.progress,appearance:`circle`}))),Ri(x,l,o)&&n.default.createElement(`div`,{className:`relative`,style:{width:d,height:u}},n.default.createElement(Ii,{name:e,fileInputRef:w,accept:s,onUpload:D,onChange:E,required:c,multiple:o,height:u,width:d,feedback:i}),g&&n.default.createElement(`button`,{type:`button`,onClick:()=>z(!0),title:N.insertFromUrl,"aria-label":N.insertFromUrl,className:`absolute -right-2 -top-2 flex h-6 w-6 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-muted-foreground shadow-sm transition-colors hover:text-primary`},n.default.createElement(Q,{name:`link`,className:`w-3.5 h-3.5`})))),M&&n.default.createElement(Xc,{message:M})),a&&C&&n.default.createElement(Li,{title:N.editorImage,file:C,type:`img`,onSave:k,onClose:j}),g&&R&&n.default.createElement(si,{title:N.insertFromUrl,onSave:U,onClose:te,size:`sm`},n.default.createElement(`div`,{className:`flex flex-col gap-1`},n.default.createElement(`input`,{type:`url`,autoFocus:!0,value:B,onChange:e=>{ee(e.target.value),H(void 0)},placeholder:N.urlPlaceholder,className:`h-9 w-full rounded-md border border-input bg-background px-2.5 text-sm focus:outline-none focus:ring-1 focus:ring-ring`}),V&&n.default.createElement(Xc,{message:V}))),v)},Ui={US:`United States`,CN:`中国`,IT:`Italia`,FR:`France`,DE:`Deutschland`,ES:`España`,PT:`Portugal`,RU:`Россия`,JP:`日本`},Wi={it:`Italiano`,en:`English`,fr:`Français`,de:`Deutsch`,es:`Español`,pt:`Português`,ru:`Русский`,ja:`日本語`,ko:`한국어`},Gi=(e=!1)=>{let t=typeof localStorage<`u`?localStorage.getItem(`user.country`):null,n=typeof navigator<`u`?navigator.language.split(`-`)[1]:null,r=t||n||`US`;return e?r:Ui[r]},Ki=(e=!1)=>{let t=typeof localStorage<`u`?localStorage.getItem(`user.lang`):null,n=typeof navigator<`u`?navigator.language.split(`-`)[0]:null,r=t||n||`en`;return e?r:Wi[r]},qi=`Please ignore all previous instructions.`,Ji=`Do not repeat yourself. Do not self reference. Do not explain what you are doing.`;`${qi}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`;var Yi=`default`,Xi=`Informative`,Zi=`Argumentative`,Qi=`Authoritative.Caring.Casual.Cheerful.Coarse.Conservative.Conversational.Creative.Dry.Edgy.Enthusiastic.Expository.Formal.Frank.Friendly.Fun.Funny.Humorous.Informative.Irreverent.Journalistic.Matter of fact.Nostalgic.Objective.Passionate.Poetic.Playful.Professional.Provocative.Quirky.Respectful.Romantic.Sarcastic.Serious.Smart.Snarky.Subjective.Sympathetic.Trendy.Trustworthy.Unapologetic.Upbeat.Witty`.split(`.`),$i=[`Academic`,`Analytical`,`Argumentative`,`Conversational`,`Creative`,`Critical`,`Descriptive`,`Epigrammatic`,`Epistolary`,`Expository`,`Informative`,`Instructive`,`Journalistic`,`Metaphorical`,`Narrative`,`Persuasive`,`Poetic`,`Satirical`,`Technical`],ea={default:`You are a highly skilled and versatile AI assistant who can adapt to any task or context. You write in fluent {language}, using a {voice} tone of voice and a {style} writing style. You provide clear, concise, and well-structured responses, ensuring both accuracy and creativity according to the user's needs.`,copywriter:`You are an expert copywriter who writes catchy text in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,seo_expert:`You are an experienced SEO specialist who writes optimized, keyword-rich content in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,storyteller:`You are a talented storyteller who crafts engaging narratives in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,translator:`You are a professional translator who accurately translates content into {language}, maintaining meaning, nuance, and cultural relevance. You have a {voice} tone of voice. You have a {style} writing style.`,marketing_strategist:`You are a skilled marketing strategist who creates persuasive campaigns in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,teacher:`You are a knowledgeable teacher who explains concepts clearly and simply in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,technical_writer:`You are a precise and detail-oriented technical writer who produces clear documentation in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,interviewer:`You are a skilled interviewer who formulates relevant and engaging questions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,product_describer:`You are an e-commerce product description specialist who writes compelling, benefit-focused descriptions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,social_media_manager:`You are a creative social media manager who writes engaging, platform-specific posts in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,ux_writer:`You are a UX writer who creates clear, concise, and user-friendly interface text in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,press_officer:`You are an experienced press officer who writes impactful press releases in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,legal_drafter:`You are a legal expert who drafts precise and compliant legal texts in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,recruiter:`You are a professional recruiter who writes compelling job descriptions and outreach messages in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,news_reporter:`You are a news reporter who writes objective and concise news articles in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,search_intent_analyst:`You are a keyword research expert who analyzes search intent from given keywords and writes in fluent {language}.`,keyword_generator:`You are a keyword research expert who generates related keywords in fluent {language}.`,long_tail_keyword_generator:`You are a keyword research expert who generates long-tail keywords in fluent {language}.`,seo_content_planner:`You are a market research expert and SEO strategist who develops a full SEO content plan in fluent {language}.`,blog_title_specialist:`You are an expert copywriter who writes catchy blog after titles in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,blog_description_specialist:`You are an expert copywriter who writes compelling blog after descriptions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,blog_outline_specialist:`You are an expert copywriter who creates structured content outlines in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,blog_writer_from_outline:`You are an expert copywriter who writes complete blog posts from outlines in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,blog_writer_from_topic:`You are an expert copywriter who writes complete blog posts from topics in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,blog_intro_specialist:`You are an expert copywriter who writes engaging introductions using known copywriting frameworks in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,paragraph_writer:`You are an expert copywriter who writes single, impactful paragraphs in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,dictionary_writer:`You are a copywriter who writes concise and clear definitions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,creative_free_writer:`You are an expert copywriter who writes any kind of catchy text in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`},ta=class{static getRoles(){return Object.keys(ea)}static getLangs(){return Object.values(Wi)}static getCountries(){return Object.values(Ui)}static getVoices(){return Qi}static getStyles(){return $i}static defaults(){return{role:Yi,language:Ki(),country:Gi(),voice:localStorage.getItem(`prompt.voice`)||Xi,style:localStorage.getItem(`prompt.style`)||Zi}}static parseRole(e,t={}){return E.parse({...this.defaults(),...t},ea[e??this.defaults().role])}static parsePrompt(e,t={}){return E.parse({...this.defaults(),...t},e)}},na=e=>e.pricing!==void 0&&e.pricing.input===0&&e.pricing.output===0,ra=(e,t)=>`${e}/${t}`,ia=e=>{if(!e)return null;let t=e.indexOf(`/`);return t<=0||t===e.length-1?null:{provider:e.slice(0,t),model:e.slice(t+1)}},aa=(0,n.createContext)(null),oa=({registry:e,defaultKey:t,children:r})=>{let i=(0,n.useMemo)(()=>({registry:e,defaultKey:t}),[e,t]);return n.default.createElement(aa.Provider,{value:i},r)},sa=e=>{let t=(0,n.useContext)(aa);if(!t)return null;let r=e??t.defaultKey;return t.registry[r]??null},ca=()=>(0,n.useContext)(aa),la=void 0,ua=(0,n.createContext)(null),da=(0,n.createContext)(()=>{}),fa=new Set,pa=e=>{fa.add(e),la&&e(la,null)},ma=({children:e,defaultConfig:t})=>{let[r,i]=(0,n.useState)(ha(t)),a=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let e=a.current;if(e!==r){la=r;for(let t of fa)t(r,e)}a.current=r},[r]),n.default.createElement(ua.Provider,{value:r},n.default.createElement(da.Provider,{value:i},n.default.createElement(An,null,e)))},ha=e=>{la=e;for(let e of fa)e(la,null);return la},ga=()=>la,_a=`x-llmnative-proxy`,va=e=>{if(!e||e.startsWith(`/`))return!1;try{let t=new URL(e);if(typeof window<`u`){let e=new URL(window.location.href);if(t.origin===e.origin||[`localhost`,`127.0.0.1`].includes(t.hostname)&&[`localhost`,`127.0.0.1`].includes(e.hostname))return!1}return!0}catch{return!1}},ya=null,ba=e=>{ya=e??null};pa(e=>{ba(e.proxy)});var xa=(e,n,r)=>t.l(e)||[...new Headers(n instanceof Request?n.headers:r?.headers).values()].some(t.l),Sa=(e,t,n)=>xa(e,t,n)?Promise.reject(Error(`This AI provider uses credentials held by the server: enable the proxy (providers.proxy.enabled) so that the server adds the key.`)):globalThis.fetch(t,n),Ca=(e,t)=>{let n=typeof e==`string`?e:e instanceof URL?e.toString():e.url;if(!ya?.enabled)return Sa(n,e,t);if(!va(n)&&!xa(n,e,t))return globalThis.fetch(e,t);let r=ya.route?.trim()||`/api/proxy`,i=`${r}${r.includes(`?`)?`&`:`?`}url=${encodeURIComponent(n)}`,a=e instanceof Request?e.headers:t?.headers,o=new Headers(a);o.set(_a,`1`);let s=(e instanceof Request?e.method:t?.method??`GET`).toUpperCase(),c=[`GET`,`HEAD`].includes(s)?void 0:t?.body??(e instanceof Request?e.body:void 0);return globalThis.fetch(i,{method:s,headers:o,body:c,...c instanceof ReadableStream?{duplex:`half`}:{},signal:t?.signal??(e instanceof Request?e.signal:void 0)})},wa=()=>Ca,Ta=()=>!!ya?.enabled,Ea=`ai.models.v3.`,Da=864e5,Oa=/claude-(?:fable|mythos|opus|sonnet|haiku)-(?:[5-9]|4-[6-9])(?![0-9])/,ka=/claude-(?:opus-4-[6-8]|sonnet-4-6)(?![0-9])/;function Aa(e,t){return!t||!e||!Oa.test(e)?{}:{output_config:{effort:t},...ka.test(e)?{thinking:{type:`adaptive`}}:{}}}var ja=/(?:^|\/)(?:o[1-9]|gpt-5)/i;function Ma(e,t,n=`openai`){if(!t||!e)return{};let r=t===`max`?`high`:t;return n===`openrouter`?{reasoning:{effort:r}}:ja.test(e)?{reasoning_effort:r}:{}}var Na=e=>{if(e instanceof Error)return e.message;if(typeof e==`object`&&e){let t=e;if(t.error&&typeof t.error==`object`){let e=t.error;if(typeof e.message==`string`)return e.message;if(typeof e.type==`string`)return e.type}if(typeof t.error==`string`)return t.error;if(Array.isArray(t.errors)&&t.errors.length>0){let e=t.errors[0];if(e&&typeof e.message==`string`)return e.message}if(typeof t.message==`string`)return t.message;if(typeof t.detail==`string`)return t.detail;if(typeof t.status==`number`)return`HTTP ${t.status}`;try{return JSON.stringify(t)}catch{}}return String(e)},Pa=e=>{let t=Ta()?`The proxy is enabled but the request still failed - check that the proxy route is reachable.`:`No proxy is enabled. Cross-origin AI requests are blocked by CORS in the browser. Set VITE_PROXY_ENABLED=true and VITE_PROXY_PROVIDER=viteDevProxy to route requests server-side.`;return Error(`${e} request failed (CORS). ${t}`)},Fa=e=>typeof e==`string`?e:Array.isArray(e)&&e.map(e=>typeof e==`string`?e:e&&typeof e==`object`&&`text`in e&&typeof e.text==`string`?e.text:``).filter(Boolean).join(`
|
|
5
|
-
`)||null,Ia=e=>{if(typeof localStorage>`u`)return null;try{let t=localStorage.getItem(`${Ea}${e}`);if(!t)return null;let n=JSON.parse(t);return!n.fetchedAt||!Array.isArray(n.items)||Date.now()-n.fetchedAt>Da?null:n.items}catch{return null}},La=(e,t)=>{if(typeof localStorage<`u`)try{localStorage.setItem(`${Ea}${e}`,JSON.stringify({fetchedAt:Date.now(),items:t}))}catch{}},Ra=(e,t,n)=>n.map(n=>{let{model:r,pricing:i}=typeof n==`string`?{model:n,pricing:void 0}:n;return{id:ra(e,r),provider:e,model:r,label:`${t} / ${r}`,providerLabel:t,...i?{pricing:i}:{}}}),za=async(e,t=!1)=>{let n=await Promise.all(Object.entries(e).map(async([e,n])=>{try{return[e,await n.getCapabilities(t)]}catch(t){return console.warn(`getAIModelCatalog: provider "${e}" getCapabilities() failed`,t),[e,{models:[]}]}})),r=n.reduce((e,[t,n])=>(e[t]=n,e),{}),i=n.reduce((e,[t,n])=>(e[t]=n.models,e),{}),a=new Set;return{models:n.flatMap(([,e])=>e.models).filter(e=>!a.has(e.id)&&(a.add(e.id),!0)),modelsByProvider:i,capabilitiesByProvider:r}},Ba=class{id;label;defaultModel;dashboardUrl;definition;apiKey;constructor(e,t){this.definition=e,this.id=e.id,this.label=e.label,this.defaultModel=e.defaultModel,this.dashboardUrl=e.dashboardUrl,this.apiKey=t}isConfigured(){return!!this.apiKey}getConfigurationState(){let e=this.definition.requiredConfigKeys??(this.definition.configKey?[`ai.${this.definition.configKey}`]:[]);return Vn(`AIProvider:${this.id}`,this.isConfigured()?[]:e)}async getCapabilities(e=!1){let n=e?null:Ia(this.id);if(n)return{...this.definition.capabilities,models:n.map(e=>e.providerLabel?e:{...e,providerLabel:this.label})};let r=Ra(this.id,this.label,this.definition.fallbackModels);try{let e=await this.definition.discoverModels(this.apiKey);e.length>0&&(r=Ra(this.id,this.label,e))}catch(e){console.warn(`AIProvider:${this.id} model discovery failed`,e)}return r=await t.o(this.id,r),La(this.id,r),{...this.definition.capabilities,models:r}}complete(e){return this.definition.complete(this.apiKey,{...e,model:e.model||this.defaultModel,prompt:ta.parsePrompt(e.prompt,{...e.data,...e})})}async validateApiKey(){let e=this.definition.dashboardUrl;if(this.definition.validateApiKey)return{...await this.definition.validateApiKey(this.apiKey),dashboardUrl:e};try{return await this.definition.discoverModels(this.apiKey),{valid:!0,dashboardUrl:e}}catch(t){return{valid:!1,error:Na(t),dashboardUrl:e}}}},Va={"gpt-4o":128e3,"gpt-4o-mini":128e3,"gpt-4-turbo":128e3,"gpt-4":8192,"gpt-3.5-turbo":16385,"claude-opus-4-8":2e5,"claude-sonnet-4-6":2e5,"claude-haiku-4-5":2e5,"claude-3-5-sonnet-20241022":2e5,"claude-3-5-haiku-20241022":2e5,"gemini-2.0-flash":1048576,"gemini-1.5-pro":2097152,"gemini-1.5-flash":1048576,"deepseek-chat":64e3,"deepseek-coder":128e3,"mistral-large-latest":131072,"mistral-medium":32768,"mistral-small-latest":131072,"open-mistral-nemo":128e3,"llama-3.1-70b-instruct":131072,"llama-3.1-8b-instruct":131072},Ha={"gpt-4o":[2.5,10],"gpt-4o-mini":[.15,.6],"gpt-4-turbo":[10,30],"gpt-4":[30,60],"gpt-3.5-turbo":[.5,1.5],"claude-opus-4-8":[15,75],"claude-sonnet-4-6":[3,15],"claude-haiku-4-5":[.8,4],"claude-3-5-sonnet-20241022":[3,15],"claude-3-5-haiku-20241022":[.8,4],"gemini-2.0-flash":[.1,.4],"gemini-1.5-pro":[1.25,5],"gemini-1.5-flash":[.075,.3],"deepseek-chat":[.14,.28],"mistral-large-latest":[2,6],"mistral-medium":[2.7,8.1],"mistral-small-latest":[.1,.3]},Ua=e=>ia(e)?.model??e,Wa=/^text\/|^application\/(json|csv|xml|javascript|typescript)/,Ga=e=>new Promise((t,n)=>{if(typeof FileReader>`u`){n(Error(`FileReader is not available in this environment.`));return}let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(r.error??Error(`Failed to read file "${e.name}".`)),r.readAsDataURL(e)}),Ka={countTokens(e){return Math.ceil(e.length/4)},modelContextWindow(e){return Va[Ua(e)]??null},contextPercent(e,t){let n=Ka.modelContextWindow(t);return!n||n<=0?0:Math.min(100,e/n*100)},estimateCost(e,t,n){let r=Ha[Ua(n)];return r?(e*r[0]+t*r[1])/1e6:NaN},async fileToAttachment(e){let t=await Ga(e),n=t.includes(`,`)?t.split(`,`)[1]:``;return{mimeType:e.type||`application/octet-stream`,base64:n,name:e.name}},isTextAttachment(e){return Wa.test(e)},decodeBase64Text(e){try{let t=globalThis.atob(e),n=Uint8Array.from(t,e=>e.charCodeAt(0));return new TextDecoder(`utf-8`).decode(n)}catch{return``}}},qa=({menuKey:e,as:t=`ul`,badges:i={},before:a=void 0,after:o=void 0,wrapperClassName:s=void 0,className:c=void 0,headerClassName:l=void 0,itemClassName:u=void 0,linkClassName:d=void 0,iconClassName:f=void 0,textClassName:p=void 0,badgeClassName:m=void 0,arrowClassName:h=void 0,submenuClassName:g=void 0})=>{let _=pv(e),v=q(`menu`),y=({item:e,index:a})=>{let[o,s]=(0,n.useState)(e.active);(0,n.useEffect)(()=>{s(e.active)},[e]);let c=(e.children?.length??0)>0,_=(e.title??``).toLowerCase(),b=()=>n.default.createElement(`span`,{className:f??v.Menu.iconClassName},n.default.createElement(Q,{name:e.icon}));return e.path?n.default.createElement(`li`,{className:X(u??v.Menu.itemClassName)},n.default.createElement(r.Link,{to:e.path.split(`*`)[0],className:X(d??v.Menu.linkClassName,e.active&&`bg-primary/10 text-primary`),...c&&{},onClick:e=>{c&&!ce(e,`a`)&&(e.preventDefault(),s(e=>!e))}},e.icon&&n.default.createElement(b,null),n.default.createElement(`span`,{className:p??v.Menu.textClassName},e.title),i[_]&&n.default.createElement(Mt,{variant:i[_].type,className:m??v.Menu.badgeClassName},i[_].children),c&&n.default.createElement(`span`,{className:X(h??v.Menu.arrowClassName,`ml-auto inline-flex shrink-0 items-center justify-center text-muted-foreground transition-transform duration-200`,o&&`rotate-90`)},n.default.createElement(Q,{name:`chevron-right`,size:14}))),c&&n.default.createElement(`div`,{className:X(`grid transition-[grid-template-rows,opacity] duration-200 ease-out`,o?`grid-rows-[1fr] opacity-100`:`grid-rows-[0fr] opacity-0`)},n.default.createElement(`div`,{className:`min-h-0 overflow-hidden`},(()=>{let r=t;return n.default.createElement(r,{className:g??v.Menu.submenuClassName},e.children.map((e,t)=>n.default.createElement(y,{key:t,item:e,index:t})))})()))):n.default.createElement(`li`,{key:a,className:l??v.Menu.headerClassName},e.icon&&n.default.createElement(b,null),e.title&&(/^-+$/.test(e.title)?n.default.createElement(`hr`,{className:`m-0`}):n.default.createElement(`span`,null,e.title)))},b=t;return n.default.createElement(Z,{className:s??v.Menu.wrapperClassName},a,n.default.createElement(b,{className:c??v.Menu.className},_.map((e,t)=>n.default.createElement(y,{key:t,item:e,index:t}))),o)},Ja=n.default.createContext(null),Ya=({children:e,trigger:t,badge:r=void 0,header:i=void 0,footer:a=void 0,defaultOpen:o=!1,open:s=void 0,onOpenChange:l=void 0,closeOnSelect:u=!0,staticOpen:d=!1,position:f=void 0,placement:p=`bottom`,strategy:m=`fixed`,wrapperClassName:h=void 0,className:g=void 0,before:_=void 0,after:v=void 0,triggerClassName:y=void 0,menuClassName:b=void 0,badgeClassName:x=void 0,headerClassName:S=void 0,footerClassName:C=void 0,motion:w=void 0})=>{let T=q(`dropdown`),[E,D]=n.default.useState(o),O=n.default.useRef(null),k=n.default.useRef(null),A=n.default.useRef(null),j=n.default.useId(),M=d?!0:s??E,[N,P]=n.default.useState(`bottom`),[F,I]=n.default.useState(void 0),[L,R]=n.default.useState(null),z=!d&&t!==void 0,B=Bt(M,w??T.Dropdown.motion?.open??`fadeDown`,T.Dropdown.motion?.open??`fadeDown`),ee=n.default.useCallback(e=>{d||(s===void 0&&D(e),l?.(e))},[d,s,l]);n.default.useEffect(()=>{if(!M||d)return;let e=e=>{let t=e.target;!O.current?.contains(t)&&!A.current?.contains(t)&&ee(!1)},t=e=>{e.key===`Escape`&&ee(!1)};return window.document.addEventListener(`pointerdown`,e),window.document.addEventListener(`keydown`,t),()=>{window.document.removeEventListener(`pointerdown`,e),window.document.removeEventListener(`keydown`,t)}},[d,M,ee]),n.default.useEffect(()=>{if(!M||d||!k.current)return;let e=k.current.getBoundingClientRect(),t=window.innerHeight-e.bottom-8,n=e.top-8,r;if(p===`auto`?(r=t<(A.current?A.current.scrollHeight:240)+8&&n>t?`top`:`bottom`,P(r)):r=p===`top`?`top`:`bottom`,I(Math.max(160,r===`top`?n:t)),m===`absolute`)return;let i=f===`end`;R(r===`top`?{bottom:window.innerHeight-e.top+4,...i?{right:window.innerWidth-e.right}:{left:e.left}}:{top:e.bottom+4,...i?{right:window.innerWidth-e.right}:{left:e.left}})},[M,p,f,d,m]);function V(e){return typeof e==`object`&&!!e&&!n.default.isValidElement(e)&&(`icon`in e||`text`in e)}let H=z?n.default.createElement(Za,{className:y,badge:r,badgeClassName:x,motion:w,title:V(t)?t.title:void 0,onToggle:()=>ee(!M),open:M,menuId:j,buttonRef:k},V(t)?n.default.createElement(n.default.Fragment,null,t.icon&&n.default.createElement(Q,{name:t.icon,className:t.text?`mr-2`:void 0}),t.text):t):null,U=h??T.Dropdown.wrapperClassName??(_||v?`flex items-center gap-2`:void 0),te=N===`top`?`bottom-full mb-1`:`top-full mt-1`,ne=f===`end`?`right-0`:`left-0`,re=n.default.createElement(Ja.Provider,{value:{closeOnSelect:u,close:()=>ee(!1)}},n.default.createElement(`div`,{ref:A,id:j,role:`menu`,"aria-hidden":!M,className:X(`min-w-56 overflow-y-auto rounded-xl border border-border/60 bg-popover/95 p-1 text-popover-foreground shadow-xl shadow-black/5 outline-none backdrop-blur supports-[backdrop-filter]:bg-popover/90 dark:shadow-black/20`,d?`relative`:m===`absolute`?`absolute z-[200] ${te} ${ne}`:`fixed z-[200]`,b||T.Dropdown.menuClassName),style:d?void 0:{...B,opacity:+!!M,visibility:M?`visible`:`hidden`,pointerEvents:M?void 0:`none`,maxHeight:F,minWidth:k.current?k.current.offsetWidth:void 0,...m===`fixed`?L??{}:{}},onClick:e=>{e.stopPropagation()}},i&&n.default.createElement(`div`,{className:X(`px-2 py-1.5 text-sm font-semibold`,S||T.Dropdown.headerClassName)},i,n.default.createElement(eo,null)),e,a&&n.default.createElement(`div`,{className:C||T.Dropdown.footerClassName},n.default.createElement(eo,null),a))),W=!d&&m===`fixed`&&typeof document<`u`;return n.default.createElement(Z,{className:U},_,n.default.createElement(`div`,{ref:O,className:X(d?`inline-block text-left`:`relative inline-block text-left`,g||T.Dropdown.className)},H,W?(0,c.createPortal)(re,document.body):re),v)};function Xa({loadItems:e,getItemId:t,renderItem:r,onSelect:i,selectedId:a=void 0,searchPlaceholder:o=void 0,emptyState:s=void 0,loadingState:c=void 0,errorState:l=void 0,debounceMs:u=200,closeOnSelect:d=!0,inputClassName:f=void 0,selectedClassName:p=void 0,header:m=void 0,open:h=void 0,defaultOpen:g=!1,onOpenChange:_=void 0,footer:v=void 0,headerClassName:y=void 0,staticOpen:b=!1,...x}){let S=Y(`common`),[C,w]=n.default.useState(g),[T,E]=n.default.useState(``),[D,O]=n.default.useState([]),[k,A]=n.default.useState(!1),[j,M]=n.default.useState(null),N=n.default.useRef(0),P=b||(h??C),F=n.default.useCallback(e=>{h===void 0&&w(e),e||E(``),_?.(e)},[h,_]);n.default.useEffect(()=>{if(!P)return;let t=new AbortController,n=++N.current,r=window.setTimeout(()=>{A(!0),M(null),e(T,t.signal).then(e=>{!t.signal.aborted&&n===N.current&&O(e)}).catch(e=>{!t.signal.aborted&&n===N.current&&(M(e),O([]))}).finally(()=>{!t.signal.aborted&&n===N.current&&A(!1)})},T?u:0);return()=>{window.clearTimeout(r),t.abort()}},[P,T,u,e]);let I=n.default.useCallback(async e=>{let t=await i(e);d&&t!==!1&&F(!1)},[d,i,F]);return n.default.createElement(Ya,{...x,closeOnSelect:!1,staticOpen:b,open:P,onOpenChange:F,header:n.default.createElement(n.default.Fragment,null,n.default.createElement(`div`,{className:`relative`},n.default.createElement(Q,{name:`search`,size:14,className:`pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground/60`}),n.default.createElement(`input`,{autoFocus:!0,value:T,onChange:e=>E(e.target.value),placeholder:o??S.search,className:X(`w-full rounded-md border border-border/60 bg-background py-1.5 pl-8 pr-2 text-sm font-normal text-foreground outline-none placeholder:text-muted-foreground focus:border-primary/50`,f)})),m),headerClassName:X(`px-2 pt-2 pb-1.5`,y),footer:v},k?n.default.createElement(`div`,{className:`px-2 py-3 text-center text-sm text-muted-foreground`},c??S.loading):j?n.default.createElement(`div`,{className:`px-2 py-3 text-center text-sm text-destructive`},l?.(j)??(j instanceof Error?j.message:S.noDataFound)):D.length===0?n.default.createElement(`div`,{className:`px-2 py-3 text-center text-sm text-muted-foreground`},s??S.noDataFound):D.map(e=>{let i=t(e);return n.default.createElement(Qa,{key:i,onClick:()=>{I(e)},className:X(i===a&&`bg-accent text-accent-foreground`,p)},r(e))}))}var Za=({children:e,badge:t=void 0,display:r=`dynamic`,className:i=void 0,badgeClassName:a=void 0,motion:o=void 0,title:s=void 0,onToggle:c=void 0,open:l=!1,menuId:u=void 0,buttonRef:d=void 0})=>{let f=q(`dropdown`),p=Vt(!1,{cursor:`pointer`},o??f.Dropdown.motion?.press??`press`),m=n.default.createElement(`button`,{ref:d,type:`button`,title:s,className:X(`inline-flex items-center justify-center gap-2`,i||f.Dropdown.triggerClassName),style:p.style,"aria-haspopup":`menu`,"aria-expanded":l,"aria-controls":u,onClick:c,...p.pressHandlers,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),c?.())},"data-display":r},e);return n.default.createElement(jt,{badge:t,className:a||f.Dropdown.badgeClassName},m)},Qa=({children:e,url:t=void 0,onClick:i=void 0,icon:a=void 0,className:o=void 0,actions:s=void 0})=>{let c=q(`dropdown`),l=n.default.useContext(Ja),u=e=>{i?.(e),!e.defaultPrevented&&l?.closeOnSelect&&l.close()},d=a?n.default.createElement(`span`,{className:`inline-flex min-w-0 items-center gap-2`},n.default.createElement(`span`,{className:`inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground`},n.default.createElement(Q,{name:a,size:16})),n.default.createElement(`span`,{className:`min-w-0`},e)):e,f=t?n.default.createElement(r.Link,{to:t,onClick:u,role:`menuitem`,className:X(`flex w-full cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground`,o||c.Dropdown.menuItemClass)},d):i?n.default.createElement(`button`,{onClick:u,role:`menuitem`,className:X(`flex w-full cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground`,o||c.Dropdown.menuItemClass)},d):n.default.createElement(`span`,{role:`menuitem`,className:X(`flex w-full select-none items-center rounded-sm px-2 py-1.5 text-sm`,o||c.Dropdown.menuItemClass)},d);return s?.length?n.default.createElement(`div`,{className:`group/dropdown-item flex w-full min-w-0 items-center gap-0.5`},n.default.createElement(`div`,{className:`min-w-0 flex-1`},f),s.map(e=>n.default.createElement(`button`,{key:e.label,type:`button`,title:e.label,"aria-label":e.label,onClick:t=>{t.stopPropagation(),e.onClick(),e.closeOnClick&&l?.close()},className:`inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-sm text-muted-foreground opacity-0 transition-opacity hover:bg-accent hover:text-foreground focus:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring group-hover/dropdown-item:opacity-100 group-focus-within/dropdown-item:opacity-100 [@media(hover:none)]:opacity-100`},n.default.createElement(Q,{name:e.icon,size:14})))):f},$a=({children:e,className:t})=>{let r=q(`dropdown`);return n.default.createElement(`div`,{className:X(`px-2 py-1.5 text-xs font-medium uppercase tracking-wide text-muted-foreground`,t||r.Dropdown.menuHeaderClass)},e)},eo=({className:e})=>{let t=q(`dropdown`);return n.default.createElement(`div`,{className:X(`-mx-1 my-1 h-px bg-border/60`,e||t.Dropdown.menuDividerClass)})},to=({menuKey:e,as:t=`ul`,badges:r={},before:i=void 0,after:a=void 0})=>{let o=q(`dropdown`);return n.default.createElement(qa,{menuKey:e,as:t,badges:r,before:i,after:a,wrapperClassName:o.Dropdown.Menu.wrapperClassName,className:o.Dropdown.Menu.className,headerClassName:o.Dropdown.Menu.headerClassName,itemClassName:o.Dropdown.Menu.itemClassName,linkClassName:o.Dropdown.Menu.linkClassName,iconClassName:o.Dropdown.Menu.iconClassName,textClassName:o.Dropdown.Menu.textClassName,badgeClassName:o.Dropdown.Menu.badgeClassName,arrowClassName:o.Dropdown.Menu.arrowClassName,submenuClassName:o.Dropdown.Menu.submenuClassName})},no=10,ro=e=>{if(e instanceof HTMLTextAreaElement)return!0;if(!(e instanceof HTMLInputElement))return!1;let t=e.type.toLowerCase();return t===``||[`text`,`search`,`email`,`url`,`tel`].includes(t)},io=e=>e.getClientRects().length>0&&window.getComputedStyle(e).visibility!==`hidden`,ao=e=>Array.from(e.querySelectorAll(`textarea, input`)).filter(ro),oo=(e,t)=>{let n=document.activeElement;if(ro(n)&&e.contains(n)&&io(n))return n;if(t&&e.contains(t)&&io(t))return t;let r=ao(e);return r.find(io)??r[0]??null},so=({label:e,value:t,icon:r,description:i,className:a,onSelect:o,active:s})=>n.default.createElement(`button`,{type:`button`,role:`menuitem`,className:X(`flex w-full cursor-pointer select-none items-start gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground`,s&&`bg-accent text-accent-foreground`,a),title:i?`${e} — ${i}`:void 0,onMouseDown:n=>{n.preventDefault(),n.stopPropagation(),o?.({label:e,value:t,icon:r,description:i})}},r&&n.default.createElement(Q,{name:r,size:16,className:`mt-0.5 shrink-0 text-muted-foreground`}),n.default.createElement(`span`,{className:`min-w-0 flex-1 text-left`},n.default.createElement(`span`,{className:`block truncate`},e),i&&n.default.createElement(`span`,{className:`block truncate text-xs text-muted-foreground`},i))),co=({children:e,className:t})=>n.default.createElement(`div`,{className:X(`sticky top-0 z-10 bg-popover px-2 py-1.5 text-xs font-medium uppercase tracking-wide text-muted-foreground`,t)},e),lo=({className:e})=>n.default.createElement(`div`,{className:X(`-mx-1 my-1 h-px bg-border`,e)}),uo=new Set([co,lo]),fo=(e,t)=>{if(!t)return!1;let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return RegExp(`^\\s*${n}`).test(e)},po=(e,t)=>{if(!t)return 0;let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return e.match(RegExp(`^\\s*${n}`))?.[0].length??0},mo=(e,t,n,r)=>{if(!n)return null;let i=e.slice(0,t),a=i.lastIndexOf(n);if(a===-1)return null;if(r?.requireWhitespacePrefix){let e=a===0?``:i[a-1];if(e&&!/\s/.test(e))return null}let o=i.slice(a+n.length);return(r?.queryPattern?!r.queryPattern.test(o):/\s/.test(o))?null:{query:o,start:a,end:t}},ho=(e,t,n)=>mo(e,t,n),go=e=>({value:e.value.slice(0,e.triggerRange.start)+e.value.slice(e.triggerRange.end),textBeforeCaret:e.value.slice(0,e.triggerRange.start),textAfterCaret:e.value.slice(e.triggerRange.end),trigger:e.trigger,query:e.query}),_o=(e,t)=>{let n=window.getComputedStyle(e),r=e.getBoundingClientRect(),i=parseFloat(n.lineHeight)||20,a=parseFloat(n.borderLeftWidth)||0,o=parseFloat(n.paddingLeft)||0,s=e.value.slice(0,t.start),c=s.lastIndexOf(`
|
|
3
|
+
`)}var et=`data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='50' fill='%23eef2f7'/%3E%3Ccircle cx='50' cy='38' r='16' fill='%2364758b'/%3E%3Cpath d='M22 84c3.8-20 19-31 28-31s24.2 11 28 31c.5 2.8-1.7 5-4.5 5h-47c-2.8 0-5-2.2-4.5-5z' fill='%2364758b'/%3E%3C/svg%3E`,tt=({children:e,config:t=void 0})=>{let r=(0,n.useMemo)(()=>Ge(t),[t]),i=Je(r.themes)??r.theme,a=r.themes[i]??r.themes.default,o=a.preset,[s,c]=(0,n.useState)(r.themes),[l,u]=(0,n.useState)(i),[d,f]=(0,n.useState)(Ye()??r.defaultMode??o.mode??`light`),[p,m]=(0,n.useState)(o.radius??Ve.default.preset.radius),[h,g]=(0,n.useState)(o.fontSans??``),[_,v]=(0,n.useState)(o.fontMono??``),[y,b]=(0,n.useState)(o.colors),[x,S]=(0,n.useState)(o.dark),[C,w]=(0,n.useState)(()=>Ue(a.components)),[T,E]=(0,n.useState)(a.motion);(0,n.useEffect)(()=>{let e=Je(r.themes)??r.theme,t=r.themes[e]??r.themes.default,n=t.preset;c(r.themes),u(e),f(Ye()??r.defaultMode??n.mode??`light`),m(n.radius??Ve.default.preset.radius),g(n.fontSans??``),v(n.fontMono??``),b(n.colors),S(n.dark),E(t.motion)},[r]),(0,n.useEffect)(()=>{let e=s[l]??s.default,t=Ue(e.components);He(t,r.themeOverride??{}),w(t),E(e.motion)},[l,r.themeOverride,s]),(0,n.useEffect)(()=>{Xe(l,d)},[l,d]),(0,n.useEffect)(()=>{let e=(s[l]??s.default).preset;$e({mode:d,radius:p,fontSans:h,fontMono:_,colors:y,dark:x,variables:e.variables})},[d,s,l,p,h,_,y,x]);let D=(0,n.useMemo)(()=>({mode:d,resolvedMode:Ze(d),theme:l,primary:y?.primary??Ve.default.preset.colors.primary,primaryForeground:y?.primaryForeground??Ve.default.preset.colors.primaryForeground,radius:p,fontSans:h,fontMono:_,colors:y,dark:x,themes:s,setMode:f,toggleMode(){f(e=>Ze(e)===`dark`?`light`:`dark`)},applyTheme(e){s[e]||(process.env.NODE_ENV!==`production`&&console.warn(`[ThemeProvider] Unknown theme "${e}", falling back to "default".`),e=`default`);let t=(s[e]??s.default).preset;u(e),f(t.mode??`light`),m(t.radius??Ve.default.preset.radius),g(t.fontSans??``),v(t.fontMono??``),b(t.colors),S(t.dark)},setPrimary(e){let t=e.split(` `)[0];b(n=>({...n,primary:e,ring:e,secondary:`${t} 40% 96%`,secondaryForeground:`${t} 47% 11%`,accent:`${t} 40% 94%`,accentForeground:`${t} 47% 11%`})),S(n=>({...n,primary:e,ring:e,secondary:`${t} 30% 18%`,secondaryForeground:`${t} 10% 96%`,accent:`${t} 30% 18%`,accentForeground:`${t} 10% 96%`}))},setRadius:m,setFont(e,t){g(e),t!==void 0&&v(t)},setColors(e){b(e)},setTokens(e){b(t=>({...t,...e})),S(t=>({...t,...e}))}}),[d,l,p,h,_,y,x,s]);return n.default.createElement(Be.Provider,{value:D},n.default.createElement(ze.Provider,{value:T},n.default.createElement(Re.Provider,{value:C},e)))},q=e=>(0,n.useContext)(Re),nt=()=>(0,n.useContext)(ze),rt=()=>{let e=(0,n.useContext)(Be);if(!e)throw Error(`useThemeController must be used inside <App> or <ThemeProvider>.`);return e},it={common:{save:`Save`,cancel:`Cancel`,delete:`Delete`,close:`Close`,back:`Back`,search:`Search`,loading:`Loading...`,noDataFound:`No data found`,pageNavigation:`Page navigation`,previous:`Previous`,next:`Next`,notFoundMessage:`Oops! Page not found.`,goHome:`Go to Home`,openNavigation:`Open navigation`},auth:{signIn:`Sign in`,signOut:`Sign out`,connect:`Connect`,connected:`Connected`,authenticated:`Authenticated`,notConfigured:`Auth provider "{provider}" is not configured. Add the required client key before using this action.`,notImplemented:`AuthProvider does not implement signIn().`},access:{email:`Email`,emailPlaceholder:`name@company.com`,password:`Password`,newPassword:`New password`,name:`Full name`,showPassword:`Show password`,hidePassword:`Hide password`,or:`or`,continue:`Continue`,backToSignIn:`Back to sign in`,emailRequired:`Enter your email.`,emailInvalid:`Enter a valid email address, like name@company.com.`,passwordRequired:`Enter your password.`,nameRequired:`Enter your name.`,signInTitle:`Sign in`,signInTitleApp:`Sign in to {app}`,signInDescription:`Welcome back. Sign in to continue.`,signInSubmit:`Sign in`,forgotPassword:`Forgot password?`,noAccount:`Don’t have an account?`,signUpLink:`Create one`,continueWith:`Continue with {provider}`,codeRequest:`Email me a sign-in code`,usePassword:`Sign in with a password instead`,useCode:`Email me a code instead`,signUpTitle:`Create your account`,signUpDescription:`It takes less than a minute.`,signUpSubmit:`Create account`,haveAccount:`Already have an account?`,signInLink:`Sign in`,terms:`I accept the terms of service and the privacy policy`,termsRequired:`Accept the terms to continue.`,passwordRules:`Your password needs`,ruleLength:`at least {min} characters`,ruleNumber:`a number`,ruleCase:`upper and lower case letters`,ruleSymbol:`a symbol, like ! or #`,ruleMet:`done`,ruleNotMet:`missing`,checkEmailTitle:`Check your email`,checkEmailSignUp:`We sent a link to {email}. Open it to activate your account.`,checkEmailHint:`Can’t find it? Look in the spam folder.`,resend:`Send it again`,resendIn:`Send again in {seconds} s`,resent:`Sent. It may take a minute to arrive.`,useOtherEmail:`Use a different email`,forgotTitle:`Forgot your password?`,forgotDescription:`Enter the email of your account and we’ll send you a link to choose a new password.`,forgotSubmit:`Send the link`,forgotSent:`If an account exists for {email}, a link to choose a new password is on its way.`,resetTitle:`Choose a new password`,resetDescription:`Use a password you don’t use on other sites.`,resetDescriptionFor:`For {email}. Use a password you don’t use on other sites.`,resetSubmit:`Save the password`,resetDoneTitle:`Password changed`,resetDone:`Your new password is saved. Use it to sign in from now on.`,linkExpiredTitle:`This link no longer works`,linkExpired:`Links work once and for a limited time. Ask for a new one.`,requestNewLink:`Ask for a new link`,verifyTitle:`Confirm your email`,verifyPending:`We sent a link to {email}. Open it to confirm your address.`,verifyPendingNoEmail:`We sent you a link. Open it to confirm your address.`,verifyChecking:`Confirming your email…`,verifyDoneTitle:`Email confirmed`,verifyDone:`Your account is active. You can continue.`,verifiedContinue:`I’ve confirmed it`,notVerifiedYet:`Your email is not confirmed yet. Open the link in the email we sent you.`,codeTitle:`Enter the code`,codeDescription:`We sent a {length}-digit code to {email}. It works for a few minutes.`,codeLabel:`Sign-in code`,codeDigit:`Digit {index} of {length}`,codeSubmit:`Verify`,codeNotReceived:`Didn’t get the code?`,deniedTitle:`No access`,denied:`You are signed in as {user}, but this account can’t open this app. Ask an administrator for access.`,signInOther:`Sign in with another account`,errorGeneric:`Something went wrong. Try again in a moment.`,errorCredentials:`The email or the password is not correct.`,errorEmailInUse:`An account with this email already exists. Sign in instead.`,errorWeakPassword:`This password is too easy to guess. Choose a longer one.`,errorInvalidEmail:`Enter a valid email address.`,errorTooManyRequests:`Too many attempts. Wait a few minutes and try again.`,errorNetwork:`No connection. Check your network and try again.`,errorInvalidCode:`The code is not correct or has expired.`,errorExpiredLink:`This link has expired or was already used. Ask for a new one.`,errorDisabled:`This account is disabled. Contact an administrator.`,errorCancelled:`Sign-in was cancelled before it finished.`,errorNotSupported:`This way of signing in is not available.`},form:{headerAdd:`New record`,headerEdit:`Edit record`,buttonSave:`Save`,buttonDelete:`Delete`,buttonBack:`Back`,requiredField:`{field} is required`,requiredFieldGeneric:`Required field`,saveSuccess:`Record saved successfully`,saveError:`Something went wrong. Try again.`,deleteSuccess:`Record deleted successfully`,noticeRequiredFields:`Please fill in all required fields`,noChangesToSave:`No changes to save`,draftRestoreTitle:`Unsaved changes found`,draftRestoreMessage:`A local draft is available for this form. Restore it or discard it.`,draftRestoreAction:`Restore`,draftDiscardAction:`Discard`,draftRestoredTitle:`Draft restored`,draftRestoredMessage:`The local draft has been restored. You can still discard it for a few seconds.`,draftSaveError:`Could not save a local draft — the change is too large for browser storage (e.g. an unsent image upload). Save the form to keep it.`},grid:{buttonAdd:`Add`,deleteConfirm:`Delete record`,emptyState:`No records found`,filtersButton:`Filters`,filtersPanelTitle:`Filters`,filtersClearAll:`Clear all`,filtersSelectPlaceholder:`All`,filtersRangeFrom:`From`,filtersRangeTo:`To`,filtersRangeMin:`Min`,filtersRangeMax:`Max`,filtersSelectedCountTemplate:`{count} selected`,tableView:`Table view`,galleryView:`Gallery view`,columns:`Columns`,fields:`Fields`},select:{placeholder:`Select...`,loading:`Loading...`},modal:{save:`Save`,delete:`Delete`,cancel:`Cancel`,close:`Close`,ok:`Ok`,yes:`Yes`,no:`No`},upload:{clickOrDrag:`Click to upload or drag and drop`,dropToUpload:`Drop to upload`,uploadMore:`Upload more files`,editFileName:`Edit file name`,editorImage:`Edit image`,loaded:`Loaded`,removeFile:`Remove`,uploadAnother:`Upload another file`,dropToParse:`Drop to parse`,insertFromUrl:`Insert from URL`,urlPlaceholder:`https://…/image.png`,invalidUrl:`Enter a valid URL`},notifications:{title:`Notifications`,seeAll:`See all`,markAllRead:`Mark all read`,empty:`No notifications`,emptyHint:`You're all caught up`},code:{copyCode:`Copy code`,copy:`Copy`,copied:`Copied`,codeLanguageDefault:`text`},table:{noDataFound:`No data found`,selectAllRows:`Select all rows`,sortBy:`Sort by {label}`,sortByCurrent:`Sort by {label}, currently {direction}`,selectRow:`Select row {key}`,reorderRow:`Reorder row {key}`},gallery:{selectItem:`Select item {key}`},sortableList:{handle:`Move item {position} of {total}: drag it, or use the up and down arrows`,moved:`Moved to position {position} of {total}`},crop:{enableCrop:`Click {scale} to enable this crop`,variants:`Variants`,outputFile:`Output file`,active:`active`,removeVariant:`Remove {scale} variant`,fileName:`File name`,altText:`Alt text`,altTextPlaceholder:`Describe this image…`},imageEditor:{title:`Image Editor`,save:`Save`,undo:`Undo`,redo:`Redo`,zoomOut:`Zoom Out`,zoomIn:`Zoom In`,crop:`Crop`,flipHorizontal:`Flip horizontal`,flipVertical:`Flip vertical`,rotate:`Rotate 90°`,freeDrawing:`Free drawing`,arrow:`Arrow`,text:`Text`,rectangle:`Rectangle`,circle:`Circle`,triangle:`Triangle`},prompt:{noProviders:`No AI providers are registered.`,aiNotConfiguredEdit:`AI is not configured. You can still edit and save this prompt.`,aiNotConfiguredRun:`AI is not configured. Prompt execution is unavailable.`,aiNotConfiguredShort:`AI not configured`,toggleOnTitle:`Prompt ON. In PromptRun, this textarea is treated as the prompt template and can be executed against the current record. Turn OFF to skip the prompt system and use the plain fallback text instead.`,toggleOffTitle:`Prompt OFF. In PromptRun, the prompt system is skipped and the plain fallback text is used directly. Turn ON to use this textarea as the prompt template.`,closeEditor:`Close prompt editor`,editSettings:`Edit prompt settings`,attachFiles:`Attach files`,dropFilesHere:`Drop files to attach`,modelPricing:`Input / output, USD per 1M tokens`,modelPriceNotFound:`Price not found`,attachmentsNotSupported:`The selected AI provider does not support image or document attachments.`,run:`Run prompt`,runFailed:`Prompt execution failed.`,noMatchingCommands:`No matching commands`,tokenUsage:`Token usage`,tokenInput:`Input: {count} tok`,tokenOutput:`Output: {count} tok`,tokenContext:`Context: {percent}%`,tokenCost:"Cost: ~${amount}",tokenTime:`Time: {seconds}s`,tokenUsageEmpty:`Run the prompt to see token usage.`,hidePreview:`Hide preview`,showPreview:`Show resolved preview`,noProvider:`No AI provider is available for this prompt.`,noResponse:`The AI provider returned no response.`,promptLabel:`Prompt: `,defaultOption:`Default`,role:`Role`,language:`Language`,voice:`Voice`,style:`Style`,temperature:`Temperature`,stop:`Stop`,stopping:`Stopping…`},layout:{maxElements:`You already have 12 items in the row: remove one before adding another.`,noSpace:`No space available: cannot resize items enough to insert this field.`,dragToMove:`Drag to move`,remove:`Remove`,dragToResize:`Drag to resize`,dragHere:`Drag an element here`},sideNav:{expandGroup:`Expand`,collapseGroup:`Collapse`,expandSidebar:`Expand sidebar`,collapseSidebar:`Collapse sidebar`},autocomplete:{noResults:`No results`,create:`Create «{value}»`,createPlaceholder:`Type or press Enter to create...`,remove:`Remove`},addressAutocomplete:{placeholder:`Search an address...`,noResults:`No matching address`,searching:`Searching...`,notConfigured:`Address search is not configured (missing Google Maps API key).`,loadError:`Could not load address search.`},errorBoundary:{title:`This page ran into a problem`,description:`An unexpected error occurred while rendering this content.`,technicalDetails:`Technical details`,debugInformation:`Debug information`,context:`Context`,time:`Time`,agent:`Agent`,componentTree:`Component tree`,copyDebug:`Copy debug info`,copied:`Copied!`,sendReport:`Send report`,sending:`Sending...`,reportSent:`Report sent ✓`,reportFailed:`Failed - retry`,tryAgain:`Try again`,goHome:`Go to home`},themeSwitcher:{title:`Customize theme`,subtitle:`Live theme tokens and mode controls with no reload.`,colorMode:`Color mode`,light:`Light`,dark:`Dark`,primaryColor:`Primary color`,borderRadius:`Border radius`,sharp:`Sharp`,rounded:`Rounded`,font:`Font`,statusColors:`Status colors`,theme:`Theme`,themeDescription:`Theme available in the current registry.`,iconLibrary:`Icon library`,weight:`Weight`,blue:`Blue`,violet:`Violet`,green:`Green`,rose:`Rose`,orange:`Orange`,slate:`Slate`,success:`Success`,warning:`Warning`,info:`Info`,danger:`Danger`,lucideDescription:`Clean outline icon set`,phosphorDescription:`Flexible icon weights and styles`,weightThin:`Thin`,weightLight:`Light`,weightRegular:`Regular`,weightBold:`Bold`,weightFill:`Fill`},imageField:{openOriginal:`Open original`,crop:`Crop`,cropTitle:`Crop — {name}`,cropImage:`Crop image`,editImage:`Edit image`,generatingVariants:`Generating variants…`,responsiveVariants:`Responsive variants`,variantsGenerated:`({count} generated)`,imageUrl:`Image URL`,imageUrlHint:`(path or https://…)`,altText:`Alt text`,altTextHint:`(accessibility & SEO)`,altPlaceholder:`E.g. Product hero shot`,linkUrl:`Link URL`,optionalHint:`(optional)`,newTab:`New tab`,sameTab:`Same tab`,insertImage:`Insert image`,insertImages:`Insert images`,include:`Include`,insert:`Insert`,insertCount:`Insert ({count})`},richText:{bold:`Bold`,italic:`Italic`,underline:`Underline`,strike:`Strikethrough`,heading1:`Heading 1`,heading2:`Heading 2`,heading3:`Heading 3`,bulletList:`Bullet List`,orderedList:`Ordered List`,blockquote:`Blockquote`,inlineCode:`Inline Code`,codeBlock:`Code Block`,link:`Link`,undo:`Undo`,redo:`Redo`,clearFormat:`Clear Format`,paragraphStyle:`Paragraph style`,normal:`Normal`,insertTable:`Insert Table`,insertTableSize:`Insert {rows} by {cols} table`,addRowAbove:`Add row above`,addRowBelow:`Add row below`,addColumnLeft:`Add column left`,addColumnRight:`Add column right`,deleteRow:`Delete row`,deleteColumn:`Delete column`,deleteTable:`Delete table`,uploadImage:`Upload Image`,uploadDocument:`Upload Document`,sourceCode:`Source Code`,source:`{name} source`,words:`{count} words`,chars:`{count} chars`,editLink:`Edit link`,removeLink:`Remove link`,altPlaceholder:`E.g. Team photo at company retreat`},tabDynamic:{addTab:`Add tab`},breadcrumbs:{label:`Breadcrumb`},chat:{reasoning:`Reasoning`,reasoningStreaming:`Reasoning…`,reasoningFor:`Reasoned for {duration}`,durationSeconds:`{seconds} s`,durationMinutes:`{minutes} min {seconds} s`,questions:`Questions`,questionTab:`Question {index}`,review:`Review`,reviewHint:`Check your answers, then submit them.`,other:`Other`,otherPlaceholder:`Type your answer`,recommended:`Recommended`,chooseOne:`Choose one`,chooseMany:`Choose one or more`,keyboardHint:`Keys {first}–{last} choose, Enter continues`,textKeyboardHint:`Enter adds a line, Ctrl/⌘+Enter continues`,next:`Next`,back:`Back`,submit:`Submit`,noAnswer:`No answer`,answered:`Answered`,activityCount:`{count} steps`,activityFailed:`{count} failed`,activityCommands:`Commands`,activityHide:`Hide`,activityLog:`Whole log`,activitySteps:`Steps view`,activityFiles:`{count} files changed`,activityChanges:`See the changes`,activityEmpty:`Nothing yet`},charts:{noData:`No data`,total:`Total`,less:`Less`,more:`More`,dataTable:`Chart data`,sequence:`Sequence`}};function at(e){return e}function ot(e){return e}function J(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>String(t[n]??`{${n}}`))}function st(e,t){let n=e=>typeof e==`object`&&!!e&&!Array.isArray(e),r=(e,t)=>{if(!n(e)||!n(t))return t??e;let i={...e};for(let e of Object.keys(t))i[e]=e in i?r(i[e],t[e]):t[e];return i};return r(e,t)}var ct=`llmnative_locale`,lt=31536e3;function ut(){if(typeof document>`u`)return null;let e=document.cookie.match(/(?:^|;\s*)llmnative_locale=([^;]+)/);return e?decodeURIComponent(e[1]):null}function dt(e){typeof document<`u`&&(document.cookie=`${ct}=${encodeURIComponent(e)}; max-age=${lt}; path=/; SameSite=Lax`)}var ft=(0,n.createContext)(null),pt=({children:e,config:t})=>{let[r,i]=(0,n.useState)({}),a=(0,n.useMemo)(()=>{let e=[...Object.keys(t?.translations??{}),...Object.keys(r)];return Array.from(new Set([`en`,...e.filter(e=>e!==`en`)]))},[t?.translations,r]),[o,s]=(0,n.useState)(()=>{let e=ut();return e&&a.includes(e)?e:t?.locale??`en`}),c=(0,n.useMemo)(()=>{let e=t?.translations?.[o],n=r[o],i=it;return e&&(i=st(i,e)),n&&(i=st(i,n)),i},[o,t?.translations,r]),l=(0,n.useCallback)(e=>{dt(e),s(e)},[]),u=(0,n.useCallback)((e,t)=>{i(n=>{let r=n[e],i=r?st(r,t):t;return{...n,[e]:i}})},[]),d=(0,n.useMemo)(()=>({dict:c,locale:o,availableLocales:a,setLocale:l,registerTranslations:u}),[c,o,a,l,u]);return n.default.createElement(ft.Provider,{value:d},e)};function Y(e){let t=(0,n.useContext)(ft);if(!t)throw Error(`useI18n must be used inside <App> or <I18nProvider>.`);return e===void 0?t:e.split(`.`).reduce((e,t)=>e?.[t],t.dict)}function mt(){return(0,n.useContext)(ft)?.dict??it}function ht(){let e=(0,n.useContext)(ft);return e?{dict:e.dict,locale:e.locale}:{dict:it,locale:`en`}}function X(...e){return(0,a.twMerge)((0,i.clsx)(e))}var gt=`mx-auto w-full px-3 sm:max-w-[540px] md:max-w-[720px] lg:max-w-[960px] xl:max-w-[1140px] 2xl:max-w-[1320px]`,_t=`rf-row`,vt=`rf-col`,yt=`rf-col-fill`,bt=`rf-col-12`,xt=(e,t)=>e===`xs`?`rf-col-${t}`:`rf-col-${e}-${t}`,St=e=>e===`xs`?`rf-col-auto`:`rf-col-${e}-auto`,Ct=e=>({auto:St(e),1:xt(e,1),2:xt(e,2),3:xt(e,3),4:xt(e,4),5:xt(e,5),6:xt(e,6),7:xt(e,7),8:xt(e,8),9:xt(e,9),10:xt(e,10),11:xt(e,11),12:xt(e,12)}),wt={xs:Ct(`xs`),sm:Ct(`sm`),md:Ct(`md`),lg:Ct(`lg`),xl:Ct(`xl`),xxl:Ct(`xxl`)},Tt=(e,t)=>{let n=String(t);return wt[e][n]},Z=({children:e=void 0,className:t=void 0,style:r=void 0,onClick:i=void 0})=>t?n.default.createElement(`div`,{className:t,style:r,onClick:i},e):n.default.createElement(n.default.Fragment,null,e),Et=({children:e=void 0,className:t=void 0,style:r=void 0})=>n.default.createElement(`div`,{className:X(gt,t),style:r},e),Dt=({children:e=void 0,className:t=void 0,style:r=void 0})=>n.default.createElement(`div`,{className:X(_t,t),style:r},e),Ot=({children:e=void 0,className:t=void 0,style:r=void 0,defaultSize:i=void 0,xxl:a=void 0,xl:o=void 0,lg:s=void 0,md:c=void 0,sm:l=void 0,xs:u=void 0})=>{let d=u??i,f=[vt,d===void 0&&l===void 0&&c===void 0&&s===void 0&&o===void 0&&a===void 0?yt:d===void 0?bt:Tt(`xs`,d),l===void 0?void 0:Tt(`sm`,l),c===void 0?void 0:Tt(`md`,c),s===void 0?void 0:Tt(`lg`,s),o===void 0?void 0:Tt(`xl`,o),a===void 0?void 0:Tt(`xxl`,a),t];return n.default.createElement(`div`,{className:X(f),style:r},e)};function kt(e){return typeof e==`object`&&!!e&&!n.default.isValidElement(e)&&`content`in e}function At(e,t=`info`,n){if(e!=null&&e!==!1)return kt(e)?{...e,variant:e.variant||t,className:X(e.className,n)}:{content:e,variant:t,className:n}}var jt=({badge:e,content:t=void 0,variant:r=void 0,defaultType:i=`info`,className:a=void 0,descriptorOnly:o=!1,children:s=void 0})=>{let c=t===void 0?e:{content:t,variant:r,className:a};if(o&&t===void 0&&!kt(e))return e??null;let l=At(c,r||i,a);return l?s===void 0?n.default.createElement(Mt,{variant:l.variant,className:l.className},l.content):n.default.createElement(Mt,{variant:l.variant,after:l.content,className:l.className},s):s??null},Mt=({children:e,variant:t=`info`,before:r=void 0,after:i=void 0,wrapperClassName:a=void 0,className:o=void 0})=>{let s=q(`badge`);if(n.default.isValidElement(e)){let c=X(`badge badge-overlay badge-`+t,`absolute top-0 z-10`,o||s.Badge.className);return n.default.createElement(`span`,{className:X(`relative inline-flex`,a)},e,r!==void 0&&n.default.createElement(`span`,{className:X(c,`left-0 -translate-x-1/2 -translate-y-1/2`)},r),i!==void 0&&n.default.createElement(`span`,{className:X(c,`right-0 translate-x-1/2 -translate-y-1/2`)},i),r===void 0&&i===void 0&&n.default.createElement(`span`,{className:X(c,`right-0 translate-x-1/2 -translate-y-1/2 !p-0 !min-w-0 w-2.5 h-2.5 rounded-full`)}))}return n.default.createElement(Z,{className:a},r,n.default.createElement(`span`,{className:X(`badge badge-`+t,o||s.Badge.className)},e),i)},Nt={from:{},to:{},transition:{duration:0,easing:`linear`,delay:0,properties:[`opacity`,`transform`,`box-shadow`]},reducedMotion:`always`},Pt={from:{},to:{},transition:{duration:160,easing:`cubic-bezier(0.2, 0, 0, 1)`,delay:0,properties:[`opacity`,`transform`,`box-shadow`]},reducedMotion:`respect-user`},Ft=()=>typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,It=(e,t,n=`fade`)=>{let r=e===void 0?n:e;return r===!1?Nt:typeof r==`string`?t[r]??t.none??Nt:r},Lt=e=>e.properties.map(t=>`${t} ${e.duration}ms ${e.easing} ${e.delay}ms`).join(`, `),Rt=(e,t={},n)=>{let r=It(n,t,`fade`),i=It(e,t,n),a={...Pt.transition,...r.transition,...i.transition},o=i.reducedMotion??r.reducedMotion??Pt.reducedMotion,s=o===`always`||o===`respect-user`&&Ft(),c={duration:s?0:a.duration,easing:s?`linear`:a.easing,delay:s?0:a.delay,properties:a.properties};return{from:s?{}:{...r.from??{},...i.from??{}},to:s?{}:{...r.to??{},...i.to??{}},transition:c,reducedMotion:o,transitionValue:Lt(c)}},zt=(e,t)=>{let r=nt();return n.default.useMemo(()=>Rt(e,r,t),[e,r,t])},Bt=(e,t,r,i)=>{let a=zt(t,r);return n.default.useMemo(()=>({...i,...e?a.to:a.from,transition:[i?.transition,a.transitionValue].filter(Boolean).join(`, `)}),[e,i,a])},Vt=(e=!1,t,r,i=`press`)=>{let a=zt(r,i),[o,s]=n.default.useState(!1);return{style:n.default.useMemo(()=>({...t,...o&&!e?a.to:a.from,transition:[t?.transition,a.transitionValue].filter(Boolean).join(`, `)}),[t,e,a,o]),pressHandlers:{onMouseDown:()=>!e&&s(!0),onMouseUp:()=>s(!1),onMouseLeave:()=>s(!1),onBlur:()=>s(!1)}}},Ht=(e,t,r=`fadeUp`)=>{let[i,a]=n.default.useState(!1);return n.default.useEffect(()=>{a(!1);let e=window.requestAnimationFrame(()=>a(!0));return()=>window.cancelAnimationFrame(e)},[t,r]),Bt(i,t,r,e)},Ut={add:`Plus`,"arrow-arc-left":`Undo2`,"arrow-arc-right":`Redo2`,"arrow-line-down":`FlipVertical`,"arrow-line-right":`FlipHorizontal`,"camera-rotate":`RotateCw`,"caret-down":`ChevronDown`,"caret-right":`ChevronRight`,close:`X`,dashboard:`LayoutDashboard`,edit:`Pencil`,file:`FileText`,"floppy-disk":`Save`,fullscreen:`Maximize`,"fullscreen-exit":`Minimize`,github:`GitBranch`,"house-door":`Home`,"link-break":`Unlink`,"magnifying-glass-minus":`ZoomOut`,"magnifying-glass-plus":`ZoomIn`,rectangle:`Square`,"text-t":`Type`,trash:`Trash2`,"check-circle":`CircleCheck`,"warning-circle":`CircleAlert`,"mail-open":`MailOpen`,"shield-warning":`ShieldAlert`,warning:`TriangleAlert`};function Wt(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}var Gt=class{id=`lucide`;resolve(e){let t=Ut[e]??Wt(e);return o[t]??null}},Kt={add:`Plus`,"arrow-arc-left":`ArrowArcLeft`,"arrow-arc-right":`ArrowArcRight`,"arrow-line-down":`ArrowLineDown`,"arrow-line-right":`ArrowLineRight`,"camera-rotate":`CameraRotate`,"caret-down":`CaretDown`,"caret-right":`CaretRight`,close:`X`,dashboard:`SquaresFour`,edit:`PencilSimple`,"external-link":`ArrowSquareOut`,file:`FileText`,"floppy-disk":`FloppyDisk`,fullscreen:`CornersOut`,"fullscreen-exit":`CornersIn`,github:`GithubLogo`,"house-door":`House`,"link-break":`LinkBreak`,"magnifying-glass-minus":`MagnifyingGlassMinus`,"magnifying-glass-plus":`MagnifyingGlassPlus`,menu:`List`,rectangle:`Rectangle`,search:`MagnifyingGlass`,settings:`Gear`,"text-t":`TextT`,trash:`Trash`,warning:`Warning`,layers:`Stack`,mail:`Envelope`,"mail-open":`EnvelopeOpen`,"eye-off":`EyeSlash`};function qt(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}var Jt=class{weight;id=`phosphor`;_cache=new Map;constructor(e=`regular`){this.weight=e}resolve(e){let t=this._cache.get(e);if(t)return t;let r=Kt[e]??qt(e),i=s[r];if(!i)return null;let a=this.weight,o=e=>n.default.createElement(i,{weight:a,...e});return this._cache.set(e,o),o}},Yt=n.default.createContext(null),Xt=n.default.createContext(null),Zt={lucide:new Gt,phosphor:new Jt},Qt=`lucide`;function $t(e){return!!e&&typeof e==`object`&&typeof e.id==`string`&&typeof e.resolve==`function`}function en(e){if(!e)return{defaultId:Qt,providers:{...Zt},aliases:{}};if(typeof e==`string`)return{defaultId:e,providers:{...Zt},aliases:{}};if($t(e))return{defaultId:e.id,providers:{...Zt,[e.id]:e},aliases:{}};if(`default`in e&&`providers`in e){let t=e;return{defaultId:t.default,providers:{...Zt,...t.providers},aliases:t.aliases??{}}}return{defaultId:e.provider.id,providers:{...Zt,[e.provider.id]:e.provider},aliases:e.aliases??{}}}function tn(e,t){return Object.keys(t).length===0?e:{id:e.id,resolve(n){return e.resolve(t[n]??n)}}}function nn({provider:e,config:t,children:r}){let i=n.default.useMemo(()=>en(t??e),[t,e]),[a,o]=n.default.useState(i.providers),[s,c]=n.default.useState(i.defaultId);n.default.useEffect(()=>{o(i.providers),c(i.defaultId)},[i]);let l=a[s]??a[Qt],u=n.default.useMemo(()=>l?tn(l,i.aliases):null,[l,i.aliases]),d=n.default.useMemo(()=>({providerId:l?.id??Qt,providers:a,aliases:i.aliases,setProvider(e){if(a[e]){c(e);return}process.env.NODE_ENV!==`production`&&console.warn(`[IconProvider] Unknown provider "${e}", falling back to "${Qt}".`),c(Qt)},registerProvider(e,t){o(n=>({...n,[e]:t}))},resolve(e){return u?.resolve(e)??null}}),[l,a,i.aliases,u]);return n.default.createElement(Xt.Provider,{value:d},n.default.createElement(Yt.Provider,{value:u},r))}function rn(){return n.default.useContext(Yt)}function an(){let e=n.default.useContext(Xt);if(!e)throw Error(`useIconController must be used inside <App> or <IconProvider>.`);return e}var on=new Gt,Q=({name:e,size:t=16,className:r,style:i,provider:a,label:o,weight:s})=>{let c=rn(),l=a??c??on;if(!l||typeof e!=`string`||!e.trim())return null;let u=l.resolve(e);return u?n.default.createElement(u,{size:t,className:r,style:i,weight:s,"aria-label":o,"aria-hidden":!o||void 0}):null},sn=`btn`,cn=`btn-primary`,ln=`btn-secondary`,un=`btn-danger`,dn=`btn-success`,fn=`btn-warning`,pn=`btn-info`,mn=`btn-light`,hn=`btn-dark`,gn=`btn-outline-primary`,_n=`btn-outline-secondary`,vn=`btn-outline-danger`,yn=`btn-outline-success`,bn=`btn-link`,xn=e=>{switch(e){case`primary`:return cn;case`secondary`:return ln;case`danger`:return un;case`success`:return dn;case`warning`:return fn;case`info`:return pn;case`light`:return mn;case`dark`:return hn;case`outline-primary`:return gn;case`outline-secondary`:return _n;case`outline-danger`:return vn;case`outline-success`:return yn;case`link`:return bn;default:return}},Sn=({onClick:e,icon:t=void 0,label:r=void 0,badge:i=void 0,title:a=void 0,ariaLabel:o=void 0,disabled:s=!1,loading:c=!1,before:l=void 0,after:u=void 0,wrapperClassName:d=void 0,className:f=void 0,iconClassName:p=void 0,style:m=void 0,loadingLabel:h=void 0,variant:g=void 0,motion:_=void 0}={})=>{let[v,y]=(0,n.useState)(c),[b,x]=(0,n.useState)(s),[S,C]=(0,n.useState)(``),w=e=>{C(e.message??``)},T=q(`button`),E=Vt(b||v,m,_??T.LoadingButton.motion?.press??`press`),D=h??(S||(typeof r==`string`?`${r}...`:r));(0,n.useEffect)(()=>{y(c),x(s)},[c,s]);let O=n.default.createElement(`button`,{type:`button`,title:a,"aria-label":o||t&&!r&&a||void 0,className:X(`btn`,g?xn(g):f||T.LoadingButton.className,g?f:void 0,v&&`whitespace-nowrap`),style:E.style,disabled:b||v,...E.pressHandlers,onClick:async t=>{t.stopPropagation(),x(!0),y(!0),await e?.(t,w),y(!1),x(!1)}},v&&n.default.createElement(n.default.Fragment,null,n.default.createElement(`span`,{className:X(D&&`mr-1`,`inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`)}),D&&n.default.createElement(`span`,null,D)),t&&!v&&n.default.createElement(Q,{name:t,className:X(r&&`mr-1`,p)}),!v&&r);return n.default.createElement(Z,{className:d},l,n.default.createElement(jt,{badge:v?void 0:i},O),u)},Cn=({onClick:e,icon:t=void 0,label:r=void 0,badge:i=void 0,title:a=void 0,ariaLabel:o=void 0,disabled:s=!1,before:c=void 0,after:l=void 0,wrapperClassName:u=void 0,className:d=void 0,iconClassName:f=void 0,style:p=void 0,variant:m=void 0,motion:h=void 0}={})=>{let g=q(`button`),_=Vt(s,p,h??g.ActionButton.motion?.press??`press`),v=n.default.createElement(`button`,{type:`button`,title:a,"aria-label":o||t&&!r&&a||void 0,className:X(`btn`,m?xn(m):d||g.ActionButton.className,m?d:void 0),style:_.style,disabled:s,..._.pressHandlers,onClick:t=>{t.preventDefault(),t.stopPropagation(),e?.(t)}},t&&n.default.createElement(Q,{name:t,className:X(r&&`mr-1`,f)}),r);return n.default.createElement(Z,{className:u},c,n.default.createElement(`span`,{title:s?a:void 0,style:s?{cursor:`not-allowed`}:void 0},n.default.createElement(jt,{badge:i},v)),l)},wn=({label:e=void 0,before:t=void 0,after:i=void 0,wrapperClassName:a=void 0,className:o=void 0})=>{let s=(0,r.useNavigate)(),c=q(`button`),l=Y(`common`);return n.default.createElement(Z,{className:a},t,n.default.createElement(`a`,{href:`#`,className:X(`btn`,o||c.LinkButton.className),onClick:e=>{e.preventDefault(),s(-1)}},e??l.back),i)},Tn=({label:e,href:t,before:r=void 0,after:i=void 0,wrapperClassName:a=void 0,className:o=void 0})=>(q(`button`),n.default.createElement(Z,{className:a},r,n.default.createElement(`h1`,{className:X(`m-0 text-2xl font-bold`,o)},e+` `,n.default.createElement(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`},n.default.createElement(Q,{name:`external-link`}))),i)),En=({title:e,href:t,imageSrc:r,width:i,before:a=void 0,after:o=void 0,wrapperClassName:s=void 0,className:c=void 0})=>n.default.createElement(Z,{className:s},a,n.default.createElement(`a`,{href:t,className:X(`mr-1`,c),target:`_blank`,title:e,rel:`noopener noreferrer`},n.default.createElement(`img`,{src:r,width:i||`100`,height:`30`,alt:e})),o),Dn=`globalVars`,On=(0,n.createContext)(void 0),kn=()=>JSON.parse(localStorage.getItem(Dn)||`{}`),An=({children:e})=>{let[t,r]=(0,n.useState)(()=>kn());(0,n.useEffect)(()=>{let e=e=>{e.storageArea===localStorage&&e.key===Dn&&r(kn())};return window.addEventListener(`storage`,e),()=>{window.removeEventListener(`storage`,e)}},[]);let i=e=>{localStorage.setItem(Dn,JSON.stringify(e)),r(e)};return n.default.createElement(On.Provider,{value:{globalVars:t,setGlobalVars:(e,n)=>{let r={...t,[n]:e};i(r)},removeGlobalVars:e=>{let n={...t};delete n[e],i(n)}}},e)},jn=e=>{let t=(0,n.useContext)(On);if(!t)throw Error(`useGlobalVars must be used within a GlobalProvider`);let{globalVars:r,setGlobalVars:i,removeGlobalVars:a}=t;return[r[e]??null,t=>i(t,e),()=>a(e)]},Mn=(e=null)=>{let t=kn();return e?t[e]||{}:t},Nn=(e,t)=>{let n={...kn(),[t]:e};localStorage.setItem(Dn,JSON.stringify(n))},Pn=e=>{let t={...kn()};delete t[e],localStorage.setItem(Dn,JSON.stringify(t))},Fn=(0,n.createContext)(null),In=({registry:e,defaultKey:t,children:r})=>{let i=(0,n.useMemo)(()=>({registry:e,defaultKey:t}),[e,t]);return n.default.createElement(Fn.Provider,{value:i},r)},Ln=e=>{let t=(0,n.useContext)(Fn);if(!t)throw Error(`useAuthProvider must be used inside <App providers={...} />.`);let r=e??t.defaultKey,i=t.registry[r];if(!i)throw Error(`AuthProvider '${r}' is not registered. Available: ${Object.keys(t.registry).join(`, `)}`);return i},Rn={basename:e=>e.split(`/`).filter(Boolean).pop()||``,extname:e=>{let t=e.lastIndexOf(`.`);return t>0?e.slice(t):``},dirname:e=>{let t=e.split(`/`).filter(Boolean);return t.pop(),`/`+t.join(`/`)},filename:e=>{let t=e.split(`/`).pop()||``,n=t.includes(`.`)?t.slice(t.lastIndexOf(`.`)):``;return t.replace(n,``)},parentBasename:e=>{let t=e.split(`/`).filter(Boolean);return t.pop(),t.pop()||``},parentDirname:e=>{let t=e.split(`/`).filter(Boolean);return t.pop(),t.pop(),`/`+t.join(`/`)},parentFilename:e=>{let t=e.split(`/`).filter(Boolean);t.pop();let n=t.pop()||``,r=n.includes(`.`)?n.slice(n.lastIndexOf(`.`)):``;return n.replace(r,``)},append:(e,t)=>{let n=e.split(`/`).slice(0,-1).join(`/`),r=e.split(`/`).pop()||``,i=r.includes(`.`)?r.slice(r.lastIndexOf(`.`)):``,a=r.replace(i,``);return(n?n+`/`:``)+a+t+i},prepend:(e,t)=>{let n=e.split(`/`).slice(0,-1).join(`/`),r=e.split(`/`).pop()||``,i=r.includes(`.`)?r.slice(r.lastIndexOf(`.`)):``,a=r.replace(i,``);return(n?n+`/`:``)+t+a+i},changeFilename:(e,{prefix:t=``,suffix:n=``,ext:r=null}={})=>{let i=e.split(`/`).slice(0,-1).join(`/`),a=e.split(`/`).pop()||``,o=a.includes(`.`)?a.slice(a.lastIndexOf(`.`)):``,s=a.replace(o,``),c=r===null?o:r?r.startsWith(`.`)?r:`.`+r:``;return(i?i+`/`:``)+t+s+n+c},join:(...e)=>e.join(`/`).replace(/\/+/g,`/`),parse:e=>{let t=Rn.extname(e),n=Rn.basename(e),r=Rn.dirname(e);return{root:e.startsWith(`/`)?`/`:``,dir:r,base:n,ext:t,name:n.replace(t,``)}}},zn=({src:e,width:t=void 0,height:r=void 0,title:i=void 0,alt:a=void 0,fit:o=`cover`,badge:s=void 0,feedback:c=void 0,before:l=void 0,after:u=void 0,wrapperClassName:d=void 0,className:f=void 0})=>{let p=q(`image`),[m,h]=(0,n.useState)(et),g=p.ImageAvatar?.motion?.enter??!1,_=p.ImageAvatar?.motion?.hover??!1,v=_!==!1,y=Ht(void 0,g,!1),[b,x]=(0,n.useState)(!1),S=Bt(b,_,!1),C=e&&e.split(`?`)[0],w=`avatar::${C}`,T=`avatar-fetch-failed::${C}`,E=a||i||Rn.filename(e||`data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='50' fill='%23eef2f7'/%3E%3Ccircle cx='50' cy='38' r='16' fill='%2364758b'/%3E%3Cpath d='M22 84c3.8-20 19-31 28-31s24.2 11 28 31c.5 2.8-1.7 5-4.5 5h-47c-2.8 0-5-2.2-4.5-5z' fill='%2364758b'/%3E%3C/svg%3E`);(0,n.useEffect)(()=>{if(!e||e.startsWith(`data:`)){h(e||`data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='50' fill='%23eef2f7'/%3E%3Ccircle cx='50' cy='38' r='16' fill='%2364758b'/%3E%3Cpath d='M22 84c3.8-20 19-31 28-31s24.2 11 28 31c.5 2.8-1.7 5-4.5 5h-47c-2.8 0-5-2.2-4.5-5z' fill='%2364758b'/%3E%3C/svg%3E`);return}let t=localStorage.getItem(w);if(t){h(t);return}h(e);let n=Number(localStorage.getItem(T)||0);n&&Date.now()-n<864e5||fetch(e).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.blob()}).then(e=>{let t=new FileReader;t.onloadend=()=>{let e=t.result;localStorage.setItem(w,e),localStorage.removeItem(T),h(e)},t.readAsDataURL(e)}).catch(e=>{console.warn(`ImageAvatar:`,e.message),localStorage.setItem(T,String(Date.now()))})},[e,w,T]);let D=t??r??void 0,O={...t&&r?{width:t,height:r,objectFit:o}:D?{width:D,height:D,objectFit:o}:{objectFit:o},...v?S:{}};return n.default.createElement(Z,{className:X(`flex items-center gap-3`,d||p.ImageAvatar?.wrapperClassName)},l&&n.default.createElement(`div`,{className:`shrink-0 self-center`},l),n.default.createElement(`div`,{className:X(`relative shrink-0`,v&&`overflow-hidden`),style:y,onMouseEnter:v?()=>x(!0):void 0,onMouseLeave:v?()=>x(!1):void 0},n.default.createElement(`img`,{src:m,alt:E,width:t??D,height:r??D,className:X(f||p.ImageAvatar?.className),title:i,style:O,onError:()=>h(et)}),s&&n.default.createElement(`span`,{className:X(`badge badge-overlay absolute top-0 right-0 translate-x-1/4 -translate-y-1/4 z-10`,`badge-`+(s.variant||`success`),!s.content&&`!p-0 !min-w-0 w-3 h-3 rounded-full`,s.className)},s.content),c&&n.default.createElement(`div`,{className:`mt-1 text-xs text-center`},c)),u&&n.default.createElement(`div`,{className:`min-w-0 self-center`},u))},Bn=(e,t,n=``)=>t.filter(t=>{let n=e?.[t];return n==null||n===``}).map(e=>`${n}${e}`),Vn=(e,t)=>({configured:t.length===0,missingKeys:t,reason:t.length?`${e} is not configured. Missing: ${t.join(`, `)}.`:void 0}),Hn=(e,t=`Provider`)=>{if(!e)return{configured:!1,reason:`${t} is not registered.`};if(e.getConfigurationState)return e.getConfigurationState();if(e.isConfigured){let n=e.isConfigured();return{configured:n,reason:n?void 0:`${t} is not configured.`}}return{configured:!0}},Un=`/__/authorize`,Wn=`auths`;function Gn(){let e=new Uint32Array(28);return window.crypto.getRandomValues(e),Array.from(e,e=>`0${e.toString(16)}`.substr(-2)).join(``)}async function Kn(e){let t=new TextEncoder().encode(e),n=await window.crypto.subtle.digest(`SHA-256`,t);return btoa(String.fromCharCode(...new Uint8Array(n))).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}var qn=(e,t,n)=>{let r=window.screen.width/2-n/2,i=`width=${n},height=${n},top=${window.screen.height/2-n/2},left=${r}`;return window.open(e,t,i)};function Jn({authServer:e,clientID:t,scopes:n=void 0,refreshParamName:r=`access_type`}){let i=Gn();localStorage.setItem(`authChallenge`,JSON.stringify({authServer:e,clientID:t,codeVerifier:i})),Kn(i).then(i=>{qn(`https://${e}/authorize?${new URLSearchParams({response_type:`code`,client_id:t,redirect_uri:`${window.location.origin}${Un}`,scope:n?n.join(` `):``,code_challenge:i,code_challenge_method:`S256`,[r]:`offline`}).toString()}`,`auth`,600)})}var Yn=(e,t,n)=>{Nn({[t]:{...n,server:e,client_id:t,iat:Math.floor(Date.now()/1e3)}},Wn)},Xn=()=>{let e=(0,r.useLocation)().search,t=Y(`common`);return(0,n.useEffect)(()=>{let t=new URLSearchParams(e).get(`code`),n=((e,t)=>{try{return JSON.parse(localStorage.getItem(e)||``)||t}catch{return t}})(`authChallenge`);if(!t||!n)return;let{authServer:r,clientID:i,codeVerifier:a}=n;Se(`https://${r}/token`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:{grant_type:`authorization_code`,client_id:i,code:t,redirect_uri:`${window.location.origin}${Un}`,code_verifier:a}}).then(e=>{Yn(r,i,e),localStorage.removeItem(`authChallenge`),window.close()}).catch(e=>console.error(`Error:`,e))},[e]),n.default.createElement(`div`,null,t.loading)},Zn=(e,t,n)=>Se(`https://${e}/token`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:{grant_type:`refresh_token`,client_id:t,refresh_token:n}}).then(n=>(Yn(e,t,n),n.access_token)).catch(e=>(console.error(`Error:`,e),localStorage.removeItem(Wn),null)),Qn=(e,t=!0)=>{let[n]=jn(Wn),r=n?.[e]||{},i=Math.floor(Date.now()/1e3)>=(r?.iat??0)+(r?.expires_in??0);return!!(r&&r?.access_token&&(!i||t&&i&&r.refresh_token&&(Zn(r.server??``,r.client_id??``,r.refresh_token)||1)))},$n=e=>Mn(Wn)?.[e],er=e=>{let t=Mn(Wn)||{};t[e]&&(delete t[e],Nn(t,Wn))},tr=e=>{let t=$n(e),n=Math.floor(Date.now()/1e3)>(t?.iat??0)+(t?.expires_in??0);return!n&&t?.access_token?Promise.resolve(t.access_token):n&&t?.refresh_token?Zn(t.server??``,t.client_id??``,t.refresh_token):Promise.resolve(null)},nr=e=>e===`signOut`||e===`disconnect`,rr=({provider:e,intent:t=`signIn`,aspect:r=`button`,scopes:i=void 0,iconLogout:a=`log-out`,avatarClass:o=void 0,options:s={},label:c=void 0,icon:l=void 0,title:u=void 0,className:d=void 0,disabled:f=!1,...p})=>{let m=Ln(e),h=q(`auth`),g=Y(`auth`),_=e||`AuthProvider`,v=n.default.useCallback(()=>Hn(m,_),[m,_]),y=n.default.useMemo(()=>v(),[v]),b=y.configured,[x,S]=n.default.useState(()=>b?m.getUser():null),[C,w]=n.default.useState(()=>b&&(m.isAuthenticated?.()??!!m.getUser())),[T,E]=n.default.useState(!1),D=n.default.useRef(null),O=y.reason||J(g.notConfigured,{provider:_});n.default.useEffect(()=>v().configured?(S(m.getUser()),w(m.isAuthenticated?.()??!!m.getUser()),m.onAuthChange(e=>{S(e),w(m.isAuthenticated?.()??!!e)})):(S(null),w(!1),E(!1),()=>{}),[m,v]),n.default.useEffect(()=>{if(!T)return()=>{};let e=e=>{D.current?.contains(e.target)||E(!1)},t=e=>{e.key===`Escape`&&E(!1)};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[T]);let k=()=>{if(!v().configured){S(null),w(!1);return}let e=m.getUser();S(e),w(m.isAuthenticated?.()??!!e)},A=async()=>{if(v().configured){if(nr(t)){await m.signOut(),k();return}if(!m.signIn)throw Error(g.notImplemented);await m.signIn({scopes:i,intent:t}),k()}},j={...p,...s,label:s.label??c??(C?g.connected:t===`signIn`?g.signIn:g.connect),icon:s.icon??l??(C?`link`:`link-break`),title:b?s.title??u:O,className:s.className??d,disabled:!b||(s.disabled??f),style:b?s.style??p.style:{...p.style||{},...s.style||{},opacity:.55,cursor:`not-allowed`}};if(r===`avatar`){let e=x?.displayName??x?.email??(C?g.authenticated:g.signIn);return n.default.createElement(`div`,{ref:D,className:d||h.SignIn.className,style:{position:`relative`,display:`inline-flex`},title:b?void 0:O},n.default.createElement(`button`,{type:`button`,className:`cursor-pointer border-0 bg-transparent p-0`,title:b?e:O,"aria-label":e,"aria-expanded":T,"aria-haspopup":`menu`,disabled:!b||f,"aria-disabled":!b||f,style:b?void 0:{opacity:.55,cursor:`not-allowed`},onClick:e=>{e.preventDefault(),e.stopPropagation(),b&&!f&&E(e=>!e)}},n.default.createElement(zn,{src:x?.photoURL??`data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='50' fill='%23eef2f7'/%3E%3Ccircle cx='50' cy='38' r='16' fill='%2364758b'/%3E%3Cpath d='M22 84c3.8-20 19-31 28-31s24.2 11 28 31c.5 2.8-1.7 5-4.5 5h-47c-2.8 0-5-2.2-4.5-5z' fill='%2364758b'/%3E%3C/svg%3E`,title:b?e:O,height:36,className:o||h.SignIn.avatarClass})),T&&n.default.createElement(`div`,{role:`menu`,className:`absolute right-0 top-full z-50 mt-2 min-w-40 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md`},!C&&n.default.createElement(`button`,{type:`button`,role:`menuitem`,className:`flex w-full cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground`,onClick:A},c??g.signIn.toUpperCase()),C&&n.default.createElement(`button`,{type:`button`,role:`menuitem`,className:`flex w-full cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground`,onClick:async()=>{await m.signOut(),k(),E(!1)}},a&&n.default.createElement(Q,{name:a,className:`mr-2`}),g.signOut.toUpperCase())))}return n.default.createElement(Cn,{...j,onClick:A})},ir={neutral:`bg-muted text-foreground`,success:`bg-success/15 text-success`,warning:`bg-warning/20 text-foreground`,danger:`bg-destructive/15 text-destructive`};function ar({title:e,description:t,icon:r,tone:i=`neutral`,brand:a,toolbar:o,below:s,footer:c,focusKey:l,children:u,className:d}){let f=(0,n.useRef)(null),p=l??(typeof e==`string`?e:void 0),m=(0,n.useRef)(!0);return(0,n.useEffect)(()=>{if(m.current){m.current=!1;return}f.current?.focus()},[p]),n.default.createElement(`div`,{className:X(`flex min-h-dvh flex-col bg-background text-foreground`,d)},o&&n.default.createElement(`div`,{className:`flex justify-end gap-2 px-4 pt-4 sm:px-6`},o),n.default.createElement(`main`,{className:`flex flex-1 flex-col items-center justify-center px-4 py-8 sm:py-12`},n.default.createElement(`div`,{className:`w-full max-w-[400px]`},a&&n.default.createElement(`div`,{className:`mb-8 flex justify-center`},a),n.default.createElement(`div`,{className:`sm:rounded-xl sm:border sm:border-border sm:bg-card sm:p-8 sm:text-card-foreground sm:shadow-sm`},n.default.createElement(`div`,{className:`space-y-2 text-center`},r&&n.default.createElement(`div`,{className:X(`mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full`,ir[i])},n.default.createElement(Q,{name:r,size:22})),n.default.createElement(`h1`,{ref:f,tabIndex:-1,className:`text-2xl font-semibold leading-tight tracking-tight outline-none`},e),t&&n.default.createElement(`div`,{className:`text-sm leading-relaxed text-muted-foreground`},t)),u&&n.default.createElement(`div`,{className:`mt-6`},u)),s&&n.default.createElement(`div`,{className:`mt-6`},s))),c&&n.default.createElement(`footer`,{className:`px-4 pb-6 text-center text-xs text-muted-foreground`},c))}function or({bare:e,...t}){return e?n.default.createElement(`div`,{className:X(`w-full`,t.className)},n.default.createElement(`div`,{className:`space-y-2 text-center`},t.icon&&n.default.createElement(`div`,{className:X(`mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full`,ir[t.tone??`neutral`])},n.default.createElement(Q,{name:t.icon,size:22})),n.default.createElement(`h2`,{className:`text-xl font-semibold tracking-tight`},t.title),t.description&&n.default.createElement(`div`,{className:`text-sm text-muted-foreground`},t.description)),t.children&&n.default.createElement(`div`,{className:`mt-6`},t.children),t.below&&n.default.createElement(`div`,{className:`mt-6`},t.below)):n.default.createElement(ar,t)}var sr=(0,n.createContext)(null),cr=({registry:e,defaultKey:t,children:r})=>{let i=(0,n.useMemo)(()=>({registry:e,defaultKey:t}),[e,t]);return n.default.createElement(sr.Provider,{value:i},r)},lr=e=>{let t=(0,n.useContext)(sr);if(!t)throw Error(`useDataProvider must be used inside <App>.`);let r=e??t.defaultKey,i=t.registry[r];if(!i)throw Error(`DataProvider '${r}' is not registered. Available: ${Object.keys(t.registry).join(`, `)}`);return i};function ur({children:e,show:t=!1,icon:r=void 0,title:i=void 0,description:a=void 0,minHeight:o=`200px`,before:s=void 0,after:c=void 0,wrapperClassName:l=void 0,className:u=void 0}){let d=q(`loader`);return r||=d.Loader.icon,i||=d.Loader.title,a||=d.Loader.description,t?n.default.createElement(Z,{className:l||d.Loader.wrapperClassName},n.default.createElement(`div`,{className:`relative `+(u||d.Loader.className),style:{minHeight:o}},n.default.createElement(`div`,{className:`absolute top-0 bottom-0 left-0 right-0 z-10 bg-background/60 backdrop-blur-[2px]`},s,(r||i||a)&&n.default.createElement(`div`,{className:`flex flex-col items-center justify-center gap-2 p-4 text-center`},r&&n.default.createElement(Q,{name:r,size:32,className:`animate-spin text-primary`}),i&&n.default.createElement(`p`,{className:`text-sm font-semibold text-foreground`},i),a&&n.default.createElement(`p`,{className:`text-xs text-muted-foreground`},a)),c),e)):e}var dr=`rounded-lg border border-border bg-card text-card-foreground shadow-sm`,fr=`flex items-center gap-3 border-b border-border px-4 py-3`,pr=`p-4`,mr=`border-t border-border px-4 py-3`,hr=({children:e,title:t=void 0,header:r=void 0,footer:i=void 0,loading:a=void 0,loaderMinHeight:o=void 0,wrapperClassName:s=void 0,className:c=void 0,headerClassName:l=void 0,bodyClassName:u=void 0,footerClassName:d=void 0,before:f=void 0,after:p=void 0})=>{let m=q(`card`),h=s??m.Card.wrapperClassName??(f||p?`flex items-center gap-2`:void 0);return n.default.createElement(Z,{className:h},f,n.default.createElement(`div`,{className:X(dr,m.Card.className,c)},r||t?n.default.createElement(`div`,{className:X(fr,m.Card.headerClassName,l)},t?n.default.createElement(`h5`,{className:`m-0 whitespace-nowrap text-base leading-none font-semibold`},t):null,r):null,n.default.createElement(`div`,{className:X(pr,m.Card.bodyClassName,u)},n.default.createElement(ur,{show:a??m.Card.loading,...o===void 0?{}:{minHeight:o}},e)),i?n.default.createElement(`div`,{className:X(mr,m.Card.footerClassName,d)},i):null),p)},gr={info:`text-blue-600`,success:`text-green-600`,warning:`text-yellow-600`,danger:`text-red-600`,primary:`text-primary`,secondary:`text-secondary`,light:`text-gray-400`,dark:`text-gray-800`},_r=`bg-card supports-[backdrop-filter]:backdrop-blur-sm`,vr=({children:e,variant:t=`info`,appearance:r=`default`,placement:i=`inline`,anchorRef:a=void 0,timeout:o=void 0,onClose:s=void 0,icon:l=!0,before:u=void 0,after:d=void 0,wrapperClassName:f=void 0,className:p=void 0})=>{let m=q(`alert`),[h,g]=(0,n.useState)(null);(0,n.useLayoutEffect)(()=>{if(i!==`sticky`){g(null);return}let e=0,t=null,n=!1,r=()=>{let i=a?.current;if(!n){if(!i){e=requestAnimationFrame(r);return}t=document.createElement(`div`),t.style.cssText=`position:sticky;top:0;left:0;right:0;z-index:50;width:100%`,i.prepend(t),g(t)}};return r(),()=>{n=!0,e&&cancelAnimationFrame(e),t&&t.remove(),g(null)}},[i,a]);let _=l===!1?null:l===!0?{info:`info`,success:`check`,warning:`warning`,danger:`x-circle`,primary:``,secondary:``,light:``,dark:``}[t]||null:l||null;(0,n.useEffect)(()=>{if(typeof s==`function`){let e=setTimeout(()=>{s()},o??5e3);return()=>clearTimeout(e)}},[s,o]);let v=r===`text`?n.default.createElement(`span`,{role:`status`,className:X(`inline-flex items-center gap-1 text-sm font-medium`,gr[t]??`text-foreground`,p)},_&&n.default.createElement(Q,{name:_,size:14,className:`shrink-0`}),e):n.default.createElement(`div`,{role:`alert`,className:X(`alert alert-`+t,p||m.Alert.className,(i===`fixed`||i===`sticky`)&&[`w-full rounded-none border-x-0 shadow-md`,_r])},_&&n.default.createElement(Q,{name:_,size:16,className:`shrink-0`}),e);if(i===`fixed`){let e=(()=>{let e=`__alert-portal-fixed__`,t=document.getElementById(e);return t||(t=document.createElement(`div`),t.id=e,t.style.cssText=`position:fixed;top:0;left:0;right:0;z-index:9999;width:100%`,document.body.appendChild(t)),t})();return(0,c.createPortal)(v,e)}if(i===`sticky`)return h?(0,c.createPortal)(v,h):null;let y=f??(u||d?`flex items-center gap-2`:void 0);return n.default.createElement(Z,{className:y},u,v,d)},yr=`_key`,br={container:Et,wrapper:Z,row:Dt,col:Ot},xr={field:``,dir:`asc`},Sr=e=>typeof e==`string`&&!Number.isNaN(Date.parse(e)),Cr=(e,t)=>e==null&&t==null?0:e==null?1:t==null?-1:typeof e==`number`&&typeof t==`number`?e-t:typeof e==`boolean`&&typeof t==`boolean`?Number(e)-Number(t):e instanceof Date&&t instanceof Date?e.getTime()-t.getTime():Sr(e)&&Sr(t)?Date.parse(e)-Date.parse(t):String(e).localeCompare(String(t),void 0,{numeric:!0,sensitivity:`base`}),wr={normalize(e){if(e?.field)return{field:e.field,dir:e.dir===`desc`?`desc`:`asc`}},toggle(e,t){return!e||e.field!==t?{field:t,dir:`asc`}:{field:t,dir:e.dir===`asc`?`desc`:`asc`}},compareValues(e,t,n=`asc`){let r=Cr(e,t);return n===`desc`?-r:r},compareRecords(e,t,n){let r=this.normalize(n);if(!r)return 0;let i=de(e,r.field),a=de(t,r.field);return this.compareValues(i,a,r.dir)},records(e,t){if(!e)return e;let n=this.normalize(t);return n?[...e].sort((e,t)=>this.compareRecords(e,t,n)):[...e]}};function Tr(e){let t=[],r=e=>{if(e!=null&&typeof e!=`boolean`){if(typeof e==`string`||typeof e==`number`||typeof e==`bigint`){t.push(String(e));return}if(Array.isArray(e)){e.forEach(r);return}n.default.isValidElement(e)&&r(e.props.children)}};return r(e),t.join(` `).replace(/\s+/g,` `).trim()}var Er=e=>e==null||e===``||typeof e==`boolean`||typeof e==`object`&&!Array.isArray(e)?[]:typeof e==`string`||typeof e==`number`?e.toString().split(`,`):e,Dr=e=>e?typeof e==`object`?{label:String(e?.label??``)||``,value:String(e?.value??``)||``}:{label:e?.toString()||``,value:e?.toString()||``}:{label:`@value`,value:`@value`},Or=e=>e.map(e=>Dr({label:e.label??e.name??e.title??e._key??``,value:e.value??e._key??e.label??e.name??``}));function kr(e){return{fieldMap:e?.fieldMap,where:e?.where,order:e?.order,onLoad:e?.onLoad}}var Ar=(e,t,n)=>{let r=e?.[n.field],[i]=Object.entries(t||{});if(!i||!r)return!1;let[a,o]=i;return a===r&&o===n.dir},jr=(e,t,n,r,i)=>{let a=n||{...xr,field:`label`},o=[...e.map(Dr),...t];return e.length===0&&Ar(i,r,a)?o:wr.records(o,a)||[]},Mr=({children:e,side:t})=>n.default.createElement(`span`,{className:X(Uc,t===`before`?`rounded-l-md rounded-r-none border-r-0`:`rounded-l-none rounded-r-md border-l-0`)},e),Nr=({name:e,onChange:t=void 0,defaultValue:r=void 0,required:i=!1,readOnlyAfterSet:a=!1,disabled:o=!1,placeholderOption:s=void 0,label:c=void 0,title:l=void 0,before:u=void 0,after:d=void 0,feedback:f=void 0,options:p=[],optionsSource:m=void 0,order:h=void 0,inheritWrapperClassName:g=!0,wrapperClassName:_=void 0,className:v=void 0,validator:y=void 0})=>{let{value:b,handleChange:x,formWrapClass:S}=Dc({name:e,onChange:t,wrapperClassName:_,defaultValue:r,inheritWrapperClassName:g}),C=Ec(e,{required:i,label:c,validator:y}),w=q(`select`),T=Y(`select`),E=s??{label:T.placeholder,value:``},D=(0,n.useMemo)(()=>kr(m),[m?.fieldMap,m?.where,m?.order,m?.onLoad]),O=lr(),[k,A]=(0,n.useState)([]);(0,n.useEffect)(()=>O.subscribe(m?.path,e=>A(Or(e)),D),[O,m?.path,D]);let j=(0,n.useMemo)(()=>{let e=jr(p,k,h,m?.order,D.fieldMap);return re(b&&!e.length?[...e,{label:`× ${b.toString()}`,value:b.toString()}]:e)},[p,k,h,m?.order,D.fieldMap,b]);!b&&!E&&j.length>0&&x?.({target:{name:e,value:j[0].value}});let M=(0,n.useId)();return n.default.createElement(Z,{className:S||w.Select.wrapperClassName},c&&n.default.createElement(gl,{label:c,required:i,htmlFor:M}),n.default.createElement(Z,{className:u||d?X(Hc,`flex-nowrap`):``},u&&n.default.createElement(Mr,{side:`before`},u),n.default.createElement(`select`,{id:M,name:e,className:X(Bc,`appearance-none pr-8`,u&&`!rounded-l-none`,d&&`!rounded-r-none`,C&&`border-destructive focus-visible:ring-destructive/20`,v||w.Select.className),value:b??``,required:i,disabled:o||a&&!W(b),onChange:x,title:l},E&&n.default.createElement(`option`,{key:`${M}-empty`,value:E.value},E.label),j.some(e=>e.group)?Object.entries(j.reduce((e,t)=>{let n=t.group??``;return(e[n]??=[]).push(t),e},{})).map(([e,t])=>e?n.default.createElement(`optgroup`,{key:e,label:e},t.map((t,r)=>n.default.createElement(`option`,{key:`${M}-${e}-${r}`,value:t.value},t.label))):t.map((e,t)=>n.default.createElement(`option`,{key:`${M}-nogroup-${t}`,value:e.value},e.label))):j.map((e,t)=>n.default.createElement(`option`,{key:`${M}-${t}`,value:e.value},e.label))),d&&n.default.createElement(Mr,{side:`after`},d)),C?n.default.createElement(Zc,{message:C}):f&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},f))},Pr=e=>e.toLocaleLowerCase().normalize(`NFD`).replace(/[̀-ͯ]/g,``),Fr=({name:e,defaultValue:t=void 0,minItems:r=void 0,maxItems:i=void 0,onChange:a=void 0,required:o=!1,readOnlyAfterSet:s=!1,disabled:l=!1,label:u=void 0,title:d=void 0,placeholder:f=void 0,before:p=void 0,after:m=void 0,feedback:h=void 0,options:g=[],optionsSource:_=void 0,order:v=void 0,inheritWrapperClassName:y=!0,wrapperClassName:b=void 0,className:x=void 0,listClassName:S=void 0,optionClassName:C=void 0,validator:w=void 0,creatable:T=!1,onCreate:E=void 0})=>{let{value:D,handleChange:O,formWrapClass:k}=Dc({name:e,onChange:a,wrapperClassName:b,defaultValue:t,inheritWrapperClassName:y}),A=Ec(e,{required:o,label:u,validator:w}),j=q(`select`),M=Y(`autocomplete`),N=(0,n.useMemo)(()=>Er(D),[D]),[P,F]=(0,n.useState)(()=>N);(0,n.useEffect)(()=>{oe(N,P)||F(N)},[N,P]);let I=(0,n.useMemo)(()=>kr(_),[_?.fieldMap,_?.where,_?.order,_?.onLoad]),L=lr(),[R,z]=(0,n.useState)([]);(0,n.useEffect)(()=>L.subscribe(_?.path,e=>z(Or(e)),I),[L,_?.path,I]);let[B,ee]=(0,n.useState)([]),V=(0,n.useMemo)(()=>re(jr([...g,...B],R,v,_?.order,I.fieldMap),`value`),[g,B,R,v,_?.order,I.fieldMap]),H=(0,n.useMemo)(()=>new Map(V.map(e=>[e.value,e.label||e.value])),[V]),[U,te]=(0,n.useState)(``),[ne,G]=(0,n.useState)(!1),[ie,ae]=(0,n.useState)(0),[se,ce]=(0,n.useState)(null),le=(0,n.useRef)(null),ue=(0,n.useRef)(null),K=(0,n.useRef)(null),de=P,fe=!i||de.length<i,pe=l||s&&!W(D),me=(0,n.useMemo)(()=>{let e=U.trim(),t=Pr(e),n=V.filter(e=>!de.includes(e.value)).filter(e=>!t||Pr(e.label||e.value).includes(t)||Pr(e.value).includes(t)).map(e=>({kind:`option`,option:e})),r=!!e&&V.some(n=>Pr(n.label||n.value)===t||n.value===e);return T&&e&&!r?[...n,{kind:`create`,text:e}]:n},[V,de,U,T]),he=(0,n.useId)(),ge=`${he}-options`,_e=e=>`${he}-option-${e}`,ve=ne&&fe&&!pe,ye=(0,n.useCallback)(()=>{let e=le.current;if(!e)return;let t=e.getBoundingClientRect(),n=window.innerHeight-t.bottom-8,r=t.top-8,i=n>=200||n>=r;ce({...i?{top:t.bottom+4}:{bottom:window.innerHeight-t.top+4},left:t.left,width:t.width,maxHeight:Math.max(120,Math.min(288,i?n:r))})},[]);(0,n.useEffect)(()=>{if(!ve)return;ye();let e=()=>ye(),t=e=>{let t=e.target;le.current?.contains(t)||K.current?.contains(t)||G(!1)};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),document.addEventListener(`mousedown`,t),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0),document.removeEventListener(`mousedown`,t)}},[ve,ye,de.length]),(0,n.useEffect)(()=>{ae(e=>Math.min(e,Math.max(0,me.length-1)))},[me.length]),(0,n.useEffect)(()=>{if(!ve)return;let e=document.getElementById(_e(ie));e&&typeof e.scrollIntoView==`function`&&e.scrollIntoView({block:`nearest`})},[ie,ve]);let be=t=>{F(t),O?.({target:{name:e,value:t}})},xe=e=>{if(!e||de.includes(e)||!fe)return;let t=[...de,e];be(t),te(``),ae(0),i&&t.length>=i&&G(!1)},Se=async e=>{if(te(``),ae(0),await E?.(e)===!1){G(!1);return}ee(t=>t.some(t=>t.value===e)?t:[...t,{label:e,value:e}]),xe(e)},Ce=e=>{e&&(e.kind===`option`?xe(e.option.value):Se(e.text))},we=e=>{be(de.filter(t=>t!==e))},Te=e=>{if(e.key===`ArrowDown`){if(e.preventDefault(),!ne){G(!0);return}ae(e=>Math.min(e+1,Math.max(0,me.length-1)))}else if(e.key===`ArrowUp`)e.preventDefault(),ae(e=>Math.max(e-1,0));else if(e.key===`Enter`){if(e.preventDefault(),ve&&me[ie]){Ce(me[ie]);return}let t=U.trim();if(!t)return;let n=V.find(e=>e.value===t||Pr(e.label||e.value)===Pr(t));n?xe(n.value):T&&Se(t)}else if(e.key===`Escape`){if(!ve)return;e.preventDefault(),e.nativeEvent.stopPropagation(),G(!1)}else e.key===`Tab`?G(!1):e.key===`Backspace`&&!U&&de.length>0&&we(de[de.length-1])},Ee=ve&&se&&n.default.createElement(`ul`,{ref:K,id:ge,role:`listbox`,"aria-label":Tr(u)||d||e,className:X(`fixed z-[250] overflow-y-auto rounded-xl border border-border/60 bg-popover/95 p-1 text-sm text-popover-foreground shadow-xl shadow-black/5 backdrop-blur supports-[backdrop-filter]:bg-popover/90 dark:shadow-black/20`,S||j.Autocomplete.listClassName),style:{top:se.top,bottom:se.bottom,left:se.left,width:se.width,maxHeight:se.maxHeight}},me.length===0?n.default.createElement(`li`,{role:`presentation`,className:`px-2.5 py-2 text-muted-foreground`},M.noResults):me.map((e,t)=>n.default.createElement(`li`,{key:e.kind===`option`?`option-${e.option.value}`:`create-${e.text}`,id:_e(t),role:`option`,"aria-selected":t===ie,className:X(`cursor-pointer select-none rounded-md px-2.5 py-2 transition-colors`,t===ie?`bg-accent text-accent-foreground`:`hover:bg-accent/60`,e.kind===`create`&&`font-medium`,C||j.Autocomplete.optionClassName),onMouseDown:e=>e.preventDefault(),onMouseEnter:()=>ae(t),onClick:()=>Ce(e)},e.kind===`option`?e.option.label||e.option.value:M.create.replace(`{value}`,e.text))));return n.default.createElement(Z,{className:k||j.Autocomplete.wrapperClassName},u&&n.default.createElement(gl,{label:u,required:o,htmlFor:he}),n.default.createElement(Z,{className:p||m?X(Hc,`flex-nowrap`):``},p&&n.default.createElement(Mr,{side:`before`},p),n.default.createElement(`div`,{ref:le,className:X(Bc,`h-auto min-h-9 flex-wrap items-center gap-1 py-1.5 px-2`,p&&`rounded-l-none`,m&&`rounded-r-none`,A&&`border-destructive focus-within:ring-destructive/20`),onClick:()=>{pe||(ue.current?.focus(),G(!0))}},de.map(e=>n.default.createElement(`span`,{className:`inline-flex max-w-full items-center gap-1 rounded-full border border-primary/20 bg-primary/10 px-2 py-0.5 text-xs font-medium text-primary`,key:e},n.default.createElement(`span`,{className:`truncate`},H.get(e)??e),!pe&&n.default.createElement(`button`,{type:`button`,"aria-label":`${M.remove} ${H.get(e)??e}`,className:`ml-0.5 cursor-pointer opacity-60 transition-opacity hover:opacity-100`,onClick:t=>{t.stopPropagation(),we(e)}},`×`))),fe&&n.default.createElement(`input`,{ref:ue,id:he,type:`text`,role:`combobox`,"aria-expanded":!!(ve&&se),"aria-controls":ge,"aria-autocomplete":`list`,"aria-activedescendant":ve&&me[ie]?_e(ie):void 0,autoComplete:`off`,className:X(`min-w-[120px] flex-1 border-none bg-transparent text-sm outline-none placeholder:text-muted-foreground`,x||j.Autocomplete.className),required:o&&de.length<(r||0),disabled:pe,placeholder:T?f??M.createPlaceholder:f,title:d,value:U,onChange:e=>{te(e.target.value),ae(0),G(!0)},onFocus:()=>G(!0),onBlur:()=>G(!1),onKeyDown:Te})),m&&n.default.createElement(Mr,{side:`after`},m)),Ee&&typeof document<`u`?(0,c.createPortal)(Ee,document.body):null,A?n.default.createElement(Zc,{message:A}):h&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},h))},Ir=({name:e,defaultValue:t=void 0,onChange:r=void 0,required:i=!1,readOnlyAfterSet:a=!1,disabled:o=!1,label:s=void 0,title:c=void 0,before:l=void 0,after:u=void 0,feedback:d=void 0,options:f=[],optionsSource:p=void 0,order:m=void 0,inheritWrapperClassName:h=!0,wrapperClassName:g=void 0,className:_=void 0,validator:v=void 0,itemClassName:y=void 0})=>{let{value:b,handleChange:x,formWrapClass:S}=Dc({name:e,onChange:r,wrapperClassName:g,defaultValue:t,inheritWrapperClassName:h}),C=Ec(e,{required:i,label:s,validator:v}),w=(0,n.useMemo)(()=>Er(b),[b]),[T,E]=(0,n.useState)(()=>w);(0,n.useEffect)(()=>{oe(w,T)||E(w)},[w,T]);let D=(0,n.useMemo)(()=>kr(p),[p?.fieldMap,p?.where,p?.order,p?.onLoad]),O=lr(),[k,A]=(0,n.useState)([]);(0,n.useEffect)(()=>O.subscribe(p?.path,e=>A(Or(e)),D),[O,p?.path,D]);let j=(0,n.useMemo)(()=>re(jr(f,k,m,p?.order,D.fieldMap),`value`),[f,k,m,p?.order,D.fieldMap]),M=t=>{E(n=>{let r=n.filter(e=>e!==t);return setTimeout(()=>{x?.({target:{name:e,value:r}})},0),r})},N=t=>{let n=t.target.value;if(!t.target.checked){M(n);return}j.filter(e=>e.value===n).length!==0&&(T.includes(n)||E(t=>{let r=[...t,n];return setTimeout(()=>{x?.({target:{name:e,value:r}})},0),r}))},P=(0,n.useId)(),F=o||a&&T.length>0,I=n.default.createElement(Z,{className:X(l||u?X(Bc,`h-auto min-h-9 w-full min-w-0 flex-col items-start py-2 px-3`):``,`space-y-1`)},j.map(t=>{let r=se(`cl-${P}-${e}-${t.value}`);return n.default.createElement(`div`,{key:r,className:X(`flex w-full items-center gap-2`,y)},n.default.createElement(`input`,{className:`h-4 w-4 shrink-0 rounded-sm border border-input bg-background text-primary shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,type:`checkbox`,id:r,name:e,value:t.value,onChange:N,checked:T.includes(t.value),disabled:F,title:c}),n.default.createElement(`label`,{htmlFor:r,className:`text-sm font-medium leading-none text-foreground`},t.label))}));return n.default.createElement(Z,{className:X(S,_)},s&&n.default.createElement(n.default.Fragment,null,n.default.createElement(gl,{label:s,required:i}),n.default.createElement(`hr`,{className:`mt-0`})),l||u?n.default.createElement(Z,{className:X(Hc,`flex-nowrap items-stretch`)},l&&n.default.createElement(Mr,{side:`before`},l),I,u&&n.default.createElement(Mr,{side:`after`},u)):I,C?n.default.createElement(Zc,{message:C}):d&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},d))};function Lr(e,t){if(!t)return e;let n=e.indexOf(`?`),r=n===-1?e:e.slice(0,n),i=n===-1?``:e.slice(n),a=r.lastIndexOf(`.`);return a===-1?`${r}${t}${i}`:`${r.slice(0,a)}${t}${r.slice(a)}${i}`}function Rr(e,t){return t.mode===`explicit`?t.variants.map(e=>`width`in e?`${e.src} ${e.width}w`:`${e.src} ${e.density}x`).join(`, `):t.mode===`density`?(t.densities??[1,2]).map(n=>`${Lr(e,t.suffix?t.suffix(n):n===1?``:`@${n}x`)} ${n}x`).join(`, `):t.widths.map(n=>`${Lr(e,t.suffix?t.suffix(n):`-${n}w`)} ${n}w`).join(`, `)}function zr(e,t){let n=e.priority?`eager`:e.loading??`lazy`,r={src:e.src,alt:e.alt,width:e.width,height:e.height,loading:n,decoding:e.decoding??`async`,...e.priority&&{fetchpriority:`high`},...e.title&&{title:e.title},...e.className&&{class:e.className},...e.crossorigin&&{crossorigin:e.crossorigin},...e.referrerpolicy&&{referrerpolicy:e.referrerpolicy}},i=[];return e.fit&&i.push(`object-fit: ${e.fit}`),e.position&&i.push(`object-position: ${e.position}`),i.length&&(r.style=i.join(`; `)),t&&(r.srcset=Rr(e.src,t),t.mode!==`density`&&t.sizes&&(r.sizes=t.sizes)),Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0))}function Br(e){let t=[`src`,`srcset`,`sizes`,`alt`,`title`,`width`,`height`,`style`,`class`,`loading`,`decoding`,`fetchpriority`,`crossorigin`,`referrerpolicy`].filter(t=>e[t]!==void 0).map(t=>`${t}="${String(e[t])}"`);if(t.length===0)return`<img />`;let[n,...r]=t;return r.length===0?`<img ${n} />`:`<img ${n}\n ${r.join(`
|
|
4
|
+
`)} />`}function Vr(e){return{toHtml:t=>Br(zr(e,t)),toJson:t=>JSON.stringify(zr(e,t),null,2),params:t=>zr(e,t)}}async function Hr(e,t){return new Promise((n,r)=>{let i=new Image;i.onload=()=>{let r=i.naturalWidth,a=i.naturalHeight,o=e.startsWith(`data:`)?e.slice(5,e.indexOf(`;`)):`image/jpeg`,s=[...t].sort((e,t)=>e-t).filter(e=>e<r).map(e=>{let t=Math.round(e/r*a),n=document.createElement(`canvas`);n.width=e,n.height=t;let s=n.getContext(`2d`);if(!s)throw Error(`Canvas 2D context unavailable`);return s.drawImage(i,0,0,e,t),{src:n.toDataURL(o),width:e}});s.push({src:e,width:r}),n(s)},i.onerror=()=>r(Error(`resizeVariants: failed to load image`)),e.startsWith(`data:`)||(i.crossOrigin=`anonymous`),i.src=e})}async function Ur(e,t){let n=await Hr(e,t.length?t:[]),r=n.at(-1)?.width??0,i=n.slice(0,-1);return{variants:await Promise.all(i.map(async e=>{let t=await fetch(e.src).then(e=>e.blob());return{width:e.width,dataUri:e.src,localUrl:URL.createObjectURL(t)}})),naturalWidth:r}}async function Wr(e,t,n,r){let i=r.replace(/\.[^/.]+$/,``),a=r.split(`.`).pop()??`jpg`;return Promise.all(e.map(async e=>({url:await t.upload(e.dataUri,`${n}/${i}_${e.width}w.${a}`)??e.localUrl,width:e.width})))}function Gr(e){return[...e].sort((e,t)=>e.width-t.width).map(e=>`${e.url} ${e.width}w`).join(`, `)}function Kr(e){if(e.startsWith(`data:`)||e.startsWith(`blob:`))return`image.jpg`;try{return new URL(e).pathname.split(`/`).pop()||`image.jpg`}catch{return e.split(`/`).pop()||`image.jpg`}}function qr(e){return e.replace(/\.[^/.]+$/,``).replace(/[-_]+/g,` `).replace(/\s+/g,` `).trim().replace(/^(.)/,e=>e.toUpperCase())}var Jr=(0,n.createContext)(null),Yr=({registry:e,defaultKey:t,children:r})=>{let i=(0,n.useMemo)(()=>({registry:e,defaultKey:t}),[e,t]);return n.default.createElement(Jr.Provider,{value:i},r)},Xr=e=>{let t=(0,n.useContext)(Jr);if(!t)return null;let r=e??t.defaultKey;return t.registry[r]??null},Zr=1.1,Qr=[],$r=new Set,ei=()=>$r.forEach(e=>e()),ti=e=>{let t=Qr.find(t=>t.dialog===e);if(!t)return;let n=Qr.filter(e=>e.side===t.side);if(!(n.length<2))return n[0].natural*Zr**(n.length-1-n.indexOf(t))},ni=[],ri=0,ii=``,ai=()=>{ri++===0&&(ii=window.document.body.style.overflow,window.document.body.style.overflow=`hidden`)},oi=()=>{ri>0&&--ri===0&&(window.document.body.style.overflow=ii)},si=e=>n.default.createElement(ci,e),ci=({children:e,title:t=void 0,header:r=void 0,footer:i=void 0,onClose:a=void 0,onSave:o=void 0,onDelete:s=void 0,size:l=void 0,position:u=void 0,allowFullscreen:d=!1,showCancel:f=!0,before:p=void 0,after:m=void 0,wrapperClassName:h=void 0,className:g=void 0,headerClassName:_=void 0,titleClassName:v=void 0,subtitleClassName:y=void 0,bodyClassName:b=void 0,footerClassName:x=void 0,closeOnBackdrop:S=!0,closeOnEscape:C=!0,zIndex:w=void 0,stackedBehind:T=!1,rightInset:E=void 0,closeSlot:D=void 0,motion:O=void 0})=>{let k=q(`modal`),A=Y(`modal`),[j,M]=n.default.useState(!1),N=n.default.useRef(!1),P=n.default.useRef(null),[,F]=n.default.useReducer(e=>e+1,0),I=n.default.useRef(void 0),L=n.default.useRef(()=>void 0),R=n.default.useRef(void 0),[z,B]=(0,n.useState)(l),ee={sm:`max-w-sm`,md:`max-w-md`,lg:`max-w-2xl`,xl:`max-w-4xl`,"2xl":`max-w-6xl`,fullscreen:`max-w-none w-screen h-dvh rounded-none`}[z||k.Modal.size||`lg`],V={sm:`w-72`,md:`w-96`,lg:`w-[36rem]`,xl:`w-[48rem]`,"2xl":`w-[64rem]`,fullscreen:`w-screen`}[z||k.Modal.size||`lg`],H={sm:`max-h-[30vh]`,md:`max-h-[45vh]`,lg:`max-h-[60vh]`,xl:`max-h-[85vh]`,"2xl":`max-h-[90vh]`,fullscreen:`h-dvh max-h-none`}[z||k.Modal.size||`lg`],U={center:{coverClass:`fixed inset-0 z-50 flex items-center justify-center overflow-y-auto p-4`,dialogClass:X(`relative z-50 flex w-full flex-col overflow-hidden rounded-lg border border-border/60 bg-card shadow-xl`,z!==`fullscreen`&&`max-h-[calc(100dvh-2rem)]`,ee,h||k.Modal.wrapperClassName),contentClass:X(`flex min-h-0 flex-1 flex-col`,g||k.Modal.className),headerClassName:X(`flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3`,_||k.Modal.headerClassName),titleClassName:X(`text-lg font-semibold leading-none`,v||k.Modal.titleClassName),subtitleClassName:X(`mt-1 text-sm text-muted-foreground`,y||k.Modal.subtitleClassName),bodyClassName:X(`min-h-0 flex-1 overflow-auto p-4`,b||k.Modal.bodyClassName),footerClassName:X(`flex items-center justify-end gap-3 border-t border-border/60 px-4 py-3`,x||k.Modal.footerClassName)},top:{coverClass:`fixed inset-0 z-50`,dialogClass:X(`fixed left-0 right-0 top-0 z-50 flex flex-col border-b border-border/60 bg-card shadow-xl`,H,h||k.Modal.wrapperClassName),contentClass:X(`flex min-h-0 flex-1 flex-col`,g||k.Modal.className),headerClassName:X(`flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3`,_||k.Modal.headerClassName),titleClassName:X(`text-lg font-semibold leading-none`,v||k.Modal.titleClassName),subtitleClassName:X(`mt-1 text-sm text-muted-foreground`,y||k.Modal.subtitleClassName),bodyClassName:X(`min-h-0 flex-1 overflow-auto p-4`,b||k.Modal.bodyClassName),footerClassName:X(`flex items-center justify-end gap-3 border-t border-border/60 px-4 py-3`,x||k.Modal.footerClassName)},left:{coverClass:`fixed inset-0 z-50`,dialogClass:X(`fixed bottom-0 left-0 top-0 z-50 flex max-w-full flex-col border-r border-border/60 bg-card shadow-xl`,V,h||k.Modal.wrapperClassName),contentClass:X(`flex min-h-0 flex-1 flex-col`,g||k.Modal.className),headerClassName:X(`flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3`,_||k.Modal.headerClassName),titleClassName:X(`text-lg font-semibold leading-none`,v||k.Modal.titleClassName),subtitleClassName:X(`mt-1 text-sm text-muted-foreground`,y||k.Modal.subtitleClassName),bodyClassName:X(`min-h-0 flex-1 overflow-auto p-4`,b||k.Modal.bodyClassName),footerClassName:X(`flex items-center justify-end gap-3 border-t border-border/60 px-4 py-3`,x||k.Modal.footerClassName)},right:{coverClass:`fixed inset-0 z-50`,dialogClass:X(`fixed bottom-0 right-0 top-0 z-50 flex max-w-full flex-col border-l border-border/60 bg-card shadow-xl`,V,h||k.Modal.wrapperClassName),contentClass:X(`flex min-h-0 flex-1 flex-col`,g||k.Modal.className),headerClassName:X(`flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3`,_||k.Modal.headerClassName),titleClassName:X(`text-lg font-semibold leading-none`,v||k.Modal.titleClassName),subtitleClassName:X(`mt-1 text-sm text-muted-foreground`,y||k.Modal.subtitleClassName),bodyClassName:X(`min-h-0 flex-1 overflow-auto p-4`,b||k.Modal.bodyClassName),footerClassName:X(`flex items-center justify-end gap-3 border-t border-border/60 px-4 py-3`,x||k.Modal.footerClassName)},bottom:{coverClass:`fixed inset-0 z-50`,dialogClass:X(`fixed bottom-0 left-0 right-0 z-50 flex flex-col border-t border-border/60 bg-card shadow-xl`,H,h||k.Modal.wrapperClassName),contentClass:X(`flex min-h-0 flex-1 flex-col`,g||k.Modal.className),headerClassName:X(`flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3`,_||k.Modal.headerClassName),titleClassName:X(`text-lg font-semibold leading-none`,v||k.Modal.titleClassName),subtitleClassName:X(`mt-1 text-sm text-muted-foreground`,y||k.Modal.subtitleClassName),bodyClassName:X(`min-h-0 flex-1 overflow-auto p-4`,b||k.Modal.bodyClassName),footerClassName:X(`flex items-center justify-end gap-3 border-t border-border/60 px-4 py-3`,x||k.Modal.footerClassName)}},te=z===`fullscreen`?`center`:u||k.Modal.position,ne=U[te],re=z===`fullscreen`?X(ne.coverClass,`!overflow-hidden !p-0`):ne.coverClass,W=n.default.useRef(!1),G=()=>{W.current&&(W.current=!1,oi())};n.default.useEffect(()=>{ai(),W.current=!0;let e=window.requestAnimationFrame(()=>M(!0));return()=>{window.cancelAnimationFrame(e),R.current!==void 0&&window.clearTimeout(R.current),G()}},[]);let ie=O??k.Modal.motion?.[te]??`fade`,ae=zt(ie,ie),oe=n.default.useRef(()=>void 0),se=C&&!!a;n.default.useEffect(()=>{if(T||!se)return;let e=Symbol(`modal`);ni.push(e);let t=t=>{t.key===`Escape`&&ni[ni.length-1]===e&&(t.preventDefault(),oe.current())};return window.document.addEventListener(`keydown`,t),()=>{window.document.removeEventListener(`keydown`,t);let n=ni.indexOf(e);n!==-1&&ni.splice(n,1)}},[T,se]);let ce=()=>{if(N.current)return;N.current=!0,I.current=ti(P.current),L.current(),M(!1),G();let e=ae.transition.duration+ae.transition.delay;R.current=window.setTimeout(()=>{a?.()},e)};oe.current=ce;let le=Bt(j,ie,ie),ue=E?{right:E}:{},K={...Bt(j,k.Modal.motion?.backdrop??`fade`,k.Modal.motion?.backdrop??`fade`),...T?{pointerEvents:`none`}:{},cursor:S&&a?`pointer`:`default`,...w===void 0?{}:{zIndex:w-10},...ue},de={cursor:S&&a?`pointer`:`default`,...w===void 0?{}:{zIndex:w},...T?{pointerEvents:`none`}:{},...ue},fe=te===`right`||te===`left`?te:void 0;n.default.useLayoutEffect(()=>{let e=P.current;if(!e||!fe)return;let t={dialog:e,side:fe,natural:e.offsetWidth};Qr.push(t),$r.add(F);let n=!1,r=()=>{if(n)return;n=!0;let e=Qr.indexOf(t);e!==-1&&Qr.splice(e,1),ei()};return L.current=r,ei(),()=>{$r.delete(F),r()}},[fe]);let pe=N.current?I.current:ti(P.current),me=pe===void 0?{}:{width:pe,maxWidth:`100%`,transition:[le.transition,ae.transition.duration?`width ${ae.transition.duration}ms ${ae.transition.easing}`:``].filter(Boolean).join(`, `)},he={opacity:+!!T,transition:ae.transition.duration?`opacity ${ae.transition.duration}ms ${ae.transition.easing}`:void 0},ge=i!==!1&&(i||o||s||f&&a),_e=(0,n.useId)(),ve=t||typeof r==`string`&&r?_e:void 0,ye=`inline-flex h-9 w-9 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`;return(0,c.createPortal)(n.default.createElement(n.default.Fragment,null,n.default.createElement(`div`,{className:re,style:de,onClick:()=>{S&&a&&ce()}},n.default.createElement(`div`,{ref:P,role:`dialog`,"aria-modal":!T||void 0,"aria-labelledby":ve,className:ne.dialogClass,style:{...le,...me,...w===void 0?{}:{zIndex:w},...te===`right`?ue:{}},onClick:e=>e.stopPropagation()},p,n.default.createElement(`div`,{className:ne.contentClass},(r||t||d||a||D)&&n.default.createElement(`div`,{className:ne.headerClassName},n.default.createElement(`div`,{className:`min-w-0`},t&&n.default.createElement(`h3`,{id:_e,className:ne.titleClassName},t),t&&r&&n.default.createElement(`div`,{className:ne.subtitleClassName},r),!t&&r&&(typeof r==`string`?n.default.createElement(`h3`,{id:_e,className:ne.titleClassName},r):r)),(d||a||D)&&n.default.createElement(`div`,{className:`ml-auto flex shrink-0 items-center gap-1`},d&&n.default.createElement(`button`,{type:`button`,title:z===`fullscreen`?`Exit fullscreen`:`Enter fullscreen`,"aria-label":z===`fullscreen`?`Exit fullscreen`:`Enter fullscreen`,className:ye,onClick:e=>{e.preventDefault(),e.stopPropagation(),B(e=>e===`fullscreen`?l===`fullscreen`?`lg`:l:`fullscreen`)}},n.default.createElement(Q,{name:z===`fullscreen`?k.Modal.iconCollapse:k.Modal.iconExpand,size:18})),D??(a&&n.default.createElement(`button`,{type:`button`,title:A.close,"aria-label":A.close,className:ye,onClick:e=>{e.preventDefault(),e.stopPropagation(),ce()}},n.default.createElement(Q,{name:`x`,size:20}))))),n.default.createElement(`div`,{className:ne.bodyClassName},e),ge&&n.default.createElement(`div`,{className:ne.footerClassName},i,!i&&o&&n.default.createElement(Sn,{variant:`primary`,label:A.save,onClick:async e=>{e.preventDefault(),await o(e)&&ce()}}),!i&&s&&n.default.createElement(Sn,{variant:`danger`,label:A.delete,onClick:async e=>{e.preventDefault(),await s(e),ce()}}),!i&&f&&a&&n.default.createElement(Cn,{variant:`link`,label:A.cancel,onClick:ce}))),m,n.default.createElement(`div`,{"data-rf-modal-veil":``,"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 z-10 bg-black/40`,style:he}))),n.default.createElement(`div`,{"data-rf-modal-backdrop":``,"aria-hidden":`true`,className:`fixed inset-0 z-40 bg-black/60 backdrop-blur-sm`,style:K,onClick:()=>{S&&a&&ce()}})),document.body)},li=({children:e,title:t=void 0,onYes:r=void 0,onNo:i=void 0,onClose:a=void 0})=>{let o=Y(`modal`);return n.default.createElement(ci,{title:t,onClose:a,allowFullscreen:!1,footer:n.default.createElement(n.default.Fragment,null,r&&n.default.createElement(Sn,{variant:`primary`,label:o.yes,onClick:async e=>{e.preventDefault(),await r(e),a?.()}}),i&&n.default.createElement(Sn,{variant:`secondary`,label:o.no,onClick:async e=>{e.preventDefault(),await i(e),a?.()}}))},e)},ui=({children:e,title:t=void 0,onClose:r=void 0})=>{let i=Y(`modal`);return n.default.createElement(ci,{title:t,onClose:r,allowFullscreen:!1,footer:n.default.createElement(n.default.Fragment,null,n.default.createElement(Cn,{variant:`primary`,label:i.ok,onClick:r}))},e)},di=()=>n.default.createElement(`div`,{className:`h-5 w-px bg-border shrink-0 mx-0.5`}),fi=({src:e,title:t=void 0,width:r=700,height:i=500,mode:a=`inline`,onImageLoad:o=void 0,onClose:s=void 0,onSave:c=void 0})=>{let l=Y(`imageEditor`),u=(0,n.useRef)(null),d=(0,n.useRef)(null),f={width:10,color:`rgba(255,0,0,0.5)`,fill:`transparent`},[p,m]=(0,n.useState)(1);(0,n.useEffect)(()=>{if(!u.current)return;let t,n=!1;return(async()=>{let[{default:a}]=await Promise.all([import(`tui-image-editor`),import(`tui-image-editor/dist/tui-image-editor.css`)]);!n&&u.current&&(t=new a(u.current,{cssMaxWidth:r,cssMaxHeight:i,selectionStyle:{cornerSize:10,rotatingPointOffset:70,cornerColor:`white`,cornerStrokeColor:`red`,borderColor:`red`}}),d.current=t,e&&t.loadImageFromURL(e,`Sample Image`).then(()=>{o?.(),t.clearUndoStack(),t.clearRedoStack()}).catch(e=>{console.error(`Error loading image:`,e)}),t.on(`objectAdded`,e=>{console.log(`objectAdded`,e),t.stopDrawingMode()}),t.on(`addText`,e=>{let n=e;t.stopDrawingMode(),t.addText(`init text`,{styles:{fill:`#FF0000`,fontSize:30,fontWeight:`bold`},position:{x:n.originPosition?.x,y:n.originPosition?.y}})}))})(),()=>{n=!0,t?.destroy(),d.current=null}},[r,i]);let h=(0,n.useCallback)(()=>{let t=d.current;e&&t&&t.loadImageFromURL(e,`Sample Image`).then(()=>{o?.(),t.clearUndoStack(),t.clearRedoStack()}).catch(e=>{console.error(`Error loading image:`,e)})},[e,o]);(0,n.useEffect)(()=>{d.current&&h()},[h]);let g=(e,t)=>{e.preventDefault();let n=d.current;if(n)switch(t){case`ZOOMIN`:p<3&&m(e=>e*1.2);break;case`ZOOMOUT`:p>1&&m(e=>Math.max(e*.8,1));break;case`UNDO`:n.isEmptyUndoStack()||n.undo();break;case`REDO`:n.isEmptyRedoStack()||n.redo();break;case`FLIPX`:n.flipX();break;case`FLIPY`:n.flipY();break;case`ROTATE`:n.rotate(90);break;case`CROPPER`:n.startDrawingMode(t);break;case`FREE_DRAWING`:n.startDrawingMode(t,{width:f.width,color:f.color});break;case`LINE_DRAWING`:n.startDrawingMode(t,{width:f.width,color:f.color,arrowType:{tail:`chevron`}});break;case`TEXT`:n.startDrawingMode(t);break;case`circle`:case`rect`:case`triangle`:n.setDrawingShape(t,{fill:f.fill,stroke:f.color,strokeWidth:3}),n.startDrawingMode(`SHAPE`)}};(0,n.useEffect)(()=>{if(a===`modal`)return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=``}},[a]);let _=async()=>{let e=d.current;if(e){try{let t=e.getCropzoneRect?.();t&&t.width>0&&t.height>0&&await e.crop(t)}catch{}await c?.(e.toDataURL())}},v=()=>{s?.()},y=`inline-flex h-8 w-8 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,b=n.default.createElement(n.default.Fragment,null,n.default.createElement(`button`,{className:y,title:l.undo,onClick:e=>g(e,`UNDO`)},n.default.createElement(Q,{name:`arrow-arc-left`,size:16})),n.default.createElement(`button`,{className:y,title:l.redo,onClick:e=>g(e,`REDO`)},n.default.createElement(Q,{name:`arrow-arc-right`,size:16})),n.default.createElement(`button`,{className:y,title:l.zoomOut,onClick:e=>g(e,`ZOOMOUT`)},n.default.createElement(Q,{name:`magnifying-glass-minus`,size:16})),n.default.createElement(`button`,{className:y,title:l.zoomIn,onClick:e=>g(e,`ZOOMIN`)},n.default.createElement(Q,{name:`magnifying-glass-plus`,size:16})),n.default.createElement(di,null),n.default.createElement(`button`,{className:y,title:l.crop,onClick:e=>g(e,`CROPPER`)},n.default.createElement(Q,{name:`crop`,size:16})),n.default.createElement(`button`,{className:y,title:l.flipHorizontal,onClick:e=>g(e,`FLIPX`)},n.default.createElement(Q,{name:`arrow-line-right`,size:16})),n.default.createElement(`button`,{className:y,title:l.flipVertical,onClick:e=>g(e,`FLIPY`)},n.default.createElement(Q,{name:`arrow-line-down`,size:16})),n.default.createElement(`button`,{className:y,title:l.rotate,onClick:e=>g(e,`ROTATE`)},n.default.createElement(Q,{name:`camera-rotate`,size:16})),n.default.createElement(di,null),n.default.createElement(`button`,{className:y,title:l.freeDrawing,onClick:e=>g(e,`FREE_DRAWING`)},n.default.createElement(Q,{name:`pencil`,size:16})),n.default.createElement(`button`,{className:y,title:l.arrow,onClick:e=>g(e,`LINE_DRAWING`)},n.default.createElement(Q,{name:`arrow-right`,size:16})),n.default.createElement(`button`,{className:y,title:l.text,onClick:e=>g(e,`TEXT`)},n.default.createElement(Q,{name:`text-t`,size:16})),n.default.createElement(`button`,{className:y,title:l.rectangle,onClick:e=>g(e,`rect`)},n.default.createElement(Q,{name:`rectangle`,size:16})),n.default.createElement(`button`,{className:y,title:l.circle,onClick:e=>g(e,`circle`)},n.default.createElement(Q,{name:`circle`,size:16})),n.default.createElement(`button`,{className:y,title:l.triangle,onClick:e=>g(e,`triangle`)},n.default.createElement(Q,{name:`triangle`,size:16}))),x=n.default.createElement(`div`,{className:`flex flex-1 min-w-0 items-center gap-0.5 overflow-x-auto`},n.default.createElement(`span`,{className:`shrink-0 text-sm font-semibold text-foreground pr-2 mr-1`},t||l.title),n.default.createElement(di,null),b,c&&n.default.createElement(n.default.Fragment,null,n.default.createElement(di,null),n.default.createElement(Sn,{className:`btn-primary h-8 px-3 text-xs ml-1`,onClick:_,icon:`floppy-disk`,label:l.save}))),S=n.default.createElement(`div`,{className:`flex items-center gap-0.5 border-b px-2 py-1`},b,c&&n.default.createElement(`div`,{className:`ml-auto pl-2`},n.default.createElement(Sn,{className:`btn-primary h-8 px-3 text-xs`,onClick:_,icon:`floppy-disk`,label:l.save}))),C=n.default.createElement(`div`,{className:X(`flex w-full items-center justify-center overflow-auto pt-3`,`[background-image:repeating-conic-gradient(#e4e4e4_0%_25%,#f5f5f5_0%_50%)]`,`dark:[background-image:repeating-conic-gradient(#2a2a2a_0%_25%,#343434_0%_50%)]`,`[background-size:16px_16px]`),style:{minHeight:i*p+`px`}},n.default.createElement(`style`,null,`.tui-image-editor,.tui-image-editor canvas{background:transparent!important}`),n.default.createElement(`div`,{ref:u,style:{transform:`scale(${p})`,transformOrigin:`center center`,display:`inline-block`,userSelect:`none`,width:r+`px`,height:i*p+`px`}}));return a===`modal`?n.default.createElement(si,{size:`xl`,header:x,bodyClassName:`overflow-hidden p-0`,onClose:v,footer:!1},C):n.default.createElement(n.default.Fragment,null,S,C)},pi=({srcset:e})=>{let t=Y(`imageField`),r=e.split(`,`).map(e=>e.trim()).map(e=>{let[t,n]=e.split(` `);return{url:t,width:parseInt(n,10)}}).filter(e=>e.url&&!isNaN(e.width));return r.length<2?null:n.default.createElement(`div`,{className:`mt-2 flex flex-col gap-1`},n.default.createElement(`p`,{className:`text-xs font-medium text-muted-foreground`},t.responsiveVariants,n.default.createElement(`span`,{className:`ml-1 font-normal opacity-60`},J(t.variantsGenerated,{count:r.length}))),n.default.createElement(`div`,{className:`flex gap-1.5`},r.map(e=>n.default.createElement(`a`,{key:e.width,href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`group relative flex-1 overflow-hidden rounded border border-border`,style:{backgroundImage:`repeating-conic-gradient(#e4e4e4 0% 25%, #f5f5f5 0% 50%)`,backgroundSize:`8px 8px`}},n.default.createElement(`img`,{src:e.url,alt:`${e.width}w`,className:`h-12 w-full object-contain transition-opacity group-hover:opacity-80`}),n.default.createElement(`span`,{className:`absolute bottom-0.5 left-0.5 rounded bg-black/60 px-1 py-0.5 text-[9px] font-mono leading-none text-white`},e.width,`px`),n.default.createElement(`div`,{className:`absolute inset-0 flex items-center justify-center opacity-0 transition-opacity group-hover:opacity-100`},n.default.createElement(`div`,{className:`rounded-md bg-black/60 p-1`},n.default.createElement(Q,{name:`external-link`,size:11,className:`text-white`})))))))},mi=({name:e,onChange:t=void 0,defaultValue:r=void 0,label:i=void 0,required:a=!1,disabled:o=!1,feedback:s=void 0,srcsetWidths:c=[],uploadPath:l=void 0,id:u=void 0,labelClassName:d=void 0,inheritWrapperClassName:f=!0,wrapperClassName:p=void 0,className:m=void 0,before:h=void 0,after:g=void 0})=>{let{value:_,handleChange:v,formWrapClass:y}=Dc({name:e,onChange:t,defaultValue:r,wrapperClassName:p,inheritWrapperClassName:f}),b=Ec(e,{required:a,label:i}),x=_&&typeof _==`object`&&!Array.isArray(_)?_:{},S=x.src??``,C=x.alt??``,w=x.srcset??``,T=x.sizes??``,E=Xr(),D=Y(`imageField`),[O,k]=(0,n.useState)(!1),[A,j]=(0,n.useState)(!1),M=(0,n.useRef)(null),N=(0,n.useCallback)(t=>{v?.({target:{name:e,value:{...x,...t}}})},[v,e,x]),P=(0,n.useRef)(``);(0,n.useEffect)(()=>{S&&S!==P.current&&!C&&N({alt:qr(Kr(S))}),P.current=S},[S]),(0,n.useEffect)(()=>{if(!S||!c.length)return;let e=!1;return k(!0),(async()=>{let{variants:t,naturalWidth:n}=await Ur(S,c);if(e)return;let r=Kr(S),i,a=S.startsWith(`data:`)?URL.createObjectURL(await fetch(S).then(e=>e.blob())):S;i=E&&l&&t.length?[...await Wr(t,E,l,r),{url:a,width:n}]:[...t.map(e=>({url:e.localUrl,width:e.width})),{url:a,width:n}],e||(N({srcset:Gr(i),sizes:`(max-width: 640px) 100vw, 800px`}),k(!1))})().catch(()=>{e||k(!1)}),()=>{e=!0}},[S,c.join(`,`)]);let F=e=>{N({src:e,srcset:``,sizes:``}),j(!1)},I=!!b;return n.default.createElement(Z,{className:y},h,i&&n.default.createElement(gl,{label:i,required:a,htmlFor:u??e,className:d}),n.default.createElement(`div`,{className:X(`rounded-lg border border-input bg-background shadow-sm transition-colors`,`focus-within:ring-1 focus-within:ring-ring`,I&&`border-destructive focus-within:ring-destructive/20`,o&&`cursor-not-allowed opacity-50`,m)},n.default.createElement(`div`,{className:X(`group relative flex min-h-[120px] items-center justify-center overflow-hidden rounded-t-lg transition-colors`,`[background-image:repeating-conic-gradient(#e4e4e4_0%_25%,#f5f5f5_0%_50%)]`,`dark:[background-image:repeating-conic-gradient(#2a2a2a_0%_25%,#343434_0%_50%)]`,`[background-size:16px_16px]`)},S?n.default.createElement(`img`,{src:S,srcSet:w||void 0,sizes:T||void 0,alt:``,className:`max-h-[180px] max-w-full object-contain`}):n.default.createElement(Q,{name:`image`,size:36,className:`opacity-20 text-muted-foreground`}),S&&n.default.createElement(`div`,{className:`absolute right-2 top-2 flex gap-1 opacity-0 transition-opacity group-hover:opacity-100`},n.default.createElement(`a`,{href:S,target:`_blank`,rel:`noopener noreferrer`,title:D.openOriginal,className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80`},n.default.createElement(Q,{name:`external-link`,size:13})),n.default.createElement(`button`,{type:`button`,title:D.crop,disabled:o,onClick:()=>j(!0),className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80 disabled:cursor-not-allowed disabled:opacity-40`},n.default.createElement(Q,{name:`crop`,size:13}))),O&&n.default.createElement(`div`,{className:`absolute inset-0 flex items-center justify-center bg-background/70 backdrop-blur-sm`},n.default.createElement(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`},n.default.createElement(Q,{name:`loader-circle`,size:14,className:`animate-spin`}),D.generatingVariants))),n.default.createElement(`div`,{className:`flex flex-col gap-3 p-3`},n.default.createElement(`div`,{className:`flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},D.imageUrl,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},D.imageUrlHint)),n.default.createElement(`input`,{type:`url`,value:S,disabled:o,onChange:e=>N({src:e.target.value,srcset:``,sizes:``}),placeholder:`https://example.com/image.jpg`,className:`h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring disabled:opacity-50`})),n.default.createElement(`div`,{className:`flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},D.altText,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},D.altTextHint),a&&n.default.createElement(`span`,{className:`ml-1 text-destructive`},`*`)),n.default.createElement(`input`,{ref:M,type:`text`,value:C,disabled:o,onChange:e=>N({alt:e.target.value}),placeholder:D.altPlaceholder,className:X(`h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring disabled:opacity-50`,I&&`border-destructive`)})),w&&n.default.createElement(pi,{srcset:w}))),b&&n.default.createElement(Zc,{message:b}),!b&&s&&n.default.createElement(`p`,{className:`mt-1 text-xs text-muted-foreground`},s),g,A&&S&&n.default.createElement(fi,{src:S,mode:`modal`,title:J(D.cropTitle,{name:Kr(S)}),onClose:()=>j(!1),onSave:F}))},hi={primary:`primary`,secondary:`secondary`,success:`success`,warning:`warning`,danger:`destructive`,info:`info`,light:`muted`,dark:`foreground`},gi={primary:`primary-foreground`,secondary:`secondary-foreground`,success:`success-foreground`,warning:`warning-foreground`,danger:`destructive-foreground`,info:`info-foreground`,light:`muted-foreground`,dark:`background`},_i=(e,t)=>`hsl(var(--rf-${e})${t===void 0?``:` / ${t}`})`,vi=({progress:e,variant:t,thickness:r,showText:i,trackVariant:a,size:o,fontSize:s,className:c})=>{let l=_i(hi[a],a===`secondary`||a===`light`?.55:.16),u=_i(hi[t]),d=_i(e>=12?gi[t]:`foreground`);return n.default.createElement(`div`,{className:X(`relative overflow-hidden rounded-full border border-border shadow-sm`,c),style:{height:`${r}px`,width:`${o}%`,minWidth:o<100?120:void 0,backgroundColor:l},role:`progressbar`,"aria-valuenow":e,"aria-valuemin":0,"aria-valuemax":100},n.default.createElement(`div`,{className:`h-full rounded-full transition-all duration-300`,style:{width:`${e}%`,backgroundColor:u}}),i&&n.default.createElement(`span`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center font-medium tabular-nums`,style:{fontSize:`${s}px`,color:d}},e,`%`))},yi=({progress:e,variant:t,thickness:r,showText:i,trackVariant:a,size:o,fontSize:s,className:c})=>{let l=o/2,u=l-r/2,d=2*Math.PI*u,f=d*((100-e)/100),p=_i(hi[a],a===`secondary`||a===`light`?.55:.18),m=_i(hi[t]),h=_i(`foreground`);return n.default.createElement(`span`,{className:X(`inline-flex items-center justify-center`,c),role:`progressbar`,"aria-valuenow":e,"aria-valuemin":0,"aria-valuemax":100},n.default.createElement(`svg`,{width:o,height:o,viewBox:`0 0 ${o} ${o}`},n.default.createElement(`circle`,{r:u,cx:l,cy:l,fill:`none`,stroke:p,strokeWidth:r}),n.default.createElement(`circle`,{r:u,cx:l,cy:l,fill:`none`,stroke:m,strokeWidth:r,strokeLinecap:`round`,strokeDasharray:d,strokeDashoffset:f,style:{transform:`rotate(-90deg)`,transformOrigin:`center`,transition:`stroke-dashoffset 300ms ease`}}),i&&n.default.createElement(`text`,{x:`50%`,y:`50%`,textAnchor:`middle`,dominantBaseline:`middle`,fontWeight:700,fontSize:s,fill:h},`${e}%`)))},bi=({value:e=0,max:t=100,min:r=0,appearance:i=`bar`,variant:a=`primary`,trackVariant:o=`secondary`,thickness:s=10,showText:c=!0,size:l=100,fontSize:u=16,label:d=void 0,before:f=void 0,after:p=void 0,wrapperClassName:m=void 0,className:h=void 0})=>{let g=q(`percentage`),_=t-r,v=_<=0?0:Math.round(Math.max(0,Math.min(100,(e-r)/_*100))),y=h||g.Percentage?.className||``;return n.default.createElement(Z,{className:m||g.Percentage?.wrapperClassName},f,d&&n.default.createElement(gl,{label:d}),i===`bar`?n.default.createElement(vi,{progress:v,variant:a,thickness:s,showText:c,trackVariant:o,size:l,fontSize:u,className:y}):n.default.createElement(yi,{progress:v,variant:a,thickness:s,showText:c,trackVariant:o,size:l,fontSize:u,className:y}),p)},xi={"1:1":1,"3:4":3/4,"4:3":4/3},Si=48,Ci=(e,t)=>{let n=e.split(`.`).pop()??``;return`${e.replace(/\.[^/.]+$/,``)}${`_${t.replace(`:`,`x`)}`}.${n}`},wi={nw:`nwse-resize`,n:`ns-resize`,ne:`nesw-resize`,e:`ew-resize`,se:`nwse-resize`,s:`ns-resize`,sw:`nesw-resize`,w:`ew-resize`},Ti=()=>{let[e,t]=(0,n.useState)(()=>document.documentElement.classList.contains(`dark`));return(0,n.useEffect)(()=>{let e=new MutationObserver(()=>t(document.documentElement.classList.contains(`dark`)));return e.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),()=>e.disconnect()},[]),e},Ei=(0,n.forwardRef)(({img:e,title:t,scales:r},i)=>{let a=r??xi,o=Y(`crop`),s=(0,n.useRef)(null),c=(0,n.useRef)(null),l=()=>{let t=Object.keys(e.variants??{}).filter(e=>e in a);return t.length?t:Object.keys(a)},u=Ti(),[d,f]=(0,n.useState)(l),[p,m]=(0,n.useState)(()=>l()[0]??Object.keys(a)[0]),[h,g]=(0,n.useState)(e.fileName),[_,v]=(0,n.useState)(e.alt??``),[y,b]=(0,n.useState)(e.variants??{}),[x,S]=(0,n.useState)(null),[C,w]=(0,n.useState)(!1),[T,E]=(0,n.useState)(!1),D=(0,n.useRef)(y),O=(0,n.useRef)(x),k=(0,n.useRef)(p),A=(0,n.useRef)(d),j=(0,n.useRef)(h);(0,n.useEffect)(()=>{D.current=y},[y]),(0,n.useEffect)(()=>{O.current=x},[x]),(0,n.useEffect)(()=>{k.current=p},[p]),(0,n.useEffect)(()=>{A.current=d},[d]),(0,n.useEffect)(()=>{j.current=h},[h]),(0,n.useEffect)(()=>{b(e=>{let t={};for(let[n,r]of Object.entries(e))t[n]={...r,fileName:Ci(h,n)};return t})},[h]);let M=(0,n.useRef)(null),N=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=e=>{let t=M.current,n=N.current;if(!t&&!n)return;let r=k.current,i=O.current,o=D.current[r];if(!i||!o)return;let s=a[r]??1;if(t){let n=Math.max(0,Math.min(e.clientX-t.offsetX,i.width-o.width)),a=Math.max(0,Math.min(e.clientY-t.offsetY,i.height-o.height));b(e=>({...e,[r]:{...e[r],left:n,top:a}}))}if(n){let{handle:t,sx:a,sy:o,sl:c,st:l,sw:u,sh:d}=n,f=e.clientX-a,p=e.clientY-o,m=c,h=l,g=u,_=d;if(t===`n`||t===`s`){let e=t===`n`?-p:p;_=Math.max(Si,d+e),g=_*s,t===`n`&&(h=l+d-_),m=c+(u-g)/2}else if(t===`e`||t===`w`){let e=t===`w`?-f:f;g=Math.max(Si,u+e),_=g/s,t===`w`&&(m=c+u-g),h=l+(d-_)/2}else{let e=t.includes(`e`)?f:-f,n=t.includes(`s`)?p:-p;g=Math.max(Si,u+(Math.abs(e)>Math.abs(n)?e:n)),_=g/s,t.includes(`n`)&&(h=l+d-_),t.includes(`w`)&&(m=c+u-g)}m=Math.max(0,m),h=Math.max(0,h);let v=i.width-m,y=i.height-h;if(g>v||_>y){let e=Math.min(v/g,y/_);g*=e,_*=e}g<Si&&(g=Si,_=g/s),_<Si&&(_=Si,g=_*s),b(e=>({...e,[r]:{...e[r],left:m,top:h,width:g,height:_}}))}},t=()=>{M.current=null,N.current=null,E(!1)};return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t)}},[]),(0,n.useLayoutEffect)(()=>{if(!C)return;let t=c.current;if(!t)return;let{width:n,height:r}=t.getBoundingClientRect();if(n&&r&&(S(e=>e&&e.width===n&&e.height===r?e:{width:n,height:r}),!D.current[p])){let t=a[p]??1,i=Math.min(n*.78,r*t*.78),o=i/t;b(t=>({...t,[p]:{fileName:Ci(j.current,p),type:e.type,scale:p,left:(n-i)/2,top:(r-o)/2,width:i,height:o,base64:``}}))}},[p,C]),(0,n.useImperativeHandle)(i,()=>({handleSave:()=>{let e=s.current,t=e?.getContext(`2d`),n=c.current;if(!e||!t||!n)return{fileName:j.current,alt:_,variants:{}};let r=O.current,i={};for(let a of A.current){let o=D.current[a];if(!o||!r)continue;let s=n.naturalWidth/r.width,c=n.naturalHeight/r.height,{top:l,left:u,width:d,height:f}=o;e.width=Math.round(d*s),e.height=Math.round(f*c),t.clearRect(0,0,e.width,e.height),t.drawImage(n,u*s,l*c,d*s,f*c,0,0,e.width,e.height),i[a]={...o,base64:e.toDataURL(o.type)}}return{fileName:j.current,alt:_,variants:i}}}));let P=e=>{d.includes(e)||f(t=>[...t,e]),m(e)},F=(e,t)=>{t.stopPropagation();let n=d.filter(t=>t!==e);if(f(n),e===p){let t=n.filter(e=>e in a);m(t[0]??Object.keys(a).find(t=>t!==e)??Object.keys(a)[0])}},I=e=>{e.preventDefault(),e.stopPropagation();let t=D.current[p];t&&(M.current={offsetX:e.clientX-t.left,offsetY:e.clientY-t.top},E(!0))},L=(e,t)=>{e.preventDefault(),e.stopPropagation();let n=D.current[p];n&&(N.current={handle:t,sx:e.clientX,sy:e.clientY,sl:n.left,st:n.top,sw:n.width,sh:n.height},E(!0))},R=d.includes(p),z=y[p];return n.default.createElement(`div`,{className:[`flex gap-4 h-full min-h-0`,t?`flex-col`:``].join(` `)},t&&n.default.createElement(`h3`,{className:`text-base font-semibold shrink-0`},t),n.default.createElement(`div`,{className:`flex gap-4 flex-1 min-h-0`},n.default.createElement(`div`,{className:`flex-1 min-w-0 min-h-0 flex items-center justify-center rounded-xl overflow-hidden`,style:{cursor:T?`grabbing`:void 0,...u?{backgroundColor:`#1a1a1a`,backgroundImage:`linear-gradient(45deg,#272727 25%,transparent 25%),linear-gradient(-45deg,#272727 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#272727 75%),linear-gradient(-45deg,transparent 75%,#272727 75%)`}:{backgroundColor:`#f0f0f0`,backgroundImage:`linear-gradient(45deg,#dcdcdc 25%,transparent 25%),linear-gradient(-45deg,#dcdcdc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#dcdcdc 75%),linear-gradient(-45deg,transparent 75%,#dcdcdc 75%)`},backgroundSize:`20px 20px`,backgroundPosition:`0 0,0 10px,10px -10px,-10px 0`}},R?n.default.createElement(`div`,{className:`relative select-none`,style:{display:`inline-block`,lineHeight:0}},n.default.createElement(`img`,{src:Bi(e),alt:`Crop target`,ref:c,style:{maxHeight:`calc(100dvh - 200px)`,maxWidth:`100%`,display:`block`},draggable:!1,onLoad:()=>w(!0)}),z&&x&&n.default.createElement(ji,{crop:z,onMoveStart:I,onResizeStart:L})):n.default.createElement(`div`,{className:`flex flex-col items-center gap-3 text-zinc-500 select-none`},n.default.createElement(`svg`,{className:`w-10 h-10 opacity-30`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},n.default.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5,d:`M4 8V6a2 2 0 012-2h2M4 16v2a2 2 0 002 2h2M16 4h2a2 2 0 012 2v2M16 20h2a2 2 0 002-2v-2M9 12l2 2 4-4`})),n.default.createElement(`p`,{className:`text-sm`},o.enableCrop.split(`{scale}`)[0],n.default.createElement(`strong`,{className:`text-zinc-300`},p),o.enableCrop.split(`{scale}`)[1]))),n.default.createElement(`div`,{className:`w-52 shrink-0 flex flex-col gap-4 min-h-0`},n.default.createElement(`div`,null,n.default.createElement(Mi,{value:h,onChange:g,label:o.fileName})),n.default.createElement(`div`,{className:`flex flex-col gap-1 shrink-0`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},o.altText),n.default.createElement(`textarea`,{defaultValue:_,onBlur:e=>v(e.target.value),placeholder:o.altTextPlaceholder,rows:2,className:`w-full min-w-0 resize-none rounded-md border border-input bg-background px-2.5 py-1.5 text-sm focus:outline-none focus:ring-1 focus:ring-ring`})),n.default.createElement(`div`,{className:`flex-1 min-h-0 flex flex-col gap-2 overflow-y-auto`},n.default.createElement(`p`,{className:`text-xs font-semibold text-muted-foreground uppercase tracking-wide shrink-0`},o.variants),Object.keys(a).map(t=>n.default.createElement(Ai,{key:t,scale:t,ratio:a[t],img:e,crop:y[t],bounds:x,enabled:d.includes(t),active:t===p,onClick:()=>P(t),onRemove:e=>F(t,e)}))),R&&z&&n.default.createElement(`div`,{className:`shrink-0 pt-3 border-t border-border`},n.default.createElement(`p`,{className:`text-xs font-medium text-muted-foreground mb-1`},o.outputFile),n.default.createElement(`p`,{className:`text-xs text-foreground/70 truncate tabular-nums`,title:z.fileName},z.fileName??Ci(h,p))))),n.default.createElement(`canvas`,{ref:s,className:`hidden`}))});Ei.displayName=`CropImage`;var Di=120,Oi=88,ki=e=>{let t=Oi*e,n=Oi;return t>Di&&(t=Di,n=Di/e),{w:Math.round(t),h:Math.round(n)}},Ai=({scale:e,ratio:t,img:r,crop:i,bounds:a,enabled:o,active:s,onClick:c,onRemove:l})=>{let u=Y(`crop`),{w:d,h:f}=ki(t),p=(()=>{if(!i||!a||!i.width)return{background:`hsl(var(--muted))`};let e=d/i.width;return{backgroundImage:`url(${Bi(r)})`,backgroundSize:`${Math.round(a.width*e)}px ${Math.round(a.height*e)}px`,backgroundPosition:`-${Math.round(i.left*e)}px -${Math.round(i.top*e)}px`,backgroundRepeat:`no-repeat`}})();return n.default.createElement(`button`,{type:`button`,onClick:c,className:[`relative group flex flex-col rounded-lg border-2 transition-all overflow-hidden w-full text-left`,s?`border-primary bg-primary/5 shadow-sm`:o?`border-border hover:border-primary/40 bg-card`:`border-dashed border-muted-foreground/25 bg-transparent hover:border-muted-foreground/50`].join(` `)},n.default.createElement(`div`,{className:`flex items-center justify-center py-3 px-3 bg-muted/20`},o&&i&&a?n.default.createElement(`div`,{className:`rounded shadow-sm overflow-hidden shrink-0`,style:{width:d,height:f,...p}}):n.default.createElement(`div`,{className:`rounded border border-dashed border-muted-foreground/30 flex items-center justify-center shrink-0`,style:{width:d,height:f}},n.default.createElement(`svg`,{className:`w-5 h-5 text-muted-foreground/40`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},n.default.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5,d:`M12 4v16m8-8H4`})))),n.default.createElement(`div`,{className:`flex items-center justify-between px-2.5 py-1.5 border-t border-border/60`},n.default.createElement(`span`,{className:[`text-xs font-semibold tabular-nums`,s?`text-primary`:`text-foreground`].join(` `)},e),s&&o&&n.default.createElement(`span`,{className:`text-xs text-primary/60 font-normal`},u.active),o&&n.default.createElement(`span`,{role:`button`,tabIndex:-1,onClick:l,title:J(u.removeVariant,{scale:e}),className:`ml-auto w-5 h-5 flex items-center justify-center rounded-full text-muted-foreground hover:bg-destructive/10 hover:text-destructive transition-colors text-base leading-none`},`×`)))},ji=({crop:e,onMoveStart:t,onResizeStart:r})=>{let{top:i,left:a,width:o,height:s}=e;return n.default.createElement(`div`,{className:`absolute inset-0 pointer-events-none`},n.default.createElement(`div`,{className:`absolute`,style:{top:0,left:0,right:0,height:i,background:`rgba(0,0,0,0.55)`}}),n.default.createElement(`div`,{className:`absolute`,style:{top:i+s,left:0,right:0,bottom:0,background:`rgba(0,0,0,0.55)`}}),n.default.createElement(`div`,{className:`absolute`,style:{top:i,left:0,width:a,height:s,background:`rgba(0,0,0,0.55)`}}),n.default.createElement(`div`,{className:`absolute`,style:{top:i,left:a+o,right:0,height:s,background:`rgba(0,0,0,0.55)`}}),n.default.createElement(`div`,{onMouseDown:t,className:`absolute pointer-events-auto cursor-grab active:cursor-grabbing`,style:{top:i,left:a,width:o,height:s,border:`1.5px solid rgba(255,255,255,0.92)`,boxSizing:`border-box`}},n.default.createElement(`div`,{className:`absolute inset-0 pointer-events-none`,style:{backgroundImage:`linear-gradient(to right, rgba(255,255,255,0.18) 1px, transparent 1px),linear-gradient(to bottom, rgba(255,255,255,0.18) 1px, transparent 1px)`,backgroundSize:`33.33% 33.33%`}}),[`nw`,`ne`,`sw`,`se`].map(e=>n.default.createElement(`div`,{key:e,onMouseDown:t=>{t.stopPropagation(),r(t,e)},className:`absolute pointer-events-auto`,style:{cursor:wi[e],width:22,height:22,display:`flex`,alignItems:e.includes(`n`)?`flex-start`:`flex-end`,justifyContent:e.includes(`w`)?`flex-start`:`flex-end`,...e.includes(`n`)?{top:-2}:{bottom:-2},...e.includes(`w`)?{left:-2}:{right:-2}}},n.default.createElement(`span`,{style:{display:`block`,width:10,height:10,background:`#fff`,borderRadius:2,boxShadow:`0 1px 3px rgba(0,0,0,0.5)`}}))),[`n`,`s`].map(e=>n.default.createElement(`div`,{key:e,onMouseDown:t=>{t.stopPropagation(),r(t,e)},className:`absolute pointer-events-auto`,style:{cursor:wi[e],...e===`n`?{top:-4}:{bottom:-4},left:`50%`,transform:`translateX(-50%)`,width:24,height:12,display:`flex`,alignItems:`center`,justifyContent:`center`}},n.default.createElement(`span`,{style:{display:`block`,width:20,height:4,background:`#fff`,borderRadius:2,boxShadow:`0 1px 3px rgba(0,0,0,0.5)`}}))),[`e`,`w`].map(e=>n.default.createElement(`div`,{key:e,onMouseDown:t=>{t.stopPropagation(),r(t,e)},className:`absolute pointer-events-auto`,style:{cursor:wi[e],...e===`w`?{left:-4}:{right:-4},top:`50%`,transform:`translateY(-50%)`,width:12,height:24,display:`flex`,alignItems:`center`,justifyContent:`center`}},n.default.createElement(`span`,{style:{display:`block`,width:4,height:20,background:`#fff`,borderRadius:2,boxShadow:`0 1px 3px rgba(0,0,0,0.5)`}})))))},Mi=({value:e,onChange:t,label:r,scale:i})=>{let a=e?.split(`.`).pop()??``,o=i?`_${i.replace(`:`,`x`)}`:void 0;return n.default.createElement(`div`,{className:`flex flex-col gap-1`},r&&n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},r),n.default.createElement(`div`,{className:`flex items-center gap-1.5`},n.default.createElement(`input`,{type:`text`,defaultValue:(e=>{let t=e.replace(/\.[^/.]+$/,``);return o&&t.endsWith(o)?t.slice(0,-o.length):t})(e||``),onBlur:e=>t(`${e.target.value.trim()}${o??``}.${a}`),className:`flex-1 h-8 min-w-0 rounded-md border border-input bg-background px-2.5 text-sm focus:outline-none focus:ring-1 focus:ring-ring`}),o&&n.default.createElement(`span`,{className:`text-xs text-muted-foreground shrink-0 tabular-nums`},o,`.`,a)))},Ni=Mi,Pi=({onFilesChange:e,onFileReady:t,uploadPath:r,srcsetWidths:i,initialFiles:a,storageKey:o,storageProvider:s})=>{let[c,l]=(0,n.useState)(a??[]),u=s??Xr(o),d=(0,n.useRef)(null),f=(0,n.useRef)(e);f.current=e;let p=(0,n.useRef)(t);p.current=t;let m=(0,n.useRef)(new Set);(0,n.useEffect)(()=>{f.current?.(c);for(let e of c)e.progress===100&&!m.current.has(e.key)&&(m.current.add(e.key),p.current?.(e))},[c]);let h=(0,n.useCallback)((e,t)=>{l(n=>n.map(n=>n.key===e?{...n,...t}:n))},[]),g=(0,n.useCallback)(e=>{l(t=>t.filter(t=>t.key!==e)),m.current.delete(e)},[]),_=(0,n.useCallback)(e=>{l(t=>{let n=[...t];return e.forEach(e=>{let t={key:e.name,fileName:e.name,size:e.size,type:e.type,progress:0,url:``,base64:``,variants:{}},r=n.findIndex(t=>t.key===e.name);r===-1?n.push(t):n[r]=t}),n}),e.forEach(e=>{let t=new FileReader;t.onprogress=t=>{t.lengthComputable&&h(e.name,{progress:Math.round(t.loaded/t.total*75)})},t.onloadend=async()=>{let n=le(t.result),a=`data:${e.type};base64,${n}`;if(h(e.name,{base64:n,progress:80}),i?.length)try{let{variants:t,naturalWidth:n}=await Ur(a,i),o=u&&r?await Wr(t,u,r,e.name):t.map(e=>({url:e.localUrl,width:e.width})),s=e.name.split(`.`).pop()??`jpg`,c=e.name.replace(/\.[^/.]+$/,``),l=u&&r?await u.upload(a,`${r}/${c}_${n}w.${s}`):void 0,d=l??(u&&r?a:URL.createObjectURL(await fetch(a).then(e=>e.blob()))),f=[...o,{url:d,width:n}];if(f.length>0){h(e.name,{url:d,srcset:Gr(f),sizes:`(max-width: 640px) 100vw, 800px`,progress:100,...l?{base64:void 0}:{}});return}}catch{}else if(u&&r)try{let t=await u.upload(a,`${r}/${e.name}`);if(t){h(e.name,{url:t,progress:100,base64:void 0});return}}catch{}h(e.name,{progress:100})},t.readAsArrayBuffer(e)}),d.current&&(d.current.value=``)},[u,r,i,h]);return{files:c,setFiles:l,fileInputRef:d,updateFile:h,handleFiles:_,handleUpload:()=>d.current?.click(),handleUploadChange:(0,n.useCallback)(e=>{_(Array.from(e.target.files??[]))},[_]),handleRemove:g}},Fi=(e,t,r,i,a,o,s)=>{let{value:c,handleChange:l,formWrapClass:u}=Dc({name:e,onChange:t,wrapperClassName:r}),[d,f]=(0,n.useState)(null),p=(0,n.useRef)(c),m=(0,n.useRef)(new WeakSet),h=Pi({initialFiles:Array.isArray(c)?c:[],onFilesChange:t=>{p.current=t,m.current.add(t),l({target:{name:e,value:t}})},uploadPath:i,srcsetWidths:a,storageKey:o,storageProvider:s});(0,n.useEffect)(()=>{if(c===p.current||Array.isArray(c)&&m.current.has(c))return;let e=Array.isArray(c)?c:[];p.current=c,(e.length!==0||h.files.length!==0)&&h.setFiles(e)},[c]);let g=e=>{d&&(h.updateFile(d.key,e),f(null))};return{...h,formWrapClass:u,currentFile:d,handleSave:g,handleEdit:e=>f(e),handleClose:()=>f(null)}},Ii=({name:e,fileInputRef:t,accept:r,onUpload:i,onChange:a,required:o=!1,multiple:s=!1,height:c,width:l,feedback:u})=>n.default.createElement(n.default.Fragment,null,n.default.createElement(`button`,{type:`button`,onClick:i,className:`flex flex-col items-center justify-center rounded-lg border-2 border-dashed border-muted-foreground/25 bg-muted/30 text-muted-foreground/50 transition-all hover:border-primary/40 hover:bg-primary/5 hover:text-primary/60 cursor-pointer`,style:{width:l,height:c}},n.default.createElement(Q,{name:`upload`,className:`w-8 h-8`}),u&&n.default.createElement(`span`,{className:`mt-1.5 max-w-full px-1.5 text-center text-[10px] font-medium leading-tight whitespace-pre-wrap`},u)),n.default.createElement(`input`,{name:e,type:`file`,accept:r,ref:t,multiple:s,required:o,className:`hidden`,onChange:a})),Li=({title:e,file:t,type:r,onSave:i,onClose:a})=>{let o=Y(`crop`),[s,c]=(0,n.useState)(t.fileName),l=(0,n.useRef)(null);return n.default.createElement(si,{title:e,onSave:async()=>(i?.(l.current?l.current.handleSave():{fileName:s,variants:{}}),!0),onClose:a,size:r===`img`?`fullscreen`:void 0},r===`document`&&n.default.createElement(Ni,{value:s,onChange:c,label:o.fileName}),r===`img`&&n.default.createElement(Ei,{ref:l,img:t}))},Ri=(e,t,n)=>e.length<t&&(n||e.length===0),zi=new Map,Bi=(e,t=`origin`)=>{if(e.url)return e.url;if(e.base64){let n=`${e.fileName} ${t}`;return zi.has(n)||zi.set(n,K(e.base64,e.type)??`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InRyYW5zcGFyZW50Ii8+PGNpcmNsZSBjeD0iNjUiIGN5PSIzNSIgcj0iMTAiIGZpbGw9IiM5Y2EzYWYiLz48cGF0aCBkPSJNMTAsNzUgTDMyLDUwIEw1Miw3MCBMNjgsNTIgTDkwLDcyIEw5MCw4MCBIMTAgWiIgZmlsbD0iIzljYTNhZiIvPjwvc3ZnPg==`),zi.get(n)??`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InRyYW5zcGFyZW50Ii8+PGNpcmNsZSBjeD0iNjUiIGN5PSIzNSIgcj0iMTAiIGZpbGw9IiM5Y2EzYWYiLz48cGF0aCBkPSJNMTAsNzUgTDMyLDUwIEw1Miw3MCBMNjgsNTIgTDkwLDcyIEw5MCw4MCBIMTAgWiIgZmlsbD0iIzljYTNhZiIvPjwvc3ZnPg==`}return``},Vi=({name:e,onChange:t=void 0,label:r=void 0,required:i=!1,editable:a=!1,multiple:o=!1,max:s=100,accept:c=`.pdf,.doc,.docx,.txt,.iso`,uploadPath:l=void 0,storageKey:u=void 0,storageProvider:d=void 0,before:f=void 0,after:p=void 0,wrapperClassName:m=void 0,className:h=void 0})=>{let{files:g,currentFile:_,fileInputRef:v,formWrapClass:y,handleFiles:b,handleUploadChange:x,handleUpload:S,handleRemove:C,handleSave:w,handleEdit:T,handleClose:E}=Fi(e,t,m,l,void 0,u,d),D=Ec(e,{required:i,label:r}),O=Y(`upload`),[k,A]=(0,n.useState)(!1),j=Ri(g,s,o),M=e=>{e.preventDefault(),j&&A(!0)},N=()=>A(!1),P=e=>{e.preventDefault(),A(!1),j&&b(o?Array.from(e.dataTransfer.files):[e.dataTransfer.files[0]])};return n.default.createElement(Z,{className:y},f,n.default.createElement(`div`,{className:h},r&&n.default.createElement(gl,{label:r,required:i}),j&&g.length===0&&n.default.createElement(`button`,{type:`button`,onClick:S,onDragOver:M,onDragLeave:N,onDrop:P,className:[`w-full flex flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed py-8 px-4 transition-colors cursor-pointer`,k?`border-primary/60 bg-primary/8 text-primary`:`border-muted-foreground/25 bg-muted/30 text-muted-foreground hover:border-primary/40 hover:bg-primary/5 hover:text-primary/70`].join(` `)},n.default.createElement(Q,{name:`upload`,className:`w-8 h-8`}),n.default.createElement(`span`,{className:`text-sm font-medium`},k?O.dropToUpload:O.clickOrDrag),n.default.createElement(`span`,{className:`text-xs opacity-60`},c)),g.length>0&&n.default.createElement(`div`,{className:`rounded-lg border border-border overflow-hidden`},n.default.createElement(`table`,{className:`w-full text-sm`},n.default.createElement(`tbody`,null,g.map(e=>n.default.createElement(`tr`,{key:e.key,className:`border-b border-border last:border-0 ${a?`cursor-pointer hover:bg-muted/40`:``}`,onClick:()=>a&&T(e)},n.default.createElement(`td`,{className:`px-3 py-2.5`},n.default.createElement(`div`,{className:`flex items-center gap-2`},n.default.createElement(Q,{name:`file`,className:`w-4 h-4 shrink-0 text-muted-foreground`}),e.progress===100?n.default.createElement(`a`,{href:Bi(e),target:`_blank`,rel:`noopener noreferrer`,className:`hover:underline truncate max-w-xs`,onClick:e=>e.stopPropagation()},e.fileName):n.default.createElement(`span`,{className:`truncate max-w-xs text-muted-foreground`},e.fileName))),n.default.createElement(`td`,{className:`px-3 py-2.5 text-muted-foreground text-right whitespace-nowrap w-24`},e.progress===100?(e.size/1024).toFixed(2)+` KB`:n.default.createElement(bi,{max:100,min:0,value:e.progress,appearance:`bar`})),n.default.createElement(`td`,{className:`px-3 py-2.5 w-10 text-right`},n.default.createElement(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),C(e.key)},className:`flex items-center justify-center w-6 h-6 rounded-full text-muted-foreground hover:bg-red-50 hover:text-red-500 transition-colors ml-auto cursor-pointer`},n.default.createElement(Q,{name:`x`,className:`w-3.5 h-3.5`}))))))),j&&n.default.createElement(`div`,{className:`px-3 py-2 border-t border-border bg-muted/20 ${k?`bg-primary/5`:``}`,onDragOver:M,onDragLeave:N,onDrop:P},n.default.createElement(`button`,{type:`button`,onClick:S,className:`flex items-center gap-1.5 text-xs text-muted-foreground hover:text-primary transition-colors cursor-pointer`},n.default.createElement(Q,{name:`upload`,className:`w-3.5 h-3.5`}),O.uploadMore))),n.default.createElement(`input`,{name:e,type:`file`,accept:c,ref:v,multiple:o,required:i,className:`hidden`,onChange:x}),D&&n.default.createElement(Zc,{message:D})),a&&_&&n.default.createElement(Li,{title:O.editFileName,file:_,type:`document`,onSave:w,onClose:E}),p)},Hi=({name:e,onChange:t=void 0,label:r=void 0,feedback:i=void 0,editable:a=!1,multiple:o=!1,accept:s=`image/*`,required:c=!1,max:l=100,previewHeight:u=100,previewWidth:d=100,uploadPath:f=void 0,srcsetWidths:p=void 0,storageKey:m=void 0,storageProvider:h=void 0,allowUrl:g=!1,before:_=void 0,after:v=void 0,wrapperClassName:y=void 0,className:b=void 0})=>{let{files:x,setFiles:S,currentFile:C,fileInputRef:w,formWrapClass:T,handleUploadChange:E,handleUpload:D,handleRemove:O,handleSave:k,handleEdit:A,handleClose:j}=Fi(e,t,y,f,p,m,h),M=Ec(e,{required:c,label:r}),N=Y(`upload`),[P,F]=(0,n.useState)(null),[I,L]=(0,n.useState)(new Set),[R,z]=(0,n.useState)(!1),[B,ee]=(0,n.useState)(``),[V,H]=(0,n.useState)(void 0),U=async()=>{let e=B.trim();try{new URL(e)}catch{return H(N.invalidUrl),!1}let t={key:e,fileName:e.split(`/`).pop()||`image`,size:0,type:``,progress:100,url:e,base64:``,variants:{}};return S(e=>o?[...e,t]:[t]),ee(``),H(void 0),z(!1),!0},te=()=>{z(!1),ee(``),H(void 0)},ne=(e,t)=>{let n=e.currentTarget,r=n.naturalWidth>0&&n.naturalHeight>0&&(n.naturalWidth<d||n.naturalHeight<u);L(e=>{let n=new Set(e);return r?n.add(t):n.delete(t),n})},re=({scales:e})=>{if(!e)return;let t=Object.keys(e);return t.length===0?null:t.map(t=>n.default.createElement(Mt,{key:t},n.default.createElement(`a`,{href:Bi(e[t],t),className:`text-white`,target:`_blank`,rel:`noopener noreferrer`},t)))};return n.default.createElement(Z,{className:T},_,n.default.createElement(Z,{className:b},r&&n.default.createElement(gl,{label:r,required:c}),n.default.createElement(`div`,{className:`flex gap-2 flex-wrap`},x.map((e,t)=>n.default.createElement(`div`,{key:t,className:`relative overflow-hidden rounded-lg border border-border`,style:{width:d,height:u},onMouseEnter:()=>F(t),onMouseLeave:()=>F(null)},e.progress===100?n.default.createElement(n.default.Fragment,null,I.has(e.key)&&n.default.createElement(n.default.Fragment,null,n.default.createElement(`div`,{className:`absolute inset-0 dark:hidden`,style:{backgroundColor:`#f0f0f0`,backgroundImage:`linear-gradient(45deg,#dcdcdc 25%,transparent 25%),linear-gradient(-45deg,#dcdcdc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#dcdcdc 75%),linear-gradient(-45deg,transparent 75%,#dcdcdc 75%)`,backgroundSize:`10px 10px`,backgroundPosition:`0 0,0 5px,5px -5px,-5px 0`}}),n.default.createElement(`div`,{className:`absolute inset-0 hidden dark:block`,style:{backgroundColor:`#1a1a1a`,backgroundImage:`linear-gradient(45deg,#272727 25%,transparent 25%),linear-gradient(-45deg,#272727 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#272727 75%),linear-gradient(-45deg,transparent 75%,#272727 75%)`,backgroundSize:`10px 10px`,backgroundPosition:`0 0,0 5px,5px -5px,-5px 0`}})),n.default.createElement(`img`,{src:Bi(e),alt:`preview-${t}`,className:`absolute inset-0 w-full h-full ${I.has(e.key)?`object-contain p-1`:`object-cover`}`,onLoad:t=>ne(t,e.key)}),n.default.createElement(`div`,{className:`absolute inset-0 bg-black/55 backdrop-blur-[1px] flex flex-col items-center justify-end pb-2 gap-1 transition-opacity`,style:{display:P===t?`flex`:`none`}},n.default.createElement(`div`,{className:`flex items-center gap-1.5`},n.default.createElement(`a`,{href:Bi(e),target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center justify-center w-7 h-7 rounded-full bg-white/20 hover:bg-white/35 text-white transition-colors`},n.default.createElement(Q,{name:`eye`,className:`w-4 h-4`})),a&&n.default.createElement(`button`,{type:`button`,onClick:()=>A(e),className:`flex items-center justify-center w-7 h-7 rounded-full bg-white/20 hover:bg-white/35 text-white transition-colors cursor-pointer`},n.default.createElement(Q,{name:`pencil`,className:`w-4 h-4`})),n.default.createElement(`button`,{type:`button`,onClick:t=>{t.preventDefault(),t.stopPropagation(),O(e.key)},className:`flex items-center justify-center w-7 h-7 rounded-full bg-red-500/70 hover:bg-red-500/90 text-white transition-colors cursor-pointer`},n.default.createElement(Q,{name:`x`,className:`w-4 h-4`}))),a&&e.variants&&Object.keys(e.variants).length>0&&n.default.createElement(`div`,{className:`flex flex-wrap gap-1 px-1`},n.default.createElement(re,{scales:e.variants})))):n.default.createElement(bi,{max:100,min:0,value:e.progress,appearance:`circle`}))),Ri(x,l,o)&&n.default.createElement(`div`,{className:`relative`,style:{width:d,height:u}},n.default.createElement(Ii,{name:e,fileInputRef:w,accept:s,onUpload:D,onChange:E,required:c,multiple:o,height:u,width:d,feedback:i}),g&&n.default.createElement(`button`,{type:`button`,onClick:()=>z(!0),title:N.insertFromUrl,"aria-label":N.insertFromUrl,className:`absolute -right-2 -top-2 flex h-6 w-6 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-muted-foreground shadow-sm transition-colors hover:text-primary`},n.default.createElement(Q,{name:`link`,className:`w-3.5 h-3.5`})))),M&&n.default.createElement(Zc,{message:M})),a&&C&&n.default.createElement(Li,{title:N.editorImage,file:C,type:`img`,onSave:k,onClose:j}),g&&R&&n.default.createElement(si,{title:N.insertFromUrl,onSave:U,onClose:te,size:`sm`},n.default.createElement(`div`,{className:`flex flex-col gap-1`},n.default.createElement(`input`,{type:`url`,autoFocus:!0,value:B,onChange:e=>{ee(e.target.value),H(void 0)},placeholder:N.urlPlaceholder,className:`h-9 w-full rounded-md border border-input bg-background px-2.5 text-sm focus:outline-none focus:ring-1 focus:ring-ring`}),V&&n.default.createElement(Zc,{message:V}))),v)},Ui={US:`United States`,CN:`中国`,IT:`Italia`,FR:`France`,DE:`Deutschland`,ES:`España`,PT:`Portugal`,RU:`Россия`,JP:`日本`},Wi={it:`Italiano`,en:`English`,fr:`Français`,de:`Deutsch`,es:`Español`,pt:`Português`,ru:`Русский`,ja:`日本語`,ko:`한국어`},Gi=(e=!1)=>{let t=typeof localStorage<`u`?localStorage.getItem(`user.country`):null,n=typeof navigator<`u`?navigator.language.split(`-`)[1]:null,r=t||n||`US`;return e?r:Ui[r]},Ki=(e=!1)=>{let t=typeof localStorage<`u`?localStorage.getItem(`user.lang`):null,n=typeof navigator<`u`?navigator.language.split(`-`)[0]:null,r=t||n||`en`;return e?r:Wi[r]},qi=`Please ignore all previous instructions.`,Ji=`Do not repeat yourself. Do not self reference. Do not explain what you are doing.`;`${qi}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`,`${qi}${Ji}`;var Yi=`default`,Xi=`Informative`,Zi=`Argumentative`,Qi=`Authoritative.Caring.Casual.Cheerful.Coarse.Conservative.Conversational.Creative.Dry.Edgy.Enthusiastic.Expository.Formal.Frank.Friendly.Fun.Funny.Humorous.Informative.Irreverent.Journalistic.Matter of fact.Nostalgic.Objective.Passionate.Poetic.Playful.Professional.Provocative.Quirky.Respectful.Romantic.Sarcastic.Serious.Smart.Snarky.Subjective.Sympathetic.Trendy.Trustworthy.Unapologetic.Upbeat.Witty`.split(`.`),$i=[`Academic`,`Analytical`,`Argumentative`,`Conversational`,`Creative`,`Critical`,`Descriptive`,`Epigrammatic`,`Epistolary`,`Expository`,`Informative`,`Instructive`,`Journalistic`,`Metaphorical`,`Narrative`,`Persuasive`,`Poetic`,`Satirical`,`Technical`],ea={default:`You are a highly skilled and versatile AI assistant who can adapt to any task or context. You write in fluent {language}, using a {voice} tone of voice and a {style} writing style. You provide clear, concise, and well-structured responses, ensuring both accuracy and creativity according to the user's needs.`,copywriter:`You are an expert copywriter who writes catchy text in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,seo_expert:`You are an experienced SEO specialist who writes optimized, keyword-rich content in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,storyteller:`You are a talented storyteller who crafts engaging narratives in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,translator:`You are a professional translator who accurately translates content into {language}, maintaining meaning, nuance, and cultural relevance. You have a {voice} tone of voice. You have a {style} writing style.`,marketing_strategist:`You are a skilled marketing strategist who creates persuasive campaigns in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,teacher:`You are a knowledgeable teacher who explains concepts clearly and simply in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,technical_writer:`You are a precise and detail-oriented technical writer who produces clear documentation in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,interviewer:`You are a skilled interviewer who formulates relevant and engaging questions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,product_describer:`You are an e-commerce product description specialist who writes compelling, benefit-focused descriptions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,social_media_manager:`You are a creative social media manager who writes engaging, platform-specific posts in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,ux_writer:`You are a UX writer who creates clear, concise, and user-friendly interface text in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,press_officer:`You are an experienced press officer who writes impactful press releases in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,legal_drafter:`You are a legal expert who drafts precise and compliant legal texts in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,recruiter:`You are a professional recruiter who writes compelling job descriptions and outreach messages in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,news_reporter:`You are a news reporter who writes objective and concise news articles in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,search_intent_analyst:`You are a keyword research expert who analyzes search intent from given keywords and writes in fluent {language}.`,keyword_generator:`You are a keyword research expert who generates related keywords in fluent {language}.`,long_tail_keyword_generator:`You are a keyword research expert who generates long-tail keywords in fluent {language}.`,seo_content_planner:`You are a market research expert and SEO strategist who develops a full SEO content plan in fluent {language}.`,blog_title_specialist:`You are an expert copywriter who writes catchy blog after titles in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,blog_description_specialist:`You are an expert copywriter who writes compelling blog after descriptions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,blog_outline_specialist:`You are an expert copywriter who creates structured content outlines in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,blog_writer_from_outline:`You are an expert copywriter who writes complete blog posts from outlines in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,blog_writer_from_topic:`You are an expert copywriter who writes complete blog posts from topics in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,blog_intro_specialist:`You are an expert copywriter who writes engaging introductions using known copywriting frameworks in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,paragraph_writer:`You are an expert copywriter who writes single, impactful paragraphs in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,dictionary_writer:`You are a copywriter who writes concise and clear definitions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`,creative_free_writer:`You are an expert copywriter who writes any kind of catchy text in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.`},ta=class{static getRoles(){return Object.keys(ea)}static getLangs(){return Object.values(Wi)}static getCountries(){return Object.values(Ui)}static getVoices(){return Qi}static getStyles(){return $i}static defaults(){return{role:Yi,language:Ki(),country:Gi(),voice:localStorage.getItem(`prompt.voice`)||Xi,style:localStorage.getItem(`prompt.style`)||Zi}}static parseRole(e,t={}){return E.parse({...this.defaults(),...t},ea[e??this.defaults().role])}static parsePrompt(e,t={}){return E.parse({...this.defaults(),...t},e)}},na=e=>e.pricing!==void 0&&e.pricing.input===0&&e.pricing.output===0,ra=(e,t)=>`${e}/${t}`,ia=e=>{if(!e)return null;let t=e.indexOf(`/`);return t<=0||t===e.length-1?null:{provider:e.slice(0,t),model:e.slice(t+1)}},aa=(0,n.createContext)(null),oa=({registry:e,defaultKey:t,children:r})=>{let i=(0,n.useMemo)(()=>({registry:e,defaultKey:t}),[e,t]);return n.default.createElement(aa.Provider,{value:i},r)},sa=e=>{let t=(0,n.useContext)(aa);if(!t)return null;let r=e??t.defaultKey;return t.registry[r]??null},ca=()=>(0,n.useContext)(aa),la=void 0,ua=(0,n.createContext)(null),da=(0,n.createContext)(()=>{}),fa=new Set,pa=e=>{fa.add(e),la&&e(la,null)},ma=({children:e,defaultConfig:t})=>{let[r,i]=(0,n.useState)(ha(t)),a=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let e=a.current;if(e!==r){la=r;for(let t of fa)t(r,e)}a.current=r},[r]),n.default.createElement(ua.Provider,{value:r},n.default.createElement(da.Provider,{value:i},n.default.createElement(An,null,e)))},ha=e=>{la=e;for(let e of fa)e(la,null);return la},ga=()=>la,_a=`x-llmnative-proxy`,va=e=>{if(!e||e.startsWith(`/`))return!1;try{let t=new URL(e);if(typeof window<`u`){let e=new URL(window.location.href);if(t.origin===e.origin||[`localhost`,`127.0.0.1`].includes(t.hostname)&&[`localhost`,`127.0.0.1`].includes(e.hostname))return!1}return!0}catch{return!1}},ya=null,ba=e=>{ya=e??null};pa(e=>{ba(e.proxy)});var xa=(e,n,r)=>t.l(e)||[...new Headers(n instanceof Request?n.headers:r?.headers).values()].some(t.l),Sa=(e,t,n)=>xa(e,t,n)?Promise.reject(Error(`This AI provider uses credentials held by the server: enable the proxy (providers.proxy.enabled) so that the server adds the key.`)):globalThis.fetch(t,n),Ca=(e,t)=>{let n=typeof e==`string`?e:e instanceof URL?e.toString():e.url;if(!ya?.enabled)return Sa(n,e,t);if(!va(n)&&!xa(n,e,t))return globalThis.fetch(e,t);let r=ya.route?.trim()||`/api/proxy`,i=`${r}${r.includes(`?`)?`&`:`?`}url=${encodeURIComponent(n)}`,a=e instanceof Request?e.headers:t?.headers,o=new Headers(a);o.set(_a,`1`);let s=(e instanceof Request?e.method:t?.method??`GET`).toUpperCase(),c=[`GET`,`HEAD`].includes(s)?void 0:t?.body??(e instanceof Request?e.body:void 0);return globalThis.fetch(i,{method:s,headers:o,body:c,...c instanceof ReadableStream?{duplex:`half`}:{},signal:t?.signal??(e instanceof Request?e.signal:void 0)})},wa=()=>Ca,Ta=()=>!!ya?.enabled,Ea=`ai.models.v3.`,Da=864e5,Oa=/claude-(?:fable|mythos|opus|sonnet|haiku)-(?:[5-9]|4-[6-9])(?![0-9])/,ka=/claude-(?:opus-4-[6-8]|sonnet-4-6)(?![0-9])/;function Aa(e,t){return!t||!e||!Oa.test(e)?{}:{output_config:{effort:t},...ka.test(e)?{thinking:{type:`adaptive`}}:{}}}var ja=/(?:^|\/)(?:o[1-9]|gpt-5)/i;function Ma(e,t,n=`openai`){if(!t||!e)return{};let r=t===`max`?`high`:t;return n===`openrouter`?{reasoning:{effort:r}}:ja.test(e)?{reasoning_effort:r}:{}}var Na=e=>{if(e instanceof Error)return e.message;if(typeof e==`object`&&e){let t=e;if(t.error&&typeof t.error==`object`){let e=t.error;if(typeof e.message==`string`)return e.message;if(typeof e.type==`string`)return e.type}if(typeof t.error==`string`)return t.error;if(Array.isArray(t.errors)&&t.errors.length>0){let e=t.errors[0];if(e&&typeof e.message==`string`)return e.message}if(typeof t.message==`string`)return t.message;if(typeof t.detail==`string`)return t.detail;if(typeof t.status==`number`)return`HTTP ${t.status}`;try{return JSON.stringify(t)}catch{}}return String(e)},Pa=e=>{let t=Ta()?`The proxy is enabled but the request still failed - check that the proxy route is reachable.`:`No proxy is enabled. Cross-origin AI requests are blocked by CORS in the browser. Set VITE_PROXY_ENABLED=true and VITE_PROXY_PROVIDER=viteDevProxy to route requests server-side.`;return Error(`${e} request failed (CORS). ${t}`)},Fa=e=>typeof e==`string`?e:Array.isArray(e)&&e.map(e=>typeof e==`string`?e:e&&typeof e==`object`&&`text`in e&&typeof e.text==`string`?e.text:``).filter(Boolean).join(`
|
|
5
|
+
`)||null,Ia=e=>{if(typeof localStorage>`u`)return null;try{let t=localStorage.getItem(`${Ea}${e}`);if(!t)return null;let n=JSON.parse(t);return!n.fetchedAt||!Array.isArray(n.items)||Date.now()-n.fetchedAt>Da?null:n.items}catch{return null}},La=(e,t)=>{if(typeof localStorage<`u`)try{localStorage.setItem(`${Ea}${e}`,JSON.stringify({fetchedAt:Date.now(),items:t}))}catch{}},Ra=(e,t,n)=>n.map(n=>{let{model:r,pricing:i}=typeof n==`string`?{model:n,pricing:void 0}:n;return{id:ra(e,r),provider:e,model:r,label:`${t} / ${r}`,providerLabel:t,...i?{pricing:i}:{}}}),za=async(e,t=!1)=>{let n=await Promise.all(Object.entries(e).map(async([e,n])=>{try{return[e,await n.getCapabilities(t)]}catch(t){return console.warn(`getAIModelCatalog: provider "${e}" getCapabilities() failed`,t),[e,{models:[]}]}})),r=n.reduce((e,[t,n])=>(e[t]=n,e),{}),i=n.reduce((e,[t,n])=>(e[t]=n.models,e),{}),a=new Set;return{models:n.flatMap(([,e])=>e.models).filter(e=>!a.has(e.id)&&(a.add(e.id),!0)),modelsByProvider:i,capabilitiesByProvider:r}},Ba=class{id;label;defaultModel;dashboardUrl;definition;apiKey;constructor(e,t){this.definition=e,this.id=e.id,this.label=e.label,this.defaultModel=e.defaultModel,this.dashboardUrl=e.dashboardUrl,this.apiKey=t}isConfigured(){return!!this.apiKey}getConfigurationState(){let e=this.definition.requiredConfigKeys??(this.definition.configKey?[`ai.${this.definition.configKey}`]:[]);return Vn(`AIProvider:${this.id}`,this.isConfigured()?[]:e)}async getCapabilities(e=!1){let n=e?null:Ia(this.id);if(n)return{...this.definition.capabilities,models:n.map(e=>e.providerLabel?e:{...e,providerLabel:this.label})};let r=Ra(this.id,this.label,this.definition.fallbackModels);try{let e=await this.definition.discoverModels(this.apiKey);e.length>0&&(r=Ra(this.id,this.label,e))}catch(e){console.warn(`AIProvider:${this.id} model discovery failed`,e)}return r=await t.o(this.id,r),La(this.id,r),{...this.definition.capabilities,models:r}}complete(e){return this.definition.complete(this.apiKey,{...e,model:e.model||this.defaultModel,prompt:ta.parsePrompt(e.prompt,{...e.data,...e})})}async validateApiKey(){let e=this.definition.dashboardUrl;if(this.definition.validateApiKey)return{...await this.definition.validateApiKey(this.apiKey),dashboardUrl:e};try{return await this.definition.discoverModels(this.apiKey),{valid:!0,dashboardUrl:e}}catch(t){return{valid:!1,error:Na(t),dashboardUrl:e}}}},Va={"gpt-4o":128e3,"gpt-4o-mini":128e3,"gpt-4-turbo":128e3,"gpt-4":8192,"gpt-3.5-turbo":16385,"claude-opus-4-8":2e5,"claude-sonnet-4-6":2e5,"claude-haiku-4-5":2e5,"claude-3-5-sonnet-20241022":2e5,"claude-3-5-haiku-20241022":2e5,"gemini-2.0-flash":1048576,"gemini-1.5-pro":2097152,"gemini-1.5-flash":1048576,"deepseek-chat":64e3,"deepseek-coder":128e3,"mistral-large-latest":131072,"mistral-medium":32768,"mistral-small-latest":131072,"open-mistral-nemo":128e3,"llama-3.1-70b-instruct":131072,"llama-3.1-8b-instruct":131072},Ha={"gpt-4o":[2.5,10],"gpt-4o-mini":[.15,.6],"gpt-4-turbo":[10,30],"gpt-4":[30,60],"gpt-3.5-turbo":[.5,1.5],"claude-opus-4-8":[15,75],"claude-sonnet-4-6":[3,15],"claude-haiku-4-5":[.8,4],"claude-3-5-sonnet-20241022":[3,15],"claude-3-5-haiku-20241022":[.8,4],"gemini-2.0-flash":[.1,.4],"gemini-1.5-pro":[1.25,5],"gemini-1.5-flash":[.075,.3],"deepseek-chat":[.14,.28],"mistral-large-latest":[2,6],"mistral-medium":[2.7,8.1],"mistral-small-latest":[.1,.3]},Ua=e=>ia(e)?.model??e,Wa=/^text\/|^application\/(json|csv|xml|javascript|typescript)/,Ga=e=>new Promise((t,n)=>{if(typeof FileReader>`u`){n(Error(`FileReader is not available in this environment.`));return}let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(r.error??Error(`Failed to read file "${e.name}".`)),r.readAsDataURL(e)}),Ka={countTokens(e){return Math.ceil(e.length/4)},modelContextWindow(e){return Va[Ua(e)]??null},contextPercent(e,t){let n=Ka.modelContextWindow(t);return!n||n<=0?0:Math.min(100,e/n*100)},estimateCost(e,t,n){let r=Ha[Ua(n)];return r?(e*r[0]+t*r[1])/1e6:NaN},async fileToAttachment(e){let t=await Ga(e),n=t.includes(`,`)?t.split(`,`)[1]:``;return{mimeType:e.type||`application/octet-stream`,base64:n,name:e.name}},isTextAttachment(e){return Wa.test(e)},decodeBase64Text(e){try{let t=globalThis.atob(e),n=Uint8Array.from(t,e=>e.charCodeAt(0));return new TextDecoder(`utf-8`).decode(n)}catch{return``}}},qa=({menuKey:e,as:t=`ul`,badges:i={},before:a=void 0,after:o=void 0,wrapperClassName:s=void 0,className:c=void 0,headerClassName:l=void 0,itemClassName:u=void 0,linkClassName:d=void 0,iconClassName:f=void 0,textClassName:p=void 0,badgeClassName:m=void 0,arrowClassName:h=void 0,submenuClassName:g=void 0})=>{let _=hv(e),v=q(`menu`),y=({item:e,index:a})=>{let[o,s]=(0,n.useState)(e.active);(0,n.useEffect)(()=>{s(e.active)},[e]);let c=(e.children?.length??0)>0,_=(e.title??``).toLowerCase(),b=()=>n.default.createElement(`span`,{className:f??v.Menu.iconClassName},n.default.createElement(Q,{name:e.icon}));return e.path?n.default.createElement(`li`,{className:X(u??v.Menu.itemClassName)},n.default.createElement(r.Link,{to:e.path.split(`*`)[0],className:X(d??v.Menu.linkClassName,e.active&&`bg-primary/10 text-primary`),...c&&{},onClick:e=>{c&&!ce(e,`a`)&&(e.preventDefault(),s(e=>!e))}},e.icon&&n.default.createElement(b,null),n.default.createElement(`span`,{className:p??v.Menu.textClassName},e.title),i[_]&&n.default.createElement(Mt,{variant:i[_].type,className:m??v.Menu.badgeClassName},i[_].children),c&&n.default.createElement(`span`,{className:X(h??v.Menu.arrowClassName,`ml-auto inline-flex shrink-0 items-center justify-center text-muted-foreground transition-transform duration-200`,o&&`rotate-90`)},n.default.createElement(Q,{name:`chevron-right`,size:14}))),c&&n.default.createElement(`div`,{className:X(`grid transition-[grid-template-rows,opacity] duration-200 ease-out`,o?`grid-rows-[1fr] opacity-100`:`grid-rows-[0fr] opacity-0`)},n.default.createElement(`div`,{className:`min-h-0 overflow-hidden`},(()=>{let r=t;return n.default.createElement(r,{className:g??v.Menu.submenuClassName},e.children.map((e,t)=>n.default.createElement(y,{key:t,item:e,index:t})))})()))):n.default.createElement(`li`,{key:a,className:l??v.Menu.headerClassName},e.icon&&n.default.createElement(b,null),e.title&&(/^-+$/.test(e.title)?n.default.createElement(`hr`,{className:`m-0`}):n.default.createElement(`span`,null,e.title)))},b=t;return n.default.createElement(Z,{className:s??v.Menu.wrapperClassName},a,n.default.createElement(b,{className:c??v.Menu.className},_.map((e,t)=>n.default.createElement(y,{key:t,item:e,index:t}))),o)},Ja=n.default.createContext(null),Ya=({children:e,trigger:t,badge:r=void 0,header:i=void 0,footer:a=void 0,defaultOpen:o=!1,open:s=void 0,onOpenChange:l=void 0,closeOnSelect:u=!0,staticOpen:d=!1,position:f=void 0,placement:p=`bottom`,strategy:m=`fixed`,wrapperClassName:h=void 0,className:g=void 0,before:_=void 0,after:v=void 0,triggerClassName:y=void 0,menuClassName:b=void 0,badgeClassName:x=void 0,headerClassName:S=void 0,footerClassName:C=void 0,motion:w=void 0})=>{let T=q(`dropdown`),[E,D]=n.default.useState(o),O=n.default.useRef(null),k=n.default.useRef(null),A=n.default.useRef(null),j=n.default.useId(),M=d?!0:s??E,[N,P]=n.default.useState(`bottom`),[F,I]=n.default.useState(void 0),[L,R]=n.default.useState(null),z=!d&&t!==void 0,B=Bt(M,w??T.Dropdown.motion?.open??`fadeDown`,T.Dropdown.motion?.open??`fadeDown`),ee=n.default.useCallback(e=>{d||(s===void 0&&D(e),l?.(e))},[d,s,l]);n.default.useEffect(()=>{if(!M||d)return;let e=e=>{let t=e.target;!O.current?.contains(t)&&!A.current?.contains(t)&&ee(!1)},t=e=>{e.key===`Escape`&&ee(!1)};return window.document.addEventListener(`pointerdown`,e),window.document.addEventListener(`keydown`,t),()=>{window.document.removeEventListener(`pointerdown`,e),window.document.removeEventListener(`keydown`,t)}},[d,M,ee]),n.default.useEffect(()=>{if(!M||d||!k.current)return;let e=k.current.getBoundingClientRect(),t=window.innerHeight-e.bottom-8,n=e.top-8,r;if(p===`auto`?(r=t<(A.current?A.current.scrollHeight:240)+8&&n>t?`top`:`bottom`,P(r)):r=p===`top`?`top`:`bottom`,I(Math.max(160,r===`top`?n:t)),m===`absolute`)return;let i=f===`end`;R(r===`top`?{bottom:window.innerHeight-e.top+4,...i?{right:window.innerWidth-e.right}:{left:e.left}}:{top:e.bottom+4,...i?{right:window.innerWidth-e.right}:{left:e.left}})},[M,p,f,d,m]);function V(e){return typeof e==`object`&&!!e&&!n.default.isValidElement(e)&&(`icon`in e||`text`in e)}let H=z?n.default.createElement(Za,{className:y,badge:r,badgeClassName:x,motion:w,title:V(t)?t.title:void 0,onToggle:()=>ee(!M),open:M,menuId:j,buttonRef:k},V(t)?n.default.createElement(n.default.Fragment,null,t.icon&&n.default.createElement(Q,{name:t.icon,className:t.text?`mr-2`:void 0}),t.text):t):null,U=h??T.Dropdown.wrapperClassName??(_||v?`flex items-center gap-2`:void 0),te=N===`top`?`bottom-full mb-1`:`top-full mt-1`,ne=f===`end`?`right-0`:`left-0`,re=n.default.createElement(Ja.Provider,{value:{closeOnSelect:u,close:()=>ee(!1)}},n.default.createElement(`div`,{ref:A,id:j,role:`menu`,"aria-hidden":!M,className:X(`min-w-56 overflow-y-auto rounded-xl border border-border/60 bg-popover/95 p-1 text-popover-foreground shadow-xl shadow-black/5 outline-none backdrop-blur supports-[backdrop-filter]:bg-popover/90 dark:shadow-black/20`,d?`relative`:m===`absolute`?`absolute z-[200] ${te} ${ne}`:`fixed z-[200]`,b||T.Dropdown.menuClassName),style:d?void 0:{...B,opacity:+!!M,visibility:M?`visible`:`hidden`,pointerEvents:M?void 0:`none`,maxHeight:F,minWidth:k.current?k.current.offsetWidth:void 0,...m===`fixed`?L??{}:{}},onClick:e=>{e.stopPropagation()}},i&&n.default.createElement(`div`,{className:X(`px-2 py-1.5 text-sm font-semibold`,S||T.Dropdown.headerClassName)},i,n.default.createElement(eo,null)),e,a&&n.default.createElement(`div`,{className:C||T.Dropdown.footerClassName},n.default.createElement(eo,null),a))),W=!d&&m===`fixed`&&typeof document<`u`;return n.default.createElement(Z,{className:U},_,n.default.createElement(`div`,{ref:O,className:X(d?`inline-block text-left`:`relative inline-block text-left`,g||T.Dropdown.className)},H,W?(0,c.createPortal)(re,document.body):re),v)};function Xa({loadItems:e,getItemId:t,renderItem:r,onSelect:i,selectedId:a=void 0,searchPlaceholder:o=void 0,emptyState:s=void 0,loadingState:c=void 0,errorState:l=void 0,debounceMs:u=200,closeOnSelect:d=!0,inputClassName:f=void 0,selectedClassName:p=void 0,header:m=void 0,open:h=void 0,defaultOpen:g=!1,onOpenChange:_=void 0,footer:v=void 0,headerClassName:y=void 0,staticOpen:b=!1,...x}){let S=Y(`common`),[C,w]=n.default.useState(g),[T,E]=n.default.useState(``),[D,O]=n.default.useState([]),[k,A]=n.default.useState(!1),[j,M]=n.default.useState(null),N=n.default.useRef(0),P=b||(h??C),F=n.default.useCallback(e=>{h===void 0&&w(e),e||E(``),_?.(e)},[h,_]);n.default.useEffect(()=>{if(!P)return;let t=new AbortController,n=++N.current,r=window.setTimeout(()=>{A(!0),M(null),e(T,t.signal).then(e=>{!t.signal.aborted&&n===N.current&&O(e)}).catch(e=>{!t.signal.aborted&&n===N.current&&(M(e),O([]))}).finally(()=>{!t.signal.aborted&&n===N.current&&A(!1)})},T?u:0);return()=>{window.clearTimeout(r),t.abort()}},[P,T,u,e]);let I=n.default.useCallback(async e=>{let t=await i(e);d&&t!==!1&&F(!1)},[d,i,F]);return n.default.createElement(Ya,{...x,closeOnSelect:!1,staticOpen:b,open:P,onOpenChange:F,header:n.default.createElement(n.default.Fragment,null,n.default.createElement(`div`,{className:`relative`},n.default.createElement(Q,{name:`search`,size:14,className:`pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground/60`}),n.default.createElement(`input`,{autoFocus:!0,value:T,onChange:e=>E(e.target.value),placeholder:o??S.search,className:X(`w-full rounded-md border border-border/60 bg-background py-1.5 pl-8 pr-2 text-sm font-normal text-foreground outline-none placeholder:text-muted-foreground focus:border-primary/50`,f)})),m),headerClassName:X(`px-2 pt-2 pb-1.5`,y),footer:v},k?n.default.createElement(`div`,{className:`px-2 py-3 text-center text-sm text-muted-foreground`},c??S.loading):j?n.default.createElement(`div`,{className:`px-2 py-3 text-center text-sm text-destructive`},l?.(j)??(j instanceof Error?j.message:S.noDataFound)):D.length===0?n.default.createElement(`div`,{className:`px-2 py-3 text-center text-sm text-muted-foreground`},s??S.noDataFound):D.map(e=>{let i=t(e);return n.default.createElement(Qa,{key:i,onClick:()=>{I(e)},className:X(i===a&&`bg-accent text-accent-foreground`,p)},r(e))}))}var Za=({children:e,badge:t=void 0,display:r=`dynamic`,className:i=void 0,badgeClassName:a=void 0,motion:o=void 0,title:s=void 0,onToggle:c=void 0,open:l=!1,menuId:u=void 0,buttonRef:d=void 0})=>{let f=q(`dropdown`),p=Vt(!1,{cursor:`pointer`},o??f.Dropdown.motion?.press??`press`),m=n.default.createElement(`button`,{ref:d,type:`button`,title:s,className:X(`inline-flex items-center justify-center gap-2`,i||f.Dropdown.triggerClassName),style:p.style,"aria-haspopup":`menu`,"aria-expanded":l,"aria-controls":u,onClick:c,...p.pressHandlers,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),c?.())},"data-display":r},e);return n.default.createElement(jt,{badge:t,className:a||f.Dropdown.badgeClassName},m)},Qa=({children:e,url:t=void 0,onClick:i=void 0,icon:a=void 0,className:o=void 0,actions:s=void 0})=>{let c=q(`dropdown`),l=n.default.useContext(Ja),u=e=>{i?.(e),!e.defaultPrevented&&l?.closeOnSelect&&l.close()},d=a?n.default.createElement(`span`,{className:`inline-flex min-w-0 items-center gap-2`},n.default.createElement(`span`,{className:`inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground`},n.default.createElement(Q,{name:a,size:16})),n.default.createElement(`span`,{className:`min-w-0`},e)):e,f=t?n.default.createElement(r.Link,{to:t,onClick:u,role:`menuitem`,className:X(`flex w-full cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground`,o||c.Dropdown.menuItemClass)},d):i?n.default.createElement(`button`,{onClick:u,role:`menuitem`,className:X(`flex w-full cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground`,o||c.Dropdown.menuItemClass)},d):n.default.createElement(`span`,{role:`menuitem`,className:X(`flex w-full select-none items-center rounded-sm px-2 py-1.5 text-sm`,o||c.Dropdown.menuItemClass)},d);return s?.length?n.default.createElement(`div`,{className:`group/dropdown-item flex w-full min-w-0 items-center gap-0.5`},n.default.createElement(`div`,{className:`min-w-0 flex-1`},f),s.map(e=>n.default.createElement(`button`,{key:e.label,type:`button`,title:e.label,"aria-label":e.label,onClick:t=>{t.stopPropagation(),e.onClick(),e.closeOnClick&&l?.close()},className:`inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-sm text-muted-foreground opacity-0 transition-opacity hover:bg-accent hover:text-foreground focus:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring group-hover/dropdown-item:opacity-100 group-focus-within/dropdown-item:opacity-100 [@media(hover:none)]:opacity-100`},n.default.createElement(Q,{name:e.icon,size:14})))):f},$a=({children:e,className:t})=>{let r=q(`dropdown`);return n.default.createElement(`div`,{className:X(`px-2 py-1.5 text-xs font-medium uppercase tracking-wide text-muted-foreground`,t||r.Dropdown.menuHeaderClass)},e)},eo=({className:e})=>{let t=q(`dropdown`);return n.default.createElement(`div`,{className:X(`-mx-1 my-1 h-px bg-border/60`,e||t.Dropdown.menuDividerClass)})},to=({menuKey:e,as:t=`ul`,badges:r={},before:i=void 0,after:a=void 0})=>{let o=q(`dropdown`);return n.default.createElement(qa,{menuKey:e,as:t,badges:r,before:i,after:a,wrapperClassName:o.Dropdown.Menu.wrapperClassName,className:o.Dropdown.Menu.className,headerClassName:o.Dropdown.Menu.headerClassName,itemClassName:o.Dropdown.Menu.itemClassName,linkClassName:o.Dropdown.Menu.linkClassName,iconClassName:o.Dropdown.Menu.iconClassName,textClassName:o.Dropdown.Menu.textClassName,badgeClassName:o.Dropdown.Menu.badgeClassName,arrowClassName:o.Dropdown.Menu.arrowClassName,submenuClassName:o.Dropdown.Menu.submenuClassName})},no=10,ro=e=>{if(e instanceof HTMLTextAreaElement)return!0;if(!(e instanceof HTMLInputElement))return!1;let t=e.type.toLowerCase();return t===``||[`text`,`search`,`email`,`url`,`tel`].includes(t)},io=e=>e.getClientRects().length>0&&window.getComputedStyle(e).visibility!==`hidden`,ao=e=>Array.from(e.querySelectorAll(`textarea, input`)).filter(ro),oo=(e,t)=>{let n=document.activeElement;if(ro(n)&&e.contains(n)&&io(n))return n;if(t&&e.contains(t)&&io(t))return t;let r=ao(e);return r.find(io)??r[0]??null},so=({label:e,value:t,icon:r,description:i,className:a,onSelect:o,active:s})=>n.default.createElement(`button`,{type:`button`,role:`menuitem`,className:X(`flex w-full cursor-pointer select-none items-start gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground`,s&&`bg-accent text-accent-foreground`,a),title:i?`${e} — ${i}`:void 0,onMouseDown:n=>{n.preventDefault(),n.stopPropagation(),o?.({label:e,value:t,icon:r,description:i})}},r&&n.default.createElement(Q,{name:r,size:16,className:`mt-0.5 shrink-0 text-muted-foreground`}),n.default.createElement(`span`,{className:`min-w-0 flex-1 text-left`},n.default.createElement(`span`,{className:`block truncate`},e),i&&n.default.createElement(`span`,{className:`block truncate text-xs text-muted-foreground`},i))),co=({children:e,className:t})=>n.default.createElement(`div`,{className:X(`sticky top-0 z-10 bg-popover px-2 py-1.5 text-xs font-medium uppercase tracking-wide text-muted-foreground`,t)},e),lo=({className:e})=>n.default.createElement(`div`,{className:X(`-mx-1 my-1 h-px bg-border`,e)}),uo=new Set([co,lo]),fo=(e,t)=>{if(!t)return!1;let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return RegExp(`^\\s*${n}`).test(e)},po=(e,t)=>{if(!t)return 0;let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return e.match(RegExp(`^\\s*${n}`))?.[0].length??0},mo=(e,t,n,r)=>{if(!n)return null;let i=e.slice(0,t),a=i.lastIndexOf(n);if(a===-1)return null;if(r?.requireWhitespacePrefix){let e=a===0?``:i[a-1];if(e&&!/\s/.test(e))return null}let o=i.slice(a+n.length);return(r?.queryPattern?!r.queryPattern.test(o):/\s/.test(o))?null:{query:o,start:a,end:t}},ho=(e,t,n)=>mo(e,t,n),go=e=>({value:e.value.slice(0,e.triggerRange.start)+e.value.slice(e.triggerRange.end),textBeforeCaret:e.value.slice(0,e.triggerRange.start),textAfterCaret:e.value.slice(e.triggerRange.end),trigger:e.trigger,query:e.query}),_o=(e,t)=>{let n=window.getComputedStyle(e),r=e.getBoundingClientRect(),i=parseFloat(n.lineHeight)||20,a=parseFloat(n.borderLeftWidth)||0,o=parseFloat(n.paddingLeft)||0,s=e.value.slice(0,t.start),c=s.lastIndexOf(`
|
|
6
6
|
`)+1,l=e.value.slice(c,t.start),u=s.split(`
|
|
7
|
-
`).length-1,d=document.createElement(`span`);d.style.all=`initial`;for(let e of[`fontFamily`,`fontSize`,`fontWeight`,`fontStyle`,`fontVariant`,`letterSpacing`,`wordSpacing`,`lineHeight`,`textAlign`,`textIndent`,`textRendering`,`textTransform`,`whiteSpace`,`wordBreak`,`wordWrap`]){let t=n.getPropertyValue(e);t&&d.style.setProperty(e,t)}d.style.whiteSpace=`pre`,d.style.position=`absolute`,d.style.visibility=`hidden`,d.style.pointerEvents=`none`,d.style.margin=`0`,d.style.padding=`0`,d.style.border=`0`,d.textContent=l,document.body.appendChild(d);let f=d.offsetWidth;return document.body.removeChild(d),{left:r.left+a+o+f-e.scrollLeft,top:r.top+(u+1)*i-e.scrollTop}},vo=(e,t)=>{let n=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),`value`)?.set;n?n.call(e,t):e.value=t},yo=(e,t)=>{let n=e.selectionStart??e.value.length,r=e.selectionEnd??n,i=e.value;return ho(i,n,t)?((n,r,i=r)=>{let a=ho(n,r,t)??{query:``,start:r,end:r};return{value:n,textBeforeCaret:n.slice(0,r),textAfterCaret:n.slice(i),trigger:t,query:a.query,triggerRange:{start:a.start,end:a.end},insert:t=>{let r=e.selectionStart??n.length,i=e.selectionEnd??r;vo(e,n.slice(0,r)+t+n.slice(i)),e.dispatchEvent(new Event(`input`,{bubbles:!0})),e.selectionStart=e.selectionEnd=r+t.length,e.focus()},replace:(t,r,i)=>{vo(e,n.slice(0,t)+i+n.slice(r)),e.dispatchEvent(new Event(`input`,{bubbles:!0})),e.selectionStart=e.selectionEnd=t+i.length,e.focus()}}})(i,n,r):null},bo=(0,n.forwardRef)(({trigger:e,searchable:t=!1,controlled:r,onSelect:i,children:a,before:o,after:s,wrapperClassName:l,className:u},d)=>{let f=(0,n.useId)(),p=(0,n.useRef)(null),m=(0,n.useRef)(null),h=(0,n.useRef)(null),[g,_]=(0,n.useState)(0),[v,y]=(0,n.useState)({open:!1,anchorPosition:null,query:``,editorContext:null}),b=(0,n.useMemo)(()=>{let e=[];return n.default.Children.forEach(a,t=>{n.default.isValidElement(t)&&t.type===so&&e.push({label:t.props.label,value:t.props.value,icon:t.props.icon,description:t.props.description})}),e},[a]),x=r?{open:r.open,anchorPosition:r.anchorPosition,query:r.query,editorContext:r.editorContext}:v,S=(0,n.useMemo)(()=>{if(!x.query)return b;let e=x.query.toLowerCase();return b.filter(t=>t.label.toLowerCase().includes(e)||t.value.toLowerCase().includes(e)||(t.description?.toLowerCase().includes(e)??!1))},[b,x.query]),C=(0,n.useCallback)(()=>{if(r){r.onClose();return}y({open:!1,anchorPosition:null,query:``,editorContext:null})},[r]),w=(0,n.useCallback)(e=>{let t=x.editorContext;t&&(i?i(e,t):t.replace(t.triggerRange.start,t.triggerRange.end,e.value),C())},[C,i,x.editorContext]);(0,n.useImperativeHandle)(d,()=>({moveNext:()=>{x.open&&S.length!==0&&_(e=>(e+1)%S.length)},movePrev:()=>{x.open&&S.length!==0&&_(e=>(e-1+S.length)%S.length)},selectActive:()=>{x.open&&S.length!==0&&w(S[g]??S[0])},close:()=>{C()}}),[g,C,S,x.open,w]),(0,n.useEffect)(()=>{_(0)},[x.query]),(0,n.useEffect)(()=>{if(r)return;let t=p.current;if(!t)return;let n=ao(t);if(n.length===0)return;h.current=oo(t,h.current);let i=()=>{let n=oo(t,h.current);if(!n)return;h.current=n;let r=n.selectionStart??n.value.length,i=ho(n.value,r,e);if(!i){y(e=>e.open?{open:!1,anchorPosition:null,query:``,editorContext:null}:e);return}let a=_o(n,i),o=yo(n,e);a&&o&&y({open:!0,anchorPosition:a,query:i.query,editorContext:o})},a=e=>{let t=e;if(v.open)switch(t.key){case`ArrowDown`:if(S.length===0)return;t.preventDefault(),_(e=>(e+1)%S.length);return;case`ArrowUp`:if(S.length===0)return;t.preventDefault(),_(e=>(e-1+S.length)%S.length);return;case`Enter`:case`Tab`:if(S.length===0)return;t.preventDefault(),w(S[g]??S[0]);return;case`Escape`:t.preventDefault(),C();return;default:return}},o=e=>{let t=e;[`ArrowDown`,`ArrowUp`,`Enter`,`Tab`,`Escape`].includes(t.key)||i()},s=()=>{i()},c=e=>{let n=ro(e.target)?e.target:null;h.current=n&&io(n)?n:oo(t,h.current),i()},l=()=>{window.setTimeout(()=>{let e=document.activeElement,t=m.current?.contains(e),n=p.current?.contains(e);!t&&!n&&C()},0)};return t.addEventListener(`focusin`,c),n.forEach(e=>{e.addEventListener(`keydown`,a),e.addEventListener(`keyup`,o),e.addEventListener(`input`,o),e.addEventListener(`change`,o),e.addEventListener(`click`,s),e.addEventListener(`blur`,l)}),()=>{t.removeEventListener(`focusin`,c),n.forEach(e=>{e.removeEventListener(`keydown`,a),e.removeEventListener(`keyup`,o),e.removeEventListener(`input`,o),e.removeEventListener(`change`,o),e.removeEventListener(`click`,s),e.removeEventListener(`blur`,l)})}},[g,C,r,S,v.open,w,e]),(0,n.useEffect)(()=>{if(!x.open)return;let e=e=>{let t=e.target,n=p.current?.contains(t),r=m.current?.contains(t);!n&&!r&&C()};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[C,x.open]);let{domChildren:T,renderedItems:E}=(0,n.useMemo)(()=>{let e=[],t=[],r=-1;return n.default.Children.forEach(a,i=>{if(!n.default.isValidElement(i)){e.push(i);return}if(i.type===so){let e=i.props;if(S.findIndex(t=>t.label===e.label&&t.value===e.value&&t.icon===e.icon)===-1)return;r+=1,t.push(n.default.cloneElement(i,{onSelect:w,active:r===g}));return}if(uo.has(i.type)){t.push(i);return}e.push(i)}),{domChildren:e,renderedItems:t}},[g,a,S,w]);return n.default.createElement(n.default.Fragment,null,n.default.createElement(`div`,{ref:p,className:X(u,l)},o,T,s),x.open&&x.anchorPosition&&S.length>0&&(0,c.createPortal)(n.default.createElement(`div`,{ref:m,role:`menu`,id:f,className:`fixed z-[200] min-w-44 max-w-[min(28rem,calc(100vw-1rem))] overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md outline-none`,style:{top:x.anchorPosition.top,left:x.anchorPosition.left,maxHeight:240}},n.default.createElement(`div`,{className:`p-1`},E)),document.body))});bo.displayName=`ContextMenu`,bo.Item=so,bo.Heading=co,bo.Separator=lo;function xo({minHeight:e=200,maxHeight:t=600,paddingOffset:r=0}){return(0,n.useMemo)(()=>{let n=e===`fill`,i=n?0:e;return{fill:n,adjustedMinHeight:i-r,wrapperStyle:n?{height:`100%`,overflowY:`auto`}:{maxHeight:t,overflowY:t?`auto`:void 0},resolvedMinHeight:i,resolvedMaxHeight:n?void 0:t}},[e,t,r])}var So=e=>{let t=new Map;for(let n of e){let e=t.get(n.group);e?e.push(n):t.set(n.group,[n])}return[...t].map(([e,t])=>({group:e,badge:t.find(e=>e.groupBadge)?.groupBadge,options:t}))},Co=e=>e===0?`0`:String(Number(e<.01?e.toPrecision(2):e.toFixed(e<1?3:2))),wo=e=>!!(e.pricing&&e.pricing.input===0&&e.pricing.output===0),To=`h-7 w-7 cursor-pointer rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,Eo=`sticky -top-1 z-10 -mx-1 border-b border-border/60 bg-popover px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-muted-foreground`,Do=`gap-3`,Oo=`gap-3 bg-success/10 hover:bg-success/20 focus:bg-success/20`,ko=`ml-auto shrink-0 whitespace-nowrap text-xs tabular-nums text-muted-foreground`,Ao=`ml-auto shrink-0 whitespace-nowrap text-xs italic text-warning`,jo=`h-7 max-w-[140px] rounded-md px-2 text-xs gap-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground truncate`,Mo=`w-full resize-none border-0 bg-transparent px-4 py-3 text-sm shadow-none outline-none focus-visible:ring-0 placeholder:text-muted-foreground`;function No(e){return e?(e.includes(`/`)?e.split(`/`).pop():e)||e:null}function Po({name:e,value:t,onChange:r,placeholder:i,running:a=!1,onStop:o,disabled:s=!1,onSubmit:c,attachments:l=!1,commands:u,commandsTrigger:d,models:f=[],selectedModel:p,onModelChange:m,modelPlaceholder:h,showSettings:g=!1,defaultRole:_=``,defaultVoice:v=``,defaultStyle:y=``,defaultLanguage:b=``,defaultTemperature:x,actions:S,minHeight:C=96,maxHeight:w=220,wrapperClassName:T,className:E}){let D=q(`prompt`),O=Y(`prompt`),k=(0,n.useRef)(null),A=(0,n.useRef)(null),j=(0,n.useId)(),[M,N]=(0,n.useState)([]),[P,F]=(0,n.useState)(!1),I=(0,n.useRef)(0),[L,R]=(0,n.useState)(!1),[z,B]=(0,n.useState)(_),[ee,V]=(0,n.useState)(v),[H,U]=(0,n.useState)(y),[te,ne]=(0,n.useState)(b),[re,W]=(0,n.useState)(x);(0,n.useEffect)(()=>{a||R(!1)},[a]),(0,n.useEffect)(()=>()=>{M.forEach(({objectUrl:e})=>URL.revokeObjectURL(e))},[M]);let G=(0,n.useCallback)(e=>{N(t=>(URL.revokeObjectURL(t[e].objectUrl),t.filter((t,n)=>n!==e)))},[]),ie=(0,n.useCallback)(e=>{let t=Array.from(e).map(e=>({file:e,objectUrl:URL.createObjectURL(e)}));N(e=>[...e,...t])},[]),ae=(0,n.useCallback)(e=>{if(!l)return;let t=Array.from(e.clipboardData.items).filter(e=>e.kind===`file`).map(e=>e.getAsFile()).filter(e=>!!e);if(!t.length)return;e.preventDefault();let n=new Date().toISOString().replace(/\D/g,``).slice(0,14);ie(t.map((e,r)=>!e.name||e.name===`image.png`?new File([e],`pasted-${n}${t.length>1?`-${r+1}`:``}.${(e.type.split(`/`)[1]||`png`).replace(`jpeg`,`jpg`)}`,{type:e.type}):e))},[l,ie]),oe=(0,n.useCallback)(e=>{l&&e.dataTransfer.types.includes(`Files`)&&(e.preventDefault(),I.current+=1,F(!0))},[l]),se=(0,n.useCallback)(e=>{l&&e.dataTransfer.types.includes(`Files`)&&e.preventDefault()},[l]),ce=(0,n.useCallback)(e=>{l&&(e.preventDefault(),I.current=Math.max(0,I.current-1),I.current===0&&F(!1))},[l]),le=(0,n.useCallback)(e=>{l&&(e.preventDefault(),I.current=0,F(!1),e.dataTransfer.files.length&&ie(e.dataTransfer.files))},[l,ie]),ue=xo({minHeight:C,maxHeight:w});(0,n.useEffect)(()=>{let e=k.current;if(!e)return;e.style.height=`auto`;let t=Math.max(e.scrollHeight,ue.resolvedMinHeight),n=ue.resolvedMaxHeight?Math.min(t,ue.resolvedMaxHeight):t;e.style.height=`${n}px`,e.style.overflowY=ue.resolvedMaxHeight&&t>ue.resolvedMaxHeight?`auto`:`hidden`},[t,ue.resolvedMinHeight,ue.resolvedMaxHeight]);let K=u?.length?d??`/`:void 0,de=(u?.length??0)>=10,fe=n.default.useMemo(()=>new Map((u??[]).map(e=>[e.name,e])),[u]),pe=n.default.useMemo(()=>(u??[]).map(e=>({key:e.name,label:`${K??`/`}${e.name}`,value:e.name,icon:e.icon,description:e.description})),[u,K]),me=(0,n.useCallback)(async(e,t)=>{let n=fe.get(e.value);if(n){if(n.handler){let e=await n.handler(go(t)),r=n.consumeSuffix?po(t.textAfterCaret,n.consumeSuffix):0;t.replace(t.triggerRange.start,t.triggerRange.end+r,e);return}t.replace(t.triggerRange.start,t.triggerRange.end,`${t.trigger}${n.name} `)}},[fe]),he=f.find(e=>e.value===p)?.label??No(p),ge=()=>{s||a||(c({text:t,files:M.map(e=>e.file),model:p??``,...g?{role:z,voice:ee,style:H,language:te,temperature:re}:{}}),M.forEach(({objectUrl:e})=>URL.revokeObjectURL(e)),N([]))},_e=()=>{if(a){R(!0),o?.();return}ge()},ve=n.default.createElement(`textarea`,{id:j,name:e,ref:k,value:t,onChange:e=>r(e.target.value),onPaste:ae,placeholder:i,className:E||Mo,style:{maxHeight:w},onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&!e.nativeEvent.defaultPrevented&&(e.preventDefault(),_e())}});return n.default.createElement(Z,{className:T||D.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`group relative rounded-xl border shadow-sm transition-shadow focus-within:shadow-md focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-0 ${P?`border-primary ring-2 ring-primary`:`border-input`}`,onDragEnter:oe,onDragOver:se,onDragLeave:ce,onDrop:le},l&&P&&n.default.createElement(`div`,{className:`pointer-events-none absolute inset-0 z-10 flex items-center justify-center rounded-xl bg-primary/5`},n.default.createElement(`div`,{className:`flex items-center gap-2 rounded-lg bg-background px-3 py-1.5 text-xs font-medium text-primary shadow`},n.default.createElement(Q,{name:`paperclip`,size:13}),O.dropFilesHere)),n.default.createElement(`div`,{className:`overflow-hidden rounded-t-xl`},M.length>0&&n.default.createElement(`div`,{className:`flex gap-2 overflow-x-auto border-b border-input px-3 py-2.5`},M.map(({file:e,objectUrl:t},r)=>n.default.createElement(`div`,{key:t,className:`relative shrink-0`},e.type.startsWith(`image/`)?n.default.createElement(`div`,{className:`h-16 w-16 overflow-hidden rounded-lg border border-input bg-muted/30`},n.default.createElement(`img`,{src:t,alt:e.name,className:`h-full w-full object-cover`})):n.default.createElement(`div`,{className:`flex items-center gap-2 rounded-lg border border-input bg-muted/30 px-2.5 py-2 text-xs`},n.default.createElement(Q,{name:`file-text`,size:18,className:`shrink-0 text-muted-foreground`}),n.default.createElement(`div`,{className:`max-w-[100px]`},n.default.createElement(`p`,{className:`truncate font-medium text-foreground`},e.name),n.default.createElement(`p`,{className:`text-muted-foreground`},(e.size/1024).toFixed(0),` KB`))),n.default.createElement(`button`,{type:`button`,className:`absolute -right-1.5 -top-1.5 flex h-4 w-4 cursor-pointer items-center justify-center rounded-full bg-foreground text-background shadow`,onClick:()=>G(r)},n.default.createElement(Q,{name:`x`,size:9}))))),K&&pe.length>0?n.default.createElement(bo,{trigger:K,searchable:de,onSelect:(e,t)=>{me(e,t)}},pe.map(e=>n.default.createElement(bo.Item,{key:e.key,label:e.label,value:e.value,icon:e.icon,description:e.description})),ve):ve),l&&n.default.createElement(`input`,{ref:A,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{e.target.files&&(ie(e.target.files),e.target.value=``)}}),n.default.createElement(`div`,{className:`relative flex items-center gap-1 rounded-b-xl border-t border-input px-2 py-1`},(l||(S?.length??0)>0)&&n.default.createElement(n.default.Fragment,null,l&&n.default.createElement(`button`,{type:`button`,title:O.attachFiles,className:`${To} flex items-center justify-center`,onClick:()=>A.current?.click()},n.default.createElement(Q,{name:`paperclip`,size:13})),S?.map(e=>e.content?n.default.createElement(Ya,{key:e.key,trigger:{icon:e.icon,title:e.label},placement:`top`,position:`start`,triggerClassName:To},e.content):n.default.createElement(`button`,{key:e.key,type:`button`,title:e.label,"aria-label":e.label,disabled:e.disabled,onClick:e.onClick,className:e.showLabel&&e.label?`${To} flex w-auto items-center gap-1.5 px-2 text-xs disabled:cursor-not-allowed disabled:opacity-50`:`${To} flex items-center justify-center disabled:cursor-not-allowed disabled:opacity-50`},n.default.createElement(Q,{name:e.icon,size:13}),e.showLabel&&e.label&&n.default.createElement(`span`,{className:`whitespace-nowrap`},e.label))),n.default.createElement(`div`,{className:`mx-1 h-4 w-px shrink-0 bg-border`})),f.length>0&&n.default.createElement(Ya,{trigger:{icon:`cpu`,text:he??h??O.defaultOption},placement:`top`,position:`start`,triggerClassName:jo},So(f).map(({group:e,badge:t,options:r})=>n.default.createElement(n.default.Fragment,{key:e??``},e!==void 0&&n.default.createElement($a,{className:Eo},t?n.default.createElement(`span`,{className:`flex items-center justify-between gap-2`},n.default.createElement(`span`,{className:`min-w-0 truncate`},e),n.default.createElement(Mt,{variant:t.variant??`light`},t.label)):e),r.map(e=>n.default.createElement(Qa,{key:e.value,onClick:()=>m?.(e.value),className:wo(e)?Oo:e.pricing===void 0?void 0:Do},n.default.createElement(`span`,{className:`min-w-0`},e.label),e.pricing?n.default.createElement(`span`,{className:ko,title:O.modelPricing},`$`,Co(e.pricing.input),` / $`,Co(e.pricing.output)):e.pricing===null?n.default.createElement(`span`,{className:Ao},O.modelPriceNotFound):null))))),g&&n.default.createElement(n.default.Fragment,null,n.default.createElement(Ya,{trigger:{icon:`user`,title:O.role},placement:`top`,position:`start`,triggerClassName:To},n.default.createElement(Qa,{onClick:()=>B(``)},O.defaultOption),ta.getRoles().map(e=>n.default.createElement(Qa,{key:e,onClick:()=>B(e)},e))),n.default.createElement(Ya,{trigger:{icon:`globe`,title:O.language},placement:`top`,position:`start`,triggerClassName:To},n.default.createElement(Qa,{onClick:()=>ne(``)},O.defaultOption),ta.getLangs().map(e=>n.default.createElement(Qa,{key:e,onClick:()=>ne(e)},e))),n.default.createElement(Ya,{trigger:{icon:`mic`,title:O.voice},placement:`top`,position:`start`,triggerClassName:To},n.default.createElement(Qa,{onClick:()=>V(``)},O.defaultOption),ta.getVoices().map(e=>n.default.createElement(Qa,{key:e,onClick:()=>V(e)},e))),n.default.createElement(Ya,{trigger:{icon:`feather`,title:O.style},placement:`top`,position:`start`,triggerClassName:To},n.default.createElement(Qa,{onClick:()=>U(``)},O.defaultOption),ta.getStyles().map(e=>n.default.createElement(Qa,{key:e,onClick:()=>U(e)},e))),n.default.createElement(Ya,{trigger:{icon:`thermometer`,title:O.temperature},placement:`top`,position:`start`,triggerClassName:To},n.default.createElement(Qa,null,n.default.createElement(`input`,{type:`range`,"aria-label":O.temperature,min:0,max:1,step:.1,value:re??0,onChange:e=>W(Number(e.target.value)),className:`w-full cursor-pointer accent-primary`})))),n.default.createElement(`div`,{className:`flex-1`}),n.default.createElement(`button`,{type:`button`,onClick:_e,disabled:a?!o:s,title:L?O.stopping:a?O.stop:O.run,"aria-label":L?O.stopping:a?O.stop:O.run,className:`flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-lg text-sm transition-colors disabled:cursor-not-allowed disabled:opacity-50 ${a?`bg-destructive text-destructive-foreground hover:bg-destructive/90`:`bg-primary text-primary-foreground hover:bg-primary/90`}`},L||a&&!o?n.default.createElement(`span`,{className:`inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}):n.default.createElement(Q,{name:a?`square`:`send`,size:14})))))}var Fo=function(e){return e.EDIT=`edit`,e.RUN=`run`,e}({}),Io=`space-y-2`,Lo=`flex items-center justify-between gap-3`,Ro=`mb-0 min-w-0 text-sm font-medium leading-5 text-foreground`,zo=`ml-auto shrink-0`,Bo=()=>[],Vo=(e,t=`Prompt execution failed.`)=>{if(e instanceof Error&&e.message)return e.message;if(typeof e==`string`)return e;if(e&&typeof e==`object`){if(`reason`in e&&typeof e.reason==`string`)return e.reason;if(`error`in e&&typeof e.error==`string`)return e.error;if(`message`in e&&typeof e.message==`string`)return e.message}return t},Ho=({htmlFor:e,label:t,required:r=!1,action:i})=>n.default.createElement(`div`,{className:Lo},n.default.createElement(hl,{htmlFor:e,label:t,required:r,className:Ro}),i?n.default.createElement(`div`,{className:zo},i):null);function Uo(){let e=ca(),[t,r]=(0,n.useState)({modelOptions:Bo(),capabilitiesByProvider:{}});return(0,n.useEffect)(()=>{let t=!1;return(async()=>{if(!e||Object.keys(e.registry).length===0){t||r({modelOptions:Bo(),capabilitiesByProvider:{}});return}let n=await za(e.registry);if(t)return;let i=n.models.map(e=>({label:e.model,value:e.id,pricing:e.pricing??null,group:e.providerLabel??e.provider}));r({modelOptions:i.length>0?i:Bo(),capabilitiesByProvider:n.capabilitiesByProvider})})(),()=>{t=!0}},[e]),t}function Wo(e,t=!1){let n=sa(),r=ca(),i=ia(e),a=Object.keys(r?.registry??{}),o=i?.provider??n?.id??(r?.defaultKey&&a.includes(r.defaultKey)?r.defaultKey:null),s=o?r?.registry[o]??(n?.id===o?n:null):n??null;if(t)return{provider:s,providerId:o,configured:!0};if(a.length===0&&!s)return{provider:null,providerId:null,configured:!1,reason:void 0};let c=Hn(s,o?`AI provider "${o}"`:`AI provider`);return{provider:s,providerId:o,configured:c.configured,reason:c.reason}}var Go=({mode:e,availability:t,renderAIUnavailable:r})=>{let i=Y(`prompt`);if(t.configured)return null;let a=r?.({mode:e,providerId:t.providerId,reason:t.reason,configured:t.configured});return a==null?n.default.createElement(vr,{variant:`warning`,icon:`warning`,className:`text-xs leading-5`},e===`edit`?t.reason||i.aiNotConfiguredEdit:t.reason||i.aiNotConfiguredRun):n.default.createElement(n.default.Fragment,null,a)},Ko=({mode:e=`edit`,...t})=>{let{value:r}=Ec({name:t.name}),i=typeof r==`object`&&r&&!Array.isArray(r)?r:void 0,a=qo(i?.prompt?.enabled,t.defaultValue?.enabled,i?.prompt);return e===`edit`?n.default.createElement(Yo,{...t,value:i}):a?n.default.createElement($o,{...t,value:i}):n.default.createElement(es,t)},qo=(e,t,n)=>typeof e==`string`?e===`on`||e===`true`:typeof e==`boolean`?e:typeof e==`number`?e!==0:n&&typeof n==`object`?!1:!!t,Jo=(e,t)=>e?t.toggleOnTitle:t.toggleOffTitle,Yo=({name:e,label:t=void 0,value:r=void 0,required:i=!1,onChange:a=void 0,defaultValue:o=void 0,minHeight:s=160,maxHeight:c=240,before:l=void 0,after:u=void 0,wrapperClassName:d=void 0,className:f=void 0,renderAIUnavailable:p=void 0})=>{let{handleChange:m}=Ec({name:e}),h=q(`prompt`),g=Y(`prompt`),_=t||e,v=qo(r?.prompt?.enabled,o?.enabled,r?.prompt),y=Jo(v,g),b=(0,n.useId)(),x=Wo(r?.prompt?.model?.toString()||o?.model);return n.default.createElement(Z,{className:d||h.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`flex items-center gap-2`},l&&n.default.createElement(`div`,{className:`shrink-0`},l),n.default.createElement(`div`,{className:`${Io} min-w-0 flex-1`},n.default.createElement(Ho,{htmlFor:b,label:v?n.default.createElement(n.default.Fragment,null,g.promptLabel,_):_,required:i,action:n.default.createElement(ml,{name:e+`.prompt.enabled`,ariaLabel:y,title:y,defaultValue:v?`on`:``,inheritWrapperClassName:!1,onChange:({event:t})=>{m({target:{name:e+`.prompt.value`,value:t.target.value&&o?.value}})}})}),n.default.createElement(gl,{id:b,className:f||h.Prompt.className,name:e+(v?`.prompt.value`:`.value`),defaultValue:v?o?.value:void 0,onChange:a,required:i,inheritWrapperClassName:!1,wrapperClassName:``,minHeight:s,maxHeight:c}),n.default.createElement(Go,{mode:`edit`,availability:x,renderAIUnavailable:p})),u&&n.default.createElement(`div`,{className:`shrink-0`},u)))},Xo=`border-0 shadow-none rounded-none focus-visible:ring-0 resize-none`,Zo=`h-7 w-7 cursor-pointer rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,Qo=(e,t)=>({value:String(e?.value??t?.value??``),role:String(e?.role??t?.role??``),language:String(e?.language??t?.language??``),voice:String(e?.voice??t?.voice??``),style:String(e?.style??t?.style??``),model:String(e?.model??t?.model??``),temperature:typeof e?.temperature==`number`?e.temperature:t?.temperature}),$o=({name:e,label:t,value:r,required:i,onChange:a,defaultValue:o,minHeight:s=120,maxHeight:c=160,before:l,after:u,wrapperClassName:d,className:f,onRunPrompt:p,renderAIUnavailable:m,variables:h,commands:g,commandsTrigger:_,attachments:v,actions:y,statusItems:b})=>{let{handleChange:x,record:S}=Ec({name:e,subscribeToFullRecord:!0}),C=q(`prompt`),w=Y(`prompt`),T=t||e,[E,D]=(0,n.useState)(!1),[O,k]=(0,n.useState)(o?.value??``),[A,j]=(0,n.useState)(!1),[M,N]=(0,n.useState)(null),P=sa(),F=ca(),{modelOptions:I}=Uo(),L=typeof localStorage<`u`?localStorage.getItem(`prompt.model`):null,R=L&&I.some(e=>e.value===L)?L:``,z=n.default.useMemo(()=>Qo(r?.prompt,o),[o,r?.prompt]),B=z.model||R,ee=(0,n.useId)(),V=Wo(B,!!p),H=!V.configured||!p&&!B,[U,te]=(0,n.useState)(null),ne=!U&&!V.configured?m?.({mode:`run`,providerId:V.providerId,reason:V.reason,configured:V.configured}):null,re=n.default.useMemo(()=>{if(!O)return``;let e={...S,...h};return ta.parsePrompt(O,e)},[O,S,h]),W=re!==O,G=(e,t)=>x?.({target:{name:e,value:t}}),ie=y?.map(e=>e.key===`tokenUsage`&&!e.content?{...e,content:M?n.default.createElement(`div`,{className:`px-3 py-2 text-xs space-y-1`},n.default.createElement(`p`,{className:`font-medium text-foreground`},w.tokenUsage),n.default.createElement(`p`,{className:`text-muted-foreground`},J(w.tokenInput,{count:String(M.tokensIn)})),n.default.createElement(`p`,{className:`text-muted-foreground`},J(w.tokenOutput,{count:String(M.tokensOut)})),M.contextPercent!==null&&n.default.createElement(`p`,{className:`text-muted-foreground`},J(w.tokenContext,{percent:M.contextPercent.toFixed(1)})),M.estimatedCost!==null&&n.default.createElement(`p`,{className:`text-muted-foreground`},J(w.tokenCost,{amount:M.estimatedCost.toFixed(5)})),n.default.createElement(`p`,{className:`text-muted-foreground`},J(w.tokenTime,{seconds:(M.durationMs/1e3).toFixed(1)}))):n.default.createElement(`p`,{className:`px-3 py-2 text-xs text-muted-foreground`},w.tokenUsageEmpty)}:e),ae=async t=>{let n=t.model||B||R,r=ia(n),i=r?F?.registry[r.provider]??P??void 0:P??void 0,a=Date.now();try{let r={...S,...h},o=await Promise.all(t.files.map(e=>Ka.fileToAttachment(e))),s=await ts({...z,model:n,role:t.role??z.role,voice:t.voice??z.voice,style:t.style??z.style,language:t.language??z.language,temperature:t.temperature??z.temperature},r,p,i,o.length>0?o:void 0,{noProvider:w.noProvider,noResponse:w.noResponse}),c=Date.now()-a;if(te(null),x?.({target:{name:e+`.value`,value:s}}),t.role!==void 0&&G(e+`.prompt.role`,t.role),t.voice!==void 0&&G(e+`.prompt.voice`,t.voice),t.style!==void 0&&G(e+`.prompt.style`,t.style),t.language!==void 0&&G(e+`.prompt.language`,t.language),b&&b.length>0){let e=ta.parsePrompt(z.value??``,r),t=Ka.countTokens(e),i=Ka.countTokens(s??``),a=Ka.contextPercent(t,n),o=Ka.estimateCost(t,i,n);N({tokensIn:t,tokensOut:i,contextPercent:a>0?a:null,model:n,durationMs:c,estimatedCost:isFinite(o)?o:null})}}catch(e){te(Vo(e,w.runFailed))}};return n.default.createElement(Z,{className:d||C.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`flex items-center gap-2`},l&&n.default.createElement(`div`,{className:`shrink-0`},l),n.default.createElement(`div`,{className:`${Io} min-w-0 flex-1`},T&&n.default.createElement(Ho,{htmlFor:ee,label:E?n.default.createElement(n.default.Fragment,null,w.promptLabel,T):T,required:i}),n.default.createElement(`div`,{className:`group relative`},n.default.createElement(`button`,{type:`button`,title:E?w.closeEditor:w.editSettings,className:`absolute right-2 top-2 z-10 flex h-6 w-6 items-center justify-center rounded-md transition-all ${E?`bg-warning/10 text-warning opacity-100`:`bg-background/80 text-muted-foreground opacity-0 group-hover:opacity-100 hover:bg-muted hover:text-foreground`}`,onClick:()=>D(e=>!e)},n.default.createElement(Q,{name:E?`x`:`settings`,size:13})),E?n.default.createElement(`div`,{className:`overflow-hidden rounded-xl border border-input shadow-sm transition-shadow focus-within:shadow-md focus-within:ring-2 focus-within:ring-warning focus-within:ring-offset-0`},n.default.createElement(gl,{id:ee,name:e+`.prompt.value`,defaultValue:o?.value,onChange:e=>{k(String(e.event.target.value??``)),a?.(e)},required:!0,inheritWrapperClassName:!1,wrapperClassName:``,className:`${f||C.Prompt.className} ${Xo}`,minHeight:s,maxHeight:c}),W&&A&&n.default.createElement(`div`,{className:`border-t border-input px-4 py-3 bg-muted/20`},n.default.createElement(`p`,{className:`whitespace-pre-wrap text-sm text-foreground/70`},re)),W&&n.default.createElement(`div`,{className:`flex items-center justify-end border-t border-input px-2 py-1`},n.default.createElement(`button`,{type:`button`,title:A?w.hidePreview:w.showPreview,className:`${Zo} flex items-center justify-center ${A?`bg-muted text-foreground`:``}`,onClick:()=>j(e=>!e)},n.default.createElement(Q,{name:A?`eye-off`:`eye`,size:13})))):n.default.createElement(n.default.Fragment,null,n.default.createElement(Po,{name:e+`.value`,value:r?.value===void 0?``:String(r.value),onChange:t=>{x?.({target:{name:e+`.value`,value:t}}),a?.({event:{target:{name:e+`.value`,value:t}},name:e+`.value`,value:t,record:S??{},onChange:x??(()=>{})})},disabled:H,onSubmit:e=>{ae(e)},attachments:v,commands:g,commandsTrigger:_,models:I,selectedModel:B,onModelChange:t=>G(e+`.prompt.model`,t),showSettings:!0,defaultRole:z.role,defaultVoice:z.voice,defaultStyle:z.style,defaultLanguage:z.language,defaultTemperature:z.temperature,actions:ie,minHeight:s,maxHeight:c,className:f||C.Prompt.className,wrapperClassName:``}),(U||!V.configured)&&(ne?n.default.createElement(`div`,{className:`mt-1`},ne):n.default.createElement(`span`,{className:`mt-1 flex min-w-0 items-center gap-1 text-xs text-warning`},n.default.createElement(Q,{name:`triangle-alert`,size:13,className:`shrink-0`}),n.default.createElement(`span`,{className:`truncate`},U??(V.reason||w.aiNotConfiguredShort)))),b&&b.length>0&&M&&n.default.createElement(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-3 gap-y-0.5 rounded-lg border border-input/50 bg-muted/20 px-4 py-1.5 text-[11px] text-muted-foreground`},b.map(e=>{if(typeof e==`string`)switch(e){case`tokensIn`:return n.default.createElement(`span`,{key:`tokensIn`},J(w.tokenInput,{count:M.tokensIn}));case`tokensOut`:return n.default.createElement(`span`,{key:`tokensOut`},J(w.tokenOutput,{count:M.tokensOut}));case`contextPercent`:return M.contextPercent===null?null:n.default.createElement(`span`,{key:`ctx`},J(w.tokenContext,{percent:M.contextPercent.toFixed(1)}));case`model`:return n.default.createElement(`span`,{key:`model`,className:`font-mono`},(ia(M.model)?.model||M.model).split(`/`).pop());case`duration`:return n.default.createElement(`span`,{key:`dur`},J(w.tokenTime,{seconds:(M.durationMs/1e3).toFixed(1)}));default:return null}return n.default.createElement(`span`,{key:e.key},e.render(M))}),M.estimatedCost!==null&&!b.some(e=>typeof e==`object`&&e.key===`cost`)&&n.default.createElement(`span`,{className:`ml-auto font-mono`},`~$`,M.estimatedCost.toFixed(5)))))),u&&n.default.createElement(`div`,{className:`shrink-0`},u)))},es=({name:e,label:t,required:r,onChange:i,minHeight:a=96,maxHeight:o=120,before:s,after:c,wrapperClassName:l,className:u,renderFallback:d})=>{let f=q(`prompt`),p=(0,n.useId)();return n.default.createElement(Z,{className:l||f.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`flex items-center gap-2`},s&&n.default.createElement(`div`,{className:`shrink-0`},s),n.default.createElement(`div`,{className:`min-w-0 flex-1`},d?.({name:e,label:t,required:r,onChange:i})??n.default.createElement(`div`,{className:Io},t&&n.default.createElement(Ho,{htmlFor:p,label:t,required:r}),n.default.createElement(gl,{id:p,className:u||f.Prompt.className,name:e+`.value`,onChange:i,required:r,inheritWrapperClassName:!1,wrapperClassName:``,minHeight:a,maxHeight:o}))),c&&n.default.createElement(`div`,{className:`shrink-0`},c)))},ts=async(e,t,n,r,i,a)=>{let{value:o,model:s,...c}=e??{};if(n)return n(o,{...c,model:s,attachments:i},t);if(!o)return``;if(!r)throw Error(a?.noProvider??`No AI provider is available for this prompt.`);let l=ia(s)?.model||s||r.defaultModel,u=await r.complete({...c,model:l,prompt:[qi,o,Ji].join(`
|
|
7
|
+
`).length-1,d=document.createElement(`span`);d.style.all=`initial`;for(let e of[`fontFamily`,`fontSize`,`fontWeight`,`fontStyle`,`fontVariant`,`letterSpacing`,`wordSpacing`,`lineHeight`,`textAlign`,`textIndent`,`textRendering`,`textTransform`,`whiteSpace`,`wordBreak`,`wordWrap`]){let t=n.getPropertyValue(e);t&&d.style.setProperty(e,t)}d.style.whiteSpace=`pre`,d.style.position=`absolute`,d.style.visibility=`hidden`,d.style.pointerEvents=`none`,d.style.margin=`0`,d.style.padding=`0`,d.style.border=`0`,d.textContent=l,document.body.appendChild(d);let f=d.offsetWidth;return document.body.removeChild(d),{left:r.left+a+o+f-e.scrollLeft,top:r.top+(u+1)*i-e.scrollTop}},vo=(e,t)=>{let n=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),`value`)?.set;n?n.call(e,t):e.value=t},yo=(e,t)=>{let n=e.selectionStart??e.value.length,r=e.selectionEnd??n,i=e.value;return ho(i,n,t)?((n,r,i=r)=>{let a=ho(n,r,t)??{query:``,start:r,end:r};return{value:n,textBeforeCaret:n.slice(0,r),textAfterCaret:n.slice(i),trigger:t,query:a.query,triggerRange:{start:a.start,end:a.end},insert:t=>{let r=e.selectionStart??n.length,i=e.selectionEnd??r;vo(e,n.slice(0,r)+t+n.slice(i)),e.dispatchEvent(new Event(`input`,{bubbles:!0})),e.selectionStart=e.selectionEnd=r+t.length,e.focus()},replace:(t,r,i)=>{vo(e,n.slice(0,t)+i+n.slice(r)),e.dispatchEvent(new Event(`input`,{bubbles:!0})),e.selectionStart=e.selectionEnd=t+i.length,e.focus()}}})(i,n,r):null},bo=(0,n.forwardRef)(({trigger:e,searchable:t=!1,controlled:r,onSelect:i,children:a,before:o,after:s,wrapperClassName:l,className:u},d)=>{let f=(0,n.useId)(),p=(0,n.useRef)(null),m=(0,n.useRef)(null),h=(0,n.useRef)(null),[g,_]=(0,n.useState)(0),[v,y]=(0,n.useState)({open:!1,anchorPosition:null,query:``,editorContext:null}),b=(0,n.useMemo)(()=>{let e=[];return n.default.Children.forEach(a,t=>{n.default.isValidElement(t)&&t.type===so&&e.push({label:t.props.label,value:t.props.value,icon:t.props.icon,description:t.props.description})}),e},[a]),x=r?{open:r.open,anchorPosition:r.anchorPosition,query:r.query,editorContext:r.editorContext}:v,S=(0,n.useMemo)(()=>{if(!x.query)return b;let e=x.query.toLowerCase();return b.filter(t=>t.label.toLowerCase().includes(e)||t.value.toLowerCase().includes(e)||(t.description?.toLowerCase().includes(e)??!1))},[b,x.query]),C=(0,n.useCallback)(()=>{if(r){r.onClose();return}y({open:!1,anchorPosition:null,query:``,editorContext:null})},[r]),w=(0,n.useCallback)(e=>{let t=x.editorContext;t&&(i?i(e,t):t.replace(t.triggerRange.start,t.triggerRange.end,e.value),C())},[C,i,x.editorContext]);(0,n.useImperativeHandle)(d,()=>({moveNext:()=>{x.open&&S.length!==0&&_(e=>(e+1)%S.length)},movePrev:()=>{x.open&&S.length!==0&&_(e=>(e-1+S.length)%S.length)},selectActive:()=>{x.open&&S.length!==0&&w(S[g]??S[0])},close:()=>{C()}}),[g,C,S,x.open,w]),(0,n.useEffect)(()=>{_(0)},[x.query]),(0,n.useEffect)(()=>{if(r)return;let t=p.current;if(!t)return;let n=ao(t);if(n.length===0)return;h.current=oo(t,h.current);let i=()=>{let n=oo(t,h.current);if(!n)return;h.current=n;let r=n.selectionStart??n.value.length,i=ho(n.value,r,e);if(!i){y(e=>e.open?{open:!1,anchorPosition:null,query:``,editorContext:null}:e);return}let a=_o(n,i),o=yo(n,e);a&&o&&y({open:!0,anchorPosition:a,query:i.query,editorContext:o})},a=e=>{let t=e;if(v.open)switch(t.key){case`ArrowDown`:if(S.length===0)return;t.preventDefault(),_(e=>(e+1)%S.length);return;case`ArrowUp`:if(S.length===0)return;t.preventDefault(),_(e=>(e-1+S.length)%S.length);return;case`Enter`:case`Tab`:if(S.length===0)return;t.preventDefault(),w(S[g]??S[0]);return;case`Escape`:t.preventDefault(),C();return;default:return}},o=e=>{let t=e;[`ArrowDown`,`ArrowUp`,`Enter`,`Tab`,`Escape`].includes(t.key)||i()},s=()=>{i()},c=e=>{let n=ro(e.target)?e.target:null;h.current=n&&io(n)?n:oo(t,h.current),i()},l=()=>{window.setTimeout(()=>{let e=document.activeElement,t=m.current?.contains(e),n=p.current?.contains(e);!t&&!n&&C()},0)};return t.addEventListener(`focusin`,c),n.forEach(e=>{e.addEventListener(`keydown`,a),e.addEventListener(`keyup`,o),e.addEventListener(`input`,o),e.addEventListener(`change`,o),e.addEventListener(`click`,s),e.addEventListener(`blur`,l)}),()=>{t.removeEventListener(`focusin`,c),n.forEach(e=>{e.removeEventListener(`keydown`,a),e.removeEventListener(`keyup`,o),e.removeEventListener(`input`,o),e.removeEventListener(`change`,o),e.removeEventListener(`click`,s),e.removeEventListener(`blur`,l)})}},[g,C,r,S,v.open,w,e]),(0,n.useEffect)(()=>{if(!x.open)return;let e=e=>{let t=e.target,n=p.current?.contains(t),r=m.current?.contains(t);!n&&!r&&C()};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[C,x.open]);let{domChildren:T,renderedItems:E}=(0,n.useMemo)(()=>{let e=[],t=[],r=-1;return n.default.Children.forEach(a,i=>{if(!n.default.isValidElement(i)){e.push(i);return}if(i.type===so){let e=i.props;if(S.findIndex(t=>t.label===e.label&&t.value===e.value&&t.icon===e.icon)===-1)return;r+=1,t.push(n.default.cloneElement(i,{onSelect:w,active:r===g}));return}if(uo.has(i.type)){t.push(i);return}e.push(i)}),{domChildren:e,renderedItems:t}},[g,a,S,w]);return n.default.createElement(n.default.Fragment,null,n.default.createElement(`div`,{ref:p,className:X(u,l)},o,T,s),x.open&&x.anchorPosition&&S.length>0&&(0,c.createPortal)(n.default.createElement(`div`,{ref:m,role:`menu`,id:f,className:`fixed z-[200] min-w-44 max-w-[min(28rem,calc(100vw-1rem))] overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md outline-none`,style:{top:x.anchorPosition.top,left:x.anchorPosition.left,maxHeight:240}},n.default.createElement(`div`,{className:`p-1`},E)),document.body))});bo.displayName=`ContextMenu`,bo.Item=so,bo.Heading=co,bo.Separator=lo;function xo({minHeight:e=200,maxHeight:t=600,paddingOffset:r=0}){return(0,n.useMemo)(()=>{let n=e===`fill`,i=n?0:e;return{fill:n,adjustedMinHeight:i-r,wrapperStyle:n?{height:`100%`,overflowY:`auto`}:{maxHeight:t,overflowY:t?`auto`:void 0},resolvedMinHeight:i,resolvedMaxHeight:n?void 0:t}},[e,t,r])}var So=e=>{let t=new Map;for(let n of e){let e=t.get(n.group);e?e.push(n):t.set(n.group,[n])}return[...t].map(([e,t])=>({group:e,badge:t.find(e=>e.groupBadge)?.groupBadge,options:t}))},Co=e=>e===0?`0`:String(Number(e<.01?e.toPrecision(2):e.toFixed(e<1?3:2))),wo=e=>!!(e.pricing&&e.pricing.input===0&&e.pricing.output===0),To=`h-7 w-7 cursor-pointer rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,Eo=`sticky -top-1 z-10 -mx-1 border-b border-border/60 bg-popover px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-muted-foreground`,Do=`gap-3`,Oo=`gap-3 bg-success/10 hover:bg-success/20 focus:bg-success/20`,ko=`ml-auto shrink-0 whitespace-nowrap text-xs tabular-nums text-muted-foreground`,Ao=`ml-auto shrink-0 whitespace-nowrap text-xs italic text-warning`,jo=`h-7 max-w-[140px] rounded-md px-2 text-xs gap-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground truncate`,Mo=`w-full resize-none border-0 bg-transparent px-4 py-3 text-sm shadow-none outline-none focus-visible:ring-0 placeholder:text-muted-foreground`;function No(e){return e?(e.includes(`/`)?e.split(`/`).pop():e)||e:null}function Po({name:e,value:t,onChange:r,placeholder:i,running:a=!1,onStop:o,disabled:s=!1,onSubmit:c,attachments:l=!1,commands:u,commandsTrigger:d,models:f=[],selectedModel:p,onModelChange:m,modelPlaceholder:h,showSettings:g=!1,defaultRole:_=``,defaultVoice:v=``,defaultStyle:y=``,defaultLanguage:b=``,defaultTemperature:x,actions:S,minHeight:C=96,maxHeight:w=220,wrapperClassName:T,className:E}){let D=q(`prompt`),O=Y(`prompt`),k=(0,n.useRef)(null),A=(0,n.useRef)(null),j=(0,n.useId)(),[M,N]=(0,n.useState)([]),[P,F]=(0,n.useState)(!1),I=(0,n.useRef)(0),[L,R]=(0,n.useState)(!1),[z,B]=(0,n.useState)(_),[ee,V]=(0,n.useState)(v),[H,U]=(0,n.useState)(y),[te,ne]=(0,n.useState)(b),[re,W]=(0,n.useState)(x);(0,n.useEffect)(()=>{a||R(!1)},[a]),(0,n.useEffect)(()=>()=>{M.forEach(({objectUrl:e})=>URL.revokeObjectURL(e))},[M]);let G=(0,n.useCallback)(e=>{N(t=>(URL.revokeObjectURL(t[e].objectUrl),t.filter((t,n)=>n!==e)))},[]),ie=(0,n.useCallback)(e=>{let t=Array.from(e).map(e=>({file:e,objectUrl:URL.createObjectURL(e)}));N(e=>[...e,...t])},[]),ae=(0,n.useCallback)(e=>{if(!l)return;let t=Array.from(e.clipboardData.items).filter(e=>e.kind===`file`).map(e=>e.getAsFile()).filter(e=>!!e);if(!t.length)return;e.preventDefault();let n=new Date().toISOString().replace(/\D/g,``).slice(0,14);ie(t.map((e,r)=>!e.name||e.name===`image.png`?new File([e],`pasted-${n}${t.length>1?`-${r+1}`:``}.${(e.type.split(`/`)[1]||`png`).replace(`jpeg`,`jpg`)}`,{type:e.type}):e))},[l,ie]),oe=(0,n.useCallback)(e=>{l&&e.dataTransfer.types.includes(`Files`)&&(e.preventDefault(),I.current+=1,F(!0))},[l]),se=(0,n.useCallback)(e=>{l&&e.dataTransfer.types.includes(`Files`)&&e.preventDefault()},[l]),ce=(0,n.useCallback)(e=>{l&&(e.preventDefault(),I.current=Math.max(0,I.current-1),I.current===0&&F(!1))},[l]),le=(0,n.useCallback)(e=>{l&&(e.preventDefault(),I.current=0,F(!1),e.dataTransfer.files.length&&ie(e.dataTransfer.files))},[l,ie]),ue=xo({minHeight:C,maxHeight:w});(0,n.useEffect)(()=>{let e=k.current;if(!e)return;e.style.height=`auto`;let t=Math.max(e.scrollHeight,ue.resolvedMinHeight),n=ue.resolvedMaxHeight?Math.min(t,ue.resolvedMaxHeight):t;e.style.height=`${n}px`,e.style.overflowY=ue.resolvedMaxHeight&&t>ue.resolvedMaxHeight?`auto`:`hidden`},[t,ue.resolvedMinHeight,ue.resolvedMaxHeight]);let K=u?.length?d??`/`:void 0,de=(u?.length??0)>=10,fe=n.default.useMemo(()=>new Map((u??[]).map(e=>[e.name,e])),[u]),pe=n.default.useMemo(()=>(u??[]).map(e=>({key:e.name,label:`${K??`/`}${e.name}`,value:e.name,icon:e.icon,description:e.description})),[u,K]),me=(0,n.useCallback)(async(e,t)=>{let n=fe.get(e.value);if(n){if(n.handler){let e=await n.handler(go(t)),r=n.consumeSuffix?po(t.textAfterCaret,n.consumeSuffix):0;t.replace(t.triggerRange.start,t.triggerRange.end+r,e);return}t.replace(t.triggerRange.start,t.triggerRange.end,`${t.trigger}${n.name} `)}},[fe]),he=f.find(e=>e.value===p)?.label??No(p),ge=()=>{s||a||(c({text:t,files:M.map(e=>e.file),model:p??``,...g?{role:z,voice:ee,style:H,language:te,temperature:re}:{}}),M.forEach(({objectUrl:e})=>URL.revokeObjectURL(e)),N([]))},_e=()=>{if(a){R(!0),o?.();return}ge()},ve=n.default.createElement(`textarea`,{id:j,name:e,ref:k,value:t,onChange:e=>r(e.target.value),onPaste:ae,placeholder:i,className:E||Mo,style:{maxHeight:w},onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&!e.nativeEvent.defaultPrevented&&(e.preventDefault(),_e())}});return n.default.createElement(Z,{className:T||D.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`group relative rounded-xl border shadow-sm transition-shadow focus-within:shadow-md focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-0 ${P?`border-primary ring-2 ring-primary`:`border-input`}`,onDragEnter:oe,onDragOver:se,onDragLeave:ce,onDrop:le},l&&P&&n.default.createElement(`div`,{className:`pointer-events-none absolute inset-0 z-10 flex items-center justify-center rounded-xl bg-primary/5`},n.default.createElement(`div`,{className:`flex items-center gap-2 rounded-lg bg-background px-3 py-1.5 text-xs font-medium text-primary shadow`},n.default.createElement(Q,{name:`paperclip`,size:13}),O.dropFilesHere)),n.default.createElement(`div`,{className:`overflow-hidden rounded-t-xl`},M.length>0&&n.default.createElement(`div`,{className:`flex gap-2 overflow-x-auto border-b border-input px-3 py-2.5`},M.map(({file:e,objectUrl:t},r)=>n.default.createElement(`div`,{key:t,className:`relative shrink-0`},e.type.startsWith(`image/`)?n.default.createElement(`div`,{className:`h-16 w-16 overflow-hidden rounded-lg border border-input bg-muted/30`},n.default.createElement(`img`,{src:t,alt:e.name,className:`h-full w-full object-cover`})):n.default.createElement(`div`,{className:`flex items-center gap-2 rounded-lg border border-input bg-muted/30 px-2.5 py-2 text-xs`},n.default.createElement(Q,{name:`file-text`,size:18,className:`shrink-0 text-muted-foreground`}),n.default.createElement(`div`,{className:`max-w-[100px]`},n.default.createElement(`p`,{className:`truncate font-medium text-foreground`},e.name),n.default.createElement(`p`,{className:`text-muted-foreground`},(e.size/1024).toFixed(0),` KB`))),n.default.createElement(`button`,{type:`button`,className:`absolute -right-1.5 -top-1.5 flex h-4 w-4 cursor-pointer items-center justify-center rounded-full bg-foreground text-background shadow`,onClick:()=>G(r)},n.default.createElement(Q,{name:`x`,size:9}))))),K&&pe.length>0?n.default.createElement(bo,{trigger:K,searchable:de,onSelect:(e,t)=>{me(e,t)}},pe.map(e=>n.default.createElement(bo.Item,{key:e.key,label:e.label,value:e.value,icon:e.icon,description:e.description})),ve):ve),l&&n.default.createElement(`input`,{ref:A,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{e.target.files&&(ie(e.target.files),e.target.value=``)}}),n.default.createElement(`div`,{className:`relative flex items-center gap-1 rounded-b-xl border-t border-input px-2 py-1`},(l||(S?.length??0)>0)&&n.default.createElement(n.default.Fragment,null,l&&n.default.createElement(`button`,{type:`button`,title:O.attachFiles,className:`${To} flex items-center justify-center`,onClick:()=>A.current?.click()},n.default.createElement(Q,{name:`paperclip`,size:13})),S?.map(e=>e.content?n.default.createElement(Ya,{key:e.key,trigger:{icon:e.icon,title:e.label},placement:`top`,position:`start`,triggerClassName:To},e.content):n.default.createElement(`button`,{key:e.key,type:`button`,title:e.label,"aria-label":e.label,disabled:e.disabled,onClick:e.onClick,className:e.showLabel&&e.label?`${To} flex w-auto items-center gap-1.5 px-2 text-xs disabled:cursor-not-allowed disabled:opacity-50`:`${To} flex items-center justify-center disabled:cursor-not-allowed disabled:opacity-50`},n.default.createElement(Q,{name:e.icon,size:13}),e.showLabel&&e.label&&n.default.createElement(`span`,{className:`whitespace-nowrap`},e.label))),n.default.createElement(`div`,{className:`mx-1 h-4 w-px shrink-0 bg-border`})),f.length>0&&n.default.createElement(Ya,{trigger:{icon:`cpu`,text:he??h??O.defaultOption},placement:`top`,position:`start`,triggerClassName:jo},So(f).map(({group:e,badge:t,options:r})=>n.default.createElement(n.default.Fragment,{key:e??``},e!==void 0&&n.default.createElement($a,{className:Eo},t?n.default.createElement(`span`,{className:`flex items-center justify-between gap-2`},n.default.createElement(`span`,{className:`min-w-0 truncate`},e),n.default.createElement(Mt,{variant:t.variant??`light`},t.label)):e),r.map(e=>n.default.createElement(Qa,{key:e.value,onClick:()=>m?.(e.value),className:wo(e)?Oo:e.pricing===void 0?void 0:Do},n.default.createElement(`span`,{className:`min-w-0`},e.label),e.pricing?n.default.createElement(`span`,{className:ko,title:O.modelPricing},`$`,Co(e.pricing.input),` / $`,Co(e.pricing.output)):e.pricing===null?n.default.createElement(`span`,{className:Ao},O.modelPriceNotFound):null))))),g&&n.default.createElement(n.default.Fragment,null,n.default.createElement(Ya,{trigger:{icon:`user`,title:O.role},placement:`top`,position:`start`,triggerClassName:To},n.default.createElement(Qa,{onClick:()=>B(``)},O.defaultOption),ta.getRoles().map(e=>n.default.createElement(Qa,{key:e,onClick:()=>B(e)},e))),n.default.createElement(Ya,{trigger:{icon:`globe`,title:O.language},placement:`top`,position:`start`,triggerClassName:To},n.default.createElement(Qa,{onClick:()=>ne(``)},O.defaultOption),ta.getLangs().map(e=>n.default.createElement(Qa,{key:e,onClick:()=>ne(e)},e))),n.default.createElement(Ya,{trigger:{icon:`mic`,title:O.voice},placement:`top`,position:`start`,triggerClassName:To},n.default.createElement(Qa,{onClick:()=>V(``)},O.defaultOption),ta.getVoices().map(e=>n.default.createElement(Qa,{key:e,onClick:()=>V(e)},e))),n.default.createElement(Ya,{trigger:{icon:`feather`,title:O.style},placement:`top`,position:`start`,triggerClassName:To},n.default.createElement(Qa,{onClick:()=>U(``)},O.defaultOption),ta.getStyles().map(e=>n.default.createElement(Qa,{key:e,onClick:()=>U(e)},e))),n.default.createElement(Ya,{trigger:{icon:`thermometer`,title:O.temperature},placement:`top`,position:`start`,triggerClassName:To},n.default.createElement(Qa,null,n.default.createElement(`input`,{type:`range`,"aria-label":O.temperature,min:0,max:1,step:.1,value:re??0,onChange:e=>W(Number(e.target.value)),className:`w-full cursor-pointer accent-primary`})))),n.default.createElement(`div`,{className:`flex-1`}),n.default.createElement(`button`,{type:`button`,onClick:_e,disabled:a?!o:s,title:L?O.stopping:a?O.stop:O.run,"aria-label":L?O.stopping:a?O.stop:O.run,className:`flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-lg text-sm transition-colors disabled:cursor-not-allowed disabled:opacity-50 ${a?`bg-destructive text-destructive-foreground hover:bg-destructive/90`:`bg-primary text-primary-foreground hover:bg-primary/90`}`},L||a&&!o?n.default.createElement(`span`,{className:`inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}):n.default.createElement(Q,{name:a?`square`:`send`,size:14})))))}var Fo=function(e){return e.EDIT=`edit`,e.RUN=`run`,e}({}),Io=`space-y-2`,Lo=`flex items-center justify-between gap-3`,Ro=`mb-0 min-w-0 text-sm font-medium leading-5 text-foreground`,zo=`ml-auto shrink-0`,Bo=()=>[],Vo=(e,t=`Prompt execution failed.`)=>{if(e instanceof Error&&e.message)return e.message;if(typeof e==`string`)return e;if(e&&typeof e==`object`){if(`reason`in e&&typeof e.reason==`string`)return e.reason;if(`error`in e&&typeof e.error==`string`)return e.error;if(`message`in e&&typeof e.message==`string`)return e.message}return t},Ho=({htmlFor:e,label:t,required:r=!1,action:i})=>n.default.createElement(`div`,{className:Lo},n.default.createElement(gl,{htmlFor:e,label:t,required:r,className:Ro}),i?n.default.createElement(`div`,{className:zo},i):null);function Uo(){let e=ca(),[t,r]=(0,n.useState)({modelOptions:Bo(),capabilitiesByProvider:{}});return(0,n.useEffect)(()=>{let t=!1;return(async()=>{if(!e||Object.keys(e.registry).length===0){t||r({modelOptions:Bo(),capabilitiesByProvider:{}});return}let n=await za(e.registry);if(t)return;let i=n.models.map(e=>({label:e.model,value:e.id,pricing:e.pricing??null,group:e.providerLabel??e.provider}));r({modelOptions:i.length>0?i:Bo(),capabilitiesByProvider:n.capabilitiesByProvider})})(),()=>{t=!0}},[e]),t}function Wo(e,t=!1){let n=sa(),r=ca(),i=ia(e),a=Object.keys(r?.registry??{}),o=i?.provider??n?.id??(r?.defaultKey&&a.includes(r.defaultKey)?r.defaultKey:null),s=o?r?.registry[o]??(n?.id===o?n:null):n??null;if(t)return{provider:s,providerId:o,configured:!0};if(a.length===0&&!s)return{provider:null,providerId:null,configured:!1,reason:void 0};let c=Hn(s,o?`AI provider "${o}"`:`AI provider`);return{provider:s,providerId:o,configured:c.configured,reason:c.reason}}var Go=({mode:e,availability:t,renderAIUnavailable:r})=>{let i=Y(`prompt`);if(t.configured)return null;let a=r?.({mode:e,providerId:t.providerId,reason:t.reason,configured:t.configured});return a==null?n.default.createElement(vr,{variant:`warning`,icon:`warning`,className:`text-xs leading-5`},e===`edit`?t.reason||i.aiNotConfiguredEdit:t.reason||i.aiNotConfiguredRun):n.default.createElement(n.default.Fragment,null,a)},Ko=({mode:e=`edit`,...t})=>{let{value:r}=Dc({name:t.name}),i=typeof r==`object`&&r&&!Array.isArray(r)?r:void 0,a=qo(i?.prompt?.enabled,t.defaultValue?.enabled,i?.prompt);return e===`edit`?n.default.createElement(Yo,{...t,value:i}):a?n.default.createElement($o,{...t,value:i}):n.default.createElement(es,t)},qo=(e,t,n)=>typeof e==`string`?e===`on`||e===`true`:typeof e==`boolean`?e:typeof e==`number`?e!==0:n&&typeof n==`object`?!1:!!t,Jo=(e,t)=>e?t.toggleOnTitle:t.toggleOffTitle,Yo=({name:e,label:t=void 0,value:r=void 0,required:i=!1,onChange:a=void 0,defaultValue:o=void 0,minHeight:s=160,maxHeight:c=240,before:l=void 0,after:u=void 0,wrapperClassName:d=void 0,className:f=void 0,renderAIUnavailable:p=void 0})=>{let{handleChange:m}=Dc({name:e}),h=q(`prompt`),g=Y(`prompt`),_=t||e,v=qo(r?.prompt?.enabled,o?.enabled,r?.prompt),y=Jo(v,g),b=(0,n.useId)(),x=Wo(r?.prompt?.model?.toString()||o?.model);return n.default.createElement(Z,{className:d||h.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`flex items-center gap-2`},l&&n.default.createElement(`div`,{className:`shrink-0`},l),n.default.createElement(`div`,{className:`${Io} min-w-0 flex-1`},n.default.createElement(Ho,{htmlFor:b,label:v?n.default.createElement(n.default.Fragment,null,g.promptLabel,_):_,required:i,action:n.default.createElement(hl,{name:e+`.prompt.enabled`,ariaLabel:y,title:y,defaultValue:v?`on`:``,inheritWrapperClassName:!1,onChange:({event:t})=>{m({target:{name:e+`.prompt.value`,value:t.target.value&&o?.value}})}})}),n.default.createElement(_l,{id:b,className:f||h.Prompt.className,name:e+(v?`.prompt.value`:`.value`),defaultValue:v?o?.value:void 0,onChange:a,required:i,inheritWrapperClassName:!1,wrapperClassName:``,minHeight:s,maxHeight:c}),n.default.createElement(Go,{mode:`edit`,availability:x,renderAIUnavailable:p})),u&&n.default.createElement(`div`,{className:`shrink-0`},u)))},Xo=`border-0 shadow-none rounded-none focus-visible:ring-0 resize-none`,Zo=`h-7 w-7 cursor-pointer rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,Qo=(e,t)=>({value:String(e?.value??t?.value??``),role:String(e?.role??t?.role??``),language:String(e?.language??t?.language??``),voice:String(e?.voice??t?.voice??``),style:String(e?.style??t?.style??``),model:String(e?.model??t?.model??``),temperature:typeof e?.temperature==`number`?e.temperature:t?.temperature}),$o=({name:e,label:t,value:r,required:i,onChange:a,defaultValue:o,minHeight:s=120,maxHeight:c=160,before:l,after:u,wrapperClassName:d,className:f,onRunPrompt:p,renderAIUnavailable:m,variables:h,commands:g,commandsTrigger:_,attachments:v,actions:y,statusItems:b})=>{let{handleChange:x,record:S}=Dc({name:e,subscribeToFullRecord:!0}),C=q(`prompt`),w=Y(`prompt`),T=t||e,[E,D]=(0,n.useState)(!1),[O,k]=(0,n.useState)(o?.value??``),[A,j]=(0,n.useState)(!1),[M,N]=(0,n.useState)(null),P=sa(),F=ca(),{modelOptions:I}=Uo(),L=typeof localStorage<`u`?localStorage.getItem(`prompt.model`):null,R=L&&I.some(e=>e.value===L)?L:``,z=n.default.useMemo(()=>Qo(r?.prompt,o),[o,r?.prompt]),B=z.model||R,ee=(0,n.useId)(),V=Wo(B,!!p),H=!V.configured||!p&&!B,[U,te]=(0,n.useState)(null),ne=!U&&!V.configured?m?.({mode:`run`,providerId:V.providerId,reason:V.reason,configured:V.configured}):null,re=n.default.useMemo(()=>{if(!O)return``;let e={...S,...h};return ta.parsePrompt(O,e)},[O,S,h]),W=re!==O,G=(e,t)=>x?.({target:{name:e,value:t}}),ie=y?.map(e=>e.key===`tokenUsage`&&!e.content?{...e,content:M?n.default.createElement(`div`,{className:`px-3 py-2 text-xs space-y-1`},n.default.createElement(`p`,{className:`font-medium text-foreground`},w.tokenUsage),n.default.createElement(`p`,{className:`text-muted-foreground`},J(w.tokenInput,{count:String(M.tokensIn)})),n.default.createElement(`p`,{className:`text-muted-foreground`},J(w.tokenOutput,{count:String(M.tokensOut)})),M.contextPercent!==null&&n.default.createElement(`p`,{className:`text-muted-foreground`},J(w.tokenContext,{percent:M.contextPercent.toFixed(1)})),M.estimatedCost!==null&&n.default.createElement(`p`,{className:`text-muted-foreground`},J(w.tokenCost,{amount:M.estimatedCost.toFixed(5)})),n.default.createElement(`p`,{className:`text-muted-foreground`},J(w.tokenTime,{seconds:(M.durationMs/1e3).toFixed(1)}))):n.default.createElement(`p`,{className:`px-3 py-2 text-xs text-muted-foreground`},w.tokenUsageEmpty)}:e),ae=async t=>{let n=t.model||B||R,r=ia(n),i=r?F?.registry[r.provider]??P??void 0:P??void 0,a=Date.now();try{let r={...S,...h},o=await Promise.all(t.files.map(e=>Ka.fileToAttachment(e))),s=await ts({...z,model:n,role:t.role??z.role,voice:t.voice??z.voice,style:t.style??z.style,language:t.language??z.language,temperature:t.temperature??z.temperature},r,p,i,o.length>0?o:void 0,{noProvider:w.noProvider,noResponse:w.noResponse}),c=Date.now()-a;if(te(null),x?.({target:{name:e+`.value`,value:s}}),t.role!==void 0&&G(e+`.prompt.role`,t.role),t.voice!==void 0&&G(e+`.prompt.voice`,t.voice),t.style!==void 0&&G(e+`.prompt.style`,t.style),t.language!==void 0&&G(e+`.prompt.language`,t.language),b&&b.length>0){let e=ta.parsePrompt(z.value??``,r),t=Ka.countTokens(e),i=Ka.countTokens(s??``),a=Ka.contextPercent(t,n),o=Ka.estimateCost(t,i,n);N({tokensIn:t,tokensOut:i,contextPercent:a>0?a:null,model:n,durationMs:c,estimatedCost:isFinite(o)?o:null})}}catch(e){te(Vo(e,w.runFailed))}};return n.default.createElement(Z,{className:d||C.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`flex items-center gap-2`},l&&n.default.createElement(`div`,{className:`shrink-0`},l),n.default.createElement(`div`,{className:`${Io} min-w-0 flex-1`},T&&n.default.createElement(Ho,{htmlFor:ee,label:E?n.default.createElement(n.default.Fragment,null,w.promptLabel,T):T,required:i}),n.default.createElement(`div`,{className:`group relative`},n.default.createElement(`button`,{type:`button`,title:E?w.closeEditor:w.editSettings,className:`absolute right-2 top-2 z-10 flex h-6 w-6 items-center justify-center rounded-md transition-all ${E?`bg-warning/10 text-warning opacity-100`:`bg-background/80 text-muted-foreground opacity-0 group-hover:opacity-100 hover:bg-muted hover:text-foreground`}`,onClick:()=>D(e=>!e)},n.default.createElement(Q,{name:E?`x`:`settings`,size:13})),E?n.default.createElement(`div`,{className:`overflow-hidden rounded-xl border border-input shadow-sm transition-shadow focus-within:shadow-md focus-within:ring-2 focus-within:ring-warning focus-within:ring-offset-0`},n.default.createElement(_l,{id:ee,name:e+`.prompt.value`,defaultValue:o?.value,onChange:e=>{k(String(e.event.target.value??``)),a?.(e)},required:!0,inheritWrapperClassName:!1,wrapperClassName:``,className:`${f||C.Prompt.className} ${Xo}`,minHeight:s,maxHeight:c}),W&&A&&n.default.createElement(`div`,{className:`border-t border-input px-4 py-3 bg-muted/20`},n.default.createElement(`p`,{className:`whitespace-pre-wrap text-sm text-foreground/70`},re)),W&&n.default.createElement(`div`,{className:`flex items-center justify-end border-t border-input px-2 py-1`},n.default.createElement(`button`,{type:`button`,title:A?w.hidePreview:w.showPreview,className:`${Zo} flex items-center justify-center ${A?`bg-muted text-foreground`:``}`,onClick:()=>j(e=>!e)},n.default.createElement(Q,{name:A?`eye-off`:`eye`,size:13})))):n.default.createElement(n.default.Fragment,null,n.default.createElement(Po,{name:e+`.value`,value:r?.value===void 0?``:String(r.value),onChange:t=>{x?.({target:{name:e+`.value`,value:t}}),a?.({event:{target:{name:e+`.value`,value:t}},name:e+`.value`,value:t,record:S??{},onChange:x??(()=>{})})},disabled:H,onSubmit:e=>{ae(e)},attachments:v,commands:g,commandsTrigger:_,models:I,selectedModel:B,onModelChange:t=>G(e+`.prompt.model`,t),showSettings:!0,defaultRole:z.role,defaultVoice:z.voice,defaultStyle:z.style,defaultLanguage:z.language,defaultTemperature:z.temperature,actions:ie,minHeight:s,maxHeight:c,className:f||C.Prompt.className,wrapperClassName:``}),(U||!V.configured)&&(ne?n.default.createElement(`div`,{className:`mt-1`},ne):n.default.createElement(`span`,{className:`mt-1 flex min-w-0 items-center gap-1 text-xs text-warning`},n.default.createElement(Q,{name:`triangle-alert`,size:13,className:`shrink-0`}),n.default.createElement(`span`,{className:`truncate`},U??(V.reason||w.aiNotConfiguredShort)))),b&&b.length>0&&M&&n.default.createElement(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-3 gap-y-0.5 rounded-lg border border-input/50 bg-muted/20 px-4 py-1.5 text-[11px] text-muted-foreground`},b.map(e=>{if(typeof e==`string`)switch(e){case`tokensIn`:return n.default.createElement(`span`,{key:`tokensIn`},J(w.tokenInput,{count:M.tokensIn}));case`tokensOut`:return n.default.createElement(`span`,{key:`tokensOut`},J(w.tokenOutput,{count:M.tokensOut}));case`contextPercent`:return M.contextPercent===null?null:n.default.createElement(`span`,{key:`ctx`},J(w.tokenContext,{percent:M.contextPercent.toFixed(1)}));case`model`:return n.default.createElement(`span`,{key:`model`,className:`font-mono`},(ia(M.model)?.model||M.model).split(`/`).pop());case`duration`:return n.default.createElement(`span`,{key:`dur`},J(w.tokenTime,{seconds:(M.durationMs/1e3).toFixed(1)}));default:return null}return n.default.createElement(`span`,{key:e.key},e.render(M))}),M.estimatedCost!==null&&!b.some(e=>typeof e==`object`&&e.key===`cost`)&&n.default.createElement(`span`,{className:`ml-auto font-mono`},`~$`,M.estimatedCost.toFixed(5)))))),u&&n.default.createElement(`div`,{className:`shrink-0`},u)))},es=({name:e,label:t,required:r,onChange:i,minHeight:a=96,maxHeight:o=120,before:s,after:c,wrapperClassName:l,className:u,renderFallback:d})=>{let f=q(`prompt`),p=(0,n.useId)();return n.default.createElement(Z,{className:l||f.Prompt.wrapperClassName},n.default.createElement(`div`,{className:`flex items-center gap-2`},s&&n.default.createElement(`div`,{className:`shrink-0`},s),n.default.createElement(`div`,{className:`min-w-0 flex-1`},d?.({name:e,label:t,required:r,onChange:i})??n.default.createElement(`div`,{className:Io},t&&n.default.createElement(Ho,{htmlFor:p,label:t,required:r}),n.default.createElement(_l,{id:p,className:u||f.Prompt.className,name:e+`.value`,onChange:i,required:r,inheritWrapperClassName:!1,wrapperClassName:``,minHeight:a,maxHeight:o}))),c&&n.default.createElement(`div`,{className:`shrink-0`},c)))},ts=async(e,t,n,r,i,a)=>{let{value:o,model:s,...c}=e??{};if(n)return n(o,{...c,model:s,attachments:i},t);if(!o)return``;if(!r)throw Error(a?.noProvider??`No AI provider is available for this prompt.`);let l=ia(s)?.model||s||r.defaultModel,u=await r.complete({...c,model:l,prompt:[qi,o,Ji].join(`
|
|
8
8
|
`),data:t,attachments:i});if(u?.type!==`text`||!u.text.trim())throw Error(a?.noResponse??`The AI provider returned no response.`);return u.text},ns=class extends Error{language;from;to;line;column;nodeName;constructor(e,t){super(e),this.name=`CodeSyntaxError`,this.language=t.language,this.from=t.from,this.to=t.to,this.line=t.line,this.column=t.column,this.nodeName=t.nodeName}},rs={},is=null,as=e=>{switch(e){case`html`:return async()=>{let{html:e}=await import(`@codemirror/lang-html`);return e({matchClosingTags:!0}).language.parser};case`json`:return async()=>{let{json:e}=await import(`@codemirror/lang-json`);return e().language.parser};case`js`:return async()=>{let{javascript:e}=await import(`@codemirror/lang-javascript`);return e().language.parser};case`ts`:return async()=>{let{javascript:e}=await import(`@codemirror/lang-javascript`);return e({typescript:!0}).language.parser};case`css`:return async()=>{let{css:e}=await import(`@codemirror/lang-css`);return e().language.parser}}},os=e=>(rs[e]??=as(e)(),rs[e]),ss=async()=>(is??=import(`liquidjs`).then(({Liquid:e})=>new e({strictFilters:!0,strictVariables:!0})),is),cs=(e,t)=>{let n=1,r=1;for(let i=0;i<t&&i<e.length;i++)e[i]===`
|
|
9
|
-
`?(n+=1,r=1):r+=1;return{line:n,column:r}},ls=(e,t,n,r,i,a=`Syntax error`)=>{let{line:o,column:s}=cs(e,n);return new ns(`${a}${i?` near ${i}`:``} at line ${o}, column ${s}.`,{language:t,from:n,to:r,line:o,column:s,nodeName:i})},us=e=>{do if(e.type.isError)return{from:e.from,to:e.to,nodeName:e.name};while(e.next());return null},ds=async(e,t)=>{if(e.trim()){if(t===`liquid`){try{(await ss()).parse(e)}catch(n){if(n instanceof ns)throw n;let r=n&&typeof n==`object`&&`token`in n?n.token:void 0,i=r?.begin??0,a=r?.end??i,o=n instanceof Error?n.message.split(`, line:`)[0]:`Invalid Liquid syntax`;throw ls(e,t,i,a,r?.name,o)}return}try{let n=us((await os(t)).parse(e).cursor());if(n)throw ls(e,t,n.from,n.to,n.nodeName)}catch(n){if(n instanceof ns)throw n;if(t===`json`&&n instanceof Error){let r=n.message.match(/position\s+(\d+)/i),i=r?Number(r[1]):0;throw ls(e,t,i,i,void 0,`Invalid JSON`)}throw new ns(`Unable to validate ${t} code.`,{language:t,from:0,to:0,line:1,column:1})}}},fs=async(e,t)=>{try{return await ds(e,t),{valid:!0}}catch(e){if(e instanceof ns)return{valid:!1,error:e};throw e}},ps=e=>{switch(e){case`html`:return()=>import(`@codemirror/lang-html`).then(e=>e.html());case`liquid`:return()=>import(`@codemirror/lang-liquid`).then(e=>e.liquid());case`json`:return()=>import(`@codemirror/lang-json`).then(e=>e.json());case`js`:return()=>import(`@codemirror/lang-javascript`).then(e=>e.javascript());case`ts`:return()=>import(`@codemirror/lang-javascript`).then(e=>e.javascript({typescript:!0}));case`css`:return()=>import(`@codemirror/lang-css`).then(e=>e.css())}},ms=async e=>{let[t,n,r,i]=await Promise.all([import(`codemirror`),import(`@codemirror/view`),import(`@codemirror/state`),ps(e)()]);return{basicSetup:t.basicSetup,EditorView:n.EditorView,EditorState:r.EditorState,keymap:n.keymap,language:i,Prec:r.Prec}},hs={},gs={},_s=e=>hs[e]?Promise.resolve(hs[e]):(gs[e]||(gs[e]=ms(e).then(t=>(hs[e]=t,t))),gs[e]),vs=(e,t)=>{t.fill?(e.style.height=`100%`,e.style.minHeight=``,e.style.maxHeight=``):(e.style.height=``,e.style.minHeight=`${t.resolvedMinHeight}px`,e.style.maxHeight=t.resolvedMaxHeight?`${t.resolvedMaxHeight}px`:``)},ys=(e,t,n)=>mo(e,t,n,{queryPattern:/^[A-Za-z0-9_.-]*$/}),bs=(e,t)=>{let n=e.state.doc.toString(),r=e.state.selection.main;if(r.from!==r.to)return null;let i=ys(n,r.from,t);return i?{value:n,textBeforeCaret:n.slice(0,r.from),textAfterCaret:n.slice(r.to),trigger:t,query:i.query,triggerRange:{start:i.start,end:i.end},insert:t=>{let n=e.state.selection.main;e.dispatch({changes:{from:n.from,to:n.to,insert:t},selection:{anchor:n.from+t.length}}),e.focus()},replace:(t,n,r)=>{e.dispatch({changes:{from:t,to:n,insert:r},selection:{anchor:t+r.length}}),e.focus()}}:null},xs=({name:e,onChange:t=void 0,defaultValue:r=void 0,className:i=void 0,label:a,language:o=`html`,placeholder:s,minHeight:c,maxHeight:l,required:u,disabled:d,feedback:f,labelClassName:p,validateSyntax:m=!0,validate:h,validator:g,extensions:_,commands:v,commandsTrigger:y,wrapperClassName:b,inheritWrapperClassName:x=!0,before:S,after:C})=>{let w=(0,n.useId)(),T=q(`CodeEditor`),E=xo({minHeight:c,maxHeight:l}),{value:D,handleChange:O,formWrapClass:k}=Ec({name:e,onChange:t,defaultValue:r,wrapperClassName:b,inheritWrapperClassName:x}),A=Tc(e,{required:u,label:a,validator:async e=>{let t=typeof e==`string`?e:`${e??``}`;if(m){let e=h?await h(t):await fs(t,o);if(!e.valid)return e.error?.message??`Invalid ${o} code.`}return await g?.(e)}}),j=(0,n.useRef)(null),M=(0,n.useRef)(null),N=(0,n.useRef)(null),[P,F]=(0,n.useState)(!0),[I,L]=(0,n.useState)({open:!1,query:``,anchorPosition:null,editorContext:null}),R=(0,n.useRef)(D??``),z=(0,n.useRef)(I);z.current=I;let B=v?.length?y??`/`:void 0,ee=(v?.length??0)>=10,V=n.default.useMemo(()=>new Map((v??[]).map(e=>[e.name,e])),[v]),H=n.default.useMemo(()=>(v??[]).map(e=>({key:e.name,label:`${B??`/`}${e.name}`,value:e.name,icon:e.icon,description:e.description,group:e.group})),[v,B]),U=n.default.useMemo(()=>{let e=[],t;return H.forEach(r=>{r.group!==t&&(t=r.group,r.group&&e.push(n.default.createElement(bo.Heading,{key:`group:${r.group}`},r.group))),e.push(n.default.createElement(bo.Item,{key:r.key,label:r.label,value:r.value,icon:r.icon,description:r.description}))}),e},[H]);(0,n.useEffect)(()=>{M.current||(R.current=D??``)},[D]);let te=(0,n.useCallback)(t=>{R.current=t,O({target:{name:e,value:t}})},[O,e]),ne=(0,n.useRef)(te);ne.current=te;let re=(0,n.useCallback)(()=>{L({open:!1,query:``,anchorPosition:null,editorContext:null})},[]),W=(0,n.useCallback)(async(e,t)=>{let n=V.get(e.value);if(n){if(n.handler){let e=await n.handler(go(t)),r=n.consumeSuffix?po(t.textAfterCaret,n.consumeSuffix):0;t.replace(t.triggerRange.start,t.triggerRange.end+r,e);return}t.replace(t.triggerRange.start,t.triggerRange.end,`${t.trigger}${n.name} `)}},[V]);(0,n.useEffect)(()=>{let e=!1,t=null;return _s(o).then(n=>{if(e||!j.current)return;let r=n.EditorView.theme({"&":{backgroundColor:`hsl(var(--rf-background))`,height:`100%`},".cm-scroller":{fontFamily:`var(--font-mono, ui-monospace, SFMono-Regular, monospace)`,paddingBottom:`0.5rem`,minHeight:`100%`},".cm-content":{caretColor:`hsl(var(--rf-foreground))`,color:`hsl(var(--rf-foreground))`,paddingBottom:`0.75rem`,minHeight:`100%`},".cm-cursor, .cm-dropCursor":{borderLeftColor:`hsl(var(--rf-primary))`},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:`hsl(var(--rf-primary)) !important`},".cm-activeLine":{backgroundColor:`hsl(var(--rf-muted) / 0.6)`},".cm-gutters":{backgroundColor:`hsl(var(--rf-muted))`,color:`hsl(var(--rf-muted-foreground))`,border:`none`},".cm-activeLineGutter":{backgroundColor:`hsl(var(--rf-accent))`},".cm-foldPlaceholder":{backgroundColor:`hsl(var(--rf-muted))`,color:`hsl(var(--rf-muted-foreground))`},".cm-tooltip":{backgroundColor:`hsl(var(--rf-popover))`,border:`1px solid hsl(var(--rf-border))`,color:`hsl(var(--rf-popover-foreground))`},".cm-tooltip-autocomplete ul li[aria-selected]":{backgroundColor:`hsl(var(--rf-accent))`,color:`hsl(var(--rf-accent-foreground))`},"&.cm-focused":{outline:`none`},".cm-placeholder":{color:`hsl(var(--rf-muted-foreground))`}}),i=[n.basicSetup,n.language,r,n.EditorView.updateListener.of(e=>{e.docChanged&&ne.current(e.state.doc.toString())}),..._??[]];B&&i.push(n.EditorView.updateListener.of(e=>{let t=e.state.selection.main;if(t.from!==t.to){z.current.open&&re();return}let n=ys(e.state.doc.toString(),t.from,B);if(!n){z.current.open&&re();return}let r=e.view.coordsAtPos(t.from),i=bs(e.view,B);r&&i&&L({open:!0,query:n.query,anchorPosition:{top:r.bottom,left:r.left},editorContext:i})}),n.Prec.highest(n.keymap.of([{key:`ArrowDown`,run:()=>z.current.open?(N.current?.moveNext(),!0):!1},{key:`ArrowUp`,run:()=>z.current.open?(N.current?.movePrev(),!0):!1},{key:`Enter`,run:()=>z.current.open?(N.current?.selectActive(),!0):!1},{key:`Tab`,run:()=>z.current.open?(N.current?.selectActive(),!0):!1},{key:`Escape`,run:()=>z.current.open?(N.current?.close(),!0):!1}])),n.EditorView.domEventHandlers({keydown:e=>{if(!z.current.open)return!1;switch(e.key){case`ArrowDown`:return e.preventDefault(),N.current?.moveNext(),!0;case`ArrowUp`:return e.preventDefault(),N.current?.movePrev(),!0;case`Enter`:case`Tab`:return e.preventDefault(),N.current?.selectActive(),!0;case`Escape`:return e.preventDefault(),N.current?.close(),!0;default:return!1}}})),d&&i.push(n.EditorView.editable.of(!1));let a=n.EditorState.create({doc:R.current,extensions:i});t=new n.EditorView({state:a,parent:j.current}),vs(t.scrollDOM,E),M.current=t,F(!1)}).catch(t=>{e||(console.error(`[CodeEditor] Failed to load CodeMirror:`,t),F(!1))}),()=>{e=!0,t&&(t.destroy(),M.current=null)}},[re,_,d,o,s,B]),(0,n.useEffect)(()=>{let e=D??``,t=M.current;t&&e!==R.current&&(R.current=e,t.dispatch({changes:{from:0,to:t.state.doc.length,insert:e}}))},[D]),(0,n.useEffect)(()=>{let e=M.current;e&&vs(e.scrollDOM,E)},[E.fill,E.resolvedMinHeight,E.resolvedMaxHeight]);let G=X(`w-full overflow-hidden border border-input`,T.CodeEditor?.className,i,P&&`flex items-center justify-center bg-muted text-muted-foreground text-sm`,A&&`border-destructive`,S?`rounded-l-none`:`rounded-l-md`,C?`rounded-r-none`:`rounded-r-md`),ie=n.default.createElement(`div`,{className:X(`min-w-0 flex-1`,E.fill&&`h-full flex flex-col`,G)},P&&n.default.createElement(`div`,{style:{minHeight:E.fill?void 0:E.resolvedMinHeight},className:`flex items-center justify-center`},n.default.createElement(Q,{name:`loader-circle`,size:16,className:`animate-spin text-muted-foreground`})),n.default.createElement(`div`,{ref:j,className:X(P&&`hidden`,E.fill&&`h-full min-h-0 flex-1`)}));return n.default.createElement(Z,{className:X(k,E.fill&&`h-full flex flex-col min-h-0`,T.CodeEditor?.wrapperClassName)},a&&n.default.createElement(hl,{label:a,required:u,htmlFor:w,className:p}),n.default.createElement(`div`,{className:X(S||C?Vc:``,E.fill&&`flex-1 min-h-0 flex flex-col`)},S&&n.default.createElement(`span`,{className:X(`inline-flex shrink-0 items-center border border-input bg-muted px-3 py-1 text-sm text-muted-foreground`,`rounded-l-md rounded-r-none border-r-0`)},S),B&&H.length>0?n.default.createElement(bo,{ref:N,className:X(E.fill&&`flex-1 min-h-0 flex flex-col`),trigger:B,searchable:ee,controlled:I.editorContext?{open:I.open,anchorPosition:I.anchorPosition,query:I.query,editorContext:I.editorContext,onClose:re}:void 0,onSelect:(e,t)=>{W(e,t)}},U,ie):ie,C&&n.default.createElement(`span`,{className:X(`inline-flex shrink-0 items-center border border-input bg-muted px-3 py-1 text-sm text-muted-foreground`,`rounded-l-none rounded-r-md border-l-0`)},C)),A&&n.default.createElement(Xc,{message:A}),f&&n.default.createElement(`p`,{className:`mt-1 text-xs text-muted-foreground`},f))},Ss=({src:e,placeholder:t=void 0,label:r=void 0,title:i=void 0,fit:a=void 0,position:o=void 0,feedback:s=void 0,width:c=void 0,height:l=void 0,srcset:u=void 0,sizes:d=void 0,before:f=void 0,after:p=void 0,wrapperClassName:m=void 0,className:h=void 0})=>{let g=q(`image`),_=g.Image.motion?.enter??!1,v=g.Image.motion?.hover??!1,y=v!==!1,b=Ht(void 0,_,!1),[x,S]=(0,n.useState)(!1),C=Bt(x,v,!1);return n.default.createElement(Z,{className:X(`flex items-center gap-4`,m||g.Image.wrapperClassName)},f&&n.default.createElement(`div`,{className:`shrink-0 self-center`},f),n.default.createElement(`div`,{className:X(`flex min-w-0 flex-col`,y&&`overflow-hidden`),style:b,onMouseEnter:y?()=>S(!0):void 0,onMouseLeave:y?()=>S(!1):void 0},n.default.createElement(`img`,{src:e||t||`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InRyYW5zcGFyZW50Ii8+PGNpcmNsZSBjeD0iNjUiIGN5PSIzNSIgcj0iMTAiIGZpbGw9IiM5Y2EzYWYiLz48cGF0aCBkPSJNMTAsNzUgTDMyLDUwIEw1Miw3MCBMNjgsNTIgTDkwLDcyIEw5MCw4MCBIMTAgWiIgZmlsbD0iIzljYTNhZiIvPjwvc3ZnPg==`,alt:r||i||e,title:i,className:h||g.Image.className,style:{...c&&l?{maxWidth:c,aspectRatio:`${c} / ${l}`,width:`100%`}:c?{maxWidth:c,width:`100%`}:l?{height:l}:{},...a?{objectFit:a}:{},...o?{objectPosition:o}:{},...y?C:{}},width:c,height:l,srcSet:u,sizes:d}),s&&n.default.createElement(`div`,{className:`mt-2 text-sm text-muted-foreground`},s)),p&&n.default.createElement(`div`,{className:`shrink-0 self-center`},p))},Cs=()=>Promise.all([import(`@tiptap/react`),import(`@tiptap/react/menus`),import(`@tiptap/starter-kit`),import(`@tiptap/extension-underline`),import(`@tiptap/extension-link`),import(`@tiptap/extension-image`),import(`@tiptap/extension-table`),import(`@tiptap/extension-placeholder`),import(`@tiptap/extension-character-count`)]),ws=null,Ts=null,Es=()=>ws?Promise.resolve(ws):(Ts||=Cs().then(e=>(ws=e,e)),Ts),Ds=`bold.italic.underline.strike.|.headings.|.bulletList.orderedList.|.blockquote.code.codeBlock.|.link.|.imageUpload.documentUpload.|.table.|.sourceCode.|.undo.redo.clearFormat`.split(`.`),Os=e=>e===!0?{tagBreadcrumb:!0,wordCount:!0,charCount:!1}:e===!1?{}:{tagBreadcrumb:!0,wordCount:!0,charCount:!1,...e},ks=8,As={bold:{icon:`bold`,label:`bold`,isActive:e=>e.isActive(`bold`),execute:e=>e.chain().focus().toggleBold().run()},italic:{icon:`italic`,label:`italic`,isActive:e=>e.isActive(`italic`),execute:e=>e.chain().focus().toggleItalic().run()},underline:{icon:`underline`,label:`underline`,isActive:e=>e.isActive(`underline`),execute:e=>e.chain().focus().toggleUnderline().run()},strike:{icon:`strikethrough`,label:`strike`,isActive:e=>e.isActive(`strike`),execute:e=>e.chain().focus().toggleStrike().run()},heading1:{icon:`heading-1`,label:`heading1`,isActive:e=>e.isActive(`heading`,{level:1}),execute:e=>e.chain().focus().toggleHeading({level:1}).run()},heading2:{icon:`heading-2`,label:`heading2`,isActive:e=>e.isActive(`heading`,{level:2}),execute:e=>e.chain().focus().toggleHeading({level:2}).run()},heading3:{icon:`heading-3`,label:`heading3`,isActive:e=>e.isActive(`heading`,{level:3}),execute:e=>e.chain().focus().toggleHeading({level:3}).run()},bulletList:{icon:`list`,label:`bulletList`,isActive:e=>e.isActive(`bulletList`),execute:e=>e.chain().focus().toggleBulletList().run()},orderedList:{icon:`list-ordered`,label:`orderedList`,isActive:e=>e.isActive(`orderedList`),execute:e=>e.chain().focus().toggleOrderedList().run()},blockquote:{icon:`quote`,label:`blockquote`,isActive:e=>e.isActive(`blockquote`),execute:e=>e.chain().focus().toggleBlockquote().run()},code:{icon:`code`,label:`inlineCode`,isActive:e=>e.isActive(`code`),execute:e=>e.chain().focus().toggleCode().run()},codeBlock:{icon:`square-code`,label:`codeBlock`,isActive:e=>e.isActive(`codeBlock`),execute:e=>e.chain().focus().toggleCodeBlock().run()},link:{icon:`link`,label:`link`,isActive:e=>e.isActive(`link`),execute:e=>{if(e.isActive(`link`)){e.chain().focus().unsetLink().run();return}let t=window.prompt(`URL`);t&&e.chain().focus().setLink({href:t}).run()}},undo:{icon:`undo-2`,label:`undo`,execute:e=>e.chain().focus().undo().run()},redo:{icon:`redo-2`,label:`redo`,execute:e=>e.chain().focus().redo().run()},clearFormat:{icon:`eraser`,label:`clearFormat`,execute:e=>e.chain().focus().clearNodes().unsetAllMarks().run()}},js=({def:e,editor:t})=>{let r=Y(`richText`),i=e.isActive?.(t)??!1;return n.default.createElement(`button`,{type:`button`,title:r[e.label],onMouseDown:n=>{n.preventDefault(),e.execute(t)},className:X(`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors`,`hover:bg-muted disabled:cursor-not-allowed disabled:opacity-40`,i&&`bg-muted text-primary`)},n.default.createElement(Q,{name:e.icon,size:14}))},Ms=[{value:0,label:`normal`,previewClass:`text-sm`,execute:e=>e.chain().focus().setParagraph().run()},{value:1,label:`heading1`,previewClass:`text-2xl font-bold`,execute:e=>e.chain().focus().setHeading({level:1}).run()},{value:2,label:`heading2`,previewClass:`text-xl font-semibold`,execute:e=>e.chain().focus().setHeading({level:2}).run()},{value:3,label:`heading3`,previewClass:`text-lg font-semibold`,execute:e=>e.chain().focus().setHeading({level:3}).run()}],Ns=({editor:e})=>{let t=Y(`richText`),[r,i]=n.default.useState(!1),a=(0,n.useRef)(null);n.default.useEffect(()=>{let e=e=>{a.current&&!a.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let o=e.isActive(`heading`,{level:1})?`H1`:e.isActive(`heading`,{level:2})?`H2`:e.isActive(`heading`,{level:3})?`H3`:`P`;return n.default.createElement(`div`,{ref:a,className:`relative`},n.default.createElement(`button`,{type:`button`,title:t.paragraphStyle,onMouseDown:e=>{e.preventDefault(),i(e=>!e)},className:`inline-flex h-7 items-center gap-0.5 rounded px-1.5 text-xs font-medium transition-colors hover:bg-muted`},o,n.default.createElement(Q,{name:`chevron-down`,size:10})),r&&n.default.createElement(`div`,{className:`absolute left-0 top-full z-50 mt-1 w-44 overflow-hidden rounded-md border border-border bg-background shadow-lg`},Ms.map(r=>n.default.createElement(`button`,{key:r.value,type:`button`,onMouseDown:t=>{t.preventDefault(),r.execute(e),i(!1)},className:X(`block w-full px-3 py-1.5 text-left leading-snug transition-colors hover:bg-muted`,r.previewClass,r.value===0&&e.isActive(`paragraph`)&&`bg-muted/60`,r.value!==0&&e.isActive(`heading`,{level:r.value})&&`bg-muted/60`)},t[r.label]))))},Ps=({editor:e})=>{let t=Y(`richText`),[r,i]=n.default.useState(!1),[a,o]=n.default.useState(3),[s,c]=n.default.useState(3),l=(0,n.useRef)(null);n.default.useEffect(()=>{let e=e=>{l.current&&!l.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let u=(t,n)=>{e.chain().focus().insertTable({rows:t,cols:n,withHeaderRow:!0}).run(),i(!1)};return n.default.createElement(`div`,{ref:l,className:`relative`},n.default.createElement(`button`,{type:`button`,title:t.insertTable,onMouseDown:e=>{e.preventDefault(),i(e=>!e)},className:`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted`},n.default.createElement(Q,{name:`table`,size:14})),r&&n.default.createElement(`div`,{className:`absolute left-0 top-full z-50 mt-1 rounded-md border border-border bg-background p-3 shadow-lg`},n.default.createElement(`div`,{className:`grid gap-1.5`,style:{gridTemplateColumns:`repeat(${ks}, 18px)`,width:`fit-content`}},Array.from({length:64},(e,r)=>{let i=Math.floor(r/ks)+1,l=r%ks+1,d=i<=a&&l<=s;return n.default.createElement(`button`,{key:`${i}-${l}`,type:`button`,"aria-label":J(t.insertTableSize,{rows:i,cols:l}),onMouseEnter:()=>{o(i),c(l)},onFocus:()=>{o(i),c(l)},onMouseDown:e=>{e.preventDefault(),u(i,l)},className:X(`h-[18px] w-[18px] rounded-[4px] border transition-colors`,d?`border-primary bg-primary/25 shadow-[inset_0_0_0_1px_rgba(59,130,246,0.35)]`:`border-border bg-background hover:border-primary/50 hover:bg-muted/60`)})})),n.default.createElement(`div`,{className:`mt-3 text-center text-xs font-medium text-muted-foreground`},a,` x `,s)))},Fs=({editor:e})=>{let t=Y(`richText`);return n.default.createElement(`div`,{className:`flex items-center gap-0.5 rounded-md border border-border bg-background px-1 py-0.5 shadow-lg`},[{icon:`rows-2`,label:`addRowAbove`,execute:()=>e.chain().focus().addRowBefore().run()},{icon:`rows-3`,label:`addRowBelow`,execute:()=>e.chain().focus().addRowAfter().run()},{icon:`columns-2`,label:`addColumnLeft`,execute:()=>e.chain().focus().addColumnBefore().run()},{icon:`columns-3`,label:`addColumnRight`,execute:()=>e.chain().focus().addColumnAfter().run()},{icon:`minus-square`,label:`deleteRow`,execute:()=>e.chain().focus().deleteRow().run()},{icon:`rectangle-ellipsis`,label:`deleteColumn`,execute:()=>e.chain().focus().deleteColumn().run()},{icon:`trash-2`,label:`deleteTable`,execute:()=>e.chain().focus().deleteTable().run()}].map((e,r)=>n.default.createElement(n.default.Fragment,{key:e.label},r>0&&r!==4&&n.default.createElement(`div`,{className:`mx-0.5 h-4 w-px bg-border`}),n.default.createElement(`button`,{type:`button`,title:t[e.label],onMouseDown:t=>{t.preventDefault(),e.execute()},className:`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted`},n.default.createElement(Q,{name:e.icon,size:14})))))},Is=({editor:e,commands:t,sourceMode:r,onImageUpload:i,onDocumentUpload:a,onSourceToggle:o,compact:s})=>{let c=Y(`richText`),[,l]=n.default.useReducer(e=>e+1,0);return n.default.useEffect(()=>(e.on(`selectionUpdate`,l),e.on(`transaction`,l),()=>{e.off(`selectionUpdate`,l),e.off(`transaction`,l)}),[e]),n.default.createElement(`div`,{className:X(`flex flex-wrap items-center gap-0.5 px-2 py-1`,!s&&`border-b border-border`)},t.map((t,s)=>{if(t===`|`)return n.default.createElement(`div`,{key:s,className:`mx-0.5 h-4 w-px bg-border`});if(t===`headings`)return n.default.createElement(Ns,{key:t,editor:e});if(t===`table`)return n.default.createElement(Ps,{key:t,editor:e});if(t===`imageUpload`)return n.default.createElement(`button`,{key:t,type:`button`,title:c.uploadImage,onMouseDown:e=>{e.preventDefault(),i()},className:`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted`},n.default.createElement(Q,{name:`image`,size:14}));if(t===`documentUpload`)return n.default.createElement(`button`,{key:t,type:`button`,title:c.uploadDocument,onMouseDown:e=>{e.preventDefault(),a()},className:`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted`},n.default.createElement(Q,{name:`file-up`,size:14}));if(t===`sourceCode`)return n.default.createElement(`button`,{key:t,type:`button`,title:c.sourceCode,onMouseDown:e=>{e.preventDefault(),o()},className:X(`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted`,r&&`bg-muted text-primary`)},n.default.createElement(Q,{name:`code`,size:14}));let l=As[t];return l?n.default.createElement(js,{key:t,def:l,editor:e}):null}))},Ls=e=>{try{let{$anchor:t}=e.state.selection,n=[];for(let e=t.depth;e>=0;e--){let r=t.node(e).type.name;r!==`doc`&&n.unshift(r)}return n}catch{return[]}},Rs=({editor:e,config:t})=>{let r=Y(`richText`),[i,a]=(0,n.useState)(0);(0,n.useEffect)(()=>{let t=()=>a(e=>e+1);return e.on(`selectionUpdate`,t),e.on(`transaction`,t),()=>{e.off(`selectionUpdate`,t),e.off(`transaction`,t)}},[e]);let o=t.tagBreadcrumb?Ls(e):[],s=e.storage.characterCount;return n.default.createElement(`div`,{className:`flex items-center gap-3 border-t border-border px-3 py-1 text-xs text-muted-foreground select-none`},t.tagBreadcrumb&&o.length>0&&n.default.createElement(`div`,{className:`flex items-center gap-1 font-mono`},o.map((e,t)=>n.default.createElement(n.Fragment,{key:t},t>0&&n.default.createElement(`span`,{className:`opacity-40`},`›`),n.default.createElement(`span`,null,e)))),n.default.createElement(`div`,{className:`ml-auto flex items-center gap-3`},t.wordCount&&s&&n.default.createElement(`span`,null,J(r.words,{count:s.words()})),t.charCount&&s&&n.default.createElement(`span`,null,J(r.chars,{count:s.characters()}))))},zs=({srcset:e})=>{let t=Y(`imageField`),r=e.split(`,`).map(e=>e.trim()).map(e=>{let[t,n]=e.split(` `);return{src:t,width:parseInt(n,10)}}).filter(e=>e.src&&!isNaN(e.width));return r.length?n.default.createElement(`div`,{className:`flex flex-col gap-1.5`},n.default.createElement(`p`,{className:`text-xs font-medium text-muted-foreground`},t.responsiveVariants,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},J(t.variantsGenerated,{count:r.length}))),n.default.createElement(`div`,{className:`flex gap-1.5`},r.map(e=>n.default.createElement(`a`,{key:e.width,href:e.src,target:`_blank`,rel:`noopener noreferrer`,className:`group relative flex-1 overflow-hidden rounded border border-border`,style:{backgroundImage:`repeating-conic-gradient(#e4e4e4 0% 25%, #f5f5f5 0% 50%)`,backgroundSize:`8px 8px`}},n.default.createElement(`img`,{src:e.src,alt:`${e.width}w`,className:`h-12 w-full object-contain transition-opacity group-hover:opacity-80`}),n.default.createElement(`span`,{className:`absolute bottom-0.5 left-0.5 rounded bg-black/60 px-1 py-0.5 text-[9px] font-mono leading-none text-white`},e.width,`px`),n.default.createElement(`div`,{className:`absolute inset-0 flex items-center justify-center opacity-0 transition-opacity group-hover:opacity-100`},n.default.createElement(`div`,{className:`rounded-md bg-black/60 p-1`},n.default.createElement(Q,{name:`external-link`,size:11,className:`text-white`}))))))):null},Bs=({items:e,onInsertAll:t,onCropSave:r,onCancel:i})=>{let a=Y(`imageField`),o=Y(`richText`),s=Y(`common`),[c,l]=(0,n.useState)(0),[u,d]=(0,n.useState)(()=>e.map(e=>({alt:e.defaultAlt,href:``,target:`_blank`,enabled:!0}))),[f,p]=(0,n.useState)(!1),m=(0,n.useRef)(null);(0,n.useEffect)(()=>{m.current?.focus()},[c]),(0,n.useEffect)(()=>{d(t=>{if(e.length<=t.length)return t;let n=e.slice(t.length).map(e=>({alt:e.defaultAlt,href:``,target:`_blank`,enabled:!0}));return[...t,...n]})},[e.length]);let h=e.length,g=e[c]??e[0],_=u[c]??{alt:``,href:``,target:`_blank`,enabled:!0},v=u.filter(e=>e.enabled).length,y=e=>d(t=>t.map((t,n)=>n===c?{...t,...e}:t));return n.default.createElement(n.default.Fragment,null,n.default.createElement(si,{title:h===1?a.insertImage:a.insertImages,onClose:i,size:`md`,footer:n.default.createElement(`div`,{className:`flex w-full items-center justify-between`},n.default.createElement(`label`,{className:`flex cursor-pointer select-none items-center gap-2 text-sm`},n.default.createElement(`input`,{type:`checkbox`,checked:_.enabled,onChange:e=>y({enabled:e.target.checked}),className:`h-4 w-4 rounded accent-primary`}),a.include),n.default.createElement(`div`,{className:`flex gap-2`},n.default.createElement(`button`,{type:`button`,onClick:i,className:`h-8 rounded-md px-3 text-sm transition-colors hover:bg-muted`},s.cancel),n.default.createElement(`button`,{type:`button`,onClick:()=>t(u),disabled:v===0,className:`h-8 rounded-md bg-primary px-3 text-sm text-primary-foreground transition-colors hover:bg-primary/90 disabled:opacity-50`},h===1?a.insert:J(a.insertCount,{count:v}))))},h>1&&n.default.createElement(`div`,{className:`mb-3 flex items-center justify-between gap-3`},n.default.createElement(`div`,{className:`flex gap-1.5 overflow-x-auto pb-0.5`},e.map((e,t)=>n.default.createElement(`button`,{key:t,type:`button`,onClick:()=>l(t),title:e.fileProps.fileName,className:X(`relative h-12 w-12 flex-shrink-0 overflow-hidden rounded-md border-2 transition-all`,t===c?`border-primary shadow-md`:`border-transparent opacity-50 hover:opacity-90`,!u[t]?.enabled&&`opacity-20 grayscale`)},n.default.createElement(`img`,{src:e.preview,alt:``,className:`h-full w-full object-cover`})))),n.default.createElement(`div`,{className:`flex flex-shrink-0 items-center gap-0.5`},n.default.createElement(`button`,{type:`button`,onClick:()=>l(e=>Math.max(0,e-1)),disabled:c===0,className:`flex h-7 w-7 items-center justify-center rounded hover:bg-muted disabled:opacity-30`},n.default.createElement(Q,{name:`chevron-left`,size:14})),n.default.createElement(`span`,{className:`w-10 text-center text-xs tabular-nums text-muted-foreground`},c+1,` / `,h),n.default.createElement(`button`,{type:`button`,onClick:()=>l(t=>Math.min(e.length-1,t+1)),disabled:c>=e.length-1,className:`flex h-7 w-7 items-center justify-center rounded hover:bg-muted disabled:opacity-30`},n.default.createElement(Q,{name:`chevron-right`,size:14})))),n.default.createElement(`div`,{className:X(`group relative flex min-h-[160px] items-center justify-center overflow-hidden rounded-lg transition-opacity`,`[background-image:repeating-conic-gradient(#e4e4e4_0%_25%,#f5f5f5_0%_50%)]`,`dark:[background-image:repeating-conic-gradient(#2a2a2a_0%_25%,#343434_0%_50%)]`,`[background-size:16px_16px]`,!_.enabled&&`opacity-40`)},n.default.createElement(`img`,{src:g.preview,alt:``,className:`max-h-[160px] max-w-full object-contain`}),n.default.createElement(`div`,{className:`absolute right-2 top-2 flex gap-1 opacity-0 transition-opacity group-hover:opacity-100`},n.default.createElement(`a`,{href:g.preview,target:`_blank`,rel:`noopener noreferrer`,title:a.openOriginal,className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80`},n.default.createElement(Q,{name:`external-link`,size:13})),n.default.createElement(`button`,{type:`button`,title:a.crop,onClick:()=>p(!0),className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80`},n.default.createElement(Q,{name:`crop`,size:13})))),n.default.createElement(`p`,{className:`mt-1.5 truncate font-mono text-xs text-muted-foreground`},g.fileProps.fileName),g.fileProps.srcset&&n.default.createElement(zs,{srcset:g.fileProps.srcset}),n.default.createElement(`div`,{className:`mt-3 flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},a.altText,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},a.altTextHint)),n.default.createElement(`input`,{ref:m,type:`text`,value:_.alt,onChange:e=>y({alt:e.target.value}),placeholder:o.altPlaceholder,className:`h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring`})),n.default.createElement(`div`,{className:`mt-2 flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},a.linkUrl,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},a.optionalHint)),n.default.createElement(`div`,{className:`flex gap-1.5`},n.default.createElement(`input`,{type:`url`,value:_.href,onChange:e=>y({href:e.target.value}),placeholder:`https://...`,className:`h-8 min-w-0 flex-1 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring`}),n.default.createElement(`select`,{value:_.target,onChange:e=>y({target:e.target.value}),disabled:!_.href,className:`h-8 rounded-md border border-input bg-background px-2 text-xs outline-none focus:ring-1 focus:ring-ring disabled:opacity-40`},n.default.createElement(`option`,{value:`_blank`},a.newTab),n.default.createElement(`option`,{value:`_self`},a.sameTab))))),f&&n.default.createElement(fi,{src:g.preview,mode:`modal`,title:J(a.cropTitle,{name:g.fileProps.fileName}),onClose:()=>p(!1),onSave:e=>{r(c,e),p(!1)}}))},Vs=({state:e,onConfirm:t,onCancel:r})=>{let[i,a]=(0,n.useState)(e.attrs.src??``),[o,s]=(0,n.useState)(e.attrs.alt??``),[c,l]=(0,n.useState)(e.attrs.href??``),[u,d]=(0,n.useState)(e.attrs.target??`_blank`),[f,p]=(0,n.useState)(!1),m=Y(`imageField`),h=Y(`richText`),g=Y(`common`),_=(0,n.useRef)(null);(0,n.useEffect)(()=>{_.current?.focus()},[]);let v=e.attrs.srcset;return n.default.createElement(n.default.Fragment,null,n.default.createElement(si,{title:m.editImage,onClose:r,size:`sm`,footer:n.default.createElement(`div`,{className:`flex justify-end gap-2`},n.default.createElement(`button`,{type:`button`,onClick:r,className:`h-8 rounded-md px-3 text-sm transition-colors hover:bg-muted`},g.cancel),n.default.createElement(`button`,{type:`button`,onClick:()=>t({src:i,alt:o,href:c,target:u,enabled:!0}),className:`h-8 rounded-md bg-primary px-3 text-sm text-primary-foreground transition-colors hover:bg-primary/90`},g.save))},i&&n.default.createElement(`div`,{className:`group relative mb-3 overflow-hidden rounded-lg bg-muted/40`},n.default.createElement(Ss,{src:i,fit:`contain`,height:140,wrapperClassName:`w-full`,className:`w-full`}),n.default.createElement(`div`,{className:`absolute right-2 top-2 flex gap-1 opacity-0 transition-opacity group-hover:opacity-100`},n.default.createElement(`a`,{href:i,target:`_blank`,rel:`noopener noreferrer`,title:m.openOriginal,className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80`},n.default.createElement(Q,{name:`external-link`,size:13})),n.default.createElement(`button`,{type:`button`,title:m.crop,onClick:()=>p(!0),className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80`},n.default.createElement(Q,{name:`crop`,size:13})))),v&&n.default.createElement(zs,{srcset:v}),n.default.createElement(`div`,{className:`flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},m.imageUrl,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},m.imageUrlHint)),n.default.createElement(`input`,{type:`url`,value:i,onChange:e=>a(e.target.value),placeholder:`https://example.com/image.jpg`,className:`h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring`})),n.default.createElement(`div`,{className:`mt-2 flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},m.altText,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},m.altTextHint)),n.default.createElement(`input`,{ref:_,type:`text`,value:o,onChange:e=>s(e.target.value),placeholder:h.altPlaceholder,className:`h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring`})),n.default.createElement(`div`,{className:`mt-2 flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},m.linkUrl,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},m.optionalHint)),n.default.createElement(`div`,{className:`flex gap-1.5`},n.default.createElement(`input`,{type:`url`,value:c,onChange:e=>l(e.target.value),placeholder:`https://...`,className:`h-8 min-w-0 flex-1 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring`}),n.default.createElement(`select`,{value:u,onChange:e=>d(e.target.value),disabled:!c,className:`h-8 rounded-md border border-input bg-background px-2 text-xs outline-none focus:ring-1 focus:ring-ring disabled:opacity-40`},n.default.createElement(`option`,{value:`_blank`},m.newTab),n.default.createElement(`option`,{value:`_self`},m.sameTab))))),f&&n.default.createElement(fi,{src:i,mode:`modal`,title:m.cropImage,onClose:()=>p(!1),onSave:e=>{a(e),p(!1)}}))},Hs=(e,t,n)=>mo(e,t,n,{queryPattern:/^[A-Za-z0-9-]*$/}),Us=({modules:e,name:t,value:r,outputFormat:i,placeholder:a,disabled:o,toolbar:s,toolbarCommands:c,statusBar:l,minHeight:u,maxHeight:d,imageUpload:f,documentUpload:p,hasError:m,className:h,onEditorChange:g,commands:_,commandsTrigger:v})=>{let{useEditor:y,EditorContent:b}=e[0],{BubbleMenu:x}=e[1],S=e[2].default,C=e[3].default,w=e[4].default,T=e[5].default.extend({addAttributes(){return{...this.parent?.()??{},srcset:{default:null},sizes:{default:null},loading:{default:null},decoding:{default:null},href:{default:null},target:{default:null}}},renderHTML({HTMLAttributes:e}){let{href:t,target:n,...r}=e,i=this.options.HTMLAttributes??{},a=[`img`,Object.fromEntries(Object.entries({...i,...r}).filter(([,e])=>e!=null))];return t?[`a`,{"data-href":t,"data-target":n??`_blank`,rel:`noopener noreferrer`},a]:a}}),{Table:E,TableRow:D,TableHeader:O,TableCell:k}=e[6],A=e[7].default,j=e[8].default,[M,N]=(0,n.useState)(!1),P=Y(`richText`),[F,I]=(0,n.useState)(``),[L,R]=(0,n.useState)([]),[z,B]=(0,n.useState)(null),[,ee]=n.default.useReducer(e=>e+1,0),V=(0,n.useRef)(null),H=(0,n.useRef)(null),[U,te]=(0,n.useState)({open:!1,query:``,anchorPosition:null,editorContext:null}),ne=(0,n.useRef)(U);ne.current=U;let re=_?.length?v??`/`:void 0,W=(_?.length??0)>=10,G=n.default.useMemo(()=>new Map((_??[]).map(e=>[e.name,e])),[_]),ie=n.default.useMemo(()=>(_??[]).map(e=>({key:e.name,label:`${re??`/`}${e.name}`,value:e.name,icon:e.icon,description:e.description})),[_,re]),ae=f?.srcsetWidths===void 0?[400,800]:f.srcsetWidths,oe=Xr(),se=Pi({uploadPath:f?.path,srcsetWidths:ae,onFileReady:e=>{let t=e.fileName.replace(/\.[^/.]+$/,``).replace(/[-_]+/g,` `).replace(/\s+/g,` `).trim().replace(/^(.)/,e=>e.toUpperCase()),n=e.url||(e.base64?`data:${e.type};base64,${e.base64}`:``);R(r=>[...r,{fileProps:e,preview:n,defaultAlt:t}])}}),ce=xo({minHeight:u,maxHeight:d,paddingOffset:16}),le=(0,n.useCallback)(()=>{te({open:!1,query:``,anchorPosition:null,editorContext:null})},[]),ue=(0,n.useCallback)((e,t)=>{let n=e.state.selection;if(!n.empty)return null;let{$from:r}=n,i=r.parent;if(!i.isTextblock)return null;let a=i.textContent??``,o=r.parentOffset,s=Hs(a,o,t);if(!s)return null;let c=n.from-o,l=c+s.start,u=c+s.end;return{value:e.getText(),textBeforeCaret:a.slice(0,o),textAfterCaret:a.slice(o),trigger:t,query:s.query,triggerRange:{start:l,end:u},insert:t=>{let{from:n,to:r}=e.state.selection,i=e.state.tr.insertText(t,n,r);e.view.dispatch(i),e.commands.focus()},replace:(t,n,r)=>{let i=e.state.tr.insertText(r,t,n);e.view.dispatch(i),e.commands.focus()}}},[]),K=y({extensions:[S,C,w.configure({openOnClick:!1,HTMLAttributes:{target:null,rel:`noopener noreferrer nofollow`}}),T.configure({allowBase64:!0}),E.configure({resizable:!0}),D,O,k,A.configure({placeholder:a??``}),j],content:r||``,editable:!o,editorProps:{attributes:{style:`min-height: ${ce.adjustedMinHeight}px`},handleClick(e,t,n){if(n.ctrlKey||n.metaKey){let n=e.state.doc.resolve(t).marks().find(e=>e.type.name===`link`);if(n?.attrs.href)return window.open(n.attrs.href,`_blank`,`noopener,noreferrer`),!0}let r=n.target;if(r.tagName===`IMG`)try{let t=e.posAtDOM(r,0),n=e.state.doc.nodeAt(t);if(n?.type.name===`image`){let e={...n.attrs};if(!e.href){let t=n.marks?.find(e=>e.type.name===`link`);t&&(t.attrs.href&&(e.href=t.attrs.href),t.attrs.target&&(e.target=t.attrs.target))}return B({pos:t,attrs:e}),!0}}catch{}return!1},handleKeyDown(e,t){if(!ne.current.open)return!1;switch(t.key){case`ArrowDown`:return t.preventDefault(),H.current?.moveNext(),!0;case`ArrowUp`:return t.preventDefault(),H.current?.movePrev(),!0;case`Enter`:case`Tab`:return t.preventDefault(),H.current?.selectActive(),!0;case`Escape`:return t.preventDefault(),H.current?.close(),!0;default:return!1}}},onUpdate:({editor:e})=>{g(i===`json`?JSON.stringify(e.getJSON()):i===`text`?e.getText():e.getHTML().replace(/<a([^>]*?)data-href="([^"]*?)"/g,`<a$1href="$2"`).replace(/data-target="([^"]*?)"/g,`target="$1"`))}}),de=(0,n.useRef)(r);(0,n.useEffect)(()=>{K&&r!==de.current&&(de.current=r,r!==(i===`json`?JSON.stringify(K.getJSON()):i===`text`?K.getText():K.getHTML().replace(/<a([^>]*?)data-href="([^"]*?)"/g,`<a$1href="$2"`).replace(/data-target="([^"]*?)"/g,`target="$1"`))&&K.commands.setContent(i===`json`&&r?JSON.parse(r):r||``))},[r,K,i]),(0,n.useEffect)(()=>{if(K)return K.view.dom.style.minHeight=`${ce.adjustedMinHeight}px`,K.on(`selectionUpdate`,ee),()=>{K.off(`selectionUpdate`,ee)}},[K,ce.adjustedMinHeight]),(0,n.useEffect)(()=>{if(!K||!re||M){ne.current.open&&le();return}let e=()=>{if(!K.isFocused){ne.current.open&&le();return}let e=K.state.selection;if(!e.empty){ne.current.open&&le();return}let{$from:t}=e,n=t.parent;if(!n.isTextblock){ne.current.open&&le();return}let r=n.textContent??``,i=t.parentOffset,a=Hs(r,i,re);if(!a){ne.current.open&&le();return}let o=K.view.coordsAtPos(e.from),s=ue(K,re);o&&s&&te({open:!0,query:a.query,anchorPosition:{top:o.bottom,left:o.left},editorContext:s})};return e(),K.on(`selectionUpdate`,e),K.on(`transaction`,e),()=>{K.off(`selectionUpdate`,e),K.off(`transaction`,e)}},[le,K,ue,re,M]);let fe=(0,n.useCallback)(async(e,t)=>{let n=G.get(e.value);if(n){if(n.handler){let e=await n.handler(go(t)),r=n.consumeSuffix?po(t.textAfterCaret,n.consumeSuffix):0;t.replace(t.triggerRange.start,t.triggerRange.end+r,e);return}t.replace(t.triggerRange.start,t.triggerRange.end,`${t.trigger}${n.name} `)}},[G]),pe=()=>{K&&(M?K.commands.setContent(F):I(K.getHTML()),N(e=>!e))},me=e=>new Promise(t=>{let n=new FileReader;n.onload=e=>t(e.target?.result),n.readAsDataURL(e)}),he=async e=>{if(!K)return;let t=p?.maxBytes??20971520;for(let n of e){if(n.size>t){alert(`"${n.name}" exceeds the ${Math.round(t/1048576)} MB limit.`);continue}let e;if(oe&&p?.path)try{e=await oe.upload(n,`${p.path}/${n.name}`)??await me(n)}catch{e=await me(n)}else e=await me(n);let r=n.size<1048576?`${Math.round(n.size/1024)} KB`:`${(n.size/1048576).toFixed(1)} MB`;K.chain().focus().insertContent([{type:`text`,marks:[{type:`link`,attrs:{href:e,target:`_blank`,rel:`noopener noreferrer`}}],text:`📎 ${n.name} (${r})`},{type:`text`,text:` `}]).run()}},ge=e=>{if(!K)return;let t=[];e.forEach(({alt:e,href:n,target:r,enabled:i},a)=>{if(!i)return;let o=L[a];if(!o)return;se.handleRemove(o.fileProps.key);let s=o.fileProps.url||o.preview,c={alt:e||null,href:n||null,target:n?r||`_blank`:null},l=o.fileProps.srcset?{...c,src:s,srcset:o.fileProps.srcset,sizes:o.fileProps.sizes??`(max-width: 640px) 100vw, 800px`,loading:`lazy`,decoding:`async`}:{...c,src:s};t.push({type:`image`,attrs:l})}),t.length&&K.chain().focus().insertContent(t).run(),R([])},_e=(0,n.useCallback)(async(e,t)=>{let n=`image.jpg`;if(R(r=>(n=r[e]?.fileProps.fileName??`image.jpg`,r.map((n,r)=>r===e?{...n,preview:t,fileProps:{...n.fileProps,url:t,srcset:``,sizes:``}}:n))),ae.length)try{let{variants:r,naturalWidth:i}=await Ur(t,ae),a=oe&&f?.path?await Wr(r,oe,f.path,n):r.map(e=>({url:e.localUrl,width:e.width})),o=await fetch(t).then(e=>e.blob()),s=URL.createObjectURL(o),c=Gr([...a,{url:s,width:i}]);R(t=>t.map((t,n)=>n===e?{...t,fileProps:{...t.fileProps,srcset:c,sizes:`(max-width: 640px) 100vw, 800px`}}:t))}catch{}},[ae,oe,f?.path]),ve=({src:e,alt:t,href:n,target:r})=>{if(!K||!z)return;let{pos:i,attrs:a}=z,o=K.state.doc.nodeAt(i);if(o?.type.name===`image`){let{tr:s,schema:c}=K.state,l=e!==void 0&&e!==a.src,u={...a,...l?{src:e||null,srcset:null,sizes:null}:{},alt:t||null,href:n||null,target:n?r||`_blank`:null},d=o.marks??[],f=d.some(e=>e.type.name===`link`),p=d;n?f||(p=[...d,c.marks.link.create({href:n,target:r||`_blank`})]):p=d.filter(e=>e.type.name!==`link`),s.setNodeMarkup(i,null,u,p),K.view.dispatch(s)}B(null)},ye=c.filter(e=>e!==`imageUpload`&&e!==`documentUpload`&&e!==`sourceCode`);return n.default.createElement(n.default.Fragment,null,L.length>0&&n.default.createElement(Bs,{items:L,onInsertAll:ge,onCropSave:_e,onCancel:()=>{L.forEach(e=>se.handleRemove(e.fileProps.key)),R([])}}),z&&n.default.createElement(Vs,{state:z,onConfirm:ve,onCancel:()=>B(null)}),n.default.createElement(`div`,{className:X(`rounded-md border border-input bg-background shadow-sm transition-colors`,`focus-within:ring-1 focus-within:ring-ring`,m&&`border-destructive focus-within:ring-destructive/20`,o&&`cursor-not-allowed opacity-50`,h)},s===`fixed`&&K&&n.default.createElement(Is,{editor:K,commands:c,sourceMode:M,onImageUpload:se.handleUpload,onDocumentUpload:()=>V.current?.click(),onSourceToggle:pe}),s===`floating`&&K&&n.default.createElement(x,{editor:K},n.default.createElement(`div`,{className:`flex items-center gap-0.5 rounded-md border border-border bg-background px-1 py-0.5 shadow-lg`},n.default.createElement(Is,{editor:K,commands:ye,sourceMode:M,onImageUpload:se.handleUpload,onDocumentUpload:()=>V.current?.click(),onSourceToggle:pe,compact:!0}))),K&&!M&&n.default.createElement(x,{editor:K,shouldShow:({editor:e,from:t,to:n})=>t!==n||!e.isActive(`link`)?!1:!!e.getAttributes(`link`).href,options:{placement:`bottom-start`,offset:6}},(()=>{let e=K.getAttributes(`link`).href??``;return n.default.createElement(`div`,{className:`flex items-center gap-1.5 rounded-md border border-border bg-background px-2 py-1.5 shadow-md`},n.default.createElement(Q,{name:`link`,size:12,className:`shrink-0 text-muted-foreground`}),n.default.createElement(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`max-w-[220px] truncate text-xs text-primary underline`},e),n.default.createElement(`div`,{className:`mx-0.5 h-3 w-px bg-border`}),n.default.createElement(`button`,{type:`button`,title:P.editLink,onMouseDown:t=>{t.preventDefault();let n=window.prompt(`URL`,e);n?K.chain().focus().setLink({href:n}).run():n===``&&K.chain().focus().unsetLink().run()},className:`inline-flex h-5 w-5 items-center justify-center rounded transition-colors hover:bg-muted`},n.default.createElement(Q,{name:`pencil`,size:11})),n.default.createElement(`button`,{type:`button`,title:P.removeLink,onMouseDown:e=>{e.preventDefault(),K.chain().focus().unsetLink().run()},className:`inline-flex h-5 w-5 items-center justify-center rounded transition-colors hover:bg-muted`},n.default.createElement(Q,{name:`unlink`,size:11})))})()),K&&!M&&n.default.createElement(x,{editor:K,shouldShow:({editor:e})=>e.isActive(`table`),options:{placement:`top-start`,offset:8}},n.default.createElement(Fs,{editor:K})),M?n.default.createElement(`textarea`,{"aria-label":J(P.source,{name:t}),className:`w-full resize-none bg-background px-3 py-2 font-mono text-xs text-foreground outline-none`,style:{minHeight:ce.adjustedMinHeight,maxHeight:d,overflowY:`auto`},value:F,onChange:e=>I(e.target.value)}):(()=>{let e=n.default.createElement(`div`,{style:ce.wrapperStyle,className:X(`w-full px-3 py-2 text-sm`,`[&_.ProseMirror]:outline-none`,`[&_.ProseMirror_p]:my-1`,`[&_.ProseMirror_h1]:my-2 [&_.ProseMirror_h1]:text-2xl [&_.ProseMirror_h1]:font-bold`,`[&_.ProseMirror_h2]:my-2 [&_.ProseMirror_h2]:text-xl [&_.ProseMirror_h2]:font-semibold`,`[&_.ProseMirror_h3]:my-1 [&_.ProseMirror_h3]:text-lg [&_.ProseMirror_h3]:font-semibold`,`[&_.ProseMirror_ul]:list-disc [&_.ProseMirror_ul]:pl-6`,`[&_.ProseMirror_ol]:list-decimal [&_.ProseMirror_ol]:pl-6`,`[&_.ProseMirror_blockquote]:my-2 [&_.ProseMirror_blockquote]:border-l-4 [&_.ProseMirror_blockquote]:border-border [&_.ProseMirror_blockquote]:pl-4 [&_.ProseMirror_blockquote]:text-muted-foreground`,`[&_.ProseMirror_code]:rounded [&_.ProseMirror_code]:bg-muted [&_.ProseMirror_code]:px-1 [&_.ProseMirror_code]:font-mono [&_.ProseMirror_code]:text-xs`,`[&_.ProseMirror_pre]:my-2 [&_.ProseMirror_pre]:overflow-x-auto [&_.ProseMirror_pre]:rounded [&_.ProseMirror_pre]:bg-muted [&_.ProseMirror_pre]:p-3`,`[&_.ProseMirror_table]:w-full [&_.ProseMirror_table]:border-collapse`,`[&_.ProseMirror_td]:border [&_.ProseMirror_td]:border-border [&_.ProseMirror_td]:px-2 [&_.ProseMirror_td]:py-1`,`[&_.ProseMirror_th]:border [&_.ProseMirror_th]:border-border [&_.ProseMirror_th]:bg-muted [&_.ProseMirror_th]:px-2 [&_.ProseMirror_th]:py-1 [&_.ProseMirror_th]:font-semibold`,`[&_.ProseMirror_a]:text-primary [&_.ProseMirror_a]:underline [&_.ProseMirror_a]:pointer-events-none`,`[&_.ProseMirror_a_img]:pointer-events-auto`,`[&_.ProseMirror_.is-editor-empty:first-child::before]:pointer-events-none [&_.ProseMirror_.is-editor-empty:first-child::before]:float-left [&_.ProseMirror_.is-editor-empty:first-child::before]:h-0 [&_.ProseMirror_.is-editor-empty:first-child::before]:text-muted-foreground [&_.ProseMirror_.is-editor-empty:first-child::before]:content-[attr(data-placeholder)]`)},n.default.createElement(b,{editor:K}));return re&&ie.length>0?n.default.createElement(bo,{ref:H,trigger:re,searchable:W,controlled:U.editorContext?{open:U.open,anchorPosition:U.anchorPosition,query:U.query,editorContext:U.editorContext,onClose:le}:void 0,onSelect:(e,t)=>{fe(e,t)}},ie.map(e=>n.default.createElement(bo.Item,{key:e.key,label:e.label,value:e.value,icon:e.icon,description:e.description})),e):e})(),l&&K&&n.default.createElement(Rs,{editor:K,config:l}),n.default.createElement(`input`,{ref:se.fileInputRef,type:`file`,multiple:!0,accept:f?.accept??`image/*`,className:`hidden`,onChange:e=>{let t=f?.maxBytes??10485760,n=Array.from(e.target.files??[]).find(e=>e.size>t);if(n){alert(`"${n.name}" exceeds the ${Math.round(t/1048576)} MB limit.`),e.target.value=``;return}se.handleUploadChange(e)}}),n.default.createElement(`input`,{ref:V,type:`file`,multiple:!0,accept:p?.accept??`.pdf,.doc,.docx,.txt,.csv`,className:`hidden`,onChange:e=>{let t=Array.from(e.target.files??[]);t.length&&he(t),e.target.value=``}})))},Ws=({name:e,onChange:t=void 0,defaultValue:r=void 0,label:i=void 0,required:a=!1,placeholder:o=void 0,disabled:s=!1,feedback:c=void 0,toolbar:l=`fixed`,toolbarCommands:u=Ds,outputFormat:d=`html`,statusBar:f=!1,minHeight:p=120,maxHeight:m=void 0,imageUpload:h=void 0,documentUpload:g=void 0,labelClassName:_=void 0,inheritWrapperClassName:v=!0,wrapperClassName:y=void 0,className:b=void 0,before:x=void 0,after:S=void 0,validator:C=void 0,commands:w=void 0,commandsTrigger:T=void 0})=>{let{value:E,handleChange:D,formWrapClass:O}=Ec({name:e,onChange:t,wrapperClassName:y,defaultValue:r,inheritWrapperClassName:v}),k=Tc(e,{required:a,label:i,validator:C}),A=(0,n.useId)(),[j,M]=(0,n.useState)(ws);(0,n.useEffect)(()=>{j||Es().then(M)},[j]);let N=(0,n.useCallback)(t=>{D?.({target:{name:e,value:t}})},[D,e]),P=f!==!1&&Os(f);return n.default.createElement(Z,{className:O},i&&n.default.createElement(hl,{label:i,required:a,htmlFor:A,className:_}),n.default.createElement(`div`,{className:X(x||S?Vc:``)},x&&n.default.createElement(`span`,{className:X(`inline-flex shrink-0 items-center border border-input bg-muted px-3 py-1 text-sm text-muted-foreground`,`rounded-l-md rounded-r-none border-r-0`)},x),n.default.createElement(`div`,{className:`min-w-0 flex-1`},j?n.default.createElement(Us,{modules:j,name:e,value:E??``,outputFormat:d,placeholder:o,disabled:s,toolbar:l,toolbarCommands:u,statusBar:P,minHeight:p,maxHeight:m,imageUpload:h,documentUpload:g,hasError:!!k,className:b,onEditorChange:N,commands:w,commandsTrigger:T}):n.default.createElement(`div`,{className:X(`rounded-md border border-input bg-muted/30 shadow-sm`,k&&`border-destructive`),style:{minHeight:p},"aria-busy":`true`,"aria-label":Tr(i)||void 0})),S&&n.default.createElement(`span`,{className:X(`inline-flex shrink-0 items-center border border-input bg-muted px-3 py-1 text-sm text-muted-foreground`,`rounded-l-none rounded-r-md border-l-0`)},S)),k?n.default.createElement(Xc,{message:k}):c&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},c))},Gs={string:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement($c,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),number:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(el,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),email:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(tl,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),password:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(rl,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),color:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(il,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),url:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(dl,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),range:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(ul,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),date:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(al,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),time:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(ol,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),datetime:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(sl,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),week:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(cl,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),month:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(ll,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),textarea:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(gl,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),richtext:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Ws,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),checkbox:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(pl,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),switch:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(ml,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),select:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Nr,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),autocomplete:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Fr,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),checklist:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Ir,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),uploadImage:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Hi,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),uploadDocument:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Vi,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),prompt:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Ko,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),imageField:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(mi,{name:t??e.name,label:r??t,...e,...i})}),menu:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Nr,{key:t,name:t,label:r??t,...e,...i})}),codeEditor:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue??``}),render:({name:t,label:r,...i}={})=>n.default.createElement(xs,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})})},$=Gs,Ks=e=>e===void 0?void 0:Tr(e),qs={layout:br,input:Gs,schema:{string:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),defaultValue:$.string({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),number:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),defaultValue:$.number({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),min:$.number({label:`Minimo`,defaultValue:e.min}),max:$.number({label:`Massimo`,defaultValue:e.max}),step:$.number({label:`Step`,min:0,defaultValue:e.step}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),email:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),defaultValue:$.email({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),password:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),color:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),defaultValue:$.color({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),date:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),defaultValue:$.date({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),min:$.number({label:`Data minima`,defaultValue:e.min}),max:$.number({label:`Data massima`,defaultValue:e.max}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),time:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),defaultValue:$.time({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),datetime:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),defaultValue:$.datetime({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),week:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),defaultValue:$.week({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),month:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),defaultValue:$.month({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),textarea:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),defaultValue:$.textarea({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),minHeight:$.number({label:`Altezza minima`,min:0,defaultValue:e.minHeight}),maxHeight:$.number({label:`Altezza massima`,min:0,defaultValue:e.maxHeight}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),checkbox:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),defaultValue:$.switch({label:`Valore default`,defaultValue:e.defaultValue}),title:$.string({label:`Titolo tooltip`,defaultValue:e.title}),valueChecked:$.string({label:`Valore checked`,defaultValue:e.valueChecked?.toString()})}),switch:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),defaultValue:$.switch({label:`Valore default`,defaultValue:e.defaultValue}),title:$.string({label:`Titolo tooltip`,defaultValue:e.title}),valueChecked:$.string({label:`Valore checked`,defaultValue:e.valueChecked?.toString()})}),select:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),defaultValue:$.string({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),autocomplete:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),minItems:$.number({label:`Min selezioni`,min:0,defaultValue:e.minItems}),maxItems:$.number({label:`Max selezioni`,min:1,defaultValue:e.maxItems}),creatable:$.switch({label:`Creazione libera`,defaultValue:e.creatable}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),checklist:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),uploadImage:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),multiple:$.switch({label:`Multiplo`,defaultValue:e.multiple}),editable:$.switch({label:`Modificabile`,defaultValue:e.editable}),max:$.number({label:`Max file`,min:1,defaultValue:e.max}),accept:$.string({label:`Formati accettati`,defaultValue:e.accept}),previewWidth:$.number({label:`Larghezza preview`,min:0,defaultValue:e.previewWidth}),previewHeight:$.number({label:`Altezza preview`,min:0,defaultValue:e.previewHeight})}),uploadDocument:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),multiple:$.switch({label:`Multiplo`,defaultValue:e.multiple}),editable:$.switch({label:`Modificabile`,defaultValue:e.editable}),max:$.number({label:`Max file`,min:1,defaultValue:e.max}),accept:$.string({label:`Formati accettati`,defaultValue:e.accept})}),imageField:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required})})},block:{},section:{}},Js=class{verifyRequiredMethods(){if(!this.model||typeof this.model!=`object`)throw Error(`[ComponentBlock] Missing property: "model"`);for(let e of[`html`,`form`])if(typeof this[e]!=`function`)throw Error(`[ComponentBlock] Missing method: "${e}()"`)}static default(e){let t=new this;return t.verifyRequiredMethods(),()=>{let[r,i]=n.default.useMemo(()=>Qs(t.model),[t.model]);return n.default.createElement(Ac,{defaultValues:i,path:e?.path},t.form(r))}}};function Ys(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.render==`function`&&typeof t.getDefaults==`function`}function Xs(e){return typeof e==`function`&&e.prototype instanceof Js}function Zs(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!n.default.isValidElement(e)&&!Ys(e)}function Qs(e){let t={},n={};function r(e){for(let[t,r]of Object.entries(e))n[t]=r}for(let[n,i]of Object.entries(e))if(Ys(i))t[n]=i.render({name:n}),r(i.getDefaults(n));else if(Xs(i)){let e=new i,[a,o]=Qs(e.model);t[n]=e.form(a),r(o)}else if(Array.isArray(i)){console.warn(`[buildFormFields] ⚠️ The field "${n}" is defined as an array. It has been automatically converted into an object with generated keys (e.g., "${n}_0"). Consider refactoring your model to use an explicit object instead of an array.`);let e={};i.forEach((t,r)=>{let i=`${n}_${r}`;e[i]=t});let[a,o]=Qs(e);r(o),t[n]=a}else if(Zs(i)){let[e,a]=Qs(i);t[n]=e,r(a)}else t[n]=i;return[t,n]}function $s(e){let{items:t,rootItem:n,baseUrl:r,stringify:i=!1}=e,a={"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[...n?[n]:[],...t].map((e,t)=>({"@type":`ListItem`,position:t+1,name:e.label,...e.href?{item:`${r}${e.href}`}:{}}))};return i?JSON.stringify(a):a}function ec(e,t){if(Array.isArray(e))return e;let n=N(e||t).split(`/`).filter(Boolean),r=``,i=n.map(e=>(r+=`/${e}`,{label:e,href:r}));return i.length===0?i:[...i.slice(0,-1),{label:i[i.length-1].label}]}function tc(e){if(e)return typeof e==`string`?{label:e}:e}var nc=()=>n.default.createElement(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0},n.default.createElement(`polyline`,{points:`9 18 15 12 9 6`})),rc=({value:e})=>n.default.createElement(`span`,{className:`text-muted-foreground/60 select-none flex items-center`,"aria-hidden":!0},e===`chevron`?n.default.createElement(nc,null):e),ic=({href:e,label:t})=>n.default.createElement(r.Link,{to:e,className:`text-muted-foreground hover:text-foreground transition-colors`},t),ac=({label:e})=>n.default.createElement(`span`,{className:`text-foreground font-medium`,"aria-current":`page`},e),oc=({trail:e=void 0,rootItem:t=void 0,separator:i=`/`,jsonLd:a=!1,baseUrl:o=void 0,className:s=void 0})=>{let c=(0,r.useLocation)(),l=Y(`breadcrumbs`),u=ec(e,c.pathname),d=tc(t),f=[];if(d){let e=d.href?n.default.createElement(ic,{href:d.href,label:d.label}):n.default.createElement(`span`,{className:`text-muted-foreground`},d.label);f.push({key:`__root`,node:e})}if(u.forEach((e,t)=>{let r=`${e.href??`__item`}-${t}`,i=e.node?e.node:e.href?n.default.createElement(ic,{href:e.href,label:e.label}):n.default.createElement(ac,{label:e.label});f.push({key:r,node:i})}),!f.length)return null;let p=a?$s({items:u,rootItem:d,baseUrl:o??(typeof window<`u`?window.location.origin:``),stringify:!0}):null;return n.default.createElement(n.default.Fragment,null,n.default.createElement(`nav`,{"aria-label":l.label,className:s},n.default.createElement(`ol`,{className:`flex flex-wrap items-center gap-1.5 text-sm`},f.map((e,t)=>n.default.createElement(n.default.Fragment,{key:e.key},t>0&&n.default.createElement(`li`,null,n.default.createElement(rc,{value:i})),n.default.createElement(`li`,null,e.node))))),p&&n.default.createElement(`script`,{type:`application/ld+json`,dangerouslySetInnerHTML:{__html:p}}))},sc=Symbol(`llmnative.form-controller-store`),cc=()=>({record:void 0,isNewRecord:!0,isDirty:!1,canSave:!1,canDelete:!1,isSaving:!1,isDeleting:!1,saveDisabled:!0,deleteDisabled:!0,hasDraft:!1,draftStatus:null,errors:{},hasErrors:!1}),lc=async()=>!1,uc=()=>void 0;function dc(){let e=cc(),t,n=new Set,r={save:lc,delete:lc,reset:uc,restoreDraft:uc,discardDraft:uc},i=()=>{t={...e,save:r.save,delete:r.delete,reset:r.reset,restoreDraft:r.restoreDraft,discardDraft:r.discardDraft,[sc]:a},n.forEach(e=>e())},a={bindActions(e){let t=!1;e.save&&r.save!==e.save&&(r.save=e.save,t=!0),e.delete&&r.delete!==e.delete&&(r.delete=e.delete,t=!0),e.reset&&r.reset!==e.reset&&(r.reset=e.reset,t=!0),e.restoreDraft&&r.restoreDraft!==e.restoreDraft&&(r.restoreDraft=e.restoreDraft,t=!0),e.discardDraft&&r.discardDraft!==e.discardDraft&&(r.discardDraft=e.discardDraft,t=!0),t&&i()},getControllerSnapshot:()=>t,getState:()=>e,setState(t){let n={...e,...t};Object.keys(n).some(t=>e[t]!==n[t])&&(e=n,i())},subscribe(e){return n.add(e),()=>n.delete(e)}};return t={...e,save:r.save,delete:r.delete,reset:r.reset,restoreDraft:r.restoreDraft,discardDraft:r.discardDraft,[sc]:a},a}function fc(e){return e?.[sc]??dc()}function pc(e){return fc(e)}function mc(e){let t=pc(e);t.setState(cc()),t.bindActions({save:lc,delete:lc,reset:uc,restoreDraft:uc,discardDraft:uc})}var hc=(0,n.createContext)(null);function gc(e){let t=(0,n.useRef)(void 0);t.current||=e?fc(e):dc();let r=e?fc(e):t.current;return(0,n.useSyncExternalStore)(r.subscribe,r.getControllerSnapshot,r.getControllerSnapshot)}function _c(){let e=(0,n.useContext)(hc);if(!e)throw Error(`useFormActions must be used within a FormControllerContext`);return e}var vc=e=>Array.isArray(e)?[...e]:e&&typeof e==`object`?{...e}:{},yc=e=>!Number.isNaN(Number(e)),bc=(e,t)=>[`number`,`range`].includes(t)?e===``||e==null?``:Number(e):e,xc=e=>e!==void 0&&yc(e)?[]:{},Sc=(e,t,n)=>{let r=t.target.name.split(`.`),i=bc(t.target.value,n),a=vc(e??{}),o=a;for(let e=0;e<r.length-1;e++){let t=r[e],n=r[e+1],i=o[t];o[t]=typeof i==`object`&&i?vc(i):xc(n),o=o[t]}let s=r[r.length-1];return i==null||i===``?Array.isArray(o)&&yc(s)?o.splice(Number(s),1):delete o[s]:o[s]=i,a},Cc=(0,n.createContext)(null),wc=(0,n.createContext)(null),Tc=(e,t)=>{let r=(0,n.useContext)(wc),i=(0,n.useRef)(t);return i.current=t,(0,n.useEffect)(()=>{if(r)return r.registerField(e,i),()=>r.unregisterField(e)},[e]),r?.errors[e]},Ec=({name:e,onChange:t,wrapperClassName:r,inputType:i=`text`,defaultValue:a,inheritWrapperClassName:o=!0,subscribeToFullRecord:s=!1})=>{let c=(0,n.useContext)(Cc);if(!c)throw Error(`useFormContext must be used within a FormContext.Provider`);if(!e)throw Error(`useFormContext: name is required`);let l=(0,n.useContext)(wc),u=(0,n.useCallback)(()=>{let t=c.store.getRecord();return s?t??Fc:e.split(`.`).reduce((e,t)=>{if(e!=null){if(Array.isArray(e)){let n=Number(t);return isNaN(n)?void 0:e[n]}if(typeof e==`object`)return e[t]}},t)},[c.store,e,s]),d=(0,n.useSyncExternalStore)(c.store.subscribe,u);return{value:(0,n.useMemo)(()=>d===void 0&&a!==void 0?a??``:d??``,[d,a]),handleChange:(0,n.useCallback)(n=>{l?.clearFieldError(n.target.name);let r;c.store.setRecord(e=>(r=Sc(e,n,i),r)),t?.({event:n,name:e,value:n.target.value,record:r??{},onChange:e=>{c.store.setRecord(t=>Sc(t,e,i))}})},[l,c.store,t,e,i]),formWrapClass:[r,o?c.wrapperClassName:void 0].filter(Boolean).join(` `),record:(s?d:c.store.getRecord())??{}}},Dc=({name:e,value:t,handleChange:r})=>n.default.useCallback(n=>{n.preventDefault();let i=n.target,a=`${n.dataTransfer.getData(`text/plain`)}`;i.focus();let o=(()=>{let e=document.caretPositionFromPoint?.(n.clientX,n.clientY)??document.caretRangeFromPoint?.(n.clientX,n.clientY);return e&&`offset`in e?e.offset??i.value.length:i.value.length})(),s=String(t??``),c=s.slice(0,o)+a+s.slice(o);r?.({target:{value:c.trim(),name:e}}),requestAnimationFrame(()=>{let e=o+a.length;i.setSelectionRange(e,e)})},[e,t,r]);function Oc(e,t){if(e.indexOf(`.`)===-1||t.indexOf(`.`)===-1)return`${t}.${e}`;let n=Math.min(e.length,t.length),r=0;for(;r<n&&e.charCodeAt(r)===t.charCodeAt(r);)r++;let i=e.lastIndexOf(`.`,r-1);return i===-1?`${t}.${e}`:`${t}.${e.slice(i+1)}`}var kc=({children:e,parentName:t,parentKey:r,wrapperClassName:i})=>n.default.Children.map(e,e=>{if(!t||!n.default.isValidElement(e))return e;let{name:a,children:o}=e.props,s={};return a&&(s.name=Oc(a,t),s.key=r??s.name,s.wrapperClassName=e.props.wrapperClassName??i,e.props.before&&n.default.isValidElement(e.props.before)&&(s.before=kc({children:e.props.before,parentName:t,parentKey:`${s.key}.before`})),e.props.after&&n.default.isValidElement(e.props.after)&&(s.after=kc({children:e.props.after,parentName:t,parentKey:`${s.key}.after`}))),o&&typeof o!=`function`&&(s.children=kc({children:o,parentName:t,parentKey:r,wrapperClassName:i})),n.default.cloneElement(e,s)});function Ac(e){let t=(0,r.useLocation)(),{path:i,keyGenerator:a,defaultValues:o,children:s,...c}=e;if(c.onSubmit&&(i!==void 0||a||c.onSave||c.onDelete))throw Error(`Form: onSubmit makes an action form, which saves nothing: it takes no path, onSave, onDelete or keyGenerator.`);if(c.onSubmit)return n.default.createElement(Ic,{children:s,defaultValues:o,...c});let l=(e=>e??(t.hash?`${N(t.pathname)}/${t.hash.slice(1)}`:void 0))(i);return o||!l||a?n.default.createElement(Ic,{children:s,defaultValues:o,path:i,keyGenerator:a,...c}):n.default.createElement(jc,{children:s,defaultValues:o,path:l,keyGenerator:a,...c})}var jc=e=>{let{path:t,defaultValues:r,...i}=e,a=lr(),[o,s]=(0,n.useState)(void 0);return(0,n.useEffect)(()=>{a.read(t).then(e=>{s({...r,...e})}).catch(e=>{console.error(e),s({})})},[a,t,r]),o?n.default.createElement(Ic,{...i,defaultValues:o,path:t}):n.default.createElement(`p`,{className:`p-4`},n.default.createElement(`span`,{className:`mr-2 inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}),`Loading...`)},Mc=e=>JSON.stringify(fe(e??{})),Nc=e=>{if(e)try{let t=JSON.parse(e);if(t&&typeof t==`object`&&!Array.isArray(t))return t}catch{return}};function Pc(e){let t=e,n=new Set;return{getRecord:()=>t,setRecord:e=>{t=typeof e==`function`?e(t):e,n.forEach(e=>e())},subscribe:e=>(n.add(e),()=>n.delete(e))}}var Fc={},Ic=({children:e,appearance:t=void 0,controller:i=void 0,header:a=void 0,footer:o=void 0,path:s=void 0,defaultValues:l=void 0,keyGenerator:u=void 0,onLoad:d=void 0,onRecordChange:f=void 0,onSave:p=void 0,onDelete:m=void 0,onComplete:h=void 0,log:g=!1,showNotice:_=!0,onSubmit:v=void 0,draftBucket:y=void 0,noticeAnchorRef:b=void 0,showBack:x=!1,wrapperClassName:S=void 0,headerClassName:C=void 0,className:w=void 0,footerClassName:T=void 0,formClassName:E=void 0})=>{let D=(0,r.useLocation)(),O=q(`form`),k=Y(`form`),A=lr(),j=gc(i),M=pc(j),F=(0,n.useRef)(void 0);F.current||=Pc(l);let I=F.current,L=(0,n.useSyncExternalStore)(I.subscribe,I.getRecord),R=I.setRecord,[z,B]=(0,n.useState)(!1),[ee,V]=(0,n.useState)(!1),H=!l?.[yr],U=(0,n.useRef)(ie(l??{})),[te,ne]=(0,n.useState)(()=>Mc(l)),[re,W]=(0,n.useState)(null),G=(0,n.useRef)({isDirty:!1}),ae=(0,n.useMemo)(()=>{if(!y)return;let e=P(y),t=P(s||`${D.pathname}${D.hash||``}`);return e&&t?`llmnative.form-draft.${e}.${t}`:void 0},[y,D.pathname,D.hash,s]),oe=!!v,se=!oe,ce=!!(v||p||s||!H),le=!(!m&&H),ue=(0,n.useMemo)(()=>!me(L,U.current),[L,U.current]),K=k.noChangesToSave??`No changes to save`,de=k.draftRestoreTitle??`Unsaved changes found`,pe=k.draftRestoreMessage??`A local draft is available for this form. Restore it or discard it.`,he=k.draftRestoreAction??`Restore`,ge=k.draftDiscardAction??`Discard`,_e=k.draftRestoredTitle??`Draft restored`,ve=k.draftRestoredMessage??`The local draft has been restored. You can still discard it for a few seconds.`,ye=(0,n.useCallback)(()=>{ae&&typeof localStorage<`u`&&localStorage.removeItem(ae)},[ae]),be=(0,n.useCallback)(()=>{if(ae&&typeof localStorage<`u`)return Nc(localStorage.getItem(ae))},[ae]),xe=(0,n.useCallback)(()=>{R(ie(U.current))},[]),[Se,Ce]=(0,n.useState)(void 0),we=(0,n.useCallback)(({message:e,type:t=`danger`})=>{_&&Ce({type:t,message:e})},[_]),[Te,Ee]=(0,n.useState)({}),De=(0,n.useRef)({}),Oe=(0,n.useRef)(null),ke=(0,n.useRef)(L),Ae=(0,n.useRef)(l),je=(0,n.useRef)(p),Me=(0,n.useRef)(v),Ne=(0,n.useRef)(m),Pe=(0,n.useRef)(h),Fe=(0,n.useRef)(s),Ie=(0,n.useRef)(g),Le=(0,n.useCallback)(()=>{ye(),xe(),W(null)},[ye,xe]),Re=(0,n.useCallback)(()=>{let e=be();if(!e){W(null);return}R(ie(e)),W(`restored`)},[be]),ze=(0,n.useCallback)(()=>{Ee({}),Ce(void 0),W(null),xe()},[xe]),Be=(0,n.useCallback)((e,t)=>{De.current[e]=t},[]),Ve=(0,n.useCallback)(e=>{delete De.current[e]},[]),He=(0,n.useCallback)(e=>{Ee(t=>{if(!t[e])return t;let{[e]:n,...r}=t;return r})},[]),Ue=(0,n.useCallback)(async()=>{let e={};for(let[t,n]of Object.entries(De.current)){let{required:r,label:i,validator:a}=n.current,o=t.split(`.`).reduce((e,t)=>{if(e!=null){if(Array.isArray(e))return e[Number(t)];if(typeof e==`object`)return e[t]}},ke.current);if(r&&(o==null||typeof o==`string`&&o.trim()===``||Array.isArray(o)&&o.length===0)){let n=Tr(i);e[t]=n?J(k.requiredField,{field:n}):k.requiredFieldGeneric;continue}if(a){let n=await a(o);n&&(e[t]=n)}}if(Ee(e),Object.keys(e).length>0){let t=Object.keys(e)[0];requestAnimationFrame(()=>{Oe.current?.querySelector(`[name="${CSS.escape(t)}"]`)?.focus()})}return Object.keys(e).length===0},[k]),We=(0,n.useCallback)(e=>{if(!s)return;let t=N(s);if(H)return t.split(`/`).filter(Boolean).length%2==0&&!u?`/${t}`:`/${t}/${u?.(e)??Date.now().toString()}`;let n=e[yr];if(!n)return s;let r=t.split(`/`).filter(Boolean);return`/${r[r.length-1]===n?r.slice(0,-1).join(`/`):t}/${n}`},[s,u,H]),Ge=(0,n.useCallback)(async e=>{if(e!==`submit`&&Ie.current&&Fe.current&&A){let t=new Date().toISOString(),n=Mn(`user`);A.set(`/log/${Fe.current}/${P(t)}`,{user:n?.email??`unknown`,when:t,action:e,record:ke.current})}return e!==`submit`&&we({message:e===`delete`?k.deleteSuccess:k.saveSuccess,type:`success`}),await Pe.current?.({record:ke.current,action:e})??!0},[A,we,k]),Ke=(0,n.useCallback)(async e=>{if(e?.preventDefault?.(),se&&!ue)return _&&Ce({message:K,type:`info`}),!1;if((0,c.flushSync)(()=>{Ee({}),_&&Ce(void 0)}),!await Ue())return _&&Ce({message:k.noticeRequiredFields,type:`warning`}),!1;let t=e=>{if(!_)throw e;let t=e instanceof Error&&e.message?e.message:typeof e==`string`&&e?e:k.saveError;return Ce({message:t,type:`danger`}),!1};if(Me.current){B(!0);try{if(await Me.current({record:ie(ke.current??{})})===!1)return!1}catch(e){return t(e)}finally{B(!1)}return ye(),W(null),await Ge(`submit`)}let n=H?`create`:`update`;B(!0);try{let e=je.current?await je.current({record:ke.current,prevRecord:Ae.current,action:n,storagePath:Fe.current}):void 0;if(e===!1)return!1;let t=e??We(ke.current??{});t&&await A.set(t,fe(ke.current)),U.current=ie(ke.current??{}),ne(Mc(ke.current)),ye(),W(null)}catch(e){return t(e)}finally{B(!1)}return await Ge(n)},[ye,We,A,k.noticeRequiredFields,k.saveError,Ge,ue,H,K,se,_,Ue]),qe=(0,n.useCallback)(async e=>{e?.preventDefault?.(),_&&Ce(void 0),V(!0);try{let e=(Ne.current&&await Ne.current({record:ke.current}))??We(ke.current??{});return e&&await A.remove(e),ye(),W(null),await Ge(`delete`)}finally{V(!1)}},[ye,We,A,Ge,_]);(0,n.useEffect)(()=>{let e=ie(l??{});if(l&&(R(e),d?.(ie(e))),U.current=e,ne(Mc(e)),!y){W(null);return}let t=be();if(t&&Mc(t)!==Mc(e)){W(`restore`);return}W(null)},[JSON.stringify(l),y,d,be]),(0,n.useEffect)(()=>{ke.current=L,L!==void 0&&f?.(L)},[L,f]),(0,n.useEffect)(()=>{Ae.current=l,je.current=p,Me.current=v,Ne.current=m,Pe.current=h,Fe.current=s,Ie.current=g},[l,g,h,m,p,v,s]),(0,n.useEffect)(()=>{if(!ae||typeof localStorage>`u`||L===void 0)return;if(!ue){let e=be();if(e&&Mc(e)!==te)return;localStorage.removeItem(ae);return}let e=window.setTimeout(()=>{try{localStorage.setItem(ae,JSON.stringify(fe(L)))}catch{we({type:`warning`,message:k.draftSaveError??`Could not save a local draft — the change is too large for browser storage (e.g. an unsent image upload). Save the form to keep it.`})}},150);return()=>window.clearTimeout(e)},[te,ae,ue,we,be,L]),(0,n.useEffect)(()=>{G.current={storageKey:ae,record:L,isDirty:ue}},[ae,ue,L]),(0,n.useEffect)(()=>()=>{let{storageKey:e,record:t,isDirty:n}=G.current;if(e&&n&&t&&typeof localStorage<`u`)try{localStorage.setItem(e,JSON.stringify(fe(t)))}catch{}},[]),(0,n.useEffect)(()=>{M.bindActions({save:Ke,delete:qe,reset:ze,restoreDraft:Re,discardDraft:Le})},[M,Le,qe,Ke,ze,Re]),(0,n.useEffect)(()=>{M.setState({record:ke.current,isNewRecord:H,isDirty:ue,canSave:ce,canDelete:le,isSaving:z,isDeleting:ee,saveDisabled:!ce||se&&!ue||z,deleteDisabled:!le||ee,hasDraft:re!==null,draftStatus:re,errors:Te,hasErrors:Object.keys(Te).length>0})},[le,ce,M,re,Te,ee,ue,H,z,L,se]),(0,n.useEffect)(()=>()=>mc(j),[M]);let Je=(0,n.useCallback)(e=>{e.defaultPrevented||!e.ctrlKey&&!e.metaKey||e.key.toLowerCase()!==`s`||j.saveDisabled||(e.preventDefault(),j.save())},[j]),Ye=(0,n.useCallback)(e=>{if(!oe||e.defaultPrevented||e.key!==`Enter`||e.shiftKey||e.altKey||e.nativeEvent.isComposing)return;let t=e.target;t instanceof HTMLInputElement&&![`checkbox`,`radio`,`button`,`submit`,`file`,`color`,`range`].includes(t.type)&&t.getAttribute(`role`)!==`combobox`&&t.getAttribute(`aria-expanded`)!==`true`&&(e.preventDefault(),j.saveDisabled||j.save())},[j,oe]),Xe=(0,n.useMemo)(()=>({registerField:Be,unregisterField:Ve,clearFieldError:He,errors:Te}),[Be,Ve,He,Te]),Ze=(0,n.useMemo)(()=>({store:I,wrapperClassName:`mb-3`}),[I]),Qe=(0,n.useMemo)(()=>n.default.createElement(hc.Provider,{value:j},n.default.createElement(Cc.Provider,{value:Ze},n.default.createElement(wc.Provider,{value:Xe},typeof e==`function`?e({record:L}):e))),[e,j,Ze,L,Xe]),$e=(0,n.useMemo)(()=>Se?n.default.createElement(vr,{variant:Se.type,appearance:b?`default`:`text`,placement:b?`sticky`:`inline`,anchorRef:b,timeout:Se.type===`success`?3e3:void 0,onClose:Se.type===`success`?()=>Ce(void 0):void 0},Se.message):null,[Se,b]),et=(0,n.useMemo)(()=>{if(!re)return null;let e=re===`restore`?de:_e,t=re===`restore`?pe:ve;return n.default.createElement(vr,{variant:re===`restore`?`warning`:`info`,timeout:re===`restored`?6e3:void 0,onClose:re===`restored`?()=>W(null):void 0},n.default.createElement(`div`,{className:`flex items-start justify-between gap-3`},n.default.createElement(`div`,{className:`min-w-0`},n.default.createElement(`div`,{className:`font-medium`},e),n.default.createElement(`div`,{className:`text-sm opacity-90`},t)),n.default.createElement(`div`,{className:`flex shrink-0 items-center gap-2`},re===`restore`?n.default.createElement(n.default.Fragment,null,n.default.createElement(Cn,{label:he,variant:`warning`,onClick:()=>Re()}),n.default.createElement(Cn,{label:ge,variant:`outline-secondary`,onClick:()=>Le()})):n.default.createElement(Cn,{label:ge,variant:`outline-secondary`,onClick:()=>Le()}))))},[Le,ge,re,he,pe,de,ve,_e,Re]),tt=(0,n.useMemo)(()=>{switch(t){case`empty`:return n.default.createElement(n.default.Fragment,null,et,Qe,$e);default:return n.default.createElement(hr,{header:a||(oe?void 0:n.default.createElement(oc,{rootItem:H?k.headerAdd:k.headerEdit,trail:s||void 0})),footer:(o||$e||!H||p||m||x||!!s)&&n.default.createElement(n.default.Fragment,null,o,$e,!oe&&(p||!!s||!H)&&n.default.createElement(Sn,{className:X(O.Form.buttonSaveClass,j.saveDisabled&&`cursor-not-allowed opacity-50`),label:k.buttonSave,title:j.saveDisabled&&!ue?K:void 0,disabled:j.saveDisabled,loading:j.isSaving,onClick:e=>j.save(e)}),!oe&&(m||!H)&&n.default.createElement(Sn,{className:O.Form.buttonDeleteClass,label:k.buttonDelete,disabled:j.deleteDisabled,loading:j.isDeleting,onClick:e=>j.delete(e)}),x&&n.default.createElement(wn,{className:O.Form.buttonBackClass,label:k.buttonBack})),headerClassName:C||O.Form.Card.headerClassName,bodyClassName:w||O.Form.Card.bodyClassName,footerClassName:T||O.Form.Card.footerClassName},n.default.createElement(n.default.Fragment,null,et,Qe))}},[t,w,Qe,oe,k.buttonBack,k.buttonDelete,k.buttonSave,k.headerAdd,k.headerEdit,et,o,T,j,a,C,ue,H,K,$e,m,p,s,x,O.Form.buttonDeleteClass,O.Form.buttonSaveClass,O.Form.buttonBackClass,O.Form.Card.bodyClassName,O.Form.Card.footerClassName,O.Form.Card.headerClassName]);return n.default.createElement(Z,{className:S||O.Form.wrapperClassName},n.default.createElement(`form`,{ref:Oe,className:E,noValidate:!0,onSubmit:e=>e.preventDefault(),onKeyDownCapture:Je,onKeyDown:e=>{Je(e),Ye(e)}},tt))},Lc=`mb-1 block text-sm font-medium leading-5 text-foreground`,Rc=`mt-1 text-xs text-muted-foreground`,zc=`flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,Bc=`flex min-h-[5rem] w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,Vc=`flex w-full items-stretch`,Hc=`inline-flex shrink-0 items-center border border-input bg-muted px-3 py-1 text-sm text-muted-foreground`,Uc=`relative`,Wc=`pointer-events-none absolute left-3 top-2 z-10 origin-[0] bg-background px-1 text-xs font-medium normal-case tracking-normal text-muted-foreground transition-all duration-150 peer-placeholder-shown:top-1/2 peer-placeholder-shown:-translate-y-1/2 peer-placeholder-shown:px-0 peer-placeholder-shown:text-sm peer-placeholder-shown:font-normal peer-placeholder-shown:normal-case peer-placeholder-shown:tracking-normal peer-focus:top-2 peer-focus:-translate-y-0 peer-focus:px-1 peer-focus:text-xs peer-focus:font-medium peer-focus:tracking-normal peer-focus:text-foreground`,Gc=`pointer-events-none absolute left-3 top-2 z-10 origin-[0] bg-background px-1 text-xs font-medium normal-case tracking-normal text-muted-foreground transition-all duration-150 peer-placeholder-shown:top-2 peer-placeholder-shown:translate-y-0 peer-placeholder-shown:px-0 peer-placeholder-shown:text-sm peer-placeholder-shown:font-normal peer-placeholder-shown:normal-case peer-placeholder-shown:tracking-normal peer-focus:top-2 peer-focus:translate-y-0 peer-focus:px-1 peer-focus:text-xs peer-focus:font-medium peer-focus:tracking-normal peer-focus:text-foreground`,Kc=`peer h-14 px-3 pt-6 pb-2`,qc=`peer px-3 pt-6 pb-2`,Jc=(e,{before:t,after:n})=>X(e,t&&`!rounded-l-none`,n&&`!rounded-r-none`),Yc=({children:e,side:t})=>n.default.createElement(`span`,{className:X(Hc,t===`before`?`rounded-l-md rounded-r-none border-r-0`:`rounded-l-none rounded-r-md border-l-0`)},e),Xc=({message:e})=>n.default.createElement(`div`,{className:`mt-1 flex items-center gap-1 text-xs text-destructive`,role:`alert`,"aria-live":`polite`},n.default.createElement(Q,{name:`warning-circle`,size:12,className:`shrink-0`}),n.default.createElement(`span`,null,e)),Zc=({name:e,onChange:t,wrapperClassName:r,defaultValue:i,valueChecked:a,inheritWrapperClassName:o})=>{let s=e=>e==null?``:`${e}`,{value:c,handleChange:l,formWrapClass:u}=Ec({name:e,onChange:t,wrapperClassName:r,inputType:typeof a==`number`?`number`:`text`,defaultValue:i===void 0?void 0:s(i)===s(a)?s(a):``,inheritWrapperClassName:o});return{id:(0,n.useId)(),checked:s(c)===s(a),formWrapClass:u,handleCheckboxChange:t=>{l?.({target:{name:e,value:t.target.checked?a:``}})}}},Qc=({name:e,onChange:t=void 0,defaultValue:r=void 0,placeholder:i=void 0,label:a=void 0,type:o=`text`,required:s=!1,readOnlyAfterSet:c=!1,disabled:l=!1,before:u=void 0,after:d=void 0,afterInset:f=void 0,feedback:p=void 0,min:m=void 0,max:h=void 0,step:g=void 0,id:_=void 0,labelClassName:v=void 0,inheritWrapperClassName:y=!0,wrapperClassName:b=void 0,className:x=void 0,validator:S=void 0,labelMode:C=`default`,inputMode:w=void 0,maxLength:T=void 0,pattern:E=void 0,autoComplete:D=void 0})=>{let{value:O,handleChange:k,formWrapClass:A}=Ec({name:e,onChange:t,wrapperClassName:b,inputType:o,defaultValue:r,inheritWrapperClassName:y}),j=Tc(e,{required:s,label:a,validator:S}),M=(0,n.useId)(),N=_??M,P=Dc({name:e,value:O,handleChange:k}),F=!(C!==`floating`||!a||u||d||f),I=F?` `:i;return n.default.createElement(Z,{className:A},!F&&a&&n.default.createElement(hl,{label:a,required:s,htmlFor:N,className:v}),n.default.createElement(Z,{className:X(u||d?Vc:``,f&&`relative`,F&&Uc)},u&&n.default.createElement(Yc,{side:`before`},u),n.default.createElement(`input`,{id:N,type:o,name:e,className:Jc(X(zc,F&&Kc,j&&`border-destructive focus-visible:ring-destructive/20`,f&&`pr-9`,x),{before:u,after:d}),placeholder:I,required:s,disabled:l||c&&!W(O),value:O??``,onChange:k,min:m,max:h,step:g,inputMode:w,maxLength:T,pattern:E,autoComplete:D,onDragOver:e=>e.preventDefault(),onDrop:P}),F&&n.default.createElement(`label`,{htmlFor:N,className:X(Wc,v)},a,` `,s&&n.default.createElement(`span`,{className:`text-destructive`},`*`)),d&&n.default.createElement(Yc,{side:`after`},d),f&&n.default.createElement(`span`,{className:`pointer-events-none absolute inset-y-0 right-0 flex items-center pr-1.5 [&>*]:pointer-events-auto`},f)),j?n.default.createElement(Xc,{message:j}):p&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},p))},$c=e=>n.default.createElement(Qc,{...e,type:`text`}),el=e=>n.default.createElement(Qc,{...e,type:`number`}),tl=e=>n.default.createElement(Qc,{...e,type:`email`}),nl=e=>n.default.createElement(Qc,{autoComplete:`tel`,...e,type:`tel`}),rl=e=>{let[t,r]=(0,n.useState)(!1);return n.default.createElement(Qc,{...e,type:t?`text`:`password`,afterInset:n.default.createElement(`button`,{type:`button`,tabIndex:-1,onClick:()=>r(!t),className:`h-7 w-7 inline-flex items-center justify-center rounded text-muted-foreground hover:text-foreground transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`},n.default.createElement(Q,{name:t?`eye`:`eye-off`,size:15}))})},il=({className:e,...t})=>n.default.createElement(Qc,{...t,type:`color`,className:X(`w-10 shrink-0 cursor-pointer p-0.5`,e)}),al=e=>n.default.createElement(Qc,{...e,type:`date`}),ol=e=>n.default.createElement(Qc,{...e,type:`time`}),sl=e=>n.default.createElement(Qc,{...e,type:`datetime-local`}),cl=e=>n.default.createElement(Qc,{...e,type:`week`}),ll=e=>n.default.createElement(Qc,{...e,type:`month`}),ul=e=>n.default.createElement(Qc,{...e,type:`range`,className:X(`!border-0 !bg-transparent !shadow-none !px-0 !py-0 !h-auto cursor-pointer accent-primary`,e.className)}),dl=e=>n.default.createElement(Qc,{...e,type:`url`}),fl=({name:e,onChange:t=void 0,defaultValue:r=void 0,value:i=void 0,id:a=void 0,inheritWrapperClassName:o=!0,wrapperClassName:s=void 0})=>{let{value:c,handleChange:l}=Ec({name:e,onChange:t,wrapperClassName:s,defaultValue:r??i,inheritWrapperClassName:o}),u=(0,n.useId)(),d=a??u,f=n.default.useMemo(()=>JSON.stringify(i??null),[i]),p=n.default.useMemo(()=>JSON.stringify(c??null),[c]);return(0,n.useEffect)(()=>{i!==void 0&&f!==p&&l({target:{name:e,value:i}})},[l,e,f,p,i]),n.default.createElement(`input`,{id:d,type:`hidden`,name:e,value:typeof c==`string`?c:c==null?``:JSON.stringify(c),readOnly:!0})},pl=({name:e,onChange:t=void 0,defaultValue:r=void 0,label:i=void 0,title:a=void 0,ariaLabel:o=void 0,required:s=!1,valueChecked:c=`on`,disabled:l=!1,before:u=void 0,after:d=void 0,inheritWrapperClassName:f=!0,wrapperClassName:p=void 0,className:m=void 0})=>{let{id:h,checked:g,formWrapClass:_,handleCheckboxChange:v}=Zc({name:e,onChange:t,wrapperClassName:p,defaultValue:r,valueChecked:c,inheritWrapperClassName:f}),y=Tc(e,{required:s,label:i});return n.default.createElement(Z,{className:_},n.default.createElement(`div`,{className:`flex items-center gap-2`,title:l?a:void 0},u,n.default.createElement(`input`,{type:`checkbox`,id:h,name:e,title:a,"aria-label":o,className:X(`h-4 w-4 shrink-0 rounded-sm border border-input bg-background text-primary shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,m),checked:g,disabled:l,onChange:v}),i&&n.default.createElement(`label`,{className:X(`text-sm font-medium leading-none text-foreground`,l&&`cursor-not-allowed opacity-50`),htmlFor:h},i,s&&n.default.createElement(`span`,{className:`text-destructive`},`\xA0*`)),d),y&&n.default.createElement(Xc,{message:y}))},ml=({name:e,onChange:t=void 0,defaultValue:r=void 0,label:i=void 0,title:a=void 0,ariaLabel:o=void 0,required:s=!1,valueChecked:c=`on`,disabled:l=!1,before:u=void 0,after:d=void 0,inheritWrapperClassName:f=!0,wrapperClassName:p=void 0,className:m=void 0})=>{let{id:h,checked:g,formWrapClass:_,handleCheckboxChange:v}=Zc({name:e,onChange:t,wrapperClassName:p,defaultValue:r,valueChecked:c,inheritWrapperClassName:f}),y=Tc(e,{required:s,label:i});return n.default.createElement(Z,{className:_},n.default.createElement(`div`,{className:`flex items-center gap-2`},u,n.default.createElement(`label`,{className:X(`inline-flex items-center gap-2 select-none`,l?`cursor-not-allowed opacity-50`:`cursor-pointer`),title:l?a:void 0},n.default.createElement(`span`,{className:`relative inline-flex h-5 w-9 shrink-0 items-center`},n.default.createElement(`input`,{id:h,name:e,type:`checkbox`,title:a,"aria-label":o,checked:g,disabled:l,onChange:v,className:X(`peer absolute inset-0 m-0 h-full w-full opacity-0`,l?`cursor-not-allowed`:`cursor-pointer`)}),n.default.createElement(`span`,{"aria-hidden":`true`,className:X(`pointer-events-none absolute inset-0 rounded-full transition-colors duration-200 ease-out peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2`,g?`bg-primary`:`bg-muted-foreground/35`,m)},n.default.createElement(`span`,{className:X(`pointer-events-none absolute top-0.5 left-0.5 h-4 w-4 rounded-full bg-background shadow-sm transition-transform duration-200 ease-out`,g&&`translate-x-4`)}))),i&&n.default.createElement(`span`,{className:`text-sm font-medium leading-none text-foreground`},i,s&&n.default.createElement(`span`,{className:`text-destructive`},`\xA0*`))),d),y&&n.default.createElement(Xc,{message:y}))},hl=({label:e,required:t=!1,htmlFor:r=void 0,className:i=void 0})=>n.default.createElement(`label`,{htmlFor:r,className:X(Lc,i)},e,` `,t&&n.default.createElement(`span`,{className:`text-destructive`},`*`)),gl=({name:e,onChange:t=void 0,defaultValue:r=void 0,placeholder:i=void 0,label:a=void 0,required:o=!1,readOnlyAfterSet:s=!1,disabled:c=!1,minHeight:l=96,maxHeight:u=void 0,textareaRef:d=void 0,before:f=void 0,after:p=void 0,feedback:m=void 0,id:h=void 0,labelClassName:g=void 0,inheritWrapperClassName:_=!0,className:v=void 0,wrapperClassName:y=void 0,validator:b=void 0,onKeyDown:x=void 0,onClick:S=void 0,onBlur:C=void 0,labelMode:w=`default`})=>{let{value:T,handleChange:E,formWrapClass:D}=Ec({name:e,onChange:t,wrapperClassName:y,defaultValue:r,inheritWrapperClassName:_}),O=Tc(e,{required:o,label:a,validator:b}),k=xo({minHeight:l,maxHeight:u}),A=(0,n.useId)(),j=h??A,M=Dc({name:e,value:T,handleChange:E}),N=n.default.useRef(null),P=!(w!==`floating`||!a||f||p),F=P?` `:i;return(0,n.useEffect)(()=>{if(!N.current)return;let e=N.current;e.style.height=`auto`;let t=Math.max(e.scrollHeight,k.resolvedMinHeight),n=k.resolvedMaxHeight?Math.min(t,k.resolvedMaxHeight):t;e.style.minHeight=`${k.resolvedMinHeight}px`,e.style.maxHeight=k.resolvedMaxHeight?`${k.resolvedMaxHeight}px`:``,e.style.height=`${n}px`,e.style.overflowY=k.resolvedMaxHeight&&t>k.resolvedMaxHeight?`auto`:`hidden`},[T,k.resolvedMinHeight,k.resolvedMaxHeight]),n.default.createElement(Z,{className:D},!P&&a&&n.default.createElement(hl,{required:o,label:a,htmlFor:j,className:g}),n.default.createElement(Z,{className:X(f||p?Vc:``,P&&Uc)},f&&n.default.createElement(Yc,{side:`before`},f),n.default.createElement(`textarea`,{id:j,name:e,className:Jc(X(Bc,`resize-none`,P&&qc,O&&`border-destructive focus-visible:ring-destructive/20`,v),{before:f,after:p}),ref:e=>{if(N.current=e,typeof d==`function`){d(e);return}d&&typeof d==`object`&&`current`in d&&(d.current=e)},placeholder:F,required:o,disabled:c||s&&!W(T),value:T??``,onChange:E,onKeyDown:x,onClick:S,onBlur:C,onDragOver:e=>e.preventDefault(),onDrop:M}),P&&n.default.createElement(`label`,{htmlFor:j,className:X(Gc,g)},a,` `,o&&n.default.createElement(`span`,{className:`text-destructive`},`*`)),p&&n.default.createElement(Yc,{side:`after`},p)),O?n.default.createElement(Xc,{message:O}):m&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},m))},_l=({children:e,onClick:t=void 0,label:r=void 0,activeIndices:i=void 0,draggable:a=void 0,onDrop:o=void 0,disabledIndices:s=void 0,loadingIndices:c=void 0,before:l=void 0,after:u=void 0,wrapperClassName:d=void 0,className:f=void 0,itemClassName:p=void 0})=>{let m=X(`flex flex-col divide-y divide-border rounded-md border bg-card`,f),h=e=>{let t=e=>e==null||typeof e==`boolean`?``:typeof e==`string`||typeof e==`number`?`${e}`:Array.isArray(e)?e.map(t).join(` `):n.default.isValidElement(e)?t(e.props.children):``;return t(e).replace(/\s+/g,` `).trim()},g=(e,t)=>{e.dataTransfer.setData(`text/plain`,o?.(t)??t)};return n.default.createElement(Z,{className:d},l,r&&n.default.createElement(`div`,null,r),n.default.createElement(`div`,{className:m},e.map((e,r)=>{let o=i?.includes(r),l=s?.includes(r),u=c?.includes(r),d=X(`flex items-center gap-2 px-3 py-2 text-sm transition-colors`,t&&`cursor-pointer hover:bg-accent hover:text-accent-foreground`,o&&`bg-primary/8 text-foreground`,l&&`pointer-events-none opacity-50`,u&&`animate-pulse`,p);return t?n.default.createElement(`div`,{key:r,onClick:e=>{!u&&!ce(e)&&t(e,r)},className:d,style:{cursor:`pointer`}},e):n.default.createElement(`span`,{key:r,className:d,draggable:a,onDragStart:a?t=>g(t,h(e)):void 0,style:{cursor:a?`grab`:`default`}},a&&n.default.createElement(Q,{name:`grip-vertical`}),e)})),u)},vl=class extends Error{reason;constructor(e,t,n){super(t??e,n),this.name=`AuthFlowError`,this.reason=e}},yl=()=>Y(`access`),bl={"auth/invalid-credential":`credentials`,"auth/invalid-login-credentials":`credentials`,"auth/wrong-password":`credentials`,"auth/user-not-found":`credentials`,"auth/email-already-in-use":`emailInUse`,"auth/weak-password":`weakPassword`,"auth/password-does-not-meet-requirements":`weakPassword`,"auth/invalid-email":`invalidEmail`,"auth/missing-email":`invalidEmail`,"auth/too-many-requests":`tooManyRequests`,"auth/network-request-failed":`network`,"auth/user-disabled":`disabled`,"auth/expired-action-code":`expiredLink`,"auth/invalid-action-code":`expiredLink`,"auth/popup-closed-by-user":`cancelled`,"auth/cancelled-popup-request":`cancelled`,"auth/user-cancelled":`cancelled`,"auth/invalid-verification-code":`invalidCode`,"auth/code-expired":`invalidCode`,"auth/operation-not-allowed":`notSupported`},xl={invalid_credentials:`credentials`,email_exists:`emailInUse`,user_already_exists:`emailInUse`,weak_password:`weakPassword`,same_password:`weakPassword`,email_address_invalid:`invalidEmail`,over_request_rate_limit:`tooManyRequests`,over_email_send_rate_limit:`tooManyRequests`,otp_expired:`invalidCode`,user_banned:`disabled`,email_provider_disabled:`notSupported`,otp_disabled:`notSupported`,signup_disabled:`notSupported`};function Sl(e){if(e instanceof vl)return e.reason;let t=e;if(!t||typeof t!=`object`)return`generic`;if(typeof t.reason==`string`&&t.reason in Cl)return t.reason;let n=typeof t.code==`string`?t.code:``;return bl[n]?bl[n]:xl[n]?xl[n]:t.status===429?`tooManyRequests`:t.name===`TypeError`&&/fetch|network/i.test(String(t.message??``))?`network`:`generic`}var Cl={credentials:`errorCredentials`,emailInUse:`errorEmailInUse`,weakPassword:`errorWeakPassword`,invalidEmail:`errorInvalidEmail`,tooManyRequests:`errorTooManyRequests`,network:`errorNetwork`,invalidCode:`errorInvalidCode`,expiredLink:`errorExpiredLink`,disabled:`errorDisabled`,cancelled:`errorCancelled`,notSupported:`errorNotSupported`,generic:`errorGeneric`};function wl(e,t){return t[Cl[Sl(e)]]}function Tl(e){let t=yl(),[r,i]=(0,n.useState)(!1),[a,o]=(0,n.useState)(null),[s,c]=(0,n.useState)(null),l=(0,n.useRef)(!0);return(0,n.useEffect)(()=>(l.current=!0,()=>{l.current=!1}),[]),{pending:r,error:a,reason:s,run:(0,n.useCallback)(async n=>{i(!0),o(null),c(null);try{return{ok:!0,value:await n()}}catch(n){return l.current&&(c(Sl(n)),o(e?.(n)??wl(n,t))),{ok:!1}}finally{l.current&&i(!1)}},[e,t]),clear:(0,n.useCallback)(()=>{o(null),c(null)},[])}}var El=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function Dl(e,t){if(!e.trim())return t.emailRequired;if(!El.test(e.trim()))return t.emailInvalid}function Ol(e,t,n){let r=t.minLength??8;return[{id:`length`,label:J(n.ruleLength,{min:r}),met:e.length>=r},...t.number?[{id:`number`,label:n.ruleNumber,met:/\d/.test(e)}]:[],...t.mixedCase?[{id:`case`,label:n.ruleCase,met:/[a-z]/.test(e)&&/[A-Z]/.test(e)}]:[],...t.symbol?[{id:`symbol`,label:n.ruleSymbol,met:/[^A-Za-z0-9\s]/.test(e)}]:[]]}function kl(e){requestAnimationFrame(()=>{e?.querySelector(`[aria-invalid="true"]`)?.focus()})}function Al(e){let[t,r]=(0,n.useState)(0);return(0,n.useEffect)(()=>{if(t<=0)return;let e=setTimeout(()=>r(e=>e-1),1e3);return()=>clearTimeout(e)},[t]),[t,(0,n.useCallback)(()=>r(e),[e])]}var jl=X(zc,`h-11 text-base sm:h-10 sm:text-sm`),Ml=n.default.forwardRef(function({label:e,value:t,onChange:r,error:i,hint:a,labelAside:o,inset:s,id:c,className:l,...u},d){let f=(0,n.useId)(),p=c??f,m=`${p}-error`,h=`${p}-hint`,g=[i?m:null,a?h:null].filter(Boolean).join(` `)||void 0;return n.default.createElement(`div`,{className:`space-y-1.5`},n.default.createElement(`div`,{className:`flex items-baseline justify-between gap-3`},n.default.createElement(`label`,{htmlFor:p,className:X(Lc,`mb-0`)},e),o),n.default.createElement(`div`,{className:X(s&&`relative`)},n.default.createElement(`input`,{ref:d,id:p,value:t,onChange:e=>r(e.target.value),"aria-invalid":i?!0:void 0,"aria-describedby":g,className:X(jl,i&&`border-destructive focus-visible:ring-destructive`,s&&`pr-11`,l),...u}),s&&n.default.createElement(`span`,{className:`absolute inset-y-0 right-0 flex items-center pr-1`},s)),i&&n.default.createElement(`p`,{id:m,className:`flex items-center gap-1.5 text-sm text-foreground`},n.default.createElement(Q,{name:`warning-circle`,size:14,className:`shrink-0 text-destructive`}),n.default.createElement(`span`,null,i)),a&&n.default.createElement(`div`,{id:h},a))}),Nl=n.default.forwardRef(function({rules:e,value:t,...r},i){let a=yl(),[o,s]=(0,n.useState)(!1),c=e?Ol(t,e,a):null;return n.default.createElement(Ml,{ref:i,...r,value:t,type:o?`text`:`password`,autoCapitalize:`none`,autoCorrect:`off`,spellCheck:!1,inset:n.default.createElement(`button`,{type:`button`,onClick:()=>s(e=>!e),"aria-label":o?a.hidePassword:a.showPassword,"aria-pressed":o,title:o?a.hidePassword:a.showPassword,className:`inline-flex h-9 w-9 items-center justify-center rounded-md text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`},n.default.createElement(Q,{name:o?`eye-off`:`eye`,size:16})),hint:c&&n.default.createElement(`div`,{className:`pt-0.5`},n.default.createElement(`p`,{className:`sr-only`},a.passwordRules),n.default.createElement(`ul`,{className:`flex flex-wrap gap-x-4 gap-y-1 text-xs`},c.map(e=>n.default.createElement(`li`,{key:e.id,className:X(`flex items-center gap-1.5 transition-colors`,e.met?`text-foreground`:`text-muted-foreground`)},e.met?n.default.createElement(Q,{name:`check`,size:12,className:`shrink-0 text-success`}):n.default.createElement(`span`,{"aria-hidden":`true`,className:`mx-[3px] h-1.5 w-1.5 shrink-0 rounded-full bg-muted-foreground/50`}),n.default.createElement(`span`,null,e.label),n.default.createElement(`span`,{className:`sr-only`},e.met?a.ruleMet:a.ruleNotMet)))))})}),Pl=({pending:e,children:t,disabled:r})=>n.default.createElement(`button`,{type:`submit`,disabled:r||e,"aria-busy":e||void 0,className:X(`btn`,cn,`h-11 w-full text-base sm:h-10 sm:text-sm`)},e&&n.default.createElement(Fl,null),t),Fl=({className:e})=>n.default.createElement(`span`,{"aria-hidden":`true`,className:X(`inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`,e)}),Il=({message:e})=>n.default.createElement(`div`,{role:`alert`,"aria-live":`assertive`},e&&n.default.createElement(`div`,{className:`flex items-start gap-2 rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2.5 text-sm text-foreground`},n.default.createElement(Q,{name:`warning-circle`,size:16,className:`mt-0.5 shrink-0 text-destructive`}),n.default.createElement(`span`,null,e))),Ll=({message:e})=>n.default.createElement(`div`,{role:`status`,"aria-live":`polite`},e&&n.default.createElement(`div`,{className:`flex items-start gap-2 rounded-md border border-border bg-muted px-3 py-2.5 text-sm text-foreground`},n.default.createElement(Q,{name:`check-circle`,size:16,className:`mt-0.5 shrink-0 text-success`}),n.default.createElement(`span`,null,e))),Rl=`rounded-sm font-medium text-primary underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:text-muted-foreground disabled:no-underline`,zl=({to:e,children:t,className:i})=>typeof e==`string`?/^[a-z][a-z0-9+.-]*:/i.test(e)?n.default.createElement(`a`,{href:e,className:X(Rl,i)},t):n.default.createElement(r.Link,{to:e,className:X(Rl,i)},t):n.default.createElement(`button`,{type:`button`,onClick:e,className:X(Rl,i)},t),Bl=({onClick:e,disabled:t,children:r,className:i})=>n.default.createElement(`button`,{type:`button`,onClick:e,disabled:t,className:X(Rl,`text-sm`,i)},r),Vl=({label:e})=>n.default.createElement(`div`,{className:`flex items-center gap-3 text-xs uppercase tracking-wide text-muted-foreground`,role:`separator`},n.default.createElement(`span`,{className:`h-px flex-1 bg-border`}),n.default.createElement(`span`,null,e),n.default.createElement(`span`,{className:`h-px flex-1 bg-border`})),Hl=({text:e,link:t,label:r})=>t?n.default.createElement(`p`,{className:`text-center text-sm text-muted-foreground`},e,` `,n.default.createElement(zl,{to:t},r)):null,Ul={google:`Google`,apple:`Apple`,github:`GitHub`,microsoft:`Microsoft`,facebook:`Facebook`,twitter:`X`,x:`X`,gitlab:`GitLab`,linkedin:`LinkedIn`},Wl={google:()=>n.default.createElement(`svg`,{viewBox:`0 0 48 48`,width:`18`,height:`18`,"aria-hidden":`true`},n.default.createElement(`path`,{fill:`#FFC107`,d:`M43.611 20.083H42V20H24v8h11.303c-1.649 4.657-6.08 8-11.303 8-6.627 0-12-5.373-12-12s5.373-12 12-12c3.059 0 5.842 1.154 7.961 3.039l5.657-5.657C34.046 6.053 29.268 4 24 4 12.955 4 4 12.955 4 24s8.955 20 20 20 20-8.955 20-20c0-1.341-.138-2.65-.389-3.917z`}),n.default.createElement(`path`,{fill:`#FF3D00`,d:`M6.306 14.691l6.571 4.819C14.655 15.108 18.961 12 24 12c3.059 0 5.842 1.154 7.961 3.039l5.657-5.657C34.046 6.053 29.268 4 24 4 16.318 4 9.656 8.337 6.306 14.691z`}),n.default.createElement(`path`,{fill:`#4CAF50`,d:`M24 44c5.166 0 9.86-1.977 13.409-5.192l-6.19-5.238A11.91 11.91 0 0 1 24 36c-5.202 0-9.619-3.317-11.283-7.946l-6.522 5.025C9.505 39.556 16.227 44 24 44z`}),n.default.createElement(`path`,{fill:`#1976D2`,d:`M43.611 20.083H42V20H24v8h11.303a12.04 12.04 0 0 1-4.087 5.571l.003-.002 6.19 5.238C36.971 39.205 44 34 44 24c0-1.341-.138-2.65-.389-3.917z`})),apple:()=>n.default.createElement(`svg`,{viewBox:`0 0 24 24`,width:`18`,height:`18`,"aria-hidden":`true`,fill:`currentColor`},n.default.createElement(`path`,{d:`M16.365 1.43c0 1.14-.493 2.27-1.177 3.08-.744.9-1.99 1.57-2.987 1.57-.12 0-.23-.02-.3-.03-.01-.06-.04-.22-.04-.39 0-1.15.572-2.27 1.206-2.98.804-.94 2.142-1.64 3.248-1.68.03.13.05.28.05.43zm4.565 15.71c-.03.07-.463 1.58-1.518 3.12-.945 1.34-1.94 2.71-3.43 2.71-1.517 0-1.9-.88-3.63-.88-1.698 0-2.302.91-3.67.91-1.377 0-2.332-1.26-3.428-2.8-1.287-1.82-2.323-4.63-2.323-7.28 0-4.28 2.797-6.55 5.552-6.55 1.448 0 2.675.95 3.6.95.865 0 2.222-1.01 3.902-1.01.613 0 2.886.06 4.374 2.19-.13.09-2.383 1.37-2.383 4.19 0 3.26 2.854 4.42 2.955 4.45z`})),github:()=>n.default.createElement(`svg`,{viewBox:`0 0 16 16`,width:`18`,height:`18`,"aria-hidden":`true`,fill:`currentColor`},n.default.createElement(`path`,{d:`M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z`})),microsoft:()=>n.default.createElement(`svg`,{viewBox:`0 0 21 21`,width:`18`,height:`18`,"aria-hidden":`true`},n.default.createElement(`rect`,{x:`0`,y:`0`,width:`10`,height:`10`,fill:`#F25022`}),n.default.createElement(`rect`,{x:`11`,y:`0`,width:`10`,height:`10`,fill:`#7FBA00`}),n.default.createElement(`rect`,{x:`0`,y:`11`,width:`10`,height:`10`,fill:`#00A4EF`}),n.default.createElement(`rect`,{x:`11`,y:`11`,width:`10`,height:`10`,fill:`#FFB900`}))};function Gl(e){let t=typeof e==`string`?{id:e}:e,r=t.id,i=Wl[r.toLowerCase()];return{id:r,label:t.label??Ul[r.toLowerCase()]??r.charAt(0).toUpperCase()+r.slice(1),icon:t.icon??(i?n.default.createElement(i,null):null)}}function Kl({providers:e,onSelect:t,pending:r,disabled:i}){let a=yl();return n.default.createElement(`div`,{className:`grid gap-2.5`},e.map(e=>{let o=Gl(e),s=r===o.id;return n.default.createElement(`button`,{key:o.id,type:`button`,onClick:()=>t(o.id),disabled:i||!!r,"aria-busy":s||void 0,className:X(`btn`,`h-11 w-full gap-2.5 border border-input bg-background text-base text-foreground shadow-sm hover:bg-accent hover:text-accent-foreground sm:h-10 sm:text-sm`)},s?n.default.createElement(Fl,null):o.icon,n.default.createElement(`span`,null,J(a.continueWith,{provider:o.label})))}))}function ql({value:e,onChange:t,onComplete:r,length:i=6,mode:a=`numeric`,disabled:o,invalid:s,autoFocus:c,label:l,describedBy:u,className:d}){let f=yl(),p=(0,n.useRef)([]),m=a===`numeric`?/[0-9]/:/[0-9a-z]/i,h=e=>Array.from(e).filter(e=>m.test(e)).join(``).slice(0,i),g=Array.from({length:i},(t,n)=>e[n]??``),_=(0,n.useRef)(null);(0,n.useEffect)(()=>{c&&p.current[Math.min(e.length,i-1)]?.focus()},[]),(0,n.useEffect)(()=>{e.length===i&&_.current!==e&&(_.current=e,r?.(e)),e.length<i&&(_.current=null)},[e,i,r]);let v=e=>{let t=p.current[Math.max(0,Math.min(e,i-1))];t?.focus(),t?.select()},y=(n,r)=>{let a=h(r);if(!a)return;let o=(e.slice(0,n)+a).slice(0,i),s=a.length===1?e.slice(n+1):``,c=h(o+s.slice(0,Math.max(0,i-o.length)));t(c),v(Math.min(n+a.length,c.length))},b=(n,r)=>{r.key===`Backspace`?(r.preventDefault(),g[n]?t(e.slice(0,n)+e.slice(n+1)):n>0&&(t(e.slice(0,n-1)+e.slice(n)),v(n-1))):r.key===`ArrowLeft`?(r.preventDefault(),v(n-1)):r.key===`ArrowRight`?(r.preventDefault(),v(n+1)):r.key===`Home`?(r.preventDefault(),v(0)):r.key===`End`&&(r.preventDefault(),v(e.length))},x=l??f.codeLabel,S=i%2==0&&i>=6?i/2:-1;return n.default.createElement(`div`,{role:`group`,"aria-label":x,"aria-describedby":u,dir:`ltr`,className:X(`flex items-center justify-center gap-2`,d)},g.map((r,c)=>n.default.createElement(n.default.Fragment,{key:c},c===S&&n.default.createElement(`span`,{"aria-hidden":`true`,className:`h-px w-2 shrink-0 bg-muted-foreground/60 sm:w-3`}),n.default.createElement(`input`,{ref:e=>{p.current[c]=e},value:r,autoComplete:c===0?`one-time-code`:`off`,inputMode:a===`numeric`?`numeric`:`text`,pattern:a===`numeric`?`[0-9]*`:void 0,autoCapitalize:`characters`,spellCheck:!1,maxLength:c===0?i:1,disabled:o,"aria-label":J(f.codeDigit,{index:c+1,length:i}),"aria-invalid":s||void 0,onFocus:e=>e.target.select(),onChange:n=>{let i=n.target.value;if(!i){t(e.slice(0,c)+e.slice(c+1));return}y(c,i.length>1&&r&&i.startsWith(r)?i.slice(1):i)},onKeyDown:e=>b(c,e),onPaste:e=>{e.preventDefault(),y(c,e.clipboardData.getData(`text`))},className:X(`h-12 w-10 min-w-0 rounded-md border bg-background text-center text-xl font-semibold tabular-nums text-foreground shadow-sm transition-colors sm:w-11`,`focus-visible:border-ring focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40`,`disabled:cursor-not-allowed disabled:opacity-50`,s?`border-destructive`:`border-input`,a===`alphanumeric`&&`uppercase`)}))))}function Jl({email:e,onVerify:t,onResend:r,onChangeEmail:i,length:a=6,mode:o=`numeric`,resendSeconds:s=30,title:c,description:l,onVerified:u,errorMessage:d,brand:f,toolbar:p,footer:m,bare:h,className:g}){let _=yl(),[v,y]=(0,n.useState)(``),[b,x]=(0,n.useState)(null),S=Tl(d),C=Tl(d),[w,T]=Al(s),E=(0,n.useId)(),D=(0,n.useCallback)(async e=>{e.length<a||S.pending||(x(null),(await S.run(()=>t(e))).ok?u?.():y(``))},[a,t,u,S]),O=async()=>{r&&(x(null),(await C.run(r)).ok&&(y(``),x(_.resent),T()))},k=l??(e?J(_.codeDescription,{length:a,email:e}):void 0);return n.default.createElement(or,{bare:h,brand:f,toolbar:p,footer:m,className:g,icon:`mail-open`,title:c??_.codeTitle,description:k&&n.default.createElement(`span`,{id:E},e&&typeof k==`string`?n.default.createElement(Yl,{text:k,email:e}):k)},n.default.createElement(`form`,{className:`space-y-5`,noValidate:!0,onSubmit:e=>{e.preventDefault(),D(v)}},n.default.createElement(ql,{value:v,onChange:e=>{S.clear(),y(e)},onComplete:e=>void D(e),length:a,mode:o,disabled:S.pending,invalid:!!S.error,autoFocus:!0,describedBy:k?E:void 0}),n.default.createElement(Il,{message:S.error??C.error}),n.default.createElement(Ll,{message:b}),n.default.createElement(Pl,{pending:S.pending,disabled:v.length<a},_.codeSubmit)),(r||i)&&n.default.createElement(`div`,{className:`mt-6 flex flex-col items-center gap-2 text-sm text-muted-foreground`},r&&n.default.createElement(`p`,null,_.codeNotReceived,` `,n.default.createElement(Bl,{onClick:O,disabled:w>0||C.pending},w>0?J(_.resendIn,{seconds:w}):_.resend)),i&&n.default.createElement(Bl,{onClick:i},_.useOtherEmail)))}function Yl({text:e,email:t}){let r=e.indexOf(t);return r<0?n.default.createElement(n.default.Fragment,null,e):n.default.createElement(n.default.Fragment,null,e.slice(0,r),n.default.createElement(`strong`,{className:`break-words font-medium text-foreground`},t),e.slice(r+t.length))}function Xl({onPasswordSignIn:e,onRequestCode:t,onVerifyCode:r,providers:i=[],onProviderSignIn:a,method:o,codeLength:s=6,resendSeconds:c=30,forgotPasswordLink:l,signUpLink:u,defaultEmail:d=``,appName:f,title:p,description:m,onSignedIn:h,errorMessage:g,brand:_,toolbar:v,footer:y,bare:b,className:x}){let S=yl(),C=!!e,w=!!t&&!!r,T=i.length>0&&!!a,[E,D]=(0,n.useState)(o===`code`&&w?`code`:C?`password`:`code`),[O,k]=(0,n.useState)(d),[A,j]=(0,n.useState)(``),[M,N]=(0,n.useState)({}),[P,F]=(0,n.useState)(null),[I,L]=(0,n.useState)(null),R=Tl(g),z=(0,n.useRef)(null),B={brand:_,toolbar:v,footer:y,bare:b,className:x};if(P&&r&&t)return n.default.createElement(Jl,{...B,email:P,length:s,resendSeconds:c,errorMessage:g,onVerify:e=>r(P,e),onResend:()=>t(P),onChangeEmail:()=>F(null),onVerified:h});let ee=async n=>{n.preventDefault();let r={email:Dl(O,S),password:E===`password`&&!A?S.passwordRequired:void 0};if(N(r),r.email||r.password){kl(z.current);return}let i=O.trim();E===`password`&&e?(await R.run(()=>e({email:i,password:A}))).ok&&h?.():t&&(await R.run(()=>t(i))).ok&&F(i)},V=async e=>{if(!a)return;L(e);let t=await R.run(()=>a(e));L(null),t.ok&&h?.()},H=()=>{R.clear(),N({}),D(e=>e===`password`?`code`:`password`)},U=C||w;return n.default.createElement(or,{...B,title:p??(f?J(S.signInTitleApp,{app:f}):S.signInTitle),description:m??S.signInDescription,below:n.default.createElement(Hl,{text:S.noAccount,link:u,label:S.signUpLink})},n.default.createElement(`div`,{className:`space-y-6`},T&&n.default.createElement(Kl,{providers:i,onSelect:V,pending:I,disabled:R.pending}),T&&U&&n.default.createElement(Vl,{label:S.or}),!U&&n.default.createElement(Il,{message:R.error}),U&&n.default.createElement(`form`,{ref:z,className:`space-y-4`,noValidate:!0,onSubmit:ee},n.default.createElement(Ml,{label:S.email,type:`email`,name:`email`,value:O,onChange:e=>{k(e),M.email&&N(e=>({...e,email:void 0}))},autoComplete:E===`password`?`username`:`email`,autoCapitalize:`none`,spellCheck:!1,error:M.email,autoFocus:!d&&!T,required:!0}),E===`password`&&n.default.createElement(Nl,{label:S.password,name:`password`,value:A,onChange:e=>{j(e),M.password&&N(e=>({...e,password:void 0}))},autoComplete:`current-password`,error:M.password,autoFocus:!!d,required:!0,labelAside:l&&n.default.createElement(zl,{to:l,className:`text-sm`},S.forgotPassword)}),n.default.createElement(Il,{message:R.error}),n.default.createElement(Pl,{pending:R.pending&&!I},E===`password`?S.signInSubmit:S.codeRequest),C&&w&&n.default.createElement(`div`,{className:`text-center`},n.default.createElement(Bl,{onClick:H},E===`password`?S.useCode:S.usePassword)))))}var Zl=new WeakSet;function Ql(e){let t=Ln(e),[r,i]=(0,n.useState)(()=>Zl.has(t)||!t.whenReady),[a,o]=(0,n.useState)(()=>t.getUser());return(0,n.useEffect)(()=>{let e=!0;o(t.getUser());let n=t.onAuthChange(t=>{e&&o(t)});return t.whenReady&&!Zl.has(t)?t.whenReady().catch(()=>void 0).then(()=>{Zl.add(t),e&&(o(t.getUser()),i(!0))}):i(!0),()=>{e=!1,n()}},[t]),(0,n.useMemo)(()=>({user:a,ready:r,signOut:()=>t.signOut(),adapter:t}),[t,r,a])}var $l=e=>e.replace(/Auth$/,``).toLowerCase();function eu(e,t={}){let r=Ln(e),i=(0,n.useContext)(Fn),a=e??i?.defaultKey??``,{verifyEmailPath:o,resetPasswordPath:s}=t;return(0,n.useMemo)(()=>{let e=typeof r.sendPasswordReset==`function`||typeof r.signUp==`function`,t=typeof r.requestEmailCode==`function`&&typeof r.verifyEmailCode==`function`,n=r.signIn?.bind(r);return{adapter:r,signIn:{...e&&n?{onPasswordSignIn:({email:e,password:t})=>n({method:`password`,email:e,password:t})}:{},...t?{onRequestCode:e=>r.requestEmailCode(e),onVerifyCode:(e,t)=>r.verifyEmailCode(e,t)}:{},...n?e||t?{onProviderSignIn:e=>n({method:`oauth`,provider:e})}:{providers:[$l(a)],onProviderSignIn:()=>n()}:{}},signUp:r.signUp?{onSignUp:e=>r.signUp({...e,redirectTo:o}),...r.sendEmailVerification?{onResendVerification:e=>r.sendEmailVerification({email:e,redirectTo:o})}:{}}:void 0,forgotPassword:r.sendPasswordReset?{onSendReset:e=>r.sendPasswordReset(e,{redirectTo:s})}:void 0,resetPassword:e=>({invalidLink:!r.confirmPasswordReset,onResetPassword:t=>r.confirmPasswordReset?r.confirmPasswordReset(e??``,t):Promise.reject(Error(`confirmPasswordReset is not supported`))}),verifyEmail:{...r.verifyEmail?{onVerify:e=>r.verifyEmail(e)}:{},...r.sendEmailVerification?{onResend:()=>r.sendEmailVerification({redirectTo:o})}:{}}}},[r,a,o,s])}function tu(e=typeof window<`u`?window.location.search:``){let t=typeof e==`string`?new URLSearchParams(e):e;return t.get(`oobCode`)??t.get(`token_hash`)??t.get(`code`)}var nu=()=>{let e=Y(`common`);return n.default.createElement(`div`,{className:`flex min-h-dvh items-center justify-center bg-background text-muted-foreground`,role:`status`,"aria-label":e.loading},n.default.createElement(Fl,{className:`h-6 w-6`}))},ru=({provider:e})=>{let t=eu(e);return n.default.createElement(Xl,t.signIn)},iu=({user:e,signOut:t})=>{let r=yl(),i=Tl();return n.default.createElement(ar,{icon:`shield-warning`,tone:`warning`,title:r.deniedTitle,description:J(r.denied,{user:e.email??e.displayName??e.uid??``})},n.default.createElement(`div`,{className:`space-y-4`},n.default.createElement(Il,{message:i.error}),n.default.createElement(`button`,{type:`button`,onClick:()=>void i.run(t),disabled:i.pending,className:`btn btn-primary h-11 w-full text-base sm:h-10 sm:text-sm`},i.pending&&n.default.createElement(Fl,null),r.signInOther)))};function au({children:e,fallback:t,provider:r,loading:i,allow:a,denied:o}){let s=Ql(r),{user:c,ready:l}=s,[u,d]=(0,n.useState)(null),f=c?c.uid??c.email??`signed-in`:null;if((0,n.useEffect)(()=>{if(!c||!a){d(null);return}let e=!0;return d(null),Promise.resolve().then(()=>a(c)).catch(()=>!1).then(t=>{e&&d(!!t)}),()=>{e=!1}},[f,a]),!l)return n.default.createElement(n.default.Fragment,null,i??n.default.createElement(nu,null));if(!c)return n.default.createElement(n.default.Fragment,null,t??n.default.createElement(ru,{provider:r}));if(a){if(u===null)return n.default.createElement(n.default.Fragment,null,i??n.default.createElement(nu,null));if(!u)return n.default.createElement(n.default.Fragment,null,o??n.default.createElement(iu,{user:c,signOut:s.signOut}))}return n.default.createElement(n.default.Fragment,null,e)}var ou=({url:e=void 0,label:t=void 0,logo:i=void 0,width:a=void 0,height:o=36,wrapperClassName:s=void 0,className:c=void 0,logoClassName:l=void 0,labelClassName:u=void 0})=>{let d=q(`brand`),f=n.default.createElement(n.default.Fragment,null,n.default.createElement(Ss,{src:i||`data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZD0iTTUwIDE1IEw4NSA1MCBMNTAgODUgTDE1IDUwIFoiIGZpbGw9IiNjY2MiIG9wYWNpdHk9IjAuMiIvPjxwYXRoIGQ9Ik01MCAzMCBMNzAgNTAgTDUwIDcwIEwzMCA1MCBaIiBmaWxsPSIjY2NjIi8+PC9zdmc+`,width:a,height:o}),t&&n.default.createElement(`span`,{className:u||d.Brand.labelClassName},t));return n.default.createElement(Z,{className:s},n.default.createElement(`div`,{className:c||d.Brand.className},e?n.default.createElement(r.Link,{to:e,className:l||d.Brand.logoClassName},f):n.default.createElement(`span`,{className:l||d.Brand.logoClassName},f)))},su=({children:e,showIndicators:t=!1,showControls:r=!1,showCaption:i=!1,dark:a=!1,autoPlay:o=void 0,initialSlide:s=0,renderCaption:c=void 0,onSlideClick:l=void 0})=>{let u=q(`carousel`),d=Y(`common`),f=n.default.Children.toArray(e).filter(n.default.isValidElement),p=f.length;t||=u.Carousel.showIndicators,r||=u.Carousel.showControls,i||=u.Carousel.showCaption,a||=u.Carousel.dark;let m=u.Carousel.autoPlay;o||=typeof m==`object`?m:void 0;let h=p>0?Math.min(Math.max(s,0),p-1):0,[g,_]=n.default.useState(!1),[v,y]=n.default.useState(h);n.default.useEffect(()=>{y(h)},[h]);let b=n.default.useCallback(e=>{if(!(p<=0)){if(o?.wrap??!0){let t=(e+p)%p;y(t);return}y(Math.min(Math.max(e,0),p-1))}},[o?.wrap,p]),x=n.default.useCallback(()=>b(v-1),[v,b]),S=n.default.useCallback(()=>b(v+1),[v,b]);n.default.useEffect(()=>{if(!o||p<=1||o.pause===`hover`&&g)return;let e=window.setInterval(()=>{y(e=>{let t=e+1;return t<p?t:o.wrap?0:e})},o.interval||2e3);return()=>window.clearInterval(e)},[o,g,p]);let C=e=>{if(!i)return null;if(c)return c(e);let{alt:t,description:r}=e.props;return!t&&!r?null:n.default.createElement(`div`,{className:X(`absolute inset-x-4 bottom-4 hidden rounded-lg px-4 py-3 md:block`,a?`bg-white/80 text-slate-900`:`bg-black/60 text-white`)},t&&n.default.createElement(`h5`,{className:`text-sm font-semibold`},t),r&&n.default.createElement(`p`,{className:`mt-1 text-sm opacity-90`},r))};return p===0?null:n.default.createElement(`div`,{className:`relative overflow-hidden rounded-xl`,onMouseEnter:()=>_(!0),onMouseLeave:()=>_(!1)},n.default.createElement(`div`,{className:X(`relative min-h-0`,l&&`cursor-pointer`),onClick:l},f.map((e,o)=>{let s=o===v;return n.default.createElement(`div`,{key:o,"aria-hidden":!s,className:X(`relative transition-opacity duration-300 ease-out`,s?`opacity-100`:`pointer-events-none absolute inset-0 opacity-0`)},e,(t||r||i)&&g&&n.default.createElement(`div`,{className:X(`pointer-events-none absolute inset-0 opacity-20`,a?`bg-white`:`bg-black`)}),g&&C(e))})),t&&p>1&&n.default.createElement(`ol`,{className:`absolute inset-x-0 bottom-4 z-10 flex items-center justify-center gap-2 px-4`},f.map((e,t)=>n.default.createElement(`li`,{key:t},n.default.createElement(`button`,{type:`button`,"aria-label":`${d.pageNavigation} ${t+1}`,"aria-current":t===v?`true`:void 0,onClick:()=>b(t),className:X(`h-2.5 w-2.5 rounded-full border transition-all`,t===v?`scale-110 border-white bg-white`:`border-white/60 bg-white/30 hover:bg-white/60`)})))),r&&g&&p>1&&n.default.createElement(n.default.Fragment,null,n.default.createElement(`button`,{type:`button`,"aria-label":d.previous,onClick:e=>{e.stopPropagation(),x()},className:`absolute left-3 top-1/2 z-10 inline-flex h-10 w-10 -translate-y-1/2 items-center justify-center rounded-full bg-background/85 text-foreground shadow-md transition-colors hover:bg-background`},n.default.createElement(Q,{name:`chevron-left`,size:18})),n.default.createElement(`button`,{type:`button`,"aria-label":d.next,onClick:e=>{e.stopPropagation(),S()},className:`absolute right-3 top-1/2 z-10 inline-flex h-10 w-10 -translate-y-1/2 items-center justify-center rounded-full bg-background/85 text-foreground shadow-md transition-colors hover:bg-background`},n.default.createElement(Q,{name:`chevron-right`,size:18}))))};function cu({action:e,onDone:t}){let[r,i]=n.default.useState(!1),a=n.default.useRef(!0);return n.default.useEffect(()=>()=>{a.current=!1},[]),n.default.createElement(`button`,{type:`button`,disabled:r,onClick:async n=>{n.preventDefault(),n.stopPropagation(),i(!0);try{await e.onClick()}finally{a.current&&i(!1)}e.closeOnClick&&t()},className:X(`inline-flex items-center gap-1 rounded-sm px-2 py-1 text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-60`,e.variant===`primary`?`bg-primary text-primary-foreground hover:bg-primary/90`:`border border-border text-foreground hover:bg-accent`)},(r||e.icon)&&n.default.createElement(Q,{name:r?`loader-circle`:e.icon,size:12,className:r?`animate-spin`:void 0}),e.label)}function lu({items:e=[],badge:t,seeAllUrl:i,onMarkAllRead:a,onItemClick:o,motion:s,className:c}){let l=Y(`notifications`),u=e.length>0,[d,f]=n.default.useState(!1),p=Ht(void 0,s??`fadeDown`,s??`fadeDown`);return n.default.createElement(Ya,{trigger:n.default.createElement(Q,{name:`bell`,size:18}),triggerClassName:`flex items-center justify-center w-9 h-9 rounded-md text-muted-foreground hover:text-foreground hover:bg-accent transition-colors`,badge:t,position:`end`,placement:`auto`,menuClassName:`w-80`,motion:s,className:c,open:d,onOpenChange:f},n.default.createElement(`div`,{className:`flex items-center justify-between px-3 py-2`},n.default.createElement(`span`,{className:`text-sm font-semibold text-foreground`},l.title||`Notifications`),u&&a&&n.default.createElement(`button`,{onClick:a,className:`text-xs text-primary hover:underline transition-colors`},l.markAllRead)),n.default.createElement(eo,null),!u&&n.default.createElement(`div`,{className:`flex flex-col items-center justify-center py-8 px-4 text-center`},n.default.createElement(`div`,{className:`w-10 h-10 rounded-full bg-muted flex items-center justify-center mb-3`},n.default.createElement(Q,{name:`bell-off`,size:18,className:`text-muted-foreground`})),n.default.createElement(`p`,{className:`text-sm font-medium text-foreground mb-1`},l.empty),n.default.createElement(`p`,{className:`text-xs text-muted-foreground`},l.emptyHint)),e.map((e,t)=>{let i=()=>{o?.(e,t),f(!1)},a=n.default.createElement(n.default.Fragment,null,n.default.createElement(`div`,{className:`mt-0.5 shrink-0 w-8 h-8 rounded-full flex items-center justify-center ${e.read?`bg-muted`:`bg-primary/10`}`},n.default.createElement(Q,{name:e.icon,size:15,className:e.read?`text-muted-foreground`:`text-primary`})),n.default.createElement(`div`,{className:`flex-1 min-w-0`},n.default.createElement(`p`,{className:`text-sm leading-snug ${e.read?`text-muted-foreground`:`text-foreground font-medium`}`},e.title),e.description&&n.default.createElement(`p`,{className:`text-xs text-muted-foreground mt-0.5 break-words`},e.description),n.default.createElement(`p`,{className:`text-xs text-muted-foreground mt-0.5`},e.time)),!e.read&&n.default.createElement(`span`,{className:`mt-2 shrink-0 w-1.5 h-1.5 rounded-full bg-primary`})),s=`flex items-start gap-3 px-3 py-2.5 rounded-sm transition-colors`,c=e.url?e.external?n.default.createElement(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,onClick:i,className:X(s,`hover:bg-accent`)},a):n.default.createElement(r.Link,{to:e.url,onClick:i,className:X(s,`hover:bg-accent`)},a):n.default.createElement(`div`,{className:s},a);return n.default.createElement(`div`,{key:e.id??t,style:{...p,transitionDelay:`${t*30}ms`}},c,e.actions?.length?n.default.createElement(`div`,{className:`flex flex-wrap gap-1.5 ps-14 pe-3 pb-2.5 -mt-1`},e.actions.map(e=>n.default.createElement(cu,{key:e.label,action:e,onDone:()=>f(!1)}))):null)}),u&&i&&n.default.createElement(n.default.Fragment,null,n.default.createElement(eo,null),n.default.createElement(`div`,{className:`px-1 py-1`},n.default.createElement(r.Link,{to:i,onClick:()=>f(!1),className:`flex items-center justify-center w-full rounded-sm px-2 py-1.5 text-sm text-muted-foreground hover:text-foreground hover:bg-accent transition-colors`},l.seeAll||`See all notifications`,n.default.createElement(Q,{name:`arrow-right`,size:13,className:`ml-1.5 opacity-60`})))))}var uu=()=>n.default.createElement(`div`,{className:`inline-flex`},n.default.createElement(r.Link,{to:`/#`,"data-toggle-class":`app-header-menu-search-toggled`,"data-toggle-target":`.app`,className:`inline-flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`},n.default.createElement(`div`,{className:`flex items-center justify-center`},n.default.createElement(Q,{name:`search`,className:`h-4 w-4`}))));function du({onQueryChange:e=void 0}){let t=Y(`common`);return n.default.createElement(`div`,null,n.default.createElement(uu,null),n.default.createElement(`input`,{className:`hidden`,type:`text`,placeholder:t.search,onChange:e}))}function fu(e){return e?`current`in e?e.current??window:e:window}function pu(e){return e instanceof Window?e.scrollY:e.scrollTop}function mu({leading:e=void 0,center:t=void 0,trailing:r=void 0,children:i=void 0,sticky:a=!0,elevateOnScroll:o=!0,scrollTarget:s=void 0,scrollThreshold:c=8,className:l=void 0,innerClassName:u=void 0,leadingClassName:d=void 0,centerClassName:f=void 0,trailingClassName:p=void 0}){let m=q(`toolbar`),h=t??i,[g,_]=(0,n.useState)(!1);(0,n.useEffect)(()=>{if(!o||typeof window>`u`){_(!1);return}let e=fu(s),t=()=>_(pu(e)>c);return t(),e.addEventListener(`scroll`,t,{passive:!0}),()=>{e.removeEventListener(`scroll`,t)}},[o,s,c]);let v=(0,n.useMemo)(()=>X(`w-full border-b border-transparent transition-[background-color,border-color,box-shadow,backdrop-filter] duration-200`,m.Toolbar.wrapperClassName,a&&m.Toolbar.stickyClassName,o?g?m.Toolbar.scrolledClassName:m.Toolbar.restingClassName:m.Toolbar.scrolledClassName,l),[m,a,o,g,l]);return n.default.createElement(`header`,{className:v},n.default.createElement(`div`,{className:X(`flex min-h-14 items-center gap-3 px-4`,m.Toolbar.innerClassName,u)},e?n.default.createElement(`div`,{className:X(`flex min-w-0 items-center gap-2 shrink-0`,m.Toolbar.leadingClassName,d)},e):null,h?n.default.createElement(`div`,{className:X(`flex min-w-0 flex-1 items-center gap-3`,m.Toolbar.centerClassName,f)},h):n.default.createElement(`div`,{className:`flex-1`}),r?n.default.createElement(`div`,{className:X(`flex shrink-0 items-center gap-2`,m.Toolbar.trailingClassName,p)},r):null))}var hu=[{label:`blue`,value:`221.2 83.2% 53.3%`,hex:`#3b82f6`},{label:`violet`,value:`262.1 83.3% 57.8%`,hex:`#8b5cf6`},{label:`green`,value:`142.1 76.2% 36.3%`,hex:`#16a34a`},{label:`rose`,value:`346.8 77.2% 49.8%`,hex:`#e11d48`},{label:`orange`,value:`24.6 95% 53.1%`,hex:`#f97316`},{label:`slate`,value:`215.4 16.3% 46.9%`,hex:`#64748b`}],gu=[{label:`System`,fontSans:`-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif`,fontMono:`ui-monospace, 'SFMono-Regular', monospace`},{label:`Inter`,fontSans:`'Inter', sans-serif`,fontMono:`'JetBrains Mono', monospace`},{label:`Geist`,fontSans:`'Geist', sans-serif`,fontMono:`'Geist Mono', monospace`},{label:`Outfit`,fontSans:`'Outfit', sans-serif`,fontMono:`'JetBrains Mono', monospace`},{label:`Plus Jakarta Sans`,fontSans:`'Plus Jakarta Sans', sans-serif`,fontMono:`'Fira Code', monospace`},{label:`DM Sans`,fontSans:`'DM Sans', sans-serif`,fontMono:`'JetBrains Mono', monospace`},{label:`Nunito`,fontSans:`'Nunito', sans-serif`,fontMono:`'Fira Code', monospace`},{label:`Figtree`,fontSans:`'Figtree', sans-serif`,fontMono:`'Source Code Pro', monospace`},{label:`Poppins`,fontSans:`'Poppins', sans-serif`,fontMono:`'Fira Code', monospace`},{label:`Montserrat`,fontSans:`'Montserrat', sans-serif`,fontMono:`'Source Code Pro', monospace`}],_u=[{label:`success`,key:`success`,fgKey:`successForeground`,swatches:[{value:`142.1 76.2% 36.3%`,fgValue:`0 0% 100%`,hex:`#16a34a`},{value:`160 84% 39%`,fgValue:`0 0% 0%`,hex:`#10b981`},{value:`84 55% 46%`,fgValue:`0 0% 100%`,hex:`#65a30d`}]},{label:`warning`,key:`warning`,fgKey:`warningForeground`,swatches:[{value:`32.1 94.6% 43.7%`,fgValue:`0 0% 100%`,hex:`#d97706`},{value:`24.6 95% 53.1%`,fgValue:`0 0% 100%`,hex:`#f97316`},{value:`45 96% 48%`,fgValue:`0 0% 0%`,hex:`#eab308`}]},{label:`info`,key:`info`,fgKey:`infoForeground`,swatches:[{value:`198.6 88.7% 48.4%`,fgValue:`0 0% 100%`,hex:`#0ea5e9`},{value:`221.2 83.2% 53.3%`,fgValue:`0 0% 100%`,hex:`#3b82f6`},{value:`262.1 83.3% 57.8%`,fgValue:`0 0% 100%`,hex:`#8b5cf6`}]},{label:`danger`,key:`destructive`,fgKey:`destructiveForeground`,swatches:[{value:`0 84.2% 60.2%`,fgValue:`0 0% 100%`,hex:`#ef4444`},{value:`346.8 77.2% 49.8%`,fgValue:`0 0% 100%`,hex:`#e11d48`},{value:`0 72% 51%`,fgValue:`0 0% 100%`,hex:`#dc2626`}]}],vu=[{label:`Lucide`,value:`lucide`,description:`lucideDescription`},{label:`Phosphor`,value:`phosphor`,description:`phosphorDescription`}],yu=[{label:`weightThin`,value:`thin`},{label:`weightLight`,value:`light`},{label:`weightRegular`,value:`regular`},{label:`weightBold`,value:`bold`},{label:`weightFill`,value:`fill`}];function bu(e){return e.split(`-`).map(e=>e&&e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function xu({open:e=!0,onClose:t=void 0,surface:r=`flat`,showHeader:i=void 0,title:a=void 0,subtitle:o=void 0,headerActions:s=void 0,themeOptions:c=void 0,showModeSection:l=!0,showPrimarySection:u=!0,showRadiusSection:d=!0,showFontSection:f=!0,showStatusSection:p=!0,showThemeSection:m=!0,showIconLibrarySection:h=!0,className:g=void 0,wrapperClassName:_=void 0}){let v=Y(`themeSwitcher`),y=a===void 0?v.title:a,b=o===void 0?v.subtitle:o,{resolvedMode:x,primary:S,radius:C,fontSans:w,theme:T,colors:E,themes:D,toggleMode:O,setPrimary:k,setRadius:A,setFont:j,applyTheme:M,setTokens:N}=rt(),{providerId:P,setProvider:F,registerProvider:I}=an(),L=P===`phosphor`?`phosphor`:`lucide`,R=(0,n.useMemo)(()=>Object.keys(D).map(e=>({value:e,label:c?.[e]?.label??bu(e),description:c?.[e]?.description??v.themeDescription})),[c,D,v.themeDescription]),z=i??r===`modal`,B=n.default.createElement(`div`,{className:`flex min-w-0 items-center justify-between gap-3`},n.default.createElement(`div`,{className:`min-w-0`},n.default.createElement(`h3`,{className:`truncate text-lg font-semibold leading-none`},y),b?n.default.createElement(`div`,{className:`mt-1 truncate text-sm text-muted-foreground`},b):null),s?n.default.createElement(`div`,{className:`flex shrink-0 items-center gap-2`},s):null),ee=n.default.createElement(n.default.Fragment,null,l?n.default.createElement(`div`,null,n.default.createElement(`label`,{className:`mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground`},v.colorMode),n.default.createElement(`div`,{className:`flex gap-2`},[`light`,`dark`].map(e=>n.default.createElement(`button`,{key:e,type:`button`,onClick:()=>x!==e&&O(),className:`flex flex-1 cursor-pointer items-center justify-center gap-2 rounded-md border py-2 text-sm font-medium transition-colors ${x===e?`border-primary bg-primary/10 text-primary`:`border-border text-muted-foreground hover:bg-accent`}`},n.default.createElement(Q,{name:e===`light`?`sun`:`moon`,size:14}),v[e])))):null,u?n.default.createElement(`div`,null,n.default.createElement(`label`,{className:`mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground`},v.primaryColor),n.default.createElement(`div`,{className:`flex flex-wrap gap-2`},hu.map(e=>n.default.createElement(`button`,{key:e.label,type:`button`,onClick:()=>k(e.value),title:v[e.label],className:`h-8 w-8 cursor-pointer rounded-full border-2 transition-transform hover:scale-110 ${S===e.value?`scale-110 border-foreground`:`border-transparent`}`,style:{backgroundColor:e.hex},"aria-label":v[e.label]})))):null,d?n.default.createElement(`div`,null,n.default.createElement(`div`,{className:`mb-3 flex items-center justify-between`},n.default.createElement(`label`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground`},v.borderRadius),n.default.createElement(`span`,{className:`text-xs font-mono text-muted-foreground`},C.toFixed(2),`rem`)),n.default.createElement(`input`,{type:`range`,min:0,max:1,step:.05,value:C,onChange:e=>A(parseFloat(e.target.value)),className:`w-full accent-primary`}),n.default.createElement(`div`,{className:`mt-1 flex justify-between text-xs text-muted-foreground`},n.default.createElement(`span`,null,v.sharp),n.default.createElement(`span`,null,v.rounded))):null,f?n.default.createElement(`div`,null,n.default.createElement(`label`,{className:`mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground`},v.font),n.default.createElement(`div`,{className:`relative`},n.default.createElement(`select`,{value:(gu.find(e=>e.fontSans===w)??gu[0]).fontSans,onChange:e=>{let t=gu.find(t=>t.fontSans===e.target.value);t&&j(t.fontSans,t.fontMono)},className:`w-full appearance-none rounded-md border border-border bg-background px-3 py-2 pr-8 text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-ring`},gu.map(e=>n.default.createElement(`option`,{key:e.label,value:e.fontSans},e.label))),n.default.createElement(Q,{name:`chevron-down`,size:14,className:`pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-muted-foreground`}))):null,p?n.default.createElement(`div`,null,n.default.createElement(`label`,{className:`mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground`},v.statusColors),n.default.createElement(`div`,{className:`space-y-2`},_u.map(({label:e,key:t,fgKey:r,swatches:i})=>n.default.createElement(`div`,{key:t,className:`flex items-center gap-2`},n.default.createElement(`span`,{className:`w-14 shrink-0 text-xs text-muted-foreground`},v[e]),n.default.createElement(`div`,{className:`flex gap-1.5`},i.map(i=>n.default.createElement(`button`,{key:i.hex,type:`button`,onClick:()=>N({[t]:i.value,[r]:i.fgValue}),title:`${v[e]} - ${i.hex}`,className:`h-6 w-6 cursor-pointer rounded-full border-2 transition-transform hover:scale-110 ${E?.[t]===i.value?`scale-110 border-foreground`:`border-transparent`}`,style:{backgroundColor:i.hex},"aria-label":`${v[e]} ${i.hex}`}))))))):null,m?n.default.createElement(`div`,null,n.default.createElement(`label`,{className:`mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground`},v.theme),n.default.createElement(`div`,{className:`space-y-2`},R.map(e=>n.default.createElement(`button`,{key:e.value,type:`button`,onClick:()=>M(e.value),className:`w-full cursor-pointer rounded-md border px-3 py-2.5 text-left text-sm transition-colors ${T===e.value?`border-primary bg-primary/10`:`border-border hover:bg-accent`}`},n.default.createElement(`span`,{className:`font-medium ${T===e.value?`text-primary`:`text-foreground`}`},e.label),n.default.createElement(`span`,{className:`mt-0.5 block text-xs text-muted-foreground`},e.description))))):null,h?n.default.createElement(`div`,null,n.default.createElement(`label`,{className:`mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground`},v.iconLibrary),n.default.createElement(`div`,{className:`space-y-2`},vu.map(e=>n.default.createElement(`button`,{key:e.value,type:`button`,onClick:()=>F(e.value),className:`w-full cursor-pointer rounded-md border px-3 py-2.5 text-left text-sm transition-colors ${L===e.value?`border-primary bg-primary/10`:`border-border hover:bg-accent`}`},n.default.createElement(`span`,{className:`flex items-center gap-2 font-medium ${L===e.value?`text-primary`:`text-foreground`}`},n.default.createElement(Q,{name:`palette`,size:12}),e.label),n.default.createElement(`span`,{className:`mt-0.5 block text-xs text-muted-foreground`},v[e.description])))),L===`phosphor`?n.default.createElement(`div`,{className:`mt-3`},n.default.createElement(`p`,{className:`mb-2 text-xs text-muted-foreground`},v.weight),n.default.createElement(`div`,{className:`flex flex-wrap gap-1`},yu.map(e=>n.default.createElement(`button`,{key:e.value,type:`button`,onClick:()=>{I(`phosphor`,new Jt(e.value)),F(`phosphor`)},className:`cursor-pointer rounded border border-border px-2 py-1 text-xs transition-colors hover:bg-accent`},v[e.label])))):null,n.default.createElement(`div`,{className:`mt-3 flex items-center gap-3 px-1`},[`sun`,`moon`,`bell`,`settings`,`search`,`trash`].map(e=>n.default.createElement(Q,{key:e,name:e,size:16,className:`text-muted-foreground`})))):null),V=n.default.createElement(`div`,{className:X(`space-y-6`,r===`flat`&&`rounded-xl border border-border/60 bg-card p-5`,g)},r===`flat`&&z?n.default.createElement(`div`,{className:`border-b border-border/60 pb-4`},B):null,ee);return r===`modal`?e?n.default.createElement(si,{position:`right`,header:z?B:void 0,onClose:t,allowFullscreen:!1,headerClassName:`h-14 !py-0 px-4`,className:g,wrapperClassName:_},n.default.createElement(`div`,{className:`space-y-6`},ee)):null:n.default.createElement(`div`,{className:_},V)}var Su=(0,n.createContext)(null),Cu=({registries:e,setProvider:t,children:r})=>n.default.createElement(Su.Provider,{value:{registries:e,setProvider:t}},r),wu=()=>{let e=(0,n.useContext)(Su);if(!e)throw Error(`useSetProvider/useProvider must be used inside <App>.`);return e},Tu=()=>wu().setProvider,Eu=(e,t)=>{let{registries:n}=wu(),r=n[e],i=t??r?.defaultKey,a=i?r?.registry[i]:void 0;if(!a)throw Error(`Provider '${i??e}' is not registered in category '${e}'. Available: ${Object.keys(r?.registry??{}).join(`, `)}`);return a},Du=ga?.()?.google;typeof pa==`function`&&pa(e=>{Du=e.google});var Ou=e=>Du?.[e],ku=`scrape`,Au=`[DEFAULT]`,ju=new Map,Mu=(e,t=Au)=>{ju.set(t,e)},Nu=(e=Au)=>Vn(`FirebaseProvider`,Bn(ju.get(e),[`apiKey`,`authDomain`,`databaseURL`,`projectId`,`storageBucket`,`messagingSenderId`,`appId`],`firebase.`)),Pu=(e=Au)=>Vn(`FirestoreProvider`,Bn(ju.get(e),[`apiKey`,`authDomain`,`projectId`,`appId`],`firebase.`)),Fu=(e=Au)=>{try{return e===Au?(0,u.getAuth)():(0,u.getAuth)((0,l.getApp)(e))}catch(e){return console.error(`FirebaseAuthorization`,e instanceof Error?e.message:`Error: check Configuration`),null}},Iu=async e=>{let t=Fu();if(!t)return!1;try{return await(0,u.setPersistence)(t,u.inMemoryPersistence),await(0,u.signInWithCustomToken)(t,e),!0}catch(e){let n=t.app.options?.apiKey;return console.error(`Firebase custom token sign-in error: `,e,`— app "${t.app.name}" options.apiKey: ${n?`${n.slice(0,6)}… (len ${n.length})`:String(n)}`),!1}},Lu=async(e,t=Au)=>{Mu(e,t);let n=(0,l.getApps)().find(e=>e.name===t);if(n){if(n.options?.appId===e.appId)return`${t}`,n;await(0,l.deleteApp)(n)}return t===Au?(0,l.initializeApp)(e):(0,l.initializeApp)(e,t)};async function Ru(e,t,n=Au,r){let{getFunctions:i,httpsCallable:a}=await import(`firebase/functions`),{data:o}=await a(i(n===Au?(0,l.getApp)():(0,l.getApp)(n),r),e)(t);return o}var zu=e=>e.replace(/^\/+|\/+$/g,``),Bu=e=>zu(e).split(`/`).filter(Boolean),Vu=e=>Bu(e).length%2==0,Hu=(e,t,n)=>{let r=`Error during ${e}: ${String(t)}`;if(n)throw Error(r);console.error(r)},Uu={eq:`==`,lt:`<`,lte:`<=`,gt:`>`,gte:`>=`,in:`in`,nin:`not-in`},Wu=(e,t)=>{let n=[];if(e)for(let[t,r]of Object.entries(e)){let e=typeof r==`object`&&r&&!Array.isArray(r)?r:Array.isArray(r)?{in:r}:{eq:r};for(let[r,i]of Object.entries(e)){let e=Uu[r];e&&n.push((0,d.where)(t,e,i))}}if(t)for(let[e,r]of Object.entries(t))n.push((0,d.orderBy)(e,r));return n},Gu=`@key`,Ku=(e,t)=>{if(!t)return e.docs.map((e,t)=>({[yr]:e.id,_index:t,...e.data()}));let n=Object.keys(t);return e.docs.map((e,r)=>{let i={[Gu]:e.id,...e.data()},a={};for(let r of n){let n=t[r];a[r]=n.includes(`{`)?E.parse(i,n):n===Gu?e.id:i[n]}return{[yr]:e.id,_index:r,...a}})},qu=e=>Object.fromEntries(e.map(e=>[e[yr],e])),Ju=class e{static listenerRegistered=!1;databaseId;constructor(t={}){this.databaseId=t.databaseId,!e.listenerRegistered&&typeof pa==`function`&&(e.listenerRegistered=!0,pa(e=>{e.firebase&&Lu(e.firebase)}))}getDb=()=>this.databaseId?(0,d.getFirestore)((0,l.getApp)(),this.databaseId):(0,d.getFirestore)();dispose=async()=>{try{await(0,d.terminate)(this.getDb())}catch{}};getConfigurationState(){return Pu()}isConfigured(){return this.getConfigurationState().configured}read=async(e,{where:t,order:n,toArray:r=!1,exception:i=!1}={})=>{let a=zu(e);try{let o=this.getDb();if(Vu(e)){let t=await(0,d.getDoc)((0,d.doc)(o,a));if(!t.exists()){if(i)throw Error(`Document not found: ${e}`);return}return`${e}`,{[yr]:t.id,...t.data()}}let s=Wu(t,n),c=s.length?(0,d.query)((0,d.collection)(o,a),...s):(0,d.collection)(o,a),l=await(0,d.getDocs)(c);`${l.size}${e}`;let u=Ku(l);return r?u:qu(u)}catch(t){Hu(`reading data in Firestore for ${e}`,t,i)}};set=async(e,t,n=!1)=>{let r=zu(e);try{let n=this.getDb();Vu(e)?await(0,d.setDoc)((0,d.doc)(n,r),t):await(0,d.addDoc)((0,d.collection)(n,r),t),`${e}`}catch(t){Hu(`setting data in Firestore for ${e}`,t,n)}};update=async(e,t,n=!1)=>{let r=zu(e);try{let n=this.getDb();Vu(e)?await(0,d.updateDoc)((0,d.doc)(n,r),t):await(0,d.addDoc)((0,d.collection)(n,r),t),`${e}`}catch(t){Hu(`updating data in Firestore for ${e}`,t,n)}};remove=async(e,t=!1)=>{let n=zu(e);try{let t=this.getDb();if(Vu(e))await(0,d.deleteDoc)((0,d.doc)(t,n));else throw Error(`Deleting an entire collection is not supported. Remove individual documents.`);`${e}`}catch(n){Hu(`removing data in Firestore for ${e}`,n,t)}};count=async e=>{if(Vu(e))return 1;let t=this.getDb();try{return(await(0,d.getCountFromServer)((0,d.collection)(t,zu(e)))).data().count}catch{return(await(0,d.getDocs)((0,d.collection)(t,zu(e)))).size}};subscribe=(e,t,{where:n,order:r,fieldMap:i,onLoad:a}={})=>{let o=Fu();if(!o||!e)return()=>void 0;let s=()=>{let o=this.getDb(),s=zu(e);if(Vu(e))return(0,d.onSnapshot)((0,d.doc)(o,s),e=>{if(!e.exists()){t([]);return}t([{[yr]:e.id,_index:0,...e.data()}])},e=>console.error(`Firestore onSnapshot error:`,e));let c=Wu(n,r),l=c.length?(0,d.query)((0,d.collection)(o,s),...c):(0,d.collection)(o,s);return(0,d.onSnapshot)(l,e=>{if(e.metadata?.fromCache&&e.size===0)return;let n=Ku(e,i);if(a){let e=a(qu(n));t(Object.entries(e).map(([e,t],n)=>({[yr]:e,_index:n,...typeof t==`object`&&t?t:{}})))}else t(n)},e=>console.error(`Firestore onSnapshot error:`,e))},c,l=(0,u.onIdTokenChanged)(o,e=>{c?.(),c=void 0,e?c=s():t([])});return()=>{c?.(),l()}};readShallow=async(e,t=!1)=>{let n=zu(e);try{let t=this.getDb();if(Vu(e)){let e=await(0,d.getDoc)((0,d.doc)(t,n));return e.exists()?Object.keys(e.data()??{}):[]}return(await(0,d.getDocs)((0,d.collection)(t,n))).docs.map(e=>e.id)}catch(n){return Hu(`reading shallow data in Firestore for ${e}`,n,t??!1),[]}};setChunks=async(e,t,{chunkSize:n=500,purge:r=!1,onProgress:i}={})=>{let a=zu(e),o=Math.min(n,500);try{let n=this.getDb();if(r){i?.(0,0,`Purging existing data at ${e}`);let t=(await(0,d.getDocs)((0,d.collection)(n,a))).docs.map(e=>e.id);for(let e=0;e<t.length;e+=o){let r=(0,d.writeBatch)(n);t.slice(e,e+o).forEach(e=>r.delete((0,d.doc)(n,a,e))),await r.commit()}}let s=Object.entries(t),c=Math.ceil(s.length/o);for(let e=0;e<s.length;e+=o){let t=(0,d.writeBatch)(n);s.slice(e,e+o).forEach(([e,r])=>{t.set((0,d.doc)(n,a,e),r)}),await t.commit();let r=Math.floor(e/o)+1;i?.(r,c,`Saving batch ${r}/${c}`)}`${e}${s.length}`}catch(t){Hu(`setting data in chunks in Firestore for ${e}`,t,!1)}}},Yu=new Map;function Xu(e,t){return Yu.has(e)||Yu.set(e,(0,f.createClient)(e,t)),Yu.get(e)}function Zu(e,t,n){return(0,f.createClient)(e,t,{auth:{persistSession:!1,autoRefreshToken:!1,detectSessionInUrl:!1},global:n?{headers:{Authorization:`Bearer ${n}`}}:void 0})}async function Qu(e){await e.removeAllChannels()}function $u(e){return Vn(`Supabase`,Bn(e,[`url`,`anonKey`],`supabase.`))}var ed=e=>e.replace(/^\/+|\/+$/g,``);function td(e){let t=ed(e).split(`/`).filter(Boolean);return{table:t[0]??``,id:t.length>=2?t.slice(1).join(`/`):null}}function nd(e,t,n){let r=`SupabaseDataProvider.${e}: ${t instanceof Error?t.message:String(t)}`;if(n)throw Error(r);console.error(r)}function rd(e,t){for(let[n,r]of Object.entries(t))if(r==null)e=e.is(n,null);else if(typeof r!=`object`||Array.isArray(r))e=e.eq(n,r);else{let t=r;t.eq!==void 0&&(e=e.eq(n,t.eq)),t.lt!==void 0&&(e=e.lt(n,t.lt)),t.lte!==void 0&&(e=e.lte(n,t.lte)),t.gt!==void 0&&(e=e.gt(n,t.gt)),t.gte!==void 0&&(e=e.gte(n,t.gte)),t.in&&(e=e.in(n,t.in)),t.nin&&(e=e.not(n,`in`,t.nin))}return e}function id(e,t){for(let[n,r]of Object.entries(t))e=e.order(n,{ascending:r===`asc`});return e}function ad(e,t,n){let{_key:r,_index:i,...a}=e;return t&&(a[n]=t),a}function od(e,t,n=0){return{...e,[yr]:String(e[t]??n),_index:n}}var sd=class{config;get pk(){return this.config.primaryKey??`id`}scopedClient;get client(){return this.config.accessToken?(this.scopedClient||=Zu(this.config.url,this.config.anonKey,this.config.accessToken),this.scopedClient):Xu(this.config.url,this.config.anonKey)}constructor(e){this.config=e}dispose=async()=>{this.scopedClient&&await Qu(this.scopedClient)};getConfigurationState(){return $u(this.config)}isConfigured(){return this.getConfigurationState().configured}read=async(e,t={})=>{let{table:n,id:r}=td(e);if(n)try{if(r){let{data:e,error:t}=await this.client.from(n).select(`*`).eq(this.pk,r).maybeSingle();if(t)throw t;return e?od(e,this.pk):void 0}let e=this.client.from(n).select(`*`);t.where&&(e=rd(e,t.where)),t.order&&(e=id(e,t.order));let{data:i,error:a}=await e;if(a)throw a;if(!i||i.length===0)return t.toArray?[]:{};let o=i.map((e,t)=>od(e,this.pk,t));return t.toArray?o:Object.fromEntries(o.map(e=>[String(e[this.pk]??e._key),e]))}catch(e){return nd(`read`,e,t.exception??!1),t.toArray?[]:void 0}};set=async(e,t,n=!1)=>{let{table:r,id:i}=td(e);if(!r){nd(`set`,`path must include a table name`,n);return}try{let e=ad(t,i,this.pk),{error:n}=await this.client.from(r).upsert(e,{onConflict:this.pk});if(n)throw n}catch(e){nd(`set`,e,n)}};update=async(e,t,n=!1)=>{let{table:r,id:i}=td(e);if(!r){nd(`update`,`path must include a table name`,n);return}try{let{_key:e,_index:n,...a}=t;if(i){let{data:e}=await this.client.from(r).select(`*`).eq(this.pk,i).maybeSingle(),t={...e??{},...a,[this.pk]:i},{error:n}=await this.client.from(r).upsert(t,{onConflict:this.pk});if(n)throw n}else{let{error:e}=await this.client.from(r).insert(a);if(e)throw e}}catch(e){nd(`update`,e,n)}};remove=async(e,t=!1)=>{let{table:n,id:r}=td(e);if(!n||!r){nd(`remove`,`path must include both table and id`,t);return}try{let{error:e}=await this.client.from(n).delete().eq(this.pk,r);if(e)throw e}catch(e){nd(`remove`,e,t)}};subscribe=(e,t,n={})=>{if(!e)return()=>void 0;let{table:r}=td(e);if(!r)return()=>void 0;let i=null,a=!0,o=async()=>{if(a)try{let e=this.client.from(r).select(`*`);n.where&&(e=rd(e,n.where)),n.order&&(e=id(e,n.order));let{data:i}=await e;if(!a)return;t((i??[]).map((e,t)=>od(e,this.pk,t)))}catch{t([])}};o();try{i=this.client.channel(`llmnative:${r}`).on(`postgres_changes`,{event:`*`,schema:`public`,table:r},()=>void o()).subscribe()}catch{}return()=>{a=!1,i&&=(this.client.removeChannel(i).catch(()=>{}),null)}};count=async e=>{let{table:t}=td(e);if(!t)return 0;try{let{count:e,error:n}=await this.client.from(t).select(`*`,{count:`exact`,head:!0});if(n)throw n;return e??0}catch(e){return console.error(`SupabaseDataProvider.count:`,e),0}};setChunks=async(e,t,n={})=>{let{table:r}=td(e);if(!r)return;let{chunkSize:i=500,purge:a=!1,onProgress:o}=n,s=Object.entries(t);try{a&&await this.client.from(r).delete().neq(this.pk,`__purge_all__`);for(let e=0;e<s.length;e+=i){let t=s.slice(e,e+i).map(([e,t])=>ad(t,e,this.pk)),{error:n}=await this.client.from(r).upsert(t,{onConflict:this.pk});if(n)throw n;o?.(Math.min(e+i,s.length),s.length,`Wrote ${Math.min(e+i,s.length)}/${s.length}`)}}catch(e){throw console.error(`SupabaseDataProvider.setChunks:`,e),e}}},cd={key:`@key`,value:`@value`};function ld(e,t){if(!t)return e;let n=t.split(`.`),r=e;for(let e of n){if(r==null)return;r=r[e]}return r}function ud(e,t){return e===t?0:e==null?-1:t==null?1:typeof e==`number`&&typeof t==`number`?e-t:typeof e==`boolean`&&typeof t==`boolean`?Number(e)-Number(t):globalThis.String(e).localeCompare(globalThis.String(t),void 0,{numeric:!0,sensitivity:`base`})}function dd(e,t){let n=typeof t==`object`&&t&&!Array.isArray(t)?t:{eq:t};for(let[t,r]of Object.entries(n))switch(t){case`eq`:if(e!==r)return!1;break;case`gt`:if(!(e>r))return!1;break;case`gte`:if(!(e>=r))return!1;break;case`lt`:if(!(e<r))return!1;break;case`lte`:if(!(e<=r))return!1;break;case`in`:if(!Array.isArray(r)||!r.includes(e))return!1;break;case`nin`:if(Array.isArray(r)&&r.includes(e))return!1;break;default:return!1}return!0}function fd(e,t,n){let r=Object.entries(n||{}),i=Object.entries(t||{}),a=Object.entries(e);return i.length&&(a=a.filter(([,e])=>i.every(([t,n])=>dd(ld(e,t),n)))),r.length&&a.sort((e,t)=>{for(let[n,i]of r){let r=ud(ld(e[1],n),ld(t[1],n));if(r)return i===`desc`?-r:r}return 0}),Object.fromEntries(a)}function pd(e,t){let n=Object.entries(e);if(!t)return n.map(([e,t],n)=>typeof t==`object`&&t?{_index:n,[yr]:e,...t}:{_index:n,[yr]:e,[cd.value]:t});let r=Object.keys(t);return n.map(([e,n],i)=>{let a=typeof n==`object`&&n?{[cd.key]:e,...n}:{[cd.key]:e,[cd.value]:n},o={};for(let i of r){let r=t[i];o[i]=r.includes(`{`)?E.parse(a,r):r===cd.key?e:r===cd.value?n:a[r]}return{[yr]:e,_index:i,...o}})}var md=class{store={};listeners=new Map;persistKey;constructor(e,t){this.persistKey=t?.persist?t.storageKey??`llmnative:mock`:null;let n=this.persistKey?this.loadStore()??e:e;if(n)for(let[e,t]of Object.entries(n)){let n=e.startsWith(`/`)?e:`/${e}`;this.store[n]={...t}}}loadStore(){if(!this.persistKey||typeof window>`u`)return null;try{let e=window.localStorage.getItem(this.persistKey);if(!e)return null;let t=JSON.parse(e);return typeof t==`object`&&t&&!Array.isArray(t)?t:null}catch{return null}}saveStore(){if(this.persistKey&&typeof window<`u`)try{window.localStorage.setItem(this.persistKey,JSON.stringify(this.store))}catch{}}isConfigured(){return!0}getConfigurationState(){return{configured:!0}}getCollection(e){return this.store[e]||(this.store[e]={}),this.store[e]}resolvePath(e){let t=e.startsWith(`/`)?e:`/${e}`;if(this.store[t])return{collection:t};let n=Object.keys(this.store).filter(e=>t.startsWith(`${e}/`)&&!t.slice(e.length+1).includes(`/`)).sort((e,t)=>t.length-e.length)[0];if(n)return{collection:n,id:t.slice(n.length+1)};let r=t.replace(/^\/+/,``).split(`/`).filter(Boolean);return r.length%2==1?{collection:`/${r.join(`/`)}`}:{collection:`/${r.slice(0,-1).join(`/`)}`,id:r[r.length-1]}}notify(e){this.listeners.get(e)?.forEach(e=>e())}read=async(e,t={})=>{let{collection:n,id:r}=this.resolvePath(e),i=this.getCollection(n);if(r)return i[r]?{...i[r]}:void 0;let a=fd(i,t.where,t.order);return t.toArray?Object.values(a).map(e=>({...e})):Object.fromEntries(Object.entries(a).map(([e,t])=>[e,{...t}]))};set=async(e,t)=>{let{collection:n,id:r}=this.resolvePath(e),i=this.getCollection(n);r?i[r]={...t}:this.store[n]={...t},this.saveStore(),this.notify(n)};update=async(e,t)=>{let{collection:n,id:r}=this.resolvePath(e),i=this.getCollection(n);r?i[r]={...i[r]||{},...t}:this.store[n]={...i,...t},this.saveStore(),this.notify(n)};remove=async e=>{let{collection:t,id:n}=this.resolvePath(e);n?delete this.getCollection(t)[n]:delete this.store[t],this.saveStore(),this.notify(t)};subscribe=(e,t,n)=>{if(!e)return()=>void 0;let r=e.startsWith(`/`)?e:`/${e}`,i=()=>{let e=fd(this.getCollection(r),n?.where,n?.order);t(pd(n?.onLoad?n.onLoad(e):e,n?.fieldMap))};return i(),this.listeners.has(r)||this.listeners.set(r,new Set),this.listeners.get(r).add(i),()=>{this.listeners.get(r)?.delete(i)}}};function hd(e,t){let n=e.split(`.`).pop()?.toLowerCase()??``;return(Array.isArray(t)?t.map(e=>e.toLowerCase().replace(/^\./,``)):[t.toLowerCase().replace(/^\./,``)]).includes(n)}function gd(e,t){let n=e;return t.filterByExtension!==void 0&&(n=n.filter(e=>e.isFolder||hd(e.name,t.filterByExtension))),t.limit!==void 0&&t.limit>0&&(n=n.slice(0,t.limit)),n}var _d=e=>e?(0,p.getStorage)((0,l.getApp)(),e):(0,p.getStorage)(),vd=e=>({name:e.name,path:e.fullPath}),yd=async e=>{try{let t=await(0,p.getMetadata)(e);return{name:e.name,path:e.fullPath,size:t.size,contentType:t.contentType,updatedAt:t.updated}}catch{return vd(e)}},bd=class e{static listenerRegistered=!1;defaultBucket;constructor(t={}){this.defaultBucket=t.defaultBucket,!e.listenerRegistered&&typeof pa==`function`&&(e.listenerRegistered=!0,pa(e=>{e.firebase&&Lu(e.firebase)}))}resolveBucket=e=>e??this.defaultBucket;getConfigurationState(){return Nu()}isConfigured(){return this.getConfigurationState().configured}upload=async(e,t,n={})=>{if(e)try{let r=(0,p.ref)(_d(this.resolveBucket(n.bucket)),t);if(typeof e==`string`){let t=await(0,p.uploadString)(r,e,`data_url`);return await(0,p.getDownloadURL)(t.ref)}return await new Promise((t,i)=>{let a=n.contentType?{contentType:n.contentType}:e instanceof File&&e.type?{contentType:e.type}:void 0,o=(0,p.uploadBytesResumable)(r,e,a);n.onProgress&&o.on(`state_changed`,e=>{let t=e.totalBytes>0?Math.round(e.bytesTransferred/e.totalBytes*100):0;n.onProgress(t)}),o.then(async e=>t(await(0,p.getDownloadURL)(e.ref))).catch(i)})}catch(e){console.error(`[FirebaseStorage] upload error:`,e)}};createUpload=(e,t,n={})=>{let r=(0,p.ref)(_d(this.resolveBucket(n.bucket)),t);if(typeof e==`string`){let t=!1;return{url:(async()=>{if(!t)try{let t=await(0,p.uploadString)(r,e,`data_url`);return await(0,p.getDownloadURL)(t.ref)}catch{return}})(),pause:()=>{},resume:()=>{},cancel:()=>{t=!0}}}let i=n.contentType?{contentType:n.contentType}:e instanceof File&&e.type?{contentType:e.type}:void 0,a=(0,p.uploadBytesResumable)(r,e,i);return n.onProgress&&a.on(`state_changed`,e=>{let t=e.totalBytes>0?Math.round(e.bytesTransferred/e.totalBytes*100):0;n.onProgress(t)}),{url:(async()=>{try{return await(0,p.getDownloadURL)((await a).ref)}catch{return}})(),pause:()=>{a.pause()},resume:()=>{a.resume()},cancel:()=>{a.cancel()}}};rename=async(e,t,n={})=>await this.move(e,t,n)>0;move=async(e,t,n={})=>{if(n.recursive){let r=await this.list(e,{bucket:n.bucket,recursive:!0}),i=e.endsWith(`/`)?e:`${e}/`;return(await Promise.all(r.map(async r=>{let a=`${t}/${r.path.startsWith(i)?r.path.slice(i.length):r.path.slice(e.length)}`;return this._moveFile(r.path,a,n)}))).filter(Boolean).length}return+!!await this._moveFile(e,t,n)};_moveFile=async(e,t,n)=>{try{let r=await this.download(e,n);if(!r)return!1;let i=await this.getFileInfo(e,n);return await this.upload(r,t,{bucket:n.destBucket??n.bucket,contentType:i?.contentType})?(await this.delete(e,{bucket:n.bucket}),!0):!1}catch(n){return console.error(`[FirebaseStorage] move error ${e} → ${t}:`,n),!1}};getURL=async(e,t={})=>{try{return await(0,p.getDownloadURL)((0,p.ref)(_d(this.resolveBucket(t.bucket)),e))}catch(t){console.error(`[FirebaseStorage] getURL error for ${e}:`,t)}};getFileInfo=async(e,t={})=>{try{let n=(0,p.ref)(_d(this.resolveBucket(t.bucket)),e),r=await(0,p.getMetadata)(n);return{name:n.name,path:n.fullPath,size:r.size,contentType:r.contentType,updatedAt:r.updated}}catch(t){if(t.code===`storage/object-not-found`)return;console.error(`[FirebaseStorage] getFileInfo error for ${e}:`,t);return}};download=async(e,t={})=>{let n=await this.getURL(e,t);if(n)try{let e=await fetch(n);if(!e.ok)throw Error(`HTTP ${e.status}`);return await e.blob()}catch(t){console.error(`[FirebaseStorage] download error for ${e}:`,t)}};delete=async(e,t={})=>{if(t.recursive)return this._deleteFolder(e,t);try{return await(0,p.deleteObject)((0,p.ref)(_d(this.resolveBucket(t.bucket)),e)),1}catch(t){return t.code===`storage/object-not-found`||console.error(`[FirebaseStorage] delete error for ${e}:`,t),0}};_deleteFolder=async(e,t)=>{try{let n=(0,p.ref)(_d(this.resolveBucket(t.bucket)),e),{items:r,prefixes:i}=await(0,p.listAll)(n),a=0;await Promise.all(r.map(async e=>{try{await(0,p.deleteObject)(e),a++}catch(t){t.code!==`storage/object-not-found`&&console.error(`[FirebaseStorage] delete failed for ${e.fullPath}:`,t)}}));let o=await Promise.all(i.map(e=>this._deleteFolder(e.fullPath,t)));return a+o.reduce((e,t)=>e+t,0)}catch(t){return console.error(`[FirebaseStorage] deleteFolder error for ${e}:`,t),0}};list=async(e,t={})=>gd(await this._listLevel(e,t),t);_listLevel=async(e,t)=>{let n=t.includeFiles!==!1,r=t.includeFolders===!0;try{let i=(0,p.ref)(_d(this.resolveBucket(t.bucket)),e),{items:a,prefixes:o}=await(0,p.listAll)(i),s=n?t.metadata?await Promise.all(a.map(yd)):a.map(vd):[],c=r?o.map(e=>({name:e.name,path:e.fullPath,isFolder:!0})):[],l=[...s,...c];if(!t.recursive||o.length===0)return l;let u=await Promise.all(o.map(e=>this._listLevel(e.fullPath,t)));return[...l,...u.flat()]}catch(t){return console.error(`[FirebaseStorage] list error for ${e}:`,t),[]}}};new bd;var xd=class{config;constructor(e){this.config=e}getConfigurationState(){return Vn(`SupabaseStorageProvider`,Bn(this.config,[`url`,`anonKey`],`supabase.`))}isConfigured(){return this.getConfigurationState().configured}resolveBucket(e){return e??this.config.bucket??`public`}authHeaders(){return{apikey:this.config.anonKey,Authorization:`Bearer ${this.config.accessToken??this.config.anonKey}`}}upload=async(e,t,n={})=>{let r=this.resolveBucket(n.bucket),i,a=n.contentType;if(typeof e==`string`){let[t,n]=e.split(`,`);a??=t.match(/:(.*?);/)?.[1];let r=atob(n),o=new Uint8Array(r.length);for(let e=0;e<r.length;e++)o[e]=r.charCodeAt(e);i=new Blob([o],a?{type:a}:void 0)}else i=e,e instanceof File&&(a??=e.type||void 0);let o=await fetch(`${this.config.url}/storage/v1/object/${r}/${t}`,{method:`POST`,headers:{...this.authHeaders(),...a?{"Content-Type":a}:{}},body:i});if(!o.ok){console.error(`[SupabaseStorage] upload error:`,await o.text());return}return this.getURL(t,{bucket:r})};createUpload=(e,t,n={})=>{let r=new AbortController,i=this.resolveBucket(n.bucket);return{url:(async()=>{let a,o=n.contentType;if(typeof e==`string`){let[t,n]=e.split(`,`);o??=t.match(/:(.*?);/)?.[1];let r=atob(n),i=new Uint8Array(r.length);for(let e=0;e<r.length;e++)i[e]=r.charCodeAt(e);a=new Blob([i],o?{type:o}:void 0)}else a=e,e instanceof File&&(o??=e.type||void 0);try{return(await fetch(`${this.config.url}/storage/v1/object/${i}/${t}`,{method:`POST`,headers:{...this.authHeaders(),...o?{"Content-Type":o}:{}},body:a,signal:r.signal})).ok?this.getURL(t,{bucket:i}):void 0}catch{return}})(),pause:()=>{},resume:()=>{},cancel:()=>r.abort()}};rename=async(e,t,n={})=>await this.move(e,t,n)>0;move=async(e,t,n={})=>{if(n.recursive){let r=await this.list(e,{bucket:n.bucket,recursive:!0}),i=e.endsWith(`/`)?e:`${e}/`;return(await Promise.all(r.map(async r=>{let a=`${t}/${r.path.startsWith(i)?r.path.slice(i.length):r.path.slice(e.length)}`;return this._moveFile(r.path,a,n)}))).filter(Boolean).length}return+!!await this._moveFile(e,t,n)};_moveFile=async(e,t,n)=>{let r=this.resolveBucket(n.bucket),i=this.resolveBucket(n.destBucket??n.bucket);try{return(await fetch(`${this.config.url}/storage/v1/object/move`,{method:`POST`,headers:{...this.authHeaders(),"Content-Type":`application/json`},body:JSON.stringify({bucketId:r,sourceKey:e,destinationBucket:i,destinationKey:t})})).ok}catch(n){return console.error(`[SupabaseStorage] move error ${e} → ${t}:`,n),!1}};getURL=async(e,t={})=>{let n=this.resolveBucket(t.bucket);return`${this.config.url}/storage/v1/object/public/${n}/${e}`};getFileInfo=async(e,t={})=>{let n=e.split(`/`),r=n.pop(),i=n.join(`/`);return(await this.list(i,{...t,metadata:!0})).find(e=>e.name===r)};download=async(e,t={})=>{let n=await this.getURL(e,t);if(n)try{let e=await fetch(n);if(!e.ok)throw Error(`HTTP ${e.status}`);return await e.blob()}catch(t){console.error(`[SupabaseStorage] download error for ${e}:`,t)}};delete=async(e,t={})=>{let n=this.resolveBucket(t.bucket),r;if(t.recursive){let n=await this.list(e,{...t,recursive:!0});if(n.length===0)return 0;r=n.map(e=>e.path)}else r=[e];try{let e=await fetch(`${this.config.url}/storage/v1/object/${n}`,{method:`DELETE`,headers:{...this.authHeaders(),"Content-Type":`application/json`},body:JSON.stringify({prefixes:r})});return e.status===404?0:e.ok?r.length:(console.error(`[SupabaseStorage] delete error:`,await e.text()),0)}catch(t){return console.error(`[SupabaseStorage] delete error for ${e}:`,t),0}};list=async(e,t={})=>gd(await this._listLevel(e,t),t);_listLevel=async(e,t)=>{let n=t.includeFiles!==!1,r=t.includeFolders===!0,i=this.resolveBucket(t.bucket);try{let a=await fetch(`${this.config.url}/storage/v1/object/list/${i}`,{method:`POST`,headers:{...this.authHeaders(),"Content-Type":`application/json`},body:JSON.stringify({prefix:e,limit:1e3,offset:0})});if(!a.ok)return console.error(`[SupabaseStorage] list error:`,await a.text()),[];let o=await a.json(),s=o.filter(e=>e.id!==null&&e.name&&!e.name.endsWith(`/`)),c=o.filter(e=>e.id===null&&e.name),l=n?s.map(t=>({name:t.name??``,path:e?`${e}/${t.name}`:t.name??``,size:t.metadata?.size,contentType:t.metadata?.mimetype,updatedAt:t.updated_at})):[],u=r?c.map(t=>({name:t.name??``,path:e?`${e}/${t.name}`:t.name??``,isFolder:!0})):[],d=[...l,...u];if(!t.recursive||c.length===0)return d;let f=await Promise.all(c.map(n=>this._listLevel(e?`${e}/${n.name}`:n.name??``,t)));return[...d,...f.flat()]}catch(t){return console.error(`[SupabaseStorage] list error for ${e}:`,t),[]}}},Sd={},Cd=(e,t,n)=>{(Sd[e]??={})[t]=n},wd=e=>typeof e.credential?.token==`string`?e.credential.token:void 0,Td=async e=>{await Lu(e.publicConfig),e.credential?.type===`firebaseCustomToken`&&await Iu(e.credential.token)},Ed=`(default)`;Cd(`data`,`mock`,e=>new md(e.publicConfig.seed,{persist:!1})),Cd(`data`,`firebase`,async e=>(await Td(e),new Ju({databaseId:Ed}))),Cd(`data`,`supabase`,e=>new sd({url:e.publicConfig.url,anonKey:e.publicConfig.anonKey,accessToken:wd(e)})),Cd(`storage`,`firebase`,async e=>(await Td(e),new bd)),Cd(`storage`,`supabase`,e=>new xd({url:e.publicConfig.url,anonKey:e.publicConfig.anonKey,accessToken:wd(e)}));var Dd=new WeakMap,Od=e=>{let t=Dd.get(e);if(t)return t;let n={sequence:0,queue:Promise.resolve(),pending:new Map};return Dd.set(e,n),n},kd=()=>{let e=Tu();return{switchSession:(0,n.useCallback)((t,n)=>{let r=n?.sessionKey,i=Od(e);if(r){let e=i.pending.get(r);if(e?.sequence===i.sequence)return e.promise;if(i.activeKey===r&&i.pending.size===0)return Promise.resolve(i.activeResult??{applied:[],skipped:[]})}let a=async()=>{let r;if(typeof t==`function`)r=await t();else{let e=await fetch(t,n?.fetchOptions);if(!e.ok)throw Error(`Provider session request failed: ${e.status} ${e.statusText}`);r=await e.json()}n?.onResponse&&(r=await n.onResponse(r));let i={applied:[],skipped:[]};for(let[t,n]of Object.entries(r.providers)){let r=Sd[t]?.[n.type];if(!r){console.warn(`ProviderSession: no factory registered for category "${t}" type "${n.type}" — discarding. Register one with registerProviderSessionFactory().`),i.skipped.push({category:t,type:n.type});continue}let a=await r(n);await e(t,`custom`,a),i.applied.push(t)}return i};if(!r)return a();let o=++i.sequence,s=i.queue.then(a,a);return i.queue=s.then(()=>void 0,()=>void 0),i.pending.set(r,{sequence:o,promise:s}),s.then(e=>{i.activeKey=r,i.activeResult=e}).finally(()=>{i.pending.get(r)?.promise===s&&i.pending.delete(r)}),s},[e]),setProvider:e}};function Ad(e,t){return e?typeof e==`string`?n.default.createElement(Q,{name:e,size:15,className:t}):e:null}function jd({items:e,itemsLoading:t=!1,activeId:r=null,onSelect:i=void 0,onError:a=void 0,onResponse:o=void 0,endpoint:s,authorization:c=void 0,requestBody:l=void 0,method:u=`POST`,icon:d=`layers`,caption:f=void 0,listLabel:p=void 0,placeholder:m=void 0,disabled:h=!1,open:g=void 0,onOpenChange:_=void 0,footer:v=void 0,before:y=void 0,after:b=void 0,wrapperClassName:x=void 0,className:S=void 0,triggerClassName:C=void 0,listClassName:w=void 0,itemClassName:T=void 0}){let E=q(`providerSwitcher`),D=Y(`select`),{switchSession:O}=kd(),k=Ln(),[A,j]=(0,n.useState)(!1),[M,N]=(0,n.useState)(null),P=e.find(e=>e.id===r)??null,F=g??A,I=_??j,L=M!==null||t,R=(0,n.useRef)(null),z=async()=>c?typeof c==`function`?c():c:k.getAccessToken?.(),B=async e=>{if(R.current!==e.id){N(e.id);try{if(typeof s==`function`)await O(()=>s(e.id),{onResponse:o,sessionKey:e.id});else{let t=await z();await O(s,{onResponse:o,sessionKey:e.id,fetchOptions:{method:u,headers:{"Content-Type":`application/json`,...t?{Authorization:`Bearer ${t}`}:{}},body:JSON.stringify(l?l(e.id):{id:e.id})}})}R.current=e.id,i?.(e.id)}catch(t){a?.(e.id,t)}finally{N(null)}}},ee=e=>{I(!1),B(e)};return(0,n.useEffect)(()=>{if(!r||r===R.current)return;let t=e.find(e=>e.id===r);t&&B(t)},[r]),n.default.createElement(n.default.Fragment,null,y,n.default.createElement(Ya,{open:F,onOpenChange:I,placement:`auto`,wrapperClassName:X(E.ProviderSwitcher.wrapperClassName,x),className:X(E.ProviderSwitcher.className,S),triggerClassName:X(E.ProviderSwitcher.triggerClassName,(h||L)&&E.ProviderSwitcher.disabledClassName,C),footer:v,trigger:n.default.createElement(`span`,{className:`flex w-full min-w-0 items-center gap-2.5`},n.default.createElement(`span`,{className:X(E.ProviderSwitcher.iconWrapperClassName)},Ad(P?.icon??d)),n.default.createElement(`span`,{className:`min-w-0 flex-1 pr-2`},n.default.createElement(`span`,{className:X(E.ProviderSwitcher.labelClassName)},P?.label??(t?D.loading:m??D.placeholder)),f?n.default.createElement(`span`,{className:X(E.ProviderSwitcher.captionClassName)},f):null),n.default.createElement(Q,{name:L?`loader-2`:`chevrons-up-down`,size:12,className:X(E.ProviderSwitcher.chevronClassName,L&&`animate-spin`)}))},p??f?n.default.createElement($a,null,p??f):null,e.map(e=>n.default.createElement(Qa,{key:e.id,onClick:h||L?void 0:()=>ee(e),className:X(E.ProviderSwitcher.itemClassName,e.id===r?E.ProviderSwitcher.itemActiveClassName:E.ProviderSwitcher.itemInactiveClassName,T,w)},n.default.createElement(`span`,{className:`flex w-full min-w-0 items-center gap-2`},n.default.createElement(`span`,{className:X(`w-3.5 shrink-0`,E.ProviderSwitcher.checkClassName)},e.id===r?n.default.createElement(Q,{name:`check`,size:13}):null),n.default.createElement(`span`,{className:`flex-1 truncate`},e.label),e.meta?n.default.createElement(`span`,{className:X(`shrink-0`,E.ProviderSwitcher.itemMetaClassName)},e.meta):null)))),b)}var Md={1:`grid-cols-1`,2:`grid-cols-1 sm:grid-cols-2`,3:`grid-cols-1 sm:grid-cols-2 lg:grid-cols-3`,4:`grid-cols-1 sm:grid-cols-2 lg:grid-cols-4`,5:`grid-cols-1 sm:grid-cols-3 lg:grid-cols-5`,6:`grid-cols-1 sm:grid-cols-3 lg:grid-cols-6`},Nd=e=>e==null||e===``;function Pd({items:e,layout:t=`horizontal`,columns:r=1,labelWidth:i=`12rem`,emptyValue:a=`—`,truncate:o=!1,wrapperClassName:s=void 0,className:c=void 0,itemClassName:l=void 0,labelClassName:u=void 0,valueClassName:d=void 0}){let f=q(`descriptionList`).DescriptionList,p=t===`horizontal`,m=n.default.createElement(`dl`,{className:X(`grid`,p?`gap-y-3`:X(`gap-x-8 gap-y-4`,Md[r]),c||f?.className),"data-layout":t},e.map((e,t)=>{let r=Nd(e.value),s=e.title??(o&&typeof e.value==`string`?e.value:void 0),c=e.key??(typeof e.label==`string`?e.label:String(t));return n.default.createElement(`div`,{key:c,className:X(`min-w-0`,p&&`grid gap-1 sm:grid-cols-[var(--rf-dl-label-width)_minmax(0,1fr)] sm:gap-4`,l||f?.itemClassName),style:p?{"--rf-dl-label-width":i}:void 0},n.default.createElement(`dt`,{className:X(p?`text-sm text-muted-foreground`:`text-[10px] font-medium uppercase tracking-widest text-muted-foreground`,u||f?.labelClassName)},e.label),n.default.createElement(`dd`,{className:X(`m-0 text-sm font-medium`,r?`text-muted-foreground`:`text-foreground`,!p&&`mt-1`,o?`truncate`:`break-words`,d||f?.valueClassName),title:s},r?a:e.value))}));return s||f?.wrapperClassName?n.default.createElement(`div`,{className:X(s||f?.wrapperClassName)},m):m}var Fd=e=>!!e.children?.length;function Id(e){return e.flatMap(e=>Fd(e)?[e.id,...Id(e.children)]:[])}function Ld(e,t,n=1,r){return e.flatMap(e=>[{node:e,level:n,parent:r},...Fd(e)&&t.has(e.id)?Ld(e.children,t,n+1,e):[]])}function Rd({nodes:e,selectedId:t=void 0,defaultSelectedId:r=null,onSelect:i=void 0,expanded:a=void 0,defaultExpanded:o=void 0,onExpandedChange:s=void 0,selectableBranches:c=!1,ariaLabel:l=void 0,wrapperClassName:u=void 0,className:d=void 0,itemClassName:f=void 0,selectedClassName:p=void 0}){let m=q(`tree`).Tree,[h,g]=(0,n.useState)(()=>o===!0?Id(e):[...o??[]]),[_,v]=(0,n.useState)(r),y=(0,n.useMemo)(()=>new Set(a??h),[a,h]),b=t===void 0?_:t,x=(0,n.useMemo)(()=>Ld(e,y),[e,y]),[S,C]=(0,n.useState)(null),w=(0,n.useRef)(new Map),T=x.find(e=>e.node.id===S)?.node.id??x.find(e=>e.node.id===b)?.node.id??x[0]?.node.id,E=(e,t)=>{let n=t?[...y,e]:[...y].filter(t=>t!==e);a===void 0&&g(n),s?.(n)},D=e=>{e.disabled||(t===void 0&&v(e.id),i?.(e))},O=e=>{e&&(C(e),w.current.get(e)?.focus())},k=e=>{Fd(e)?(E(e.id,!y.has(e.id)),c&&D(e)):D(e)},A=(e,t)=>{let n=x.findIndex(e=>e.node.id===t.node.id),r=Fd(t.node);switch(e.key){case`ArrowDown`:O(x[n+1]?.node.id);break;case`ArrowUp`:O(x[n-1]?.node.id);break;case`Home`:O(x[0]?.node.id);break;case`End`:O(x[x.length-1]?.node.id);break;case`ArrowRight`:r&&!y.has(t.node.id)?E(t.node.id,!0):r&&O(t.node.children[0]?.id);break;case`ArrowLeft`:r&&y.has(t.node.id)?E(t.node.id,!1):O(t.parent?.id);break;case`Enter`:case` `:k(t.node);break;default:return}e.preventDefault()},j=(e,t,r)=>e.map(e=>{let i=Fd(e),a=i&&y.has(e.id),o=b===e.id,s={node:e,level:t,parent:r};return n.default.createElement(`div`,{key:e.id,role:`none`},n.default.createElement(`div`,{ref:t=>{t?w.current.set(e.id,t):w.current.delete(e.id)},role:`treeitem`,"aria-level":t,"aria-expanded":i?a:void 0,"aria-selected":!i||c?o:void 0,"aria-disabled":e.disabled||void 0,tabIndex:e.id===T?0:-1,"data-selected":o||void 0,className:X(`flex cursor-pointer select-none items-center gap-1.5 rounded-md py-1 pe-2 text-sm outline-none`,`hover:bg-muted focus-visible:ring-2 focus-visible:ring-ring`,e.disabled&&`cursor-not-allowed opacity-50`,f||m?.itemClassName,o&&X(`bg-primary/10 font-medium text-primary`,p||m?.selectedClassName)),style:{paddingInlineStart:`${(t-1)*1+.25}rem`},onClick:()=>{C(e.id),k(e)},onKeyDown:e=>A(e,s)},n.default.createElement(`span`,{className:`inline-flex w-4 shrink-0 justify-center text-muted-foreground`},i&&n.default.createElement(Q,{name:a?`chevron-down`:`chevron-right`,size:14})),n.default.createElement(Q,{name:e.icon??(i?a?`folder-open`:`folder`:`file`),size:16,className:`shrink-0 text-muted-foreground`}),n.default.createElement(`span`,{className:`min-w-0 truncate`},e.label),e.description&&n.default.createElement(`span`,{className:`min-w-0 truncate text-xs font-normal text-muted-foreground`},e.description),e.badge&&n.default.createElement(`span`,{className:`ms-auto shrink-0`},e.badge)),a&&n.default.createElement(`div`,{role:`group`},j(e.children,t+1,e)))}),M=n.default.createElement(`div`,{role:`tree`,"aria-label":l,className:X(`space-y-0.5`,d||m?.className)},j(e,1));return u||m?.wrapperClassName?n.default.createElement(`div`,{className:u||m?.wrapperClassName},M):M}function zd(e,t){let n={node:{id:``,label:``},folders:new Map,files:[]};for(let r of e){let e=r.split(`/`).filter(Boolean),i=n;e.slice(0,-1).forEach((t,n)=>{let r=`${e.slice(0,n+1).join(`/`)}/`;i.folders.has(t)||i.folders.set(t,{node:{id:r,label:t},folders:new Map,files:[]}),i=i.folders.get(t)}),i.files.push({id:r,label:e[e.length-1]??r,...t?.(r)})}let r=e=>[...[...e.folders.entries()].sort(([e],[t])=>e.localeCompare(t)).map(([,e])=>({...e.node,children:r(e)})),...e.files.sort((e,t)=>e.id.localeCompare(t.id))];return r(n)}var Bd={markup:()=>import(`prismjs/components/prism-markup`),html:()=>import(`prismjs/components/prism-markup`),xml:()=>import(`prismjs/components/prism-markup`),svg:()=>import(`prismjs/components/prism-markup`),mathml:()=>import(`prismjs/components/prism-markup`),css:()=>import(`prismjs/components/prism-css`),clike:()=>import(`prismjs/components/prism-clike`),javascript:()=>import(`prismjs/components/prism-javascript`),js:()=>import(`prismjs/components/prism-javascript`),jsx:()=>import(`prismjs/components/prism-jsx`),typescript:()=>import(`prismjs/components/prism-typescript`),tsx:()=>import(`prismjs/components/prism-tsx`),json:()=>import(`prismjs/components/prism-json`),bash:()=>import(`prismjs/components/prism-bash`),shell:()=>import(`prismjs/components/prism-bash`),python:()=>import(`prismjs/components/prism-python`),java:()=>import(`prismjs/components/prism-java`),c:()=>import(`prismjs/components/prism-c`),cpp:()=>import(`prismjs/components/prism-cpp`),csharp:()=>import(`prismjs/components/prism-csharp`),go:()=>import(`prismjs/components/prism-go`),sql:()=>import(`prismjs/components/prism-sql`),php:()=>import(`prismjs/components/prism-php`),ruby:()=>import(`prismjs/components/prism-ruby`),yaml:()=>import(`prismjs/components/prism-yaml`),ini:()=>import(`prismjs/components/prism-ini`),docker:()=>import(`prismjs/components/prism-docker`),powershell:()=>import(`prismjs/components/prism-powershell`),git:()=>import(`prismjs/components/prism-git`),graphql:()=>import(`prismjs/components/prism-graphql`)},Vd={html:[`markup`],xml:[`markup`],svg:[`markup`],mathml:[`markup`],javascript:[`clike`],js:[`clike`,`javascript`],jsx:[`markup`,`clike`,`javascript`],typescript:[`clike`,`javascript`],tsx:[`markup`,`clike`,`javascript`,`jsx`,`typescript`],c:[`clike`],cpp:[`c`],csharp:[`clike`],java:[`clike`],php:[`markup`]},Hd={ts:`typescript`,py:`python`,sh:`bash`,zsh:`bash`,console:`bash`,yml:`yaml`,dockerfile:`docker`,ps1:`powershell`,"c++":`cpp`,cs:`csharp`,"c#":`csharp`,golang:`go`,rb:`ruby`,gql:`graphql`,toml:`ini`,diff:`git`};function Ud(e){if(!e)return;let t=e.toLowerCase(),n=Hd[t]??t;return n in Bd?n:void 0}async function Wd(e,t=new Set){if(!t.has(e)){for(let n of Vd[e]??[])n in Bd&&await Wd(n,t);await Bd[e]?.(),t.add(e)}}async function Gd(){let e=window;e.Prism?.highlightElement||(e.Prism={...e.Prism??{},manual:!0});let t=(await import(`prismjs`)).default;return e.Prism=t,t}var Kd=!1;async function qd(){Kd||(Kd=!0,await Promise.resolve().then(()=>require("./prism-themes-BvRk9kiK.js")))}async function Jd(e,t){let n=Ud(t);if(!n)return null;try{let t=await Gd();await Wd(n);let r=t.languages[n];return r?t.highlight(e,r,n):null}catch{return null}}var Yd={prism:`rf-code-theme-prism`,dark:`rf-code-theme-dark`,coy:`rf-code-theme-coy`,funky:`rf-code-theme-funky`,okaidia:`rf-code-theme-okaidia`,solarizedlight:`rf-code-theme-solarizedlight`,tomorrow:`rf-code-theme-tomorrow`,twilight:`rf-code-theme-twilight`},Xd={primary:`bg-primary text-primary-foreground`,secondary:`bg-secondary text-secondary-foreground`,success:`bg-success text-success-foreground`,danger:`bg-destructive text-destructive-foreground`,warning:`bg-warning text-warning-foreground`,info:`bg-info text-info-foreground`,light:`bg-muted text-muted-foreground`,dark:`bg-foreground text-background`,white:`bg-white text-slate-950`,black:`bg-black text-white`,transparent:`bg-transparent`,default:void 0};function Zd(e,t){return typeof t==`string`&&t in e}var Qd=({language:e,children:t,before:r,after:i,wrapperClassName:a,className:o,showCopy:s=!0,theme:c=`tomorrow`,background:l=`default`})=>{let u=(0,n.useRef)(null),d=q(`code`),f=Y(`code`),p=typeof t==`string`?t:String(t??``),m=Zd(Bd,e)?e:`tsx`,h=Zd(Yd,c)?c:`tomorrow`,g=Zd(Xd,l)?l:`transparent`;return(0,n.useEffect)(()=>{let e=!1;return(async()=>{await qd();let t;try{t=await Gd()}catch(e){console.warn(`Errore nel caricare Prism core`,e);return}try{await Wd(m)}catch(e){console.warn(`Errore nel caricare il linguaggio Prism "${m}"`,e)}if(!e&&u.current)try{t.highlightElement(u.current)}catch(e){console.warn(`Errore nell'evidenziare il blocco Prism "${m}"`,e)}})(),()=>{e=!0}},[p,m]),n.default.createElement(Z,{className:a||d.Code.wrapperClassName},n.default.createElement(`div`,{className:X(`flex w-full items-stretch gap-2`,(r||i)&&`overflow-x-auto`)},r&&n.default.createElement(`div`,{className:`flex shrink-0 items-center text-sm text-muted-foreground`},r),n.default.createElement(`pre`,{"data-rf-code-theme":h,"data-rf-code-background":g,className:X(`relative min-w-0 flex-1 overflow-auto rounded-md border border-border p-4 text-sm`,Yd[h],Xd[g],o||d.Code.className)},s&&n.default.createElement(`button`,{onClick:()=>A(p),className:`absolute right-2 top-2 inline-flex items-center justify-center rounded-md bg-secondary px-2 py-1 text-xs font-medium text-secondary-foreground transition-colors hover:bg-secondary/80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,title:f.copyCode,"aria-label":f.copyCode},n.default.createElement(Q,{name:`clipboard`,size:14})),n.default.createElement(`code`,{ref:u,className:`language-${m}`},p)),i&&n.default.createElement(`div`,{className:`flex shrink-0 items-center text-sm text-muted-foreground`},i)))};function $d(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function ef(e){let t=e;return()=>{t=t+1831565813>>>0;let e=t;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}}function tf(e){let t=ef($d(e)),n=[];for(let e=0;e<5;e++)for(let r=0;r<3;r++)t()<.5||(n.push([e,r]),r<2&&n.push([e,4-r]));return n.length||n.push([2,2]),{cells:n,hue:Math.floor(t()*360)}}var nf=({value:e,size:t=40,title:r=void 0,before:i=void 0,after:a=void 0,wrapperClassName:o=void 0,className:s=void 0})=>{let c=q(`identicon`),{cells:l,hue:u}=tf(e),d=`hsl(${u} 55% 52%)`,f=n.default.createElement(`svg`,{width:t,height:t,viewBox:`-0.5 -0.5 6 6`,shapeRendering:`crispEdges`,className:X(`shrink-0`,s||c.Identicon?.className||`rounded-md bg-muted`),...r?{role:`img`,"aria-label":r}:{"aria-hidden":!0}},r&&n.default.createElement(`title`,null,r),l.map(([e,t])=>n.default.createElement(`rect`,{key:`${e}-${t}`,x:t,y:e,width:1,height:1,fill:d})));return!i&&!a?f:n.default.createElement(`div`,{className:X(`flex items-center gap-3`,o||c.Identicon?.wrapperClassName)},i&&n.default.createElement(`div`,{className:`shrink-0 self-center`},i),f,a&&n.default.createElement(`div`,{className:`min-w-0 self-center`},a))};function rf(e,t=1){return typeof e==`string`&&e.startsWith(`--`)?e:`--rf-chart-${(Math.max(1,Math.round(typeof e==`number`?e:t))-1)%8+1}`}var af=(e,t)=>t===void 0?`hsl(var(${e}))`:`hsl(var(${e}) / ${t})`,of=`hsl(var(--rf-muted-foreground))`,sf=`hsl(var(--rf-border))`;function cf(e){if(!(e>0))return 1;let t=10**Math.floor(Math.log10(e)),n=e/t;return(n<=1?1:n<=2?2:n<=2.5?2.5:n<=5?5:10)*t}function lf(e,t,n=4){return Array.from({length:n+1},(r,i)=>e+(t-e)*i/n)}function uf(e){let{locale:t}=ht(),[r]=(0,n.useState)(()=>new Intl.NumberFormat(t,{maximumFractionDigits:2}));return e??(e=>r.format(e))}var df=()=>typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches===!0,ff=e=>1-(1-e)**3;function pf(e,t=600,r=15){let[i,a]=(0,n.useState)(()=>df()?[...e]:e.map(()=>0)),o=(0,n.useRef)(i),s=e.join(`|`);return(0,n.useEffect)(()=>{let n=o.current.length===e.length?o.current:e.map(()=>0);if(df()||typeof requestAnimationFrame>`u`){o.current=[...e],a([...e]);return}let i=performance.now(),s=t+r*Math.max(0,e.length-1),c=0,l=u=>{let d=e.map((e,a)=>{let o=Math.min(1,Math.max(0,(u-i-a*r)/t));return(n[a]??0)+(e-(n[a]??0))*ff(o)});o.current=d,a(d),u-i<s&&(c=requestAnimationFrame(l))};return c=requestAnimationFrame(l),()=>cancelAnimationFrame(c)},[s,t,r]),i}function mf(e,t=700,r=0){let[i,a]=(0,n.useState)(()=>+!!df());return(0,n.useEffect)(()=>{if(df()||typeof requestAnimationFrame>`u`){a(1);return}let e=performance.now()+r,n=0,i=r=>{let o=Math.min(1,Math.max(0,(r-e)/t));a(ff(o)),o<1&&(n=requestAnimationFrame(i))};return a(0),n=requestAnimationFrame(i),()=>cancelAnimationFrame(n)},[e,t,r]),i}var hf=typeof window>`u`?n.useEffect:n.useLayoutEffect;function gf(e){let t=(0,n.useRef)(null),[r,i]=(0,n.useState)(e);return hf(()=>{let e=t.current;if(!e)return;let n=()=>{let t=Math.round(e.getBoundingClientRect().width);t>0&&i(t)};if(n(),typeof ResizeObserver>`u`)return;let r=new ResizeObserver(n);return r.observe(e),()=>r.disconnect()},[]),[t,r]}function _f({items:e}){return e.length===0?null:n.default.createElement(`figcaption`,{className:`flex flex-wrap gap-x-4 gap-y-1 text-xs text-muted-foreground`},e.map(e=>n.default.createElement(`span`,{key:e.label,className:`inline-flex items-center gap-1.5`},e.shape===`dashed`?n.default.createElement(`span`,{"aria-hidden":`true`,className:`inline-block w-4 border-t-2 border-dashed`,style:{borderColor:af(e.token)}}):n.default.createElement(`span`,{"aria-hidden":`true`,className:e.shape===`line`?`inline-block h-0.5 w-4 rounded`:e.shape===`dot`?`inline-block size-2.5 rounded-full`:`inline-block size-2.5 rounded-sm`,style:{background:af(e.token)}}),e.label)))}function vf(){let[e,t]=(0,n.useState)(null);return{show:(0,n.useCallback)((e,n,r)=>{t({x:e.clientX,y:e.clientY,title:n,rows:r})},[]),showAt:(0,n.useCallback)((e,n,r)=>{let i=e.currentTarget.getBoundingClientRect();t({x:i.left+i.width/2,y:i.top,title:n,rows:r})},[]),hide:(0,n.useCallback)(()=>t(null),[]),element:e&&typeof document<`u`?(0,c.createPortal)(n.default.createElement(`div`,{role:`tooltip`,className:`pointer-events-none fixed z-[100] min-w-40 rounded-md border border-border bg-popover px-3 py-2 text-xs text-popover-foreground shadow-lg`,style:{left:Math.max(8,Math.min(e.x+14,window.innerWidth-240)),top:Math.max(8,Math.min(e.y+14,window.innerHeight-40-e.rows.length*20))}},n.default.createElement(`div`,{className:`mb-1 font-semibold text-foreground`},e.title),e.rows.map(e=>n.default.createElement(`div`,{key:e.label,className:`flex items-center justify-between gap-4`},n.default.createElement(`span`,{className:`inline-flex items-center gap-1.5 text-muted-foreground`},e.token&&n.default.createElement(`span`,{"aria-hidden":`true`,className:`inline-block size-2 rounded-sm`,style:{background:af(e.token)}}),e.label),n.default.createElement(`span`,{className:`font-medium tabular-nums text-foreground`},e.value)))),document.body):null}}function yf({caption:e,columns:t,rows:r}){let{dict:i}=ht();return r.length===0?null:n.default.createElement(`table`,{className:`sr-only`},n.default.createElement(`caption`,null,`${i.charts.dataTable}: ${e}`),n.default.createElement(`thead`,null,n.default.createElement(`tr`,null,n.default.createElement(`th`,{scope:`col`}),t.map(e=>n.default.createElement(`th`,{key:e,scope:`col`},e)))),n.default.createElement(`tbody`,null,r.map((e,t)=>n.default.createElement(`tr`,{key:`${e.label}-${t}`},n.default.createElement(`th`,{scope:`row`},e.label),e.values.map((e,t)=>n.default.createElement(`td`,{key:t},e))))))}function bf({height:e}){let{dict:t}=ht();return n.default.createElement(`div`,{className:`flex items-center justify-center text-sm text-muted-foreground`,style:{height:e}},t.charts.noData)}function xf(e,t,n,r){return{onPointerMove:r=>e.show(r,t,n),onPointerLeave:e.hide,...r?{tabIndex:0,role:`img`,"aria-label":`${t}: ${n.map(e=>`${e.label} ${e.value}`).join(`, `)}`,onFocus:r=>e.showAt(r,t,n),onBlur:e.hide,className:`outline-none focus-visible:stroke-ring focus-visible:[stroke-width:2]`}:{}}}function Sf({columns:e,ariaLabel:t,color:r,format:i,markers:a=[],axisLabel:o,showValues:s=!0,height:c=250,className:l,onColumnClick:u}){let d=uf(i),f=vf(),[p,m]=gf(520),h=pf(e.map(e=>e.value),500,30),g=mf(a.map(e=>e.position).join(`|`),400,350);if(e.length===0)return n.default.createElement(bf,{height:c});let _={top:24,right:8,bottom:30,left:44},v=cf(Math.max(...e.map(e=>e.value))*1.15),y=c-_.bottom,b=e=>y-e/v*(y-_.top),x=(m-_.left-_.right)/Math.max(1,e.length),S=Math.min(64,x*.72),C=e.length<=40,w=rf(r);return n.default.createElement(`figure`,{ref:p,className:X(`space-y-2`,l)},n.default.createElement(`svg`,{viewBox:`0 0 ${m} ${c}`,className:`h-auto w-full`,role:`img`,"aria-label":t},lf(0,v).map(e=>n.default.createElement(`g`,{key:e},n.default.createElement(`line`,{x1:_.left,x2:m-_.right,y1:b(e),y2:b(e),stroke:sf,strokeDasharray:e===0?void 0:`3 4`}),n.default.createElement(`text`,{x:_.left-6,y:b(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11`,fill:of},d(e)))),e.map((e,i)=>{let a=_.left+x*i+(x-S)/2,o=h[i]??0,l=b(o),p=e.tooltip??[{label:t,value:d(e.value),token:rf(e.color??r)}];return n.default.createElement(`g`,{key:`${e.label}-${i}`},n.default.createElement(`rect`,{x:a,y:l,width:S,height:Math.max(0,y-l),rx:3,fill:af(e.color===void 0?w:rf(e.color))}),s&&e.value>0&&n.default.createElement(`text`,{x:a+S/2,y:l-5,textAnchor:`middle`,fontSize:`11`,fill:`hsl(var(--rf-foreground))`,className:`tabular-nums`},d(o)),n.default.createElement(`text`,{x:a+S/2,y:c-12,textAnchor:`middle`,fontSize:`11`,fill:of},e.label),n.default.createElement(`rect`,{x:_.left+x*i,y:_.top,width:x,height:y-_.top,fill:`transparent`,style:u?{cursor:`pointer`}:void 0,onClick:u?()=>u(e,i):void 0,...xf(f,e.label,p,C)}))}),a.map(e=>{let t=_.left+x*e.position;return n.default.createElement(`g`,{key:e.label,opacity:g,pointerEvents:`none`},n.default.createElement(`line`,{x1:t,x2:t,y1:_.top-8,y2:y,stroke:`hsl(var(--rf-foreground))`,strokeWidth:1.5,strokeDasharray:e.dashed?`4 3`:void 0}),n.default.createElement(`text`,{x:t+5,y:_.top-10,fontSize:`11`,fill:`hsl(var(--rf-foreground))`},e.label))}),o&&n.default.createElement(`text`,{x:m-_.right,y:c-1,textAnchor:`end`,fontSize:`11`,fill:`hsl(var(--rf-muted-foreground))`},o)),n.default.createElement(yf,{caption:t,columns:[t],rows:e.map(e=>({label:e.label,values:[d(e.value)]}))}),f.element)}function Cf({series:e,labels:t,ariaLabel:r,titles:i,labelEvery:a=1,format:o,comparison:s,comparisonLabel:c,height:l=250,className:u}){let d=uf(o),{dict:f}=ht(),p=vf(),[m,h]=gf(960),g=t.length,_=e.flatMap(e=>t.map((t,n)=>e.values[n]??0)),v=pf([..._,...s??[]],550,6);if(g===0||e.length===0)return n.default.createElement(bf,{height:l});let y={top:12,right:8,bottom:28,left:64},b=(e,t)=>v[e*g+t]??0,x=t.map((t,n)=>e.reduce((e,t)=>e+(t.values[n]??0),0)),S=cf(Math.max(...x,...s??[0])*1.05),C=l-y.bottom,w=e=>C-e/S*(C-y.top),T=(h-y.left-y.right)/g,E=Math.min(44,T*.62),D=e=>y.left+T*e+T/2,O=e.map((e,t)=>rf(e.color,t+1)),k=g<=40;return n.default.createElement(`figure`,{ref:m,className:X(`space-y-2`,u)},n.default.createElement(_f,{items:[...e.map((e,t)=>({label:e.label,token:O[t]})),...s&&c?[{label:c,token:`--rf-muted-foreground`,shape:`dashed`}]:[]]}),n.default.createElement(`svg`,{viewBox:`0 0 ${h} ${l}`,className:`h-auto w-full`,role:`img`,"aria-label":r},lf(0,S).map(e=>n.default.createElement(`g`,{key:e},n.default.createElement(`line`,{x1:y.left,x2:h-y.right,y1:w(e),y2:w(e),stroke:sf,strokeDasharray:e===0?void 0:`3 4`}),n.default.createElement(`text`,{x:y.left-8,y:w(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11`,fill:of},d(e)))),t.map((e,t)=>t%a===0||t===g-1?n.default.createElement(`text`,{key:t,x:D(t),y:l-8,textAnchor:`middle`,fontSize:`11`,fill:of},e):null),t.map((t,r)=>{let a=0,o=e.map((e,t)=>{let n=a;return a+=Math.max(0,b(t,r)),{id:e.id,token:O[t],from:n,to:a}}).filter(e=>e.to-e.from>0),l=[...e.map((e,t)=>({label:e.label,value:d(e.values[r]??0),token:O[t]})),...s?[{label:c??``,value:d(s[r]??0)}]:[]],u=s?v[_.length+r]??0:null;return n.default.createElement(`g`,{key:`${t}-${r}`},o.map((e,t)=>{let i=w(e.to),a=Math.max(0,w(e.from)-i-(t>0?2:0));return n.default.createElement(`rect`,{key:e.id,x:D(r)-E/2,y:i,width:E,height:a,rx:t===o.length-1?3:0,fill:af(e.token)})}),u!==null&&u>0&&n.default.createElement(`line`,{x1:D(r)-E/2-4,x2:D(r)+E/2+4,y1:w(u),y2:w(u),stroke:`hsl(var(--rf-muted-foreground))`,strokeWidth:2,strokeDasharray:`4 3`}),n.default.createElement(`rect`,{x:y.left+T*r,y:y.top,width:T,height:C-y.top,fill:`transparent`,...xf(p,`${i?.[r]??t} · ${f.charts.total} ${d(x[r]??0)}`,l,k)}))})),n.default.createElement(yf,{caption:r,columns:[...e.map(e=>e.label),f.charts.total],rows:t.map((t,n)=>({label:i?.[n]??t,values:[...e.map(e=>d(e.values[n]??0)),d(x[n]??0)]}))}),p.element)}function wf({series:e,columns:t,ariaLabel:r,labelEvery:i=1,format:a,height:o=250,className:s,onColumnClick:c}){let l=uf(a),{dict:u}=ht(),d=vf(),[f,p]=gf(960),m=pf(t.flatMap(e=>e.segments.map(e=>Math.max(0,e.value))),550,6);if(t.length===0)return n.default.createElement(bf,{height:o});let h=new Map(e.map((e,t)=>[e.id,rf(e.color,t+1)])),g=new Map(e.map(e=>[e.id,e.label])),_=t=>h.get(t)??rf(void 0,e.length+1),v=e=>g.get(e)??e,y={top:12,right:8,bottom:28,left:64},b=t.map(e=>e.segments.reduce((e,t)=>e+Math.max(0,t.value),0)),x=cf(Math.max(...b)*1.05),S=o-y.bottom,C=e=>S-e/x*(S-y.top),w=t.length,T=(p-y.left-y.right)/w,E=Math.min(44,T*.62),D=e=>y.left+T*e+T/2,O=w<=40,k=t.reduce((e,n,r)=>[...e,r===0?0:e[r-1]+t[r-1].segments.length],[]),A=e=>e.segments.map(e=>`${v(e.series)} ${l(e.value)}`).join(` → `);return n.default.createElement(`figure`,{ref:f,className:X(`space-y-2`,s)},n.default.createElement(_f,{items:e.map(e=>({label:e.label,token:_(e.id)}))}),n.default.createElement(`svg`,{viewBox:`0 0 ${p} ${o}`,className:`h-auto w-full`,role:`img`,"aria-label":r},lf(0,x).map(e=>n.default.createElement(`g`,{key:e},n.default.createElement(`line`,{x1:y.left,x2:p-y.right,y1:C(e),y2:C(e),stroke:sf,strokeDasharray:e===0?void 0:`3 4`}),n.default.createElement(`text`,{x:y.left-8,y:C(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11`,fill:of},l(e)))),t.map((e,t)=>t%i===0||t===w-1?n.default.createElement(`text`,{key:t,x:D(t),y:o-8,textAnchor:`middle`,fontSize:`11`,fill:of},e.label):null),t.map((e,t)=>{let r=0,i=e.segments.map((e,n)=>{let i=r;return r+=m[k[t]+n]??0,{key:`${n}-${e.series}`,token:_(e.series),from:i,to:r}}).filter(e=>e.to-e.from>0),a=[...e.segments.map((e,t)=>({label:`${t+1}. ${v(e.series)}`,value:l(e.value),token:_(e.series)})),...e.tooltip??[]];return n.default.createElement(`g`,{key:`${e.label}-${t}`,"data-rf-sequence-column":t},i.map((e,r)=>{let a=C(e.to),o=Math.max(0,C(e.from)-a-(r>0?2:0));return n.default.createElement(`rect`,{key:e.key,"data-rf-sequence-segment":e.token,x:D(t)-E/2,y:a,width:E,height:o,rx:r===i.length-1?3:0,fill:af(e.token)})}),n.default.createElement(`rect`,{x:y.left+T*t,y:y.top,width:T,height:S-y.top,fill:`transparent`,style:c?{cursor:`pointer`}:void 0,onClick:c?()=>c(e,t):void 0,...xf(d,`${e.title??e.label} · ${u.charts.total} ${l(b[t]??0)}`,a,O)}))})),n.default.createElement(yf,{caption:r,columns:[u.charts.sequence,u.charts.total],rows:t.map((e,t)=>({label:e.title??e.label,values:[A(e),l(b[t]??0)]}))}),d.element)}function Tf({bars:e,upLabel:t,downLabel:r,ariaLabel:i,upColor:a=1,downColor:o=2,titles:s,labelEvery:c=1,format:l,height:u=250,className:d}){let f=uf(l),p=vf(),[m,h]=gf(960),g=e.length,_=pf(e.flatMap(e=>[e.up??0,e.down??0]),550,6);if(g===0)return n.default.createElement(bf,{height:u});let v={top:10,right:8,bottom:26,left:64},y=cf(Math.max(0,...e.flatMap(e=>[e.up??0,e.down??0]))*1.05),b=(v.top+u-v.bottom)/2,x=b-v.top,S=(h-v.left-v.right)/g,C=Math.max(2,Math.min(40,S*.6)),w=e=>v.left+S*e+S/2,T=rf(a),E=rf(o,2),D=g<=40,O=e=>e===null?`—`:f(e);return n.default.createElement(`figure`,{ref:m,className:X(`space-y-2`,d)},n.default.createElement(_f,{items:[{label:t,token:T},{label:r,token:E}]}),n.default.createElement(`svg`,{viewBox:`0 0 ${h} ${u}`,className:`h-auto w-full`,role:`img`,"aria-label":i},[-1,-.5,0,.5,1].map(e=>n.default.createElement(`g`,{key:e},n.default.createElement(`line`,{x1:v.left,x2:h-v.right,y1:b-e*x,y2:b-e*x,stroke:e===0?of:sf,strokeDasharray:e===0?void 0:`3 4`}),n.default.createElement(`text`,{x:v.left-8,y:b-e*x,textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11`,fill:of},f(Math.abs(e)*y)))),e.map((e,t)=>t%c===0||t===g-1?n.default.createElement(`text`,{key:t,x:w(t),y:u-8,textAnchor:`middle`,fontSize:`11`,fill:of},e.label):null),e.map((e,i)=>{let a=(_[i*2]??0)/y*x,o=(_[i*2+1]??0)/y*x,c=[{label:t,value:O(e.up),token:T},{label:r,value:O(e.down),token:E}];return n.default.createElement(`g`,{key:`${e.label}-${i}`},e.up!==null&&n.default.createElement(`rect`,{x:w(i)-C/2,y:b-Math.max(1,a)-1,width:C,height:Math.max(1,a),rx:2,fill:af(T)}),e.down!==null&&n.default.createElement(`rect`,{x:w(i)-C/2,y:b+1,width:C,height:Math.max(1,o),rx:2,fill:af(E)}),n.default.createElement(`rect`,{x:v.left+S*i,y:v.top,width:S,height:u-v.top-v.bottom,fill:`transparent`,...xf(p,s?.[i]??e.label,c,D)}))})),n.default.createElement(yf,{caption:i,columns:[t,r],rows:e.map((e,t)=>({label:s?.[t]??e.label,values:[O(e.up),O(e.down)]}))}),p.element)}var Ef=e=>e.map(([e,t],n)=>`${n?`L`:`M`}${e.toFixed(1)},${t.toFixed(1)}`).join(``);function Df(e){let t=[],n=[];return e.forEach((e,r)=>{e==null||!Number.isFinite(e)?(n.length&&t.push(n),n=[]):n.push(r)}),n.length&&t.push(n),t}function Of(e,t,n,r,i){let a=e.currentTarget.ownerSVGElement?.getBoundingClientRect();if(!a||i===0)return 0;let o=(e.clientX-a.left)/a.width*t;return Math.max(0,Math.min(i-1,Math.round((o-n)/(t-n-r)*(i-1))))}function kf({series:e,labels:t,ariaLabel:r,titles:i,labelEvery:a=1,format:o,threshold:s,baseline:c,domain:l,height:u=240,className:d}){let f=uf(o),p=vf(),[m,h]=gf(520),[g,_]=(0,n.useState)(null),v=t.length,y=e.flatMap(e=>t.map((t,n)=>e.values[n]??NaN)),b=[...y.filter(e=>Number.isFinite(e)),...e.flatMap(e=>[...e.band?.min??[],...e.band?.max??[]]).filter(e=>typeof e==`number`)],x=l?.[0]??Math.min(0,...b),S=l?.[1]??cf(Math.max(...b,s?.value??0)*1.1),C=pf(y.map(e=>Number.isFinite(e)?e:x),650,0),w=mf(t.join(`|`)+e.length,800),T=n.default.useId().replace(/[^a-zA-Z0-9_-]/g,``);if(v===0||e.length===0)return n.default.createElement(bf,{height:u});let E={top:14,right:12,bottom:28,left:50},D=u-E.bottom,O=e=>E.left+(v<=1?(h-E.left-E.right)/2:e/(v-1)*(h-E.left-E.right)),k=e=>D-(e-x)/(S-x||1)*(D-E.top),A=`chart-line-${T}`,j=E.left+(h-E.left-E.right)*w+6,M=e.map((e,t)=>e.dashed?`--rf-muted-foreground`:rf(e.color,t+1)),N=k(Math.max(x,Math.min(S,c??x))),P=(e,t)=>[O(t),k(C[e*v+t]??x)],F=e=>e==null?`—`:f(e),I=t=>e.map((e,n)=>({label:e.label,value:F(e.values[t]),token:M[n]}));return n.default.createElement(`figure`,{ref:m,className:X(`space-y-2`,d)},e.length>1&&n.default.createElement(_f,{items:e.map((e,t)=>({label:e.label,token:M[t],shape:e.dashed?`dashed`:`line`}))}),n.default.createElement(`svg`,{viewBox:`0 0 ${h} ${u}`,className:`h-auto w-full`,role:`img`,"aria-label":r},n.default.createElement(`defs`,null,n.default.createElement(`clipPath`,{id:A},n.default.createElement(`rect`,{x:0,y:0,width:j,height:u}))),lf(x,S).map(e=>n.default.createElement(`g`,{key:e},n.default.createElement(`line`,{x1:E.left,x2:h-E.right,y1:k(e),y2:k(e),stroke:sf,strokeDasharray:e===x?void 0:`3 4`}),n.default.createElement(`text`,{x:E.left-6,y:k(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11`,fill:of},f(e)))),t.map((e,t)=>t%a===0||t===v-1?n.default.createElement(`text`,{key:t,x:O(t),y:u-8,textAnchor:v>1&&t===0?`start`:v>1&&t===v-1?`end`:`middle`,fontSize:`11`,fill:of},e):null),c!==void 0&&c>x&&c<S&&n.default.createElement(`line`,{x1:E.left,x2:h-E.right,y1:k(c),y2:k(c),stroke:`hsl(var(--rf-muted-foreground))`,strokeWidth:1}),s&&s.value>x&&s.value<S&&n.default.createElement(`g`,null,n.default.createElement(`rect`,{x:E.left,y:E.top,width:h-E.left-E.right,height:Math.max(0,k(s.value)-E.top),fill:`hsl(var(--rf-destructive) / 0.07)`}),n.default.createElement(`line`,{x1:E.left,x2:h-E.right,y1:k(s.value),y2:k(s.value),stroke:`hsl(var(--rf-destructive))`,strokeWidth:1.2,strokeDasharray:`5 4`}),n.default.createElement(`text`,{x:h-E.right,y:k(s.value)-6,textAnchor:`end`,fontSize:`11`,fill:`hsl(var(--rf-foreground))`},s.label)),n.default.createElement(`g`,{clipPath:`url(#${A})`},e.map((e,r)=>{let i=M[r],a=Df(t.map((t,n)=>e.values[n]??null)),o=e.band?Df(t.map((t,n)=>e.band.min[n]===null||e.band.min[n]===void 0?null:e.band.max[n]??null)):[];return n.default.createElement(`g`,{key:e.id},o.map(t=>n.default.createElement(`polygon`,{key:`band-${t[0]}`,points:[...t.map(t=>`${O(t)},${k(e.band.max[t])}`),...[...t].reverse().map(t=>`${O(t)},${k(e.band.min[t])}`)].join(` `),fill:af(i,.14)})),e.area&&!e.dashed&&a.map(e=>e.length>1&&n.default.createElement(`path`,{key:`area-${e[0]}`,d:`${Ef(e.map(e=>P(r,e)))}L${O(e[e.length-1])},${N}L${O(e[0])},${N}Z`,fill:af(i,.14)})),a.map(t=>t.length>1?n.default.createElement(`path`,{key:`line-${t[0]}`,d:Ef(t.map(e=>P(r,e))),fill:`none`,strokeWidth:2,strokeLinejoin:`round`,strokeLinecap:`round`,stroke:af(i),strokeDasharray:e.dashed?`5 4`:void 0}):n.default.createElement(`circle`,{key:`dot-${t[0]}`,cx:P(r,t[0])[0],cy:P(r,t[0])[1],r:2.5,fill:af(i)})))})),g!==null&&n.default.createElement(`g`,{pointerEvents:`none`},n.default.createElement(`line`,{x1:O(g),x2:O(g),y1:E.top,y2:D,stroke:`hsl(var(--rf-muted-foreground))`,strokeWidth:1}),e.map((e,t)=>{let r=e.values[g];return r==null?null:n.default.createElement(`circle`,{key:e.id,cx:O(g),cy:k(r),r:4,fill:af(M[t]),stroke:`hsl(var(--rf-card))`,strokeWidth:2})})),n.default.createElement(`rect`,{x:E.left,y:E.top,width:h-E.left-E.right,height:D-E.top,fill:`transparent`,onPointerMove:e=>{let n=Of(e,h,E.left,E.right,v);_(n),p.show(e,i?.[n]??t[n]??``,I(n))},onPointerLeave:()=>{_(null),p.hide()}})),n.default.createElement(yf,{caption:r,columns:e.map(e=>e.label),rows:t.map((t,n)=>({label:i?.[n]??t,values:e.map(e=>F(e.values[n]))}))}),p.element)}function Af({series:e,labels:t,ariaLabel:r,titles:i,labelEvery:a=1,format:o,stacked:s=!0,height:c=240,className:l}){let u=uf(o),{dict:d}=ht(),f=vf(),[p,m]=gf(520),[h,g]=(0,n.useState)(null),_=t.length,v=e.flatMap(e=>t.map((t,n)=>e.values[n]??0)),y=pf(v,650,0);if(_===0||e.length===0)return n.default.createElement(bf,{height:c});let b={top:12,right:12,bottom:28,left:50},x=c-b.bottom,S=t.map((t,n)=>e.reduce((e,t)=>e+(t.values[n]??0),0)),C=cf(Math.max(0,...s?S:v)*1.05),w=e=>b.left+(_<=1?(m-b.left-b.right)/2:e/(_-1)*(m-b.left-b.right)),T=e=>x-e/C*(x-b.top),E=e.map((e,t)=>rf(e.color,t+1)),D=e.map((n,r)=>t.map((t,n)=>{let i=y[r*_+n]??0,a=s?e.slice(0,r).reduce((e,t,r)=>e+(y[r*_+n]??0),0):0;return{low:a,high:a+i}})),O=t=>[...e.map((e,n)=>({label:e.label,value:u(e.values[t]??0),token:E[n]})),...s?[{label:d.charts.total,value:u(S[t]??0)}]:[]];return n.default.createElement(`figure`,{ref:p,className:X(`space-y-2`,l)},n.default.createElement(_f,{items:e.map((e,t)=>({label:e.label,token:E[t]}))}),n.default.createElement(`svg`,{viewBox:`0 0 ${m} ${c}`,className:`h-auto w-full`,role:`img`,"aria-label":r},lf(0,C).map(e=>n.default.createElement(`g`,{key:e},n.default.createElement(`line`,{x1:b.left,x2:m-b.right,y1:T(e),y2:T(e),stroke:sf,strokeDasharray:e===0?void 0:`3 4`}),n.default.createElement(`text`,{x:b.left-6,y:T(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11`,fill:of},u(e)))),t.map((e,t)=>t%a===0||t===_-1?n.default.createElement(`text`,{key:t,x:w(t),y:c-8,textAnchor:_>1&&t===0?`start`:_>1&&t===_-1?`end`:`middle`,fontSize:`11`,fill:of},e):null),e.map((e,t)=>{let r=D[t],i=r.map((e,t)=>[w(t),T(e.high)]),a=r.map((e,t)=>[w(t),T(e.low)]).reverse();return n.default.createElement(`g`,{key:e.id},n.default.createElement(`path`,{d:`${Ef(i)}${a.map(([e,t])=>`L${e.toFixed(1)},${t.toFixed(1)}`).join(``)}Z`,fill:af(E[t],s?.72:.2)}),n.default.createElement(`path`,{d:Ef(i),fill:`none`,stroke:af(E[t]),strokeWidth:1.5,strokeLinejoin:`round`}))}),h!==null&&n.default.createElement(`line`,{x1:w(h),x2:w(h),y1:b.top,y2:x,stroke:`hsl(var(--rf-muted-foreground))`,strokeWidth:1,pointerEvents:`none`}),n.default.createElement(`rect`,{x:b.left,y:b.top,width:m-b.left-b.right,height:x-b.top,fill:`transparent`,onPointerMove:e=>{let n=Of(e,m,b.left,b.right,_);g(n),f.show(e,i?.[n]??t[n]??``,O(n))},onPointerLeave:()=>{g(null),f.hide()}})),n.default.createElement(yf,{caption:r,columns:[...e.map(e=>e.label),...s?[d.charts.total]:[]],rows:t.map((t,n)=>({label:i?.[n]??t,values:[...e.map(e=>u(e.values[n]??0)),...s?[u(S[n]??0)]:[]]}))}),f.element)}function jf({values:e,color:t=`--rf-primary`,height:r=30,className:i,ariaLabel:a}){let o=rf(t),s=e.map(e=>e??NaN),c=s.filter(e=>Number.isFinite(e)),l=c.length?Math.min(...c):0,u=c.length?Math.max(...c):1,d=pf(s.map(e=>Number.isFinite(e)?e:l),700,0).map((e,t)=>({index:t,value:e,known:Number.isFinite(s[t])})).filter(e=>e.known).map(t=>[e.length<=1?80:1+t.index/(e.length-1)*158,r-3-(t.value-l)/(u-l||1)*(r-8)]),f=a?{role:`img`,"aria-label":a}:{"aria-hidden":!0};if(d.length===0)return n.default.createElement(`svg`,{viewBox:`0 0 160 ${r}`,className:X(`block w-full`,i),style:{height:r},...f});let p=d.map(([e,t],n)=>`${n?`L`:`M`}${e.toFixed(1)},${t.toFixed(1)}`).join(``),[m,h]=d[d.length-1];return n.default.createElement(`svg`,{viewBox:`0 0 160 ${r}`,preserveAspectRatio:`none`,className:X(`block w-full`,i),style:{height:r},...f},n.default.createElement(`path`,{d:`${p}L${m},${r-1}L${d[0][0]},${r-1}Z`,fill:af(o,.12)}),n.default.createElement(`path`,{d:p,fill:`none`,stroke:af(o),strokeWidth:1.6,strokeLinejoin:`round`,vectorEffect:`non-scaling-stroke`}),n.default.createElement(`circle`,{cx:m,cy:h,r:2.4,fill:af(o)}))}function Mf({points:e,ariaLabel:t,series:r=[],xLabel:i,yLabel:a,sizeLabel:o,formatX:s,formatY:c,formatSize:l,showLabels:u,height:d=280,className:f,onPointClick:p}){let m=uf(s),h=uf(c),g=uf(l),_=vf(),[v,y]=gf(520),b=mf(e.map(e=>e.id).join(`|`),600);if(e.length===0)return n.default.createElement(bf,{height:d});let x={top:14,right:16,bottom:40,left:56},S=cf(Math.max(...e.map(e=>e.x))*1.05),C=cf(Math.max(...e.map(e=>e.y))*1.05),w=Math.max(0,...e.map(e=>e.size??0)),T=d-x.bottom,E=e=>x.left+e/S*(y-x.left-x.right),D=e=>T-e/C*(T-x.top),O=e=>w>0&&e!==void 0?4+10*Math.sqrt(Math.max(0,e)/w):6,k=e=>{let t=r.findIndex(t=>t.id===e);return rf(r[Math.max(0,t)]?.color,Math.max(0,t)+1)},A=u??e.length<=12,j=e.length<=40,M=e=>e.tooltip??[{label:i,value:m(e.x)},{label:a,value:h(e.y)},...e.size!==void 0&&o?[{label:o,value:g(e.size)}]:[]];return n.default.createElement(`figure`,{ref:v,className:X(`space-y-2`,f)},r.length>1&&n.default.createElement(_f,{items:r.map((e,t)=>({label:e.label,token:rf(e.color,t+1),shape:`dot`}))}),n.default.createElement(`svg`,{viewBox:`0 0 ${y} ${d}`,className:`h-auto w-full`,role:`img`,"aria-label":t},lf(0,C).map(e=>n.default.createElement(`g`,{key:`y-${e}`},n.default.createElement(`line`,{x1:x.left,x2:y-x.right,y1:D(e),y2:D(e),stroke:sf,strokeDasharray:e===0?void 0:`3 4`}),n.default.createElement(`text`,{x:x.left-6,y:D(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11`,fill:of},h(e)))),lf(0,S).map(e=>n.default.createElement(`g`,{key:`x-${e}`},n.default.createElement(`line`,{x1:E(e),x2:E(e),y1:x.top,y2:T,stroke:sf,strokeDasharray:e===0?void 0:`3 4`}),n.default.createElement(`text`,{x:E(e),y:T+16,textAnchor:`middle`,fontSize:`11`,fill:of},m(e)))),n.default.createElement(`text`,{x:y-x.right,y:d-4,textAnchor:`end`,fontSize:`11`,fill:of},i),n.default.createElement(`text`,{x:x.left,y:x.top-4,fontSize:`11`,fill:of},a),e.map(e=>{let t=k(e.series),r=O(e.size);return n.default.createElement(`g`,{key:e.id,opacity:b},n.default.createElement(`circle`,{cx:E(e.x),cy:D(e.y),r,fill:af(t,.55),stroke:af(t),strokeWidth:1.5,style:p?{cursor:`pointer`}:void 0,onClick:p?()=>p(e):void 0,...xf(_,e.label,M(e),j)}),A&&n.default.createElement(`text`,{x:E(e.x)+r+4,y:D(e.y)+4,fontSize:`11`,fill:`hsl(var(--rf-foreground))`,pointerEvents:`none`},e.label))})),n.default.createElement(yf,{caption:t,columns:[i,a,...o?[o]:[]],rows:e.map(e=>({label:e.label,values:[m(e.x),h(e.y),...o?[e.size===void 0?`—`:g(e.size)]:[]]}))}),_.element)}var Nf={good:`hsl(var(--rf-success))`,bad:`hsl(var(--rf-destructive))`,neutral:`hsl(var(--rf-muted-foreground))`};function Pf({rows:e,ariaLabel:t,color:r,format:i,max:a,labelWidth:o=150,legend:s=[],className:c,onRowClick:l}){let u=uf(i),d=vf(),f=pf(e.flatMap(e=>[e.value,e.background??0]),550,22),[p,m]=gf(520);if(e.length===0)return n.default.createElement(bf,{height:80});let h=a??Math.max(1,...e.flatMap(e=>[e.value,e.background??0])),g=Math.max(40,...e.map(e=>(e.valueText??u(e.value)).length*6.5+12)),_=Math.max(0,...e.map(e=>e.trailing?e.trailing.text.length*6.5+10:0)),v=Math.max(40,m-o-_-g),y=e.length*34+4,b=Math.max(4,Math.floor((o-10)/7)),x=e.length<=40;return n.default.createElement(`figure`,{ref:p,className:X(`space-y-2`,c)},n.default.createElement(_f,{items:s}),n.default.createElement(`svg`,{viewBox:`0 0 ${m} ${y}`,className:`h-auto w-full`,role:`img`,"aria-label":t},e.map((e,i)=>{let a=i*34+4,s=f[i*2]??0,c=f[i*2+1]??0,p=v*s/h,g=rf(e.color??r);return n.default.createElement(`g`,{key:e.id},n.default.createElement(`text`,{x:o-10,y:a+17,textAnchor:`end`,fontSize:`12`,fill:`hsl(var(--rf-foreground))`},e.label.length>b?`${e.label.slice(0,b-1)}…`:e.label),e.background!==void 0&&n.default.createElement(`rect`,{x:o,y:a+4,width:v*c/h,height:20,rx:4,fill:`hsl(var(--rf-muted))`}),n.default.createElement(`rect`,{x:o,y:a+4,width:Math.max(0,p),height:20,rx:4,fill:af(g)}),n.default.createElement(`text`,{x:o+Math.max(p,v*c/h)+6,y:a+18,fontSize:`11.5`,fill:`hsl(var(--rf-foreground))`,className:`tabular-nums`},e.valueText??u(s)),e.trailing&&n.default.createElement(`text`,{x:m-2,y:a+18,textAnchor:`end`,fontSize:`11.5`,fill:Nf[e.trailing.tone],className:`tabular-nums`},e.trailing.text),n.default.createElement(`rect`,{x:0,y:a,width:m,height:34,fill:`transparent`,style:l?{cursor:`pointer`}:void 0,onClick:l?()=>l(e):void 0,...xf(d,e.label,e.tooltip??[{label:t,value:e.valueText??u(e.value),token:g}],x)}))})),n.default.createElement(yf,{caption:t,columns:[t],rows:e.map(e=>({label:e.label,values:[e.valueText??u(e.value)]}))}),d.element)}function Ff({columns:e,rows:t,ariaLabel:r,labelWidth:i=120,className:a,onRowClick:o}){let s=uf(),c=vf(),[l,u]=gf(720),d=(e,t)=>{let n=e.values[t.id],r=typeof n==`number`?[n]:[...n??[]];return(t.parts?t.parts.map((e,t)=>r[t]??0):[r.reduce((e,t)=>e+t,0)]).map(e=>Math.max(0,e))},f=pf(t.flatMap(t=>e.flatMap(e=>d(t,e))),550,22);if(t.length===0||e.length===0)return n.default.createElement(bf,{height:80});let p=e=>e.format??s,m=0,h=e.map(e=>e.parts?e.parts.map(e=>rf(e.color,++m)):[rf(e.color,++m)]),g=t.map(t=>e.map(e=>d(t,e).reduce((e,t)=>e+t,0))),_=e.map((e,t)=>Math.max(1e-9,...g.map(e=>e[t]??0))),v=t.map((t,n)=>e.map((e,t)=>p(e)(g[n][t]??0))),y=e.length*12+(e.length-1)*4,b=Math.max(0,...t.map(e=>e.trailing?e.trailing.text.length*6.5+10:0)),x=Math.max(36,...v.flat().map(e=>e.length*6.5+10)),S=Math.max(40,u-i-x-b),C=t.length*(y+16)+4,w=Math.max(4,Math.floor((i-10)/7)),T=t.length<=40,E=e.flatMap((e,t)=>e.parts?e.parts.map((e,n)=>({label:e.label,token:h[t][n]})):[{label:e.label,token:h[t][0]}]),D=(t,n)=>e.flatMap((e,r)=>{let i=d(t,e);return e.parts?[{label:e.label,value:v[n][r]},...e.parts.map((t,n)=>({label:t.label,value:p(e)(i[n]??0),token:h[r][n]}))]:[{label:e.label,value:v[n][r],token:h[r][0]}]}),O=0;return n.default.createElement(`figure`,{ref:l,className:X(`space-y-2`,a)},n.default.createElement(_f,{items:E}),n.default.createElement(`svg`,{viewBox:`0 0 ${u} ${C}`,className:`h-auto w-full`,role:`img`,"aria-label":r},t.map((t,r)=>{let a=r*(y+16)+8,s=a+y/2;return n.default.createElement(`g`,{key:t.id,"data-rf-measure-row":t.id},n.default.createElement(`text`,{x:i-10,y:s,textAnchor:`end`,dominantBaseline:`middle`,fontSize:`12`,fill:`hsl(var(--rf-foreground))`},t.label.length>w?`${t.label.slice(0,w-1)}…`:t.label),e.map((e,o)=>{let s=a+o*16,c=i,l=d(t,e).map((e,t)=>{let n=f[O++]??0,r=S*n/_[o],i={key:t,x:c,w:r,token:h[o][t]};return c+=r,i}).filter(e=>e.w>0);return n.default.createElement(`g`,{key:e.id,"data-rf-measure-cell":e.id},l.map(e=>n.default.createElement(`rect`,{key:e.key,"data-rf-measure-part":e.token,x:e.x,y:s,width:e.w,height:12,rx:l.length===1?2:0,fill:af(e.token)})),n.default.createElement(`text`,{x:c+6,y:s+6,dominantBaseline:`middle`,fontSize:`11`,fill:`hsl(var(--rf-foreground))`,className:`tabular-nums`},v[r][o]))}),t.trailing&&n.default.createElement(`text`,{x:u-2,y:s,textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11.5`,fill:Nf[t.trailing.tone],className:`tabular-nums`},t.trailing.text),n.default.createElement(`rect`,{x:0,y:a-8,width:u,height:y+16,fill:`transparent`,style:o?{cursor:`pointer`}:void 0,onClick:o?()=>o(t):void 0,...xf(c,t.label,t.tooltip??D(t,r),T)}))})),n.default.createElement(yf,{caption:r,columns:e.map(e=>e.label),rows:t.map((t,n)=>({label:t.label,values:e.map((e,r)=>e.parts?e.parts.map((n,r)=>`${n.label} ${p(e)(d(t,e)[r]??0)}`).join(` · `):v[n][r])}))}),c.element)}function If({values:e,rowLabels:t,columnLabels:r,columnLabelEvery:i=1,ariaLabel:a,color:o=`--rf-primary`,format:s,cellTitle:c,cellHeight:l=24,className:u}){let d=uf(s),f=vf(),p=r.length,m=Math.min(120,Math.max(36,...t.map(e=>e.length*6.5+10))),[h,g]=gf(m+Math.max(1,p)*21),_=e.flatMap(e=>r.map((t,n)=>e[n]??0)),v=Math.max(1,..._),y=pf(_.map(e=>e/v),380,3);if(e.length===0||p===0)return n.default.createElement(bf,{height:120});let b=Math.max(8,(g-m)/p-2),x=6+e.length*(l+2)+22,S=rf(o),C=_.length<=40;return n.default.createElement(`figure`,{ref:h,className:X(`space-y-2`,u)},n.default.createElement(`svg`,{viewBox:`0 0 ${g} ${x}`,className:`h-auto w-full`,role:`img`,"aria-label":a},t.map((e,t)=>n.default.createElement(`text`,{key:`${e}-${t}`,x:m-6,y:6+t*(l+2)+l/2+4,textAnchor:`end`,fontSize:`10.5`,fill:of},e)),_.map((e,i)=>{let o=Math.floor(i/p),s=i%p,u=c?.(o,s)??`${t[o]??``} · ${r[s]??``}`;return n.default.createElement(`rect`,{key:i,x:m+s*(b+2),y:6+o*(l+2),width:b,height:l,rx:3,fill:af(S),fillOpacity:.06+.9*(y[i]??0),...xf(f,u,[{label:a,value:d(e)}],C)})}),r.map((t,r)=>r%i===0?n.default.createElement(`text`,{key:r,x:m+r*(b+2)+b/2,y:6+e.length*(l+2)+14,textAnchor:`middle`,fontSize:`10.5`,fill:of},t):null)),n.default.createElement(yf,{caption:a,columns:r,rows:e.map((e,n)=>({label:t[n]??``,values:r.map((t,n)=>d(e[n]??0))}))}),f.element)}var Lf=[0,.3,.55,.8,1];function Rf({days:e,ariaLabel:t,color:r=`--rf-primary`,format:i,className:a}){let o=uf(i),{dict:s,locale:c}=ht(),l=vf();if(e.length===0)return n.default.createElement(bf,{height:120});let u=rf(r),d=new Map(e.map(e=>[e.date,e.value])),f=[...e].map(e=>e.date).sort(),p=e=>new Date(`${e}T00:00:00Z`),m=p(f[0]),h=p(f[f.length-1]),g=new Date(m);g.setUTCDate(g.getUTCDate()-(g.getUTCDay()+6)%7);let _=[];for(let e=new Date(g);e<=h;e.setUTCDate(e.getUTCDate()+1)){(e.getUTCDay()+6)%7==0&&_.push([]);let t=e.toISOString().slice(0,10);_[_.length-1].push(e<m?null:{date:t,value:d.has(t)?d.get(t):null})}let v=Math.max(1,...e.map(e=>e.value??0)),y=e=>e===null||e<=0?0:Math.min(4,Math.ceil(e/v*4)),b=(e,t)=>t&&e!==null&&e>0?af(u,Lf[y(e)]):t?`hsl(var(--rf-muted-foreground) / 0.25)`:`hsl(var(--rf-muted))`,x=26+_.length*16,S=new Intl.DateTimeFormat(c,{weekday:`short`,timeZone:`UTC`}),C=new Intl.DateTimeFormat(c,{month:`short`,timeZone:`UTC`}),w=new Intl.DateTimeFormat(c,{dateStyle:`medium`,timeZone:`UTC`}),T=new Date(g),E=e.length<=40,D=``;return n.default.createElement(`figure`,{className:X(`space-y-2`,a)},n.default.createElement(`div`,{className:`overflow-x-auto`},n.default.createElement(`svg`,{viewBox:`0 0 ${x} 128`,width:x,height:128,role:`img`,"aria-label":t},[0,2,4].map(e=>{let t=new Date(T);return t.setUTCDate(t.getUTCDate()+e),n.default.createElement(`text`,{key:e,x:0,y:16+e*16+13-3,fontSize:`10`,fill:of},S.format(t))}),_.map((e,r)=>{let i=e.find(e=>e!==null),a=i?i.date.slice(0,7):``,s=a!==``&&a!==D;return s&&(D=a),n.default.createElement(`g`,{key:r},s&&i&&n.default.createElement(`text`,{x:26+r*16,y:10,fontSize:`10`,fill:`hsl(var(--rf-muted-foreground))`},C.format(p(i.date))),e.map((e,i)=>e===null?null:n.default.createElement(`rect`,{key:e.date,x:26+r*16,y:16+i*16,width:13,height:13,rx:2.5,fill:b(e.value,d.has(e.date)),...xf(l,w.format(p(e.date)),[{label:t,value:e.value===null?`—`:o(e.value)}],E)})))}))),n.default.createElement(`figcaption`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`},n.default.createElement(`span`,null,s.charts.less),Lf.map((e,t)=>n.default.createElement(`span`,{key:t,"aria-hidden":`true`,className:`inline-block size-3 rounded-sm`,style:{background:t===0?`hsl(var(--rf-muted-foreground) / 0.25)`:af(u,Lf[t])}})),n.default.createElement(`span`,null,s.charts.more)),n.default.createElement(yf,{caption:t,columns:[t],rows:e.map(e=>({label:w.format(p(e.date)),values:[e.value===null?`—`:o(e.value)]}))}),l.element)}var zf=()=>typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches===!0;function Bf({value:e,format:t,duration:r=700}){let i=uf(t),[a,o]=(0,n.useState)(e),s=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let t=s.current??0;if(s.current=e,zf()||t===e||typeof requestAnimationFrame>`u`){o(e);return}let n=performance.now(),i=0,a=s=>{let c=Math.min(1,(s-n)/r);o(t+(e-t)*(1-(1-c)**3)),c<1&&(i=requestAnimationFrame(a))};return i=requestAnimationFrame(a),()=>cancelAnimationFrame(i)},[e,r]),n.default.createElement(n.default.Fragment,null,i(a))}var Vf={en:`English`,it:`Italiano`,fr:`Français`,de:`Deutsch`,es:`Español`,pt:`Português`,nl:`Nederlands`,pl:`Polski`,ru:`Русский`,zh:`中文`,ja:`日本語`,ko:`한국어`,ar:`العربية`},Hf=({icon:e=`Globe`,label:t,labels:r,appearance:i=`code`,className:a=``})=>{let{locale:o,availableLocales:s,setLocale:c}=Y();if(s.length<=1)return null;let l={...Vf,...r},u=e=>i===`code`?e.toUpperCase():l[e]??e.toUpperCase();return n.default.createElement(`div`,{className:`flex items-center gap-1.5 ${a}`.trim()},n.default.createElement(Q,{name:e,size:16,"aria-hidden":!0}),t&&n.default.createElement(`span`,{className:`text-sm`},t),n.default.createElement(`select`,{value:o,onChange:e=>c(e.target.value),className:`cursor-pointer rounded border border-border bg-transparent py-0.5 pl-1 pr-5 text-sm focus:outline-none focus:ring-1 focus:ring-ring`,style:{width:`auto`},"aria-label":t??`Select language`},s.map(e=>n.default.createElement(`option`,{key:e,value:e},u(e)))))},Uf=`flex items-center justify-between gap-3 border-b border-border/50 px-3 py-2`,Wf=`text-xs font-medium uppercase tracking-[0.14em] text-muted-foreground`,Gf=`px-3 py-3`,Kf=`h-7 w-7 rounded-md bg-transparent p-0 text-muted-foreground hover:bg-destructive/10 hover:text-destructive`,qf=({name:e,children:t,onChange:r,onAdd:i,onRemove:a,className:o,layout:s=`horizontal`,minItems:c=void 0,maxItems:l=void 0,label:u=void 0,labelPosition:d=`top`,hideRemoveButton:f=!1,readOnly:p=!1})=>{let{value:m,handleChange:h}=Ec({name:e,onChange:r}),g=Array.isArray(m)?m:[],_=q(`repeat`),v=X(`rounded-xl border border-border/60 bg-card/80 shadow-sm`,_.Repeat.itemClassName),y=(n,r)=>kc({children:typeof t==`function`?t({record:g[n],records:g,index:n,remove:()=>C(n)}):t,parentName:`${e}.${n}`,wrapperClassName:r}),b=(e,t)=>{switch(s){case`horizontal`:return n.default.createElement(`div`,{className:v},n.default.createElement(`div`,{className:Uf},n.default.createElement(`span`,{className:Wf},`#`,e+1),t&&!f?n.default.createElement(Cn,{className:Kf,icon:`x`,onClick:()=>C(e)}):n.default.createElement(`span`,{className:`h-7 w-7`,"aria-hidden":`true`})),n.default.createElement(`div`,{className:Gf},y(e)));case`vertical`:return n.default.createElement(n.default.Fragment,null);case`inline`:return n.default.createElement(`div`,{className:X(v,`px-3 py-2`,_.Repeat.inlineItemClassName)},n.default.createElement(`div`,{className:`flex items-start gap-2`},n.default.createElement(`div`,{className:`flex-1 min-w-0`},y(e,`!mb-0`)),t&&!f&&n.default.createElement(Cn,{className:X(Kf,`mt-1 shrink-0`),icon:`x`,onClick:()=>C(e)})))}},x=(g.length>0?g:Array.from({length:c||0},()=>({})))?.map((t,r)=>{let i=!p&&r>=(c||0);return n.default.createElement(n.default.Fragment,{key:`${e}-${r}`},b(r,i))}),S=()=>{let t=g.length>0?[...g,{}]:Array.from({length:x.length+1},()=>({}));i?.(t),h({target:{name:`${e}.${t.length-1}`,value:{}}})},C=t=>{a?.(t),h({target:{name:`${e}.${t}`}})},w=(0,n.useMemo)(()=>p?null:!l||x.length<l?u&&d===`bottom`?n.default.createElement(Cn,{icon:`plus`,label:u,variant:`link`,className:X(`w-full justify-start gap-1 rounded-lg border border-dashed border-border/60 px-3 py-2 text-sm text-muted-foreground hover:border-border hover:bg-muted/40 hover:text-foreground`,_.Repeat.addButtonClassName),onClick:S}):n.default.createElement(Cn,{icon:`plus`,label:u?void 0:`Add`,variant:u?`link`:`secondary`,className:u?X(`h-8 w-8 rounded-lg p-0 text-muted-foreground hover:bg-muted/50 hover:text-foreground`,_.Repeat.addButtonClassName):void 0,onClick:S}):null,[p,l,x.length,u,d,_.Repeat.addButtonClassName]);return n.default.createElement(`div`,{className:X(`space-y-3`,o)},u&&d===`top`&&n.default.createElement(`div`,{className:`flex items-center justify-between gap-3`},n.default.createElement(`span`,{className:`text-sm font-medium text-foreground`},u),w),x,!u&&w,u&&d===`bottom`&&w)},Jf={default:{shellClassName:`space-y-4`,menuClassName:`flex flex-wrap items-end gap-2 border-b border-border/70`,contentClassName:`min-w-0`,itemClassName:`shrink-0`,triggerClassName:`inline-flex items-center rounded-t-lg border-b-2 px-3 py-2 text-sm font-medium transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,activeTriggerClassName:`border-primary text-foreground`,inactiveTriggerClassName:`border-transparent text-muted-foreground hover:text-foreground hover:border-border/80`},top:{shellClassName:`space-y-4`,menuClassName:`inline-flex max-w-full flex-wrap gap-2 rounded-xl bg-muted/50 p-1.5`,contentClassName:`min-w-0`,itemClassName:`shrink-0`,triggerClassName:`inline-flex items-center rounded-lg px-3 py-2 text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,activeTriggerClassName:`bg-card text-foreground shadow-sm ring-1 ring-border/60`,inactiveTriggerClassName:`text-muted-foreground hover:bg-background/80 hover:text-foreground`},left:{shellClassName:`flex h-full min-h-0 flex-col gap-5 md:flex-row md:items-start`,menuClassName:`flex shrink-0 gap-2 overflow-x-auto md:w-64 md:flex-col md:overflow-visible`,contentClassName:`min-h-0 min-w-0 flex-1 overflow-hidden rounded-2xl border border-border/60 bg-card/80 p-4 shadow-sm`,itemClassName:`shrink-0 md:w-full`,triggerClassName:`inline-flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,activeTriggerClassName:`bg-primary/10 text-primary shadow-sm ring-1 ring-primary/15`,inactiveTriggerClassName:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`},right:{shellClassName:`flex h-full min-h-0 flex-col gap-5 md:flex-row md:items-start`,menuClassName:`order-1 flex shrink-0 gap-2 overflow-x-auto md:order-2 md:w-64 md:flex-col md:overflow-visible`,contentClassName:`order-2 min-h-0 min-w-0 flex-1 overflow-hidden rounded-2xl border border-border/60 bg-card/80 p-4 shadow-sm md:order-1`,itemClassName:`shrink-0 md:w-full`,triggerClassName:`inline-flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,activeTriggerClassName:`bg-primary/10 text-primary shadow-sm ring-1 ring-primary/15`,inactiveTriggerClassName:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`},bottom:{shellClassName:`space-y-4`,menuClassName:`flex flex-wrap gap-2 rounded-xl bg-muted/50 p-1.5`,contentClassName:`min-w-0 rounded-2xl border border-border/60 bg-card p-4 shadow-sm`,itemClassName:`shrink-0`,triggerClassName:`inline-flex items-center rounded-lg px-3 py-2 text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,activeTriggerClassName:`bg-card text-foreground shadow-sm ring-1 ring-border/60`,inactiveTriggerClassName:`text-muted-foreground hover:bg-background/80 hover:text-foreground`}};function Yf(e){return Jf[e]}function Xf(e,t,n){let r=Yf(e),i=q(`tab`);return X(`cursor-pointer`,r.triggerClassName,i.Tab.triggerClassName,t?r.activeTriggerClassName:r.inactiveTriggerClassName,t?i.Tab.activeTriggerClassName:i.Tab.inactiveTriggerClassName,n)}function Zf(e){return X(`min-h-0 min-w-0 h-full overflow-x-hidden overflow-y-auto`,q(`tab`).Tab.contentClassName,e)}var Qf={default:({menu:e,content:t,menuClassName:r,contentClassName:i})=>{let a=Yf(`default`),o=q(`tab`);return n.default.createElement(`div`,{className:a.shellClassName},n.default.createElement(`div`,{role:`tablist`,"aria-orientation":`horizontal`,className:X(a.menuClassName,o.Tab.menuClassName,r)},e),n.default.createElement(`div`,{className:X(a.contentClassName,o.Tab.contentClassName,i)},t))},top:({menu:e,content:t,menuClassName:r,contentClassName:i})=>{let a=Yf(`top`),o=q(`tab`);return n.default.createElement(`div`,{className:a.shellClassName},n.default.createElement(`div`,{role:`tablist`,"aria-orientation":`horizontal`,className:X(a.menuClassName,o.Tab.menuClassName,r)},e),n.default.createElement(`div`,{className:X(a.contentClassName,o.Tab.contentClassName,i)},t))},left:({menu:e,content:t,menuClassName:r,contentClassName:i})=>{let a=Yf(`left`),o=q(`tab`);return n.default.createElement(`div`,{className:a.shellClassName},n.default.createElement(`div`,{role:`tablist`,"aria-orientation":`vertical`,className:X(a.menuClassName,o.Tab.menuClassName,r)},e),n.default.createElement(`div`,{className:X(a.contentClassName,o.Tab.contentClassName,i)},t))},right:({menu:e,content:t,menuClassName:r,contentClassName:i})=>{let a=Yf(`right`),o=q(`tab`);return n.default.createElement(`div`,{className:a.shellClassName},n.default.createElement(`div`,{role:`tablist`,"aria-orientation":`vertical`,className:X(a.menuClassName,o.Tab.menuClassName,r)},e),n.default.createElement(`div`,{className:X(a.contentClassName,o.Tab.contentClassName,i)},t))},bottom:({menu:e,content:t,menuClassName:r,contentClassName:i})=>{let a=Yf(`bottom`),o=q(`tab`);return n.default.createElement(`div`,{className:a.shellClassName},n.default.createElement(`div`,{className:X(a.contentClassName,o.Tab.contentClassName,i)},t),n.default.createElement(`div`,{role:`tablist`,"aria-orientation":`horizontal`,className:X(a.menuClassName,o.Tab.menuClassName,r)},e))}},$f=()=>null,ep=({children:e,motion:t})=>{let r=q(`tab`),i=Ht(void 0,t??r.Tab.motion?.enter??`fadeUp`,r.Tab.motion?.enter??`fadeUp`);return n.default.createElement(`div`,{style:i,className:Zf()},e)},tp=({children:e,defaultIndex:t=0,onChange:r,layout:i=`default`,menuClassName:a=void 0,contentClassName:o=void 0,before:s=void 0,after:c=void 0,wrapperClassName:l=void 0,className:u=void 0,motion:d=void 0})=>{let[f,p]=(0,n.useState)(t),m=e=>{p(e),r?.(e)},h=n.Children.toArray(e).filter(e=>n.default.isValidElement(e)&&e.type===$f),g=(0,n.useMemo)(()=>Yf(i),[i]),_=Qf[i],v=q(`tab`);return n.default.createElement(Z,{className:X(v.Tab.wrapperClassName,l)},s,n.default.createElement(`div`,{className:X(`min-w-0`,v.Tab.className,u)},n.default.createElement(_,{menuClassName:a,contentClassName:o,menu:h.map((e,t)=>n.default.createElement(`div`,{key:t,className:X(g.itemClassName,v.Tab.itemClassName)},n.default.createElement(`button`,{type:`button`,role:`tab`,"aria-selected":t===f,onClick:()=>m(t),className:Xf(i,t===f)},e.props.label))),content:n.default.createElement(ep,{key:f,motion:d},h[f]?.props?.children)})),c)};function np({records:e,selectedKeys:t,onSelectionChange:r,getRecordKey:i}){let a=t,o=a!==void 0&&!!r,[s,c]=(0,n.useState)(a??[]);(0,n.useEffect)(()=>{a!==void 0&&!o&&c(a)},[a,o]);let l=o?a||[]:s,u=!!r||a!==void 0,d=(0,n.useCallback)(t=>{let n=new Set(t);return{keys:t,records:e.filter((e,t)=>n.has(i(e,t))),hasSelection:t.length>0}},[i,e]),f=(0,n.useCallback)(e=>{o||c(e);let t=d(e);r?.({...t,clear:()=>f([])})},[d,o,r]),p=(0,n.useCallback)(()=>{f([])},[f]);return{activeSelectedKeys:l,selectionState:(0,n.useMemo)(()=>({...d(l),clear:p}),[l,d,p]),showSelection:u,updateSelection:f}}function rp(e,t){let r=(0,n.useRef)(new WeakMap),i=(0,n.useRef)(0);return(0,n.useCallback)((n,a)=>{if(t!=null){let e=typeof t==`function`?t(n):n[t];if(e!=null&&e!==``)return String(e)}if(n._key)return n[yr];let o=n,s=r.current.get(o);if(s)return s;let c=`${e}-${i.current++}`;return r.current.set(o,c),c},[e,t])}function ip({columns:e=void 0,records:t=void 0,footer:r=void 0,onRowClick:i=void 0,onReorder:a=void 0,onSelectionChange:s=void 0,selection:c=`multiple`,sortable:l=!1,pagination:u=void 0,activeKey:d=void 0,selectedKeys:f=void 0,groupBy:p=void 0,recordId:m=void 0,before:h=void 0,after:g=void 0,wrapperClassName:_=void 0,className:v=void 0,headerClassName:y=void 0,bodyClassName:b=void 0,footerClassName:x=void 0,heightClassName:S=void 0,scrollClassName:C=void 0,selectedClassName:w=void 0,renderCell:T=void 0}){let E=q(`table`),D=Y(`table`),O=w||E.Table.selectedClassName,[k,A]=(0,n.useState)(t||[]),j=(0,n.useMemo)(()=>{if(l&&typeof l!=`boolean`)return l},[typeof l==`object`?l?.dir:void 0,typeof l==`object`?l?.field:void 0]),M=l!==!1,[N,P]=(0,n.useState)(j),[F,I]=(0,n.useState)(null),[L,R]=(0,n.useState)(null),[z,B]=(0,n.useState)(null),[ee,V]=(0,n.useState)(null),[H,U]=(0,n.useState)(null),te=(0,n.useRef)(!1),ne=(0,n.useCallback)(e=>{e&&I(e)},[]),re=(0,n.useId)(),W=!!a,G=M||!!wr.normalize(j),ie=W&&G,ae=!ie&&M,oe=ie?void 0:j;(0,n.useEffect)(()=>{A(t||[])},[t]),(0,n.useEffect)(()=>{P(oe)},[oe?.field,oe?.dir]),(0,n.useEffect)(()=>{ie&&!te.current&&(console.warn("Table: `onReorder` cannot be combined with sortable sorting on the same view. Manual reorder takes precedence and sorting is ignored."),te.current=!0)},[ie]);let se=rp(`row`,m),ce=(0,n.useCallback)((e,t)=>se(e,t),[se]),{activeSelectedKeys:le,selectionState:ue,showSelection:K,updateSelection:de}=np({records:k,selectedKeys:f,onSelectionChange:s,getRecordKey:ce});(0,n.useEffect)(()=>{H&&(k.some((e,t)=>ce(e,t)===H)||U(null))},[H,ce,k]),(0,n.useEffect)(()=>{if(N||!e?.length||W)return;let t=e.find(e=>ae&&e.sort!==!1);t&&P({field:t.key,dir:`asc`})},[N,ae,e,W]);let fe=(0,n.useMemo)(()=>wr.records(k,N)||[],[k,N]),pe=(e,t,n)=>{let r=e.target;for(;r&&r.tagName!==`TR`;){if([`A`,`BUTTON`,`INPUT`,`LABEL`].includes(r.tagName))return;r=r.parentNode}let a=ce(t,n);O&&d===void 0&&U(e=>e===a?null:a),i?.(t)},me=(e,t,r)=>{if(T)return T(e,t,r);let i=e[t],a=typeof i==`object`&&i&&!Array.isArray(i)?i:null,o=a?.prompt&&a?.value||i;return n.default.isValidElement(o)||typeof o!=`object`||!o?o:Array.isArray(o)&&!o.some(e=>typeof e==`object`&&e)?o.join(`, `):``},he=(0,n.useCallback)((e,t)=>{let n=ce(e,t),r=le.includes(n)?le.filter(e=>e!==n):[...le,n];de(r)},[le,ce,de]),ge=(0,n.useCallback)((e,t)=>{let n=ce(e,t);de(le.includes(n)?[]:[n])},[le,ce,de]),_e=(0,n.useCallback)((e,t)=>{if(!L)return;let n=fe.findIndex((e,t)=>ce(e,t)===L),r=fe.findIndex((n,r)=>ce(n,r)===ce(e,t));B(null),R(null);let i=ee?.position||`after`;if(V(null),n<0||r<0||n===r)return;let o=[...fe],[s]=o.splice(n,1),c=n<r?r+(i===`after`?0:-1):r+ +(i===`after`);o.splice(c,0,s),P(void 0),A(o),a?.(o,{fromIndex:n,toIndex:c,record:s})},[L,ee?.position,ce,a,fe]);if(fe.length===0)return n.default.createElement(`p`,{className:`p-4`},D.noDataFound);let ve=e||Object.keys(fe[0]).map(e=>({key:e,label:e,sort:M})),ye=[`w-full`,E.Table.scrollClassName,S?`${S} overflow-auto`:``,C||``].filter(Boolean).join(` `),be=!!S,xe=ve.length+ +!!K+ +!!W,Se=be?`sticky top-0 z-10 bg-card`:``,Ce=(e,t,r,i)=>!ee||ee.key!==e||ee.position!==t?null:n.default.createElement(`tr`,{"aria-hidden":`true`,onDragOver:n=>{W&&(n.preventDefault(),z!==e&&B(e),V({key:e,position:t}))},onDrop:n=>{W&&(n.preventDefault(),V({key:e,position:t}),_e(r,i))}},n.default.createElement(`td`,{colSpan:xe,className:`border-0 p-0`},n.default.createElement(`div`,{className:`relative h-5 cursor-grab`},n.default.createElement(`div`,{className:`absolute inset-x-2 top-1/2 -translate-y-1/2`},n.default.createElement(`div`,{className:`h-0 rounded-full border-t-2 border-primary/80`}),n.default.createElement(`div`,{className:`absolute left-0 top-1/2 h-2 w-2 -translate-y-1/2 rounded-full bg-primary shadow-sm`}))))),we=n.default.createElement(`tr`,null,K&&n.default.createElement(`th`,{className:[`px-3 py-2 font-semibold text-muted-foreground`,Se].filter(Boolean).join(` `),style:{width:`1%`,whiteSpace:`nowrap`}},c===`single`?n.default.createElement(`div`,{className:`th-inner py-1`}):n.default.createElement(`div`,{className:`th-inner py-1`},n.default.createElement(`input`,{type:`checkbox`,"aria-label":D.selectAllRows,checked:ue.records.length>0&&ue.records.length===k.length,onChange:e=>{let t=e.target.checked?fe.map((e,t)=>ce(e,t)):[];de(t)}}))),W&&n.default.createElement(`th`,{className:[`px-3 py-2 font-semibold text-muted-foreground`,Se].filter(Boolean).join(` `),style:{width:`1%`,whiteSpace:`nowrap`}},n.default.createElement(`div`,{className:`th-inner py-1`})),ve.map(e=>e.label?(()=>{let t=ae&&e.sort!==!1,r=t&&N?.field===e.key,i=r?N?.dir===`desc`?`descending`:`ascending`:`none`;return n.default.createElement(`th`,{key:e.key,className:[`px-3 py-2 font-semibold text-muted-foreground whitespace-nowrap`,Se,e.className||``].filter(Boolean).join(` `),"aria-sort":i},t?n.default.createElement(`button`,{type:`button`,className:`th-inner group inline-flex w-full cursor-pointer items-center gap-2 rounded-sm border-0 bg-transparent px-0 py-1 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 `+(r?`font-semibold text-foreground`:`text-muted-foreground hover:text-foreground`),onClick:()=>P(t=>wr.toggle(t,e.key)),"aria-label":r?J(D.sortByCurrent,{label:e.label,direction:N?.dir===`desc`?`descending`:`ascending`}):J(D.sortBy,{label:e.label}),title:r?`${e.label}: ${N?.dir===`desc`?`descending`:`ascending`}`:J(D.sortBy,{label:e.label})},n.default.createElement(`span`,{className:`inline-flex h-4 w-4 flex-none items-center justify-center transition-colors `+(r?`text-primary`:`text-muted-foreground/70 group-hover:text-foreground/80`),"aria-hidden":`true`},r?N?.dir===`desc`?n.default.createElement(o.ArrowDown,{size:14}):n.default.createElement(o.ArrowUp,{size:14}):n.default.createElement(o.ArrowUpDown,{size:14})),n.default.createElement(`span`,null,e.label)):n.default.createElement(`div`,{className:`th-inner py-1`},e.label))})():n.default.createElement(`th`,{key:e.key,className:[`px-3 py-2 font-semibold text-muted-foreground`,Se].filter(Boolean).join(` `),style:{width:`1%`,whiteSpace:`nowrap`}}))),Te=n.default.createElement(kh,{records:fe,appendTo:F,wrapperClassName:`px-3 pt-4 pb-2`,...u||{}},(e,t)=>{let r=p?Array.isArray(p)?p:[p]:null,a;return e.map((e,s)=>{let l=t+s,u=ce(e,l),f=r?r.map(t=>String(e[t]??``)).join(` · `):void 0,p=f!==void 0&&f!==a;a=f;let m=le.includes(u),h=z===u,g=L===u,_=O&&(d===void 0?H:d)===u;return n.default.createElement(n.default.Fragment,{key:u},p&&n.default.createElement(`tr`,{"aria-hidden":`true`},n.default.createElement(`td`,{colSpan:xe,className:`bg-muted/40 px-3 py-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},f)),Ce(u,`before`,e,l),n.default.createElement(`tr`,{draggable:W,className:[`odd:bg-muted/30 hover:bg-muted/20 transition-colors`,h?`bg-muted/30`:``,_?O:``].filter(Boolean).join(` `)||void 0,style:{cursor:i?`pointer`:W?`grab`:`default`,opacity:g?.45:1},onClick:t=>{i&&pe(t,e,l)},onDragStart:()=>{R(u)},onDragOver:e=>{if(!W)return;e.preventDefault();let t=e.currentTarget.getBoundingClientRect(),n=e.clientY<t.top+t.height/2?`before`:`after`;z!==u&&B(u),L!==u&&V(e=>e?.key===u&&e.position===n?e:{key:u,position:n})},onDragLeave:()=>{z===u&&B(null)},onDragEnd:()=>{R(null),B(null),V(null)},onDrop:t=>{W&&(t.preventDefault(),_e(e,l))}},K&&n.default.createElement(`td`,{className:`px-3 py-2 border-b border-border/50`,style:{width:`1%`,whiteSpace:`nowrap`}},n.default.createElement(`input`,{type:c===`single`?`radio`:`checkbox`,name:c===`single`?re:void 0,"aria-label":J(D.selectRow,{key:u}),checked:m,onChange:()=>{if(c===`single`){ge(e,l);return}he(e,l)},onClick:t=>{t.stopPropagation(),c===`single`&&(t.preventDefault(),ge(e,l))}})),W&&n.default.createElement(`td`,{className:`px-3 py-2 border-b border-border/50`,style:{width:`1%`,whiteSpace:`nowrap`}},n.default.createElement(`button`,{type:`button`,draggable:W,className:`inline-flex cursor-grab items-center justify-center rounded-sm border-0 bg-transparent p-0 text-muted-foreground`,"aria-label":J(D.reorderRow,{key:u}),onClick:e=>e.preventDefault(),onDragStart:e=>{e.stopPropagation(),R(u)},onDragEnd:e=>{e.stopPropagation(),R(null),B(null),V(null)}},n.default.createElement(o.GripVertical,{size:14}))),ve.map(t=>n.default.createElement(`td`,{key:t.key,className:`px-3 py-2 border-b border-border/50`},me(e,t.key,l)))),Ce(u,`after`,e,l))})});return n.default.createElement(`div`,{className:`flex items-stretch gap-3`},h&&n.default.createElement(`div`,{className:`table-before flex shrink-0 items-center self-stretch`},h),n.default.createElement(`div`,{ref:ne,className:`min-w-0 flex-1 overflow-x-auto `+(_||E.Table.wrapperClassName)},n.default.createElement(`div`,{className:ye},n.default.createElement(`table`,{className:`w-full text-left text-sm border-collapse `+(v||E.Table.className)},n.default.createElement(`thead`,{className:`border-b `+(y||E.Table.headerClassName)},we),n.default.createElement(`tbody`,{className:b||E.Table.bodyClassName},Te),r&&n.default.createElement(`tfoot`,{className:x||E.Table.footerClassName},r)))),g&&n.default.createElement(`div`,{className:`table-after flex shrink-0 items-center self-stretch`},g))}var ap=12,op=12,sp=(e,t,n)=>Math.max(t,Math.min(n,e)),cp=e=>{if(!e)return``;let t=e.trim().replace(/^\{/,``).replace(/\}$/,``).trim(),n=t.split(`.`);return(n[n.length-1]||t).trim()},lp=(e,t)=>{let n=e-t.left,r=t.width/ap;return sp(Math.floor(n/r),0,11)},up=()=>`${Date.now()}_${Math.random().toString(16).slice(2)}`,dp=(e,t,n)=>{let r=e=>{let r=e+t;return r>ap?!1:!n.some(t=>{let n=e,i=r,a=t.colStart;return n<t.colStart+t.colSpan&&a<i})};for(let n=e;n<=ap-t;n++)if(r(n))return n;for(let e=0;e<=ap-t;e++)if(r(e))return e;return null},fp=(e,t,n)=>{let r=e.find(e=>e.id===t);if(!r)return e;let i=e.filter(e=>e.id!==t),a=dp(sp(n,0,ap-r.colSpan),r.colSpan,i);return a===null?e:e.map(e=>e.id===t?{...e,colStart:a}:e)},pp=(e,t,n)=>{let r=e.find(e=>e.id===t);if(!r)return e;let i=e.filter(e=>e.id!==t),a=sp(n,1,ap-r.colStart),o=e=>{let t=r.colStart,n=r.colStart+e;return i.some(e=>{let r=e.colStart,i=e.colStart+e.colSpan;return t<i&&r<n})};for(;a>1&&o(a);)a--;return o(a)?e:e.map(e=>e.id===t?{...e,colSpan:a}:e)},mp=(e,t,n)=>{if(n<=0)return null;let r=e.map(e=>{let n=e.colStart+e.colSpan/2;return{it:e,dist:Math.abs(n-(t+.5))}}).sort((e,t)=>e.dist-t.dist).map(e=>e.it);for(let t of r){if(t.colSpan-1<n)continue;let r=t.colSpan-n,i=t.colStart+r;if(!(i<0||i+n>ap))return{nextItems:e.map(e=>e.id===t.id?{...e,colSpan:r}:e),insertCol:i}}return null},hp=(0,n.forwardRef)(({name:e,defaultSpan:t=1,heightPx:r=100},i)=>{let a=(0,n.useRef)(null),o=Y(`layout`),{value:s,handleChange:c}=Ec({name:e,defaultValue:[]}),l=Array.isArray(s)?s:[],u=t=>{let n=typeof t==`function`?t(l):t;c({target:{name:e,value:n}})},[d,f]=(0,n.useState)(null),[p,m]=(0,n.useState)(null),[h,g]=(0,n.useState)(``),_=(0,n.useRef)(null),v=e=>{g(e),_.current&&window.clearTimeout(_.current),_.current=window.setTimeout(()=>g(``),2500)};(0,n.useEffect)(()=>()=>{_.current&&window.clearTimeout(_.current)},[]),(0,n.useImperativeHandle)(i,()=>({getValue:()=>l,setValue:e=>u(e),clear:()=>u([])}));let y=(0,n.useMemo)(()=>Array.from({length:ap},(e,t)=>t),[]),b=e=>{e.preventDefault()},x=e=>{if(e.preventDefault(),e.dataTransfer.getData(`application/x-layoutbuilder-internal`)){f(null);return}if(l.length>=op){v(o.maxElements);return}let n=a.current;if(!n)return;let r=n.getBoundingClientRect(),i=lp(e.clientX,r),s=cp(e.dataTransfer.getData(`text/plain`)||e.dataTransfer.getData(`label`)||``)||`unknown`,c=sp(t,1,ap),d=dp(sp(i,0,ap-c),c,l);if(d!==null){u(e=>[...e,{id:up(),fieldName:s,colStart:d,colSpan:c}]);return}if(!mp(l,i,c)){v(o.noSpace);return}u(e=>{if(e.length>=op)return v(o.maxElements),e;let t=mp(e,i,c);if(!t)return v(o.noSpace),e;let n={id:up(),fieldName:s,colStart:t.insertCol,colSpan:c};return[...t.nextItems,n]})},S=e=>t=>{f(e),t.dataTransfer.setData(`application/x-layoutbuilder-internal`,e),t.dataTransfer.effectAllowed=`move`},C=e=>{if(e.preventDefault(),!d)return;let t=a.current;if(!t)return;let n=t.getBoundingClientRect(),r=lp(e.clientX,n);u(e=>fp(e,d,r))},w=()=>f(null),T=e=>t=>{t.stopPropagation(),t.preventDefault();let n=l.find(t=>t.id===e);n&&m({id:e,startClientX:t.clientX,startSpan:n.colSpan})},E=e=>{if(!p)return;let t=a.current;if(!t)return;let n=t.getBoundingClientRect().width/ap,r=e.clientX-p.startClientX,i=Math.round(r/n),o=p.startSpan+i;u(e=>pp(e,p.id,o))},D=()=>{p&&m(null)},O=e=>u(t=>t.filter(t=>t.id!==e));return n.default.createElement(`div`,{onMouseMove:E,onMouseUp:D,onMouseLeave:D},h&&n.default.createElement(`div`,{style:{marginBottom:8,padding:`8px 10px`,borderRadius:10,border:`1px solid rgba(255,255,255,0.15)`,background:`rgba(255,255,255,0.04)`,fontSize:12,opacity:.95}},h),n.default.createElement(`div`,{ref:a,onDragOver:e=>{b(e),C(e)},onDrop:x,onDragEnd:w,style:{position:`relative`,height:r,borderRadius:12,border:`2px dashed rgba(255, 255, 255, 0.25)`,background:`rgba(0,0,0,0.02)`,overflow:`hidden`}},y.map(e=>n.default.createElement(`div`,{key:e,style:{position:`absolute`,top:0,bottom:0,left:`${e/ap*100}%`,width:1,background:`rgba(255, 255, 255, 0.06)`,pointerEvents:`none`}})),l.map(e=>n.default.createElement(`div`,{key:e.id,draggable:!0,onDragStart:S(e.id),style:{position:`absolute`,top:12,bottom:12,left:`${e.colStart/ap*100}%`,width:`${e.colSpan/ap*100}%`,padding:10,borderRadius:12,border:`1px solid rgba(255, 255, 255, 0.18)`,boxShadow:`0 1px 2px rgba(0,0,0,0.06)`,cursor:d===e.id?`grabbing`:`grab`,display:`flex`,alignItems:`center`,justifyContent:`center`,userSelect:`none`},title:o.dragToMove},n.default.createElement(`div`,{style:{fontSize:10,fontWeight:400,opacity:.9}},e.fieldName),n.default.createElement(`button`,{type:`button`,onClick:()=>O(e.id),style:{position:`absolute`,border:`none`,top:3,right:3,color:`white`,background:`rgba(255, 255, 255, 0.03)`,fontSize:12,cursor:`pointer`},title:o.remove},`×`),n.default.createElement(`div`,{onMouseDown:T(e.id),style:{position:`absolute`,right:4,top:`50%`,transform:`translateY(-50%)`,width:10,height:30,borderRadius:6,background:`rgba(255, 255, 255, 0.12)`,cursor:`ew-resize`},title:o.dragToResize}))),l.length===0&&n.default.createElement(`div`,{style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,pointerEvents:`none`}},o.dragHere)))}),gp=(0,n.createContext)(void 0);function _p({config:e,children:t}){return n.default.createElement(gp.Provider,{value:e},t)}function vp(){return(0,n.useContext)(gp)}var yp,bp;function xp(e){if(typeof window>`u`)return Promise.reject(Error(`loadGoogleMaps can only run in the browser`));if(!e.apiKey)return Promise.reject(Error(`GoogleMapsConfig.apiKey is required`));if(bp!==void 0&&bp!==e.apiKey)return Promise.reject(Error(`loadGoogleMaps was already initialized with a different apiKey`));if(window.google?.maps?.places)return Promise.resolve(window.google);if(yp)return yp;bp=e.apiKey;let t=`__googleMapsLoader_${Math.random().toString(36).slice(2)}`;return yp=new Promise((n,r)=>{window[t]=()=>{delete window[t],window.google?.maps?.places?n(window.google):r(Error(`Google Maps script loaded but the places library is unavailable`))};let i=document.createElement(`script`);i.src=`https://maps.googleapis.com/maps/api/js?${new URLSearchParams({key:e.apiKey,libraries:`places`,loading:`async`,callback:t,...e.language?{language:e.language}:{},...e.region?{region:e.region}:{}}).toString()}`,i.async=!0,i.onerror=()=>r(Error(`Failed to load the Google Maps script`)),document.head.appendChild(i)}),yp}var Sp={lat:41.8719,lng:12.5674},Cp=5;function wp(e){return(e??[]).map(e=>({longText:e.longText??``,shortText:e.shortText??e.longText??``,types:e.types}))}function Tp(e){return e.map(e=>({longText:e.long_name,shortText:e.short_name,types:e.types}))}function Ep(e,t,n=!0){let r=e.find(e=>e.types.includes(t));if(r)return(n?r.longText:r.shortText)||void 0}function Dp(e,t,n,r){let i=Ep(e,`street_number`),a=Ep(e,`route`);return{street:[a,i].filter(Boolean).join(`, `)||a||void 0,city:Ep(e,`locality`)??Ep(e,`postal_town`)??Ep(e,`sublocality`),state:Ep(e,`administrative_area_level_2`,!1)??Ep(e,`administrative_area_level_1`,!1),zip:Ep(e,`postal_code`),country:Ep(e,`country`),countryCode:Ep(e,`country`,!1),lat:t,lng:n,formatted:r}}function Op(e){return Dp(wp(e.addressComponents),e.location?.lat(),e.location?.lng(),e.formattedAddress??void 0)}function kp(e){return Dp(Tp(e.address_components),e.geometry.location.lat(),e.geometry.location.lng(),e.formatted_address)}var Ap=({name:e,label:t=void 0,required:r=!1,placeholder:i=void 0,disabled:a=!1,feedback:o=void 0,countries:s=void 0,language:c=void 0,region:l=void 0,validator:u=void 0,onSelect:d=void 0,fieldNames:f=void 0,map:p=!1,id:m=void 0,labelClassName:h=void 0,inheritWrapperClassName:g=!0,wrapperClassName:_=void 0,className:v=void 0,menuClassName:y=void 0,itemClassName:b=void 0,mapClassName:x=void 0})=>{let S=Y(`addressAutocomplete`),C=q(`addressAutocomplete`),w=vp(),T={street:f?.street??`${e}.street`,city:f?.city??`${e}.city`,state:f?.state??`${e}.state`,zip:f?.zip??`${e}.zip`,country:f?.country??`${e}.country`,countryCode:f?.countryCode??`${e}.countryCode`,lat:f?.lat??`${e}.lat`,lng:f?.lng??`${e}.lng`,zoom:f?.zoom??`${e}.zoom`,formatted:f?.formatted??`${e}.formatted`},E=Ec({name:T.formatted,wrapperClassName:_,inheritWrapperClassName:g}),D=Ec({name:T.street}),O=Ec({name:T.city}),k=Ec({name:T.state}),A=Ec({name:T.zip}),j=Ec({name:T.country}),M=Ec({name:T.countryCode}),N=Ec({name:T.lat}),P=Ec({name:T.lng}),F=Ec({name:T.zoom}),I=Tc(e,{required:r,label:t,validator:u}),L=(0,n.useId)(),R=m??L,z=typeof p==`object`?p:{},B=!!p,ee=z.position??`below`,V=z.defaultZoom??15,H=z.height??240,[U,te]=(0,n.useState)(typeof E.value==`string`?E.value:``),[ne,re]=(0,n.useState)([]),[W,G]=(0,n.useState)(!1),[ie,ae]=(0,n.useState)(!1),[oe,se]=(0,n.useState)(null),ce=(0,n.useRef)(void 0),le=(0,n.useRef)(0),ue=(0,n.useRef)(null),K=(0,n.useRef)(null),de=(0,n.useRef)(void 0),fe=(0,n.useRef)(void 0),pe=(0,n.useRef)(void 0),me=(0,n.useRef)(void 0),he=(0,n.useRef)(!1);(0,n.useEffect)(()=>{typeof E.value==`string`&&E.value!==U&&te(E.value)},[E.value]),(0,n.useEffect)(()=>{if(!W)return;let e=e=>{ue.current?.contains(e.target)||G(!1)};return window.document.addEventListener(`pointerdown`,e),()=>window.document.removeEventListener(`pointerdown`,e)},[W]),(0,n.useEffect)(()=>{if(!w)return;let e=++le.current,t=U.trim();if(t.length<3){re([]),ae(!1);return}ae(!0);let n=window.setTimeout(()=>{(async()=>{try{let n=await xp({apiKey:w.apiKey,language:c??w.language,region:l??w.region});if(de.current=n,e!==le.current)return;ce.current??=new n.maps.places.AutocompleteSessionToken;let{suggestions:r}=await n.maps.places.AutocompleteSuggestion.fetchAutocompleteSuggestions({input:t,sessionToken:ce.current,includedRegionCodes:s,language:c??w.language,region:l??w.region});if(e!==le.current)return;re(r.filter(e=>e.placePrediction).map(e=>({id:e.placePrediction.placeId,text:e.placePrediction.text.text,prediction:e.placePrediction}))),se(null)}catch(t){if(e!==le.current)return;re([]),se(t instanceof Error?t.message:S.loadError)}finally{e===le.current&&ae(!1)}})()},250);return()=>window.clearTimeout(n)},[U,w]);let ge=(e,t)=>{he.current=!0;let n=e.formatted??U;te(n),E.handleChange({target:{name:T.formatted,value:n}}),e.street!==void 0&&D.handleChange({target:{name:T.street,value:e.street}}),e.city!==void 0&&O.handleChange({target:{name:T.city,value:e.city}}),e.state!==void 0&&k.handleChange({target:{name:T.state,value:e.state}}),e.zip!==void 0&&A.handleChange({target:{name:T.zip,value:e.zip}}),e.country!==void 0&&j.handleChange({target:{name:T.country,value:e.country}}),e.countryCode!==void 0&&M.handleChange({target:{name:T.countryCode,value:e.countryCode}}),e.lat!==void 0&&N.handleChange({target:{name:T.lat,value:e.lat}}),e.lng!==void 0&&P.handleChange({target:{name:T.lng,value:e.lng}}),t!==void 0&&F.handleChange({target:{name:T.zoom,value:t}}),d?.(e)},_e=e=>{e.addListener(`dragend`,()=>{let t=e.getPosition();t&&ye(t)})},ve=(e,t)=>{fe.current&&(pe.current?pe.current.setPosition(t):(pe.current=new e.maps.Marker({position:t,map:fe.current,draggable:!0}),_e(pe.current)))},ye=async e=>{try{if(!me.current)return;let t=(await me.current.geocode({location:e})).results[0];if(!t)return;ge(kp(t)),se(null)}catch(e){se(e instanceof Error?e.message:S.loadError)}};(0,n.useEffect)(()=>{if(he.current){he.current=!1;return}if(!w)return;let e=[D.value,A.value,O.value,k.value,j.value].filter(e=>typeof e==`string`&&e.trim().length>0);if(e.length===0)return;let t=e.join(`, `),n=window.setTimeout(()=>{(async()=>{try{let e=await xp({apiKey:w.apiKey,language:c??w.language,region:l??w.region});de.current=e,me.current??=new e.maps.Geocoder;let n=(await me.current.geocode({address:t,region:l??w.region})).results[0];if(!n)return;let r=kp(n),i=r.formatted??t;if(te(i),E.handleChange({target:{name:T.formatted,value:i}}),r.lat!==void 0&&N.handleChange({target:{name:T.lat,value:r.lat}}),r.lng!==void 0&&P.handleChange({target:{name:T.lng,value:r.lng}}),fe.current&&r.lat!==void 0&&r.lng!==void 0){let t=new e.maps.LatLng(r.lat,r.lng);fe.current.panTo(t),ve(e,t)}se(null)}catch(e){se(e instanceof Error?e.message:S.loadError)}})()},600);return()=>window.clearTimeout(n)},[D.value,O.value,k.value,A.value,j.value,w]),(0,n.useEffect)(()=>{if(!B||!w||!K.current||fe.current)return;let e=!1;return xp({apiKey:w.apiKey,language:c??w.language,region:l??w.region}).then(t=>{if(e||!K.current||fe.current)return;de.current=t;let n=typeof N.value==`number`&&typeof P.value==`number`,r=n?{lat:N.value,lng:P.value}:Sp,i=typeof F.value==`number`?F.value:n?V:Cp,a=new t.maps.Map(K.current,{center:r,zoom:i,streetViewControl:!1,mapTypeControl:!1,fullscreenControl:!1});fe.current=a,me.current=new t.maps.Geocoder,n&&(pe.current=new t.maps.Marker({position:r,map:a,draggable:!0}),_e(pe.current)),a.addListener(`click`,e=>{e.latLng&&(ve(t,e.latLng),ye(e.latLng))}),a.addListener(`zoom_changed`,()=>{let e=a.getZoom();typeof e==`number`&&F.handleChange({target:{name:T.zoom,value:e}})})}).catch(t=>{e||se(t instanceof Error?t.message:S.loadError)}),()=>{e=!0}},[B,w]);let be=async e=>{G(!1);try{let t=e.prediction.toPlace();await t.fetchFields({fields:[`addressComponents`,`location`,`formattedAddress`]});let n=Op(t);ge(n,B?V:void 0);let r=de.current;if(B&&r&&fe.current&&n.lat!==void 0&&n.lng!==void 0){let e=new r.maps.LatLng(n.lat,n.lng);fe.current.setCenter(e),fe.current.setZoom(V),ve(r,e)}ce.current=void 0,se(null)}catch(e){se(e instanceof Error?e.message:S.loadError)}};if(!w)return n.default.createElement(Z,{className:E.formWrapClass},t&&n.default.createElement(hl,{label:t,required:r,htmlFor:R,className:h}),n.default.createElement(`input`,{id:R,disabled:!0,className:X(zc,v||C.AddressAutocomplete.className),placeholder:S.notConfigured,title:S.notConfigured}),n.default.createElement(`div`,{className:Rc},S.notConfigured));let xe=B?n.default.createElement(`div`,{ref:K,className:X(`mt-2 w-full overflow-hidden rounded-md border`,x),style:{height:H}}):null;return n.default.createElement(Z,{className:E.formWrapClass||C.AddressAutocomplete.wrapperClassName},t&&n.default.createElement(hl,{label:t,required:r,htmlFor:R,className:h}),ee===`above`&&xe,n.default.createElement(`div`,{ref:ue,className:`relative`},n.default.createElement(`input`,{id:R,type:`text`,role:`combobox`,"aria-expanded":W,"aria-autocomplete":`list`,autoComplete:`off`,className:X(zc,`pr-8`,I&&`border-destructive focus-visible:ring-destructive/20`,v||C.AddressAutocomplete.className),placeholder:i??S.placeholder,required:r,disabled:a,value:U,onChange:e=>{te(e.target.value),G(!0)},onFocus:()=>G(!0)}),n.default.createElement(`span`,{className:`pointer-events-none absolute inset-y-0 right-2 flex items-center text-muted-foreground`},n.default.createElement(Q,{name:ie?`loader-circle`:`map-pin`,size:15,className:ie?`animate-spin`:void 0})),W&&U.trim().length>=3&&n.default.createElement(`div`,{className:X(`absolute z-50 mt-1 max-h-64 w-full overflow-y-auto rounded-md border p-1 text-sm shadow-lg`,y||C.AddressAutocomplete.menuClassName)},oe?n.default.createElement(`div`,{className:`px-2 py-3 text-center text-destructive`},oe):ie&&ne.length===0?n.default.createElement(`div`,{className:`px-2 py-3 text-center text-muted-foreground`},S.searching):ne.length===0?n.default.createElement(`div`,{className:`px-2 py-3 text-center text-muted-foreground`},S.noResults):ne.map(e=>n.default.createElement(`button`,{key:e.id,type:`button`,className:X(`flex w-full items-start gap-2 rounded-sm px-2 py-1.5 text-left transition-colors hover:bg-accent hover:text-accent-foreground`,b||C.AddressAutocomplete.itemClassName),onClick:()=>{be(e)}},n.default.createElement(Q,{name:`map-pin`,size:14,className:`mt-0.5 shrink-0 text-muted-foreground`}),n.default.createElement(`span`,{className:`min-w-0 truncate`},e.text))))),ee===`below`&&xe,I?n.default.createElement(Xc,{message:I}):o&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},o))},jp=({name:e,onDataLoaded:t,onClear:r=void 0,onParseField:i=void 0,label:a=void 0,icon:o=`upload`,delimiter:s=void 0,normalizeKeys:c=!1,removeEmptyFields:l=!1,required:u=!1,before:d=void 0,after:f=void 0,wrapperClassName:p=void 0,className:h=void 0})=>{let g=Y(`upload`),[_,v]=(0,n.useState)(null),[y,b]=(0,n.useState)(!1),[x,S]=(0,n.useState)(null),C=(0,n.useRef)(null),w=([e,t])=>{if(![``,null,void 0].includes(e)&&t!==void 0&&!(l&&[``,null].includes(t)))return c&&(e=P(e)),i?i([e,t]):[e.trim(),he(t)]},T=e=>{e&&m.default.parse(e,{header:!0,skipEmptyLines:!0,delimiter:s,dynamicTyping:!1,complete:n=>{v(null),S(e),t({data:n.data.map(e=>Object.fromEntries(Object.entries(e).reduce((e,[t,n])=>{let r=w([t,n]);return r&&e.push(r),e},[]))),fields:(n.meta?.fields||[]).reduce((e,t)=>(t&&e.push(c?P(t):t),e),[]),file:e})},error:e=>{v(e instanceof Error?e.message:String(e)),S(null)}})},E=e=>{T(e.target.files?.[0]??null),e.target.value=``},D=e=>{e.preventDefault(),e.stopPropagation(),b(!0)},O=e=>{e.preventDefault(),e.stopPropagation(),b(!1)},k=e=>{e.preventDefault(),e.stopPropagation(),b(!1),T(e.dataTransfer.files?.[0]??null)},A=()=>C.current?.click();return n.default.createElement(Z,{className:p},d,n.default.createElement(`div`,{className:X(h),"data-name":e},a&&n.default.createElement(hl,{label:a,required:u}),n.default.createElement(`input`,{ref:C,type:`file`,accept:`.csv,.tsv,text/csv,text/plain`,className:`hidden`,onChange:E}),x?n.default.createElement(`div`,{className:`rounded-lg border border-border overflow-hidden`},n.default.createElement(`div`,{className:`flex items-center gap-3 px-3 py-3`},n.default.createElement(`div`,{className:`w-9 h-9 rounded-md bg-emerald-500/10 flex items-center justify-center shrink-0`},n.default.createElement(Q,{name:`file-text`,className:`w-4 h-4 text-emerald-600`})),n.default.createElement(`div`,{className:`flex-1 min-w-0`},n.default.createElement(`p`,{className:`text-sm font-medium truncate`},x.name),n.default.createElement(`p`,{className:`text-xs text-muted-foreground`},(e=>e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`)(x.size))),n.default.createElement(`div`,{className:`flex items-center gap-1 text-xs text-emerald-600 font-medium shrink-0`},n.default.createElement(Q,{name:`check-circle`,className:`w-4 h-4`}),g.loaded),n.default.createElement(`button`,{type:`button`,onClick:()=>{S(null),r?.()},className:`w-7 h-7 flex items-center justify-center rounded-full text-muted-foreground hover:bg-red-50 hover:text-red-500 transition-colors`,title:g.removeFile},n.default.createElement(Q,{name:`x`,className:`w-3.5 h-3.5`}))),n.default.createElement(`div`,{className:`px-3 py-2 border-t border-border bg-muted/20`},n.default.createElement(`button`,{type:`button`,onClick:A,className:`flex items-center gap-1.5 text-xs text-muted-foreground hover:text-primary transition-colors`},n.default.createElement(Q,{name:`refresh-cw`,className:`w-3.5 h-3.5`}),g.uploadAnother))):n.default.createElement(`button`,{type:`button`,onClick:A,onDragOver:D,onDragLeave:O,onDrop:k,className:X(`w-full flex flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed py-8 px-4 transition-colors cursor-pointer`,y?`border-primary/60 bg-primary/8 text-primary`:`border-muted-foreground/25 bg-muted/30 text-muted-foreground hover:border-primary/40 hover:bg-primary/5 hover:text-primary/70`)},n.default.createElement(Q,{name:o,className:`w-8 h-8`}),n.default.createElement(`span`,{className:`text-sm font-medium`},y?g.dropToParse:g.clickOrDrag),n.default.createElement(`span`,{className:`text-xs opacity-60`},`.csv, .tsv`)),_&&n.default.createElement(Xc,{message:`Parse error: ${_}`})),f)};function Mp(e){return e?typeof e==`string`?n.default.createElement(Q,{name:e,size:16}):e:null}function Np({title:e=void 0,description:t=void 0,meta:i=void 0,badge:a=void 0,icon:o=void 0,trailing:s=void 0,footer:c=void 0,children:l=void 0,href:u=void 0,external:d=!1,active:f=!1,disabled:p=!1,dashed:m=!1,compact:h=!1,align:g=`start`,onClick:_=void 0,before:v=void 0,after:y=void 0,wrapperClassName:b=void 0,className:x=void 0,titleClassName:S=void 0,descriptionClassName:C=void 0,metaClassName:w=void 0,badgeClassName:T=void 0,leadingClassName:E=void 0,bodyClassName:D=void 0,headerClassName:O=void 0,trailingClassName:k=void 0,footerClassName:A=void 0,style:j=void 0,motion:M=void 0}){let N=q(`listCard`),P=!!u||!!_,F=Vt(p||!P,j,M??N.ListCard.motion?.press??`press`),I=Mp(o),L=c??l,R=X(`flex w-full gap-3 rounded-xl border border-border/60 bg-background p-4 text-left transition-[background-color,border-color,box-shadow,color] duration-150`,g===`center`?`items-center`:`items-start`,P&&!p&&`cursor-pointer`,N.ListCard.className,f?N.ListCard.activeClassName:N.ListCard.inactiveClassName,p&&N.ListCard.disabledClassName,m&&N.ListCard.dashedClassName,h&&N.ListCard.compactClassName,x),z=n.default.createElement(n.default.Fragment,null,I?n.default.createElement(`div`,{className:X(`mt-0.5 flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,g===`center`&&`mt-0`,N.ListCard.leadingClassName,E)},I):null,n.default.createElement(`div`,{className:X(`min-w-0 flex-1`,N.ListCard.bodyClassName,D)},e||a?n.default.createElement(`div`,{className:X(`flex items-center gap-2`,N.ListCard.headerClassName,O)},e?n.default.createElement(`div`,{className:X(`min-w-0 flex-1 truncate text-sm font-semibold text-foreground`,N.ListCard.titleClassName,S)},e):n.default.createElement(`div`,{className:`flex-1`}),a?n.default.createElement(`div`,{className:X(`shrink-0`,N.ListCard.badgeClassName,T)},a):null):null,t?n.default.createElement(`div`,{className:X(`mt-1 text-sm text-muted-foreground`,N.ListCard.descriptionClassName,C)},t):null,i?n.default.createElement(`div`,{className:X(`mt-1 text-xs text-muted-foreground`,N.ListCard.metaClassName,w)},i):null,L?n.default.createElement(`div`,{className:X(`mt-3`,N.ListCard.footerClassName,A)},L):null),s?n.default.createElement(`div`,{className:X(`shrink-0 self-center`,N.ListCard.trailingClassName,k)},s):null),B=e=>{if(p){e.preventDefault(),e.stopPropagation();return}_?.(e)},ee;return ee=u&&!p?d?n.default.createElement(`a`,{href:u,target:`_blank`,rel:`noreferrer noopener`,className:R,style:F.style,...F.pressHandlers,onClick:B},z):n.default.createElement(r.Link,{to:u,className:R,style:F.style,...F.pressHandlers,onClick:B},z):P?n.default.createElement(`button`,{type:`button`,className:R,style:F.style,disabled:p,...F.pressHandlers,onClick:B},z):n.default.createElement(`div`,{className:R,style:j,"aria-disabled":p||void 0},z),n.default.createElement(Z,{className:X(N.ListCard.wrapperClassName,b)},v,ee,y)}function Pp(e,t,n){let r=[...e],[i]=r.splice(t,1);return r.splice(Math.max(0,Math.min(n,r.length)),0,i),r}function Fp({items:e,getKey:t,renderItem:r,onReorder:i=void 0,label:a=void 0,numbered:o=!1,disabled:s=!1,emptyState:c=void 0,className:l=void 0,itemClassName:u=void 0,cardClassName:d=void 0}){let f=Y(`sortableList`),[p,m]=(0,n.useState)(null),[h,g]=(0,n.useState)(null),[_,v]=(0,n.useState)(``),y=!s&&!!i&&e.length>1;if(!e.length)return c?n.default.createElement(n.default.Fragment,null,c):null;let b=(t,n)=>{!i||t===n||n<0||n>=e.length||(i(Pp(e,t,n),{fromIndex:t,toIndex:n,item:e[t]}),v(J(f.moved,{position:n+1,total:e.length})))},x=e=>{if(p===null||!h)return;let t=h.after?e+1:e;b(p,t>p?t-1:t),m(null),g(null)};return n.default.createElement(`div`,{className:l},n.default.createElement(`ul`,{className:`flex flex-col gap-2`,"aria-label":a},e.map((i,a)=>{let s=r(i,a),c=h?.index===a&&p!==null&&p!==a;return n.default.createElement(`li`,{key:t(i),className:X(`relative flex items-stretch gap-2`,p===a&&`opacity-50`,u),onDragOver:e=>{if(!y||p===null)return;e.preventDefault();let t=e.currentTarget.getBoundingClientRect();g({index:a,after:e.clientY>t.top+t.height/2})},onDragLeave:()=>g(e=>e?.index===a?null:e),onDrop:e=>{y&&(e.preventDefault(),x(a))}},c&&n.default.createElement(`span`,{"aria-hidden":`true`,className:X(`pointer-events-none absolute inset-x-0 h-0.5 rounded-full bg-primary`,h.after?`-bottom-1.5`:`-top-1.5`)}),y&&n.default.createElement(`button`,{type:`button`,draggable:!0,"aria-label":J(f.handle,{position:a+1,total:e.length}),className:`flex w-6 shrink-0 cursor-grab items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring active:cursor-grabbing`,onDragStart:e=>{m(a),e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t(i))},onDragEnd:()=>{m(null),g(null)},onKeyDown:e=>{e.key===`ArrowUp`?(e.preventDefault(),b(a,a-1)):e.key===`ArrowDown`&&(e.preventDefault(),b(a,a+1))}},n.default.createElement(Q,{name:`grip-vertical`,size:16})),o&&n.default.createElement(`span`,{className:`flex w-6 shrink-0 items-center justify-center text-sm font-medium tabular-nums text-muted-foreground`,"aria-hidden":`true`},a+1),n.default.createElement(Np,{compact:!0,wrapperClassName:`min-w-0 flex-1`,className:d,...s}))})),n.default.createElement(`span`,{className:`sr-only`,"aria-live":`polite`},_))}var Ip=208,Lp=52;function Rp(e){return e.map(e=>({path:e.path,title:e.title,icon:e.icon,group:e.group,end:e.end,badge:e.badge,children:e.children?Rp(e.children):void 0}))}function zp(e,t,n){return n?e===t:e===t||t!==`/`&&e.startsWith(t+`/`)}function Bp(e){let t=new Map;for(let n of e){let e=n.group??`General`;t.has(e)||t.set(e,[]),t.get(e).push(n)}return[...t.entries()].map(([e,t])=>({key:e,items:t}))}function Vp({value:e}){let t=q(`sideNav`);return n.default.createElement(`span`,{className:X(`ml-auto shrink-0 text-[10px] font-semibold leading-none px-1.5 py-[3px] rounded-full bg-primary/15 text-primary`,t.SideNav.itemBadgeClassName)},e)}function Hp({children:e,open:t}){let{pathname:i}=(0,r.useLocation)(),a=q(`sideNav`);return n.default.createElement(`div`,{style:{maxHeight:t?`${e.length*34+8}px`:`0px`,overflow:`hidden`,transition:`max-height 200ms ease`}},n.default.createElement(`div`,{className:`py-0.5 space-y-0.5`},e.map(e=>{let t=zp(i,e.path,e.end);return n.default.createElement(r.Link,{key:e.path,to:e.path,"aria-current":t?`page`:void 0,className:X(`flex items-center rounded-md pl-9 pr-3 py-[6px] text-sm transition-colors`,a.SideNav.subItemClassName,t?a.SideNav.subItemActiveClassName:a.SideNav.subItemInactiveClassName)},n.default.createElement(`span`,{className:`flex-1 truncate`},e.title),e.badge!==void 0&&n.default.createElement(Vp,{value:e.badge}))})))}function Up({item:e,expanded:t,open:i,showIcons:a,onToggle:o}){let{pathname:s}=(0,r.useLocation)(),c=q(`sideNav`),l=Y(`sideNav`),u=(e.children?.length??0)>0,d=zp(s,e.path,e.end),f=u&&e.children.some(e=>zp(s,e.path,e.end)),p=d?c.SideNav.itemActiveClassName:f?c.SideNav.itemChildActiveClassName:c.SideNav.itemInactiveClassName,m=a?n.default.createElement(`span`,{className:X(`relative shrink-0 flex items-center justify-center w-[18px] h-[18px]`,c.SideNav.itemIconClassName)},e.icon?n.default.createElement(Q,{name:e.icon,size:17}):n.default.createElement(`span`,{className:`w-1.5 h-1.5 rounded-full bg-current opacity-30`}),!t&&e.badge!==void 0&&n.default.createElement(`span`,{className:X(`absolute -top-0.5 -right-1 w-[7px] h-[7px] rounded-full bg-primary ring-1 ring-background`,c.SideNav.itemCollapsedBadgeClassName)})):null,h={opacity:+!!t,maxWidth:t?`200px`:`0px`,overflow:`hidden`,whiteSpace:`nowrap`,transition:`opacity 150ms ease, max-width 200ms ease`},g=X(`flex items-center w-full rounded-md px-2 py-[7px] text-sm transition-colors gap-2.5`,c.SideNav.itemClassName);return u?n.default.createElement(`div`,null,n.default.createElement(`div`,{className:`flex items-center gap-0.5`},n.default.createElement(r.Link,{to:e.path,title:t?void 0:e.title,"aria-current":d?`page`:void 0,className:X(`flex-1 flex items-center gap-2.5 rounded-md px-2 py-[7px] text-sm transition-colors`,c.SideNav.itemClassName,p)},m,n.default.createElement(`span`,{style:h,className:c.SideNav.itemTextClassName},e.title),t&&e.badge!==void 0&&n.default.createElement(Vp,{value:e.badge})),t&&n.default.createElement(`button`,{onClick:()=>o(e.path),className:X(`shrink-0 flex items-center justify-center w-6 h-6 rounded transition-colors text-muted-foreground/50 hover:text-foreground hover:bg-accent`,c.SideNav.itemToggleClassName),title:i?l.collapseGroup:l.expandGroup,"aria-label":i?l.collapseGroup:l.expandGroup},n.default.createElement(`span`,{style:{transform:i?`rotate(180deg)`:`rotate(0deg)`,transition:`transform 200ms ease`}},n.default.createElement(Q,{name:`chevron-down`,size:13})))),t&&n.default.createElement(Hp,{children:e.children,open:i})):n.default.createElement(r.Link,{to:e.path,title:t?void 0:e.title,"aria-current":d?`page`:void 0,className:X(g,p)},m,n.default.createElement(`span`,{style:h,className:c.SideNav.itemTextClassName},e.title),t&&e.badge!==void 0&&n.default.createElement(Vp,{value:e.badge}))}function Wp({group:e,expanded:t,openItems:r,showIcons:i,onToggle:a}){let o=e.key===`General`,s=q(`sideNav`);return n.default.createElement(`div`,{className:`mb-1`},!o&&n.default.createElement(`div`,{style:{height:t?void 0:`1px`},className:t?`px-2 pb-0.5 pt-3 first:pt-1`:X(`mx-2 my-2 bg-border/40`,s.SideNav.groupDividerClassName)},t&&n.default.createElement(`span`,{className:X(`text-[10.5px] font-semibold uppercase tracking-widest text-muted-foreground/50 select-none`,s.SideNav.groupLabelClassName)},e.key)),n.default.createElement(`div`,{className:`space-y-0.5`},e.items.map(e=>n.default.createElement(Up,{key:e.path,item:e,expanded:t,open:r.has(e.path),showIcons:i,onToggle:a}))))}function Gp({menuKey:e,items:t,bottomItems:i=[],defaultCollapsed:a=!1,collapsed:o,onCollapsedChange:s,showIcons:c=!0,showCollapseButton:l=!0,footer:u,header:d,embedded:f=!1}){let{pathname:p}=(0,r.useLocation)(),m=q(`sideNav`),h=Y(`sideNav`),g=pv(e??``),_=t??(e?Rp(g):[]),v=o!==void 0,[y,b]=(0,n.useState)(a),x=o===void 0?y:o,S=(0,n.useCallback)(e=>{let t=typeof e==`function`?e(x):e;v?s?.(t):b(t)},[v,x,s]),[C,w]=(0,n.useState)(!1),[T,E]=(0,n.useState)(new Set),D=(0,n.useRef)(null),O=!x||C;(0,n.useEffect)(()=>{E(e=>{let t=new Set(e);return[..._,...i].forEach(e=>{e.children?.some(e=>zp(p,e.path,e.end))&&t.add(e.path)}),t})},[p]);let k=(0,n.useCallback)(e=>{E(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),A=()=>{x&&(D.current&&clearTimeout(D.current),w(!0))},j=()=>{x&&(D.current=setTimeout(()=>w(!1),80))};if(_.length===0&&i.length===0)return null;let M=Bp(_),N=Bp(i),P=(e,t)=>e.map(e=>n.default.createElement(Wp,{key:e.key,group:e,expanded:t,openItems:T,showIcons:c,onToggle:k}));return f?n.default.createElement(`nav`,{className:X(`px-1.5 py-2`,m.SideNav.navClassName)},P(M,!0),N.length>0&&n.default.createElement(`div`,{className:X(`mt-2 border-t pt-2`,m.SideNav.bottomNavClassName)},P(N,!0))):n.default.createElement(`div`,{className:X(`min-h-0`,m.SideNav.wrapperClassName),style:{width:x?Lp:Ip,height:`100%`,transition:`width 220ms cubic-bezier(0.4,0,0.2,1)`,flexShrink:0,position:`relative`}},n.default.createElement(`aside`,{style:{width:O?Ip:Lp,transition:`width 220ms cubic-bezier(0.4,0,0.2,1)`,position:x?`absolute`:`sticky`,top:0,zIndex:x&&C?50:10,boxShadow:x&&C?`4px 0 24px rgba(0,0,0,0.10)`:`none`,height:`100%`,overflowX:`hidden`,overflowY:`hidden`},className:X(`flex min-h-0 flex-col border-r bg-background`,m.SideNav.shellClassName,x&&C&&m.SideNav.overlayClassName),onMouseEnter:A,onMouseLeave:j},d&&n.default.createElement(`div`,{className:X(`flex h-14 shrink-0 items-center border-b px-1.5`,m.SideNav.headerClassName),style:{opacity:+!!O,maxWidth:O?`100%`:`0px`,overflow:`hidden`,transition:`opacity 150ms ease, max-width 200ms ease`}},n.default.createElement(`div`,{className:`min-w-0 flex-1`},d)),n.default.createElement(`nav`,{className:X(`min-h-0 flex-1 overflow-y-auto overflow-x-hidden px-1.5 py-2`,m.SideNav.navClassName)},P(M,O)),N.length>0&&n.default.createElement(`div`,{className:X(`shrink-0 border-t px-1.5 py-2`,m.SideNav.bottomNavClassName)},P(N,O)),(l||u)&&n.default.createElement(`div`,{className:X(`shrink-0 border-t px-1.5 py-2 flex items-center gap-1`,m.SideNav.footerClassName)},l&&n.default.createElement(`button`,{onClick:()=>{S(e=>!e),w(!1)},title:x?h.expandSidebar:h.collapseSidebar,"aria-label":x?h.expandSidebar:h.collapseSidebar,className:X(`shrink-0 flex items-center justify-center rounded-md w-8 h-8 transition-colors text-muted-foreground hover:text-foreground hover:bg-accent`,m.SideNav.collapseButtonClassName)},n.default.createElement(Q,{name:x?`chevrons-right`:`chevrons-left`,size:16})),u&&n.default.createElement(`div`,{style:{flex:1,minWidth:0,opacity:+!!O,maxWidth:O?`100%`:`0px`,overflow:`hidden`,transition:`opacity 150ms ease, max-width 200ms ease`}},u))))}function Kp({path:e,where:t,order:r,fieldMap:i}){let a=lr(),[o,s]=(0,n.useState)([]),c=(0,n.useMemo)(()=>{if(t||r||i)return{where:t,order:r,fieldMap:i}},[i,r,t]);return(0,n.useEffect)(()=>a.subscribe(e,s,c),[a,c,e]),o}function qp(e){if(e)return e}function Jp({path:e,fromUrl:t,where:i,order:a,fieldMap:o,recordId:s=yr,...c}){let l=(0,r.useLocation)(),u=t?qp(l.pathname):e,d=Kp({path:u,where:i,order:a,fieldMap:o}),f=n.default.useMemo(()=>{if(!a)return;let e=Object.entries(a)[0];if(!e)return;let[t,n]=e;return{field:t,dir:n}},[a]),p=c.sortable===void 0||c.sortable===!0?f??c.sortable:c.sortable;return n.default.createElement(Uh,{...c,records:d,recordId:s,sourcePath:u,sortable:p})}var Yp=e=>e.replace(/[^a-zA-Z0-9_-]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``),Xp=e=>t=>{if(typeof e==`function`)return String(e(t));let n=t[e];return n==null||n===``?``:String(n)},Zp=(e,t)=>{if(e==null||e===`text`)return t;if(e===`boolean`)return t?`Yes`:`No`;if(e===`json`)return t==null?``:JSON.stringify(t,null,2);if(e===`badge`||e===`image`||e===`email`)return t;let n=E[e===`datetime`?`dateTime`:e];return n?n(t):t},Qp=(e,t)=>typeof e.render==`function`?e.render(t):Zp(e.render,t.value),$p=e=>({key:e,label:E.toCamel(e,` `),sortable:!0}),em=(e,t)=>{let r=[],i=e=>{n.default.Children.forEach(e,e=>{if(!n.default.isValidElement(e))return;let{props:a}=e;a.name?r.push(t(a)):a.children&&i(a.children)})};return i(Array.isArray(e)?e:[e]),r},tm=(e,t,r)=>{if(e?.length)return e;if(n.default.isValidElement(r)){let e=em(r,e=>$p(e.name));if(e.length>0)return e}let i=t[0];return i?Object.entries(i).reduce((e,[t,r])=>(t.startsWith(`_`)||(n.default.isValidElement(r)||typeof r!=`object`||Array.isArray(r))&&e.push($p(t)),e),[]):[]},nm=(e,t)=>Array.isArray(e)?e.reduce((e,t)=>(e[t]=t===`delete`?{kind:`delete`}:{kind:`modal`},e),{}):e?Object.entries(e).reduce((e,[t,n])=>(n&&(e[t]=n),e),{}):t?{add:{kind:`modal`},edit:{kind:`modal`},delete:{kind:`delete`}}:{},rm=(e,t)=>e?.visible?typeof e.visible==`function`?e.visible(t):e.visible:!0,im=(e,t)=>e?.disabled?typeof e.disabled==`function`?e.disabled(t):e.disabled:!1,am=(e,t,n)=>t?.label?t.label:e===`add`?n?.add??`Add`:e===`edit`?n?.edit??`Edit`:e===`delete`?n?.delete??`Delete`:E.toCamel(e,` `),om=e=>{if(e&&typeof e!=`boolean`)return e};function sm({records:e,recordId:t,columns:r,runAction:i,sortable:a,pagination:o,selection:s=!1,selectedKeys:c,onSelectionChange:l,onRowClick:u,reorderable:d=!1,onReorder:f,activeKey:p,groupBy:m,wrapperClassName:h,className:g,heightClassName:_,scrollClassName:v,headerClassName:y,before:b,after:x}){let S=(0,n.useMemo)(()=>Xp(t),[t]),C=(0,n.useRef)(new Map),w=(0,n.useMemo)(()=>e.reduce((e,t)=>(e.set(S(t),t),e),new Map),[S,e]),T=(0,n.useMemo)(()=>r.reduce((e,t)=>(e.set(String(t.key),t),e),new Map),[r]);(0,n.useEffect)(()=>{let t=new Set(e.map(e=>S(e)));for(let e of C.current.keys())t.has(e)||C.current.delete(e)},[S,e]);let E=(0,n.useCallback)((e,t,n)=>{let r=e,a=S(r),o=T.get(t);if(!o)return de(r,t);let s=de(r,t),c=C.current.get(a)??new Map,l=c.get(t),u=typeof o.render==`function`;if(l&&l.recordRef===r&&l.valueRef===s&&l.renderRef===o.render&&(!u||l.rowIndex===n))return l.output;let d=Qp(o,{record:r,value:s,key:t,rowIndex:n,runAction:e=>i(e,r)});return c.set(t,{recordRef:r,valueRef:s,renderRef:o.render,rowIndex:n,output:d}),C.current.set(a,c),d},[T,S,i]);return n.default.createElement(ip,{columns:r.map(e=>({key:String(e.key),label:e.label,className:e.className,sort:e.sortable})),records:e,recordId:e=>S(e),sortable:a,pagination:o,renderCell:E,selection:s===`single`?`single`:`multiple`,selectedKeys:s?c:void 0,onSelectionChange:s?t=>{let n=new Set(t.keys),r=e.filter(e=>n.has(S(e))),i=t.keys;if(s===`single`&&t.keys.length>1){let e=t.keys[t.keys.length-1];i=e?[e]:[],r=e&&w.get(e)?[w.get(e)]:[]}let a={keys:i,records:r,hasSelection:i.length>0,clear:()=>l?.({keys:[],records:[],hasSelection:!1,clear:()=>void 0})};l?.(a)}:void 0,onRowClick:u?e=>{let t=S(e),n=w.get(t);n&&u(n)}:void 0,onReorder:d&&f?(e,t)=>{let n=e.map(e=>w.get(S(e))).filter(Boolean),r=w.get(S(t.record));r&&f(n,{fromIndex:t.fromIndex,toIndex:t.toIndex,record:r})}:void 0,activeKey:p,groupBy:m,wrapperClassName:h,className:g,heightClassName:_,scrollClassName:v,headerClassName:y,before:b,after:x})}var cm=(0,n.createContext)(null),lm=0,um=`LLM Native`,dm={charset:`UTF-8`,viewport:`width=device-width, initial-scale=1.0`},fm={lang:`en`};function pm(e,t){return t.includes(`:`)?t:`${e}:${t}`}function mm(e){return Array.isArray(e)?e.join(`, `):e}function hm(e){return e===`siteName`?`og:site_name`:pm(`og`,e)}function gm(e){return[...e.canonical?[{rel:`canonical`,href:e.canonical}]:[],...e.ampHtml?[{rel:`amphtml`,href:e.ampHtml}]:[],...e.sitemap?[{rel:`sitemap`,href:e.sitemap,type:`application/xml`}]:[],...e.links??[]]}function _m(e){return[...e.prev?[{rel:`prev`,href:e.prev}]:[],...e.next?[{rel:`next`,href:e.next}]:[]]}function vm(e){return(e.alternates??[]).map(e=>({rel:`alternate`,href:e.href,hrefLang:e.hrefLang,media:e.media,type:e.type,title:e.title}))}function ym(e,t,n){return{name:{description:e.description,...e.meta??{},robots:n.robots??e.meta?.robots,googlebot:n.googlebot,keywords:mm(n.keywords),author:n.author,publisher:n.publisher,referrer:n.referrer,...n.meta??{},...Object.fromEntries(Object.entries(t.twitter??{}).map(([e,t])=>[pm(`twitter`,e),t]))},property:Object.fromEntries(Object.entries(t.openGraph??{}).map(([e,t])=>[hm(e),t]))}}function bm(e,t,n,r){return[...gm(t),..._m(r),...vm(n),...e.canonical&&!t.canonical?[{rel:`canonical`,href:e.canonical}]:[],...e.links??[]]}function xm(e){return[...(e.fonts??[]).flatMap(e=>[...(e.dnsPrefetch??[]).map(e=>({rel:`dns-prefetch`,href:e})),...(e.preconnect??[]).map(t=>({rel:`preconnect`,href:t,crossOrigin:e.crossOrigin})),...e.preload?[{rel:`preload`,href:e.href,as:e.as??`font`,type:e.type,media:e.media,crossOrigin:e.crossOrigin}]:[],{rel:`stylesheet`,href:e.href,media:e.media,crossOrigin:e.crossOrigin}])]}function Sm(e){return[...e.manifest?[{rel:`manifest`,href:e.manifest}]:[],...e.favicon?[{rel:`icon`,href:e.favicon}]:[],...e.appleTouchIcon?[{rel:`apple-touch-icon`,href:e.appleTouchIcon}]:[],...e.icons??[]]}function Cm(e){return{"theme-color":e.themeColor,"msapplication-TileColor":e.backgroundColor,"color-scheme":e.colorScheme,"application-name":e.applicationName,"mobile-web-app-capable":e.mobileWebAppCapable===void 0?void 0:String(e.mobileWebAppCapable),"apple-mobile-web-app-capable":e.appleMobileWebAppCapable===void 0?void 0:String(e.appleMobileWebAppCapable),"apple-mobile-web-app-title":e.appleMobileWebAppTitle,"apple-mobile-web-app-status-bar-style":e.appleMobileWebAppStatusBarStyle}}function wm(e){return Array.isArray(e.jsonLd)?e.jsonLd:e.jsonLd?[e.jsonLd]:[]}function Tm(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>!!e))}function Em(e){let{inline:t,...n}=e;return Object.fromEntries(Object.entries(n).filter(([,e])=>e!==void 0&&e!==!1))}function Dm(e){let{inline:t,...n}=e;return Object.fromEntries(Object.entries(n).filter(([,e])=>e!==void 0&&e!==!1))}function Om({appName:e,metadata:t,social:r,links:i,pagination:a,language:o,document:s,assets:l,pwa:u,schemaOrg:d}){if(globalThis.document===void 0)return null;let f=ym(t,r,s),p=Cm(u),m=[...bm(i,s,o,a),...xm(l),...Sm(u)],h=wm(d);return(0,c.createPortal)(n.default.createElement(n.default.Fragment,null,s.charset?n.default.createElement(`meta`,{charSet:s.charset,"data-rfs-head":`document`}):null,s.base?.href||s.base?.target?n.default.createElement(`base`,{href:s.base.href,target:s.base.target,"data-rfs-head":`document`}):null,s.viewport?n.default.createElement(`meta`,{name:`viewport`,content:s.viewport,"data-rfs-head":`document`}):null,Object.entries(s.httpEquiv??{}).map(([e,t])=>t?n.default.createElement(`meta`,{key:`http-equiv:${e}`,httpEquiv:e,content:t,"data-rfs-head":`document`}):null),Object.entries(f.name).map(([e,t])=>t?n.default.createElement(`meta`,{key:`name:${e}`,name:e,content:t,"data-rfs-head":`meta`}):null),Object.entries(f.property).map(([e,t])=>t?n.default.createElement(`meta`,{key:`property:${e}`,property:e,content:t,"data-rfs-head":`meta`}):null),Object.entries(p).map(([e,t])=>t?n.default.createElement(`meta`,{key:`pwa:${e}`,name:e,content:t,"data-rfs-head":`pwa`}):null),m.map((e,t)=>n.default.createElement(`link`,{key:`${e.rel}:${e.href??t}`,...Tm(e),"data-rfs-head":`link`})),(l.styles??[]).map((e,t)=>n.default.createElement(n.default.Fragment,{key:`style:${e.href??t}`},e.href?n.default.createElement(`link`,{rel:`stylesheet`,href:e.href,...Dm(e),"data-rfs-head":`asset-style`}):null,e.inline?n.default.createElement(`style`,{id:e.id,nonce:e.nonce,media:e.media,title:e.title,"data-rfs-head":`asset-style`},e.inline):null)),(l.scripts??[]).map((e,t)=>n.default.createElement(n.default.Fragment,{key:`script:${e.src??t}`},e.src?n.default.createElement(`script`,{...Em(e),"data-rfs-head":`asset-script`}):null,e.inline?n.default.createElement(`script`,{type:e.type,id:e.id,nonce:e.nonce,"data-rfs-head":`asset-script`},e.inline):null)),h.map((e,t)=>n.default.createElement(`script`,{key:`schema-org:${t}`,type:`application/ld+json`,"data-rfs-head":`schema-org`},JSON.stringify(e)))),globalThis.document.head)}function km({appName:e=um,children:t}){let r=e||`LLM Native`,i=n.default.useRef(globalThis.document===void 0?``:globalThis.document.documentElement.lang),a=n.default.useRef(globalThis.document===void 0?``:globalThis.document.documentElement.dir),[o,s]=(0,n.useState)({}),[c,l]=(0,n.useState)([]),[u,d]=(0,n.useState)({}),[f,p]=(0,n.useState)({}),[m,h]=(0,n.useState)({}),[g,_]=(0,n.useState)(fm),[v,y]=(0,n.useState)(dm),[b,x]=(0,n.useState)({}),[S,C]=(0,n.useState)({}),[w,T]=(0,n.useState)({}),E=(0,n.useCallback)(()=>s({}),[]),D=(0,n.useCallback)((e,t)=>{l(n=>[...n.filter(t=>t.id!==e),{id:e,metadata:t}])},[]),O=(0,n.useCallback)(e=>{l(t=>t.filter(t=>t.id!==e))},[]),k=(0,n.useCallback)(()=>d({}),[]),A=(0,n.useCallback)(()=>p({}),[]),j=(0,n.useCallback)(()=>h({}),[]),M=(0,n.useCallback)(()=>_(fm),[]),N=(0,n.useCallback)(()=>y(dm),[]),P=(0,n.useCallback)(()=>x({}),[]),F=(0,n.useCallback)(()=>C({}),[]),I=(0,n.useCallback)(()=>T({}),[]);(0,n.useEffect)(()=>{globalThis.document!==void 0&&(globalThis.document.documentElement.lang=g.lang??i.current,globalThis.document.documentElement.dir=g.dir??a.current)},[g.lang,g.dir]);let L=c.length>0?c[c.length-1].metadata:o;(0,n.useEffect)(()=>{globalThis.document!==void 0&&(globalThis.document.title=L.title??r)},[L.title,r]);let R=(0,n.useMemo)(()=>({metadata:L,social:u,links:f,pagination:m,language:g,document:v,assets:b,pwa:S,schemaOrg:w,setPageMetadata:s,clearPageMetadata:E,setPageMetadataEntry:D,clearPageMetadataEntry:O,setSocialHead:d,clearSocialHead:k,setHeadLinks:p,clearHeadLinks:A,setPaginationHead:h,clearPaginationHead:j,setLanguageHead:_,clearLanguageHead:M,setDocumentHead:y,clearDocumentHead:N,setAssetsHead:x,clearAssetsHead:P,setPwaHead:C,clearPwaHead:F,setSchemaOrg:T,clearSchemaOrg:I}),[L,u,f,m,g,v,b,S,w,E,D,O,k,A,j,M,N,P,F,I]);return n.default.createElement(cm.Provider,{value:R},t,n.default.createElement(Om,{appName:r,metadata:L,social:u,links:f,pagination:m,language:g,document:v,assets:b,pwa:S,schemaOrg:w}))}function Am(){return(0,n.useContext)(cm)}function jm(e){return JSON.stringify(e??{})}function Mm(e){let t=Am(),r=n.default.useRef(null);r.current||=(lm+=1,`metadata-${lm}`);let i=jm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=r.current;return t.setPageMetadataEntry(n,e),()=>t.clearPageMetadataEntry(n)},[t?.setPageMetadataEntry,t?.clearPageMetadataEntry,i]),t}function Nm(e){let t=Am(),r=jm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.social;return t.setSocialHead(e),()=>t.setSocialHead(n)},[t?.setSocialHead,r]),t}function Pm(e){let t=Am(),r=jm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.links;return t.setHeadLinks(e),()=>t.setHeadLinks(n)},[t?.setHeadLinks,r]),t}function Fm(e){let t=Am(),r=jm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.pagination;return t.setPaginationHead(e),()=>t.setPaginationHead(n)},[t?.setPaginationHead,r]),t}function Im(e){let t=Am(),r=jm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.language;return t.setLanguageHead(e),()=>t.setLanguageHead(n)},[t?.setLanguageHead,r]),t}function Lm(e){let t=Am(),r=jm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.document;return t.setDocumentHead({...n,...e}),()=>t.setDocumentHead(n)},[t?.setDocumentHead,r]),t}function Rm(e){let t=Am(),r=jm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.assets;return t.setAssetsHead(e),()=>t.setAssetsHead(n)},[t?.setAssetsHead,r]),t}function zm(e){let t=Am(),r=jm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.pwa;return t.setPwaHead(e),()=>t.setPwaHead(n)},[t?.setPwaHead,r]),t}function Bm(e){let t=Am(),r=jm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.schemaOrg;return t.setSchemaOrg(e),()=>t.setSchemaOrg(n)},[t?.setSchemaOrg,r]),t}function Vm(e){return Mm(e),null}var Hm=e=>/^(https?:)?\/\//.test(e)||e.startsWith(`mailto:`)||e.startsWith(`tel:`),Um=e=>!!e&&!Hm(e)&&!e.startsWith(`#`),Wm=e=>e.startsWith(`#`),Gm=e=>typeof e==`string`||typeof e==`number`?String(e):Array.isArray(e)?e.map(Gm).join(``):n.default.isValidElement(e)?Gm(e.props.children):``,Km=e=>{if(n.default.isValidElement(e))return/language-([\w-]+)/.exec(e.props.className||``)?.[1]};function qm({code:e,language:t}){let[r,i]=n.default.useState(!1),a=Y(`code`);return n.default.createElement(`div`,{className:`relative my-4 overflow-hidden rounded-md border bg-muted/50`},n.default.createElement(`div`,{className:`flex h-9 items-center justify-between border-b px-3`},n.default.createElement(`span`,{className:`text-xs font-medium text-muted-foreground`},t||a.codeLanguageDefault),n.default.createElement(`button`,{type:`button`,className:`rounded border bg-background px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,onClick:()=>{A(e),i(!0),window.setTimeout(()=>i(!1),1600)}},r?a.copied:a.copy)),n.default.createElement(`pre`,{className:`m-0 overflow-x-auto p-4 text-xs leading-relaxed`},n.default.createElement(`code`,{className:t?`language-${t}`:void 0},e)))}var Jm=e=>({h1:({className:e,...t})=>n.default.createElement(`h1`,{className:X(`mt-8 scroll-m-20 text-3xl font-bold tracking-normal first:mt-0 [&>a]:no-underline [&>a:hover]:opacity-80`,e),...t}),h2:({className:e,...t})=>n.default.createElement(`h2`,{className:X(`mt-8 scroll-m-20 border-b pb-2 text-2xl font-semibold tracking-normal first:mt-0 [&>a]:no-underline [&>a:hover]:opacity-80`,e),...t}),h3:({className:e,...t})=>n.default.createElement(`h3`,{className:X(`mt-6 scroll-m-20 text-xl font-semibold tracking-normal [&>a]:no-underline [&>a:hover]:opacity-80`,e),...t}),h4:({className:e,...t})=>n.default.createElement(`h4`,{className:X(`mt-5 scroll-m-20 text-base font-semibold tracking-normal [&>a]:no-underline [&>a:hover]:opacity-80`,e),...t}),p:({className:e,...t})=>n.default.createElement(`p`,{className:X(`my-4 leading-7 text-foreground`,e),...t}),ul:({className:e,...t})=>n.default.createElement(`ul`,{className:X(`my-4 ml-6 list-disc space-y-2`,e),...t}),ol:({className:e,...t})=>n.default.createElement(`ol`,{className:X(`my-4 ml-6 list-decimal space-y-2`,e),...t}),li:({className:e,...t})=>n.default.createElement(`li`,{className:X(`leading-7`,e),...t}),blockquote:({className:e,...t})=>n.default.createElement(`blockquote`,{className:X(`my-4 border-l-4 border-primary bg-muted/40 px-4 py-3 text-sm text-muted-foreground`,e),...t}),table:({className:e,...t})=>n.default.createElement(`div`,{className:`my-4 w-full overflow-x-auto`},n.default.createElement(`table`,{className:X(`w-full border-collapse text-sm`,e),...t})),th:({className:e,...t})=>n.default.createElement(`th`,{className:X(`border bg-muted px-3 py-2 text-left font-semibold`,e),...t}),td:({className:e,...t})=>n.default.createElement(`td`,{className:X(`border px-3 py-2 align-top`,e),...t}),hr:({className:e,...t})=>n.default.createElement(`hr`,{className:X(`my-8 border-border`,e),...t}),a:({className:t,href:r=``,onClick:i,...a})=>n.default.createElement(`a`,{className:X(Wm(r)?`text-primary no-underline transition-opacity hover:opacity-80`:`font-medium text-primary no-underline transition-opacity hover:opacity-80`,t),href:r,target:Hm(r)?`_blank`:void 0,rel:Hm(r)?`noreferrer`:void 0,onClick:t=>{i?.(t),!t.defaultPrevented&&e&&Um(r)&&(t.preventDefault(),e(r,t))},...a}),pre:({children:e})=>n.default.createElement(qm,{code:Gm(e).replace(/\n$/,``),language:Km(e)}),code:({className:e,children:t,...r})=>typeof e==`string`&&e.startsWith(`language-`)?n.default.createElement(`code`,{className:e,...r},t):n.default.createElement(`code`,{className:X(`rounded bg-muted px-1.5 py-0.5 text-[0.9em]`,e),...r},t),input:({className:e,...t})=>n.default.createElement(`input`,{className:X(`mr-2 align-middle`,e),disabled:!0,...t})});function Ym({content:e,components:t,className:r,wrapperClassName:i,metadata:a,onInternalLinkClick:o}){let s=n.default.useMemo(()=>e.match(/^#[ \t]+(.+)/m)?.[1]?.trim(),[e]);Mm(a||s?{...a??{},title:a?.title??s}:void 0);let c=n.default.useMemo(()=>Jm(o),[o]);return n.default.createElement(`div`,{className:X(`rf-markdown-reader max-w-none text-sm text-foreground`,i,r)},n.default.createElement(h.default,{remarkPlugins:[g.default],rehypePlugins:[_.default,[v.default,{behavior:`wrap`}],y.default],components:{...c,...t}},e))}var Xm=/^ {0,3}(`{3,}|~{3,})(.*)$/,Zm=/^ {0,3}(`{1,2}|~{1,2})$/,Qm=/^\s*[-=]{1,2}\s*$/,$m=/^\s*\|?[\s:|-]*$/,eh=/^\s*:?-+:?\s*$/;function th(e){let t=e.trim();return t.startsWith(`|`)&&(t=t.slice(1)),t.endsWith(`|`)&&!t.endsWith(`\\|`)&&(t=t.slice(0,-1)),t.split(/(?<!\\)\|/)}function nh(e){let t=e[0];if(!t.trimStart().startsWith(`|`))return null;let n=th(t).filter((e,t,n)=>e.trim()!==``||t<n.length-1);if(n.length===0)return[];let r=`| ${n.map(()=>`---`).join(` | `)} |`,i=t.trimEnd().endsWith(`|`)?t:`${t.trimEnd()} |`;if(e.length===1)return[i,r];let a=e[1];if(!$m.test(a))return null;let o=th(a);return o.length===n.length&&o.every(e=>eh.test(e))?e:[i,r,...e.slice(2)]}function rh(e){let t=e,n=t.lastIndexOf(`](`);n>=0&&!t.slice(n).includes(`)`)&&(t+=`)`);let r=[],i=null,a=/^\s*[*+-]\s/.exec(t),o=a?a[0].length:0;for(;o<t.length;){let e=t[o];if(e===`\\`){o+=2;continue}if(e==="`"){let e=1;for(;t[o+e]==="`";)e++;let n="`".repeat(e);i?i.token===n&&(i=null):i={token:n,at:o},o+=e;continue}if(i){o++;continue}if(e===`*`||e===`_`||e===`~`){let n=1;for(;t[o+n]===e;)n++;let i=t[o-1]??` `,a=t[o+n]??``,s=e===`_`&&/[\p{L}\p{N}]/u.test(i)&&/[\p{L}\p{N}]/u.test(a),c=/\s/.test(i)&&a!==``&&/\s/.test(a);if(!s&&!c&&(e!==`~`||n!==1)){let t=r[r.length-1]?.token===e,i=e===`~`?[`~~`]:n>=3?t?[e,e+e]:[e+e,e]:[e.repeat(n)];for(let e of i){let t=r[r.length-1];if(t&&t.token===e)r.pop();else if(r.some(t=>t.token===e)){for(;r.length&&r[r.length-1].token!==e;)r.pop();r.pop()}else r.push({token:e,at:o})}}o+=n;continue}o++}if(i){if(t.slice(i.at+i.token.length).trim()===``)return t.slice(0,i.at).trimEnd();t+=i.token}if(r.length===0)return t;let s=r[0];if(t.slice(s.at).replace(/[*_~\s]/g,``)===``)return t.slice(0,s.at).trimEnd();for(let e=r.length-1;e>=0;e--){let n=r[e];if(t.slice(n.at+n.token.length).replace(/[*_~]/g,``).trim()===``){t=t.slice(0,n.at).trimEnd();continue}t=t.trimEnd()+n.token}return t}function ih(e){if(!e)return e;let t=e.split(`
|
|
10
|
-
`),n=null,r=0;if(t.forEach((e,t)=>{let i=
|
|
11
|
-
`)}\n${e.char.repeat(e.len)}`}let i=r;for(let e=t.length-1;e>=r;e--)if(t[e].trim()===``){i=e+1;break}let a=t.slice(0,i),o=t.slice(i);if(o.length===0)return e;if(
|
|
12
|
-
`).replace(/\n+$/,``);let s=o.length-1;o[s]=
|
|
13
|
-
`)}var ah=e=>/^(https?:)?\/\//.test(e)||e.startsWith(`mailto:`)||e.startsWith(`tel:`),oh=e=>typeof e==`string`||typeof e==`number`?String(e):Array.isArray(e)?e.map(oh).join(``):n.default.isValidElement(e)?oh(e.props.children):``,sh=e=>{let t=Array.isArray(e)?e[0]:e;if(n.default.isValidElement(t))return/language-([\w#+-]+)/.exec(t.props.className||``)?.[1]};function ch({code:e,language:t,highlight:r,classNames:i}){let a=Y(`code`),[o,s]=n.default.useState(!1),[c,l]=n.default.useState(null),u=r?Ud(t):void 0;return n.default.useEffect(()=>{if(!u){l(null);return}let t=!0;return Jd(e,u).then(e=>{t&&l(e)}),()=>{t=!1}},[e,u]),n.default.useEffect(()=>{if(!o)return;let e=window.setTimeout(()=>s(!1),1600);return()=>window.clearTimeout(e)},[o]),n.default.createElement(`div`,{className:X(`rf-chat-code my-3 min-w-0 overflow-hidden rounded-md border border-border bg-muted/40`,i?.codeBlock)},n.default.createElement(`div`,{className:X(`flex h-8 items-center justify-between gap-2 border-b border-border px-3`,i?.codeHeader)},n.default.createElement(`span`,{className:`truncate font-mono text-xs text-muted-foreground`},t||a.codeLanguageDefault),n.default.createElement(`button`,{type:`button`,onClick:async()=>{try{await navigator.clipboard.writeText(e),s(!0)}catch{s(!1)}},"aria-label":o?a.copied:a.copyCode,title:o?a.copied:a.copyCode,className:`inline-flex h-6 items-center gap-1 rounded px-1.5 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`},n.default.createElement(Q,{name:o?`check`:`copy`,size:13}),n.default.createElement(`span`,null,o?a.copied:a.copy))),n.default.createElement(`pre`,{className:`m-0 overflow-x-auto p-3 text-xs leading-relaxed`},c===null?n.default.createElement(`code`,{className:X(t?`language-${t}`:void 0,i?.code)},e):n.default.createElement(`code`,{className:X(`language-${u}`,i?.code),dangerouslySetInnerHTML:{__html:c}})))}function lh(e,t,r){let i=t=>function({className:r,node:i,...a}){let o=t===`h1`?`text-lg`:t===`h2`?`text-base`:`text-sm`;return n.default.createElement(t,{className:X(`mb-2 mt-4 font-semibold first:mt-0`,o,e?.heading,r),...a})};return{h1:i(`h1`),h2:i(`h2`),h3:i(`h3`),h4:i(`h4`),h5:i(`h5`),h6:i(`h6`),p:({className:t,node:r,...i})=>n.default.createElement(`p`,{className:X(`my-2 first:mt-0 last:mb-0`,e?.paragraph,t),...i}),ul:({className:t,node:r,...i})=>n.default.createElement(`ul`,{className:X(`my-2 ms-5 list-disc space-y-1 first:mt-0 last:mb-0 [&_ul]:my-1 [&_ol]:my-1`,e?.list,t),...i}),ol:({className:t,node:r,...i})=>n.default.createElement(`ol`,{className:X(`my-2 ms-5 list-decimal space-y-1 first:mt-0 last:mb-0 [&_ul]:my-1 [&_ol]:my-1`,e?.list,t),...i}),li:({className:e,node:t,...r})=>n.default.createElement(`li`,{className:X(`ps-1 [&>p]:my-1`,e),...r}),blockquote:({className:t,node:r,...i})=>n.default.createElement(`blockquote`,{className:X(`my-2 border-s-4 border-border ps-3 text-muted-foreground`,e?.blockquote,t),...i}),table:({className:t,node:r,...i})=>n.default.createElement(`div`,{className:X(`my-3 max-w-full overflow-x-auto rounded-md border border-border`,e?.tableWrapper)},n.default.createElement(`table`,{className:X(`w-max min-w-full border-collapse text-xs`,e?.table,t),...i})),th:({className:t,node:r,...i})=>n.default.createElement(`th`,{className:X(`border-b border-border bg-muted px-3 py-1.5 text-start font-semibold whitespace-nowrap`,e?.th,t),...i}),td:({className:t,node:r,...i})=>n.default.createElement(`td`,{className:X(`max-w-[24rem] border-t border-border px-3 py-1.5 align-top`,e?.td,t),...i}),hr:({className:e,node:t,...r})=>n.default.createElement(`hr`,{className:X(`my-4 border-border`,e),...r}),img:({className:e,node:t,alt:r,...i})=>n.default.createElement(`img`,{className:X(`my-2 max-w-full rounded-md`,e),alt:r??``,loading:`lazy`,...i}),a:({className:t,href:i=``,onClick:a,node:o,...s})=>{let c=ah(i);return n.default.createElement(`a`,{className:X(`font-medium text-primary underline-offset-2 hover:underline`,e?.link,t),href:i,target:c?`_blank`:void 0,rel:c?`noopener noreferrer`:void 0,onClick:e=>{a?.(e),!e.defaultPrevented&&r&&i&&!c&&!i.startsWith(`#`)&&(e.preventDefault(),r(i,e))},...s})},pre:({children:r})=>n.default.createElement(ch,{code:oh(r).replace(/\n$/,``),language:sh(r),highlight:t,classNames:e}),code:({className:t,children:r,node:i,...a})=>n.default.createElement(`code`,{className:X(`rounded bg-muted px-1 py-0.5 font-mono text-[0.9em]`,e?.inlineCode,t),...a},r),input:({className:e,node:t,...r})=>n.default.createElement(`input`,{className:X(`me-1.5 align-middle`,e),disabled:!0,...r})}}var uh=[g.default],dh=[y.default];function fh({content:e,streaming:t=!1,tone:r=`default`,highlight:i=!0,onLinkClick:a,components:o,className:s,classNames:c}){let l=n.default.useMemo(()=>t?ih(e??``):e??``,[e,t]),u=n.default.useMemo(()=>lh(c,i,a),[c,i,a]),d=n.default.useMemo(()=>({...u,...o}),[u,o]);return n.default.createElement(`div`,{className:X(`rf-chat-markdown min-w-0 max-w-full break-words text-sm leading-relaxed`,r===`muted`?`text-muted-foreground`:`text-foreground`,c?.root,s),"aria-busy":t||void 0},n.default.createElement(h.default,{remarkPlugins:uh,rehypePlugins:dh,components:d},l))}function ph(e,t){let n=Math.max(1,Math.round(e));return n<60?J(t.durationSeconds,{seconds:n}):J(t.durationMinutes,{minutes:Math.floor(n/60),seconds:n%60})}function mh({content:e,streaming:t=!1,duration:r,defaultOpen:i=!1,open:a,onOpenChange:o,label:s,icon:c=`brain`,className:l,classNames:u}){let d=Y(`chat`),f=n.default.useId(),[p,m]=n.default.useState(null),h=a??p??(t||i),g=()=>{let e=!h;a===void 0&&m(e),o?.(e)},_=s??(t?d.reasoningStreaming:r==null?d.reasoning:J(d.reasoningFor,{duration:ph(r,d)}));return n.default.createElement(`div`,{className:X(`rf-chat-reasoning my-2 min-w-0`,l,u?.root)},n.default.createElement(`button`,{type:`button`,onClick:g,"aria-expanded":h,"aria-controls":f,className:X(`inline-flex max-w-full items-center gap-1.5 rounded-md py-1 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,u?.trigger)},n.default.createElement(Q,{name:c,size:14,className:t?`animate-pulse`:void 0}),n.default.createElement(`span`,{className:`truncate`},_),n.default.createElement(Q,{name:`chevron-down`,size:14,className:X(`shrink-0 transition-transform`,!h&&`-rotate-90 rtl:rotate-90`)})),n.default.createElement(`div`,{id:f,role:`region`,"aria-label":typeof _==`string`?_:d.reasoning,hidden:!h,className:X(`mt-1 border-s-2 border-border ps-3`,u?.content)},h&&n.default.createElement(fh,{content:e,streaming:t,tone:`muted`,className:`text-xs`})))}var hh=/^\s*(?:(\d{1,2})|([A-Za-z]))[.)]\s+(.+)$/s,gh=/\s*[([]\s*(?:recommended|consigliat[ao]|empfohlen)\s*[)\]]\s*$/i;function _h(e,t,n,r,i){let a=e.options??[],o=a.map(e=>hh.exec(e.label)),s=a.length>0&&o.every(Boolean),c=s&&o[0]?.[2]?`alpha`:`numeric`,l=a.map((t,n)=>{let r=s?o[n][3].trim():t.label,i=gh.exec(r);i&&(r=r.slice(0,i.index).trim());let a=typeof e.recommended==`number`?e.recommended===n:typeof e.recommended==`string`?e.recommended===r||e.recommended===t.label:!!i;return{label:r,description:t.description,recommended:a}});return{source:e,title:e.header||J(i.questionTab,{index:t+1}),options:l,numbering:n??c,multiple:!!e.multiple,other:l.length===0||(e.custom??r)}}var vh=(e,t)=>t===`alpha`?String.fromCharCode(65+e):String(e+1);function yh(e,t){return/^[1-9]$/.test(e)?Number(e)-1:t===`alpha`&&/^[a-z]$/i.test(e)?e.toUpperCase().charCodeAt(0)-65:-1}function bh(e,t){return{...e.id===void 0?{}:{id:e.id},...e.header===void 0?{}:{header:e.header},values:t}}var xh=`flex w-full items-start gap-2.5 rounded-md border px-2.5 py-2 text-start transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-60`,Sh=58,Ch=160,wh=`inline-flex h-8 items-center justify-center gap-1 rounded-md px-3 text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`;function Th({questions:e,onSubmit:t,numbering:r,allowOther:i=!0,answers:a,disabled:o=!1,autoFocus:s=!1,submitLabel:c,className:l,classNames:u}){let d=Y(`chat`),f=n.default.useId(),p=n.default.useRef(null),m=n.default.useRef([]),h=n.default.useRef(s?`panel`:null),g=n.default.useRef(!0);n.default.useEffect(()=>()=>{g.current=!1},[]);let _=n.default.useMemo(()=>(e??[]).map((e,t)=>_h(e,t,r,i,d)),[e,r,i,d]),v=_.length,y=v>1,[b,x]=n.default.useState(0),[S,C]=n.default.useState([]),[w,T]=n.default.useState([]),[E,D]=n.default.useState([]),[O,k]=n.default.useState(!1),[A,j]=n.default.useState(null),[M,N]=n.default.useState(!1),P=n.default.useRef(null),F=xo({minHeight:Sh,maxHeight:Ch}),I=e=>{let t=_[e];if(!t)return[];let n=t.options.filter(t=>(S[e]??[]).includes(t.label)).map(e=>e.label),r=(E[e]??``).trim(),i=(w[e]||t.options.length===0)&&r?[r]:[];return[...n,...i]},L=e=>I(e).length>0,R=_.every((e,t)=>L(t)),z=o||O;n.default.useEffect(()=>{let e=h.current;if(!e)return;h.current=null;let t=p.current;if(!t)return;if(e===`tab`){m.current[b]?.focus();return}let n=t.querySelector(`[role="tabpanel"]`);if(e===`other`){n?.querySelector(`textarea`)?.focus();return}(n?.querySelector(`[data-rf-option][aria-checked="true"]`)??n?.querySelector(`[data-rf-option]`)??n?.querySelector(`textarea`)??t.querySelector(`[data-rf-submit]`))?.focus()});let B=E[b]??``,ee=!(!_[b]?.other||!w[b]&&_[b]?.options.length!==0);n.default.useEffect(()=>{let e=P.current;if(!e)return;e.style.height=`auto`;let t=Math.max(e.scrollHeight,F.resolvedMinHeight),n=F.resolvedMaxHeight;e.style.height=`${n?Math.min(t,n):t}px`,e.style.overflowY=n&&t>n?`auto`:`hidden`},[B,ee,b,F.resolvedMinHeight,F.resolvedMaxHeight]);let V=(e,t=`panel`)=>{let n=y?v:v-1,r=Math.max(0,Math.min(n,e));h.current=t,x(r)},H=(e,t,n,r)=>{let i=_.map((t,n)=>e[n]??r);return i[t]=n,i},U=(e,t)=>{let n=_[e];if(!n||z)return;if(t===n.options.length&&n.other){let t=!n.multiple||!w[e];T(n=>H(n,e,t,!1)),n.multiple||C(t=>H(t,e,[],[])),t&&(h.current=`other`);return}let r=n.options[t];if(r){if(n.multiple){let t=S[e]??[],n=t.includes(r.label)?t.filter(e=>e!==r.label):[...t,r.label];C(t=>H(t,e,n,[]));return}C(t=>H(t,e,[r.label],[])),T(t=>H(t,e,!1,!1)),y&&V(e+1)}},te=async()=>{if(!R||z)return;let e=_.map((e,t)=>bh(e.source,I(t)));k(!0);try{await t?.(e),g.current&&j(e)}catch{}finally{g.current&&k(!1)}},ne=()=>{if(b<v){if(!L(b))return;y?V(b+1):te();return}te()},re=e=>{if(z)return;let t=e.target;if(t.tagName===`TEXTAREA`){e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&!e.nativeEvent.isComposing&&(e.preventDefault(),ne());return}if(t.tagName===`INPUT`){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),ne());return}if(e.altKey||e.ctrlKey||e.metaKey)return;let n=!!p.current?.closest(`[dir="rtl"]`);if(e.key===`ArrowRight`||e.key===`ArrowLeft`){if(!y)return;e.preventDefault();let r=e.key===`ArrowRight`!==n;V(b+(r?1:-1),t.getAttribute(`role`)===`tab`?`tab`:`panel`);return}if(e.key===`ArrowDown`||e.key===`ArrowUp`){let n=Array.from(p.current?.querySelectorAll(`[role="tabpanel"] [data-rf-option]`)??[]);if(n.length===0)return;e.preventDefault();let r=n.indexOf(t),i=e.key===`ArrowDown`?1:-1;n[r<0?0:(r+i+n.length)%n.length]?.focus();return}let r=_[b];if(r){let t=yh(e.key,r.numbering),n=r.options.length+(r.other&&r.options.length>0?1:0);if(t>=0&&t<n){e.preventDefault(),U(b,t);return}}if(e.key===`Enter`){if(t.hasAttribute(`data-rf-option`)&&r){e.preventDefault(),!r.multiple&&t.getAttribute(`aria-checked`)!==`true`?t.click():ne();return}t.tagName!==`BUTTON`&&(e.preventDefault(),ne())}};if(v===0)return null;let W=a??A;if(W)return n.default.createElement(`div`,{role:`group`,"aria-label":d.answered,className:X(`rf-chat-questions rounded-lg border border-border bg-card p-3 text-card-foreground`,l,u?.root,u?.summary)},n.default.createElement(`div`,{className:`mb-2 flex items-center gap-1.5 text-xs font-medium text-muted-foreground`},n.default.createElement(Q,{name:`check`,size:14}),n.default.createElement(`span`,null,d.answered)),n.default.createElement(`dl`,{className:`space-y-2`},_.map((e,t)=>{let r=(e.source.id===void 0?W[t]:W.find(t=>t.id===e.source.id)??W[t])?.values??[];return n.default.createElement(`div`,{key:e.source.id??t,className:`min-w-0`},n.default.createElement(`dt`,{className:`text-xs text-muted-foreground`},e.source.header||e.source.question),n.default.createElement(`dd`,{className:X(`text-sm`,r.length===0&&`italic text-muted-foreground`)},r.length?r.join(`, `):d.noAnswer))})));let G=_[b],ie=`${f}-question`,ae=`${f}-panel`,oe=G?.multiple?`checkbox`:`radio`,se=G?G.options.length+(G.other&&G.options.length>0?1:0)-1:-1;return n.default.createElement(`div`,{ref:p,role:`group`,"aria-label":d.questions,"aria-busy":O||void 0,onKeyDown:re,className:X(`rf-chat-questions min-w-0 rounded-lg border border-border bg-card text-card-foreground`,l,u?.root)},y&&n.default.createElement(`div`,{role:`tablist`,"aria-label":d.questions,className:X(`flex gap-1 overflow-x-auto border-b border-border px-2 pt-2`,u?.tabs)},[..._.map(e=>e.title),d.review].map((e,t)=>{let r=b===t;return n.default.createElement(`button`,{key:t,ref:e=>{m.current[t]=e},type:`button`,role:`tab`,id:`${f}-tab-${t}`,"aria-selected":r,"aria-controls":ae,tabIndex:r?0:-1,onClick:()=>V(t,`tab`),className:X(`-mb-px inline-flex shrink-0 items-center gap-1 border-b-2 px-2.5 py-1.5 text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,r?`border-primary text-foreground`:`border-transparent text-muted-foreground hover:text-foreground`,u?.tab)},t<v&&L(t)&&n.default.createElement(Q,{name:`check`,size:12,className:`text-success`}),n.default.createElement(`span`,{className:`max-w-[10rem] truncate`},e))})),n.default.createElement(`div`,{role:`tabpanel`,id:ae,"aria-labelledby":y?`${f}-tab-${b}`:ie,className:X(`p-3`,u?.panel)},G?n.default.createElement(n.default.Fragment,null,n.default.createElement(`p`,{id:ie,className:X(`text-sm font-medium`,u?.question)},G.source.question),G.options.length>0&&n.default.createElement(`p`,{className:`mt-0.5 text-xs text-muted-foreground`},G.multiple?d.chooseMany:d.chooseOne),n.default.createElement(`div`,{role:G.multiple?`group`:`radiogroup`,"aria-labelledby":ie,className:`mt-2 flex flex-col gap-1.5`},G.options.map((e,t)=>{let r=(S[b]??[]).includes(e.label);return n.default.createElement(`button`,{key:`${t}-${e.label}`,type:`button`,role:oe,"aria-checked":r,"data-rf-option":``,disabled:o,onClick:()=>U(b,t),className:X(xh,r?`border-primary bg-primary/10`:e.recommended?`border-primary/40 hover:bg-accent`:`border-border hover:bg-accent`,u?.option,r&&u?.optionSelected)},n.default.createElement(`span`,{"aria-hidden":`true`,className:X(`flex size-5 shrink-0 items-center justify-center rounded text-[11px] font-semibold`,r?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`)},vh(t,G.numbering)),n.default.createElement(`span`,{className:`min-w-0 flex-1`},n.default.createElement(`span`,{className:`block text-sm`},e.label),e.description&&n.default.createElement(`span`,{className:`block text-xs text-muted-foreground`},e.description)),e.recommended&&n.default.createElement(`span`,{className:`shrink-0 rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary`},d.recommended))}),G.other&&G.options.length>0&&n.default.createElement(`button`,{type:`button`,role:oe,"aria-checked":!!w[b],"data-rf-option":``,disabled:o,onClick:()=>U(b,G.options.length),className:X(xh,w[b]?`border-primary bg-primary/10`:`border-border hover:bg-accent`,u?.option,w[b]&&u?.optionSelected)},n.default.createElement(`span`,{"aria-hidden":`true`,className:X(`flex size-5 shrink-0 items-center justify-center rounded text-[11px] font-semibold`,w[b]?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`)},vh(G.options.length,G.numbering)),n.default.createElement(`span`,{className:`min-w-0 flex-1 text-sm`},d.other)),ee&&n.default.createElement(`textarea`,{ref:P,rows:2,value:B,onChange:e=>{let t=e.target.value;D(e=>H(e,b,t,``))},disabled:o,"aria-label":G.options.length===0?G.source.question:d.other,placeholder:d.otherPlaceholder,"aria-keyshortcuts":`Control+Enter Meta+Enter`,onFocus:()=>N(!0),onBlur:()=>N(!1),className:X(`flex min-h-[5rem] w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,`min-h-0 resize-y shadow-none focus-visible:ring-2`)}))):n.default.createElement(n.default.Fragment,null,n.default.createElement(`p`,{className:`text-xs text-muted-foreground`},d.reviewHint),n.default.createElement(`ul`,{className:`mt-2 space-y-1`},_.map((e,t)=>{let r=I(t);return n.default.createElement(`li`,{key:e.source.id??t},n.default.createElement(`button`,{type:`button`,onClick:()=>V(t),className:`w-full rounded-md px-2 py-1.5 text-start transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`},n.default.createElement(`span`,{className:`block text-xs text-muted-foreground`},e.title),n.default.createElement(`span`,{className:X(`block text-sm`,r.length===0&&`italic text-destructive`)},r.length?r.join(`, `):d.noAnswer)))})))),n.default.createElement(`div`,{className:X(`flex flex-wrap items-center justify-between gap-2 border-t border-border px-3 py-2`,u?.footer)},n.default.createElement(`span`,{className:`text-[11px] text-muted-foreground`},G&&ee&&(M||se<0)?d.textKeyboardHint:G&&se>=0?J(d.keyboardHint,{first:vh(0,G.numbering),last:vh(se,G.numbering)}):null),n.default.createElement(`div`,{className:`ms-auto flex items-center gap-2`},y&&b>0&&n.default.createElement(`button`,{type:`button`,onClick:()=>V(b-1),disabled:z,className:X(wh,`border border-border hover:bg-accent`)},d.back),y&&b<v?n.default.createElement(`button`,{type:`button`,onClick:()=>V(b+1),disabled:z||!L(b),className:X(wh,`border border-border hover:bg-accent`)},d.next):n.default.createElement(`button`,{type:`button`,"data-rf-submit":``,onClick:()=>void te(),disabled:z||!R,className:X(wh,`bg-primary text-primary-foreground hover:bg-primary/90`)},O&&n.default.createElement(Q,{name:`loader-2`,size:12,className:`animate-spin`}),c??d.submit))))}function Eh({item:e,className:t}){let r=Y(`chat`),[i,a]=n.default.useState(!1),o=n.default.useId(),s=e.detail??[],c=e.lines??[];return n.default.createElement(`li`,{className:X(`min-w-0 space-y-1`,t)},n.default.createElement(`div`,{className:`flex min-w-0 items-center gap-2 text-sm`},n.default.createElement(Q,{name:e.icon??`terminal`,size:14,className:`shrink-0 text-muted-foreground`}),n.default.createElement(`span`,{className:`shrink-0 font-medium`},e.label),(e.count??1)>1&&n.default.createElement(`span`,{className:`shrink-0 rounded-full bg-muted px-2 text-xs text-muted-foreground`},J(r.activityCount,{count:e.count??1})),(e.failed??0)>0&&n.default.createElement(`span`,{className:`shrink-0 rounded-full bg-warning/15 px-2 text-xs text-warning`},J(r.activityFailed,{count:e.failed??0})),s.length>0&&n.default.createElement(`span`,{className:`min-w-0 truncate text-xs text-muted-foreground`,title:s.join(`, `)},s.slice(0,4).join(`, `),s.length>4?`…`:``),c.length>0&&n.default.createElement(`button`,{type:`button`,onClick:()=>a(e=>!e),"aria-expanded":i,"aria-controls":o,className:`ms-auto inline-flex shrink-0 items-center gap-1 rounded-md text-xs text-primary hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`},i?r.activityHide:r.activityCommands,n.default.createElement(Q,{name:`chevron-down`,size:12,className:X(`transition-transform`,i&&`rotate-180`)}))),c.length>0&&n.default.createElement(`pre`,{id:o,hidden:!i,className:`max-h-64 overflow-auto whitespace-pre-wrap break-words rounded-md border border-border bg-muted p-2 font-mono text-xs leading-relaxed text-muted-foreground`},i?c.join(`
|
|
14
|
-
`):null))}function
|
|
15
|
-
`)||s.activityEmpty)):n.default.createElement(`div`,{className:X(`rf-chat-activity min-w-0 space-y-3`,a,o?.root)},!e.length&&n.default.createElement(`p`,{className:`text-xs text-muted-foreground`},s.activityEmpty),e.length>0&&n.default.createElement(`ul`,{className:`space-y-2`},e.map((e,t)=>e.type===`steps`?n.default.createElement(Eh,{key:t,item:e,className:o?.step}):e.type===`text`?n.default.createElement(`li`,{key:t,className:X(`rounded-md bg-card px-3 py-2`,o?.text)},n.default.createElement(fh,{content:e.text,className:`text-sm`})):n.default.createElement(`li`,{key:t,className:`flex items-center gap-2 text-xs`},n.default.createElement(Q,{name:e.ok?`circle-check`:`circle-x`,size:14,className:e.ok?`text-success`:`text-danger`}),n.default.createElement(`span`,{className:`text-muted-foreground`},e.text)))),t.length>0&&n.default.createElement(`div`,{className:X(`rounded-md border border-border px-3 py-2`,o?.files)},n.default.createElement(`div`,{className:`flex flex-wrap items-center gap-2`},n.default.createElement(`span`,{className:`text-xs font-semibold`},J(s.activityFiles,{count:t.length})),r&&n.default.createElement(`button`,{type:`button`,onClick:r,className:`ms-auto inline-flex items-center gap-1 text-xs text-primary hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`},n.default.createElement(Q,{name:`git-compare`,size:12}),s.activityChanges)),n.default.createElement(`ul`,{className:`mt-1 space-y-0.5`},t.map(e=>n.default.createElement(`li`,{key:e,className:`truncate font-mono text-xs text-muted-foreground`,title:e},e)))),i&&n.default.createElement(`button`,{type:`button`,onClick:()=>l(!0),className:`inline-flex items-center gap-1 text-xs text-primary hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`},n.default.createElement(Q,{name:`terminal`,size:12}),s.activityLog))}var Oh=({children:e,name:t,onChange:r=void 0,onAdd:i=void 0,onRemove:a=void 0,label:o=`Tab`,min:s=1,max:c=void 0,activeIndex:l=0,title:u=void 0,readOnly:d=!1,tabPosition:f=`default`})=>{let{value:p,handleChange:m}=Ec({name:t,onChange:r}),h=Array.isArray(p)?p:[],g=Y(`tabDynamic`),[_,v]=(0,n.useState)(l),[y,b]=(0,n.useState)(0),x=(0,n.useMemo)(()=>(h.length>0?h:Array.from({length:s},()=>({})))?.map((e,t)=>o.includes(`{`)?E.parse(h[t]??{},o):o+` `+(t+1)),[h,o,s,y]),S=typeof e==`function`?e({record:h[_]??{},records:h,currentIndex:_}):e,C=(0,n.useMemo)(()=>kc({children:S,parentName:`${t}.${_}`,parentKey:`${t}-${_}-${y}`}),[_,S,t,y]),w=()=>{let e=h.length>0?[...h,{}]:Array.from({length:x.length+1},()=>({}));i?.(e),m({target:{name:`${t}.${e.length-1}`,value:{}}}),v(e.length-1),b(e=>e+1)},T=e=>{let n=x.length-1;a?.(e),m({target:{name:`${t}.${e}`}}),_>=n&&v(e=>e-1),b(e=>e+1)},D=Qf[f],O=Yf(f);return n.default.createElement(`div`,null,u&&n.default.createElement(`h3`,null,u),n.default.createElement(D,{menu:n.default.createElement(n.default.Fragment,null,x?.map((e,r)=>n.default.createElement(`div`,{key:`${t}-${r}`,className:`${O.itemClassName} relative`},n.default.createElement(`button`,{type:`button`,role:`tab`,"aria-selected":r===_,onClick:()=>v(r),className:Xf(f,r===_,!d&&x.length-1>=s&&r===_?`pr-9`:void 0)},e),!d&&x.length-1>=s&&r===_&&n.default.createElement(Cn,{className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 text-current opacity-70 hover:opacity-100`,icon:`x`,onClick:()=>T(r)}))),!d&&(!c||x.length<c)&&n.default.createElement(`div`,{key:x.length+1,className:O.itemClassName},n.default.createElement(Cn,{className:Xf(f,!1,`border border-dashed border-border/70 justify-center`),icon:`plus`,title:g.addTab,onClick:w}))),content:n.default.createElement(`div`,{className:Zf()},C)}))},kh=({records:e,children:t,limit:r=void 0,page:i=void 0,maxPageButtons:a=void 0,appendTo:o=void 0,before:s=void 0,after:l=void 0,className:u=void 0,wrapperClassName:d=void 0,scrollToTopOnChange:f=void 0,scrollBehavior:p=void 0,align:m=void 0,sticky:h=void 0})=>{let g=q(`pagination`),_=Y(`common`),[v,y]=(0,n.useState)(i||1),[b,x]=(0,n.useState)(e.length);e.length!==b&&(x(e.length),y(1));let S=r||e.length,C=Math.ceil(e.length/S),w=(v-1)*S,T=w+S,E=(0,n.useMemo)(()=>e.slice(w,T),[e,w,T]),D=e=>{e>=1&&e<=C&&y(e)};(0,n.useEffect)(()=>{(f||g.Pagination.scrollToTop)&&window.scrollTo({top:0,behavior:p||g.Pagination.scrollBehavior})},[v,f,p]);let O=(0,n.useMemo)(()=>{let e=Math.min(a||g.Pagination.maxItems,C),t=Math.max(1,v-Math.floor(e/2)),n=t+e-1;return n>C&&(n=C,t=Math.max(1,n-e+1)),Array.from({length:n-t+1},(e,n)=>t+n)},[v,a,C]),k=v===1?`disabled`:``,A=v===C?`disabled`:``,j={start:`justify-start`,center:`justify-center`,end:`justify-end`}[m||g.Pagination.align]||`justify-end`,M=e.length>S&&(h??g.Pagination.sticky),N=n.default.createElement(Z,{className:(d||g.Pagination.wrapperClassName)+(M?` ${g.Pagination.stickyClassName}`:``),style:M?{backdropFilter:`blur(10px)`,backgroundColor:`rgba(255, 255, 255, 0.1)`}:{}},s,e.length>S&&n.default.createElement(`nav`,{"aria-label":_.pageNavigation,className:`${u||g.Pagination.className} flex w-full ${j}`},n.default.createElement(`ul`,{className:`flex items-center gap-1`},n.default.createElement(`li`,{className:`mr-2`},n.default.createElement(`button`,{type:`button`,onClick:()=>D(1),disabled:k===`disabled`,className:X(`inline-flex h-9 min-w-[2.25rem] items-center justify-center rounded-md border bg-background px-3 text-sm transition-colors`,k===`disabled`?`pointer-events-none opacity-40`:`cursor-pointer hover:bg-accent hover:text-accent-foreground`)},n.default.createElement(`span`,null,`«`))),n.default.createElement(`li`,null,n.default.createElement(`button`,{type:`button`,disabled:k===`disabled`,className:X(`inline-flex h-9 min-w-[2.25rem] items-center justify-center rounded-md border bg-background px-3 text-sm transition-colors`,k===`disabled`?`pointer-events-none opacity-40`:`cursor-pointer hover:bg-accent hover:text-accent-foreground`),onClick:()=>D(v-1)},n.default.createElement(`span`,null,`‹`))),O.map(e=>n.default.createElement(`li`,{key:e},n.default.createElement(`button`,{type:`button`,onClick:()=>D(e),className:X(`inline-flex h-9 min-w-[2.25rem] items-center justify-center rounded-md border bg-background px-3 text-sm transition-colors cursor-pointer hover:bg-accent hover:text-accent-foreground`,v===e&&`border-primary bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground`)},e))),n.default.createElement(`li`,{className:`ml-2`},n.default.createElement(`button`,{type:`button`,disabled:A===`disabled`,className:X(`inline-flex h-9 min-w-[2.25rem] items-center justify-center rounded-md border bg-background px-3 text-sm transition-colors`,A===`disabled`?`pointer-events-none opacity-40`:`cursor-pointer hover:bg-accent hover:text-accent-foreground`),onClick:()=>D(v+1)},n.default.createElement(`span`,null,`›`))),n.default.createElement(`li`,null,n.default.createElement(`button`,{type:`button`,onClick:()=>D(C),disabled:A===`disabled`,className:X(`inline-flex h-9 min-w-[2.25rem] items-center justify-center rounded-md border bg-background px-3 text-sm transition-colors`,A===`disabled`?`pointer-events-none opacity-40`:`cursor-pointer hover:bg-accent hover:text-accent-foreground`)},n.default.createElement(`span`,null,`»`))))),l);return n.default.createElement(n.default.Fragment,null,t(E,w),o?(0,c.createPortal)(N,o):o===void 0&&N)},Ah=({records:e=void 0,header:t=void 0,footer:r=void 0,overlays:i=void 0,renderItem:a=void 0,onRowClick:o=void 0,onSelectionChange:s=void 0,sortable:c=!1,pagination:l=void 0,gap:u=void 0,columns:d=void 0,groupBy:f=void 0,selectedKeys:p=void 0,before:m=void 0,after:h=void 0,wrapperClassName:g=void 0,className:_=void 0,headerClassName:v=void 0,scrollClassName:y=void 0,bodyClassName:b=void 0,footerClassName:x=void 0,selectedClassName:S=void 0})=>{let C=q(`gallery`),w=Y(`gallery`),T=Y(`common`),E=S||C.Gallery.selectedClassName,[D,O]=(0,n.useState)(null),k=(0,n.useCallback)(e=>{e&&O(e)},[]),A=u??C.Gallery.gap,j=d??C.Gallery.rowCols,M={0:`0`,1:`0.25rem`,2:`0.5rem`,3:`1rem`,4:`1.5rem`,5:`3rem`},N=M[A]??M[2],P=`0.75rem`,F=`calc(50% - 1rem)`,I=A===0?`${(100/j).toFixed(4)}%`:`calc((100% - (${N} * ${j-1})) / ${j})`,L=e||[],R=(0,n.useMemo)(()=>{if(!c)return;if(typeof c==`object`)return c;let t=e?.[0];if(!t)return;let n=Object.keys(t).find(e=>!e.startsWith(`_`));if(n)return{field:n,dir:`asc`}},[e,typeof c==`object`?c?.dir:void 0,typeof c==`object`?c?.field:void 0,c]),z=rp(`item`),B=(0,n.useCallback)((e,t)=>z(e,t),[z]),{activeSelectedKeys:ee,showSelection:V,updateSelection:H}=np({records:L,selectedKeys:p,onSelectionChange:s,getRecordKey:B}),U=(0,n.useRef)(new Map);(0,n.useEffect)(()=>{let e=new Set(L.map((e,t)=>B(e,t)));for(let t of U.current.keys())e.has(t)||U.current.delete(t)},[L,B]);let te=(e,t)=>{if(E){let t=E.split(/\s+/).filter(Boolean),n=e.target;for(;n&&!n.classList.contains(`item`);){if([`A`,`BUTTON`,`INPUT`,`LABEL`].includes(n.tagName))return;n=n.parentNode}t.every(e=>n.classList.contains(e))||(Array.from(n.parentNode?.children||[]).forEach(e=>{e.classList.remove(...t)}),n.classList.add(...t))}o?.(t)},ne=(0,n.useCallback)((e,t)=>{let n=B(e,t),r=ee.includes(n)?ee.filter(e=>e!==n):[...ee,n];H(r)},[ee,B,H]),re=(e,t)=>{let r=e.img;return r&&n.default.isValidElement(r)?n.default.cloneElement(r,{className:X(`block h-auto w-full max-w-full rounded-lg object-cover`,r.props.className),style:{...r.props.style||{},aspectRatio:r.props.style?.aspectRatio||`16 / 11`,cursor:o?`pointer`:`default`},onClick:o?(t=>{te(t,e),r.props.onClick?.(t)}):r.props.onClick}):n.default.createElement(`img`,{className:`block h-auto w-full max-w-full rounded-lg object-cover`,src:e.thumbnail?e.mimetype+e.thumbnail:`data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAgAAAAwAAAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`,alt:e.name,width:e.width,height:e.height,style:{aspectRatio:`16 / 11`,cursor:o?`pointer`:`default`},onClick:o?(t=>te(t,e)):void 0})},W=e=>n.default.isValidElement(e)?e:n.default.createElement(`span`,{className:`inline-block max-w-full overflow-hidden text-ellipsis align-top`},n.default.createElement(jt,{badge:e,className:`badge-overlay`})),G=(e,t,r=`left`,i)=>n.default.createElement(`div`,{className:X(`absolute z-10 overflow-hidden text-ellipsis whitespace-nowrap leading-none`,r===`right`?`text-right`:`text-left`,i),style:{width:F,maxWidth:F,pointerEvents:`none`,...t}},W(e)),ie={topLeft:{style:{left:P,top:P}},topRight:{style:{right:P,top:P},align:`right`},bottomLeft:{style:{bottom:P,left:P}},bottomRight:{style:{bottom:P,right:P},align:`right`},middleLeft:{style:{left:P,top:`50%`,transform:`translateY(-50%)`}},middleRight:{style:{right:P,top:`50%`,transform:`translateY(-50%)`},align:`right`}},ae=(e,t,n)=>e.when?typeof e.when==`function`?e.when(t,n):Object.entries(e.when).every(([e,n])=>t[e]===n):!0,oe=(e,t,n)=>e.render?e.render(t,n):typeof e.badge==`function`?e.badge(t,n):e.badge,se=(e,t)=>i?.length?i.map((r,i)=>{if(!r.position||!ae(r,e,t))return null;let a=oe(r,e,t);if(a==null||a===!1)return null;let o=ie[r.position];return o?n.default.createElement(n.default.Fragment,{key:`${r.position}-${i}`},G(a,{...o.style,...r.style},o.align,r.className)):null}):null,ce=(0,n.useCallback)((e,t)=>{let n=B(e,t),r=U.current.get(n);if(r&&r.recordRef===e&&r.overlaysRef===i&&r.onClickRef===o&&r.rowIndex===t)return{image:r.image,overlays:r.overlays};let a={image:re(e,t),overlays:se(e,t)};return U.current.set(n,{recordRef:e,overlaysRef:i,onClickRef:o,rowIndex:t,image:a.image,overlays:a.overlays}),a},[B,o,i]),le=(e,t)=>{let r=B(t,e),i=ee.includes(r),s=E?.split(/\s+/).filter(Boolean)||[],c=a?null:ce(t,e),l=a?a(t,e,{isSelected:i,toggleSelection:()=>ne(t,e)}):null;return n.default.createElement(`div`,{key:r,className:X(`item min-w-0`,i&&s),style:{flex:`0 0 ${I}`,maxWidth:I}},n.default.createElement(`div`,{className:X(`relative`,!a&&`overflow-hidden rounded-lg`,a&&o&&`cursor-pointer`),onClick:a&&o?e=>te(e,t):void 0},V&&n.default.createElement(`label`,{className:`absolute left-3 top-3 z-20 inline-flex items-center rounded bg-background/90 px-2 py-1 shadow-sm`},n.default.createElement(`input`,{type:`checkbox`,"aria-label":J(w.selectItem,{key:r}),checked:i,onChange:()=>ne(t,e),onClick:e=>e.stopPropagation()})),a?l:n.default.createElement(n.default.Fragment,null,c.image,c.overlays)))},ue=(e,t)=>{let n=Array.isArray(t)?t:[t],r=new Map;return e.forEach((e,t)=>{let i=n.map(t=>String(e[t]??``)).join(` · `)||`-`;r.has(i)||r.set(i,[]),r.get(i).push({item:e,index:t})}),Array.from(r.entries()).map(([e,t])=>({kind:`group`,groupName:e,items:t}))},K=(0,n.useMemo)(()=>{if(!Array.isArray(e))return;let t=wr.records(e,R)||[];return f?ue(t,f):t.map((e,t)=>({kind:`item`,item:e,index:t}))},[e,f,R]);return K===void 0?n.default.createElement(`p`,{className:`p-4`},n.default.createElement(`span`,{className:`mr-2 inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}),T.loading):K.length===0?n.default.createElement(`p`,{className:`p-4`},T.noDataFound):n.default.createElement(`div`,{className:X(`flex items-stretch gap-3`,g||C.Gallery.wrapperClassName)},m&&n.default.createElement(`div`,{className:`gallery-before flex shrink-0 items-center self-stretch`},m),n.default.createElement(Z,{className:X(`min-w-0 flex-1 flex flex-col`,_||C.Gallery.className)},t&&n.default.createElement(`div`,{className:v||C.Gallery.headerClassName},t),n.default.createElement(Z,{className:X(`min-w-0 flex-1`,y||C.Gallery.scrollClassName)},n.default.createElement(kh,{records:K,appendTo:D,wrapperClassName:`px-3 pt-4 pb-2`,...l||{}},e=>n.default.createElement(`div`,{className:`p-3`},n.default.createElement(`div`,{className:`flex flex-wrap text-center items-center `+(b||C.Gallery.bodyClassName),style:{gap:N}},e.map(e=>e.kind===`group`?n.default.createElement(`section`,{key:e.groupName,className:`gallery-group rounded-lg border bg-card p-3 text-left`},n.default.createElement(`h3`,{className:`mb-3 text-sm font-semibold uppercase tracking-wide text-muted-foreground`},e.groupName),n.default.createElement(`div`,{className:X(`flex flex-wrap items-center`),style:{gap:N}},e.items.map(({item:e,index:t})=>le(t,e)))):le(e.index,e.item)))))),n.default.createElement(`div`,{ref:k,className:`mt-auto`}),r&&n.default.createElement(`div`,{className:x||C.Gallery.footerClassName},r)),h&&n.default.createElement(`div`,{className:`gallery-after flex shrink-0 items-center self-stretch`},h))};function jh({records:e,recordId:t,sortable:r,pagination:i,selection:a=!1,selectedKeys:o,onSelectionChange:s,onRowClick:c,groupBy:l,wrapperClassName:u,before:d,after:f,columns:p,overlays:m,renderItem:h}){let g=(0,n.useMemo)(()=>Xp(t),[t]),_=(0,n.useMemo)(()=>e.reduce((e,t)=>(e.set(g(t),t),e),new Map),[g,e]),v=(0,n.useMemo)(()=>e.map(e=>({...e,[yr]:g(e)})),[e,g]);return n.default.createElement(Ah,{records:v,overlays:m,renderItem:h?(e,t,n)=>h(e,t,n):void 0,sortable:r,pagination:i,selectedKeys:a?o:void 0,onSelectionChange:a?e=>{let t=e.keys,n=e.records;if(a===`single`&&e.keys.length>1){let r=e.keys[e.keys.length-1];t=r?[r]:[],n=r&&_.get(r)?[_.get(r)]:[]}let r={keys:t,records:n,hasSelection:t.length>0,clear:()=>s?.({keys:[],records:[],hasSelection:!1,clear:()=>void 0})};s?.(r)}:void 0,onRowClick:c?e=>c(e):void 0,groupBy:l,wrapperClassName:u,before:d,after:f,columns:p})}function Mh({actions:e,form:t,editDeepLink:i,preparedRecords:a,recordId:o,sourcePath:s,db:c,onSave:l,onDelete:u,onComplete:d,audit:f=!1}){let p=(0,r.useLocation)(),m=(0,r.useNavigate)(),h=(0,n.useId)(),g=gc(),_=(0,n.useMemo)(()=>Xp(o),[o]),v=(0,n.useMemo)(()=>nm(e,!!t),[e,t]),[y,b]=(0,n.useState)(null),x=(0,n.useMemo)(()=>`${Yp(s||`grid-records`)}-${Yp(h)}`,[h,s]),S=(0,n.useCallback)(()=>{b(null),i&&p.hash.startsWith(`#${x}:`)&&m({pathname:p.pathname,search:p.search,hash:``},{replace:!0})},[i,x,p.hash,p.pathname,p.search,m]),C=(0,n.useCallback)(async(e,t=!0)=>{let n=u?await u({record:e}):s?`${s}/${_(e)}`:void 0;if(!n&&!u)return!1;n&&await c.remove(n);let r=await d?.({record:e,action:`delete`})??!0;return r&&t&&S(),r},[S,c,_,d,u,s]),w=(0,n.useCallback)(async()=>g.save(),[g]),T=(0,n.useCallback)(async(e,t)=>{let n=v[e];if(!n||!rm(n,t)||im(n,t))return;let r={actionKey:e,record:t,recordKey:t?_(t):void 0,rowIndex:t?._index,isNewRecord:!t,close:S,save:w,remove:async()=>t?C(t,!0):!1,runAction:(e,t)=>T(e,t)};if(n.kind===`route`){let e=typeof n.to==`function`?n.to(r):n.to;m(e);return}if(n.kind===`external`){let e=typeof n.href==`function`?n.href(r):n.href;window.open(e,`_blank`,`noopener,noreferrer`);return}if(n.kind===`inline`){await n.run(r);return}e===`edit`&&i&&t&&m({hash:`${x}:${encodeURIComponent(_(t))}`},{replace:!1}),b({actionKey:e,record:t})},[S,i,_,x,m,v,C,w]),E=(0,n.useCallback)((e,t)=>({actionKey:e,record:t,recordKey:t?_(t):void 0,rowIndex:t?._index,isNewRecord:!t,runAction:(e,t)=>T(e,t)}),[_,T]),D=(0,n.useCallback)(async e=>{let t=y?.record;if(e===`cancel`){S();return}if(e===`save`){await w();return}if(e===`remove`){if(!t)return;await C(t,!0);return}await T(e,t)},[y?.record,S,C,T,w]),O=(0,n.useCallback)((e,t)=>({actionKey:e,record:t,recordKey:t?_(t):void 0,rowIndex:t?._index,isNewRecord:!t,runAction:e=>{D(e)}}),[_,D]);(0,n.useEffect)(()=>{if(!i)return;let e=p.hash.replace(/^#/,``),t=`${x}:`;if(!e.startsWith(t)){y?.actionKey===`edit`&&b(null);return}let n=decodeURIComponent(e.slice(t.length)),r=a.find(e=>_(e)===n);r&&b(e=>e?.actionKey===`edit`&&e.record&&_(e.record)===n?e:{actionKey:`edit`,record:r})},[y?.actionKey,i,_,x,p.hash,a]);let k=y?v[y.actionKey]:void 0;return{normalizedActions:v,activeAction:y,activeActionConfig:k,activeActionBody:(0,n.useMemo)(()=>{if(!y||!k)return null;let e=E(y.actionKey,y.record),r=O(y.actionKey,y.record);if(k.kind===`delete`)return typeof k.body==`function`?k.body(r):k.body===void 0?n.default.createElement(`div`,{className:`space-y-2`},n.default.createElement(`p`,null,`Delete this record?`),y.record&&n.default.createElement(`p`,{className:`text-sm text-muted-foreground`},_(y.record))):k.body;if((y.actionKey===`add`||y.actionKey===`edit`)&&t){let i=k.kind===`modal`&&k.body!==void 0?typeof k.body==`function`?k.body(r):k.body:typeof t==`function`?t({...e,record:y.record}):t;return n.default.isValidElement(i)?n.default.createElement(Ac,{appearance:`empty`,controller:g,defaultValues:y.record,log:f,onSave:l?async({record:e,action:t,storagePath:n})=>l({record:e,action:t,storagePath:n}):void 0,onDelete:u?async({record:e})=>u({record:e}):void 0,onComplete:async({record:e,action:t})=>{let n=await d?.({record:e,action:t})??!0;return n&&S(),n},path:s},i):i}return k.kind===`modal`&&k.body!==void 0?typeof k.body==`function`?k.body(r):k.body:null},[y,k,f,S,t,g,E,O,_,d,u,l,s]),activeKey:y?.actionKey===`edit`&&y.record?_(y.record):null,runAction:T,runModalAction:D,close:S,getActionContext:E,getModalActionContext:O,getRecordKey:_,formController:g,gridHashId:x}}function Nh({columns:e,records:t,form:r}){return(0,n.useMemo)(()=>tm(e,t,r),[e,r,t])}function Ph({records:e,onLoad:t}){let[r,i]=(0,n.useState)(e),[a,o]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{if(!t){i(e),o(!1);return}let n=!0,r=t(ie(e));if(r instanceof Promise)return o(!0),r.then(e=>{n&&i(e)}).finally(()=>{n&&o(!1)}),()=>{n=!1};i(r),o(!1)},[e,t]),{preparedRecords:r,loading:a}}function Fh({selection:e}){let t=e!==null&&e!==!1&&typeof e==`object`,r=e?typeof e==`string`?e:e.mode:!1,i=t?e.defaultKeys:void 0,a=t?e.onChange:void 0,[o,s]=(0,n.useState)(i??[]),[c,l]=(0,n.useState)([]),u=i?.join(`\0`)??``;(0,n.useEffect)(()=>{s(i??[]),l([])},[u]);let d=(0,n.useCallback)(()=>{s([]),l([]),a?.({keys:[],records:[],hasSelection:!1,clear:()=>void 0})},[a]);return{mode:r,activeSelectionKeys:o,selectionState:(0,n.useMemo)(()=>({keys:o,records:c,hasSelection:o.length>0,clear:d}),[d,o,c]),handleSelectionChange:(0,n.useCallback)(e=>{s(e.keys),l(e.records),a?.(e)},[a])}}var Ih=(e,t,n,r,i)=>t?.kind===`delete`?typeof t.title==`function`?t.title(n):t.title||r:t?.kind===`modal`?typeof t.title==`function`?t.title(n):t.title||am(e,t,i):am(e,t,i),Lh=e=>{switch(e.kind){case`select`:return``;case`multiselect`:return[];case`dateRange`:return{from:``,to:``};case`numberRange`:return{min:void 0,max:void 0};default:return e.defaultValue??!1}},Rh=(e,t)=>{switch(e.kind){case`select`:return typeof t==`string`&&t!==``;case`multiselect`:return Array.isArray(t)&&t.length>0;case`dateRange`:{let e=t;return!!e?.from||!!e?.to}case`numberRange`:{let e=t;return e?.min!==void 0||e?.max!==void 0}default:return!!t!=!!(e.defaultValue??!1)}},zh=(e,t,n)=>{switch(e.kind){case`select`:return e.predicate(t,n);case`multiselect`:return e.predicate(t,n);case`dateRange`:return e.predicate(t,n);case`numberRange`:return e.predicate(t,n);default:return e.predicate(t,n)}},Bh=(e,t,n)=>{switch(e.kind){case`select`:{let n=e.options.find(e=>e.value===t);return`${e.label}: ${n?.label??String(t)}`}case`multiselect`:{let r=t;if(r.length===1){let t=e.options.find(e=>e.value===r[0]);return`${e.label}: ${t?.label??r[0]}`}return`${e.label}: ${n.filtersSelectedCountTemplate.replace(`{count}`,String(r.length))}`}case`dateRange`:{let r=t;return r.from&&r.to?`${e.label}: ${r.from} → ${r.to}`:r.from?`${e.label}: ${n.filtersRangeFrom} ${r.from}`:`${e.label}: ${n.filtersRangeTo} ${r.to}`}case`numberRange`:{let r=t;return r.min!==void 0&&r.max!==void 0?`${e.label}: ${r.min}–${r.max}`:r.min===void 0?`${e.label}: ${n.filtersRangeMax} ${r.max}`:`${e.label}: ${n.filtersRangeMin} ${r.min}`}default:return e.label}},Vh=`w-full rounded-md border border-input bg-background px-2 py-1.5 text-sm placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring`;function Hh({filter:e,value:t,onChange:r,dict:i}){if(e.kind===`select`)return n.default.createElement(`label`,{className:`flex flex-col gap-1.5`},n.default.createElement(`span`,{className:`text-sm font-medium text-foreground`},e.label),n.default.createElement(`select`,{className:Vh,value:t,onChange:e=>r(e.target.value)},n.default.createElement(`option`,{value:``},i.filtersSelectPlaceholder),e.options.map(e=>n.default.createElement(`option`,{key:e.value,value:e.value},e.label))));if(e.kind===`multiselect`){let i=t,a=e=>r(i.includes(e)?i.filter(t=>t!==e):[...i,e]);return n.default.createElement(`div`,{className:`flex flex-col gap-1.5`},n.default.createElement(`span`,{className:`text-sm font-medium text-foreground`},e.label),n.default.createElement(`div`,{className:`flex flex-col gap-1`},e.options.map(e=>n.default.createElement(`label`,{key:e.value,className:`flex cursor-pointer items-center gap-2 text-sm text-muted-foreground`},n.default.createElement(`input`,{type:`checkbox`,checked:i.includes(e.value),onChange:()=>a(e.value)}),e.label))))}if(e.kind===`dateRange`){let a=t;return n.default.createElement(`div`,{className:`flex flex-col gap-1.5`},n.default.createElement(`span`,{className:`text-sm font-medium text-foreground`},e.label),n.default.createElement(`div`,{className:`flex flex-col gap-2`},n.default.createElement(`label`,{className:`flex flex-col gap-1`},n.default.createElement(`span`,{className:`text-xs text-muted-foreground`},i.filtersRangeFrom),n.default.createElement(`input`,{type:`date`,className:Vh,value:a.from,onChange:e=>r({...a,from:e.target.value})})),n.default.createElement(`label`,{className:`flex flex-col gap-1`},n.default.createElement(`span`,{className:`text-xs text-muted-foreground`},i.filtersRangeTo),n.default.createElement(`input`,{type:`date`,className:Vh,value:a.to,onChange:e=>r({...a,to:e.target.value})}))))}if(e.kind===`numberRange`){let a=t;return n.default.createElement(`div`,{className:`flex flex-col gap-1.5`},n.default.createElement(`span`,{className:`text-sm font-medium text-foreground`},e.label),n.default.createElement(`div`,{className:`flex flex-col gap-2`},n.default.createElement(`label`,{className:`flex flex-col gap-1`},n.default.createElement(`span`,{className:`text-xs text-muted-foreground`},i.filtersRangeMin),n.default.createElement(`input`,{type:`number`,className:Vh,value:a.min??``,onChange:e=>r({...a,min:e.target.value===``?void 0:Number(e.target.value)})})),n.default.createElement(`label`,{className:`flex flex-col gap-1`},n.default.createElement(`span`,{className:`text-xs text-muted-foreground`},i.filtersRangeMax),n.default.createElement(`input`,{type:`number`,className:Vh,value:a.max??``,onChange:e=>r({...a,max:e.target.value===``?void 0:Number(e.target.value)})}))))}let a=t;return n.default.createElement(`label`,{className:`inline-flex cursor-pointer items-center gap-2 select-none`},n.default.createElement(`span`,{className:`relative inline-flex h-5 w-9 shrink-0 items-center`},n.default.createElement(`input`,{type:`checkbox`,checked:a,onChange:()=>r(!a),className:`peer absolute inset-0 m-0 h-full w-full cursor-pointer opacity-0`}),n.default.createElement(`span`,{"aria-hidden":`true`,className:X(`pointer-events-none absolute inset-0 rounded-full transition-colors duration-200 ease-out peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2`,a?`bg-primary`:`bg-muted-foreground/35`)},n.default.createElement(`span`,{className:X(`pointer-events-none absolute top-0.5 left-0.5 h-4 w-4 rounded-full bg-background shadow-sm transition-transform duration-200 ease-out`,a&&`translate-x-4`)}))),n.default.createElement(`span`,{className:`text-sm text-foreground`},e.label))}function Uh({records:e,recordId:t,sourcePath:r,columns:i,actions:a,form:o,editDeepLink:s,header:c,footer:l,view:u=`table`,views:d,sticky:f,wrapperClassName:p,cardClassName:m,bodyClassName:h,loading:g=!1,title:_,before:v,after:y,sortable:b=!0,pagination:x,selection:S,onRowClick:C,reorderable:w=!1,onReorder:T,groupBy:E,searchable:D,filters:O,onSave:k,onDelete:A,onComplete:j,audit:M=!1,onLoad:N}){let P=q(`grid`),F=Y(`grid`),I=Y(`common`),L=(0,n.useMemo)(()=>({add:F.buttonAdd}),[F.buttonAdd]),R=lr(),{preparedRecords:z,loading:B}=Ph({records:e,onLoad:N}),ee=Nh({columns:i,records:z,form:o}),[V,H]=(0,n.useState)(()=>Object.fromEntries((O??[]).map(e=>[e.key,Lh(e)]))),[U,te]=(0,n.useState)(!1),ne=(0,n.useCallback)((e,t)=>{H(n=>({...n,[e]:t}))},[]),re=(0,n.useCallback)(e=>{H(t=>({...t,[e.key]:Lh(e)}))},[]),W=(O??[]).filter(e=>Rh(e,V[e.key]??Lh(e))),G=(0,n.useMemo)(()=>!O||O.length===0?z:z.filter(e=>O.every(t=>zh(t,e,V[t.key]??Lh(t)))),[z,O,V]),ie=O&&O.length>0?n.default.createElement(Cn,{icon:`filter`,ariaLabel:F.filtersButton,title:F.filtersButton,variant:`link`,badge:W.length>0?W.length:void 0,onClick:()=>te(!0)}):null,ae=(O??[]).length>0&&W.length>0?n.default.createElement(`div`,{className:`flex flex-wrap items-center gap-1.5`},W.map(e=>n.default.createElement(Mt,{key:e.key,variant:`info`,className:`inline-flex items-center gap-1`},Bh(e,V[e.key]??Lh(e),F),n.default.createElement(Cn,{icon:`x`,variant:`link`,ariaLabel:`${F.filtersClearAll} ${e.label}`,title:`${F.filtersClearAll} ${e.label}`,onClick:()=>re(e)})))):null,oe=!D&&ie?n.default.createElement(`div`,{className:`flex flex-wrap items-center gap-2`},ie,ae):null,se=U&&O&&O.length>0?n.default.createElement(si,{title:F.filtersPanelTitle,size:`md`,position:`right`,onClose:()=>te(!1),footer:n.default.createElement(Cn,{label:F.filtersClearAll,variant:`link`,disabled:W.length===0,onClick:()=>H(Object.fromEntries(O.map(e=>[e.key,Lh(e)])))})},n.default.createElement(`div`,{className:`flex flex-col gap-5`},O.map(e=>n.default.createElement(Hh,{key:e.key,filter:e,value:V[e.key]??Lh(e),onChange:t=>ne(e.key,t),dict:F})))):null,ce=D===!0?{}:D||void 0,[le,ue]=(0,n.useState)(``),K=(0,n.useMemo)(()=>{if(!ce||!le.trim())return G;let e=le.trim().toLowerCase(),t=ce.fields?.map(String);return G.filter(n=>(t??Object.keys(n)).some(t=>{let r=de(n,t);return typeof r==`string`&&r.toLowerCase().includes(e)}))},[G,ce,le]),fe=ce?n.default.createElement(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`},n.default.createElement(`div`,{className:`flex min-w-0 items-center gap-1`},n.default.createElement(`input`,{type:`search`,value:le,onChange:e=>ue(e.target.value),placeholder:ce.placeholder??I.search,className:`w-full max-w-xs rounded-md border border-input bg-background px-2 py-1 text-sm placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring`}),ie),ae,n.default.createElement(`span`,{className:`shrink-0 text-xs text-muted-foreground`},K.length,` / `,z.length)):null,pe=d??{},me=pe.table??{},he=pe.gallery??{},[ge,_e]=(0,n.useState)(u);(0,n.useEffect)(()=>{_e(u)},[u]);let[ve,ye]=(0,n.useState)(()=>new Set(ee.filter(e=>e.defaultVisible===!1).map(e=>String(e.key)))),be=(0,n.useCallback)(e=>{ye(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),xe=(0,n.useMemo)(()=>ee.filter(e=>!ve.has(String(e.key))),[ee,ve]),Se=he.fields??[],[Ce,we]=(0,n.useState)(()=>new Set(Se.filter(e=>e.defaultVisible===!1).map(e=>String(e.key)))),Te=(0,n.useCallback)(e=>{we(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),Ee=(0,n.useMemo)(()=>Se.filter(e=>!Ce.has(String(e.key))),[Se,Ce]),De=(0,n.useMemo)(()=>{if(he.renderItem)return;let e=[];if(Ee.length){let t=new Map;Ee.forEach(e=>{let n=e.position??`bottomLeft`;t.has(n)||t.set(n,[]),t.get(n).push(e)}),e.push(...Array.from(t.entries()).map(([e,t])=>({position:e,render:e=>n.default.createElement(`div`,{className:`w-full space-y-0.5 bg-background/90 px-2 py-1 text-xs`},t.map(t=>{let r=de(e,String(t.key));return n.default.createElement(`div`,{key:String(t.key),className:`truncate font-medium`},t.render?t.render(r,e):String(r??``))}))})))}let t=[...he.overlays??[],...e];return t.length?t:void 0},[he.overlays,he.renderItem,Ee]),{mode:Oe,activeSelectionKeys:ke,selectionState:Ae,handleSelectionChange:je}=Fh({selection:S}),{normalizedActions:Me,activeAction:Ne,activeActionConfig:Pe,activeActionBody:Fe,activeKey:Ie,runAction:Le,close:Re,getActionContext:ze,getModalActionContext:Be,getRecordKey:Ve,formController:He}=Mh({actions:a,form:o,editDeepLink:s,preparedRecords:z,recordId:t,sourcePath:r,db:R,onSave:k,onDelete:A,onComplete:j,audit:M}),Ue=Me.edit,We=!!Ue&&(Ue.kind!==`modal`||!!o),Ge=(0,n.useCallback)(e=>{if(C?.(e),!We)return;let t=Ve(e);if(Ne?.actionKey===`edit`&&Ne.record&&Ve(Ne.record)===t){Re();return}Le(`edit`,e)},[Ne?.actionKey,Ne?.record,We,Re,Ve,C,Le]),Ke=C||We?Ge:void 0,qe=(0,n.useCallback)((e,t,r)=>{let i=Me[e];return!i||!rm(i,t)?null:n.default.createElement(Cn,{className:r||(e===`add`?`btn-primary`:void 0),icon:i.icon,label:am(e,i,L),disabled:im(i,t),onClick:()=>Le(e,t)})},[Me,Le,L]),Je=(0,n.useMemo)(()=>Object.entries(Me).filter(([e,t])=>e!==`edit`&&e!==`delete`&&rm(t,void 0)).map(([e])=>e),[Me]),Ye=(0,n.useMemo)(()=>({title:_,records:z,selection:Ae,runAction:Le}),[z,Le,Ae,_]),Xe=(0,n.useMemo)(()=>({records:z,selection:Ae,runAction:Le}),[z,Le,Ae]),Ze=pe.toggle?n.default.createElement(`span`,{className:`inline-flex rounded-md border border-border overflow-hidden`},n.default.createElement(Cn,{icon:`list`,ariaLabel:F.tableView,title:F.tableView,className:`rounded-none border-0 `+(ge===`table`?`bg-card text-foreground shadow-sm`:`bg-transparent text-muted-foreground`),onClick:()=>_e(`table`)}),n.default.createElement(Cn,{icon:`layout-grid`,ariaLabel:F.galleryView,title:F.galleryView,className:`rounded-none border-0 border-l border-border `+(ge===`gallery`?`bg-card text-foreground shadow-sm`:`bg-transparent text-muted-foreground`),onClick:()=>_e(`gallery`)})):null,Qe=me.columnPicker&&ge===`table`?n.default.createElement(Ya,{trigger:{icon:`columns`,title:F.columns},triggerClassName:`btn btn-outline-secondary`,position:`end`},ee.map(e=>{let t=String(e.key);return n.default.createElement(`label`,{key:t,className:`flex cursor-pointer items-center gap-2 px-3 py-1.5 text-sm hover:bg-accent`},n.default.createElement(`input`,{type:`checkbox`,checked:!ve.has(t),onChange:()=>be(t)}),e.label)})):null,$e=he.fieldPicker&&ge===`gallery`&&Se.length?n.default.createElement(Ya,{trigger:{icon:`sliders-horizontal`,title:F.fields},triggerClassName:`btn btn-outline-secondary`,position:`end`},Se.map(e=>{let t=String(e.key);return n.default.createElement(`label`,{key:t,className:`flex cursor-pointer items-center gap-2 px-3 py-1.5 text-sm hover:bg-accent`},n.default.createElement(`input`,{type:`checkbox`,checked:!Ce.has(t),onChange:()=>Te(t)}),e.label)})):null,et=(0,n.useMemo)(()=>{if(c!==void 0)return typeof c==`function`?c(Ye):c;if(_||fe||oe||Je.length||Ze||Qe||$e)return n.default.createElement(n.default.Fragment,null,fe||oe?n.default.createElement(`span`,{className:`flex min-w-0 flex-1 items-center gap-3`},_,fe,oe):_||n.default.createElement(`span`,null),Je.length||Ze||Qe||$e?n.default.createElement(`span`,{className:`flex flex-wrap items-center gap-2`},Qe,$e,Ze,Je.map(e=>n.default.createElement(n.default.Fragment,{key:e},qe(e)))):null)},[qe,c,Je,Ye,_,Ze,Qe,$e,fe,oe]),tt=(0,n.useMemo)(()=>{if(l!==void 0)return typeof l==`function`?l(Xe):l},[l,Xe]),nt=(0,n.useMemo)(()=>{if(Ne&&Pe&&(Pe.kind===`modal`||Pe.kind===`delete`))return Be(Ne.actionKey,Ne.record)},[Ne,Pe,Be]),rt=(0,n.useMemo)(()=>{if(Pe&&(Pe.kind===`modal`||Pe.kind===`delete`)&&Pe.header!==void 0&&nt)return typeof Pe.header==`function`?Pe.header(nt):Pe.header},[Pe,nt]),it=(0,n.useMemo)(()=>{if(!(!Pe||Pe.kind!==`modal`&&Pe.kind!==`delete`)){if(Pe.footer===!1)return!1;if(Pe.footer!==void 0&&nt)return typeof Pe.footer==`function`?Pe.footer(nt):Pe.footer}},[Pe,nt]),at=om(b);return n.default.createElement(n.default.Fragment,null,n.default.createElement(hr,{wrapperClassName:p,header:et,footer:tt,className:X(P.Grid.Card.className,f?`sticky-${f}`:``,m),headerClassName:P.Grid.Card.headerClassName,bodyClassName:X(P.Grid.Card.bodyClassName,h),footerClassName:P.Grid.Card.footerClassName,loading:g||B},ge===`gallery`?n.default.createElement(jh,{records:K,recordId:t,sortable:at||b,pagination:x,selection:Oe,selectedKeys:ke,onSelectionChange:Oe?je:void 0,onRowClick:Ke,groupBy:E,wrapperClassName:P.Grid.Gallery.wrapperClassName,before:v,after:y,columns:he.columns,overlays:De,renderItem:he.renderItem}):n.default.createElement(sm,{records:K,recordId:t,columns:xe,runAction:Le,sortable:at||b,pagination:x,selection:Oe,selectedKeys:ke,onSelectionChange:Oe?je:void 0,onRowClick:Ke,reorderable:w,onReorder:T,activeKey:Ie,groupBy:E,wrapperClassName:P.Grid.Table.wrapperClassName,className:me.className,heightClassName:me.heightClassName,scrollClassName:me.scrollClassName,headerClassName:me.headerClassName,before:v,after:y})),se,Ne&&Pe&&(Pe.kind===`modal`||Pe.kind===`delete`)&&n.default.createElement(si,{size:(Pe.kind===`modal`||Pe.kind===`delete`)&&Pe.size||P.Grid.Modal.size,position:(Pe.kind===`modal`||Pe.kind===`delete`)&&Pe.position||P.Grid.Modal.position,header:rt,title:Ih(Ne.actionKey,Pe,Pe.kind===`modal`||Pe.kind===`delete`?Be(Ne.actionKey,Ne.record):ze(Ne.actionKey,Ne.record),F.deleteConfirm,L),onClose:Re,onSave:Pe.kind===`modal`&&Pe.footer===void 0&&(Ne.actionKey===`add`||Ne.actionKey===`edit`)?e=>He.save(e):void 0,onDelete:Pe.kind===`delete`?async()=>{let e=Ne.record;if(!e)return!1;let t=A?await A({record:e}):r?`${r}/${Ve(e)}`:void 0;if(!t&&!A)return!1;t&&await R.remove(t);let n=await j?.({record:e,action:`delete`})??!0;return n&&Re(),n}:Pe.kind===`modal`&&Pe.footer===void 0&&Ne.actionKey===`edit`&&Ne.record&&Me.delete?async()=>(await Be(Ne.actionKey,Ne.record).runAction(`remove`),!1):void 0,footer:it,showCancel:Pe.kind===`modal`||Pe.kind===`delete`?Pe.footer===void 0:!0,allowFullscreen:Pe.kind===`modal`||Pe.kind===`delete`?Pe.allowFullscreen:!0,wrapperClassName:P.Grid.Modal.wrapperClassName,className:P.Grid.Modal.className,headerClassName:P.Grid.Modal.headerClassName,titleClassName:P.Grid.Modal.titleClassName,bodyClassName:P.Grid.Modal.bodyClassName,footerClassName:P.Grid.Modal.footerClassName},Fe))}function Wh(e){return n.default.createElement(Uh,e)}function Gh(e){return`records`in e?n.default.createElement(Wh,e):n.default.createElement(Jp,e)}function Kh(){return n.default.createElement(Gh,{path:`/users`,recordId:e=>`${e.email??``}`.replace(`@`,`-`),form:n.default.createElement(n.default.Fragment,null,n.default.createElement($c,{name:`username`,label:`Username`}),n.default.createElement(tl,{name:`email`,label:`Email`,required:!0,readOnlyAfterSet:!0}),n.default.createElement(Nr,{name:`permission`,label:`Permission`,options:[{value:`admin`,label:`Admin`},{value:`user`,label:`User`}],required:!0}))})}var qh=()=>{let e=Y(`common`);return n.default.createElement(`div`,{className:`flex flex-col justify-center items-center vh-100`},n.default.createElement(`h1`,null,`404`),n.default.createElement(`p`,null,e.notFoundMessage),n.default.createElement(r.Link,{to:`/`},n.default.createElement(Q,{name:`house-door`}),` `,e.goHome))},Jh=({size:e=28})=>n.default.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.75`,strokeLinecap:`round`,strokeLinejoin:`round`},n.default.createElement(`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z`}),n.default.createElement(`line`,{x1:`12`,x2:`12`,y1:`9`,y2:`13`}),n.default.createElement(`line`,{x1:`12`,x2:`12.01`,y1:`17`,y2:`17`})),Yh=({open:e})=>n.default.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,style:{transition:`transform 0.18s`,transform:e?`rotate(180deg)`:`none`,flexShrink:0}},n.default.createElement(`polyline`,{points:`6 9 12 15 18 9`})),Xh=()=>n.default.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},n.default.createElement(`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`}),n.default.createElement(`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`})),Zh=()=>n.default.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},n.default.createElement(`path`,{d:`m22 2-7 20-4-9-9-4Z`}),n.default.createElement(`path`,{d:`M22 2 11 13`})),Qh=()=>n.default.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},n.default.createElement(`path`,{d:`m8 2 1.88 1.88M14.12 3.88 16 2`}),n.default.createElement(`path`,{d:`M9 7.13v-1a3.003 3.003 0 1 1 6 0v1`}),n.default.createElement(`path`,{d:`M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6z`}),n.default.createElement(`path`,{d:`M12 20v-9`}),n.default.createElement(`path`,{d:`M6.53 9C4.6 8.8 3 7.1 3 5`}),n.default.createElement(`path`,{d:`M6 13H2`}),n.default.createElement(`path`,{d:`M3 21c0-2.1 1.7-3.9 3.8-4`}),n.default.createElement(`path`,{d:`M20.97 5c0 2.1-1.6 3.8-3.5 4`}),n.default.createElement(`path`,{d:`M22 13h-4`}),n.default.createElement(`path`,{d:`M17.2 17c2.1.1 3.8 1.9 3.8 4`})),$h=(e,t)=>({error:{message:e.message,stack:e.stack??``},componentStack:t?.componentStack??``,context:{url:typeof window<`u`?window.location.href:``,userAgent:typeof navigator<`u`?navigator.userAgent:``,timestamp:new Date().toISOString()}}),eg=(e,t)=>{let n=$h(e,t);return[`Error: ${n.error.message}`,``,`--- Stack Trace ---`,n.error.stack,``,`--- Component Stack ---`,n.componentStack,``,`--- Context ---`,`URL: ${n.context.url}`,`Timestamp: ${n.context.timestamp}`,`Agent: ${n.context.userAgent}`].join(`
|
|
16
|
-
`)},
|
|
9
|
+
`?(n+=1,r=1):r+=1;return{line:n,column:r}},ls=(e,t,n,r,i,a=`Syntax error`)=>{let{line:o,column:s}=cs(e,n);return new ns(`${a}${i?` near ${i}`:``} at line ${o}, column ${s}.`,{language:t,from:n,to:r,line:o,column:s,nodeName:i})},us=e=>{do if(e.type.isError)return{from:e.from,to:e.to,nodeName:e.name};while(e.next());return null},ds=async(e,t)=>{if(e.trim()){if(t===`liquid`){try{(await ss()).parse(e)}catch(n){if(n instanceof ns)throw n;let r=n&&typeof n==`object`&&`token`in n?n.token:void 0,i=r?.begin??0,a=r?.end??i,o=n instanceof Error?n.message.split(`, line:`)[0]:`Invalid Liquid syntax`;throw ls(e,t,i,a,r?.name,o)}return}try{let n=us((await os(t)).parse(e).cursor());if(n)throw ls(e,t,n.from,n.to,n.nodeName)}catch(n){if(n instanceof ns)throw n;if(t===`json`&&n instanceof Error){let r=n.message.match(/position\s+(\d+)/i),i=r?Number(r[1]):0;throw ls(e,t,i,i,void 0,`Invalid JSON`)}throw new ns(`Unable to validate ${t} code.`,{language:t,from:0,to:0,line:1,column:1})}}},fs=async(e,t)=>{try{return await ds(e,t),{valid:!0}}catch(e){if(e instanceof ns)return{valid:!1,error:e};throw e}},ps=e=>{switch(e){case`html`:return()=>import(`@codemirror/lang-html`).then(e=>e.html());case`liquid`:return()=>import(`@codemirror/lang-liquid`).then(e=>e.liquid());case`json`:return()=>import(`@codemirror/lang-json`).then(e=>e.json());case`js`:return()=>import(`@codemirror/lang-javascript`).then(e=>e.javascript());case`ts`:return()=>import(`@codemirror/lang-javascript`).then(e=>e.javascript({typescript:!0}));case`css`:return()=>import(`@codemirror/lang-css`).then(e=>e.css())}},ms=async e=>{let[t,n,r,i]=await Promise.all([import(`codemirror`),import(`@codemirror/view`),import(`@codemirror/state`),ps(e)()]);return{basicSetup:t.basicSetup,EditorView:n.EditorView,EditorState:r.EditorState,keymap:n.keymap,language:i,Prec:r.Prec}},hs={},gs={},_s=e=>hs[e]?Promise.resolve(hs[e]):(gs[e]||(gs[e]=ms(e).then(t=>(hs[e]=t,t))),gs[e]),vs=(e,t)=>{t.fill?(e.style.height=`100%`,e.style.minHeight=``,e.style.maxHeight=``):(e.style.height=``,e.style.minHeight=`${t.resolvedMinHeight}px`,e.style.maxHeight=t.resolvedMaxHeight?`${t.resolvedMaxHeight}px`:``)},ys=(e,t,n)=>mo(e,t,n,{queryPattern:/^[A-Za-z0-9_.-]*$/}),bs=(e,t)=>{let n=e.state.doc.toString(),r=e.state.selection.main;if(r.from!==r.to)return null;let i=ys(n,r.from,t);return i?{value:n,textBeforeCaret:n.slice(0,r.from),textAfterCaret:n.slice(r.to),trigger:t,query:i.query,triggerRange:{start:i.start,end:i.end},insert:t=>{let n=e.state.selection.main;e.dispatch({changes:{from:n.from,to:n.to,insert:t},selection:{anchor:n.from+t.length}}),e.focus()},replace:(t,n,r)=>{e.dispatch({changes:{from:t,to:n,insert:r},selection:{anchor:t+r.length}}),e.focus()}}:null},xs=({name:e,onChange:t=void 0,defaultValue:r=void 0,className:i=void 0,label:a,language:o=`html`,placeholder:s,minHeight:c,maxHeight:l,required:u,disabled:d,feedback:f,labelClassName:p,validateSyntax:m=!0,validate:h,validator:g,extensions:_,commands:v,commandsTrigger:y,wrapperClassName:b,inheritWrapperClassName:x=!0,before:S,after:C})=>{let w=(0,n.useId)(),T=q(`CodeEditor`),E=xo({minHeight:c,maxHeight:l}),{value:D,handleChange:O,formWrapClass:k}=Dc({name:e,onChange:t,defaultValue:r,wrapperClassName:b,inheritWrapperClassName:x}),A=Ec(e,{required:u,label:a,validator:async e=>{let t=typeof e==`string`?e:`${e??``}`;if(m){let e=h?await h(t):await fs(t,o);if(!e.valid)return e.error?.message??`Invalid ${o} code.`}return await g?.(e)}}),j=(0,n.useRef)(null),M=(0,n.useRef)(null),N=(0,n.useRef)(null),[P,F]=(0,n.useState)(!0),[I,L]=(0,n.useState)({open:!1,query:``,anchorPosition:null,editorContext:null}),R=(0,n.useRef)(D??``),z=(0,n.useRef)(I);z.current=I;let B=v?.length?y??`/`:void 0,ee=(v?.length??0)>=10,V=n.default.useMemo(()=>new Map((v??[]).map(e=>[e.name,e])),[v]),H=n.default.useMemo(()=>(v??[]).map(e=>({key:e.name,label:`${B??`/`}${e.name}`,value:e.name,icon:e.icon,description:e.description,group:e.group})),[v,B]),U=n.default.useMemo(()=>{let e=[],t;return H.forEach(r=>{r.group!==t&&(t=r.group,r.group&&e.push(n.default.createElement(bo.Heading,{key:`group:${r.group}`},r.group))),e.push(n.default.createElement(bo.Item,{key:r.key,label:r.label,value:r.value,icon:r.icon,description:r.description}))}),e},[H]);(0,n.useEffect)(()=>{M.current||(R.current=D??``)},[D]);let te=(0,n.useCallback)(t=>{R.current=t,O({target:{name:e,value:t}})},[O,e]),ne=(0,n.useRef)(te);ne.current=te;let re=(0,n.useCallback)(()=>{L({open:!1,query:``,anchorPosition:null,editorContext:null})},[]),W=(0,n.useCallback)(async(e,t)=>{let n=V.get(e.value);if(n){if(n.handler){let e=await n.handler(go(t)),r=n.consumeSuffix?po(t.textAfterCaret,n.consumeSuffix):0;t.replace(t.triggerRange.start,t.triggerRange.end+r,e);return}t.replace(t.triggerRange.start,t.triggerRange.end,`${t.trigger}${n.name} `)}},[V]);(0,n.useEffect)(()=>{let e=!1,t=null;return _s(o).then(n=>{if(e||!j.current)return;let r=n.EditorView.theme({"&":{backgroundColor:`hsl(var(--rf-background))`,height:`100%`},".cm-scroller":{fontFamily:`var(--font-mono, ui-monospace, SFMono-Regular, monospace)`,paddingBottom:`0.5rem`,minHeight:`100%`},".cm-content":{caretColor:`hsl(var(--rf-foreground))`,color:`hsl(var(--rf-foreground))`,paddingBottom:`0.75rem`,minHeight:`100%`},".cm-cursor, .cm-dropCursor":{borderLeftColor:`hsl(var(--rf-primary))`},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:`hsl(var(--rf-primary)) !important`},".cm-activeLine":{backgroundColor:`hsl(var(--rf-muted) / 0.6)`},".cm-gutters":{backgroundColor:`hsl(var(--rf-muted))`,color:`hsl(var(--rf-muted-foreground))`,border:`none`},".cm-activeLineGutter":{backgroundColor:`hsl(var(--rf-accent))`},".cm-foldPlaceholder":{backgroundColor:`hsl(var(--rf-muted))`,color:`hsl(var(--rf-muted-foreground))`},".cm-tooltip":{backgroundColor:`hsl(var(--rf-popover))`,border:`1px solid hsl(var(--rf-border))`,color:`hsl(var(--rf-popover-foreground))`},".cm-tooltip-autocomplete ul li[aria-selected]":{backgroundColor:`hsl(var(--rf-accent))`,color:`hsl(var(--rf-accent-foreground))`},"&.cm-focused":{outline:`none`},".cm-placeholder":{color:`hsl(var(--rf-muted-foreground))`}}),i=[n.basicSetup,n.language,r,n.EditorView.updateListener.of(e=>{e.docChanged&&ne.current(e.state.doc.toString())}),..._??[]];B&&i.push(n.EditorView.updateListener.of(e=>{let t=e.state.selection.main;if(t.from!==t.to){z.current.open&&re();return}let n=ys(e.state.doc.toString(),t.from,B);if(!n){z.current.open&&re();return}let r=e.view.coordsAtPos(t.from),i=bs(e.view,B);r&&i&&L({open:!0,query:n.query,anchorPosition:{top:r.bottom,left:r.left},editorContext:i})}),n.Prec.highest(n.keymap.of([{key:`ArrowDown`,run:()=>z.current.open?(N.current?.moveNext(),!0):!1},{key:`ArrowUp`,run:()=>z.current.open?(N.current?.movePrev(),!0):!1},{key:`Enter`,run:()=>z.current.open?(N.current?.selectActive(),!0):!1},{key:`Tab`,run:()=>z.current.open?(N.current?.selectActive(),!0):!1},{key:`Escape`,run:()=>z.current.open?(N.current?.close(),!0):!1}])),n.EditorView.domEventHandlers({keydown:e=>{if(!z.current.open)return!1;switch(e.key){case`ArrowDown`:return e.preventDefault(),N.current?.moveNext(),!0;case`ArrowUp`:return e.preventDefault(),N.current?.movePrev(),!0;case`Enter`:case`Tab`:return e.preventDefault(),N.current?.selectActive(),!0;case`Escape`:return e.preventDefault(),N.current?.close(),!0;default:return!1}}})),d&&i.push(n.EditorView.editable.of(!1));let a=n.EditorState.create({doc:R.current,extensions:i});t=new n.EditorView({state:a,parent:j.current}),vs(t.scrollDOM,E),M.current=t,F(!1)}).catch(t=>{e||(console.error(`[CodeEditor] Failed to load CodeMirror:`,t),F(!1))}),()=>{e=!0,t&&(t.destroy(),M.current=null)}},[re,_,d,o,s,B]),(0,n.useEffect)(()=>{let e=D??``,t=M.current;t&&e!==R.current&&(R.current=e,t.dispatch({changes:{from:0,to:t.state.doc.length,insert:e}}))},[D]),(0,n.useEffect)(()=>{let e=M.current;e&&vs(e.scrollDOM,E)},[E.fill,E.resolvedMinHeight,E.resolvedMaxHeight]);let G=X(`w-full overflow-hidden border border-input`,T.CodeEditor?.className,i,P&&`flex items-center justify-center bg-muted text-muted-foreground text-sm`,A&&`border-destructive`,S?`rounded-l-none`:`rounded-l-md`,C?`rounded-r-none`:`rounded-r-md`),ie=n.default.createElement(`div`,{className:X(`min-w-0 flex-1`,E.fill&&`h-full flex flex-col`,G)},P&&n.default.createElement(`div`,{style:{minHeight:E.fill?void 0:E.resolvedMinHeight},className:`flex items-center justify-center`},n.default.createElement(Q,{name:`loader-circle`,size:16,className:`animate-spin text-muted-foreground`})),n.default.createElement(`div`,{ref:j,className:X(P&&`hidden`,E.fill&&`h-full min-h-0 flex-1`)}));return n.default.createElement(Z,{className:X(k,E.fill&&`h-full flex flex-col min-h-0`,T.CodeEditor?.wrapperClassName)},a&&n.default.createElement(gl,{label:a,required:u,htmlFor:w,className:p}),n.default.createElement(`div`,{className:X(S||C?Hc:``,E.fill&&`flex-1 min-h-0 flex flex-col`)},S&&n.default.createElement(`span`,{className:X(`inline-flex shrink-0 items-center border border-input bg-muted px-3 py-1 text-sm text-muted-foreground`,`rounded-l-md rounded-r-none border-r-0`)},S),B&&H.length>0?n.default.createElement(bo,{ref:N,className:X(E.fill&&`flex-1 min-h-0 flex flex-col`),trigger:B,searchable:ee,controlled:I.editorContext?{open:I.open,anchorPosition:I.anchorPosition,query:I.query,editorContext:I.editorContext,onClose:re}:void 0,onSelect:(e,t)=>{W(e,t)}},U,ie):ie,C&&n.default.createElement(`span`,{className:X(`inline-flex shrink-0 items-center border border-input bg-muted px-3 py-1 text-sm text-muted-foreground`,`rounded-l-none rounded-r-md border-l-0`)},C)),A&&n.default.createElement(Zc,{message:A}),f&&n.default.createElement(`p`,{className:`mt-1 text-xs text-muted-foreground`},f))},Ss=({src:e,placeholder:t=void 0,label:r=void 0,title:i=void 0,fit:a=void 0,position:o=void 0,feedback:s=void 0,width:c=void 0,height:l=void 0,srcset:u=void 0,sizes:d=void 0,before:f=void 0,after:p=void 0,wrapperClassName:m=void 0,className:h=void 0})=>{let g=q(`image`),_=g.Image.motion?.enter??!1,v=g.Image.motion?.hover??!1,y=v!==!1,b=Ht(void 0,_,!1),[x,S]=(0,n.useState)(!1),C=Bt(x,v,!1);return n.default.createElement(Z,{className:X(`flex items-center gap-4`,m||g.Image.wrapperClassName)},f&&n.default.createElement(`div`,{className:`shrink-0 self-center`},f),n.default.createElement(`div`,{className:X(`flex min-w-0 flex-col`,y&&`overflow-hidden`),style:b,onMouseEnter:y?()=>S(!0):void 0,onMouseLeave:y?()=>S(!1):void 0},n.default.createElement(`img`,{src:e||t||`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InRyYW5zcGFyZW50Ii8+PGNpcmNsZSBjeD0iNjUiIGN5PSIzNSIgcj0iMTAiIGZpbGw9IiM5Y2EzYWYiLz48cGF0aCBkPSJNMTAsNzUgTDMyLDUwIEw1Miw3MCBMNjgsNTIgTDkwLDcyIEw5MCw4MCBIMTAgWiIgZmlsbD0iIzljYTNhZiIvPjwvc3ZnPg==`,alt:r||i||e,title:i,className:h||g.Image.className,style:{...c&&l?{maxWidth:c,aspectRatio:`${c} / ${l}`,width:`100%`}:c?{maxWidth:c,width:`100%`}:l?{height:l}:{},...a?{objectFit:a}:{},...o?{objectPosition:o}:{},...y?C:{}},width:c,height:l,srcSet:u,sizes:d}),s&&n.default.createElement(`div`,{className:`mt-2 text-sm text-muted-foreground`},s)),p&&n.default.createElement(`div`,{className:`shrink-0 self-center`},p))},Cs=()=>Promise.all([import(`@tiptap/react`),import(`@tiptap/react/menus`),import(`@tiptap/starter-kit`),import(`@tiptap/extension-underline`),import(`@tiptap/extension-link`),import(`@tiptap/extension-image`),import(`@tiptap/extension-table`),import(`@tiptap/extension-placeholder`),import(`@tiptap/extension-character-count`)]),ws=null,Ts=null,Es=()=>ws?Promise.resolve(ws):(Ts||=Cs().then(e=>(ws=e,e)),Ts),Ds=`bold.italic.underline.strike.|.headings.|.bulletList.orderedList.|.blockquote.code.codeBlock.|.link.|.imageUpload.documentUpload.|.table.|.sourceCode.|.undo.redo.clearFormat`.split(`.`),Os=e=>e===!0?{tagBreadcrumb:!0,wordCount:!0,charCount:!1}:e===!1?{}:{tagBreadcrumb:!0,wordCount:!0,charCount:!1,...e},ks=8,As={bold:{icon:`bold`,label:`bold`,isActive:e=>e.isActive(`bold`),execute:e=>e.chain().focus().toggleBold().run()},italic:{icon:`italic`,label:`italic`,isActive:e=>e.isActive(`italic`),execute:e=>e.chain().focus().toggleItalic().run()},underline:{icon:`underline`,label:`underline`,isActive:e=>e.isActive(`underline`),execute:e=>e.chain().focus().toggleUnderline().run()},strike:{icon:`strikethrough`,label:`strike`,isActive:e=>e.isActive(`strike`),execute:e=>e.chain().focus().toggleStrike().run()},heading1:{icon:`heading-1`,label:`heading1`,isActive:e=>e.isActive(`heading`,{level:1}),execute:e=>e.chain().focus().toggleHeading({level:1}).run()},heading2:{icon:`heading-2`,label:`heading2`,isActive:e=>e.isActive(`heading`,{level:2}),execute:e=>e.chain().focus().toggleHeading({level:2}).run()},heading3:{icon:`heading-3`,label:`heading3`,isActive:e=>e.isActive(`heading`,{level:3}),execute:e=>e.chain().focus().toggleHeading({level:3}).run()},bulletList:{icon:`list`,label:`bulletList`,isActive:e=>e.isActive(`bulletList`),execute:e=>e.chain().focus().toggleBulletList().run()},orderedList:{icon:`list-ordered`,label:`orderedList`,isActive:e=>e.isActive(`orderedList`),execute:e=>e.chain().focus().toggleOrderedList().run()},blockquote:{icon:`quote`,label:`blockquote`,isActive:e=>e.isActive(`blockquote`),execute:e=>e.chain().focus().toggleBlockquote().run()},code:{icon:`code`,label:`inlineCode`,isActive:e=>e.isActive(`code`),execute:e=>e.chain().focus().toggleCode().run()},codeBlock:{icon:`square-code`,label:`codeBlock`,isActive:e=>e.isActive(`codeBlock`),execute:e=>e.chain().focus().toggleCodeBlock().run()},link:{icon:`link`,label:`link`,isActive:e=>e.isActive(`link`),execute:e=>{if(e.isActive(`link`)){e.chain().focus().unsetLink().run();return}let t=window.prompt(`URL`);t&&e.chain().focus().setLink({href:t}).run()}},undo:{icon:`undo-2`,label:`undo`,execute:e=>e.chain().focus().undo().run()},redo:{icon:`redo-2`,label:`redo`,execute:e=>e.chain().focus().redo().run()},clearFormat:{icon:`eraser`,label:`clearFormat`,execute:e=>e.chain().focus().clearNodes().unsetAllMarks().run()}},js=({def:e,editor:t})=>{let r=Y(`richText`),i=e.isActive?.(t)??!1;return n.default.createElement(`button`,{type:`button`,title:r[e.label],onMouseDown:n=>{n.preventDefault(),e.execute(t)},className:X(`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors`,`hover:bg-muted disabled:cursor-not-allowed disabled:opacity-40`,i&&`bg-muted text-primary`)},n.default.createElement(Q,{name:e.icon,size:14}))},Ms=[{value:0,label:`normal`,previewClass:`text-sm`,execute:e=>e.chain().focus().setParagraph().run()},{value:1,label:`heading1`,previewClass:`text-2xl font-bold`,execute:e=>e.chain().focus().setHeading({level:1}).run()},{value:2,label:`heading2`,previewClass:`text-xl font-semibold`,execute:e=>e.chain().focus().setHeading({level:2}).run()},{value:3,label:`heading3`,previewClass:`text-lg font-semibold`,execute:e=>e.chain().focus().setHeading({level:3}).run()}],Ns=({editor:e})=>{let t=Y(`richText`),[r,i]=n.default.useState(!1),a=(0,n.useRef)(null);n.default.useEffect(()=>{let e=e=>{a.current&&!a.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let o=e.isActive(`heading`,{level:1})?`H1`:e.isActive(`heading`,{level:2})?`H2`:e.isActive(`heading`,{level:3})?`H3`:`P`;return n.default.createElement(`div`,{ref:a,className:`relative`},n.default.createElement(`button`,{type:`button`,title:t.paragraphStyle,onMouseDown:e=>{e.preventDefault(),i(e=>!e)},className:`inline-flex h-7 items-center gap-0.5 rounded px-1.5 text-xs font-medium transition-colors hover:bg-muted`},o,n.default.createElement(Q,{name:`chevron-down`,size:10})),r&&n.default.createElement(`div`,{className:`absolute left-0 top-full z-50 mt-1 w-44 overflow-hidden rounded-md border border-border bg-background shadow-lg`},Ms.map(r=>n.default.createElement(`button`,{key:r.value,type:`button`,onMouseDown:t=>{t.preventDefault(),r.execute(e),i(!1)},className:X(`block w-full px-3 py-1.5 text-left leading-snug transition-colors hover:bg-muted`,r.previewClass,r.value===0&&e.isActive(`paragraph`)&&`bg-muted/60`,r.value!==0&&e.isActive(`heading`,{level:r.value})&&`bg-muted/60`)},t[r.label]))))},Ps=({editor:e})=>{let t=Y(`richText`),[r,i]=n.default.useState(!1),[a,o]=n.default.useState(3),[s,c]=n.default.useState(3),l=(0,n.useRef)(null);n.default.useEffect(()=>{let e=e=>{l.current&&!l.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let u=(t,n)=>{e.chain().focus().insertTable({rows:t,cols:n,withHeaderRow:!0}).run(),i(!1)};return n.default.createElement(`div`,{ref:l,className:`relative`},n.default.createElement(`button`,{type:`button`,title:t.insertTable,onMouseDown:e=>{e.preventDefault(),i(e=>!e)},className:`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted`},n.default.createElement(Q,{name:`table`,size:14})),r&&n.default.createElement(`div`,{className:`absolute left-0 top-full z-50 mt-1 rounded-md border border-border bg-background p-3 shadow-lg`},n.default.createElement(`div`,{className:`grid gap-1.5`,style:{gridTemplateColumns:`repeat(${ks}, 18px)`,width:`fit-content`}},Array.from({length:64},(e,r)=>{let i=Math.floor(r/ks)+1,l=r%ks+1,d=i<=a&&l<=s;return n.default.createElement(`button`,{key:`${i}-${l}`,type:`button`,"aria-label":J(t.insertTableSize,{rows:i,cols:l}),onMouseEnter:()=>{o(i),c(l)},onFocus:()=>{o(i),c(l)},onMouseDown:e=>{e.preventDefault(),u(i,l)},className:X(`h-[18px] w-[18px] rounded-[4px] border transition-colors`,d?`border-primary bg-primary/25 shadow-[inset_0_0_0_1px_rgba(59,130,246,0.35)]`:`border-border bg-background hover:border-primary/50 hover:bg-muted/60`)})})),n.default.createElement(`div`,{className:`mt-3 text-center text-xs font-medium text-muted-foreground`},a,` x `,s)))},Fs=({editor:e})=>{let t=Y(`richText`);return n.default.createElement(`div`,{className:`flex items-center gap-0.5 rounded-md border border-border bg-background px-1 py-0.5 shadow-lg`},[{icon:`rows-2`,label:`addRowAbove`,execute:()=>e.chain().focus().addRowBefore().run()},{icon:`rows-3`,label:`addRowBelow`,execute:()=>e.chain().focus().addRowAfter().run()},{icon:`columns-2`,label:`addColumnLeft`,execute:()=>e.chain().focus().addColumnBefore().run()},{icon:`columns-3`,label:`addColumnRight`,execute:()=>e.chain().focus().addColumnAfter().run()},{icon:`minus-square`,label:`deleteRow`,execute:()=>e.chain().focus().deleteRow().run()},{icon:`rectangle-ellipsis`,label:`deleteColumn`,execute:()=>e.chain().focus().deleteColumn().run()},{icon:`trash-2`,label:`deleteTable`,execute:()=>e.chain().focus().deleteTable().run()}].map((e,r)=>n.default.createElement(n.default.Fragment,{key:e.label},r>0&&r!==4&&n.default.createElement(`div`,{className:`mx-0.5 h-4 w-px bg-border`}),n.default.createElement(`button`,{type:`button`,title:t[e.label],onMouseDown:t=>{t.preventDefault(),e.execute()},className:`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted`},n.default.createElement(Q,{name:e.icon,size:14})))))},Is=({editor:e,commands:t,sourceMode:r,onImageUpload:i,onDocumentUpload:a,onSourceToggle:o,compact:s})=>{let c=Y(`richText`),[,l]=n.default.useReducer(e=>e+1,0);return n.default.useEffect(()=>(e.on(`selectionUpdate`,l),e.on(`transaction`,l),()=>{e.off(`selectionUpdate`,l),e.off(`transaction`,l)}),[e]),n.default.createElement(`div`,{className:X(`flex flex-wrap items-center gap-0.5 px-2 py-1`,!s&&`border-b border-border`)},t.map((t,s)=>{if(t===`|`)return n.default.createElement(`div`,{key:s,className:`mx-0.5 h-4 w-px bg-border`});if(t===`headings`)return n.default.createElement(Ns,{key:t,editor:e});if(t===`table`)return n.default.createElement(Ps,{key:t,editor:e});if(t===`imageUpload`)return n.default.createElement(`button`,{key:t,type:`button`,title:c.uploadImage,onMouseDown:e=>{e.preventDefault(),i()},className:`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted`},n.default.createElement(Q,{name:`image`,size:14}));if(t===`documentUpload`)return n.default.createElement(`button`,{key:t,type:`button`,title:c.uploadDocument,onMouseDown:e=>{e.preventDefault(),a()},className:`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted`},n.default.createElement(Q,{name:`file-up`,size:14}));if(t===`sourceCode`)return n.default.createElement(`button`,{key:t,type:`button`,title:c.sourceCode,onMouseDown:e=>{e.preventDefault(),o()},className:X(`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted`,r&&`bg-muted text-primary`)},n.default.createElement(Q,{name:`code`,size:14}));let l=As[t];return l?n.default.createElement(js,{key:t,def:l,editor:e}):null}))},Ls=e=>{try{let{$anchor:t}=e.state.selection,n=[];for(let e=t.depth;e>=0;e--){let r=t.node(e).type.name;r!==`doc`&&n.unshift(r)}return n}catch{return[]}},Rs=({editor:e,config:t})=>{let r=Y(`richText`),[i,a]=(0,n.useState)(0);(0,n.useEffect)(()=>{let t=()=>a(e=>e+1);return e.on(`selectionUpdate`,t),e.on(`transaction`,t),()=>{e.off(`selectionUpdate`,t),e.off(`transaction`,t)}},[e]);let o=t.tagBreadcrumb?Ls(e):[],s=e.storage.characterCount;return n.default.createElement(`div`,{className:`flex items-center gap-3 border-t border-border px-3 py-1 text-xs text-muted-foreground select-none`},t.tagBreadcrumb&&o.length>0&&n.default.createElement(`div`,{className:`flex items-center gap-1 font-mono`},o.map((e,t)=>n.default.createElement(n.Fragment,{key:t},t>0&&n.default.createElement(`span`,{className:`opacity-40`},`›`),n.default.createElement(`span`,null,e)))),n.default.createElement(`div`,{className:`ml-auto flex items-center gap-3`},t.wordCount&&s&&n.default.createElement(`span`,null,J(r.words,{count:s.words()})),t.charCount&&s&&n.default.createElement(`span`,null,J(r.chars,{count:s.characters()}))))},zs=({srcset:e})=>{let t=Y(`imageField`),r=e.split(`,`).map(e=>e.trim()).map(e=>{let[t,n]=e.split(` `);return{src:t,width:parseInt(n,10)}}).filter(e=>e.src&&!isNaN(e.width));return r.length?n.default.createElement(`div`,{className:`flex flex-col gap-1.5`},n.default.createElement(`p`,{className:`text-xs font-medium text-muted-foreground`},t.responsiveVariants,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},J(t.variantsGenerated,{count:r.length}))),n.default.createElement(`div`,{className:`flex gap-1.5`},r.map(e=>n.default.createElement(`a`,{key:e.width,href:e.src,target:`_blank`,rel:`noopener noreferrer`,className:`group relative flex-1 overflow-hidden rounded border border-border`,style:{backgroundImage:`repeating-conic-gradient(#e4e4e4 0% 25%, #f5f5f5 0% 50%)`,backgroundSize:`8px 8px`}},n.default.createElement(`img`,{src:e.src,alt:`${e.width}w`,className:`h-12 w-full object-contain transition-opacity group-hover:opacity-80`}),n.default.createElement(`span`,{className:`absolute bottom-0.5 left-0.5 rounded bg-black/60 px-1 py-0.5 text-[9px] font-mono leading-none text-white`},e.width,`px`),n.default.createElement(`div`,{className:`absolute inset-0 flex items-center justify-center opacity-0 transition-opacity group-hover:opacity-100`},n.default.createElement(`div`,{className:`rounded-md bg-black/60 p-1`},n.default.createElement(Q,{name:`external-link`,size:11,className:`text-white`}))))))):null},Bs=({items:e,onInsertAll:t,onCropSave:r,onCancel:i})=>{let a=Y(`imageField`),o=Y(`richText`),s=Y(`common`),[c,l]=(0,n.useState)(0),[u,d]=(0,n.useState)(()=>e.map(e=>({alt:e.defaultAlt,href:``,target:`_blank`,enabled:!0}))),[f,p]=(0,n.useState)(!1),m=(0,n.useRef)(null);(0,n.useEffect)(()=>{m.current?.focus()},[c]),(0,n.useEffect)(()=>{d(t=>{if(e.length<=t.length)return t;let n=e.slice(t.length).map(e=>({alt:e.defaultAlt,href:``,target:`_blank`,enabled:!0}));return[...t,...n]})},[e.length]);let h=e.length,g=e[c]??e[0],_=u[c]??{alt:``,href:``,target:`_blank`,enabled:!0},v=u.filter(e=>e.enabled).length,y=e=>d(t=>t.map((t,n)=>n===c?{...t,...e}:t));return n.default.createElement(n.default.Fragment,null,n.default.createElement(si,{title:h===1?a.insertImage:a.insertImages,onClose:i,size:`md`,footer:n.default.createElement(`div`,{className:`flex w-full items-center justify-between`},n.default.createElement(`label`,{className:`flex cursor-pointer select-none items-center gap-2 text-sm`},n.default.createElement(`input`,{type:`checkbox`,checked:_.enabled,onChange:e=>y({enabled:e.target.checked}),className:`h-4 w-4 rounded accent-primary`}),a.include),n.default.createElement(`div`,{className:`flex gap-2`},n.default.createElement(`button`,{type:`button`,onClick:i,className:`h-8 rounded-md px-3 text-sm transition-colors hover:bg-muted`},s.cancel),n.default.createElement(`button`,{type:`button`,onClick:()=>t(u),disabled:v===0,className:`h-8 rounded-md bg-primary px-3 text-sm text-primary-foreground transition-colors hover:bg-primary/90 disabled:opacity-50`},h===1?a.insert:J(a.insertCount,{count:v}))))},h>1&&n.default.createElement(`div`,{className:`mb-3 flex items-center justify-between gap-3`},n.default.createElement(`div`,{className:`flex gap-1.5 overflow-x-auto pb-0.5`},e.map((e,t)=>n.default.createElement(`button`,{key:t,type:`button`,onClick:()=>l(t),title:e.fileProps.fileName,className:X(`relative h-12 w-12 flex-shrink-0 overflow-hidden rounded-md border-2 transition-all`,t===c?`border-primary shadow-md`:`border-transparent opacity-50 hover:opacity-90`,!u[t]?.enabled&&`opacity-20 grayscale`)},n.default.createElement(`img`,{src:e.preview,alt:``,className:`h-full w-full object-cover`})))),n.default.createElement(`div`,{className:`flex flex-shrink-0 items-center gap-0.5`},n.default.createElement(`button`,{type:`button`,onClick:()=>l(e=>Math.max(0,e-1)),disabled:c===0,className:`flex h-7 w-7 items-center justify-center rounded hover:bg-muted disabled:opacity-30`},n.default.createElement(Q,{name:`chevron-left`,size:14})),n.default.createElement(`span`,{className:`w-10 text-center text-xs tabular-nums text-muted-foreground`},c+1,` / `,h),n.default.createElement(`button`,{type:`button`,onClick:()=>l(t=>Math.min(e.length-1,t+1)),disabled:c>=e.length-1,className:`flex h-7 w-7 items-center justify-center rounded hover:bg-muted disabled:opacity-30`},n.default.createElement(Q,{name:`chevron-right`,size:14})))),n.default.createElement(`div`,{className:X(`group relative flex min-h-[160px] items-center justify-center overflow-hidden rounded-lg transition-opacity`,`[background-image:repeating-conic-gradient(#e4e4e4_0%_25%,#f5f5f5_0%_50%)]`,`dark:[background-image:repeating-conic-gradient(#2a2a2a_0%_25%,#343434_0%_50%)]`,`[background-size:16px_16px]`,!_.enabled&&`opacity-40`)},n.default.createElement(`img`,{src:g.preview,alt:``,className:`max-h-[160px] max-w-full object-contain`}),n.default.createElement(`div`,{className:`absolute right-2 top-2 flex gap-1 opacity-0 transition-opacity group-hover:opacity-100`},n.default.createElement(`a`,{href:g.preview,target:`_blank`,rel:`noopener noreferrer`,title:a.openOriginal,className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80`},n.default.createElement(Q,{name:`external-link`,size:13})),n.default.createElement(`button`,{type:`button`,title:a.crop,onClick:()=>p(!0),className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80`},n.default.createElement(Q,{name:`crop`,size:13})))),n.default.createElement(`p`,{className:`mt-1.5 truncate font-mono text-xs text-muted-foreground`},g.fileProps.fileName),g.fileProps.srcset&&n.default.createElement(zs,{srcset:g.fileProps.srcset}),n.default.createElement(`div`,{className:`mt-3 flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},a.altText,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},a.altTextHint)),n.default.createElement(`input`,{ref:m,type:`text`,value:_.alt,onChange:e=>y({alt:e.target.value}),placeholder:o.altPlaceholder,className:`h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring`})),n.default.createElement(`div`,{className:`mt-2 flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},a.linkUrl,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},a.optionalHint)),n.default.createElement(`div`,{className:`flex gap-1.5`},n.default.createElement(`input`,{type:`url`,value:_.href,onChange:e=>y({href:e.target.value}),placeholder:`https://...`,className:`h-8 min-w-0 flex-1 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring`}),n.default.createElement(`select`,{value:_.target,onChange:e=>y({target:e.target.value}),disabled:!_.href,className:`h-8 rounded-md border border-input bg-background px-2 text-xs outline-none focus:ring-1 focus:ring-ring disabled:opacity-40`},n.default.createElement(`option`,{value:`_blank`},a.newTab),n.default.createElement(`option`,{value:`_self`},a.sameTab))))),f&&n.default.createElement(fi,{src:g.preview,mode:`modal`,title:J(a.cropTitle,{name:g.fileProps.fileName}),onClose:()=>p(!1),onSave:e=>{r(c,e),p(!1)}}))},Vs=({state:e,onConfirm:t,onCancel:r})=>{let[i,a]=(0,n.useState)(e.attrs.src??``),[o,s]=(0,n.useState)(e.attrs.alt??``),[c,l]=(0,n.useState)(e.attrs.href??``),[u,d]=(0,n.useState)(e.attrs.target??`_blank`),[f,p]=(0,n.useState)(!1),m=Y(`imageField`),h=Y(`richText`),g=Y(`common`),_=(0,n.useRef)(null);(0,n.useEffect)(()=>{_.current?.focus()},[]);let v=e.attrs.srcset;return n.default.createElement(n.default.Fragment,null,n.default.createElement(si,{title:m.editImage,onClose:r,size:`sm`,footer:n.default.createElement(`div`,{className:`flex justify-end gap-2`},n.default.createElement(`button`,{type:`button`,onClick:r,className:`h-8 rounded-md px-3 text-sm transition-colors hover:bg-muted`},g.cancel),n.default.createElement(`button`,{type:`button`,onClick:()=>t({src:i,alt:o,href:c,target:u,enabled:!0}),className:`h-8 rounded-md bg-primary px-3 text-sm text-primary-foreground transition-colors hover:bg-primary/90`},g.save))},i&&n.default.createElement(`div`,{className:`group relative mb-3 overflow-hidden rounded-lg bg-muted/40`},n.default.createElement(Ss,{src:i,fit:`contain`,height:140,wrapperClassName:`w-full`,className:`w-full`}),n.default.createElement(`div`,{className:`absolute right-2 top-2 flex gap-1 opacity-0 transition-opacity group-hover:opacity-100`},n.default.createElement(`a`,{href:i,target:`_blank`,rel:`noopener noreferrer`,title:m.openOriginal,className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80`},n.default.createElement(Q,{name:`external-link`,size:13})),n.default.createElement(`button`,{type:`button`,title:m.crop,onClick:()=>p(!0),className:`flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80`},n.default.createElement(Q,{name:`crop`,size:13})))),v&&n.default.createElement(zs,{srcset:v}),n.default.createElement(`div`,{className:`flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},m.imageUrl,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},m.imageUrlHint)),n.default.createElement(`input`,{type:`url`,value:i,onChange:e=>a(e.target.value),placeholder:`https://example.com/image.jpg`,className:`h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring`})),n.default.createElement(`div`,{className:`mt-2 flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},m.altText,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},m.altTextHint)),n.default.createElement(`input`,{ref:_,type:`text`,value:o,onChange:e=>s(e.target.value),placeholder:h.altPlaceholder,className:`h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring`})),n.default.createElement(`div`,{className:`mt-2 flex flex-col gap-1`},n.default.createElement(`label`,{className:`text-xs font-medium text-muted-foreground`},m.linkUrl,` `,n.default.createElement(`span`,{className:`font-normal opacity-60`},m.optionalHint)),n.default.createElement(`div`,{className:`flex gap-1.5`},n.default.createElement(`input`,{type:`url`,value:c,onChange:e=>l(e.target.value),placeholder:`https://...`,className:`h-8 min-w-0 flex-1 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring`}),n.default.createElement(`select`,{value:u,onChange:e=>d(e.target.value),disabled:!c,className:`h-8 rounded-md border border-input bg-background px-2 text-xs outline-none focus:ring-1 focus:ring-ring disabled:opacity-40`},n.default.createElement(`option`,{value:`_blank`},m.newTab),n.default.createElement(`option`,{value:`_self`},m.sameTab))))),f&&n.default.createElement(fi,{src:i,mode:`modal`,title:m.cropImage,onClose:()=>p(!1),onSave:e=>{a(e),p(!1)}}))},Hs=(e,t,n)=>mo(e,t,n,{queryPattern:/^[A-Za-z0-9-]*$/}),Us=({modules:e,name:t,value:r,outputFormat:i,placeholder:a,disabled:o,toolbar:s,toolbarCommands:c,statusBar:l,minHeight:u,maxHeight:d,imageUpload:f,documentUpload:p,hasError:m,className:h,onEditorChange:g,commands:_,commandsTrigger:v})=>{let{useEditor:y,EditorContent:b}=e[0],{BubbleMenu:x}=e[1],S=e[2].default,C=e[3].default,w=e[4].default,T=e[5].default.extend({addAttributes(){return{...this.parent?.()??{},srcset:{default:null},sizes:{default:null},loading:{default:null},decoding:{default:null},href:{default:null},target:{default:null}}},renderHTML({HTMLAttributes:e}){let{href:t,target:n,...r}=e,i=this.options.HTMLAttributes??{},a=[`img`,Object.fromEntries(Object.entries({...i,...r}).filter(([,e])=>e!=null))];return t?[`a`,{"data-href":t,"data-target":n??`_blank`,rel:`noopener noreferrer`},a]:a}}),{Table:E,TableRow:D,TableHeader:O,TableCell:k}=e[6],A=e[7].default,j=e[8].default,[M,N]=(0,n.useState)(!1),P=Y(`richText`),[F,I]=(0,n.useState)(``),[L,R]=(0,n.useState)([]),[z,B]=(0,n.useState)(null),[,ee]=n.default.useReducer(e=>e+1,0),V=(0,n.useRef)(null),H=(0,n.useRef)(null),[U,te]=(0,n.useState)({open:!1,query:``,anchorPosition:null,editorContext:null}),ne=(0,n.useRef)(U);ne.current=U;let re=_?.length?v??`/`:void 0,W=(_?.length??0)>=10,G=n.default.useMemo(()=>new Map((_??[]).map(e=>[e.name,e])),[_]),ie=n.default.useMemo(()=>(_??[]).map(e=>({key:e.name,label:`${re??`/`}${e.name}`,value:e.name,icon:e.icon,description:e.description})),[_,re]),ae=f?.srcsetWidths===void 0?[400,800]:f.srcsetWidths,oe=Xr(),se=Pi({uploadPath:f?.path,srcsetWidths:ae,onFileReady:e=>{let t=e.fileName.replace(/\.[^/.]+$/,``).replace(/[-_]+/g,` `).replace(/\s+/g,` `).trim().replace(/^(.)/,e=>e.toUpperCase()),n=e.url||(e.base64?`data:${e.type};base64,${e.base64}`:``);R(r=>[...r,{fileProps:e,preview:n,defaultAlt:t}])}}),ce=xo({minHeight:u,maxHeight:d,paddingOffset:16}),le=(0,n.useCallback)(()=>{te({open:!1,query:``,anchorPosition:null,editorContext:null})},[]),ue=(0,n.useCallback)((e,t)=>{let n=e.state.selection;if(!n.empty)return null;let{$from:r}=n,i=r.parent;if(!i.isTextblock)return null;let a=i.textContent??``,o=r.parentOffset,s=Hs(a,o,t);if(!s)return null;let c=n.from-o,l=c+s.start,u=c+s.end;return{value:e.getText(),textBeforeCaret:a.slice(0,o),textAfterCaret:a.slice(o),trigger:t,query:s.query,triggerRange:{start:l,end:u},insert:t=>{let{from:n,to:r}=e.state.selection,i=e.state.tr.insertText(t,n,r);e.view.dispatch(i),e.commands.focus()},replace:(t,n,r)=>{let i=e.state.tr.insertText(r,t,n);e.view.dispatch(i),e.commands.focus()}}},[]),K=y({extensions:[S,C,w.configure({openOnClick:!1,HTMLAttributes:{target:null,rel:`noopener noreferrer nofollow`}}),T.configure({allowBase64:!0}),E.configure({resizable:!0}),D,O,k,A.configure({placeholder:a??``}),j],content:r||``,editable:!o,editorProps:{attributes:{style:`min-height: ${ce.adjustedMinHeight}px`},handleClick(e,t,n){if(n.ctrlKey||n.metaKey){let n=e.state.doc.resolve(t).marks().find(e=>e.type.name===`link`);if(n?.attrs.href)return window.open(n.attrs.href,`_blank`,`noopener,noreferrer`),!0}let r=n.target;if(r.tagName===`IMG`)try{let t=e.posAtDOM(r,0),n=e.state.doc.nodeAt(t);if(n?.type.name===`image`){let e={...n.attrs};if(!e.href){let t=n.marks?.find(e=>e.type.name===`link`);t&&(t.attrs.href&&(e.href=t.attrs.href),t.attrs.target&&(e.target=t.attrs.target))}return B({pos:t,attrs:e}),!0}}catch{}return!1},handleKeyDown(e,t){if(!ne.current.open)return!1;switch(t.key){case`ArrowDown`:return t.preventDefault(),H.current?.moveNext(),!0;case`ArrowUp`:return t.preventDefault(),H.current?.movePrev(),!0;case`Enter`:case`Tab`:return t.preventDefault(),H.current?.selectActive(),!0;case`Escape`:return t.preventDefault(),H.current?.close(),!0;default:return!1}}},onUpdate:({editor:e})=>{g(i===`json`?JSON.stringify(e.getJSON()):i===`text`?e.getText():e.getHTML().replace(/<a([^>]*?)data-href="([^"]*?)"/g,`<a$1href="$2"`).replace(/data-target="([^"]*?)"/g,`target="$1"`))}}),de=(0,n.useRef)(r);(0,n.useEffect)(()=>{K&&r!==de.current&&(de.current=r,r!==(i===`json`?JSON.stringify(K.getJSON()):i===`text`?K.getText():K.getHTML().replace(/<a([^>]*?)data-href="([^"]*?)"/g,`<a$1href="$2"`).replace(/data-target="([^"]*?)"/g,`target="$1"`))&&K.commands.setContent(i===`json`&&r?JSON.parse(r):r||``))},[r,K,i]),(0,n.useEffect)(()=>{if(K)return K.view.dom.style.minHeight=`${ce.adjustedMinHeight}px`,K.on(`selectionUpdate`,ee),()=>{K.off(`selectionUpdate`,ee)}},[K,ce.adjustedMinHeight]),(0,n.useEffect)(()=>{if(!K||!re||M){ne.current.open&&le();return}let e=()=>{if(!K.isFocused){ne.current.open&&le();return}let e=K.state.selection;if(!e.empty){ne.current.open&&le();return}let{$from:t}=e,n=t.parent;if(!n.isTextblock){ne.current.open&&le();return}let r=n.textContent??``,i=t.parentOffset,a=Hs(r,i,re);if(!a){ne.current.open&&le();return}let o=K.view.coordsAtPos(e.from),s=ue(K,re);o&&s&&te({open:!0,query:a.query,anchorPosition:{top:o.bottom,left:o.left},editorContext:s})};return e(),K.on(`selectionUpdate`,e),K.on(`transaction`,e),()=>{K.off(`selectionUpdate`,e),K.off(`transaction`,e)}},[le,K,ue,re,M]);let fe=(0,n.useCallback)(async(e,t)=>{let n=G.get(e.value);if(n){if(n.handler){let e=await n.handler(go(t)),r=n.consumeSuffix?po(t.textAfterCaret,n.consumeSuffix):0;t.replace(t.triggerRange.start,t.triggerRange.end+r,e);return}t.replace(t.triggerRange.start,t.triggerRange.end,`${t.trigger}${n.name} `)}},[G]),pe=()=>{K&&(M?K.commands.setContent(F):I(K.getHTML()),N(e=>!e))},me=e=>new Promise(t=>{let n=new FileReader;n.onload=e=>t(e.target?.result),n.readAsDataURL(e)}),he=async e=>{if(!K)return;let t=p?.maxBytes??20971520;for(let n of e){if(n.size>t){alert(`"${n.name}" exceeds the ${Math.round(t/1048576)} MB limit.`);continue}let e;if(oe&&p?.path)try{e=await oe.upload(n,`${p.path}/${n.name}`)??await me(n)}catch{e=await me(n)}else e=await me(n);let r=n.size<1048576?`${Math.round(n.size/1024)} KB`:`${(n.size/1048576).toFixed(1)} MB`;K.chain().focus().insertContent([{type:`text`,marks:[{type:`link`,attrs:{href:e,target:`_blank`,rel:`noopener noreferrer`}}],text:`📎 ${n.name} (${r})`},{type:`text`,text:` `}]).run()}},ge=e=>{if(!K)return;let t=[];e.forEach(({alt:e,href:n,target:r,enabled:i},a)=>{if(!i)return;let o=L[a];if(!o)return;se.handleRemove(o.fileProps.key);let s=o.fileProps.url||o.preview,c={alt:e||null,href:n||null,target:n?r||`_blank`:null},l=o.fileProps.srcset?{...c,src:s,srcset:o.fileProps.srcset,sizes:o.fileProps.sizes??`(max-width: 640px) 100vw, 800px`,loading:`lazy`,decoding:`async`}:{...c,src:s};t.push({type:`image`,attrs:l})}),t.length&&K.chain().focus().insertContent(t).run(),R([])},_e=(0,n.useCallback)(async(e,t)=>{let n=`image.jpg`;if(R(r=>(n=r[e]?.fileProps.fileName??`image.jpg`,r.map((n,r)=>r===e?{...n,preview:t,fileProps:{...n.fileProps,url:t,srcset:``,sizes:``}}:n))),ae.length)try{let{variants:r,naturalWidth:i}=await Ur(t,ae),a=oe&&f?.path?await Wr(r,oe,f.path,n):r.map(e=>({url:e.localUrl,width:e.width})),o=await fetch(t).then(e=>e.blob()),s=URL.createObjectURL(o),c=Gr([...a,{url:s,width:i}]);R(t=>t.map((t,n)=>n===e?{...t,fileProps:{...t.fileProps,srcset:c,sizes:`(max-width: 640px) 100vw, 800px`}}:t))}catch{}},[ae,oe,f?.path]),ve=({src:e,alt:t,href:n,target:r})=>{if(!K||!z)return;let{pos:i,attrs:a}=z,o=K.state.doc.nodeAt(i);if(o?.type.name===`image`){let{tr:s,schema:c}=K.state,l=e!==void 0&&e!==a.src,u={...a,...l?{src:e||null,srcset:null,sizes:null}:{},alt:t||null,href:n||null,target:n?r||`_blank`:null},d=o.marks??[],f=d.some(e=>e.type.name===`link`),p=d;n?f||(p=[...d,c.marks.link.create({href:n,target:r||`_blank`})]):p=d.filter(e=>e.type.name!==`link`),s.setNodeMarkup(i,null,u,p),K.view.dispatch(s)}B(null)},ye=c.filter(e=>e!==`imageUpload`&&e!==`documentUpload`&&e!==`sourceCode`);return n.default.createElement(n.default.Fragment,null,L.length>0&&n.default.createElement(Bs,{items:L,onInsertAll:ge,onCropSave:_e,onCancel:()=>{L.forEach(e=>se.handleRemove(e.fileProps.key)),R([])}}),z&&n.default.createElement(Vs,{state:z,onConfirm:ve,onCancel:()=>B(null)}),n.default.createElement(`div`,{className:X(`rounded-md border border-input bg-background shadow-sm transition-colors`,`focus-within:ring-1 focus-within:ring-ring`,m&&`border-destructive focus-within:ring-destructive/20`,o&&`cursor-not-allowed opacity-50`,h)},s===`fixed`&&K&&n.default.createElement(Is,{editor:K,commands:c,sourceMode:M,onImageUpload:se.handleUpload,onDocumentUpload:()=>V.current?.click(),onSourceToggle:pe}),s===`floating`&&K&&n.default.createElement(x,{editor:K},n.default.createElement(`div`,{className:`flex items-center gap-0.5 rounded-md border border-border bg-background px-1 py-0.5 shadow-lg`},n.default.createElement(Is,{editor:K,commands:ye,sourceMode:M,onImageUpload:se.handleUpload,onDocumentUpload:()=>V.current?.click(),onSourceToggle:pe,compact:!0}))),K&&!M&&n.default.createElement(x,{editor:K,shouldShow:({editor:e,from:t,to:n})=>t!==n||!e.isActive(`link`)?!1:!!e.getAttributes(`link`).href,options:{placement:`bottom-start`,offset:6}},(()=>{let e=K.getAttributes(`link`).href??``;return n.default.createElement(`div`,{className:`flex items-center gap-1.5 rounded-md border border-border bg-background px-2 py-1.5 shadow-md`},n.default.createElement(Q,{name:`link`,size:12,className:`shrink-0 text-muted-foreground`}),n.default.createElement(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`max-w-[220px] truncate text-xs text-primary underline`},e),n.default.createElement(`div`,{className:`mx-0.5 h-3 w-px bg-border`}),n.default.createElement(`button`,{type:`button`,title:P.editLink,onMouseDown:t=>{t.preventDefault();let n=window.prompt(`URL`,e);n?K.chain().focus().setLink({href:n}).run():n===``&&K.chain().focus().unsetLink().run()},className:`inline-flex h-5 w-5 items-center justify-center rounded transition-colors hover:bg-muted`},n.default.createElement(Q,{name:`pencil`,size:11})),n.default.createElement(`button`,{type:`button`,title:P.removeLink,onMouseDown:e=>{e.preventDefault(),K.chain().focus().unsetLink().run()},className:`inline-flex h-5 w-5 items-center justify-center rounded transition-colors hover:bg-muted`},n.default.createElement(Q,{name:`unlink`,size:11})))})()),K&&!M&&n.default.createElement(x,{editor:K,shouldShow:({editor:e})=>e.isActive(`table`),options:{placement:`top-start`,offset:8}},n.default.createElement(Fs,{editor:K})),M?n.default.createElement(`textarea`,{"aria-label":J(P.source,{name:t}),className:`w-full resize-none bg-background px-3 py-2 font-mono text-xs text-foreground outline-none`,style:{minHeight:ce.adjustedMinHeight,maxHeight:d,overflowY:`auto`},value:F,onChange:e=>I(e.target.value)}):(()=>{let e=n.default.createElement(`div`,{style:ce.wrapperStyle,className:X(`w-full px-3 py-2 text-sm`,`[&_.ProseMirror]:outline-none`,`[&_.ProseMirror_p]:my-1`,`[&_.ProseMirror_h1]:my-2 [&_.ProseMirror_h1]:text-2xl [&_.ProseMirror_h1]:font-bold`,`[&_.ProseMirror_h2]:my-2 [&_.ProseMirror_h2]:text-xl [&_.ProseMirror_h2]:font-semibold`,`[&_.ProseMirror_h3]:my-1 [&_.ProseMirror_h3]:text-lg [&_.ProseMirror_h3]:font-semibold`,`[&_.ProseMirror_ul]:list-disc [&_.ProseMirror_ul]:pl-6`,`[&_.ProseMirror_ol]:list-decimal [&_.ProseMirror_ol]:pl-6`,`[&_.ProseMirror_blockquote]:my-2 [&_.ProseMirror_blockquote]:border-l-4 [&_.ProseMirror_blockquote]:border-border [&_.ProseMirror_blockquote]:pl-4 [&_.ProseMirror_blockquote]:text-muted-foreground`,`[&_.ProseMirror_code]:rounded [&_.ProseMirror_code]:bg-muted [&_.ProseMirror_code]:px-1 [&_.ProseMirror_code]:font-mono [&_.ProseMirror_code]:text-xs`,`[&_.ProseMirror_pre]:my-2 [&_.ProseMirror_pre]:overflow-x-auto [&_.ProseMirror_pre]:rounded [&_.ProseMirror_pre]:bg-muted [&_.ProseMirror_pre]:p-3`,`[&_.ProseMirror_table]:w-full [&_.ProseMirror_table]:border-collapse`,`[&_.ProseMirror_td]:border [&_.ProseMirror_td]:border-border [&_.ProseMirror_td]:px-2 [&_.ProseMirror_td]:py-1`,`[&_.ProseMirror_th]:border [&_.ProseMirror_th]:border-border [&_.ProseMirror_th]:bg-muted [&_.ProseMirror_th]:px-2 [&_.ProseMirror_th]:py-1 [&_.ProseMirror_th]:font-semibold`,`[&_.ProseMirror_a]:text-primary [&_.ProseMirror_a]:underline [&_.ProseMirror_a]:pointer-events-none`,`[&_.ProseMirror_a_img]:pointer-events-auto`,`[&_.ProseMirror_.is-editor-empty:first-child::before]:pointer-events-none [&_.ProseMirror_.is-editor-empty:first-child::before]:float-left [&_.ProseMirror_.is-editor-empty:first-child::before]:h-0 [&_.ProseMirror_.is-editor-empty:first-child::before]:text-muted-foreground [&_.ProseMirror_.is-editor-empty:first-child::before]:content-[attr(data-placeholder)]`)},n.default.createElement(b,{editor:K}));return re&&ie.length>0?n.default.createElement(bo,{ref:H,trigger:re,searchable:W,controlled:U.editorContext?{open:U.open,anchorPosition:U.anchorPosition,query:U.query,editorContext:U.editorContext,onClose:le}:void 0,onSelect:(e,t)=>{fe(e,t)}},ie.map(e=>n.default.createElement(bo.Item,{key:e.key,label:e.label,value:e.value,icon:e.icon,description:e.description})),e):e})(),l&&K&&n.default.createElement(Rs,{editor:K,config:l}),n.default.createElement(`input`,{ref:se.fileInputRef,type:`file`,multiple:!0,accept:f?.accept??`image/*`,className:`hidden`,onChange:e=>{let t=f?.maxBytes??10485760,n=Array.from(e.target.files??[]).find(e=>e.size>t);if(n){alert(`"${n.name}" exceeds the ${Math.round(t/1048576)} MB limit.`),e.target.value=``;return}se.handleUploadChange(e)}}),n.default.createElement(`input`,{ref:V,type:`file`,multiple:!0,accept:p?.accept??`.pdf,.doc,.docx,.txt,.csv`,className:`hidden`,onChange:e=>{let t=Array.from(e.target.files??[]);t.length&&he(t),e.target.value=``}})))},Ws=({name:e,onChange:t=void 0,defaultValue:r=void 0,label:i=void 0,required:a=!1,placeholder:o=void 0,disabled:s=!1,feedback:c=void 0,toolbar:l=`fixed`,toolbarCommands:u=Ds,outputFormat:d=`html`,statusBar:f=!1,minHeight:p=120,maxHeight:m=void 0,imageUpload:h=void 0,documentUpload:g=void 0,labelClassName:_=void 0,inheritWrapperClassName:v=!0,wrapperClassName:y=void 0,className:b=void 0,before:x=void 0,after:S=void 0,validator:C=void 0,commands:w=void 0,commandsTrigger:T=void 0})=>{let{value:E,handleChange:D,formWrapClass:O}=Dc({name:e,onChange:t,wrapperClassName:y,defaultValue:r,inheritWrapperClassName:v}),k=Ec(e,{required:a,label:i,validator:C}),A=(0,n.useId)(),[j,M]=(0,n.useState)(ws);(0,n.useEffect)(()=>{j||Es().then(M)},[j]);let N=(0,n.useCallback)(t=>{D?.({target:{name:e,value:t}})},[D,e]),P=f!==!1&&Os(f);return n.default.createElement(Z,{className:O},i&&n.default.createElement(gl,{label:i,required:a,htmlFor:A,className:_}),n.default.createElement(`div`,{className:X(x||S?Hc:``)},x&&n.default.createElement(`span`,{className:X(`inline-flex shrink-0 items-center border border-input bg-muted px-3 py-1 text-sm text-muted-foreground`,`rounded-l-md rounded-r-none border-r-0`)},x),n.default.createElement(`div`,{className:`min-w-0 flex-1`},j?n.default.createElement(Us,{modules:j,name:e,value:E??``,outputFormat:d,placeholder:o,disabled:s,toolbar:l,toolbarCommands:u,statusBar:P,minHeight:p,maxHeight:m,imageUpload:h,documentUpload:g,hasError:!!k,className:b,onEditorChange:N,commands:w,commandsTrigger:T}):n.default.createElement(`div`,{className:X(`rounded-md border border-input bg-muted/30 shadow-sm`,k&&`border-destructive`),style:{minHeight:p},"aria-busy":`true`,"aria-label":Tr(i)||void 0})),S&&n.default.createElement(`span`,{className:X(`inline-flex shrink-0 items-center border border-input bg-muted px-3 py-1 text-sm text-muted-foreground`,`rounded-l-none rounded-r-md border-l-0`)},S)),k?n.default.createElement(Zc,{message:k}):c&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},c))},Gs={string:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(el,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),number:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(tl,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),email:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(nl,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),password:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(il,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),color:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(al,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),url:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(fl,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),range:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(dl,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),date:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(ol,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),time:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(sl,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),datetime:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(cl,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),week:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(ll,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),month:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(ul,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),textarea:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(_l,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),richtext:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Ws,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),checkbox:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(ml,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),switch:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(hl,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),select:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Nr,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),autocomplete:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Fr,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),checklist:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Ir,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),uploadImage:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Hi,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),uploadDocument:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Vi,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),prompt:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Ko,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})}),imageField:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(mi,{name:t??e.name,label:r??t,...e,...i})}),menu:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:r,...i}={})=>n.default.createElement(Nr,{key:t,name:t,label:r??t,...e,...i})}),codeEditor:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue??``}),render:({name:t,label:r,...i}={})=>n.default.createElement(xs,{key:t??e.name,name:t??e.name,label:r??e.label??t,...e,...i})})},$=Gs,Ks=e=>e===void 0?void 0:Tr(e),qs={layout:br,input:Gs,schema:{string:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),defaultValue:$.string({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),number:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),defaultValue:$.number({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),min:$.number({label:`Minimo`,defaultValue:e.min}),max:$.number({label:`Massimo`,defaultValue:e.max}),step:$.number({label:`Step`,min:0,defaultValue:e.step}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),email:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),defaultValue:$.email({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),password:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),color:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),defaultValue:$.color({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),date:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),defaultValue:$.date({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),min:$.number({label:`Data minima`,defaultValue:e.min}),max:$.number({label:`Data massima`,defaultValue:e.max}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),time:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),defaultValue:$.time({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),datetime:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),defaultValue:$.datetime({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),week:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),defaultValue:$.week({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),month:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),defaultValue:$.month({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),textarea:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),defaultValue:$.textarea({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),minHeight:$.number({label:`Altezza minima`,min:0,defaultValue:e.minHeight}),maxHeight:$.number({label:`Altezza massima`,min:0,defaultValue:e.maxHeight}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),checkbox:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),defaultValue:$.switch({label:`Valore default`,defaultValue:e.defaultValue}),title:$.string({label:`Titolo tooltip`,defaultValue:e.title}),valueChecked:$.string({label:`Valore checked`,defaultValue:e.valueChecked?.toString()})}),switch:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),defaultValue:$.switch({label:`Valore default`,defaultValue:e.defaultValue}),title:$.string({label:`Titolo tooltip`,defaultValue:e.title}),valueChecked:$.string({label:`Valore checked`,defaultValue:e.valueChecked?.toString()})}),select:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),defaultValue:$.string({label:`Valore default`,defaultValue:e.defaultValue}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),readOnlyAfterSet:$.switch({label:`Read-only dopo set`,defaultValue:e.readOnlyAfterSet}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),autocomplete:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),placeholder:$.string({label:`Placeholder`,defaultValue:e.placeholder}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),minItems:$.number({label:`Min selezioni`,min:0,defaultValue:e.minItems}),maxItems:$.number({label:`Max selezioni`,min:1,defaultValue:e.maxItems}),creatable:$.switch({label:`Creazione libera`,defaultValue:e.creatable}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),checklist:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),feedback:$.string({label:`Messaggio helper`,defaultValue:e.feedback}),disabled:$.switch({label:`Disabilitato`,defaultValue:e.disabled})}),uploadImage:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),multiple:$.switch({label:`Multiplo`,defaultValue:e.multiple}),editable:$.switch({label:`Modificabile`,defaultValue:e.editable}),max:$.number({label:`Max file`,min:1,defaultValue:e.max}),accept:$.string({label:`Formati accettati`,defaultValue:e.accept}),previewWidth:$.number({label:`Larghezza preview`,min:0,defaultValue:e.previewWidth}),previewHeight:$.number({label:`Altezza preview`,min:0,defaultValue:e.previewHeight})}),uploadDocument:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required}),multiple:$.switch({label:`Multiplo`,defaultValue:e.multiple}),editable:$.switch({label:`Modificabile`,defaultValue:e.editable}),max:$.number({label:`Max file`,min:1,defaultValue:e.max}),accept:$.string({label:`Formati accettati`,defaultValue:e.accept})}),imageField:(e={})=>({label:$.string({label:`Label`,required:!0,defaultValue:Ks(e.label)}),required:$.switch({label:`Obbligatorio`,defaultValue:e.required})})},block:{},section:{}},Js=class{verifyRequiredMethods(){if(!this.model||typeof this.model!=`object`)throw Error(`[ComponentBlock] Missing property: "model"`);for(let e of[`html`,`form`])if(typeof this[e]!=`function`)throw Error(`[ComponentBlock] Missing method: "${e}()"`)}static default(e){let t=new this;return t.verifyRequiredMethods(),()=>{let[r,i]=n.default.useMemo(()=>Qs(t.model),[t.model]);return n.default.createElement(jc,{defaultValues:i,path:e?.path},t.form(r))}}};function Ys(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.render==`function`&&typeof t.getDefaults==`function`}function Xs(e){return typeof e==`function`&&e.prototype instanceof Js}function Zs(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!n.default.isValidElement(e)&&!Ys(e)}function Qs(e){let t={},n={};function r(e){for(let[t,r]of Object.entries(e))n[t]=r}for(let[n,i]of Object.entries(e))if(Ys(i))t[n]=i.render({name:n}),r(i.getDefaults(n));else if(Xs(i)){let e=new i,[a,o]=Qs(e.model);t[n]=e.form(a),r(o)}else if(Array.isArray(i)){console.warn(`[buildFormFields] ⚠️ The field "${n}" is defined as an array. It has been automatically converted into an object with generated keys (e.g., "${n}_0"). Consider refactoring your model to use an explicit object instead of an array.`);let e={};i.forEach((t,r)=>{let i=`${n}_${r}`;e[i]=t});let[a,o]=Qs(e);r(o),t[n]=a}else if(Zs(i)){let[e,a]=Qs(i);t[n]=e,r(a)}else t[n]=i;return[t,n]}function $s(e,t){let n=uv(t);if(n)return n;let r=e;try{r=decodeURIComponent(e)}catch{}if(!/^[\p{L}][\p{L}_-]*$/u.test(r))return r;let i=r.replace(/[-_]+/g,` `);return i.charAt(0).toUpperCase()+i.slice(1)}function ec(e){let{items:t,rootItem:n,baseUrl:r,stringify:i=!1}=e,a={"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[...n?[n]:[],...t].map((e,t)=>({"@type":`ListItem`,position:t+1,name:e.label,...e.href?{item:`${r}${e.href}`}:{}}))};return i?JSON.stringify(a):a}function tc(e,t){if(Array.isArray(e))return e;let n=N(e||t).split(`/`).filter(Boolean),r=``,i=n.map(e=>(r+=`/${e}`,{label:$s(e,r),href:r}));return i.length===0?i:[...i.slice(0,-1),{label:i[i.length-1].label}]}function nc(e){if(e)return typeof e==`string`?{label:e}:e}var rc=()=>n.default.createElement(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0},n.default.createElement(`polyline`,{points:`9 18 15 12 9 6`})),ic=({value:e})=>n.default.createElement(`span`,{className:`text-muted-foreground/60 select-none flex items-center`,"aria-hidden":!0},e===`chevron`?n.default.createElement(rc,null):e),ac=({href:e,label:t})=>n.default.createElement(r.Link,{to:e,className:`text-muted-foreground hover:text-foreground transition-colors`},t),oc=({label:e})=>n.default.createElement(`span`,{className:`text-foreground font-medium`,"aria-current":`page`},e),sc=({trail:e=void 0,rootItem:t=void 0,separator:i=`/`,jsonLd:a=!1,baseUrl:o=void 0,className:s=void 0})=>{let c=(0,r.useLocation)(),l=Y(`breadcrumbs`),u=tc(e,c.pathname),d=nc(t),f=[];if(d){let e=d.href?n.default.createElement(ac,{href:d.href,label:d.label}):n.default.createElement(`span`,{className:`text-muted-foreground`},d.label);f.push({key:`__root`,node:e})}if(u.forEach((e,t)=>{let r=`${e.href??`__item`}-${t}`,i=e.node?e.node:e.href?n.default.createElement(ac,{href:e.href,label:e.label}):n.default.createElement(oc,{label:e.label});f.push({key:r,node:i})}),!f.length)return null;let p=a?ec({items:u,rootItem:d,baseUrl:o??(typeof window<`u`?window.location.origin:``),stringify:!0}):null;return n.default.createElement(n.default.Fragment,null,n.default.createElement(`nav`,{"aria-label":l.label,className:s},n.default.createElement(`ol`,{className:`flex flex-wrap items-center gap-1.5 text-sm`},f.map((e,t)=>n.default.createElement(n.default.Fragment,{key:e.key},t>0&&n.default.createElement(`li`,null,n.default.createElement(ic,{value:i})),n.default.createElement(`li`,null,e.node))))),p&&n.default.createElement(`script`,{type:`application/ld+json`,dangerouslySetInnerHTML:{__html:p}}))},cc=Symbol(`llmnative.form-controller-store`),lc=()=>({record:void 0,isNewRecord:!0,isDirty:!1,canSave:!1,canDelete:!1,isSaving:!1,isDeleting:!1,saveDisabled:!0,deleteDisabled:!0,hasDraft:!1,draftStatus:null,errors:{},hasErrors:!1}),uc=async()=>!1,dc=()=>void 0;function fc(){let e=lc(),t,n=new Set,r={save:uc,delete:uc,reset:dc,restoreDraft:dc,discardDraft:dc},i=()=>{t={...e,save:r.save,delete:r.delete,reset:r.reset,restoreDraft:r.restoreDraft,discardDraft:r.discardDraft,[cc]:a},n.forEach(e=>e())},a={bindActions(e){let t=!1;e.save&&r.save!==e.save&&(r.save=e.save,t=!0),e.delete&&r.delete!==e.delete&&(r.delete=e.delete,t=!0),e.reset&&r.reset!==e.reset&&(r.reset=e.reset,t=!0),e.restoreDraft&&r.restoreDraft!==e.restoreDraft&&(r.restoreDraft=e.restoreDraft,t=!0),e.discardDraft&&r.discardDraft!==e.discardDraft&&(r.discardDraft=e.discardDraft,t=!0),t&&i()},getControllerSnapshot:()=>t,getState:()=>e,setState(t){let n={...e,...t};Object.keys(n).some(t=>e[t]!==n[t])&&(e=n,i())},subscribe(e){return n.add(e),()=>n.delete(e)}};return t={...e,save:r.save,delete:r.delete,reset:r.reset,restoreDraft:r.restoreDraft,discardDraft:r.discardDraft,[cc]:a},a}function pc(e){return e?.[cc]??fc()}function mc(e){return pc(e)}function hc(e){let t=mc(e);t.setState(lc()),t.bindActions({save:uc,delete:uc,reset:dc,restoreDraft:dc,discardDraft:dc})}var gc=(0,n.createContext)(null);function _c(e){let t=(0,n.useRef)(void 0);t.current||=e?pc(e):fc();let r=e?pc(e):t.current;return(0,n.useSyncExternalStore)(r.subscribe,r.getControllerSnapshot,r.getControllerSnapshot)}function vc(){let e=(0,n.useContext)(gc);if(!e)throw Error(`useFormActions must be used within a FormControllerContext`);return e}var yc=e=>Array.isArray(e)?[...e]:e&&typeof e==`object`?{...e}:{},bc=e=>!Number.isNaN(Number(e)),xc=(e,t)=>[`number`,`range`].includes(t)?e===``||e==null?``:Number(e):e,Sc=e=>e!==void 0&&bc(e)?[]:{},Cc=(e,t,n)=>{let r=t.target.name.split(`.`),i=xc(t.target.value,n),a=yc(e??{}),o=a;for(let e=0;e<r.length-1;e++){let t=r[e],n=r[e+1],i=o[t];o[t]=typeof i==`object`&&i?yc(i):Sc(n),o=o[t]}let s=r[r.length-1];return i==null||i===``?Array.isArray(o)&&bc(s)?o.splice(Number(s),1):delete o[s]:o[s]=i,a},wc=(0,n.createContext)(null),Tc=(0,n.createContext)(null),Ec=(e,t)=>{let r=(0,n.useContext)(Tc),i=(0,n.useRef)(t);return i.current=t,(0,n.useEffect)(()=>{if(r)return r.registerField(e,i),()=>r.unregisterField(e)},[e]),r?.errors[e]},Dc=({name:e,onChange:t,wrapperClassName:r,inputType:i=`text`,defaultValue:a,inheritWrapperClassName:o=!0,subscribeToFullRecord:s=!1})=>{let c=(0,n.useContext)(wc);if(!c)throw Error(`useFormContext must be used within a FormContext.Provider`);if(!e)throw Error(`useFormContext: name is required`);let l=(0,n.useContext)(Tc),u=(0,n.useCallback)(()=>{let t=c.store.getRecord();return s?t??Ic:e.split(`.`).reduce((e,t)=>{if(e!=null){if(Array.isArray(e)){let n=Number(t);return isNaN(n)?void 0:e[n]}if(typeof e==`object`)return e[t]}},t)},[c.store,e,s]),d=(0,n.useSyncExternalStore)(c.store.subscribe,u);return{value:(0,n.useMemo)(()=>d===void 0&&a!==void 0?a??``:d??``,[d,a]),handleChange:(0,n.useCallback)(n=>{l?.clearFieldError(n.target.name);let r;c.store.setRecord(e=>(r=Cc(e,n,i),r)),t?.({event:n,name:e,value:n.target.value,record:r??{},onChange:e=>{c.store.setRecord(t=>Cc(t,e,i))}})},[l,c.store,t,e,i]),formWrapClass:[r,o?c.wrapperClassName:void 0].filter(Boolean).join(` `),record:(s?d:c.store.getRecord())??{}}},Oc=({name:e,value:t,handleChange:r})=>n.default.useCallback(n=>{n.preventDefault();let i=n.target,a=`${n.dataTransfer.getData(`text/plain`)}`;i.focus();let o=(()=>{let e=document.caretPositionFromPoint?.(n.clientX,n.clientY)??document.caretRangeFromPoint?.(n.clientX,n.clientY);return e&&`offset`in e?e.offset??i.value.length:i.value.length})(),s=String(t??``),c=s.slice(0,o)+a+s.slice(o);r?.({target:{value:c.trim(),name:e}}),requestAnimationFrame(()=>{let e=o+a.length;i.setSelectionRange(e,e)})},[e,t,r]);function kc(e,t){if(e.indexOf(`.`)===-1||t.indexOf(`.`)===-1)return`${t}.${e}`;let n=Math.min(e.length,t.length),r=0;for(;r<n&&e.charCodeAt(r)===t.charCodeAt(r);)r++;let i=e.lastIndexOf(`.`,r-1);return i===-1?`${t}.${e}`:`${t}.${e.slice(i+1)}`}var Ac=({children:e,parentName:t,parentKey:r,wrapperClassName:i})=>n.default.Children.map(e,e=>{if(!t||!n.default.isValidElement(e))return e;let{name:a,children:o}=e.props,s={};return a&&(s.name=kc(a,t),s.key=r??s.name,s.wrapperClassName=e.props.wrapperClassName??i,e.props.before&&n.default.isValidElement(e.props.before)&&(s.before=Ac({children:e.props.before,parentName:t,parentKey:`${s.key}.before`})),e.props.after&&n.default.isValidElement(e.props.after)&&(s.after=Ac({children:e.props.after,parentName:t,parentKey:`${s.key}.after`}))),o&&typeof o!=`function`&&(s.children=Ac({children:o,parentName:t,parentKey:r,wrapperClassName:i})),n.default.cloneElement(e,s)});function jc(e){let t=(0,r.useLocation)(),{path:i,keyGenerator:a,defaultValues:o,children:s,...c}=e;if(c.onSubmit&&(i!==void 0||a||c.onSave||c.onDelete))throw Error(`Form: onSubmit makes an action form, which saves nothing: it takes no path, onSave, onDelete or keyGenerator.`);if(c.onSubmit)return n.default.createElement(Lc,{children:s,defaultValues:o,...c});let l=(e=>e??(t.hash?`${N(t.pathname)}/${t.hash.slice(1)}`:void 0))(i);return o||!l||a?n.default.createElement(Lc,{children:s,defaultValues:o,path:i,keyGenerator:a,...c}):n.default.createElement(Mc,{children:s,defaultValues:o,path:l,keyGenerator:a,...c})}var Mc=e=>{let{path:t,defaultValues:r,...i}=e,a=lr(),[o,s]=(0,n.useState)(void 0);return(0,n.useEffect)(()=>{a.read(t).then(e=>{s({...r,...e})}).catch(e=>{console.error(e),s({})})},[a,t,r]),o?n.default.createElement(Lc,{...i,defaultValues:o,path:t}):n.default.createElement(`p`,{className:`p-4`},n.default.createElement(`span`,{className:`mr-2 inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}),`Loading...`)},Nc=e=>JSON.stringify(fe(e??{})),Pc=e=>{if(e)try{let t=JSON.parse(e);if(t&&typeof t==`object`&&!Array.isArray(t))return t}catch{return}};function Fc(e){let t=e,n=new Set;return{getRecord:()=>t,setRecord:e=>{t=typeof e==`function`?e(t):e,n.forEach(e=>e())},subscribe:e=>(n.add(e),()=>n.delete(e))}}var Ic={},Lc=({children:e,appearance:t=void 0,controller:i=void 0,header:a=void 0,footer:o=void 0,path:s=void 0,defaultValues:l=void 0,keyGenerator:u=void 0,onLoad:d=void 0,onRecordChange:f=void 0,onSave:p=void 0,onDelete:m=void 0,onComplete:h=void 0,log:g=!1,showNotice:_=!0,onSubmit:v=void 0,draftBucket:y=void 0,noticeAnchorRef:b=void 0,showBack:x=!1,wrapperClassName:S=void 0,headerClassName:C=void 0,className:w=void 0,footerClassName:T=void 0,formClassName:E=void 0})=>{let D=(0,r.useLocation)(),O=q(`form`),k=Y(`form`),A=lr(),j=_c(i),M=mc(j),F=(0,n.useRef)(void 0);F.current||=Fc(l);let I=F.current,L=(0,n.useSyncExternalStore)(I.subscribe,I.getRecord),R=I.setRecord,[z,B]=(0,n.useState)(!1),[ee,V]=(0,n.useState)(!1),H=!l?.[yr],U=(0,n.useRef)(ie(l??{})),[te,ne]=(0,n.useState)(()=>Nc(l)),[re,W]=(0,n.useState)(null),G=(0,n.useRef)({isDirty:!1}),ae=(0,n.useMemo)(()=>{if(!y)return;let e=P(y),t=P(s||`${D.pathname}${D.hash||``}`);return e&&t?`llmnative.form-draft.${e}.${t}`:void 0},[y,D.pathname,D.hash,s]),oe=!!v,se=!oe,ce=!!(v||p||s||!H),le=!(!m&&H),ue=(0,n.useMemo)(()=>!me(L,U.current),[L,U.current]),K=k.noChangesToSave??`No changes to save`,de=k.draftRestoreTitle??`Unsaved changes found`,pe=k.draftRestoreMessage??`A local draft is available for this form. Restore it or discard it.`,he=k.draftRestoreAction??`Restore`,ge=k.draftDiscardAction??`Discard`,_e=k.draftRestoredTitle??`Draft restored`,ve=k.draftRestoredMessage??`The local draft has been restored. You can still discard it for a few seconds.`,ye=(0,n.useCallback)(()=>{ae&&typeof localStorage<`u`&&localStorage.removeItem(ae)},[ae]),be=(0,n.useCallback)(()=>{if(ae&&typeof localStorage<`u`)return Pc(localStorage.getItem(ae))},[ae]),xe=(0,n.useCallback)(()=>{R(ie(U.current))},[]),[Se,Ce]=(0,n.useState)(void 0),we=(0,n.useCallback)(({message:e,type:t=`danger`})=>{_&&Ce({type:t,message:e})},[_]),[Te,Ee]=(0,n.useState)({}),De=(0,n.useRef)({}),Oe=(0,n.useRef)(null),ke=(0,n.useRef)(L),Ae=(0,n.useRef)(l),je=(0,n.useRef)(p),Me=(0,n.useRef)(v),Ne=(0,n.useRef)(m),Pe=(0,n.useRef)(h),Fe=(0,n.useRef)(s),Ie=(0,n.useRef)(g),Le=(0,n.useCallback)(()=>{ye(),xe(),W(null)},[ye,xe]),Re=(0,n.useCallback)(()=>{let e=be();if(!e){W(null);return}R(ie(e)),W(`restored`)},[be]),ze=(0,n.useCallback)(()=>{Ee({}),Ce(void 0),W(null),xe()},[xe]),Be=(0,n.useCallback)((e,t)=>{De.current[e]=t},[]),Ve=(0,n.useCallback)(e=>{delete De.current[e]},[]),He=(0,n.useCallback)(e=>{Ee(t=>{if(!t[e])return t;let{[e]:n,...r}=t;return r})},[]),Ue=(0,n.useCallback)(async()=>{let e={};for(let[t,n]of Object.entries(De.current)){let{required:r,label:i,validator:a}=n.current,o=t.split(`.`).reduce((e,t)=>{if(e!=null){if(Array.isArray(e))return e[Number(t)];if(typeof e==`object`)return e[t]}},ke.current);if(r&&(o==null||typeof o==`string`&&o.trim()===``||Array.isArray(o)&&o.length===0)){let n=Tr(i);e[t]=n?J(k.requiredField,{field:n}):k.requiredFieldGeneric;continue}if(a){let n=await a(o);n&&(e[t]=n)}}if(Ee(e),Object.keys(e).length>0){let t=Object.keys(e)[0];requestAnimationFrame(()=>{Oe.current?.querySelector(`[name="${CSS.escape(t)}"]`)?.focus()})}return Object.keys(e).length===0},[k]),We=(0,n.useCallback)(e=>{if(!s)return;let t=N(s);if(H)return t.split(`/`).filter(Boolean).length%2==0&&!u?`/${t}`:`/${t}/${u?.(e)??Date.now().toString()}`;let n=e[yr];if(!n)return s;let r=t.split(`/`).filter(Boolean);return`/${r[r.length-1]===n?r.slice(0,-1).join(`/`):t}/${n}`},[s,u,H]),Ge=(0,n.useCallback)(async e=>{if(e!==`submit`&&Ie.current&&Fe.current&&A){let t=new Date().toISOString(),n=Mn(`user`);A.set(`/log/${Fe.current}/${P(t)}`,{user:n?.email??`unknown`,when:t,action:e,record:ke.current})}return e!==`submit`&&we({message:e===`delete`?k.deleteSuccess:k.saveSuccess,type:`success`}),await Pe.current?.({record:ke.current,action:e})??!0},[A,we,k]),Ke=(0,n.useCallback)(async e=>{if(e?.preventDefault?.(),se&&!ue)return _&&Ce({message:K,type:`info`}),!1;if((0,c.flushSync)(()=>{Ee({}),_&&Ce(void 0)}),!await Ue())return _&&Ce({message:k.noticeRequiredFields,type:`warning`}),!1;let t=e=>{if(!_)throw e;let t=e instanceof Error&&e.message?e.message:typeof e==`string`&&e?e:k.saveError;return Ce({message:t,type:`danger`}),!1};if(Me.current){B(!0);try{if(await Me.current({record:ie(ke.current??{})})===!1)return!1}catch(e){return t(e)}finally{B(!1)}return ye(),W(null),await Ge(`submit`)}let n=H?`create`:`update`;B(!0);try{let e=je.current?await je.current({record:ke.current,prevRecord:Ae.current,action:n,storagePath:Fe.current}):void 0;if(e===!1)return!1;let t=e??We(ke.current??{});t&&await A.set(t,fe(ke.current)),U.current=ie(ke.current??{}),ne(Nc(ke.current)),ye(),W(null)}catch(e){return t(e)}finally{B(!1)}return await Ge(n)},[ye,We,A,k.noticeRequiredFields,k.saveError,Ge,ue,H,K,se,_,Ue]),qe=(0,n.useCallback)(async e=>{e?.preventDefault?.(),_&&Ce(void 0),V(!0);try{let e=(Ne.current&&await Ne.current({record:ke.current}))??We(ke.current??{});return e&&await A.remove(e),ye(),W(null),await Ge(`delete`)}finally{V(!1)}},[ye,We,A,Ge,_]);(0,n.useEffect)(()=>{let e=ie(l??{});if(l&&(R(e),d?.(ie(e))),U.current=e,ne(Nc(e)),!y){W(null);return}let t=be();if(t&&Nc(t)!==Nc(e)){W(`restore`);return}W(null)},[JSON.stringify(l),y,d,be]),(0,n.useEffect)(()=>{ke.current=L,L!==void 0&&f?.(L)},[L,f]),(0,n.useEffect)(()=>{Ae.current=l,je.current=p,Me.current=v,Ne.current=m,Pe.current=h,Fe.current=s,Ie.current=g},[l,g,h,m,p,v,s]),(0,n.useEffect)(()=>{if(!ae||typeof localStorage>`u`||L===void 0)return;if(!ue){let e=be();if(e&&Nc(e)!==te)return;localStorage.removeItem(ae);return}let e=window.setTimeout(()=>{try{localStorage.setItem(ae,JSON.stringify(fe(L)))}catch{we({type:`warning`,message:k.draftSaveError??`Could not save a local draft — the change is too large for browser storage (e.g. an unsent image upload). Save the form to keep it.`})}},150);return()=>window.clearTimeout(e)},[te,ae,ue,we,be,L]),(0,n.useEffect)(()=>{G.current={storageKey:ae,record:L,isDirty:ue}},[ae,ue,L]),(0,n.useEffect)(()=>()=>{let{storageKey:e,record:t,isDirty:n}=G.current;if(e&&n&&t&&typeof localStorage<`u`)try{localStorage.setItem(e,JSON.stringify(fe(t)))}catch{}},[]),(0,n.useEffect)(()=>{M.bindActions({save:Ke,delete:qe,reset:ze,restoreDraft:Re,discardDraft:Le})},[M,Le,qe,Ke,ze,Re]),(0,n.useEffect)(()=>{M.setState({record:ke.current,isNewRecord:H,isDirty:ue,canSave:ce,canDelete:le,isSaving:z,isDeleting:ee,saveDisabled:!ce||se&&!ue||z,deleteDisabled:!le||ee,hasDraft:re!==null,draftStatus:re,errors:Te,hasErrors:Object.keys(Te).length>0})},[le,ce,M,re,Te,ee,ue,H,z,L,se]),(0,n.useEffect)(()=>()=>hc(j),[M]);let Je=(0,n.useCallback)(e=>{e.defaultPrevented||!e.ctrlKey&&!e.metaKey||e.key.toLowerCase()!==`s`||j.saveDisabled||(e.preventDefault(),j.save())},[j]),Ye=(0,n.useCallback)(e=>{if(!oe||e.defaultPrevented||e.key!==`Enter`||e.shiftKey||e.altKey||e.nativeEvent.isComposing)return;let t=e.target;t instanceof HTMLInputElement&&![`checkbox`,`radio`,`button`,`submit`,`file`,`color`,`range`].includes(t.type)&&t.getAttribute(`role`)!==`combobox`&&t.getAttribute(`aria-expanded`)!==`true`&&(e.preventDefault(),j.saveDisabled||j.save())},[j,oe]),Xe=(0,n.useMemo)(()=>({registerField:Be,unregisterField:Ve,clearFieldError:He,errors:Te}),[Be,Ve,He,Te]),Ze=(0,n.useMemo)(()=>({store:I,wrapperClassName:`mb-3`}),[I]),Qe=(0,n.useMemo)(()=>n.default.createElement(gc.Provider,{value:j},n.default.createElement(wc.Provider,{value:Ze},n.default.createElement(Tc.Provider,{value:Xe},typeof e==`function`?e({record:L}):e))),[e,j,Ze,L,Xe]),$e=(0,n.useMemo)(()=>Se?n.default.createElement(vr,{variant:Se.type,appearance:b?`default`:`text`,placement:b?`sticky`:`inline`,anchorRef:b,timeout:Se.type===`success`?3e3:void 0,onClose:Se.type===`success`?()=>Ce(void 0):void 0},Se.message):null,[Se,b]),et=(0,n.useMemo)(()=>{if(!re)return null;let e=re===`restore`?de:_e,t=re===`restore`?pe:ve;return n.default.createElement(vr,{variant:re===`restore`?`warning`:`info`,timeout:re===`restored`?6e3:void 0,onClose:re===`restored`?()=>W(null):void 0},n.default.createElement(`div`,{className:`flex items-start justify-between gap-3`},n.default.createElement(`div`,{className:`min-w-0`},n.default.createElement(`div`,{className:`font-medium`},e),n.default.createElement(`div`,{className:`text-sm opacity-90`},t)),n.default.createElement(`div`,{className:`flex shrink-0 items-center gap-2`},re===`restore`?n.default.createElement(n.default.Fragment,null,n.default.createElement(Cn,{label:he,variant:`warning`,onClick:()=>Re()}),n.default.createElement(Cn,{label:ge,variant:`outline-secondary`,onClick:()=>Le()})):n.default.createElement(Cn,{label:ge,variant:`outline-secondary`,onClick:()=>Le()}))))},[Le,ge,re,he,pe,de,ve,_e,Re]),tt=(0,n.useMemo)(()=>{switch(t){case`empty`:return n.default.createElement(n.default.Fragment,null,et,Qe,$e);default:return n.default.createElement(hr,{header:a||(oe?void 0:n.default.createElement(sc,{rootItem:H?k.headerAdd:k.headerEdit,trail:s||void 0})),footer:(o||$e||!H||p||m||x||!!s)&&n.default.createElement(n.default.Fragment,null,o,$e,!oe&&(p||!!s||!H)&&n.default.createElement(Sn,{className:X(O.Form.buttonSaveClass,j.saveDisabled&&`cursor-not-allowed opacity-50`),label:k.buttonSave,title:j.saveDisabled&&!ue?K:void 0,disabled:j.saveDisabled,loading:j.isSaving,onClick:e=>j.save(e)}),!oe&&(m||!H)&&n.default.createElement(Sn,{className:O.Form.buttonDeleteClass,label:k.buttonDelete,disabled:j.deleteDisabled,loading:j.isDeleting,onClick:e=>j.delete(e)}),x&&n.default.createElement(wn,{className:O.Form.buttonBackClass,label:k.buttonBack})),headerClassName:C||O.Form.Card.headerClassName,bodyClassName:w||O.Form.Card.bodyClassName,footerClassName:T||O.Form.Card.footerClassName},n.default.createElement(n.default.Fragment,null,et,Qe))}},[t,w,Qe,oe,k.buttonBack,k.buttonDelete,k.buttonSave,k.headerAdd,k.headerEdit,et,o,T,j,a,C,ue,H,K,$e,m,p,s,x,O.Form.buttonDeleteClass,O.Form.buttonSaveClass,O.Form.buttonBackClass,O.Form.Card.bodyClassName,O.Form.Card.footerClassName,O.Form.Card.headerClassName]);return n.default.createElement(Z,{className:S||O.Form.wrapperClassName},n.default.createElement(`form`,{ref:Oe,className:E,noValidate:!0,onSubmit:e=>e.preventDefault(),onKeyDownCapture:Je,onKeyDown:e=>{Je(e),Ye(e)}},tt))},Rc=`mb-1 block text-sm font-medium leading-5 text-foreground`,zc=`mt-1 text-xs text-muted-foreground`,Bc=`flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,Vc=`flex min-h-[5rem] w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,Hc=`flex w-full items-stretch`,Uc=`inline-flex shrink-0 items-center border border-input bg-muted px-3 py-1 text-sm text-muted-foreground`,Wc=`relative`,Gc=`pointer-events-none absolute left-3 top-2 z-10 origin-[0] bg-background px-1 text-xs font-medium normal-case tracking-normal text-muted-foreground transition-all duration-150 peer-placeholder-shown:top-1/2 peer-placeholder-shown:-translate-y-1/2 peer-placeholder-shown:px-0 peer-placeholder-shown:text-sm peer-placeholder-shown:font-normal peer-placeholder-shown:normal-case peer-placeholder-shown:tracking-normal peer-focus:top-2 peer-focus:-translate-y-0 peer-focus:px-1 peer-focus:text-xs peer-focus:font-medium peer-focus:tracking-normal peer-focus:text-foreground`,Kc=`pointer-events-none absolute left-3 top-2 z-10 origin-[0] bg-background px-1 text-xs font-medium normal-case tracking-normal text-muted-foreground transition-all duration-150 peer-placeholder-shown:top-2 peer-placeholder-shown:translate-y-0 peer-placeholder-shown:px-0 peer-placeholder-shown:text-sm peer-placeholder-shown:font-normal peer-placeholder-shown:normal-case peer-placeholder-shown:tracking-normal peer-focus:top-2 peer-focus:translate-y-0 peer-focus:px-1 peer-focus:text-xs peer-focus:font-medium peer-focus:tracking-normal peer-focus:text-foreground`,qc=`peer h-14 px-3 pt-6 pb-2`,Jc=`peer px-3 pt-6 pb-2`,Yc=(e,{before:t,after:n})=>X(e,t&&`!rounded-l-none`,n&&`!rounded-r-none`),Xc=({children:e,side:t})=>n.default.createElement(`span`,{className:X(Uc,t===`before`?`rounded-l-md rounded-r-none border-r-0`:`rounded-l-none rounded-r-md border-l-0`)},e),Zc=({message:e})=>n.default.createElement(`div`,{className:`mt-1 flex items-center gap-1 text-xs text-foreground`,role:`alert`,"aria-live":`polite`},n.default.createElement(Q,{name:`warning-circle`,size:12,className:`shrink-0 text-destructive`}),n.default.createElement(`span`,null,e)),Qc=({name:e,onChange:t,wrapperClassName:r,defaultValue:i,valueChecked:a,inheritWrapperClassName:o})=>{let s=e=>e==null?``:`${e}`,{value:c,handleChange:l,formWrapClass:u}=Dc({name:e,onChange:t,wrapperClassName:r,inputType:typeof a==`number`?`number`:`text`,defaultValue:i===void 0?void 0:s(i)===s(a)?s(a):``,inheritWrapperClassName:o});return{id:(0,n.useId)(),checked:s(c)===s(a),formWrapClass:u,handleCheckboxChange:t=>{l?.({target:{name:e,value:t.target.checked?a:``}})}}},$c=({name:e,onChange:t=void 0,defaultValue:r=void 0,placeholder:i=void 0,label:a=void 0,type:o=`text`,required:s=!1,readOnlyAfterSet:c=!1,disabled:l=!1,before:u=void 0,after:d=void 0,afterInset:f=void 0,feedback:p=void 0,min:m=void 0,max:h=void 0,step:g=void 0,id:_=void 0,labelClassName:v=void 0,inheritWrapperClassName:y=!0,wrapperClassName:b=void 0,className:x=void 0,validator:S=void 0,labelMode:C=`default`,inputMode:w=void 0,maxLength:T=void 0,pattern:E=void 0,autoComplete:D=void 0})=>{let{value:O,handleChange:k,formWrapClass:A}=Dc({name:e,onChange:t,wrapperClassName:b,inputType:o,defaultValue:r,inheritWrapperClassName:y}),j=Ec(e,{required:s,label:a,validator:S}),M=(0,n.useId)(),N=_??M,P=Oc({name:e,value:O,handleChange:k}),F=!(C!==`floating`||!a||u||d||f),I=F?` `:i;return n.default.createElement(Z,{className:A},!F&&a&&n.default.createElement(gl,{label:a,required:s,htmlFor:N,className:v}),n.default.createElement(Z,{className:X(u||d?Hc:``,f&&`relative`,F&&Wc)},u&&n.default.createElement(Xc,{side:`before`},u),n.default.createElement(`input`,{id:N,type:o,name:e,className:Yc(X(Bc,F&&qc,j&&`border-destructive focus-visible:ring-destructive/20`,f&&`pr-9`,x),{before:u,after:d}),placeholder:I,required:s,disabled:l||c&&!W(O),value:O??``,onChange:k,min:m,max:h,step:g,inputMode:w,maxLength:T,pattern:E,autoComplete:D,onDragOver:e=>e.preventDefault(),onDrop:P}),F&&n.default.createElement(`label`,{htmlFor:N,className:X(Gc,v)},a,` `,s&&n.default.createElement(`span`,{className:`text-destructive`},`*`)),d&&n.default.createElement(Xc,{side:`after`},d),f&&n.default.createElement(`span`,{className:`pointer-events-none absolute inset-y-0 right-0 flex items-center pr-1.5 [&>*]:pointer-events-auto`},f)),j?n.default.createElement(Zc,{message:j}):p&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},p))},el=e=>n.default.createElement($c,{...e,type:`text`}),tl=e=>n.default.createElement($c,{...e,type:`number`}),nl=e=>n.default.createElement($c,{...e,type:`email`}),rl=e=>n.default.createElement($c,{autoComplete:`tel`,...e,type:`tel`}),il=e=>{let[t,r]=(0,n.useState)(!1);return n.default.createElement($c,{...e,type:t?`text`:`password`,afterInset:n.default.createElement(`button`,{type:`button`,tabIndex:-1,onClick:()=>r(!t),className:`h-7 w-7 inline-flex items-center justify-center rounded text-muted-foreground hover:text-foreground transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`},n.default.createElement(Q,{name:t?`eye`:`eye-off`,size:15}))})},al=({className:e,...t})=>n.default.createElement($c,{...t,type:`color`,className:X(`w-10 shrink-0 cursor-pointer p-0.5`,e)}),ol=e=>n.default.createElement($c,{...e,type:`date`}),sl=e=>n.default.createElement($c,{...e,type:`time`}),cl=e=>n.default.createElement($c,{...e,type:`datetime-local`}),ll=e=>n.default.createElement($c,{...e,type:`week`}),ul=e=>n.default.createElement($c,{...e,type:`month`}),dl=e=>n.default.createElement($c,{...e,type:`range`,className:X(`!border-0 !bg-transparent !shadow-none !px-0 !py-0 !h-auto cursor-pointer accent-primary`,e.className)}),fl=e=>n.default.createElement($c,{...e,type:`url`}),pl=({name:e,onChange:t=void 0,defaultValue:r=void 0,value:i=void 0,id:a=void 0,inheritWrapperClassName:o=!0,wrapperClassName:s=void 0})=>{let{value:c,handleChange:l}=Dc({name:e,onChange:t,wrapperClassName:s,defaultValue:r??i,inheritWrapperClassName:o}),u=(0,n.useId)(),d=a??u,f=n.default.useMemo(()=>JSON.stringify(i??null),[i]),p=n.default.useMemo(()=>JSON.stringify(c??null),[c]);return(0,n.useEffect)(()=>{i!==void 0&&f!==p&&l({target:{name:e,value:i}})},[l,e,f,p,i]),n.default.createElement(`input`,{id:d,type:`hidden`,name:e,value:typeof c==`string`?c:c==null?``:JSON.stringify(c),readOnly:!0})},ml=({name:e,onChange:t=void 0,defaultValue:r=void 0,label:i=void 0,title:a=void 0,ariaLabel:o=void 0,required:s=!1,valueChecked:c=`on`,disabled:l=!1,before:u=void 0,after:d=void 0,inheritWrapperClassName:f=!0,wrapperClassName:p=void 0,className:m=void 0})=>{let{id:h,checked:g,formWrapClass:_,handleCheckboxChange:v}=Qc({name:e,onChange:t,wrapperClassName:p,defaultValue:r,valueChecked:c,inheritWrapperClassName:f}),y=Ec(e,{required:s,label:i});return n.default.createElement(Z,{className:_},n.default.createElement(`div`,{className:`flex items-center gap-2`,title:l?a:void 0},u,n.default.createElement(`input`,{type:`checkbox`,id:h,name:e,title:a,"aria-label":o,className:X(`h-4 w-4 shrink-0 rounded-sm border border-input bg-background text-primary shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,m),checked:g,disabled:l,onChange:v}),i&&n.default.createElement(`label`,{className:X(`text-sm font-medium leading-none text-foreground`,l&&`cursor-not-allowed opacity-50`),htmlFor:h},i,s&&n.default.createElement(`span`,{className:`text-destructive`},`\xA0*`)),d),y&&n.default.createElement(Zc,{message:y}))},hl=({name:e,onChange:t=void 0,defaultValue:r=void 0,label:i=void 0,title:a=void 0,ariaLabel:o=void 0,required:s=!1,valueChecked:c=`on`,disabled:l=!1,before:u=void 0,after:d=void 0,inheritWrapperClassName:f=!0,wrapperClassName:p=void 0,className:m=void 0})=>{let{id:h,checked:g,formWrapClass:_,handleCheckboxChange:v}=Qc({name:e,onChange:t,wrapperClassName:p,defaultValue:r,valueChecked:c,inheritWrapperClassName:f}),y=Ec(e,{required:s,label:i});return n.default.createElement(Z,{className:_},n.default.createElement(`div`,{className:`flex items-center gap-2`},u,n.default.createElement(`label`,{className:X(`inline-flex items-center gap-2 select-none`,l?`cursor-not-allowed opacity-50`:`cursor-pointer`),title:l?a:void 0},n.default.createElement(`span`,{className:`relative inline-flex h-5 w-9 shrink-0 items-center`},n.default.createElement(`input`,{id:h,name:e,type:`checkbox`,title:a,"aria-label":o,checked:g,disabled:l,onChange:v,className:X(`peer absolute inset-0 m-0 h-full w-full opacity-0`,l?`cursor-not-allowed`:`cursor-pointer`)}),n.default.createElement(`span`,{"aria-hidden":`true`,className:X(`pointer-events-none absolute inset-0 rounded-full transition-colors duration-200 ease-out peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2`,g?`bg-primary`:`bg-muted-foreground/35`,m)},n.default.createElement(`span`,{className:X(`pointer-events-none absolute top-0.5 left-0.5 h-4 w-4 rounded-full bg-background shadow-sm transition-transform duration-200 ease-out`,g&&`translate-x-4`)}))),i&&n.default.createElement(`span`,{className:`text-sm font-medium leading-none text-foreground`},i,s&&n.default.createElement(`span`,{className:`text-destructive`},`\xA0*`))),d),y&&n.default.createElement(Zc,{message:y}))},gl=({label:e,required:t=!1,htmlFor:r=void 0,className:i=void 0})=>n.default.createElement(`label`,{htmlFor:r,className:X(Rc,i)},e,` `,t&&n.default.createElement(`span`,{className:`text-destructive`},`*`)),_l=({name:e,onChange:t=void 0,defaultValue:r=void 0,placeholder:i=void 0,label:a=void 0,required:o=!1,readOnlyAfterSet:s=!1,disabled:c=!1,minHeight:l=96,maxHeight:u=void 0,textareaRef:d=void 0,before:f=void 0,after:p=void 0,feedback:m=void 0,id:h=void 0,labelClassName:g=void 0,inheritWrapperClassName:_=!0,className:v=void 0,wrapperClassName:y=void 0,validator:b=void 0,onKeyDown:x=void 0,onClick:S=void 0,onBlur:C=void 0,labelMode:w=`default`})=>{let{value:T,handleChange:E,formWrapClass:D}=Dc({name:e,onChange:t,wrapperClassName:y,defaultValue:r,inheritWrapperClassName:_}),O=Ec(e,{required:o,label:a,validator:b}),k=xo({minHeight:l,maxHeight:u}),A=(0,n.useId)(),j=h??A,M=Oc({name:e,value:T,handleChange:E}),N=n.default.useRef(null),P=!(w!==`floating`||!a||f||p),F=P?` `:i;return(0,n.useEffect)(()=>{if(!N.current)return;let e=N.current;e.style.height=`auto`;let t=Math.max(e.scrollHeight,k.resolvedMinHeight),n=k.resolvedMaxHeight?Math.min(t,k.resolvedMaxHeight):t;e.style.minHeight=`${k.resolvedMinHeight}px`,e.style.maxHeight=k.resolvedMaxHeight?`${k.resolvedMaxHeight}px`:``,e.style.height=`${n}px`,e.style.overflowY=k.resolvedMaxHeight&&t>k.resolvedMaxHeight?`auto`:`hidden`},[T,k.resolvedMinHeight,k.resolvedMaxHeight]),n.default.createElement(Z,{className:D},!P&&a&&n.default.createElement(gl,{required:o,label:a,htmlFor:j,className:g}),n.default.createElement(Z,{className:X(f||p?Hc:``,P&&Wc)},f&&n.default.createElement(Xc,{side:`before`},f),n.default.createElement(`textarea`,{id:j,name:e,className:Yc(X(Vc,`resize-none`,P&&Jc,O&&`border-destructive focus-visible:ring-destructive/20`,v),{before:f,after:p}),ref:e=>{if(N.current=e,typeof d==`function`){d(e);return}d&&typeof d==`object`&&`current`in d&&(d.current=e)},placeholder:F,required:o,disabled:c||s&&!W(T),value:T??``,onChange:E,onKeyDown:x,onClick:S,onBlur:C,onDragOver:e=>e.preventDefault(),onDrop:M}),P&&n.default.createElement(`label`,{htmlFor:j,className:X(Kc,g)},a,` `,o&&n.default.createElement(`span`,{className:`text-destructive`},`*`)),p&&n.default.createElement(Xc,{side:`after`},p)),O?n.default.createElement(Zc,{message:O}):m&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},m))},vl=({children:e,onClick:t=void 0,label:r=void 0,activeIndices:i=void 0,draggable:a=void 0,onDrop:o=void 0,disabledIndices:s=void 0,loadingIndices:c=void 0,before:l=void 0,after:u=void 0,wrapperClassName:d=void 0,className:f=void 0,itemClassName:p=void 0})=>{let m=X(`flex flex-col divide-y divide-border rounded-md border bg-card`,f),h=e=>{let t=e=>e==null||typeof e==`boolean`?``:typeof e==`string`||typeof e==`number`?`${e}`:Array.isArray(e)?e.map(t).join(` `):n.default.isValidElement(e)?t(e.props.children):``;return t(e).replace(/\s+/g,` `).trim()},g=(e,t)=>{e.dataTransfer.setData(`text/plain`,o?.(t)??t)};return n.default.createElement(Z,{className:d},l,r&&n.default.createElement(`div`,null,r),n.default.createElement(`div`,{className:m},e.map((e,r)=>{let o=i?.includes(r),l=s?.includes(r),u=c?.includes(r),d=X(`flex items-center gap-2 px-3 py-2 text-sm transition-colors`,t&&`cursor-pointer hover:bg-accent hover:text-accent-foreground`,o&&`bg-primary/8 text-foreground`,l&&`pointer-events-none opacity-50`,u&&`animate-pulse`,p);return t?n.default.createElement(`div`,{key:r,onClick:e=>{!u&&!ce(e)&&t(e,r)},className:d,style:{cursor:`pointer`}},e):n.default.createElement(`span`,{key:r,className:d,draggable:a,onDragStart:a?t=>g(t,h(e)):void 0,style:{cursor:a?`grab`:`default`}},a&&n.default.createElement(Q,{name:`grip-vertical`}),e)})),u)},yl=class extends Error{reason;constructor(e,t,n){super(t??e,n),this.name=`AuthFlowError`,this.reason=e}},bl=()=>Y(`access`),xl={"auth/invalid-credential":`credentials`,"auth/invalid-login-credentials":`credentials`,"auth/wrong-password":`credentials`,"auth/user-not-found":`credentials`,"auth/email-already-in-use":`emailInUse`,"auth/weak-password":`weakPassword`,"auth/password-does-not-meet-requirements":`weakPassword`,"auth/invalid-email":`invalidEmail`,"auth/missing-email":`invalidEmail`,"auth/too-many-requests":`tooManyRequests`,"auth/network-request-failed":`network`,"auth/user-disabled":`disabled`,"auth/expired-action-code":`expiredLink`,"auth/invalid-action-code":`expiredLink`,"auth/popup-closed-by-user":`cancelled`,"auth/cancelled-popup-request":`cancelled`,"auth/user-cancelled":`cancelled`,"auth/invalid-verification-code":`invalidCode`,"auth/code-expired":`invalidCode`,"auth/operation-not-allowed":`notSupported`},Sl={invalid_credentials:`credentials`,email_exists:`emailInUse`,user_already_exists:`emailInUse`,weak_password:`weakPassword`,same_password:`weakPassword`,email_address_invalid:`invalidEmail`,over_request_rate_limit:`tooManyRequests`,over_email_send_rate_limit:`tooManyRequests`,otp_expired:`invalidCode`,user_banned:`disabled`,email_provider_disabled:`notSupported`,otp_disabled:`notSupported`,signup_disabled:`notSupported`};function Cl(e){if(e instanceof yl)return e.reason;let t=e;if(!t||typeof t!=`object`)return`generic`;if(typeof t.reason==`string`&&t.reason in wl)return t.reason;let n=typeof t.code==`string`?t.code:``;return xl[n]?xl[n]:Sl[n]?Sl[n]:t.status===429?`tooManyRequests`:t.name===`TypeError`&&/fetch|network/i.test(String(t.message??``))?`network`:`generic`}var wl={credentials:`errorCredentials`,emailInUse:`errorEmailInUse`,weakPassword:`errorWeakPassword`,invalidEmail:`errorInvalidEmail`,tooManyRequests:`errorTooManyRequests`,network:`errorNetwork`,invalidCode:`errorInvalidCode`,expiredLink:`errorExpiredLink`,disabled:`errorDisabled`,cancelled:`errorCancelled`,notSupported:`errorNotSupported`,generic:`errorGeneric`};function Tl(e,t){return t[wl[Cl(e)]]}function El(e){let t=bl(),[r,i]=(0,n.useState)(!1),[a,o]=(0,n.useState)(null),[s,c]=(0,n.useState)(null),l=(0,n.useRef)(!0);return(0,n.useEffect)(()=>(l.current=!0,()=>{l.current=!1}),[]),{pending:r,error:a,reason:s,run:(0,n.useCallback)(async n=>{i(!0),o(null),c(null);try{return{ok:!0,value:await n()}}catch(n){return l.current&&(c(Cl(n)),o(e?.(n)??Tl(n,t))),{ok:!1}}finally{l.current&&i(!1)}},[e,t]),clear:(0,n.useCallback)(()=>{o(null),c(null)},[])}}var Dl=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function Ol(e,t){if(!e.trim())return t.emailRequired;if(!Dl.test(e.trim()))return t.emailInvalid}function kl(e,t,n){let r=t.minLength??8;return[{id:`length`,label:J(n.ruleLength,{min:r}),met:e.length>=r},...t.number?[{id:`number`,label:n.ruleNumber,met:/\d/.test(e)}]:[],...t.mixedCase?[{id:`case`,label:n.ruleCase,met:/[a-z]/.test(e)&&/[A-Z]/.test(e)}]:[],...t.symbol?[{id:`symbol`,label:n.ruleSymbol,met:/[^A-Za-z0-9\s]/.test(e)}]:[]]}function Al(e){requestAnimationFrame(()=>{e?.querySelector(`[aria-invalid="true"]`)?.focus()})}function jl(e){let[t,r]=(0,n.useState)(0);return(0,n.useEffect)(()=>{if(t<=0)return;let e=setTimeout(()=>r(e=>e-1),1e3);return()=>clearTimeout(e)},[t]),[t,(0,n.useCallback)(()=>r(e),[e])]}var Ml=X(Bc,`h-11 text-base sm:h-10 sm:text-sm`),Nl=n.default.forwardRef(function({label:e,value:t,onChange:r,error:i,hint:a,labelAside:o,inset:s,id:c,className:l,...u},d){let f=(0,n.useId)(),p=c??f,m=`${p}-error`,h=`${p}-hint`,g=[i?m:null,a?h:null].filter(Boolean).join(` `)||void 0;return n.default.createElement(`div`,{className:`space-y-1.5`},n.default.createElement(`div`,{className:`flex items-baseline justify-between gap-3`},n.default.createElement(`label`,{htmlFor:p,className:X(Rc,`mb-0`)},e),o),n.default.createElement(`div`,{className:X(s&&`relative`)},n.default.createElement(`input`,{ref:d,id:p,value:t,onChange:e=>r(e.target.value),"aria-invalid":i?!0:void 0,"aria-describedby":g,className:X(Ml,i&&`border-destructive focus-visible:ring-destructive`,s&&`pr-11`,l),...u}),s&&n.default.createElement(`span`,{className:`absolute inset-y-0 right-0 flex items-center pr-1`},s)),i&&n.default.createElement(`p`,{id:m,className:`flex items-center gap-1.5 text-sm text-foreground`},n.default.createElement(Q,{name:`warning-circle`,size:14,className:`shrink-0 text-destructive`}),n.default.createElement(`span`,null,i)),a&&n.default.createElement(`div`,{id:h},a))}),Pl=n.default.forwardRef(function({rules:e,value:t,...r},i){let a=bl(),[o,s]=(0,n.useState)(!1),c=e?kl(t,e,a):null;return n.default.createElement(Nl,{ref:i,...r,value:t,type:o?`text`:`password`,autoCapitalize:`none`,autoCorrect:`off`,spellCheck:!1,inset:n.default.createElement(`button`,{type:`button`,onClick:()=>s(e=>!e),"aria-label":o?a.hidePassword:a.showPassword,"aria-pressed":o,title:o?a.hidePassword:a.showPassword,className:`inline-flex h-9 w-9 items-center justify-center rounded-md text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`},n.default.createElement(Q,{name:o?`eye-off`:`eye`,size:16})),hint:c&&n.default.createElement(`div`,{className:`pt-0.5`},n.default.createElement(`p`,{className:`sr-only`},a.passwordRules),n.default.createElement(`ul`,{className:`flex flex-wrap gap-x-4 gap-y-1 text-xs`},c.map(e=>n.default.createElement(`li`,{key:e.id,className:X(`flex items-center gap-1.5 transition-colors`,e.met?`text-foreground`:`text-muted-foreground`)},e.met?n.default.createElement(Q,{name:`check`,size:12,className:`shrink-0 text-success`}):n.default.createElement(`span`,{"aria-hidden":`true`,className:`mx-[3px] h-1.5 w-1.5 shrink-0 rounded-full bg-muted-foreground/50`}),n.default.createElement(`span`,null,e.label),n.default.createElement(`span`,{className:`sr-only`},e.met?a.ruleMet:a.ruleNotMet)))))})}),Fl=({pending:e,children:t,disabled:r})=>n.default.createElement(`button`,{type:`submit`,disabled:r||e,"aria-busy":e||void 0,className:X(`btn`,cn,`h-11 w-full text-base sm:h-10 sm:text-sm`)},e&&n.default.createElement(Il,null),t),Il=({className:e})=>n.default.createElement(`span`,{"aria-hidden":`true`,className:X(`inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`,e)}),Ll=({message:e})=>n.default.createElement(`div`,{role:`alert`,"aria-live":`assertive`},e&&n.default.createElement(`div`,{className:`flex items-start gap-2 rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2.5 text-sm text-foreground`},n.default.createElement(Q,{name:`warning-circle`,size:16,className:`mt-0.5 shrink-0 text-destructive`}),n.default.createElement(`span`,null,e))),Rl=({message:e})=>n.default.createElement(`div`,{role:`status`,"aria-live":`polite`},e&&n.default.createElement(`div`,{className:`flex items-start gap-2 rounded-md border border-border bg-muted px-3 py-2.5 text-sm text-foreground`},n.default.createElement(Q,{name:`check-circle`,size:16,className:`mt-0.5 shrink-0 text-success`}),n.default.createElement(`span`,null,e))),zl=`rounded-sm font-medium text-primary underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:text-muted-foreground disabled:no-underline`,Bl=({to:e,children:t,className:i})=>typeof e==`string`?/^[a-z][a-z0-9+.-]*:/i.test(e)?n.default.createElement(`a`,{href:e,className:X(zl,i)},t):n.default.createElement(r.Link,{to:e,className:X(zl,i)},t):n.default.createElement(`button`,{type:`button`,onClick:e,className:X(zl,i)},t),Vl=({onClick:e,disabled:t,children:r,className:i})=>n.default.createElement(`button`,{type:`button`,onClick:e,disabled:t,className:X(zl,`text-sm`,i)},r),Hl=({label:e})=>n.default.createElement(`div`,{className:`flex items-center gap-3 text-xs uppercase tracking-wide text-muted-foreground`,role:`separator`},n.default.createElement(`span`,{className:`h-px flex-1 bg-border`}),n.default.createElement(`span`,null,e),n.default.createElement(`span`,{className:`h-px flex-1 bg-border`})),Ul=({text:e,link:t,label:r})=>t?n.default.createElement(`p`,{className:`text-center text-sm text-muted-foreground`},e,` `,n.default.createElement(Bl,{to:t},r)):null,Wl={google:`Google`,apple:`Apple`,github:`GitHub`,microsoft:`Microsoft`,facebook:`Facebook`,twitter:`X`,x:`X`,gitlab:`GitLab`,linkedin:`LinkedIn`},Gl={google:()=>n.default.createElement(`svg`,{viewBox:`0 0 48 48`,width:`18`,height:`18`,"aria-hidden":`true`},n.default.createElement(`path`,{fill:`#FFC107`,d:`M43.611 20.083H42V20H24v8h11.303c-1.649 4.657-6.08 8-11.303 8-6.627 0-12-5.373-12-12s5.373-12 12-12c3.059 0 5.842 1.154 7.961 3.039l5.657-5.657C34.046 6.053 29.268 4 24 4 12.955 4 4 12.955 4 24s8.955 20 20 20 20-8.955 20-20c0-1.341-.138-2.65-.389-3.917z`}),n.default.createElement(`path`,{fill:`#FF3D00`,d:`M6.306 14.691l6.571 4.819C14.655 15.108 18.961 12 24 12c3.059 0 5.842 1.154 7.961 3.039l5.657-5.657C34.046 6.053 29.268 4 24 4 16.318 4 9.656 8.337 6.306 14.691z`}),n.default.createElement(`path`,{fill:`#4CAF50`,d:`M24 44c5.166 0 9.86-1.977 13.409-5.192l-6.19-5.238A11.91 11.91 0 0 1 24 36c-5.202 0-9.619-3.317-11.283-7.946l-6.522 5.025C9.505 39.556 16.227 44 24 44z`}),n.default.createElement(`path`,{fill:`#1976D2`,d:`M43.611 20.083H42V20H24v8h11.303a12.04 12.04 0 0 1-4.087 5.571l.003-.002 6.19 5.238C36.971 39.205 44 34 44 24c0-1.341-.138-2.65-.389-3.917z`})),apple:()=>n.default.createElement(`svg`,{viewBox:`0 0 24 24`,width:`18`,height:`18`,"aria-hidden":`true`,fill:`currentColor`},n.default.createElement(`path`,{d:`M16.365 1.43c0 1.14-.493 2.27-1.177 3.08-.744.9-1.99 1.57-2.987 1.57-.12 0-.23-.02-.3-.03-.01-.06-.04-.22-.04-.39 0-1.15.572-2.27 1.206-2.98.804-.94 2.142-1.64 3.248-1.68.03.13.05.28.05.43zm4.565 15.71c-.03.07-.463 1.58-1.518 3.12-.945 1.34-1.94 2.71-3.43 2.71-1.517 0-1.9-.88-3.63-.88-1.698 0-2.302.91-3.67.91-1.377 0-2.332-1.26-3.428-2.8-1.287-1.82-2.323-4.63-2.323-7.28 0-4.28 2.797-6.55 5.552-6.55 1.448 0 2.675.95 3.6.95.865 0 2.222-1.01 3.902-1.01.613 0 2.886.06 4.374 2.19-.13.09-2.383 1.37-2.383 4.19 0 3.26 2.854 4.42 2.955 4.45z`})),github:()=>n.default.createElement(`svg`,{viewBox:`0 0 16 16`,width:`18`,height:`18`,"aria-hidden":`true`,fill:`currentColor`},n.default.createElement(`path`,{d:`M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z`})),microsoft:()=>n.default.createElement(`svg`,{viewBox:`0 0 21 21`,width:`18`,height:`18`,"aria-hidden":`true`},n.default.createElement(`rect`,{x:`0`,y:`0`,width:`10`,height:`10`,fill:`#F25022`}),n.default.createElement(`rect`,{x:`11`,y:`0`,width:`10`,height:`10`,fill:`#7FBA00`}),n.default.createElement(`rect`,{x:`0`,y:`11`,width:`10`,height:`10`,fill:`#00A4EF`}),n.default.createElement(`rect`,{x:`11`,y:`11`,width:`10`,height:`10`,fill:`#FFB900`}))};function Kl(e){let t=typeof e==`string`?{id:e}:e,r=t.id,i=Gl[r.toLowerCase()];return{id:r,label:t.label??Wl[r.toLowerCase()]??r.charAt(0).toUpperCase()+r.slice(1),icon:t.icon??(i?n.default.createElement(i,null):null)}}function ql({providers:e,onSelect:t,pending:r,disabled:i}){let a=bl();return n.default.createElement(`div`,{className:`grid gap-2.5`},e.map(e=>{let o=Kl(e),s=r===o.id;return n.default.createElement(`button`,{key:o.id,type:`button`,onClick:()=>t(o.id),disabled:i||!!r,"aria-busy":s||void 0,className:X(`btn`,`h-11 w-full gap-2.5 border border-input bg-background text-base text-foreground shadow-sm hover:bg-accent hover:text-accent-foreground sm:h-10 sm:text-sm`)},s?n.default.createElement(Il,null):o.icon,n.default.createElement(`span`,null,J(a.continueWith,{provider:o.label})))}))}function Jl({value:e,onChange:t,onComplete:r,length:i=6,mode:a=`numeric`,disabled:o,invalid:s,autoFocus:c,label:l,describedBy:u,className:d}){let f=bl(),p=(0,n.useRef)([]),m=a===`numeric`?/[0-9]/:/[0-9a-z]/i,h=e=>Array.from(e).filter(e=>m.test(e)).join(``).slice(0,i),g=Array.from({length:i},(t,n)=>e[n]??``),_=(0,n.useRef)(null);(0,n.useEffect)(()=>{c&&p.current[Math.min(e.length,i-1)]?.focus()},[]),(0,n.useEffect)(()=>{e.length===i&&_.current!==e&&(_.current=e,r?.(e)),e.length<i&&(_.current=null)},[e,i,r]);let v=e=>{let t=p.current[Math.max(0,Math.min(e,i-1))];t?.focus(),t?.select()},y=(n,r)=>{let a=h(r);if(!a)return;let o=(e.slice(0,n)+a).slice(0,i),s=a.length===1?e.slice(n+1):``,c=h(o+s.slice(0,Math.max(0,i-o.length)));t(c),v(Math.min(n+a.length,c.length))},b=(n,r)=>{r.key===`Backspace`?(r.preventDefault(),g[n]?t(e.slice(0,n)+e.slice(n+1)):n>0&&(t(e.slice(0,n-1)+e.slice(n)),v(n-1))):r.key===`ArrowLeft`?(r.preventDefault(),v(n-1)):r.key===`ArrowRight`?(r.preventDefault(),v(n+1)):r.key===`Home`?(r.preventDefault(),v(0)):r.key===`End`&&(r.preventDefault(),v(e.length))},x=l??f.codeLabel,S=i%2==0&&i>=6?i/2:-1;return n.default.createElement(`div`,{role:`group`,"aria-label":x,"aria-describedby":u,dir:`ltr`,className:X(`flex items-center justify-center gap-2`,d)},g.map((r,c)=>n.default.createElement(n.default.Fragment,{key:c},c===S&&n.default.createElement(`span`,{"aria-hidden":`true`,className:`h-px w-2 shrink-0 bg-muted-foreground/60 sm:w-3`}),n.default.createElement(`input`,{ref:e=>{p.current[c]=e},value:r,autoComplete:c===0?`one-time-code`:`off`,inputMode:a===`numeric`?`numeric`:`text`,pattern:a===`numeric`?`[0-9]*`:void 0,autoCapitalize:`characters`,spellCheck:!1,maxLength:c===0?i:1,disabled:o,"aria-label":J(f.codeDigit,{index:c+1,length:i}),"aria-invalid":s||void 0,onFocus:e=>e.target.select(),onChange:n=>{let i=n.target.value;if(!i){t(e.slice(0,c)+e.slice(c+1));return}y(c,i.length>1&&r&&i.startsWith(r)?i.slice(1):i)},onKeyDown:e=>b(c,e),onPaste:e=>{e.preventDefault(),y(c,e.clipboardData.getData(`text`))},className:X(`h-12 w-10 min-w-0 rounded-md border bg-background text-center text-xl font-semibold tabular-nums text-foreground shadow-sm transition-colors sm:w-11`,`focus-visible:border-ring focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40`,`disabled:cursor-not-allowed disabled:opacity-50`,s?`border-destructive`:`border-input`,a===`alphanumeric`&&`uppercase`)}))))}function Yl({email:e,onVerify:t,onResend:r,onChangeEmail:i,length:a=6,mode:o=`numeric`,resendSeconds:s=30,title:c,description:l,onVerified:u,errorMessage:d,brand:f,toolbar:p,footer:m,bare:h,className:g}){let _=bl(),[v,y]=(0,n.useState)(``),[b,x]=(0,n.useState)(null),S=El(d),C=El(d),[w,T]=jl(s),E=(0,n.useId)(),D=(0,n.useCallback)(async e=>{e.length<a||S.pending||(x(null),(await S.run(()=>t(e))).ok?u?.():y(``))},[a,t,u,S]),O=async()=>{r&&(x(null),(await C.run(r)).ok&&(y(``),x(_.resent),T()))},k=l??(e?J(_.codeDescription,{length:a,email:e}):void 0);return n.default.createElement(or,{bare:h,brand:f,toolbar:p,footer:m,className:g,icon:`mail-open`,title:c??_.codeTitle,description:k&&n.default.createElement(`span`,{id:E},e&&typeof k==`string`?n.default.createElement(Xl,{text:k,email:e}):k)},n.default.createElement(`form`,{className:`space-y-5`,noValidate:!0,onSubmit:e=>{e.preventDefault(),D(v)}},n.default.createElement(Jl,{value:v,onChange:e=>{S.clear(),y(e)},onComplete:e=>void D(e),length:a,mode:o,disabled:S.pending,invalid:!!S.error,autoFocus:!0,describedBy:k?E:void 0}),n.default.createElement(Ll,{message:S.error??C.error}),n.default.createElement(Rl,{message:b}),n.default.createElement(Fl,{pending:S.pending,disabled:v.length<a},_.codeSubmit)),(r||i)&&n.default.createElement(`div`,{className:`mt-6 flex flex-col items-center gap-2 text-sm text-muted-foreground`},r&&n.default.createElement(`p`,null,_.codeNotReceived,` `,n.default.createElement(Vl,{onClick:O,disabled:w>0||C.pending},w>0?J(_.resendIn,{seconds:w}):_.resend)),i&&n.default.createElement(Vl,{onClick:i},_.useOtherEmail)))}function Xl({text:e,email:t}){let r=e.indexOf(t);return r<0?n.default.createElement(n.default.Fragment,null,e):n.default.createElement(n.default.Fragment,null,e.slice(0,r),n.default.createElement(`strong`,{className:`break-words font-medium text-foreground`},t),e.slice(r+t.length))}function Zl({onPasswordSignIn:e,onRequestCode:t,onVerifyCode:r,providers:i=[],onProviderSignIn:a,method:o,codeLength:s=6,resendSeconds:c=30,forgotPasswordLink:l,signUpLink:u,defaultEmail:d=``,appName:f,title:p,description:m,onSignedIn:h,errorMessage:g,brand:_,toolbar:v,footer:y,bare:b,className:x}){let S=bl(),C=!!e,w=!!t&&!!r,T=i.length>0&&!!a,[E,D]=(0,n.useState)(o===`code`&&w?`code`:C?`password`:`code`),[O,k]=(0,n.useState)(d),[A,j]=(0,n.useState)(``),[M,N]=(0,n.useState)({}),[P,F]=(0,n.useState)(null),[I,L]=(0,n.useState)(null),R=El(g),z=(0,n.useRef)(null),B={brand:_,toolbar:v,footer:y,bare:b,className:x};if(P&&r&&t)return n.default.createElement(Yl,{...B,email:P,length:s,resendSeconds:c,errorMessage:g,onVerify:e=>r(P,e),onResend:()=>t(P),onChangeEmail:()=>F(null),onVerified:h});let ee=async n=>{n.preventDefault();let r={email:Ol(O,S),password:E===`password`&&!A?S.passwordRequired:void 0};if(N(r),r.email||r.password){Al(z.current);return}let i=O.trim();E===`password`&&e?(await R.run(()=>e({email:i,password:A}))).ok&&h?.():t&&(await R.run(()=>t(i))).ok&&F(i)},V=async e=>{if(!a)return;L(e);let t=await R.run(()=>a(e));L(null),t.ok&&h?.()},H=()=>{R.clear(),N({}),D(e=>e===`password`?`code`:`password`)},U=C||w;return n.default.createElement(or,{...B,title:p??(f?J(S.signInTitleApp,{app:f}):S.signInTitle),description:m??S.signInDescription,below:n.default.createElement(Ul,{text:S.noAccount,link:u,label:S.signUpLink})},n.default.createElement(`div`,{className:`space-y-6`},T&&n.default.createElement(ql,{providers:i,onSelect:V,pending:I,disabled:R.pending}),T&&U&&n.default.createElement(Hl,{label:S.or}),!U&&n.default.createElement(Ll,{message:R.error}),U&&n.default.createElement(`form`,{ref:z,className:`space-y-4`,noValidate:!0,onSubmit:ee},n.default.createElement(Nl,{label:S.email,type:`email`,name:`email`,value:O,onChange:e=>{k(e),M.email&&N(e=>({...e,email:void 0}))},autoComplete:E===`password`?`username`:`email`,autoCapitalize:`none`,spellCheck:!1,error:M.email,autoFocus:!d&&!T,required:!0}),E===`password`&&n.default.createElement(Pl,{label:S.password,name:`password`,value:A,onChange:e=>{j(e),M.password&&N(e=>({...e,password:void 0}))},autoComplete:`current-password`,error:M.password,autoFocus:!!d,required:!0,labelAside:l&&n.default.createElement(Bl,{to:l,className:`text-sm`},S.forgotPassword)}),n.default.createElement(Ll,{message:R.error}),n.default.createElement(Fl,{pending:R.pending&&!I},E===`password`?S.signInSubmit:S.codeRequest),C&&w&&n.default.createElement(`div`,{className:`text-center`},n.default.createElement(Vl,{onClick:H},E===`password`?S.useCode:S.usePassword)))))}var Ql=new WeakSet;function $l(e){let t=Ln(e),[r,i]=(0,n.useState)(()=>Ql.has(t)||!t.whenReady),[a,o]=(0,n.useState)(()=>t.getUser());return(0,n.useEffect)(()=>{let e=!0;o(t.getUser());let n=t.onAuthChange(t=>{e&&o(t)});return t.whenReady&&!Ql.has(t)?t.whenReady().catch(()=>void 0).then(()=>{Ql.add(t),e&&(o(t.getUser()),i(!0))}):i(!0),()=>{e=!1,n()}},[t]),(0,n.useMemo)(()=>({user:a,ready:r,signOut:()=>t.signOut(),adapter:t}),[t,r,a])}var eu=e=>e.replace(/Auth$/,``).toLowerCase();function tu(e,t={}){let r=Ln(e),i=(0,n.useContext)(Fn),a=e??i?.defaultKey??``,{verifyEmailPath:o,resetPasswordPath:s}=t;return(0,n.useMemo)(()=>{let e=typeof r.sendPasswordReset==`function`||typeof r.signUp==`function`,t=typeof r.requestEmailCode==`function`&&typeof r.verifyEmailCode==`function`,n=r.signIn?.bind(r);return{adapter:r,signIn:{...e&&n?{onPasswordSignIn:({email:e,password:t})=>n({method:`password`,email:e,password:t})}:{},...t?{onRequestCode:e=>r.requestEmailCode(e),onVerifyCode:(e,t)=>r.verifyEmailCode(e,t)}:{},...n?e||t?{onProviderSignIn:e=>n({method:`oauth`,provider:e})}:{providers:[eu(a)],onProviderSignIn:()=>n()}:{}},signUp:r.signUp?{onSignUp:e=>r.signUp({...e,redirectTo:o}),...r.sendEmailVerification?{onResendVerification:e=>r.sendEmailVerification({email:e,redirectTo:o})}:{}}:void 0,forgotPassword:r.sendPasswordReset?{onSendReset:e=>r.sendPasswordReset(e,{redirectTo:s})}:void 0,resetPassword:e=>({invalidLink:!r.confirmPasswordReset,onResetPassword:t=>r.confirmPasswordReset?r.confirmPasswordReset(e??``,t):Promise.reject(Error(`confirmPasswordReset is not supported`))}),verifyEmail:{...r.verifyEmail?{onVerify:e=>r.verifyEmail(e)}:{},...r.sendEmailVerification?{onResend:()=>r.sendEmailVerification({redirectTo:o})}:{}}}},[r,a,o,s])}function nu(e=typeof window<`u`?window.location.search:``){let t=typeof e==`string`?new URLSearchParams(e):e;return t.get(`oobCode`)??t.get(`token_hash`)??t.get(`code`)}var ru=()=>{let e=Y(`common`);return n.default.createElement(`div`,{className:`flex min-h-dvh items-center justify-center bg-background text-muted-foreground`,role:`status`,"aria-label":e.loading},n.default.createElement(Il,{className:`h-6 w-6`}))},iu=({provider:e})=>{let t=tu(e);return n.default.createElement(Zl,t.signIn)},au=({user:e,signOut:t})=>{let r=bl(),i=El();return n.default.createElement(ar,{icon:`shield-warning`,tone:`warning`,title:r.deniedTitle,description:J(r.denied,{user:e.email??e.displayName??e.uid??``})},n.default.createElement(`div`,{className:`space-y-4`},n.default.createElement(Ll,{message:i.error}),n.default.createElement(`button`,{type:`button`,onClick:()=>void i.run(t),disabled:i.pending,className:`btn btn-primary h-11 w-full text-base sm:h-10 sm:text-sm`},i.pending&&n.default.createElement(Il,null),r.signInOther)))};function ou({children:e,fallback:t,provider:r,loading:i,allow:a,denied:o}){let s=$l(r),{user:c,ready:l}=s,[u,d]=(0,n.useState)(null),f=c?c.uid??c.email??`signed-in`:null;if((0,n.useEffect)(()=>{if(!c||!a){d(null);return}let e=!0;return d(null),Promise.resolve().then(()=>a(c)).catch(()=>!1).then(t=>{e&&d(!!t)}),()=>{e=!1}},[f,a]),!l)return n.default.createElement(n.default.Fragment,null,i??n.default.createElement(ru,null));if(!c)return n.default.createElement(n.default.Fragment,null,t??n.default.createElement(iu,{provider:r}));if(a){if(u===null)return n.default.createElement(n.default.Fragment,null,i??n.default.createElement(ru,null));if(!u)return n.default.createElement(n.default.Fragment,null,o??n.default.createElement(au,{user:c,signOut:s.signOut}))}return n.default.createElement(n.default.Fragment,null,e)}var su=({url:e=void 0,label:t=void 0,logo:i=void 0,width:a=void 0,height:o=36,wrapperClassName:s=void 0,className:c=void 0,logoClassName:l=void 0,labelClassName:u=void 0})=>{let d=q(`brand`),f=n.default.createElement(n.default.Fragment,null,n.default.createElement(Ss,{src:i||`data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZD0iTTUwIDE1IEw4NSA1MCBMNTAgODUgTDE1IDUwIFoiIGZpbGw9IiNjY2MiIG9wYWNpdHk9IjAuMiIvPjxwYXRoIGQ9Ik01MCAzMCBMNzAgNTAgTDUwIDcwIEwzMCA1MCBaIiBmaWxsPSIjY2NjIi8+PC9zdmc+`,width:a,height:o}),t&&n.default.createElement(`span`,{className:u||d.Brand.labelClassName},t));return n.default.createElement(Z,{className:s},n.default.createElement(`div`,{className:c||d.Brand.className},e?n.default.createElement(r.Link,{to:e,className:l||d.Brand.logoClassName},f):n.default.createElement(`span`,{className:l||d.Brand.logoClassName},f)))},cu=({children:e,showIndicators:t=!1,showControls:r=!1,showCaption:i=!1,dark:a=!1,autoPlay:o=void 0,initialSlide:s=0,renderCaption:c=void 0,onSlideClick:l=void 0})=>{let u=q(`carousel`),d=Y(`common`),f=n.default.Children.toArray(e).filter(n.default.isValidElement),p=f.length;t||=u.Carousel.showIndicators,r||=u.Carousel.showControls,i||=u.Carousel.showCaption,a||=u.Carousel.dark;let m=u.Carousel.autoPlay;o||=typeof m==`object`?m:void 0;let h=p>0?Math.min(Math.max(s,0),p-1):0,[g,_]=n.default.useState(!1),[v,y]=n.default.useState(h);n.default.useEffect(()=>{y(h)},[h]);let b=n.default.useCallback(e=>{if(!(p<=0)){if(o?.wrap??!0){let t=(e+p)%p;y(t);return}y(Math.min(Math.max(e,0),p-1))}},[o?.wrap,p]),x=n.default.useCallback(()=>b(v-1),[v,b]),S=n.default.useCallback(()=>b(v+1),[v,b]);n.default.useEffect(()=>{if(!o||p<=1||o.pause===`hover`&&g)return;let e=window.setInterval(()=>{y(e=>{let t=e+1;return t<p?t:o.wrap?0:e})},o.interval||2e3);return()=>window.clearInterval(e)},[o,g,p]);let C=e=>{if(!i)return null;if(c)return c(e);let{alt:t,description:r}=e.props;return!t&&!r?null:n.default.createElement(`div`,{className:X(`absolute inset-x-4 bottom-4 hidden rounded-lg px-4 py-3 md:block`,a?`bg-white/80 text-slate-900`:`bg-black/60 text-white`)},t&&n.default.createElement(`h5`,{className:`text-sm font-semibold`},t),r&&n.default.createElement(`p`,{className:`mt-1 text-sm opacity-90`},r))};return p===0?null:n.default.createElement(`div`,{className:`relative overflow-hidden rounded-xl`,onMouseEnter:()=>_(!0),onMouseLeave:()=>_(!1)},n.default.createElement(`div`,{className:X(`relative min-h-0`,l&&`cursor-pointer`),onClick:l},f.map((e,o)=>{let s=o===v;return n.default.createElement(`div`,{key:o,"aria-hidden":!s,className:X(`relative transition-opacity duration-300 ease-out`,s?`opacity-100`:`pointer-events-none absolute inset-0 opacity-0`)},e,(t||r||i)&&g&&n.default.createElement(`div`,{className:X(`pointer-events-none absolute inset-0 opacity-20`,a?`bg-white`:`bg-black`)}),g&&C(e))})),t&&p>1&&n.default.createElement(`ol`,{className:`absolute inset-x-0 bottom-4 z-10 flex items-center justify-center gap-2 px-4`},f.map((e,t)=>n.default.createElement(`li`,{key:t},n.default.createElement(`button`,{type:`button`,"aria-label":`${d.pageNavigation} ${t+1}`,"aria-current":t===v?`true`:void 0,onClick:()=>b(t),className:X(`h-2.5 w-2.5 rounded-full border transition-all`,t===v?`scale-110 border-white bg-white`:`border-white/60 bg-white/30 hover:bg-white/60`)})))),r&&g&&p>1&&n.default.createElement(n.default.Fragment,null,n.default.createElement(`button`,{type:`button`,"aria-label":d.previous,onClick:e=>{e.stopPropagation(),x()},className:`absolute left-3 top-1/2 z-10 inline-flex h-10 w-10 -translate-y-1/2 items-center justify-center rounded-full bg-background/85 text-foreground shadow-md transition-colors hover:bg-background`},n.default.createElement(Q,{name:`chevron-left`,size:18})),n.default.createElement(`button`,{type:`button`,"aria-label":d.next,onClick:e=>{e.stopPropagation(),S()},className:`absolute right-3 top-1/2 z-10 inline-flex h-10 w-10 -translate-y-1/2 items-center justify-center rounded-full bg-background/85 text-foreground shadow-md transition-colors hover:bg-background`},n.default.createElement(Q,{name:`chevron-right`,size:18}))))};function lu({action:e,onDone:t}){let[r,i]=n.default.useState(!1),a=n.default.useRef(!0);return n.default.useEffect(()=>()=>{a.current=!1},[]),n.default.createElement(`button`,{type:`button`,disabled:r,onClick:async n=>{n.preventDefault(),n.stopPropagation(),i(!0);try{await e.onClick()}finally{a.current&&i(!1)}e.closeOnClick&&t()},className:X(`inline-flex items-center gap-1 rounded-sm px-2 py-1 text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-60`,e.variant===`primary`?`bg-primary text-primary-foreground hover:bg-primary/90`:`border border-border text-foreground hover:bg-accent`)},(r||e.icon)&&n.default.createElement(Q,{name:r?`loader-circle`:e.icon,size:12,className:r?`animate-spin`:void 0}),e.label)}function uu({items:e=[],badge:t,seeAllUrl:i,onMarkAllRead:a,onItemClick:o,motion:s,className:c}){let l=Y(`notifications`),u=e.length>0,[d,f]=n.default.useState(!1),p=Ht(void 0,s??`fadeDown`,s??`fadeDown`);return n.default.createElement(Ya,{trigger:n.default.createElement(Q,{name:`bell`,size:18}),triggerClassName:`flex items-center justify-center w-9 h-9 rounded-md text-muted-foreground hover:text-foreground hover:bg-accent transition-colors`,badge:t,position:`end`,placement:`auto`,menuClassName:`w-80`,motion:s,className:c,open:d,onOpenChange:f},n.default.createElement(`div`,{className:`flex items-center justify-between px-3 py-2`},n.default.createElement(`span`,{className:`text-sm font-semibold text-foreground`},l.title||`Notifications`),u&&a&&n.default.createElement(`button`,{onClick:a,className:`text-xs text-primary hover:underline transition-colors`},l.markAllRead)),n.default.createElement(eo,null),!u&&n.default.createElement(`div`,{className:`flex flex-col items-center justify-center py-8 px-4 text-center`},n.default.createElement(`div`,{className:`w-10 h-10 rounded-full bg-muted flex items-center justify-center mb-3`},n.default.createElement(Q,{name:`bell-off`,size:18,className:`text-muted-foreground`})),n.default.createElement(`p`,{className:`text-sm font-medium text-foreground mb-1`},l.empty),n.default.createElement(`p`,{className:`text-xs text-muted-foreground`},l.emptyHint)),e.map((e,t)=>{let i=()=>{o?.(e,t),f(!1)},a=n.default.createElement(n.default.Fragment,null,n.default.createElement(`div`,{className:`mt-0.5 shrink-0 w-8 h-8 rounded-full flex items-center justify-center ${e.read?`bg-muted`:`bg-primary/10`}`},n.default.createElement(Q,{name:e.icon,size:15,className:e.read?`text-muted-foreground`:`text-primary`})),n.default.createElement(`div`,{className:`flex-1 min-w-0`},n.default.createElement(`p`,{className:`text-sm leading-snug ${e.read?`text-muted-foreground`:`text-foreground font-medium`}`},e.title),e.description&&n.default.createElement(`p`,{className:`text-xs text-muted-foreground mt-0.5 break-words`},e.description),n.default.createElement(`p`,{className:`text-xs text-muted-foreground mt-0.5`},e.time)),!e.read&&n.default.createElement(`span`,{className:`mt-2 shrink-0 w-1.5 h-1.5 rounded-full bg-primary`})),s=`flex items-start gap-3 px-3 py-2.5 rounded-sm transition-colors`,c=e.url?e.external?n.default.createElement(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,onClick:i,className:X(s,`hover:bg-accent`)},a):n.default.createElement(r.Link,{to:e.url,onClick:i,className:X(s,`hover:bg-accent`)},a):n.default.createElement(`div`,{className:s},a);return n.default.createElement(`div`,{key:e.id??t,style:{...p,transitionDelay:`${t*30}ms`}},c,e.actions?.length?n.default.createElement(`div`,{className:`flex flex-wrap gap-1.5 ps-14 pe-3 pb-2.5 -mt-1`},e.actions.map(e=>n.default.createElement(lu,{key:e.label,action:e,onDone:()=>f(!1)}))):null)}),u&&i&&n.default.createElement(n.default.Fragment,null,n.default.createElement(eo,null),n.default.createElement(`div`,{className:`px-1 py-1`},n.default.createElement(r.Link,{to:i,onClick:()=>f(!1),className:`flex items-center justify-center w-full rounded-sm px-2 py-1.5 text-sm text-muted-foreground hover:text-foreground hover:bg-accent transition-colors`},l.seeAll||`See all notifications`,n.default.createElement(Q,{name:`arrow-right`,size:13,className:`ml-1.5 opacity-60`})))))}var du=()=>n.default.createElement(`div`,{className:`inline-flex`},n.default.createElement(r.Link,{to:`/#`,"data-toggle-class":`app-header-menu-search-toggled`,"data-toggle-target":`.app`,className:`inline-flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`},n.default.createElement(`div`,{className:`flex items-center justify-center`},n.default.createElement(Q,{name:`search`,className:`h-4 w-4`}))));function fu({onQueryChange:e=void 0}){let t=Y(`common`);return n.default.createElement(`div`,null,n.default.createElement(du,null),n.default.createElement(`input`,{className:`hidden`,type:`text`,placeholder:t.search,onChange:e}))}function pu(e){return e?`current`in e?e.current??window:e:window}function mu(e){return e instanceof Window?e.scrollY:e.scrollTop}function hu({leading:e=void 0,center:t=void 0,trailing:r=void 0,children:i=void 0,sticky:a=!0,elevateOnScroll:o=!0,scrollTarget:s=void 0,scrollThreshold:c=8,className:l=void 0,innerClassName:u=void 0,leadingClassName:d=void 0,centerClassName:f=void 0,trailingClassName:p=void 0}){let m=q(`toolbar`),h=t??i,[g,_]=(0,n.useState)(!1);(0,n.useEffect)(()=>{if(!o||typeof window>`u`){_(!1);return}let e=pu(s),t=()=>_(mu(e)>c);return t(),e.addEventListener(`scroll`,t,{passive:!0}),()=>{e.removeEventListener(`scroll`,t)}},[o,s,c]);let v=(0,n.useMemo)(()=>X(`w-full border-b border-transparent transition-[background-color,border-color,box-shadow,backdrop-filter] duration-200`,m.Toolbar.wrapperClassName,a&&m.Toolbar.stickyClassName,o?g?m.Toolbar.scrolledClassName:m.Toolbar.restingClassName:m.Toolbar.scrolledClassName,l),[m,a,o,g,l]);return n.default.createElement(`header`,{className:v},n.default.createElement(`div`,{className:X(`flex min-h-14 items-center gap-3 px-4`,m.Toolbar.innerClassName,u)},e?n.default.createElement(`div`,{className:X(`flex min-w-0 items-center gap-2 shrink-0`,m.Toolbar.leadingClassName,d)},e):null,h?n.default.createElement(`div`,{className:X(`flex min-w-0 flex-1 items-center gap-3`,m.Toolbar.centerClassName,f)},h):n.default.createElement(`div`,{className:`flex-1`}),r?n.default.createElement(`div`,{className:X(`flex shrink-0 items-center gap-2`,m.Toolbar.trailingClassName,p)},r):null))}var gu=[{label:`blue`,value:`221.2 83.2% 53.3%`,hex:`#3b82f6`},{label:`violet`,value:`262.1 83.3% 57.8%`,hex:`#8b5cf6`},{label:`green`,value:`142.1 76.2% 36.3%`,hex:`#16a34a`},{label:`rose`,value:`346.8 77.2% 49.8%`,hex:`#e11d48`},{label:`orange`,value:`24.6 95% 53.1%`,hex:`#f97316`},{label:`slate`,value:`215.4 16.3% 46.9%`,hex:`#64748b`}],_u=[{label:`System`,fontSans:`-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif`,fontMono:`ui-monospace, 'SFMono-Regular', monospace`},{label:`Inter`,fontSans:`'Inter', sans-serif`,fontMono:`'JetBrains Mono', monospace`},{label:`Geist`,fontSans:`'Geist', sans-serif`,fontMono:`'Geist Mono', monospace`},{label:`Outfit`,fontSans:`'Outfit', sans-serif`,fontMono:`'JetBrains Mono', monospace`},{label:`Plus Jakarta Sans`,fontSans:`'Plus Jakarta Sans', sans-serif`,fontMono:`'Fira Code', monospace`},{label:`DM Sans`,fontSans:`'DM Sans', sans-serif`,fontMono:`'JetBrains Mono', monospace`},{label:`Nunito`,fontSans:`'Nunito', sans-serif`,fontMono:`'Fira Code', monospace`},{label:`Figtree`,fontSans:`'Figtree', sans-serif`,fontMono:`'Source Code Pro', monospace`},{label:`Poppins`,fontSans:`'Poppins', sans-serif`,fontMono:`'Fira Code', monospace`},{label:`Montserrat`,fontSans:`'Montserrat', sans-serif`,fontMono:`'Source Code Pro', monospace`}],vu=[{label:`success`,key:`success`,fgKey:`successForeground`,swatches:[{value:`142.1 76.2% 36.3%`,fgValue:`0 0% 100%`,hex:`#16a34a`},{value:`160 84% 39%`,fgValue:`0 0% 0%`,hex:`#10b981`},{value:`84 55% 46%`,fgValue:`0 0% 100%`,hex:`#65a30d`}]},{label:`warning`,key:`warning`,fgKey:`warningForeground`,swatches:[{value:`32.1 94.6% 43.7%`,fgValue:`0 0% 100%`,hex:`#d97706`},{value:`24.6 95% 53.1%`,fgValue:`0 0% 100%`,hex:`#f97316`},{value:`45 96% 48%`,fgValue:`0 0% 0%`,hex:`#eab308`}]},{label:`info`,key:`info`,fgKey:`infoForeground`,swatches:[{value:`198.6 88.7% 48.4%`,fgValue:`0 0% 100%`,hex:`#0ea5e9`},{value:`221.2 83.2% 53.3%`,fgValue:`0 0% 100%`,hex:`#3b82f6`},{value:`262.1 83.3% 57.8%`,fgValue:`0 0% 100%`,hex:`#8b5cf6`}]},{label:`danger`,key:`destructive`,fgKey:`destructiveForeground`,swatches:[{value:`0 84.2% 60.2%`,fgValue:`0 0% 100%`,hex:`#ef4444`},{value:`346.8 77.2% 49.8%`,fgValue:`0 0% 100%`,hex:`#e11d48`},{value:`0 72% 51%`,fgValue:`0 0% 100%`,hex:`#dc2626`}]}],yu=[{label:`Lucide`,value:`lucide`,description:`lucideDescription`},{label:`Phosphor`,value:`phosphor`,description:`phosphorDescription`}],bu=[{label:`weightThin`,value:`thin`},{label:`weightLight`,value:`light`},{label:`weightRegular`,value:`regular`},{label:`weightBold`,value:`bold`},{label:`weightFill`,value:`fill`}];function xu(e){return e.split(`-`).map(e=>e&&e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function Su({open:e=!0,onClose:t=void 0,surface:r=`flat`,showHeader:i=void 0,title:a=void 0,subtitle:o=void 0,headerActions:s=void 0,themeOptions:c=void 0,showModeSection:l=!0,showPrimarySection:u=!0,showRadiusSection:d=!0,showFontSection:f=!0,showStatusSection:p=!0,showThemeSection:m=!0,showIconLibrarySection:h=!0,className:g=void 0,wrapperClassName:_=void 0}){let v=Y(`themeSwitcher`),y=a===void 0?v.title:a,b=o===void 0?v.subtitle:o,{resolvedMode:x,primary:S,radius:C,fontSans:w,theme:T,colors:E,themes:D,toggleMode:O,setPrimary:k,setRadius:A,setFont:j,applyTheme:M,setTokens:N}=rt(),{providerId:P,setProvider:F,registerProvider:I}=an(),L=P===`phosphor`?`phosphor`:`lucide`,R=(0,n.useMemo)(()=>Object.keys(D).map(e=>({value:e,label:c?.[e]?.label??xu(e),description:c?.[e]?.description??v.themeDescription})),[c,D,v.themeDescription]),z=i??r===`modal`,B=n.default.createElement(`div`,{className:`flex min-w-0 items-center justify-between gap-3`},n.default.createElement(`div`,{className:`min-w-0`},n.default.createElement(`h3`,{className:`truncate text-lg font-semibold leading-none`},y),b?n.default.createElement(`div`,{className:`mt-1 truncate text-sm text-muted-foreground`},b):null),s?n.default.createElement(`div`,{className:`flex shrink-0 items-center gap-2`},s):null),ee=n.default.createElement(n.default.Fragment,null,l?n.default.createElement(`div`,null,n.default.createElement(`label`,{className:`mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground`},v.colorMode),n.default.createElement(`div`,{className:`flex gap-2`},[`light`,`dark`].map(e=>n.default.createElement(`button`,{key:e,type:`button`,onClick:()=>x!==e&&O(),className:`flex flex-1 cursor-pointer items-center justify-center gap-2 rounded-md border py-2 text-sm font-medium transition-colors ${x===e?`border-primary bg-primary/10 text-primary`:`border-border text-muted-foreground hover:bg-accent`}`},n.default.createElement(Q,{name:e===`light`?`sun`:`moon`,size:14}),v[e])))):null,u?n.default.createElement(`div`,null,n.default.createElement(`label`,{className:`mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground`},v.primaryColor),n.default.createElement(`div`,{className:`flex flex-wrap gap-2`},gu.map(e=>n.default.createElement(`button`,{key:e.label,type:`button`,onClick:()=>k(e.value),title:v[e.label],className:`h-8 w-8 cursor-pointer rounded-full border-2 transition-transform hover:scale-110 ${S===e.value?`scale-110 border-foreground`:`border-transparent`}`,style:{backgroundColor:e.hex},"aria-label":v[e.label]})))):null,d?n.default.createElement(`div`,null,n.default.createElement(`div`,{className:`mb-3 flex items-center justify-between`},n.default.createElement(`label`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground`},v.borderRadius),n.default.createElement(`span`,{className:`text-xs font-mono text-muted-foreground`},C.toFixed(2),`rem`)),n.default.createElement(`input`,{type:`range`,min:0,max:1,step:.05,value:C,onChange:e=>A(parseFloat(e.target.value)),className:`w-full accent-primary`}),n.default.createElement(`div`,{className:`mt-1 flex justify-between text-xs text-muted-foreground`},n.default.createElement(`span`,null,v.sharp),n.default.createElement(`span`,null,v.rounded))):null,f?n.default.createElement(`div`,null,n.default.createElement(`label`,{className:`mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground`},v.font),n.default.createElement(`div`,{className:`relative`},n.default.createElement(`select`,{value:(_u.find(e=>e.fontSans===w)??_u[0]).fontSans,onChange:e=>{let t=_u.find(t=>t.fontSans===e.target.value);t&&j(t.fontSans,t.fontMono)},className:`w-full appearance-none rounded-md border border-border bg-background px-3 py-2 pr-8 text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-ring`},_u.map(e=>n.default.createElement(`option`,{key:e.label,value:e.fontSans},e.label))),n.default.createElement(Q,{name:`chevron-down`,size:14,className:`pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-muted-foreground`}))):null,p?n.default.createElement(`div`,null,n.default.createElement(`label`,{className:`mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground`},v.statusColors),n.default.createElement(`div`,{className:`space-y-2`},vu.map(({label:e,key:t,fgKey:r,swatches:i})=>n.default.createElement(`div`,{key:t,className:`flex items-center gap-2`},n.default.createElement(`span`,{className:`w-14 shrink-0 text-xs text-muted-foreground`},v[e]),n.default.createElement(`div`,{className:`flex gap-1.5`},i.map(i=>n.default.createElement(`button`,{key:i.hex,type:`button`,onClick:()=>N({[t]:i.value,[r]:i.fgValue}),title:`${v[e]} - ${i.hex}`,className:`h-6 w-6 cursor-pointer rounded-full border-2 transition-transform hover:scale-110 ${E?.[t]===i.value?`scale-110 border-foreground`:`border-transparent`}`,style:{backgroundColor:i.hex},"aria-label":`${v[e]} ${i.hex}`}))))))):null,m?n.default.createElement(`div`,null,n.default.createElement(`label`,{className:`mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground`},v.theme),n.default.createElement(`div`,{className:`space-y-2`},R.map(e=>n.default.createElement(`button`,{key:e.value,type:`button`,onClick:()=>M(e.value),className:`w-full cursor-pointer rounded-md border px-3 py-2.5 text-left text-sm transition-colors ${T===e.value?`border-primary bg-primary/10`:`border-border hover:bg-accent`}`},n.default.createElement(`span`,{className:`font-medium ${T===e.value?`text-primary`:`text-foreground`}`},e.label),n.default.createElement(`span`,{className:`mt-0.5 block text-xs text-muted-foreground`},e.description))))):null,h?n.default.createElement(`div`,null,n.default.createElement(`label`,{className:`mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground`},v.iconLibrary),n.default.createElement(`div`,{className:`space-y-2`},yu.map(e=>n.default.createElement(`button`,{key:e.value,type:`button`,onClick:()=>F(e.value),className:`w-full cursor-pointer rounded-md border px-3 py-2.5 text-left text-sm transition-colors ${L===e.value?`border-primary bg-primary/10`:`border-border hover:bg-accent`}`},n.default.createElement(`span`,{className:`flex items-center gap-2 font-medium ${L===e.value?`text-primary`:`text-foreground`}`},n.default.createElement(Q,{name:`palette`,size:12}),e.label),n.default.createElement(`span`,{className:`mt-0.5 block text-xs text-muted-foreground`},v[e.description])))),L===`phosphor`?n.default.createElement(`div`,{className:`mt-3`},n.default.createElement(`p`,{className:`mb-2 text-xs text-muted-foreground`},v.weight),n.default.createElement(`div`,{className:`flex flex-wrap gap-1`},bu.map(e=>n.default.createElement(`button`,{key:e.value,type:`button`,onClick:()=>{I(`phosphor`,new Jt(e.value)),F(`phosphor`)},className:`cursor-pointer rounded border border-border px-2 py-1 text-xs transition-colors hover:bg-accent`},v[e.label])))):null,n.default.createElement(`div`,{className:`mt-3 flex items-center gap-3 px-1`},[`sun`,`moon`,`bell`,`settings`,`search`,`trash`].map(e=>n.default.createElement(Q,{key:e,name:e,size:16,className:`text-muted-foreground`})))):null),V=n.default.createElement(`div`,{className:X(`space-y-6`,r===`flat`&&`rounded-xl border border-border/60 bg-card p-5`,g)},r===`flat`&&z?n.default.createElement(`div`,{className:`border-b border-border/60 pb-4`},B):null,ee);return r===`modal`?e?n.default.createElement(si,{position:`right`,header:z?B:void 0,onClose:t,allowFullscreen:!1,headerClassName:`h-14 !py-0 px-4`,className:g,wrapperClassName:_},n.default.createElement(`div`,{className:`space-y-6`},ee)):null:n.default.createElement(`div`,{className:_},V)}var Cu=(0,n.createContext)(null),wu=({registries:e,setProvider:t,children:r})=>n.default.createElement(Cu.Provider,{value:{registries:e,setProvider:t}},r),Tu=()=>{let e=(0,n.useContext)(Cu);if(!e)throw Error(`useSetProvider/useProvider must be used inside <App>.`);return e},Eu=()=>Tu().setProvider,Du=(e,t)=>{let{registries:n}=Tu(),r=n[e],i=t??r?.defaultKey,a=i?r?.registry[i]:void 0;if(!a)throw Error(`Provider '${i??e}' is not registered in category '${e}'. Available: ${Object.keys(r?.registry??{}).join(`, `)}`);return a},Ou=ga?.()?.google;typeof pa==`function`&&pa(e=>{Ou=e.google});var ku=e=>Ou?.[e],Au=`scrape`,ju=`[DEFAULT]`,Mu=new Map,Nu=(e,t=ju)=>{Mu.set(t,e)},Pu=(e=ju)=>Vn(`FirebaseProvider`,Bn(Mu.get(e),[`apiKey`,`authDomain`,`databaseURL`,`projectId`,`storageBucket`,`messagingSenderId`,`appId`],`firebase.`)),Fu=(e=ju)=>Vn(`FirestoreProvider`,Bn(Mu.get(e),[`apiKey`,`authDomain`,`projectId`,`appId`],`firebase.`)),Iu=(e=ju)=>{try{return e===ju?(0,u.getAuth)():(0,u.getAuth)((0,l.getApp)(e))}catch(e){return console.error(`FirebaseAuthorization`,e instanceof Error?e.message:`Error: check Configuration`),null}},Lu=async e=>{let t=Iu();if(!t)return!1;try{return await(0,u.setPersistence)(t,u.inMemoryPersistence),await(0,u.signInWithCustomToken)(t,e),!0}catch(e){let n=t.app.options?.apiKey;return console.error(`Firebase custom token sign-in error: `,e,`— app "${t.app.name}" options.apiKey: ${n?`${n.slice(0,6)}… (len ${n.length})`:String(n)}`),!1}},Ru=async(e,t=ju)=>{Nu(e,t);let n=(0,l.getApps)().find(e=>e.name===t);if(n){if(n.options?.appId===e.appId)return`${t}`,n;await(0,l.deleteApp)(n)}return t===ju?(0,l.initializeApp)(e):(0,l.initializeApp)(e,t)};async function zu(e,t,n=ju,r){let{getFunctions:i,httpsCallable:a}=await import(`firebase/functions`),{data:o}=await a(i(n===ju?(0,l.getApp)():(0,l.getApp)(n),r),e)(t);return o}var Bu=e=>e.replace(/^\/+|\/+$/g,``),Vu=e=>Bu(e).split(`/`).filter(Boolean),Hu=e=>Vu(e).length%2==0,Uu=(e,t,n)=>{let r=`Error during ${e}: ${String(t)}`;if(n)throw Error(r);console.error(r)},Wu={eq:`==`,lt:`<`,lte:`<=`,gt:`>`,gte:`>=`,in:`in`,nin:`not-in`},Gu=(e,t)=>{let n=[];if(e)for(let[t,r]of Object.entries(e)){let e=typeof r==`object`&&r&&!Array.isArray(r)?r:Array.isArray(r)?{in:r}:{eq:r};for(let[r,i]of Object.entries(e)){let e=Wu[r];e&&n.push((0,d.where)(t,e,i))}}if(t)for(let[e,r]of Object.entries(t))n.push((0,d.orderBy)(e,r));return n},Ku=`@key`,qu=(e,t)=>{if(!t)return e.docs.map((e,t)=>({[yr]:e.id,_index:t,...e.data()}));let n=Object.keys(t);return e.docs.map((e,r)=>{let i={[Ku]:e.id,...e.data()},a={};for(let r of n){let n=t[r];a[r]=n.includes(`{`)?E.parse(i,n):n===Ku?e.id:i[n]}return{[yr]:e.id,_index:r,...a}})},Ju=e=>Object.fromEntries(e.map(e=>[e[yr],e])),Yu=class e{static listenerRegistered=!1;databaseId;constructor(t={}){this.databaseId=t.databaseId,!e.listenerRegistered&&typeof pa==`function`&&(e.listenerRegistered=!0,pa(e=>{e.firebase&&Ru(e.firebase)}))}getDb=()=>this.databaseId?(0,d.getFirestore)((0,l.getApp)(),this.databaseId):(0,d.getFirestore)();dispose=async()=>{try{await(0,d.terminate)(this.getDb())}catch{}};getConfigurationState(){return Fu()}isConfigured(){return this.getConfigurationState().configured}read=async(e,{where:t,order:n,toArray:r=!1,exception:i=!1}={})=>{let a=Bu(e);try{let o=this.getDb();if(Hu(e)){let t=await(0,d.getDoc)((0,d.doc)(o,a));if(!t.exists()){if(i)throw Error(`Document not found: ${e}`);return}return`${e}`,{[yr]:t.id,...t.data()}}let s=Gu(t,n),c=s.length?(0,d.query)((0,d.collection)(o,a),...s):(0,d.collection)(o,a),l=await(0,d.getDocs)(c);`${l.size}${e}`;let u=qu(l);return r?u:Ju(u)}catch(t){Uu(`reading data in Firestore for ${e}`,t,i)}};set=async(e,t,n=!1)=>{let r=Bu(e);try{let n=this.getDb();Hu(e)?await(0,d.setDoc)((0,d.doc)(n,r),t):await(0,d.addDoc)((0,d.collection)(n,r),t),`${e}`}catch(t){Uu(`setting data in Firestore for ${e}`,t,n)}};update=async(e,t,n=!1)=>{let r=Bu(e);try{let n=this.getDb();Hu(e)?await(0,d.updateDoc)((0,d.doc)(n,r),t):await(0,d.addDoc)((0,d.collection)(n,r),t),`${e}`}catch(t){Uu(`updating data in Firestore for ${e}`,t,n)}};remove=async(e,t=!1)=>{let n=Bu(e);try{let t=this.getDb();if(Hu(e))await(0,d.deleteDoc)((0,d.doc)(t,n));else throw Error(`Deleting an entire collection is not supported. Remove individual documents.`);`${e}`}catch(n){Uu(`removing data in Firestore for ${e}`,n,t)}};count=async e=>{if(Hu(e))return 1;let t=this.getDb();try{return(await(0,d.getCountFromServer)((0,d.collection)(t,Bu(e)))).data().count}catch{return(await(0,d.getDocs)((0,d.collection)(t,Bu(e)))).size}};subscribe=(e,t,{where:n,order:r,fieldMap:i,onLoad:a}={})=>{let o=Iu();if(!o||!e)return()=>void 0;let s=()=>{let o=this.getDb(),s=Bu(e);if(Hu(e))return(0,d.onSnapshot)((0,d.doc)(o,s),e=>{if(!e.exists()){t([]);return}t([{[yr]:e.id,_index:0,...e.data()}])},e=>console.error(`Firestore onSnapshot error:`,e));let c=Gu(n,r),l=c.length?(0,d.query)((0,d.collection)(o,s),...c):(0,d.collection)(o,s);return(0,d.onSnapshot)(l,e=>{if(e.metadata?.fromCache&&e.size===0)return;let n=qu(e,i);if(a){let e=a(Ju(n));t(Object.entries(e).map(([e,t],n)=>({[yr]:e,_index:n,...typeof t==`object`&&t?t:{}})))}else t(n)},e=>console.error(`Firestore onSnapshot error:`,e))},c,l=(0,u.onIdTokenChanged)(o,e=>{c?.(),c=void 0,e?c=s():t([])});return()=>{c?.(),l()}};readShallow=async(e,t=!1)=>{let n=Bu(e);try{let t=this.getDb();if(Hu(e)){let e=await(0,d.getDoc)((0,d.doc)(t,n));return e.exists()?Object.keys(e.data()??{}):[]}return(await(0,d.getDocs)((0,d.collection)(t,n))).docs.map(e=>e.id)}catch(n){return Uu(`reading shallow data in Firestore for ${e}`,n,t??!1),[]}};setChunks=async(e,t,{chunkSize:n=500,purge:r=!1,onProgress:i}={})=>{let a=Bu(e),o=Math.min(n,500);try{let n=this.getDb();if(r){i?.(0,0,`Purging existing data at ${e}`);let t=(await(0,d.getDocs)((0,d.collection)(n,a))).docs.map(e=>e.id);for(let e=0;e<t.length;e+=o){let r=(0,d.writeBatch)(n);t.slice(e,e+o).forEach(e=>r.delete((0,d.doc)(n,a,e))),await r.commit()}}let s=Object.entries(t),c=Math.ceil(s.length/o);for(let e=0;e<s.length;e+=o){let t=(0,d.writeBatch)(n);s.slice(e,e+o).forEach(([e,r])=>{t.set((0,d.doc)(n,a,e),r)}),await t.commit();let r=Math.floor(e/o)+1;i?.(r,c,`Saving batch ${r}/${c}`)}`${e}${s.length}`}catch(t){Uu(`setting data in chunks in Firestore for ${e}`,t,!1)}}},Xu=new Map;function Zu(e,t){return Xu.has(e)||Xu.set(e,(0,f.createClient)(e,t)),Xu.get(e)}function Qu(e,t,n){return(0,f.createClient)(e,t,{auth:{persistSession:!1,autoRefreshToken:!1,detectSessionInUrl:!1},global:n?{headers:{Authorization:`Bearer ${n}`}}:void 0})}async function $u(e){await e.removeAllChannels()}function ed(e){return Vn(`Supabase`,Bn(e,[`url`,`anonKey`],`supabase.`))}var td=e=>e.replace(/^\/+|\/+$/g,``);function nd(e){let t=td(e).split(`/`).filter(Boolean);return{table:t[0]??``,id:t.length>=2?t.slice(1).join(`/`):null}}function rd(e,t,n){let r=`SupabaseDataProvider.${e}: ${t instanceof Error?t.message:String(t)}`;if(n)throw Error(r);console.error(r)}function id(e,t){for(let[n,r]of Object.entries(t))if(r==null)e=e.is(n,null);else if(typeof r!=`object`||Array.isArray(r))e=e.eq(n,r);else{let t=r;t.eq!==void 0&&(e=e.eq(n,t.eq)),t.lt!==void 0&&(e=e.lt(n,t.lt)),t.lte!==void 0&&(e=e.lte(n,t.lte)),t.gt!==void 0&&(e=e.gt(n,t.gt)),t.gte!==void 0&&(e=e.gte(n,t.gte)),t.in&&(e=e.in(n,t.in)),t.nin&&(e=e.not(n,`in`,t.nin))}return e}function ad(e,t){for(let[n,r]of Object.entries(t))e=e.order(n,{ascending:r===`asc`});return e}function od(e,t,n){let{_key:r,_index:i,...a}=e;return t&&(a[n]=t),a}function sd(e,t,n=0){return{...e,[yr]:String(e[t]??n),_index:n}}var cd=class{config;get pk(){return this.config.primaryKey??`id`}scopedClient;get client(){return this.config.accessToken?(this.scopedClient||=Qu(this.config.url,this.config.anonKey,this.config.accessToken),this.scopedClient):Zu(this.config.url,this.config.anonKey)}constructor(e){this.config=e}dispose=async()=>{this.scopedClient&&await $u(this.scopedClient)};getConfigurationState(){return ed(this.config)}isConfigured(){return this.getConfigurationState().configured}read=async(e,t={})=>{let{table:n,id:r}=nd(e);if(n)try{if(r){let{data:e,error:t}=await this.client.from(n).select(`*`).eq(this.pk,r).maybeSingle();if(t)throw t;return e?sd(e,this.pk):void 0}let e=this.client.from(n).select(`*`);t.where&&(e=id(e,t.where)),t.order&&(e=ad(e,t.order));let{data:i,error:a}=await e;if(a)throw a;if(!i||i.length===0)return t.toArray?[]:{};let o=i.map((e,t)=>sd(e,this.pk,t));return t.toArray?o:Object.fromEntries(o.map(e=>[String(e[this.pk]??e._key),e]))}catch(e){return rd(`read`,e,t.exception??!1),t.toArray?[]:void 0}};set=async(e,t,n=!1)=>{let{table:r,id:i}=nd(e);if(!r){rd(`set`,`path must include a table name`,n);return}try{let e=od(t,i,this.pk),{error:n}=await this.client.from(r).upsert(e,{onConflict:this.pk});if(n)throw n}catch(e){rd(`set`,e,n)}};update=async(e,t,n=!1)=>{let{table:r,id:i}=nd(e);if(!r){rd(`update`,`path must include a table name`,n);return}try{let{_key:e,_index:n,...a}=t;if(i){let{data:e}=await this.client.from(r).select(`*`).eq(this.pk,i).maybeSingle(),t={...e??{},...a,[this.pk]:i},{error:n}=await this.client.from(r).upsert(t,{onConflict:this.pk});if(n)throw n}else{let{error:e}=await this.client.from(r).insert(a);if(e)throw e}}catch(e){rd(`update`,e,n)}};remove=async(e,t=!1)=>{let{table:n,id:r}=nd(e);if(!n||!r){rd(`remove`,`path must include both table and id`,t);return}try{let{error:e}=await this.client.from(n).delete().eq(this.pk,r);if(e)throw e}catch(e){rd(`remove`,e,t)}};subscribe=(e,t,n={})=>{if(!e)return()=>void 0;let{table:r}=nd(e);if(!r)return()=>void 0;let i=null,a=!0,o=async()=>{if(a)try{let e=this.client.from(r).select(`*`);n.where&&(e=id(e,n.where)),n.order&&(e=ad(e,n.order));let{data:i}=await e;if(!a)return;t((i??[]).map((e,t)=>sd(e,this.pk,t)))}catch{t([])}};o();try{i=this.client.channel(`llmnative:${r}`).on(`postgres_changes`,{event:`*`,schema:`public`,table:r},()=>void o()).subscribe()}catch{}return()=>{a=!1,i&&=(this.client.removeChannel(i).catch(()=>{}),null)}};count=async e=>{let{table:t}=nd(e);if(!t)return 0;try{let{count:e,error:n}=await this.client.from(t).select(`*`,{count:`exact`,head:!0});if(n)throw n;return e??0}catch(e){return console.error(`SupabaseDataProvider.count:`,e),0}};setChunks=async(e,t,n={})=>{let{table:r}=nd(e);if(!r)return;let{chunkSize:i=500,purge:a=!1,onProgress:o}=n,s=Object.entries(t);try{a&&await this.client.from(r).delete().neq(this.pk,`__purge_all__`);for(let e=0;e<s.length;e+=i){let t=s.slice(e,e+i).map(([e,t])=>od(t,e,this.pk)),{error:n}=await this.client.from(r).upsert(t,{onConflict:this.pk});if(n)throw n;o?.(Math.min(e+i,s.length),s.length,`Wrote ${Math.min(e+i,s.length)}/${s.length}`)}}catch(e){throw console.error(`SupabaseDataProvider.setChunks:`,e),e}}},ld={key:`@key`,value:`@value`};function ud(e,t){if(!t)return e;let n=t.split(`.`),r=e;for(let e of n){if(r==null)return;r=r[e]}return r}function dd(e,t){return e===t?0:e==null?-1:t==null?1:typeof e==`number`&&typeof t==`number`?e-t:typeof e==`boolean`&&typeof t==`boolean`?Number(e)-Number(t):globalThis.String(e).localeCompare(globalThis.String(t),void 0,{numeric:!0,sensitivity:`base`})}function fd(e,t){let n=typeof t==`object`&&t&&!Array.isArray(t)?t:{eq:t};for(let[t,r]of Object.entries(n))switch(t){case`eq`:if(e!==r)return!1;break;case`gt`:if(!(e>r))return!1;break;case`gte`:if(!(e>=r))return!1;break;case`lt`:if(!(e<r))return!1;break;case`lte`:if(!(e<=r))return!1;break;case`in`:if(!Array.isArray(r)||!r.includes(e))return!1;break;case`nin`:if(Array.isArray(r)&&r.includes(e))return!1;break;default:return!1}return!0}function pd(e,t,n){let r=Object.entries(n||{}),i=Object.entries(t||{}),a=Object.entries(e);return i.length&&(a=a.filter(([,e])=>i.every(([t,n])=>fd(ud(e,t),n)))),r.length&&a.sort((e,t)=>{for(let[n,i]of r){let r=dd(ud(e[1],n),ud(t[1],n));if(r)return i===`desc`?-r:r}return 0}),Object.fromEntries(a)}function md(e,t){let n=Object.entries(e);if(!t)return n.map(([e,t],n)=>typeof t==`object`&&t?{_index:n,[yr]:e,...t}:{_index:n,[yr]:e,[ld.value]:t});let r=Object.keys(t);return n.map(([e,n],i)=>{let a=typeof n==`object`&&n?{[ld.key]:e,...n}:{[ld.key]:e,[ld.value]:n},o={};for(let i of r){let r=t[i];o[i]=r.includes(`{`)?E.parse(a,r):r===ld.key?e:r===ld.value?n:a[r]}return{[yr]:e,_index:i,...o}})}var hd=class{store={};listeners=new Map;persistKey;constructor(e,t){this.persistKey=t?.persist?t.storageKey??`llmnative:mock`:null;let n=this.persistKey?this.loadStore()??e:e;if(n)for(let[e,t]of Object.entries(n)){let n=e.startsWith(`/`)?e:`/${e}`;this.store[n]={...t}}}loadStore(){if(!this.persistKey||typeof window>`u`)return null;try{let e=window.localStorage.getItem(this.persistKey);if(!e)return null;let t=JSON.parse(e);return typeof t==`object`&&t&&!Array.isArray(t)?t:null}catch{return null}}saveStore(){if(this.persistKey&&typeof window<`u`)try{window.localStorage.setItem(this.persistKey,JSON.stringify(this.store))}catch{}}isConfigured(){return!0}getConfigurationState(){return{configured:!0}}getCollection(e){return this.store[e]||(this.store[e]={}),this.store[e]}resolvePath(e){let t=e.startsWith(`/`)?e:`/${e}`;if(this.store[t])return{collection:t};let n=Object.keys(this.store).filter(e=>t.startsWith(`${e}/`)&&!t.slice(e.length+1).includes(`/`)).sort((e,t)=>t.length-e.length)[0];if(n)return{collection:n,id:t.slice(n.length+1)};let r=t.replace(/^\/+/,``).split(`/`).filter(Boolean);return r.length%2==1?{collection:`/${r.join(`/`)}`}:{collection:`/${r.slice(0,-1).join(`/`)}`,id:r[r.length-1]}}notify(e){this.listeners.get(e)?.forEach(e=>e())}read=async(e,t={})=>{let{collection:n,id:r}=this.resolvePath(e),i=this.getCollection(n);if(r)return i[r]?{...i[r]}:void 0;let a=pd(i,t.where,t.order);return t.toArray?Object.values(a).map(e=>({...e})):Object.fromEntries(Object.entries(a).map(([e,t])=>[e,{...t}]))};set=async(e,t)=>{let{collection:n,id:r}=this.resolvePath(e),i=this.getCollection(n);r?i[r]={...t}:this.store[n]={...t},this.saveStore(),this.notify(n)};update=async(e,t)=>{let{collection:n,id:r}=this.resolvePath(e),i=this.getCollection(n);r?i[r]={...i[r]||{},...t}:this.store[n]={...i,...t},this.saveStore(),this.notify(n)};remove=async e=>{let{collection:t,id:n}=this.resolvePath(e);n?delete this.getCollection(t)[n]:delete this.store[t],this.saveStore(),this.notify(t)};subscribe=(e,t,n)=>{if(!e)return()=>void 0;let r=e.startsWith(`/`)?e:`/${e}`,i=()=>{let e=pd(this.getCollection(r),n?.where,n?.order);t(md(n?.onLoad?n.onLoad(e):e,n?.fieldMap))};return i(),this.listeners.has(r)||this.listeners.set(r,new Set),this.listeners.get(r).add(i),()=>{this.listeners.get(r)?.delete(i)}}};function gd(e,t){let n=e.split(`.`).pop()?.toLowerCase()??``;return(Array.isArray(t)?t.map(e=>e.toLowerCase().replace(/^\./,``)):[t.toLowerCase().replace(/^\./,``)]).includes(n)}function _d(e,t){let n=e;return t.filterByExtension!==void 0&&(n=n.filter(e=>e.isFolder||gd(e.name,t.filterByExtension))),t.limit!==void 0&&t.limit>0&&(n=n.slice(0,t.limit)),n}var vd=e=>e?(0,p.getStorage)((0,l.getApp)(),e):(0,p.getStorage)(),yd=e=>({name:e.name,path:e.fullPath}),bd=async e=>{try{let t=await(0,p.getMetadata)(e);return{name:e.name,path:e.fullPath,size:t.size,contentType:t.contentType,updatedAt:t.updated}}catch{return yd(e)}},xd=class e{static listenerRegistered=!1;defaultBucket;constructor(t={}){this.defaultBucket=t.defaultBucket,!e.listenerRegistered&&typeof pa==`function`&&(e.listenerRegistered=!0,pa(e=>{e.firebase&&Ru(e.firebase)}))}resolveBucket=e=>e??this.defaultBucket;getConfigurationState(){return Pu()}isConfigured(){return this.getConfigurationState().configured}upload=async(e,t,n={})=>{if(e)try{let r=(0,p.ref)(vd(this.resolveBucket(n.bucket)),t);if(typeof e==`string`){let t=await(0,p.uploadString)(r,e,`data_url`);return await(0,p.getDownloadURL)(t.ref)}return await new Promise((t,i)=>{let a=n.contentType?{contentType:n.contentType}:e instanceof File&&e.type?{contentType:e.type}:void 0,o=(0,p.uploadBytesResumable)(r,e,a);n.onProgress&&o.on(`state_changed`,e=>{let t=e.totalBytes>0?Math.round(e.bytesTransferred/e.totalBytes*100):0;n.onProgress(t)}),o.then(async e=>t(await(0,p.getDownloadURL)(e.ref))).catch(i)})}catch(e){console.error(`[FirebaseStorage] upload error:`,e)}};createUpload=(e,t,n={})=>{let r=(0,p.ref)(vd(this.resolveBucket(n.bucket)),t);if(typeof e==`string`){let t=!1;return{url:(async()=>{if(!t)try{let t=await(0,p.uploadString)(r,e,`data_url`);return await(0,p.getDownloadURL)(t.ref)}catch{return}})(),pause:()=>{},resume:()=>{},cancel:()=>{t=!0}}}let i=n.contentType?{contentType:n.contentType}:e instanceof File&&e.type?{contentType:e.type}:void 0,a=(0,p.uploadBytesResumable)(r,e,i);return n.onProgress&&a.on(`state_changed`,e=>{let t=e.totalBytes>0?Math.round(e.bytesTransferred/e.totalBytes*100):0;n.onProgress(t)}),{url:(async()=>{try{return await(0,p.getDownloadURL)((await a).ref)}catch{return}})(),pause:()=>{a.pause()},resume:()=>{a.resume()},cancel:()=>{a.cancel()}}};rename=async(e,t,n={})=>await this.move(e,t,n)>0;move=async(e,t,n={})=>{if(n.recursive){let r=await this.list(e,{bucket:n.bucket,recursive:!0}),i=e.endsWith(`/`)?e:`${e}/`;return(await Promise.all(r.map(async r=>{let a=`${t}/${r.path.startsWith(i)?r.path.slice(i.length):r.path.slice(e.length)}`;return this._moveFile(r.path,a,n)}))).filter(Boolean).length}return+!!await this._moveFile(e,t,n)};_moveFile=async(e,t,n)=>{try{let r=await this.download(e,n);if(!r)return!1;let i=await this.getFileInfo(e,n);return await this.upload(r,t,{bucket:n.destBucket??n.bucket,contentType:i?.contentType})?(await this.delete(e,{bucket:n.bucket}),!0):!1}catch(n){return console.error(`[FirebaseStorage] move error ${e} → ${t}:`,n),!1}};getURL=async(e,t={})=>{try{return await(0,p.getDownloadURL)((0,p.ref)(vd(this.resolveBucket(t.bucket)),e))}catch(t){console.error(`[FirebaseStorage] getURL error for ${e}:`,t)}};getFileInfo=async(e,t={})=>{try{let n=(0,p.ref)(vd(this.resolveBucket(t.bucket)),e),r=await(0,p.getMetadata)(n);return{name:n.name,path:n.fullPath,size:r.size,contentType:r.contentType,updatedAt:r.updated}}catch(t){if(t.code===`storage/object-not-found`)return;console.error(`[FirebaseStorage] getFileInfo error for ${e}:`,t);return}};download=async(e,t={})=>{let n=await this.getURL(e,t);if(n)try{let e=await fetch(n);if(!e.ok)throw Error(`HTTP ${e.status}`);return await e.blob()}catch(t){console.error(`[FirebaseStorage] download error for ${e}:`,t)}};delete=async(e,t={})=>{if(t.recursive)return this._deleteFolder(e,t);try{return await(0,p.deleteObject)((0,p.ref)(vd(this.resolveBucket(t.bucket)),e)),1}catch(t){return t.code===`storage/object-not-found`||console.error(`[FirebaseStorage] delete error for ${e}:`,t),0}};_deleteFolder=async(e,t)=>{try{let n=(0,p.ref)(vd(this.resolveBucket(t.bucket)),e),{items:r,prefixes:i}=await(0,p.listAll)(n),a=0;await Promise.all(r.map(async e=>{try{await(0,p.deleteObject)(e),a++}catch(t){t.code!==`storage/object-not-found`&&console.error(`[FirebaseStorage] delete failed for ${e.fullPath}:`,t)}}));let o=await Promise.all(i.map(e=>this._deleteFolder(e.fullPath,t)));return a+o.reduce((e,t)=>e+t,0)}catch(t){return console.error(`[FirebaseStorage] deleteFolder error for ${e}:`,t),0}};list=async(e,t={})=>_d(await this._listLevel(e,t),t);_listLevel=async(e,t)=>{let n=t.includeFiles!==!1,r=t.includeFolders===!0;try{let i=(0,p.ref)(vd(this.resolveBucket(t.bucket)),e),{items:a,prefixes:o}=await(0,p.listAll)(i),s=n?t.metadata?await Promise.all(a.map(bd)):a.map(yd):[],c=r?o.map(e=>({name:e.name,path:e.fullPath,isFolder:!0})):[],l=[...s,...c];if(!t.recursive||o.length===0)return l;let u=await Promise.all(o.map(e=>this._listLevel(e.fullPath,t)));return[...l,...u.flat()]}catch(t){return console.error(`[FirebaseStorage] list error for ${e}:`,t),[]}}};new xd;var Sd=class{config;constructor(e){this.config=e}getConfigurationState(){return Vn(`SupabaseStorageProvider`,Bn(this.config,[`url`,`anonKey`],`supabase.`))}isConfigured(){return this.getConfigurationState().configured}resolveBucket(e){return e??this.config.bucket??`public`}authHeaders(){return{apikey:this.config.anonKey,Authorization:`Bearer ${this.config.accessToken??this.config.anonKey}`}}upload=async(e,t,n={})=>{let r=this.resolveBucket(n.bucket),i,a=n.contentType;if(typeof e==`string`){let[t,n]=e.split(`,`);a??=t.match(/:(.*?);/)?.[1];let r=atob(n),o=new Uint8Array(r.length);for(let e=0;e<r.length;e++)o[e]=r.charCodeAt(e);i=new Blob([o],a?{type:a}:void 0)}else i=e,e instanceof File&&(a??=e.type||void 0);let o=await fetch(`${this.config.url}/storage/v1/object/${r}/${t}`,{method:`POST`,headers:{...this.authHeaders(),...a?{"Content-Type":a}:{}},body:i});if(!o.ok){console.error(`[SupabaseStorage] upload error:`,await o.text());return}return this.getURL(t,{bucket:r})};createUpload=(e,t,n={})=>{let r=new AbortController,i=this.resolveBucket(n.bucket);return{url:(async()=>{let a,o=n.contentType;if(typeof e==`string`){let[t,n]=e.split(`,`);o??=t.match(/:(.*?);/)?.[1];let r=atob(n),i=new Uint8Array(r.length);for(let e=0;e<r.length;e++)i[e]=r.charCodeAt(e);a=new Blob([i],o?{type:o}:void 0)}else a=e,e instanceof File&&(o??=e.type||void 0);try{return(await fetch(`${this.config.url}/storage/v1/object/${i}/${t}`,{method:`POST`,headers:{...this.authHeaders(),...o?{"Content-Type":o}:{}},body:a,signal:r.signal})).ok?this.getURL(t,{bucket:i}):void 0}catch{return}})(),pause:()=>{},resume:()=>{},cancel:()=>r.abort()}};rename=async(e,t,n={})=>await this.move(e,t,n)>0;move=async(e,t,n={})=>{if(n.recursive){let r=await this.list(e,{bucket:n.bucket,recursive:!0}),i=e.endsWith(`/`)?e:`${e}/`;return(await Promise.all(r.map(async r=>{let a=`${t}/${r.path.startsWith(i)?r.path.slice(i.length):r.path.slice(e.length)}`;return this._moveFile(r.path,a,n)}))).filter(Boolean).length}return+!!await this._moveFile(e,t,n)};_moveFile=async(e,t,n)=>{let r=this.resolveBucket(n.bucket),i=this.resolveBucket(n.destBucket??n.bucket);try{return(await fetch(`${this.config.url}/storage/v1/object/move`,{method:`POST`,headers:{...this.authHeaders(),"Content-Type":`application/json`},body:JSON.stringify({bucketId:r,sourceKey:e,destinationBucket:i,destinationKey:t})})).ok}catch(n){return console.error(`[SupabaseStorage] move error ${e} → ${t}:`,n),!1}};getURL=async(e,t={})=>{let n=this.resolveBucket(t.bucket);return`${this.config.url}/storage/v1/object/public/${n}/${e}`};getFileInfo=async(e,t={})=>{let n=e.split(`/`),r=n.pop(),i=n.join(`/`);return(await this.list(i,{...t,metadata:!0})).find(e=>e.name===r)};download=async(e,t={})=>{let n=await this.getURL(e,t);if(n)try{let e=await fetch(n);if(!e.ok)throw Error(`HTTP ${e.status}`);return await e.blob()}catch(t){console.error(`[SupabaseStorage] download error for ${e}:`,t)}};delete=async(e,t={})=>{let n=this.resolveBucket(t.bucket),r;if(t.recursive){let n=await this.list(e,{...t,recursive:!0});if(n.length===0)return 0;r=n.map(e=>e.path)}else r=[e];try{let e=await fetch(`${this.config.url}/storage/v1/object/${n}`,{method:`DELETE`,headers:{...this.authHeaders(),"Content-Type":`application/json`},body:JSON.stringify({prefixes:r})});return e.status===404?0:e.ok?r.length:(console.error(`[SupabaseStorage] delete error:`,await e.text()),0)}catch(t){return console.error(`[SupabaseStorage] delete error for ${e}:`,t),0}};list=async(e,t={})=>_d(await this._listLevel(e,t),t);_listLevel=async(e,t)=>{let n=t.includeFiles!==!1,r=t.includeFolders===!0,i=this.resolveBucket(t.bucket);try{let a=await fetch(`${this.config.url}/storage/v1/object/list/${i}`,{method:`POST`,headers:{...this.authHeaders(),"Content-Type":`application/json`},body:JSON.stringify({prefix:e,limit:1e3,offset:0})});if(!a.ok)return console.error(`[SupabaseStorage] list error:`,await a.text()),[];let o=await a.json(),s=o.filter(e=>e.id!==null&&e.name&&!e.name.endsWith(`/`)),c=o.filter(e=>e.id===null&&e.name),l=n?s.map(t=>({name:t.name??``,path:e?`${e}/${t.name}`:t.name??``,size:t.metadata?.size,contentType:t.metadata?.mimetype,updatedAt:t.updated_at})):[],u=r?c.map(t=>({name:t.name??``,path:e?`${e}/${t.name}`:t.name??``,isFolder:!0})):[],d=[...l,...u];if(!t.recursive||c.length===0)return d;let f=await Promise.all(c.map(n=>this._listLevel(e?`${e}/${n.name}`:n.name??``,t)));return[...d,...f.flat()]}catch(t){return console.error(`[SupabaseStorage] list error for ${e}:`,t),[]}}},Cd={},wd=(e,t,n)=>{(Cd[e]??={})[t]=n},Td=e=>typeof e.credential?.token==`string`?e.credential.token:void 0,Ed=async e=>{await Ru(e.publicConfig),e.credential?.type===`firebaseCustomToken`&&await Lu(e.credential.token)},Dd=`(default)`;wd(`data`,`mock`,e=>new hd(e.publicConfig.seed,{persist:!1})),wd(`data`,`firebase`,async e=>(await Ed(e),new Yu({databaseId:Dd}))),wd(`data`,`supabase`,e=>new cd({url:e.publicConfig.url,anonKey:e.publicConfig.anonKey,accessToken:Td(e)})),wd(`storage`,`firebase`,async e=>(await Ed(e),new xd)),wd(`storage`,`supabase`,e=>new Sd({url:e.publicConfig.url,anonKey:e.publicConfig.anonKey,accessToken:Td(e)}));var Od=new WeakMap,kd=e=>{let t=Od.get(e);if(t)return t;let n={sequence:0,queue:Promise.resolve(),pending:new Map};return Od.set(e,n),n},Ad=()=>{let e=Eu();return{switchSession:(0,n.useCallback)((t,n)=>{let r=n?.sessionKey,i=kd(e);if(r){let e=i.pending.get(r);if(e?.sequence===i.sequence)return e.promise;if(i.activeKey===r&&i.pending.size===0)return Promise.resolve(i.activeResult??{applied:[],skipped:[]})}let a=async()=>{let r;if(typeof t==`function`)r=await t();else{let e=await fetch(t,n?.fetchOptions);if(!e.ok)throw Error(`Provider session request failed: ${e.status} ${e.statusText}`);r=await e.json()}n?.onResponse&&(r=await n.onResponse(r));let i={applied:[],skipped:[]};for(let[t,n]of Object.entries(r.providers)){let r=Cd[t]?.[n.type];if(!r){console.warn(`ProviderSession: no factory registered for category "${t}" type "${n.type}" — discarding. Register one with registerProviderSessionFactory().`),i.skipped.push({category:t,type:n.type});continue}let a=await r(n);await e(t,`custom`,a),i.applied.push(t)}return i};if(!r)return a();let o=++i.sequence,s=i.queue.then(a,a);return i.queue=s.then(()=>void 0,()=>void 0),i.pending.set(r,{sequence:o,promise:s}),s.then(e=>{i.activeKey=r,i.activeResult=e}).finally(()=>{i.pending.get(r)?.promise===s&&i.pending.delete(r)}),s},[e]),setProvider:e}};function jd(e,t){return e?typeof e==`string`?n.default.createElement(Q,{name:e,size:15,className:t}):e:null}function Md({items:e,itemsLoading:t=!1,activeId:r=null,onSelect:i=void 0,onError:a=void 0,onResponse:o=void 0,endpoint:s,authorization:c=void 0,requestBody:l=void 0,method:u=`POST`,icon:d=`layers`,caption:f=void 0,listLabel:p=void 0,placeholder:m=void 0,disabled:h=!1,open:g=void 0,onOpenChange:_=void 0,footer:v=void 0,before:y=void 0,after:b=void 0,wrapperClassName:x=void 0,className:S=void 0,triggerClassName:C=void 0,listClassName:w=void 0,itemClassName:T=void 0}){let E=q(`providerSwitcher`),D=Y(`select`),{switchSession:O}=Ad(),k=Ln(),[A,j]=(0,n.useState)(!1),[M,N]=(0,n.useState)(null),P=e.find(e=>e.id===r)??null,F=g??A,I=_??j,L=M!==null||t,R=(0,n.useRef)(null),z=async()=>c?typeof c==`function`?c():c:k.getAccessToken?.(),B=async e=>{if(R.current!==e.id){N(e.id);try{if(typeof s==`function`)await O(()=>s(e.id),{onResponse:o,sessionKey:e.id});else{let t=await z();await O(s,{onResponse:o,sessionKey:e.id,fetchOptions:{method:u,headers:{"Content-Type":`application/json`,...t?{Authorization:`Bearer ${t}`}:{}},body:JSON.stringify(l?l(e.id):{id:e.id})}})}R.current=e.id,i?.(e.id)}catch(t){a?.(e.id,t)}finally{N(null)}}},ee=e=>{I(!1),B(e)};return(0,n.useEffect)(()=>{if(!r||r===R.current)return;let t=e.find(e=>e.id===r);t&&B(t)},[r]),n.default.createElement(n.default.Fragment,null,y,n.default.createElement(Ya,{open:F,onOpenChange:I,placement:`auto`,wrapperClassName:X(E.ProviderSwitcher.wrapperClassName,x),className:X(E.ProviderSwitcher.className,S),triggerClassName:X(E.ProviderSwitcher.triggerClassName,(h||L)&&E.ProviderSwitcher.disabledClassName,C),footer:v,trigger:n.default.createElement(`span`,{className:`flex w-full min-w-0 items-center gap-2.5`},n.default.createElement(`span`,{className:X(E.ProviderSwitcher.iconWrapperClassName)},jd(P?.icon??d)),n.default.createElement(`span`,{className:`min-w-0 flex-1 pr-2`},n.default.createElement(`span`,{className:X(E.ProviderSwitcher.labelClassName)},P?.label??(t?D.loading:m??D.placeholder)),f?n.default.createElement(`span`,{className:X(E.ProviderSwitcher.captionClassName)},f):null),n.default.createElement(Q,{name:L?`loader-2`:`chevrons-up-down`,size:12,className:X(E.ProviderSwitcher.chevronClassName,L&&`animate-spin`)}))},p??f?n.default.createElement($a,null,p??f):null,e.map(e=>n.default.createElement(Qa,{key:e.id,onClick:h||L?void 0:()=>ee(e),className:X(E.ProviderSwitcher.itemClassName,e.id===r?E.ProviderSwitcher.itemActiveClassName:E.ProviderSwitcher.itemInactiveClassName,T,w)},n.default.createElement(`span`,{className:`flex w-full min-w-0 items-center gap-2`},n.default.createElement(`span`,{className:X(`w-3.5 shrink-0`,E.ProviderSwitcher.checkClassName)},e.id===r?n.default.createElement(Q,{name:`check`,size:13}):null),n.default.createElement(`span`,{className:`flex-1 truncate`},e.label),e.meta?n.default.createElement(`span`,{className:X(`shrink-0`,E.ProviderSwitcher.itemMetaClassName)},e.meta):null)))),b)}var Nd={1:`grid-cols-1`,2:`grid-cols-1 sm:grid-cols-2`,3:`grid-cols-1 sm:grid-cols-2 lg:grid-cols-3`,4:`grid-cols-1 sm:grid-cols-2 lg:grid-cols-4`,5:`grid-cols-1 sm:grid-cols-3 lg:grid-cols-5`,6:`grid-cols-1 sm:grid-cols-3 lg:grid-cols-6`},Pd=e=>e==null||e===``;function Fd({items:e,layout:t=`horizontal`,columns:r=1,labelWidth:i=`12rem`,emptyValue:a=`—`,truncate:o=!1,wrapperClassName:s=void 0,className:c=void 0,itemClassName:l=void 0,labelClassName:u=void 0,valueClassName:d=void 0}){let f=q(`descriptionList`).DescriptionList,p=t===`horizontal`,m=n.default.createElement(`dl`,{className:X(`grid`,p?`gap-y-3`:X(`gap-x-8 gap-y-4`,Nd[r]),c||f?.className),"data-layout":t},e.map((e,t)=>{let r=Pd(e.value),s=e.title??(o&&typeof e.value==`string`?e.value:void 0),c=e.key??(typeof e.label==`string`?e.label:String(t));return n.default.createElement(`div`,{key:c,className:X(`min-w-0`,p&&`grid gap-1 sm:grid-cols-[var(--rf-dl-label-width)_minmax(0,1fr)] sm:gap-4`,l||f?.itemClassName),style:p?{"--rf-dl-label-width":i}:void 0},n.default.createElement(`dt`,{className:X(p?`text-sm text-muted-foreground`:`text-[10px] font-medium uppercase tracking-widest text-muted-foreground`,u||f?.labelClassName)},e.label),n.default.createElement(`dd`,{className:X(`m-0 text-sm font-medium`,r?`text-muted-foreground`:`text-foreground`,!p&&`mt-1`,o?`truncate`:`break-words`,d||f?.valueClassName),title:s},r?a:e.value))}));return s||f?.wrapperClassName?n.default.createElement(`div`,{className:X(s||f?.wrapperClassName)},m):m}var Id=e=>!!e.children?.length;function Ld(e){return e.flatMap(e=>Id(e)?[e.id,...Ld(e.children)]:[])}function Rd(e,t,n=1,r){return e.flatMap(e=>[{node:e,level:n,parent:r},...Id(e)&&t.has(e.id)?Rd(e.children,t,n+1,e):[]])}function zd({nodes:e,selectedId:t=void 0,defaultSelectedId:r=null,onSelect:i=void 0,expanded:a=void 0,defaultExpanded:o=void 0,onExpandedChange:s=void 0,selectableBranches:c=!1,ariaLabel:l=void 0,wrapperClassName:u=void 0,className:d=void 0,itemClassName:f=void 0,selectedClassName:p=void 0}){let m=q(`tree`).Tree,[h,g]=(0,n.useState)(()=>o===!0?Ld(e):[...o??[]]),[_,v]=(0,n.useState)(r),y=(0,n.useMemo)(()=>new Set(a??h),[a,h]),b=t===void 0?_:t,x=(0,n.useMemo)(()=>Rd(e,y),[e,y]),[S,C]=(0,n.useState)(null),w=(0,n.useRef)(new Map),T=x.find(e=>e.node.id===S)?.node.id??x.find(e=>e.node.id===b)?.node.id??x[0]?.node.id,E=(e,t)=>{let n=t?[...y,e]:[...y].filter(t=>t!==e);a===void 0&&g(n),s?.(n)},D=e=>{e.disabled||(t===void 0&&v(e.id),i?.(e))},O=e=>{e&&(C(e),w.current.get(e)?.focus())},k=e=>{Id(e)?(E(e.id,!y.has(e.id)),c&&D(e)):D(e)},A=(e,t)=>{let n=x.findIndex(e=>e.node.id===t.node.id),r=Id(t.node);switch(e.key){case`ArrowDown`:O(x[n+1]?.node.id);break;case`ArrowUp`:O(x[n-1]?.node.id);break;case`Home`:O(x[0]?.node.id);break;case`End`:O(x[x.length-1]?.node.id);break;case`ArrowRight`:r&&!y.has(t.node.id)?E(t.node.id,!0):r&&O(t.node.children[0]?.id);break;case`ArrowLeft`:r&&y.has(t.node.id)?E(t.node.id,!1):O(t.parent?.id);break;case`Enter`:case` `:k(t.node);break;default:return}e.preventDefault()},j=(e,t,r)=>e.map(e=>{let i=Id(e),a=i&&y.has(e.id),o=b===e.id,s={node:e,level:t,parent:r};return n.default.createElement(`div`,{key:e.id,role:`none`},n.default.createElement(`div`,{ref:t=>{t?w.current.set(e.id,t):w.current.delete(e.id)},role:`treeitem`,"aria-level":t,"aria-expanded":i?a:void 0,"aria-selected":!i||c?o:void 0,"aria-disabled":e.disabled||void 0,tabIndex:e.id===T?0:-1,"data-selected":o||void 0,className:X(`flex cursor-pointer select-none items-center gap-1.5 rounded-md py-1 pe-2 text-sm outline-none`,`hover:bg-muted focus-visible:ring-2 focus-visible:ring-ring`,e.disabled&&`cursor-not-allowed opacity-50`,f||m?.itemClassName,o&&X(`bg-primary/10 font-medium text-primary`,p||m?.selectedClassName)),style:{paddingInlineStart:`${(t-1)*1+.25}rem`},onClick:()=>{C(e.id),k(e)},onKeyDown:e=>A(e,s)},n.default.createElement(`span`,{className:`inline-flex w-4 shrink-0 justify-center text-muted-foreground`},i&&n.default.createElement(Q,{name:a?`chevron-down`:`chevron-right`,size:14})),n.default.createElement(Q,{name:e.icon??(i?a?`folder-open`:`folder`:`file`),size:16,className:`shrink-0 text-muted-foreground`}),n.default.createElement(`span`,{className:`min-w-0 truncate`},e.label),e.description&&n.default.createElement(`span`,{className:`min-w-0 truncate text-xs font-normal text-muted-foreground`},e.description),e.badge&&n.default.createElement(`span`,{className:`ms-auto shrink-0`},e.badge)),a&&n.default.createElement(`div`,{role:`group`},j(e.children,t+1,e)))}),M=n.default.createElement(`div`,{role:`tree`,"aria-label":l,className:X(`space-y-0.5`,d||m?.className)},j(e,1));return u||m?.wrapperClassName?n.default.createElement(`div`,{className:u||m?.wrapperClassName},M):M}function Bd(e,t){let n={node:{id:``,label:``},folders:new Map,files:[]};for(let r of e){let e=r.split(`/`).filter(Boolean),i=n;e.slice(0,-1).forEach((t,n)=>{let r=`${e.slice(0,n+1).join(`/`)}/`;i.folders.has(t)||i.folders.set(t,{node:{id:r,label:t},folders:new Map,files:[]}),i=i.folders.get(t)}),i.files.push({id:r,label:e[e.length-1]??r,...t?.(r)})}let r=e=>[...[...e.folders.entries()].sort(([e],[t])=>e.localeCompare(t)).map(([,e])=>({...e.node,children:r(e)})),...e.files.sort((e,t)=>e.id.localeCompare(t.id))];return r(n)}var Vd={markup:()=>import(`prismjs/components/prism-markup`),html:()=>import(`prismjs/components/prism-markup`),xml:()=>import(`prismjs/components/prism-markup`),svg:()=>import(`prismjs/components/prism-markup`),mathml:()=>import(`prismjs/components/prism-markup`),css:()=>import(`prismjs/components/prism-css`),clike:()=>import(`prismjs/components/prism-clike`),javascript:()=>import(`prismjs/components/prism-javascript`),js:()=>import(`prismjs/components/prism-javascript`),jsx:()=>import(`prismjs/components/prism-jsx`),typescript:()=>import(`prismjs/components/prism-typescript`),tsx:()=>import(`prismjs/components/prism-tsx`),json:()=>import(`prismjs/components/prism-json`),bash:()=>import(`prismjs/components/prism-bash`),shell:()=>import(`prismjs/components/prism-bash`),python:()=>import(`prismjs/components/prism-python`),java:()=>import(`prismjs/components/prism-java`),c:()=>import(`prismjs/components/prism-c`),cpp:()=>import(`prismjs/components/prism-cpp`),csharp:()=>import(`prismjs/components/prism-csharp`),go:()=>import(`prismjs/components/prism-go`),sql:()=>import(`prismjs/components/prism-sql`),php:()=>import(`prismjs/components/prism-php`),ruby:()=>import(`prismjs/components/prism-ruby`),yaml:()=>import(`prismjs/components/prism-yaml`),ini:()=>import(`prismjs/components/prism-ini`),docker:()=>import(`prismjs/components/prism-docker`),powershell:()=>import(`prismjs/components/prism-powershell`),git:()=>import(`prismjs/components/prism-git`),graphql:()=>import(`prismjs/components/prism-graphql`)},Hd={html:[`markup`],xml:[`markup`],svg:[`markup`],mathml:[`markup`],javascript:[`clike`],js:[`clike`,`javascript`],jsx:[`markup`,`clike`,`javascript`],typescript:[`clike`,`javascript`],tsx:[`markup`,`clike`,`javascript`,`jsx`,`typescript`],c:[`clike`],cpp:[`c`],csharp:[`clike`],java:[`clike`],php:[`markup`]},Ud={ts:`typescript`,py:`python`,sh:`bash`,zsh:`bash`,console:`bash`,yml:`yaml`,dockerfile:`docker`,ps1:`powershell`,"c++":`cpp`,cs:`csharp`,"c#":`csharp`,golang:`go`,rb:`ruby`,gql:`graphql`,toml:`ini`,diff:`git`};function Wd(e){if(!e)return;let t=e.toLowerCase(),n=Ud[t]??t;return n in Vd?n:void 0}async function Gd(e,t=new Set){if(!t.has(e)){for(let n of Hd[e]??[])n in Vd&&await Gd(n,t);await Vd[e]?.(),t.add(e)}}async function Kd(){let e=window;e.Prism?.highlightElement||(e.Prism={...e.Prism??{},manual:!0});let t=(await import(`prismjs`)).default;return e.Prism=t,t}var qd=!1;async function Jd(){qd||(qd=!0,await Promise.resolve().then(()=>require("./prism-themes-BvRk9kiK.js")))}async function Yd(e,t){let n=Wd(t);if(!n)return null;try{let t=await Kd();await Gd(n);let r=t.languages[n];return r?t.highlight(e,r,n):null}catch{return null}}var Xd={prism:`rf-code-theme-prism`,dark:`rf-code-theme-dark`,coy:`rf-code-theme-coy`,funky:`rf-code-theme-funky`,okaidia:`rf-code-theme-okaidia`,solarizedlight:`rf-code-theme-solarizedlight`,tomorrow:`rf-code-theme-tomorrow`,twilight:`rf-code-theme-twilight`},Zd={primary:`bg-primary text-primary-foreground`,secondary:`bg-secondary text-secondary-foreground`,success:`bg-success text-success-foreground`,danger:`bg-destructive text-destructive-foreground`,warning:`bg-warning text-warning-foreground`,info:`bg-info text-info-foreground`,light:`bg-muted text-muted-foreground`,dark:`bg-foreground text-background`,white:`bg-white text-slate-950`,black:`bg-black text-white`,transparent:`bg-transparent`,default:void 0};function Qd(e,t){return typeof t==`string`&&t in e}var $d=({language:e,children:t,before:r,after:i,wrapperClassName:a,className:o,showCopy:s=!0,theme:c=`tomorrow`,background:l=`default`})=>{let u=(0,n.useRef)(null),d=q(`code`),f=Y(`code`),p=typeof t==`string`?t:String(t??``),m=Qd(Vd,e)?e:`tsx`,h=Qd(Xd,c)?c:`tomorrow`,g=Qd(Zd,l)?l:`transparent`;return(0,n.useEffect)(()=>{let e=!1;return(async()=>{await Jd();let t;try{t=await Kd()}catch(e){console.warn(`Errore nel caricare Prism core`,e);return}try{await Gd(m)}catch(e){console.warn(`Errore nel caricare il linguaggio Prism "${m}"`,e)}if(!e&&u.current)try{t.highlightElement(u.current)}catch(e){console.warn(`Errore nell'evidenziare il blocco Prism "${m}"`,e)}})(),()=>{e=!0}},[p,m]),n.default.createElement(Z,{className:a||d.Code.wrapperClassName},n.default.createElement(`div`,{className:X(`flex w-full items-stretch gap-2`,(r||i)&&`overflow-x-auto`)},r&&n.default.createElement(`div`,{className:`flex shrink-0 items-center text-sm text-muted-foreground`},r),n.default.createElement(`pre`,{"data-rf-code-theme":h,"data-rf-code-background":g,className:X(`relative min-w-0 flex-1 overflow-auto rounded-md border border-border p-4 text-sm`,Xd[h],Zd[g],o||d.Code.className)},s&&n.default.createElement(`button`,{onClick:()=>A(p),className:`absolute right-2 top-2 inline-flex items-center justify-center rounded-md bg-secondary px-2 py-1 text-xs font-medium text-secondary-foreground transition-colors hover:bg-secondary/80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,title:f.copyCode,"aria-label":f.copyCode},n.default.createElement(Q,{name:`clipboard`,size:14})),n.default.createElement(`code`,{ref:u,className:`language-${m}`},p)),i&&n.default.createElement(`div`,{className:`flex shrink-0 items-center text-sm text-muted-foreground`},i)))};function ef(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function tf(e){let t=e;return()=>{t=t+1831565813>>>0;let e=t;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}}function nf(e){let t=tf(ef(e)),n=[];for(let e=0;e<5;e++)for(let r=0;r<3;r++)t()<.5||(n.push([e,r]),r<2&&n.push([e,4-r]));return n.length||n.push([2,2]),{cells:n,hue:Math.floor(t()*360)}}var rf=({value:e,size:t=40,title:r=void 0,before:i=void 0,after:a=void 0,wrapperClassName:o=void 0,className:s=void 0})=>{let c=q(`identicon`),{cells:l,hue:u}=nf(e),d=`hsl(${u} 55% 52%)`,f=n.default.createElement(`svg`,{width:t,height:t,viewBox:`-0.5 -0.5 6 6`,shapeRendering:`crispEdges`,className:X(`shrink-0`,s||c.Identicon?.className||`rounded-md bg-muted`),...r?{role:`img`,"aria-label":r}:{"aria-hidden":!0}},r&&n.default.createElement(`title`,null,r),l.map(([e,t])=>n.default.createElement(`rect`,{key:`${e}-${t}`,x:t,y:e,width:1,height:1,fill:d})));return!i&&!a?f:n.default.createElement(`div`,{className:X(`flex items-center gap-3`,o||c.Identicon?.wrapperClassName)},i&&n.default.createElement(`div`,{className:`shrink-0 self-center`},i),f,a&&n.default.createElement(`div`,{className:`min-w-0 self-center`},a))};function af(e,t=1){return typeof e==`string`&&e.startsWith(`--`)?e:`--rf-chart-${(Math.max(1,Math.round(typeof e==`number`?e:t))-1)%8+1}`}var of=(e,t)=>t===void 0?`hsl(var(${e}))`:`hsl(var(${e}) / ${t})`,sf=`hsl(var(--rf-muted-foreground))`,cf=`hsl(var(--rf-border))`;function lf(e){if(!(e>0))return 1;let t=10**Math.floor(Math.log10(e)),n=e/t;return(n<=1?1:n<=2?2:n<=2.5?2.5:n<=5?5:10)*t}function uf(e,t,n=4){return Array.from({length:n+1},(r,i)=>e+(t-e)*i/n)}function df(e){let{locale:t}=ht(),[r]=(0,n.useState)(()=>new Intl.NumberFormat(t,{maximumFractionDigits:2}));return e??(e=>r.format(e))}var ff=()=>typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches===!0,pf=e=>1-(1-e)**3;function mf(e,t=600,r=15){let[i,a]=(0,n.useState)(()=>ff()?[...e]:e.map(()=>0)),o=(0,n.useRef)(i),s=e.join(`|`);return(0,n.useEffect)(()=>{let n=o.current.length===e.length?o.current:e.map(()=>0);if(ff()||typeof requestAnimationFrame>`u`){o.current=[...e],a([...e]);return}let i=performance.now(),s=t+r*Math.max(0,e.length-1),c=0,l=u=>{let d=e.map((e,a)=>{let o=Math.min(1,Math.max(0,(u-i-a*r)/t));return(n[a]??0)+(e-(n[a]??0))*pf(o)});o.current=d,a(d),u-i<s&&(c=requestAnimationFrame(l))};return c=requestAnimationFrame(l),()=>cancelAnimationFrame(c)},[s,t,r]),i}function hf(e,t=700,r=0){let[i,a]=(0,n.useState)(()=>+!!ff());return(0,n.useEffect)(()=>{if(ff()||typeof requestAnimationFrame>`u`){a(1);return}let e=performance.now()+r,n=0,i=r=>{let o=Math.min(1,Math.max(0,(r-e)/t));a(pf(o)),o<1&&(n=requestAnimationFrame(i))};return a(0),n=requestAnimationFrame(i),()=>cancelAnimationFrame(n)},[e,t,r]),i}var gf=typeof window>`u`?n.useEffect:n.useLayoutEffect;function _f(e){let t=(0,n.useRef)(null),[r,i]=(0,n.useState)(e);return gf(()=>{let e=t.current;if(!e)return;let n=()=>{let t=Math.round(e.getBoundingClientRect().width);t>0&&i(t)};if(n(),typeof ResizeObserver>`u`)return;let r=new ResizeObserver(n);return r.observe(e),()=>r.disconnect()},[]),[t,r]}function vf({items:e}){return e.length===0?null:n.default.createElement(`figcaption`,{className:`flex flex-wrap gap-x-4 gap-y-1 text-xs text-muted-foreground`},e.map(e=>n.default.createElement(`span`,{key:e.label,className:`inline-flex items-center gap-1.5`},e.shape===`dashed`?n.default.createElement(`span`,{"aria-hidden":`true`,className:`inline-block w-4 border-t-2 border-dashed`,style:{borderColor:of(e.token)}}):n.default.createElement(`span`,{"aria-hidden":`true`,className:e.shape===`line`?`inline-block h-0.5 w-4 rounded`:e.shape===`dot`?`inline-block size-2.5 rounded-full`:`inline-block size-2.5 rounded-sm`,style:{background:of(e.token)}}),e.label)))}function yf(){let[e,t]=(0,n.useState)(null);return{show:(0,n.useCallback)((e,n,r)=>{t({x:e.clientX,y:e.clientY,title:n,rows:r})},[]),showAt:(0,n.useCallback)((e,n,r)=>{let i=e.currentTarget.getBoundingClientRect();t({x:i.left+i.width/2,y:i.top,title:n,rows:r})},[]),hide:(0,n.useCallback)(()=>t(null),[]),element:e&&typeof document<`u`?(0,c.createPortal)(n.default.createElement(`div`,{role:`tooltip`,className:`pointer-events-none fixed z-[100] min-w-40 rounded-md border border-border bg-popover px-3 py-2 text-xs text-popover-foreground shadow-lg`,style:{left:Math.max(8,Math.min(e.x+14,window.innerWidth-240)),top:Math.max(8,Math.min(e.y+14,window.innerHeight-40-e.rows.length*20))}},n.default.createElement(`div`,{className:`mb-1 font-semibold text-foreground`},e.title),e.rows.map(e=>n.default.createElement(`div`,{key:e.label,className:`flex items-center justify-between gap-4`},n.default.createElement(`span`,{className:`inline-flex items-center gap-1.5 text-muted-foreground`},e.token&&n.default.createElement(`span`,{"aria-hidden":`true`,className:`inline-block size-2 rounded-sm`,style:{background:of(e.token)}}),e.label),n.default.createElement(`span`,{className:`font-medium tabular-nums text-foreground`},e.value)))),document.body):null}}function bf({caption:e,columns:t,rows:r}){let{dict:i}=ht();return r.length===0?null:n.default.createElement(`table`,{className:`sr-only`},n.default.createElement(`caption`,null,`${i.charts.dataTable}: ${e}`),n.default.createElement(`thead`,null,n.default.createElement(`tr`,null,n.default.createElement(`th`,{scope:`col`}),t.map(e=>n.default.createElement(`th`,{key:e,scope:`col`},e)))),n.default.createElement(`tbody`,null,r.map((e,t)=>n.default.createElement(`tr`,{key:`${e.label}-${t}`},n.default.createElement(`th`,{scope:`row`},e.label),e.values.map((e,t)=>n.default.createElement(`td`,{key:t},e))))))}function xf({height:e}){let{dict:t}=ht();return n.default.createElement(`div`,{className:`flex items-center justify-center text-sm text-muted-foreground`,style:{height:e}},t.charts.noData)}function Sf(e,t,n,r){return{onPointerMove:r=>e.show(r,t,n),onPointerLeave:e.hide,...r?{tabIndex:0,role:`img`,"aria-label":`${t}: ${n.map(e=>`${e.label} ${e.value}`).join(`, `)}`,onFocus:r=>e.showAt(r,t,n),onBlur:e.hide,className:`outline-none focus-visible:stroke-ring focus-visible:[stroke-width:2]`}:{}}}function Cf({columns:e,ariaLabel:t,color:r,format:i,markers:a=[],axisLabel:o,showValues:s=!0,height:c=250,className:l,onColumnClick:u}){let d=df(i),f=yf(),[p,m]=_f(520),h=mf(e.map(e=>e.value),500,30),g=hf(a.map(e=>e.position).join(`|`),400,350);if(e.length===0)return n.default.createElement(xf,{height:c});let _={top:24,right:8,bottom:30,left:44},v=lf(Math.max(...e.map(e=>e.value))*1.15),y=c-_.bottom,b=e=>y-e/v*(y-_.top),x=(m-_.left-_.right)/Math.max(1,e.length),S=Math.min(64,x*.72),C=e.length<=40,w=af(r);return n.default.createElement(`figure`,{ref:p,className:X(`space-y-2`,l)},n.default.createElement(`svg`,{viewBox:`0 0 ${m} ${c}`,className:`h-auto w-full`,role:`img`,"aria-label":t},uf(0,v).map(e=>n.default.createElement(`g`,{key:e},n.default.createElement(`line`,{x1:_.left,x2:m-_.right,y1:b(e),y2:b(e),stroke:cf,strokeDasharray:e===0?void 0:`3 4`}),n.default.createElement(`text`,{x:_.left-6,y:b(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11`,fill:sf},d(e)))),e.map((e,i)=>{let a=_.left+x*i+(x-S)/2,o=h[i]??0,l=b(o),p=e.tooltip??[{label:t,value:d(e.value),token:af(e.color??r)}];return n.default.createElement(`g`,{key:`${e.label}-${i}`},n.default.createElement(`rect`,{x:a,y:l,width:S,height:Math.max(0,y-l),rx:3,fill:of(e.color===void 0?w:af(e.color))}),s&&e.value>0&&n.default.createElement(`text`,{x:a+S/2,y:l-5,textAnchor:`middle`,fontSize:`11`,fill:`hsl(var(--rf-foreground))`,className:`tabular-nums`},d(o)),n.default.createElement(`text`,{x:a+S/2,y:c-12,textAnchor:`middle`,fontSize:`11`,fill:sf},e.label),n.default.createElement(`rect`,{x:_.left+x*i,y:_.top,width:x,height:y-_.top,fill:`transparent`,style:u?{cursor:`pointer`}:void 0,onClick:u?()=>u(e,i):void 0,...Sf(f,e.label,p,C)}))}),a.map(e=>{let t=_.left+x*e.position;return n.default.createElement(`g`,{key:e.label,opacity:g,pointerEvents:`none`},n.default.createElement(`line`,{x1:t,x2:t,y1:_.top-8,y2:y,stroke:`hsl(var(--rf-foreground))`,strokeWidth:1.5,strokeDasharray:e.dashed?`4 3`:void 0}),n.default.createElement(`text`,{x:t+5,y:_.top-10,fontSize:`11`,fill:`hsl(var(--rf-foreground))`},e.label))}),o&&n.default.createElement(`text`,{x:m-_.right,y:c-1,textAnchor:`end`,fontSize:`11`,fill:`hsl(var(--rf-muted-foreground))`},o)),n.default.createElement(bf,{caption:t,columns:[t],rows:e.map(e=>({label:e.label,values:[d(e.value)]}))}),f.element)}function wf({series:e,labels:t,ariaLabel:r,titles:i,labelEvery:a=1,format:o,comparison:s,comparisonLabel:c,height:l=250,className:u}){let d=df(o),{dict:f}=ht(),p=yf(),[m,h]=_f(960),g=t.length,_=e.flatMap(e=>t.map((t,n)=>e.values[n]??0)),v=mf([..._,...s??[]],550,6);if(g===0||e.length===0)return n.default.createElement(xf,{height:l});let y={top:12,right:8,bottom:28,left:64},b=(e,t)=>v[e*g+t]??0,x=t.map((t,n)=>e.reduce((e,t)=>e+(t.values[n]??0),0)),S=lf(Math.max(...x,...s??[0])*1.05),C=l-y.bottom,w=e=>C-e/S*(C-y.top),T=(h-y.left-y.right)/g,E=Math.min(44,T*.62),D=e=>y.left+T*e+T/2,O=e.map((e,t)=>af(e.color,t+1)),k=g<=40;return n.default.createElement(`figure`,{ref:m,className:X(`space-y-2`,u)},n.default.createElement(vf,{items:[...e.map((e,t)=>({label:e.label,token:O[t]})),...s&&c?[{label:c,token:`--rf-muted-foreground`,shape:`dashed`}]:[]]}),n.default.createElement(`svg`,{viewBox:`0 0 ${h} ${l}`,className:`h-auto w-full`,role:`img`,"aria-label":r},uf(0,S).map(e=>n.default.createElement(`g`,{key:e},n.default.createElement(`line`,{x1:y.left,x2:h-y.right,y1:w(e),y2:w(e),stroke:cf,strokeDasharray:e===0?void 0:`3 4`}),n.default.createElement(`text`,{x:y.left-8,y:w(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11`,fill:sf},d(e)))),t.map((e,t)=>t%a===0||t===g-1?n.default.createElement(`text`,{key:t,x:D(t),y:l-8,textAnchor:`middle`,fontSize:`11`,fill:sf},e):null),t.map((t,r)=>{let a=0,o=e.map((e,t)=>{let n=a;return a+=Math.max(0,b(t,r)),{id:e.id,token:O[t],from:n,to:a}}).filter(e=>e.to-e.from>0),l=[...e.map((e,t)=>({label:e.label,value:d(e.values[r]??0),token:O[t]})),...s?[{label:c??``,value:d(s[r]??0)}]:[]],u=s?v[_.length+r]??0:null;return n.default.createElement(`g`,{key:`${t}-${r}`},o.map((e,t)=>{let i=w(e.to),a=Math.max(0,w(e.from)-i-(t>0?2:0));return n.default.createElement(`rect`,{key:e.id,x:D(r)-E/2,y:i,width:E,height:a,rx:t===o.length-1?3:0,fill:of(e.token)})}),u!==null&&u>0&&n.default.createElement(`line`,{x1:D(r)-E/2-4,x2:D(r)+E/2+4,y1:w(u),y2:w(u),stroke:`hsl(var(--rf-muted-foreground))`,strokeWidth:2,strokeDasharray:`4 3`}),n.default.createElement(`rect`,{x:y.left+T*r,y:y.top,width:T,height:C-y.top,fill:`transparent`,...Sf(p,`${i?.[r]??t} · ${f.charts.total} ${d(x[r]??0)}`,l,k)}))})),n.default.createElement(bf,{caption:r,columns:[...e.map(e=>e.label),f.charts.total],rows:t.map((t,n)=>({label:i?.[n]??t,values:[...e.map(e=>d(e.values[n]??0)),d(x[n]??0)]}))}),p.element)}function Tf({series:e,columns:t,ariaLabel:r,labelEvery:i=1,format:a,height:o=250,className:s,onColumnClick:c}){let l=df(a),{dict:u}=ht(),d=yf(),[f,p]=_f(960),m=mf(t.flatMap(e=>e.segments.map(e=>Math.max(0,e.value))),550,6);if(t.length===0)return n.default.createElement(xf,{height:o});let h=new Map(e.map((e,t)=>[e.id,af(e.color,t+1)])),g=new Map(e.map(e=>[e.id,e.label])),_=t=>h.get(t)??af(void 0,e.length+1),v=e=>g.get(e)??e,y={top:12,right:8,bottom:28,left:64},b=t.map(e=>e.segments.reduce((e,t)=>e+Math.max(0,t.value),0)),x=lf(Math.max(...b)*1.05),S=o-y.bottom,C=e=>S-e/x*(S-y.top),w=t.length,T=(p-y.left-y.right)/w,E=Math.min(44,T*.62),D=e=>y.left+T*e+T/2,O=w<=40,k=t.reduce((e,n,r)=>[...e,r===0?0:e[r-1]+t[r-1].segments.length],[]),A=e=>e.segments.map(e=>`${v(e.series)} ${l(e.value)}`).join(` → `);return n.default.createElement(`figure`,{ref:f,className:X(`space-y-2`,s)},n.default.createElement(vf,{items:e.map(e=>({label:e.label,token:_(e.id)}))}),n.default.createElement(`svg`,{viewBox:`0 0 ${p} ${o}`,className:`h-auto w-full`,role:`img`,"aria-label":r},uf(0,x).map(e=>n.default.createElement(`g`,{key:e},n.default.createElement(`line`,{x1:y.left,x2:p-y.right,y1:C(e),y2:C(e),stroke:cf,strokeDasharray:e===0?void 0:`3 4`}),n.default.createElement(`text`,{x:y.left-8,y:C(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11`,fill:sf},l(e)))),t.map((e,t)=>t%i===0||t===w-1?n.default.createElement(`text`,{key:t,x:D(t),y:o-8,textAnchor:`middle`,fontSize:`11`,fill:sf},e.label):null),t.map((e,t)=>{let r=0,i=e.segments.map((e,n)=>{let i=r;return r+=m[k[t]+n]??0,{key:`${n}-${e.series}`,token:_(e.series),from:i,to:r}}).filter(e=>e.to-e.from>0),a=[...e.segments.map((e,t)=>({label:`${t+1}. ${v(e.series)}`,value:l(e.value),token:_(e.series)})),...e.tooltip??[]];return n.default.createElement(`g`,{key:`${e.label}-${t}`,"data-rf-sequence-column":t},i.map((e,r)=>{let a=C(e.to),o=Math.max(0,C(e.from)-a-(r>0?2:0));return n.default.createElement(`rect`,{key:e.key,"data-rf-sequence-segment":e.token,x:D(t)-E/2,y:a,width:E,height:o,rx:r===i.length-1?3:0,fill:of(e.token)})}),n.default.createElement(`rect`,{x:y.left+T*t,y:y.top,width:T,height:S-y.top,fill:`transparent`,style:c?{cursor:`pointer`}:void 0,onClick:c?()=>c(e,t):void 0,...Sf(d,`${e.title??e.label} · ${u.charts.total} ${l(b[t]??0)}`,a,O)}))})),n.default.createElement(bf,{caption:r,columns:[u.charts.sequence,u.charts.total],rows:t.map((e,t)=>({label:e.title??e.label,values:[A(e),l(b[t]??0)]}))}),d.element)}function Ef({bars:e,upLabel:t,downLabel:r,ariaLabel:i,upColor:a=1,downColor:o=2,titles:s,labelEvery:c=1,format:l,height:u=250,className:d}){let f=df(l),p=yf(),[m,h]=_f(960),g=e.length,_=mf(e.flatMap(e=>[e.up??0,e.down??0]),550,6);if(g===0)return n.default.createElement(xf,{height:u});let v={top:10,right:8,bottom:26,left:64},y=lf(Math.max(0,...e.flatMap(e=>[e.up??0,e.down??0]))*1.05),b=(v.top+u-v.bottom)/2,x=b-v.top,S=(h-v.left-v.right)/g,C=Math.max(2,Math.min(40,S*.6)),w=e=>v.left+S*e+S/2,T=af(a),E=af(o,2),D=g<=40,O=e=>e===null?`—`:f(e);return n.default.createElement(`figure`,{ref:m,className:X(`space-y-2`,d)},n.default.createElement(vf,{items:[{label:t,token:T},{label:r,token:E}]}),n.default.createElement(`svg`,{viewBox:`0 0 ${h} ${u}`,className:`h-auto w-full`,role:`img`,"aria-label":i},[-1,-.5,0,.5,1].map(e=>n.default.createElement(`g`,{key:e},n.default.createElement(`line`,{x1:v.left,x2:h-v.right,y1:b-e*x,y2:b-e*x,stroke:e===0?sf:cf,strokeDasharray:e===0?void 0:`3 4`}),n.default.createElement(`text`,{x:v.left-8,y:b-e*x,textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11`,fill:sf},f(Math.abs(e)*y)))),e.map((e,t)=>t%c===0||t===g-1?n.default.createElement(`text`,{key:t,x:w(t),y:u-8,textAnchor:`middle`,fontSize:`11`,fill:sf},e.label):null),e.map((e,i)=>{let a=(_[i*2]??0)/y*x,o=(_[i*2+1]??0)/y*x,c=[{label:t,value:O(e.up),token:T},{label:r,value:O(e.down),token:E}];return n.default.createElement(`g`,{key:`${e.label}-${i}`},e.up!==null&&n.default.createElement(`rect`,{x:w(i)-C/2,y:b-Math.max(1,a)-1,width:C,height:Math.max(1,a),rx:2,fill:of(T)}),e.down!==null&&n.default.createElement(`rect`,{x:w(i)-C/2,y:b+1,width:C,height:Math.max(1,o),rx:2,fill:of(E)}),n.default.createElement(`rect`,{x:v.left+S*i,y:v.top,width:S,height:u-v.top-v.bottom,fill:`transparent`,...Sf(p,s?.[i]??e.label,c,D)}))})),n.default.createElement(bf,{caption:i,columns:[t,r],rows:e.map((e,t)=>({label:s?.[t]??e.label,values:[O(e.up),O(e.down)]}))}),p.element)}var Df=e=>e.map(([e,t],n)=>`${n?`L`:`M`}${e.toFixed(1)},${t.toFixed(1)}`).join(``);function Of(e){let t=[],n=[];return e.forEach((e,r)=>{e==null||!Number.isFinite(e)?(n.length&&t.push(n),n=[]):n.push(r)}),n.length&&t.push(n),t}function kf(e,t,n,r,i){let a=e.currentTarget.ownerSVGElement?.getBoundingClientRect();if(!a||i===0)return 0;let o=(e.clientX-a.left)/a.width*t;return Math.max(0,Math.min(i-1,Math.round((o-n)/(t-n-r)*(i-1))))}function Af({series:e,labels:t,ariaLabel:r,titles:i,labelEvery:a=1,format:o,threshold:s,baseline:c,domain:l,height:u=240,className:d}){let f=df(o),p=yf(),[m,h]=_f(520),[g,_]=(0,n.useState)(null),v=t.length,y=e.flatMap(e=>t.map((t,n)=>e.values[n]??NaN)),b=[...y.filter(e=>Number.isFinite(e)),...e.flatMap(e=>[...e.band?.min??[],...e.band?.max??[]]).filter(e=>typeof e==`number`)],x=l?.[0]??Math.min(0,...b),S=l?.[1]??lf(Math.max(...b,s?.value??0)*1.1),C=mf(y.map(e=>Number.isFinite(e)?e:x),650,0),w=hf(t.join(`|`)+e.length,800),T=n.default.useId().replace(/[^a-zA-Z0-9_-]/g,``);if(v===0||e.length===0)return n.default.createElement(xf,{height:u});let E={top:14,right:12,bottom:28,left:50},D=u-E.bottom,O=e=>E.left+(v<=1?(h-E.left-E.right)/2:e/(v-1)*(h-E.left-E.right)),k=e=>D-(e-x)/(S-x||1)*(D-E.top),A=`chart-line-${T}`,j=E.left+(h-E.left-E.right)*w+6,M=e.map((e,t)=>e.dashed?`--rf-muted-foreground`:af(e.color,t+1)),N=k(Math.max(x,Math.min(S,c??x))),P=(e,t)=>[O(t),k(C[e*v+t]??x)],F=e=>e==null?`—`:f(e),I=t=>e.map((e,n)=>({label:e.label,value:F(e.values[t]),token:M[n]}));return n.default.createElement(`figure`,{ref:m,className:X(`space-y-2`,d)},e.length>1&&n.default.createElement(vf,{items:e.map((e,t)=>({label:e.label,token:M[t],shape:e.dashed?`dashed`:`line`}))}),n.default.createElement(`svg`,{viewBox:`0 0 ${h} ${u}`,className:`h-auto w-full`,role:`img`,"aria-label":r},n.default.createElement(`defs`,null,n.default.createElement(`clipPath`,{id:A},n.default.createElement(`rect`,{x:0,y:0,width:j,height:u}))),uf(x,S).map(e=>n.default.createElement(`g`,{key:e},n.default.createElement(`line`,{x1:E.left,x2:h-E.right,y1:k(e),y2:k(e),stroke:cf,strokeDasharray:e===x?void 0:`3 4`}),n.default.createElement(`text`,{x:E.left-6,y:k(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11`,fill:sf},f(e)))),t.map((e,t)=>t%a===0||t===v-1?n.default.createElement(`text`,{key:t,x:O(t),y:u-8,textAnchor:v>1&&t===0?`start`:v>1&&t===v-1?`end`:`middle`,fontSize:`11`,fill:sf},e):null),c!==void 0&&c>x&&c<S&&n.default.createElement(`line`,{x1:E.left,x2:h-E.right,y1:k(c),y2:k(c),stroke:`hsl(var(--rf-muted-foreground))`,strokeWidth:1}),s&&s.value>x&&s.value<S&&n.default.createElement(`g`,null,n.default.createElement(`rect`,{x:E.left,y:E.top,width:h-E.left-E.right,height:Math.max(0,k(s.value)-E.top),fill:`hsl(var(--rf-destructive) / 0.07)`}),n.default.createElement(`line`,{x1:E.left,x2:h-E.right,y1:k(s.value),y2:k(s.value),stroke:`hsl(var(--rf-destructive))`,strokeWidth:1.2,strokeDasharray:`5 4`}),n.default.createElement(`text`,{x:h-E.right,y:k(s.value)-6,textAnchor:`end`,fontSize:`11`,fill:`hsl(var(--rf-foreground))`},s.label)),n.default.createElement(`g`,{clipPath:`url(#${A})`},e.map((e,r)=>{let i=M[r],a=Of(t.map((t,n)=>e.values[n]??null)),o=e.band?Of(t.map((t,n)=>e.band.min[n]===null||e.band.min[n]===void 0?null:e.band.max[n]??null)):[];return n.default.createElement(`g`,{key:e.id},o.map(t=>n.default.createElement(`polygon`,{key:`band-${t[0]}`,points:[...t.map(t=>`${O(t)},${k(e.band.max[t])}`),...[...t].reverse().map(t=>`${O(t)},${k(e.band.min[t])}`)].join(` `),fill:of(i,.14)})),e.area&&!e.dashed&&a.map(e=>e.length>1&&n.default.createElement(`path`,{key:`area-${e[0]}`,d:`${Df(e.map(e=>P(r,e)))}L${O(e[e.length-1])},${N}L${O(e[0])},${N}Z`,fill:of(i,.14)})),a.map(t=>t.length>1?n.default.createElement(`path`,{key:`line-${t[0]}`,d:Df(t.map(e=>P(r,e))),fill:`none`,strokeWidth:2,strokeLinejoin:`round`,strokeLinecap:`round`,stroke:of(i),strokeDasharray:e.dashed?`5 4`:void 0}):n.default.createElement(`circle`,{key:`dot-${t[0]}`,cx:P(r,t[0])[0],cy:P(r,t[0])[1],r:2.5,fill:of(i)})))})),g!==null&&n.default.createElement(`g`,{pointerEvents:`none`},n.default.createElement(`line`,{x1:O(g),x2:O(g),y1:E.top,y2:D,stroke:`hsl(var(--rf-muted-foreground))`,strokeWidth:1}),e.map((e,t)=>{let r=e.values[g];return r==null?null:n.default.createElement(`circle`,{key:e.id,cx:O(g),cy:k(r),r:4,fill:of(M[t]),stroke:`hsl(var(--rf-card))`,strokeWidth:2})})),n.default.createElement(`rect`,{x:E.left,y:E.top,width:h-E.left-E.right,height:D-E.top,fill:`transparent`,onPointerMove:e=>{let n=kf(e,h,E.left,E.right,v);_(n),p.show(e,i?.[n]??t[n]??``,I(n))},onPointerLeave:()=>{_(null),p.hide()}})),n.default.createElement(bf,{caption:r,columns:e.map(e=>e.label),rows:t.map((t,n)=>({label:i?.[n]??t,values:e.map(e=>F(e.values[n]))}))}),p.element)}function jf({series:e,labels:t,ariaLabel:r,titles:i,labelEvery:a=1,format:o,stacked:s=!0,height:c=240,className:l}){let u=df(o),{dict:d}=ht(),f=yf(),[p,m]=_f(520),[h,g]=(0,n.useState)(null),_=t.length,v=e.flatMap(e=>t.map((t,n)=>e.values[n]??0)),y=mf(v,650,0);if(_===0||e.length===0)return n.default.createElement(xf,{height:c});let b={top:12,right:12,bottom:28,left:50},x=c-b.bottom,S=t.map((t,n)=>e.reduce((e,t)=>e+(t.values[n]??0),0)),C=lf(Math.max(0,...s?S:v)*1.05),w=e=>b.left+(_<=1?(m-b.left-b.right)/2:e/(_-1)*(m-b.left-b.right)),T=e=>x-e/C*(x-b.top),E=e.map((e,t)=>af(e.color,t+1)),D=e.map((n,r)=>t.map((t,n)=>{let i=y[r*_+n]??0,a=s?e.slice(0,r).reduce((e,t,r)=>e+(y[r*_+n]??0),0):0;return{low:a,high:a+i}})),O=t=>[...e.map((e,n)=>({label:e.label,value:u(e.values[t]??0),token:E[n]})),...s?[{label:d.charts.total,value:u(S[t]??0)}]:[]];return n.default.createElement(`figure`,{ref:p,className:X(`space-y-2`,l)},n.default.createElement(vf,{items:e.map((e,t)=>({label:e.label,token:E[t]}))}),n.default.createElement(`svg`,{viewBox:`0 0 ${m} ${c}`,className:`h-auto w-full`,role:`img`,"aria-label":r},uf(0,C).map(e=>n.default.createElement(`g`,{key:e},n.default.createElement(`line`,{x1:b.left,x2:m-b.right,y1:T(e),y2:T(e),stroke:cf,strokeDasharray:e===0?void 0:`3 4`}),n.default.createElement(`text`,{x:b.left-6,y:T(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11`,fill:sf},u(e)))),t.map((e,t)=>t%a===0||t===_-1?n.default.createElement(`text`,{key:t,x:w(t),y:c-8,textAnchor:_>1&&t===0?`start`:_>1&&t===_-1?`end`:`middle`,fontSize:`11`,fill:sf},e):null),e.map((e,t)=>{let r=D[t],i=r.map((e,t)=>[w(t),T(e.high)]),a=r.map((e,t)=>[w(t),T(e.low)]).reverse();return n.default.createElement(`g`,{key:e.id},n.default.createElement(`path`,{d:`${Df(i)}${a.map(([e,t])=>`L${e.toFixed(1)},${t.toFixed(1)}`).join(``)}Z`,fill:of(E[t],s?.72:.2)}),n.default.createElement(`path`,{d:Df(i),fill:`none`,stroke:of(E[t]),strokeWidth:1.5,strokeLinejoin:`round`}))}),h!==null&&n.default.createElement(`line`,{x1:w(h),x2:w(h),y1:b.top,y2:x,stroke:`hsl(var(--rf-muted-foreground))`,strokeWidth:1,pointerEvents:`none`}),n.default.createElement(`rect`,{x:b.left,y:b.top,width:m-b.left-b.right,height:x-b.top,fill:`transparent`,onPointerMove:e=>{let n=kf(e,m,b.left,b.right,_);g(n),f.show(e,i?.[n]??t[n]??``,O(n))},onPointerLeave:()=>{g(null),f.hide()}})),n.default.createElement(bf,{caption:r,columns:[...e.map(e=>e.label),...s?[d.charts.total]:[]],rows:t.map((t,n)=>({label:i?.[n]??t,values:[...e.map(e=>u(e.values[n]??0)),...s?[u(S[n]??0)]:[]]}))}),f.element)}function Mf({values:e,color:t=`--rf-primary`,height:r=30,className:i,ariaLabel:a}){let o=af(t),s=e.map(e=>e??NaN),c=s.filter(e=>Number.isFinite(e)),l=c.length?Math.min(...c):0,u=c.length?Math.max(...c):1,d=mf(s.map(e=>Number.isFinite(e)?e:l),700,0).map((e,t)=>({index:t,value:e,known:Number.isFinite(s[t])})).filter(e=>e.known).map(t=>[e.length<=1?80:1+t.index/(e.length-1)*158,r-3-(t.value-l)/(u-l||1)*(r-8)]),f=a?{role:`img`,"aria-label":a}:{"aria-hidden":!0};if(d.length===0)return n.default.createElement(`svg`,{viewBox:`0 0 160 ${r}`,className:X(`block w-full`,i),style:{height:r},...f});let p=d.map(([e,t],n)=>`${n?`L`:`M`}${e.toFixed(1)},${t.toFixed(1)}`).join(``),[m,h]=d[d.length-1];return n.default.createElement(`svg`,{viewBox:`0 0 160 ${r}`,preserveAspectRatio:`none`,className:X(`block w-full`,i),style:{height:r},...f},n.default.createElement(`path`,{d:`${p}L${m},${r-1}L${d[0][0]},${r-1}Z`,fill:of(o,.12)}),n.default.createElement(`path`,{d:p,fill:`none`,stroke:of(o),strokeWidth:1.6,strokeLinejoin:`round`,vectorEffect:`non-scaling-stroke`}),n.default.createElement(`circle`,{cx:m,cy:h,r:2.4,fill:of(o)}))}function Nf({points:e,ariaLabel:t,series:r=[],xLabel:i,yLabel:a,sizeLabel:o,formatX:s,formatY:c,formatSize:l,showLabels:u,height:d=280,className:f,onPointClick:p}){let m=df(s),h=df(c),g=df(l),_=yf(),[v,y]=_f(520),b=hf(e.map(e=>e.id).join(`|`),600);if(e.length===0)return n.default.createElement(xf,{height:d});let x={top:14,right:16,bottom:40,left:56},S=lf(Math.max(...e.map(e=>e.x))*1.05),C=lf(Math.max(...e.map(e=>e.y))*1.05),w=Math.max(0,...e.map(e=>e.size??0)),T=d-x.bottom,E=e=>x.left+e/S*(y-x.left-x.right),D=e=>T-e/C*(T-x.top),O=e=>w>0&&e!==void 0?4+10*Math.sqrt(Math.max(0,e)/w):6,k=e=>{let t=r.findIndex(t=>t.id===e);return af(r[Math.max(0,t)]?.color,Math.max(0,t)+1)},A=u??e.length<=12,j=e.length<=40,M=e=>e.tooltip??[{label:i,value:m(e.x)},{label:a,value:h(e.y)},...e.size!==void 0&&o?[{label:o,value:g(e.size)}]:[]];return n.default.createElement(`figure`,{ref:v,className:X(`space-y-2`,f)},r.length>1&&n.default.createElement(vf,{items:r.map((e,t)=>({label:e.label,token:af(e.color,t+1),shape:`dot`}))}),n.default.createElement(`svg`,{viewBox:`0 0 ${y} ${d}`,className:`h-auto w-full`,role:`img`,"aria-label":t},uf(0,C).map(e=>n.default.createElement(`g`,{key:`y-${e}`},n.default.createElement(`line`,{x1:x.left,x2:y-x.right,y1:D(e),y2:D(e),stroke:cf,strokeDasharray:e===0?void 0:`3 4`}),n.default.createElement(`text`,{x:x.left-6,y:D(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11`,fill:sf},h(e)))),uf(0,S).map(e=>n.default.createElement(`g`,{key:`x-${e}`},n.default.createElement(`line`,{x1:E(e),x2:E(e),y1:x.top,y2:T,stroke:cf,strokeDasharray:e===0?void 0:`3 4`}),n.default.createElement(`text`,{x:E(e),y:T+16,textAnchor:`middle`,fontSize:`11`,fill:sf},m(e)))),n.default.createElement(`text`,{x:y-x.right,y:d-4,textAnchor:`end`,fontSize:`11`,fill:sf},i),n.default.createElement(`text`,{x:x.left,y:x.top-4,fontSize:`11`,fill:sf},a),e.map(e=>{let t=k(e.series),r=O(e.size);return n.default.createElement(`g`,{key:e.id,opacity:b},n.default.createElement(`circle`,{cx:E(e.x),cy:D(e.y),r,fill:of(t,.55),stroke:of(t),strokeWidth:1.5,style:p?{cursor:`pointer`}:void 0,onClick:p?()=>p(e):void 0,...Sf(_,e.label,M(e),j)}),A&&n.default.createElement(`text`,{x:E(e.x)+r+4,y:D(e.y)+4,fontSize:`11`,fill:`hsl(var(--rf-foreground))`,pointerEvents:`none`},e.label))})),n.default.createElement(bf,{caption:t,columns:[i,a,...o?[o]:[]],rows:e.map(e=>({label:e.label,values:[m(e.x),h(e.y),...o?[e.size===void 0?`—`:g(e.size)]:[]]}))}),_.element)}var Pf={good:`hsl(var(--rf-success))`,bad:`hsl(var(--rf-destructive))`,neutral:`hsl(var(--rf-muted-foreground))`};function Ff({rows:e,ariaLabel:t,color:r,format:i,max:a,labelWidth:o=150,legend:s=[],className:c,onRowClick:l}){let u=df(i),d=yf(),f=mf(e.flatMap(e=>[e.value,e.background??0]),550,22),[p,m]=_f(520);if(e.length===0)return n.default.createElement(xf,{height:80});let h=a??Math.max(1,...e.flatMap(e=>[e.value,e.background??0])),g=Math.max(40,...e.map(e=>(e.valueText??u(e.value)).length*6.5+12)),_=Math.max(0,...e.map(e=>e.trailing?e.trailing.text.length*6.5+10:0)),v=Math.max(40,m-o-_-g),y=e.length*34+4,b=Math.max(4,Math.floor((o-10)/7)),x=e.length<=40;return n.default.createElement(`figure`,{ref:p,className:X(`space-y-2`,c)},n.default.createElement(vf,{items:s}),n.default.createElement(`svg`,{viewBox:`0 0 ${m} ${y}`,className:`h-auto w-full`,role:`img`,"aria-label":t},e.map((e,i)=>{let a=i*34+4,s=f[i*2]??0,c=f[i*2+1]??0,p=v*s/h,g=af(e.color??r);return n.default.createElement(`g`,{key:e.id},n.default.createElement(`text`,{x:o-10,y:a+17,textAnchor:`end`,fontSize:`12`,fill:`hsl(var(--rf-foreground))`},e.label.length>b?`${e.label.slice(0,b-1)}…`:e.label),e.background!==void 0&&n.default.createElement(`rect`,{x:o,y:a+4,width:v*c/h,height:20,rx:4,fill:`hsl(var(--rf-muted))`}),n.default.createElement(`rect`,{x:o,y:a+4,width:Math.max(0,p),height:20,rx:4,fill:of(g)}),n.default.createElement(`text`,{x:o+Math.max(p,v*c/h)+6,y:a+18,fontSize:`11.5`,fill:`hsl(var(--rf-foreground))`,className:`tabular-nums`},e.valueText??u(s)),e.trailing&&n.default.createElement(`text`,{x:m-2,y:a+18,textAnchor:`end`,fontSize:`11.5`,fill:Pf[e.trailing.tone],className:`tabular-nums`},e.trailing.text),n.default.createElement(`rect`,{x:0,y:a,width:m,height:34,fill:`transparent`,style:l?{cursor:`pointer`}:void 0,onClick:l?()=>l(e):void 0,...Sf(d,e.label,e.tooltip??[{label:t,value:e.valueText??u(e.value),token:g}],x)}))})),n.default.createElement(bf,{caption:t,columns:[t],rows:e.map(e=>({label:e.label,values:[e.valueText??u(e.value)]}))}),d.element)}function If({columns:e,rows:t,ariaLabel:r,labelWidth:i=120,className:a,onRowClick:o}){let s=df(),c=yf(),[l,u]=_f(720),d=(e,t)=>{let n=e.values[t.id],r=typeof n==`number`?[n]:[...n??[]];return(t.parts?t.parts.map((e,t)=>r[t]??0):[r.reduce((e,t)=>e+t,0)]).map(e=>Math.max(0,e))},f=mf(t.flatMap(t=>e.flatMap(e=>d(t,e))),550,22);if(t.length===0||e.length===0)return n.default.createElement(xf,{height:80});let p=e=>e.format??s,m=0,h=e.map(e=>e.parts?e.parts.map(e=>af(e.color,++m)):[af(e.color,++m)]),g=t.map(t=>e.map(e=>d(t,e).reduce((e,t)=>e+t,0))),_=e.map((e,t)=>Math.max(1e-9,...g.map(e=>e[t]??0))),v=t.map((t,n)=>e.map((e,t)=>p(e)(g[n][t]??0))),y=e.length*12+(e.length-1)*4,b=Math.max(0,...t.map(e=>e.trailing?e.trailing.text.length*6.5+10:0)),x=Math.max(36,...v.flat().map(e=>e.length*6.5+10)),S=Math.max(40,u-i-x-b),C=t.length*(y+16)+4,w=Math.max(4,Math.floor((i-10)/7)),T=t.length<=40,E=e.flatMap((e,t)=>e.parts?e.parts.map((e,n)=>({label:e.label,token:h[t][n]})):[{label:e.label,token:h[t][0]}]),D=(t,n)=>e.flatMap((e,r)=>{let i=d(t,e);return e.parts?[{label:e.label,value:v[n][r]},...e.parts.map((t,n)=>({label:t.label,value:p(e)(i[n]??0),token:h[r][n]}))]:[{label:e.label,value:v[n][r],token:h[r][0]}]}),O=0;return n.default.createElement(`figure`,{ref:l,className:X(`space-y-2`,a)},n.default.createElement(vf,{items:E}),n.default.createElement(`svg`,{viewBox:`0 0 ${u} ${C}`,className:`h-auto w-full`,role:`img`,"aria-label":r},t.map((t,r)=>{let a=r*(y+16)+8,s=a+y/2;return n.default.createElement(`g`,{key:t.id,"data-rf-measure-row":t.id},n.default.createElement(`text`,{x:i-10,y:s,textAnchor:`end`,dominantBaseline:`middle`,fontSize:`12`,fill:`hsl(var(--rf-foreground))`},t.label.length>w?`${t.label.slice(0,w-1)}…`:t.label),e.map((e,o)=>{let s=a+o*16,c=i,l=d(t,e).map((e,t)=>{let n=f[O++]??0,r=S*n/_[o],i={key:t,x:c,w:r,token:h[o][t]};return c+=r,i}).filter(e=>e.w>0);return n.default.createElement(`g`,{key:e.id,"data-rf-measure-cell":e.id},l.map(e=>n.default.createElement(`rect`,{key:e.key,"data-rf-measure-part":e.token,x:e.x,y:s,width:e.w,height:12,rx:l.length===1?2:0,fill:of(e.token)})),n.default.createElement(`text`,{x:c+6,y:s+6,dominantBaseline:`middle`,fontSize:`11`,fill:`hsl(var(--rf-foreground))`,className:`tabular-nums`},v[r][o]))}),t.trailing&&n.default.createElement(`text`,{x:u-2,y:s,textAnchor:`end`,dominantBaseline:`middle`,fontSize:`11.5`,fill:Pf[t.trailing.tone],className:`tabular-nums`},t.trailing.text),n.default.createElement(`rect`,{x:0,y:a-8,width:u,height:y+16,fill:`transparent`,style:o?{cursor:`pointer`}:void 0,onClick:o?()=>o(t):void 0,...Sf(c,t.label,t.tooltip??D(t,r),T)}))})),n.default.createElement(bf,{caption:r,columns:e.map(e=>e.label),rows:t.map((t,n)=>({label:t.label,values:e.map((e,r)=>e.parts?e.parts.map((n,r)=>`${n.label} ${p(e)(d(t,e)[r]??0)}`).join(` · `):v[n][r])}))}),c.element)}function Lf({values:e,rowLabels:t,columnLabels:r,columnLabelEvery:i=1,ariaLabel:a,color:o=`--rf-primary`,format:s,cellTitle:c,cellHeight:l=24,className:u}){let d=df(s),f=yf(),p=r.length,m=Math.min(120,Math.max(36,...t.map(e=>e.length*6.5+10))),[h,g]=_f(m+Math.max(1,p)*21),_=e.flatMap(e=>r.map((t,n)=>e[n]??0)),v=Math.max(1,..._),y=mf(_.map(e=>e/v),380,3);if(e.length===0||p===0)return n.default.createElement(xf,{height:120});let b=Math.max(8,(g-m)/p-2),x=6+e.length*(l+2)+22,S=af(o),C=_.length<=40;return n.default.createElement(`figure`,{ref:h,className:X(`space-y-2`,u)},n.default.createElement(`svg`,{viewBox:`0 0 ${g} ${x}`,className:`h-auto w-full`,role:`img`,"aria-label":a},t.map((e,t)=>n.default.createElement(`text`,{key:`${e}-${t}`,x:m-6,y:6+t*(l+2)+l/2+4,textAnchor:`end`,fontSize:`10.5`,fill:sf},e)),_.map((e,i)=>{let o=Math.floor(i/p),s=i%p,u=c?.(o,s)??`${t[o]??``} · ${r[s]??``}`;return n.default.createElement(`rect`,{key:i,x:m+s*(b+2),y:6+o*(l+2),width:b,height:l,rx:3,fill:of(S),fillOpacity:.06+.9*(y[i]??0),...Sf(f,u,[{label:a,value:d(e)}],C)})}),r.map((t,r)=>r%i===0?n.default.createElement(`text`,{key:r,x:m+r*(b+2)+b/2,y:6+e.length*(l+2)+14,textAnchor:`middle`,fontSize:`10.5`,fill:sf},t):null)),n.default.createElement(bf,{caption:a,columns:r,rows:e.map((e,n)=>({label:t[n]??``,values:r.map((t,n)=>d(e[n]??0))}))}),f.element)}var Rf=[0,.3,.55,.8,1];function zf({days:e,ariaLabel:t,color:r=`--rf-primary`,format:i,className:a}){let o=df(i),{dict:s,locale:c}=ht(),l=yf();if(e.length===0)return n.default.createElement(xf,{height:120});let u=af(r),d=new Map(e.map(e=>[e.date,e.value])),f=[...e].map(e=>e.date).sort(),p=e=>new Date(`${e}T00:00:00Z`),m=p(f[0]),h=p(f[f.length-1]),g=new Date(m);g.setUTCDate(g.getUTCDate()-(g.getUTCDay()+6)%7);let _=[];for(let e=new Date(g);e<=h;e.setUTCDate(e.getUTCDate()+1)){(e.getUTCDay()+6)%7==0&&_.push([]);let t=e.toISOString().slice(0,10);_[_.length-1].push(e<m?null:{date:t,value:d.has(t)?d.get(t):null})}let v=Math.max(1,...e.map(e=>e.value??0)),y=e=>e===null||e<=0?0:Math.min(4,Math.ceil(e/v*4)),b=(e,t)=>t&&e!==null&&e>0?of(u,Rf[y(e)]):t?`hsl(var(--rf-muted-foreground) / 0.25)`:`hsl(var(--rf-muted))`,x=26+_.length*16,S=new Intl.DateTimeFormat(c,{weekday:`short`,timeZone:`UTC`}),C=new Intl.DateTimeFormat(c,{month:`short`,timeZone:`UTC`}),w=new Intl.DateTimeFormat(c,{dateStyle:`medium`,timeZone:`UTC`}),T=new Date(g),E=e.length<=40,D=``;return n.default.createElement(`figure`,{className:X(`space-y-2`,a)},n.default.createElement(`div`,{className:`overflow-x-auto`},n.default.createElement(`svg`,{viewBox:`0 0 ${x} 128`,width:x,height:128,role:`img`,"aria-label":t},[0,2,4].map(e=>{let t=new Date(T);return t.setUTCDate(t.getUTCDate()+e),n.default.createElement(`text`,{key:e,x:0,y:16+e*16+13-3,fontSize:`10`,fill:sf},S.format(t))}),_.map((e,r)=>{let i=e.find(e=>e!==null),a=i?i.date.slice(0,7):``,s=a!==``&&a!==D;return s&&(D=a),n.default.createElement(`g`,{key:r},s&&i&&n.default.createElement(`text`,{x:26+r*16,y:10,fontSize:`10`,fill:`hsl(var(--rf-muted-foreground))`},C.format(p(i.date))),e.map((e,i)=>e===null?null:n.default.createElement(`rect`,{key:e.date,x:26+r*16,y:16+i*16,width:13,height:13,rx:2.5,fill:b(e.value,d.has(e.date)),...Sf(l,w.format(p(e.date)),[{label:t,value:e.value===null?`—`:o(e.value)}],E)})))}))),n.default.createElement(`figcaption`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`},n.default.createElement(`span`,null,s.charts.less),Rf.map((e,t)=>n.default.createElement(`span`,{key:t,"aria-hidden":`true`,className:`inline-block size-3 rounded-sm`,style:{background:t===0?`hsl(var(--rf-muted-foreground) / 0.25)`:of(u,Rf[t])}})),n.default.createElement(`span`,null,s.charts.more)),n.default.createElement(bf,{caption:t,columns:[t],rows:e.map(e=>({label:w.format(p(e.date)),values:[e.value===null?`—`:o(e.value)]}))}),l.element)}var Bf=()=>typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches===!0;function Vf({value:e,format:t,duration:r=700}){let i=df(t),[a,o]=(0,n.useState)(e),s=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let t=s.current??0;if(s.current=e,Bf()||t===e||typeof requestAnimationFrame>`u`){o(e);return}let n=performance.now(),i=0,a=s=>{let c=Math.min(1,(s-n)/r);o(t+(e-t)*(1-(1-c)**3)),c<1&&(i=requestAnimationFrame(a))};return i=requestAnimationFrame(a),()=>cancelAnimationFrame(i)},[e,r]),n.default.createElement(n.default.Fragment,null,i(a))}var Hf={en:`English`,it:`Italiano`,fr:`Français`,de:`Deutsch`,es:`Español`,pt:`Português`,nl:`Nederlands`,pl:`Polski`,ru:`Русский`,zh:`中文`,ja:`日本語`,ko:`한국어`,ar:`العربية`},Uf=({icon:e=`Globe`,label:t,labels:r,appearance:i=`code`,className:a=``})=>{let{locale:o,availableLocales:s,setLocale:c}=Y();if(s.length<=1)return null;let l={...Hf,...r},u=e=>i===`code`?e.toUpperCase():l[e]??e.toUpperCase();return n.default.createElement(`div`,{className:`flex items-center gap-1.5 ${a}`.trim()},n.default.createElement(Q,{name:e,size:16,"aria-hidden":!0}),t&&n.default.createElement(`span`,{className:`text-sm`},t),n.default.createElement(`select`,{value:o,onChange:e=>c(e.target.value),className:`cursor-pointer rounded border border-border bg-transparent py-0.5 pl-1 pr-5 text-sm focus:outline-none focus:ring-1 focus:ring-ring`,style:{width:`auto`},"aria-label":t??`Select language`},s.map(e=>n.default.createElement(`option`,{key:e,value:e},u(e)))))},Wf=`flex items-center justify-between gap-3 border-b border-border/50 px-3 py-2`,Gf=`text-xs font-medium uppercase tracking-[0.14em] text-muted-foreground`,Kf=`px-3 py-3`,qf=`h-7 w-7 rounded-md bg-transparent p-0 text-muted-foreground hover:bg-destructive/10 hover:text-destructive`,Jf=({name:e,children:t,onChange:r,onAdd:i,onRemove:a,className:o,layout:s=`horizontal`,minItems:c=void 0,maxItems:l=void 0,label:u=void 0,labelPosition:d=`top`,hideRemoveButton:f=!1,readOnly:p=!1})=>{let{value:m,handleChange:h}=Dc({name:e,onChange:r}),g=Array.isArray(m)?m:[],_=q(`repeat`),v=X(`rounded-xl border border-border/60 bg-card/80 shadow-sm`,_.Repeat.itemClassName),y=(n,r)=>Ac({children:typeof t==`function`?t({record:g[n],records:g,index:n,remove:()=>C(n)}):t,parentName:`${e}.${n}`,wrapperClassName:r}),b=(e,t)=>{switch(s){case`horizontal`:return n.default.createElement(`div`,{className:v},n.default.createElement(`div`,{className:Wf},n.default.createElement(`span`,{className:Gf},`#`,e+1),t&&!f?n.default.createElement(Cn,{className:qf,icon:`x`,onClick:()=>C(e)}):n.default.createElement(`span`,{className:`h-7 w-7`,"aria-hidden":`true`})),n.default.createElement(`div`,{className:Kf},y(e)));case`vertical`:return n.default.createElement(n.default.Fragment,null);case`inline`:return n.default.createElement(`div`,{className:X(v,`px-3 py-2`,_.Repeat.inlineItemClassName)},n.default.createElement(`div`,{className:`flex items-start gap-2`},n.default.createElement(`div`,{className:`flex-1 min-w-0`},y(e,`!mb-0`)),t&&!f&&n.default.createElement(Cn,{className:X(qf,`mt-1 shrink-0`),icon:`x`,onClick:()=>C(e)})))}},x=(g.length>0?g:Array.from({length:c||0},()=>({})))?.map((t,r)=>{let i=!p&&r>=(c||0);return n.default.createElement(n.default.Fragment,{key:`${e}-${r}`},b(r,i))}),S=()=>{let t=g.length>0?[...g,{}]:Array.from({length:x.length+1},()=>({}));i?.(t),h({target:{name:`${e}.${t.length-1}`,value:{}}})},C=t=>{a?.(t),h({target:{name:`${e}.${t}`}})},w=(0,n.useMemo)(()=>p?null:!l||x.length<l?u&&d===`bottom`?n.default.createElement(Cn,{icon:`plus`,label:u,variant:`link`,className:X(`w-full justify-start gap-1 rounded-lg border border-dashed border-border/60 px-3 py-2 text-sm text-muted-foreground hover:border-border hover:bg-muted/40 hover:text-foreground`,_.Repeat.addButtonClassName),onClick:S}):n.default.createElement(Cn,{icon:`plus`,label:u?void 0:`Add`,variant:u?`link`:`secondary`,className:u?X(`h-8 w-8 rounded-lg p-0 text-muted-foreground hover:bg-muted/50 hover:text-foreground`,_.Repeat.addButtonClassName):void 0,onClick:S}):null,[p,l,x.length,u,d,_.Repeat.addButtonClassName]);return n.default.createElement(`div`,{className:X(`space-y-3`,o)},u&&d===`top`&&n.default.createElement(`div`,{className:`flex items-center justify-between gap-3`},n.default.createElement(`span`,{className:`text-sm font-medium text-foreground`},u),w),x,!u&&w,u&&d===`bottom`&&w)},Yf={default:{shellClassName:`space-y-4`,menuClassName:`flex flex-wrap items-end gap-2 border-b border-border/70`,contentClassName:`min-w-0`,itemClassName:`shrink-0`,triggerClassName:`inline-flex items-center rounded-t-lg border-b-2 px-3 py-2 text-sm font-medium transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,activeTriggerClassName:`border-primary text-foreground`,inactiveTriggerClassName:`border-transparent text-muted-foreground hover:text-foreground hover:border-border/80`},top:{shellClassName:`space-y-4`,menuClassName:`inline-flex max-w-full flex-wrap gap-2 rounded-xl bg-muted/50 p-1.5`,contentClassName:`min-w-0`,itemClassName:`shrink-0`,triggerClassName:`inline-flex items-center rounded-lg px-3 py-2 text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,activeTriggerClassName:`bg-card text-foreground shadow-sm ring-1 ring-border/60`,inactiveTriggerClassName:`text-muted-foreground hover:bg-background/80 hover:text-foreground`},left:{shellClassName:`flex h-full min-h-0 flex-col gap-5 md:flex-row md:items-start`,menuClassName:`flex shrink-0 gap-2 overflow-x-auto md:w-64 md:flex-col md:overflow-visible`,contentClassName:`min-h-0 min-w-0 flex-1 overflow-hidden rounded-2xl border border-border/60 bg-card/80 p-4 shadow-sm`,itemClassName:`shrink-0 md:w-full`,triggerClassName:`inline-flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,activeTriggerClassName:`bg-primary/10 text-primary shadow-sm ring-1 ring-primary/15`,inactiveTriggerClassName:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`},right:{shellClassName:`flex h-full min-h-0 flex-col gap-5 md:flex-row md:items-start`,menuClassName:`order-1 flex shrink-0 gap-2 overflow-x-auto md:order-2 md:w-64 md:flex-col md:overflow-visible`,contentClassName:`order-2 min-h-0 min-w-0 flex-1 overflow-hidden rounded-2xl border border-border/60 bg-card/80 p-4 shadow-sm md:order-1`,itemClassName:`shrink-0 md:w-full`,triggerClassName:`inline-flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,activeTriggerClassName:`bg-primary/10 text-primary shadow-sm ring-1 ring-primary/15`,inactiveTriggerClassName:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`},bottom:{shellClassName:`space-y-4`,menuClassName:`flex flex-wrap gap-2 rounded-xl bg-muted/50 p-1.5`,contentClassName:`min-w-0 rounded-2xl border border-border/60 bg-card p-4 shadow-sm`,itemClassName:`shrink-0`,triggerClassName:`inline-flex items-center rounded-lg px-3 py-2 text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background`,activeTriggerClassName:`bg-card text-foreground shadow-sm ring-1 ring-border/60`,inactiveTriggerClassName:`text-muted-foreground hover:bg-background/80 hover:text-foreground`}};function Xf(e){return Yf[e]}function Zf(e,t,n){let r=Xf(e),i=q(`tab`);return X(`cursor-pointer`,r.triggerClassName,i.Tab.triggerClassName,t?r.activeTriggerClassName:r.inactiveTriggerClassName,t?i.Tab.activeTriggerClassName:i.Tab.inactiveTriggerClassName,n)}function Qf(e){return X(`min-h-0 min-w-0 h-full overflow-x-hidden overflow-y-auto`,q(`tab`).Tab.contentClassName,e)}var $f={default:({menu:e,content:t,menuClassName:r,contentClassName:i})=>{let a=Xf(`default`),o=q(`tab`);return n.default.createElement(`div`,{className:a.shellClassName},n.default.createElement(`div`,{role:`tablist`,"aria-orientation":`horizontal`,className:X(a.menuClassName,o.Tab.menuClassName,r)},e),n.default.createElement(`div`,{className:X(a.contentClassName,o.Tab.contentClassName,i)},t))},top:({menu:e,content:t,menuClassName:r,contentClassName:i})=>{let a=Xf(`top`),o=q(`tab`);return n.default.createElement(`div`,{className:a.shellClassName},n.default.createElement(`div`,{role:`tablist`,"aria-orientation":`horizontal`,className:X(a.menuClassName,o.Tab.menuClassName,r)},e),n.default.createElement(`div`,{className:X(a.contentClassName,o.Tab.contentClassName,i)},t))},left:({menu:e,content:t,menuClassName:r,contentClassName:i})=>{let a=Xf(`left`),o=q(`tab`);return n.default.createElement(`div`,{className:a.shellClassName},n.default.createElement(`div`,{role:`tablist`,"aria-orientation":`vertical`,className:X(a.menuClassName,o.Tab.menuClassName,r)},e),n.default.createElement(`div`,{className:X(a.contentClassName,o.Tab.contentClassName,i)},t))},right:({menu:e,content:t,menuClassName:r,contentClassName:i})=>{let a=Xf(`right`),o=q(`tab`);return n.default.createElement(`div`,{className:a.shellClassName},n.default.createElement(`div`,{role:`tablist`,"aria-orientation":`vertical`,className:X(a.menuClassName,o.Tab.menuClassName,r)},e),n.default.createElement(`div`,{className:X(a.contentClassName,o.Tab.contentClassName,i)},t))},bottom:({menu:e,content:t,menuClassName:r,contentClassName:i})=>{let a=Xf(`bottom`),o=q(`tab`);return n.default.createElement(`div`,{className:a.shellClassName},n.default.createElement(`div`,{className:X(a.contentClassName,o.Tab.contentClassName,i)},t),n.default.createElement(`div`,{role:`tablist`,"aria-orientation":`horizontal`,className:X(a.menuClassName,o.Tab.menuClassName,r)},e))}},ep=()=>null,tp=({children:e,motion:t})=>{let r=q(`tab`),i=Ht(void 0,t??r.Tab.motion?.enter??`fadeUp`,r.Tab.motion?.enter??`fadeUp`);return n.default.createElement(`div`,{style:i,className:Qf()},e)},np=({children:e,defaultIndex:t=0,onChange:r,layout:i=`default`,menuClassName:a=void 0,contentClassName:o=void 0,before:s=void 0,after:c=void 0,wrapperClassName:l=void 0,className:u=void 0,motion:d=void 0})=>{let[f,p]=(0,n.useState)(t),m=e=>{p(e),r?.(e)},h=n.Children.toArray(e).filter(e=>n.default.isValidElement(e)&&e.type===ep),g=(0,n.useMemo)(()=>Xf(i),[i]),_=$f[i],v=q(`tab`);return n.default.createElement(Z,{className:X(v.Tab.wrapperClassName,l)},s,n.default.createElement(`div`,{className:X(`min-w-0`,v.Tab.className,u)},n.default.createElement(_,{menuClassName:a,contentClassName:o,menu:h.map((e,t)=>n.default.createElement(`div`,{key:t,className:X(g.itemClassName,v.Tab.itemClassName)},n.default.createElement(`button`,{type:`button`,role:`tab`,"aria-selected":t===f,onClick:()=>m(t),className:Zf(i,t===f)},e.props.label))),content:n.default.createElement(tp,{key:f,motion:d},h[f]?.props?.children)})),c)};function rp({records:e,selectedKeys:t,onSelectionChange:r,getRecordKey:i}){let a=t,o=a!==void 0&&!!r,[s,c]=(0,n.useState)(a??[]);(0,n.useEffect)(()=>{a!==void 0&&!o&&c(a)},[a,o]);let l=o?a||[]:s,u=!!r||a!==void 0,d=(0,n.useCallback)(t=>{let n=new Set(t);return{keys:t,records:e.filter((e,t)=>n.has(i(e,t))),hasSelection:t.length>0}},[i,e]),f=(0,n.useCallback)(e=>{o||c(e);let t=d(e);r?.({...t,clear:()=>f([])})},[d,o,r]),p=(0,n.useCallback)(()=>{f([])},[f]);return{activeSelectedKeys:l,selectionState:(0,n.useMemo)(()=>({...d(l),clear:p}),[l,d,p]),showSelection:u,updateSelection:f}}function ip(e,t){let r=(0,n.useRef)(new WeakMap),i=(0,n.useRef)(0);return(0,n.useCallback)((n,a)=>{if(t!=null){let e=typeof t==`function`?t(n):n[t];if(e!=null&&e!==``)return String(e)}if(n._key)return n[yr];let o=n,s=r.current.get(o);if(s)return s;let c=`${e}-${i.current++}`;return r.current.set(o,c),c},[e,t])}function ap({columns:e=void 0,records:t=void 0,footer:r=void 0,onRowClick:i=void 0,onReorder:a=void 0,onSelectionChange:s=void 0,selection:c=`multiple`,sortable:l=!1,pagination:u=void 0,activeKey:d=void 0,selectedKeys:f=void 0,groupBy:p=void 0,recordId:m=void 0,before:h=void 0,after:g=void 0,wrapperClassName:_=void 0,className:v=void 0,headerClassName:y=void 0,bodyClassName:b=void 0,footerClassName:x=void 0,heightClassName:S=void 0,scrollClassName:C=void 0,selectedClassName:w=void 0,renderCell:T=void 0}){let E=q(`table`),D=Y(`table`),O=w||E.Table.selectedClassName,[k,A]=(0,n.useState)(t||[]),j=(0,n.useMemo)(()=>{if(l&&typeof l!=`boolean`)return l},[typeof l==`object`?l?.dir:void 0,typeof l==`object`?l?.field:void 0]),M=l!==!1,[N,P]=(0,n.useState)(j),[F,I]=(0,n.useState)(null),[L,R]=(0,n.useState)(null),[z,B]=(0,n.useState)(null),[ee,V]=(0,n.useState)(null),[H,U]=(0,n.useState)(null),te=(0,n.useRef)(!1),ne=(0,n.useCallback)(e=>{e&&I(e)},[]),re=(0,n.useId)(),W=!!a,G=M||!!wr.normalize(j),ie=W&&G,ae=!ie&&M,oe=ie?void 0:j;(0,n.useEffect)(()=>{A(t||[])},[t]),(0,n.useEffect)(()=>{P(oe)},[oe?.field,oe?.dir]),(0,n.useEffect)(()=>{ie&&!te.current&&(console.warn("Table: `onReorder` cannot be combined with sortable sorting on the same view. Manual reorder takes precedence and sorting is ignored."),te.current=!0)},[ie]);let se=ip(`row`,m),ce=(0,n.useCallback)((e,t)=>se(e,t),[se]),{activeSelectedKeys:le,selectionState:ue,showSelection:K,updateSelection:de}=rp({records:k,selectedKeys:f,onSelectionChange:s,getRecordKey:ce});(0,n.useEffect)(()=>{H&&(k.some((e,t)=>ce(e,t)===H)||U(null))},[H,ce,k]),(0,n.useEffect)(()=>{if(N||!e?.length||W)return;let t=e.find(e=>ae&&e.sort!==!1);t&&P({field:t.key,dir:`asc`})},[N,ae,e,W]);let fe=(0,n.useMemo)(()=>wr.records(k,N)||[],[k,N]),pe=(e,t,n)=>{let r=e.target;for(;r&&r.tagName!==`TR`;){if([`A`,`BUTTON`,`INPUT`,`LABEL`].includes(r.tagName))return;r=r.parentNode}let a=ce(t,n);O&&d===void 0&&U(e=>e===a?null:a),i?.(t)},me=(e,t,r)=>{if(T)return T(e,t,r);let i=e[t],a=typeof i==`object`&&i&&!Array.isArray(i)?i:null,o=a?.prompt&&a?.value||i;return n.default.isValidElement(o)||typeof o!=`object`||!o?o:Array.isArray(o)&&!o.some(e=>typeof e==`object`&&e)?o.join(`, `):``},he=(0,n.useCallback)((e,t)=>{let n=ce(e,t),r=le.includes(n)?le.filter(e=>e!==n):[...le,n];de(r)},[le,ce,de]),ge=(0,n.useCallback)((e,t)=>{let n=ce(e,t);de(le.includes(n)?[]:[n])},[le,ce,de]),_e=(0,n.useCallback)((e,t)=>{if(!L)return;let n=fe.findIndex((e,t)=>ce(e,t)===L),r=fe.findIndex((n,r)=>ce(n,r)===ce(e,t));B(null),R(null);let i=ee?.position||`after`;if(V(null),n<0||r<0||n===r)return;let o=[...fe],[s]=o.splice(n,1),c=n<r?r+(i===`after`?0:-1):r+ +(i===`after`);o.splice(c,0,s),P(void 0),A(o),a?.(o,{fromIndex:n,toIndex:c,record:s})},[L,ee?.position,ce,a,fe]);if(fe.length===0)return n.default.createElement(`p`,{className:`p-4`},D.noDataFound);let ve=e||Object.keys(fe[0]).map(e=>({key:e,label:e,sort:M})),ye=[`w-full`,E.Table.scrollClassName,S?`${S} overflow-auto`:``,C||``].filter(Boolean).join(` `),be=!!S,xe=ve.length+ +!!K+ +!!W,Se=be?`sticky top-0 z-10 bg-card`:``,Ce=(e,t,r,i)=>!ee||ee.key!==e||ee.position!==t?null:n.default.createElement(`tr`,{"aria-hidden":`true`,onDragOver:n=>{W&&(n.preventDefault(),z!==e&&B(e),V({key:e,position:t}))},onDrop:n=>{W&&(n.preventDefault(),V({key:e,position:t}),_e(r,i))}},n.default.createElement(`td`,{colSpan:xe,className:`border-0 p-0`},n.default.createElement(`div`,{className:`relative h-5 cursor-grab`},n.default.createElement(`div`,{className:`absolute inset-x-2 top-1/2 -translate-y-1/2`},n.default.createElement(`div`,{className:`h-0 rounded-full border-t-2 border-primary/80`}),n.default.createElement(`div`,{className:`absolute left-0 top-1/2 h-2 w-2 -translate-y-1/2 rounded-full bg-primary shadow-sm`}))))),we=n.default.createElement(`tr`,null,K&&n.default.createElement(`th`,{className:[`px-3 py-2 font-semibold text-muted-foreground`,Se].filter(Boolean).join(` `),style:{width:`1%`,whiteSpace:`nowrap`}},c===`single`?n.default.createElement(`div`,{className:`th-inner py-1`}):n.default.createElement(`div`,{className:`th-inner py-1`},n.default.createElement(`input`,{type:`checkbox`,"aria-label":D.selectAllRows,checked:ue.records.length>0&&ue.records.length===k.length,onChange:e=>{let t=e.target.checked?fe.map((e,t)=>ce(e,t)):[];de(t)}}))),W&&n.default.createElement(`th`,{className:[`px-3 py-2 font-semibold text-muted-foreground`,Se].filter(Boolean).join(` `),style:{width:`1%`,whiteSpace:`nowrap`}},n.default.createElement(`div`,{className:`th-inner py-1`})),ve.map(e=>e.label?(()=>{let t=ae&&e.sort!==!1,r=t&&N?.field===e.key,i=r?N?.dir===`desc`?`descending`:`ascending`:`none`;return n.default.createElement(`th`,{key:e.key,className:[`px-3 py-2 font-semibold text-muted-foreground whitespace-nowrap`,Se,e.className||``].filter(Boolean).join(` `),"aria-sort":i},t?n.default.createElement(`button`,{type:`button`,className:`th-inner group inline-flex w-full cursor-pointer items-center gap-2 rounded-sm border-0 bg-transparent px-0 py-1 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 `+(r?`font-semibold text-foreground`:`text-muted-foreground hover:text-foreground`),onClick:()=>P(t=>wr.toggle(t,e.key)),"aria-label":r?J(D.sortByCurrent,{label:e.label,direction:N?.dir===`desc`?`descending`:`ascending`}):J(D.sortBy,{label:e.label}),title:r?`${e.label}: ${N?.dir===`desc`?`descending`:`ascending`}`:J(D.sortBy,{label:e.label})},n.default.createElement(`span`,{className:`inline-flex h-4 w-4 flex-none items-center justify-center transition-colors `+(r?`text-primary`:`text-muted-foreground/70 group-hover:text-foreground/80`),"aria-hidden":`true`},r?N?.dir===`desc`?n.default.createElement(o.ArrowDown,{size:14}):n.default.createElement(o.ArrowUp,{size:14}):n.default.createElement(o.ArrowUpDown,{size:14})),n.default.createElement(`span`,null,e.label)):n.default.createElement(`div`,{className:`th-inner py-1`},e.label))})():n.default.createElement(`th`,{key:e.key,className:[`px-3 py-2 font-semibold text-muted-foreground`,Se].filter(Boolean).join(` `),style:{width:`1%`,whiteSpace:`nowrap`}}))),Te=n.default.createElement(Ah,{records:fe,appendTo:F,wrapperClassName:`px-3 pt-4 pb-2`,...u||{}},(e,t)=>{let r=p?Array.isArray(p)?p:[p]:null,a;return e.map((e,s)=>{let l=t+s,u=ce(e,l),f=r?r.map(t=>String(e[t]??``)).join(` · `):void 0,p=f!==void 0&&f!==a;a=f;let m=le.includes(u),h=z===u,g=L===u,_=O&&(d===void 0?H:d)===u;return n.default.createElement(n.default.Fragment,{key:u},p&&n.default.createElement(`tr`,{"aria-hidden":`true`},n.default.createElement(`td`,{colSpan:xe,className:`bg-muted/40 px-3 py-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground`},f)),Ce(u,`before`,e,l),n.default.createElement(`tr`,{draggable:W,className:[`odd:bg-muted/30 hover:bg-muted/20 transition-colors`,h?`bg-muted/30`:``,_?O:``].filter(Boolean).join(` `)||void 0,style:{cursor:i?`pointer`:W?`grab`:`default`,opacity:g?.45:1},onClick:t=>{i&&pe(t,e,l)},onDragStart:()=>{R(u)},onDragOver:e=>{if(!W)return;e.preventDefault();let t=e.currentTarget.getBoundingClientRect(),n=e.clientY<t.top+t.height/2?`before`:`after`;z!==u&&B(u),L!==u&&V(e=>e?.key===u&&e.position===n?e:{key:u,position:n})},onDragLeave:()=>{z===u&&B(null)},onDragEnd:()=>{R(null),B(null),V(null)},onDrop:t=>{W&&(t.preventDefault(),_e(e,l))}},K&&n.default.createElement(`td`,{className:`px-3 py-2 border-b border-border/50`,style:{width:`1%`,whiteSpace:`nowrap`}},n.default.createElement(`input`,{type:c===`single`?`radio`:`checkbox`,name:c===`single`?re:void 0,"aria-label":J(D.selectRow,{key:u}),checked:m,onChange:()=>{if(c===`single`){ge(e,l);return}he(e,l)},onClick:t=>{t.stopPropagation(),c===`single`&&(t.preventDefault(),ge(e,l))}})),W&&n.default.createElement(`td`,{className:`px-3 py-2 border-b border-border/50`,style:{width:`1%`,whiteSpace:`nowrap`}},n.default.createElement(`button`,{type:`button`,draggable:W,className:`inline-flex cursor-grab items-center justify-center rounded-sm border-0 bg-transparent p-0 text-muted-foreground`,"aria-label":J(D.reorderRow,{key:u}),onClick:e=>e.preventDefault(),onDragStart:e=>{e.stopPropagation(),R(u)},onDragEnd:e=>{e.stopPropagation(),R(null),B(null),V(null)}},n.default.createElement(o.GripVertical,{size:14}))),ve.map(t=>n.default.createElement(`td`,{key:t.key,className:`px-3 py-2 border-b border-border/50`},me(e,t.key,l)))),Ce(u,`after`,e,l))})});return n.default.createElement(`div`,{className:`flex items-stretch gap-3`},h&&n.default.createElement(`div`,{className:`table-before flex shrink-0 items-center self-stretch`},h),n.default.createElement(`div`,{ref:ne,className:`min-w-0 flex-1 overflow-x-auto `+(_||E.Table.wrapperClassName)},n.default.createElement(`div`,{className:ye},n.default.createElement(`table`,{className:`w-full text-left text-sm border-collapse `+(v||E.Table.className)},n.default.createElement(`thead`,{className:`border-b `+(y||E.Table.headerClassName)},we),n.default.createElement(`tbody`,{className:b||E.Table.bodyClassName},Te),r&&n.default.createElement(`tfoot`,{className:x||E.Table.footerClassName},r)))),g&&n.default.createElement(`div`,{className:`table-after flex shrink-0 items-center self-stretch`},g))}var op=12,sp=12,cp=(e,t,n)=>Math.max(t,Math.min(n,e)),lp=e=>{if(!e)return``;let t=e.trim().replace(/^\{/,``).replace(/\}$/,``).trim(),n=t.split(`.`);return(n[n.length-1]||t).trim()},up=(e,t)=>{let n=e-t.left,r=t.width/op;return cp(Math.floor(n/r),0,11)},dp=()=>`${Date.now()}_${Math.random().toString(16).slice(2)}`,fp=(e,t,n)=>{let r=e=>{let r=e+t;return r>op?!1:!n.some(t=>{let n=e,i=r,a=t.colStart;return n<t.colStart+t.colSpan&&a<i})};for(let n=e;n<=op-t;n++)if(r(n))return n;for(let e=0;e<=op-t;e++)if(r(e))return e;return null},pp=(e,t,n)=>{let r=e.find(e=>e.id===t);if(!r)return e;let i=e.filter(e=>e.id!==t),a=fp(cp(n,0,op-r.colSpan),r.colSpan,i);return a===null?e:e.map(e=>e.id===t?{...e,colStart:a}:e)},mp=(e,t,n)=>{let r=e.find(e=>e.id===t);if(!r)return e;let i=e.filter(e=>e.id!==t),a=cp(n,1,op-r.colStart),o=e=>{let t=r.colStart,n=r.colStart+e;return i.some(e=>{let r=e.colStart,i=e.colStart+e.colSpan;return t<i&&r<n})};for(;a>1&&o(a);)a--;return o(a)?e:e.map(e=>e.id===t?{...e,colSpan:a}:e)},hp=(e,t,n)=>{if(n<=0)return null;let r=e.map(e=>{let n=e.colStart+e.colSpan/2;return{it:e,dist:Math.abs(n-(t+.5))}}).sort((e,t)=>e.dist-t.dist).map(e=>e.it);for(let t of r){if(t.colSpan-1<n)continue;let r=t.colSpan-n,i=t.colStart+r;if(!(i<0||i+n>op))return{nextItems:e.map(e=>e.id===t.id?{...e,colSpan:r}:e),insertCol:i}}return null},gp=(0,n.forwardRef)(({name:e,defaultSpan:t=1,heightPx:r=100},i)=>{let a=(0,n.useRef)(null),o=Y(`layout`),{value:s,handleChange:c}=Dc({name:e,defaultValue:[]}),l=Array.isArray(s)?s:[],u=t=>{let n=typeof t==`function`?t(l):t;c({target:{name:e,value:n}})},[d,f]=(0,n.useState)(null),[p,m]=(0,n.useState)(null),[h,g]=(0,n.useState)(``),_=(0,n.useRef)(null),v=e=>{g(e),_.current&&window.clearTimeout(_.current),_.current=window.setTimeout(()=>g(``),2500)};(0,n.useEffect)(()=>()=>{_.current&&window.clearTimeout(_.current)},[]),(0,n.useImperativeHandle)(i,()=>({getValue:()=>l,setValue:e=>u(e),clear:()=>u([])}));let y=(0,n.useMemo)(()=>Array.from({length:op},(e,t)=>t),[]),b=e=>{e.preventDefault()},x=e=>{if(e.preventDefault(),e.dataTransfer.getData(`application/x-layoutbuilder-internal`)){f(null);return}if(l.length>=sp){v(o.maxElements);return}let n=a.current;if(!n)return;let r=n.getBoundingClientRect(),i=up(e.clientX,r),s=lp(e.dataTransfer.getData(`text/plain`)||e.dataTransfer.getData(`label`)||``)||`unknown`,c=cp(t,1,op),d=fp(cp(i,0,op-c),c,l);if(d!==null){u(e=>[...e,{id:dp(),fieldName:s,colStart:d,colSpan:c}]);return}if(!hp(l,i,c)){v(o.noSpace);return}u(e=>{if(e.length>=sp)return v(o.maxElements),e;let t=hp(e,i,c);if(!t)return v(o.noSpace),e;let n={id:dp(),fieldName:s,colStart:t.insertCol,colSpan:c};return[...t.nextItems,n]})},S=e=>t=>{f(e),t.dataTransfer.setData(`application/x-layoutbuilder-internal`,e),t.dataTransfer.effectAllowed=`move`},C=e=>{if(e.preventDefault(),!d)return;let t=a.current;if(!t)return;let n=t.getBoundingClientRect(),r=up(e.clientX,n);u(e=>pp(e,d,r))},w=()=>f(null),T=e=>t=>{t.stopPropagation(),t.preventDefault();let n=l.find(t=>t.id===e);n&&m({id:e,startClientX:t.clientX,startSpan:n.colSpan})},E=e=>{if(!p)return;let t=a.current;if(!t)return;let n=t.getBoundingClientRect().width/op,r=e.clientX-p.startClientX,i=Math.round(r/n),o=p.startSpan+i;u(e=>mp(e,p.id,o))},D=()=>{p&&m(null)},O=e=>u(t=>t.filter(t=>t.id!==e));return n.default.createElement(`div`,{onMouseMove:E,onMouseUp:D,onMouseLeave:D},h&&n.default.createElement(`div`,{style:{marginBottom:8,padding:`8px 10px`,borderRadius:10,border:`1px solid rgba(255,255,255,0.15)`,background:`rgba(255,255,255,0.04)`,fontSize:12,opacity:.95}},h),n.default.createElement(`div`,{ref:a,onDragOver:e=>{b(e),C(e)},onDrop:x,onDragEnd:w,style:{position:`relative`,height:r,borderRadius:12,border:`2px dashed rgba(255, 255, 255, 0.25)`,background:`rgba(0,0,0,0.02)`,overflow:`hidden`}},y.map(e=>n.default.createElement(`div`,{key:e,style:{position:`absolute`,top:0,bottom:0,left:`${e/op*100}%`,width:1,background:`rgba(255, 255, 255, 0.06)`,pointerEvents:`none`}})),l.map(e=>n.default.createElement(`div`,{key:e.id,draggable:!0,onDragStart:S(e.id),style:{position:`absolute`,top:12,bottom:12,left:`${e.colStart/op*100}%`,width:`${e.colSpan/op*100}%`,padding:10,borderRadius:12,border:`1px solid rgba(255, 255, 255, 0.18)`,boxShadow:`0 1px 2px rgba(0,0,0,0.06)`,cursor:d===e.id?`grabbing`:`grab`,display:`flex`,alignItems:`center`,justifyContent:`center`,userSelect:`none`},title:o.dragToMove},n.default.createElement(`div`,{style:{fontSize:10,fontWeight:400,opacity:.9}},e.fieldName),n.default.createElement(`button`,{type:`button`,onClick:()=>O(e.id),style:{position:`absolute`,border:`none`,top:3,right:3,color:`white`,background:`rgba(255, 255, 255, 0.03)`,fontSize:12,cursor:`pointer`},title:o.remove},`×`),n.default.createElement(`div`,{onMouseDown:T(e.id),style:{position:`absolute`,right:4,top:`50%`,transform:`translateY(-50%)`,width:10,height:30,borderRadius:6,background:`rgba(255, 255, 255, 0.12)`,cursor:`ew-resize`},title:o.dragToResize}))),l.length===0&&n.default.createElement(`div`,{style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,pointerEvents:`none`}},o.dragHere)))}),_p=(0,n.createContext)(void 0);function vp({config:e,children:t}){return n.default.createElement(_p.Provider,{value:e},t)}function yp(){return(0,n.useContext)(_p)}var bp,xp;function Sp(e){if(typeof window>`u`)return Promise.reject(Error(`loadGoogleMaps can only run in the browser`));if(!e.apiKey)return Promise.reject(Error(`GoogleMapsConfig.apiKey is required`));if(xp!==void 0&&xp!==e.apiKey)return Promise.reject(Error(`loadGoogleMaps was already initialized with a different apiKey`));if(window.google?.maps?.places)return Promise.resolve(window.google);if(bp)return bp;xp=e.apiKey;let t=`__googleMapsLoader_${Math.random().toString(36).slice(2)}`;return bp=new Promise((n,r)=>{window[t]=()=>{delete window[t],window.google?.maps?.places?n(window.google):r(Error(`Google Maps script loaded but the places library is unavailable`))};let i=document.createElement(`script`);i.src=`https://maps.googleapis.com/maps/api/js?${new URLSearchParams({key:e.apiKey,libraries:`places`,loading:`async`,callback:t,...e.language?{language:e.language}:{},...e.region?{region:e.region}:{}}).toString()}`,i.async=!0,i.onerror=()=>r(Error(`Failed to load the Google Maps script`)),document.head.appendChild(i)}),bp}var Cp={lat:41.8719,lng:12.5674},wp=5;function Tp(e){return(e??[]).map(e=>({longText:e.longText??``,shortText:e.shortText??e.longText??``,types:e.types}))}function Ep(e){return e.map(e=>({longText:e.long_name,shortText:e.short_name,types:e.types}))}function Dp(e,t,n=!0){let r=e.find(e=>e.types.includes(t));if(r)return(n?r.longText:r.shortText)||void 0}function Op(e,t,n,r){let i=Dp(e,`street_number`),a=Dp(e,`route`);return{street:[a,i].filter(Boolean).join(`, `)||a||void 0,city:Dp(e,`locality`)??Dp(e,`postal_town`)??Dp(e,`sublocality`),state:Dp(e,`administrative_area_level_2`,!1)??Dp(e,`administrative_area_level_1`,!1),zip:Dp(e,`postal_code`),country:Dp(e,`country`),countryCode:Dp(e,`country`,!1),lat:t,lng:n,formatted:r}}function kp(e){return Op(Tp(e.addressComponents),e.location?.lat(),e.location?.lng(),e.formattedAddress??void 0)}function Ap(e){return Op(Ep(e.address_components),e.geometry.location.lat(),e.geometry.location.lng(),e.formatted_address)}var jp=({name:e,label:t=void 0,required:r=!1,placeholder:i=void 0,disabled:a=!1,feedback:o=void 0,countries:s=void 0,language:c=void 0,region:l=void 0,validator:u=void 0,onSelect:d=void 0,fieldNames:f=void 0,map:p=!1,id:m=void 0,labelClassName:h=void 0,inheritWrapperClassName:g=!0,wrapperClassName:_=void 0,className:v=void 0,menuClassName:y=void 0,itemClassName:b=void 0,mapClassName:x=void 0})=>{let S=Y(`addressAutocomplete`),C=q(`addressAutocomplete`),w=yp(),T={street:f?.street??`${e}.street`,city:f?.city??`${e}.city`,state:f?.state??`${e}.state`,zip:f?.zip??`${e}.zip`,country:f?.country??`${e}.country`,countryCode:f?.countryCode??`${e}.countryCode`,lat:f?.lat??`${e}.lat`,lng:f?.lng??`${e}.lng`,zoom:f?.zoom??`${e}.zoom`,formatted:f?.formatted??`${e}.formatted`},E=Dc({name:T.formatted,wrapperClassName:_,inheritWrapperClassName:g}),D=Dc({name:T.street}),O=Dc({name:T.city}),k=Dc({name:T.state}),A=Dc({name:T.zip}),j=Dc({name:T.country}),M=Dc({name:T.countryCode}),N=Dc({name:T.lat}),P=Dc({name:T.lng}),F=Dc({name:T.zoom}),I=Ec(e,{required:r,label:t,validator:u}),L=(0,n.useId)(),R=m??L,z=typeof p==`object`?p:{},B=!!p,ee=z.position??`below`,V=z.defaultZoom??15,H=z.height??240,[U,te]=(0,n.useState)(typeof E.value==`string`?E.value:``),[ne,re]=(0,n.useState)([]),[W,G]=(0,n.useState)(!1),[ie,ae]=(0,n.useState)(!1),[oe,se]=(0,n.useState)(null),ce=(0,n.useRef)(void 0),le=(0,n.useRef)(0),ue=(0,n.useRef)(null),K=(0,n.useRef)(null),de=(0,n.useRef)(void 0),fe=(0,n.useRef)(void 0),pe=(0,n.useRef)(void 0),me=(0,n.useRef)(void 0),he=(0,n.useRef)(!1);(0,n.useEffect)(()=>{typeof E.value==`string`&&E.value!==U&&te(E.value)},[E.value]),(0,n.useEffect)(()=>{if(!W)return;let e=e=>{ue.current?.contains(e.target)||G(!1)};return window.document.addEventListener(`pointerdown`,e),()=>window.document.removeEventListener(`pointerdown`,e)},[W]),(0,n.useEffect)(()=>{if(!w)return;let e=++le.current,t=U.trim();if(t.length<3){re([]),ae(!1);return}ae(!0);let n=window.setTimeout(()=>{(async()=>{try{let n=await Sp({apiKey:w.apiKey,language:c??w.language,region:l??w.region});if(de.current=n,e!==le.current)return;ce.current??=new n.maps.places.AutocompleteSessionToken;let{suggestions:r}=await n.maps.places.AutocompleteSuggestion.fetchAutocompleteSuggestions({input:t,sessionToken:ce.current,includedRegionCodes:s,language:c??w.language,region:l??w.region});if(e!==le.current)return;re(r.filter(e=>e.placePrediction).map(e=>({id:e.placePrediction.placeId,text:e.placePrediction.text.text,prediction:e.placePrediction}))),se(null)}catch(t){if(e!==le.current)return;re([]),se(t instanceof Error?t.message:S.loadError)}finally{e===le.current&&ae(!1)}})()},250);return()=>window.clearTimeout(n)},[U,w]);let ge=(e,t)=>{he.current=!0;let n=e.formatted??U;te(n),E.handleChange({target:{name:T.formatted,value:n}}),e.street!==void 0&&D.handleChange({target:{name:T.street,value:e.street}}),e.city!==void 0&&O.handleChange({target:{name:T.city,value:e.city}}),e.state!==void 0&&k.handleChange({target:{name:T.state,value:e.state}}),e.zip!==void 0&&A.handleChange({target:{name:T.zip,value:e.zip}}),e.country!==void 0&&j.handleChange({target:{name:T.country,value:e.country}}),e.countryCode!==void 0&&M.handleChange({target:{name:T.countryCode,value:e.countryCode}}),e.lat!==void 0&&N.handleChange({target:{name:T.lat,value:e.lat}}),e.lng!==void 0&&P.handleChange({target:{name:T.lng,value:e.lng}}),t!==void 0&&F.handleChange({target:{name:T.zoom,value:t}}),d?.(e)},_e=e=>{e.addListener(`dragend`,()=>{let t=e.getPosition();t&&ye(t)})},ve=(e,t)=>{fe.current&&(pe.current?pe.current.setPosition(t):(pe.current=new e.maps.Marker({position:t,map:fe.current,draggable:!0}),_e(pe.current)))},ye=async e=>{try{if(!me.current)return;let t=(await me.current.geocode({location:e})).results[0];if(!t)return;ge(Ap(t)),se(null)}catch(e){se(e instanceof Error?e.message:S.loadError)}};(0,n.useEffect)(()=>{if(he.current){he.current=!1;return}if(!w)return;let e=[D.value,A.value,O.value,k.value,j.value].filter(e=>typeof e==`string`&&e.trim().length>0);if(e.length===0)return;let t=e.join(`, `),n=window.setTimeout(()=>{(async()=>{try{let e=await Sp({apiKey:w.apiKey,language:c??w.language,region:l??w.region});de.current=e,me.current??=new e.maps.Geocoder;let n=(await me.current.geocode({address:t,region:l??w.region})).results[0];if(!n)return;let r=Ap(n),i=r.formatted??t;if(te(i),E.handleChange({target:{name:T.formatted,value:i}}),r.lat!==void 0&&N.handleChange({target:{name:T.lat,value:r.lat}}),r.lng!==void 0&&P.handleChange({target:{name:T.lng,value:r.lng}}),fe.current&&r.lat!==void 0&&r.lng!==void 0){let t=new e.maps.LatLng(r.lat,r.lng);fe.current.panTo(t),ve(e,t)}se(null)}catch(e){se(e instanceof Error?e.message:S.loadError)}})()},600);return()=>window.clearTimeout(n)},[D.value,O.value,k.value,A.value,j.value,w]),(0,n.useEffect)(()=>{if(!B||!w||!K.current||fe.current)return;let e=!1;return Sp({apiKey:w.apiKey,language:c??w.language,region:l??w.region}).then(t=>{if(e||!K.current||fe.current)return;de.current=t;let n=typeof N.value==`number`&&typeof P.value==`number`,r=n?{lat:N.value,lng:P.value}:Cp,i=typeof F.value==`number`?F.value:n?V:wp,a=new t.maps.Map(K.current,{center:r,zoom:i,streetViewControl:!1,mapTypeControl:!1,fullscreenControl:!1});fe.current=a,me.current=new t.maps.Geocoder,n&&(pe.current=new t.maps.Marker({position:r,map:a,draggable:!0}),_e(pe.current)),a.addListener(`click`,e=>{e.latLng&&(ve(t,e.latLng),ye(e.latLng))}),a.addListener(`zoom_changed`,()=>{let e=a.getZoom();typeof e==`number`&&F.handleChange({target:{name:T.zoom,value:e}})})}).catch(t=>{e||se(t instanceof Error?t.message:S.loadError)}),()=>{e=!0}},[B,w]);let be=async e=>{G(!1);try{let t=e.prediction.toPlace();await t.fetchFields({fields:[`addressComponents`,`location`,`formattedAddress`]});let n=kp(t);ge(n,B?V:void 0);let r=de.current;if(B&&r&&fe.current&&n.lat!==void 0&&n.lng!==void 0){let e=new r.maps.LatLng(n.lat,n.lng);fe.current.setCenter(e),fe.current.setZoom(V),ve(r,e)}ce.current=void 0,se(null)}catch(e){se(e instanceof Error?e.message:S.loadError)}};if(!w)return n.default.createElement(Z,{className:E.formWrapClass},t&&n.default.createElement(gl,{label:t,required:r,htmlFor:R,className:h}),n.default.createElement(`input`,{id:R,disabled:!0,className:X(Bc,v||C.AddressAutocomplete.className),placeholder:S.notConfigured,title:S.notConfigured}),n.default.createElement(`div`,{className:zc},S.notConfigured));let xe=B?n.default.createElement(`div`,{ref:K,className:X(`mt-2 w-full overflow-hidden rounded-md border`,x),style:{height:H}}):null;return n.default.createElement(Z,{className:E.formWrapClass||C.AddressAutocomplete.wrapperClassName},t&&n.default.createElement(gl,{label:t,required:r,htmlFor:R,className:h}),ee===`above`&&xe,n.default.createElement(`div`,{ref:ue,className:`relative`},n.default.createElement(`input`,{id:R,type:`text`,role:`combobox`,"aria-expanded":W,"aria-autocomplete":`list`,autoComplete:`off`,className:X(Bc,`pr-8`,I&&`border-destructive focus-visible:ring-destructive/20`,v||C.AddressAutocomplete.className),placeholder:i??S.placeholder,required:r,disabled:a,value:U,onChange:e=>{te(e.target.value),G(!0)},onFocus:()=>G(!0)}),n.default.createElement(`span`,{className:`pointer-events-none absolute inset-y-0 right-2 flex items-center text-muted-foreground`},n.default.createElement(Q,{name:ie?`loader-circle`:`map-pin`,size:15,className:ie?`animate-spin`:void 0})),W&&U.trim().length>=3&&n.default.createElement(`div`,{className:X(`absolute z-50 mt-1 max-h-64 w-full overflow-y-auto rounded-md border p-1 text-sm shadow-lg`,y||C.AddressAutocomplete.menuClassName)},oe?n.default.createElement(`div`,{className:`px-2 py-3 text-center text-destructive`},oe):ie&&ne.length===0?n.default.createElement(`div`,{className:`px-2 py-3 text-center text-muted-foreground`},S.searching):ne.length===0?n.default.createElement(`div`,{className:`px-2 py-3 text-center text-muted-foreground`},S.noResults):ne.map(e=>n.default.createElement(`button`,{key:e.id,type:`button`,className:X(`flex w-full items-start gap-2 rounded-sm px-2 py-1.5 text-left transition-colors hover:bg-accent hover:text-accent-foreground`,b||C.AddressAutocomplete.itemClassName),onClick:()=>{be(e)}},n.default.createElement(Q,{name:`map-pin`,size:14,className:`mt-0.5 shrink-0 text-muted-foreground`}),n.default.createElement(`span`,{className:`min-w-0 truncate`},e.text))))),ee===`below`&&xe,I?n.default.createElement(Zc,{message:I}):o&&n.default.createElement(`div`,{className:`mt-1 text-xs text-muted-foreground`},o))},Mp=({name:e,onDataLoaded:t,onClear:r=void 0,onParseField:i=void 0,label:a=void 0,icon:o=`upload`,delimiter:s=void 0,normalizeKeys:c=!1,removeEmptyFields:l=!1,required:u=!1,before:d=void 0,after:f=void 0,wrapperClassName:p=void 0,className:h=void 0})=>{let g=Y(`upload`),[_,v]=(0,n.useState)(null),[y,b]=(0,n.useState)(!1),[x,S]=(0,n.useState)(null),C=(0,n.useRef)(null),w=([e,t])=>{if(![``,null,void 0].includes(e)&&t!==void 0&&!(l&&[``,null].includes(t)))return c&&(e=P(e)),i?i([e,t]):[e.trim(),he(t)]},T=e=>{e&&m.default.parse(e,{header:!0,skipEmptyLines:!0,delimiter:s,dynamicTyping:!1,complete:n=>{v(null),S(e),t({data:n.data.map(e=>Object.fromEntries(Object.entries(e).reduce((e,[t,n])=>{let r=w([t,n]);return r&&e.push(r),e},[]))),fields:(n.meta?.fields||[]).reduce((e,t)=>(t&&e.push(c?P(t):t),e),[]),file:e})},error:e=>{v(e instanceof Error?e.message:String(e)),S(null)}})},E=e=>{T(e.target.files?.[0]??null),e.target.value=``},D=e=>{e.preventDefault(),e.stopPropagation(),b(!0)},O=e=>{e.preventDefault(),e.stopPropagation(),b(!1)},k=e=>{e.preventDefault(),e.stopPropagation(),b(!1),T(e.dataTransfer.files?.[0]??null)},A=()=>C.current?.click();return n.default.createElement(Z,{className:p},d,n.default.createElement(`div`,{className:X(h),"data-name":e},a&&n.default.createElement(gl,{label:a,required:u}),n.default.createElement(`input`,{ref:C,type:`file`,accept:`.csv,.tsv,text/csv,text/plain`,className:`hidden`,onChange:E}),x?n.default.createElement(`div`,{className:`rounded-lg border border-border overflow-hidden`},n.default.createElement(`div`,{className:`flex items-center gap-3 px-3 py-3`},n.default.createElement(`div`,{className:`w-9 h-9 rounded-md bg-emerald-500/10 flex items-center justify-center shrink-0`},n.default.createElement(Q,{name:`file-text`,className:`w-4 h-4 text-emerald-600`})),n.default.createElement(`div`,{className:`flex-1 min-w-0`},n.default.createElement(`p`,{className:`text-sm font-medium truncate`},x.name),n.default.createElement(`p`,{className:`text-xs text-muted-foreground`},(e=>e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`)(x.size))),n.default.createElement(`div`,{className:`flex items-center gap-1 text-xs text-emerald-600 font-medium shrink-0`},n.default.createElement(Q,{name:`check-circle`,className:`w-4 h-4`}),g.loaded),n.default.createElement(`button`,{type:`button`,onClick:()=>{S(null),r?.()},className:`w-7 h-7 flex items-center justify-center rounded-full text-muted-foreground hover:bg-red-50 hover:text-red-500 transition-colors`,title:g.removeFile},n.default.createElement(Q,{name:`x`,className:`w-3.5 h-3.5`}))),n.default.createElement(`div`,{className:`px-3 py-2 border-t border-border bg-muted/20`},n.default.createElement(`button`,{type:`button`,onClick:A,className:`flex items-center gap-1.5 text-xs text-muted-foreground hover:text-primary transition-colors`},n.default.createElement(Q,{name:`refresh-cw`,className:`w-3.5 h-3.5`}),g.uploadAnother))):n.default.createElement(`button`,{type:`button`,onClick:A,onDragOver:D,onDragLeave:O,onDrop:k,className:X(`w-full flex flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed py-8 px-4 transition-colors cursor-pointer`,y?`border-primary/60 bg-primary/8 text-primary`:`border-muted-foreground/25 bg-muted/30 text-muted-foreground hover:border-primary/40 hover:bg-primary/5 hover:text-primary/70`)},n.default.createElement(Q,{name:o,className:`w-8 h-8`}),n.default.createElement(`span`,{className:`text-sm font-medium`},y?g.dropToParse:g.clickOrDrag),n.default.createElement(`span`,{className:`text-xs opacity-60`},`.csv, .tsv`)),_&&n.default.createElement(Zc,{message:`Parse error: ${_}`})),f)};function Np(e){return e?typeof e==`string`?n.default.createElement(Q,{name:e,size:16}):e:null}function Pp({title:e=void 0,description:t=void 0,meta:i=void 0,badge:a=void 0,icon:o=void 0,trailing:s=void 0,footer:c=void 0,children:l=void 0,href:u=void 0,external:d=!1,active:f=!1,disabled:p=!1,dashed:m=!1,compact:h=!1,align:g=`start`,onClick:_=void 0,before:v=void 0,after:y=void 0,wrapperClassName:b=void 0,className:x=void 0,titleClassName:S=void 0,descriptionClassName:C=void 0,metaClassName:w=void 0,badgeClassName:T=void 0,leadingClassName:E=void 0,bodyClassName:D=void 0,headerClassName:O=void 0,trailingClassName:k=void 0,footerClassName:A=void 0,style:j=void 0,motion:M=void 0}){let N=q(`listCard`),P=!!u||!!_,F=Vt(p||!P,j,M??N.ListCard.motion?.press??`press`),I=Np(o),L=c??l,R=X(`flex w-full gap-3 rounded-xl border border-border/60 bg-background p-4 text-left transition-[background-color,border-color,box-shadow,color] duration-150`,g===`center`?`items-center`:`items-start`,P&&!p&&`cursor-pointer`,N.ListCard.className,f?N.ListCard.activeClassName:N.ListCard.inactiveClassName,p&&N.ListCard.disabledClassName,m&&N.ListCard.dashedClassName,h&&N.ListCard.compactClassName,x),z=n.default.createElement(n.default.Fragment,null,I?n.default.createElement(`div`,{className:X(`mt-0.5 flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,g===`center`&&`mt-0`,N.ListCard.leadingClassName,E)},I):null,n.default.createElement(`div`,{className:X(`min-w-0 flex-1`,N.ListCard.bodyClassName,D)},e||a?n.default.createElement(`div`,{className:X(`flex items-center gap-2`,N.ListCard.headerClassName,O)},e?n.default.createElement(`div`,{className:X(`min-w-0 flex-1 truncate text-sm font-semibold text-foreground`,N.ListCard.titleClassName,S)},e):n.default.createElement(`div`,{className:`flex-1`}),a?n.default.createElement(`div`,{className:X(`shrink-0`,N.ListCard.badgeClassName,T)},a):null):null,t?n.default.createElement(`div`,{className:X(`mt-1 text-sm text-muted-foreground`,N.ListCard.descriptionClassName,C)},t):null,i?n.default.createElement(`div`,{className:X(`mt-1 text-xs text-muted-foreground`,N.ListCard.metaClassName,w)},i):null,L?n.default.createElement(`div`,{className:X(`mt-3`,N.ListCard.footerClassName,A)},L):null),s?n.default.createElement(`div`,{className:X(`shrink-0 self-center`,N.ListCard.trailingClassName,k)},s):null),B=e=>{if(p){e.preventDefault(),e.stopPropagation();return}_?.(e)},ee;return ee=u&&!p?d?n.default.createElement(`a`,{href:u,target:`_blank`,rel:`noreferrer noopener`,className:R,style:F.style,...F.pressHandlers,onClick:B},z):n.default.createElement(r.Link,{to:u,className:R,style:F.style,...F.pressHandlers,onClick:B},z):P?n.default.createElement(`button`,{type:`button`,className:R,style:F.style,disabled:p,...F.pressHandlers,onClick:B},z):n.default.createElement(`div`,{className:R,style:j,"aria-disabled":p||void 0},z),n.default.createElement(Z,{className:X(N.ListCard.wrapperClassName,b)},v,ee,y)}function Fp(e,t,n){let r=[...e],[i]=r.splice(t,1);return r.splice(Math.max(0,Math.min(n,r.length)),0,i),r}function Ip({items:e,getKey:t,renderItem:r,onReorder:i=void 0,label:a=void 0,numbered:o=!1,disabled:s=!1,emptyState:c=void 0,className:l=void 0,itemClassName:u=void 0,cardClassName:d=void 0}){let f=Y(`sortableList`),[p,m]=(0,n.useState)(null),[h,g]=(0,n.useState)(null),[_,v]=(0,n.useState)(``),y=!s&&!!i&&e.length>1;if(!e.length)return c?n.default.createElement(n.default.Fragment,null,c):null;let b=(t,n)=>{!i||t===n||n<0||n>=e.length||(i(Fp(e,t,n),{fromIndex:t,toIndex:n,item:e[t]}),v(J(f.moved,{position:n+1,total:e.length})))},x=e=>{if(p===null||!h)return;let t=h.after?e+1:e;b(p,t>p?t-1:t),m(null),g(null)};return n.default.createElement(`div`,{className:l},n.default.createElement(`ul`,{className:`flex flex-col gap-2`,"aria-label":a},e.map((i,a)=>{let s=r(i,a),c=h?.index===a&&p!==null&&p!==a;return n.default.createElement(`li`,{key:t(i),className:X(`relative flex items-stretch gap-2`,p===a&&`opacity-50`,u),onDragOver:e=>{if(!y||p===null)return;e.preventDefault();let t=e.currentTarget.getBoundingClientRect();g({index:a,after:e.clientY>t.top+t.height/2})},onDragLeave:()=>g(e=>e?.index===a?null:e),onDrop:e=>{y&&(e.preventDefault(),x(a))}},c&&n.default.createElement(`span`,{"aria-hidden":`true`,className:X(`pointer-events-none absolute inset-x-0 h-0.5 rounded-full bg-primary`,h.after?`-bottom-1.5`:`-top-1.5`)}),y&&n.default.createElement(`button`,{type:`button`,draggable:!0,"aria-label":J(f.handle,{position:a+1,total:e.length}),className:`flex w-6 shrink-0 cursor-grab items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring active:cursor-grabbing`,onDragStart:e=>{m(a),e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t(i))},onDragEnd:()=>{m(null),g(null)},onKeyDown:e=>{e.key===`ArrowUp`?(e.preventDefault(),b(a,a-1)):e.key===`ArrowDown`&&(e.preventDefault(),b(a,a+1))}},n.default.createElement(Q,{name:`grip-vertical`,size:16})),o&&n.default.createElement(`span`,{className:`flex w-6 shrink-0 items-center justify-center text-sm font-medium tabular-nums text-muted-foreground`,"aria-hidden":`true`},a+1),n.default.createElement(Pp,{compact:!0,wrapperClassName:`min-w-0 flex-1`,className:d,...s}))})),n.default.createElement(`span`,{className:`sr-only`,"aria-live":`polite`},_))}var Lp=208,Rp=52;function zp(e){return e.map(e=>({path:e.path,title:e.title,icon:e.icon,group:e.group,end:e.end,badge:e.badge,children:e.children?zp(e.children):void 0}))}function Bp(e,t,n){return n?e===t:e===t||t!==`/`&&e.startsWith(t+`/`)}function Vp(e){let t=new Map;for(let n of e){let e=n.group??`General`;t.has(e)||t.set(e,[]),t.get(e).push(n)}return[...t.entries()].map(([e,t])=>({key:e,items:t}))}function Hp({value:e}){let t=q(`sideNav`);return n.default.createElement(`span`,{className:X(`ml-auto shrink-0 text-[10px] font-semibold leading-none px-1.5 py-[3px] rounded-full bg-primary/15 text-primary`,t.SideNav.itemBadgeClassName)},e)}function Up({children:e,open:t}){let{pathname:i}=(0,r.useLocation)(),a=q(`sideNav`);return n.default.createElement(`div`,{style:{maxHeight:t?`${e.length*34+8}px`:`0px`,overflow:`hidden`,transition:`max-height 200ms ease`}},n.default.createElement(`div`,{className:`py-0.5 space-y-0.5`},e.map(e=>{let t=Bp(i,e.path,e.end);return n.default.createElement(r.Link,{key:e.path,to:e.path,"aria-current":t?`page`:void 0,className:X(`flex items-center rounded-md pl-9 pr-3 py-[6px] text-sm transition-colors`,a.SideNav.subItemClassName,t?a.SideNav.subItemActiveClassName:a.SideNav.subItemInactiveClassName)},n.default.createElement(`span`,{className:`flex-1 truncate`},e.title),e.badge!==void 0&&n.default.createElement(Hp,{value:e.badge}))})))}function Wp({item:e,expanded:t,open:i,showIcons:a,onToggle:o}){let{pathname:s}=(0,r.useLocation)(),c=q(`sideNav`),l=Y(`sideNav`),u=(e.children?.length??0)>0,d=Bp(s,e.path,e.end),f=u&&e.children.some(e=>Bp(s,e.path,e.end)),p=d?c.SideNav.itemActiveClassName:f?c.SideNav.itemChildActiveClassName:c.SideNav.itemInactiveClassName,m=a?n.default.createElement(`span`,{className:X(`relative shrink-0 flex items-center justify-center w-[18px] h-[18px]`,c.SideNav.itemIconClassName)},e.icon?n.default.createElement(Q,{name:e.icon,size:17}):n.default.createElement(`span`,{className:`w-1.5 h-1.5 rounded-full bg-current opacity-30`}),!t&&e.badge!==void 0&&n.default.createElement(`span`,{className:X(`absolute -top-0.5 -right-1 w-[7px] h-[7px] rounded-full bg-primary ring-1 ring-background`,c.SideNav.itemCollapsedBadgeClassName)})):null,h={opacity:+!!t,maxWidth:t?`200px`:`0px`,overflow:`hidden`,whiteSpace:`nowrap`,transition:`opacity 150ms ease, max-width 200ms ease`},g=X(`flex items-center w-full rounded-md px-2 py-[7px] text-sm transition-colors gap-2.5`,c.SideNav.itemClassName);return u?n.default.createElement(`div`,null,n.default.createElement(`div`,{className:`flex items-center gap-0.5`},n.default.createElement(r.Link,{to:e.path,title:t?void 0:e.title,"aria-current":d?`page`:void 0,className:X(`flex-1 flex items-center gap-2.5 rounded-md px-2 py-[7px] text-sm transition-colors`,c.SideNav.itemClassName,p)},m,n.default.createElement(`span`,{style:h,className:c.SideNav.itemTextClassName},e.title),t&&e.badge!==void 0&&n.default.createElement(Hp,{value:e.badge})),t&&n.default.createElement(`button`,{onClick:()=>o(e.path),className:X(`shrink-0 flex items-center justify-center w-6 h-6 rounded transition-colors text-muted-foreground/50 hover:text-foreground hover:bg-accent`,c.SideNav.itemToggleClassName),title:i?l.collapseGroup:l.expandGroup,"aria-label":i?l.collapseGroup:l.expandGroup},n.default.createElement(`span`,{style:{transform:i?`rotate(180deg)`:`rotate(0deg)`,transition:`transform 200ms ease`}},n.default.createElement(Q,{name:`chevron-down`,size:13})))),t&&n.default.createElement(Up,{children:e.children,open:i})):n.default.createElement(r.Link,{to:e.path,title:t?void 0:e.title,"aria-current":d?`page`:void 0,className:X(g,p)},m,n.default.createElement(`span`,{style:h,className:c.SideNav.itemTextClassName},e.title),t&&e.badge!==void 0&&n.default.createElement(Hp,{value:e.badge}))}function Gp({group:e,expanded:t,openItems:r,showIcons:i,onToggle:a}){let o=e.key===`General`,s=q(`sideNav`);return n.default.createElement(`div`,{className:`mb-1`},!o&&n.default.createElement(`div`,{style:{height:t?void 0:`1px`},className:t?`px-2 pb-0.5 pt-3 first:pt-1`:X(`mx-2 my-2 bg-border/40`,s.SideNav.groupDividerClassName)},t&&n.default.createElement(`span`,{className:X(`text-[10.5px] font-semibold uppercase tracking-widest text-muted-foreground/50 select-none`,s.SideNav.groupLabelClassName)},e.key)),n.default.createElement(`div`,{className:`space-y-0.5`},e.items.map(e=>n.default.createElement(Wp,{key:e.path,item:e,expanded:t,open:r.has(e.path),showIcons:i,onToggle:a}))))}function Kp({menuKey:e,items:t,bottomItems:i=[],defaultCollapsed:a=!1,collapsed:o,onCollapsedChange:s,showIcons:c=!0,showCollapseButton:l=!0,footer:u,header:d,embedded:f=!1}){let{pathname:p}=(0,r.useLocation)(),m=q(`sideNav`),h=Y(`sideNav`),g=hv(e??``),_=t??(e?zp(g):[]),v=o!==void 0,[y,b]=(0,n.useState)(a),x=o===void 0?y:o,S=(0,n.useCallback)(e=>{let t=typeof e==`function`?e(x):e;v?s?.(t):b(t)},[v,x,s]),[C,w]=(0,n.useState)(!1),[T,E]=(0,n.useState)(new Set),D=(0,n.useRef)(null),O=!x||C;(0,n.useEffect)(()=>{E(e=>{let t=new Set(e);return[..._,...i].forEach(e=>{e.children?.some(e=>Bp(p,e.path,e.end))&&t.add(e.path)}),t})},[p]);let k=(0,n.useCallback)(e=>{E(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),A=()=>{x&&(D.current&&clearTimeout(D.current),w(!0))},j=()=>{x&&(D.current=setTimeout(()=>w(!1),80))};if(_.length===0&&i.length===0)return null;let M=Vp(_),N=Vp(i),P=(e,t)=>e.map(e=>n.default.createElement(Gp,{key:e.key,group:e,expanded:t,openItems:T,showIcons:c,onToggle:k}));return f?n.default.createElement(`nav`,{className:X(`px-1.5 py-2`,m.SideNav.navClassName)},P(M,!0),N.length>0&&n.default.createElement(`div`,{className:X(`mt-2 border-t pt-2`,m.SideNav.bottomNavClassName)},P(N,!0))):n.default.createElement(`div`,{className:X(`min-h-0`,m.SideNav.wrapperClassName),style:{width:x?Rp:Lp,height:`100%`,transition:`width 220ms cubic-bezier(0.4,0,0.2,1)`,flexShrink:0,position:`relative`}},n.default.createElement(`aside`,{style:{width:O?Lp:Rp,transition:`width 220ms cubic-bezier(0.4,0,0.2,1)`,position:x?`absolute`:`sticky`,top:0,zIndex:x&&C?50:10,boxShadow:x&&C?`4px 0 24px rgba(0,0,0,0.10)`:`none`,height:`100%`,overflowX:`hidden`,overflowY:`hidden`},className:X(`flex min-h-0 flex-col border-r bg-background`,m.SideNav.shellClassName,x&&C&&m.SideNav.overlayClassName),onMouseEnter:A,onMouseLeave:j},d&&n.default.createElement(`div`,{className:X(`flex h-14 shrink-0 items-center border-b px-1.5`,m.SideNav.headerClassName),style:{opacity:+!!O,maxWidth:O?`100%`:`0px`,overflow:`hidden`,transition:`opacity 150ms ease, max-width 200ms ease`}},n.default.createElement(`div`,{className:`min-w-0 flex-1`},d)),n.default.createElement(`nav`,{className:X(`min-h-0 flex-1 overflow-y-auto overflow-x-hidden px-1.5 py-2`,m.SideNav.navClassName)},P(M,O)),N.length>0&&n.default.createElement(`div`,{className:X(`shrink-0 border-t px-1.5 py-2`,m.SideNav.bottomNavClassName)},P(N,O)),(l||u)&&n.default.createElement(`div`,{className:X(`shrink-0 border-t px-1.5 py-2 flex items-center gap-1`,m.SideNav.footerClassName)},l&&n.default.createElement(`button`,{onClick:()=>{S(e=>!e),w(!1)},title:x?h.expandSidebar:h.collapseSidebar,"aria-label":x?h.expandSidebar:h.collapseSidebar,className:X(`shrink-0 flex items-center justify-center rounded-md w-8 h-8 transition-colors text-muted-foreground hover:text-foreground hover:bg-accent`,m.SideNav.collapseButtonClassName)},n.default.createElement(Q,{name:x?`chevrons-right`:`chevrons-left`,size:16})),u&&n.default.createElement(`div`,{style:{flex:1,minWidth:0,opacity:+!!O,maxWidth:O?`100%`:`0px`,overflow:`hidden`,transition:`opacity 150ms ease, max-width 200ms ease`}},u))))}function qp({path:e,where:t,order:r,fieldMap:i}){let a=lr(),[o,s]=(0,n.useState)([]),c=(0,n.useMemo)(()=>{if(t||r||i)return{where:t,order:r,fieldMap:i}},[i,r,t]);return(0,n.useEffect)(()=>a.subscribe(e,s,c),[a,c,e]),o}function Jp(e){if(e)return e}function Yp({path:e,fromUrl:t,where:i,order:a,fieldMap:o,recordId:s=yr,...c}){let l=(0,r.useLocation)(),u=t?Jp(l.pathname):e,d=qp({path:u,where:i,order:a,fieldMap:o}),f=n.default.useMemo(()=>{if(!a)return;let e=Object.entries(a)[0];if(!e)return;let[t,n]=e;return{field:t,dir:n}},[a]),p=c.sortable===void 0||c.sortable===!0?f??c.sortable:c.sortable;return n.default.createElement(Wh,{...c,records:d,recordId:s,sourcePath:u,sortable:p})}var Xp=e=>e.replace(/[^a-zA-Z0-9_-]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``),Zp=e=>t=>{if(typeof e==`function`)return String(e(t));let n=t[e];return n==null||n===``?``:String(n)},Qp=(e,t)=>{if(e==null||e===`text`)return t;if(e===`boolean`)return t?`Yes`:`No`;if(e===`json`)return t==null?``:JSON.stringify(t,null,2);if(e===`badge`||e===`image`||e===`email`)return t;let n=E[e===`datetime`?`dateTime`:e];return n?n(t):t},$p=(e,t)=>typeof e.render==`function`?e.render(t):Qp(e.render,t.value),em=e=>({key:e,label:E.toCamel(e,` `),sortable:!0}),tm=(e,t)=>{let r=[],i=e=>{n.default.Children.forEach(e,e=>{if(!n.default.isValidElement(e))return;let{props:a}=e;a.name?r.push(t(a)):a.children&&i(a.children)})};return i(Array.isArray(e)?e:[e]),r},nm=(e,t,r)=>{if(e?.length)return e;if(n.default.isValidElement(r)){let e=tm(r,e=>em(e.name));if(e.length>0)return e}let i=t[0];return i?Object.entries(i).reduce((e,[t,r])=>(t.startsWith(`_`)||(n.default.isValidElement(r)||typeof r!=`object`||Array.isArray(r))&&e.push(em(t)),e),[]):[]},rm=(e,t)=>Array.isArray(e)?e.reduce((e,t)=>(e[t]=t===`delete`?{kind:`delete`}:{kind:`modal`},e),{}):e?Object.entries(e).reduce((e,[t,n])=>(n&&(e[t]=n),e),{}):t?{add:{kind:`modal`},edit:{kind:`modal`},delete:{kind:`delete`}}:{},im=(e,t)=>e?.visible?typeof e.visible==`function`?e.visible(t):e.visible:!0,am=(e,t)=>e?.disabled?typeof e.disabled==`function`?e.disabled(t):e.disabled:!1,om=(e,t,n)=>t?.label?t.label:e===`add`?n?.add??`Add`:e===`edit`?n?.edit??`Edit`:e===`delete`?n?.delete??`Delete`:E.toCamel(e,` `),sm=e=>{if(e&&typeof e!=`boolean`)return e};function cm({records:e,recordId:t,columns:r,runAction:i,sortable:a,pagination:o,selection:s=!1,selectedKeys:c,onSelectionChange:l,onRowClick:u,reorderable:d=!1,onReorder:f,activeKey:p,groupBy:m,wrapperClassName:h,className:g,heightClassName:_,scrollClassName:v,headerClassName:y,before:b,after:x}){let S=(0,n.useMemo)(()=>Zp(t),[t]),C=(0,n.useRef)(new Map),w=(0,n.useMemo)(()=>e.reduce((e,t)=>(e.set(S(t),t),e),new Map),[S,e]),T=(0,n.useMemo)(()=>r.reduce((e,t)=>(e.set(String(t.key),t),e),new Map),[r]);(0,n.useEffect)(()=>{let t=new Set(e.map(e=>S(e)));for(let e of C.current.keys())t.has(e)||C.current.delete(e)},[S,e]);let E=(0,n.useCallback)((e,t,n)=>{let r=e,a=S(r),o=T.get(t);if(!o)return de(r,t);let s=de(r,t),c=C.current.get(a)??new Map,l=c.get(t),u=typeof o.render==`function`;if(l&&l.recordRef===r&&l.valueRef===s&&l.renderRef===o.render&&(!u||l.rowIndex===n))return l.output;let d=$p(o,{record:r,value:s,key:t,rowIndex:n,runAction:e=>i(e,r)});return c.set(t,{recordRef:r,valueRef:s,renderRef:o.render,rowIndex:n,output:d}),C.current.set(a,c),d},[T,S,i]);return n.default.createElement(ap,{columns:r.map(e=>({key:String(e.key),label:e.label,className:e.className,sort:e.sortable})),records:e,recordId:e=>S(e),sortable:a,pagination:o,renderCell:E,selection:s===`single`?`single`:`multiple`,selectedKeys:s?c:void 0,onSelectionChange:s?t=>{let n=new Set(t.keys),r=e.filter(e=>n.has(S(e))),i=t.keys;if(s===`single`&&t.keys.length>1){let e=t.keys[t.keys.length-1];i=e?[e]:[],r=e&&w.get(e)?[w.get(e)]:[]}let a={keys:i,records:r,hasSelection:i.length>0,clear:()=>l?.({keys:[],records:[],hasSelection:!1,clear:()=>void 0})};l?.(a)}:void 0,onRowClick:u?e=>{let t=S(e),n=w.get(t);n&&u(n)}:void 0,onReorder:d&&f?(e,t)=>{let n=e.map(e=>w.get(S(e))).filter(Boolean),r=w.get(S(t.record));r&&f(n,{fromIndex:t.fromIndex,toIndex:t.toIndex,record:r})}:void 0,activeKey:p,groupBy:m,wrapperClassName:h,className:g,heightClassName:_,scrollClassName:v,headerClassName:y,before:b,after:x})}var lm=(0,n.createContext)(null),um=0,dm=`LLM Native`,fm={charset:`UTF-8`,viewport:`width=device-width, initial-scale=1.0`},pm={lang:`en`};function mm(e,t){return t.includes(`:`)?t:`${e}:${t}`}function hm(e){return Array.isArray(e)?e.join(`, `):e}function gm(e){return e===`siteName`?`og:site_name`:mm(`og`,e)}function _m(e){return[...e.canonical?[{rel:`canonical`,href:e.canonical}]:[],...e.ampHtml?[{rel:`amphtml`,href:e.ampHtml}]:[],...e.sitemap?[{rel:`sitemap`,href:e.sitemap,type:`application/xml`}]:[],...e.links??[]]}function vm(e){return[...e.prev?[{rel:`prev`,href:e.prev}]:[],...e.next?[{rel:`next`,href:e.next}]:[]]}function ym(e){return(e.alternates??[]).map(e=>({rel:`alternate`,href:e.href,hrefLang:e.hrefLang,media:e.media,type:e.type,title:e.title}))}function bm(e,t,n){return{name:{description:e.description,...e.meta??{},robots:n.robots??e.meta?.robots,googlebot:n.googlebot,keywords:hm(n.keywords),author:n.author,publisher:n.publisher,referrer:n.referrer,...n.meta??{},...Object.fromEntries(Object.entries(t.twitter??{}).map(([e,t])=>[mm(`twitter`,e),t]))},property:Object.fromEntries(Object.entries(t.openGraph??{}).map(([e,t])=>[gm(e),t]))}}function xm(e,t,n,r){return[..._m(t),...vm(r),...ym(n),...e.canonical&&!t.canonical?[{rel:`canonical`,href:e.canonical}]:[],...e.links??[]]}function Sm(e){return[...(e.fonts??[]).flatMap(e=>[...(e.dnsPrefetch??[]).map(e=>({rel:`dns-prefetch`,href:e})),...(e.preconnect??[]).map(t=>({rel:`preconnect`,href:t,crossOrigin:e.crossOrigin})),...e.preload?[{rel:`preload`,href:e.href,as:e.as??`font`,type:e.type,media:e.media,crossOrigin:e.crossOrigin}]:[],{rel:`stylesheet`,href:e.href,media:e.media,crossOrigin:e.crossOrigin}])]}function Cm(e){return[...e.manifest?[{rel:`manifest`,href:e.manifest}]:[],...e.favicon?[{rel:`icon`,href:e.favicon}]:[],...e.appleTouchIcon?[{rel:`apple-touch-icon`,href:e.appleTouchIcon}]:[],...e.icons??[]]}function wm(e){return{"theme-color":e.themeColor,"msapplication-TileColor":e.backgroundColor,"color-scheme":e.colorScheme,"application-name":e.applicationName,"mobile-web-app-capable":e.mobileWebAppCapable===void 0?void 0:String(e.mobileWebAppCapable),"apple-mobile-web-app-capable":e.appleMobileWebAppCapable===void 0?void 0:String(e.appleMobileWebAppCapable),"apple-mobile-web-app-title":e.appleMobileWebAppTitle,"apple-mobile-web-app-status-bar-style":e.appleMobileWebAppStatusBarStyle}}function Tm(e){return Array.isArray(e.jsonLd)?e.jsonLd:e.jsonLd?[e.jsonLd]:[]}function Em(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>!!e))}function Dm(e){let{inline:t,...n}=e;return Object.fromEntries(Object.entries(n).filter(([,e])=>e!==void 0&&e!==!1))}function Om(e){let{inline:t,...n}=e;return Object.fromEntries(Object.entries(n).filter(([,e])=>e!==void 0&&e!==!1))}function km({appName:e,metadata:t,social:r,links:i,pagination:a,language:o,document:s,assets:l,pwa:u,schemaOrg:d}){if(globalThis.document===void 0)return null;let f=bm(t,r,s),p=wm(u),m=[...xm(i,s,o,a),...Sm(l),...Cm(u)],h=Tm(d);return(0,c.createPortal)(n.default.createElement(n.default.Fragment,null,s.charset?n.default.createElement(`meta`,{charSet:s.charset,"data-rfs-head":`document`}):null,s.base?.href||s.base?.target?n.default.createElement(`base`,{href:s.base.href,target:s.base.target,"data-rfs-head":`document`}):null,s.viewport?n.default.createElement(`meta`,{name:`viewport`,content:s.viewport,"data-rfs-head":`document`}):null,Object.entries(s.httpEquiv??{}).map(([e,t])=>t?n.default.createElement(`meta`,{key:`http-equiv:${e}`,httpEquiv:e,content:t,"data-rfs-head":`document`}):null),Object.entries(f.name).map(([e,t])=>t?n.default.createElement(`meta`,{key:`name:${e}`,name:e,content:t,"data-rfs-head":`meta`}):null),Object.entries(f.property).map(([e,t])=>t?n.default.createElement(`meta`,{key:`property:${e}`,property:e,content:t,"data-rfs-head":`meta`}):null),Object.entries(p).map(([e,t])=>t?n.default.createElement(`meta`,{key:`pwa:${e}`,name:e,content:t,"data-rfs-head":`pwa`}):null),m.map((e,t)=>n.default.createElement(`link`,{key:`${e.rel}:${e.href??t}`,...Em(e),"data-rfs-head":`link`})),(l.styles??[]).map((e,t)=>n.default.createElement(n.default.Fragment,{key:`style:${e.href??t}`},e.href?n.default.createElement(`link`,{rel:`stylesheet`,href:e.href,...Om(e),"data-rfs-head":`asset-style`}):null,e.inline?n.default.createElement(`style`,{id:e.id,nonce:e.nonce,media:e.media,title:e.title,"data-rfs-head":`asset-style`},e.inline):null)),(l.scripts??[]).map((e,t)=>n.default.createElement(n.default.Fragment,{key:`script:${e.src??t}`},e.src?n.default.createElement(`script`,{...Dm(e),"data-rfs-head":`asset-script`}):null,e.inline?n.default.createElement(`script`,{type:e.type,id:e.id,nonce:e.nonce,"data-rfs-head":`asset-script`},e.inline):null)),h.map((e,t)=>n.default.createElement(`script`,{key:`schema-org:${t}`,type:`application/ld+json`,"data-rfs-head":`schema-org`},JSON.stringify(e)))),globalThis.document.head)}function Am({appName:e=dm,children:t}){let r=e||`LLM Native`,i=n.default.useRef(globalThis.document===void 0?``:globalThis.document.documentElement.lang),a=n.default.useRef(globalThis.document===void 0?``:globalThis.document.documentElement.dir),[o,s]=(0,n.useState)({}),[c,l]=(0,n.useState)([]),[u,d]=(0,n.useState)({}),[f,p]=(0,n.useState)({}),[m,h]=(0,n.useState)({}),[g,_]=(0,n.useState)(pm),[v,y]=(0,n.useState)(fm),[b,x]=(0,n.useState)({}),[S,C]=(0,n.useState)({}),[w,T]=(0,n.useState)({}),E=(0,n.useCallback)(()=>s({}),[]),D=(0,n.useCallback)((e,t)=>{l(n=>[...n.filter(t=>t.id!==e),{id:e,metadata:t}])},[]),O=(0,n.useCallback)(e=>{l(t=>t.filter(t=>t.id!==e))},[]),k=(0,n.useCallback)(()=>d({}),[]),A=(0,n.useCallback)(()=>p({}),[]),j=(0,n.useCallback)(()=>h({}),[]),M=(0,n.useCallback)(()=>_(pm),[]),N=(0,n.useCallback)(()=>y(fm),[]),P=(0,n.useCallback)(()=>x({}),[]),F=(0,n.useCallback)(()=>C({}),[]),I=(0,n.useCallback)(()=>T({}),[]);(0,n.useEffect)(()=>{globalThis.document!==void 0&&(globalThis.document.documentElement.lang=g.lang??i.current,globalThis.document.documentElement.dir=g.dir??a.current)},[g.lang,g.dir]);let L=c.length>0?c[c.length-1].metadata:o;(0,n.useEffect)(()=>{globalThis.document!==void 0&&(globalThis.document.title=L.title??r)},[L.title,r]);let R=(0,n.useMemo)(()=>({metadata:L,social:u,links:f,pagination:m,language:g,document:v,assets:b,pwa:S,schemaOrg:w,setPageMetadata:s,clearPageMetadata:E,setPageMetadataEntry:D,clearPageMetadataEntry:O,setSocialHead:d,clearSocialHead:k,setHeadLinks:p,clearHeadLinks:A,setPaginationHead:h,clearPaginationHead:j,setLanguageHead:_,clearLanguageHead:M,setDocumentHead:y,clearDocumentHead:N,setAssetsHead:x,clearAssetsHead:P,setPwaHead:C,clearPwaHead:F,setSchemaOrg:T,clearSchemaOrg:I}),[L,u,f,m,g,v,b,S,w,E,D,O,k,A,j,M,N,P,F,I]);return n.default.createElement(lm.Provider,{value:R},t,n.default.createElement(km,{appName:r,metadata:L,social:u,links:f,pagination:m,language:g,document:v,assets:b,pwa:S,schemaOrg:w}))}function jm(){return(0,n.useContext)(lm)}function Mm(e){return JSON.stringify(e??{})}function Nm(e){let t=jm(),r=n.default.useRef(null);r.current||=(um+=1,`metadata-${um}`);let i=Mm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=r.current;return t.setPageMetadataEntry(n,e),()=>t.clearPageMetadataEntry(n)},[t?.setPageMetadataEntry,t?.clearPageMetadataEntry,i]),t}function Pm(e){let t=jm(),r=Mm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.social;return t.setSocialHead(e),()=>t.setSocialHead(n)},[t?.setSocialHead,r]),t}function Fm(e){let t=jm(),r=Mm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.links;return t.setHeadLinks(e),()=>t.setHeadLinks(n)},[t?.setHeadLinks,r]),t}function Im(e){let t=jm(),r=Mm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.pagination;return t.setPaginationHead(e),()=>t.setPaginationHead(n)},[t?.setPaginationHead,r]),t}function Lm(e){let t=jm(),r=Mm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.language;return t.setLanguageHead(e),()=>t.setLanguageHead(n)},[t?.setLanguageHead,r]),t}function Rm(e){let t=jm(),r=Mm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.document;return t.setDocumentHead({...n,...e}),()=>t.setDocumentHead(n)},[t?.setDocumentHead,r]),t}function zm(e){let t=jm(),r=Mm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.assets;return t.setAssetsHead(e),()=>t.setAssetsHead(n)},[t?.setAssetsHead,r]),t}function Bm(e){let t=jm(),r=Mm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.pwa;return t.setPwaHead(e),()=>t.setPwaHead(n)},[t?.setPwaHead,r]),t}function Vm(e){let t=jm(),r=Mm(e);return(0,n.useEffect)(()=>{if(!t||!e)return;let n=t.schemaOrg;return t.setSchemaOrg(e),()=>t.setSchemaOrg(n)},[t?.setSchemaOrg,r]),t}function Hm(e){return Nm(e),null}var Um=e=>/^(https?:)?\/\//.test(e)||e.startsWith(`mailto:`)||e.startsWith(`tel:`),Wm=e=>!!e&&!Um(e)&&!e.startsWith(`#`),Gm=e=>e.startsWith(`#`),Km=e=>typeof e==`string`||typeof e==`number`?String(e):Array.isArray(e)?e.map(Km).join(``):n.default.isValidElement(e)?Km(e.props.children):``,qm=e=>{if(n.default.isValidElement(e))return/language-([\w-]+)/.exec(e.props.className||``)?.[1]};function Jm({code:e,language:t}){let[r,i]=n.default.useState(!1),a=Y(`code`);return n.default.createElement(`div`,{className:`relative my-4 overflow-hidden rounded-md border bg-muted/50`},n.default.createElement(`div`,{className:`flex h-9 items-center justify-between border-b px-3`},n.default.createElement(`span`,{className:`text-xs font-medium text-muted-foreground`},t||a.codeLanguageDefault),n.default.createElement(`button`,{type:`button`,className:`rounded border bg-background px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,onClick:()=>{A(e),i(!0),window.setTimeout(()=>i(!1),1600)}},r?a.copied:a.copy)),n.default.createElement(`pre`,{className:`m-0 overflow-x-auto p-4 text-xs leading-relaxed`},n.default.createElement(`code`,{className:t?`language-${t}`:void 0},e)))}var Ym=e=>({h1:({className:e,...t})=>n.default.createElement(`h1`,{className:X(`mt-8 scroll-m-20 text-3xl font-bold tracking-normal first:mt-0 [&>a]:no-underline [&>a:hover]:opacity-80`,e),...t}),h2:({className:e,...t})=>n.default.createElement(`h2`,{className:X(`mt-8 scroll-m-20 border-b pb-2 text-2xl font-semibold tracking-normal first:mt-0 [&>a]:no-underline [&>a:hover]:opacity-80`,e),...t}),h3:({className:e,...t})=>n.default.createElement(`h3`,{className:X(`mt-6 scroll-m-20 text-xl font-semibold tracking-normal [&>a]:no-underline [&>a:hover]:opacity-80`,e),...t}),h4:({className:e,...t})=>n.default.createElement(`h4`,{className:X(`mt-5 scroll-m-20 text-base font-semibold tracking-normal [&>a]:no-underline [&>a:hover]:opacity-80`,e),...t}),p:({className:e,...t})=>n.default.createElement(`p`,{className:X(`my-4 leading-7 text-foreground`,e),...t}),ul:({className:e,...t})=>n.default.createElement(`ul`,{className:X(`my-4 ml-6 list-disc space-y-2`,e),...t}),ol:({className:e,...t})=>n.default.createElement(`ol`,{className:X(`my-4 ml-6 list-decimal space-y-2`,e),...t}),li:({className:e,...t})=>n.default.createElement(`li`,{className:X(`leading-7`,e),...t}),blockquote:({className:e,...t})=>n.default.createElement(`blockquote`,{className:X(`my-4 border-l-4 border-primary bg-muted/40 px-4 py-3 text-sm text-muted-foreground`,e),...t}),table:({className:e,...t})=>n.default.createElement(`div`,{className:`my-4 w-full overflow-x-auto`},n.default.createElement(`table`,{className:X(`w-full border-collapse text-sm`,e),...t})),th:({className:e,...t})=>n.default.createElement(`th`,{className:X(`border bg-muted px-3 py-2 text-left font-semibold`,e),...t}),td:({className:e,...t})=>n.default.createElement(`td`,{className:X(`border px-3 py-2 align-top`,e),...t}),hr:({className:e,...t})=>n.default.createElement(`hr`,{className:X(`my-8 border-border`,e),...t}),a:({className:t,href:r=``,onClick:i,...a})=>n.default.createElement(`a`,{className:X(Gm(r)?`text-primary no-underline transition-opacity hover:opacity-80`:`font-medium text-primary no-underline transition-opacity hover:opacity-80`,t),href:r,target:Um(r)?`_blank`:void 0,rel:Um(r)?`noreferrer`:void 0,onClick:t=>{i?.(t),!t.defaultPrevented&&e&&Wm(r)&&(t.preventDefault(),e(r,t))},...a}),pre:({children:e})=>n.default.createElement(Jm,{code:Km(e).replace(/\n$/,``),language:qm(e)}),code:({className:e,children:t,...r})=>typeof e==`string`&&e.startsWith(`language-`)?n.default.createElement(`code`,{className:e,...r},t):n.default.createElement(`code`,{className:X(`rounded bg-muted px-1.5 py-0.5 text-[0.9em]`,e),...r},t),input:({className:e,...t})=>n.default.createElement(`input`,{className:X(`mr-2 align-middle`,e),disabled:!0,...t})});function Xm({content:e,components:t,className:r,wrapperClassName:i,metadata:a,onInternalLinkClick:o}){let s=n.default.useMemo(()=>e.match(/^#[ \t]+(.+)/m)?.[1]?.trim(),[e]);Nm(a||s?{...a??{},title:a?.title??s}:void 0);let c=n.default.useMemo(()=>Ym(o),[o]);return n.default.createElement(`div`,{className:X(`rf-markdown-reader max-w-none text-sm text-foreground`,i,r)},n.default.createElement(h.default,{remarkPlugins:[g.default],rehypePlugins:[_.default,[v.default,{behavior:`wrap`}],y.default],components:{...c,...t}},e))}var Zm=/^ {0,3}(`{3,}|~{3,})(.*)$/,Qm=/^ {0,3}(`{1,2}|~{1,2})$/,$m=/^\s*[-=]{1,2}\s*$/,eh=/^\s*\|?[\s:|-]*$/,th=/^\s*:?-+:?\s*$/;function nh(e){let t=e.trim();return t.startsWith(`|`)&&(t=t.slice(1)),t.endsWith(`|`)&&!t.endsWith(`\\|`)&&(t=t.slice(0,-1)),t.split(/(?<!\\)\|/)}function rh(e){let t=e[0];if(!t.trimStart().startsWith(`|`))return null;let n=nh(t).filter((e,t,n)=>e.trim()!==``||t<n.length-1);if(n.length===0)return[];let r=`| ${n.map(()=>`---`).join(` | `)} |`,i=t.trimEnd().endsWith(`|`)?t:`${t.trimEnd()} |`;if(e.length===1)return[i,r];let a=e[1];if(!eh.test(a))return null;let o=nh(a);return o.length===n.length&&o.every(e=>th.test(e))?e:[i,r,...e.slice(2)]}function ih(e){let t=e,n=t.lastIndexOf(`](`);n>=0&&!t.slice(n).includes(`)`)&&(t+=`)`);let r=[],i=null,a=/^\s*[*+-]\s/.exec(t),o=a?a[0].length:0;for(;o<t.length;){let e=t[o];if(e===`\\`){o+=2;continue}if(e==="`"){let e=1;for(;t[o+e]==="`";)e++;let n="`".repeat(e);i?i.token===n&&(i=null):i={token:n,at:o},o+=e;continue}if(i){o++;continue}if(e===`*`||e===`_`||e===`~`){let n=1;for(;t[o+n]===e;)n++;let i=t[o-1]??` `,a=t[o+n]??``,s=e===`_`&&/[\p{L}\p{N}]/u.test(i)&&/[\p{L}\p{N}]/u.test(a),c=/\s/.test(i)&&a!==``&&/\s/.test(a);if(!s&&!c&&(e!==`~`||n!==1)){let t=r[r.length-1]?.token===e,i=e===`~`?[`~~`]:n>=3?t?[e,e+e]:[e+e,e]:[e.repeat(n)];for(let e of i){let t=r[r.length-1];if(t&&t.token===e)r.pop();else if(r.some(t=>t.token===e)){for(;r.length&&r[r.length-1].token!==e;)r.pop();r.pop()}else r.push({token:e,at:o})}}o+=n;continue}o++}if(i){if(t.slice(i.at+i.token.length).trim()===``)return t.slice(0,i.at).trimEnd();t+=i.token}if(r.length===0)return t;let s=r[0];if(t.slice(s.at).replace(/[*_~\s]/g,``)===``)return t.slice(0,s.at).trimEnd();for(let e=r.length-1;e>=0;e--){let n=r[e];if(t.slice(n.at+n.token.length).replace(/[*_~]/g,``).trim()===``){t=t.slice(0,n.at).trimEnd();continue}t=t.trimEnd()+n.token}return t}function ah(e){if(!e)return e;let t=e.split(`
|
|
10
|
+
`),n=null,r=0;if(t.forEach((e,t)=>{let i=Zm.exec(e);n?i&&i[1][0]===n.char&&i[1].length>=n.len&&i[2].trim()===``&&(n=null,r=t+1):i&&!(i[1][0]==="`"&&i[2].includes("`"))&&(n={char:i[1][0],len:i[1].length})}),n){let e=n;return`${(Qm.test(t[t.length-1])&&t.length>1?t.slice(0,-1):t).join(`
|
|
11
|
+
`)}\n${e.char.repeat(e.len)}`}let i=r;for(let e=t.length-1;e>=r;e--)if(t[e].trim()===``){i=e+1;break}let a=t.slice(0,i),o=t.slice(i);if(o.length===0)return e;if(Qm.test(o[o.length-1])&&(o=o.slice(0,-1)),o.length>=2&&$m.test(o[o.length-1])&&(o=o.slice(0,-1)),o.length===0)return a.join(`
|
|
12
|
+
`).replace(/\n+$/,``);let s=o.length-1;o[s]=ih(o[s]);let c=rh(o);return c&&(o=c),[...a,...o].join(`
|
|
13
|
+
`)}var oh=e=>/^(https?:)?\/\//.test(e)||e.startsWith(`mailto:`)||e.startsWith(`tel:`),sh=e=>typeof e==`string`||typeof e==`number`?String(e):Array.isArray(e)?e.map(sh).join(``):n.default.isValidElement(e)?sh(e.props.children):``,ch=e=>{let t=Array.isArray(e)?e[0]:e;if(n.default.isValidElement(t))return/language-([\w#+-]+)/.exec(t.props.className||``)?.[1]};function lh({code:e,language:t,highlight:r,classNames:i}){let a=Y(`code`),[o,s]=n.default.useState(!1),[c,l]=n.default.useState(null),u=r?Wd(t):void 0;return n.default.useEffect(()=>{if(!u){l(null);return}let t=!0;return Yd(e,u).then(e=>{t&&l(e)}),()=>{t=!1}},[e,u]),n.default.useEffect(()=>{if(!o)return;let e=window.setTimeout(()=>s(!1),1600);return()=>window.clearTimeout(e)},[o]),n.default.createElement(`div`,{className:X(`rf-chat-code my-3 min-w-0 overflow-hidden rounded-md border border-border bg-muted/40`,i?.codeBlock)},n.default.createElement(`div`,{className:X(`flex h-8 items-center justify-between gap-2 border-b border-border px-3`,i?.codeHeader)},n.default.createElement(`span`,{className:`truncate font-mono text-xs text-muted-foreground`},t||a.codeLanguageDefault),n.default.createElement(`button`,{type:`button`,onClick:async()=>{try{await navigator.clipboard.writeText(e),s(!0)}catch{s(!1)}},"aria-label":o?a.copied:a.copyCode,title:o?a.copied:a.copyCode,className:`inline-flex h-6 items-center gap-1 rounded px-1.5 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`},n.default.createElement(Q,{name:o?`check`:`copy`,size:13}),n.default.createElement(`span`,null,o?a.copied:a.copy))),n.default.createElement(`pre`,{className:`m-0 overflow-x-auto p-3 text-xs leading-relaxed`},c===null?n.default.createElement(`code`,{className:X(t?`language-${t}`:void 0,i?.code)},e):n.default.createElement(`code`,{className:X(`language-${u}`,i?.code),dangerouslySetInnerHTML:{__html:c}})))}function uh(e,t,r){let i=t=>function({className:r,node:i,...a}){let o=t===`h1`?`text-lg`:t===`h2`?`text-base`:`text-sm`;return n.default.createElement(t,{className:X(`mb-2 mt-4 font-semibold first:mt-0`,o,e?.heading,r),...a})};return{h1:i(`h1`),h2:i(`h2`),h3:i(`h3`),h4:i(`h4`),h5:i(`h5`),h6:i(`h6`),p:({className:t,node:r,...i})=>n.default.createElement(`p`,{className:X(`my-2 first:mt-0 last:mb-0`,e?.paragraph,t),...i}),ul:({className:t,node:r,...i})=>n.default.createElement(`ul`,{className:X(`my-2 ms-5 list-disc space-y-1 first:mt-0 last:mb-0 [&_ul]:my-1 [&_ol]:my-1`,e?.list,t),...i}),ol:({className:t,node:r,...i})=>n.default.createElement(`ol`,{className:X(`my-2 ms-5 list-decimal space-y-1 first:mt-0 last:mb-0 [&_ul]:my-1 [&_ol]:my-1`,e?.list,t),...i}),li:({className:e,node:t,...r})=>n.default.createElement(`li`,{className:X(`ps-1 [&>p]:my-1`,e),...r}),blockquote:({className:t,node:r,...i})=>n.default.createElement(`blockquote`,{className:X(`my-2 border-s-4 border-border ps-3 text-muted-foreground`,e?.blockquote,t),...i}),table:({className:t,node:r,...i})=>n.default.createElement(`div`,{className:X(`my-3 max-w-full overflow-x-auto rounded-md border border-border`,e?.tableWrapper)},n.default.createElement(`table`,{className:X(`w-max min-w-full border-collapse text-xs`,e?.table,t),...i})),th:({className:t,node:r,...i})=>n.default.createElement(`th`,{className:X(`border-b border-border bg-muted px-3 py-1.5 text-start font-semibold whitespace-nowrap`,e?.th,t),...i}),td:({className:t,node:r,...i})=>n.default.createElement(`td`,{className:X(`max-w-[24rem] border-t border-border px-3 py-1.5 align-top`,e?.td,t),...i}),hr:({className:e,node:t,...r})=>n.default.createElement(`hr`,{className:X(`my-4 border-border`,e),...r}),img:({className:e,node:t,alt:r,...i})=>n.default.createElement(`img`,{className:X(`my-2 max-w-full rounded-md`,e),alt:r??``,loading:`lazy`,...i}),a:({className:t,href:i=``,onClick:a,node:o,...s})=>{let c=oh(i);return n.default.createElement(`a`,{className:X(`font-medium text-primary underline-offset-2 hover:underline`,e?.link,t),href:i,target:c?`_blank`:void 0,rel:c?`noopener noreferrer`:void 0,onClick:e=>{a?.(e),!e.defaultPrevented&&r&&i&&!c&&!i.startsWith(`#`)&&(e.preventDefault(),r(i,e))},...s})},pre:({children:r})=>n.default.createElement(lh,{code:sh(r).replace(/\n$/,``),language:ch(r),highlight:t,classNames:e}),code:({className:t,children:r,node:i,...a})=>n.default.createElement(`code`,{className:X(`rounded bg-muted px-1 py-0.5 font-mono text-[0.9em]`,e?.inlineCode,t),...a},r),input:({className:e,node:t,...r})=>n.default.createElement(`input`,{className:X(`me-1.5 align-middle`,e),disabled:!0,...r})}}var dh=[g.default],fh=[y.default];function ph({content:e,streaming:t=!1,tone:r=`default`,highlight:i=!0,onLinkClick:a,components:o,className:s,classNames:c}){let l=n.default.useMemo(()=>t?ah(e??``):e??``,[e,t]),u=n.default.useMemo(()=>uh(c,i,a),[c,i,a]),d=n.default.useMemo(()=>({...u,...o}),[u,o]);return n.default.createElement(`div`,{className:X(`rf-chat-markdown min-w-0 max-w-full break-words text-sm leading-relaxed`,r===`muted`?`text-muted-foreground`:`text-foreground`,c?.root,s),"aria-busy":t||void 0},n.default.createElement(h.default,{remarkPlugins:dh,rehypePlugins:fh,components:d},l))}function mh(e,t){let n=Math.max(1,Math.round(e));return n<60?J(t.durationSeconds,{seconds:n}):J(t.durationMinutes,{minutes:Math.floor(n/60),seconds:n%60})}function hh({content:e,streaming:t=!1,duration:r,defaultOpen:i=!1,open:a,onOpenChange:o,label:s,icon:c=`brain`,className:l,classNames:u}){let d=Y(`chat`),f=n.default.useId(),[p,m]=n.default.useState(null),h=a??p??(t||i),g=()=>{let e=!h;a===void 0&&m(e),o?.(e)},_=s??(t?d.reasoningStreaming:r==null?d.reasoning:J(d.reasoningFor,{duration:mh(r,d)}));return n.default.createElement(`div`,{className:X(`rf-chat-reasoning my-2 min-w-0`,l,u?.root)},n.default.createElement(`button`,{type:`button`,onClick:g,"aria-expanded":h,"aria-controls":f,className:X(`inline-flex max-w-full items-center gap-1.5 rounded-md py-1 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,u?.trigger)},n.default.createElement(Q,{name:c,size:14,className:t?`animate-pulse`:void 0}),n.default.createElement(`span`,{className:`truncate`},_),n.default.createElement(Q,{name:`chevron-down`,size:14,className:X(`shrink-0 transition-transform`,!h&&`-rotate-90 rtl:rotate-90`)})),n.default.createElement(`div`,{id:f,role:`region`,"aria-label":typeof _==`string`?_:d.reasoning,hidden:!h,className:X(`mt-1 border-s-2 border-border ps-3`,u?.content)},h&&n.default.createElement(ph,{content:e,streaming:t,tone:`muted`,className:`text-xs`})))}var gh=/^\s*(?:(\d{1,2})|([A-Za-z]))[.)]\s+(.+)$/s,_h=/\s*[([]\s*(?:recommended|consigliat[ao]|empfohlen)\s*[)\]]\s*$/i;function vh(e,t,n,r,i){let a=e.options??[],o=a.map(e=>gh.exec(e.label)),s=a.length>0&&o.every(Boolean),c=s&&o[0]?.[2]?`alpha`:`numeric`,l=a.map((t,n)=>{let r=s?o[n][3].trim():t.label,i=_h.exec(r);i&&(r=r.slice(0,i.index).trim());let a=typeof e.recommended==`number`?e.recommended===n:typeof e.recommended==`string`?e.recommended===r||e.recommended===t.label:!!i;return{label:r,description:t.description,recommended:a}});return{source:e,title:e.header||J(i.questionTab,{index:t+1}),options:l,numbering:n??c,multiple:!!e.multiple,other:l.length===0||(e.custom??r)}}var yh=(e,t)=>t===`alpha`?String.fromCharCode(65+e):String(e+1);function bh(e,t){return/^[1-9]$/.test(e)?Number(e)-1:t===`alpha`&&/^[a-z]$/i.test(e)?e.toUpperCase().charCodeAt(0)-65:-1}function xh(e,t){return{...e.id===void 0?{}:{id:e.id},...e.header===void 0?{}:{header:e.header},values:t}}var Sh=`flex w-full items-start gap-2.5 rounded-md border px-2.5 py-2 text-start transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-60`,Ch=58,wh=160,Th=`inline-flex h-8 items-center justify-center gap-1 rounded-md px-3 text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`;function Eh({questions:e,onSubmit:t,numbering:r,allowOther:i=!0,answers:a,disabled:o=!1,autoFocus:s=!1,submitLabel:c,className:l,classNames:u}){let d=Y(`chat`),f=n.default.useId(),p=n.default.useRef(null),m=n.default.useRef([]),h=n.default.useRef(s?`panel`:null),g=n.default.useRef(!0);n.default.useEffect(()=>()=>{g.current=!1},[]);let _=n.default.useMemo(()=>(e??[]).map((e,t)=>vh(e,t,r,i,d)),[e,r,i,d]),v=_.length,y=v>1,[b,x]=n.default.useState(0),[S,C]=n.default.useState([]),[w,T]=n.default.useState([]),[E,D]=n.default.useState([]),[O,k]=n.default.useState(!1),[A,j]=n.default.useState(null),[M,N]=n.default.useState(!1),P=n.default.useRef(null),F=xo({minHeight:Ch,maxHeight:wh}),I=e=>{let t=_[e];if(!t)return[];let n=t.options.filter(t=>(S[e]??[]).includes(t.label)).map(e=>e.label),r=(E[e]??``).trim(),i=(w[e]||t.options.length===0)&&r?[r]:[];return[...n,...i]},L=e=>I(e).length>0,R=_.every((e,t)=>L(t)),z=o||O;n.default.useEffect(()=>{let e=h.current;if(!e)return;h.current=null;let t=p.current;if(!t)return;if(e===`tab`){m.current[b]?.focus();return}let n=t.querySelector(`[role="tabpanel"]`);if(e===`other`){n?.querySelector(`textarea`)?.focus();return}(n?.querySelector(`[data-rf-option][aria-checked="true"]`)??n?.querySelector(`[data-rf-option]`)??n?.querySelector(`textarea`)??t.querySelector(`[data-rf-submit]`))?.focus()});let B=E[b]??``,ee=!(!_[b]?.other||!w[b]&&_[b]?.options.length!==0);n.default.useEffect(()=>{let e=P.current;if(!e)return;e.style.height=`auto`;let t=Math.max(e.scrollHeight,F.resolvedMinHeight),n=F.resolvedMaxHeight;e.style.height=`${n?Math.min(t,n):t}px`,e.style.overflowY=n&&t>n?`auto`:`hidden`},[B,ee,b,F.resolvedMinHeight,F.resolvedMaxHeight]);let V=(e,t=`panel`)=>{let n=y?v:v-1,r=Math.max(0,Math.min(n,e));h.current=t,x(r)},H=(e,t,n,r)=>{let i=_.map((t,n)=>e[n]??r);return i[t]=n,i},U=(e,t)=>{let n=_[e];if(!n||z)return;if(t===n.options.length&&n.other){let t=!n.multiple||!w[e];T(n=>H(n,e,t,!1)),n.multiple||C(t=>H(t,e,[],[])),t&&(h.current=`other`);return}let r=n.options[t];if(r){if(n.multiple){let t=S[e]??[],n=t.includes(r.label)?t.filter(e=>e!==r.label):[...t,r.label];C(t=>H(t,e,n,[]));return}C(t=>H(t,e,[r.label],[])),T(t=>H(t,e,!1,!1)),y&&V(e+1)}},te=async()=>{if(!R||z)return;let e=_.map((e,t)=>xh(e.source,I(t)));k(!0);try{await t?.(e),g.current&&j(e)}catch{}finally{g.current&&k(!1)}},ne=()=>{if(b<v){if(!L(b))return;y?V(b+1):te();return}te()},re=e=>{if(z)return;let t=e.target;if(t.tagName===`TEXTAREA`){e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&!e.nativeEvent.isComposing&&(e.preventDefault(),ne());return}if(t.tagName===`INPUT`){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),ne());return}if(e.altKey||e.ctrlKey||e.metaKey)return;let n=!!p.current?.closest(`[dir="rtl"]`);if(e.key===`ArrowRight`||e.key===`ArrowLeft`){if(!y)return;e.preventDefault();let r=e.key===`ArrowRight`!==n;V(b+(r?1:-1),t.getAttribute(`role`)===`tab`?`tab`:`panel`);return}if(e.key===`ArrowDown`||e.key===`ArrowUp`){let n=Array.from(p.current?.querySelectorAll(`[role="tabpanel"] [data-rf-option]`)??[]);if(n.length===0)return;e.preventDefault();let r=n.indexOf(t),i=e.key===`ArrowDown`?1:-1;n[r<0?0:(r+i+n.length)%n.length]?.focus();return}let r=_[b];if(r){let t=bh(e.key,r.numbering),n=r.options.length+(r.other&&r.options.length>0?1:0);if(t>=0&&t<n){e.preventDefault(),U(b,t);return}}if(e.key===`Enter`){if(t.hasAttribute(`data-rf-option`)&&r){e.preventDefault(),!r.multiple&&t.getAttribute(`aria-checked`)!==`true`?t.click():ne();return}t.tagName!==`BUTTON`&&(e.preventDefault(),ne())}};if(v===0)return null;let W=a??A;if(W)return n.default.createElement(`div`,{role:`group`,"aria-label":d.answered,className:X(`rf-chat-questions rounded-lg border border-border bg-card p-3 text-card-foreground`,l,u?.root,u?.summary)},n.default.createElement(`div`,{className:`mb-2 flex items-center gap-1.5 text-xs font-medium text-muted-foreground`},n.default.createElement(Q,{name:`check`,size:14}),n.default.createElement(`span`,null,d.answered)),n.default.createElement(`dl`,{className:`space-y-2`},_.map((e,t)=>{let r=(e.source.id===void 0?W[t]:W.find(t=>t.id===e.source.id)??W[t])?.values??[];return n.default.createElement(`div`,{key:e.source.id??t,className:`min-w-0`},n.default.createElement(`dt`,{className:`text-xs text-muted-foreground`},e.source.header||e.source.question),n.default.createElement(`dd`,{className:X(`text-sm`,r.length===0&&`italic text-muted-foreground`)},r.length?r.join(`, `):d.noAnswer))})));let G=_[b],ie=`${f}-question`,ae=`${f}-panel`,oe=G?.multiple?`checkbox`:`radio`,se=G?G.options.length+(G.other&&G.options.length>0?1:0)-1:-1;return n.default.createElement(`div`,{ref:p,role:`group`,"aria-label":d.questions,"aria-busy":O||void 0,onKeyDown:re,className:X(`rf-chat-questions min-w-0 rounded-lg border border-border bg-card text-card-foreground`,l,u?.root)},y&&n.default.createElement(`div`,{role:`tablist`,"aria-label":d.questions,className:X(`flex gap-1 overflow-x-auto border-b border-border px-2 pt-2`,u?.tabs)},[..._.map(e=>e.title),d.review].map((e,t)=>{let r=b===t;return n.default.createElement(`button`,{key:t,ref:e=>{m.current[t]=e},type:`button`,role:`tab`,id:`${f}-tab-${t}`,"aria-selected":r,"aria-controls":ae,tabIndex:r?0:-1,onClick:()=>V(t,`tab`),className:X(`-mb-px inline-flex shrink-0 items-center gap-1 border-b-2 px-2.5 py-1.5 text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,r?`border-primary text-foreground`:`border-transparent text-muted-foreground hover:text-foreground`,u?.tab)},t<v&&L(t)&&n.default.createElement(Q,{name:`check`,size:12,className:`text-success`}),n.default.createElement(`span`,{className:`max-w-[10rem] truncate`},e))})),n.default.createElement(`div`,{role:`tabpanel`,id:ae,"aria-labelledby":y?`${f}-tab-${b}`:ie,className:X(`p-3`,u?.panel)},G?n.default.createElement(n.default.Fragment,null,n.default.createElement(`p`,{id:ie,className:X(`text-sm font-medium`,u?.question)},G.source.question),G.options.length>0&&n.default.createElement(`p`,{className:`mt-0.5 text-xs text-muted-foreground`},G.multiple?d.chooseMany:d.chooseOne),n.default.createElement(`div`,{role:G.multiple?`group`:`radiogroup`,"aria-labelledby":ie,className:`mt-2 flex flex-col gap-1.5`},G.options.map((e,t)=>{let r=(S[b]??[]).includes(e.label);return n.default.createElement(`button`,{key:`${t}-${e.label}`,type:`button`,role:oe,"aria-checked":r,"data-rf-option":``,disabled:o,onClick:()=>U(b,t),className:X(Sh,r?`border-primary bg-primary/10`:e.recommended?`border-primary/40 hover:bg-accent`:`border-border hover:bg-accent`,u?.option,r&&u?.optionSelected)},n.default.createElement(`span`,{"aria-hidden":`true`,className:X(`flex size-5 shrink-0 items-center justify-center rounded text-[11px] font-semibold`,r?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`)},yh(t,G.numbering)),n.default.createElement(`span`,{className:`min-w-0 flex-1`},n.default.createElement(`span`,{className:`block text-sm`},e.label),e.description&&n.default.createElement(`span`,{className:`block text-xs text-muted-foreground`},e.description)),e.recommended&&n.default.createElement(`span`,{className:`shrink-0 rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary`},d.recommended))}),G.other&&G.options.length>0&&n.default.createElement(`button`,{type:`button`,role:oe,"aria-checked":!!w[b],"data-rf-option":``,disabled:o,onClick:()=>U(b,G.options.length),className:X(Sh,w[b]?`border-primary bg-primary/10`:`border-border hover:bg-accent`,u?.option,w[b]&&u?.optionSelected)},n.default.createElement(`span`,{"aria-hidden":`true`,className:X(`flex size-5 shrink-0 items-center justify-center rounded text-[11px] font-semibold`,w[b]?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`)},yh(G.options.length,G.numbering)),n.default.createElement(`span`,{className:`min-w-0 flex-1 text-sm`},d.other)),ee&&n.default.createElement(`textarea`,{ref:P,rows:2,value:B,onChange:e=>{let t=e.target.value;D(e=>H(e,b,t,``))},disabled:o,"aria-label":G.options.length===0?G.source.question:d.other,placeholder:d.otherPlaceholder,"aria-keyshortcuts":`Control+Enter Meta+Enter`,onFocus:()=>N(!0),onBlur:()=>N(!1),className:X(`flex min-h-[5rem] w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,`min-h-0 resize-y shadow-none focus-visible:ring-2`)}))):n.default.createElement(n.default.Fragment,null,n.default.createElement(`p`,{className:`text-xs text-muted-foreground`},d.reviewHint),n.default.createElement(`ul`,{className:`mt-2 space-y-1`},_.map((e,t)=>{let r=I(t);return n.default.createElement(`li`,{key:e.source.id??t},n.default.createElement(`button`,{type:`button`,onClick:()=>V(t),className:`w-full rounded-md px-2 py-1.5 text-start transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`},n.default.createElement(`span`,{className:`block text-xs text-muted-foreground`},e.title),n.default.createElement(`span`,{className:X(`block text-sm`,r.length===0&&`italic text-destructive`)},r.length?r.join(`, `):d.noAnswer)))})))),n.default.createElement(`div`,{className:X(`flex flex-wrap items-center justify-between gap-2 border-t border-border px-3 py-2`,u?.footer)},n.default.createElement(`span`,{className:`text-[11px] text-muted-foreground`},G&&ee&&(M||se<0)?d.textKeyboardHint:G&&se>=0?J(d.keyboardHint,{first:yh(0,G.numbering),last:yh(se,G.numbering)}):null),n.default.createElement(`div`,{className:`ms-auto flex items-center gap-2`},y&&b>0&&n.default.createElement(`button`,{type:`button`,onClick:()=>V(b-1),disabled:z,className:X(Th,`border border-border hover:bg-accent`)},d.back),y&&b<v?n.default.createElement(`button`,{type:`button`,onClick:()=>V(b+1),disabled:z||!L(b),className:X(Th,`border border-border hover:bg-accent`)},d.next):n.default.createElement(`button`,{type:`button`,"data-rf-submit":``,onClick:()=>void te(),disabled:z||!R,className:X(Th,`bg-primary text-primary-foreground hover:bg-primary/90`)},O&&n.default.createElement(Q,{name:`loader-2`,size:12,className:`animate-spin`}),c??d.submit))))}function Dh({item:e,className:t}){let r=Y(`chat`),[i,a]=n.default.useState(!1),o=n.default.useId(),s=e.detail??[],c=e.lines??[];return n.default.createElement(`li`,{className:X(`min-w-0 space-y-1`,t)},n.default.createElement(`div`,{className:`flex min-w-0 items-center gap-2 text-sm`},n.default.createElement(Q,{name:e.icon??`terminal`,size:14,className:`shrink-0 text-muted-foreground`}),n.default.createElement(`span`,{className:`shrink-0 font-medium`},e.label),(e.count??1)>1&&n.default.createElement(`span`,{className:`shrink-0 rounded-full bg-muted px-2 text-xs text-muted-foreground`},J(r.activityCount,{count:e.count??1})),(e.failed??0)>0&&n.default.createElement(`span`,{className:`shrink-0 rounded-full bg-warning/15 px-2 text-xs text-warning`},J(r.activityFailed,{count:e.failed??0})),s.length>0&&n.default.createElement(`span`,{className:`min-w-0 truncate text-xs text-muted-foreground`,title:s.join(`, `)},s.slice(0,4).join(`, `),s.length>4?`…`:``),c.length>0&&n.default.createElement(`button`,{type:`button`,onClick:()=>a(e=>!e),"aria-expanded":i,"aria-controls":o,className:`ms-auto inline-flex shrink-0 items-center gap-1 rounded-md text-xs text-primary hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`},i?r.activityHide:r.activityCommands,n.default.createElement(Q,{name:`chevron-down`,size:12,className:X(`transition-transform`,i&&`rotate-180`)}))),c.length>0&&n.default.createElement(`pre`,{id:o,hidden:!i,className:`max-h-64 overflow-auto whitespace-pre-wrap break-words rounded-md border border-border bg-muted p-2 font-mono text-xs leading-relaxed text-muted-foreground`},i?c.join(`
|
|
14
|
+
`):null))}function Oh({items:e,files:t=[],onShowChanges:r,log:i,className:a,classNames:o}){let s=Y(`chat`),[c,l]=n.default.useState(!1);return c&&i?n.default.createElement(`div`,{className:X(`rf-chat-activity min-w-0 space-y-2`,a,o?.root)},n.default.createElement(`button`,{type:`button`,onClick:()=>l(!1),className:`inline-flex items-center gap-1 text-xs text-primary hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`},n.default.createElement(Q,{name:`list`,size:12}),s.activitySteps),n.default.createElement(`pre`,{className:X(`max-h-96 overflow-auto whitespace-pre-wrap break-words rounded-md border border-border bg-muted p-3 font-mono text-xs leading-relaxed`,o?.log)},i.join(`
|
|
15
|
+
`)||s.activityEmpty)):n.default.createElement(`div`,{className:X(`rf-chat-activity min-w-0 space-y-3`,a,o?.root)},!e.length&&n.default.createElement(`p`,{className:`text-xs text-muted-foreground`},s.activityEmpty),e.length>0&&n.default.createElement(`ul`,{className:`space-y-2`},e.map((e,t)=>e.type===`steps`?n.default.createElement(Dh,{key:t,item:e,className:o?.step}):e.type===`text`?n.default.createElement(`li`,{key:t,className:X(`rounded-md bg-card px-3 py-2`,o?.text)},n.default.createElement(ph,{content:e.text,className:`text-sm`})):n.default.createElement(`li`,{key:t,className:`flex items-center gap-2 text-xs`},n.default.createElement(Q,{name:e.ok?`circle-check`:`circle-x`,size:14,className:e.ok?`text-success`:`text-danger`}),n.default.createElement(`span`,{className:`text-muted-foreground`},e.text)))),t.length>0&&n.default.createElement(`div`,{className:X(`rounded-md border border-border px-3 py-2`,o?.files)},n.default.createElement(`div`,{className:`flex flex-wrap items-center gap-2`},n.default.createElement(`span`,{className:`text-xs font-semibold`},J(s.activityFiles,{count:t.length})),r&&n.default.createElement(`button`,{type:`button`,onClick:r,className:`ms-auto inline-flex items-center gap-1 text-xs text-primary hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`},n.default.createElement(Q,{name:`git-compare`,size:12}),s.activityChanges)),n.default.createElement(`ul`,{className:`mt-1 space-y-0.5`},t.map(e=>n.default.createElement(`li`,{key:e,className:`truncate font-mono text-xs text-muted-foreground`,title:e},e)))),i&&n.default.createElement(`button`,{type:`button`,onClick:()=>l(!0),className:`inline-flex items-center gap-1 text-xs text-primary hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`},n.default.createElement(Q,{name:`terminal`,size:12}),s.activityLog))}var kh=({children:e,name:t,onChange:r=void 0,onAdd:i=void 0,onRemove:a=void 0,label:o=`Tab`,min:s=1,max:c=void 0,activeIndex:l=0,title:u=void 0,readOnly:d=!1,tabPosition:f=`default`})=>{let{value:p,handleChange:m}=Dc({name:t,onChange:r}),h=Array.isArray(p)?p:[],g=Y(`tabDynamic`),[_,v]=(0,n.useState)(l),[y,b]=(0,n.useState)(0),x=(0,n.useMemo)(()=>(h.length>0?h:Array.from({length:s},()=>({})))?.map((e,t)=>o.includes(`{`)?E.parse(h[t]??{},o):o+` `+(t+1)),[h,o,s,y]),S=typeof e==`function`?e({record:h[_]??{},records:h,currentIndex:_}):e,C=(0,n.useMemo)(()=>Ac({children:S,parentName:`${t}.${_}`,parentKey:`${t}-${_}-${y}`}),[_,S,t,y]),w=()=>{let e=h.length>0?[...h,{}]:Array.from({length:x.length+1},()=>({}));i?.(e),m({target:{name:`${t}.${e.length-1}`,value:{}}}),v(e.length-1),b(e=>e+1)},T=e=>{let n=x.length-1;a?.(e),m({target:{name:`${t}.${e}`}}),_>=n&&v(e=>e-1),b(e=>e+1)},D=$f[f],O=Xf(f);return n.default.createElement(`div`,null,u&&n.default.createElement(`h3`,null,u),n.default.createElement(D,{menu:n.default.createElement(n.default.Fragment,null,x?.map((e,r)=>n.default.createElement(`div`,{key:`${t}-${r}`,className:`${O.itemClassName} relative`},n.default.createElement(`button`,{type:`button`,role:`tab`,"aria-selected":r===_,onClick:()=>v(r),className:Zf(f,r===_,!d&&x.length-1>=s&&r===_?`pr-9`:void 0)},e),!d&&x.length-1>=s&&r===_&&n.default.createElement(Cn,{className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 text-current opacity-70 hover:opacity-100`,icon:`x`,onClick:()=>T(r)}))),!d&&(!c||x.length<c)&&n.default.createElement(`div`,{key:x.length+1,className:O.itemClassName},n.default.createElement(Cn,{className:Zf(f,!1,`border border-dashed border-border/70 justify-center`),icon:`plus`,title:g.addTab,onClick:w}))),content:n.default.createElement(`div`,{className:Qf()},C)}))},Ah=({records:e,children:t,limit:r=void 0,page:i=void 0,maxPageButtons:a=void 0,appendTo:o=void 0,before:s=void 0,after:l=void 0,className:u=void 0,wrapperClassName:d=void 0,scrollToTopOnChange:f=void 0,scrollBehavior:p=void 0,align:m=void 0,sticky:h=void 0})=>{let g=q(`pagination`),_=Y(`common`),[v,y]=(0,n.useState)(i||1),[b,x]=(0,n.useState)(e.length);e.length!==b&&(x(e.length),y(1));let S=r||e.length,C=Math.ceil(e.length/S),w=(v-1)*S,T=w+S,E=(0,n.useMemo)(()=>e.slice(w,T),[e,w,T]),D=e=>{e>=1&&e<=C&&y(e)};(0,n.useEffect)(()=>{(f||g.Pagination.scrollToTop)&&window.scrollTo({top:0,behavior:p||g.Pagination.scrollBehavior})},[v,f,p]);let O=(0,n.useMemo)(()=>{let e=Math.min(a||g.Pagination.maxItems,C),t=Math.max(1,v-Math.floor(e/2)),n=t+e-1;return n>C&&(n=C,t=Math.max(1,n-e+1)),Array.from({length:n-t+1},(e,n)=>t+n)},[v,a,C]),k=v===1?`disabled`:``,A=v===C?`disabled`:``,j={start:`justify-start`,center:`justify-center`,end:`justify-end`}[m||g.Pagination.align]||`justify-end`,M=e.length>S&&(h??g.Pagination.sticky),N=n.default.createElement(Z,{className:(d||g.Pagination.wrapperClassName)+(M?` ${g.Pagination.stickyClassName}`:``),style:M?{backdropFilter:`blur(10px)`,backgroundColor:`rgba(255, 255, 255, 0.1)`}:{}},s,e.length>S&&n.default.createElement(`nav`,{"aria-label":_.pageNavigation,className:`${u||g.Pagination.className} flex w-full ${j}`},n.default.createElement(`ul`,{className:`flex items-center gap-1`},n.default.createElement(`li`,{className:`mr-2`},n.default.createElement(`button`,{type:`button`,onClick:()=>D(1),disabled:k===`disabled`,className:X(`inline-flex h-9 min-w-[2.25rem] items-center justify-center rounded-md border bg-background px-3 text-sm transition-colors`,k===`disabled`?`pointer-events-none opacity-40`:`cursor-pointer hover:bg-accent hover:text-accent-foreground`)},n.default.createElement(`span`,null,`«`))),n.default.createElement(`li`,null,n.default.createElement(`button`,{type:`button`,disabled:k===`disabled`,className:X(`inline-flex h-9 min-w-[2.25rem] items-center justify-center rounded-md border bg-background px-3 text-sm transition-colors`,k===`disabled`?`pointer-events-none opacity-40`:`cursor-pointer hover:bg-accent hover:text-accent-foreground`),onClick:()=>D(v-1)},n.default.createElement(`span`,null,`‹`))),O.map(e=>n.default.createElement(`li`,{key:e},n.default.createElement(`button`,{type:`button`,onClick:()=>D(e),className:X(`inline-flex h-9 min-w-[2.25rem] items-center justify-center rounded-md border bg-background px-3 text-sm transition-colors cursor-pointer hover:bg-accent hover:text-accent-foreground`,v===e&&`border-primary bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground`)},e))),n.default.createElement(`li`,{className:`ml-2`},n.default.createElement(`button`,{type:`button`,disabled:A===`disabled`,className:X(`inline-flex h-9 min-w-[2.25rem] items-center justify-center rounded-md border bg-background px-3 text-sm transition-colors`,A===`disabled`?`pointer-events-none opacity-40`:`cursor-pointer hover:bg-accent hover:text-accent-foreground`),onClick:()=>D(v+1)},n.default.createElement(`span`,null,`›`))),n.default.createElement(`li`,null,n.default.createElement(`button`,{type:`button`,onClick:()=>D(C),disabled:A===`disabled`,className:X(`inline-flex h-9 min-w-[2.25rem] items-center justify-center rounded-md border bg-background px-3 text-sm transition-colors`,A===`disabled`?`pointer-events-none opacity-40`:`cursor-pointer hover:bg-accent hover:text-accent-foreground`)},n.default.createElement(`span`,null,`»`))))),l);return n.default.createElement(n.default.Fragment,null,t(E,w),o?(0,c.createPortal)(N,o):o===void 0&&N)},jh=({records:e=void 0,header:t=void 0,footer:r=void 0,overlays:i=void 0,renderItem:a=void 0,onRowClick:o=void 0,onSelectionChange:s=void 0,sortable:c=!1,pagination:l=void 0,gap:u=void 0,columns:d=void 0,groupBy:f=void 0,selectedKeys:p=void 0,before:m=void 0,after:h=void 0,wrapperClassName:g=void 0,className:_=void 0,headerClassName:v=void 0,scrollClassName:y=void 0,bodyClassName:b=void 0,footerClassName:x=void 0,selectedClassName:S=void 0})=>{let C=q(`gallery`),w=Y(`gallery`),T=Y(`common`),E=S||C.Gallery.selectedClassName,[D,O]=(0,n.useState)(null),k=(0,n.useCallback)(e=>{e&&O(e)},[]),A=u??C.Gallery.gap,j=d??C.Gallery.rowCols,M={0:`0`,1:`0.25rem`,2:`0.5rem`,3:`1rem`,4:`1.5rem`,5:`3rem`},N=M[A]??M[2],P=`0.75rem`,F=`calc(50% - 1rem)`,I=A===0?`${(100/j).toFixed(4)}%`:`calc((100% - (${N} * ${j-1})) / ${j})`,L=e||[],R=(0,n.useMemo)(()=>{if(!c)return;if(typeof c==`object`)return c;let t=e?.[0];if(!t)return;let n=Object.keys(t).find(e=>!e.startsWith(`_`));if(n)return{field:n,dir:`asc`}},[e,typeof c==`object`?c?.dir:void 0,typeof c==`object`?c?.field:void 0,c]),z=ip(`item`),B=(0,n.useCallback)((e,t)=>z(e,t),[z]),{activeSelectedKeys:ee,showSelection:V,updateSelection:H}=rp({records:L,selectedKeys:p,onSelectionChange:s,getRecordKey:B}),U=(0,n.useRef)(new Map);(0,n.useEffect)(()=>{let e=new Set(L.map((e,t)=>B(e,t)));for(let t of U.current.keys())e.has(t)||U.current.delete(t)},[L,B]);let te=(e,t)=>{if(E){let t=E.split(/\s+/).filter(Boolean),n=e.target;for(;n&&!n.classList.contains(`item`);){if([`A`,`BUTTON`,`INPUT`,`LABEL`].includes(n.tagName))return;n=n.parentNode}t.every(e=>n.classList.contains(e))||(Array.from(n.parentNode?.children||[]).forEach(e=>{e.classList.remove(...t)}),n.classList.add(...t))}o?.(t)},ne=(0,n.useCallback)((e,t)=>{let n=B(e,t),r=ee.includes(n)?ee.filter(e=>e!==n):[...ee,n];H(r)},[ee,B,H]),re=(e,t)=>{let r=e.img;return r&&n.default.isValidElement(r)?n.default.cloneElement(r,{className:X(`block h-auto w-full max-w-full rounded-lg object-cover`,r.props.className),style:{...r.props.style||{},aspectRatio:r.props.style?.aspectRatio||`16 / 11`,cursor:o?`pointer`:`default`},onClick:o?(t=>{te(t,e),r.props.onClick?.(t)}):r.props.onClick}):n.default.createElement(`img`,{className:`block h-auto w-full max-w-full rounded-lg object-cover`,src:e.thumbnail?e.mimetype+e.thumbnail:`data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAgAAAAwAAAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`,alt:e.name,width:e.width,height:e.height,style:{aspectRatio:`16 / 11`,cursor:o?`pointer`:`default`},onClick:o?(t=>te(t,e)):void 0})},W=e=>n.default.isValidElement(e)?e:n.default.createElement(`span`,{className:`inline-block max-w-full overflow-hidden text-ellipsis align-top`},n.default.createElement(jt,{badge:e,className:`badge-overlay`})),G=(e,t,r=`left`,i)=>n.default.createElement(`div`,{className:X(`absolute z-10 overflow-hidden text-ellipsis whitespace-nowrap leading-none`,r===`right`?`text-right`:`text-left`,i),style:{width:F,maxWidth:F,pointerEvents:`none`,...t}},W(e)),ie={topLeft:{style:{left:P,top:P}},topRight:{style:{right:P,top:P},align:`right`},bottomLeft:{style:{bottom:P,left:P}},bottomRight:{style:{bottom:P,right:P},align:`right`},middleLeft:{style:{left:P,top:`50%`,transform:`translateY(-50%)`}},middleRight:{style:{right:P,top:`50%`,transform:`translateY(-50%)`},align:`right`}},ae=(e,t,n)=>e.when?typeof e.when==`function`?e.when(t,n):Object.entries(e.when).every(([e,n])=>t[e]===n):!0,oe=(e,t,n)=>e.render?e.render(t,n):typeof e.badge==`function`?e.badge(t,n):e.badge,se=(e,t)=>i?.length?i.map((r,i)=>{if(!r.position||!ae(r,e,t))return null;let a=oe(r,e,t);if(a==null||a===!1)return null;let o=ie[r.position];return o?n.default.createElement(n.default.Fragment,{key:`${r.position}-${i}`},G(a,{...o.style,...r.style},o.align,r.className)):null}):null,ce=(0,n.useCallback)((e,t)=>{let n=B(e,t),r=U.current.get(n);if(r&&r.recordRef===e&&r.overlaysRef===i&&r.onClickRef===o&&r.rowIndex===t)return{image:r.image,overlays:r.overlays};let a={image:re(e,t),overlays:se(e,t)};return U.current.set(n,{recordRef:e,overlaysRef:i,onClickRef:o,rowIndex:t,image:a.image,overlays:a.overlays}),a},[B,o,i]),le=(e,t)=>{let r=B(t,e),i=ee.includes(r),s=E?.split(/\s+/).filter(Boolean)||[],c=a?null:ce(t,e),l=a?a(t,e,{isSelected:i,toggleSelection:()=>ne(t,e)}):null;return n.default.createElement(`div`,{key:r,className:X(`item min-w-0`,i&&s),style:{flex:`0 0 ${I}`,maxWidth:I}},n.default.createElement(`div`,{className:X(`relative`,!a&&`overflow-hidden rounded-lg`,a&&o&&`cursor-pointer`),onClick:a&&o?e=>te(e,t):void 0},V&&n.default.createElement(`label`,{className:`absolute left-3 top-3 z-20 inline-flex items-center rounded bg-background/90 px-2 py-1 shadow-sm`},n.default.createElement(`input`,{type:`checkbox`,"aria-label":J(w.selectItem,{key:r}),checked:i,onChange:()=>ne(t,e),onClick:e=>e.stopPropagation()})),a?l:n.default.createElement(n.default.Fragment,null,c.image,c.overlays)))},ue=(e,t)=>{let n=Array.isArray(t)?t:[t],r=new Map;return e.forEach((e,t)=>{let i=n.map(t=>String(e[t]??``)).join(` · `)||`-`;r.has(i)||r.set(i,[]),r.get(i).push({item:e,index:t})}),Array.from(r.entries()).map(([e,t])=>({kind:`group`,groupName:e,items:t}))},K=(0,n.useMemo)(()=>{if(!Array.isArray(e))return;let t=wr.records(e,R)||[];return f?ue(t,f):t.map((e,t)=>({kind:`item`,item:e,index:t}))},[e,f,R]);return K===void 0?n.default.createElement(`p`,{className:`p-4`},n.default.createElement(`span`,{className:`mr-2 inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`}),T.loading):K.length===0?n.default.createElement(`p`,{className:`p-4`},T.noDataFound):n.default.createElement(`div`,{className:X(`flex items-stretch gap-3`,g||C.Gallery.wrapperClassName)},m&&n.default.createElement(`div`,{className:`gallery-before flex shrink-0 items-center self-stretch`},m),n.default.createElement(Z,{className:X(`min-w-0 flex-1 flex flex-col`,_||C.Gallery.className)},t&&n.default.createElement(`div`,{className:v||C.Gallery.headerClassName},t),n.default.createElement(Z,{className:X(`min-w-0 flex-1`,y||C.Gallery.scrollClassName)},n.default.createElement(Ah,{records:K,appendTo:D,wrapperClassName:`px-3 pt-4 pb-2`,...l||{}},e=>n.default.createElement(`div`,{className:`p-3`},n.default.createElement(`div`,{className:`flex flex-wrap text-center items-center `+(b||C.Gallery.bodyClassName),style:{gap:N}},e.map(e=>e.kind===`group`?n.default.createElement(`section`,{key:e.groupName,className:`gallery-group rounded-lg border bg-card p-3 text-left`},n.default.createElement(`h3`,{className:`mb-3 text-sm font-semibold uppercase tracking-wide text-muted-foreground`},e.groupName),n.default.createElement(`div`,{className:X(`flex flex-wrap items-center`),style:{gap:N}},e.items.map(({item:e,index:t})=>le(t,e)))):le(e.index,e.item)))))),n.default.createElement(`div`,{ref:k,className:`mt-auto`}),r&&n.default.createElement(`div`,{className:x||C.Gallery.footerClassName},r)),h&&n.default.createElement(`div`,{className:`gallery-after flex shrink-0 items-center self-stretch`},h))};function Mh({records:e,recordId:t,sortable:r,pagination:i,selection:a=!1,selectedKeys:o,onSelectionChange:s,onRowClick:c,groupBy:l,wrapperClassName:u,before:d,after:f,columns:p,overlays:m,renderItem:h}){let g=(0,n.useMemo)(()=>Zp(t),[t]),_=(0,n.useMemo)(()=>e.reduce((e,t)=>(e.set(g(t),t),e),new Map),[g,e]),v=(0,n.useMemo)(()=>e.map(e=>({...e,[yr]:g(e)})),[e,g]);return n.default.createElement(jh,{records:v,overlays:m,renderItem:h?(e,t,n)=>h(e,t,n):void 0,sortable:r,pagination:i,selectedKeys:a?o:void 0,onSelectionChange:a?e=>{let t=e.keys,n=e.records;if(a===`single`&&e.keys.length>1){let r=e.keys[e.keys.length-1];t=r?[r]:[],n=r&&_.get(r)?[_.get(r)]:[]}let r={keys:t,records:n,hasSelection:t.length>0,clear:()=>s?.({keys:[],records:[],hasSelection:!1,clear:()=>void 0})};s?.(r)}:void 0,onRowClick:c?e=>c(e):void 0,groupBy:l,wrapperClassName:u,before:d,after:f,columns:p})}function Nh({actions:e,form:t,editDeepLink:i,preparedRecords:a,recordId:o,sourcePath:s,db:c,onSave:l,onDelete:u,onComplete:d,audit:f=!1}){let p=(0,r.useLocation)(),m=(0,r.useNavigate)(),h=(0,n.useId)(),g=_c(),_=(0,n.useMemo)(()=>Zp(o),[o]),v=(0,n.useMemo)(()=>rm(e,!!t),[e,t]),[y,b]=(0,n.useState)(null),x=(0,n.useMemo)(()=>`${Xp(s||`grid-records`)}-${Xp(h)}`,[h,s]),S=(0,n.useCallback)(()=>{b(null),i&&p.hash.startsWith(`#${x}:`)&&m({pathname:p.pathname,search:p.search,hash:``},{replace:!0})},[i,x,p.hash,p.pathname,p.search,m]),C=(0,n.useCallback)(async(e,t=!0)=>{let n=u?await u({record:e}):s?`${s}/${_(e)}`:void 0;if(!n&&!u)return!1;n&&await c.remove(n);let r=await d?.({record:e,action:`delete`})??!0;return r&&t&&S(),r},[S,c,_,d,u,s]),w=(0,n.useCallback)(async()=>g.save(),[g]),T=(0,n.useCallback)(async(e,t)=>{let n=v[e];if(!n||!im(n,t)||am(n,t))return;let r={actionKey:e,record:t,recordKey:t?_(t):void 0,rowIndex:t?._index,isNewRecord:!t,close:S,save:w,remove:async()=>t?C(t,!0):!1,runAction:(e,t)=>T(e,t)};if(n.kind===`route`){let e=typeof n.to==`function`?n.to(r):n.to;m(e);return}if(n.kind===`external`){let e=typeof n.href==`function`?n.href(r):n.href;window.open(e,`_blank`,`noopener,noreferrer`);return}if(n.kind===`inline`){await n.run(r);return}e===`edit`&&i&&t&&m({hash:`${x}:${encodeURIComponent(_(t))}`},{replace:!1}),b({actionKey:e,record:t})},[S,i,_,x,m,v,C,w]),E=(0,n.useCallback)((e,t)=>({actionKey:e,record:t,recordKey:t?_(t):void 0,rowIndex:t?._index,isNewRecord:!t,runAction:(e,t)=>T(e,t)}),[_,T]),D=(0,n.useCallback)(async e=>{let t=y?.record;if(e===`cancel`){S();return}if(e===`save`){await w();return}if(e===`remove`){if(!t)return;await C(t,!0);return}await T(e,t)},[y?.record,S,C,T,w]),O=(0,n.useCallback)((e,t)=>({actionKey:e,record:t,recordKey:t?_(t):void 0,rowIndex:t?._index,isNewRecord:!t,runAction:e=>{D(e)}}),[_,D]);(0,n.useEffect)(()=>{if(!i)return;let e=p.hash.replace(/^#/,``),t=`${x}:`;if(!e.startsWith(t)){y?.actionKey===`edit`&&b(null);return}let n=decodeURIComponent(e.slice(t.length)),r=a.find(e=>_(e)===n);r&&b(e=>e?.actionKey===`edit`&&e.record&&_(e.record)===n?e:{actionKey:`edit`,record:r})},[y?.actionKey,i,_,x,p.hash,a]);let k=y?v[y.actionKey]:void 0;return{normalizedActions:v,activeAction:y,activeActionConfig:k,activeActionBody:(0,n.useMemo)(()=>{if(!y||!k)return null;let e=E(y.actionKey,y.record),r=O(y.actionKey,y.record);if(k.kind===`delete`)return typeof k.body==`function`?k.body(r):k.body===void 0?n.default.createElement(`div`,{className:`space-y-2`},n.default.createElement(`p`,null,`Delete this record?`),y.record&&n.default.createElement(`p`,{className:`text-sm text-muted-foreground`},_(y.record))):k.body;if((y.actionKey===`add`||y.actionKey===`edit`)&&t){let i=k.kind===`modal`&&k.body!==void 0?typeof k.body==`function`?k.body(r):k.body:typeof t==`function`?t({...e,record:y.record}):t;return n.default.isValidElement(i)?n.default.createElement(jc,{appearance:`empty`,controller:g,defaultValues:y.record,log:f,onSave:l?async({record:e,action:t,storagePath:n})=>l({record:e,action:t,storagePath:n}):void 0,onDelete:u?async({record:e})=>u({record:e}):void 0,onComplete:async({record:e,action:t})=>{let n=await d?.({record:e,action:t})??!0;return n&&S(),n},path:s},i):i}return k.kind===`modal`&&k.body!==void 0?typeof k.body==`function`?k.body(r):k.body:null},[y,k,f,S,t,g,E,O,_,d,u,l,s]),activeKey:y?.actionKey===`edit`&&y.record?_(y.record):null,runAction:T,runModalAction:D,close:S,getActionContext:E,getModalActionContext:O,getRecordKey:_,formController:g,gridHashId:x}}function Ph({columns:e,records:t,form:r}){return(0,n.useMemo)(()=>nm(e,t,r),[e,r,t])}function Fh({records:e,onLoad:t}){let[r,i]=(0,n.useState)(e),[a,o]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{if(!t){i(e),o(!1);return}let n=!0,r=t(ie(e));if(r instanceof Promise)return o(!0),r.then(e=>{n&&i(e)}).finally(()=>{n&&o(!1)}),()=>{n=!1};i(r),o(!1)},[e,t]),{preparedRecords:r,loading:a}}function Ih({selection:e}){let t=e!==null&&e!==!1&&typeof e==`object`,r=e?typeof e==`string`?e:e.mode:!1,i=t?e.defaultKeys:void 0,a=t?e.onChange:void 0,[o,s]=(0,n.useState)(i??[]),[c,l]=(0,n.useState)([]),u=i?.join(`\0`)??``;(0,n.useEffect)(()=>{s(i??[]),l([])},[u]);let d=(0,n.useCallback)(()=>{s([]),l([]),a?.({keys:[],records:[],hasSelection:!1,clear:()=>void 0})},[a]);return{mode:r,activeSelectionKeys:o,selectionState:(0,n.useMemo)(()=>({keys:o,records:c,hasSelection:o.length>0,clear:d}),[d,o,c]),handleSelectionChange:(0,n.useCallback)(e=>{s(e.keys),l(e.records),a?.(e)},[a])}}var Lh=(e,t,n,r,i)=>t?.kind===`delete`?typeof t.title==`function`?t.title(n):t.title||r:t?.kind===`modal`?typeof t.title==`function`?t.title(n):t.title||om(e,t,i):om(e,t,i),Rh=e=>{switch(e.kind){case`select`:return``;case`multiselect`:return[];case`dateRange`:return{from:``,to:``};case`numberRange`:return{min:void 0,max:void 0};default:return e.defaultValue??!1}},zh=(e,t)=>{switch(e.kind){case`select`:return typeof t==`string`&&t!==``;case`multiselect`:return Array.isArray(t)&&t.length>0;case`dateRange`:{let e=t;return!!e?.from||!!e?.to}case`numberRange`:{let e=t;return e?.min!==void 0||e?.max!==void 0}default:return!!t!=!!(e.defaultValue??!1)}},Bh=(e,t,n)=>{switch(e.kind){case`select`:return e.predicate(t,n);case`multiselect`:return e.predicate(t,n);case`dateRange`:return e.predicate(t,n);case`numberRange`:return e.predicate(t,n);default:return e.predicate(t,n)}},Vh=(e,t,n)=>{switch(e.kind){case`select`:{let n=e.options.find(e=>e.value===t);return`${e.label}: ${n?.label??String(t)}`}case`multiselect`:{let r=t;if(r.length===1){let t=e.options.find(e=>e.value===r[0]);return`${e.label}: ${t?.label??r[0]}`}return`${e.label}: ${n.filtersSelectedCountTemplate.replace(`{count}`,String(r.length))}`}case`dateRange`:{let r=t;return r.from&&r.to?`${e.label}: ${r.from} → ${r.to}`:r.from?`${e.label}: ${n.filtersRangeFrom} ${r.from}`:`${e.label}: ${n.filtersRangeTo} ${r.to}`}case`numberRange`:{let r=t;return r.min!==void 0&&r.max!==void 0?`${e.label}: ${r.min}–${r.max}`:r.min===void 0?`${e.label}: ${n.filtersRangeMax} ${r.max}`:`${e.label}: ${n.filtersRangeMin} ${r.min}`}default:return e.label}},Hh=`w-full rounded-md border border-input bg-background px-2 py-1.5 text-sm placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring`;function Uh({filter:e,value:t,onChange:r,dict:i}){if(e.kind===`select`)return n.default.createElement(`label`,{className:`flex flex-col gap-1.5`},n.default.createElement(`span`,{className:`text-sm font-medium text-foreground`},e.label),n.default.createElement(`select`,{className:Hh,value:t,onChange:e=>r(e.target.value)},n.default.createElement(`option`,{value:``},i.filtersSelectPlaceholder),e.options.map(e=>n.default.createElement(`option`,{key:e.value,value:e.value},e.label))));if(e.kind===`multiselect`){let i=t,a=e=>r(i.includes(e)?i.filter(t=>t!==e):[...i,e]);return n.default.createElement(`div`,{className:`flex flex-col gap-1.5`},n.default.createElement(`span`,{className:`text-sm font-medium text-foreground`},e.label),n.default.createElement(`div`,{className:`flex flex-col gap-1`},e.options.map(e=>n.default.createElement(`label`,{key:e.value,className:`flex cursor-pointer items-center gap-2 text-sm text-muted-foreground`},n.default.createElement(`input`,{type:`checkbox`,checked:i.includes(e.value),onChange:()=>a(e.value)}),e.label))))}if(e.kind===`dateRange`){let a=t;return n.default.createElement(`div`,{className:`flex flex-col gap-1.5`},n.default.createElement(`span`,{className:`text-sm font-medium text-foreground`},e.label),n.default.createElement(`div`,{className:`flex flex-col gap-2`},n.default.createElement(`label`,{className:`flex flex-col gap-1`},n.default.createElement(`span`,{className:`text-xs text-muted-foreground`},i.filtersRangeFrom),n.default.createElement(`input`,{type:`date`,className:Hh,value:a.from,onChange:e=>r({...a,from:e.target.value})})),n.default.createElement(`label`,{className:`flex flex-col gap-1`},n.default.createElement(`span`,{className:`text-xs text-muted-foreground`},i.filtersRangeTo),n.default.createElement(`input`,{type:`date`,className:Hh,value:a.to,onChange:e=>r({...a,to:e.target.value})}))))}if(e.kind===`numberRange`){let a=t;return n.default.createElement(`div`,{className:`flex flex-col gap-1.5`},n.default.createElement(`span`,{className:`text-sm font-medium text-foreground`},e.label),n.default.createElement(`div`,{className:`flex flex-col gap-2`},n.default.createElement(`label`,{className:`flex flex-col gap-1`},n.default.createElement(`span`,{className:`text-xs text-muted-foreground`},i.filtersRangeMin),n.default.createElement(`input`,{type:`number`,className:Hh,value:a.min??``,onChange:e=>r({...a,min:e.target.value===``?void 0:Number(e.target.value)})})),n.default.createElement(`label`,{className:`flex flex-col gap-1`},n.default.createElement(`span`,{className:`text-xs text-muted-foreground`},i.filtersRangeMax),n.default.createElement(`input`,{type:`number`,className:Hh,value:a.max??``,onChange:e=>r({...a,max:e.target.value===``?void 0:Number(e.target.value)})}))))}let a=t;return n.default.createElement(`label`,{className:`inline-flex cursor-pointer items-center gap-2 select-none`},n.default.createElement(`span`,{className:`relative inline-flex h-5 w-9 shrink-0 items-center`},n.default.createElement(`input`,{type:`checkbox`,checked:a,onChange:()=>r(!a),className:`peer absolute inset-0 m-0 h-full w-full cursor-pointer opacity-0`}),n.default.createElement(`span`,{"aria-hidden":`true`,className:X(`pointer-events-none absolute inset-0 rounded-full transition-colors duration-200 ease-out peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2`,a?`bg-primary`:`bg-muted-foreground/35`)},n.default.createElement(`span`,{className:X(`pointer-events-none absolute top-0.5 left-0.5 h-4 w-4 rounded-full bg-background shadow-sm transition-transform duration-200 ease-out`,a&&`translate-x-4`)}))),n.default.createElement(`span`,{className:`text-sm text-foreground`},e.label))}function Wh({records:e,recordId:t,sourcePath:r,columns:i,actions:a,form:o,editDeepLink:s,header:c,footer:l,view:u=`table`,views:d,sticky:f,wrapperClassName:p,cardClassName:m,bodyClassName:h,loading:g=!1,title:_,before:v,after:y,sortable:b=!0,pagination:x,selection:S,onRowClick:C,reorderable:w=!1,onReorder:T,groupBy:E,searchable:D,filters:O,onSave:k,onDelete:A,onComplete:j,audit:M=!1,onLoad:N}){let P=q(`grid`),F=Y(`grid`),I=Y(`common`),L=(0,n.useMemo)(()=>({add:F.buttonAdd}),[F.buttonAdd]),R=lr(),{preparedRecords:z,loading:B}=Fh({records:e,onLoad:N}),ee=Ph({columns:i,records:z,form:o}),[V,H]=(0,n.useState)(()=>Object.fromEntries((O??[]).map(e=>[e.key,Rh(e)]))),[U,te]=(0,n.useState)(!1),ne=(0,n.useCallback)((e,t)=>{H(n=>({...n,[e]:t}))},[]),re=(0,n.useCallback)(e=>{H(t=>({...t,[e.key]:Rh(e)}))},[]),W=(O??[]).filter(e=>zh(e,V[e.key]??Rh(e))),G=(0,n.useMemo)(()=>!O||O.length===0?z:z.filter(e=>O.every(t=>Bh(t,e,V[t.key]??Rh(t)))),[z,O,V]),ie=O&&O.length>0?n.default.createElement(Cn,{icon:`filter`,ariaLabel:F.filtersButton,title:F.filtersButton,variant:`link`,badge:W.length>0?W.length:void 0,onClick:()=>te(!0)}):null,ae=(O??[]).length>0&&W.length>0?n.default.createElement(`div`,{className:`flex flex-wrap items-center gap-1.5`},W.map(e=>n.default.createElement(Mt,{key:e.key,variant:`info`,className:`inline-flex items-center gap-1`},Vh(e,V[e.key]??Rh(e),F),n.default.createElement(Cn,{icon:`x`,variant:`link`,ariaLabel:`${F.filtersClearAll} ${e.label}`,title:`${F.filtersClearAll} ${e.label}`,onClick:()=>re(e)})))):null,oe=!D&&ie?n.default.createElement(`div`,{className:`flex flex-wrap items-center gap-2`},ie,ae):null,se=U&&O&&O.length>0?n.default.createElement(si,{title:F.filtersPanelTitle,size:`md`,position:`right`,onClose:()=>te(!1),footer:n.default.createElement(Cn,{label:F.filtersClearAll,variant:`link`,disabled:W.length===0,onClick:()=>H(Object.fromEntries(O.map(e=>[e.key,Rh(e)])))})},n.default.createElement(`div`,{className:`flex flex-col gap-5`},O.map(e=>n.default.createElement(Uh,{key:e.key,filter:e,value:V[e.key]??Rh(e),onChange:t=>ne(e.key,t),dict:F})))):null,ce=D===!0?{}:D||void 0,[le,ue]=(0,n.useState)(``),K=(0,n.useMemo)(()=>{if(!ce||!le.trim())return G;let e=le.trim().toLowerCase(),t=ce.fields?.map(String);return G.filter(n=>(t??Object.keys(n)).some(t=>{let r=de(n,t);return typeof r==`string`&&r.toLowerCase().includes(e)}))},[G,ce,le]),fe=ce?n.default.createElement(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`},n.default.createElement(`div`,{className:`flex min-w-0 items-center gap-1`},n.default.createElement(`input`,{type:`search`,value:le,onChange:e=>ue(e.target.value),placeholder:ce.placeholder??I.search,className:`w-full max-w-xs rounded-md border border-input bg-background px-2 py-1 text-sm placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring`}),ie),ae,n.default.createElement(`span`,{className:`shrink-0 text-xs text-muted-foreground`},K.length,` / `,z.length)):null,pe=d??{},me=pe.table??{},he=pe.gallery??{},[ge,_e]=(0,n.useState)(u);(0,n.useEffect)(()=>{_e(u)},[u]);let[ve,ye]=(0,n.useState)(()=>new Set(ee.filter(e=>e.defaultVisible===!1).map(e=>String(e.key)))),be=(0,n.useCallback)(e=>{ye(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),xe=(0,n.useMemo)(()=>ee.filter(e=>!ve.has(String(e.key))),[ee,ve]),Se=he.fields??[],[Ce,we]=(0,n.useState)(()=>new Set(Se.filter(e=>e.defaultVisible===!1).map(e=>String(e.key)))),Te=(0,n.useCallback)(e=>{we(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),Ee=(0,n.useMemo)(()=>Se.filter(e=>!Ce.has(String(e.key))),[Se,Ce]),De=(0,n.useMemo)(()=>{if(he.renderItem)return;let e=[];if(Ee.length){let t=new Map;Ee.forEach(e=>{let n=e.position??`bottomLeft`;t.has(n)||t.set(n,[]),t.get(n).push(e)}),e.push(...Array.from(t.entries()).map(([e,t])=>({position:e,render:e=>n.default.createElement(`div`,{className:`w-full space-y-0.5 bg-background/90 px-2 py-1 text-xs`},t.map(t=>{let r=de(e,String(t.key));return n.default.createElement(`div`,{key:String(t.key),className:`truncate font-medium`},t.render?t.render(r,e):String(r??``))}))})))}let t=[...he.overlays??[],...e];return t.length?t:void 0},[he.overlays,he.renderItem,Ee]),{mode:Oe,activeSelectionKeys:ke,selectionState:Ae,handleSelectionChange:je}=Ih({selection:S}),{normalizedActions:Me,activeAction:Ne,activeActionConfig:Pe,activeActionBody:Fe,activeKey:Ie,runAction:Le,close:Re,getActionContext:ze,getModalActionContext:Be,getRecordKey:Ve,formController:He}=Nh({actions:a,form:o,editDeepLink:s,preparedRecords:z,recordId:t,sourcePath:r,db:R,onSave:k,onDelete:A,onComplete:j,audit:M}),Ue=Me.edit,We=!!Ue&&(Ue.kind!==`modal`||!!o),Ge=(0,n.useCallback)(e=>{if(C?.(e),!We)return;let t=Ve(e);if(Ne?.actionKey===`edit`&&Ne.record&&Ve(Ne.record)===t){Re();return}Le(`edit`,e)},[Ne?.actionKey,Ne?.record,We,Re,Ve,C,Le]),Ke=C||We?Ge:void 0,qe=(0,n.useCallback)((e,t,r)=>{let i=Me[e];return!i||!im(i,t)?null:n.default.createElement(Cn,{className:r||(e===`add`?`btn-primary`:void 0),icon:i.icon,label:om(e,i,L),disabled:am(i,t),onClick:()=>Le(e,t)})},[Me,Le,L]),Je=(0,n.useMemo)(()=>Object.entries(Me).filter(([e,t])=>e!==`edit`&&e!==`delete`&&im(t,void 0)).map(([e])=>e),[Me]),Ye=(0,n.useMemo)(()=>({title:_,records:z,selection:Ae,runAction:Le}),[z,Le,Ae,_]),Xe=(0,n.useMemo)(()=>({records:z,selection:Ae,runAction:Le}),[z,Le,Ae]),Ze=pe.toggle?n.default.createElement(`span`,{className:`inline-flex rounded-md border border-border overflow-hidden`},n.default.createElement(Cn,{icon:`list`,ariaLabel:F.tableView,title:F.tableView,className:`rounded-none border-0 `+(ge===`table`?`bg-card text-foreground shadow-sm`:`bg-transparent text-muted-foreground`),onClick:()=>_e(`table`)}),n.default.createElement(Cn,{icon:`layout-grid`,ariaLabel:F.galleryView,title:F.galleryView,className:`rounded-none border-0 border-l border-border `+(ge===`gallery`?`bg-card text-foreground shadow-sm`:`bg-transparent text-muted-foreground`),onClick:()=>_e(`gallery`)})):null,Qe=me.columnPicker&&ge===`table`?n.default.createElement(Ya,{trigger:{icon:`columns`,title:F.columns},triggerClassName:`btn btn-outline-secondary`,position:`end`},ee.map(e=>{let t=String(e.key);return n.default.createElement(`label`,{key:t,className:`flex cursor-pointer items-center gap-2 px-3 py-1.5 text-sm hover:bg-accent`},n.default.createElement(`input`,{type:`checkbox`,checked:!ve.has(t),onChange:()=>be(t)}),e.label)})):null,$e=he.fieldPicker&&ge===`gallery`&&Se.length?n.default.createElement(Ya,{trigger:{icon:`sliders-horizontal`,title:F.fields},triggerClassName:`btn btn-outline-secondary`,position:`end`},Se.map(e=>{let t=String(e.key);return n.default.createElement(`label`,{key:t,className:`flex cursor-pointer items-center gap-2 px-3 py-1.5 text-sm hover:bg-accent`},n.default.createElement(`input`,{type:`checkbox`,checked:!Ce.has(t),onChange:()=>Te(t)}),e.label)})):null,et=(0,n.useMemo)(()=>{if(c!==void 0)return typeof c==`function`?c(Ye):c;if(_||fe||oe||Je.length||Ze||Qe||$e)return n.default.createElement(n.default.Fragment,null,fe||oe?n.default.createElement(`span`,{className:`flex min-w-0 flex-1 items-center gap-3`},_,fe,oe):_||n.default.createElement(`span`,null),Je.length||Ze||Qe||$e?n.default.createElement(`span`,{className:`flex flex-wrap items-center gap-2`},Qe,$e,Ze,Je.map(e=>n.default.createElement(n.default.Fragment,{key:e},qe(e)))):null)},[qe,c,Je,Ye,_,Ze,Qe,$e,fe,oe]),tt=(0,n.useMemo)(()=>{if(l!==void 0)return typeof l==`function`?l(Xe):l},[l,Xe]),nt=(0,n.useMemo)(()=>{if(Ne&&Pe&&(Pe.kind===`modal`||Pe.kind===`delete`))return Be(Ne.actionKey,Ne.record)},[Ne,Pe,Be]),rt=(0,n.useMemo)(()=>{if(Pe&&(Pe.kind===`modal`||Pe.kind===`delete`)&&Pe.header!==void 0&&nt)return typeof Pe.header==`function`?Pe.header(nt):Pe.header},[Pe,nt]),it=(0,n.useMemo)(()=>{if(!(!Pe||Pe.kind!==`modal`&&Pe.kind!==`delete`)){if(Pe.footer===!1)return!1;if(Pe.footer!==void 0&&nt)return typeof Pe.footer==`function`?Pe.footer(nt):Pe.footer}},[Pe,nt]),at=sm(b);return n.default.createElement(n.default.Fragment,null,n.default.createElement(hr,{wrapperClassName:p,header:et,footer:tt,className:X(P.Grid.Card.className,f?`sticky-${f}`:``,m),headerClassName:P.Grid.Card.headerClassName,bodyClassName:X(P.Grid.Card.bodyClassName,h),footerClassName:P.Grid.Card.footerClassName,loading:g||B},ge===`gallery`?n.default.createElement(Mh,{records:K,recordId:t,sortable:at||b,pagination:x,selection:Oe,selectedKeys:ke,onSelectionChange:Oe?je:void 0,onRowClick:Ke,groupBy:E,wrapperClassName:P.Grid.Gallery.wrapperClassName,before:v,after:y,columns:he.columns,overlays:De,renderItem:he.renderItem}):n.default.createElement(cm,{records:K,recordId:t,columns:xe,runAction:Le,sortable:at||b,pagination:x,selection:Oe,selectedKeys:ke,onSelectionChange:Oe?je:void 0,onRowClick:Ke,reorderable:w,onReorder:T,activeKey:Ie,groupBy:E,wrapperClassName:P.Grid.Table.wrapperClassName,className:me.className,heightClassName:me.heightClassName,scrollClassName:me.scrollClassName,headerClassName:me.headerClassName,before:v,after:y})),se,Ne&&Pe&&(Pe.kind===`modal`||Pe.kind===`delete`)&&n.default.createElement(si,{size:(Pe.kind===`modal`||Pe.kind===`delete`)&&Pe.size||P.Grid.Modal.size,position:(Pe.kind===`modal`||Pe.kind===`delete`)&&Pe.position||P.Grid.Modal.position,header:rt,title:Lh(Ne.actionKey,Pe,Pe.kind===`modal`||Pe.kind===`delete`?Be(Ne.actionKey,Ne.record):ze(Ne.actionKey,Ne.record),F.deleteConfirm,L),onClose:Re,onSave:Pe.kind===`modal`&&Pe.footer===void 0&&(Ne.actionKey===`add`||Ne.actionKey===`edit`)?e=>He.save(e):void 0,onDelete:Pe.kind===`delete`?async()=>{let e=Ne.record;if(!e)return!1;let t=A?await A({record:e}):r?`${r}/${Ve(e)}`:void 0;if(!t&&!A)return!1;t&&await R.remove(t);let n=await j?.({record:e,action:`delete`})??!0;return n&&Re(),n}:Pe.kind===`modal`&&Pe.footer===void 0&&Ne.actionKey===`edit`&&Ne.record&&Me.delete?async()=>(await Be(Ne.actionKey,Ne.record).runAction(`remove`),!1):void 0,footer:it,showCancel:Pe.kind===`modal`||Pe.kind===`delete`?Pe.footer===void 0:!0,allowFullscreen:Pe.kind===`modal`||Pe.kind===`delete`?Pe.allowFullscreen:!0,wrapperClassName:P.Grid.Modal.wrapperClassName,className:P.Grid.Modal.className,headerClassName:P.Grid.Modal.headerClassName,titleClassName:P.Grid.Modal.titleClassName,bodyClassName:P.Grid.Modal.bodyClassName,footerClassName:P.Grid.Modal.footerClassName},Fe))}function Gh(e){return n.default.createElement(Wh,e)}function Kh(e){return`records`in e?n.default.createElement(Gh,e):n.default.createElement(Yp,e)}function qh(){return n.default.createElement(Kh,{path:`/users`,recordId:e=>`${e.email??``}`.replace(`@`,`-`),form:n.default.createElement(n.default.Fragment,null,n.default.createElement(el,{name:`username`,label:`Username`}),n.default.createElement(nl,{name:`email`,label:`Email`,required:!0,readOnlyAfterSet:!0}),n.default.createElement(Nr,{name:`permission`,label:`Permission`,options:[{value:`admin`,label:`Admin`},{value:`user`,label:`User`}],required:!0}))})}var Jh=()=>{let e=Y(`common`);return n.default.createElement(`div`,{className:`flex flex-col justify-center items-center vh-100`},n.default.createElement(`h1`,null,`404`),n.default.createElement(`p`,null,e.notFoundMessage),n.default.createElement(r.Link,{to:`/`},n.default.createElement(Q,{name:`house-door`}),` `,e.goHome))},Yh=({size:e=28})=>n.default.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.75`,strokeLinecap:`round`,strokeLinejoin:`round`},n.default.createElement(`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z`}),n.default.createElement(`line`,{x1:`12`,x2:`12`,y1:`9`,y2:`13`}),n.default.createElement(`line`,{x1:`12`,x2:`12.01`,y1:`17`,y2:`17`})),Xh=({open:e})=>n.default.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,style:{transition:`transform 0.18s`,transform:e?`rotate(180deg)`:`none`,flexShrink:0}},n.default.createElement(`polyline`,{points:`6 9 12 15 18 9`})),Zh=()=>n.default.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},n.default.createElement(`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`}),n.default.createElement(`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`})),Qh=()=>n.default.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},n.default.createElement(`path`,{d:`m22 2-7 20-4-9-9-4Z`}),n.default.createElement(`path`,{d:`M22 2 11 13`})),$h=()=>n.default.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`},n.default.createElement(`path`,{d:`m8 2 1.88 1.88M14.12 3.88 16 2`}),n.default.createElement(`path`,{d:`M9 7.13v-1a3.003 3.003 0 1 1 6 0v1`}),n.default.createElement(`path`,{d:`M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6z`}),n.default.createElement(`path`,{d:`M12 20v-9`}),n.default.createElement(`path`,{d:`M6.53 9C4.6 8.8 3 7.1 3 5`}),n.default.createElement(`path`,{d:`M6 13H2`}),n.default.createElement(`path`,{d:`M3 21c0-2.1 1.7-3.9 3.8-4`}),n.default.createElement(`path`,{d:`M20.97 5c0 2.1-1.6 3.8-3.5 4`}),n.default.createElement(`path`,{d:`M22 13h-4`}),n.default.createElement(`path`,{d:`M17.2 17c2.1.1 3.8 1.9 3.8 4`})),eg=(e,t)=>({error:{message:e.message,stack:e.stack??``},componentStack:t?.componentStack??``,context:{url:typeof window<`u`?window.location.href:``,userAgent:typeof navigator<`u`?navigator.userAgent:``,timestamp:new Date().toISOString()}}),tg=(e,t)=>{let n=eg(e,t);return[`Error: ${n.error.message}`,``,`--- Stack Trace ---`,n.error.stack,``,`--- Component Stack ---`,n.componentStack,``,`--- Context ---`,`URL: ${n.context.url}`,`Timestamp: ${n.context.timestamp}`,`Agent: ${n.context.userAgent}`].join(`
|
|
16
|
+
`)},ng=({children:e})=>n.default.createElement(n.default.Fragment,null,e(mt().errorBoundary)),rg=class extends n.default.Component{constructor(e){super(e),this.state={error:null,errorInfo:null,detailsOpen:!1,debugOpen:!1,copied:!1,reportState:`idle`}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){this.setState({errorInfo:t}),console.error(`[ErrorBoundary]`,e.message,t.componentStack)}reset=()=>{window.location.reload()};copy=()=>{let{error:e,errorInfo:t}=this.state;e&&navigator.clipboard?.writeText(tg(e,t)).then(()=>{this.setState({copied:!0}),setTimeout(()=>this.setState({copied:!1}),2e3)})};sendReport=()=>{let{error:e,errorInfo:t}=this.state,{reportUrl:n}=this.props;e&&n&&(this.setState({reportState:`sending`}),fetch(n,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(eg(e,t))}).then(e=>this.setState({reportState:e.ok?`sent`:`failed`})).catch(()=>this.setState({reportState:`failed`})))};render(){let{error:e,errorInfo:t,detailsOpen:r,debugOpen:i,copied:a,reportState:o}=this.state;if(!e)return this.props.children;let{fallback:s,reportUrl:c,fullPage:l}=this.props,u=this.props.debug??!1??!1;if(typeof s==`function`)return s(e,this.reset);if(s!=null)return s;let d=(e.stack??e.message).split(`
|
|
17
17
|
`).map(e=>e.trim()).filter(Boolean),f=(t?.componentStack??``).split(`
|
|
18
|
-
`).map(e=>e.trim()).filter(Boolean),p=l?`flex min-h-screen flex-col items-center justify-center bg-background p-8`:`flex min-h-[calc(100vh-4rem)] flex-col items-center justify-center p-8`;return n.default.createElement(
|
|
19
|
-
`)))),u&&n.default.createElement(`div`,{className:`rounded-lg border border-amber-200/60 bg-amber-50/40 dark:border-amber-900/40 dark:bg-amber-950/20`},n.default.createElement(`button`,{onClick:()=>this.setState(e=>({debugOpen:!e.debugOpen})),className:`flex w-full items-center gap-2 px-3 py-2.5 text-left text-xs font-medium text-amber-700 dark:text-amber-400 transition-colors hover:opacity-80`},n.default.createElement(
|
|
20
|
-
`))),n.default.createElement(`button`,{onClick:this.copy,className:`flex items-center gap-1.5 rounded border px-2.5 py-1 text-[11px] font-medium transition-colors hover:bg-accent`},n.default.createElement(Xh,null),a?t.copied:t.copyDebug))),n.default.createElement(`div`,{className:`flex flex-wrap items-center gap-2`},n.default.createElement(`button`,{onClick:this.reset,className:`rounded-md border bg-background px-4 py-1.5 text-sm font-medium shadow-sm transition-colors hover:bg-accent`},t.tryAgain),n.default.createElement(`a`,{href:`/`,className:`rounded-md bg-destructive/10 px-4 py-1.5 text-sm font-medium text-destructive transition-colors hover:bg-destructive/20`},t.goHome),c&&n.default.createElement(`button`,{onClick:this.sendReport,disabled:o===`sending`||o===`sent`,className:`ml-auto flex items-center gap-1.5 rounded-md border px-4 py-1.5 text-sm font-medium transition-colors hover:bg-accent disabled:opacity-50`},n.default.createElement(Zh,null),o===`idle`&&t.sendReport,o===`sending`&&t.sending,o===`sent`&&t.reportSent,o===`failed`&&t.reportFailed)))))}},rg=async()=>{window.google?.accounts?.id||(U([{src:`https://accounts.google.com/gsi/client`,async:!0,clean:!0}]),await new Promise(e=>setTimeout(e,0)))},ig=class{getConfigurationState(){return Vn(`GoogleAuthProvider`,Bn(Ou(`oAuth2`),[`clientId`],`google.oAuth2.`))}isConfigured(){return this.getConfigurationState().configured}getUser(){if(!this.isConfigured())return null;let e=Mn(`user`);if(!e)return null;let t=e.profile??{};return{...t,uid:e.uid,email:e.email??t.email,displayName:e.displayName??t.name,photoURL:e.photoURL??t.picture}}async signIn(e={}){let t=Ou(`oAuth2`);if(!this.isConfigured()||!t?.clientId)throw Error(`GoogleAuthProvider: missing google.oAuth2.clientId configuration.`);return await rg(),new Promise((n,r)=>{if(!window.google?.accounts?.id){r(Error(`GoogleAuthProvider: Google Identity Services script is not available.`));return}window.handleGoogleSignIn=async({credential:t})=>{try{let i=k(t);localStorage.setItem(`googleCredentialToken`,t);let a=Fu();if(!a){r(Error(`GoogleAuthProvider: Firebase auth is not initialized.`));return}let o=u.GoogleAuthProvider.credential(t),s=await(0,u.signInWithCredential)(a,o),c=(0,u.getAdditionalUserInfo)(s);Nn({...s.user,profile:c?.profile??i},`user`),e.scopes?.length&&await this.getAccessToken(e.scopes),n(this.getUser())}catch(e){r(e)}},window.google.accounts.id.initialize({client_id:t.clientId,callback:window.handleGoogleSignIn,auto_select:!1,cancel_on_tap_outside:!0}),window.google.accounts.id.prompt()})}async signOut(){let e=Mn(`user`);e?.profile?.sub&&window.google?.accounts?.id?.revoke(e.profile.sub),localStorage.removeItem(`googleCredentialToken`),Pn(`user`);let t=Fu();t&&await(0,u.signOut)(t)}onAuthChange(e){let t=Fu();return t?(0,u.onAuthStateChanged)(t,t=>{let n=this.getUser();if(!t){e(n);return}let r=Mn(`user`)?.profile??{};e({...r,uid:t.uid,email:t.email??r.email,displayName:t.displayName??r.name,photoURL:t.photoURL??r.picture})}):(e(this.getUser()),()=>{})}getAccessToken(e=[]){let t=Ou(`oAuth2`);if(!this.isConfigured()||!t?.clientId)return Promise.reject(`Google client ID not found`);let n=e.join(` `),r=`googleAccessToken::${n}`,i=`googleExpiresAt::${n}`;return new Promise((e,a)=>{let o=localStorage.getItem(r),s=localStorage.getItem(i),c=!s||new Date(s).getTime()<Date.now();if(o&&!c){e(o);return}let l=window.google?.accounts?.oauth2?.initTokenClient({client_id:t.clientId,scope:n,callback:t=>{t.access_token?(localStorage.setItem(r,t.access_token),localStorage.setItem(i,new Date(Date.now()+t.expires_in*1e3).toISOString()),e(t.access_token)):a(`Failed to obtain access token`)}});if(!l){a(`Google token client is not available`);return}l.requestAccessToken()})}isAuthenticated(){return!!this.getUser()}},ag=(0,n.createContext)(null),og=({registry:e,defaultKey:t,children:r})=>{let i=(0,n.useMemo)(()=>({registry:e,defaultKey:t}),[e,t]);return n.default.createElement(ag.Provider,{value:i},r)},sg=e=>{let t=(0,n.useContext)(ag);if(!t)return null;let r=e??t.defaultKey;return t.registry[r]??null},cg=(0,n.createContext)(null),lg=({registry:e,defaultKey:t,children:r})=>{let i=(0,n.useMemo)(()=>({registry:e,defaultKey:t}),[e,t]);return n.default.createElement(cg.Provider,{value:i},r)},ug=e=>{let t=(0,n.useContext)(cg);if(!t)throw Error(`useCredentialsProvider must be used inside <App providers={...} />.`);let r=e??t.defaultKey,i=t.registry[r];if(!i)throw Error(`CredentialsProvider '${r}' is not registered. Available: ${Object.keys(t.registry).join(`, `)}`);return i},dg={key:`@key`,value:`@value`},fg=()=>(0,b.getDatabase)(),pg=(e,t,n)=>{let r=`Error during ${e}: ${String(t)}`;if(n)throw Error(r);console.error(r)},mg=(e,t)=>{if(!e||!(t in e))return e;let{[t]:n,...r}=e;return Object.keys(r).length?r:void 0},hg=e=>{let t=typeof e==`object`&&e&&!Array.isArray(e)?e:Array.isArray(e)?{in:e}:{eq:e},n;return t.gt!==void 0&&(n={...n,gt:t.gt}),t.lt!==void 0&&(n={...n,lt:t.lt}),t.in!==void 0&&(n={...n,in:t.in}),t.nin!==void 0&&(n={...n,nin:t.nin}),{condition:t,clientCondition:n}},gg=(e,t)=>{switch(t){case dg.key:return(0,b.query)(e,(0,b.orderByKey)());case dg.value:return(0,b.query)(e,(0,b.orderByValue)());default:return(0,b.query)(e,(0,b.orderByChild)(t))}},_g=(e,t,n)=>{let[r]=Object.entries(t||{});if(!r)return{dbRef:e,clientWhere:n};let[i]=r,a=gg(e,i),o=n?.[i];if(o==null)return{dbRef:a,clientWhere:n};let{condition:s,clientCondition:c}=hg(o);switch(!0){case s.eq!==void 0:return{dbRef:(0,b.query)(a,(0,b.equalTo)(s.eq)),clientWhere:mg(n,i)};case s.gte!==void 0&&s.lte!==void 0:a=(0,b.query)(a,(0,b.startAt)(s.gte),(0,b.endAt)(s.lte));break;case s.gte!==void 0&&s.lt!==void 0:a=(0,b.query)(a,(0,b.startAt)(s.gte),(0,b.endAt)(s.lt));break;case s.gt!==void 0&&s.lte!==void 0:a=(0,b.query)(a,(0,b.startAt)(s.gt),(0,b.endAt)(s.lte));break;case s.gt!==void 0&&s.lt!==void 0:a=(0,b.query)(a,(0,b.startAt)(s.gt),(0,b.endAt)(s.lt));break;case s.gte!==void 0:a=(0,b.query)(a,(0,b.startAt)(s.gte));break;case s.gt!==void 0:a=(0,b.query)(a,(0,b.startAt)(s.gt));break;case s.lte!==void 0:a=(0,b.query)(a,(0,b.endAt)(s.lte));break;case s.lt!==void 0:a=(0,b.query)(a,(0,b.endAt)(s.lt))}return{dbRef:a,clientWhere:c?{...mg(n,i)||{},[i]:c}:mg(n,i)}},vg=(e,t)=>{if(!t)return e;let n=t.split(`.`),r=e;for(let e of n){if(r==null)return;r=r[e]}return r},yg=(e,t)=>e===t?0:e==null?-1:t==null?1:typeof e==`number`&&typeof t==`number`?e-t:typeof e==`boolean`&&typeof t==`boolean`?Number(e)-Number(t):globalThis.String(e).localeCompare(globalThis.String(t),void 0,{numeric:!0,sensitivity:`base`}),bg=(e,t)=>{let n=typeof t==`object`&&t&&!Array.isArray(t)?t:{eq:t};for(let[t,r]of Object.entries(n))switch(t){case`eq`:if(e!==r)return!1;break;case`gt`:if(!(e>r))return!1;break;case`gte`:if(!(e>=r))return!1;break;case`lt`:if(!(e<r))return!1;break;case`lte`:if(!(e<=r))return!1;break;case`in`:if(!Array.isArray(r)||!r.includes(e))return!1;break;case`nin`:if(Array.isArray(r)&&r.includes(e))return!1;break;default:return!1}return!0},xg=(e,t,n)=>{let[r,...i]=Object.entries(n||{}),a=Object.entries(t||{}),o=Object.entries(e);if(a.length&&(o=o.filter(([,e])=>a.every(([t,n])=>bg(vg(e,t),n)))),r){let e=[r,...i];o.sort((t,n)=>{for(let[r,i]of e){let e=yg(vg(t[1],r),vg(n[1],r));if(e)return i===`desc`?-e:e}return 0})}return Object.fromEntries(o)},Sg=async e=>{let t=await Fu()?.currentUser?.getIdToken().catch(()=>void 0),n=new URL(`${e}.json`,(0,b.ref)(fg()).toString());return n.searchParams.set(`shallow`,`true`),t&&n.searchParams.set(`auth`,t),n.toString()},Cg=class e{static listenerRegistered=!1;constructor(){!e.listenerRegistered&&typeof pa==`function`&&(e.listenerRegistered=!0,pa(e=>{e.firebase&&Lu(e.firebase)}))}getConfigurationState(){return Nu()}isConfigured(){return this.getConfigurationState().configured}readShallow=async(e,t=!1)=>{try{let t=await Sg(e),n=await fetch(t);if(!n.ok)throw Error(`${n.status} ${n.statusText}`);let r=await n.json();return r?Object.keys(r):[]}catch(n){return pg(`reading SHALLOW data in Firebase for ${e}`,n,t),[]}};read=async(e,{where:t,order:n,toArray:r=!1,exception:i=!1}={})=>{let{dbRef:a,clientWhere:o}=_g((0,b.ref)(fg(),e),n,t);try{let t=await(0,b.get)(a);if(t.exists()){`${e}`;let i=xg(t.val(),o,n);return r?Object.values(i):i}i&&pg(`Data not found in Firebase for path ${e}`,null,i)}catch(t){pg(`reading data in Firebase for ${e}`,t,i)}};update=async(e,t,n=!1)=>{try{await(0,b.update)((0,b.ref)(fg(),e),t),`${e}`}catch(t){pg(`updating data in Firebase for ${e}`,t,n)}};set=async(e,t,n=!1)=>{try{await(0,b.set)((0,b.ref)(fg(),e),t),`${e}`}catch(t){pg(`updating data in Firebase for ${e}`,t,n)}};setChunks=async(e,t,{chunkSize:n=1e3,purge:r=!1,onProgress:i}={})=>{let a=fg(),o=(0,b.ref)(a,e);try{r&&(await(0,b.remove)(o),i?.(0,0,`Purging existing data at ${e}`));let a=Object.entries(fe(t)),s=Math.ceil(a.length/n);for(let e=0;e<a.length;e+=n){let t=Object.fromEntries(a.slice(e,e+n));await(0,b.update)(o,t);let r=Math.floor(e/n)+1;i?.(r,s,`Saving chunk ${r}/${s}`)}}catch(t){pg(`setting data in chunks in Firebase for ${e}`,t,!1)}};remove=async(e,t=!1)=>{try{await(0,b.remove)((0,b.ref)(fg(),e)),`${e}`}catch(n){pg(`removing data from Firebase for ${e}`,n,t)}};count=async e=>(await this.readShallow(e)).length;subscribe=(e,t,{where:n,order:r,fieldMap:i,onLoad:a}={})=>{let o=Fu();if(!o||!e)return()=>void 0;let s=()=>{let{dbRef:o,clientWhere:s}=_g((0,b.ref)(fg(),e),r,n);return(0,b.onValue)(o,e=>{let n=e.val();if(!n){t([]);return}let o=a?a(xg(n,s,r)):xg(n,s,r),c=Object.entries(o);if(!i){t(c.map(([e,t],n)=>typeof t==`object`&&t?{_index:n,[yr]:e,...t}:{_index:n,[yr]:e,[dg.value]:t}));return}let l=Object.keys(i);t(c.map(([e,t],n)=>{let r=typeof t==`object`&&t?{[dg.key]:e,...t}:{[dg.key]:e,[dg.value]:t},a={};for(let n of l){let o=i[n];a[n]=o.includes(`{`)?E.parse(r,o):o===dg.key?e:o===dg.value?t:r[o]}return{[yr]:e,_index:n,...a}}))})},c,l=(0,u.onAuthStateChanged)(o,e=>{c?.(),c=void 0,e?c=s():t([])});return()=>{c?.(),l()}}};new Cg;var wg={google:`google.com`,github:`github.com`,apple:`apple.com`,microsoft:`microsoft.com`,yahoo:`yahoo.com`,twitter:`twitter.com`,facebook:`facebook.com`};function Tg(e){let t=wg[e]??e;return new u.OAuthProvider(t)}function Eg(e){return e?{uid:e.uid,email:e.email??void 0,displayName:e.displayName??void 0,photoURL:e.photoURL??void 0,isAnonymous:e.isAnonymous}:null}var Dg=class{options;appName;initPromise;constructor(e={}){this.options=e,this.appName=e.appName,this.initPromise=e.config?Lu(e.config,this.appName).then(()=>void 0):Promise.resolve()}getConfigurationState(){return Pu(this.appName)}isConfigured(){return this.getConfigurationState().configured}getUser(){return Eg(Fu(this.appName)?.currentUser??null)}isAuthenticated(){return!!this.getUser()}async signIn(e={}){await this.initPromise;let t=Fu(this.appName);if(!t)throw Error(`FirebaseAuthProvider: Firebase auth is not initialized`);let n=e.method??`password`;if(n===`anonymous`){let{user:e}=await(0,u.signInAnonymously)(t);return Eg(e)}if(n===`oauth`){let{provider:n}=e;if(!n)throw Error(`FirebaseAuthProvider.signIn: provider is required for oauth`);let{user:r}=await(0,u.signInWithPopup)(t,Tg(n));return Eg(r)}let{email:r,password:i}=e;if(!r||!i)throw Error(`FirebaseAuthProvider.signIn: email and password are required`);let{user:a}=await(0,u.signInWithEmailAndPassword)(t,r,i);return Eg(a)}async signOut(){await this.initPromise;let e=Fu(this.appName);if(!e)throw Error(`FirebaseAuthProvider: Firebase auth is not initialized`);await(0,u.signOut)(e)}onAuthChange(e){if(!this.options.config){let t=Fu(this.appName);return t?(0,u.onAuthStateChanged)(t,t=>e(Eg(t))):(e(null),()=>{})}let t=()=>{},n=!1;return this.initPromise.then(()=>{if(n)return;let r=Fu(this.appName);if(!r){e(null);return}t=(0,u.onAuthStateChanged)(r,t=>e(Eg(t)))}),()=>{n=!0,t()}}async getAccessToken(){await this.initPromise;let e=Fu(this.appName);if(!e?.currentUser)throw Error(`FirebaseAuthProvider: no active session`);return e.currentUser.getIdToken()}async getIdTokenClaims(e=!1){await this.initPromise;let t=Fu(this.appName);if(!t?.currentUser)return null;let{claims:n}=await t.currentUser.getIdTokenResult(e);return n}async requireAuth(){await this.initPromise;let e=Fu(this.appName);if(!e)throw Error(`FirebaseAuthProvider: Firebase auth is not initialized`);return e}async whenReady(){await this.initPromise,await Fu(this.appName)?.authStateReady()}async signUp({email:e,password:t,name:n,redirectTo:r}){let i=await this.requireAuth(),{user:a}=await(0,u.createUserWithEmailAndPassword)(i,e,t);return n&&await(0,u.updateProfile)(a,{displayName:n}),await(0,u.sendEmailVerification)(a,Og(r)),{user:Eg(a),needsEmailVerification:!a.emailVerified}}async sendPasswordReset(e,t={}){let n=await this.requireAuth();try{await(0,u.sendPasswordResetEmail)(n,e,Og(t.redirectTo))}catch(e){if(e.code!==`auth/user-not-found`)throw e}}async confirmPasswordReset(e,t){await(0,u.confirmPasswordReset)(await this.requireAuth(),e,t)}async sendEmailVerification(e={}){let t=await this.requireAuth();if(!t.currentUser)throw Error(`FirebaseAuthProvider.sendEmailVerification: no signed-in user`);await(0,u.sendEmailVerification)(t.currentUser,Og(e.redirectTo))}async verifyEmail(e){let t=await this.requireAuth();await(0,u.applyActionCode)(t,e),await t.currentUser?.reload()}};function Og(e){if(e)return{url:typeof window<`u`?new URL(e,window.location.origin).toString():e}}var kg=`https://oauth2.googleapis.com/token`;function Ag(e){let t=e.replace(/-----BEGIN PRIVATE KEY-----/,``).replace(/-----END PRIVATE KEY-----/,``).replace(/\s+/g,``),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r.buffer}function jg(e){return btoa(typeof e==`string`?e:String.fromCharCode(...new Uint8Array(e))).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}async function Mg(e,t){let n=`${jg(JSON.stringify({alg:`RS256`,typ:`JWT`}))}.${jg(JSON.stringify(e))}`,r=await crypto.subtle.importKey(`pkcs8`,Ag(t),{name:`RSASSA-PKCS1-v1_5`,hash:`SHA-256`},!1,[`sign`]);return`${n}.${jg(await crypto.subtle.sign(`RSASSA-PKCS1-v1_5`,r,new TextEncoder().encode(n)))}`}var Ng=class{config;cache=new Map;constructor(e){this.config=e}async getToken(e=`https://www.googleapis.com/auth/cloud-platform`){let t=this.cache.get(e);if(t&&t.expiresAt>Date.now()+6e4)return t.token;let n=Math.floor(Date.now()/1e3),r=await Mg({iss:this.config.client_email,scope:e,aud:kg,iat:n,exp:n+3600},this.config.private_key),i=await fetch(kg,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:new URLSearchParams({grant_type:`urn:ietf:params:oauth:grant-type:jwt-bearer`,assertion:r})});if(!i.ok){let e=await i.text();throw Error(`GoogleServiceAccountProvider: token request failed - ${e}`)}let a=await i.json();return this.cache.set(e,{token:a.access_token,expiresAt:Date.now()+(a.expires_in??3600)*1e3}),a.access_token}},Pg=`www.dropbox.com/oauth2`,Fg=class{config;constructor(e){this.config=e}getConfigurationState(){return Vn(`DropboxAuthProvider`,Bn(this.config,[`clientId`],`dropbox.`))}isConfigured(){return this.getConfigurationState().configured}getUser(){if(!this.isConfigured())return null;let e=$n(this.config.clientId);return e?.access_token?{uid:e.account_id??this.config.clientId,displayName:`Dropbox`,provider:`dropbox`,accountId:e.account_id}:null}async signIn(e={}){if(!this.isConfigured())throw Error(`DropboxAuthProvider: missing dropbox.clientId configuration.`);return Jn({authServer:Pg,clientID:this.config.clientId,scopes:e.scopes,refreshParamName:`token_access_type`}),this.getUser()}async signOut(){er(this.config.clientId)}onAuthChange(e){return e(this.getUser()),()=>{}}async getAccessToken(){if(!this.isConfigured())throw Error(`DropboxAuthProvider: missing dropbox.clientId configuration.`);let e=await tr(this.config.clientId);if(!e)throw Error(`DropboxAuthProvider: access token not found.`);return e}isAuthenticated(){return this.isConfigured()?!!$n(this.config.clientId)?.access_token:!1}},Ig=e=>({uid:e.login,displayName:e.name||e.login,...e.email?{email:e.email}:{},...e.avatarUrl?{photoURL:e.avatarUrl}:{},provider:`github`,login:e.login}),Lg=class{config;user=null;listeners=new Set;loading=null;constructor(e){this.config=e,this.isConfigured()&&typeof window<`u`&&this.refresh()}getConfigurationState(){return Vn(`GitHubAuthProvider`,Bn(this.config,[`sessionUrl`],`github.`))}isConfigured(){return this.getConfigurationState().configured}get base(){return(this.config.sessionUrl??``).replace(/\/+$/,``)}getUser(){return this.user}isAuthenticated(){return!!this.user}refresh(){return this.loading??=fetch(`${this.base}/me`,{credentials:`include`,headers:{Accept:`application/json`}}).then(async e=>e.ok?Ig(await e.json()):null).catch(()=>null).then(e=>(this.setUser(e),e)).finally(()=>{this.loading=null}),this.loading}async signIn(e={}){if(!this.isConfigured())throw Error(`GitHubAuthProvider: missing github.sessionUrl configuration.`);let t=new URLSearchParams({returnTo:`${window.location.pathname}${window.location.search}`});return e.scopes?.length&&t.set(`scope`,e.scopes.join(` `)),window.location.assign(`${this.base}/login?${t.toString()}`),this.user}async whenReady(){this.loading&&await this.loading}async signOut(){this.isConfigured()&&await fetch(`${this.base}/logout`,{method:`POST`,credentials:`include`}).catch(()=>void 0),this.setUser(null)}onAuthChange(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setUser(e){let t=(e?.uid??null)!==(this.user?.uid??null);this.user=e,t&&this.listeners.forEach(t=>t(e))}},Rg=e=>{let t=Ou(`oAuth2`);if(!t)return console.warn(`GoogleAuth: Missing oAuth2.clientId in configuration`),Promise.reject(`Google client ID not found`);let n=e.join(` `),r=`googleAccessToken::${n}`,i=`googleExpiresAt::${n}`;return new Promise((e,a)=>{let o=localStorage.getItem(r),s=localStorage.getItem(i),c=!s||new Date(s).getTime()<Date.now();o&&!c?e(o):window.google.accounts.oauth2.initTokenClient({client_id:t.clientId,scope:n,callback:t=>{t.access_token?(localStorage.setItem(r,t.access_token),localStorage.setItem(i,new Date(Date.now()+t.expires_in*1e3).toISOString()),e(t.access_token)):a(`Failed to obtain access token`)}}).requestAccessToken()})};async function zg({to:e,bcc:t,subject:n,message:r}){let i=await Rg([`https://www.googleapis.com/auth/gmail.send`]),a=[`To: ${e.join(`, `)}`];t&&t.length&&a.push(`Bcc: ${t.join(`, `)}`);let o=[...a,`Content-Type: text/html; charset=utf-8`,`MIME-Version: 1.0`,`Subject: ${n}`,``,r].join(`
|
|
21
|
-
`),s=new TextEncoder().encode(o),c=``;for(let e of s)c+=String.fromCharCode(e);let l=btoa(c).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``),u=await fetch(`https://gmail.googleapis.com/gmail/v1/users/me/messages/send`,{method:`POST`,headers:{Authorization:`Bearer ${i}`,"Content-Type":`application/json`},body:JSON.stringify({raw:l})});if(!u.ok)throw Error(`Failed to send email`);let d=await u.json();return console.log(`Email sent:`,d),d}var
|
|
18
|
+
`).map(e=>e.trim()).filter(Boolean),p=l?`flex min-h-screen flex-col items-center justify-center bg-background p-8`:`flex min-h-[calc(100vh-4rem)] flex-col items-center justify-center p-8`;return n.default.createElement(ng,null,t=>n.default.createElement(`div`,{className:p},n.default.createElement(`div`,{className:`flex w-full max-w-xl flex-col gap-4 rounded-xl border border-destructive/25 bg-destructive/5 p-6`},n.default.createElement(`div`,{className:`flex items-start gap-4`},n.default.createElement(`div`,{className:`flex h-11 w-11 shrink-0 items-center justify-center rounded-full bg-destructive/12 text-destructive`},n.default.createElement(Yh,{size:22})),n.default.createElement(`div`,null,n.default.createElement(`p`,{className:`text-sm font-semibold text-foreground`},t.title),n.default.createElement(`p`,{className:`mt-0.5 text-xs text-muted-foreground`},t.description))),n.default.createElement(`div`,{className:`rounded-lg border bg-background/60`},n.default.createElement(`button`,{onClick:()=>this.setState(e=>({detailsOpen:!e.detailsOpen})),className:`flex w-full items-center gap-2 px-3 py-2.5 text-left text-xs font-medium text-muted-foreground transition-colors hover:text-foreground`},n.default.createElement(Xh,{open:r}),t.technicalDetails,n.default.createElement(`span`,{className:`ml-auto truncate max-w-[280px] font-mono text-[11px] text-muted-foreground/70`},e.message)),r&&n.default.createElement(`div`,{className:`border-t`},n.default.createElement(`pre`,{className:`max-h-48 overflow-y-auto px-3 py-3 text-[11px] leading-relaxed text-muted-foreground font-mono whitespace-before-wrap break-all`},d.join(`
|
|
19
|
+
`)))),u&&n.default.createElement(`div`,{className:`rounded-lg border border-amber-200/60 bg-amber-50/40 dark:border-amber-900/40 dark:bg-amber-950/20`},n.default.createElement(`button`,{onClick:()=>this.setState(e=>({debugOpen:!e.debugOpen})),className:`flex w-full items-center gap-2 px-3 py-2.5 text-left text-xs font-medium text-amber-700 dark:text-amber-400 transition-colors hover:opacity-80`},n.default.createElement($h,null),n.default.createElement(Xh,{open:i}),t.debugInformation,n.default.createElement(`span`,{className:`ml-auto text-[10px] font-normal opacity-60`},`DEV`)),i&&n.default.createElement(`div`,{className:`border-t border-amber-200/60 dark:border-amber-900/40 px-3 py-3 space-y-3`},n.default.createElement(`div`,{className:`space-y-1`},n.default.createElement(`p`,{className:`text-[10px] font-semibold uppercase tracking-wide text-amber-700/70 dark:text-amber-400/70`},t.context),n.default.createElement(`dl`,{className:`grid grid-cols-[5rem_1fr] gap-x-2 gap-y-0.5 text-[11px] font-mono`},n.default.createElement(`dt`,{className:`text-muted-foreground`},`URL`),n.default.createElement(`dd`,{className:`truncate text-foreground`},typeof window<`u`?window.location.href:`-`),n.default.createElement(`dt`,{className:`text-muted-foreground`},t.time),n.default.createElement(`dd`,{className:`text-foreground`},new Date().toISOString()),n.default.createElement(`dt`,{className:`text-muted-foreground`},t.agent),n.default.createElement(`dd`,{className:`truncate text-foreground opacity-70`},typeof navigator<`u`?navigator.userAgent:`-`))),f.length>0&&n.default.createElement(`div`,{className:`space-y-1`},n.default.createElement(`p`,{className:`text-[10px] font-semibold uppercase tracking-wide text-amber-700/70 dark:text-amber-400/70`},t.componentTree),n.default.createElement(`pre`,{className:`max-h-36 overflow-y-auto text-[11px] font-mono leading-relaxed text-foreground/80 whitespace-before-wrap`},f.join(`
|
|
20
|
+
`))),n.default.createElement(`button`,{onClick:this.copy,className:`flex items-center gap-1.5 rounded border px-2.5 py-1 text-[11px] font-medium transition-colors hover:bg-accent`},n.default.createElement(Zh,null),a?t.copied:t.copyDebug))),n.default.createElement(`div`,{className:`flex flex-wrap items-center gap-2`},n.default.createElement(`button`,{onClick:this.reset,className:`rounded-md border bg-background px-4 py-1.5 text-sm font-medium shadow-sm transition-colors hover:bg-accent`},t.tryAgain),n.default.createElement(`a`,{href:`/`,className:`rounded-md bg-destructive/10 px-4 py-1.5 text-sm font-medium text-destructive transition-colors hover:bg-destructive/20`},t.goHome),c&&n.default.createElement(`button`,{onClick:this.sendReport,disabled:o===`sending`||o===`sent`,className:`ml-auto flex items-center gap-1.5 rounded-md border px-4 py-1.5 text-sm font-medium transition-colors hover:bg-accent disabled:opacity-50`},n.default.createElement(Qh,null),o===`idle`&&t.sendReport,o===`sending`&&t.sending,o===`sent`&&t.reportSent,o===`failed`&&t.reportFailed)))))}},ig=async()=>{window.google?.accounts?.id||(U([{src:`https://accounts.google.com/gsi/client`,async:!0,clean:!0}]),await new Promise(e=>setTimeout(e,0)))},ag=class{getConfigurationState(){return Vn(`GoogleAuthProvider`,Bn(ku(`oAuth2`),[`clientId`],`google.oAuth2.`))}isConfigured(){return this.getConfigurationState().configured}getUser(){if(!this.isConfigured())return null;let e=Mn(`user`);if(!e)return null;let t=e.profile??{};return{...t,uid:e.uid,email:e.email??t.email,displayName:e.displayName??t.name,photoURL:e.photoURL??t.picture}}async signIn(e={}){let t=ku(`oAuth2`);if(!this.isConfigured()||!t?.clientId)throw Error(`GoogleAuthProvider: missing google.oAuth2.clientId configuration.`);return await ig(),new Promise((n,r)=>{if(!window.google?.accounts?.id){r(Error(`GoogleAuthProvider: Google Identity Services script is not available.`));return}window.handleGoogleSignIn=async({credential:t})=>{try{let i=k(t);localStorage.setItem(`googleCredentialToken`,t);let a=Iu();if(!a){r(Error(`GoogleAuthProvider: Firebase auth is not initialized.`));return}let o=u.GoogleAuthProvider.credential(t),s=await(0,u.signInWithCredential)(a,o),c=(0,u.getAdditionalUserInfo)(s);Nn({...s.user,profile:c?.profile??i},`user`),e.scopes?.length&&await this.getAccessToken(e.scopes),n(this.getUser())}catch(e){r(e)}},window.google.accounts.id.initialize({client_id:t.clientId,callback:window.handleGoogleSignIn,auto_select:!1,cancel_on_tap_outside:!0}),window.google.accounts.id.prompt()})}async signOut(){let e=Mn(`user`);e?.profile?.sub&&window.google?.accounts?.id?.revoke(e.profile.sub),localStorage.removeItem(`googleCredentialToken`),Pn(`user`);let t=Iu();t&&await(0,u.signOut)(t)}onAuthChange(e){let t=Iu();return t?(0,u.onAuthStateChanged)(t,t=>{let n=this.getUser();if(!t){e(n);return}let r=Mn(`user`)?.profile??{};e({...r,uid:t.uid,email:t.email??r.email,displayName:t.displayName??r.name,photoURL:t.photoURL??r.picture})}):(e(this.getUser()),()=>{})}getAccessToken(e=[]){let t=ku(`oAuth2`);if(!this.isConfigured()||!t?.clientId)return Promise.reject(`Google client ID not found`);let n=e.join(` `),r=`googleAccessToken::${n}`,i=`googleExpiresAt::${n}`;return new Promise((e,a)=>{let o=localStorage.getItem(r),s=localStorage.getItem(i),c=!s||new Date(s).getTime()<Date.now();if(o&&!c){e(o);return}let l=window.google?.accounts?.oauth2?.initTokenClient({client_id:t.clientId,scope:n,callback:t=>{t.access_token?(localStorage.setItem(r,t.access_token),localStorage.setItem(i,new Date(Date.now()+t.expires_in*1e3).toISOString()),e(t.access_token)):a(`Failed to obtain access token`)}});if(!l){a(`Google token client is not available`);return}l.requestAccessToken()})}isAuthenticated(){return!!this.getUser()}},og=(0,n.createContext)(null),sg=({registry:e,defaultKey:t,children:r})=>{let i=(0,n.useMemo)(()=>({registry:e,defaultKey:t}),[e,t]);return n.default.createElement(og.Provider,{value:i},r)},cg=e=>{let t=(0,n.useContext)(og);if(!t)return null;let r=e??t.defaultKey;return t.registry[r]??null},lg=(0,n.createContext)(null),ug=({registry:e,defaultKey:t,children:r})=>{let i=(0,n.useMemo)(()=>({registry:e,defaultKey:t}),[e,t]);return n.default.createElement(lg.Provider,{value:i},r)},dg=e=>{let t=(0,n.useContext)(lg);if(!t)throw Error(`useCredentialsProvider must be used inside <App providers={...} />.`);let r=e??t.defaultKey,i=t.registry[r];if(!i)throw Error(`CredentialsProvider '${r}' is not registered. Available: ${Object.keys(t.registry).join(`, `)}`);return i},fg={key:`@key`,value:`@value`},pg=()=>(0,b.getDatabase)(),mg=(e,t,n)=>{let r=`Error during ${e}: ${String(t)}`;if(n)throw Error(r);console.error(r)},hg=(e,t)=>{if(!e||!(t in e))return e;let{[t]:n,...r}=e;return Object.keys(r).length?r:void 0},gg=e=>{let t=typeof e==`object`&&e&&!Array.isArray(e)?e:Array.isArray(e)?{in:e}:{eq:e},n;return t.gt!==void 0&&(n={...n,gt:t.gt}),t.lt!==void 0&&(n={...n,lt:t.lt}),t.in!==void 0&&(n={...n,in:t.in}),t.nin!==void 0&&(n={...n,nin:t.nin}),{condition:t,clientCondition:n}},_g=(e,t)=>{switch(t){case fg.key:return(0,b.query)(e,(0,b.orderByKey)());case fg.value:return(0,b.query)(e,(0,b.orderByValue)());default:return(0,b.query)(e,(0,b.orderByChild)(t))}},vg=(e,t,n)=>{let[r]=Object.entries(t||{});if(!r)return{dbRef:e,clientWhere:n};let[i]=r,a=_g(e,i),o=n?.[i];if(o==null)return{dbRef:a,clientWhere:n};let{condition:s,clientCondition:c}=gg(o);switch(!0){case s.eq!==void 0:return{dbRef:(0,b.query)(a,(0,b.equalTo)(s.eq)),clientWhere:hg(n,i)};case s.gte!==void 0&&s.lte!==void 0:a=(0,b.query)(a,(0,b.startAt)(s.gte),(0,b.endAt)(s.lte));break;case s.gte!==void 0&&s.lt!==void 0:a=(0,b.query)(a,(0,b.startAt)(s.gte),(0,b.endAt)(s.lt));break;case s.gt!==void 0&&s.lte!==void 0:a=(0,b.query)(a,(0,b.startAt)(s.gt),(0,b.endAt)(s.lte));break;case s.gt!==void 0&&s.lt!==void 0:a=(0,b.query)(a,(0,b.startAt)(s.gt),(0,b.endAt)(s.lt));break;case s.gte!==void 0:a=(0,b.query)(a,(0,b.startAt)(s.gte));break;case s.gt!==void 0:a=(0,b.query)(a,(0,b.startAt)(s.gt));break;case s.lte!==void 0:a=(0,b.query)(a,(0,b.endAt)(s.lte));break;case s.lt!==void 0:a=(0,b.query)(a,(0,b.endAt)(s.lt))}return{dbRef:a,clientWhere:c?{...hg(n,i)||{},[i]:c}:hg(n,i)}},yg=(e,t)=>{if(!t)return e;let n=t.split(`.`),r=e;for(let e of n){if(r==null)return;r=r[e]}return r},bg=(e,t)=>e===t?0:e==null?-1:t==null?1:typeof e==`number`&&typeof t==`number`?e-t:typeof e==`boolean`&&typeof t==`boolean`?Number(e)-Number(t):globalThis.String(e).localeCompare(globalThis.String(t),void 0,{numeric:!0,sensitivity:`base`}),xg=(e,t)=>{let n=typeof t==`object`&&t&&!Array.isArray(t)?t:{eq:t};for(let[t,r]of Object.entries(n))switch(t){case`eq`:if(e!==r)return!1;break;case`gt`:if(!(e>r))return!1;break;case`gte`:if(!(e>=r))return!1;break;case`lt`:if(!(e<r))return!1;break;case`lte`:if(!(e<=r))return!1;break;case`in`:if(!Array.isArray(r)||!r.includes(e))return!1;break;case`nin`:if(Array.isArray(r)&&r.includes(e))return!1;break;default:return!1}return!0},Sg=(e,t,n)=>{let[r,...i]=Object.entries(n||{}),a=Object.entries(t||{}),o=Object.entries(e);if(a.length&&(o=o.filter(([,e])=>a.every(([t,n])=>xg(yg(e,t),n)))),r){let e=[r,...i];o.sort((t,n)=>{for(let[r,i]of e){let e=bg(yg(t[1],r),yg(n[1],r));if(e)return i===`desc`?-e:e}return 0})}return Object.fromEntries(o)},Cg=async e=>{let t=await Iu()?.currentUser?.getIdToken().catch(()=>void 0),n=new URL(`${e}.json`,(0,b.ref)(pg()).toString());return n.searchParams.set(`shallow`,`true`),t&&n.searchParams.set(`auth`,t),n.toString()},wg=class e{static listenerRegistered=!1;constructor(){!e.listenerRegistered&&typeof pa==`function`&&(e.listenerRegistered=!0,pa(e=>{e.firebase&&Ru(e.firebase)}))}getConfigurationState(){return Pu()}isConfigured(){return this.getConfigurationState().configured}readShallow=async(e,t=!1)=>{try{let t=await Cg(e),n=await fetch(t);if(!n.ok)throw Error(`${n.status} ${n.statusText}`);let r=await n.json();return r?Object.keys(r):[]}catch(n){return mg(`reading SHALLOW data in Firebase for ${e}`,n,t),[]}};read=async(e,{where:t,order:n,toArray:r=!1,exception:i=!1}={})=>{let{dbRef:a,clientWhere:o}=vg((0,b.ref)(pg(),e),n,t);try{let t=await(0,b.get)(a);if(t.exists()){`${e}`;let i=Sg(t.val(),o,n);return r?Object.values(i):i}i&&mg(`Data not found in Firebase for path ${e}`,null,i)}catch(t){mg(`reading data in Firebase for ${e}`,t,i)}};update=async(e,t,n=!1)=>{try{await(0,b.update)((0,b.ref)(pg(),e),t),`${e}`}catch(t){mg(`updating data in Firebase for ${e}`,t,n)}};set=async(e,t,n=!1)=>{try{await(0,b.set)((0,b.ref)(pg(),e),t),`${e}`}catch(t){mg(`updating data in Firebase for ${e}`,t,n)}};setChunks=async(e,t,{chunkSize:n=1e3,purge:r=!1,onProgress:i}={})=>{let a=pg(),o=(0,b.ref)(a,e);try{r&&(await(0,b.remove)(o),i?.(0,0,`Purging existing data at ${e}`));let a=Object.entries(fe(t)),s=Math.ceil(a.length/n);for(let e=0;e<a.length;e+=n){let t=Object.fromEntries(a.slice(e,e+n));await(0,b.update)(o,t);let r=Math.floor(e/n)+1;i?.(r,s,`Saving chunk ${r}/${s}`)}}catch(t){mg(`setting data in chunks in Firebase for ${e}`,t,!1)}};remove=async(e,t=!1)=>{try{await(0,b.remove)((0,b.ref)(pg(),e)),`${e}`}catch(n){mg(`removing data from Firebase for ${e}`,n,t)}};count=async e=>(await this.readShallow(e)).length;subscribe=(e,t,{where:n,order:r,fieldMap:i,onLoad:a}={})=>{let o=Iu();if(!o||!e)return()=>void 0;let s=()=>{let{dbRef:o,clientWhere:s}=vg((0,b.ref)(pg(),e),r,n);return(0,b.onValue)(o,e=>{let n=e.val();if(!n){t([]);return}let o=a?a(Sg(n,s,r)):Sg(n,s,r),c=Object.entries(o);if(!i){t(c.map(([e,t],n)=>typeof t==`object`&&t?{_index:n,[yr]:e,...t}:{_index:n,[yr]:e,[fg.value]:t}));return}let l=Object.keys(i);t(c.map(([e,t],n)=>{let r=typeof t==`object`&&t?{[fg.key]:e,...t}:{[fg.key]:e,[fg.value]:t},a={};for(let n of l){let o=i[n];a[n]=o.includes(`{`)?E.parse(r,o):o===fg.key?e:o===fg.value?t:r[o]}return{[yr]:e,_index:n,...a}}))})},c,l=(0,u.onAuthStateChanged)(o,e=>{c?.(),c=void 0,e?c=s():t([])});return()=>{c?.(),l()}}};new wg;var Tg={google:`google.com`,github:`github.com`,apple:`apple.com`,microsoft:`microsoft.com`,yahoo:`yahoo.com`,twitter:`twitter.com`,facebook:`facebook.com`};function Eg(e){let t=Tg[e]??e;return new u.OAuthProvider(t)}function Dg(e){return e?{uid:e.uid,email:e.email??void 0,displayName:e.displayName??void 0,photoURL:e.photoURL??void 0,isAnonymous:e.isAnonymous}:null}var Og=class{options;appName;initPromise;constructor(e={}){this.options=e,this.appName=e.appName,this.initPromise=e.config?Ru(e.config,this.appName).then(()=>void 0):Promise.resolve()}getConfigurationState(){return Fu(this.appName)}isConfigured(){return this.getConfigurationState().configured}getUser(){return Dg(Iu(this.appName)?.currentUser??null)}isAuthenticated(){return!!this.getUser()}async signIn(e={}){await this.initPromise;let t=Iu(this.appName);if(!t)throw Error(`FirebaseAuthProvider: Firebase auth is not initialized`);let n=e.method??`password`;if(n===`anonymous`){let{user:e}=await(0,u.signInAnonymously)(t);return Dg(e)}if(n===`oauth`){let{provider:n}=e;if(!n)throw Error(`FirebaseAuthProvider.signIn: provider is required for oauth`);let{user:r}=await(0,u.signInWithPopup)(t,Eg(n));return Dg(r)}let{email:r,password:i}=e;if(!r||!i)throw Error(`FirebaseAuthProvider.signIn: email and password are required`);let{user:a}=await(0,u.signInWithEmailAndPassword)(t,r,i);return Dg(a)}async signOut(){await this.initPromise;let e=Iu(this.appName);if(!e)throw Error(`FirebaseAuthProvider: Firebase auth is not initialized`);await(0,u.signOut)(e)}onAuthChange(e){if(!this.options.config){let t=Iu(this.appName);return t?(0,u.onAuthStateChanged)(t,t=>e(Dg(t))):(e(null),()=>{})}let t=()=>{},n=!1;return this.initPromise.then(()=>{if(n)return;let r=Iu(this.appName);if(!r){e(null);return}t=(0,u.onAuthStateChanged)(r,t=>e(Dg(t)))}),()=>{n=!0,t()}}async getAccessToken(){await this.initPromise;let e=Iu(this.appName);if(!e?.currentUser)throw Error(`FirebaseAuthProvider: no active session`);return e.currentUser.getIdToken()}async getIdTokenClaims(e=!1){await this.initPromise;let t=Iu(this.appName);if(!t?.currentUser)return null;let{claims:n}=await t.currentUser.getIdTokenResult(e);return n}async requireAuth(){await this.initPromise;let e=Iu(this.appName);if(!e)throw Error(`FirebaseAuthProvider: Firebase auth is not initialized`);return e}async whenReady(){await this.initPromise,await Iu(this.appName)?.authStateReady()}async signUp({email:e,password:t,name:n,redirectTo:r}){let i=await this.requireAuth(),{user:a}=await(0,u.createUserWithEmailAndPassword)(i,e,t);return n&&await(0,u.updateProfile)(a,{displayName:n}),await(0,u.sendEmailVerification)(a,kg(r)),{user:Dg(a),needsEmailVerification:!a.emailVerified}}async sendPasswordReset(e,t={}){let n=await this.requireAuth();try{await(0,u.sendPasswordResetEmail)(n,e,kg(t.redirectTo))}catch(e){if(e.code!==`auth/user-not-found`)throw e}}async confirmPasswordReset(e,t){await(0,u.confirmPasswordReset)(await this.requireAuth(),e,t)}async sendEmailVerification(e={}){let t=await this.requireAuth();if(!t.currentUser)throw Error(`FirebaseAuthProvider.sendEmailVerification: no signed-in user`);await(0,u.sendEmailVerification)(t.currentUser,kg(e.redirectTo))}async verifyEmail(e){let t=await this.requireAuth();await(0,u.applyActionCode)(t,e),await t.currentUser?.reload()}};function kg(e){if(e)return{url:typeof window<`u`?new URL(e,window.location.origin).toString():e}}var Ag=`https://oauth2.googleapis.com/token`;function jg(e){let t=e.replace(/-----BEGIN PRIVATE KEY-----/,``).replace(/-----END PRIVATE KEY-----/,``).replace(/\s+/g,``),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r.buffer}function Mg(e){return btoa(typeof e==`string`?e:String.fromCharCode(...new Uint8Array(e))).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}async function Ng(e,t){let n=`${Mg(JSON.stringify({alg:`RS256`,typ:`JWT`}))}.${Mg(JSON.stringify(e))}`,r=await crypto.subtle.importKey(`pkcs8`,jg(t),{name:`RSASSA-PKCS1-v1_5`,hash:`SHA-256`},!1,[`sign`]);return`${n}.${Mg(await crypto.subtle.sign(`RSASSA-PKCS1-v1_5`,r,new TextEncoder().encode(n)))}`}var Pg=class{config;cache=new Map;constructor(e){this.config=e}async getToken(e=`https://www.googleapis.com/auth/cloud-platform`){let t=this.cache.get(e);if(t&&t.expiresAt>Date.now()+6e4)return t.token;let n=Math.floor(Date.now()/1e3),r=await Ng({iss:this.config.client_email,scope:e,aud:Ag,iat:n,exp:n+3600},this.config.private_key),i=await fetch(Ag,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:new URLSearchParams({grant_type:`urn:ietf:params:oauth:grant-type:jwt-bearer`,assertion:r})});if(!i.ok){let e=await i.text();throw Error(`GoogleServiceAccountProvider: token request failed - ${e}`)}let a=await i.json();return this.cache.set(e,{token:a.access_token,expiresAt:Date.now()+(a.expires_in??3600)*1e3}),a.access_token}},Fg=`www.dropbox.com/oauth2`,Ig=class{config;constructor(e){this.config=e}getConfigurationState(){return Vn(`DropboxAuthProvider`,Bn(this.config,[`clientId`],`dropbox.`))}isConfigured(){return this.getConfigurationState().configured}getUser(){if(!this.isConfigured())return null;let e=$n(this.config.clientId);return e?.access_token?{uid:e.account_id??this.config.clientId,displayName:`Dropbox`,provider:`dropbox`,accountId:e.account_id}:null}async signIn(e={}){if(!this.isConfigured())throw Error(`DropboxAuthProvider: missing dropbox.clientId configuration.`);return Jn({authServer:Fg,clientID:this.config.clientId,scopes:e.scopes,refreshParamName:`token_access_type`}),this.getUser()}async signOut(){er(this.config.clientId)}onAuthChange(e){return e(this.getUser()),()=>{}}async getAccessToken(){if(!this.isConfigured())throw Error(`DropboxAuthProvider: missing dropbox.clientId configuration.`);let e=await tr(this.config.clientId);if(!e)throw Error(`DropboxAuthProvider: access token not found.`);return e}isAuthenticated(){return this.isConfigured()?!!$n(this.config.clientId)?.access_token:!1}},Lg=e=>({uid:e.login,displayName:e.name||e.login,...e.email?{email:e.email}:{},...e.avatarUrl?{photoURL:e.avatarUrl}:{},provider:`github`,login:e.login}),Rg=class{config;user=null;listeners=new Set;loading=null;constructor(e){this.config=e,this.isConfigured()&&typeof window<`u`&&this.refresh()}getConfigurationState(){return Vn(`GitHubAuthProvider`,Bn(this.config,[`sessionUrl`],`github.`))}isConfigured(){return this.getConfigurationState().configured}get base(){return(this.config.sessionUrl??``).replace(/\/+$/,``)}getUser(){return this.user}isAuthenticated(){return!!this.user}refresh(){return this.loading??=fetch(`${this.base}/me`,{credentials:`include`,headers:{Accept:`application/json`}}).then(async e=>e.ok?Lg(await e.json()):null).catch(()=>null).then(e=>(this.setUser(e),e)).finally(()=>{this.loading=null}),this.loading}async signIn(e={}){if(!this.isConfigured())throw Error(`GitHubAuthProvider: missing github.sessionUrl configuration.`);let t=new URLSearchParams({returnTo:`${window.location.pathname}${window.location.search}`});return e.scopes?.length&&t.set(`scope`,e.scopes.join(` `)),window.location.assign(`${this.base}/login?${t.toString()}`),this.user}async whenReady(){this.loading&&await this.loading}async signOut(){this.isConfigured()&&await fetch(`${this.base}/logout`,{method:`POST`,credentials:`include`}).catch(()=>void 0),this.setUser(null)}onAuthChange(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setUser(e){let t=(e?.uid??null)!==(this.user?.uid??null);this.user=e,t&&this.listeners.forEach(t=>t(e))}},zg=e=>{let t=ku(`oAuth2`);if(!t)return console.warn(`GoogleAuth: Missing oAuth2.clientId in configuration`),Promise.reject(`Google client ID not found`);let n=e.join(` `),r=`googleAccessToken::${n}`,i=`googleExpiresAt::${n}`;return new Promise((e,a)=>{let o=localStorage.getItem(r),s=localStorage.getItem(i),c=!s||new Date(s).getTime()<Date.now();o&&!c?e(o):window.google.accounts.oauth2.initTokenClient({client_id:t.clientId,scope:n,callback:t=>{t.access_token?(localStorage.setItem(r,t.access_token),localStorage.setItem(i,new Date(Date.now()+t.expires_in*1e3).toISOString()),e(t.access_token)):a(`Failed to obtain access token`)}}).requestAccessToken()})};async function Bg({to:e,bcc:t,subject:n,message:r}){let i=await zg([`https://www.googleapis.com/auth/gmail.send`]),a=[`To: ${e.join(`, `)}`];t&&t.length&&a.push(`Bcc: ${t.join(`, `)}`);let o=[...a,`Content-Type: text/html; charset=utf-8`,`MIME-Version: 1.0`,`Subject: ${n}`,``,r].join(`
|
|
21
|
+
`),s=new TextEncoder().encode(o),c=``;for(let e of s)c+=String.fromCharCode(e);let l=btoa(c).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``),u=await fetch(`https://gmail.googleapis.com/gmail/v1/users/me/messages/send`,{method:`POST`,headers:{Authorization:`Bearer ${i}`,"Content-Type":`application/json`},body:JSON.stringify({raw:l})});if(!u.ok)throw Error(`Failed to send email`);let d=await u.json();return console.log(`Email sent:`,d),d}var Vg=class{getConfigurationState(){return Vn(`GmailEmailProvider`,Bn(ku(`oAuth2`),[`clientId`],`google.oAuth2.`))}isConfigured(){return this.getConfigurationState().configured}async send(e){if(!this.isConfigured())throw Error(this.getConfigurationState().reason||`GmailEmailProvider is not configured.`);await Bg({to:Array.isArray(e.to)?e.to:[e.to],bcc:e.bcc?Array.isArray(e.bcc)?e.bcc:[e.bcc]:void 0,subject:e.subject,message:e.message})}};function Hg(e){return e?{uid:e.id,email:e.email??void 0,displayName:e.user_metadata?.full_name??e.user_metadata?.name??e.email??void 0,photoURL:e.user_metadata?.avatar_url??void 0,raw:e}:null}var Ug=class{config;get client(){return Zu(this.config.url,this.config.anonKey)}constructor(e){this.config=e}getConfigurationState(){return ed(this.config)}isConfigured(){return this.getConfigurationState().configured}getUser(){return Hg((this.client.auth?._session??null)?.user??null)}isAuthenticated(){return!!this.getUser()}async signIn(e={}){let t=e.method??`password`;if(t===`anonymous`){let{data:e,error:t}=await this.client.auth.signInAnonymously();if(t)throw t;return Hg(e.user)}if(t===`magic_link`){let t=e.email;if(!t)throw Error(`SupabaseAuthProvider.signIn: email is required for magic_link`);let{error:n}=await this.client.auth.signInWithOtp({email:t,options:{emailRedirectTo:e.redirectTo}});if(n)throw n;return null}if(t===`oauth`){let t=e.provider;if(!t)throw Error(`SupabaseAuthProvider.signIn: provider is required for oauth`);let{error:n}=await this.client.auth.signInWithOAuth({provider:t,options:{redirectTo:e.redirectTo}});if(n)throw n;return null}let{email:n,password:r}=e;if(!n||!r)throw Error(`SupabaseAuthProvider.signIn: email and password are required`);let{data:i,error:a}=await this.client.auth.signInWithPassword({email:n,password:r});if(a)throw a;return Hg(i.user)}async signOut(){let{error:e}=await this.client.auth.signOut();if(e)throw e}onAuthChange(e){this.client.auth.getSession().then(({data:t})=>{e(Hg(t.session?.user??null))});let{data:{subscription:t}}=this.client.auth.onAuthStateChange((t,n)=>{e(Hg(n?.user??null))});return()=>t.unsubscribe()}async getAccessToken(){let{data:e,error:t}=await this.client.auth.getSession();if(t)throw t;let n=e.session?.access_token;if(!n)throw Error(`SupabaseAuthProvider: no active session`);return n}async whenReady(){await this.client.auth.getSession()}async signUp({email:e,password:t,name:n,redirectTo:r}){let{data:i,error:a}=await this.client.auth.signUp({email:e,password:t,options:{...n?{data:{full_name:n}}:{},...r?{emailRedirectTo:Wg(r)}:{}}});if(a)throw a;return{user:Hg(i.user),needsEmailVerification:!i.session}}async sendPasswordReset(e,t={}){let{error:n}=await this.client.auth.resetPasswordForEmail(e,t.redirectTo?{redirectTo:Wg(t.redirectTo)}:void 0);if(n)throw n}async confirmPasswordReset(e,t){if(e){let{error:t}=await this.client.auth.verifyOtp({token_hash:e,type:`recovery`});if(t)throw t}let{error:n}=await this.client.auth.updateUser({password:t});if(n)throw n}async sendEmailVerification(e={}){let t=e.email??this.getUser()?.email;if(!t)throw Error(`SupabaseAuthProvider.sendEmailVerification: email is required`);let{error:n}=await this.client.auth.resend({type:`signup`,email:t,...e.redirectTo?{options:{emailRedirectTo:Wg(e.redirectTo)}}:{}});if(n)throw n}async verifyEmail(e){let{error:t}=await this.client.auth.verifyOtp({token_hash:e,type:`email`});if(t)throw t}async requestEmailCode(e,t={}){let{error:n}=await this.client.auth.signInWithOtp({email:e,options:{shouldCreateUser:t.createUser??!1}});if(n)throw n}async verifyEmailCode(e,t){let{data:n,error:r}=await this.client.auth.verifyOtp({email:e,token:t,type:`email`});if(r)throw r;return Hg(n.user)}};function Wg(e){return typeof window<`u`?new URL(e,window.location.origin).toString():e}var Gg=`llmnative_mock_auth`,Kg=class{user=null;listeners=new Set;accounts;open;code;storage;latency;constructor(e={}){this.open=!e.accounts,this.accounts=new Map((e.accounts??[]).map(e=>[e.email.toLowerCase(),e])),this.code=e.code??`123456`,this.latency=e.latency??400,this.storage=e.storage===void 0?typeof window<`u`?window.sessionStorage:null:e.storage,this.user=this.restore()}getConfigurationState(){return{configured:!0,missingKeys:[]}}isConfigured(){return!0}getUser(){return this.user}isAuthenticated(){return!!this.user}async whenReady(){}onAuthChange(e){return this.listeners.add(e),e(this.user),()=>{this.listeners.delete(e)}}async signIn(e={}){if(await this.pause(),(e.method??`password`)===`oauth`){let t=String(e.provider??`oauth`);return this.setUser({uid:`mock-${t}`,email:`demo@${t}.example`,displayName:`Demo User`,provider:t})}let t=String(e.email??``).trim().toLowerCase(),n=String(e.password??``);if(!t||!n)throw new yl(`credentials`);let r=this.accounts.get(t);if(!this.open&&(!r||r.password!==n))throw new yl(`credentials`);return this.setUser(this.profile(r??{email:t,password:n}))}async signOut(){this.setUser(null)}async signUp({email:e,password:t,name:n}){await this.pause();let r=e.trim().toLowerCase();if(this.accounts.has(r))throw new yl(`emailInUse`);if(t.length<8)throw new yl(`weakPassword`);return this.accounts.set(r,{email:r,password:t,displayName:n,emailVerified:!1}),{user:null,needsEmailVerification:!0}}async sendPasswordReset(){await this.pause()}async confirmPasswordReset(e,t){if(await this.pause(),e!==this.code)throw new yl(`expiredLink`);if(t.length<8)throw new yl(`weakPassword`)}async sendEmailVerification(){await this.pause()}async verifyEmail(e){if(await this.pause(),e!==this.code)throw new yl(`expiredLink`);this.accounts.forEach(e=>{e.emailVerified=!0})}async requestEmailCode(e,t={}){await this.pause()}async verifyEmailCode(e,t){if(await this.pause(),t!==this.code)throw new yl(`invalidCode`);let n=e.trim().toLowerCase(),r=this.accounts.get(n);if(!this.open&&!r)throw new yl(`invalidCode`);return this.setUser(this.profile(r??{email:n,password:``}))}profile(e){return{uid:`mock-${e.email}`,email:e.email,displayName:e.displayName??e.email.split(`@`)[0]}}setUser(e){this.user=e;try{e?this.storage?.setItem(Gg,JSON.stringify(e)):this.storage?.removeItem(Gg)}catch{}return this.listeners.forEach(t=>t(e)),e}restore(){try{let e=this.storage?.getItem(Gg);return e?JSON.parse(e):null}catch{return null}}pause(){return this.latency>0?new Promise(e=>setTimeout(e,this.latency)):Promise.resolve()}},qg=`https://api.anthropic.com/v1/models`,Jg=`https://api.anthropic.com/v1/messages`;function Yg(e){return{name:e.name,description:e.description,input_schema:e.inputSchema}}function Xg(e){if(e.role===`user`)return{role:`user`,content:e.content};if(e.role===`assistant`){let t=[];e.content&&t.push({type:`text`,text:e.content});for(let n of e.toolCalls??[])t.push({type:`tool_use`,id:n.id,name:n.name,input:n.input});return{role:`assistant`,content:t}}return{role:`user`,content:e.results.map(e=>({type:`tool_result`,tool_use_id:e.toolCallId,content:typeof e.output==`string`?e.output:JSON.stringify(e.output),...e.isError?{is_error:!0}:{}}))}}function Zg(e){let t=e?.content;if(!Array.isArray(t))return null;let n=t.filter(e=>e?.type===`text`).map(e=>String(e.text??``)),r=t.filter(e=>e?.type===`tool_use`);if(r.length>0)return{type:`tool_calls`,toolCalls:r.map(e=>({id:String(e.id),name:String(e.name),input:e.input??{}})),text:n.length?n.join(`
|
|
22
22
|
`):void 0};let i=n.join(`
|
|
23
|
-
`);return i?{type:`text`,text:i}:null}var
|
|
23
|
+
`);return i?{type:`text`,text:i}:null}var Qg={id:`anthropic`,label:`Anthropic`,description:`Claude models via the Anthropic API.`,configKey:`anthropicApiKey`,defaultModel:`claude-sonnet-4-0`,fallbackModels:[`claude-sonnet-4-0`,`claude-opus-4-1`,`claude-3-7-sonnet-latest`],dashboardUrl:`https://console.anthropic.com/settings/keys`,credentialsHint:`Anthropic Console → Settings → API Keys → Create Key.`,credentialFields:[{key:`apiKey`,label:`API Key`,type:`password`}],capabilities:{supportsTemperature:!0,supportsVision:!0,supportsDocuments:!0},discoverModels:async e=>{let t=await Ce(qg,{headers:{"x-api-key":e,"anthropic-version":`2023-06-01`}},Ca);return Array.isArray(t?.data)?t.data.map(e=>e.id).filter(Boolean):[]},complete:async(t,n)=>{let r=n.attachments??[],i=r.length>0?[...r.map(e=>e.mimeType.startsWith(`image/`)?{type:`image`,source:{type:`base64`,media_type:e.mimeType,data:e.base64}}:Ka.isTextAttachment(e.mimeType)?{type:`text`,text:`[File: ${e.name}]\n${Ka.decodeBase64Text(e.base64)}`}:{type:`document`,source:{type:`base64`,media_type:e.mimeType,data:e.base64}}),{type:`text`,text:n.prompt}]:n.prompt;return Zg(await Ce(Jg,{method:`POST`,headers:{"x-api-key":t,"anthropic-version":`2023-06-01`,...n.logId?{[e.t]:n.logId}:{}},body:{model:n.model,max_tokens:4096,...n.role?{system:ta.parseRole(n.role,n)}:{},messages:[...(n.history??[]).map(Xg),...n.prompt?[{role:`user`,content:i}]:[]],...n.tools?.length?{tools:n.tools.map(Yg)}:{},...typeof n.temperature==`number`?{temperature:n.temperature}:{},...Aa(n.model,n.reasoning)},signal:n.signal},Ca))}},$g=e=>typeof e.id==`string`?e.id:void 0,e_=e=>e.replace(/\/+$/,``);function t_(e){return{type:`function`,function:{name:e.name,description:e.description,parameters:e.inputSchema}}}function n_(e){if(typeof e!=`string`)return{};try{return JSON.parse(e)}catch{return{}}}function r_(e){return e.role===`user`?[{role:`user`,content:e.content}]:e.role===`assistant`?[{role:`assistant`,content:e.content??null,...e.toolCalls?.length?{tool_calls:e.toolCalls.map(e=>({id:e.id,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.input)}}))}:{}}]:e.results.map(e=>({role:`tool`,tool_call_id:e.toolCallId,content:typeof e.output==`string`?e.output:JSON.stringify(e.output)}))}function i_(e){let t=e?.choices?.[0]?.message;if(!t)return null;let n=Array.isArray(t.tool_calls)?t.tool_calls:[];if(n.length>0){let e=typeof t.content==`string`?t.content:void 0;return{type:`tool_calls`,toolCalls:n.map(e=>{let t=e.function??{};return{id:String(e.id),name:String(t.name??``),input:n_(t.arguments)}}),text:e||void 0}}let r=Fa(t.content);return r?{type:`text`,text:r}:null}var a_=({id:t,label:n,description:r,configKey:i,requiredConfigKeys:a,defaultModel:o,fallbackModels:s,baseUrl:c,modelsUrl:l,chatCompletionsUrl:u,dashboardUrl:d,credentialsHint:f,validateApiKey:p,mapModelEntry:m=$g,reasoningStyle:h})=>{let g=e_(c),_=l||`${g}/models`,v=u||`${g}/chat/completions`;return{id:t,label:n,description:r,configKey:i,requiredConfigKeys:a,defaultModel:o,fallbackModels:s,dashboardUrl:d,credentialsHint:f,credentialFields:t===`openai-compatible`?[{key:`apiKey`,label:`API Key`,type:`password`},{key:`baseUrl`,label:`Base URL`,type:`text`,placeholder:`https://api.example.com/v1`}]:[{key:`apiKey`,label:`API Key`,type:`password`}],capabilities:{supportsTemperature:!0,supportsVision:!0,supportsDocuments:!0},validateApiKey:p??(async e=>{try{let t=await Ce(_,{headers:{Authorization:`Bearer ${e}`}},Ca);return t===null?{valid:!1,error:`Nessuna risposta dal server (CORS o proxy non attivo)`}:typeof t?.message==`string`&&!Array.isArray(t?.data)?{valid:!1,error:t.message}:{valid:!0}}catch(e){return{valid:!1,error:Na(e)}}}),discoverModels:async e=>{let t=await Ce(_,{headers:{Authorization:`Bearer ${e}`}},Ca);return Array.isArray(t?.data)?t.data.map(e=>m(e??{})).filter(e=>!!e):[]},complete:async(t,r)=>{let i=r.attachments??[],a=i.length>0?i.map(e=>e.mimeType.startsWith(`image/`)?{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.base64}`}}:Ka.isTextAttachment(e.mimeType)?{type:`text`,text:`[File: ${e.name}]\n${Ka.decodeBase64Text(e.base64)}`}:{type:`text`,text:`[File attached: ${e.name} (${e.mimeType})]`}).concat({type:`text`,text:r.prompt}):r.prompt,o=await Ce(v,{method:`POST`,headers:{Authorization:`Bearer ${t}`,...r.logId?{[e.t]:r.logId}:{}},body:{model:r.model,messages:[...r.role?[{role:`system`,content:ta.parseRole(r.role,r)}]:[],...(r.history??[]).flatMap(r_),...r.prompt?[{role:`user`,content:a}]:[]],...r.tools?.length?{tools:r.tools.map(t_)}:{},...typeof r.temperature==`number`?{temperature:r.temperature}:{},...Ma(r.model,r.reasoning,h)},signal:r.signal},Ca);if(!o)throw Pa(n);return i_(o)}}},o_=`https://api.cloudflare.com/client/v4`,s_=100,c_=5,l_=/-guard-/,u_=`Cloudflare Workers AI`,d_=`Open-weight models (Llama, GPT-OSS, Qwen, Gemma, GLM…) with a free daily allowance.`,f_=`https://dash.cloudflare.com/?to=/:account/ai/workers-ai`,p_=`Cloudflare dashboard → AI → Workers AI → REST API: create a Workers AI API token and copy the Account ID.`,m_=[{key:`apiKey`,label:`API Token`,type:`password`},{key:`accountId`,label:`Account ID`,type:`text`,placeholder:`32-character account id`}],h_=(e,t)=>(e.properties??[]).some(e=>e.property_id===t&&String(e.value)===`true`),g_=e=>{let t=(e.properties??[]).find(e=>e.property_id===`price`)?.value;if(!Array.isArray(t))return;let n=e=>{let n=t.find(t=>typeof t?.unit==`string`&&t.unit.toLowerCase().includes(e));return n&&(n.currency===void 0||n.currency===`USD`)?Number(n.price):NaN},r=n(`input`),i=n(`output`);if(Number.isFinite(r)&&Number.isFinite(i))return{input:r,output:i,currency:`USD`,source:`provider`}},__=e=>e?.map(e=>e.role===`assistant`&&!e.content?{...e,content:``}:e),v_=({accountId:e,defaultModel:t=`@cf/meta/llama-3.3-70b-instruct-fp8-fast`,includePaidModels:n=!1})=>{let r=`${o_}/accounts/${encodeURIComponent(e.trim())}`,i=`${r}/ai/models/search`,a=(e,t,n)=>{let r=new URLSearchParams({task:`Text Generation`,hide_experimental:`true`,page:String(t),per_page:String(n)});return Ce(`${i}?${r}`,{headers:{Authorization:`Bearer ${e}`}},Ca)},o=a_({id:`cloudflare`,label:u_,description:d_,configKey:`cloudflare`,requiredConfigKeys:[`ai.cloudflare.apiToken`,`ai.cloudflare.accountId`],defaultModel:t,fallbackModels:[t,`@cf/openai/gpt-oss-120b`,`@cf/qwen/qwen3-30b-a3b-fp8`,`@cf/meta/llama-4-scout-17b-16e-instruct`].filter((e,t,n)=>n.indexOf(e)===t),baseUrl:`${r}/ai/v1`,dashboardUrl:f_,credentialsHint:p_,validateApiKey:async e=>{try{let t=await a(e,1,1);return t===null?{valid:!1,error:`Nessuna risposta dal server (CORS o proxy non attivo)`}:t.success?{valid:!0}:{valid:!1,error:Na(t)}}catch(e){return{valid:!1,error:Na(e)}}}});return{...o,credentialFields:m_,discoverModels:async e=>{let t=[];for(let r=1;r<=c_;r++){let i=await a(e,r,s_),o=Array.isArray(i?.result)?i.result:[];if(o.filter(e=>!l_.test(e.name??``)).filter(e=>n||!h_(e,`require_workers_paid`)).forEach(e=>{e.name&&t.push({model:e.name,pricing:g_(e)})}),o.length<s_)break}return t},complete:(e,t)=>o.complete(e,{...t,history:__(t.history)})}},y_={id:`cloudflare`,label:u_,description:d_,credentialFields:m_,credentialsUrl:f_,credentialsHint:p_},b_=a_({id:`deepseek`,label:`DeepSeek`,description:`Cost-efficient reasoning and chat models.`,configKey:`deepSeekApiKey`,defaultModel:`deepseek-chat`,fallbackModels:[`deepseek-chat`,`deepseek-reasoner`],baseUrl:`https://api.deepseek.com`,dashboardUrl:`https://platform.deepseek.com/api_keys`,credentialsHint:`DeepSeek platform → API Keys → Create new API key.`}),x_=`https://generativelanguage.googleapis.com/v1beta/models`,S_=`https://generativelanguage.googleapis.com/v1beta/models`;function C_(e){return[{function_declarations:e.map(e=>({name:e.name,description:e.description,parameters:e.inputSchema}))}]}function w_(e){if(e.role===`user`)return{role:`user`,parts:[{text:e.content}]};if(e.role===`assistant`){let t=[];e.content&&t.push({text:e.content});for(let n of e.toolCalls??[])t.push({functionCall:{name:n.name,args:n.input}});return{role:`model`,parts:t}}return{role:`function`,parts:e.results.map(e=>({functionResponse:{name:e.name,response:{result:e.output}}}))}}function T_(e){let t=e?.candidates?.[0]?.content?.parts;if(!Array.isArray(t))return null;let n=t.filter(e=>typeof e?.text==`string`).map(e=>e.text),r=t.filter(e=>e?.functionCall);if(r.length>0)return{type:`tool_calls`,toolCalls:r.map(e=>({id:`${e.functionCall.name}-${crypto.randomUUID()}`,name:e.functionCall.name,input:e.functionCall.args??{}})),text:n.length?n.join(`
|
|
24
24
|
`).trim():void 0};let i=n.join(`
|
|
25
|
-
`).trim();return i?{type:`text`,text:i}:null}var T_={id:`gemini`,label:`Gemini`,description:`Google's multimodal Gemini model family.`,configKey:`geminiApiKey`,defaultModel:`gemini-2.5-pro`,fallbackModels:[`gemini-2.5-pro`,`gemini-2.5-flash`,`gemini-2.5-flash-lite`],dashboardUrl:`https://aistudio.google.com/app/apikey`,credentialsHint:`Google AI Studio → Get API key → Create API key.`,credentialFields:[{key:`apiKey`,label:`API Key`,type:`password`}],capabilities:{supportsTemperature:!0,supportsVision:!0,supportsDocuments:!0},discoverModels:async e=>{let t=await Ce(`${b_}?key=${e}`,null,Ca);return Array.isArray(t?.models)?t.models.map(e=>e.name?.replace(/^models\//,``)).filter(Boolean):[]},validateApiKey:async e=>{try{let t=await Ce(`${b_}?key=${e}`,null,Ca);return t===null?{valid:!1,error:`Nessuna risposta dal server (CORS o rete)`}:t?.error?{valid:!1,error:typeof t.error==`object`&&`message`in t.error?String(t.error.message):String(t.error)}:{valid:!0}}catch(e){let t=e;return{valid:!1,error:t?.error&&typeof t.error==`object`?String(t.error.message??e):String(e)}}},complete:async(t,n)=>{let r=[...(n.attachments??[]).map(e=>Ka.isTextAttachment(e.mimeType)?{text:`[File: ${e.name}]\n${Ka.decodeBase64Text(e.base64)}`}:{inline_data:{mime_type:e.mimeType,data:e.base64}}),{text:n.prompt}];return w_(await Ce(`${x_}/${n.model}:generateContent?key=${t}`,{method:`POST`,headers:n.logId?{[e.t]:n.logId}:void 0,body:{contents:[...(n.history??[]).map(C_),...n.prompt?[{role:`user`,parts:r}]:[]],...n.role?{systemInstruction:{parts:[{text:ta.parseRole(n.role,n)}]}}:{},...n.tools?.length?{tools:S_(n.tools)}:{},generationConfig:typeof n.temperature==`number`?{temperature:n.temperature}:void 0},signal:n.signal},Ca))}},E_=i_({id:`mistral`,label:`Mistral`,description:`European-hosted open and commercial language models.`,configKey:`mistralApiKey`,defaultModel:`mistral-medium-3`,fallbackModels:[`mistral-medium-3`,`mistral-small-3.1`,`ministral-8b-latest`],baseUrl:`https://api.mistral.ai/v1`,dashboardUrl:`https://console.mistral.ai/api-keys`,credentialsHint:`Mistral Console → API Keys → Create new key.`}),D_=/whisper|orpheus|tts|guard/i,O_=i_({id:`groq`,label:`Groq`,description:`Very fast inference on open-weight models, with a free tier.`,configKey:`groqApiKey`,defaultModel:`openai/gpt-oss-120b`,fallbackModels:[`openai/gpt-oss-120b`,`openai/gpt-oss-20b`],baseUrl:`https://api.groq.com/openai/v1`,dashboardUrl:`https://console.groq.com/keys`,credentialsHint:`Groq Console → API Keys → Create API Key.`,mapModelEntry:e=>typeof e.id==`string`&&e.active!==!1&&!D_.test(e.id)?e.id:void 0}),k_=i_({id:`openai`,label:`OpenAI`,description:`GPT models via the OpenAI API.`,configKey:`openaiApiKey`,defaultModel:`gpt-5.2`,fallbackModels:[`gpt-5.2`,`gpt-5`,`gpt-5-mini`,`gpt-5-nano`,`gpt-4.1`,`gpt-4.1-mini`,`gpt-4.1-nano`],baseUrl:`https://api.openai.com/v1`,dashboardUrl:`https://platform.openai.com/api-keys`,credentialsHint:`OpenAI dashboard → API keys → Create new secret key.`}),A_=`https://opencode.ai/zen/v1/models`,j_=`https://opencode.ai/zen/v1/chat/completions`,M_=`deepseek-v4.1-flash`,N_=[M_,`deepseek-v4-pro`,`glm-5.3`,`glm-5.3-flash`,`grok-build-0.1`,`kimi-k3`,`minimax-m3`,`qwen3.8-flash`],P_=/-free$/,F_=new Set([`big-pickle`]),I_=e=>P_.test(e)||F_.has(e),L_={id:`opencode`,label:`OpenCode`,description:`OpenCode Zen — a curated set of coding-focused models.`,configKey:`openCodeApiKey`,defaultModel:M_,fallbackModels:N_,dashboardUrl:`https://opencode.ai`,credentialsHint:`OpenCode Zen dashboard → API Keys → Create Key.`,credentialFields:[{key:`apiKey`,label:`API Key`,type:`password`}],capabilities:{supportsTemperature:!0,supportsVision:!0,supportsDocuments:!0},discoverModels:async e=>{let t=await Ce(A_,{headers:{Authorization:`Bearer ${e}`}},Ca);return(Array.isArray(t?.data)?t.data:Array.isArray(t?.models)?t.models:Array.isArray(t)?t:[]).map(e=>e.id).filter(e=>typeof e==`string`&&e.length>0).filter(e=>!I_(e))},complete:(e,t)=>R_(j_,`OpenCode`,e,t)};async function R_(t,n,r,i,a={}){let o=i.attachments??[],s=o.length>0?o.map(e=>e.mimeType.startsWith(`image/`)?{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.base64}`}}:Ka.isTextAttachment(e.mimeType)?{type:`text`,text:`[File: ${e.name}]\n${Ka.decodeBase64Text(e.base64)}`}:{type:`text`,text:`[File attached: ${e.name} (${e.mimeType})]`}).concat({type:`text`,text:i.prompt}):i.prompt,c=await Ce(t,{method:`POST`,headers:{Authorization:`Bearer ${r}`,...i.logId?{[e.t]:i.logId}:{},...a},body:{model:i.model,messages:[...i.role?[{role:`system`,content:ta.parseRole(i.role,i)}]:[],...(i.history??[]).flatMap(n_),...i.prompt?[{role:`user`,content:s}]:[]],...i.tools?.length?{tools:i.tools.map(e_)}:{},...typeof i.temperature==`number`?{temperature:i.temperature}:{},...Ma(i.model,i.reasoning)},signal:i.signal},Ca);if(!c)throw Pa(n);return r_(c)}var z_=`https://opencode.ai/zen/go/v1/models`,B_=`https://opencode.ai/zen/go/v1/chat/completions`,V_=`x-opencode-session`,H_=`kimi-k3`,U_=[H_,`kimi-k3.1-pro`,`glm-5.3`,`glm-5.3-flash`,`deepseek-v4.1-flash`,`deepseek-v4-pro`,`qwen3.8-max`,`qwen3.8-flash`,`minimax-m3`,`claude-haiku-5-5`,`gemini-4-argon`],W_=()=>typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`s-${Date.now()}-${Math.random().toString(36).slice(2)}`,G_={id:`opencode-go`,label:`OpenCode Go`,description:`OpenCode Go — a monthly subscription to open and frontier coding models, with an API key.`,configKey:`openCodeGoApiKey`,defaultModel:H_,fallbackModels:U_,dashboardUrl:`https://opencode.ai/go`,credentialsHint:`OpenCode Console → subscribe to Go → API key.`,credentialFields:[{key:`apiKey`,label:`API Key`,type:`password`}],capabilities:{supportsTemperature:!0,supportsVision:!0,supportsDocuments:!0},discoverModels:async e=>{let t=await Ce(z_,{headers:{Authorization:`Bearer ${e}`}},Ca);return(Array.isArray(t?.data)?t.data:[]).map(e=>e.id).filter(e=>typeof e==`string`&&e.length>0).filter(e=>!I_(e))},complete:(e,t)=>R_(B_,`OpenCode Go`,e,t,{[V_]:t.logId||W_()})},K_=e=>{if(!e||typeof e!=`object`)return;let{prompt:t,completion:n}=e,r=Number(t),i=Number(n);if(t===void 0||n===void 0||!Number.isFinite(r)||!Number.isFinite(i)||r<0||i<0)return;let a=e=>Math.round(e*0xe8d4a51000)/1e6;return{input:a(r),output:a(i),currency:`USD`,source:`provider`}},q_=i_({id:`openrouter`,label:`OpenRouter`,description:`Unified access to many model providers through one API.`,configKey:`openRouterApiKey`,defaultModel:`openai/gpt-4`,fallbackModels:[`openai/gpt-4`,`openai/gpt-5-nano`,`anthropic/claude-3.7-sonnet`],baseUrl:`https://openrouter.ai/api/v1`,reasoningStyle:`openrouter`,dashboardUrl:`https://openrouter.ai/settings/keys`,credentialsHint:`OpenRouter → Settings → API Keys → Create Key.`,mapModelEntry:e=>typeof e.id==`string`?{model:e.id,pricing:K_(e.pricing)}:void 0,validateApiKey:async e=>{try{let t=await Ce(`https://openrouter.ai/api/v1/auth/key`,{headers:{Authorization:`Bearer ${e}`}},Ca);return t===null?{valid:!1,error:`Nessuna risposta dal server (CORS o proxy non attivo)`}:t?.data?.label!==void 0||t?.data?.usage!==void 0?{valid:!0}:t?.error?{valid:!1,error:Na(t)}:{valid:!1,error:`Chiave non riconosciuta da OpenRouter`}}catch(e){return{valid:!1,error:Na(e)}}}}),J_={dbRealtime:{service:`data`,create:()=>new Cg},firestoreDb:{service:`data`,create:()=>new Ju},firestorage:{service:`storage`,create:()=>new bd},firebaseAuth:{service:`auth`,create:()=>new Dg}},Y_={googleAuth:{service:`auth`,create:()=>new ig},gmail:{service:`email`,create:()=>new Bg},googleServiceAccount:{service:`credentials`,create:e=>new Ng(e.serviceAccount),when:e=>!!e.serviceAccount}},X_={dropboxAuth:{service:`auth`,create:e=>new Fg(e)}},Z_={githubAuth:{service:`auth`,create:e=>new Lg(e),when:e=>!!e?.sessionUrl?.trim()}},Q_={supabaseDb:{service:`data`,create:e=>new sd(e)},supabaseStorage:{service:`storage`,create:e=>new xd(e)},supabaseAuth:{service:`auth`,create:e=>new Hg(e)}},$_={mock:{service:`data`,create:e=>new md(e?.data)},mockAuth:{service:`auth`,create:e=>new Gg(typeof e?.auth==`object`?e.auth:{}),when:e=>!!e?.auth}},ev=(e,t)=>({service:`ai`,create:n=>new Ba(e,n?.[t]||``),when:e=>!!e?.[t]}),tv={firebase:J_,google:Y_,dropbox:X_,github:Z_,supabase:Q_,mock:$_,ai:{openai:ev(k_,`openaiApiKey`),openrouter:ev(q_,`openRouterApiKey`),opencode:ev(L_,`openCodeApiKey`),"opencode-go":ev(G_,`openCodeGoApiKey`),deepseek:ev(y_,`deepSeekApiKey`),gemini:ev(T_,`geminiApiKey`),anthropic:ev(Zg,`anthropicApiKey`),mistral:ev(E_,`mistralApiKey`),groq:ev(O_,`groqApiKey`),cloudflare:{service:`ai`,create:e=>new Ba(__({accountId:e?.cloudflare?.accountId?.trim()||``,defaultModel:e?.cloudflare?.defaultModel?.trim()||void 0,includePaidModels:e?.cloudflare?.includePaidModels}),e?.cloudflare?.apiToken?.trim()||``),when:e=>!!e?.cloudflare?.apiToken?.trim()&&!!e?.cloudflare?.accountId?.trim()}}},nv=()=>n.default.createElement(`div`,{className:`flex min-h-[calc(100vh-4rem)] items-center justify-center`},n.default.createElement(`div`,{className:`h-8 w-8 animate-spin rounded-full border-2 border-muted border-t-primary`}));function rv(e,t){if(!t)return;let n=t,r=typeof t==`object`&&!Array.isArray(t)?Object.entries(n):[];if(r.length>0&&r.every(([,e])=>typeof e==`object`&&!!e)){Object.assign(e,n);return}e.custom=t}function iv(e,t,n=`default`){return t&&e[t]?t:Object.keys(e)[0]??n}function av(e={}){let t={data:{},storage:{},auth:{},email:{},ai:{},credentials:{}},n=e=>t[e]??={};for(let[t,r]of Object.entries(tv)){let i=e[t];if(i!==void 0)for(let[e,t]of Object.entries(r))(!t.when||t.when(i))&&(n(t.service)[e]=t.create(i))}for(let[t,r]of Object.entries(e.custom??{}))rv(n(t),r);Object.keys(t.data).length===0&&(t.data.mock=new md),Object.keys(t.auth).length===0&&(t.auth.googleAuth=new ig);let r=e.services??{},i={};for(let[e,n]of Object.entries(t))i[e]={registry:n,defaultKey:iv(n,r[e])};return i}var ov={},sv=e=>{ov=e},cv=e=>ov[e]||[];function lv({contextProviders:e,providers:t={},appName:i=`LLM Native`,scrapeConfig:a,iconProvider:o,googleMaps:s,themeProvider:c,i18n:l,children:u,errorReportUrl:d,debug:f,basename:p}){let[m,h]=(0,n.useState)(()=>av(t)),g=(0,n.useRef)(m);g.current=m;let _=(0,n.useRef)(void 0);_.current||=(async(e,t,n)=>{let r=g.current[e]?.registry?.[t];r!==n&&(await r?.dispose?.(),h(r=>({...r,[e]:{defaultKey:r[e]?.defaultKey??t,registry:{...r[e]?.registry,[t]:n}}})))});let v=_.current,y=e??n.default.Fragment;return n.default.createElement(ng,{fullPage:!0,reportUrl:d,debug:f},n.default.createElement(r.BrowserRouter,{basename:p},n.default.createElement(ma,{defaultConfig:{title:i,firebase:t.firebase,google:t.google?{oAuth2:{clientId:t.google.clientId,scope:t.google.scope},serviceAccount:t.google.serviceAccount,developerToken:t.google.developerToken}:void 0,dropbox:t.dropbox,ai:t.ai,scrape:a,proxy:t.proxy}},n.default.createElement(Cu,{registries:m,setProvider:v},n.default.createElement(In,m.auth,n.default.createElement(lg,m.credentials,n.default.createElement(cr,m.data,n.default.createElement(Yr,m.storage,n.default.createElement(og,m.email,n.default.createElement(oa,m.ai,n.default.createElement(nn,{config:o},n.default.createElement(_p,{config:s},n.default.createElement(km,{appName:i},n.default.createElement(pt,{config:l},n.default.createElement(tt,{config:c},n.default.createElement(y,null,u))))))))))))))))}function uv({importPage:e,LayoutDefault:t=void 0,menuConfig:i={},authGate:a=void 0,children:o,...s}){sv(i);let c=a===!0?{}:a||null,l=({children:e})=>n.default.createElement(n.default.Fragment,null,e),u=({pageSource:e,message:t})=>n.default.createElement(vr,{variant:`warning`},`Missing Page: `,e,t&&n.default.createElement(`code`,{className:`ml-2`},t));function d(i,a,o){let d=`./pages${a.component?`/`+a.component:a.path===`/`?`/Home`:E.toCamel(a.path.split(`*`)[0])}.js`,f=a.page||n.default.lazy(()=>e(d).then(e=>typeof e.default==`function`?{default:e.default}:(console.warn(`⚠️ Invalid default export in ${d}`),{default:()=>n.default.createElement(u,{pageSource:d})})).catch(e=>(console.error(`❌ Failed to load ${d}:`,e),{default:()=>n.default.createElement(u,{pageSource:d,message:e.message})}))),p=a.layout||t||l,m=n.default.createElement(p,null,n.default.createElement(ng,{key:a.path,reportUrl:s.errorReportUrl,debug:s.debug},n.default.createElement(n.Suspense,{fallback:n.default.createElement(nv,null)},n.default.createElement(f,null))));return n.default.createElement(r.Route,{key:`${i}-${o}`,path:a.path,element:c&&!a.public?n.default.createElement(au,c,m):m})}let f=e=>Object.keys(e).flatMap(t=>e[t].flatMap((e,n)=>[e.path&&d(t,e,n),e.children&&f({children:e.children})].filter(Boolean))),p=(e,t)=>e.some(e=>e.path===t||!!e.children&&p(e.children,t)),m=Object.values(ov).some(e=>p(e,`/`))?{}:{default:[{path:`/`}]};return n.default.createElement(lv,s,o,n.default.createElement(r.Routes,null,n.default.createElement(r.Route,{path:Un,element:n.default.createElement(Xn,null)}),n.default.createElement(n.default.Fragment,null,f({...m,...ov,_auth:[{path:`/users`,page:Kh,layout:t}]})),n.default.createElement(r.Route,{path:`*`,element:n.default.createElement(qh,null)})))}function dv(e){return e.hidden?!1:e.children?.some(dv)?!0:!!e.title?.trim()&&!/(^|\/):|\*/.test(e.path)}var fv=e=>e.filter(dv).map(e=>e.children?{...e,children:fv(e.children)}:e),pv=e=>{let t=fv(cv(e)),i=(0,r.useLocation)(),a=e=>e.map(e=>{let t=i.pathname===e.path,n=e.children?a(e.children):[],r=t||n.some(e=>e.active);return{...e,active:r,children:n}});return(0,n.useMemo)(()=>a(t),[i.pathname])},mv={common:{save:`Salva`,cancel:`Annulla`,delete:`Elimina`,close:`Chiudi`,back:`Indietro`,search:`Cerca`,loading:`Caricamento...`,noDataFound:`Nessun dato trovato`,pageNavigation:`Navigazione pagine`,previous:`Precedente`,next:`Successivo`,notFoundMessage:`Ops! Pagina non trovata.`,goHome:`Vai alla Home`,openNavigation:`Apri la navigazione`},auth:{signIn:`Accedi`,signOut:`Esci`,connect:`Connetti`,connected:`Connesso`,authenticated:`Autenticato`,notConfigured:`Il provider auth "{provider}" non è configurato. Controlla le chiavi API.`,notImplemented:`Il provider non implementa signIn().`},access:{email:`Email`,emailPlaceholder:`nome@azienda.it`,password:`Password`,newPassword:`Nuova password`,name:`Nome e cognome`,showPassword:`Mostra la password`,hidePassword:`Nascondi la password`,or:`oppure`,continue:`Continua`,backToSignIn:`Torna all’accesso`,emailRequired:`Inserisci la tua email.`,emailInvalid:`Inserisci un indirizzo email valido, come nome@azienda.it.`,passwordRequired:`Inserisci la password.`,nameRequired:`Inserisci il tuo nome.`,signInTitle:`Accedi`,signInTitleApp:`Accedi a {app}`,signInDescription:`Bentornato. Accedi per continuare.`,signInSubmit:`Accedi`,forgotPassword:`Password dimenticata?`,noAccount:`Non hai un account?`,signUpLink:`Creane uno`,continueWith:`Continua con {provider}`,codeRequest:`Inviami un codice di accesso`,usePassword:`Accedi invece con la password`,useCode:`Inviami invece un codice via email`,signUpTitle:`Crea il tuo account`,signUpDescription:`Ci vuole meno di un minuto.`,signUpSubmit:`Crea l’account`,haveAccount:`Hai già un account?`,signInLink:`Accedi`,terms:`Accetto i termini del servizio e l’informativa sulla privacy`,termsRequired:`Accetta i termini per continuare.`,passwordRules:`La password deve avere`,ruleLength:`almeno {min} caratteri`,ruleNumber:`un numero`,ruleCase:`lettere maiuscole e minuscole`,ruleSymbol:`un simbolo, come ! o #`,ruleMet:`fatto`,ruleNotMet:`manca`,checkEmailTitle:`Controlla la tua email`,checkEmailSignUp:`Abbiamo inviato un link a {email}. Aprilo per attivare il tuo account.`,checkEmailHint:`Non la trovi? Guarda nella cartella dello spam.`,resend:`Invia di nuovo`,resendIn:`Invia di nuovo tra {seconds} s`,resent:`Inviata. Può volerci un minuto perché arrivi.`,useOtherEmail:`Usa un’altra email`,forgotTitle:`Hai dimenticato la password?`,forgotDescription:`Inserisci l’email del tuo account e ti invieremo un link per sceglierne una nuova.`,forgotSubmit:`Invia il link`,forgotSent:`Se esiste un account per {email}, ti arriverà un link per scegliere una nuova password.`,resetTitle:`Scegli una nuova password`,resetDescription:`Usa una password che non usi su altri siti.`,resetDescriptionFor:`Per {email}. Usa una password che non usi su altri siti.`,resetSubmit:`Salva la password`,resetDoneTitle:`Password cambiata`,resetDone:`La nuova password è salvata. D’ora in poi accedi con questa.`,linkExpiredTitle:`Questo link non funziona più`,linkExpired:`I link valgono una volta sola e per un tempo limitato. Chiedine uno nuovo.`,requestNewLink:`Chiedi un nuovo link`,verifyTitle:`Conferma la tua email`,verifyPending:`Abbiamo inviato un link a {email}. Aprilo per confermare l’indirizzo.`,verifyPendingNoEmail:`Ti abbiamo inviato un link. Aprilo per confermare l’indirizzo.`,verifyChecking:`Confermo la tua email…`,verifyDoneTitle:`Email confermata`,verifyDone:`Il tuo account è attivo. Puoi continuare.`,verifiedContinue:`L’ho confermata`,notVerifiedYet:`L’email non è ancora confermata. Apri il link nell’email che ti abbiamo inviato.`,codeTitle:`Inserisci il codice`,codeDescription:`Abbiamo inviato un codice di {length} cifre a {email}. Vale per pochi minuti.`,codeLabel:`Codice di accesso`,codeDigit:`Cifra {index} di {length}`,codeSubmit:`Verifica`,codeNotReceived:`Non ti è arrivato il codice?`,deniedTitle:`Accesso non consentito`,denied:`Sei entrato come {user}, ma questo account non può aprire l’app. Chiedi l’accesso a un amministratore.`,signInOther:`Accedi con un altro account`,errorGeneric:`Qualcosa non ha funzionato. Riprova tra un momento.`,errorCredentials:`L’email o la password non sono corrette.`,errorEmailInUse:`Esiste già un account con questa email. Accedi.`,errorWeakPassword:`Questa password è troppo facile da indovinare. Scegline una più lunga.`,errorInvalidEmail:`Inserisci un indirizzo email valido.`,errorTooManyRequests:`Troppi tentativi. Aspetta qualche minuto e riprova.`,errorNetwork:`Nessuna connessione. Controlla la rete e riprova.`,errorInvalidCode:`Il codice non è corretto o è scaduto.`,errorExpiredLink:`Questo link è scaduto o è già stato usato. Chiedine uno nuovo.`,errorDisabled:`Questo account è disattivato. Contatta un amministratore.`,errorCancelled:`L’accesso è stato annullato prima di finire.`,errorNotSupported:`Questo modo di accedere non è disponibile.`},form:{headerAdd:`Aggiungi`,headerEdit:`Modifica`,buttonSave:`Salva`,buttonDelete:`Elimina`,buttonBack:`Indietro`,requiredField:`Il campo "{field}" è obbligatorio`,requiredFieldGeneric:`I campi obbligatori non sono compilati`,saveSuccess:`Salvato con successo`,deleteSuccess:`Eliminato con successo`,saveError:`Qualcosa è andato storto. Riprova.`,noticeRequiredFields:`Completa i campi obbligatori prima di salvare.`},grid:{buttonAdd:`Aggiungi`,deleteConfirm:`Sei sicuro di voler eliminare questo elemento?`,emptyState:`Nessun elemento da mostrare`,filtersButton:`Filtri`,filtersPanelTitle:`Filtri`,filtersClearAll:`Cancella tutti`,filtersSelectPlaceholder:`Tutti`,filtersRangeFrom:`Da`,filtersRangeTo:`A`,filtersRangeMin:`Min`,filtersRangeMax:`Max`,filtersSelectedCountTemplate:`{count} selezionati`,tableView:`Vista tabella`,galleryView:`Vista galleria`,columns:`Colonne`,fields:`Campi`},select:{placeholder:`Seleziona...`,loading:`Caricamento...`},modal:{save:`Salva`,delete:`Elimina`,cancel:`Annulla`,close:`Chiudi`,ok:`Ok`,yes:`Sì`,no:`No`},upload:{clickOrDrag:`Clicca o trascina per caricare...`,dropToUpload:`Rilascia per caricare`,uploadMore:`Aggiungi altri file`,editFileName:`Modifica nome file`,editorImage:`Editor immagine`,loaded:`Caricato`,removeFile:`Rimuovi`,uploadAnother:`Carica un altro file`,dropToParse:`Rilascia per analizzare`,insertFromUrl:`Inserisci da URL`,urlPlaceholder:`https://…/immagine.png`,invalidUrl:`Inserisci un URL valido`},notifications:{title:`Notifiche`,seeAll:`Vedi tutte`,markAllRead:`Segna tutte come lette`,empty:`Nessuna notifica`,emptyHint:`Sei in pari`},code:{copyCode:`Copia codice`,copy:`Copia`,copied:`Copiato!`,codeLanguageDefault:`Testo`},table:{noDataFound:`Nessun dato trovato`,selectAllRows:`Seleziona tutte le righe`,sortBy:`Ordina per {label}`,sortByCurrent:`Ordina per {label} ({direction})`,selectRow:`Seleziona riga {key}`,reorderRow:`Riordina riga {key}`},gallery:{selectItem:`Seleziona elemento {key}`},sortableList:{handle:`Sposta l'elemento {position} di {total}: trascinalo, o usa le frecce su e giù`,moved:`Spostato in posizione {position} di {total}`},crop:{enableCrop:`Abilita ritaglio a scala {scale}`,variants:`Varianti`,outputFile:`File di output`,active:`Attivo`,removeVariant:`Rimuovi variante {scale}`,fileName:`Nome file`,altText:`Testo alternativo`,altTextPlaceholder:`Descrivi questa immagine…`},imageEditor:{title:`Editor immagine`,save:`Salva`,undo:`Annulla`,redo:`Ripristina`,zoomOut:`Riduci zoom`,zoomIn:`Aumenta zoom`,crop:`Ritaglia`,flipHorizontal:`Capovolgi orizzontalmente`,flipVertical:`Capovolgi verticalmente`,rotate:`Ruota 90°`,freeDrawing:`Disegno libero`,arrow:`Freccia`,text:`Testo`,rectangle:`Rettangolo`,circle:`Cerchio`,triangle:`Triangolo`},prompt:{noProviders:`Nessun provider AI registrato.`,aiNotConfiguredEdit:`L'AI non è configurata. Puoi comunque modificare e salvare questo prompt.`,aiNotConfiguredRun:`L'AI non è configurata. Impossibile eseguire questo prompt.`,aiNotConfiguredShort:`AI non configurata`,toggleOnTitle:`Prompt ATTIVO. Il testo viene usato come template e può essere eseguito.`,toggleOffTitle:`Prompt DISATTIVO. Il testo viene usato direttamente senza elaborazione AI.`,closeEditor:`Chiudi editor`,editSettings:`Modifica impostazioni`,attachFiles:`Allega file`,dropFilesHere:`Rilascia i file per allegarli`,modelPricing:`Input / output, USD per 1M token`,modelPriceNotFound:`Prezzo non trovato`,attachmentsNotSupported:`Il provider AI selezionato non supporta allegati immagini o documenti.`,run:`Esegui`,runFailed:`Esecuzione del prompt fallita.`,noMatchingCommands:`Nessun comando corrispondente`,tokenUsage:`Utilizzo token`,tokenInput:`In: {count} tok`,tokenOutput:`Out: {count} tok`,tokenContext:`Contesto: {percent}%`,tokenCost:"Costo: ~${amount}",tokenTime:`Tempo: {seconds}s`,tokenUsageEmpty:`Esegui il prompt per vedere l'utilizzo token.`,hidePreview:`Nascondi anteprima`,showPreview:`Mostra anteprima risolta`,noProvider:`Nessun provider AI disponibile per questo prompt.`,noResponse:`Il provider AI non ha restituito alcuna risposta.`,promptLabel:`Prompt: `,defaultOption:`Predefinito`,role:`Ruolo`,language:`Lingua`,voice:`Voce`,style:`Stile`,temperature:`Temperatura`,stop:`Ferma`,stopping:`Arresto…`},layout:{maxElements:`Hai già 12 elementi nella riga: rimuovine uno prima.`,noSpace:`Nessuno spazio: impossibile ridurre gli elementi per inserire questo campo.`,dragToMove:`Trascina per spostare`,remove:`Rimuovi`,dragToResize:`Trascina per ridimensionare`,dragHere:`Trascina un elemento qui dentro`},sideNav:{expandGroup:`Espandi`,collapseGroup:`Comprimi`,expandSidebar:`Espandi barra laterale`,collapseSidebar:`Comprimi barra laterale`},autocomplete:{noResults:`Nessun risultato`,create:`Crea «{value}»`,createPlaceholder:`Scrivi o premi Invio per creare...`,remove:`Rimuovi`},addressAutocomplete:{placeholder:`Cerca un indirizzo...`,noResults:`Nessun indirizzo corrispondente`,searching:`Ricerca in corso...`,notConfigured:`La ricerca indirizzi non è configurata (manca la API key Google Maps).`,loadError:`Impossibile caricare la ricerca indirizzi.`},errorBoundary:{title:`Questa pagina ha avuto un problema`,description:`Si è verificato un errore imprevisto durante la visualizzazione di questo contenuto.`,technicalDetails:`Dettagli tecnici`,debugInformation:`Informazioni di debug`,context:`Contesto`,time:`Ora`,agent:`Agente`,componentTree:`Albero dei componenti`,copyDebug:`Copia info di debug`,copied:`Copiato!`,sendReport:`Invia segnalazione`,sending:`Invio...`,reportSent:`Segnalazione inviata ✓`,reportFailed:`Non riuscito - riprova`,tryAgain:`Riprova`,goHome:`Vai alla home`},themeSwitcher:{title:`Personalizza tema`,subtitle:`Token del tema e modalità in tempo reale, senza ricaricare.`,colorMode:`Modalità colore`,light:`Chiaro`,dark:`Scuro`,primaryColor:`Colore primario`,borderRadius:`Arrotondamento bordi`,sharp:`Squadrato`,rounded:`Arrotondato`,font:`Carattere`,statusColors:`Colori di stato`,theme:`Tema`,themeDescription:`Tema disponibile nel registro corrente.`,iconLibrary:`Libreria di icone`,weight:`Spessore`,blue:`Blu`,violet:`Viola`,green:`Verde`,rose:`Rosa`,orange:`Arancione`,slate:`Ardesia`,success:`Successo`,warning:`Avviso`,info:`Info`,danger:`Pericolo`,lucideDescription:`Set di icone lineari e pulite`,phosphorDescription:`Icone con spessori e stili flessibili`,weightThin:`Sottile`,weightLight:`Leggero`,weightRegular:`Normale`,weightBold:`Grassetto`,weightFill:`Pieno`},imageField:{openOriginal:`Apri originale`,crop:`Ritaglia`,cropTitle:`Ritaglia — {name}`,cropImage:`Ritaglia immagine`,editImage:`Modifica immagine`,generatingVariants:`Generazione varianti…`,responsiveVariants:`Varianti responsive`,variantsGenerated:`({count} generate)`,imageUrl:`URL immagine`,imageUrlHint:`(percorso o https://…)`,altText:`Testo alternativo`,altTextHint:`(accessibilità e SEO)`,altPlaceholder:`Es. Foto principale del prodotto`,linkUrl:`URL del link`,optionalHint:`(facoltativo)`,newTab:`Nuova scheda`,sameTab:`Stessa scheda`,insertImage:`Inserisci immagine`,insertImages:`Inserisci immagini`,include:`Includi`,insert:`Inserisci`,insertCount:`Inserisci ({count})`},richText:{bold:`Grassetto`,italic:`Corsivo`,underline:`Sottolineato`,strike:`Barrato`,heading1:`Titolo 1`,heading2:`Titolo 2`,heading3:`Titolo 3`,bulletList:`Elenco puntato`,orderedList:`Elenco numerato`,blockquote:`Citazione`,inlineCode:`Codice in linea`,codeBlock:`Blocco di codice`,link:`Link`,undo:`Annulla`,redo:`Ripeti`,clearFormat:`Cancella formattazione`,paragraphStyle:`Stile paragrafo`,normal:`Normale`,insertTable:`Inserisci tabella`,insertTableSize:`Inserisci tabella {rows} per {cols}`,addRowAbove:`Aggiungi riga sopra`,addRowBelow:`Aggiungi riga sotto`,addColumnLeft:`Aggiungi colonna a sinistra`,addColumnRight:`Aggiungi colonna a destra`,deleteRow:`Elimina riga`,deleteColumn:`Elimina colonna`,deleteTable:`Elimina tabella`,uploadImage:`Carica immagine`,uploadDocument:`Carica documento`,sourceCode:`Codice sorgente`,source:`Sorgente di {name}`,words:`{count} parole`,chars:`{count} caratteri`,editLink:`Modifica link`,removeLink:`Rimuovi link`,altPlaceholder:`Es. Foto del team al ritiro aziendale`},tabDynamic:{addTab:`Aggiungi scheda`},breadcrumbs:{label:`Percorso di navigazione`},chat:{reasoning:`Ragionamento`,reasoningStreaming:`Sta ragionando…`,reasoningFor:`Ha ragionato per {duration}`,durationSeconds:`{seconds} s`,durationMinutes:`{minutes} min {seconds} s`,questions:`Domande`,questionTab:`Domanda {index}`,review:`Riepilogo`,reviewHint:`Controlla le risposte, poi inviale.`,other:`Altro`,otherPlaceholder:`Scrivi la tua risposta`,recommended:`Consigliata`,chooseOne:`Scegline una`,chooseMany:`Scegline una o più`,keyboardHint:`Tasti {first}–{last} per scegliere, Invio per continuare`,textKeyboardHint:`Invio va a capo, Ctrl/⌘+Invio per continuare`,next:`Avanti`,back:`Indietro`,submit:`Invia`,noAnswer:`Nessuna risposta`,answered:`Risposte date`,activityCount:`{count} passi`,activityFailed:`{count} non riusciti`,activityCommands:`Comandi`,activityHide:`Nascondi`,activityLog:`Registro completo`,activitySteps:`Vista per passi`,activityFiles:`{count} file modificati`,activityChanges:`Vedi le modifiche`,activityEmpty:`Ancora niente`},charts:{noData:`Nessun dato`,total:`Totale`,less:`Meno`,more:`Più`,dataTable:`Dati del grafico`,sequence:`Sequenza`}},hv={common:{save:`Speichern`,cancel:`Abbrechen`,delete:`Löschen`,close:`Schließen`,back:`Zurück`,search:`Suchen`,loading:`Laden...`,noDataFound:`Keine Daten gefunden`,pageNavigation:`Seitennavigation`,previous:`Zurück`,next:`Weiter`,notFoundMessage:`Ups! Seite nicht gefunden.`,goHome:`Zur Startseite`,openNavigation:`Navigation öffnen`},auth:{signIn:`Anmelden`,signOut:`Abmelden`,connect:`Verbinden`,connected:`Verbunden`,authenticated:`Authentifiziert`,notConfigured:`Auth-Provider "{provider}" ist nicht konfiguriert. API-Schlüssel prüfen.`,notImplemented:`Der Provider implementiert signIn() nicht.`},access:{email:`E-Mail`,emailPlaceholder:`name@firma.de`,password:`Passwort`,newPassword:`Neues Passwort`,name:`Vollständiger Name`,showPassword:`Passwort anzeigen`,hidePassword:`Passwort verbergen`,or:`oder`,continue:`Weiter`,backToSignIn:`Zurück zur Anmeldung`,emailRequired:`Gib deine E-Mail-Adresse ein.`,emailInvalid:`Gib eine gültige E-Mail-Adresse ein, z. B. name@firma.de.`,passwordRequired:`Gib dein Passwort ein.`,nameRequired:`Gib deinen Namen ein.`,signInTitle:`Anmelden`,signInTitleApp:`Bei {app} anmelden`,signInDescription:`Willkommen zurück. Melde dich an, um fortzufahren.`,signInSubmit:`Anmelden`,forgotPassword:`Passwort vergessen?`,noAccount:`Noch kein Konto?`,signUpLink:`Konto erstellen`,continueWith:`Weiter mit {provider}`,codeRequest:`Anmeldecode per E-Mail senden`,usePassword:`Stattdessen mit Passwort anmelden`,useCode:`Stattdessen einen Code per E-Mail senden`,signUpTitle:`Konto erstellen`,signUpDescription:`Das dauert weniger als eine Minute.`,signUpSubmit:`Konto erstellen`,haveAccount:`Du hast schon ein Konto?`,signInLink:`Anmelden`,terms:`Ich akzeptiere die Nutzungsbedingungen und die Datenschutzerklärung`,termsRequired:`Akzeptiere die Bedingungen, um fortzufahren.`,passwordRules:`Dein Passwort braucht`,ruleLength:`mindestens {min} Zeichen`,ruleNumber:`eine Zahl`,ruleCase:`Groß- und Kleinbuchstaben`,ruleSymbol:`ein Sonderzeichen, z. B. ! oder #`,ruleMet:`erfüllt`,ruleNotMet:`fehlt`,checkEmailTitle:`Prüfe deine E-Mails`,checkEmailSignUp:`Wir haben einen Link an {email} gesendet. Öffne ihn, um dein Konto zu aktivieren.`,checkEmailHint:`Nicht gefunden? Sieh im Spam-Ordner nach.`,resend:`Erneut senden`,resendIn:`Erneut senden in {seconds} s`,resent:`Gesendet. Es kann eine Minute dauern.`,useOtherEmail:`Andere E-Mail verwenden`,forgotTitle:`Passwort vergessen?`,forgotDescription:`Gib die E-Mail-Adresse deines Kontos ein. Wir senden dir einen Link, um ein neues Passwort zu wählen.`,forgotSubmit:`Link senden`,forgotSent:`Wenn es ein Konto für {email} gibt, ist ein Link zum Festlegen eines neuen Passworts unterwegs.`,resetTitle:`Neues Passwort wählen`,resetDescription:`Verwende ein Passwort, das du nirgendwo sonst nutzt.`,resetDescriptionFor:`Für {email}. Verwende ein Passwort, das du nirgendwo sonst nutzt.`,resetSubmit:`Passwort speichern`,resetDoneTitle:`Passwort geändert`,resetDone:`Dein neues Passwort ist gespeichert. Melde dich ab jetzt damit an.`,linkExpiredTitle:`Dieser Link funktioniert nicht mehr`,linkExpired:`Links gelten nur einmal und nur für begrenzte Zeit. Fordere einen neuen an.`,requestNewLink:`Neuen Link anfordern`,verifyTitle:`E-Mail-Adresse bestätigen`,verifyPending:`Wir haben einen Link an {email} gesendet. Öffne ihn, um die Adresse zu bestätigen.`,verifyPendingNoEmail:`Wir haben dir einen Link gesendet. Öffne ihn, um die Adresse zu bestätigen.`,verifyChecking:`E-Mail-Adresse wird bestätigt…`,verifyDoneTitle:`E-Mail bestätigt`,verifyDone:`Dein Konto ist aktiv. Du kannst fortfahren.`,verifiedContinue:`Ich habe bestätigt`,notVerifiedYet:`Deine E-Mail-Adresse ist noch nicht bestätigt. Öffne den Link in der E-Mail, die wir dir gesendet haben.`,codeTitle:`Code eingeben`,codeDescription:`Wir haben einen {length}-stelligen Code an {email} gesendet. Er gilt wenige Minuten.`,codeLabel:`Anmeldecode`,codeDigit:`Ziffer {index} von {length}`,codeSubmit:`Bestätigen`,codeNotReceived:`Keinen Code erhalten?`,deniedTitle:`Kein Zugriff`,denied:`Du bist als {user} angemeldet, aber dieses Konto kann die App nicht öffnen. Bitte einen Administrator um Zugriff.`,signInOther:`Mit einem anderen Konto anmelden`,errorGeneric:`Etwas ist schiefgelaufen. Versuche es gleich noch einmal.`,errorCredentials:`E-Mail-Adresse oder Passwort ist falsch.`,errorEmailInUse:`Mit dieser E-Mail-Adresse gibt es schon ein Konto. Melde dich an.`,errorWeakPassword:`Dieses Passwort ist zu leicht zu erraten. Wähle ein längeres.`,errorInvalidEmail:`Gib eine gültige E-Mail-Adresse ein.`,errorTooManyRequests:`Zu viele Versuche. Warte ein paar Minuten und versuche es erneut.`,errorNetwork:`Keine Verbindung. Prüfe dein Netzwerk und versuche es erneut.`,errorInvalidCode:`Der Code ist falsch oder abgelaufen.`,errorExpiredLink:`Dieser Link ist abgelaufen oder wurde schon verwendet. Fordere einen neuen an.`,errorDisabled:`Dieses Konto ist deaktiviert. Wende dich an einen Administrator.`,errorCancelled:`Die Anmeldung wurde abgebrochen, bevor sie fertig war.`,errorNotSupported:`Diese Art der Anmeldung ist nicht verfügbar.`},form:{headerAdd:`Hinzufügen`,headerEdit:`Bearbeiten`,buttonSave:`Speichern`,buttonDelete:`Löschen`,buttonBack:`Zurück`,requiredField:`Das Feld "{field}" ist erforderlich`,requiredFieldGeneric:`Pflichtfelder sind nicht ausgefüllt`,saveSuccess:`Erfolgreich gespeichert`,deleteSuccess:`Erfolgreich gelöscht`,saveError:`Etwas ist schiefgelaufen. Bitte erneut versuchen.`,noticeRequiredFields:`Pflichtfelder vor dem Speichern ausfüllen.`},grid:{buttonAdd:`Hinzufügen`,deleteConfirm:`Dieses Element wirklich löschen?`,emptyState:`Keine Elemente vorhanden`,filtersButton:`Filter`,filtersPanelTitle:`Filter`,filtersClearAll:`Alle zurücksetzen`,filtersSelectPlaceholder:`Alle`,filtersRangeFrom:`Von`,filtersRangeTo:`Bis`,filtersRangeMin:`Min`,filtersRangeMax:`Max`,filtersSelectedCountTemplate:`{count} ausgewählt`,tableView:`Tabellenansicht`,galleryView:`Galerieansicht`,columns:`Spalten`,fields:`Felder`},select:{placeholder:`Auswählen...`,loading:`Lädt...`},modal:{save:`Speichern`,delete:`Löschen`,cancel:`Abbrechen`,close:`Schließen`,ok:`Ok`,yes:`Ja`,no:`Nein`},upload:{clickOrDrag:`Klicken oder ziehen zum Hochladen...`,dropToUpload:`Loslassen zum Hochladen`,uploadMore:`Weitere Dateien hinzufügen`,editFileName:`Dateiname bearbeiten`,editorImage:`Bildeditor`,loaded:`Geladen`,removeFile:`Entfernen`,uploadAnother:`Eine weitere Datei hochladen`,dropToParse:`Loslassen zum Analysieren`,insertFromUrl:`Von URL einfügen`,urlPlaceholder:`https://…/bild.png`,invalidUrl:`Gültige URL eingeben`},notifications:{title:`Benachrichtigungen`,seeAll:`Alle anzeigen`,markAllRead:`Alle als gelesen markieren`,empty:`Keine Benachrichtigungen`,emptyHint:`Du bist auf dem neuesten Stand`},code:{copyCode:`Code kopieren`,copy:`Kopieren`,copied:`Kopiert!`,codeLanguageDefault:`Text`},table:{noDataFound:`Keine Daten gefunden`,selectAllRows:`Alle Zeilen auswählen`,sortBy:`Nach {label} sortieren`,sortByCurrent:`Nach {label} sortieren ({direction})`,selectRow:`Zeile {key} auswählen`,reorderRow:`Zeile {key} neu anordnen`},gallery:{selectItem:`Element {key} auswählen`},sortableList:{handle:`Element {position} von {total} verschieben: ziehen oder Pfeiltasten nach oben und unten`,moved:`Auf Position {position} von {total} verschoben`},crop:{enableCrop:`Zuschnitt mit Skalierung {scale} aktivieren`,variants:`Varianten`,outputFile:`Ausgabedatei`,active:`Aktiv`,removeVariant:`Variante {scale} entfernen`,fileName:`Dateiname`,altText:`Alt-Text`,altTextPlaceholder:`Beschreiben Sie dieses Bild…`},imageEditor:{title:`Bildeditor`,save:`Speichern`,undo:`Rückgängig`,redo:`Wiederherstellen`,zoomOut:`Herauszoomen`,zoomIn:`Hineinzoomen`,crop:`Zuschneiden`,flipHorizontal:`Horizontal spiegeln`,flipVertical:`Vertikal spiegeln`,rotate:`90° drehen`,freeDrawing:`Freihandzeichnen`,arrow:`Pfeil`,text:`Text`,rectangle:`Rechteck`,circle:`Kreis`,triangle:`Dreieck`},prompt:{noProviders:`Keine AI-Provider registriert.`,aiNotConfiguredEdit:`AI ist nicht konfiguriert. Sie können diesen Prompt trotzdem bearbeiten.`,aiNotConfiguredRun:`AI ist nicht konfiguriert. Dieser Prompt kann nicht ausgeführt werden.`,aiNotConfiguredShort:`AI nicht konfiguriert`,toggleOnTitle:`Prompt AKTIV. Der Text wird als Vorlage verwendet und kann ausgeführt werden.`,toggleOffTitle:`Prompt INAKTIV. Der Text wird direkt ohne AI-Verarbeitung verwendet.`,closeEditor:`Editor schließen`,editSettings:`Einstellungen bearbeiten`,attachFiles:`Dateien anhängen`,dropFilesHere:`Dateien zum Anhängen hier ablegen`,modelPricing:`Input / Output, USD pro 1 Mio. Token`,modelPriceNotFound:`Preis nicht gefunden`,attachmentsNotSupported:`Der ausgewählte AI-Provider unterstützt keine Bild- oder Dokumentanlagen.`,run:`Ausführen`,runFailed:`Prompt-Ausführung fehlgeschlagen.`,noMatchingCommands:`Keine passenden Befehle`,tokenUsage:`Token-Nutzung`,tokenInput:`Eingabe: {count} tok`,tokenOutput:`Ausgabe: {count} tok`,tokenContext:`Kontext: {percent}%`,tokenCost:"Kosten: ~${amount}",tokenTime:`Zeit: {seconds}s`,tokenUsageEmpty:`Prompt ausführen, um Token-Nutzung zu sehen.`,hidePreview:`Vorschau ausblenden`,showPreview:`Aufgelöste Vorschau anzeigen`,noProvider:`Kein AI-Provider für diesen Prompt verfügbar.`,noResponse:`Der AI-Provider hat keine Antwort zurückgegeben.`,promptLabel:`Prompt: `,defaultOption:`Standard`,role:`Rolle`,language:`Sprache`,voice:`Stimme`,style:`Stil`,temperature:`Temperatur`,stop:`Stoppen`,stopping:`Wird gestoppt…`},layout:{maxElements:`Bereits 12 Elemente in der Zeile: Eines entfernen.`,noSpace:`Kein Platz: Elemente können nicht genug verkleinert werden.`,dragToMove:`Zum Verschieben ziehen`,remove:`Entfernen`,dragToResize:`Zum Verkleinern ziehen`,dragHere:`Element hierher ziehen`},sideNav:{expandGroup:`Aufklappen`,collapseGroup:`Zuklappen`,expandSidebar:`Seitenleiste aufklappen`,collapseSidebar:`Seitenleiste zuklappen`},autocomplete:{noResults:`Keine Ergebnisse`,create:`«{value}» erstellen`,createPlaceholder:`Tippen oder Enter drücken zum Erstellen...`,remove:`Entfernen`},addressAutocomplete:{placeholder:`Adresse suchen...`,noResults:`Keine passende Adresse`,searching:`Suche läuft...`,notConfigured:`Adresssuche ist nicht konfiguriert (Google Maps API-Schlüssel fehlt).`,loadError:`Adresssuche konnte nicht geladen werden.`},errorBoundary:{title:`Auf dieser Seite ist ein Problem aufgetreten`,description:`Beim Darstellen dieses Inhalts ist ein unerwarteter Fehler aufgetreten.`,technicalDetails:`Technische Details`,debugInformation:`Debug-Informationen`,context:`Kontext`,time:`Zeit`,agent:`Agent`,componentTree:`Komponentenbaum`,copyDebug:`Debug-Infos kopieren`,copied:`Kopiert!`,sendReport:`Bericht senden`,sending:`Wird gesendet...`,reportSent:`Bericht gesendet ✓`,reportFailed:`Fehlgeschlagen - erneut versuchen`,tryAgain:`Erneut versuchen`,goHome:`Zur Startseite`},themeSwitcher:{title:`Theme anpassen`,subtitle:`Theme-Tokens und Modus live ändern, ohne Neuladen.`,colorMode:`Farbmodus`,light:`Hell`,dark:`Dunkel`,primaryColor:`Primärfarbe`,borderRadius:`Eckenradius`,sharp:`Eckig`,rounded:`Abgerundet`,font:`Schriftart`,statusColors:`Statusfarben`,theme:`Theme`,themeDescription:`Im aktuellen Register verfügbares Theme.`,iconLibrary:`Icon-Bibliothek`,weight:`Strichstärke`,blue:`Blau`,violet:`Violett`,green:`Grün`,rose:`Rosé`,orange:`Orange`,slate:`Schiefer`,success:`Erfolg`,warning:`Warnung`,info:`Info`,danger:`Gefahr`,lucideDescription:`Klares Umriss-Icon-Set`,phosphorDescription:`Flexible Icon-Stärken und -Stile`,weightThin:`Dünn`,weightLight:`Leicht`,weightRegular:`Normal`,weightBold:`Fett`,weightFill:`Gefüllt`},imageField:{openOriginal:`Original öffnen`,crop:`Zuschneiden`,cropTitle:`Zuschneiden — {name}`,cropImage:`Bild zuschneiden`,editImage:`Bild bearbeiten`,generatingVariants:`Varianten werden erzeugt…`,responsiveVariants:`Responsive Varianten`,variantsGenerated:`({count} erzeugt)`,imageUrl:`Bild-URL`,imageUrlHint:`(Pfad oder https://…)`,altText:`Alternativtext`,altTextHint:`(Barrierefreiheit & SEO)`,altPlaceholder:`Z. B. Produktbild`,linkUrl:`Link-URL`,optionalHint:`(optional)`,newTab:`Neuer Tab`,sameTab:`Gleicher Tab`,insertImage:`Bild einfügen`,insertImages:`Bilder einfügen`,include:`Einbeziehen`,insert:`Einfügen`,insertCount:`Einfügen ({count})`},richText:{bold:`Fett`,italic:`Kursiv`,underline:`Unterstrichen`,strike:`Durchgestrichen`,heading1:`Überschrift 1`,heading2:`Überschrift 2`,heading3:`Überschrift 3`,bulletList:`Aufzählung`,orderedList:`Nummerierte Liste`,blockquote:`Zitat`,inlineCode:`Inline-Code`,codeBlock:`Codeblock`,link:`Link`,undo:`Rückgängig`,redo:`Wiederholen`,clearFormat:`Formatierung entfernen`,paragraphStyle:`Absatzformat`,normal:`Normal`,insertTable:`Tabelle einfügen`,insertTableSize:`Tabelle {rows} × {cols} einfügen`,addRowAbove:`Zeile oberhalb einfügen`,addRowBelow:`Zeile unterhalb einfügen`,addColumnLeft:`Spalte links einfügen`,addColumnRight:`Spalte rechts einfügen`,deleteRow:`Zeile löschen`,deleteColumn:`Spalte löschen`,deleteTable:`Tabelle löschen`,uploadImage:`Bild hochladen`,uploadDocument:`Dokument hochladen`,sourceCode:`Quellcode`,source:`Quelltext von {name}`,words:`{count} Wörter`,chars:`{count} Zeichen`,editLink:`Link bearbeiten`,removeLink:`Link entfernen`,altPlaceholder:`Z. B. Teamfoto beim Firmenausflug`},tabDynamic:{addTab:`Tab hinzufügen`},breadcrumbs:{label:`Brotkrumennavigation`},chat:{reasoning:`Überlegung`,reasoningStreaming:`Überlegt…`,reasoningFor:`Hat {duration} überlegt`,durationSeconds:`{seconds} s`,durationMinutes:`{minutes} min {seconds} s`,questions:`Fragen`,questionTab:`Frage {index}`,review:`Überprüfen`,reviewHint:`Prüfe deine Antworten und sende sie dann.`,other:`Andere`,otherPlaceholder:`Deine Antwort eingeben`,recommended:`Empfohlen`,chooseOne:`Wähle eine`,chooseMany:`Wähle eine oder mehrere`,keyboardHint:`Tasten {first}–{last} wählen, Enter fährt fort`,textKeyboardHint:`Enter für eine neue Zeile, Strg/⌘+Enter fährt fort`,next:`Weiter`,back:`Zurück`,submit:`Senden`,noAnswer:`Keine Antwort`,answered:`Beantwortet`,activityCount:`{count} Schritte`,activityFailed:`{count} fehlgeschlagen`,activityCommands:`Befehle`,activityHide:`Ausblenden`,activityLog:`Vollständiges Protokoll`,activitySteps:`Schrittansicht`,activityFiles:`{count} Dateien geändert`,activityChanges:`Änderungen ansehen`,activityEmpty:`Noch nichts`},charts:{noData:`Keine Daten`,total:`Summe`,less:`Weniger`,more:`Mehr`,dataTable:`Diagrammdaten`,sequence:`Abfolge`}},gv={common:{save:`Сохранить`,cancel:`Отменить`,delete:`Удалить`,close:`Закрыть`,back:`Назад`,search:`Поиск`,loading:`Загрузка...`,noDataFound:`Данные не найдены`,pageNavigation:`Навигация по страницам`,previous:`Назад`,next:`Вперёд`,notFoundMessage:`Упс! Страница не найдена.`,goHome:`На главную`,openNavigation:`Открыть навигацию`},auth:{signIn:`Войти`,signOut:`Выйти`,connect:`Подключить`,connected:`Подключено`,authenticated:`Авторизован`,notConfigured:`Провайдер "{provider}" не настроен. Проверьте API-ключи.`,notImplemented:`Провайдер не реализует signIn().`},access:{email:`Эл. почта`,emailPlaceholder:`name@company.com`,password:`Пароль`,newPassword:`Новый пароль`,name:`Имя и фамилия`,showPassword:`Показать пароль`,hidePassword:`Скрыть пароль`,or:`или`,continue:`Продолжить`,backToSignIn:`Вернуться ко входу`,emailRequired:`Введите адрес эл. почты.`,emailInvalid:`Введите корректный адрес, например name@company.com.`,passwordRequired:`Введите пароль.`,nameRequired:`Введите имя.`,signInTitle:`Вход`,signInTitleApp:`Вход в {app}`,signInDescription:`С возвращением. Войдите, чтобы продолжить.`,signInSubmit:`Войти`,forgotPassword:`Забыли пароль?`,noAccount:`Нет аккаунта?`,signUpLink:`Создать`,continueWith:`Продолжить с {provider}`,codeRequest:`Прислать код для входа`,usePassword:`Войти с паролем`,useCode:`Прислать код на почту`,signUpTitle:`Создайте аккаунт`,signUpDescription:`Это займёт меньше минуты.`,signUpSubmit:`Создать аккаунт`,haveAccount:`Уже есть аккаунт?`,signInLink:`Войти`,terms:`Я принимаю условия использования и политику конфиденциальности`,termsRequired:`Примите условия, чтобы продолжить.`,passwordRules:`В пароле нужно`,ruleLength:`не менее {min} символов`,ruleNumber:`цифра`,ruleCase:`заглавные и строчные буквы`,ruleSymbol:`символ, например ! или #`,ruleMet:`выполнено`,ruleNotMet:`не хватает`,checkEmailTitle:`Проверьте почту`,checkEmailSignUp:`Мы отправили ссылку на {email}. Откройте её, чтобы активировать аккаунт.`,checkEmailHint:`Не нашли? Проверьте папку «Спам».`,resend:`Отправить ещё раз`,resendIn:`Повторить через {seconds} с`,resent:`Отправлено. Письмо может прийти через минуту.`,useOtherEmail:`Указать другой адрес`,forgotTitle:`Забыли пароль?`,forgotDescription:`Введите адрес эл. почты аккаунта, и мы пришлём ссылку для выбора нового пароля.`,forgotSubmit:`Отправить ссылку`,forgotSent:`Если для {email} есть аккаунт, ссылка для выбора нового пароля уже в пути.`,resetTitle:`Придумайте новый пароль`,resetDescription:`Не используйте пароль, который есть на других сайтах.`,resetDescriptionFor:`Для {email}. Не используйте пароль, который есть на других сайтах.`,resetSubmit:`Сохранить пароль`,resetDoneTitle:`Пароль изменён`,resetDone:`Новый пароль сохранён. Входите с ним.`,linkExpiredTitle:`Ссылка больше не работает`,linkExpired:`Ссылка действует один раз и ограниченное время. Запросите новую.`,requestNewLink:`Запросить новую ссылку`,verifyTitle:`Подтвердите адрес`,verifyPending:`Мы отправили ссылку на {email}. Откройте её, чтобы подтвердить адрес.`,verifyPendingNoEmail:`Мы отправили вам ссылку. Откройте её, чтобы подтвердить адрес.`,verifyChecking:`Подтверждаем адрес…`,verifyDoneTitle:`Адрес подтверждён`,verifyDone:`Аккаунт активен. Можно продолжать.`,verifiedContinue:`Я подтвердил`,notVerifiedYet:`Адрес ещё не подтверждён. Откройте ссылку из нашего письма.`,codeTitle:`Введите код`,codeDescription:`Мы отправили код из {length} цифр на {email}. Он действует несколько минут.`,codeLabel:`Код для входа`,codeDigit:`Цифра {index} из {length}`,codeSubmit:`Подтвердить`,codeNotReceived:`Не пришёл код?`,deniedTitle:`Нет доступа`,denied:`Вы вошли как {user}, но у этого аккаунта нет доступа к приложению. Обратитесь к администратору.`,signInOther:`Войти с другим аккаунтом`,errorGeneric:`Что-то пошло не так. Повторите через минуту.`,errorCredentials:`Неверный адрес или пароль.`,errorEmailInUse:`Аккаунт с этим адресом уже есть. Войдите.`,errorWeakPassword:`Этот пароль слишком простой. Выберите более длинный.`,errorInvalidEmail:`Введите корректный адрес эл. почты.`,errorTooManyRequests:`Слишком много попыток. Подождите несколько минут.`,errorNetwork:`Нет соединения. Проверьте сеть и повторите.`,errorInvalidCode:`Код неверный или устарел.`,errorExpiredLink:`Ссылка устарела или уже использована. Запросите новую.`,errorDisabled:`Аккаунт отключён. Обратитесь к администратору.`,errorCancelled:`Вход был отменён.`,errorNotSupported:`Этот способ входа недоступен.`},form:{headerAdd:`Добавить`,headerEdit:`Редактировать`,buttonSave:`Сохранить`,buttonDelete:`Удалить`,buttonBack:`Назад`,requiredField:`Поле "{field}" обязательно для заполнения`,requiredFieldGeneric:`Обязательные поля не заполнены`,saveSuccess:`Успешно сохранено`,deleteSuccess:`Успешно удалено`,saveError:`Что-то пошло не так. Попробуйте ещё раз.`,noticeRequiredFields:`Заполните обязательные поля перед сохранением.`},grid:{buttonAdd:`Добавить`,deleteConfirm:`Вы уверены, что хотите удалить этот элемент?`,emptyState:`Нет элементов для отображения`,filtersButton:`Фильтры`,filtersPanelTitle:`Фильтры`,filtersClearAll:`Сбросить все`,filtersSelectPlaceholder:`Все`,filtersRangeFrom:`От`,filtersRangeTo:`До`,filtersRangeMin:`Мин`,filtersRangeMax:`Макс`,filtersSelectedCountTemplate:`Выбрано: {count}`,tableView:`Табличный вид`,galleryView:`Вид галереи`,columns:`Столбцы`,fields:`Поля`},select:{placeholder:`Выбрать...`,loading:`Загрузка...`},modal:{save:`Сохранить`,delete:`Удалить`,cancel:`Отменить`,close:`Закрыть`,ok:`Ок`,yes:`Да`,no:`Нет`},upload:{clickOrDrag:`Нажмите или перетащите для загрузки...`,dropToUpload:`Отпустите для загрузки`,uploadMore:`Добавить ещё файлы`,editFileName:`Изменить имя файла`,editorImage:`Редактор изображений`,loaded:`Загружено`,removeFile:`Удалить`,uploadAnother:`Загрузить ещё один файл`,dropToParse:`Отпустите для анализа`,insertFromUrl:`Вставить по URL`,urlPlaceholder:`https://…/image.png`,invalidUrl:`Введите корректный URL`},notifications:{title:`Уведомления`,seeAll:`Смотреть все`,markAllRead:`Отметить все как прочитанные`,empty:`Нет уведомлений`,emptyHint:`Новых уведомлений нет`},code:{copyCode:`Копировать код`,copy:`Копировать`,copied:`Скопировано!`,codeLanguageDefault:`Текст`},table:{noDataFound:`Данные не найдены`,selectAllRows:`Выбрать все строки`,sortBy:`Сортировать по {label}`,sortByCurrent:`Сортировать по {label} ({direction})`,selectRow:`Выбрать строку {key}`,reorderRow:`Переместить строку {key}`},gallery:{selectItem:`Выбрать элемент {key}`},sortableList:{handle:`Переместить элемент {position} из {total}: перетащите его или используйте стрелки вверх и вниз`,moved:`Перемещено на позицию {position} из {total}`},crop:{enableCrop:`Включить обрезку в масштабе {scale}`,variants:`Варианты`,outputFile:`Выходной файл`,active:`Активно`,removeVariant:`Удалить вариант {scale}`,fileName:`Имя файла`,altText:`Альтернативный текст`,altTextPlaceholder:`Опишите это изображение…`},imageEditor:{title:`Редактор изображений`,save:`Сохранить`,undo:`Отменить`,redo:`Повторить`,zoomOut:`Уменьшить`,zoomIn:`Увеличить`,crop:`Обрезать`,flipHorizontal:`Отразить горизонтально`,flipVertical:`Отразить вертикально`,rotate:`Повернуть на 90°`,freeDrawing:`Свободное рисование`,arrow:`Стрелка`,text:`Текст`,rectangle:`Прямоугольник`,circle:`Круг`,triangle:`Треугольник`},prompt:{noProviders:`Нет зарегистрированных AI-провайдеров.`,aiNotConfiguredEdit:`AI не настроен. Вы можете редактировать и сохранять этот промпт.`,aiNotConfiguredRun:`AI не настроен. Запуск этого промпта невозможен.`,aiNotConfiguredShort:`AI не настроен`,toggleOnTitle:`Промпт ВКЛЮЧЁН. Текст используется как шаблон и может быть выполнен.`,toggleOffTitle:`Промпт ВЫКЛЮЧЕН. Текст используется напрямую без AI.`,closeEditor:`Закрыть редактор`,editSettings:`Изменить настройки`,attachFiles:`Прикрепить файлы`,dropFilesHere:`Перетащите файлы сюда, чтобы прикрепить`,modelPricing:`Ввод / вывод, USD за 1 млн токенов`,modelPriceNotFound:`Цена не найдена`,attachmentsNotSupported:`Выбранный AI-провайдер не поддерживает изображения или документы.`,run:`Запустить`,runFailed:`Ошибка выполнения промпта.`,noMatchingCommands:`Нет подходящих команд`,tokenUsage:`Использование токенов`,tokenInput:`Вход: {count} tok`,tokenOutput:`Выход: {count} tok`,tokenContext:`Контекст: {percent}%`,tokenCost:"Стоимость: ~${amount}",tokenTime:`Время: {seconds}с`,tokenUsageEmpty:`Запустите промпт для просмотра статистики.`,hidePreview:`Скрыть предпросмотр`,showPreview:`Показать предпросмотр`,noProvider:`AI-провайдер недоступен для этого промпта.`,noResponse:`AI-провайдер не вернул ответа.`,promptLabel:`Промпт: `,defaultOption:`По умолчанию`,role:`Роль`,language:`Язык`,voice:`Голос`,style:`Стиль`,temperature:`Температура`,stop:`Остановить`,stopping:`Остановка…`},layout:{maxElements:`В строке уже 12 элементов: сначала удалите один.`,noSpace:`Нет места: невозможно сжать элементы для добавления.`,dragToMove:`Перетащить для перемещения`,remove:`Удалить`,dragToResize:`Перетащить для изменения размера`,dragHere:`Перетащите элемент сюда`},sideNav:{expandGroup:`Развернуть`,collapseGroup:`Свернуть`,expandSidebar:`Развернуть боковую панель`,collapseSidebar:`Свернуть боковую панель`},autocomplete:{noResults:`Ничего не найдено`,create:`Создать «{value}»`,createPlaceholder:`Введите или нажмите Enter, чтобы создать...`,remove:`Удалить`},addressAutocomplete:{placeholder:`Поиск адреса...`,noResults:`Нет подходящего адреса`,searching:`Поиск...`,notConfigured:`Поиск адресов не настроен (отсутствует ключ Google Maps API).`,loadError:`Не удалось загрузить поиск адресов.`},errorBoundary:{title:`На этой странице возникла проблема`,description:`При отображении этого содержимого произошла непредвиденная ошибка.`,technicalDetails:`Технические подробности`,debugInformation:`Отладочная информация`,context:`Контекст`,time:`Время`,agent:`Агент`,componentTree:`Дерево компонентов`,copyDebug:`Копировать отладочную информацию`,copied:`Скопировано!`,sendReport:`Отправить отчёт`,sending:`Отправка...`,reportSent:`Отчёт отправлен ✓`,reportFailed:`Ошибка - повторить`,tryAgain:`Повторить`,goHome:`На главную`},themeSwitcher:{title:`Настройка темы`,subtitle:`Токены темы и режим меняются сразу, без перезагрузки.`,colorMode:`Цветовой режим`,light:`Светлый`,dark:`Тёмный`,primaryColor:`Основной цвет`,borderRadius:`Скругление углов`,sharp:`Острые`,rounded:`Скруглённые`,font:`Шрифт`,statusColors:`Цвета статусов`,theme:`Тема`,themeDescription:`Тема из текущего реестра.`,iconLibrary:`Библиотека иконок`,weight:`Толщина`,blue:`Синий`,violet:`Фиолетовый`,green:`Зелёный`,rose:`Розовый`,orange:`Оранжевый`,slate:`Сланцевый`,success:`Успех`,warning:`Предупреждение`,info:`Инфо`,danger:`Опасность`,lucideDescription:`Чистый контурный набор иконок`,phosphorDescription:`Гибкая толщина и стили иконок`,weightThin:`Тонкий`,weightLight:`Лёгкий`,weightRegular:`Обычный`,weightBold:`Жирный`,weightFill:`Заливка`},imageField:{openOriginal:`Открыть оригинал`,crop:`Обрезать`,cropTitle:`Обрезать — {name}`,cropImage:`Обрезать изображение`,editImage:`Редактировать изображение`,generatingVariants:`Создание вариантов…`,responsiveVariants:`Адаптивные варианты`,variantsGenerated:`(создано: {count})`,imageUrl:`URL изображения`,imageUrlHint:`(путь или https://…)`,altText:`Альтернативный текст`,altTextHint:`(доступность и SEO)`,altPlaceholder:`Напр. главное фото товара`,linkUrl:`URL ссылки`,optionalHint:`(необязательно)`,newTab:`Новая вкладка`,sameTab:`Та же вкладка`,insertImage:`Вставить изображение`,insertImages:`Вставить изображения`,include:`Включить`,insert:`Вставить`,insertCount:`Вставить ({count})`},richText:{bold:`Жирный`,italic:`Курсив`,underline:`Подчёркнутый`,strike:`Зачёркнутый`,heading1:`Заголовок 1`,heading2:`Заголовок 2`,heading3:`Заголовок 3`,bulletList:`Маркированный список`,orderedList:`Нумерованный список`,blockquote:`Цитата`,inlineCode:`Встроенный код`,codeBlock:`Блок кода`,link:`Ссылка`,undo:`Отменить`,redo:`Повторить`,clearFormat:`Очистить форматирование`,paragraphStyle:`Стиль абзаца`,normal:`Обычный`,insertTable:`Вставить таблицу`,insertTableSize:`Вставить таблицу {rows} × {cols}`,addRowAbove:`Добавить строку выше`,addRowBelow:`Добавить строку ниже`,addColumnLeft:`Добавить столбец слева`,addColumnRight:`Добавить столбец справа`,deleteRow:`Удалить строку`,deleteColumn:`Удалить столбец`,deleteTable:`Удалить таблицу`,uploadImage:`Загрузить изображение`,uploadDocument:`Загрузить документ`,sourceCode:`Исходный код`,source:`Исходный код: {name}`,words:`Слов: {count}`,chars:`Символов: {count}`,editLink:`Изменить ссылку`,removeLink:`Удалить ссылку`,altPlaceholder:`Напр. фото команды на корпоративном выезде`},tabDynamic:{addTab:`Добавить вкладку`},breadcrumbs:{label:`Навигационная цепочка`},chat:{reasoning:`Рассуждение`,reasoningStreaming:`Рассуждает…`,reasoningFor:`Рассуждал {duration}`,durationSeconds:`{seconds} с`,durationMinutes:`{minutes} мин {seconds} с`,questions:`Вопросы`,questionTab:`Вопрос {index}`,review:`Проверка`,reviewHint:`Проверьте ответы и отправьте их.`,other:`Другое`,otherPlaceholder:`Введите свой ответ`,recommended:`Рекомендуется`,chooseOne:`Выберите один`,chooseMany:`Выберите один или несколько`,keyboardHint:`Клавиши {first}–{last} — выбор, Enter — далее`,textKeyboardHint:`Enter — новая строка, Ctrl/⌘+Enter — далее`,next:`Далее`,back:`Назад`,submit:`Отправить`,noAnswer:`Нет ответа`,answered:`Отвечено`,activityCount:`Шагов: {count}`,activityFailed:`Не удалось: {count}`,activityCommands:`Команды`,activityHide:`Скрыть`,activityLog:`Полный журнал`,activitySteps:`По шагам`,activityFiles:`Изменено файлов: {count}`,activityChanges:`Посмотреть изменения`,activityEmpty:`Пока ничего`},charts:{noData:`Нет данных`,total:`Итого`,less:`Меньше`,more:`Больше`,dataTable:`Данные диаграммы`,sequence:`Последовательность`}},_v={common:{save:`保存`,cancel:`取消`,delete:`删除`,close:`关闭`,back:`返回`,search:`搜索`,loading:`加载中...`,noDataFound:`未找到数据`,pageNavigation:`页面导航`,previous:`上一页`,next:`下一页`,notFoundMessage:`哎呀!页面未找到。`,goHome:`返回首页`,openNavigation:`打开导航`},auth:{signIn:`登录`,signOut:`退出`,connect:`连接`,connected:`已连接`,authenticated:`已认证`,notConfigured:`授权提供商"{provider}"未配置。请检查API密钥。`,notImplemented:`提供商未实现signIn()。`},access:{email:`邮箱`,emailPlaceholder:`name@company.com`,password:`密码`,newPassword:`新密码`,name:`姓名`,showPassword:`显示密码`,hidePassword:`隐藏密码`,or:`或`,continue:`继续`,backToSignIn:`返回登录`,emailRequired:`请输入邮箱。`,emailInvalid:`请输入有效的邮箱地址,例如 name@company.com。`,passwordRequired:`请输入密码。`,nameRequired:`请输入姓名。`,signInTitle:`登录`,signInTitleApp:`登录 {app}`,signInDescription:`欢迎回来,请登录后继续。`,signInSubmit:`登录`,forgotPassword:`忘记密码?`,noAccount:`还没有账户?`,signUpLink:`立即注册`,continueWith:`使用 {provider} 继续`,codeRequest:`通过邮箱发送登录码`,usePassword:`改用密码登录`,useCode:`改为通过邮箱接收验证码`,signUpTitle:`创建账户`,signUpDescription:`不到一分钟即可完成。`,signUpSubmit:`创建账户`,haveAccount:`已有账户?`,signInLink:`登录`,terms:`我接受服务条款和隐私政策`,termsRequired:`请接受条款后继续。`,passwordRules:`密码需要包含`,ruleLength:`至少 {min} 个字符`,ruleNumber:`一个数字`,ruleCase:`大写和小写字母`,ruleSymbol:`一个符号,例如 ! 或 #`,ruleMet:`已满足`,ruleNotMet:`未满足`,checkEmailTitle:`请查收邮件`,checkEmailSignUp:`我们已向 {email} 发送链接,打开它即可激活账户。`,checkEmailHint:`没有找到?请查看垃圾邮件文件夹。`,resend:`重新发送`,resendIn:`{seconds} 秒后可重新发送`,resent:`已发送,可能需要一分钟送达。`,useOtherEmail:`使用其他邮箱`,forgotTitle:`忘记密码?`,forgotDescription:`输入账户邮箱,我们会发送一个设置新密码的链接。`,forgotSubmit:`发送链接`,forgotSent:`如果 {email} 有对应账户,设置新密码的链接已发出。`,resetTitle:`设置新密码`,resetDescription:`请使用未在其他网站使用过的密码。`,resetDescriptionFor:`账户 {email}。请使用未在其他网站使用过的密码。`,resetSubmit:`保存密码`,resetDoneTitle:`密码已更改`,resetDone:`新密码已保存,今后请用它登录。`,linkExpiredTitle:`此链接已失效`,linkExpired:`链接仅能使用一次且有时效,请重新申请。`,requestNewLink:`申请新链接`,verifyTitle:`验证邮箱`,verifyPending:`我们已向 {email} 发送链接,打开它即可验证地址。`,verifyPendingNoEmail:`我们已向你发送链接,打开它即可验证地址。`,verifyChecking:`正在验证邮箱…`,verifyDoneTitle:`邮箱已验证`,verifyDone:`账户已激活,可以继续。`,verifiedContinue:`我已验证`,notVerifiedYet:`邮箱尚未验证,请打开我们发送的邮件中的链接。`,codeTitle:`输入验证码`,codeDescription:`我们已向 {email} 发送 {length} 位验证码,几分钟内有效。`,codeLabel:`登录验证码`,codeDigit:`第 {index} 位,共 {length} 位`,codeSubmit:`验证`,codeNotReceived:`没有收到验证码?`,deniedTitle:`无访问权限`,denied:`你已以 {user} 登录,但此账户无法打开该应用。请联系管理员获取权限。`,signInOther:`使用其他账户登录`,errorGeneric:`出现问题,请稍后重试。`,errorCredentials:`邮箱或密码不正确。`,errorEmailInUse:`该邮箱已有账户,请直接登录。`,errorWeakPassword:`密码太容易被猜到,请设置更长的密码。`,errorInvalidEmail:`请输入有效的邮箱地址。`,errorTooManyRequests:`尝试次数过多,请几分钟后再试。`,errorNetwork:`没有网络连接,请检查网络后重试。`,errorInvalidCode:`验证码不正确或已过期。`,errorExpiredLink:`此链接已过期或已被使用,请重新申请。`,errorDisabled:`此账户已被停用,请联系管理员。`,errorCancelled:`登录在完成前被取消。`,errorNotSupported:`此登录方式不可用。`},form:{headerAdd:`添加`,headerEdit:`编辑`,buttonSave:`保存`,buttonDelete:`删除`,buttonBack:`返回`,requiredField:`字段"{field}"为必填项`,requiredFieldGeneric:`必填字段未填写`,saveSuccess:`保存成功`,deleteSuccess:`删除成功`,saveError:`出了点问题,请重试。`,noticeRequiredFields:`请在保存前填写必填字段。`},grid:{buttonAdd:`添加`,deleteConfirm:`确定要删除此项目吗?`,emptyState:`暂无数据`,filtersButton:`筛选`,filtersPanelTitle:`筛选`,filtersClearAll:`清除全部`,filtersSelectPlaceholder:`全部`,filtersRangeFrom:`从`,filtersRangeTo:`到`,filtersRangeMin:`最小`,filtersRangeMax:`最大`,filtersSelectedCountTemplate:`已选 {count} 项`,tableView:`表格视图`,galleryView:`图库视图`,columns:`列`,fields:`字段`},select:{placeholder:`请选择...`,loading:`加载中...`},modal:{save:`保存`,delete:`删除`,cancel:`取消`,close:`关闭`,ok:`确定`,yes:`是`,no:`否`},upload:{clickOrDrag:`点击或拖拽上传...`,dropToUpload:`松开上传`,uploadMore:`添加更多文件`,editFileName:`编辑文件名`,editorImage:`图片编辑器`,loaded:`已加载`,removeFile:`删除`,uploadAnother:`上传另一个文件`,dropToParse:`松开解析`,insertFromUrl:`通过URL插入`,urlPlaceholder:`https://…/image.png`,invalidUrl:`请输入有效的URL`},notifications:{title:`通知`,seeAll:`查看全部`,markAllRead:`全部标为已读`,empty:`暂无通知`,emptyHint:`你已查看全部通知`},code:{copyCode:`复制代码`,copy:`复制`,copied:`已复制!`,codeLanguageDefault:`文本`},table:{noDataFound:`未找到数据`,selectAllRows:`选择所有行`,sortBy:`按{label}排序`,sortByCurrent:`按{label}排序({direction})`,selectRow:`选择行{key}`,reorderRow:`重排行{key}`},gallery:{selectItem:`选择项目{key}`},sortableList:{handle:`移动第 {position} 项(共 {total} 项):拖动它,或使用上下方向键`,moved:`已移到第 {position} 位(共 {total} 位)`},crop:{enableCrop:`启用{scale}比例裁剪`,variants:`变体`,outputFile:`输出文件`,active:`活跃`,removeVariant:`删除变体{scale}`,fileName:`文件名`,altText:`替代文本`,altTextPlaceholder:`描述此图片…`},imageEditor:{title:`图片编辑器`,save:`保存`,undo:`撤销`,redo:`重做`,zoomOut:`缩小`,zoomIn:`放大`,crop:`裁剪`,flipHorizontal:`水平翻转`,flipVertical:`垂直翻转`,rotate:`旋转90°`,freeDrawing:`自由绘制`,arrow:`箭头`,text:`文本`,rectangle:`矩形`,circle:`圆形`,triangle:`三角形`},prompt:{noProviders:`没有已注册的AI提供商。`,aiNotConfiguredEdit:`AI未配置。您仍然可以编辑并保存此提示词。`,aiNotConfiguredRun:`AI未配置。无法运行此提示词。`,aiNotConfiguredShort:`AI未配置`,toggleOnTitle:`提示词已启用。文本用作模板并可执行。`,toggleOffTitle:`提示词已禁用。文本直接使用,不经AI处理。`,closeEditor:`关闭编辑器`,editSettings:`编辑设置`,attachFiles:`附加文件`,dropFilesHere:`拖放文件以附加`,modelPricing:`输入 / 输出,每百万 token 美元价格`,modelPriceNotFound:`未找到价格`,attachmentsNotSupported:`所选AI提供商不支持图像或文档附件。`,run:`运行`,runFailed:`提示词执行失败。`,noMatchingCommands:`没有匹配的命令`,tokenUsage:`Token用量`,tokenInput:`输入:{count} tok`,tokenOutput:`输出:{count} tok`,tokenContext:`上下文:{percent}%`,tokenCost:"费用:~${amount}",tokenTime:`时间:{seconds}秒`,tokenUsageEmpty:`运行提示词以查看Token用量。`,hidePreview:`隐藏预览`,showPreview:`显示解析预览`,noProvider:`此提示词没有可用的AI提供商。`,noResponse:`AI提供商未返回任何响应。`,promptLabel:`Prompt: `,defaultOption:`默认`,role:`角色`,language:`语言`,voice:`语音`,style:`风格`,temperature:`温度`,stop:`停止`,stopping:`正在停止…`},layout:{maxElements:`行中已有12个元素:请先删除一个。`,noSpace:`空间不足:无法缩小元素以插入此字段。`,dragToMove:`拖拽移动`,remove:`删除`,dragToResize:`拖拽调整大小`,dragHere:`拖拽元素到此处`},sideNav:{expandGroup:`展开`,collapseGroup:`收起`,expandSidebar:`展开侧边栏`,collapseSidebar:`收起侧边栏`},autocomplete:{noResults:`没有结果`,create:`创建「{value}」`,createPlaceholder:`输入或按回车创建...`,remove:`移除`},addressAutocomplete:{placeholder:`搜索地址...`,noResults:`未找到匹配地址`,searching:`搜索中...`,notConfigured:`地址搜索未配置(缺少 Google Maps API 密钥)。`,loadError:`无法加载地址搜索。`},errorBoundary:{title:`此页面遇到问题`,description:`渲染此内容时发生意外错误。`,technicalDetails:`技术详情`,debugInformation:`调试信息`,context:`上下文`,time:`时间`,agent:`用户代理`,componentTree:`组件树`,copyDebug:`复制调试信息`,copied:`已复制!`,sendReport:`发送报告`,sending:`正在发送...`,reportSent:`报告已发送 ✓`,reportFailed:`失败 - 重试`,tryAgain:`重试`,goHome:`返回首页`},themeSwitcher:{title:`自定义主题`,subtitle:`实时调整主题令牌和模式,无需重新加载。`,colorMode:`颜色模式`,light:`浅色`,dark:`深色`,primaryColor:`主色`,borderRadius:`圆角`,sharp:`直角`,rounded:`圆润`,font:`字体`,statusColors:`状态颜色`,theme:`主题`,themeDescription:`当前注册表中可用的主题。`,iconLibrary:`图标库`,weight:`粗细`,blue:`蓝色`,violet:`紫色`,green:`绿色`,rose:`玫红`,orange:`橙色`,slate:`石板灰`,success:`成功`,warning:`警告`,info:`信息`,danger:`危险`,lucideDescription:`简洁的线性图标集`,phosphorDescription:`灵活的图标粗细和样式`,weightThin:`极细`,weightLight:`细`,weightRegular:`常规`,weightBold:`粗`,weightFill:`填充`},imageField:{openOriginal:`打开原图`,crop:`裁剪`,cropTitle:`裁剪 — {name}`,cropImage:`裁剪图片`,editImage:`编辑图片`,generatingVariants:`正在生成变体…`,responsiveVariants:`响应式变体`,variantsGenerated:`(已生成 {count} 个)`,imageUrl:`图片 URL`,imageUrlHint:`(路径或 https://…)`,altText:`替代文本`,altTextHint:`(无障碍与 SEO)`,altPlaceholder:`例如:产品主图`,linkUrl:`链接 URL`,optionalHint:`(可选)`,newTab:`新标签页`,sameTab:`当前标签页`,insertImage:`插入图片`,insertImages:`插入多张图片`,include:`包含`,insert:`插入`,insertCount:`插入({count})`},richText:{bold:`粗体`,italic:`斜体`,underline:`下划线`,strike:`删除线`,heading1:`标题 1`,heading2:`标题 2`,heading3:`标题 3`,bulletList:`无序列表`,orderedList:`有序列表`,blockquote:`引用`,inlineCode:`行内代码`,codeBlock:`代码块`,link:`链接`,undo:`撤销`,redo:`重做`,clearFormat:`清除格式`,paragraphStyle:`段落样式`,normal:`正文`,insertTable:`插入表格`,insertTableSize:`插入 {rows} × {cols} 表格`,addRowAbove:`在上方插入行`,addRowBelow:`在下方插入行`,addColumnLeft:`在左侧插入列`,addColumnRight:`在右侧插入列`,deleteRow:`删除行`,deleteColumn:`删除列`,deleteTable:`删除表格`,uploadImage:`上传图片`,uploadDocument:`上传文档`,sourceCode:`源代码`,source:`{name} 源代码`,words:`{count} 个词`,chars:`{count} 个字符`,editLink:`编辑链接`,removeLink:`移除链接`,altPlaceholder:`例如:公司团建时的团队合影`},tabDynamic:{addTab:`添加标签页`},breadcrumbs:{label:`面包屑导航`},chat:{reasoning:`推理`,reasoningStreaming:`正在推理…`,reasoningFor:`推理了 {duration}`,durationSeconds:`{seconds} 秒`,durationMinutes:`{minutes} 分 {seconds} 秒`,questions:`问题`,questionTab:`问题 {index}`,review:`检查`,reviewHint:`检查你的回答,然后提交。`,other:`其他`,otherPlaceholder:`输入你的回答`,recommended:`推荐`,chooseOne:`选择一项`,chooseMany:`选择一项或多项`,keyboardHint:`按 {first}–{last} 选择,按 Enter 继续`,textKeyboardHint:`按 Enter 换行,按 Ctrl/⌘+Enter 继续`,next:`下一步`,back:`返回`,submit:`提交`,noAnswer:`未回答`,answered:`已回答`,activityCount:`{count} 步`,activityFailed:`{count} 个失败`,activityCommands:`命令`,activityHide:`隐藏`,activityLog:`完整日志`,activitySteps:`按步骤查看`,activityFiles:`已修改 {count} 个文件`,activityChanges:`查看更改`,activityEmpty:`暂无内容`},charts:{noData:`暂无数据`,total:`合计`,less:`较少`,more:`较多`,dataTable:`图表数据`,sequence:`顺序`}},vv={common:{save:`حفظ`,cancel:`إلغاء`,delete:`حذف`,close:`إغلاق`,back:`رجوع`,search:`بحث`,loading:`جاري التحميل...`,noDataFound:`لم يتم العثور على بيانات`,pageNavigation:`تنقل الصفحات`,previous:`السابق`,next:`التالي`,notFoundMessage:`عفوًا! الصفحة غير موجودة.`,goHome:`الذهاب إلى الرئيسية`,openNavigation:`فتح التنقل`},auth:{signIn:`تسجيل الدخول`,signOut:`تسجيل الخروج`,connect:`ربط`,connected:`مرتبط`,authenticated:`موثق`,notConfigured:`مزود المصادقة "{provider}" غير مكوّن. يرجى التحقق من مفاتيح API.`,notImplemented:`المزود لا ينفّذ signIn().`},access:{email:`البريد الإلكتروني`,emailPlaceholder:`name@company.com`,password:`كلمة المرور`,newPassword:`كلمة المرور الجديدة`,name:`الاسم الكامل`,showPassword:`إظهار كلمة المرور`,hidePassword:`إخفاء كلمة المرور`,or:`أو`,continue:`متابعة`,backToSignIn:`العودة إلى تسجيل الدخول`,emailRequired:`أدخل بريدك الإلكتروني.`,emailInvalid:`أدخل عنوان بريد صالحًا، مثل name@company.com.`,passwordRequired:`أدخل كلمة المرور.`,nameRequired:`أدخل اسمك.`,signInTitle:`تسجيل الدخول`,signInTitleApp:`تسجيل الدخول إلى {app}`,signInDescription:`مرحبًا بعودتك. سجّل الدخول للمتابعة.`,signInSubmit:`تسجيل الدخول`,forgotPassword:`نسيت كلمة المرور؟`,noAccount:`ليس لديك حساب؟`,signUpLink:`أنشئ حسابًا`,continueWith:`المتابعة باستخدام {provider}`,codeRequest:`أرسل لي رمز الدخول بالبريد`,usePassword:`تسجيل الدخول بكلمة المرور بدلًا من ذلك`,useCode:`أرسل لي رمزًا بالبريد بدلًا من ذلك`,signUpTitle:`أنشئ حسابك`,signUpDescription:`يستغرق الأمر أقل من دقيقة.`,signUpSubmit:`إنشاء الحساب`,haveAccount:`لديك حساب بالفعل؟`,signInLink:`تسجيل الدخول`,terms:`أوافق على شروط الخدمة وسياسة الخصوصية`,termsRequired:`وافق على الشروط للمتابعة.`,passwordRules:`تحتاج كلمة المرور إلى`,ruleLength:`{min} أحرف على الأقل`,ruleNumber:`رقم`,ruleCase:`أحرف كبيرة وصغيرة`,ruleSymbol:`رمز، مثل ! أو #`,ruleMet:`مكتمل`,ruleNotMet:`ناقص`,checkEmailTitle:`تحقق من بريدك الإلكتروني`,checkEmailSignUp:`أرسلنا رابطًا إلى {email}. افتحه لتفعيل حسابك.`,checkEmailHint:`لم تجده؟ تحقق من مجلد الرسائل غير المرغوب فيها.`,resend:`إعادة الإرسال`,resendIn:`إعادة الإرسال بعد {seconds} ث`,resent:`تم الإرسال. قد يستغرق وصوله دقيقة.`,useOtherEmail:`استخدام بريد آخر`,forgotTitle:`نسيت كلمة المرور؟`,forgotDescription:`أدخل البريد الإلكتروني لحسابك وسنرسل لك رابطًا لاختيار كلمة مرور جديدة.`,forgotSubmit:`إرسال الرابط`,forgotSent:`إذا كان هناك حساب لـ {email}، فإن رابط اختيار كلمة مرور جديدة في الطريق.`,resetTitle:`اختر كلمة مرور جديدة`,resetDescription:`استخدم كلمة مرور لا تستخدمها في مواقع أخرى.`,resetDescriptionFor:`للحساب {email}. استخدم كلمة مرور لا تستخدمها في مواقع أخرى.`,resetSubmit:`حفظ كلمة المرور`,resetDoneTitle:`تم تغيير كلمة المرور`,resetDone:`تم حفظ كلمة المرور الجديدة. استخدمها لتسجيل الدخول من الآن.`,linkExpiredTitle:`هذا الرابط لم يعد يعمل`,linkExpired:`الروابط تعمل مرة واحدة ولمدة محدودة. اطلب رابطًا جديدًا.`,requestNewLink:`اطلب رابطًا جديدًا`,verifyTitle:`أكّد بريدك الإلكتروني`,verifyPending:`أرسلنا رابطًا إلى {email}. افتحه لتأكيد العنوان.`,verifyPendingNoEmail:`أرسلنا لك رابطًا. افتحه لتأكيد العنوان.`,verifyChecking:`جارٍ تأكيد بريدك الإلكتروني…`,verifyDoneTitle:`تم تأكيد البريد الإلكتروني`,verifyDone:`حسابك مفعّل. يمكنك المتابعة.`,verifiedContinue:`لقد أكّدته`,notVerifiedYet:`لم يتم تأكيد بريدك بعد. افتح الرابط في الرسالة التي أرسلناها.`,codeTitle:`أدخل الرمز`,codeDescription:`أرسلنا رمزًا من {length} أرقام إلى {email}. يعمل لبضع دقائق.`,codeLabel:`رمز الدخول`,codeDigit:`الرقم {index} من {length}`,codeSubmit:`تحقق`,codeNotReceived:`لم يصلك الرمز؟`,deniedTitle:`لا يوجد وصول`,denied:`سجّلت الدخول باسم {user}، لكن هذا الحساب لا يمكنه فتح التطبيق. اطلب الوصول من المسؤول.`,signInOther:`تسجيل الدخول بحساب آخر`,errorGeneric:`حدث خطأ ما. حاول مرة أخرى بعد قليل.`,errorCredentials:`البريد الإلكتروني أو كلمة المرور غير صحيحة.`,errorEmailInUse:`يوجد حساب بهذا البريد بالفعل. سجّل الدخول.`,errorWeakPassword:`كلمة المرور هذه سهلة التخمين. اختر كلمة أطول.`,errorInvalidEmail:`أدخل عنوان بريد إلكتروني صالحًا.`,errorTooManyRequests:`محاولات كثيرة جدًا. انتظر بضع دقائق ثم حاول مجددًا.`,errorNetwork:`لا يوجد اتصال. تحقق من الشبكة وحاول مجددًا.`,errorInvalidCode:`الرمز غير صحيح أو منتهي الصلاحية.`,errorExpiredLink:`انتهت صلاحية هذا الرابط أو تم استخدامه. اطلب رابطًا جديدًا.`,errorDisabled:`هذا الحساب معطّل. تواصل مع المسؤول.`,errorCancelled:`تم إلغاء تسجيل الدخول قبل اكتماله.`,errorNotSupported:`طريقة تسجيل الدخول هذه غير متاحة.`},form:{headerAdd:`إضافة`,headerEdit:`تعديل`,buttonSave:`حفظ`,buttonDelete:`حذف`,buttonBack:`رجوع`,requiredField:`الحقل "{field}" إلزامي`,requiredFieldGeneric:`الحقول الإلزامية غير مكتملة`,saveSuccess:`تم الحفظ بنجاح`,deleteSuccess:`تم الحذف بنجاح`,saveError:`حدث خطأ ما. حاول مرة أخرى.`,noticeRequiredFields:`يرجى ملء الحقول الإلزامية قبل الحفظ.`},grid:{buttonAdd:`إضافة`,deleteConfirm:`هل أنت متأكد من حذف هذا العنصر؟`,emptyState:`لا توجد عناصر للعرض`,filtersButton:`الفلاتر`,filtersPanelTitle:`الفلاتر`,filtersClearAll:`مسح الكل`,filtersSelectPlaceholder:`الكل`,filtersRangeFrom:`من`,filtersRangeTo:`إلى`,filtersRangeMin:`أدنى`,filtersRangeMax:`أقصى`,filtersSelectedCountTemplate:`تم اختيار {count}`,tableView:`عرض الجدول`,galleryView:`عرض المعرض`,columns:`الأعمدة`,fields:`الحقول`},select:{placeholder:`اختر...`,loading:`جارٍ التحميل...`},modal:{save:`حفظ`,delete:`حذف`,cancel:`إلغاء`,close:`إغلاق`,ok:`موافق`,yes:`نعم`,no:`لا`},upload:{clickOrDrag:`انقر أو اسحب للتحميل...`,dropToUpload:`أفلت للتحميل`,uploadMore:`إضافة المزيد من الملفات`,editFileName:`تعديل اسم الملف`,editorImage:`محرر الصور`,loaded:`محمّل`,removeFile:`إزالة`,uploadAnother:`تحميل ملف آخر`,dropToParse:`أفلت للتحليل`,insertFromUrl:`إدراج من رابط`,urlPlaceholder:`https://…/image.png`,invalidUrl:`أدخل رابطًا صالحًا`},notifications:{title:`الإشعارات`,seeAll:`عرض الكل`,markAllRead:`تعليم الكل كمقروء`,empty:`لا توجد إشعارات`,emptyHint:`لا جديد لديك`},code:{copyCode:`نسخ الكود`,copy:`نسخ`,copied:`تم النسخ!`,codeLanguageDefault:`نص`},table:{noDataFound:`لم يتم العثور على بيانات`,selectAllRows:`تحديد جميع الصفوف`,sortBy:`ترتيب حسب {label}`,sortByCurrent:`ترتيب حسب {label} ({direction})`,selectRow:`تحديد الصف {key}`,reorderRow:`إعادة ترتيب الصف {key}`},gallery:{selectItem:`تحديد العنصر {key}`},sortableList:{handle:`نقل العنصر {position} من {total}: اسحبه أو استخدم السهمين لأعلى ولأسفل`,moved:`نُقل إلى الموضع {position} من {total}`},crop:{enableCrop:`تفعيل الاقتصاص بمقياس {scale}`,variants:`المتغيرات`,outputFile:`ملف الإخراج`,active:`نشط`,removeVariant:`إزالة المتغير {scale}`,fileName:`اسم الملف`,altText:`النص البديل`,altTextPlaceholder:`صف هذه الصورة…`},imageEditor:{title:`محرر الصور`,save:`حفظ`,undo:`تراجع`,redo:`إعادة`,zoomOut:`تصغير`,zoomIn:`تكبير`,crop:`اقتصاص`,flipHorizontal:`قلب أفقي`,flipVertical:`قلب رأسي`,rotate:`تدوير 90°`,freeDrawing:`رسم حر`,arrow:`سهم`,text:`نص`,rectangle:`مستطيل`,circle:`دائرة`,triangle:`مثلث`},prompt:{noProviders:`لا توجد مزودات AI مسجّلة.`,aiNotConfiguredEdit:`AI غير مكوّن. يمكنك تعديل وحفظ هذا الأمر.`,aiNotConfiguredRun:`AI غير مكوّن. لا يمكن تشغيل هذا الأمر.`,aiNotConfiguredShort:`AI غير مكوّن`,toggleOnTitle:`الأمر مفعّل. النص يُستخدم كقالب ويمكن تشغيله.`,toggleOffTitle:`الأمر معطّل. النص يُستخدم مباشرةً دون معالجة AI.`,closeEditor:`إغلاق المحرر`,editSettings:`تعديل الإعدادات`,attachFiles:`إرفاق الملفات`,dropFilesHere:`أفلت الملفات هنا لإرفاقها`,modelPricing:`الإدخال / الإخراج، دولار أمريكي لكل مليون رمز`,modelPriceNotFound:`السعر غير متوفر`,attachmentsNotSupported:`مزوّد AI المحدد لا يدعم مرفقات الصور أو المستندات.`,run:`تشغيل`,runFailed:`فشل تنفيذ الأمر.`,noMatchingCommands:`لا توجد أوامر مطابقة`,tokenUsage:`استخدام الرموز`,tokenInput:`دخل: {count} tok`,tokenOutput:`خرج: {count} tok`,tokenContext:`السياق: {percent}%`,tokenCost:"التكلفة: ~${amount}",tokenTime:`الوقت: {seconds}ث`,tokenUsageEmpty:`شغّل الأمر لعرض إحصائيات الرموز.`,hidePreview:`إخفاء المعاينة`,showPreview:`عرض المعاينة المحلولة`,noProvider:`لا يوجد مزود AI متاح لهذا الأمر.`,noResponse:`لم يُرجع مزود AI أي استجابة.`,promptLabel:`أمر: `,defaultOption:`افتراضي`,role:`الدور`,language:`اللغة`,voice:`الصوت`,style:`الأسلوب`,temperature:`درجة الحرارة`,stop:`إيقاف`,stopping:`جارٍ الإيقاف…`},layout:{maxElements:`الصف يحتوي بالفعل على 12 عنصرًا: احذف عنصرًا أولاً.`,noSpace:`لا مساحة: لا يمكن تصغير العناصر لإضافة هذا الحقل.`,dragToMove:`اسحب للتحريك`,remove:`إزالة`,dragToResize:`اسحب لتغيير الحجم`,dragHere:`اسحب عنصرًا إلى هنا`},sideNav:{expandGroup:`توسيع`,collapseGroup:`طي`,expandSidebar:`توسيع الشريط الجانبي`,collapseSidebar:`طي الشريط الجانبي`},autocomplete:{noResults:`لا توجد نتائج`,create:`إنشاء «{value}»`,createPlaceholder:`اكتب أو اضغط Enter للإنشاء...`,remove:`إزالة`},addressAutocomplete:{placeholder:`ابحث عن عنوان...`,noResults:`لا يوجد عنوان مطابق`,searching:`جارٍ البحث...`,notConfigured:`البحث عن العناوين غير مُعد (مفتاح Google Maps API مفقود).`,loadError:`تعذر تحميل البحث عن العناوين.`},errorBoundary:{title:`واجهت هذه الصفحة مشكلة`,description:`حدث خطأ غير متوقع أثناء عرض هذا المحتوى.`,technicalDetails:`التفاصيل التقنية`,debugInformation:`معلومات التصحيح`,context:`السياق`,time:`الوقت`,agent:`الوكيل`,componentTree:`شجرة المكونات`,copyDebug:`نسخ معلومات التصحيح`,copied:`تم النسخ!`,sendReport:`إرسال التقرير`,sending:`جارٍ الإرسال...`,reportSent:`تم إرسال التقرير ✓`,reportFailed:`فشل - أعد المحاولة`,tryAgain:`إعادة المحاولة`,goHome:`الذهاب إلى الرئيسية`},themeSwitcher:{title:`تخصيص السمة`,subtitle:`رموز السمة وأوضاعها مباشرةً دون إعادة تحميل.`,colorMode:`وضع الألوان`,light:`فاتح`,dark:`داكن`,primaryColor:`اللون الأساسي`,borderRadius:`استدارة الحواف`,sharp:`حادة`,rounded:`مستديرة`,font:`الخط`,statusColors:`ألوان الحالة`,theme:`السمة`,themeDescription:`سمة متاحة في السجل الحالي.`,iconLibrary:`مكتبة الأيقونات`,weight:`السماكة`,blue:`أزرق`,violet:`بنفسجي`,green:`أخضر`,rose:`وردي`,orange:`برتقالي`,slate:`رمادي أردوازي`,success:`نجاح`,warning:`تحذير`,info:`معلومات`,danger:`خطر`,lucideDescription:`مجموعة أيقونات خطية نظيفة`,phosphorDescription:`سماكات وأنماط أيقونات مرنة`,weightThin:`رفيع`,weightLight:`خفيف`,weightRegular:`عادي`,weightBold:`عريض`,weightFill:`مملوء`},imageField:{openOriginal:`فتح الأصل`,crop:`قص`,cropTitle:`قص — {name}`,cropImage:`قص الصورة`,editImage:`تعديل الصورة`,generatingVariants:`جارٍ إنشاء النسخ…`,responsiveVariants:`نسخ متجاوبة`,variantsGenerated:`(تم إنشاء {count})`,imageUrl:`رابط الصورة`,imageUrlHint:`(مسار أو https://…)`,altText:`النص البديل`,altTextHint:`(إمكانية الوصول وتحسين محركات البحث)`,altPlaceholder:`مثال: الصورة الرئيسية للمنتج`,linkUrl:`رابط الوصلة`,optionalHint:`(اختياري)`,newTab:`علامة تبويب جديدة`,sameTab:`نفس علامة التبويب`,insertImage:`إدراج صورة`,insertImages:`إدراج صور`,include:`تضمين`,insert:`إدراج`,insertCount:`إدراج ({count})`},richText:{bold:`عريض`,italic:`مائل`,underline:`تسطير`,strike:`يتوسطه خط`,heading1:`عنوان 1`,heading2:`عنوان 2`,heading3:`عنوان 3`,bulletList:`قائمة نقطية`,orderedList:`قائمة مرقمة`,blockquote:`اقتباس`,inlineCode:`رمز ضمني`,codeBlock:`كتلة رمز`,link:`رابط`,undo:`تراجع`,redo:`إعادة`,clearFormat:`مسح التنسيق`,paragraphStyle:`نمط الفقرة`,normal:`عادي`,insertTable:`إدراج جدول`,insertTableSize:`إدراج جدول {rows} × {cols}`,addRowAbove:`إضافة صف أعلى`,addRowBelow:`إضافة صف أسفل`,addColumnLeft:`إضافة عمود يسارًا`,addColumnRight:`إضافة عمود يمينًا`,deleteRow:`حذف الصف`,deleteColumn:`حذف العمود`,deleteTable:`حذف الجدول`,uploadImage:`رفع صورة`,uploadDocument:`رفع مستند`,sourceCode:`الشيفرة المصدرية`,source:`مصدر {name}`,words:`{count} كلمة`,chars:`{count} حرف`,editLink:`تعديل الرابط`,removeLink:`إزالة الرابط`,altPlaceholder:`مثال: صورة الفريق في رحلة الشركة`},tabDynamic:{addTab:`إضافة علامة تبويب`},breadcrumbs:{label:`مسار التنقل`},chat:{reasoning:`التفكير`,reasoningStreaming:`يفكر…`,reasoningFor:`فكّر لمدة {duration}`,durationSeconds:`{seconds} ث`,durationMinutes:`{minutes} د {seconds} ث`,questions:`الأسئلة`,questionTab:`السؤال {index}`,review:`المراجعة`,reviewHint:`راجع إجاباتك ثم أرسلها.`,other:`أخرى`,otherPlaceholder:`اكتب إجابتك`,recommended:`موصى به`,chooseOne:`اختر واحدًا`,chooseMany:`اختر واحدًا أو أكثر`,keyboardHint:`المفاتيح {first}–{last} للاختيار، Enter للمتابعة`,textKeyboardHint:`Enter لسطر جديد، Ctrl/⌘+Enter للمتابعة`,next:`التالي`,back:`رجوع`,submit:`إرسال`,noAnswer:`لا توجد إجابة`,answered:`تمت الإجابة`,activityCount:`{count} خطوات`,activityFailed:`{count} فشلت`,activityCommands:`الأوامر`,activityHide:`إخفاء`,activityLog:`السجل الكامل`,activitySteps:`عرض الخطوات`,activityFiles:`{count} ملفات معدلة`,activityChanges:`عرض التغييرات`,activityEmpty:`لا شيء بعد`},charts:{noData:`لا توجد بيانات`,total:`الإجمالي`,less:`أقل`,more:`أكثر`,dataTable:`بيانات المخطط`,sequence:`التسلسل`}},yv=e.n({ar:()=>vv,de:()=>hv,en:()=>it,it:()=>mv,ru:()=>gv,zh:()=>_v});function bv({onSignUp:e,onResendVerification:t,askName:r=!0,terms:i,passwordRules:a={},providers:o=[],onProviderSignIn:s,signInLink:c,resendSeconds:l=30,title:u,description:d,onSignedUp:f,errorMessage:p,brand:m,toolbar:h,footer:g,bare:_,className:v}){let y=yl(),[b,x]=(0,n.useState)(``),[S,C]=(0,n.useState)(``),[w,T]=(0,n.useState)(``),[E,D]=(0,n.useState)(!1),[O,k]=(0,n.useState)({}),[A,j]=(0,n.useState)(null),[M,N]=(0,n.useState)(null),[P,F]=(0,n.useState)(null),I=Tl(p),L=Tl(p),[R,z]=Al(l),B=(0,n.useRef)(null),ee={brand:m,toolbar:h,footer:g,bare:_,className:v};if(A)return n.default.createElement(or,{...ee,icon:`mail`,title:y.checkEmailTitle,description:n.default.createElement(Yl,{text:J(y.checkEmailSignUp,{email:A}),email:A}),below:n.default.createElement(Hl,{text:y.haveAccount,link:c,label:y.signInLink})},n.default.createElement(`div`,{className:`space-y-4 text-center text-sm text-muted-foreground`},n.default.createElement(`p`,null,y.checkEmailHint),n.default.createElement(Il,{message:L.error}),n.default.createElement(Ll,{message:M}),n.default.createElement(`div`,{className:`flex flex-col items-center gap-2`},t&&n.default.createElement(Bl,{disabled:R>0||L.pending,onClick:async()=>{N(null),(await L.run(()=>t(A))).ok&&(N(y.resent),z())}},R>0?J(y.resendIn,{seconds:R}):y.resend),n.default.createElement(Bl,{onClick:()=>{j(null),N(null)}},y.useOtherEmail))));let V=e=>{O[e]&&k(t=>({...t,[e]:void 0}))},H=async t=>{t.preventDefault();let n=Ol(w,a,y).some(e=>!e.met),o={name:r&&!b.trim()?y.nameRequired:void 0,email:Dl(S,y),password:w?n?y.errorWeakPassword:void 0:y.passwordRequired,terms:i&&!E?y.termsRequired:void 0};if(k(o),Object.values(o).some(Boolean)){kl(B.current);return}let s=S.trim(),c=await I.run(()=>e({...r?{name:b.trim()}:{},email:s,password:w}));if(!c.ok)return;let l=c.value;l&&typeof l==`object`&&l.needsEmailVerification?(z(),j(s)):f?.()},U=async e=>{if(!s)return;F(e);let t=await I.run(()=>s(e));F(null),t.ok&&f?.()},te=o.length>0&&!!s;return n.default.createElement(or,{...ee,title:u??y.signUpTitle,description:d??y.signUpDescription,below:n.default.createElement(Hl,{text:y.haveAccount,link:c,label:y.signInLink})},n.default.createElement(`div`,{className:`space-y-6`},te&&n.default.createElement(n.default.Fragment,null,n.default.createElement(Kl,{providers:o,onSelect:U,pending:P,disabled:I.pending}),n.default.createElement(Vl,{label:y.or})),n.default.createElement(`form`,{ref:B,className:`space-y-4`,noValidate:!0,onSubmit:H},r&&n.default.createElement(Ml,{label:y.name,name:`name`,value:b,onChange:e=>{x(e),V(`name`)},autoComplete:`name`,error:O.name,autoFocus:!te,required:!0}),n.default.createElement(Ml,{label:y.email,type:`email`,name:`email`,value:S,onChange:e=>{C(e),V(`email`)},autoComplete:`email`,autoCapitalize:`none`,spellCheck:!1,error:O.email,autoFocus:!r&&!te,required:!0}),n.default.createElement(Nl,{label:y.password,name:`new-password`,value:w,onChange:e=>{T(e),V(`password`)},autoComplete:`new-password`,error:O.password,rules:a,required:!0}),i&&n.default.createElement(`div`,{className:`space-y-1.5`},n.default.createElement(`label`,{className:`flex cursor-pointer items-start gap-2.5 text-sm text-foreground`},n.default.createElement(`input`,{type:`checkbox`,checked:E,onChange:e=>{D(e.target.checked),V(`terms`)},"aria-invalid":O.terms?!0:void 0,"aria-describedby":O.terms?`signup-terms-error`:void 0,className:`mt-0.5 h-4 w-4 shrink-0 cursor-pointer rounded-sm border border-input accent-[hsl(var(--rf-primary))] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`}),n.default.createElement(`span`,{className:`leading-snug`},i===!0?y.terms:i)),O.terms&&n.default.createElement(`p`,{id:`signup-terms-error`,className:`text-sm text-foreground`},O.terms)),n.default.createElement(Il,{message:I.error}),n.default.createElement(Pl,{pending:I.pending&&!P},y.signUpSubmit))))}function xv({onSendReset:e,signInLink:t,defaultEmail:r=``,resendSeconds:i=30,title:a,description:o,errorMessage:s,brand:c,toolbar:l,footer:u,bare:d,className:f}){let p=yl(),[m,h]=(0,n.useState)(r),[g,_]=(0,n.useState)(),[v,y]=(0,n.useState)(null),[b,x]=(0,n.useState)(null),S=Tl(s),[C,w]=Al(i),T=(0,n.useRef)(null),E={brand:c,toolbar:l,footer:u,bare:d,className:f},D=t&&n.default.createElement(`p`,{className:`text-center text-sm`},n.default.createElement(zl,{to:t},p.backToSignIn)),O=async t=>{x(null),(await S.run(()=>e(t))).ok&&(w(),v&&x(p.resent),y(t))};return v?n.default.createElement(or,{...E,icon:`mail`,title:p.checkEmailTitle,description:n.default.createElement(Yl,{text:J(p.forgotSent,{email:v}),email:v}),below:D},n.default.createElement(`div`,{className:`space-y-4 text-center text-sm text-muted-foreground`},n.default.createElement(`p`,null,p.checkEmailHint),n.default.createElement(Il,{message:S.error}),n.default.createElement(Ll,{message:b}),n.default.createElement(`div`,{className:`flex flex-col items-center gap-2`},n.default.createElement(Bl,{disabled:C>0||S.pending,onClick:()=>void O(v)},C>0?J(p.resendIn,{seconds:C}):p.resend),n.default.createElement(Bl,{onClick:()=>{y(null),x(null),S.clear()}},p.useOtherEmail)))):n.default.createElement(or,{...E,title:a??p.forgotTitle,description:o??p.forgotDescription,below:D},n.default.createElement(`form`,{ref:T,className:`space-y-4`,noValidate:!0,onSubmit:async e=>{e.preventDefault();let t=Dl(m,p);if(_(t),t){kl(T.current);return}await O(m.trim())}},n.default.createElement(Ml,{label:p.email,type:`email`,name:`email`,value:m,onChange:e=>{h(e),_(void 0)},autoComplete:`email`,autoCapitalize:`none`,spellCheck:!1,error:g,autoFocus:!0,required:!0}),n.default.createElement(Il,{message:S.error}),n.default.createElement(Pl,{pending:S.pending},p.forgotSubmit)))}function Sv({onResetPassword:e,email:t,invalidLink:r,passwordRules:i={},signInLink:a,requestNewLink:o,title:s,description:c,onDone:l,errorMessage:u,brand:d,toolbar:f,footer:p,bare:m,className:h}){let g=yl(),[_,v]=(0,n.useState)(``),[y,b]=(0,n.useState)(),[x,S]=(0,n.useState)(!1),C=Tl(u),w=(0,n.useRef)(null),T={brand:d,toolbar:f,footer:p,bare:m,className:h},E=a&&n.default.createElement(`p`,{className:`text-center text-sm`},n.default.createElement(zl,{to:a},g.backToSignIn));return r||C.reason===`expiredLink`?n.default.createElement(or,{...T,icon:`link-break`,tone:`warning`,title:g.linkExpiredTitle,description:g.linkExpired,below:E},o&&n.default.createElement(Cv,{to:o},g.requestNewLink)):x?n.default.createElement(or,{...T,icon:`check-circle`,tone:`success`,title:g.resetDoneTitle,description:g.resetDone},a&&n.default.createElement(Cv,{to:a},g.signInLink)):n.default.createElement(or,{...T,title:s??g.resetTitle,description:c??(t?n.default.createElement(Yl,{text:J(g.resetDescriptionFor,{email:t}),email:t}):g.resetDescription),below:E},n.default.createElement(`form`,{ref:w,className:`space-y-4`,noValidate:!0,onSubmit:async t=>{t.preventDefault();let n=Ol(_,i,g).some(e=>!e.met),r=_?n?g.errorWeakPassword:void 0:g.passwordRequired;if(b(r),r){kl(w.current);return}(await C.run(()=>e(_))).ok&&(S(!0),l?.())}},t&&n.default.createElement(`input`,{type:`email`,name:`username`,autoComplete:`username`,value:t,readOnly:!0,hidden:!0}),n.default.createElement(Nl,{label:g.newPassword,name:`new-password`,value:_,onChange:e=>{v(e),b(void 0)},autoComplete:`new-password`,error:y,rules:i,autoFocus:!0,required:!0}),n.default.createElement(Il,{message:C.error}),n.default.createElement(Pl,{pending:C.pending},g.resetSubmit)))}function Cv({to:e,children:t}){let i=X(`btn`,cn,`h-11 w-full text-base sm:h-10 sm:text-sm`);return typeof e==`string`?/^[a-z][a-z0-9+.-]*:/i.test(e)?n.default.createElement(`a`,{href:e,className:i},t):n.default.createElement(r.Link,{to:e,className:i},t):n.default.createElement(`button`,{type:`button`,onClick:e,className:i},t)}function wv({code:e,onVerify:t,email:r,onResend:i,onContinue:a,continueLink:o,signInLink:s,resendSeconds:c=30,onVerified:l,errorMessage:u,brand:d,toolbar:f,footer:p,bare:m,className:h}){let g=yl(),[_,v]=(0,n.useState)(e&&t?`checking`:`waiting`),[y,b]=(0,n.useState)(null),x=Tl(u),S=Tl(u),C=Tl(u),[w,T]=(0,n.useState)(!1),[E,D]=Al(c),O=(0,n.useRef)(null),k={brand:d,toolbar:f,footer:p,bare:m,className:h},A=s&&n.default.createElement(`p`,{className:`text-center text-sm`},n.default.createElement(zl,{to:s},g.backToSignIn));(0,n.useEffect)(()=>{e&&t&&O.current!==e&&(O.current=e,v(`checking`),x.run(()=>t(e)).then(e=>{v(e.ok?`done`:`failed`),e.ok&&l?.()}))},[e,t]);let j=i&&n.default.createElement(Bl,{disabled:E>0||S.pending,onClick:async()=>{b(null),(await S.run(i)).ok&&(b(g.resent),D())}},E>0?J(g.resendIn,{seconds:E}):g.resend);if(_===`checking`)return n.default.createElement(or,{...k,title:g.verifyChecking},n.default.createElement(`div`,{className:`flex justify-center py-2 text-muted-foreground`,role:`status`,"aria-label":g.verifyChecking},n.default.createElement(Fl,{className:`h-6 w-6`})));if(_===`done`)return n.default.createElement(or,{...k,icon:`check-circle`,tone:`success`,title:g.verifyDoneTitle,description:g.verifyDone},(o??s)&&n.default.createElement(Cv,{to:o??s},g.continue));if(_===`failed`){let e=x.reason===`expiredLink`||x.reason===`invalidCode`;return n.default.createElement(or,{...k,icon:`link-break`,tone:`warning`,title:e?g.linkExpiredTitle:g.verifyTitle,description:e?g.linkExpired:void 0,below:A},n.default.createElement(`div`,{className:`space-y-4 text-center`},!e&&n.default.createElement(Il,{message:x.error}),n.default.createElement(Il,{message:S.error}),n.default.createElement(Ll,{message:y}),j))}return n.default.createElement(or,{...k,icon:`mail`,title:g.verifyTitle,description:r?n.default.createElement(Yl,{text:J(g.verifyPending,{email:r}),email:r}):g.verifyPendingNoEmail,below:A},n.default.createElement(`div`,{className:`space-y-4`},n.default.createElement(`p`,{className:`text-center text-sm text-muted-foreground`},g.checkEmailHint),n.default.createElement(Il,{message:w?g.notVerifiedYet:C.error??S.error}),n.default.createElement(Ll,{message:y}),a&&n.default.createElement(`form`,{noValidate:!0,onSubmit:async e=>{e.preventDefault(),T(!1),b(null);let t=await C.run(a);t.ok&&(t.value===!1?T(!0):(v(`done`),l?.()))}},n.default.createElement(Pl,{pending:C.pending},g.verifiedContinue)),j&&n.default.createElement(`div`,{className:`text-center`},j)))}var Tv=e=>Eu(`api`,e);async function Ev(e){if(!e.ok)throw Error(`ApiProvider request failed: ${e.status} ${e.statusText}`);let t=await e.text();return t?JSON.parse(t):void 0}var Dv=class{config;constructor(e){this.config=e}async fetch(e){let t=(e.method??`POST`).toUpperCase(),n=new URL(this.config.baseUrl.replace(/\/+$/,``)+`/`+e.path.replace(/^\/+/,``));Object.entries({...e.query,...this.config.query}).forEach(([e,t])=>n.searchParams.set(e,t));let r={...e.body,...this.config.body};return Ev(await Ca(n.toString(),{method:t,headers:{"Content-Type":`application/json`,...this.config.header},body:t===`GET`||t===`HEAD`?void 0:JSON.stringify(r)}))}},Ov=class{resolver;constructor(e){this.resolver=e}async fetch(e){return this.resolver(e)}},kv=class{config;constructor(e){this.config=e}async fetch(e){return Ru(this.config.functionName,{provider:this.config.providerName,request:e},void 0,this.config.region)}},Av=class{config;constructor(e){this.config=e}async fetch(e){let{data:t,error:n}=await Xu(this.config.url,this.config.anonKey).functions.invoke(this.config.functionName,{body:{provider:this.config.providerName,request:e}});if(n)throw n;return t}},jv=[{id:`resend`,label:`Resend`,description:`Developer-first transactional email API.`,credentialFields:[{key:`apiKey`,label:`API Key`,type:`password`,placeholder:`re_...`}],credentialsUrl:`https://resend.com/api-keys`,credentialsHint:`Resend dashboard → API Keys → Create API Key.`},{id:`sendgrid`,label:`SendGrid`,description:`Scalable email delivery by Twilio.`,credentialFields:[{key:`apiKey`,label:`API Key`,type:`password`,placeholder:`SG...`}],credentialsUrl:`https://app.sendgrid.com/settings/api_keys`,credentialsHint:`SendGrid dashboard → Settings → API Keys → Create API Key.`},{id:`mailgun`,label:`Mailgun`,description:`Email API with analytics and webhooks.`,credentialFields:[{key:`apiKey`,label:`API Key`,type:`password`},{key:`domain`,label:`Mailgun domain`,type:`text`,placeholder:`mg.yourdomain.com`}],credentialsUrl:`https://app.mailgun.com/settings/api_security/api_keys`,credentialsHint:`Mailgun dashboard → Security → API Keys. The domain is the sending domain you verified under Sending → Domains.`},{id:`postmark`,label:`Postmark`,description:`High-deliverability transactional email.`,credentialFields:[{key:`serverToken`,label:`Server API Token`,type:`password`}],credentialsUrl:`https://account.postmarkapp.com/servers`,credentialsHint:`Postmark → your Server → API Tokens tab (each server has its own token).`},{id:`ses`,label:`AWS SES`,description:`Amazon Simple Email Service.`,credentialFields:[{key:`accessKeyId`,label:`Access Key ID`,type:`text`},{key:`secretAccessKey`,label:`Secret Access Key`,type:`password`},{key:`region`,label:`Region`,type:`text`,placeholder:`us-east-1`}],credentialsUrl:`https://console.aws.amazon.com/iam/home#/security_credentials`,credentialsHint:`AWS IAM → Security credentials → Access keys, for a user with SES send permissions.`},{id:`smtp`,label:`SMTP`,description:`Any SMTP-compatible mail server.`,credentialFields:[{key:`host`,label:`Host`,type:`text`,placeholder:`smtp.example.com`},{key:`port`,label:`Port`,type:`text`,placeholder:`587`},{key:`username`,label:`Username`,type:`text`},{key:`password`,label:`Password`,type:`password`}],credentialsHint:`Ask your mail host or hosting provider for the SMTP host, port, and credentials.`}],Mv=[{id:`cloudflare_pages`,label:`Cloudflare Pages`,description:`Static hosting on Cloudflare's edge network, with native rollback.`,credentialFields:[{key:`apiToken`,label:`API Token`,type:`password`},{key:`accountId`,label:`Account ID`,type:`text`},{key:`projectName`,label:`Project name`,type:`text`,placeholder:`my-site`}],credentialsUrl:`https://dash.cloudflare.com/profile/api-tokens`,credentialsHint:`Cloudflare dashboard → My Profile → API Tokens → Create Token (Pages edit permission).`},{id:`firebase_hosting`,label:`Firebase Hosting`,description:`Google's static hosting, same project family as Firestore/Auth.`,credentialFields:[{key:`projectId`,label:`Firebase project ID`,type:`text`},{key:`siteId`,label:`Hosting site ID`,type:`text`},{key:`serviceAccountJson`,label:`Service account JSON`,type:`password`}],credentialsUrl:`https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk`,credentialsHint:`Firebase Console → Project settings → Service accounts → Generate new private key.`},{id:`supabase_storage`,label:`Supabase (Storage + custom domain)`,description:`Not a hosting product — serves the static build from a public Storage bucket behind your own domain. DIY, not officially supported by Supabase.`,credentialFields:[{key:`projectUrl`,label:`Project URL`,type:`text`,placeholder:`https://xyzcompany.supabase.co`},{key:`serviceKey`,label:`Service role key`,type:`password`},{key:`bucketName`,label:`Bucket name`,type:`text`}],credentialsUrl:`https://supabase.com/dashboard/project/_/settings/api`,credentialsHint:`Supabase dashboard → Project Settings → API → service_role key (never the anon key).`},{id:`ftp`,label:`FTP`,description:`Direct upload to any server over plain FTP — legacy, usually unencrypted; prefer SFTP when the server supports it.`,credentialFields:[{key:`host`,label:`Host`,type:`text`,placeholder:`ftp.example.com`},{key:`port`,label:`Port`,type:`text`,placeholder:`21`},{key:`username`,label:`Username`,type:`text`},{key:`password`,label:`Password`,type:`password`},{key:`remotePath`,label:`Remote path`,type:`text`,placeholder:`/var/www/html`}],credentialsHint:`Ask your hosting provider or server admin for FTP host, port, and credentials.`},{id:`sftp`,label:`SFTP`,description:`Direct upload to any server over SFTP (SSH) — no vendor lock-in.`,credentialFields:[{key:`host`,label:`Host`,type:`text`,placeholder:`sftp.example.com`},{key:`port`,label:`Port`,type:`text`,placeholder:`22`},{key:`username`,label:`Username`,type:`text`},{key:`password`,label:`Password / key`,type:`password`},{key:`remotePath`,label:`Remote path`,type:`text`,placeholder:`/var/www/html`}],credentialsHint:`Ask your hosting provider or server admin for SFTP host, port, and credentials.`},{id:`netlify`,label:`Netlify`,description:`Popular JAMstack hosting with a simple deploy API.`,credentialFields:[{key:`accessToken`,label:`Personal access token`,type:`password`},{key:`siteId`,label:`Site ID`,type:`text`}],credentialsUrl:`https://app.netlify.com/user/applications#personal-access-tokens`,credentialsHint:`Netlify → User settings → Applications → New access token.`},{id:`github_pages`,label:`GitHub Pages`,description:`Publishes by pushing the build to a branch of a GitHub repository.`,credentialFields:[{key:`repo`,label:`Repository`,type:`text`,placeholder:`owner/repo`},{key:`branch`,label:`Branch`,type:`text`,placeholder:`gh-pages`},{key:`token`,label:`Access token`,type:`password`}],credentialsUrl:`https://github.com/settings/tokens`,credentialsHint:`GitHub → Settings → Developer settings → Personal access tokens (repo scope).`},{id:`s3_cloudfront`,label:`AWS S3 + CloudFront`,description:`Classic static hosting on S3, served and cached through a CloudFront distribution.`,credentialFields:[{key:`accessKeyId`,label:`Access Key ID`,type:`text`},{key:`secretAccessKey`,label:`Secret Access Key`,type:`password`},{key:`bucketName`,label:`Bucket name`,type:`text`},{key:`distributionId`,label:`CloudFront distribution ID`,type:`text`},{key:`region`,label:`Region`,type:`text`,placeholder:`us-east-1`}],credentialsUrl:`https://console.aws.amazon.com/iam/home#/security_credentials`,credentialsHint:`AWS IAM → Security credentials → Access keys, for a user with S3 + CloudFront invalidation permissions.`},{id:`static_export`,label:`Static export (download)`,description:`No vendor — packages the build as a downloadable archive for self-hosting anywhere else.`,credentialFields:[]}],Nv=[k_,q_,L_,G_,y_,T_,Zg,E_,i_({id:`glm`,label:`ZhipuAI (GLM)`,description:`Zhipu AI's GLM model family.`,configKey:`glmApiKey`,defaultModel:`glm-4-flash`,fallbackModels:[`glm-4-flash`,`glm-4`,`glm-z1-preview`,`glm-z1-plus`,`glm-4-long`],baseUrl:`https://open.bigmodel.cn/api/paas/v4`,dashboardUrl:`https://bigmodel.cn/usercenter/apikeys`,credentialsHint:`Zhipu BigModel → User Center → API Keys → Create Key.`}),O_],Pv=e=>({id:e.id,label:e.label,description:e.description??``,credentialFields:e.credentialFields??[{key:`apiKey`,label:`API Key`,type:`password`}],credentialsUrl:e.dashboardUrl,credentialsHint:e.credentialsHint}),Fv=[...Nv.map(Pv),v_],Iv={id:`openai-compatible`,label:`OpenAI-compatible`,description:`Any OpenAI-compatible endpoint (self-hosted or third-party).`,credentialFields:[{key:`apiKey`,label:`API Key`,type:`password`},{key:`baseUrl`,label:`Base URL`,type:`text`,placeholder:`https://api.example.com/v1`}]},Lv=e=>{let t=[],n=e?.cloudflare?.accountId?.trim();n&&t.push(__({accountId:n,defaultModel:e?.cloudflare?.defaultModel?.trim()||void 0,includePaidModels:e?.cloudflare?.includePaidModels}));let r=e?.openAICompatible?.baseUrl?.trim();return r?[...t,i_({id:`openai-compatible`,label:e?.openAICompatible?.label?.trim()||`OpenAI-compatible`,description:`Any OpenAI-compatible endpoint (self-hosted or third-party).`,configKey:`openAICompatible`,requiredConfigKeys:[`ai.openAICompatible.apiKey`,`ai.openAICompatible.baseUrl`],defaultModel:e?.openAICompatible?.defaultModel?.trim()||`default`,fallbackModels:e?.openAICompatible?.fallbackModels?.filter(Boolean)||[`default`],baseUrl:r,modelsUrl:e?.openAICompatible?.modelsUrl?.trim()||void 0,chatCompletionsUrl:e?.openAICompatible?.chatCompletionsUrl?.trim()||void 0})]:t},Rv=e=>e?[...Nv,...Lv(e)].reduce((t,n)=>{let r=n.id===`openai-compatible`?e.openAICompatible?.apiKey?.trim()||``:n.id===`cloudflare`?e.cloudflare?.apiToken?.trim()||``:typeof n.configKey==`string`&&typeof e[n.configKey]==`string`?String(e[n.configKey]||``).trim():``;return r&&(t[n.id]=new Ba(n,r)),t},{}):{},zv=(e,{scope:n})=>Rv(e.reduce((e,r)=>{let i=t.f(n,r.id);if(r.id===`openai-compatible`)return r.baseUrl?{...e,openAICompatible:{apiKey:i,baseUrl:r.baseUrl,label:r.label,defaultModel:r.defaultModel}}:e;if(r.id===`cloudflare`)return r.accountId?{...e,cloudflare:{apiToken:i,accountId:r.accountId}}:e;let a=Nv.find(e=>e.id===r.id)?.configKey;return a?{...e,[a]:i}:e},{})),Bv=void 0;typeof pa==`function`&&pa(e=>{Bv=e.google});var Vv={ita:`geoTargetConstants/2380`,rome:`geoTargetConstants/1033236`,mil:`geoTargetConstants/1033239`,nap:`geoTargetConstants/1033245`,tor:`geoTargetConstants/1033247`},Hv={it:`languageConstants/1000`,en:`languageConstants/1001`,fr:`languageConstants/1002`,es:`languageConstants/1003`,de:`languageConstants/1005`};function Uv(e){return Vv[e.toLowerCase()]||`geoTargetConstants/2380`}function Wv(e){return Hv[e.toLowerCase()]||`languageConstants/1000`}async function Gv({keyword:e,googleAdsAccountId:t,geoCode:n=`ita`,languageCode:r=`it`}){if(!Bv?.developerToken)return console.error(`
|
|
25
|
+
`).trim();return i?{type:`text`,text:i}:null}var E_={id:`gemini`,label:`Gemini`,description:`Google's multimodal Gemini model family.`,configKey:`geminiApiKey`,defaultModel:`gemini-2.5-pro`,fallbackModels:[`gemini-2.5-pro`,`gemini-2.5-flash`,`gemini-2.5-flash-lite`],dashboardUrl:`https://aistudio.google.com/app/apikey`,credentialsHint:`Google AI Studio → Get API key → Create API key.`,credentialFields:[{key:`apiKey`,label:`API Key`,type:`password`}],capabilities:{supportsTemperature:!0,supportsVision:!0,supportsDocuments:!0},discoverModels:async e=>{let t=await Ce(`${x_}?key=${e}`,null,Ca);return Array.isArray(t?.models)?t.models.map(e=>e.name?.replace(/^models\//,``)).filter(Boolean):[]},validateApiKey:async e=>{try{let t=await Ce(`${x_}?key=${e}`,null,Ca);return t===null?{valid:!1,error:`Nessuna risposta dal server (CORS o rete)`}:t?.error?{valid:!1,error:typeof t.error==`object`&&`message`in t.error?String(t.error.message):String(t.error)}:{valid:!0}}catch(e){let t=e;return{valid:!1,error:t?.error&&typeof t.error==`object`?String(t.error.message??e):String(e)}}},complete:async(t,n)=>{let r=[...(n.attachments??[]).map(e=>Ka.isTextAttachment(e.mimeType)?{text:`[File: ${e.name}]\n${Ka.decodeBase64Text(e.base64)}`}:{inline_data:{mime_type:e.mimeType,data:e.base64}}),{text:n.prompt}];return T_(await Ce(`${S_}/${n.model}:generateContent?key=${t}`,{method:`POST`,headers:n.logId?{[e.t]:n.logId}:void 0,body:{contents:[...(n.history??[]).map(w_),...n.prompt?[{role:`user`,parts:r}]:[]],...n.role?{systemInstruction:{parts:[{text:ta.parseRole(n.role,n)}]}}:{},...n.tools?.length?{tools:C_(n.tools)}:{},generationConfig:typeof n.temperature==`number`?{temperature:n.temperature}:void 0},signal:n.signal},Ca))}},D_=a_({id:`mistral`,label:`Mistral`,description:`European-hosted open and commercial language models.`,configKey:`mistralApiKey`,defaultModel:`mistral-medium-3`,fallbackModels:[`mistral-medium-3`,`mistral-small-3.1`,`ministral-8b-latest`],baseUrl:`https://api.mistral.ai/v1`,dashboardUrl:`https://console.mistral.ai/api-keys`,credentialsHint:`Mistral Console → API Keys → Create new key.`}),O_=/whisper|orpheus|tts|guard/i,k_=a_({id:`groq`,label:`Groq`,description:`Very fast inference on open-weight models, with a free tier.`,configKey:`groqApiKey`,defaultModel:`openai/gpt-oss-120b`,fallbackModels:[`openai/gpt-oss-120b`,`openai/gpt-oss-20b`],baseUrl:`https://api.groq.com/openai/v1`,dashboardUrl:`https://console.groq.com/keys`,credentialsHint:`Groq Console → API Keys → Create API Key.`,mapModelEntry:e=>typeof e.id==`string`&&e.active!==!1&&!O_.test(e.id)?e.id:void 0}),A_=a_({id:`openai`,label:`OpenAI`,description:`GPT models via the OpenAI API.`,configKey:`openaiApiKey`,defaultModel:`gpt-5.2`,fallbackModels:[`gpt-5.2`,`gpt-5`,`gpt-5-mini`,`gpt-5-nano`,`gpt-4.1`,`gpt-4.1-mini`,`gpt-4.1-nano`],baseUrl:`https://api.openai.com/v1`,dashboardUrl:`https://platform.openai.com/api-keys`,credentialsHint:`OpenAI dashboard → API keys → Create new secret key.`}),j_=`https://opencode.ai/zen/v1/models`,M_=`https://opencode.ai/zen/v1/chat/completions`,N_=`deepseek-v4.1-flash`,P_=[N_,`deepseek-v4-pro`,`glm-5.3`,`glm-5.3-flash`,`grok-build-0.1`,`kimi-k3`,`minimax-m3`,`qwen3.8-flash`],F_=/-free$/,I_=new Set([`big-pickle`]),L_=e=>F_.test(e)||I_.has(e),R_={id:`opencode`,label:`OpenCode`,description:`OpenCode Zen — a curated set of coding-focused models.`,configKey:`openCodeApiKey`,defaultModel:N_,fallbackModels:P_,dashboardUrl:`https://opencode.ai`,credentialsHint:`OpenCode Zen dashboard → API Keys → Create Key.`,credentialFields:[{key:`apiKey`,label:`API Key`,type:`password`}],capabilities:{supportsTemperature:!0,supportsVision:!0,supportsDocuments:!0},discoverModels:async e=>{let t=await Ce(j_,{headers:{Authorization:`Bearer ${e}`}},Ca);return(Array.isArray(t?.data)?t.data:Array.isArray(t?.models)?t.models:Array.isArray(t)?t:[]).map(e=>e.id).filter(e=>typeof e==`string`&&e.length>0).filter(e=>!L_(e))},complete:(e,t)=>z_(M_,`OpenCode`,e,t)};async function z_(t,n,r,i,a={}){let o=i.attachments??[],s=o.length>0?o.map(e=>e.mimeType.startsWith(`image/`)?{type:`image_url`,image_url:{url:`data:${e.mimeType};base64,${e.base64}`}}:Ka.isTextAttachment(e.mimeType)?{type:`text`,text:`[File: ${e.name}]\n${Ka.decodeBase64Text(e.base64)}`}:{type:`text`,text:`[File attached: ${e.name} (${e.mimeType})]`}).concat({type:`text`,text:i.prompt}):i.prompt,c=await Ce(t,{method:`POST`,headers:{Authorization:`Bearer ${r}`,...i.logId?{[e.t]:i.logId}:{},...a},body:{model:i.model,messages:[...i.role?[{role:`system`,content:ta.parseRole(i.role,i)}]:[],...(i.history??[]).flatMap(r_),...i.prompt?[{role:`user`,content:s}]:[]],...i.tools?.length?{tools:i.tools.map(t_)}:{},...typeof i.temperature==`number`?{temperature:i.temperature}:{},...Ma(i.model,i.reasoning)},signal:i.signal},Ca);if(!c)throw Pa(n);return i_(c)}var B_=`https://opencode.ai/zen/go/v1/models`,V_=`https://opencode.ai/zen/go/v1/chat/completions`,H_=`x-opencode-session`,U_=`kimi-k3`,W_=[U_,`kimi-k3.1-pro`,`glm-5.3`,`glm-5.3-flash`,`deepseek-v4.1-flash`,`deepseek-v4-pro`,`qwen3.8-max`,`qwen3.8-flash`,`minimax-m3`,`claude-haiku-5-5`,`gemini-4-argon`],G_=()=>typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`s-${Date.now()}-${Math.random().toString(36).slice(2)}`,K_={id:`opencode-go`,label:`OpenCode Go`,description:`OpenCode Go — a monthly subscription to open and frontier coding models, with an API key.`,configKey:`openCodeGoApiKey`,defaultModel:U_,fallbackModels:W_,dashboardUrl:`https://opencode.ai/go`,credentialsHint:`OpenCode Console → subscribe to Go → API key.`,credentialFields:[{key:`apiKey`,label:`API Key`,type:`password`}],capabilities:{supportsTemperature:!0,supportsVision:!0,supportsDocuments:!0},discoverModels:async e=>{let t=await Ce(B_,{headers:{Authorization:`Bearer ${e}`}},Ca);return(Array.isArray(t?.data)?t.data:[]).map(e=>e.id).filter(e=>typeof e==`string`&&e.length>0).filter(e=>!L_(e))},complete:(e,t)=>z_(V_,`OpenCode Go`,e,t,{[H_]:t.logId||G_()})},q_=e=>{if(!e||typeof e!=`object`)return;let{prompt:t,completion:n}=e,r=Number(t),i=Number(n);if(t===void 0||n===void 0||!Number.isFinite(r)||!Number.isFinite(i)||r<0||i<0)return;let a=e=>Math.round(e*0xe8d4a51000)/1e6;return{input:a(r),output:a(i),currency:`USD`,source:`provider`}},J_=a_({id:`openrouter`,label:`OpenRouter`,description:`Unified access to many model providers through one API.`,configKey:`openRouterApiKey`,defaultModel:`openai/gpt-4`,fallbackModels:[`openai/gpt-4`,`openai/gpt-5-nano`,`anthropic/claude-3.7-sonnet`],baseUrl:`https://openrouter.ai/api/v1`,reasoningStyle:`openrouter`,dashboardUrl:`https://openrouter.ai/settings/keys`,credentialsHint:`OpenRouter → Settings → API Keys → Create Key.`,mapModelEntry:e=>typeof e.id==`string`?{model:e.id,pricing:q_(e.pricing)}:void 0,validateApiKey:async e=>{try{let t=await Ce(`https://openrouter.ai/api/v1/auth/key`,{headers:{Authorization:`Bearer ${e}`}},Ca);return t===null?{valid:!1,error:`Nessuna risposta dal server (CORS o proxy non attivo)`}:t?.data?.label!==void 0||t?.data?.usage!==void 0?{valid:!0}:t?.error?{valid:!1,error:Na(t)}:{valid:!1,error:`Chiave non riconosciuta da OpenRouter`}}catch(e){return{valid:!1,error:Na(e)}}}}),Y_={dbRealtime:{service:`data`,create:()=>new wg},firestoreDb:{service:`data`,create:()=>new Yu},firestorage:{service:`storage`,create:()=>new xd},firebaseAuth:{service:`auth`,create:()=>new Og}},X_={googleAuth:{service:`auth`,create:()=>new ag},gmail:{service:`email`,create:()=>new Vg},googleServiceAccount:{service:`credentials`,create:e=>new Pg(e.serviceAccount),when:e=>!!e.serviceAccount}},Z_={dropboxAuth:{service:`auth`,create:e=>new Ig(e)}},Q_={githubAuth:{service:`auth`,create:e=>new Rg(e),when:e=>!!e?.sessionUrl?.trim()}},$_={supabaseDb:{service:`data`,create:e=>new cd(e)},supabaseStorage:{service:`storage`,create:e=>new Sd(e)},supabaseAuth:{service:`auth`,create:e=>new Ug(e)}},ev={mock:{service:`data`,create:e=>new hd(e?.data)},mockAuth:{service:`auth`,create:e=>new Kg(typeof e?.auth==`object`?e.auth:{}),when:e=>!!e?.auth}},tv=(e,t)=>({service:`ai`,create:n=>new Ba(e,n?.[t]||``),when:e=>!!e?.[t]}),nv={firebase:Y_,google:X_,dropbox:Z_,github:Q_,supabase:$_,mock:ev,ai:{openai:tv(A_,`openaiApiKey`),openrouter:tv(J_,`openRouterApiKey`),opencode:tv(R_,`openCodeApiKey`),"opencode-go":tv(K_,`openCodeGoApiKey`),deepseek:tv(b_,`deepSeekApiKey`),gemini:tv(E_,`geminiApiKey`),anthropic:tv(Qg,`anthropicApiKey`),mistral:tv(D_,`mistralApiKey`),groq:tv(k_,`groqApiKey`),cloudflare:{service:`ai`,create:e=>new Ba(v_({accountId:e?.cloudflare?.accountId?.trim()||``,defaultModel:e?.cloudflare?.defaultModel?.trim()||void 0,includePaidModels:e?.cloudflare?.includePaidModels}),e?.cloudflare?.apiToken?.trim()||``),when:e=>!!e?.cloudflare?.apiToken?.trim()&&!!e?.cloudflare?.accountId?.trim()}}},rv=()=>n.default.createElement(`div`,{className:`flex min-h-[calc(100vh-4rem)] items-center justify-center`},n.default.createElement(`div`,{className:`h-8 w-8 animate-spin rounded-full border-2 border-muted border-t-primary`}));function iv(e,t){if(!t)return;let n=t,r=typeof t==`object`&&!Array.isArray(t)?Object.entries(n):[];if(r.length>0&&r.every(([,e])=>typeof e==`object`&&!!e)){Object.assign(e,n);return}e.custom=t}function av(e,t,n=`default`){return t&&e[t]?t:Object.keys(e)[0]??n}function ov(e={}){let t={data:{},storage:{},auth:{},email:{},ai:{},credentials:{}},n=e=>t[e]??={};for(let[t,r]of Object.entries(nv)){let i=e[t];if(i!==void 0)for(let[e,t]of Object.entries(r))(!t.when||t.when(i))&&(n(t.service)[e]=t.create(i))}for(let[t,r]of Object.entries(e.custom??{}))iv(n(t),r);Object.keys(t.data).length===0&&(t.data.mock=new hd),Object.keys(t.auth).length===0&&(t.auth.googleAuth=new ag);let r=e.services??{},i={};for(let[e,n]of Object.entries(t))i[e]={registry:n,defaultKey:av(n,r[e])};return i}var sv={},cv=e=>{sv=e},lv=e=>sv[e]||[],uv=e=>{let t=n=>{for(let r of n){if(r.path===e&&r.title?.trim())return r.title;let n=r.children?t(r.children):void 0;if(n)return n}};for(let e of Object.values(sv)){let n=t(e);if(n)return n}};function dv({contextProviders:e,providers:t={},appName:i=`LLM Native`,scrapeConfig:a,iconProvider:o,googleMaps:s,themeProvider:c,i18n:l,children:u,errorReportUrl:d,debug:f,basename:p}){let[m,h]=(0,n.useState)(()=>ov(t)),g=(0,n.useRef)(m);g.current=m;let _=(0,n.useRef)(void 0);_.current||=(async(e,t,n)=>{let r=g.current[e]?.registry?.[t];r!==n&&(await r?.dispose?.(),h(r=>({...r,[e]:{defaultKey:r[e]?.defaultKey??t,registry:{...r[e]?.registry,[t]:n}}})))});let v=_.current,y=e??n.default.Fragment;return n.default.createElement(rg,{fullPage:!0,reportUrl:d,debug:f},n.default.createElement(r.BrowserRouter,{basename:p},n.default.createElement(ma,{defaultConfig:{title:i,firebase:t.firebase,google:t.google?{oAuth2:{clientId:t.google.clientId,scope:t.google.scope},serviceAccount:t.google.serviceAccount,developerToken:t.google.developerToken}:void 0,dropbox:t.dropbox,ai:t.ai,scrape:a,proxy:t.proxy}},n.default.createElement(wu,{registries:m,setProvider:v},n.default.createElement(In,m.auth,n.default.createElement(ug,m.credentials,n.default.createElement(cr,m.data,n.default.createElement(Yr,m.storage,n.default.createElement(sg,m.email,n.default.createElement(oa,m.ai,n.default.createElement(nn,{config:o},n.default.createElement(vp,{config:s},n.default.createElement(Am,{appName:i},n.default.createElement(pt,{config:l},n.default.createElement(tt,{config:c},n.default.createElement(y,null,u))))))))))))))))}function fv({importPage:e,LayoutDefault:t=void 0,menuConfig:i={},authGate:a=void 0,children:o,...s}){cv(i);let c=a===!0?{}:a||null,l=({children:e})=>n.default.createElement(n.default.Fragment,null,e),u=({pageSource:e,message:t})=>n.default.createElement(vr,{variant:`warning`},`Missing Page: `,e,t&&n.default.createElement(`code`,{className:`ml-2`},t));function d(i,a,o){let d=`./pages${a.component?`/`+a.component:a.path===`/`?`/Home`:E.toCamel(a.path.split(`*`)[0])}.js`,f=a.page||n.default.lazy(()=>e(d).then(e=>typeof e.default==`function`?{default:e.default}:(console.warn(`⚠️ Invalid default export in ${d}`),{default:()=>n.default.createElement(u,{pageSource:d})})).catch(e=>(console.error(`❌ Failed to load ${d}:`,e),{default:()=>n.default.createElement(u,{pageSource:d,message:e.message})}))),p=a.layout||t||l,m=n.default.createElement(p,null,n.default.createElement(rg,{key:a.path,reportUrl:s.errorReportUrl,debug:s.debug},n.default.createElement(n.Suspense,{fallback:n.default.createElement(rv,null)},n.default.createElement(f,null))));return n.default.createElement(r.Route,{key:`${i}-${o}`,path:a.path,element:c&&!a.public?n.default.createElement(ou,c,m):m})}let f=e=>Object.keys(e).flatMap(t=>e[t].flatMap((e,n)=>[e.path&&d(t,e,n),e.children&&f({children:e.children})].filter(Boolean))),p=(e,t)=>e.some(e=>e.path===t||!!e.children&&p(e.children,t)),m=Object.values(sv).some(e=>p(e,`/`))?{}:{default:[{path:`/`}]};return n.default.createElement(dv,s,o,n.default.createElement(r.Routes,null,n.default.createElement(r.Route,{path:Un,element:n.default.createElement(Xn,null)}),n.default.createElement(n.default.Fragment,null,f({...m,...sv,_auth:[{path:`/users`,page:qh,layout:t}]})),n.default.createElement(r.Route,{path:`*`,element:n.default.createElement(Jh,null)})))}function pv(e){return e.hidden?!1:e.children?.some(pv)?!0:!!e.title?.trim()&&!/(^|\/):|\*/.test(e.path)}var mv=e=>e.filter(pv).map(e=>e.children?{...e,children:mv(e.children)}:e),hv=e=>{let t=mv(lv(e)),i=(0,r.useLocation)(),a=e=>e.map(e=>{let t=i.pathname===e.path,n=e.children?a(e.children):[],r=t||n.some(e=>e.active);return{...e,active:r,children:n}});return(0,n.useMemo)(()=>a(t),[i.pathname])},gv={common:{save:`Salva`,cancel:`Annulla`,delete:`Elimina`,close:`Chiudi`,back:`Indietro`,search:`Cerca`,loading:`Caricamento...`,noDataFound:`Nessun dato trovato`,pageNavigation:`Navigazione pagine`,previous:`Precedente`,next:`Successivo`,notFoundMessage:`Ops! Pagina non trovata.`,goHome:`Vai alla Home`,openNavigation:`Apri la navigazione`},auth:{signIn:`Accedi`,signOut:`Esci`,connect:`Connetti`,connected:`Connesso`,authenticated:`Autenticato`,notConfigured:`Il provider auth "{provider}" non è configurato. Controlla le chiavi API.`,notImplemented:`Il provider non implementa signIn().`},access:{email:`Email`,emailPlaceholder:`nome@azienda.it`,password:`Password`,newPassword:`Nuova password`,name:`Nome e cognome`,showPassword:`Mostra la password`,hidePassword:`Nascondi la password`,or:`oppure`,continue:`Continua`,backToSignIn:`Torna all’accesso`,emailRequired:`Inserisci la tua email.`,emailInvalid:`Inserisci un indirizzo email valido, come nome@azienda.it.`,passwordRequired:`Inserisci la password.`,nameRequired:`Inserisci il tuo nome.`,signInTitle:`Accedi`,signInTitleApp:`Accedi a {app}`,signInDescription:`Bentornato. Accedi per continuare.`,signInSubmit:`Accedi`,forgotPassword:`Password dimenticata?`,noAccount:`Non hai un account?`,signUpLink:`Creane uno`,continueWith:`Continua con {provider}`,codeRequest:`Inviami un codice di accesso`,usePassword:`Accedi invece con la password`,useCode:`Inviami invece un codice via email`,signUpTitle:`Crea il tuo account`,signUpDescription:`Ci vuole meno di un minuto.`,signUpSubmit:`Crea l’account`,haveAccount:`Hai già un account?`,signInLink:`Accedi`,terms:`Accetto i termini del servizio e l’informativa sulla privacy`,termsRequired:`Accetta i termini per continuare.`,passwordRules:`La password deve avere`,ruleLength:`almeno {min} caratteri`,ruleNumber:`un numero`,ruleCase:`lettere maiuscole e minuscole`,ruleSymbol:`un simbolo, come ! o #`,ruleMet:`fatto`,ruleNotMet:`manca`,checkEmailTitle:`Controlla la tua email`,checkEmailSignUp:`Abbiamo inviato un link a {email}. Aprilo per attivare il tuo account.`,checkEmailHint:`Non la trovi? Guarda nella cartella dello spam.`,resend:`Invia di nuovo`,resendIn:`Invia di nuovo tra {seconds} s`,resent:`Inviata. Può volerci un minuto perché arrivi.`,useOtherEmail:`Usa un’altra email`,forgotTitle:`Hai dimenticato la password?`,forgotDescription:`Inserisci l’email del tuo account e ti invieremo un link per sceglierne una nuova.`,forgotSubmit:`Invia il link`,forgotSent:`Se esiste un account per {email}, ti arriverà un link per scegliere una nuova password.`,resetTitle:`Scegli una nuova password`,resetDescription:`Usa una password che non usi su altri siti.`,resetDescriptionFor:`Per {email}. Usa una password che non usi su altri siti.`,resetSubmit:`Salva la password`,resetDoneTitle:`Password cambiata`,resetDone:`La nuova password è salvata. D’ora in poi accedi con questa.`,linkExpiredTitle:`Questo link non funziona più`,linkExpired:`I link valgono una volta sola e per un tempo limitato. Chiedine uno nuovo.`,requestNewLink:`Chiedi un nuovo link`,verifyTitle:`Conferma la tua email`,verifyPending:`Abbiamo inviato un link a {email}. Aprilo per confermare l’indirizzo.`,verifyPendingNoEmail:`Ti abbiamo inviato un link. Aprilo per confermare l’indirizzo.`,verifyChecking:`Confermo la tua email…`,verifyDoneTitle:`Email confermata`,verifyDone:`Il tuo account è attivo. Puoi continuare.`,verifiedContinue:`L’ho confermata`,notVerifiedYet:`L’email non è ancora confermata. Apri il link nell’email che ti abbiamo inviato.`,codeTitle:`Inserisci il codice`,codeDescription:`Abbiamo inviato un codice di {length} cifre a {email}. Vale per pochi minuti.`,codeLabel:`Codice di accesso`,codeDigit:`Cifra {index} di {length}`,codeSubmit:`Verifica`,codeNotReceived:`Non ti è arrivato il codice?`,deniedTitle:`Accesso non consentito`,denied:`Sei entrato come {user}, ma questo account non può aprire l’app. Chiedi l’accesso a un amministratore.`,signInOther:`Accedi con un altro account`,errorGeneric:`Qualcosa non ha funzionato. Riprova tra un momento.`,errorCredentials:`L’email o la password non sono corrette.`,errorEmailInUse:`Esiste già un account con questa email. Accedi.`,errorWeakPassword:`Questa password è troppo facile da indovinare. Scegline una più lunga.`,errorInvalidEmail:`Inserisci un indirizzo email valido.`,errorTooManyRequests:`Troppi tentativi. Aspetta qualche minuto e riprova.`,errorNetwork:`Nessuna connessione. Controlla la rete e riprova.`,errorInvalidCode:`Il codice non è corretto o è scaduto.`,errorExpiredLink:`Questo link è scaduto o è già stato usato. Chiedine uno nuovo.`,errorDisabled:`Questo account è disattivato. Contatta un amministratore.`,errorCancelled:`L’accesso è stato annullato prima di finire.`,errorNotSupported:`Questo modo di accedere non è disponibile.`},form:{headerAdd:`Aggiungi`,headerEdit:`Modifica`,buttonSave:`Salva`,buttonDelete:`Elimina`,buttonBack:`Indietro`,requiredField:`Il campo "{field}" è obbligatorio`,requiredFieldGeneric:`I campi obbligatori non sono compilati`,saveSuccess:`Salvato con successo`,deleteSuccess:`Eliminato con successo`,saveError:`Qualcosa è andato storto. Riprova.`,noticeRequiredFields:`Completa i campi obbligatori prima di salvare.`},grid:{buttonAdd:`Aggiungi`,deleteConfirm:`Sei sicuro di voler eliminare questo elemento?`,emptyState:`Nessun elemento da mostrare`,filtersButton:`Filtri`,filtersPanelTitle:`Filtri`,filtersClearAll:`Cancella tutti`,filtersSelectPlaceholder:`Tutti`,filtersRangeFrom:`Da`,filtersRangeTo:`A`,filtersRangeMin:`Min`,filtersRangeMax:`Max`,filtersSelectedCountTemplate:`{count} selezionati`,tableView:`Vista tabella`,galleryView:`Vista galleria`,columns:`Colonne`,fields:`Campi`},select:{placeholder:`Seleziona...`,loading:`Caricamento...`},modal:{save:`Salva`,delete:`Elimina`,cancel:`Annulla`,close:`Chiudi`,ok:`Ok`,yes:`Sì`,no:`No`},upload:{clickOrDrag:`Clicca o trascina per caricare...`,dropToUpload:`Rilascia per caricare`,uploadMore:`Aggiungi altri file`,editFileName:`Modifica nome file`,editorImage:`Editor immagine`,loaded:`Caricato`,removeFile:`Rimuovi`,uploadAnother:`Carica un altro file`,dropToParse:`Rilascia per analizzare`,insertFromUrl:`Inserisci da URL`,urlPlaceholder:`https://…/immagine.png`,invalidUrl:`Inserisci un URL valido`},notifications:{title:`Notifiche`,seeAll:`Vedi tutte`,markAllRead:`Segna tutte come lette`,empty:`Nessuna notifica`,emptyHint:`Sei in pari`},code:{copyCode:`Copia codice`,copy:`Copia`,copied:`Copiato!`,codeLanguageDefault:`Testo`},table:{noDataFound:`Nessun dato trovato`,selectAllRows:`Seleziona tutte le righe`,sortBy:`Ordina per {label}`,sortByCurrent:`Ordina per {label} ({direction})`,selectRow:`Seleziona riga {key}`,reorderRow:`Riordina riga {key}`},gallery:{selectItem:`Seleziona elemento {key}`},sortableList:{handle:`Sposta l'elemento {position} di {total}: trascinalo, o usa le frecce su e giù`,moved:`Spostato in posizione {position} di {total}`},crop:{enableCrop:`Abilita ritaglio a scala {scale}`,variants:`Varianti`,outputFile:`File di output`,active:`Attivo`,removeVariant:`Rimuovi variante {scale}`,fileName:`Nome file`,altText:`Testo alternativo`,altTextPlaceholder:`Descrivi questa immagine…`},imageEditor:{title:`Editor immagine`,save:`Salva`,undo:`Annulla`,redo:`Ripristina`,zoomOut:`Riduci zoom`,zoomIn:`Aumenta zoom`,crop:`Ritaglia`,flipHorizontal:`Capovolgi orizzontalmente`,flipVertical:`Capovolgi verticalmente`,rotate:`Ruota 90°`,freeDrawing:`Disegno libero`,arrow:`Freccia`,text:`Testo`,rectangle:`Rettangolo`,circle:`Cerchio`,triangle:`Triangolo`},prompt:{noProviders:`Nessun provider AI registrato.`,aiNotConfiguredEdit:`L'AI non è configurata. Puoi comunque modificare e salvare questo prompt.`,aiNotConfiguredRun:`L'AI non è configurata. Impossibile eseguire questo prompt.`,aiNotConfiguredShort:`AI non configurata`,toggleOnTitle:`Prompt ATTIVO. Il testo viene usato come template e può essere eseguito.`,toggleOffTitle:`Prompt DISATTIVO. Il testo viene usato direttamente senza elaborazione AI.`,closeEditor:`Chiudi editor`,editSettings:`Modifica impostazioni`,attachFiles:`Allega file`,dropFilesHere:`Rilascia i file per allegarli`,modelPricing:`Input / output, USD per 1M token`,modelPriceNotFound:`Prezzo non trovato`,attachmentsNotSupported:`Il provider AI selezionato non supporta allegati immagini o documenti.`,run:`Esegui`,runFailed:`Esecuzione del prompt fallita.`,noMatchingCommands:`Nessun comando corrispondente`,tokenUsage:`Utilizzo token`,tokenInput:`In: {count} tok`,tokenOutput:`Out: {count} tok`,tokenContext:`Contesto: {percent}%`,tokenCost:"Costo: ~${amount}",tokenTime:`Tempo: {seconds}s`,tokenUsageEmpty:`Esegui il prompt per vedere l'utilizzo token.`,hidePreview:`Nascondi anteprima`,showPreview:`Mostra anteprima risolta`,noProvider:`Nessun provider AI disponibile per questo prompt.`,noResponse:`Il provider AI non ha restituito alcuna risposta.`,promptLabel:`Prompt: `,defaultOption:`Predefinito`,role:`Ruolo`,language:`Lingua`,voice:`Voce`,style:`Stile`,temperature:`Temperatura`,stop:`Ferma`,stopping:`Arresto…`},layout:{maxElements:`Hai già 12 elementi nella riga: rimuovine uno prima.`,noSpace:`Nessuno spazio: impossibile ridurre gli elementi per inserire questo campo.`,dragToMove:`Trascina per spostare`,remove:`Rimuovi`,dragToResize:`Trascina per ridimensionare`,dragHere:`Trascina un elemento qui dentro`},sideNav:{expandGroup:`Espandi`,collapseGroup:`Comprimi`,expandSidebar:`Espandi barra laterale`,collapseSidebar:`Comprimi barra laterale`},autocomplete:{noResults:`Nessun risultato`,create:`Crea «{value}»`,createPlaceholder:`Scrivi o premi Invio per creare...`,remove:`Rimuovi`},addressAutocomplete:{placeholder:`Cerca un indirizzo...`,noResults:`Nessun indirizzo corrispondente`,searching:`Ricerca in corso...`,notConfigured:`La ricerca indirizzi non è configurata (manca la API key Google Maps).`,loadError:`Impossibile caricare la ricerca indirizzi.`},errorBoundary:{title:`Questa pagina ha avuto un problema`,description:`Si è verificato un errore imprevisto durante la visualizzazione di questo contenuto.`,technicalDetails:`Dettagli tecnici`,debugInformation:`Informazioni di debug`,context:`Contesto`,time:`Ora`,agent:`Agente`,componentTree:`Albero dei componenti`,copyDebug:`Copia info di debug`,copied:`Copiato!`,sendReport:`Invia segnalazione`,sending:`Invio...`,reportSent:`Segnalazione inviata ✓`,reportFailed:`Non riuscito - riprova`,tryAgain:`Riprova`,goHome:`Vai alla home`},themeSwitcher:{title:`Personalizza tema`,subtitle:`Token del tema e modalità in tempo reale, senza ricaricare.`,colorMode:`Modalità colore`,light:`Chiaro`,dark:`Scuro`,primaryColor:`Colore primario`,borderRadius:`Arrotondamento bordi`,sharp:`Squadrato`,rounded:`Arrotondato`,font:`Carattere`,statusColors:`Colori di stato`,theme:`Tema`,themeDescription:`Tema disponibile nel registro corrente.`,iconLibrary:`Libreria di icone`,weight:`Spessore`,blue:`Blu`,violet:`Viola`,green:`Verde`,rose:`Rosa`,orange:`Arancione`,slate:`Ardesia`,success:`Successo`,warning:`Avviso`,info:`Info`,danger:`Pericolo`,lucideDescription:`Set di icone lineari e pulite`,phosphorDescription:`Icone con spessori e stili flessibili`,weightThin:`Sottile`,weightLight:`Leggero`,weightRegular:`Normale`,weightBold:`Grassetto`,weightFill:`Pieno`},imageField:{openOriginal:`Apri originale`,crop:`Ritaglia`,cropTitle:`Ritaglia — {name}`,cropImage:`Ritaglia immagine`,editImage:`Modifica immagine`,generatingVariants:`Generazione varianti…`,responsiveVariants:`Varianti responsive`,variantsGenerated:`({count} generate)`,imageUrl:`URL immagine`,imageUrlHint:`(percorso o https://…)`,altText:`Testo alternativo`,altTextHint:`(accessibilità e SEO)`,altPlaceholder:`Es. Foto principale del prodotto`,linkUrl:`URL del link`,optionalHint:`(facoltativo)`,newTab:`Nuova scheda`,sameTab:`Stessa scheda`,insertImage:`Inserisci immagine`,insertImages:`Inserisci immagini`,include:`Includi`,insert:`Inserisci`,insertCount:`Inserisci ({count})`},richText:{bold:`Grassetto`,italic:`Corsivo`,underline:`Sottolineato`,strike:`Barrato`,heading1:`Titolo 1`,heading2:`Titolo 2`,heading3:`Titolo 3`,bulletList:`Elenco puntato`,orderedList:`Elenco numerato`,blockquote:`Citazione`,inlineCode:`Codice in linea`,codeBlock:`Blocco di codice`,link:`Link`,undo:`Annulla`,redo:`Ripeti`,clearFormat:`Cancella formattazione`,paragraphStyle:`Stile paragrafo`,normal:`Normale`,insertTable:`Inserisci tabella`,insertTableSize:`Inserisci tabella {rows} per {cols}`,addRowAbove:`Aggiungi riga sopra`,addRowBelow:`Aggiungi riga sotto`,addColumnLeft:`Aggiungi colonna a sinistra`,addColumnRight:`Aggiungi colonna a destra`,deleteRow:`Elimina riga`,deleteColumn:`Elimina colonna`,deleteTable:`Elimina tabella`,uploadImage:`Carica immagine`,uploadDocument:`Carica documento`,sourceCode:`Codice sorgente`,source:`Sorgente di {name}`,words:`{count} parole`,chars:`{count} caratteri`,editLink:`Modifica link`,removeLink:`Rimuovi link`,altPlaceholder:`Es. Foto del team al ritiro aziendale`},tabDynamic:{addTab:`Aggiungi scheda`},breadcrumbs:{label:`Percorso di navigazione`},chat:{reasoning:`Ragionamento`,reasoningStreaming:`Sta ragionando…`,reasoningFor:`Ha ragionato per {duration}`,durationSeconds:`{seconds} s`,durationMinutes:`{minutes} min {seconds} s`,questions:`Domande`,questionTab:`Domanda {index}`,review:`Riepilogo`,reviewHint:`Controlla le risposte, poi inviale.`,other:`Altro`,otherPlaceholder:`Scrivi la tua risposta`,recommended:`Consigliata`,chooseOne:`Scegline una`,chooseMany:`Scegline una o più`,keyboardHint:`Tasti {first}–{last} per scegliere, Invio per continuare`,textKeyboardHint:`Invio va a capo, Ctrl/⌘+Invio per continuare`,next:`Avanti`,back:`Indietro`,submit:`Invia`,noAnswer:`Nessuna risposta`,answered:`Risposte date`,activityCount:`{count} passi`,activityFailed:`{count} non riusciti`,activityCommands:`Comandi`,activityHide:`Nascondi`,activityLog:`Registro completo`,activitySteps:`Vista per passi`,activityFiles:`{count} file modificati`,activityChanges:`Vedi le modifiche`,activityEmpty:`Ancora niente`},charts:{noData:`Nessun dato`,total:`Totale`,less:`Meno`,more:`Più`,dataTable:`Dati del grafico`,sequence:`Sequenza`}},_v={common:{save:`Speichern`,cancel:`Abbrechen`,delete:`Löschen`,close:`Schließen`,back:`Zurück`,search:`Suchen`,loading:`Laden...`,noDataFound:`Keine Daten gefunden`,pageNavigation:`Seitennavigation`,previous:`Zurück`,next:`Weiter`,notFoundMessage:`Ups! Seite nicht gefunden.`,goHome:`Zur Startseite`,openNavigation:`Navigation öffnen`},auth:{signIn:`Anmelden`,signOut:`Abmelden`,connect:`Verbinden`,connected:`Verbunden`,authenticated:`Authentifiziert`,notConfigured:`Auth-Provider "{provider}" ist nicht konfiguriert. API-Schlüssel prüfen.`,notImplemented:`Der Provider implementiert signIn() nicht.`},access:{email:`E-Mail`,emailPlaceholder:`name@firma.de`,password:`Passwort`,newPassword:`Neues Passwort`,name:`Vollständiger Name`,showPassword:`Passwort anzeigen`,hidePassword:`Passwort verbergen`,or:`oder`,continue:`Weiter`,backToSignIn:`Zurück zur Anmeldung`,emailRequired:`Gib deine E-Mail-Adresse ein.`,emailInvalid:`Gib eine gültige E-Mail-Adresse ein, z. B. name@firma.de.`,passwordRequired:`Gib dein Passwort ein.`,nameRequired:`Gib deinen Namen ein.`,signInTitle:`Anmelden`,signInTitleApp:`Bei {app} anmelden`,signInDescription:`Willkommen zurück. Melde dich an, um fortzufahren.`,signInSubmit:`Anmelden`,forgotPassword:`Passwort vergessen?`,noAccount:`Noch kein Konto?`,signUpLink:`Konto erstellen`,continueWith:`Weiter mit {provider}`,codeRequest:`Anmeldecode per E-Mail senden`,usePassword:`Stattdessen mit Passwort anmelden`,useCode:`Stattdessen einen Code per E-Mail senden`,signUpTitle:`Konto erstellen`,signUpDescription:`Das dauert weniger als eine Minute.`,signUpSubmit:`Konto erstellen`,haveAccount:`Du hast schon ein Konto?`,signInLink:`Anmelden`,terms:`Ich akzeptiere die Nutzungsbedingungen und die Datenschutzerklärung`,termsRequired:`Akzeptiere die Bedingungen, um fortzufahren.`,passwordRules:`Dein Passwort braucht`,ruleLength:`mindestens {min} Zeichen`,ruleNumber:`eine Zahl`,ruleCase:`Groß- und Kleinbuchstaben`,ruleSymbol:`ein Sonderzeichen, z. B. ! oder #`,ruleMet:`erfüllt`,ruleNotMet:`fehlt`,checkEmailTitle:`Prüfe deine E-Mails`,checkEmailSignUp:`Wir haben einen Link an {email} gesendet. Öffne ihn, um dein Konto zu aktivieren.`,checkEmailHint:`Nicht gefunden? Sieh im Spam-Ordner nach.`,resend:`Erneut senden`,resendIn:`Erneut senden in {seconds} s`,resent:`Gesendet. Es kann eine Minute dauern.`,useOtherEmail:`Andere E-Mail verwenden`,forgotTitle:`Passwort vergessen?`,forgotDescription:`Gib die E-Mail-Adresse deines Kontos ein. Wir senden dir einen Link, um ein neues Passwort zu wählen.`,forgotSubmit:`Link senden`,forgotSent:`Wenn es ein Konto für {email} gibt, ist ein Link zum Festlegen eines neuen Passworts unterwegs.`,resetTitle:`Neues Passwort wählen`,resetDescription:`Verwende ein Passwort, das du nirgendwo sonst nutzt.`,resetDescriptionFor:`Für {email}. Verwende ein Passwort, das du nirgendwo sonst nutzt.`,resetSubmit:`Passwort speichern`,resetDoneTitle:`Passwort geändert`,resetDone:`Dein neues Passwort ist gespeichert. Melde dich ab jetzt damit an.`,linkExpiredTitle:`Dieser Link funktioniert nicht mehr`,linkExpired:`Links gelten nur einmal und nur für begrenzte Zeit. Fordere einen neuen an.`,requestNewLink:`Neuen Link anfordern`,verifyTitle:`E-Mail-Adresse bestätigen`,verifyPending:`Wir haben einen Link an {email} gesendet. Öffne ihn, um die Adresse zu bestätigen.`,verifyPendingNoEmail:`Wir haben dir einen Link gesendet. Öffne ihn, um die Adresse zu bestätigen.`,verifyChecking:`E-Mail-Adresse wird bestätigt…`,verifyDoneTitle:`E-Mail bestätigt`,verifyDone:`Dein Konto ist aktiv. Du kannst fortfahren.`,verifiedContinue:`Ich habe bestätigt`,notVerifiedYet:`Deine E-Mail-Adresse ist noch nicht bestätigt. Öffne den Link in der E-Mail, die wir dir gesendet haben.`,codeTitle:`Code eingeben`,codeDescription:`Wir haben einen {length}-stelligen Code an {email} gesendet. Er gilt wenige Minuten.`,codeLabel:`Anmeldecode`,codeDigit:`Ziffer {index} von {length}`,codeSubmit:`Bestätigen`,codeNotReceived:`Keinen Code erhalten?`,deniedTitle:`Kein Zugriff`,denied:`Du bist als {user} angemeldet, aber dieses Konto kann die App nicht öffnen. Bitte einen Administrator um Zugriff.`,signInOther:`Mit einem anderen Konto anmelden`,errorGeneric:`Etwas ist schiefgelaufen. Versuche es gleich noch einmal.`,errorCredentials:`E-Mail-Adresse oder Passwort ist falsch.`,errorEmailInUse:`Mit dieser E-Mail-Adresse gibt es schon ein Konto. Melde dich an.`,errorWeakPassword:`Dieses Passwort ist zu leicht zu erraten. Wähle ein längeres.`,errorInvalidEmail:`Gib eine gültige E-Mail-Adresse ein.`,errorTooManyRequests:`Zu viele Versuche. Warte ein paar Minuten und versuche es erneut.`,errorNetwork:`Keine Verbindung. Prüfe dein Netzwerk und versuche es erneut.`,errorInvalidCode:`Der Code ist falsch oder abgelaufen.`,errorExpiredLink:`Dieser Link ist abgelaufen oder wurde schon verwendet. Fordere einen neuen an.`,errorDisabled:`Dieses Konto ist deaktiviert. Wende dich an einen Administrator.`,errorCancelled:`Die Anmeldung wurde abgebrochen, bevor sie fertig war.`,errorNotSupported:`Diese Art der Anmeldung ist nicht verfügbar.`},form:{headerAdd:`Hinzufügen`,headerEdit:`Bearbeiten`,buttonSave:`Speichern`,buttonDelete:`Löschen`,buttonBack:`Zurück`,requiredField:`Das Feld "{field}" ist erforderlich`,requiredFieldGeneric:`Pflichtfelder sind nicht ausgefüllt`,saveSuccess:`Erfolgreich gespeichert`,deleteSuccess:`Erfolgreich gelöscht`,saveError:`Etwas ist schiefgelaufen. Bitte erneut versuchen.`,noticeRequiredFields:`Pflichtfelder vor dem Speichern ausfüllen.`},grid:{buttonAdd:`Hinzufügen`,deleteConfirm:`Dieses Element wirklich löschen?`,emptyState:`Keine Elemente vorhanden`,filtersButton:`Filter`,filtersPanelTitle:`Filter`,filtersClearAll:`Alle zurücksetzen`,filtersSelectPlaceholder:`Alle`,filtersRangeFrom:`Von`,filtersRangeTo:`Bis`,filtersRangeMin:`Min`,filtersRangeMax:`Max`,filtersSelectedCountTemplate:`{count} ausgewählt`,tableView:`Tabellenansicht`,galleryView:`Galerieansicht`,columns:`Spalten`,fields:`Felder`},select:{placeholder:`Auswählen...`,loading:`Lädt...`},modal:{save:`Speichern`,delete:`Löschen`,cancel:`Abbrechen`,close:`Schließen`,ok:`Ok`,yes:`Ja`,no:`Nein`},upload:{clickOrDrag:`Klicken oder ziehen zum Hochladen...`,dropToUpload:`Loslassen zum Hochladen`,uploadMore:`Weitere Dateien hinzufügen`,editFileName:`Dateiname bearbeiten`,editorImage:`Bildeditor`,loaded:`Geladen`,removeFile:`Entfernen`,uploadAnother:`Eine weitere Datei hochladen`,dropToParse:`Loslassen zum Analysieren`,insertFromUrl:`Von URL einfügen`,urlPlaceholder:`https://…/bild.png`,invalidUrl:`Gültige URL eingeben`},notifications:{title:`Benachrichtigungen`,seeAll:`Alle anzeigen`,markAllRead:`Alle als gelesen markieren`,empty:`Keine Benachrichtigungen`,emptyHint:`Du bist auf dem neuesten Stand`},code:{copyCode:`Code kopieren`,copy:`Kopieren`,copied:`Kopiert!`,codeLanguageDefault:`Text`},table:{noDataFound:`Keine Daten gefunden`,selectAllRows:`Alle Zeilen auswählen`,sortBy:`Nach {label} sortieren`,sortByCurrent:`Nach {label} sortieren ({direction})`,selectRow:`Zeile {key} auswählen`,reorderRow:`Zeile {key} neu anordnen`},gallery:{selectItem:`Element {key} auswählen`},sortableList:{handle:`Element {position} von {total} verschieben: ziehen oder Pfeiltasten nach oben und unten`,moved:`Auf Position {position} von {total} verschoben`},crop:{enableCrop:`Zuschnitt mit Skalierung {scale} aktivieren`,variants:`Varianten`,outputFile:`Ausgabedatei`,active:`Aktiv`,removeVariant:`Variante {scale} entfernen`,fileName:`Dateiname`,altText:`Alt-Text`,altTextPlaceholder:`Beschreiben Sie dieses Bild…`},imageEditor:{title:`Bildeditor`,save:`Speichern`,undo:`Rückgängig`,redo:`Wiederherstellen`,zoomOut:`Herauszoomen`,zoomIn:`Hineinzoomen`,crop:`Zuschneiden`,flipHorizontal:`Horizontal spiegeln`,flipVertical:`Vertikal spiegeln`,rotate:`90° drehen`,freeDrawing:`Freihandzeichnen`,arrow:`Pfeil`,text:`Text`,rectangle:`Rechteck`,circle:`Kreis`,triangle:`Dreieck`},prompt:{noProviders:`Keine AI-Provider registriert.`,aiNotConfiguredEdit:`AI ist nicht konfiguriert. Sie können diesen Prompt trotzdem bearbeiten.`,aiNotConfiguredRun:`AI ist nicht konfiguriert. Dieser Prompt kann nicht ausgeführt werden.`,aiNotConfiguredShort:`AI nicht konfiguriert`,toggleOnTitle:`Prompt AKTIV. Der Text wird als Vorlage verwendet und kann ausgeführt werden.`,toggleOffTitle:`Prompt INAKTIV. Der Text wird direkt ohne AI-Verarbeitung verwendet.`,closeEditor:`Editor schließen`,editSettings:`Einstellungen bearbeiten`,attachFiles:`Dateien anhängen`,dropFilesHere:`Dateien zum Anhängen hier ablegen`,modelPricing:`Input / Output, USD pro 1 Mio. Token`,modelPriceNotFound:`Preis nicht gefunden`,attachmentsNotSupported:`Der ausgewählte AI-Provider unterstützt keine Bild- oder Dokumentanlagen.`,run:`Ausführen`,runFailed:`Prompt-Ausführung fehlgeschlagen.`,noMatchingCommands:`Keine passenden Befehle`,tokenUsage:`Token-Nutzung`,tokenInput:`Eingabe: {count} tok`,tokenOutput:`Ausgabe: {count} tok`,tokenContext:`Kontext: {percent}%`,tokenCost:"Kosten: ~${amount}",tokenTime:`Zeit: {seconds}s`,tokenUsageEmpty:`Prompt ausführen, um Token-Nutzung zu sehen.`,hidePreview:`Vorschau ausblenden`,showPreview:`Aufgelöste Vorschau anzeigen`,noProvider:`Kein AI-Provider für diesen Prompt verfügbar.`,noResponse:`Der AI-Provider hat keine Antwort zurückgegeben.`,promptLabel:`Prompt: `,defaultOption:`Standard`,role:`Rolle`,language:`Sprache`,voice:`Stimme`,style:`Stil`,temperature:`Temperatur`,stop:`Stoppen`,stopping:`Wird gestoppt…`},layout:{maxElements:`Bereits 12 Elemente in der Zeile: Eines entfernen.`,noSpace:`Kein Platz: Elemente können nicht genug verkleinert werden.`,dragToMove:`Zum Verschieben ziehen`,remove:`Entfernen`,dragToResize:`Zum Verkleinern ziehen`,dragHere:`Element hierher ziehen`},sideNav:{expandGroup:`Aufklappen`,collapseGroup:`Zuklappen`,expandSidebar:`Seitenleiste aufklappen`,collapseSidebar:`Seitenleiste zuklappen`},autocomplete:{noResults:`Keine Ergebnisse`,create:`«{value}» erstellen`,createPlaceholder:`Tippen oder Enter drücken zum Erstellen...`,remove:`Entfernen`},addressAutocomplete:{placeholder:`Adresse suchen...`,noResults:`Keine passende Adresse`,searching:`Suche läuft...`,notConfigured:`Adresssuche ist nicht konfiguriert (Google Maps API-Schlüssel fehlt).`,loadError:`Adresssuche konnte nicht geladen werden.`},errorBoundary:{title:`Auf dieser Seite ist ein Problem aufgetreten`,description:`Beim Darstellen dieses Inhalts ist ein unerwarteter Fehler aufgetreten.`,technicalDetails:`Technische Details`,debugInformation:`Debug-Informationen`,context:`Kontext`,time:`Zeit`,agent:`Agent`,componentTree:`Komponentenbaum`,copyDebug:`Debug-Infos kopieren`,copied:`Kopiert!`,sendReport:`Bericht senden`,sending:`Wird gesendet...`,reportSent:`Bericht gesendet ✓`,reportFailed:`Fehlgeschlagen - erneut versuchen`,tryAgain:`Erneut versuchen`,goHome:`Zur Startseite`},themeSwitcher:{title:`Theme anpassen`,subtitle:`Theme-Tokens und Modus live ändern, ohne Neuladen.`,colorMode:`Farbmodus`,light:`Hell`,dark:`Dunkel`,primaryColor:`Primärfarbe`,borderRadius:`Eckenradius`,sharp:`Eckig`,rounded:`Abgerundet`,font:`Schriftart`,statusColors:`Statusfarben`,theme:`Theme`,themeDescription:`Im aktuellen Register verfügbares Theme.`,iconLibrary:`Icon-Bibliothek`,weight:`Strichstärke`,blue:`Blau`,violet:`Violett`,green:`Grün`,rose:`Rosé`,orange:`Orange`,slate:`Schiefer`,success:`Erfolg`,warning:`Warnung`,info:`Info`,danger:`Gefahr`,lucideDescription:`Klares Umriss-Icon-Set`,phosphorDescription:`Flexible Icon-Stärken und -Stile`,weightThin:`Dünn`,weightLight:`Leicht`,weightRegular:`Normal`,weightBold:`Fett`,weightFill:`Gefüllt`},imageField:{openOriginal:`Original öffnen`,crop:`Zuschneiden`,cropTitle:`Zuschneiden — {name}`,cropImage:`Bild zuschneiden`,editImage:`Bild bearbeiten`,generatingVariants:`Varianten werden erzeugt…`,responsiveVariants:`Responsive Varianten`,variantsGenerated:`({count} erzeugt)`,imageUrl:`Bild-URL`,imageUrlHint:`(Pfad oder https://…)`,altText:`Alternativtext`,altTextHint:`(Barrierefreiheit & SEO)`,altPlaceholder:`Z. B. Produktbild`,linkUrl:`Link-URL`,optionalHint:`(optional)`,newTab:`Neuer Tab`,sameTab:`Gleicher Tab`,insertImage:`Bild einfügen`,insertImages:`Bilder einfügen`,include:`Einbeziehen`,insert:`Einfügen`,insertCount:`Einfügen ({count})`},richText:{bold:`Fett`,italic:`Kursiv`,underline:`Unterstrichen`,strike:`Durchgestrichen`,heading1:`Überschrift 1`,heading2:`Überschrift 2`,heading3:`Überschrift 3`,bulletList:`Aufzählung`,orderedList:`Nummerierte Liste`,blockquote:`Zitat`,inlineCode:`Inline-Code`,codeBlock:`Codeblock`,link:`Link`,undo:`Rückgängig`,redo:`Wiederholen`,clearFormat:`Formatierung entfernen`,paragraphStyle:`Absatzformat`,normal:`Normal`,insertTable:`Tabelle einfügen`,insertTableSize:`Tabelle {rows} × {cols} einfügen`,addRowAbove:`Zeile oberhalb einfügen`,addRowBelow:`Zeile unterhalb einfügen`,addColumnLeft:`Spalte links einfügen`,addColumnRight:`Spalte rechts einfügen`,deleteRow:`Zeile löschen`,deleteColumn:`Spalte löschen`,deleteTable:`Tabelle löschen`,uploadImage:`Bild hochladen`,uploadDocument:`Dokument hochladen`,sourceCode:`Quellcode`,source:`Quelltext von {name}`,words:`{count} Wörter`,chars:`{count} Zeichen`,editLink:`Link bearbeiten`,removeLink:`Link entfernen`,altPlaceholder:`Z. B. Teamfoto beim Firmenausflug`},tabDynamic:{addTab:`Tab hinzufügen`},breadcrumbs:{label:`Brotkrumennavigation`},chat:{reasoning:`Überlegung`,reasoningStreaming:`Überlegt…`,reasoningFor:`Hat {duration} überlegt`,durationSeconds:`{seconds} s`,durationMinutes:`{minutes} min {seconds} s`,questions:`Fragen`,questionTab:`Frage {index}`,review:`Überprüfen`,reviewHint:`Prüfe deine Antworten und sende sie dann.`,other:`Andere`,otherPlaceholder:`Deine Antwort eingeben`,recommended:`Empfohlen`,chooseOne:`Wähle eine`,chooseMany:`Wähle eine oder mehrere`,keyboardHint:`Tasten {first}–{last} wählen, Enter fährt fort`,textKeyboardHint:`Enter für eine neue Zeile, Strg/⌘+Enter fährt fort`,next:`Weiter`,back:`Zurück`,submit:`Senden`,noAnswer:`Keine Antwort`,answered:`Beantwortet`,activityCount:`{count} Schritte`,activityFailed:`{count} fehlgeschlagen`,activityCommands:`Befehle`,activityHide:`Ausblenden`,activityLog:`Vollständiges Protokoll`,activitySteps:`Schrittansicht`,activityFiles:`{count} Dateien geändert`,activityChanges:`Änderungen ansehen`,activityEmpty:`Noch nichts`},charts:{noData:`Keine Daten`,total:`Summe`,less:`Weniger`,more:`Mehr`,dataTable:`Diagrammdaten`,sequence:`Abfolge`}},vv={common:{save:`Сохранить`,cancel:`Отменить`,delete:`Удалить`,close:`Закрыть`,back:`Назад`,search:`Поиск`,loading:`Загрузка...`,noDataFound:`Данные не найдены`,pageNavigation:`Навигация по страницам`,previous:`Назад`,next:`Вперёд`,notFoundMessage:`Упс! Страница не найдена.`,goHome:`На главную`,openNavigation:`Открыть навигацию`},auth:{signIn:`Войти`,signOut:`Выйти`,connect:`Подключить`,connected:`Подключено`,authenticated:`Авторизован`,notConfigured:`Провайдер "{provider}" не настроен. Проверьте API-ключи.`,notImplemented:`Провайдер не реализует signIn().`},access:{email:`Эл. почта`,emailPlaceholder:`name@company.com`,password:`Пароль`,newPassword:`Новый пароль`,name:`Имя и фамилия`,showPassword:`Показать пароль`,hidePassword:`Скрыть пароль`,or:`или`,continue:`Продолжить`,backToSignIn:`Вернуться ко входу`,emailRequired:`Введите адрес эл. почты.`,emailInvalid:`Введите корректный адрес, например name@company.com.`,passwordRequired:`Введите пароль.`,nameRequired:`Введите имя.`,signInTitle:`Вход`,signInTitleApp:`Вход в {app}`,signInDescription:`С возвращением. Войдите, чтобы продолжить.`,signInSubmit:`Войти`,forgotPassword:`Забыли пароль?`,noAccount:`Нет аккаунта?`,signUpLink:`Создать`,continueWith:`Продолжить с {provider}`,codeRequest:`Прислать код для входа`,usePassword:`Войти с паролем`,useCode:`Прислать код на почту`,signUpTitle:`Создайте аккаунт`,signUpDescription:`Это займёт меньше минуты.`,signUpSubmit:`Создать аккаунт`,haveAccount:`Уже есть аккаунт?`,signInLink:`Войти`,terms:`Я принимаю условия использования и политику конфиденциальности`,termsRequired:`Примите условия, чтобы продолжить.`,passwordRules:`В пароле нужно`,ruleLength:`не менее {min} символов`,ruleNumber:`цифра`,ruleCase:`заглавные и строчные буквы`,ruleSymbol:`символ, например ! или #`,ruleMet:`выполнено`,ruleNotMet:`не хватает`,checkEmailTitle:`Проверьте почту`,checkEmailSignUp:`Мы отправили ссылку на {email}. Откройте её, чтобы активировать аккаунт.`,checkEmailHint:`Не нашли? Проверьте папку «Спам».`,resend:`Отправить ещё раз`,resendIn:`Повторить через {seconds} с`,resent:`Отправлено. Письмо может прийти через минуту.`,useOtherEmail:`Указать другой адрес`,forgotTitle:`Забыли пароль?`,forgotDescription:`Введите адрес эл. почты аккаунта, и мы пришлём ссылку для выбора нового пароля.`,forgotSubmit:`Отправить ссылку`,forgotSent:`Если для {email} есть аккаунт, ссылка для выбора нового пароля уже в пути.`,resetTitle:`Придумайте новый пароль`,resetDescription:`Не используйте пароль, который есть на других сайтах.`,resetDescriptionFor:`Для {email}. Не используйте пароль, который есть на других сайтах.`,resetSubmit:`Сохранить пароль`,resetDoneTitle:`Пароль изменён`,resetDone:`Новый пароль сохранён. Входите с ним.`,linkExpiredTitle:`Ссылка больше не работает`,linkExpired:`Ссылка действует один раз и ограниченное время. Запросите новую.`,requestNewLink:`Запросить новую ссылку`,verifyTitle:`Подтвердите адрес`,verifyPending:`Мы отправили ссылку на {email}. Откройте её, чтобы подтвердить адрес.`,verifyPendingNoEmail:`Мы отправили вам ссылку. Откройте её, чтобы подтвердить адрес.`,verifyChecking:`Подтверждаем адрес…`,verifyDoneTitle:`Адрес подтверждён`,verifyDone:`Аккаунт активен. Можно продолжать.`,verifiedContinue:`Я подтвердил`,notVerifiedYet:`Адрес ещё не подтверждён. Откройте ссылку из нашего письма.`,codeTitle:`Введите код`,codeDescription:`Мы отправили код из {length} цифр на {email}. Он действует несколько минут.`,codeLabel:`Код для входа`,codeDigit:`Цифра {index} из {length}`,codeSubmit:`Подтвердить`,codeNotReceived:`Не пришёл код?`,deniedTitle:`Нет доступа`,denied:`Вы вошли как {user}, но у этого аккаунта нет доступа к приложению. Обратитесь к администратору.`,signInOther:`Войти с другим аккаунтом`,errorGeneric:`Что-то пошло не так. Повторите через минуту.`,errorCredentials:`Неверный адрес или пароль.`,errorEmailInUse:`Аккаунт с этим адресом уже есть. Войдите.`,errorWeakPassword:`Этот пароль слишком простой. Выберите более длинный.`,errorInvalidEmail:`Введите корректный адрес эл. почты.`,errorTooManyRequests:`Слишком много попыток. Подождите несколько минут.`,errorNetwork:`Нет соединения. Проверьте сеть и повторите.`,errorInvalidCode:`Код неверный или устарел.`,errorExpiredLink:`Ссылка устарела или уже использована. Запросите новую.`,errorDisabled:`Аккаунт отключён. Обратитесь к администратору.`,errorCancelled:`Вход был отменён.`,errorNotSupported:`Этот способ входа недоступен.`},form:{headerAdd:`Добавить`,headerEdit:`Редактировать`,buttonSave:`Сохранить`,buttonDelete:`Удалить`,buttonBack:`Назад`,requiredField:`Поле "{field}" обязательно для заполнения`,requiredFieldGeneric:`Обязательные поля не заполнены`,saveSuccess:`Успешно сохранено`,deleteSuccess:`Успешно удалено`,saveError:`Что-то пошло не так. Попробуйте ещё раз.`,noticeRequiredFields:`Заполните обязательные поля перед сохранением.`},grid:{buttonAdd:`Добавить`,deleteConfirm:`Вы уверены, что хотите удалить этот элемент?`,emptyState:`Нет элементов для отображения`,filtersButton:`Фильтры`,filtersPanelTitle:`Фильтры`,filtersClearAll:`Сбросить все`,filtersSelectPlaceholder:`Все`,filtersRangeFrom:`От`,filtersRangeTo:`До`,filtersRangeMin:`Мин`,filtersRangeMax:`Макс`,filtersSelectedCountTemplate:`Выбрано: {count}`,tableView:`Табличный вид`,galleryView:`Вид галереи`,columns:`Столбцы`,fields:`Поля`},select:{placeholder:`Выбрать...`,loading:`Загрузка...`},modal:{save:`Сохранить`,delete:`Удалить`,cancel:`Отменить`,close:`Закрыть`,ok:`Ок`,yes:`Да`,no:`Нет`},upload:{clickOrDrag:`Нажмите или перетащите для загрузки...`,dropToUpload:`Отпустите для загрузки`,uploadMore:`Добавить ещё файлы`,editFileName:`Изменить имя файла`,editorImage:`Редактор изображений`,loaded:`Загружено`,removeFile:`Удалить`,uploadAnother:`Загрузить ещё один файл`,dropToParse:`Отпустите для анализа`,insertFromUrl:`Вставить по URL`,urlPlaceholder:`https://…/image.png`,invalidUrl:`Введите корректный URL`},notifications:{title:`Уведомления`,seeAll:`Смотреть все`,markAllRead:`Отметить все как прочитанные`,empty:`Нет уведомлений`,emptyHint:`Новых уведомлений нет`},code:{copyCode:`Копировать код`,copy:`Копировать`,copied:`Скопировано!`,codeLanguageDefault:`Текст`},table:{noDataFound:`Данные не найдены`,selectAllRows:`Выбрать все строки`,sortBy:`Сортировать по {label}`,sortByCurrent:`Сортировать по {label} ({direction})`,selectRow:`Выбрать строку {key}`,reorderRow:`Переместить строку {key}`},gallery:{selectItem:`Выбрать элемент {key}`},sortableList:{handle:`Переместить элемент {position} из {total}: перетащите его или используйте стрелки вверх и вниз`,moved:`Перемещено на позицию {position} из {total}`},crop:{enableCrop:`Включить обрезку в масштабе {scale}`,variants:`Варианты`,outputFile:`Выходной файл`,active:`Активно`,removeVariant:`Удалить вариант {scale}`,fileName:`Имя файла`,altText:`Альтернативный текст`,altTextPlaceholder:`Опишите это изображение…`},imageEditor:{title:`Редактор изображений`,save:`Сохранить`,undo:`Отменить`,redo:`Повторить`,zoomOut:`Уменьшить`,zoomIn:`Увеличить`,crop:`Обрезать`,flipHorizontal:`Отразить горизонтально`,flipVertical:`Отразить вертикально`,rotate:`Повернуть на 90°`,freeDrawing:`Свободное рисование`,arrow:`Стрелка`,text:`Текст`,rectangle:`Прямоугольник`,circle:`Круг`,triangle:`Треугольник`},prompt:{noProviders:`Нет зарегистрированных AI-провайдеров.`,aiNotConfiguredEdit:`AI не настроен. Вы можете редактировать и сохранять этот промпт.`,aiNotConfiguredRun:`AI не настроен. Запуск этого промпта невозможен.`,aiNotConfiguredShort:`AI не настроен`,toggleOnTitle:`Промпт ВКЛЮЧЁН. Текст используется как шаблон и может быть выполнен.`,toggleOffTitle:`Промпт ВЫКЛЮЧЕН. Текст используется напрямую без AI.`,closeEditor:`Закрыть редактор`,editSettings:`Изменить настройки`,attachFiles:`Прикрепить файлы`,dropFilesHere:`Перетащите файлы сюда, чтобы прикрепить`,modelPricing:`Ввод / вывод, USD за 1 млн токенов`,modelPriceNotFound:`Цена не найдена`,attachmentsNotSupported:`Выбранный AI-провайдер не поддерживает изображения или документы.`,run:`Запустить`,runFailed:`Ошибка выполнения промпта.`,noMatchingCommands:`Нет подходящих команд`,tokenUsage:`Использование токенов`,tokenInput:`Вход: {count} tok`,tokenOutput:`Выход: {count} tok`,tokenContext:`Контекст: {percent}%`,tokenCost:"Стоимость: ~${amount}",tokenTime:`Время: {seconds}с`,tokenUsageEmpty:`Запустите промпт для просмотра статистики.`,hidePreview:`Скрыть предпросмотр`,showPreview:`Показать предпросмотр`,noProvider:`AI-провайдер недоступен для этого промпта.`,noResponse:`AI-провайдер не вернул ответа.`,promptLabel:`Промпт: `,defaultOption:`По умолчанию`,role:`Роль`,language:`Язык`,voice:`Голос`,style:`Стиль`,temperature:`Температура`,stop:`Остановить`,stopping:`Остановка…`},layout:{maxElements:`В строке уже 12 элементов: сначала удалите один.`,noSpace:`Нет места: невозможно сжать элементы для добавления.`,dragToMove:`Перетащить для перемещения`,remove:`Удалить`,dragToResize:`Перетащить для изменения размера`,dragHere:`Перетащите элемент сюда`},sideNav:{expandGroup:`Развернуть`,collapseGroup:`Свернуть`,expandSidebar:`Развернуть боковую панель`,collapseSidebar:`Свернуть боковую панель`},autocomplete:{noResults:`Ничего не найдено`,create:`Создать «{value}»`,createPlaceholder:`Введите или нажмите Enter, чтобы создать...`,remove:`Удалить`},addressAutocomplete:{placeholder:`Поиск адреса...`,noResults:`Нет подходящего адреса`,searching:`Поиск...`,notConfigured:`Поиск адресов не настроен (отсутствует ключ Google Maps API).`,loadError:`Не удалось загрузить поиск адресов.`},errorBoundary:{title:`На этой странице возникла проблема`,description:`При отображении этого содержимого произошла непредвиденная ошибка.`,technicalDetails:`Технические подробности`,debugInformation:`Отладочная информация`,context:`Контекст`,time:`Время`,agent:`Агент`,componentTree:`Дерево компонентов`,copyDebug:`Копировать отладочную информацию`,copied:`Скопировано!`,sendReport:`Отправить отчёт`,sending:`Отправка...`,reportSent:`Отчёт отправлен ✓`,reportFailed:`Ошибка - повторить`,tryAgain:`Повторить`,goHome:`На главную`},themeSwitcher:{title:`Настройка темы`,subtitle:`Токены темы и режим меняются сразу, без перезагрузки.`,colorMode:`Цветовой режим`,light:`Светлый`,dark:`Тёмный`,primaryColor:`Основной цвет`,borderRadius:`Скругление углов`,sharp:`Острые`,rounded:`Скруглённые`,font:`Шрифт`,statusColors:`Цвета статусов`,theme:`Тема`,themeDescription:`Тема из текущего реестра.`,iconLibrary:`Библиотека иконок`,weight:`Толщина`,blue:`Синий`,violet:`Фиолетовый`,green:`Зелёный`,rose:`Розовый`,orange:`Оранжевый`,slate:`Сланцевый`,success:`Успех`,warning:`Предупреждение`,info:`Инфо`,danger:`Опасность`,lucideDescription:`Чистый контурный набор иконок`,phosphorDescription:`Гибкая толщина и стили иконок`,weightThin:`Тонкий`,weightLight:`Лёгкий`,weightRegular:`Обычный`,weightBold:`Жирный`,weightFill:`Заливка`},imageField:{openOriginal:`Открыть оригинал`,crop:`Обрезать`,cropTitle:`Обрезать — {name}`,cropImage:`Обрезать изображение`,editImage:`Редактировать изображение`,generatingVariants:`Создание вариантов…`,responsiveVariants:`Адаптивные варианты`,variantsGenerated:`(создано: {count})`,imageUrl:`URL изображения`,imageUrlHint:`(путь или https://…)`,altText:`Альтернативный текст`,altTextHint:`(доступность и SEO)`,altPlaceholder:`Напр. главное фото товара`,linkUrl:`URL ссылки`,optionalHint:`(необязательно)`,newTab:`Новая вкладка`,sameTab:`Та же вкладка`,insertImage:`Вставить изображение`,insertImages:`Вставить изображения`,include:`Включить`,insert:`Вставить`,insertCount:`Вставить ({count})`},richText:{bold:`Жирный`,italic:`Курсив`,underline:`Подчёркнутый`,strike:`Зачёркнутый`,heading1:`Заголовок 1`,heading2:`Заголовок 2`,heading3:`Заголовок 3`,bulletList:`Маркированный список`,orderedList:`Нумерованный список`,blockquote:`Цитата`,inlineCode:`Встроенный код`,codeBlock:`Блок кода`,link:`Ссылка`,undo:`Отменить`,redo:`Повторить`,clearFormat:`Очистить форматирование`,paragraphStyle:`Стиль абзаца`,normal:`Обычный`,insertTable:`Вставить таблицу`,insertTableSize:`Вставить таблицу {rows} × {cols}`,addRowAbove:`Добавить строку выше`,addRowBelow:`Добавить строку ниже`,addColumnLeft:`Добавить столбец слева`,addColumnRight:`Добавить столбец справа`,deleteRow:`Удалить строку`,deleteColumn:`Удалить столбец`,deleteTable:`Удалить таблицу`,uploadImage:`Загрузить изображение`,uploadDocument:`Загрузить документ`,sourceCode:`Исходный код`,source:`Исходный код: {name}`,words:`Слов: {count}`,chars:`Символов: {count}`,editLink:`Изменить ссылку`,removeLink:`Удалить ссылку`,altPlaceholder:`Напр. фото команды на корпоративном выезде`},tabDynamic:{addTab:`Добавить вкладку`},breadcrumbs:{label:`Навигационная цепочка`},chat:{reasoning:`Рассуждение`,reasoningStreaming:`Рассуждает…`,reasoningFor:`Рассуждал {duration}`,durationSeconds:`{seconds} с`,durationMinutes:`{minutes} мин {seconds} с`,questions:`Вопросы`,questionTab:`Вопрос {index}`,review:`Проверка`,reviewHint:`Проверьте ответы и отправьте их.`,other:`Другое`,otherPlaceholder:`Введите свой ответ`,recommended:`Рекомендуется`,chooseOne:`Выберите один`,chooseMany:`Выберите один или несколько`,keyboardHint:`Клавиши {first}–{last} — выбор, Enter — далее`,textKeyboardHint:`Enter — новая строка, Ctrl/⌘+Enter — далее`,next:`Далее`,back:`Назад`,submit:`Отправить`,noAnswer:`Нет ответа`,answered:`Отвечено`,activityCount:`Шагов: {count}`,activityFailed:`Не удалось: {count}`,activityCommands:`Команды`,activityHide:`Скрыть`,activityLog:`Полный журнал`,activitySteps:`По шагам`,activityFiles:`Изменено файлов: {count}`,activityChanges:`Посмотреть изменения`,activityEmpty:`Пока ничего`},charts:{noData:`Нет данных`,total:`Итого`,less:`Меньше`,more:`Больше`,dataTable:`Данные диаграммы`,sequence:`Последовательность`}},yv={common:{save:`保存`,cancel:`取消`,delete:`删除`,close:`关闭`,back:`返回`,search:`搜索`,loading:`加载中...`,noDataFound:`未找到数据`,pageNavigation:`页面导航`,previous:`上一页`,next:`下一页`,notFoundMessage:`哎呀!页面未找到。`,goHome:`返回首页`,openNavigation:`打开导航`},auth:{signIn:`登录`,signOut:`退出`,connect:`连接`,connected:`已连接`,authenticated:`已认证`,notConfigured:`授权提供商"{provider}"未配置。请检查API密钥。`,notImplemented:`提供商未实现signIn()。`},access:{email:`邮箱`,emailPlaceholder:`name@company.com`,password:`密码`,newPassword:`新密码`,name:`姓名`,showPassword:`显示密码`,hidePassword:`隐藏密码`,or:`或`,continue:`继续`,backToSignIn:`返回登录`,emailRequired:`请输入邮箱。`,emailInvalid:`请输入有效的邮箱地址,例如 name@company.com。`,passwordRequired:`请输入密码。`,nameRequired:`请输入姓名。`,signInTitle:`登录`,signInTitleApp:`登录 {app}`,signInDescription:`欢迎回来,请登录后继续。`,signInSubmit:`登录`,forgotPassword:`忘记密码?`,noAccount:`还没有账户?`,signUpLink:`立即注册`,continueWith:`使用 {provider} 继续`,codeRequest:`通过邮箱发送登录码`,usePassword:`改用密码登录`,useCode:`改为通过邮箱接收验证码`,signUpTitle:`创建账户`,signUpDescription:`不到一分钟即可完成。`,signUpSubmit:`创建账户`,haveAccount:`已有账户?`,signInLink:`登录`,terms:`我接受服务条款和隐私政策`,termsRequired:`请接受条款后继续。`,passwordRules:`密码需要包含`,ruleLength:`至少 {min} 个字符`,ruleNumber:`一个数字`,ruleCase:`大写和小写字母`,ruleSymbol:`一个符号,例如 ! 或 #`,ruleMet:`已满足`,ruleNotMet:`未满足`,checkEmailTitle:`请查收邮件`,checkEmailSignUp:`我们已向 {email} 发送链接,打开它即可激活账户。`,checkEmailHint:`没有找到?请查看垃圾邮件文件夹。`,resend:`重新发送`,resendIn:`{seconds} 秒后可重新发送`,resent:`已发送,可能需要一分钟送达。`,useOtherEmail:`使用其他邮箱`,forgotTitle:`忘记密码?`,forgotDescription:`输入账户邮箱,我们会发送一个设置新密码的链接。`,forgotSubmit:`发送链接`,forgotSent:`如果 {email} 有对应账户,设置新密码的链接已发出。`,resetTitle:`设置新密码`,resetDescription:`请使用未在其他网站使用过的密码。`,resetDescriptionFor:`账户 {email}。请使用未在其他网站使用过的密码。`,resetSubmit:`保存密码`,resetDoneTitle:`密码已更改`,resetDone:`新密码已保存,今后请用它登录。`,linkExpiredTitle:`此链接已失效`,linkExpired:`链接仅能使用一次且有时效,请重新申请。`,requestNewLink:`申请新链接`,verifyTitle:`验证邮箱`,verifyPending:`我们已向 {email} 发送链接,打开它即可验证地址。`,verifyPendingNoEmail:`我们已向你发送链接,打开它即可验证地址。`,verifyChecking:`正在验证邮箱…`,verifyDoneTitle:`邮箱已验证`,verifyDone:`账户已激活,可以继续。`,verifiedContinue:`我已验证`,notVerifiedYet:`邮箱尚未验证,请打开我们发送的邮件中的链接。`,codeTitle:`输入验证码`,codeDescription:`我们已向 {email} 发送 {length} 位验证码,几分钟内有效。`,codeLabel:`登录验证码`,codeDigit:`第 {index} 位,共 {length} 位`,codeSubmit:`验证`,codeNotReceived:`没有收到验证码?`,deniedTitle:`无访问权限`,denied:`你已以 {user} 登录,但此账户无法打开该应用。请联系管理员获取权限。`,signInOther:`使用其他账户登录`,errorGeneric:`出现问题,请稍后重试。`,errorCredentials:`邮箱或密码不正确。`,errorEmailInUse:`该邮箱已有账户,请直接登录。`,errorWeakPassword:`密码太容易被猜到,请设置更长的密码。`,errorInvalidEmail:`请输入有效的邮箱地址。`,errorTooManyRequests:`尝试次数过多,请几分钟后再试。`,errorNetwork:`没有网络连接,请检查网络后重试。`,errorInvalidCode:`验证码不正确或已过期。`,errorExpiredLink:`此链接已过期或已被使用,请重新申请。`,errorDisabled:`此账户已被停用,请联系管理员。`,errorCancelled:`登录在完成前被取消。`,errorNotSupported:`此登录方式不可用。`},form:{headerAdd:`添加`,headerEdit:`编辑`,buttonSave:`保存`,buttonDelete:`删除`,buttonBack:`返回`,requiredField:`字段"{field}"为必填项`,requiredFieldGeneric:`必填字段未填写`,saveSuccess:`保存成功`,deleteSuccess:`删除成功`,saveError:`出了点问题,请重试。`,noticeRequiredFields:`请在保存前填写必填字段。`},grid:{buttonAdd:`添加`,deleteConfirm:`确定要删除此项目吗?`,emptyState:`暂无数据`,filtersButton:`筛选`,filtersPanelTitle:`筛选`,filtersClearAll:`清除全部`,filtersSelectPlaceholder:`全部`,filtersRangeFrom:`从`,filtersRangeTo:`到`,filtersRangeMin:`最小`,filtersRangeMax:`最大`,filtersSelectedCountTemplate:`已选 {count} 项`,tableView:`表格视图`,galleryView:`图库视图`,columns:`列`,fields:`字段`},select:{placeholder:`请选择...`,loading:`加载中...`},modal:{save:`保存`,delete:`删除`,cancel:`取消`,close:`关闭`,ok:`确定`,yes:`是`,no:`否`},upload:{clickOrDrag:`点击或拖拽上传...`,dropToUpload:`松开上传`,uploadMore:`添加更多文件`,editFileName:`编辑文件名`,editorImage:`图片编辑器`,loaded:`已加载`,removeFile:`删除`,uploadAnother:`上传另一个文件`,dropToParse:`松开解析`,insertFromUrl:`通过URL插入`,urlPlaceholder:`https://…/image.png`,invalidUrl:`请输入有效的URL`},notifications:{title:`通知`,seeAll:`查看全部`,markAllRead:`全部标为已读`,empty:`暂无通知`,emptyHint:`你已查看全部通知`},code:{copyCode:`复制代码`,copy:`复制`,copied:`已复制!`,codeLanguageDefault:`文本`},table:{noDataFound:`未找到数据`,selectAllRows:`选择所有行`,sortBy:`按{label}排序`,sortByCurrent:`按{label}排序({direction})`,selectRow:`选择行{key}`,reorderRow:`重排行{key}`},gallery:{selectItem:`选择项目{key}`},sortableList:{handle:`移动第 {position} 项(共 {total} 项):拖动它,或使用上下方向键`,moved:`已移到第 {position} 位(共 {total} 位)`},crop:{enableCrop:`启用{scale}比例裁剪`,variants:`变体`,outputFile:`输出文件`,active:`活跃`,removeVariant:`删除变体{scale}`,fileName:`文件名`,altText:`替代文本`,altTextPlaceholder:`描述此图片…`},imageEditor:{title:`图片编辑器`,save:`保存`,undo:`撤销`,redo:`重做`,zoomOut:`缩小`,zoomIn:`放大`,crop:`裁剪`,flipHorizontal:`水平翻转`,flipVertical:`垂直翻转`,rotate:`旋转90°`,freeDrawing:`自由绘制`,arrow:`箭头`,text:`文本`,rectangle:`矩形`,circle:`圆形`,triangle:`三角形`},prompt:{noProviders:`没有已注册的AI提供商。`,aiNotConfiguredEdit:`AI未配置。您仍然可以编辑并保存此提示词。`,aiNotConfiguredRun:`AI未配置。无法运行此提示词。`,aiNotConfiguredShort:`AI未配置`,toggleOnTitle:`提示词已启用。文本用作模板并可执行。`,toggleOffTitle:`提示词已禁用。文本直接使用,不经AI处理。`,closeEditor:`关闭编辑器`,editSettings:`编辑设置`,attachFiles:`附加文件`,dropFilesHere:`拖放文件以附加`,modelPricing:`输入 / 输出,每百万 token 美元价格`,modelPriceNotFound:`未找到价格`,attachmentsNotSupported:`所选AI提供商不支持图像或文档附件。`,run:`运行`,runFailed:`提示词执行失败。`,noMatchingCommands:`没有匹配的命令`,tokenUsage:`Token用量`,tokenInput:`输入:{count} tok`,tokenOutput:`输出:{count} tok`,tokenContext:`上下文:{percent}%`,tokenCost:"费用:~${amount}",tokenTime:`时间:{seconds}秒`,tokenUsageEmpty:`运行提示词以查看Token用量。`,hidePreview:`隐藏预览`,showPreview:`显示解析预览`,noProvider:`此提示词没有可用的AI提供商。`,noResponse:`AI提供商未返回任何响应。`,promptLabel:`Prompt: `,defaultOption:`默认`,role:`角色`,language:`语言`,voice:`语音`,style:`风格`,temperature:`温度`,stop:`停止`,stopping:`正在停止…`},layout:{maxElements:`行中已有12个元素:请先删除一个。`,noSpace:`空间不足:无法缩小元素以插入此字段。`,dragToMove:`拖拽移动`,remove:`删除`,dragToResize:`拖拽调整大小`,dragHere:`拖拽元素到此处`},sideNav:{expandGroup:`展开`,collapseGroup:`收起`,expandSidebar:`展开侧边栏`,collapseSidebar:`收起侧边栏`},autocomplete:{noResults:`没有结果`,create:`创建「{value}」`,createPlaceholder:`输入或按回车创建...`,remove:`移除`},addressAutocomplete:{placeholder:`搜索地址...`,noResults:`未找到匹配地址`,searching:`搜索中...`,notConfigured:`地址搜索未配置(缺少 Google Maps API 密钥)。`,loadError:`无法加载地址搜索。`},errorBoundary:{title:`此页面遇到问题`,description:`渲染此内容时发生意外错误。`,technicalDetails:`技术详情`,debugInformation:`调试信息`,context:`上下文`,time:`时间`,agent:`用户代理`,componentTree:`组件树`,copyDebug:`复制调试信息`,copied:`已复制!`,sendReport:`发送报告`,sending:`正在发送...`,reportSent:`报告已发送 ✓`,reportFailed:`失败 - 重试`,tryAgain:`重试`,goHome:`返回首页`},themeSwitcher:{title:`自定义主题`,subtitle:`实时调整主题令牌和模式,无需重新加载。`,colorMode:`颜色模式`,light:`浅色`,dark:`深色`,primaryColor:`主色`,borderRadius:`圆角`,sharp:`直角`,rounded:`圆润`,font:`字体`,statusColors:`状态颜色`,theme:`主题`,themeDescription:`当前注册表中可用的主题。`,iconLibrary:`图标库`,weight:`粗细`,blue:`蓝色`,violet:`紫色`,green:`绿色`,rose:`玫红`,orange:`橙色`,slate:`石板灰`,success:`成功`,warning:`警告`,info:`信息`,danger:`危险`,lucideDescription:`简洁的线性图标集`,phosphorDescription:`灵活的图标粗细和样式`,weightThin:`极细`,weightLight:`细`,weightRegular:`常规`,weightBold:`粗`,weightFill:`填充`},imageField:{openOriginal:`打开原图`,crop:`裁剪`,cropTitle:`裁剪 — {name}`,cropImage:`裁剪图片`,editImage:`编辑图片`,generatingVariants:`正在生成变体…`,responsiveVariants:`响应式变体`,variantsGenerated:`(已生成 {count} 个)`,imageUrl:`图片 URL`,imageUrlHint:`(路径或 https://…)`,altText:`替代文本`,altTextHint:`(无障碍与 SEO)`,altPlaceholder:`例如:产品主图`,linkUrl:`链接 URL`,optionalHint:`(可选)`,newTab:`新标签页`,sameTab:`当前标签页`,insertImage:`插入图片`,insertImages:`插入多张图片`,include:`包含`,insert:`插入`,insertCount:`插入({count})`},richText:{bold:`粗体`,italic:`斜体`,underline:`下划线`,strike:`删除线`,heading1:`标题 1`,heading2:`标题 2`,heading3:`标题 3`,bulletList:`无序列表`,orderedList:`有序列表`,blockquote:`引用`,inlineCode:`行内代码`,codeBlock:`代码块`,link:`链接`,undo:`撤销`,redo:`重做`,clearFormat:`清除格式`,paragraphStyle:`段落样式`,normal:`正文`,insertTable:`插入表格`,insertTableSize:`插入 {rows} × {cols} 表格`,addRowAbove:`在上方插入行`,addRowBelow:`在下方插入行`,addColumnLeft:`在左侧插入列`,addColumnRight:`在右侧插入列`,deleteRow:`删除行`,deleteColumn:`删除列`,deleteTable:`删除表格`,uploadImage:`上传图片`,uploadDocument:`上传文档`,sourceCode:`源代码`,source:`{name} 源代码`,words:`{count} 个词`,chars:`{count} 个字符`,editLink:`编辑链接`,removeLink:`移除链接`,altPlaceholder:`例如:公司团建时的团队合影`},tabDynamic:{addTab:`添加标签页`},breadcrumbs:{label:`面包屑导航`},chat:{reasoning:`推理`,reasoningStreaming:`正在推理…`,reasoningFor:`推理了 {duration}`,durationSeconds:`{seconds} 秒`,durationMinutes:`{minutes} 分 {seconds} 秒`,questions:`问题`,questionTab:`问题 {index}`,review:`检查`,reviewHint:`检查你的回答,然后提交。`,other:`其他`,otherPlaceholder:`输入你的回答`,recommended:`推荐`,chooseOne:`选择一项`,chooseMany:`选择一项或多项`,keyboardHint:`按 {first}–{last} 选择,按 Enter 继续`,textKeyboardHint:`按 Enter 换行,按 Ctrl/⌘+Enter 继续`,next:`下一步`,back:`返回`,submit:`提交`,noAnswer:`未回答`,answered:`已回答`,activityCount:`{count} 步`,activityFailed:`{count} 个失败`,activityCommands:`命令`,activityHide:`隐藏`,activityLog:`完整日志`,activitySteps:`按步骤查看`,activityFiles:`已修改 {count} 个文件`,activityChanges:`查看更改`,activityEmpty:`暂无内容`},charts:{noData:`暂无数据`,total:`合计`,less:`较少`,more:`较多`,dataTable:`图表数据`,sequence:`顺序`}},bv={common:{save:`حفظ`,cancel:`إلغاء`,delete:`حذف`,close:`إغلاق`,back:`رجوع`,search:`بحث`,loading:`جاري التحميل...`,noDataFound:`لم يتم العثور على بيانات`,pageNavigation:`تنقل الصفحات`,previous:`السابق`,next:`التالي`,notFoundMessage:`عفوًا! الصفحة غير موجودة.`,goHome:`الذهاب إلى الرئيسية`,openNavigation:`فتح التنقل`},auth:{signIn:`تسجيل الدخول`,signOut:`تسجيل الخروج`,connect:`ربط`,connected:`مرتبط`,authenticated:`موثق`,notConfigured:`مزود المصادقة "{provider}" غير مكوّن. يرجى التحقق من مفاتيح API.`,notImplemented:`المزود لا ينفّذ signIn().`},access:{email:`البريد الإلكتروني`,emailPlaceholder:`name@company.com`,password:`كلمة المرور`,newPassword:`كلمة المرور الجديدة`,name:`الاسم الكامل`,showPassword:`إظهار كلمة المرور`,hidePassword:`إخفاء كلمة المرور`,or:`أو`,continue:`متابعة`,backToSignIn:`العودة إلى تسجيل الدخول`,emailRequired:`أدخل بريدك الإلكتروني.`,emailInvalid:`أدخل عنوان بريد صالحًا، مثل name@company.com.`,passwordRequired:`أدخل كلمة المرور.`,nameRequired:`أدخل اسمك.`,signInTitle:`تسجيل الدخول`,signInTitleApp:`تسجيل الدخول إلى {app}`,signInDescription:`مرحبًا بعودتك. سجّل الدخول للمتابعة.`,signInSubmit:`تسجيل الدخول`,forgotPassword:`نسيت كلمة المرور؟`,noAccount:`ليس لديك حساب؟`,signUpLink:`أنشئ حسابًا`,continueWith:`المتابعة باستخدام {provider}`,codeRequest:`أرسل لي رمز الدخول بالبريد`,usePassword:`تسجيل الدخول بكلمة المرور بدلًا من ذلك`,useCode:`أرسل لي رمزًا بالبريد بدلًا من ذلك`,signUpTitle:`أنشئ حسابك`,signUpDescription:`يستغرق الأمر أقل من دقيقة.`,signUpSubmit:`إنشاء الحساب`,haveAccount:`لديك حساب بالفعل؟`,signInLink:`تسجيل الدخول`,terms:`أوافق على شروط الخدمة وسياسة الخصوصية`,termsRequired:`وافق على الشروط للمتابعة.`,passwordRules:`تحتاج كلمة المرور إلى`,ruleLength:`{min} أحرف على الأقل`,ruleNumber:`رقم`,ruleCase:`أحرف كبيرة وصغيرة`,ruleSymbol:`رمز، مثل ! أو #`,ruleMet:`مكتمل`,ruleNotMet:`ناقص`,checkEmailTitle:`تحقق من بريدك الإلكتروني`,checkEmailSignUp:`أرسلنا رابطًا إلى {email}. افتحه لتفعيل حسابك.`,checkEmailHint:`لم تجده؟ تحقق من مجلد الرسائل غير المرغوب فيها.`,resend:`إعادة الإرسال`,resendIn:`إعادة الإرسال بعد {seconds} ث`,resent:`تم الإرسال. قد يستغرق وصوله دقيقة.`,useOtherEmail:`استخدام بريد آخر`,forgotTitle:`نسيت كلمة المرور؟`,forgotDescription:`أدخل البريد الإلكتروني لحسابك وسنرسل لك رابطًا لاختيار كلمة مرور جديدة.`,forgotSubmit:`إرسال الرابط`,forgotSent:`إذا كان هناك حساب لـ {email}، فإن رابط اختيار كلمة مرور جديدة في الطريق.`,resetTitle:`اختر كلمة مرور جديدة`,resetDescription:`استخدم كلمة مرور لا تستخدمها في مواقع أخرى.`,resetDescriptionFor:`للحساب {email}. استخدم كلمة مرور لا تستخدمها في مواقع أخرى.`,resetSubmit:`حفظ كلمة المرور`,resetDoneTitle:`تم تغيير كلمة المرور`,resetDone:`تم حفظ كلمة المرور الجديدة. استخدمها لتسجيل الدخول من الآن.`,linkExpiredTitle:`هذا الرابط لم يعد يعمل`,linkExpired:`الروابط تعمل مرة واحدة ولمدة محدودة. اطلب رابطًا جديدًا.`,requestNewLink:`اطلب رابطًا جديدًا`,verifyTitle:`أكّد بريدك الإلكتروني`,verifyPending:`أرسلنا رابطًا إلى {email}. افتحه لتأكيد العنوان.`,verifyPendingNoEmail:`أرسلنا لك رابطًا. افتحه لتأكيد العنوان.`,verifyChecking:`جارٍ تأكيد بريدك الإلكتروني…`,verifyDoneTitle:`تم تأكيد البريد الإلكتروني`,verifyDone:`حسابك مفعّل. يمكنك المتابعة.`,verifiedContinue:`لقد أكّدته`,notVerifiedYet:`لم يتم تأكيد بريدك بعد. افتح الرابط في الرسالة التي أرسلناها.`,codeTitle:`أدخل الرمز`,codeDescription:`أرسلنا رمزًا من {length} أرقام إلى {email}. يعمل لبضع دقائق.`,codeLabel:`رمز الدخول`,codeDigit:`الرقم {index} من {length}`,codeSubmit:`تحقق`,codeNotReceived:`لم يصلك الرمز؟`,deniedTitle:`لا يوجد وصول`,denied:`سجّلت الدخول باسم {user}، لكن هذا الحساب لا يمكنه فتح التطبيق. اطلب الوصول من المسؤول.`,signInOther:`تسجيل الدخول بحساب آخر`,errorGeneric:`حدث خطأ ما. حاول مرة أخرى بعد قليل.`,errorCredentials:`البريد الإلكتروني أو كلمة المرور غير صحيحة.`,errorEmailInUse:`يوجد حساب بهذا البريد بالفعل. سجّل الدخول.`,errorWeakPassword:`كلمة المرور هذه سهلة التخمين. اختر كلمة أطول.`,errorInvalidEmail:`أدخل عنوان بريد إلكتروني صالحًا.`,errorTooManyRequests:`محاولات كثيرة جدًا. انتظر بضع دقائق ثم حاول مجددًا.`,errorNetwork:`لا يوجد اتصال. تحقق من الشبكة وحاول مجددًا.`,errorInvalidCode:`الرمز غير صحيح أو منتهي الصلاحية.`,errorExpiredLink:`انتهت صلاحية هذا الرابط أو تم استخدامه. اطلب رابطًا جديدًا.`,errorDisabled:`هذا الحساب معطّل. تواصل مع المسؤول.`,errorCancelled:`تم إلغاء تسجيل الدخول قبل اكتماله.`,errorNotSupported:`طريقة تسجيل الدخول هذه غير متاحة.`},form:{headerAdd:`إضافة`,headerEdit:`تعديل`,buttonSave:`حفظ`,buttonDelete:`حذف`,buttonBack:`رجوع`,requiredField:`الحقل "{field}" إلزامي`,requiredFieldGeneric:`الحقول الإلزامية غير مكتملة`,saveSuccess:`تم الحفظ بنجاح`,deleteSuccess:`تم الحذف بنجاح`,saveError:`حدث خطأ ما. حاول مرة أخرى.`,noticeRequiredFields:`يرجى ملء الحقول الإلزامية قبل الحفظ.`},grid:{buttonAdd:`إضافة`,deleteConfirm:`هل أنت متأكد من حذف هذا العنصر؟`,emptyState:`لا توجد عناصر للعرض`,filtersButton:`الفلاتر`,filtersPanelTitle:`الفلاتر`,filtersClearAll:`مسح الكل`,filtersSelectPlaceholder:`الكل`,filtersRangeFrom:`من`,filtersRangeTo:`إلى`,filtersRangeMin:`أدنى`,filtersRangeMax:`أقصى`,filtersSelectedCountTemplate:`تم اختيار {count}`,tableView:`عرض الجدول`,galleryView:`عرض المعرض`,columns:`الأعمدة`,fields:`الحقول`},select:{placeholder:`اختر...`,loading:`جارٍ التحميل...`},modal:{save:`حفظ`,delete:`حذف`,cancel:`إلغاء`,close:`إغلاق`,ok:`موافق`,yes:`نعم`,no:`لا`},upload:{clickOrDrag:`انقر أو اسحب للتحميل...`,dropToUpload:`أفلت للتحميل`,uploadMore:`إضافة المزيد من الملفات`,editFileName:`تعديل اسم الملف`,editorImage:`محرر الصور`,loaded:`محمّل`,removeFile:`إزالة`,uploadAnother:`تحميل ملف آخر`,dropToParse:`أفلت للتحليل`,insertFromUrl:`إدراج من رابط`,urlPlaceholder:`https://…/image.png`,invalidUrl:`أدخل رابطًا صالحًا`},notifications:{title:`الإشعارات`,seeAll:`عرض الكل`,markAllRead:`تعليم الكل كمقروء`,empty:`لا توجد إشعارات`,emptyHint:`لا جديد لديك`},code:{copyCode:`نسخ الكود`,copy:`نسخ`,copied:`تم النسخ!`,codeLanguageDefault:`نص`},table:{noDataFound:`لم يتم العثور على بيانات`,selectAllRows:`تحديد جميع الصفوف`,sortBy:`ترتيب حسب {label}`,sortByCurrent:`ترتيب حسب {label} ({direction})`,selectRow:`تحديد الصف {key}`,reorderRow:`إعادة ترتيب الصف {key}`},gallery:{selectItem:`تحديد العنصر {key}`},sortableList:{handle:`نقل العنصر {position} من {total}: اسحبه أو استخدم السهمين لأعلى ولأسفل`,moved:`نُقل إلى الموضع {position} من {total}`},crop:{enableCrop:`تفعيل الاقتصاص بمقياس {scale}`,variants:`المتغيرات`,outputFile:`ملف الإخراج`,active:`نشط`,removeVariant:`إزالة المتغير {scale}`,fileName:`اسم الملف`,altText:`النص البديل`,altTextPlaceholder:`صف هذه الصورة…`},imageEditor:{title:`محرر الصور`,save:`حفظ`,undo:`تراجع`,redo:`إعادة`,zoomOut:`تصغير`,zoomIn:`تكبير`,crop:`اقتصاص`,flipHorizontal:`قلب أفقي`,flipVertical:`قلب رأسي`,rotate:`تدوير 90°`,freeDrawing:`رسم حر`,arrow:`سهم`,text:`نص`,rectangle:`مستطيل`,circle:`دائرة`,triangle:`مثلث`},prompt:{noProviders:`لا توجد مزودات AI مسجّلة.`,aiNotConfiguredEdit:`AI غير مكوّن. يمكنك تعديل وحفظ هذا الأمر.`,aiNotConfiguredRun:`AI غير مكوّن. لا يمكن تشغيل هذا الأمر.`,aiNotConfiguredShort:`AI غير مكوّن`,toggleOnTitle:`الأمر مفعّل. النص يُستخدم كقالب ويمكن تشغيله.`,toggleOffTitle:`الأمر معطّل. النص يُستخدم مباشرةً دون معالجة AI.`,closeEditor:`إغلاق المحرر`,editSettings:`تعديل الإعدادات`,attachFiles:`إرفاق الملفات`,dropFilesHere:`أفلت الملفات هنا لإرفاقها`,modelPricing:`الإدخال / الإخراج، دولار أمريكي لكل مليون رمز`,modelPriceNotFound:`السعر غير متوفر`,attachmentsNotSupported:`مزوّد AI المحدد لا يدعم مرفقات الصور أو المستندات.`,run:`تشغيل`,runFailed:`فشل تنفيذ الأمر.`,noMatchingCommands:`لا توجد أوامر مطابقة`,tokenUsage:`استخدام الرموز`,tokenInput:`دخل: {count} tok`,tokenOutput:`خرج: {count} tok`,tokenContext:`السياق: {percent}%`,tokenCost:"التكلفة: ~${amount}",tokenTime:`الوقت: {seconds}ث`,tokenUsageEmpty:`شغّل الأمر لعرض إحصائيات الرموز.`,hidePreview:`إخفاء المعاينة`,showPreview:`عرض المعاينة المحلولة`,noProvider:`لا يوجد مزود AI متاح لهذا الأمر.`,noResponse:`لم يُرجع مزود AI أي استجابة.`,promptLabel:`أمر: `,defaultOption:`افتراضي`,role:`الدور`,language:`اللغة`,voice:`الصوت`,style:`الأسلوب`,temperature:`درجة الحرارة`,stop:`إيقاف`,stopping:`جارٍ الإيقاف…`},layout:{maxElements:`الصف يحتوي بالفعل على 12 عنصرًا: احذف عنصرًا أولاً.`,noSpace:`لا مساحة: لا يمكن تصغير العناصر لإضافة هذا الحقل.`,dragToMove:`اسحب للتحريك`,remove:`إزالة`,dragToResize:`اسحب لتغيير الحجم`,dragHere:`اسحب عنصرًا إلى هنا`},sideNav:{expandGroup:`توسيع`,collapseGroup:`طي`,expandSidebar:`توسيع الشريط الجانبي`,collapseSidebar:`طي الشريط الجانبي`},autocomplete:{noResults:`لا توجد نتائج`,create:`إنشاء «{value}»`,createPlaceholder:`اكتب أو اضغط Enter للإنشاء...`,remove:`إزالة`},addressAutocomplete:{placeholder:`ابحث عن عنوان...`,noResults:`لا يوجد عنوان مطابق`,searching:`جارٍ البحث...`,notConfigured:`البحث عن العناوين غير مُعد (مفتاح Google Maps API مفقود).`,loadError:`تعذر تحميل البحث عن العناوين.`},errorBoundary:{title:`واجهت هذه الصفحة مشكلة`,description:`حدث خطأ غير متوقع أثناء عرض هذا المحتوى.`,technicalDetails:`التفاصيل التقنية`,debugInformation:`معلومات التصحيح`,context:`السياق`,time:`الوقت`,agent:`الوكيل`,componentTree:`شجرة المكونات`,copyDebug:`نسخ معلومات التصحيح`,copied:`تم النسخ!`,sendReport:`إرسال التقرير`,sending:`جارٍ الإرسال...`,reportSent:`تم إرسال التقرير ✓`,reportFailed:`فشل - أعد المحاولة`,tryAgain:`إعادة المحاولة`,goHome:`الذهاب إلى الرئيسية`},themeSwitcher:{title:`تخصيص السمة`,subtitle:`رموز السمة وأوضاعها مباشرةً دون إعادة تحميل.`,colorMode:`وضع الألوان`,light:`فاتح`,dark:`داكن`,primaryColor:`اللون الأساسي`,borderRadius:`استدارة الحواف`,sharp:`حادة`,rounded:`مستديرة`,font:`الخط`,statusColors:`ألوان الحالة`,theme:`السمة`,themeDescription:`سمة متاحة في السجل الحالي.`,iconLibrary:`مكتبة الأيقونات`,weight:`السماكة`,blue:`أزرق`,violet:`بنفسجي`,green:`أخضر`,rose:`وردي`,orange:`برتقالي`,slate:`رمادي أردوازي`,success:`نجاح`,warning:`تحذير`,info:`معلومات`,danger:`خطر`,lucideDescription:`مجموعة أيقونات خطية نظيفة`,phosphorDescription:`سماكات وأنماط أيقونات مرنة`,weightThin:`رفيع`,weightLight:`خفيف`,weightRegular:`عادي`,weightBold:`عريض`,weightFill:`مملوء`},imageField:{openOriginal:`فتح الأصل`,crop:`قص`,cropTitle:`قص — {name}`,cropImage:`قص الصورة`,editImage:`تعديل الصورة`,generatingVariants:`جارٍ إنشاء النسخ…`,responsiveVariants:`نسخ متجاوبة`,variantsGenerated:`(تم إنشاء {count})`,imageUrl:`رابط الصورة`,imageUrlHint:`(مسار أو https://…)`,altText:`النص البديل`,altTextHint:`(إمكانية الوصول وتحسين محركات البحث)`,altPlaceholder:`مثال: الصورة الرئيسية للمنتج`,linkUrl:`رابط الوصلة`,optionalHint:`(اختياري)`,newTab:`علامة تبويب جديدة`,sameTab:`نفس علامة التبويب`,insertImage:`إدراج صورة`,insertImages:`إدراج صور`,include:`تضمين`,insert:`إدراج`,insertCount:`إدراج ({count})`},richText:{bold:`عريض`,italic:`مائل`,underline:`تسطير`,strike:`يتوسطه خط`,heading1:`عنوان 1`,heading2:`عنوان 2`,heading3:`عنوان 3`,bulletList:`قائمة نقطية`,orderedList:`قائمة مرقمة`,blockquote:`اقتباس`,inlineCode:`رمز ضمني`,codeBlock:`كتلة رمز`,link:`رابط`,undo:`تراجع`,redo:`إعادة`,clearFormat:`مسح التنسيق`,paragraphStyle:`نمط الفقرة`,normal:`عادي`,insertTable:`إدراج جدول`,insertTableSize:`إدراج جدول {rows} × {cols}`,addRowAbove:`إضافة صف أعلى`,addRowBelow:`إضافة صف أسفل`,addColumnLeft:`إضافة عمود يسارًا`,addColumnRight:`إضافة عمود يمينًا`,deleteRow:`حذف الصف`,deleteColumn:`حذف العمود`,deleteTable:`حذف الجدول`,uploadImage:`رفع صورة`,uploadDocument:`رفع مستند`,sourceCode:`الشيفرة المصدرية`,source:`مصدر {name}`,words:`{count} كلمة`,chars:`{count} حرف`,editLink:`تعديل الرابط`,removeLink:`إزالة الرابط`,altPlaceholder:`مثال: صورة الفريق في رحلة الشركة`},tabDynamic:{addTab:`إضافة علامة تبويب`},breadcrumbs:{label:`مسار التنقل`},chat:{reasoning:`التفكير`,reasoningStreaming:`يفكر…`,reasoningFor:`فكّر لمدة {duration}`,durationSeconds:`{seconds} ث`,durationMinutes:`{minutes} د {seconds} ث`,questions:`الأسئلة`,questionTab:`السؤال {index}`,review:`المراجعة`,reviewHint:`راجع إجاباتك ثم أرسلها.`,other:`أخرى`,otherPlaceholder:`اكتب إجابتك`,recommended:`موصى به`,chooseOne:`اختر واحدًا`,chooseMany:`اختر واحدًا أو أكثر`,keyboardHint:`المفاتيح {first}–{last} للاختيار، Enter للمتابعة`,textKeyboardHint:`Enter لسطر جديد، Ctrl/⌘+Enter للمتابعة`,next:`التالي`,back:`رجوع`,submit:`إرسال`,noAnswer:`لا توجد إجابة`,answered:`تمت الإجابة`,activityCount:`{count} خطوات`,activityFailed:`{count} فشلت`,activityCommands:`الأوامر`,activityHide:`إخفاء`,activityLog:`السجل الكامل`,activitySteps:`عرض الخطوات`,activityFiles:`{count} ملفات معدلة`,activityChanges:`عرض التغييرات`,activityEmpty:`لا شيء بعد`},charts:{noData:`لا توجد بيانات`,total:`الإجمالي`,less:`أقل`,more:`أكثر`,dataTable:`بيانات المخطط`,sequence:`التسلسل`}},xv=e.n({ar:()=>bv,de:()=>_v,en:()=>it,it:()=>gv,ru:()=>vv,zh:()=>yv});function Sv({onSignUp:e,onResendVerification:t,askName:r=!0,terms:i,passwordRules:a={},providers:o=[],onProviderSignIn:s,signInLink:c,resendSeconds:l=30,title:u,description:d,onSignedUp:f,errorMessage:p,brand:m,toolbar:h,footer:g,bare:_,className:v}){let y=bl(),[b,x]=(0,n.useState)(``),[S,C]=(0,n.useState)(``),[w,T]=(0,n.useState)(``),[E,D]=(0,n.useState)(!1),[O,k]=(0,n.useState)({}),[A,j]=(0,n.useState)(null),[M,N]=(0,n.useState)(null),[P,F]=(0,n.useState)(null),I=El(p),L=El(p),[R,z]=jl(l),B=(0,n.useRef)(null),ee={brand:m,toolbar:h,footer:g,bare:_,className:v};if(A)return n.default.createElement(or,{...ee,icon:`mail`,title:y.checkEmailTitle,description:n.default.createElement(Xl,{text:J(y.checkEmailSignUp,{email:A}),email:A}),below:n.default.createElement(Ul,{text:y.haveAccount,link:c,label:y.signInLink})},n.default.createElement(`div`,{className:`space-y-4 text-center text-sm text-muted-foreground`},n.default.createElement(`p`,null,y.checkEmailHint),n.default.createElement(Ll,{message:L.error}),n.default.createElement(Rl,{message:M}),n.default.createElement(`div`,{className:`flex flex-col items-center gap-2`},t&&n.default.createElement(Vl,{disabled:R>0||L.pending,onClick:async()=>{N(null),(await L.run(()=>t(A))).ok&&(N(y.resent),z())}},R>0?J(y.resendIn,{seconds:R}):y.resend),n.default.createElement(Vl,{onClick:()=>{j(null),N(null)}},y.useOtherEmail))));let V=e=>{O[e]&&k(t=>({...t,[e]:void 0}))},H=async t=>{t.preventDefault();let n=kl(w,a,y).some(e=>!e.met),o={name:r&&!b.trim()?y.nameRequired:void 0,email:Ol(S,y),password:w?n?y.errorWeakPassword:void 0:y.passwordRequired,terms:i&&!E?y.termsRequired:void 0};if(k(o),Object.values(o).some(Boolean)){Al(B.current);return}let s=S.trim(),c=await I.run(()=>e({...r?{name:b.trim()}:{},email:s,password:w}));if(!c.ok)return;let l=c.value;l&&typeof l==`object`&&l.needsEmailVerification?(z(),j(s)):f?.()},U=async e=>{if(!s)return;F(e);let t=await I.run(()=>s(e));F(null),t.ok&&f?.()},te=o.length>0&&!!s;return n.default.createElement(or,{...ee,title:u??y.signUpTitle,description:d??y.signUpDescription,below:n.default.createElement(Ul,{text:y.haveAccount,link:c,label:y.signInLink})},n.default.createElement(`div`,{className:`space-y-6`},te&&n.default.createElement(n.default.Fragment,null,n.default.createElement(ql,{providers:o,onSelect:U,pending:P,disabled:I.pending}),n.default.createElement(Hl,{label:y.or})),n.default.createElement(`form`,{ref:B,className:`space-y-4`,noValidate:!0,onSubmit:H},r&&n.default.createElement(Nl,{label:y.name,name:`name`,value:b,onChange:e=>{x(e),V(`name`)},autoComplete:`name`,error:O.name,autoFocus:!te,required:!0}),n.default.createElement(Nl,{label:y.email,type:`email`,name:`email`,value:S,onChange:e=>{C(e),V(`email`)},autoComplete:`email`,autoCapitalize:`none`,spellCheck:!1,error:O.email,autoFocus:!r&&!te,required:!0}),n.default.createElement(Pl,{label:y.password,name:`new-password`,value:w,onChange:e=>{T(e),V(`password`)},autoComplete:`new-password`,error:O.password,rules:a,required:!0}),i&&n.default.createElement(`div`,{className:`space-y-1.5`},n.default.createElement(`label`,{className:`flex cursor-pointer items-start gap-2.5 text-sm text-foreground`},n.default.createElement(`input`,{type:`checkbox`,checked:E,onChange:e=>{D(e.target.checked),V(`terms`)},"aria-invalid":O.terms?!0:void 0,"aria-describedby":O.terms?`signup-terms-error`:void 0,className:`mt-0.5 h-4 w-4 shrink-0 cursor-pointer rounded-sm border border-input accent-[hsl(var(--rf-primary))] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`}),n.default.createElement(`span`,{className:`leading-snug`},i===!0?y.terms:i)),O.terms&&n.default.createElement(`p`,{id:`signup-terms-error`,className:`text-sm text-foreground`},O.terms)),n.default.createElement(Ll,{message:I.error}),n.default.createElement(Fl,{pending:I.pending&&!P},y.signUpSubmit))))}function Cv({onSendReset:e,signInLink:t,defaultEmail:r=``,resendSeconds:i=30,title:a,description:o,errorMessage:s,brand:c,toolbar:l,footer:u,bare:d,className:f}){let p=bl(),[m,h]=(0,n.useState)(r),[g,_]=(0,n.useState)(),[v,y]=(0,n.useState)(null),[b,x]=(0,n.useState)(null),S=El(s),[C,w]=jl(i),T=(0,n.useRef)(null),E={brand:c,toolbar:l,footer:u,bare:d,className:f},D=t&&n.default.createElement(`p`,{className:`text-center text-sm`},n.default.createElement(Bl,{to:t},p.backToSignIn)),O=async t=>{x(null),(await S.run(()=>e(t))).ok&&(w(),v&&x(p.resent),y(t))};return v?n.default.createElement(or,{...E,icon:`mail`,title:p.checkEmailTitle,description:n.default.createElement(Xl,{text:J(p.forgotSent,{email:v}),email:v}),below:D},n.default.createElement(`div`,{className:`space-y-4 text-center text-sm text-muted-foreground`},n.default.createElement(`p`,null,p.checkEmailHint),n.default.createElement(Ll,{message:S.error}),n.default.createElement(Rl,{message:b}),n.default.createElement(`div`,{className:`flex flex-col items-center gap-2`},n.default.createElement(Vl,{disabled:C>0||S.pending,onClick:()=>void O(v)},C>0?J(p.resendIn,{seconds:C}):p.resend),n.default.createElement(Vl,{onClick:()=>{y(null),x(null),S.clear()}},p.useOtherEmail)))):n.default.createElement(or,{...E,title:a??p.forgotTitle,description:o??p.forgotDescription,below:D},n.default.createElement(`form`,{ref:T,className:`space-y-4`,noValidate:!0,onSubmit:async e=>{e.preventDefault();let t=Ol(m,p);if(_(t),t){Al(T.current);return}await O(m.trim())}},n.default.createElement(Nl,{label:p.email,type:`email`,name:`email`,value:m,onChange:e=>{h(e),_(void 0)},autoComplete:`email`,autoCapitalize:`none`,spellCheck:!1,error:g,autoFocus:!0,required:!0}),n.default.createElement(Ll,{message:S.error}),n.default.createElement(Fl,{pending:S.pending},p.forgotSubmit)))}function wv({onResetPassword:e,email:t,invalidLink:r,passwordRules:i={},signInLink:a,requestNewLink:o,title:s,description:c,onDone:l,errorMessage:u,brand:d,toolbar:f,footer:p,bare:m,className:h}){let g=bl(),[_,v]=(0,n.useState)(``),[y,b]=(0,n.useState)(),[x,S]=(0,n.useState)(!1),C=El(u),w=(0,n.useRef)(null),T={brand:d,toolbar:f,footer:p,bare:m,className:h},E=a&&n.default.createElement(`p`,{className:`text-center text-sm`},n.default.createElement(Bl,{to:a},g.backToSignIn));return r||C.reason===`expiredLink`?n.default.createElement(or,{...T,icon:`link-break`,tone:`warning`,title:g.linkExpiredTitle,description:g.linkExpired,below:E},o&&n.default.createElement(Tv,{to:o},g.requestNewLink)):x?n.default.createElement(or,{...T,icon:`check-circle`,tone:`success`,title:g.resetDoneTitle,description:g.resetDone},a&&n.default.createElement(Tv,{to:a},g.signInLink)):n.default.createElement(or,{...T,title:s??g.resetTitle,description:c??(t?n.default.createElement(Xl,{text:J(g.resetDescriptionFor,{email:t}),email:t}):g.resetDescription),below:E},n.default.createElement(`form`,{ref:w,className:`space-y-4`,noValidate:!0,onSubmit:async t=>{t.preventDefault();let n=kl(_,i,g).some(e=>!e.met),r=_?n?g.errorWeakPassword:void 0:g.passwordRequired;if(b(r),r){Al(w.current);return}(await C.run(()=>e(_))).ok&&(S(!0),l?.())}},t&&n.default.createElement(`input`,{type:`email`,name:`username`,autoComplete:`username`,value:t,readOnly:!0,hidden:!0}),n.default.createElement(Pl,{label:g.newPassword,name:`new-password`,value:_,onChange:e=>{v(e),b(void 0)},autoComplete:`new-password`,error:y,rules:i,autoFocus:!0,required:!0}),n.default.createElement(Ll,{message:C.error}),n.default.createElement(Fl,{pending:C.pending},g.resetSubmit)))}function Tv({to:e,children:t}){let i=X(`btn`,cn,`h-11 w-full text-base sm:h-10 sm:text-sm`);return typeof e==`string`?/^[a-z][a-z0-9+.-]*:/i.test(e)?n.default.createElement(`a`,{href:e,className:i},t):n.default.createElement(r.Link,{to:e,className:i},t):n.default.createElement(`button`,{type:`button`,onClick:e,className:i},t)}function Ev({code:e,onVerify:t,email:r,onResend:i,onContinue:a,continueLink:o,signInLink:s,resendSeconds:c=30,onVerified:l,errorMessage:u,brand:d,toolbar:f,footer:p,bare:m,className:h}){let g=bl(),[_,v]=(0,n.useState)(e&&t?`checking`:`waiting`),[y,b]=(0,n.useState)(null),x=El(u),S=El(u),C=El(u),[w,T]=(0,n.useState)(!1),[E,D]=jl(c),O=(0,n.useRef)(null),k={brand:d,toolbar:f,footer:p,bare:m,className:h},A=s&&n.default.createElement(`p`,{className:`text-center text-sm`},n.default.createElement(Bl,{to:s},g.backToSignIn));(0,n.useEffect)(()=>{e&&t&&O.current!==e&&(O.current=e,v(`checking`),x.run(()=>t(e)).then(e=>{v(e.ok?`done`:`failed`),e.ok&&l?.()}))},[e,t]);let j=i&&n.default.createElement(Vl,{disabled:E>0||S.pending,onClick:async()=>{b(null),(await S.run(i)).ok&&(b(g.resent),D())}},E>0?J(g.resendIn,{seconds:E}):g.resend);if(_===`checking`)return n.default.createElement(or,{...k,title:g.verifyChecking},n.default.createElement(`div`,{className:`flex justify-center py-2 text-muted-foreground`,role:`status`,"aria-label":g.verifyChecking},n.default.createElement(Il,{className:`h-6 w-6`})));if(_===`done`)return n.default.createElement(or,{...k,icon:`check-circle`,tone:`success`,title:g.verifyDoneTitle,description:g.verifyDone},(o??s)&&n.default.createElement(Tv,{to:o??s},g.continue));if(_===`failed`){let e=x.reason===`expiredLink`||x.reason===`invalidCode`;return n.default.createElement(or,{...k,icon:`link-break`,tone:`warning`,title:e?g.linkExpiredTitle:g.verifyTitle,description:e?g.linkExpired:void 0,below:A},n.default.createElement(`div`,{className:`space-y-4 text-center`},!e&&n.default.createElement(Ll,{message:x.error}),n.default.createElement(Ll,{message:S.error}),n.default.createElement(Rl,{message:y}),j))}return n.default.createElement(or,{...k,icon:`mail`,title:g.verifyTitle,description:r?n.default.createElement(Xl,{text:J(g.verifyPending,{email:r}),email:r}):g.verifyPendingNoEmail,below:A},n.default.createElement(`div`,{className:`space-y-4`},n.default.createElement(`p`,{className:`text-center text-sm text-muted-foreground`},g.checkEmailHint),n.default.createElement(Ll,{message:w?g.notVerifiedYet:C.error??S.error}),n.default.createElement(Rl,{message:y}),a&&n.default.createElement(`form`,{noValidate:!0,onSubmit:async e=>{e.preventDefault(),T(!1),b(null);let t=await C.run(a);t.ok&&(t.value===!1?T(!0):(v(`done`),l?.()))}},n.default.createElement(Fl,{pending:C.pending},g.verifiedContinue)),j&&n.default.createElement(`div`,{className:`text-center`},j)))}var Dv=e=>Du(`api`,e);async function Ov(e){if(!e.ok)throw Error(`ApiProvider request failed: ${e.status} ${e.statusText}`);let t=await e.text();return t?JSON.parse(t):void 0}var kv=class{config;constructor(e){this.config=e}async fetch(e){let t=(e.method??`POST`).toUpperCase(),n=new URL(this.config.baseUrl.replace(/\/+$/,``)+`/`+e.path.replace(/^\/+/,``));Object.entries({...e.query,...this.config.query}).forEach(([e,t])=>n.searchParams.set(e,t));let r={...e.body,...this.config.body};return Ov(await Ca(n.toString(),{method:t,headers:{"Content-Type":`application/json`,...this.config.header},body:t===`GET`||t===`HEAD`?void 0:JSON.stringify(r)}))}},Av=class{resolver;constructor(e){this.resolver=e}async fetch(e){return this.resolver(e)}},jv=class{config;constructor(e){this.config=e}async fetch(e){return zu(this.config.functionName,{provider:this.config.providerName,request:e},void 0,this.config.region)}},Mv=class{config;constructor(e){this.config=e}async fetch(e){let{data:t,error:n}=await Zu(this.config.url,this.config.anonKey).functions.invoke(this.config.functionName,{body:{provider:this.config.providerName,request:e}});if(n)throw n;return t}},Nv=[{id:`resend`,label:`Resend`,description:`Developer-first transactional email API.`,credentialFields:[{key:`apiKey`,label:`API Key`,type:`password`,placeholder:`re_...`}],credentialsUrl:`https://resend.com/api-keys`,credentialsHint:`Resend dashboard → API Keys → Create API Key.`},{id:`sendgrid`,label:`SendGrid`,description:`Scalable email delivery by Twilio.`,credentialFields:[{key:`apiKey`,label:`API Key`,type:`password`,placeholder:`SG...`}],credentialsUrl:`https://app.sendgrid.com/settings/api_keys`,credentialsHint:`SendGrid dashboard → Settings → API Keys → Create API Key.`},{id:`mailgun`,label:`Mailgun`,description:`Email API with analytics and webhooks.`,credentialFields:[{key:`apiKey`,label:`API Key`,type:`password`},{key:`domain`,label:`Mailgun domain`,type:`text`,placeholder:`mg.yourdomain.com`}],credentialsUrl:`https://app.mailgun.com/settings/api_security/api_keys`,credentialsHint:`Mailgun dashboard → Security → API Keys. The domain is the sending domain you verified under Sending → Domains.`},{id:`postmark`,label:`Postmark`,description:`High-deliverability transactional email.`,credentialFields:[{key:`serverToken`,label:`Server API Token`,type:`password`}],credentialsUrl:`https://account.postmarkapp.com/servers`,credentialsHint:`Postmark → your Server → API Tokens tab (each server has its own token).`},{id:`ses`,label:`AWS SES`,description:`Amazon Simple Email Service.`,credentialFields:[{key:`accessKeyId`,label:`Access Key ID`,type:`text`},{key:`secretAccessKey`,label:`Secret Access Key`,type:`password`},{key:`region`,label:`Region`,type:`text`,placeholder:`us-east-1`}],credentialsUrl:`https://console.aws.amazon.com/iam/home#/security_credentials`,credentialsHint:`AWS IAM → Security credentials → Access keys, for a user with SES send permissions.`},{id:`smtp`,label:`SMTP`,description:`Any SMTP-compatible mail server.`,credentialFields:[{key:`host`,label:`Host`,type:`text`,placeholder:`smtp.example.com`},{key:`port`,label:`Port`,type:`text`,placeholder:`587`},{key:`username`,label:`Username`,type:`text`},{key:`password`,label:`Password`,type:`password`}],credentialsHint:`Ask your mail host or hosting provider for the SMTP host, port, and credentials.`}],Pv=[{id:`cloudflare_pages`,label:`Cloudflare Pages`,description:`Static hosting on Cloudflare's edge network, with native rollback.`,credentialFields:[{key:`apiToken`,label:`API Token`,type:`password`},{key:`accountId`,label:`Account ID`,type:`text`},{key:`projectName`,label:`Project name`,type:`text`,placeholder:`my-site`}],credentialsUrl:`https://dash.cloudflare.com/profile/api-tokens`,credentialsHint:`Cloudflare dashboard → My Profile → API Tokens → Create Token (Pages edit permission).`},{id:`firebase_hosting`,label:`Firebase Hosting`,description:`Google's static hosting, same project family as Firestore/Auth.`,credentialFields:[{key:`projectId`,label:`Firebase project ID`,type:`text`},{key:`siteId`,label:`Hosting site ID`,type:`text`},{key:`serviceAccountJson`,label:`Service account JSON`,type:`password`}],credentialsUrl:`https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk`,credentialsHint:`Firebase Console → Project settings → Service accounts → Generate new private key.`},{id:`supabase_storage`,label:`Supabase (Storage + custom domain)`,description:`Not a hosting product — serves the static build from a public Storage bucket behind your own domain. DIY, not officially supported by Supabase.`,credentialFields:[{key:`projectUrl`,label:`Project URL`,type:`text`,placeholder:`https://xyzcompany.supabase.co`},{key:`serviceKey`,label:`Service role key`,type:`password`},{key:`bucketName`,label:`Bucket name`,type:`text`}],credentialsUrl:`https://supabase.com/dashboard/project/_/settings/api`,credentialsHint:`Supabase dashboard → Project Settings → API → service_role key (never the anon key).`},{id:`ftp`,label:`FTP`,description:`Direct upload to any server over plain FTP — legacy, usually unencrypted; prefer SFTP when the server supports it.`,credentialFields:[{key:`host`,label:`Host`,type:`text`,placeholder:`ftp.example.com`},{key:`port`,label:`Port`,type:`text`,placeholder:`21`},{key:`username`,label:`Username`,type:`text`},{key:`password`,label:`Password`,type:`password`},{key:`remotePath`,label:`Remote path`,type:`text`,placeholder:`/var/www/html`}],credentialsHint:`Ask your hosting provider or server admin for FTP host, port, and credentials.`},{id:`sftp`,label:`SFTP`,description:`Direct upload to any server over SFTP (SSH) — no vendor lock-in.`,credentialFields:[{key:`host`,label:`Host`,type:`text`,placeholder:`sftp.example.com`},{key:`port`,label:`Port`,type:`text`,placeholder:`22`},{key:`username`,label:`Username`,type:`text`},{key:`password`,label:`Password / key`,type:`password`},{key:`remotePath`,label:`Remote path`,type:`text`,placeholder:`/var/www/html`}],credentialsHint:`Ask your hosting provider or server admin for SFTP host, port, and credentials.`},{id:`netlify`,label:`Netlify`,description:`Popular JAMstack hosting with a simple deploy API.`,credentialFields:[{key:`accessToken`,label:`Personal access token`,type:`password`},{key:`siteId`,label:`Site ID`,type:`text`}],credentialsUrl:`https://app.netlify.com/user/applications#personal-access-tokens`,credentialsHint:`Netlify → User settings → Applications → New access token.`},{id:`github_pages`,label:`GitHub Pages`,description:`Publishes by pushing the build to a branch of a GitHub repository.`,credentialFields:[{key:`repo`,label:`Repository`,type:`text`,placeholder:`owner/repo`},{key:`branch`,label:`Branch`,type:`text`,placeholder:`gh-pages`},{key:`token`,label:`Access token`,type:`password`}],credentialsUrl:`https://github.com/settings/tokens`,credentialsHint:`GitHub → Settings → Developer settings → Personal access tokens (repo scope).`},{id:`s3_cloudfront`,label:`AWS S3 + CloudFront`,description:`Classic static hosting on S3, served and cached through a CloudFront distribution.`,credentialFields:[{key:`accessKeyId`,label:`Access Key ID`,type:`text`},{key:`secretAccessKey`,label:`Secret Access Key`,type:`password`},{key:`bucketName`,label:`Bucket name`,type:`text`},{key:`distributionId`,label:`CloudFront distribution ID`,type:`text`},{key:`region`,label:`Region`,type:`text`,placeholder:`us-east-1`}],credentialsUrl:`https://console.aws.amazon.com/iam/home#/security_credentials`,credentialsHint:`AWS IAM → Security credentials → Access keys, for a user with S3 + CloudFront invalidation permissions.`},{id:`static_export`,label:`Static export (download)`,description:`No vendor — packages the build as a downloadable archive for self-hosting anywhere else.`,credentialFields:[]}],Fv=[A_,J_,R_,K_,b_,E_,Qg,D_,a_({id:`glm`,label:`ZhipuAI (GLM)`,description:`Zhipu AI's GLM model family.`,configKey:`glmApiKey`,defaultModel:`glm-4-flash`,fallbackModels:[`glm-4-flash`,`glm-4`,`glm-z1-preview`,`glm-z1-plus`,`glm-4-long`],baseUrl:`https://open.bigmodel.cn/api/paas/v4`,dashboardUrl:`https://bigmodel.cn/usercenter/apikeys`,credentialsHint:`Zhipu BigModel → User Center → API Keys → Create Key.`}),k_],Iv=e=>({id:e.id,label:e.label,description:e.description??``,credentialFields:e.credentialFields??[{key:`apiKey`,label:`API Key`,type:`password`}],credentialsUrl:e.dashboardUrl,credentialsHint:e.credentialsHint}),Lv=[...Fv.map(Iv),y_],Rv={id:`openai-compatible`,label:`OpenAI-compatible`,description:`Any OpenAI-compatible endpoint (self-hosted or third-party).`,credentialFields:[{key:`apiKey`,label:`API Key`,type:`password`},{key:`baseUrl`,label:`Base URL`,type:`text`,placeholder:`https://api.example.com/v1`}]},zv=e=>{let t=[],n=e?.cloudflare?.accountId?.trim();n&&t.push(v_({accountId:n,defaultModel:e?.cloudflare?.defaultModel?.trim()||void 0,includePaidModels:e?.cloudflare?.includePaidModels}));let r=e?.openAICompatible?.baseUrl?.trim();return r?[...t,a_({id:`openai-compatible`,label:e?.openAICompatible?.label?.trim()||`OpenAI-compatible`,description:`Any OpenAI-compatible endpoint (self-hosted or third-party).`,configKey:`openAICompatible`,requiredConfigKeys:[`ai.openAICompatible.apiKey`,`ai.openAICompatible.baseUrl`],defaultModel:e?.openAICompatible?.defaultModel?.trim()||`default`,fallbackModels:e?.openAICompatible?.fallbackModels?.filter(Boolean)||[`default`],baseUrl:r,modelsUrl:e?.openAICompatible?.modelsUrl?.trim()||void 0,chatCompletionsUrl:e?.openAICompatible?.chatCompletionsUrl?.trim()||void 0})]:t},Bv=e=>e?[...Fv,...zv(e)].reduce((t,n)=>{let r=n.id===`openai-compatible`?e.openAICompatible?.apiKey?.trim()||``:n.id===`cloudflare`?e.cloudflare?.apiToken?.trim()||``:typeof n.configKey==`string`&&typeof e[n.configKey]==`string`?String(e[n.configKey]||``).trim():``;return r&&(t[n.id]=new Ba(n,r)),t},{}):{},Vv=(e,{scope:n})=>Bv(e.reduce((e,r)=>{let i=t.f(n,r.id);if(r.id===`openai-compatible`)return r.baseUrl?{...e,openAICompatible:{apiKey:i,baseUrl:r.baseUrl,label:r.label,defaultModel:r.defaultModel}}:e;if(r.id===`cloudflare`)return r.accountId?{...e,cloudflare:{apiToken:i,accountId:r.accountId}}:e;let a=Fv.find(e=>e.id===r.id)?.configKey;return a?{...e,[a]:i}:e},{})),Hv=void 0;typeof pa==`function`&&pa(e=>{Hv=e.google});var Uv={ita:`geoTargetConstants/2380`,rome:`geoTargetConstants/1033236`,mil:`geoTargetConstants/1033239`,nap:`geoTargetConstants/1033245`,tor:`geoTargetConstants/1033247`},Wv={it:`languageConstants/1000`,en:`languageConstants/1001`,fr:`languageConstants/1002`,es:`languageConstants/1003`,de:`languageConstants/1005`};function Gv(e){return Uv[e.toLowerCase()]||`geoTargetConstants/2380`}function Kv(e){return Wv[e.toLowerCase()]||`languageConstants/1000`}async function qv({keyword:e,googleAdsAccountId:t,geoCode:n=`ita`,languageCode:r=`it`}){if(!Hv?.developerToken)return console.error(`
|
|
26
26
|
❌ Google Ads API: developerToken non configurato.
|
|
27
27
|
|
|
28
28
|
Per ottenere un developerToken segui questi passaggi:
|
|
@@ -36,5 +36,5 @@ Per ottenere un developerToken segui questi passaggi:
|
|
|
36
36
|
config.google.developerToken
|
|
37
37
|
|
|
38
38
|
ℹ️ Attenzione: Inizialmente il token sarà in modalità di test. Per usarlo in produzione, dovrai richiedere l'approvazione da Google Ads.
|
|
39
|
-
`),[];let i=await Rg([`https://www.googleapis.com/auth/adwords`]),a=Uv(n),o=Wv(r),s=`https://googleads.googleapis.com/v13/customers/${t}:generateKeywordIdeas`,c={keywordSeed:{keywords:[e]},geoTargetConstants:[a],language:o},l=await fetch(s,{method:`POST`,headers:{Authorization:`Bearer ${i}`,"developer-token":Bv.developerToken,"Content-Type":`application/json`},body:JSON.stringify(c)});if(!l.ok){let e=await l.text();throw Error(`Keyword planner error: ${l.status} - ${e}`)}return(await l.json()).results?.map(e=>({keyword:e.text,avgMonthlySearches:e.keywordIdeaMetrics?.avgMonthlySearches??0,competition:e.keywordIdeaMetrics?.competition??`UNSPECIFIED`,cpc:e.keywordIdeaMetrics?.averageCpc?.micros?e.keywordIdeaMetrics.averageCpc.micros/1e6:null}))??[]}async function Kv(e,t=`IT`,n=`today 12-m`){let r=`https://trends.google.com/trends/api/explore?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify({comparisonItem:[{keyword:e,geo:t,time:n}],category:0,property:``}))}&_=${Date.now()}`,i=await(await fetch(r)).text(),a=JSON.parse(i.replace(`)]}',`,``)).widgets.find(e=>e.id===`TIMESERIES`);if(!a)throw Error(`Timeline widget not found`);let o=a.token,s=a.request,c=`https://trends.google.com/trends/api/widgetdata/multiline?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify(s))}&token=${o}&_=${Date.now()}`,l=await(await fetch(c)).text();return{keyword:e,timeline:JSON.parse(l.replace(`)]}',`,``)).default.timelineData.map(e=>({date:e.formattedTime,value:e.value?.[0]}))}}async function qv(e,t=`IT`,n=`today 12-m`){let r=`https://trends.google.com/trends/api/explore?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify({comparisonItem:[{keyword:e,geo:t,time:n}],category:0,property:``}))}&_=${Date.now()}`,i=await(await fetch(r)).text(),a=JSON.parse(i.replace(`)]}',`,``)).widgets.find(e=>e.id===`RELATED_QUERIES`);if(!a)throw Error(`Related queries widget not found`);let o=`https://trends.google.com/trends/api/widgetdata/relatedsearches?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify(a.request))}&token=${a.token}&_=${Date.now()}`,s=await(await fetch(o)).text(),c=JSON.parse(s.replace(`)]}',`,``));return{keyword:e,top:c.default.rankedList?.[0]?.rankedKeyword?.map(e=>({query:e.query,value:e.value}))||[],rising:c.default.rankedList?.[1]?.rankedKeyword?.map(e=>({query:e.query,value:e.value}))||[]}}var Jv=5e3,Yv=`https://www.dropbox.com/home`,Xv=void 0;typeof pa==`function`&&pa(e=>{Xv=e.dropbox});var Zv=async(e,t,n={})=>{if(!Xv)return console.error(`DropBox: Config not found`),null;let r=await tr(Xv.clientId);if(!r)throw Error(`DropBox: Access token not found`);return await fetch(e,{method:`POST`,headers:{Authorization:`Bearer ${r}`,"Content-Type":`application/octet-stream`,...n},body:t instanceof Uint8Array?Uint8Array.from(t):t}).catch(e=>(console.error(`There was a problem with the fetch operation:`,e),null)).finally(()=>{console.log(`DropBox: Fetch operation completed`)})},Qv=async(e,t,n={})=>{if(!Xv){console.error(`DropBox: Config not found`);return}let r=await tr(Xv.clientId);if(!r){console.error(`DropBox: Access token not found`);return}return await we(e,{method:`POST`,headers:{Authorization:`Bearer ${r}`,"Content-Type":`application/json`,...n},body:JSON.stringify(t)}).then(async n=>{if(n.status===409){let r=await n.json();(!r.error_summary||!r.error_summary.includes(`not_found`))&&console.error(`DropBox: Fetch operation failed:`,r,e,t);return}return n}).catch(n=>{console.error(`There was a problem with the fetch operation:`,n,e,t)}).finally(()=>{console.log(`DropBox: Fetch operation completed`,e,t)})},$v=(e,t=!1)=>{let n=Xv?.rootPath||``;return(t?Yv:``)+(e.startsWith(n)?e:n+e)},ey=async(e,t=``,n=!1)=>{let r={};return(await my.listFolders({path:`${e+t}`,recursive:!0})).forEach(e=>{e[`.tag`]!==`folder`&&(r[n?Rn.changeFilename(e.path_display,{ext:``}):e.path_display]=e.name)}),r},ty=async(e,t)=>{if(!e.async_job_id)return Promise.reject(e);let n,r=!0;for(;r;)await I(100),n=await Qv(`https://api.dropboxapi.com/2/${t}/check`,{async_job_id:e.async_job_id}),console.log(`DropBox: Check folders response: `,n),n?.[`.tag`]!==`in_progress`&&(r=!1);return n?.[`.tag`]===`complete`?Promise.resolve(n.entries):Promise.reject(n)},ny=async(e,t=``)=>{let n=`files/create_folder_batch`,r=await Qv(`https://api.dropboxapi.com/2/${n}`,{autorename:!1,force_async:!0,paths:e.map(e=>$v(t+e))});return r?ty(r,n):void 0},ry=async(e,t=``)=>{let n=`files/create_folder_batch`,r=await Qv(`https://api.dropboxapi.com/2/${n}`,{entries:e.map(e=>({path:$v(t+e)}))});return r?ty(r,n):void 0},iy=async(e,t)=>Qv(`https://api.dropboxapi.com/2/files/tags/add`,{path:e,tag_text:t.toLowerCase().replaceAll(/[^a-z0-9]/g,``)}),ay=async(e,t=``)=>{for(let n in e)for(let r of e[n])await iy($v(t+n),r)},oy=async({path:e=``,recursive:t=!1}={})=>{let n=[],r=async({path:e,cursor:t,recursive:n})=>e?await Qv(`https://api.dropboxapi.com/2/files/list_folder`,{include_deleted:!1,include_has_explicit_shared_members:!1,include_media_info:!1,include_mounted_folders:!0,include_non_downloadable_files:!0,path:$v(e),recursive:n}):await Qv(`https://api.dropboxapi.com/2/files/list_folder/continue`,{cursor:t}),i={has_more:!0,cursor:``,entries:[]};for(;i?.has_more;)i=await r(i.cursor?{cursor:i.cursor,recursive:t}:{path:e,recursive:t}),i&&n.push(...i.entries);return n},sy=async e=>{let t=async e=>await Qv(`https://api.dropboxapi.com/2/files/copy_batch_v2`,{entries:e,autorename:!1}),n=async e=>await Qv(`https://api.dropboxapi.com/2/files/copy_batch/check_v2`,{async_job_id:e}),r=[],i=[];for(let a=0;a<e.length;a+=900){i=e.slice(a,a+900).map(e=>({from_path:$v(e.from),to_path:$v(e.to)}));let o=await t(i);if(!o)continue;if(o.error)throw Error(`Error starting copy: ${o.error}`);let s=o;for(;s?.[`.tag`]===`async_job_id`||s?.[`.tag`]===`in_progress`;)await I(Jv),s=await n(o.async_job_id??``);if(s?.[`.tag`]===`failed`)throw Error(`Copy operation failed: ${s[`.tag`]}`);s?.[`.tag`]===`complete`&&s.entries&&r.push(...s.entries)}return r.filter(e=>e[`.tag`]===`failure`).map(e=>e.failure)},cy=async e=>{let t=async e=>await Qv(`https://api.dropboxapi.com/2/files/move_v2`,{...e,autorename:!0});for(let n of e)await t({from_path:$v(n.from),to_path:$v(n.to)})},ly=async({thumbnailsRequest:e=[],size:t=`w64h64`,format:n=`jpeg`,mode:r=`strict`},i)=>{let a={},o=[];for(let s=0;s<e.length;s+=25){let c=e.slice(s,s+25),l=c.map(e=>({path:$v(e.path),format:n,size:t,mode:r}));await I(100),o.push(Qv(`https://content.dropboxapi.com/2/files/get_thumbnail_batch`,{entries:l}).then(e=>{if(!e)return;let n=e.entries.reduce((e,n,r)=>{let i=c[r].path,[a,o]=t.replace(`w`,``).split(`h`).map(Number),s=n;return e[i]={...c[r],thumbnail:s?.[`.tag`]===`success`?s.thumbnail:`data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAgAAAAwAAAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`,mimetype:`data:image/jpeg;base64,`,width:a,height:o},e},{});console.log(`DropBox: setThumbnails`,n),i?.(n),a={...a,...n}}))}return Promise.all(o).then(()=>a)},uy=(e,t=`application/octet-stream`,n=512)=>{let r=atob(e),i=[];for(let e=0;e<r.length;e+=n){let t=r.slice(e,e+n),a=Array(t.length);for(let e=0;e<t.length;e++)a[e]=t.charCodeAt(e);let o=new Uint8Array(a);i.push(o)}return new Blob(i,{type:t})},dy=async(e,t)=>{try{let n=t.split(`,`)[1];Zv(`https://content.dropboxapi.com/2/files/upload`,uy(n,`application/octet-stream`),{"Dropbox-API-Arg":JSON.stringify({path:$v(e),mode:`overwrite`,autorename:!0,mute:!1})}).then(e=>{console.log(`DropBox: Upload response`,e)})}catch(e){console.error(`Errore durante il caricamento su Dropbox:`,e)}},fy=(e=!1)=>Xv?Qn(Xv.clientId,e):!1,py=(e={})=>{if(!Xv)return n.default.createElement(`div`,{title:`DropBox: configurazione mancante. Recupera il "Client ID" accedendo a https://www.dropbox.com/developers, vai su "App Console", seleziona un'app esistente o chiedi il Client ID a chi ha configurato il sistema.`,className:`text-danger flex items-center gap-2`},n.default.createElement(Q,{name:`warning`}),n.default.createElement(`span`,null,`Dropbox non configurato`));let t=fy(!0);return n.default.createElement(rr,{provider:`dropboxAuth`,intent:`connect`,aspect:`button`,options:{...e,className:e?.className+(t?` text-success`:` text-danger`),icon:t?`link`:`link-break`,title:t?`DropBox Connected`:`DropBox Disconnected`}})},my={setRootPath:e=>{Xv&&(Xv.rootPath=e)},resolvePath:$v,createFolders:ny,deleteBulk:ry,addTags:ay,listFolders:oy,getThumbnails:ly,search:ey,upload:dy,copy:sy,move:cy},hy=`https://api.serpapi.com/search`,gy=`google`,_y=`google_images`,vy=`google_autocomplete`,yy=`google_trends`,by=`google_maps`,xy=`google_maps_photos`,Sy=`google_maps_reviews`,Cy={engine:null,device:null,no_cache:!1,async:!1,output:`json`},wy={q:null},Ty={tbs:null,safe:`active`,nfpr:0,filter:1};function Ey(e){let t=Gi(),n=Gi(!0),r=Ki(!0),i={location:t,uule:null},a={geo:t,region:null},o={google_domain:`google.com`,gl:n.toLowerCase(),hl:r,cr:`country`+n,lr:`lang_`+r},s={data_id:null,hl:r};return{[gy]:{...Cy,...i,...o,...Ty,...wy,engine:gy,ludocid:null,lsig:null,kgmid:null,si:null,tbm:null,start:null,num:null},[_y]:{...Cy,...i,...o,...Ty,...wy,engine:_y,chips:null,ijn:null},[vy]:{...Cy,...o,...wy,engine:vy,cp:null,client:null},[yy]:{...Cy,...a,...wy,engine:yy,data_type:null,tz:null,cat:null,gprop:null,date:null,csv:null},[by]:{...Cy,...i,...o,...Ty,...wy,engine:by},[xy]:{...Cy,...s,engine:xy},[Sy]:{...Cy,...s,engine:Sy}}[e]??{}}var Dy=void 0;typeof pa==`function`&&pa(e=>{Dy=e.scrape});function Oy(e){let t={};for(let n in e)e[n]!==null&&(t[n]=e[n]);return t}var ky=0;function Ay(e=!1){let t=Dy?.serpApiKey?.split(`,`).map(e=>e.trim()).filter(Boolean)||[];return t.length===0?null:(e&&ky++,ky<t.length?t[ky]:null)}var jy=async(e,t)=>{let n=n=>{let r=Oy({...Ey(t),api_key:n,q:e});return console.log(hy,r),`${hy}?${new URLSearchParams(r)}`},r=Ay();for(;r;)try{return await Ce(n(r))}catch(e){if(e?.error===`quota_exceeded`){console.warn(`SerpApi: invalid api key: ${r}`,e),r=Ay(!0);continue}throw console.error(`SerpApi: ${r}`,e),e}return null},My=async(e,t,n)=>{let r=`${ku}/${P(t)}/${P(e)}`,i=await n.read(r);if(i)return i;let a=await jy(e,t);return a?n.set(r,a):console.warn(`SerpApi ${t}: No Result`),a??{}},Ny=e=>({googleSearch:async t=>My(t,gy,e),googleImages:async t=>My(t,_y,e),googleAutocomplete:async t=>My(t,vy,e),googleTrends:async t=>My(t,yy,e),googleMaps:async t=>My(t,by,e),googleMapsPhotos:async t=>My(t,xy,e),googleMapsReviews:async t=>My(t,Sy,e)}),Py={"+":`+`,"﹢":`+`,"-":`-`,"﹣":`-`,"–":`-`,"—":`-`,"@":`@`,"#":`#`,"$":`$`,"%":`%`,"&":`&`,"*":`*`,"0":`0`,"1":`1`,"2":`2`,"3":`3`,"4":`4`,"5":`5`,"6":`6`,"7":`7`,"8":`8`,"9":`9`,A:`A`,B:`B`,C:`C`,D:`D`,E:`E`,F:`F`,G:`G`,H:`H`,I:`I`,J:`J`,K:`K`,L:`L`,M:`M`,N:`N`,O:`O`,P:`P`,Q:`Q`,R:`R`,S:`S`,T:`T`,U:`U`,V:`V`,W:`W`,X:`X`,Y:`Y`,Z:`Z`,a:`a`,b:`b`,c:`c`,d:`d`,e:`e`,f:`f`,g:`g`,h:`h`,i:`i`,j:`j`,k:`k`,l:`l`,m:`m`,n:`n`,o:`o`,p:`p`,q:`q`,r:`r`,s:`s`,t:`t`,u:`u`,v:`v`,w:`w`,x:`x`,y:`y`,z:`z`},Fy={email:{description:`Email: no spaces -> Lower/Trim`,transformations:[{pattern:`\\s+`,replace:``}],mask:[`toLower`,`trim`]},phone:{description:`Phone: Digits only`,transformations:[{pattern:`\\D`,replace:``}],mask:[]},price:{description:`Price: Digits/Dot/Comma/Minus -> toCurrency`,transformations:[{pattern:`[^0-9.-]`,replace:``},{pattern:`,`,replace:`.`}],mask:[`toCurrency`]},name:{description:`Name: All chars -> UcWords/Trim`,transformations:[],mask:[`ucwords`,`trim`]},date:{description:`Date: All chars -> toDate (YYYY-MM-DD)`,transformations:[],mask:[{func:`toDate`,arg:`YYYY-MM-DD`}]},slug:{description:`Slug: All chars -> toSlug`,transformations:[],mask:[`toSlug`]}},Iy=[{pattern:`email*`,use:`email`},{pattern:`*_price`,use:`price`},{pattern:`name*`,use:`name`},{pattern:`date*`,use:`date`}],Ly=new RegExp(Object.keys(Py).join(`|`),`g`);function Ry(e){return e?e.normalize(`NFKC`).replace(Ly,e=>Py[e]??e):``}var zy=class{config;matches;constructor(e={},t=[]){this.config={...Fy,...e},this.matches=[...Iy,...t]}apply(e,t,n=!1){let r=this.config[e];if(!r)return n?he(t):t;let i=t;i=Ry(String(i??``));let a=r.exclusions;if(Array.isArray(a)&&a.length){let e=String(i).toLowerCase();for(let t of a){let n=(t?.phrase??``).trim().toLowerCase();if(n&&e.includes(n)){i=``;break}}}for(let{pattern:t,replace:n=``}of r.transformations||[])try{i=String(i).replace(new RegExp(t,`g`),String(n))}catch{console.warn(`Invalid regex in rule ${String(e)}: ${t}`)}for(let t of r.mask||[]){let n,r;typeof t==`object`&&t&&`func`in t?(n=t.func,r=t.arg):n=t;let a=E[n];if(typeof a==`function`)try{i=a(i,r)}catch(t){console.warn(`Error applying mask ${n} for rule ${e}:`,t)}}return n?he(i):i}applyMatches(e,t=!1){let n={...e};for(let[r,i]of Object.entries(e))for(let e of this.matches)if(this.wildcardToRegExp(e.pattern).test(r)){n[r]=this.apply(e.use,i,t);break}return n}getOptions(){return Object.keys(this.config).sort().map(e=>({label:this.config[e].description??E.toCamel(e),value:e}))}addRule(e,t){this.config[e]=t}addMatch(e,t){this.matches.push({pattern:e,use:t})}wildcardToRegExp(e){let t=e.replace(/[.+^${}()|[\]\\]/g,`\\$&`);return RegExp(`^${t.replace(/\*/g,`.*`)}$`,`i`)}};function By(e,t){let n=m.default.parse(e,{header:!0,skipEmptyLines:!0,delimiter:t?.delimiter,dynamicTyping:!1});return{data:n.data,fields:(n.meta?.fields??[]).filter(Boolean)}}exports.AIProvider=oa,exports.AI_PROVIDER_DEFINITIONS=Nv,exports.AI_PROVIDER_DESCRIPTORS=Fv,exports.AI_PROVIDER_HOSTS=t.s,exports.ActionButton=Cn,exports.AddressAutocomplete=Ap,exports.Alert=vr,exports.AnimatedNumber=Bf,exports.App=uv,exports.AppProvider=lv,exports.AreaChart=Af,exports.AsyncDropdown=Xa,exports.AuthButton=rr,exports.AuthFlowError=vl,exports.AuthGate=au,exports.AuthLayout=ar,exports.AuthProvider=In,exports.Autocomplete=Fr,exports.BUILT_IN_THEMES=Ve,exports.BUILT_IN_THEME_IDS=Le,exports.BackLink=wn,exports.Badge=Mt,exports.BadgeOverlay=jt,exports.BarList=Pf,exports.Brand=ou,exports.Breadcrumbs=oc,exports.CLOUDFLARE_PROVIDER_DESCRIPTOR=v_,exports.CONTEXT_MENU_SEARCH_THRESHOLD=no,exports.CalendarHeatmap=Rf,exports.Card=hr,exports.Carousel=su,exports.ChartDataTable=yf,exports.ChartLegend=_f,exports.ChatActivity=Dh,exports.ChatMarkdown=fh,exports.ChatQuestions=Th,exports.ChatReasoning=mh,exports.Chatbot=Po,exports.Checkbox=pl,exports.Checklist=Ir,exports.Code=Qd,exports.CodeEditor=xs,exports.CodeSyntaxError=ns,exports.Col=Ot,exports.Color=il,exports.ColumnChart=Sf,exports.Component=qs,exports.ComponentBlock=Js,exports.Container=Et,exports.ContextMenu=bo,exports.CropImage=Ei,exports.DEFAULT_DOCUMENT_HEAD=dm,exports.DEFAULT_HEAD_APP_NAME=um,exports.DEFAULT_LANGUAGE_HEAD=fm,exports.DEFAULT_ORDER=xr,exports.DataProvider=cr,exports.Date=al,exports.DateTime=sl,exports.DescriptionList=Pd,exports.DirectApiProviderAdapter=Dv,exports.DivergingBarChart=Tf,exports.DropBoxConnectButton=py,exports.DropboxAuthProvider=Fg,exports.Dropdown=Ya,exports.DropdownButton=Za,exports.DropdownDivider=eo,exports.DropdownHeader=$a,exports.DropdownItem=Qa,exports.DropdownMenu=to,exports.EMAIL_PROVIDER_DEFINITIONS=jv,exports.Email=tl,exports.EmailProvider=og,exports.FieldError=Xc,exports.FileNameEditor=Ni,exports.FirebaseApiProviderAdapter=kv,exports.FirebaseAuthProvider=Dg,exports.FirebaseDataProvider=Cg,exports.FirebaseStorageProvider=bd,exports.FirestoreDataProvider=Ju,exports.ForgotPassword=xv,exports.Form=Ac,exports.FormControllerContext=hc,exports.Gallery=Ah,exports.GitHubAuthProvider=Lg,exports.GmailEmailProvider=Bg,exports.GoSite=Tn,exports.GoogleAuthProvider=ig,exports.GoogleMapsProvider=_p,exports.GoogleServiceAccountProvider=Ng,exports.Grid=Gh,exports.GridArray=Wh,exports.GridCore=Uh,exports.GridDB=Jp,exports.GridGalleryView=jh,exports.GridTableView=sm,exports.Head=Vm,exports.HeadProvider=km,exports.Heatmap=If,exports.Hidden=fl,exports.I18nProvider=pt,exports.Icon=Q,exports.IconProvider=nn,exports.Identicon=nf,exports.Image=Ss,exports.ImageAvatar=zn,exports.ImageEditor=fi,exports.ImageField=mi,exports.Input=Qc,exports.Label=hl,exports.LayoutBuilder=hp,exports.LineChart=kf,exports.ListCard=Np,exports.ListGroup=_l,exports.Loader=ur,exports.LoadingButton=Sn,exports.LocaleSwitcher=Hf,exports.LucideIconProvider=Gt,exports.MarkdownReader=Ym,exports.MeasureBarList=Ff,exports.Menu=qa,exports.MockApiProviderAdapter=Ov,exports.MockAuthProvider=Gg,exports.MockDataProvider=md,exports.Modal=si,exports.ModalOk=ui,exports.ModalYesNo=li,exports.Month=ll,exports.NORMALIZE_MAP=Py,exports.Notifications=lu,exports.Number=el,exports.OPENAI_COMPATIBLE_PROVIDER_DESCRIPTOR=Iv,exports.OneTimeCodeInput=ql,exports.Order=wr,exports.PUBLISH_PROVIDER_DEFINITIONS=Mv,exports.PageUsers=Kh,exports.Pagination=kh,exports.Password=rl,exports.Percentage=bi,exports.PhosphorIconProvider=Jt,exports.Prompt=Ko,exports.PromptMode=Fo,exports.PromptUtils=Ka,exports.ProviderSwitcher=jd,exports.Range=ul,exports.ReferSite=En,exports.Repeat=qf,exports.ResetPassword=Sv,exports.RichText=Ws,exports.Row=Dt,exports.SERVER_CREDENTIAL_PREFIX=t.c,exports.Sanitizer=zy,exports.ScatterChart=Mf,exports.Search=du,exports.Select=Nr,exports.SequenceColumnChart=wf,exports.SideNav=Gp,exports.SignIn=Xl,exports.SignUp=bv,exports.SortableList=Fp,exports.Sparkline=jf,exports.StackedColumnChart=Cf,exports.StorageProvider=Yr,exports.String=$c,exports.SupabaseApiProviderAdapter=Av,exports.SupabaseAuthProvider=Hg,exports.SupabaseDataProvider=sd,exports.SupabaseStorageProvider=xd,exports.Switch=ml,exports.Tab=tp,exports.TabDynamic=Oh,exports.TabItem=$f,exports.TabLayouts=Qf,exports.Table=ip,exports.Tel=nl,exports.TextArea=gl,exports.ThemeSwitcher=xu,exports.Time=ol,exports.Toolbar=mu,exports.Tree=Rd,exports.UploadCSV=jp,exports.UploadDocument=Vi,exports.UploadImage=Hi,exports.Url=dl,exports.VerifyCode=Jl,exports.VerifyEmail=wv,exports.Week=cl,exports.Wrapper=Z,exports.arrayUnique=re,exports.arraysEqual=oe,exports.authErrorMessage=wl,exports.authErrorReason=Sl,exports.base64Encode=ae,exports.base64ToBlob=ue,exports.base64ToUrl=K,exports.buildBreadcrumbSchema=$s,exports.buildModelIdentityIndex=t.t,exports.buildTextCommandContext=go,exports.buttonBaseClass=sn,exports.buttonDangerClass=un,exports.buttonDarkClass=hn,exports.buttonInfoClass=pn,exports.buttonLightClass=mn,exports.buttonLinkClass=bn,exports.buttonOutlineDangerClass=vn,exports.buttonOutlinePrimaryClass=gn,exports.buttonOutlineSecondaryClass=_n,exports.buttonOutlineSuccessClass=yn,exports.buttonPrimaryClass=cn,exports.buttonSecondaryClass=ln,exports.buttonSuccessClass=dn,exports.buttonWarningClass=fn,exports.callFirebaseFunction=Ru,exports.canonicalModelName=t.n,exports.chartFill=af,exports.chartToken=rf,exports.checkConditions=ee,exports.cleanRecord=fe,exports.cn=X,exports.configureProxy=ba,exports.converter=E,exports.copyToClipboard=A,exports.crc32=V,exports.createAIProviderRegistry=Rv,exports.createCloudflareProviderDefinition=__,exports.createMotionTransition=Lt,exports.createServerCredentialAIRegistry=zv,exports.createTranslations=ot,exports.decodeJWT=k,exports.defineLocaleMessages=at,exports.dirname=F,exports.dropBox=my,exports.eventClosest=R,exports.fetchJson=Ce,exports.fetchRest=Se,exports.fetchWithRetry=we,exports.fieldAddonClass=Hc,exports.fieldControlBaseClass=zc,exports.fieldFeedbackClass=Rc,exports.fieldGroupClass=Vc,exports.fieldLabelClass=Lc,exports.fieldTextAreaBaseClass=Bc,exports.formatAIModelRef=ra,exports.generateUniqueId=L,exports.getAIModelCatalog=za,exports.getAccessToken=tr,exports.getAutoClosedSuffixLength=po,exports.getCodeValidationResult=fs,exports.getFileUrl=Bi,exports.getGlobalVars=Mn,exports.getGoogleTrendsData=Kv,exports.getGoogleTrendsRelated=qv,exports.getKeywordIdeas=Gv,exports.getProviderConfigurationState=Hn,exports.getRecordValue=de,exports.getTabLayoutConfig=Yf,exports.getTabPaneClassName=Zf,exports.getTabTriggerClassName=Xf,exports.googleGetAccessToken=Rg,exports.groupModelOptions=So,exports.hasAutoClosedSuffix=fo,exports.identiconPattern=tf,exports.interpolate=J,exports.intersectObjects=te,exports.isAIProviderTarget=t.d,exports.isBadgeDescriptor=kt,exports.isEmpty=W,exports.isFreeAIModel=na,exports.isFreeModelOption=wo,exports.isInteractiveElement=ce,exports.isProxyEnabled=Ta,exports.labelText=Tr,exports.linkCode=tu,exports.loadGoogleMaps=xp,exports.loadModelIdentityIndex=t.r,exports.loadScripts=U,Object.defineProperty(exports,"locales",{enumerable:!0,get:function(){return yv}}),exports.matchCommandTrigger=mo,exports.modelOffers=t.i,exports.moveItem=Pp,exports.niceMax=cf,exports.normalizeBadgeProps=At,exports.normalizeKey=P,exports.normalizePath=M,exports.normalizeVisualChars=Ry,exports.parseAIModelRef=ia,exports.parseCsvText=By,exports.path=Rn,exports.proxyFetch=Ca,exports.recordsEqual=me,exports.registerProviderSessionFactory=Cd,exports.removeGlobalVars=Pn,exports.render2Base64=le,exports.repairStreamingMarkdown=ih,exports.replacePlaceholders=B,exports.replaceVariables=ne,exports.resolveModel=t.a,exports.resolveMotionEffect=Rt,exports.runPrompt=ts,exports.safeClone=ie,exports.sanitizeKey=se,exports.scrape=Ny,exports.sendEmail=zg,exports.serverCredential=t.f,exports.setGlobalVars=Nn,exports.sleep=I,exports.smartTypeCast=he,exports.substrCount=z,exports.ticks=lf,exports.toProviderDescriptor=Pv,exports.treeFromPaths=zd,exports.trimPath=j,exports.trimSlash=N,exports.ucfirst=H,exports.useAIProvider=sa,exports.useAIProviderRegistry=ca,exports.useAccessToken=Qn,exports.useAnimatedValues=pf,exports.useApiProvider=Tv,exports.useAssetsHead=Rm,exports.useAuthFlows=eu,exports.useAuthProvider=Ln,exports.useAuthSession=Ql,exports.useChartFormat=uf,exports.useChartTooltip=vf,exports.useChartWidth=gf,exports.useCredentialsProvider=ug,exports.useDataProvider=lr,exports.useDocumentHead=Lm,exports.useDropBoxConnect=fy,exports.useEditorHeight=xo,exports.useEmailProvider=sg,exports.useEnterMotion=Ht,exports.useFileUploadCore=Pi,exports.useFormActions=_c,exports.useFormContext=Ec,exports.useFormController=gc,exports.useGlobalVars=jn,exports.useGoogleMapsConfig=vp,exports.useHead=Mm,exports.useHeadLinks=Pm,exports.useI18n=Y,exports.useIconController=an,exports.useIconProvider=rn,exports.useImage=Vr,exports.useLanguageHead=Im,exports.useMenu=pv,exports.useMotionEffect=zt,exports.useMotionState=Bt,exports.usePaginationHead=Fm,exports.usePressMotion=Vt,exports.useProvider=Eu,exports.useProviderSession=kd,exports.useProxy=wa,exports.usePwaHead=zm,exports.useReveal=mf,exports.useSchemaOrgHead=Bm,exports.useSetProvider=Tu,exports.useSocialHead=Nm,exports.useStorageProvider=Xr,exports.useTheme=q,exports.useThemeController=rt,exports.validateCodeSyntax=ds;
|
|
39
|
+
`),[];let i=await zg([`https://www.googleapis.com/auth/adwords`]),a=Gv(n),o=Kv(r),s=`https://googleads.googleapis.com/v13/customers/${t}:generateKeywordIdeas`,c={keywordSeed:{keywords:[e]},geoTargetConstants:[a],language:o},l=await fetch(s,{method:`POST`,headers:{Authorization:`Bearer ${i}`,"developer-token":Hv.developerToken,"Content-Type":`application/json`},body:JSON.stringify(c)});if(!l.ok){let e=await l.text();throw Error(`Keyword planner error: ${l.status} - ${e}`)}return(await l.json()).results?.map(e=>({keyword:e.text,avgMonthlySearches:e.keywordIdeaMetrics?.avgMonthlySearches??0,competition:e.keywordIdeaMetrics?.competition??`UNSPECIFIED`,cpc:e.keywordIdeaMetrics?.averageCpc?.micros?e.keywordIdeaMetrics.averageCpc.micros/1e6:null}))??[]}async function Jv(e,t=`IT`,n=`today 12-m`){let r=`https://trends.google.com/trends/api/explore?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify({comparisonItem:[{keyword:e,geo:t,time:n}],category:0,property:``}))}&_=${Date.now()}`,i=await(await fetch(r)).text(),a=JSON.parse(i.replace(`)]}',`,``)).widgets.find(e=>e.id===`TIMESERIES`);if(!a)throw Error(`Timeline widget not found`);let o=a.token,s=a.request,c=`https://trends.google.com/trends/api/widgetdata/multiline?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify(s))}&token=${o}&_=${Date.now()}`,l=await(await fetch(c)).text();return{keyword:e,timeline:JSON.parse(l.replace(`)]}',`,``)).default.timelineData.map(e=>({date:e.formattedTime,value:e.value?.[0]}))}}async function Yv(e,t=`IT`,n=`today 12-m`){let r=`https://trends.google.com/trends/api/explore?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify({comparisonItem:[{keyword:e,geo:t,time:n}],category:0,property:``}))}&_=${Date.now()}`,i=await(await fetch(r)).text(),a=JSON.parse(i.replace(`)]}',`,``)).widgets.find(e=>e.id===`RELATED_QUERIES`);if(!a)throw Error(`Related queries widget not found`);let o=`https://trends.google.com/trends/api/widgetdata/relatedsearches?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify(a.request))}&token=${a.token}&_=${Date.now()}`,s=await(await fetch(o)).text(),c=JSON.parse(s.replace(`)]}',`,``));return{keyword:e,top:c.default.rankedList?.[0]?.rankedKeyword?.map(e=>({query:e.query,value:e.value}))||[],rising:c.default.rankedList?.[1]?.rankedKeyword?.map(e=>({query:e.query,value:e.value}))||[]}}var Xv=5e3,Zv=`https://www.dropbox.com/home`,Qv=void 0;typeof pa==`function`&&pa(e=>{Qv=e.dropbox});var $v=async(e,t,n={})=>{if(!Qv)return console.error(`DropBox: Config not found`),null;let r=await tr(Qv.clientId);if(!r)throw Error(`DropBox: Access token not found`);return await fetch(e,{method:`POST`,headers:{Authorization:`Bearer ${r}`,"Content-Type":`application/octet-stream`,...n},body:t instanceof Uint8Array?Uint8Array.from(t):t}).catch(e=>(console.error(`There was a problem with the fetch operation:`,e),null)).finally(()=>{console.log(`DropBox: Fetch operation completed`)})},ey=async(e,t,n={})=>{if(!Qv){console.error(`DropBox: Config not found`);return}let r=await tr(Qv.clientId);if(!r){console.error(`DropBox: Access token not found`);return}return await we(e,{method:`POST`,headers:{Authorization:`Bearer ${r}`,"Content-Type":`application/json`,...n},body:JSON.stringify(t)}).then(async n=>{if(n.status===409){let r=await n.json();(!r.error_summary||!r.error_summary.includes(`not_found`))&&console.error(`DropBox: Fetch operation failed:`,r,e,t);return}return n}).catch(n=>{console.error(`There was a problem with the fetch operation:`,n,e,t)}).finally(()=>{console.log(`DropBox: Fetch operation completed`,e,t)})},ty=(e,t=!1)=>{let n=Qv?.rootPath||``;return(t?Zv:``)+(e.startsWith(n)?e:n+e)},ny=async(e,t=``,n=!1)=>{let r={};return(await gy.listFolders({path:`${e+t}`,recursive:!0})).forEach(e=>{e[`.tag`]!==`folder`&&(r[n?Rn.changeFilename(e.path_display,{ext:``}):e.path_display]=e.name)}),r},ry=async(e,t)=>{if(!e.async_job_id)return Promise.reject(e);let n,r=!0;for(;r;)await I(100),n=await ey(`https://api.dropboxapi.com/2/${t}/check`,{async_job_id:e.async_job_id}),console.log(`DropBox: Check folders response: `,n),n?.[`.tag`]!==`in_progress`&&(r=!1);return n?.[`.tag`]===`complete`?Promise.resolve(n.entries):Promise.reject(n)},iy=async(e,t=``)=>{let n=`files/create_folder_batch`,r=await ey(`https://api.dropboxapi.com/2/${n}`,{autorename:!1,force_async:!0,paths:e.map(e=>ty(t+e))});return r?ry(r,n):void 0},ay=async(e,t=``)=>{let n=`files/create_folder_batch`,r=await ey(`https://api.dropboxapi.com/2/${n}`,{entries:e.map(e=>({path:ty(t+e)}))});return r?ry(r,n):void 0},oy=async(e,t)=>ey(`https://api.dropboxapi.com/2/files/tags/add`,{path:e,tag_text:t.toLowerCase().replaceAll(/[^a-z0-9]/g,``)}),sy=async(e,t=``)=>{for(let n in e)for(let r of e[n])await oy(ty(t+n),r)},cy=async({path:e=``,recursive:t=!1}={})=>{let n=[],r=async({path:e,cursor:t,recursive:n})=>e?await ey(`https://api.dropboxapi.com/2/files/list_folder`,{include_deleted:!1,include_has_explicit_shared_members:!1,include_media_info:!1,include_mounted_folders:!0,include_non_downloadable_files:!0,path:ty(e),recursive:n}):await ey(`https://api.dropboxapi.com/2/files/list_folder/continue`,{cursor:t}),i={has_more:!0,cursor:``,entries:[]};for(;i?.has_more;)i=await r(i.cursor?{cursor:i.cursor,recursive:t}:{path:e,recursive:t}),i&&n.push(...i.entries);return n},ly=async e=>{let t=async e=>await ey(`https://api.dropboxapi.com/2/files/copy_batch_v2`,{entries:e,autorename:!1}),n=async e=>await ey(`https://api.dropboxapi.com/2/files/copy_batch/check_v2`,{async_job_id:e}),r=[],i=[];for(let a=0;a<e.length;a+=900){i=e.slice(a,a+900).map(e=>({from_path:ty(e.from),to_path:ty(e.to)}));let o=await t(i);if(!o)continue;if(o.error)throw Error(`Error starting copy: ${o.error}`);let s=o;for(;s?.[`.tag`]===`async_job_id`||s?.[`.tag`]===`in_progress`;)await I(Xv),s=await n(o.async_job_id??``);if(s?.[`.tag`]===`failed`)throw Error(`Copy operation failed: ${s[`.tag`]}`);s?.[`.tag`]===`complete`&&s.entries&&r.push(...s.entries)}return r.filter(e=>e[`.tag`]===`failure`).map(e=>e.failure)},uy=async e=>{let t=async e=>await ey(`https://api.dropboxapi.com/2/files/move_v2`,{...e,autorename:!0});for(let n of e)await t({from_path:ty(n.from),to_path:ty(n.to)})},dy=async({thumbnailsRequest:e=[],size:t=`w64h64`,format:n=`jpeg`,mode:r=`strict`},i)=>{let a={},o=[];for(let s=0;s<e.length;s+=25){let c=e.slice(s,s+25),l=c.map(e=>({path:ty(e.path),format:n,size:t,mode:r}));await I(100),o.push(ey(`https://content.dropboxapi.com/2/files/get_thumbnail_batch`,{entries:l}).then(e=>{if(!e)return;let n=e.entries.reduce((e,n,r)=>{let i=c[r].path,[a,o]=t.replace(`w`,``).split(`h`).map(Number),s=n;return e[i]={...c[r],thumbnail:s?.[`.tag`]===`success`?s.thumbnail:`data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAgAAAAwAAAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`,mimetype:`data:image/jpeg;base64,`,width:a,height:o},e},{});console.log(`DropBox: setThumbnails`,n),i?.(n),a={...a,...n}}))}return Promise.all(o).then(()=>a)},fy=(e,t=`application/octet-stream`,n=512)=>{let r=atob(e),i=[];for(let e=0;e<r.length;e+=n){let t=r.slice(e,e+n),a=Array(t.length);for(let e=0;e<t.length;e++)a[e]=t.charCodeAt(e);let o=new Uint8Array(a);i.push(o)}return new Blob(i,{type:t})},py=async(e,t)=>{try{let n=t.split(`,`)[1];$v(`https://content.dropboxapi.com/2/files/upload`,fy(n,`application/octet-stream`),{"Dropbox-API-Arg":JSON.stringify({path:ty(e),mode:`overwrite`,autorename:!0,mute:!1})}).then(e=>{console.log(`DropBox: Upload response`,e)})}catch(e){console.error(`Errore durante il caricamento su Dropbox:`,e)}},my=(e=!1)=>Qv?Qn(Qv.clientId,e):!1,hy=(e={})=>{if(!Qv)return n.default.createElement(`div`,{title:`DropBox: configurazione mancante. Recupera il "Client ID" accedendo a https://www.dropbox.com/developers, vai su "App Console", seleziona un'app esistente o chiedi il Client ID a chi ha configurato il sistema.`,className:`text-danger flex items-center gap-2`},n.default.createElement(Q,{name:`warning`}),n.default.createElement(`span`,null,`Dropbox non configurato`));let t=my(!0);return n.default.createElement(rr,{provider:`dropboxAuth`,intent:`connect`,aspect:`button`,options:{...e,className:e?.className+(t?` text-success`:` text-danger`),icon:t?`link`:`link-break`,title:t?`DropBox Connected`:`DropBox Disconnected`}})},gy={setRootPath:e=>{Qv&&(Qv.rootPath=e)},resolvePath:ty,createFolders:iy,deleteBulk:ay,addTags:sy,listFolders:cy,getThumbnails:dy,search:ny,upload:py,copy:ly,move:uy},_y=`https://api.serpapi.com/search`,vy=`google`,yy=`google_images`,by=`google_autocomplete`,xy=`google_trends`,Sy=`google_maps`,Cy=`google_maps_photos`,wy=`google_maps_reviews`,Ty={engine:null,device:null,no_cache:!1,async:!1,output:`json`},Ey={q:null},Dy={tbs:null,safe:`active`,nfpr:0,filter:1};function Oy(e){let t=Gi(),n=Gi(!0),r=Ki(!0),i={location:t,uule:null},a={geo:t,region:null},o={google_domain:`google.com`,gl:n.toLowerCase(),hl:r,cr:`country`+n,lr:`lang_`+r},s={data_id:null,hl:r};return{[vy]:{...Ty,...i,...o,...Dy,...Ey,engine:vy,ludocid:null,lsig:null,kgmid:null,si:null,tbm:null,start:null,num:null},[yy]:{...Ty,...i,...o,...Dy,...Ey,engine:yy,chips:null,ijn:null},[by]:{...Ty,...o,...Ey,engine:by,cp:null,client:null},[xy]:{...Ty,...a,...Ey,engine:xy,data_type:null,tz:null,cat:null,gprop:null,date:null,csv:null},[Sy]:{...Ty,...i,...o,...Dy,...Ey,engine:Sy},[Cy]:{...Ty,...s,engine:Cy},[wy]:{...Ty,...s,engine:wy}}[e]??{}}var ky=void 0;typeof pa==`function`&&pa(e=>{ky=e.scrape});function Ay(e){let t={};for(let n in e)e[n]!==null&&(t[n]=e[n]);return t}var jy=0;function My(e=!1){let t=ky?.serpApiKey?.split(`,`).map(e=>e.trim()).filter(Boolean)||[];return t.length===0?null:(e&&jy++,jy<t.length?t[jy]:null)}var Ny=async(e,t)=>{let n=n=>{let r=Ay({...Oy(t),api_key:n,q:e});return console.log(_y,r),`${_y}?${new URLSearchParams(r)}`},r=My();for(;r;)try{return await Ce(n(r))}catch(e){if(e?.error===`quota_exceeded`){console.warn(`SerpApi: invalid api key: ${r}`,e),r=My(!0);continue}throw console.error(`SerpApi: ${r}`,e),e}return null},Py=async(e,t,n)=>{let r=`${Au}/${P(t)}/${P(e)}`,i=await n.read(r);if(i)return i;let a=await Ny(e,t);return a?n.set(r,a):console.warn(`SerpApi ${t}: No Result`),a??{}},Fy=e=>({googleSearch:async t=>Py(t,vy,e),googleImages:async t=>Py(t,yy,e),googleAutocomplete:async t=>Py(t,by,e),googleTrends:async t=>Py(t,xy,e),googleMaps:async t=>Py(t,Sy,e),googleMapsPhotos:async t=>Py(t,Cy,e),googleMapsReviews:async t=>Py(t,wy,e)}),Iy={"+":`+`,"﹢":`+`,"-":`-`,"﹣":`-`,"–":`-`,"—":`-`,"@":`@`,"#":`#`,"$":`$`,"%":`%`,"&":`&`,"*":`*`,"0":`0`,"1":`1`,"2":`2`,"3":`3`,"4":`4`,"5":`5`,"6":`6`,"7":`7`,"8":`8`,"9":`9`,A:`A`,B:`B`,C:`C`,D:`D`,E:`E`,F:`F`,G:`G`,H:`H`,I:`I`,J:`J`,K:`K`,L:`L`,M:`M`,N:`N`,O:`O`,P:`P`,Q:`Q`,R:`R`,S:`S`,T:`T`,U:`U`,V:`V`,W:`W`,X:`X`,Y:`Y`,Z:`Z`,a:`a`,b:`b`,c:`c`,d:`d`,e:`e`,f:`f`,g:`g`,h:`h`,i:`i`,j:`j`,k:`k`,l:`l`,m:`m`,n:`n`,o:`o`,p:`p`,q:`q`,r:`r`,s:`s`,t:`t`,u:`u`,v:`v`,w:`w`,x:`x`,y:`y`,z:`z`},Ly={email:{description:`Email: no spaces -> Lower/Trim`,transformations:[{pattern:`\\s+`,replace:``}],mask:[`toLower`,`trim`]},phone:{description:`Phone: Digits only`,transformations:[{pattern:`\\D`,replace:``}],mask:[]},price:{description:`Price: Digits/Dot/Comma/Minus -> toCurrency`,transformations:[{pattern:`[^0-9.-]`,replace:``},{pattern:`,`,replace:`.`}],mask:[`toCurrency`]},name:{description:`Name: All chars -> UcWords/Trim`,transformations:[],mask:[`ucwords`,`trim`]},date:{description:`Date: All chars -> toDate (YYYY-MM-DD)`,transformations:[],mask:[{func:`toDate`,arg:`YYYY-MM-DD`}]},slug:{description:`Slug: All chars -> toSlug`,transformations:[],mask:[`toSlug`]}},Ry=[{pattern:`email*`,use:`email`},{pattern:`*_price`,use:`price`},{pattern:`name*`,use:`name`},{pattern:`date*`,use:`date`}],zy=new RegExp(Object.keys(Iy).join(`|`),`g`);function By(e){return e?e.normalize(`NFKC`).replace(zy,e=>Iy[e]??e):``}var Vy=class{config;matches;constructor(e={},t=[]){this.config={...Ly,...e},this.matches=[...Ry,...t]}apply(e,t,n=!1){let r=this.config[e];if(!r)return n?he(t):t;let i=t;i=By(String(i??``));let a=r.exclusions;if(Array.isArray(a)&&a.length){let e=String(i).toLowerCase();for(let t of a){let n=(t?.phrase??``).trim().toLowerCase();if(n&&e.includes(n)){i=``;break}}}for(let{pattern:t,replace:n=``}of r.transformations||[])try{i=String(i).replace(new RegExp(t,`g`),String(n))}catch{console.warn(`Invalid regex in rule ${String(e)}: ${t}`)}for(let t of r.mask||[]){let n,r;typeof t==`object`&&t&&`func`in t?(n=t.func,r=t.arg):n=t;let a=E[n];if(typeof a==`function`)try{i=a(i,r)}catch(t){console.warn(`Error applying mask ${n} for rule ${e}:`,t)}}return n?he(i):i}applyMatches(e,t=!1){let n={...e};for(let[r,i]of Object.entries(e))for(let e of this.matches)if(this.wildcardToRegExp(e.pattern).test(r)){n[r]=this.apply(e.use,i,t);break}return n}getOptions(){return Object.keys(this.config).sort().map(e=>({label:this.config[e].description??E.toCamel(e),value:e}))}addRule(e,t){this.config[e]=t}addMatch(e,t){this.matches.push({pattern:e,use:t})}wildcardToRegExp(e){let t=e.replace(/[.+^${}()|[\]\\]/g,`\\$&`);return RegExp(`^${t.replace(/\*/g,`.*`)}$`,`i`)}};function Hy(e,t){let n=m.default.parse(e,{header:!0,skipEmptyLines:!0,delimiter:t?.delimiter,dynamicTyping:!1});return{data:n.data,fields:(n.meta?.fields??[]).filter(Boolean)}}exports.AIProvider=oa,exports.AI_PROVIDER_DEFINITIONS=Fv,exports.AI_PROVIDER_DESCRIPTORS=Lv,exports.AI_PROVIDER_HOSTS=t.s,exports.ActionButton=Cn,exports.AddressAutocomplete=jp,exports.Alert=vr,exports.AnimatedNumber=Vf,exports.App=fv,exports.AppProvider=dv,exports.AreaChart=jf,exports.AsyncDropdown=Xa,exports.AuthButton=rr,exports.AuthFlowError=yl,exports.AuthGate=ou,exports.AuthLayout=ar,exports.AuthProvider=In,exports.Autocomplete=Fr,exports.BUILT_IN_THEMES=Ve,exports.BUILT_IN_THEME_IDS=Le,exports.BackLink=wn,exports.Badge=Mt,exports.BadgeOverlay=jt,exports.BarList=Ff,exports.Brand=su,exports.Breadcrumbs=sc,exports.CLOUDFLARE_PROVIDER_DESCRIPTOR=y_,exports.CONTEXT_MENU_SEARCH_THRESHOLD=no,exports.CalendarHeatmap=zf,exports.Card=hr,exports.Carousel=cu,exports.ChartDataTable=bf,exports.ChartLegend=vf,exports.ChatActivity=Oh,exports.ChatMarkdown=ph,exports.ChatQuestions=Eh,exports.ChatReasoning=hh,exports.Chatbot=Po,exports.Checkbox=ml,exports.Checklist=Ir,exports.Code=$d,exports.CodeEditor=xs,exports.CodeSyntaxError=ns,exports.Col=Ot,exports.Color=al,exports.ColumnChart=Cf,exports.Component=qs,exports.ComponentBlock=Js,exports.Container=Et,exports.ContextMenu=bo,exports.CropImage=Ei,exports.DEFAULT_DOCUMENT_HEAD=fm,exports.DEFAULT_HEAD_APP_NAME=dm,exports.DEFAULT_LANGUAGE_HEAD=pm,exports.DEFAULT_ORDER=xr,exports.DataProvider=cr,exports.Date=ol,exports.DateTime=cl,exports.DescriptionList=Fd,exports.DirectApiProviderAdapter=kv,exports.DivergingBarChart=Ef,exports.DropBoxConnectButton=hy,exports.DropboxAuthProvider=Ig,exports.Dropdown=Ya,exports.DropdownButton=Za,exports.DropdownDivider=eo,exports.DropdownHeader=$a,exports.DropdownItem=Qa,exports.DropdownMenu=to,exports.EMAIL_PROVIDER_DEFINITIONS=Nv,exports.Email=nl,exports.EmailProvider=sg,exports.FieldError=Zc,exports.FileNameEditor=Ni,exports.FirebaseApiProviderAdapter=jv,exports.FirebaseAuthProvider=Og,exports.FirebaseDataProvider=wg,exports.FirebaseStorageProvider=xd,exports.FirestoreDataProvider=Yu,exports.ForgotPassword=Cv,exports.Form=jc,exports.FormControllerContext=gc,exports.Gallery=jh,exports.GitHubAuthProvider=Rg,exports.GmailEmailProvider=Vg,exports.GoSite=Tn,exports.GoogleAuthProvider=ag,exports.GoogleMapsProvider=vp,exports.GoogleServiceAccountProvider=Pg,exports.Grid=Kh,exports.GridArray=Gh,exports.GridCore=Wh,exports.GridDB=Yp,exports.GridGalleryView=Mh,exports.GridTableView=cm,exports.Head=Hm,exports.HeadProvider=Am,exports.Heatmap=Lf,exports.Hidden=pl,exports.I18nProvider=pt,exports.Icon=Q,exports.IconProvider=nn,exports.Identicon=rf,exports.Image=Ss,exports.ImageAvatar=zn,exports.ImageEditor=fi,exports.ImageField=mi,exports.Input=$c,exports.Label=gl,exports.LayoutBuilder=gp,exports.LineChart=Af,exports.ListCard=Pp,exports.ListGroup=vl,exports.Loader=ur,exports.LoadingButton=Sn,exports.LocaleSwitcher=Uf,exports.LucideIconProvider=Gt,exports.MarkdownReader=Xm,exports.MeasureBarList=If,exports.Menu=qa,exports.MockApiProviderAdapter=Av,exports.MockAuthProvider=Kg,exports.MockDataProvider=hd,exports.Modal=si,exports.ModalOk=ui,exports.ModalYesNo=li,exports.Month=ul,exports.NORMALIZE_MAP=Iy,exports.Notifications=uu,exports.Number=tl,exports.OPENAI_COMPATIBLE_PROVIDER_DESCRIPTOR=Rv,exports.OneTimeCodeInput=Jl,exports.Order=wr,exports.PUBLISH_PROVIDER_DEFINITIONS=Pv,exports.PageUsers=qh,exports.Pagination=Ah,exports.Password=il,exports.Percentage=bi,exports.PhosphorIconProvider=Jt,exports.Prompt=Ko,exports.PromptMode=Fo,exports.PromptUtils=Ka,exports.ProviderSwitcher=Md,exports.Range=dl,exports.ReferSite=En,exports.Repeat=Jf,exports.ResetPassword=wv,exports.RichText=Ws,exports.Row=Dt,exports.SERVER_CREDENTIAL_PREFIX=t.c,exports.Sanitizer=Vy,exports.ScatterChart=Nf,exports.Search=fu,exports.Select=Nr,exports.SequenceColumnChart=Tf,exports.SideNav=Kp,exports.SignIn=Zl,exports.SignUp=Sv,exports.SortableList=Ip,exports.Sparkline=Mf,exports.StackedColumnChart=wf,exports.StorageProvider=Yr,exports.String=el,exports.SupabaseApiProviderAdapter=Mv,exports.SupabaseAuthProvider=Ug,exports.SupabaseDataProvider=cd,exports.SupabaseStorageProvider=Sd,exports.Switch=hl,exports.Tab=np,exports.TabDynamic=kh,exports.TabItem=ep,exports.TabLayouts=$f,exports.Table=ap,exports.Tel=rl,exports.TextArea=_l,exports.ThemeSwitcher=Su,exports.Time=sl,exports.Toolbar=hu,exports.Tree=zd,exports.UploadCSV=Mp,exports.UploadDocument=Vi,exports.UploadImage=Hi,exports.Url=fl,exports.VerifyCode=Yl,exports.VerifyEmail=Ev,exports.Week=ll,exports.Wrapper=Z,exports.arrayUnique=re,exports.arraysEqual=oe,exports.authErrorMessage=Tl,exports.authErrorReason=Cl,exports.base64Encode=ae,exports.base64ToBlob=ue,exports.base64ToUrl=K,exports.buildBreadcrumbSchema=ec,exports.buildModelIdentityIndex=t.t,exports.buildTextCommandContext=go,exports.buttonBaseClass=sn,exports.buttonDangerClass=un,exports.buttonDarkClass=hn,exports.buttonInfoClass=pn,exports.buttonLightClass=mn,exports.buttonLinkClass=bn,exports.buttonOutlineDangerClass=vn,exports.buttonOutlinePrimaryClass=gn,exports.buttonOutlineSecondaryClass=_n,exports.buttonOutlineSuccessClass=yn,exports.buttonPrimaryClass=cn,exports.buttonSecondaryClass=ln,exports.buttonSuccessClass=dn,exports.buttonWarningClass=fn,exports.callFirebaseFunction=zu,exports.canonicalModelName=t.n,exports.chartFill=of,exports.chartToken=af,exports.checkConditions=ee,exports.cleanRecord=fe,exports.cn=X,exports.configureProxy=ba,exports.converter=E,exports.copyToClipboard=A,exports.crc32=V,exports.createAIProviderRegistry=Bv,exports.createCloudflareProviderDefinition=v_,exports.createMotionTransition=Lt,exports.createServerCredentialAIRegistry=Vv,exports.createTranslations=ot,exports.decodeJWT=k,exports.defineLocaleMessages=at,exports.dirname=F,exports.dropBox=gy,exports.eventClosest=R,exports.fetchJson=Ce,exports.fetchRest=Se,exports.fetchWithRetry=we,exports.fieldAddonClass=Uc,exports.fieldControlBaseClass=Bc,exports.fieldFeedbackClass=zc,exports.fieldGroupClass=Hc,exports.fieldLabelClass=Rc,exports.fieldTextAreaBaseClass=Vc,exports.formatAIModelRef=ra,exports.generateUniqueId=L,exports.getAIModelCatalog=za,exports.getAccessToken=tr,exports.getAutoClosedSuffixLength=po,exports.getCodeValidationResult=fs,exports.getFileUrl=Bi,exports.getGlobalVars=Mn,exports.getGoogleTrendsData=Jv,exports.getGoogleTrendsRelated=Yv,exports.getKeywordIdeas=qv,exports.getProviderConfigurationState=Hn,exports.getRecordValue=de,exports.getTabLayoutConfig=Xf,exports.getTabPaneClassName=Qf,exports.getTabTriggerClassName=Zf,exports.googleGetAccessToken=zg,exports.groupModelOptions=So,exports.hasAutoClosedSuffix=fo,exports.identiconPattern=nf,exports.interpolate=J,exports.intersectObjects=te,exports.isAIProviderTarget=t.d,exports.isBadgeDescriptor=kt,exports.isEmpty=W,exports.isFreeAIModel=na,exports.isFreeModelOption=wo,exports.isInteractiveElement=ce,exports.isProxyEnabled=Ta,exports.labelText=Tr,exports.linkCode=nu,exports.loadGoogleMaps=Sp,exports.loadModelIdentityIndex=t.r,exports.loadScripts=U,Object.defineProperty(exports,"locales",{enumerable:!0,get:function(){return xv}}),exports.matchCommandTrigger=mo,exports.modelOffers=t.i,exports.moveItem=Fp,exports.niceMax=lf,exports.normalizeBadgeProps=At,exports.normalizeKey=P,exports.normalizePath=M,exports.normalizeVisualChars=By,exports.parseAIModelRef=ia,exports.parseCsvText=Hy,exports.path=Rn,exports.proxyFetch=Ca,exports.recordsEqual=me,exports.registerProviderSessionFactory=wd,exports.removeGlobalVars=Pn,exports.render2Base64=le,exports.repairStreamingMarkdown=ah,exports.replacePlaceholders=B,exports.replaceVariables=ne,exports.resolveModel=t.a,exports.resolveMotionEffect=Rt,exports.runPrompt=ts,exports.safeClone=ie,exports.sanitizeKey=se,exports.scrape=Fy,exports.sendEmail=Bg,exports.serverCredential=t.f,exports.setGlobalVars=Nn,exports.sleep=I,exports.smartTypeCast=he,exports.substrCount=z,exports.ticks=uf,exports.toProviderDescriptor=Iv,exports.treeFromPaths=Bd,exports.trimPath=j,exports.trimSlash=N,exports.ucfirst=H,exports.useAIProvider=sa,exports.useAIProviderRegistry=ca,exports.useAccessToken=Qn,exports.useAnimatedValues=mf,exports.useApiProvider=Dv,exports.useAssetsHead=zm,exports.useAuthFlows=tu,exports.useAuthProvider=Ln,exports.useAuthSession=$l,exports.useChartFormat=df,exports.useChartTooltip=yf,exports.useChartWidth=_f,exports.useCredentialsProvider=dg,exports.useDataProvider=lr,exports.useDocumentHead=Rm,exports.useDropBoxConnect=my,exports.useEditorHeight=xo,exports.useEmailProvider=cg,exports.useEnterMotion=Ht,exports.useFileUploadCore=Pi,exports.useFormActions=vc,exports.useFormContext=Dc,exports.useFormController=_c,exports.useGlobalVars=jn,exports.useGoogleMapsConfig=yp,exports.useHead=Nm,exports.useHeadLinks=Fm,exports.useI18n=Y,exports.useIconController=an,exports.useIconProvider=rn,exports.useImage=Vr,exports.useLanguageHead=Lm,exports.useMenu=hv,exports.useMotionEffect=zt,exports.useMotionState=Bt,exports.usePaginationHead=Im,exports.usePressMotion=Vt,exports.useProvider=Du,exports.useProviderSession=Ad,exports.useProxy=wa,exports.usePwaHead=Bm,exports.useReveal=hf,exports.useSchemaOrgHead=Vm,exports.useSetProvider=Eu,exports.useSocialHead=Pm,exports.useStorageProvider=Xr,exports.useTheme=q,exports.useThemeController=rt,exports.validateCodeSyntax=ds;
|
|
40
40
|
//# sourceMappingURL=index.js.map
|