UNPKG

tailwind-semantic-setup

Version:

🧬 Smart multi-theme tool for better semantic Design Systems

3 lines (2 loc) • 3.6 kB
import r from"tailwindcss/plugin";import t from"color";function e(){return e=Object.assign?Object.assign.bind():function(r){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n])}return r},e.apply(this,arguments)}const n={primary:"#e0a82e","primary-dark":"#ba881c","primary-content":"#18182f",secondary:"#f9d72f","secondary-dark":"#e4bf07","secondary-content":"#18182f",accent:"#18182f","accent-dark":"#131325","accent-content":"#babaee",neutral:"#181830","neutral-dark":"#131325","neutral-content":"#babaee",root:"#ffffff","root-dark":"#e6e6e6","root-darkest":"#cfcfcf","root-content":"#333333",info:"#3abff8","info-content":"#002b3d",success:"#36d399","success-content":"#003320",warning:"#fbbd23","warning-content":"#382800",error:"#f87272","error-content":"#470000"};function o(r){const t={transparent:"transparent",current:"currentColor"};return Array.from(new Set([...Object.keys(n),...r.map(r=>Object.keys(r.colors)).flat(2)])).forEach(r=>{t[r]=function(r,t=""){return({opacityValue:e})=>{const n=`var(${r}${t?`, var(${t})`:""})`;return void 0===e?`hsl(${n})`:`hsl(${n} / ${e})`}}(`--${r}`)}),t}const a=r=>{const[t,e,n]=r;return`${t} ${e}% ${n}%`};function c(r){const e=t(r).hsl().round().array();return a(e)}function s(r,e=.3){const n=t(r).darken(e).hsl().round().array();return a(n)}function i(o={}){const i=e({},{typography:!0,forms:!0,"line-clamp":!1,"aspect-ratio":!0},o),u=[r(function({addBase:r,matchUtilities:o,addVariant:i,theme:u,config:l}){const d=l("semanticSetup.themes");r(function(r){return r.reduce((r,{name:o,colors:i,preferredColorScheme:u})=>{(r=>{if(r&&!Array.isArray(r))throw new Error(`Expected array, got ${r}`)})(u),(r=>{if(!Object.values(r).every(r=>"string"==typeof r))throw new Error(`color values must be strings, got ${r}`)})(i);const l=function(r){const o=e({},n,r),i={};return Object.entries(o).forEach(([e,o])=>{const u=`--${e}`,l=r[e];if(l){const r=c(l);return void(i[u]=r)}if(["root-dark","root-darkest"].includes(e)){const t="root",o=r[t];return void(i[u]=s(null!=o?o:n[t],"root-darkest"===e?.16:.08))}const d=Boolean(n[e]),p=e.includes("-dark"),f=e.includes("-content");if(d&&(p||f)){const o=e.replace("-dark","").replace("-content",""),c=r[o],l=null!=c?c:n[o];return void(i[u]=p?s(l):function(r,e=.8){const n=t(r),o=n.isDark()?t("white"):t("black"),c=n.mix(o,e).saturate(15).hsl().round().array();return a(c)}(l))}const h=c(o);i[u]=h}),i}(i);return r[`[data-theme="${o}"]`]=e({"color-scheme":null==u?void 0:u.join(" ")},l),r},{})}(d)),r({":root [data-theme]":{backgroundColor:"hsl(var(--root) / var(--tw-bg-opacity, 1))",color:"hsl(var(--root-content) / var(--tw-text-opacity, 1))"}}),o({wh:r=>({width:r,height:r})},{values:u("spacing")}),o({circle:r=>({width:r,height:r,borderRadius:"100%"})},{values:u("spacing")}),d.forEach(({name:r})=>{i(`theme-${r}`,`[data-theme="${r}"] &`)}),i("hocus",["&:hover","&:focus"]),i("optional","&:optional"),i("group-optional",":merge(.group):optional &"),i("peer-optional",":merge(.peer):optional ~ &")})];return i.typography&&u.push(require("@tailwindcss/typography")),i.forms&&u.push(require("@tailwindcss/forms")),i["line-clamp"]&&u.push(require("@tailwindcss/line-clamp")),i["aspect-ratio"]&&u.push(require("@tailwindcss/aspect-ratio")),u}function u(r={}){const{plugins:t=[],theme:n={},semanticSetup:a={}}=r;return e({},r,{plugins:[...t,...i(a.plugins)],theme:e({},n,{colors:o(a.themes),extend:null!=n&&n.extend?e({},n.extend,{colors:void 0}):void 0})})}export{u as withSemanticSetup}; //# sourceMappingURL=tailwind-semantic-setup.esm.js.map