@taishods/core 0.15.0 → 0.15.1

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/generate.js CHANGED
@@ -11,7 +11,7 @@ ${a}}
11
11
  ${n(`:where(${At}) *`,50," ")} }
12
12
  `:"")+n(".dark *, .scheme-dark *",50)+n(".scheme-light *",40)+n(".scheme-light .scheme-dark *",50)},Fn=`0 0 0 var(--ts-border-width-1) ${sn}, 0 0 0 var(--ts-border-width-4) ${Si}, var(--ts-sh, 0 0 transparent)`,Vn=`outline: none; box-shadow: ${Fn}; @media (forced-colors: active) { outline: var(--ts-border-width-2) solid Highlight; }`,ro=`outline: none; box-shadow: inset 0 0 0 var(--ts-sizing-2) ${sn}; @media (forced-colors: active) { outline: var(--ts-border-width-2) solid Highlight; }`,on=e=>`--_f-ring: var(--color-${e}-500); --_f-ring-hover: var(--color-${e}-600); @apply ts-focus-ring-${e};`,io=`:focus-visible:where(:not(.ts)) { ${Vn} }
13
13
  :where(.ts):focus-visible { outline: var(--ts-border-width-2) solid ${sn}; outline-offset: var(--ts-sizing-2); }
14
- `;var ao="0.15.0";var lo=ao;var Un=(e,n=Ye)=>e.replace(/var\(--ts-sizing-(\d+)\)/g,(o,r)=>`${n[r]}px`);function co(e="class",n=N,o=lo){let r=`/* Archivo auto-generado: RESET / BASE */
14
+ `;var ao="0.15.1";var lo=ao;var Un=(e,n=Ye)=>e.replace(/var\(--ts-sizing-(\d+)\)/g,(o,r)=>`${n[r]}px`);function co(e="class",n=N,o=lo){let r=`/* Archivo auto-generado: RESET / BASE */
15
15
 
16
16
  `;return r+=`*, *::before, *::after { box-sizing: border-box; }
17
17
  `,r+=`* { margin: 0; }
@@ -100,7 +100,7 @@ ${Bn(a.hijos,n+1)}${o}}
100
100
  ${Bn(a.hijos,n+1)}${o}}
101
101
  `;return r}var Hi=50;function Gi(e){let n=[],o=[],r=new Set,a=b=>{let C=JSON.stringify(b);r.has(C)||n.length>=Hi||(r.add(C),n.push(b))};if(e.length>J.css)return a({code:"ext-limit",params:{what:"css-size",max:J.css}}),{bloques:o,errores:n};let i=/[^\x20-\x7e\n\t\r]/.exec(e);if(i)return a({code:"ext-char-not-allowed",params:{char:zo(i[0])}}),{bloques:o,errores:n};let l=wo(e);if(!l)return a({code:"ext-css-unbalanced",params:{}}),{bloques:o,errores:n};let s=0,c=()=>{for(;l[s]?.k==="ws";)s++},d=()=>{for(let b=1;s<l.length&&b>0;s++)b+=l[s].k==="{"?1:l[s].k==="}"?-1:0},p=()=>{let b=0;for(;s<l.length;s++){let C=l[s].k;if(C==="("||C==="[")b++;else if(C===")"||C==="]")b--;else if(b===0&&C===";"){s++;return}else if(b===0&&C==="{"){s++,d();return}}},m=(b,C)=>{let $=[];for(let E of an(C))if(E.k!=="ws"){if(E.k!=="tx")return a({code:"ext-syntax",params:{block:b,snippet:`@apply ${Et(C)}`.slice(0,60)}}),null;/^!important$/i.test(E.v)?a({code:"ext-important",params:{block:b}}):$.push(E.v)}return $.length>J.clasesApply?(a({code:"ext-apply-budget",params:{block:b,limit:"classes",max:J.clasesApply}}),null):$.length?{t:"apply",destinos:$}:null},t=(b,C)=>{let $=an(C);if(!$.length)return null;if($[0].k==="tx"&&$[0].v[0]==="@")return $[0].v.toLowerCase()==="@apply"?m(b,$.slice(1)):(a({code:"ext-at-rule",params:{block:b,rule:/^@[a-zA-Z-]*/.exec($[0].v)[0]}}),null);let E=0,u=-1;for(let O=0;O<$.length&&u<0;O++)$[O].k==="("||$[O].k==="["?E++:$[O].k===")"||$[O].k==="]"?E--:$[O].k===":"&&E===0&&(u=O);let y=()=>(a({code:"ext-syntax",params:{block:b,snippet:Et($).slice(0,60)}}),null);if(u<0)return y();let w=Et($.slice(0,u));if(w.startsWith("--"))return a({code:"ext-custom-property",params:{block:b,property:w}}),null;if(!/^-?[a-z][a-z-]*$/.test(w))return y();let q=ko($.slice(u+1),w,b,a);return q?{t:"decl",prop:w,valor:q}:y()},g=(b,C)=>{let $=an(C);if(!$.length)return a({code:"ext-syntax",params:{block:b,snippet:"{"}}),null;if($[0].k==="tx"&&$[0].v[0]==="@"){let y=$[0].v.slice(1).toLowerCase(),w=Et($.slice(1));return bo.includes(y)?(y==="media"?!ho(w):!Bi(y,w))?(a(y==="media"?{code:"ext-media-query",params:{block:b,query:w}}:{code:"ext-at-params",params:{block:b,rule:`@${y}`,params:w}}),null):{at:y,params:w}:(a({code:"ext-at-rule",params:{block:b,rule:`@${y}`}}),null)}if($.some(y=>y.k==="bs"))return a({code:"ext-escape",params:{block:b}}),null;let E=Et($),u=Ui(E);return u?(a({code:"ext-selector-not-allowed",params:{block:b,selector:E.slice(0,80),motive:u}}),null):{prelude:E}},h=(b,C)=>{let $=[];for(;;){c();let E=l[s];if(!E)return $;if(E.k==="}")return s++,$;if(E.k===";"){s++;continue}let u=[],y=0,w=!1;for(;s<l.length;){let O=l[s];if(O.k==="("||O.k==="[")y++;else if(O.k===")"||O.k==="]")y--;else if(O.k==="{"||O.k==="}"||O.k===";"){if(y===0)break;w=!0}u.push(O),s++}let q=l[s]?.k;if(q===";"&&s++,w)a({code:"ext-syntax",params:{block:b,snippet:Et(u).slice(0,60)}}),q==="{"&&(s++,d());else if(q==="{"){s++;let O=g(b,u);if(!O)d();else if(C+1>J.profundidad)a({code:"ext-limit",params:{what:"depth",max:J.profundidad}}),d();else{let B=h(b,C+1);$.push("at"in O?{t:"at",nombre:O.at,params:O.params,hijos:B}:{t:"regla",prelude:O.prelude,hijos:B})}}else{let O=t(b,u);O&&$.push(O)}}};for(;;){c();let b=l[s];if(!b)break;if(b.k==="tx"&&b.v==="@utility"){let C=s;s++;let $=[];for(;s<l.length&&l[s].k!=="{"&&l[s].k!==";";)$.push(l[s++]);if(l[s]?.k!=="{"){s=C,a({code:"ext-top-level",params:{snippet:xo(l,C)}}),p();continue}s++;let E=Et($);$.some(w=>w.k==="bs")&&a({code:"ext-escape",params:{block:E}});let u=h(E,1);if(!Di.test(E)){a({code:"ext-name-invalid",params:{kind:"block",name:E.slice(0,80)}});continue}let y=`@utility ${E} {
102
102
  ${Bn(u,1)}}
103
- `;if(y.length>J.bloque){a({code:"ext-limit",params:{what:"block-size",max:J.bloque}});continue}o.push({name:E,nodos:u,css:y})}else a({code:"ext-top-level",params:{snippet:xo(l,s)}}),p()}return{bloques:o,errores:n}}function xo(e,n){let o=0,r=0,a=(()=>{for(let i=n;i<e.length;i++){let l=e[i].k;if(l==="("||l==="[")o++;else if(l===")"||l==="]")o--;else if(l==="{")r++;else{if(l==="}"&&--r<=0)return i+1;if(l===";"&&o===0&&r===0)return i+1}if(i-n>60)return i}return e.length})();return Et(e.slice(n,a)).slice(0,60)}var rn=new Map;function $o(e){let n=rn.get(e);return n||(rn.size>=64&&rn.clear(),n=Gi(e),rn.set(e,n)),n}var Wn=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function Ce(e,n){let o=`extensions[${JSON.stringify(n)}]`,r=[];if(!Wn(e))return r;if(Wn(e.components))for(let[a,i]of Object.entries(e.components))Wn(i)&&typeof i.css=="string"&&r.push({slug:a,ruta:`${o}.components.${a}.css`,parse:$o(i.css)});return typeof e.utilities=="string"&&r.push({slug:void 0,ruta:`${o}.utilities`,parse:$o(e.utilities)}),r}var ln=e=>e.flatMap(n=>n.parse.errores.map(o=>({path:n.ruta,...o})));var Ki={"@sm:":"24rem","@md:":"28rem","@lg:":"32rem","@xl:":"36rem","@2xl:":"42rem","@3xl:":"48rem","@4xl:":"56rem","@5xl:":"64rem","@6xl:":"72rem","@7xl:":"80rem"},Zi=["busy","checked","disabled","expanded","hidden","pressed","readonly","required","selected","invalid"],Xi="@media (hover: hover)";function kt(e){let n=new Map,o=Object.entries(e).sort(([,r],[,a])=>parseFloat(r)-parseFloat(a));for(let[r,a]of o)n.set(`${r}:`,{valor:`${parseFloat(a)/16}rem`,tipo:"media"});for(let[r,a]of[...o].reverse())n.set(`max-${r}:`,{valor:`${parseFloat(a)/16}rem`,tipo:"max"});for(let[r,a]of Object.entries(Ki))n.set(r,{valor:a,tipo:"container"});n.set("print:",{valor:"",tipo:"print"}),n.set("hover:",{valor:":hover",tipo:"selector",en:Xi}),n.set("focus:",{valor:":focus",tipo:"selector"}),n.set("focus-visible:",{valor:":focus-visible",tipo:"selector"}),n.set("active:",{valor:":active",tipo:"selector"});for(let r of Zi)n.set(`aria-${r}:`,{valor:`[aria-${r}="true"]`,tipo:"selector"});return n.set("checked:",{valor:":checked",tipo:"selector"}),n.set("invalid:",{valor:":invalid",tipo:"selector"}),n.set("disabled:",{valor:':is(:disabled, [aria-disabled="true"])',tipo:"selector"}),n}var Ji=["hover","focus","focus-visible","active","aria","data","checked","invalid","disabled"],Ro=e=>{let n=e.slice(0,-1),o=n.startsWith("aria-")?"aria":n.startsWith("data-")?"data":n;return Ji.indexOf(o)},Eo=/^[a-z][a-z0-9-]*$/;function To(e,n){let o=n.get(e);if(o)return o.tipo==="media"?{prefijo:e,tipo:"contexto",sufijo:"",media:`(width >= ${o.valor})`,orden:[]}:o.tipo==="max"?{prefijo:e,tipo:"contexto",sufijo:"",media:`(width < ${o.valor})`,orden:[]}:o.tipo==="container"?{prefijo:e,tipo:"contexto",sufijo:"",container:`(width >= ${o.valor})`,orden:[]}:o.tipo==="print"?{prefijo:e,tipo:"print",sufijo:"",media:"print",orden:[]}:{prefijo:e,tipo:"estado",sufijo:o.valor,media:o.en?.replace("@media ",""),orden:[2+Ro(e)]};let r=/^data-(.+):$/.exec(e);if(r&&Eo.test(r[1])&&!r[1].startsWith("ts-"))return{prefijo:e,tipo:"estado",sufijo:`[data-${r[1]}]`,orden:[2+Ro(e)]};let a=/^(group|peer)-(.+?)(?:\/([^/:]+))?:$/.exec(e);if(a&&(a[3]===void 0||Eo.test(a[3]))){let i=To(`${a[2]}:`,n);if(i?.tipo==="estado"){let l=`:where(.ts.${a[1]}${a[3]?`\\/${a[3]}`:""})`,s=a[1]==="group"?" *":" ~ *";return{prefijo:e,tipo:"grupo",sufijo:`:is(${l}${i.sufijo}${s})`,media:i.media,orden:[a[1]==="group"?0:1,...i.orden]}}}}var Hn=["contexto","print","grupo","estado"];function Tt(e,n){let o=[];for(let i of e){let l=To(i,n);if(!l)return/^data-ts-/.test(i)?{ok:!1,motivo:"data-ts",prefijo:i}:{ok:!1,motivo:"desconocido",prefijo:i};o.push(l)}let r=o.map(i=>Hn.indexOf(i.tipo));return r.every((i,l)=>l===0||i>r[l-1])&&o.length<=3?{ok:!0,segmentos:o}:new Set(r).size!==r.length||o.length>3?{ok:!1,motivo:"orden"}:{ok:!1,motivo:"orden",canonica:[...o].sort((i,l)=>Hn.indexOf(i.tipo)-Hn.indexOf(l.tipo)).map(i=>i.prefijo)}}function Oe(e){let n=e.split(":");return{cadena:n.slice(0,-1).map(o=>`${o}:`),base:n[n.length-1]}}function le(e,n,o=[]){if(o.includes(e))return[];let r=[];for(let a of n[e]??[]){if(typeof a!="string")continue;let{cadena:i,base:l}=Oe(a);if(Object.hasOwn(n,l))for(let s of le(l,n,[...o,e]))r.push({cadena:[...i,...s.cadena],base:s.base});else r.push({cadena:i,base:l})}return r}var Ut=e=>e.includes(".");function Yi(e){let[n,...o]=e.split(".");return{componente:n,modificadores:o}}function Gn(e){let n=new Map;Object.keys(e).forEach((o,r)=>{if(!Ut(o))return;let{componente:a,modificadores:i}=Yi(o);n.set(a,[...n.get(a)??[],{clave:o,modificadores:i,decl:r}])});for(let o of n.values())o.sort((r,a)=>r.modificadores.length-a.modificadores.length||r.decl-a.decl);return n}function Co(e){let n=new Map;for(let[o,r]of Gn(e))n.set(o,[...new Set(r.flatMap(a=>a.modificadores))]);return n}function cn(e){let n=new Map;for(let o of Object.keys(e)){if(Ut(o))continue;let r=le(o,e);r.some(a=>a.cadena.length>0)&&n.set(o,r)}return n}function Oo(e){let n=new Map,o=(r,a)=>{if(!(n.has(r)||a.includes(r))){for(let i of e[r]){if(typeof i!="string")continue;let{base:l}=Oe(i);Object.hasOwn(e,l)&&o(l,[...a,r])}n.set(r,n.size)}};for(let r of Object.keys(e))Ut(r)||o(r,[]);return n}var De=(e,n=0,o=0)=>e*1e6+n*1e3+o,ce="a lo sumo un contexto, un print, un group o peer y un estado, en ese orden, y 3 segmentos";function de(e,n,o){let r=[];for(let a of n){let i=[...e,...a.cadena],l=Tt(i,o);if(!l.ok)return[...r,{ok:!1,hoja:a,compuesta:i.join("")+a.base}];r.push({ok:!0,cadena:i,hoja:a,segmentos:l.segmentos})}return r}var dn=(e,n,o,r)=>({class:e,utility:n,inner:r.hoja.cadena.join("")+r.hoja.base,use:o.join(""),result:r.compuesta});var mt=e=>e?` \xBFSe quiso decir "${e}"?`:"",ft=e=>e?` Did you mean "${e}"?`:"",Qi={slug:"slug",root:"ra\xEDz",block:"bloque",token:"clave de token"},Do={slug:"el componente",root:"la ra\xEDz",block:"el bloque",utility:"la utilidad",variable:"la variable"},ta={hex:"el color hex",name:"el color con nombre",function:"la funci\xF3n de color"},Kn={slug:"slug",root:"root",block:"block",token:"token key",utility:"utility",variable:"variable"},ea={hex:"the hex color",name:"the named color",function:"the color function"},na={unscoped:"el sujeto es siempre & (s\xF3lo se admite un ancestro: una clase o [dir=\u2026] antes de &).",combinator:"s\xF3lo se admiten el espacio y > como combinadores (no ~, + ni *).",pseudo:"esa pseudoclase o pseudoelemento no est\xE1 en la lista permitida.",attribute:"un atributo s\xF3lo puede ser aria-*, data-*, dir, disabled, open\u2026, con = y un valor [a-z0-9-].",syntax:"no se entiende."},sa={unscoped:"The subject is always & (only an ancestor is allowed: a class or [dir=\u2026] before &).",combinator:"Only the space and > combinators are allowed (not ~, + or *).",pseudo:"That pseudo-class or pseudo-element isn't in the allowed list.",attribute:"An attribute can only be aria-*, data-*, dir, disabled, open\u2026, with = and a [a-z0-9-] value.",syntax:"It can't be read."},oa={classes:"demasiadas clases en un @apply",depth:"cadena de @apply demasiado profunda","block-size":"el bloque expandido es demasiado grande","total-size":"el CSS expandido del paquete es demasiado grande"},ra={classes:"too many classes in one @apply",depth:"@apply chain too deep","block-size":"the expanded block is too large","total-size":"the package's expanded CSS is too large"},ia={"css-size":"tama\xF1o del CSS (bytes)","block-size":"tama\xF1o de un bloque (bytes)",blocks:"bloques",depth:"anidamiento",tokens:"tokens por componente","value-length":"largo de un valor de token","key-length":"largo de una clave de token",components:"componentes",roots:"ra\xEDces (por componente o sueltas)"},aa={"css-size":"CSS size (bytes)","block-size":"block size (bytes)",blocks:"blocks",depth:"nesting",tokens:"tokens per component","value-length":"token value length","key-length":"token key length",components:"components",roots:"roots (per component or loose)"},la={integer:'tiene que ser un n\xFAmero entero, p. ej. "10".',"font-weight":'tiene que ser un peso entre 1 y 1000, p. ej. "600".',opacity:'tiene que ser un n\xFAmero entre 0 y 1 (p. ej. "0.5") o un var().',duration:'tiene que ser un tiempo en ms o s, p. ej. "150ms".',iterations:'tiene que ser "infinite" o un n\xFAmero de repeticiones (0 o m\xE1s), p. ej. "0".',px:"tiene que ser un n\xFAmero de px (0 o m\xE1s), p. ej. 32."},ca={integer:'It must be a whole number, e.g., "10".',"font-weight":'It must be a weight from 1 to 1000, e.g., "600".',opacity:'It must be a number from 0 to 1 (e.g., "0.5") or a var().',duration:'It must be a time in ms or s, e.g., "150ms".',iterations:'It must be "infinite" or a number of repetitions (0 or more), e.g., "0".',px:"It must be a number of px (0 or more), e.g., 32."},Zn="at most one context, one print, one group or peer, and one state, in that order, and 3 segments",da={"empty-value":()=>"tiene un valor vac\xEDo.","value-not-string":e=>`tiene que ser un texto (${JSON.stringify(e.value)} no lo es), p. ej. "10px".`,"unsafe-value":e=>`tiene un valor inv\xE1lido (${JSON.stringify(e.value)}): no puede contener ; { } \\ /* */ ni saltos de l\xEDnea.`,"scope-invalid":e=>`tiene un valor inv\xE1lido (${JSON.stringify(e.value)}): el \xFAnico valor es 'ts', y ya es el \xFAnico modo: se quita la clave.`,"dark-mode-invalid":e=>`tiene un valor inv\xE1lido (${JSON.stringify(e.value)}): se usa 'class' o 'media'.`,"icons-html-dirs-removed":()=>"ya no existe: se declara `content`.","brand-required":()=>"es obligatorio: de esa semilla sale la paleta de marca (enlaces, acentos y, si no se define `primary`, los botones primarios). Se le pone un hex, p. ej. colors: { brand: '#4F46E5' }.","font-italic-missing":e=>`pide italic, pero ${e.source} no trae ${e.subset}-${e.weight}-italic.css. Se quita "italic" de styles, se quita ese peso o se elige una fuente con it\xE1lica.`,"font-styles-invalid":e=>`tiene un valor inv\xE1lido (${JSON.stringify(e.value)}): tiene que ser una lista con 'normal' y/o 'italic', p. ej. styles: ['normal', 'italic'].`,"primary-invalid":()=>"tiene un valor inv\xE1lido: tiene que ser un color (hex u oklch), p. ej. primary: 'oklch(0.15 0 0)'. Si no hace falta un primario aparte, se quita la clave: los botones primarios usan la marca.","primary-in-colors":()=>"`primary` no es un color de paleta: va en `themes.<tema>.primary`, junto a `colors`, no adentro.","screen-exists":e=>`ya existe en el DS. El corte de un screen de f\xE1brica (los @media) es fijo; themes.<tema>.screens.${e.name} s\xF3lo cambia el token --ts-screen-${e.name} y ts-max-w-screen-${e.name}.`,"screen-name-invalid":()=>"es un nombre inv\xE1lido: tiene que ser xs (o 2xs\u20269xs) o 2xl\u20269xl.","screen-value-invalid":e=>`tiene un valor inv\xE1lido ("${e.value}"): tiene que ser un ancho en px, p. ej. "1536px".`,"screen-repeated":e=>`repite el ancho ${e.value} de screens.${e.other}.`,"screen-below-min":e=>`tiene un ancho incoherente con su nombre: ${e.name} tiene que ser menor que el screen de f\xE1brica m\xE1s chico (${e.px}px).`,"screen-above-max":e=>`tiene un ancho incoherente con su nombre: ${e.name} tiene que ser mayor que el screen de f\xE1brica m\xE1s grande (${e.px}px).`,"screen-order":e=>`tiene un ancho incoherente con su nombre: ${e.name} (${e.value}) tiene que ser ${e.greater?"mayor":"menor"} que ${e.other} (${e.otherValue}).`,"scale-exists":e=>`ya existe en el DS. Para cambiar su valor se usa themes.<tema>.${e.themePath}.${e.name}.`,"scale-name-invalid":()=>'es un nombre inv\xE1lido: min\xFAsculas y d\xEDgitos, separados por guiones (p. ej. "card" o "hero-lg").',"extend-key-unknown":e=>`no es una clave de extend.${mt(e.suggestion)}`,"extend-key-excluded":e=>`no se ampl\xEDa: un nombre nuevo ser\xEDa una variable sin clase que la use. Para cambiar el valor de uno que ya existe se usa themes.<tema>.${e.key}.<nombre>.`,"extend-shape-invalid":e=>`tiene una forma inv\xE1lida (${JSON.stringify(e.value)}): tiene que ser ${e.expected==="list"?"una lista, p. ej. [30, 100]":'un objeto de nombres, p. ej. { nombre: "valor" }'}.`,"theme-key-unknown":e=>`no es una clave de un tema.${e.extendPath?` Para sumar nombres a esa escala se usa ${e.extendPath}; el tema s\xF3lo cambia valores.`:""}${mt(e.suggestion)}`,"theme-name-unknown":e=>`no es un nombre de la escala ${e.scale}: un tema s\xF3lo cambia el valor de un nombre que ya existe.${e.extendPath?` Para sumarlo se usa ${e.extendPath}.${e.name}.`:" Esa escala no se puede ampliar."}`,"corner-shape-invalid":e=>`tiene un valor inv\xE1lido (${JSON.stringify(e.value)}): tiene que ser 'round' o 'squircle'.`,"value-type-invalid":e=>`tiene un valor inv\xE1lido (${JSON.stringify(e.value)}): ${la[e.kind]}`,"sizing-exists":e=>e.repeated?`repite el nivel ${e.level} de la lista.`:"ya existe en el DS. El sizing es fijo: s\xF3lo se suman niveles nuevos (un tema no cambia su valor).","font-size-needs-line-height":e=>`necesita un interlineado con el mismo nombre: se suma extend.lineHeights.${e.name}.`,"scale-name-numeric":e=>`es un nombre inv\xE1lido: en esta escala el nombre es un n\xFAmero entero (${e.range}), p. ej. "36".`,"space-neg-prefix":()=>'no puede empezar con "neg-": ese prefijo lo usan los nombres de los m\xE1rgenes negativos (ts-mt-neg-1).',"space-negative-suffix":()=>'no puede terminar en "-negative": ese sufijo lo genera el motor para los m\xE1rgenes negativos.',"class-exists":e=>`genera la clase ${e.class}, que ya existe en el DS. Se elige otro nombre.`,"class-duplicated":e=>`genera la clase ${e.class}, que tambi\xE9n genera ${e.other}. Se elige otro nombre.`,"class-renamed-exists":e=>`genera la clase ${e.class}, cuyo nombre nuevo ${e.renamed} ya existe en el DS. Se elige otro nombre.`,"utility-empty":()=>"tiene una lista de clases vac\xEDa.","utility-not-a-class":e=>`compone ${JSON.stringify(e.value)}, que no es un nombre de clase.`,"utility-composes-modifier":e=>`compone "${e.class}": un modificador no es una utilidad; se compone "${e.utility}" y se pone "${e.modifiers.join(" ")}" en el markup.`,"utility-unknown-prefix":e=>`compone "${e.class}": el prefijo "${e.prefix}" no existe.${mt(e.suggestion)}`,"utility-data-ts-variant":e=>`compone "${e.class}": \`data-ts-*\` es el gancho de los componentes, no una variante. Los \`data-<nombre>:\` propios s\xED valen.`,"utility-out-of-order":e=>`compone "${e.class}": la cadena est\xE1 fuera de orden.${mt(e.suggestion)}`,"utility-invalid-chain":e=>`compone "${e.class}": la cadena no es v\xE1lida, admite ${ce}.`,"utility-variant-on-component":e=>`compone "${e.class}": las variantes aplican s\xF3lo a utilidades, y "${e.base}" es de un componente o un modificador. Sus estados son \`is-*\`, \`aria\` y los internos.`,"utility-unknown-class":e=>`compone "${e.class}", que no existe en el DS (los nombres no llevan "ts-" y los viejos no existen) ni entre tus utilities.${mt(e.suggestion)}`,"utility-invalid-composition":e=>`compone "${e.class}": "${e.utility}" lleva "${e.inner}" y con "${e.use}" queda "${e.result}", que no es una cadena v\xE1lida: admite ${ce}.`,"utility-composes-component":e=>`compone "${e.class}": las variantes aplican s\xF3lo a utilidades, y "${e.utility}" lleva "${e.component}", que es de un componente o un modificador.`,"utility-cycle":e=>`tiene un ciclo entre utilidades propias: ${e.cycle.join(" \u2192 ")}.`,"modifier-invalid":e=>`tiene un modificador inv\xE1lido ("${e.modifier}"): min\xFAsculas y d\xEDgitos separados por guiones, empezando con letra (p. ej. "destructive").`,"modifier-reserved-prefix":e=>`tiene un modificador inv\xE1lido ("${e.modifier}"): no puede empezar con "${e.prefix}" (prefijo reservado al DS).`,"modifier-theme-class":e=>`tiene un modificador inv\xE1lido ("${e.modifier}"): es la llave del modo scope o una clase de tema.`,"modifier-short-name":e=>`tiene un modificador ("${e.modifier}") que choca con un nombre corto del DS: aplicar\xEDa ese estilo a cualquier elemento que lo lleve. Se elige otro nombre (p. ej. "${e.modifier}-<propiedad>", como las variantes del Core).`,"modifier-is-utility":e=>`tiene un modificador ("${e.modifier}") que es el nombre de otra utilidad propia: activar\xEDa esa utilidad.`,"component-missing":e=>`el componente "${e.component}" no est\xE1 en utilities: declaralo antes, sin modificadores.`,"modifier-repeated":()=>"repite un modificador.","combination-repeated":e=>`repite la combinaci\xF3n de utilities.${e.other}: el orden de los modificadores no importa.`,"utility-name-invalid":()=>'es un nombre inv\xE1lido: min\xFAsculas y d\xEDgitos separados por guiones, empezando con letra (p. ej. "card-hero").',"utility-reserved-prefix":e=>`es un nombre inv\xE1lido: no puede empezar con "${e.prefix}" (prefijo reservado al DS).`,"utility-name-is-modifier":()=>"es un nombre inv\xE1lido: es un modificador de componente o la clase de tema (variant-*, size-*, is-*, dark\u2026) y pisar\xEDa a cada componente.","utility-conflicts-ds":()=>"choca con una utilidad del DS. Se elige otro nombre.","utility-name-ts":()=>'es un nombre inv\xE1lido: "ts" es la llave del modo scope.',"utility-short-name":()=>"choca con un nombre corto del DS en el modo scope. Se elige otro nombre.","safelist-not-list":()=>"tiene que ser una lista de strings.","safelist-entry-empty":()=>"tiene que ser un string no vac\xEDo.","safelist-unknown-prefix":e=>`tiene el prefijo "${e.prefix}", que no existe.${mt(e.suggestion)}`,"safelist-data-ts":e=>`tiene el prefijo "${e.prefix}": \`data-ts-*\` es el gancho de los componentes y no es una variante.`,"safelist-out-of-order":e=>`tiene las variantes fuera de orden.${mt(e.suggestion)}`,"safelist-invalid-chain":()=>"tiene una cadena de variantes inv\xE1lida: a lo sumo un contexto, un print, un group o peer y un estado, en ese orden, y 3 segmentos.","safelist-misplaced-colon":()=>'tiene un ":" mal ubicado: las variantes van antes de la clase (p. ej. "md:hover:gap-4").',"safelist-legacy-prefix":e=>`es inv\xE1lida: en scope no lleva \`ts-\`${e.suggestion!==void 0?`: \`${e.suggestion}\``:""}.`,"safelist-star-not-last":()=>'tiene un "*" que no est\xE1 al final: la familia s\xF3lo admite "*" al final (p. ej. "grid-cols-*").',"safelist-family-empty":e=>`no expande a ninguna clase del DS ni de tus utilities.${mt(e.suggestion)}`,"safelist-component-variant":()=>"es un componente: un componente entra entero y no lleva variante.","safelist-modifier-variant":()=>'es un modificador de una utilidad propia: no lleva variante (se pone la variante en la propia, p. ej. "md:mi-button").',"safelist-unknown":e=>`no existe en el DS ni entre tus utilities.${mt(e.suggestion)}`,"ext-shape":e=>`no tiene la forma esperada: tiene que ser ${e.expected}.`,"ext-name-invalid":e=>`tiene un nombre inv\xE1lido ("${e.name}", ${Qi[e.kind]}): min\xFAsculas y d\xEDgitos separados por guiones, empezando con letra${e.kind==="block"?' y con el prefijo "ts-"':""}.`,"ext-roots-empty":()=>"no tiene ra\xEDces: un componente necesita al menos una para poseer sus bloques.","ext-root-repeated":e=>`repite la ra\xEDz "${e.root}", que ya es ${e.other?`del componente "${e.other}"`:"de las ra\xEDces sueltas del paquete"}.`,"ext-block-not-owned":e=>`tiene el bloque "${e.block}", que no es de ninguna ra\xEDz de este componente (${e.roots.join(", ")||"ninguna"}): tiene que ser ts-<ra\xEDz> o ts-<ra\xEDz>-\u2026.`,"ext-block-repeated":e=>`repite el bloque "${e.block}".`,"ext-conflicts-core":e=>`declara ${Do[e.kind]} "${e.name}", que choca con un nombre del Core. Se elige otro.`,"ext-conflicts-extension":e=>`declara ${Do[e.kind]} "${e.name}", que ya es del paquete "${e.other}": "${e.package}" y "${e.other}" no pueden compartir un nombre. Se elige otro.`,"ext-apply-target":e=>e.reason==="core-component"?`aplica "${e.target}" en "${e.block}", que es un bloque de un componente del Core: @apply s\xF3lo vale hacia utilidades del Core.`:e.reason==="other-component"?`aplica "${e.target}" en "${e.block}", que es un bloque de otro componente o de otro paquete: @apply s\xF3lo vale hacia utilidades del Core o bloques del mismo componente.`:e.reason==="cycle"?`aplica "${e.target}" en "${e.block}" y eso forma un ciclo de @apply.`:`aplica "${e.target}" en "${e.block}", que no es una utilidad del Core.${mt(e.suggestion)}`,"ext-var-not-public":e=>`lee ${e.variable} en "${e.block}", que no es un token del Core ni de las ra\xEDces de este paquete (--ts-<ra\xEDz>-\u2026).${mt(e.suggestion)}`,"ext-modifier-loose":e=>e.motive==="suelto"?`tiene en "${e.block}" un modificador suelto en "${e.selector}": un modificador va en el mismo compuesto que su base (& o .ts-\u2026).`:`tiene en "${e.block}" una clase que no es del vocabulario en "${e.selector}": una extensi\xF3n no suma modificadores, s\xF3lo usa los del Core.`,"ext-color-literal":e=>`escribe en "${e.block}" ${ta[e.kind]} "${e.value}": el CSS no lleva colores literales, s\xF3lo var(--\u2026). Declaralo en los tokens del componente.`,"ext-top-level":e=>`tiene en el nivel superior algo que no es un @utility ("${e.snippet}"): s\xF3lo se admiten bloques @utility.`,"ext-at-rule":e=>`usa ${e.rule} en "${e.block}": s\xF3lo se admiten @media, @supports, @container y @starting-style, y @apply hacia utilidades del Core.`,"ext-media-query":e=>`usa un @media no permitido en "${e.block}" ("${e.query}"): s\xF3lo consultas de preferencia (prefers-*, forced-colors, hover, pointer), nunca el ancho.`,"ext-url":e=>`usa url() en "${e.block}": una extensi\xF3n no carga recursos.`,"ext-escape":e=>`usa una barra invertida (\\) en "${e.block}": no se admiten escapes.`,"manifest-format":e=>`trae un taisho.manifest.json ${e.format===void 0?"sin formato":`de formato ${String(e.format)}`} (versi\xF3n ${e.version}); este Core s\xF3lo entiende el formato 3. Se actualiza el paquete.`,"manifest-shape":e=>`tiene un taisho.manifest.json con una forma inv\xE1lida: ${e.expected}.`,"manifest-json":e=>`tiene un JSON inv\xE1lido en "${e.file}".`,"manifest-path-escapes":e=>`nombra "${e.file}", que sale de la carpeta del paquete: se rechaza todo el paquete.`,"manifest-file-invalid":e=>e.reason==="too-big"?`nombra "${e.file}", que pesa m\xE1s de 1 MiB.`:`nombra "${e.file}", que no es un archivo regular.`,"package-name-mismatch":e=>`se instal\xF3 como un alias: su package.json se llama "${e.name}". Un paquete con estilos tiene que instalarse con su nombre.`,"ext-css-unbalanced":()=>"tiene llaves, par\xE9ntesis o corchetes que no cierran, o una cadena o un comentario sin cerrar.","ext-char-not-allowed":e=>`tiene un car\xE1cter que no se admite (${e.char}): s\xF3lo ASCII imprimible.`,"ext-string-not-allowed":e=>`usa una cadena de texto en "${e.block}": s\xF3lo se admite en content, corta y sin llaves, par\xE9ntesis ni arrobas.`,"ext-function-not-allowed":e=>`usa la funci\xF3n ${e.fn}() en "${e.block}", que no est\xE1 en la lista permitida (var, calc, min, max, clamp, round, mod, color-mix, rgb, hsl, oklch, linear-gradient, translate, scale, rotate, repeat, minmax).`,"ext-selector-not-allowed":e=>`tiene en "${e.block}" un selector que no se admite ("${e.selector}"): ${na[e.motive]}`,"ext-important":e=>`usa !important en "${e.block}": no se admite. Se sube la especificidad (p. ej. con && en el selector).`,"ext-custom-property":e=>`declara la propiedad personalizada ${e.property} en "${e.block}": el CSS s\xF3lo lee var(--\u2026). Se declara el valor en los tokens del componente.`,"ext-syntax":e=>`tiene en "${e.block}" algo que no se entiende ("${e.snippet}"): una declaraci\xF3n es propiedad: valor; con la propiedad en min\xFAsculas y un valor de la lista permitida.`,"ext-at-params":e=>`usa ${e.rule} en "${e.block}" con par\xE1metros que no se admiten ("${e.params}"): consultas simples y con unidades relativas.`,"ext-roots-overlap":e=>`declara la ra\xEDz "${e.root}", que se pisa con la ra\xEDz "${e.other}" del paquete "${e.otherPackage}": una no puede ser prefijo de la otra ("${e.package}" y "${e.otherPackage}"). Se elige otra.`,"ext-utility-no-root":e=>`tiene la utilidad "${e.block}", que no es de ninguna ra\xEDz de los componentes ni de las ra\xEDces sueltas de este paquete: tiene que ser ts-<ra\xEDz> o ts-<ra\xEDz>-\u2026.`,"ext-variable-repeated":e=>`repite la variable "${e.variable}": dos claves de tokens dan el mismo nombre.`,"ext-apply-budget":e=>`pasa el presupuesto de @apply en "${e.block}": ${oa[e.limit]} (m\xE1ximo ${e.max}).`,"ext-limit":e=>`pasa el l\xEDmite de ${ia[e.what]}: m\xE1ximo ${e.max}.`,"theme-component-unknown":e=>`no es un componente de ninguna extensi\xF3n instalada ("${e.slug}").${mt(e.suggestion)}`,"theme-component-token-unknown":e=>`no es un token que declare "${e.slug}" ("${e.key}").${mt(e.suggestion)}`},pa={"empty-value":()=>"is empty. Give it a value.","value-not-string":e=>`must be a string (${JSON.stringify(e.value)} isn't), e.g., "10px".`,"unsafe-value":e=>`has an invalid value (${JSON.stringify(e.value)}). It can't contain ; { } \\ /* */ or line breaks.`,"scope-invalid":e=>`has an invalid value (${JSON.stringify(e.value)}). The only value is 'ts', and it's already the only mode. Remove the key.`,"dark-mode-invalid":e=>`has an invalid value (${JSON.stringify(e.value)}). Use 'class' or 'media'.`,"icons-html-dirs-removed":()=>"no longer exists. Declare `content` instead.","brand-required":()=>"is required. That seed drives the brand palette (links, accents and, unless you set `primary`, the primary buttons). Give it a hex, e.g., colors: { brand: '#4F46E5' }.","font-italic-missing":e=>`asks for italic, but ${e.source} has no ${e.subset}-${e.weight}-italic.css. Remove "italic" from styles, drop that weight or pick a font that ships an italic.`,"font-styles-invalid":e=>`has an invalid value (${JSON.stringify(e.value)}): it must be a list with 'normal' and/or 'italic', e.g., styles: ['normal', 'italic'].`,"primary-invalid":()=>"has an invalid value. It must be a color (hex or oklch), e.g., primary: 'oklch(0.15 0 0)'. If you don't want a separate primary, remove the key: primary buttons use the brand.","primary-in-colors":()=>"`primary` isn't a palette color: it goes in `themes.<theme>.primary`, next to `colors`, not inside it.","screen-exists":e=>`already exists in the DS. A built-in screen's breakpoint (the @media) is fixed; themes.<theme>.screens.${e.name} only changes the --ts-screen-${e.name} token and ts-max-w-screen-${e.name}.`,"screen-name-invalid":()=>"isn't a valid name. Use xs (or 2xs\u20269xs) or 2xl\u20269xl.","screen-value-invalid":e=>`has an invalid value ("${e.value}"). It must be a width in px, e.g., "1536px".`,"screen-repeated":e=>`repeats the ${e.value} width of screens.${e.other}.`,"screen-below-min":e=>`has a width that doesn't match its name. ${e.name} must be narrower than the smallest built-in screen (${e.px}px).`,"screen-above-max":e=>`has a width that doesn't match its name. ${e.name} must be wider than the largest built-in screen (${e.px}px).`,"screen-order":e=>`has a width that doesn't match its name. ${e.name} (${e.value}) must be ${e.greater?"wider":"narrower"} than ${e.other} (${e.otherValue}).`,"scale-exists":e=>`already exists in the DS. To change its value, use themes.<theme>.${e.themePath}.${e.name}.`,"scale-name-invalid":()=>`isn't a valid name. Use lowercase letters and digits separated by hyphens (e.g., "card" or "hero-lg").`,"extend-key-unknown":e=>`isn't an extend key.${ft(e.suggestion)}`,"extend-key-excluded":e=>`can't be extended: a new name would be a variable with no class using it. To change the value of an existing one use themes.<theme>.${e.key}.<name>.`,"extend-shape-invalid":e=>`has an invalid shape (${JSON.stringify(e.value)}). It must be ${e.expected==="list"?"a list, e.g., [30, 100]":'an object of names, e.g., { name: "value" }'}.`,"theme-key-unknown":e=>`isn't a theme key.${e.extendPath?` To add names to that scale use ${e.extendPath}; a theme only changes values.`:""}${ft(e.suggestion)}`,"theme-name-unknown":e=>`isn't a name in the ${e.scale} scale. A theme only changes the value of an existing name.${e.extendPath?` To add it use ${e.extendPath}.${e.name}.`:" That scale can't be extended."}`,"corner-shape-invalid":e=>`has an invalid value (${JSON.stringify(e.value)}). It must be 'round' or 'squircle'.`,"value-type-invalid":e=>`has an invalid value (${JSON.stringify(e.value)}). ${ca[e.kind]}`,"sizing-exists":e=>e.repeated?`repeats level ${e.level} of the list.`:"already exists in the DS. The sizing is fixed: you only add new levels (a theme can't change its value).","font-size-needs-line-height":e=>`needs a line height with the same name. Add extend.lineHeights.${e.name}.`,"scale-name-numeric":e=>`isn't a valid name. In this scale the name is a whole number (${e.range}), e.g., "36".`,"space-neg-prefix":()=>`can't start with "neg-". Negative margin names use that prefix (ts-mt-neg-1).`,"space-negative-suffix":()=>`can't end in "-negative". The engine generates that suffix for negative margins.`,"class-exists":e=>`generates the class ${e.class}, which already exists in the DS. Pick another name.`,"class-duplicated":e=>`generates the class ${e.class}, which ${e.other} also generates. Pick another name.`,"class-renamed-exists":e=>`generates the class ${e.class}, whose new name ${e.renamed} already exists in the DS. Pick another name.`,"utility-empty":()=>"has an empty class list.","utility-not-a-class":e=>`composes ${JSON.stringify(e.value)}, which isn't a class name.`,"utility-composes-modifier":e=>`composes "${e.class}", but a modifier isn't a utility. Compose "${e.utility}" and put "${e.modifiers.join(" ")}" in the markup.`,"utility-unknown-prefix":e=>`composes "${e.class}", but the prefix "${e.prefix}" doesn't exist.${ft(e.suggestion)}`,"utility-data-ts-variant":e=>`composes "${e.class}", but \`data-ts-*\` is the hook for components, not a variant. Your own \`data-<name>:\` variants are fine.`,"utility-out-of-order":e=>`composes "${e.class}", but the chain is out of order.${ft(e.suggestion)}`,"utility-invalid-chain":e=>`composes "${e.class}", but the chain isn't valid. A chain allows ${Zn}.`,"utility-variant-on-component":e=>`composes "${e.class}", but variants apply only to utilities, and "${e.base}" belongs to a component or is a modifier. Its states are \`is-*\`, \`aria\`, and its internal ones.`,"utility-unknown-class":e=>`composes "${e.class}", which isn't in the DS (names don't take "ts-", and old names don't exist) or in your utilities.${ft(e.suggestion)}`,"utility-invalid-composition":e=>`composes "${e.class}". "${e.utility}" includes "${e.inner}", and with "${e.use}" it becomes "${e.result}", which isn't a valid chain. A chain allows ${Zn}.`,"utility-composes-component":e=>`composes "${e.class}", but variants apply only to utilities, and "${e.utility}" includes "${e.component}", which belongs to a component or is a modifier.`,"utility-cycle":e=>`has a cycle between your utilities: ${e.cycle.join(" \u2192 ")}.`,"modifier-invalid":e=>`has an invalid modifier ("${e.modifier}"). Use lowercase letters and digits separated by hyphens, starting with a letter (e.g., "destructive").`,"modifier-reserved-prefix":e=>`has an invalid modifier ("${e.modifier}"). It can't start with "${e.prefix}" (a prefix reserved for the DS).`,"modifier-theme-class":e=>`has an invalid modifier ("${e.modifier}"). It's the scope class or a theme class.`,"modifier-short-name":e=>`has a modifier ("${e.modifier}") that conflicts with a short DS name, so it would apply that style to any element that has it. Pick another name (e.g., "${e.modifier}-<property>", like Core's variants).`,"modifier-is-utility":e=>`has a modifier ("${e.modifier}") that's the name of another of your utilities, so it would trigger that utility.`,"component-missing":e=>`uses the component "${e.component}", which isn't in utilities. Declare it first, without modifiers.`,"modifier-repeated":()=>"repeats a modifier.","combination-repeated":e=>`repeats the combination in utilities.${e.other}. The order of the modifiers doesn't matter.`,"utility-name-invalid":()=>`isn't a valid name. Use lowercase letters and digits separated by hyphens, starting with a letter (e.g., "card-hero").`,"utility-reserved-prefix":e=>`isn't a valid name. It can't start with "${e.prefix}" (a prefix reserved for the DS).`,"utility-name-is-modifier":()=>"isn't a valid name. It's a component modifier or the theme class (variant-*, size-*, is-*, dark\u2026), and it would override every component.","utility-conflicts-ds":()=>"conflicts with a DS utility. Pick another name.","utility-name-ts":()=>`isn't a valid name. "ts" is the scope class.`,"utility-short-name":()=>"conflicts with a short DS name in scope mode. Pick another name.","safelist-not-list":()=>"must be a list of strings.","safelist-entry-empty":()=>"must be a non-empty string.","safelist-unknown-prefix":e=>`has the prefix "${e.prefix}", which doesn't exist.${ft(e.suggestion)}`,"safelist-data-ts":e=>`has the prefix "${e.prefix}", but \`data-ts-*\` is the hook for components, not a variant.`,"safelist-out-of-order":e=>`has its variants out of order.${ft(e.suggestion)}`,"safelist-invalid-chain":()=>`has an invalid variant chain. A chain allows ${Zn}.`,"safelist-misplaced-colon":()=>'has a misplaced ":". Variants go before the class (e.g., "md:hover:gap-4").',"safelist-legacy-prefix":e=>`isn't valid. In scope mode, classes don't take \`ts-\`${e.suggestion!==void 0?` (write \`${e.suggestion}\`)`:""}.`,"safelist-star-not-last":()=>`has a "*" that isn't at the end. A family only allows "*" at the end (e.g., "grid-cols-*").`,"safelist-family-empty":e=>`doesn't expand to any class in the DS or in your utilities.${ft(e.suggestion)}`,"safelist-component-variant":()=>"is a component. A component comes in whole and can't take a variant.","safelist-modifier-variant":()=>`is a modifier of one of your utilities, so it can't take a variant. Put the variant on the utility itself (e.g., "md:mi-button").`,"safelist-unknown":e=>`isn't in the DS or in your utilities.${ft(e.suggestion)}`,"ext-shape":e=>`doesn't have the expected shape. It must be ${e.expected}.`,"ext-name-invalid":e=>`has an invalid name ("${e.name}", ${Kn[e.kind]}). Use lowercase letters and digits separated by hyphens, starting with a letter${e.kind==="block"?' and with the "ts-" prefix':""}.`,"ext-roots-empty":()=>"has no roots. A component needs at least one to own its blocks.","ext-root-repeated":e=>`repeats the root "${e.root}", which already belongs to ${e.other?`the component "${e.other}"`:"the package's loose roots"}.`,"ext-block-not-owned":e=>`has the block "${e.block}", which doesn't belong to any root of this component (${e.roots.join(", ")||"none"}). It must be ts-<root> or ts-<root>-\u2026.`,"ext-block-repeated":e=>`repeats the block "${e.block}".`,"ext-conflicts-core":e=>`declares the ${Kn[e.kind]} "${e.name}", which conflicts with a Core name. Pick another.`,"ext-conflicts-extension":e=>`declares the ${Kn[e.kind]} "${e.name}", which already belongs to the package "${e.other}". "${e.package}" and "${e.other}" can't share a name. Pick another.`,"ext-apply-target":e=>e.reason==="core-component"?`applies "${e.target}" in "${e.block}", which is a block of a Core component. @apply only works toward Core utilities.`:e.reason==="other-component"?`applies "${e.target}" in "${e.block}", which is a block of another component or another package. @apply only works toward Core utilities or blocks of the same component.`:e.reason==="cycle"?`applies "${e.target}" in "${e.block}" and that forms an @apply cycle.`:`applies "${e.target}" in "${e.block}", which isn't a Core utility.${ft(e.suggestion)}`,"ext-var-not-public":e=>`reads ${e.variable} in "${e.block}", which is neither a Core token nor one of this package's roots (--ts-<root>-\u2026).${ft(e.suggestion)}`,"ext-modifier-loose":e=>e.motive==="suelto"?`has a loose modifier in "${e.block}" at "${e.selector}". A modifier goes in the same compound as its base (& or .ts-\u2026).`:`has a class in "${e.block}" at "${e.selector}" that isn't in the vocabulary. An extension can't add modifiers; it only uses Core's.`,"ext-color-literal":e=>`writes ${ea[e.kind]} "${e.value}" in "${e.block}". CSS doesn't carry literal colors, only var(--\u2026). Declare it in the component's tokens.`,"ext-top-level":e=>`has something at the top level that isn't a @utility ("${e.snippet}"). Only @utility blocks are allowed.`,"ext-at-rule":e=>`uses ${e.rule} in "${e.block}". Only @media, @supports, @container and @starting-style are allowed, plus @apply toward Core utilities.`,"ext-media-query":e=>`uses a @media that isn't allowed in "${e.block}" ("${e.query}"). Only preference queries (prefers-*, forced-colors, hover, pointer), never the width.`,"ext-url":e=>`uses url() in "${e.block}". An extension doesn't load resources.`,"ext-escape":e=>`uses a backslash (\\) in "${e.block}". Escapes aren't allowed.`,"manifest-format":e=>`ships a taisho.manifest.json ${e.format===void 0?"with no format":`in format ${String(e.format)}`} (version ${e.version}), and this Core only reads format 3. Update the package.`,"manifest-shape":e=>`has a taisho.manifest.json with an invalid shape: ${e.expected}.`,"manifest-json":e=>`has invalid JSON in "${e.file}".`,"manifest-path-escapes":e=>`names "${e.file}", which leaves the package folder. The whole package is rejected.`,"manifest-file-invalid":e=>e.reason==="too-big"?`names "${e.file}", which is larger than 1 MiB.`:`names "${e.file}", which isn't a regular file.`,"package-name-mismatch":e=>`was installed as an alias: its package.json is named "${e.name}". A package with styles must be installed under its own name.`,"ext-css-unbalanced":()=>"has braces, parentheses or brackets that don't close, or an unclosed string or comment.","ext-char-not-allowed":e=>`has a character that isn't allowed (${e.char}). Only printable ASCII.`,"ext-string-not-allowed":e=>`uses a text string in "${e.block}". Only allowed in content, short and without braces, parentheses or at-signs.`,"ext-function-not-allowed":e=>`uses the function ${e.fn}() in "${e.block}", which isn't in the allowed list (var, calc, min, max, clamp, round, mod, color-mix, rgb, hsl, oklch, linear-gradient, translate, scale, rotate, repeat, minmax).`,"ext-selector-not-allowed":e=>`has a selector that isn't allowed in "${e.block}" ("${e.selector}"). ${sa[e.motive]}`,"ext-important":e=>`uses !important in "${e.block}", which isn't allowed. Raise the specificity instead (e.g. with && in the selector).`,"ext-custom-property":e=>`declares the custom property ${e.property} in "${e.block}". CSS only reads var(--\u2026). Declare the value in the component's tokens.`,"ext-syntax":e=>`has something in "${e.block}" that can't be read ("${e.snippet}"). A declaration is property: value; with a lowercase property and a value from the allowed list.`,"ext-at-params":e=>`uses ${e.rule} in "${e.block}" with parameters that aren't allowed ("${e.params}"). Simple queries with relative units.`,"ext-roots-overlap":e=>`declares the root "${e.root}", which overlaps the root "${e.other}" of the package "${e.otherPackage}". One can't be a prefix of the other ("${e.package}" and "${e.otherPackage}"). Pick another.`,"ext-utility-no-root":e=>`has the utility "${e.block}", which doesn't belong to any root of this package's components or of its loose roots. It must be ts-<root> or ts-<root>-\u2026.`,"ext-variable-repeated":e=>`repeats the variable "${e.variable}". Two token keys produce the same name.`,"ext-apply-budget":e=>`exceeds the @apply budget in "${e.block}": ${ra[e.limit]} (maximum ${e.max}).`,"ext-limit":e=>`exceeds the limit of ${aa[e.what]}: maximum ${e.max}.`,"theme-component-unknown":e=>`isn't a component of any installed extension ("${e.slug}").${ft(e.suggestion)}`,"theme-component-token-unknown":e=>`isn't a token that "${e.slug}" declares ("${e.key}").${ft(e.suggestion)}`},ua={es:da,en:pa};function Xn(e,n){return`taisho config: ${e.path} ${ua[n][e.code](e.params)}`}var St=class extends Error{errors;constructor(n){super(n.map(o=>Xn(o,"es")).join(`
103
+ `;if(y.length>J.bloque){a({code:"ext-limit",params:{what:"block-size",max:J.bloque}});continue}o.push({name:E,nodos:u,css:y})}else a({code:"ext-top-level",params:{snippet:xo(l,s)}}),p()}return{bloques:o,errores:n}}function xo(e,n){let o=0,r=0,a=(()=>{for(let i=n;i<e.length;i++){let l=e[i].k;if(l==="("||l==="[")o++;else if(l===")"||l==="]")o--;else if(l==="{")r++;else{if(l==="}"&&--r<=0)return i+1;if(l===";"&&o===0&&r===0)return i+1}if(i-n>60)return i}return e.length})();return Et(e.slice(n,a)).slice(0,60)}var rn=new Map;function $o(e){let n=rn.get(e);return n||(rn.size>=64&&rn.clear(),n=Gi(e),rn.set(e,n)),n}var Wn=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function Ce(e,n){let o=`extensions[${JSON.stringify(n)}]`,r=[];if(!Wn(e))return r;if(Wn(e.components))for(let[a,i]of Object.entries(e.components))Wn(i)&&typeof i.css=="string"&&r.push({slug:a,ruta:`${o}.components.${a}.css`,parse:$o(i.css)});return typeof e.utilities=="string"&&r.push({slug:void 0,ruta:`${o}.utilities`,parse:$o(e.utilities)}),r}var ln=e=>e.flatMap(n=>n.parse.errores.map(o=>({path:n.ruta,...o})));var Ki={"@sm:":"24rem","@md:":"28rem","@lg:":"32rem","@xl:":"36rem","@2xl:":"42rem","@3xl:":"48rem","@4xl:":"56rem","@5xl:":"64rem","@6xl:":"72rem","@7xl:":"80rem"},Zi=["busy","checked","disabled","expanded","hidden","pressed","readonly","required","selected","invalid"],Xi="@media (hover: hover)";function kt(e){let n=new Map,o=Object.entries(e).sort(([,r],[,a])=>parseFloat(r)-parseFloat(a));for(let[r,a]of o)n.set(`${r}:`,{valor:`${parseFloat(a)/16}rem`,tipo:"media"});for(let[r,a]of[...o].reverse())n.set(`max-${r}:`,{valor:`${parseFloat(a)/16}rem`,tipo:"max"});for(let[r,a]of Object.entries(Ki))n.set(r,{valor:a,tipo:"container"});n.set("print:",{valor:"",tipo:"print"}),n.set("hover:",{valor:":hover",tipo:"selector",en:Xi}),n.set("focus:",{valor:":focus",tipo:"selector"}),n.set("focus-visible:",{valor:":focus-visible",tipo:"selector"}),n.set("active:",{valor:":active",tipo:"selector"});for(let r of Zi)n.set(`aria-${r}:`,{valor:`[aria-${r}="true"]`,tipo:"selector"});return n.set("checked:",{valor:":checked",tipo:"selector"}),n.set("invalid:",{valor:":invalid",tipo:"selector"}),n.set("disabled:",{valor:':is(:disabled, [aria-disabled="true"])',tipo:"selector"}),n}var Ji=["hover","focus","focus-visible","active","aria","data","checked","invalid","disabled"],Ro=e=>{let n=e.slice(0,-1),o=n.startsWith("aria-")?"aria":n.startsWith("data-")?"data":n;return Ji.indexOf(o)},Eo=/^[a-z][a-z0-9-]*$/;function To(e,n){let o=n.get(e);if(o)return o.tipo==="media"?{prefijo:e,tipo:"contexto",sufijo:"",media:`(width >= ${o.valor})`,orden:[]}:o.tipo==="max"?{prefijo:e,tipo:"contexto",sufijo:"",media:`(width < ${o.valor})`,orden:[]}:o.tipo==="container"?{prefijo:e,tipo:"contexto",sufijo:"",container:`(width >= ${o.valor})`,orden:[]}:o.tipo==="print"?{prefijo:e,tipo:"print",sufijo:"",media:"print",orden:[]}:{prefijo:e,tipo:"estado",sufijo:o.valor,media:o.en?.replace("@media ",""),orden:[2+Ro(e)]};let r=/^data-(.+):$/.exec(e);if(r&&Eo.test(r[1])&&!r[1].startsWith("ts-"))return{prefijo:e,tipo:"estado",sufijo:`[data-${r[1]}]`,orden:[2+Ro(e)]};let a=/^(group|peer)-(.+?)(?:\/([^/:]+))?:$/.exec(e);if(a&&(a[3]===void 0||Eo.test(a[3]))){let i=To(`${a[2]}:`,n);if(i?.tipo==="estado"){let l=`:where(.ts.${a[1]}${a[3]?`\\/${a[3]}`:""})`,s=a[1]==="group"?" *":" ~ *";return{prefijo:e,tipo:"grupo",sufijo:`:is(${l}${i.sufijo}${s})`,media:i.media,orden:[a[1]==="group"?0:1,...i.orden]}}}}var Hn=["contexto","print","grupo","estado"];function Tt(e,n){let o=[];for(let i of e){let l=To(i,n);if(!l)return/^data-ts-/.test(i)?{ok:!1,motivo:"data-ts",prefijo:i}:{ok:!1,motivo:"desconocido",prefijo:i};o.push(l)}let r=o.map(i=>Hn.indexOf(i.tipo));return r.every((i,l)=>l===0||i>r[l-1])&&o.length<=3?{ok:!0,segmentos:o}:new Set(r).size!==r.length||o.length>3?{ok:!1,motivo:"orden"}:{ok:!1,motivo:"orden",canonica:[...o].sort((i,l)=>Hn.indexOf(i.tipo)-Hn.indexOf(l.tipo)).map(i=>i.prefijo)}}function Oe(e){let n=e.split(":");return{cadena:n.slice(0,-1).map(o=>`${o}:`),base:n[n.length-1]}}function le(e,n,o=[]){if(o.includes(e))return[];let r=[];for(let a of n[e]??[]){if(typeof a!="string")continue;let{cadena:i,base:l}=Oe(a);if(Object.hasOwn(n,l))for(let s of le(l,n,[...o,e]))r.push({cadena:[...i,...s.cadena],base:s.base});else r.push({cadena:i,base:l})}return r}var Ut=e=>e.includes(".");function Yi(e){let[n,...o]=e.split(".");return{componente:n,modificadores:o}}function Gn(e){let n=new Map;Object.keys(e).forEach((o,r)=>{if(!Ut(o))return;let{componente:a,modificadores:i}=Yi(o);n.set(a,[...n.get(a)??[],{clave:o,modificadores:i,decl:r}])});for(let o of n.values())o.sort((r,a)=>r.modificadores.length-a.modificadores.length||r.decl-a.decl);return n}function Co(e){let n=new Map;for(let[o,r]of Gn(e))n.set(o,[...new Set(r.flatMap(a=>a.modificadores))]);return n}function cn(e){let n=new Map;for(let o of Object.keys(e)){if(Ut(o))continue;let r=le(o,e);r.some(a=>a.cadena.length>0)&&n.set(o,r)}return n}function Oo(e){let n=new Map,o=(r,a)=>{if(!(n.has(r)||a.includes(r))){for(let i of e[r]){if(typeof i!="string")continue;let{base:l}=Oe(i);Object.hasOwn(e,l)&&o(l,[...a,r])}n.set(r,n.size)}};for(let r of Object.keys(e))Ut(r)||o(r,[]);return n}var De=(e,n=0,o=0)=>e*1e6+n*1e3+o,ce="a lo sumo un contexto, un print, un group o peer y un estado, en ese orden, y 3 segmentos";function de(e,n,o){let r=[];for(let a of n){let i=[...e,...a.cadena],l=Tt(i,o);if(!l.ok)return[...r,{ok:!1,hoja:a,compuesta:i.join("")+a.base}];r.push({ok:!0,cadena:i,hoja:a,segmentos:l.segmentos})}return r}var dn=(e,n,o,r)=>({class:e,utility:n,inner:r.hoja.cadena.join("")+r.hoja.base,use:o.join(""),result:r.compuesta});var mt=e=>e?` \xBFSe quiso decir "${e}"?`:"",ft=e=>e?` Did you mean "${e}"?`:"",Qi={slug:"slug",root:"ra\xEDz",block:"bloque",token:"clave de token"},Do={slug:"el componente",root:"la ra\xEDz",block:"el bloque",utility:"la utilidad",variable:"la variable"},ta={hex:"el color hex",name:"el color con nombre",function:"la funci\xF3n de color"},Kn={slug:"slug",root:"root",block:"block",token:"token key",utility:"utility",variable:"variable"},ea={hex:"the hex color",name:"the named color",function:"the color function"},na={unscoped:"el sujeto es siempre & (s\xF3lo se admite un ancestro: una clase o [dir=\u2026] antes de &).",combinator:"s\xF3lo se admiten el espacio y > como combinadores (no ~, + ni *).",pseudo:"esa pseudoclase o pseudoelemento no est\xE1 en la lista permitida.",attribute:"un atributo s\xF3lo puede ser aria-*, data-*, dir, disabled, open\u2026, con = y un valor [a-z0-9-].",syntax:"no se entiende."},sa={unscoped:"The subject is always & (only an ancestor is allowed: a class or [dir=\u2026] before &).",combinator:"Only the space and > combinators are allowed (not ~, + or *).",pseudo:"That pseudo-class or pseudo-element isn't in the allowed list.",attribute:"An attribute can only be aria-*, data-*, dir, disabled, open\u2026, with = and a [a-z0-9-] value.",syntax:"It can't be read."},oa={classes:"demasiadas clases en un @apply",depth:"cadena de @apply demasiado profunda","block-size":"el bloque expandido es demasiado grande","total-size":"el CSS expandido del paquete es demasiado grande"},ra={classes:"too many classes in one @apply",depth:"@apply chain too deep","block-size":"the expanded block is too large","total-size":"the package's expanded CSS is too large"},ia={"css-size":"tama\xF1o del CSS (bytes)","block-size":"tama\xF1o de un bloque (bytes)",blocks:"bloques",depth:"anidamiento",tokens:"tokens por componente","value-length":"largo de un valor de token","key-length":"largo de una clave de token",components:"componentes",roots:"ra\xEDces (por componente o sueltas)"},aa={"css-size":"CSS size (bytes)","block-size":"block size (bytes)",blocks:"blocks",depth:"nesting",tokens:"tokens per component","value-length":"token value length","key-length":"token key length",components:"components",roots:"roots (per component or loose)"},la={integer:'tiene que ser un n\xFAmero entero, p. ej. "10".',"font-weight":'tiene que ser un peso entre 1 y 1000, p. ej. "600".',opacity:'tiene que ser un n\xFAmero entre 0 y 1 (p. ej. "0.5") o un var().',duration:'tiene que ser un tiempo en ms o s, p. ej. "150ms".',iterations:'tiene que ser "infinite" o un n\xFAmero de repeticiones (0 o m\xE1s), p. ej. "0".',px:"tiene que ser un n\xFAmero de px (0 o m\xE1s), p. ej. 32."},ca={integer:'It must be a whole number, e.g., "10".',"font-weight":'It must be a weight from 1 to 1000, e.g., "600".',opacity:'It must be a number from 0 to 1 (e.g., "0.5") or a var().',duration:'It must be a time in ms or s, e.g., "150ms".',iterations:'It must be "infinite" or a number of repetitions (0 or more), e.g., "0".',px:"It must be a number of px (0 or more), e.g., 32."},Zn="at most one context, one print, one group or peer, and one state, in that order, and 3 segments",da={"empty-value":()=>"tiene un valor vac\xEDo.","value-not-string":e=>`tiene que ser un texto (${JSON.stringify(e.value)} no lo es), p. ej. "10px".`,"unsafe-value":e=>`tiene un valor inv\xE1lido (${JSON.stringify(e.value)}): no puede contener ; { } \\ /* */ ni saltos de l\xEDnea.`,"scope-invalid":e=>`tiene un valor inv\xE1lido (${JSON.stringify(e.value)}): el \xFAnico valor es 'ts', y ya es el \xFAnico modo: se quita la clave.`,"dark-mode-invalid":e=>`tiene un valor inv\xE1lido (${JSON.stringify(e.value)}): se usa 'class' o 'media'.`,"out-invalid":e=>`tiene que ser una ruta de carpeta, en un texto no vac\xEDo (${JSON.stringify(e.value)} no lo es), p. ej. out: './taisho'.`,"icons-html-dirs-removed":()=>"ya no existe: se declara `content`.","brand-required":()=>"es obligatorio: de esa semilla sale la paleta de marca (enlaces, acentos y, si no se define `primary`, los botones primarios). Se le pone un hex, p. ej. colors: { brand: '#4F46E5' }.","font-italic-missing":e=>`pide italic, pero ${e.source} no trae ${e.subset}-${e.weight}-italic.css. Se quita "italic" de styles, se quita ese peso o se elige una fuente con it\xE1lica.`,"font-styles-invalid":e=>`tiene un valor inv\xE1lido (${JSON.stringify(e.value)}): tiene que ser una lista con 'normal' y/o 'italic', p. ej. styles: ['normal', 'italic'].`,"primary-invalid":()=>"tiene un valor inv\xE1lido: tiene que ser un color (hex u oklch), p. ej. primary: 'oklch(0.15 0 0)'. Si no hace falta un primario aparte, se quita la clave: los botones primarios usan la marca.","primary-in-colors":()=>"`primary` no es un color de paleta: va en `themes.<tema>.primary`, junto a `colors`, no adentro.","screen-exists":e=>`ya existe en el DS. El corte de un screen de f\xE1brica (los @media) es fijo; themes.<tema>.screens.${e.name} s\xF3lo cambia el token --ts-screen-${e.name} y ts-max-w-screen-${e.name}.`,"screen-name-invalid":()=>"es un nombre inv\xE1lido: tiene que ser xs (o 2xs\u20269xs) o 2xl\u20269xl.","screen-value-invalid":e=>`tiene un valor inv\xE1lido ("${e.value}"): tiene que ser un ancho en px, p. ej. "1536px".`,"screen-repeated":e=>`repite el ancho ${e.value} de screens.${e.other}.`,"screen-below-min":e=>`tiene un ancho incoherente con su nombre: ${e.name} tiene que ser menor que el screen de f\xE1brica m\xE1s chico (${e.px}px).`,"screen-above-max":e=>`tiene un ancho incoherente con su nombre: ${e.name} tiene que ser mayor que el screen de f\xE1brica m\xE1s grande (${e.px}px).`,"screen-order":e=>`tiene un ancho incoherente con su nombre: ${e.name} (${e.value}) tiene que ser ${e.greater?"mayor":"menor"} que ${e.other} (${e.otherValue}).`,"scale-exists":e=>`ya existe en el DS. Para cambiar su valor se usa themes.<tema>.${e.themePath}.${e.name}.`,"scale-name-invalid":()=>'es un nombre inv\xE1lido: min\xFAsculas y d\xEDgitos, separados por guiones (p. ej. "card" o "hero-lg").',"extend-key-unknown":e=>`no es una clave de extend.${mt(e.suggestion)}`,"extend-key-excluded":e=>`no se ampl\xEDa: un nombre nuevo ser\xEDa una variable sin clase que la use. Para cambiar el valor de uno que ya existe se usa themes.<tema>.${e.key}.<nombre>.`,"extend-shape-invalid":e=>`tiene una forma inv\xE1lida (${JSON.stringify(e.value)}): tiene que ser ${e.expected==="list"?"una lista, p. ej. [30, 100]":'un objeto de nombres, p. ej. { nombre: "valor" }'}.`,"theme-key-unknown":e=>`no es una clave de un tema.${e.extendPath?` Para sumar nombres a esa escala se usa ${e.extendPath}; el tema s\xF3lo cambia valores.`:""}${mt(e.suggestion)}`,"theme-name-unknown":e=>`no es un nombre de la escala ${e.scale}: un tema s\xF3lo cambia el valor de un nombre que ya existe.${e.extendPath?` Para sumarlo se usa ${e.extendPath}.${e.name}.`:" Esa escala no se puede ampliar."}`,"corner-shape-invalid":e=>`tiene un valor inv\xE1lido (${JSON.stringify(e.value)}): tiene que ser 'round' o 'squircle'.`,"value-type-invalid":e=>`tiene un valor inv\xE1lido (${JSON.stringify(e.value)}): ${la[e.kind]}`,"sizing-exists":e=>e.repeated?`repite el nivel ${e.level} de la lista.`:"ya existe en el DS. El sizing es fijo: s\xF3lo se suman niveles nuevos (un tema no cambia su valor).","font-size-needs-line-height":e=>`necesita un interlineado con el mismo nombre: se suma extend.lineHeights.${e.name}.`,"scale-name-numeric":e=>`es un nombre inv\xE1lido: en esta escala el nombre es un n\xFAmero entero (${e.range}), p. ej. "36".`,"space-neg-prefix":()=>'no puede empezar con "neg-": ese prefijo lo usan los nombres de los m\xE1rgenes negativos (ts-mt-neg-1).',"space-negative-suffix":()=>'no puede terminar en "-negative": ese sufijo lo genera el motor para los m\xE1rgenes negativos.',"class-exists":e=>`genera la clase ${e.class}, que ya existe en el DS. Se elige otro nombre.`,"class-duplicated":e=>`genera la clase ${e.class}, que tambi\xE9n genera ${e.other}. Se elige otro nombre.`,"class-renamed-exists":e=>`genera la clase ${e.class}, cuyo nombre nuevo ${e.renamed} ya existe en el DS. Se elige otro nombre.`,"utility-empty":()=>"tiene una lista de clases vac\xEDa.","utility-not-a-class":e=>`compone ${JSON.stringify(e.value)}, que no es un nombre de clase.`,"utility-composes-modifier":e=>`compone "${e.class}": un modificador no es una utilidad; se compone "${e.utility}" y se pone "${e.modifiers.join(" ")}" en el markup.`,"utility-unknown-prefix":e=>`compone "${e.class}": el prefijo "${e.prefix}" no existe.${mt(e.suggestion)}`,"utility-data-ts-variant":e=>`compone "${e.class}": \`data-ts-*\` es el gancho de los componentes, no una variante. Los \`data-<nombre>:\` propios s\xED valen.`,"utility-out-of-order":e=>`compone "${e.class}": la cadena est\xE1 fuera de orden.${mt(e.suggestion)}`,"utility-invalid-chain":e=>`compone "${e.class}": la cadena no es v\xE1lida, admite ${ce}.`,"utility-variant-on-component":e=>`compone "${e.class}": las variantes aplican s\xF3lo a utilidades, y "${e.base}" es de un componente o un modificador. Sus estados son \`is-*\`, \`aria\` y los internos.`,"utility-unknown-class":e=>`compone "${e.class}", que no existe en el DS (los nombres no llevan "ts-" y los viejos no existen) ni entre tus utilities.${mt(e.suggestion)}`,"utility-invalid-composition":e=>`compone "${e.class}": "${e.utility}" lleva "${e.inner}" y con "${e.use}" queda "${e.result}", que no es una cadena v\xE1lida: admite ${ce}.`,"utility-composes-component":e=>`compone "${e.class}": las variantes aplican s\xF3lo a utilidades, y "${e.utility}" lleva "${e.component}", que es de un componente o un modificador.`,"utility-cycle":e=>`tiene un ciclo entre utilidades propias: ${e.cycle.join(" \u2192 ")}.`,"modifier-invalid":e=>`tiene un modificador inv\xE1lido ("${e.modifier}"): min\xFAsculas y d\xEDgitos separados por guiones, empezando con letra (p. ej. "destructive").`,"modifier-reserved-prefix":e=>`tiene un modificador inv\xE1lido ("${e.modifier}"): no puede empezar con "${e.prefix}" (prefijo reservado al DS).`,"modifier-theme-class":e=>`tiene un modificador inv\xE1lido ("${e.modifier}"): es la llave del modo scope o una clase de tema.`,"modifier-short-name":e=>`tiene un modificador ("${e.modifier}") que choca con un nombre corto del DS: aplicar\xEDa ese estilo a cualquier elemento que lo lleve. Se elige otro nombre (p. ej. "${e.modifier}-<propiedad>", como las variantes del Core).`,"modifier-is-utility":e=>`tiene un modificador ("${e.modifier}") que es el nombre de otra utilidad propia: activar\xEDa esa utilidad.`,"component-missing":e=>`el componente "${e.component}" no est\xE1 en utilities: declaralo antes, sin modificadores.`,"modifier-repeated":()=>"repite un modificador.","combination-repeated":e=>`repite la combinaci\xF3n de utilities.${e.other}: el orden de los modificadores no importa.`,"utility-name-invalid":()=>'es un nombre inv\xE1lido: min\xFAsculas y d\xEDgitos separados por guiones, empezando con letra (p. ej. "card-hero").',"utility-reserved-prefix":e=>`es un nombre inv\xE1lido: no puede empezar con "${e.prefix}" (prefijo reservado al DS).`,"utility-name-is-modifier":()=>"es un nombre inv\xE1lido: es un modificador de componente o la clase de tema (variant-*, size-*, is-*, dark\u2026) y pisar\xEDa a cada componente.","utility-conflicts-ds":()=>"choca con una utilidad del DS. Se elige otro nombre.","utility-name-ts":()=>'es un nombre inv\xE1lido: "ts" es la llave del modo scope.',"utility-short-name":()=>"choca con un nombre corto del DS en el modo scope. Se elige otro nombre.","safelist-not-list":()=>"tiene que ser una lista de strings.","safelist-entry-empty":()=>"tiene que ser un string no vac\xEDo.","safelist-unknown-prefix":e=>`tiene el prefijo "${e.prefix}", que no existe.${mt(e.suggestion)}`,"safelist-data-ts":e=>`tiene el prefijo "${e.prefix}": \`data-ts-*\` es el gancho de los componentes y no es una variante.`,"safelist-out-of-order":e=>`tiene las variantes fuera de orden.${mt(e.suggestion)}`,"safelist-invalid-chain":()=>"tiene una cadena de variantes inv\xE1lida: a lo sumo un contexto, un print, un group o peer y un estado, en ese orden, y 3 segmentos.","safelist-misplaced-colon":()=>'tiene un ":" mal ubicado: las variantes van antes de la clase (p. ej. "md:hover:gap-4").',"safelist-legacy-prefix":e=>`es inv\xE1lida: en scope no lleva \`ts-\`${e.suggestion!==void 0?`: \`${e.suggestion}\``:""}.`,"safelist-star-not-last":()=>'tiene un "*" que no est\xE1 al final: la familia s\xF3lo admite "*" al final (p. ej. "grid-cols-*").',"safelist-family-empty":e=>`no expande a ninguna clase del DS ni de tus utilities.${mt(e.suggestion)}`,"safelist-component-variant":()=>"es un componente: un componente entra entero y no lleva variante.","safelist-modifier-variant":()=>'es un modificador de una utilidad propia: no lleva variante (se pone la variante en la propia, p. ej. "md:mi-button").',"safelist-unknown":e=>`no existe en el DS ni entre tus utilities.${mt(e.suggestion)}`,"ext-shape":e=>`no tiene la forma esperada: tiene que ser ${e.expected}.`,"ext-name-invalid":e=>`tiene un nombre inv\xE1lido ("${e.name}", ${Qi[e.kind]}): min\xFAsculas y d\xEDgitos separados por guiones, empezando con letra${e.kind==="block"?' y con el prefijo "ts-"':""}.`,"ext-roots-empty":()=>"no tiene ra\xEDces: un componente necesita al menos una para poseer sus bloques.","ext-root-repeated":e=>`repite la ra\xEDz "${e.root}", que ya es ${e.other?`del componente "${e.other}"`:"de las ra\xEDces sueltas del paquete"}.`,"ext-block-not-owned":e=>`tiene el bloque "${e.block}", que no es de ninguna ra\xEDz de este componente (${e.roots.join(", ")||"ninguna"}): tiene que ser ts-<ra\xEDz> o ts-<ra\xEDz>-\u2026.`,"ext-block-repeated":e=>`repite el bloque "${e.block}".`,"ext-conflicts-core":e=>`declara ${Do[e.kind]} "${e.name}", que choca con un nombre del Core. Se elige otro.`,"ext-conflicts-extension":e=>`declara ${Do[e.kind]} "${e.name}", que ya es del paquete "${e.other}": "${e.package}" y "${e.other}" no pueden compartir un nombre. Se elige otro.`,"ext-apply-target":e=>e.reason==="core-component"?`aplica "${e.target}" en "${e.block}", que es un bloque de un componente del Core: @apply s\xF3lo vale hacia utilidades del Core.`:e.reason==="other-component"?`aplica "${e.target}" en "${e.block}", que es un bloque de otro componente o de otro paquete: @apply s\xF3lo vale hacia utilidades del Core o bloques del mismo componente.`:e.reason==="cycle"?`aplica "${e.target}" en "${e.block}" y eso forma un ciclo de @apply.`:`aplica "${e.target}" en "${e.block}", que no es una utilidad del Core.${mt(e.suggestion)}`,"ext-var-not-public":e=>`lee ${e.variable} en "${e.block}", que no es un token del Core ni de las ra\xEDces de este paquete (--ts-<ra\xEDz>-\u2026).${mt(e.suggestion)}`,"ext-modifier-loose":e=>e.motive==="suelto"?`tiene en "${e.block}" un modificador suelto en "${e.selector}": un modificador va en el mismo compuesto que su base (& o .ts-\u2026).`:`tiene en "${e.block}" una clase que no es del vocabulario en "${e.selector}": una extensi\xF3n no suma modificadores, s\xF3lo usa los del Core.`,"ext-color-literal":e=>`escribe en "${e.block}" ${ta[e.kind]} "${e.value}": el CSS no lleva colores literales, s\xF3lo var(--\u2026). Declaralo en los tokens del componente.`,"ext-top-level":e=>`tiene en el nivel superior algo que no es un @utility ("${e.snippet}"): s\xF3lo se admiten bloques @utility.`,"ext-at-rule":e=>`usa ${e.rule} en "${e.block}": s\xF3lo se admiten @media, @supports, @container y @starting-style, y @apply hacia utilidades del Core.`,"ext-media-query":e=>`usa un @media no permitido en "${e.block}" ("${e.query}"): s\xF3lo consultas de preferencia (prefers-*, forced-colors, hover, pointer), nunca el ancho.`,"ext-url":e=>`usa url() en "${e.block}": una extensi\xF3n no carga recursos.`,"ext-escape":e=>`usa una barra invertida (\\) en "${e.block}": no se admiten escapes.`,"manifest-format":e=>`trae un taisho.manifest.json ${e.format===void 0?"sin formato":`de formato ${String(e.format)}`} (versi\xF3n ${e.version}); este Core s\xF3lo entiende el formato 3. Se actualiza el paquete.`,"manifest-shape":e=>`tiene un taisho.manifest.json con una forma inv\xE1lida: ${e.expected}.`,"manifest-json":e=>`tiene un JSON inv\xE1lido en "${e.file}".`,"manifest-path-escapes":e=>`nombra "${e.file}", que sale de la carpeta del paquete: se rechaza todo el paquete.`,"manifest-file-invalid":e=>e.reason==="too-big"?`nombra "${e.file}", que pesa m\xE1s de 1 MiB.`:`nombra "${e.file}", que no es un archivo regular.`,"package-name-mismatch":e=>`se instal\xF3 como un alias: su package.json se llama "${e.name}". Un paquete con estilos tiene que instalarse con su nombre.`,"ext-css-unbalanced":()=>"tiene llaves, par\xE9ntesis o corchetes que no cierran, o una cadena o un comentario sin cerrar.","ext-char-not-allowed":e=>`tiene un car\xE1cter que no se admite (${e.char}): s\xF3lo ASCII imprimible.`,"ext-string-not-allowed":e=>`usa una cadena de texto en "${e.block}": s\xF3lo se admite en content, corta y sin llaves, par\xE9ntesis ni arrobas.`,"ext-function-not-allowed":e=>`usa la funci\xF3n ${e.fn}() en "${e.block}", que no est\xE1 en la lista permitida (var, calc, min, max, clamp, round, mod, color-mix, rgb, hsl, oklch, linear-gradient, translate, scale, rotate, repeat, minmax).`,"ext-selector-not-allowed":e=>`tiene en "${e.block}" un selector que no se admite ("${e.selector}"): ${na[e.motive]}`,"ext-important":e=>`usa !important en "${e.block}": no se admite. Se sube la especificidad (p. ej. con && en el selector).`,"ext-custom-property":e=>`declara la propiedad personalizada ${e.property} en "${e.block}": el CSS s\xF3lo lee var(--\u2026). Se declara el valor en los tokens del componente.`,"ext-syntax":e=>`tiene en "${e.block}" algo que no se entiende ("${e.snippet}"): una declaraci\xF3n es propiedad: valor; con la propiedad en min\xFAsculas y un valor de la lista permitida.`,"ext-at-params":e=>`usa ${e.rule} en "${e.block}" con par\xE1metros que no se admiten ("${e.params}"): consultas simples y con unidades relativas.`,"ext-roots-overlap":e=>`declara la ra\xEDz "${e.root}", que se pisa con la ra\xEDz "${e.other}" del paquete "${e.otherPackage}": una no puede ser prefijo de la otra ("${e.package}" y "${e.otherPackage}"). Se elige otra.`,"ext-utility-no-root":e=>`tiene la utilidad "${e.block}", que no es de ninguna ra\xEDz de los componentes ni de las ra\xEDces sueltas de este paquete: tiene que ser ts-<ra\xEDz> o ts-<ra\xEDz>-\u2026.`,"ext-variable-repeated":e=>`repite la variable "${e.variable}": dos claves de tokens dan el mismo nombre.`,"ext-apply-budget":e=>`pasa el presupuesto de @apply en "${e.block}": ${oa[e.limit]} (m\xE1ximo ${e.max}).`,"ext-limit":e=>`pasa el l\xEDmite de ${ia[e.what]}: m\xE1ximo ${e.max}.`,"theme-component-unknown":e=>`no es un componente de ninguna extensi\xF3n instalada ("${e.slug}").${mt(e.suggestion)}`,"theme-component-token-unknown":e=>`no es un token que declare "${e.slug}" ("${e.key}").${mt(e.suggestion)}`},pa={"empty-value":()=>"is empty. Give it a value.","value-not-string":e=>`must be a string (${JSON.stringify(e.value)} isn't), e.g., "10px".`,"unsafe-value":e=>`has an invalid value (${JSON.stringify(e.value)}). It can't contain ; { } \\ /* */ or line breaks.`,"scope-invalid":e=>`has an invalid value (${JSON.stringify(e.value)}). The only value is 'ts', and it's already the only mode. Remove the key.`,"dark-mode-invalid":e=>`has an invalid value (${JSON.stringify(e.value)}). Use 'class' or 'media'.`,"out-invalid":e=>`must be a folder path, as a non-empty string (${JSON.stringify(e.value)} isn't), e.g., out: './taisho'.`,"icons-html-dirs-removed":()=>"no longer exists. Declare `content` instead.","brand-required":()=>"is required. That seed drives the brand palette (links, accents and, unless you set `primary`, the primary buttons). Give it a hex, e.g., colors: { brand: '#4F46E5' }.","font-italic-missing":e=>`asks for italic, but ${e.source} has no ${e.subset}-${e.weight}-italic.css. Remove "italic" from styles, drop that weight or pick a font that ships an italic.`,"font-styles-invalid":e=>`has an invalid value (${JSON.stringify(e.value)}): it must be a list with 'normal' and/or 'italic', e.g., styles: ['normal', 'italic'].`,"primary-invalid":()=>"has an invalid value. It must be a color (hex or oklch), e.g., primary: 'oklch(0.15 0 0)'. If you don't want a separate primary, remove the key: primary buttons use the brand.","primary-in-colors":()=>"`primary` isn't a palette color: it goes in `themes.<theme>.primary`, next to `colors`, not inside it.","screen-exists":e=>`already exists in the DS. A built-in screen's breakpoint (the @media) is fixed; themes.<theme>.screens.${e.name} only changes the --ts-screen-${e.name} token and ts-max-w-screen-${e.name}.`,"screen-name-invalid":()=>"isn't a valid name. Use xs (or 2xs\u20269xs) or 2xl\u20269xl.","screen-value-invalid":e=>`has an invalid value ("${e.value}"). It must be a width in px, e.g., "1536px".`,"screen-repeated":e=>`repeats the ${e.value} width of screens.${e.other}.`,"screen-below-min":e=>`has a width that doesn't match its name. ${e.name} must be narrower than the smallest built-in screen (${e.px}px).`,"screen-above-max":e=>`has a width that doesn't match its name. ${e.name} must be wider than the largest built-in screen (${e.px}px).`,"screen-order":e=>`has a width that doesn't match its name. ${e.name} (${e.value}) must be ${e.greater?"wider":"narrower"} than ${e.other} (${e.otherValue}).`,"scale-exists":e=>`already exists in the DS. To change its value, use themes.<theme>.${e.themePath}.${e.name}.`,"scale-name-invalid":()=>`isn't a valid name. Use lowercase letters and digits separated by hyphens (e.g., "card" or "hero-lg").`,"extend-key-unknown":e=>`isn't an extend key.${ft(e.suggestion)}`,"extend-key-excluded":e=>`can't be extended: a new name would be a variable with no class using it. To change the value of an existing one use themes.<theme>.${e.key}.<name>.`,"extend-shape-invalid":e=>`has an invalid shape (${JSON.stringify(e.value)}). It must be ${e.expected==="list"?"a list, e.g., [30, 100]":'an object of names, e.g., { name: "value" }'}.`,"theme-key-unknown":e=>`isn't a theme key.${e.extendPath?` To add names to that scale use ${e.extendPath}; a theme only changes values.`:""}${ft(e.suggestion)}`,"theme-name-unknown":e=>`isn't a name in the ${e.scale} scale. A theme only changes the value of an existing name.${e.extendPath?` To add it use ${e.extendPath}.${e.name}.`:" That scale can't be extended."}`,"corner-shape-invalid":e=>`has an invalid value (${JSON.stringify(e.value)}). It must be 'round' or 'squircle'.`,"value-type-invalid":e=>`has an invalid value (${JSON.stringify(e.value)}). ${ca[e.kind]}`,"sizing-exists":e=>e.repeated?`repeats level ${e.level} of the list.`:"already exists in the DS. The sizing is fixed: you only add new levels (a theme can't change its value).","font-size-needs-line-height":e=>`needs a line height with the same name. Add extend.lineHeights.${e.name}.`,"scale-name-numeric":e=>`isn't a valid name. In this scale the name is a whole number (${e.range}), e.g., "36".`,"space-neg-prefix":()=>`can't start with "neg-". Negative margin names use that prefix (ts-mt-neg-1).`,"space-negative-suffix":()=>`can't end in "-negative". The engine generates that suffix for negative margins.`,"class-exists":e=>`generates the class ${e.class}, which already exists in the DS. Pick another name.`,"class-duplicated":e=>`generates the class ${e.class}, which ${e.other} also generates. Pick another name.`,"class-renamed-exists":e=>`generates the class ${e.class}, whose new name ${e.renamed} already exists in the DS. Pick another name.`,"utility-empty":()=>"has an empty class list.","utility-not-a-class":e=>`composes ${JSON.stringify(e.value)}, which isn't a class name.`,"utility-composes-modifier":e=>`composes "${e.class}", but a modifier isn't a utility. Compose "${e.utility}" and put "${e.modifiers.join(" ")}" in the markup.`,"utility-unknown-prefix":e=>`composes "${e.class}", but the prefix "${e.prefix}" doesn't exist.${ft(e.suggestion)}`,"utility-data-ts-variant":e=>`composes "${e.class}", but \`data-ts-*\` is the hook for components, not a variant. Your own \`data-<name>:\` variants are fine.`,"utility-out-of-order":e=>`composes "${e.class}", but the chain is out of order.${ft(e.suggestion)}`,"utility-invalid-chain":e=>`composes "${e.class}", but the chain isn't valid. A chain allows ${Zn}.`,"utility-variant-on-component":e=>`composes "${e.class}", but variants apply only to utilities, and "${e.base}" belongs to a component or is a modifier. Its states are \`is-*\`, \`aria\`, and its internal ones.`,"utility-unknown-class":e=>`composes "${e.class}", which isn't in the DS (names don't take "ts-", and old names don't exist) or in your utilities.${ft(e.suggestion)}`,"utility-invalid-composition":e=>`composes "${e.class}". "${e.utility}" includes "${e.inner}", and with "${e.use}" it becomes "${e.result}", which isn't a valid chain. A chain allows ${Zn}.`,"utility-composes-component":e=>`composes "${e.class}", but variants apply only to utilities, and "${e.utility}" includes "${e.component}", which belongs to a component or is a modifier.`,"utility-cycle":e=>`has a cycle between your utilities: ${e.cycle.join(" \u2192 ")}.`,"modifier-invalid":e=>`has an invalid modifier ("${e.modifier}"). Use lowercase letters and digits separated by hyphens, starting with a letter (e.g., "destructive").`,"modifier-reserved-prefix":e=>`has an invalid modifier ("${e.modifier}"). It can't start with "${e.prefix}" (a prefix reserved for the DS).`,"modifier-theme-class":e=>`has an invalid modifier ("${e.modifier}"). It's the scope class or a theme class.`,"modifier-short-name":e=>`has a modifier ("${e.modifier}") that conflicts with a short DS name, so it would apply that style to any element that has it. Pick another name (e.g., "${e.modifier}-<property>", like Core's variants).`,"modifier-is-utility":e=>`has a modifier ("${e.modifier}") that's the name of another of your utilities, so it would trigger that utility.`,"component-missing":e=>`uses the component "${e.component}", which isn't in utilities. Declare it first, without modifiers.`,"modifier-repeated":()=>"repeats a modifier.","combination-repeated":e=>`repeats the combination in utilities.${e.other}. The order of the modifiers doesn't matter.`,"utility-name-invalid":()=>`isn't a valid name. Use lowercase letters and digits separated by hyphens, starting with a letter (e.g., "card-hero").`,"utility-reserved-prefix":e=>`isn't a valid name. It can't start with "${e.prefix}" (a prefix reserved for the DS).`,"utility-name-is-modifier":()=>"isn't a valid name. It's a component modifier or the theme class (variant-*, size-*, is-*, dark\u2026), and it would override every component.","utility-conflicts-ds":()=>"conflicts with a DS utility. Pick another name.","utility-name-ts":()=>`isn't a valid name. "ts" is the scope class.`,"utility-short-name":()=>"conflicts with a short DS name in scope mode. Pick another name.","safelist-not-list":()=>"must be a list of strings.","safelist-entry-empty":()=>"must be a non-empty string.","safelist-unknown-prefix":e=>`has the prefix "${e.prefix}", which doesn't exist.${ft(e.suggestion)}`,"safelist-data-ts":e=>`has the prefix "${e.prefix}", but \`data-ts-*\` is the hook for components, not a variant.`,"safelist-out-of-order":e=>`has its variants out of order.${ft(e.suggestion)}`,"safelist-invalid-chain":()=>`has an invalid variant chain. A chain allows ${Zn}.`,"safelist-misplaced-colon":()=>'has a misplaced ":". Variants go before the class (e.g., "md:hover:gap-4").',"safelist-legacy-prefix":e=>`isn't valid. In scope mode, classes don't take \`ts-\`${e.suggestion!==void 0?` (write \`${e.suggestion}\`)`:""}.`,"safelist-star-not-last":()=>`has a "*" that isn't at the end. A family only allows "*" at the end (e.g., "grid-cols-*").`,"safelist-family-empty":e=>`doesn't expand to any class in the DS or in your utilities.${ft(e.suggestion)}`,"safelist-component-variant":()=>"is a component. A component comes in whole and can't take a variant.","safelist-modifier-variant":()=>`is a modifier of one of your utilities, so it can't take a variant. Put the variant on the utility itself (e.g., "md:mi-button").`,"safelist-unknown":e=>`isn't in the DS or in your utilities.${ft(e.suggestion)}`,"ext-shape":e=>`doesn't have the expected shape. It must be ${e.expected}.`,"ext-name-invalid":e=>`has an invalid name ("${e.name}", ${Kn[e.kind]}). Use lowercase letters and digits separated by hyphens, starting with a letter${e.kind==="block"?' and with the "ts-" prefix':""}.`,"ext-roots-empty":()=>"has no roots. A component needs at least one to own its blocks.","ext-root-repeated":e=>`repeats the root "${e.root}", which already belongs to ${e.other?`the component "${e.other}"`:"the package's loose roots"}.`,"ext-block-not-owned":e=>`has the block "${e.block}", which doesn't belong to any root of this component (${e.roots.join(", ")||"none"}). It must be ts-<root> or ts-<root>-\u2026.`,"ext-block-repeated":e=>`repeats the block "${e.block}".`,"ext-conflicts-core":e=>`declares the ${Kn[e.kind]} "${e.name}", which conflicts with a Core name. Pick another.`,"ext-conflicts-extension":e=>`declares the ${Kn[e.kind]} "${e.name}", which already belongs to the package "${e.other}". "${e.package}" and "${e.other}" can't share a name. Pick another.`,"ext-apply-target":e=>e.reason==="core-component"?`applies "${e.target}" in "${e.block}", which is a block of a Core component. @apply only works toward Core utilities.`:e.reason==="other-component"?`applies "${e.target}" in "${e.block}", which is a block of another component or another package. @apply only works toward Core utilities or blocks of the same component.`:e.reason==="cycle"?`applies "${e.target}" in "${e.block}" and that forms an @apply cycle.`:`applies "${e.target}" in "${e.block}", which isn't a Core utility.${ft(e.suggestion)}`,"ext-var-not-public":e=>`reads ${e.variable} in "${e.block}", which is neither a Core token nor one of this package's roots (--ts-<root>-\u2026).${ft(e.suggestion)}`,"ext-modifier-loose":e=>e.motive==="suelto"?`has a loose modifier in "${e.block}" at "${e.selector}". A modifier goes in the same compound as its base (& or .ts-\u2026).`:`has a class in "${e.block}" at "${e.selector}" that isn't in the vocabulary. An extension can't add modifiers; it only uses Core's.`,"ext-color-literal":e=>`writes ${ea[e.kind]} "${e.value}" in "${e.block}". CSS doesn't carry literal colors, only var(--\u2026). Declare it in the component's tokens.`,"ext-top-level":e=>`has something at the top level that isn't a @utility ("${e.snippet}"). Only @utility blocks are allowed.`,"ext-at-rule":e=>`uses ${e.rule} in "${e.block}". Only @media, @supports, @container and @starting-style are allowed, plus @apply toward Core utilities.`,"ext-media-query":e=>`uses a @media that isn't allowed in "${e.block}" ("${e.query}"). Only preference queries (prefers-*, forced-colors, hover, pointer), never the width.`,"ext-url":e=>`uses url() in "${e.block}". An extension doesn't load resources.`,"ext-escape":e=>`uses a backslash (\\) in "${e.block}". Escapes aren't allowed.`,"manifest-format":e=>`ships a taisho.manifest.json ${e.format===void 0?"with no format":`in format ${String(e.format)}`} (version ${e.version}), and this Core only reads format 3. Update the package.`,"manifest-shape":e=>`has a taisho.manifest.json with an invalid shape: ${e.expected}.`,"manifest-json":e=>`has invalid JSON in "${e.file}".`,"manifest-path-escapes":e=>`names "${e.file}", which leaves the package folder. The whole package is rejected.`,"manifest-file-invalid":e=>e.reason==="too-big"?`names "${e.file}", which is larger than 1 MiB.`:`names "${e.file}", which isn't a regular file.`,"package-name-mismatch":e=>`was installed as an alias: its package.json is named "${e.name}". A package with styles must be installed under its own name.`,"ext-css-unbalanced":()=>"has braces, parentheses or brackets that don't close, or an unclosed string or comment.","ext-char-not-allowed":e=>`has a character that isn't allowed (${e.char}). Only printable ASCII.`,"ext-string-not-allowed":e=>`uses a text string in "${e.block}". Only allowed in content, short and without braces, parentheses or at-signs.`,"ext-function-not-allowed":e=>`uses the function ${e.fn}() in "${e.block}", which isn't in the allowed list (var, calc, min, max, clamp, round, mod, color-mix, rgb, hsl, oklch, linear-gradient, translate, scale, rotate, repeat, minmax).`,"ext-selector-not-allowed":e=>`has a selector that isn't allowed in "${e.block}" ("${e.selector}"). ${sa[e.motive]}`,"ext-important":e=>`uses !important in "${e.block}", which isn't allowed. Raise the specificity instead (e.g. with && in the selector).`,"ext-custom-property":e=>`declares the custom property ${e.property} in "${e.block}". CSS only reads var(--\u2026). Declare the value in the component's tokens.`,"ext-syntax":e=>`has something in "${e.block}" that can't be read ("${e.snippet}"). A declaration is property: value; with a lowercase property and a value from the allowed list.`,"ext-at-params":e=>`uses ${e.rule} in "${e.block}" with parameters that aren't allowed ("${e.params}"). Simple queries with relative units.`,"ext-roots-overlap":e=>`declares the root "${e.root}", which overlaps the root "${e.other}" of the package "${e.otherPackage}". One can't be a prefix of the other ("${e.package}" and "${e.otherPackage}"). Pick another.`,"ext-utility-no-root":e=>`has the utility "${e.block}", which doesn't belong to any root of this package's components or of its loose roots. It must be ts-<root> or ts-<root>-\u2026.`,"ext-variable-repeated":e=>`repeats the variable "${e.variable}". Two token keys produce the same name.`,"ext-apply-budget":e=>`exceeds the @apply budget in "${e.block}": ${ra[e.limit]} (maximum ${e.max}).`,"ext-limit":e=>`exceeds the limit of ${aa[e.what]}: maximum ${e.max}.`,"theme-component-unknown":e=>`isn't a component of any installed extension ("${e.slug}").${ft(e.suggestion)}`,"theme-component-token-unknown":e=>`isn't a token that "${e.slug}" declares ("${e.key}").${ft(e.suggestion)}`},ua={es:da,en:pa};function Xn(e,n){return`taisho config: ${e.path} ${ua[n][e.code](e.params)}`}var St=class extends Error{errors;constructor(n){super(n.map(o=>Xn(o,"es")).join(`
104
104
  `)),this.errors=n}};var Ao={componentes:{accordion:{gancho:"data-ts-accordion",bloques:["accordion","accordion-item"],runtime:[]},"alert-dialog":{gancho:null,bloques:[],runtime:[]},"aspect-ratio":{gancho:null,bloques:["aspect-ratio"],runtime:[]},avatar:{gancho:"data-ts-avatar",bloques:["avatar","avatar-group"],runtime:[]},badge:{gancho:null,bloques:["badge"],runtime:[]},banner:{gancho:null,bloques:["banner"],runtime:[]},breadcrumbs:{gancho:null,bloques:["breadcrumbs","breadcrumbs-list","breadcrumbs-item","breadcrumbs-separator","breadcrumbs-link"],runtime:[]},button:{gancho:null,bloques:["button","button-group"],runtime:[]},card:{gancho:null,bloques:["card-radius","card-inset-radius","card","card-media"],runtime:[]},checkbox:{gancho:null,bloques:["checkbox","checkbox-wrapper","checkbox-group","checkbox-group-label","checkbox-group-all","checkbox-group-items"],runtime:[]},code:{gancho:null,bloques:["code-block","code-header","code-content"],runtime:[]},collapsible:{gancho:null,bloques:["collapsible","collapsible-trigger","collapsible-content"],runtime:[]},combobox:{gancho:"data-ts-combobox",bloques:["combobox","combobox-label","combobox-control","combobox-input","combobox-values","combobox-dropdown","combobox-option","combobox-group-label","combobox-loading","combobox-empty"],runtime:[]},"command-palette":{gancho:"data-ts-command-palette",bloques:["command-overlay","command","command-input-wrapper","command-list","command-group-label","command-item","command-mark","command-empty","command-footer"],runtime:[]},container:{gancho:null,bloques:[],runtime:[]},"context-menu":{gancho:"data-ts-context-menu",bloques:["context-menu"],runtime:[]},"date-picker":{gancho:"data-ts-date-picker",bloques:["datepicker","datepicker-trigger","datepicker-value","datepicker-prefix-block","datepicker-field","datepicker-input","datepicker-range","datepicker-separator","datepicker-toggle","datepicker-panel","datepicker-presets","datepicker-preset","calendar","calendar-caption","calendar-caption-select","calendar-time","calendar-months","calendar-month","calendar-month-title","calendar-header","calendar-heading","calendar-nav","calendar-grid","calendar-dow-row","calendar-dow","calendar-week","calendar-day-empty","calendar-week-number","calendar-day"],runtime:["calendar-day","calendar-day-empty","calendar-day-mark","calendar-dow","calendar-dow-row","calendar-grid","calendar-month","calendar-month-title","calendar-week","calendar-week-number"]},drawer:{gancho:null,bloques:["drawer-dialog","drawer"],runtime:[]},"empty-state":{gancho:null,bloques:["empty-state"],runtime:[]},field:{gancho:null,bloques:[],runtime:[]},"file-upload":{gancho:"data-ts-file-upload",bloques:["file-upload","file-upload-zone","file-upload-icon","file-upload-title","file-upload-hint","file-upload-list","file-upload-item"],runtime:[]},grid:{gancho:null,bloques:["grid-container"],runtime:[]},icon:{gancho:null,bloques:["icon"],runtime:[]},"inline-code":{gancho:null,bloques:["inline-code"],runtime:[]},input:{gancho:"data-ts-input",bloques:["input","input-wrapper","input-label","input-hint","input-footer","input-count"],runtime:["input-footer","input-hint"]},kbd:{gancho:null,bloques:["kbd"],runtime:[]},link:{gancho:null,bloques:["link"],runtime:[]},"loading-dots":{gancho:null,bloques:["loading-dots"],runtime:[]},menu:{gancho:"data-ts-menu",bloques:["menu-root","menu","menu-item","menu-separator","menu-label"],runtime:[]},modal:{gancho:null,bloques:["modal-dialog","modal","modal-header","modal-title","modal-body","modal-footer"],runtime:[]},"nav-bar":{gancho:null,bloques:["nav-bar-root","nav-bar-bp-sm","nav-bar-bp-md","nav-bar-bp-lg","nav-bar","nav-bar-brand","nav-bar-items","nav-bar-actions","nav-bar-item","nav-bar-toggle","nav-bar-search","nav-bar-menu"],runtime:[]},note:{gancho:null,bloques:["note"],runtime:[]},"number-input":{gancho:null,bloques:["number-input","number-input-field"],runtime:[]},pager:{gancho:null,bloques:["pager","pager-link","pager-spacer","pager-icon","pager-text","pager-dir","pager-title"],runtime:[]},pagination:{gancho:"data-ts-pagination",bloques:["pagination","pagination-btn","pagination-ellipsis","pagination-info","pagination-page-size"],runtime:[]},popover:{gancho:null,bloques:["popover-root","popover"],runtime:[]},progress:{gancho:null,bloques:["progress"],runtime:[]},radio:{gancho:null,bloques:["radio"],runtime:[]},"scroll-area":{gancho:null,bloques:["scroll-area"],runtime:[]},"segmented-control":{gancho:null,bloques:["segmented-control"],runtime:[]},select:{gancho:null,bloques:["select","select-wrapper","select-label","select-dropdown","select-option","select-search","select-group-label","select-loading","select-empty"],runtime:[]},separator:{gancho:null,bloques:["separator","separator-wrapper","separator-line","separator-label"],runtime:[]},sidebar:{gancho:"data-ts-sidebar",bloques:["sidebar","sidebar-header","sidebar-content","sidebar-group","sidebar-group-label","sidebar-item","sidebar-footer","sidebar-rail"],runtime:[]},skeleton:{gancho:null,bloques:["skeleton"],runtime:[]},slider:{gancho:"data-ts-slider",bloques:["slider","slider-header","slider-label","slider-value","slider-track","slider-range","slider-ticks","slider-marks"],runtime:[]},spinner:{gancho:null,bloques:["spinner"],runtime:[]},stack:{gancho:null,bloques:[],runtime:[]},table:{gancho:"data-ts-table",bloques:["table-wrapper","table","table-header","table-th","table-th-content","table-body","table-row","table-td","table-empty","table-spacer"],runtime:[]},tabs:{gancho:"data-ts-tabs",bloques:["tabs"],runtime:[]},tag:{gancho:null,bloques:["tag"],runtime:[]},textarea:{gancho:"data-ts-textarea",bloques:["textarea","textarea-field"],runtime:[]},toast:{gancho:"data-ts-toast",bloques:["toaster","toast"],runtime:["toast","toaster"]},toc:{gancho:null,bloques:["toc","toc-title","toc-list","toc-link"],runtime:[]},toggle:{gancho:"data-ts-toggle",bloques:["toggle"],runtime:[]},tooltip:{gancho:"data-ts-tooltip",bloques:["tooltip-root","tooltip"],runtime:[]},"visually-hidden":{gancho:null,bloques:[],runtime:[]}},sueltos:["required-proxy"]};var Ae=Ao;function qe(e){return Object.entries(e).sort(([n],[o])=>n<o?-1:n>o?1:0)}function qo(e,n){let o=Ce(e,n),r=ln(o);if(r.length)throw new St(r);return o}function pn(e={}){let n=qe(e);if(n.length===0)return Ae;let o=Object.assign(Object.create(null),Ae.componentes);for(let[r,a]of n){let i=qo(a,r);for(let[l,s]of Object.entries(a.components??{})){let c=[...new Set(i.filter(d=>d.slug===l).flatMap(d=>d.parse.bloques.map(p=>p.name.slice(3))))];o[l]={gancho:null,bloques:c,runtime:s.roots.filter(d=>c.includes(d))}}}return{componentes:o,sueltos:Ae.sueltos}}function pe(e={}){let n="",o="";for(let[r,a]of qe(e))for(let i of qo(a,r)){let l=i.parse.bloques.map(s=>s.css).join("");i.slug===void 0?o+=l?`
105
105
  ${l}`:"":n+=`
106
106
  ${l}`}return{components:n,utilities:o}}function Mo(e={}){let n=[];for(let[,o]of qe(e))for(let[r,a]of Object.entries(o.components??{}))a.tokens&&Object.keys(a.tokens).length&&a.roots[0]!==void 0&&n.push({slug:r,prefijo:a.roots[0],tokens:Object.assign(Object.create(null),a.tokens)});return n}var ma="@supports not (color: light-dark(#000, #fff))",ue="light-dark(";function un(e,n){for(let o=e.indexOf(ue);o>=0;o=e.indexOf(ue)){let r=o+ue.length,a=1,i=-1,l=r;for(;a>0;l++)e[l]==="("?a++:e[l]===")"?a--:e[l]===","&&a===1&&i<0&&(i=l);e=e.slice(0,o)+(n===0?e.slice(r,i):e.slice(i+1,l-1)).trim()+e.slice(l)}return e}function fa(e){let n=[];for(let o of e.split(";")){let r=o.indexOf(":");r>0&&o.slice(0,r).trim().startsWith("--")&&n.push([o.slice(0,r).trim(),o.slice(r+1).trim()])}return n}function ha(e){let n=e.filter(([r])=>!r.startsWith("--ts-material-")),o=new Set(n.filter(([,r])=>r.includes(ue)||r.includes("var(--color-")).map(([r])=>r));for(let r=-1;r!==o.size;){r=o.size;for(let[a,i]of n)[...i.matchAll(/var\(\s*(--[\w-]+)/g)].some(l=>o.has(l[1]))&&o.add(a)}return n.filter(([r])=>o.has(r))}function ba(e,n,o){let r=(a,i,l=o)=>`${l}${a} {
@@ -3235,7 +3235,7 @@ ${z}}
3235
3235
  `,n+=`@utility ts-material-modal ${l("xl","lg")}
3236
3236
  `,n+=`@utility ts-material-fullscreen ${l("2xl","xl")}
3237
3237
  `,n}var it={t:"espaciado"},Pt={t:"espaciado",neg:!0,auto:!0},Ve={t:"px"},Jt={t:"color",ancho:!0,anchoSolo:!0,extra:["none","transparent","0"]},It=e=>({regla:"fisico",sucesor:e}),Bd={m:{prop:"margin",valor:Pt},mx:{prop:"margin-inline",valor:Pt},my:{prop:"margin-top + margin-bottom",valor:Pt},mt:{prop:"margin-top",valor:Pt},mb:{prop:"margin-bottom",valor:Pt},ms:{prop:"margin-inline-start",valor:Pt},me:{prop:"margin-inline-end",valor:Pt},ml:{prop:"margin-left",valor:Pt,legado:It("ms")},mr:{prop:"margin-right",valor:Pt,legado:It("me")},p:{prop:"padding",valor:it},px:{prop:"padding-inline",valor:it},py:{prop:"padding-top + padding-bottom",valor:it},pt:{prop:"padding-top",valor:it},pb:{prop:"padding-bottom",valor:it},ps:{prop:"padding-inline-start",valor:it},pe:{prop:"padding-inline-end",valor:it},pl:{prop:"padding-left",valor:it,legado:It("ps")},pr:{prop:"padding-right",valor:it,legado:It("pe")},gap:{prop:"gap",valor:it},"gap-x":{prop:"column-gap",valor:it},"gap-y":{prop:"row-gap",valor:it},inset:{prop:"inset",valor:Ve},"inset-x":{prop:"inset-inline",valor:it},"inset-y":{prop:"top + bottom",valor:it},top:{prop:"top",valor:it},bottom:{prop:"bottom",valor:it},start:{prop:"inset-inline-start",valor:it},end:{prop:"inset-inline-end",valor:it},left:{prop:"left",valor:it,legado:It("start")},right:{prop:"right",valor:it,legado:It("end")},w:{prop:"width",valor:{t:"px",extra:["full","auto","screen","fit"],patron:/^\d+\/\d+$/}},h:{prop:"height",valor:{t:"px",extra:["full","auto","screen","fit"]}},size:{prop:"width + height",valor:Ve},"min-w":{prop:"min-width",valor:{t:"px",extra:["full"]}},"min-h":{prop:"min-height",valor:{t:"px",extra:["full","screen"]}},"max-w":{prop:"max-width",valor:{t:"px",extra:["full"],patron:/^(modal|screen)-(sm|md|lg|xl|2xl)$/}},"max-h":{prop:"max-height",valor:{t:"px",extra:["full"]}},"translate-x":{prop:"transform: translateX",valor:Ve},"translate-y":{prop:"transform: translateY",valor:Ve},text:{prop:"font-size",valor:{t:"escala",de:"fontSizes"}},align:{prop:"text-align",valor:{t:"palabras",lista:["start","center","end"]}},wrap:{prop:"text-wrap",valor:{t:"palabras",lista:["balance","pretty","nowrap"]}},type:{prop:"font + line-height + letter-spacing (compuesto)",valor:{t:"palabras",lista:[],patron:/^(heading|copy|label|button)-\d+(-(mono|strong))?$/}},leading:{prop:"line-height",valor:{t:"escala",de:"lineHeights",extra:["none","tight"]}},tracking:{prop:"letter-spacing",valor:{t:"escala",de:"letterSpacing"}},weight:{prop:"font-weight",valor:{t:"escala",de:"fontWeights"}},font:{prop:"font-family",valor:{t:"palabras",lista:["sans","mono","display","inherit"]}},whitespace:{prop:"white-space",valor:{t:"palabras",lista:["normal","nowrap","pre","pre-line","pre-wrap"]}},break:{prop:"overflow-wrap / word-break",valor:{t:"palabras",lista:["words","all","normal"]}},"line-clamp":{prop:"line-clamp",valor:{t:"conteo",extra:["none"]}},valign:{prop:"vertical-align",valor:{t:"palabras",lista:["baseline","top","middle","bottom"]}},color:{prop:"color",valor:{t:"color",extra:[]}},bg:{prop:"background-color",valor:{t:"color",extra:["transparent","glow-brand","glow-accent","highlight","highlight-strong"]}},accent:{prop:"accent-color",valor:{t:"palabras",lista:["brand","accent","auto"]}},border:{prop:"border",valor:{t:"color",ancho:!0,anchoSolo:!0,extra:["none","transparent","separator"]}},"border-t":{prop:"border-top",valor:Jt},"border-b":{prop:"border-bottom",valor:Jt},"border-s":{prop:"border-inline-start",valor:Jt},"border-e":{prop:"border-inline-end",valor:Jt},"border-r":{prop:"border-right",valor:Jt,legado:It("border-e")},"border-l":{prop:"border-left",valor:Jt,legado:It("border-s")},outline:{prop:"outline",valor:{t:"color",ancho:!0,extra:["none","transparent"]}},"outline-offset":{prop:"outline-offset",valor:Ve},"outline-focus":{prop:"outline",valor:Jt,legado:{regla:"alias",sucesor:"outline"}},ring:{prop:"box-shadow",valor:{t:"color",anchoSolo:!0}},"ring-shadow":{prop:"box-shadow",valor:{t:"ring-shadow"}},"focus-ring":{prop:"color del foco",valor:{t:"familia",extra:["primary"]}},divide:{prop:"border-width (hijos)",valor:{t:"palabras",lista:["x","y"]}},radius:{prop:"border-radius",valor:{t:"escala",de:"radius"}},...Object.fromEntries(["ss","se","es","ee","s","e"].map(e=>[`radius-${e}`,{prop:"border-radius (esquina l\xF3gica)",valor:{t:"palabras",lista:["inherit"]}}])),...Object.fromEntries(Object.entries({tl:"ss",tr:"se",bl:"es",br:"ee",l:"s",r:"e"}).map(([e,n])=>[`radius-${e}`,{prop:"border-radius (esquina f\xEDsica)",valor:{t:"palabras",lista:["inherit"]},legado:It(`radius-${n}`)}])),shadow:{prop:"box-shadow",valor:{t:"escala",de:"shadows",extra:["none"]}},blur:{prop:"filter: blur",valor:{t:"escala",de:"blurs"}},"backdrop-blur":{prop:"backdrop-filter: blur",valor:{t:"escala",de:"blurs"}},opacity:{prop:"opacity",valor:{t:"escala",de:"opacities"}},z:{prop:"z-index",valor:{t:"conteo",extra:["auto"]}},material:{prop:"material (compuesto)",valor:{t:"palabras",lista:["base","small","medium","large","tooltip","menu","modal","fullscreen"]}},surface:{prop:"material de superficie",valor:{t:"escala",de:"radius"}},floating:{prop:"material flotante",valor:{t:"escala",de:"radius"}},flex:{prop:"flex",valor:{t:"palabras",lista:["row","col","row-reverse","col-reverse","wrap","nowrap","grow","shrink","none"],patron:/^((grow|shrink)-)?\d+$/}},items:{prop:"align-items",valor:{t:"palabras",lista:["start","center","end","baseline","stretch"]}},justify:{prop:"justify-content",valor:{t:"palabras",lista:["start","center","end","between","around","evenly","stretch"]}},"justify-self":{prop:"justify-self",valor:{t:"palabras",lista:["auto","start","center","end","stretch"]}},self:{prop:"align-self",valor:{t:"palabras",lista:["auto","start","center","end","baseline","stretch"]}},"place-content":{prop:"place-content",valor:{t:"palabras",lista:["start","center","end","between","around","evenly","stretch"]}},"place-items":{prop:"place-items",valor:{t:"palabras",lista:["start","center","end","stretch"]}},"place-self":{prop:"place-self",valor:{t:"palabras",lista:["auto","start","center","end","stretch"]}},order:{prop:"order",valor:{t:"conteo",extra:["first","last","none"]}},"grid-cols":{prop:"grid-template-columns",valor:{t:"conteo"}},"grid-rows":{prop:"grid-template-rows",valor:{t:"conteo"}},"grid-flow":{prop:"grid-auto-flow",valor:{t:"palabras",lista:["row","col","dense"]}},"grid-min":{prop:"--ts-grid-min",valor:{t:"escala",de:"gridMins"}},"col-span":{prop:"grid-column",valor:{t:"conteo",extra:["full"]}},"row-span":{prop:"grid-row",valor:{t:"conteo",extra:["full"]}},columns:{prop:"columns",valor:{t:"conteo"}},aspect:{prop:"aspect-ratio",valor:{t:"palabras",lista:["square","video","auto"]}},overflow:{prop:"overflow",valor:{t:"palabras",lista:["auto","hidden","scroll","visible"]}},"overflow-x":{prop:"overflow-x",valor:{t:"palabras",lista:["auto","hidden"]}},"overflow-y":{prop:"overflow-y",valor:{t:"palabras",lista:["auto","hidden"]}},object:{prop:"object-fit",valor:{t:"palabras",lista:["cover","contain"]}},cursor:{prop:"cursor",valor:{t:"palabras",lista:["pointer","not-allowed","default","wait","grab","grabbing","col-resize","row-resize","ew-resize","ns-resize","nwse-resize","nesw-resize","cell"]}},select:{prop:"user-select",valor:{t:"palabras",lista:["none","text","all","auto"]}},"pointer-events":{prop:"pointer-events",valor:{t:"palabras",lista:["none","auto"]}},snap:{prop:"scroll-snap-*",valor:{t:"palabras",lista:["x","y","both","none","start","center","end","align-none"]}},appearance:{prop:"appearance",valor:{t:"palabras",lista:["none"]}},scheme:{prop:"color-scheme + color",valor:{t:"palabras",lista:["dark","light"]}},isolation:{prop:"isolation",valor:{t:"palabras",lista:["auto"]}},list:{prop:"list-style",valor:{t:"palabras",lista:["none","disc"]}},box:{prop:"box-sizing",valor:{t:"palabras",lista:["border"]}},"will-change":{prop:"will-change",valor:{t:"palabras",lista:["auto","transform","scroll"]}},duration:{prop:"transition-duration",valor:{t:"escala",de:"durations"}},ease:{prop:"transition-timing-function",valor:{t:"escala",de:"easings"}},transition:{prop:"transition",valor:{t:"palabras",lista:["all","colors","input","none","opacity","option","shadow","transform","width"]}},animate:{prop:"animation",valor:{t:"palabras",lista:["spin"]}},scale:{prop:"transform: scale",valor:{t:"conteo",extra:["var"]}},origin:{prop:"transform-origin",valor:{t:"palabras",lista:["top-left"]}},rotate:{prop:"transform: rotate",valor:{t:"conteo"}}};var We=["icon","button","badge","calendar","card","checkbox","combobox","command","datepicker","drawer","empty","input","menu","modal","nav","note","number","pager","pagination","radio","segmented","select","sidebar","slider","table","tabs","textarea","toc","toggle","tooltip","popover","toaster","toast","spinner","avatar","accordion","progress","skeleton","kbd","tag","banner","link","collapsible","context","breadcrumbs","separator","code","inline-code","loading-dots","file-upload","scroll-area","aspect-ratio","grid-container","required-proxy"];var $r={prefijos:["is","has","variant","size","side","shape","orientation","resize","placement","density","collapsible","padding","align","position","status","fill","contrast","tone","hide","direction","level","aspect","icon"],palabras:["auto-resize","responsive-sheet","vertical"]},fe=["dark"],Ue=e=>$r.palabras.includes(e)||$r.prefijos.some(n=>e.startsWith(n+"-"));function bl(e){let n=[[]],o=0,r="",a=()=>{r.trim()&&n[n.length-1].push(r.trim()),r=""};for(let i of e)(i==="("||i==="[")&&o++,(i===")"||i==="]")&&o--,o===0&&i===","?(a(),n.push([])):o===0&&/[\s>+~]/.test(i)?a():r+=i;return a(),n}function yl(e){for(let n=e.indexOf(":not(");n!==-1;n=e.indexOf(":not(")){let o=0,r=n+4;for(;r<e.length&&(e[r]==="("&&o++,!(e[r]===")"&&--o===0));r++);e=e.slice(0,n)+e.slice(r+1)}return e}function wr(e,n=We){let o=e.replace(/\/\*[\s\S]*?\*\//g,l=>l.replace(/[^\n]/g," ")),r=n.map(l=>l.replace(/-/g,"\\-")).join("|"),a=new RegExp(`&|\\.ts-|\\[data-(?:${r})(?:[-\\]=~|^$*])`),i=[];for(let l of o.matchAll(/(^|[;{}])\s*([^;{}@]+?)\s*\{/g)){let s=l[2].trim(),c=l.index+l[0].indexOf(l[2]),d=o.slice(0,c).split(`
3238
- `).length,p=[...o.slice(0,c).matchAll(/^@utility (\S+)/gm)].pop()?.[1]??"(fuera de un @utility)";for(let m of bl(s))for(let t of m){for(let b of t.matchAll(/\.([A-Za-z_][A-Za-z0-9_-]*)/g)){let C=b[1];C.startsWith("ts-")||fe.includes(C)||Ue(C)||i.push({selector:s.replace(/\s+/g," "),utility:p,linea:d,motivo:"desconocido"})}let g=yl(t);[...g.matchAll(/\.([A-Za-z_][A-Za-z0-9_-]*)/g)].map(b=>b[1]).filter(Ue).length&&!a.test(g)&&i.push({selector:s.replace(/\s+/g," "),utility:p,linea:d,motivo:"suelto"})}}return i}function vs(e,n,o,r){let a=new Set([n,o].flatMap(s=>nt(s).flatMap(c=>{let d=c.name.replaceAll("\\","");return[d.slice(3),(r.get(d)??d).slice(3)]}))),i=new Set;for(let s of Object.values(e.componentes))for(let c of s.bloques)for(let d of[c,(r.get(`ts-${c}`)??`ts-${c}`).slice(3)])i.add(d);return{atomicas:a,componentes:i,esComponente:s=>!a.has(s)&&(i.has(s)||Ue(s))}}var xs=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,kr=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,xn="ts-",Sr=/^\d+(\.\d+)?px$/,Be={regex:/^[1-9]\d{0,2}$/,rango:"1 a 999"},vl={regex:/^(?:0|[1-9]\d?|100)$/,rango:"0 a 100"},xl=/^(?:[2-9]?xs|[2-9]xl)$/,R=(e,n)=>new St([{path:e,...n}]);function he(e,n,o){try{n()}catch(r){if(!(r instanceof St))throw r;e.push(...r.errors),o?.()}}function He(e){if(e.length)throw new St(e)}function Yt(e,n){if(typeof n!="string")throw R(e,{code:"value-not-string",params:{value:n}});if(n.trim()==="")throw R(e,{code:"empty-value",params:{}});if(/[;{}\\\r\n]|\/\*|\*\//.test(n))throw R(e,{code:"unsafe-value",params:{value:n}})}var zr=e=>{let n=new Map;for(let o of e)n.set(o,(n.get(o)??0)+1);return n};function $l(e,n){let o=Array.from({length:n.length+1},(r,a)=>a);for(let r=1;r<=e.length;r++){let a=[r];for(let i=1;i<=n.length;i++)a[i]=Math.min(o[i]+1,a[i-1]+1,o[i-1]+(e[r-1]===n[i-1]?0:1));o=a}return o[n.length]}function dt(e,n){let o=3,r;for(let a of n){if(Math.abs(a.length-e.length)>2)continue;let i=$l(e,a);i<o?(o=i,r=a):i===o&&(r=void 0)}return r}var jr=["colors","primary","states","fonts","radius","borderWidths","blurs","zIndex","opacities","screens","components","cornerShape","focusRing","contrastThreshold","spotlight","spacing","shadows","motion","semantic","neutral","material","locked","fontSizes","lineHeights","letterSpacing","fontWeights","density"],wl={sizing:"extend.sizing"},Rr=["screens","radius","fontSizes","lineHeights","letterSpacing","fontWeights","borderWidths","blurs","opacities","shadows"],Er={spacing:["gaps","spaces"],motion:["durations","easings"]},Tr=["zIndex","motion.loops","motion.iterations"],Cr=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function kl(e,n){let o={};if(e===void 0)return o;if(!Cr(e))return n(()=>{throw R("extend",{code:"extend-shape-invalid",params:{expected:"object",value:e}})}),o;let r=(i,l,s)=>{let c=s==="list"?Array.isArray(l):Cr(l);return c||n(()=>{throw R(i,{code:"extend-shape-invalid",params:{expected:s,value:l}})}),c},a=["sizing",...Rr,...Object.keys(Er)];for(let[i,l]of Object.entries(e)){if(i==="sizing"){r("extend.sizing",l,"list")&&(o.sizing=l);continue}if(Rr.includes(i)){r(`extend.${i}`,l,"object")&&(o[i]=l);continue}let s=Er[i];if(s){if(!r(`extend.${i}`,l,"object"))continue;let c={};for(let[d,p]of Object.entries(l)){let m=`extend.${i}.${d}`;if(s.includes(d)){r(m,p,"object")&&(c[d]=p);continue}n(()=>{if(Tr.includes(`${i}.${d}`))throw R(m,{code:"extend-key-excluded",params:{key:`${i}.${d}`}});let t=dt(d,s);throw R(m,{code:"extend-key-unknown",params:{key:d,...t&&{suggestion:t}}})})}o[i]=c;continue}n(()=>{if(Tr.includes(i))throw R(`extend.${i}`,{code:"extend-key-excluded",params:{key:i}});let c=dt(i,a);throw R(`extend.${i}`,{code:"extend-key-unknown",params:{key:i,...c&&{suggestion:c}}})})}return o}var Or={integer:e=>/^-?\d+$/.test(e),"font-weight":e=>/^\d+$/.test(e)&&Number(e)>=1&&Number(e)<=1e3,opacity:e=>/^var\(.+\)$/.test(e)||/^(\d+\.?\d*|\.\d+)$/.test(e)&&Number(e)>=0&&Number(e)<=1,duration:e=>/^(\d+\.?\d*|\.\d+)(ms|s)$/.test(e),iterations:e=>e==="infinite"||/^(\d+\.?\d*|\.\d+)$/.test(e)};function Sl(e,n,o,r){let a=`themes.${e}`;for(let l of Object.keys(n))r(()=>{if(jr.includes(l))return;let s=wl[l],c=s?void 0:dt(l,jr);throw R(`${a}.${l}`,{code:"theme-key-unknown",params:{key:l,...s&&{extendPath:s},...c&&{suggestion:c}}})});n.cornerShape!==void 0&&n.cornerShape!=="round"&&n.cornerShape!=="squircle"&&r(()=>{throw R(`${a}.cornerShape`,{code:"corner-shape-invalid",params:{value:n.cornerShape}})});for(let[l,s]of[["spacing",["gaps","spaces"]],["motion",["durations","loops","iterations","easings"]],["density",["comfortable","compact"]]])for(let c of Object.keys(n[l]??{}))r(()=>{if(s.includes(c))return;let d=dt(c,s);throw R(`${a}.${l}.${c}`,{code:"theme-key-unknown",params:{key:c,...d&&{suggestion:d}}})});for(let{ruta:l,de:s,nombres:c,extendRuta:d,tipo:p}of o)for(let[m,t]of Object.entries(s(n)??{}))r(()=>{let g=`${a}.${l}.${m}`;if(!c.includes(m))throw R(g,{code:"theme-name-unknown",params:{scale:l,name:m,...d&&{extendPath:d}}});if(Yt(g,t),p&&!Or[p](t.trim()))throw R(g,{code:"value-type-invalid",params:{kind:p,value:t}})});for(let l of["comfortable","compact"]){let s=n.density?.[l]??{};for(let[c,d]of Object.entries(s)){let p=`${a}.density.${l}.${c}`;if(l==="compact"&&c==="spacing"){for(let[m,t]of Object.entries(d??{})){if(m!=="gaps"&&m!=="spaces"){let g=dt(m,["gaps","spaces"]);r(()=>{throw R(`${p}.${m}`,{code:"theme-key-unknown",params:{key:m,...g&&{suggestion:g}}})});continue}for(let[g,h]of Object.entries(t??{}))r(()=>{let b=`${p}.${m}.${g}`;if(!Object.hasOwn(re,g))throw R(b,{code:"theme-name-unknown",params:{scale:`density.compact.spacing.${m}`,name:g}});Yt(b,h)})}continue}if(!Object.hasOwn(Dt,c)){r(()=>{throw R(p,{code:"theme-name-unknown",params:{scale:`density.${l}`,name:c}})});continue}for(let[m,t]of Object.entries(d??{}))r(()=>{let g=`${p}.${m}`;if(!Object.hasOwn(Dt[c][l],m))throw R(g,{code:"theme-name-unknown",params:{scale:`density.${l}.${c}`,name:m}});if(typeof t!="number"||!Number.isFinite(t)||t<0)throw R(g,{code:"value-type-invalid",params:{kind:"px",value:t}})})}}let i=[...Object.entries(n.fonts??{}).map(([l,s])=>[`fonts.${l}`,s]),...Object.entries(n.semantic??{}).map(([l,s])=>[`semantic.${l}`,s]),["focusRing",n.focusRing],["contrastThreshold",n.contrastThreshold],["spotlight.light",n.spotlight?.light],["spotlight.dark",n.spotlight?.dark],...["light","dark"].flatMap(l=>["bg","border","shadowRgb"].map(s=>[`material.${l}.${s}`,n.material?.[l]?.[s]]))];for(let[l,s]of i)s!==void 0&&r(()=>Yt(`${a}.${l}`,s))}function Dr(e,n,o,r,a,i={components:"",utilities:""}){let l=[],s=(f,S)=>he(l,f,S);s(()=>{if(e.scope!==void 0&&e.scope!=="ts")throw R("scope",{code:"scope-invalid",params:{value:e.scope}});if(e.darkMode!==void 0&&e.darkMode!=="class"&&e.darkMode!=="media")throw R("darkMode",{code:"dark-mode-invalid",params:{value:e.darkMode}})}),s(()=>{if(e.iconsHtmlDirs!==void 0)throw R("iconsHtmlDirs",{code:"icons-html-dirs-removed",params:{}})}),(e.fontFaces??[]).forEach((f,S)=>{s(()=>{if(!(f.styles===void 0||Array.isArray(f.styles)&&f.styles.length>0&&f.styles.every(V=>V==="normal"||V==="italic")))throw R(`fontFaces[${S}].styles`,{code:"font-styles-invalid",params:{value:f.styles}})})});for(let[f,S]of Object.entries(e.themes))s(()=>{let M=S.colors?.brand;if(typeof M!="string"||M.trim()==="")throw R(`themes.${f}.colors.brand`,{code:"brand-required",params:{}})}),s(()=>{if(Object.hasOwn(S.colors??{},"primary"))throw R(`themes.${f}.colors.primary`,{code:"primary-in-colors",params:{}})}),s(()=>{let M=Ze(S);if(M!==void 0&&(typeof M!="string"||M.trim()===""))throw R(`themes.${f}.primary`,{code:"primary-invalid",params:{}})});let c=kl(e.extend,s),d=e.utilities??{},p={sizing:{...N.sizing,...Object.fromEntries((Array.isArray(c.sizing)?c.sizing:[]).filter(f=>typeof f=="number").map(f=>[String(f),f]))},screens:{...N.screens,...c.screens??{}},radius:{...N.radius,...c.radius??{}},gaps:{...N.gaps,...c.spacing?.gaps??{}},spaces:{...N.spaces,...c.spacing?.spaces??{}},fontSizes:{...N.fontSizes,...c.fontSizes??{}},lineHeights:{...N.lineHeights,...c.lineHeights??{}},letterSpacing:{...N.letterSpacing,...c.letterSpacing??{}},fontWeights:{...N.fontWeights,...c.fontWeights??{}},borderWidths:{...N.borderWidths,...c.borderWidths??{}},blurs:{...N.blurs,...c.blurs??{}},opacities:{...N.opacities,...c.opacities??{}},shadows:{...N.shadows,...c.shadows??{}},durations:{...N.durations,...c.motion?.durations??{}},easings:{...N.easings,...c.motion?.easings??{}}},m,t=()=>{if(!m){let f=ie(n,o),S=nt(qt(f,r)).map(H=>H.name),M=nt(Ct()).map(H=>H.name),V=[...nt(Ct()+i.utilities),...nt(Bt(n,o)+i.components)].map(H=>H.name);m={atomic:S,utilidades:M,resto:V,nombres:new Set([...S,...V,...yt([...S,...V]).values()]),vocabulary:f}}return m},g,h=()=>{if(!g){let{vocabulary:f}=t(),S=nt(qt(f,r,p)).map(V=>V.name),M=[...nt(Ct(p)+i.utilities),...nt(Bt(n,o,p)+i.components)].map(V=>V.name);g=new Set([...S,...M,...yt([...S,...M]).values()])}return g},b=new Map(Object.entries(N.screens).map(([f,S])=>[parseFloat(S),f]));for(let[f,S]of Object.entries(c.screens??{}))s(()=>{let M=`extend.screens.${f}`;if(Object.hasOwn(N.screens,f))throw R(M,{code:"screen-exists",params:{name:f}});if(!xl.test(f))throw R(M,{code:"screen-name-invalid",params:{}});if(typeof S!="string"||!Sr.test(S))throw R(M,{code:"screen-value-invalid",params:{value:`${S}`}});let V=parseFloat(S),H=b.get(V);if(H!==void 0)throw R(M,{code:"screen-repeated",params:{value:S,other:H}});b.set(V,f);let D=Object.values(N.screens).map(parseFloat),[,_,X]=/^(\d)?(xs|xl)$/.exec(f),Z=Number(_??1);if(X==="xs"&&V>=Math.min(...D))throw R(M,{code:"screen-below-min",params:{name:f,px:Math.min(...D)}});if(X==="xl"&&V<=Math.max(...D))throw R(M,{code:"screen-above-max",params:{name:f,px:Math.max(...D)}});for(let[zt,Nt]of Object.entries(c.screens??{})){if(zt===f)break;let Ot=/^(\d)?(xs|xl)$/.exec(zt);if(!Ot||Ot[2]!==X||!Sr.test(Nt))continue;let Qt=Number(Ot[1]??1),te=parseFloat(Nt),ee=X==="xl"?Z>Qt:Z<Qt;if(ee?V<=te:V>=te)throw R(M,{code:"screen-order",params:{name:f,value:S,greater:ee,other:zt,otherValue:Nt}})}},()=>{delete p.screens[f]});let C=[{ruta:"extend.radius",clave:"radius",temaRuta:"radius",propios:c.radius},{ruta:"extend.spacing.gaps",clave:"gaps",temaRuta:"spacing.gaps",propios:c.spacing?.gaps},{ruta:"extend.spacing.spaces",clave:"spaces",temaRuta:"spacing.spaces",propios:c.spacing?.spaces},{ruta:"extend.fontSizes",clave:"fontSizes",temaRuta:"fontSizes",propios:c.fontSizes,numerico:Be},{ruta:"extend.lineHeights",clave:"lineHeights",temaRuta:"lineHeights",propios:c.lineHeights,numerico:Be},{ruta:"extend.letterSpacing",clave:"letterSpacing",temaRuta:"letterSpacing",propios:c.letterSpacing},{ruta:"extend.fontWeights",clave:"fontWeights",temaRuta:"fontWeights",propios:c.fontWeights,tipo:"font-weight"},{ruta:"extend.borderWidths",clave:"borderWidths",temaRuta:"borderWidths",propios:c.borderWidths,numerico:Be},{ruta:"extend.blurs",clave:"blurs",temaRuta:"blurs",propios:c.blurs},{ruta:"extend.opacities",clave:"opacities",temaRuta:"opacities",propios:c.opacities,numerico:vl,tipo:"opacity"},{ruta:"extend.shadows",clave:"shadows",temaRuta:"shadows",propios:c.shadows},{ruta:"extend.motion.durations",clave:"durations",temaRuta:"motion.durations",propios:c.motion?.durations,tipo:"duration"},{ruta:"extend.motion.easings",clave:"easings",temaRuta:"motion.easings",propios:c.motion?.easings}],$=new Map,E=(f,S)=>{let{atomic:M,utilidades:V,nombres:H,vocabulary:D}=t(),_=zr([...M,...V]),X=zr([...nt(qt(D,r,S)),...nt(Ct(S))].map(Z=>Z.name));for(let[Z,zt]of X){if(zt<=(_.get(Z)??0))continue;if(H.has(Z))throw R(f,{code:"class-exists",params:{class:Z}});let Nt=$.get(Z);if(Nt!==void 0)throw R(f,{code:"class-duplicated",params:{class:Z,other:Nt}});$.set(Z,f);let Ot=$t(Z)?.nuevo;if(Ot&&H.has(Ot))throw R(f,{code:"class-renamed-exists",params:{class:Z,renamed:Ot}})}};for(let{ruta:f,clave:S,temaRuta:M,propios:V,numerico:H,tipo:D}of C)for(let[_,X]of Object.entries(V??{}))s(()=>{let Z=`${f}.${_}`;if(Object.hasOwn(N[S],_))throw R(Z,{code:"scale-exists",params:{name:_,themePath:M}});if(H){if(!H.regex.test(_))throw R(Z,{code:"scale-name-numeric",params:{range:H.rango}})}else if(!xs.test(_))throw R(Z,{code:"scale-name-invalid",params:{}});if(S==="spaces"&&_.startsWith("neg-"))throw R(Z,{code:"space-neg-prefix",params:{}});if(S==="spaces"&&_.endsWith("-negative"))throw R(Z,{code:"space-negative-suffix",params:{}});if(Yt(Z,X),D&&!Or[D](X.trim()))throw R(Z,{code:"value-type-invalid",params:{kind:D,value:X}});if(S==="fontSizes"&&!Object.hasOwn(N.lineHeights,_)&&!Object.hasOwn(c.lineHeights??{},_))throw R(Z,{code:"font-size-needs-line-height",params:{name:_}});E(Z,{...N,[S]:{...N[S],[_]:X}})},()=>{delete p[S][_]});let u=new Set;(Array.isArray(c.sizing)?c.sizing:[]).forEach((f,S)=>{s(()=>{let M=`extend.sizing[${S}]`;if(typeof f!="number"||!Number.isInteger(f))throw R(M,{code:"value-type-invalid",params:{kind:"integer",value:f}});if(!Be.regex.test(String(f)))throw R(M,{code:"scale-name-numeric",params:{range:Be.rango}});if(Object.hasOwn(N.sizing,String(f)))throw R(M,{code:"sizing-exists",params:{level:f,repeated:!1}});if(u.has(f))throw R(M,{code:"sizing-exists",params:{level:f,repeated:!0}});u.add(f),E(M,{...N,sizing:{...N.sizing,[String(f)]:f}})},()=>{Object.hasOwn(N.sizing,String(f))||delete p.sizing[String(f)]})});let y=(f,S)=>[...Object.keys(f),...Object.keys(S??{})],w=[{ruta:"radius",de:f=>f.radius,nombres:y(N.radius,c.radius),extendRuta:"extend.radius"},{ruta:"spacing.gaps",de:f=>f.spacing?.gaps,nombres:y(N.gaps,c.spacing?.gaps),extendRuta:"extend.spacing.gaps"},{ruta:"spacing.spaces",de:f=>f.spacing?.spaces,nombres:y(N.spaces,c.spacing?.spaces),extendRuta:"extend.spacing.spaces"},{ruta:"screens",de:f=>f.screens,nombres:y(N.screens,c.screens),extendRuta:"extend.screens"},{ruta:"fontSizes",de:f=>f.fontSizes,nombres:y(N.fontSizes,c.fontSizes),extendRuta:"extend.fontSizes"},{ruta:"lineHeights",de:f=>f.lineHeights,nombres:y(N.lineHeights,c.lineHeights),extendRuta:"extend.lineHeights"},{ruta:"letterSpacing",de:f=>f.letterSpacing,nombres:y(N.letterSpacing,c.letterSpacing),extendRuta:"extend.letterSpacing"},{ruta:"fontWeights",de:f=>f.fontWeights,nombres:y(N.fontWeights,c.fontWeights),extendRuta:"extend.fontWeights",tipo:"font-weight"},{ruta:"borderWidths",de:f=>f.borderWidths,nombres:y(Qe,c.borderWidths),extendRuta:"extend.borderWidths"},{ruta:"blurs",de:f=>f.blurs,nombres:y(tn,c.blurs),extendRuta:"extend.blurs"},{ruta:"zIndex",de:f=>f.zIndex,nombres:y(Te),tipo:"integer"},{ruta:"opacities",de:f=>f.opacities,nombres:y(en,c.opacities),extendRuta:"extend.opacities",tipo:"opacity"},{ruta:"shadows",de:f=>f.shadows,nombres:y(nn,c.shadows),extendRuta:"extend.shadows"},{ruta:"motion.durations",de:f=>f.motion?.durations,nombres:y(Se,c.motion?.durations),extendRuta:"extend.motion.durations",tipo:"duration"},{ruta:"motion.loops",de:f=>f.motion?.loops,nombres:y(ze)},{ruta:"motion.iterations",de:f=>f.motion?.iterations,nombres:y(je),tipo:"iterations"},{ruta:"motion.easings",de:f=>f.motion?.easings,nombres:y(Re,c.motion?.easings),extendRuta:"extend.motion.easings"}];for(let[f,S]of Object.entries(e.themes))Sl(f,S,w,s);let q=Object.keys(d),O=f=>f.includes("."),B=q.filter(f=>!O(f)),K=new Set,lt,k=()=>lt??=new Set([...h()].filter(f=>!$t(f.replaceAll("\\",""))).map(f=>f.slice(3))),A=kt(p.screens),P,G=()=>P??=(()=>{let f=qt(t().vocabulary,r,p),S=Ct(p)+i.utilities,M=Bt(n,o,p)+i.components,V=[f,S,M].flatMap(H=>nt(H).map(D=>D.name));return vs(a,f,S,yt(V))})(),x=(f,S)=>{if(!Array.isArray(S)||S.length===0)throw R(f,{code:"utility-empty",params:{}});for(let M of S){if(typeof M!="string")throw R(f,{code:"utility-not-a-class",params:{value:M}});let{cadena:V,base:H}=Oe(M);if(O(H))throw R(f,{code:"utility-composes-modifier",params:{class:M,utility:H.split(".")[0],modifiers:H.split(".").slice(1)}});if(V.length){let D=Tt(V,A);if(!D.ok){if(D.motivo==="desconocido"){let _=dt(D.prefijo,A.keys());throw R(f,{code:"utility-unknown-prefix",params:{class:M,prefix:D.prefijo,..._&&{suggestion:_}}})}throw D.motivo==="data-ts"?R(f,{code:"utility-data-ts-variant",params:{class:M}}):D.canonica?R(f,{code:"utility-out-of-order",params:{class:M,suggestion:D.canonica.join("")+H}}):R(f,{code:"utility-invalid-chain",params:{class:M}})}if(G().esComponente(H)&&!B.includes(H))throw R(f,{code:"utility-variant-on-component",params:{class:M,base:H}})}if(!k().has(H)&&!B.includes(H)){let D=H.startsWith("ts-")?H.slice(3):$t(`ts-${H}`)?.nuevo?.slice(3),_=D!==void 0&&k().has(D)?D:dt(H,[...k(),...B]);throw R(f,{code:"utility-unknown-class",params:{class:M,..._&&{suggestion:_}}})}}},F=(f,S)=>{if(!kr.test(S))throw R(f,{code:"modifier-invalid",params:{modifier:S}});if(S.startsWith(xn))throw R(f,{code:"modifier-reserved-prefix",params:{modifier:S,prefix:xn}});if(S==="ts"||fe.includes(S))throw R(f,{code:"modifier-theme-class",params:{modifier:S}});if(k().has(S))throw R(f,{code:"modifier-short-name",params:{modifier:S}});if(B.includes(S))throw R(f,{code:"modifier-is-utility",params:{modifier:S}})},j=new Map;for(let f of q)s(()=>{let S=`utilities.${f}`;if(O(f)){let[M,...V]=f.split(".");if(!B.includes(M))throw R(S,{code:"component-missing",params:{component:M}});for(let _ of V)F(S,_);if(new Set(V).size!==V.length)throw R(S,{code:"modifier-repeated",params:{}});let H=`${M}.${[...V].sort().join(".")}`,D=j.get(H);if(D!==void 0)throw R(S,{code:"combination-repeated",params:{other:D}});j.set(H,f),x(S,d[f]);return}if(!kr.test(f))throw R(S,{code:"utility-name-invalid",params:{}});if(f.startsWith(xn))throw R(S,{code:"utility-reserved-prefix",params:{prefix:xn}});if(Ue(f)||fe.includes(f))throw R(S,{code:"utility-name-is-modifier",params:{}});if(t().nombres.has(f))throw R(S,{code:"utility-conflicts-ds",params:{}});if(f==="ts")throw R(S,{code:"utility-name-ts",params:{}});if(k().has(f))throw R(S,{code:"utility-short-name",params:{}});x(S,d[f])},()=>{K.add(f)});let T=new Set,I=new Set,tt=(f,S)=>{if(S.includes(f)){let M=[...S,f].slice(S.indexOf(f));s(()=>{throw R(`utilities.${S[0]}`,{code:"utility-cycle",params:{cycle:M}})});for(let V of M)T.add(V),I.add(V);return}if(!(T.has(f)||K.has(f))){for(let M of d[f])Object.hasOwn(d,M)&&!O(M)&&tt(M,[...S,f]);T.add(f)}};for(let f of B)tt(f,[]);let st=f=>!K.has(f)&&!I.has(f);for(let f of q)st(f)&&s(()=>{for(let S of d[f]){let{cadena:M,base:V}=Oe(S);if(!M.length||O(V)||!Object.hasOwn(d,V)||!st(V))continue;let H=le(V,d),D=de(M,H,A).find(X=>!X.ok);if(D&&!D.ok)throw R(`utilities.${f}`,{code:"utility-invalid-composition",params:dn(S,V,M,D)});let _=H.find(X=>X.cadena.length===0&&G().esComponente(X.base)&&!B.includes(X.base));if(_)throw R(`utilities.${f}`,{code:"utility-composes-component",params:{class:S,utility:V,component:_.base}})}});return He(l),{userScales:p,userUtilities:d}}function zl(e){return e}var Mr=()=>({userColors:{brand:"#4F46E5"},userStates:ws,userGridMins:ks}),$s=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,jl=new Set(["__proto__","constructor","prototype","tostring"]),$n=e=>jl.has(e.toLowerCase());function Pr(e){let n=ie(e.userColors,e.userStates),o=t=>nt(t).map(g=>g.name.replaceAll("\\","")),r=[...o(qt(n,e.userGridMins,N)),...o(Ct())],a=o(Bt(e.userColors,e.userStates,N)),i=new Set([...r,...yt(r).values()]),l=new Set([...i,...a,...yt(a).values()]),s={name:"x",group:"root",def:{colors:{...Mr().userColors,...e.userColors}}},c=Pe(Me(s,{},e.userStates)),d=new Set([...c.matchAll(/^\s*(--[\w-]+):/gm)].map(t=>t[1])),p=t=>t.split("-")[0],m=new Set([...[...l].map(t=>p(t.slice(3))),...We,...fe,...[...d].map(t=>p(t.startsWith("--ts-")?t.slice(5):t.slice(2)))]);return{emitidos:l,aplicables:i,slugs:new Set(Object.keys(Ae.componentes)),variables:d,reservadas:m}}var Ht=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Ar=(e,n)=>We.includes(e)||n.reservadas.has(e)||[...n.slugs].some(o=>o===e||o.replaceAll("-","")===e)||[...n.emitidos].some(o=>o===`ts-${e}`||o.startsWith(`ts-${e}-`));function Ir(e){return e.flatMap(n=>n.t==="apply"?n.destinos:n.t==="decl"?[]:Ir(n.hijos))}function Nr(e){return e.flatMap(n=>n.t==="decl"?[{prop:n.prop,valor:n.valor}]:n.t==="apply"?[]:Nr(n.hijos))}var qr=2**30;function _r(e,n,o,r,a=new Set){let i=[],l={root:[],slug:[],block:[],utility:[],variable:[]},s=(k,A)=>{i.push({path:k,...A})},c=(k,A)=>s(k,{code:"ext-shape",params:{expected:A}}),d=`extensions[${JSON.stringify(n)}]`;if(!Ht(e))return c(d,"object"),{errores:i,nombres:l,raices:[]};e.components!==void 0&&!Ht(e.components)&&c(`${d}.components`,"object"),e.utilities!==void 0&&typeof e.utilities!="string"&&c(`${d}.utilities`,"string");let p=Array.isArray(e.roots)&&e.roots.every(k=>typeof k=="string")?e.roots:void 0;e.roots!==void 0&&p===void 0&&c(`${d}.roots`,"string[]");let m=Ht(e.components)?Object.entries(e.components):[];m.length>J.componentes&&(s(`${d}.components`,{code:"ext-limit",params:{what:"components",max:J.componentes}}),m=[]);let t=new Map,g=new Map;for(let[k,A]of m){let P=`${d}.components.${k}`;if(!$s.test(k)||$n(k)?s(P,{code:"ext-name-invalid",params:{kind:"slug",name:k}}):o.slugs.has(k)?s(P,{code:"ext-conflicts-core",params:{kind:"slug",name:k}}):l.slug.push(k),!Ht(A)){c(P,"object");continue}if(!Array.isArray(A.roots)||A.roots.some(x=>typeof x!="string")){c(`${P}.roots`,"string[]");continue}if(A.roots.length===0&&s(`${P}.roots`,{code:"ext-roots-empty",params:{}}),A.roots.length>J.raices){s(`${P}.roots`,{code:"ext-limit",params:{what:"roots",max:J.raices}});continue}let G=[];for(let x of A.roots){if(!$s.test(x)||$n(x)){s(`${P}.roots`,{code:"ext-name-invalid",params:{kind:"root",name:x}});continue}let F=t.get(x);if(F!==void 0){s(`${P}.roots`,{code:"ext-root-repeated",params:{root:x,other:F}});continue}t.set(x,k),G.push(x),l.root.push(x),Ar(x,o)&&s(`${P}.roots`,{code:"ext-conflicts-core",params:{kind:"root",name:x}})}g.set(k,G)}if(p!==void 0)if(p.length>J.raices)s(`${d}.roots`,{code:"ext-limit",params:{what:"roots",max:J.raices}});else{let k=[...t.keys()],A=(P,G)=>P===G||P.startsWith(`${G}-`)||G.startsWith(`${P}-`);for(let P of p){if(!$s.test(P)||$n(P)){s(`${d}.roots`,{code:"ext-name-invalid",params:{kind:"root",name:P}});continue}let G=t.get(P);if(G!==void 0){s(`${d}.roots`,{code:"ext-root-repeated",params:{root:P,other:G}});continue}t.set(P,""),l.root.push(P),Ar(P,o)&&s(`${d}.roots`,{code:"ext-conflicts-core",params:{kind:"root",name:P}});for(let x of k)A(P,x)&&s(`${d}.roots`,{code:"ext-roots-overlap",params:{root:P,other:x,package:n,otherPackage:n}})}}let h=[...t.keys()],b=k=>{let A;for(let P of h)(k===`ts-${P}`||k.startsWith(`ts-${P}-`))&&(A===void 0||P.length>A.length)&&(A=P);return A===void 0?void 0:t.get(A)},C=new Set;for(let[k,A]of m){if(!Ht(A)||A.tokens===void 0)continue;let P=`${d}.components.${k}.tokens`;if(!Ht(A.tokens)){c(P,"object");continue}let G=Object.entries(A.tokens);if(G.length>J.tokens){s(P,{code:"ext-limit",params:{what:"tokens",max:J.tokens}});continue}let x=g.get(k)?.[0];for(let[F,j]of G){let T=`${P}.${F}`;if(F.length>J.clave){s(T.slice(0,120),{code:"ext-limit",params:{what:"key-length",max:J.clave}});continue}if(!xs.test(F)||$n(F)){s(T,{code:"ext-name-invalid",params:{kind:"token",name:F}});continue}let I=x===void 0?void 0:`--ts-${x}-${F}`;if(typeof j=="string"&&j.length>J.valor)s(T,{code:"ext-limit",params:{what:"value-length",max:J.valor}});else{let tt=!0;if(he(i,()=>Yt(T,j),()=>{tt=!1}),tt&&typeof j=="string")for(let st of So(j,I??F))s(T,st)}I!==void 0&&(l.variable.push(I),o.variables.has(I)&&s(T,{code:"ext-conflicts-core",params:{kind:"variable",name:I}}),C.has(I)&&s(T,{code:"ext-variable-repeated",params:{variable:I}}),C.add(I))}}i.push(...ln(r)),r.reduce((k,A)=>k+A.parse.bloques.length,0)>J.bloques&&s(d,{code:"ext-limit",params:{what:"blocks",max:J.bloques}});let E=new Set,u=new Map,y=new Map;for(let k of r)for(let A of k.parse.bloques)u.has(A.name)||(u.set(A.name,k.slug??""),y.set(A.name,A.nodos));let w=new Map;for(let k of r){let A=k.slug,P=A===void 0?void 0:g.get(A)??[];for(let{name:x,nodos:F}of k.parse.bloques){E.has(x)&&s(k.ruta,{code:"ext-block-repeated",params:{block:x}}),E.add(x),(o.emitidos.has(x)||$t(x))&&s(k.ruta,{code:"ext-conflicts-core",params:{kind:A===void 0?"utility":"block",name:x}}),l[A===void 0?"utility":"block"].push(x),A!==void 0?b(x)!==A&&s(k.ruta,{code:"ext-block-not-owned",params:{block:x,roots:P??[]}}):b(x)===void 0&&s(k.ruta,{code:"ext-utility-no-root",params:{block:x}});for(let{prop:j,valor:T}of Nr(F)){let I=`${j}: ${T.replace(/"[^"]*"|'[^']*'/g,st=>st[0]+st[0])}`,tt=yo(I);tt&&s(k.ruta,{code:"ext-color-literal",params:{block:x,value:tt.value,kind:tt.kind}});for(let st of new Set(vo(I))){if(o.variables.has(st)||h.some(S=>st===`--ts-${S}`||st.startsWith(`--ts-${S}-`)))continue;let f=dt(st,o.variables);s(k.ruta,{code:"ext-var-not-public",params:{block:x,variable:st,...f&&{suggestion:f}}})}}w.set(x,Ir(F))}let G=wr(k.parse.bloques.map(x=>x.css).join(""),[...We,...h]);for(let x of G)s(k.ruta,{code:"ext-modifier-loose",params:{block:x.utility,selector:x.selector,motive:x.motivo}})}for(let[k,A]of m)Ht(A)&&A.css!==void 0&&typeof A.css!="string"&&c(`${d}.components.${k}.css`,"string");let q=new Map;for(let k of r)for(let A of k.parse.bloques)q.has(A.name)||q.set(A.name,k.ruta);let O=new Map;for(let[k,A]of w){let P=q.get(k),G=u.get(k);for(let x of new Set(A)){if(o.aplicables.has(x))continue;let F=u.get(x);if(F!==void 0&&F===G){O.set(k,[...O.get(k)??[],x]);continue}let j=F!==void 0||a.has(x)?"other-component":o.emitidos.has(x)?"core-component":"unknown",T=j==="unknown"?dt(x,o.aplicables):void 0;s(P,{code:"ext-apply-target",params:{block:k,target:x,reason:j,...T&&{suggestion:T}}})}}let B=new Map,K=!1,lt=k=>{B.set(k,1);for(let A of O.get(k)??[])B.get(A)===1?(K=!0,s(q.get(k),{code:"ext-apply-target",params:{block:k,target:A,reason:"cycle"}})):B.has(A)||lt(A);B.set(k,2)};for(let k of O.keys())B.has(k)||lt(k);if(!K){let k=new Map,A=new Map,P=new Map;for(let F of r)for(let j of F.parse.bloques)P.has(j.name)||P.set(j.name,j.css.length);let G=F=>{let j=k.get(F);if(j!==void 0)return{d:j,t:A.get(F)};let T=0,I=P.get(F)??0;for(let tt of new Set(O.get(F)??[])){let st=G(tt);T=Math.max(T,st.d+1),I=Math.min(qr,I+st.t*w.get(F).filter(f=>f===tt).length)}return k.set(F,T),A.set(F,I),{d:T,t:I}},x=0;for(let F of w.keys()){let{d:j,t:T}=G(F);x=Math.min(qr,x+T),j>J.profundidadApply?s(q.get(F),{code:"ext-apply-budget",params:{block:F,limit:"depth",max:J.profundidadApply}}):T>J.expansionBloque&&s(q.get(F),{code:"ext-apply-budget",params:{block:F,limit:"block-size",max:J.expansionBloque}})}x>J.expansionTotal&&s(d,{code:"ext-apply-budget",params:{block:n,limit:"total-size",max:J.expansionTotal}})}return{errores:i,nombres:l,raices:h}}function Rl(e,n,o=Mr()){return _r(e,n,Pr(o),Ce(e,n)).errores}function Lr(e,n,o){let r=qe(e),a=Object.values(n.themes).some(g=>g.components!==void 0);if(r.length===0&&!a)return[];let i=[],l=r.length?Pr(o):void 0,s=r.map(([g,h])=>Ce(h,g)),c=s.map(g=>new Set(g.flatMap(h=>h.parse.bloques.map(b=>b.name)))),d=new Map,p=new Map,m=new Map;r.forEach(([g,h],b)=>{let C=new Set(c.filter((u,y)=>y!==b).flatMap(u=>[...u])),$=_r(h,g,l,s[b],C);i.push(...$.errores);for(let u of Object.keys($.nombres))for(let y of $.nombres[u]){let w=`${u==="utility"?"block":u}:${y}`,q=d.get(w);q!==void 0&&q!==g?i.push({path:`extensions[${JSON.stringify(g)}]`,code:"ext-conflicts-extension",params:{kind:u,name:y,package:g,other:q}}):d.set(w,g)}let E=`extensions[${JSON.stringify(g)}]`;for(let u of $.raices){let y=u.split("-");for(let q=1;q<y.length;q++){let O=y.slice(0,q).join("-"),B=p.get(O);B!==void 0&&B!==g&&i.push({path:E,code:"ext-roots-overlap",params:{root:u,other:O,package:g,otherPackage:B}})}let w=m.get(u);w!==void 0&&w.paquete!==g&&i.push({path:E,code:"ext-roots-overlap",params:{root:u,other:w.raiz,package:g,otherPackage:w.paquete}})}for(let u of $.raices){p.has(u)||p.set(u,g);let y=u.split("-");for(let w=1;w<y.length;w++){let q=y.slice(0,w).join("-");m.has(q)||m.set(q,{raiz:u,paquete:g})}}});let t=new Map;for(let[,g]of r)for(let[h,b]of Object.entries(g.components??{}))t.set(h,new Set(Object.keys(Ht(b?.tokens)?b.tokens:{})));for(let[g,h]of Object.entries(n.themes))for(let[b,C]of Object.entries(h.components??{})){let $=`themes.${g}.components.${b}`,E=t.get(b);if(!E){let u=dt(b,t.keys());i.push({path:$,code:"theme-component-unknown",params:{slug:b,...u&&{suggestion:u}}});continue}for(let[u,y]of Object.entries(C))if(E.has(u))he(i,()=>Yt(`${$}.${u}`,y));else{let w=dt(u,E);i.push({path:`${$}.${u}`,code:"theme-component-token-unknown",params:{slug:b,key:u,...w&&{suggestion:w}}})}}return i}var ws={success:"#16A34A",warning:"#D97706",info:"#2563EB",danger:"#D42424"},ks={"2xs":"160px",xs:"200px",sm:"240px",md:"280px",lg:"340px",xl:"400px"};function Fr(e){let n=e.lastIndexOf("/");return n===-1?{name:e,group:"root"}:{name:e.slice(n+1),group:e.slice(0,n)}}function be(e,n={}){let o=Object.entries(e.themes).map(([t,g])=>{let{name:h,group:b}=Fr(t);return{name:h,group:b,def:g}}),r=Object.fromEntries(o.flatMap(t=>Object.entries(t.def.colors??{}))),a={...e.defaultStates};for(let[t,g]of Object.entries(ws))Object.hasOwn(a,t)||(a[t]=g);let i=a,l={...e.fonts??{}},s=e.gridMins??ks,c=Lr(n,e,{userColors:r,userStates:i,userGridMins:s});He(c);let{userScales:d,userUtilities:p}=Dr(e,r,i,s,pn(n),pe(n)),m=o.some(t=>!t.def.locked&&Object.values(t.def.density??{}).some(g=>g&&Object.keys(g).length>0));return{themeEntries:o,userColors:r,defaultStates:a,userStates:i,userFonts:l,userGridMins:s,userScales:d,userUtilities:p,themeChangesDensity:m}}function El(e,n){let o=e.lastIndexOf("<",n);for(let r=0;o>=0&&r<50;r++,o=o>0?e.lastIndexOf("<",o-1):-1){let a=/^<([A-Za-z][\w.:-]*)/.exec(e.slice(o,o+80));if(!a||/[A-Za-z0-9_$)\]]/.test(e[o-1]??""))continue;let i=0,l="";for(let s=o+a[0].length;s<e.length;s++){let c=e[s];if(l)c==="\\"?s++:c===l&&(l="");else if(c==='"'||c==="'"||c==="`"&&i>0)l=c;else if(c==="{")i++;else if(c==="}")i--;else if(c===">"&&i<=0)return s<n?null:{nombre:a[1],desde:o,hasta:s+1}}return{nombre:a[1],desde:o,hasta:e.length}}return null}var Tl=e=>/^[A-Z]/.test(e);function Vr(e,n){let o=n instanceof Set?n:new Set(n),r=[];for(let a of e.matchAll(/class="([^"]*)"/g)){let i=a[1].split(/\s+/).filter(Boolean),l=e.slice(0,a.index).split(`
3238
+ `).length,p=[...o.slice(0,c).matchAll(/^@utility (\S+)/gm)].pop()?.[1]??"(fuera de un @utility)";for(let m of bl(s))for(let t of m){for(let b of t.matchAll(/\.([A-Za-z_][A-Za-z0-9_-]*)/g)){let C=b[1];C.startsWith("ts-")||fe.includes(C)||Ue(C)||i.push({selector:s.replace(/\s+/g," "),utility:p,linea:d,motivo:"desconocido"})}let g=yl(t);[...g.matchAll(/\.([A-Za-z_][A-Za-z0-9_-]*)/g)].map(b=>b[1]).filter(Ue).length&&!a.test(g)&&i.push({selector:s.replace(/\s+/g," "),utility:p,linea:d,motivo:"suelto"})}}return i}function vs(e,n,o,r){let a=new Set([n,o].flatMap(s=>nt(s).flatMap(c=>{let d=c.name.replaceAll("\\","");return[d.slice(3),(r.get(d)??d).slice(3)]}))),i=new Set;for(let s of Object.values(e.componentes))for(let c of s.bloques)for(let d of[c,(r.get(`ts-${c}`)??`ts-${c}`).slice(3)])i.add(d);return{atomicas:a,componentes:i,esComponente:s=>!a.has(s)&&(i.has(s)||Ue(s))}}var xs=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,kr=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,xn="ts-",Sr=/^\d+(\.\d+)?px$/,Be={regex:/^[1-9]\d{0,2}$/,rango:"1 a 999"},vl={regex:/^(?:0|[1-9]\d?|100)$/,rango:"0 a 100"},xl=/^(?:[2-9]?xs|[2-9]xl)$/,R=(e,n)=>new St([{path:e,...n}]);function he(e,n,o){try{n()}catch(r){if(!(r instanceof St))throw r;e.push(...r.errors),o?.()}}function He(e){if(e.length)throw new St(e)}function Yt(e,n){if(typeof n!="string")throw R(e,{code:"value-not-string",params:{value:n}});if(n.trim()==="")throw R(e,{code:"empty-value",params:{}});if(/[;{}\\\r\n]|\/\*|\*\//.test(n))throw R(e,{code:"unsafe-value",params:{value:n}})}var zr=e=>{let n=new Map;for(let o of e)n.set(o,(n.get(o)??0)+1);return n};function $l(e,n){let o=Array.from({length:n.length+1},(r,a)=>a);for(let r=1;r<=e.length;r++){let a=[r];for(let i=1;i<=n.length;i++)a[i]=Math.min(o[i]+1,a[i-1]+1,o[i-1]+(e[r-1]===n[i-1]?0:1));o=a}return o[n.length]}function dt(e,n){let o=3,r;for(let a of n){if(Math.abs(a.length-e.length)>2)continue;let i=$l(e,a);i<o?(o=i,r=a):i===o&&(r=void 0)}return r}var jr=["colors","primary","states","fonts","radius","borderWidths","blurs","zIndex","opacities","screens","components","cornerShape","focusRing","contrastThreshold","spotlight","spacing","shadows","motion","semantic","neutral","material","locked","fontSizes","lineHeights","letterSpacing","fontWeights","density"],wl={sizing:"extend.sizing"},Rr=["screens","radius","fontSizes","lineHeights","letterSpacing","fontWeights","borderWidths","blurs","opacities","shadows"],Er={spacing:["gaps","spaces"],motion:["durations","easings"]},Tr=["zIndex","motion.loops","motion.iterations"],Cr=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function kl(e,n){let o={};if(e===void 0)return o;if(!Cr(e))return n(()=>{throw R("extend",{code:"extend-shape-invalid",params:{expected:"object",value:e}})}),o;let r=(i,l,s)=>{let c=s==="list"?Array.isArray(l):Cr(l);return c||n(()=>{throw R(i,{code:"extend-shape-invalid",params:{expected:s,value:l}})}),c},a=["sizing",...Rr,...Object.keys(Er)];for(let[i,l]of Object.entries(e)){if(i==="sizing"){r("extend.sizing",l,"list")&&(o.sizing=l);continue}if(Rr.includes(i)){r(`extend.${i}`,l,"object")&&(o[i]=l);continue}let s=Er[i];if(s){if(!r(`extend.${i}`,l,"object"))continue;let c={};for(let[d,p]of Object.entries(l)){let m=`extend.${i}.${d}`;if(s.includes(d)){r(m,p,"object")&&(c[d]=p);continue}n(()=>{if(Tr.includes(`${i}.${d}`))throw R(m,{code:"extend-key-excluded",params:{key:`${i}.${d}`}});let t=dt(d,s);throw R(m,{code:"extend-key-unknown",params:{key:d,...t&&{suggestion:t}}})})}o[i]=c;continue}n(()=>{if(Tr.includes(i))throw R(`extend.${i}`,{code:"extend-key-excluded",params:{key:i}});let c=dt(i,a);throw R(`extend.${i}`,{code:"extend-key-unknown",params:{key:i,...c&&{suggestion:c}}})})}return o}var Or={integer:e=>/^-?\d+$/.test(e),"font-weight":e=>/^\d+$/.test(e)&&Number(e)>=1&&Number(e)<=1e3,opacity:e=>/^var\(.+\)$/.test(e)||/^(\d+\.?\d*|\.\d+)$/.test(e)&&Number(e)>=0&&Number(e)<=1,duration:e=>/^(\d+\.?\d*|\.\d+)(ms|s)$/.test(e),iterations:e=>e==="infinite"||/^(\d+\.?\d*|\.\d+)$/.test(e)};function Sl(e,n,o,r){let a=`themes.${e}`;for(let l of Object.keys(n))r(()=>{if(jr.includes(l))return;let s=wl[l],c=s?void 0:dt(l,jr);throw R(`${a}.${l}`,{code:"theme-key-unknown",params:{key:l,...s&&{extendPath:s},...c&&{suggestion:c}}})});n.cornerShape!==void 0&&n.cornerShape!=="round"&&n.cornerShape!=="squircle"&&r(()=>{throw R(`${a}.cornerShape`,{code:"corner-shape-invalid",params:{value:n.cornerShape}})});for(let[l,s]of[["spacing",["gaps","spaces"]],["motion",["durations","loops","iterations","easings"]],["density",["comfortable","compact"]]])for(let c of Object.keys(n[l]??{}))r(()=>{if(s.includes(c))return;let d=dt(c,s);throw R(`${a}.${l}.${c}`,{code:"theme-key-unknown",params:{key:c,...d&&{suggestion:d}}})});for(let{ruta:l,de:s,nombres:c,extendRuta:d,tipo:p}of o)for(let[m,t]of Object.entries(s(n)??{}))r(()=>{let g=`${a}.${l}.${m}`;if(!c.includes(m))throw R(g,{code:"theme-name-unknown",params:{scale:l,name:m,...d&&{extendPath:d}}});if(Yt(g,t),p&&!Or[p](t.trim()))throw R(g,{code:"value-type-invalid",params:{kind:p,value:t}})});for(let l of["comfortable","compact"]){let s=n.density?.[l]??{};for(let[c,d]of Object.entries(s)){let p=`${a}.density.${l}.${c}`;if(l==="compact"&&c==="spacing"){for(let[m,t]of Object.entries(d??{})){if(m!=="gaps"&&m!=="spaces"){let g=dt(m,["gaps","spaces"]);r(()=>{throw R(`${p}.${m}`,{code:"theme-key-unknown",params:{key:m,...g&&{suggestion:g}}})});continue}for(let[g,h]of Object.entries(t??{}))r(()=>{let b=`${p}.${m}.${g}`;if(!Object.hasOwn(re,g))throw R(b,{code:"theme-name-unknown",params:{scale:`density.compact.spacing.${m}`,name:g}});Yt(b,h)})}continue}if(!Object.hasOwn(Dt,c)){r(()=>{throw R(p,{code:"theme-name-unknown",params:{scale:`density.${l}`,name:c}})});continue}for(let[m,t]of Object.entries(d??{}))r(()=>{let g=`${p}.${m}`;if(!Object.hasOwn(Dt[c][l],m))throw R(g,{code:"theme-name-unknown",params:{scale:`density.${l}.${c}`,name:m}});if(typeof t!="number"||!Number.isFinite(t)||t<0)throw R(g,{code:"value-type-invalid",params:{kind:"px",value:t}})})}}let i=[...Object.entries(n.fonts??{}).map(([l,s])=>[`fonts.${l}`,s]),...Object.entries(n.semantic??{}).map(([l,s])=>[`semantic.${l}`,s]),["focusRing",n.focusRing],["contrastThreshold",n.contrastThreshold],["spotlight.light",n.spotlight?.light],["spotlight.dark",n.spotlight?.dark],...["light","dark"].flatMap(l=>["bg","border","shadowRgb"].map(s=>[`material.${l}.${s}`,n.material?.[l]?.[s]]))];for(let[l,s]of i)s!==void 0&&r(()=>Yt(`${a}.${l}`,s))}function Dr(e,n,o,r,a,i={components:"",utilities:""}){let l=[],s=(f,S)=>he(l,f,S);s(()=>{if(e.scope!==void 0&&e.scope!=="ts")throw R("scope",{code:"scope-invalid",params:{value:e.scope}});if(e.darkMode!==void 0&&e.darkMode!=="class"&&e.darkMode!=="media")throw R("darkMode",{code:"dark-mode-invalid",params:{value:e.darkMode}})}),s(()=>{if(e.out!==void 0&&(typeof e.out!="string"||e.out.trim()===""))throw R("out",{code:"out-invalid",params:{value:e.out}})}),s(()=>{if(e.iconsHtmlDirs!==void 0)throw R("iconsHtmlDirs",{code:"icons-html-dirs-removed",params:{}})}),(e.fontFaces??[]).forEach((f,S)=>{s(()=>{if(!(f.styles===void 0||Array.isArray(f.styles)&&f.styles.length>0&&f.styles.every(V=>V==="normal"||V==="italic")))throw R(`fontFaces[${S}].styles`,{code:"font-styles-invalid",params:{value:f.styles}})})});for(let[f,S]of Object.entries(e.themes))s(()=>{let M=S.colors?.brand;if(typeof M!="string"||M.trim()==="")throw R(`themes.${f}.colors.brand`,{code:"brand-required",params:{}})}),s(()=>{if(Object.hasOwn(S.colors??{},"primary"))throw R(`themes.${f}.colors.primary`,{code:"primary-in-colors",params:{}})}),s(()=>{let M=Ze(S);if(M!==void 0&&(typeof M!="string"||M.trim()===""))throw R(`themes.${f}.primary`,{code:"primary-invalid",params:{}})});let c=kl(e.extend,s),d=e.utilities??{},p={sizing:{...N.sizing,...Object.fromEntries((Array.isArray(c.sizing)?c.sizing:[]).filter(f=>typeof f=="number").map(f=>[String(f),f]))},screens:{...N.screens,...c.screens??{}},radius:{...N.radius,...c.radius??{}},gaps:{...N.gaps,...c.spacing?.gaps??{}},spaces:{...N.spaces,...c.spacing?.spaces??{}},fontSizes:{...N.fontSizes,...c.fontSizes??{}},lineHeights:{...N.lineHeights,...c.lineHeights??{}},letterSpacing:{...N.letterSpacing,...c.letterSpacing??{}},fontWeights:{...N.fontWeights,...c.fontWeights??{}},borderWidths:{...N.borderWidths,...c.borderWidths??{}},blurs:{...N.blurs,...c.blurs??{}},opacities:{...N.opacities,...c.opacities??{}},shadows:{...N.shadows,...c.shadows??{}},durations:{...N.durations,...c.motion?.durations??{}},easings:{...N.easings,...c.motion?.easings??{}}},m,t=()=>{if(!m){let f=ie(n,o),S=nt(qt(f,r)).map(H=>H.name),M=nt(Ct()).map(H=>H.name),V=[...nt(Ct()+i.utilities),...nt(Bt(n,o)+i.components)].map(H=>H.name);m={atomic:S,utilidades:M,resto:V,nombres:new Set([...S,...V,...yt([...S,...V]).values()]),vocabulary:f}}return m},g,h=()=>{if(!g){let{vocabulary:f}=t(),S=nt(qt(f,r,p)).map(V=>V.name),M=[...nt(Ct(p)+i.utilities),...nt(Bt(n,o,p)+i.components)].map(V=>V.name);g=new Set([...S,...M,...yt([...S,...M]).values()])}return g},b=new Map(Object.entries(N.screens).map(([f,S])=>[parseFloat(S),f]));for(let[f,S]of Object.entries(c.screens??{}))s(()=>{let M=`extend.screens.${f}`;if(Object.hasOwn(N.screens,f))throw R(M,{code:"screen-exists",params:{name:f}});if(!xl.test(f))throw R(M,{code:"screen-name-invalid",params:{}});if(typeof S!="string"||!Sr.test(S))throw R(M,{code:"screen-value-invalid",params:{value:`${S}`}});let V=parseFloat(S),H=b.get(V);if(H!==void 0)throw R(M,{code:"screen-repeated",params:{value:S,other:H}});b.set(V,f);let D=Object.values(N.screens).map(parseFloat),[,_,X]=/^(\d)?(xs|xl)$/.exec(f),Z=Number(_??1);if(X==="xs"&&V>=Math.min(...D))throw R(M,{code:"screen-below-min",params:{name:f,px:Math.min(...D)}});if(X==="xl"&&V<=Math.max(...D))throw R(M,{code:"screen-above-max",params:{name:f,px:Math.max(...D)}});for(let[zt,Nt]of Object.entries(c.screens??{})){if(zt===f)break;let Ot=/^(\d)?(xs|xl)$/.exec(zt);if(!Ot||Ot[2]!==X||!Sr.test(Nt))continue;let Qt=Number(Ot[1]??1),te=parseFloat(Nt),ee=X==="xl"?Z>Qt:Z<Qt;if(ee?V<=te:V>=te)throw R(M,{code:"screen-order",params:{name:f,value:S,greater:ee,other:zt,otherValue:Nt}})}},()=>{delete p.screens[f]});let C=[{ruta:"extend.radius",clave:"radius",temaRuta:"radius",propios:c.radius},{ruta:"extend.spacing.gaps",clave:"gaps",temaRuta:"spacing.gaps",propios:c.spacing?.gaps},{ruta:"extend.spacing.spaces",clave:"spaces",temaRuta:"spacing.spaces",propios:c.spacing?.spaces},{ruta:"extend.fontSizes",clave:"fontSizes",temaRuta:"fontSizes",propios:c.fontSizes,numerico:Be},{ruta:"extend.lineHeights",clave:"lineHeights",temaRuta:"lineHeights",propios:c.lineHeights,numerico:Be},{ruta:"extend.letterSpacing",clave:"letterSpacing",temaRuta:"letterSpacing",propios:c.letterSpacing},{ruta:"extend.fontWeights",clave:"fontWeights",temaRuta:"fontWeights",propios:c.fontWeights,tipo:"font-weight"},{ruta:"extend.borderWidths",clave:"borderWidths",temaRuta:"borderWidths",propios:c.borderWidths,numerico:Be},{ruta:"extend.blurs",clave:"blurs",temaRuta:"blurs",propios:c.blurs},{ruta:"extend.opacities",clave:"opacities",temaRuta:"opacities",propios:c.opacities,numerico:vl,tipo:"opacity"},{ruta:"extend.shadows",clave:"shadows",temaRuta:"shadows",propios:c.shadows},{ruta:"extend.motion.durations",clave:"durations",temaRuta:"motion.durations",propios:c.motion?.durations,tipo:"duration"},{ruta:"extend.motion.easings",clave:"easings",temaRuta:"motion.easings",propios:c.motion?.easings}],$=new Map,E=(f,S)=>{let{atomic:M,utilidades:V,nombres:H,vocabulary:D}=t(),_=zr([...M,...V]),X=zr([...nt(qt(D,r,S)),...nt(Ct(S))].map(Z=>Z.name));for(let[Z,zt]of X){if(zt<=(_.get(Z)??0))continue;if(H.has(Z))throw R(f,{code:"class-exists",params:{class:Z}});let Nt=$.get(Z);if(Nt!==void 0)throw R(f,{code:"class-duplicated",params:{class:Z,other:Nt}});$.set(Z,f);let Ot=$t(Z)?.nuevo;if(Ot&&H.has(Ot))throw R(f,{code:"class-renamed-exists",params:{class:Z,renamed:Ot}})}};for(let{ruta:f,clave:S,temaRuta:M,propios:V,numerico:H,tipo:D}of C)for(let[_,X]of Object.entries(V??{}))s(()=>{let Z=`${f}.${_}`;if(Object.hasOwn(N[S],_))throw R(Z,{code:"scale-exists",params:{name:_,themePath:M}});if(H){if(!H.regex.test(_))throw R(Z,{code:"scale-name-numeric",params:{range:H.rango}})}else if(!xs.test(_))throw R(Z,{code:"scale-name-invalid",params:{}});if(S==="spaces"&&_.startsWith("neg-"))throw R(Z,{code:"space-neg-prefix",params:{}});if(S==="spaces"&&_.endsWith("-negative"))throw R(Z,{code:"space-negative-suffix",params:{}});if(Yt(Z,X),D&&!Or[D](X.trim()))throw R(Z,{code:"value-type-invalid",params:{kind:D,value:X}});if(S==="fontSizes"&&!Object.hasOwn(N.lineHeights,_)&&!Object.hasOwn(c.lineHeights??{},_))throw R(Z,{code:"font-size-needs-line-height",params:{name:_}});E(Z,{...N,[S]:{...N[S],[_]:X}})},()=>{delete p[S][_]});let u=new Set;(Array.isArray(c.sizing)?c.sizing:[]).forEach((f,S)=>{s(()=>{let M=`extend.sizing[${S}]`;if(typeof f!="number"||!Number.isInteger(f))throw R(M,{code:"value-type-invalid",params:{kind:"integer",value:f}});if(!Be.regex.test(String(f)))throw R(M,{code:"scale-name-numeric",params:{range:Be.rango}});if(Object.hasOwn(N.sizing,String(f)))throw R(M,{code:"sizing-exists",params:{level:f,repeated:!1}});if(u.has(f))throw R(M,{code:"sizing-exists",params:{level:f,repeated:!0}});u.add(f),E(M,{...N,sizing:{...N.sizing,[String(f)]:f}})},()=>{Object.hasOwn(N.sizing,String(f))||delete p.sizing[String(f)]})});let y=(f,S)=>[...Object.keys(f),...Object.keys(S??{})],w=[{ruta:"radius",de:f=>f.radius,nombres:y(N.radius,c.radius),extendRuta:"extend.radius"},{ruta:"spacing.gaps",de:f=>f.spacing?.gaps,nombres:y(N.gaps,c.spacing?.gaps),extendRuta:"extend.spacing.gaps"},{ruta:"spacing.spaces",de:f=>f.spacing?.spaces,nombres:y(N.spaces,c.spacing?.spaces),extendRuta:"extend.spacing.spaces"},{ruta:"screens",de:f=>f.screens,nombres:y(N.screens,c.screens),extendRuta:"extend.screens"},{ruta:"fontSizes",de:f=>f.fontSizes,nombres:y(N.fontSizes,c.fontSizes),extendRuta:"extend.fontSizes"},{ruta:"lineHeights",de:f=>f.lineHeights,nombres:y(N.lineHeights,c.lineHeights),extendRuta:"extend.lineHeights"},{ruta:"letterSpacing",de:f=>f.letterSpacing,nombres:y(N.letterSpacing,c.letterSpacing),extendRuta:"extend.letterSpacing"},{ruta:"fontWeights",de:f=>f.fontWeights,nombres:y(N.fontWeights,c.fontWeights),extendRuta:"extend.fontWeights",tipo:"font-weight"},{ruta:"borderWidths",de:f=>f.borderWidths,nombres:y(Qe,c.borderWidths),extendRuta:"extend.borderWidths"},{ruta:"blurs",de:f=>f.blurs,nombres:y(tn,c.blurs),extendRuta:"extend.blurs"},{ruta:"zIndex",de:f=>f.zIndex,nombres:y(Te),tipo:"integer"},{ruta:"opacities",de:f=>f.opacities,nombres:y(en,c.opacities),extendRuta:"extend.opacities",tipo:"opacity"},{ruta:"shadows",de:f=>f.shadows,nombres:y(nn,c.shadows),extendRuta:"extend.shadows"},{ruta:"motion.durations",de:f=>f.motion?.durations,nombres:y(Se,c.motion?.durations),extendRuta:"extend.motion.durations",tipo:"duration"},{ruta:"motion.loops",de:f=>f.motion?.loops,nombres:y(ze)},{ruta:"motion.iterations",de:f=>f.motion?.iterations,nombres:y(je),tipo:"iterations"},{ruta:"motion.easings",de:f=>f.motion?.easings,nombres:y(Re,c.motion?.easings),extendRuta:"extend.motion.easings"}];for(let[f,S]of Object.entries(e.themes))Sl(f,S,w,s);let q=Object.keys(d),O=f=>f.includes("."),B=q.filter(f=>!O(f)),K=new Set,lt,k=()=>lt??=new Set([...h()].filter(f=>!$t(f.replaceAll("\\",""))).map(f=>f.slice(3))),A=kt(p.screens),P,G=()=>P??=(()=>{let f=qt(t().vocabulary,r,p),S=Ct(p)+i.utilities,M=Bt(n,o,p)+i.components,V=[f,S,M].flatMap(H=>nt(H).map(D=>D.name));return vs(a,f,S,yt(V))})(),x=(f,S)=>{if(!Array.isArray(S)||S.length===0)throw R(f,{code:"utility-empty",params:{}});for(let M of S){if(typeof M!="string")throw R(f,{code:"utility-not-a-class",params:{value:M}});let{cadena:V,base:H}=Oe(M);if(O(H))throw R(f,{code:"utility-composes-modifier",params:{class:M,utility:H.split(".")[0],modifiers:H.split(".").slice(1)}});if(V.length){let D=Tt(V,A);if(!D.ok){if(D.motivo==="desconocido"){let _=dt(D.prefijo,A.keys());throw R(f,{code:"utility-unknown-prefix",params:{class:M,prefix:D.prefijo,..._&&{suggestion:_}}})}throw D.motivo==="data-ts"?R(f,{code:"utility-data-ts-variant",params:{class:M}}):D.canonica?R(f,{code:"utility-out-of-order",params:{class:M,suggestion:D.canonica.join("")+H}}):R(f,{code:"utility-invalid-chain",params:{class:M}})}if(G().esComponente(H)&&!B.includes(H))throw R(f,{code:"utility-variant-on-component",params:{class:M,base:H}})}if(!k().has(H)&&!B.includes(H)){let D=H.startsWith("ts-")?H.slice(3):$t(`ts-${H}`)?.nuevo?.slice(3),_=D!==void 0&&k().has(D)?D:dt(H,[...k(),...B]);throw R(f,{code:"utility-unknown-class",params:{class:M,..._&&{suggestion:_}}})}}},F=(f,S)=>{if(!kr.test(S))throw R(f,{code:"modifier-invalid",params:{modifier:S}});if(S.startsWith(xn))throw R(f,{code:"modifier-reserved-prefix",params:{modifier:S,prefix:xn}});if(S==="ts"||fe.includes(S))throw R(f,{code:"modifier-theme-class",params:{modifier:S}});if(k().has(S))throw R(f,{code:"modifier-short-name",params:{modifier:S}});if(B.includes(S))throw R(f,{code:"modifier-is-utility",params:{modifier:S}})},j=new Map;for(let f of q)s(()=>{let S=`utilities.${f}`;if(O(f)){let[M,...V]=f.split(".");if(!B.includes(M))throw R(S,{code:"component-missing",params:{component:M}});for(let _ of V)F(S,_);if(new Set(V).size!==V.length)throw R(S,{code:"modifier-repeated",params:{}});let H=`${M}.${[...V].sort().join(".")}`,D=j.get(H);if(D!==void 0)throw R(S,{code:"combination-repeated",params:{other:D}});j.set(H,f),x(S,d[f]);return}if(!kr.test(f))throw R(S,{code:"utility-name-invalid",params:{}});if(f.startsWith(xn))throw R(S,{code:"utility-reserved-prefix",params:{prefix:xn}});if(Ue(f)||fe.includes(f))throw R(S,{code:"utility-name-is-modifier",params:{}});if(t().nombres.has(f))throw R(S,{code:"utility-conflicts-ds",params:{}});if(f==="ts")throw R(S,{code:"utility-name-ts",params:{}});if(k().has(f))throw R(S,{code:"utility-short-name",params:{}});x(S,d[f])},()=>{K.add(f)});let T=new Set,I=new Set,tt=(f,S)=>{if(S.includes(f)){let M=[...S,f].slice(S.indexOf(f));s(()=>{throw R(`utilities.${S[0]}`,{code:"utility-cycle",params:{cycle:M}})});for(let V of M)T.add(V),I.add(V);return}if(!(T.has(f)||K.has(f))){for(let M of d[f])Object.hasOwn(d,M)&&!O(M)&&tt(M,[...S,f]);T.add(f)}};for(let f of B)tt(f,[]);let st=f=>!K.has(f)&&!I.has(f);for(let f of q)st(f)&&s(()=>{for(let S of d[f]){let{cadena:M,base:V}=Oe(S);if(!M.length||O(V)||!Object.hasOwn(d,V)||!st(V))continue;let H=le(V,d),D=de(M,H,A).find(X=>!X.ok);if(D&&!D.ok)throw R(`utilities.${f}`,{code:"utility-invalid-composition",params:dn(S,V,M,D)});let _=H.find(X=>X.cadena.length===0&&G().esComponente(X.base)&&!B.includes(X.base));if(_)throw R(`utilities.${f}`,{code:"utility-composes-component",params:{class:S,utility:V,component:_.base}})}});return He(l),{userScales:p,userUtilities:d}}function zl(e){return e}var Mr=()=>({userColors:{brand:"#4F46E5"},userStates:ws,userGridMins:ks}),$s=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,jl=new Set(["__proto__","constructor","prototype","tostring"]),$n=e=>jl.has(e.toLowerCase());function Pr(e){let n=ie(e.userColors,e.userStates),o=t=>nt(t).map(g=>g.name.replaceAll("\\","")),r=[...o(qt(n,e.userGridMins,N)),...o(Ct())],a=o(Bt(e.userColors,e.userStates,N)),i=new Set([...r,...yt(r).values()]),l=new Set([...i,...a,...yt(a).values()]),s={name:"x",group:"root",def:{colors:{...Mr().userColors,...e.userColors}}},c=Pe(Me(s,{},e.userStates)),d=new Set([...c.matchAll(/^\s*(--[\w-]+):/gm)].map(t=>t[1])),p=t=>t.split("-")[0],m=new Set([...[...l].map(t=>p(t.slice(3))),...We,...fe,...[...d].map(t=>p(t.startsWith("--ts-")?t.slice(5):t.slice(2)))]);return{emitidos:l,aplicables:i,slugs:new Set(Object.keys(Ae.componentes)),variables:d,reservadas:m}}var Ht=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Ar=(e,n)=>We.includes(e)||n.reservadas.has(e)||[...n.slugs].some(o=>o===e||o.replaceAll("-","")===e)||[...n.emitidos].some(o=>o===`ts-${e}`||o.startsWith(`ts-${e}-`));function Ir(e){return e.flatMap(n=>n.t==="apply"?n.destinos:n.t==="decl"?[]:Ir(n.hijos))}function Nr(e){return e.flatMap(n=>n.t==="decl"?[{prop:n.prop,valor:n.valor}]:n.t==="apply"?[]:Nr(n.hijos))}var qr=2**30;function _r(e,n,o,r,a=new Set){let i=[],l={root:[],slug:[],block:[],utility:[],variable:[]},s=(k,A)=>{i.push({path:k,...A})},c=(k,A)=>s(k,{code:"ext-shape",params:{expected:A}}),d=`extensions[${JSON.stringify(n)}]`;if(!Ht(e))return c(d,"object"),{errores:i,nombres:l,raices:[]};e.components!==void 0&&!Ht(e.components)&&c(`${d}.components`,"object"),e.utilities!==void 0&&typeof e.utilities!="string"&&c(`${d}.utilities`,"string");let p=Array.isArray(e.roots)&&e.roots.every(k=>typeof k=="string")?e.roots:void 0;e.roots!==void 0&&p===void 0&&c(`${d}.roots`,"string[]");let m=Ht(e.components)?Object.entries(e.components):[];m.length>J.componentes&&(s(`${d}.components`,{code:"ext-limit",params:{what:"components",max:J.componentes}}),m=[]);let t=new Map,g=new Map;for(let[k,A]of m){let P=`${d}.components.${k}`;if(!$s.test(k)||$n(k)?s(P,{code:"ext-name-invalid",params:{kind:"slug",name:k}}):o.slugs.has(k)?s(P,{code:"ext-conflicts-core",params:{kind:"slug",name:k}}):l.slug.push(k),!Ht(A)){c(P,"object");continue}if(!Array.isArray(A.roots)||A.roots.some(x=>typeof x!="string")){c(`${P}.roots`,"string[]");continue}if(A.roots.length===0&&s(`${P}.roots`,{code:"ext-roots-empty",params:{}}),A.roots.length>J.raices){s(`${P}.roots`,{code:"ext-limit",params:{what:"roots",max:J.raices}});continue}let G=[];for(let x of A.roots){if(!$s.test(x)||$n(x)){s(`${P}.roots`,{code:"ext-name-invalid",params:{kind:"root",name:x}});continue}let F=t.get(x);if(F!==void 0){s(`${P}.roots`,{code:"ext-root-repeated",params:{root:x,other:F}});continue}t.set(x,k),G.push(x),l.root.push(x),Ar(x,o)&&s(`${P}.roots`,{code:"ext-conflicts-core",params:{kind:"root",name:x}})}g.set(k,G)}if(p!==void 0)if(p.length>J.raices)s(`${d}.roots`,{code:"ext-limit",params:{what:"roots",max:J.raices}});else{let k=[...t.keys()],A=(P,G)=>P===G||P.startsWith(`${G}-`)||G.startsWith(`${P}-`);for(let P of p){if(!$s.test(P)||$n(P)){s(`${d}.roots`,{code:"ext-name-invalid",params:{kind:"root",name:P}});continue}let G=t.get(P);if(G!==void 0){s(`${d}.roots`,{code:"ext-root-repeated",params:{root:P,other:G}});continue}t.set(P,""),l.root.push(P),Ar(P,o)&&s(`${d}.roots`,{code:"ext-conflicts-core",params:{kind:"root",name:P}});for(let x of k)A(P,x)&&s(`${d}.roots`,{code:"ext-roots-overlap",params:{root:P,other:x,package:n,otherPackage:n}})}}let h=[...t.keys()],b=k=>{let A;for(let P of h)(k===`ts-${P}`||k.startsWith(`ts-${P}-`))&&(A===void 0||P.length>A.length)&&(A=P);return A===void 0?void 0:t.get(A)},C=new Set;for(let[k,A]of m){if(!Ht(A)||A.tokens===void 0)continue;let P=`${d}.components.${k}.tokens`;if(!Ht(A.tokens)){c(P,"object");continue}let G=Object.entries(A.tokens);if(G.length>J.tokens){s(P,{code:"ext-limit",params:{what:"tokens",max:J.tokens}});continue}let x=g.get(k)?.[0];for(let[F,j]of G){let T=`${P}.${F}`;if(F.length>J.clave){s(T.slice(0,120),{code:"ext-limit",params:{what:"key-length",max:J.clave}});continue}if(!xs.test(F)||$n(F)){s(T,{code:"ext-name-invalid",params:{kind:"token",name:F}});continue}let I=x===void 0?void 0:`--ts-${x}-${F}`;if(typeof j=="string"&&j.length>J.valor)s(T,{code:"ext-limit",params:{what:"value-length",max:J.valor}});else{let tt=!0;if(he(i,()=>Yt(T,j),()=>{tt=!1}),tt&&typeof j=="string")for(let st of So(j,I??F))s(T,st)}I!==void 0&&(l.variable.push(I),o.variables.has(I)&&s(T,{code:"ext-conflicts-core",params:{kind:"variable",name:I}}),C.has(I)&&s(T,{code:"ext-variable-repeated",params:{variable:I}}),C.add(I))}}i.push(...ln(r)),r.reduce((k,A)=>k+A.parse.bloques.length,0)>J.bloques&&s(d,{code:"ext-limit",params:{what:"blocks",max:J.bloques}});let E=new Set,u=new Map,y=new Map;for(let k of r)for(let A of k.parse.bloques)u.has(A.name)||(u.set(A.name,k.slug??""),y.set(A.name,A.nodos));let w=new Map;for(let k of r){let A=k.slug,P=A===void 0?void 0:g.get(A)??[];for(let{name:x,nodos:F}of k.parse.bloques){E.has(x)&&s(k.ruta,{code:"ext-block-repeated",params:{block:x}}),E.add(x),(o.emitidos.has(x)||$t(x))&&s(k.ruta,{code:"ext-conflicts-core",params:{kind:A===void 0?"utility":"block",name:x}}),l[A===void 0?"utility":"block"].push(x),A!==void 0?b(x)!==A&&s(k.ruta,{code:"ext-block-not-owned",params:{block:x,roots:P??[]}}):b(x)===void 0&&s(k.ruta,{code:"ext-utility-no-root",params:{block:x}});for(let{prop:j,valor:T}of Nr(F)){let I=`${j}: ${T.replace(/"[^"]*"|'[^']*'/g,st=>st[0]+st[0])}`,tt=yo(I);tt&&s(k.ruta,{code:"ext-color-literal",params:{block:x,value:tt.value,kind:tt.kind}});for(let st of new Set(vo(I))){if(o.variables.has(st)||h.some(S=>st===`--ts-${S}`||st.startsWith(`--ts-${S}-`)))continue;let f=dt(st,o.variables);s(k.ruta,{code:"ext-var-not-public",params:{block:x,variable:st,...f&&{suggestion:f}}})}}w.set(x,Ir(F))}let G=wr(k.parse.bloques.map(x=>x.css).join(""),[...We,...h]);for(let x of G)s(k.ruta,{code:"ext-modifier-loose",params:{block:x.utility,selector:x.selector,motive:x.motivo}})}for(let[k,A]of m)Ht(A)&&A.css!==void 0&&typeof A.css!="string"&&c(`${d}.components.${k}.css`,"string");let q=new Map;for(let k of r)for(let A of k.parse.bloques)q.has(A.name)||q.set(A.name,k.ruta);let O=new Map;for(let[k,A]of w){let P=q.get(k),G=u.get(k);for(let x of new Set(A)){if(o.aplicables.has(x))continue;let F=u.get(x);if(F!==void 0&&F===G){O.set(k,[...O.get(k)??[],x]);continue}let j=F!==void 0||a.has(x)?"other-component":o.emitidos.has(x)?"core-component":"unknown",T=j==="unknown"?dt(x,o.aplicables):void 0;s(P,{code:"ext-apply-target",params:{block:k,target:x,reason:j,...T&&{suggestion:T}}})}}let B=new Map,K=!1,lt=k=>{B.set(k,1);for(let A of O.get(k)??[])B.get(A)===1?(K=!0,s(q.get(k),{code:"ext-apply-target",params:{block:k,target:A,reason:"cycle"}})):B.has(A)||lt(A);B.set(k,2)};for(let k of O.keys())B.has(k)||lt(k);if(!K){let k=new Map,A=new Map,P=new Map;for(let F of r)for(let j of F.parse.bloques)P.has(j.name)||P.set(j.name,j.css.length);let G=F=>{let j=k.get(F);if(j!==void 0)return{d:j,t:A.get(F)};let T=0,I=P.get(F)??0;for(let tt of new Set(O.get(F)??[])){let st=G(tt);T=Math.max(T,st.d+1),I=Math.min(qr,I+st.t*w.get(F).filter(f=>f===tt).length)}return k.set(F,T),A.set(F,I),{d:T,t:I}},x=0;for(let F of w.keys()){let{d:j,t:T}=G(F);x=Math.min(qr,x+T),j>J.profundidadApply?s(q.get(F),{code:"ext-apply-budget",params:{block:F,limit:"depth",max:J.profundidadApply}}):T>J.expansionBloque&&s(q.get(F),{code:"ext-apply-budget",params:{block:F,limit:"block-size",max:J.expansionBloque}})}x>J.expansionTotal&&s(d,{code:"ext-apply-budget",params:{block:n,limit:"total-size",max:J.expansionTotal}})}return{errores:i,nombres:l,raices:h}}function Rl(e,n,o=Mr()){return _r(e,n,Pr(o),Ce(e,n)).errores}function Lr(e,n,o){let r=qe(e),a=Object.values(n.themes).some(g=>g.components!==void 0);if(r.length===0&&!a)return[];let i=[],l=r.length?Pr(o):void 0,s=r.map(([g,h])=>Ce(h,g)),c=s.map(g=>new Set(g.flatMap(h=>h.parse.bloques.map(b=>b.name)))),d=new Map,p=new Map,m=new Map;r.forEach(([g,h],b)=>{let C=new Set(c.filter((u,y)=>y!==b).flatMap(u=>[...u])),$=_r(h,g,l,s[b],C);i.push(...$.errores);for(let u of Object.keys($.nombres))for(let y of $.nombres[u]){let w=`${u==="utility"?"block":u}:${y}`,q=d.get(w);q!==void 0&&q!==g?i.push({path:`extensions[${JSON.stringify(g)}]`,code:"ext-conflicts-extension",params:{kind:u,name:y,package:g,other:q}}):d.set(w,g)}let E=`extensions[${JSON.stringify(g)}]`;for(let u of $.raices){let y=u.split("-");for(let q=1;q<y.length;q++){let O=y.slice(0,q).join("-"),B=p.get(O);B!==void 0&&B!==g&&i.push({path:E,code:"ext-roots-overlap",params:{root:u,other:O,package:g,otherPackage:B}})}let w=m.get(u);w!==void 0&&w.paquete!==g&&i.push({path:E,code:"ext-roots-overlap",params:{root:u,other:w.raiz,package:g,otherPackage:w.paquete}})}for(let u of $.raices){p.has(u)||p.set(u,g);let y=u.split("-");for(let w=1;w<y.length;w++){let q=y.slice(0,w).join("-");m.has(q)||m.set(q,{raiz:u,paquete:g})}}});let t=new Map;for(let[,g]of r)for(let[h,b]of Object.entries(g.components??{}))t.set(h,new Set(Object.keys(Ht(b?.tokens)?b.tokens:{})));for(let[g,h]of Object.entries(n.themes))for(let[b,C]of Object.entries(h.components??{})){let $=`themes.${g}.components.${b}`,E=t.get(b);if(!E){let u=dt(b,t.keys());i.push({path:$,code:"theme-component-unknown",params:{slug:b,...u&&{suggestion:u}}});continue}for(let[u,y]of Object.entries(C))if(E.has(u))he(i,()=>Yt(`${$}.${u}`,y));else{let w=dt(u,E);i.push({path:`${$}.${u}`,code:"theme-component-token-unknown",params:{slug:b,key:u,...w&&{suggestion:w}}})}}return i}var ws={success:"#16A34A",warning:"#D97706",info:"#2563EB",danger:"#D42424"},ks={"2xs":"160px",xs:"200px",sm:"240px",md:"280px",lg:"340px",xl:"400px"};function Fr(e){let n=e.lastIndexOf("/");return n===-1?{name:e,group:"root"}:{name:e.slice(n+1),group:e.slice(0,n)}}function be(e,n={}){let o=Object.entries(e.themes).map(([t,g])=>{let{name:h,group:b}=Fr(t);return{name:h,group:b,def:g}}),r=Object.fromEntries(o.flatMap(t=>Object.entries(t.def.colors??{}))),a={...e.defaultStates};for(let[t,g]of Object.entries(ws))Object.hasOwn(a,t)||(a[t]=g);let i=a,l={...e.fonts??{}},s=e.gridMins??ks,c=Lr(n,e,{userColors:r,userStates:i,userGridMins:s});He(c);let{userScales:d,userUtilities:p}=Dr(e,r,i,s,pn(n),pe(n)),m=o.some(t=>!t.def.locked&&Object.values(t.def.density??{}).some(g=>g&&Object.keys(g).length>0));return{themeEntries:o,userColors:r,defaultStates:a,userStates:i,userFonts:l,userGridMins:s,userScales:d,userUtilities:p,themeChangesDensity:m}}function El(e,n){let o=e.lastIndexOf("<",n);for(let r=0;o>=0&&r<50;r++,o=o>0?e.lastIndexOf("<",o-1):-1){let a=/^<([A-Za-z][\w.:-]*)/.exec(e.slice(o,o+80));if(!a||/[A-Za-z0-9_$)\]]/.test(e[o-1]??""))continue;let i=0,l="";for(let s=o+a[0].length;s<e.length;s++){let c=e[s];if(l)c==="\\"?s++:c===l&&(l="");else if(c==='"'||c==="'"||c==="`"&&i>0)l=c;else if(c==="{")i++;else if(c==="}")i--;else if(c===">"&&i<=0)return s<n?null:{nombre:a[1],desde:o,hasta:s+1}}return{nombre:a[1],desde:o,hasta:e.length}}return null}var Tl=e=>/^[A-Z]/.test(e);function Vr(e,n){let o=n instanceof Set?n:new Set(n),r=[];for(let a of e.matchAll(/class="([^"]*)"/g)){let i=a[1].split(/\s+/).filter(Boolean),l=e.slice(0,a.index).split(`
3239
3239
  `).length,s=El(e,a.index);if(!(s&&Tl(s.nombre))){if(i.includes("ts")){for(let c of i){let[,d="",p]=/^(@?[a-z0-9]+:)?(.*)$/.exec(c);p.startsWith("ts-")&&r.push({clase:c,l\u00EDnea:l,sugerencia:`en scope no lleva \`ts-\`: \`${d}${p.slice(3)}\``})}continue}for(let c of i){let d=c.replace(/^@?[a-z0-9]+:/,"");o.has(d)&&r.push({clase:c,l\u00EDnea:l})}}}return r}function Ur(e,n){let o={planas:[],variantes:[],componentes:[]};if(e===void 0)return o;if(!Array.isArray(e))throw R("safelist",{code:"safelist-not-list",params:{}});let r=[...n.vocabulario,...n.tonos??[]],a=new Set(r),i=[];return e.forEach((l,s)=>{he(i,()=>{let c=`safelist[${s}]`;if(typeof l!="string"||l.trim()==="")throw R(c,{code:"safelist-entry-empty",params:{}});let[,d,p]=/^((?:@?[a-z0-9][a-z0-9-]*(?:\/[a-z][a-z0-9-]*)?:)*)(.*)$/.exec(l),m=`${c} (${JSON.stringify(l)})`;if(d){let g=Tt(d.match(/[^:]+:/g),n.prefijos);if(!g.ok&&g.motivo==="desconocido"){let h=dt(g.prefijo,n.prefijos.keys());throw R(m,{code:"safelist-unknown-prefix",params:{prefix:g.prefijo,...h&&{suggestion:h}}})}if(!g.ok&&g.motivo==="data-ts")throw R(m,{code:"safelist-data-ts",params:{prefix:g.prefijo}});if(!g.ok&&g.canonica)throw R(m,{code:"safelist-out-of-order",params:{suggestion:g.canonica.join("")+p}});if(!g.ok)throw R(m,{code:"safelist-invalid-chain",params:{}})}if(p.includes(":"))throw R(m,{code:"safelist-misplaced-colon",params:{}});if(p.startsWith("ts-")){let{sugerencia:g}=Vr(`class="ts ${l}"`,[])[0]??{},h=g?.slice(g.lastIndexOf(": `")+3,-1);throw R(m,{code:"safelist-legacy-prefix",params:h!==void 0?{suggestion:h}:{}})}let t=p.indexOf("*");if(t!==-1){if(t!==p.length-1)throw R(m,{code:"safelist-star-not-last",params:{}});let g=p.slice(0,-1),h=g?r.filter(b=>b.startsWith(g)):[];if(h.length===0){let b=new Set(r.flatMap($=>[...$.matchAll(/-/g)].map(E=>`${$.slice(0,E.index+1)}*`))),C=dt(p,b);throw R(m,{code:"safelist-family-empty",params:C?{suggestion:C}:{}})}(d?o.variantes:o.planas).push(...h.map(b=>d+b));return}if(d&&n.componentes.includes(p))throw R(m,{code:"safelist-component-variant",params:{}});if(n.modificadores?.has(p)&&!a.has(p)){if(d)throw R(m,{code:"safelist-modifier-variant",params:{}});o.planas.push(l)}else if(a.has(p))(d?o.variantes:o.planas).push(l);else if(n.componentes.includes(p))o.componentes.push(p);else{let g=[...r,...n.componentes].map(b=>d+b),h=dt(l,g);throw R(m,{code:"safelist-unknown",params:h?{suggestion:h}:{}})}})}),He(i),o}var zs="Copyright (c) 2026 Pablo Di Filippo. Licencia MIT (ver LICENSE).";function js(e,n=be(e),o={}){let r=pn(o),a=pe(o),{userColors:i,userStates:l,userGridMins:s,userScales:c,userUtilities:d,themeChangesDensity:p}=n,m=ie(i,l),t=co(e.darkMode,c),g=qt(m,s,c),h=Ct(c)+a.utilities,b=Bt(i,l,c,p)+a.components,C=yt([g,h,b].flatMap(x=>nt(x).map(F=>F.name))),$=[g,h,b].flatMap(x=>nt(x).map(F=>F.name.replaceAll("\\",""))),E=new Set;for(let x of $)$t(x)||E.add(x);for(let x of C.values())E.add(x);let u=kt(c.screens),y=Object.keys(d).filter(x=>!Ut(x)),w=Co(d),q=x=>E.has(`ts-${x}`)||Object.hasOwn(d,x)&&!Ut(x),{atomicas:O,componentes:B,esComponente:K}=vs(r,g,h,C),lt=x=>!Object.hasOwn(d,x)&&K(x),k=[...E].map(x=>x.slice(3)),A=[...k,...y],P=cn(d),G=[...new Set([...b.matchAll(/^ {2}&\.(variant-[A-Za-z0-9-]+?-\d+) \{$/gm)].map(x=>x[1]))];return{manifiesto:r,userScales:c,tonos:G,userUtilities:d,cadenasPropias:P,modificadoresPropios:w,reset:t,atomic:g,utilities:h,components:b,alias:C,prefijos:u,esUtilidad:q,atomicas:O,componentes:B,esComponente:lt,nombresCortos:k,vocabulario:A}}function Br(e){let n=Wr.get(e);if(!n){let o=i=>dt(i,e.prefijos.keys()),r=Object.keys(e.manifiesto.componentes).sort((i,l)=>l.length-i.length),a=new Map;for(let[i,l]of Object.entries(e.manifiesto.componentes))for(let s of l.bloques)for(let c of[s,(e.alias.get(`ts-${s}`)??`ts-${s}`).slice(3)])a.set(c,i);n={sugerir:o,slugsLargosPrimero:r,dueno:a},Wr.set(e,n)}return n}var Wr=new WeakMap,Ss=(e,n)=>{let o=JSON.stringify(n);e.has(o)||e.set(o,n)};function Cl(e,n,o,r){let{prefijos:a,esUtilidad:i,esComponente:l,vocabulario:s,cadenasPropias:c}=e,{sugerir:d,slugsLargosPrimero:p,dueno:m}=Br(e),t=new Set,g=new Set,h=new Map,b=$=>Ss(h,{...$,file:n}),C=new Set;for(let{variantes:$,base:E}of mr(o,r)){let u=$.join("")+E;if($.length===1&&$[0]==="class:"){g.add(E);continue}let y=Tt($,a);if(l(E)&&(y.ok||y.motivo!=="desconocido")){b({code:"variant-on-component",params:{class:u,variants:[...$],component:E}});continue}if(i(E))if(y.ok){let w=c.get(E),q=w&&de($,w,a).find(O=>!O.ok);q&&!q.ok?b({code:"invalid-composition",params:dn(u,E,$,q)}):t.add(u)}else if(y.motivo==="data-ts")b({code:"data-ts-variant",params:{class:u}});else if(y.motivo==="desconocido"){let w=d(y.prefijo);b({code:"unknown-prefix",params:{prefix:y.prefijo,class:u,...w&&{suggestion:w}}})}else y.canonica?b({code:"out-of-order",params:{class:u,suggestion:y.canonica.join("")+E}}):b({code:"invalid-chain",params:{class:u}})}for(let $ of o){if($==="markInvalid")for(let E of["input-hint","input-footer","icon","icon-14"])g.add(E);if($.startsWith("data-ts-")){let E=$.slice(8),u=p.find(y=>E===y||E.startsWith(`${y}-`));u&&C.add(u)}if($.endsWith("{")){r&&$==="variant-{"&&g.add($);let E=$.slice(0,-1).split(":").pop();s.some(u=>u.length>E.length&&u.startsWith(E))&&b({code:"runtime-class",params:{fragment:E}})}else if(r){let E=$.replace(/^[./]+|[./:]+$/g,"");E&&!E.includes(":")&&g.add(E)}}if(r)for(let $ of g){let E=m.get($);E&&C.add(E)}return{variantes:[...t],planas:[...g],warnings:[...h.values()],enteros:[...C]}}function Ol(e,n,o,r){let{prefijos:a,vocabulario:i}=e,{dueno:l}=Br(e),s=new Set,c=new Set,d=new Map;n.scope!==void 0&&Ss(d,{code:"scope-option",params:{}});let p=Ur(n.safelist,{vocabulario:i,modificadores:new Set([...e.modificadoresPropios.values()].flat()),prefijos:a,componentes:Object.keys(e.manifiesto.componentes),tonos:e.tonos});if(r){for(let g of p.variantes)s.add(g);for(let g of p.planas)c.add(g)}let m=new Set(p.componentes);for(let g of o){for(let h of g.variantes)s.add(h);for(let h of g.planas)c.add(h);for(let h of g.warnings)Ss(d,h);for(let h of g.enteros)m.add(h)}let t=new Set;if(r){for(let g of p.planas){let h=l.get(g);h&&m.add(h)}for(let g of m){let h=e.manifiesto.componentes[g];for(let b of[...h.bloques,...h.runtime])t.add(`ts-${b}`)}}return{variantes:s,planas:c,warnings:[...d.values()],forzadas:t,enteros:m}}function Hr(e){let n=[...e].sort((o,r)=>o.file<r.file?-1:o.file>r.file?1:0);for(let o=1;o<n.length;o++)if(n[o].file===n[o-1].file)throw new Error(`compile: ruta duplicada "${n[o].file}".`);return n}function Dl(e,n,o={}){let r=Hr(n);return Rs(js(e,be(e,o.extensions),o.extensions),e,r,o)}function Rs(e,n,o,r={}){let{cache:a}=r,i=r.copyright??zs,l=r.onDemand??!1,s=Hr(o),c=s.map(h=>{let b=h.hash!==void 0?a?.get(h.hash):void 0;return b||(b=gr(h.content),h.hash!==void 0&&a&&!a.has(h.hash)&&a.set(h.hash,b)),Cl(e,h.file,b,l)}),{variantes:d,planas:p,warnings:m,forzadas:t}=Ol(e,n,c,l);return{css:`/* TaishoDS \u2014 ${i} */
3240
3240
  `+fr({reset:e.reset,atomic:e.atomic,utilities:e.utilities,components:e.components,variantesUsadas:d,usadas:l?p:void 0,forzadas:t,varsDelProyecto:l?new Set(ns(s)):void 0,scales:e.userScales,userUtilities:e.userUtilities}),variants:[...d],warnings:m}}import Es from"fs";import Gr from"path";var Kr=e=>(Es.existsSync(e)?Es.readdirSync(e,{withFileTypes:!0}):[]).map(n=>({ruta:Gr.join(e,n.name),esDirectorio:n.isDirectory(),contenido:()=>Es.readFileSync(Gr.join(e,n.name),"utf8")}));import Ts from"node:fs";import kn from"node:path";import{createRequire as Xr}from"node:module";import{inflateSync as Al}from"node:zlib";var ql={" ":18,e:11.5,a:9.5,o:7.8,s:6.6,n:6.8,r:6.4,i:6.7,t:6.6,l:4.6,d:4.6,c:3.8,u:3.6,m:2.7,h:3.1,p:2.3,g:1.5,b:1.4,y:1.4,f:1.4,v:1,w:1.2,q:.5,k:.4,j:.3,x:.2,z:.3};function Ml(e){let n=new DataView(e.buffer,e.byteOffset,e.byteLength),o=String.fromCharCode(e[0],e[1],e[2],e[3]),r=new Map;if(o==="wOFF"){let i=n.getUint16(12);for(let l=0;l<i;l++){let s=44+l*20,c=String.fromCharCode(e[s],e[s+1],e[s+2],e[s+3]),d=n.getUint32(s+4),p=n.getUint32(s+8),m=n.getUint32(s+12),t=e.subarray(d,d+p),g=p<m?new Uint8Array(Al(t)):t;r.set(c,new DataView(g.buffer,g.byteOffset,g.byteLength))}return r}if(o==="wOF2")throw new Error("WOFF2 no soportado: se usa el .woff o el .ttf");let a=n.getUint16(4);for(let i=0;i<a;i++){let l=12+i*16,s=String.fromCharCode(e[l],e[l+1],e[l+2],e[l+3]);r.set(s,new DataView(e.buffer,e.byteOffset+n.getUint32(l+8),n.getUint32(l+12)))}return r}function Pl(e){let n=e.getUint16(2),o=-1;for(let c=0;c<n;c++){let d=e.getUint16(4+c*8),p=e.getUint16(6+c*8),m=e.getUint32(8+c*8);if(e.getUint16(m)===4&&(d===0||d===3&&p===1)){o=m;break}}if(o<0)throw new Error("la fuente no trae una cmap formato 4");let r=e.getUint16(o+6),a=o+14,i=a+r+2,l=i+r,s=l+r;return c=>{for(let d=0;d<r;d+=2){if(c>e.getUint16(a+d))continue;let p=e.getUint16(i+d);if(c<p)return 0;let m=e.getInt16(l+d),t=e.getUint16(s+d);if(t===0)return c+m&65535;let g=e.getUint16(s+d+t+(c-p)*2);return g===0?0:g+m&65535}return 0}}function Zr(e){let n=Ml(e),o=n.get("head"),r=n.get("hhea"),a=n.get("hmtx"),i=n.get("cmap");if(!o||!r||!a||!i)throw new Error("faltan tablas (head, hhea, hmtx o cmap)");let l=r.getUint16(34),s=m=>a.getUint16(4*Math.min(m,l-1)),c=Pl(i),d=0,p=0;for(let[m,t]of Object.entries(ql)){let g=c(m.codePointAt(0));g&&(d+=s(g)*t,p+=t)}return{unitsPerEm:o.getUint16(18),ascent:r.getInt16(4),descent:r.getInt16(6),lineGap:r.getInt16(8),anchoMedio:d/p}}var Il={sans:{local:"Arial",m:{unitsPerEm:2048,ascent:1854,descent:-434,lineGap:67,anchoMedio:917.32}},mono:{local:"Courier New",m:{unitsPerEm:2048,ascent:1705,descent:-615,lineGap:0,anchoMedio:1229}}},Nl={latin:"U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD","latin-ext":"U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF"};function _l(e,n,o,r,a="normal"){try{let l=Ts.readFileSync(e.resolve(`${n}/${r}${a==="italic"?"-italic":""}.css`),"utf8").split("/*").find(c=>c.includes(`-${o}-${r}-${a} */`)),s=l&&/unicode-range:\s*([^;]+);/.exec(l)?.[1].trim();if(s)return s}catch{}return Nl[o]}var wn=e=>`${(Math.round(e*1e4)/100).toFixed(2)}%`;function Ll(e,n,o,r){let a=Il[o?"mono":"sans"],i=n.anchoMedio/n.unitsPerEm/(a.m.anchoMedio/a.m.unitsPerEm);return{familia:e,local:r?`${a.local} Italic`:a.local,sizeAdjust:wn(i),ascent:wn(n.ascent/n.unitsPerEm/i),descent:wn(Math.abs(n.descent)/n.unitsPerEm/i),lineGap:wn(n.lineGap/n.unitsPerEm/i),...r&&{estilo:r}}}function Jr(e,n){let o=Xr(kn.join(n,"package.json")),r=[];for(let a of e)for(let i of a.styles??["normal"])try{let l=i==="italic"?"-italic":"",s=[...a.weights].sort((C,$)=>Math.abs(C-400)-Math.abs($-400))[0],c=a.subsets[0],d=o.resolve(`${a.source}/${c}-${s}${l}.css`),p=Ts.readFileSync(d,"utf8"),m=/font-family:\s*['"]([^'"]+)['"]/.exec(p)?.[1],t=/url\(([^)]+\.woff)\)/.exec(p)?.[1],g=a.subsets.map(C=>_l(o,a.source,C,s,i));if(!m||!t)continue;let h=Zr(new Uint8Array(Ts.readFileSync(kn.resolve(kn.dirname(d),t)))),b=Ll(m,h,/mono/i.test(m)||/mono/i.test(a.source),i==="italic"?"italic":void 0);g.every(Boolean)&&(b.unicodeRange=g.join(", ")),r.push(b)}catch{}return r}function Yr(e,n){let o=Xr(kn.join(n,"package.json"));e.forEach((r,a)=>{if(r.styles?.includes("italic"))for(let i of r.subsets)for(let l of r.weights)try{o.resolve(`${r.source}/${i}-${l}-italic.css`)}catch{throw R(`fontFaces[${a}].styles`,{code:"font-italic-missing",params:{source:r.source,subset:i,weight:l}})}})}import Cs from"fs";import Qr from"path";function ti(e,n){let o=Qr.join(e,"icons");if(!Cs.existsSync(o))return{};let r=s=>(Cs.readFileSync(Qr.join(o,`${s}.svg`),"utf-8").match(/<svg[^>]*>([\s\S]*?)<\/svg>/)?.[1]??"").replace(/\s+/g," ").trim(),a=Cs.readdirSync(o).filter(s=>s.endsWith(".svg")).map(s=>s.slice(0,-4)).filter(s=>!n[s]).sort();if(a.length===0)return{};let i=new Map;for(let s of Object.keys(n).sort()){let c=r(s);i.has(c)||i.set(c,s)}let l={};for(let s of a){let c=i.get(r(s));c&&(l[s]=c)}return l}import Os from"fs";import Fl from"path";var Vl=/['"]([a-z][a-z0-9]*(?:-[a-z0-9]+)*)['"]/g;function ei(e,n){let o=new Set,r=a=>{if(Os.existsSync(a))for(let i of Os.readdirSync(a,{withFileTypes:!0})){let l=Fl.join(a,i.name);if(i.isDirectory()){r(l);continue}if(!/\.(svelte|ts)$/.test(i.name)||/\.(test|fixture|core)\./.test(i.name))continue;let s=Os.readFileSync(l,"utf-8");for(let c of s.matchAll(Vl))n.has(c[1])&&o.add(c[1])}};return r(e),[...o].sort()}function ni(e){let n=`// Archivo auto-generado: \xCDCONOS INTERNOS DE LOS COMPONENTES
3241
3241
  `;return n+=`// Lo genera emit-icons-internal.ts escaneando los componentes.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taishods/core",
3
- "version": "0.15.0",
3
+ "version": "0.15.1",
4
4
  "description": "Consistency that scales. A framework-free design system: CSS, tokens, and behavior JavaScript.",
5
5
  "license": "MIT",
6
6
  "author": "Pablo Di Filippo",
@@ -15,6 +15,9 @@ export interface ConfigErrorParams {
15
15
  'dark-mode-invalid': {
16
16
  value: unknown;
17
17
  };
18
+ 'out-invalid': {
19
+ value: unknown;
20
+ };
18
21
  'icons-html-dirs-removed': Record<string, never>;
19
22
  'brand-required': Record<string, never>;
20
23
  'primary-invalid': Record<string, never>;
@@ -48,6 +48,11 @@ export interface TaishoConfig {
48
48
  * Sin regex. Se escribe sin `ts-`.
49
49
  */
50
50
  safelist?: string[];
51
+ /**
52
+ * Carpeta donde `taisho generate`, `taisho watch` y el plugin `taisho()` escriben el CSS y el JS, relativa a esta config.
53
+ * Predeterminado: `./taisho`. Manda `--out` (o la opción `out` del plugin) sobre esta; `taisho init` la escribe.
54
+ */
55
+ out?: string;
51
56
  /**
52
57
  * Cómo se activa el modo oscuro. `'class'` (predeterminado): sólo con la clase `dark` en `<html>`. `'media'`: sigue la
53
58
  * preferencia del sistema, sin script en el `<head>`; la clase `dark` lo fuerza oscuro y la clase `light` lo fuerza claro.
@@ -4,3 +4,13 @@ export declare function entryDelCore(modulos: readonly NombreModulo[], carpeta:
4
4
  export declare function construirCoreJs(modulos: readonly NombreModulo[]): Promise<string>;
5
5
  /** El aviso de la llave `ts`, aparte: `taisho.core.js` sólo lo pide (con `import()`) en desarrollo local, así que en producción no pesa. */
6
6
  export declare function construirAvisoLlaveJs(): Promise<string>;
7
+ export interface ArchivoJs {
8
+ ruta: string;
9
+ texto: string;
10
+ }
11
+ /**
12
+ * El JS completo, para cuando no hay `content`: los mismos archivos que arma `build:core` (`core.js` + sus trozos `core.*.js`,
13
+ * con los componentes pesados cargándose a pedido), pero con el prefijo `taisho.core` de la salida del consumidor.
14
+ * Instalado, se copian del paquete (hermanos de `cli.js`); en el repo no existen, así que se arman con el mismo constructor.
15
+ */
16
+ export declare function construirCoreCompleto(): Promise<ArchivoJs[]>;
@@ -1,6 +1,10 @@
1
1
  import type { TaishoConfig } from '../generate/index.js';
2
2
  import { type Lang } from './idioma.js';
3
3
  export declare function displayPath(absolute: string): string;
4
+ /** La carpeta de salida: `--out` (relativo a donde se corre) > `out` de la config (relativo a la config) > `./taisho` junto a la config. */
5
+ export declare function carpetaDeSalida(config: Pick<TaishoConfig, 'out'> | null | undefined, configPath: string, flag: string | undefined, cwd: string): string;
6
+ /** La ruta de `archivo` como la ve el navegador: dentro de `public/` o `static/` es la absoluta del sitio (`/taisho/taisho.css`); si no, la relativa de siempre. */
7
+ export declare function rutaParaPegar(targetDir: string, archivo: string, configDir: string): string;
4
8
  export interface RunGenerateOptions {
5
9
  configPath?: string;
6
10
  outDir?: string;
@@ -39,6 +39,7 @@ export declare const m: () => {
39
39
  preguntaTema: (def: string) => string;
40
40
  preguntaFuentes: string;
41
41
  preguntaIconos: (def: string) => string;
42
+ preguntaSalida: (def: string) => string;
42
43
  plantilla: {
43
44
  cabecera: string;
44
45
  temas: string;
@@ -48,6 +49,7 @@ export declare const m: () => {
48
49
  fonts: string;
49
50
  estados: string;
50
51
  iconos: string;
52
+ salida: string;
51
53
  lang: string;
52
54
  };
53
55
  };