@teacss/rule-helpers 0.8.4 → 0.9.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -43,6 +43,22 @@ Use `makeArbitraryValueRule` for dynamic bracket and variable fallbacks.
43
43
  `constructor`, while ignoring inherited values. Reuse the exported CSS
44
44
  identifier and grammar helpers instead of maintaining partial validators.
45
45
 
46
+ CSS easing validation requires integer tokens for literal `steps()` counts;
47
+ numeric functions and variable substitutions remain supported. In `linear()`,
48
+ the one or two percentages may appear together before or after the output number.
49
+ The validator accepts a single stop, including `linear(0)`, following the
50
+ [CSS Easing editor's draft](https://drafts.csswg.org/css-easing-2/#the-linear-easing-function).
51
+ This is grammar validation, not browser feature detection. Chromium 153,
52
+ Firefox 155 and WebKit 26.6 reject that form; `linear(0,0)` provides constant
53
+ zero output in those engines. The `linear` keyword instead produces 0→1 progress.
54
+
55
+ For `steps()` and `cubic-bezier()`, literal ranges and numeric types are checked;
56
+ correctly typed calculations retain CSS rounding and clamping even where browser
57
+ support differs. Escaped function names, comments around arguments, variable step
58
+ positions and complete variable argument lists are accepted. The validator does
59
+ not expand variables mixed with other arguments into multiple components.
60
+ See the [audit and remaining parser/browser limits](../../docs/knowledge/steps-and-cubic-bezier-easing.md).
61
+
46
62
  This package does not choose vocabulary or run generation.
47
63
 
48
64
  Pre-1.0. Helper behavior remains preset-oriented.
@@ -0,0 +1 @@
1
+ import{cssLengthPercentageUnitRESource as e,cssLengthUnitRESource as t,cssNamedColors as n,globalKeywords as r}from"./constants.js";import{a as i,c as a,i as o,n as s,t as c}from"./css-identifier-4yDg85cV.js";import{findClosingParenthesis as l,hasTopLevelDelimiter as u,splitTopLevelCommas as d,splitTopLevelDelimiter as f,splitTopLevelWhitespace as p}from"./css-syntax.js";const ee=new Set([`default`,...r]);function m(e){return e.includes(`\\`)&&i(e)?o(e).toLowerCase():e.toLowerCase()}function h(e){if(!i(e))return!1;let t=o(e);return t.startsWith(`--`)&&t.length>2}function g(e){return i(e)&&!ee.has(o(e).toLowerCase())}function _(e){if(!e.endsWith(`)`))return;let t=s(e);if(t==null||e[t]!==`(`)return;let n=l(e,t);if(n===e.length-1)return{name:o(e.slice(0,t)).toLowerCase(),args:e.slice(t+1,n).trim()}}function v(e){let t=_(e.trim());return t!=null&&(t.name===`var`||t.name===`env`)&&b(t.name,t.args)}function te(e){let t=[],n=[],r=0;for(let i=0;i<e.length;){let a=e[i];if(a===`/`&&e[i+1]===`*`){let t=e.indexOf(`*/`,i+2);if(t<0)return;i=t+2;continue}if(a===`"`||a===`'`){let t=a;for(i++;i<e.length&&e[i]!==t;)i=e[i]===`\\`?c(e,i)??i+2:i+1;if(i>=e.length)return;i++;continue}let l=s(e,i);if(l!=null){if(e[l]!==`(`){i=l;continue}let n=o(e.slice(i,l)).toLowerCase(),a=n===`var`||n===`env`;t.push({start:i,open:l,close:`)`,name:n,activeSubstitution:a&&r===0}),a&&r++,i=l+1;continue}if(a===`\\`){i=c(e,i)??i+2;continue}if(a===`(`||a===`[`||a===`{`){t.push({start:i,open:i,close:a===`(`?`)`:a===`[`?`]`:`}`}),i++;continue}if(a===`,`){let e=t.at(-1);e!=null&&e.comma==null&&(e.comma=i),i++;continue}if(a===`)`||a===`]`||a===`}`){let o=t.pop();if(o==null||o.close!==a)return;if(o.name===`var`||o.name===`env`){r--;let t=e.slice(o.open+1,o.comma??i).trim();if(!y(o.name,t))return;if(o.activeSubstitution&&o.comma!=null){if(n.length>=63)return;n.push({start:o.start,end:i+1,fallback:e.slice(o.comma+1,i).trim()})}}i++;continue}i++}return t.length===0&&r===0?n:void 0}function ne(e,t){let n=[e],r=new Set(n),i=new Set;for(;n.length>0;){let e=n.pop();if(r.delete(e),i.has(e))continue;if(i.size>=64||(i.add(e),!t(e)))return!1;let a=te(e);if(a==null)return!1;for(let t of a){let a=e.slice(0,t.start)+t.fallback+e.slice(t.end);if(!(i.has(a)||r.has(a))){if(i.size+r.size>=64)return!1;n.push(a),r.add(a)}}}return!0}function y(e,t){if(e===`var`)return h(t);if(e!==`env`)return!1;let n=p(t);return n.length>0&&g(n[0])&&n.slice(1).every(e=>/^\+?\d+$/.test(e))}function b(e,t){return!u(t,`;`)&&!u(t,`!`)&&y(e,d(t)[0]??``)}function x(e){let t=d(e);if(t.length>2||!t[0])return!1;let n=p(t[0]);if(n.length!==1&&n.length!==2||!re(n[0]))return!1;if(n.length===1)return!0;let r=m(n[1]);if(r===`%`||r===`raw-string`||g(n[1]))return!0;let i=_(n[1]);return i?.name===`type`&&!!i.args}function re(e){let t=e.indexOf(`|`);return t<0?i(e):e.indexOf(`|`,t+1)<0&&(t===0||i(e.slice(0,t)))&&i(e.slice(t+1))}function ie(e){let t=f(e,`;`);return t.at(-1)===``&&t.pop(),t.length>0&&t.every(e=>{let t=f(e,`:`);return t.length>=2&&!!t[0]})}function S(e,t){if(e.startsWith(`--`)&&e.length>2)return!t||d(t).every(Boolean);if(e===`if`)return!!t&&ie(t);if(e===`inherit`){let e=d(t);return e.length<=2&&!!e[0]}if(e===`random-item`){let e=d(t);return e.length>=2&&!!e[0]}return!1}function C(e){let t=d(e);if(t.length<2||!t[0])return;let n=[],r=!1;for(let e of t.slice(1)){if(!e)return;let t=f(e,`:`);if(t.length<2){if(n.length===0||r)return;r=!0;continue}let i=t.slice(1).join(`:`).trim();if(!t[0]||!i)return;n.push(i),r=!1}return n.length>0&&!r?n:void 0}function ae(e,t=Boolean){let n=_(e.trim());if(n==null||!n.args)return!1;if(n.name===`first-valid`)return d(n.args).every(Boolean);if(n.name===`toggle`){let e=d(n.args);return e.every(Boolean)&&e.every(e=>!/(?:^|[^-\w])(?:attr|calc|toggle)\s*\(/i.test(e)&&t(e))}if(n.name!==`interpolate`)return!1;let r=C(n.args);if(r!=null)return r.every(t);let i=p(n.args),a=i.findIndex(e=>m(e)===`of`);return a>0&&a<i.length-1}const oe=new Set(`abs.acos.asin.atan.atan2.attr.calc.calc-interpolate.calc-mix.clamp.cos.env.exp.hypot.log.max.min.mod.pow.progress.random.rem.round.sibling-count.sibling-index.sign.sin.sqrt.tan.var`.split(`.`)),w=/^[+-]?(?:\d+|\d*\.\d+)(?:e[+-]?\d+)?$/i,T=/^\+?(?:\d+|\d*\.\d+)(?:e[+-]?\d+)?$/i,E=/^[+-]?(?:\d+|\d*\.\d+)(?:e[+-]?\d+)?%$/i,D=/^[+-]?(?:\d+|\d*\.\d+)(?:e[+-]?\d+)?(?:deg|grad|rad|turn)$/i,O=RegExp(`^[+-]?(?:\\d+|\\d*\\.\\d+)(?:e[+-]?\\d+)?${e}$`,`i`),se=RegExp(`^([+-]?(?:\\d+|\\d*\\.\\d+)(?:e[+-]?\\d+)?)(${e})?$`,`i`),k=RegExp(`^\\+?(?:\\d+|\\d*\\.\\d+)(?:e[+-]?\\d+)?${e}$`,`i`),ce=RegExp(`^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)${e}$`,`i`);function A(e){let t=e.trim();return(w.test(t)||O.test(t))&&Number.parseFloat(t)<0}function le(e){return p(e).some(A)}const ue=new Set([`deg`,`grad`,`rad`,`turn`]),de=new Set([`fr`]),fe=new Set([`hz`,`khz`]),pe=new Set([`dpcm`,`dpi`,`dppx`,`x`]),me=new Set([`ms`,`s`]),he=new Set([`e`,`infinity`,`-infinity`,`nan`,`pi`]),ge=RegExp(`^${t}$`,`i`);function j(e){if(ue.has(e))return`angle`;if(de.has(e))return`flex`;if(fe.has(e))return`frequency`;if(pe.has(e))return`resolution`;if(me.has(e))return`time`;if(ge.test(e))return`length`}function M(e,t,n=!1){if(e===`unknown`)return t;if(t===`unknown`)return e;if(n&&(e===`length`&&t===`percentage`||e===`percentage`&&t===`length`))return`length-percentage`;if(n&&e===`length-percentage`&&(t===`length`||t===`percentage`))return e;if(n&&t===`length-percentage`&&(e===`length`||e===`percentage`))return t;if(typeof e==`string`||typeof t==`string`)return e===t?e:void 0;let r=new Set([...Object.keys(e.exponents),...Object.keys(t.exponents)]);return e.percentHint===t.percentHint&&[...r].every(n=>(e.exponents[n]??0)===(t.exponents[n]??0))?e:void 0}function N(e,t){return typeof e!=`string`||e===`unknown`?typeof e==`string`?void 0:e:e===`number`?{exponents:{}}:e===`length-percentage`?{exponents:{length:1},percentHint:`length`}:e===`percentage`?t?{exponents:{length:1},percentHint:`length`}:{exponents:{percent:1},percentHint:`percent`}:{exponents:{[e]:1}}}function P(e){let t=Object.fromEntries(Object.entries(e.exponents).filter(([,e])=>e!==0)),n=Object.entries(t);return n.length===0?`number`:n.length===1&&n[0][1]===1?n[0][0]===`percent`?`percentage`:n[0][0]===`length`?e.percentHint===`length`?`length-percentage`:`length`:n[0][0]:{exponents:t,percentHint:e.percentHint}}function F(e,t){return e==null?t:t==null||e===t?e:`conflict`}function _e(e,t,n){if(e===`unknown`||t===`unknown`)return`unknown`;let r=N(e,n),i=N(t,n);if(r==null||i==null)return;let a={...r.exponents};for(let[e,t]of Object.entries(i.exponents))a[e]=(a[e]??0)+t;return P({exponents:a,percentHint:F(r.percentHint,i.percentHint)})}function ve(e,t,n){if(e===`unknown`||t===`unknown`)return`unknown`;let r=N(e,n),i=N(t,n);if(r==null||i==null)return;let a={...r.exponents};for(let[e,t]of Object.entries(i.exponents))a[e]=(a[e]??0)-t;return P({exponents:a,percentHint:F(r.percentHint,i.percentHint)})}function I(e,t=!1){if(e.length!==0)return e.reduce((e,n)=>e==null?void 0:M(e,n,t),e[0])}function ye(e){let t=e.filter(e=>e!==`unknown`);return t.length===0?e.length>0?`unknown`:void 0:t.slice(1).reduce((e,t)=>e==null?void 0:M(e,t),t[0])}function be(e){if(!x(e))return;let t=p(d(e)[0]);if(t.length===1)return`unknown`;let n=t[1],r=m(n);if(r===`number`)return`number`;if(r===`%`)return`percentage`;let i=j(r);if(i!=null)return i;let a=_(n);if(a?.name!==`type`)return`unknown`;let o=a.args.replace(/\s+/g,``).toLowerCase();return o===`<number>`||o===`<integer>`?`number`:o===`<percentage>`?`percentage`:/^<(?:angle|flex|frequency|length|resolution|time)>$/.test(o)?o.slice(1,-1):o===`<length-percentage>`?`length-percentage`:`unknown`}function L(e,t,n,r=!1){let i=0,o=()=>{for(;a(e[i]);)i++},c=()=>{if(o(),e[i]===`(`){i++;let t=d();return o(),t==null||e[i]!==`)`?void 0:(i++,t)}let a=e.slice(i).match(/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?/i)?.[0];if(a!=null){if(i+=a.length,e[i]===`%`)return i++,`percentage`;let t=s(e.slice(i));if(t!=null){let n=m(e.slice(i,i+t));return i+=t,j(n)}return`number`}let c=s(e.slice(i));if(c==null)return;let u=e.slice(i,i+c),f=m(u);if(i+=c,e[i]===`(`){let a=l(e,i);if(a==null)return;let o=e.slice(i+1,a).trim();return i=a+1,B(f,o,t,n,r)}if(he.has(f)||t.has(f)||n&&g(u))return`number`},u=()=>{let t=c();if(t!=null)for(;;){let n=i;o();let a=e[i];if(a!==`*`&&a!==`/`)return i=n,t;i++;let s=c();if(s==null||(t=a===`*`?_e(t,s,r):ve(t,s,r),t==null))return}},d=()=>{let t=u();if(t!=null)for(;;){let n=i;o();let a=i>n,s=e[i];if(s!==`+`&&s!==`-`)return t;if(!a)return;i++;let c=i;if(o(),i===c)return;let l=u();if(l==null||(t=M(t,l,r),t==null))return}},f=d();return o(),f!=null&&i===e.length?f:void 0}const R=new Set([`number`,`unknown`]),z=new Set([`angle`,`number`,`unknown`]),xe=new Map([[`sin`,{arity:[1],accepts:z,result:`number`}],[`cos`,{arity:[1],accepts:z,result:`number`}],[`tan`,{arity:[1],accepts:z,result:`number`}],[`asin`,{arity:[1],accepts:R,result:`angle`}],[`acos`,{arity:[1],accepts:R,result:`angle`}],[`atan`,{arity:[1],accepts:R,result:`angle`}],[`atan2`,{arity:[2],sameType:!0,result:`angle`}],[`pow`,{arity:[2],accepts:R,result:`number`}],[`sqrt`,{arity:[1],accepts:R,result:`number`}],[`exp`,{arity:[1],accepts:R,result:`number`}],[`log`,{arity:[1,2],accepts:R,result:`number`}],[`abs`,{arity:[1],result:`argument`}],[`sign`,{arity:[1],result:`number`}],[`mod`,{arity:[2],result:`combined`}],[`rem`,{arity:[2],result:`combined`}]]);function B(e,t,n,r=!1,i=!1){if(e===`sibling-count`||e===`sibling-index`)return t?void 0:`number`;if(S(e,t))return`unknown`;if(!t)return;if(e===`var`||e===`env`)return b(e,t)?`unknown`:void 0;if(e===`attr`)return be(t);if(!oe.has(e))return;let a=d(t),o=e=>{if(e.some(e=>!e))return;let t=e.map(e=>L(e,n,r,i));return t.some(e=>e==null)?void 0:t};if(e===`calc`)return a.length===1?L(t,n,r,i):void 0;if(e===`progress`){if(a.length!==3)return;let e=[...a],t=p(e[0]);m(t[0]??``)===`no-clamp`&&(e[0]=e[0].slice(t[0].length).trim());let n=o(e);return n!=null&&I(n,i)!=null?`number`:void 0}if(e===`calc-mix`){let e=a.map(e=>{let t=L(e,n,r,i);if(t!=null)return t;let a=p(e),o=a.at(-1);if(o==null||a.length<2)return;let s=L(o,n,r,!1);if(E.test(o)){let e=Number(o.slice(0,-1));if(e<0||e>100)return}else if(s!==`percentage`&&s!==`unknown`)return;return L(e.slice(0,e.length-o.length).trim(),n,r,i)});return e.some(e=>e==null)?void 0:I(e,i)}if(e===`calc-interpolate`){let e=C(t),n=e==null?void 0:o(e);return n==null?void 0:I(n,i)}if(e===`random`){if(a.length<2||a.length>4)return;let e=e=>{let t=_(e);if(t!=null&&(t.name===`var`||t.name===`env`))return b(t.name,t.args);let i=p(e);if(i.length===1&&m(i[0])===`auto`)return!0;if(m(i[0]??``)===`fixed`){if(i.length!==2)return!1;if(w.test(i[1]))return Number(i[1])>=0&&Number(i[1])<=1;let e=L(i[1],n,r,!1);return e===`number`||e===`unknown`}let a=!1,o=!1,s=!1;for(let e of i){let t=m(e);if(h(e)&&!a)a=!0;else if(t===`element-scoped`&&!o)o=!0;else if((t===`property-scoped`||t===`property-index-scoped`||g(e)&&t.startsWith(`ua-`))&&!s)s=!0;else return!1}return i.length>0},t=a,s=L(a[0],n,r,i);if(a.length===4||a.length===3&&s==null&&e(a[0])){if(!e(a[0]))return;t=a.slice(1)}let c=o(t);return c!=null&&(c.length===2||c.length===3)?I(c,i):void 0}if(e===`min`||e===`max`||e===`hypot`){let e=o(a);return e==null?void 0:I(e,i)}if(e===`clamp`){if(a.length!==3||m(a[1])===`none`)return;let e=o(a.filter((e,t)=>t===1||m(e)!==`none`));return e==null?void 0:I(e,i)}if(e===`round`){let e=[...a];/^(?:down|nearest|to-zero|up)$/.test(m(e[0]??``))&&e.shift();let t=e.length>=1&&e.length<=2?o(e):void 0;return t==null?void 0:I(t,i)}let s=o(a);if(s==null)return;let c=xe.get(e);if(c&&c.arity.includes(s.length)&&!(c.accepts&&s.some(e=>!c.accepts.has(e)))&&!(c.sameType&&ye(s)==null))return c.result===`argument`?s[0]:c.result===`combined`?I(s,i):c.result}function V(e,t,n=!1,r=!1){let i=_(e);return i==null?void 0:B(i.name,i.args,t,n,r)}function H(e){if(D.test(e))return!0;let t=V(e,new Set);return t===`angle`||t===`unknown`}function Se(e){return w.test(e)&&Number(e)===0||H(e)}function Ce(e){if(w.test(e)||E.test(e))return!0;let t=V(e,new Set);return t===`number`||t===`percentage`||t===`unknown`}function U(e){if(w.test(e))return Number(e)===0;if(O.test(e))return!e.endsWith(`%`);let t=V(e,new Set);return t===`length`||t===`unknown`}function we(e){if(w.test(e))return Number(e)===0;if(O.test(e))return!0;let t=V(e,new Set,!1,!0);return t===`length`||t===`percentage`||t===`length-percentage`||t===`unknown`}function Te(e){if(A(e))return!1;if(k.test(e))return!0;if(T.test(e))return Number(e)===0;let t=V(e,new Set,!1,!0);return t===`length`||t===`percentage`||t===`length-percentage`||t===`unknown`}const Ee=new Set([`alpha`,`color`,`color-hdr`,`color-interpolate`,`color-layers`,`color-mix`,`contrast-color`,`device-cmyk`,`hsl`,`hsla`,`hwb`,`ictcp`,`jzazbz`,`jzczhz`,`lab`,`lch`,`light-dark`,`oklab`,`oklch`,`rgb`,`rgba`,`var`,`env`]),De=new Set([`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`]),Oe=new Set([`accentcolor`,`accentcolortext`,`activetext`,`buttonborder`,`buttonface`,`buttontext`,`canvas`,`canvastext`,`field`,`fieldtext`,`graytext`,`highlight`,`highlighttext`,`linktext`,`mark`,`marktext`,`selecteditem`,`selecteditemtext`,`visitedtext`]),ke=new Set([`a98-rgb`,`display-p3`,`display-p3-linear`,`prophoto-rgb`,`rec2020`,`rec2100-hlg`,`rec2100-linear`,`rec2100-pq`,`srgb`,`srgb-linear`,`xyz`,`xyz-d50`,`xyz-d65`]),Ae=new Set([`a98-rgb`,`display-p3`,`display-p3-linear`,`hsl`,`hwb`,`lab`,`lch`,`oklab`,`oklch`,`prophoto-rgb`,`rec2020`,`srgb`,`srgb-linear`,`xyz`,`xyz-d50`,`xyz-d65`]),je=/^#(?:[\da-f]{3}|[\da-f]{4}|[\da-f]{6}|[\da-f]{8})$/i;function W(e,t=new Set,n=!1,r=!0,i=!1){let a=m(e);if(r&&a===`none`||t.has(a)||w.test(e)||E.test(e)||n&&D.test(e))return!0;let o=V(e,t,i);return o===`unknown`||o===`number`||o===`percentage`||n&&o===`angle`}function G(e,t=new Set,n=!0){let r=m(e);if(n&&r===`none`||t.has(r)||w.test(e)||D.test(e))return!0;let i=V(e,t);return i===`unknown`||i===`number`||i===`angle`}function K(e){let t=p(e),n=t.indexOf(`/`);if(n<0)return{channels:t};if(t.lastIndexOf(`/`)===n&&n!==0&&n===t.length-2)return{channels:t.slice(0,n),alpha:t[n+1]}}function Me(e,t){let n=d(t),r=e===`device-cmyk`;if(!r&&n.length!==3&&n.length!==4||r&&n.length!==4)return!1;let i=e=>{if(w.test(e))return!0;let t=V(e,new Set);return t===`number`||t===`unknown`},a=e=>{if(E.test(e))return!0;let t=V(e,new Set);return t===`percentage`||t===`unknown`};if(r)return n.every(i);let o=n[3];if(o!=null&&!W(o,new Set,!1,!1))return!1;if(e===`hsl`||e===`hsla`)return G(n[0],new Set,!1)&&a(n[1])&&a(n[2]);let s=n.slice(0,3);return s.every(i)||s.every(a)}const Ne={rgb:new Set([`alpha`,`b`,`g`,`r`]),rgba:new Set([`alpha`,`b`,`g`,`r`]),hsl:new Set([`alpha`,`h`,`l`,`s`]),hsla:new Set([`alpha`,`h`,`l`,`s`]),hwb:new Set([`alpha`,`b`,`h`,`w`]),lab:new Set([`a`,`alpha`,`b`,`l`]),lch:new Set([`alpha`,`c`,`h`,`l`]),oklab:new Set([`a`,`alpha`,`b`,`l`]),oklch:new Set([`alpha`,`c`,`h`,`l`]),ictcp:new Set([`alpha`,`ct`,`cp`,`i`]),jzazbz:new Set([`a`,`alpha`,`b`,`j`]),jzczhz:new Set([`alpha`,`c`,`h`,`j`]),"device-cmyk":new Set([`alpha`,`c`,`k`,`m`,`y`])},Pe=new Set([`rgb`,`rgba`,`hsl`,`hsla`,`device-cmyk`]),Fe=new Set([`hsl`,`hwb`,`lch`,`oklch`,`jzczhz`]);function Ie(e){let t=p(e);if(m(t[0]??``)!==`in`||t.length<2)return!1;let n=m(t[1]);return!Ae.has(n)&&!h(t[1])?!1:t.length===2||t.length===4&&Fe.has(n)&&/^(?:shorter|longer|increasing|decreasing)$/.test(m(t[2]))&&m(t[3])===`hue`}function q(e){if(E.test(e)){let t=Number(e.slice(0,-1));return t>=0&&t<=100}let t=V(e,new Set);return t===`percentage`||t===`unknown`}function Le(e,t){if(d(t).length>1)return Pe.has(e)&&Me(e,t);let n=p(t),r=m(n[0]??``)===`from`;if(r&&e===`device-cmyk`||r&&(n.length<2||!X(n[1])))return!1;let i=K(n.slice(r?2:0).join(` `));if(!i)return!1;let a=e===`device-cmyk`?4:3,o=e===`hsl`||e===`hsla`||e===`hwb`?0:e===`lch`||e===`oklch`||e===`jzczhz`?2:-1,s=r?Ne[e]:new Set;return i.channels.length===a&&i.channels.every((e,t)=>t===o?G(e,s):W(e,s))&&(i.alpha==null||W(i.alpha,s))}function Re(e){let t=d(e);if(t.some(e=>!e))return!1;let n=0;if(m(p(t[0])[0]??``)===`in`){if(!Ie(t[0]))return!1;n=1}return n>=t.length?!1:t.slice(n).every(e=>{let t=p(e);return t.length===1?X(t[0]):t.length===2?X(t[0])&&q(t[1])||q(t[0])&&X(t[1]):!1})}function ze(e){let t=d(e);if(t.some(e=>!e))return!1;let n=De.has(m(t[0]??``))?t.slice(1):t;return n.length>=2&&n.every(e=>X(e))}function J(e){if(w.test(e)){let t=Number(e);return t>=0?{literal:t}:void 0}let t=V(e,new Set);return t===`number`||t===`unknown`?{}:void 0}function Y(e){let t=p(e);if(t.length===1)return X(t[0])?[{}]:[];if(t.length!==2)return[];let n=[],r=J(t[1]);X(t[0])&&r!=null&&n.push(r);let i=J(t[0]);return i!=null&&X(t[1])&&n.push(i),n}function Be(e){let{args:t,name:n}=e;if(S(n,t))return!0;if(!t||!Ee.has(n))return!1;if(n===`var`||n===`env`)return b(n,t);if(n===`color-interpolate`)return C(t)?.every(e=>X(e))??!1;if(n===`color-layers`)return ze(t);if(n===`color-mix`)return Re(t);if(n===`light-dark`){let e=d(t);return e.length===2&&e.every(e=>X(e))}if(n===`contrast-color`)return d(t).length===1&&X(t);if(n===`color-hdr`){let e=d(t);if(e.length!==2)return!1;let n=Y(e[0]),r=Y(e[1]);return n.some(e=>r.some(t=>e.literal==null||t.literal==null||e.literal!==t.literal))}if(n===`alpha`){let e=p(t);if(m(e[0]??``)!==`from`||e.length<2||!X(e[1]))return!1;let n=e.slice(2);return n.length===0||n.length===2&&n[0]===`/`&&W(n[1],new Set([`alpha`]))}if(n===`color`){let e=p(t),n=m(e[0]??``)===`from`;if(n&&(e.length<3||!X(e[1])))return!1;let r=K(e.slice(n?2:0).join(` `));if(!r||r.channels.length<2)return!1;let a=r.channels[0],o=m(a);if(!ke.has(o)&&!h(a))return!1;let s=r.channels.slice(1),c=h(a),l=c?s.length:3,u=n?o===`xyz`||o===`xyz-d50`||o===`xyz-d65`?new Set([`alpha`,`x`,`y`,`z`]):c?new Set([`alpha`]):new Set([`alpha`,`b`,`g`,`r`]):new Set;return s.length===l&&s.every(e=>W(e,u,!1,!0,n&&c)||n&&c&&i(e))&&(r.alpha==null||W(r.alpha,u))}return Le(n,t)}function X(e){let t=e.trim(),r=m(t);if(!t)return!1;if(t.startsWith(`#`))return je.test(t);if(r===`currentcolor`||n.has(r)||Oe.has(r))return!0;let i=_(t);return i?.name===`attr`?x(i.args):i!=null&&Be(i)}const Ve=RegExp(`^([+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?)${t}$`,`i`);function He(e){let t=e.match(Ve);return t!=null&&Number(t[1])<0}function Ue(e){if(d(e).length!==1)return;let t=p(e);return t.length>0?t:void 0}function We(e){let t=U(e),n=X(e);if(t&&n)return{kind:`unknown`};if(t)return{kind:`length`,negative:He(e)};if(n)return{kind:`color`}}function Ge(e){let t=new Set([0]);for(let n of e){let e=new Set;for(let r of t){let t=r>>1,i=r&1;if(n.kind===`length`){t<3&&!(t===2&&n.negative)&&e.add(t+1<<1|i);continue}if(n.kind===`color`){i===0&&e.add(r|1);continue}for(let n=t;n<=3;n++){let t=n<<1|i;e.add(t),i===0&&e.add(t|1)}}if(e.size===0)return!1;t=e}for(let e of t)if(e>>1>=2)return!0;return!1}function Ke(e){let t=Ue(e.trim());if(t==null||t.some(e=>/^(?:inset|none)$/i.test(e)))return!1;let n=t.map(We);return n.length===1&&n[0]?.kind===`unknown`||n.every(e=>e!=null)&&Ge(n)}function qe(e){return/^(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*')$/.test(e)}const Je=new Set([`linear`,`ease`,`ease-in`,`ease-out`,`ease-in-out`,`step-start`,`step-end`]);function Ye(e){if(/^[+-]?(?:\d+|\d*\.\d+)(?:e[+-]?\d+)?(?:ms|s)$/i.test(e))return!0;let t=V(e,new Set);return t===`time`||t===`unknown`}function Z(e){if(w.test(e))return!0;let t=V(e,new Set);return t===`number`||t===`unknown`}function Xe(e){if(E.test(e))return!0;let t=V(e,new Set);return t===`percentage`||t===`unknown`}function Q(e){return e.replace(/^(?:[ \t\n\r\f]|\/\*(?:[^*]|\*(?!\/))*\*\/)+|(?:[ \t\n\r\f]|\/\*(?:[^*]|\*(?!\/))*\*\/)+$/g,``)}function $(e,t){let n=_(e);return n?.name===t?n.args:void 0}function Ze(e){let t=$(e,`cubic-bezier`);if(t==null)return!1;let n=d(t).map(Q);return n.length===1&&v(n[0])?!0:n.length!==4||n.some(e=>!Z(e))?!1:[n[0],n[2]].every(e=>!w.test(e)||Number(e)>=0&&Number(e)<=1)}function Qe(e){let t=$(e,`steps`);if(t==null)return!1;let n=d(t).map(Q);if(n.length<1||n.length>2)return!1;let r=n[0],i=m(n[1]??`end`);if(!new Set([`jump-start`,`jump-end`,`jump-none`,`jump-both`,`start`,`end`]).has(i)&&!v(n[1]??``))return!1;if(w.test(r))return/^[+-]?\d+$/.test(r)&&Number(r)>=(i===`jump-none`?2:1);let a=V(r,new Set);return a===`number`||a===`unknown`}function $e(e){let t=$(e,`linear`);if(t==null)return!1;let n=d(t);return n.length>0&&n.every(e=>{let t=p(e);return t.length<1||t.length>3?!1:Z(t[0])&&t.slice(1).every(Xe)||Z(t.at(-1))&&t.slice(0,-1).every(Xe)})}function et(e){let t=d(e).map(Q);return t.length>0&&t.every(e=>Je.has(m(e))||Ze(e)||Qe(e)||$e(e)||V(e,new Set)===`unknown`)}export{v as C,ne as S,m as T,A as _,X as a,T as b,w as c,V as d,Se as f,Ce as g,U as h,Ke as i,E as l,we as m,Ye as n,O as o,H as p,qe as r,se as s,et as t,le as u,Te as v,ae as w,ce as x,k as y};
@@ -1 +1 @@
1
- import{splitTopLevelCommas as e,splitTopLevelWhitespace as t}from"./css-syntax.js";import{C as n,S as r,T as i,_ as a,a as o,b as s,c,d as l,f as u,g as d,h as f,i as p,l as m,m as h,n as g,o as _,p as v,r as y,s as b,t as x,u as S,v as C,w,x as T,y as E}from"./css-value-syntax-BRbCuvQw.js";export{r as areCssSubstitutionFallbacksValid,_ as cssLengthPercentageRe,b as cssLengthPercentageWithOptionalUnitRe,c as cssNumberRe,m as cssPercentageRe,S as hasDefiniteNegativeComponent,l as inferNumericFunction,u as isCssAngleOrZeroValue,v as isCssAngleValue,o as isCssColorValue,x as isCssEasingValue,h as isCssLengthPercentageValue,f as isCssLengthValue,d as isCssNumberOrPercentageValue,y as isCssString,g as isCssTimeValue,n as isCssVariableSubstitutionValue,w as isCssWholeValueFunction,a as isNegativeNumericLiteral,C as isNonnegativeCssLengthPercentageValue,p as isValidDropShadowArgument,E as nonnegativeCssLengthPercentageRe,s as nonnegativeCssNumberRe,i as normalizedCssIdentifier,T as simpleCssLengthPercentageRe,e as splitTopLevelCommas,t as splitTopLevelWhitespace};
1
+ import{splitTopLevelCommas as e,splitTopLevelWhitespace as t}from"./css-syntax.js";import{C as n,S as r,T as i,_ as a,a as o,b as s,c,d as l,f as u,g as d,h as f,i as p,l as m,m as h,n as g,o as _,p as v,r as y,s as b,t as x,u as S,v as C,w,x as T,y as E}from"./css-value-syntax-D8zGbikD.js";export{r as areCssSubstitutionFallbacksValid,_ as cssLengthPercentageRe,b as cssLengthPercentageWithOptionalUnitRe,c as cssNumberRe,m as cssPercentageRe,S as hasDefiniteNegativeComponent,l as inferNumericFunction,u as isCssAngleOrZeroValue,v as isCssAngleValue,o as isCssColorValue,x as isCssEasingValue,h as isCssLengthPercentageValue,f as isCssLengthValue,d as isCssNumberOrPercentageValue,y as isCssString,g as isCssTimeValue,n as isCssVariableSubstitutionValue,w as isCssWholeValueFunction,a as isNegativeNumericLiteral,C as isNonnegativeCssLengthPercentageValue,p as isValidDropShadowArgument,E as nonnegativeCssLengthPercentageRe,s as nonnegativeCssNumberRe,i as normalizedCssIdentifier,T as simpleCssLengthPercentageRe,e as splitTopLevelCommas,t as splitTopLevelWhitespace};
@@ -0,0 +1,8 @@
1
+ //#region src/internal/easing.d.ts
2
+ /**
3
+ * Make the implicit range of calculated Bézier x coordinates explicit before
4
+ * Lightning CSS 1.33 folds them into literals without range checking. This is
5
+ * also safe through repeated optimizer passes. Never clamp literal x or y.
6
+ */
7
+ export declare function prepareEasingOutput(value: string): string;
8
+ //#endregion
@@ -0,0 +1 @@
1
+ import{i as e,r as t}from"../css-identifier-4yDg85cV.js";import{findClosingParenthesis as n,splitTopLevelCommas as r}from"../css-syntax.js";import{d as i}from"../css-value-syntax-D8zGbikD.js";const a=new Set([`calc`,`min`,`max`,`clamp`,`round`,`mod`,`rem`,`abs`,`sign`,`pow`,`sqrt`,`hypot`,`log`,`exp`,`sin`,`cos`,`tan`,`asin`,`acos`,`atan`,`atan2`]),o=/^(?:[ \t\n\r\f]|\/\*(?:[^*]|\*(?!\/))*\*\/)+|(?:[ \t\n\r\f]|\/\*(?:[^*]|\*(?!\/))*\*\/)+$/g;function s(s){let c=s.replace(o,``),l=t(c,0),u=e(c.slice(0,l)).toLowerCase();if(c[l]!==`(`||!a.has(u)||n(c,l)!==c.length-1)return s;let d=i(c,new Set);if(d!=null&&d!==`number`&&d!==`unknown`)return s;if(u===`clamp`){let e=r(c.slice(l+1,-1));if(e.length===3&&e[0]===`0`&&e[2]===`1`)return s}return`clamp(0,${s},1)`}function c(i){if(!/bezier|\\/i.test(i))return i;let a=[],o=0;for(let c=0;c<i.length;){if(i[c]===`/`&&i[c+1]===`*`){let e=i.indexOf(`*/`,c+2);c=e<0?i.length:e+2;continue}if(i[c]===`"`||i[c]===`'`){let e=i[c++];for(;c<i.length&&i[c]!==e;)c+=i[c]===`\\`?2:1;c++;continue}let l=t(i,c);if(l===c){c++;continue}let u=e(i.slice(c,l)).toLowerCase();if(i[l]===`(`){let e=n(i,l);if(e==null)break;if(u===`cubic-bezier`){let t=r(i.slice(l+1,e));if(t.length===4){let n=s(t[0]),r=s(t[2]);(n!==t[0]||r!==t[2])&&(a.push(i.slice(o,l+1),`${n},${t[1]},${r},${t[3]})`),o=e+1)}}c=u===`var`||u===`env`?l+1:e+1}else c=l}return a.length?a.join(``)+i.slice(o):i}export{c as prepareEasingOutput};
@@ -1 +1 @@
1
- import{cssLengthUnitRESource as e,globalKeywords as t}from"./constants.js";import{findLastTopLevelDelimiter as n,splitTopLevelCommas as r,topLevelWhitespaceSpans as i}from"./css-syntax.js";import{c as a,g as o,h as s,n as c,u as l}from"./css-value-syntax-BRbCuvQw.js";import{c as u,d,f,n as p,t as m,x as h}from"./standard-value-handler-idWIIPjr.js";function g(e){return/^\d{1,3}$/.test(e)&&Number(e)<=100}function _(e){let t=m.global.cssvar(e);if(t!=null)return t;let n=m.bracket(e);return n==null?a.test(e)?`${e}%`:m.alpha(e):o(n)?n:void 0}function v(e,t){if(t==null)return e;if(!g(t))throw Error(`applyOpacity received an invalid opacity modifier: ${t}`);return`color-mix(in oklab, ${e} ${Number(t)}%, transparent)`}function y(e){let t=n(e,`/`);return t<0?[e]:[e.slice(0,t),e.slice(t+1)]}function b(e){return m.cssvar(e)!=null}function x(e,t){return m.cssvar.global(e)??m.bracket(e)??(t.has(e)?e:void 0)}function S(e,t){return m.cssvar.global(e)??(t.has(e)?e:m.bracket(e))}function C(e,t){let n=p.fraction.number(e)??t;if(n==null)return;let r=String(n);return r.endsWith(`%`)?u(Number(r.slice(0,-1))/100):Number(n)}const w=RegExp(`^([+-]?(?:\\d+|\\d*\\.\\d+)(?:e[+-]?\\d+)?)(${e})?$`,`i`),T=/^[+-]?(?:\d+|\d*\.\d+)(?:e[+-]?\d+)?%$/i,E=new Set(t);function D(e){return i(e).map(e=>e.value)}function O(e){return/rpx$/i.test(e)||T.test(e)?!1:h.test(e)||w.test(e)}function k(e){if(/rpx$/i.test(e))return;let t=m.px(e);if(t!=null)return t;let n=e.match(w);if(!n)return;let r=Number(n[1]);if(!Number.isFinite(r))return;let i=Number(r.toFixed(10));return n[2]?`${i}${n[2]}`:`${i}px`}function A(e){let t=f(e);return t==null?e.startsWith(`[`)||e.endsWith(`]`)?!1:b(e)?!0:e.startsWith(`-`)||E.has(e)?!1:O(e):j(t).length===1&&D(t).length===1&&s(t)&&!l(t)}function j(e){return r(e)}function M(e){return j(e).some(e=>D(e).filter(e=>w.test(e)).slice(2,4).some(e=>Number(e.match(w)?.[1])<0))}const N=new Set;function P(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function F(e){return typeof e==`string`?e:e.join(`-`)}function I(e,t,n,r,i=N){let a=d(e,t);if(!a)return;let o=F(n),s=d(a,o);if(s!=null)return i.has(o)?typeof s==`string`?s:s.join(` `):`var(--${r??P(t)}-${o})`}function L(e){return e.replace(/\/\*[\s\S]*?\*\//g,` `).trim()}function R(e,t=[]){let n=m.bracket(e);if(n!=null){let e=r(n);return e.length>0&&e.every(e=>{let n=L(e);return t.includes(n)||c(n)&&!V(n)})?n:void 0}let i=m.cssvar.global(e);if(i!=null)return i;if(t.includes(e))return e;let a=m.time(e);return a?.startsWith(`-`)?void 0:a}function z(e){let t=m.bracket(e);if(t!=null){let e=r(t);return e.length>0&&e.every(e=>c(L(e)))?t:void 0}return m.cssvar.global.time(e)}const B=/^([+-]?(?:\d+|\d*\.\d+)(?:e[+-]?\d+)?)(?:ms|s)?$/i;function V(e){let t=e.match(B);return t!=null&&Number(t[1])<0}export{v as applyOpacity,P as camelToKebab,M as hasInvalidTextShadowRadius,b as isCssVariableToken,A as isNonnegativeLengthValue,g as isValidOpacityModifier,k as normalizeShadowLength,_ as resolveAlphaValue,x as resolveKeyword,S as resolveKeywordList,R as resolveNonnegativeTime,C as resolveNumber,I as resolveThemeVariable,z as resolveTime,y as splitOpacity,j as splitShadowLayers};
1
+ import{cssLengthUnitRESource as e,globalKeywords as t}from"./constants.js";import{findLastTopLevelDelimiter as n,splitTopLevelCommas as r,topLevelWhitespaceSpans as i}from"./css-syntax.js";import{c as a,g as o,h as s,n as c,u as l}from"./css-value-syntax-D8zGbikD.js";import{c as u,d,f,n as p,t as m,x as h}from"./standard-value-handler-idWIIPjr.js";function g(e){return/^\d{1,3}$/.test(e)&&Number(e)<=100}function _(e){let t=m.global.cssvar(e);if(t!=null)return t;let n=m.bracket(e);return n==null?a.test(e)?`${e}%`:m.alpha(e):o(n)?n:void 0}function v(e,t){if(t==null)return e;if(!g(t))throw Error(`applyOpacity received an invalid opacity modifier: ${t}`);return`color-mix(in oklab, ${e} ${Number(t)}%, transparent)`}function y(e){let t=n(e,`/`);return t<0?[e]:[e.slice(0,t),e.slice(t+1)]}function b(e){return m.cssvar(e)!=null}function x(e,t){return m.cssvar.global(e)??m.bracket(e)??(t.has(e)?e:void 0)}function S(e,t){return m.cssvar.global(e)??(t.has(e)?e:m.bracket(e))}function C(e,t){let n=p.fraction.number(e)??t;if(n==null)return;let r=String(n);return r.endsWith(`%`)?u(Number(r.slice(0,-1))/100):Number(n)}const w=RegExp(`^([+-]?(?:\\d+|\\d*\\.\\d+)(?:e[+-]?\\d+)?)(${e})?$`,`i`),T=/^[+-]?(?:\d+|\d*\.\d+)(?:e[+-]?\d+)?%$/i,E=new Set(t);function D(e){return i(e).map(e=>e.value)}function O(e){return/rpx$/i.test(e)||T.test(e)?!1:h.test(e)||w.test(e)}function k(e){if(/rpx$/i.test(e))return;let t=m.px(e);if(t!=null)return t;let n=e.match(w);if(!n)return;let r=Number(n[1]);if(!Number.isFinite(r))return;let i=Number(r.toFixed(10));return n[2]?`${i}${n[2]}`:`${i}px`}function A(e){let t=f(e);return t==null?e.startsWith(`[`)||e.endsWith(`]`)?!1:b(e)?!0:e.startsWith(`-`)||E.has(e)?!1:O(e):j(t).length===1&&D(t).length===1&&s(t)&&!l(t)}function j(e){return r(e)}function M(e){return j(e).some(e=>D(e).filter(e=>w.test(e)).slice(2,4).some(e=>Number(e.match(w)?.[1])<0))}const N=new Set;function P(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function F(e){return typeof e==`string`?e:e.join(`-`)}function I(e,t,n,r,i=N){let a=d(e,t);if(!a)return;let o=F(n),s=d(a,o);if(s!=null)return i.has(o)?typeof s==`string`?s:s.join(` `):`var(--${r??P(t)}-${o})`}function L(e){return e.replace(/\/\*[\s\S]*?\*\//g,` `).trim()}function R(e,t=[]){let n=m.bracket(e);if(n!=null){let e=r(n);return e.length>0&&e.every(e=>{let n=L(e);return t.includes(n)||c(n)&&!V(n)})?n:void 0}let i=m.cssvar.global(e);if(i!=null)return i;if(t.includes(e))return e;let a=m.time(e);return a?.startsWith(`-`)?void 0:a}function z(e){let t=m.bracket(e);if(t!=null){let e=r(t);return e.length>0&&e.every(e=>c(L(e)))?t:void 0}return m.cssvar.global.time(e)}const B=/^([+-]?(?:\d+|\d*\.\d+)(?:e[+-]?\d+)?)(?:ms|s)?$/i;function V(e){let t=e.match(B);return t!=null&&Number(t[1])<0}export{v as applyOpacity,P as camelToKebab,M as hasInvalidTextShadowRadius,b as isCssVariableToken,A as isNonnegativeLengthValue,g as isValidOpacityModifier,k as normalizeShadowLength,_ as resolveAlphaValue,x as resolveKeyword,S as resolveKeywordList,R as resolveNonnegativeTime,C as resolveNumber,I as resolveThemeVariable,z as resolveTime,y as splitOpacity,j as splitShadowLayers};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teacss/rule-helpers",
3
- "version": "0.8.4",
3
+ "version": "0.9.0-alpha.1",
4
4
  "description": "Helpers for authoring TeaCSS preset rules — static/dynamic rule builders and value resolvers.",
5
5
  "homepage": "https://css.teasim.com",
6
6
  "funding": "https://github.com/sponsors/billgo",
@@ -13,6 +13,7 @@
13
13
  "./constants": "./dist/constants.js",
14
14
  "./css-syntax": "./dist/css-syntax.js",
15
15
  "./css-value-syntax": "./dist/css-value-syntax.js",
16
+ "./internal/easing": "./dist/internal/easing.js",
16
17
  "./value-resolvers": "./dist/value-resolvers.js",
17
18
  "./package.json": "./package.json"
18
19
  },
@@ -26,7 +27,7 @@
26
27
  "dev": "tsdown --watch"
27
28
  },
28
29
  "dependencies": {
29
- "@teacss/core": "0.8.4"
30
+ "@teacss/core": "0.9.0-alpha.1"
30
31
  },
31
32
  "engines": {
32
33
  "node": ">=22.12.0"
@@ -1 +0,0 @@
1
- import{cssLengthPercentageUnitRESource as e,cssLengthUnitRESource as t,cssNamedColors as n,globalKeywords as r}from"./constants.js";import{a as i,c as a,i as o,n as s,t as c}from"./css-identifier-4yDg85cV.js";import{findClosingParenthesis as l,splitTopLevelCommas as u,splitTopLevelDelimiter as d,splitTopLevelWhitespace as f}from"./css-syntax.js";const ee=new Set([`default`,...r]);function p(e){return e.includes(`\\`)&&i(e)?o(e).toLowerCase():e.toLowerCase()}function m(e){if(!i(e))return!1;let t=o(e);return t.startsWith(`--`)&&t.length>2}function h(e){return i(e)&&!ee.has(o(e).toLowerCase())}function g(e){if(!e.endsWith(`)`))return;let t=s(e);if(t==null||e[t]!==`(`)return;let n=l(e,t);if(n===e.length-1)return{name:o(e.slice(0,t)).toLowerCase(),args:e.slice(t+1,n).trim()}}function te(e){let t=g(e.trim());return t!=null&&(t.name===`var`||t.name===`env`)&&y(t.name,t.args)}function ne(e){let t=[],n=[],r=0;for(let i=0;i<e.length;){let a=e[i];if(a===`/`&&e[i+1]===`*`){let t=e.indexOf(`*/`,i+2);if(t<0)return;i=t+2;continue}if(a===`"`||a===`'`){let t=a;for(i++;i<e.length&&e[i]!==t;)i=e[i]===`\\`?c(e,i)??i+2:i+1;if(i>=e.length)return;i++;continue}let l=s(e,i);if(l!=null){if(e[l]!==`(`){i=l;continue}let n=o(e.slice(i,l)).toLowerCase(),a=n===`var`||n===`env`;t.push({start:i,open:l,close:`)`,name:n,activeSubstitution:a&&r===0}),a&&r++,i=l+1;continue}if(a===`\\`){i=c(e,i)??i+2;continue}if(a===`(`||a===`[`||a===`{`){t.push({start:i,open:i,close:a===`(`?`)`:a===`[`?`]`:`}`}),i++;continue}if(a===`,`){let e=t.at(-1);e!=null&&e.comma==null&&(e.comma=i),i++;continue}if(a===`)`||a===`]`||a===`}`){let o=t.pop();if(o==null||o.close!==a)return;if(o.name===`var`||o.name===`env`){r--;let t=e.slice(o.open+1,o.comma??i).trim();if(!v(o.name,t))return;if(o.activeSubstitution&&o.comma!=null){if(n.length>=63)return;n.push({start:o.start,end:i+1,fallback:e.slice(o.comma+1,i).trim()})}}i++;continue}i++}return t.length===0&&r===0?n:void 0}function _(e,t){let n=[e],r=new Set(n),i=new Set;for(;n.length>0;){let e=n.pop();if(r.delete(e),i.has(e))continue;if(i.size>=64||(i.add(e),!t(e)))return!1;let a=ne(e);if(a==null)return!1;for(let t of a){let a=e.slice(0,t.start)+t.fallback+e.slice(t.end);if(!(i.has(a)||r.has(a))){if(i.size+r.size>=64)return!1;n.push(a),r.add(a)}}}return!0}function v(e,t){if(e===`var`)return m(t);if(e!==`env`)return!1;let n=f(t);return n.length>0&&h(n[0])&&n.slice(1).every(e=>/^\+?\d+$/.test(e))}function y(e,t){return v(e,u(t)[0]??``)}function b(e){let t=u(e);if(t.length>2||!t[0])return!1;let n=f(t[0]);if(n.length!==1&&n.length!==2||!re(n[0]))return!1;if(n.length===1)return!0;let r=p(n[1]);if(r===`%`||r===`raw-string`||h(n[1]))return!0;let i=g(n[1]);return i?.name===`type`&&!!i.args}function re(e){let t=e.indexOf(`|`);return t<0?i(e):e.indexOf(`|`,t+1)<0&&(t===0||i(e.slice(0,t)))&&i(e.slice(t+1))}function ie(e){let t=d(e,`;`);return t.at(-1)===``&&t.pop(),t.length>0&&t.every(e=>{let t=d(e,`:`);return t.length>=2&&!!t[0]})}function x(e,t){if(e.startsWith(`--`)&&e.length>2)return!t||u(t).every(Boolean);if(e===`if`)return!!t&&ie(t);if(e===`inherit`){let e=u(t);return e.length<=2&&!!e[0]}if(e===`random-item`){let e=u(t);return e.length>=2&&!!e[0]}return!1}function S(e){let t=u(e);if(t.length<2||!t[0])return;let n=[],r=!1;for(let e of t.slice(1)){if(!e)return;let t=d(e,`:`);if(t.length<2){if(n.length===0||r)return;r=!0;continue}let i=t.slice(1).join(`:`).trim();if(!t[0]||!i)return;n.push(i),r=!1}return n.length>0&&!r?n:void 0}function ae(e,t=Boolean){let n=g(e.trim());if(n==null||!n.args)return!1;if(n.name===`first-valid`)return u(n.args).every(Boolean);if(n.name===`toggle`){let e=u(n.args);return e.every(Boolean)&&e.every(e=>!/(?:^|[^-\w])(?:attr|calc|toggle)\s*\(/i.test(e)&&t(e))}if(n.name!==`interpolate`)return!1;let r=S(n.args);if(r!=null)return r.every(t);let i=f(n.args),a=i.findIndex(e=>p(e)===`of`);return a>0&&a<i.length-1}const oe=new Set(`abs.acos.asin.atan.atan2.attr.calc.calc-interpolate.calc-mix.clamp.cos.env.exp.hypot.log.max.min.mod.pow.progress.random.rem.round.sibling-count.sibling-index.sign.sin.sqrt.tan.var`.split(`.`)),C=/^[+-]?(?:\d+|\d*\.\d+)(?:e[+-]?\d+)?$/i,w=/^\+?(?:\d+|\d*\.\d+)(?:e[+-]?\d+)?$/i,T=/^[+-]?(?:\d+|\d*\.\d+)(?:e[+-]?\d+)?%$/i,E=/^[+-]?(?:\d+|\d*\.\d+)(?:e[+-]?\d+)?(?:deg|grad|rad|turn)$/i,D=RegExp(`^[+-]?(?:\\d+|\\d*\\.\\d+)(?:e[+-]?\\d+)?${e}$`,`i`),se=RegExp(`^([+-]?(?:\\d+|\\d*\\.\\d+)(?:e[+-]?\\d+)?)(${e})?$`,`i`),O=RegExp(`^\\+?(?:\\d+|\\d*\\.\\d+)(?:e[+-]?\\d+)?${e}$`,`i`),ce=RegExp(`^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)${e}$`,`i`);function k(e){let t=e.trim();return(C.test(t)||D.test(t))&&Number.parseFloat(t)<0}function le(e){return f(e).some(k)}const ue=new Set([`deg`,`grad`,`rad`,`turn`]),de=new Set([`fr`]),fe=new Set([`hz`,`khz`]),pe=new Set([`dpcm`,`dpi`,`dppx`,`x`]),me=new Set([`ms`,`s`]),he=new Set([`e`,`infinity`,`-infinity`,`nan`,`pi`]),ge=RegExp(`^${t}$`,`i`);function A(e){if(ue.has(e))return`angle`;if(de.has(e))return`flex`;if(fe.has(e))return`frequency`;if(pe.has(e))return`resolution`;if(me.has(e))return`time`;if(ge.test(e))return`length`}function j(e,t,n=!1){if(e===`unknown`)return t;if(t===`unknown`)return e;if(n&&(e===`length`&&t===`percentage`||e===`percentage`&&t===`length`))return`length-percentage`;if(n&&e===`length-percentage`&&(t===`length`||t===`percentage`))return e;if(n&&t===`length-percentage`&&(e===`length`||e===`percentage`))return t;if(typeof e==`string`||typeof t==`string`)return e===t?e:void 0;let r=new Set([...Object.keys(e.exponents),...Object.keys(t.exponents)]);return e.percentHint===t.percentHint&&[...r].every(n=>(e.exponents[n]??0)===(t.exponents[n]??0))?e:void 0}function M(e,t){return typeof e!=`string`||e===`unknown`?typeof e==`string`?void 0:e:e===`number`?{exponents:{}}:e===`length-percentage`?{exponents:{length:1},percentHint:`length`}:e===`percentage`?t?{exponents:{length:1},percentHint:`length`}:{exponents:{percent:1},percentHint:`percent`}:{exponents:{[e]:1}}}function N(e){let t=Object.fromEntries(Object.entries(e.exponents).filter(([,e])=>e!==0)),n=Object.entries(t);return n.length===0?`number`:n.length===1&&n[0][1]===1?n[0][0]===`percent`?`percentage`:n[0][0]===`length`?e.percentHint===`length`?`length-percentage`:`length`:n[0][0]:{exponents:t,percentHint:e.percentHint}}function P(e,t){return e==null?t:t==null||e===t?e:`conflict`}function _e(e,t,n){if(e===`unknown`||t===`unknown`)return`unknown`;let r=M(e,n),i=M(t,n);if(r==null||i==null)return;let a={...r.exponents};for(let[e,t]of Object.entries(i.exponents))a[e]=(a[e]??0)+t;return N({exponents:a,percentHint:P(r.percentHint,i.percentHint)})}function F(e,t,n){if(e===`unknown`||t===`unknown`)return`unknown`;let r=M(e,n),i=M(t,n);if(r==null||i==null)return;let a={...r.exponents};for(let[e,t]of Object.entries(i.exponents))a[e]=(a[e]??0)-t;return N({exponents:a,percentHint:P(r.percentHint,i.percentHint)})}function I(e,t=!1){if(e.length!==0)return e.reduce((e,n)=>e==null?void 0:j(e,n,t),e[0])}function ve(e){let t=e.filter(e=>e!==`unknown`);return t.length===0?e.length>0?`unknown`:void 0:t.slice(1).reduce((e,t)=>e==null?void 0:j(e,t),t[0])}function ye(e){if(!b(e))return;let t=f(u(e)[0]);if(t.length===1)return`unknown`;let n=t[1],r=p(n);if(r===`number`)return`number`;if(r===`%`)return`percentage`;let i=A(r);if(i!=null)return i;let a=g(n);if(a?.name!==`type`)return`unknown`;let o=a.args.replace(/\s+/g,``).toLowerCase();return o===`<number>`||o===`<integer>`?`number`:o===`<percentage>`?`percentage`:/^<(?:angle|flex|frequency|length|resolution|time)>$/.test(o)?o.slice(1,-1):o===`<length-percentage>`?`length-percentage`:`unknown`}function L(e,t,n,r=!1){let i=0,o=()=>{for(;a(e[i]);)i++},c=()=>{if(o(),e[i]===`(`){i++;let t=d();return o(),t==null||e[i]!==`)`?void 0:(i++,t)}let a=e.slice(i).match(/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?/i)?.[0];if(a!=null){if(i+=a.length,e[i]===`%`)return i++,`percentage`;let t=s(e.slice(i));if(t!=null){let n=p(e.slice(i,i+t));return i+=t,A(n)}return`number`}let c=s(e.slice(i));if(c==null)return;let u=e.slice(i,i+c),f=p(u);if(i+=c,e[i]===`(`){let a=l(e,i);if(a==null)return;let o=e.slice(i+1,a).trim();return i=a+1,B(f,o,t,n,r)}if(he.has(f)||t.has(f)||n&&h(u))return`number`},u=()=>{let t=c();if(t!=null)for(;;){let n=i;o();let a=e[i];if(a!==`*`&&a!==`/`)return i=n,t;i++;let s=c();if(s==null||(t=a===`*`?_e(t,s,r):F(t,s,r),t==null))return}},d=()=>{let t=u();if(t!=null)for(;;){let n=i;o();let a=i>n,s=e[i];if(s!==`+`&&s!==`-`)return t;if(!a)return;i++;let c=i;if(o(),i===c)return;let l=u();if(l==null||(t=j(t,l,r),t==null))return}},f=d();return o(),f!=null&&i===e.length?f:void 0}const R=new Set([`number`,`unknown`]),z=new Set([`angle`,`number`,`unknown`]),be=new Map([[`sin`,{arity:[1],accepts:z,result:`number`}],[`cos`,{arity:[1],accepts:z,result:`number`}],[`tan`,{arity:[1],accepts:z,result:`number`}],[`asin`,{arity:[1],accepts:R,result:`angle`}],[`acos`,{arity:[1],accepts:R,result:`angle`}],[`atan`,{arity:[1],accepts:R,result:`angle`}],[`atan2`,{arity:[2],sameType:!0,result:`angle`}],[`pow`,{arity:[2],accepts:R,result:`number`}],[`sqrt`,{arity:[1],accepts:R,result:`number`}],[`exp`,{arity:[1],accepts:R,result:`number`}],[`log`,{arity:[1,2],accepts:R,result:`number`}],[`abs`,{arity:[1],result:`argument`}],[`sign`,{arity:[1],result:`number`}],[`mod`,{arity:[2],result:`combined`}],[`rem`,{arity:[2],result:`combined`}]]);function B(e,t,n,r=!1,i=!1){if(e===`sibling-count`||e===`sibling-index`)return t?void 0:`number`;if(x(e,t))return`unknown`;if(!t)return;if(e===`var`||e===`env`)return y(e,t)?`unknown`:void 0;if(e===`attr`)return ye(t);if(!oe.has(e))return;let a=u(t),o=e=>{if(e.some(e=>!e))return;let t=e.map(e=>L(e,n,r,i));return t.some(e=>e==null)?void 0:t};if(e===`calc`)return a.length===1?L(t,n,r,i):void 0;if(e===`progress`){if(a.length!==3)return;let e=[...a],t=f(e[0]);p(t[0]??``)===`no-clamp`&&(e[0]=e[0].slice(t[0].length).trim());let n=o(e);return n!=null&&I(n,i)!=null?`number`:void 0}if(e===`calc-mix`){let e=a.map(e=>{let t=L(e,n,r,i);if(t!=null)return t;let a=f(e),o=a.at(-1);if(o==null||a.length<2)return;let s=L(o,n,r,!1);if(T.test(o)){let e=Number(o.slice(0,-1));if(e<0||e>100)return}else if(s!==`percentage`&&s!==`unknown`)return;return L(e.slice(0,e.length-o.length).trim(),n,r,i)});return e.some(e=>e==null)?void 0:I(e,i)}if(e===`calc-interpolate`){let e=S(t),n=e==null?void 0:o(e);return n==null?void 0:I(n,i)}if(e===`random`){if(a.length<2||a.length>4)return;let e=e=>{let t=g(e);if(t!=null&&(t.name===`var`||t.name===`env`))return y(t.name,t.args);let i=f(e);if(i.length===1&&p(i[0])===`auto`)return!0;if(p(i[0]??``)===`fixed`){if(i.length!==2)return!1;if(C.test(i[1]))return Number(i[1])>=0&&Number(i[1])<=1;let e=L(i[1],n,r,!1);return e===`number`||e===`unknown`}let a=!1,o=!1,s=!1;for(let e of i){let t=p(e);if(m(e)&&!a)a=!0;else if(t===`element-scoped`&&!o)o=!0;else if((t===`property-scoped`||t===`property-index-scoped`||h(e)&&t.startsWith(`ua-`))&&!s)s=!0;else return!1}return i.length>0},t=a,s=L(a[0],n,r,i);if(a.length===4||a.length===3&&s==null&&e(a[0])){if(!e(a[0]))return;t=a.slice(1)}let c=o(t);return c!=null&&(c.length===2||c.length===3)?I(c,i):void 0}if(e===`min`||e===`max`||e===`hypot`){let e=o(a);return e==null?void 0:I(e,i)}if(e===`clamp`){if(a.length!==3||p(a[1])===`none`)return;let e=o(a.filter((e,t)=>t===1||p(e)!==`none`));return e==null?void 0:I(e,i)}if(e===`round`){let e=[...a];/^(?:down|nearest|to-zero|up)$/.test(p(e[0]??``))&&e.shift();let t=e.length>=1&&e.length<=2?o(e):void 0;return t==null?void 0:I(t,i)}let s=o(a);if(s==null)return;let c=be.get(e);if(c&&c.arity.includes(s.length)&&!(c.accepts&&s.some(e=>!c.accepts.has(e)))&&!(c.sameType&&ve(s)==null))return c.result===`argument`?s[0]:c.result===`combined`?I(s,i):c.result}function V(e,t,n=!1,r=!1){let i=g(e);return i==null?void 0:B(i.name,i.args,t,n,r)}function H(e){if(E.test(e))return!0;let t=V(e,new Set);return t===`angle`||t===`unknown`}function xe(e){return C.test(e)&&Number(e)===0||H(e)}function Se(e){if(C.test(e)||T.test(e))return!0;let t=V(e,new Set);return t===`number`||t===`percentage`||t===`unknown`}function U(e){if(C.test(e))return Number(e)===0;if(D.test(e))return!e.endsWith(`%`);let t=V(e,new Set);return t===`length`||t===`unknown`}function Ce(e){if(C.test(e))return Number(e)===0;if(D.test(e))return!0;let t=V(e,new Set,!1,!0);return t===`length`||t===`percentage`||t===`length-percentage`||t===`unknown`}function we(e){if(k(e))return!1;if(O.test(e))return!0;if(w.test(e))return Number(e)===0;let t=V(e,new Set,!1,!0);return t===`length`||t===`percentage`||t===`length-percentage`||t===`unknown`}const Te=new Set([`alpha`,`color`,`color-hdr`,`color-interpolate`,`color-layers`,`color-mix`,`contrast-color`,`device-cmyk`,`hsl`,`hsla`,`hwb`,`ictcp`,`jzazbz`,`jzczhz`,`lab`,`lch`,`light-dark`,`oklab`,`oklch`,`rgb`,`rgba`,`var`,`env`]),Ee=new Set([`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`]),De=new Set([`accentcolor`,`accentcolortext`,`activetext`,`buttonborder`,`buttonface`,`buttontext`,`canvas`,`canvastext`,`field`,`fieldtext`,`graytext`,`highlight`,`highlighttext`,`linktext`,`mark`,`marktext`,`selecteditem`,`selecteditemtext`,`visitedtext`]),Oe=new Set([`a98-rgb`,`display-p3`,`display-p3-linear`,`prophoto-rgb`,`rec2020`,`rec2100-hlg`,`rec2100-linear`,`rec2100-pq`,`srgb`,`srgb-linear`,`xyz`,`xyz-d50`,`xyz-d65`]),ke=new Set([`a98-rgb`,`display-p3`,`display-p3-linear`,`hsl`,`hwb`,`lab`,`lch`,`oklab`,`oklch`,`prophoto-rgb`,`rec2020`,`srgb`,`srgb-linear`,`xyz`,`xyz-d50`,`xyz-d65`]),Ae=/^#(?:[\da-f]{3}|[\da-f]{4}|[\da-f]{6}|[\da-f]{8})$/i;function W(e,t=new Set,n=!1,r=!0,i=!1){let a=p(e);if(r&&a===`none`||t.has(a)||C.test(e)||T.test(e)||n&&E.test(e))return!0;let o=V(e,t,i);return o===`unknown`||o===`number`||o===`percentage`||n&&o===`angle`}function G(e,t=new Set,n=!0){let r=p(e);if(n&&r===`none`||t.has(r)||C.test(e)||E.test(e))return!0;let i=V(e,t);return i===`unknown`||i===`number`||i===`angle`}function K(e){let t=f(e),n=t.indexOf(`/`);if(n<0)return{channels:t};if(t.lastIndexOf(`/`)===n&&n!==0&&n===t.length-2)return{channels:t.slice(0,n),alpha:t[n+1]}}function je(e,t){let n=u(t),r=e===`device-cmyk`;if(!r&&n.length!==3&&n.length!==4||r&&n.length!==4)return!1;let i=e=>{if(C.test(e))return!0;let t=V(e,new Set);return t===`number`||t===`unknown`},a=e=>{if(T.test(e))return!0;let t=V(e,new Set);return t===`percentage`||t===`unknown`};if(r)return n.every(i);let o=n[3];if(o!=null&&!W(o,new Set,!1,!1))return!1;if(e===`hsl`||e===`hsla`)return G(n[0],new Set,!1)&&a(n[1])&&a(n[2]);let s=n.slice(0,3);return s.every(i)||s.every(a)}const Me={rgb:new Set([`alpha`,`b`,`g`,`r`]),rgba:new Set([`alpha`,`b`,`g`,`r`]),hsl:new Set([`alpha`,`h`,`l`,`s`]),hsla:new Set([`alpha`,`h`,`l`,`s`]),hwb:new Set([`alpha`,`b`,`h`,`w`]),lab:new Set([`a`,`alpha`,`b`,`l`]),lch:new Set([`alpha`,`c`,`h`,`l`]),oklab:new Set([`a`,`alpha`,`b`,`l`]),oklch:new Set([`alpha`,`c`,`h`,`l`]),ictcp:new Set([`alpha`,`ct`,`cp`,`i`]),jzazbz:new Set([`a`,`alpha`,`b`,`j`]),jzczhz:new Set([`alpha`,`c`,`h`,`j`]),"device-cmyk":new Set([`alpha`,`c`,`k`,`m`,`y`])},Ne=new Set([`rgb`,`rgba`,`hsl`,`hsla`,`device-cmyk`]),Pe=new Set([`hsl`,`hwb`,`lch`,`oklch`,`jzczhz`]);function Fe(e){let t=f(e);if(p(t[0]??``)!==`in`||t.length<2)return!1;let n=p(t[1]);return!ke.has(n)&&!m(t[1])?!1:t.length===2||t.length===4&&Pe.has(n)&&/^(?:shorter|longer|increasing|decreasing)$/.test(p(t[2]))&&p(t[3])===`hue`}function q(e){if(T.test(e)){let t=Number(e.slice(0,-1));return t>=0&&t<=100}let t=V(e,new Set);return t===`percentage`||t===`unknown`}function Ie(e,t){if(u(t).length>1)return Ne.has(e)&&je(e,t);let n=f(t),r=p(n[0]??``)===`from`;if(r&&e===`device-cmyk`||r&&(n.length<2||!X(n[1])))return!1;let i=K(n.slice(r?2:0).join(` `));if(!i)return!1;let a=e===`device-cmyk`?4:3,o=e===`hsl`||e===`hsla`||e===`hwb`?0:e===`lch`||e===`oklch`||e===`jzczhz`?2:-1,s=r?Me[e]:new Set;return i.channels.length===a&&i.channels.every((e,t)=>t===o?G(e,s):W(e,s))&&(i.alpha==null||W(i.alpha,s))}function Le(e){let t=u(e);if(t.some(e=>!e))return!1;let n=0;if(p(f(t[0])[0]??``)===`in`){if(!Fe(t[0]))return!1;n=1}return n>=t.length?!1:t.slice(n).every(e=>{let t=f(e);return t.length===1?X(t[0]):t.length===2?X(t[0])&&q(t[1])||q(t[0])&&X(t[1]):!1})}function Re(e){let t=u(e);if(t.some(e=>!e))return!1;let n=Ee.has(p(t[0]??``))?t.slice(1):t;return n.length>=2&&n.every(e=>X(e))}function J(e){if(C.test(e)){let t=Number(e);return t>=0?{literal:t}:void 0}let t=V(e,new Set);return t===`number`||t===`unknown`?{}:void 0}function Y(e){let t=f(e);if(t.length===1)return X(t[0])?[{}]:[];if(t.length!==2)return[];let n=[],r=J(t[1]);X(t[0])&&r!=null&&n.push(r);let i=J(t[0]);return i!=null&&X(t[1])&&n.push(i),n}function ze(e){let{args:t,name:n}=e;if(x(n,t))return!0;if(!t||!Te.has(n))return!1;if(n===`var`||n===`env`)return y(n,t);if(n===`color-interpolate`)return S(t)?.every(e=>X(e))??!1;if(n===`color-layers`)return Re(t);if(n===`color-mix`)return Le(t);if(n===`light-dark`){let e=u(t);return e.length===2&&e.every(e=>X(e))}if(n===`contrast-color`)return u(t).length===1&&X(t);if(n===`color-hdr`){let e=u(t);if(e.length!==2)return!1;let n=Y(e[0]),r=Y(e[1]);return n.some(e=>r.some(t=>e.literal==null||t.literal==null||e.literal!==t.literal))}if(n===`alpha`){let e=f(t);if(p(e[0]??``)!==`from`||e.length<2||!X(e[1]))return!1;let n=e.slice(2);return n.length===0||n.length===2&&n[0]===`/`&&W(n[1],new Set([`alpha`]))}if(n===`color`){let e=f(t),n=p(e[0]??``)===`from`;if(n&&(e.length<3||!X(e[1])))return!1;let r=K(e.slice(n?2:0).join(` `));if(!r||r.channels.length<2)return!1;let a=r.channels[0],o=p(a);if(!Oe.has(o)&&!m(a))return!1;let s=r.channels.slice(1),c=m(a),l=c?s.length:3,u=n?o===`xyz`||o===`xyz-d50`||o===`xyz-d65`?new Set([`alpha`,`x`,`y`,`z`]):c?new Set([`alpha`]):new Set([`alpha`,`b`,`g`,`r`]):new Set;return s.length===l&&s.every(e=>W(e,u,!1,!0,n&&c)||n&&c&&i(e))&&(r.alpha==null||W(r.alpha,u))}return Ie(n,t)}function X(e){let t=e.trim(),r=p(t);if(!t)return!1;if(t.startsWith(`#`))return Ae.test(t);if(r===`currentcolor`||n.has(r)||De.has(r))return!0;let i=g(t);return i?.name===`attr`?b(i.args):i!=null&&ze(i)}const Be=RegExp(`^([+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?)${t}$`,`i`);function Ve(e){let t=e.match(Be);return t!=null&&Number(t[1])<0}function He(e){if(u(e).length!==1)return;let t=f(e);return t.length>0?t:void 0}function Ue(e){let t=U(e),n=X(e);if(t&&n)return{kind:`unknown`};if(t)return{kind:`length`,negative:Ve(e)};if(n)return{kind:`color`}}function Z(e){let t=new Set([0]);for(let n of e){let e=new Set;for(let r of t){let t=r>>1,i=r&1;if(n.kind===`length`){t<3&&!(t===2&&n.negative)&&e.add(t+1<<1|i);continue}if(n.kind===`color`){i===0&&e.add(r|1);continue}for(let n=t;n<=3;n++){let t=n<<1|i;e.add(t),i===0&&e.add(t|1)}}if(e.size===0)return!1;t=e}for(let e of t)if(e>>1>=2)return!0;return!1}function We(e){let t=He(e.trim());if(t==null||t.some(e=>/^(?:inset|none)$/i.test(e)))return!1;let n=t.map(Ue);return n.length===1&&n[0]?.kind===`unknown`||n.every(e=>e!=null)&&Z(n)}function Ge(e){return/^(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*')$/.test(e)}const Ke=new Set([`linear`,`ease`,`ease-in`,`ease-out`,`ease-in-out`,`step-start`,`step-end`]);function qe(e){if(/^[+-]?(?:\d+|\d*\.\d+)(?:e[+-]?\d+)?(?:ms|s)$/i.test(e))return!0;let t=V(e,new Set);return t===`time`||t===`unknown`}function Q(e){if(C.test(e))return!0;let t=V(e,new Set);return t===`number`||t===`unknown`}function Je(e){if(T.test(e))return!0;let t=V(e,new Set);return t===`percentage`||t===`unknown`}function $(e,t){let n=`${t}(`;return e.slice(0,n.length).toLowerCase()===n&&e.endsWith(`)`)?e.slice(n.length,-1):void 0}function Ye(e){let t=$(e,`cubic-bezier`);if(t==null)return!1;let n=u(t);return n.length!==4||n.some(e=>!Q(e))?!1:[n[0],n[2]].every(e=>!C.test(e)||Number(e)>=0&&Number(e)<=1)}function Xe(e){let t=$(e,`steps`);if(t==null)return!1;let n=u(t);if(n.length<1||n.length>2)return!1;let r=n[0],i=p(n[1]??`end`);if(!new Set([`jump-start`,`jump-end`,`jump-none`,`jump-both`,`start`,`end`]).has(i))return!1;if(C.test(r))return Number.isInteger(Number(r))&&Number(r)>=(i===`jump-none`?2:1);let a=V(r,new Set);return a===`number`||a===`unknown`}function Ze(e){let t=$(e,`linear`);if(t==null)return!1;let n=u(t);return n.length>0&&n.every(e=>{let t=f(e);return t.length>=1&&t.length<=3&&Q(t[0])&&t.slice(1).every(Je)})}function Qe(e){let t=u(e);return t.length>0&&t.every(e=>Ke.has(p(e))||Ye(e)||Xe(e)||Ze(e)||V(e,new Set)===`unknown`)}export{te as C,_ as S,p as T,k as _,X as a,w as b,C as c,V as d,xe as f,Se as g,U as h,We as i,T as l,Ce as m,qe as n,D as o,H as p,Ge as r,se as s,Qe as t,le as u,we as v,ae as w,ce as x,O as y};