@ui-doc/html-renderer 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +251 -0
  3. package/dist/HtmlCurlyBraceLexer.d.ts +25 -0
  4. package/dist/HtmlRenderer.d.ts +21 -0
  5. package/dist/InlineReader.d.ts +18 -0
  6. package/dist/NodeParser.d.ts +12 -0
  7. package/dist/TemplateLoader.d.ts +9 -0
  8. package/dist/assets/app.d.ts +1 -0
  9. package/dist/assets/src/base.d.ts +1 -0
  10. package/dist/assets/src/example.d.ts +1 -0
  11. package/dist/assets/src/sidebar.d.ts +1 -0
  12. package/dist/assets/ui-doc.cjs +81 -0
  13. package/dist/assets/ui-doc.cjs.map +1 -0
  14. package/dist/assets/ui-doc.css +359 -0
  15. package/dist/assets/ui-doc.css.map +1 -0
  16. package/dist/assets/ui-doc.js.map +1 -0
  17. package/dist/assets/ui-doc.min.css +1 -0
  18. package/dist/assets/ui-doc.min.js +1 -0
  19. package/dist/assets/ui-doc.mjs +79 -0
  20. package/dist/assets/ui-doc.mjs.map +1 -0
  21. package/dist/errors/HtmlRendererError.d.ts +3 -0
  22. package/dist/errors/HtmlRendererSyntaxError.d.ts +13 -0
  23. package/dist/errors/ParserError.d.ts +3 -0
  24. package/dist/errors/TagNodeError.d.ts +3 -0
  25. package/dist/errors/index.d.ts +4 -0
  26. package/dist/index.cjs +981 -0
  27. package/dist/index.cjs.map +1 -0
  28. package/dist/index.d.ts +9 -0
  29. package/dist/index.mjs +958 -0
  30. package/dist/index.mjs.map +1 -0
  31. package/dist/nodes/CommentNode.d.ts +6 -0
  32. package/dist/nodes/Node.d.ts +14 -0
  33. package/dist/nodes/TagNode.d.ts +4 -0
  34. package/dist/nodes/TemplateNode.d.ts +6 -0
  35. package/dist/nodes/index.d.ts +10 -0
  36. package/dist/nodes/tags/debug.d.ts +11 -0
  37. package/dist/nodes/tags/for.d.ts +13 -0
  38. package/dist/nodes/tags/if.d.ts +18 -0
  39. package/dist/nodes/tags/index.d.ts +3 -0
  40. package/dist/nodes/tags/page.d.ts +13 -0
  41. package/dist/nodes/tags/partial.d.ts +13 -0
  42. package/dist/nodes/tags/var.d.ts +13 -0
  43. package/dist/types/base.d.ts +1 -0
  44. package/dist/types/index.d.ts +6 -0
  45. package/dist/types/lexer.d.ts +23 -0
  46. package/dist/types/parser.d.ts +25 -0
  47. package/dist/types/reader.d.ts +35 -0
  48. package/dist/types/renderer.d.ts +14 -0
  49. package/dist/types/token.d.ts +40 -0
  50. package/dist/utils/index.d.ts +2 -0
  51. package/package.json +71 -0
  52. package/scripts/app.ts +8 -0
  53. package/scripts/src/base.ts +7 -0
  54. package/scripts/src/example.ts +31 -0
  55. package/scripts/src/sidebar.ts +46 -0
  56. package/styles/01_resets/initial.css +18 -0
  57. package/styles/01_resets/root.css +36 -0
  58. package/styles/01_resets/typography.css +67 -0
  59. package/styles/02_objects/background.css +7 -0
  60. package/styles/02_objects/control.css +25 -0
  61. package/styles/02_objects/margin.css +44 -0
  62. package/styles/02_objects/padding.css +44 -0
  63. package/styles/02_objects/text.css +3 -0
  64. package/styles/02_objects/width.css +16 -0
  65. package/styles/03_components/example-markup.css +31 -0
  66. package/styles/03_components/nav/list.css +42 -0
  67. package/styles/03_components/nav/main.css +39 -0
  68. package/styles/03_components/text-flow.css +5 -0
  69. package/styles/04_layouts/page.css +68 -0
  70. package/styles/index.css +17 -0
  71. package/templates/layouts/default.html +24 -0
  72. package/templates/layouts/example.html +29 -0
  73. package/templates/pages/default.html +14 -0
  74. package/templates/pages/index.html +3 -0
  75. package/templates/partials/code.html +5 -0
  76. package/templates/partials/content.html +7 -0
  77. package/templates/partials/example.html +5 -0
  78. package/templates/partials/nav-main.html +9 -0
  79. package/templates/partials/nav-sidebar.html +18 -0
  80. package/templates/partials/section-inner.html +5 -0
  81. package/templates/partials/section.html +1 -0
@@ -0,0 +1,359 @@
1
+ :root {
2
+ --font-weight-normal: 400;
3
+ --font-weight-bold: 700;
4
+ --font-size-sm: 0.85em;
5
+ --font-size-normal: 1em;
6
+ --font-size-md: 1.2em;
7
+ --font-size-lg: 1.7em;
8
+ --font-size-base: 16px;
9
+ --font-color: 3 3 3;
10
+ --font-family: system-ui, "Segoe UI", roboto, helvetica, arial, sans-serif, "Apple Color Emoji",
11
+ "Segoe UI Emoji", "Segoe UI Symbol";
12
+ --font-weight: var(--font-weight-normal);
13
+ --font-size: var(--font-size-normal);
14
+ --font-line-height: 1.4;
15
+ --headline-weight: var(--font-weight-bold);
16
+ --bg-color: 255 255 255;
17
+ --accent-color: 3 3 200;
18
+ --border-color: 5 5 5;
19
+ --selection-color: var(--bg-color);
20
+ --selection-bg-color: var(--font-color);
21
+ --size-base-unit: 1rem;
22
+ --size-xs: calc(0.5 * var(--size-base-unit));
23
+ --size-sm: calc(0.8 * var(--size-base-unit));
24
+ --size-normal: var(--size-base-unit);
25
+ --size-md: calc(1.2 * var(--size-base-unit));
26
+ --size-lg: calc(1.6 * var(--size-base-unit));
27
+ --size-xl: calc(2.4 * var(--size-base-unit));
28
+ --nav-main-menu-item-px: var(--size-sm);
29
+ --nav-main-menu-item-py: var(--size-xs);
30
+ --nav-main-menu-item-font-size: var(--font-size-md);
31
+ --nav-main-height: calc(
32
+ var(--nav-main-menu-item-py) * 2 + var(--nav-main-menu-item-font-size) * var(--font-line-height)
33
+ );
34
+
35
+ color-scheme: light;
36
+ }
37
+ * {
38
+ box-sizing: border-box;
39
+ margin: 0;
40
+ }
41
+ *::after, *::before {
42
+ box-sizing: inherit;
43
+ }
44
+ ::-moz-selection {
45
+ color: rgb(var(--selection-color));
46
+ background-color: rgb(var(--selection-bg-color));
47
+ }
48
+ ::selection {
49
+ color: rgb(var(--selection-color));
50
+ background-color: rgb(var(--selection-bg-color));
51
+ }
52
+ body {
53
+ background-color: rgb(var(--bg-color));
54
+ }
55
+ html {
56
+ font-size: var(--font-size-base);
57
+ -webkit-font-smoothing: antialiased;
58
+ -moz-osx-font-smoothing: grayscale;
59
+ -webkit-text-size-adjust: 100%;
60
+ -moz-text-size-adjust: 100%;
61
+ text-size-adjust: 100%;
62
+ word-break: break-word;
63
+ }
64
+ body, .font, .control {
65
+ font-family: var(--font-family);
66
+ font-size: var(--font-size);
67
+ font-weight: var(--font-weight);
68
+ line-height: var(--font-line-height);
69
+ color: rgb(var(--font-color));
70
+ }
71
+ button, input, optgroup, select, textarea {
72
+ font-family: inherit;
73
+ }
74
+ h1, h2, h3, h4, h5, h6 {
75
+ font-family: var(--headline-family, inherit);
76
+ font-size: calc(var(--font-size-normal) * var(--headline-scale, 1));
77
+ font-weight: var(--headline-weight, inherit);
78
+ line-height: var(--headline-line-height, inherit);
79
+ color: rgb(var(--headline-color, inherit));
80
+ }
81
+ h1 {
82
+ --headline-scale: 2.5;
83
+ }
84
+ h2 {
85
+ --headline-scale: 2;
86
+ }
87
+ h3 {
88
+ --headline-scale: 1.75;
89
+ }
90
+ h4 {
91
+ --headline-scale: 1.5;
92
+ }
93
+ a {
94
+ color: rgb(var(--link-color, inherit));
95
+ -webkit-text-decoration: var(--link-decoration, none);
96
+ text-decoration: var(--link-decoration, none);
97
+ }
98
+ b, strong {
99
+ --font-weight: var(--font-weight-bold);
100
+ }
101
+ small {
102
+ --font-size: var(--font-size-sm);
103
+ }
104
+ .bg, .nav-main {
105
+ --selection-bg-color: var(--font-color);
106
+ --selection-color: var(--bg-color);
107
+
108
+ color: rgb(var(--font-color));
109
+ background: rgb(var(--bg-color));
110
+ }
111
+ .tc {
112
+ color: rgb(var(--font-color));
113
+ }
114
+ .padding, .pxy, .control {
115
+ padding: var(--pt, var(--size-normal)) var(--pr, var(--size-normal)) var(--pb, var(--size-normal))
116
+ var(--pl, var(--size-normal));
117
+ }
118
+ .pt, .py {
119
+ padding-top: var(--pt, var(--size-normal));
120
+ }
121
+ .pr, .px {
122
+ padding-right: var(--pr, var(--size-normal));
123
+ }
124
+ .pb, .py {
125
+ padding-bottom: var(--pb, var(--size-normal));
126
+ }
127
+ .pl, .px {
128
+ padding-left: var(--pl, var(--size-normal));
129
+ }
130
+ .pxy, .control {
131
+ --pt: var(--py, var(--size-normal));
132
+ --pb: var(--py, var(--size-normal));
133
+ --pl: var(--px, var(--size-normal));
134
+ --pr: var(--px, var(--size-normal));
135
+ }
136
+ .py {
137
+ --pt: var(--py, var(--size-normal));
138
+ --pb: var(--py, var(--size-normal));
139
+ }
140
+ .px {
141
+ --pl: var(--px, var(--size-normal));
142
+ --pr: var(--px, var(--size-normal));
143
+ }
144
+ .margin, .mxy {
145
+ margin: var(--mt, var(--size-normal)) var(--mr, var(--size-normal)) var(--mb, var(--size-normal))
146
+ var(--ml, var(--size-normal));
147
+ }
148
+ .mt, .my {
149
+ margin-top: var(--mt, var(--size-normal));
150
+ }
151
+ .mr, .mx {
152
+ margin-right: var(--mr, var(--size-normal));
153
+ }
154
+ .mb, .my {
155
+ margin-bottom: var(--mb, var(--size-normal));
156
+ }
157
+ .ml, .mx {
158
+ margin-left: var(--ml, var(--size-normal));
159
+ }
160
+ .mxy {
161
+ --mt: var(--my, var(--size-normal));
162
+ --mb: var(--my, var(--size-normal));
163
+ --ml: var(--mx, var(--size-normal));
164
+ --mr: var(--mx, var(--size-normal));
165
+ }
166
+ .my {
167
+ --mt: var(--my, var(--size-normal));
168
+ --mb: var(--my, var(--size-normal));
169
+ }
170
+ .mx {
171
+ --ml: var(--mx, var(--size-normal));
172
+ --mr: var(--mx, var(--size-normal));
173
+ }
174
+ [class*="width-"] {
175
+ --width-calc: max(
176
+ var(--width-min-space-x, 32px),
177
+ calc((100% - var(--width-content, 1280px)) / 2)
178
+ );
179
+
180
+ padding-inline: var(--width-calc);
181
+ }
182
+ .width-content {
183
+ --width-content: 1280px;
184
+ }
185
+ .width-full {
186
+ --width: 100%;
187
+ }
188
+ .control {
189
+ --px: 0;
190
+ --py: 0;
191
+
192
+ cursor: pointer;
193
+
194
+ display: inline-block;
195
+
196
+ text-align: center;
197
+ text-decoration: none;
198
+
199
+ -webkit-appearance: none;
200
+
201
+ -moz-appearance: none;
202
+
203
+ appearance: none;
204
+ background: rgb(var(--control-bg-color, transparent));
205
+ border: none;
206
+ border-radius: unset;
207
+ outline: none;
208
+ }
209
+ .control[aria-disabled="true"], .control:disabled {
210
+ cursor: not-allowed;
211
+ }
212
+ .example, .markup {
213
+ border: 1px solid rgb(var(--code-border-color, var(--border-color)));
214
+ }
215
+ .example, .markup > .code > .hljs {
216
+ padding: 1em;
217
+ }
218
+ .example {
219
+ display: flex;
220
+ }
221
+ .example > iframe {
222
+ width: 100%;
223
+ border: none;
224
+ }
225
+ .markup {
226
+ font-size: var(--font-size-xs);
227
+ }
228
+ .markup > .code {
229
+ margin: 0;
230
+ }
231
+ .example + .markup {
232
+ margin-top: 0;
233
+ border-top: none;
234
+ }
235
+ .text-flow > * + * {
236
+ margin-top: var(--text-flow-space, 1em);
237
+ }
238
+ .nav-main > .bar {
239
+ height: var(--nav-main-height);
240
+ }
241
+ .nav-main > .bar > .control.title {
242
+ --px: var(--nav-main-menu-item-px);
243
+ --py: var(--nav-main-menu-item-py);
244
+ --font-weight: var(--font-weight-bold);
245
+ }
246
+ .nav-main > .menu {
247
+ position: absolute;
248
+ top: 0;
249
+ right: calc(var(--width-calc) - var(--nav-main-menu-item-px));
250
+
251
+ display: flex;
252
+ flex-direction: row;
253
+
254
+ height: var(--nav-main-height);
255
+ }
256
+ .nav-main > .menu > .control {
257
+ --px: var(--nav-main-menu-item-px);
258
+ --py: var(--nav-main-menu-item-py);
259
+ --font-size: var(--nav-main-menu-item-font-size);
260
+ --font-weight: var(--font-weight-bold);
261
+ }
262
+ .nav-main > .menu > .control[aria-current] {
263
+ --font-color: var(--accent-color);
264
+ }
265
+ .nav-main > .menu > .control:hover {
266
+ text-decoration: underline;
267
+ }
268
+ .nav-list {
269
+ --nav-list-item-px: var(--size-sm);
270
+ --nav-list-item-py: var(--size-xs);
271
+ --nav-list-item-border-color: var(--border-color);
272
+
273
+ text-align: left;
274
+ }
275
+ .nav-list ul {
276
+ margin: 0;
277
+ padding: 0;
278
+ list-style: none;
279
+ }
280
+ .nav-list > ul > li + li {
281
+ margin-top: var(--nav-list-root-item-space, var(--size-sm));
282
+ }
283
+ .nav-list .control.active {
284
+ --font-color: var(--accent-color);
285
+ }
286
+ .nav-list > ul > li > .control {
287
+ --py: var(--nav-list-item-py);
288
+ --pr: var(--nav-list-item-px);
289
+ --font-weight: var(--font-weight-bold);
290
+ --font-size: var(--font-size-md);
291
+ }
292
+ .nav-list > ul > li > ul > li > .control {
293
+ --py: var(--nav-list-item-py);
294
+ --px: var(--nav-list-item-px);
295
+
296
+ text-align: left;
297
+ border-left: 1px solid rgba(var(--nav-list-item-border-color) / var(--border-opacity, 0.1));
298
+ }
299
+ .nav-list > ul > li > ul > li > .control:hover {
300
+ --border-opacity: 1;
301
+ }
302
+ html {
303
+ scroll-behavior: smooth;
304
+ scrollbar-gutter: stable;
305
+ scroll-padding-top: var(--nav-main-height);
306
+ height: 100%;
307
+ }
308
+ html > body {
309
+ min-height: 100%;
310
+ }
311
+ body > header {
312
+ padding-top: var(--nav-main-height);
313
+ }
314
+ body > header > .nav-main {
315
+ position: fixed;
316
+ z-index: 1000;
317
+ top: 0;
318
+ width: 100%;
319
+ }
320
+ body > main {
321
+ --main-sidebar-width: 25ch;
322
+ --main-content-sidebar-space: var(--size-xl);
323
+
324
+ position: relative;
325
+ }
326
+ body > main > .sidebar {
327
+ position: absolute;
328
+ top: 0;
329
+ left: var(--width-calc);
330
+
331
+ width: var(--main-sidebar-width);
332
+ height: 100%;
333
+ }
334
+ body > main > .sidebar > .scroll {
335
+ position: sticky;
336
+ top: var(--nav-main-height);
337
+
338
+ overflow-y: auto;
339
+
340
+ height: 100%;
341
+ max-height: calc(100vh - var(--nav-main-height));
342
+ }
343
+ body > main > .content {
344
+ margin-left: calc(var(--main-sidebar-width) + var(--main-content-sidebar-space));
345
+ }
346
+ body > main > .content > .headline + .description {
347
+ margin-top: var(--size-md);
348
+ }
349
+ body > main > .content > section + section, body > main > .content > section:first-of-type {
350
+ margin-top: var(--main-content-section-space, var(--size-lg));
351
+ }
352
+ footer {
353
+ --mt: var(--size-xl);
354
+ }
355
+ footer > .text {
356
+ text-align: right;
357
+ }
358
+
359
+ /*# sourceMappingURL=ui-doc.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["01_resets/root.css","01_resets/initial.css","01_resets/typography.css","02_objects/background.css","02_objects/text.css","02_objects/padding.css","02_objects/margin.css","02_objects/width.css","02_objects/control.css","03_components/example-markup.css","03_components/text-flow.css","03_components/nav/main.css","03_components/nav/list.css","04_layouts/page.css"],"names":[],"mappings":"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","file":"ui-doc.css","sourcesContent":[":root {\n --font-weight-normal: 400;\n --font-weight-bold: 700;\n --font-size-sm: 0.85em;\n --font-size-normal: 1em;\n --font-size-md: 1.2em;\n --font-size-lg: 1.7em;\n --font-size-base: 16px;\n --font-color: 3 3 3;\n --font-family: system-ui, \"Segoe UI\", roboto, helvetica, arial, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n --font-weight: var(--font-weight-normal);\n --font-size: var(--font-size-normal);\n --font-line-height: 1.4;\n --headline-weight: var(--font-weight-bold);\n --bg-color: 255 255 255;\n --accent-color: 3 3 200;\n --border-color: 5 5 5;\n --selection-color: var(--bg-color);\n --selection-bg-color: var(--font-color);\n --size-base-unit: 1rem;\n --size-xs: calc(0.5 * var(--size-base-unit));\n --size-sm: calc(0.8 * var(--size-base-unit));\n --size-normal: var(--size-base-unit);\n --size-md: calc(1.2 * var(--size-base-unit));\n --size-lg: calc(1.6 * var(--size-base-unit));\n --size-xl: calc(2.4 * var(--size-base-unit));\n --nav-main-menu-item-px: var(--size-sm);\n --nav-main-menu-item-py: var(--size-xs);\n --nav-main-menu-item-font-size: var(--font-size-md);\n --nav-main-height: calc(\n var(--nav-main-menu-item-py) * 2 + var(--nav-main-menu-item-font-size) * var(--font-line-height)\n );\n\n color-scheme: light;\n}\n","* {\n box-sizing: border-box;\n margin: 0;\n}\n\n*::after,\n*::before {\n box-sizing: inherit;\n}\n\n::selection {\n color: rgb(var(--selection-color));\n background-color: rgb(var(--selection-bg-color));\n}\n\nbody {\n background-color: rgb(var(--bg-color));\n}\n","html {\n font-size: var(--font-size-base);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-size-adjust: 100%;\n word-break: break-word;\n}\n\nbody,\n.font {\n font-family: var(--font-family);\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n line-height: var(--font-line-height);\n color: rgb(var(--font-color));\n}\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-family: var(--headline-family, inherit);\n font-size: calc(var(--font-size-normal) * var(--headline-scale, 1));\n font-weight: var(--headline-weight, inherit);\n line-height: var(--headline-line-height, inherit);\n color: rgb(var(--headline-color, inherit));\n}\n\nh1 {\n --headline-scale: 2.5;\n}\n\nh2 {\n --headline-scale: 2;\n}\n\nh3 {\n --headline-scale: 1.75;\n}\n\nh4 {\n --headline-scale: 1.5;\n}\n\na {\n color: rgb(var(--link-color, inherit));\n text-decoration: var(--link-decoration, none);\n}\n\nb,\nstrong {\n --font-weight: var(--font-weight-bold);\n}\n\nsmall {\n --font-size: var(--font-size-sm);\n}\n",".bg {\n --selection-bg-color: var(--font-color);\n --selection-color: var(--bg-color);\n\n color: rgb(var(--font-color));\n background: rgb(var(--bg-color));\n}\n",".tc {\n color: rgb(var(--font-color));\n}\n",".padding,\n.pxy {\n padding: var(--pt, var(--size-normal)) var(--pr, var(--size-normal)) var(--pb, var(--size-normal))\n var(--pl, var(--size-normal));\n}\n\n.pt {\n padding-top: var(--pt, var(--size-normal));\n}\n\n.pr {\n padding-right: var(--pr, var(--size-normal));\n}\n\n.pb {\n padding-bottom: var(--pb, var(--size-normal));\n}\n\n.pl {\n padding-left: var(--pl, var(--size-normal));\n}\n\n.pxy {\n --pt: var(--py, var(--size-normal));\n --pb: var(--py, var(--size-normal));\n --pl: var(--px, var(--size-normal));\n --pr: var(--px, var(--size-normal));\n}\n\n.py {\n --pt: var(--py, var(--size-normal));\n --pb: var(--py, var(--size-normal));\n\n @extend .pt;\n @extend .pb;\n}\n\n.px {\n --pl: var(--px, var(--size-normal));\n --pr: var(--px, var(--size-normal));\n\n @extend .pl;\n @extend .pr;\n}\n",".margin,\n.mxy {\n margin: var(--mt, var(--size-normal)) var(--mr, var(--size-normal)) var(--mb, var(--size-normal))\n var(--ml, var(--size-normal));\n}\n\n.mt {\n margin-top: var(--mt, var(--size-normal));\n}\n\n.mr {\n margin-right: var(--mr, var(--size-normal));\n}\n\n.mb {\n margin-bottom: var(--mb, var(--size-normal));\n}\n\n.ml {\n margin-left: var(--ml, var(--size-normal));\n}\n\n.mxy {\n --mt: var(--my, var(--size-normal));\n --mb: var(--my, var(--size-normal));\n --ml: var(--mx, var(--size-normal));\n --mr: var(--mx, var(--size-normal));\n}\n\n.my {\n --mt: var(--my, var(--size-normal));\n --mb: var(--my, var(--size-normal));\n\n @extend .mt;\n @extend .mb;\n}\n\n.mx {\n --ml: var(--mx, var(--size-normal));\n --mr: var(--mx, var(--size-normal));\n\n @extend .ml;\n @extend .mr;\n}\n","[class*=\"width-\"] {\n --width-calc: max(\n var(--width-min-space-x, 32px),\n calc((100% - var(--width-content, 1280px)) / 2)\n );\n\n padding-inline: var(--width-calc);\n}\n\n.width-content {\n --width-content: 1280px;\n}\n\n.width-full {\n --width: 100%;\n}\n",".control {\n --px: 0;\n --py: 0;\n\n @extend .pxy;\n @extend .font;\n\n cursor: pointer;\n\n display: inline-block;\n\n text-align: center;\n text-decoration: none;\n\n appearance: none;\n background: rgb(var(--control-bg-color, transparent));\n border: none;\n border-radius: unset;\n outline: none;\n\n &[aria-disabled=\"true\"],\n &:disabled {\n cursor: not-allowed;\n }\n}\n",".example,\n.markup {\n border: 1px solid rgb(var(--code-border-color, var(--border-color)));\n}\n\n.example,\n.markup > .code > .hljs {\n padding: 1em;\n}\n\n.example {\n display: flex;\n\n > iframe {\n width: 100%;\n border: none;\n }\n}\n\n.markup {\n font-size: var(--font-size-xs);\n\n > .code {\n margin: 0;\n }\n}\n\n.example + .markup {\n margin-top: 0;\n border-top: none;\n}\n",".text-flow {\n > * + * {\n margin-top: var(--text-flow-space, 1em);\n }\n}\n",".nav-main {\n @extend .bg;\n}\n\n.nav-main > .bar {\n height: var(--nav-main-height);\n\n > .control.title {\n --px: var(--nav-main-menu-item-px);\n --py: var(--nav-main-menu-item-py);\n --font-weight: var(--font-weight-bold);\n }\n}\n\n.nav-main > .menu {\n position: absolute;\n top: 0;\n right: calc(var(--width-calc) - var(--nav-main-menu-item-px));\n\n display: flex;\n flex-direction: row;\n\n height: var(--nav-main-height);\n\n > .control {\n --px: var(--nav-main-menu-item-px);\n --py: var(--nav-main-menu-item-py);\n --font-size: var(--nav-main-menu-item-font-size);\n --font-weight: var(--font-weight-bold);\n\n &[aria-current] {\n --font-color: var(--accent-color);\n }\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n",".nav-list {\n --nav-list-item-px: var(--size-sm);\n --nav-list-item-py: var(--size-xs);\n --nav-list-item-border-color: var(--border-color);\n\n text-align: left;\n\n ul {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n > ul > li + li {\n margin-top: var(--nav-list-root-item-space, var(--size-sm));\n }\n\n .control {\n &.active {\n --font-color: var(--accent-color);\n }\n }\n}\n\n.nav-list > ul > li > .control {\n --py: var(--nav-list-item-py);\n --pr: var(--nav-list-item-px);\n --font-weight: var(--font-weight-bold);\n --font-size: var(--font-size-md);\n}\n\n.nav-list > ul > li > ul > li > .control {\n --py: var(--nav-list-item-py);\n --px: var(--nav-list-item-px);\n\n text-align: left;\n border-left: 1px solid rgba(var(--nav-list-item-border-color) / var(--border-opacity, 0.1));\n\n &:hover {\n --border-opacity: 1;\n }\n}\n","html {\n scroll-behavior: smooth;\n scrollbar-gutter: stable;\n scroll-padding-top: var(--nav-main-height);\n height: 100%;\n}\n\nhtml > body {\n min-height: 100%;\n}\n\nbody > header {\n padding-top: var(--nav-main-height);\n\n > .nav-main {\n position: fixed;\n z-index: 1000;\n top: 0;\n width: 100%;\n }\n}\n\nbody > main {\n --main-sidebar-width: 25ch;\n --main-content-sidebar-space: var(--size-xl);\n\n position: relative;\n}\n\nbody > main > .sidebar {\n position: absolute;\n top: 0;\n left: var(--width-calc);\n\n width: var(--main-sidebar-width);\n height: 100%;\n\n > .scroll {\n position: sticky;\n top: var(--nav-main-height);\n\n overflow-y: auto;\n\n height: 100%;\n max-height: calc(100vh - var(--nav-main-height));\n }\n}\n\nbody > main > .content {\n margin-left: calc(var(--main-sidebar-width) + var(--main-content-sidebar-space));\n\n > .headline + .description {\n margin-top: var(--size-md);\n }\n\n > section + section,\n > section:first-of-type {\n margin-top: var(--main-content-section-space, var(--size-lg));\n }\n}\n\nfooter {\n --mt: var(--size-xl);\n\n > .text {\n text-align: right;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-doc.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1 @@
1
+ :root{--font-weight-normal:400;--font-weight-bold:700;--font-size-sm:0.85em;--font-size-normal:1em;--font-size-md:1.2em;--font-size-lg:1.7em;--font-size-base:16px;--font-color:3 3 3;--font-family:system-ui,"Segoe UI",roboto,helvetica,arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-weight:var(--font-weight-normal);--font-size:var(--font-size-normal);--font-line-height:1.4;--headline-weight:var(--font-weight-bold);--bg-color:255 255 255;--accent-color:3 3 200;--border-color:5 5 5;--selection-color:var(--bg-color);--selection-bg-color:var(--font-color);--size-base-unit:1rem;--size-xs:calc(var(--size-base-unit)*0.5);--size-sm:calc(var(--size-base-unit)*0.8);--size-normal:var(--size-base-unit);--size-md:calc(var(--size-base-unit)*1.2);--size-lg:calc(var(--size-base-unit)*1.6);--size-xl:calc(var(--size-base-unit)*2.4);--nav-main-menu-item-px:var(--size-sm);--nav-main-menu-item-py:var(--size-xs);--nav-main-menu-item-font-size:var(--font-size-md);--nav-main-height:calc(var(--nav-main-menu-item-py)*2 + var(--nav-main-menu-item-font-size)*var(--font-line-height));color-scheme:light}*{box-sizing:border-box;margin:0}:after,:before{box-sizing:inherit}::-moz-selection{background-color:rgb(var(--selection-bg-color));color:rgb(var(--selection-color))}::selection{background-color:rgb(var(--selection-bg-color));color:rgb(var(--selection-color))}body{background-color:rgb(var(--bg-color))}html{font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;word-break:break-word}.control,.font,body{color:rgb(var(--font-color));font-family:var(--font-family);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--font-line-height)}button,input,optgroup,select,textarea{font-family:inherit}h1,h2,h3,h4,h5,h6{color:rgb(var(--headline-color,inherit));font-family:var(--headline-family,inherit);font-size:calc(var(--font-size-normal)*var(--headline-scale, 1));font-weight:var(--headline-weight,inherit);line-height:var(--headline-line-height,inherit)}h1{--headline-scale:2.5}h2{--headline-scale:2}h3{--headline-scale:1.75}h4{--headline-scale:1.5}a{color:rgb(var(--link-color,inherit));-webkit-text-decoration:var(--link-decoration,none);text-decoration:var(--link-decoration,none)}b,strong{--font-weight:var(--font-weight-bold)}small{--font-size:var(--font-size-sm)}.bg,.nav-main{--selection-bg-color:var(--font-color);--selection-color:var(--bg-color);background:rgb(var(--bg-color))}.bg,.nav-main,.tc{color:rgb(var(--font-color))}.control,.padding,.pxy{padding:var(--pt,var(--size-normal)) var(--pr,var(--size-normal)) var(--pb,var(--size-normal)) var(--pl,var(--size-normal))}.pt,.py{padding-top:var(--pt,var(--size-normal))}.pr,.px{padding-right:var(--pr,var(--size-normal))}.pb,.py{padding-bottom:var(--pb,var(--size-normal))}.pl,.px{padding-left:var(--pl,var(--size-normal))}.control,.pxy{--pt:var(--py,var(--size-normal));--pb:var(--py,var(--size-normal));--pl:var(--px,var(--size-normal));--pr:var(--px,var(--size-normal))}.py{--pt:var(--py,var(--size-normal));--pb:var(--py,var(--size-normal))}.px{--pl:var(--px,var(--size-normal));--pr:var(--px,var(--size-normal))}.margin,.mxy{margin:var(--mt,var(--size-normal)) var(--mr,var(--size-normal)) var(--mb,var(--size-normal)) var(--ml,var(--size-normal))}.mt,.my{margin-top:var(--mt,var(--size-normal))}.mr,.mx{margin-right:var(--mr,var(--size-normal))}.mb,.my{margin-bottom:var(--mb,var(--size-normal))}.ml,.mx{margin-left:var(--ml,var(--size-normal))}.mxy{--mt:var(--my,var(--size-normal));--mb:var(--my,var(--size-normal));--ml:var(--mx,var(--size-normal));--mr:var(--mx,var(--size-normal))}.my{--mt:var(--my,var(--size-normal));--mb:var(--my,var(--size-normal))}.mx{--ml:var(--mx,var(--size-normal));--mr:var(--mx,var(--size-normal))}[class*=width-]{--width-calc:max(var(--width-min-space-x,32px),calc((100% - var(--width-content, 1280px))/2));padding-inline:var(--width-calc)}.width-content{--width-content:1280px}.width-full{--width:100%}.control{--px:0;--py:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgb(var(--control-bg-color,transparent));border:none;border-radius:unset;cursor:pointer;display:inline-block;outline:none;text-align:center;text-decoration:none}.control:disabled,.control[aria-disabled=true]{cursor:not-allowed}.example,.markup{border:1px solid rgb(var(--code-border-color,var(--border-color)))}.example,.markup>.code>.hljs{padding:1em}.example{display:flex}.example>iframe{border:none;width:100%}.markup{font-size:var(--font-size-xs)}.markup>.code{margin:0}.example+.markup{border-top:none;margin-top:0}.text-flow>*+*{margin-top:var(--text-flow-space,1em)}.nav-main>.bar{height:var(--nav-main-height)}.nav-main>.bar>.control.title{--px:var(--nav-main-menu-item-px);--py:var(--nav-main-menu-item-py);--font-weight:var(--font-weight-bold)}.nav-main>.menu{display:flex;flex-direction:row;height:var(--nav-main-height);position:absolute;right:calc(var(--width-calc) - var(--nav-main-menu-item-px));top:0}.nav-main>.menu>.control{--px:var(--nav-main-menu-item-px);--py:var(--nav-main-menu-item-py);--font-size:var(--nav-main-menu-item-font-size);--font-weight:var(--font-weight-bold)}.nav-main>.menu>.control[aria-current]{--font-color:var(--accent-color)}.nav-main>.menu>.control:hover{text-decoration:underline}.nav-list{--nav-list-item-px:var(--size-sm);--nav-list-item-py:var(--size-xs);--nav-list-item-border-color:var(--border-color);text-align:left}.nav-list ul{list-style:none;margin:0;padding:0}.nav-list>ul>li+li{margin-top:var(--nav-list-root-item-space,var(--size-sm))}.nav-list .control.active{--font-color:var(--accent-color)}.nav-list>ul>li>.control{--py:var(--nav-list-item-py);--pr:var(--nav-list-item-px);--font-weight:var(--font-weight-bold);--font-size:var(--font-size-md)}.nav-list>ul>li>ul>li>.control{--py:var(--nav-list-item-py);--px:var(--nav-list-item-px);border-left:1px solid rgba(var(--nav-list-item-border-color)/var(--border-opacity,.1));text-align:left}.nav-list>ul>li>ul>li>.control:hover{--border-opacity:1}html{height:100%;scroll-behavior:smooth;scroll-padding-top:var(--nav-main-height);scrollbar-gutter:stable}html>body{min-height:100%}body>header{padding-top:var(--nav-main-height)}body>header>.nav-main{position:fixed;top:0;width:100%;z-index:1000}body>main{--main-sidebar-width:25ch;--main-content-sidebar-space:var(--size-xl);position:relative}body>main>.sidebar{height:100%;left:var(--width-calc);position:absolute;top:0;width:var(--main-sidebar-width)}body>main>.sidebar>.scroll{height:100%;max-height:calc(100vh - var(--nav-main-height));overflow-y:auto;position:sticky;top:var(--nav-main-height)}body>main>.content{margin-left:calc(var(--main-sidebar-width) + var(--main-content-sidebar-space))}body>main>.content>.headline+.description{margin-top:var(--size-md)}body>main>.content>section+section,body>main>.content>section:first-of-type{margin-top:var(--main-content-section-space,var(--size-lg))}footer{--mt:var(--size-xl)}footer>.text{text-align:right}
@@ -0,0 +1 @@
1
+ !function(){"use strict";function e(){document.querySelectorAll("[data-sidebar]").forEach((e=>{!function(e){const t={},n=new IntersectionObserver((e=>{var n,o,r;const l=e.filter((e=>e.isIntersecting));if(l.length<=0)return;Object.keys(t).forEach((e=>{t[e].classList.remove("active")}));const a=t[l[0].target.id];a.classList.add("active"),(null===(o=null===(n=null==a?void 0:a.parentElement)||void 0===n?void 0:n.parentElement)||void 0===o?void 0:o.parentElement)instanceof HTMLLIElement&&(null===(r=a.parentElement.parentElement.parentElement.querySelector("a"))||void 0===r||r.classList.add("active"))}),{root:null,rootMargin:"0px 0px -90% 0px",threshold:.5});e.querySelectorAll('a[href^="#"]').forEach((e=>{const o=e.href.split("#")[1],r=document.getElementById(o);r&&(n.observe(r),t[o]=e)}))}(e)}))}var t;t=()=>{document.querySelectorAll("[data-example] > iframe").forEach((e=>{var t,n;const o=null!==(t=e.contentDocument)&&void 0!==t?t:null===(n=e.contentWindow)||void 0===n?void 0:n.document;if(!o)return;const r=()=>{const t=()=>{e.style.height=`${o.body.scrollHeight}px`};t(),new MutationObserver(t).observe(o.body,{attributes:!0,childList:!0,subtree:!0})};"complete"===o.readyState?r():e.addEventListener("load",r)})),e()},"loading"!==document.readyState?t():document.addEventListener("DOMContentLoaded",t)}();
@@ -0,0 +1,79 @@
1
+ function ready(callback) {
2
+ if (document.readyState !== 'loading') {
3
+ callback();
4
+ }
5
+ else {
6
+ document.addEventListener('DOMContentLoaded', callback);
7
+ }
8
+ }
9
+
10
+ function initExample() {
11
+ document.querySelectorAll('[data-example] > iframe').forEach(iframe => {
12
+ var _a, _b;
13
+ const document = (_a = iframe.contentDocument) !== null && _a !== void 0 ? _a : (_b = iframe.contentWindow) === null || _b === void 0 ? void 0 : _b.document;
14
+ if (!document) {
15
+ return;
16
+ }
17
+ const action = () => {
18
+ const changeHeight = () => {
19
+ iframe.style.height = `${document.body.scrollHeight}px`;
20
+ };
21
+ changeHeight();
22
+ const observer = new MutationObserver(changeHeight);
23
+ observer.observe(document.body, {
24
+ attributes: true,
25
+ childList: true,
26
+ subtree: true,
27
+ });
28
+ };
29
+ if (document.readyState === 'complete') {
30
+ action();
31
+ }
32
+ else {
33
+ iframe.addEventListener('load', action);
34
+ }
35
+ });
36
+ }
37
+
38
+ function createSidebar(sidebar) {
39
+ const links = {};
40
+ const observer = new IntersectionObserver(entries => {
41
+ var _a, _b, _c;
42
+ const activeEntries = entries.filter(entry => entry.isIntersecting);
43
+ if (activeEntries.length <= 0) {
44
+ return;
45
+ }
46
+ Object.keys(links).forEach(id => {
47
+ links[id].classList.remove('active');
48
+ });
49
+ const activeLink = links[activeEntries[0].target.id];
50
+ activeLink.classList.add('active');
51
+ if (((_b = (_a = activeLink === null || activeLink === void 0 ? void 0 : activeLink.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement) instanceof HTMLLIElement) {
52
+ (_c = activeLink.parentElement.parentElement.parentElement
53
+ .querySelector('a')) === null || _c === void 0 ? void 0 : _c.classList.add('active');
54
+ }
55
+ }, {
56
+ root: null,
57
+ rootMargin: '0px 0px -90% 0px',
58
+ threshold: 0.5,
59
+ });
60
+ sidebar.querySelectorAll('a[href^="#"]').forEach(link => {
61
+ const id = link.href.split('#')[1];
62
+ const target = document.getElementById(id);
63
+ if (target) {
64
+ observer.observe(target);
65
+ links[id] = link;
66
+ }
67
+ });
68
+ }
69
+ function initSidebar() {
70
+ document.querySelectorAll('[data-sidebar]').forEach(sidebar => {
71
+ createSidebar(sidebar);
72
+ });
73
+ }
74
+
75
+ ready(() => {
76
+ initExample();
77
+ initSidebar();
78
+ });
79
+ //# sourceMappingURL=ui-doc.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-doc.mjs","sources":["../../../scripts/src/base.ts","../../../scripts/src/example.ts","../../../scripts/src/sidebar.ts","../../../scripts/app.ts"],"sourcesContent":["export function ready(callback: () => void) {\n if (document.readyState !== 'loading') {\n callback()\n } else {\n document.addEventListener('DOMContentLoaded', callback)\n }\n}\n","export function initExample() {\n document.querySelectorAll<HTMLIFrameElement>('[data-example] > iframe').forEach(iframe => {\n const document = iframe.contentDocument ?? iframe.contentWindow?.document\n\n if (!document) {\n return\n }\n\n const action = () => {\n const changeHeight = () => {\n iframe.style.height = `${document.body.scrollHeight}px`\n }\n\n changeHeight()\n\n const observer = new MutationObserver(changeHeight)\n\n observer.observe(document.body, {\n attributes: true,\n childList: true,\n subtree: true,\n })\n }\n\n if (document.readyState === 'complete') {\n action()\n } else {\n iframe.addEventListener('load', action)\n }\n })\n}\n","function createSidebar(sidebar: HTMLElement) {\n const links: Record<string, HTMLLinkElement> = {}\n const observer = new IntersectionObserver(\n entries => {\n const activeEntries = entries.filter(entry => entry.isIntersecting)\n\n if (activeEntries.length <= 0) {\n return\n }\n\n Object.keys(links).forEach(id => {\n links[id].classList.remove('active')\n })\n\n const activeLink = links[activeEntries[0].target.id]\n\n activeLink.classList.add('active')\n if (activeLink?.parentElement?.parentElement?.parentElement instanceof HTMLLIElement) {\n activeLink.parentElement.parentElement.parentElement\n .querySelector('a')\n ?.classList.add('active')\n }\n },\n {\n root: null,\n rootMargin: '0px 0px -90% 0px',\n threshold: 0.5,\n },\n )\n\n sidebar.querySelectorAll<HTMLLinkElement>('a[href^=\"#\"]').forEach(link => {\n const id = link.href.split('#')[1]\n const target = document.getElementById(id)\n\n if (target) {\n observer.observe(target)\n links[id] = link\n }\n })\n}\n\nexport function initSidebar() {\n document.querySelectorAll('[data-sidebar]').forEach(sidebar => {\n createSidebar(sidebar as HTMLElement)\n })\n}\n","import { ready } from './src/base'\nimport { initExample } from './src/example'\nimport { initSidebar } from './src/sidebar'\n\nready(() => {\n initExample()\n initSidebar()\n})\n"],"names":[],"mappings":"AAAM,SAAU,KAAK,CAAC,QAAoB,EAAA;AACxC,IAAA,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE;AACrC,QAAA,QAAQ,EAAE,CAAA;KACX;SAAM;AACL,QAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;KACxD;AACH;;SCNgB,WAAW,GAAA;IACzB,QAAQ,CAAC,gBAAgB,CAAoB,yBAAyB,CAAC,CAAC,OAAO,CAAC,MAAM,IAAG;;AACvF,QAAA,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,eAAe,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAA;QAEzE,IAAI,CAAC,QAAQ,EAAE;YACb,OAAM;SACP;QAED,MAAM,MAAM,GAAG,MAAK;YAClB,MAAM,YAAY,GAAG,MAAK;AACxB,gBAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAA,EAAA,CAAI,CAAA;AACzD,aAAC,CAAA;AAED,YAAA,YAAY,EAAE,CAAA;AAEd,YAAA,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAA;AAEnD,YAAA,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC9B,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,OAAO,EAAE,IAAI;AACd,aAAA,CAAC,CAAA;AACJ,SAAC,CAAA;AAED,QAAA,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;AACtC,YAAA,MAAM,EAAE,CAAA;SACT;aAAM;AACL,YAAA,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SACxC;AACH,KAAC,CAAC,CAAA;AACJ;;AC9BA,SAAS,aAAa,CAAC,OAAoB,EAAA;IACzC,MAAM,KAAK,GAAoC,EAAE,CAAA;AACjD,IAAA,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,OAAO,IAAG;;AACR,QAAA,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAEnE,QAAA,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAC7B,OAAM;SACP;QAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,IAAG;YAC9B,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;AACtC,SAAC,CAAC,CAAA;AAEF,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAEpD,QAAA,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AAClC,QAAA,IAAI,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,UAAU,KAAA,IAAA,IAAV,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,aAAa,0CAAE,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,aAAY,aAAa,EAAE;AACpF,YAAA,CAAA,EAAA,GAAA,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa;iBACjD,aAAa,CAAC,GAAG,CAAC,MACjB,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;SAC5B;AACH,KAAC,EACD;AACE,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,SAAS,EAAE,GAAG;AACf,KAAA,CACF,CAAA;IAED,OAAO,CAAC,gBAAgB,CAAkB,cAAc,CAAC,CAAC,OAAO,CAAC,IAAI,IAAG;AACvE,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;QAE1C,IAAI,MAAM,EAAE;AACV,YAAA,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AACxB,YAAA,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;SACjB;AACH,KAAC,CAAC,CAAA;AACJ,CAAC;SAEe,WAAW,GAAA;IACzB,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,OAAO,IAAG;QAC5D,aAAa,CAAC,OAAsB,CAAC,CAAA;AACvC,KAAC,CAAC,CAAA;AACJ;;ACzCA,KAAK,CAAC,MAAK;AACT,IAAA,WAAW,EAAE,CAAA;AACb,IAAA,WAAW,EAAE,CAAA;AACf,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare class HTMLRendererError extends Error {
2
+ constructor(message: string);
3
+ }
@@ -0,0 +1,13 @@
1
+ export declare class HTMLRendererSyntaxError extends SyntaxError {
2
+ code: string;
3
+ line: number;
4
+ column: number;
5
+ source: string;
6
+ constructor({ message, code, column, line, source, }: {
7
+ message: string;
8
+ code: string;
9
+ column: number;
10
+ line: number;
11
+ source: string;
12
+ });
13
+ }
@@ -0,0 +1,3 @@
1
+ export declare class ParserError extends Error {
2
+ constructor(message: string);
3
+ }
@@ -0,0 +1,3 @@
1
+ export declare class TagNodeError extends Error {
2
+ constructor(message: string);
3
+ }
@@ -0,0 +1,4 @@
1
+ export * from './HtmlRendererError';
2
+ export * from './HtmlRendererSyntaxError';
3
+ export * from './ParserError';
4
+ export * from './TagNodeError';