@teacss/classes 0.3.5 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -152,7 +152,7 @@ type DefinitionVariantSelections<Variants extends VariantSchema> = VariantSelect
|
|
|
152
152
|
/**
|
|
153
153
|
* Read-only introspection snapshot carried by every recipe function so
|
|
154
154
|
* tooling (dead-token guards, docs generators, Storybook controls) can
|
|
155
|
-
* enumerate the variant space without parsing source. `
|
|
155
|
+
* enumerate the variant space without parsing source. `anatomy` lists the
|
|
156
156
|
* declared `className` object keys (empty for single-element recipes),
|
|
157
157
|
* `variants` maps each axis to its choice names, `defaultVariants` reports
|
|
158
158
|
* declared defaults (booleans in their normalized `"true"`/`"false"`
|
|
@@ -160,7 +160,7 @@ type DefinitionVariantSelections<Variants extends VariantSchema> = VariantSelect
|
|
|
160
160
|
* entries.
|
|
161
161
|
*/
|
|
162
162
|
interface RecipeIntrospection {
|
|
163
|
-
readonly
|
|
163
|
+
readonly anatomy: readonly string[];
|
|
164
164
|
readonly variants: Readonly<Record<string, readonly string[]>>;
|
|
165
165
|
readonly defaultVariants: Readonly<Record<string, string>>;
|
|
166
166
|
readonly compoundVariantCount: number;
|
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({slots: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){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};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teacss/classes",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.7",
|
|
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.
|
|
25
|
+
"@teacss/core": "0.3.7"
|
|
26
26
|
},
|
|
27
27
|
"engines": {
|
|
28
28
|
"node": ">=22.12.0"
|