flexium 0.8.14
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 +219 -0
- package/dist/DrawText-CeXBL8Ev.d.ts +309 -0
- package/dist/DrawText-JB58mpQT.d.cts +309 -0
- package/dist/Motion-BrOAJzgH.d.cts +87 -0
- package/dist/Motion-BrOAJzgH.d.ts +87 -0
- package/dist/advanced.d.cts +30 -0
- package/dist/advanced.d.ts +30 -0
- package/dist/advanced.js +2 -0
- package/dist/advanced.js.map +1 -0
- package/dist/advanced.mjs +2 -0
- package/dist/advanced.mjs.map +1 -0
- package/dist/canvas.d.cts +22 -0
- package/dist/canvas.d.ts +22 -0
- package/dist/canvas.js +2 -0
- package/dist/canvas.js.map +1 -0
- package/dist/canvas.mjs +2 -0
- package/dist/canvas.mjs.map +1 -0
- package/dist/chunk-2MVKTSFR.mjs +3 -0
- package/dist/chunk-2MVKTSFR.mjs.map +1 -0
- package/dist/chunk-2U4DW375.mjs +2 -0
- package/dist/chunk-2U4DW375.mjs.map +1 -0
- package/dist/chunk-3P6DMEGB.js +2 -0
- package/dist/chunk-3P6DMEGB.js.map +1 -0
- package/dist/chunk-5S3ZQ2LB.mjs +3 -0
- package/dist/chunk-5S3ZQ2LB.mjs.map +1 -0
- package/dist/chunk-CNY6FPKJ.js +2 -0
- package/dist/chunk-CNY6FPKJ.js.map +1 -0
- package/dist/chunk-CZYIK6FD.mjs +2 -0
- package/dist/chunk-CZYIK6FD.mjs.map +1 -0
- package/dist/chunk-DOGIWSDA.js +2 -0
- package/dist/chunk-DOGIWSDA.js.map +1 -0
- package/dist/chunk-EX2GURH5.mjs +3 -0
- package/dist/chunk-EX2GURH5.mjs.map +1 -0
- package/dist/chunk-GDBJ322I.js +2 -0
- package/dist/chunk-GDBJ322I.js.map +1 -0
- package/dist/chunk-I7UCVARB.js +2 -0
- package/dist/chunk-I7UCVARB.js.map +1 -0
- package/dist/chunk-KNF5ERPK.mjs +2 -0
- package/dist/chunk-KNF5ERPK.mjs.map +1 -0
- package/dist/chunk-MLZTCKTH.mjs +2 -0
- package/dist/chunk-MLZTCKTH.mjs.map +1 -0
- package/dist/chunk-OPAQ4R4M.mjs +2 -0
- package/dist/chunk-OPAQ4R4M.mjs.map +1 -0
- package/dist/chunk-Q7IWDVJ4.js +2 -0
- package/dist/chunk-Q7IWDVJ4.js.map +1 -0
- package/dist/chunk-R5CS7UZG.mjs +2 -0
- package/dist/chunk-R5CS7UZG.mjs.map +1 -0
- package/dist/chunk-REETNY2Z.js +3 -0
- package/dist/chunk-REETNY2Z.js.map +1 -0
- package/dist/chunk-ROYFUJN5.js +3 -0
- package/dist/chunk-ROYFUJN5.js.map +1 -0
- package/dist/chunk-U6C6VDVZ.js +2 -0
- package/dist/chunk-U6C6VDVZ.js.map +1 -0
- package/dist/chunk-V4K6WOXN.js +3 -0
- package/dist/chunk-V4K6WOXN.js.map +1 -0
- package/dist/chunk-WQFQO5LK.js +2 -0
- package/dist/chunk-WQFQO5LK.js.map +1 -0
- package/dist/chunk-WVEJT7HD.mjs +2 -0
- package/dist/chunk-WVEJT7HD.mjs.map +1 -0
- package/dist/chunk-ZNPYN2TZ.mjs +2 -0
- package/dist/chunk-ZNPYN2TZ.mjs.map +1 -0
- package/dist/core.d.cts +24 -0
- package/dist/core.d.ts +24 -0
- package/dist/core.js +2 -0
- package/dist/core.js.map +1 -0
- package/dist/core.mjs +2 -0
- package/dist/core.mjs.map +1 -0
- package/dist/dom.d.cts +36 -0
- package/dist/dom.d.ts +36 -0
- package/dist/dom.js +2 -0
- package/dist/dom.js.map +1 -0
- package/dist/dom.mjs +2 -0
- package/dist/dom.mjs.map +1 -0
- package/dist/index.d.cts +26 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- package/dist/interactive.d.cts +161 -0
- package/dist/interactive.d.ts +161 -0
- package/dist/interactive.js +2 -0
- package/dist/interactive.js.map +1 -0
- package/dist/interactive.mjs +2 -0
- package/dist/interactive.mjs.map +1 -0
- package/dist/jsx-dev-runtime.d.cts +2 -0
- package/dist/jsx-dev-runtime.d.ts +2 -0
- package/dist/jsx-dev-runtime.js +2 -0
- package/dist/jsx-dev-runtime.js.map +1 -0
- package/dist/jsx-dev-runtime.mjs +2 -0
- package/dist/jsx-dev-runtime.mjs.map +1 -0
- package/dist/jsx-runtime.d.cts +78 -0
- package/dist/jsx-runtime.d.ts +78 -0
- package/dist/jsx-runtime.js +2 -0
- package/dist/jsx-runtime.js.map +1 -0
- package/dist/jsx-runtime.mjs +2 -0
- package/dist/jsx-runtime.mjs.map +1 -0
- package/dist/metafile-cjs.json +1 -0
- package/dist/metafile-esm.json +1 -0
- package/dist/portal-BpcIlK9y.d.cts +206 -0
- package/dist/portal-DBwz7gD0.d.ts +206 -0
- package/dist/primitives/layout.d.cts +295 -0
- package/dist/primitives/layout.d.ts +295 -0
- package/dist/primitives/layout.js +2 -0
- package/dist/primitives/layout.js.map +1 -0
- package/dist/primitives/layout.mjs +2 -0
- package/dist/primitives/layout.mjs.map +1 -0
- package/dist/primitives/motion.d.cts +230 -0
- package/dist/primitives/motion.d.ts +230 -0
- package/dist/primitives/motion.js +2 -0
- package/dist/primitives/motion.js.map +1 -0
- package/dist/primitives/motion.mjs +2 -0
- package/dist/primitives/motion.mjs.map +1 -0
- package/dist/primitives/ui.d.cts +81 -0
- package/dist/primitives/ui.d.ts +81 -0
- package/dist/primitives/ui.js +2 -0
- package/dist/primitives/ui.js.map +1 -0
- package/dist/primitives/ui.mjs +2 -0
- package/dist/primitives/ui.mjs.map +1 -0
- package/dist/primitives.d.cts +92 -0
- package/dist/primitives.d.ts +92 -0
- package/dist/primitives.js +2 -0
- package/dist/primitives.js.map +1 -0
- package/dist/primitives.mjs +2 -0
- package/dist/primitives.mjs.map +1 -0
- package/dist/renderer-DSLb-FGg.d.cts +135 -0
- package/dist/renderer-DSLb-FGg.d.ts +135 -0
- package/dist/router.d.cts +126 -0
- package/dist/router.d.ts +126 -0
- package/dist/router.js +2 -0
- package/dist/router.js.map +1 -0
- package/dist/router.mjs +2 -0
- package/dist/router.mjs.map +1 -0
- package/dist/server.d.cts +3 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -0
- package/dist/server.mjs +2 -0
- package/dist/server.mjs.map +1 -0
- package/dist/signal-PWBIM6JV.mjs +2 -0
- package/dist/signal-PWBIM6JV.mjs.map +1 -0
- package/dist/signal-XZXQ4VYQ.js +2 -0
- package/dist/signal-XZXQ4VYQ.js.map +1 -0
- package/dist/signal-mNtlF8-v.d.cts +158 -0
- package/dist/signal-mNtlF8-v.d.ts +158 -0
- package/dist/state-kK9sQh9s.d.cts +73 -0
- package/dist/state-kK9sQh9s.d.ts +73 -0
- package/dist/test-exports.d.cts +17 -0
- package/dist/test-exports.d.ts +17 -0
- package/dist/test-exports.js +2 -0
- package/dist/test-exports.js.map +1 -0
- package/dist/test-exports.mjs +2 -0
- package/dist/test-exports.mjs.map +1 -0
- package/package.json +173 -0
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import { S as Signal } from './signal-mNtlF8-v.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Core Flexium types
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Flexium Node - internal representation of UI elements
|
|
8
|
+
*/
|
|
9
|
+
interface FNode {
|
|
10
|
+
type: string;
|
|
11
|
+
props: Record<string, any>;
|
|
12
|
+
children: FNode[];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Cross-platform Primitives Type Definitions
|
|
17
|
+
*
|
|
18
|
+
* These types work across web (DOM) and React Native
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Common style properties that work on both web and React Native
|
|
23
|
+
* Based on Flexbox layout model
|
|
24
|
+
*/
|
|
25
|
+
interface CommonStyle {
|
|
26
|
+
display?: 'flex' | 'none';
|
|
27
|
+
flex?: number;
|
|
28
|
+
flexDirection?: 'row' | 'column' | 'row-reverse' | 'column-reverse';
|
|
29
|
+
flexWrap?: 'nowrap' | 'wrap' | 'wrap-reverse';
|
|
30
|
+
justifyContent?: 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly';
|
|
31
|
+
alignItems?: 'flex-start' | 'center' | 'flex-end' | 'stretch' | 'baseline';
|
|
32
|
+
alignSelf?: 'auto' | 'flex-start' | 'center' | 'flex-end' | 'stretch';
|
|
33
|
+
gap?: number;
|
|
34
|
+
padding?: number;
|
|
35
|
+
paddingTop?: number;
|
|
36
|
+
paddingRight?: number;
|
|
37
|
+
paddingBottom?: number;
|
|
38
|
+
paddingLeft?: number;
|
|
39
|
+
paddingHorizontal?: number;
|
|
40
|
+
paddingVertical?: number;
|
|
41
|
+
margin?: number;
|
|
42
|
+
marginTop?: number;
|
|
43
|
+
marginRight?: number;
|
|
44
|
+
marginBottom?: number;
|
|
45
|
+
marginLeft?: number;
|
|
46
|
+
marginHorizontal?: number;
|
|
47
|
+
marginVertical?: number;
|
|
48
|
+
width?: number | string;
|
|
49
|
+
height?: number | string;
|
|
50
|
+
minWidth?: number;
|
|
51
|
+
maxWidth?: number;
|
|
52
|
+
minHeight?: number;
|
|
53
|
+
maxHeight?: number;
|
|
54
|
+
backgroundColor?: string;
|
|
55
|
+
borderRadius?: number;
|
|
56
|
+
borderTopLeftRadius?: number;
|
|
57
|
+
borderTopRightRadius?: number;
|
|
58
|
+
borderBottomLeftRadius?: number;
|
|
59
|
+
borderBottomRightRadius?: number;
|
|
60
|
+
opacity?: number;
|
|
61
|
+
borderWidth?: number;
|
|
62
|
+
borderColor?: string;
|
|
63
|
+
borderTopWidth?: number;
|
|
64
|
+
borderRightWidth?: number;
|
|
65
|
+
borderBottomWidth?: number;
|
|
66
|
+
borderLeftWidth?: number;
|
|
67
|
+
position?: 'relative' | 'absolute';
|
|
68
|
+
top?: number;
|
|
69
|
+
right?: number;
|
|
70
|
+
bottom?: number;
|
|
71
|
+
left?: number;
|
|
72
|
+
zIndex?: number;
|
|
73
|
+
transform?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Text-specific style properties
|
|
77
|
+
*/
|
|
78
|
+
interface TextStyle extends CommonStyle {
|
|
79
|
+
color?: string;
|
|
80
|
+
fontSize?: number;
|
|
81
|
+
fontWeight?: 'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | number;
|
|
82
|
+
fontFamily?: string;
|
|
83
|
+
fontStyle?: 'normal' | 'italic';
|
|
84
|
+
textAlign?: 'left' | 'center' | 'right' | 'justify';
|
|
85
|
+
textDecoration?: 'none' | 'underline' | 'line-through';
|
|
86
|
+
lineHeight?: number;
|
|
87
|
+
letterSpacing?: number;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Text component props
|
|
91
|
+
* Universal text display
|
|
92
|
+
*/
|
|
93
|
+
interface TextProps {
|
|
94
|
+
children?: any;
|
|
95
|
+
style?: TextStyle;
|
|
96
|
+
/** Press/click handler (unified API for web and mobile) */
|
|
97
|
+
onPress?: () => void;
|
|
98
|
+
/** CSS class name */
|
|
99
|
+
class?: string;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Image component props
|
|
103
|
+
*/
|
|
104
|
+
interface ImageProps {
|
|
105
|
+
src: string;
|
|
106
|
+
alt?: string;
|
|
107
|
+
width?: number;
|
|
108
|
+
height?: number;
|
|
109
|
+
style?: CommonStyle;
|
|
110
|
+
onLoad?: () => void;
|
|
111
|
+
onError?: () => void;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Pressable component props
|
|
115
|
+
* Universal touchable/clickable element
|
|
116
|
+
*/
|
|
117
|
+
interface PressableProps {
|
|
118
|
+
children?: any;
|
|
119
|
+
onPress: () => void;
|
|
120
|
+
onPressIn?: () => void;
|
|
121
|
+
onPressOut?: () => void;
|
|
122
|
+
disabled?: boolean;
|
|
123
|
+
style?: CommonStyle;
|
|
124
|
+
activeOpacity?: number;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* ScrollView component props
|
|
128
|
+
*/
|
|
129
|
+
interface ScrollViewProps {
|
|
130
|
+
children?: any;
|
|
131
|
+
style?: CommonStyle;
|
|
132
|
+
horizontal?: boolean;
|
|
133
|
+
/** Show horizontal scrollbar (default: true) */
|
|
134
|
+
showScrollbarX?: boolean;
|
|
135
|
+
/** Show vertical scrollbar (default: true) */
|
|
136
|
+
showScrollbarY?: boolean;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Canvas container props
|
|
140
|
+
*/
|
|
141
|
+
interface CanvasProps {
|
|
142
|
+
width: number;
|
|
143
|
+
height: number;
|
|
144
|
+
children?: any;
|
|
145
|
+
style?: CommonStyle;
|
|
146
|
+
id?: string;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Rectangle drawing props
|
|
150
|
+
*/
|
|
151
|
+
interface DrawRectProps {
|
|
152
|
+
x: number | Signal<number>;
|
|
153
|
+
y: number | Signal<number>;
|
|
154
|
+
width: number | Signal<number>;
|
|
155
|
+
height: number | Signal<number>;
|
|
156
|
+
fill?: string | Signal<string>;
|
|
157
|
+
stroke?: string | Signal<string>;
|
|
158
|
+
strokeWidth?: number | Signal<number>;
|
|
159
|
+
opacity?: number | Signal<number>;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Circle drawing props
|
|
163
|
+
*/
|
|
164
|
+
interface DrawCircleProps {
|
|
165
|
+
x: number | Signal<number>;
|
|
166
|
+
y: number | Signal<number>;
|
|
167
|
+
radius: number | Signal<number>;
|
|
168
|
+
fill?: string | Signal<string>;
|
|
169
|
+
stroke?: string | Signal<string>;
|
|
170
|
+
strokeWidth?: number | Signal<number>;
|
|
171
|
+
opacity?: number | Signal<number>;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Path drawing props
|
|
175
|
+
*/
|
|
176
|
+
interface DrawPathProps {
|
|
177
|
+
d: string | Signal<string>;
|
|
178
|
+
fill?: string | Signal<string>;
|
|
179
|
+
stroke?: string | Signal<string>;
|
|
180
|
+
strokeWidth?: number | Signal<number>;
|
|
181
|
+
opacity?: number | Signal<number>;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Canvas text drawing props
|
|
185
|
+
*/
|
|
186
|
+
interface DrawTextProps {
|
|
187
|
+
x: number | Signal<number>;
|
|
188
|
+
y: number | Signal<number>;
|
|
189
|
+
text: string | Signal<string>;
|
|
190
|
+
fill?: string | Signal<string>;
|
|
191
|
+
fontSize?: number | Signal<number>;
|
|
192
|
+
fontFamily?: string;
|
|
193
|
+
fontWeight?: 'normal' | 'bold' | number;
|
|
194
|
+
textAlign?: 'left' | 'center' | 'right';
|
|
195
|
+
textBaseline?: 'top' | 'middle' | 'bottom' | 'alphabetic';
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Line drawing props
|
|
199
|
+
*/
|
|
200
|
+
interface DrawLineProps {
|
|
201
|
+
x1: number | Signal<number>;
|
|
202
|
+
y1: number | Signal<number>;
|
|
203
|
+
x2: number | Signal<number>;
|
|
204
|
+
y2: number | Signal<number>;
|
|
205
|
+
stroke?: string | Signal<string>;
|
|
206
|
+
strokeWidth?: number | Signal<number>;
|
|
207
|
+
opacity?: number | Signal<number>;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Arc drawing props
|
|
211
|
+
*/
|
|
212
|
+
interface DrawArcProps {
|
|
213
|
+
x: number | Signal<number>;
|
|
214
|
+
y: number | Signal<number>;
|
|
215
|
+
radius: number | Signal<number>;
|
|
216
|
+
startAngle: number | Signal<number>;
|
|
217
|
+
endAngle: number | Signal<number>;
|
|
218
|
+
counterclockwise?: boolean;
|
|
219
|
+
fill?: string | Signal<string>;
|
|
220
|
+
stroke?: string | Signal<string>;
|
|
221
|
+
strokeWidth?: number | Signal<number>;
|
|
222
|
+
opacity?: number | Signal<number>;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Canvas - Declarative canvas container with JSX drawing
|
|
227
|
+
*
|
|
228
|
+
* Supports Signal-based reactive rendering
|
|
229
|
+
*
|
|
230
|
+
* @example
|
|
231
|
+
* ```tsx
|
|
232
|
+
* const x = signal(50)
|
|
233
|
+
*
|
|
234
|
+
* <Canvas width={300} height={200}>
|
|
235
|
+
* <Rect x={x} y={50} width={100} height={50} fill="blue" />
|
|
236
|
+
* <Circle x={150} y={100} radius={30} fill="red" />
|
|
237
|
+
* </Canvas>
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
240
|
+
|
|
241
|
+
declare function Canvas(props: CanvasProps): FNode;
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* DrawRect - Canvas rectangle primitive
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```tsx
|
|
248
|
+
* <DrawRect x={10} y={10} width={100} height={50} fill="blue" />
|
|
249
|
+
* ```
|
|
250
|
+
*/
|
|
251
|
+
|
|
252
|
+
declare function DrawRect(props: DrawRectProps): FNode;
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* DrawCircle - Canvas circle primitive
|
|
256
|
+
*
|
|
257
|
+
* @example
|
|
258
|
+
* ```tsx
|
|
259
|
+
* <DrawCircle x={100} y={100} radius={50} fill="red" />
|
|
260
|
+
* ```
|
|
261
|
+
*/
|
|
262
|
+
|
|
263
|
+
declare function DrawCircle(props: DrawCircleProps): FNode;
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* DrawArc - Canvas arc primitive
|
|
267
|
+
*
|
|
268
|
+
* @example
|
|
269
|
+
* ```tsx
|
|
270
|
+
* <DrawArc x={100} y={100} radius={50} startAngle={0} endAngle={Math.PI} fill="green" />
|
|
271
|
+
* ```
|
|
272
|
+
*/
|
|
273
|
+
|
|
274
|
+
declare function DrawArc(props: DrawArcProps): FNode;
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* DrawLine - Canvas line primitive
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
* ```tsx
|
|
281
|
+
* <DrawLine x1={10} y1={10} x2={100} y2={100} stroke="black" strokeWidth={2} />
|
|
282
|
+
* ```
|
|
283
|
+
*/
|
|
284
|
+
|
|
285
|
+
declare function DrawLine(props: DrawLineProps): FNode;
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* DrawPath - Canvas path primitive
|
|
289
|
+
*
|
|
290
|
+
* @example
|
|
291
|
+
* ```tsx
|
|
292
|
+
* <DrawPath d="M 10 10 L 100 100" stroke="black" strokeWidth={2} />
|
|
293
|
+
* ```
|
|
294
|
+
*/
|
|
295
|
+
|
|
296
|
+
declare function DrawPath(props: DrawPathProps): FNode;
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* DrawText - Canvas text primitive
|
|
300
|
+
*
|
|
301
|
+
* @example
|
|
302
|
+
* ```tsx
|
|
303
|
+
* <DrawText x={50} y={50} text="Hello Canvas" fontSize={20} fill="black" />
|
|
304
|
+
* ```
|
|
305
|
+
*/
|
|
306
|
+
|
|
307
|
+
declare function DrawText(props: DrawTextProps): FNode;
|
|
308
|
+
|
|
309
|
+
export { Canvas as C, DrawRect as D, type FNode as F, type ImageProps as I, type PressableProps as P, type ScrollViewProps as S, type TextProps as T, DrawCircle as a, DrawArc as b, DrawLine as c, DrawPath as d, DrawText as e, type CanvasProps as f, type DrawRectProps as g, type DrawCircleProps as h, type DrawArcProps as i, type DrawLineProps as j, type DrawPathProps as k, type DrawTextProps as l, type CommonStyle as m, type TextStyle as n };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Motion Component - Declarative animations using Web Animations API
|
|
3
|
+
*
|
|
4
|
+
* Provides smooth, performant animations without JavaScript RAF
|
|
5
|
+
* Supports transforms, opacity, spring physics, and layout animations
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Animation properties that can be animated
|
|
9
|
+
*/
|
|
10
|
+
interface AnimatableProps {
|
|
11
|
+
x?: number;
|
|
12
|
+
y?: number;
|
|
13
|
+
scale?: number;
|
|
14
|
+
scaleX?: number;
|
|
15
|
+
scaleY?: number;
|
|
16
|
+
rotate?: number;
|
|
17
|
+
opacity?: number;
|
|
18
|
+
width?: number | string;
|
|
19
|
+
height?: number | string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Spring physics configuration
|
|
23
|
+
*/
|
|
24
|
+
interface SpringConfig {
|
|
25
|
+
tension?: number;
|
|
26
|
+
friction?: number;
|
|
27
|
+
mass?: number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Motion component props
|
|
31
|
+
*/
|
|
32
|
+
interface MotionProps {
|
|
33
|
+
element?: HTMLElement | null;
|
|
34
|
+
initial?: AnimatableProps;
|
|
35
|
+
animate?: AnimatableProps;
|
|
36
|
+
exit?: AnimatableProps;
|
|
37
|
+
duration?: number;
|
|
38
|
+
spring?: SpringConfig;
|
|
39
|
+
easing?: string;
|
|
40
|
+
delay?: number;
|
|
41
|
+
onAnimationStart?: () => void;
|
|
42
|
+
onAnimationComplete?: () => void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Cleanup motion module state (useful for testing and SSR)
|
|
46
|
+
*/
|
|
47
|
+
declare function cleanupMotionState(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Motion controller class
|
|
50
|
+
* Manages animations for a single element using Web Animations API
|
|
51
|
+
* Respects prefers-reduced-motion accessibility setting
|
|
52
|
+
*/
|
|
53
|
+
declare class MotionController {
|
|
54
|
+
private element;
|
|
55
|
+
private animation;
|
|
56
|
+
private resizeObserver;
|
|
57
|
+
private previousSize;
|
|
58
|
+
constructor(element: HTMLElement);
|
|
59
|
+
/**
|
|
60
|
+
* Animate from initial to animate props
|
|
61
|
+
* Respects prefers-reduced-motion: applies end state instantly if enabled
|
|
62
|
+
*/
|
|
63
|
+
animate(props: MotionProps): void;
|
|
64
|
+
/**
|
|
65
|
+
* Animate exit (used when element is being removed)
|
|
66
|
+
* Respects prefers-reduced-motion: applies end state instantly if enabled
|
|
67
|
+
*/
|
|
68
|
+
animateExit(exitProps: AnimatableProps, duration?: number, easing?: string): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Enable layout animations (animate size changes automatically)
|
|
71
|
+
*/
|
|
72
|
+
enableLayoutAnimation(duration?: number, easing?: string): void;
|
|
73
|
+
/**
|
|
74
|
+
* Disable layout animations
|
|
75
|
+
*/
|
|
76
|
+
disableLayoutAnimation(): void;
|
|
77
|
+
/**
|
|
78
|
+
* Cancel current animation
|
|
79
|
+
*/
|
|
80
|
+
cancel(): void;
|
|
81
|
+
/**
|
|
82
|
+
* Cleanup all animations and observers
|
|
83
|
+
*/
|
|
84
|
+
dispose(): void;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export { type AnimatableProps as A, MotionController as M, type SpringConfig as S, type MotionProps as a, cleanupMotionState as c };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Motion Component - Declarative animations using Web Animations API
|
|
3
|
+
*
|
|
4
|
+
* Provides smooth, performant animations without JavaScript RAF
|
|
5
|
+
* Supports transforms, opacity, spring physics, and layout animations
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Animation properties that can be animated
|
|
9
|
+
*/
|
|
10
|
+
interface AnimatableProps {
|
|
11
|
+
x?: number;
|
|
12
|
+
y?: number;
|
|
13
|
+
scale?: number;
|
|
14
|
+
scaleX?: number;
|
|
15
|
+
scaleY?: number;
|
|
16
|
+
rotate?: number;
|
|
17
|
+
opacity?: number;
|
|
18
|
+
width?: number | string;
|
|
19
|
+
height?: number | string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Spring physics configuration
|
|
23
|
+
*/
|
|
24
|
+
interface SpringConfig {
|
|
25
|
+
tension?: number;
|
|
26
|
+
friction?: number;
|
|
27
|
+
mass?: number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Motion component props
|
|
31
|
+
*/
|
|
32
|
+
interface MotionProps {
|
|
33
|
+
element?: HTMLElement | null;
|
|
34
|
+
initial?: AnimatableProps;
|
|
35
|
+
animate?: AnimatableProps;
|
|
36
|
+
exit?: AnimatableProps;
|
|
37
|
+
duration?: number;
|
|
38
|
+
spring?: SpringConfig;
|
|
39
|
+
easing?: string;
|
|
40
|
+
delay?: number;
|
|
41
|
+
onAnimationStart?: () => void;
|
|
42
|
+
onAnimationComplete?: () => void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Cleanup motion module state (useful for testing and SSR)
|
|
46
|
+
*/
|
|
47
|
+
declare function cleanupMotionState(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Motion controller class
|
|
50
|
+
* Manages animations for a single element using Web Animations API
|
|
51
|
+
* Respects prefers-reduced-motion accessibility setting
|
|
52
|
+
*/
|
|
53
|
+
declare class MotionController {
|
|
54
|
+
private element;
|
|
55
|
+
private animation;
|
|
56
|
+
private resizeObserver;
|
|
57
|
+
private previousSize;
|
|
58
|
+
constructor(element: HTMLElement);
|
|
59
|
+
/**
|
|
60
|
+
* Animate from initial to animate props
|
|
61
|
+
* Respects prefers-reduced-motion: applies end state instantly if enabled
|
|
62
|
+
*/
|
|
63
|
+
animate(props: MotionProps): void;
|
|
64
|
+
/**
|
|
65
|
+
* Animate exit (used when element is being removed)
|
|
66
|
+
* Respects prefers-reduced-motion: applies end state instantly if enabled
|
|
67
|
+
*/
|
|
68
|
+
animateExit(exitProps: AnimatableProps, duration?: number, easing?: string): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Enable layout animations (animate size changes automatically)
|
|
71
|
+
*/
|
|
72
|
+
enableLayoutAnimation(duration?: number, easing?: string): void;
|
|
73
|
+
/**
|
|
74
|
+
* Disable layout animations
|
|
75
|
+
*/
|
|
76
|
+
disableLayoutAnimation(): void;
|
|
77
|
+
/**
|
|
78
|
+
* Cancel current animation
|
|
79
|
+
*/
|
|
80
|
+
cancel(): void;
|
|
81
|
+
/**
|
|
82
|
+
* Cleanup all animations and observers
|
|
83
|
+
*/
|
|
84
|
+
dispose(): void;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export { type AnimatableProps as A, MotionController as M, type SpringConfig as S, type MotionProps as a, cleanupMotionState as c };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export { C as Computed, S as Signal, o as onCleanup, r as root, s as signal, u as untrack } from './signal-mNtlF8-v.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Flexium DevTools Integration
|
|
5
|
+
*
|
|
6
|
+
* Provides hooks for browser devtools extension to inspect signals,
|
|
7
|
+
* effects, and component trees.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* import { enableDevTools, getDevToolsState } from 'flexium/devtools';
|
|
12
|
+
*
|
|
13
|
+
* // Enable devtools in development
|
|
14
|
+
* if (process.env.NODE_ENV !== 'production') {
|
|
15
|
+
* enableDevTools();
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Enable devtools integration
|
|
22
|
+
* Call this in development mode to enable signal/effect inspection
|
|
23
|
+
*/
|
|
24
|
+
declare function enableDevTools(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Disable devtools integration
|
|
27
|
+
*/
|
|
28
|
+
declare function disableDevTools(): void;
|
|
29
|
+
|
|
30
|
+
export { disableDevTools, enableDevTools };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export { C as Computed, S as Signal, o as onCleanup, r as root, s as signal, u as untrack } from './signal-mNtlF8-v.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Flexium DevTools Integration
|
|
5
|
+
*
|
|
6
|
+
* Provides hooks for browser devtools extension to inspect signals,
|
|
7
|
+
* effects, and component trees.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* import { enableDevTools, getDevToolsState } from 'flexium/devtools';
|
|
12
|
+
*
|
|
13
|
+
* // Enable devtools in development
|
|
14
|
+
* if (process.env.NODE_ENV !== 'production') {
|
|
15
|
+
* enableDevTools();
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Enable devtools integration
|
|
22
|
+
* Call this in development mode to enable signal/effect inspection
|
|
23
|
+
*/
|
|
24
|
+
declare function enableDevTools(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Disable devtools integration
|
|
27
|
+
*/
|
|
28
|
+
declare function disableDevTools(): void;
|
|
29
|
+
|
|
30
|
+
export { disableDevTools, enableDevTools };
|
package/dist/advanced.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunkROYFUJN5_js=require('./chunk-ROYFUJN5.js');var o={enabled:false,signals:new Map,effects:new Map,components:new Map},m=0,g=0;var s=[];function b(){o.enabled=true,chunkROYFUJN5_js.d({onSignalCreate:(e,n)=>w(e,n),onSignalUpdate:(e,n)=>D(e,n),onEffectCreate:e=>E(e),onEffectRun:(e,n,t)=>S(e,n,t)}),typeof window<"u"&&(window.__FLEXIUM_DEVTOOLS__={getState:T,getSignals:()=>Array.from(o.signals.values()),getEffects:()=>Array.from(o.effects.values()),getComponents:()=>Array.from(o.components.values()),subscribe:e=>(s.push(e),()=>{let n=s.indexOf(e);n>-1&&s.splice(n,1);})},console.log("%c[Flexium DevTools] Enabled","color: #10b981; font-weight: bold;"));}function v(){o.enabled=false,o.signals.clear(),o.effects.clear(),o.components.clear(),chunkROYFUJN5_js.d(null),typeof window<"u"&&delete window.__FLEXIUM_DEVTOOLS__;}function T(){return {...o}}function a(e,n){for(let t of s)try{t(e,n);}catch(r){chunkROYFUJN5_js.b(chunkROYFUJN5_js.a.DEVTOOLS_LISTENER_ERROR,{event:e},r);}}function w(e,n){if(!o.enabled)return -1;let t=m++,r=Date.now();return o.signals.set(t,{id:t,name:n,value:e.peek(),subscribers:0,createdAt:r,lastUpdated:r,updateCount:0}),a("signal-create",{id:t,name:n}),t}function D(e,n){if(!o.enabled)return;let t=o.signals.get(e);t&&(t.value=n,t.lastUpdated=Date.now(),t.updateCount++,a("signal-update",{id:e,value:n}));}function E(e){if(!o.enabled)return -1;let n=g++;return o.effects.set(n,{id:n,name:e,dependencies:[],lastRun:Date.now(),runCount:0,status:"idle"}),a("effect-create",{id:n,name:e}),n}function S(e,n,t){if(!o.enabled)return;let r=o.effects.get(e);r&&(r.status=n,r.lastRun=Date.now(),r.runCount++,t&&(r.error=t),a("effect-run",{id:e,status:n,error:t}));}Object.defineProperty(exports,"onCleanup",{enumerable:true,get:function(){return chunkROYFUJN5_js.o}});Object.defineProperty(exports,"root",{enumerable:true,get:function(){return chunkROYFUJN5_js.m}});Object.defineProperty(exports,"signal",{enumerable:true,get:function(){return chunkROYFUJN5_js.h}});Object.defineProperty(exports,"untrack",{enumerable:true,get:function(){return chunkROYFUJN5_js.k}});exports.disableDevTools=v;exports.enableDevTools=b;//# sourceMappingURL=advanced.js.map
|
|
2
|
+
//# sourceMappingURL=advanced.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/devtools/index.ts"],"names":["devToolsState","signalIdCounter","effectIdCounter","listeners","enableDevTools","setDevToolsHooks","signal","name","registerSignal","id","value","updateSignalInfo","registerEffect","status","error","updateEffectInfo","getDevToolsState","listener","index","disableDevTools","emit","event","data","e","logError","ErrorCodes","now","info"],"mappings":"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","file":"advanced.js","sourcesContent":["/**\n * Flexium DevTools Integration\n *\n * Provides hooks for browser devtools extension to inspect signals,\n * effects, and component trees.\n *\n * @example\n * ```tsx\n * import { enableDevTools, getDevToolsState } from 'flexium/devtools';\n *\n * // Enable devtools in development\n * if (process.env.NODE_ENV !== 'production') {\n * enableDevTools();\n * }\n * ```\n */\n\nimport { Signal, Computed, setDevToolsHooks } from '../core/signal'\nimport { ErrorCodes, logError } from '../core/errors'\n\nexport interface DevToolsState {\n enabled: boolean\n signals: Map<number, SignalInfo>\n effects: Map<number, EffectInfo>\n components: Map<number, ComponentInfo>\n}\n\nexport interface SignalInfo {\n id: number\n name?: string\n value: unknown\n subscribers: number\n createdAt: number\n lastUpdated: number\n updateCount: number\n}\n\nexport interface EffectInfo {\n id: number\n name?: string\n dependencies: number[]\n lastRun: number\n runCount: number\n status: 'idle' | 'running' | 'error'\n error?: Error\n}\n\nexport interface ComponentInfo {\n id: number\n name: string\n props: Record<string, unknown>\n signals: number[]\n effects: number[]\n children: number[]\n parent?: number\n mountedAt: number\n}\n\n// Global devtools state\nconst devToolsState: DevToolsState = {\n enabled: false,\n signals: new Map(),\n effects: new Map(),\n components: new Map(),\n}\n\nlet signalIdCounter = 0\nlet effectIdCounter = 0\nlet componentIdCounter = 0\n\n// Event listeners for devtools\ntype DevToolsEventType =\n | 'signal-create'\n | 'signal-update'\n | 'effect-create'\n | 'effect-run'\n | 'component-mount'\n | 'component-unmount'\ntype DevToolsListener = (event: DevToolsEventType, data: unknown) => void\nconst listeners: DevToolsListener[] = []\n\n/**\n * Enable devtools integration\n * Call this in development mode to enable signal/effect inspection\n */\nexport function enableDevTools(): void {\n devToolsState.enabled = true\n\n // Register hooks with signal system for automatic tracking\n setDevToolsHooks({\n onSignalCreate: (signal, name) => registerSignal(signal, name),\n onSignalUpdate: (id, value) => updateSignalInfo(id, value),\n onEffectCreate: (name) => registerEffect(name),\n onEffectRun: (id, status, error) => updateEffectInfo(id, status, error),\n })\n\n // Expose to window for browser extension\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ;(window as any).__FLEXIUM_DEVTOOLS__ = {\n getState: getDevToolsState,\n getSignals: () => Array.from(devToolsState.signals.values()),\n getEffects: () => Array.from(devToolsState.effects.values()),\n getComponents: () => Array.from(devToolsState.components.values()),\n subscribe: (listener: DevToolsListener) => {\n listeners.push(listener)\n return () => {\n const index = listeners.indexOf(listener)\n if (index > -1) listeners.splice(index, 1)\n }\n },\n }\n\n console.log(\n '%c[Flexium DevTools] Enabled',\n 'color: #10b981; font-weight: bold;'\n )\n }\n}\n\n/**\n * Disable devtools integration\n */\nexport function disableDevTools(): void {\n devToolsState.enabled = false\n devToolsState.signals.clear()\n devToolsState.effects.clear()\n devToolsState.components.clear()\n\n // Unregister hooks\n setDevToolsHooks(null)\n\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete (window as any).__FLEXIUM_DEVTOOLS__\n }\n}\n\n/**\n * Get current devtools state\n */\nexport function getDevToolsState(): DevToolsState {\n return { ...devToolsState }\n}\n\n/**\n * Check if devtools are enabled\n */\nexport function isDevToolsEnabled(): boolean {\n return devToolsState.enabled\n}\n\n// Internal: emit event to listeners\nfunction emit(event: DevToolsEventType, data: unknown): void {\n for (const listener of listeners) {\n try {\n listener(event, data)\n } catch (e) {\n logError(ErrorCodes.DEVTOOLS_LISTENER_ERROR, { event }, e)\n }\n }\n}\n\n/**\n * Register a signal with devtools\n * @internal\n */\nexport function registerSignal(\n signal: Signal<unknown> | Computed<unknown>,\n name?: string\n): number {\n if (!devToolsState.enabled) return -1\n\n const id = signalIdCounter++\n const now = Date.now()\n\n devToolsState.signals.set(id, {\n id,\n name,\n value: signal.peek(),\n subscribers: 0,\n createdAt: now,\n lastUpdated: now,\n updateCount: 0,\n })\n\n emit('signal-create', { id, name })\n return id\n}\n\n/**\n * Update signal info in devtools\n * @internal\n */\nexport function updateSignalInfo(id: number, value: unknown): void {\n if (!devToolsState.enabled) return\n\n const info = devToolsState.signals.get(id)\n if (info) {\n info.value = value\n info.lastUpdated = Date.now()\n info.updateCount++\n emit('signal-update', { id, value })\n }\n}\n\n/**\n * Register an effect with devtools\n * @internal\n */\nexport function registerEffect(name?: string): number {\n if (!devToolsState.enabled) return -1\n\n const id = effectIdCounter++\n\n devToolsState.effects.set(id, {\n id,\n name,\n dependencies: [],\n lastRun: Date.now(),\n runCount: 0,\n status: 'idle',\n })\n\n emit('effect-create', { id, name })\n return id\n}\n\n/**\n * Update effect info in devtools\n * @internal\n */\nexport function updateEffectInfo(\n id: number,\n status: 'idle' | 'running' | 'error',\n error?: Error\n): void {\n if (!devToolsState.enabled) return\n\n const info = devToolsState.effects.get(id)\n if (info) {\n info.status = status\n info.lastRun = Date.now()\n info.runCount++\n if (error) info.error = error\n emit('effect-run', { id, status, error })\n }\n}\n\n/**\n * Register a component with devtools\n * @internal\n */\nexport function registerComponent(\n name: string,\n props: Record<string, unknown>\n): number {\n if (!devToolsState.enabled) return -1\n\n const id = componentIdCounter++\n\n devToolsState.components.set(id, {\n id,\n name,\n props,\n signals: [],\n effects: [],\n children: [],\n mountedAt: Date.now(),\n })\n\n emit('component-mount', { id, name })\n return id\n}\n\n/**\n * Unregister a component from devtools\n * @internal\n */\nexport function unregisterComponent(id: number): void {\n if (!devToolsState.enabled) return\n\n const info = devToolsState.components.get(id)\n if (info) {\n devToolsState.components.delete(id)\n emit('component-unmount', { id, name: info.name })\n }\n}\n\n/**\n * Create a named signal for better devtools visibility\n *\n * @example\n * ```tsx\n * import { createNamedSignal } from 'flexium/devtools';\n * import { signal } from 'flexium/core';\n *\n * // Shows as \"count\" in devtools\n * const count = createNamedSignal('count', 0, signal);\n * ```\n */\nexport function createNamedSignal<T>(\n name: string,\n initialValue: T,\n signalFn: (v: T) => Signal<T>\n): Signal<T> {\n const s = signalFn(initialValue)\n\n if (devToolsState.enabled) {\n registerSignal(s, name)\n }\n\n return s\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {d,b as b$1,a as a$1}from'./chunk-5S3ZQ2LB.mjs';export{o as onCleanup,m as root,h as signal,k as untrack}from'./chunk-5S3ZQ2LB.mjs';var o={enabled:false,signals:new Map,effects:new Map,components:new Map},m=0,g=0;var s=[];function b(){o.enabled=true,d({onSignalCreate:(e,n)=>w(e,n),onSignalUpdate:(e,n)=>D(e,n),onEffectCreate:e=>E(e),onEffectRun:(e,n,t)=>S(e,n,t)}),typeof window<"u"&&(window.__FLEXIUM_DEVTOOLS__={getState:T,getSignals:()=>Array.from(o.signals.values()),getEffects:()=>Array.from(o.effects.values()),getComponents:()=>Array.from(o.components.values()),subscribe:e=>(s.push(e),()=>{let n=s.indexOf(e);n>-1&&s.splice(n,1);})},console.log("%c[Flexium DevTools] Enabled","color: #10b981; font-weight: bold;"));}function v(){o.enabled=false,o.signals.clear(),o.effects.clear(),o.components.clear(),d(null),typeof window<"u"&&delete window.__FLEXIUM_DEVTOOLS__;}function T(){return {...o}}function a(e,n){for(let t of s)try{t(e,n);}catch(r){b$1(a$1.DEVTOOLS_LISTENER_ERROR,{event:e},r);}}function w(e,n){if(!o.enabled)return -1;let t=m++,r=Date.now();return o.signals.set(t,{id:t,name:n,value:e.peek(),subscribers:0,createdAt:r,lastUpdated:r,updateCount:0}),a("signal-create",{id:t,name:n}),t}function D(e,n){if(!o.enabled)return;let t=o.signals.get(e);t&&(t.value=n,t.lastUpdated=Date.now(),t.updateCount++,a("signal-update",{id:e,value:n}));}function E(e){if(!o.enabled)return -1;let n=g++;return o.effects.set(n,{id:n,name:e,dependencies:[],lastRun:Date.now(),runCount:0,status:"idle"}),a("effect-create",{id:n,name:e}),n}function S(e,n,t){if(!o.enabled)return;let r=o.effects.get(e);r&&(r.status=n,r.lastRun=Date.now(),r.runCount++,t&&(r.error=t),a("effect-run",{id:e,status:n,error:t}));}export{v as disableDevTools,b as enableDevTools};//# sourceMappingURL=advanced.mjs.map
|
|
2
|
+
//# sourceMappingURL=advanced.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/devtools/index.ts"],"names":["devToolsState","signalIdCounter","effectIdCounter","listeners","enableDevTools","setDevToolsHooks","signal","name","registerSignal","id","value","updateSignalInfo","registerEffect","status","error","updateEffectInfo","getDevToolsState","listener","index","disableDevTools","emit","event","data","e","logError","ErrorCodes","now","info"],"mappings":"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","file":"advanced.mjs","sourcesContent":["/**\n * Flexium DevTools Integration\n *\n * Provides hooks for browser devtools extension to inspect signals,\n * effects, and component trees.\n *\n * @example\n * ```tsx\n * import { enableDevTools, getDevToolsState } from 'flexium/devtools';\n *\n * // Enable devtools in development\n * if (process.env.NODE_ENV !== 'production') {\n * enableDevTools();\n * }\n * ```\n */\n\nimport { Signal, Computed, setDevToolsHooks } from '../core/signal'\nimport { ErrorCodes, logError } from '../core/errors'\n\nexport interface DevToolsState {\n enabled: boolean\n signals: Map<number, SignalInfo>\n effects: Map<number, EffectInfo>\n components: Map<number, ComponentInfo>\n}\n\nexport interface SignalInfo {\n id: number\n name?: string\n value: unknown\n subscribers: number\n createdAt: number\n lastUpdated: number\n updateCount: number\n}\n\nexport interface EffectInfo {\n id: number\n name?: string\n dependencies: number[]\n lastRun: number\n runCount: number\n status: 'idle' | 'running' | 'error'\n error?: Error\n}\n\nexport interface ComponentInfo {\n id: number\n name: string\n props: Record<string, unknown>\n signals: number[]\n effects: number[]\n children: number[]\n parent?: number\n mountedAt: number\n}\n\n// Global devtools state\nconst devToolsState: DevToolsState = {\n enabled: false,\n signals: new Map(),\n effects: new Map(),\n components: new Map(),\n}\n\nlet signalIdCounter = 0\nlet effectIdCounter = 0\nlet componentIdCounter = 0\n\n// Event listeners for devtools\ntype DevToolsEventType =\n | 'signal-create'\n | 'signal-update'\n | 'effect-create'\n | 'effect-run'\n | 'component-mount'\n | 'component-unmount'\ntype DevToolsListener = (event: DevToolsEventType, data: unknown) => void\nconst listeners: DevToolsListener[] = []\n\n/**\n * Enable devtools integration\n * Call this in development mode to enable signal/effect inspection\n */\nexport function enableDevTools(): void {\n devToolsState.enabled = true\n\n // Register hooks with signal system for automatic tracking\n setDevToolsHooks({\n onSignalCreate: (signal, name) => registerSignal(signal, name),\n onSignalUpdate: (id, value) => updateSignalInfo(id, value),\n onEffectCreate: (name) => registerEffect(name),\n onEffectRun: (id, status, error) => updateEffectInfo(id, status, error),\n })\n\n // Expose to window for browser extension\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ;(window as any).__FLEXIUM_DEVTOOLS__ = {\n getState: getDevToolsState,\n getSignals: () => Array.from(devToolsState.signals.values()),\n getEffects: () => Array.from(devToolsState.effects.values()),\n getComponents: () => Array.from(devToolsState.components.values()),\n subscribe: (listener: DevToolsListener) => {\n listeners.push(listener)\n return () => {\n const index = listeners.indexOf(listener)\n if (index > -1) listeners.splice(index, 1)\n }\n },\n }\n\n console.log(\n '%c[Flexium DevTools] Enabled',\n 'color: #10b981; font-weight: bold;'\n )\n }\n}\n\n/**\n * Disable devtools integration\n */\nexport function disableDevTools(): void {\n devToolsState.enabled = false\n devToolsState.signals.clear()\n devToolsState.effects.clear()\n devToolsState.components.clear()\n\n // Unregister hooks\n setDevToolsHooks(null)\n\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete (window as any).__FLEXIUM_DEVTOOLS__\n }\n}\n\n/**\n * Get current devtools state\n */\nexport function getDevToolsState(): DevToolsState {\n return { ...devToolsState }\n}\n\n/**\n * Check if devtools are enabled\n */\nexport function isDevToolsEnabled(): boolean {\n return devToolsState.enabled\n}\n\n// Internal: emit event to listeners\nfunction emit(event: DevToolsEventType, data: unknown): void {\n for (const listener of listeners) {\n try {\n listener(event, data)\n } catch (e) {\n logError(ErrorCodes.DEVTOOLS_LISTENER_ERROR, { event }, e)\n }\n }\n}\n\n/**\n * Register a signal with devtools\n * @internal\n */\nexport function registerSignal(\n signal: Signal<unknown> | Computed<unknown>,\n name?: string\n): number {\n if (!devToolsState.enabled) return -1\n\n const id = signalIdCounter++\n const now = Date.now()\n\n devToolsState.signals.set(id, {\n id,\n name,\n value: signal.peek(),\n subscribers: 0,\n createdAt: now,\n lastUpdated: now,\n updateCount: 0,\n })\n\n emit('signal-create', { id, name })\n return id\n}\n\n/**\n * Update signal info in devtools\n * @internal\n */\nexport function updateSignalInfo(id: number, value: unknown): void {\n if (!devToolsState.enabled) return\n\n const info = devToolsState.signals.get(id)\n if (info) {\n info.value = value\n info.lastUpdated = Date.now()\n info.updateCount++\n emit('signal-update', { id, value })\n }\n}\n\n/**\n * Register an effect with devtools\n * @internal\n */\nexport function registerEffect(name?: string): number {\n if (!devToolsState.enabled) return -1\n\n const id = effectIdCounter++\n\n devToolsState.effects.set(id, {\n id,\n name,\n dependencies: [],\n lastRun: Date.now(),\n runCount: 0,\n status: 'idle',\n })\n\n emit('effect-create', { id, name })\n return id\n}\n\n/**\n * Update effect info in devtools\n * @internal\n */\nexport function updateEffectInfo(\n id: number,\n status: 'idle' | 'running' | 'error',\n error?: Error\n): void {\n if (!devToolsState.enabled) return\n\n const info = devToolsState.effects.get(id)\n if (info) {\n info.status = status\n info.lastRun = Date.now()\n info.runCount++\n if (error) info.error = error\n emit('effect-run', { id, status, error })\n }\n}\n\n/**\n * Register a component with devtools\n * @internal\n */\nexport function registerComponent(\n name: string,\n props: Record<string, unknown>\n): number {\n if (!devToolsState.enabled) return -1\n\n const id = componentIdCounter++\n\n devToolsState.components.set(id, {\n id,\n name,\n props,\n signals: [],\n effects: [],\n children: [],\n mountedAt: Date.now(),\n })\n\n emit('component-mount', { id, name })\n return id\n}\n\n/**\n * Unregister a component from devtools\n * @internal\n */\nexport function unregisterComponent(id: number): void {\n if (!devToolsState.enabled) return\n\n const info = devToolsState.components.get(id)\n if (info) {\n devToolsState.components.delete(id)\n emit('component-unmount', { id, name: info.name })\n }\n}\n\n/**\n * Create a named signal for better devtools visibility\n *\n * @example\n * ```tsx\n * import { createNamedSignal } from 'flexium/devtools';\n * import { signal } from 'flexium/core';\n *\n * // Shows as \"count\" in devtools\n * const count = createNamedSignal('count', 0, signal);\n * ```\n */\nexport function createNamedSignal<T>(\n name: string,\n initialValue: T,\n signalFn: (v: T) => Signal<T>\n): Signal<T> {\n const s = signalFn(initialValue)\n\n if (devToolsState.enabled) {\n registerSignal(s, name)\n }\n\n return s\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { S as Signal } from './signal-mNtlF8-v.cjs';
|
|
2
|
+
export { C as Computed, c as computed, e as effect, r as root, s as signal } from './signal-mNtlF8-v.cjs';
|
|
3
|
+
export { C as Canvas, f as CanvasProps, b as DrawArc, i as DrawArcProps, a as DrawCircle, h as DrawCircleProps, c as DrawLine, j as DrawLineProps, d as DrawPath, k as DrawPathProps, D as DrawRect, g as DrawRectProps, e as DrawText, l as DrawTextProps } from './DrawText-JB58mpQT.cjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Canvas renderer - renders canvas primitives to canvas context
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Render canvas children to context
|
|
10
|
+
*/
|
|
11
|
+
declare function renderCanvasChildren(ctx: CanvasRenderingContext2D, children: any, _width: number, _height: number): void;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Canvas utilities
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Unwrap a value that might be a Signal
|
|
19
|
+
*/
|
|
20
|
+
declare function unwrapSignal<T>(value: T | Signal<T>): T;
|
|
21
|
+
|
|
22
|
+
export { Signal, renderCanvasChildren, unwrapSignal };
|
package/dist/canvas.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { S as Signal } from './signal-mNtlF8-v.js';
|
|
2
|
+
export { C as Computed, c as computed, e as effect, r as root, s as signal } from './signal-mNtlF8-v.js';
|
|
3
|
+
export { C as Canvas, f as CanvasProps, b as DrawArc, i as DrawArcProps, a as DrawCircle, h as DrawCircleProps, c as DrawLine, j as DrawLineProps, d as DrawPath, k as DrawPathProps, D as DrawRect, g as DrawRectProps, e as DrawText, l as DrawTextProps } from './DrawText-CeXBL8Ev.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Canvas renderer - renders canvas primitives to canvas context
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Render canvas children to context
|
|
10
|
+
*/
|
|
11
|
+
declare function renderCanvasChildren(ctx: CanvasRenderingContext2D, children: any, _width: number, _height: number): void;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Canvas utilities
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Unwrap a value that might be a Signal
|
|
19
|
+
*/
|
|
20
|
+
declare function unwrapSignal<T>(value: T | Signal<T>): T;
|
|
21
|
+
|
|
22
|
+
export { Signal, renderCanvasChildren, unwrapSignal };
|
package/dist/canvas.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunkGDBJ322I_js=require('./chunk-GDBJ322I.js'),chunkROYFUJN5_js=require('./chunk-ROYFUJN5.js');Object.defineProperty(exports,"Canvas",{enumerable:true,get:function(){return chunkGDBJ322I_js.d}});Object.defineProperty(exports,"DrawArc",{enumerable:true,get:function(){return chunkGDBJ322I_js.g}});Object.defineProperty(exports,"DrawCircle",{enumerable:true,get:function(){return chunkGDBJ322I_js.f}});Object.defineProperty(exports,"DrawLine",{enumerable:true,get:function(){return chunkGDBJ322I_js.h}});Object.defineProperty(exports,"DrawPath",{enumerable:true,get:function(){return chunkGDBJ322I_js.i}});Object.defineProperty(exports,"DrawRect",{enumerable:true,get:function(){return chunkGDBJ322I_js.e}});Object.defineProperty(exports,"DrawText",{enumerable:true,get:function(){return chunkGDBJ322I_js.j}});Object.defineProperty(exports,"renderCanvasChildren",{enumerable:true,get:function(){return chunkGDBJ322I_js.c}});Object.defineProperty(exports,"unwrapSignal",{enumerable:true,get:function(){return chunkGDBJ322I_js.b}});Object.defineProperty(exports,"computed",{enumerable:true,get:function(){return chunkROYFUJN5_js.i}});Object.defineProperty(exports,"effect",{enumerable:true,get:function(){return chunkROYFUJN5_js.j}});Object.defineProperty(exports,"root",{enumerable:true,get:function(){return chunkROYFUJN5_js.m}});Object.defineProperty(exports,"signal",{enumerable:true,get:function(){return chunkROYFUJN5_js.h}});//# sourceMappingURL=canvas.js.map
|
|
2
|
+
//# sourceMappingURL=canvas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"canvas.js"}
|
package/dist/canvas.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export{d as Canvas,g as DrawArc,f as DrawCircle,h as DrawLine,i as DrawPath,e as DrawRect,j as DrawText,c as renderCanvasChildren,b as unwrapSignal}from'./chunk-ZNPYN2TZ.mjs';export{i as computed,j as effect,m as root,h as signal}from'./chunk-5S3ZQ2LB.mjs';//# sourceMappingURL=canvas.mjs.map
|
|
2
|
+
//# sourceMappingURL=canvas.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"canvas.mjs"}
|