@animus-ui/core 0.1.1-beta.4 → 0.1.1-beta.5
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/CHANGELOG.md +8 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/types/config.d.ts +1 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.1.1-beta.5](https://github.com/codecaaron/animus/compare/@animus-ui/core@0.1.1-beta.4...@animus-ui/core@0.1.1-beta.5) (2022-01-09)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @animus-ui/core
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [0.1.1-beta.4](https://github.com/codecaaron/animus/compare/@animus-ui/core@0.1.1-beta.3...@animus-ui/core@0.1.1-beta.4) (2022-01-09)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @animus-ui/core
|
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("lodash");function e(r){return r&&"object"==typeof r&&"default"in r?r:{default:r}}var t=e(require("@emotion/styled"));const o=()=>[],s=["border","borderTop","borderBottom","borderLeft","borderRight","borderWidth","borderStyle","borderColor","background","flex","margin","padding","transition","gap","grid","gridArea","gridColumn","gridRow","gridTemplate","overflow","transition"],p=-1,i=1,a=1,n=(r,e)=>r<e?p:e<r?i:a,d=["_","xs","sm","md","lg","xl"],c=r=>`@media screen and (min-width: ${r}px)`,l={xs:480,sm:768,md:1024,lg:1200,xl:1440},g=(e,t,o,s,p)=>{const i=r.get(o,t);switch(typeof i){case"string":case"number":case"function":return Object.assign(e,s.styleFn(i,t,o));case"object":if(!p.mediaQueries)return;if(a=i,Array.isArray(a))return r.merge(e,((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})(i,o,s,p.mediaQueries.array));if(i&&(e=>r.intersection(Object.keys(e),d).length>0)(i))return r.merge(e,((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})(i,o,s,p.mediaQueries.map))}var a};function u(e){const t=(r=>Object.keys(r).sort(((e,t)=>{const{[e]:o,[t]:d}=r,{property:c,properties:l=[]}=o,{property:g,properties:u=[]}=d,y=s.includes(c),b=s.includes(g);if(y&&b){const r=l.length,e=u.length;if(c!==g)return n(s.indexOf(c),s.indexOf(g));if(c===g){if(0===r)return p;if(0===e)return i}return n(e,r)}return y?p:b?i:a})))(e),o={mediaQueries:null};return Object.assign(((s,p=!1)=>{const i={},{theme:a}=s;return o.mediaQueries||(o.mediaQueries=(e=>{if(void 0===e)return null;const{xs:t,sm:o,md:s,lg:p,xl:i}=e??{};return{map:r.mapValues(e,c),array:[t,o,s,p,i].map(c)}})(a?.breakpoints??l)),p?Object.keys(s).forEach((t=>{const p=e[t];p?g(i,t,s,p,o):"theme"!==t&&Object.assign(i,{[t]:r.get(s,t)})})):t.forEach((r=>{const t=e[r];g(i,r,s,t,o)})),null!==o.mediaQueries?((e,t)=>{const o=r.omit(e,t);return t.forEach((r=>{e[r]&&(o[r]=e[r])})),o})(i,o.mediaQueries.array):i}),{propNames:t,config:e})}const y=(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}},b=(r,e)=>{const t={},o={};return Object.entries(r).forEach((([r,s])=>{(e.includes(r)?o:t)[r]=s})),[t,o]},m=(e,t,o,s)=>{const{base:p}=t,{parser:i,getMediaSelectors:a,getActiveOverrides:n}=s,{theme:d}=o,c=Object.values(r.pick(t,n(o))),l=a(o),[g,u]=b(i({...p,theme:d},!0),l);for(const r in g)e[r]=g[r];c.forEach((t=>{((e={},t,o,s,p,i)=>{const[a,n]=b(s({...e,theme:p},!0),i);for(const r in a)t[r]=a[r];i.forEach((e=>{const t=n[e];if(!t||r.isEmpty(t))return;o[e]||(o[e]={});const s=o[e];for(const r in t)s[r]=t[r]}))})(t,e,u,i,d,l)})),l.forEach((t=>{const o=u[t];r.isEmpty(o)||(e[t]=o)}))},h=(e,t={},o={},s={},p={})=>{const i=((e={},t={},o={},s)=>{const p={};return Object.entries(e).forEach((([e,t])=>{!s.includes(e)&&r.isObject(t)?r.set(p,[e,"base"],t):r.set(p,["primary","base",e],t)})),Object.entries(t).forEach((([e,{variants:t}])=>{Object.entries(t).forEach((([t,o])=>{const i=`${e}-${t}`;Object.entries(o).forEach((([e,t])=>{!s.includes(e)&&r.isObject(t)?r.set(p,[e,i],t):r.set(p,["primary",i,e],t)}))}))})),Object.entries(o).forEach((([e,t])=>{Object.entries(t).forEach((([t,o])=>{!s.includes(t)&&r.isObject(o)?r.set(p,[t,e],o):r.set(p,["primary",e,t],o)}))})),p})(t,o,s,e.propNames),a={parser:e,getMediaSelectors:({theme:r})=>{const e=r?.breakpoints??l;return["xs","sm","md","lg","xl"].map((r=>e[r]))},getActiveOverrides:y(o,s)};return r=>{const{vars:t}=r,o={...t};return Object.entries(i).forEach((([e,t={}])=>{"primary"===e?m(o,t,r,a):(o[e]={},m(o[e],t,r,a))})),m(o,{base:e(r)},r,a),o}};function f(e,t){const{transform:o=r.identity,property:s,properties:p=[s],scale:i}=t,a=(e=>r.isString(e)?(t,o)=>r.get(o,["theme",e,t]):r.isArray(e)?r=>r:r.isObject(e)?t=>r.get(e,t):()=>{})(i),n=void 0===i||r.isArray(i);return{...t,prop:e,styleFn:(e,t,s)=>{const i={};if(r.isUndefined(e))return i;let d,c,l=!1;switch(typeof e){case"number":case"string":c=a(e,s),l=void 0!==c||n,d=c??e;break;case"function":s.theme&&(d=e(s.theme));break;default:return i}return p.forEach((e=>{let t=d;switch(l&&!r.isUndefined(t)&&(t=o(t,e,s)),typeof t){case"number":case"string":return i[e]=t;case"object":return Object.assign(i,t)}})),i}}}function R(r){const e={};for(const t in r)"string"==typeof t&&(e[t]=f(t,r[t]));return u(e)}class x{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=h(R({...this.parser.config,...this.custom}),this.base,this.variants,this.statesConfig,{});return t.default(r)(e)}build(){return h(R({...this.parser.config,...this.custom}),this.base,this.variants,this.statesConfig,{})}}class w extends x{constructor(r,e,t,o,s,p){super(r,e,t,o,s,p,{})}customProps(r){return new x(this.props,this.parser,this.base,this.variants,this.statesConfig,this.groups,r)}}class C extends w{constructor(r,e,t,o,s){super(r,e,t,o,s,[])}systemProps(r){return new w(this.props,this.parser,this.base,this.variants,this.statesConfig,Object.keys(r))}}class S extends C{constructor(r,e,t,o){super(r,e,t,o,{})}states(r){return new C(this.props,this.parser,this.base,this.variants,r)}variant(e){const t=e.prop||"variant";return new S(this.props,this.parser,this.base,r.merge(this.variants,{[t]:e}))}}class v extends S{constructor(r,e,t){super(r,e,t,{})}variant(e){const t=e.prop||"variant";return new S(this.props,this.parser,this.base,r.merge(this.variants,{[t]:e}))}}class j extends v{constructor(r){super(r,R(r.props),{})}styles(r){return new v(this.props,this.parser,r)}}class T{#r={};#e={};constructor(r,e){this.#r=r||{},this.#e=e||{}}addGroup(r,e){const t={[r]:Object.keys(e)};return new T({...this.#r,...e},{...this.#e,...t})}build(){return new j({props:this.#r,groups:this.#e})}}const O=()=>new T,A=r=>0===r?r:r<=1&&r>=-1?100*r+"%":`${r}px`,k=/(-?\d*\.?\d+)(%|\w*)/,B=e=>{if(r.isNumber(e))return A(e);if(e.includes("calc"))return e;const[t,o,s]=k.exec(e)||[];if(void 0===t)return e;const p=parseFloat(o);return s?`${p}${s}`:A(p)},W={max:"max-content",min:"min-content"},E=new RegExp(/^[0-9]*$/),L=e=>{var t;return`minmax(0, ${t=e,E.test(t)?`${e}fr`:r.get(W,e,e)})`},G=(r,e)=>{const t=L(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+G(...t)),p&&(t=[p,1])):t[1]+=1}return o},I=e=>r.isNumber(e)?G("1",e):$(e),F={justifySelf:{property:"justifySelf"},alignSelf:{property:"alignSelf"},gridArea:{property:"gridArea"},area:{property:"gridArea"}},z={justifyContent:{property:"justifyContent"},justifyItems:{property:"justifyItems"},alignItems:{property:"alignItems"},alignContent:{property:"alignContent"},...F},H={flexBasis:{property:"flexBasis"},flexShrink:{property:"flexShrink"},flexGrow:{property:"flexGrow"},order:{property:"order"}},Q={flexDirection:{property:"flexDirection"},flexWrap:{property:"flexWrap"},flex:{property:"flex"},...z,...H},X={gridColumn:{property:"gridColumn"},gridRow:{property:"gridRow"},gridColumnStart:{property:"gridColumnStart"},gridRowStart:{property:"gridRowStart"},gridColumnEnd:{property:"gridColumnEnd"},gridRowEnd:{property:"gridRowEnd"}},Y={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:I,scale:[]},rows:{property:"gridTemplateRows",transform:I,scale:[]},autoRows:{property:"gridAutoRows",transform:L},autoCols:{property:"gridAutoColumns",transform:L},alignAll:{property:"justifyContent",properties:["justifyContent","alignItems"]},...z,...X},P={position:{property:"position"},inset:{property:"inset",properties:["top","right","bottom","left"],transform:B},top:{property:"top",transform:B},right:{property:"right",transform:B},bottom:{property:"bottom",transform:B},left:{property:"left",transform:B},zIndex:{property:"zIndex"},opacity:{property:"opacity"}},D={display:{property:"display"},overflow:{property:"overflow"},overflowX:{property:"overflowX"},overflowY:{property:"overflowY"},size:{property:"width",properties:["width","height"],transform:B},width:{property:"width",transform:B},minWidth:{property:"minWidth",transform:B},maxWidth:{property:"maxWidth",transform:B},height:{property:"height",transform:B},minHeight:{property:"minHeight",transform:B},maxHeight:{property:"maxHeight",transform:B},verticalAlign:{property:"verticalAlign"},...F,...X,...H},N={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"}},_=O().addGroup("space",N).addGroup("background",{background:{property:"background"},backgroundImage:{property:"backgroundImage"},backgroundSize:{property:"backgroundSize"},backgroundRepeat:{property:"backgroundRepeat"},backgroundPosition:{property:"backgroundPosition"}}).addGroup("layout",D).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",P).addGroup("flex",Q).addGroup("grid",Y).addGroup("mode",{mode:{property:"none",scale:"mode"}}).addGroup("vars",{vars:{property:"variables"}}),M=_.build();exports.AnimusConfig=T,exports.animus=M,exports.coreConfig=_,exports.createAnimus=O,exports.createScale=o,exports.gridItem=L,exports.gridItemRatio=I,exports.parseGridRatio=$,exports.percentageOrAbsolute=A,exports.repeatGridItem=G,exports.size=B;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("lodash");function e(r){return r&&"object"==typeof r&&"default"in r?r:{default:r}}var t=e(require("@emotion/styled"));const o=()=>[],s=["border","borderTop","borderBottom","borderLeft","borderRight","borderWidth","borderStyle","borderColor","background","flex","margin","padding","transition","gap","grid","gridArea","gridColumn","gridRow","gridTemplate","overflow","transition"],p=-1,i=1,a=1,n=(r,e)=>r<e?p:e<r?i:a,d=["_","xs","sm","md","lg","xl"],c=r=>`@media screen and (min-width: ${r}px)`,l={xs:480,sm:768,md:1024,lg:1200,xl:1440},g=(e,t,o,s,p)=>{const i=r.get(o,t);switch(typeof i){case"string":case"number":case"function":return Object.assign(e,s.styleFn(i,t,o));case"object":if(!p.mediaQueries)return;if(a=i,Array.isArray(a))return r.merge(e,((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})(i,o,s,p.mediaQueries.array));if(i&&(e=>r.intersection(Object.keys(e),d).length>0)(i))return r.merge(e,((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})(i,o,s,p.mediaQueries.map))}var a};function u(e){const t=(r=>Object.keys(r).sort(((e,t)=>{const{[e]:o,[t]:d}=r,{property:c,properties:l=[]}=o,{property:g,properties:u=[]}=d,y=s.includes(c),b=s.includes(g);if(y&&b){const r=l.length,e=u.length;if(c!==g)return n(s.indexOf(c),s.indexOf(g));if(c===g){if(0===r)return p;if(0===e)return i}return n(e,r)}return y?p:b?i:a})))(e),o={mediaQueries:null};return Object.assign(((s,p=!1)=>{const i={},{theme:a}=s;return o.mediaQueries||(o.mediaQueries=(e=>{if(void 0===e)return null;const{xs:t,sm:o,md:s,lg:p,xl:i}=e??{};return{map:r.mapValues(e,c),array:[t,o,s,p,i].map(c)}})(a?.breakpoints??l)),p?Object.keys(s).forEach((t=>{const p=e[t];p?g(i,t,s,p,o):"theme"!==t&&Object.assign(i,{[t]:r.get(s,t)})})):t.forEach((r=>{const t=e[r];g(i,r,s,t,o)})),null!==o.mediaQueries?((e,t)=>{const o=r.omit(e,t);return t.forEach((r=>{e[r]&&(o[r]=e[r])})),o})(i,o.mediaQueries.array):i}),{propNames:t,config:e})}const y=(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}},b=(r,e)=>{const t={},o={};return Object.entries(r).forEach((([r,s])=>{(e.includes(r)?o:t)[r]=s})),[t,o]},m=(e,t,o,s)=>{const{base:p}=t,{parser:i,getMediaSelectors:a,getActiveOverrides:n}=s,{theme:d}=o,c=Object.values(r.pick(t,n(o))),l=a(o),[g,u]=b(i({...p,theme:d},!0),l);for(const r in g)e[r]=g[r];c.forEach((t=>{((e={},t,o,s,p,i)=>{const[a,n]=b(s({...e,theme:p},!0),i);for(const r in a)t[r]=a[r];i.forEach((e=>{const t=n[e];if(!t||r.isEmpty(t))return;o[e]||(o[e]={});const s=o[e];for(const r in t)s[r]=t[r]}))})(t,e,u,i,d,l)})),l.forEach((t=>{const o=u[t];r.isEmpty(o)||(e[t]=o)}))},h=(e,t={},o={},s={},p={})=>{const i=((e={},t={},o={},s)=>{const p={};return Object.entries(e).forEach((([e,t])=>{!s.includes(e)&&r.isObject(t)?r.set(p,[e,"base"],t):r.set(p,["primary","base",e],t)})),Object.entries(t).forEach((([e,{variants:t}])=>{Object.entries(t).forEach((([t,o])=>{const i=`${e}-${t}`;Object.entries(o).forEach((([e,t])=>{!s.includes(e)&&r.isObject(t)?r.set(p,[e,i],t):r.set(p,["primary",i,e],t)}))}))})),Object.entries(o).forEach((([e,t])=>{Object.entries(t).forEach((([t,o])=>{!s.includes(t)&&r.isObject(o)?r.set(p,[t,e],o):r.set(p,["primary",e,t],o)}))})),p})(t,o,s,e.propNames),a={parser:e,getMediaSelectors:({theme:r})=>{const e=r?.breakpoints??l;return["xs","sm","md","lg","xl"].map((r=>e[r]))},getActiveOverrides:y(o,s)};return r=>{const{vars:t}=r,o={...t};return Object.entries(i).forEach((([e,t={}])=>{"primary"===e?m(o,t,r,a):(o[e]={},m(o[e],t,r,a))})),m(o,{base:e(r)},r,a),o}};function f(e,t){const{transform:o=r.identity,property:s,properties:p=[s],scale:i,variable:a}=t,n=(e=>r.isString(e)?(t,o)=>r.get(o,["theme",e,t]):r.isArray(e)?r=>r:r.isObject(e)?t=>r.get(e,t):()=>{})(i),d=void 0===i||r.isArray(i);return{...t,prop:e,styleFn:(e,t,i)=>{const c={};if(r.isUndefined(e))return c;let l,g,u=!1;switch(typeof e){case"number":case"string":g=n(e,i),u=void 0!==g||d,l=g??e;break;case"function":i.theme&&(l=e(i.theme));break;default:return c}if(p.forEach((e=>{let t=l;switch(u&&!r.isUndefined(t)&&(t=o(t,e,i)),typeof t){case"number":case"string":return c[e]=t;case"object":return Object.assign(c,t)}})),a){let e=l;u&&!r.isUndefined(e)&&(e=o(e,s,i)),e&&"object"!=typeof e&&(c[a]=e)}return c}}}function R(r){const e={};for(const t in r)"string"==typeof t&&(e[t]=f(t,r[t]));return u(e)}class x{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=h(R({...this.parser.config,...this.custom}),this.base,this.variants,this.statesConfig,{});return t.default(r)(e)}build(){return h(R({...this.parser.config,...this.custom}),this.base,this.variants,this.statesConfig,{})}}class w extends x{constructor(r,e,t,o,s,p){super(r,e,t,o,s,p,{})}customProps(r){return new x(this.props,this.parser,this.base,this.variants,this.statesConfig,this.groups,r)}}class C extends w{constructor(r,e,t,o,s){super(r,e,t,o,s,[])}systemProps(r){return new w(this.props,this.parser,this.base,this.variants,this.statesConfig,Object.keys(r))}}class S extends C{constructor(r,e,t,o){super(r,e,t,o,{})}states(r){return new C(this.props,this.parser,this.base,this.variants,r)}variant(e){const t=e.prop||"variant";return new S(this.props,this.parser,this.base,r.merge(this.variants,{[t]:e}))}}class v extends S{constructor(r,e,t){super(r,e,t,{})}variant(e){const t=e.prop||"variant";return new S(this.props,this.parser,this.base,r.merge(this.variants,{[t]:e}))}}class j extends v{constructor(r){super(r,R(r.props),{})}styles(r){return new v(this.props,this.parser,r)}}class T{#r={};#e={};constructor(r,e){this.#r=r||{},this.#e=e||{}}addGroup(r,e){const t={[r]:Object.keys(e)};return new T({...this.#r,...e},{...this.#e,...t})}build(){return new j({props:this.#r,groups:this.#e})}}const O=()=>new T,A=r=>0===r?r:r<=1&&r>=-1?100*r+"%":`${r}px`,k=/(-?\d*\.?\d+)(%|\w*)/,B=e=>{if(r.isNumber(e))return A(e);if(e.includes("calc"))return e;const[t,o,s]=k.exec(e)||[];if(void 0===t)return e;const p=parseFloat(o);return s?`${p}${s}`:A(p)},W={max:"max-content",min:"min-content"},E=new RegExp(/^[0-9]*$/),L=e=>{var t;return`minmax(0, ${t=e,E.test(t)?`${e}fr`:r.get(W,e,e)})`},G=(r,e)=>{const t=L(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+G(...t)),p&&(t=[p,1])):t[1]+=1}return o},I=e=>r.isNumber(e)?G("1",e):$(e),F={justifySelf:{property:"justifySelf"},alignSelf:{property:"alignSelf"},gridArea:{property:"gridArea"},area:{property:"gridArea"}},z={justifyContent:{property:"justifyContent"},justifyItems:{property:"justifyItems"},alignItems:{property:"alignItems"},alignContent:{property:"alignContent"},...F},H={flexBasis:{property:"flexBasis"},flexShrink:{property:"flexShrink"},flexGrow:{property:"flexGrow"},order:{property:"order"}},Q={flexDirection:{property:"flexDirection"},flexWrap:{property:"flexWrap"},flex:{property:"flex"},...z,...H},X={gridColumn:{property:"gridColumn"},gridRow:{property:"gridRow"},gridColumnStart:{property:"gridColumnStart"},gridRowStart:{property:"gridRowStart"},gridColumnEnd:{property:"gridColumnEnd"},gridRowEnd:{property:"gridRowEnd"}},Y={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:I,scale:[]},rows:{property:"gridTemplateRows",transform:I,scale:[]},autoRows:{property:"gridAutoRows",transform:L},autoCols:{property:"gridAutoColumns",transform:L},alignAll:{property:"justifyContent",properties:["justifyContent","alignItems"]},...z,...X},P={position:{property:"position"},inset:{property:"inset",properties:["top","right","bottom","left"],transform:B},top:{property:"top",transform:B},right:{property:"right",transform:B},bottom:{property:"bottom",transform:B},left:{property:"left",transform:B},zIndex:{property:"zIndex"},opacity:{property:"opacity"}},D={display:{property:"display"},overflow:{property:"overflow"},overflowX:{property:"overflowX"},overflowY:{property:"overflowY"},size:{property:"width",properties:["width","height"],transform:B},width:{property:"width",transform:B},minWidth:{property:"minWidth",transform:B},maxWidth:{property:"maxWidth",transform:B},height:{property:"height",transform:B},minHeight:{property:"minHeight",transform:B},maxHeight:{property:"maxHeight",transform:B},verticalAlign:{property:"verticalAlign"},...F,...X,...H},N={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"}},_=O().addGroup("space",N).addGroup("background",{background:{property:"background"},backgroundImage:{property:"backgroundImage"},backgroundSize:{property:"backgroundSize"},backgroundRepeat:{property:"backgroundRepeat"},backgroundPosition:{property:"backgroundPosition"}}).addGroup("layout",D).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",P).addGroup("flex",Q).addGroup("grid",Y).addGroup("mode",{mode:{property:"none",scale:"mode"}}).addGroup("vars",{vars:{property:"variables"}}),M=_.build();exports.AnimusConfig=T,exports.animus=M,exports.coreConfig=_,exports.createAnimus=O,exports.createScale=o,exports.gridItem=L,exports.gridItemRatio=I,exports.parseGridRatio=$,exports.percentageOrAbsolute=A,exports.repeatGridItem=G,exports.size=B;
|
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{mapValues as r,omit as e,intersection as t,get as o,merge as p,pick as s,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,s,i,a)=>{const n=o(s,e);switch(typeof n){case"string":case"number":case"function":return Object.assign(r,i.styleFn(n,e,s));case"object":if(!a.mediaQueries)return;if(d=n,Array.isArray(d))return p(r,((r,e,t,o)=>{const p={},{styleFn:s,prop:i}=t,[a,...n]=r;return a&&Object.assign(p,s(a,i,e)),n.forEach(((r,t)=>{const a=o[t];a&&void 0!==r&&Object.assign(p,{[a]:s(r,i,e)})})),p})(n,s,i,a.mediaQueries.array));if(n&&(r=>t(Object.keys(r),x).length>0)(n))return p(r,((r,e,t,o)=>{const p={},{styleFn:s,prop:i}=t,{_:a,...n}=r;return a&&Object.assign(p,s(a,i,e)),Object.keys(o).forEach((r=>{const t=n[r];void 0!==t&&Object.assign(p,{[o[r]]:s(t,i,e)})})),p})(n,s,i,a.mediaQueries.map))}var d};function T(t){const p=(r=>Object.keys(r).sort(((e,t)=>{const{[e]:o,[t]:p}=r,{property:s,properties:i=[]}=o,{property:a,properties:n=[]}=p,d=m.includes(s),c=m.includes(a);if(d&&c){const r=i.length,e=n.length;if(s!==a)return w(m.indexOf(s),m.indexOf(a));if(s===a){if(0===r)return h;if(0===e)return f}return w(e,r)}return d?h:c?f:R})))(t),s={mediaQueries:null};return Object.assign(((i,a=!1)=>{const n={},{theme:d}=i;return s.mediaQueries||(s.mediaQueries=(e=>{if(void 0===e)return null;const{xs:t,sm:o,md:p,lg:s,xl:i}=e??{};return{map:r(e,C),array:[t,o,p,s,i].map(C)}})(d?.breakpoints??S)),a?Object.keys(i).forEach((r=>{const e=t[r];e?v(n,r,i,e,s):"theme"!==r&&Object.assign(n,{[r]:o(i,r)})})):p.forEach((r=>{const e=t[r];v(n,r,i,e,s)})),null!==s.mediaQueries?((r,t)=>{const o=e(r,t);return t.forEach((e=>{r[e]&&(o[e]=r[e])})),o})(n,s.mediaQueries.array):n}),{propNames:p,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,p])=>{(e.includes(r)?o:t)[r]=p})),[t,o]},B=(r,e,t,o)=>{const{base:p}=e,{parser:a,getMediaSelectors:n,getActiveOverrides:d}=o,{theme:c}=t,l=Object.values(s(e,d(t))),y=n(t),[g,u]=O(a({...p,theme:c},!0),y);for(const e in g)r[e]=g[e];l.forEach((e=>{((r={},e,t,o,p,s)=>{const[a,n]=O(o({...r,theme:p},!0),s);for(const r in a)e[r]=a[r];s.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={},p={})=>{const s=((r={},e={},t={},o)=>{const p={};return Object.entries(r).forEach((([r,e])=>{!o.includes(r)&&a(e)?n(p,[r,"base"],e):n(p,["primary","base",r],e)})),Object.entries(e).forEach((([r,{variants:e}])=>{Object.entries(e).forEach((([e,t])=>{const s=`${r}-${e}`;Object.entries(t).forEach((([r,e])=>{!o.includes(r)&&a(e)?n(p,[r,s],e):n(p,["primary",s,r],e)}))}))})),Object.entries(t).forEach((([r,e])=>{Object.entries(e).forEach((([e,t])=>{!o.includes(e)&&a(t)?n(p,[e,r],t):n(p,["primary",r,e],t)}))})),p})(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(s).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:p,properties:s=[p],scale:i,variable:n}=e,g=(r=>d(r)?(e,t)=>o(t,["theme",r,e]):c(r)?r=>r:a(r)?e=>o(r,e):()=>{})(i),u=void 0===i||c(i);return{...e,prop:r,styleFn:(r,e,o)=>{const i={};if(l(r))return i;let a,d,c=!1;switch(typeof r){case"number":case"string":d=g(r,o),c=void 0!==d||u,a=d??r;break;case"function":o.theme&&(a=r(o.theme));break;default:return i}if(s.forEach((r=>{let e=a;switch(c&&!l(e)&&(e=t(e,r,o)),typeof e){case"number":case"string":return i[r]=e;case"object":return Object.assign(i,e)}})),n){let r=a;c&&!l(r)&&(r=t(r,p,o)),r&&"object"!=typeof r&&(i[n]=r)}return i}}}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,p,s,i){this.props=r,this.parser=e,this.groups=s,this.base=t,this.statesConfig=p,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,p,s){super(r,e,t,o,p,s,{})}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,p){super(r,e,t,o,p,[])}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,p(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,p(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 p=parseFloat(t);return o?`${p}${o}`:z(p)},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 p=o.length>0?" ":"",s=e[r];t?.[0]!==s?(t[0].length&&(o+=p+N(...t)),s&&(t=[s,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"}},pr=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"}}),sr=pr.build();export{H as AnimusConfig,sr as animus,pr 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};
|
package/dist/types/config.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export interface BaseProperty {
|
|
|
13
13
|
}
|
|
14
14
|
export interface Prop extends BaseProperty {
|
|
15
15
|
scale?: keyof Theme | keyof InteropTheme | MapScale | ArrayScale;
|
|
16
|
+
variable?: string;
|
|
16
17
|
transform?: (val: string | number, prop?: string, props?: AbstractProps) => string | number | CSSObject;
|
|
17
18
|
}
|
|
18
19
|
export interface AbstractPropTransformer extends Prop {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@animus-ui/core",
|
|
3
3
|
"description": "Constraint based CSS in JS Foundations",
|
|
4
|
-
"version": "0.1.1-beta.
|
|
4
|
+
"version": "0.1.1-beta.5",
|
|
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": "
|
|
37
|
+
"gitHead": "0294a85c5d77dcb4b7c745d79226ef2e395603c2"
|
|
38
38
|
}
|