oncss 1.1.5 → 1.1.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.
package/cjs/core.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";var j=Object.create;var k=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var M=(t,r)=>{for(var e in r)k(t,e,{get:r[e],enumerable:!0})},P=(t,r,e,y)=>{if(r&&typeof r=="object"||typeof r=="function")for(let l of V(r))!B.call(t,l)&&l!==e&&k(t,l,{get:()=>r[l],enumerable:!(y=N(r,l))||y.enumerable});return t};var z=(t,r,e)=>(e=t!=null?j(T(t)):{},P(r||!t||!t.__esModule?k(e,"default",{value:t,enumerable:!0}):e,t)),H=t=>P(k({},"__esModule",{value:!0}),t);var R={};M(R,{CSSFactory:()=>$,cssPrefix:()=>F,formatCSSProp:()=>A,formatCSSValue:()=>_,style:()=>u});module.exports=H(R);var E=z(require("youid"));const m=typeof window<"u"?window:global;m.Factory=m.Factory||new Map;const $=m.Factory,K=["fontWeight","font-weight","lineHeight","line-height","opacity","zIndex","z-index","flex","order","flexGrow","flex-grow","flexShrink","flex-shrink","flexBasis","flex-basis","columns","perspective","stroke-dashoffset"],A=t=>t.split(/(?=[A-Z])/).join("-").toLowerCase(),_=(t,r)=>typeof r=="number"&&!K.includes(t)?`${r}px`:r,w=["webkit","moz","ms","o"];let b;const C=new Map,F=(t,r)=>{if(r=_(t,r),t=A(t),typeof window>"u")return{prop:t,value:r};const e=b||(b=document.createElement("div").style);if(r=r?.toString(),e.setProperty(t,r),e.getPropertyValue(t)===r)return{prop:t,value:r};const y=C.get(t);if(y)return{prop:y._prop,value:`${y._vprefix}${r}`};let l=t,n=r,c="";const d=t.includes("-")?t.replace(/-([a-z])/g,(i,s)=>s.toUpperCase()):t;for(const i of w)if(e[`${i}${d}`]!==void 0){l=`-${i}-${t}`;break}if(e.setProperty(l,r),!e.getPropertyValue(l))for(const i of w){const s=`-${i}-${r}`;if(e.setProperty(l,s),e.getPropertyValue(l)===s){n=s,c=`-${i}-`;break}}return C.set(t,{_prop:l,_vprefix:c}),{prop:l,value:n}},u=(t,r,e,y=1)=>{let l,n=r;if(r){if(typeof r!="string")throw new Error(`Invalid class name: ${r}`)}else{l=JSON.stringify(t,(a,p)=>typeof p=="function"?p.toString():p);const s=$.get(l);if(s)return s.cache=!0,s;n=`${e?.classPrefix||""}x${(0,E.default)(l)}`}let c=[`${n}{`],d={},i={};for(let s in t){let a=t[s],p=s.charAt(0);if(p==="&"){let o=s.replace(/&/g,n);const f=u(a,o,e,y+1);e?.skipProps&&(i={...i,...f.skiped}),c.push(f.stack)}else if(p==="@")if(s.startsWith("@global")||s.startsWith("@keyframes")){let o="";for(let f in a){let g=u(a[f],f,e,y+1);o+=g.stack,e?.skipProps&&(i={...i,...g.skiped})}s.startsWith("@keyframes")?c.push(`${s}{${o}}`):c.push(o)}else{let o=u(a,n,e,y+1);const f=s+"{"+o.stack+"}";c.push(f),e?.skipProps&&(i={...i,...o.skiped})}else{if(e?.skipProps&&e.skipProps(s,a,y)){n in i||(i[n]=[]),i[n].push(s);continue}if(typeof a=="function"||Array.isArray(a))continue;if(typeof a=="object")for(let o in a){if(typeof a[o]=="object"||typeof a[o]=="function"||Array.isArray(a[o]))throw new Error(`Invalid css value: ${a[o]}`);let f=o;if(!!isNaN(parseInt(f)))if(e?.breakpoints&&!isNaN(parseInt(e.breakpoints[o])))f=e.breakpoints[o].toString();else throw new Error(`Invalid breakpoint prop: ${o}`);let I={[s]:a[o]},h=u(I,n,e,y),x=h.stack,S=`@media (min-width: ${f}px)`;d[S]=d[S]?d[S]+x:x,e?.skipProps&&(i={...i,...h.skiped})}else{if(e?.getProps){let f=e.getProps(s,a,t,y);if(f){let g=u(f,n,{...e,getProps:void 0});e?.skipProps&&(i={...i,...g.skiped}),c.push(g.stack);continue}}if(e?.aliases&&e.aliases[s]){let f=e.aliases[s](a);if(f){let g=u(f,n,{...e,aliases:void 0},y);g.stack=g.stack.replace(`${n}{`,"").replace("}",""),c[0]+=g.stack;continue}}e?.getValue&&(a=e.getValue(s,a,t,y));let o=F(s,a);c[0]+=`${o.prop}:${o.value};`}}}c[0]+="}",c[0]===`${n}{}`&&(c[0]=""),c=c.join("");for(let s in d)c+=`${s}{${d[s].replace(new RegExp(`}\\${n}\\{`,"g"),"")}}`;if(l){c=c.replace(new RegExp(n,"g"),`.${n}`);const s={cache:!1,cachekey:l,classname:n,css:c,cssraw:t,skiped:i,getStyleTag:()=>document?.querySelector(`[data-oncss="${n}"]`),deleteStyle:()=>{const p=document?.querySelector(`[data-oncss="${n}"]`);p&&p.remove()}};if(s.toString=()=>n,$.set(l,s),(e?.injectStyle||!0)&&typeof window<"u"&&!document.querySelector(`[data-oncss="${n}"]`)){const p=document.createElement("style");p.innerHTML=s.css,p.setAttribute("data-oncss",n),document.head.append(p)}return s}return{stack:c,skiped:i}};
2
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/core.ts"],
4
+ "sourcesContent": ["import { CSSOptionProps, CSSFactoryType, CSSProps } from './types';\nimport youid from 'youid';\nconst _global: any = typeof window !== 'undefined' ? window : global;\n_global.Factory = _global.Factory || new Map<string, CSSFactoryType>();\nexport const CSSFactory = _global.Factory as Map<string, CSSFactoryType>\n\n\nconst number_val_props = [\n \"fontWeight\",\n \"font-weight\",\n \"lineHeight\",\n \"line-height\",\n \"opacity\",\n \"zIndex\",\n \"z-index\",\n \"flex\",\n \"order\",\n \"flexGrow\",\n \"flex-grow\",\n \"flexShrink\",\n \"flex-shrink\",\n \"flexBasis\",\n \"flex-basis\",\n \"columns\",\n \"perspective\",\n \"stroke-dashoffset\"\n]\n\nexport const formatCSSProp = (prop: string) => prop.split(/(?=[A-Z])/).join(\"-\").toLowerCase();\nexport const formatCSSValue = (prop: string, val: any) => typeof val === 'number' && !number_val_props.includes(prop) ? `${val}px` : val\n\nconst PREFIXES = ['webkit', 'moz', 'ms', 'o'];\nlet _declaration: CSSStyleDeclaration;\nconst PREFIXCACHE = new Map();\n\nexport const cssPrefix = (prop: string, value: string): { prop: string, value: string } => {\n value = formatCSSValue(prop, value);\n prop = formatCSSProp(prop);\n\n if (typeof window === 'undefined') {\n return { prop, value };\n }\n\n const declaration = _declaration || (_declaration = document.createElement(\"div\").style);\n value = value?.toString();\n\n // Check if the property and value work as is\n if (declaration.setProperty(prop, value), declaration.getPropertyValue(prop) === value) {\n return { prop, value };\n }\n\n // Check cached property and value prefix\n const cached = PREFIXCACHE.get(prop);\n if (cached) {\n return { prop: cached._prop, value: `${cached._vprefix}${value}` };\n }\n\n let _prop = prop;\n let _value = value;\n let _vprefix = '';\n\n // Try property prefixes\n const camelCaseProp = prop.includes('-') ? prop.replace(/-([a-z])/g, (_, c) => c.toUpperCase()) : prop;\n for (const prefix of PREFIXES) {\n if (declaration[`${prefix}${camelCaseProp}` as any] !== undefined) {\n _prop = `-${prefix}-${prop}`;\n break;\n }\n }\n\n // Check if prefixed property works with the value\n declaration.setProperty(_prop, value);\n if (!declaration.getPropertyValue(_prop)) {\n for (const prefix of PREFIXES) {\n const prefixedValue = `-${prefix}-${value}`;\n if (declaration.setProperty(_prop, prefixedValue), declaration.getPropertyValue(_prop) === prefixedValue) {\n _value = prefixedValue;\n _vprefix = `-${prefix}-`;\n break;\n }\n }\n }\n\n PREFIXCACHE.set(prop, { _prop, _vprefix });\n return { prop: _prop, value: _value };\n};\n\nexport const style = <Aliases, BreakpointKeys extends string>(_css: CSSProps<Aliases, BreakpointKeys>, cls?: string, opt?: CSSOptionProps<Aliases, BreakpointKeys>, dept = 1) => {\n let cachekey\n let classname = cls\n if (!cls) {\n cachekey = JSON.stringify(_css, (_key, value) => typeof value === \"function\" ? value.toString() : value);\n const has = CSSFactory.get(cachekey)\n if (has) {\n has.cache = true\n return has\n }\n classname = `${opt?.classPrefix || \"\"}x${youid(cachekey)}`\n } else if (typeof cls !== 'string') {\n throw new Error(`Invalid class name: ${cls}`)\n }\n\n let stack: any = [`${classname}{`]\n let medias: any = {}\n let skiped: any = {}\n for (let prop in _css) {\n let val = (_css as any)[prop]\n let firstChar = prop.charAt(0)\n if (firstChar === '&') {\n let ncls = prop.replace(/&/g, classname as string)\n const r: any = style(val, ncls, opt, dept + 1)\n if (opt?.skipProps) {\n skiped = {\n ...skiped,\n ...r.skiped\n }\n }\n stack.push(r.stack)\n } else if (firstChar === '@') {\n if (prop.startsWith(\"@global\") || prop.startsWith(\"@keyframes\")) {\n let _css = ''\n for (let selector in val) {\n let r: any = style(val[selector], selector, opt, dept + 1)\n _css += r.stack\n if (opt?.skipProps) {\n skiped = {\n ...skiped,\n ...r.skiped\n }\n }\n }\n if (prop.startsWith(\"@keyframes\")) {\n stack.push(`${prop}{${_css}}`)\n } else {\n stack.push(_css)\n }\n } else {\n let r: any = style(val, classname, opt, dept + 1)\n const atcss = prop + \"{\" + r.stack + \"}\"\n stack.push(atcss)\n if (opt?.skipProps) {\n skiped = {\n ...skiped,\n ...r.skiped\n }\n }\n }\n } else {\n if (opt?.skipProps && opt.skipProps(prop, val, dept)) {\n if (!((classname as any) in skiped)) skiped[classname as string] = []\n skiped[classname as string].push(prop)\n continue\n }\n if (typeof val === 'function' || Array.isArray(val)) {\n continue\n }\n if (typeof val === 'object') {\n for (let media in val) {\n if (typeof val[media] === 'object' || typeof val[media] === 'function' || Array.isArray(val[media])) {\n throw new Error(`Invalid css value: ${val[media]}`);\n }\n let breakpoint = media\n let isNumber = !isNaN(parseInt(breakpoint))\n if (!isNumber) {\n if (opt?.breakpoints && !isNaN(parseInt((opt.breakpoints as any)[media]))) {\n breakpoint = opt.breakpoints[media as BreakpointKeys].toString()\n } else {\n throw new Error(`Invalid breakpoint prop: ${media}`);\n }\n }\n let _css = { [prop]: val[media] }\n let r: any = style(_css, classname, opt, dept)\n let _style = r.stack\n let mediakey = `@media (min-width: ${breakpoint}px)`\n medias[mediakey] = medias[mediakey] ? medias[mediakey] + _style : _style\n if (opt?.skipProps) {\n skiped = {\n ...skiped,\n ...r.skiped\n }\n }\n }\n } else {\n if (opt?.getProps) {\n let _props: any = opt.getProps(prop, val, _css, dept)\n if (_props) {\n let r: any = style(_props, classname, {\n ...opt,\n getProps: undefined\n })\n if (opt?.skipProps) {\n skiped = {\n ...skiped,\n ...r.skiped\n }\n }\n stack.push(r.stack)\n continue;\n }\n }\n if (opt?.aliases && (opt.aliases as any)[prop]) {\n let _props = (opt.aliases as any)[prop](val)\n if (_props) {\n let r: any = style(_props, classname, {\n ...opt,\n aliases: undefined\n }, dept)\n r.stack = r.stack.replace(`${classname}{`, '').replace(`}`, '')\n stack[0] += r.stack\n continue;\n }\n }\n if (opt?.getValue) {\n val = opt.getValue(prop, val, _css, dept)\n }\n let p = cssPrefix(prop, val)\n stack[0] += `${p.prop}:${p.value};`\n }\n }\n }\n stack[0] += \"}\"\n if (stack[0] === `${classname}{}`) {\n stack[0] = \"\"\n }\n stack = stack.join('')\n for (let media in medias) {\n stack += `${media}{${medias[media].replace(new RegExp(`}\\\\${classname}\\\\{`, 'g'), '')}}`\n }\n\n if (cachekey) {\n stack = stack.replace(new RegExp(classname as string, 'g'), `.${classname}`)\n const r = {\n cache: false,\n cachekey,\n classname: classname as string,\n css: stack,\n cssraw: _css,\n skiped,\n getStyleTag: () => document?.querySelector(`[data-oncss=\"${classname}\"]`) as HTMLStyleElement | null,\n deleteStyle: () => {\n const tag = document?.querySelector(`[data-oncss=\"${classname}\"]`)\n tag && tag.remove()\n },\n }\n r.toString = () => classname as string\n CSSFactory.set(cachekey, r)\n let inject = opt?.injectStyle || true\n if (inject && typeof window !== 'undefined') {\n if (!document.querySelector(`[data-oncss=\"${classname}\"]`)) {\n const tag = document.createElement(\"style\");\n tag.innerHTML = r.css\n tag.setAttribute(`data-oncss`, classname as string)\n document.head.append(tag)\n }\n }\n return r\n }\n return { stack, skiped }\n}"],
5
+ "mappings": "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",
6
+ "names": ["core_exports", "__export", "CSSFactory", "cssPrefix", "formatCSSProp", "formatCSSValue", "style", "__toCommonJS", "import_youid", "_global", "number_val_props", "prop", "val", "PREFIXES", "_declaration", "PREFIXCACHE", "value", "declaration", "cached", "_prop", "_value", "_vprefix", "camelCaseProp", "_", "c", "prefix", "prefixedValue", "_css", "cls", "opt", "dept", "cachekey", "classname", "_key", "has", "youid", "stack", "medias", "skiped", "firstChar", "ncls", "r", "selector", "atcss", "media", "breakpoint", "_style", "mediakey", "_props", "p", "tag"]
7
+ }
package/cjs/index.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";var a=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(e,o)=>{for(var r in o)a(e,r,{get:o[r],enumerable:!0})},S=(e,o,r,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of m(o))!l.call(e,t)&&t!==r&&a(e,t,{get:()=>o[t],enumerable:!(n=f(o,t))||n.enumerable});return e},i=(e,o,r)=>(S(e,o,"default"),r&&S(r,o,"default"));var x=e=>S(a({},"__esModule",{value:!0}),e);var p={};c(p,{CSSFactory:()=>s.CSSFactory,css:()=>C,default:()=>P,formatCSSProp:()=>s.formatCSSProp,formatCSSValue:()=>s.formatCSSValue});module.exports=x(p);var y=require("./core"),s=require("./core");i(p,require("./types"),module.exports);const C=(e,o)=>(0,y.style)(e,void 0,o);var P=C;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "sourcesContent": ["import { style } from \"./core\";\nimport { CSSProps, CSSOptionProps, CSSFactoryType } from \"./types\";\nexport { CSSFactory, formatCSSProp, formatCSSValue } from './core'\nexport * from './types'\n\nexport const css = <Aliases, BreakpointKeys extends string>(_css: CSSProps<Aliases, BreakpointKeys>, options?: CSSOptionProps<Aliases, BreakpointKeys>): CSSFactoryType => style<Aliases, BreakpointKeys>(_css, undefined, options) as any\nexport default css"],
5
+ "mappings": "2dAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qCAAAE,EAAA,YAAAC,EAAA,uFAAAC,EAAAJ,GAAA,IAAAK,EAAsB,kBAEtBA,EAA0D,kBAC1DC,EAAAN,EAAc,mBAHd,gBAKO,MAAME,EAAM,CAAyCK,EAAyCC,OAAsE,SAA+BD,EAAM,OAAWC,CAAO,EAClO,IAAOL,EAAQD",
6
+ "names": ["index_exports", "__export", "css", "index_default", "__toCommonJS", "import_core", "__reExport", "_css", "options"]
7
+ }
package/cjs/types.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";var r=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var l=(s,e,a,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of n(e))!p.call(s,t)&&t!==a&&r(s,t,{get:()=>e[t],enumerable:!(i=o(e,t))||i.enumerable});return s};var S=s=>l(r({},"__esModule",{value:!0}),s);var y={};module.exports=S(y);
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/types.ts"],
4
+ "sourcesContent": ["import * as CSS from 'csstype'\ntype CSSProperties = CSS.Properties<number | string>;\n\ntype CSSNestedSelectors<Aliases, BreakpointKeys extends string> = {\n [key in `& ${string}` | `&:${string}`]: CSSPropsWithoutGlobal<Aliases, BreakpointKeys>;\n};\n\ntype CSSNestedSelectorsWithoutChild<Aliases, BreakpointKeys extends string> = {\n \"&\": CSSPropsWithoutGlobal<Aliases, BreakpointKeys>;\n};\n\ntype AtRules = \"media\" | \"container\" | \"layer\" | \"supports\"\ntype MediaCSS<Aliases, BreakpointKeys extends string> = {\n [key: `@${AtRules} ${string}`]: CSSProps<Aliases, BreakpointKeys>;\n};\n\ntype KeyframesCSS<Aliases> = {\n [key: `@keyframes ${string}`]: {\n from?: CSSValueWithoutBreakpoint<Aliases>;\n to?: CSSValueWithoutBreakpoint<Aliases>;\n [key: `${string}%`]: CSSValueWithoutBreakpoint<Aliases>;\n };\n};\n\ntype GlobalCSS<Aliases, BreakpointKeys extends string> = {\n '@global'?: {\n [key: string]: CSSPropsWithoutGlobal<Aliases, BreakpointKeys>;\n };\n};\n\nexport type BreakpointTypes<BreakpointKeys extends string, ValueTypes> = {\n [key in number | BreakpointKeys]?: ValueTypes;\n};\n\nexport type CSSValueWithoutBreakpoint<Aliases> = {\n [Property in keyof (CSSProperties & Aliases)]?: (CSSProperties & Aliases)[Property]\n}\n\ntype CSSValue<Aliases, BreakpointKeys extends string> = {\n [Property in keyof (CSSProperties & Aliases)]?: (CSSProperties & Aliases)[Property] | BreakpointTypes<BreakpointKeys, (CSSProperties & Aliases)[Property]>\n}\n\nexport type CSSPropsWithoutGlobal<Aliases, BreakpointKeys extends string> = CSSValue<Aliases, BreakpointKeys> | KeyframesCSS<Aliases> | MediaCSS<Aliases, BreakpointKeys> | CSSNestedSelectors<Aliases, BreakpointKeys> | CSSNestedSelectorsWithoutChild<Aliases, BreakpointKeys>\nexport type CSSProps<Aliases, BreakpointKeys extends string> = GlobalCSS<Aliases, BreakpointKeys> | CSSPropsWithoutGlobal<Aliases, BreakpointKeys>\nexport type AliasFn<Aliases> = (value: any) => CSSValueWithoutBreakpoint<Aliases>\nexport type OptionAliases<Aliases> = {\n [key in keyof Aliases]: AliasFn<Aliases>\n}\n\nexport interface CSSOptionProps<Aliases, BreakpointKeys extends string> {\n classPrefix?: string;\n breakpoints?: { [key in BreakpointKeys]: number };\n aliases?: OptionAliases<Aliases>;\n injectStyle?: boolean;\n skipProps?: (prop: string, value: string | number, dept: number) => boolean | void;\n getValue?: (value: string | number, prop: string, css: CSSProps<Aliases, BreakpointKeys>, dept: number) => (string | number);\n getProps?: (prop: string, value: string | number, css: CSSProps<Aliases, BreakpointKeys>, dept: number) => CSSProps<Aliases, BreakpointKeys> | void;\n}\n\nexport type CSSFactoryType = {\n css: string;\n cachekey: string;\n classname: string;\n cssraw: CSSProps<any, any>;\n cache: boolean;\n skiped: string[];\n getStyleTag: () => HTMLStyleElement | null;\n deleteStyle: () => void;\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["types_exports", "__toCommonJS"]
7
+ }
package/esm/core.js ADDED
@@ -0,0 +1,2 @@
1
+ import C from"youid";const S=typeof window<"u"?window:global;S.Factory=S.Factory||new Map;const h=S.Factory,E=["fontWeight","font-weight","lineHeight","line-height","opacity","zIndex","z-index","flex","order","flexGrow","flex-grow","flexShrink","flex-shrink","flexBasis","flex-basis","columns","perspective","stroke-dashoffset"],A=s=>s.split(/(?=[A-Z])/).join("-").toLowerCase(),_=(s,i)=>typeof i=="number"&&!E.includes(s)?`${i}px`:i,x=["webkit","moz","ms","o"];let P;const w=new Map,F=(s,i)=>{if(i=_(s,i),s=A(s),typeof window>"u")return{prop:s,value:i};const t=P||(P=document.createElement("div").style);if(i=i?.toString(),t.setProperty(s,i),t.getPropertyValue(s)===i)return{prop:s,value:i};const p=w.get(s);if(p)return{prop:p._prop,value:`${p._vprefix}${i}`};let f=s,r=i,l="";const d=s.includes("-")?s.replace(/-([a-z])/g,(n,e)=>e.toUpperCase()):s;for(const n of x)if(t[`${n}${d}`]!==void 0){f=`-${n}-${s}`;break}if(t.setProperty(f,i),!t.getPropertyValue(f))for(const n of x){const e=`-${n}-${i}`;if(t.setProperty(f,e),t.getPropertyValue(f)===e){r=e,l=`-${n}-`;break}}return w.set(s,{_prop:f,_vprefix:l}),{prop:f,value:r}},u=(s,i,t,p=1)=>{let f,r=i;if(i){if(typeof i!="string")throw new Error(`Invalid class name: ${i}`)}else{f=JSON.stringify(s,(a,y)=>typeof y=="function"?y.toString():y);const e=h.get(f);if(e)return e.cache=!0,e;r=`${t?.classPrefix||""}x${C(f)}`}let l=[`${r}{`],d={},n={};for(let e in s){let a=s[e],y=e.charAt(0);if(y==="&"){let o=e.replace(/&/g,r);const c=u(a,o,t,p+1);t?.skipProps&&(n={...n,...c.skiped}),l.push(c.stack)}else if(y==="@")if(e.startsWith("@global")||e.startsWith("@keyframes")){let o="";for(let c in a){let g=u(a[c],c,t,p+1);o+=g.stack,t?.skipProps&&(n={...n,...g.skiped})}e.startsWith("@keyframes")?l.push(`${e}{${o}}`):l.push(o)}else{let o=u(a,r,t,p+1);const c=e+"{"+o.stack+"}";l.push(c),t?.skipProps&&(n={...n,...o.skiped})}else{if(t?.skipProps&&t.skipProps(e,a,p)){r in n||(n[r]=[]),n[r].push(e);continue}if(typeof a=="function"||Array.isArray(a))continue;if(typeof a=="object")for(let o in a){if(typeof a[o]=="object"||typeof a[o]=="function"||Array.isArray(a[o]))throw new Error(`Invalid css value: ${a[o]}`);let c=o;if(!!isNaN(parseInt(c)))if(t?.breakpoints&&!isNaN(parseInt(t.breakpoints[o])))c=t.breakpoints[o].toString();else throw new Error(`Invalid breakpoint prop: ${o}`);let b={[e]:a[o]},m=u(b,r,t,p),$=m.stack,k=`@media (min-width: ${c}px)`;d[k]=d[k]?d[k]+$:$,t?.skipProps&&(n={...n,...m.skiped})}else{if(t?.getProps){let c=t.getProps(e,a,s,p);if(c){let g=u(c,r,{...t,getProps:void 0});t?.skipProps&&(n={...n,...g.skiped}),l.push(g.stack);continue}}if(t?.aliases&&t.aliases[e]){let c=t.aliases[e](a);if(c){let g=u(c,r,{...t,aliases:void 0},p);g.stack=g.stack.replace(`${r}{`,"").replace("}",""),l[0]+=g.stack;continue}}t?.getValue&&(a=t.getValue(e,a,s,p));let o=F(e,a);l[0]+=`${o.prop}:${o.value};`}}}l[0]+="}",l[0]===`${r}{}`&&(l[0]=""),l=l.join("");for(let e in d)l+=`${e}{${d[e].replace(new RegExp(`}\\${r}\\{`,"g"),"")}}`;if(f){l=l.replace(new RegExp(r,"g"),`.${r}`);const e={cache:!1,cachekey:f,classname:r,css:l,cssraw:s,skiped:n,getStyleTag:()=>document?.querySelector(`[data-oncss="${r}"]`),deleteStyle:()=>{const y=document?.querySelector(`[data-oncss="${r}"]`);y&&y.remove()}};if(e.toString=()=>r,h.set(f,e),(t?.injectStyle||!0)&&typeof window<"u"&&!document.querySelector(`[data-oncss="${r}"]`)){const y=document.createElement("style");y.innerHTML=e.css,y.setAttribute("data-oncss",r),document.head.append(y)}return e}return{stack:l,skiped:n}};export{h as CSSFactory,F as cssPrefix,A as formatCSSProp,_ as formatCSSValue,u as style};
2
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/core.ts"],
4
+ "sourcesContent": ["import { CSSOptionProps, CSSFactoryType, CSSProps } from './types';\nimport youid from 'youid';\nconst _global: any = typeof window !== 'undefined' ? window : global;\n_global.Factory = _global.Factory || new Map<string, CSSFactoryType>();\nexport const CSSFactory = _global.Factory as Map<string, CSSFactoryType>\n\n\nconst number_val_props = [\n \"fontWeight\",\n \"font-weight\",\n \"lineHeight\",\n \"line-height\",\n \"opacity\",\n \"zIndex\",\n \"z-index\",\n \"flex\",\n \"order\",\n \"flexGrow\",\n \"flex-grow\",\n \"flexShrink\",\n \"flex-shrink\",\n \"flexBasis\",\n \"flex-basis\",\n \"columns\",\n \"perspective\",\n \"stroke-dashoffset\"\n]\n\nexport const formatCSSProp = (prop: string) => prop.split(/(?=[A-Z])/).join(\"-\").toLowerCase();\nexport const formatCSSValue = (prop: string, val: any) => typeof val === 'number' && !number_val_props.includes(prop) ? `${val}px` : val\n\nconst PREFIXES = ['webkit', 'moz', 'ms', 'o'];\nlet _declaration: CSSStyleDeclaration;\nconst PREFIXCACHE = new Map();\n\nexport const cssPrefix = (prop: string, value: string): { prop: string, value: string } => {\n value = formatCSSValue(prop, value);\n prop = formatCSSProp(prop);\n\n if (typeof window === 'undefined') {\n return { prop, value };\n }\n\n const declaration = _declaration || (_declaration = document.createElement(\"div\").style);\n value = value?.toString();\n\n // Check if the property and value work as is\n if (declaration.setProperty(prop, value), declaration.getPropertyValue(prop) === value) {\n return { prop, value };\n }\n\n // Check cached property and value prefix\n const cached = PREFIXCACHE.get(prop);\n if (cached) {\n return { prop: cached._prop, value: `${cached._vprefix}${value}` };\n }\n\n let _prop = prop;\n let _value = value;\n let _vprefix = '';\n\n // Try property prefixes\n const camelCaseProp = prop.includes('-') ? prop.replace(/-([a-z])/g, (_, c) => c.toUpperCase()) : prop;\n for (const prefix of PREFIXES) {\n if (declaration[`${prefix}${camelCaseProp}` as any] !== undefined) {\n _prop = `-${prefix}-${prop}`;\n break;\n }\n }\n\n // Check if prefixed property works with the value\n declaration.setProperty(_prop, value);\n if (!declaration.getPropertyValue(_prop)) {\n for (const prefix of PREFIXES) {\n const prefixedValue = `-${prefix}-${value}`;\n if (declaration.setProperty(_prop, prefixedValue), declaration.getPropertyValue(_prop) === prefixedValue) {\n _value = prefixedValue;\n _vprefix = `-${prefix}-`;\n break;\n }\n }\n }\n\n PREFIXCACHE.set(prop, { _prop, _vprefix });\n return { prop: _prop, value: _value };\n};\n\nexport const style = <Aliases, BreakpointKeys extends string>(_css: CSSProps<Aliases, BreakpointKeys>, cls?: string, opt?: CSSOptionProps<Aliases, BreakpointKeys>, dept = 1) => {\n let cachekey\n let classname = cls\n if (!cls) {\n cachekey = JSON.stringify(_css, (_key, value) => typeof value === \"function\" ? value.toString() : value);\n const has = CSSFactory.get(cachekey)\n if (has) {\n has.cache = true\n return has\n }\n classname = `${opt?.classPrefix || \"\"}x${youid(cachekey)}`\n } else if (typeof cls !== 'string') {\n throw new Error(`Invalid class name: ${cls}`)\n }\n\n let stack: any = [`${classname}{`]\n let medias: any = {}\n let skiped: any = {}\n for (let prop in _css) {\n let val = (_css as any)[prop]\n let firstChar = prop.charAt(0)\n if (firstChar === '&') {\n let ncls = prop.replace(/&/g, classname as string)\n const r: any = style(val, ncls, opt, dept + 1)\n if (opt?.skipProps) {\n skiped = {\n ...skiped,\n ...r.skiped\n }\n }\n stack.push(r.stack)\n } else if (firstChar === '@') {\n if (prop.startsWith(\"@global\") || prop.startsWith(\"@keyframes\")) {\n let _css = ''\n for (let selector in val) {\n let r: any = style(val[selector], selector, opt, dept + 1)\n _css += r.stack\n if (opt?.skipProps) {\n skiped = {\n ...skiped,\n ...r.skiped\n }\n }\n }\n if (prop.startsWith(\"@keyframes\")) {\n stack.push(`${prop}{${_css}}`)\n } else {\n stack.push(_css)\n }\n } else {\n let r: any = style(val, classname, opt, dept + 1)\n const atcss = prop + \"{\" + r.stack + \"}\"\n stack.push(atcss)\n if (opt?.skipProps) {\n skiped = {\n ...skiped,\n ...r.skiped\n }\n }\n }\n } else {\n if (opt?.skipProps && opt.skipProps(prop, val, dept)) {\n if (!((classname as any) in skiped)) skiped[classname as string] = []\n skiped[classname as string].push(prop)\n continue\n }\n if (typeof val === 'function' || Array.isArray(val)) {\n continue\n }\n if (typeof val === 'object') {\n for (let media in val) {\n if (typeof val[media] === 'object' || typeof val[media] === 'function' || Array.isArray(val[media])) {\n throw new Error(`Invalid css value: ${val[media]}`);\n }\n let breakpoint = media\n let isNumber = !isNaN(parseInt(breakpoint))\n if (!isNumber) {\n if (opt?.breakpoints && !isNaN(parseInt((opt.breakpoints as any)[media]))) {\n breakpoint = opt.breakpoints[media as BreakpointKeys].toString()\n } else {\n throw new Error(`Invalid breakpoint prop: ${media}`);\n }\n }\n let _css = { [prop]: val[media] }\n let r: any = style(_css, classname, opt, dept)\n let _style = r.stack\n let mediakey = `@media (min-width: ${breakpoint}px)`\n medias[mediakey] = medias[mediakey] ? medias[mediakey] + _style : _style\n if (opt?.skipProps) {\n skiped = {\n ...skiped,\n ...r.skiped\n }\n }\n }\n } else {\n if (opt?.getProps) {\n let _props: any = opt.getProps(prop, val, _css, dept)\n if (_props) {\n let r: any = style(_props, classname, {\n ...opt,\n getProps: undefined\n })\n if (opt?.skipProps) {\n skiped = {\n ...skiped,\n ...r.skiped\n }\n }\n stack.push(r.stack)\n continue;\n }\n }\n if (opt?.aliases && (opt.aliases as any)[prop]) {\n let _props = (opt.aliases as any)[prop](val)\n if (_props) {\n let r: any = style(_props, classname, {\n ...opt,\n aliases: undefined\n }, dept)\n r.stack = r.stack.replace(`${classname}{`, '').replace(`}`, '')\n stack[0] += r.stack\n continue;\n }\n }\n if (opt?.getValue) {\n val = opt.getValue(prop, val, _css, dept)\n }\n let p = cssPrefix(prop, val)\n stack[0] += `${p.prop}:${p.value};`\n }\n }\n }\n stack[0] += \"}\"\n if (stack[0] === `${classname}{}`) {\n stack[0] = \"\"\n }\n stack = stack.join('')\n for (let media in medias) {\n stack += `${media}{${medias[media].replace(new RegExp(`}\\\\${classname}\\\\{`, 'g'), '')}}`\n }\n\n if (cachekey) {\n stack = stack.replace(new RegExp(classname as string, 'g'), `.${classname}`)\n const r = {\n cache: false,\n cachekey,\n classname: classname as string,\n css: stack,\n cssraw: _css,\n skiped,\n getStyleTag: () => document?.querySelector(`[data-oncss=\"${classname}\"]`) as HTMLStyleElement | null,\n deleteStyle: () => {\n const tag = document?.querySelector(`[data-oncss=\"${classname}\"]`)\n tag && tag.remove()\n },\n }\n r.toString = () => classname as string\n CSSFactory.set(cachekey, r)\n let inject = opt?.injectStyle || true\n if (inject && typeof window !== 'undefined') {\n if (!document.querySelector(`[data-oncss=\"${classname}\"]`)) {\n const tag = document.createElement(\"style\");\n tag.innerHTML = r.css\n tag.setAttribute(`data-oncss`, classname as string)\n document.head.append(tag)\n }\n }\n return r\n }\n return { stack, skiped }\n}"],
5
+ "mappings": "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",
6
+ "names": ["youid", "_global", "CSSFactory", "number_val_props", "formatCSSProp", "prop", "formatCSSValue", "val", "PREFIXES", "_declaration", "PREFIXCACHE", "cssPrefix", "value", "declaration", "cached", "_prop", "_value", "_vprefix", "camelCaseProp", "_", "c", "prefix", "prefixedValue", "style", "_css", "cls", "opt", "dept", "cachekey", "classname", "_key", "has", "stack", "medias", "skiped", "firstChar", "ncls", "r", "selector", "atcss", "media", "breakpoint", "_style", "mediakey", "_props", "p", "tag"]
7
+ }
package/esm/index.js ADDED
@@ -0,0 +1,2 @@
1
+ import{style as r}from"./core";import{CSSFactory as f,formatCSSProp as m,formatCSSValue as l}from"./core";export*from"./types";const s=(o,e)=>r(o,void 0,e);var n=s;export{f as CSSFactory,s as css,n as default,m as formatCSSProp,l as formatCSSValue};
2
+ //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/index.ts"],
3
+ "sources": ["../../src/index.ts"],
4
4
  "sourcesContent": ["import { style } from \"./core\";\nimport { CSSProps, CSSOptionProps, CSSFactoryType } from \"./types\";\nexport { CSSFactory, formatCSSProp, formatCSSValue } from './core'\nexport * from './types'\n\nexport const css = <Aliases, BreakpointKeys extends string>(_css: CSSProps<Aliases, BreakpointKeys>, options?: CSSOptionProps<Aliases, BreakpointKeys>): CSSFactoryType => style<Aliases, BreakpointKeys>(_css, undefined, options) as any\nexport default css"],
5
- "mappings": "AAAA,SAAS,aAAa;AAEtB,SAAS,YAAY,eAAe,sBAAsB;AAC1D,cAAc;AAEP,MAAM,MAAM,CAAyC,MAAyC,YAAsE,MAA+B,MAAM,QAAW,OAAO;AAClO,IAAO,gBAAQ;",
6
- "names": []
5
+ "mappings": "AAAA,OAAS,SAAAA,MAAa,SAEtB,OAAS,cAAAC,EAAY,iBAAAC,EAAe,kBAAAC,MAAsB,SAC1D,WAAc,UAEP,MAAMC,EAAM,CAAyCC,EAAyCC,IAAsEN,EAA+BK,EAAM,OAAWC,CAAO,EAClO,IAAOC,EAAQH",
6
+ "names": ["style", "CSSFactory", "formatCSSProp", "formatCSSValue", "css", "_css", "options", "index_default"]
7
7
  }
package/package.json CHANGED
@@ -1,38 +1,40 @@
1
1
  {
2
- "name": "oncss",
3
- "version": "1.1.5",
4
- "description": "A CSS framework for modern web development.",
5
- "main": "./index.js",
6
- "scripts": {
7
- "start": "makepack serve -p 4000",
8
- "pack": "makepack pack",
9
- "publish:pack": "makepack pack -p"
10
- },
11
- "devDependencies": {
12
- "@types/react": "^19.0.2",
13
- "@types/react-dom": "^19.0.2",
14
- "makepack": "^1.3.4",
15
- "react": "^19.0.0",
16
- "react-dom": "^19.0.0",
17
- "typescript": "^4.4.2"
18
- },
19
- "keywords": [
20
- "css",
21
- "oncss",
22
- "styles",
23
- "web development",
24
- "frontend"
25
- ],
26
- "author": "Your Name",
27
- "license": "MIT",
28
- "repository": {
29
- "type": "git",
30
- "url": "https://github.com/yourusername/oncss.git"
31
- },
32
- "bugs": {
33
- "url": "https://github.com/yourusername/oncss/issues"
34
- },
35
- "dependencies": {
36
- "youid": "^1.0.2"
37
- }
2
+ "name": "oncss",
3
+ "version": "1.1.7",
4
+ "description": "A CSS framework for modern web development.",
5
+ "main": "./index.js",
6
+ "module": "./esm/index.js",
7
+ "types": "./types/index.d.ts",
8
+ "scripts": {
9
+ "start": "makepack serve -p 4000",
10
+ "pack": "makepack pack",
11
+ "publish:pack": "makepack pack -p"
12
+ },
13
+ "devDependencies": {
14
+ "@types/react": "^19.0.2",
15
+ "@types/react-dom": "^19.0.2",
16
+ "makepack": "^1.3.6",
17
+ "react": "^19.0.0",
18
+ "react-dom": "^19.0.0",
19
+ "typescript": "^4.4.2"
20
+ },
21
+ "keywords": [
22
+ "css",
23
+ "oncss",
24
+ "styles",
25
+ "web development",
26
+ "frontend"
27
+ ],
28
+ "author": "Your Name",
29
+ "license": "MIT",
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/yourusername/oncss.git"
33
+ },
34
+ "bugs": {
35
+ "url": "https://github.com/yourusername/oncss/issues"
36
+ },
37
+ "dependencies": {
38
+ "youid": "^1.0.3"
39
+ }
38
40
  }
package/core.js DELETED
@@ -1,243 +0,0 @@
1
- import youid from "youid";
2
- const _global = typeof window !== "undefined" ? window : global;
3
- _global.Factory = _global.Factory || /* @__PURE__ */ new Map();
4
- const CSSFactory = _global.Factory;
5
- const number_val_props = [
6
- "fontWeight",
7
- "font-weight",
8
- "lineHeight",
9
- "line-height",
10
- "opacity",
11
- "zIndex",
12
- "z-index",
13
- "flex",
14
- "order",
15
- "flexGrow",
16
- "flex-grow",
17
- "flexShrink",
18
- "flex-shrink",
19
- "flexBasis",
20
- "flex-basis",
21
- "columns",
22
- "perspective",
23
- "stroke-dashoffset"
24
- ];
25
- const formatCSSProp = (prop) => prop.split(/(?=[A-Z])/).join("-").toLowerCase();
26
- const formatCSSValue = (prop, val) => typeof val === "number" && !number_val_props.includes(prop) ? `${val}px` : val;
27
- const PREFIXES = ["webkit", "moz", "ms", "o"];
28
- let _declaration;
29
- const PREFIXCACHE = /* @__PURE__ */ new Map();
30
- const cssPrefix = (prop, value) => {
31
- value = formatCSSValue(prop, value);
32
- prop = formatCSSProp(prop);
33
- if (typeof window === "undefined") {
34
- return { prop, value };
35
- }
36
- const declaration = _declaration || (_declaration = document.createElement("div").style);
37
- value = value?.toString();
38
- if (declaration.setProperty(prop, value), declaration.getPropertyValue(prop) === value) {
39
- return { prop, value };
40
- }
41
- const cached = PREFIXCACHE.get(prop);
42
- if (cached) {
43
- return { prop: cached._prop, value: `${cached._vprefix}${value}` };
44
- }
45
- let _prop = prop;
46
- let _value = value;
47
- let _vprefix = "";
48
- const camelCaseProp = prop.includes("-") ? prop.replace(/-([a-z])/g, (_, c) => c.toUpperCase()) : prop;
49
- for (const prefix of PREFIXES) {
50
- if (declaration[`${prefix}${camelCaseProp}`] !== void 0) {
51
- _prop = `-${prefix}-${prop}`;
52
- break;
53
- }
54
- }
55
- declaration.setProperty(_prop, value);
56
- if (!declaration.getPropertyValue(_prop)) {
57
- for (const prefix of PREFIXES) {
58
- const prefixedValue = `-${prefix}-${value}`;
59
- if (declaration.setProperty(_prop, prefixedValue), declaration.getPropertyValue(_prop) === prefixedValue) {
60
- _value = prefixedValue;
61
- _vprefix = `-${prefix}-`;
62
- break;
63
- }
64
- }
65
- }
66
- PREFIXCACHE.set(prop, { _prop, _vprefix });
67
- return { prop: _prop, value: _value };
68
- };
69
- const style = (_css, cls, opt, dept = 1) => {
70
- let cachekey;
71
- let classname = cls;
72
- if (!cls) {
73
- cachekey = JSON.stringify(_css);
74
- const has = CSSFactory.get(cachekey);
75
- if (has) {
76
- has.cache = true;
77
- return has;
78
- }
79
- classname = `${opt?.classPrefix || ""}x${youid(cachekey)}`;
80
- } else if (typeof cls !== "string") {
81
- throw new Error(`Invalid class name: ${cls}`);
82
- }
83
- let stack = [`${classname}{`];
84
- let medias = {};
85
- let skiped = {};
86
- for (let prop in _css) {
87
- let val = _css[prop];
88
- let firstChar = prop.charAt(0);
89
- if (firstChar === "&") {
90
- let ncls = prop.replace(/&/g, classname);
91
- const r = style(val, ncls, opt, dept + 1);
92
- if (opt?.skipProps) {
93
- skiped = {
94
- ...skiped,
95
- ...r.skiped
96
- };
97
- }
98
- stack.push(r.stack);
99
- } else if (firstChar === "@") {
100
- if (prop.startsWith("@global") || prop.startsWith("@keyframes")) {
101
- let _css2 = "";
102
- for (let selector in val) {
103
- let r = style(val[selector], selector, opt, dept + 1);
104
- _css2 += r.stack;
105
- if (opt?.skipProps) {
106
- skiped = {
107
- ...skiped,
108
- ...r.skiped
109
- };
110
- }
111
- }
112
- if (prop.startsWith("@keyframes")) {
113
- stack.push(`${prop}{${_css2}}`);
114
- } else {
115
- stack.push(_css2);
116
- }
117
- } else {
118
- let r = style(val, classname, opt, dept + 1);
119
- const atcss = prop + "{" + r.stack + "}";
120
- stack.push(atcss);
121
- if (opt?.skipProps) {
122
- skiped = {
123
- ...skiped,
124
- ...r.skiped
125
- };
126
- }
127
- }
128
- } else {
129
- if (opt?.skipProps && opt.skipProps(prop, val, dept)) {
130
- if (!(classname in skiped)) skiped[classname] = [];
131
- skiped[classname].push(prop);
132
- continue;
133
- }
134
- if (typeof val === "object") {
135
- for (let media in val) {
136
- if (typeof val[media] === "object" || typeof val[media] === "function" || Array.isArray(val[media])) {
137
- throw new Error(`Invalid css value: ${val[media]}`);
138
- }
139
- let breakpoint = media;
140
- let isNumber = !isNaN(parseInt(breakpoint));
141
- if (!isNumber) {
142
- if (opt?.breakpoints && !isNaN(parseInt(opt.breakpoints[media]))) {
143
- breakpoint = opt.breakpoints[media].toString();
144
- } else {
145
- throw new Error(`Invalid breakpoint prop: ${media}`);
146
- }
147
- }
148
- let _css2 = { [prop]: val[media] };
149
- let r = style(_css2, classname, opt, dept);
150
- let _style = r.stack;
151
- let mediakey = `@media (min-width: ${breakpoint}px)`;
152
- medias[mediakey] = medias[mediakey] ? medias[mediakey] + _style : _style;
153
- if (opt?.skipProps) {
154
- skiped = {
155
- ...skiped,
156
- ...r.skiped
157
- };
158
- }
159
- }
160
- } else {
161
- if (opt?.getProps) {
162
- let _props = opt.getProps(prop, val, _css, dept);
163
- if (_props) {
164
- let r = style(_props, classname, {
165
- ...opt,
166
- getProps: void 0
167
- });
168
- if (opt?.skipProps) {
169
- skiped = {
170
- ...skiped,
171
- ...r.skiped
172
- };
173
- }
174
- stack.push(r.stack);
175
- continue;
176
- }
177
- }
178
- if (opt?.aliases && opt.aliases[prop]) {
179
- let _props = opt.aliases[prop](val);
180
- if (_props) {
181
- let r = style(_props, classname, {
182
- ...opt,
183
- aliases: void 0
184
- }, dept);
185
- r.stack = r.stack.replace(`${classname}{`, "").replace(`}`, "");
186
- stack[0] += r.stack;
187
- continue;
188
- }
189
- }
190
- if (opt?.getValue) {
191
- val = opt.getValue(prop, val, _css, dept);
192
- }
193
- let p = cssPrefix(prop, val);
194
- stack[0] += `${p.prop}:${p.value};`;
195
- }
196
- }
197
- }
198
- stack[0] += "}";
199
- if (stack[0] === `${classname}{}`) {
200
- stack[0] = "";
201
- }
202
- stack = stack.join("");
203
- for (let media in medias) {
204
- stack += `${media}{${medias[media].replace(new RegExp(`}\\${classname}\\{`, "g"), "")}}`;
205
- }
206
- if (cachekey) {
207
- stack = stack.replace(new RegExp(classname, "g"), `.${classname}`);
208
- const r = {
209
- cache: false,
210
- cachekey,
211
- classname,
212
- css: stack,
213
- cssraw: _css,
214
- skiped,
215
- getStyleTag: () => document?.querySelector(`[data-oncss="${classname}"]`),
216
- deleteStyle: () => {
217
- const tag = document?.querySelector(`[data-oncss="${classname}"]`);
218
- tag && tag.remove();
219
- }
220
- };
221
- r.toString = () => classname;
222
- CSSFactory.set(cachekey, r);
223
- let inject = opt?.injectStyle || true;
224
- if (inject && typeof window !== "undefined") {
225
- if (!document.querySelector(`[data-oncss="${classname}"]`)) {
226
- const tag = document.createElement("style");
227
- tag.innerHTML = r.css;
228
- tag.setAttribute(`data-oncss`, classname);
229
- document.head.append(tag);
230
- }
231
- }
232
- return r;
233
- }
234
- return { stack, skiped };
235
- };
236
- export {
237
- CSSFactory,
238
- cssPrefix,
239
- formatCSSProp,
240
- formatCSSValue,
241
- style
242
- };
243
- //# sourceMappingURL=core.js.map
package/core.js.map DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/core.ts"],
4
- "sourcesContent": ["import { CSSOptionProps, CSSFactoryType, CSSProps } from './types';\nimport youid from 'youid';\nconst _global: any = typeof window !== 'undefined' ? window : global;\n_global.Factory = _global.Factory || new Map<string, CSSFactoryType>();\nexport const CSSFactory = _global.Factory as Map<string, CSSFactoryType>\n\n\nconst number_val_props = [\n \"fontWeight\",\n \"font-weight\",\n \"lineHeight\",\n \"line-height\",\n \"opacity\",\n \"zIndex\",\n \"z-index\",\n \"flex\",\n \"order\",\n \"flexGrow\",\n \"flex-grow\",\n \"flexShrink\",\n \"flex-shrink\",\n \"flexBasis\",\n \"flex-basis\",\n \"columns\",\n \"perspective\",\n \"stroke-dashoffset\"\n]\n\nexport const formatCSSProp = (prop: string) => prop.split(/(?=[A-Z])/).join(\"-\").toLowerCase();\nexport const formatCSSValue = (prop: string, val: any) => typeof val === 'number' && !number_val_props.includes(prop) ? `${val}px` : val\n\nconst PREFIXES = ['webkit', 'moz', 'ms', 'o'];\nlet _declaration: CSSStyleDeclaration;\nconst PREFIXCACHE = new Map();\n\nexport const cssPrefix = (prop: string, value: string): { prop: string, value: string } => {\n value = formatCSSValue(prop, value);\n prop = formatCSSProp(prop);\n\n if (typeof window === 'undefined') {\n return { prop, value };\n }\n\n const declaration = _declaration || (_declaration = document.createElement(\"div\").style);\n value = value?.toString();\n\n // Check if the property and value work as is\n if (declaration.setProperty(prop, value), declaration.getPropertyValue(prop) === value) {\n return { prop, value };\n }\n\n // Check cached property and value prefix\n const cached = PREFIXCACHE.get(prop);\n if (cached) {\n return { prop: cached._prop, value: `${cached._vprefix}${value}` };\n }\n\n let _prop = prop;\n let _value = value;\n let _vprefix = '';\n\n // Try property prefixes\n const camelCaseProp = prop.includes('-') ? prop.replace(/-([a-z])/g, (_, c) => c.toUpperCase()) : prop;\n for (const prefix of PREFIXES) {\n if (declaration[`${prefix}${camelCaseProp}` as any] !== undefined) {\n _prop = `-${prefix}-${prop}`;\n break;\n }\n }\n\n // Check if prefixed property works with the value\n declaration.setProperty(_prop, value);\n if (!declaration.getPropertyValue(_prop)) {\n for (const prefix of PREFIXES) {\n const prefixedValue = `-${prefix}-${value}`;\n if (declaration.setProperty(_prop, prefixedValue), declaration.getPropertyValue(_prop) === prefixedValue) {\n _value = prefixedValue;\n _vprefix = `-${prefix}-`;\n break;\n }\n }\n }\n\n PREFIXCACHE.set(prop, { _prop, _vprefix });\n return { prop: _prop, value: _value };\n};\n\nexport const style = <Aliases, BreakpointKeys extends string>(_css: CSSProps<Aliases, BreakpointKeys>, cls?: string, opt?: CSSOptionProps<Aliases, BreakpointKeys>, dept = 1) => {\n let cachekey\n let classname = cls\n if (!cls) {\n cachekey = JSON.stringify(_css)\n const has = CSSFactory.get(cachekey)\n if (has) {\n has.cache = true\n return has\n }\n classname = `${opt?.classPrefix || \"\"}x${youid(cachekey)}`\n } else if (typeof cls !== 'string') {\n throw new Error(`Invalid class name: ${cls}`)\n }\n\n let stack: any = [`${classname}{`]\n let medias: any = {}\n let skiped: any = {}\n for (let prop in _css) {\n let val = (_css as any)[prop]\n let firstChar = prop.charAt(0)\n if (firstChar === '&') {\n let ncls = prop.replace(/&/g, classname as string)\n const r: any = style(val, ncls, opt, dept + 1)\n if (opt?.skipProps) {\n skiped = {\n ...skiped,\n ...r.skiped\n }\n }\n stack.push(r.stack)\n } else if (firstChar === '@') {\n if (prop.startsWith(\"@global\") || prop.startsWith(\"@keyframes\")) {\n let _css = ''\n for (let selector in val) {\n let r: any = style(val[selector], selector, opt, dept + 1)\n _css += r.stack\n if (opt?.skipProps) {\n skiped = {\n ...skiped,\n ...r.skiped\n }\n }\n }\n if (prop.startsWith(\"@keyframes\")) {\n stack.push(`${prop}{${_css}}`)\n } else {\n stack.push(_css)\n }\n } else {\n let r: any = style(val, classname, opt, dept + 1)\n const atcss = prop + \"{\" + r.stack + \"}\"\n stack.push(atcss)\n if (opt?.skipProps) {\n skiped = {\n ...skiped,\n ...r.skiped\n }\n }\n }\n } else {\n if (opt?.skipProps && opt.skipProps(prop, val, dept)) {\n if (!((classname as any) in skiped)) skiped[classname as string] = []\n skiped[classname as string].push(prop)\n continue\n }\n if (typeof val === 'object') {\n for (let media in val) {\n if (typeof val[media] === 'object' || typeof val[media] === 'function' || Array.isArray(val[media])) {\n throw new Error(`Invalid css value: ${val[media]}`);\n }\n let breakpoint = media\n let isNumber = !isNaN(parseInt(breakpoint))\n if (!isNumber) {\n if (opt?.breakpoints && !isNaN(parseInt((opt.breakpoints as any)[media]))) {\n breakpoint = opt.breakpoints[media as BreakpointKeys].toString()\n } else {\n throw new Error(`Invalid breakpoint prop: ${media}`);\n }\n }\n let _css = { [prop]: val[media] }\n let r: any = style(_css, classname, opt, dept)\n let _style = r.stack\n let mediakey = `@media (min-width: ${breakpoint}px)`\n medias[mediakey] = medias[mediakey] ? medias[mediakey] + _style : _style\n if (opt?.skipProps) {\n skiped = {\n ...skiped,\n ...r.skiped\n }\n }\n }\n } else {\n if (opt?.getProps) {\n let _props: any = opt.getProps(prop, val, _css, dept)\n if (_props) {\n let r: any = style(_props, classname, {\n ...opt,\n getProps: undefined\n })\n if (opt?.skipProps) {\n skiped = {\n ...skiped,\n ...r.skiped\n }\n }\n stack.push(r.stack)\n continue;\n }\n }\n if (opt?.aliases && (opt.aliases as any)[prop]) {\n let _props = (opt.aliases as any)[prop](val)\n if (_props) {\n let r: any = style(_props, classname, {\n ...opt,\n aliases: undefined\n }, dept)\n r.stack = r.stack.replace(`${classname}{`, '').replace(`}`, '')\n stack[0] += r.stack\n continue;\n }\n }\n if (opt?.getValue) {\n val = opt.getValue(prop, val, _css, dept)\n }\n let p = cssPrefix(prop, val)\n stack[0] += `${p.prop}:${p.value};`\n }\n }\n }\n stack[0] += \"}\"\n if (stack[0] === `${classname}{}`) {\n stack[0] = \"\"\n }\n stack = stack.join('')\n for (let media in medias) {\n stack += `${media}{${medias[media].replace(new RegExp(`}\\\\${classname}\\\\{`, 'g'), '')}}`\n }\n\n if (cachekey) {\n stack = stack.replace(new RegExp(classname as string, 'g'), `.${classname}`)\n const r = {\n cache: false,\n cachekey,\n classname: classname as string,\n css: stack,\n cssraw: _css,\n skiped,\n getStyleTag: () => document?.querySelector(`[data-oncss=\"${classname}\"]`) as HTMLStyleElement | null,\n deleteStyle: () => {\n const tag = document?.querySelector(`[data-oncss=\"${classname}\"]`)\n tag && tag.remove()\n },\n }\n r.toString = () => classname as string\n CSSFactory.set(cachekey, r)\n let inject = opt?.injectStyle || true\n if (inject && typeof window !== 'undefined') {\n if (!document.querySelector(`[data-oncss=\"${classname}\"]`)) {\n const tag = document.createElement(\"style\");\n tag.innerHTML = r.css\n tag.setAttribute(`data-oncss`, classname as string)\n document.head.append(tag)\n }\n }\n return r\n }\n return { stack, skiped }\n}"],
5
- "mappings": "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",
6
- "names": ["_css"]
7
- }
package/index.js DELETED
@@ -1,13 +0,0 @@
1
- import { style } from "./core";
2
- import { CSSFactory, formatCSSProp, formatCSSValue } from "./core";
3
- export * from "./types";
4
- const css = (_css, options) => style(_css, void 0, options);
5
- var index_default = css;
6
- export {
7
- CSSFactory,
8
- css,
9
- index_default as default,
10
- formatCSSProp,
11
- formatCSSValue
12
- };
13
- //# sourceMappingURL=index.js.map
File without changes
File without changes
File without changes
File without changes
File without changes