juxscript 1.1.104 → 1.1.106
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/dom-structure-map.json +1 -1
- package/lib/components/stack/BaseStack.d.ts +60 -0
- package/lib/components/stack/BaseStack.d.ts.map +1 -1
- package/lib/components/stack/BaseStack.js +105 -0
- package/lib/components/stack/BaseStack.ts +120 -2
- package/lib/styles/stack.css +181 -0
- package/package.json +1 -1
package/dom-structure-map.json
CHANGED
|
@@ -73,6 +73,66 @@ export declare abstract class BaseStack extends BaseComponent<StackState> {
|
|
|
73
73
|
fade(startOpacity?: number, step?: number): this;
|
|
74
74
|
blur(startBlur?: number, step?: number): this;
|
|
75
75
|
stagger(baseDelay?: number): this;
|
|
76
|
+
/**
|
|
77
|
+
* Fade in animation
|
|
78
|
+
*/
|
|
79
|
+
fadeIn(): this;
|
|
80
|
+
/**
|
|
81
|
+
* Fade out animation
|
|
82
|
+
*/
|
|
83
|
+
fadeOut(): this;
|
|
84
|
+
/**
|
|
85
|
+
* Slide in from direction
|
|
86
|
+
*/
|
|
87
|
+
slideIn(direction?: 'up' | 'down' | 'left' | 'right'): this;
|
|
88
|
+
/**
|
|
89
|
+
* Scale in animation (subtle)
|
|
90
|
+
*/
|
|
91
|
+
scaleIn(): this;
|
|
92
|
+
/**
|
|
93
|
+
* Zoom in animation (dramatic)
|
|
94
|
+
*/
|
|
95
|
+
zoomIn(): this;
|
|
96
|
+
/**
|
|
97
|
+
* Rotate in animation
|
|
98
|
+
*/
|
|
99
|
+
rotateIn(): this;
|
|
100
|
+
/**
|
|
101
|
+
* Flip in along axis
|
|
102
|
+
*/
|
|
103
|
+
flipIn(axis?: 'x' | 'y'): this;
|
|
104
|
+
/**
|
|
105
|
+
* Bounce in animation
|
|
106
|
+
*/
|
|
107
|
+
bounceIn(): this;
|
|
108
|
+
/**
|
|
109
|
+
* Elastic spring animation
|
|
110
|
+
*/
|
|
111
|
+
elasticIn(): this;
|
|
112
|
+
/**
|
|
113
|
+
* Blur in animation
|
|
114
|
+
*/
|
|
115
|
+
blurIn(): this;
|
|
116
|
+
/**
|
|
117
|
+
* Glow pulse animation (continuous)
|
|
118
|
+
*/
|
|
119
|
+
glow(): this;
|
|
120
|
+
/**
|
|
121
|
+
* Enable staggered animations (children animate sequentially)
|
|
122
|
+
*/
|
|
123
|
+
staggered(): this;
|
|
124
|
+
/**
|
|
125
|
+
* Make children interactive (hover effects)
|
|
126
|
+
*/
|
|
127
|
+
interactive(): this;
|
|
128
|
+
/**
|
|
129
|
+
* Enable smooth transitions
|
|
130
|
+
*/
|
|
131
|
+
smooth(): this;
|
|
132
|
+
/**
|
|
133
|
+
* Combine animation with stagger
|
|
134
|
+
*/
|
|
135
|
+
animateStagger(animation?: 'fade' | 'slide' | 'scale' | 'bounce', direction?: 'up' | 'down' | 'left' | 'right'): this;
|
|
76
136
|
protected buildClasses(): string;
|
|
77
137
|
protected renderChild(child: any, index: number): HTMLElement;
|
|
78
138
|
private getChildStyle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseStack.d.ts","sourceRoot":"","sources":["BaseStack.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseStack.d.ts","sourceRoot":"","sources":["BaseStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAMpE,MAAM,WAAW,YAAY;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IACjD,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IAC/B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED,UAAU,UAAW,SAAQ,SAAS;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,WAAW,CAAC,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAAC;CAC/C;AAED;;GAEG;AACH,8BAAsB,SAAU,SAAQ,aAAa,CAAC,UAAU,CAAC;IAC7D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IACzC,OAAO,CAAC,aAAa,CAAkC;IAChD,UAAU,EAAE,WAAW,GAAG,IAAI,CAAQ;gBAEjC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,OAAO,GAAE,YAAiB;IAsBzF,SAAS,CAAC,gBAAgB,IAAI,SAAS,MAAM,EAAE;IAI/C,SAAS,CAAC,iBAAiB,IAAI,SAAS,MAAM,EAAE;IAQhD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI;IAK5D,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI;IAK1D,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI;IAKlF,OAAO,CAAC,KAAK,GAAE,OAAc,GAAG,IAAI;IAKpC,UAAU,CAAC,KAAK,GAAE,OAAc,GAAG,IAAI;IASvC,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC5B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC3B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC3B,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IACjC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC1B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC7B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC9B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC9B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC/B,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IACpC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC9B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC7B,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IACxB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC1B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC3B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IACzB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC7B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC9B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC9B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC5B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC3B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC9B,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IACpC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC/B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM9B,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,kBAAkB,GAAG,IAAI;IAKjE,OAAO,CAAC,UAAU,GAAE,MAAW,EAAE,IAAI,GAAE,GAAG,GAAG,GAAG,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,IAAa,GAAG,IAAI;IAc5G,GAAG,CAAC,KAAK,GAAE,MAAU,EAAE,MAAM,GAAE,MAAwB,GAAG,IAAI;IAQ9D,gBAAgB,CAAC,UAAU,GAAE,MAAU,EAAE,IAAI,GAAE,MAAa,EAAE,MAAM,GAAE,MAAiB,GAAG,IAAI;IAQ9F,IAAI,CAAC,YAAY,GAAE,MAAU,EAAE,IAAI,GAAE,MAAa,GAAG,IAAI;IAQzD,IAAI,CAAC,SAAS,GAAE,MAAU,EAAE,IAAI,GAAE,MAAU,GAAG,IAAI;IAQnD,OAAO,CAAC,SAAS,GAAE,MAAY,GAAG,IAAI;IAYtC;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,OAAO,CAAC,SAAS,GAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAc,GAAG,IAAI;IAIjE;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,MAAM,CAAC,IAAI,GAAE,GAAG,GAAG,GAAS,GAAG,IAAI;IAInC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,cAAc,CAAC,SAAS,GAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAiB,EAAE,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI;IAiB7H,SAAS,CAAC,YAAY,IAAI,MAAM;IAgChC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW;IAkD7D,OAAO,CAAC,aAAa;IAoBrB,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI;IA2BlE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;CAGzC"}
|
|
@@ -157,6 +157,111 @@ export class BaseStack extends BaseComponent {
|
|
|
157
157
|
};
|
|
158
158
|
return this;
|
|
159
159
|
}
|
|
160
|
+
/* ═════════════════════════════════════════════════════════════════
|
|
161
|
+
* ANIMATION API (Fluent)
|
|
162
|
+
* ═════════════════════════════════════════════════════════════════ */
|
|
163
|
+
/**
|
|
164
|
+
* Fade in animation
|
|
165
|
+
*/
|
|
166
|
+
fadeIn() {
|
|
167
|
+
return this.addClass('jux-stack-fade-in');
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Fade out animation
|
|
171
|
+
*/
|
|
172
|
+
fadeOut() {
|
|
173
|
+
return this.addClass('jux-stack-fade-out');
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Slide in from direction
|
|
177
|
+
*/
|
|
178
|
+
slideIn(direction = 'up') {
|
|
179
|
+
return this.addClass(`jux-stack-slide-${direction}`);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Scale in animation (subtle)
|
|
183
|
+
*/
|
|
184
|
+
scaleIn() {
|
|
185
|
+
return this.addClass('jux-stack-scale-in');
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Zoom in animation (dramatic)
|
|
189
|
+
*/
|
|
190
|
+
zoomIn() {
|
|
191
|
+
return this.addClass('jux-stack-zoom-in');
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Rotate in animation
|
|
195
|
+
*/
|
|
196
|
+
rotateIn() {
|
|
197
|
+
return this.addClass('jux-stack-rotate-in');
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Flip in along axis
|
|
201
|
+
*/
|
|
202
|
+
flipIn(axis = 'x') {
|
|
203
|
+
return this.addClass(`jux-stack-flip-${axis}`);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Bounce in animation
|
|
207
|
+
*/
|
|
208
|
+
bounceIn() {
|
|
209
|
+
return this.addClass('jux-stack-bounce-in');
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Elastic spring animation
|
|
213
|
+
*/
|
|
214
|
+
elasticIn() {
|
|
215
|
+
return this.addClass('jux-stack-elastic-in');
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Blur in animation
|
|
219
|
+
*/
|
|
220
|
+
blurIn() {
|
|
221
|
+
return this.addClass('jux-stack-blur-in');
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Glow pulse animation (continuous)
|
|
225
|
+
*/
|
|
226
|
+
glow() {
|
|
227
|
+
return this.addClass('jux-stack-glow');
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Enable staggered animations (children animate sequentially)
|
|
231
|
+
*/
|
|
232
|
+
staggered() {
|
|
233
|
+
return this.addClass('jux-stack-stagger');
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Make children interactive (hover effects)
|
|
237
|
+
*/
|
|
238
|
+
interactive() {
|
|
239
|
+
return this.addClass('jux-stack-interactive');
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Enable smooth transitions
|
|
243
|
+
*/
|
|
244
|
+
smooth() {
|
|
245
|
+
return this.addClass('jux-stack-smooth');
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Combine animation with stagger
|
|
249
|
+
*/
|
|
250
|
+
animateStagger(animation = 'fade', direction) {
|
|
251
|
+
if (animation === 'slide' && direction) {
|
|
252
|
+
this.slideIn(direction);
|
|
253
|
+
}
|
|
254
|
+
else if (animation === 'fade') {
|
|
255
|
+
this.fadeIn();
|
|
256
|
+
}
|
|
257
|
+
else if (animation === 'scale') {
|
|
258
|
+
this.scaleIn();
|
|
259
|
+
}
|
|
260
|
+
else if (animation === 'bounce') {
|
|
261
|
+
this.bounceIn();
|
|
262
|
+
}
|
|
263
|
+
return this.staggered();
|
|
264
|
+
}
|
|
160
265
|
/* ═════════════════════════════════════════════════════════════════
|
|
161
266
|
* RENDER HELPERS
|
|
162
267
|
* ═════════════════════════════════════════════════════════════════ */
|
|
@@ -206,6 +206,124 @@ export abstract class BaseStack extends BaseComponent<StackState> {
|
|
|
206
206
|
return this;
|
|
207
207
|
}
|
|
208
208
|
|
|
209
|
+
/* ═════════════════════════════════════════════════════════════════
|
|
210
|
+
* ANIMATION API (Fluent)
|
|
211
|
+
* ═════════════════════════════════════════════════════════════════ */
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Fade in animation
|
|
215
|
+
*/
|
|
216
|
+
fadeIn(): this {
|
|
217
|
+
return this.addClass('jux-stack-fade-in');
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Fade out animation
|
|
222
|
+
*/
|
|
223
|
+
fadeOut(): this {
|
|
224
|
+
return this.addClass('jux-stack-fade-out');
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Slide in from direction
|
|
229
|
+
*/
|
|
230
|
+
slideIn(direction: 'up' | 'down' | 'left' | 'right' = 'up'): this {
|
|
231
|
+
return this.addClass(`jux-stack-slide-${direction}`);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Scale in animation (subtle)
|
|
236
|
+
*/
|
|
237
|
+
scaleIn(): this {
|
|
238
|
+
return this.addClass('jux-stack-scale-in');
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Zoom in animation (dramatic)
|
|
243
|
+
*/
|
|
244
|
+
zoomIn(): this {
|
|
245
|
+
return this.addClass('jux-stack-zoom-in');
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Rotate in animation
|
|
250
|
+
*/
|
|
251
|
+
rotateIn(): this {
|
|
252
|
+
return this.addClass('jux-stack-rotate-in');
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Flip in along axis
|
|
257
|
+
*/
|
|
258
|
+
flipIn(axis: 'x' | 'y' = 'x'): this {
|
|
259
|
+
return this.addClass(`jux-stack-flip-${axis}`);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Bounce in animation
|
|
264
|
+
*/
|
|
265
|
+
bounceIn(): this {
|
|
266
|
+
return this.addClass('jux-stack-bounce-in');
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* Elastic spring animation
|
|
271
|
+
*/
|
|
272
|
+
elasticIn(): this {
|
|
273
|
+
return this.addClass('jux-stack-elastic-in');
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Blur in animation
|
|
278
|
+
*/
|
|
279
|
+
blurIn(): this {
|
|
280
|
+
return this.addClass('jux-stack-blur-in');
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Glow pulse animation (continuous)
|
|
285
|
+
*/
|
|
286
|
+
glow(): this {
|
|
287
|
+
return this.addClass('jux-stack-glow');
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Enable staggered animations (children animate sequentially)
|
|
292
|
+
*/
|
|
293
|
+
staggered(): this {
|
|
294
|
+
return this.addClass('jux-stack-stagger');
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Make children interactive (hover effects)
|
|
299
|
+
*/
|
|
300
|
+
interactive(): this {
|
|
301
|
+
return this.addClass('jux-stack-interactive');
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Enable smooth transitions
|
|
306
|
+
*/
|
|
307
|
+
smooth(): this {
|
|
308
|
+
return this.addClass('jux-stack-smooth');
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* Combine animation with stagger
|
|
313
|
+
*/
|
|
314
|
+
animateStagger(animation: 'fade' | 'slide' | 'scale' | 'bounce' = 'fade', direction?: 'up' | 'down' | 'left' | 'right'): this {
|
|
315
|
+
if (animation === 'slide' && direction) {
|
|
316
|
+
this.slideIn(direction);
|
|
317
|
+
} else if (animation === 'fade') {
|
|
318
|
+
this.fadeIn();
|
|
319
|
+
} else if (animation === 'scale') {
|
|
320
|
+
this.scaleIn();
|
|
321
|
+
} else if (animation === 'bounce') {
|
|
322
|
+
this.bounceIn();
|
|
323
|
+
}
|
|
324
|
+
return this.staggered();
|
|
325
|
+
}
|
|
326
|
+
|
|
209
327
|
/* ═════════════════════════════════════════════════════════════════
|
|
210
328
|
* RENDER HELPERS
|
|
211
329
|
* ═════════════════════════════════════════════════════════════════ */
|
|
@@ -254,10 +372,10 @@ export abstract class BaseStack extends BaseComponent<StackState> {
|
|
|
254
372
|
// Create temporary container to render into
|
|
255
373
|
const tempContainer = document.createElement('div');
|
|
256
374
|
tempContainer.style.display = 'contents'; // Don't add extra wrapper
|
|
257
|
-
|
|
375
|
+
|
|
258
376
|
// Render the component into temp container
|
|
259
377
|
child.render(tempContainer);
|
|
260
|
-
|
|
378
|
+
|
|
261
379
|
// Extract the rendered element
|
|
262
380
|
if (child.container && child.container.firstElementChild) {
|
|
263
381
|
childElement = child.container.firstElementChild as HTMLElement;
|
package/lib/styles/stack.css
CHANGED
|
@@ -131,3 +131,184 @@
|
|
|
131
131
|
.jux-zstack-divider > * {
|
|
132
132
|
border: 1px solid #e4e4e7;
|
|
133
133
|
}
|
|
134
|
+
|
|
135
|
+
/* ═══════════════════════════════════════════════════════════════════
|
|
136
|
+
* ANIMATION & TRANSITION CLASSES
|
|
137
|
+
* ═══════════════════════════════════════════════════════════════════ */
|
|
138
|
+
|
|
139
|
+
/* Fade Animations */
|
|
140
|
+
@keyframes jux-fade-in {
|
|
141
|
+
from { opacity: 0; }
|
|
142
|
+
to { opacity: 1; }
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
@keyframes jux-fade-out {
|
|
146
|
+
from { opacity: 1; }
|
|
147
|
+
to { opacity: 0; }
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.jux-stack-fade-in > * {
|
|
151
|
+
animation: jux-fade-in 0.3s ease-out;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.jux-stack-fade-out > * {
|
|
155
|
+
animation: jux-fade-out 0.3s ease-out;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* Slide Animations */
|
|
159
|
+
@keyframes jux-slide-in-up {
|
|
160
|
+
from { transform: translateY(20px); opacity: 0; }
|
|
161
|
+
to { transform: translateY(0); opacity: 1; }
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
@keyframes jux-slide-in-down {
|
|
165
|
+
from { transform: translateY(-20px); opacity: 0; }
|
|
166
|
+
to { transform: translateY(0); opacity: 1; }
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
@keyframes jux-slide-in-left {
|
|
170
|
+
from { transform: translateX(-20px); opacity: 0; }
|
|
171
|
+
to { transform: translateX(0); opacity: 1; }
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
@keyframes jux-slide-in-right {
|
|
175
|
+
from { transform: translateX(20px); opacity: 0; }
|
|
176
|
+
to { transform: translateX(0); opacity: 1; }
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.jux-stack-slide-up > * {
|
|
180
|
+
animation: jux-slide-in-up 0.4s ease-out;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.jux-stack-slide-down > * {
|
|
184
|
+
animation: jux-slide-in-down 0.4s ease-out;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.jux-stack-slide-left > * {
|
|
188
|
+
animation: jux-slide-in-left 0.4s ease-out;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.jux-stack-slide-right > * {
|
|
192
|
+
animation: jux-slide-in-right 0.4s ease-out;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/* Scale Animations */
|
|
196
|
+
@keyframes jux-scale-in {
|
|
197
|
+
from { transform: scale(0.8); opacity: 0; }
|
|
198
|
+
to { transform: scale(1); opacity: 1; }
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
@keyframes jux-zoom-in {
|
|
202
|
+
from { transform: scale(0); opacity: 0; }
|
|
203
|
+
to { transform: scale(1); opacity: 1; }
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.jux-stack-scale-in > * {
|
|
207
|
+
animation: jux-scale-in 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.jux-stack-zoom-in > * {
|
|
211
|
+
animation: jux-zoom-in 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/* Rotate Animations */
|
|
215
|
+
@keyframes jux-rotate-in {
|
|
216
|
+
from { transform: rotate(-10deg); opacity: 0; }
|
|
217
|
+
to { transform: rotate(0); opacity: 1; }
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
@keyframes jux-flip-in-x {
|
|
221
|
+
from { transform: perspective(400px) rotateX(90deg); opacity: 0; }
|
|
222
|
+
to { transform: perspective(400px) rotateX(0); opacity: 1; }
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
@keyframes jux-flip-in-y {
|
|
226
|
+
from { transform: perspective(400px) rotateY(90deg); opacity: 0; }
|
|
227
|
+
to { transform: perspective(400px) rotateY(0); opacity: 1; }
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.jux-stack-rotate-in > * {
|
|
231
|
+
animation: jux-rotate-in 0.5s ease-out;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
.jux-stack-flip-x > * {
|
|
235
|
+
animation: jux-flip-in-x 0.6s ease-out;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.jux-stack-flip-y > * {
|
|
239
|
+
animation: jux-flip-in-y 0.6s ease-out;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/* Bounce Animation */
|
|
243
|
+
@keyframes jux-bounce-in {
|
|
244
|
+
0% { transform: scale(0); opacity: 0; }
|
|
245
|
+
50% { transform: scale(1.1); }
|
|
246
|
+
70% { transform: scale(0.9); }
|
|
247
|
+
100% { transform: scale(1); opacity: 1; }
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.jux-stack-bounce-in > * {
|
|
251
|
+
animation: jux-bounce-in 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/* Elastic Animation */
|
|
255
|
+
@keyframes jux-elastic-in {
|
|
256
|
+
0% { transform: scale(0); }
|
|
257
|
+
55% { transform: scale(1.2); }
|
|
258
|
+
70% { transform: scale(0.9); }
|
|
259
|
+
85% { transform: scale(1.05); }
|
|
260
|
+
100% { transform: scale(1); }
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
.jux-stack-elastic-in > * {
|
|
264
|
+
animation: jux-elastic-in 0.8s ease-out;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/* Blur Animation */
|
|
268
|
+
@keyframes jux-blur-in {
|
|
269
|
+
from { filter: blur(10px); opacity: 0; }
|
|
270
|
+
to { filter: blur(0); opacity: 1; }
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
.jux-stack-blur-in > * {
|
|
274
|
+
animation: jux-blur-in 0.5s ease-out;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/* Glow Animation */
|
|
278
|
+
@keyframes jux-glow-pulse {
|
|
279
|
+
0%, 100% { box-shadow: 0 0 5px rgba(59, 130, 246, 0.5); }
|
|
280
|
+
50% { box-shadow: 0 0 20px rgba(59, 130, 246, 0.8); }
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.jux-stack-glow > * {
|
|
284
|
+
animation: jux-glow-pulse 2s ease-in-out infinite;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/* Stagger Delay (for sequential animations) */
|
|
288
|
+
.jux-stack-stagger > *:nth-child(1) { animation-delay: 0ms; }
|
|
289
|
+
.jux-stack-stagger > *:nth-child(2) { animation-delay: 100ms; }
|
|
290
|
+
.jux-stack-stagger > *:nth-child(3) { animation-delay: 200ms; }
|
|
291
|
+
.jux-stack-stagger > *:nth-child(4) { animation-delay: 300ms; }
|
|
292
|
+
.jux-stack-stagger > *:nth-child(5) { animation-delay: 400ms; }
|
|
293
|
+
.jux-stack-stagger > *:nth-child(6) { animation-delay: 500ms; }
|
|
294
|
+
.jux-stack-stagger > *:nth-child(7) { animation-delay: 600ms; }
|
|
295
|
+
.jux-stack-stagger > *:nth-child(8) { animation-delay: 700ms; }
|
|
296
|
+
.jux-stack-stagger > *:nth-child(9) { animation-delay: 800ms; }
|
|
297
|
+
.jux-stack-stagger > *:nth-child(10) { animation-delay: 900ms; }
|
|
298
|
+
|
|
299
|
+
/* Hover Transitions (opt-in via .jux-stack-interactive) */
|
|
300
|
+
.jux-stack-interactive > * {
|
|
301
|
+
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
|
302
|
+
cursor: pointer;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
.jux-stack-interactive > *:hover {
|
|
306
|
+
transform: translateY(-4px);
|
|
307
|
+
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
/* Smooth transitions for all animated properties */
|
|
311
|
+
.jux-stack-smooth,
|
|
312
|
+
.jux-stack-smooth > * {
|
|
313
|
+
transition: all 0.3s ease;
|
|
314
|
+
}
|