UNPKG

@sqymagma/theme

Version:

Magma theme

2 lines (1 loc) 6.79 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e=(t=require("lodash.merge"))&&"object"==typeof t&&"default"in t?t.default:t;const n=t=>((t,e)=>{const n=parseFloat(t.match(/\d*\.?\d*/)[0]),r=t.split(n.toString())[1];return`${e(n)}${r}`})(t,t=>t/2),r=(t,e=1)=>{const n="#"===t[0]?t.substring(1,7):t;return`rgba(${parseInt(n.substring(0,2),16)}, ${parseInt(n.substring(2,4),16)}, ${parseInt(n.substring(4,6),16)}, ${e})`},o=(t,e,n)=>n?e===n?"":`${t}: ${n};`:"",i=(t,e,n)=>e?`${t}: ${e};`:n?`${t}: ${n};`:"",a=t=>{try{const e=t.color.colors;return Object.keys(e).reduce((t,n)=>{const o=t=>1===t.opacity||void 0===t.opacity||null===t.opacity,i=t=>{try{return"#"===t.value[0]}catch(t){return!1}},a=t=>{try{return"hsl"===t.type.toLowerCase()}catch(t){return!1}},s=t=>{try{return"rgb"===t.type.toLowerCase()}catch(t){return!1}},c=t=>a(t)&&o(t),l=t=>a(t)&&!o(t),p=t=>i(t)&&o(t),u=t=>i(t)&&!o(t),f=t=>s(t)&&o(t),m=t=>s(t)&&!o(t);var y;return l(e[n])&&(t[n]=`hsla(${e[n].value.map((t,e)=>""+(0===e?t:"string"==typeof t?-1===t.indexOf("%")?t+"%":t:t+"%")).join(", ")}, ${e[n].opacity})`),c(e[n])&&(t[n]=`hsl(${e[n].value.map((t,e)=>""+(0===e?t:"string"==typeof t?-1===t.indexOf("%")?t+"%":t:t+"%")).join(", ")})`),p(e[n])&&(t[n]=""+e[n].value),u(e[n])&&(t[n]=""+r(e[n].value,e[n].opacity)),f(e[n])&&(t[n]=`rgb(${e[n].value.join(", ")})`),m(e[n])&&(t[n]=`rgba(${e[n].value.join(", ")}, ${e[n].opacity})`),y=e[n],c(y)||l(y)||p(y)||u(y)||f(y)||m(y)||(t[n]=e[n].value),t},{})}catch(t){return null}},s=t=>{try{const e=t.gradient.gradients;return Object.keys(e).reduce((t,n)=>(t[n]=`linear-gradient(${e[n].direction}, ${e[n].stops.map(t=>`${r(t.color,t.opacity)} ${t.position}`).join(",")})`,t),{})}catch(t){return null}},c=t=>{try{const e=t.shadow.shadows;return Object.keys(e).reduce((t,n)=>(t[n]=`${e[n].x}px ${e[n].y}px ${e[n].blur}px ${r(e[n].color,e[n].opacity)}`,t),{})}catch(t){return null}},l=t=>{try{const e=t.mediaquery.mediaqueries;let n={};return e.forEach(t=>{if("default"!==t.label){const e=t.minWidth?`and (min-width: ${t.minWidth})`:"",r=t.maxWidth?`and (max-width: ${t.maxWidth})`:"";n[t.label]=`@media only screen ${e} ${r}`}}),n}catch(t){return null}},p=t=>{try{return t.fontFamily.fontFamilies}catch(t){return null}},u=t=>"string"==typeof t?t.match(/\d*\.?\d+?/)[0]:"number"==typeof t?t:void 0,f=(t,e)=>`\n &::before, &::after {\n content: "";\n display: block;\n }\n &::before {\n margin-bottom: ${e}em;\n }\n &::after {\n margin-top: ${t}em;\n }\n `,m=t=>{try{const e=l(t),n=p(t),r=t.textStyle.defaultStyles,a=t.textStyle.textStyles;let s={};return a.forEach(t=>{let a=u(t.fontSize),c=void 0!==t.croptop?t.croptop:0,l=void 0!==t.cropbottom?t.cropbottom:0,p=Math.max(c+a/2*0,0)/a*-1,m=Math.max(l+a/2*0,0)/a*-1;s[t.name]=`\n\n ${i("font-family",n[t.fontFamily],n[r.fontFamily])}\n ${i("font-size",t.fontSize,r.fontSize)}\n ${i("font-weight",t.fontWeight,r.fontWeight)}\n ${i("letter-spacing",t.letterSpacing,r.letterSpacing)}\n ${i("line-height",t.lineHeight,r.lineHeight)}\n ${i("font-style",t.fontStyle,r.fontStyle)}\n ${i("text-transform",t.textTransform,r.textTransform)}\n ${c&&l?f(p,m):""}\n \n ${t.responsive?t.responsive.map((r,i)=>(a=u(r.fontSize),c=void 0!==r.croptop?r.croptop:0,l=void 0!==r.cropbottom?r.cropbottom:0,p=Math.max(c+a/2*0,0)/a*-1,m=Math.max(l+a/2*0,0)/a*-1,i<1?`\n ${e[r.breakpoint]} {\n ${o("font-family",n[t.fontFamily],n[r.fontFamily])}\n ${o("font-size",t.fontSize,r.fontSize)}\n ${o("font-weight",t.fontWeight,r.fontWeight)}\n ${o("line-height",t.lineHeight,r.lineHeight)}\n ${o("letter-spacing",t.letterSpacing,r.letterSpacing)}\n ${o("font-style",t.fontStyle,r.fontStyle)}\n ${o("text-transform",t.textTransform,r.textTransform)}\n ${c&&l?f(p,m):""}\n }\n `:(a=u(r.fontSize),c=void 0!==r.croptop?r.croptop:0,l=void 0!==r.cropbottom?r.cropbottom:0,p=Math.max(c+a/2*0,0)/a*-1,m=Math.max(l+a/2*0,0)/a*-1,`\n ${e[r.breakpoint]} {\n ${o("font-family",n[t.responsive[i-1].fontFamily],n[r.fontFamily])}\n ${o("font-size",t.responsive[i-1].fontSize,r.fontSize)}\n ${o("font-weight",t.responsive[i-1].fontWeight,r.fontWeight)}\n ${o("line-height",t.responsive[i-1].lineHeight,r.lineHeight)}\n ${o("letter-spacing",t.responsive[i-1].letterSpacing,r.letterSpacing)}\n ${o("font-style",t.responsive[i-1].fontStyle,r.fontStyle)}\n ${o("text-transform",t.responsive[i-1].textTransform,r.textTransform)}\n ${c&&l?f(p,m):""}\n }\n `))).join(""):""}\n `}),s}catch(t){return null}},y=t=>{try{return!0}catch(t){return null}},h=t=>{try{return[...new Set(t.textStyle.textStyles.map(t=>t.fontSize).filter(Boolean).reverse().map(t=>Number(t.split("px")[0])).sort((t,e)=>t-e))]}catch(t){return null}},g=t=>{if(t.spacing&&Object.keys(t.spacing).length)return Object.entries(t.spacing).reduce((t,[e,n])=>{return{...t,[e]:"string"==typeof n?(r=n,"-"+r):void 0};var r},{})},d=t=>{if(t.spacing&&Object.keys(t.spacing).length)return Object.entries(t.spacing).reduce((t,[e,r])=>({...t,[e]:"string"==typeof r?n(r):void 0}),{})},$=t=>{if(t.spacing&&Object.keys(t.spacing).length)return Object.entries(t.spacing).reduce((t,[e,r])=>{return{...t,[e]:"string"==typeof r?(o=n(r),"-"+o):void 0};var o},{})},x=t=>{const e=a(t),n=s(t),r=c(t),o=l(t),i=m(t),u=(y(),(t=>{try{return t.mediaquery.mediaqueries.map(t=>t.minWidth).filter(Boolean)}catch(t){return null}})(t)),f=p(t);try{t.mediaquery.mediaqueries.forEach(t=>{u[t.label]=t.minWidth})}catch(t){}return{...t,fontFamily:f,color:void 0,colors:e,gradient:n,shadows:r,mq:o,textStyle:i,breakpoints:u,fontSizes:h(t),negateSpacing:g(t),halfSpacing:d(t),negateHalfSpacing:$(t)}},b=(t,e)=>null==e?void 0:e,S=t=>JSON.parse(JSON.stringify(t,b));function v(...t){let e={};return t.forEach(t=>{e=function t(e,n=""){return Object.keys(e).reduce((r,o)=>{const i=n.length?n+".":"";return"object"==typeof e[o]?Object.assign(r,t(e[o],i+o)):r[i+o]=e[o],r},{})}({...S(e),...S(t)})}),function(t){var e={};for(var n in t){var r=n.split(".");r.reduce((function(e,o,i){return e[o]||(e[o]=isNaN(Number(r[i+1]))?r.length-1==i?t[n]:{}:[])}),e)}return e}(e)}exports._mixThemes=(t,...n)=>({...S(e(t,...n))}),exports.merge=(t,e,n)=>({[n]:{...t[n],...e[n]}}),exports.mixSubtheme=function(t,e,n){const r=Object.keys(e),o=v(Object.keys(t).reduce((e,n)=>(r.includes(n)&&(e[n]=t[n]),e),{}),e);return n?S(x(o)):o},exports.mixThemes=v,exports.parseColors=a,exports.parseCropTextStyles=y,exports.parseFontFamilies=p,exports.parseGradients=s,exports.parseMediaqueries=l,exports.parseShadows=c,exports.parseTextStyles=m,exports.parseTheme=x,exports.parseThemeSimple=t=>S(x(t));