@pacem/pacem-theme-css 0.0.0-stage → 2.0.0-abel
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +191 -0
- package/NOTICE +4 -0
- package/README.md +142 -3
- package/cli.js +26 -0
- package/pacem-themes.json +10 -0
- package/package.json +45 -6
- package/src/2d/index.css +44 -0
- package/src/3d/index.css +49 -0
- package/src/base/animations.css +82 -0
- package/src/base/attributes.css +19 -0
- package/src/base/backgrounds.css +37 -0
- package/src/base/body.css +199 -0
- package/src/base/content.css +4 -0
- package/src/base/icons.css +74 -0
- package/src/base/logging.css +5 -0
- package/src/base/overrides.css +3 -0
- package/src/base/preloader.css +17 -0
- package/src/base/reset.css +50 -0
- package/src/base/shell.css +3 -0
- package/src/base/text.css +184 -0
- package/src/basic/index.css +285 -0
- package/src/charts/generated/colors.css +49 -0
- package/src/charts/index.css +573 -0
- package/src/fx/index.css +230 -0
- package/src/layout/address.css +46 -0
- package/src/layout/animations.css +33 -0
- package/src/layout/borders.css +63 -0
- package/src/layout/box.css +271 -0
- package/src/layout/breadcrumbs.css +114 -0
- package/src/layout/cards.css +246 -0
- package/src/layout/coloring.css +862 -0
- package/src/layout/container.css +40 -0
- package/src/layout/corners.css +52 -0
- package/src/layout/datatable.css +324 -0
- package/src/layout/elevation.css +73 -0
- package/src/layout/fetch-feedback.css +125 -0
- package/src/layout/generated/borders.css +403 -0
- package/src/layout/generated/card-ribbon.css +94 -0
- package/src/layout/generated/card-sides.css +888 -0
- package/src/layout/generated/grid-system.css +308 -0
- package/src/layout/generated/grids.css +952 -0
- package/src/layout/generated/layout-stretch.css +132 -0
- package/src/layout/generated/positioning.css +323 -0
- package/src/layout/generated/sizing.css +478 -0
- package/src/layout/generated/spacing.css +1988 -0
- package/src/layout/generated/visibility.css +384 -0
- package/src/layout/grid-system.css +49 -0
- package/src/layout/grids.css +92 -0
- package/src/layout/index.css +39 -0
- package/src/layout/interactive.css +11 -0
- package/src/layout/layout.css +479 -0
- package/src/layout/lists.css +104 -0
- package/src/layout/other.css +25 -0
- package/src/layout/panels.css +337 -0
- package/src/layout/positioning.css +108 -0
- package/src/layout/scroll.css +85 -0
- package/src/layout/shapes.css +20 -0
- package/src/layout/shell.css +3 -0
- package/src/layout/sizing.css +25 -0
- package/src/layout/spacing.css +17 -0
- package/src/layout/superposition-system.css +116 -0
- package/src/layout/tokens-chips.css +15 -0
- package/src/layout/toolbar.css +30 -0
- package/src/layout/typography.css +106 -0
- package/src/layout/visibility.css +231 -0
- package/src/maps/index.css +20 -0
- package/src/media/index.css +6 -0
- package/src/media.css +18 -0
- package/src/pacem-content.css +24 -0
- package/src/pacem-shell.css +14 -0
- package/src/pacem.css +35 -0
- package/src/plus/carousel.css +327 -0
- package/src/plus/datagrid.css +68 -0
- package/src/plus/gallery.css +186 -0
- package/src/plus/icons.css +25 -0
- package/src/plus/index.css +7 -0
- package/src/plus/misc.css +194 -0
- package/src/scaffolding/calendar-picker.css +291 -0
- package/src/scaffolding/checkbox-radio.css +118 -0
- package/src/scaffolding/checkbox.css +200 -0
- package/src/scaffolding/childform.css +156 -0
- package/src/scaffolding/color.css +129 -0
- package/src/scaffolding/contenteditable.css +403 -0
- package/src/scaffolding/datepicker.css +126 -0
- package/src/scaffolding/elements.css +30 -0
- package/src/scaffolding/fieldset.css +346 -0
- package/src/scaffolding/form.css +36 -0
- package/src/scaffolding/formfield.css +364 -0
- package/src/scaffolding/generated/calendar-picker.css +40 -0
- package/src/scaffolding/generated/colors.css +115 -0
- package/src/scaffolding/generated/formfield.css +500 -0
- package/src/scaffolding/hierarchy.css +76 -0
- package/src/scaffolding/icons.css +64 -0
- package/src/scaffolding/image.css +195 -0
- package/src/scaffolding/index.css +40 -0
- package/src/scaffolding/input.css +163 -0
- package/src/scaffolding/inputs.css +77 -0
- package/src/scaffolding/latlng.css +173 -0
- package/src/scaffolding/markdown.css +14 -0
- package/src/scaffolding/password.css +7 -0
- package/src/scaffolding/pickers.css +150 -0
- package/src/scaffolding/radio.css +68 -0
- package/src/scaffolding/select.css +59 -0
- package/src/scaffolding/slider.css +236 -0
- package/src/scaffolding/snapshot.css +167 -0
- package/src/scaffolding/suggest.css +92 -0
- package/src/scaffolding/tags.css +132 -0
- package/src/scaffolding/textarea.css +45 -0
- package/src/scaffolding/upload.css +283 -0
- package/src/scaffolding/validators.css +29 -0
- package/src/tokens/colors.css +403 -0
- package/src/tokens/components.css +16 -0
- package/src/tokens/system.css +92 -0
- package/src/tokens/theme.css +221 -0
- package/src/traits.css +18 -0
- package/src/transforms/index.css +5 -0
- package/src/ui/anchor.css +55 -0
- package/src/ui/balloon.css +573 -0
- package/src/ui/binder.css +28 -0
- package/src/ui/blade.css +83 -0
- package/src/ui/bottom-sheet.css +53 -0
- package/src/ui/button.css +626 -0
- package/src/ui/calendar.css +415 -0
- package/src/ui/collapse.css +25 -0
- package/src/ui/dialog.css +230 -0
- package/src/ui/divider.css +42 -0
- package/src/ui/generated/calendar.css +363 -0
- package/src/ui/hidden.css +40 -0
- package/src/ui/icon.css +90 -0
- package/src/ui/image.css +140 -0
- package/src/ui/index.css +30 -0
- package/src/ui/led.css +84 -0
- package/src/ui/loader.css +174 -0
- package/src/ui/markdown.css +352 -0
- package/src/ui/marquee.css +41 -0
- package/src/ui/menu.css +386 -0
- package/src/ui/pager.css +133 -0
- package/src/ui/progressbar.css +137 -0
- package/src/ui/shell.css +4 -0
- package/src/ui/sidebar.css +103 -0
- package/src/ui/sticky-header.css +22 -0
- package/src/ui/tabs.css +355 -0
- package/src/ui/ticker.css +105 -0
- package/src/ui/timeline.css +106 -0
- package/src/ui/toast.css +182 -0
- package/src/ui/toc.css +58 -0
- package/src/ui/tuner.css +196 -0
- package/src/ui/view.css +30 -0
- package/src/ui/window.css +287 -0
- package/templates/theme.css +28 -0
- package/themebuilder.js +19 -0
- package/themes/dark.css +6 -0
- package/themes/light.css +97 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
/* dock width: 1 grid spacing */
|
|
2
|
+
pacem-window-area {
|
|
3
|
+
position: fixed;
|
|
4
|
+
top: 0;
|
|
5
|
+
left: 0;
|
|
6
|
+
bottom: 0;
|
|
7
|
+
right: 0;
|
|
8
|
+
padding: 0;
|
|
9
|
+
margin: 0;
|
|
10
|
+
overflow: hidden;
|
|
11
|
+
pointer-events: none;
|
|
12
|
+
display: grid;
|
|
13
|
+
grid-template-columns: 1fr var(--pacem-grid-spacing);
|
|
14
|
+
grid-gap: 0;
|
|
15
|
+
grid-template-areas: 'float dock';
|
|
16
|
+
grid-auto-rows: min-content;
|
|
17
|
+
z-index: calc(var(--pacem-zindex-lightbox) - 2);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* .WinTitle(background, color): --pacem--wt, --pacem--wt-ink */
|
|
21
|
+
pacem-window > .window-title,
|
|
22
|
+
pacem-window-area > pacem-adapter.windows-adapter ol.pacem-adapter-dashboard > li > pacem-button.pacem-adapter-page > pacem-span {
|
|
23
|
+
--pacem--wt: var(--pacem-color-button-back);
|
|
24
|
+
--pacem--wt-ink: var(--pacem-color-button-fore);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
pacem-window {
|
|
28
|
+
--pacem--win-h: calc(var(--pacem-grid-spacing) * 1.3333);
|
|
29
|
+
display: grid;
|
|
30
|
+
grid-column-gap: calc(var(--pacem-grid-spacing) / 3);
|
|
31
|
+
grid-row-gap: calc(var(--pacem-grid-spacing) / 3);
|
|
32
|
+
grid-template-columns: 1fr auto;
|
|
33
|
+
grid-template-rows: auto 1fr;
|
|
34
|
+
grid-template-areas: 'title buttons' 'content content';
|
|
35
|
+
padding: calc(var(--pacem-grid-spacing) / 2);
|
|
36
|
+
border-radius: var(--pacem-border-radius);
|
|
37
|
+
box-sizing: border-box;
|
|
38
|
+
background-color: var(--pacem-color-background);
|
|
39
|
+
min-width: var(--pacem-layout-aside-width);
|
|
40
|
+
min-height: calc(var(--pacem--win-h) + var(--pacem-grid-spacing));
|
|
41
|
+
|
|
42
|
+
&.window-border {
|
|
43
|
+
border: 1px solid var(--pacem-color-window-border);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
:--blur & {
|
|
47
|
+
background-color: rgb(from var(--pacem-color-background) r g b / 50%);
|
|
48
|
+
backdrop-filter: blur(6px);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* corners (when the border radius is 0): drawn by layout/corners.css */
|
|
52
|
+
&.window-corners {
|
|
53
|
+
--pacem--corners-color: rgb(from var(--pacem-color-window-border) r g b / calc(1 - sign(var(--pacem-border-radius))));
|
|
54
|
+
|
|
55
|
+
&.corners-safe {
|
|
56
|
+
margin: calc(1px - 1px * sign(var(--pacem-border-radius)));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
> .window-title {
|
|
61
|
+
grid-area: title;
|
|
62
|
+
font-family: var(--pacem-font-main);
|
|
63
|
+
font-size: calc(1.1rem * var(--pacem-font-main-rem-factor));
|
|
64
|
+
overflow: hidden;
|
|
65
|
+
white-space: nowrap;
|
|
66
|
+
text-overflow: ellipsis;
|
|
67
|
+
cursor: default;
|
|
68
|
+
|
|
69
|
+
> * {
|
|
70
|
+
pointer-events: none;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&.window-accent > .window-title { --pacem--wt: var(--pacem-color-accent); --pacem--wt-ink: var(--pacem-color-accent-inverse); }
|
|
75
|
+
&.window-primary > .window-title { --pacem--wt: var(--pacem-color-primary); --pacem--wt-ink: var(--pacem-color-primary-inverse); }
|
|
76
|
+
&.window-success > .window-title { --pacem--wt: var(--pacem-color-success); --pacem--wt-ink: var(--pacem-color-success-inverse); }
|
|
77
|
+
&.window-danger > .window-title { --pacem--wt: var(--pacem-color-danger); --pacem--wt-ink: var(--pacem-color-danger-inverse); }
|
|
78
|
+
&.window-warning > .window-title { --pacem--wt: var(--pacem-color-warning); --pacem--wt-ink: var(--pacem-color-warning-inverse); }
|
|
79
|
+
|
|
80
|
+
> .window-buttons {
|
|
81
|
+
grid-area: buttons;
|
|
82
|
+
padding: 0;
|
|
83
|
+
margin: 0;
|
|
84
|
+
|
|
85
|
+
pacem-button[data-icon-glyph]::before {
|
|
86
|
+
font-size: calc(1.125rem * var(--pacem-font-std-rem-factor));
|
|
87
|
+
padding: 0;
|
|
88
|
+
margin: 0;
|
|
89
|
+
vertical-align: middle;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
> .window-content {
|
|
94
|
+
grid-area: content;
|
|
95
|
+
overflow: auto;
|
|
96
|
+
|
|
97
|
+
:--dark-scheme & {
|
|
98
|
+
background-color: rgb(from var(--pacem-theme-light) r g b / 1.25%);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
:--light-scheme & {
|
|
102
|
+
background-color: rgb(from var(--pacem-theme-dark) r g b / 1.25%);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
> .window-title,
|
|
107
|
+
> .window-buttons pacem-button {
|
|
108
|
+
height: var(--pacem--win-h);
|
|
109
|
+
line-height: var(--pacem--win-h);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
> .window-content,
|
|
113
|
+
> .window-title,
|
|
114
|
+
> .window-buttons pacem-button {
|
|
115
|
+
padding: 0 calc(var(--pacem-grid-spacing) / 3);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
&.window-min:not(.window-dock) {
|
|
119
|
+
padding-bottom: calc(var(--pacem-grid-spacing) / 2 - var(--pacem-grid-spacing) / 3);
|
|
120
|
+
height: calc(var(--pacem--win-h) + var(--pacem-grid-spacing)) !important;
|
|
121
|
+
|
|
122
|
+
.window-content {
|
|
123
|
+
opacity: 0;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
pacem-window > .window-title,
|
|
129
|
+
pacem-window-area > pacem-adapter.windows-adapter ol.pacem-adapter-dashboard > li > pacem-button.pacem-adapter-page > pacem-span {
|
|
130
|
+
background-color: rgb(from var(--pacem--wt) r g b / 80%);
|
|
131
|
+
color: var(--pacem--wt-ink);
|
|
132
|
+
|
|
133
|
+
&:hover {
|
|
134
|
+
background-color: var(--pacem--wt);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
pacem-window-area > pacem-window {
|
|
139
|
+
grid-area: float;
|
|
140
|
+
position: absolute;
|
|
141
|
+
top: calc(var(--pacem-layout-header-height) + var(--pacem-grid-spacing));
|
|
142
|
+
left: calc(var(--pacem-layout-aside-width) + var(--pacem-grid-spacing));
|
|
143
|
+
width: 25vw;
|
|
144
|
+
height: 15.45vw;
|
|
145
|
+
pointer-events: auto;
|
|
146
|
+
box-shadow: 0 calc(var(--pacem-grid-spacing) / 12) calc(var(--pacem-grid-spacing) / 3) rgba(0,0,0,0.125);
|
|
147
|
+
|
|
148
|
+
:--shadows & {
|
|
149
|
+
box-shadow: 0 calc(var(--pacem-grid-spacing) / 3) var(--pacem-grid-spacing) rgba(0,0,0,0.25);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
&.window-dock {
|
|
153
|
+
position: fixed;
|
|
154
|
+
transform: translateX(var(--pacem-layout-aside-width)) !important;
|
|
155
|
+
z-index: 1 !important;
|
|
156
|
+
width: var(--pacem-layout-aside-width) !important;
|
|
157
|
+
right: 0;
|
|
158
|
+
top: 0;
|
|
159
|
+
bottom: 0;
|
|
160
|
+
left: auto;
|
|
161
|
+
height: auto !important;
|
|
162
|
+
padding-right: calc(var(--pacem-grid-spacing) * 1.5);
|
|
163
|
+
opacity: 0;
|
|
164
|
+
|
|
165
|
+
&.dock-open:not(.docking-in) {
|
|
166
|
+
transform: matrix(1,0,0,1,0,0) !important;
|
|
167
|
+
z-index: 2 !important;
|
|
168
|
+
opacity: 1;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/* adapter */
|
|
174
|
+
pacem-window-area > pacem-adapter.windows-adapter {
|
|
175
|
+
grid-area: dock;
|
|
176
|
+
z-index: 2;
|
|
177
|
+
|
|
178
|
+
> pacem-button.pacem-adapter-previous,
|
|
179
|
+
> pacem-button.pacem-adapter-next {
|
|
180
|
+
pointer-events: none !important;
|
|
181
|
+
display: none !important;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
ol.pacem-adapter-dashboard {
|
|
185
|
+
display: grid;
|
|
186
|
+
grid-row-gap: calc(var(--pacem-grid-spacing) / 10);
|
|
187
|
+
padding: 0;
|
|
188
|
+
margin: 0;
|
|
189
|
+
|
|
190
|
+
> li {
|
|
191
|
+
list-style-type: none;
|
|
192
|
+
padding: 0;
|
|
193
|
+
margin: 0;
|
|
194
|
+
|
|
195
|
+
> pacem-button.pacem-adapter-page {
|
|
196
|
+
pointer-events: auto;
|
|
197
|
+
padding: 0 0 0 calc(var(--pacem-grid-spacing) / 6);
|
|
198
|
+
height: var(--pacem-grid-cell);
|
|
199
|
+
box-sizing: border-box;
|
|
200
|
+
|
|
201
|
+
:--shadows & {
|
|
202
|
+
box-shadow: 0 calc(var(--pacem-grid-spacing) / 8) calc(var(--pacem-grid-spacing) / 4) rgba(0,0,0,.3333);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
> pacem-span {
|
|
206
|
+
display: block;
|
|
207
|
+
writing-mode: vertical-lr;
|
|
208
|
+
text-align: start;
|
|
209
|
+
padding: calc(var(--pacem-grid-spacing) / 6) 0;
|
|
210
|
+
box-sizing: border-box;
|
|
211
|
+
height: 100%;
|
|
212
|
+
width: calc(var(--pacem-grid-spacing) * 5 / 6);
|
|
213
|
+
line-height: calc(var(--pacem-grid-spacing) * 5 / 6);
|
|
214
|
+
font-size: calc(var(--pacem-grid-spacing) * 2 / 3);
|
|
215
|
+
overflow: hidden;
|
|
216
|
+
white-space: nowrap;
|
|
217
|
+
text-overflow: ellipsis;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
&.pacem-adapter-active > pacem-span {
|
|
221
|
+
--pacem--wt: var(--pacem-color-primary);
|
|
222
|
+
--pacem--wt-ink: var(--pacem-color-primary-inverse);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.pacem-body {
|
|
230
|
+
&[footer] {
|
|
231
|
+
pacem-window-area > pacem-window.window-dock {
|
|
232
|
+
bottom: var(--pacem-layout-footer-height);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
pacem-window-area > pacem-adapter.windows-adapter ol.pacem-adapter-dashboard {
|
|
236
|
+
padding-bottom: var(--pacem-layout-footer-height);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
&[bigfooter] {
|
|
241
|
+
pacem-window-area > pacem-window.window-dock {
|
|
242
|
+
bottom: var(--pacem-layout-bigfooter-height);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
pacem-window-area > pacem-adapter.windows-adapter ol.pacem-adapter-dashboard {
|
|
246
|
+
padding-bottom: var(--pacem-layout-bigfooter-height);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
&[header] {
|
|
251
|
+
pacem-window-area > pacem-window.window-dock {
|
|
252
|
+
top: var(--pacem-layout-header-height);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
pacem-window-area > pacem-adapter.windows-adapter ol.pacem-adapter-dashboard {
|
|
256
|
+
padding-top: var(--pacem-layout-header-height);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
.pacem-animations pacem-window:not(.window-dock) {
|
|
262
|
+
animation: fade-in var(--pacem-easing-out-sine) .2s;
|
|
263
|
+
|
|
264
|
+
.window-content {
|
|
265
|
+
transition: opacity linear .2s;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
&:not(.window-rescaling) {
|
|
269
|
+
transition: height var(--pacem-easing-in-out-sine) .15s;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
.pacem-animations pacem-window.window-dock:not(.docking-in) {
|
|
274
|
+
transition: transform var(--pacem-easing-in-out-sine) .3s, opacity linear .2s .1s;
|
|
275
|
+
|
|
276
|
+
&.dock-open {
|
|
277
|
+
transition: transform var(--pacem-easing-in-out-sine) .3s, opacity linear .2s;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.pacem-animations pacem-window-area > pacem-adapter.windows-adapter ol.pacem-adapter-dashboard > li > pacem-button.pacem-adapter-page {
|
|
282
|
+
animation: list-item-right var(--pacem-easing-out-sine) .35s;
|
|
283
|
+
|
|
284
|
+
> pacem-span {
|
|
285
|
+
transition: background-color linear .3s;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* Embedded in the bundles by `pacem-theme-css build` (layer pacem.app: it overrides Pacem's own rules,
|
|
2
|
+
while any unlayered stylesheet of the application still overrides it).
|
|
3
|
+
|
|
4
|
+
Available here:
|
|
5
|
+
- every token, e.g. var(--pacem-color-primary), var(--pacem-grid-spacing)
|
|
6
|
+
(list them: `npx pacem-theme-css tokens [--theme light]`);
|
|
7
|
+
- theme traits, to style some themes only: :--shadows, :--no-gradients, :--dark-scheme...
|
|
8
|
+
(list them: `npx pacem-theme-css traits`; custom traits come from the "traits" of the themes);
|
|
9
|
+
- @custom-selector :--alias <selector>; file-local aliases;
|
|
10
|
+
- breakpoints: @media (--pacem-md), (--pacem-below-sm)...;
|
|
11
|
+
- native nesting.
|
|
12
|
+
Class and element names are written with the `pacem` prefix: the build applies the configured one. */
|
|
13
|
+
|
|
14
|
+
/* token overrides valid in every theme (per-theme ones: the "tokens" file of the theme) */
|
|
15
|
+
:root, [data-theme] {
|
|
16
|
+
/* --pacem-border-radius: 4px; */
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* example: rounded cards, with a soft shadow where the theme has no shadows */
|
|
20
|
+
/*
|
|
21
|
+
.pacem-card {
|
|
22
|
+
border-radius: calc(var(--pacem-border-radius) * 2);
|
|
23
|
+
|
|
24
|
+
:--no-shadows & {
|
|
25
|
+
box-shadow: 0 2px 8px rgb(0 0 0 / .08);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
*/
|
package/themebuilder.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import Dn from"node:fs";import Hi from"node:path";import Yi from"yargs";import{hideBin as Xi}from"yargs/helpers";var Xn=Object.defineProperty,Pe=(n,t)=>{for(var e in t)Xn(n,e,{get:t[e],enumerable:!0})};Number.prototype.isCloseTo=function(n,t=14){let e=+`1e-${t}`;return this>n-e&&this<n+e};Number.prototype.roundoff=function(n=14){return parseFloat(this.toFixed(n))};Number.prototype.clamp=function(n,t){let e=this;return n!=null&&!isNaN(n)&&(e=Math.max(e,n)),t!=null&&!isNaN(t)&&(e=Math.min(e,t)),e};Number.prototype.toBase62=function(){for(var n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",t=this,e="";t!=0;){var r=t%62;e=n.charAt(r)+e,t=Math.floor(t/62)}return e};Number.prototype.toBase36=function(){return this.toString(36)};var jn=/^\/Date\([\d]+\)\/$/i,Un=class ae{static parse(t){let e;return typeof t=="string"?(jn.test(t)?e=parseInt(t.substring(6)):e=Date.parse(t),new Date(e)):typeof t=="number"?new Date(t):t}static isLeapYear(t){return t%4===0&&t%100!==0||t%400===0}static daysInMonth(t,e){return[31,ae.isLeapYear(t)?29:28,31,30,31,30,31,31,30,31,30,31][e]}static isDate(t){return t instanceof Date&&!isNaN(t.valueOf())}static dateOnly(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}static addMonths(t,e){let r=t.getDate(),s=new Date(t),i=s.getMonth()+e,o=0;for(;i<0;)i+=12,o--;return s.setDate(1),s.setMonth(i%12),s.setFullYear(s.getFullYear()+o+Math.floor(i/12)),s.setDate(Math.min(r,ae.daysInMonth(s.getFullYear(),s.getMonth()))),s}static addDays(t,e){return new Date(t.valueOf()+e*864e5)}static daysBetween(t,e){return(e.valueOf()-t.valueOf())/864e5}},q=class ce{static isNull(t){return t==null}static isEmpty(t){try{return Array.isArray(t)&&t.length===0||typeof t=="string"&&t===""||typeof t=="object"&&Object.keys(t).length===0&&!Un.isDate(t)&&!(t instanceof RegExp)&&!(t instanceof FileSystemDirectoryHandle)&&!(t instanceof FileSystemFileHandle)}catch{return!1}}static isNullOrEmpty(t){return ce.isNull(t)||ce.isEmpty(t)}};Array.prototype.distinct=function(){return Array.from(new Set(this))};Array.prototype.union=function(n){let t=q.isNullOrEmpty(this),e=q.isNullOrEmpty(n);return t&&e?[]:e?this.slice():t?n.slice():this.concat(n).distinct()};Array.prototype.moveWithin=function(n,t){let e="Index must be greater or equal than 0 and less or equal than the length of the array.";var r=this;if(n<0||n>r.length)throw new Error(e);if(t<0||t>r.length)throw new Error(e);r.splice(t,0,Array.prototype.splice.apply(r,[n,1])[0])};Array.prototype.equalsContent=function(n){if(n==null||this.length!==n.length)return!1;for(let t=0;t<this.length;t++)if(this[t]!==n[t])return!1;return!0};Array.prototype.cloneFrom=function(n){if(n==null)throw"Cannot clone array from null object.";let t=n.length;var e=this.length!==n.length;for(let r=0;r<t;r++){let s=n[r];this.length>r?this[r]!==s&&(this[r]=s,e=!0):(Array.prototype.push.apply(this,[s]),e=!0)}e&&this.splice(t)};var Te=/^hsl\s*\(\s*([\d\.]+)\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)%\s*\)$/,Re=/^hsla\s*\(\s*([\d\.]+)\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)\)$/,_e=/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/,Ae=/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d\.]+)\)$/,Ee=/^#[a-f0-9]{6}$/,Me=/^#[a-f0-9]{3}$/;function $t(n){return!q.isNullOrEmpty(n)&&typeof n=="object"&&"r"in n&&"g"in n&&"b"in n&&typeof n.r=="number"&&typeof n.b=="number"&&typeof n.g=="number"?(n.a??=1,n.r>=0&&n.r<=1&&n.g>=0&&n.g<=1&&n.b>=0&&n.b<=1&&n.a>=0&&n.a<=1):!1}function ct(n){return!q.isNullOrEmpty(n)&&typeof n=="object"&&"h"in n&&"s"in n&&"l"in n&&typeof n.h=="number"&&typeof n.s=="number"&&typeof n.l=="number"?(n.a??=1,n.h>=0&&n.h<=360&&n.s>=0&&n.s<=1&&n.l>=0&&n.l<=1&&n.a>=0&&n.a<=1):!1}function Zn(n){let t=n.r,e=n.g,r=n.b;return(.5*(Math.max(t,e,r)+Math.min(t,e,r))).clamp(0,1)}var V={adjustRgbChannel:n=>n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4),adjustRgbChannelInv:n=>n<=.00304?n*12.92:1.055*(Math.pow(n,1/2.4)-.055),adjustRgb:n=>({r:V.adjustRgbChannel(n.r),g:V.adjustRgbChannel(n.g),b:V.adjustRgbChannel(n.b),a:n.a}),adjustRgbInv:n=>({r:V.adjustRgbChannelInv(n.r),g:V.adjustRgbChannelInv(n.g),b:V.adjustRgbChannelInv(n.b),a:n.a}),X:n=>.4125*n.r+.3576*n.g+.1804*n.b,Y:n=>.2126*n.r+.7152*n.g+.0722*n.b,Z:n=>.0193*n.r+.1191*n.g+.9503*n.b,relativeLuminance:n=>{let t=V.adjustRgb(n);return V.Y(t)},rgbToCieXYZ:n=>{let t=V.adjustRgb(n);return{x:V.X(t),y:V.Y(t),z:V.Z(t),a:n.a}},cieXYZToRgb:n=>{let t=3.241*n.x-1.5374*n.y-.4986*n.z,e=-.9692*n.x+1.876*n.y+.0416*n.z,r=.0556*n.x-.204*n.y+1.057*n.z;return V.adjustRgbInv({r:t,g:e,b:r,a:n.a})},contrastRatio:(n,t)=>{let e=V.relativeLuminance(n)+.05,r=V.relativeLuminance(t)+.05;return e>r?e/r:r/e}};function Gn(n,t){let e=n.r,r=n.g,s=n.b,i=Math.max(e,r,s),o=Math.min(e,r,s);return(t===0||t===1?0:(i-o)/(1-Math.abs(2*t-1))).clamp(0,1)}function Vn(n){let t=n.r,e=n.g,r=n.b,s=Math.max(t,e,r),i=Math.min(t,e,r),o=0;return s!==i&&(s===t?o=(60*((e-r)/(s-i))+360)%360:s===e?o=(60*((r-t)/(s-i))+120)%360:o=(60*((t-e)/(s-i))+240)%360),o.clamp(0,360)}function ee(n){return n.toString(16).padStart(2,"0")}var B=class Rt{static{this.WCAG_MINIMUM_CONTRAST=3}static{this.WCAG_NORMAL_TEXT_CONTRAST=4.5}static{this.WCAG_SAFE_CONTRAST=7}static _clampRGB(t){let e=r=>Math.min(1,Math.max(0,r));return t[3]==null&&(t[3]=1),{r:e(t[0]),g:e(t[1]),b:e(t[2]),a:Math.min(1,Math.max(0,t[3]))}}static _normalize(t){return[t[0]/255,t[1]/255,t[2]/255,t[3]]}static parse(t){if(t=(t||"").toLowerCase(),_e.test(t)){let e=_e.exec(t);return this._clampRGB(this._normalize([parseInt(e[1]),parseInt(e[2]),parseInt(e[3]),1]))}if(Ae.test(t)){let e=Ae.exec(t);return this._clampRGB(this._normalize([parseInt(e[1]),parseInt(e[2]),parseInt(e[3]),parseFloat(e[4])]))}if(Ee.test(t)){let e=Ee.exec(t)[0];return this._clampRGB(this._normalize([parseInt("0x"+e.substr(1,2)),parseInt("0x"+e.substr(3,2)),parseInt("0x"+e.substr(5,2)),1]))}if(Me.test(t)){let e=Me.exec(t)[0],r=e.substr(1,1),s=e.substr(2,1),i=e.substr(3,1);return this._clampRGB(this._normalize([parseInt("0x"+r+r),parseInt("0x"+s+s),parseInt("0x"+i+i),1]))}if(Te.test(t)){let e=Te.exec(t),r={h:parseFloat(e[1]),s:parseFloat(e[2])*.01,l:parseFloat(e[3])*.01};return this.rgb(r)}if(Re.test(t)){let e=Re.exec(t),r={h:parseFloat(e[1]),s:parseFloat(e[2])*.01,l:parseFloat(e[3])*.01,a:parseFloat(e[4])};return this.rgb(r)}}static hsl(t){let e=Zn(t),r=Gn(t,e);return{h:Vn(t),s:r,l:e,a:t.a}}static cieXYZ(t){return ct(t)&&(t=this.rgb(t)),V.rgbToCieXYZ(t)}static rgb(t){if(ct(t)){let e=t.h,r=t.s,s=t.l,i=e/60,o=(1-Math.abs(2*s-1))*r,a=o*(1-Math.abs(i%2-1)),c=s-o/2,l=(h,m,x)=>this._clampRGB([h+c,m+c,x+c,t.a]);if(i<=1)return l(o,a,0);if(i<=2)return l(a,o,0);if(i<=3)return l(0,o,a);if(i<=4)return l(0,a,o);if(i<=5)return l(a,0,o);if(i<=6)return l(o,0,a)}else{let e=V.cieXYZToRgb(t);return this._clampRGB([e.r,e.g,e.b,e.a])}}static stringify(t,e=1){if(ct(t)){e??=1,t.a??=1;let r=typeof e=="number"?e:1;return`hsla(${t.h.roundoff(r)},${(t.s*100).roundoff(r)}%,${(t.l*100).roundoff(r)}%,${t.a.roundoff()})`}else if($t(t)){e??=!0,t.a??=1;let r=typeof e=="boolean"?e:!!e,s=Math.round(t.r*255),i=Math.round(t.g*255),o=Math.round(t.b*255),a=t.a.roundoff();return a===1?r?("#"+ee(s)+ee(i)+ee(o)).toUpperCase():`rgb(${s},${i},${o})`:`rgba(${s},${i},${o},${a})`}}static contrastRatio(t,e){return ct(t)&&(t=this.rgb(t)),ct(e)&&(e=this.rgb(e)),V.contrastRatio(t,e)}static luminance(t){return ct(t)&&(t=Rt.rgb(t)),V.relativeLuminance(t)}static lighten(t,e=.1){if(e||=0,ct(t)){let r=Math.min(1,Math.max(0,t.l+e));return Object.assign({},t,{l:r})}if($t(t)){let r=this.lighten(this.hsl(t),e);return this.rgb(r)}return t}static darken(t,e=.1){return this.lighten(t,-e)}static saturate(t,e=.1){if(e||=0,ct(t)){let r=Math.min(1,Math.max(0,t.s+e));return Object.assign({},t,{s:r})}if($t(t)){let r=this.saturate(this.hsl(t),e);return this.rgb(r)}return t}static desaturate(t,e=.1){return this.saturate(t,-e)}static interpolate(t,e,r,s){r??=.5,s??=r;let i=(r+s).roundoff(),o=(r/i).roundoff(),a=(s/i).roundoff(),c=$t(t),l=ct(t),h=x=>$t(x)||ct(x)?Rt.cieXYZ(x):x;t=h(t),e=h(e);let m={x:(t.x*o+e.x*a).roundoff(),y:(t.y*o+e.y*a).roundoff(),z:(t.z*o+e.z*a).roundoff(),a:(t.a*o+e.a*a).roundoff()};return c?Rt.rgb(m):l?Rt.hsl(Rt.rgb(m)):m}};var Qn={};Pe(Qn,{CSharpSyntax:()=>qe,CSyntax:()=>We,DefaultHighlightClasses:()=>je,HighlightRenderer:()=>Ue,JavaScriptSyntax:()=>Ge,JsonSyntax:()=>Ke,Markdown:()=>Oe,MarkupSyntax:()=>Je,PacemBindingSyntax:()=>Ve,Parser:()=>Fe,Scanner:()=>Xe,SyntaxTokenType:()=>rt,Syntaxes:()=>_t});var Oe={};Pe(Oe,{Parser:()=>fs});var Jn=class{tokenize(n,t){let e=[];for(;n;){let r=n.length;for(let s of t){let i=s.exec(n,this),o=i?.length;if(o>0){Array.prototype.push.apply(e,i);let a=i[o-1];n=n.substr((a.index||0)+a.raw.length);break}}if(n.length>=r)throw new Error(`Cannot parse
|
|
2
|
+
"${n}"
|
|
3
|
+
using the provided grammar.`)}return e}},Fe=class{constructor(n=new Jn){this._lexer=n}parse(n,t,e){let r=this._lexer.tokenize(n,t);return e.render(r)}},rt;(function(n){n.Text="text",n.Space="space",n.Newline="newline",n.Comment="comment",n.DocComment="doc-comment",n.Keyword="keyword",n.Identifier="identifier",n.String="string",n.Regex="regex",n.Number="number",n.Bracket="bracket",n.Punctuation="punctuation",n.Operator="operator",n.Preprocessor="preprocessor",n.Tag="tag",n.TagName="tagname",n.Attribute="attribute",n.Entity="entity"})(rt||(rt={}));var ne=new Map;function $e(n){return(n??"").trim().toLowerCase()}var _t=class{static register(n){if(n==null)return;let t=[n.name].concat(n.aliases??[]);for(let e of t){let r=$e(e);ne.set(r,n)}}static get(n){let t=$e(n);return ne.get(t)??null}static names(){let n=ne.keys();return Array.from(n)}},qn="root",Wn=[rt.Identifier],Kn=[rt.Space,rt.Newline,rt.Comment,rt.DocComment],tr=64,er=16;function nr(n){return n.combined!=null}var Ie=new WeakMap;function rr(n){return"include"in n}function Ht(n){return n==null||n.length===0?null:new Set(n)}function sr(n){let t=n.split(""),e=new Set(t);return Array.from(e).join("")}function ir(n,t){let e={};for(let r in t)e[r]=t[r].slice();for(let r in n){let s=e[r]??[];e[r]=n[r].concat(s)}return e}function or(n,t){let e={};for(let r in t)e[r]=t[r].slice();for(let r in n){let s=e[r]??[];e[r]=s.concat(n[r])}return e}function De(n,t=0){let e=n.lexical??{states:{}},r={start:e.start,states:e.states??{},keywords:e.keywords??{},keywordSources:e.keywordSources,keywordExceptAfter:e.keywordExceptAfter,insignificant:e.insignificant},s=n.extends?_t.get(n.extends):null;if(s==null||s===n||t>=er)return r;let i=De(s,t+1);return{start:r.start??i.start,states:ir(r.states,i.states),keywords:or(r.keywords,i.keywords),keywordSources:r.keywordSources??i.keywordSources,keywordExceptAfter:r.keywordExceptAfter??i.keywordExceptAfter,insignificant:r.insignificant??i.insignificant}}function He(n,t,e){let r=n[t]??[];if(e.has(t))return[];e.add(t);let s=[];for(let i of r){if(!rr(i)){s.push(i);continue}let o=He(n,i.include,e);Array.prototype.push.apply(s,o)}return e.delete(t),s}function ar(n){return n==null?null:{previousTypes:Ht(n.previousTypes),previousNotTypes:Ht(n.previousNotTypes),previousTexts:Ht(n.previousTexts),previousNotTexts:Ht(n.previousNotTexts)}}function cr(n){let t=Array.isArray(n.type)?n.type:null,e=Array.isArray(n.type)?n.type[0]:n.type,r=(n.flags??"").replace(/[yd]/g,""),s=sr(r),i=s+"y"+(t?"d":""),o=new RegExp(n.match,i),a=n.until?new RegExp(n.until,"y"):null,c=n.pop===!0?1:typeof n.pop=="number"?n.pop:0,l=ar(n.when);return{regex:o,type:e,groupTypes:t,when:l,pop:c,until:a,source:n.match,flags:s,next:n.next??null,push:n.push??null,embed:n.embed??null,hasTransition:c>0||!!n.next||!!n.push||!!n.embed}}function lr(n){let t=new Map;for(let e in n)for(let r of n[e])t.set(r,e);return t}var ur=/\\[1-9]|\\k<|\(\?<(?![=!])/;function hr(n,t){return new RegExp(n+"|",t).exec("").length-1}function fr(n,t){return new RegExp("^(?:"+n+")$",t).test("")}function pr(n){return n.when!=null||ur.test(n.source)?!1:!fr(n.source,n.flags)}function dr(n){if(n.length===1)return{rule:n[0],combined:null};let t=[],e=1;for(let o of n){t.push(e);let a=hr(o.source,o.flags);e+=1+a}let s=n.map(o=>"("+o.source+")").join("|");return{rule:null,combined:new RegExp(s,n[0].flags+"y"),rules:n,groupIndices:t}}function gr(n){let t=[],e=[],r=()=>{if(e.length>0){let s=dr(e);t.push(s)}e=[]};for(let s of n){if(!pr(s)){r(),t.push({rule:s,combined:null});continue}e.length>0&&e[0].flags!==s.flags&&r(),e.push(s)}return r(),t}function Ye(n){let t=Ie.get(n);if(t!=null)return t;let e=De(n),r=new Map;for(let i in e.states){let o=new Set,c=He(e.states,i,o).map(cr),l=gr(c);r.set(i,l)}let s={name:n.name,start:e.start??qn,states:r,keywords:lr(e.keywords),keywordSources:new Set(e.keywordSources??Wn),keywordExceptAfter:new Set(e.keywordExceptAfter??[]),insignificant:new Set(e.insignificant??Kn)};return Ie.set(n,s),s}function mr(n){let t=_t.get(n);return t==null?null:Ye(t)}function yr(n,t){let e=t?.type??null,r=t?.raw??null;return n.previousTypes!=null&&!n.previousTypes.has(e)||n.previousNotTypes!=null&&n.previousNotTypes.has(e)||n.previousTexts!=null&&!n.previousTexts.has(r)?!1:n.previousNotTexts==null||!n.previousNotTexts.has(r)}var xr=class{constructor(n,t){this._source=n,this._tokens=[],this._position=0,this._emitted=0,this._line=1,this._column=1,this._previous=null,this._emptyTransitions=0,this._stack=[{syntax:t,state:t.start,until:null}]}run(){let n=this._source.length;for(;this._position<n;)this._step();return this._flushText(),this._tokens}get _top(){let n=this._stack;return n[n.length-1]}_step(){let n=this._top;if(this._popOnUntil(n))return;let t=this._findRule(n);if(t==null){this._position++;return}this._flushText(),this._emitMatch(t,n.syntax),this._transition(t.rule,n.syntax);let e=t.match[0].length;this._position+=e,e>0&&(this._emptyTransitions=0)}_popOnUntil(n){let t=n.until;return t==null||this._stack.length<=1||(t.lastIndex=this._position,!t.test(this._source))?!1:(this._flushText(),this._stack.pop(),!0)}_findRule(n){let t=n.syntax.states.get(n.state)??[];for(let e of t){let r=nr(e)?this._tryCombined(e):this._trySingle(e.rule);if(r!=null)return r}return null}_trySingle(n){let t=this._tryRule(n);return t==null?null:{rule:n,match:t}}_tryCombined(n){let t=n.combined;t.lastIndex=this._position;let e=t.exec(this._source);if(e==null)return null;let r=n.groupIndices;for(let s=0;s<r.length;s++){if(e[r[s]]===void 0)continue;let i=n.rules[s];return this._trySingle(i)}return null}_tryRule(n){if(n.when!=null&&!yr(n.when,this._previous))return null;let t=n.regex;t.lastIndex=this._position;let e=t.exec(this._source);return e==null?null:e[0].length>0?e:!n.hasTransition||this._emptyTransitions>=tr?null:(this._emptyTransitions++,e)}_emitMatch({rule:n,match:t},e){let r=t[0];if(n.groupTypes==null){this._append(n.type,r,e);return}this._emitGroups(n,t,e)}_emitGroups(n,t,e){let r=t.indices,s=t.index,i=s+t[0].length,o=n.groupTypes,a=s;for(let c=1;c<t.length;c++){let l=r[c];if(l==null||l[0]<a||l[1]===l[0])continue;if(l[0]>a){let x=this._source.slice(a,l[0]);this._append(rt.Text,x,e)}let h=this._source.slice(l[0],l[1]),m=o[c-1]??o[o.length-1];this._append(m,h,e),a=l[1]}if(a<i){let c=this._source.slice(a,i);this._append(rt.Text,c,e)}}_transition(n,t){let e=this._stack;for(let s=0;s<n.pop&&e.length>1;s++)e.pop();if(n.next!=null&&(this._top.state=n.next),n.push!=null&&e.push({syntax:t,state:n.push,until:null}),n.embed==null)return;let r=mr(n.embed);r!=null&&e.push({syntax:r,state:r.start,until:n.until})}_flushText(){if(this._emitted>=this._position)return;let n=this._source.slice(this._emitted,this._position),t=this._top.syntax;this._append(rt.Text,n,t)}_resolveType(n,t,e){if(!e.keywordSources.has(n))return n;let r=this._previous?.raw;return e.keywordExceptAfter.has(r)?n:e.keywords.get(t)??n}_append(n,t,e){let r=this._resolveType(n,t,e),s={type:r,raw:t,text:t,index:this._emitted,line:this._line,column:this._column,depth:this._stack.length-1,syntax:e.name};this._tokens.push(s),this._advance(t),e.insignificant.has(r)||(this._previous=s)}_advance(n){this._emitted+=n.length;let t=n.lastIndexOf(`
|
|
4
|
+
`);if(t<0){this._column+=n.length;return}for(let e=0;e<=t;e++)n.charCodeAt(e)===10&&this._line++;this._column=n.length-t}},br={name:rt.Text,lexical:{states:{}}},Xe=class{tokenize(n,t){let e=n??"",r=typeof t=="string"?_t.get(t):t,s=Ye(r??br);return new xr(e,s).run()}},je=Object.freeze({keyword:"code-keyword",preprocessor:"code-keyword",string:"code-string",regex:"code-string",number:"code-number",comment:"code-comment","doc-comment":"code-comment",tag:"code-tag",tagname:"code-tagname",attribute:"code-attribute"}),wr={"&":"&","<":"<",">":">",'"':"""};function vr(n){return n.replace(/[&<>"]/g,t=>wr[t])}var Ue=class{constructor(n=je){this._classes=n}render(n){let t="";for(let e of n??[])t+=this._renderToken(e);return t}_renderToken(n){let t=vr(n.raw??""),e=this._classes[n.type];return e==null?t:`<span class="${e}">${t}</span>`}};function re(n){return(n??"").replace(/</g,"<")}function Sr(n){if(!q.isNullOrEmpty(n)&&!(/^\(/.test(n)&&/\)$/.test(n)))return/^\[/.test(n)&&/\]$/.test(n)&&(n=n.substr(1,n.length-2)),n}function Cr(n){if(q.isNullOrEmpty(n))return{url:n};let t=n.trim(),e=/^(\S*)\s+(?:"([^"]*)"|'([^']*)'|\(([^)]*)\))\s*$/.exec(t);if(e==null)return{url:t};let r=e[2]??e[3]??e[4];return{url:e[1],title:r}}function Ze(n){return(n??"").replace(/&(?!(?:#\d+|#x[\da-fA-F]+|\w+);)/g,"&").replace(/"/g,""").replace(/</g,"<")}function se(n){let t=n.trim();return t.startsWith("|")&&(t=t.slice(1)),t.endsWith("|")&&!t.endsWith("\\|")&&(t=t.slice(0,-1)),t.split(/(?<!\\)\|/).map(r=>r.trim().replace(/\\\|/g,"|"))}function kr(n){let t=n.startsWith(":"),e=n.endsWith(":");return t&&e?"center":e?"right":t?"left":null}function Tr(n){return/^ */.exec(n)[0].length}function Rr(n){let t=n.replace(/\t/g," ").split(/\r?\n/),e=[];for(let r of t){let s=e[e.length-1],i=Hr.exec(r);if(i!=null&&(s==null||i[1].length<s.indent)){let c=i[0].length,l=r.slice(c);e.push({indent:c,lines:[l]});continue}if(s==null)continue;let o=Math.min(s.indent,Tr(r)),a=r.slice(o);s.lines.push(a)}return e.map(r=>r.lines.join(`
|
|
5
|
+
`).replace(/\s+$/,""))}function _r(n){return(n??"").replace(/</g,"<")}var Ar=new Xe,Er="markup";function tt(n){return n?.index||void 0}function Mr(n){if(!q.isNullOrEmpty(n)&&!(/^\[/.test(n)&&/\]$/.test(n)))return/^\(/.test(n)&&/\)$/.test(n)&&(n=n.substr(1,n.length-2)),n}function kt(n){return n?.replace(/[^\w]+/g," ").trim().replace(/ +/g,"-").toLowerCase()}function J(n,t,e){let r=t.exec(n);return r&&r.length?e(r):null}var $r=/(<!--)([\s\S]*?)(-->|$)/,Ir=/^ {0,3}(={3,}|(?:_[ \t]*){3,}|(?:-[ \t]*){3,}|(?:\*[ \t]*){3,})(\r?\n|$)/,Nr=/^ {0,3}(#{1,6})\s+([^\n]+)(\r?\n|$)+/,Lr=/^ {0,3}([^\n]+)(\r?\n=+(\r?\n|$))+/,Br=/^ {0,3}([^\n]+)(\r?\n-+(\r?\n|$))+/,zr=/^ {4,}.+(\r?\n {4,}.+)*(\r?\n|$)+/,Pr=/^ {0,3}``` *([^\n]*)\r?\n(([\s\S](?!\r?\n {0,3}```))*.(\r?\n)+) {0,3}```(\r?\n|$)+/,Or=/^ {0,3}> *([^\n]+)(\r?\n {0,3}> *([^\n]*))*(\r?\n|$)+/,Fr=/^( {0,3}([-+]|\*(?=[ \t])).*(\r?\n|$))((?!(?: ?\d+[.\)]|\r?\n\S)).*(\r?\n|$))*/,Dr=/^( {0,3}(\d+[.\)]).*(\r?\n|$))((?!(?: {0,2}(?:[-+]|\*[ \t])|\r?\n\S)).*(\r?\n|$))*/,Hr=/^( *)([-+*]|\d+[.\)])([ \t]+|$)/,Yr=/^\[([ xX])\][ \t]+/,Xr=/^(?! {4,})(?=[ \t]*\S)(.+(\n(?![ \t]*(?:\n|$))(?! {0,3}```)(?! {0,3}([-+]|\*[ \t]|\d+[.\)]))(?! {0,3}#{1,6}[ \t])(?! {4,})(?! {0,3}>).+)*)/,jr=/^ {0,3}(!?)\[([^\]]+)\]: +(\S+)(?: +['"\(](.+)['"\)])?(\r?\n|$)+/,Ur=/(?<!\\)!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?(\[[^\[\]]*\]|\([^\(\)]*\))?/,Zr=/(\*\*?|__?)(\[[^\]]*]\([^\)]+\))\1/,ie=/(?:(?<!\\)`)(.+?)(?:(?<!\\)`)/,Gr=/(\*\*?)((?!\1\s?)(?:(?!\1)[\S\s])*[^\s])\1|(?<![A-Za-z0-9])(__?)((?!\3\s?)(?:(?!\3)[\S\s])*[^\s])\3(?![A-Za-z0-9])/,Vr=/(~~?)(?!\1\s?)([^\s][\s\S]*?(?!\1)[^\s])\1/,Qr=/(:")(?!":\s?)([^\s][\s\S]*?(?!":)[^\s])":/,Jr=/^\s+/,qr=/^(?:[ \t]*\r?\n)+|^\s+/,Wr=/(?: {2,}|\\)\r?\n/,Kr=/^[^\r\n]+/,ts=/\\(<|[!"#$%&'()*+,\-./:;<=>?@\[\\\]^_`{|}~])/,es={"<":"<","<":"<","&":"&"},ns=/(?:<|<)((?:https?|ftp|mailto):[^\s<>]+|[\w.+-]+@[\w-]+(?:\.[\w-]+)+)>/,rs=/(?<![\w\/\\(\[<"'=;&@])(?:https?:\/\/|www\.)[^\s<>]*[^\s<>.,:;"'!?)\]*_~]/,ss=/\[\^([^\]\s]+)\]/,is=/^ {0,3}\[\^([^\]\s]+)\]: *([^\r\n]*(?:\r?\n {2,}[^\r\n]+)*)(\r?\n|$)+/,os=/^ {0,3}(\|?[^\r\n]*\|[^\r\n]*)\r?\n {0,3}(\|? *:?-+:? *(?:\| *:?-+:? *)*\|?) *(?:\r?\n|$)((?:(?! {0,3}(?:\r?\n|$))[^\r\n]*\|[^\r\n]*(?:\r?\n|$))*)/,S;(function(n){n.Html="html",n.Text="text",n.Paragraph="paragraph",n.BlockQuote="blockquote",n.Space="space",n.Heading="heading",n.Bold="bold",n.Italic="italic",n.CodeBlock="codeblock",n.Code="code",n.Image="img",n.ImageLike="imglike",n.Link="link",n.LinkLike="linklike",n.LineBreak="br",n.StrikeThrough="strike",n.Quote="quote",n.HorizontalRule="hr",n.OrderedList="ol",n.UnorderedList="ul",n.ListItem="listitem",n.Reference="ref",n.Table="table",n.TableRow="tr",n.TableCell="td",n.FootnoteReference="fnref",n.FootnoteDefinition="fndef"})(S||(S={}));var $;(function(n){n[n.Comment=0]="Comment",n[n.Reference=1]="Reference",n[n.HorizontalRule=2]="HorizontalRule",n[n.Heading=3]="Heading",n[n.Heading1=4]="Heading1",n[n.Heading2=5]="Heading2",n[n.CodeBlock=6]="CodeBlock",n[n.Fences=7]="Fences",n[n.BlockQuote=8]="BlockQuote",n[n.OrderedList=9]="OrderedList",n[n.UnorderedList=10]="UnorderedList",n[n.Paragraph=11]="Paragraph",n[n.EmphasizedLink=12]="EmphasizedLink",n[n.ImageOrLink=13]="ImageOrLink",n[n.Emphasize=14]="Emphasize",n[n.StrikeThrough=15]="StrikeThrough",n[n.Quote=16]="Quote",n[n.Code=17]="Code",n[n.LineBreak=18]="LineBreak",n[n.FootnoteDefinition=19]="FootnoteDefinition",n[n.Table=20]="Table",n[n.Escape=21]="Escape",n[n.AutoLink=22]="AutoLink",n[n.FootnoteReference=23]="FootnoteReference",n[n.BareUrl=24]="BareUrl",n[n.Text=254]="Text",n[n.Space=255]="Space"})($||($={}));function Yt(n=[]){let t={[$.Comment]:{exec:(d,p)=>J(d,$r,u=>{let f=tt(u),g=[{type:S.Html,index:f,raw:u[0],text:u[2]}];if(f>0){let y=d.substr(0,f),I=p.tokenize(y,M);Array.prototype.unshift.apply(g,I)}return g})},[$.Reference]:{exec:d=>J(d,jr,p=>{let u=tt(p),f=p[0],g=f,y=p[1]==="!",I=p[2],z=p[3],L=p[4];return[{type:S.Reference,index:u,raw:f,text:g,id:I,image:y,url:z,title:L}]})},[$.FootnoteDefinition]:{exec:(d,p)=>J(d,is,u=>{let f=u[0],g=kt(u[1]),y=u[2].replace(/\r?\n {2,}/g," ");return[{type:S.FootnoteDefinition,index:tt(u),raw:f,text:y,id:g,tokens:p.tokenize(y,l)}]})}},e=[],r=[],s={};for(let d of n){let p,u="inline";switch("type"in d?(u=d.type,p=d.rule):p=d,u){case"block":e.push(p);break;case"code":if("lang"in d){let g=d.lang.toLowerCase();(s[g]=s[g]||[]).push(p)}break;default:let f={exec:(g,y)=>{let I=p.exec(g,y);return a(g,I,y),I}};r.push(f);break}}let i={[$.Text]:{exec:d=>J(d,Kr,p=>{let u=p[0],f=u;return[{index:tt(p),raw:u,text:f,type:S.Text}]})},[$.Space]:{exec:d=>J(d,Jr,p=>{let u=p[0];return[{type:S.Space,raw:u,text:u}]})}},o={[$.ImageOrLink]:{exec:(d,p)=>c(d,Ur,p,u=>{let f=tt(u),g=u[0],y=g.charAt(0)==="!",I=u[1],z=Mr(u[2]),L=Sr(u[2])??I,P=kt(L),{url:G,title:et}=Cr(z),ot=p.tokenize(I,l);return y?[{index:f,type:G?S.Image:S.ImageLike,raw:g,text:I,src:G,title:et,ref:P,tokens:ot}]:[{index:f,type:G?S.Link:S.LinkLike,raw:g,text:I,href:G,title:et,ref:P,tokens:ot}]})},[$.Escape]:{exec:(d,p)=>c(d,ts,p,u=>{let f=es[u[1]]??u[1];return[{index:tt(u),raw:u[0],text:f,type:S.Text}]})},[$.AutoLink]:{exec:(d,p)=>c(d,ns,p,u=>{let f=u[1],y=!/^[a-z]+:/i.test(f)?"mailto:"+f:f;return[{index:tt(u),raw:u[0],text:f,href:y,type:S.Link,tokens:[{type:S.Text,raw:f,text:f}]}]})},[$.BareUrl]:{exec:(d,p)=>c(d,rs,p,u=>{let f=u[0],g=/^www\./i.test(f)?"http://"+f:f;return[{index:tt(u),raw:f,text:f,href:g,type:S.Link,tokens:[{type:S.Text,raw:f,text:f}]}]})},[$.FootnoteReference]:{exec:(d,p)=>c(d,ss,p,u=>{let f=kt(u[1]);return[{index:tt(u),raw:u[0],text:u[1],id:f,type:S.FootnoteReference}]})},[$.Code]:{exec:(d,p)=>c(d,ie,p,u=>{let f=re(u[1]);return[{type:S.Code,raw:u[0],text:f,index:tt(u)}]})},[$.EmphasizedLink]:{exec:(d,p)=>c(d,Zr,p,u=>{if(u.length<3||q.isNullOrEmpty(u[2]))return null;let f=u[1].length>1?S.Bold:S.Italic,g=u[2];return[{index:tt(u),type:f,raw:u[0],text:g,tokens:p.tokenize(g,l)}]})},[$.Emphasize]:{exec:(d,p)=>c(d,Gr,p,u=>{let f=u[1]??u[3],g=u[2]??u[4];if(q.isNullOrEmpty(g))return null;let y=f.length>1?S.Bold:S.Italic;return[{index:tt(u),type:y,raw:u[0],text:g,tokens:p.tokenize(g,l)}]})},[$.StrikeThrough]:{exec:(d,p)=>c(d,Vr,p,u=>{if(u.length<3||q.isNullOrEmpty(u[2]))return null;let f=S.StrikeThrough,g=u[2];return[{index:tt(u),type:f,raw:u[0],text:g,tokens:p.tokenize(g,l)}]})},[$.Quote]:{exec:(d,p)=>c(d,Qr,p,u=>{if(u.length<3||q.isNullOrEmpty(u[2]))return null;let f=S.Quote,g=u[2];return[{index:tt(u),type:f,raw:u[0],text:g,tokens:p.tokenize(g,l)}]})},[$.LineBreak]:{exec:(d,p)=>c(d,Wr,p,u=>{let f=u[0],g=f;return[{index:tt(u),raw:f,text:g,type:S.LineBreak}]})}},a=(d,p,u)=>{let f=p?.length>0&&p[0].index;if(f>0){let g=d.substr(0,f),y=u.tokenize(g,l)||[];Array.prototype.unshift.apply(p,y)}},c=(d,p,u,f)=>{let g=J(d,p,y=>{if(p!=ie){let I=ie.exec(d);if(I&&I.length&&I.index<y.index)return null}return f(y)});return a(d,g,u),g},l=[o[$.FootnoteReference],o[$.EmphasizedLink],o[$.ImageOrLink],o[$.Escape],o[$.AutoLink],o[$.Emphasize],o[$.StrikeThrough],o[$.Quote],o[$.Code],o[$.LineBreak],o[$.BareUrl]];Array.prototype.push.apply(l,r),l.push(i[$.Text],i[$.Space]);let h=d=>{let p=[i[$.Text],i[$.Space]],u=d?.toLowerCase()||"";return u&&u in s&&Array.prototype.unshift.apply(p,s[u]),p},m={[$.Paragraph]:{exec:(d,p)=>J(d,Xr,u=>{let f=u[0],g=f.replace(/^[ \t]+/gm,"");return g.trim().length===0?null:[{type:S.Paragraph,raw:f,text:g,tokens:p.tokenize(g,l)}]})},[$.Space]:{exec:d=>J(d,qr,p=>{let u=p[0];return[{type:S.Space,raw:u,text:u}]})}},x=(d,p)=>{if(!/^ {0,3}(`{3,}|$|>|[-+*]\s|\d+[.\)]|#{1,6}\s|\|)/m.test(d))return p.tokenize(d,l);let f=p.tokenize(d,E),g=f[0];if(!!/\n[ \t]*\n/.test(d)||g?.type!==S.Paragraph)return f;let I=g.tokens??[],z=f.slice(1);return I.concat(z)},C=(d,p)=>Rr(d).filter(g=>!q.isNullOrEmpty(g)).map(g=>{let y=Yr.exec(g),I=y?g.slice(y[0].length):g,z=x(I,p);if(y==null)return{type:S.ListItem,raw:g,text:I,tokens:z};let L=y[1]!==" ";return{type:S.ListItem,raw:g,text:I,tokens:z,task:!0,checked:L}}),k=(d,p,u,f)=>{let g=p.map((z,L)=>{let P=d[L]??"",G=f.tokenize(P,l);return{type:S.TableCell,raw:P,text:P,header:u,align:z,tokens:G}}),y=d.join(" | ");return{type:S.TableRow,raw:y,text:y,header:u,tokens:g}},A={[$.HorizontalRule]:{exec:(d,p)=>J(d,Ir,u=>{let f=u[0],g=f;return[{type:S.HorizontalRule,raw:f,text:g}]})},[$.Heading]:{exec:(d,p)=>J(d,Nr,u=>{let f=u[2].replace(/[ \t]+#+[ \t]*$/,"");return[{type:S.Heading,raw:u[0],text:f,level:u[1].length,ref:kt(f),tokens:p.tokenize(f,l)}]})},[$.Heading1]:{exec:(d,p)=>J(d,Lr,u=>{let f=u[1];return[{type:S.Heading,raw:u[0],text:f,level:1,ref:kt(f),tokens:p.tokenize(f,l)}]})},[$.Heading2]:{exec:(d,p)=>J(d,Br,u=>{let f=u[1];return[{type:S.Heading,raw:u[0],text:f,level:2,ref:kt(f),tokens:p.tokenize(f,l)}]})},[$.CodeBlock]:{exec:(d,p)=>J(d,zr,u=>{let f=u[0],g=f.replace(/^ {4}/gm,"").replace(/\s+$/,""),y=re(g);return g.length===0?null:[{type:S.CodeBlock,raw:f,text:y,tokens:p.tokenize(y,h(""))}]})},[$.Fences]:{exec:(d,p)=>J(d,Pr,u=>{let f=(u[1]??"").trim(),g=f.split(/\s+/),y=g[0].toLowerCase(),I=y in s?null:_t.get(y);if(I==null){let P=re(u[2]);return[{type:S.CodeBlock,raw:u[0],text:P,lang:y,tokens:p.tokenize(P,h(y))}]}let z=_r(u[2]),L=Ar.tokenize(z,I);return[{type:S.CodeBlock,raw:u[0],text:z,lang:y,syntax:I.name,highlighted:!0,tokens:L}]})},[$.BlockQuote]:{exec:(d,p)=>J(d,Or,u=>{let f=u[0],g=f.replace(/^ {0,3}> ?/gm,"");return[{type:S.BlockQuote,raw:f,text:g,tokens:p.tokenize(g,E)}]})},[$.OrderedList]:{exec:(d,p)=>J(d,Dr,u=>{let f=u[0],g=/\d+/.exec(f),y=parseInt(g[0]),I=C(f,p);return[{type:S.OrderedList,start:y,raw:f,text:f,tokens:I}]})},[$.UnorderedList]:{exec:(d,p)=>J(d,Fr,u=>{let f=u[0],g=C(f,p);return[{type:S.UnorderedList,raw:f,text:f,tokens:g}]})},[$.Table]:{exec:(d,p)=>J(d,os,u=>{let f=se(u[1]),g=se(u[2]);if(f.length!==g.length)return null;let y=g.map(kr),I=u[3].split(/\r?\n/).filter(G=>G.trim().length>0),z=k(f,y,!0,p),L=I.map(G=>{let et=se(G);return k(et,y,!1,p)}),P=[z].concat(L);return[{type:S.Table,raw:u[0],text:u[0],align:y,tokens:P}]})}},E=Object.values(A);Array.prototype.push.apply(E,e),E.push(m[$.Paragraph],m[$.Space]);let M=[t[$.Comment],t[$.FootnoteDefinition],t[$.Reference]].concat(E);return M}var Tt="\0",as=/[ \r\n]*\0+[ \r\n]*/g;function cs(n){return n?.replace(as,`
|
|
6
|
+
`).trim()}function Ne(n){return q.isNullOrEmpty(n)?"":` title="${Ze(n)}"`}function ls(n){return n==null?"":` style="text-align: ${n}"`}var Le=class{constructor(n=(t,e)=>t?.text||""){this._extraItemRender=n,this.#e=[],this.#t=new Map,this.#n=[],this.#r=new Ue,this._renderContent=t=>{let e=t.tokens;return q.isNullOrEmpty(e)?t.text:this._render(e)}}#e;#t;#n;#r;_collectDefinitions(n){for(let t of n??[])t?.type===S.Reference&&this.#e.push(t),t?.type===S.FootnoteDefinition&&!this.#t.has(t.id)&&this.#t.set(t.id,t),this._collectDefinitions(t?.tokens)}_findReference(n,t){if(q.isNullOrEmpty(n))return;let e=n.toLowerCase();return this.#e.find(r=>r.image===!0===t&&r.id?.toLowerCase()===e)}_renderCodeBlock(n){let t=Tt,e=n.lang;if(n.highlighted!==!0){let o=e?' class="'+e+'"':"",a=this._renderContent(n);return`<pre>${t}<code${o}>${a}</code>${t}</pre>${t}`}let r=[e,"code-highlighted"];n.syntax===Er&&r.push("code-markup");let s=Ze(r.join(" ")),i=this.#r.render(n.tokens);return`<pre>${t}<code class="${s}">${i}</code>${t}</pre>${t}`}_renderImage(n){let t=n.src,e=n.title;if(!t){let s=this._findReference(n.ref,!0);t=s?.url,e=s?.title}if(!t)return`![${this._renderContent(n)}]`;let r=Ne(e);return`<img src="${t}" alt="${n.text}"${r} />`}_renderLink(n){let t=n.href,e=n.title;if(!t){let i=this._findReference(n.ref,!1);t=i?.url,e=i?.title}let r=this._renderContent(n);if(!t)return`[${r}]`;let s=Ne(e);return`<a href="${t}"${s}>${r}</a>`}_renderListItem(n){let t=Tt,e=this._renderContent(n);return n.task!==!0?` <li>${e}</li>${t}`:` <li class="task-list-item"><input type="checkbox" disabled${n.checked===!0?" checked":""} /> ${e}</li>${t}`}_renderTableRow(n){let t=Tt,e="";for(let r of n.tokens??[]){let s=r.header===!0?"th":"td",i=ls(r.align),o=this._renderContent(r);e+=`<${s}${i}>${o}</${s}>`}return`<tr>${e}</tr>${t}`}_renderTable(n){let t=Tt,e=n.tokens??[],r=e.filter(a=>a.header===!0),s=e.filter(a=>a.header!==!0),i=r.map(a=>this._renderTableRow(a)).join(""),o=`<table>${t}<thead>${t}${i}</thead>${t}`;if(s.length>0){let a=s.map(c=>this._renderTableRow(c)).join("");o+=`<tbody>${t}${a}</tbody>${t}`}return o+`</table>${t}`}_renderFootnoteReference(n){let t=n.id;if(!this.#t.has(t))return`[^${n.text}]`;let e=this.#n,r=!e.includes(t);r&&e.push(t);let s=e.indexOf(t)+1,i=r?` id="fnref-${t}"`:"";return`<sup class="footnote-ref"><a href="#fn-${t}"${i}>${s}</a></sup>`}_renderFootnotes(){let n=this.#n;if(n.length===0)return"";let t=Tt,e="";for(let r=0;r<n.length;r++){let s=n[r],i=this.#t.get(s),o=this._renderContent(i);e+=`<li id="fn-${s}">${o} <a href="#fnref-${s}" class="footnote-backref">↩</a></li>${t}`}return`<section class="footnotes">${t}<ol>${t}${e}</ol>${t}</section>${t}`}_rendeItem(n,t){let e=this._renderContent,r=Tt;switch(n?.type){case S.Reference:case S.FootnoteDefinition:return"";case S.Html:return n.raw;case S.BlockQuote:return`<blockquote>
|
|
7
|
+
${e(n)}</blockquote>${r}`;case S.Bold:return`<b>${e(n)}</b>`;case S.CodeBlock:return this._renderCodeBlock(n);case S.Code:return`<code>${e(n)}</code>`;case S.HorizontalRule:return`<hr />${r}`;case S.Heading:let s=n.level,i=n.ref;return`<h${s} id="${i}">${e(n)}</h${s}>${r}`;case S.Image:case S.ImageLike:return this._renderImage(n);case S.Italic:return`<i>${e(n)}</i>`;case S.StrikeThrough:return`<s>${e(n)}</s>`;case S.Quote:return`<q>${e(n)}</q>`;case S.LineBreak:return"<br />"+r;case S.OrderedList:return`<ol start="${n.start}">
|
|
8
|
+
${e(n)}</ol>${r}`;case S.UnorderedList:return`<ul>
|
|
9
|
+
${e(n)}</ul>${r}`;case S.ListItem:return this._renderListItem(n);case S.Link:case S.LinkLike:return this._renderLink(n);case S.Table:return this._renderTable(n);case S.FootnoteReference:return this._renderFootnoteReference(n);case S.Paragraph:return`<p>${e(n)}</p>${r}`;case S.Text:case S.Space:return n.text}return this._extraItemRender(n,t)}_render(n){let t="";for(let e of n||[])t+=this._rendeItem(e,n);return t}render(n){this.#e=[],this.#t.clear(),this.#n=[],this._collectDefinitions(n);let t=this._render(n),e=this._renderFootnotes();return cs(t+e)}},us=class{_render(n){return q.isNullOrEmpty(n)?"":JSON.stringify(n)}render(n){return"["+n.filter(t=>!q.isNullOrEmpty(t)).map(this._render).join(",")+"]"}};function hs(n){return n&&typeof n=="object"&&typeof n.render=="function"}var fs=class extends Fe{toHtml(n,t,e){let r=new Le(e);return q.isNullOrEmpty(t)?this.parse(n,r):this.parse(n,Yt(t),r)}tokenize(n,t){let e=this.parse(n,Yt(t),new us);return JSON.parse(e)}parse(n,t=Yt(),e=new Le){let r=(n??"").replace(/\r\n?/g,`
|
|
10
|
+
`);if(hs(t)){let s=Yt();return super.parse(r,s,t)}return super.parse(r,t,e)}},ps=["identifier","number","string","regex"],ds=[")","]","}","this","super","null","undefined","true","false","++","--"],gs=["async","await","break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","of","return","set","static","super","switch","this","throw","true","try","typeof","undefined","var","void","while","with","yield","abstract","accessor","any","as","asserts","bigint","boolean","declare","implements","infer","interface","is","keyof","module","namespace","never","number","object","override","package","private","protected","public","readonly","satisfies","string","symbol","type","unique","unknown"],ms=[{match:String.raw`/\*\*(?!/)[\s\S]*?(?:\*/|$)`,type:"doc-comment"},{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`\r\n|[\r\n
]`,type:"newline"},{match:String.raw`[ \t\f\v ]+`,type:"space"},{match:"`",type:"string",push:"template"},{match:String.raw`"(?:\\[\s\S]|[^"\\\r\n])*"?`,type:"string"},{match:String.raw`'(?:\\[\s\S]|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`/(?![*/])(?:\\.|\[(?:\\.|[^\]\\\r\n])*\]|[^/\\\[\r\n])+/[a-z]*`,type:"regex",when:{previousNotTypes:ps,previousNotTexts:ds}},{match:String.raw`0[xX][\da-fA-F_]+n?|0[bB][01_]+n?|0[oO][0-7_]+n?|(?:\d[\d_]*\.?[\d_]*|\.\d[\d_]*)(?:[eE][+-]?\d[\d_]*)?n?`,type:"number"},{match:String.raw`#?[A-Za-z_$ -][\w$ -]*`,type:"identifier"},{match:String.raw`[()\[\]{}]`,type:"bracket"},{match:String.raw`\?\.(?!\d)|\.\.\.|[;,.]`,type:"punctuation"},{match:String.raw`>>>=|<<=|>>=|>>>|\*\*=|&&=|\|\|=|\?\?=|===|!==|=>|\*\*|\+\+|--|<<|>>|&&|\|\||\?\?|[-+*/%&|^<>!=]=?|[~?:@]`,type:"operator"}],Ge={name:"javascript",aliases:["js","mjs","cjs","jsx","typescript","ts","tsx","script","ecmascript"],lexical:{start:"root",states:{root:ms,template:[{match:"`",type:"string",pop:!0},{match:String.raw`\$\{`,type:"punctuation",push:"templateExpression"},{match:String.raw`(?:\\[\s\S]|\$(?!\{)|[^\\`+"`"+String.raw`$])+`,type:"string"}],templateExpression:[{match:String.raw`\}`,type:"punctuation",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}],braces:[{match:String.raw`\}`,type:"bracket",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}]},keywords:{keyword:gs},keywordExceptAfter:[".","?."]}},oe={previousNotTexts:[".","?."]},Ve={name:"pacem-binding",aliases:["pacem","binding"],extends:"javascript",lexical:{states:{root:[{match:String.raw`:host(?=\.)`,type:"binding-host",when:oe},{match:String.raw`::[A-Za-z_$][\w$]*`,type:"binding-host-property"},{match:String.raw`\^+item(?![\w$])`,type:"binding-item"},{match:String.raw`\^+index(?![\w$])`,type:"binding-index"},{match:String.raw`#[A-Za-z_][\w]*`,type:"binding-element",when:oe},{match:String.raw`\$?this(?![\w$])`,type:"binding-this",when:oe}]}}},Qe={match:String.raw`\r\n|[\r\n]`,type:"newline"},ys=[Qe,{match:String.raw`[ \t\f]+`,type:"space"},{match:'"',type:"string",push:"doubleQuoted"},{match:"'",type:"string",push:"singleQuoted"},{match:String.raw`[^\s=/>"']+`,type:"attribute"},{match:"=",type:"operator"},{match:"/",type:"punctuation"}],Be=[{match:String.raw`\{\{`,type:"punctuation",embed:"pacem-binding",until:String.raw`\}\}`},{match:String.raw`\}\}`,type:"punctuation"}],Je={name:"markup",aliases:["html","htm","xml","xhtml","svg"],lexical:{start:"root",states:{root:[{match:String.raw`<!--[\s\S]*?(?:-->|$)`,type:"comment"},{match:String.raw`<![^>]*>?`,type:"tag"},{match:String.raw`(<\/)([\w:.-]+)(\s*>?)`,type:["tag","tagname","tag"]},{match:String.raw`(<)(script)(?![\w:.-])`,flags:"i",type:["tag","tagname"],push:"scriptTag"},{match:String.raw`(<)([\w:.-]+)`,type:["tag","tagname"],push:"tag"},{match:String.raw`&(?:#\d+|#[xX][\da-fA-F]+|\w+);`,type:"entity"},Qe,{match:String.raw`[^<&\r\n]+`,type:"text"}],tag:[{match:String.raw`/?>`,type:"tag",pop:!0},{include:"attributes"}],scriptTag:[{match:"/>",type:"tag",pop:!0},{match:">",type:"tag",pop:!0,embed:"javascript",until:String.raw`<\/script`},{include:"attributes"}],attributes:ys,doubleQuoted:[{match:'"',type:"string",pop:!0},...Be,{match:String.raw`(?:[^"{}]|\{(?!\{)|\}(?!\}))+`,type:"string"}],singleQuoted:[{match:"'",type:"string",pop:!0},...Be,{match:String.raw`(?:[^'{}]|\{(?!\{)|\}(?!\}))+`,type:"string"}]},insignificant:["space","newline","comment","text"]}},xs=["abstract","add","alias","and","args","as","ascending","async","await","base","bool","break","by","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","descending","do","double","dynamic","else","enum","equals","event","explicit","extern","false","file","finally","fixed","float","for","foreach","from","get","global","goto","group","if","implicit","in","init","int","interface","internal","into","is","join","let","lock","long","managed","nameof","namespace","new","nint","not","notnull","nuint","null","object","on","operator","or","orderby","out","override","params","partial","private","protected","public","readonly","record","ref","remove","required","return","sbyte","scoped","sealed","select","set","short","sizeof","stackalloc","static","string","struct","switch","this","throw","true","try","typeof","uint","ulong","unchecked","unmanaged","unsafe","ushort","using","value","var","virtual","void","volatile","when","where","while","with","yield"],bs=[{match:String.raw`///[^\r\n]*`,type:"doc-comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`(?<=^[ \t]*|[\r\n][ \t]*)#[ \t]*[a-z]+[^\r\n]*`,type:"preprocessor"},{match:String.raw`\r\n|[\r\n]`,type:"newline"},{match:String.raw`[ \t\f\v\u00A0\uFEFF]+`,type:"space"},{match:String.raw`\$*("{3,})[\s\S]*?\1`,type:"string"},{match:String.raw`\$@"|@\$"`,type:"string",push:"interpolatedVerbatim"},{match:String.raw`\$"`,type:"string",push:"interpolated"},{match:String.raw`@"(?:[^"]|"")*"?`,type:"string"},{match:String.raw`"(?:\\.|[^"\\\r\n])*"?`,type:"string"},{match:String.raw`'(?:\\.|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`0[xX][\da-fA-F_]+[uUlL]*|0[bB][01_]+[uUlL]*|(?:\d[\d_]*\.?[\d_]*|\.\d[\d_]*)(?:[eE][+-]?\d+)?[fFdDmMuUlL]*`,type:"number"},{match:String.raw`@?[A-Za-z_\u00A0-\uFFFF][\w\u00A0-\uFFFF]*`,type:"identifier"},{match:String.raw`[()\[\]{}]`,type:"bracket"},{match:String.raw`\?\.|::|[;,.]`,type:"punctuation"},{match:String.raw`\?\?=|<<=|>>>=|>>=|>>>|=>|==|!=|<=|>=|&&|\|\||\?\?|\+\+|--|->|<<|[-+*/%&|^<>!=]=?|[~?:]`,type:"operator"}],qe={name:"csharp",aliases:["cs","c#","c-sharp","dotnet"],lexical:{start:"root",states:{root:bs,interpolated:[{match:'"',type:"string",pop:!0},{match:String.raw`\{\{|\}\}`,type:"string"},{match:String.raw`\{`,type:"punctuation",push:"interpolation"},{match:String.raw`(?:\\.|[^"\\{}\r\n])+`,type:"string"}],interpolatedVerbatim:[{match:'""',type:"string"},{match:'"',type:"string",pop:!0},{match:String.raw`\{\{|\}\}`,type:"string"},{match:String.raw`\{`,type:"punctuation",push:"interpolation"},{match:String.raw`[^"{}]+`,type:"string"}],interpolation:[{match:String.raw`\}`,type:"punctuation",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}],braces:[{match:String.raw`\}`,type:"bracket",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}]},keywords:{keyword:xs},keywordExceptAfter:[".","?."]}},ws=["auto","break","case","char","const","continue","default","do","double","else","enum","extern","float","for","goto","if","inline","int","long","register","restrict","return","short","signed","sizeof","static","struct","switch","typedef","union","unsigned","void","volatile","while","bool","true","false","NULL","_Bool","_Complex","_Imaginary","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","and","and_eq","asm","bitand","bitor","catch","char8_t","char16_t","char32_t","class","co_await","co_return","co_yield","compl","concept","consteval","constexpr","constinit","const_cast","decltype","delete","dynamic_cast","explicit","export","final","friend","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reinterpret_cast","requires","static_assert","static_cast","template","this","thread_local","throw","try","typeid","typename","using","virtual","wchar_t","xor","xor_eq"],We={name:"c",aliases:["cpp","c++","cc","cxx","h","hpp","hxx","objc"],lexical:{start:"root",states:{root:[{match:String.raw`/\*\*(?!/)[\s\S]*?(?:\*/|$)|///[^\r\n]*`,type:"doc-comment"},{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`(?<=^[ \t]*|[\r\n][ \t]*)#[ \t]*\w+(?:\\\r?\n|[^\r\n])*`,type:"preprocessor"},{match:String.raw`\r\n|[\r\n]`,type:"newline"},{match:String.raw`[ \t\f\v]+`,type:"space"},{match:String.raw`(?:u8|u|U|L)?R"([^()\\\s]{0,16})\([\s\S]*?\)\1"`,type:"string"},{match:String.raw`(?:u8|u|U|L)?"(?:\\[\s\S]|[^"\\\r\n])*"?`,type:"string"},{match:String.raw`(?:u8|u|U|L)?'(?:\\.|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`0[xX][\da-fA-F']+[uUlL]*|0[bB][01']+[uUlL]*|(?:\d[\d']*\.?[\d']*|\.\d[\d']*)(?:[eEpP][+-]?\d+)?[fFlLuU]*`,type:"number"},{match:String.raw`[A-Za-z_][\w]*`,type:"identifier"},{match:String.raw`[()\[\]{}]`,type:"bracket"},{match:String.raw`::|\.\.\.|->\*?|\.\*?|[;,]`,type:"punctuation"},{match:String.raw`<=>|<<=|>>=|<<|>>|\+\+|--|&&|\|\||[-+*/%&|^<>!=]=?|[~?:#]`,type:"operator"}]},keywords:{keyword:ws},keywordExceptAfter:[".","->","::"]}},Ke={name:"json",aliases:["jsonc","json5","webmanifest"],lexical:{start:"root",states:{root:[{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`\r\n|[\r\n]`,type:"newline"},{match:String.raw`[ \t\f\v ]+`,type:"space"},{match:String.raw`(?:"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*')(?=\s*:)`,type:"attribute"},{match:String.raw`"(?:\\.|[^"\\\r\n])*"?|'(?:\\.|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`-?(?:0[xX][\da-fA-F]+|(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)|-?Infinity|NaN`,type:"number"},{match:String.raw`[A-Za-z_$][\w$]*`,type:"identifier"},{match:String.raw`[\[\]{}]`,type:"bracket"},{match:String.raw`[:,]`,type:"punctuation"}]},keywords:{keyword:["true","false","null"]}}},ze={javascript:Ge,"pacem-binding":Ve,markup:Je,csharp:qe,c:We,json:Ke};for(let n in ze){let t=ze[n];_t.register(t)}Number.prototype.isCloseTo=function(n,t=14){let e=+`1e-${t}`;return this>n-e&&this<n+e};Number.prototype.roundoff=function(n=14){return parseFloat(this.toFixed(n))};Number.prototype.clamp=function(n,t){let e=this;return n!=null&&!isNaN(n)&&(e=Math.max(e,n)),t!=null&&!isNaN(t)&&(e=Math.min(e,t)),e};Number.prototype.toBase62=function(){for(var n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",t=this,e="";t!=0;){var r=t%62;e=n.charAt(r)+e,t=Math.floor(t/62)}return e};Number.prototype.toBase36=function(){return this.toString(36)};var vs=/^\/Date\([\d]+\)\/$/i,Xt=class n{static parse(t){let e;return typeof t=="string"?(vs.test(t)?e=parseInt(t.substring(6)):e=Date.parse(t),new Date(e)):typeof t=="number"?new Date(t):t}static isLeapYear(t){return t%4===0&&t%100!==0||t%400===0}static daysInMonth(t,e){return[31,n.isLeapYear(t)?29:28,31,30,31,30,31,31,30,31,30,31][e]}static isDate(t){return t instanceof Date&&!isNaN(t.valueOf())}static dateOnly(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}static addMonths(t,e){let r=t.getDate(),s=new Date(t),i=s.getMonth()+e,o=0;for(;i<0;)i+=12,o--;return s.setDate(1),s.setMonth(i%12),s.setFullYear(s.getFullYear()+o+Math.floor(i/12)),s.setDate(Math.min(r,n.daysInMonth(s.getFullYear(),s.getMonth()))),s}static addDays(t,e){return new Date(t.valueOf()+e*864e5)}static daysBetween(t,e){return(e.valueOf()-t.valueOf())/864e5}};var X=class n{static isNull(t){return t==null}static isEmpty(t){try{return Array.isArray(t)&&t.length===0||typeof t=="string"&&t===""||typeof t=="object"&&Object.keys(t).length===0&&!Xt.isDate(t)&&!(t instanceof RegExp)&&!(t instanceof FileSystemDirectoryHandle)&&!(t instanceof FileSystemFileHandle)}catch{return!1}}static isNullOrEmpty(t){return n.isNull(t)||n.isEmpty(t)}};Array.prototype.distinct=function(){return Array.from(new Set(this))};Array.prototype.union=function(n){let t=X.isNullOrEmpty(this),e=X.isNullOrEmpty(n);return t&&e?[]:e?this.slice():t?n.slice():this.concat(n).distinct()};Array.prototype.moveWithin=function(n,t){let e="Index must be greater or equal than 0 and less or equal than the length of the array.";var r=this;if(n<0||n>r.length)throw new Error(e);if(t<0||t>r.length)throw new Error(e);r.splice(t,0,Array.prototype.splice.apply(r,[n,1])[0])};Array.prototype.equalsContent=function(n){if(n==null||this.length!==n.length)return!1;for(let t=0;t<this.length;t++)if(this[t]!==n[t])return!1;return!0};Array.prototype.cloneFrom=function(n){if(n==null)throw"Cannot clone array from null object.";let t=n.length;var e=this.length!==n.length;for(let r=0;r<t;r++){let s=n[r];this.length>r?this[r]!==s&&(this[r]=s,e=!0):(Array.prototype.push.apply(this,[s]),e=!0)}e&&this.splice(t)};var tn=/^hsl\s*\(\s*([\d\.]+)\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)%\s*\)$/,en=/^hsla\s*\(\s*([\d\.]+)\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)\)$/,nn=/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/,rn=/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d\.]+)\)$/,sn=/^#[a-f0-9]{6}$/,on=/^#[a-f0-9]{3}$/;function It(n){return!X.isNullOrEmpty(n)&&typeof n=="object"&&"r"in n&&"g"in n&&"b"in n&&typeof n.r=="number"&&typeof n.b=="number"&&typeof n.g=="number"?(n.a??=1,n.r>=0&&n.r<=1&&n.g>=0&&n.g<=1&&n.b>=0&&n.b<=1&&n.a>=0&&n.a<=1):!1}function lt(n){return!X.isNullOrEmpty(n)&&typeof n=="object"&&"h"in n&&"s"in n&&"l"in n&&typeof n.h=="number"&&typeof n.s=="number"&&typeof n.l=="number"?(n.a??=1,n.h>=0&&n.h<=360&&n.s>=0&&n.s<=1&&n.l>=0&&n.l<=1&&n.a>=0&&n.a<=1):!1}function Ss(n){let t=n.r,e=n.g,r=n.b;return(.5*(Math.max(t,e,r)+Math.min(t,e,r))).clamp(0,1)}var Q={adjustRgbChannel:n=>n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4),adjustRgbChannelInv:n=>n<=.00304?n*12.92:1.055*(Math.pow(n,1/2.4)-.055),adjustRgb:n=>({r:Q.adjustRgbChannel(n.r),g:Q.adjustRgbChannel(n.g),b:Q.adjustRgbChannel(n.b),a:n.a}),adjustRgbInv:n=>({r:Q.adjustRgbChannelInv(n.r),g:Q.adjustRgbChannelInv(n.g),b:Q.adjustRgbChannelInv(n.b),a:n.a}),X:n=>.4125*n.r+.3576*n.g+.1804*n.b,Y:n=>.2126*n.r+.7152*n.g+.0722*n.b,Z:n=>.0193*n.r+.1191*n.g+.9503*n.b,relativeLuminance:n=>{let t=Q.adjustRgb(n);return Q.Y(t)},rgbToCieXYZ:n=>{let t=Q.adjustRgb(n);return{x:Q.X(t),y:Q.Y(t),z:Q.Z(t),a:n.a}},cieXYZToRgb:n=>{let t=3.241*n.x-1.5374*n.y-.4986*n.z,e=-.9692*n.x+1.876*n.y+.0416*n.z,r=.0556*n.x-.204*n.y+1.057*n.z;return Q.adjustRgbInv({r:t,g:e,b:r,a:n.a})},contrastRatio:(n,t)=>{let e=Q.relativeLuminance(n)+.05,r=Q.relativeLuminance(t)+.05;return e>r?e/r:r/e}};function Cs(n,t){let e=n.r,r=n.g,s=n.b,i=Math.max(e,r,s),o=Math.min(e,r,s);return(t===0||t===1?0:(i-o)/(1-Math.abs(2*t-1))).clamp(0,1)}function ks(n){let t=n.r,e=n.g,r=n.b,s=Math.max(t,e,r),i=Math.min(t,e,r),o=0;return s!==i&&(s===t?o=(60*((e-r)/(s-i))+360)%360:s===e?o=(60*((r-t)/(s-i))+120)%360:o=(60*((t-e)/(s-i))+240)%360),o.clamp(0,360)}function le(n){return n.toString(16).padStart(2,"0")}var an=class n{static{this.WCAG_MINIMUM_CONTRAST=3}static{this.WCAG_NORMAL_TEXT_CONTRAST=4.5}static{this.WCAG_SAFE_CONTRAST=7}static _clampRGB(t){let e=r=>Math.min(1,Math.max(0,r));return t[3]==null&&(t[3]=1),{r:e(t[0]),g:e(t[1]),b:e(t[2]),a:Math.min(1,Math.max(0,t[3]))}}static _normalize(t){return[t[0]/255,t[1]/255,t[2]/255,t[3]]}static parse(t){if(t=(t||"").toLowerCase(),nn.test(t)){let e=nn.exec(t);return this._clampRGB(this._normalize([parseInt(e[1]),parseInt(e[2]),parseInt(e[3]),1]))}if(rn.test(t)){let e=rn.exec(t);return this._clampRGB(this._normalize([parseInt(e[1]),parseInt(e[2]),parseInt(e[3]),parseFloat(e[4])]))}if(sn.test(t)){let e=sn.exec(t)[0];return this._clampRGB(this._normalize([parseInt("0x"+e.substr(1,2)),parseInt("0x"+e.substr(3,2)),parseInt("0x"+e.substr(5,2)),1]))}if(on.test(t)){let e=on.exec(t)[0],r=e.substr(1,1),s=e.substr(2,1),i=e.substr(3,1);return this._clampRGB(this._normalize([parseInt("0x"+r+r),parseInt("0x"+s+s),parseInt("0x"+i+i),1]))}if(tn.test(t)){let e=tn.exec(t),r={h:parseFloat(e[1]),s:parseFloat(e[2])*.01,l:parseFloat(e[3])*.01};return this.rgb(r)}if(en.test(t)){let e=en.exec(t),r={h:parseFloat(e[1]),s:parseFloat(e[2])*.01,l:parseFloat(e[3])*.01,a:parseFloat(e[4])};return this.rgb(r)}}static hsl(t){let e=Ss(t),r=Cs(t,e);return{h:ks(t),s:r,l:e,a:t.a}}static cieXYZ(t){return lt(t)&&(t=this.rgb(t)),Q.rgbToCieXYZ(t)}static rgb(t){if(lt(t)){let e=t.h,r=t.s,s=t.l,i=e/60,o=(1-Math.abs(2*s-1))*r,a=o*(1-Math.abs(i%2-1)),c=s-o/2,l=(h,m,x)=>this._clampRGB([h+c,m+c,x+c,t.a]);if(i<=1)return l(o,a,0);if(i<=2)return l(a,o,0);if(i<=3)return l(0,o,a);if(i<=4)return l(0,a,o);if(i<=5)return l(a,0,o);if(i<=6)return l(o,0,a)}else{let e=Q.cieXYZToRgb(t);return this._clampRGB([e.r,e.g,e.b,e.a])}}static stringify(t,e=1){if(lt(t)){e??=1,t.a??=1;let r=typeof e=="number"?e:1;return`hsla(${t.h.roundoff(r)},${(t.s*100).roundoff(r)}%,${(t.l*100).roundoff(r)}%,${t.a.roundoff()})`}else if(It(t)){e??=!0,t.a??=1;let r=typeof e=="boolean"?e:!!e,s=Math.round(t.r*255),i=Math.round(t.g*255),o=Math.round(t.b*255),a=t.a.roundoff();return a===1?r?("#"+le(s)+le(i)+le(o)).toUpperCase():`rgb(${s},${i},${o})`:`rgba(${s},${i},${o},${a})`}}static contrastRatio(t,e){return lt(t)&&(t=this.rgb(t)),lt(e)&&(e=this.rgb(e)),Q.contrastRatio(t,e)}static luminance(t){return lt(t)&&(t=n.rgb(t)),Q.relativeLuminance(t)}static lighten(t,e=.1){if(e||=0,lt(t)){let r=Math.min(1,Math.max(0,t.l+e));return Object.assign({},t,{l:r})}if(It(t)){let r=this.lighten(this.hsl(t),e);return this.rgb(r)}return t}static darken(t,e=.1){return this.lighten(t,-e)}static saturate(t,e=.1){if(e||=0,lt(t)){let r=Math.min(1,Math.max(0,t.s+e));return Object.assign({},t,{s:r})}if(It(t)){let r=this.saturate(this.hsl(t),e);return this.rgb(r)}return t}static desaturate(t,e=.1){return this.saturate(t,-e)}static interpolate(t,e,r,s){r??=.5,s??=r;let i=(r+s).roundoff(),o=(r/i).roundoff(),a=(s/i).roundoff(),c=It(t),l=lt(t),h=x=>It(x)||lt(x)?n.cieXYZ(x):x;t=h(t),e=h(e);let m={x:(t.x*o+e.x*a).roundoff(),y:(t.y*o+e.y*a).roundoff(),z:(t.z*o+e.z*a).roundoff(),a:(t.a*o+e.a*a).roundoff()};return c?n.rgb(m):l?n.hsl(n.rgb(m)):m}};var Ts=/[-+]?([\d]+(\.[\d]+(e-[\d]+)?)?|[\d]*(\.[\d]+(e-[\d]+)?))/g;function yt(n){let t=[],e=n.match(Ts);return e&&e.length>0&&e.forEach(r=>t.push(parseFloat(r))),t}var At=class n{static isAngle(t){return typeof t=="object"&&"vertex"in t&&U.isPoint(t.vertex)&&"start"in t&&U.isPoint(t.start)&&"end"in t&&U.isPoint(t.end)}static value(t){if(X.isNullOrEmpty(t)||!n.isAngle(t))return Number.NaN;let{vertex:e,start:r,end:s}=t;return n.angleBetween(e,r,s)}static angleBetween(t,e,r){let s={x:e.x-t.x,y:e.y-t.y},i={x:r.x-t.x,y:r.y-t.y},o=s.x*i.x+s.y*i.y,a=s.x*i.y-s.y*i.x;return-Math.atan2(a,o)}},jt=class{static parse(t){let e=yt(t);if(e&&e.length===2)return{width:e[0],height:e[1]};throw new Error(`Cannot parse "${t}" as a valid Size.`)}static isSize(t){return typeof t=="object"&&"width"in t&&typeof t.width=="number"&&"height"in t&&typeof t.height=="number"}},U=class{static parse(t){let e=yt(t);if(e&&e.length===2)return{x:e[0],y:e[1]};throw new Error(`Cannot parse "${t}" as a valid Point.`)}static isPoint(t){return typeof t=="object"&&"x"in t&&typeof t.x=="number"&&"y"in t&&typeof t.y=="number"}static distance(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}static subtract(t,e){return{x:e.x-t.x,y:e.y-t.y}}static add(...t){var e={x:0,y:0};for(var r of t)e.x+=r.x,e.y+=r.y;return e}static multiply(t,e){return{x:t.x*e,y:t.y*e}}};var ft=class n{static isIdentity(t){return t.a===1&&t.d===1&&t.b===0&&t.f===0&&t.c===0&&t.e===0}static get identity(){return{a:1,b:0,c:0,d:1,e:0,f:0}}static copy(t){return{a:t.a,b:t.b,c:t.c,d:t.d,e:t.e,f:t.f}}static scale(t,e,r=e){return{a:t.a*e,b:t.b,c:t.c,d:t.d*r,e:t.e,f:t.f}}static translate(t,e){return{a:t.a,b:t.b,c:t.c,d:t.d,e:t.e+e.x,f:t.f+e.y}}static rotate(t,e){let r=Math.cos(e),s=Math.sin(e);return n.multiply(t,{a:r,b:s,c:-s,d:r,e:0,f:0})}static multiply(t,e){return"x"in t&&"y"in t?typeof e=="number"?{x:t.x*e,y:t.y*e}:{x:t.x*e.a+t.y*e.c+e.e,y:t.x*e.b+t.y*e.d+e.f}:typeof e=="number"?{a:t.a*e,b:t.b*e,c:t.c*e,d:t.d*e,e:t.e*e,f:t.f*e}:{a:t.a*e.a+t.b*e.c,b:t.a*e.b+t.b*e.d,c:t.c*e.a+t.d*e.c,d:t.c*e.b+t.d*e.d,e:t.e*e.a+t.f*e.c+e.e,f:t.e*e.b+t.f*e.d+e.f}}static det(t){return t.a*t.d-t.c*t.b}static invert(t){let e=this.det(t);if(e===0)return null;let r=1/e;return this.multiply({a:t.d,b:-t.b,c:-t.c,d:t.a,e:-t.e*t.d+t.c*t.f,f:t.e*t.b-t.a*t.f},r)}static toComponents(t,e={x:0,y:0}){let r=Math.sqrt(t.a*t.a+t.c*t.c),s=Math.sqrt(t.b*t.b+t.d*t.d),i=r!=0?t.a/r:0,o=r!=0?t.c/r:0,a=Math.atan2(o,i),{x:c,y:l}=e,h={x:t.e-c*(r*i-1)+l*r*o,y:t.f-l*(s*i-1)-c*s*o};return{scaleX:r,scaleY:s,rotation:a,translation:h}}static fromTransform([t,e,r],[s,i,o]){let a=t.x*(e.y-r.y)-t.y*(e.x-r.x)+(e.x*r.y-r.x*e.y);if(Math.abs(a)<1e-10)throw new Error("Points are collinear; matrix is singular and cannot be solved.");let c=1/a;return{a:c*(s.x*(e.y-r.y)+i.x*(r.y-t.y)+o.x*(t.y-e.y)),b:c*(s.y*(e.y-r.y)+i.y*(r.y-t.y)+o.y*(t.y-e.y)),c:c*(s.x*(r.x-e.x)+i.x*(t.x-r.x)+o.x*(e.x-t.x)),d:c*(s.y*(r.x-e.x)+i.y*(t.x-r.x)+o.y*(e.x-t.x)),e:c*(s.x*(e.x*r.y-r.x*e.y)+i.x*(r.x*t.y-t.x*r.y)+o.x*(t.x*e.y-e.x*t.y)),f:c*(s.y*(e.x*r.y-r.x*e.y)+i.y*(r.x*t.y-t.x*r.y)+o.y*(t.x*e.y-e.x*t.y))}}static areClose(t,e,r=12){return t.a.isCloseTo(e.a,r)&&t.b.isCloseTo(e.b,r)&&t.c.isCloseTo(e.c,r)&&t.d.isCloseTo(e.d,r)&&t.e.isCloseTo(e.e,r)&&t.f.isCloseTo(e.f,r)}};var wt=class n{static parse(t){let e=yt(t);if(e&&e.length===4)return{x:e[0],y:e[1],width:e[2],height:e[3]};throw new Error(`Cannot parse "${t}" as a valid Rect.`)}static isRect(t){return U.isPoint(t)&&jt.isSize(t)}static _stretch(t,e){return{a:e.width/t.width,b:0,c:0,d:e.height/t.height,e:e.x-t.x,f:e.y-t.y}}static _contain(t,e,r,s){let i=1,o=t.width/t.height,a=e.width/e.height;o>=a?i=e.width/t.width:i=e.height/t.height;let c=t.width*i,l=t.height*i,h=this._align({x:t.x,y:t.y,width:c,height:l},e,r,s);return ft.translate({a:i,b:0,c:0,d:i,e:0,f:0},h)}static _cover(t,e,r,s){let i=1,o=t.width/t.height,a=e.width/e.height;o<a?i=e.width/t.width:i=e.height/t.height;let c=t.width*i,l=t.height*i,h=this._align({x:t.x,y:t.y,width:c,height:l},e,r,s);return ft.translate({a:i,b:0,c:0,d:i,e:0,f:0},h)}static _align(t,e,r,s){let i=0,o=0;switch(r){case"left":i=e.x-t.x;break;case"right":i=e.x+e.width-t.width-t.x;break;default:i=e.x+e.width*.5-t.width*.5-t.x;break}switch(s){case"top":o=e.y-t.y;break;case"bottom":o=e.y+e.height-t.height-t.y;break;default:o=e.y+e.height*.5-t.height*.5-t.y;break}return{x:i,y:o}}static findTransform(t,e,r="stretch",s="center",i="middle"){switch(r){case"contain":return this._contain(t,e,s,i);case"cover":return this._cover(t,e,s,i);default:return this._stretch(t,e)}}static intersect(...t){let e={x:0,y:0,height:0,width:0},r=Array.from(t||[]);if(r.length<=0)return e;for(var s=r[0],i=1;i<r.length;i++){let o=r[i],a=Math.max(o.x,s.x),c=Math.max(o.y,s.y),l=Math.min(o.x+o.width,s.x+s.width),h=Math.min(o.y+o.height,s.y+s.height),m=l-a,x=h-c;if(m<0||x<=0)return e;s={x:a,y:c,width:m,height:x}}return s}static expand(t,...e){let r=Array.from(e||[]),s=t.x,i=t.y,o=s,a=i;n.isRect(t)&&(o+=t.width,a+=t.height);for(let c of r)s=Math.min(c.x,s),i=Math.min(c.y,i),o=Math.max(c.x,o),a=Math.max(c.y,a);return{x:s,y:i,width:o-s,height:a-i}}};var cn=class n{static#e;static uniqueId(){let t=n.#e||Date.now();return n.#e=++t}static uniqueCode(){return n.uniqueId().toBase62()}static randomString(t){let e="";do e+=(Math.random()*62).toBase62();while(e.length<t);return e}};var Nt=class{static round(t,e=1){return Math.round(t/e)*e}static log(t,e){return Math.log10(t)/Math.log10(e)}static rebase(t,e,r){let s=t.toString(),i=parseInt(s,e);return s.endsWith(i.toString(e))?parseInt(t.toString(),e).toString(r):Number.NaN.toString()}};var ue=new Map;function ln(n){return(n??"").trim().toLowerCase()}var pt=class{static register(t){if(t==null)return;let e=[t.name].concat(t.aliases??[]);for(let r of e){let s=ln(r);ue.set(s,t)}}static get(t){let e=ln(t);return ue.get(e)??null}static names(){let t=ue.keys();return Array.from(t)}};var _s="root",As=["identifier"],Es=["space","newline","comment","doc-comment"],Ms=64,$s=16;function Is(n){return n.combined!=null}var un=new WeakMap;function Ns(n){return"include"in n}function Ut(n){return n==null||n.length===0?null:new Set(n)}function Ls(n){let t=n.split(""),e=new Set(t);return Array.from(e).join("")}function Bs(n,t){let e={};for(let r in t)e[r]=t[r].slice();for(let r in n){let s=e[r]??[];e[r]=n[r].concat(s)}return e}function zs(n,t){let e={};for(let r in t)e[r]=t[r].slice();for(let r in n){let s=e[r]??[];e[r]=s.concat(n[r])}return e}function hn(n,t=0){let e=n.lexical??{states:{}},r={start:e.start,states:e.states??{},keywords:e.keywords??{},keywordSources:e.keywordSources,keywordExceptAfter:e.keywordExceptAfter,insignificant:e.insignificant},s=n.extends?pt.get(n.extends):null;if(s==null||s===n||t>=$s)return r;let i=hn(s,t+1);return{start:r.start??i.start,states:Bs(r.states,i.states),keywords:zs(r.keywords,i.keywords),keywordSources:r.keywordSources??i.keywordSources,keywordExceptAfter:r.keywordExceptAfter??i.keywordExceptAfter,insignificant:r.insignificant??i.insignificant}}function fn(n,t,e){let r=n[t]??[];if(e.has(t))return[];e.add(t);let s=[];for(let i of r){if(!Ns(i)){s.push(i);continue}let o=fn(n,i.include,e);Array.prototype.push.apply(s,o)}return e.delete(t),s}function Ps(n){return n==null?null:{previousTypes:Ut(n.previousTypes),previousNotTypes:Ut(n.previousNotTypes),previousTexts:Ut(n.previousTexts),previousNotTexts:Ut(n.previousNotTexts)}}function Os(n){let t=Array.isArray(n.type)?n.type:null,e=Array.isArray(n.type)?n.type[0]:n.type,r=(n.flags??"").replace(/[yd]/g,""),s=Ls(r),i=s+"y"+(t?"d":""),o=new RegExp(n.match,i),a=n.until?new RegExp(n.until,"y"):null,c=n.pop===!0?1:typeof n.pop=="number"?n.pop:0,l=Ps(n.when);return{regex:o,type:e,groupTypes:t,when:l,pop:c,until:a,source:n.match,flags:s,next:n.next??null,push:n.push??null,embed:n.embed??null,hasTransition:c>0||!!n.next||!!n.push||!!n.embed}}function Fs(n){let t=new Map;for(let e in n)for(let r of n[e])t.set(r,e);return t}var Ds=/\\[1-9]|\\k<|\(\?<(?![=!])/;function Hs(n,t){return new RegExp(n+"|",t).exec("").length-1}function Ys(n,t){return new RegExp("^(?:"+n+")$",t).test("")}function Xs(n){return n.when!=null||Ds.test(n.source)?!1:!Ys(n.source,n.flags)}function js(n){if(n.length===1)return{rule:n[0],combined:null};let t=[],e=1;for(let o of n){t.push(e);let a=Hs(o.source,o.flags);e+=1+a}let s=n.map(o=>"("+o.source+")").join("|");return{rule:null,combined:new RegExp(s,n[0].flags+"y"),rules:n,groupIndices:t}}function Us(n){let t=[],e=[],r=()=>{if(e.length>0){let s=js(e);t.push(s)}e=[]};for(let s of n){if(!Xs(s)){r(),t.push({rule:s,combined:null});continue}e.length>0&&e[0].flags!==s.flags&&r(),e.push(s)}return r(),t}function pn(n){let t=un.get(n);if(t!=null)return t;let e=hn(n),r=new Map;for(let i in e.states){let o=new Set,c=fn(e.states,i,o).map(Os),l=Us(c);r.set(i,l)}let s={name:n.name,start:e.start??_s,states:r,keywords:Fs(e.keywords),keywordSources:new Set(e.keywordSources??As),keywordExceptAfter:new Set(e.keywordExceptAfter??[]),insignificant:new Set(e.insignificant??Es)};return un.set(n,s),s}function Zs(n){let t=pt.get(n);return t==null?null:pn(t)}function Gs(n,t){let e=t?.type??null,r=t?.raw??null;return n.previousTypes!=null&&!n.previousTypes.has(e)||n.previousNotTypes!=null&&n.previousNotTypes.has(e)||n.previousTexts!=null&&!n.previousTexts.has(r)?!1:n.previousNotTexts==null||!n.previousNotTexts.has(r)}var he=class{constructor(t,e){this._source=t;this._tokens=[];this._position=0;this._emitted=0;this._line=1;this._column=1;this._previous=null;this._emptyTransitions=0;this._stack=[{syntax:e,state:e.start,until:null}]}run(){let t=this._source.length;for(;this._position<t;)this._step();return this._flushText(),this._tokens}get _top(){let t=this._stack;return t[t.length-1]}_step(){let t=this._top;if(this._popOnUntil(t))return;let e=this._findRule(t);if(e==null){this._position++;return}this._flushText(),this._emitMatch(e,t.syntax),this._transition(e.rule,t.syntax);let r=e.match[0].length;this._position+=r,r>0&&(this._emptyTransitions=0)}_popOnUntil(t){let e=t.until;return e==null||this._stack.length<=1||(e.lastIndex=this._position,!e.test(this._source))?!1:(this._flushText(),this._stack.pop(),!0)}_findRule(t){let e=t.syntax.states.get(t.state)??[];for(let r of e){let s=Is(r)?this._tryCombined(r):this._trySingle(r.rule);if(s!=null)return s}return null}_trySingle(t){let e=this._tryRule(t);return e==null?null:{rule:t,match:e}}_tryCombined(t){let e=t.combined;e.lastIndex=this._position;let r=e.exec(this._source);if(r==null)return null;let s=t.groupIndices;for(let i=0;i<s.length;i++){if(r[s[i]]===void 0)continue;let o=t.rules[i];return this._trySingle(o)}return null}_tryRule(t){if(t.when!=null&&!Gs(t.when,this._previous))return null;let e=t.regex;e.lastIndex=this._position;let r=e.exec(this._source);return r==null?null:r[0].length>0?r:!t.hasTransition||this._emptyTransitions>=Ms?null:(this._emptyTransitions++,r)}_emitMatch({rule:t,match:e},r){let s=e[0];if(t.groupTypes==null){this._append(t.type,s,r);return}this._emitGroups(t,e,r)}_emitGroups(t,e,r){let s=e.indices,i=e.index,o=i+e[0].length,a=t.groupTypes,c=i;for(let l=1;l<e.length;l++){let h=s[l];if(h==null||h[0]<c||h[1]===h[0])continue;if(h[0]>c){let C=this._source.slice(c,h[0]);this._append("text",C,r)}let m=this._source.slice(h[0],h[1]),x=a[l-1]??a[a.length-1];this._append(x,m,r),c=h[1]}if(c<o){let l=this._source.slice(c,o);this._append("text",l,r)}}_transition(t,e){let r=this._stack;for(let i=0;i<t.pop&&r.length>1;i++)r.pop();if(t.next!=null&&(this._top.state=t.next),t.push!=null&&r.push({syntax:e,state:t.push,until:null}),t.embed==null)return;let s=Zs(t.embed);s!=null&&r.push({syntax:s,state:s.start,until:t.until})}_flushText(){if(this._emitted>=this._position)return;let t=this._source.slice(this._emitted,this._position),e=this._top.syntax;this._append("text",t,e)}_resolveType(t,e,r){if(!r.keywordSources.has(t))return t;let s=this._previous?.raw;return r.keywordExceptAfter.has(s)?t:r.keywords.get(e)??t}_append(t,e,r){let s=this._resolveType(t,e,r),i={type:s,raw:e,text:e,index:this._emitted,line:this._line,column:this._column,depth:this._stack.length-1,syntax:r.name};this._tokens.push(i),this._advance(e),r.insignificant.has(s)||(this._previous=i)}_advance(t){this._emitted+=t.length;let e=t.lastIndexOf(`
|
|
11
|
+
`);if(e<0){this._column+=t.length;return}for(let r=0;r<=e;r++)t.charCodeAt(r)===10&&this._line++;this._column=t.length-e}},Vs={name:"text",lexical:{states:{}}},Zt=class{tokenize(t,e){let r=t??"",s=typeof e=="string"?pt.get(e):e,i=pn(s??Vs);return new he(r,i).run()}};var Ho=Object.freeze({keyword:"code-keyword",preprocessor:"code-keyword",string:"code-string",regex:"code-string",number:"code-number",comment:"code-comment","doc-comment":"code-comment",tag:"code-tag",tagname:"code-tagname",attribute:"code-attribute"});var Qo=new Zt;var Js=["identifier","number","string","regex"],qs=[")","]","}","this","super","null","undefined","true","false","++","--"],Ws=["async","await","break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","of","return","set","static","super","switch","this","throw","true","try","typeof","undefined","var","void","while","with","yield","abstract","accessor","any","as","asserts","bigint","boolean","declare","implements","infer","interface","is","keyof","module","namespace","never","number","object","override","package","private","protected","public","readonly","satisfies","string","symbol","type","unique","unknown"],Ks=[{match:String.raw`/\*\*(?!/)[\s\S]*?(?:\*/|$)`,type:"doc-comment"},{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`\r\n|[\r\n
]`,type:"newline"},{match:String.raw`[ \t\f\v ]+`,type:"space"},{match:"`",type:"string",push:"template"},{match:String.raw`"(?:\\[\s\S]|[^"\\\r\n])*"?`,type:"string"},{match:String.raw`'(?:\\[\s\S]|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`/(?![*/])(?:\\.|\[(?:\\.|[^\]\\\r\n])*\]|[^/\\\[\r\n])+/[a-z]*`,type:"regex",when:{previousNotTypes:Js,previousNotTexts:qs}},{match:String.raw`0[xX][\da-fA-F_]+n?|0[bB][01_]+n?|0[oO][0-7_]+n?|(?:\d[\d_]*\.?[\d_]*|\.\d[\d_]*)(?:[eE][+-]?\d[\d_]*)?n?`,type:"number"},{match:String.raw`#?[A-Za-z_$ -][\w$ -]*`,type:"identifier"},{match:String.raw`[()\[\]{}]`,type:"bracket"},{match:String.raw`\?\.(?!\d)|\.\.\.|[;,.]`,type:"punctuation"},{match:String.raw`>>>=|<<=|>>=|>>>|\*\*=|&&=|\|\|=|\?\?=|===|!==|=>|\*\*|\+\+|--|<<|>>|&&|\|\||\?\?|[-+*/%&|^<>!=]=?|[~?:@]`,type:"operator"}],dn={name:"javascript",aliases:["js","mjs","cjs","jsx","typescript","ts","tsx","script","ecmascript"],lexical:{start:"root",states:{root:Ks,template:[{match:"`",type:"string",pop:!0},{match:String.raw`\$\{`,type:"punctuation",push:"templateExpression"},{match:String.raw`(?:\\[\s\S]|\$(?!\{)|[^\\`+"`"+String.raw`$])+`,type:"string"}],templateExpression:[{match:String.raw`\}`,type:"punctuation",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}],braces:[{match:String.raw`\}`,type:"bracket",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}]},keywords:{keyword:Ws},keywordExceptAfter:[".","?."]}};var fe={previousNotTexts:[".","?."]},gn={name:"pacem-binding",aliases:["pacem","binding"],extends:"javascript",lexical:{states:{root:[{match:String.raw`:host(?=\.)`,type:"binding-host",when:fe},{match:String.raw`::[A-Za-z_$][\w$]*`,type:"binding-host-property"},{match:String.raw`\^+item(?![\w$])`,type:"binding-item"},{match:String.raw`\^+index(?![\w$])`,type:"binding-index"},{match:String.raw`#[A-Za-z_][\w]*`,type:"binding-element",when:fe},{match:String.raw`\$?this(?![\w$])`,type:"binding-this",when:fe}]}}};var yn={match:String.raw`\r\n|[\r\n]`,type:"newline"},ti=[yn,{match:String.raw`[ \t\f]+`,type:"space"},{match:'"',type:"string",push:"doubleQuoted"},{match:"'",type:"string",push:"singleQuoted"},{match:String.raw`[^\s=/>"']+`,type:"attribute"},{match:"=",type:"operator"},{match:"/",type:"punctuation"}],mn=[{match:String.raw`\{\{`,type:"punctuation",embed:"pacem-binding",until:String.raw`\}\}`},{match:String.raw`\}\}`,type:"punctuation"}],xn={name:"markup",aliases:["html","htm","xml","xhtml","svg"],lexical:{start:"root",states:{root:[{match:String.raw`<!--[\s\S]*?(?:-->|$)`,type:"comment"},{match:String.raw`<![^>]*>?`,type:"tag"},{match:String.raw`(<\/)([\w:.-]+)(\s*>?)`,type:["tag","tagname","tag"]},{match:String.raw`(<)(script)(?![\w:.-])`,flags:"i",type:["tag","tagname"],push:"scriptTag"},{match:String.raw`(<)([\w:.-]+)`,type:["tag","tagname"],push:"tag"},{match:String.raw`&(?:#\d+|#[xX][\da-fA-F]+|\w+);`,type:"entity"},yn,{match:String.raw`[^<&\r\n]+`,type:"text"}],tag:[{match:String.raw`/?>`,type:"tag",pop:!0},{include:"attributes"}],scriptTag:[{match:"/>",type:"tag",pop:!0},{match:">",type:"tag",pop:!0,embed:"javascript",until:String.raw`<\/script`},{include:"attributes"}],attributes:ti,doubleQuoted:[{match:'"',type:"string",pop:!0},...mn,{match:String.raw`(?:[^"{}]|\{(?!\{)|\}(?!\}))+`,type:"string"}],singleQuoted:[{match:"'",type:"string",pop:!0},...mn,{match:String.raw`(?:[^'{}]|\{(?!\{)|\}(?!\}))+`,type:"string"}]},insignificant:["space","newline","comment","text"]}};var ei=["abstract","add","alias","and","args","as","ascending","async","await","base","bool","break","by","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","descending","do","double","dynamic","else","enum","equals","event","explicit","extern","false","file","finally","fixed","float","for","foreach","from","get","global","goto","group","if","implicit","in","init","int","interface","internal","into","is","join","let","lock","long","managed","nameof","namespace","new","nint","not","notnull","nuint","null","object","on","operator","or","orderby","out","override","params","partial","private","protected","public","readonly","record","ref","remove","required","return","sbyte","scoped","sealed","select","set","short","sizeof","stackalloc","static","string","struct","switch","this","throw","true","try","typeof","uint","ulong","unchecked","unmanaged","unsafe","ushort","using","value","var","virtual","void","volatile","when","where","while","with","yield"],ni=[{match:String.raw`///[^\r\n]*`,type:"doc-comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`(?<=^[ \t]*|[\r\n][ \t]*)#[ \t]*[a-z]+[^\r\n]*`,type:"preprocessor"},{match:String.raw`\r\n|[\r\n]`,type:"newline"},{match:String.raw`[ \t\f\v\u00A0\uFEFF]+`,type:"space"},{match:String.raw`\$*("{3,})[\s\S]*?\1`,type:"string"},{match:String.raw`\$@"|@\$"`,type:"string",push:"interpolatedVerbatim"},{match:String.raw`\$"`,type:"string",push:"interpolated"},{match:String.raw`@"(?:[^"]|"")*"?`,type:"string"},{match:String.raw`"(?:\\.|[^"\\\r\n])*"?`,type:"string"},{match:String.raw`'(?:\\.|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`0[xX][\da-fA-F_]+[uUlL]*|0[bB][01_]+[uUlL]*|(?:\d[\d_]*\.?[\d_]*|\.\d[\d_]*)(?:[eE][+-]?\d+)?[fFdDmMuUlL]*`,type:"number"},{match:String.raw`@?[A-Za-z_\u00A0-\uFFFF][\w\u00A0-\uFFFF]*`,type:"identifier"},{match:String.raw`[()\[\]{}]`,type:"bracket"},{match:String.raw`\?\.|::|[;,.]`,type:"punctuation"},{match:String.raw`\?\?=|<<=|>>>=|>>=|>>>|=>|==|!=|<=|>=|&&|\|\||\?\?|\+\+|--|->|<<|[-+*/%&|^<>!=]=?|[~?:]`,type:"operator"}],bn={name:"csharp",aliases:["cs","c#","c-sharp","dotnet"],lexical:{start:"root",states:{root:ni,interpolated:[{match:'"',type:"string",pop:!0},{match:String.raw`\{\{|\}\}`,type:"string"},{match:String.raw`\{`,type:"punctuation",push:"interpolation"},{match:String.raw`(?:\\.|[^"\\{}\r\n])+`,type:"string"}],interpolatedVerbatim:[{match:'""',type:"string"},{match:'"',type:"string",pop:!0},{match:String.raw`\{\{|\}\}`,type:"string"},{match:String.raw`\{`,type:"punctuation",push:"interpolation"},{match:String.raw`[^"{}]+`,type:"string"}],interpolation:[{match:String.raw`\}`,type:"punctuation",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}],braces:[{match:String.raw`\}`,type:"bracket",pop:!0},{match:String.raw`\{`,type:"bracket",push:"braces"},{include:"root"}]},keywords:{keyword:ei},keywordExceptAfter:[".","?."]}};var ri=["auto","break","case","char","const","continue","default","do","double","else","enum","extern","float","for","goto","if","inline","int","long","register","restrict","return","short","signed","sizeof","static","struct","switch","typedef","union","unsigned","void","volatile","while","bool","true","false","NULL","_Bool","_Complex","_Imaginary","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","and","and_eq","asm","bitand","bitor","catch","char8_t","char16_t","char32_t","class","co_await","co_return","co_yield","compl","concept","consteval","constexpr","constinit","const_cast","decltype","delete","dynamic_cast","explicit","export","final","friend","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reinterpret_cast","requires","static_assert","static_cast","template","this","thread_local","throw","try","typeid","typename","using","virtual","wchar_t","xor","xor_eq"],wn={name:"c",aliases:["cpp","c++","cc","cxx","h","hpp","hxx","objc"],lexical:{start:"root",states:{root:[{match:String.raw`/\*\*(?!/)[\s\S]*?(?:\*/|$)|///[^\r\n]*`,type:"doc-comment"},{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`(?<=^[ \t]*|[\r\n][ \t]*)#[ \t]*\w+(?:\\\r?\n|[^\r\n])*`,type:"preprocessor"},{match:String.raw`\r\n|[\r\n]`,type:"newline"},{match:String.raw`[ \t\f\v]+`,type:"space"},{match:String.raw`(?:u8|u|U|L)?R"([^()\\\s]{0,16})\([\s\S]*?\)\1"`,type:"string"},{match:String.raw`(?:u8|u|U|L)?"(?:\\[\s\S]|[^"\\\r\n])*"?`,type:"string"},{match:String.raw`(?:u8|u|U|L)?'(?:\\.|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`0[xX][\da-fA-F']+[uUlL]*|0[bB][01']+[uUlL]*|(?:\d[\d']*\.?[\d']*|\.\d[\d']*)(?:[eEpP][+-]?\d+)?[fFlLuU]*`,type:"number"},{match:String.raw`[A-Za-z_][\w]*`,type:"identifier"},{match:String.raw`[()\[\]{}]`,type:"bracket"},{match:String.raw`::|\.\.\.|->\*?|\.\*?|[;,]`,type:"punctuation"},{match:String.raw`<=>|<<=|>>=|<<|>>|\+\+|--|&&|\|\||[-+*/%&|^<>!=]=?|[~?:#]`,type:"operator"}]},keywords:{keyword:ri},keywordExceptAfter:[".","->","::"]}};var vn={name:"json",aliases:["jsonc","json5","webmanifest"],lexical:{start:"root",states:{root:[{match:String.raw`/\*[\s\S]*?(?:\*/|$)`,type:"comment"},{match:String.raw`//[^\r\n]*`,type:"comment"},{match:String.raw`\r\n|[\r\n]`,type:"newline"},{match:String.raw`[ \t\f\v ]+`,type:"space"},{match:String.raw`(?:"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*')(?=\s*:)`,type:"attribute"},{match:String.raw`"(?:\\.|[^"\\\r\n])*"?|'(?:\\.|[^'\\\r\n])*'?`,type:"string"},{match:String.raw`-?(?:0[xX][\da-fA-F]+|(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)|-?Infinity|NaN`,type:"number"},{match:String.raw`[A-Za-z_$][\w$]*`,type:"identifier"},{match:String.raw`[\[\]{}]`,type:"bracket"},{match:String.raw`[:,]`,type:"punctuation"}]},keywords:{keyword:["true","false","null"]}}};var Sn={javascript:dn,"pacem-binding":gn,markup:xn,csharp:bn,c:wn,json:vn};for(let n in Sn){let t=Sn[n];pt.register(t)}var ii=Object.defineProperty,Pt=(n,t)=>{for(var e in t)ii(n,e,{get:t[e],enumerable:!0})},oi={};Pt(oi,{LinearAlgebra:()=>En,Polygon:()=>yi,Utils:()=>St,Utils3D:()=>wi});var xt=class ge{static unit(t){let e={x:t.x,y:t.y};return this.normalize(e),e}static magSqr(t){return t.x*t.x+t.y*t.y}static mag(t){return Math.sqrt(ge.magSqr(t))}static normalize(t){let e=ge.mag(t);if(e<=0)throw"Cannot normalize a vector of length 0.";let r=1/e;t.x*=r,t.y*=r}static from(t,e){return U.subtract(t,e)}static dot(t,e){return t.x*e.x+t.y*e.y}static cross(t,e){return t.x*e.y-t.y*e.x}static areClose(t,e){return(e.x-t.x).isCloseTo(0)&&(e.y-t.y).isCloseTo(0)}},Gt=class{constructor(n,t,e=-1){this.x=n,this.y=t,this.index=e}equals(n){return this.x===n.x&&this.y===n.y}};function ai(n,t,e){let r=n.x,s=n.y,i=t.x,o=t.y,a=e.x,c=e.y,l=2*(r*(o-c)+i*(c-s)+a*(s-o));if(Math.abs(l)<1e-12)return{c:{x:0,y:0},r:1/0};let h=((r*r+s*s)*(o-c)+(i*i+o*o)*(c-s)+(a*a+c*c)*(s-o))/l,m=((r*r+s*s)*(a-i)+(i*i+o*o)*(r-a)+(a*a+c*c)*(i-r))/l,x=Math.hypot(h-r,m-s);return{c:{x:h,y:m},r:x}}var _n=class{constructor(n,t,e){this.v0=n,this.v1=t,this.v2=e,this.circumCirc=ai(n,t,e)}inCircumcircle(n){let t=this.circumCirc.c.x-n.x,e=this.circumCirc.c.y-n.y;return Math.hypot(t,e)<=this.circumCirc.r+1e-9}};function ci(n){let t=1/0,e=1/0,r=-1/0,s=-1/0;for(let h of n)t=Math.min(t,h.x),e=Math.min(e,h.y),r=Math.max(r,h.x),s=Math.max(s,h.y);let i=(r-t)*10,o=(s-e)*10,a=new Gt(t-i,e-o*3),c=new Gt(t-i,s+o),l=new Gt(r+i*3,s+o);return new _n(a,c,l)}function li(n){let t=[];for(let e=0;e<n.length;++e){let r=!0;for(let s=0;s<n.length;++s)if(e!==s){let i=n[e],o=n[s];if(i.v0.equals(o.v0)&&i.v1.equals(o.v1)||i.v0.equals(o.v1)&&i.v1.equals(o.v0)){r=!1;break}}r&&t.push(n[e])}return t}function ui(n,t){let e=[];t=t.filter(s=>s.inCircumcircle(n)?(e.push({v0:s.v0,v1:s.v1}),e.push({v0:s.v1,v1:s.v2}),e.push({v0:s.v2,v1:s.v0}),!1):!0);let r=li(e);for(let s of r)t.push(new _n(s.v0,s.v1,n));return t}function hi(n){if(n.length<3)return[];let t=ci(n),e=[t];for(let r of n)e=ui(r,e);return e=e.filter(r=>!(r.v0===t.v0||r.v0===t.v1||r.v0===t.v2||r.v1===t.v0||r.v1===t.v1||r.v1===t.v2||r.v2===t.v0||r.v2===t.v1||r.v2===t.v2)),e}function fi(n){if(n.length<3)return[];let t=n.map((s,i)=>new Gt(s.x,s.y,i)),e=hi(t),r=[];for(let s of e)r.push(s.v0.index,s.v1.index,s.v2.index);return r}var pi=class{static triangulate(n){return fi(n)}},di=180/Math.PI,Cn=2*Math.PI,vt=12;function Qt(n){return U.isPoint(n)}function gi(n){return n!=null&&Array.isArray(n)&&n.length===2&&Qt(n[0])&&Qt(n[1])}var St=class R{static slopeRad(t,e){return Math.atan2(e.y-t.y,e.x-t.x)}static slopeRad2(t,e){return(Cn+R.slopeRad(t,e))%Cn}static slopeDeg(t,e){return R.slopeRad(t,e)*di}static slopeDeg2(t,e){return(360+R.slopeDeg(t,e))%360}static intersect(t,e,...r){return Array.isArray(t)&&Array.isArray(e)?R._intersectSegments(t,e,!0):wt.isRect(t)?R._intersectRects(...arguments):"vertices"in t?R._mergePolygons(t,e,"intersect")?.polygons??null:null}static boundingBox(t){let e=Number.MAX_VALUE,r=Number.MAX_VALUE,s=-Number.MAX_VALUE,i=-Number.MAX_VALUE,o=t.length;for(let a of t)e=Math.min(e,a.x),r=Math.min(r,a.y),s=Math.max(s,a.x),i=Math.max(i,a.y);return{x:e,y:r,width:s-e,height:i-r}}static combinePolygons(t,e,r){return R._mergePolygons(t,e,r)}static _mergePolygons(t,e,r){if(X.isNullOrEmpty(t?.vertices)||X.isNullOrEmpty(e?.vertices))return null;let s=t.vertices.filter(b=>R.inPolygon(b,e.vertices));if(t.vertices.length==s.length)return{polygons:r==="intersect"?[t]:[e]};let i=e.vertices.filter(b=>R.inPolygon(b,t.vertices));if(e.vertices.length===i.length)return{polygons:r==="intersect"?[e]:[t]};let o=R.boundingBox(t.vertices),a=R.boundingBox(e.vertices),c=R.intersect(o,a);if(r!=="union"&&(!wt.isRect(c)||!(c.width>0)||!(c.height>0)))return null;let{vertices:l}=t,{vertices:h}=e;if(l.length<3||h.length<3)return null;let m=(b,w,T)=>[b,T[(w+1)%T.length]],x=(b,w)=>b.x===w.x?b.y-w.y:b.x-w.x,C=l.map(m),k=h.map(m),A=l.concat(h),E=new Map,M=b=>{if(!E.has(b)){let w=[];E.set(b,w)}return E.get(b)},d=!1;for(let b of C){let w=M(b);for(let T of k){let _=M(T),O=R.intersect(b,T);X.isNull(O)||(d=!0,A.push(O),w.push(O),_.push(O))}}if(s.length===0&&i.length===0&&!d)return r==="union"?{polygons:[t,e]}:null;let p=[];for(let b of C.concat(k)){let w=M(b);if(X.isNullOrEmpty(w))p.push(b);else{let T=b.concat(w).sort(x);for(let _=0;_<T.length-1;_++)p.push([T[_],T[_+1]])}}var u=!1,f;do{A.sort(x),A.filter((T,_,O)=>_===0||!R.areClose(T,O[_-1])),f=R.mesh(A);let{vertices:b,triangleIndices:w}=f;u=!1;for(let T=0;T<w.length;T+=3){let _=w[T],O=w[T+1],F=w[T+2],W=b[_],K=b[O],D=b[F],j=[[W,K],[K,D],[D,W]];for(let Y of p)for(let N of j){let nt=R.areClose(N[0],Y[0])||R.areClose(N[1],Y[1])||R.areClose(N[0],Y[1])||R.areClose(N[1],Y[0])?null:R.intersect(N,Y);!X.isNull(nt)&&A.findIndex(at=>R.areClose(at,nt,4))===-1&&(u=!0,A.push(nt))}}}while(u);let{vertices:g,triangleIndices:y}=f,I=[];for(let b=0;b<y.length;b+=3){let w=b,T=b+1,_=b+2,O=g[y[w]],F=g[y[T]],W=g[y[_]],K={x:(O.x+F.x+W.x)/3,y:(O.y+F.y+W.y)/3},D=R.inPolygon(K,l),j=R.inPolygon(K,h);(D&&j&&r==="intersect"||(D||j)&&r==="union"||(D&&!j||!D&&j)&&r==="difference")&&I.push([O,F,W])}let z=I.flatMap(([b,w,T])=>[[b,w],[w,T],[T,b]]),L=[];for(let b=0;b<z.length;b++){let w=z[b];if(b==0){L.push(w);continue}let T=L.findIndex(_=>R.areClose(_[0],w[0])&&R.areClose(_[1],w[1])||R.areClose(_[0],w[1])&&R.areClose(_[1],w[0]));T===-1?L.push(w):L.splice(T,1)}if(L.length<3)return null;let P=[],G=b=>{let{length:w}=b,T=R.areClose(b[0],b[w-1]),_=b.slice(0,T?w-1:w);return _.length>3&&R.inSegment(_[0],[_[1],_[_.length-1]])&&_.shift(),_},[et,ot]=L.shift(),v=[et,ot];for(;L.length>1;){let b=v[v.length-1],w=L.findIndex(T=>R.areClose(T[0],b)||R.areClose(T[1],b));if(w===-1){P.push({vertices:G(v.splice(0))});let[T,_]=L.shift();v.push(T,_)}else{let[T]=L.splice(w,1),_=R.areClose(T[0],b)?T[1]:R.areClose(T[1],b)?T[0]:null;v.length>1&&R.inSegment(v[v.length-1],[v[v.length-2],_])?v.splice(v.length-1,1,_):v.push(_)}}return P.push({vertices:G(v)}),{polygons:P,mesh:f,triangles:I.map(b=>({vertices:b}))}}static mesh(t,...e){let r=[].concat(t).concat(e),s=pi.triangulate(r);return{vertices:r,triangleIndices:s}}static intersectLines(t,e,r,s){let i,o;if(Array.isArray(t)&&Array.isArray(e)&&t.length===2&&e.length===2&&typeof t[0]=="number"&&typeof e[0]=="number"&&typeof t[1]=="number"&&typeof e[1]=="number"&&(r=e[0],s=e[1],e=t[1],t=t[0]),typeof t=="number"&&typeof e=="number"){let a=t,c=e;i=[{x:0,y:c},{x:1,y:a+c}],o=[{x:0,y:s},{x:1,y:r+s}]}else i=t,o=e;return R._intersectSegments(i,o,!1)}static cramer(t,e){Array.isArray(t)&&(t={a:t[0],b:t[1],c:t[2]}),Array.isArray(e)&&(e={a:e[0],b:e[1],c:e[2]});let r=(t.b*e.c-t.c*e.b)/(t.b*e.a-t.a*e.b),s=(t.c*e.a-t.a*e.c)/(t.b*e.a-t.a*e.b);return{x:-r.roundoff(),y:-s.roundoff()}}static mq(t,e){let r;if(Qt(t)?r=t:(r=t[0],e=t[1]),r.x===e.x)return[Number.NaN,Number.NaN];let s=(e.y-r.y)/(e.x-r.x),i=r.y-s*r.x;return[s,i]}static _intersectSegments(t,e,r){let s=t[0],i=t[1],o=e[0],a=e[1],c=Math.min(s.x,i.x),l=Math.min(s.y,i.y),h=Math.max(s.x,i.x),m=h-c,x=Math.max(s.y,i.y),C=x-l,k=Math.min(o.x,a.x),A=Math.min(o.y,a.y),E=Math.max(o.x,a.x),M=E-k,d=Math.max(o.y,a.y),p=d-A;if(m===0&&M===0||C===0&&p===0)return null;let u=y=>y.x<k||y.x>E||y.x<c||y.x>h,f=y=>y.y<A||y.y>d||y.y<l||y.y>x;var g=null;if(m===0){if(r&&(k>c||E<h))return null;let y=R.mq(o,a);g=R.cramer([1,0,-c],[y[0],-1,y[1]]),r&&f(g)&&(g=null)}else if(M===0){if(r&&(c>k||h<E))return null;let y=R.mq(s,i);g=R.cramer([y[0],-1,y[1]],[1,0,-k]),r&&f(g)&&(g=null)}else if(C===0){if(r&&(A>l||d<x))return null;let y=R.mq(o,a);g=R.cramer([0,1,-l],[y[0],-1,y[1]]),r&&u(g)&&(g=null)}else if(p===0){if(r&&(l>A||x<d))return null;let y=R.mq(s,i);g=R.cramer([y[0],-1,y[1]],[0,1,-A]),r&&u(g)&&(g=null)}else{let y;if(!r||(y=R._intersectRects({x:c,y:l,width:m,height:C},{x:k,y:A,width:M,height:p}))&&y.width>0&&y.height>0){let I=R.mq(s,i),z=R.mq(o,a),L=I[0],P=z[0],G=I[1],et=z[1];if(L!==P){g=R.cramer([L,-1,G],[P,-1,et]);let ot=g.x,v=g.y;r&&(ot<y.x||ot>y.x+y.width||v<y.y||v>y.y+y.height)&&(g=null)}}}return g===null?null:{x:g.x,y:g.y}}static _intersectRects(...t){return wt.intersect(...t)}static _areClose(t,e,r=vt){return Math.abs(t.x-e.x).isCloseTo(0,r)&&Math.abs(t.y-e.y).isCloseTo(0,r)}static areClose(t,e,r=vt){return R._areClose(t,e,r)}static dot(t,e){return xt.dot(t,e)}static cross(t,e){return xt.cross(t,e)}static distance(t,e){if(gi(t))return U.distance(t[0],t[1]);if(Qt(e))return U.distance(t,e);{let r=e[0],s=e[1];return Math.abs(r*t.x-t.y+s)/Math.sqrt(Math.pow(r,2)+1)}}static _pointSegmentDistance(t,e){let r=xt.from(e[0],e[1]),s=xt.from(e[0],t);return R.cross(r,s)}static isWithin(t,e,r,s=vt){let i=R._pointSegmentDistance(t,e);return i.isCloseTo(0,s)?!1:r?i<0:i>0}static isBeyond(t,e,r,s=vt){return R.isWithin(t,e,!r,s)}static inLine(t,e,r=vt){return R._pointSegmentDistance(t,e).isCloseTo(0,r)}static inSegment(t,e,r=vt){let s=Math.min(e[0].x,e[1].x),i=Math.max(e[0].x,e[1].x),o=Math.min(e[0].y,e[1].y),a=Math.max(e[0].y,e[1].y);return t.x>=s&&t.x<=i&&t.y>=o&&t.y<=a&&R.inLine(t,e,r)}static inTriangle(t,e){let r;for(let s=0;s<3;s++){let i=e[s],o=e[(s+1)%3],a=U.subtract(o,t),c=U.subtract(i,t),l=R.cross(a,c);if(s>0&&l*r<=0)return!1;r=l}return!0}static inPolygon(t,e,r=vt){if(!(e?.length>=3))throw"Not enough vertices";let s=e.length;if(s===3)return R.inTriangle(t,[e[0],e[1],e[2]]);r>0&&(e=e.map(x=>({x:x.x.roundoff(r),y:x.y.roundoff(r)})),t={x:t.x.roundoff(r),y:t.y.roundoff(r)});let i=Number.MAX_VALUE,o=Number.MAX_VALUE,a=Number.MIN_VALUE,c=Number.MIN_VALUE;for(let x=0;x<s;x++){let C=e[x];i=Math.min(i,C.x),o=Math.min(o,C.y),a=Math.max(a,C.x),c=Math.max(c,C.y)}if(t.x<i||t.x>a||t.y<o||t.y>c)return!1;let l={x:i-1,y:t.y},h=[l,t],m=0;for(let x=0;x<s;x++){let C=e[x],k=e[(x+1)%s],A=[C,k];if(C.y===t.y){let E=e[(x-1+s)%s];t.x>C.x&&(E.y-t.y)*(k.y-t.y)<0&&m++}else{if(k.y===t.y)continue;R.intersect(A,h)!=null&&m++}}return m%2===1}static area(t,...e){let r=[].concat(t).concat(e),s=0,i=r.length;if(i>=3){for(let o=0;o<r.length;o++){let{x:a,y:c}=r[o],l=o===i-1?0:o+1,{x:h,y:m}=r[l];s+=a*m-c*h}s*=.5}return Math.abs(s.roundoff())}static convexHull(t,...e){let r=[].concat(t).concat(e);if(!(r?.length>1))return r?.slice()??[];let s=r.map(l=>({x:l.x,y:l.y})).sort((l,h)=>l.x===h.x?l.y-h.y:l.x-h.x),i=[];for(let l of s){let h=i[i.length-1];(!h||h.x!==l.x||h.y!==l.y)&&i.push(l)}if(i.length<=2)return i;let o=(l,h,m)=>(h.x-l.x)*(m.y-l.y)-(h.y-l.y)*(m.x-l.x),a=[];for(let l of i){for(;a.length>=2&&o(a[a.length-2],a[a.length-1],l)<=0;)a.pop();a.push(l)}let c=[];for(let l=i.length-1;l>=0;l--){let h=i[l];for(;c.length>=2&&o(c[c.length-2],c[c.length-1],h)<=0;)c.pop();c.push(h)}return a.pop(),c.pop(),a.concat(c)}};function mi(n){let t;return"vertices"in n&&Array.isArray(n.vertices)&&(t=n.vertices).length>=3&&t.every(e=>U.isPoint(e))}var yi=class me{static{this._eps=1e-12}static isPolygon(t){return mi(t)}static from(...t){return{vertices:Array.from(t)}}static contains(t,e){return St.inPolygon(e,t.vertices,12)}static centroid(t){let e=me.boundingBox(t);return{x:e.x+e.width/2,y:e.y+e.height/2}}static boundingBox(t){return St.boundingBox(t.vertices)}static sides(t){let{vertices:e}=t,r=[];for(let s=1;s<=e.length;s++){let i=e[s%e.length],o=e[s-1];r.push([o,i])}return r}static isConvex(t){let{vertices:e}=t,r=e.length;if(r<=3)return!0;let s=0;for(let i=0;i<e.length;i++){let o=e[(i-1+r)%r],a=e[i],c=e[(i+1)%r],l=At.angleBetween(a,o,c);if(s===0){s=Math.sign(l);continue}if(s!=Math.sign(l))return!1}return!0}static isSelfIntersecting(t){let{vertices:e}=t;if(e.length<=3)return!1;let r=me.sides(t);for(let s of r)for(let i of r){if(i===s||i[0]===s[1]||s[0]===i[1])continue;let o=St.intersect(i,s);if(!X.isNull(o))return!0}return!1}static isCounterClockwise(t){let{vertices:[e,r,s]}=t;return At.angleBetween(r,e,s)>0}static expand(t,e){let{vertices:r}=t,s=r.length,i=[];for(let o=0;o<r.length;o++){let a=r[(o-1+s)%s],c=r[o],l=r[(o+1)%s],h=At.angleBetween(c,a,l),m=-e/Math.sin(Math.abs(h)/2),x=ft.scale(ft.identity,m),C=U.subtract(c,a);xt.normalize(C);let k=U.subtract(c,l);xt.normalize(k);let A=U.add(C,k);xt.normalize(A);let E=ft.multiply(A,x);i.push(U.add(c,{x:E.x.roundoff(),y:E.y.roundoff()}))}return{vertices:i}}static area(t){return St.area(t.vertices)}static intersect(t,e){return St.intersect(t,e)}static convexHull(t){return{vertices:St.convexHull(t.vertices)}}},Jt=180/Math.PI,Bt=1/Jt,H=class dt{static from(...t){if(t.length!==3)throw new RangeError("Must provide exactly 3 numbers");return{x:t[0],y:t[1],z:t[2]}}static parse(t){let e=yt(t);if(e&&e.length===3)return dt.from.apply(null,e);throw new Error(`Cannot parse "${t}" as a valid Vector3D.`)}static i(){return{x:1,y:0,z:0}}static j(){return{x:0,y:1,z:0}}static k(){return{x:0,y:0,z:1}}static zero(){return{x:0,y:0,z:0}}static subtract(t,e){return{x:e.x-t.x,y:e.y-t.y,z:e.z-t.z}}static add(...t){var e={x:0,y:0,z:0};for(var r of t)e.x+=r.x,e.y+=r.y,e.z+=r.z;return e}static dot(t,e){return t.x*e.x+t.y*e.y+t.z*e.z}static cross(t,e){return{x:t.y*e.z-t.z*e.y,y:t.z*e.x-t.x*e.z,z:t.x*e.y-t.y*e.x}}static scale(t,e,r=e,s=e){return{x:t.x*e,y:t.y*r,z:t.z*s}}static magSqr(t){return t.x*t.x+t.y*t.y+t.z*t.z}static areClose(t,e){return(e.x-t.x).isCloseTo(0)&&(e.y-t.y).isCloseTo(0)&&(e.z-t.z).isCloseTo(0)}static mag(t){return Math.sqrt(dt.magSqr(t))}static negate(t){return{x:-t.x,y:-t.y,z:-t.z}}static unit(t){let e={x:t.x,y:t.y,z:t.z};return this.normalize(e),e}static normalize(t){let e=dt.mag(t);if(e<=0)throw"Cannot normalize a vector of length 0.";let r=1/e;t.x*=r,t.y*=r,t.z*=r}static angleBetween(t,e){let r,s=dt.unit(t),i=dt.unit(e);if(dt.dot(s,i)<0){let a={x:-s.x-i.x,y:-s.y-i.y,z:-s.z-i.z},c=dt.mag(a);r=Math.PI-2*Math.asin(c/2)}else{let a={x:s.x-i.x,y:s.y-i.y,z:s.z-i.z},c=dt.mag(a);r=2*Math.asin(c/2)}return Jt*r}},xi=class ye{static from(t,e,r){return{rho:t.clamp(0,1/0),theta:e.clamp(-180,180),phi:r.clamp(0,360)}}static fromVector(t,e,r){typeof t=="number"&&(t=H.from(t,e,r));let s=H.mag(t);if(s.isCloseTo(0))return ye.from(0,0,0);let i=Math.atan2(t.x,t.z),o=Math.acos((t.y/s).clamp(-1,1));return ye.from(s,i*Jt,o*Jt)}static toVector(t){let{rho:e,theta:r,phi:s}=t,i=s*Bt,o=r*Bt,a=Math.sin(i)*e;return{x:a*Math.sin(o),y:Math.cos(i)*e,z:a*Math.cos(o)}}static toRotationMatrix(t){let{theta:e,phi:r}=t,s=Bt*e,i=Math.sin(s),o=Math.cos(s),a=Bt*r,c=Math.sin(a),l=Math.cos(a);return Et.from(i*l,i*c,o,0,o*l,o*c,-i,0,-c,l,0,0,0,0,0,1)}},Lt=class An{static modify(t,e){let{m11:r,m12:s,m13:i,m14:o,m21:a,m22:c,m23:l,m24:h,m31:m,m32:x,m33:C,m34:k,offsetX:A,offsetY:E,offsetZ:M,m44:d}=t,p={m11:r,m12:s,m13:i,m14:o,m21:a,m22:c,m23:l,m24:h,m31:m,m32:x,m33:C,m34:k,offsetX:A,offsetY:E,offsetZ:M,m44:d};return e(p),p}static clone(t){return An.modify(t,e=>{})}static multiply(t,e){return Et.isIdentity(t)?e:Et.isIdentity(e)?t:Et.from(t.m11*e.m11+t.m12*e.m21+t.m13*e.m31+t.m14*e.offsetX,t.m11*e.m12+t.m12*e.m22+t.m13*e.m32+t.m14*e.offsetY,t.m11*e.m13+t.m12*e.m23+t.m13*e.m33+t.m14*e.offsetZ,t.m11*e.m14+t.m12*e.m24+t.m13*e.m34+t.m14*e.m44,t.m21*e.m11+t.m22*e.m21+t.m23*e.m31+t.m24*e.offsetX,t.m21*e.m12+t.m22*e.m22+t.m23*e.m32+t.m24*e.offsetY,t.m21*e.m13+t.m22*e.m23+t.m23*e.m33+t.m24*e.offsetZ,t.m21*e.m14+t.m22*e.m24+t.m23*e.m34+t.m24*e.m44,t.m31*e.m11+t.m32*e.m21+t.m33*e.m31+t.m34*e.offsetX,t.m31*e.m12+t.m32*e.m22+t.m33*e.m32+t.m34*e.offsetY,t.m31*e.m13+t.m32*e.m23+t.m33*e.m33+t.m34*e.offsetZ,t.m31*e.m14+t.m32*e.m24+t.m33*e.m34+t.m34*e.m44,t.offsetX*e.m11+t.offsetY*e.m21+t.offsetZ*e.m31+t.m44*e.offsetX,t.offsetX*e.m12+t.offsetY*e.m22+t.offsetZ*e.m32+t.m44*e.offsetY,t.offsetX*e.m13+t.offsetY*e.m23+t.offsetZ*e.m33+t.m44*e.offsetZ,t.offsetX*e.m14+t.offsetY*e.m24+t.offsetZ*e.m34+t.m44*e.m44)}},Et=class st{static identity(){return{m11:1,m12:0,m13:0,m14:0,m21:0,m22:1,m23:0,m24:0,m31:0,m32:0,m33:1,m34:0,offsetX:0,offsetY:0,offsetZ:0,m44:1}}static from(...t){if(t.length!==16)throw new RangeError("Must provide exactly 16 numbers");return{m11:t[0],m12:t[1],m13:t[2],m14:t[3],m21:t[4],m22:t[5],m23:t[6],m24:t[7],m31:t[8],m32:t[9],m33:t[10],m34:t[11],offsetX:t[12],offsetY:t[13],offsetZ:t[14],m44:t[15]}}static transpose(t){return st.from(t.m11,t.m21,t.m31,t.offsetX,t.m12,t.m22,t.m32,t.offsetY,t.m13,t.m23,t.m33,t.offsetZ,t.m14,t.m24,t.m34,t.m44)}static toArray(t){return[t.m11,t.m12,t.m13,t.m14,t.m21,t.m22,t.m23,t.m24,t.m31,t.m32,t.m33,t.m34,t.offsetX,t.offsetY,t.offsetZ,t.m44]}static clone(t,e){return typeof e=="function"?Lt.modify(t,e):Lt.clone(t)}static scale(t,e,r,s){return typeof e=="number"?(r??=e,s??=e):(s=e.z,r=e.y,e=e.x),Lt.modify(t,i=>{i.m11*=e,i.m22*=r,i.m33*=s})}static translate(t,e){return Lt.modify(t,r=>{r.offsetX+=e.x,r.offsetY+=e.y,r.offsetZ+=e.z})}static parse(t){let e=yt(t);if(e&&e.length===16)return st.from.apply(null,e);throw new Error(`Cannot parse "${t}" as a valid Matrix3D.`)}static isIdentity(t){return t.m11==1&&t.m12==0&&t.m13==0&&t.m14==0&&t.m21==0&&t.m22==1&&t.m23==0&&t.m24==0&&t.m31==0&&t.m32==0&&t.m33==1&&t.m34==0&&t.offsetX==0&&t.offsetY==0&&t.offsetZ==0&&t.m44==1}static isAffine(t){return t.m14==0&&t.m24==0&&t.m34==0&&t.m44==1}static determinant(t){if(st.isIdentity(t))return 1;if(st.isAffine(t))return t.m11*(t.m22*t.m33-t.m32*t.m23)-t.m12*(t.m21*t.m33-t.m31*t.m23)+t.m13*(t.m21*t.m32-t.m31*t.m22);{let e=t.m13*t.m24-t.m23*t.m14,r=t.m13*t.m34-t.m33*t.m14,s=t.m13*t.m44-t.offsetZ*t.m14,i=t.m23*t.m34-t.m33*t.m24,o=t.m23*t.m44-t.offsetZ*t.m24,a=t.m33*t.m44-t.offsetZ*t.m34,c=t.m22*r-t.m32*e-t.m12*i,l=t.m12*o-t.m22*s+t.offsetY*e,h=t.m32*s-t.offsetY*r-t.m12*a,m=t.m22*a-t.m32*o+t.offsetY*i;return t.offsetX*c+t.m31*l+t.m21*h+t.m11*m}}static multiply(...t){if(t.length===0)throw new ReferenceError("Matrix not provided.");let e=Array.from(t),r=e[0];for(let s=1;s<e.length;s++)r=Lt.multiply(r,e[s]);return r}static invert(t){if(st.isAffine(t)){let e=st.determinant(t);if(e==0)return null;let r=t.m12*t.m23-t.m22*t.m13,s=t.m32*t.m13-t.m12*t.m33,i=t.m22*t.m33-t.m32*t.m23,o=t.m21*t.m13-t.m11*t.m23,a=t.m11*t.m33-t.m31*t.m13,c=t.m31*t.m23-t.m21*t.m33,l=t.m11*t.m22-t.m21*t.m12,h=t.m11*t.m32-t.m31*t.m12,m=t.m11*t.offsetY-t.offsetX*t.m12,x=t.m21*t.m32-t.m31*t.m22,C=t.m21*t.offsetY-t.offsetX*t.m22,k=t.m31*t.offsetY-t.offsetX*t.m32,A=t.m23*m-t.offsetZ*l-t.m13*C,E=t.m13*k-t.m33*m+t.offsetZ*h,M=t.m33*C-t.offsetZ*x-t.m23*k,d=l,p=-h,u=x,f=1/e;return st.from(i*f,s*f,r*f,0,c*f,a*f,o*f,0,u*f,p*f,d*f,0,M*f,E*f,A*f,1)}else{let e=st.determinant(t);if(e==0)return null;let r=t.m33*t.m44-t.m34*t.offsetZ,s=t.m32*t.m44-t.m34*t.offsetY,i=t.m31*t.m44-t.m34*t.offsetX,o=t.m32*t.offsetZ-t.m33*t.offsetY,a=t.m31*t.offsetZ-t.m33*t.offsetX,c=t.m31*t.offsetY-t.m32*t.offsetX,l=t.m33*t.m44-t.m34*t.offsetZ,h=t.m32*t.m44-t.m34*t.offsetY,m=t.m31*t.m44-t.m34*t.offsetX,x=t.m32*t.offsetZ-t.m33*t.offsetY,C=t.m31*t.offsetZ-t.m33*t.offsetX,k=t.m31*t.offsetY-t.m32*t.offsetX,A=t.m23*t.m44-t.m24*t.offsetZ,E=t.m22*t.m44-t.m24*t.offsetY,M=t.m21*t.m44-t.m24*t.offsetX,d=t.m22*t.offsetZ-t.m23*t.offsetY,p=t.m21*t.offsetZ-t.m23*t.offsetX,u=t.m21*t.offsetY-t.m22*t.offsetX,f=t.m23*t.m34-t.m24*t.m33,g=t.m22*t.m34-t.m24*t.m32,y=t.m21*t.m34-t.m24*t.m31,I=t.m22*t.m33-t.m23*t.m32,z=t.m21*t.m33-t.m23*t.m31,L=t.m21*t.m32-t.m22*t.m31,P=t.m22*r-t.m23*s+t.m24*o,G=-(t.m21*r-t.m23*i+t.m24*a),et=t.m21*s-t.m22*i+t.m24*c,ot=-(t.m21*o-t.m22*a+t.m23*c),v=-(t.m12*l-t.m13*h+t.m14*x),b=t.m11*l-t.m13*m+t.m14*C,w=-(t.m11*h-t.m12*m+t.m14*k),T=t.m11*x-t.m12*C+t.m13*k,_=t.m12*A-t.m13*E+t.m14*d,O=-(t.m11*A-t.m13*M+t.m14*p),F=t.m11*E-t.m12*M+t.m14*u,W=-(t.m11*d-t.m12*p+t.m13*u),K=-(t.m12*f-t.m13*g+t.m14*I),D=t.m11*f-t.m13*y+t.m14*z,j=-(t.m11*g-t.m12*y+t.m14*L),Y=t.m11*I-t.m12*z+t.m13*L,N=1/e;return st.from(P*N,v*N,_*N,K*N,G*N,b*N,O*N,D*N,et*N,w*N,F*N,j*N,ot*N,T*N,W*N,Y*N)}}static transform(t,e){var r={x:t.x,y:t.y,z:t.z};if(!st.isIdentity(e)){var s=r.x,i=r.y,o=r.z;if(r.x=s*e.m11+i*e.m21+o*e.m31+e.offsetX,r.y=s*e.m12+i*e.m22+o*e.m32+e.offsetY,r.z=s*e.m13+i*e.m23+o*e.m33+e.offsetZ,!st.isAffine(e)){var a=s*e.m14+i*e.m24+o*e.m34+e.m44;a!=0&&(r.x/=a,r.y/=a,r.z/=a)}}return r}},bi=class Z{static identity(){return Z.from(0,0,0,1)}static from(...t){if(t.length!==4)throw new RangeError("Must provide exactly 4 numbers");return{x:t[0],y:t[1],z:t[2],w:t[3]}}static parse(t){let e=yt(t);if(e&&e.length===4)return Z.from.apply(null,e);throw new Error(`Cannot parse "${t}" as a valid Quaternion.`)}static fromVectors(t,e){H.normalize(t),H.normalize(e);let r=(i,o,a,c)=>{let l=Z.from(i,o,a,c);return Z.normalize(l),l},s=H.dot(t,e)+1;return s.isCloseTo(0)?Math.abs(t.x)>Math.abs(t.z)?r(-t.y,t.x,0,0):r(0,-t.z,t.y,0):r(t.y*e.z-t.z*e.y,t.z*e.x-t.x*e.z,t.x*e.y-t.y*e.x,s)}static normalize(t){let e=Z.mag(t);if(e.isCloseTo(0))t.x=t.y=t.z=0,t.w=1;else{let r=1/e;t.x*=r,t.y*=r,t.z*=r,t.w*=r}}static unit(t){let e=Z.from(t.x,t.y,t.z,t.w);return Z.normalize(e),e}static fromAxisAngle(t,e){e%=360;var r=Bt*e,s=H.mag(t);if(s==0)throw new RangeError("Invalid argument");var i=Math.sin(.5*r)/s,o=t.x*i,a=t.y*i,c=t.z*i;return Z.from(o,a,c,Math.cos(.5*r))}static fromRotationMatrix(t){let e=t.m11+t.m22+t.m33+t.m44;if(e>0){let r=.5/Math.sqrt(e),s=.25/r,i=(t.m23-t.m32)*r,o=(t.m31-t.m13)*r,a=(t.m12-t.m21)*r;return Z.from(i,o,a,s)}else if(t.m11>t.m22&&t.m11>t.m22){let r=.5/Math.sqrt(t.m44+t.m11-t.m22-t.m33),s=(t.m23-t.m32)*r,i=.25/r,o=(t.m12+t.m21)*r,a=(t.m31+t.m13)*r;return Z.from(i,o,a,s)}else if(t.m22>t.m33){let r=.5/Math.sqrt(t.m44+t.m22-t.m11-t.m33),s=(t.m23+t.m32)*r,i=.25/r,o=(t.m12+t.m21)*r,a=(t.m31-t.m13)*r;return Z.from(o,i,s,a)}else{let r=.5/Math.sqrt(t.m44+t.m33-t.m11-t.m22),s=(t.m23+t.m32)*r,i=.25/r,o=(t.m12-t.m21)*r,a=(t.m31-t.m13)*r;return Z.from(a,s,i,o)}}static conjugate(t){return Z.from(-t.x,-t.y,-t.z,t.w)}static mag(t){return Math.sqrt(t.x*t.x+t.y*t.y+t.z*t.z+t.w*t.w)}static norm(t){return t.x*t.x+t.y*t.y+t.z*t.z}static axis(t){return t.x==0&&t.y==0&&t.z==0?H.j():H.unit(t)}static transform(t,e){Z.normalize(e);let r=H.cross(e,t),s=H.scale(r,2),i=H.cross(e,s);return{x:t.x+e.w*s.x+i.x,y:t.y+e.w*s.y+i.y,z:t.z+e.w*s.z+i.z}}static angle(t){let e=Math.sqrt(t.x*t.x+t.y*t.y+t.z*t.z),r=t.w;if(e>Number.MAX_VALUE){let s=Math.max(Math.abs(t.x),Math.max(Math.abs(t.y),Math.abs(t.z))),i=t.x/s,o=t.y/s,a=t.z/s;e=Math.sqrt(i*i+o*o+a*a),r/=s}return Math.atan2(e,r)*114.59155902616465}static toRotationMatrix(t){var e=Et.identity(),r=t.x,s=t.y,i=t.z,o=t.w;return e.m11=1-2*s*s-2*i*i,e.m12=2*r*s+2*o*i,e.m13=2*r*i-2*o*s,e.m21=2*r*s-2*o*i,e.m22=1-2*r*r-2*i*i,e.m23=2*s*i+2*o*r,e.m31=2*o*s+2*r*i,e.m32=2*s*i-2*o*r,e.m33=1-2*r*r-2*s*s,e}static invert(t){let e=Z.unit(t);return Z.conjugate(e)}static multiply(t,e){return Z.from(t.w*e.x+t.x+e.w+t.y*e.z-t.z*e.y,t.w*e.y-t.x*e.z+t.y*e.w+t.z*e.x,t.w*e.z+t.x*e.y-t.y*e.x+t.z*e.w,t.w*e.w-t.x*e.x-t.y*e.y-t.z*e.z)}static dot(t,e){var r=Z.multiply(t,Z.conjugate(e));return r.w}},wi=class{static intersect(n,t){let[e,r]=n,s=H.subtract(e,r),[i,o,a]=t,c=H.subtract(i,o),l=H.subtract(i,a),h=H.cross(s,l),m=H.dot(c,h);if(m.isCloseTo(0))return null;let x=1/m,C=H.subtract(e,i),k=x*H.dot(C,h);if(k<0||k>1)return null;let A=H.cross(C,c),E=x*H.dot(s,A);if(E<0||k+E>1)return null;let M=x*H.dot(l,A);return M<0||M.isCloseTo(0)?null:H.add(e,H.scale(s,M))}},En={};Pt(En,{Matrix3D:()=>Et,Quaternion:()=>bi,Spherical:()=>xi,Vector:()=>xt,Vector3D:()=>H});var we={};Pt(we,{Complex:()=>it,DataAnalysis:()=>Mn,NumberTheory:()=>Pn});function ut(n){return typeof n=="number"&&(n={real:n,img:0}),n}var kn;function Ct(n,t){let e={};return Object.defineProperty(e,"real",{value:n,writable:!1}),Object.defineProperty(e,"img",{value:t,writable:!1}),e}function pe(){return kn||(kn=Ct(Number.NaN,Number.NaN))}var it=class{static build(n,t){return this.isComplex(n)?n:(t??=0,typeof n!="number"||typeof t!="number"?pe():Ct(n,t||0))}static add(n,t){let e=ut(n),r=ut(t);return Ct(e.real+r.real,e.img+r.img)}static subtract(n,t){let e=ut(n),r=ut(t);return Ct(e.real-r.real,e.img-r.img)}static multiply(n,t){let e=ut(n),r=ut(t);return Ct(e.real*r.real-e.img*r.img,e.real*r.img+e.img*r.real)}static divide(n,t){let e=ut(n),r=ut(t),s=this.absSquare(r).roundoff();if(s===0)return pe();let i=1/s;return Ct(i*(e.real*r.real+e.img*r.img),i*(e.img*r.real-e.real*r.img))}static absSquare(n){let t=ut(n);return Math.pow(t.real,2)+Math.pow(t.img,2)}static modulus(n){return Math.sqrt(this.absSquare(n))}static isComplex(n){return n!=null&&typeof n=="object"&&"real"in n&&"img"in n&&typeof n.real=="number"&&typeof n.img=="number"}static conjugate(n){return n=ut(n),Ct(n.real,Math.abs(n.img)==0?0:-n.img)}static equals(n,t){let e=this.build(n),r=this.build(t);return!this.isComplex(n)||!this.isComplex(t)?!1:e.real===r.real&&e.img===r.img}static get NaC(){return pe()}},Mn={};Pt(Mn,{Fourier:()=>Ci,Gaussian:()=>ve,Lagrange:()=>In,Lagrangian:()=>_i,Newton:()=>Ei,Pchip:()=>Ai,SearchFunctions:()=>Oi,Utils:()=>Li});function vi(n,t){let e=2*Math.PI*n/t;return it.build(Math.cos(e),Math.sin(e))}var Tn={};function $n(n,t){let e=Tn[t]=Tn[t]||{};return e[n]=e[n]||vi(n,t)}function Si(n){return n>0&&(n&n-1)===0}function xe(n){let t=[],e=n.length;if(e===1)return[it.build(n[0])];let r=xe(n.filter((o,a)=>a%2===0)),s=xe(n.filter((o,a)=>a%2===1));for(var i=0;i<e/2;i++){let o=r[i],a=it.multiply($n(i,e),s[i]);t[i]=it.add(o,a),t[i+e/2]=it.subtract(o,a)}return t}var Ci=class{static transform(n,t=!0){return n=n||[],Si(n.length)?this.fft(n,t):this.dft(n,t)}static invert(n,t=!0){return this.idft(n||[],t)}static dft(n,t=!0){let e=(n||[])?.length,r=t?1/Math.sqrt(e):1,s=[];for(let i=0;i<e;i++){s.push({real:0,img:0});for(let o=0;o<e;o++){let a=$n(i*o,e),c=it.multiply(n[o],a),l=it.multiply(c,r);s[i]=it.add(s[i],l)}}return s}static idft(n,t=!0){let e=n.map(s=>it.build(s.img,s.real));return this.transform(e,t).map(s=>it.build(s.img,s.real))}static fft(n,t=!0){let e=xe(n);if(!t)return e;let r=1/Math.sqrt(n.length);return e.map(s=>it.multiply(s,r))}},ki=Math.sqrt(Math.PI);function Ti(n){let t=Math.abs(n),e=1/(1+.5*t),r=e*Math.exp(-t*t-1.26551223+e*(1.00002368+e*(.37409196+e*(.09678418+e*(-.18628806+e*(.27886807+e*(-1.13520398+e*(1.48851587+e*(-.82215223+e*.17087277)))))))));return n>=0?r:2-r}var ve=class{constructor(n,t){this.mean=n,this.stdev=Math.abs(t),this.variance=Math.pow(t,2)}static get normal(){return Ri}weight(n){return Math.exp(-.5*Math.pow(this._z(n),2))}probabilityDensity(n){let t=this.stdev*Math.SQRT2*ki;return this.weight(n)/t}_z(n){return(n-this.mean)/this.stdev}probability(n){return .5*Ti(-this._z(n)/Math.SQRT2)}},Ri=new ve(0,1),In=class Nn{constructor(t){this.#e=t}#e;#t=null;_prepareBarycentric(){if(this.#t)return;let t=this.#e||[],e=t.length;if(e===0){this.#t=[];return}let r=new Array(e),s=new Array(e);for(let a=0;a<e;a++){let c=0,l=1,h=t[a].x;for(let m=0;m<e;m++){if(m===a)continue;let x=h-t[m].x;if(x===0)throw new Error("Invalid function provided.");x<0&&(l=-l),c+=Math.log(Math.abs(x))}r[a]=-c,s[a]=l}let i=r[0];for(let a=1;a<e;a++)r[a]>i&&(i=r[a]);let o=new Array(e);for(let a=0;a<e;a++){let c=Math.exp(r[a]-i);o[a]=s[a]*c}this.#t=o}_computeBarycentric(t){let e=this.#e||[];this.#t||this._prepareBarycentric();let r=this.#t||[],s=0,i=0;for(let o=0;o<e.length;o++){let a=e[o].x;if(t===a)return e[o].y;let c=r[o]/(t-a);s+=c*e[o].y,i+=c}return s/i}interpolate(t){return this._computeBarycentric(t)}static create(...t){var e=[];arguments.length>0&&Array.isArray(arguments[0])?e=arguments[0]:e=Array.from(t);let r=e.map((s,i)=>typeof s=="number"?{x:i,y:s}:s);return new Nn(r)}},_i={create:In.create},Ai=class Ln{constructor(t){if(!t||t.length<2)throw new Error("Need at least 2 points");let e=t.slice().sort((r,s)=>r.x-s.x);this.xs=e.map(r=>r.x),this.ys=e.map(r=>r.y),this.ms=this.computeDerivatives()}computeDerivatives(){let t=this.xs.length,e=new Array(t-1),r=new Array(t-1);for(let i=0;i<t-1;i++)e[i]=this.xs[i+1]-this.xs[i],r[i]=(this.ys[i+1]-this.ys[i])/e[i];let s=new Array(t).fill(0);s[0]=r[0],s[t-1]=r[t-2];for(let i=1;i<t-1;i++){let o=r[i-1],a=r[i];if(o===0||a===0||o*a<=0)s[i]=0;else{let c=2*e[i]+e[i-1],l=e[i]+2*e[i-1];s[i]=(c+l)/(c/o+l/a)}}for(let i=0;i<t-1;i++)if(r[i]===0)s[i]=0,s[i+1]=0;else{let o=s[i]/r[i],a=s[i+1]/r[i],c=o*o+a*a;if(c>9){let l=3/Math.sqrt(c);s[i]=l*o*r[i],s[i+1]=l*a*r[i]}}return s}interpolate(t){let e=this.xs,r=this.ys,s=this.ms,i=e.length;if(t<=e[0]){let E=s[0];return r[0]+E*(t-e[0])}if(t>=e[i-1]){let E=s[i-1];return r[i-1]+E*(t-e[i-1])}let o=0,a=i-1;for(;a-o>1;){let E=o+a>>1;e[E]<=t?o=E:a=E}let c=e[o+1]-e[o],l=(t-e[o])/c,h=l*l,m=h*l,x=2*m-3*h+1,C=m-2*h+l,k=-2*m+3*h,A=m-h;return x*r[o]+C*(s[o]*c)+k*r[o+1]+A*(s[o+1]*c)}static create(...t){var e=[];arguments.length>0&&Array.isArray(arguments[0])?e=arguments[0]:e=Array.from(t);let r=e.map((s,i)=>typeof s=="number"?{x:i,y:s}:s);return new Ln(r)}},Ei=class Bn{constructor(t){if(!t||t.length===0)throw new Error("Need at least 1 point");let e=t.slice().sort((i,o)=>i.x-o.x);this.xs=e.map(i=>i.x);let r=e.length,s=e.map(i=>i.y);for(let i=1;i<r;i++)for(let o=r-1;o>=i;o--){let a=this.xs[o]-this.xs[o-i];if(a===0)throw new Error("Invalid function provided.");s[o]=(s[o]-s[o-1])/a}this.coeffs=s}interpolate(t){let e=this.xs,r=this.coeffs,s=r.length;if(s===0)return NaN;let i=r[s-1];for(let o=s-2;o>=0;o--)i=i*(t-e[o])+r[o];return i}static create(...t){var e=[];arguments.length>0&&Array.isArray(arguments[0])?e=arguments[0]:e=Array.from(t);let r=e.map((s,i)=>typeof s=="number"?{x:i,y:s}:s);return new Bn(r)}},ht=(n,t)=>n;function Mi(n,t=ht){let e=Object.groupBy(n,t),r,s=0;for(let i in e){let o=e[i].length;o>s&&(r=parseInt(i),s=o)}return r}function $i(n,t=ht){let e=n.slice(0),r=e.length;e.sort((i,o)=>{let a=t(i),c=t(o);return a-c});let s=Math.ceil(e.length/2)-1;return r%2==1?e[s]:.5*(e[s+1]+e[s])}function zn(n,t=ht){return n.reduce((e,r,s)=>e+t(r,s),0)}function qt(n,t=ht){return zn(n,t)/n.length}function be(n,t=ht,e=!1){let r=qt(n,t);return n.reduce((s,i)=>Math.pow(i-r,2)+s,0)/(n.length-(e?1:0))}function Rn(n,t=ht,e=!1){let r=be(n,t,e);return Math.sqrt(r)}function Ii(n,t,e=ht,r=ht){let s=Array.isArray(t);if(s&&t.length!==n.length)throw new Error("Sets must be of the same length.");let i=n.length,o=n,a=s?t:n,c=s?e:t,l=s?r:e,h=qt(o,c),m=qt(a,l),x=0,C=0,k=0;for(let A=0;A<i;A++){let E=o[A],M=a[A],d=c(E,A)-h,p=l(M,A)-m;x+=d*p,C+=d*d,k+=p*p}return x/Math.sqrt(C*k)}function Ni(n,t,e=ht,r=ht){let s=Array.isArray(t);if(s&&t.length!==n.length)throw new Error("Sets must be of the same length.");let i=n,o=s?t:n,a=s?e:t,c=s?r:a,l=a??(p=>p.x),h=c??(p=>p.y),m=n.length,x=0,C=0,k=0,A=0,E=0;for(let p=0;p<m;p++){let u=i[p],f=o[p],g=l(u,p),y=h(f,p);x+=g*y,C+=g,k+=y,A+=g*g,E+=y*y}let M=(m*x-C*k)/(m*A-Math.pow(C,2)),d=(k-M*C)/m;return[M,d]}var Li=class{static sum(n,t){return zn(n,t)}static mean(n,t){return qt(n,t)}static median(n,t){return $i(n,t)}static mode(n,t){return Mi(n,t)}static var(n,t){return be(n,t,!0)}static varp(n,t){return be(n,t,!1)}static stdevp(n,t){return Rn(n,t,!1)}static stdev(n,t){return Rn(n,t,!0)}static correlation(n,t,e,r){return Ii(n,t,e,r)}static linearRegression(n,t,e,r){return Ni(n,t,e,r)}static gaussian(n,t){return new ve(n,t)}};function Se(n,t){return(r,s,i,o)=>{let a=r,c=s,l=n(a,c),h=t(a,c),m=i(l),x=i(h);for(;c-a>o;)m<x?(c=h,h=l,x=m,l=n(a,c),m=i(l)):(a=l,l=h,m=x,h=t(a,c),x=i(h));return .5*(l+h)}}var Ce=.001,Bi=(n,t,e,r=Ce)=>Se((c,l)=>l-(l-c)/1.618,(c,l)=>c+(l-c)/1.618)(n,t,e,r);function zi(n){if(n<=1)throw new RangeError("segments must be a number grater than 1.");return(t,e,r,s=Ce)=>Se((c,l)=>c+(l-c)/n,(c,l)=>l-(l-c)/n)(t,e,r,s)}var Pi=(n,t,e,r=Ce)=>{var s=null,i=null;let o=(h,m)=>(i??=m-h,s??=i/Math.sqrt(12),s*(m-h)/i);return Se((h,m)=>Math.max(h,(m+h)/2-o(h,m)),(h,m)=>Math.min(m,(m+h)/2+o(h,m)))(n,t,e,r)},Oi={linear:(n=2)=>zi(n),goldenRatio:Bi,gaussian:Pi},Pn={};Pt(Pn,{Utils:()=>Fi});var Vt="0123456789abcdefghijklmnopqrstuvwxyz",de=`Radix out of range: possible values go between positive 1 exclusive and ${Vt.length} inclusive`,Fi=class zt{static lcd(...t){if(X.isNullOrEmpty(t)||t.length<=1)throw"Insufficient set of numbers.";function e(i,o){return o?e(o,i%o):o===0?i:NaN}function r(i,o){return i*o/e(i,o)}let s=Math.round(t[0]);for(let i=1;i<t.length;i++)s=r(s,Math.round(t[i]));return s}static gcd(t,e){return t=Math.round(t),e=Math.round(e),t===0?e:zt.gcd(e%t,t)}static rebaseInt(t,e,r){return Nt.rebase(t,e,r)}static rebaseFloat(t,e,r,s=12){let i=zt.rebaseFloat10ToN,o=zt.rebaseFloatNTo10;if(e===10){let c=parseFloat(t.toString());return r%1===0?zt.rebaseFloat10ToNIntBase(c,r,s):i(c,r,s)}if(r===10)return o(t.toString(),e,s);let a=o(t.toString(),e,s+1);return i(a,r,s)}static rebaseFloatNTo10(t,e,r=12){let s=Vt;if(e<=1||e>s.length)throw new Error(de);let i=(t??"0").toString().toLowerCase(),o=Number.NaN;if(i==="0")return 0;let a=/^([-+]?) *([\da-z]+)?(.[\da-z]+)?$/.exec(i);if(a.length<2)return o;let c=a[1]==="-"?-1:1,l=a[2]||"0",h=a[3]||".0",m=0,x=0;for(let C of l+h.substr(1)){let k=s.indexOf(C);if(k===-1||k>=e)return o;m+=k*Math.pow(e,l.length-x-1),x++}return c*m}static rebaseFloat10ToNIntBase(t,e,r=12){let s=Vt;if(e<=1||e>s.length)throw new Error(de);let i=e,o=Math.abs(t??0);if(o===0||Number.isNaN(o))return t.toString();let a=(o%1).roundoff(),c="";do{let h=o/i,m=Math.floor(h),x=(o-m*i).roundoff(),C=Math.floor(x);if(C>=s.length?c=`[${C}]`+c:c=s[C]+c,m<=0)break;o=m}while(!0);if(c=c.replace(/^0+/,""),c||="0",a===0)return c;let l="";do{o=(a*i).roundoff();let h=Math.floor(o),m=(o-h).roundoff();h>=s.length?l=`[${h}]`:l+=s[h],a=m}while(!a.isCloseTo(0)&&l.length<r);return/^0*$/.test(l)?c:(Math.sign(t)<0?"-":"")+c+"."+l.replace(/0+$/,"")}static rebaseFloat10ToN(t,e,r=12){let s=Vt;if(e<=1||e>s.length)throw new Error(de);let i=e,o=Math.abs(t??0);if(o===0||Number.isNaN(o))return t.toString();let a=Math.sign(t)<0?"-":"",c=[],l=[];for(let C=0;C<20;C++)c.push("0"),l.push("0");let h=i%1===0?i:Math.ceil(i);function m(C,k,A){let E=C?c:l,M=E[k]=E[k]||"0",d=s.indexOf(M)+A,p=d%h,u=Math.floor(d/h);return E[k]=s[p],u>0&&(C?m(C,k+1,u):k===0?m(!0,0,u):m(!1,k-1,u)),u}let x=0;do{let C=Math.floor(Nt.log(o,i)),k=C>=0,A=k?C:Math.abs(1+C);if(m(k,A,1),o=(o-Math.pow(i,C).roundoff()).roundoff(),k||x++,o===0||x>=100){let E=a+(c.reverse().map(d=>d||"0").join("").replace(/^0+/,"")||"0"),M=l.map(d=>d||"0").join("").substr(0,r).replace(/0+$/,"");return/^0*$/.test(M)?E:E+"."+M}}while(!0)}};var Di={background:"#1e2336",primary:"#429bbb",secondary:"#5e7881",accent:"#ff0085",success:"#4dc2b4",warning:"#c5c023",error:"#BF215B",danger:"#fa1f1f",info:"#99d4ff",green:"#1ebb8f",yellow:"#c2b010",brown:"#a6715e",red:"#dd2020",pink:"#ff0085",blue:"#116e8b",orange:"#d46d00",purple:"#624472",teal:"#429bbb",gray:"#808080"};function On(n,t){let e=Object.assign({},Di,n),r=t.dark,s=t.mincontrast??1.5,i=4.5,o=t.contrast??i,a=7,c=t.maxcontrast??15,l=1.6,h=.95,m=.02,x=.175,C=we.DataAnalysis.SearchFunctions.goldenRatio,k,A;function E(v){return B.luminance(v)>=.2}function M(v,b=v,w=i,T=null){let _=typeof b=="object"?b:v,O=typeof b=="number"?b:typeof w=="number"?w:i,F=typeof w=="boolean"?w:T,{h:W,s:K,l:D,a:j}=B.hsl(v),Y=F??!E(v),nt=C(Y?D:0,Y?1:D,at=>Math.abs(O-B.contrastRatio(_,{h:W,s:K,l:at,a:j})).roundoff());return B.rgb({h:W,s:K,l:nt,a:j})}function d(v,b){let{h:w,s:T,a:_}=B.hsl(v),O=C(0,1,F=>Math.abs(b-B.luminance({h:w,s:T,l:F,a:_})));return B.rgb({h:w,s:T,l:O,a:_})}function p(v){return{base:v.contrast,contrast:v.base,active:v.activeContrast,activeContrast:v.active,emphasis:v.base,container:v.containerContrast,containerContrast:v.container,containerActive:v.containerActiveContrast,containerActiveContrast:v.containerActive}}function u(v,b=x){let{h:w,s:T,l:_,a:O}=B.hsl(v);return T>b?B.rgb({h:w,s:b,l:_,a:O}):v}function f(v,b,w){let T=w&&typeof w=="number"?w:null,_=T??c,O=w&&typeof w=="object"?w:null,F=b==="background"?h+.015:h,j=(r?B.luminance(v)<=m:B.luminance(v)>=F)?v:r?d(v,m):d(v,F),Y=O?v:j,N=r?.035:-.08,mt=T??a,nt=O??M(Y,_),bt=M(Y,Y,s,r),Kt=M(bt,i),Mt=d(Y,B.luminance(Y)+N),te=M(Mt,mt),Dt=d(bt,B.luminance(bt)+N),Hn=M(Dt,mt),Yn=B.saturate(Y,1.2);return{base:Y,contrast:nt,active:Mt,activeContrast:te,containerActive:Dt,container:bt,emphasis:Yn,containerActiveContrast:Hn,containerContrast:Kt}}function g(v){let b=Math.min(s,l),w=k.base,T=r,_=!T,O=M(v,w,1),F=M(u(O),w,b,T),W=r?.1:-.06,K=M(F,b,_),j=M(F,w,1.1,_),Y=M(j,b,T),N=d(F,B.luminance(F)+W),mt=M(N,b,_),nt=d(j,B.luminance(j)+W),at=M(nt,b),Ft=B.lighten(F,.1);return{base:F,contrast:K,active:N,activeContrast:mt,containerActive:nt,container:j,emphasis:Ft,containerActiveContrast:at,containerContrast:Y}}function y(v,b,w){let T=b==="gray",_=w&&typeof w=="number"?w:null,O=_??a,F=w&&typeof w=="object"?w:null,K=E(v)===r&&B.contrastRatio(v,k.base)>=o?v:M(v,k.base,o,r),D=F?v:K;T&&(D=u(D));let j=r?.1:-.06,Y=_??a,N=F??M(D,O,!r),mt=s,nt=k.base,at=M(D,nt,mt,!r),Ft=M(at,i,r),bt=d(D,B.luminance(D)+j),Kt=M(bt,Y,!r),Mt=d(at,B.luminance(at)+j),te=M(Mt,Y,r),Dt=T?B.lighten(D,.1):B.saturate(D,1.2);return{base:D,contrast:N,active:bt,activeContrast:Kt,containerActive:Mt,container:at,emphasis:Dt,containerActiveContrast:te,containerContrast:Ft}}let I={},z=v=>Math.round(v*255),L=v=>`${z(v.r)}, ${z(v.g)}, ${z(v.b)}`,P=(v,b)=>{let w=(T,_)=>{I[`--pacem-color-${v}${T}`]=B.stringify(_),I[`--pacem-color-${v}${T}-rgb`]=L(_)};w("",b.base),w("-inverse",b.contrast),w("-hover",b.active),w("-inverse-hover",b.activeContrast),w("-emphasis-hover",b.emphasis),w("-container",b.container),w("-container-inverse",b.containerContrast),w("-container-hover",b.containerActive),w("-container-inverse-hover",b.containerActiveContrast)},G=B.parse(e.background);k=f(G,"background"),P("background",k);let et="root"in e?B.parse(e.root):B.darken(k.base,r?.02:.01);if(A=f(et,"root"),P("root",A),"default"in e){let v=M(B.parse(e.default),A.base,c,r),b=y(v,"default");P("default",b)}else P("default",p(A));let ot="disabled"in e?B.parse(e.disabled):k.base;P("disabled",g(ot));for(let v in e){if(["default","background","root","disabled"].indexOf(v)>=0)continue;let b=B.parse(e[v]),w=y(b,v);P(v,w)}return"invert"in e||P("invert",p(k)),I}var gt=Yi(Xi(process.argv)).option("theme",{alias:"t",type:"string",description:"Theme (dark or light)"}).option("name",{alias:"n",type:"string",description:"Theme name"}).option("src",{alias:"s",type:"string",description:"Palette file containing the color variables in JSON format."}).option("out",{alias:"o",type:"string",description:"Output file (overrides name option)."}).option("void",{type:"string",description:"Creates an empty palette file."}).option("mincontrast",{type:"number",description:"The minimum WCAG contrast (1 to 21) container-to-background (default 1.5)."}).option("maxcontrast",{type:"number",description:"The maximum WCAG contrast (1 to 21) default-to-background (default 15)."}).option("contrast",{type:"number",description:"The minimim WCAG contrast (1 to 21) solid color-to-background (default 4.5)."}).help().argv,ke=gt.theme==="dark",Ot=gt.name??(ke?"dark":"light"),ji=gt.src?JSON.parse(Dn.readFileSync(gt.src,"utf-8")):{},Fn=On(ji,{dark:ke,mincontrast:gt.mincontrast,maxcontrast:gt.maxcontrast,contrast:gt.contrast}),Ui=Ot==="dark"?':root, [data-theme], :root[dark], [data-theme="dark"]':`:root[${Ot}], [data-theme="${Ot}"]`,Wt=`/* Prebuilt palette (theme/css/themebuilder.ts --theme ${ke?"dark":"light"} --name ${Ot}).
|
|
12
|
+
Load after the theme stylesheet: it overrides the runtime color derivations with WCAG-tuned values. */
|
|
13
|
+
@layer pacem.tokens {
|
|
14
|
+
${Ui} {
|
|
15
|
+
--pacem-prebuilt: true;
|
|
16
|
+
`;for(let n in Fn)Wt+=` ${n}: ${Fn[n]};
|
|
17
|
+
`;Wt+=` }
|
|
18
|
+
}
|
|
19
|
+
`;var Zi=gt.out??Hi.join(import.meta.dirname,"themes",Ot+".palette.css");gt.void!=null&&(Wt="");Dn.writeFileSync(Zi,Wt);
|