juxscript 1.1.89 → 1.1.91
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/button.d.ts +5 -0
- package/lib/components/button.d.ts.map +1 -1
- package/lib/components/button.js +20 -0
- package/lib/components/button.ts +25 -0
- package/lib/components/stack/BaseStack.d.ts +5 -35
- package/lib/components/stack/BaseStack.d.ts.map +1 -1
- package/lib/components/stack/BaseStack.js +60 -184
- package/lib/components/stack/BaseStack.ts +78 -238
- package/lib/components/stack/HStack.d.ts +0 -8
- package/lib/components/stack/HStack.d.ts.map +1 -1
- package/lib/components/stack/HStack.js +0 -8
- package/lib/components/stack/HStack.ts +0 -8
- package/lib/components/stack/VStack.d.ts +0 -5
- package/lib/components/stack/VStack.d.ts.map +1 -1
- package/lib/components/stack/VStack.js +1 -7
- package/lib/components/stack/VStack.ts +1 -7
- package/lib/components/stack/ZStack.d.ts +0 -8
- package/lib/components/stack/ZStack.d.ts.map +1 -1
- package/lib/components/stack/ZStack.js +0 -8
- package/lib/components/stack/ZStack.ts +0 -8
- package/package.json +1 -1
package/dom-structure-map.json
CHANGED
|
@@ -44,6 +44,11 @@ export declare class Button extends BaseComponent<ButtonState> {
|
|
|
44
44
|
* Set button content as HTML (overrides label)
|
|
45
45
|
*/
|
|
46
46
|
content(value: string): this;
|
|
47
|
+
icon(value: string): this;
|
|
48
|
+
iconPosition(value: 'left' | 'right'): this;
|
|
49
|
+
fullWidth(value: boolean): this;
|
|
50
|
+
variant(value: string): this;
|
|
51
|
+
size(value: 'small' | 'medium' | 'large'): this;
|
|
47
52
|
/**
|
|
48
53
|
* Alias for content() - more semantic
|
|
49
54
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAQxD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAChG,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,MAAO,SAAQ,aAAa,CAAC,WAAW,CAAC;IACpD,OAAO,CAAC,cAAc,CAAkC;gBAE5C,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa;IAmB/C,SAAS,CAAC,gBAAgB,IAAI,SAAS,MAAM,EAAE;IAI/C,SAAS,CAAC,iBAAiB,IAAI,SAAS,MAAM,EAAE;IAQhD;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO1B;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzB;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM5B;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAgBzB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAQtC;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAW7B,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI;CA4DnE;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAElE"}
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAQxD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAChG,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,MAAO,SAAQ,aAAa,CAAC,WAAW,CAAC;IACpD,OAAO,CAAC,cAAc,CAAkC;gBAE5C,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa;IAmB/C,SAAS,CAAC,gBAAgB,IAAI,SAAS,MAAM,EAAE;IAI/C,SAAS,CAAC,iBAAiB,IAAI,SAAS,MAAM,EAAE;IAQhD;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO1B;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzB;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM5B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAI3C,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAK/B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK5B,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI;IAO/C;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAgBzB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAQtC;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAW7B,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI;CA4DnE;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAElE"}
|
package/lib/components/button.js
CHANGED
|
@@ -56,6 +56,26 @@ export class Button extends BaseComponent {
|
|
|
56
56
|
this._updateButtonText();
|
|
57
57
|
return this;
|
|
58
58
|
}
|
|
59
|
+
icon(value) {
|
|
60
|
+
this.state.icon = value;
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
iconPosition(value) {
|
|
64
|
+
this.state.iconPosition = value;
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
fullWidth(value) {
|
|
68
|
+
this.state.fullWidth = value;
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
variant(value) {
|
|
72
|
+
this.state.variant = value;
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
size(value) {
|
|
76
|
+
this.state.size = value;
|
|
77
|
+
return this;
|
|
78
|
+
}
|
|
59
79
|
/**
|
|
60
80
|
* Alias for content() - more semantic
|
|
61
81
|
*/
|
package/lib/components/button.ts
CHANGED
|
@@ -96,6 +96,31 @@ export class Button extends BaseComponent<ButtonState> {
|
|
|
96
96
|
return this;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
+
icon(value: string): this {
|
|
100
|
+
this.state.icon = value;
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
iconPosition(value: 'left' | 'right'): this {
|
|
104
|
+
this.state.iconPosition = value;
|
|
105
|
+
return this;
|
|
106
|
+
}
|
|
107
|
+
fullWidth(value: boolean): this {
|
|
108
|
+
this.state.fullWidth = value;
|
|
109
|
+
return this;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
variant(value: string): this {
|
|
113
|
+
this.state.variant = value;
|
|
114
|
+
return this;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
size(value: 'small' | 'medium' | 'large'): this {
|
|
118
|
+
this.state.size = value;
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
99
124
|
/**
|
|
100
125
|
* Alias for content() - more semantic
|
|
101
126
|
*/
|
|
@@ -22,7 +22,6 @@ interface StackState extends BaseState {
|
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* BaseStack - Foundation for all stack layout components
|
|
25
|
-
* Provides common styling, child management, and progressive effects
|
|
26
25
|
*/
|
|
27
26
|
export declare abstract class BaseStack extends BaseComponent<StackState> {
|
|
28
27
|
protected abstract baseClassName: string;
|
|
@@ -35,13 +34,7 @@ export declare abstract class BaseStack extends BaseComponent<StackState> {
|
|
|
35
34
|
justify(value: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly'): this;
|
|
36
35
|
divider(value?: boolean): this;
|
|
37
36
|
responsive(value?: boolean): this;
|
|
38
|
-
/**
|
|
39
|
-
* Internal helper to add individual CSS properties
|
|
40
|
-
*/
|
|
41
37
|
private _addStyle;
|
|
42
|
-
/**
|
|
43
|
-
* Build and apply the complete style attribute
|
|
44
|
-
*/
|
|
45
38
|
private _updateStyleAttribute;
|
|
46
39
|
padding(value: string): this;
|
|
47
40
|
margin(value: string): this;
|
|
@@ -57,53 +50,30 @@ export declare abstract class BaseStack extends BaseComponent<StackState> {
|
|
|
57
50
|
backgroundColor(value: string): this;
|
|
58
51
|
boxShadow(value: string): this;
|
|
59
52
|
opacity(value: string | number): this;
|
|
60
|
-
position(value:
|
|
53
|
+
position(value: string): this;
|
|
61
54
|
top(value: string): this;
|
|
62
55
|
right(value: string): this;
|
|
63
56
|
bottom(value: string): this;
|
|
64
57
|
left(value: string): this;
|
|
65
58
|
zIndex(value: string | number): this;
|
|
66
|
-
overflow(value:
|
|
67
|
-
overflowX(value:
|
|
68
|
-
overflowY(value:
|
|
59
|
+
overflow(value: string): this;
|
|
60
|
+
overflowX(value: string): this;
|
|
61
|
+
overflowY(value: string): this;
|
|
69
62
|
display(value: string): this;
|
|
70
63
|
cursor(value: string): this;
|
|
71
64
|
transform(value: string): this;
|
|
72
65
|
transformOrigin(value: string): this;
|
|
73
66
|
transition(value: string): this;
|
|
74
67
|
animation(value: string): this;
|
|
75
|
-
/**
|
|
76
|
-
* Apply custom styles to each child progressively
|
|
77
|
-
*/
|
|
78
68
|
childStyle(stylesOrFunction: string[] | ChildStyleFunction): this;
|
|
79
|
-
/**
|
|
80
|
-
* Cascade effect - offset children progressively
|
|
81
|
-
*/
|
|
82
69
|
cascade(baseOffset?: number, axis?: 'x' | 'y' | 'both' | 'horizontal' | 'vertical' | 'xy'): this;
|
|
83
|
-
/**
|
|
84
|
-
* Fan effect - rotate children progressively
|
|
85
|
-
*/
|
|
86
70
|
fan(angle?: number, origin?: string): this;
|
|
87
|
-
/**
|
|
88
|
-
* Scale progression - shrink/grow children
|
|
89
|
-
*/
|
|
90
71
|
scaleProgressive(startScale?: number, step?: number, origin?: string): this;
|
|
91
|
-
/**
|
|
92
|
-
* Fade effect - progressive opacity
|
|
93
|
-
*/
|
|
94
72
|
fade(startOpacity?: number, step?: number): this;
|
|
95
|
-
/**
|
|
96
|
-
* Blur effect - progressive blur
|
|
97
|
-
*/
|
|
98
73
|
blur(startBlur?: number, step?: number): this;
|
|
99
|
-
/**
|
|
100
|
-
* Stagger animation delays
|
|
101
|
-
*/
|
|
102
74
|
stagger(baseDelay?: number): this;
|
|
103
75
|
protected buildClasses(): string;
|
|
104
|
-
protected renderChild(child: any, index: number):
|
|
105
|
-
private wrapChildWithStyle;
|
|
106
|
-
private injectChildStyle;
|
|
76
|
+
protected renderChild(child: any, index: number): HTMLElement;
|
|
107
77
|
private getChildStyle;
|
|
108
78
|
render(targetId?: string | HTMLElement | BaseComponent<any>): this;
|
|
109
79
|
update(prop: string, value: any): void;
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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;gBAE3C,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,SAAS,CAAC,YAAY,IAAI,MAAM;IAgChC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW;IAkC7D,OAAO,CAAC,aAAa;IAoBrB,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI;IAuBlE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;CAGzC"}
|
|
@@ -4,11 +4,9 @@ const TRIGGER_EVENTS = [];
|
|
|
4
4
|
const CALLBACK_EVENTS = [];
|
|
5
5
|
/**
|
|
6
6
|
* BaseStack - Foundation for all stack layout components
|
|
7
|
-
* Provides common styling, child management, and progressive effects
|
|
8
7
|
*/
|
|
9
8
|
export class BaseStack extends BaseComponent {
|
|
10
9
|
constructor(id, children, options = {}) {
|
|
11
|
-
// Convert children object to array, preserving order
|
|
12
10
|
const childArray = Array.isArray(children)
|
|
13
11
|
? children
|
|
14
12
|
: Object.values(children);
|
|
@@ -27,7 +25,7 @@ export class BaseStack extends BaseComponent {
|
|
|
27
25
|
children: childArray,
|
|
28
26
|
childStyles: undefined
|
|
29
27
|
});
|
|
30
|
-
this._inlineStyles = new Map();
|
|
28
|
+
this._inlineStyles = new Map();
|
|
31
29
|
}
|
|
32
30
|
getTriggerEvents() {
|
|
33
31
|
return TRIGGER_EVENTS;
|
|
@@ -59,134 +57,55 @@ export class BaseStack extends BaseComponent {
|
|
|
59
57
|
return this;
|
|
60
58
|
}
|
|
61
59
|
/* ═════════════════════════════════════════════════════════════════
|
|
62
|
-
* FLUENT STYLE API
|
|
60
|
+
* FLUENT STYLE API
|
|
63
61
|
* ═════════════════════════════════════════════════════════════════ */
|
|
64
|
-
/**
|
|
65
|
-
* Internal helper to add individual CSS properties
|
|
66
|
-
*/
|
|
67
62
|
_addStyle(property, value) {
|
|
68
|
-
this._inlineStyles.set(property, value);
|
|
69
|
-
this._updateStyleAttribute();
|
|
63
|
+
this._inlineStyles.set(property, value);
|
|
64
|
+
this._updateStyleAttribute();
|
|
70
65
|
return this;
|
|
71
66
|
}
|
|
72
|
-
/**
|
|
73
|
-
* Build and apply the complete style attribute
|
|
74
|
-
*/
|
|
75
67
|
_updateStyleAttribute() {
|
|
76
|
-
const styleString = Array.from(this._inlineStyles.entries())
|
|
77
|
-
.map(([prop, val]) => `${prop}: ${val}`)
|
|
78
|
-
.join('; ');
|
|
68
|
+
const styleString = Array.from(this._inlineStyles.entries())
|
|
69
|
+
.map(([prop, val]) => `${prop}: ${val}`)
|
|
70
|
+
.join('; ');
|
|
79
71
|
this.state.style = styleString;
|
|
80
72
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
|
|
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
|
-
maxHeight(value) {
|
|
111
|
-
return this._addStyle('max-height', value);
|
|
112
|
-
}
|
|
113
|
-
// Visual
|
|
114
|
-
background(value) {
|
|
115
|
-
return this._addStyle('background', value);
|
|
116
|
-
}
|
|
117
|
-
backgroundColor(value) {
|
|
118
|
-
return this._addStyle('background-color', value);
|
|
119
|
-
}
|
|
120
|
-
boxShadow(value) {
|
|
121
|
-
return this._addStyle('box-shadow', value);
|
|
122
|
-
}
|
|
123
|
-
opacity(value) {
|
|
124
|
-
return this._addStyle('opacity', String(value));
|
|
125
|
-
}
|
|
126
|
-
// Positioning
|
|
127
|
-
position(value) {
|
|
128
|
-
return this._addStyle('position', value);
|
|
129
|
-
}
|
|
130
|
-
top(value) {
|
|
131
|
-
return this._addStyle('top', value);
|
|
132
|
-
}
|
|
133
|
-
right(value) {
|
|
134
|
-
return this._addStyle('right', value);
|
|
135
|
-
}
|
|
136
|
-
bottom(value) {
|
|
137
|
-
return this._addStyle('bottom', value);
|
|
138
|
-
}
|
|
139
|
-
left(value) {
|
|
140
|
-
return this._addStyle('left', value);
|
|
141
|
-
}
|
|
142
|
-
zIndex(value) {
|
|
143
|
-
return this._addStyle('z-index', String(value));
|
|
144
|
-
}
|
|
145
|
-
// Overflow
|
|
146
|
-
overflow(value) {
|
|
147
|
-
return this._addStyle('overflow', value);
|
|
148
|
-
}
|
|
149
|
-
overflowX(value) {
|
|
150
|
-
return this._addStyle('overflow-x', value);
|
|
151
|
-
}
|
|
152
|
-
overflowY(value) {
|
|
153
|
-
return this._addStyle('overflow-y', value);
|
|
154
|
-
}
|
|
155
|
-
// Display
|
|
156
|
-
display(value) {
|
|
157
|
-
return this._addStyle('display', value);
|
|
158
|
-
}
|
|
159
|
-
// Cursor
|
|
160
|
-
cursor(value) {
|
|
161
|
-
return this._addStyle('cursor', value);
|
|
162
|
-
}
|
|
163
|
-
// Transform
|
|
164
|
-
transform(value) {
|
|
165
|
-
return this._addStyle('transform', value);
|
|
166
|
-
}
|
|
167
|
-
transformOrigin(value) {
|
|
168
|
-
return this._addStyle('transform-origin', value);
|
|
169
|
-
}
|
|
170
|
-
// Transition & Animation
|
|
171
|
-
transition(value) {
|
|
172
|
-
return this._addStyle('transition', value);
|
|
173
|
-
}
|
|
174
|
-
animation(value) {
|
|
175
|
-
return this._addStyle('animation', value);
|
|
176
|
-
}
|
|
73
|
+
padding(value) { return this._addStyle('padding', value); }
|
|
74
|
+
margin(value) { return this._addStyle('margin', value); }
|
|
75
|
+
border(value) { return this._addStyle('border', value); }
|
|
76
|
+
borderRadius(value) { return this._addStyle('border-radius', value); }
|
|
77
|
+
width(value) { return this._addStyle('width', value); }
|
|
78
|
+
height(value) { return this._addStyle('height', value); }
|
|
79
|
+
minWidth(value) { return this._addStyle('min-width', value); }
|
|
80
|
+
maxWidth(value) { return this._addStyle('max-width', value); }
|
|
81
|
+
minHeight(value) { return this._addStyle('min-height', value); }
|
|
82
|
+
maxHeight(value) { return this._addStyle('max-height', value); }
|
|
83
|
+
background(value) { return this._addStyle('background', value); }
|
|
84
|
+
backgroundColor(value) { return this._addStyle('background-color', value); }
|
|
85
|
+
boxShadow(value) { return this._addStyle('box-shadow', value); }
|
|
86
|
+
opacity(value) { return this._addStyle('opacity', String(value)); }
|
|
87
|
+
position(value) { return this._addStyle('position', value); }
|
|
88
|
+
top(value) { return this._addStyle('top', value); }
|
|
89
|
+
right(value) { return this._addStyle('right', value); }
|
|
90
|
+
bottom(value) { return this._addStyle('bottom', value); }
|
|
91
|
+
left(value) { return this._addStyle('left', value); }
|
|
92
|
+
zIndex(value) { return this._addStyle('z-index', String(value)); }
|
|
93
|
+
overflow(value) { return this._addStyle('overflow', value); }
|
|
94
|
+
overflowX(value) { return this._addStyle('overflow-x', value); }
|
|
95
|
+
overflowY(value) { return this._addStyle('overflow-y', value); }
|
|
96
|
+
display(value) { return this._addStyle('display', value); }
|
|
97
|
+
cursor(value) { return this._addStyle('cursor', value); }
|
|
98
|
+
transform(value) { return this._addStyle('transform', value); }
|
|
99
|
+
transformOrigin(value) { return this._addStyle('transform-origin', value); }
|
|
100
|
+
transition(value) { return this._addStyle('transition', value); }
|
|
101
|
+
animation(value) { return this._addStyle('animation', value); }
|
|
177
102
|
/* ═════════════════════════════════════════════════════════════════
|
|
178
103
|
* PROGRESSIVE CHILD STYLING
|
|
179
104
|
* ═════════════════════════════════════════════════════════════════ */
|
|
180
|
-
/**
|
|
181
|
-
* Apply custom styles to each child progressively
|
|
182
|
-
*/
|
|
183
105
|
childStyle(stylesOrFunction) {
|
|
184
106
|
this.state.childStyles = stylesOrFunction;
|
|
185
107
|
return this;
|
|
186
108
|
}
|
|
187
|
-
/**
|
|
188
|
-
* Cascade effect - offset children progressively
|
|
189
|
-
*/
|
|
190
109
|
cascade(baseOffset = 20, axis = 'both') {
|
|
191
110
|
this.state.childStyles = (index) => {
|
|
192
111
|
const offset = baseOffset * index;
|
|
@@ -202,9 +121,6 @@ export class BaseStack extends BaseComponent {
|
|
|
202
121
|
};
|
|
203
122
|
return this;
|
|
204
123
|
}
|
|
205
|
-
/**
|
|
206
|
-
* Fan effect - rotate children progressively
|
|
207
|
-
*/
|
|
208
124
|
fan(angle = 5, origin = 'bottom center') {
|
|
209
125
|
this.state.childStyles = (index) => {
|
|
210
126
|
const rotation = angle * index;
|
|
@@ -212,9 +128,6 @@ export class BaseStack extends BaseComponent {
|
|
|
212
128
|
};
|
|
213
129
|
return this;
|
|
214
130
|
}
|
|
215
|
-
/**
|
|
216
|
-
* Scale progression - shrink/grow children
|
|
217
|
-
*/
|
|
218
131
|
scaleProgressive(startScale = 1, step = 0.05, origin = 'center') {
|
|
219
132
|
this.state.childStyles = (index) => {
|
|
220
133
|
const scale = startScale - (step * index);
|
|
@@ -222,9 +135,6 @@ export class BaseStack extends BaseComponent {
|
|
|
222
135
|
};
|
|
223
136
|
return this;
|
|
224
137
|
}
|
|
225
|
-
/**
|
|
226
|
-
* Fade effect - progressive opacity
|
|
227
|
-
*/
|
|
228
138
|
fade(startOpacity = 1, step = 0.15) {
|
|
229
139
|
this.state.childStyles = (index) => {
|
|
230
140
|
const opacity = Math.max(0.1, startOpacity - (step * index));
|
|
@@ -232,9 +142,6 @@ export class BaseStack extends BaseComponent {
|
|
|
232
142
|
};
|
|
233
143
|
return this;
|
|
234
144
|
}
|
|
235
|
-
/**
|
|
236
|
-
* Blur effect - progressive blur
|
|
237
|
-
*/
|
|
238
145
|
blur(startBlur = 0, step = 2) {
|
|
239
146
|
this.state.childStyles = (index) => {
|
|
240
147
|
const blur = startBlur + (step * index);
|
|
@@ -242,9 +149,6 @@ export class BaseStack extends BaseComponent {
|
|
|
242
149
|
};
|
|
243
150
|
return this;
|
|
244
151
|
}
|
|
245
|
-
/**
|
|
246
|
-
* Stagger animation delays
|
|
247
|
-
*/
|
|
248
152
|
stagger(baseDelay = 100) {
|
|
249
153
|
this.state.childStyles = (index) => {
|
|
250
154
|
const delay = baseDelay * index;
|
|
@@ -258,78 +162,55 @@ export class BaseStack extends BaseComponent {
|
|
|
258
162
|
buildClasses() {
|
|
259
163
|
const { spacing, align, justify, divider, responsive } = this.state;
|
|
260
164
|
const classes = [this.baseClassName];
|
|
261
|
-
// Spacing modifier
|
|
262
165
|
if (spacing !== 'default') {
|
|
263
166
|
classes.push(`${this.baseClassName}-${spacing}`);
|
|
264
167
|
}
|
|
265
|
-
// Alignment
|
|
266
168
|
if (align) {
|
|
267
169
|
classes.push(`jux-stack-${align}`);
|
|
268
170
|
}
|
|
269
|
-
// Justification
|
|
270
171
|
if (justify) {
|
|
271
172
|
classes.push(`jux-stack-justify-${justify}`);
|
|
272
173
|
}
|
|
273
|
-
// Divider
|
|
274
174
|
if (divider) {
|
|
275
175
|
classes.push(`${this.baseClassName}-divider`);
|
|
276
176
|
}
|
|
277
|
-
// Responsive
|
|
278
177
|
if (responsive) {
|
|
279
178
|
classes.push(`${this.baseClassName}-responsive`);
|
|
280
179
|
}
|
|
281
|
-
// Custom classes
|
|
282
180
|
if (this.state.class) {
|
|
283
181
|
classes.push(this.state.class);
|
|
284
182
|
}
|
|
285
183
|
return classes.join(' ');
|
|
286
184
|
}
|
|
287
185
|
renderChild(child, index) {
|
|
288
|
-
|
|
186
|
+
let childElement;
|
|
187
|
+
// String - wrap in div
|
|
289
188
|
if (typeof child === 'string') {
|
|
290
|
-
|
|
189
|
+
childElement = document.createElement('div');
|
|
190
|
+
childElement.textContent = child;
|
|
291
191
|
}
|
|
292
|
-
// JUX
|
|
293
|
-
if (child && typeof child.render === 'function') {
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
child.
|
|
297
|
-
if (child.container) {
|
|
298
|
-
let html = child.container.outerHTML;
|
|
299
|
-
child.container = null; // Reset for reuse
|
|
300
|
-
return this.injectChildStyle(html, index);
|
|
301
|
-
}
|
|
192
|
+
// JUX Component - render it
|
|
193
|
+
else if (child && typeof child.render === 'function' && 'container' in child) {
|
|
194
|
+
const tempContainer = document.createElement('div');
|
|
195
|
+
child.render(tempContainer);
|
|
196
|
+
childElement = child.container || tempContainer.firstElementChild;
|
|
302
197
|
}
|
|
303
|
-
// DOM
|
|
304
|
-
if (child
|
|
305
|
-
|
|
198
|
+
// DOM Element - use directly
|
|
199
|
+
else if (child instanceof HTMLElement) {
|
|
200
|
+
childElement = child;
|
|
306
201
|
}
|
|
307
|
-
//
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
return this.wrapChildWithStyle(rendered, index);
|
|
312
|
-
}
|
|
313
|
-
if (rendered && rendered.outerHTML) {
|
|
314
|
-
return this.injectChildStyle(rendered.outerHTML, index);
|
|
315
|
-
}
|
|
202
|
+
// Fallback
|
|
203
|
+
else {
|
|
204
|
+
childElement = document.createElement('div');
|
|
205
|
+
childElement.textContent = String(child);
|
|
316
206
|
}
|
|
317
|
-
//
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
if (style) {
|
|
323
|
-
return `<div style="${style}">${html}</div>`;
|
|
324
|
-
}
|
|
325
|
-
return html;
|
|
326
|
-
}
|
|
327
|
-
injectChildStyle(html, index) {
|
|
328
|
-
const style = this.getChildStyle(index);
|
|
329
|
-
if (style) {
|
|
330
|
-
return html.replace(/^<(\w+)/, `<$1 style="${style}"`);
|
|
207
|
+
// Apply child styles
|
|
208
|
+
const styleStr = this.getChildStyle(index);
|
|
209
|
+
if (styleStr) {
|
|
210
|
+
const existingStyle = childElement.getAttribute('style') || '';
|
|
211
|
+
childElement.setAttribute('style', existingStyle + '; ' + styleStr);
|
|
331
212
|
}
|
|
332
|
-
return
|
|
213
|
+
return childElement;
|
|
333
214
|
}
|
|
334
215
|
getChildStyle(index) {
|
|
335
216
|
const { childStyles } = this.state;
|
|
@@ -351,18 +232,13 @@ export class BaseStack extends BaseComponent {
|
|
|
351
232
|
const wrapper = document.createElement('div');
|
|
352
233
|
wrapper.className = this.buildClasses();
|
|
353
234
|
wrapper.id = this._id;
|
|
354
|
-
// ✅ Apply the built style string
|
|
355
235
|
if (this.state.style) {
|
|
356
236
|
wrapper.setAttribute('style', this.state.style);
|
|
357
237
|
}
|
|
358
238
|
// Render all children
|
|
359
239
|
this.state.children.forEach((child, index) => {
|
|
360
|
-
const
|
|
361
|
-
|
|
362
|
-
tempDiv.innerHTML = childHtml;
|
|
363
|
-
if (tempDiv.firstChild) {
|
|
364
|
-
wrapper.appendChild(tempDiv.firstChild);
|
|
365
|
-
}
|
|
240
|
+
const childEl = this.renderChild(child, index);
|
|
241
|
+
wrapper.appendChild(childEl);
|
|
366
242
|
});
|
|
367
243
|
this._wireStandardEvents(wrapper);
|
|
368
244
|
container.appendChild(wrapper);
|
|
@@ -30,16 +30,14 @@ interface StackState extends BaseState {
|
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
32
|
* BaseStack - Foundation for all stack layout components
|
|
33
|
-
* Provides common styling, child management, and progressive effects
|
|
34
33
|
*/
|
|
35
34
|
export abstract class BaseStack extends BaseComponent<StackState> {
|
|
36
35
|
protected abstract baseClassName: string;
|
|
37
|
-
private _inlineStyles: Map<string, string> = new Map();
|
|
36
|
+
private _inlineStyles: Map<string, string> = new Map();
|
|
38
37
|
|
|
39
38
|
constructor(id: string, children: Record<string, any> | any[], options: StackOptions = {}) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
? children
|
|
39
|
+
const childArray = Array.isArray(children)
|
|
40
|
+
? children
|
|
43
41
|
: Object.values(children);
|
|
44
42
|
|
|
45
43
|
super(id, {
|
|
@@ -97,173 +95,65 @@ export abstract class BaseStack extends BaseComponent<StackState> {
|
|
|
97
95
|
}
|
|
98
96
|
|
|
99
97
|
/* ═════════════════════════════════════════════════════════════════
|
|
100
|
-
* FLUENT STYLE API
|
|
98
|
+
* FLUENT STYLE API
|
|
101
99
|
* ═════════════════════════════════════════════════════════════════ */
|
|
102
100
|
|
|
103
|
-
/**
|
|
104
|
-
* Internal helper to add individual CSS properties
|
|
105
|
-
*/
|
|
106
101
|
private _addStyle(property: string, value: string): this {
|
|
107
|
-
this._inlineStyles.set(property, value);
|
|
108
|
-
this._updateStyleAttribute();
|
|
102
|
+
this._inlineStyles.set(property, value);
|
|
103
|
+
this._updateStyleAttribute();
|
|
109
104
|
return this;
|
|
110
105
|
}
|
|
111
106
|
|
|
112
|
-
/**
|
|
113
|
-
* Build and apply the complete style attribute
|
|
114
|
-
*/
|
|
115
107
|
private _updateStyleAttribute(): void {
|
|
116
|
-
const styleString = Array.from(this._inlineStyles.entries())
|
|
117
|
-
.map(([prop, val]) => `${prop}: ${val}`)
|
|
118
|
-
.join('; ');
|
|
119
|
-
|
|
108
|
+
const styleString = Array.from(this._inlineStyles.entries())
|
|
109
|
+
.map(([prop, val]) => `${prop}: ${val}`)
|
|
110
|
+
.join('; ');
|
|
111
|
+
|
|
120
112
|
this.state.style = styleString;
|
|
121
113
|
}
|
|
122
114
|
|
|
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
|
-
maxWidth(value: string): this {
|
|
154
|
-
return this._addStyle('max-width', value);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
minHeight(value: string): this {
|
|
158
|
-
return this._addStyle('min-height', value);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
maxHeight(value: string): this {
|
|
162
|
-
return this._addStyle('max-height', value);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
// Visual
|
|
166
|
-
background(value: string): this {
|
|
167
|
-
return this._addStyle('background', value);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
backgroundColor(value: string): this {
|
|
171
|
-
return this._addStyle('background-color', value);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
boxShadow(value: string): this {
|
|
175
|
-
return this._addStyle('box-shadow', value);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
opacity(value: string | number): this {
|
|
179
|
-
return this._addStyle('opacity', String(value));
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
// Positioning
|
|
183
|
-
position(value: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'): this {
|
|
184
|
-
return this._addStyle('position', value);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
top(value: string): this {
|
|
188
|
-
return this._addStyle('top', value);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
right(value: string): this {
|
|
192
|
-
return this._addStyle('right', value);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
bottom(value: string): this {
|
|
196
|
-
return this._addStyle('bottom', value);
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
left(value: string): this {
|
|
200
|
-
return this._addStyle('left', value);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
zIndex(value: string | number): this {
|
|
204
|
-
return this._addStyle('z-index', String(value));
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// Overflow
|
|
208
|
-
overflow(value: 'visible' | 'hidden' | 'scroll' | 'auto'): this {
|
|
209
|
-
return this._addStyle('overflow', value);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
overflowX(value: 'visible' | 'hidden' | 'scroll' | 'auto'): this {
|
|
213
|
-
return this._addStyle('overflow-x', value);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
overflowY(value: 'visible' | 'hidden' | 'scroll' | 'auto'): this {
|
|
217
|
-
return this._addStyle('overflow-y', value);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
// Display
|
|
221
|
-
display(value: string): this {
|
|
222
|
-
return this._addStyle('display', value);
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
// Cursor
|
|
226
|
-
cursor(value: string): this {
|
|
227
|
-
return this._addStyle('cursor', value);
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
// Transform
|
|
231
|
-
transform(value: string): this {
|
|
232
|
-
return this._addStyle('transform', value);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
transformOrigin(value: string): this {
|
|
236
|
-
return this._addStyle('transform-origin', value);
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
// Transition & Animation
|
|
240
|
-
transition(value: string): this {
|
|
241
|
-
return this._addStyle('transition', value);
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
animation(value: string): this {
|
|
245
|
-
return this._addStyle('animation', value);
|
|
246
|
-
}
|
|
115
|
+
padding(value: string): this { return this._addStyle('padding', value); }
|
|
116
|
+
margin(value: string): this { return this._addStyle('margin', value); }
|
|
117
|
+
border(value: string): this { return this._addStyle('border', value); }
|
|
118
|
+
borderRadius(value: string): this { return this._addStyle('border-radius', value); }
|
|
119
|
+
width(value: string): this { return this._addStyle('width', value); }
|
|
120
|
+
height(value: string): this { return this._addStyle('height', value); }
|
|
121
|
+
minWidth(value: string): this { return this._addStyle('min-width', value); }
|
|
122
|
+
maxWidth(value: string): this { return this._addStyle('max-width', value); }
|
|
123
|
+
minHeight(value: string): this { return this._addStyle('min-height', value); }
|
|
124
|
+
maxHeight(value: string): this { return this._addStyle('max-height', value); }
|
|
125
|
+
background(value: string): this { return this._addStyle('background', value); }
|
|
126
|
+
backgroundColor(value: string): this { return this._addStyle('background-color', value); }
|
|
127
|
+
boxShadow(value: string): this { return this._addStyle('box-shadow', value); }
|
|
128
|
+
opacity(value: string | number): this { return this._addStyle('opacity', String(value)); }
|
|
129
|
+
position(value: string): this { return this._addStyle('position', value); }
|
|
130
|
+
top(value: string): this { return this._addStyle('top', value); }
|
|
131
|
+
right(value: string): this { return this._addStyle('right', value); }
|
|
132
|
+
bottom(value: string): this { return this._addStyle('bottom', value); }
|
|
133
|
+
left(value: string): this { return this._addStyle('left', value); }
|
|
134
|
+
zIndex(value: string | number): this { return this._addStyle('z-index', String(value)); }
|
|
135
|
+
overflow(value: string): this { return this._addStyle('overflow', value); }
|
|
136
|
+
overflowX(value: string): this { return this._addStyle('overflow-x', value); }
|
|
137
|
+
overflowY(value: string): this { return this._addStyle('overflow-y', value); }
|
|
138
|
+
display(value: string): this { return this._addStyle('display', value); }
|
|
139
|
+
cursor(value: string): this { return this._addStyle('cursor', value); }
|
|
140
|
+
transform(value: string): this { return this._addStyle('transform', value); }
|
|
141
|
+
transformOrigin(value: string): this { return this._addStyle('transform-origin', value); }
|
|
142
|
+
transition(value: string): this { return this._addStyle('transition', value); }
|
|
143
|
+
animation(value: string): this { return this._addStyle('animation', value); }
|
|
247
144
|
|
|
248
145
|
/* ═════════════════════════════════════════════════════════════════
|
|
249
146
|
* PROGRESSIVE CHILD STYLING
|
|
250
147
|
* ═════════════════════════════════════════════════════════════════ */
|
|
251
148
|
|
|
252
|
-
/**
|
|
253
|
-
* Apply custom styles to each child progressively
|
|
254
|
-
*/
|
|
255
149
|
childStyle(stylesOrFunction: string[] | ChildStyleFunction): this {
|
|
256
150
|
this.state.childStyles = stylesOrFunction;
|
|
257
151
|
return this;
|
|
258
152
|
}
|
|
259
153
|
|
|
260
|
-
/**
|
|
261
|
-
* Cascade effect - offset children progressively
|
|
262
|
-
*/
|
|
263
154
|
cascade(baseOffset: number = 20, axis: 'x' | 'y' | 'both' | 'horizontal' | 'vertical' | 'xy' = 'both'): this {
|
|
264
155
|
this.state.childStyles = (index: number) => {
|
|
265
156
|
const offset = baseOffset * index;
|
|
266
|
-
|
|
267
157
|
if (axis === 'horizontal' || axis === 'x') {
|
|
268
158
|
return `margin-left: ${offset}px;`;
|
|
269
159
|
} else if (axis === 'vertical' || axis === 'y') {
|
|
@@ -275,9 +165,6 @@ export abstract class BaseStack extends BaseComponent<StackState> {
|
|
|
275
165
|
return this;
|
|
276
166
|
}
|
|
277
167
|
|
|
278
|
-
/**
|
|
279
|
-
* Fan effect - rotate children progressively
|
|
280
|
-
*/
|
|
281
168
|
fan(angle: number = 5, origin: string = 'bottom center'): this {
|
|
282
169
|
this.state.childStyles = (index: number) => {
|
|
283
170
|
const rotation = angle * index;
|
|
@@ -286,9 +173,6 @@ export abstract class BaseStack extends BaseComponent<StackState> {
|
|
|
286
173
|
return this;
|
|
287
174
|
}
|
|
288
175
|
|
|
289
|
-
/**
|
|
290
|
-
* Scale progression - shrink/grow children
|
|
291
|
-
*/
|
|
292
176
|
scaleProgressive(startScale: number = 1, step: number = 0.05, origin: string = 'center'): this {
|
|
293
177
|
this.state.childStyles = (index: number) => {
|
|
294
178
|
const scale = startScale - (step * index);
|
|
@@ -297,9 +181,6 @@ export abstract class BaseStack extends BaseComponent<StackState> {
|
|
|
297
181
|
return this;
|
|
298
182
|
}
|
|
299
183
|
|
|
300
|
-
/**
|
|
301
|
-
* Fade effect - progressive opacity
|
|
302
|
-
*/
|
|
303
184
|
fade(startOpacity: number = 1, step: number = 0.15): this {
|
|
304
185
|
this.state.childStyles = (index: number) => {
|
|
305
186
|
const opacity = Math.max(0.1, startOpacity - (step * index));
|
|
@@ -308,9 +189,6 @@ export abstract class BaseStack extends BaseComponent<StackState> {
|
|
|
308
189
|
return this;
|
|
309
190
|
}
|
|
310
191
|
|
|
311
|
-
/**
|
|
312
|
-
* Blur effect - progressive blur
|
|
313
|
-
*/
|
|
314
192
|
blur(startBlur: number = 0, step: number = 2): this {
|
|
315
193
|
this.state.childStyles = (index: number) => {
|
|
316
194
|
const blur = startBlur + (step * index);
|
|
@@ -319,9 +197,6 @@ export abstract class BaseStack extends BaseComponent<StackState> {
|
|
|
319
197
|
return this;
|
|
320
198
|
}
|
|
321
199
|
|
|
322
|
-
/**
|
|
323
|
-
* Stagger animation delays
|
|
324
|
-
*/
|
|
325
200
|
stagger(baseDelay: number = 100): this {
|
|
326
201
|
this.state.childStyles = (index: number) => {
|
|
327
202
|
const delay = baseDelay * index;
|
|
@@ -336,112 +211,83 @@ export abstract class BaseStack extends BaseComponent<StackState> {
|
|
|
336
211
|
|
|
337
212
|
protected buildClasses(): string {
|
|
338
213
|
const { spacing, align, justify, divider, responsive } = this.state;
|
|
339
|
-
|
|
214
|
+
|
|
340
215
|
const classes = [this.baseClassName];
|
|
341
|
-
|
|
342
|
-
// Spacing modifier
|
|
216
|
+
|
|
343
217
|
if (spacing !== 'default') {
|
|
344
218
|
classes.push(`${this.baseClassName}-${spacing}`);
|
|
345
219
|
}
|
|
346
|
-
|
|
347
|
-
// Alignment
|
|
220
|
+
|
|
348
221
|
if (align) {
|
|
349
222
|
classes.push(`jux-stack-${align}`);
|
|
350
223
|
}
|
|
351
|
-
|
|
352
|
-
// Justification
|
|
224
|
+
|
|
353
225
|
if (justify) {
|
|
354
226
|
classes.push(`jux-stack-justify-${justify}`);
|
|
355
227
|
}
|
|
356
|
-
|
|
357
|
-
// Divider
|
|
228
|
+
|
|
358
229
|
if (divider) {
|
|
359
230
|
classes.push(`${this.baseClassName}-divider`);
|
|
360
231
|
}
|
|
361
|
-
|
|
362
|
-
// Responsive
|
|
232
|
+
|
|
363
233
|
if (responsive) {
|
|
364
234
|
classes.push(`${this.baseClassName}-responsive`);
|
|
365
235
|
}
|
|
366
|
-
|
|
367
|
-
// Custom classes
|
|
236
|
+
|
|
368
237
|
if (this.state.class) {
|
|
369
238
|
classes.push(this.state.class);
|
|
370
239
|
}
|
|
371
|
-
|
|
240
|
+
|
|
372
241
|
return classes.join(' ');
|
|
373
242
|
}
|
|
374
243
|
|
|
375
|
-
protected renderChild(child: any, index: number):
|
|
376
|
-
|
|
244
|
+
protected renderChild(child: any, index: number): HTMLElement {
|
|
245
|
+
let childElement: HTMLElement;
|
|
246
|
+
|
|
247
|
+
// String - wrap in div
|
|
377
248
|
if (typeof child === 'string') {
|
|
378
|
-
|
|
249
|
+
childElement = document.createElement('div');
|
|
250
|
+
childElement.textContent = child;
|
|
379
251
|
}
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
child.render(temp);
|
|
386
|
-
|
|
387
|
-
if (child.container) {
|
|
388
|
-
let html = child.container.outerHTML;
|
|
389
|
-
child.container = null; // Reset for reuse
|
|
390
|
-
return this.injectChildStyle(html, index);
|
|
391
|
-
}
|
|
252
|
+
// JUX Component - render it
|
|
253
|
+
else if (child && typeof child.render === 'function' && 'container' in child) {
|
|
254
|
+
const tempContainer = document.createElement('div');
|
|
255
|
+
child.render(tempContainer);
|
|
256
|
+
childElement = child.container || tempContainer.firstElementChild as HTMLElement;
|
|
392
257
|
}
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
return this.injectChildStyle(child.outerHTML, index);
|
|
258
|
+
// DOM Element - use directly
|
|
259
|
+
else if (child instanceof HTMLElement) {
|
|
260
|
+
childElement = child;
|
|
397
261
|
}
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
if (typeof rendered === 'string') {
|
|
404
|
-
return this.wrapChildWithStyle(rendered, index);
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
if (rendered && rendered.outerHTML) {
|
|
408
|
-
return this.injectChildStyle(rendered.outerHTML, index);
|
|
409
|
-
}
|
|
262
|
+
// Fallback
|
|
263
|
+
else {
|
|
264
|
+
childElement = document.createElement('div');
|
|
265
|
+
childElement.textContent = String(child);
|
|
410
266
|
}
|
|
411
267
|
|
|
412
|
-
//
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
const style = this.getChildStyle(index);
|
|
418
|
-
if (style) {
|
|
419
|
-
return `<div style="${style}">${html}</div>`;
|
|
268
|
+
// Apply child styles
|
|
269
|
+
const styleStr = this.getChildStyle(index);
|
|
270
|
+
if (styleStr) {
|
|
271
|
+
const existingStyle = childElement.getAttribute('style') || '';
|
|
272
|
+
childElement.setAttribute('style', existingStyle + '; ' + styleStr);
|
|
420
273
|
}
|
|
421
|
-
return html;
|
|
422
|
-
}
|
|
423
274
|
|
|
424
|
-
|
|
425
|
-
const style = this.getChildStyle(index);
|
|
426
|
-
if (style) {
|
|
427
|
-
return html.replace(/^<(\w+)/, `<$1 style="${style}"`);
|
|
428
|
-
}
|
|
429
|
-
return html;
|
|
275
|
+
return childElement;
|
|
430
276
|
}
|
|
431
277
|
|
|
432
278
|
private getChildStyle(index: number): string {
|
|
433
279
|
const { childStyles } = this.state;
|
|
434
|
-
|
|
280
|
+
|
|
435
281
|
if (!childStyles) return '';
|
|
436
|
-
|
|
282
|
+
|
|
437
283
|
if (typeof childStyles === 'function') {
|
|
438
284
|
return childStyles(index);
|
|
439
285
|
}
|
|
440
|
-
|
|
286
|
+
|
|
441
287
|
if (Array.isArray(childStyles)) {
|
|
442
288
|
return childStyles[index] || '';
|
|
443
289
|
}
|
|
444
|
-
|
|
290
|
+
|
|
445
291
|
return '';
|
|
446
292
|
}
|
|
447
293
|
|
|
@@ -455,21 +301,15 @@ export abstract class BaseStack extends BaseComponent<StackState> {
|
|
|
455
301
|
const wrapper = document.createElement('div');
|
|
456
302
|
wrapper.className = this.buildClasses();
|
|
457
303
|
wrapper.id = this._id;
|
|
458
|
-
|
|
459
|
-
// ✅ Apply the built style string
|
|
304
|
+
|
|
460
305
|
if (this.state.style) {
|
|
461
306
|
wrapper.setAttribute('style', this.state.style);
|
|
462
307
|
}
|
|
463
308
|
|
|
464
309
|
// Render all children
|
|
465
310
|
this.state.children.forEach((child, index) => {
|
|
466
|
-
const
|
|
467
|
-
|
|
468
|
-
tempDiv.innerHTML = childHtml;
|
|
469
|
-
|
|
470
|
-
if (tempDiv.firstChild) {
|
|
471
|
-
wrapper.appendChild(tempDiv.firstChild);
|
|
472
|
-
}
|
|
311
|
+
const childEl = this.renderChild(child, index);
|
|
312
|
+
wrapper.appendChild(childEl);
|
|
473
313
|
});
|
|
474
314
|
|
|
475
315
|
this._wireStandardEvents(wrapper);
|
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
import { BaseStack, StackOptions } from './BaseStack.js';
|
|
2
|
-
/**
|
|
3
|
-
* HStack - Horizontal Stack Component
|
|
4
|
-
* Arranges children in a horizontal row
|
|
5
|
-
*/
|
|
6
2
|
export declare class HStack extends BaseStack {
|
|
7
3
|
protected baseClassName: string;
|
|
8
4
|
constructor(id: string, children: Record<string, any> | any[], options?: StackOptions);
|
|
9
|
-
/**
|
|
10
|
-
* ✅ Static create method with auto-render
|
|
11
|
-
* Allows: hstack.create({ children }, options).padding('20px').render()
|
|
12
|
-
*/
|
|
13
5
|
static create(children: Record<string, any> | any[], options?: StackOptions): HStack;
|
|
14
6
|
}
|
|
15
7
|
export declare function hstack(id: string, children: Record<string, any> | any[], options?: StackOptions): HStack;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HStack.d.ts","sourceRoot":"","sources":["HStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"HStack.d.ts","sourceRoot":"","sources":["HStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEzD,qBAAa,MAAO,SAAQ,SAAS;IACjC,SAAS,CAAC,aAAa,SAAgB;gBAE3B,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,OAAO,GAAE,YAAiB;IAIzF,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM;CAY3F;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM,CAE5G"}
|
|
@@ -1,17 +1,9 @@
|
|
|
1
1
|
import { BaseStack } from './BaseStack.js';
|
|
2
|
-
/**
|
|
3
|
-
* HStack - Horizontal Stack Component
|
|
4
|
-
* Arranges children in a horizontal row
|
|
5
|
-
*/
|
|
6
2
|
export class HStack extends BaseStack {
|
|
7
3
|
constructor(id, children, options = {}) {
|
|
8
4
|
super(id, children, options);
|
|
9
5
|
this.baseClassName = 'jux-hstack';
|
|
10
6
|
}
|
|
11
|
-
/**
|
|
12
|
-
* ✅ Static create method with auto-render
|
|
13
|
-
* Allows: hstack.create({ children }, options).padding('20px').render()
|
|
14
|
-
*/
|
|
15
7
|
static create(children, options = {}) {
|
|
16
8
|
const id = `hstack-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
17
9
|
const instance = new HStack(id, children, options);
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { BaseStack, StackOptions } from './BaseStack.js';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* HStack - Horizontal Stack Component
|
|
5
|
-
* Arranges children in a horizontal row
|
|
6
|
-
*/
|
|
7
3
|
export class HStack extends BaseStack {
|
|
8
4
|
protected baseClassName = 'jux-hstack';
|
|
9
5
|
|
|
@@ -11,10 +7,6 @@ export class HStack extends BaseStack {
|
|
|
11
7
|
super(id, children, options);
|
|
12
8
|
}
|
|
13
9
|
|
|
14
|
-
/**
|
|
15
|
-
* ✅ Static create method with auto-render
|
|
16
|
-
* Allows: hstack.create({ children }, options).padding('20px').render()
|
|
17
|
-
*/
|
|
18
10
|
static create(children: Record<string, any> | any[], options: StackOptions = {}): HStack {
|
|
19
11
|
const id = `hstack-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
20
12
|
const instance = new HStack(id, children, options);
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import { BaseStack, StackOptions } from './BaseStack.js';
|
|
2
|
-
/**
|
|
3
|
-
* VStack - Vertical Stack Component
|
|
4
|
-
* Arranges children in a vertical column
|
|
5
|
-
*/
|
|
6
2
|
export declare class VStack extends BaseStack {
|
|
7
3
|
protected baseClassName: string;
|
|
8
4
|
constructor(id: string, children: Record<string, any> | any[], options?: StackOptions);
|
|
9
5
|
/**
|
|
10
6
|
* ✅ Static create method with auto-render
|
|
11
|
-
* Allows: vstack.create({ children }, options).padding('20px').render()
|
|
12
7
|
*/
|
|
13
8
|
static create(children: Record<string, any> | any[], options?: StackOptions): VStack;
|
|
14
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VStack.d.ts","sourceRoot":"","sources":["VStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"VStack.d.ts","sourceRoot":"","sources":["VStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEzD,qBAAa,MAAO,SAAQ,SAAS;IACjC,SAAS,CAAC,aAAa,SAAgB;gBAE3B,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,OAAO,GAAE,YAAiB;IAIzF;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM;CAa3F;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM,CAE5G"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { BaseStack } from './BaseStack.js';
|
|
2
|
-
/**
|
|
3
|
-
* VStack - Vertical Stack Component
|
|
4
|
-
* Arranges children in a vertical column
|
|
5
|
-
*/
|
|
6
2
|
export class VStack extends BaseStack {
|
|
7
3
|
constructor(id, children, options = {}) {
|
|
8
4
|
super(id, children, options);
|
|
@@ -10,13 +6,11 @@ export class VStack extends BaseStack {
|
|
|
10
6
|
}
|
|
11
7
|
/**
|
|
12
8
|
* ✅ Static create method with auto-render
|
|
13
|
-
* Allows: vstack.create({ children }, options).padding('20px').render()
|
|
14
9
|
*/
|
|
15
10
|
static create(children, options = {}) {
|
|
16
|
-
// Generate unique ID for anonymous stacks
|
|
17
11
|
const id = `vstack-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
18
12
|
const instance = new VStack(id, children, options);
|
|
19
|
-
// Auto-render after microtask
|
|
13
|
+
// ✅ Auto-render after microtask
|
|
20
14
|
queueMicrotask(() => {
|
|
21
15
|
if (!instance.container) {
|
|
22
16
|
instance.render('app');
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { BaseStack, StackOptions } from './BaseStack.js';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* VStack - Vertical Stack Component
|
|
5
|
-
* Arranges children in a vertical column
|
|
6
|
-
*/
|
|
7
3
|
export class VStack extends BaseStack {
|
|
8
4
|
protected baseClassName = 'jux-vstack';
|
|
9
5
|
|
|
@@ -13,14 +9,12 @@ export class VStack extends BaseStack {
|
|
|
13
9
|
|
|
14
10
|
/**
|
|
15
11
|
* ✅ Static create method with auto-render
|
|
16
|
-
* Allows: vstack.create({ children }, options).padding('20px').render()
|
|
17
12
|
*/
|
|
18
13
|
static create(children: Record<string, any> | any[], options: StackOptions = {}): VStack {
|
|
19
|
-
// Generate unique ID for anonymous stacks
|
|
20
14
|
const id = `vstack-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
21
15
|
const instance = new VStack(id, children, options);
|
|
22
16
|
|
|
23
|
-
// Auto-render after microtask
|
|
17
|
+
// ✅ Auto-render after microtask
|
|
24
18
|
queueMicrotask(() => {
|
|
25
19
|
if (!instance.container) {
|
|
26
20
|
instance.render('app');
|
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
import { BaseStack, StackOptions } from './BaseStack.js';
|
|
2
|
-
/**
|
|
3
|
-
* ZStack - Layered/Overlapping Stack Component
|
|
4
|
-
* Stacks children on top of each other (z-axis)
|
|
5
|
-
*/
|
|
6
2
|
export declare class ZStack extends BaseStack {
|
|
7
3
|
protected baseClassName: string;
|
|
8
4
|
constructor(id: string, children: Record<string, any> | any[], options?: StackOptions);
|
|
9
|
-
/**
|
|
10
|
-
* ✅ Static create method with auto-render
|
|
11
|
-
* Allows: zstack.create({ children }, options).cascade(30).render()
|
|
12
|
-
*/
|
|
13
5
|
static create(children: Record<string, any> | any[], options?: StackOptions): ZStack;
|
|
14
6
|
}
|
|
15
7
|
export declare function zstack(id: string, children: Record<string, any> | any[], options?: StackOptions): ZStack;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZStack.d.ts","sourceRoot":"","sources":["ZStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"ZStack.d.ts","sourceRoot":"","sources":["ZStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEzD,qBAAa,MAAO,SAAQ,SAAS;IACjC,SAAS,CAAC,aAAa,SAAgB;gBAE3B,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,OAAO,GAAE,YAAiB;IAIzF,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM;CAY3F;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM,CAE5G"}
|
|
@@ -1,17 +1,9 @@
|
|
|
1
1
|
import { BaseStack } from './BaseStack.js';
|
|
2
|
-
/**
|
|
3
|
-
* ZStack - Layered/Overlapping Stack Component
|
|
4
|
-
* Stacks children on top of each other (z-axis)
|
|
5
|
-
*/
|
|
6
2
|
export class ZStack extends BaseStack {
|
|
7
3
|
constructor(id, children, options = {}) {
|
|
8
4
|
super(id, children, options);
|
|
9
5
|
this.baseClassName = 'jux-zstack';
|
|
10
6
|
}
|
|
11
|
-
/**
|
|
12
|
-
* ✅ Static create method with auto-render
|
|
13
|
-
* Allows: zstack.create({ children }, options).cascade(30).render()
|
|
14
|
-
*/
|
|
15
7
|
static create(children, options = {}) {
|
|
16
8
|
const id = `zstack-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
17
9
|
const instance = new ZStack(id, children, options);
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { BaseStack, StackOptions } from './BaseStack.js';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* ZStack - Layered/Overlapping Stack Component
|
|
5
|
-
* Stacks children on top of each other (z-axis)
|
|
6
|
-
*/
|
|
7
3
|
export class ZStack extends BaseStack {
|
|
8
4
|
protected baseClassName = 'jux-zstack';
|
|
9
5
|
|
|
@@ -11,10 +7,6 @@ export class ZStack extends BaseStack {
|
|
|
11
7
|
super(id, children, options);
|
|
12
8
|
}
|
|
13
9
|
|
|
14
|
-
/**
|
|
15
|
-
* ✅ Static create method with auto-render
|
|
16
|
-
* Allows: zstack.create({ children }, options).cascade(30).render()
|
|
17
|
-
*/
|
|
18
10
|
static create(children: Record<string, any> | any[], options: StackOptions = {}): ZStack {
|
|
19
11
|
const id = `zstack-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
20
12
|
const instance = new ZStack(id, children, options);
|