@salty-css/astro 0.1.0-alpha.3 → 0.1.0-alpha.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/astro-vite-plugin.cjs +8 -11
- package/astro-vite-plugin.js +65 -75
- package/class-name.cjs +1 -1
- package/class-name.d.ts +1 -0
- package/class-name.js +14 -10
- package/dynamic-styles.cjs +1 -0
- package/dynamic-styles.d.ts +20 -0
- package/dynamic-styles.js +11 -0
- package/element-props.cjs +1 -0
- package/element-props.d.ts +20 -0
- package/element-props.js +56 -0
- package/package.json +14 -2
- package/runtime.cjs +1 -0
- package/runtime.d.ts +1 -0
- package/runtime.js +1 -0
package/astro-vite-plugin.cjs
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
2
|
-
${
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const S=require("@salty-css/core/compiler/helpers"),k=require("@salty-css/core/compiler/get-function-range"),A=require("@salty-css/core/compiler/salty-compiler"),O=require("@salty-css/core/server"),P=require("@salty-css/core/util"),m=require("fs/promises"),_=require("path"),q=E=>{const c=new A.SaltyCompiler(E);return{name:"stylegen",configureServer(t){c.importFile=async n=>{const r=Date.now();return t.ssrLoadModule(`${n}?t=${r}`)}},buildStart:async()=>{await c.generateCss()},load:async t=>{var r,h;if(S.isSaltyFile(t)){const u=await c.getDestDir();if(/.+\?configFile=(\w+).+/.test(t)){const p=new URLSearchParams(t.split("?")[1]).get("configFile");if(!p)return;const i=_.join(u,"astro",p),g=await m.readFile(i,"utf-8");if(!g)return;try{const a=JSON.parse(g),{clientProps:f={},classNames:s="",tagIsComponent:d,tagName:o="div"}=a,y=["import { resolveAstroProps } from '@salty-css/astro/element-props';",...a.imports||[]],j=d?o:`__r.element || ${JSON.stringify(f.element||o)}`;return`---
|
|
2
|
+
${y.join(`
|
|
3
3
|
`)}
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
${v.map(i=>{const[n,r]=i.split("=");return`props.${n} !== undefined ? "${n}-" + props.${n} : ${r!==void 0?`"${n}-${r}"`:'""'}`}).join(`,
|
|
8
|
-
`)}
|
|
9
|
-
]
|
|
4
|
+
const __gp = ${JSON.stringify(f)};
|
|
5
|
+
const __r = resolveAstroProps(Astro.props, __gp, ${JSON.stringify(s)});
|
|
6
|
+
const Element = ${j};
|
|
10
7
|
---
|
|
11
|
-
<Element class:list={
|
|
8
|
+
<Element class:list={__r.class} style={__r.style} {...__r.rest}><slot/></Element>`}catch(a){console.error("Error parsing config file:",a);return}}const v=["import { classNameInstance } from '@salty-css/core/instances/classname-instance';"],x=[],w=[],$=await m.readFile(t,"utf-8"),J=await c.compileSaltyFile(t,u),R=Object.entries(J.contents);for(const[e,p]of R){const i=await S.resolveExportValue(p,1);if(!i.generator)continue;if(i.isClassName){const C=i.generator._withBuildContext({callerName:e,isProduction:!1,config:{}});x.push(`const ${e} = classNameInstance(${JSON.stringify(C.params)});`),w.push(e);continue}const[g,a]=await k.getFunctionRange($,e),f=$.slice(g,a),s=(h=(r=/styled\(([^,]+),/.exec(f))==null?void 0:r.at(1))==null?void 0:h.trim();if(!s){console.warn(`Could not determine tag name for ${e} in ${t}`);continue}const d=i.generator._withBuildContext({callerName:e,isProduction:!1,config:{}}),o={componentName:e,tagName:s.replace(/['"`]/g,""),tagIsComponent:!1,classNames:d.classNames,imports:[],clientProps:d.clientProps},F=/^\w+$/.test(s);if(o.tagIsComponent=F,F){const C=R.some(([l])=>l===s),I=$.match(new RegExp(`import[^;]*${s}[^;]*;`));if(C){const l=P.toHash(s),b=`import ${s} from '${t}.astro?configFile=${l}.config';`;o.imports=[b]}else if(I){const l=I.at(0);o.imports=[l]}}const y=_.join(u,"astro");await m.readFile(y,"utf-8").catch(()=>!1)||await m.mkdir(y,{recursive:!0});const N=P.toHash(e),D=_.join(u,"astro",`${N}.config`);await m.writeFile(D,JSON.stringify(o)),v.push(`import ${e} from '${t}.astro?configFile=${N}.config';`),w.push(e)}return`${v.join(`
|
|
12
9
|
`)}
|
|
13
|
-
${
|
|
10
|
+
${x.join(`
|
|
14
11
|
`)}
|
|
15
|
-
export { ${
|
|
12
|
+
export { ${w.join(", ")} };`}},handleHotUpdate:async({file:t,server:n})=>{await O.checkShouldRestart(t)&&n.restart()},watchChange:{handler:async(t,n)=>{S.isSaltyFile(t)&&n.event!=="delete"&&(await O.checkShouldRestart(t)||await c.generateFile(t))}}}};exports.default=q;exports.saltyPlugin=q;
|
package/astro-vite-plugin.js
CHANGED
|
@@ -1,115 +1,105 @@
|
|
|
1
|
-
import { isSaltyFile as
|
|
2
|
-
import { getFunctionRange as
|
|
3
|
-
import { SaltyCompiler as
|
|
1
|
+
import { isSaltyFile as E, resolveExportValue as b } from "@salty-css/core/compiler/helpers";
|
|
2
|
+
import { getFunctionRange as k } from "@salty-css/core/compiler/get-function-range";
|
|
3
|
+
import { SaltyCompiler as B } from "@salty-css/core/compiler/salty-compiler";
|
|
4
4
|
import { checkShouldRestart as O } from "@salty-css/core/server";
|
|
5
|
-
import { toHash as
|
|
6
|
-
import { readFile as
|
|
7
|
-
import { join as
|
|
8
|
-
const T = (
|
|
9
|
-
const
|
|
5
|
+
import { toHash as j } from "@salty-css/core/util";
|
|
6
|
+
import { readFile as C, mkdir as H, writeFile as L } from "fs/promises";
|
|
7
|
+
import { join as _ } from "path";
|
|
8
|
+
const T = (J) => {
|
|
9
|
+
const c = new B(J);
|
|
10
10
|
return {
|
|
11
11
|
name: "stylegen",
|
|
12
12
|
configureServer(t) {
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
return t.ssrLoadModule(`${
|
|
13
|
+
c.importFile = async (n) => {
|
|
14
|
+
const r = Date.now();
|
|
15
|
+
return t.ssrLoadModule(`${n}?t=${r}`);
|
|
16
16
|
};
|
|
17
17
|
},
|
|
18
18
|
buildStart: async () => {
|
|
19
|
-
await
|
|
19
|
+
await c.generateCss();
|
|
20
20
|
},
|
|
21
21
|
load: async (t) => {
|
|
22
|
-
var
|
|
23
|
-
if (
|
|
24
|
-
const
|
|
22
|
+
var r, y;
|
|
23
|
+
if (E(t)) {
|
|
24
|
+
const m = await c.getDestDir();
|
|
25
25
|
if (/.+\?configFile=(\w+).+/.test(t)) {
|
|
26
|
-
const
|
|
27
|
-
if (
|
|
28
|
-
const
|
|
29
|
-
if (!
|
|
26
|
+
const p = new URLSearchParams(t.split("?")[1]).get("configFile");
|
|
27
|
+
if (!p) return;
|
|
28
|
+
const a = _(m, "astro", p), f = await C(a, "utf-8");
|
|
29
|
+
if (!f) return;
|
|
30
30
|
try {
|
|
31
|
-
const
|
|
32
|
-
let f = "";
|
|
33
|
-
if (n.element && g && (f += ` element="${n.element}"`), n.attr) for (const [i, o] of Object.entries(n.attr)) f += ` ${i}="${o}"`;
|
|
34
|
-
f = f.trim();
|
|
35
|
-
const C = n.variantKeys || [];
|
|
31
|
+
const i = JSON.parse(f), { clientProps: g = {}, classNames: e = "", tagIsComponent: u, tagName: o = "div" } = i, d = ["import { resolveAstroProps } from '@salty-css/astro/element-props';", ...i.imports || []], I = u ? o : `__r.element || ${JSON.stringify(g.element || o)}`;
|
|
36
32
|
return `---
|
|
37
|
-
${
|
|
33
|
+
${d.join(`
|
|
38
34
|
`)}
|
|
39
|
-
const
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
${C.map((i) => {
|
|
43
|
-
const [o, a] = i.split("=");
|
|
44
|
-
return `props.${o} !== undefined ? "${o}-" + props.${o} : ${a !== void 0 ? `"${o}-${a}"` : '""'}`;
|
|
45
|
-
}).join(`,
|
|
46
|
-
`)}
|
|
47
|
-
]
|
|
35
|
+
const __gp = ${JSON.stringify(g)};
|
|
36
|
+
const __r = resolveAstroProps(Astro.props, __gp, ${JSON.stringify(e)});
|
|
37
|
+
const Element = ${I};
|
|
48
38
|
---
|
|
49
|
-
<Element class:list={
|
|
50
|
-
} catch (
|
|
51
|
-
console.error("Error parsing config file:",
|
|
39
|
+
<Element class:list={__r.class} style={__r.style} {...__r.rest}><slot/></Element>`;
|
|
40
|
+
} catch (i) {
|
|
41
|
+
console.error("Error parsing config file:", i);
|
|
52
42
|
return;
|
|
53
43
|
}
|
|
54
44
|
}
|
|
55
|
-
const
|
|
56
|
-
for (const [
|
|
57
|
-
const
|
|
58
|
-
if (!
|
|
59
|
-
if (
|
|
60
|
-
const
|
|
61
|
-
callerName:
|
|
45
|
+
const S = ["import { classNameInstance } from '@salty-css/core/instances/classname-instance';"], v = [], w = [], $ = await C(t, "utf-8"), P = await c.compileSaltyFile(t, m), x = Object.entries(P.contents);
|
|
46
|
+
for (const [s, p] of x) {
|
|
47
|
+
const a = await b(p, 1);
|
|
48
|
+
if (!a.generator) continue;
|
|
49
|
+
if (a.isClassName) {
|
|
50
|
+
const F = a.generator._withBuildContext({
|
|
51
|
+
callerName: s,
|
|
62
52
|
isProduction: !1,
|
|
63
53
|
config: {}
|
|
64
54
|
});
|
|
65
|
-
|
|
55
|
+
v.push(`const ${s} = classNameInstance(${JSON.stringify(F.params)});`), w.push(s);
|
|
66
56
|
continue;
|
|
67
57
|
}
|
|
68
|
-
const [
|
|
69
|
-
if (!
|
|
70
|
-
console.warn(`Could not determine tag name for ${
|
|
58
|
+
const [f, i] = await k($, s), g = $.slice(f, i), e = (y = (r = /styled\(([^,]+),/.exec(g)) == null ? void 0 : r.at(1)) == null ? void 0 : y.trim();
|
|
59
|
+
if (!e) {
|
|
60
|
+
console.warn(`Could not determine tag name for ${s} in ${t}`);
|
|
71
61
|
continue;
|
|
72
62
|
}
|
|
73
|
-
const
|
|
74
|
-
callerName:
|
|
63
|
+
const u = a.generator._withBuildContext({
|
|
64
|
+
callerName: s,
|
|
75
65
|
isProduction: !1,
|
|
76
66
|
config: {}
|
|
77
|
-
}),
|
|
78
|
-
componentName:
|
|
79
|
-
tagName:
|
|
67
|
+
}), o = {
|
|
68
|
+
componentName: s,
|
|
69
|
+
tagName: e.replace(/['"`]/g, ""),
|
|
80
70
|
tagIsComponent: !1,
|
|
81
|
-
classNames:
|
|
71
|
+
classNames: u.classNames,
|
|
82
72
|
imports: [],
|
|
83
|
-
clientProps:
|
|
84
|
-
}, h = /^\w+$/.test(
|
|
85
|
-
if (
|
|
86
|
-
const
|
|
87
|
-
if (
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
} else if (
|
|
91
|
-
const
|
|
92
|
-
|
|
73
|
+
clientProps: u.clientProps
|
|
74
|
+
}, h = /^\w+$/.test(e);
|
|
75
|
+
if (o.tagIsComponent = h, h) {
|
|
76
|
+
const F = x.some(([l]) => l === e), R = $.match(new RegExp(`import[^;]*${e}[^;]*;`));
|
|
77
|
+
if (F) {
|
|
78
|
+
const l = j(e), A = `import ${e} from '${t}.astro?configFile=${l}.config';`;
|
|
79
|
+
o.imports = [A];
|
|
80
|
+
} else if (R) {
|
|
81
|
+
const l = R.at(0);
|
|
82
|
+
o.imports = [l];
|
|
93
83
|
}
|
|
94
84
|
}
|
|
95
|
-
const
|
|
96
|
-
await
|
|
97
|
-
const
|
|
98
|
-
await L(
|
|
85
|
+
const d = _(m, "astro");
|
|
86
|
+
await C(d, "utf-8").catch(() => !1) || await H(d, { recursive: !0 });
|
|
87
|
+
const N = j(s), D = _(m, "astro", `${N}.config`);
|
|
88
|
+
await L(D, JSON.stringify(o)), S.push(`import ${s} from '${t}.astro?configFile=${N}.config';`), w.push(s);
|
|
99
89
|
}
|
|
100
|
-
return `${
|
|
90
|
+
return `${S.join(`
|
|
101
91
|
`)}
|
|
102
|
-
${
|
|
92
|
+
${v.join(`
|
|
103
93
|
`)}
|
|
104
|
-
export { ${
|
|
94
|
+
export { ${w.join(", ")} };`;
|
|
105
95
|
}
|
|
106
96
|
},
|
|
107
|
-
handleHotUpdate: async ({ file: t, server:
|
|
108
|
-
await O(t) &&
|
|
97
|
+
handleHotUpdate: async ({ file: t, server: n }) => {
|
|
98
|
+
await O(t) && n.restart();
|
|
109
99
|
},
|
|
110
100
|
watchChange: {
|
|
111
|
-
handler: async (t,
|
|
112
|
-
|
|
101
|
+
handler: async (t, n) => {
|
|
102
|
+
E(t) && n.event !== "delete" && (await O(t) || await c.generateFile(t));
|
|
113
103
|
}
|
|
114
104
|
}
|
|
115
105
|
};
|
package/class-name.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("@salty-css/core/generators"),C=o=>{const c=new m.ClassNameGenerator(o),t=i=>{const e=new String(i);return Object.assign(e,{get isClassName(){return!0},variant:(r,n)=>{const a=`${r}-${n}`,s=`${e} ${a}`;return t(s)},variants:r=>{const n=Object.entries(r).reduce((s,[l,u])=>(s+=` ${l}-${u}`,s),""),a=`${e}${n}`.trim();return t(a)},generator:c}),e};return t(c.cssClassName)};exports.className=C;
|
package/class-name.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ interface ClassNameMethods<STYLE_PARAMS extends StyledParams> {
|
|
|
4
4
|
generator: ClassNameGenerator<STYLE_PARAMS>;
|
|
5
5
|
isClassName: boolean;
|
|
6
6
|
variant: (name: string, value: string) => string & ClassNameFunction<STYLE_PARAMS>;
|
|
7
|
+
variants: (variants: Record<string, string>) => string & ClassNameFunction<STYLE_PARAMS>;
|
|
7
8
|
}
|
|
8
9
|
type ClassNameFunction<STYLE_PARAMS extends StyledParams> = string & ClassNameMethods<STYLE_PARAMS>;
|
|
9
10
|
export declare const className: <const STYLE_PARAMS extends StyledParams>(params: STYLE_PARAMS) => ClassNameFunction<STYLE_PARAMS>;
|
package/class-name.js
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
import { ClassNameGenerator as
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
const s = new String(
|
|
1
|
+
import { ClassNameGenerator as u } from "@salty-css/core/generators";
|
|
2
|
+
const $ = (c) => {
|
|
3
|
+
const o = new u(c), e = (i) => {
|
|
4
|
+
const s = new String(i);
|
|
5
5
|
return Object.assign(s, {
|
|
6
6
|
get isClassName() {
|
|
7
7
|
return !0;
|
|
8
8
|
},
|
|
9
|
-
variant: (
|
|
10
|
-
const
|
|
11
|
-
return e(
|
|
9
|
+
variant: (r, n) => {
|
|
10
|
+
const a = `${r}-${n}`, t = `${s} ${a}`;
|
|
11
|
+
return e(t);
|
|
12
12
|
},
|
|
13
|
-
|
|
13
|
+
variants: (r) => {
|
|
14
|
+
const n = Object.entries(r).reduce((t, [l, m]) => (t += ` ${l}-${m}`, t), ""), a = `${s}${n}`.trim();
|
|
15
|
+
return e(a);
|
|
16
|
+
},
|
|
17
|
+
generator: o
|
|
14
18
|
}), s;
|
|
15
19
|
};
|
|
16
|
-
return e(
|
|
20
|
+
return e(o.cssClassName);
|
|
17
21
|
};
|
|
18
22
|
export {
|
|
19
|
-
|
|
23
|
+
$ as className
|
|
20
24
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@salty-css/core/css/dynamic-styles"),n=async(t,a)=>{const s=e.getDynamicStylesClassName(t),y=await e.getDynamicStylesCss(t,a||`.${s}`);return{className:s,css:y}};Object.defineProperty(exports,"getDynamicStylesClassName",{enumerable:!0,get:()=>e.getDynamicStylesClassName});Object.defineProperty(exports,"getDynamicStylesCss",{enumerable:!0,get:()=>e.getDynamicStylesCss});exports.resolveDynamicStyles=n;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BaseStyles } from '@salty-css/core/types';
|
|
2
|
+
import { getDynamicStylesClassName, getDynamicStylesCss } from '@salty-css/core/css/dynamic-styles';
|
|
3
|
+
export { getDynamicStylesClassName, getDynamicStylesCss };
|
|
4
|
+
/**
|
|
5
|
+
* Resolve dynamic styles for SSR usage inside an `.astro` component.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```astro
|
|
9
|
+
* ---
|
|
10
|
+
* import { resolveDynamicStyles } from '@salty-css/astro/dynamic-styles';
|
|
11
|
+
* const { className, css } = await resolveDynamicStyles({ color: 'red' });
|
|
12
|
+
* ---
|
|
13
|
+
* <style set:html={css}></style>
|
|
14
|
+
* <div class={className}><slot/></div>
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare const resolveDynamicStyles: (styles: BaseStyles, scope?: string) => Promise<{
|
|
18
|
+
className: string;
|
|
19
|
+
css: string;
|
|
20
|
+
}>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { getDynamicStylesClassName as c, getDynamicStylesCss as m } from "@salty-css/core/css/dynamic-styles";
|
|
2
|
+
import { getDynamicStylesClassName as r, getDynamicStylesCss as i } from "@salty-css/core/css/dynamic-styles";
|
|
3
|
+
const y = async (s, t) => {
|
|
4
|
+
const e = c(s), a = await m(s, t || `.${e}`);
|
|
5
|
+
return { className: e, css: a };
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
r as getDynamicStylesClassName,
|
|
9
|
+
i as getDynamicStylesCss,
|
|
10
|
+
y as resolveDynamicStyles
|
|
11
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("@salty-css/core/util"),j=require("@salty-css/core/parsers"),A=["passProps"],O=(p={},t={},y="",d)=>{const{class:v="",className:m,element:k,passProps:i=t.passProps,_vks:u,style:r,...b}=p,n={passProps:i};if(t.attr)for(const[s,e]of Object.entries(t.attr))e!==void 0&&(n[s]=e);d&&Object.assign(n,d);const c={...b};if(t.defaultProps)for(const[s,e]of Object.entries(t.defaultProps))c[s]===void 0&&(c[s]=e);Object.assign(n,c);const f=new Set;for(const s of String(y).split(" "))s&&f.add(s);for(const s of String(v||"").split(" "))s&&f.add(s);for(const s of String(m||"").split(" "))s&&f.add(s);const l={};if(r&&typeof r=="object")for(const[s,e]of Object.entries(r)){const o=j.parseVariableTokens(e);l[s]=o?o.transformed:e}const a=new Set(Array.isArray(u)?u:[]);if(t.propValueKeys)for(const s of t.propValueKeys){const e=`css-${s}`,o=c[e];o!==void 0&&(l[`--props-${S.dashCase(s)}`]=o,a.add(e))}if(t.variantKeys)for(const s of t.variantKeys){const[e,o]=s.split("=");c[e]!==void 0?(f.add(`${e}-${c[e]}`),a.add(e)):o!==void 0&&f.add(`${e}-${o}`)}for(const s of a)i!==!0&&(Array.isArray(i)&&i.includes(s)||typeof i=="string"&&i===s||delete n[s]);for(const s of A)delete n[s];return{class:[...f],style:l,rest:n,element:k||t.element,_vks:[...a]}};exports.resolveAstroProps=O;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { StyledGeneratorClientProps } from '@salty-css/core/generators';
|
|
2
|
+
export interface ResolvedAstroProps {
|
|
3
|
+
class: string[];
|
|
4
|
+
style: Record<string, any>;
|
|
5
|
+
rest: Record<string, any>;
|
|
6
|
+
element?: string;
|
|
7
|
+
_vks: string[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* SSR equivalent of the React `elementFactory`. Takes the raw `Astro.props` of a
|
|
11
|
+
* generated `.astro` Salty component plus the build-time generator props and
|
|
12
|
+
* returns cleaned values ready to apply on the underlying `<Element>` tag:
|
|
13
|
+
*
|
|
14
|
+
* - `class` — array for `class:list`
|
|
15
|
+
* - `style` — object for `style={}`
|
|
16
|
+
* - `rest` — object to `{...spread}` onto the element (variants and `css-*` props removed unless `passProps` allows)
|
|
17
|
+
* - `element` — runtime element override
|
|
18
|
+
* - `_vks` — variant keys consumed at this level, forwarded so wrapping styled components can keep stripping them
|
|
19
|
+
*/
|
|
20
|
+
export declare const resolveAstroProps: (astroProps?: Record<string, any>, generatorProps?: StyledGeneratorClientProps, baseClassName?: string, additionalProps?: Record<string, any>) => ResolvedAstroProps;
|
package/element-props.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { dashCase as j } from "@salty-css/core/util";
|
|
2
|
+
import { parseVariableTokens as S } from "@salty-css/core/parsers";
|
|
3
|
+
const $ = ["passProps"], O = (y = {}, t = {}, m = "", d) => {
|
|
4
|
+
const {
|
|
5
|
+
class: u = "",
|
|
6
|
+
className: v,
|
|
7
|
+
element: k,
|
|
8
|
+
passProps: i = t.passProps,
|
|
9
|
+
_vks: p,
|
|
10
|
+
style: l,
|
|
11
|
+
...b
|
|
12
|
+
} = y, n = { passProps: i };
|
|
13
|
+
if (t.attr)
|
|
14
|
+
for (const [s, e] of Object.entries(t.attr))
|
|
15
|
+
e !== void 0 && (n[s] = e);
|
|
16
|
+
d && Object.assign(n, d);
|
|
17
|
+
const c = { ...b };
|
|
18
|
+
if (t.defaultProps)
|
|
19
|
+
for (const [s, e] of Object.entries(t.defaultProps))
|
|
20
|
+
c[s] === void 0 && (c[s] = e);
|
|
21
|
+
Object.assign(n, c);
|
|
22
|
+
const f = /* @__PURE__ */ new Set();
|
|
23
|
+
for (const s of String(m).split(" ")) s && f.add(s);
|
|
24
|
+
for (const s of String(u || "").split(" ")) s && f.add(s);
|
|
25
|
+
for (const s of String(v || "").split(" ")) s && f.add(s);
|
|
26
|
+
const r = {};
|
|
27
|
+
if (l && typeof l == "object")
|
|
28
|
+
for (const [s, e] of Object.entries(l)) {
|
|
29
|
+
const o = S(e);
|
|
30
|
+
r[s] = o ? o.transformed : e;
|
|
31
|
+
}
|
|
32
|
+
const a = new Set(Array.isArray(p) ? p : []);
|
|
33
|
+
if (t.propValueKeys)
|
|
34
|
+
for (const s of t.propValueKeys) {
|
|
35
|
+
const e = `css-${s}`, o = c[e];
|
|
36
|
+
o !== void 0 && (r[`--props-${j(s)}`] = o, a.add(e));
|
|
37
|
+
}
|
|
38
|
+
if (t.variantKeys)
|
|
39
|
+
for (const s of t.variantKeys) {
|
|
40
|
+
const [e, o] = s.split("=");
|
|
41
|
+
c[e] !== void 0 ? (f.add(`${e}-${c[e]}`), a.add(e)) : o !== void 0 && f.add(`${e}-${o}`);
|
|
42
|
+
}
|
|
43
|
+
for (const s of a)
|
|
44
|
+
i !== !0 && (Array.isArray(i) && i.includes(s) || typeof i == "string" && i === s || delete n[s]);
|
|
45
|
+
for (const s of $) delete n[s];
|
|
46
|
+
return {
|
|
47
|
+
class: [...f],
|
|
48
|
+
style: r,
|
|
49
|
+
rest: n,
|
|
50
|
+
element: k || t.element,
|
|
51
|
+
_vks: [...a]
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
export {
|
|
55
|
+
O as resolveAstroProps
|
|
56
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salty-css/astro",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.5",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"module": "./dist/index.mjs",
|
|
6
6
|
"typings": "./dist/index.d.ts",
|
|
@@ -48,6 +48,18 @@
|
|
|
48
48
|
"import": "./class-name.js",
|
|
49
49
|
"require": "./class-name.cjs"
|
|
50
50
|
},
|
|
51
|
+
"./element-props": {
|
|
52
|
+
"import": "./element-props.js",
|
|
53
|
+
"require": "./element-props.cjs"
|
|
54
|
+
},
|
|
55
|
+
"./dynamic-styles": {
|
|
56
|
+
"import": "./dynamic-styles.js",
|
|
57
|
+
"require": "./dynamic-styles.cjs"
|
|
58
|
+
},
|
|
59
|
+
"./runtime": {
|
|
60
|
+
"import": "./runtime.js",
|
|
61
|
+
"require": "./runtime.cjs"
|
|
62
|
+
},
|
|
51
63
|
"./keyframes": {
|
|
52
64
|
"import": "./keyframes.js",
|
|
53
65
|
"require": "./keyframes.cjs"
|
|
@@ -66,7 +78,7 @@
|
|
|
66
78
|
}
|
|
67
79
|
},
|
|
68
80
|
"dependencies": {
|
|
69
|
-
"@salty-css/core": "^0.1.0-alpha.
|
|
81
|
+
"@salty-css/core": "^0.1.0-alpha.5",
|
|
70
82
|
"astro": "^5.13.2",
|
|
71
83
|
"vite": "^6.3.5"
|
|
72
84
|
}
|
package/runtime.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@salty-css/core/runtime");Object.keys(t).forEach(e=>{e!=="default"&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:()=>t[e]})});
|
package/runtime.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@salty-css/core/runtime';
|
package/runtime.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@salty-css/core/runtime";
|