@ox-content/vite-plugin 2.86.0 → 2.88.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,731 @@
1
+ //#region src/jsx.d.ts
2
+ declare namespace JSX {
3
+ /**
4
+ * The type returned by JSX expressions.
5
+ */
6
+ export type Element = JSXNode;
7
+ /**
8
+ * Attributes accepted on every component element, on top of its own props.
9
+ *
10
+ * Intrinsic elements do not go through this — they pick `key` up from
11
+ * `HTMLAttributes` instead, the same way React's types do it.
12
+ */
13
+ export interface IntrinsicAttributes {
14
+ key?: string | number;
15
+ }
16
+ /**
17
+ * Props for intrinsic elements (HTML tags).
18
+ */
19
+ export interface IntrinsicElements {
20
+ // Document metadata
21
+ html: HtmlHTMLAttributes;
22
+ head: HTMLAttributes;
23
+ title: HTMLAttributes;
24
+ base: BaseHTMLAttributes;
25
+ link: LinkHTMLAttributes;
26
+ meta: MetaHTMLAttributes;
27
+ style: StyleHTMLAttributes;
28
+ // Sections
29
+ body: HTMLAttributes;
30
+ article: HTMLAttributes;
31
+ section: HTMLAttributes;
32
+ nav: HTMLAttributes;
33
+ aside: HTMLAttributes;
34
+ header: HTMLAttributes;
35
+ footer: HTMLAttributes;
36
+ main: HTMLAttributes;
37
+ address: HTMLAttributes;
38
+ // Headings
39
+ h1: HTMLAttributes;
40
+ h2: HTMLAttributes;
41
+ h3: HTMLAttributes;
42
+ h4: HTMLAttributes;
43
+ h5: HTMLAttributes;
44
+ h6: HTMLAttributes;
45
+ hgroup: HTMLAttributes;
46
+ // Text content
47
+ p: HTMLAttributes;
48
+ hr: HTMLAttributes;
49
+ pre: HTMLAttributes;
50
+ blockquote: BlockquoteHTMLAttributes;
51
+ ol: OlHTMLAttributes;
52
+ ul: HTMLAttributes;
53
+ li: LiHTMLAttributes;
54
+ dl: HTMLAttributes;
55
+ dt: HTMLAttributes;
56
+ dd: HTMLAttributes;
57
+ figure: HTMLAttributes;
58
+ figcaption: HTMLAttributes;
59
+ div: HTMLAttributes;
60
+ // Inline text
61
+ a: AnchorHTMLAttributes;
62
+ em: HTMLAttributes;
63
+ strong: HTMLAttributes;
64
+ small: HTMLAttributes;
65
+ s: HTMLAttributes;
66
+ cite: HTMLAttributes;
67
+ q: QuoteHTMLAttributes;
68
+ dfn: HTMLAttributes;
69
+ abbr: HTMLAttributes;
70
+ ruby: HTMLAttributes;
71
+ rt: HTMLAttributes;
72
+ rp: HTMLAttributes;
73
+ data: DataHTMLAttributes;
74
+ time: TimeHTMLAttributes;
75
+ code: HTMLAttributes;
76
+ var: HTMLAttributes;
77
+ samp: HTMLAttributes;
78
+ kbd: HTMLAttributes;
79
+ sub: HTMLAttributes;
80
+ sup: HTMLAttributes;
81
+ i: HTMLAttributes;
82
+ b: HTMLAttributes;
83
+ u: HTMLAttributes;
84
+ mark: HTMLAttributes;
85
+ bdi: HTMLAttributes;
86
+ bdo: HTMLAttributes;
87
+ span: HTMLAttributes;
88
+ br: HTMLAttributes;
89
+ wbr: HTMLAttributes;
90
+ // Edits
91
+ ins: InsHTMLAttributes;
92
+ del: DelHTMLAttributes;
93
+ // Embedded content
94
+ picture: HTMLAttributes;
95
+ source: SourceHTMLAttributes;
96
+ img: ImgHTMLAttributes;
97
+ iframe: IframeHTMLAttributes;
98
+ embed: EmbedHTMLAttributes;
99
+ object: ObjectHTMLAttributes;
100
+ param: ParamHTMLAttributes;
101
+ video: VideoHTMLAttributes;
102
+ audio: AudioHTMLAttributes;
103
+ track: TrackHTMLAttributes;
104
+ map: MapHTMLAttributes;
105
+ area: AreaHTMLAttributes;
106
+ // SVG
107
+ svg: SVGAttributes;
108
+ path: SVGAttributes;
109
+ circle: SVGAttributes;
110
+ ellipse: SVGAttributes;
111
+ line: SVGAttributes;
112
+ polygon: SVGAttributes;
113
+ polyline: SVGAttributes;
114
+ rect: SVGAttributes;
115
+ g: SVGAttributes;
116
+ defs: SVGAttributes;
117
+ symbol: SVGAttributes;
118
+ use: SVGAttributes;
119
+ text: SVGAttributes;
120
+ tspan: SVGAttributes;
121
+ image: SVGAttributes;
122
+ clipPath: SVGAttributes;
123
+ mask: SVGAttributes;
124
+ pattern: SVGAttributes;
125
+ linearGradient: SVGAttributes;
126
+ radialGradient: SVGAttributes;
127
+ stop: SVGAttributes;
128
+ filter: SVGAttributes;
129
+ feBlend: SVGAttributes;
130
+ feColorMatrix: SVGAttributes;
131
+ feComponentTransfer: SVGAttributes;
132
+ feComposite: SVGAttributes;
133
+ feConvolveMatrix: SVGAttributes;
134
+ feDiffuseLighting: SVGAttributes;
135
+ feDisplacementMap: SVGAttributes;
136
+ feFlood: SVGAttributes;
137
+ feGaussianBlur: SVGAttributes;
138
+ feImage: SVGAttributes;
139
+ feMerge: SVGAttributes;
140
+ feMergeNode: SVGAttributes;
141
+ feMorphology: SVGAttributes;
142
+ feOffset: SVGAttributes;
143
+ feSpecularLighting: SVGAttributes;
144
+ feTile: SVGAttributes;
145
+ feTurbulence: SVGAttributes;
146
+ // Tables
147
+ table: TableHTMLAttributes;
148
+ caption: HTMLAttributes;
149
+ colgroup: ColgroupHTMLAttributes;
150
+ col: ColHTMLAttributes;
151
+ tbody: HTMLAttributes;
152
+ thead: HTMLAttributes;
153
+ tfoot: HTMLAttributes;
154
+ tr: HTMLAttributes;
155
+ td: TdHTMLAttributes;
156
+ th: ThHTMLAttributes;
157
+ // Forms
158
+ form: FormHTMLAttributes;
159
+ label: LabelHTMLAttributes;
160
+ input: InputHTMLAttributes;
161
+ button: ButtonHTMLAttributes;
162
+ select: SelectHTMLAttributes;
163
+ datalist: HTMLAttributes;
164
+ optgroup: OptgroupHTMLAttributes;
165
+ option: OptionHTMLAttributes;
166
+ textarea: TextareaHTMLAttributes;
167
+ output: OutputHTMLAttributes;
168
+ progress: ProgressHTMLAttributes;
169
+ meter: MeterHTMLAttributes;
170
+ fieldset: FieldsetHTMLAttributes;
171
+ legend: HTMLAttributes;
172
+ // Interactive
173
+ details: DetailsHTMLAttributes;
174
+ summary: HTMLAttributes;
175
+ dialog: DialogHTMLAttributes;
176
+ menu: MenuHTMLAttributes;
177
+ // Scripting
178
+ script: ScriptHTMLAttributes;
179
+ noscript: HTMLAttributes;
180
+ template: HTMLAttributes;
181
+ slot: SlotHTMLAttributes;
182
+ canvas: CanvasHTMLAttributes;
183
+ }
184
+ /**
185
+ * Base HTML attributes shared by all elements.
186
+ */
187
+ export interface HTMLAttributes {
188
+ /**
189
+ * List key. The automatic runtime hoists it out of the props object and
190
+ * passes it as `jsx(type, props, key)`, where static HTML generation
191
+ * ignores it — but it still has to type-check, or every `.map()` over a
192
+ * list of elements fails to compile.
193
+ */
194
+ key?: string | number;
195
+ // Global attributes
196
+ accessKey?: string;
197
+ autoCapitalize?: string;
198
+ autoFocus?: boolean;
199
+ class?: string;
200
+ className?: string;
201
+ contentEditable?: boolean | "true" | "false" | "inherit";
202
+ contextMenu?: string;
203
+ dir?: "ltr" | "rtl" | "auto";
204
+ draggable?: boolean | "true" | "false";
205
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send";
206
+ hidden?: boolean;
207
+ id?: string;
208
+ inert?: boolean;
209
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search";
210
+ is?: string;
211
+ itemId?: string;
212
+ itemProp?: string;
213
+ itemRef?: string;
214
+ itemScope?: boolean;
215
+ itemType?: string;
216
+ lang?: string;
217
+ nonce?: string;
218
+ part?: string;
219
+ popover?: "auto" | "manual";
220
+ role?: string;
221
+ slot?: string;
222
+ spellCheck?: boolean | "true" | "false";
223
+ style?: string | Record<string, string | number>;
224
+ tabIndex?: number;
225
+ title?: string;
226
+ translate?: "yes" | "no";
227
+ // Data attributes
228
+ [key: `data-${string}`]: string | number | boolean | undefined;
229
+ // ARIA attributes
230
+ "aria-activedescendant"?: string;
231
+ "aria-atomic"?: boolean | "true" | "false";
232
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both";
233
+ "aria-busy"?: boolean | "true" | "false";
234
+ "aria-checked"?: boolean | "true" | "false" | "mixed";
235
+ "aria-colcount"?: number;
236
+ "aria-colindex"?: number;
237
+ "aria-colspan"?: number;
238
+ "aria-controls"?: string;
239
+ "aria-current"?: boolean | "true" | "false" | "page" | "step" | "location" | "date" | "time";
240
+ "aria-describedby"?: string;
241
+ "aria-details"?: string;
242
+ "aria-disabled"?: boolean | "true" | "false";
243
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup";
244
+ "aria-errormessage"?: string;
245
+ "aria-expanded"?: boolean | "true" | "false";
246
+ "aria-flowto"?: string;
247
+ "aria-grabbed"?: boolean | "true" | "false";
248
+ "aria-haspopup"?: boolean | "true" | "false" | "menu" | "listbox" | "tree" | "grid" | "dialog";
249
+ "aria-hidden"?: boolean | "true" | "false";
250
+ "aria-invalid"?: boolean | "true" | "false" | "grammar" | "spelling";
251
+ "aria-keyshortcuts"?: string;
252
+ "aria-label"?: string;
253
+ "aria-labelledby"?: string;
254
+ "aria-level"?: number;
255
+ "aria-live"?: "off" | "assertive" | "polite";
256
+ "aria-modal"?: boolean | "true" | "false";
257
+ "aria-multiline"?: boolean | "true" | "false";
258
+ "aria-multiselectable"?: boolean | "true" | "false";
259
+ "aria-orientation"?: "horizontal" | "vertical";
260
+ "aria-owns"?: string;
261
+ "aria-placeholder"?: string;
262
+ "aria-posinset"?: number;
263
+ "aria-pressed"?: boolean | "true" | "false" | "mixed";
264
+ "aria-readonly"?: boolean | "true" | "false";
265
+ "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals";
266
+ "aria-required"?: boolean | "true" | "false";
267
+ "aria-roledescription"?: string;
268
+ "aria-rowcount"?: number;
269
+ "aria-rowindex"?: number;
270
+ "aria-rowspan"?: number;
271
+ "aria-selected"?: boolean | "true" | "false";
272
+ "aria-setsize"?: number;
273
+ "aria-sort"?: "none" | "ascending" | "descending" | "other";
274
+ "aria-valuemax"?: number;
275
+ "aria-valuemin"?: number;
276
+ "aria-valuenow"?: number;
277
+ "aria-valuetext"?: string;
278
+ // Children
279
+ children?: JSXChild;
280
+ }
281
+ // Element-specific attributes
282
+ export interface HtmlHTMLAttributes extends HTMLAttributes {
283
+ manifest?: string;
284
+ }
285
+ export interface BaseHTMLAttributes extends HTMLAttributes {
286
+ href?: string;
287
+ target?: string;
288
+ }
289
+ export interface LinkHTMLAttributes extends HTMLAttributes {
290
+ as?: string;
291
+ crossOrigin?: string;
292
+ href?: string;
293
+ hrefLang?: string;
294
+ integrity?: string;
295
+ media?: string;
296
+ referrerPolicy?: string;
297
+ rel?: string;
298
+ sizes?: string;
299
+ type?: string;
300
+ }
301
+ export interface MetaHTMLAttributes extends HTMLAttributes {
302
+ charSet?: string;
303
+ content?: string;
304
+ httpEquiv?: string;
305
+ name?: string;
306
+ property?: string;
307
+ }
308
+ export interface StyleHTMLAttributes extends HTMLAttributes {
309
+ media?: string;
310
+ scoped?: boolean;
311
+ type?: string;
312
+ }
313
+ export interface BlockquoteHTMLAttributes extends HTMLAttributes {
314
+ cite?: string;
315
+ }
316
+ export interface OlHTMLAttributes extends HTMLAttributes {
317
+ reversed?: boolean;
318
+ start?: number;
319
+ type?: "1" | "a" | "A" | "i" | "I";
320
+ }
321
+ export interface LiHTMLAttributes extends HTMLAttributes {
322
+ value?: number;
323
+ }
324
+ export interface AnchorHTMLAttributes extends HTMLAttributes {
325
+ download?: string | boolean;
326
+ href?: string;
327
+ hrefLang?: string;
328
+ media?: string;
329
+ ping?: string;
330
+ referrerPolicy?: string;
331
+ rel?: string;
332
+ target?: string;
333
+ type?: string;
334
+ }
335
+ export interface QuoteHTMLAttributes extends HTMLAttributes {
336
+ cite?: string;
337
+ }
338
+ export interface DataHTMLAttributes extends HTMLAttributes {
339
+ value?: string | number;
340
+ }
341
+ export interface TimeHTMLAttributes extends HTMLAttributes {
342
+ dateTime?: string;
343
+ }
344
+ export interface InsHTMLAttributes extends HTMLAttributes {
345
+ cite?: string;
346
+ dateTime?: string;
347
+ }
348
+ export interface DelHTMLAttributes extends HTMLAttributes {
349
+ cite?: string;
350
+ dateTime?: string;
351
+ }
352
+ export interface SourceHTMLAttributes extends HTMLAttributes {
353
+ media?: string;
354
+ sizes?: string;
355
+ src?: string;
356
+ srcSet?: string;
357
+ type?: string;
358
+ }
359
+ export interface ImgHTMLAttributes extends HTMLAttributes {
360
+ alt?: string;
361
+ crossOrigin?: "anonymous" | "use-credentials";
362
+ decoding?: "async" | "auto" | "sync";
363
+ height?: number | string;
364
+ loading?: "eager" | "lazy";
365
+ referrerPolicy?: string;
366
+ sizes?: string;
367
+ src?: string;
368
+ srcSet?: string;
369
+ useMap?: string;
370
+ width?: number | string;
371
+ }
372
+ export interface IframeHTMLAttributes extends HTMLAttributes {
373
+ allow?: string;
374
+ allowFullScreen?: boolean;
375
+ height?: number | string;
376
+ loading?: "eager" | "lazy";
377
+ name?: string;
378
+ referrerPolicy?: string;
379
+ sandbox?: string;
380
+ src?: string;
381
+ srcDoc?: string;
382
+ width?: number | string;
383
+ }
384
+ export interface EmbedHTMLAttributes extends HTMLAttributes {
385
+ height?: number | string;
386
+ src?: string;
387
+ type?: string;
388
+ width?: number | string;
389
+ }
390
+ export interface ObjectHTMLAttributes extends HTMLAttributes {
391
+ data?: string;
392
+ form?: string;
393
+ height?: number | string;
394
+ name?: string;
395
+ type?: string;
396
+ useMap?: string;
397
+ width?: number | string;
398
+ }
399
+ export interface ParamHTMLAttributes extends HTMLAttributes {
400
+ name?: string;
401
+ value?: string | number;
402
+ }
403
+ export interface VideoHTMLAttributes extends HTMLAttributes {
404
+ autoPlay?: boolean;
405
+ controls?: boolean;
406
+ crossOrigin?: "anonymous" | "use-credentials";
407
+ height?: number | string;
408
+ loop?: boolean;
409
+ muted?: boolean;
410
+ playsInline?: boolean;
411
+ poster?: string;
412
+ preload?: "none" | "metadata" | "auto";
413
+ src?: string;
414
+ width?: number | string;
415
+ }
416
+ export interface AudioHTMLAttributes extends HTMLAttributes {
417
+ autoPlay?: boolean;
418
+ controls?: boolean;
419
+ crossOrigin?: "anonymous" | "use-credentials";
420
+ loop?: boolean;
421
+ muted?: boolean;
422
+ preload?: "none" | "metadata" | "auto";
423
+ src?: string;
424
+ }
425
+ export interface TrackHTMLAttributes extends HTMLAttributes {
426
+ default?: boolean;
427
+ kind?: "subtitles" | "captions" | "descriptions" | "chapters" | "metadata";
428
+ label?: string;
429
+ src?: string;
430
+ srcLang?: string;
431
+ }
432
+ export interface MapHTMLAttributes extends HTMLAttributes {
433
+ name?: string;
434
+ }
435
+ export interface AreaHTMLAttributes extends HTMLAttributes {
436
+ alt?: string;
437
+ coords?: string;
438
+ download?: string | boolean;
439
+ href?: string;
440
+ ping?: string;
441
+ referrerPolicy?: string;
442
+ rel?: string;
443
+ shape?: "rect" | "circle" | "poly" | "default";
444
+ target?: string;
445
+ }
446
+ export interface TableHTMLAttributes extends HTMLAttributes {
447
+ cellPadding?: number | string;
448
+ cellSpacing?: number | string;
449
+ }
450
+ export interface ColgroupHTMLAttributes extends HTMLAttributes {
451
+ span?: number;
452
+ }
453
+ export interface ColHTMLAttributes extends HTMLAttributes {
454
+ span?: number;
455
+ }
456
+ export interface TdHTMLAttributes extends HTMLAttributes {
457
+ colSpan?: number;
458
+ headers?: string;
459
+ rowSpan?: number;
460
+ }
461
+ export interface ThHTMLAttributes extends HTMLAttributes {
462
+ abbr?: string;
463
+ colSpan?: number;
464
+ headers?: string;
465
+ rowSpan?: number;
466
+ scope?: "row" | "col" | "rowgroup" | "colgroup";
467
+ }
468
+ export interface FormHTMLAttributes extends HTMLAttributes {
469
+ acceptCharset?: string;
470
+ action?: string;
471
+ autoComplete?: string;
472
+ encType?: string;
473
+ method?: "get" | "post" | "dialog";
474
+ name?: string;
475
+ noValidate?: boolean;
476
+ target?: string;
477
+ }
478
+ export interface LabelHTMLAttributes extends HTMLAttributes {
479
+ for?: string;
480
+ htmlFor?: string;
481
+ }
482
+ export interface InputHTMLAttributes extends HTMLAttributes {
483
+ accept?: string;
484
+ alt?: string;
485
+ autoComplete?: string;
486
+ capture?: boolean | "user" | "environment";
487
+ checked?: boolean;
488
+ disabled?: boolean;
489
+ form?: string;
490
+ formAction?: string;
491
+ formEncType?: string;
492
+ formMethod?: string;
493
+ formNoValidate?: boolean;
494
+ formTarget?: string;
495
+ height?: number | string;
496
+ list?: string;
497
+ max?: number | string;
498
+ maxLength?: number;
499
+ min?: number | string;
500
+ minLength?: number;
501
+ multiple?: boolean;
502
+ name?: string;
503
+ pattern?: string;
504
+ placeholder?: string;
505
+ readOnly?: boolean;
506
+ required?: boolean;
507
+ size?: number;
508
+ src?: string;
509
+ step?: number | string;
510
+ type?: string;
511
+ value?: string | number;
512
+ width?: number | string;
513
+ }
514
+ export interface ButtonHTMLAttributes extends HTMLAttributes {
515
+ disabled?: boolean;
516
+ form?: string;
517
+ formAction?: string;
518
+ formEncType?: string;
519
+ formMethod?: string;
520
+ formNoValidate?: boolean;
521
+ formTarget?: string;
522
+ name?: string;
523
+ type?: "submit" | "reset" | "button";
524
+ value?: string | number;
525
+ }
526
+ export interface SelectHTMLAttributes extends HTMLAttributes {
527
+ autoComplete?: string;
528
+ disabled?: boolean;
529
+ form?: string;
530
+ multiple?: boolean;
531
+ name?: string;
532
+ required?: boolean;
533
+ size?: number;
534
+ value?: string | number;
535
+ }
536
+ export interface OptgroupHTMLAttributes extends HTMLAttributes {
537
+ disabled?: boolean;
538
+ label?: string;
539
+ }
540
+ export interface OptionHTMLAttributes extends HTMLAttributes {
541
+ disabled?: boolean;
542
+ label?: string;
543
+ selected?: boolean;
544
+ value?: string | number;
545
+ }
546
+ export interface TextareaHTMLAttributes extends HTMLAttributes {
547
+ autoComplete?: string;
548
+ cols?: number;
549
+ disabled?: boolean;
550
+ form?: string;
551
+ maxLength?: number;
552
+ minLength?: number;
553
+ name?: string;
554
+ placeholder?: string;
555
+ readOnly?: boolean;
556
+ required?: boolean;
557
+ rows?: number;
558
+ value?: string;
559
+ wrap?: "hard" | "soft";
560
+ }
561
+ export interface OutputHTMLAttributes extends HTMLAttributes {
562
+ for?: string;
563
+ form?: string;
564
+ name?: string;
565
+ }
566
+ export interface ProgressHTMLAttributes extends HTMLAttributes {
567
+ max?: number;
568
+ value?: number | string;
569
+ }
570
+ export interface MeterHTMLAttributes extends HTMLAttributes {
571
+ form?: string;
572
+ high?: number;
573
+ low?: number;
574
+ max?: number;
575
+ min?: number;
576
+ optimum?: number;
577
+ value?: number | string;
578
+ }
579
+ export interface FieldsetHTMLAttributes extends HTMLAttributes {
580
+ disabled?: boolean;
581
+ form?: string;
582
+ name?: string;
583
+ }
584
+ export interface DetailsHTMLAttributes extends HTMLAttributes {
585
+ open?: boolean;
586
+ }
587
+ export interface DialogHTMLAttributes extends HTMLAttributes {
588
+ open?: boolean;
589
+ }
590
+ export interface MenuHTMLAttributes extends HTMLAttributes {
591
+ type?: "context" | "toolbar";
592
+ }
593
+ export interface ScriptHTMLAttributes extends HTMLAttributes {
594
+ async?: boolean;
595
+ crossOrigin?: string;
596
+ defer?: boolean;
597
+ integrity?: string;
598
+ noModule?: boolean;
599
+ referrerPolicy?: string;
600
+ src?: string;
601
+ type?: string;
602
+ }
603
+ export interface SlotHTMLAttributes extends HTMLAttributes {
604
+ name?: string;
605
+ }
606
+ export interface CanvasHTMLAttributes extends HTMLAttributes {
607
+ height?: number | string;
608
+ width?: number | string;
609
+ }
610
+ export interface SVGAttributes extends HTMLAttributes {
611
+ // SVG-specific attributes
612
+ viewBox?: string;
613
+ xmlns?: string;
614
+ fill?: string;
615
+ stroke?: string;
616
+ strokeWidth?: string | number;
617
+ strokeLinecap?: "butt" | "round" | "square";
618
+ strokeLinejoin?: "miter" | "round" | "bevel";
619
+ d?: string;
620
+ cx?: string | number;
621
+ cy?: string | number;
622
+ r?: string | number;
623
+ rx?: string | number;
624
+ ry?: string | number;
625
+ x?: string | number;
626
+ y?: string | number;
627
+ x1?: string | number;
628
+ y1?: string | number;
629
+ x2?: string | number;
630
+ y2?: string | number;
631
+ width?: string | number;
632
+ height?: string | number;
633
+ points?: string;
634
+ transform?: string;
635
+ opacity?: string | number;
636
+ clipPath?: string;
637
+ mask?: string;
638
+ filter?: string;
639
+ }
640
+ /**
641
+ * Type for intrinsic element constructors.
642
+ */
643
+ export type IntrinsicElementType = keyof IntrinsicElements;
644
+ /**
645
+ * Props for a specific intrinsic element.
646
+ */
647
+ export type IntrinsicElementProps<T extends IntrinsicElementType> = IntrinsicElements[T];
648
+ }
649
+ type JsxRuntimeIntrinsicElements = JSX.IntrinsicElements;
650
+ type JsxRuntimeIntrinsicAttributes = JSX.IntrinsicAttributes;
651
+ declare global {
652
+ namespace JSX {
653
+ type Element = JSXNode;
654
+ interface IntrinsicElements extends JsxRuntimeIntrinsicElements {}
655
+ interface IntrinsicAttributes extends JsxRuntimeIntrinsicAttributes {}
656
+ }
657
+ }
658
+ //#endregion
659
+ //#region src/jsx-html.d.ts
660
+ /**
661
+ * JSX element type - either a string (intrinsic) or a function component.
662
+ */
663
+ type JSXElementType = string | ((props: Record<string, unknown>) => JSXNode);
664
+ /**
665
+ * Valid JSX child types.
666
+ */
667
+ type JSXChild = string | number | boolean | null | undefined | JSXNode | JSXChild[];
668
+ /**
669
+ * JSX node - the result of JSX expressions.
670
+ */
671
+ interface JSXNode {
672
+ __html: string;
673
+ }
674
+ /**
675
+ * Props with children.
676
+ */
677
+ interface JSXProps {
678
+ children?: JSXChild;
679
+ [key: string]: unknown;
680
+ }
681
+ /**
682
+ * Creates a JSX element.
683
+ * This is the core function called by the JSX transform.
684
+ */
685
+ declare function jsx(type: JSXElementType, props: JSXProps, _key?: string): JSXNode;
686
+ /**
687
+ * Creates a JSX element with static children.
688
+ * Called by the JSX transform for elements with multiple children.
689
+ */
690
+ declare function jsxs(type: JSXElementType, props: JSXProps, key?: string): JSXNode;
691
+ /**
692
+ * Fragment component - renders children without a wrapper element.
693
+ */
694
+ declare function Fragment({ children }: {
695
+ children?: JSXChild;
696
+ }): JSXNode;
697
+ /**
698
+ * Renders a JSX node to an HTML string.
699
+ */
700
+ declare function renderToString(node: JSXNode): string;
701
+ /**
702
+ * Creates raw HTML without escaping.
703
+ * Use with caution - only for trusted content.
704
+ *
705
+ * @example
706
+ * ```tsx
707
+ * <div>{raw('<strong>Bold</strong>')}</div>
708
+ * ```
709
+ */
710
+ declare function raw(html: string): JSXNode;
711
+ /**
712
+ * Conditionally renders content.
713
+ *
714
+ * @example
715
+ * ```tsx
716
+ * {when(isLoggedIn, <UserMenu />)}
717
+ * ```
718
+ */
719
+ declare function when(condition: boolean, content: JSXNode): JSXNode;
720
+ /**
721
+ * Maps over an array and renders each item.
722
+ *
723
+ * @example
724
+ * ```tsx
725
+ * {each(items, (item) => <li>{item.name}</li>)}
726
+ * ```
727
+ */
728
+ declare function each<T>(items: T[], render: (item: T, index: number) => JSXNode): JSXNode;
729
+ //#endregion
730
+ export { JSXProps as a, jsxs as c, when as d, JSX as f, JSXNode as i, raw as l, JSXChild as n, each as o, JSXElementType as r, jsx as s, Fragment as t, renderToString as u };
731
+ //# sourceMappingURL=jsx-html.d.cts.map