@pyreon/core 0.4.0 → 0.5.1

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.
@@ -0,0 +1,539 @@
1
+ //#region src/types.d.ts
2
+ type VNodeChildAtom = VNode | VNode[] | string | number | boolean | null | undefined;
3
+ type VNodeChild = VNodeChildAtom | (() => VNodeChildAtom);
4
+ interface VNode {
5
+ /** Tag name, component function, or special symbol (Fragment) */
6
+ type: string | ComponentFn | symbol;
7
+ props: Props;
8
+ children: VNodeChild[];
9
+ key: string | number | null;
10
+ }
11
+ type Props = Record<string, unknown>;
12
+ /**
13
+ * A component is a plain function that runs ONCE.
14
+ * It returns a VNode (or null) and may call lifecycle hooks during setup.
15
+ */
16
+ type ComponentFn<P extends Props = Props> = (props: P) => VNode | null;
17
+ //#endregion
18
+ //#region src/h.d.ts
19
+ /** Marker for fragment nodes — renders children without a wrapper element */
20
+ declare const Fragment: unique symbol;
21
+ //#endregion
22
+ //#region src/jsx-runtime.d.ts
23
+ declare function jsx(type: string | ComponentFn | symbol, props: Props & {
24
+ children?: VNodeChild | VNodeChild[];
25
+ }, key?: string | number | null): VNode;
26
+ declare const jsxs: typeof jsx;
27
+ type Booleanish = boolean | "true" | "false";
28
+ type StyleValue = string | Partial<CSSStyleDeclaration>;
29
+ /** Common HTML attributes accepted by all Pyreon elements */
30
+ interface PyreonHTMLAttributes {
31
+ id?: string;
32
+ class?: string | (() => string);
33
+ className?: string | (() => string);
34
+ style?: StyleValue | (() => StyleValue);
35
+ "n-show"?: boolean | (() => boolean);
36
+ role?: string;
37
+ tabIndex?: number | (() => number);
38
+ title?: string;
39
+ lang?: string;
40
+ dir?: "ltr" | "rtl" | "auto";
41
+ hidden?: boolean | (() => boolean);
42
+ draggable?: Booleanish;
43
+ "aria-label"?: string | (() => string);
44
+ "aria-hidden"?: Booleanish | (() => Booleanish);
45
+ "aria-disabled"?: Booleanish | (() => Booleanish);
46
+ "aria-expanded"?: Booleanish | (() => Booleanish);
47
+ "aria-selected"?: Booleanish | (() => Booleanish);
48
+ "aria-checked"?: Booleanish | "mixed" | (() => Booleanish | "mixed");
49
+ "aria-current"?: Booleanish | "page" | "step" | "location" | "date" | "time";
50
+ "aria-live"?: "off" | "assertive" | "polite";
51
+ "aria-atomic"?: Booleanish;
52
+ "aria-busy"?: Booleanish;
53
+ "aria-controls"?: string;
54
+ "aria-describedby"?: string;
55
+ "aria-labelledby"?: string;
56
+ "aria-placeholder"?: string;
57
+ "aria-required"?: Booleanish | (() => Booleanish);
58
+ "aria-invalid"?: Booleanish | "grammar" | "spelling";
59
+ "aria-valuemin"?: number;
60
+ "aria-valuemax"?: number;
61
+ "aria-valuenow"?: number;
62
+ "aria-valuetext"?: string;
63
+ "aria-haspopup"?: Booleanish | "menu" | "listbox" | "tree" | "grid" | "dialog";
64
+ "aria-posinset"?: number;
65
+ "aria-setsize"?: number;
66
+ "aria-level"?: number;
67
+ "aria-multiline"?: Booleanish;
68
+ "aria-multiselectable"?: Booleanish;
69
+ "aria-orientation"?: "horizontal" | "vertical";
70
+ "aria-readonly"?: Booleanish | (() => Booleanish);
71
+ "aria-sort"?: "none" | "ascending" | "descending" | "other";
72
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both";
73
+ "aria-colcount"?: number;
74
+ "aria-colindex"?: number;
75
+ "aria-colspan"?: number;
76
+ "aria-rowcount"?: number;
77
+ "aria-rowindex"?: number;
78
+ "aria-rowspan"?: number;
79
+ ref?: {
80
+ current: unknown;
81
+ } | ((el: Element) => void);
82
+ key?: string | number;
83
+ innerHTML?: string;
84
+ dangerouslySetInnerHTML?: {
85
+ __html: string;
86
+ };
87
+ onClick?: (e: MouseEvent) => void;
88
+ onDblClick?: (e: MouseEvent) => void;
89
+ onMouseDown?: (e: MouseEvent) => void;
90
+ onMouseUp?: (e: MouseEvent) => void;
91
+ onMouseEnter?: (e: MouseEvent) => void;
92
+ onMouseLeave?: (e: MouseEvent) => void;
93
+ onMouseMove?: (e: MouseEvent) => void;
94
+ onMouseOver?: (e: MouseEvent) => void;
95
+ onMouseOut?: (e: MouseEvent) => void;
96
+ onContextMenu?: (e: MouseEvent) => void;
97
+ onKeyDown?: (e: KeyboardEvent) => void;
98
+ onKeyUp?: (e: KeyboardEvent) => void;
99
+ onKeyPress?: (e: KeyboardEvent) => void;
100
+ onFocus?: (e: FocusEvent) => void;
101
+ onBlur?: (e: FocusEvent) => void;
102
+ onChange?: (e: Event) => void;
103
+ onInput?: (e: InputEvent) => void;
104
+ onSubmit?: (e: SubmitEvent) => void;
105
+ onReset?: (e: Event) => void;
106
+ onScroll?: (e: Event) => void;
107
+ onWheel?: (e: WheelEvent) => void;
108
+ onDragStart?: (e: DragEvent) => void;
109
+ onDragEnd?: (e: DragEvent) => void;
110
+ onDragOver?: (e: DragEvent) => void;
111
+ onDragEnter?: (e: DragEvent) => void;
112
+ onDragLeave?: (e: DragEvent) => void;
113
+ onDrop?: (e: DragEvent) => void;
114
+ onTouchStart?: (e: TouchEvent) => void;
115
+ onTouchEnd?: (e: TouchEvent) => void;
116
+ onTouchMove?: (e: TouchEvent) => void;
117
+ onPointerDown?: (e: PointerEvent) => void;
118
+ onPointerUp?: (e: PointerEvent) => void;
119
+ onPointerMove?: (e: PointerEvent) => void;
120
+ onPointerEnter?: (e: PointerEvent) => void;
121
+ onPointerLeave?: (e: PointerEvent) => void;
122
+ onPointerCancel?: (e: PointerEvent) => void;
123
+ onPointerOver?: (e: PointerEvent) => void;
124
+ onPointerOut?: (e: PointerEvent) => void;
125
+ onTransitionEnd?: (e: TransitionEvent) => void;
126
+ onAnimationStart?: (e: AnimationEvent) => void;
127
+ onAnimationEnd?: (e: AnimationEvent) => void;
128
+ onAnimationIteration?: (e: AnimationEvent) => void;
129
+ onLoad?: (e: Event) => void;
130
+ onError?: (e: Event | string) => void;
131
+ onAbort?: (e: Event) => void;
132
+ onSelect?: (e: Event) => void;
133
+ onCopy?: (e: ClipboardEvent) => void;
134
+ onCut?: (e: ClipboardEvent) => void;
135
+ onPaste?: (e: ClipboardEvent) => void;
136
+ [key: string]: unknown;
137
+ }
138
+ /** Attributes specific to form inputs */
139
+ interface InputAttributes extends PyreonHTMLAttributes {
140
+ type?: string | (() => string);
141
+ value?: string | number | (() => string | number);
142
+ defaultValue?: string | number;
143
+ checked?: boolean | (() => boolean);
144
+ defaultChecked?: boolean;
145
+ placeholder?: string | (() => string);
146
+ disabled?: boolean | (() => boolean);
147
+ readOnly?: boolean;
148
+ required?: boolean | (() => boolean);
149
+ min?: string | number;
150
+ max?: string | number;
151
+ step?: string | number;
152
+ minLength?: number;
153
+ maxLength?: number;
154
+ pattern?: string;
155
+ multiple?: boolean;
156
+ name?: string;
157
+ accept?: string;
158
+ autoComplete?: string;
159
+ autoFocus?: boolean;
160
+ form?: string;
161
+ list?: string;
162
+ size?: number;
163
+ src?: string | (() => string);
164
+ alt?: string;
165
+ width?: number | string;
166
+ height?: number | string;
167
+ }
168
+ interface AnchorAttributes extends PyreonHTMLAttributes {
169
+ href?: string | (() => string);
170
+ target?: "_blank" | "_self" | "_parent" | "_top" | string;
171
+ rel?: string;
172
+ download?: string | boolean;
173
+ }
174
+ interface ButtonAttributes extends PyreonHTMLAttributes {
175
+ type?: "button" | "submit" | "reset";
176
+ disabled?: boolean | (() => boolean);
177
+ name?: string;
178
+ value?: string;
179
+ form?: string;
180
+ formAction?: string;
181
+ formMethod?: string;
182
+ formEncType?: string;
183
+ formNoValidate?: boolean;
184
+ formTarget?: string;
185
+ }
186
+ interface TextareaAttributes extends PyreonHTMLAttributes {
187
+ value?: string | (() => string);
188
+ defaultValue?: string;
189
+ placeholder?: string | (() => string);
190
+ disabled?: boolean | (() => boolean);
191
+ readOnly?: boolean;
192
+ required?: boolean | (() => boolean);
193
+ rows?: number;
194
+ cols?: number;
195
+ minLength?: number;
196
+ maxLength?: number;
197
+ name?: string;
198
+ autoFocus?: boolean;
199
+ form?: string;
200
+ wrap?: "hard" | "soft";
201
+ }
202
+ interface SelectAttributes extends PyreonHTMLAttributes {
203
+ value?: string | string[] | (() => string | string[]);
204
+ defaultValue?: string | string[];
205
+ disabled?: boolean | (() => boolean);
206
+ required?: boolean | (() => boolean);
207
+ multiple?: boolean;
208
+ name?: string;
209
+ size?: number;
210
+ form?: string;
211
+ autoFocus?: boolean;
212
+ }
213
+ interface OptionAttributes extends PyreonHTMLAttributes {
214
+ value?: string | number | (() => string | number);
215
+ disabled?: boolean | (() => boolean);
216
+ selected?: boolean | (() => boolean);
217
+ label?: string;
218
+ }
219
+ interface FormAttributes extends PyreonHTMLAttributes {
220
+ action?: string;
221
+ method?: "get" | "post";
222
+ encType?: string;
223
+ noValidate?: boolean;
224
+ target?: string;
225
+ name?: string;
226
+ autoComplete?: string;
227
+ }
228
+ interface ImgAttributes extends PyreonHTMLAttributes {
229
+ src?: string | (() => string);
230
+ alt?: string | (() => string);
231
+ width?: number | string | (() => number | string);
232
+ height?: number | string | (() => number | string);
233
+ loading?: "lazy" | "eager";
234
+ decoding?: "auto" | "async" | "sync";
235
+ crossOrigin?: "anonymous" | "use-credentials";
236
+ referrerPolicy?: string;
237
+ srcSet?: string;
238
+ sizes?: string;
239
+ }
240
+ interface VideoAttributes extends PyreonHTMLAttributes {
241
+ src?: string | (() => string);
242
+ width?: number | string;
243
+ height?: number | string;
244
+ controls?: boolean;
245
+ autoPlay?: boolean;
246
+ muted?: boolean;
247
+ loop?: boolean;
248
+ poster?: string;
249
+ preload?: "none" | "metadata" | "auto";
250
+ playsInline?: boolean;
251
+ crossOrigin?: "anonymous" | "use-credentials";
252
+ }
253
+ interface AudioAttributes extends PyreonHTMLAttributes {
254
+ src?: string | (() => string);
255
+ controls?: boolean;
256
+ autoPlay?: boolean;
257
+ muted?: boolean;
258
+ loop?: boolean;
259
+ preload?: "none" | "metadata" | "auto";
260
+ crossOrigin?: "anonymous" | "use-credentials";
261
+ }
262
+ interface LabelAttributes extends PyreonHTMLAttributes {
263
+ htmlFor?: string;
264
+ for?: string;
265
+ form?: string;
266
+ }
267
+ interface ThAttributes extends PyreonHTMLAttributes {
268
+ colSpan?: number;
269
+ rowSpan?: number;
270
+ scope?: "col" | "row" | "colgroup" | "rowgroup";
271
+ abbr?: string;
272
+ headers?: string;
273
+ }
274
+ interface TdAttributes extends PyreonHTMLAttributes {
275
+ colSpan?: number;
276
+ rowSpan?: number;
277
+ headers?: string;
278
+ }
279
+ interface ColAttributes extends PyreonHTMLAttributes {
280
+ span?: number;
281
+ }
282
+ interface IframeAttributes extends PyreonHTMLAttributes {
283
+ src?: string | (() => string);
284
+ width?: number | string;
285
+ height?: number | string;
286
+ allow?: string;
287
+ allowFullScreen?: boolean;
288
+ loading?: "lazy" | "eager";
289
+ name?: string;
290
+ sandbox?: string;
291
+ referrerPolicy?: string;
292
+ title?: string;
293
+ }
294
+ interface LinkAttributes extends PyreonHTMLAttributes {
295
+ href?: string | (() => string);
296
+ rel?: string;
297
+ type?: string;
298
+ as?: string;
299
+ media?: string;
300
+ crossOrigin?: "anonymous" | "use-credentials";
301
+ integrity?: string;
302
+ referrerPolicy?: string;
303
+ }
304
+ interface MetaAttributes extends PyreonHTMLAttributes {
305
+ name?: string;
306
+ content?: string | (() => string);
307
+ httpEquiv?: string;
308
+ charset?: string;
309
+ property?: string;
310
+ }
311
+ interface ScriptAttributes extends PyreonHTMLAttributes {
312
+ src?: string | (() => string);
313
+ type?: string;
314
+ async?: boolean;
315
+ defer?: boolean;
316
+ crossOrigin?: "anonymous" | "use-credentials";
317
+ integrity?: string;
318
+ noModule?: boolean;
319
+ referrerPolicy?: string;
320
+ }
321
+ interface SourceAttributes extends PyreonHTMLAttributes {
322
+ src?: string | (() => string);
323
+ type?: string;
324
+ srcSet?: string;
325
+ sizes?: string;
326
+ media?: string;
327
+ }
328
+ interface ProgressAttributes extends PyreonHTMLAttributes {
329
+ value?: number | (() => number);
330
+ max?: number;
331
+ }
332
+ interface MeterAttributes extends PyreonHTMLAttributes {
333
+ value?: number | (() => number);
334
+ min?: number;
335
+ max?: number;
336
+ low?: number;
337
+ high?: number;
338
+ optimum?: number;
339
+ }
340
+ interface DetailsAttributes extends PyreonHTMLAttributes {
341
+ open?: boolean | (() => boolean);
342
+ }
343
+ interface DialogAttributes extends PyreonHTMLAttributes {
344
+ open?: boolean | (() => boolean);
345
+ }
346
+ interface OlAttributes extends PyreonHTMLAttributes {
347
+ start?: number;
348
+ reversed?: boolean;
349
+ type?: "1" | "a" | "A" | "i" | "I";
350
+ }
351
+ interface SvgAttributes extends PyreonHTMLAttributes {
352
+ viewBox?: string;
353
+ xmlns?: string;
354
+ fill?: string | (() => string);
355
+ stroke?: string | (() => string);
356
+ "stroke-width"?: string | number;
357
+ "stroke-linecap"?: "butt" | "round" | "square";
358
+ "stroke-linejoin"?: "miter" | "round" | "bevel";
359
+ "fill-rule"?: "nonzero" | "evenodd";
360
+ "clip-rule"?: "nonzero" | "evenodd";
361
+ "clip-path"?: string;
362
+ d?: string;
363
+ cx?: string | number;
364
+ cy?: string | number;
365
+ r?: string | number;
366
+ rx?: string | number;
367
+ ry?: string | number;
368
+ x?: string | number;
369
+ y?: string | number;
370
+ x1?: string | number;
371
+ y1?: string | number;
372
+ x2?: string | number;
373
+ y2?: string | number;
374
+ width?: string | number;
375
+ height?: string | number;
376
+ transform?: string | (() => string);
377
+ opacity?: string | number | (() => string | number);
378
+ points?: string;
379
+ "font-size"?: string | number;
380
+ "text-anchor"?: "start" | "middle" | "end";
381
+ "dominant-baseline"?: string;
382
+ }
383
+ declare global {
384
+ namespace JSX {
385
+ /** The type that JSX expressions evaluate to */
386
+ type Element = VNode;
387
+ /**
388
+ * Valid JSX tag types — intrinsic strings + component functions.
389
+ * Components may return VNode, null, strings, functions (reactive getters), etc.
390
+ * (TS 5.1+ feature)
391
+ */
392
+ type ElementType = keyof IntrinsicElements | ((props: any) => VNodeChild);
393
+ /** Tells TS which prop name carries children in component calls */
394
+ interface ElementChildrenAttribute {
395
+ children: {};
396
+ }
397
+ interface IntrinsicElements {
398
+ html: PyreonHTMLAttributes;
399
+ head: PyreonHTMLAttributes;
400
+ body: PyreonHTMLAttributes;
401
+ title: PyreonHTMLAttributes;
402
+ base: PyreonHTMLAttributes;
403
+ meta: MetaAttributes;
404
+ link: LinkAttributes;
405
+ script: ScriptAttributes;
406
+ style: PyreonHTMLAttributes;
407
+ noscript: PyreonHTMLAttributes;
408
+ main: PyreonHTMLAttributes;
409
+ header: PyreonHTMLAttributes;
410
+ footer: PyreonHTMLAttributes;
411
+ nav: PyreonHTMLAttributes;
412
+ aside: PyreonHTMLAttributes;
413
+ section: PyreonHTMLAttributes;
414
+ article: PyreonHTMLAttributes;
415
+ address: PyreonHTMLAttributes;
416
+ h1: PyreonHTMLAttributes;
417
+ h2: PyreonHTMLAttributes;
418
+ h3: PyreonHTMLAttributes;
419
+ h4: PyreonHTMLAttributes;
420
+ h5: PyreonHTMLAttributes;
421
+ h6: PyreonHTMLAttributes;
422
+ hgroup: PyreonHTMLAttributes;
423
+ p: PyreonHTMLAttributes;
424
+ pre: PyreonHTMLAttributes;
425
+ blockquote: PyreonHTMLAttributes;
426
+ figure: PyreonHTMLAttributes;
427
+ figcaption: PyreonHTMLAttributes;
428
+ div: PyreonHTMLAttributes;
429
+ hr: PyreonHTMLAttributes;
430
+ span: PyreonHTMLAttributes;
431
+ a: AnchorAttributes;
432
+ em: PyreonHTMLAttributes;
433
+ strong: PyreonHTMLAttributes;
434
+ small: PyreonHTMLAttributes;
435
+ s: PyreonHTMLAttributes;
436
+ cite: PyreonHTMLAttributes;
437
+ q: PyreonHTMLAttributes;
438
+ abbr: PyreonHTMLAttributes;
439
+ time: PyreonHTMLAttributes;
440
+ code: PyreonHTMLAttributes;
441
+ var: PyreonHTMLAttributes;
442
+ samp: PyreonHTMLAttributes;
443
+ kbd: PyreonHTMLAttributes;
444
+ mark: PyreonHTMLAttributes;
445
+ sub: PyreonHTMLAttributes;
446
+ sup: PyreonHTMLAttributes;
447
+ i: PyreonHTMLAttributes;
448
+ b: PyreonHTMLAttributes;
449
+ u: PyreonHTMLAttributes;
450
+ bdi: PyreonHTMLAttributes;
451
+ bdo: PyreonHTMLAttributes;
452
+ br: PyreonHTMLAttributes;
453
+ wbr: PyreonHTMLAttributes;
454
+ ruby: PyreonHTMLAttributes;
455
+ rt: PyreonHTMLAttributes;
456
+ rp: PyreonHTMLAttributes;
457
+ ul: PyreonHTMLAttributes;
458
+ ol: OlAttributes;
459
+ li: PyreonHTMLAttributes;
460
+ dl: PyreonHTMLAttributes;
461
+ dt: PyreonHTMLAttributes;
462
+ dd: PyreonHTMLAttributes;
463
+ form: FormAttributes;
464
+ label: LabelAttributes;
465
+ input: InputAttributes;
466
+ button: ButtonAttributes;
467
+ select: SelectAttributes;
468
+ datalist: PyreonHTMLAttributes;
469
+ optgroup: PyreonHTMLAttributes;
470
+ option: OptionAttributes;
471
+ textarea: TextareaAttributes;
472
+ output: PyreonHTMLAttributes;
473
+ progress: ProgressAttributes;
474
+ meter: MeterAttributes;
475
+ fieldset: PyreonHTMLAttributes;
476
+ legend: PyreonHTMLAttributes;
477
+ table: PyreonHTMLAttributes;
478
+ caption: PyreonHTMLAttributes;
479
+ colgroup: PyreonHTMLAttributes;
480
+ col: ColAttributes;
481
+ thead: PyreonHTMLAttributes;
482
+ tbody: PyreonHTMLAttributes;
483
+ tfoot: PyreonHTMLAttributes;
484
+ tr: PyreonHTMLAttributes;
485
+ th: ThAttributes;
486
+ td: TdAttributes;
487
+ img: ImgAttributes;
488
+ video: VideoAttributes;
489
+ audio: AudioAttributes;
490
+ source: SourceAttributes;
491
+ track: PyreonHTMLAttributes;
492
+ picture: PyreonHTMLAttributes;
493
+ canvas: PyreonHTMLAttributes;
494
+ svg: SvgAttributes;
495
+ path: SvgAttributes;
496
+ circle: SvgAttributes;
497
+ ellipse: SvgAttributes;
498
+ line: SvgAttributes;
499
+ polyline: SvgAttributes;
500
+ polygon: SvgAttributes;
501
+ rect: SvgAttributes;
502
+ text: SvgAttributes;
503
+ tspan: SvgAttributes;
504
+ g: SvgAttributes;
505
+ defs: SvgAttributes;
506
+ use: SvgAttributes & {
507
+ href?: string;
508
+ };
509
+ symbol: SvgAttributes;
510
+ clipPath: SvgAttributes;
511
+ mask: SvgAttributes;
512
+ marker: SvgAttributes;
513
+ pattern: SvgAttributes;
514
+ linearGradient: SvgAttributes;
515
+ radialGradient: SvgAttributes;
516
+ stop: SvgAttributes & {
517
+ offset?: string | number;
518
+ "stop-color"?: string;
519
+ "stop-opacity"?: string | number;
520
+ };
521
+ details: DetailsAttributes;
522
+ summary: PyreonHTMLAttributes;
523
+ dialog: DialogAttributes;
524
+ iframe: IframeAttributes;
525
+ embed: PyreonHTMLAttributes;
526
+ object: PyreonHTMLAttributes;
527
+ param: PyreonHTMLAttributes;
528
+ menu: PyreonHTMLAttributes;
529
+ menuitem: PyreonHTMLAttributes;
530
+ template: PyreonHTMLAttributes;
531
+ slot: PyreonHTMLAttributes;
532
+ portal: PyreonHTMLAttributes;
533
+ [tagName: string]: PyreonHTMLAttributes;
534
+ }
535
+ }
536
+ } //# sourceMappingURL=jsx-runtime.d.ts.map
537
+ //#endregion
538
+ export { Fragment, jsx, jsxs };
539
+ //# sourceMappingURL=jsx-runtime22.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx-runtime22.d.ts","names":[],"sources":["../../src/types.ts","../../src/h.ts","../../src/jsx-runtime.ts"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pyreon/core",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "description": "Core component model and lifecycle for Pyreon",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -32,12 +32,12 @@
32
32
  "./jsx-runtime": {
33
33
  "bun": "./src/jsx-runtime.ts",
34
34
  "import": "./lib/jsx-runtime.js",
35
- "types": "./lib/types/jsx-runtime.d.ts"
35
+ "types": "./lib/types/jsx-runtime2.d.ts"
36
36
  },
37
37
  "./jsx-dev-runtime": {
38
38
  "bun": "./src/jsx-dev-runtime.ts",
39
39
  "import": "./lib/jsx-dev-runtime.js",
40
- "types": "./lib/types/jsx-dev-runtime.d.ts"
40
+ "types": "./lib/types/jsx-dev-runtime2.d.ts"
41
41
  }
42
42
  },
43
43
  "scripts": {
@@ -49,7 +49,7 @@
49
49
  "prepublishOnly": "bun run build"
50
50
  },
51
51
  "dependencies": {
52
- "@pyreon/reactivity": "^0.4.0"
52
+ "@pyreon/reactivity": "^0.5.1"
53
53
  },
54
54
  "publishConfig": {
55
55
  "access": "public"
@@ -92,8 +92,8 @@ interface PyreonHTMLAttributes {
92
92
  "aria-rowcount"?: number
93
93
  "aria-rowindex"?: number
94
94
  "aria-rowspan"?: number
95
- // DOM lifecycle ref
96
- ref?: { current: unknown }
95
+ // DOM lifecycle ref — object ref or callback ref
96
+ ref?: { current: unknown } | ((el: Element) => void)
97
97
  // Key for list reconciliation
98
98
  key?: string | number
99
99
  // innerHTML
@@ -425,6 +425,21 @@ interface SvgAttributes extends PyreonHTMLAttributes {
425
425
 
426
426
  declare global {
427
427
  namespace JSX {
428
+ /** The type that JSX expressions evaluate to */
429
+ type Element = import("./types").VNode
430
+
431
+ /**
432
+ * Valid JSX tag types — intrinsic strings + component functions.
433
+ * Components may return VNode, null, strings, functions (reactive getters), etc.
434
+ * (TS 5.1+ feature)
435
+ */
436
+ type ElementType = keyof IntrinsicElements | ((props: any) => import("./types").VNodeChild)
437
+
438
+ /** Tells TS which prop name carries children in component calls */
439
+ interface ElementChildrenAttribute {
440
+ children: {}
441
+ }
442
+
428
443
  interface IntrinsicElements {
429
444
  // Document structure
430
445
  html: PyreonHTMLAttributes