@jasonshimmy/custom-elements-runtime 3.4.0 → 3.5.0
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/README.md +28 -7
- package/dist/css-utils-Bn-dO44e.js +203 -0
- package/dist/{css-utils-CC43BbEy.js.map → css-utils-Bn-dO44e.js.map} +1 -1
- package/dist/{css-utils-CC43BbEy.js → css-utils-CFeP8SK1.cjs} +5 -71
- package/dist/{css-utils-mgjmH8qX.cjs.map → css-utils-CFeP8SK1.cjs.map} +1 -1
- package/dist/custom-elements-runtime.cjs.js +3 -4
- package/dist/custom-elements-runtime.cjs.js.map +1 -1
- package/dist/custom-elements-runtime.colors.cjs.js +1 -2
- package/dist/custom-elements-runtime.colors.cjs.js.map +1 -1
- package/dist/custom-elements-runtime.colors.es.js +277 -277
- package/dist/custom-elements-runtime.colors.es.js.map +1 -1
- package/dist/custom-elements-runtime.directive-enhancements.cjs.js +1 -2
- package/dist/custom-elements-runtime.directive-enhancements.cjs.js.map +1 -1
- package/dist/custom-elements-runtime.directive-enhancements.es.js +106 -122
- package/dist/custom-elements-runtime.directive-enhancements.es.js.map +1 -1
- package/dist/custom-elements-runtime.directives.cjs.js +1 -2
- package/dist/custom-elements-runtime.directives.cjs.js.map +1 -1
- package/dist/custom-elements-runtime.directives.es.js +60 -65
- package/dist/custom-elements-runtime.directives.es.js.map +1 -1
- package/dist/custom-elements-runtime.dom-jit-css.cjs.js +1 -7
- package/dist/custom-elements-runtime.dom-jit-css.cjs.js.map +1 -1
- package/dist/custom-elements-runtime.dom-jit-css.es.js +103 -115
- package/dist/custom-elements-runtime.dom-jit-css.es.js.map +1 -1
- package/dist/custom-elements-runtime.es.js +206 -253
- package/dist/custom-elements-runtime.es.js.map +1 -1
- package/dist/custom-elements-runtime.event-bus.cjs.js +1 -2
- package/dist/custom-elements-runtime.event-bus.cjs.js.map +1 -1
- package/dist/custom-elements-runtime.event-bus.es.js +102 -108
- package/dist/custom-elements-runtime.event-bus.es.js.map +1 -1
- package/dist/custom-elements-runtime.jit-css.cjs.js +1 -2
- package/dist/custom-elements-runtime.jit-css.cjs.js.map +1 -1
- package/dist/custom-elements-runtime.jit-css.es.js +14 -32
- package/dist/custom-elements-runtime.jit-css.es.js.map +1 -1
- package/dist/custom-elements-runtime.router.cjs.js +20 -21
- package/dist/custom-elements-runtime.router.cjs.js.map +1 -1
- package/dist/custom-elements-runtime.router.es.js +866 -926
- package/dist/custom-elements-runtime.router.es.js.map +1 -1
- package/dist/custom-elements-runtime.ssr-middleware.cjs.js +3 -4
- package/dist/custom-elements-runtime.ssr-middleware.cjs.js.map +1 -1
- package/dist/custom-elements-runtime.ssr-middleware.es.js +67 -73
- package/dist/custom-elements-runtime.ssr-middleware.es.js.map +1 -1
- package/dist/custom-elements-runtime.ssr.cjs.js +1 -1
- package/dist/custom-elements-runtime.ssr.es.js +3 -14
- package/dist/custom-elements-runtime.store.cjs.js +1 -2
- package/dist/custom-elements-runtime.store.cjs.js.map +1 -1
- package/dist/custom-elements-runtime.store.es.js +32 -33
- package/dist/custom-elements-runtime.store.es.js.map +1 -1
- package/dist/custom-elements-runtime.transitions.cjs.js +1 -2
- package/dist/custom-elements-runtime.transitions.cjs.js.map +1 -1
- package/dist/custom-elements-runtime.transitions.es.js +200 -210
- package/dist/custom-elements-runtime.transitions.es.js.map +1 -1
- package/dist/custom-elements-runtime.vite-plugin.cjs.js +4 -2
- package/dist/custom-elements-runtime.vite-plugin.cjs.js.map +1 -1
- package/dist/custom-elements-runtime.vite-plugin.es.js +155 -78
- package/dist/custom-elements-runtime.vite-plugin.es.js.map +1 -1
- package/dist/helpers-DcEpRwq5.cjs +5 -0
- package/dist/helpers-DcEpRwq5.cjs.map +1 -0
- package/dist/helpers-tJgb4Qve.js +693 -0
- package/dist/helpers-tJgb4Qve.js.map +1 -0
- package/dist/hooks-CEUnvtsA.js +407 -0
- package/dist/hooks-CEUnvtsA.js.map +1 -0
- package/dist/hooks-CNfugc95.cjs +2 -0
- package/dist/hooks-CNfugc95.cjs.map +1 -0
- package/dist/logger-DIJ0UH3R.js +36 -0
- package/dist/{logger-L25axmB-.js.map → logger-DIJ0UH3R.js.map} +1 -1
- package/dist/logger-Dkht1dCX.cjs +2 -0
- package/dist/{logger-BYIN7ysT.cjs.map → logger-Dkht1dCX.cjs.map} +1 -1
- package/dist/namespace-helpers-CIUkG8Mn.js +56 -0
- package/dist/{namespace-helpers-BucDdgz_.js.map → namespace-helpers-CIUkG8Mn.js.map} +1 -1
- package/dist/namespace-helpers-yYIb7INq.cjs +2 -0
- package/dist/{namespace-helpers-Bf7rm9JV.cjs.map → namespace-helpers-yYIb7INq.cjs.map} +1 -1
- package/dist/runtime/tag-utils.d.ts +11 -0
- package/dist/ssr-BpYy9XlW.js +170 -0
- package/dist/{ssr-H9GDwbTy.js.map → ssr-BpYy9XlW.js.map} +1 -1
- package/dist/ssr-CFabTOyi.cjs +4 -0
- package/dist/{ssr-DRsGduIK.cjs.map → ssr-CFabTOyi.cjs.map} +1 -1
- package/dist/style-A8l3aQ52.cjs +55 -0
- package/dist/{style-Bjn8zDiZ.cjs.map → style-A8l3aQ52.cjs.map} +1 -1
- package/dist/style-DSSoCbC9.js +1877 -0
- package/dist/{style-DuDoj_xK.js.map → style-DSSoCbC9.js.map} +1 -1
- package/dist/tag-utils-CoSXTr1F.js +10 -0
- package/dist/tag-utils-CoSXTr1F.js.map +1 -0
- package/dist/tag-utils-XJ3dkcPQ.cjs +2 -0
- package/dist/tag-utils-XJ3dkcPQ.cjs.map +1 -0
- package/dist/template-compiler-B4B_jAPN.cjs +19 -0
- package/dist/{template-compiler-BB4JJdqk.cjs.map → template-compiler-B4B_jAPN.cjs.map} +1 -1
- package/dist/template-compiler-C3h8_vbE.js +3044 -0
- package/dist/{template-compiler-Cs5axmn4.js.map → template-compiler-C3h8_vbE.js.map} +1 -1
- package/dist/vite-plugin.d.ts +96 -2
- package/package.json +8 -8
- package/dist/css-utils-mgjmH8qX.cjs +0 -577
- package/dist/hooks-_3xP4G2N.js +0 -1189
- package/dist/hooks-_3xP4G2N.js.map +0 -1
- package/dist/hooks-fYQgZk2g.cjs +0 -7
- package/dist/hooks-fYQgZk2g.cjs.map +0 -1
- package/dist/logger-BYIN7ysT.cjs +0 -3
- package/dist/logger-L25axmB-.js +0 -41
- package/dist/namespace-helpers-Bf7rm9JV.cjs +0 -3
- package/dist/namespace-helpers-BucDdgz_.js +0 -61
- package/dist/ssr-DRsGduIK.cjs +0 -5
- package/dist/ssr-H9GDwbTy.js +0 -172
- package/dist/style-Bjn8zDiZ.cjs +0 -56
- package/dist/style-DuDoj_xK.js +0 -1972
- package/dist/template-compiler-BB4JJdqk.cjs +0 -23
- package/dist/template-compiler-Cs5axmn4.js +0 -3236
|
@@ -1,217 +1,207 @@
|
|
|
1
|
-
import { i as
|
|
2
|
-
import { anchorBlock as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
1
|
+
import { i as e } from "./css-utils-Bn-dO44e.js";
|
|
2
|
+
import { anchorBlock as t } from "./custom-elements-runtime.directives.es.js";
|
|
3
|
+
//#region src/lib/transitions.ts
|
|
4
|
+
var n = {
|
|
5
|
+
fade: {
|
|
6
|
+
enterFrom: "opacity-0",
|
|
7
|
+
enterActive: "transition-opacity duration-300 ease-out",
|
|
8
|
+
enterTo: "opacity-100",
|
|
9
|
+
leaveFrom: "opacity-100",
|
|
10
|
+
leaveActive: "transition-opacity duration-200 ease-in",
|
|
11
|
+
leaveTo: "opacity-0"
|
|
12
|
+
},
|
|
13
|
+
"slide-right": {
|
|
14
|
+
enterFrom: "translate-x-[100%] opacity-0",
|
|
15
|
+
enterActive: "transition-all duration-300 ease-out",
|
|
16
|
+
enterTo: "translate-x-[0%] opacity-100",
|
|
17
|
+
leaveFrom: "translate-x-[0%] opacity-100",
|
|
18
|
+
leaveActive: "transition-all duration-200 ease-in",
|
|
19
|
+
leaveTo: "translate-x-[100%] opacity-0"
|
|
20
|
+
},
|
|
21
|
+
"slide-left": {
|
|
22
|
+
enterFrom: "translate-x-[-100%] opacity-0",
|
|
23
|
+
enterActive: "transition-all duration-300 ease-out",
|
|
24
|
+
enterTo: "translate-x-[0%] opacity-100",
|
|
25
|
+
leaveFrom: "translate-x-[0%] opacity-100",
|
|
26
|
+
leaveActive: "transition-all duration-200 ease-in",
|
|
27
|
+
leaveTo: "translate-x-[-100%] opacity-0"
|
|
28
|
+
},
|
|
29
|
+
"slide-up": {
|
|
30
|
+
enterFrom: "translate-y-[100%] opacity-0",
|
|
31
|
+
enterActive: "transition-all duration-300 ease-out",
|
|
32
|
+
enterTo: "translate-y-[0%] opacity-100",
|
|
33
|
+
leaveFrom: "translate-y-[0%] opacity-100",
|
|
34
|
+
leaveActive: "transition-all duration-200 ease-in",
|
|
35
|
+
leaveTo: "translate-y-[100%] opacity-0"
|
|
36
|
+
},
|
|
37
|
+
"slide-down": {
|
|
38
|
+
enterFrom: "translate-y-[-100%] opacity-0",
|
|
39
|
+
enterActive: "transition-all duration-300 ease-out",
|
|
40
|
+
enterTo: "translate-y-[0%] opacity-100",
|
|
41
|
+
leaveFrom: "translate-y-[0%] opacity-100",
|
|
42
|
+
leaveActive: "transition-all duration-200 ease-in",
|
|
43
|
+
leaveTo: "translate-y-[-100%] opacity-0"
|
|
44
|
+
},
|
|
45
|
+
scale: {
|
|
46
|
+
enterFrom: "scale-95 opacity-0",
|
|
47
|
+
enterActive: "transition-all duration-200 ease-out",
|
|
48
|
+
enterTo: "scale-100 opacity-100",
|
|
49
|
+
leaveFrom: "scale-100 opacity-100",
|
|
50
|
+
leaveActive: "transition-all duration-150 ease-in",
|
|
51
|
+
leaveTo: "scale-95 opacity-0"
|
|
52
|
+
},
|
|
53
|
+
"scale-down": {
|
|
54
|
+
enterFrom: "scale-105 opacity-0",
|
|
55
|
+
enterActive: "transition-all duration-200 ease-out",
|
|
56
|
+
enterTo: "scale-100 opacity-100",
|
|
57
|
+
leaveFrom: "scale-100 opacity-100",
|
|
58
|
+
leaveActive: "transition-all duration-150 ease-in",
|
|
59
|
+
leaveTo: "scale-105 opacity-0"
|
|
60
|
+
},
|
|
61
|
+
bounce: {
|
|
62
|
+
enterFrom: "scale-0 opacity-0",
|
|
63
|
+
enterActive: "transition-all duration-500 ease-out",
|
|
64
|
+
enterTo: "scale-100 opacity-100",
|
|
65
|
+
leaveFrom: "scale-100 opacity-100",
|
|
66
|
+
leaveActive: "transition-all duration-200 ease-in",
|
|
67
|
+
leaveTo: "scale-0 opacity-0"
|
|
68
|
+
},
|
|
69
|
+
zoom: {
|
|
70
|
+
enterFrom: "scale-0 opacity-0",
|
|
71
|
+
enterActive: "transition-all duration-300 ease-out",
|
|
72
|
+
enterTo: "scale-100 opacity-100",
|
|
73
|
+
leaveFrom: "scale-100 opacity-100",
|
|
74
|
+
leaveActive: "transition-all duration-200 ease-in",
|
|
75
|
+
leaveTo: "scale-0 opacity-0"
|
|
76
|
+
},
|
|
77
|
+
flip: {
|
|
78
|
+
enterFrom: "rotate-[90deg] opacity-0",
|
|
79
|
+
enterActive: "transition-all duration-400 ease-out",
|
|
80
|
+
enterTo: "rotate-[0deg] opacity-100",
|
|
81
|
+
leaveFrom: "rotate-[0deg] opacity-100",
|
|
82
|
+
leaveActive: "transition-all duration-300 ease-in",
|
|
83
|
+
leaveTo: "rotate-[90deg] opacity-0"
|
|
84
|
+
}
|
|
84
85
|
};
|
|
85
|
-
function
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
}, C;
|
|
86
|
+
function r(e, r) {
|
|
87
|
+
let { preset: i, show: a, mode: o = "default", duration: s, appear: c = !1, css: l = !0, name: u, enterFrom: d, enterActive: f, enterTo: p, leaveFrom: m, leaveActive: h, leaveTo: g, onBeforeEnter: _, onEnter: v, onAfterEnter: y, onEnterCancelled: b, onBeforeLeave: x, onLeave: S, onAfterLeave: C, onLeaveCancelled: w } = e, T;
|
|
88
|
+
i && n[i] ? (T = { ...n[i] }, d && (T.enterFrom = d), f && (T.enterActive = f), p && (T.enterTo = p), m && (T.leaveFrom = m), h && (T.leaveActive = h), g && (T.leaveTo = g)) : T = {
|
|
89
|
+
enterFrom: d,
|
|
90
|
+
enterActive: f,
|
|
91
|
+
enterTo: p,
|
|
92
|
+
leaveFrom: m,
|
|
93
|
+
leaveActive: h,
|
|
94
|
+
leaveTo: g
|
|
95
|
+
};
|
|
96
|
+
let E = a && typeof r == "function" ? r() : r, D = u || (i ? `transition-${i}` : "transition"), O = t(a ? E : [], D);
|
|
97
|
+
return O._transition = {
|
|
98
|
+
name: D,
|
|
99
|
+
classes: T,
|
|
100
|
+
mode: o,
|
|
101
|
+
duration: s,
|
|
102
|
+
appear: c,
|
|
103
|
+
css: l,
|
|
104
|
+
state: a ? "visible" : "hidden",
|
|
105
|
+
hooks: {
|
|
106
|
+
onBeforeEnter: _,
|
|
107
|
+
onEnter: v,
|
|
108
|
+
onAfterEnter: y,
|
|
109
|
+
onEnterCancelled: b,
|
|
110
|
+
onBeforeLeave: x,
|
|
111
|
+
onLeave: S,
|
|
112
|
+
onAfterLeave: C,
|
|
113
|
+
onLeaveCancelled: w
|
|
114
|
+
}
|
|
115
|
+
}, O;
|
|
116
116
|
}
|
|
117
|
-
function
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
}
|
|
176
|
-
};
|
|
117
|
+
function i(e, t) {
|
|
118
|
+
let { tag: r = "div", moveClass: i = "transition-transform duration-300", preset: a, show: o = !0, mode: s = "default", duration: c, appear: l = !1, css: u = !0, name: d, class: f, style: p, enterFrom: m, enterActive: h, enterTo: g, leaveFrom: _, leaveActive: v, leaveTo: y, onBeforeEnter: b, onEnter: x, onAfterEnter: S, onEnterCancelled: C, onBeforeLeave: w, onLeave: T, onAfterLeave: E, onLeaveCancelled: D } = e, O;
|
|
119
|
+
a && n[a] ? (O = { ...n[a] }, m && (O.enterFrom = m), h && (O.enterActive = h), g && (O.enterTo = g), _ && (O.leaveFrom = _), v && (O.leaveActive = v), y && (O.leaveTo = y)) : O = {
|
|
120
|
+
enterFrom: m,
|
|
121
|
+
enterActive: h,
|
|
122
|
+
enterTo: g,
|
|
123
|
+
leaveFrom: _,
|
|
124
|
+
leaveActive: v,
|
|
125
|
+
leaveTo: y
|
|
126
|
+
};
|
|
127
|
+
let k = d || (a ? `transition-group-${a}` : "transition-group"), A = [];
|
|
128
|
+
for (let e of o ? t : []) if (e && typeof e == "object" && e.tag === "#anchor") {
|
|
129
|
+
let t = Array.isArray(e.children) ? e.children : [];
|
|
130
|
+
for (let n of t) if (n && typeof n == "object") {
|
|
131
|
+
let t = {
|
|
132
|
+
...n,
|
|
133
|
+
key: e.key || n.key,
|
|
134
|
+
props: {
|
|
135
|
+
...n.props,
|
|
136
|
+
_anchorKey: e.key
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
A.push(t);
|
|
140
|
+
} else A.push(n);
|
|
141
|
+
} else A.push(e);
|
|
142
|
+
let j = (() => {
|
|
143
|
+
if (p) return typeof p == "string" ? p : Object.entries(p).map(([e, t]) => `${e}: ${t}`).join("; ");
|
|
144
|
+
})();
|
|
145
|
+
return {
|
|
146
|
+
tag: r,
|
|
147
|
+
children: A,
|
|
148
|
+
key: k,
|
|
149
|
+
props: {
|
|
150
|
+
attrs: {
|
|
151
|
+
...f ? { class: f } : {},
|
|
152
|
+
...j ? { style: j } : {}
|
|
153
|
+
},
|
|
154
|
+
_transitionGroup: {
|
|
155
|
+
name: k,
|
|
156
|
+
classes: O,
|
|
157
|
+
moveClass: i,
|
|
158
|
+
mode: s,
|
|
159
|
+
duration: c,
|
|
160
|
+
appear: l,
|
|
161
|
+
css: u,
|
|
162
|
+
hooks: {
|
|
163
|
+
onBeforeEnter: b,
|
|
164
|
+
onEnter: x,
|
|
165
|
+
onAfterEnter: S,
|
|
166
|
+
onEnterCancelled: C,
|
|
167
|
+
onBeforeLeave: w,
|
|
168
|
+
onLeave: T,
|
|
169
|
+
onAfterLeave: E,
|
|
170
|
+
onLeaveCancelled: D
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
};
|
|
177
175
|
}
|
|
178
|
-
function
|
|
179
|
-
|
|
176
|
+
function a(e) {
|
|
177
|
+
return { ...e };
|
|
180
178
|
}
|
|
181
|
-
var
|
|
182
|
-
function
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
return v;
|
|
179
|
+
var o = null;
|
|
180
|
+
function s() {
|
|
181
|
+
if (!o) {
|
|
182
|
+
if (typeof CSSStyleSheet > "u") return o = {
|
|
183
|
+
cssRules: [],
|
|
184
|
+
replaceSync: () => {},
|
|
185
|
+
toString: () => ""
|
|
186
|
+
}, o;
|
|
187
|
+
let t = [];
|
|
188
|
+
Object.values(n).forEach((e) => {
|
|
189
|
+
e.enterFrom && t.push(e.enterFrom), e.enterActive && t.push(e.enterActive), e.enterTo && t.push(e.enterTo), e.leaveFrom && t.push(e.leaveFrom), e.leaveActive && t.push(e.leaveActive), e.leaveTo && t.push(e.leaveTo);
|
|
190
|
+
});
|
|
191
|
+
let r = e(`<div class="${t.join(" ")}"></div>`);
|
|
192
|
+
try {
|
|
193
|
+
o = new CSSStyleSheet(), o.replaceSync(r);
|
|
194
|
+
} catch {
|
|
195
|
+
o = {
|
|
196
|
+
cssRules: [],
|
|
197
|
+
replaceSync: () => {},
|
|
198
|
+
toString: () => r || ""
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return o;
|
|
208
203
|
}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
J as TransitionGroup,
|
|
212
|
-
V as createTransitionPreset,
|
|
213
|
-
q as getTransitionStyleSheet,
|
|
214
|
-
F as transitionPresets
|
|
215
|
-
};
|
|
204
|
+
//#endregion
|
|
205
|
+
export { r as Transition, i as TransitionGroup, a as createTransitionPreset, s as getTransitionStyleSheet, n as transitionPresets };
|
|
216
206
|
|
|
217
207
|
//# sourceMappingURL=custom-elements-runtime.transitions.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-elements-runtime.transitions.es.js","names":[],"sources":["../src/lib/transitions.ts"],"sourcesContent":["/**\n * Transitions module (top-level). This file provides the public Transition\n * and TransitionGroup APIs. It is an explicit entry used by the build so\n * consumers can import transitions separately: `.../transitions`.\n */\n/**\n * Transitions Module\n * Vue-like transition system integrated with JIT CSS\n * Provides Transition and TransitionGroup components for enter/leave animations\n */\n\nimport { anchorBlock } from './directives';\nimport type { VNode } from './runtime/types';\nimport { processJITCSS } from './runtime/render-bridge';\n\n/* --- Types --- */\n\n/**\n * Transition class names for different animation phases\n * All values should be JIT CSS utility classes\n */\nexport interface TransitionClasses {\n /** Classes applied at the start of enter transition */\n enterFrom?: string;\n /** Classes applied during entire enter transition */\n enterActive?: string;\n /** Classes applied at the end of enter transition */\n enterTo?: string;\n /** Classes applied at the start of leave transition */\n leaveFrom?: string;\n /** Classes applied during entire leave transition */\n leaveActive?: string;\n /** Classes applied at the end of leave transition */\n leaveTo?: string;\n}\n\n/**\n * Lifecycle hooks for transition events\n */\nexport interface TransitionHooks {\n /** Called before enter transition starts */\n onBeforeEnter?: (el: HTMLElement) => void;\n /** Called during enter transition (with done callback for manual control) */\n onEnter?: (el: HTMLElement, done: () => void) => void;\n /** Called after enter transition completes */\n onAfterEnter?: (el: HTMLElement) => void;\n /** Called if enter transition is cancelled */\n onEnterCancelled?: (el: HTMLElement) => void;\n /** Called before leave transition starts */\n onBeforeLeave?: (el: HTMLElement) => void;\n /** Called during leave transition (with done callback for manual control) */\n onLeave?: (el: HTMLElement, done: () => void) => void;\n /** Called after leave transition completes */\n onAfterLeave?: (el: HTMLElement) => void;\n /** Called if leave transition is cancelled */\n onLeaveCancelled?: (el: HTMLElement) => void;\n}\n\n/**\n * Options for Transition component\n */\nexport interface TransitionOptions extends TransitionClasses, TransitionHooks {\n /** Preset name (fade, slide-right, scale, etc.) */\n preset?: keyof typeof transitionPresets;\n /** Whether to show the content */\n show: boolean;\n /** Transition mode: default, out-in (leave before enter), in-out (enter before leave) */\n mode?: 'default' | 'out-in' | 'in-out';\n /** Custom duration override (ms) */\n duration?: number | { enter: number; leave: number };\n /** Whether to apply transition on initial render */\n appear?: boolean;\n /** Whether to use CSS transitions (true) or JS-only hooks (false) */\n css?: boolean;\n /** Optional name for debugging */\n name?: string;\n}\n\n/**\n * Options for TransitionGroup component\n */\nexport interface TransitionGroupOptions extends Omit<\n TransitionOptions,\n 'show'\n> {\n /** HTML tag for the wrapper element */\n tag?: string;\n /** Class applied during move transitions (when items reorder) */\n moveClass?: string;\n /** Whether to show the group (defaults to true for TransitionGroup) */\n show?: boolean;\n /** CSS classes to apply to the wrapper element (e.g., 'flex gap-4' or 'grid grid-cols-3') */\n class?: string;\n /** Inline styles to apply to the wrapper element */\n style?: string | Record<string, string>;\n}\n\n/* --- Transition Presets --- */\n\n/**\n * Pre-defined transition presets using JIT CSS classes\n * Users can reference these by name or define custom classes\n */\nexport const transitionPresets = {\n /** Simple fade in/out */\n fade: {\n enterFrom: 'opacity-0',\n enterActive: 'transition-opacity duration-300 ease-out',\n enterTo: 'opacity-100',\n leaveFrom: 'opacity-100',\n leaveActive: 'transition-opacity duration-200 ease-in',\n leaveTo: 'opacity-0',\n },\n\n /** Slide in from right */\n 'slide-right': {\n enterFrom: 'translate-x-[100%] opacity-0',\n enterActive: 'transition-all duration-300 ease-out',\n enterTo: 'translate-x-[0%] opacity-100',\n leaveFrom: 'translate-x-[0%] opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'translate-x-[100%] opacity-0',\n },\n\n /** Slide in from left */\n 'slide-left': {\n enterFrom: 'translate-x-[-100%] opacity-0',\n enterActive: 'transition-all duration-300 ease-out',\n enterTo: 'translate-x-[0%] opacity-100',\n leaveFrom: 'translate-x-[0%] opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'translate-x-[-100%] opacity-0',\n },\n\n /** Slide up from bottom */\n 'slide-up': {\n enterFrom: 'translate-y-[100%] opacity-0',\n enterActive: 'transition-all duration-300 ease-out',\n enterTo: 'translate-y-[0%] opacity-100',\n leaveFrom: 'translate-y-[0%] opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'translate-y-[100%] opacity-0',\n },\n\n /** Slide down from top */\n 'slide-down': {\n enterFrom: 'translate-y-[-100%] opacity-0',\n enterActive: 'transition-all duration-300 ease-out',\n enterTo: 'translate-y-[0%] opacity-100',\n leaveFrom: 'translate-y-[0%] opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'translate-y-[-100%] opacity-0',\n },\n\n /** Scale up from center */\n scale: {\n enterFrom: 'scale-95 opacity-0',\n enterActive: 'transition-all duration-200 ease-out',\n enterTo: 'scale-100 opacity-100',\n leaveFrom: 'scale-100 opacity-100',\n leaveActive: 'transition-all duration-150 ease-in',\n leaveTo: 'scale-95 opacity-0',\n },\n\n /** Scale down to center */\n 'scale-down': {\n enterFrom: 'scale-105 opacity-0',\n enterActive: 'transition-all duration-200 ease-out',\n enterTo: 'scale-100 opacity-100',\n leaveFrom: 'scale-100 opacity-100',\n leaveActive: 'transition-all duration-150 ease-in',\n leaveTo: 'scale-105 opacity-0',\n },\n\n /** Bounce effect */\n bounce: {\n enterFrom: 'scale-0 opacity-0',\n enterActive: 'transition-all duration-500 ease-out',\n enterTo: 'scale-100 opacity-100',\n leaveFrom: 'scale-100 opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'scale-0 opacity-0',\n },\n\n /** Zoom and fade */\n zoom: {\n enterFrom: 'scale-0 opacity-0',\n enterActive: 'transition-all duration-300 ease-out',\n enterTo: 'scale-100 opacity-100',\n leaveFrom: 'scale-100 opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'scale-0 opacity-0',\n },\n\n /** Flip in */\n flip: {\n enterFrom: 'rotate-[90deg] opacity-0',\n enterActive: 'transition-all duration-400 ease-out',\n enterTo: 'rotate-[0deg] opacity-100',\n leaveFrom: 'rotate-[0deg] opacity-100',\n leaveActive: 'transition-all duration-300 ease-in',\n leaveTo: 'rotate-[90deg] opacity-0',\n },\n} as const;\n\n/* --- Core Functions --- */\n\n/**\n * Transition component - wraps content with enter/leave animations\n *\n * @example\n * ```ts\n * // Using a preset\n * ${Transition({ preset: 'fade', show: isVisible.value }, html`<div>Content</div>`)}\n *\n * // Using custom JIT classes\n * ${Transition({\n * show: isVisible.value,\n * enterFrom: 'opacity-0 scale-95',\n * enterActive: 'transition-all duration-300',\n * enterTo: 'opacity-100 scale-100',\n * leaveFrom: 'opacity-100 scale-100',\n * leaveActive: 'transition-all duration-200',\n * leaveTo: 'opacity-0 scale-95'\n * }, html`<div>Content</div>`)}\n *\n * // With lifecycle hooks\n * ${Transition({\n * preset: 'slide-right',\n * show: isVisible.value,\n * onAfterEnter: (el) => console.log('Entered!'),\n * onAfterLeave: (el) => console.log('Left!')\n * }, html`<div>Content</div>`)}\n *\n * // Lazy factory — only evaluated when show is true (avoids constructing\n * // expensive VNode trees when the content is hidden)\n * ${Transition({ show: isVisible.value }, () => html`<div>Expensive content</div>`)}\n * ```\n */\nexport function Transition(\n options: TransitionOptions,\n content: VNode | VNode[] | (() => VNode | VNode[]),\n): VNode {\n const {\n preset,\n show,\n mode = 'default',\n duration,\n appear = false,\n css = true,\n name,\n enterFrom,\n enterActive,\n enterTo,\n leaveFrom,\n leaveActive,\n leaveTo,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n } = options;\n\n // Resolve classes from preset or explicit values\n let transitionClasses: TransitionClasses;\n if (preset && transitionPresets[preset]) {\n transitionClasses = { ...transitionPresets[preset] };\n // Allow overriding preset classes\n if (enterFrom) transitionClasses.enterFrom = enterFrom;\n if (enterActive) transitionClasses.enterActive = enterActive;\n if (enterTo) transitionClasses.enterTo = enterTo;\n if (leaveFrom) transitionClasses.leaveFrom = leaveFrom;\n if (leaveActive) transitionClasses.leaveActive = leaveActive;\n if (leaveTo) transitionClasses.leaveTo = leaveTo;\n } else {\n transitionClasses = {\n enterFrom,\n enterActive,\n enterTo,\n leaveFrom,\n leaveActive,\n leaveTo,\n };\n }\n\n // Resolve content: only call the factory when show is true so that expensive\n // VNode trees (e.g. those that trigger calender builds or heavy computeds)\n // are never constructed while the transition is hidden. Leave animations\n // operate on existing DOM nodes and do not require the content VNode.\n const resolvedContent: VNode | VNode[] =\n show && typeof content === 'function'\n ? content()\n : (content as VNode | VNode[]);\n\n // Create anchor block with transition metadata\n const transitionKey =\n name || (preset ? `transition-${preset}` : 'transition');\n const transitionVNode = anchorBlock(\n show ? resolvedContent : [],\n transitionKey,\n );\n\n // Attach metadata for VDOM to consume during patching\n (transitionVNode as VNode & { _transition?: unknown })._transition = {\n name: transitionKey,\n classes: transitionClasses,\n mode,\n duration,\n appear,\n css,\n state: show ? 'visible' : 'hidden',\n hooks: {\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n },\n };\n\n return transitionVNode;\n}\n\n/**\n * TransitionGroup component - animates lists with enter/leave/move transitions\n *\n * @example\n * ```ts\n * // Basic usage\n * ${TransitionGroup({\n * preset: 'slide-right',\n * tag: 'ul',\n * moveClass: 'transition-transform duration-300'\n * }, each(items.value, (item) => html`\n * <li key=\"${item.id}\">${item.text}</li>\n * `))}\n *\n * // With flex layout\n * ${TransitionGroup({\n * preset: 'fade',\n * class: 'flex gap-4 flex-wrap'\n * }, each(items.value, (item) => html`\n * <div key=\"${item.id}\" class=\"shrink-0\">${item.text}</div>\n * `))}\n *\n * // With grid layout\n * ${TransitionGroup({\n * preset: 'scale',\n * class: 'grid grid-cols-3 gap-4'\n * }, each(items.value, (item) => html`\n * <div key=\"${item.id}\">${item.text}</div>\n * `))}\n * ```\n */\nexport function TransitionGroup(\n options: TransitionGroupOptions,\n children: VNode[],\n): VNode {\n const {\n tag = 'div',\n moveClass = 'transition-transform duration-300',\n preset,\n show = true,\n mode = 'default',\n duration,\n appear = false,\n css = true,\n name,\n class: className,\n style,\n enterFrom,\n enterActive,\n enterTo,\n leaveFrom,\n leaveActive,\n leaveTo,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n } = options;\n\n // Resolve classes from preset or explicit values\n let transitionClasses: TransitionClasses;\n if (preset && transitionPresets[preset]) {\n transitionClasses = { ...transitionPresets[preset] };\n // Allow overriding preset classes\n if (enterFrom) transitionClasses.enterFrom = enterFrom;\n if (enterActive) transitionClasses.enterActive = enterActive;\n if (enterTo) transitionClasses.enterTo = enterTo;\n if (leaveFrom) transitionClasses.leaveFrom = leaveFrom;\n if (leaveActive) transitionClasses.leaveActive = leaveActive;\n if (leaveTo) transitionClasses.leaveTo = leaveTo;\n } else {\n transitionClasses = {\n enterFrom,\n enterActive,\n enterTo,\n leaveFrom,\n leaveActive,\n leaveTo,\n };\n }\n\n // Create wrapper element with transition group metadata\n const groupKey =\n name || (preset ? `transition-group-${preset}` : 'transition-group');\n\n // Flatten anchor block children to enable proper keyed diffing\n // When each() is used, it creates anchor blocks. We need to extract the actual elements\n // and give them keys from their anchor blocks for proper reordering\n const flattenedChildren: VNode[] = [];\n for (const child of show ? children : []) {\n if (child && typeof child === 'object' && child.tag === '#anchor') {\n // Extract children from anchor block\n const anchorChildren = Array.isArray(child.children)\n ? child.children\n : [];\n for (const anchorChild of anchorChildren) {\n if (anchorChild && typeof anchorChild === 'object') {\n // Use anchor block's key for the child element\n const keyedChild = {\n ...anchorChild,\n key: child.key || anchorChild.key,\n props: {\n ...anchorChild.props,\n _anchorKey: child.key, // Preserve original anchor key\n },\n };\n flattenedChildren.push(keyedChild);\n } else {\n flattenedChildren.push(anchorChild);\n }\n }\n } else {\n flattenedChildren.push(child);\n }\n }\n\n // Serialize style object to a CSS string for the attrs record so it matches\n // the expected primitive attribute value types.\n const styleAttr = (() => {\n if (!style) return undefined;\n if (typeof style === 'string') return style;\n return Object.entries(style)\n .map(([k, v]) => `${k}: ${v}`)\n .join('; ');\n })();\n\n return {\n tag,\n children: flattenedChildren,\n key: groupKey,\n props: {\n attrs: {\n ...(className ? { class: className } : {}),\n ...(styleAttr ? { style: styleAttr } : {}),\n },\n _transitionGroup: {\n name: groupKey,\n classes: transitionClasses,\n moveClass,\n mode,\n duration,\n appear,\n css,\n hooks: {\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n },\n },\n },\n };\n}\n\n/**\n * Helper to create custom transition presets\n *\n * @example\n * ```ts\n * const customFade = createTransitionPreset({\n * enterFrom: 'opacity-0',\n * enterActive: 'transition-opacity duration-500 ease-out',\n * enterTo: 'opacity-100',\n * leaveFrom: 'opacity-100',\n * leaveActive: 'transition-opacity duration-300 ease-in',\n * leaveTo: 'opacity-0'\n * });\n *\n * ${Transition({ ...customFade, show: visible.value }, content)}\n * ```\n */\nexport function createTransitionPreset(\n classes: TransitionClasses,\n): TransitionClasses {\n return { ...classes };\n}\n\n/**\n * Pre-generate CSS for all transition preset classes\n * This ensures the JIT CSS system has the styles ready when transitions are used\n */\nlet transitionStyleSheet: CSSStyleSheet | null = null;\n\n/**\n * Get the global transition stylesheet (creates it if needed)\n */\nexport function getTransitionStyleSheet(): CSSStyleSheet {\n if (!transitionStyleSheet) {\n // If constructable stylesheets aren't available (SSR / old browsers),\n // return a no-op stub to avoid throwing during import or server render.\n if (typeof CSSStyleSheet === 'undefined') {\n transitionStyleSheet = {\n cssRules: [],\n replaceSync: () => {},\n toString: () => '',\n } as unknown as CSSStyleSheet;\n return transitionStyleSheet;\n }\n\n const allClasses: string[] = [];\n\n // Collect all classes from presets\n Object.values(transitionPresets).forEach((preset) => {\n if (preset.enterFrom) allClasses.push(preset.enterFrom);\n if (preset.enterActive) allClasses.push(preset.enterActive);\n if (preset.enterTo) allClasses.push(preset.enterTo);\n if (preset.leaveFrom) allClasses.push(preset.leaveFrom);\n if (preset.leaveActive) allClasses.push(preset.leaveActive);\n if (preset.leaveTo) allClasses.push(preset.leaveTo);\n });\n\n // Create a fake HTML string with all transition classes\n const fakeHtml = `<div class=\"${allClasses.join(' ')}\"></div>`;\n\n // Trigger JIT CSS generation (no-op if JIT CSS engine is not loaded)\n const generatedCSS = processJITCSS(fakeHtml);\n\n // Create stylesheet\n try {\n transitionStyleSheet = new CSSStyleSheet();\n transitionStyleSheet.replaceSync(generatedCSS);\n } catch {\n // If creating a constructable stylesheet fails for any reason,\n // fallback to a stub to avoid breaking SSR or older environments.\n transitionStyleSheet = {\n cssRules: [],\n replaceSync: () => {},\n toString: () => generatedCSS || '',\n } as unknown as CSSStyleSheet;\n }\n }\n\n return transitionStyleSheet;\n}\n\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"custom-elements-runtime.transitions.es.js","names":[],"sources":["../src/lib/transitions.ts"],"sourcesContent":["/**\n * Transitions module (top-level). This file provides the public Transition\n * and TransitionGroup APIs. It is an explicit entry used by the build so\n * consumers can import transitions separately: `.../transitions`.\n */\n/**\n * Transitions Module\n * Vue-like transition system integrated with JIT CSS\n * Provides Transition and TransitionGroup components for enter/leave animations\n */\n\nimport { anchorBlock } from './directives';\nimport type { VNode } from './runtime/types';\nimport { processJITCSS } from './runtime/render-bridge';\n\n/* --- Types --- */\n\n/**\n * Transition class names for different animation phases\n * All values should be JIT CSS utility classes\n */\nexport interface TransitionClasses {\n /** Classes applied at the start of enter transition */\n enterFrom?: string;\n /** Classes applied during entire enter transition */\n enterActive?: string;\n /** Classes applied at the end of enter transition */\n enterTo?: string;\n /** Classes applied at the start of leave transition */\n leaveFrom?: string;\n /** Classes applied during entire leave transition */\n leaveActive?: string;\n /** Classes applied at the end of leave transition */\n leaveTo?: string;\n}\n\n/**\n * Lifecycle hooks for transition events\n */\nexport interface TransitionHooks {\n /** Called before enter transition starts */\n onBeforeEnter?: (el: HTMLElement) => void;\n /** Called during enter transition (with done callback for manual control) */\n onEnter?: (el: HTMLElement, done: () => void) => void;\n /** Called after enter transition completes */\n onAfterEnter?: (el: HTMLElement) => void;\n /** Called if enter transition is cancelled */\n onEnterCancelled?: (el: HTMLElement) => void;\n /** Called before leave transition starts */\n onBeforeLeave?: (el: HTMLElement) => void;\n /** Called during leave transition (with done callback for manual control) */\n onLeave?: (el: HTMLElement, done: () => void) => void;\n /** Called after leave transition completes */\n onAfterLeave?: (el: HTMLElement) => void;\n /** Called if leave transition is cancelled */\n onLeaveCancelled?: (el: HTMLElement) => void;\n}\n\n/**\n * Options for Transition component\n */\nexport interface TransitionOptions extends TransitionClasses, TransitionHooks {\n /** Preset name (fade, slide-right, scale, etc.) */\n preset?: keyof typeof transitionPresets;\n /** Whether to show the content */\n show: boolean;\n /** Transition mode: default, out-in (leave before enter), in-out (enter before leave) */\n mode?: 'default' | 'out-in' | 'in-out';\n /** Custom duration override (ms) */\n duration?: number | { enter: number; leave: number };\n /** Whether to apply transition on initial render */\n appear?: boolean;\n /** Whether to use CSS transitions (true) or JS-only hooks (false) */\n css?: boolean;\n /** Optional name for debugging */\n name?: string;\n}\n\n/**\n * Options for TransitionGroup component\n */\nexport interface TransitionGroupOptions extends Omit<\n TransitionOptions,\n 'show'\n> {\n /** HTML tag for the wrapper element */\n tag?: string;\n /** Class applied during move transitions (when items reorder) */\n moveClass?: string;\n /** Whether to show the group (defaults to true for TransitionGroup) */\n show?: boolean;\n /** CSS classes to apply to the wrapper element (e.g., 'flex gap-4' or 'grid grid-cols-3') */\n class?: string;\n /** Inline styles to apply to the wrapper element */\n style?: string | Record<string, string>;\n}\n\n/* --- Transition Presets --- */\n\n/**\n * Pre-defined transition presets using JIT CSS classes\n * Users can reference these by name or define custom classes\n */\nexport const transitionPresets = {\n /** Simple fade in/out */\n fade: {\n enterFrom: 'opacity-0',\n enterActive: 'transition-opacity duration-300 ease-out',\n enterTo: 'opacity-100',\n leaveFrom: 'opacity-100',\n leaveActive: 'transition-opacity duration-200 ease-in',\n leaveTo: 'opacity-0',\n },\n\n /** Slide in from right */\n 'slide-right': {\n enterFrom: 'translate-x-[100%] opacity-0',\n enterActive: 'transition-all duration-300 ease-out',\n enterTo: 'translate-x-[0%] opacity-100',\n leaveFrom: 'translate-x-[0%] opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'translate-x-[100%] opacity-0',\n },\n\n /** Slide in from left */\n 'slide-left': {\n enterFrom: 'translate-x-[-100%] opacity-0',\n enterActive: 'transition-all duration-300 ease-out',\n enterTo: 'translate-x-[0%] opacity-100',\n leaveFrom: 'translate-x-[0%] opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'translate-x-[-100%] opacity-0',\n },\n\n /** Slide up from bottom */\n 'slide-up': {\n enterFrom: 'translate-y-[100%] opacity-0',\n enterActive: 'transition-all duration-300 ease-out',\n enterTo: 'translate-y-[0%] opacity-100',\n leaveFrom: 'translate-y-[0%] opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'translate-y-[100%] opacity-0',\n },\n\n /** Slide down from top */\n 'slide-down': {\n enterFrom: 'translate-y-[-100%] opacity-0',\n enterActive: 'transition-all duration-300 ease-out',\n enterTo: 'translate-y-[0%] opacity-100',\n leaveFrom: 'translate-y-[0%] opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'translate-y-[-100%] opacity-0',\n },\n\n /** Scale up from center */\n scale: {\n enterFrom: 'scale-95 opacity-0',\n enterActive: 'transition-all duration-200 ease-out',\n enterTo: 'scale-100 opacity-100',\n leaveFrom: 'scale-100 opacity-100',\n leaveActive: 'transition-all duration-150 ease-in',\n leaveTo: 'scale-95 opacity-0',\n },\n\n /** Scale down to center */\n 'scale-down': {\n enterFrom: 'scale-105 opacity-0',\n enterActive: 'transition-all duration-200 ease-out',\n enterTo: 'scale-100 opacity-100',\n leaveFrom: 'scale-100 opacity-100',\n leaveActive: 'transition-all duration-150 ease-in',\n leaveTo: 'scale-105 opacity-0',\n },\n\n /** Bounce effect */\n bounce: {\n enterFrom: 'scale-0 opacity-0',\n enterActive: 'transition-all duration-500 ease-out',\n enterTo: 'scale-100 opacity-100',\n leaveFrom: 'scale-100 opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'scale-0 opacity-0',\n },\n\n /** Zoom and fade */\n zoom: {\n enterFrom: 'scale-0 opacity-0',\n enterActive: 'transition-all duration-300 ease-out',\n enterTo: 'scale-100 opacity-100',\n leaveFrom: 'scale-100 opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'scale-0 opacity-0',\n },\n\n /** Flip in */\n flip: {\n enterFrom: 'rotate-[90deg] opacity-0',\n enterActive: 'transition-all duration-400 ease-out',\n enterTo: 'rotate-[0deg] opacity-100',\n leaveFrom: 'rotate-[0deg] opacity-100',\n leaveActive: 'transition-all duration-300 ease-in',\n leaveTo: 'rotate-[90deg] opacity-0',\n },\n} as const;\n\n/* --- Core Functions --- */\n\n/**\n * Transition component - wraps content with enter/leave animations\n *\n * @example\n * ```ts\n * // Using a preset\n * ${Transition({ preset: 'fade', show: isVisible.value }, html`<div>Content</div>`)}\n *\n * // Using custom JIT classes\n * ${Transition({\n * show: isVisible.value,\n * enterFrom: 'opacity-0 scale-95',\n * enterActive: 'transition-all duration-300',\n * enterTo: 'opacity-100 scale-100',\n * leaveFrom: 'opacity-100 scale-100',\n * leaveActive: 'transition-all duration-200',\n * leaveTo: 'opacity-0 scale-95'\n * }, html`<div>Content</div>`)}\n *\n * // With lifecycle hooks\n * ${Transition({\n * preset: 'slide-right',\n * show: isVisible.value,\n * onAfterEnter: (el) => console.log('Entered!'),\n * onAfterLeave: (el) => console.log('Left!')\n * }, html`<div>Content</div>`)}\n *\n * // Lazy factory — only evaluated when show is true (avoids constructing\n * // expensive VNode trees when the content is hidden)\n * ${Transition({ show: isVisible.value }, () => html`<div>Expensive content</div>`)}\n * ```\n */\nexport function Transition(\n options: TransitionOptions,\n content: VNode | VNode[] | (() => VNode | VNode[]),\n): VNode {\n const {\n preset,\n show,\n mode = 'default',\n duration,\n appear = false,\n css = true,\n name,\n enterFrom,\n enterActive,\n enterTo,\n leaveFrom,\n leaveActive,\n leaveTo,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n } = options;\n\n // Resolve classes from preset or explicit values\n let transitionClasses: TransitionClasses;\n if (preset && transitionPresets[preset]) {\n transitionClasses = { ...transitionPresets[preset] };\n // Allow overriding preset classes\n if (enterFrom) transitionClasses.enterFrom = enterFrom;\n if (enterActive) transitionClasses.enterActive = enterActive;\n if (enterTo) transitionClasses.enterTo = enterTo;\n if (leaveFrom) transitionClasses.leaveFrom = leaveFrom;\n if (leaveActive) transitionClasses.leaveActive = leaveActive;\n if (leaveTo) transitionClasses.leaveTo = leaveTo;\n } else {\n transitionClasses = {\n enterFrom,\n enterActive,\n enterTo,\n leaveFrom,\n leaveActive,\n leaveTo,\n };\n }\n\n // Resolve content: only call the factory when show is true so that expensive\n // VNode trees (e.g. those that trigger calender builds or heavy computeds)\n // are never constructed while the transition is hidden. Leave animations\n // operate on existing DOM nodes and do not require the content VNode.\n const resolvedContent: VNode | VNode[] =\n show && typeof content === 'function'\n ? content()\n : (content as VNode | VNode[]);\n\n // Create anchor block with transition metadata\n const transitionKey =\n name || (preset ? `transition-${preset}` : 'transition');\n const transitionVNode = anchorBlock(\n show ? resolvedContent : [],\n transitionKey,\n );\n\n // Attach metadata for VDOM to consume during patching\n (transitionVNode as VNode & { _transition?: unknown })._transition = {\n name: transitionKey,\n classes: transitionClasses,\n mode,\n duration,\n appear,\n css,\n state: show ? 'visible' : 'hidden',\n hooks: {\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n },\n };\n\n return transitionVNode;\n}\n\n/**\n * TransitionGroup component - animates lists with enter/leave/move transitions\n *\n * @example\n * ```ts\n * // Basic usage\n * ${TransitionGroup({\n * preset: 'slide-right',\n * tag: 'ul',\n * moveClass: 'transition-transform duration-300'\n * }, each(items.value, (item) => html`\n * <li key=\"${item.id}\">${item.text}</li>\n * `))}\n *\n * // With flex layout\n * ${TransitionGroup({\n * preset: 'fade',\n * class: 'flex gap-4 flex-wrap'\n * }, each(items.value, (item) => html`\n * <div key=\"${item.id}\" class=\"shrink-0\">${item.text}</div>\n * `))}\n *\n * // With grid layout\n * ${TransitionGroup({\n * preset: 'scale',\n * class: 'grid grid-cols-3 gap-4'\n * }, each(items.value, (item) => html`\n * <div key=\"${item.id}\">${item.text}</div>\n * `))}\n * ```\n */\nexport function TransitionGroup(\n options: TransitionGroupOptions,\n children: VNode[],\n): VNode {\n const {\n tag = 'div',\n moveClass = 'transition-transform duration-300',\n preset,\n show = true,\n mode = 'default',\n duration,\n appear = false,\n css = true,\n name,\n class: className,\n style,\n enterFrom,\n enterActive,\n enterTo,\n leaveFrom,\n leaveActive,\n leaveTo,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n } = options;\n\n // Resolve classes from preset or explicit values\n let transitionClasses: TransitionClasses;\n if (preset && transitionPresets[preset]) {\n transitionClasses = { ...transitionPresets[preset] };\n // Allow overriding preset classes\n if (enterFrom) transitionClasses.enterFrom = enterFrom;\n if (enterActive) transitionClasses.enterActive = enterActive;\n if (enterTo) transitionClasses.enterTo = enterTo;\n if (leaveFrom) transitionClasses.leaveFrom = leaveFrom;\n if (leaveActive) transitionClasses.leaveActive = leaveActive;\n if (leaveTo) transitionClasses.leaveTo = leaveTo;\n } else {\n transitionClasses = {\n enterFrom,\n enterActive,\n enterTo,\n leaveFrom,\n leaveActive,\n leaveTo,\n };\n }\n\n // Create wrapper element with transition group metadata\n const groupKey =\n name || (preset ? `transition-group-${preset}` : 'transition-group');\n\n // Flatten anchor block children to enable proper keyed diffing\n // When each() is used, it creates anchor blocks. We need to extract the actual elements\n // and give them keys from their anchor blocks for proper reordering\n const flattenedChildren: VNode[] = [];\n for (const child of show ? children : []) {\n if (child && typeof child === 'object' && child.tag === '#anchor') {\n // Extract children from anchor block\n const anchorChildren = Array.isArray(child.children)\n ? child.children\n : [];\n for (const anchorChild of anchorChildren) {\n if (anchorChild && typeof anchorChild === 'object') {\n // Use anchor block's key for the child element\n const keyedChild = {\n ...anchorChild,\n key: child.key || anchorChild.key,\n props: {\n ...anchorChild.props,\n _anchorKey: child.key, // Preserve original anchor key\n },\n };\n flattenedChildren.push(keyedChild);\n } else {\n flattenedChildren.push(anchorChild);\n }\n }\n } else {\n flattenedChildren.push(child);\n }\n }\n\n // Serialize style object to a CSS string for the attrs record so it matches\n // the expected primitive attribute value types.\n const styleAttr = (() => {\n if (!style) return undefined;\n if (typeof style === 'string') return style;\n return Object.entries(style)\n .map(([k, v]) => `${k}: ${v}`)\n .join('; ');\n })();\n\n return {\n tag,\n children: flattenedChildren,\n key: groupKey,\n props: {\n attrs: {\n ...(className ? { class: className } : {}),\n ...(styleAttr ? { style: styleAttr } : {}),\n },\n _transitionGroup: {\n name: groupKey,\n classes: transitionClasses,\n moveClass,\n mode,\n duration,\n appear,\n css,\n hooks: {\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n },\n },\n },\n };\n}\n\n/**\n * Helper to create custom transition presets\n *\n * @example\n * ```ts\n * const customFade = createTransitionPreset({\n * enterFrom: 'opacity-0',\n * enterActive: 'transition-opacity duration-500 ease-out',\n * enterTo: 'opacity-100',\n * leaveFrom: 'opacity-100',\n * leaveActive: 'transition-opacity duration-300 ease-in',\n * leaveTo: 'opacity-0'\n * });\n *\n * ${Transition({ ...customFade, show: visible.value }, content)}\n * ```\n */\nexport function createTransitionPreset(\n classes: TransitionClasses,\n): TransitionClasses {\n return { ...classes };\n}\n\n/**\n * Pre-generate CSS for all transition preset classes\n * This ensures the JIT CSS system has the styles ready when transitions are used\n */\nlet transitionStyleSheet: CSSStyleSheet | null = null;\n\n/**\n * Get the global transition stylesheet (creates it if needed)\n */\nexport function getTransitionStyleSheet(): CSSStyleSheet {\n if (!transitionStyleSheet) {\n // If constructable stylesheets aren't available (SSR / old browsers),\n // return a no-op stub to avoid throwing during import or server render.\n if (typeof CSSStyleSheet === 'undefined') {\n transitionStyleSheet = {\n cssRules: [],\n replaceSync: () => {},\n toString: () => '',\n } as unknown as CSSStyleSheet;\n return transitionStyleSheet;\n }\n\n const allClasses: string[] = [];\n\n // Collect all classes from presets\n Object.values(transitionPresets).forEach((preset) => {\n if (preset.enterFrom) allClasses.push(preset.enterFrom);\n if (preset.enterActive) allClasses.push(preset.enterActive);\n if (preset.enterTo) allClasses.push(preset.enterTo);\n if (preset.leaveFrom) allClasses.push(preset.leaveFrom);\n if (preset.leaveActive) allClasses.push(preset.leaveActive);\n if (preset.leaveTo) allClasses.push(preset.leaveTo);\n });\n\n // Create a fake HTML string with all transition classes\n const fakeHtml = `<div class=\"${allClasses.join(' ')}\"></div>`;\n\n // Trigger JIT CSS generation (no-op if JIT CSS engine is not loaded)\n const generatedCSS = processJITCSS(fakeHtml);\n\n // Create stylesheet\n try {\n transitionStyleSheet = new CSSStyleSheet();\n transitionStyleSheet.replaceSync(generatedCSS);\n } catch {\n // If creating a constructable stylesheet fails for any reason,\n // fallback to a stub to avoid breaking SSR or older environments.\n transitionStyleSheet = {\n cssRules: [],\n replaceSync: () => {},\n toString: () => generatedCSS || '',\n } as unknown as CSSStyleSheet;\n }\n }\n\n return transitionStyleSheet;\n}\n\n"],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value
|
|
2
|
-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./tag-utils-XJ3dkcPQ.cjs`),t=require(`./style-A8l3aQ52.cjs`);let n=require(`node:fs`),r=require(`node:path`);var i=`virtual:cer-jit-css`,a=`\0virtual:cer-jit-css`;function o(e,i){i&&Object.keys(i).length>0&&t.i(i);let a=process.cwd(),o=[];for(let t of e){let e=(0,n.globSync)(t,{cwd:a}).map(e=>(0,r.resolve)(a,e));o.push(...e)}let s=[...new Set(o)],c=new Set;for(let e of s)try{let r=t.a((0,n.readFileSync)(e,`utf-8`));for(let e of r)c.add(e)}catch{}return c.size===0?``:t.l(`<div class="${[...c].join(` `)}"></div>`)}var s=`virtual:cer-ssr-config`,c=`\0virtual:cer-ssr-config`;function l(e){let t=[];if(e.content&&e.content.length>0&&t.push(u({content:e.content,output:e.output,virtualModule:e.virtualModule,extendedColors:e.extendedColors,customColors:e.customColors,disableVariants:e.disableVariants})),e.ssr){let n=e.ssr,r={dsd:n.dsd??!0,dsdPolyfill:n.dsdPolyfill??!0,...n.jit?{jit:n.jit}:{}};t.push({name:`cer-ssr-config`,resolveId(e){if(e===s)return c},load(e){if(e===c)return`export default ${JSON.stringify(r)};`}})}return t}function u(e){let{content:t,output:s,virtualModule:c=!0,extendedColors:l,customColors:u,disableVariants:d}=e,f={extendedColors:l,customColors:u,disableVariants:d},p=``,m=null;return{name:`cer-jit-css`,buildStart(){let e=process.cwd(),i=new Set;for(let a of t)(0,n.globSync)(a,{cwd:e}).forEach(t=>i.add((0,r.resolve)(e,t)));if(m=i,p=o(t,f),s){let e=(0,r.resolve)(process.cwd(),s);(0,n.mkdirSync)((0,r.dirname)(e),{recursive:!0}),(0,n.writeFileSync)(e,p,`utf-8`)}},resolveId(e){if(c&&e===i)return a},load(e){if(e===a)return`export default ${JSON.stringify(p)};`},handleHotUpdate({file:e,server:i}){if((m?.has(e)??!1)&&(p=o(t,f),s&&(0,n.writeFileSync)((0,r.resolve)(process.cwd(),s),p,`utf-8`),c)){let e=i,t=e.moduleGraph.getModuleById(a);t&&e.reloadModule(t)}}}}var d=e.t;function f(e){let t=e.replace(/\/\/[^\n]*/g,``).replace(/\/\*[\s\S]*?\*\//g,``),n=new Set;for(let e of t.matchAll(/<([a-z][a-z0-9]*(?:-[a-z0-9]+)+)/g))n.add(e[1]);return n}function p(e){let t=e.replace(/\/\/[^\n]*/g,``).replace(/\/\*[\s\S]*?\*\//g,``),n=[];for(let e of t.matchAll(/\bcomponent\(\s*['"`]([^'"`]+)['"`]/g))n.push(d(e[1]));return n}function m(e){let t=e.componentsDir.replace(/\\/g,`/`).replace(/\/?$/,`/`),i=e.appRoot.replace(/\\/g,`/`).replace(/\/?$/,`/`),a=new Map;function o(e){let t=e.replace(/\\/g,`/`);try{let e=(0,n.readFileSync)(t,`utf-8`);for(let n of p(e))a.set(n,t)}catch{}}function s(e){let t=e.replace(/\\/g,`/`);for(let[e,n]of a.entries())n===t&&a.delete(e)}function c(){if(a.clear(),(0,n.existsSync)(e.componentsDir))for(let t of(0,n.globSync)(`**/*.ts`,{cwd:e.componentsDir}))o((0,r.resolve)(e.componentsDir,t))}return{name:`cer-component-imports`,enforce:`pre`,buildStart(){c()},watchChange(e,{event:n}){let r=e.replace(/\\/g,`/`);!r.startsWith(t)||!r.endsWith(`.ts`)||(n===`delete`?s(r):(s(r),o(r)))},transform(e,t){let n=t.split(`?`)[0].replace(/\\/g,`/`);if(!n.endsWith(`.ts`)||!n.startsWith(i)||!e.includes("html`"))return null;let o=f(e);if(o.size===0)return null;let s=[];for(let e of o){let t=a.get(e);if(t){let e=(0,r.relative)((0,r.dirname)(n),t).replace(/\\/g,`/`),i=e.startsWith(`.`)?e:`./${e}`;s.push(`import ${JSON.stringify(i)};`)}}if(s.length===0)return null;let c=s.join(`
|
|
2
|
+
`)+`
|
|
3
|
+
`+e,l=s.length,u=e.split(`
|
|
4
|
+
`).length,d=`;`.repeat(l)+`AAAA`+`;AACA`.repeat(u-1);return{code:c,map:{version:3,sources:[n],sourcesContent:[e],names:[],mappings:d}}},handleHotUpdate({file:e,server:n}){let r=e.replace(/\\/g,`/`);if(!r.startsWith(t)||!r.endsWith(`.ts`))return;let c=new Set([...a.entries()].filter(([,e])=>e===r).map(([e])=>e));s(r),o(r);let l=new Set([...a.entries()].filter(([,e])=>e===r).map(([e])=>e));if(c.size!==l.size||[...c].some(e=>!l.has(e))){for(let[e,t]of n.moduleGraph.fileToModulesMap){let r=e.replace(/\\/g,`/`);if(r.startsWith(i)&&r.endsWith(`.ts`))for(let e of t)n.moduleGraph.invalidateModule(e)}n.ws.send({type:`full-reload`})}}}}exports.cerComponentImports=m,exports.cerJITCSS=u,exports.cerPlugin=l,exports.extractComponentRegistrations=p,exports.extractTemplateTagNames=f,exports.resolveTagName=d;
|
|
3
5
|
//# sourceMappingURL=custom-elements-runtime.vite-plugin.cjs.js.map
|