@animus-ui/core 0.1.1-beta.3 → 0.1.1-beta.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.
Files changed (48) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +1 -86
  3. package/dist/Animus.d.ts +63 -0
  4. package/dist/AnimusConfig.d.ts +8 -0
  5. package/dist/{utils/__fixtures__ → __fixtures__}/testConfig.d.ts +0 -0
  6. package/dist/compatTheme.d.ts +20 -0
  7. package/dist/config.d.ts +2193 -0
  8. package/dist/createAnimus.d.ts +1 -1
  9. package/dist/index.cjs.js +1 -1
  10. package/dist/index.d.ts +417 -997
  11. package/dist/index.esm.js +1 -1
  12. package/dist/legacy/compose.d.ts +2 -0
  13. package/dist/legacy/config.d.ts +85 -0
  14. package/dist/legacy/core.d.ts +12 -0
  15. package/dist/legacy/create.d.ts +2 -0
  16. package/dist/{internal → legacy}/createCss.d.ts +1 -1
  17. package/dist/legacy/createParser.d.ts +9 -0
  18. package/dist/{internal → legacy}/createStates.d.ts +1 -1
  19. package/dist/{styles → legacy}/createTransform.d.ts +1 -1
  20. package/dist/{internal → legacy}/createVariant.d.ts +1 -1
  21. package/dist/{utils → legacy}/responsive.d.ts +3 -2
  22. package/dist/properties/getStylePropNames.d.ts +1 -0
  23. package/dist/{utils/propNames.d.ts → properties/orderPropNames.d.ts} +1 -1
  24. package/dist/{utils → properties}/styledOptions.d.ts +0 -1
  25. package/dist/scales/lookupScaleValue.d.ts +3 -0
  26. package/dist/styles/createParser.d.ts +2 -2
  27. package/dist/styles/createPropertyStyle.d.ts +3 -0
  28. package/dist/styles/responsive.d.ts +14 -0
  29. package/dist/transforms/border.d.ts +1 -0
  30. package/dist/transforms/index.d.ts +2 -0
  31. package/dist/transforms/utils.d.ts +1 -0
  32. package/dist/types/config.d.ts +25 -62
  33. package/dist/types/properties.d.ts +4 -3
  34. package/dist/types/props.d.ts +1 -5
  35. package/dist/types/scales.d.ts +2 -0
  36. package/dist/types/shared.d.ts +4 -0
  37. package/dist/types/theme.d.ts +0 -16
  38. package/dist/types/utils.d.ts +1 -0
  39. package/package.json +3 -3
  40. package/dist/animusBuilder.d.ts +0 -81
  41. package/dist/configBuilder.d.ts +0 -11
  42. package/dist/deprecated/core.d.ts +0 -10
  43. package/dist/internal/compose.d.ts +0 -2
  44. package/dist/internal/create.d.ts +0 -2
  45. package/dist/props/baseConfig.d.ts +0 -588
  46. package/dist/props/baseScales.d.ts +0 -51
  47. package/dist/scales/createScaleLookup.d.ts +0 -5
  48. package/dist/utils/getStaticProperties.d.ts +0 -1
package/dist/index.esm.js CHANGED
@@ -1 +1 @@
1
- import{mapValues as r,omit as e,intersection as t,get as o,merge as s,pick as p,isEmpty as i,isObject as a,set as n,isString as d,isArray as c,isUndefined as l,identity as y,isNumber as g}from"lodash";import u from"@emotion/styled";const b=()=>[],m=["border","borderTop","borderBottom","borderLeft","borderRight","borderWidth","borderStyle","borderColor","background","flex","margin","padding","transition","gap","grid","gridArea","gridColumn","gridRow","gridTemplate","overflow","transition"],h=-1,f=1,R=1,w=(r,e)=>r<e?h:e<r?f:R,x=["_","xs","sm","md","lg","xl"],C=r=>`@media screen and (min-width: ${r}px)`,S={xs:480,sm:768,md:1024,lg:1200,xl:1440},v=(r,e,p,i,a)=>{const n=o(p,e);switch(typeof n){case"string":case"number":case"function":return Object.assign(r,i.styleFn(n,e,p));case"object":if(!a.mediaQueries)return;if(d=n,Array.isArray(d))return s(r,((r,e,t,o)=>{const s={},{styleFn:p,prop:i}=t,[a,...n]=r;return a&&Object.assign(s,p(a,i,e)),n.forEach(((r,t)=>{const a=o[t];a&&void 0!==r&&Object.assign(s,{[a]:p(r,i,e)})})),s})(n,p,i,a.mediaQueries.array));if(n&&(r=>t(Object.keys(r),x).length>0)(n))return s(r,((r,e,t,o)=>{const s={},{styleFn:p,prop:i}=t,{_:a,...n}=r;return a&&Object.assign(s,p(a,i,e)),Object.keys(o).forEach((r=>{const t=n[r];void 0!==t&&Object.assign(s,{[o[r]]:p(t,i,e)})})),s})(n,p,i,a.mediaQueries.map))}var d};function T(t){const s=(r=>Object.keys(r).sort(((e,t)=>{const{[e]:o,[t]:s}=r,{property:p,properties:i=[]}=o,{property:a,properties:n=[]}=s,d=m.includes(p),c=m.includes(a);if(d&&c){const r=i.length,e=n.length;if(p!==a)return w(m.indexOf(p),m.indexOf(a));if(p===a){if(0===r)return h;if(0===e)return f}return w(e,r)}return d?h:c?f:R})))(t),p={mediaQueries:null};return Object.assign(((i,a=!1)=>{const n={},{theme:d}=i;return p.mediaQueries||(p.mediaQueries=(e=>{if(void 0===e)return null;const{xs:t,sm:o,md:s,lg:p,xl:i}=e??{};return{map:r(e,C),array:[t,o,s,p,i].map(C)}})(d?.breakpoints??S)),a?Object.keys(i).forEach((r=>{const e=t[r];e?v(n,r,i,e,p):"theme"!==r&&Object.assign(n,{[r]:o(i,r)})})):s.forEach((r=>{const e=t[r];v(n,r,i,e,p)})),null!==p.mediaQueries?((r,t)=>{const o=e(r,t);return t.forEach((e=>{r[e]&&(o[e]=r[e])})),o})(n,p.mediaQueries.array):n}),{propNames:s,config:t})}const j=(r,e)=>{const t=Object.keys(r),o=Object.keys(e);return r=>{const e=[];return t.forEach((t=>{r[t]&&e.push(`${t}-${r[t]}`)})),o.forEach((t=>{r[t]&&e.push(t)})),e}},O=(r,e)=>{const t={},o={};return Object.entries(r).forEach((([r,s])=>{(e.includes(r)?o:t)[r]=s})),[t,o]},B=(r,e,t,o)=>{const{base:s}=e,{parser:a,getMediaSelectors:n,getActiveOverrides:d}=o,{theme:c}=t,l=Object.values(p(e,d(t))),y=n(t),[g,u]=O(a({...s,theme:c},!0),y);for(const e in g)r[e]=g[e];l.forEach((e=>{((r={},e,t,o,s,p)=>{const[a,n]=O(o({...r,theme:s},!0),p);for(const r in a)e[r]=a[r];p.forEach((r=>{const e=n[r];if(!e||i(e))return;t[r]||(t[r]={});const o=t[r];for(const r in e)o[r]=e[r]}))})(e,r,u,a,c,y)})),y.forEach((e=>{const t=u[e];i(t)||(r[e]=t)}))},k=(r,e={},t={},o={},s={})=>{const p=((r={},e={},t={},o)=>{const s={};return Object.entries(r).forEach((([r,e])=>{!o.includes(r)&&a(e)?n(s,[r,"base"],e):n(s,["primary","base",r],e)})),Object.entries(e).forEach((([r,{variants:e}])=>{Object.entries(e).forEach((([e,t])=>{const p=`${r}-${e}`;Object.entries(t).forEach((([r,e])=>{!o.includes(r)&&a(e)?n(s,[r,p],e):n(s,["primary",p,r],e)}))}))})),Object.entries(t).forEach((([r,e])=>{Object.entries(e).forEach((([e,t])=>{!o.includes(e)&&a(t)?n(s,[e,r],t):n(s,["primary",r,e],t)}))})),s})(e,t,o,r.propNames),i={parser:r,getMediaSelectors:({theme:r})=>{const e=r?.breakpoints??S;return["xs","sm","md","lg","xl"].map((r=>e[r]))},getActiveOverrides:j(t,o)};return e=>{const{vars:t}=e,o={...t};return Object.entries(p).forEach((([r,t={}])=>{"primary"===r?B(o,t,e,i):(o[r]={},B(o[r],t,e,i))})),B(o,{base:r(e)},e,i),o}};function W(r,e){const{transform:t=y,property:s,properties:p=[s],scale:i}=e,n=(r=>d(r)?(e,t)=>o(t,["theme",r,e]):c(r)?r=>r:a(r)?e=>o(r,e):()=>{})(i),g=void 0===i||c(i);return{...e,prop:r,styleFn:(r,e,o)=>{const s={};if(l(r))return s;let i,a,d=!1;switch(typeof r){case"number":case"string":a=n(r,o),d=void 0!==a||g,i=a??r;break;case"function":o.theme&&(i=r(o.theme));break;default:return s}return p.forEach((r=>{let e=i;switch(d&&!l(e)&&(e=t(e,r,o)),typeof e){case"number":case"string":return s[r]=e;case"object":return Object.assign(s,e)}})),s}}}function L(r){const e={};for(const t in r)"string"==typeof t&&(e[t]=W(t,r[t]));return T(e)}class A{props={};parser={};groups=[];base={};statesConfig={};variants={};custom={};constructor(r,e,t,o,s,p,i){this.props=r,this.parser=e,this.groups=p,this.base=t,this.statesConfig=s,this.variants=o,this.custom=i}asComponent(r){const e=k(L({...this.parser.config,...this.custom}),this.base,this.variants,this.statesConfig,{});return u(r)(e)}build(){return k(L({...this.parser.config,...this.custom}),this.base,this.variants,this.statesConfig,{})}}class E extends A{constructor(r,e,t,o,s,p){super(r,e,t,o,s,p,{})}customProps(r){return new A(this.props,this.parser,this.base,this.variants,this.statesConfig,this.groups,r)}}class G extends E{constructor(r,e,t,o,s){super(r,e,t,o,s,[])}systemProps(r){return new E(this.props,this.parser,this.base,this.variants,this.statesConfig,Object.keys(r))}}class $ extends G{constructor(r,e,t,o){super(r,e,t,o,{})}states(r){return new G(this.props,this.parser,this.base,this.variants,r)}variant(r){const e=r.prop||"variant";return new $(this.props,this.parser,this.base,s(this.variants,{[e]:r}))}}class F extends ${constructor(r,e,t){super(r,e,t,{})}variant(r){const e=r.prop||"variant";return new $(this.props,this.parser,this.base,s(this.variants,{[e]:r}))}}class I extends F{constructor(r){super(r,L(r.props),{})}styles(r){return new F(this.props,this.parser,r)}}class H{#r={};#e={};constructor(r,e){this.#r=r||{},this.#e=e||{}}addGroup(r,e){const t={[r]:Object.keys(e)};return new H({...this.#r,...e},{...this.#e,...t})}build(){return new I({props:this.#r,groups:this.#e})}}const Q=()=>new H,z=r=>0===r?r:r<=1&&r>=-1?100*r+"%":`${r}px`,X=/(-?\d*\.?\d+)(%|\w*)/,Y=r=>{if(g(r))return z(r);if(r.includes("calc"))return r;const[e,t,o]=X.exec(r)||[];if(void 0===e)return r;const s=parseFloat(t);return o?`${s}${o}`:z(s)},D={max:"max-content",min:"min-content"},P=new RegExp(/^[0-9]*$/),M=r=>{var e;return`minmax(0, ${e=r,P.test(e)?`${r}fr`:o(D,r,r)})`},N=(r,e)=>{const t=M(r);return e>1?`repeat(${e}, ${t})`:t},_=r=>{const e=r.split(":");let t=["",0],o="";for(let r=0;r<e.length+1;r+=1){const s=o.length>0?" ":"",p=e[r];t?.[0]!==p?(t[0].length&&(o+=s+N(...t)),p&&(t=[p,1])):t[1]+=1}return o},q=r=>g(r)?N("1",r):_(r),J={justifySelf:{property:"justifySelf"},alignSelf:{property:"alignSelf"},gridArea:{property:"gridArea"},area:{property:"gridArea"}},K={justifyContent:{property:"justifyContent"},justifyItems:{property:"justifyItems"},alignItems:{property:"alignItems"},alignContent:{property:"alignContent"},...J},U={flexBasis:{property:"flexBasis"},flexShrink:{property:"flexShrink"},flexGrow:{property:"flexGrow"},order:{property:"order"}},V={flexDirection:{property:"flexDirection"},flexWrap:{property:"flexWrap"},flex:{property:"flex"},...K,...U},Z={gridColumn:{property:"gridColumn"},gridRow:{property:"gridRow"},gridColumnStart:{property:"gridColumnStart"},gridRowStart:{property:"gridRowStart"},gridColumnEnd:{property:"gridColumnEnd"},gridRowEnd:{property:"gridRowEnd"}},rr={gridAutoColumns:{property:"gridAutoColumns"},gridAutoRows:{property:"gridAutoRows"},gridTemplateColumns:{property:"gridTemplateColumns"},gridTemplateRows:{property:"gridTemplateRows"},gridTemplateAreas:{property:"gridTemplateAreas"},gridAutoFlow:{property:"gridAutoFlow"},gap:{property:"gap",scale:"spacing"},rowGap:{property:"rowGap",scale:"spacing"},columnGap:{property:"columnGap",scale:"spacing"},flow:{property:"gridAutoFlow",scale:{row:"row",column:"column",dense:"dense","column-dense":"column dense","row-dense":"row dense"}},cols:{property:"gridTemplateColumns",transform:q,scale:[]},rows:{property:"gridTemplateRows",transform:q,scale:[]},autoRows:{property:"gridAutoRows",transform:M},autoCols:{property:"gridAutoColumns",transform:M},alignAll:{property:"justifyContent",properties:["justifyContent","alignItems"]},...K,...Z},er={position:{property:"position"},inset:{property:"inset",properties:["top","right","bottom","left"],transform:Y},top:{property:"top",transform:Y},right:{property:"right",transform:Y},bottom:{property:"bottom",transform:Y},left:{property:"left",transform:Y},zIndex:{property:"zIndex"},opacity:{property:"opacity"}},tr={display:{property:"display"},overflow:{property:"overflow"},overflowX:{property:"overflowX"},overflowY:{property:"overflowY"},size:{property:"width",properties:["width","height"],transform:Y},width:{property:"width",transform:Y},minWidth:{property:"minWidth",transform:Y},maxWidth:{property:"maxWidth",transform:Y},height:{property:"height",transform:Y},minHeight:{property:"minHeight",transform:Y},maxHeight:{property:"maxHeight",transform:Y},verticalAlign:{property:"verticalAlign"},...J,...Z,...U},or={m:{property:"margin",scale:"spacing"},mx:{property:"margin",properties:["marginLeft","marginRight"],scale:"spacing"},my:{property:"margin",properties:["marginTop","marginBottom"],scale:"spacing"},mt:{property:"marginTop",scale:"spacing"},mb:{property:"marginBottom",scale:"spacing"},mr:{property:"marginRight",scale:"spacing"},ml:{property:"marginLeft",scale:"spacing"},p:{property:"padding",scale:"spacing"},px:{property:"padding",properties:["paddingLeft","paddingRight"],scale:"spacing"},py:{property:"padding",properties:["paddingTop","paddingBottom"],scale:"spacing"},pt:{property:"paddingTop",scale:"spacing"},pb:{property:"paddingBottom",scale:"spacing"},pr:{property:"paddingRight",scale:"spacing"},pl:{property:"paddingLeft",scale:"spacing"}},sr=Q().addGroup("space",or).addGroup("background",{background:{property:"background"},backgroundImage:{property:"backgroundImage"},backgroundSize:{property:"backgroundSize"},backgroundRepeat:{property:"backgroundRepeat"},backgroundPosition:{property:"backgroundPosition"}}).addGroup("layout",tr).addGroup("color",{color:{property:"color",scale:"colors"},textColor:{property:"color",scale:"colors"},bg:{property:"backgroundColor",scale:"colors"},borderColor:{property:"borderColor",scale:"colors"},borderColorX:{property:"borderColor",properties:["borderLeftColor","borderRightColor"],scale:"colors"},borderColorY:{property:"borderColor",properties:["borderTopColor","borderBottomColor"],scale:"colors"},borderColorLeft:{property:"borderLeftColor",scale:"colors"},borderColorRight:{property:"borderRightColor",scale:"colors"},borderColorTop:{property:"borderTopColor",scale:"colors"},borderColorBottom:{property:"borderBottomColor",scale:"colors"}}).addGroup("typography",{fontFamily:{property:"fontFamily",scale:"fontFamily"},fontWeight:{property:"fontWeight",scale:{400:400,600:600,700:700}},lineHeight:{property:"lineHeight",scale:"lineHeight",lineHeight:[1,1.5]},fontSize:{property:"fontSize",scale:{64:64,44:44,34:34,26:26,22:22,20:20,18:18,16:16,14:14}},letterSpacing:{property:"letterSpacing"},textAlign:{property:"textAlign"},fontStyle:{property:"fontStyle"},textDecoration:{property:"textDecoration"},textTransform:{property:"textTransform"},whiteSpace:{property:"whiteSpace"}}).addGroup("shadows",{boxShadow:{property:"boxShadow"},textShadow:{property:"textShadow"}}).addGroup("borders",{border:{property:"border",scale:"borders"},borderX:{property:"border",properties:["borderLeft","borderRight"],scale:"borders"},borderY:{property:"border",properties:["borderTop","borderBottom"],scale:"borders"},borderTop:{property:"borderTop",scale:"borders"},borderRight:{property:"borderRight",scale:"borders"},borderBottom:{property:"borderBottom",scale:"borders"},borderLeft:{property:"borderLeft",scale:"borders"},borderWidth:{property:"borderWidth"},borderWidthX:{property:"borderWidth",properties:["borderLeftWidth","borderRightWidth"]},borderWidthY:{property:"borderWidth",properties:["borderTopWidth","borderBottomWidth"]},borderWidthLeft:{property:"borderLeftWidth"},borderWidthRight:{property:"borderRightWidth"},borderWidthTop:{property:"borderTopWidth"},borderWidthBottom:{property:"borderBottomWidth"},borderRadius:{property:"borderRadius",scale:"radii"},borderRadiusLeft:{property:"borderRadius",properties:["borderTopLeftRadius","borderBottomLeftRadius"],scale:"radii"},borderRadiusTop:{property:"borderRadius",properties:["borderTopLeftRadius","borderTopRightRadius"],scale:"radii"},borderRadiusBottom:{property:"borderRadius",properties:["borderBottomLeftRadius","borderBottomRightRadius"],scale:"radii"},borderRadiusRight:{property:"borderRadius",properties:["borderTopRightRadius","borderBottomRightRadius"],scale:"radii"},borderRadiusTopLeft:{property:"borderTopLeftRadius",scale:"radii"},borderRadiusTopRight:{property:"borderTopRightRadius",scale:"radii"},borderRadiusBottomRight:{property:"borderBottomRightRadius",scale:"radii"},borderRadiusBottomLeft:{property:"borderBottomLeftRadius",scale:"radii"},borderStyle:{property:"borderStyle"},borderStyleX:{property:"borderStyle",properties:["borderLeftStyle","borderRightStyle"]},borderStyleY:{property:"borderStyle",properties:["borderTopStyle","borderBottomStyle"]},borderStyleLeft:{property:"borderLeftStyle"},borderStyleRight:{property:"borderRightStyle"},borderStyleTop:{property:"borderTopStyle"},borderStyleBottom:{property:"borderBottomStyle"}}).addGroup("positioning",er).addGroup("flex",V).addGroup("grid",rr).addGroup("mode",{mode:{property:"none",scale:"mode"}}).addGroup("vars",{vars:{property:"variables"}}),pr=sr.build();export{H as AnimusConfig,pr as animus,sr as coreConfig,Q as createAnimus,b as createScale,M as gridItem,q as gridItemRatio,_ as parseGridRatio,z as percentageOrAbsolute,N as repeatGridItem,Y as size};
1
+ import{isString as r,get as e,isArray as t,isObject as o,isUndefined as s,identity as i,mapValues as p,omit as a,intersection as n,merge as d,pick as c,isEmpty as l,set as u,isNumber as y,keys as g}from"lodash";import m from"@emotion/styled";const b=()=>[],f={spacing:[0,4,8,12,16,24,32,40,48,64,96],fontSize:[64,44,34,26,22,20,18,16,14],lineHeight:{body:1.5,heading:1},fontWeight:[400,600,700],fontFamily:{body:"Verdana, sans-serif",heading:"Verdana, Lato, sans-serif",monospace:"monospace"},radii:[2,4,6,8],borders:[1,2,3],colors:{},modes:{},mode:void 0},h=(s,i,p)=>r(i)&&p?.hasOwnProperty(i)?e(p,[i,s]):r(i)&&f?.hasOwnProperty(i)?e(f,[i,s]):t(i)?s:o(i)?e(i,s):void 0,R=(r,e,o)=>{const p={},{transform:a=i,property:n,properties:d=[n],scale:c,variable:l}=o,u=void 0===c||t(c);if(s(r))return p;let y,g,m=!1;switch(typeof r){case"number":case"string":g=h(r,c,e?.theme),m=void 0!==g||u,y=g??r;break;case"function":e.theme&&(y=r(e.theme));break;default:return p}if(d.forEach((r=>{let t=y;switch(m&&!s(t)&&(t=a(t,r,e)),typeof t){case"number":case"string":return p[r]=t;case"object":return Object.assign(p,t)}})),l){let r=y;m&&!s(r)&&(r=a(r,n,e)),r&&"object"!=typeof r&&(p[l]=r)}return p},x=["border","borderTop","borderBottom","borderLeft","borderRight","borderWidth","borderStyle","borderColor","background","flex","margin","padding","transition","gap","grid","gridArea","gridColumn","gridRow","gridTemplate","overflow","transition"],w=-1,S=1,v=1,j=(r,e)=>r<e?w:e<r?S:v,C=r=>Object.keys(r).sort(((e,t)=>{const{[e]:o,[t]:s}=r,{property:i,properties:p=[]}=o,{property:a,properties:n=[]}=s,d=x.includes(i),c=x.includes(a);if(d&&c){const r=p.length,e=n.length;if(i!==a)return j(x.indexOf(i),x.indexOf(a));if(i===a){if(0===r)return w;if(0===e)return S}return j(e,r)}return d?w:c?S:v})),O=["_","xs","sm","md","lg","xl"],T=r=>`@media screen and (min-width: ${r}px)`,k={xs:480,sm:768,md:1024,lg:1200,xl:1440},E=(r,t,o,s,i)=>{const p=e(o,t);switch(typeof p){case"string":case"number":case"function":return Object.assign(r,R(p,o,s));case"object":if(!i.mediaQueries)return;if(a=p,Array.isArray(a))return d(r,((r,e,t,o)=>{const s={},[i,...p]=r;return i&&Object.assign(s,R(i,e,t)),p.forEach(((r,i)=>{const p=o[i];p&&void 0!==r&&Object.assign(s,{[p]:R(r,e,t)})})),s})(p,o,s,i.mediaQueries.array));if(p&&(r=>n(Object.keys(r),O).length>0)(p))return d(r,((r,e,t,o)=>{const s={},{_:i,...p}=r;return i&&Object.assign(s,R(i,e,t)),Object.keys(o).forEach((r=>{const i=p[r];void 0!==i&&Object.assign(s,{[o[r]]:R(i,e,t)})})),s})(p,o,s,i.mediaQueries.map))}var a};function W(r){const t=C(r),o={mediaQueries:null};return Object.assign(((s,i=!1)=>{const n={},{theme:d}=s;return null===o.mediaQueries&&(o.mediaQueries=(r=>{if(void 0===r)return null;const{xs:e,sm:t,md:o,lg:s,xl:i}=r??{};return{map:p(r,T),array:[e,t,o,s,i].map(T)}})(d?.breakpoints??k)),i?Object.keys(s).forEach((t=>{const i=r[t];i?E(n,t,s,i,o):"theme"!==t&&Object.assign(n,{[t]:e(s,t)})})):t.forEach((e=>{const t=r[e];E(n,e,s,t,o)})),null!==o.mediaQueries?((r,e)=>{const t=a(r,e);return e.forEach((e=>{r[e]&&(t[e]=r[e])})),t})(n,o.mediaQueries.array):n}),{propNames:t,config:r})}const B=(r,e)=>{const t=Object.keys(r),o=Object.keys(e);return r=>{const e=[];return t.forEach((t=>{r[t]&&e.push(`${t}-${r[t]}`)})),o.forEach((t=>{r[t]&&e.push(t)})),e}},L=(r,e)=>{const t={},o={};return Object.entries(r).forEach((([r,s])=>{(e.includes(r)?o:t)[r]=s})),[t,o]},A=(r,e,t,o)=>{const{base:s}=e,{parser:i,getMediaSelectors:p,getActiveOverrides:a}=o,{theme:n}=t,d=Object.values(c(e,a(t))),u=p(t),[y,g]=L(i({...s,theme:n},!0),u);for(const e in y)r[e]=y[e];d.forEach((e=>{((r={},e,t,o,s,i)=>{const[p,a]=L(o({...r,theme:s},!0),i);for(const r in p)e[r]=p[r];i.forEach((r=>{const e=a[r];if(!e||l(e))return;t[r]||(t[r]={});const o=t[r];for(const r in e)o[r]=e[r]}))})(e,r,g,i,n,u)})),u.forEach((e=>{const t=g[e];l(t)||(r[e]=t)}))},G=(r,e={},t={},s={},i={})=>{const p=((r={},e={},t={},s)=>{const i={};return Object.entries(r).forEach((([r,e])=>{!s.includes(r)&&o(e)?u(i,[r,"base"],e):u(i,["primary","base",r],e)})),Object.entries(e).forEach((([r,{variants:e}])=>{Object.entries(e).forEach((([e,t])=>{const p=`${r}-${e}`;Object.entries(t).forEach((([r,e])=>{!s.includes(r)&&o(e)?u(i,[r,p],e):u(i,["primary",p,r],e)}))}))})),Object.entries(t).forEach((([r,e])=>{Object.entries(e).forEach((([e,t])=>{!s.includes(e)&&o(t)?u(i,[e,r],t):u(i,["primary",r,e],t)}))})),i})(e,t,s,r.propNames),a={parser:r,getMediaSelectors:({theme:r})=>{const e=r?.breakpoints??k;return["xs","sm","md","lg","xl"].map((r=>e[r]))},getActiveOverrides:B(t,s)};return e=>{const{vars:t}=e,o={...t};return Object.entries(p).forEach((([r,t={}])=>{"primary"===r?A(o,t,e,a):(o[r]={},A(o[r],t,e,a))})),A(o,{base:r(e)},e,a),o}};class Q{propRegistry={};groupRegistry={};parser={};baseStyles={};statesConfig={};variants={};activeGroups={};custom={};constructor(r,e,t,o,s,i,p,a){this.propRegistry=r,this.groupRegistry=e,this.parser=t,this.baseStyles=o,this.variants=s,this.statesConfig=i,this.activeGroups=p,this.custom=a}asComponent(r){const e=G(W({...this.parser.config,...this.custom}),this.baseStyles,this.variants,this.statesConfig,{});return m(r)(e)}build(){return G(W({...this.parser.config,...this.custom}),this.baseStyles,this.variants,this.statesConfig,{})}}class $ extends Q{constructor(r,e,t,o,s,i,p){super(r,e,t,o,s,i,p,{})}props(r){return new Q(this.propRegistry,this.groupRegistry,this.parser,this.baseStyles,this.variants,this.statesConfig,this.activeGroups,r)}}class F extends ${constructor(r,e,t,o,s,i){super(r,e,t,o,s,i,{})}groups(r){return new $(this.propRegistry,this.groupRegistry,this.parser,this.baseStyles,this.variants,this.statesConfig,r)}}class H extends F{constructor(r,e,t,o,s){super(r,e,t,o,s,{})}states(r){return new F(this.propRegistry,this.groupRegistry,this.parser,this.baseStyles,this.variants,r)}variant(r){const e=r.prop||"variant";return new H(this.propRegistry,this.groupRegistry,this.parser,this.baseStyles,d(this.variants,{[e]:r}))}}class z extends H{constructor(r,e,t,o){super(r,e,t,o,{})}variant(r){const e=r.prop||"variant";return new H(this.propRegistry,this.groupRegistry,this.parser,this.baseStyles,d(this.variants,{[e]:r}))}}class I extends z{constructor(r,e){super(r,e,W(r),{})}styles(r){return new z(this.propRegistry,this.groupRegistry,this.parser,r)}}class X{#r={};#e={};constructor(r,e){this.#r=r||{},this.#e=e||{}}addGroup(r,e){const t={[r]:Object.keys(e)};return new X({...this.#r,...e},{...this.#e,...t})}build(){const r=this.#r,e=this.#e;return new I(r,e)}}const Y=()=>new X,D=r=>0===r?r:r<=1&&r>=-1?100*r+"%":`${r}px`,N=/(-?\d*\.?\d+)(%|\w*)/,P=r=>{if(y(r))return D(r);if(r.includes("calc"))return r;const[e,t,o]=N.exec(r)||[];if(void 0===e)return r;const s=parseFloat(t);return o?`${s}${o}`:D(s)},V={max:"max-content",min:"min-content"},_=new RegExp(/^[0-9]*$/),M=r=>{var t;return`minmax(0, ${t=r,_.test(t)?`${r}fr`:e(V,r,r)})`},q=(r,e)=>{const t=M(r);return e>1?`repeat(${e}, ${t})`:t},J=r=>{const e=r.split(":");let t=["",0],o="";for(let r=0;r<e.length+1;r+=1){const s=o.length>0?" ":"",i=e[r];t?.[0]!==i?(t[0].length&&(o+=s+q(...t)),i&&(t=[i,1])):t[1]+=1}return o},K=r=>y(r)?q("1",r):J(r),U=r=>"number"==typeof r?`${r}px`:r,Z=r=>`${U(r)} solid currentColor`,rr=(r,e)=>c(r,g(r).filter((r=>!e.includes(r)))),er=["_","xs","sm","md","lg","xl"],tr=r=>`@media screen and (min-width: ${r}px)`,or={xs:480,sm:768,md:1024,lg:1200,xl:1440},sr=(r,t,o,s,i)=>{const p=e(o,t);switch(typeof p){case"string":case"number":case"function":return Object.assign(r,s.styleFn(p,t,o));case"object":if(!i.mediaQueries)return;if(a=p,Array.isArray(a))return d(r,((r,e,t,o)=>{const s={},{styleFn:i,prop:p}=t,[a,...n]=r;return a&&Object.assign(s,i(a,p,e)),n.forEach(((r,t)=>{const a=o[t];a&&void 0!==r&&Object.assign(s,{[a]:i(r,p,e)})})),s})(p,o,s,i.mediaQueries.array));if(p&&(r=>n(Object.keys(r),er).length>0)(p))return d(r,((r,e,t,o)=>{const s={},{styleFn:i,prop:p}=t,{_:a,...n}=r;return a&&Object.assign(s,i(a,p,e)),Object.keys(o).forEach((r=>{const t=n[r];void 0!==t&&Object.assign(s,{[o[r]]:i(t,p,e)})})),s})(p,o,s,i.mediaQueries.map))}var a};function ir(r){const t=C(r),o={mediaQueries:null};return Object.assign(((s,i=!1)=>{const n={},{theme:d}=s;return null===o.mediaQueries&&(o.mediaQueries=(r=>{if(void 0===r)return null;const{xs:e,sm:t,md:o,lg:s,xl:i}=r??{};return{map:p(r,tr),array:[e,t,o,s,i].map(tr)}})(d?.breakpoints??or)),i?Object.keys(s).forEach((t=>{const i=r[t];i?sr(n,t,s,i,o):"theme"!==t&&Object.assign(n,{[t]:e(s,t)})})):t.forEach((e=>{const t=r[e];sr(n,e,s,t,o)})),null!==o.mediaQueries?((r,e)=>{const t=a(r,e);return e.forEach((e=>{r[e]&&(t[e]=r[e])})),t})(n,o.mediaQueries.array):n}),{propNames:t,config:r})}function pr(r,e){const{transform:o=i,property:p,properties:a=[p],scale:n,variable:d}=e,c=void 0===n||t(n);return{...e,prop:r,styleFn:(r,e,t)=>{const i={};if(s(r))return i;let l,u,y=!1;switch(typeof r){case"number":case"string":u=h(r,n,t.theme),y=void 0!==u||c,l=u??r;break;case"function":t.theme&&(l=r(t.theme));break;default:return i}if(a.forEach((r=>{let e=l;switch(y&&!s(e)&&(e=o(e,r,t)),typeof e){case"number":case"string":return i[r]=e;case"object":return Object.assign(i,e)}})),d){let r=l;y&&!s(r)&&(r=o(r,p,t)),r&&"object"!=typeof r&&(i[d]=r)}return i}}}function ar(r){const e={};for(const t in r)"string"==typeof t&&(e[t]=pr(t,r[t]));return ir(e)}function nr(r){const e=ar(r),t=e.propNames;return r=>{let s;const i=Object.keys(r).filter((e=>!t.includes(e)&&o(r[e]))),p=rr(r,["theme",...i,...t]);return({theme:o})=>{if(s)return s;const a=e({...r,theme:o});return i.forEach((s=>{const i=r[s]??{};a[s]={...rr(i,t),...e({...i,theme:o})}})),s={...p,...a},s}}}const dr={compose:function(...r){return ir(r.reduce(((r,e)=>({...r,...e.config})),{}))},create:ar,createCss:nr,createVariant:function(r){const e=nr(r);return({prop:r="variant",defaultVariant:t,base:o={},variants:s})=>{const i=e(o),p={};return Object.keys(s).forEach((r=>{const t=r,o=s[t];p[t]=e(o)})),e=>{const{[r]:o=t}=e,s={};return o?d(s,i(e),p?.[o]?.(e)):s}}},createStates:function(r){const e=nr(r);return r=>{const t=Object.keys(r),o={};return t.forEach((t=>{const s=t,i=r[s];o[s]=e(i)})),r=>{const e={};return t.forEach((t=>{d(e,r[t]&&o[t](r))})),e}}}},cr={border:{property:"border",scale:"borders",transform:Z},borderX:{property:"border",properties:["borderLeft","borderRight"],scale:"borders",transform:Z},borderY:{property:"border",properties:["borderTop","borderBottom"],scale:"borders",transform:Z},borderTop:{property:"borderTop",scale:"borders",transform:Z},borderRight:{property:"borderRight",scale:"borders",transform:Z},borderBottom:{property:"borderBottom",scale:"borders",transform:Z},borderLeft:{property:"borderLeft",scale:"borders",transform:Z},borderWidth:{property:"borderWidth"},borderWidthX:{property:"borderWidth",properties:["borderLeftWidth","borderRightWidth"]},borderWidthY:{property:"borderWidth",properties:["borderTopWidth","borderBottomWidth"]},borderWidthLeft:{property:"borderLeftWidth"},borderWidthRight:{property:"borderRightWidth"},borderWidthTop:{property:"borderTopWidth"},borderWidthBottom:{property:"borderBottomWidth"},borderRadius:{property:"borderRadius",scale:"radii",transform:U},borderRadiusLeft:{property:"borderRadius",properties:["borderTopLeftRadius","borderBottomLeftRadius"],scale:"radii",transform:U},borderRadiusTop:{property:"borderRadius",properties:["borderTopLeftRadius","borderTopRightRadius"],scale:"radii",transform:U},borderRadiusBottom:{property:"borderRadius",properties:["borderBottomLeftRadius","borderBottomRightRadius"],scale:"radii",transform:U},borderRadiusRight:{property:"borderRadius",properties:["borderTopRightRadius","borderBottomRightRadius"],scale:"radii",transform:U},borderRadiusTopLeft:{property:"borderTopLeftRadius",scale:"radii",transform:U},borderRadiusTopRight:{property:"borderTopRightRadius",scale:"radii",transform:U},borderRadiusBottomRight:{property:"borderBottomRightRadius",scale:"radii",transform:U},borderRadiusBottomLeft:{property:"borderBottomLeftRadius",scale:"radii",transform:U},borderStyle:{property:"borderStyle"},borderStyleX:{property:"borderStyle",properties:["borderLeftStyle","borderRightStyle"]},borderStyleY:{property:"borderStyle",properties:["borderTopStyle","borderBottomStyle"]},borderStyleLeft:{property:"borderLeftStyle"},borderStyleRight:{property:"borderRightStyle"},borderStyleTop:{property:"borderTopStyle"},borderStyleBottom:{property:"borderBottomStyle"}},lr={gap:{property:"gap",scale:"spacing"},rowGap:{property:"rowGap",scale:"spacing"},columnGap:{property:"columnGap",scale:"spacing"}},ur={justifySelf:{property:"justifySelf"},alignSelf:{property:"alignSelf"},gridArea:{property:"gridArea"},area:{property:"gridArea"}},yr={justifyContent:{property:"justifyContent"},justifyItems:{property:"justifyItems"},alignItems:{property:"alignItems"},alignContent:{property:"alignContent"},...ur},gr={flexBasis:{property:"flexBasis"},flexShrink:{property:"flexShrink"},flexGrow:{property:"flexGrow"},order:{property:"order"}},mr={flexDirection:{property:"flexDirection"},flexWrap:{property:"flexWrap"},flex:{property:"flex"},...yr,...gr,...lr},br={gridColumn:{property:"gridColumn"},gridRow:{property:"gridRow"},gridColumnStart:{property:"gridColumnStart"},gridRowStart:{property:"gridRowStart"},gridColumnEnd:{property:"gridColumnEnd"},gridRowEnd:{property:"gridRowEnd"}},fr={gridAutoColumns:{property:"gridAutoColumns"},gridAutoRows:{property:"gridAutoRows"},gridTemplateColumns:{property:"gridTemplateColumns"},gridTemplateRows:{property:"gridTemplateRows"},gridTemplateAreas:{property:"gridTemplateAreas"},gridAutoFlow:{property:"gridAutoFlow"},flow:{property:"gridAutoFlow",scale:[]},cols:{property:"gridTemplateColumns",transform:K,scale:[]},rows:{property:"gridTemplateRows",transform:K,scale:[]},autoRows:{property:"gridAutoRows",transform:M},autoCols:{property:"gridAutoColumns",transform:M},alignAll:{property:"justifyContent",properties:["justifyContent","alignItems"]},...yr,...br,...lr},hr={position:{property:"position"},inset:{property:"inset",properties:["top","right","bottom","left"],transform:P},top:{property:"top",transform:P},right:{property:"right",transform:P},bottom:{property:"bottom",transform:P},left:{property:"left",transform:P},zIndex:{property:"zIndex"},opacity:{property:"opacity"}},Rr={display:{property:"display"},overflow:{property:"overflow"},overflowX:{property:"overflowX"},overflowY:{property:"overflowY"},size:{property:"width",properties:["width","height"],transform:P},width:{property:"width",transform:P},minWidth:{property:"minWidth",transform:P},maxWidth:{property:"maxWidth",transform:P},height:{property:"height",transform:P},minHeight:{property:"minHeight",transform:P},maxHeight:{property:"maxHeight",transform:P},verticalAlign:{property:"verticalAlign"},...ur,...br,...gr},xr={m:{property:"margin",scale:"spacing"},mx:{property:"margin",properties:["marginLeft","marginRight"],scale:"spacing"},my:{property:"margin",properties:["marginTop","marginBottom"],scale:"spacing"},mt:{property:"marginTop",scale:"spacing"},mb:{property:"marginBottom",scale:"spacing"},mr:{property:"marginRight",scale:"spacing"},ml:{property:"marginLeft",scale:"spacing"},p:{property:"padding",scale:"spacing"},px:{property:"padding",properties:["paddingLeft","paddingRight"],scale:"spacing"},py:{property:"padding",properties:["paddingTop","paddingBottom"],scale:"spacing"},pt:{property:"paddingTop",scale:"spacing"},pb:{property:"paddingBottom",scale:"spacing"},pr:{property:"paddingRight",scale:"spacing"},pl:{property:"paddingLeft",scale:"spacing"}},wr=Y().addGroup("flex",mr).addGroup("grid",fr).addGroup("mode",{mode:{property:"none",scale:"mode"}}).addGroup("vars",{vars:{property:"variables"}}).addGroup("space",xr).addGroup("color",{color:{property:"color",scale:"colors"},textColor:{property:"color",scale:"colors"},bg:{property:"backgroundColor",scale:"colors"},borderColor:{property:"borderColor",scale:"colors"},borderColorX:{property:"borderColor",properties:["borderLeftColor","borderRightColor"],scale:"colors"},borderColorY:{property:"borderColor",properties:["borderTopColor","borderBottomColor"],scale:"colors"},borderColorLeft:{property:"borderLeftColor",scale:"colors"},borderColorRight:{property:"borderRightColor",scale:"colors"},borderColorTop:{property:"borderTopColor",scale:"colors"},borderColorBottom:{property:"borderBottomColor",scale:"colors"}}).addGroup("layout",Rr).addGroup("borders",cr).addGroup("shadows",{boxShadow:{property:"boxShadow"},textShadow:{property:"textShadow"}}).addGroup("background",{background:{property:"background"},backgroundImage:{property:"backgroundImage"},backgroundSize:{property:"backgroundSize"},backgroundRepeat:{property:"backgroundRepeat"},backgroundPosition:{property:"backgroundPosition"}}).addGroup("typography",{fontFamily:{property:"fontFamily",scale:"fontFamily"},fontWeight:{property:"fontWeight",scale:"fontWeight"},lineHeight:{property:"lineHeight",scale:"lineHeight",lineHeight:"lineHeight"},fontSize:{property:"fontSize",scale:"fontSize"},letterSpacing:{property:"letterSpacing"},textAlign:{property:"textAlign"},fontStyle:{property:"fontStyle"},textDecoration:{property:"textDecoration"},textTransform:{property:"textTransform"},whiteSpace:{property:"whiteSpace"}}).addGroup("positioning",hr);wr.build();const Sr=wr.build();export{X as AnimusConfig,Sr as animus,dr as animusProps,Z as borderShorthand,f as compatTheme,wr as config,Y as createAnimus,b as createScale,M as gridItem,K as gridItemRatio,U as numberToPx,J as parseGridRatio,D as percentageOrAbsolute,q as repeatGridItem,P as size};
@@ -0,0 +1,2 @@
1
+ import { AbstractParser, Compose } from './config';
2
+ export declare function compose<Args extends AbstractParser[]>(...parsers: Args): import("./config").Parser<Compose<Args>>;
@@ -0,0 +1,85 @@
1
+ import { Theme } from '@emotion/react';
2
+ import { DefaultCSSPropertyValue, PropertyTypes } from '../types/properties';
3
+ import { CSSObject } from '../types/shared';
4
+ import { AbstractProps, CSSPropMap, CSSProps, ResponsiveProp, ThemeProps } from '../types/props';
5
+ import { AllUnionKeys, Key, KeyFromUnion } from '../types/utils';
6
+ export declare type MapScale = Record<string | number, string | number>;
7
+ export declare type ArrayScale = readonly (string | number | CSSObject)[] & {
8
+ length: 0;
9
+ };
10
+ export interface BaseProperty {
11
+ property: keyof PropertyTypes;
12
+ properties?: readonly (keyof PropertyTypes)[];
13
+ }
14
+ export interface Prop extends BaseProperty {
15
+ scale?: keyof Theme | MapScale | ArrayScale;
16
+ variable?: string;
17
+ transform?: (val: string | number, prop?: string, props?: AbstractProps) => string | number | CSSObject;
18
+ }
19
+ export interface AbstractPropTransformer extends Prop {
20
+ prop: string;
21
+ styleFn: (value: unknown, prop: string, props: AbstractProps) => CSSObject;
22
+ }
23
+ export interface AbstractParser {
24
+ (props: AbstractProps, orderProps?: boolean): CSSObject;
25
+ propNames: string[];
26
+ config: Record<string, AbstractPropTransformer>;
27
+ }
28
+ export declare type PropertyValues<Property extends keyof PropertyTypes, All extends boolean = false> = Exclude<PropertyTypes<All extends true ? DefaultCSSPropertyValue : never>[Property], All extends true ? never : object | any[]>;
29
+ export declare type ScaleValue<Config extends Prop> = Config['scale'] extends keyof Theme ? keyof Theme[Config['scale']] | PropertyValues<Config['property']> : Config['scale'] extends MapScale ? keyof Config['scale'] | PropertyValues<Config['property']> : Config['scale'] extends ArrayScale ? Config['scale'][number] | PropertyValues<Config['property']> : PropertyValues<Config['property'], true>;
30
+ /**
31
+ * Value or something
32
+ */
33
+ export declare type Scale<Config extends Prop> = ResponsiveProp<ScaleValue<Config> | ((theme: Theme) => ScaleValue<Config>)>;
34
+ export interface TransformFn<P extends string, Config extends Prop> {
35
+ (value: Scale<Config> | Scale<Config>, prop: P, props: ThemeProps<{
36
+ [K in P]?: Scale<Config>;
37
+ }>): CSSObject;
38
+ }
39
+ export interface PropTransformer<P extends string, C extends Prop> extends AbstractPropTransformer, Prop {
40
+ prop: P;
41
+ styleFn: TransformFn<P, C>;
42
+ }
43
+ export declare type TransformerMap<Config extends Record<string, Prop>> = {
44
+ [P in Key<keyof Config>]: PropTransformer<Key<P>, Config[P]>;
45
+ };
46
+ export interface Parser<Config extends Record<string, AbstractPropTransformer>> {
47
+ (props: ParserProps<Config>, orderProps?: boolean): CSSObject;
48
+ propNames: (keyof Config)[];
49
+ config: Config;
50
+ }
51
+ export declare type Compose<Args extends AbstractParser[]> = {
52
+ [K in AllUnionKeys<Args[number]['config']>]: KeyFromUnion<Args[number]['config'], K>;
53
+ };
54
+ export interface Variant<P extends AbstractParser> {
55
+ <Keys extends keyof Props, Base extends AbstractProps, Props extends Record<Keys, AbstractProps>, PropKey extends Readonly<string> = 'variant'>(options: {
56
+ prop?: PropKey;
57
+ defaultVariant?: keyof Props;
58
+ base?: CSSProps<Base, SystemProps<P>>;
59
+ variants: CSSPropMap<Props, SystemProps<P>>;
60
+ }): (props: VariantProps<PropKey, Keys | false> & ThemeProps) => CSSObject;
61
+ }
62
+ export interface States<P extends AbstractParser> {
63
+ <Props extends Record<string, AbstractProps>>(states: CSSPropMap<Props, SystemProps<P>>): (props: Partial<Record<keyof Props, boolean>> & ThemeProps) => CSSObject;
64
+ }
65
+ export interface CSS<P extends AbstractParser> {
66
+ <Props extends AbstractProps>(config: CSSProps<Props, SystemProps<P>>): (props: ThemeProps) => CSSObject;
67
+ }
68
+ export declare type ParserProps<Config extends Record<string, AbstractPropTransformer>> = ThemeProps<{
69
+ [P in keyof Config]?: Parameters<Config[P]['styleFn']>[2][Config[P]['prop']];
70
+ }>;
71
+ export declare type SystemProps<P extends AbstractParser> = {
72
+ [K in keyof Omit<Parameters<P>[0], 'theme'>]: Omit<Parameters<P>[0], 'theme'>[K];
73
+ };
74
+ export declare type VariantProps<T extends string, V> = {
75
+ [Key in T]?: V;
76
+ };
77
+ export declare type Arg<T extends (...args: any) => any> = Parameters<T>[0];
78
+ export interface PropConfig {
79
+ props: {
80
+ [i: string]: Prop;
81
+ };
82
+ groups: {
83
+ [i: string]: (string | symbol | number)[];
84
+ };
85
+ }
@@ -0,0 +1,12 @@
1
+ import { createCss } from './createCss';
2
+ import { createVariant } from './createVariant';
3
+ import { create } from './create';
4
+ import { compose } from './compose';
5
+ import { createStates } from './createStates';
6
+ export declare const animusProps: {
7
+ compose: typeof compose;
8
+ create: typeof create;
9
+ createCss: typeof createCss;
10
+ createVariant: typeof createVariant;
11
+ createStates: typeof createStates;
12
+ };
@@ -0,0 +1,2 @@
1
+ import { Prop, TransformerMap } from './config';
2
+ export declare function create<Config extends Record<string, Prop>>(config: Config): import("./config").Parser<TransformerMap<Config>>;
@@ -1,2 +1,2 @@
1
- import { CSS, Parser, Prop, TransformerMap } from '../types/config';
1
+ import { CSS, Parser, Prop, TransformerMap } from './config';
2
2
  export declare function createCss<Config extends Record<string, Prop>, P extends Parser<TransformerMap<Config>>>(config: Config): CSS<P>;
@@ -0,0 +1,9 @@
1
+ import { AbstractPropTransformer, Parser } from './config';
2
+ export declare const defaultBreakpoints: {
3
+ xs: number;
4
+ sm: number;
5
+ md: number;
6
+ lg: number;
7
+ xl: number;
8
+ };
9
+ export declare function createParser<Config extends Record<string, AbstractPropTransformer>>(config: Config): Parser<Config>;
@@ -1,2 +1,2 @@
1
- import { Parser, Prop, States, TransformerMap } from '../types/config';
1
+ import { Parser, Prop, States, TransformerMap } from './config';
2
2
  export declare function createStates<Config extends Record<string, Prop>, P extends Parser<TransformerMap<Config>>>(config: Config): States<P>;
@@ -1,2 +1,2 @@
1
- import { Prop, PropTransformer } from '../types/config';
1
+ import { Prop, PropTransformer } from './config';
2
2
  export declare function createTransform<P extends string, Config extends Prop>(prop: P, config: Config): PropTransformer<P, Config>;
@@ -1,2 +1,2 @@
1
- import { Parser, Prop, TransformerMap, Variant } from '../types/config';
1
+ import { Parser, Prop, TransformerMap, Variant } from './config';
2
2
  export declare function createVariant<Config extends Record<string, Prop>, P extends Parser<TransformerMap<Config>>>(config: Config): Variant<P>;
@@ -1,5 +1,6 @@
1
- import { AbstractPropTransformer } from '../types/config';
2
- import { MediaQueryCache, CSSObject, MediaQueryMap, ThemeProps } from '../types/props';
1
+ import { AbstractPropTransformer } from './config';
2
+ import { CSSObject } from '../types/shared';
3
+ import { MediaQueryCache, MediaQueryMap, ThemeProps } from '../types/props';
3
4
  import { Breakpoints } from '../types/theme';
4
5
  export declare const createMediaQueries: (breakpoints?: Breakpoints | undefined) => MediaQueryCache | null;
5
6
  export declare const isMediaArray: (val: unknown) => val is (string | number)[];
@@ -0,0 +1 @@
1
+ export declare const getStylePropNames: (props: Record<string, any>, filteredKeys: string[]) => Pick<Record<string, any>, string>;
@@ -1,4 +1,4 @@
1
- import { BaseProperty } from '../types/config';
1
+ import { BaseProperty } from '../legacy/config';
2
2
  /**
3
3
  * Orders all properties by the most dependent props
4
4
  * @param config
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  /**
3
2
  * Emotion will not attempt to forward all system props - so this pre filters all possible exceptions to search agains
4
3
  * props like `color` and `width`.
@@ -0,0 +1,3 @@
1
+ import { Theme } from '@emotion/react';
2
+ import { Prop } from '../types/config';
3
+ export declare const lookupScaleValue: (val: string | number, scale: Prop['scale'], theme: Theme | undefined) => any;
@@ -1,4 +1,4 @@
1
- import { AbstractPropTransformer, Parser } from '../types/config';
1
+ import { Parser, Prop } from '../types/config';
2
2
  export declare const defaultBreakpoints: {
3
3
  xs: number;
4
4
  sm: number;
@@ -6,4 +6,4 @@ export declare const defaultBreakpoints: {
6
6
  lg: number;
7
7
  xl: number;
8
8
  };
9
- export declare function createParser<Config extends Record<string, AbstractPropTransformer>>(config: Config): Parser<Config>;
9
+ export declare function createParser<Config extends Record<string, Prop>>(config: Config): Parser<Config>;
@@ -0,0 +1,3 @@
1
+ import { Prop } from '../types/config';
2
+ import { AbstractProps, CSSObject } from '..';
3
+ export declare const createPropertyStyle: <Config extends Prop, Value extends unknown>(value: Value, props: AbstractProps, config: Config) => CSSObject;
@@ -0,0 +1,14 @@
1
+ import { Prop } from '../types/config';
2
+ import { MediaQueryCache, MediaQueryMap, ThemeProps } from '../types/props';
3
+ import { Breakpoints } from '../types/theme';
4
+ import { CSSObject } from '../types/shared';
5
+ export declare const createMediaQueries: (breakpoints?: Breakpoints | undefined) => MediaQueryCache | null;
6
+ export declare const isMediaArray: (val: unknown) => val is (string | number)[];
7
+ export declare const isMediaMap: (val: object) => val is MediaQueryMap<string | number>;
8
+ interface ResponsiveParser<Bp extends MediaQueryMap<string | number> | (string | number)[]> {
9
+ <C extends Prop>(value: Bp, props: ThemeProps, config: C, breakpoints: Bp): CSSObject;
10
+ }
11
+ export declare const objectParser: ResponsiveParser<MediaQueryMap<string | number>>;
12
+ export declare const arrayParser: ResponsiveParser<(string | number)[]>;
13
+ export declare const orderBreakpoints: (styles: CSSObject, breakpoints: string[]) => CSSObject;
14
+ export {};
@@ -0,0 +1 @@
1
+ export declare const borderShorthand: (val: string | number) => string;
@@ -1,2 +1,4 @@
1
1
  export * from './size';
2
2
  export * from './grid';
3
+ export * from './border';
4
+ export * from './utils';
@@ -0,0 +1 @@
1
+ export declare const numberToPx: (val: string | number) => string;
@@ -1,81 +1,44 @@
1
1
  import { Theme } from '@emotion/react';
2
- import { InteropTheme } from './theme';
2
+ import { CSSObject } from './shared';
3
3
  import { DefaultCSSPropertyValue, PropertyTypes } from './properties';
4
- import { AbstractProps, CSSObject, CSSPropMap, CSSProps, ResponsiveProp, ThemeProps } from './props';
5
- import { AllUnionKeys, Key, KeyFromUnion } from './utils';
6
- export declare type MapScale = Record<string | number, string | number>;
7
- export declare type ArrayScale = readonly (string | number | CSSObject)[] & {
8
- length: 0;
9
- };
4
+ import { CSSProps, CSSPropMap, AbstractProps, ResponsiveProp, ThemeProps } from './props';
5
+ import { Arg } from '..';
6
+ import { ArrayScale, MapScale } from './scales';
7
+ import { CompatTheme } from '../compatTheme';
10
8
  export interface BaseProperty {
11
9
  property: keyof PropertyTypes;
12
10
  properties?: readonly (keyof PropertyTypes)[];
13
11
  }
14
12
  export interface Prop extends BaseProperty {
15
- scale?: keyof Theme | keyof InteropTheme | MapScale | ArrayScale;
13
+ scale?: keyof Theme | keyof CompatTheme | MapScale | ArrayScale;
14
+ variable?: string;
16
15
  transform?: (val: string | number, prop?: string, props?: AbstractProps) => string | number | CSSObject;
17
16
  }
18
- export interface AbstractPropTransformer extends Prop {
19
- prop: string;
20
- styleFn: (value: unknown, prop: string, props: AbstractProps) => CSSObject;
21
- }
22
17
  export interface AbstractParser {
23
18
  (props: AbstractProps, orderProps?: boolean): CSSObject;
24
19
  propNames: string[];
25
- config: Record<string, AbstractPropTransformer>;
20
+ config: Record<string, Prop>;
26
21
  }
27
- export declare type PropertyValues<Property extends keyof PropertyTypes, All extends boolean = false> = Exclude<PropertyTypes<All extends true ? DefaultCSSPropertyValue : never>[Property], All extends true ? never : object | any[]>;
28
- export declare type ScaleValue<Config extends Prop> = Config['scale'] extends keyof Theme ? keyof Theme[Config['scale']] | PropertyValues<Config['property']> : Config['scale'] extends MapScale ? keyof Config['scale'] | PropertyValues<Config['property']> : Config['scale'] extends ArrayScale ? Config['scale'][number] | PropertyValues<Config['property']> : PropertyValues<Config['property'], true>;
22
+ declare type IsEmpty<T> = [] extends T ? true : false | {} extends T ? true : false;
23
+ export declare type PropertyValues<Property extends Prop, IncludeGlobals = false> = Exclude<PropertyTypes<IncludeGlobals extends true ? DefaultCSSPropertyValue : never>[Property['property']], IncludeGlobals extends true ? never : object | any[]>;
24
+ declare type CompatValue<Key extends keyof CompatTheme> = CompatTheme[Key] extends MapScale ? keyof CompatTheme[Key] : CompatTheme[Key] extends ArrayScale ? CompatTheme[Key][number] : never;
25
+ export declare type ScaleValue<Config extends Prop> = Config['scale'] extends keyof Theme ? keyof Theme[Config['scale']] | PropertyValues<Config, IsEmpty<Theme[Config['scale']]>> : Config['scale'] extends MapScale ? keyof Config['scale'] | PropertyValues<Config, IsEmpty<Config['scale']>> : Config['scale'] extends ArrayScale ? Config['scale'][number] | PropertyValues<Config, IsEmpty<Config['scale']>> : Config['scale'] extends keyof CompatTheme ? CompatValue<Config['scale']> | PropertyValues<Config, IsEmpty<CompatTheme[Config['scale']]>> : PropertyValues<Config, true>;
29
26
  export declare type Scale<Config extends Prop> = ResponsiveProp<ScaleValue<Config> | ((theme: Theme) => ScaleValue<Config>)>;
30
- export interface TransformFn<P extends string, Config extends Prop> {
31
- (value: Scale<Config> | Scale<Config>, prop: P, props: ThemeProps<{
32
- [K in P]?: Scale<Config>;
33
- }>): CSSObject;
34
- }
35
- export interface PropTransformer<P extends string, C extends Prop> extends AbstractPropTransformer, Prop {
36
- prop: P;
37
- styleFn: TransformFn<P, C>;
38
- }
39
- export declare type TransformerMap<Config extends Record<string, Prop>> = {
40
- [P in Key<keyof Config>]: PropTransformer<Key<P>, Config[P]>;
41
- };
42
- export interface Parser<Config extends Record<string, AbstractPropTransformer>> {
27
+ export declare type ParserProps<Config extends Record<string, Prop>> = ThemeProps<{
28
+ [P in keyof Config]?: Scale<Config[P]>;
29
+ }>;
30
+ export interface Parser<Config extends Record<string, Prop>> {
43
31
  (props: ParserProps<Config>, orderProps?: boolean): CSSObject;
44
- propNames: (keyof Config)[];
32
+ propNames: Extract<keyof Config, string>[];
45
33
  config: Config;
46
34
  }
47
- export declare type Compose<Args extends AbstractParser[]> = {
48
- [K in AllUnionKeys<Args[number]['config']>]: KeyFromUnion<Args[number]['config'], K>;
49
- };
50
- export interface Variant<P extends AbstractParser> {
51
- <Keys extends keyof Props, Base extends AbstractProps, Props extends Record<Keys, AbstractProps>, PropKey extends Readonly<string> = 'variant'>(options: {
52
- prop?: PropKey;
53
- defaultVariant?: keyof Props;
54
- base?: CSSProps<Base, SystemProps<P>>;
55
- variants: CSSPropMap<Props, SystemProps<P>>;
56
- }): (props: VariantProps<PropKey, Keys | false> & ThemeProps) => CSSObject;
57
- }
58
- export interface States<P extends AbstractParser> {
59
- <Props extends Record<string, AbstractProps>>(states: CSSPropMap<Props, SystemProps<P>>): (props: Partial<Record<keyof Props, boolean>> & ThemeProps) => CSSObject;
60
- }
61
- export interface CSS<P extends AbstractParser> {
62
- <Props extends AbstractProps>(config: CSSProps<Props, SystemProps<P>>): (props: ThemeProps) => CSSObject;
63
- }
64
- export declare type ParserProps<Config extends Record<string, AbstractPropTransformer>> = ThemeProps<{
65
- [P in keyof Config]?: Parameters<Config[P]['styleFn']>[2][Config[P]['prop']];
66
- }>;
67
- export declare type SystemProps<P extends AbstractParser> = {
68
- [K in keyof Omit<Parameters<P>[0], 'theme'>]: Omit<Parameters<P>[0], 'theme'>[K];
69
- };
70
- export declare type VariantProps<T extends string, V> = {
71
- [Key in T]?: V;
35
+ export declare type SystemProps<P extends AbstractParser, SafeProps = Omit<Arg<P>, 'theme'>> = {
36
+ [K in keyof SafeProps]: SafeProps[K];
72
37
  };
73
- export declare type Arg<T extends (...args: any) => any> = Parameters<T>[0];
74
- export interface PropConfig {
75
- props: {
76
- [i: string]: Prop;
77
- };
78
- groups: {
79
- [i: string]: (string | symbol | number)[];
80
- };
38
+ export interface VariantConfig {
39
+ prop?: any;
40
+ defaultVariant?: any;
41
+ base?: CSSProps<AbstractProps, SystemProps<AbstractParser>>;
42
+ variants: CSSPropMap<AbstractProps, SystemProps<AbstractParser>>;
81
43
  }
44
+ export {};
@@ -1,12 +1,13 @@
1
1
  import { Globals, StandardProperties, VendorProperties } from 'csstype';
2
- import { CSSObject } from '..';
2
+ import { CSSObject, NarrowPrimitive } from './shared';
3
3
  declare type ColorProperties = 'color' | `${string}Color`;
4
4
  declare type ColorGlobals = {
5
- [K in Extract<keyof StandardProperties, ColorProperties>]?: Globals | 'currentColor' | 'transparent' | (string & {});
5
+ [K in Extract<keyof StandardProperties, ColorProperties>]?: Globals | 'currentColor' | 'transparent' | NarrowPrimitive<string>;
6
6
  };
7
7
  declare type SizeProperties = 'left' | 'right' | 'top' | 'bottom' | 'inset' | 'width' | 'height' | `${string}${'Width' | 'Height'}`;
8
+ declare type SizeValues = `${number}${'px' | 'rem' | 'vh' | 'vw' | 'vmax' | 'vmin' | '%'}` | `calc(${any})`;
8
9
  declare type SizeGlobals = {
9
- [K in Extract<keyof StandardProperties, SizeProperties>]?: StandardProperties[K] | (number & {});
10
+ [K in Extract<keyof StandardProperties, SizeProperties>]?: StandardProperties[K] | SizeValues | NarrowPrimitive<number>;
10
11
  };
11
12
  /** This is a placeholder type for CSS properties that may not have any specific global values (outlineOffset).
12
13
  * (string & {}) will allow strings but not generalize the union type to just a string if other string literals exist in the union.
@@ -1,5 +1,5 @@
1
1
  import { Theme } from '@emotion/react';
2
- import { AbstractParser, Scale } from './config';
2
+ import { AbstractParser, Scale } from '../legacy/config';
3
3
  import { CSSPropertyTypes } from './properties';
4
4
  export declare type AbstractProps = ThemeProps<Record<string, unknown>>;
5
5
  interface MediaQueryByKey<T = string> {
@@ -33,15 +33,11 @@ export interface MediaQueryMap<T> {
33
33
  xl?: T;
34
34
  }
35
35
  export declare type ResponsiveProp<T> = T | MediaQueryMap<T> | MediaQueryArray<T>;
36
- export interface CSSObject {
37
- [key: string]: string | number | CSSObject | undefined;
38
- }
39
36
  export declare type CSSPropMap<Props, System> = {
40
37
  [K in keyof Props]?: CSSProps<Props[K], System>;
41
38
  };
42
39
  export declare type CSSProps<Props, System> = {
43
40
  [K in keyof Props]?: K extends keyof System ? System[K] : K extends keyof CSSPropertyTypes ? CSSPropertyTypes[K] : Omit<CSSPropertyTypes, keyof System> & Omit<System, 'theme'>;
44
41
  };
45
- export declare type StyleProps<T extends (args: AbstractProps) => CSSObject> = Parameters<T>[0];
46
42
  export declare type ScaleValue<P extends AbstractParser, Prop extends keyof P['config']> = Scale<P['config'][Prop]>;
47
43
  export {};
@@ -0,0 +1,2 @@
1
+ export declare type MapScale = Record<string | number, string | number>;
2
+ export declare type ArrayScale = readonly (string | number)[];
@@ -0,0 +1,4 @@
1
+ export interface CSSObject {
2
+ [key: string]: string | number | CSSObject | undefined;
3
+ }
4
+ export declare type NarrowPrimitive<T> = T & {};
@@ -11,22 +11,6 @@ export interface BaseTheme {
11
11
  export interface AbstractTheme extends BaseTheme {
12
12
  readonly [key: string]: any;
13
13
  }
14
- export interface InteropTheme extends BaseTheme {
15
- colors: {};
16
- radii: {};
17
- borders: {};
18
- fontSize: {};
19
- letterSpacing: {};
20
- fontFamily: {};
21
- fontWeight: {};
22
- spacing: {};
23
- lineHeight: {};
24
- modes: {
25
- dark: {};
26
- light: {};
27
- };
28
- mode: 'dark' | 'light';
29
- }
30
14
  declare module '@emotion/react' {
31
15
  interface Theme extends BaseTheme {
32
16
  }
@@ -1,3 +1,4 @@
1
+ export declare type Arg<T extends (...args: any) => any> = Parameters<T>[0];
1
2
  export declare type AllUnionKeys<T> = T extends any ? keyof T : never;
2
3
  export declare type KeyFromUnion<T, K> = T extends any ? K extends keyof T ? T[K] : never : never;
3
4
  export declare type Key<T> = T extends string ? T : never;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@animus-ui/core",
3
- "description": "Constraint based CSS in JS for building scalable design systems",
4
- "version": "0.1.1-beta.3",
3
+ "description": "Constraint based CSS in JS Foundations",
4
+ "version": "0.1.1-beta.7",
5
5
  "keywords": [
6
6
  "emotion",
7
7
  "css",
@@ -34,5 +34,5 @@
34
34
  "dependencies": {
35
35
  "csstype": "^3.0.7"
36
36
  },
37
- "gitHead": "76793243982d4b91436115077c74ac8b4444b471"
37
+ "gitHead": "7901c833a7b9ae1f33d4786166cbf48bf0e659ab"
38
38
  }
@@ -1,81 +0,0 @@
1
- /// <reference types="react" />
2
- import { Parser, Prop, SystemProps, TransformerMap } from './types/config';
3
- import { AbstractProps, CSSPropMap, CSSProps, CSSObject, ThemeProps } from './types/props';
4
- import { Arg, PropConfig } from './types/config';
5
- export declare class AnimusWithAll<C extends PropConfig, P extends Parser<TransformerMap<C['props']>>, Base extends CSSProps<AbstractProps, SystemProps<P>>, Variants extends Record<string, {
6
- prop?: any;
7
- defaultVariant?: any;
8
- base?: CSSProps<AbstractProps, SystemProps<P>>;
9
- variants: CSSPropMap<AbstractProps, SystemProps<P>>;
10
- }>, States extends CSSPropMap<AbstractProps, SystemProps<P>>, G extends (keyof C['groups'])[] | never[], CustomProps extends PropConfig['props']> {
11
- props: C;
12
- parser: P;
13
- groups: G;
14
- base: Base;
15
- statesConfig: States;
16
- variants: Variants;
17
- custom: CustomProps;
18
- constructor(props: C, parser: P, base: Base, variants: Variants, states: States, groups: G, custom: CustomProps);
19
- asComponent<T extends keyof JSX.IntrinsicElements>(component: T): import("@emotion/styled").StyledComponent<{
20
- theme?: import("@emotion/react").Theme | undefined;
21
- as?: import("react").ElementType<any> | undefined;
22
- } & { [K_4 in keyof ThemeProps<{ [K in keyof Arg<P> as K extends C["groups"][G[number]][number] ? K : never]?: Arg<P>[K] | undefined; } & { [K_1 in keyof Variants]?: keyof Variants[K_1]["variants"] | undefined; } & { [K_2 in keyof States]?: boolean | undefined; } & { [K_3 in keyof import("./types/config").ParserProps<TransformerMap<CustomProps>>]: import("./types/config").ParserProps<TransformerMap<CustomProps>>[K_3]; }>]: ThemeProps<{ [K in keyof Arg<P> as K extends C["groups"][G[number]][number] ? K : never]?: Arg<P>[K] | undefined; } & { [K_1 in keyof Variants]?: keyof Variants[K_1]["variants"] | undefined; } & { [K_2 in keyof States]?: boolean | undefined; } & { [K_3 in keyof import("./types/config").ParserProps<TransformerMap<CustomProps>>]: import("./types/config").ParserProps<TransformerMap<CustomProps>>[K_3]; }>[K_4]; }, JSX.IntrinsicElements[T], {}>;
23
- build(): (props: { [K in keyof ThemeProps<{ [K_1 in keyof Arg<P> as K_1 extends C["groups"][G[number]][number] ? K_1 : never]?: Arg<P>[K_1] | undefined; } & { [K_2 in keyof Variants]?: keyof Variants[K_2]["variants"] | undefined; } & { [K_3 in keyof States]?: boolean | undefined; } & { [K_4 in keyof import("./types/config").ParserProps<TransformerMap<CustomProps>>]: import("./types/config").ParserProps<TransformerMap<CustomProps>>[K_4]; }>]: ThemeProps<{ [K_1 in keyof Arg<P> as K_1 extends C["groups"][G[number]][number] ? K_1 : never]?: Arg<P>[K_1] | undefined; } & { [K_2 in keyof Variants]?: keyof Variants[K_2]["variants"] | undefined; } & { [K_3 in keyof States]?: boolean | undefined; } & { [K_4 in keyof import("./types/config").ParserProps<TransformerMap<CustomProps>>]: import("./types/config").ParserProps<TransformerMap<CustomProps>>[K_4]; }>[K]; }) => CSSObject;
24
- }
25
- declare class AnimusWithSystem<C extends PropConfig, P extends Parser<TransformerMap<C['props']>>, Base extends CSSProps<AbstractProps, SystemProps<P>>, Variants extends Record<string, {
26
- prop?: any;
27
- defaultVariant?: any;
28
- base?: CSSProps<AbstractProps, SystemProps<P>>;
29
- variants: CSSPropMap<AbstractProps, SystemProps<P>>;
30
- }>, States extends CSSPropMap<AbstractProps, SystemProps<P>>, G extends (keyof C['groups'])[] | never[]> extends AnimusWithAll<C, P, Base, Variants, States, G, {}> {
31
- constructor(props: C, parser: P, base: Base, variants: Variants, states: States, groups: G);
32
- customProps<CustomProps extends Record<string, Prop>>(config: CustomProps): AnimusWithAll<C, P, Base, Variants, States, G, CustomProps>;
33
- }
34
- declare class AnimusWithStates<C extends PropConfig, P extends Parser<TransformerMap<C['props']>>, Base extends CSSProps<AbstractProps, SystemProps<P>>, Variants extends Record<string, {
35
- prop?: any;
36
- defaultVariant?: any;
37
- base?: CSSProps<AbstractProps, SystemProps<P>>;
38
- variants: CSSPropMap<AbstractProps, SystemProps<P>>;
39
- }>, States extends CSSPropMap<AbstractProps, SystemProps<P>>> extends AnimusWithSystem<C, P, Base, Variants, States, []> {
40
- constructor(props: C, parser: P, base: Base, variants: Variants, states: States);
41
- systemProps<PickedGroups extends keyof C['groups']>(config: Record<PickedGroups, true>): AnimusWithSystem<C, P, Base, Variants, States, PickedGroups[]>;
42
- }
43
- declare class AnimusWithVariants<C extends PropConfig, P extends Parser<TransformerMap<C['props']>>, Base extends CSSProps<AbstractProps, SystemProps<P>>, Variants extends Record<string, {
44
- prop?: any;
45
- defaultVariant?: any;
46
- base?: CSSProps<AbstractProps, SystemProps<P>>;
47
- variants: CSSPropMap<AbstractProps, SystemProps<P>>;
48
- }>> extends AnimusWithStates<C, P, Base, Variants, {}> {
49
- constructor(props: C, parser: P, base: Base, variants: Variants);
50
- states<Props extends AbstractProps>(config: CSSPropMap<Props, SystemProps<P>>): AnimusWithStates<C, P, Base, Variants, CSSPropMap<Props, SystemProps<P>>>;
51
- variant<Keys extends keyof Props, Base extends AbstractProps, Props extends Record<Keys, AbstractProps>, PropKey extends Readonly<string> = 'variant'>(options: {
52
- prop?: PropKey;
53
- defaultVariant?: keyof Props;
54
- base?: CSSProps<Base, SystemProps<P>>;
55
- variants: CSSPropMap<Props, SystemProps<P>>;
56
- }): AnimusWithVariants<C, P, Base, Variants & Record<PropKey, {
57
- prop?: PropKey | undefined;
58
- defaultVariant?: keyof Props | undefined;
59
- base?: CSSProps<Base, SystemProps<P>> | undefined;
60
- variants: CSSPropMap<Props, SystemProps<P>>;
61
- }>>;
62
- }
63
- declare class AnimusWithBase<C extends PropConfig, P extends Parser<TransformerMap<C['props']>>, Base extends CSSProps<AbstractProps, SystemProps<P>>> extends AnimusWithVariants<C, P, Base, {}> {
64
- constructor(props: C, parser: P, base: Base);
65
- variant<Keys extends keyof Props, Base extends AbstractProps, Props extends Record<Keys, AbstractProps>, PropKey extends Readonly<string> = 'variant'>(options: {
66
- prop?: PropKey;
67
- defaultVariant?: keyof Props;
68
- base?: CSSProps<Base, SystemProps<P>>;
69
- variants: CSSPropMap<Props, SystemProps<P>>;
70
- }): AnimusWithVariants<C, P, Base, Record<PropKey, {
71
- prop?: PropKey | undefined;
72
- defaultVariant?: keyof Props | undefined;
73
- base?: CSSProps<Base, SystemProps<P>> | undefined;
74
- variants: CSSPropMap<Props, SystemProps<P>>;
75
- }>>;
76
- }
77
- export declare class Animus<C extends PropConfig, P extends Parser<TransformerMap<C['props']>>> extends AnimusWithBase<C, P, {}> {
78
- constructor(config: C);
79
- styles<Props extends AbstractProps>(config: CSSProps<Props, SystemProps<P>>): AnimusWithBase<C, P, CSSProps<Props, SystemProps<P>>>;
80
- }
81
- export {};
@@ -1,11 +0,0 @@
1
- import { PropConfig } from './types/config';
2
- import { Animus } from './animusBuilder';
3
- export declare class AnimusConfig<C extends PropConfig['props'] = {}, G extends Record<string, (keyof C)[]> = {}> {
4
- #private;
5
- constructor(config?: C, groups?: G);
6
- addGroup<Name extends string, Conf extends PropConfig['props'], PropNames extends keyof Conf>(name: Name, config: Conf): AnimusConfig<C & Conf, G & Record<Name, PropNames[]>>;
7
- build(): Animus<{
8
- props: { [K in keyof C]: C[K]; };
9
- groups: { [K_1 in keyof G]: G[K_1]; };
10
- }, import("./types/config").Parser<import("./types/config").TransformerMap<{ [K in keyof C]: C[K]; }>>>;
11
- }