@thewaver/ss-components 0.0.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.
Files changed (3) hide show
  1. package/dist/index.d.ts +1194 -0
  2. package/dist/index.js +9227 -0
  3. package/package.json +60 -0
@@ -0,0 +1,1194 @@
1
+ import * as solid_js from 'solid-js';
2
+ import { Accessor, Setter, JSX, ParentProps } from 'solid-js';
3
+ import * as _thewaver_ss_utils from '@thewaver/ss-utils';
4
+ import { Rect, Bounds, Point2d, Size2d, CSSMargin, CSSAnimationKey } from '@thewaver/ss-utils';
5
+ import { Color } from 'colorthief';
6
+
7
+ declare namespace AudioUtils {
8
+ const isPlaying: (audioElement: HTMLAudioElement) => boolean;
9
+ }
10
+
11
+ declare namespace ElementFader {
12
+ const createFader: (getIsVisible: () => boolean, getTransitionDurationMs: () => number, opts?: {
13
+ onShow?: () => void;
14
+ onHide?: () => void;
15
+ }) => {
16
+ getIsVisible: solid_js.Accessor<boolean>;
17
+ getTransitionTarget: solid_js.Accessor<0 | 1>;
18
+ getHasTransitionFinished: solid_js.Accessor<boolean>;
19
+ show: () => void;
20
+ hide: () => void;
21
+ };
22
+ }
23
+
24
+ declare namespace ElementObserver {
25
+ const createObserver: <T extends HTMLElement>(getElementRef: Accessor<T | undefined>, setElementRect: Setter<Rect | undefined>, getIsVisible: Accessor<boolean>, opts?: {
26
+ getPadding?: () => Bounds | number;
27
+ getOffset?: () => Point2d;
28
+ }) => void;
29
+ }
30
+
31
+ declare namespace FPSUtils {
32
+ const createMonitor: (getIsEnabled: Accessor<boolean>, startupTimeMs?: number) => {
33
+ getFPS: Accessor<{
34
+ current: number;
35
+ average: number;
36
+ }>;
37
+ };
38
+ }
39
+
40
+ declare namespace FocusUtils {
41
+ const getFocusableChildren: (root?: HTMLElement) => HTMLElement[];
42
+ const getFirstFocusableChild: (root?: HTMLElement) => HTMLElement | null;
43
+ const getLastFocusableChild: (root?: HTMLElement) => HTMLElement | null;
44
+ const focusTrapKeyDown: (e: KeyboardEvent & {
45
+ currentTarget: HTMLDivElement;
46
+ target: Element;
47
+ }, ref: HTMLElement | undefined) => void;
48
+ const autoFocus: (getIsVisible: () => boolean, getRef: () => HTMLElement | undefined) => void;
49
+ }
50
+
51
+ type ExternalInteractionFlags = {
52
+ isDisabled?: boolean;
53
+ isPressed?: boolean;
54
+ hasError?: boolean;
55
+ };
56
+ type InternalInteractionFlags = {
57
+ isHovered?: boolean;
58
+ isActive?: boolean;
59
+ isFocused?: boolean;
60
+ };
61
+ type InteractionFlags = InternalInteractionFlags & ExternalInteractionFlags;
62
+
63
+ declare namespace InteractionUtils {
64
+ const wrapElement: (getRef: () => HTMLElement | undefined, getIsDisabled: () => boolean, skipAriaSettings?: boolean) => {
65
+ getFlags: solid_js.Accessor<InternalInteractionFlags>;
66
+ };
67
+ }
68
+
69
+ type NonNullish<T> = T extends undefined | null ? never : T;
70
+ type IsPrimitive<T> = T extends string | number | boolean | bigint | null | undefined ? true : false;
71
+ type IsNonReactive<T> = T extends ((...args: any) => any) | JSX.Element | Date | Map<any, any> | Set<any> | symbol ? true : false;
72
+ type IsOptional<T, K extends keyof T> = {} extends Pick<T, K> ? true : false;
73
+ type IsSkippable<T> = IsPrimitive<NonNullish<T>> extends true ? false : IsNonReactive<NonNullish<T>>;
74
+ type PrefixKeyWithGet<K> = K extends string ? `get${Capitalize<K>}` : never;
75
+ type AccessorizedPart<T extends object> = {
76
+ [K in keyof T as IsSkippable<T[K]> extends false ? PrefixKeyWithGet<K & string> : never]: IsOptional<T, K> extends true ? Accessor<Exclude<T[K], undefined>> | undefined : Accessor<T[K]>;
77
+ };
78
+ type SkippedPart<T extends object> = {
79
+ [K in keyof T as IsSkippable<T[K]> extends true ? K : never]: T[K];
80
+ };
81
+ type AccessorProps<T extends object> = AccessorizedPart<T> & SkippedPart<T>;
82
+
83
+ type SVGAnimationDefs = AccessorProps<{
84
+ animationDurationMs: number;
85
+ }>;
86
+
87
+ type SVGDefs = {
88
+ clipPath?: {
89
+ id: string;
90
+ defsElement: JSX.Element;
91
+ };
92
+ filter?: {
93
+ id: string;
94
+ defsElement: JSX.Element;
95
+ };
96
+ blend?: boolean;
97
+ opacity?: number;
98
+ } & ({
99
+ color?: never;
100
+ gradientOrPattern: {
101
+ id: string;
102
+ defsElement: JSX.Element;
103
+ };
104
+ } | {
105
+ color: string;
106
+ gradientOrPattern?: never;
107
+ });
108
+
109
+ declare namespace SVGDefsSamples {
110
+ type ColorDefs = {
111
+ [K in "primary" | "secondary" | "tertiary" | "background"]: string;
112
+ };
113
+ namespace Pattern {
114
+ type ElementDefs = SVGAnimationDefs & {
115
+ getSize: () => Size2d;
116
+ getCellSize: () => Size2d;
117
+ getColors: () => ColorDefs;
118
+ getBlurWidth?: () => number;
119
+ };
120
+ export type ConfigDefs = {
121
+ getSVGDefs: (id: string, getInteractionFlags: (() => InteractionFlags) | undefined, defs: ElementDefs) => SVGDefs[];
122
+ };
123
+ export const SAMPLE_CONFIGS: {
124
+ readonly plain: {
125
+ readonly getSVGDefs: (_: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => {
126
+ color: string;
127
+ }[];
128
+ };
129
+ readonly circle_g_2: ConfigDefs;
130
+ readonly circle_hd_2: ConfigDefs;
131
+ readonly circle_hs_2: ConfigDefs;
132
+ readonly hexagon_ft_2: ConfigDefs;
133
+ readonly hexagon_pt_2: ConfigDefs;
134
+ readonly lozenge_d_2: ConfigDefs;
135
+ readonly triangle_t_2: ConfigDefs;
136
+ readonly whirl_2: ConfigDefs;
137
+ readonly whirlCurved_2: ConfigDefs;
138
+ };
139
+ export { };
140
+ }
141
+ namespace Gradient {
142
+ type ElementDefs = SVGAnimationDefs & {
143
+ getSize: () => Size2d;
144
+ getColors: () => ColorDefs;
145
+ getBlurWidth?: () => number;
146
+ };
147
+ export type ConfigDefs = {
148
+ getSVGDefs: (id: string, getInteractionFlags: (() => InteractionFlags) | undefined, defs: ElementDefs) => SVGDefs[];
149
+ };
150
+ export const SAMPLE_CONFIGS: {
151
+ readonly plain: {
152
+ readonly getSVGDefs: (_: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => {
153
+ color: string;
154
+ }[];
155
+ };
156
+ readonly flow_2s: {
157
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => {
158
+ gradientOrPattern: {
159
+ id: string;
160
+ defsElement: solid_js.JSX.Element;
161
+ };
162
+ }[];
163
+ };
164
+ readonly flow_3: {
165
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => {
166
+ gradientOrPattern: {
167
+ id: string;
168
+ defsElement: solid_js.JSX.Element;
169
+ };
170
+ filter: {
171
+ id: string;
172
+ defsElement: solid_js.JSX.Element;
173
+ } | undefined;
174
+ }[];
175
+ };
176
+ readonly flow_3s: {
177
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => {
178
+ gradientOrPattern: {
179
+ id: string;
180
+ defsElement: solid_js.JSX.Element;
181
+ };
182
+ }[];
183
+ };
184
+ readonly flowDiagonal_2s: {
185
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => {
186
+ gradientOrPattern: {
187
+ id: string;
188
+ defsElement: solid_js.JSX.Element;
189
+ };
190
+ }[];
191
+ };
192
+ readonly flowDiagonal_3: {
193
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => {
194
+ gradientOrPattern: {
195
+ id: string;
196
+ defsElement: solid_js.JSX.Element;
197
+ };
198
+ filter: {
199
+ id: string;
200
+ defsElement: solid_js.JSX.Element;
201
+ } | undefined;
202
+ }[];
203
+ };
204
+ readonly flowDiagonal_3s: {
205
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => {
206
+ gradientOrPattern: {
207
+ id: string;
208
+ defsElement: solid_js.JSX.Element;
209
+ };
210
+ }[];
211
+ };
212
+ readonly merge_1v1: {
213
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
214
+ color: string;
215
+ gradientOrPattern?: undefined;
216
+ filter?: undefined;
217
+ blend?: undefined;
218
+ } | {
219
+ gradientOrPattern: {
220
+ id: string;
221
+ defsElement: solid_js.JSX.Element;
222
+ };
223
+ filter: {
224
+ id: string;
225
+ defsElement: solid_js.JSX.Element;
226
+ } | undefined;
227
+ blend: true;
228
+ color?: undefined;
229
+ })[];
230
+ };
231
+ readonly mergeDiagonal_1v1: {
232
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
233
+ color: string;
234
+ gradientOrPattern?: undefined;
235
+ filter?: undefined;
236
+ blend?: undefined;
237
+ } | {
238
+ gradientOrPattern: {
239
+ id: string;
240
+ defsElement: solid_js.JSX.Element;
241
+ };
242
+ filter: {
243
+ id: string;
244
+ defsElement: solid_js.JSX.Element;
245
+ } | undefined;
246
+ blend: true;
247
+ color?: undefined;
248
+ })[];
249
+ };
250
+ readonly mergeDiagonalDesync_4x: {
251
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
252
+ color: string;
253
+ gradientOrPattern?: undefined;
254
+ filter?: undefined;
255
+ blend?: undefined;
256
+ } | {
257
+ gradientOrPattern: {
258
+ id: string;
259
+ defsElement: solid_js.JSX.Element;
260
+ };
261
+ filter: {
262
+ id: string;
263
+ defsElement: solid_js.JSX.Element;
264
+ } | undefined;
265
+ blend: true;
266
+ color?: undefined;
267
+ })[];
268
+ };
269
+ readonly orbit_1: {
270
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
271
+ color: string;
272
+ gradientOrPattern?: undefined;
273
+ filter?: undefined;
274
+ } | {
275
+ gradientOrPattern: {
276
+ id: string;
277
+ defsElement: solid_js.JSX.Element;
278
+ };
279
+ filter: {
280
+ id: string;
281
+ defsElement: solid_js.JSX.Element;
282
+ } | undefined;
283
+ color?: undefined;
284
+ })[];
285
+ };
286
+ readonly orbit_1v1: {
287
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
288
+ color: string;
289
+ gradientOrPattern?: undefined;
290
+ filter?: undefined;
291
+ } | {
292
+ gradientOrPattern: {
293
+ id: string;
294
+ defsElement: solid_js.JSX.Element;
295
+ };
296
+ filter: {
297
+ id: string;
298
+ defsElement: solid_js.JSX.Element;
299
+ } | undefined;
300
+ color?: undefined;
301
+ })[];
302
+ };
303
+ readonly orbitDesync_2v1: {
304
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
305
+ color: string;
306
+ gradientOrPattern?: undefined;
307
+ filter?: undefined;
308
+ } | {
309
+ gradientOrPattern: {
310
+ id: string;
311
+ defsElement: solid_js.JSX.Element;
312
+ };
313
+ filter: {
314
+ id: string;
315
+ defsElement: solid_js.JSX.Element;
316
+ } | undefined;
317
+ color?: undefined;
318
+ })[];
319
+ };
320
+ readonly orbitDesync_3x: {
321
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
322
+ color: string;
323
+ gradientOrPattern?: undefined;
324
+ filter?: undefined;
325
+ blend?: undefined;
326
+ } | {
327
+ gradientOrPattern: {
328
+ id: string;
329
+ defsElement: solid_js.JSX.Element;
330
+ };
331
+ filter: {
332
+ id: string;
333
+ defsElement: solid_js.JSX.Element;
334
+ } | undefined;
335
+ blend: true;
336
+ color?: undefined;
337
+ })[];
338
+ };
339
+ readonly scan_1: {
340
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
341
+ color: string;
342
+ gradientOrPattern?: undefined;
343
+ filter?: undefined;
344
+ } | {
345
+ gradientOrPattern: {
346
+ id: string;
347
+ defsElement: solid_js.JSX.Element;
348
+ };
349
+ filter: {
350
+ id: string;
351
+ defsElement: solid_js.JSX.Element;
352
+ } | undefined;
353
+ color?: undefined;
354
+ })[];
355
+ };
356
+ readonly scan_1v1: {
357
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
358
+ color: string;
359
+ gradientOrPattern?: undefined;
360
+ filter?: undefined;
361
+ } | {
362
+ gradientOrPattern: {
363
+ id: string;
364
+ defsElement: solid_js.JSX.Element;
365
+ };
366
+ filter: {
367
+ id: string;
368
+ defsElement: solid_js.JSX.Element;
369
+ } | undefined;
370
+ color?: undefined;
371
+ })[];
372
+ };
373
+ readonly scanDiagonal_1: {
374
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
375
+ color: string;
376
+ gradientOrPattern?: undefined;
377
+ filter?: undefined;
378
+ } | {
379
+ gradientOrPattern: {
380
+ id: string;
381
+ defsElement: solid_js.JSX.Element;
382
+ };
383
+ filter: {
384
+ id: string;
385
+ defsElement: solid_js.JSX.Element;
386
+ } | undefined;
387
+ color?: undefined;
388
+ })[];
389
+ };
390
+ readonly scanDiagonal_1v1: {
391
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
392
+ color: string;
393
+ gradientOrPattern?: undefined;
394
+ filter?: undefined;
395
+ } | {
396
+ gradientOrPattern: {
397
+ id: string;
398
+ defsElement: solid_js.JSX.Element;
399
+ };
400
+ filter: {
401
+ id: string;
402
+ defsElement: solid_js.JSX.Element;
403
+ } | undefined;
404
+ color?: undefined;
405
+ })[];
406
+ };
407
+ readonly snake_1: {
408
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
409
+ color: string;
410
+ gradientOrPattern?: undefined;
411
+ clipPath?: undefined;
412
+ } | {
413
+ gradientOrPattern: {
414
+ id: string;
415
+ defsElement: solid_js.JSX.Element;
416
+ };
417
+ clipPath: {
418
+ id: string;
419
+ defsElement: solid_js.JSX.Element;
420
+ };
421
+ color?: undefined;
422
+ })[];
423
+ };
424
+ readonly snake_1v1: {
425
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
426
+ color: string;
427
+ gradientOrPattern?: undefined;
428
+ clipPath?: undefined;
429
+ } | {
430
+ gradientOrPattern: {
431
+ id: string;
432
+ defsElement: solid_js.JSX.Element;
433
+ };
434
+ clipPath: {
435
+ id: string;
436
+ defsElement: solid_js.JSX.Element;
437
+ };
438
+ color?: undefined;
439
+ })[];
440
+ };
441
+ readonly snake_2: {
442
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
443
+ color: string;
444
+ gradientOrPattern?: undefined;
445
+ clipPath?: undefined;
446
+ } | {
447
+ gradientOrPattern: {
448
+ id: string;
449
+ defsElement: solid_js.JSX.Element;
450
+ };
451
+ clipPath: {
452
+ id: string;
453
+ defsElement: solid_js.JSX.Element;
454
+ };
455
+ color?: undefined;
456
+ })[];
457
+ };
458
+ readonly snake_4: {
459
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
460
+ color: string;
461
+ gradientOrPattern?: undefined;
462
+ clipPath?: undefined;
463
+ } | {
464
+ gradientOrPattern: {
465
+ id: string;
466
+ defsElement: solid_js.JSX.Element;
467
+ };
468
+ clipPath: {
469
+ id: string;
470
+ defsElement: solid_js.JSX.Element;
471
+ };
472
+ color?: undefined;
473
+ })[];
474
+ };
475
+ readonly snakeDesync_3x: {
476
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
477
+ color: string;
478
+ gradientOrPattern?: undefined;
479
+ clipPath?: undefined;
480
+ } | {
481
+ gradientOrPattern: {
482
+ id: string;
483
+ defsElement: solid_js.JSX.Element;
484
+ };
485
+ clipPath: {
486
+ id: string;
487
+ defsElement: solid_js.JSX.Element;
488
+ };
489
+ color?: undefined;
490
+ })[];
491
+ };
492
+ readonly snakeWait_1: {
493
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
494
+ color: string;
495
+ gradientOrPattern?: undefined;
496
+ clipPath?: undefined;
497
+ } | {
498
+ gradientOrPattern: {
499
+ id: string;
500
+ defsElement: solid_js.JSX.Element;
501
+ };
502
+ clipPath: {
503
+ id: string;
504
+ defsElement: solid_js.JSX.Element;
505
+ };
506
+ color?: undefined;
507
+ })[];
508
+ };
509
+ readonly snakeWait_3x1s: {
510
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
511
+ color: string;
512
+ gradientOrPattern?: undefined;
513
+ clipPath?: undefined;
514
+ } | {
515
+ gradientOrPattern: {
516
+ id: string;
517
+ defsElement: solid_js.JSX.Element;
518
+ };
519
+ clipPath: {
520
+ id: string;
521
+ defsElement: solid_js.JSX.Element;
522
+ };
523
+ color?: undefined;
524
+ })[];
525
+ };
526
+ readonly snakeWait_3x2s: {
527
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
528
+ color: string;
529
+ gradientOrPattern?: undefined;
530
+ clipPath?: undefined;
531
+ } | {
532
+ gradientOrPattern: {
533
+ id: string;
534
+ defsElement: solid_js.JSX.Element;
535
+ };
536
+ clipPath: {
537
+ id: string;
538
+ defsElement: solid_js.JSX.Element;
539
+ };
540
+ color?: undefined;
541
+ })[];
542
+ };
543
+ readonly sweep_1: {
544
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
545
+ color: string;
546
+ gradientOrPattern?: undefined;
547
+ filter?: undefined;
548
+ } | {
549
+ gradientOrPattern: {
550
+ id: string;
551
+ defsElement: solid_js.JSX.Element;
552
+ };
553
+ filter: {
554
+ id: string;
555
+ defsElement: solid_js.JSX.Element;
556
+ } | undefined;
557
+ color?: undefined;
558
+ })[];
559
+ };
560
+ readonly sweep_1v1: {
561
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
562
+ color: string;
563
+ gradientOrPattern?: undefined;
564
+ filter?: undefined;
565
+ } | {
566
+ gradientOrPattern: {
567
+ id: string;
568
+ defsElement: solid_js.JSX.Element;
569
+ };
570
+ filter: {
571
+ id: string;
572
+ defsElement: solid_js.JSX.Element;
573
+ } | undefined;
574
+ color?: undefined;
575
+ })[];
576
+ };
577
+ readonly sweepDiagonal_1: {
578
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
579
+ color: string;
580
+ gradientOrPattern?: undefined;
581
+ filter?: undefined;
582
+ } | {
583
+ gradientOrPattern: {
584
+ id: string;
585
+ defsElement: solid_js.JSX.Element;
586
+ };
587
+ filter: {
588
+ id: string;
589
+ defsElement: solid_js.JSX.Element;
590
+ } | undefined;
591
+ color?: undefined;
592
+ })[];
593
+ };
594
+ readonly sweepDiagonal_1v1: {
595
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
596
+ color: string;
597
+ gradientOrPattern?: undefined;
598
+ filter?: undefined;
599
+ } | {
600
+ gradientOrPattern: {
601
+ id: string;
602
+ defsElement: solid_js.JSX.Element;
603
+ };
604
+ filter: {
605
+ id: string;
606
+ defsElement: solid_js.JSX.Element;
607
+ } | undefined;
608
+ color?: undefined;
609
+ })[];
610
+ };
611
+ readonly sweepDiagonalDesync_4x: {
612
+ readonly getSVGDefs: (id: string, __: (() => InteractionFlags) | undefined, defs: ElementDefs) => ({
613
+ color: string;
614
+ gradientOrPattern?: undefined;
615
+ filter?: undefined;
616
+ } | {
617
+ gradientOrPattern: {
618
+ id: string;
619
+ defsElement: solid_js.JSX.Element;
620
+ };
621
+ filter: {
622
+ id: string;
623
+ defsElement: solid_js.JSX.Element;
624
+ } | undefined;
625
+ color?: undefined;
626
+ })[];
627
+ };
628
+ };
629
+ export { };
630
+ }
631
+ }
632
+
633
+ declare namespace SVGAnimationUtils {
634
+ namespace Linear {
635
+ const grow: (vName: "x" | "y", v1: number, v2: number, sArr: number[], defs: SVGAnimationDefs) => solid_js.JSX.Element;
636
+ const sweepOrthogonal: (vName: "x" | "y", v1: number, v2: number, oArr: number[], defs: SVGAnimationDefs) => solid_js.JSX.Element;
637
+ const sweepDiagonal: (x1: number, y1: number, x2: number, y2: number, angle: number, oArr: number[], defs: SVGAnimationDefs) => solid_js.JSX.Element;
638
+ const rotate: (aArray: number[], defs: SVGAnimationDefs) => solid_js.JSX.Element;
639
+ }
640
+ namespace Radial {
641
+ const grow: (rArr: number[], defs: SVGAnimationDefs) => solid_js.JSX.Element;
642
+ const sweepOrthogonal: (vName: "cx" | "cy", vArr: number[], defs: SVGAnimationDefs) => solid_js.JSX.Element;
643
+ const sweepDiagonal: (cx: number, cy: number, angle: number, oArr: number[], defs: SVGAnimationDefs) => solid_js.JSX.Element;
644
+ }
645
+ namespace Path {
646
+ const getRotatingArc: (aArray: [rotation: number, arcSize: number][], defs: SVGAnimationDefs) => solid_js.JSX.Element;
647
+ const getRotatingWedges: (wedgeCount: number, wedgeThickness: number, curvature: number, aArray: number[], defs: SVGAnimationDefs) => solid_js.JSX.Element;
648
+ }
649
+ }
650
+
651
+ type SVGBaseFilterDefs = {};
652
+ type SVGDropShadowFilterDefs = SVGBaseFilterDefs & {
653
+ dx: number;
654
+ dy: number;
655
+ stdDeviation: number;
656
+ floodColor: string;
657
+ floodOpacity: number;
658
+ };
659
+ type SVGGaussianBlurFilterDefs = SVGBaseFilterDefs & {
660
+ stdDeviation: number;
661
+ };
662
+ type SVGSaturationFilterDefs = SVGBaseFilterDefs & {
663
+ amount: number;
664
+ };
665
+ type SVGHueRotationFilterDefs = SVGBaseFilterDefs & {
666
+ deg: number;
667
+ };
668
+ type SVGBrightnessFilterDefs = SVGBaseFilterDefs & {
669
+ amount: number;
670
+ };
671
+ type SVGContrastFilterDefs = SVGBaseFilterDefs & {
672
+ amount: number;
673
+ };
674
+ type SVGInversionFilterDefs = SVGBaseFilterDefs & {
675
+ amount: number;
676
+ };
677
+ type SVGColorFilterDefs = SVGBaseFilterDefs & {
678
+ r: number;
679
+ g: number;
680
+ b: number;
681
+ };
682
+
683
+ type SVGPrimitiveDefs = {
684
+ method?: "chain" | "isolate";
685
+ };
686
+ declare class SVGFilterDefsFactory {
687
+ private readonly filterId;
688
+ private filterPrimitives;
689
+ private dropShadowCount;
690
+ private gaussianBlurCount;
691
+ private hueRotationCount;
692
+ private saturationCount;
693
+ private brightnessCount;
694
+ private contrastCount;
695
+ private inversionCount;
696
+ private colorCount;
697
+ private maxOffset;
698
+ constructor(filterId: string);
699
+ getFilterPrimitives: (defs?: SVGPrimitiveDefs & {
700
+ elementSize?: Size2d;
701
+ }) => JSX.Element;
702
+ addDropShadowFilter: (defs: SVGDropShadowFilterDefs, custom?: JSX.Element) => this;
703
+ addGaussianBlurFilter: (defs: SVGGaussianBlurFilterDefs, custom?: JSX.Element) => this;
704
+ addHueRotationFilter: (defs: SVGHueRotationFilterDefs, custom?: JSX.Element) => this;
705
+ addSaturationFilter: (defs: SVGSaturationFilterDefs, custom?: JSX.Element) => this;
706
+ addBrightnessFilter: (defs: SVGBrightnessFilterDefs, custom?: JSX.Element) => this;
707
+ addContrastFilter: (defs: SVGContrastFilterDefs, custom?: JSX.Element) => this;
708
+ addInversionFilter: (defs: SVGInversionFilterDefs, custom?: JSX.Element) => this;
709
+ addColorChannelFilter: (defs: SVGColorFilterDefs, custom?: JSX.Element) => this;
710
+ }
711
+
712
+ type SVGBaseGradientDefs = {
713
+ id: string;
714
+ };
715
+ type SVGGradientDefs = SVGBaseGradientDefs & {
716
+ colors: {
717
+ value: string;
718
+ stop?: number;
719
+ }[];
720
+ spreadKind?: "smooth" | "banded";
721
+ spreadMethod?: "pad" | "reflect" | "repeat";
722
+ };
723
+ type SVGLinearGradientDefs = SVGGradientDefs & {
724
+ angle?: number;
725
+ scale?: Size2d;
726
+ offset?: Point2d;
727
+ };
728
+ type SVGRadialGradientDefs = SVGGradientDefs & {
729
+ origin?: Point2d;
730
+ scale?: number;
731
+ };
732
+
733
+ declare namespace SVGGradientDefsUtils {
734
+ const getLinearGradient: (defs: SVGLinearGradientDefs, custom?: JSX.Element | ((x1: number, y1: number, x2: number, y2: number) => JSX.Element)) => JSX.Element;
735
+ const getRadialGradient: (defs: SVGRadialGradientDefs, custom?: JSX.Element | ((cx: number, cy: number, r: number) => JSX.Element)) => JSX.Element;
736
+ }
737
+
738
+ declare namespace SVGPatternDefsUtils {
739
+ const getPattern: (id: string, cellCount: {
740
+ rows: number;
741
+ cols: number;
742
+ }, patternSize: Size2d, getCellPos: (index: {
743
+ row: number;
744
+ col: number;
745
+ }) => Point2d, renderCell: (id: string, index: {
746
+ row: number;
747
+ col: number;
748
+ }, cellCount: {
749
+ rows: number;
750
+ cols: number;
751
+ }) => JSX.Element) => JSX.Element;
752
+ /**
753
+ * - rows advance at 1H
754
+ * - cols advance at 1W
755
+ */
756
+ const getGridPattern: (id: string, cellCountIn: {
757
+ rows: number;
758
+ cols: number;
759
+ }, cellSize: Size2d, renderCell: (id: string, index: {
760
+ row: number;
761
+ col: number;
762
+ }, cellCount: {
763
+ rows: number;
764
+ cols: number;
765
+ }, isSplit: boolean) => JSX.Element) => JSX.Element;
766
+ /**
767
+ * - rows advance at 0.5H
768
+ * - cols advance at 1W
769
+ * - rows have a -0.5H offset
770
+ * - even rows have a -0.5W offset
771
+ */
772
+ const getDiagonalPattern: (id: string, cellCountIn: {
773
+ rows: number;
774
+ cols: number;
775
+ }, cellSize: Size2d, renderCell: (id: string, index: {
776
+ row: number;
777
+ col: number;
778
+ }, cellCount: {
779
+ rows: number;
780
+ cols: number;
781
+ }, isSplit: boolean) => JSX.Element) => JSX.Element;
782
+ /**
783
+ * - rows advance at 1H
784
+ * - cols advance at 1W
785
+ * - even rows have a -0.5W offset
786
+ */
787
+ const getHalfShiftPattern: (id: string, cellCountIn: {
788
+ rows: number;
789
+ cols: number;
790
+ }, cellSize: Size2d, renderCell: (id: string, index: {
791
+ row: number;
792
+ col: number;
793
+ }, cellCount: {
794
+ rows: number;
795
+ cols: number;
796
+ }, isSplit: boolean) => JSX.Element) => JSX.Element;
797
+ /**
798
+ * - rows advance at 1H
799
+ * - cols advance at 1W
800
+ * - even cols have a -0.5H offset
801
+ */
802
+ const getHalfDropPattern: (id: string, cellCountIn: {
803
+ rows: number;
804
+ cols: number;
805
+ }, cellSize: Size2d, renderCell: (id: string, index: {
806
+ row: number;
807
+ col: number;
808
+ }, cellCount: {
809
+ rows: number;
810
+ cols: number;
811
+ }, isSplit: boolean) => JSX.Element) => JSX.Element;
812
+ /**
813
+ * - rows advance at 1H
814
+ * - cols advance at 0.5W
815
+ */
816
+ const getTrianglePattern: (id: string, cellCountIn: {
817
+ rows: number;
818
+ cols: number;
819
+ }, cellSize: Size2d, renderCell: (id: string, index: {
820
+ row: number;
821
+ col: number;
822
+ }, cellCount: {
823
+ rows: number;
824
+ cols: number;
825
+ }, isSplit: boolean) => JSX.Element) => JSX.Element;
826
+ /**
827
+ * - rows advance at 0.75H
828
+ * - cols advance at 1W
829
+ * - rows have a -0.75H offset
830
+ * - even rows have a -0.5W offset
831
+ */
832
+ const getHexPointyTopPattern: (id: string, cellCountIn: {
833
+ rows: number;
834
+ cols: number;
835
+ }, cellSize: Size2d, renderCell: (id: string, index: {
836
+ row: number;
837
+ col: number;
838
+ }, cellCount: {
839
+ rows: number;
840
+ cols: number;
841
+ }, isSplit: boolean) => JSX.Element) => JSX.Element;
842
+ /**
843
+ * - rows advance at 1H
844
+ * - cols advance at 0.75W
845
+ * - cols have a -0.75W offset
846
+ * - even cols have a -0.5H offset
847
+ */
848
+ const getHexFlatTopPattern: (id: string, cellCountIn: {
849
+ rows: number;
850
+ cols: number;
851
+ }, cellSize: Size2d, renderCell: (id: string, index: {
852
+ row: number;
853
+ col: number;
854
+ }, cellCount: {
855
+ rows: number;
856
+ cols: number;
857
+ }, isSplit: boolean) => JSX.Element) => JSX.Element;
858
+ }
859
+
860
+ type AudioSwitcherController = {
861
+ play: () => boolean;
862
+ pause: () => boolean;
863
+ reset: () => boolean;
864
+ };
865
+ type AudioSwitcherProps = AccessorProps<{
866
+ src: string;
867
+ crossfadeMs?: number;
868
+ volume?: number;
869
+ getController?: (controller: AudioSwitcherController) => void;
870
+ }>;
871
+
872
+ declare const AudioSwitcher: (props: AudioSwitcherProps) => null;
873
+
874
+ type TooltipHPlacement = "left-in" | "left-out" | "right-in" | "right-out" | "center";
875
+ type TooltipVPlacement = "top-in" | "top-out" | "bottom-in" | "bottom-out" | "center";
876
+ type TooltipPlacement = {
877
+ x: TooltipHPlacement;
878
+ y: TooltipVPlacement;
879
+ };
880
+ type TooltipProps = AccessorProps<{
881
+ placement: TooltipPlacement;
882
+ offset?: Point2d;
883
+ reservedScreenSize?: Size2d;
884
+ transitionDurationMs?: number;
885
+ focusShowDelayMs?: number;
886
+ getAnchorRef: () => HTMLElement | undefined;
887
+ renderContent: (getVisibilityTarget: () => 0 | 1, getTransitionDurationMs: () => number, getPlacement: () => TooltipPlacement) => JSX.Element;
888
+ getZindex?: (getPlacement: () => TooltipPlacement) => number;
889
+ }>;
890
+
891
+ type ButtonSizing = "fit-content" | "fill";
892
+ type ButtonOutlineDefs = {
893
+ color: string;
894
+ width: number;
895
+ };
896
+ type ButtonCbs = {
897
+ onClick?: (e: MouseEvent | KeyboardEvent) => Promise<void>;
898
+ onMouseEnter?: (e: MouseEvent) => Promise<void>;
899
+ onMouseLeave?: (e: MouseEvent) => Promise<void>;
900
+ };
901
+ type ButtonProps = AccessorProps<ButtonCbs & ExternalInteractionFlags & {
902
+ id?: string;
903
+ sizing?: ButtonSizing;
904
+ tooltipDefs?: Omit<TooltipProps, "getAnchorRef">;
905
+ renderHighlight?: () => JSX.Element;
906
+ }>;
907
+
908
+ declare const Button: (props: ParentProps<ButtonProps>) => solid_js.JSX.Element;
909
+
910
+ type ColorExtractorContextType = {
911
+ getSrc: Accessor<string>;
912
+ getColorCount?: Accessor<number>;
913
+ getSamplePercentile?: Accessor<number>;
914
+ };
915
+
916
+ declare const ColorExtractorContextProvider: solid_js.ContextProviderComponent<ColorExtractorContextType | undefined>;
917
+ declare const useColorExtractor: (props?: ColorExtractorContextType) => {
918
+ getColorData: solid_js.Accessor<Color[]>;
919
+ };
920
+ declare const useColorExtractorContext: () => {
921
+ getColorData: solid_js.Accessor<Color[]>;
922
+ };
923
+
924
+ type CornerKey = "topLeft" | "topRight" | "bottomLeft" | "bottomRight";
925
+ type CornersProps = AccessorProps<{
926
+ color?: string;
927
+ cornerLength?: Size2d;
928
+ strokeThickness?: number;
929
+ transitionDurationMs?: number;
930
+ visibleCorners?: Partial<Record<CornerKey, boolean>>;
931
+ }>;
932
+
933
+ declare const Corners: (props: ParentProps<CornersProps>) => solid_js.JSX.Element;
934
+
935
+ type ElementHighlightProps = AccessorProps<{
936
+ isVisible: boolean;
937
+ padding?: number;
938
+ transitionDurationMs?: number;
939
+ getElementRef: () => HTMLElement | undefined;
940
+ onShow?: () => void;
941
+ onHide?: () => void;
942
+ renderHighlight?: (getVisibilityTarget: () => 0 | 1, getTransitionDurationMs: () => number) => JSX.Element;
943
+ renderOverlay: (getVisibilityTarget: () => 0 | 1, getTransitionDurationMs: () => number) => JSX.Element;
944
+ }>;
945
+
946
+ declare const ElementHighlight: (props: ElementHighlightProps) => solid_js.JSX.Element;
947
+
948
+ declare namespace ElementHighlightUtils {
949
+ const getSegmentRects: (rect: Rect) => {
950
+ topLeft: {
951
+ top: string;
952
+ left: string;
953
+ width: string;
954
+ height: string;
955
+ };
956
+ topCenter: {
957
+ top: string;
958
+ left: string;
959
+ width: string;
960
+ height: string;
961
+ };
962
+ topRight: {
963
+ top: string;
964
+ left: string;
965
+ width: string;
966
+ height: string;
967
+ };
968
+ centerLeft: {
969
+ top: string;
970
+ left: string;
971
+ width: string;
972
+ height: string;
973
+ };
974
+ centerRight: {
975
+ top: string;
976
+ left: string;
977
+ width: string;
978
+ height: string;
979
+ };
980
+ bottomLeft: {
981
+ top: string;
982
+ left: string;
983
+ width: string;
984
+ height: string;
985
+ };
986
+ bottomCenter: {
987
+ top: string;
988
+ left: string;
989
+ width: string;
990
+ height: string;
991
+ };
992
+ bottomRight: {
993
+ top: string;
994
+ left: string;
995
+ width: string;
996
+ height: string;
997
+ };
998
+ };
999
+ }
1000
+
1001
+ type ImageSwitcherProps = AccessorProps<{
1002
+ src: string | undefined;
1003
+ transitionDurationMs?: number;
1004
+ onLoad?: GlobalEventHandlers["onload"];
1005
+ }>;
1006
+
1007
+ declare const ImageSwitcher: (props: ImageSwitcherProps) => solid_js.JSX.Element;
1008
+
1009
+ type ModalProps = AccessorProps<{
1010
+ isVisible: boolean;
1011
+ transitionDurationMs?: number;
1012
+ margins?: CSSMargin;
1013
+ onShow?: () => void;
1014
+ onHide?: () => void;
1015
+ onTransitionStatusChange?: (hasTransitionFinished: boolean) => void;
1016
+ renderOverlay: (getVisibilityTarget: () => 0 | 1, getTransitionDurationMs: () => number) => JSX.Element;
1017
+ renderContent: (getVisibilityTarget: () => 0 | 1, getTransitionDurationMs: () => number) => JSX.Element;
1018
+ }>;
1019
+
1020
+ declare const Modal: (props: ModalProps) => solid_js.JSX.Element;
1021
+
1022
+ type RichTextProps = AccessorProps<{
1023
+ content: string;
1024
+ removeOtherTags?: boolean;
1025
+ getClassNames?: (defaultClasses: Record<string, string>) => Record<string, string>;
1026
+ }>;
1027
+ type RichTextNode = {
1028
+ type: "text";
1029
+ content: string;
1030
+ } | {
1031
+ type: "tag";
1032
+ tag: string;
1033
+ children: RichTextNode[];
1034
+ };
1035
+
1036
+ declare const RichText: (props: RichTextProps) => JSX.Element;
1037
+
1038
+ declare namespace RichTextUtils {
1039
+ const parseContent: (input: string) => RichTextNode[];
1040
+ }
1041
+
1042
+ type ScanlineAnimationEvaluationResult = Partial<Record<CSSAnimationKey, number>>;
1043
+ type ScanlineAnimationController = {
1044
+ start: () => void;
1045
+ stop: () => void;
1046
+ };
1047
+ type ScanlineAnimationProps = AccessorProps<{
1048
+ src: string;
1049
+ sizeAnchor?: "width" | "height";
1050
+ lineCount: number;
1051
+ animationDurationMs?: number;
1052
+ animationIterationCount?: number;
1053
+ animationIterationDelayMs?: number;
1054
+ getController?: (controller: ScanlineAnimationController) => void;
1055
+ evaluateRootAnimation?: (getTimeline: () => number) => ScanlineAnimationEvaluationResult;
1056
+ evaluateScanlineAnimation: (getIndex: () => number, getLineCount: () => number, getTimeline: () => number) => ScanlineAnimationEvaluationResult;
1057
+ onAnimationEnd?: () => void;
1058
+ }>;
1059
+
1060
+ declare const ScanlineAnimation: (props: ScanlineAnimationProps) => solid_js.JSX.Element;
1061
+
1062
+ declare namespace ScanlineAnimationBreakpoints {
1063
+ const DIRECTIONS: readonly ["asc", "desc"];
1064
+ type Direction = (typeof DIRECTIONS)[number];
1065
+ const ORDER_TYPES: readonly ["linear", "converge", "evenOdd", "interleaved", "reverseBinary"];
1066
+ type OrderingType = (typeof ORDER_TYPES)[number];
1067
+ type OrderingDefs<T extends OrderingType> = Record<string, never>;
1068
+ type OrderingFn<T extends OrderingType> = (idx: number, lineCount: number, defs: OrderingDefs<T>) => number;
1069
+ type BreakpointOpts = {
1070
+ dir?: Direction;
1071
+ smoothness?: number;
1072
+ };
1073
+ type BreakpointTupleTriple = [start: number, middle: number, end: number];
1074
+ const getBreakpoints: <T extends OrderingType>(type: T, idx: number, lineCount: number, defs: OrderingDefs<T>, opts?: BreakpointOpts) => BreakpointTupleTriple;
1075
+ }
1076
+ declare namespace ScanlineAnimationKeyframes {
1077
+ type HorizontalSnakeOpts = {
1078
+ shiftPercent?: number;
1079
+ };
1080
+ const evaluateHorizontalSnake: ([b0, b1, b2]: ScanlineAnimationBreakpoints.BreakpointTupleTriple, idx: number, t: number, opts?: HorizontalSnakeOpts) => ScanlineAnimationEvaluationResult;
1081
+ type HorizontalSplitOpts = {
1082
+ shiftPercent?: number;
1083
+ };
1084
+ const evaluateHorizontalSplit: ([b0, b1, b2]: ScanlineAnimationBreakpoints.BreakpointTupleTriple, idx: number, t: number, opts?: HorizontalSplitOpts) => ScanlineAnimationEvaluationResult;
1085
+ type HorizontalStretchOpts = {
1086
+ peakScalePercent?: number;
1087
+ };
1088
+ const evaluateHorizontalStretch: ([b0, b1, b2]: ScanlineAnimationBreakpoints.BreakpointTupleTriple, idx: number, t: number, opts?: HorizontalStretchOpts) => ScanlineAnimationEvaluationResult;
1089
+ type HorizontalHueOpts = {};
1090
+ const evaluateHorizontalHue: ([b0, b1, b2]: ScanlineAnimationBreakpoints.BreakpointTupleTriple, idx: number, t: number, opts?: HorizontalHueOpts) => ScanlineAnimationEvaluationResult;
1091
+ type HorizontalBrightnessOpts = {};
1092
+ const evaluateHorizontalBrightness: ([b0, b1, b2]: ScanlineAnimationBreakpoints.BreakpointTupleTriple, idx: number, t: number, opts?: HorizontalBrightnessOpts) => ScanlineAnimationEvaluationResult;
1093
+ type HorizontalGrayscaleOpts = {};
1094
+ const evaluateHorizontalGrayscale: ([b0, b1, b2]: ScanlineAnimationBreakpoints.BreakpointTupleTriple, idx: number, t: number, opts?: HorizontalGrayscaleOpts) => ScanlineAnimationEvaluationResult;
1095
+ }
1096
+ declare namespace ScanlineAnimationUtils {
1097
+ const assignAnimationProps: (el: HTMLElement, evalResult: Partial<Record<CSSAnimationKey, number>>) => void;
1098
+ }
1099
+
1100
+ type AnimDirection = "in" | "out";
1101
+
1102
+ type ScreenWiperShape = "lozenge" | "circle";
1103
+ type ScreenWiperProps = AccessorProps<{
1104
+ initialWipeDirection: AnimDirection;
1105
+ wipeDirection: AnimDirection;
1106
+ shape?: ScreenWiperShape;
1107
+ cellSize?: Size2d;
1108
+ transitionDurationMs?: number;
1109
+ onTransitionEnd?: (dir: AnimDirection) => void;
1110
+ }>;
1111
+
1112
+ declare const ScreenWiper: (props: ScreenWiperProps) => solid_js.JSX.Element;
1113
+
1114
+ type ShapeProps = AccessorProps<{
1115
+ joinRadii?: number[];
1116
+ lameExponents?: number[];
1117
+ getPoints: (getSize: () => Size2d) => Point2d[];
1118
+ getStrokeDefs?: (getSize: () => Size2d) => (SVGDefs & {
1119
+ thicknesses: number[];
1120
+ offset?: number;
1121
+ })[];
1122
+ getFillDefs?: (getSize: () => Size2d) => SVGDefs[];
1123
+ renderChildren: (getSize: () => Size2d, getClipPath: () => string, getClipPoints: () => Point2d[]) => JSX.Element;
1124
+ }>;
1125
+
1126
+ declare const Shape: (props: ShapeProps) => solid_js.JSX.Element;
1127
+
1128
+ type TabProps = AccessorProps<{
1129
+ dir?: "column" | "row";
1130
+ selectedIndex: number | undefined;
1131
+ tabCount: number;
1132
+ tabGap?: number;
1133
+ hrefs?: string[];
1134
+ transitionDurationMs?: number;
1135
+ getIsDisabled?: (getIndex: () => number) => boolean;
1136
+ renderGutter?: () => JSX.Element;
1137
+ renderFloater?: () => JSX.Element;
1138
+ renderTab: (getIndex: () => number) => JSX.Element;
1139
+ onSelectionChange?: (newIndex: number) => void;
1140
+ }>;
1141
+
1142
+ declare const Tabs: (props: TabProps) => JSX.Element;
1143
+
1144
+ declare const Tooltip: (props: TooltipProps) => solid_js.JSX.Element;
1145
+
1146
+ declare namespace TooltipUtils {
1147
+ const getHPlacementShift: (hPlacement: TooltipHPlacement, anchorRect: Rect, contentSize: Size2d) => number;
1148
+ const getVPlacementShift: (vPlacement: TooltipVPlacement, anchorRect: Rect, contentSize: Size2d) => number;
1149
+ const getHPlacementOffset: (hPlacement: TooltipHPlacement, offsetX: number) => number;
1150
+ const getVPlacementOffset: (vPlacement: TooltipVPlacement, offsetY: number) => number;
1151
+ const getSafeHPlacement: (hPlacement: TooltipHPlacement, anchorRect: Rect, contentSize: Size2d, screenSize: Size2d, offsetSize?: Point2d, reservedScreenSize?: Size2d) => TooltipHPlacement;
1152
+ const getSafeVPlacement: (vPlacement: TooltipVPlacement, anchorRect: Rect, contentSize: Size2d, screenSize: Size2d, offsetSize?: Point2d, reservedScreenSize?: Size2d) => TooltipVPlacement;
1153
+ }
1154
+
1155
+ type TypewriterUpdateCause = "content" | "layout" | "other";
1156
+ type TypewriterController = {
1157
+ restartAnimation: () => boolean;
1158
+ update: (cause: TypewriterUpdateCause) => void;
1159
+ };
1160
+ type TypewriterProps = AccessorProps<{
1161
+ animationName?: string;
1162
+ animationDurationMs?: number;
1163
+ animationDelayMs?: number;
1164
+ initialAnimationDelayMs?: number;
1165
+ resetAnimationOnLayout?: boolean;
1166
+ resetAnimationOnContent?: boolean;
1167
+ getController?: (controller: TypewriterController) => void;
1168
+ onAnimationEnd?: () => void;
1169
+ }>;
1170
+
1171
+ declare const Typewriter: (props: ParentProps<TypewriterProps>) => solid_js.JSX.Element;
1172
+
1173
+ type ViewportContextType = {
1174
+ getPortalRef: Accessor<HTMLElement | undefined>;
1175
+ getSize: Accessor<Size2d>;
1176
+ getScale: Accessor<number>;
1177
+ getScaledRect: Accessor<DOMRect>;
1178
+ };
1179
+
1180
+ declare const ViewportContextProvider: solid_js.ContextProviderComponent<ViewportContextType | undefined>;
1181
+ declare const useViewportContext: () => {
1182
+ getPortalRef: solid_js.Accessor<HTMLElement | undefined>;
1183
+ getSize: solid_js.Accessor<_thewaver_ss_utils.Size2d>;
1184
+ getScale: solid_js.Accessor<number>;
1185
+ getScaledRect: solid_js.Accessor<DOMRect>;
1186
+ };
1187
+
1188
+ type ViewportProps = AccessorProps<{
1189
+ size: Size2d;
1190
+ }>;
1191
+
1192
+ declare const Viewport: (props: ParentProps<ViewportProps>) => solid_js.JSX.Element;
1193
+
1194
+ export { type AccessorProps, AudioSwitcher, type AudioSwitcherController, type AudioSwitcherProps, AudioUtils, Button, type ButtonCbs, type ButtonOutlineDefs, type ButtonProps, type ButtonSizing, ColorExtractorContextProvider, type ColorExtractorContextType, type CornerKey, Corners, type CornersProps, ElementFader, ElementHighlight, type ElementHighlightProps, ElementHighlightUtils, ElementObserver, type ExternalInteractionFlags, FPSUtils, FocusUtils, ImageSwitcher, type ImageSwitcherProps, type InteractionFlags, InteractionUtils, type InternalInteractionFlags, Modal, type ModalProps, RichText, type RichTextNode, type RichTextProps, RichTextUtils, type SVGAnimationDefs, SVGAnimationUtils, type SVGBrightnessFilterDefs, type SVGColorFilterDefs, type SVGContrastFilterDefs, type SVGDefs, SVGDefsSamples, type SVGDropShadowFilterDefs, SVGFilterDefsFactory, type SVGGaussianBlurFilterDefs, SVGGradientDefsUtils, type SVGHueRotationFilterDefs, type SVGInversionFilterDefs, type SVGLinearGradientDefs, SVGPatternDefsUtils, type SVGRadialGradientDefs, type SVGSaturationFilterDefs, ScanlineAnimation, ScanlineAnimationBreakpoints, type ScanlineAnimationController, type ScanlineAnimationEvaluationResult, ScanlineAnimationKeyframes, type ScanlineAnimationProps, ScanlineAnimationUtils, ScreenWiper, type ScreenWiperProps, type ScreenWiperShape, Shape, type ShapeProps, type TabProps, Tabs, Tooltip, type TooltipHPlacement, type TooltipPlacement, type TooltipProps, TooltipUtils, type TooltipVPlacement, Typewriter, type TypewriterController, type TypewriterProps, type TypewriterUpdateCause, Viewport, ViewportContextProvider, type ViewportContextType, type ViewportProps, useColorExtractor, useColorExtractorContext, useViewportContext };