@teacss/classes 0.3.8 → 0.4.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.
Files changed (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- function e(e,t){let n={...e},r=new Set(t.map(e=>e.toLowerCase()));for(let e of Object.keys(n))r.has(e.toLowerCase())&&delete n[e];return n}function t(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0})}function n(e,n){let r=e.length;r in e?t(e,r,n):e[r]=n}function r(e){let t=``,r,i=-1,a=-1,o=-1,s=[];for(let c=0;c<e.length;c++){let l=e[c];if(r){l===`\\`?c++:l===r&&(r=void 0);continue}if(t.length>0&&l===`\\`){c++;continue}if(t.length>0&&(l===`"`||l===`'`)){r=l;continue}if(t.length>0&&l===`/`&&e[c+1]===`*`){let t=e.indexOf(`*/`,c+2);if(t<0)break;c=t+1;continue}l===`(`||l===`[`?t+=l===`(`?`)`:`]`:l===t.at(-1)?t=t.slice(0,-1):t.length===0&&(l===`@`?(a===-1&&(a=c),n(s,c)):a===-1&&(l===`:`&&i===-1?i=c:l===`!`&&(o=c)))}let c=a===-1?e.length:a,l=e.slice(0,c),u=!1;c>0&&o===c-1&&(u=!0,l=l.slice(0,-1));let d=[];for(let t=0;t<s.length;t++){let r=s[t]+1,i=t+1<s.length?s[t+1]:e.length;n(d,e.slice(r,i))}return i!==-1&&i<c?{raw:e,body:l,property:e.slice(0,i),value:l.slice(i+1),keyword:!1,important:u,conditions:d}:{raw:e,body:l,keyword:!0,important:u,conditions:d}}function i(e,t){let n=e.length;n in e?Object.defineProperty(e,n,{configurable:!0,enumerable:!0,value:t,writable:!0}):e[n]=t}function a(e){let t=[],n=[],r=new Map,a=!1,o,s;for(let c=0;c<e.length;c++){let l=e[c];if(n.length===0){l===`\\`?(/\s/.test(e[c+1]??``)&&(o=void 0),c++):/\s/.test(l)?o=void 0:l===`"`||l===`'`?o=o===l?void 0:o??l:!o&&l===`[`&&i(n,c);continue}if((s||a)&&l===`[`&&/[:@\s]/.test(e[c-1])){i(n,c),r.set(c,s??a),a=!1,s=void 0;continue}if(a){l===`*`&&e[c+1]===`/`&&(a=!1,c++);continue}if(s){l===`\\`?c++:l===s&&(s=void 0);continue}if(l===`/`&&e[c+1]===`*`)a=!0,c++;else if(l===`"`||l===`'`)s=l;else if(l===`\\`)c++;else if(l===`[`)i(n,c);else if(l===`]`){let o=n.pop(),l=r.get(o);(/[:@]/.test(e[o-1])||e[c+1]===`:`)&&i(t,{end:c+1,start:o}),l===!0?a=!0:l&&(s=l)}}let c=[];for(let e of t.sort((e,t)=>e.start-t.start||t.end-e.end))(!c.length||e.start>=c.at(-1).end)&&i(c,e);return c}function o(e,t,n){let r=e[t];if(n.blockComment)return r===`*`&&e[t+1]===`/`?(n.blockComment=!1,t+1):t;if(n.quote)return r===`\\`?t+1:(r===n.quote&&(n.quote=void 0),t);if(n.closers.length>0&&r===`/`&&e[t+1]===`*`)return n.blockComment=!0,t+1;if(n.closers.length>0&&(r===`"`||r===`'`))return n.quote=r,t;if(n.closers.length>0&&r===`\\`)return t+1;if(r===`(`||r===`[`)return d(n.closers,r===`(`?`)`:`]`),t;if(r===n.closers.at(-1))return n.closers.pop(),t}function s(e,t,n=e.length){let r={closers:[]};for(let i=t+1;i<n;i++){let t=e[i],n=o(e,i,r);if(n!==void 0){i=n;continue}if(r.closers.length===0){if(t===`}`)return{index:i,kind:`close`};if(t===`{`)return{index:i,kind:`open`}}}return{index:n,kind:`limit`}}const c=/[\s'"`;{},\])]/;function l(e,t,n=e.length){if(e[t]!==`@`)return{conds:``,end:t};let r={closers:[]},i=t;for(;i<n;i++){let t=e[i],n=o(e,i,r);if(n!==void 0){i=n;continue}if(t===`/`&&(e[i+1]===`/`||e[i+1]===`*`)&&r.closers.length===0||c.test(t)&&r.closers.length===0)break}return{conds:e.slice(t,i),end:i}}function u(e){let t=[],n={closers:[]},r=0;for(let i=0;i<e.length;i++){let a=e[i],s=o(e,i,n);if(s!==void 0){i=s;continue}a===`;`&&n.closers.length===0&&(d(t,e.slice(r,i)),r=i+1)}return d(t,e.slice(r)),t.map(e=>e.trim()).filter(Boolean)}function d(e,t){Object.defineProperty(e,e.length,{configurable:!0,enumerable:!0,value:t,writable:!0})}const f=/^(?:--?[\w-]+|[A-Z_$][\w$-]*|@teacss-skip-bracket-[\da-z]{6})$/i;function p(e,t){let n=t;for(;n>0&&/[\w-]/.test(e[n-1]);)n--;if(n===t||e[n-1]!==`:`)return!1;let r=n-1,i=r;for(;i>0&&/[\w$@-]/.test(e[i-1]);)i--;if(!f.test(e.slice(i,r)))return!1;let a=i-1;for(;a>=0&&/\s/.test(e[a]);)a--;return a<0||!`{,?`.includes(e[a])}function m(e){let t=[],n=[],r=[],i=!1,a;for(let o=0;o<e.length;o++){let s=e[o],c=e[o+1];if(n.length===0){s===`(`&&p(e,o)&&d(n,{attached:!0,start:o});continue}if(i)s===`*`&&c===`/`&&(i=!1,o++);else if(a)s===`\\`?o++:s===a&&(a=void 0);else if(s===`\\`)o++;else if(s===`/`&&c===`*`)i=!0,o++;else if(s===`'`||s===`"`||s==="`")a=s;else if(r.length>0)s===`[`||s===`(`?d(r,s===`[`?`]`:`)`):s===r.at(-1)&&r.pop();else if(s===`[`)d(r,`]`);else if(s===`(`)d(n,{attached:p(e,o),start:o});else if(s===`)`){let e=n.pop();e.attached&&d(t,{end:o+1,start:e.start})}}let o=[];for(let e of t.sort((e,t)=>e.start-t.start||t.end-e.end))(o.length===0||e.start>=o.at(-1).end)&&d(o,e);return o}function h(e){if(!e.includes(`{`))return e;let t=``,n=0,r=-1,i=0,c=0,d=e.includes(`[`)?a(e):[],f=e.includes(`(`)?m(e):[],p={closers:[]};for(;n<e.length;){for(;i<d.length&&d[i].end<=n;)i++;for(;c<f.length&&f[c].end<=n;)c++;let a=i<d.length?d[i]:void 0,m=c<f.length?f[c]:void 0,h=a?.start===n?a:m?.start===n?m:void 0;if(h&&p.blockComment!==!0&&p.quote===void 0){t+=e.slice(n,h.end),n=h.end;continue}p.closers.length>0&&/\s/.test(e[n])&&(p.blockComment=!1,p.closers.length=0,p.quote=void 0);let g=o(e,n,p);if(g!==void 0){t+=e.slice(n,g+1),n=g+1;continue}let _=e[n];if(p.closers.length>0||_!==`{`){t+=_,n++;continue}let v=s(e,n);if(v.kind!==`close`){t+=e.slice(n,v.index),n=v.index;continue}let y=v.index,b=e.slice(n+1,y),{conds:x,end:S}=l(e,y+1),C=u(b);if(C.length===0){t+=_,n++;continue}r===n&&t.length>0&&!/\s/.test(t.at(-1))&&(t+=` `),t+=C.map(e=>`${e}${x}`).join(` `),r=S,n=S}return t}function g(e){let t=e.split(/\s+/);return t[0]===``&&t.shift(),t.at(-1)===``&&t.pop(),t}function _(e){if(!e.includes(`[`))return g(e);let t=a(e);if(t.length===0)return g(e);let n=[],r=0,o=-1;for(let a=0;a<e.length;a++){let s=t[r];if(s&&a===s.start){o<0&&(o=a),a=s.end-1,r++;continue}/\s/.test(e[a])?(o>=0&&i(n,e.slice(o,a)),o=-1):o<0&&(o=a)}return o>=0&&i(n,e.slice(o)),n}const v=!1;var y=class extends TypeError{name=`MergerProtocolError`;code;plugin;hook;constructor(e,t,n,r){super(`[TeaCSS merge:${e}] ${t}`),this.code=e,n!==void 0&&(this.plugin=n),r!==void 0&&(this.hook=r)}};function b(){return Object.create(null)}const x=`must have an integer length from 0 through 4294967294`,S=Symbol(`missing-own-value`);function C(e,t){return`value`in t?t.value:t.get===void 0?void 0:Reflect.apply(t.get,e,[])}function w(e,t){let n=Reflect.getOwnPropertyDescriptor(e,t);return n===void 0?S:C(e,n)}function T(e,t){let n=w(e,t);return n===S?void 0:n}function ee(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0})}function E(e,t){let n=e.length;n in e?ee(e,n,t):e[n]=t}function D(e){let t=w(e,`length`);return typeof t==`number`&&Number.isInteger(t)&&t>=0&&t<4294967295?t:null}function O(e){let t=``,n=D(e);if(n===null)throw new y(`INVALID_ARRAY_LENGTH`,`class-value array ${x}`);for(let r=0;r<n;r++){let n=w(e,r);if(n===S)continue;let i=te(n);i&&(t+=(t&&` `)+i)}return t}function te(e){if(!e)return``;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`bigint`)return String(e);if(Array.isArray(e))return O(e);if(typeof e==`object`){let t=e,n=``;for(let e of Reflect.ownKeys(t)){if(typeof e!=`string`)continue;let r=Reflect.getOwnPropertyDescriptor(t,e);r===void 0||!r.enumerable||C(t,r)&&(n+=(n&&` `)+e)}return n}return``}function k(e,t){let n=e;for(let e of t){let t=n.children??=new Map,r=t.get(e);r===void 0&&(r=b(),t.set(e,r)),n=r}return n}function ne(e,t,n){let r=k(e,t);return n?r.keywords??=new Map:r.declarations??=new Map}function re(e){if(e.length===0)return``;if(e.length===1){let t=w(e,0);return t===S?``:t??``}let t=b(),n=new Uint8Array(e.length),i=new Uint8Array(e.length);for(let a=0;a<e.length;a++){let o=r(e[a]),s=ne(t,o.conditions,o.keyword),c=o.property??o.body,l=s.get(c);n[a]=+!!o.important,l===void 0?s.set(c,a):n[l]!==0&&n[a]===0?i[a]=1:(i[l]=1,s.set(c,a))}let a=[];for(let t=0;t<e.length;t++)i[t]===0&&E(a,e[t]);return a.join(` `)}function ie(e,t){if(typeof e==`string`)return e.length===0?null:[e];if(!Array.isArray(e))return null;let n=D(e);if(n===null||n===0)return null;let r=[],i=null;for(let a=0;a<n;a++){let n=w(e,a);if(n===S||typeof n!=`string`||n.length===0)return null;(i===null?r.includes(n):i.has(n))||(E(r,n),i===null?r.length===(t?64:4)&&(i=new Set(r)):i.add(n))}return t&&r.length>1&&r.sort(),r}function ae(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function A(e,t,n,r,i){for(let a of Reflect.ownKeys(t)){if(typeof a!=`string`)continue;let o=Reflect.getOwnPropertyDescriptor(t,a);if(o===void 0||!o.enumerable)continue;let s=ie(C(t,o),!0);if(s===null)throw new y(`INVALID_STATIC_CONFLICT`,`"${r}" ${n} "${a}" must contain at least one non-empty atom`,i);let c=e.get(a);if(c===void 0){e.set(a,{atoms:s,atomSet:s.length>4?new Set(s):null,source:r});continue}if(!ae(c.atoms,s))throw new y(`STATIC_CONFLICT_COLLISION`,`static ${n} "${a}" has conflicting atom sets from "${c.source}" and "${r}"`,i)}}function oe(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function j(e){if(!oe(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function se(e,t,n){if(!oe(e))throw new y(`INVALID_CONFLICT_META`,`"${t}" conflicts must be an object`,n);let r=T(e,`keywords`);if(!j(r))throw new y(`INVALID_CONFLICT_META`,`"${t}" keywords must be a record`,n);let i=T(e,`overlaps`);if(!j(i))throw new y(`INVALID_CONFLICT_META`,`"${t}" overlaps must be a record`,n);return{keywords:r,overlaps:i}}function M(e,t,n,r){if(n!==void 0){if(typeof n!=`function`)throw new y(`INVALID_PLUGIN_HOOK`,`plugin "${e}" ${t} must be a function`,e,r);return n}}function ce(e){let t=[],n=[],r=[],i=[],a=[],o=new Set,s=D(e);if(s===null)throw new y(`INVALID_OPTIONS`,`options.plugins must be an array with an integer length from 0 through 4294967294`);for(let c=0;c<s;c++){let s=w(e,c),l=s===S?void 0:s;if(!oe(l))throw new y(`INVALID_PLUGIN_NAME`,`plugin at index ${c} must have a non-empty name`);let u=T(l,`name`);if(typeof u!=`string`||u.length===0)throw new y(`INVALID_PLUGIN_NAME`,`plugin at index ${c} must have a non-empty name`);if(o.has(u))throw new y(`DUPLICATE_PLUGIN_NAME`,`duplicate plugin name "${u}"`,u);o.add(u);let d=T(l,`conflicts`),f=M(u,`tokens`,T(l,`tokens`),`tokens`),p=M(u,`group`,T(l,`group`),`group`),m=M(u,`finalize`,T(l,`finalize`),`finalize`),h=M(u,`resolveFamily`,T(l,`resolveFamily`),`resolveFamily`),g=M(u,`resolve`,T(l,`resolve`),`resolve`);if(h!==void 0&&g===void 0)throw new y(`INVALID_PLUGIN_HOOK`,`plugin "${u}" resolveFamily requires resolve`,u,`resolveFamily`);E(t,{name:u,conflicts:d===void 0?void 0:se(d,u,u)}),f!==void 0&&E(n,{name:u,hook:f}),p!==void 0&&E(r,{name:u,hook:p}),m!==void 0&&E(i,{name:u,hook:m}),g!==void 0&&E(a,{name:u,hook:g,family:h})}return{metadata:t,tokens:n,groups:r,finalizers:i,resolvers:a,allResolversScoped:a.every(e=>e.family!==void 0)}}function le(e,t){let n=new Map,r=new Map;e!==void 0&&(A(n,e.keywords,`keyword`,`<options.conflicts>`),A(r,e.overlaps,`declaration`,`<options.conflicts>`));for(let e of t)e.conflicts!==void 0&&(A(n,e.conflicts.keywords,`keyword`,e.name,e.name),A(r,e.conflicts.overlaps,`declaration`,e.name,e.name));return{keywords:n,overlaps:r}}function ue(e){let t=r(e);return{raw:e,prefix:t.property??t.body,body:t.body,value:t.value,keyword:t.keyword,conditions:t.conditions,important:t.important}}function de(){let e=new Map;return t=>{let n=e.get(t);if(n!==void 0)return n;let r=ue(t);return e.set(t,r),r}}function fe(e,t,n){if(t.length===0)return e;let r=e,i={viewToken:n};for(let e of t){let t=e.hook,n=t(r,i),a=`plugin "${e.name}" tokens() must return an array of individual non-empty class tokens`;if(!Array.isArray(n))throw new y(`INVALID_TOKEN_TRANSFORM_RESULT`,a,e.name,`tokens`);let o=[],s=D(n);if(s===null)throw new y(`INVALID_TOKEN_TRANSFORM_RESULT`,a,e.name,`tokens`);for(let t=0;t<s;t++){let r=w(n,t);if(r===S||typeof r!=`string`||r.length===0)throw new y(`INVALID_TOKEN_TRANSFORM_RESULT`,a,e.name,`tokens`);let i=_(r);if(i.length!==1||i[0]!==r)throw new y(`INVALID_TOKEN_TRANSFORM_RESULT`,a,e.name,`tokens`);E(o,r)}r=o}return r}function pe(e,t){let n=null;for(let r=0;r<t.length;r++){let i=t[r];if(i.family===void 0)continue;let a=i.family,o=a(e);if(o!==null&&(typeof o!=`string`||o.length===0))throw new y(`INVALID_RESOLVE_FAMILY_RESULT`,`plugin "${i.name}" resolveFamily() must return null or a non-empty string`,i.name,`resolveFamily`);o!==null&&((n??=Array.from({length:t.length},()=>null))[r]=o)}return n}function me(e,t,n,r,i,a){let o=a(e);for(let e of n){let n=e.hook,i=n(o);if(i===null)continue;if(i===!1)return{id:t,view:o,atoms:[],atomSet:null,pluginGrouped:!0,opaque:!0,resolverFamilies:null};let a=ie(i,!1);if(a===null)throw new y(`INVALID_GROUP_RESULT`,`plugin "${e.name}" group() must return null, MERGE_OPAQUE, or at least one non-empty atom`,e.name,`group`);return{id:t,view:o,atoms:a,atomSet:a.length>4?new Set(a):null,pluginGrouped:!0,opaque:!1,resolverFamilies:pe(o,r)}}let s=o.keyword?i.keywords.get(o.prefix):i.overlaps.get(o.prefix);return{id:t,view:o,atoms:s===void 0?[o.keyword?`@teacss/classes:keyword:${o.prefix}`:`@teacss/classes:declaration:${o.prefix}`]:s.atoms,atomSet:s===void 0?null:s.atomSet,opaque:!1,resolverFamilies:pe(o,r)}}function he(e,t){let n=new Map;for(let r of e){if(!r.opaque)continue;let e=n.get(r.view.raw);e!==void 0&&(t[e]=1),n.set(r.view.raw,r.id)}}function N(e,t){return new y(`INVALID_FINALIZER_RESULT`,`plugin "${e}" finalize() returned invalid occurrence id ${typeof t==`bigint`?`${t}n`:typeof t==`number`||typeof t==`boolean`||t==null?String(t):typeof t}`,e,`finalize`)}function ge(e,t){let n=[];for(let r of e)!r.opaque&&t[r.id]===0&&E(n,r);return n}function _e(e,t,n,r){let i=!1,a=r;for(let r of t){let t=r.hook,o=t(a?ge(e,n):e.slice());if(o===null)continue;if(!Array.isArray(o))throw N(r.name,o);let s=D(o);if(s===null)throw new y(`INVALID_FINALIZER_RESULT`,`plugin "${r.name}" finalize() result ${x}`,r.name,`finalize`);if(s===0)continue;let c=new Set;for(let t=0;t<s;t++){let i=w(o,t);if(i===S)throw N(r.name,void 0);let a=i;if(!Number.isInteger(a))throw N(r.name,a);let s=a,l=e[s];if(l===void 0||l.opaque||n[s]!==0||c.has(s))throw N(r.name,a);c.add(s)}for(let e of c)n[e]=1;c.size!==0&&(i=!0,a=!0)}return i}function ve(e,t){return e.atomSet?.has(t)??e.atoms.includes(t)}function ye(e,t){return e.pluginGrouped!==!0&&t.pluginGrouped!==!0&&e.view.keyword===t.view.keyword&&e.view.prefix===t.view.prefix}function be(e,t){if(ye(e,t))return!0;if(e.atoms.length<t.atoms.length)return!1;for(let n of t.atoms)if(!ve(e,n))return!1;return!0}function xe(e,t){if(e.atomSet!==null){for(let n of t.atoms)if(e.atomSet.has(n))return!0;return!1}if(t.atomSet!==null){for(let n of e.atoms)if(t.atomSet.has(n))return!0;return!1}for(let n of t.atoms)if(e.atoms.includes(n))return!0;return!1}function Se(e,t){let n=k(e,t);return n.winners??=new Map}function Ce(e,t,n){let r=b();for(let i of e){if(i.opaque||t[i.id]!==0)continue;let a=n?ne(r,i.view.conditions,i.view.keyword):Se(r,i.view.conditions),o=n?i.view.prefix:i.atoms[0],s=a.get(o);if(s===void 0){a.set(o,i.id);continue}e[s].view.important&&!i.view.important?t[i.id]=1:(t[s]=1,a.set(o,i.id))}}function we(e,t,n,r,i){return e.view.important===t.view.important?n||i===`symmetric`?`earlier`:`none`:t.view.important?n?`earlier`:`none`:r?`later`:`none`}function Te(e,t,n,r){let i=be(t,e),a=be(e,t),o=we(e,t,i,a,n);for(let n=0;n<r.length;n++){let s=r[n];if(s.family!==void 0){let r=e.resolverFamilies?.[n]??null,i=t.resolverFamilies?.[n]??null;if(r===null||r!==i)continue}let c=s.hook,l=c(e.view,t.view,{covers:i,earlierCoversLater:a,defaultDrop:o});if(l!==null){if(l===`earlier`||l===`later`||l===`none`)return l;throw new y(`INVALID_RESOLVE_RESULT`,`plugin "${s.name}" resolve() must return null, "earlier", "later", or "none"`,s.name,`resolve`)}}return o}function P(e,t,n,r,i){let a=Te(e,t,n,r);a===`earlier`?i[e.id]=1:a===`later`&&(i[t.id]=1)}function Ee(e,t,n,r,i){let a=t[e];for(let o=e+1;o<t.length;o++){let e=t[o];ae(a.view.conditions,e.view.conditions)&&(!ye(a,e)&&!xe(a,e)||P(a,e,n,r,i))}}function De(e,t){let n=k(e,t);return n.postings??=new Map}function Oe(e){let t=b(),n=[],r=[],i=e.length*(e.length-1)/2,a=0;for(let o=0;o<e.length;o++){let s=e[o],c=De(t,s.view.conditions),l=[];E(n,c),E(r,l);for(let e of s.atoms){let t=c.get(e);if(t===void 0&&(t=[],c.set(e,t)),a+=t.length,a>i)return null;E(l,t.length),E(t,o)}}return{postingMaps:n,positions:r,postingPairVisits:a}}function ke(e,t,n,r){for(let i=0;i<e.length;i++)Ee(i,e,t,n,r)}function Ae(e,t,n,r,i,a){if(a!==null){Ce(e,r,a===`static-prefix`);return}let o=i?ge(e,r):e;if(o.length<16){ke(o,t,n,r);return}let s=Oe(o);if(s===null){ke(o,t,n,r);return}if(s.postingPairVisits===0)return;let c=new Uint32Array(o.length),l=[];for(let e=0;e<o.length;e++){let i=o[e],a=s.postingMaps[e],u=s.positions[e];if(i.atoms.length===1){let e=a.get(i.atoms[0]);for(let a=u[0]+1;a<e.length;a++)P(i,o[e[a]],t,n,r);continue}let d=0;for(let e=0;e<i.atoms.length;e++){let t=a.get(i.atoms[e]);d+=t.length-u[e]-1}if(d>=o.length-e-1){Ee(e,o,t,n,r);continue}l.length=0;let f=!0,p=e+1;for(let e=0;e<i.atoms.length;e++){let t=a.get(i.atoms[e]);for(let n=u[e]+1;n<t.length;n++){let e=t[n];c[e]!==p&&(c[e]=p,l.length!==0&&e<l[l.length-1]&&(f=!1),E(l,e))}}f||l.sort((e,t)=>e-t);for(let e of l)P(i,o[e],t,n,r)}}function je(e,t,n,r,i){let a=fe(e,r.tokens,i);if(a.length<2&&r.groups.length===0&&r.finalizers.length===0&&r.resolvers.length===0){if(a.length===0)return``;let e=w(a,0);return e===S?``:e??``}let o=[],s=!1,c=a.length>=16&&r.allResolversScoped,l=c,u=c,d,f,p=0;for(let e=0;e<a.length;e++){let n=me(a[e],e,r.groups,r.resolvers,t,i);if(n.opaque)s=!0;else if(p++,n.atoms.length!==1&&(l=!1),n.pluginGrouped===!0?u=!1:d===void 0?(d=n.view.prefix,f=n.view.keyword):(n.view.prefix!==d||n.view.keyword!==f)&&(u=!1),n.resolverFamilies!==null){for(let e of n.resolverFamilies)if(e!==null){l=!1,u=!1;break}}E(o,n)}let m=new Uint8Array(o.length);s&&he(o,m);let h=_e(o,r.finalizers,m,s),g=p<16?null:l?`singleton`:u?`static-prefix`:null;Ae(o,n,r.resolvers,m,s||h,g);let _=[];for(let e of o)m[e.id]===0&&E(_,e.view.raw);return _.join(` `)}function Me(e,t,n){let r=w(e,n);if(r===S)return``;if(typeof r==`string`)return r;if(Array.isArray(t)){let e=w(t,n);if(typeof e==`string`)return e}return``}function Ne(e){return typeof e==`number`||typeof e==`bigint`?String(e):te(e)}function Pe(e,t,n){let r=``,i=D(e);if(i===null)throw new y(`INVALID_ARRAY_LENGTH`,`tagged-template strings ${x}`);for(let a=0;a<i;a++)if(r+=Me(e,t,a),a+1<i&&a+1<n.length){let e=Ne(n[a+1]);r+=e}return r}function Fe(e={}){if(!j(e))throw new y(`INVALID_OPTIONS`,`options must be an object`);let t=T(e,`conflicts`),n=T(e,`overlap`),r=T(e,`plugins`),i=T(e,`cache`);if(n!==void 0&&n!==`precise`&&n!==`symmetric`)throw new y(`INVALID_OPTIONS`,`options.overlap must be "precise" or "symmetric"`);if(r!==void 0&&!Array.isArray(r))throw new y(`INVALID_OPTIONS`,`options.plugins must be an array`);let a=ce(r===void 0?[]:r),o=le(t===void 0?void 0:se(t,`<options.conflicts>`),a.metadata),s=a.tokens.length!==0||a.groups.length!==0||a.finalizers.length!==0||a.resolvers.length!==0,c=!s&&o.keywords.size===0&&o.overlaps.size===0,l=n??`precise`,u=1500;if(i===!1)u=0;else if(i!==void 0){if(!j(i))throw new y(`INVALID_CACHE_OPTIONS`,`options.cache must be false or an object`);let e=T(i,`max`);if(e!==void 0){if(typeof e!=`number`||!Number.isFinite(e)||!Number.isInteger(e)||e<0)throw new y(`INVALID_CACHE_OPTIONS`,`options.cache.max must be a finite non-negative integer`);u=e}}let d=u>0?new Map:null;function f(e){if(d!==null){let t=d.get(e);if(t!==void 0)return d.delete(e),d.set(e,t),t}let t=_(h(e).trim()),n=c?re(t):je(t,o,l,a,s?de():ue);return d!==null&&(d.set(e,n),d.size>u&&d.delete(d.keys().next().value)),n}function p(...e){let t=e[0],n=Array.isArray(t)?w(t,`raw`):S;return f(Array.isArray(n)?Pe(t,n,e):O(e))}return p}const F=Object.prototype.propertyIsEnumerable,I=`definition.className`,L=`definition.variants`,R=`definition.defaultVariants`,z=`definition.compoundVariants`,B=`createReciper options`,V=`${B}.merge`,H=`recipe props`,U=`className`,Ie=`classKeys`,Le=`null is not allowed`,Re=`required own enumerable field`,ze=new Set([`className`,`variants`,`defaultVariants`,`compoundVariants`,`extend`]),Be=new Set([`class`,`className`,`then`,`toJSON`,`toString`,`valueOf`]),Ve=new Set([`class`,`className`,`classKeys`]);function W(e){return e.length>16?new Set(e):void 0}function G(e,t,n){return t?.has(n)??e.includes(n)}function K(e,t){return TypeError(`[TeaCSS recipe] ${e}: ${t}`)}function q(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw K(t,`expected a plain record`);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw K(t,`expected Object.prototype or null prototype`);return Object.keys(e)}function He(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw K(t,`expected a non-null, non-array object`);return Object.keys(e)}function J(e,t,n){let r=Reflect.getOwnPropertyDescriptor(e,t);if(r===void 0||!r.enumerable)throw K(n,`expected an own enumerable field`);return`value`in r?r.value:r.get===void 0?void 0:Reflect.apply(r.get,e,[])}function Ue(e,t){let n=Reflect.getOwnPropertyDescriptor(e,`length`),r=n!==void 0&&`value`in n?n.value:void 0;if(typeof r!=`number`||!Number.isInteger(r)||r<0||r>=4294967295)throw K(t,`expected an array with a valid own length`);return r}function We(e,t,n){if(!Array.isArray(e))throw K(t,`expected an array`);let r=Object.keys(e),i=Ue(e,t);if(!n&&i===0)throw K(t,`expected a non-empty array`);if(r.length!==i)throw K(t,`expected a dense own-indexed array`);for(let e of r){let n=Number(e);if(!Number.isInteger(n)||n<0||n>=i||String(n)!==e)throw K(t,`expected a dense own-indexed array`)}let a=Z(i);for(let n=0;n<i;n++)a[n]=J(e,n,`${t}[${n}]`);return a}function Ge(e,t){if(e.trim().length===0)throw K(t,`name must contain a non-whitespace character`)}function Y(e){let t=O([e]);return t.length===0?void 0:t}function X(e,t,n){if(n===void 0)return;let r=F.call(e,t)?e[t]:void 0;e[t]=r===void 0?[n]:[...r,n]}function Z(e){let t=Array(e);for(let n=0;n<e;n++)n in t?ee(t,n,void 0):t[n]=void 0;return t}function Ke(){return[void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0]}const qe=Ke().length;function Je(e,t,n){t<qe||!(t in e)?e[t]=n:ee(e,t,n)}function Q(e,t=e.length){let n=Z(t),r=Math.min(e.length,t);for(let t=0;t<r;t++){if(!F.call(e,t))continue;let r=e[t];r!==void 0&&(n[t]=[...r])}return n}function Ye(e,t){return e.map(e=>{let n=Object.create(null);for(let r of Object.keys(e.choices))n[r]={fragmentsBySlot:Q(e.choices[r].fragmentsBySlot,t)};return{name:e.name,choices:n,booleanCapable:e.booleanCapable}})}function $(e,t,n){if(e===null)return null;if(typeof e==`string`){if(!F.call(t.choices,e))throw K(n,`unknown choice ${JSON.stringify(e)}`);return e}if(typeof e==`number`){if(!Number.isFinite(e))throw K(n,`expected a finite numeric choice`);let r=String(e);if(!F.call(t.choices,r))throw K(n,`unknown choice ${JSON.stringify(r)}`);return r}if(typeof e==`boolean`){if(!t.booleanCapable)throw K(n,`boolean selection requires a true or false choice`);return String(e)}throw K(n,`expected null, a declared string or finite numeric choice, or a supported boolean state`)}function Xe(e,t,n){if(n&&(e=t.slotNames.length===0?``:{}),typeof e==`string`){if(t!==void 0&&t.slotNames.length>0)throw K(I,`must be a record when extending a multi-element recipe`);let n=t===void 0?Z(1):Q(t.baseFragmentsBySlot,1);return X(n,0,Y(e)),{names:[],indexes:Object.create(null),baseFragments:n}}let r=q(e,I);if(t!==void 0&&t.slotNames.length===0)throw K(I,`must be a string when extending a single-element recipe`);if(!n&&r.length===0)throw K(I,`expected at least one named class`);for(let e of r){let t=`${I}.${e}`;if(Ge(e,t),Be.has(e))throw K(t,`reserved class name`)}let i=t===void 0?[]:[...t.slotNames],a=Object.create(null);for(let e=0;e<i.length;e++)a[i[e]]=e;let o=t===void 0?[]:Q(t.baseFragmentsBySlot),s=e;for(let e of r){let t=a[e];t===void 0&&(t=i.length,E(i,e),a[e]=t,E(o,void 0)),X(o,t,Y(J(s,e,`${I}.${e}`)))}return{names:i,indexes:a,baseFragments:o}}function Ze(e,t,n,r,i,a){if(n){if(typeof t!=`string`)throw K(i,`expected a primitive string`);X(e,0,Y(t));return}let o=q(t,i);if(a&&o.length===0)throw K(i,`expected at least one class target`);let s=t;for(let t of o){let n=r[t];if(n===void 0)throw K(`${i}.${t}`,`unknown class target`);X(e,n,Y(J(s,t,`${i}.${t}`)))}}function Qe(e,t,n,r,i){let a=t===void 0?[]:Ye(t.variants,i),o=Object.create(null);for(let e=0;e<a.length;e++)o[a[e].name]=e;if(e===void 0)return{variants:a,indexes:o};if(e===null)throw K(L,Le);let s=q(e,L),c=e;for(let e of s){let t=`${L}.${e}`;if(Ge(e,t),Ve.has(e))throw K(t,`reserved variant name`);let s=J(c,e,t),l=q(s,t);if(l.length===0)throw K(t,`expected at least one choice`);let u=s,d=o[e],f;d===void 0?(d=a.length,o[e]=d,f=Object.create(null),E(a,{name:e,choices:f,booleanCapable:!1})):f=a[d].choices;for(let e of l){let a=`${t}.${e}`,o=J(u,e,a),s=f[e],c=s===void 0?Z(i):Q(s.fragmentsBySlot,i);Ze(c,o,n,r,a,!1),f[e]={fragmentsBySlot:c}}a[d]={name:e,choices:f,booleanCapable:F.call(f,`true`)||F.call(f,`false`)}}return{variants:a,indexes:o}}function $e(e,t,n,r){let i=Z(n.length);if(t!==void 0){let e=Math.min(t.defaultStates.length,n.length);for(let n=0;n<e;n++)F.call(t.defaultStates,n)&&(i[n]=t.defaultStates[n])}if(e===void 0)return i;if(e===null)throw K(R,Le);let a=q(e,R),o=W(a);for(let e of a)if(r[e]===void 0)throw K(`${R}.${e}`,`unknown variant`);let s=e;for(let e=0;e<n.length;e++){let t=n[e];if(!G(a,o,t.name))continue;let r=`${R}.${t.name}`,c=J(s,t.name,r);c!==void 0&&(i[e]=$(c,t,r))}return i}function et(e,t,n){if(!Array.isArray(e)){if(e===void 0)throw K(n,`undefined is not a condition`);return[$(e,t,n)]}let r=We(e,n,!1),i=[];for(let e=0;e<r.length;e++){let a=r[e];if(a===void 0)throw K(`${n}[${e}]`,`undefined is not a condition`);E(i,$(a,t,`${n}[${e}]`))}return i}function tt(e,t,n,r,i,a,o){let s=t===void 0?[]:t.compounds.map(e=>({conditions:e.conditions,fragmentsBySlot:Q(e.fragmentsBySlot,i)}));if(e===void 0)return s;if(e===null)throw K(z,Le);let c=We(e,z,!0);for(let e=0;e<c.length;e++){let t=c[e],l=`${z}[${e}]`,u=q(t,l),d=W(u),f=G(u,d,Ie);if(!G(u,d,U))throw K(`${l}.className`,n||f?`required own enumerable string`:`required own enumerable class map`);for(let e of u)if(e!==U&&e!==Ie&&o[e]===void 0)throw K(`${l}.${e}`,`unknown variant condition`);let p=t,m=[];for(let e=0;e<a.length;e++){let t=a[e];if(!G(u,d,t.name))continue;let n=`${l}.${t.name}`;E(m,{variantIndex:e,states:et(J(p,t.name,n),t,n)})}let h=`${l}.className`,g=J(p,U,h),_=Z(i);if(f){let e=`${l}.classKeys`;if(n)throw K(e,`only valid for multi-element recipes`);if(typeof g!=`string`)throw K(h,`expected a primitive string when classKeys is present`);let t=We(J(p,Ie,e),e,!1),i=Y(g);for(let n=0;n<t.length;n++){let a=t[n],o=`${e}[${n}]`;if(typeof a!=`string`)throw K(o,`expected a declared class name`);let s=r[a];if(s===void 0)throw K(o,`unknown class target`);if(t.indexOf(a)!==n)throw K(o,`duplicate class target ${JSON.stringify(a)}`);X(_,s,i)}}else Ze(_,g,n,r,h,!0);E(s,{conditions:m,fragmentsBySlot:_})}return s}function nt(e,t){let n=q(e,`definition`);for(let e of n)if(!ze.has(e))throw K(`definition.${e}`,`unknown field`);let r=e,i;if(n.includes(`extend`)){let e=J(r,`extend`,`definition.extend`);if(e!==void 0&&(typeof e!=`function`||(i=t.get(e))===void 0))throw K(`definition.extend`,`expected a recipe from this exact reciper`)}let a=n.includes(U);if(!a&&i===void 0)throw K(I,Re);let o=Xe(a?J(r,U,I):void 0,i,!a),s=o.baseFragments.length,c=o.names.length===0,l=Qe(n.includes(`variants`)?J(r,`variants`,L):void 0,i,c,o.indexes,s),u=$e(n.includes(`defaultVariants`)?J(r,`defaultVariants`,R):void 0,i,l.variants,l.indexes),d=tt(n.includes(`compoundVariants`)?J(r,`compoundVariants`,z):void 0,i,c,o.indexes,s,l.variants,l.indexes),f=Z(s);for(let e of d)for(let t=0;t<s;t++)e.fragmentsBySlot[t]!==void 0&&E(f[t]??=[],e);return{slotNames:o.names,baseFragmentsBySlot:o.baseFragments,variants:l.variants,defaultStates:u,compounds:d,compoundsBySlot:f}}function rt(e,t){if(e===void 0)return t.defaultStates;let n=He(e,H),r=W(n);if(G(n,r,`class`))throw K(`${H}.class`,`reserved field`);if(G(n,r,U))throw K(`${H}.className`,`caller classes belong to a style resolver`);let i=e,a;for(let e=0;e<t.variants.length;e++){let o=t.variants[e];if(!G(n,r,o.name))continue;let s=`${H}.${o.name}`,c=J(i,o.name,s);c!==void 0&&(a??=[...t.defaultStates],a[e]=$(c,o,s))}return a??t.defaultStates}function it(e,t,n){if(t!==void 0){let e=n<qe||F.call(t,n)?t[n]:void 0;if(e!==void 0)return e}return e[n]}function at(e,t,n){for(let r of e.conditions){let e=it(t,n,r.variantIndex),i=!1;for(let t of r.states)if(e===t){i=!0;break}if(!i)return!1}return!0}function ot(e,t,n){if(n===void 0)return t;for(let r of n)Je(e,t,r),t++;return t}function st(e,t,n,r,i,a,o){let s,c;if(r!==void 0){let t=He(r,a),n=W(t);if(G(t,n,`class`))throw K(`${a}.class`,`reserved field`);let i=r;for(let r=0;r<e.variants.length;r++){let o=e.variants[r];if(!G(t,n,o.name))continue;let c=`${a}.${o.name}`,l=J(i,o.name,c);l!==void 0&&(s??=Ke(),Je(s,r,$(l,o,c)))}G(t,n,`className`)&&(c=J(i,`className`,`${a}.className`))}let l=Ke(),u=ot(l,0,e.baseFragmentsBySlot[t]);for(let r=0;r<e.variants.length;r++){let i=it(n,s,r);if(i==null)continue;let a=e.variants[r].choices[i];a!==void 0&&(u=ot(l,u,a.fragmentsBySlot[t]))}let d=e.compoundsBySlot[t];if(d!==void 0)for(let e of d)at(e,n,s)&&(u=ot(l,u,e.fragmentsBySlot[t]));c!==void 0&&(Je(l,u,c),u++),l.length=u;let f=Reflect.apply(i,void 0,l);if(typeof f!=`string`)throw K(o,`merger must return a primitive string`);return f}function ct(e,t,n){Object.defineProperty(e,t,{value:n,configurable:!0,enumerable:!0,writable:!0})}function lt(e){let t={};for(let n of e.variants)ct(t,n.name,Object.freeze(Object.keys(n.choices)));let n={};for(let t=0;t<e.variants.length;t++){let r=e.defaultStates[t];typeof r==`string`&&ct(n,e.variants[t].name,r)}return Object.freeze({anatomy:Object.freeze([...e.slotNames]),variants:Object.freeze(t),defaultVariants:Object.freeze(n),compoundVariantCount:e.compounds.length})}function ut(e,t){return Object.defineProperty(e,"config",{value:lt(t),configurable:!1,enumerable:!1,writable:!1}),e}function dt(e,t){return e.slotNames.length===0?ut((n=>st(e,0,e.defaultStates,n,t,H,`recipe result`)),e):ut((n=>{let r=rt(n,e),i=Object.create(null);for(let n=0;n<e.slotNames.length;n++){let a=e.slotNames[n];i[a]=i=>st(e,n,r,i,t,`style props.${a}`,`style result.${a}`)}return i}),e)}function ft(e){let t=q(e,B);for(let e of t)if(e!==`merge`)throw K(B,`unknown field ${JSON.stringify(e)}`);if(!t.includes(`merge`))throw K(V,Re);let n=J(e,`merge`,V);if(typeof n!=`function`)throw K(V,`expected a callable merger`);let r=n,i=new WeakMap;return(e=>{let t=nt(e,i),n=dt(t,r);return i.set(n,t),n})}export{v as MERGE_OPAQUE,y as MergerProtocolError,Fe as createMerger,ft as createReciper,e as omitAttributes};
1
+ function e(e,t){let n={...e},r=new Set(t.map(e=>e.toLowerCase()));for(let e of Object.keys(n))r.has(e.toLowerCase())&&delete n[e];return n}function t(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0})}function n(e,n){let r=e.length;r in e?t(e,r,n):e[r]=n}function r(e){let t=``,r,i=-1,a=-1,o=-1,s=[];for(let c=0;c<e.length;c++){let l=e[c];if(r){l===`\\`?c++:l===r&&(r=void 0);continue}if(t.length>0&&l===`\\`){c++;continue}if(t.length>0&&(l===`"`||l===`'`)){r=l;continue}if(t.length>0&&l===`/`&&e[c+1]===`*`){let t=e.indexOf(`*/`,c+2);if(t<0)break;c=t+1;continue}l===`(`||l===`[`?t+=l===`(`?`)`:`]`:l===t.at(-1)?t=t.slice(0,-1):t.length===0&&(l===`@`?(a===-1&&(a=c),n(s,c)):a===-1&&(l===`:`&&i===-1?i=c:l===`!`&&(o=c)))}let c=a===-1?e.length:a,l=e.slice(0,c),u=!1;c>0&&o===c-1&&(u=!0,l=l.slice(0,-1));let d=[];for(let t=0;t<s.length;t++){let r=s[t]+1,i=t+1<s.length?s[t+1]:e.length;n(d,e.slice(r,i))}return i!==-1&&i<c?{raw:e,body:l,property:e.slice(0,i),value:l.slice(i+1),keyword:!1,important:u,conditions:d}:{raw:e,body:l,keyword:!0,important:u,conditions:d}}function i(e,t){let n=e.length;n in e?Object.defineProperty(e,n,{configurable:!0,enumerable:!0,value:t,writable:!0}):e[n]=t}function a(e){let t=[],n=[],r=new Map,a=!1,o,s;for(let c=0;c<e.length;c++){let l=e[c];if(n.length===0){l===`\\`?(/\s/.test(e[c+1]??``)&&(o=void 0),c++):/\s/.test(l)?o=void 0:l===`"`||l===`'`?o=o===l?void 0:o??l:!o&&l===`[`&&i(n,c);continue}if((s||a)&&l===`[`&&/[:@\s]/.test(e[c-1])){i(n,c),r.set(c,s??a),a=!1,s=void 0;continue}if(a){l===`*`&&e[c+1]===`/`&&(a=!1,c++);continue}if(s){l===`\\`?c++:l===s&&(s=void 0);continue}if(l===`/`&&e[c+1]===`*`)a=!0,c++;else if(l===`"`||l===`'`)s=l;else if(l===`\\`)c++;else if(l===`[`)i(n,c);else if(l===`]`){let o=n.pop(),l=r.get(o);(/[:@]/.test(e[o-1])||e[c+1]===`:`)&&i(t,{end:c+1,start:o}),l===!0?a=!0:l&&(s=l)}}let c=[];for(let e of t.sort((e,t)=>e.start-t.start||t.end-e.end))(!c.length||e.start>=c.at(-1).end)&&i(c,e);return c}function o(e,t,n){let r=e[t];if(n.blockComment)return r===`*`&&e[t+1]===`/`?(n.blockComment=!1,t+1):t;if(n.quote)return r===`\\`?t+1:(r===n.quote&&(n.quote=void 0),t);if(n.closers.length>0&&r===`/`&&e[t+1]===`*`)return n.blockComment=!0,t+1;if(n.closers.length>0&&(r===`"`||r===`'`))return n.quote=r,t;if(n.closers.length>0&&r===`\\`)return t+1;if(r===`(`||r===`[`)return d(n.closers,r===`(`?`)`:`]`),t;if(r===n.closers.at(-1))return n.closers.pop(),t}function s(e,t,n=e.length){let r={closers:[]};for(let i=t+1;i<n;i++){let t=e[i],n=o(e,i,r);if(n!==void 0){i=n;continue}if(r.closers.length===0){if(t===`}`)return{index:i,kind:`close`};if(t===`{`)return{index:i,kind:`open`}}}return{index:n,kind:`limit`}}const c=/[\s'"`;{},\])]/;function l(e,t,n=e.length){if(e[t]!==`@`)return{conds:``,end:t};let r={closers:[]},i=t;for(;i<n;i++){let t=e[i],n=o(e,i,r);if(n!==void 0){i=n;continue}if(t===`/`&&(e[i+1]===`/`||e[i+1]===`*`)&&r.closers.length===0||c.test(t)&&r.closers.length===0)break}return{conds:e.slice(t,i),end:i}}function u(e){let t=[],n={closers:[]},r=0;for(let i=0;i<e.length;i++){let a=e[i],s=o(e,i,n);if(s!==void 0){i=s;continue}a===`;`&&n.closers.length===0&&(d(t,e.slice(r,i)),r=i+1)}return d(t,e.slice(r)),t.map(e=>e.trim()).filter(Boolean)}function d(e,t){Object.defineProperty(e,e.length,{configurable:!0,enumerable:!0,value:t,writable:!0})}const f=/^(?:--?[\w-]+|[A-Z_$][\w$-]*|@teacss-skip-bracket-[\da-z]{6})$/i;function p(e,t){let n=t;for(;n>0&&/[\w-]/.test(e[n-1]);)n--;if(n===t||e[n-1]!==`:`)return!1;let r=n-1,i=r;for(;i>0&&/[\w$@-]/.test(e[i-1]);)i--;if(!f.test(e.slice(i,r)))return!1;let a=i-1;for(;a>=0&&/\s/.test(e[a]);)a--;return a<0||!`{,?`.includes(e[a])}function m(e){let t=[],n=[],r=[],i=!1,a;for(let o=0;o<e.length;o++){let s=e[o],c=e[o+1];if(n.length===0){s===`(`&&p(e,o)&&d(n,{attached:!0,start:o});continue}if(i)s===`*`&&c===`/`&&(i=!1,o++);else if(a)s===`\\`?o++:s===a&&(a=void 0);else if(s===`\\`)o++;else if(s===`/`&&c===`*`)i=!0,o++;else if(s===`'`||s===`"`||s==="`")a=s;else if(r.length>0)s===`[`||s===`(`?d(r,s===`[`?`]`:`)`):s===r.at(-1)&&r.pop();else if(s===`[`)d(r,`]`);else if(s===`(`)d(n,{attached:p(e,o),start:o});else if(s===`)`){let e=n.pop();e.attached&&d(t,{end:o+1,start:e.start})}}let o=[];for(let e of t.sort((e,t)=>e.start-t.start||t.end-e.end))(o.length===0||e.start>=o.at(-1).end)&&d(o,e);return o}function h(e){let t={seen:!1},n=g(e,t);for(let e=1;e<5&&t.seen;e++){t.seen=!1;let e=g(n,t);if(e===n)break;n=e}return n}function g(e,t){if(!e.includes(`{`))return e;let n=``,r=0,i=-1,c=0,d=0,f=e.includes(`[`)?a(e):[],p=e.includes(`(`)?m(e):[],h={closers:[]};for(;r<e.length;){for(;c<f.length&&f[c].end<=r;)c++;for(;d<p.length&&p[d].end<=r;)d++;let a=c<f.length?f[c]:void 0,m=d<p.length?p[d]:void 0,g=a?.start===r?a:m?.start===r?m:void 0;if(g&&h.blockComment!==!0&&h.quote===void 0){n+=e.slice(r,g.end),r=g.end;continue}h.closers.length>0&&/\s/.test(e[r])&&(h.blockComment=!1,h.closers.length=0,h.quote=void 0);let _=o(e,r,h);if(_!==void 0){n+=e.slice(r,_+1),r=_+1;continue}let v=e[r];if(h.closers.length>0||v!==`{`){n+=v,r++;continue}let y=s(e,r);if(y.kind!==`close`){y.kind===`open`&&t&&(t.seen=!0),n+=e.slice(r,y.index),r=y.index;continue}let b=y.index,x=e.slice(r+1,b),{conds:S,end:C}=l(e,b+1),w=u(x);if(w.length===0){n+=v,r++;continue}i===r&&n.length>0&&!/\s/.test(n.at(-1))&&(n+=` `),n+=w.map(e=>`${e}${S}`).join(` `),i=C,r=C}return n}function _(e){let t=e.split(/\s+/);return t[0]===``&&t.shift(),t.at(-1)===``&&t.pop(),t}function v(e){if(!e.includes(`[`))return _(e);let t=a(e);if(t.length===0)return _(e);let n=[],r=0,o=-1;for(let a=0;a<e.length;a++){let s=t[r];if(s&&a===s.start){o<0&&(o=a),a=s.end-1,r++;continue}/\s/.test(e[a])?(o>=0&&i(n,e.slice(o,a)),o=-1):o<0&&(o=a)}return o>=0&&i(n,e.slice(o)),n}const y=!1;var b=class extends TypeError{name=`MergerProtocolError`;code;plugin;hook;constructor(e,t,n,r){super(`[TeaCSS merge:${e}] ${t}`),this.code=e,n!==void 0&&(this.plugin=n),r!==void 0&&(this.hook=r)}};function x(){return Object.create(null)}const S=`must have an integer length from 0 through 4294967294`,C=Symbol(`missing-own-value`);function w(e,t){return`value`in t?t.value:t.get===void 0?void 0:Reflect.apply(t.get,e,[])}function T(e,t){let n=Reflect.getOwnPropertyDescriptor(e,t);return n===void 0?C:w(e,n)}function E(e,t){let n=T(e,t);return n===C?void 0:n}function D(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0})}function O(e,t){let n=e.length;n in e?D(e,n,t):e[n]=t}function k(e){let t=T(e,`length`);return typeof t==`number`&&Number.isInteger(t)&&t>=0&&t<4294967295?t:null}function ee(e){let t=``,n=k(e);if(n===null)throw new b(`INVALID_ARRAY_LENGTH`,`class-value array ${S}`);for(let r=0;r<n;r++){let n=T(e,r);if(n===C)continue;let i=te(n);i&&(t+=(t&&` `)+i)}return t}function te(e){if(!e)return``;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`bigint`)return String(e);if(Array.isArray(e))return ee(e);if(typeof e==`object`){let t=e,n=``;for(let e of Reflect.ownKeys(t)){if(typeof e!=`string`)continue;let r=Reflect.getOwnPropertyDescriptor(t,e);r===void 0||!r.enumerable||w(t,r)&&(n+=(n&&` `)+e)}return n}return``}function ne(e,t){let n=e;for(let e of t){let t=n.children??=new Map,r=t.get(e);r===void 0&&(r=x(),t.set(e,r)),n=r}return n}function re(e,t,n){let r=ne(e,t);return n?r.keywords??=new Map:r.declarations??=new Map}function ie(e){if(e.length===0)return``;if(e.length===1){let t=T(e,0);return t===C?``:t??``}let t=x(),n=new Uint8Array(e.length),i=new Uint8Array(e.length);for(let a=0;a<e.length;a++){let o=r(e[a]),s=re(t,o.conditions,o.keyword),c=o.property??o.body,l=s.get(c);n[a]=+!!o.important,l===void 0?s.set(c,a):n[l]!==0&&n[a]===0?i[a]=1:(i[l]=1,s.set(c,a))}let a=[];for(let t=0;t<e.length;t++)i[t]===0&&O(a,e[t]);return a.join(` `)}function ae(e,t){if(typeof e==`string`)return e.length===0?null:[e];if(!Array.isArray(e))return null;let n=k(e);if(n===null||n===0)return null;let r=[],i=null;for(let a=0;a<n;a++){let n=T(e,a);if(n===C||typeof n!=`string`||n.length===0)return null;(i===null?r.includes(n):i.has(n))||(O(r,n),i===null?r.length===(t?64:4)&&(i=new Set(r)):i.add(n))}return t&&r.length>1&&r.sort(),r}function oe(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function A(e,t,n,r,i){for(let a of Reflect.ownKeys(t)){if(typeof a!=`string`)continue;let o=Reflect.getOwnPropertyDescriptor(t,a);if(o===void 0||!o.enumerable)continue;let s=ae(w(t,o),!0);if(s===null)throw new b(`INVALID_STATIC_CONFLICT`,`"${r}" ${n} "${a}" must contain at least one non-empty atom`,i);let c=e.get(a);if(c===void 0){e.set(a,{atoms:s,atomSet:s.length>4?new Set(s):null,source:r});continue}if(!oe(c.atoms,s))throw new b(`STATIC_CONFLICT_COLLISION`,`static ${n} "${a}" has conflicting atom sets from "${c.source}" and "${r}"`,i)}}function j(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function M(e){if(!j(e))return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function se(e,t,n){if(!j(e))throw new b(`INVALID_CONFLICT_META`,`"${t}" conflicts must be an object`,n);let r=E(e,`keywords`);if(!M(r))throw new b(`INVALID_CONFLICT_META`,`"${t}" keywords must be a record`,n);let i=E(e,`overlaps`);if(!M(i))throw new b(`INVALID_CONFLICT_META`,`"${t}" overlaps must be a record`,n);return{keywords:r,overlaps:i}}function N(e,t,n,r){if(n!==void 0){if(typeof n!=`function`)throw new b(`INVALID_PLUGIN_HOOK`,`plugin "${e}" ${t} must be a function`,e,r);return n}}function ce(e){let t=[],n=[],r=[],i=[],a=[],o=new Set,s=k(e);if(s===null)throw new b(`INVALID_OPTIONS`,`options.plugins must be an array with an integer length from 0 through 4294967294`);for(let c=0;c<s;c++){let s=T(e,c),l=s===C?void 0:s;if(!j(l))throw new b(`INVALID_PLUGIN_NAME`,`plugin at index ${c} must have a non-empty name`);let u=E(l,`name`);if(typeof u!=`string`||u.length===0)throw new b(`INVALID_PLUGIN_NAME`,`plugin at index ${c} must have a non-empty name`);if(o.has(u))throw new b(`DUPLICATE_PLUGIN_NAME`,`duplicate plugin name "${u}"`,u);o.add(u);let d=E(l,`conflicts`),f=N(u,`tokens`,E(l,`tokens`),`tokens`),p=N(u,`group`,E(l,`group`),`group`),m=N(u,`finalize`,E(l,`finalize`),`finalize`),h=N(u,`resolveFamily`,E(l,`resolveFamily`),`resolveFamily`),g=N(u,`resolve`,E(l,`resolve`),`resolve`);if(h!==void 0&&g===void 0)throw new b(`INVALID_PLUGIN_HOOK`,`plugin "${u}" resolveFamily requires resolve`,u,`resolveFamily`);O(t,{name:u,conflicts:d===void 0?void 0:se(d,u,u)}),f!==void 0&&O(n,{name:u,hook:f}),p!==void 0&&O(r,{name:u,hook:p}),m!==void 0&&O(i,{name:u,hook:m}),g!==void 0&&O(a,{name:u,hook:g,family:h})}return{metadata:t,tokens:n,groups:r,finalizers:i,resolvers:a,allResolversScoped:a.every(e=>e.family!==void 0)}}function le(e,t){let n=new Map,r=new Map;e!==void 0&&(A(n,e.keywords,`keyword`,`<options.conflicts>`),A(r,e.overlaps,`declaration`,`<options.conflicts>`));for(let e of t)e.conflicts!==void 0&&(A(n,e.conflicts.keywords,`keyword`,e.name,e.name),A(r,e.conflicts.overlaps,`declaration`,e.name,e.name));return{keywords:n,overlaps:r}}function ue(e){let t=r(e);return{raw:e,prefix:t.property??t.body,body:t.body,value:t.value,keyword:t.keyword,conditions:t.conditions,important:t.important}}function de(){let e=new Map;return t=>{let n=e.get(t);if(n!==void 0)return n;let r=ue(t);return e.set(t,r),r}}function fe(e,t,n){if(t.length===0)return e;let r=e,i={viewToken:n};for(let e of t){let t=e.hook,n=t(r,i),a=`plugin "${e.name}" tokens() must return an array of individual non-empty class tokens`;if(!Array.isArray(n))throw new b(`INVALID_TOKEN_TRANSFORM_RESULT`,a,e.name,`tokens`);let o=[],s=k(n);if(s===null)throw new b(`INVALID_TOKEN_TRANSFORM_RESULT`,a,e.name,`tokens`);for(let t=0;t<s;t++){let r=T(n,t);if(r===C||typeof r!=`string`||r.length===0)throw new b(`INVALID_TOKEN_TRANSFORM_RESULT`,a,e.name,`tokens`);let i=v(r);if(i.length!==1||i[0]!==r)throw new b(`INVALID_TOKEN_TRANSFORM_RESULT`,a,e.name,`tokens`);O(o,r)}r=o}return r}function pe(e,t){let n=null;for(let r=0;r<t.length;r++){let i=t[r];if(i.family===void 0)continue;let a=i.family,o=a(e);if(o!==null&&(typeof o!=`string`||o.length===0))throw new b(`INVALID_RESOLVE_FAMILY_RESULT`,`plugin "${i.name}" resolveFamily() must return null or a non-empty string`,i.name,`resolveFamily`);o!==null&&((n??=Array.from({length:t.length},()=>null))[r]=o)}return n}function me(e,t,n,r,i,a){let o=a(e);for(let e of n){let n=e.hook,i=n(o);if(i===null)continue;if(i===!1)return{id:t,view:o,atoms:[],atomSet:null,pluginGrouped:!0,opaque:!0,resolverFamilies:null};let a=ae(i,!1);if(a===null)throw new b(`INVALID_GROUP_RESULT`,`plugin "${e.name}" group() must return null, MERGE_OPAQUE, or at least one non-empty atom`,e.name,`group`);return{id:t,view:o,atoms:a,atomSet:a.length>4?new Set(a):null,pluginGrouped:!0,opaque:!1,resolverFamilies:pe(o,r)}}let s=o.keyword?i.keywords.get(o.prefix):i.overlaps.get(o.prefix);return{id:t,view:o,atoms:s===void 0?[o.keyword?`@teacss/classes:keyword:${o.prefix}`:`@teacss/classes:declaration:${o.prefix}`]:s.atoms,atomSet:s===void 0?null:s.atomSet,opaque:!1,resolverFamilies:pe(o,r)}}function he(e,t){let n=new Map;for(let r of e){if(!r.opaque)continue;let e=n.get(r.view.raw);e!==void 0&&(t[e]=1),n.set(r.view.raw,r.id)}}function P(e,t){return new b(`INVALID_FINALIZER_RESULT`,`plugin "${e}" finalize() returned invalid occurrence id ${typeof t==`bigint`?`${t}n`:typeof t==`number`||typeof t==`boolean`||t==null?String(t):typeof t}`,e,`finalize`)}function ge(e,t){let n=[];for(let r of e)!r.opaque&&t[r.id]===0&&O(n,r);return n}function _e(e,t,n,r){let i=!1,a=r;for(let r of t){let t=r.hook,o=t(a?ge(e,n):e.slice());if(o===null)continue;if(!Array.isArray(o))throw P(r.name,o);let s=k(o);if(s===null)throw new b(`INVALID_FINALIZER_RESULT`,`plugin "${r.name}" finalize() result ${S}`,r.name,`finalize`);if(s===0)continue;let c=new Set;for(let t=0;t<s;t++){let i=T(o,t);if(i===C)throw P(r.name,void 0);let a=i;if(!Number.isInteger(a))throw P(r.name,a);let s=a,l=e[s];if(l===void 0||l.opaque||n[s]!==0||c.has(s))throw P(r.name,a);c.add(s)}for(let e of c)n[e]=1;c.size!==0&&(i=!0,a=!0)}return i}function ve(e,t){return e.atomSet?.has(t)??e.atoms.includes(t)}function ye(e,t){return e.pluginGrouped!==!0&&t.pluginGrouped!==!0&&e.view.keyword===t.view.keyword&&e.view.prefix===t.view.prefix}function be(e,t){if(ye(e,t))return!0;if(e.atoms.length<t.atoms.length)return!1;for(let n of t.atoms)if(!ve(e,n))return!1;return!0}function xe(e,t){if(e.atomSet!==null){for(let n of t.atoms)if(e.atomSet.has(n))return!0;return!1}if(t.atomSet!==null){for(let n of e.atoms)if(t.atomSet.has(n))return!0;return!1}for(let n of t.atoms)if(e.atoms.includes(n))return!0;return!1}function Se(e,t){let n=ne(e,t);return n.winners??=new Map}function Ce(e,t,n){let r=x();for(let i of e){if(i.opaque||t[i.id]!==0)continue;let a=n?re(r,i.view.conditions,i.view.keyword):Se(r,i.view.conditions),o=n?i.view.prefix:i.atoms[0],s=a.get(o);if(s===void 0){a.set(o,i.id);continue}e[s].view.important&&!i.view.important?t[i.id]=1:(t[s]=1,a.set(o,i.id))}}function we(e,t,n,r,i){return e.view.important===t.view.important?n||i===`symmetric`?`earlier`:`none`:t.view.important?n?`earlier`:`none`:r?`later`:`none`}function Te(e,t,n,r){let i=be(t,e),a=be(e,t),o=we(e,t,i,a,n);for(let n=0;n<r.length;n++){let s=r[n];if(s.family!==void 0){let r=e.resolverFamilies?.[n]??null,i=t.resolverFamilies?.[n]??null;if(r===null||r!==i)continue}let c=s.hook,l=c(e.view,t.view,{covers:i,earlierCoversLater:a,defaultDrop:o});if(l!==null){if(l===`earlier`||l===`later`||l===`none`)return l;throw new b(`INVALID_RESOLVE_RESULT`,`plugin "${s.name}" resolve() must return null, "earlier", "later", or "none"`,s.name,`resolve`)}}return o}function Ee(e,t,n,r,i){let a=Te(e,t,n,r);a===`earlier`?i[e.id]=1:a===`later`&&(i[t.id]=1)}function De(e,t,n,r,i){let a=t[e];for(let o=e+1;o<t.length;o++){let e=t[o];oe(a.view.conditions,e.view.conditions)&&(!ye(a,e)&&!xe(a,e)||Ee(a,e,n,r,i))}}function Oe(e,t){let n=ne(e,t);return n.postings??=new Map}function ke(e){let t=x(),n=[],r=[],i=e.length*(e.length-1)/2,a=0;for(let o=0;o<e.length;o++){let s=e[o],c=Oe(t,s.view.conditions),l=[];O(n,c),O(r,l);for(let e of s.atoms){let t=c.get(e);if(t===void 0&&(t=[],c.set(e,t)),a+=t.length,a>i)return null;O(l,t.length),O(t,o)}}return{postingMaps:n,positions:r,postingPairVisits:a}}function Ae(e,t,n,r){for(let i=0;i<e.length;i++)De(i,e,t,n,r)}function je(e,t,n,r,i,a){if(a!==null){Ce(e,r,a===`static-prefix`);return}let o=i?ge(e,r):e;if(o.length<16){Ae(o,t,n,r);return}let s=ke(o);if(s===null){Ae(o,t,n,r);return}if(s.postingPairVisits===0)return;let c=new Uint32Array(o.length),l=[];for(let e=0;e<o.length;e++){let i=o[e],a=s.postingMaps[e],u=s.positions[e];if(i.atoms.length===1){let e=a.get(i.atoms[0]);for(let a=u[0]+1;a<e.length;a++)Ee(i,o[e[a]],t,n,r);continue}let d=0;for(let e=0;e<i.atoms.length;e++){let t=a.get(i.atoms[e]);d+=t.length-u[e]-1}if(d>=o.length-e-1){De(e,o,t,n,r);continue}l.length=0;let f=!0,p=e+1;for(let e=0;e<i.atoms.length;e++){let t=a.get(i.atoms[e]);for(let n=u[e]+1;n<t.length;n++){let e=t[n];c[e]!==p&&(c[e]=p,l.length!==0&&e<l[l.length-1]&&(f=!1),O(l,e))}}f||l.sort((e,t)=>e-t);for(let e of l)Ee(i,o[e],t,n,r)}}function Me(e,t,n,r,i){let a=fe(e,r.tokens,i);if(a.length<2&&r.groups.length===0&&r.finalizers.length===0&&r.resolvers.length===0){if(a.length===0)return``;let e=T(a,0);return e===C?``:e??``}let o=[],s=!1,c=a.length>=16&&r.allResolversScoped,l=c,u=c,d,f,p=0;for(let e=0;e<a.length;e++){let n=me(a[e],e,r.groups,r.resolvers,t,i);if(n.opaque)s=!0;else if(p++,n.atoms.length!==1&&(l=!1),n.pluginGrouped===!0?u=!1:d===void 0?(d=n.view.prefix,f=n.view.keyword):(n.view.prefix!==d||n.view.keyword!==f)&&(u=!1),n.resolverFamilies!==null){for(let e of n.resolverFamilies)if(e!==null){l=!1,u=!1;break}}O(o,n)}let m=new Uint8Array(o.length);s&&he(o,m);let h=_e(o,r.finalizers,m,s),g=p<16?null:l?`singleton`:u?`static-prefix`:null;je(o,n,r.resolvers,m,s||h,g);let _=[];for(let e of o)m[e.id]===0&&O(_,e.view.raw);return _.join(` `)}function Ne(e,t,n){let r=T(e,n);if(r===C)return``;if(typeof r==`string`)return r;if(Array.isArray(t)){let e=T(t,n);if(typeof e==`string`)return e}return``}function Pe(e){return typeof e==`number`||typeof e==`bigint`?String(e):te(e)}function Fe(e,t,n){let r=``,i=k(e);if(i===null)throw new b(`INVALID_ARRAY_LENGTH`,`tagged-template strings ${S}`);for(let a=0;a<i;a++)if(r+=Ne(e,t,a),a+1<i&&a+1<n.length){let e=Pe(n[a+1]);r+=e}return r}function Ie(e={}){if(!M(e))throw new b(`INVALID_OPTIONS`,`options must be an object`);let t=E(e,`conflicts`),n=E(e,`overlap`),r=E(e,`plugins`),i=E(e,`cache`);if(n!==void 0&&n!==`precise`&&n!==`symmetric`)throw new b(`INVALID_OPTIONS`,`options.overlap must be "precise" or "symmetric"`);if(r!==void 0&&!Array.isArray(r))throw new b(`INVALID_OPTIONS`,`options.plugins must be an array`);let a=ce(r===void 0?[]:r),o=le(t===void 0?void 0:se(t,`<options.conflicts>`),a.metadata),s=a.tokens.length!==0||a.groups.length!==0||a.finalizers.length!==0||a.resolvers.length!==0,c=!s&&o.keywords.size===0&&o.overlaps.size===0,l=n??`precise`,u=1500;if(i===!1)u=0;else if(i!==void 0){if(!M(i))throw new b(`INVALID_CACHE_OPTIONS`,`options.cache must be false or an object`);let e=E(i,`max`);if(e!==void 0){if(typeof e!=`number`||!Number.isFinite(e)||!Number.isInteger(e)||e<0)throw new b(`INVALID_CACHE_OPTIONS`,`options.cache.max must be a finite non-negative integer`);u=e}}let d=u>0?new Map:null;function f(e){if(d!==null){let t=d.get(e);if(t!==void 0)return d.delete(e),d.set(e,t),t}let t=v(h(e).trim()),n=c?ie(t):Me(t,o,l,a,s?de():ue);return d!==null&&(d.set(e,n),d.size>u&&d.delete(d.keys().next().value)),n}function p(...e){let t=e[0],n=Array.isArray(t)?T(t,`raw`):C;return f(Array.isArray(n)?Fe(t,n,e):ee(e))}return p}const F=Object.prototype.propertyIsEnumerable,I=`definition.className`,L=`definition.variants`,R=`definition.defaultVariants`,z=`definition.compoundVariants`,B=`createReciper options`,Le=`${B}.merge`,V=`recipe props`,H=`className`,Re=`classKeys`,ze=`null is not allowed`,Be=`required own enumerable field`,Ve=new Set([`className`,`variants`,`defaultVariants`,`compoundVariants`,`extend`]),He=new Set([`class`,`className`,`then`,`toJSON`,`toString`,`valueOf`]),Ue=new Set([`class`,`className`,`classKeys`]);function U(e){return e.length>16?new Set(e):void 0}function W(e,t,n){return t?.has(n)??e.includes(n)}function G(e,t){return TypeError(`[TeaCSS recipe] ${e}: ${t}`)}function K(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw G(t,`expected a plain record`);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw G(t,`expected Object.prototype or null prototype`);return Object.keys(e)}function We(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw G(t,`expected a non-null, non-array object`);return Object.keys(e)}function q(e,t,n){let r=Reflect.getOwnPropertyDescriptor(e,t);if(r===void 0||!r.enumerable)throw G(n,`expected an own enumerable field`);return`value`in r?r.value:r.get===void 0?void 0:Reflect.apply(r.get,e,[])}function Ge(e,t){let n=Reflect.getOwnPropertyDescriptor(e,`length`),r=n!==void 0&&`value`in n?n.value:void 0;if(typeof r!=`number`||!Number.isInteger(r)||r<0||r>=4294967295)throw G(t,`expected an array with a valid own length`);return r}function Ke(e,t,n){if(!Array.isArray(e))throw G(t,`expected an array`);let r=Object.keys(e),i=Ge(e,t);if(!n&&i===0)throw G(t,`expected a non-empty array`);if(r.length!==i)throw G(t,`expected a dense own-indexed array`);for(let e of r){let n=Number(e);if(!Number.isInteger(n)||n<0||n>=i||String(n)!==e)throw G(t,`expected a dense own-indexed array`)}let a=X(i);for(let n=0;n<i;n++)a[n]=q(e,n,`${t}[${n}]`);return a}function qe(e,t){if(e.trim().length===0)throw G(t,`name must contain a non-whitespace character`)}function J(e){let t=ee([e]);return t.length===0?void 0:t}function Y(e,t,n){if(n===void 0)return;let r=F.call(e,t)?e[t]:void 0;e[t]=r===void 0?[n]:[...r,n]}function X(e){let t=Array(e);for(let n=0;n<e;n++)n in t?D(t,n,void 0):t[n]=void 0;return t}function Je(){return[void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0]}const Ye=Je().length;function Z(e,t,n){t<Ye||!(t in e)?e[t]=n:D(e,t,n)}function Q(e,t=e.length){let n=X(t),r=Math.min(e.length,t);for(let t=0;t<r;t++){if(!F.call(e,t))continue;let r=e[t];r!==void 0&&(n[t]=[...r])}return n}function Xe(e,t){return e.map(e=>{let n=Object.create(null);for(let r of Object.keys(e.choices))n[r]={fragmentsBySlot:Q(e.choices[r].fragmentsBySlot,t)};return{name:e.name,choices:n,booleanCapable:e.booleanCapable}})}function $(e,t,n){if(e===null)return null;if(typeof e==`string`){if(!F.call(t.choices,e))throw G(n,`unknown choice ${JSON.stringify(e)}`);return e}if(typeof e==`number`){if(!Number.isFinite(e))throw G(n,`expected a finite numeric choice`);let r=String(e);if(!F.call(t.choices,r))throw G(n,`unknown choice ${JSON.stringify(r)}`);return r}if(typeof e==`boolean`){if(!t.booleanCapable)throw G(n,`boolean selection requires a true or false choice`);return String(e)}throw G(n,`expected null, a declared string or finite numeric choice, or a supported boolean state`)}function Ze(e,t,n){if(n&&(e=t.slotNames.length===0?``:{}),typeof e==`string`){if(t!==void 0&&t.slotNames.length>0)throw G(I,`must be a record when extending a multi-element recipe`);let n=t===void 0?X(1):Q(t.baseFragmentsBySlot,1);return Y(n,0,J(e)),{names:[],indexes:Object.create(null),baseFragments:n}}let r=K(e,I);if(t!==void 0&&t.slotNames.length===0)throw G(I,`must be a string when extending a single-element recipe`);if(!n&&r.length===0)throw G(I,`expected at least one named class`);for(let e of r){let t=`${I}.${e}`;if(qe(e,t),He.has(e))throw G(t,`reserved class name`)}let i=t===void 0?[]:[...t.slotNames],a=Object.create(null);for(let e=0;e<i.length;e++)a[i[e]]=e;let o=t===void 0?[]:Q(t.baseFragmentsBySlot),s=e;for(let e of r){let t=a[e];t===void 0&&(t=i.length,O(i,e),a[e]=t,O(o,void 0)),Y(o,t,J(q(s,e,`${I}.${e}`)))}return{names:i,indexes:a,baseFragments:o}}function Qe(e,t,n,r,i,a){if(n){if(typeof t!=`string`)throw G(i,`expected a primitive string`);Y(e,0,J(t));return}let o=K(t,i);if(a&&o.length===0)throw G(i,`expected at least one class target`);let s=t;for(let t of o){let n=r[t];if(n===void 0)throw G(`${i}.${t}`,`unknown class target`);Y(e,n,J(q(s,t,`${i}.${t}`)))}}function $e(e,t,n,r,i){let a=t===void 0?[]:Xe(t.variants,i),o=Object.create(null);for(let e=0;e<a.length;e++)o[a[e].name]=e;if(e===void 0)return{variants:a,indexes:o};if(e===null)throw G(L,ze);let s=K(e,L),c=e;for(let e of s){let t=`${L}.${e}`;if(qe(e,t),Ue.has(e))throw G(t,`reserved variant name`);let s=q(c,e,t),l=K(s,t);if(l.length===0)throw G(t,`expected at least one choice`);let u=s,d=o[e],f;d===void 0?(d=a.length,o[e]=d,f=Object.create(null),O(a,{name:e,choices:f,booleanCapable:!1})):f=a[d].choices;for(let e of l){let a=`${t}.${e}`,o=q(u,e,a),s=f[e],c=s===void 0?X(i):Q(s.fragmentsBySlot,i);Qe(c,o,n,r,a,!1),f[e]={fragmentsBySlot:c}}a[d]={name:e,choices:f,booleanCapable:F.call(f,`true`)||F.call(f,`false`)}}return{variants:a,indexes:o}}function et(e,t,n,r){let i=X(n.length);if(t!==void 0){let e=Math.min(t.defaultStates.length,n.length);for(let n=0;n<e;n++)F.call(t.defaultStates,n)&&(i[n]=t.defaultStates[n])}if(e===void 0)return i;if(e===null)throw G(R,ze);let a=K(e,R),o=U(a);for(let e of a)if(r[e]===void 0)throw G(`${R}.${e}`,`unknown variant`);let s=e;for(let e=0;e<n.length;e++){let t=n[e];if(!W(a,o,t.name))continue;let r=`${R}.${t.name}`,c=q(s,t.name,r);c!==void 0&&(i[e]=$(c,t,r))}return i}function tt(e,t,n){if(!Array.isArray(e)){if(e===void 0)throw G(n,`undefined is not a condition`);return[$(e,t,n)]}let r=Ke(e,n,!1),i=[];for(let e=0;e<r.length;e++){let a=r[e];if(a===void 0)throw G(`${n}[${e}]`,`undefined is not a condition`);O(i,$(a,t,`${n}[${e}]`))}return i}function nt(e,t,n,r,i,a,o){let s=t===void 0?[]:t.compounds.map(e=>({conditions:e.conditions,fragmentsBySlot:Q(e.fragmentsBySlot,i)}));if(e===void 0)return s;if(e===null)throw G(z,ze);let c=Ke(e,z,!0);for(let e=0;e<c.length;e++){let t=c[e],l=`${z}[${e}]`,u=K(t,l),d=U(u),f=W(u,d,Re);if(!W(u,d,H))throw G(`${l}.className`,n||f?`required own enumerable string`:`required own enumerable class map`);for(let e of u)if(e!==H&&e!==Re&&o[e]===void 0)throw G(`${l}.${e}`,`unknown variant condition`);let p=t,m=[];for(let e=0;e<a.length;e++){let t=a[e];if(!W(u,d,t.name))continue;let n=`${l}.${t.name}`;O(m,{variantIndex:e,states:tt(q(p,t.name,n),t,n)})}let h=`${l}.className`,g=q(p,H,h),_=X(i);if(f){let e=`${l}.classKeys`;if(n)throw G(e,`only valid for multi-element recipes`);if(typeof g!=`string`)throw G(h,`expected a primitive string when classKeys is present`);let t=Ke(q(p,Re,e),e,!1),i=J(g);for(let n=0;n<t.length;n++){let a=t[n],o=`${e}[${n}]`;if(typeof a!=`string`)throw G(o,`expected a declared class name`);let s=r[a];if(s===void 0)throw G(o,`unknown class target`);if(t.indexOf(a)!==n)throw G(o,`duplicate class target ${JSON.stringify(a)}`);Y(_,s,i)}}else Qe(_,g,n,r,h,!0);O(s,{conditions:m,fragmentsBySlot:_})}return s}function rt(e,t){let n=K(e,`definition`);for(let e of n)if(!Ve.has(e))throw G(`definition.${e}`,`unknown field`);let r=e,i;if(n.includes(`extend`)){let e=q(r,`extend`,`definition.extend`);if(e!==void 0&&(typeof e!=`function`||(i=t.get(e))===void 0))throw G(`definition.extend`,`expected a recipe from this exact reciper`)}let a=n.includes(H);if(!a&&i===void 0)throw G(I,Be);let o=Ze(a?q(r,H,I):void 0,i,!a),s=o.baseFragments.length,c=o.names.length===0,l=$e(n.includes(`variants`)?q(r,`variants`,L):void 0,i,c,o.indexes,s),u=et(n.includes(`defaultVariants`)?q(r,`defaultVariants`,R):void 0,i,l.variants,l.indexes),d=nt(n.includes(`compoundVariants`)?q(r,`compoundVariants`,z):void 0,i,c,o.indexes,s,l.variants,l.indexes),f=X(s);for(let e of d)for(let t=0;t<s;t++)e.fragmentsBySlot[t]!==void 0&&O(f[t]??=[],e);return{slotNames:o.names,baseFragmentsBySlot:o.baseFragments,variants:l.variants,defaultStates:u,compounds:d,compoundsBySlot:f}}function it(e,t){if(e===void 0)return t.defaultStates;let n=We(e,V),r=U(n);if(W(n,r,`class`))throw G(`${V}.class`,`reserved field`);if(W(n,r,H))throw G(`${V}.className`,`caller classes belong to a style resolver`);let i=e,a;for(let e=0;e<t.variants.length;e++){let o=t.variants[e];if(!W(n,r,o.name))continue;let s=`${V}.${o.name}`,c=q(i,o.name,s);c!==void 0&&(a??=[...t.defaultStates],a[e]=$(c,o,s))}return a??t.defaultStates}function at(e,t,n){if(t!==void 0){let e=n<Ye||F.call(t,n)?t[n]:void 0;if(e!==void 0)return e}return e[n]}function ot(e,t,n){for(let r of e.conditions){let e=at(t,n,r.variantIndex),i=!1;for(let t of r.states)if(e===t){i=!0;break}if(!i)return!1}return!0}function st(e,t,n){if(n===void 0)return t;for(let r of n)Z(e,t,r),t++;return t}function ct(e,t,n,r,i,a,o){let s,c;if(r!==void 0){let t=We(r,a),n=U(t);if(W(t,n,`class`))throw G(`${a}.class`,`reserved field`);let i=r;for(let r=0;r<e.variants.length;r++){let o=e.variants[r];if(!W(t,n,o.name))continue;let c=`${a}.${o.name}`,l=q(i,o.name,c);l!==void 0&&(s??=Je(),Z(s,r,$(l,o,c)))}W(t,n,`className`)&&(c=q(i,`className`,`${a}.className`))}let l=Je(),u=st(l,0,e.baseFragmentsBySlot[t]);for(let r=0;r<e.variants.length;r++){let i=at(n,s,r);if(i==null)continue;let a=e.variants[r].choices[i];a!==void 0&&(u=st(l,u,a.fragmentsBySlot[t]))}let d=e.compoundsBySlot[t];if(d!==void 0)for(let e of d)ot(e,n,s)&&(u=st(l,u,e.fragmentsBySlot[t]));c!==void 0&&(Z(l,u,c),u++),l.length=u;let f=Reflect.apply(i,void 0,l);if(typeof f!=`string`)throw G(o,`merger must return a primitive string`);return f}function lt(e,t,n){Object.defineProperty(e,t,{value:n,configurable:!0,enumerable:!0,writable:!0})}function ut(e){let t={};for(let n of e.variants)lt(t,n.name,Object.freeze(Object.keys(n.choices)));let n={};for(let t=0;t<e.variants.length;t++){let r=e.defaultStates[t];typeof r==`string`&&lt(n,e.variants[t].name,r)}return Object.freeze({anatomy:Object.freeze([...e.slotNames]),variants:Object.freeze(t),defaultVariants:Object.freeze(n),compoundVariantCount:e.compounds.length})}function dt(e,t){return Object.defineProperty(e,"config",{value:ut(t),configurable:!1,enumerable:!1,writable:!1}),e}function ft(e,t){return e.slotNames.length===0?dt((n=>ct(e,0,e.defaultStates,n,t,V,`recipe result`)),e):dt((n=>{let r=it(n,e),i=Object.create(null);for(let n=0;n<e.slotNames.length;n++){let a=e.slotNames[n];i[a]=i=>ct(e,n,r,i,t,`style props.${a}`,`style result.${a}`)}return i}),e)}function pt(e){let t=K(e,B);for(let e of t)if(e!==`merge`)throw G(B,`unknown field ${JSON.stringify(e)}`);if(!t.includes(`merge`))throw G(Le,Be);let n=q(e,`merge`,Le);if(typeof n!=`function`)throw G(Le,`expected a callable merger`);let r=n,i=new WeakMap;return(e=>{let t=rt(e,i),n=ft(t,r);return i.set(n,t),n})}export{y as MERGE_OPAQUE,b as MergerProtocolError,Ie as createMerger,pt as createReciper,e as omitAttributes};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teacss/classes",
3
- "version": "0.3.8",
3
+ "version": "0.4.1",
4
4
  "description": "TeaCSS class composition — typed recipes, nested class-value joining, and semantic conflict resolution.",
5
5
  "homepage": "https://css.teasim.com",
6
6
  "funding": "https://github.com/sponsors/billgo",
@@ -22,7 +22,7 @@
22
22
  "dev": "tsdown --watch"
23
23
  },
24
24
  "devDependencies": {
25
- "@teacss/core": "0.3.8"
25
+ "@teacss/core": "0.4.1"
26
26
  },
27
27
  "engines": {
28
28
  "node": ">=22.12.0"