@skvggor/pharos 1.0.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.
package/dist/pharos.js ADDED
@@ -0,0 +1,1778 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ //#region src/engine/metrics.ts
3
+ var t = {
4
+ "#": "on",
5
+ ".": "off",
6
+ 7: "tl",
7
+ 9: "tr",
8
+ 1: "bl",
9
+ 3: "br"
10
+ }, n = {
11
+ width: 12,
12
+ height: 18,
13
+ accentTop: 0,
14
+ capTop: 3,
15
+ xHeight: 6,
16
+ baseline: 13,
17
+ descenderBottom: 17
18
+ };
19
+ function r(e) {
20
+ return e !== "off";
21
+ }
22
+ //#endregion
23
+ //#region src/engine/parse-glyph.ts
24
+ function i(e) {
25
+ if (e.length !== n.height) throw Error(`Glyph must have ${n.height} rows, received ${e.length}.`);
26
+ return e.map((e, r) => {
27
+ if (e.length !== n.width) throw Error(`Glyph row ${r} must have ${n.width} columns, received ${e.length}.`);
28
+ return Array.from(e, (e, n) => {
29
+ let i = t[e];
30
+ if (!i) throw Error(`Unknown glyph marker "${e}" at row ${r}, column ${n}.`);
31
+ return i;
32
+ });
33
+ });
34
+ }
35
+ function a() {
36
+ return Array.from({ length: n.height }, () => Array.from({ length: n.width }, () => "off"));
37
+ }
38
+ //#endregion
39
+ //#region src/glyphs/registry.ts
40
+ var o = {
41
+ " ": [
42
+ "............",
43
+ "............",
44
+ "............",
45
+ "............",
46
+ "............",
47
+ "............",
48
+ "............",
49
+ "............",
50
+ "............",
51
+ "............",
52
+ "............",
53
+ "............",
54
+ "............",
55
+ "............",
56
+ "............",
57
+ "............",
58
+ "............",
59
+ "............"
60
+ ],
61
+ A: [
62
+ "............",
63
+ "............",
64
+ "............",
65
+ ".....97.....",
66
+ ".....##.....",
67
+ "....####....",
68
+ "....#..#....",
69
+ "...##..##...",
70
+ "...##..##...",
71
+ "..########..",
72
+ "..##....##..",
73
+ ".##......##.",
74
+ ".##......##.",
75
+ "####....####",
76
+ "............",
77
+ "............",
78
+ "............",
79
+ "............"
80
+ ],
81
+ E: [
82
+ "............",
83
+ "............",
84
+ "............",
85
+ "..########..",
86
+ "..##........",
87
+ "..##........",
88
+ "..##........",
89
+ "..##........",
90
+ "..#######...",
91
+ "..##........",
92
+ "..##........",
93
+ "..##........",
94
+ "..##........",
95
+ "..########..",
96
+ "............",
97
+ "............",
98
+ "............",
99
+ "............"
100
+ ],
101
+ H: [
102
+ "............",
103
+ "............",
104
+ "............",
105
+ ".####..####.",
106
+ "..##....##..",
107
+ "..##....##..",
108
+ "..##....##..",
109
+ "..##....##..",
110
+ "..########..",
111
+ "..##....##..",
112
+ "..##....##..",
113
+ "..##....##..",
114
+ "..##....##..",
115
+ ".####..####.",
116
+ "............",
117
+ "............",
118
+ "............",
119
+ "............"
120
+ ],
121
+ I: [
122
+ "............",
123
+ "............",
124
+ "............",
125
+ "...######...",
126
+ ".....##.....",
127
+ ".....##.....",
128
+ ".....##.....",
129
+ ".....##.....",
130
+ ".....##.....",
131
+ ".....##.....",
132
+ ".....##.....",
133
+ ".....##.....",
134
+ ".....##.....",
135
+ "...######...",
136
+ "............",
137
+ "............",
138
+ "............",
139
+ "............"
140
+ ],
141
+ L: [
142
+ "............",
143
+ "............",
144
+ "............",
145
+ ".####.......",
146
+ "..##........",
147
+ "..##........",
148
+ "..##........",
149
+ "..##........",
150
+ "..##........",
151
+ "..##........",
152
+ "..##........",
153
+ "..##........",
154
+ "..##........",
155
+ "..########..",
156
+ "............",
157
+ "............",
158
+ "............",
159
+ "............"
160
+ ],
161
+ O: [
162
+ "............",
163
+ "............",
164
+ "............",
165
+ "...######...",
166
+ ".3#......#1.",
167
+ ".#........#.",
168
+ "##........##",
169
+ "##........##",
170
+ "##........##",
171
+ "##........##",
172
+ "##........##",
173
+ ".#........#.",
174
+ ".9#......#7.",
175
+ "...######...",
176
+ "............",
177
+ "............",
178
+ "............",
179
+ "............"
180
+ ],
181
+ T: [
182
+ "............",
183
+ "............",
184
+ "............",
185
+ "############",
186
+ ".....##.....",
187
+ ".....##.....",
188
+ ".....##.....",
189
+ ".....##.....",
190
+ ".....##.....",
191
+ ".....##.....",
192
+ ".....##.....",
193
+ ".....##.....",
194
+ ".....##.....",
195
+ "....####....",
196
+ "............",
197
+ "............",
198
+ "............",
199
+ "............"
200
+ ],
201
+ l: [
202
+ "............",
203
+ "............",
204
+ "............",
205
+ "....####....",
206
+ ".....##.....",
207
+ ".....##.....",
208
+ ".....##.....",
209
+ ".....##.....",
210
+ ".....##.....",
211
+ ".....##.....",
212
+ ".....##.....",
213
+ ".....##.....",
214
+ ".....##.....",
215
+ "...######...",
216
+ "............",
217
+ "............",
218
+ "............",
219
+ "............"
220
+ ],
221
+ o: [
222
+ "............",
223
+ "............",
224
+ "............",
225
+ "............",
226
+ "............",
227
+ "............",
228
+ "....####....",
229
+ "...##..##...",
230
+ "..##....##..",
231
+ "..##....##..",
232
+ "..##....##..",
233
+ "..##....##..",
234
+ "...##..##...",
235
+ "....####....",
236
+ "............",
237
+ "............",
238
+ "............",
239
+ "............"
240
+ ],
241
+ p: [
242
+ "............",
243
+ "............",
244
+ "............",
245
+ "............",
246
+ "............",
247
+ "............",
248
+ "..######....",
249
+ "..##..##....",
250
+ "..##...##...",
251
+ "..##...##...",
252
+ "..##...##...",
253
+ "..##..##....",
254
+ "..######....",
255
+ "..##........",
256
+ "..##........",
257
+ "..##........",
258
+ "..##........",
259
+ ".####......."
260
+ ],
261
+ M: [
262
+ "............",
263
+ "............",
264
+ "............",
265
+ ".##......##.",
266
+ ".###....###.",
267
+ ".####..####.",
268
+ ".##.####.##.",
269
+ ".##.####.##.",
270
+ ".##..##..##.",
271
+ ".##......##.",
272
+ ".##......##.",
273
+ ".##......##.",
274
+ ".##......##.",
275
+ "####....####",
276
+ "............",
277
+ "............",
278
+ "............",
279
+ "............"
280
+ ],
281
+ a: [
282
+ "............",
283
+ "............",
284
+ "............",
285
+ "............",
286
+ "............",
287
+ "............",
288
+ "...######...",
289
+ "..##....##..",
290
+ "........##..",
291
+ "...#######..",
292
+ "..##....##..",
293
+ ".##.....##..",
294
+ "..##....##..",
295
+ "..########..",
296
+ "............",
297
+ "............",
298
+ "............",
299
+ "............"
300
+ ],
301
+ á: [
302
+ "............",
303
+ ".......##...",
304
+ "......##....",
305
+ "............",
306
+ "............",
307
+ "............",
308
+ "...######...",
309
+ "..##....##..",
310
+ "........##..",
311
+ "...#######..",
312
+ "..##....##..",
313
+ ".##.....##..",
314
+ "..##....##..",
315
+ "..########..",
316
+ "............",
317
+ "............",
318
+ "............",
319
+ "............"
320
+ ],
321
+ u: [
322
+ "............",
323
+ "............",
324
+ "............",
325
+ "............",
326
+ "............",
327
+ "............",
328
+ ".####.####..",
329
+ "..##...##...",
330
+ "..##...##...",
331
+ "..##...##...",
332
+ "..##...##...",
333
+ "..##...##...",
334
+ "..##...##...",
335
+ "..#######...",
336
+ "............",
337
+ "............",
338
+ "............",
339
+ "............"
340
+ ],
341
+ n: [
342
+ "............",
343
+ "............",
344
+ "............",
345
+ "............",
346
+ "............",
347
+ "............",
348
+ "..#####.....",
349
+ "..##..##....",
350
+ "..##...##...",
351
+ "..##...##...",
352
+ "..##...##...",
353
+ "..##...##...",
354
+ "..##...##...",
355
+ ".####.####..",
356
+ "............",
357
+ "............",
358
+ "............",
359
+ "............"
360
+ ],
361
+ d: [
362
+ "............",
363
+ "............",
364
+ "............",
365
+ ".......###..",
366
+ ".......###..",
367
+ ".......##...",
368
+ "...####.##..",
369
+ "..##..####..",
370
+ ".##....###..",
371
+ ".##.....##..",
372
+ ".##.....##..",
373
+ ".##....###..",
374
+ "..##..####..",
375
+ "...####.##..",
376
+ "............",
377
+ "............",
378
+ "............",
379
+ "............"
380
+ ],
381
+ r: [
382
+ "............",
383
+ "............",
384
+ "............",
385
+ "............",
386
+ "............",
387
+ "............",
388
+ "..######....",
389
+ "..###..##...",
390
+ "..##........",
391
+ "..##........",
392
+ "..##........",
393
+ "..##........",
394
+ "..##........",
395
+ ".#####......",
396
+ "............",
397
+ "............",
398
+ "............",
399
+ "............"
400
+ ],
401
+ s: [
402
+ "............",
403
+ "............",
404
+ "............",
405
+ "............",
406
+ "............",
407
+ "............",
408
+ "..#####.....",
409
+ ".##...##....",
410
+ ".##.........",
411
+ "..####......",
412
+ ".....###....",
413
+ ".......##...",
414
+ ".##...##....",
415
+ "..#####.....",
416
+ "............",
417
+ "............",
418
+ "............",
419
+ "............"
420
+ ],
421
+ v: [
422
+ "............",
423
+ "............",
424
+ "............",
425
+ "............",
426
+ "............",
427
+ "............",
428
+ ".##......##.",
429
+ ".##......##.",
430
+ "..##....##..",
431
+ "..##....##..",
432
+ "...##..##...",
433
+ "...##..##...",
434
+ "....####....",
435
+ ".....##.....",
436
+ "............",
437
+ "............",
438
+ "............",
439
+ "............"
440
+ ],
441
+ k: [
442
+ "............",
443
+ "............",
444
+ "............",
445
+ ".##.........",
446
+ ".##.........",
447
+ ".##.........",
448
+ ".##....##...",
449
+ ".##...##....",
450
+ ".##..##.....",
451
+ ".#####......",
452
+ ".##.##......",
453
+ ".##..##.....",
454
+ ".##...##....",
455
+ ".##....##...",
456
+ "............",
457
+ "............",
458
+ "............",
459
+ "............"
460
+ ],
461
+ g: [
462
+ "............",
463
+ "............",
464
+ "............",
465
+ "............",
466
+ "............",
467
+ "............",
468
+ "..######....",
469
+ ".##....##...",
470
+ ".##....##...",
471
+ ".##....##...",
472
+ ".##....##...",
473
+ ".##....##...",
474
+ "..#######...",
475
+ ".......##...",
476
+ ".......##...",
477
+ ".#.....##...",
478
+ ".##...##....",
479
+ "..#####....."
480
+ ],
481
+ 0: [
482
+ "............",
483
+ "............",
484
+ "............",
485
+ "...######...",
486
+ "..##....##..",
487
+ ".##......##.",
488
+ ".##......##.",
489
+ ".##......##.",
490
+ ".##......##.",
491
+ ".##......##.",
492
+ ".##......##.",
493
+ ".##......##.",
494
+ "..##....##..",
495
+ "...######...",
496
+ "............",
497
+ "............",
498
+ "............",
499
+ "............"
500
+ ],
501
+ 9: [
502
+ "............",
503
+ "............",
504
+ "............",
505
+ "...#####....",
506
+ "..##...##...",
507
+ ".##....##...",
508
+ ".##....##...",
509
+ "..##...##...",
510
+ "...######...",
511
+ ".......##...",
512
+ ".......##...",
513
+ ".......##...",
514
+ ".......##...",
515
+ ".......##...",
516
+ "............",
517
+ "............",
518
+ "............",
519
+ "............"
520
+ ],
521
+ 1: [
522
+ "............",
523
+ "............",
524
+ "............",
525
+ "...####.....",
526
+ ".....##.....",
527
+ ".....##.....",
528
+ ".....##.....",
529
+ ".....##.....",
530
+ ".....##.....",
531
+ ".....##.....",
532
+ ".....##.....",
533
+ ".....##.....",
534
+ ".....##.....",
535
+ "...######...",
536
+ "............",
537
+ "............",
538
+ "............",
539
+ "............"
540
+ ],
541
+ 2: [
542
+ "............",
543
+ "............",
544
+ "............",
545
+ "..######....",
546
+ ".##....##...",
547
+ ".......##...",
548
+ "......##....",
549
+ ".....##.....",
550
+ "....##......",
551
+ "...##.......",
552
+ "..##........",
553
+ "..##........",
554
+ "..##........",
555
+ "..########..",
556
+ "............",
557
+ "............",
558
+ "............",
559
+ "............"
560
+ ],
561
+ 3: [
562
+ "............",
563
+ "............",
564
+ "............",
565
+ "..######....",
566
+ ".##....##...",
567
+ ".......##...",
568
+ ".......##...",
569
+ "....#####...",
570
+ ".......##...",
571
+ ".......##...",
572
+ ".......##...",
573
+ ".......##...",
574
+ ".##....##...",
575
+ "..######....",
576
+ "............",
577
+ "............",
578
+ "............",
579
+ "............"
580
+ ],
581
+ 4: [
582
+ "............",
583
+ "............",
584
+ "............",
585
+ ".....###....",
586
+ "....####....",
587
+ "...##.##....",
588
+ "..##..##....",
589
+ ".##...##....",
590
+ ".########...",
591
+ "......##....",
592
+ "......##....",
593
+ "......##....",
594
+ "......##....",
595
+ "......##....",
596
+ "............",
597
+ "............",
598
+ "............",
599
+ "............"
600
+ ],
601
+ 5: [
602
+ "............",
603
+ "............",
604
+ "............",
605
+ "..#######...",
606
+ "..##........",
607
+ "..##........",
608
+ "..######....",
609
+ ".......##...",
610
+ ".......##...",
611
+ ".......##...",
612
+ ".......##...",
613
+ ".......##...",
614
+ ".##....##...",
615
+ "..######....",
616
+ "............",
617
+ "............",
618
+ "............",
619
+ "............"
620
+ ],
621
+ 6: [
622
+ "............",
623
+ "............",
624
+ "............",
625
+ "....####....",
626
+ "..###.......",
627
+ ".##.........",
628
+ ".##.........",
629
+ ".######.....",
630
+ ".##....##...",
631
+ ".##....##...",
632
+ ".##....##...",
633
+ ".##....##...",
634
+ "..##..##....",
635
+ "...####.....",
636
+ "............",
637
+ "............",
638
+ "............",
639
+ "............"
640
+ ],
641
+ 7: [
642
+ "............",
643
+ "............",
644
+ "............",
645
+ "..########..",
646
+ ".......##...",
647
+ "......##....",
648
+ ".....##.....",
649
+ ".....##.....",
650
+ "....##......",
651
+ "....##......",
652
+ "....##......",
653
+ "...##.......",
654
+ "...##.......",
655
+ "...##.......",
656
+ "............",
657
+ "............",
658
+ "............",
659
+ "............"
660
+ ],
661
+ 8: [
662
+ "............",
663
+ "............",
664
+ "............",
665
+ "..######....",
666
+ ".##....##...",
667
+ ".##....##...",
668
+ ".##....##...",
669
+ "..######....",
670
+ ".##....##...",
671
+ ".##....##...",
672
+ ".##....##...",
673
+ ".##....##...",
674
+ ".##....##...",
675
+ "..######....",
676
+ "............",
677
+ "............",
678
+ "............",
679
+ "............"
680
+ ],
681
+ B: [
682
+ "............",
683
+ "............",
684
+ "............",
685
+ ".#######....",
686
+ ".##....##...",
687
+ ".##....##...",
688
+ ".##...##....",
689
+ ".######.....",
690
+ ".##...##....",
691
+ ".##....##...",
692
+ ".##....##...",
693
+ ".##....##...",
694
+ ".##....##...",
695
+ ".#######....",
696
+ "............",
697
+ "............",
698
+ "............",
699
+ "............"
700
+ ],
701
+ C: [
702
+ "............",
703
+ "............",
704
+ "............",
705
+ "...#####....",
706
+ ".##.....##..",
707
+ ".##.........",
708
+ "##..........",
709
+ "##..........",
710
+ "##..........",
711
+ "##..........",
712
+ ".##.........",
713
+ ".##.....##..",
714
+ "...#####....",
715
+ "............",
716
+ "............",
717
+ "............",
718
+ "............",
719
+ "............"
720
+ ],
721
+ D: [
722
+ "............",
723
+ "............",
724
+ "............",
725
+ ".######.....",
726
+ ".##...##....",
727
+ ".##....##...",
728
+ ".##....##...",
729
+ ".##.....##..",
730
+ ".##.....##..",
731
+ ".##....##...",
732
+ ".##....##...",
733
+ ".##...##....",
734
+ ".######.....",
735
+ "............",
736
+ "............",
737
+ "............",
738
+ "............",
739
+ "............"
740
+ ],
741
+ F: [
742
+ "............",
743
+ "............",
744
+ "............",
745
+ ".########...",
746
+ ".##.........",
747
+ ".##.........",
748
+ ".##.........",
749
+ ".######.....",
750
+ ".##.........",
751
+ ".##.........",
752
+ ".##.........",
753
+ ".##.........",
754
+ ".##.........",
755
+ ".##.........",
756
+ "............",
757
+ "............",
758
+ "............",
759
+ "............"
760
+ ],
761
+ G: [
762
+ "............",
763
+ "............",
764
+ "............",
765
+ "...#####....",
766
+ ".##.....##..",
767
+ ".##.........",
768
+ "##..........",
769
+ "##..........",
770
+ "##..#####...",
771
+ "##......##..",
772
+ "##......##..",
773
+ ".##....##...",
774
+ "...#####....",
775
+ "............",
776
+ "............",
777
+ "............",
778
+ "............",
779
+ "............"
780
+ ],
781
+ J: [
782
+ "............",
783
+ "............",
784
+ "............",
785
+ "....######..",
786
+ ".......##...",
787
+ ".......##...",
788
+ ".......##...",
789
+ ".......##...",
790
+ ".......##...",
791
+ ".......##...",
792
+ ".......##...",
793
+ "##.....##...",
794
+ ".##...##....",
795
+ "..#####.....",
796
+ "............",
797
+ "............",
798
+ "............",
799
+ "............"
800
+ ],
801
+ K: [
802
+ "............",
803
+ "............",
804
+ "............",
805
+ ".##....##...",
806
+ ".##...##....",
807
+ ".##..##.....",
808
+ ".##.##......",
809
+ ".####.......",
810
+ ".####.......",
811
+ ".##.##......",
812
+ ".##..##.....",
813
+ ".##...##....",
814
+ ".##....##...",
815
+ ".##.....##..",
816
+ "............",
817
+ "............",
818
+ "............",
819
+ "............"
820
+ ],
821
+ N: [
822
+ "............",
823
+ "............",
824
+ "............",
825
+ ".##.....##..",
826
+ ".###....##..",
827
+ ".####...##..",
828
+ ".##.##..##..",
829
+ ".##..##.##..",
830
+ ".##...####..",
831
+ ".##....###..",
832
+ ".##.....##..",
833
+ ".##.....##..",
834
+ ".##.....##..",
835
+ ".##.....##..",
836
+ "............",
837
+ "............",
838
+ "............",
839
+ "............"
840
+ ],
841
+ P: [
842
+ "............",
843
+ "............",
844
+ "............",
845
+ ".######.....",
846
+ ".##...##....",
847
+ ".##....##...",
848
+ ".##....##...",
849
+ ".##...##....",
850
+ ".######.....",
851
+ ".##.........",
852
+ ".##.........",
853
+ ".##.........",
854
+ ".##.........",
855
+ ".##.........",
856
+ "............",
857
+ "............",
858
+ "............",
859
+ "............"
860
+ ],
861
+ Q: [
862
+ "............",
863
+ "............",
864
+ "............",
865
+ "...######...",
866
+ ".##......##.",
867
+ "##........##",
868
+ "##........##",
869
+ "##........##",
870
+ "##........##",
871
+ "##........##",
872
+ ".##......##.",
873
+ "...######...",
874
+ ".......###..",
875
+ "........###.",
876
+ "............",
877
+ "............",
878
+ "............",
879
+ "............"
880
+ ],
881
+ R: [
882
+ "............",
883
+ "............",
884
+ "............",
885
+ ".######.....",
886
+ ".##...##....",
887
+ ".##....##...",
888
+ ".##...##....",
889
+ ".######.....",
890
+ ".##.##......",
891
+ ".##..##.....",
892
+ ".##...##....",
893
+ ".##...##....",
894
+ ".##....##...",
895
+ ".##....##...",
896
+ "............",
897
+ "............",
898
+ "............",
899
+ "............"
900
+ ],
901
+ S: [
902
+ "............",
903
+ "............",
904
+ "............",
905
+ "..######....",
906
+ ".##....##...",
907
+ ".##.........",
908
+ ".##.........",
909
+ "..#####.....",
910
+ ".....###....",
911
+ ".......##...",
912
+ ".......##...",
913
+ ".##....##...",
914
+ ".##....##...",
915
+ "..######....",
916
+ "............",
917
+ "............",
918
+ "............",
919
+ "............"
920
+ ],
921
+ U: [
922
+ "............",
923
+ "............",
924
+ "............",
925
+ ".##.....##..",
926
+ ".##.....##..",
927
+ ".##.....##..",
928
+ ".##.....##..",
929
+ ".##.....##..",
930
+ ".##.....##..",
931
+ ".##.....##..",
932
+ ".##.....##..",
933
+ ".##....##...",
934
+ "..##...##...",
935
+ "...#####....",
936
+ "............",
937
+ "............",
938
+ "............",
939
+ "............"
940
+ ],
941
+ V: [
942
+ "............",
943
+ "............",
944
+ "............",
945
+ "##........##",
946
+ ".##......##.",
947
+ ".##......##.",
948
+ "..##....##..",
949
+ "..##....##..",
950
+ "...##..##...",
951
+ "...##..##...",
952
+ "....####....",
953
+ "....####....",
954
+ ".....##.....",
955
+ ".....##.....",
956
+ "............",
957
+ "............",
958
+ "............",
959
+ "............"
960
+ ],
961
+ W: [
962
+ "............",
963
+ "............",
964
+ "............",
965
+ "##........##",
966
+ "##........##",
967
+ "##........##",
968
+ "##........##",
969
+ "##...##...##",
970
+ "##..####..##",
971
+ "##.##..##.##",
972
+ "####....####",
973
+ "###......###",
974
+ ".##......##.",
975
+ ".##......##.",
976
+ "............",
977
+ "............",
978
+ "............",
979
+ "............"
980
+ ],
981
+ X: [
982
+ "............",
983
+ "............",
984
+ "............",
985
+ "##........##",
986
+ ".##......##.",
987
+ "..##....##..",
988
+ "...##..##...",
989
+ "....####....",
990
+ ".....##.....",
991
+ "....####....",
992
+ "...##..##...",
993
+ "..##....##..",
994
+ ".##......##.",
995
+ "##........##",
996
+ "............",
997
+ "............",
998
+ "............",
999
+ "............"
1000
+ ],
1001
+ Y: [
1002
+ "............",
1003
+ "............",
1004
+ "............",
1005
+ "##........##",
1006
+ ".##......##.",
1007
+ "..##....##..",
1008
+ "...##..##...",
1009
+ "....####....",
1010
+ ".....##.....",
1011
+ ".....##.....",
1012
+ ".....##.....",
1013
+ ".....##.....",
1014
+ ".....##.....",
1015
+ "...######...",
1016
+ "............",
1017
+ "............",
1018
+ "............",
1019
+ "............"
1020
+ ],
1021
+ Z: [
1022
+ "............",
1023
+ "............",
1024
+ "............",
1025
+ "..########..",
1026
+ ".......##...",
1027
+ "......##....",
1028
+ ".....##.....",
1029
+ "....##......",
1030
+ "...##.......",
1031
+ "..##........",
1032
+ "..##........",
1033
+ "..##........",
1034
+ "..##........",
1035
+ "..########..",
1036
+ "............",
1037
+ "............",
1038
+ "............",
1039
+ "............"
1040
+ ],
1041
+ b: [
1042
+ "............",
1043
+ "............",
1044
+ "............",
1045
+ ".##.........",
1046
+ ".##.........",
1047
+ ".##.........",
1048
+ ".#####......",
1049
+ ".##..##.....",
1050
+ ".##...##....",
1051
+ ".##...##....",
1052
+ ".##...##....",
1053
+ ".##...##....",
1054
+ ".##..##.....",
1055
+ ".#####......",
1056
+ "............",
1057
+ "............",
1058
+ "............",
1059
+ "............"
1060
+ ],
1061
+ c: [
1062
+ "............",
1063
+ "............",
1064
+ "............",
1065
+ "............",
1066
+ "............",
1067
+ "............",
1068
+ "...####.....",
1069
+ "..##..##....",
1070
+ ".##.........",
1071
+ ".##.........",
1072
+ ".##.........",
1073
+ ".##.........",
1074
+ "..##..##....",
1075
+ "...####.....",
1076
+ "............",
1077
+ "............",
1078
+ "............",
1079
+ "............"
1080
+ ],
1081
+ e: [
1082
+ "............",
1083
+ "............",
1084
+ "............",
1085
+ "............",
1086
+ "............",
1087
+ "............",
1088
+ "...####.....",
1089
+ "..##..##....",
1090
+ ".##....##...",
1091
+ ".########...",
1092
+ ".##.........",
1093
+ ".##.........",
1094
+ "..##..##....",
1095
+ "...####.....",
1096
+ "............",
1097
+ "............",
1098
+ "............",
1099
+ "............"
1100
+ ],
1101
+ f: [
1102
+ "............",
1103
+ "............",
1104
+ "............",
1105
+ "....####....",
1106
+ "...##..#....",
1107
+ "...##.......",
1108
+ ".#######....",
1109
+ "...##.......",
1110
+ "...##.......",
1111
+ "...##.......",
1112
+ "...##.......",
1113
+ "...##.......",
1114
+ "...##.......",
1115
+ "...##.......",
1116
+ "............",
1117
+ "............",
1118
+ "............",
1119
+ "............"
1120
+ ],
1121
+ h: [
1122
+ "............",
1123
+ "............",
1124
+ "............",
1125
+ ".##.........",
1126
+ ".##.........",
1127
+ ".##.........",
1128
+ ".#####......",
1129
+ ".##..##.....",
1130
+ ".##...##....",
1131
+ ".##...##....",
1132
+ ".##...##....",
1133
+ ".##...##....",
1134
+ ".##...##....",
1135
+ ".##...##....",
1136
+ "............",
1137
+ "............",
1138
+ "............",
1139
+ "............"
1140
+ ],
1141
+ i: [
1142
+ "............",
1143
+ "............",
1144
+ "............",
1145
+ "............",
1146
+ ".....##.....",
1147
+ "............",
1148
+ ".....##.....",
1149
+ ".....##.....",
1150
+ ".....##.....",
1151
+ ".....##.....",
1152
+ ".....##.....",
1153
+ ".....##.....",
1154
+ ".....##.....",
1155
+ "...######...",
1156
+ "............",
1157
+ "............",
1158
+ "............",
1159
+ "............"
1160
+ ],
1161
+ j: [
1162
+ "............",
1163
+ "............",
1164
+ "............",
1165
+ "............",
1166
+ ".....##.....",
1167
+ "............",
1168
+ ".....##.....",
1169
+ ".....##.....",
1170
+ ".....##.....",
1171
+ ".....##.....",
1172
+ ".....##.....",
1173
+ ".....##.....",
1174
+ ".....##.....",
1175
+ ".....##.....",
1176
+ ".....##.....",
1177
+ "##...##.....",
1178
+ ".##.##......",
1179
+ "..###......."
1180
+ ],
1181
+ m: [
1182
+ "............",
1183
+ "............",
1184
+ "............",
1185
+ "............",
1186
+ "............",
1187
+ "............",
1188
+ "##########..",
1189
+ "##..##..##..",
1190
+ "##..##..##..",
1191
+ "##..##..##..",
1192
+ "##..##..##..",
1193
+ "##..##..##..",
1194
+ "##..##..##..",
1195
+ "##..##..##..",
1196
+ "............",
1197
+ "............",
1198
+ "............",
1199
+ "............"
1200
+ ],
1201
+ q: [
1202
+ "............",
1203
+ "............",
1204
+ "............",
1205
+ "............",
1206
+ "............",
1207
+ "............",
1208
+ "..######....",
1209
+ ".##....##...",
1210
+ ".##....##...",
1211
+ ".##....##...",
1212
+ ".##....##...",
1213
+ ".##....##...",
1214
+ "..#######...",
1215
+ ".......##...",
1216
+ ".......##...",
1217
+ ".......##...",
1218
+ ".......##...",
1219
+ ".....#####.."
1220
+ ],
1221
+ t: [
1222
+ "............",
1223
+ "............",
1224
+ "............",
1225
+ "............",
1226
+ "...##.......",
1227
+ "...##.......",
1228
+ ".######.....",
1229
+ "...##.......",
1230
+ "...##.......",
1231
+ "...##.......",
1232
+ "...##.......",
1233
+ "...##.......",
1234
+ "...##..##...",
1235
+ "....####....",
1236
+ "............",
1237
+ "............",
1238
+ "............",
1239
+ "............"
1240
+ ],
1241
+ w: [
1242
+ "............",
1243
+ "............",
1244
+ "............",
1245
+ "............",
1246
+ "............",
1247
+ "............",
1248
+ "##........##",
1249
+ "##........##",
1250
+ "##...##...##",
1251
+ "##..####..##",
1252
+ "##.##..##.##",
1253
+ "####....####",
1254
+ ".##......##.",
1255
+ ".##......##.",
1256
+ "............",
1257
+ "............",
1258
+ "............",
1259
+ "............"
1260
+ ],
1261
+ x: [
1262
+ "............",
1263
+ "............",
1264
+ "............",
1265
+ "............",
1266
+ "............",
1267
+ "............",
1268
+ ".##.....##..",
1269
+ "..##...##...",
1270
+ "...##.##....",
1271
+ "....###.....",
1272
+ "....###.....",
1273
+ "...##.##....",
1274
+ "..##...##...",
1275
+ ".##.....##..",
1276
+ "............",
1277
+ "............",
1278
+ "............",
1279
+ "............"
1280
+ ],
1281
+ y: [
1282
+ "............",
1283
+ "............",
1284
+ "............",
1285
+ "............",
1286
+ "............",
1287
+ "............",
1288
+ ".##.....##..",
1289
+ ".##.....##..",
1290
+ ".##.....##..",
1291
+ ".##.....##..",
1292
+ "..##...##...",
1293
+ "..#######...",
1294
+ ".......##...",
1295
+ ".......##...",
1296
+ ".......##...",
1297
+ ".......##...",
1298
+ "##.....##...",
1299
+ ".######....."
1300
+ ],
1301
+ z: [
1302
+ "............",
1303
+ "............",
1304
+ "............",
1305
+ "............",
1306
+ "............",
1307
+ "............",
1308
+ "..######....",
1309
+ ".....##.....",
1310
+ ".....##.....",
1311
+ "....##......",
1312
+ "...##.......",
1313
+ "..##........",
1314
+ "..##........",
1315
+ "..######....",
1316
+ "............",
1317
+ "............",
1318
+ "............",
1319
+ "............"
1320
+ ],
1321
+ "?": [
1322
+ "............",
1323
+ "............",
1324
+ "............",
1325
+ "..######....",
1326
+ ".##....##...",
1327
+ ".......##...",
1328
+ "......##....",
1329
+ ".....##.....",
1330
+ ".....##.....",
1331
+ "............",
1332
+ ".....##.....",
1333
+ ".....##.....",
1334
+ "............",
1335
+ "............",
1336
+ "............",
1337
+ "............",
1338
+ "............",
1339
+ "............"
1340
+ ],
1341
+ ":": [
1342
+ "............",
1343
+ "............",
1344
+ "............",
1345
+ "............",
1346
+ "............",
1347
+ "............",
1348
+ ".....##.....",
1349
+ ".....##.....",
1350
+ "............",
1351
+ "............",
1352
+ "............",
1353
+ ".....##.....",
1354
+ ".....##.....",
1355
+ "............",
1356
+ "............",
1357
+ "............",
1358
+ "............",
1359
+ "............"
1360
+ ],
1361
+ ";": [
1362
+ "............",
1363
+ "............",
1364
+ "............",
1365
+ "............",
1366
+ "............",
1367
+ "............",
1368
+ ".....##.....",
1369
+ ".....##.....",
1370
+ "............",
1371
+ "............",
1372
+ "............",
1373
+ ".....##.....",
1374
+ ".....##.....",
1375
+ ".....##.....",
1376
+ "....##......",
1377
+ "............",
1378
+ "............",
1379
+ "............"
1380
+ ],
1381
+ "-": [
1382
+ "............",
1383
+ "............",
1384
+ "............",
1385
+ "............",
1386
+ "............",
1387
+ "............",
1388
+ "............",
1389
+ "............",
1390
+ "..######....",
1391
+ "..######....",
1392
+ "............",
1393
+ "............",
1394
+ "............",
1395
+ "............",
1396
+ "............",
1397
+ "............",
1398
+ "............",
1399
+ "............"
1400
+ ],
1401
+ "'": [
1402
+ "............",
1403
+ "............",
1404
+ "............",
1405
+ ".....##.....",
1406
+ ".....##.....",
1407
+ "....##......",
1408
+ "............",
1409
+ "............",
1410
+ "............",
1411
+ "............",
1412
+ "............",
1413
+ "............",
1414
+ "............",
1415
+ "............",
1416
+ "............",
1417
+ "............",
1418
+ "............",
1419
+ "............"
1420
+ ],
1421
+ "\"": [
1422
+ "............",
1423
+ "............",
1424
+ "............",
1425
+ "...##.##....",
1426
+ "...##.##....",
1427
+ "..##.##.....",
1428
+ "............",
1429
+ "............",
1430
+ "............",
1431
+ "............",
1432
+ "............",
1433
+ "............",
1434
+ "............",
1435
+ "............",
1436
+ "............",
1437
+ "............",
1438
+ "............",
1439
+ "............"
1440
+ ],
1441
+ "(": [
1442
+ "............",
1443
+ "............",
1444
+ "............",
1445
+ "....##......",
1446
+ "...##.......",
1447
+ "..##........",
1448
+ "..##........",
1449
+ "..##........",
1450
+ "..##........",
1451
+ "..##........",
1452
+ "..##........",
1453
+ "..##........",
1454
+ "...##.......",
1455
+ "....##......",
1456
+ "............",
1457
+ "............",
1458
+ "............",
1459
+ "............"
1460
+ ],
1461
+ ")": [
1462
+ "............",
1463
+ "............",
1464
+ "............",
1465
+ "......##....",
1466
+ ".......##...",
1467
+ "........##..",
1468
+ "........##..",
1469
+ "........##..",
1470
+ "........##..",
1471
+ "........##..",
1472
+ "........##..",
1473
+ "........##..",
1474
+ ".......##...",
1475
+ "......##....",
1476
+ "............",
1477
+ "............",
1478
+ "............",
1479
+ "............"
1480
+ ],
1481
+ "/": [
1482
+ "............",
1483
+ "............",
1484
+ "............",
1485
+ "........##..",
1486
+ ".......##...",
1487
+ "......##....",
1488
+ "......##....",
1489
+ ".....##.....",
1490
+ ".....##.....",
1491
+ "....##......",
1492
+ "....##......",
1493
+ "...##.......",
1494
+ "...##.......",
1495
+ "..##........",
1496
+ "............",
1497
+ "............",
1498
+ "............",
1499
+ "............"
1500
+ ],
1501
+ "@": [
1502
+ "............",
1503
+ "............",
1504
+ "............",
1505
+ "..######....",
1506
+ ".##....##...",
1507
+ "##......##..",
1508
+ "##..###.##..",
1509
+ "##.##.#.##..",
1510
+ "##.##.#.##..",
1511
+ "##.##.#.##..",
1512
+ "##..####.#..",
1513
+ "##..........",
1514
+ ".##....##...",
1515
+ "..######....",
1516
+ "............",
1517
+ "............",
1518
+ "............",
1519
+ "............"
1520
+ ],
1521
+ ç: [
1522
+ "............",
1523
+ "............",
1524
+ "............",
1525
+ "............",
1526
+ "............",
1527
+ "............",
1528
+ "...####.....",
1529
+ "..##..##....",
1530
+ ".##.........",
1531
+ ".##.........",
1532
+ ".##.........",
1533
+ "..##..##....",
1534
+ "...####.....",
1535
+ "....##......",
1536
+ ".....##.....",
1537
+ "...###......",
1538
+ "............",
1539
+ "............"
1540
+ ],
1541
+ Ç: [
1542
+ "............",
1543
+ "............",
1544
+ "............",
1545
+ "...#####....",
1546
+ ".##.....##..",
1547
+ ".##.........",
1548
+ "##..........",
1549
+ "##..........",
1550
+ "##..........",
1551
+ ".##.........",
1552
+ ".##.....##..",
1553
+ "...#####....",
1554
+ "....##......",
1555
+ ".....##.....",
1556
+ "...###......",
1557
+ "............",
1558
+ "............",
1559
+ "............"
1560
+ ],
1561
+ ",": [
1562
+ "............",
1563
+ "............",
1564
+ "............",
1565
+ "............",
1566
+ "............",
1567
+ "............",
1568
+ "............",
1569
+ "............",
1570
+ "............",
1571
+ "............",
1572
+ "............",
1573
+ "............",
1574
+ "...##.......",
1575
+ "...##.......",
1576
+ "...##.......",
1577
+ "..##........",
1578
+ "............",
1579
+ "............"
1580
+ ],
1581
+ "!": [
1582
+ "............",
1583
+ "............",
1584
+ "............",
1585
+ ".....##.....",
1586
+ ".....##.....",
1587
+ ".....##.....",
1588
+ ".....##.....",
1589
+ ".....##.....",
1590
+ ".....##.....",
1591
+ ".....##.....",
1592
+ ".....##.....",
1593
+ "............",
1594
+ ".....##.....",
1595
+ ".....##.....",
1596
+ "............",
1597
+ "............",
1598
+ "............",
1599
+ "............"
1600
+ ],
1601
+ ".": [
1602
+ "............",
1603
+ "............",
1604
+ "............",
1605
+ "............",
1606
+ "............",
1607
+ "............",
1608
+ "............",
1609
+ "............",
1610
+ "............",
1611
+ "............",
1612
+ "............",
1613
+ "............",
1614
+ "...##.......",
1615
+ "...##.......",
1616
+ "............",
1617
+ "............",
1618
+ "............",
1619
+ "............"
1620
+ ]
1621
+ }, s = {
1622
+ acute: [".......##...", "......##...."],
1623
+ grave: ["....##......", ".....##....."],
1624
+ circumflex: [".....##.....", "....#..#...."],
1625
+ tilde: ["...###.##...", "..##.###...."],
1626
+ diaeresis: ["....#..#....", "....#..#...."]
1627
+ };
1628
+ function c(e, t, n) {
1629
+ return e.map((e, r) => r === n ? t[0] : r === n + 1 ? t[1] : e);
1630
+ }
1631
+ var l = (e) => e.map((e, t) => t === 4 ? "............" : e), u = (e, t) => c(o[e], t, 3), d = (e, t) => c(o[e], t, 0);
1632
+ Object.assign(o, {
1633
+ á: u("a", s.acute),
1634
+ à: u("a", s.grave),
1635
+ â: u("a", s.circumflex),
1636
+ ã: u("a", s.tilde),
1637
+ ä: u("a", s.diaeresis),
1638
+ é: u("e", s.acute),
1639
+ è: u("e", s.grave),
1640
+ ê: u("e", s.circumflex),
1641
+ í: c(l(o.i), s.acute, 3),
1642
+ î: c(l(o.i), s.circumflex, 3),
1643
+ ó: u("o", s.acute),
1644
+ ô: u("o", s.circumflex),
1645
+ õ: u("o", s.tilde),
1646
+ ú: u("u", s.acute),
1647
+ ü: u("u", s.diaeresis),
1648
+ ñ: u("n", s.tilde),
1649
+ Á: d("A", s.acute),
1650
+ À: d("A", s.grave),
1651
+ Â: d("A", s.circumflex),
1652
+ Ã: d("A", s.tilde),
1653
+ É: d("E", s.acute),
1654
+ Ê: d("E", s.circumflex),
1655
+ Í: d("I", s.acute),
1656
+ Ó: d("O", s.acute),
1657
+ Ô: d("O", s.circumflex),
1658
+ Õ: d("O", s.tilde),
1659
+ Ú: d("U", s.acute)
1660
+ });
1661
+ //#endregion
1662
+ //#region src/engine/render-text.ts
1663
+ var f = /* @__PURE__ */ new Map();
1664
+ function p(e, t) {
1665
+ if (e.length !== 1) throw Error(`registerGlyph expects a single character, got "${e}".`);
1666
+ i(t), o[e] = t, f.delete(e);
1667
+ }
1668
+ function m() {
1669
+ return Object.keys(o);
1670
+ }
1671
+ function h(e) {
1672
+ let t = o[e];
1673
+ if (!t) return;
1674
+ let n = f.get(e);
1675
+ if (n) return n;
1676
+ let r = i(t);
1677
+ return f.set(e, r), r;
1678
+ }
1679
+ function g(e) {
1680
+ return e in o;
1681
+ }
1682
+ function _(e) {
1683
+ return Array.from(e, (e) => {
1684
+ let t = h(e);
1685
+ return t ? {
1686
+ character: e,
1687
+ matrix: t,
1688
+ isFallback: !1
1689
+ } : {
1690
+ character: e,
1691
+ matrix: h(" ") ?? a(),
1692
+ isFallback: !0
1693
+ };
1694
+ });
1695
+ }
1696
+ //#endregion
1697
+ //#region src/engine/spacing.ts
1698
+ function v(e) {
1699
+ let t = Infinity, n = -Infinity;
1700
+ for (let i of e) for (let e = 0; e < i.length; e++) r(i[e]) && (e < t && (t = e), e > n && (n = e));
1701
+ return n === -Infinity ? null : {
1702
+ start: t,
1703
+ end: n
1704
+ };
1705
+ }
1706
+ //#endregion
1707
+ //#region src/components/PixelText.tsx
1708
+ function y(e) {
1709
+ return typeof e == "number" ? `${e}px` : e;
1710
+ }
1711
+ function b(e, t, n) {
1712
+ return !!e[t]?.[n] && e[t][n] !== "off";
1713
+ }
1714
+ function x(e) {
1715
+ return e.reduce((e, t) => e + t.filter(r).length, 0);
1716
+ }
1717
+ function S({ text: t, pixelSize: i, gap: a, letterSpacing: o, color: s, offColor: c, pixelShape: l = "dot", smartCorners: u = !1, smoothness: d = .6, proportional: f = !0, spaceWidth: p = 4, renderOff: m = !0, fluid: h = !1, gapRatio: g = .16, letterSpacingRatio: S = .5, className: C, style: w, ...T }) {
1718
+ let E = _(t), D = T["aria-label"] ?? t, O = n.width, k = E.map((e) => f ? v(e.matrix) : {
1719
+ start: 0,
1720
+ end: O - 1
1721
+ }), A = { ...w };
1722
+ if (h) {
1723
+ let e = 0;
1724
+ k.forEach((t, n) => {
1725
+ if (t === null) e += p;
1726
+ else {
1727
+ let n = t.end - t.start + 1;
1728
+ e += n + (n - 1) * g;
1729
+ }
1730
+ n < E.length - 1 && (e += S);
1731
+ }), A["--ph-units"] = e > 0 ? e : 1, A["--ph-gap-ratio"] = g, A["--ph-letter-ratio"] = S;
1732
+ } else i !== void 0 && (A["--ph-pixel-size"] = y(i)), a !== void 0 && (A["--ph-gap"] = y(a)), o !== void 0 && (A["--ph-letter-spacing"] = y(o));
1733
+ s !== void 0 && (A["--ph-on-color"] = s), c !== void 0 && (A["--ph-off-color"] = c);
1734
+ let j = u && (l === "square" || l === "squircle"), M = `calc(var(--ph-pixel-size) * ${d / 2})`, N = [
1735
+ "pharos",
1736
+ `ph-shape-${l}`,
1737
+ h && "pharos--fluid",
1738
+ C
1739
+ ].filter(Boolean).join(" "), P = E.reduce((e, t) => e + x(t.matrix), 0), F = 0;
1740
+ return /* @__PURE__ */ e("span", {
1741
+ ...T,
1742
+ role: "img",
1743
+ "aria-label": D,
1744
+ className: N,
1745
+ style: A,
1746
+ children: E.map((t, i) => {
1747
+ let a = k[i];
1748
+ if (a === null) return /* @__PURE__ */ e("span", {
1749
+ "aria-hidden": "true",
1750
+ className: "pharos__space",
1751
+ style: { width: `calc(var(--ph-pixel-size) * ${p})` }
1752
+ }, `${t.character}-${i}`);
1753
+ let { start: o, end: s } = a;
1754
+ return /* @__PURE__ */ e("span", {
1755
+ "aria-hidden": "true",
1756
+ className: "pharos__char",
1757
+ style: {
1758
+ "--ph-cols": s - o + 1,
1759
+ "--ph-rows": n.height
1760
+ },
1761
+ children: t.matrix.flatMap((n, i) => n.slice(o, s + 1).map((n, a) => {
1762
+ let s = o + a, c = r(n);
1763
+ if (!m && !c) return null;
1764
+ let l = ["pharos__pixel"], u = {
1765
+ "--ph-row": i,
1766
+ "--ph-col": s
1767
+ };
1768
+ return m || (u.gridColumn = s - o + 1, u.gridRow = i + 1), c && (l.push("pharos__pixel--on"), u["--ph-i"] = F++, u["--ph-n"] = P), n !== "on" && n !== "off" ? l.push(`ph-tri-${n}`) : j && n === "on" && (u.borderRadius = `${!b(t.matrix, i - 1, s) && !b(t.matrix, i, s - 1) ? M : "0"} ${!b(t.matrix, i - 1, s) && !b(t.matrix, i, s + 1) ? M : "0"} ${!b(t.matrix, i + 1, s) && !b(t.matrix, i, s + 1) ? M : "0"} ${!b(t.matrix, i + 1, s) && !b(t.matrix, i, s - 1) ? M : "0"}`), /* @__PURE__ */ e("span", {
1769
+ className: l.join(" "),
1770
+ style: u
1771
+ }, `${i}-${s}`);
1772
+ }))
1773
+ }, `${t.character}-${i}`);
1774
+ })
1775
+ });
1776
+ }
1777
+ //#endregion
1778
+ export { o as GLYPHS, n as METRICS, S as PixelText, m as getCharacters, h as getGlyphMatrix, v as glyphBounds, g as hasGlyph, r as isLit, p as registerGlyph, _ as renderText };