@cliff-studio/sanity-plugin-bunny-input 2.0.0 → 2.0.2

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.
@@ -1,4654 +0,0 @@
1
- import { distExports } from "./index.js";
2
- import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
- import { createElement } from "react";
4
- class Schema {
5
- /**
6
- * @param {SchemaType['property']} property
7
- * Property.
8
- * @param {SchemaType['normal']} normal
9
- * Normal.
10
- * @param {Space | undefined} [space]
11
- * Space.
12
- * @returns
13
- * Schema.
14
- */
15
- constructor(property, normal, space) {
16
- this.normal = normal, this.property = property, space && (this.space = space);
17
- }
18
- }
19
- Schema.prototype.normal = {};
20
- Schema.prototype.property = {};
21
- Schema.prototype.space = void 0;
22
- function merge(definitions, space) {
23
- const property = {}, normal = {};
24
- for (const definition of definitions)
25
- Object.assign(property, definition.property), Object.assign(normal, definition.normal);
26
- return new Schema(property, normal, space);
27
- }
28
- function normalize(value) {
29
- return value.toLowerCase();
30
- }
31
- class Info {
32
- /**
33
- * @param {string} property
34
- * Property.
35
- * @param {string} attribute
36
- * Attribute.
37
- * @returns
38
- * Info.
39
- */
40
- constructor(property, attribute) {
41
- this.attribute = attribute, this.property = property;
42
- }
43
- }
44
- Info.prototype.attribute = "";
45
- Info.prototype.booleanish = !1;
46
- Info.prototype.boolean = !1;
47
- Info.prototype.commaOrSpaceSeparated = !1;
48
- Info.prototype.commaSeparated = !1;
49
- Info.prototype.defined = !1;
50
- Info.prototype.mustUseProperty = !1;
51
- Info.prototype.number = !1;
52
- Info.prototype.overloadedBoolean = !1;
53
- Info.prototype.property = "";
54
- Info.prototype.spaceSeparated = !1;
55
- Info.prototype.space = void 0;
56
- let powers = 0;
57
- const boolean = increment(), booleanish = increment(), overloadedBoolean = increment(), number = increment(), spaceSeparated = increment(), commaSeparated = increment(), commaOrSpaceSeparated = increment();
58
- function increment() {
59
- return 2 ** ++powers;
60
- }
61
- var types = /* @__PURE__ */ Object.freeze({
62
- __proto__: null,
63
- boolean,
64
- booleanish,
65
- commaOrSpaceSeparated,
66
- commaSeparated,
67
- number,
68
- overloadedBoolean,
69
- spaceSeparated
70
- });
71
- const checks = (
72
- /** @type {ReadonlyArray<keyof typeof types>} */
73
- Object.keys(types)
74
- );
75
- class DefinedInfo extends Info {
76
- /**
77
- * @constructor
78
- * @param {string} property
79
- * Property.
80
- * @param {string} attribute
81
- * Attribute.
82
- * @param {number | null | undefined} [mask]
83
- * Mask.
84
- * @param {Space | undefined} [space]
85
- * Space.
86
- * @returns
87
- * Info.
88
- */
89
- constructor(property, attribute, mask, space) {
90
- let index = -1;
91
- if (super(property, attribute), mark(this, "space", space), typeof mask == "number")
92
- for (; ++index < checks.length; ) {
93
- const check = checks[index];
94
- mark(this, checks[index], (mask & types[check]) === types[check]);
95
- }
96
- }
97
- }
98
- DefinedInfo.prototype.defined = !0;
99
- function mark(values, key, value) {
100
- value && (values[key] = value);
101
- }
102
- function create(definition) {
103
- const properties = {}, normals = {};
104
- for (const [property, value] of Object.entries(definition.properties)) {
105
- const info = new DefinedInfo(
106
- property,
107
- definition.transform(definition.attributes || {}, property),
108
- value,
109
- definition.space
110
- );
111
- definition.mustUseProperty && definition.mustUseProperty.includes(property) && (info.mustUseProperty = !0), properties[property] = info, normals[normalize(property)] = property, normals[normalize(info.attribute)] = property;
112
- }
113
- return new Schema(properties, normals, definition.space);
114
- }
115
- const aria = create({
116
- properties: {
117
- ariaActiveDescendant: null,
118
- ariaAtomic: booleanish,
119
- ariaAutoComplete: null,
120
- ariaBusy: booleanish,
121
- ariaChecked: booleanish,
122
- ariaColCount: number,
123
- ariaColIndex: number,
124
- ariaColSpan: number,
125
- ariaControls: spaceSeparated,
126
- ariaCurrent: null,
127
- ariaDescribedBy: spaceSeparated,
128
- ariaDetails: null,
129
- ariaDisabled: booleanish,
130
- ariaDropEffect: spaceSeparated,
131
- ariaErrorMessage: null,
132
- ariaExpanded: booleanish,
133
- ariaFlowTo: spaceSeparated,
134
- ariaGrabbed: booleanish,
135
- ariaHasPopup: null,
136
- ariaHidden: booleanish,
137
- ariaInvalid: null,
138
- ariaKeyShortcuts: null,
139
- ariaLabel: null,
140
- ariaLabelledBy: spaceSeparated,
141
- ariaLevel: number,
142
- ariaLive: null,
143
- ariaModal: booleanish,
144
- ariaMultiLine: booleanish,
145
- ariaMultiSelectable: booleanish,
146
- ariaOrientation: null,
147
- ariaOwns: spaceSeparated,
148
- ariaPlaceholder: null,
149
- ariaPosInSet: number,
150
- ariaPressed: booleanish,
151
- ariaReadOnly: booleanish,
152
- ariaRelevant: null,
153
- ariaRequired: booleanish,
154
- ariaRoleDescription: spaceSeparated,
155
- ariaRowCount: number,
156
- ariaRowIndex: number,
157
- ariaRowSpan: number,
158
- ariaSelected: booleanish,
159
- ariaSetSize: number,
160
- ariaSort: null,
161
- ariaValueMax: number,
162
- ariaValueMin: number,
163
- ariaValueNow: number,
164
- ariaValueText: null,
165
- role: null
166
- },
167
- transform(_2, property) {
168
- return property === "role" ? property : "aria-" + property.slice(4).toLowerCase();
169
- }
170
- });
171
- function caseSensitiveTransform(attributes2, attribute) {
172
- return attribute in attributes2 ? attributes2[attribute] : attribute;
173
- }
174
- function caseInsensitiveTransform(attributes2, property) {
175
- return caseSensitiveTransform(attributes2, property.toLowerCase());
176
- }
177
- const html$1 = create({
178
- attributes: {
179
- acceptcharset: "accept-charset",
180
- classname: "class",
181
- htmlfor: "for",
182
- httpequiv: "http-equiv"
183
- },
184
- mustUseProperty: ["checked", "multiple", "muted", "selected"],
185
- properties: {
186
- // Standard Properties.
187
- abbr: null,
188
- accept: commaSeparated,
189
- acceptCharset: spaceSeparated,
190
- accessKey: spaceSeparated,
191
- action: null,
192
- allow: null,
193
- allowFullScreen: boolean,
194
- allowPaymentRequest: boolean,
195
- allowUserMedia: boolean,
196
- alpha: boolean,
197
- alt: null,
198
- as: null,
199
- async: boolean,
200
- autoCapitalize: null,
201
- autoComplete: spaceSeparated,
202
- autoFocus: boolean,
203
- autoPlay: boolean,
204
- blocking: spaceSeparated,
205
- capture: null,
206
- charSet: null,
207
- checked: boolean,
208
- cite: null,
209
- className: spaceSeparated,
210
- closedBy: null,
211
- colorSpace: null,
212
- cols: number,
213
- colSpan: number,
214
- command: null,
215
- commandFor: null,
216
- content: null,
217
- contentEditable: booleanish,
218
- controls: boolean,
219
- controlsList: spaceSeparated,
220
- coords: number | commaSeparated,
221
- crossOrigin: null,
222
- data: null,
223
- dateTime: null,
224
- decoding: null,
225
- default: boolean,
226
- defer: boolean,
227
- dir: null,
228
- dirName: null,
229
- disabled: boolean,
230
- download: overloadedBoolean,
231
- draggable: booleanish,
232
- encType: null,
233
- enterKeyHint: null,
234
- fetchPriority: null,
235
- form: null,
236
- formAction: null,
237
- formEncType: null,
238
- formMethod: null,
239
- formNoValidate: boolean,
240
- formTarget: null,
241
- headers: spaceSeparated,
242
- height: number,
243
- hidden: overloadedBoolean,
244
- high: number,
245
- href: null,
246
- hrefLang: null,
247
- htmlFor: spaceSeparated,
248
- httpEquiv: spaceSeparated,
249
- id: null,
250
- imageSizes: null,
251
- imageSrcSet: null,
252
- inert: boolean,
253
- inputMode: null,
254
- integrity: null,
255
- is: null,
256
- isMap: boolean,
257
- itemId: null,
258
- itemProp: spaceSeparated,
259
- itemRef: spaceSeparated,
260
- itemScope: boolean,
261
- itemType: spaceSeparated,
262
- kind: null,
263
- label: null,
264
- lang: null,
265
- language: null,
266
- list: null,
267
- loading: null,
268
- loop: boolean,
269
- low: number,
270
- manifest: null,
271
- max: null,
272
- maxLength: number,
273
- media: null,
274
- method: null,
275
- min: null,
276
- minLength: number,
277
- multiple: boolean,
278
- muted: boolean,
279
- name: null,
280
- nonce: null,
281
- noModule: boolean,
282
- noValidate: boolean,
283
- onAbort: null,
284
- onAfterPrint: null,
285
- onAuxClick: null,
286
- onBeforeMatch: null,
287
- onBeforePrint: null,
288
- onBeforeToggle: null,
289
- onBeforeUnload: null,
290
- onBlur: null,
291
- onCancel: null,
292
- onCanPlay: null,
293
- onCanPlayThrough: null,
294
- onChange: null,
295
- onClick: null,
296
- onClose: null,
297
- onContextLost: null,
298
- onContextMenu: null,
299
- onContextRestored: null,
300
- onCopy: null,
301
- onCueChange: null,
302
- onCut: null,
303
- onDblClick: null,
304
- onDrag: null,
305
- onDragEnd: null,
306
- onDragEnter: null,
307
- onDragExit: null,
308
- onDragLeave: null,
309
- onDragOver: null,
310
- onDragStart: null,
311
- onDrop: null,
312
- onDurationChange: null,
313
- onEmptied: null,
314
- onEnded: null,
315
- onError: null,
316
- onFocus: null,
317
- onFormData: null,
318
- onHashChange: null,
319
- onInput: null,
320
- onInvalid: null,
321
- onKeyDown: null,
322
- onKeyPress: null,
323
- onKeyUp: null,
324
- onLanguageChange: null,
325
- onLoad: null,
326
- onLoadedData: null,
327
- onLoadedMetadata: null,
328
- onLoadEnd: null,
329
- onLoadStart: null,
330
- onMessage: null,
331
- onMessageError: null,
332
- onMouseDown: null,
333
- onMouseEnter: null,
334
- onMouseLeave: null,
335
- onMouseMove: null,
336
- onMouseOut: null,
337
- onMouseOver: null,
338
- onMouseUp: null,
339
- onOffline: null,
340
- onOnline: null,
341
- onPageHide: null,
342
- onPageShow: null,
343
- onPaste: null,
344
- onPause: null,
345
- onPlay: null,
346
- onPlaying: null,
347
- onPopState: null,
348
- onProgress: null,
349
- onRateChange: null,
350
- onRejectionHandled: null,
351
- onReset: null,
352
- onResize: null,
353
- onScroll: null,
354
- onScrollEnd: null,
355
- onSecurityPolicyViolation: null,
356
- onSeeked: null,
357
- onSeeking: null,
358
- onSelect: null,
359
- onSlotChange: null,
360
- onStalled: null,
361
- onStorage: null,
362
- onSubmit: null,
363
- onSuspend: null,
364
- onTimeUpdate: null,
365
- onToggle: null,
366
- onUnhandledRejection: null,
367
- onUnload: null,
368
- onVolumeChange: null,
369
- onWaiting: null,
370
- onWheel: null,
371
- open: boolean,
372
- optimum: number,
373
- pattern: null,
374
- ping: spaceSeparated,
375
- placeholder: null,
376
- playsInline: boolean,
377
- popover: null,
378
- popoverTarget: null,
379
- popoverTargetAction: null,
380
- poster: null,
381
- preload: null,
382
- readOnly: boolean,
383
- referrerPolicy: null,
384
- rel: spaceSeparated,
385
- required: boolean,
386
- reversed: boolean,
387
- rows: number,
388
- rowSpan: number,
389
- sandbox: spaceSeparated,
390
- scope: null,
391
- scoped: boolean,
392
- seamless: boolean,
393
- selected: boolean,
394
- shadowRootClonable: boolean,
395
- shadowRootCustomElementRegistry: boolean,
396
- shadowRootDelegatesFocus: boolean,
397
- shadowRootMode: null,
398
- shadowRootSerializable: boolean,
399
- shape: null,
400
- size: number,
401
- sizes: null,
402
- slot: null,
403
- span: number,
404
- spellCheck: booleanish,
405
- src: null,
406
- srcDoc: null,
407
- srcLang: null,
408
- srcSet: null,
409
- start: number,
410
- step: null,
411
- style: null,
412
- tabIndex: number,
413
- target: null,
414
- title: null,
415
- translate: null,
416
- type: null,
417
- typeMustMatch: boolean,
418
- useMap: null,
419
- value: booleanish,
420
- width: number,
421
- wrap: null,
422
- writingSuggestions: null,
423
- // Legacy.
424
- // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis
425
- align: null,
426
- // Several. Use CSS `text-align` instead,
427
- aLink: null,
428
- // `<body>`. Use CSS `a:active {color}` instead
429
- archive: spaceSeparated,
430
- // `<object>`. List of URIs to archives
431
- axis: null,
432
- // `<td>` and `<th>`. Use `scope` on `<th>`
433
- background: null,
434
- // `<body>`. Use CSS `background-image` instead
435
- bgColor: null,
436
- // `<body>` and table elements. Use CSS `background-color` instead
437
- border: number,
438
- // `<table>`. Use CSS `border-width` instead,
439
- borderColor: null,
440
- // `<table>`. Use CSS `border-color` instead,
441
- bottomMargin: number,
442
- // `<body>`
443
- cellPadding: null,
444
- // `<table>`
445
- cellSpacing: null,
446
- // `<table>`
447
- char: null,
448
- // Several table elements. When `align=char`, sets the character to align on
449
- charOff: null,
450
- // Several table elements. When `char`, offsets the alignment
451
- classId: null,
452
- // `<object>`
453
- clear: null,
454
- // `<br>`. Use CSS `clear` instead
455
- code: null,
456
- // `<object>`
457
- codeBase: null,
458
- // `<object>`
459
- codeType: null,
460
- // `<object>`
461
- color: null,
462
- // `<font>` and `<hr>`. Use CSS instead
463
- compact: boolean,
464
- // Lists. Use CSS to reduce space between items instead
465
- declare: boolean,
466
- // `<object>`
467
- event: null,
468
- // `<script>`
469
- face: null,
470
- // `<font>`. Use CSS instead
471
- frame: null,
472
- // `<table>`
473
- frameBorder: null,
474
- // `<iframe>`. Use CSS `border` instead
475
- hSpace: number,
476
- // `<img>` and `<object>`
477
- leftMargin: number,
478
- // `<body>`
479
- link: null,
480
- // `<body>`. Use CSS `a:link {color: *}` instead
481
- longDesc: null,
482
- // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`
483
- lowSrc: null,
484
- // `<img>`. Use a `<picture>`
485
- marginHeight: number,
486
- // `<body>`
487
- marginWidth: number,
488
- // `<body>`
489
- noResize: boolean,
490
- // `<frame>`
491
- noHref: boolean,
492
- // `<area>`. Use no href instead of an explicit `nohref`
493
- noShade: boolean,
494
- // `<hr>`. Use background-color and height instead of borders
495
- noWrap: boolean,
496
- // `<td>` and `<th>`
497
- object: null,
498
- // `<applet>`
499
- profile: null,
500
- // `<head>`
501
- prompt: null,
502
- // `<isindex>`
503
- rev: null,
504
- // `<link>`
505
- rightMargin: number,
506
- // `<body>`
507
- rules: null,
508
- // `<table>`
509
- scheme: null,
510
- // `<meta>`
511
- scrolling: booleanish,
512
- // `<frame>`. Use overflow in the child context
513
- standby: null,
514
- // `<object>`
515
- summary: null,
516
- // `<table>`
517
- text: null,
518
- // `<body>`. Use CSS `color` instead
519
- topMargin: number,
520
- // `<body>`
521
- valueType: null,
522
- // `<param>`
523
- version: null,
524
- // `<html>`. Use a doctype.
525
- vAlign: null,
526
- // Several. Use CSS `vertical-align` instead
527
- vLink: null,
528
- // `<body>`. Use CSS `a:visited {color}` instead
529
- vSpace: number,
530
- // `<img>` and `<object>`
531
- // Non-standard Properties.
532
- allowTransparency: null,
533
- autoCorrect: null,
534
- autoSave: null,
535
- credentialless: boolean,
536
- disablePictureInPicture: boolean,
537
- disableRemotePlayback: boolean,
538
- exportParts: commaSeparated,
539
- part: spaceSeparated,
540
- prefix: null,
541
- property: null,
542
- results: number,
543
- security: null,
544
- unselectable: null
545
- },
546
- space: "html",
547
- transform: caseInsensitiveTransform
548
- }), svg$1 = create({
549
- attributes: {
550
- accentHeight: "accent-height",
551
- alignmentBaseline: "alignment-baseline",
552
- arabicForm: "arabic-form",
553
- baselineShift: "baseline-shift",
554
- capHeight: "cap-height",
555
- className: "class",
556
- clipPath: "clip-path",
557
- clipRule: "clip-rule",
558
- colorInterpolation: "color-interpolation",
559
- colorInterpolationFilters: "color-interpolation-filters",
560
- colorProfile: "color-profile",
561
- colorRendering: "color-rendering",
562
- crossOrigin: "crossorigin",
563
- dataType: "datatype",
564
- dominantBaseline: "dominant-baseline",
565
- enableBackground: "enable-background",
566
- fillOpacity: "fill-opacity",
567
- fillRule: "fill-rule",
568
- floodColor: "flood-color",
569
- floodOpacity: "flood-opacity",
570
- fontFamily: "font-family",
571
- fontSize: "font-size",
572
- fontSizeAdjust: "font-size-adjust",
573
- fontStretch: "font-stretch",
574
- fontStyle: "font-style",
575
- fontVariant: "font-variant",
576
- fontWeight: "font-weight",
577
- glyphName: "glyph-name",
578
- glyphOrientationHorizontal: "glyph-orientation-horizontal",
579
- glyphOrientationVertical: "glyph-orientation-vertical",
580
- hrefLang: "hreflang",
581
- horizAdvX: "horiz-adv-x",
582
- horizOriginX: "horiz-origin-x",
583
- horizOriginY: "horiz-origin-y",
584
- imageRendering: "image-rendering",
585
- letterSpacing: "letter-spacing",
586
- lightingColor: "lighting-color",
587
- markerEnd: "marker-end",
588
- markerMid: "marker-mid",
589
- markerStart: "marker-start",
590
- maskType: "mask-type",
591
- navDown: "nav-down",
592
- navDownLeft: "nav-down-left",
593
- navDownRight: "nav-down-right",
594
- navLeft: "nav-left",
595
- navNext: "nav-next",
596
- navPrev: "nav-prev",
597
- navRight: "nav-right",
598
- navUp: "nav-up",
599
- navUpLeft: "nav-up-left",
600
- navUpRight: "nav-up-right",
601
- onAbort: "onabort",
602
- onActivate: "onactivate",
603
- onAfterPrint: "onafterprint",
604
- onBeforePrint: "onbeforeprint",
605
- onBegin: "onbegin",
606
- onCancel: "oncancel",
607
- onCanPlay: "oncanplay",
608
- onCanPlayThrough: "oncanplaythrough",
609
- onChange: "onchange",
610
- onClick: "onclick",
611
- onClose: "onclose",
612
- onCopy: "oncopy",
613
- onCueChange: "oncuechange",
614
- onCut: "oncut",
615
- onDblClick: "ondblclick",
616
- onDrag: "ondrag",
617
- onDragEnd: "ondragend",
618
- onDragEnter: "ondragenter",
619
- onDragExit: "ondragexit",
620
- onDragLeave: "ondragleave",
621
- onDragOver: "ondragover",
622
- onDragStart: "ondragstart",
623
- onDrop: "ondrop",
624
- onDurationChange: "ondurationchange",
625
- onEmptied: "onemptied",
626
- onEnd: "onend",
627
- onEnded: "onended",
628
- onError: "onerror",
629
- onFocus: "onfocus",
630
- onFocusIn: "onfocusin",
631
- onFocusOut: "onfocusout",
632
- onHashChange: "onhashchange",
633
- onInput: "oninput",
634
- onInvalid: "oninvalid",
635
- onKeyDown: "onkeydown",
636
- onKeyPress: "onkeypress",
637
- onKeyUp: "onkeyup",
638
- onLoad: "onload",
639
- onLoadedData: "onloadeddata",
640
- onLoadedMetadata: "onloadedmetadata",
641
- onLoadStart: "onloadstart",
642
- onMessage: "onmessage",
643
- onMouseDown: "onmousedown",
644
- onMouseEnter: "onmouseenter",
645
- onMouseLeave: "onmouseleave",
646
- onMouseMove: "onmousemove",
647
- onMouseOut: "onmouseout",
648
- onMouseOver: "onmouseover",
649
- onMouseUp: "onmouseup",
650
- onMouseWheel: "onmousewheel",
651
- onOffline: "onoffline",
652
- onOnline: "ononline",
653
- onPageHide: "onpagehide",
654
- onPageShow: "onpageshow",
655
- onPaste: "onpaste",
656
- onPause: "onpause",
657
- onPlay: "onplay",
658
- onPlaying: "onplaying",
659
- onPopState: "onpopstate",
660
- onProgress: "onprogress",
661
- onRateChange: "onratechange",
662
- onRepeat: "onrepeat",
663
- onReset: "onreset",
664
- onResize: "onresize",
665
- onScroll: "onscroll",
666
- onSeeked: "onseeked",
667
- onSeeking: "onseeking",
668
- onSelect: "onselect",
669
- onShow: "onshow",
670
- onStalled: "onstalled",
671
- onStorage: "onstorage",
672
- onSubmit: "onsubmit",
673
- onSuspend: "onsuspend",
674
- onTimeUpdate: "ontimeupdate",
675
- onToggle: "ontoggle",
676
- onUnload: "onunload",
677
- onVolumeChange: "onvolumechange",
678
- onWaiting: "onwaiting",
679
- onZoom: "onzoom",
680
- overlinePosition: "overline-position",
681
- overlineThickness: "overline-thickness",
682
- paintOrder: "paint-order",
683
- panose1: "panose-1",
684
- pointerEvents: "pointer-events",
685
- referrerPolicy: "referrerpolicy",
686
- renderingIntent: "rendering-intent",
687
- shapeRendering: "shape-rendering",
688
- stopColor: "stop-color",
689
- stopOpacity: "stop-opacity",
690
- strikethroughPosition: "strikethrough-position",
691
- strikethroughThickness: "strikethrough-thickness",
692
- strokeDashArray: "stroke-dasharray",
693
- strokeDashOffset: "stroke-dashoffset",
694
- strokeLineCap: "stroke-linecap",
695
- strokeLineJoin: "stroke-linejoin",
696
- strokeMiterLimit: "stroke-miterlimit",
697
- strokeOpacity: "stroke-opacity",
698
- strokeWidth: "stroke-width",
699
- tabIndex: "tabindex",
700
- textAnchor: "text-anchor",
701
- textDecoration: "text-decoration",
702
- textRendering: "text-rendering",
703
- transformOrigin: "transform-origin",
704
- typeOf: "typeof",
705
- underlinePosition: "underline-position",
706
- underlineThickness: "underline-thickness",
707
- unicodeBidi: "unicode-bidi",
708
- unicodeRange: "unicode-range",
709
- unitsPerEm: "units-per-em",
710
- vAlphabetic: "v-alphabetic",
711
- vHanging: "v-hanging",
712
- vIdeographic: "v-ideographic",
713
- vMathematical: "v-mathematical",
714
- vectorEffect: "vector-effect",
715
- vertAdvY: "vert-adv-y",
716
- vertOriginX: "vert-origin-x",
717
- vertOriginY: "vert-origin-y",
718
- wordSpacing: "word-spacing",
719
- writingMode: "writing-mode",
720
- xHeight: "x-height",
721
- // These were camelcased in Tiny. Now lowercased in SVG 2
722
- playbackOrder: "playbackorder",
723
- timelineBegin: "timelinebegin"
724
- },
725
- properties: {
726
- about: commaOrSpaceSeparated,
727
- accentHeight: number,
728
- accumulate: null,
729
- additive: null,
730
- alignmentBaseline: null,
731
- alphabetic: number,
732
- amplitude: number,
733
- arabicForm: null,
734
- ascent: number,
735
- attributeName: null,
736
- attributeType: null,
737
- azimuth: number,
738
- bandwidth: null,
739
- baselineShift: null,
740
- baseFrequency: null,
741
- baseProfile: null,
742
- bbox: null,
743
- begin: null,
744
- bias: number,
745
- by: null,
746
- calcMode: null,
747
- capHeight: number,
748
- className: spaceSeparated,
749
- clip: null,
750
- clipPath: null,
751
- clipPathUnits: null,
752
- clipRule: null,
753
- color: null,
754
- colorInterpolation: null,
755
- colorInterpolationFilters: null,
756
- colorProfile: null,
757
- colorRendering: null,
758
- content: null,
759
- contentScriptType: null,
760
- contentStyleType: null,
761
- crossOrigin: null,
762
- cursor: null,
763
- cx: null,
764
- cy: null,
765
- d: null,
766
- dataType: null,
767
- defaultAction: null,
768
- descent: number,
769
- diffuseConstant: number,
770
- direction: null,
771
- display: null,
772
- dur: null,
773
- divisor: number,
774
- dominantBaseline: null,
775
- download: boolean,
776
- dx: null,
777
- dy: null,
778
- edgeMode: null,
779
- editable: null,
780
- elevation: number,
781
- enableBackground: null,
782
- end: null,
783
- event: null,
784
- exponent: number,
785
- externalResourcesRequired: null,
786
- fill: null,
787
- fillOpacity: number,
788
- fillRule: null,
789
- filter: null,
790
- filterRes: null,
791
- filterUnits: null,
792
- floodColor: null,
793
- floodOpacity: null,
794
- focusable: null,
795
- focusHighlight: null,
796
- fontFamily: null,
797
- fontSize: null,
798
- fontSizeAdjust: null,
799
- fontStretch: null,
800
- fontStyle: null,
801
- fontVariant: null,
802
- fontWeight: null,
803
- format: null,
804
- fr: null,
805
- from: null,
806
- fx: null,
807
- fy: null,
808
- g1: commaSeparated,
809
- g2: commaSeparated,
810
- glyphName: commaSeparated,
811
- glyphOrientationHorizontal: null,
812
- glyphOrientationVertical: null,
813
- glyphRef: null,
814
- gradientTransform: null,
815
- gradientUnits: null,
816
- handler: null,
817
- hanging: number,
818
- hatchContentUnits: null,
819
- hatchUnits: null,
820
- height: null,
821
- href: null,
822
- hrefLang: null,
823
- horizAdvX: number,
824
- horizOriginX: number,
825
- horizOriginY: number,
826
- id: null,
827
- ideographic: number,
828
- imageRendering: null,
829
- initialVisibility: null,
830
- in: null,
831
- in2: null,
832
- intercept: number,
833
- k: number,
834
- k1: number,
835
- k2: number,
836
- k3: number,
837
- k4: number,
838
- kernelMatrix: commaOrSpaceSeparated,
839
- kernelUnitLength: null,
840
- keyPoints: null,
841
- // SEMI_COLON_SEPARATED
842
- keySplines: null,
843
- // SEMI_COLON_SEPARATED
844
- keyTimes: null,
845
- // SEMI_COLON_SEPARATED
846
- kerning: null,
847
- lang: null,
848
- lengthAdjust: null,
849
- letterSpacing: null,
850
- lightingColor: null,
851
- limitingConeAngle: number,
852
- local: null,
853
- markerEnd: null,
854
- markerMid: null,
855
- markerStart: null,
856
- markerHeight: null,
857
- markerUnits: null,
858
- markerWidth: null,
859
- mask: null,
860
- maskContentUnits: null,
861
- maskType: null,
862
- maskUnits: null,
863
- mathematical: null,
864
- max: null,
865
- media: null,
866
- mediaCharacterEncoding: null,
867
- mediaContentEncodings: null,
868
- mediaSize: number,
869
- mediaTime: null,
870
- method: null,
871
- min: null,
872
- mode: null,
873
- name: null,
874
- navDown: null,
875
- navDownLeft: null,
876
- navDownRight: null,
877
- navLeft: null,
878
- navNext: null,
879
- navPrev: null,
880
- navRight: null,
881
- navUp: null,
882
- navUpLeft: null,
883
- navUpRight: null,
884
- numOctaves: null,
885
- observer: null,
886
- offset: null,
887
- onAbort: null,
888
- onActivate: null,
889
- onAfterPrint: null,
890
- onBeforePrint: null,
891
- onBegin: null,
892
- onCancel: null,
893
- onCanPlay: null,
894
- onCanPlayThrough: null,
895
- onChange: null,
896
- onClick: null,
897
- onClose: null,
898
- onCopy: null,
899
- onCueChange: null,
900
- onCut: null,
901
- onDblClick: null,
902
- onDrag: null,
903
- onDragEnd: null,
904
- onDragEnter: null,
905
- onDragExit: null,
906
- onDragLeave: null,
907
- onDragOver: null,
908
- onDragStart: null,
909
- onDrop: null,
910
- onDurationChange: null,
911
- onEmptied: null,
912
- onEnd: null,
913
- onEnded: null,
914
- onError: null,
915
- onFocus: null,
916
- onFocusIn: null,
917
- onFocusOut: null,
918
- onHashChange: null,
919
- onInput: null,
920
- onInvalid: null,
921
- onKeyDown: null,
922
- onKeyPress: null,
923
- onKeyUp: null,
924
- onLoad: null,
925
- onLoadedData: null,
926
- onLoadedMetadata: null,
927
- onLoadStart: null,
928
- onMessage: null,
929
- onMouseDown: null,
930
- onMouseEnter: null,
931
- onMouseLeave: null,
932
- onMouseMove: null,
933
- onMouseOut: null,
934
- onMouseOver: null,
935
- onMouseUp: null,
936
- onMouseWheel: null,
937
- onOffline: null,
938
- onOnline: null,
939
- onPageHide: null,
940
- onPageShow: null,
941
- onPaste: null,
942
- onPause: null,
943
- onPlay: null,
944
- onPlaying: null,
945
- onPopState: null,
946
- onProgress: null,
947
- onRateChange: null,
948
- onRepeat: null,
949
- onReset: null,
950
- onResize: null,
951
- onScroll: null,
952
- onSeeked: null,
953
- onSeeking: null,
954
- onSelect: null,
955
- onShow: null,
956
- onStalled: null,
957
- onStorage: null,
958
- onSubmit: null,
959
- onSuspend: null,
960
- onTimeUpdate: null,
961
- onToggle: null,
962
- onUnload: null,
963
- onVolumeChange: null,
964
- onWaiting: null,
965
- onZoom: null,
966
- opacity: null,
967
- operator: null,
968
- order: null,
969
- orient: null,
970
- orientation: null,
971
- origin: null,
972
- overflow: null,
973
- overlay: null,
974
- overlinePosition: number,
975
- overlineThickness: number,
976
- paintOrder: null,
977
- panose1: null,
978
- path: null,
979
- pathLength: number,
980
- patternContentUnits: null,
981
- patternTransform: null,
982
- patternUnits: null,
983
- phase: null,
984
- ping: spaceSeparated,
985
- pitch: null,
986
- playbackOrder: null,
987
- pointerEvents: null,
988
- points: null,
989
- pointsAtX: number,
990
- pointsAtY: number,
991
- pointsAtZ: number,
992
- preserveAlpha: null,
993
- preserveAspectRatio: null,
994
- primitiveUnits: null,
995
- propagate: null,
996
- property: commaOrSpaceSeparated,
997
- r: null,
998
- radius: null,
999
- referrerPolicy: null,
1000
- refX: null,
1001
- refY: null,
1002
- rel: commaOrSpaceSeparated,
1003
- rev: commaOrSpaceSeparated,
1004
- renderingIntent: null,
1005
- repeatCount: null,
1006
- repeatDur: null,
1007
- requiredExtensions: commaOrSpaceSeparated,
1008
- requiredFeatures: commaOrSpaceSeparated,
1009
- requiredFonts: commaOrSpaceSeparated,
1010
- requiredFormats: commaOrSpaceSeparated,
1011
- resource: null,
1012
- restart: null,
1013
- result: null,
1014
- rotate: null,
1015
- rx: null,
1016
- ry: null,
1017
- scale: null,
1018
- seed: null,
1019
- shapeRendering: null,
1020
- side: null,
1021
- slope: null,
1022
- snapshotTime: null,
1023
- specularConstant: number,
1024
- specularExponent: number,
1025
- spreadMethod: null,
1026
- spacing: null,
1027
- startOffset: null,
1028
- stdDeviation: null,
1029
- stemh: null,
1030
- stemv: null,
1031
- stitchTiles: null,
1032
- stopColor: null,
1033
- stopOpacity: null,
1034
- strikethroughPosition: number,
1035
- strikethroughThickness: number,
1036
- string: null,
1037
- stroke: null,
1038
- strokeDashArray: commaOrSpaceSeparated,
1039
- strokeDashOffset: null,
1040
- strokeLineCap: null,
1041
- strokeLineJoin: null,
1042
- strokeMiterLimit: number,
1043
- strokeOpacity: number,
1044
- strokeWidth: null,
1045
- style: null,
1046
- surfaceScale: number,
1047
- syncBehavior: null,
1048
- syncBehaviorDefault: null,
1049
- syncMaster: null,
1050
- syncTolerance: null,
1051
- syncToleranceDefault: null,
1052
- systemLanguage: commaOrSpaceSeparated,
1053
- tabIndex: number,
1054
- tableValues: null,
1055
- target: null,
1056
- targetX: number,
1057
- targetY: number,
1058
- textAnchor: null,
1059
- textDecoration: null,
1060
- textRendering: null,
1061
- textLength: null,
1062
- timelineBegin: null,
1063
- title: null,
1064
- transformBehavior: null,
1065
- type: null,
1066
- typeOf: commaOrSpaceSeparated,
1067
- to: null,
1068
- transform: null,
1069
- transformOrigin: null,
1070
- u1: null,
1071
- u2: null,
1072
- underlinePosition: number,
1073
- underlineThickness: number,
1074
- unicode: null,
1075
- unicodeBidi: null,
1076
- unicodeRange: null,
1077
- unitsPerEm: number,
1078
- values: null,
1079
- vAlphabetic: number,
1080
- vMathematical: number,
1081
- vectorEffect: null,
1082
- vHanging: number,
1083
- vIdeographic: number,
1084
- version: null,
1085
- vertAdvY: number,
1086
- vertOriginX: number,
1087
- vertOriginY: number,
1088
- viewBox: null,
1089
- viewTarget: null,
1090
- visibility: null,
1091
- width: null,
1092
- widths: null,
1093
- wordSpacing: null,
1094
- writingMode: null,
1095
- x: null,
1096
- x1: null,
1097
- x2: null,
1098
- xChannelSelector: null,
1099
- xHeight: number,
1100
- y: null,
1101
- y1: null,
1102
- y2: null,
1103
- yChannelSelector: null,
1104
- z: null,
1105
- zoomAndPan: null
1106
- },
1107
- space: "svg",
1108
- transform: caseSensitiveTransform
1109
- }), xlink = create({
1110
- properties: {
1111
- xLinkActuate: null,
1112
- xLinkArcRole: null,
1113
- xLinkHref: null,
1114
- xLinkRole: null,
1115
- xLinkShow: null,
1116
- xLinkTitle: null,
1117
- xLinkType: null
1118
- },
1119
- space: "xlink",
1120
- transform(_2, property) {
1121
- return "xlink:" + property.slice(5).toLowerCase();
1122
- }
1123
- }), xmlns = create({
1124
- attributes: { xmlnsxlink: "xmlns:xlink" },
1125
- properties: { xmlnsXLink: null, xmlns: null },
1126
- space: "xmlns",
1127
- transform: caseInsensitiveTransform
1128
- }), xml = create({
1129
- properties: { xmlBase: null, xmlLang: null, xmlSpace: null },
1130
- space: "xml",
1131
- transform(_2, property) {
1132
- return "xml:" + property.slice(3).toLowerCase();
1133
- }
1134
- }), cap = /[A-Z]/g, dash = /-[a-z]/g, valid = /^data[-\w.:]+$/i;
1135
- function find(schema, value) {
1136
- const normal = normalize(value);
1137
- let property = value, Type = Info;
1138
- if (normal in schema.normal)
1139
- return schema.property[schema.normal[normal]];
1140
- if (normal.length > 4 && normal.slice(0, 4) === "data" && valid.test(value)) {
1141
- if (value.charAt(4) === "-") {
1142
- const rest = value.slice(5).replace(dash, camelcase);
1143
- property = "data" + rest.charAt(0).toUpperCase() + rest.slice(1);
1144
- } else {
1145
- const rest = value.slice(4);
1146
- if (!dash.test(rest)) {
1147
- let dashes = rest.replace(cap, kebab);
1148
- dashes.charAt(0) !== "-" && (dashes = "-" + dashes), value = "data" + dashes;
1149
- }
1150
- }
1151
- Type = DefinedInfo;
1152
- }
1153
- return new Type(property, value);
1154
- }
1155
- function kebab($0) {
1156
- return "-" + $0.toLowerCase();
1157
- }
1158
- function camelcase($0) {
1159
- return $0.charAt(1).toUpperCase();
1160
- }
1161
- const html = merge([aria, html$1, xlink, xmlns, xml], "html"), svg = merge([aria, svg$1, xlink, xmlns, xml], "svg");
1162
- function parse$1(value) {
1163
- const tokens = [], input = String(value || "");
1164
- let index = input.indexOf(","), start = 0, end = !1;
1165
- for (; !end; ) {
1166
- index === -1 && (index = input.length, end = !0);
1167
- const token = input.slice(start, index).trim();
1168
- (token || !end) && tokens.push(token), start = index + 1, index = input.indexOf(",", start);
1169
- }
1170
- return tokens;
1171
- }
1172
- const search = /[#.]/g;
1173
- function parseSelector(selector, defaultTagName) {
1174
- const value = selector || "", props = {};
1175
- let start = 0, previous, tagName;
1176
- for (; start < value.length; ) {
1177
- search.lastIndex = start;
1178
- const match = search.exec(value), subvalue = value.slice(start, match ? match.index : value.length);
1179
- subvalue && (previous ? previous === "#" ? props.id = subvalue : Array.isArray(props.className) ? props.className.push(subvalue) : props.className = [subvalue] : tagName = subvalue, start += subvalue.length), match && (previous = match[0], start++);
1180
- }
1181
- return {
1182
- type: "element",
1183
- // @ts-expect-error: tag name is parsed.
1184
- tagName: tagName || defaultTagName || "div",
1185
- properties: props,
1186
- children: []
1187
- };
1188
- }
1189
- function parse(value) {
1190
- const input = String(value || "").trim();
1191
- return input ? input.split(/[ \t\n\r\f]+/g) : [];
1192
- }
1193
- function createH(schema, defaultTagName, caseSensitive) {
1194
- const adjust = caseSensitive ? createAdjustMap(caseSensitive) : void 0;
1195
- function h2(selector, properties, ...children) {
1196
- let node;
1197
- if (selector == null) {
1198
- node = { type: "root", children: [] };
1199
- const child = (
1200
- /** @type {Child} */
1201
- properties
1202
- );
1203
- children.unshift(child);
1204
- } else {
1205
- node = parseSelector(selector, defaultTagName);
1206
- const lower = node.tagName.toLowerCase(), adjusted = adjust ? adjust.get(lower) : void 0;
1207
- if (node.tagName = adjusted || lower, isChild(properties))
1208
- children.unshift(properties);
1209
- else
1210
- for (const [key, value] of Object.entries(properties))
1211
- addProperty(schema, node.properties, key, value);
1212
- }
1213
- for (const child of children)
1214
- addChild(node.children, child);
1215
- return node.type === "element" && node.tagName === "template" && (node.content = { type: "root", children: node.children }, node.children = []), node;
1216
- }
1217
- return h2;
1218
- }
1219
- function isChild(value) {
1220
- if (value === null || typeof value != "object" || Array.isArray(value))
1221
- return !0;
1222
- if (typeof value.type != "string") return !1;
1223
- const record = (
1224
- /** @type {Record<string, unknown>} */
1225
- value
1226
- ), keys = Object.keys(value);
1227
- for (const key of keys) {
1228
- const value2 = record[key];
1229
- if (value2 && typeof value2 == "object") {
1230
- if (!Array.isArray(value2)) return !0;
1231
- const list = (
1232
- /** @type {ReadonlyArray<unknown>} */
1233
- value2
1234
- );
1235
- for (const item of list)
1236
- if (typeof item != "number" && typeof item != "string")
1237
- return !0;
1238
- }
1239
- }
1240
- return !!("children" in value && Array.isArray(value.children));
1241
- }
1242
- function addProperty(schema, properties, key, value) {
1243
- const info = find(schema, key);
1244
- let result;
1245
- if (value != null) {
1246
- if (typeof value == "number") {
1247
- if (Number.isNaN(value)) return;
1248
- result = value;
1249
- } else typeof value == "boolean" ? result = value : typeof value == "string" ? info.spaceSeparated ? result = parse(value) : info.commaSeparated ? result = parse$1(value) : info.commaOrSpaceSeparated ? result = parse(parse$1(value).join(" ")) : result = parsePrimitive(info, info.property, value) : Array.isArray(value) ? result = [...value] : result = info.property === "style" ? style(value) : String(value);
1250
- if (Array.isArray(result)) {
1251
- const finalResult = [];
1252
- for (const item of result)
1253
- finalResult.push(
1254
- /** @type {number | string} */
1255
- parsePrimitive(info, info.property, item)
1256
- );
1257
- result = finalResult;
1258
- }
1259
- info.property === "className" && Array.isArray(properties.className) && (result = properties.className.concat(
1260
- /** @type {Array<number | string> | number | string} */
1261
- result
1262
- )), properties[info.property] = result;
1263
- }
1264
- }
1265
- function addChild(nodes, value) {
1266
- if (value != null) if (typeof value == "number" || typeof value == "string")
1267
- nodes.push({ type: "text", value: String(value) });
1268
- else if (Array.isArray(value))
1269
- for (const child of value)
1270
- addChild(nodes, child);
1271
- else if (typeof value == "object" && "type" in value)
1272
- value.type === "root" ? addChild(nodes, value.children) : nodes.push(value);
1273
- else
1274
- throw new Error("Expected node, nodes, or string, got `" + value + "`");
1275
- }
1276
- function parsePrimitive(info, name, value) {
1277
- if (typeof value == "string") {
1278
- if (info.number && value && !Number.isNaN(Number(value)))
1279
- return Number(value);
1280
- if ((info.boolean || info.overloadedBoolean) && (value === "" || normalize(value) === normalize(name)))
1281
- return !0;
1282
- }
1283
- return value;
1284
- }
1285
- function style(styles) {
1286
- const result = [];
1287
- for (const [key, value] of Object.entries(styles))
1288
- result.push([key, value].join(": "));
1289
- return result.join("; ");
1290
- }
1291
- function createAdjustMap(values) {
1292
- const result = /* @__PURE__ */ new Map();
1293
- for (const value of values)
1294
- result.set(value.toLowerCase(), value);
1295
- return result;
1296
- }
1297
- const svgCaseSensitiveTagNames = [
1298
- "altGlyph",
1299
- "altGlyphDef",
1300
- "altGlyphItem",
1301
- "animateColor",
1302
- "animateMotion",
1303
- "animateTransform",
1304
- "clipPath",
1305
- "feBlend",
1306
- "feColorMatrix",
1307
- "feComponentTransfer",
1308
- "feComposite",
1309
- "feConvolveMatrix",
1310
- "feDiffuseLighting",
1311
- "feDisplacementMap",
1312
- "feDistantLight",
1313
- "feDropShadow",
1314
- "feFlood",
1315
- "feFuncA",
1316
- "feFuncB",
1317
- "feFuncG",
1318
- "feFuncR",
1319
- "feGaussianBlur",
1320
- "feImage",
1321
- "feMerge",
1322
- "feMergeNode",
1323
- "feMorphology",
1324
- "feOffset",
1325
- "fePointLight",
1326
- "feSpecularLighting",
1327
- "feSpotLight",
1328
- "feTile",
1329
- "feTurbulence",
1330
- "foreignObject",
1331
- "glyphRef",
1332
- "linearGradient",
1333
- "radialGradient",
1334
- "solidColor",
1335
- "textArea",
1336
- "textPath"
1337
- ], h = createH(html, "div");
1338
- createH(svg, "g", svgCaseSensitiveTagNames);
1339
- const characterEntitiesLegacy = [
1340
- "AElig",
1341
- "AMP",
1342
- "Aacute",
1343
- "Acirc",
1344
- "Agrave",
1345
- "Aring",
1346
- "Atilde",
1347
- "Auml",
1348
- "COPY",
1349
- "Ccedil",
1350
- "ETH",
1351
- "Eacute",
1352
- "Ecirc",
1353
- "Egrave",
1354
- "Euml",
1355
- "GT",
1356
- "Iacute",
1357
- "Icirc",
1358
- "Igrave",
1359
- "Iuml",
1360
- "LT",
1361
- "Ntilde",
1362
- "Oacute",
1363
- "Ocirc",
1364
- "Ograve",
1365
- "Oslash",
1366
- "Otilde",
1367
- "Ouml",
1368
- "QUOT",
1369
- "REG",
1370
- "THORN",
1371
- "Uacute",
1372
- "Ucirc",
1373
- "Ugrave",
1374
- "Uuml",
1375
- "Yacute",
1376
- "aacute",
1377
- "acirc",
1378
- "acute",
1379
- "aelig",
1380
- "agrave",
1381
- "amp",
1382
- "aring",
1383
- "atilde",
1384
- "auml",
1385
- "brvbar",
1386
- "ccedil",
1387
- "cedil",
1388
- "cent",
1389
- "copy",
1390
- "curren",
1391
- "deg",
1392
- "divide",
1393
- "eacute",
1394
- "ecirc",
1395
- "egrave",
1396
- "eth",
1397
- "euml",
1398
- "frac12",
1399
- "frac14",
1400
- "frac34",
1401
- "gt",
1402
- "iacute",
1403
- "icirc",
1404
- "iexcl",
1405
- "igrave",
1406
- "iquest",
1407
- "iuml",
1408
- "laquo",
1409
- "lt",
1410
- "macr",
1411
- "micro",
1412
- "middot",
1413
- "nbsp",
1414
- "not",
1415
- "ntilde",
1416
- "oacute",
1417
- "ocirc",
1418
- "ograve",
1419
- "ordf",
1420
- "ordm",
1421
- "oslash",
1422
- "otilde",
1423
- "ouml",
1424
- "para",
1425
- "plusmn",
1426
- "pound",
1427
- "quot",
1428
- "raquo",
1429
- "reg",
1430
- "sect",
1431
- "shy",
1432
- "sup1",
1433
- "sup2",
1434
- "sup3",
1435
- "szlig",
1436
- "thorn",
1437
- "times",
1438
- "uacute",
1439
- "ucirc",
1440
- "ugrave",
1441
- "uml",
1442
- "uuml",
1443
- "yacute",
1444
- "yen",
1445
- "yuml"
1446
- ], characterReferenceInvalid = {
1447
- 0: "\uFFFD",
1448
- 128: "\u20AC",
1449
- 130: "\u201A",
1450
- 131: "\u0192",
1451
- 132: "\u201E",
1452
- 133: "\u2026",
1453
- 134: "\u2020",
1454
- 135: "\u2021",
1455
- 136: "\u02C6",
1456
- 137: "\u2030",
1457
- 138: "\u0160",
1458
- 139: "\u2039",
1459
- 140: "\u0152",
1460
- 142: "\u017D",
1461
- 145: "\u2018",
1462
- 146: "\u2019",
1463
- 147: "\u201C",
1464
- 148: "\u201D",
1465
- 149: "\u2022",
1466
- 150: "\u2013",
1467
- 151: "\u2014",
1468
- 152: "\u02DC",
1469
- 153: "\u2122",
1470
- 154: "\u0161",
1471
- 155: "\u203A",
1472
- 156: "\u0153",
1473
- 158: "\u017E",
1474
- 159: "\u0178"
1475
- };
1476
- function isDecimal(character) {
1477
- const code = typeof character == "string" ? character.charCodeAt(0) : character;
1478
- return code >= 48 && code <= 57;
1479
- }
1480
- function isHexadecimal(character) {
1481
- const code = typeof character == "string" ? character.charCodeAt(0) : character;
1482
- return code >= 97 && code <= 102 || code >= 65 && code <= 70 || code >= 48 && code <= 57;
1483
- }
1484
- function isAlphabetical(character) {
1485
- const code = typeof character == "string" ? character.charCodeAt(0) : character;
1486
- return code >= 97 && code <= 122 || code >= 65 && code <= 90;
1487
- }
1488
- function isAlphanumerical(character) {
1489
- return isAlphabetical(character) || isDecimal(character);
1490
- }
1491
- const characterEntities = {
1492
- AElig: "\xC6",
1493
- AMP: "&",
1494
- Aacute: "\xC1",
1495
- Abreve: "\u0102",
1496
- Acirc: "\xC2",
1497
- Acy: "\u0410",
1498
- Afr: "\u{1D504}",
1499
- Agrave: "\xC0",
1500
- Alpha: "\u0391",
1501
- Amacr: "\u0100",
1502
- And: "\u2A53",
1503
- Aogon: "\u0104",
1504
- Aopf: "\u{1D538}",
1505
- ApplyFunction: "\u2061",
1506
- Aring: "\xC5",
1507
- Ascr: "\u{1D49C}",
1508
- Assign: "\u2254",
1509
- Atilde: "\xC3",
1510
- Auml: "\xC4",
1511
- Backslash: "\u2216",
1512
- Barv: "\u2AE7",
1513
- Barwed: "\u2306",
1514
- Bcy: "\u0411",
1515
- Because: "\u2235",
1516
- Bernoullis: "\u212C",
1517
- Beta: "\u0392",
1518
- Bfr: "\u{1D505}",
1519
- Bopf: "\u{1D539}",
1520
- Breve: "\u02D8",
1521
- Bscr: "\u212C",
1522
- Bumpeq: "\u224E",
1523
- CHcy: "\u0427",
1524
- COPY: "\xA9",
1525
- Cacute: "\u0106",
1526
- Cap: "\u22D2",
1527
- CapitalDifferentialD: "\u2145",
1528
- Cayleys: "\u212D",
1529
- Ccaron: "\u010C",
1530
- Ccedil: "\xC7",
1531
- Ccirc: "\u0108",
1532
- Cconint: "\u2230",
1533
- Cdot: "\u010A",
1534
- Cedilla: "\xB8",
1535
- CenterDot: "\xB7",
1536
- Cfr: "\u212D",
1537
- Chi: "\u03A7",
1538
- CircleDot: "\u2299",
1539
- CircleMinus: "\u2296",
1540
- CirclePlus: "\u2295",
1541
- CircleTimes: "\u2297",
1542
- ClockwiseContourIntegral: "\u2232",
1543
- CloseCurlyDoubleQuote: "\u201D",
1544
- CloseCurlyQuote: "\u2019",
1545
- Colon: "\u2237",
1546
- Colone: "\u2A74",
1547
- Congruent: "\u2261",
1548
- Conint: "\u222F",
1549
- ContourIntegral: "\u222E",
1550
- Copf: "\u2102",
1551
- Coproduct: "\u2210",
1552
- CounterClockwiseContourIntegral: "\u2233",
1553
- Cross: "\u2A2F",
1554
- Cscr: "\u{1D49E}",
1555
- Cup: "\u22D3",
1556
- CupCap: "\u224D",
1557
- DD: "\u2145",
1558
- DDotrahd: "\u2911",
1559
- DJcy: "\u0402",
1560
- DScy: "\u0405",
1561
- DZcy: "\u040F",
1562
- Dagger: "\u2021",
1563
- Darr: "\u21A1",
1564
- Dashv: "\u2AE4",
1565
- Dcaron: "\u010E",
1566
- Dcy: "\u0414",
1567
- Del: "\u2207",
1568
- Delta: "\u0394",
1569
- Dfr: "\u{1D507}",
1570
- DiacriticalAcute: "\xB4",
1571
- DiacriticalDot: "\u02D9",
1572
- DiacriticalDoubleAcute: "\u02DD",
1573
- DiacriticalGrave: "`",
1574
- DiacriticalTilde: "\u02DC",
1575
- Diamond: "\u22C4",
1576
- DifferentialD: "\u2146",
1577
- Dopf: "\u{1D53B}",
1578
- Dot: "\xA8",
1579
- DotDot: "\u20DC",
1580
- DotEqual: "\u2250",
1581
- DoubleContourIntegral: "\u222F",
1582
- DoubleDot: "\xA8",
1583
- DoubleDownArrow: "\u21D3",
1584
- DoubleLeftArrow: "\u21D0",
1585
- DoubleLeftRightArrow: "\u21D4",
1586
- DoubleLeftTee: "\u2AE4",
1587
- DoubleLongLeftArrow: "\u27F8",
1588
- DoubleLongLeftRightArrow: "\u27FA",
1589
- DoubleLongRightArrow: "\u27F9",
1590
- DoubleRightArrow: "\u21D2",
1591
- DoubleRightTee: "\u22A8",
1592
- DoubleUpArrow: "\u21D1",
1593
- DoubleUpDownArrow: "\u21D5",
1594
- DoubleVerticalBar: "\u2225",
1595
- DownArrow: "\u2193",
1596
- DownArrowBar: "\u2913",
1597
- DownArrowUpArrow: "\u21F5",
1598
- DownBreve: "\u0311",
1599
- DownLeftRightVector: "\u2950",
1600
- DownLeftTeeVector: "\u295E",
1601
- DownLeftVector: "\u21BD",
1602
- DownLeftVectorBar: "\u2956",
1603
- DownRightTeeVector: "\u295F",
1604
- DownRightVector: "\u21C1",
1605
- DownRightVectorBar: "\u2957",
1606
- DownTee: "\u22A4",
1607
- DownTeeArrow: "\u21A7",
1608
- Downarrow: "\u21D3",
1609
- Dscr: "\u{1D49F}",
1610
- Dstrok: "\u0110",
1611
- ENG: "\u014A",
1612
- ETH: "\xD0",
1613
- Eacute: "\xC9",
1614
- Ecaron: "\u011A",
1615
- Ecirc: "\xCA",
1616
- Ecy: "\u042D",
1617
- Edot: "\u0116",
1618
- Efr: "\u{1D508}",
1619
- Egrave: "\xC8",
1620
- Element: "\u2208",
1621
- Emacr: "\u0112",
1622
- EmptySmallSquare: "\u25FB",
1623
- EmptyVerySmallSquare: "\u25AB",
1624
- Eogon: "\u0118",
1625
- Eopf: "\u{1D53C}",
1626
- Epsilon: "\u0395",
1627
- Equal: "\u2A75",
1628
- EqualTilde: "\u2242",
1629
- Equilibrium: "\u21CC",
1630
- Escr: "\u2130",
1631
- Esim: "\u2A73",
1632
- Eta: "\u0397",
1633
- Euml: "\xCB",
1634
- Exists: "\u2203",
1635
- ExponentialE: "\u2147",
1636
- Fcy: "\u0424",
1637
- Ffr: "\u{1D509}",
1638
- FilledSmallSquare: "\u25FC",
1639
- FilledVerySmallSquare: "\u25AA",
1640
- Fopf: "\u{1D53D}",
1641
- ForAll: "\u2200",
1642
- Fouriertrf: "\u2131",
1643
- Fscr: "\u2131",
1644
- GJcy: "\u0403",
1645
- GT: ">",
1646
- Gamma: "\u0393",
1647
- Gammad: "\u03DC",
1648
- Gbreve: "\u011E",
1649
- Gcedil: "\u0122",
1650
- Gcirc: "\u011C",
1651
- Gcy: "\u0413",
1652
- Gdot: "\u0120",
1653
- Gfr: "\u{1D50A}",
1654
- Gg: "\u22D9",
1655
- Gopf: "\u{1D53E}",
1656
- GreaterEqual: "\u2265",
1657
- GreaterEqualLess: "\u22DB",
1658
- GreaterFullEqual: "\u2267",
1659
- GreaterGreater: "\u2AA2",
1660
- GreaterLess: "\u2277",
1661
- GreaterSlantEqual: "\u2A7E",
1662
- GreaterTilde: "\u2273",
1663
- Gscr: "\u{1D4A2}",
1664
- Gt: "\u226B",
1665
- HARDcy: "\u042A",
1666
- Hacek: "\u02C7",
1667
- Hat: "^",
1668
- Hcirc: "\u0124",
1669
- Hfr: "\u210C",
1670
- HilbertSpace: "\u210B",
1671
- Hopf: "\u210D",
1672
- HorizontalLine: "\u2500",
1673
- Hscr: "\u210B",
1674
- Hstrok: "\u0126",
1675
- HumpDownHump: "\u224E",
1676
- HumpEqual: "\u224F",
1677
- IEcy: "\u0415",
1678
- IJlig: "\u0132",
1679
- IOcy: "\u0401",
1680
- Iacute: "\xCD",
1681
- Icirc: "\xCE",
1682
- Icy: "\u0418",
1683
- Idot: "\u0130",
1684
- Ifr: "\u2111",
1685
- Igrave: "\xCC",
1686
- Im: "\u2111",
1687
- Imacr: "\u012A",
1688
- ImaginaryI: "\u2148",
1689
- Implies: "\u21D2",
1690
- Int: "\u222C",
1691
- Integral: "\u222B",
1692
- Intersection: "\u22C2",
1693
- InvisibleComma: "\u2063",
1694
- InvisibleTimes: "\u2062",
1695
- Iogon: "\u012E",
1696
- Iopf: "\u{1D540}",
1697
- Iota: "\u0399",
1698
- Iscr: "\u2110",
1699
- Itilde: "\u0128",
1700
- Iukcy: "\u0406",
1701
- Iuml: "\xCF",
1702
- Jcirc: "\u0134",
1703
- Jcy: "\u0419",
1704
- Jfr: "\u{1D50D}",
1705
- Jopf: "\u{1D541}",
1706
- Jscr: "\u{1D4A5}",
1707
- Jsercy: "\u0408",
1708
- Jukcy: "\u0404",
1709
- KHcy: "\u0425",
1710
- KJcy: "\u040C",
1711
- Kappa: "\u039A",
1712
- Kcedil: "\u0136",
1713
- Kcy: "\u041A",
1714
- Kfr: "\u{1D50E}",
1715
- Kopf: "\u{1D542}",
1716
- Kscr: "\u{1D4A6}",
1717
- LJcy: "\u0409",
1718
- LT: "<",
1719
- Lacute: "\u0139",
1720
- Lambda: "\u039B",
1721
- Lang: "\u27EA",
1722
- Laplacetrf: "\u2112",
1723
- Larr: "\u219E",
1724
- Lcaron: "\u013D",
1725
- Lcedil: "\u013B",
1726
- Lcy: "\u041B",
1727
- LeftAngleBracket: "\u27E8",
1728
- LeftArrow: "\u2190",
1729
- LeftArrowBar: "\u21E4",
1730
- LeftArrowRightArrow: "\u21C6",
1731
- LeftCeiling: "\u2308",
1732
- LeftDoubleBracket: "\u27E6",
1733
- LeftDownTeeVector: "\u2961",
1734
- LeftDownVector: "\u21C3",
1735
- LeftDownVectorBar: "\u2959",
1736
- LeftFloor: "\u230A",
1737
- LeftRightArrow: "\u2194",
1738
- LeftRightVector: "\u294E",
1739
- LeftTee: "\u22A3",
1740
- LeftTeeArrow: "\u21A4",
1741
- LeftTeeVector: "\u295A",
1742
- LeftTriangle: "\u22B2",
1743
- LeftTriangleBar: "\u29CF",
1744
- LeftTriangleEqual: "\u22B4",
1745
- LeftUpDownVector: "\u2951",
1746
- LeftUpTeeVector: "\u2960",
1747
- LeftUpVector: "\u21BF",
1748
- LeftUpVectorBar: "\u2958",
1749
- LeftVector: "\u21BC",
1750
- LeftVectorBar: "\u2952",
1751
- Leftarrow: "\u21D0",
1752
- Leftrightarrow: "\u21D4",
1753
- LessEqualGreater: "\u22DA",
1754
- LessFullEqual: "\u2266",
1755
- LessGreater: "\u2276",
1756
- LessLess: "\u2AA1",
1757
- LessSlantEqual: "\u2A7D",
1758
- LessTilde: "\u2272",
1759
- Lfr: "\u{1D50F}",
1760
- Ll: "\u22D8",
1761
- Lleftarrow: "\u21DA",
1762
- Lmidot: "\u013F",
1763
- LongLeftArrow: "\u27F5",
1764
- LongLeftRightArrow: "\u27F7",
1765
- LongRightArrow: "\u27F6",
1766
- Longleftarrow: "\u27F8",
1767
- Longleftrightarrow: "\u27FA",
1768
- Longrightarrow: "\u27F9",
1769
- Lopf: "\u{1D543}",
1770
- LowerLeftArrow: "\u2199",
1771
- LowerRightArrow: "\u2198",
1772
- Lscr: "\u2112",
1773
- Lsh: "\u21B0",
1774
- Lstrok: "\u0141",
1775
- Lt: "\u226A",
1776
- Map: "\u2905",
1777
- Mcy: "\u041C",
1778
- MediumSpace: "\u205F",
1779
- Mellintrf: "\u2133",
1780
- Mfr: "\u{1D510}",
1781
- MinusPlus: "\u2213",
1782
- Mopf: "\u{1D544}",
1783
- Mscr: "\u2133",
1784
- Mu: "\u039C",
1785
- NJcy: "\u040A",
1786
- Nacute: "\u0143",
1787
- Ncaron: "\u0147",
1788
- Ncedil: "\u0145",
1789
- Ncy: "\u041D",
1790
- NegativeMediumSpace: "\u200B",
1791
- NegativeThickSpace: "\u200B",
1792
- NegativeThinSpace: "\u200B",
1793
- NegativeVeryThinSpace: "\u200B",
1794
- NestedGreaterGreater: "\u226B",
1795
- NestedLessLess: "\u226A",
1796
- NewLine: `
1797
- `,
1798
- Nfr: "\u{1D511}",
1799
- NoBreak: "\u2060",
1800
- NonBreakingSpace: "\xA0",
1801
- Nopf: "\u2115",
1802
- Not: "\u2AEC",
1803
- NotCongruent: "\u2262",
1804
- NotCupCap: "\u226D",
1805
- NotDoubleVerticalBar: "\u2226",
1806
- NotElement: "\u2209",
1807
- NotEqual: "\u2260",
1808
- NotEqualTilde: "\u2242\u0338",
1809
- NotExists: "\u2204",
1810
- NotGreater: "\u226F",
1811
- NotGreaterEqual: "\u2271",
1812
- NotGreaterFullEqual: "\u2267\u0338",
1813
- NotGreaterGreater: "\u226B\u0338",
1814
- NotGreaterLess: "\u2279",
1815
- NotGreaterSlantEqual: "\u2A7E\u0338",
1816
- NotGreaterTilde: "\u2275",
1817
- NotHumpDownHump: "\u224E\u0338",
1818
- NotHumpEqual: "\u224F\u0338",
1819
- NotLeftTriangle: "\u22EA",
1820
- NotLeftTriangleBar: "\u29CF\u0338",
1821
- NotLeftTriangleEqual: "\u22EC",
1822
- NotLess: "\u226E",
1823
- NotLessEqual: "\u2270",
1824
- NotLessGreater: "\u2278",
1825
- NotLessLess: "\u226A\u0338",
1826
- NotLessSlantEqual: "\u2A7D\u0338",
1827
- NotLessTilde: "\u2274",
1828
- NotNestedGreaterGreater: "\u2AA2\u0338",
1829
- NotNestedLessLess: "\u2AA1\u0338",
1830
- NotPrecedes: "\u2280",
1831
- NotPrecedesEqual: "\u2AAF\u0338",
1832
- NotPrecedesSlantEqual: "\u22E0",
1833
- NotReverseElement: "\u220C",
1834
- NotRightTriangle: "\u22EB",
1835
- NotRightTriangleBar: "\u29D0\u0338",
1836
- NotRightTriangleEqual: "\u22ED",
1837
- NotSquareSubset: "\u228F\u0338",
1838
- NotSquareSubsetEqual: "\u22E2",
1839
- NotSquareSuperset: "\u2290\u0338",
1840
- NotSquareSupersetEqual: "\u22E3",
1841
- NotSubset: "\u2282\u20D2",
1842
- NotSubsetEqual: "\u2288",
1843
- NotSucceeds: "\u2281",
1844
- NotSucceedsEqual: "\u2AB0\u0338",
1845
- NotSucceedsSlantEqual: "\u22E1",
1846
- NotSucceedsTilde: "\u227F\u0338",
1847
- NotSuperset: "\u2283\u20D2",
1848
- NotSupersetEqual: "\u2289",
1849
- NotTilde: "\u2241",
1850
- NotTildeEqual: "\u2244",
1851
- NotTildeFullEqual: "\u2247",
1852
- NotTildeTilde: "\u2249",
1853
- NotVerticalBar: "\u2224",
1854
- Nscr: "\u{1D4A9}",
1855
- Ntilde: "\xD1",
1856
- Nu: "\u039D",
1857
- OElig: "\u0152",
1858
- Oacute: "\xD3",
1859
- Ocirc: "\xD4",
1860
- Ocy: "\u041E",
1861
- Odblac: "\u0150",
1862
- Ofr: "\u{1D512}",
1863
- Ograve: "\xD2",
1864
- Omacr: "\u014C",
1865
- Omega: "\u03A9",
1866
- Omicron: "\u039F",
1867
- Oopf: "\u{1D546}",
1868
- OpenCurlyDoubleQuote: "\u201C",
1869
- OpenCurlyQuote: "\u2018",
1870
- Or: "\u2A54",
1871
- Oscr: "\u{1D4AA}",
1872
- Oslash: "\xD8",
1873
- Otilde: "\xD5",
1874
- Otimes: "\u2A37",
1875
- Ouml: "\xD6",
1876
- OverBar: "\u203E",
1877
- OverBrace: "\u23DE",
1878
- OverBracket: "\u23B4",
1879
- OverParenthesis: "\u23DC",
1880
- PartialD: "\u2202",
1881
- Pcy: "\u041F",
1882
- Pfr: "\u{1D513}",
1883
- Phi: "\u03A6",
1884
- Pi: "\u03A0",
1885
- PlusMinus: "\xB1",
1886
- Poincareplane: "\u210C",
1887
- Popf: "\u2119",
1888
- Pr: "\u2ABB",
1889
- Precedes: "\u227A",
1890
- PrecedesEqual: "\u2AAF",
1891
- PrecedesSlantEqual: "\u227C",
1892
- PrecedesTilde: "\u227E",
1893
- Prime: "\u2033",
1894
- Product: "\u220F",
1895
- Proportion: "\u2237",
1896
- Proportional: "\u221D",
1897
- Pscr: "\u{1D4AB}",
1898
- Psi: "\u03A8",
1899
- QUOT: '"',
1900
- Qfr: "\u{1D514}",
1901
- Qopf: "\u211A",
1902
- Qscr: "\u{1D4AC}",
1903
- RBarr: "\u2910",
1904
- REG: "\xAE",
1905
- Racute: "\u0154",
1906
- Rang: "\u27EB",
1907
- Rarr: "\u21A0",
1908
- Rarrtl: "\u2916",
1909
- Rcaron: "\u0158",
1910
- Rcedil: "\u0156",
1911
- Rcy: "\u0420",
1912
- Re: "\u211C",
1913
- ReverseElement: "\u220B",
1914
- ReverseEquilibrium: "\u21CB",
1915
- ReverseUpEquilibrium: "\u296F",
1916
- Rfr: "\u211C",
1917
- Rho: "\u03A1",
1918
- RightAngleBracket: "\u27E9",
1919
- RightArrow: "\u2192",
1920
- RightArrowBar: "\u21E5",
1921
- RightArrowLeftArrow: "\u21C4",
1922
- RightCeiling: "\u2309",
1923
- RightDoubleBracket: "\u27E7",
1924
- RightDownTeeVector: "\u295D",
1925
- RightDownVector: "\u21C2",
1926
- RightDownVectorBar: "\u2955",
1927
- RightFloor: "\u230B",
1928
- RightTee: "\u22A2",
1929
- RightTeeArrow: "\u21A6",
1930
- RightTeeVector: "\u295B",
1931
- RightTriangle: "\u22B3",
1932
- RightTriangleBar: "\u29D0",
1933
- RightTriangleEqual: "\u22B5",
1934
- RightUpDownVector: "\u294F",
1935
- RightUpTeeVector: "\u295C",
1936
- RightUpVector: "\u21BE",
1937
- RightUpVectorBar: "\u2954",
1938
- RightVector: "\u21C0",
1939
- RightVectorBar: "\u2953",
1940
- Rightarrow: "\u21D2",
1941
- Ropf: "\u211D",
1942
- RoundImplies: "\u2970",
1943
- Rrightarrow: "\u21DB",
1944
- Rscr: "\u211B",
1945
- Rsh: "\u21B1",
1946
- RuleDelayed: "\u29F4",
1947
- SHCHcy: "\u0429",
1948
- SHcy: "\u0428",
1949
- SOFTcy: "\u042C",
1950
- Sacute: "\u015A",
1951
- Sc: "\u2ABC",
1952
- Scaron: "\u0160",
1953
- Scedil: "\u015E",
1954
- Scirc: "\u015C",
1955
- Scy: "\u0421",
1956
- Sfr: "\u{1D516}",
1957
- ShortDownArrow: "\u2193",
1958
- ShortLeftArrow: "\u2190",
1959
- ShortRightArrow: "\u2192",
1960
- ShortUpArrow: "\u2191",
1961
- Sigma: "\u03A3",
1962
- SmallCircle: "\u2218",
1963
- Sopf: "\u{1D54A}",
1964
- Sqrt: "\u221A",
1965
- Square: "\u25A1",
1966
- SquareIntersection: "\u2293",
1967
- SquareSubset: "\u228F",
1968
- SquareSubsetEqual: "\u2291",
1969
- SquareSuperset: "\u2290",
1970
- SquareSupersetEqual: "\u2292",
1971
- SquareUnion: "\u2294",
1972
- Sscr: "\u{1D4AE}",
1973
- Star: "\u22C6",
1974
- Sub: "\u22D0",
1975
- Subset: "\u22D0",
1976
- SubsetEqual: "\u2286",
1977
- Succeeds: "\u227B",
1978
- SucceedsEqual: "\u2AB0",
1979
- SucceedsSlantEqual: "\u227D",
1980
- SucceedsTilde: "\u227F",
1981
- SuchThat: "\u220B",
1982
- Sum: "\u2211",
1983
- Sup: "\u22D1",
1984
- Superset: "\u2283",
1985
- SupersetEqual: "\u2287",
1986
- Supset: "\u22D1",
1987
- THORN: "\xDE",
1988
- TRADE: "\u2122",
1989
- TSHcy: "\u040B",
1990
- TScy: "\u0426",
1991
- Tab: " ",
1992
- Tau: "\u03A4",
1993
- Tcaron: "\u0164",
1994
- Tcedil: "\u0162",
1995
- Tcy: "\u0422",
1996
- Tfr: "\u{1D517}",
1997
- Therefore: "\u2234",
1998
- Theta: "\u0398",
1999
- ThickSpace: "\u205F\u200A",
2000
- ThinSpace: "\u2009",
2001
- Tilde: "\u223C",
2002
- TildeEqual: "\u2243",
2003
- TildeFullEqual: "\u2245",
2004
- TildeTilde: "\u2248",
2005
- Topf: "\u{1D54B}",
2006
- TripleDot: "\u20DB",
2007
- Tscr: "\u{1D4AF}",
2008
- Tstrok: "\u0166",
2009
- Uacute: "\xDA",
2010
- Uarr: "\u219F",
2011
- Uarrocir: "\u2949",
2012
- Ubrcy: "\u040E",
2013
- Ubreve: "\u016C",
2014
- Ucirc: "\xDB",
2015
- Ucy: "\u0423",
2016
- Udblac: "\u0170",
2017
- Ufr: "\u{1D518}",
2018
- Ugrave: "\xD9",
2019
- Umacr: "\u016A",
2020
- UnderBar: "_",
2021
- UnderBrace: "\u23DF",
2022
- UnderBracket: "\u23B5",
2023
- UnderParenthesis: "\u23DD",
2024
- Union: "\u22C3",
2025
- UnionPlus: "\u228E",
2026
- Uogon: "\u0172",
2027
- Uopf: "\u{1D54C}",
2028
- UpArrow: "\u2191",
2029
- UpArrowBar: "\u2912",
2030
- UpArrowDownArrow: "\u21C5",
2031
- UpDownArrow: "\u2195",
2032
- UpEquilibrium: "\u296E",
2033
- UpTee: "\u22A5",
2034
- UpTeeArrow: "\u21A5",
2035
- Uparrow: "\u21D1",
2036
- Updownarrow: "\u21D5",
2037
- UpperLeftArrow: "\u2196",
2038
- UpperRightArrow: "\u2197",
2039
- Upsi: "\u03D2",
2040
- Upsilon: "\u03A5",
2041
- Uring: "\u016E",
2042
- Uscr: "\u{1D4B0}",
2043
- Utilde: "\u0168",
2044
- Uuml: "\xDC",
2045
- VDash: "\u22AB",
2046
- Vbar: "\u2AEB",
2047
- Vcy: "\u0412",
2048
- Vdash: "\u22A9",
2049
- Vdashl: "\u2AE6",
2050
- Vee: "\u22C1",
2051
- Verbar: "\u2016",
2052
- Vert: "\u2016",
2053
- VerticalBar: "\u2223",
2054
- VerticalLine: "|",
2055
- VerticalSeparator: "\u2758",
2056
- VerticalTilde: "\u2240",
2057
- VeryThinSpace: "\u200A",
2058
- Vfr: "\u{1D519}",
2059
- Vopf: "\u{1D54D}",
2060
- Vscr: "\u{1D4B1}",
2061
- Vvdash: "\u22AA",
2062
- Wcirc: "\u0174",
2063
- Wedge: "\u22C0",
2064
- Wfr: "\u{1D51A}",
2065
- Wopf: "\u{1D54E}",
2066
- Wscr: "\u{1D4B2}",
2067
- Xfr: "\u{1D51B}",
2068
- Xi: "\u039E",
2069
- Xopf: "\u{1D54F}",
2070
- Xscr: "\u{1D4B3}",
2071
- YAcy: "\u042F",
2072
- YIcy: "\u0407",
2073
- YUcy: "\u042E",
2074
- Yacute: "\xDD",
2075
- Ycirc: "\u0176",
2076
- Ycy: "\u042B",
2077
- Yfr: "\u{1D51C}",
2078
- Yopf: "\u{1D550}",
2079
- Yscr: "\u{1D4B4}",
2080
- Yuml: "\u0178",
2081
- ZHcy: "\u0416",
2082
- Zacute: "\u0179",
2083
- Zcaron: "\u017D",
2084
- Zcy: "\u0417",
2085
- Zdot: "\u017B",
2086
- ZeroWidthSpace: "\u200B",
2087
- Zeta: "\u0396",
2088
- Zfr: "\u2128",
2089
- Zopf: "\u2124",
2090
- Zscr: "\u{1D4B5}",
2091
- aacute: "\xE1",
2092
- abreve: "\u0103",
2093
- ac: "\u223E",
2094
- acE: "\u223E\u0333",
2095
- acd: "\u223F",
2096
- acirc: "\xE2",
2097
- acute: "\xB4",
2098
- acy: "\u0430",
2099
- aelig: "\xE6",
2100
- af: "\u2061",
2101
- afr: "\u{1D51E}",
2102
- agrave: "\xE0",
2103
- alefsym: "\u2135",
2104
- aleph: "\u2135",
2105
- alpha: "\u03B1",
2106
- amacr: "\u0101",
2107
- amalg: "\u2A3F",
2108
- amp: "&",
2109
- and: "\u2227",
2110
- andand: "\u2A55",
2111
- andd: "\u2A5C",
2112
- andslope: "\u2A58",
2113
- andv: "\u2A5A",
2114
- ang: "\u2220",
2115
- ange: "\u29A4",
2116
- angle: "\u2220",
2117
- angmsd: "\u2221",
2118
- angmsdaa: "\u29A8",
2119
- angmsdab: "\u29A9",
2120
- angmsdac: "\u29AA",
2121
- angmsdad: "\u29AB",
2122
- angmsdae: "\u29AC",
2123
- angmsdaf: "\u29AD",
2124
- angmsdag: "\u29AE",
2125
- angmsdah: "\u29AF",
2126
- angrt: "\u221F",
2127
- angrtvb: "\u22BE",
2128
- angrtvbd: "\u299D",
2129
- angsph: "\u2222",
2130
- angst: "\xC5",
2131
- angzarr: "\u237C",
2132
- aogon: "\u0105",
2133
- aopf: "\u{1D552}",
2134
- ap: "\u2248",
2135
- apE: "\u2A70",
2136
- apacir: "\u2A6F",
2137
- ape: "\u224A",
2138
- apid: "\u224B",
2139
- apos: "'",
2140
- approx: "\u2248",
2141
- approxeq: "\u224A",
2142
- aring: "\xE5",
2143
- ascr: "\u{1D4B6}",
2144
- ast: "*",
2145
- asymp: "\u2248",
2146
- asympeq: "\u224D",
2147
- atilde: "\xE3",
2148
- auml: "\xE4",
2149
- awconint: "\u2233",
2150
- awint: "\u2A11",
2151
- bNot: "\u2AED",
2152
- backcong: "\u224C",
2153
- backepsilon: "\u03F6",
2154
- backprime: "\u2035",
2155
- backsim: "\u223D",
2156
- backsimeq: "\u22CD",
2157
- barvee: "\u22BD",
2158
- barwed: "\u2305",
2159
- barwedge: "\u2305",
2160
- bbrk: "\u23B5",
2161
- bbrktbrk: "\u23B6",
2162
- bcong: "\u224C",
2163
- bcy: "\u0431",
2164
- bdquo: "\u201E",
2165
- becaus: "\u2235",
2166
- because: "\u2235",
2167
- bemptyv: "\u29B0",
2168
- bepsi: "\u03F6",
2169
- bernou: "\u212C",
2170
- beta: "\u03B2",
2171
- beth: "\u2136",
2172
- between: "\u226C",
2173
- bfr: "\u{1D51F}",
2174
- bigcap: "\u22C2",
2175
- bigcirc: "\u25EF",
2176
- bigcup: "\u22C3",
2177
- bigodot: "\u2A00",
2178
- bigoplus: "\u2A01",
2179
- bigotimes: "\u2A02",
2180
- bigsqcup: "\u2A06",
2181
- bigstar: "\u2605",
2182
- bigtriangledown: "\u25BD",
2183
- bigtriangleup: "\u25B3",
2184
- biguplus: "\u2A04",
2185
- bigvee: "\u22C1",
2186
- bigwedge: "\u22C0",
2187
- bkarow: "\u290D",
2188
- blacklozenge: "\u29EB",
2189
- blacksquare: "\u25AA",
2190
- blacktriangle: "\u25B4",
2191
- blacktriangledown: "\u25BE",
2192
- blacktriangleleft: "\u25C2",
2193
- blacktriangleright: "\u25B8",
2194
- blank: "\u2423",
2195
- blk12: "\u2592",
2196
- blk14: "\u2591",
2197
- blk34: "\u2593",
2198
- block: "\u2588",
2199
- bne: "=\u20E5",
2200
- bnequiv: "\u2261\u20E5",
2201
- bnot: "\u2310",
2202
- bopf: "\u{1D553}",
2203
- bot: "\u22A5",
2204
- bottom: "\u22A5",
2205
- bowtie: "\u22C8",
2206
- boxDL: "\u2557",
2207
- boxDR: "\u2554",
2208
- boxDl: "\u2556",
2209
- boxDr: "\u2553",
2210
- boxH: "\u2550",
2211
- boxHD: "\u2566",
2212
- boxHU: "\u2569",
2213
- boxHd: "\u2564",
2214
- boxHu: "\u2567",
2215
- boxUL: "\u255D",
2216
- boxUR: "\u255A",
2217
- boxUl: "\u255C",
2218
- boxUr: "\u2559",
2219
- boxV: "\u2551",
2220
- boxVH: "\u256C",
2221
- boxVL: "\u2563",
2222
- boxVR: "\u2560",
2223
- boxVh: "\u256B",
2224
- boxVl: "\u2562",
2225
- boxVr: "\u255F",
2226
- boxbox: "\u29C9",
2227
- boxdL: "\u2555",
2228
- boxdR: "\u2552",
2229
- boxdl: "\u2510",
2230
- boxdr: "\u250C",
2231
- boxh: "\u2500",
2232
- boxhD: "\u2565",
2233
- boxhU: "\u2568",
2234
- boxhd: "\u252C",
2235
- boxhu: "\u2534",
2236
- boxminus: "\u229F",
2237
- boxplus: "\u229E",
2238
- boxtimes: "\u22A0",
2239
- boxuL: "\u255B",
2240
- boxuR: "\u2558",
2241
- boxul: "\u2518",
2242
- boxur: "\u2514",
2243
- boxv: "\u2502",
2244
- boxvH: "\u256A",
2245
- boxvL: "\u2561",
2246
- boxvR: "\u255E",
2247
- boxvh: "\u253C",
2248
- boxvl: "\u2524",
2249
- boxvr: "\u251C",
2250
- bprime: "\u2035",
2251
- breve: "\u02D8",
2252
- brvbar: "\xA6",
2253
- bscr: "\u{1D4B7}",
2254
- bsemi: "\u204F",
2255
- bsim: "\u223D",
2256
- bsime: "\u22CD",
2257
- bsol: "\\",
2258
- bsolb: "\u29C5",
2259
- bsolhsub: "\u27C8",
2260
- bull: "\u2022",
2261
- bullet: "\u2022",
2262
- bump: "\u224E",
2263
- bumpE: "\u2AAE",
2264
- bumpe: "\u224F",
2265
- bumpeq: "\u224F",
2266
- cacute: "\u0107",
2267
- cap: "\u2229",
2268
- capand: "\u2A44",
2269
- capbrcup: "\u2A49",
2270
- capcap: "\u2A4B",
2271
- capcup: "\u2A47",
2272
- capdot: "\u2A40",
2273
- caps: "\u2229\uFE00",
2274
- caret: "\u2041",
2275
- caron: "\u02C7",
2276
- ccaps: "\u2A4D",
2277
- ccaron: "\u010D",
2278
- ccedil: "\xE7",
2279
- ccirc: "\u0109",
2280
- ccups: "\u2A4C",
2281
- ccupssm: "\u2A50",
2282
- cdot: "\u010B",
2283
- cedil: "\xB8",
2284
- cemptyv: "\u29B2",
2285
- cent: "\xA2",
2286
- centerdot: "\xB7",
2287
- cfr: "\u{1D520}",
2288
- chcy: "\u0447",
2289
- check: "\u2713",
2290
- checkmark: "\u2713",
2291
- chi: "\u03C7",
2292
- cir: "\u25CB",
2293
- cirE: "\u29C3",
2294
- circ: "\u02C6",
2295
- circeq: "\u2257",
2296
- circlearrowleft: "\u21BA",
2297
- circlearrowright: "\u21BB",
2298
- circledR: "\xAE",
2299
- circledS: "\u24C8",
2300
- circledast: "\u229B",
2301
- circledcirc: "\u229A",
2302
- circleddash: "\u229D",
2303
- cire: "\u2257",
2304
- cirfnint: "\u2A10",
2305
- cirmid: "\u2AEF",
2306
- cirscir: "\u29C2",
2307
- clubs: "\u2663",
2308
- clubsuit: "\u2663",
2309
- colon: ":",
2310
- colone: "\u2254",
2311
- coloneq: "\u2254",
2312
- comma: ",",
2313
- commat: "@",
2314
- comp: "\u2201",
2315
- compfn: "\u2218",
2316
- complement: "\u2201",
2317
- complexes: "\u2102",
2318
- cong: "\u2245",
2319
- congdot: "\u2A6D",
2320
- conint: "\u222E",
2321
- copf: "\u{1D554}",
2322
- coprod: "\u2210",
2323
- copy: "\xA9",
2324
- copysr: "\u2117",
2325
- crarr: "\u21B5",
2326
- cross: "\u2717",
2327
- cscr: "\u{1D4B8}",
2328
- csub: "\u2ACF",
2329
- csube: "\u2AD1",
2330
- csup: "\u2AD0",
2331
- csupe: "\u2AD2",
2332
- ctdot: "\u22EF",
2333
- cudarrl: "\u2938",
2334
- cudarrr: "\u2935",
2335
- cuepr: "\u22DE",
2336
- cuesc: "\u22DF",
2337
- cularr: "\u21B6",
2338
- cularrp: "\u293D",
2339
- cup: "\u222A",
2340
- cupbrcap: "\u2A48",
2341
- cupcap: "\u2A46",
2342
- cupcup: "\u2A4A",
2343
- cupdot: "\u228D",
2344
- cupor: "\u2A45",
2345
- cups: "\u222A\uFE00",
2346
- curarr: "\u21B7",
2347
- curarrm: "\u293C",
2348
- curlyeqprec: "\u22DE",
2349
- curlyeqsucc: "\u22DF",
2350
- curlyvee: "\u22CE",
2351
- curlywedge: "\u22CF",
2352
- curren: "\xA4",
2353
- curvearrowleft: "\u21B6",
2354
- curvearrowright: "\u21B7",
2355
- cuvee: "\u22CE",
2356
- cuwed: "\u22CF",
2357
- cwconint: "\u2232",
2358
- cwint: "\u2231",
2359
- cylcty: "\u232D",
2360
- dArr: "\u21D3",
2361
- dHar: "\u2965",
2362
- dagger: "\u2020",
2363
- daleth: "\u2138",
2364
- darr: "\u2193",
2365
- dash: "\u2010",
2366
- dashv: "\u22A3",
2367
- dbkarow: "\u290F",
2368
- dblac: "\u02DD",
2369
- dcaron: "\u010F",
2370
- dcy: "\u0434",
2371
- dd: "\u2146",
2372
- ddagger: "\u2021",
2373
- ddarr: "\u21CA",
2374
- ddotseq: "\u2A77",
2375
- deg: "\xB0",
2376
- delta: "\u03B4",
2377
- demptyv: "\u29B1",
2378
- dfisht: "\u297F",
2379
- dfr: "\u{1D521}",
2380
- dharl: "\u21C3",
2381
- dharr: "\u21C2",
2382
- diam: "\u22C4",
2383
- diamond: "\u22C4",
2384
- diamondsuit: "\u2666",
2385
- diams: "\u2666",
2386
- die: "\xA8",
2387
- digamma: "\u03DD",
2388
- disin: "\u22F2",
2389
- div: "\xF7",
2390
- divide: "\xF7",
2391
- divideontimes: "\u22C7",
2392
- divonx: "\u22C7",
2393
- djcy: "\u0452",
2394
- dlcorn: "\u231E",
2395
- dlcrop: "\u230D",
2396
- dollar: "$",
2397
- dopf: "\u{1D555}",
2398
- dot: "\u02D9",
2399
- doteq: "\u2250",
2400
- doteqdot: "\u2251",
2401
- dotminus: "\u2238",
2402
- dotplus: "\u2214",
2403
- dotsquare: "\u22A1",
2404
- doublebarwedge: "\u2306",
2405
- downarrow: "\u2193",
2406
- downdownarrows: "\u21CA",
2407
- downharpoonleft: "\u21C3",
2408
- downharpoonright: "\u21C2",
2409
- drbkarow: "\u2910",
2410
- drcorn: "\u231F",
2411
- drcrop: "\u230C",
2412
- dscr: "\u{1D4B9}",
2413
- dscy: "\u0455",
2414
- dsol: "\u29F6",
2415
- dstrok: "\u0111",
2416
- dtdot: "\u22F1",
2417
- dtri: "\u25BF",
2418
- dtrif: "\u25BE",
2419
- duarr: "\u21F5",
2420
- duhar: "\u296F",
2421
- dwangle: "\u29A6",
2422
- dzcy: "\u045F",
2423
- dzigrarr: "\u27FF",
2424
- eDDot: "\u2A77",
2425
- eDot: "\u2251",
2426
- eacute: "\xE9",
2427
- easter: "\u2A6E",
2428
- ecaron: "\u011B",
2429
- ecir: "\u2256",
2430
- ecirc: "\xEA",
2431
- ecolon: "\u2255",
2432
- ecy: "\u044D",
2433
- edot: "\u0117",
2434
- ee: "\u2147",
2435
- efDot: "\u2252",
2436
- efr: "\u{1D522}",
2437
- eg: "\u2A9A",
2438
- egrave: "\xE8",
2439
- egs: "\u2A96",
2440
- egsdot: "\u2A98",
2441
- el: "\u2A99",
2442
- elinters: "\u23E7",
2443
- ell: "\u2113",
2444
- els: "\u2A95",
2445
- elsdot: "\u2A97",
2446
- emacr: "\u0113",
2447
- empty: "\u2205",
2448
- emptyset: "\u2205",
2449
- emptyv: "\u2205",
2450
- emsp13: "\u2004",
2451
- emsp14: "\u2005",
2452
- emsp: "\u2003",
2453
- eng: "\u014B",
2454
- ensp: "\u2002",
2455
- eogon: "\u0119",
2456
- eopf: "\u{1D556}",
2457
- epar: "\u22D5",
2458
- eparsl: "\u29E3",
2459
- eplus: "\u2A71",
2460
- epsi: "\u03B5",
2461
- epsilon: "\u03B5",
2462
- epsiv: "\u03F5",
2463
- eqcirc: "\u2256",
2464
- eqcolon: "\u2255",
2465
- eqsim: "\u2242",
2466
- eqslantgtr: "\u2A96",
2467
- eqslantless: "\u2A95",
2468
- equals: "=",
2469
- equest: "\u225F",
2470
- equiv: "\u2261",
2471
- equivDD: "\u2A78",
2472
- eqvparsl: "\u29E5",
2473
- erDot: "\u2253",
2474
- erarr: "\u2971",
2475
- escr: "\u212F",
2476
- esdot: "\u2250",
2477
- esim: "\u2242",
2478
- eta: "\u03B7",
2479
- eth: "\xF0",
2480
- euml: "\xEB",
2481
- euro: "\u20AC",
2482
- excl: "!",
2483
- exist: "\u2203",
2484
- expectation: "\u2130",
2485
- exponentiale: "\u2147",
2486
- fallingdotseq: "\u2252",
2487
- fcy: "\u0444",
2488
- female: "\u2640",
2489
- ffilig: "\uFB03",
2490
- fflig: "\uFB00",
2491
- ffllig: "\uFB04",
2492
- ffr: "\u{1D523}",
2493
- filig: "\uFB01",
2494
- fjlig: "fj",
2495
- flat: "\u266D",
2496
- fllig: "\uFB02",
2497
- fltns: "\u25B1",
2498
- fnof: "\u0192",
2499
- fopf: "\u{1D557}",
2500
- forall: "\u2200",
2501
- fork: "\u22D4",
2502
- forkv: "\u2AD9",
2503
- fpartint: "\u2A0D",
2504
- frac12: "\xBD",
2505
- frac13: "\u2153",
2506
- frac14: "\xBC",
2507
- frac15: "\u2155",
2508
- frac16: "\u2159",
2509
- frac18: "\u215B",
2510
- frac23: "\u2154",
2511
- frac25: "\u2156",
2512
- frac34: "\xBE",
2513
- frac35: "\u2157",
2514
- frac38: "\u215C",
2515
- frac45: "\u2158",
2516
- frac56: "\u215A",
2517
- frac58: "\u215D",
2518
- frac78: "\u215E",
2519
- frasl: "\u2044",
2520
- frown: "\u2322",
2521
- fscr: "\u{1D4BB}",
2522
- gE: "\u2267",
2523
- gEl: "\u2A8C",
2524
- gacute: "\u01F5",
2525
- gamma: "\u03B3",
2526
- gammad: "\u03DD",
2527
- gap: "\u2A86",
2528
- gbreve: "\u011F",
2529
- gcirc: "\u011D",
2530
- gcy: "\u0433",
2531
- gdot: "\u0121",
2532
- ge: "\u2265",
2533
- gel: "\u22DB",
2534
- geq: "\u2265",
2535
- geqq: "\u2267",
2536
- geqslant: "\u2A7E",
2537
- ges: "\u2A7E",
2538
- gescc: "\u2AA9",
2539
- gesdot: "\u2A80",
2540
- gesdoto: "\u2A82",
2541
- gesdotol: "\u2A84",
2542
- gesl: "\u22DB\uFE00",
2543
- gesles: "\u2A94",
2544
- gfr: "\u{1D524}",
2545
- gg: "\u226B",
2546
- ggg: "\u22D9",
2547
- gimel: "\u2137",
2548
- gjcy: "\u0453",
2549
- gl: "\u2277",
2550
- glE: "\u2A92",
2551
- gla: "\u2AA5",
2552
- glj: "\u2AA4",
2553
- gnE: "\u2269",
2554
- gnap: "\u2A8A",
2555
- gnapprox: "\u2A8A",
2556
- gne: "\u2A88",
2557
- gneq: "\u2A88",
2558
- gneqq: "\u2269",
2559
- gnsim: "\u22E7",
2560
- gopf: "\u{1D558}",
2561
- grave: "`",
2562
- gscr: "\u210A",
2563
- gsim: "\u2273",
2564
- gsime: "\u2A8E",
2565
- gsiml: "\u2A90",
2566
- gt: ">",
2567
- gtcc: "\u2AA7",
2568
- gtcir: "\u2A7A",
2569
- gtdot: "\u22D7",
2570
- gtlPar: "\u2995",
2571
- gtquest: "\u2A7C",
2572
- gtrapprox: "\u2A86",
2573
- gtrarr: "\u2978",
2574
- gtrdot: "\u22D7",
2575
- gtreqless: "\u22DB",
2576
- gtreqqless: "\u2A8C",
2577
- gtrless: "\u2277",
2578
- gtrsim: "\u2273",
2579
- gvertneqq: "\u2269\uFE00",
2580
- gvnE: "\u2269\uFE00",
2581
- hArr: "\u21D4",
2582
- hairsp: "\u200A",
2583
- half: "\xBD",
2584
- hamilt: "\u210B",
2585
- hardcy: "\u044A",
2586
- harr: "\u2194",
2587
- harrcir: "\u2948",
2588
- harrw: "\u21AD",
2589
- hbar: "\u210F",
2590
- hcirc: "\u0125",
2591
- hearts: "\u2665",
2592
- heartsuit: "\u2665",
2593
- hellip: "\u2026",
2594
- hercon: "\u22B9",
2595
- hfr: "\u{1D525}",
2596
- hksearow: "\u2925",
2597
- hkswarow: "\u2926",
2598
- hoarr: "\u21FF",
2599
- homtht: "\u223B",
2600
- hookleftarrow: "\u21A9",
2601
- hookrightarrow: "\u21AA",
2602
- hopf: "\u{1D559}",
2603
- horbar: "\u2015",
2604
- hscr: "\u{1D4BD}",
2605
- hslash: "\u210F",
2606
- hstrok: "\u0127",
2607
- hybull: "\u2043",
2608
- hyphen: "\u2010",
2609
- iacute: "\xED",
2610
- ic: "\u2063",
2611
- icirc: "\xEE",
2612
- icy: "\u0438",
2613
- iecy: "\u0435",
2614
- iexcl: "\xA1",
2615
- iff: "\u21D4",
2616
- ifr: "\u{1D526}",
2617
- igrave: "\xEC",
2618
- ii: "\u2148",
2619
- iiiint: "\u2A0C",
2620
- iiint: "\u222D",
2621
- iinfin: "\u29DC",
2622
- iiota: "\u2129",
2623
- ijlig: "\u0133",
2624
- imacr: "\u012B",
2625
- image: "\u2111",
2626
- imagline: "\u2110",
2627
- imagpart: "\u2111",
2628
- imath: "\u0131",
2629
- imof: "\u22B7",
2630
- imped: "\u01B5",
2631
- in: "\u2208",
2632
- incare: "\u2105",
2633
- infin: "\u221E",
2634
- infintie: "\u29DD",
2635
- inodot: "\u0131",
2636
- int: "\u222B",
2637
- intcal: "\u22BA",
2638
- integers: "\u2124",
2639
- intercal: "\u22BA",
2640
- intlarhk: "\u2A17",
2641
- intprod: "\u2A3C",
2642
- iocy: "\u0451",
2643
- iogon: "\u012F",
2644
- iopf: "\u{1D55A}",
2645
- iota: "\u03B9",
2646
- iprod: "\u2A3C",
2647
- iquest: "\xBF",
2648
- iscr: "\u{1D4BE}",
2649
- isin: "\u2208",
2650
- isinE: "\u22F9",
2651
- isindot: "\u22F5",
2652
- isins: "\u22F4",
2653
- isinsv: "\u22F3",
2654
- isinv: "\u2208",
2655
- it: "\u2062",
2656
- itilde: "\u0129",
2657
- iukcy: "\u0456",
2658
- iuml: "\xEF",
2659
- jcirc: "\u0135",
2660
- jcy: "\u0439",
2661
- jfr: "\u{1D527}",
2662
- jmath: "\u0237",
2663
- jopf: "\u{1D55B}",
2664
- jscr: "\u{1D4BF}",
2665
- jsercy: "\u0458",
2666
- jukcy: "\u0454",
2667
- kappa: "\u03BA",
2668
- kappav: "\u03F0",
2669
- kcedil: "\u0137",
2670
- kcy: "\u043A",
2671
- kfr: "\u{1D528}",
2672
- kgreen: "\u0138",
2673
- khcy: "\u0445",
2674
- kjcy: "\u045C",
2675
- kopf: "\u{1D55C}",
2676
- kscr: "\u{1D4C0}",
2677
- lAarr: "\u21DA",
2678
- lArr: "\u21D0",
2679
- lAtail: "\u291B",
2680
- lBarr: "\u290E",
2681
- lE: "\u2266",
2682
- lEg: "\u2A8B",
2683
- lHar: "\u2962",
2684
- lacute: "\u013A",
2685
- laemptyv: "\u29B4",
2686
- lagran: "\u2112",
2687
- lambda: "\u03BB",
2688
- lang: "\u27E8",
2689
- langd: "\u2991",
2690
- langle: "\u27E8",
2691
- lap: "\u2A85",
2692
- laquo: "\xAB",
2693
- larr: "\u2190",
2694
- larrb: "\u21E4",
2695
- larrbfs: "\u291F",
2696
- larrfs: "\u291D",
2697
- larrhk: "\u21A9",
2698
- larrlp: "\u21AB",
2699
- larrpl: "\u2939",
2700
- larrsim: "\u2973",
2701
- larrtl: "\u21A2",
2702
- lat: "\u2AAB",
2703
- latail: "\u2919",
2704
- late: "\u2AAD",
2705
- lates: "\u2AAD\uFE00",
2706
- lbarr: "\u290C",
2707
- lbbrk: "\u2772",
2708
- lbrace: "{",
2709
- lbrack: "[",
2710
- lbrke: "\u298B",
2711
- lbrksld: "\u298F",
2712
- lbrkslu: "\u298D",
2713
- lcaron: "\u013E",
2714
- lcedil: "\u013C",
2715
- lceil: "\u2308",
2716
- lcub: "{",
2717
- lcy: "\u043B",
2718
- ldca: "\u2936",
2719
- ldquo: "\u201C",
2720
- ldquor: "\u201E",
2721
- ldrdhar: "\u2967",
2722
- ldrushar: "\u294B",
2723
- ldsh: "\u21B2",
2724
- le: "\u2264",
2725
- leftarrow: "\u2190",
2726
- leftarrowtail: "\u21A2",
2727
- leftharpoondown: "\u21BD",
2728
- leftharpoonup: "\u21BC",
2729
- leftleftarrows: "\u21C7",
2730
- leftrightarrow: "\u2194",
2731
- leftrightarrows: "\u21C6",
2732
- leftrightharpoons: "\u21CB",
2733
- leftrightsquigarrow: "\u21AD",
2734
- leftthreetimes: "\u22CB",
2735
- leg: "\u22DA",
2736
- leq: "\u2264",
2737
- leqq: "\u2266",
2738
- leqslant: "\u2A7D",
2739
- les: "\u2A7D",
2740
- lescc: "\u2AA8",
2741
- lesdot: "\u2A7F",
2742
- lesdoto: "\u2A81",
2743
- lesdotor: "\u2A83",
2744
- lesg: "\u22DA\uFE00",
2745
- lesges: "\u2A93",
2746
- lessapprox: "\u2A85",
2747
- lessdot: "\u22D6",
2748
- lesseqgtr: "\u22DA",
2749
- lesseqqgtr: "\u2A8B",
2750
- lessgtr: "\u2276",
2751
- lesssim: "\u2272",
2752
- lfisht: "\u297C",
2753
- lfloor: "\u230A",
2754
- lfr: "\u{1D529}",
2755
- lg: "\u2276",
2756
- lgE: "\u2A91",
2757
- lhard: "\u21BD",
2758
- lharu: "\u21BC",
2759
- lharul: "\u296A",
2760
- lhblk: "\u2584",
2761
- ljcy: "\u0459",
2762
- ll: "\u226A",
2763
- llarr: "\u21C7",
2764
- llcorner: "\u231E",
2765
- llhard: "\u296B",
2766
- lltri: "\u25FA",
2767
- lmidot: "\u0140",
2768
- lmoust: "\u23B0",
2769
- lmoustache: "\u23B0",
2770
- lnE: "\u2268",
2771
- lnap: "\u2A89",
2772
- lnapprox: "\u2A89",
2773
- lne: "\u2A87",
2774
- lneq: "\u2A87",
2775
- lneqq: "\u2268",
2776
- lnsim: "\u22E6",
2777
- loang: "\u27EC",
2778
- loarr: "\u21FD",
2779
- lobrk: "\u27E6",
2780
- longleftarrow: "\u27F5",
2781
- longleftrightarrow: "\u27F7",
2782
- longmapsto: "\u27FC",
2783
- longrightarrow: "\u27F6",
2784
- looparrowleft: "\u21AB",
2785
- looparrowright: "\u21AC",
2786
- lopar: "\u2985",
2787
- lopf: "\u{1D55D}",
2788
- loplus: "\u2A2D",
2789
- lotimes: "\u2A34",
2790
- lowast: "\u2217",
2791
- lowbar: "_",
2792
- loz: "\u25CA",
2793
- lozenge: "\u25CA",
2794
- lozf: "\u29EB",
2795
- lpar: "(",
2796
- lparlt: "\u2993",
2797
- lrarr: "\u21C6",
2798
- lrcorner: "\u231F",
2799
- lrhar: "\u21CB",
2800
- lrhard: "\u296D",
2801
- lrm: "\u200E",
2802
- lrtri: "\u22BF",
2803
- lsaquo: "\u2039",
2804
- lscr: "\u{1D4C1}",
2805
- lsh: "\u21B0",
2806
- lsim: "\u2272",
2807
- lsime: "\u2A8D",
2808
- lsimg: "\u2A8F",
2809
- lsqb: "[",
2810
- lsquo: "\u2018",
2811
- lsquor: "\u201A",
2812
- lstrok: "\u0142",
2813
- lt: "<",
2814
- ltcc: "\u2AA6",
2815
- ltcir: "\u2A79",
2816
- ltdot: "\u22D6",
2817
- lthree: "\u22CB",
2818
- ltimes: "\u22C9",
2819
- ltlarr: "\u2976",
2820
- ltquest: "\u2A7B",
2821
- ltrPar: "\u2996",
2822
- ltri: "\u25C3",
2823
- ltrie: "\u22B4",
2824
- ltrif: "\u25C2",
2825
- lurdshar: "\u294A",
2826
- luruhar: "\u2966",
2827
- lvertneqq: "\u2268\uFE00",
2828
- lvnE: "\u2268\uFE00",
2829
- mDDot: "\u223A",
2830
- macr: "\xAF",
2831
- male: "\u2642",
2832
- malt: "\u2720",
2833
- maltese: "\u2720",
2834
- map: "\u21A6",
2835
- mapsto: "\u21A6",
2836
- mapstodown: "\u21A7",
2837
- mapstoleft: "\u21A4",
2838
- mapstoup: "\u21A5",
2839
- marker: "\u25AE",
2840
- mcomma: "\u2A29",
2841
- mcy: "\u043C",
2842
- mdash: "\u2014",
2843
- measuredangle: "\u2221",
2844
- mfr: "\u{1D52A}",
2845
- mho: "\u2127",
2846
- micro: "\xB5",
2847
- mid: "\u2223",
2848
- midast: "*",
2849
- midcir: "\u2AF0",
2850
- middot: "\xB7",
2851
- minus: "\u2212",
2852
- minusb: "\u229F",
2853
- minusd: "\u2238",
2854
- minusdu: "\u2A2A",
2855
- mlcp: "\u2ADB",
2856
- mldr: "\u2026",
2857
- mnplus: "\u2213",
2858
- models: "\u22A7",
2859
- mopf: "\u{1D55E}",
2860
- mp: "\u2213",
2861
- mscr: "\u{1D4C2}",
2862
- mstpos: "\u223E",
2863
- mu: "\u03BC",
2864
- multimap: "\u22B8",
2865
- mumap: "\u22B8",
2866
- nGg: "\u22D9\u0338",
2867
- nGt: "\u226B\u20D2",
2868
- nGtv: "\u226B\u0338",
2869
- nLeftarrow: "\u21CD",
2870
- nLeftrightarrow: "\u21CE",
2871
- nLl: "\u22D8\u0338",
2872
- nLt: "\u226A\u20D2",
2873
- nLtv: "\u226A\u0338",
2874
- nRightarrow: "\u21CF",
2875
- nVDash: "\u22AF",
2876
- nVdash: "\u22AE",
2877
- nabla: "\u2207",
2878
- nacute: "\u0144",
2879
- nang: "\u2220\u20D2",
2880
- nap: "\u2249",
2881
- napE: "\u2A70\u0338",
2882
- napid: "\u224B\u0338",
2883
- napos: "\u0149",
2884
- napprox: "\u2249",
2885
- natur: "\u266E",
2886
- natural: "\u266E",
2887
- naturals: "\u2115",
2888
- nbsp: "\xA0",
2889
- nbump: "\u224E\u0338",
2890
- nbumpe: "\u224F\u0338",
2891
- ncap: "\u2A43",
2892
- ncaron: "\u0148",
2893
- ncedil: "\u0146",
2894
- ncong: "\u2247",
2895
- ncongdot: "\u2A6D\u0338",
2896
- ncup: "\u2A42",
2897
- ncy: "\u043D",
2898
- ndash: "\u2013",
2899
- ne: "\u2260",
2900
- neArr: "\u21D7",
2901
- nearhk: "\u2924",
2902
- nearr: "\u2197",
2903
- nearrow: "\u2197",
2904
- nedot: "\u2250\u0338",
2905
- nequiv: "\u2262",
2906
- nesear: "\u2928",
2907
- nesim: "\u2242\u0338",
2908
- nexist: "\u2204",
2909
- nexists: "\u2204",
2910
- nfr: "\u{1D52B}",
2911
- ngE: "\u2267\u0338",
2912
- nge: "\u2271",
2913
- ngeq: "\u2271",
2914
- ngeqq: "\u2267\u0338",
2915
- ngeqslant: "\u2A7E\u0338",
2916
- nges: "\u2A7E\u0338",
2917
- ngsim: "\u2275",
2918
- ngt: "\u226F",
2919
- ngtr: "\u226F",
2920
- nhArr: "\u21CE",
2921
- nharr: "\u21AE",
2922
- nhpar: "\u2AF2",
2923
- ni: "\u220B",
2924
- nis: "\u22FC",
2925
- nisd: "\u22FA",
2926
- niv: "\u220B",
2927
- njcy: "\u045A",
2928
- nlArr: "\u21CD",
2929
- nlE: "\u2266\u0338",
2930
- nlarr: "\u219A",
2931
- nldr: "\u2025",
2932
- nle: "\u2270",
2933
- nleftarrow: "\u219A",
2934
- nleftrightarrow: "\u21AE",
2935
- nleq: "\u2270",
2936
- nleqq: "\u2266\u0338",
2937
- nleqslant: "\u2A7D\u0338",
2938
- nles: "\u2A7D\u0338",
2939
- nless: "\u226E",
2940
- nlsim: "\u2274",
2941
- nlt: "\u226E",
2942
- nltri: "\u22EA",
2943
- nltrie: "\u22EC",
2944
- nmid: "\u2224",
2945
- nopf: "\u{1D55F}",
2946
- not: "\xAC",
2947
- notin: "\u2209",
2948
- notinE: "\u22F9\u0338",
2949
- notindot: "\u22F5\u0338",
2950
- notinva: "\u2209",
2951
- notinvb: "\u22F7",
2952
- notinvc: "\u22F6",
2953
- notni: "\u220C",
2954
- notniva: "\u220C",
2955
- notnivb: "\u22FE",
2956
- notnivc: "\u22FD",
2957
- npar: "\u2226",
2958
- nparallel: "\u2226",
2959
- nparsl: "\u2AFD\u20E5",
2960
- npart: "\u2202\u0338",
2961
- npolint: "\u2A14",
2962
- npr: "\u2280",
2963
- nprcue: "\u22E0",
2964
- npre: "\u2AAF\u0338",
2965
- nprec: "\u2280",
2966
- npreceq: "\u2AAF\u0338",
2967
- nrArr: "\u21CF",
2968
- nrarr: "\u219B",
2969
- nrarrc: "\u2933\u0338",
2970
- nrarrw: "\u219D\u0338",
2971
- nrightarrow: "\u219B",
2972
- nrtri: "\u22EB",
2973
- nrtrie: "\u22ED",
2974
- nsc: "\u2281",
2975
- nsccue: "\u22E1",
2976
- nsce: "\u2AB0\u0338",
2977
- nscr: "\u{1D4C3}",
2978
- nshortmid: "\u2224",
2979
- nshortparallel: "\u2226",
2980
- nsim: "\u2241",
2981
- nsime: "\u2244",
2982
- nsimeq: "\u2244",
2983
- nsmid: "\u2224",
2984
- nspar: "\u2226",
2985
- nsqsube: "\u22E2",
2986
- nsqsupe: "\u22E3",
2987
- nsub: "\u2284",
2988
- nsubE: "\u2AC5\u0338",
2989
- nsube: "\u2288",
2990
- nsubset: "\u2282\u20D2",
2991
- nsubseteq: "\u2288",
2992
- nsubseteqq: "\u2AC5\u0338",
2993
- nsucc: "\u2281",
2994
- nsucceq: "\u2AB0\u0338",
2995
- nsup: "\u2285",
2996
- nsupE: "\u2AC6\u0338",
2997
- nsupe: "\u2289",
2998
- nsupset: "\u2283\u20D2",
2999
- nsupseteq: "\u2289",
3000
- nsupseteqq: "\u2AC6\u0338",
3001
- ntgl: "\u2279",
3002
- ntilde: "\xF1",
3003
- ntlg: "\u2278",
3004
- ntriangleleft: "\u22EA",
3005
- ntrianglelefteq: "\u22EC",
3006
- ntriangleright: "\u22EB",
3007
- ntrianglerighteq: "\u22ED",
3008
- nu: "\u03BD",
3009
- num: "#",
3010
- numero: "\u2116",
3011
- numsp: "\u2007",
3012
- nvDash: "\u22AD",
3013
- nvHarr: "\u2904",
3014
- nvap: "\u224D\u20D2",
3015
- nvdash: "\u22AC",
3016
- nvge: "\u2265\u20D2",
3017
- nvgt: ">\u20D2",
3018
- nvinfin: "\u29DE",
3019
- nvlArr: "\u2902",
3020
- nvle: "\u2264\u20D2",
3021
- nvlt: "<\u20D2",
3022
- nvltrie: "\u22B4\u20D2",
3023
- nvrArr: "\u2903",
3024
- nvrtrie: "\u22B5\u20D2",
3025
- nvsim: "\u223C\u20D2",
3026
- nwArr: "\u21D6",
3027
- nwarhk: "\u2923",
3028
- nwarr: "\u2196",
3029
- nwarrow: "\u2196",
3030
- nwnear: "\u2927",
3031
- oS: "\u24C8",
3032
- oacute: "\xF3",
3033
- oast: "\u229B",
3034
- ocir: "\u229A",
3035
- ocirc: "\xF4",
3036
- ocy: "\u043E",
3037
- odash: "\u229D",
3038
- odblac: "\u0151",
3039
- odiv: "\u2A38",
3040
- odot: "\u2299",
3041
- odsold: "\u29BC",
3042
- oelig: "\u0153",
3043
- ofcir: "\u29BF",
3044
- ofr: "\u{1D52C}",
3045
- ogon: "\u02DB",
3046
- ograve: "\xF2",
3047
- ogt: "\u29C1",
3048
- ohbar: "\u29B5",
3049
- ohm: "\u03A9",
3050
- oint: "\u222E",
3051
- olarr: "\u21BA",
3052
- olcir: "\u29BE",
3053
- olcross: "\u29BB",
3054
- oline: "\u203E",
3055
- olt: "\u29C0",
3056
- omacr: "\u014D",
3057
- omega: "\u03C9",
3058
- omicron: "\u03BF",
3059
- omid: "\u29B6",
3060
- ominus: "\u2296",
3061
- oopf: "\u{1D560}",
3062
- opar: "\u29B7",
3063
- operp: "\u29B9",
3064
- oplus: "\u2295",
3065
- or: "\u2228",
3066
- orarr: "\u21BB",
3067
- ord: "\u2A5D",
3068
- order: "\u2134",
3069
- orderof: "\u2134",
3070
- ordf: "\xAA",
3071
- ordm: "\xBA",
3072
- origof: "\u22B6",
3073
- oror: "\u2A56",
3074
- orslope: "\u2A57",
3075
- orv: "\u2A5B",
3076
- oscr: "\u2134",
3077
- oslash: "\xF8",
3078
- osol: "\u2298",
3079
- otilde: "\xF5",
3080
- otimes: "\u2297",
3081
- otimesas: "\u2A36",
3082
- ouml: "\xF6",
3083
- ovbar: "\u233D",
3084
- par: "\u2225",
3085
- para: "\xB6",
3086
- parallel: "\u2225",
3087
- parsim: "\u2AF3",
3088
- parsl: "\u2AFD",
3089
- part: "\u2202",
3090
- pcy: "\u043F",
3091
- percnt: "%",
3092
- period: ".",
3093
- permil: "\u2030",
3094
- perp: "\u22A5",
3095
- pertenk: "\u2031",
3096
- pfr: "\u{1D52D}",
3097
- phi: "\u03C6",
3098
- phiv: "\u03D5",
3099
- phmmat: "\u2133",
3100
- phone: "\u260E",
3101
- pi: "\u03C0",
3102
- pitchfork: "\u22D4",
3103
- piv: "\u03D6",
3104
- planck: "\u210F",
3105
- planckh: "\u210E",
3106
- plankv: "\u210F",
3107
- plus: "+",
3108
- plusacir: "\u2A23",
3109
- plusb: "\u229E",
3110
- pluscir: "\u2A22",
3111
- plusdo: "\u2214",
3112
- plusdu: "\u2A25",
3113
- pluse: "\u2A72",
3114
- plusmn: "\xB1",
3115
- plussim: "\u2A26",
3116
- plustwo: "\u2A27",
3117
- pm: "\xB1",
3118
- pointint: "\u2A15",
3119
- popf: "\u{1D561}",
3120
- pound: "\xA3",
3121
- pr: "\u227A",
3122
- prE: "\u2AB3",
3123
- prap: "\u2AB7",
3124
- prcue: "\u227C",
3125
- pre: "\u2AAF",
3126
- prec: "\u227A",
3127
- precapprox: "\u2AB7",
3128
- preccurlyeq: "\u227C",
3129
- preceq: "\u2AAF",
3130
- precnapprox: "\u2AB9",
3131
- precneqq: "\u2AB5",
3132
- precnsim: "\u22E8",
3133
- precsim: "\u227E",
3134
- prime: "\u2032",
3135
- primes: "\u2119",
3136
- prnE: "\u2AB5",
3137
- prnap: "\u2AB9",
3138
- prnsim: "\u22E8",
3139
- prod: "\u220F",
3140
- profalar: "\u232E",
3141
- profline: "\u2312",
3142
- profsurf: "\u2313",
3143
- prop: "\u221D",
3144
- propto: "\u221D",
3145
- prsim: "\u227E",
3146
- prurel: "\u22B0",
3147
- pscr: "\u{1D4C5}",
3148
- psi: "\u03C8",
3149
- puncsp: "\u2008",
3150
- qfr: "\u{1D52E}",
3151
- qint: "\u2A0C",
3152
- qopf: "\u{1D562}",
3153
- qprime: "\u2057",
3154
- qscr: "\u{1D4C6}",
3155
- quaternions: "\u210D",
3156
- quatint: "\u2A16",
3157
- quest: "?",
3158
- questeq: "\u225F",
3159
- quot: '"',
3160
- rAarr: "\u21DB",
3161
- rArr: "\u21D2",
3162
- rAtail: "\u291C",
3163
- rBarr: "\u290F",
3164
- rHar: "\u2964",
3165
- race: "\u223D\u0331",
3166
- racute: "\u0155",
3167
- radic: "\u221A",
3168
- raemptyv: "\u29B3",
3169
- rang: "\u27E9",
3170
- rangd: "\u2992",
3171
- range: "\u29A5",
3172
- rangle: "\u27E9",
3173
- raquo: "\xBB",
3174
- rarr: "\u2192",
3175
- rarrap: "\u2975",
3176
- rarrb: "\u21E5",
3177
- rarrbfs: "\u2920",
3178
- rarrc: "\u2933",
3179
- rarrfs: "\u291E",
3180
- rarrhk: "\u21AA",
3181
- rarrlp: "\u21AC",
3182
- rarrpl: "\u2945",
3183
- rarrsim: "\u2974",
3184
- rarrtl: "\u21A3",
3185
- rarrw: "\u219D",
3186
- ratail: "\u291A",
3187
- ratio: "\u2236",
3188
- rationals: "\u211A",
3189
- rbarr: "\u290D",
3190
- rbbrk: "\u2773",
3191
- rbrace: "}",
3192
- rbrack: "]",
3193
- rbrke: "\u298C",
3194
- rbrksld: "\u298E",
3195
- rbrkslu: "\u2990",
3196
- rcaron: "\u0159",
3197
- rcedil: "\u0157",
3198
- rceil: "\u2309",
3199
- rcub: "}",
3200
- rcy: "\u0440",
3201
- rdca: "\u2937",
3202
- rdldhar: "\u2969",
3203
- rdquo: "\u201D",
3204
- rdquor: "\u201D",
3205
- rdsh: "\u21B3",
3206
- real: "\u211C",
3207
- realine: "\u211B",
3208
- realpart: "\u211C",
3209
- reals: "\u211D",
3210
- rect: "\u25AD",
3211
- reg: "\xAE",
3212
- rfisht: "\u297D",
3213
- rfloor: "\u230B",
3214
- rfr: "\u{1D52F}",
3215
- rhard: "\u21C1",
3216
- rharu: "\u21C0",
3217
- rharul: "\u296C",
3218
- rho: "\u03C1",
3219
- rhov: "\u03F1",
3220
- rightarrow: "\u2192",
3221
- rightarrowtail: "\u21A3",
3222
- rightharpoondown: "\u21C1",
3223
- rightharpoonup: "\u21C0",
3224
- rightleftarrows: "\u21C4",
3225
- rightleftharpoons: "\u21CC",
3226
- rightrightarrows: "\u21C9",
3227
- rightsquigarrow: "\u219D",
3228
- rightthreetimes: "\u22CC",
3229
- ring: "\u02DA",
3230
- risingdotseq: "\u2253",
3231
- rlarr: "\u21C4",
3232
- rlhar: "\u21CC",
3233
- rlm: "\u200F",
3234
- rmoust: "\u23B1",
3235
- rmoustache: "\u23B1",
3236
- rnmid: "\u2AEE",
3237
- roang: "\u27ED",
3238
- roarr: "\u21FE",
3239
- robrk: "\u27E7",
3240
- ropar: "\u2986",
3241
- ropf: "\u{1D563}",
3242
- roplus: "\u2A2E",
3243
- rotimes: "\u2A35",
3244
- rpar: ")",
3245
- rpargt: "\u2994",
3246
- rppolint: "\u2A12",
3247
- rrarr: "\u21C9",
3248
- rsaquo: "\u203A",
3249
- rscr: "\u{1D4C7}",
3250
- rsh: "\u21B1",
3251
- rsqb: "]",
3252
- rsquo: "\u2019",
3253
- rsquor: "\u2019",
3254
- rthree: "\u22CC",
3255
- rtimes: "\u22CA",
3256
- rtri: "\u25B9",
3257
- rtrie: "\u22B5",
3258
- rtrif: "\u25B8",
3259
- rtriltri: "\u29CE",
3260
- ruluhar: "\u2968",
3261
- rx: "\u211E",
3262
- sacute: "\u015B",
3263
- sbquo: "\u201A",
3264
- sc: "\u227B",
3265
- scE: "\u2AB4",
3266
- scap: "\u2AB8",
3267
- scaron: "\u0161",
3268
- sccue: "\u227D",
3269
- sce: "\u2AB0",
3270
- scedil: "\u015F",
3271
- scirc: "\u015D",
3272
- scnE: "\u2AB6",
3273
- scnap: "\u2ABA",
3274
- scnsim: "\u22E9",
3275
- scpolint: "\u2A13",
3276
- scsim: "\u227F",
3277
- scy: "\u0441",
3278
- sdot: "\u22C5",
3279
- sdotb: "\u22A1",
3280
- sdote: "\u2A66",
3281
- seArr: "\u21D8",
3282
- searhk: "\u2925",
3283
- searr: "\u2198",
3284
- searrow: "\u2198",
3285
- sect: "\xA7",
3286
- semi: ";",
3287
- seswar: "\u2929",
3288
- setminus: "\u2216",
3289
- setmn: "\u2216",
3290
- sext: "\u2736",
3291
- sfr: "\u{1D530}",
3292
- sfrown: "\u2322",
3293
- sharp: "\u266F",
3294
- shchcy: "\u0449",
3295
- shcy: "\u0448",
3296
- shortmid: "\u2223",
3297
- shortparallel: "\u2225",
3298
- shy: "\xAD",
3299
- sigma: "\u03C3",
3300
- sigmaf: "\u03C2",
3301
- sigmav: "\u03C2",
3302
- sim: "\u223C",
3303
- simdot: "\u2A6A",
3304
- sime: "\u2243",
3305
- simeq: "\u2243",
3306
- simg: "\u2A9E",
3307
- simgE: "\u2AA0",
3308
- siml: "\u2A9D",
3309
- simlE: "\u2A9F",
3310
- simne: "\u2246",
3311
- simplus: "\u2A24",
3312
- simrarr: "\u2972",
3313
- slarr: "\u2190",
3314
- smallsetminus: "\u2216",
3315
- smashp: "\u2A33",
3316
- smeparsl: "\u29E4",
3317
- smid: "\u2223",
3318
- smile: "\u2323",
3319
- smt: "\u2AAA",
3320
- smte: "\u2AAC",
3321
- smtes: "\u2AAC\uFE00",
3322
- softcy: "\u044C",
3323
- sol: "/",
3324
- solb: "\u29C4",
3325
- solbar: "\u233F",
3326
- sopf: "\u{1D564}",
3327
- spades: "\u2660",
3328
- spadesuit: "\u2660",
3329
- spar: "\u2225",
3330
- sqcap: "\u2293",
3331
- sqcaps: "\u2293\uFE00",
3332
- sqcup: "\u2294",
3333
- sqcups: "\u2294\uFE00",
3334
- sqsub: "\u228F",
3335
- sqsube: "\u2291",
3336
- sqsubset: "\u228F",
3337
- sqsubseteq: "\u2291",
3338
- sqsup: "\u2290",
3339
- sqsupe: "\u2292",
3340
- sqsupset: "\u2290",
3341
- sqsupseteq: "\u2292",
3342
- squ: "\u25A1",
3343
- square: "\u25A1",
3344
- squarf: "\u25AA",
3345
- squf: "\u25AA",
3346
- srarr: "\u2192",
3347
- sscr: "\u{1D4C8}",
3348
- ssetmn: "\u2216",
3349
- ssmile: "\u2323",
3350
- sstarf: "\u22C6",
3351
- star: "\u2606",
3352
- starf: "\u2605",
3353
- straightepsilon: "\u03F5",
3354
- straightphi: "\u03D5",
3355
- strns: "\xAF",
3356
- sub: "\u2282",
3357
- subE: "\u2AC5",
3358
- subdot: "\u2ABD",
3359
- sube: "\u2286",
3360
- subedot: "\u2AC3",
3361
- submult: "\u2AC1",
3362
- subnE: "\u2ACB",
3363
- subne: "\u228A",
3364
- subplus: "\u2ABF",
3365
- subrarr: "\u2979",
3366
- subset: "\u2282",
3367
- subseteq: "\u2286",
3368
- subseteqq: "\u2AC5",
3369
- subsetneq: "\u228A",
3370
- subsetneqq: "\u2ACB",
3371
- subsim: "\u2AC7",
3372
- subsub: "\u2AD5",
3373
- subsup: "\u2AD3",
3374
- succ: "\u227B",
3375
- succapprox: "\u2AB8",
3376
- succcurlyeq: "\u227D",
3377
- succeq: "\u2AB0",
3378
- succnapprox: "\u2ABA",
3379
- succneqq: "\u2AB6",
3380
- succnsim: "\u22E9",
3381
- succsim: "\u227F",
3382
- sum: "\u2211",
3383
- sung: "\u266A",
3384
- sup1: "\xB9",
3385
- sup2: "\xB2",
3386
- sup3: "\xB3",
3387
- sup: "\u2283",
3388
- supE: "\u2AC6",
3389
- supdot: "\u2ABE",
3390
- supdsub: "\u2AD8",
3391
- supe: "\u2287",
3392
- supedot: "\u2AC4",
3393
- suphsol: "\u27C9",
3394
- suphsub: "\u2AD7",
3395
- suplarr: "\u297B",
3396
- supmult: "\u2AC2",
3397
- supnE: "\u2ACC",
3398
- supne: "\u228B",
3399
- supplus: "\u2AC0",
3400
- supset: "\u2283",
3401
- supseteq: "\u2287",
3402
- supseteqq: "\u2AC6",
3403
- supsetneq: "\u228B",
3404
- supsetneqq: "\u2ACC",
3405
- supsim: "\u2AC8",
3406
- supsub: "\u2AD4",
3407
- supsup: "\u2AD6",
3408
- swArr: "\u21D9",
3409
- swarhk: "\u2926",
3410
- swarr: "\u2199",
3411
- swarrow: "\u2199",
3412
- swnwar: "\u292A",
3413
- szlig: "\xDF",
3414
- target: "\u2316",
3415
- tau: "\u03C4",
3416
- tbrk: "\u23B4",
3417
- tcaron: "\u0165",
3418
- tcedil: "\u0163",
3419
- tcy: "\u0442",
3420
- tdot: "\u20DB",
3421
- telrec: "\u2315",
3422
- tfr: "\u{1D531}",
3423
- there4: "\u2234",
3424
- therefore: "\u2234",
3425
- theta: "\u03B8",
3426
- thetasym: "\u03D1",
3427
- thetav: "\u03D1",
3428
- thickapprox: "\u2248",
3429
- thicksim: "\u223C",
3430
- thinsp: "\u2009",
3431
- thkap: "\u2248",
3432
- thksim: "\u223C",
3433
- thorn: "\xFE",
3434
- tilde: "\u02DC",
3435
- times: "\xD7",
3436
- timesb: "\u22A0",
3437
- timesbar: "\u2A31",
3438
- timesd: "\u2A30",
3439
- tint: "\u222D",
3440
- toea: "\u2928",
3441
- top: "\u22A4",
3442
- topbot: "\u2336",
3443
- topcir: "\u2AF1",
3444
- topf: "\u{1D565}",
3445
- topfork: "\u2ADA",
3446
- tosa: "\u2929",
3447
- tprime: "\u2034",
3448
- trade: "\u2122",
3449
- triangle: "\u25B5",
3450
- triangledown: "\u25BF",
3451
- triangleleft: "\u25C3",
3452
- trianglelefteq: "\u22B4",
3453
- triangleq: "\u225C",
3454
- triangleright: "\u25B9",
3455
- trianglerighteq: "\u22B5",
3456
- tridot: "\u25EC",
3457
- trie: "\u225C",
3458
- triminus: "\u2A3A",
3459
- triplus: "\u2A39",
3460
- trisb: "\u29CD",
3461
- tritime: "\u2A3B",
3462
- trpezium: "\u23E2",
3463
- tscr: "\u{1D4C9}",
3464
- tscy: "\u0446",
3465
- tshcy: "\u045B",
3466
- tstrok: "\u0167",
3467
- twixt: "\u226C",
3468
- twoheadleftarrow: "\u219E",
3469
- twoheadrightarrow: "\u21A0",
3470
- uArr: "\u21D1",
3471
- uHar: "\u2963",
3472
- uacute: "\xFA",
3473
- uarr: "\u2191",
3474
- ubrcy: "\u045E",
3475
- ubreve: "\u016D",
3476
- ucirc: "\xFB",
3477
- ucy: "\u0443",
3478
- udarr: "\u21C5",
3479
- udblac: "\u0171",
3480
- udhar: "\u296E",
3481
- ufisht: "\u297E",
3482
- ufr: "\u{1D532}",
3483
- ugrave: "\xF9",
3484
- uharl: "\u21BF",
3485
- uharr: "\u21BE",
3486
- uhblk: "\u2580",
3487
- ulcorn: "\u231C",
3488
- ulcorner: "\u231C",
3489
- ulcrop: "\u230F",
3490
- ultri: "\u25F8",
3491
- umacr: "\u016B",
3492
- uml: "\xA8",
3493
- uogon: "\u0173",
3494
- uopf: "\u{1D566}",
3495
- uparrow: "\u2191",
3496
- updownarrow: "\u2195",
3497
- upharpoonleft: "\u21BF",
3498
- upharpoonright: "\u21BE",
3499
- uplus: "\u228E",
3500
- upsi: "\u03C5",
3501
- upsih: "\u03D2",
3502
- upsilon: "\u03C5",
3503
- upuparrows: "\u21C8",
3504
- urcorn: "\u231D",
3505
- urcorner: "\u231D",
3506
- urcrop: "\u230E",
3507
- uring: "\u016F",
3508
- urtri: "\u25F9",
3509
- uscr: "\u{1D4CA}",
3510
- utdot: "\u22F0",
3511
- utilde: "\u0169",
3512
- utri: "\u25B5",
3513
- utrif: "\u25B4",
3514
- uuarr: "\u21C8",
3515
- uuml: "\xFC",
3516
- uwangle: "\u29A7",
3517
- vArr: "\u21D5",
3518
- vBar: "\u2AE8",
3519
- vBarv: "\u2AE9",
3520
- vDash: "\u22A8",
3521
- vangrt: "\u299C",
3522
- varepsilon: "\u03F5",
3523
- varkappa: "\u03F0",
3524
- varnothing: "\u2205",
3525
- varphi: "\u03D5",
3526
- varpi: "\u03D6",
3527
- varpropto: "\u221D",
3528
- varr: "\u2195",
3529
- varrho: "\u03F1",
3530
- varsigma: "\u03C2",
3531
- varsubsetneq: "\u228A\uFE00",
3532
- varsubsetneqq: "\u2ACB\uFE00",
3533
- varsupsetneq: "\u228B\uFE00",
3534
- varsupsetneqq: "\u2ACC\uFE00",
3535
- vartheta: "\u03D1",
3536
- vartriangleleft: "\u22B2",
3537
- vartriangleright: "\u22B3",
3538
- vcy: "\u0432",
3539
- vdash: "\u22A2",
3540
- vee: "\u2228",
3541
- veebar: "\u22BB",
3542
- veeeq: "\u225A",
3543
- vellip: "\u22EE",
3544
- verbar: "|",
3545
- vert: "|",
3546
- vfr: "\u{1D533}",
3547
- vltri: "\u22B2",
3548
- vnsub: "\u2282\u20D2",
3549
- vnsup: "\u2283\u20D2",
3550
- vopf: "\u{1D567}",
3551
- vprop: "\u221D",
3552
- vrtri: "\u22B3",
3553
- vscr: "\u{1D4CB}",
3554
- vsubnE: "\u2ACB\uFE00",
3555
- vsubne: "\u228A\uFE00",
3556
- vsupnE: "\u2ACC\uFE00",
3557
- vsupne: "\u228B\uFE00",
3558
- vzigzag: "\u299A",
3559
- wcirc: "\u0175",
3560
- wedbar: "\u2A5F",
3561
- wedge: "\u2227",
3562
- wedgeq: "\u2259",
3563
- weierp: "\u2118",
3564
- wfr: "\u{1D534}",
3565
- wopf: "\u{1D568}",
3566
- wp: "\u2118",
3567
- wr: "\u2240",
3568
- wreath: "\u2240",
3569
- wscr: "\u{1D4CC}",
3570
- xcap: "\u22C2",
3571
- xcirc: "\u25EF",
3572
- xcup: "\u22C3",
3573
- xdtri: "\u25BD",
3574
- xfr: "\u{1D535}",
3575
- xhArr: "\u27FA",
3576
- xharr: "\u27F7",
3577
- xi: "\u03BE",
3578
- xlArr: "\u27F8",
3579
- xlarr: "\u27F5",
3580
- xmap: "\u27FC",
3581
- xnis: "\u22FB",
3582
- xodot: "\u2A00",
3583
- xopf: "\u{1D569}",
3584
- xoplus: "\u2A01",
3585
- xotime: "\u2A02",
3586
- xrArr: "\u27F9",
3587
- xrarr: "\u27F6",
3588
- xscr: "\u{1D4CD}",
3589
- xsqcup: "\u2A06",
3590
- xuplus: "\u2A04",
3591
- xutri: "\u25B3",
3592
- xvee: "\u22C1",
3593
- xwedge: "\u22C0",
3594
- yacute: "\xFD",
3595
- yacy: "\u044F",
3596
- ycirc: "\u0177",
3597
- ycy: "\u044B",
3598
- yen: "\xA5",
3599
- yfr: "\u{1D536}",
3600
- yicy: "\u0457",
3601
- yopf: "\u{1D56A}",
3602
- yscr: "\u{1D4CE}",
3603
- yucy: "\u044E",
3604
- yuml: "\xFF",
3605
- zacute: "\u017A",
3606
- zcaron: "\u017E",
3607
- zcy: "\u0437",
3608
- zdot: "\u017C",
3609
- zeetrf: "\u2128",
3610
- zeta: "\u03B6",
3611
- zfr: "\u{1D537}",
3612
- zhcy: "\u0436",
3613
- zigrarr: "\u21DD",
3614
- zopf: "\u{1D56B}",
3615
- zscr: "\u{1D4CF}",
3616
- zwj: "\u200D",
3617
- zwnj: "\u200C"
3618
- }, own$1 = {}.hasOwnProperty;
3619
- function decodeNamedCharacterReference(value) {
3620
- return own$1.call(characterEntities, value) ? characterEntities[value] : !1;
3621
- }
3622
- const messages = [
3623
- "",
3624
- /* 1: Non terminated (named) */
3625
- "Named character references must be terminated by a semicolon",
3626
- /* 2: Non terminated (numeric) */
3627
- "Numeric character references must be terminated by a semicolon",
3628
- /* 3: Empty (named) */
3629
- "Named character references cannot be empty",
3630
- /* 4: Empty (numeric) */
3631
- "Numeric character references cannot be empty",
3632
- /* 5: Unknown (named) */
3633
- "Named character references must be known",
3634
- /* 6: Disallowed (numeric) */
3635
- "Numeric character references cannot be disallowed",
3636
- /* 7: Prohibited (numeric) */
3637
- "Numeric character references cannot be outside the permissible Unicode range"
3638
- ];
3639
- function parseEntities(value, options) {
3640
- const settings = {}, additional = typeof settings.additional == "string" ? settings.additional.charCodeAt(0) : settings.additional, result = [];
3641
- let index = 0, lines = -1, queue = "", point, indent;
3642
- settings.position && ("start" in settings.position || "indent" in settings.position ? (indent = settings.position.indent, point = settings.position.start) : point = settings.position);
3643
- let line = (point ? point.line : 0) || 1, column = (point ? point.column : 0) || 1, previous = now(), character;
3644
- for (index--; ++index <= value.length; )
3645
- if (character === 10 && (column = (indent ? indent[lines] : 0) || 1), character = value.charCodeAt(index), character === 38) {
3646
- const following = value.charCodeAt(index + 1);
3647
- if (following === 9 || following === 10 || following === 12 || following === 32 || following === 38 || following === 60 || Number.isNaN(following) || additional && following === additional) {
3648
- queue += String.fromCharCode(character), column++;
3649
- continue;
3650
- }
3651
- const start = index + 1;
3652
- let begin = start, end = start, type;
3653
- if (following === 35) {
3654
- end = ++begin;
3655
- const following2 = value.charCodeAt(end);
3656
- following2 === 88 || following2 === 120 ? (type = "hexadecimal", end = ++begin) : type = "decimal";
3657
- } else
3658
- type = "named";
3659
- let characterReferenceCharacters = "", characterReference = "", characters = "";
3660
- const test = type === "named" ? isAlphanumerical : type === "decimal" ? isDecimal : isHexadecimal;
3661
- for (end--; ++end <= value.length; ) {
3662
- const following2 = value.charCodeAt(end);
3663
- if (!test(following2))
3664
- break;
3665
- characters += String.fromCharCode(following2), type === "named" && characterEntitiesLegacy.includes(characters) && (characterReferenceCharacters = characters, characterReference = decodeNamedCharacterReference(characters));
3666
- }
3667
- let terminated = value.charCodeAt(end) === 59;
3668
- if (terminated) {
3669
- end++;
3670
- const namedReference = type === "named" ? decodeNamedCharacterReference(characters) : !1;
3671
- namedReference && (characterReferenceCharacters = characters, characterReference = namedReference);
3672
- }
3673
- let diff = 1 + end - start, reference = "";
3674
- if (!(!terminated && settings.nonTerminated === !1)) if (!characters)
3675
- type !== "named" && warning(4, diff);
3676
- else if (type === "named") {
3677
- if (terminated && !characterReference)
3678
- warning(5, 1);
3679
- else if (characterReferenceCharacters !== characters && (end = begin + characterReferenceCharacters.length, diff = 1 + end - begin, terminated = !1), !terminated) {
3680
- const reason = characterReferenceCharacters ? 1 : 3;
3681
- if (settings.attribute) {
3682
- const following2 = value.charCodeAt(end);
3683
- following2 === 61 ? (warning(reason, diff), characterReference = "") : isAlphanumerical(following2) ? characterReference = "" : warning(reason, diff);
3684
- } else
3685
- warning(reason, diff);
3686
- }
3687
- reference = characterReference;
3688
- } else {
3689
- terminated || warning(2, diff);
3690
- let referenceCode = Number.parseInt(
3691
- characters,
3692
- type === "hexadecimal" ? 16 : 10
3693
- );
3694
- if (prohibited(referenceCode))
3695
- warning(7, diff), reference = "\uFFFD";
3696
- else if (referenceCode in characterReferenceInvalid)
3697
- warning(6, diff), reference = characterReferenceInvalid[referenceCode];
3698
- else {
3699
- let output = "";
3700
- disallowed(referenceCode) && warning(6, diff), referenceCode > 65535 && (referenceCode -= 65536, output += String.fromCharCode(
3701
- referenceCode >>> 10 | 55296
3702
- ), referenceCode = 56320 | referenceCode & 1023), reference = output + String.fromCharCode(referenceCode);
3703
- }
3704
- }
3705
- if (reference) {
3706
- flush(), previous = now(), index = end - 1, column += end - start + 1, result.push(reference);
3707
- const next = now();
3708
- next.offset++, settings.reference && settings.reference.call(
3709
- settings.referenceContext || void 0,
3710
- reference,
3711
- { start: previous, end: next },
3712
- value.slice(start - 1, end)
3713
- ), previous = next;
3714
- } else
3715
- characters = value.slice(start - 1, end), queue += characters, column += characters.length, index = end - 1;
3716
- } else
3717
- character === 10 && (line++, lines++, column = 0), Number.isNaN(character) ? flush() : (queue += String.fromCharCode(character), column++);
3718
- return result.join("");
3719
- function now() {
3720
- return {
3721
- line,
3722
- column,
3723
- offset: index + ((point ? point.offset : 0) || 0)
3724
- };
3725
- }
3726
- function warning(code, offset) {
3727
- let position;
3728
- settings.warning && (position = now(), position.column += offset, position.offset += offset, settings.warning.call(
3729
- settings.warningContext || void 0,
3730
- messages[code],
3731
- position,
3732
- code
3733
- ));
3734
- }
3735
- function flush() {
3736
- queue && (result.push(queue), settings.text && settings.text.call(settings.textContext || void 0, queue, {
3737
- start: previous,
3738
- end: now()
3739
- }), queue = "");
3740
- }
3741
- }
3742
- function prohibited(code) {
3743
- return code >= 55296 && code <= 57343 || code > 1114111;
3744
- }
3745
- function disallowed(code) {
3746
- return code >= 1 && code <= 8 || code === 11 || code >= 13 && code <= 31 || code >= 127 && code <= 159 || code >= 64976 && code <= 65007 || (code & 65535) === 65535 || (code & 65535) === 65534;
3747
- }
3748
- var uniqueId = 0, plainTextGrammar = {}, _ = {
3749
- /**
3750
- * A namespace for utility methods.
3751
- *
3752
- * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may
3753
- * change or disappear at any time.
3754
- *
3755
- * @namespace
3756
- * @memberof Prism
3757
- */
3758
- util: {
3759
- /**
3760
- * Returns the name of the type of the given value.
3761
- *
3762
- * @param {any} o
3763
- * @returns {string}
3764
- * @example
3765
- * type(null) === 'Null'
3766
- * type(undefined) === 'Undefined'
3767
- * type(123) === 'Number'
3768
- * type('foo') === 'String'
3769
- * type(true) === 'Boolean'
3770
- * type([1, 2]) === 'Array'
3771
- * type({}) === 'Object'
3772
- * type(String) === 'Function'
3773
- * type(/abc+/) === 'RegExp'
3774
- */
3775
- type: function(o) {
3776
- return Object.prototype.toString.call(o).slice(8, -1);
3777
- },
3778
- /**
3779
- * Returns a unique number for the given object. Later calls will still return the same number.
3780
- *
3781
- * @param {Object} obj
3782
- * @returns {number}
3783
- */
3784
- objId: function(obj) {
3785
- return obj.__id || Object.defineProperty(obj, "__id", { value: ++uniqueId }), obj.__id;
3786
- },
3787
- /**
3788
- * Creates a deep clone of the given object.
3789
- *
3790
- * The main intended use of this function is to clone language definitions.
3791
- *
3792
- * @param {T} o
3793
- * @param {Record<number, any>} [visited]
3794
- * @returns {T}
3795
- * @template T
3796
- */
3797
- clone: function deepClone(o, visited) {
3798
- visited = visited || {};
3799
- var clone, id;
3800
- switch (_.util.type(o)) {
3801
- case "Object":
3802
- if (id = _.util.objId(o), visited[id])
3803
- return visited[id];
3804
- clone = /** @type {Record<string, any>} */
3805
- {}, visited[id] = clone;
3806
- for (var key in o)
3807
- o.hasOwnProperty(key) && (clone[key] = deepClone(o[key], visited));
3808
- return (
3809
- /** @type {any} */
3810
- clone
3811
- );
3812
- case "Array":
3813
- return id = _.util.objId(o), visited[id] ? visited[id] : (clone = [], visited[id] = clone, /** @type {any} */
3814
- o.forEach(
3815
- function(v, i) {
3816
- clone[i] = deepClone(v, visited);
3817
- }
3818
- ), /** @type {any} */
3819
- clone);
3820
- default:
3821
- return o;
3822
- }
3823
- }
3824
- },
3825
- /**
3826
- * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.
3827
- *
3828
- * @namespace
3829
- * @memberof Prism
3830
- * @public
3831
- */
3832
- languages: {
3833
- /**
3834
- * The grammar for plain, unformatted text.
3835
- */
3836
- plain: plainTextGrammar,
3837
- plaintext: plainTextGrammar,
3838
- text: plainTextGrammar,
3839
- txt: plainTextGrammar,
3840
- /**
3841
- * Creates a deep copy of the language with the given id and appends the given tokens.
3842
- *
3843
- * If a token in `redef` also appears in the copied language, then the existing token in the copied language
3844
- * will be overwritten at its original position.
3845
- *
3846
- * ## Best practices
3847
- *
3848
- * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)
3849
- * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to
3850
- * understand the language definition because, normally, the order of tokens matters in Prism grammars.
3851
- *
3852
- * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.
3853
- * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.
3854
- *
3855
- * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.
3856
- * @param {Grammar} redef The new tokens to append.
3857
- * @returns {Grammar} The new language created.
3858
- * @public
3859
- * @example
3860
- * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {
3861
- * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token
3862
- * // at its original position
3863
- * 'comment': { ... },
3864
- * // CSS doesn't have a 'color' token, so this token will be appended
3865
- * 'color': /\b(?:red|green|blue)\b/
3866
- * });
3867
- */
3868
- extend: function(id, redef) {
3869
- var lang = _.util.clone(_.languages[id]);
3870
- for (var key in redef)
3871
- lang[key] = redef[key];
3872
- return lang;
3873
- },
3874
- /**
3875
- * Inserts tokens _before_ another token in a language definition or any other grammar.
3876
- *
3877
- * ## Usage
3878
- *
3879
- * This helper method makes it easy to modify existing languages. For example, the CSS language definition
3880
- * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded
3881
- * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the
3882
- * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do
3883
- * this:
3884
- *
3885
- * ```js
3886
- * Prism.languages.markup.style = {
3887
- * // token
3888
- * };
3889
- * ```
3890
- *
3891
- * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens
3892
- * before existing tokens. For the CSS example above, you would use it like this:
3893
- *
3894
- * ```js
3895
- * Prism.languages.insertBefore('markup', 'cdata', {
3896
- * 'style': {
3897
- * // token
3898
- * }
3899
- * });
3900
- * ```
3901
- *
3902
- * ## Special cases
3903
- *
3904
- * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar
3905
- * will be ignored.
3906
- *
3907
- * This behavior can be used to insert tokens after `before`:
3908
- *
3909
- * ```js
3910
- * Prism.languages.insertBefore('markup', 'comment', {
3911
- * 'comment': Prism.languages.markup.comment,
3912
- * // tokens after 'comment'
3913
- * });
3914
- * ```
3915
- *
3916
- * ## Limitations
3917
- *
3918
- * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object
3919
- * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave
3920
- * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily
3921
- * deleting properties which is necessary to insert at arbitrary positions.
3922
- *
3923
- * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.
3924
- * Instead, it will create a new object and replace all references to the target object with the new one. This
3925
- * can be done without temporarily deleting properties, so the iteration order is well-defined.
3926
- *
3927
- * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if
3928
- * you hold the target object in a variable, then the value of the variable will not change.
3929
- *
3930
- * ```js
3931
- * var oldMarkup = Prism.languages.markup;
3932
- * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });
3933
- *
3934
- * assert(oldMarkup !== Prism.languages.markup);
3935
- * assert(newMarkup === Prism.languages.markup);
3936
- * ```
3937
- *
3938
- * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the
3939
- * object to be modified.
3940
- * @param {string} before The key to insert before.
3941
- * @param {Grammar} insert An object containing the key-value pairs to be inserted.
3942
- * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the
3943
- * object to be modified.
3944
- *
3945
- * Defaults to `Prism.languages`.
3946
- * @returns {Grammar} The new grammar object.
3947
- * @public
3948
- */
3949
- insertBefore: function(inside, before, insert, root) {
3950
- root = root || /** @type {any} */
3951
- _.languages;
3952
- var grammar = root[inside], ret = {};
3953
- for (var token in grammar)
3954
- if (grammar.hasOwnProperty(token)) {
3955
- if (token == before)
3956
- for (var newToken in insert)
3957
- insert.hasOwnProperty(newToken) && (ret[newToken] = insert[newToken]);
3958
- insert.hasOwnProperty(token) || (ret[token] = grammar[token]);
3959
- }
3960
- var old = root[inside];
3961
- return root[inside] = ret, _.languages.DFS(_.languages, function(key, value) {
3962
- value === old && key != inside && (this[key] = ret);
3963
- }), ret;
3964
- },
3965
- // Traverse a language definition with Depth First Search
3966
- DFS: function DFS(o, callback, type, visited) {
3967
- visited = visited || {};
3968
- var objId = _.util.objId;
3969
- for (var i in o)
3970
- if (o.hasOwnProperty(i)) {
3971
- callback.call(o, i, o[i], type || i);
3972
- var property = o[i], propertyType = _.util.type(property);
3973
- propertyType === "Object" && !visited[objId(property)] ? (visited[objId(property)] = !0, DFS(property, callback, null, visited)) : propertyType === "Array" && !visited[objId(property)] && (visited[objId(property)] = !0, DFS(property, callback, i, visited));
3974
- }
3975
- }
3976
- },
3977
- plugins: {},
3978
- /**
3979
- * Low-level function, only use if you know what you’re doing. It accepts a string of text as input
3980
- * and the language definitions to use, and returns a string with the HTML produced.
3981
- *
3982
- * The following hooks will be run:
3983
- * 1. `before-tokenize`
3984
- * 2. `after-tokenize`
3985
- * 3. `wrap`: On each {@link Token}.
3986
- *
3987
- * @param {string} text A string with the code to be highlighted.
3988
- * @param {Grammar} grammar An object containing the tokens to use.
3989
- *
3990
- * Usually a language definition like `Prism.languages.markup`.
3991
- * @param {string} language The name of the language definition passed to `grammar`.
3992
- * @returns {string} The highlighted HTML.
3993
- * @memberof Prism
3994
- * @public
3995
- * @example
3996
- * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');
3997
- */
3998
- highlight: function(text, grammar, language) {
3999
- var env = {
4000
- code: text,
4001
- grammar,
4002
- language
4003
- };
4004
- if (_.hooks.run("before-tokenize", env), !env.grammar)
4005
- throw new Error('The language "' + env.language + '" has no grammar.');
4006
- return env.tokens = _.tokenize(env.code, env.grammar), _.hooks.run("after-tokenize", env), Token.stringify(_.util.encode(env.tokens), env.language);
4007
- },
4008
- /**
4009
- * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input
4010
- * and the language definitions to use, and returns an array with the tokenized code.
4011
- *
4012
- * When the language definition includes nested tokens, the function is called recursively on each of these tokens.
4013
- *
4014
- * This method could be useful in other contexts as well, as a very crude parser.
4015
- *
4016
- * @param {string} text A string with the code to be highlighted.
4017
- * @param {Grammar} grammar An object containing the tokens to use.
4018
- *
4019
- * Usually a language definition like `Prism.languages.markup`.
4020
- * @returns {TokenStream} An array of strings and tokens, a token stream.
4021
- * @memberof Prism
4022
- * @public
4023
- * @example
4024
- * let code = `var foo = 0;`;
4025
- * let tokens = Prism.tokenize(code, Prism.languages.javascript);
4026
- * tokens.forEach(token => {
4027
- * if (token instanceof Prism.Token && token.type === 'number') {
4028
- * console.log(`Found numeric literal: ${token.content}`);
4029
- * }
4030
- * });
4031
- */
4032
- tokenize: function(text, grammar) {
4033
- var rest = grammar.rest;
4034
- if (rest) {
4035
- for (var token in rest)
4036
- grammar[token] = rest[token];
4037
- delete grammar.rest;
4038
- }
4039
- var tokenList = new LinkedList();
4040
- return addAfter(tokenList, tokenList.head, text), matchGrammar(text, tokenList, grammar, tokenList.head, 0), toArray(tokenList);
4041
- },
4042
- /**
4043
- * @namespace
4044
- * @memberof Prism
4045
- * @public
4046
- */
4047
- hooks: {
4048
- all: {},
4049
- /**
4050
- * Adds the given callback to the list of callbacks for the given hook.
4051
- *
4052
- * The callback will be invoked when the hook it is registered for is run.
4053
- * Hooks are usually directly run by a highlight function but you can also run hooks yourself.
4054
- *
4055
- * One callback function can be registered to multiple hooks and the same hook multiple times.
4056
- *
4057
- * @param {string} name The name of the hook.
4058
- * @param {HookCallback} callback The callback function which is given environment variables.
4059
- * @public
4060
- */
4061
- add: function(name, callback) {
4062
- var hooks = _.hooks.all;
4063
- hooks[name] = hooks[name] || [], hooks[name].push(callback);
4064
- },
4065
- /**
4066
- * Runs a hook invoking all registered callbacks with the given environment variables.
4067
- *
4068
- * Callbacks will be invoked synchronously and in the order in which they were registered.
4069
- *
4070
- * @param {string} name The name of the hook.
4071
- * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.
4072
- * @public
4073
- */
4074
- run: function(name, env) {
4075
- var callbacks = _.hooks.all[name];
4076
- if (!(!callbacks || !callbacks.length))
4077
- for (var i = 0, callback; callback = callbacks[i++]; )
4078
- callback(env);
4079
- }
4080
- },
4081
- Token
4082
- };
4083
- function Token(type, content, alias2, matchedStr) {
4084
- this.type = type, this.content = content, this.alias = alias2, this.length = (matchedStr || "").length | 0;
4085
- }
4086
- function matchPattern(pattern, pos, text, lookbehind) {
4087
- pattern.lastIndex = pos;
4088
- var match = pattern.exec(text);
4089
- if (match && lookbehind && match[1]) {
4090
- var lookbehindLength = match[1].length;
4091
- match.index += lookbehindLength, match[0] = match[0].slice(lookbehindLength);
4092
- }
4093
- return match;
4094
- }
4095
- function matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {
4096
- for (var token in grammar)
4097
- if (!(!grammar.hasOwnProperty(token) || !grammar[token])) {
4098
- var patterns = grammar[token];
4099
- patterns = Array.isArray(patterns) ? patterns : [patterns];
4100
- for (var j = 0; j < patterns.length; ++j) {
4101
- if (rematch && rematch.cause == token + "," + j)
4102
- return;
4103
- var patternObj = patterns[j], inside = patternObj.inside, lookbehind = !!patternObj.lookbehind, greedy = !!patternObj.greedy, alias2 = patternObj.alias;
4104
- if (greedy && !patternObj.pattern.global) {
4105
- var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];
4106
- patternObj.pattern = RegExp(patternObj.pattern.source, flags + "g");
4107
- }
4108
- for (var pattern = patternObj.pattern || patternObj, currentNode = startNode.next, pos = startPos; currentNode !== tokenList.tail && !(rematch && pos >= rematch.reach); pos += currentNode.value.length, currentNode = currentNode.next) {
4109
- var str = currentNode.value;
4110
- if (tokenList.length > text.length)
4111
- return;
4112
- if (!(str instanceof Token)) {
4113
- var removeCount = 1, match;
4114
- if (greedy) {
4115
- if (match = matchPattern(pattern, pos, text, lookbehind), !match || match.index >= text.length)
4116
- break;
4117
- var from = match.index, to = match.index + match[0].length, p = pos;
4118
- for (p += currentNode.value.length; from >= p; )
4119
- currentNode = currentNode.next, p += currentNode.value.length;
4120
- if (p -= currentNode.value.length, pos = p, currentNode.value instanceof Token)
4121
- continue;
4122
- for (var k = currentNode; k !== tokenList.tail && (p < to || typeof k.value == "string"); k = k.next)
4123
- removeCount++, p += k.value.length;
4124
- removeCount--, str = text.slice(pos, p), match.index -= pos;
4125
- } else if (match = matchPattern(pattern, 0, str, lookbehind), !match)
4126
- continue;
4127
- var from = match.index, matchStr = match[0], before = str.slice(0, from), after = str.slice(from + matchStr.length), reach = pos + str.length;
4128
- rematch && reach > rematch.reach && (rematch.reach = reach);
4129
- var removeFrom = currentNode.prev;
4130
- before && (removeFrom = addAfter(tokenList, removeFrom, before), pos += before.length), removeRange(tokenList, removeFrom, removeCount);
4131
- var wrapped = new Token(
4132
- token,
4133
- inside ? _.tokenize(matchStr, inside) : matchStr,
4134
- alias2,
4135
- matchStr
4136
- );
4137
- if (currentNode = addAfter(tokenList, removeFrom, wrapped), after && addAfter(tokenList, currentNode, after), removeCount > 1) {
4138
- var nestedRematch = {
4139
- cause: token + "," + j,
4140
- reach
4141
- };
4142
- matchGrammar(
4143
- text,
4144
- tokenList,
4145
- grammar,
4146
- currentNode.prev,
4147
- pos,
4148
- nestedRematch
4149
- ), rematch && nestedRematch.reach > rematch.reach && (rematch.reach = nestedRematch.reach);
4150
- }
4151
- }
4152
- }
4153
- }
4154
- }
4155
- }
4156
- function LinkedList() {
4157
- var head = { value: null, prev: null, next: null }, tail = { value: null, prev: head, next: null };
4158
- head.next = tail, this.head = head, this.tail = tail, this.length = 0;
4159
- }
4160
- function addAfter(list, node, value) {
4161
- var next = node.next, newNode = { value, prev: node, next };
4162
- return node.next = newNode, next.prev = newNode, list.length++, newNode;
4163
- }
4164
- function removeRange(list, node, count) {
4165
- for (var next = node.next, i = 0; i < count && next !== list.tail; i++)
4166
- next = next.next;
4167
- node.next = next, next.prev = node, list.length -= i;
4168
- }
4169
- function toArray(list) {
4170
- for (var array = [], node = list.head.next; node !== list.tail; )
4171
- array.push(node.value), node = node.next;
4172
- return array;
4173
- }
4174
- const Prism = _;
4175
- function Refractor$1() {
4176
- }
4177
- Refractor$1.prototype = Prism;
4178
- const refractor = new Refractor$1();
4179
- refractor.highlight = highlight;
4180
- refractor.register = register;
4181
- refractor.alias = alias;
4182
- refractor.registered = registered;
4183
- refractor.listLanguages = listLanguages;
4184
- refractor.util.encode = encode;
4185
- refractor.Token.stringify = stringify;
4186
- function highlight(value, language) {
4187
- if (typeof value != "string")
4188
- throw new TypeError("Expected `string` for `value`, got `" + value + "`");
4189
- let grammar, name;
4190
- if (language && typeof language == "object")
4191
- grammar = language;
4192
- else {
4193
- if (name = language, typeof name != "string")
4194
- throw new TypeError("Expected `string` for `name`, got `" + name + "`");
4195
- if (Object.hasOwn(refractor.languages, name))
4196
- grammar = refractor.languages[name];
4197
- else
4198
- throw new Error("Unknown language: `" + name + "` is not registered");
4199
- }
4200
- return {
4201
- type: "root",
4202
- // @ts-expect-error: we hacked Prism to accept and return the things we want.
4203
- children: Prism.highlight.call(refractor, value, grammar, name)
4204
- };
4205
- }
4206
- function register(syntax) {
4207
- if (typeof syntax != "function" || !syntax.displayName)
4208
- throw new Error("Expected `function` for `syntax`, got `" + syntax + "`");
4209
- Object.hasOwn(refractor.languages, syntax.displayName) || syntax(refractor);
4210
- }
4211
- function alias(language, alias2) {
4212
- const languages = refractor.languages;
4213
- let map = {};
4214
- typeof language == "string" ? alias2 && (map[language] = alias2) : map = language;
4215
- let key;
4216
- for (key in map)
4217
- if (Object.hasOwn(map, key)) {
4218
- const value = map[key], list = typeof value == "string" ? [value] : value;
4219
- let index = -1;
4220
- for (; ++index < list.length; )
4221
- languages[list[index]] = languages[key];
4222
- }
4223
- }
4224
- function registered(aliasOrLanguage) {
4225
- if (typeof aliasOrLanguage != "string")
4226
- throw new TypeError(
4227
- "Expected `string` for `aliasOrLanguage`, got `" + aliasOrLanguage + "`"
4228
- );
4229
- return Object.hasOwn(refractor.languages, aliasOrLanguage);
4230
- }
4231
- function listLanguages() {
4232
- const languages = refractor.languages, list = [];
4233
- let language;
4234
- for (language in languages)
4235
- Object.hasOwn(languages, language) && typeof languages[language] == "object" && list.push(language);
4236
- return list;
4237
- }
4238
- function stringify(value, language) {
4239
- if (typeof value == "string")
4240
- return { type: "text", value };
4241
- if (Array.isArray(value)) {
4242
- const result = [];
4243
- let index = -1;
4244
- for (; ++index < value.length; )
4245
- value[index] !== null && value[index] !== void 0 && value[index] !== "" && result.push(
4246
- /** @type {Element | Text} */
4247
- stringify(value[index], language)
4248
- );
4249
- return result;
4250
- }
4251
- const env = {
4252
- attributes: {},
4253
- classes: ["token", value.type],
4254
- content: stringify(value.content, language),
4255
- language,
4256
- tag: "span",
4257
- type: value.type
4258
- };
4259
- return value.alias && env.classes.push(
4260
- ...typeof value.alias == "string" ? [value.alias] : value.alias
4261
- ), refractor.hooks.run("wrap", env), h(
4262
- env.tag + "." + env.classes.join("."),
4263
- attributes(env.attributes),
4264
- env.content
4265
- );
4266
- }
4267
- function encode(tokens) {
4268
- return tokens;
4269
- }
4270
- function attributes(record) {
4271
- let key;
4272
- for (key in record)
4273
- Object.hasOwn(record, key) && (record[key] = parseEntities(record[key]));
4274
- return record;
4275
- }
4276
- const convert = (
4277
- // Note: overloads in JSDoc can’t yet use different `@template`s.
4278
- /**
4279
- * @type {(
4280
- * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &
4281
- * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &
4282
- * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &
4283
- * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &
4284
- * ((test?: Test) => Check)
4285
- * )}
4286
- */
4287
- /**
4288
- * @param {Test} [test]
4289
- * @returns {Check}
4290
- */
4291
- function(test) {
4292
- if (test == null)
4293
- return ok;
4294
- if (typeof test == "function")
4295
- return castFactory(test);
4296
- if (typeof test == "object")
4297
- return Array.isArray(test) ? anyFactory(test) : (
4298
- // Cast because `ReadonlyArray` goes into the above but `isArray`
4299
- // narrows to `Array`.
4300
- propertiesFactory(
4301
- /** @type {Props} */
4302
- test
4303
- )
4304
- );
4305
- if (typeof test == "string")
4306
- return typeFactory(test);
4307
- throw new Error("Expected function, string, or object as test");
4308
- }
4309
- );
4310
- function anyFactory(tests) {
4311
- const checks2 = [];
4312
- let index = -1;
4313
- for (; ++index < tests.length; )
4314
- checks2[index] = convert(tests[index]);
4315
- return castFactory(any);
4316
- function any(...parameters) {
4317
- let index2 = -1;
4318
- for (; ++index2 < checks2.length; )
4319
- if (checks2[index2].apply(this, parameters)) return !0;
4320
- return !1;
4321
- }
4322
- }
4323
- function propertiesFactory(check) {
4324
- const checkAsRecord = (
4325
- /** @type {Record<string, unknown>} */
4326
- check
4327
- );
4328
- return castFactory(all);
4329
- function all(node) {
4330
- const nodeAsRecord = (
4331
- /** @type {Record<string, unknown>} */
4332
- /** @type {unknown} */
4333
- node
4334
- );
4335
- let key;
4336
- for (key in check)
4337
- if (nodeAsRecord[key] !== checkAsRecord[key]) return !1;
4338
- return !0;
4339
- }
4340
- }
4341
- function typeFactory(check) {
4342
- return castFactory(type);
4343
- function type(node) {
4344
- return node && node.type === check;
4345
- }
4346
- }
4347
- function castFactory(testFunction) {
4348
- return check;
4349
- function check(value, index, parent2) {
4350
- return !!(looksLikeANode(value) && testFunction.call(
4351
- this,
4352
- value,
4353
- typeof index == "number" ? index : void 0,
4354
- parent2 || void 0
4355
- ));
4356
- }
4357
- }
4358
- function ok() {
4359
- return !0;
4360
- }
4361
- function looksLikeANode(value) {
4362
- return value !== null && typeof value == "object" && "type" in value;
4363
- }
4364
- const own = {}.hasOwnProperty;
4365
- function filter(tree, options, test) {
4366
- const is = convert(options), cascadeRaw = options && typeof options == "object" && "cascade" in options ? (
4367
- /** @type {boolean | null | undefined} */
4368
- options.cascade
4369
- ) : void 0, cascade = cascadeRaw ?? !0;
4370
- return preorder(tree);
4371
- function preorder(node, index, parentNode) {
4372
- const children = [];
4373
- if (!is(node, index, parentNode)) return;
4374
- if (parent(node)) {
4375
- let childIndex = -1;
4376
- for (; ++childIndex < node.children.length; ) {
4377
- const result = preorder(node.children[childIndex], childIndex, node);
4378
- result && children.push(result);
4379
- }
4380
- if (cascade && node.children.length > 0 && children.length === 0)
4381
- return;
4382
- }
4383
- const next = {};
4384
- let key;
4385
- for (key in node)
4386
- own.call(node, key) && (next[key] = key === "children" ? children : node[key]);
4387
- return next;
4388
- }
4389
- }
4390
- function parent(node) {
4391
- return "children" in node && node.children !== void 0;
4392
- }
4393
- const empty = [], CONTINUE = !0, EXIT = !1, SKIP = "skip";
4394
- function visitParents(tree, test, visitor, reverse) {
4395
- let check;
4396
- typeof test == "function" && typeof visitor != "function" ? (reverse = visitor, visitor = test) : check = test;
4397
- const is = convert(check), step = reverse ? -1 : 1;
4398
- factory(tree, void 0, [])();
4399
- function factory(node, index, parents) {
4400
- const value = (
4401
- /** @type {Record<string, unknown>} */
4402
- node && typeof node == "object" ? node : {}
4403
- );
4404
- if (typeof value.type == "string") {
4405
- const name = (
4406
- // `hast`
4407
- typeof value.tagName == "string" ? value.tagName : (
4408
- // `xast`
4409
- typeof value.name == "string" ? value.name : void 0
4410
- )
4411
- );
4412
- Object.defineProperty(visit, "name", {
4413
- value: "node (" + (node.type + (name ? "<" + name + ">" : "")) + ")"
4414
- });
4415
- }
4416
- return visit;
4417
- function visit() {
4418
- let result = empty, subresult, offset, grandparents;
4419
- if ((!test || is(node, index, parents[parents.length - 1] || void 0)) && (result = toResult(visitor(node, parents)), result[0] === EXIT))
4420
- return result;
4421
- if ("children" in node && node.children) {
4422
- const nodeAsParent = (
4423
- /** @type {UnistParent} */
4424
- node
4425
- );
4426
- if (nodeAsParent.children && result[0] !== SKIP)
4427
- for (offset = (reverse ? nodeAsParent.children.length : -1) + step, grandparents = parents.concat(nodeAsParent); offset > -1 && offset < nodeAsParent.children.length; ) {
4428
- const child = nodeAsParent.children[offset];
4429
- if (subresult = factory(child, offset, grandparents)(), subresult[0] === EXIT)
4430
- return subresult;
4431
- offset = typeof subresult[1] == "number" ? subresult[1] : offset + step;
4432
- }
4433
- }
4434
- return result;
4435
- }
4436
- }
4437
- }
4438
- function toResult(value) {
4439
- return Array.isArray(value) ? value : typeof value == "number" ? [CONTINUE, value] : value == null ? empty : [value];
4440
- }
4441
- var __defProp$2 = Object.defineProperty, __defProps$2 = Object.defineProperties, __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors, __getOwnPropSymbols$2 = Object.getOwnPropertySymbols, __hasOwnProp$2 = Object.prototype.hasOwnProperty, __propIsEnum$2 = Object.prototype.propertyIsEnumerable, __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value, __spreadValues$2 = (a, b) => {
4442
- for (var prop in b || (b = {}))
4443
- __hasOwnProp$2.call(b, prop) && __defNormalProp$2(a, prop, b[prop]);
4444
- if (__getOwnPropSymbols$2)
4445
- for (var prop of __getOwnPropSymbols$2(b))
4446
- __propIsEnum$2.call(b, prop) && __defNormalProp$2(a, prop, b[prop]);
4447
- return a;
4448
- }, __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
4449
- function addMarkers(ast, options) {
4450
- const markers = options.markers.map((marker) => typeof marker == "number" ? { line: marker } : marker).sort((nodeA, nodeB) => nodeA.line - nodeB.line), numbered = lineNumberify(ast.children).nodes;
4451
- return markers.length === 0 || numbered.length === 0 ? __spreadProps$2(__spreadValues$2({}, ast), { children: numbered }) : wrapLines(numbered, markers, options);
4452
- }
4453
- function lineNumberify(ast, context = { lineNumber: 1 }) {
4454
- const resultNodes = [];
4455
- return ast.reduce(
4456
- (result, node) => {
4457
- if (node.type === "doctype")
4458
- return result;
4459
- const lineStart = context.lineNumber;
4460
- if (node.type === "text") {
4461
- if (node.value.indexOf(`
4462
- `) === -1)
4463
- return setLineInfo(node, lineStart, lineStart), result.nodes.push(node), result;
4464
- const lines = node.value.split(`
4465
- `);
4466
- for (let i = 0; i < lines.length; i++) {
4467
- const lineNum = i === 0 ? context.lineNumber : ++context.lineNumber, text = {
4468
- type: "text",
4469
- value: i === lines.length - 1 ? lines[i] : `${lines[i]}
4470
- `
4471
- }, withLineInfo = setLineInfo(text, lineNum, lineNum);
4472
- result.nodes.push(withLineInfo);
4473
- }
4474
- return result.lineNumber = context.lineNumber, result;
4475
- }
4476
- if (node.type === "element" && node.children) {
4477
- const processed = lineNumberify(node.children, context), firstChild = processed.nodes.find(isElementOrText), lastChild = processed.nodes.findLast(isElementOrText);
4478
- return setLineInfo(
4479
- node,
4480
- firstChild ? getLineStart(firstChild, lineStart) : lineStart,
4481
- lastChild ? getLineEnd(lastChild, lineStart) : lineStart
4482
- ), node.children = processed.nodes, result.lineNumber = processed.lineNumber, result.nodes.push(node), result;
4483
- }
4484
- return result.nodes.push(node), result;
4485
- },
4486
- { nodes: resultNodes, lineNumber: context.lineNumber }
4487
- );
4488
- }
4489
- function isElementOrText(node) {
4490
- return node.type === "element" || node.type === "text";
4491
- }
4492
- function getLineStart(node, fallbackLineStart = 1) {
4493
- return node.data && typeof node.data.lineStart == "number" ? node.data.lineStart : fallbackLineStart;
4494
- }
4495
- function getLineEnd(node, fallbackLineEnd = 1) {
4496
- return node.data && typeof node.data.lineEnd == "number" ? node.data.lineEnd : fallbackLineEnd;
4497
- }
4498
- function setLineInfo(node, lineStart, lineEnd) {
4499
- return node.data || (node.data = {}), node.data.lineStart = lineStart, node.data.lineEnd = lineEnd, node;
4500
- }
4501
- function unwrapLine(markerLine, nodes) {
4502
- const tree = { type: "root", children: nodes }, headMap = /* @__PURE__ */ new WeakMap(), lineMap = /* @__PURE__ */ new WeakMap(), tailMap = /* @__PURE__ */ new WeakMap(), cloned = [];
4503
- function addCopy(map, node, ancestors) {
4504
- cloned.push(node), ancestors.forEach((ancestor) => {
4505
- map.has(ancestor) || (map.set(ancestor, Object.assign({}, ancestor, { children: [] })), ancestor !== tree && cloned.push(ancestor));
4506
- });
4507
- let i = ancestors.length;
4508
- for (; i--; ) {
4509
- const ancestor = map.get(ancestors[i]);
4510
- if (!ancestor || !("children" in ancestor))
4511
- continue;
4512
- const child = ancestors[i + 1], leaf = map.get(child) || node;
4513
- ancestor.children.indexOf(leaf) === -1 && ancestor.children.push(leaf);
4514
- }
4515
- }
4516
- visitParents(tree, (node, ancestors) => {
4517
- if (!("children" in node || !isElementOrText(node))) {
4518
- if (getLineStart(node) < markerLine) {
4519
- addCopy(headMap, node, ancestors);
4520
- return;
4521
- }
4522
- if (getLineStart(node) === markerLine) {
4523
- addCopy(lineMap, node, ancestors);
4524
- return;
4525
- }
4526
- getLineEnd(node) > markerLine && cloned.some((clone) => ancestors.includes(clone)) && addCopy(tailMap, node, ancestors);
4527
- }
4528
- });
4529
- const filtered = filter(tree, (node) => cloned.indexOf(node) === -1), getChildren = (map) => {
4530
- const rootNode = map.get(tree);
4531
- return rootNode ? (visitParents(rootNode, (leaf, ancestors) => {
4532
- if (isElementOrText(leaf) && "children" in leaf) {
4533
- setLineInfo(leaf, 0, 0);
4534
- return;
4535
- }
4536
- ancestors.forEach((ancestor) => {
4537
- setLineInfo(
4538
- ancestor,
4539
- Math.max(getLineStart(ancestor), getLineStart(leaf)),
4540
- Math.max(getLineEnd(ancestor), getLineEnd(leaf))
4541
- );
4542
- });
4543
- }), rootNode.children) : [];
4544
- };
4545
- return [
4546
- ...getChildren(headMap),
4547
- ...getChildren(lineMap),
4548
- ...getChildren(tailMap),
4549
- ...filtered ? filtered.children : []
4550
- ];
4551
- }
4552
- function wrapBatch(children, marker, options) {
4553
- const className = marker.className || "refractor-marker", baseData = {
4554
- lineStart: marker.line,
4555
- lineEnd: getLineEnd(children[children.length - 1]),
4556
- isMarker: !0
4557
- };
4558
- return {
4559
- type: "element",
4560
- tagName: "div",
4561
- data: marker.component ? __spreadProps$2(__spreadValues$2({}, baseData), { component: marker.component, markerProperties: options }) : baseData,
4562
- properties: { className },
4563
- children
4564
- };
4565
- }
4566
- function wrapLines(treeNodes, markers, options) {
4567
- const ast = markers.reduce(
4568
- (acc, marker) => unwrapLine(marker.line, acc),
4569
- treeNodes
4570
- ), wrapped = [];
4571
- let astIndex = 0;
4572
- for (let m = 0; m < markers.length; m++) {
4573
- const marker = markers[m];
4574
- for (let node = ast[astIndex]; node && getLineEnd(node) < marker.line; node = ast[++astIndex])
4575
- wrapped.push(node);
4576
- const batch = [];
4577
- for (let node = ast[astIndex]; node && getLineEnd(node) === marker.line; node = ast[++astIndex])
4578
- node.type !== "doctype" && batch.push(node);
4579
- batch.length > 0 && wrapped.push(wrapBatch(batch, marker, options));
4580
- }
4581
- for (; astIndex < ast.length; )
4582
- wrapped.push(ast[astIndex++]);
4583
- return { type: "root", children: wrapped };
4584
- }
4585
- var __defProp$1 = Object.defineProperty, __defProps$1 = Object.defineProperties, __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors, __getOwnPropSymbols$1 = Object.getOwnPropertySymbols, __hasOwnProp$1 = Object.prototype.hasOwnProperty, __propIsEnum$1 = Object.prototype.propertyIsEnumerable, __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value, __spreadValues$1 = (a, b) => {
4586
- for (var prop in b || (b = {}))
4587
- __hasOwnProp$1.call(b, prop) && __defNormalProp$1(a, prop, b[prop]);
4588
- if (__getOwnPropSymbols$1)
4589
- for (var prop of __getOwnPropSymbols$1(b))
4590
- __propIsEnum$1.call(b, prop) && __defNormalProp$1(a, prop, b[prop]);
4591
- return a;
4592
- }, __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
4593
- function mapWithDepth(depth) {
4594
- return function(child, i) {
4595
- return mapChild(child, i, depth);
4596
- };
4597
- }
4598
- function mapChild(child, i, depth) {
4599
- if (child.type === "doctype")
4600
- return null;
4601
- if (!("tagName" in child))
4602
- return child.value;
4603
- let className = "";
4604
- typeof child.properties < "u" && (className = Array.isArray(child.properties.className) ? child.properties.className.join(" ") : `${child.properties.className}`);
4605
- const key = `fract-${depth}-${i}`, children = child.children && child.children.map(mapWithDepth(depth + 1));
4606
- return isReactRefractorMarkerDataWithComponent(child.data) ? createElement(
4607
- child.data.component,
4608
- __spreadProps$1(__spreadValues$1(__spreadValues$1({ key }, child.properties), child.data.markerProperties), { className }),
4609
- children
4610
- ) : createElement(child.tagName, { key, className }, children);
4611
- }
4612
- function isReactRefractorMarkerDataWithComponent(data) {
4613
- return typeof data == "object" && data !== null && "component" in data && "markerProperties" in data;
4614
- }
4615
- var __defProp = Object.defineProperty, __defProps = Object.defineProperties, __getOwnPropDescs = Object.getOwnPropertyDescriptors, __getOwnPropSymbols = Object.getOwnPropertySymbols, __hasOwnProp = Object.prototype.hasOwnProperty, __propIsEnum = Object.prototype.propertyIsEnumerable, __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value, __spreadValues = (a, b) => {
4616
- for (var prop in b || (b = {}))
4617
- __hasOwnProp.call(b, prop) && __defNormalProp(a, prop, b[prop]);
4618
- if (__getOwnPropSymbols)
4619
- for (var prop of __getOwnPropSymbols(b))
4620
- __propIsEnum.call(b, prop) && __defNormalProp(a, prop, b[prop]);
4621
- return a;
4622
- }, __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4623
- const DEFAULT_CLASSNAME = "refractor";
4624
- function Refractor(props) {
4625
- const className = props.className || DEFAULT_CLASSNAME, langClassName = `language-${props.language}`, codeProps = { className: langClassName }, preClass = [className, langClassName].filter(Boolean).join(" ");
4626
- if (props.inline && (codeProps.style = { display: "inline" }, codeProps.className = className), props.plainText) {
4627
- const code2 = /* @__PURE__ */ jsx("code", __spreadProps(__spreadValues({}, codeProps), { children: props.value }));
4628
- return props.inline ? code2 : /* @__PURE__ */ jsx("pre", { className: preClass, children: code2 });
4629
- }
4630
- let ast = refractor.highlight(props.value, props.language);
4631
- props.markers && props.markers.length > 0 && (ast = addMarkers(ast, { markers: props.markers }));
4632
- const value = ast.children.length === 0 ? props.value : ast.children.map(mapWithDepth(0)), code = /* @__PURE__ */ jsx("code", __spreadProps(__spreadValues({}, codeProps), { children: value }));
4633
- return props.inline ? code : /* @__PURE__ */ jsx("pre", { className: preClass, children: code });
4634
- }
4635
- const hasLanguage = (lang) => refractor.registered(lang);
4636
- function LazyRefractor(props) {
4637
- let $ = distExports.c(13), { language: languageProp, value } = props, language = typeof languageProp == "string" ? languageProp : void 0, t0;
4638
- $[0] === language ? t0 = $[1] : (t0 = language ? hasLanguage(language) : !1, $[0] = language, $[1] = t0);
4639
- let registered2 = t0, t1;
4640
- $[2] !== language || $[3] !== registered2 || $[4] !== value ? (t1 = !(language && registered2) && /* @__PURE__ */ jsx("code", { children: value }), $[2] = language, $[3] = registered2, $[4] = value, $[5] = t1) : t1 = $[5];
4641
- let t2;
4642
- $[6] !== language || $[7] !== registered2 || $[8] !== value ? (t2 = language && registered2 && /* @__PURE__ */ jsx(Refractor, {
4643
- inline: !0,
4644
- language,
4645
- value: String(value)
4646
- }), $[6] = language, $[7] = registered2, $[8] = value, $[9] = t2) : t2 = $[9];
4647
- let t3;
4648
- return $[10] !== t1 || $[11] !== t2 ? (t3 = /* @__PURE__ */ jsxs(Fragment, { children: [t1, t2] }), $[10] = t1, $[11] = t2, $[12] = t3) : t3 = $[12], t3;
4649
- }
4650
- LazyRefractor.displayName = "LazyRefractor";
4651
- export {
4652
- LazyRefractor as default
4653
- };
4654
- //# sourceMappingURL=refractor.js.map