@obvi/blueprint 1.0.9

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.
@@ -0,0 +1,406 @@
1
+ /* =====================================================================
2
+ blueprint-code.css — a monochrome syntax-highlighting theme
3
+ ---------------------------------------------------------------------
4
+ A portable, build-step-free CSS theme for the Blueprint design system.
5
+ Code is TEXT, so it reads in the same neutral ink as the rest of the
6
+ document — blue is reserved for illustrations. It styles Prism's stable
7
+ token classes (.token.*) using ONLY a neutral grayscale ramp. Tokens are
8
+ differentiated by LUMINANCE, WEIGHT, and ITALIC — never by hue.
9
+
10
+ Drop-in contract (mirrors blueprint.css):
11
+ • One CSS file, no build step. Load Prism (runtime highlighter) +
12
+ this theme; token colors are pure CSS.
13
+ • Composes with blueprint.css: inherits --bp-mono (then legacy --mono)
14
+ / --text / surface tokens when present, and falls back to
15
+ self-contained values so this file is also legible stand-alone.
16
+ • Theme-aware: light by default, dark via [data-obvious-theme="dark"].
17
+ • Zero specificity: every selector is wrapped in :where(), so the
18
+ theme never fights authored component classes (the same
19
+ specificity contract blueprint.css commits to).
20
+ • Graceful degradation: only ADDS color/weight on top of the
21
+ classless base's pre/code styling. With JS absent (no .token
22
+ spans, no language- class) code still renders as legible mono.
23
+
24
+ Token → role mapping (see README for the full table):
25
+ comment faint blue, italic, de-emphasized — reads last
26
+ punctuation muted blue-grey — structural, recedes
27
+ operator muted, slightly stronger than punctuation
28
+ variable base code ink — the neutral baseline
29
+ string mid blue — calm, distinct from identifiers
30
+ number bright chromatic blue stop — literals pop
31
+ constant bright chromatic blue (shared with number)
32
+ function primary ink, medium weight — call sites read
33
+ class-name chromatic blue, medium weight — types read
34
+ keyword strongest ink, heaviest weight — reads FIRST
35
+ tag/attr markup structure, keyword-adjacent weights
36
+ deleted/inserted diff rows tinted by blue luminance + affordance
37
+ ===================================================================== */
38
+
39
+ /* Geist Mono (code face), mirroring blueprint.css. Kept here so this theme
40
+ stays a self-contained drop-in (the standalone demo loads only this
41
+ file). When composed with blueprint.css the identical @import is deduped
42
+ by the browser. @import must precede all rules below. */
43
+ @import url("https://fonts.googleapis.com/css2?family=Geist+Mono:ital,wght@0,100..900;1,100..900&display=swap");
44
+
45
+ /* ---------------------------------------------------------------------
46
+ 1. Syntax token ramp
47
+ ---------------------------------------------------------------------
48
+ A dedicated set of NEUTRAL grayscale syntax stops (chroma 0), tuned for
49
+ legibility on the code surface in each theme. All distinction comes from
50
+ LUMINANCE + WEIGHT + ITALIC — never from hue. Every token role clears
51
+ WCAG AA (≥ 4.5:1) against the surface in both themes.
52
+
53
+ Light theme: surface is near-white, so meaningful tokens are DARK gray;
54
+ importance increases by getting darker + heavier.
55
+ ------------------------------------------------------------------- */
56
+ :where(:root) {
57
+ /* code-block container */
58
+ --bpc-surface: oklch(0.975 0 0);
59
+ --bpc-surface-2: oklch(0.95 0 0); /* gutter / header strip */
60
+ --bpc-border: oklch(0.9 0 0);
61
+ --bpc-line-no: oklch(0.6 0 0); /* line numbers, recede */
62
+ --bpc-selection: oklch(0.85 0 0);
63
+
64
+ /* syntax stops — ordered by reading priority (darkest + heaviest = first) */
65
+ --bpc-keyword: oklch(0.32 0 0); /* strongest ink, heaviest */
66
+ --bpc-number: oklch(0.34 0 0); /* literals pop via darkness */
67
+ --bpc-class: oklch(0.36 0 0); /* types, medium weight */
68
+ --bpc-function: oklch(0.4 0 0); /* call sites, medium weight */
69
+ --bpc-base: oklch(0.4 0 0); /* identifiers / plain code */
70
+ --bpc-attr: oklch(0.42 0 0); /* markup attribute names */
71
+ --bpc-string: oklch(0.45 0 0); /* calm, distinct */
72
+ --bpc-operator: oklch(0.48 0 0); /* muted, > punctuation */
73
+ --bpc-punctuation: oklch(0.5 0 0); /* structural, recedes */
74
+ --bpc-comment: oklch(0.52 0 0); /* italic, reads last */
75
+
76
+ /* diff affordance tints (row backgrounds) */
77
+ --bpc-inserted-bg: oklch(0.94 0 0);
78
+ --bpc-inserted-ink: oklch(0.34 0 0);
79
+ --bpc-deleted-bg: oklch(0.975 0 0);
80
+ --bpc-deleted-ink: oklch(0.55 0 0);
81
+ }
82
+
83
+ /* Dark theme: surface is dark, so meaningful tokens are LIGHT gray;
84
+ importance increases by getting brighter + heavier. */
85
+ :where([data-obvious-theme="dark"]) {
86
+ --bpc-surface: oklch(0.21 0 0);
87
+ --bpc-surface-2: oklch(0.25 0 0);
88
+ --bpc-border: oklch(0.33 0 0);
89
+ --bpc-line-no: oklch(0.5 0 0);
90
+ --bpc-selection: oklch(0.4 0 0);
91
+
92
+ --bpc-keyword: oklch(0.95 0 0);
93
+ --bpc-number: oklch(0.9 0 0);
94
+ --bpc-class: oklch(0.87 0 0);
95
+ --bpc-function: oklch(0.84 0 0);
96
+ --bpc-base: oklch(0.84 0 0);
97
+ --bpc-attr: oklch(0.82 0 0);
98
+ --bpc-string: oklch(0.78 0 0);
99
+ --bpc-operator: oklch(0.74 0 0);
100
+ --bpc-punctuation: oklch(0.7 0 0);
101
+ --bpc-comment: oklch(0.68 0 0);
102
+
103
+ --bpc-inserted-bg: oklch(0.3 0 0);
104
+ --bpc-inserted-ink: oklch(0.9 0 0);
105
+ --bpc-deleted-bg: oklch(0.26 0 0);
106
+ --bpc-deleted-ink: oklch(0.62 0 0);
107
+ }
108
+
109
+ /* ---------------------------------------------------------------------
110
+ 2. Code-block container
111
+ ---------------------------------------------------------------------
112
+ Composes with the classless base's pre/code. Scoped to
113
+ pre[class*="language-"] / code[class*="language-"] so it only dresses
114
+ blocks meant for highlighting and never touches inline <code> or
115
+ un-hinted <pre>. Zero specificity via :where().
116
+ ------------------------------------------------------------------- */
117
+ :where(pre[class*="language-"]) {
118
+ position: relative; /* anchor for the straight accent bar */
119
+ margin: 1.5em 0;
120
+ padding: 1rem 1.15rem;
121
+ overflow: auto; /* horizontal scroll on long lines stays inside block */
122
+ background: var(--bpc-surface);
123
+ color: var(--bpc-base);
124
+ border: 1px solid var(--bpc-border);
125
+ border-radius: var(--bp-radius-4, 4px);
126
+ font-family: var(
127
+ --bp-mono,
128
+ var(
129
+ --mono,
130
+ "Geist Mono",
131
+ ui-monospace,
132
+ "SF Mono",
133
+ Menlo,
134
+ Consolas,
135
+ monospace
136
+ )
137
+ );
138
+ font-size: var(--bp-text-code, 12.5px);
139
+ line-height: var(--bp-lh-code, 1.6);
140
+ tab-size: 2;
141
+ -moz-tab-size: 2;
142
+ text-align: left;
143
+ white-space: pre;
144
+ word-spacing: normal;
145
+ word-break: normal;
146
+ hyphens: none;
147
+ }
148
+
149
+ /* Left accent: a straight bar drawn as a pseudo-element so it never picks
150
+ up the container's corner radius (no curved ends like a border-left). */
151
+ :where(pre[class*="language-"])::before {
152
+ content: "";
153
+ position: absolute;
154
+ top: 0;
155
+ bottom: 0;
156
+ left: 0;
157
+ width: 4px;
158
+ background: var(--bp-ink, var(--ink, oklch(0.4 0 0)));
159
+ pointer-events: none;
160
+ }
161
+
162
+ :where(code[class*="language-"]) {
163
+ font-family: inherit;
164
+ font-size: inherit;
165
+ color: inherit;
166
+ background: none; /* override base .prose code chip inside blocks */
167
+ padding: 0;
168
+ white-space: inherit;
169
+ }
170
+
171
+ /* Inline <code class="language-xxx"> keeps the base's inline chip but
172
+ adopts blue token colors. */
173
+ :where(:not(pre) > code[class*="language-"]) {
174
+ padding: 0.12em 0.4em;
175
+ border-radius: var(--bp-radius-2, 2px);
176
+ background: var(--bpc-surface-2);
177
+ color: var(--bpc-base);
178
+ white-space: normal;
179
+ }
180
+
181
+ :where(pre[class*="language-"])::selection,
182
+ :where(pre[class*="language-"]) ::selection,
183
+ :where(code[class*="language-"])::selection,
184
+ :where(code[class*="language-"]) ::selection {
185
+ background: var(--bpc-selection);
186
+ }
187
+
188
+ /* ---------------------------------------------------------------------
189
+ 3. Token → color mapping (blue-only: luminance + weight + italic)
190
+ ------------------------------------------------------------------- */
191
+ :where(.token.comment),
192
+ :where(.token.prolog),
193
+ :where(.token.cdata) {
194
+ color: var(--bpc-comment);
195
+ font-style: italic;
196
+ }
197
+
198
+ :where(.token.doctype),
199
+ :where(.token.punctuation) {
200
+ color: var(--bpc-punctuation);
201
+ }
202
+
203
+ :where(.token.operator),
204
+ :where(.token.entity),
205
+ :where(.token.url),
206
+ :where(.token.atrule),
207
+ :where(.token.attr-value) {
208
+ color: var(--bpc-operator);
209
+ }
210
+
211
+ :where(.token.string),
212
+ :where(.token.char),
213
+ :where(.token.regex),
214
+ :where(.token.attr-value .token.string) {
215
+ color: var(--bpc-string);
216
+ }
217
+
218
+ :where(.token.number),
219
+ :where(.token.boolean),
220
+ :where(.token.constant),
221
+ :where(.token.symbol) {
222
+ color: var(--bpc-number);
223
+ }
224
+
225
+ :where(.token.property),
226
+ :where(.token.variable) {
227
+ color: var(--bpc-base);
228
+ }
229
+
230
+ :where(.token.function),
231
+ :where(.token.method),
232
+ :where(.token.function-variable) {
233
+ color: var(--bpc-function);
234
+ font-weight: 500;
235
+ }
236
+
237
+ :where(.token.class-name),
238
+ :where(.token.maybe-class-name),
239
+ :where(.token.namespace),
240
+ :where(.token.builtin) {
241
+ color: var(--bpc-class);
242
+ font-weight: 500;
243
+ }
244
+
245
+ :where(.token.keyword) {
246
+ color: var(--bpc-keyword);
247
+ font-weight: 600;
248
+ }
249
+
250
+ /* markup (HTML/XML) — structure reads via weight, still blue-only */
251
+ :where(.token.tag),
252
+ :where(.token.tag .token.punctuation) {
253
+ color: var(--bpc-keyword);
254
+ }
255
+ :where(.token.tag .token.tag) {
256
+ font-weight: 600;
257
+ }
258
+ :where(.token.attr-name) {
259
+ color: var(--bpc-attr);
260
+ }
261
+ :where(.token.selector) {
262
+ color: var(--bpc-class);
263
+ font-weight: 500;
264
+ }
265
+ :where(.token.important) {
266
+ color: var(--bpc-keyword);
267
+ font-weight: 600;
268
+ }
269
+
270
+ :where(.token.italic) {
271
+ font-style: italic;
272
+ }
273
+ :where(.token.bold) {
274
+ font-weight: 600;
275
+ }
276
+ :where(.token.namespace) {
277
+ opacity: 0.8;
278
+ }
279
+
280
+ /* ---------------------------------------------------------------------
281
+ 4. Diff blocks (language-diff)
282
+ ---------------------------------------------------------------------
283
+ Blue-only: rows are differentiated by luminance/tint, not red/green.
284
+ The +/- gutter glyph carries the semantic, the tint reinforces it.
285
+ ------------------------------------------------------------------- */
286
+ :where(.token.inserted) {
287
+ color: var(--bpc-inserted-ink);
288
+ }
289
+ :where(.token.inserted-sign) {
290
+ background: var(--bpc-inserted-bg);
291
+ display: block;
292
+ width: 100%;
293
+ }
294
+ :where(.token.deleted) {
295
+ color: var(--bpc-deleted-ink);
296
+ text-decoration: none;
297
+ }
298
+ :where(.token.deleted-sign) {
299
+ background: var(--bpc-deleted-bg);
300
+ display: block;
301
+ width: 100%;
302
+ }
303
+ :where(.token.coord) {
304
+ color: var(--bpc-comment);
305
+ font-style: italic;
306
+ }
307
+
308
+ /* ---------------------------------------------------------------------
309
+ 5. Line-numbers plugin (optional affordance)
310
+ ------------------------------------------------------------------- */
311
+ :where(pre[class*="language-"].line-numbers) {
312
+ position: relative;
313
+ padding-left: 3.2em;
314
+ counter-reset: linenumber;
315
+ }
316
+ :where(pre[class*="language-"].line-numbers > code) {
317
+ position: relative;
318
+ }
319
+ :where(.line-numbers .line-numbers-rows) {
320
+ position: absolute;
321
+ top: 0;
322
+ font-size: 100%;
323
+ left: -3.2em;
324
+ width: 2.6em;
325
+ letter-spacing: -1px;
326
+ border-right: 1px solid var(--bpc-border);
327
+ user-select: none;
328
+ }
329
+ :where(.line-numbers-rows > span) {
330
+ display: block;
331
+ counter-increment: linenumber;
332
+ }
333
+ :where(.line-numbers-rows > span)::before {
334
+ content: counter(linenumber);
335
+ color: var(--bpc-line-no);
336
+ display: block;
337
+ padding-right: 0.8em;
338
+ text-align: right;
339
+ }
340
+
341
+ /* ---------------------------------------------------------------------
342
+ 6. Filename / caption affordance
343
+ ---------------------------------------------------------------------
344
+ When a code block is wrapped in <figure class="bpc-code"> with a
345
+ <figcaption>, the caption renders as a monospace filename strip atop
346
+ the block. Purely additive — no JS, degrades to a plain caption.
347
+ ------------------------------------------------------------------- */
348
+ :where(figure.bpc-code) {
349
+ margin: 1.5em 0;
350
+ }
351
+ :where(figure.bpc-code > figcaption) {
352
+ font-family: var(
353
+ --bp-mono,
354
+ var(--mono, "Geist Mono", ui-monospace, Menlo, Consolas, monospace)
355
+ );
356
+ font-size: var(--bp-label-lg, 11px);
357
+ letter-spacing: 0.08em;
358
+ text-transform: none;
359
+ color: var(--bp-text-secondary, var(--text-secondary, oklch(0.5 0 0)));
360
+ background: var(--bpc-surface-2);
361
+ border: 1px solid var(--bpc-border);
362
+ border-bottom: none;
363
+ border-radius: var(--bp-radius-4, 4px) var(--bp-radius-4, 4px) 0 0;
364
+ padding: 0.45rem 0.8rem;
365
+ }
366
+ :where(figure.bpc-code > figcaption + pre[class*="language-"]),
367
+ :where(figure.bpc-code > pre[class*="language-"]) {
368
+ margin: 0;
369
+ border-radius: 0 0 var(--bp-radius-4, 4px) var(--bp-radius-4, 4px);
370
+ }
371
+
372
+ /* ---------------------------------------------------------------------
373
+ 7. Reusable source disclosure
374
+ ---------------------------------------------------------------------
375
+ The structural .bp-source component lives in blueprint.css. These
376
+ companion overrides make a highlighted block sit flush beneath the
377
+ toolbar even though the general highlighted-block treatment has margin
378
+ and rounded corners. Copy behavior lives in blueprint-code.js.
379
+ ------------------------------------------------------------------- */
380
+ :where(.bp-source > pre[class*="language-"]) {
381
+ max-height: 360px;
382
+ margin: 0;
383
+ border: 0;
384
+ border-top: 1px solid var(--bpc-border);
385
+ border-radius: var(--bp-radius-0, 0);
386
+ }
387
+ :where(.bp-source > pre[class*="language-"])::before {
388
+ display: none; /* flush block, no accent bar */
389
+ }
390
+
391
+ /* ---------------------------------------------------------------------
392
+ 8. Code citation tooltip (<bp-cite>)
393
+ ---------------------------------------------------------------------
394
+ The card shell + trigger live in blueprint.css. These overrides dress
395
+ the highlighted code block flush inside the popover card: no outer
396
+ margin/border, rounded only on the lower corners under the header.
397
+ ------------------------------------------------------------------- */
398
+ :where(.bp-cite-pop pre[class*="language-"]) {
399
+ max-height: 320px;
400
+ margin: 0;
401
+ border: 0;
402
+ border-radius: 0 0 var(--bp-radius-6, 6px) var(--bp-radius-6, 6px);
403
+ }
404
+ :where(.bp-cite-pop pre[class*="language-"])::before {
405
+ display: none; /* flush inside popover, no accent bar */
406
+ }
@@ -0,0 +1,19 @@
1
+ var we=Object.create;var Q=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var Ee=Object.getOwnPropertyNames;var xe=Object.getPrototypeOf,Fe=Object.prototype.hasOwnProperty;var F=(n,e)=>()=>{try{return e||n((e={exports:{}}).exports,e),e.exports}catch(o){throw e=0,o}};var ke=(n,e,o,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Ee(e))!Fe.call(n,a)&&a!==o&&Q(n,a,{get:()=>e[a],enumerable:!(c=Ae(e,a))||c.enumerable});return n};var k=(n,e,o)=>(o=n!=null?we(xe(n)):{},ke(e||!n||!n.__esModule?Q(o,"default",{value:n,enumerable:!0}):o,n));var te=F((Ie,M)=>{var Pe=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};var ee=(function(n){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,o=0,c={},a={manual:n.Prism&&n.Prism.manual,disableWorkerMessageHandler:n.Prism&&n.Prism.disableWorkerMessageHandler,util:{encode:function r(t){return t instanceof m?new m(t.type,r(t.content),t.alias):Array.isArray(t)?t.map(r):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(r){return Object.prototype.toString.call(r).slice(8,-1)},objId:function(r){return r.__id||Object.defineProperty(r,"__id",{value:++o}),r.__id},clone:function r(t,i){i=i||{};var s,l;switch(a.util.type(t)){case"Object":if(l=a.util.objId(t),i[l])return i[l];s={},i[l]=s;for(var d in t)t.hasOwnProperty(d)&&(s[d]=r(t[d],i));return s;case"Array":return l=a.util.objId(t),i[l]?i[l]:(s=[],i[l]=s,t.forEach(function(v,p){s[p]=r(v,i)}),s);default:return t}},getLanguage:function(r){for(;r;){var t=e.exec(r.className);if(t)return t[1].toLowerCase();r=r.parentElement}return"none"},setLanguage:function(r,t){r.className=r.className.replace(RegExp(e,"gi"),""),r.classList.add("language-"+t)},currentScript:function(){if(typeof document>"u")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT")return document.currentScript;try{throw new Error}catch(s){var r=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(s.stack)||[])[1];if(r){var t=document.getElementsByTagName("script");for(var i in t)if(t[i].src==r)return t[i]}return null}},isActive:function(r,t,i){for(var s="no-"+t;r;){var l=r.classList;if(l.contains(t))return!0;if(l.contains(s))return!1;r=r.parentElement}return!!i}},languages:{plain:c,plaintext:c,text:c,txt:c,extend:function(r,t){var i=a.util.clone(a.languages[r]);for(var s in t)i[s]=t[s];return i},insertBefore:function(r,t,i,s){s=s||a.languages;var l=s[r],d={};for(var v in l)if(l.hasOwnProperty(v)){if(v==t)for(var p in i)i.hasOwnProperty(p)&&(d[p]=i[p]);i.hasOwnProperty(v)||(d[v]=l[v])}var w=s[r];return s[r]=d,a.languages.DFS(a.languages,function(A,T){T===w&&A!=r&&(this[A]=d)}),d},DFS:function r(t,i,s,l){l=l||{};var d=a.util.objId;for(var v in t)if(t.hasOwnProperty(v)){i.call(t,v,t[v],s||v);var p=t[v],w=a.util.type(p);w==="Object"&&!l[d(p)]?(l[d(p)]=!0,r(p,i,null,l)):w==="Array"&&!l[d(p)]&&(l[d(p)]=!0,r(p,i,v,l))}}},plugins:{},highlightAll:function(r,t){a.highlightAllUnder(document,r,t)},highlightAllUnder:function(r,t,i){var s={callback:i,container:r,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};a.hooks.run("before-highlightall",s),s.elements=Array.prototype.slice.apply(s.container.querySelectorAll(s.selector)),a.hooks.run("before-all-elements-highlight",s);for(var l=0,d;d=s.elements[l++];)a.highlightElement(d,t===!0,s.callback)},highlightElement:function(r,t,i){var s=a.util.getLanguage(r),l=a.languages[s];a.util.setLanguage(r,s);var d=r.parentElement;d&&d.nodeName.toLowerCase()==="pre"&&a.util.setLanguage(d,s);var v=r.textContent,p={element:r,language:s,grammar:l,code:v};function w(T){p.highlightedCode=T,a.hooks.run("before-insert",p),p.element.innerHTML=p.highlightedCode,a.hooks.run("after-highlight",p),a.hooks.run("complete",p),i&&i.call(p.element)}if(a.hooks.run("before-sanity-check",p),d=p.element.parentElement,d&&d.nodeName.toLowerCase()==="pre"&&!d.hasAttribute("tabindex")&&d.setAttribute("tabindex","0"),!p.code){a.hooks.run("complete",p),i&&i.call(p.element);return}if(a.hooks.run("before-highlight",p),!p.grammar){w(a.util.encode(p.code));return}if(t&&n.Worker){var A=new Worker(a.filename);A.onmessage=function(T){w(T.data)},A.postMessage(JSON.stringify({language:p.language,code:p.code,immediateClose:!0}))}else w(a.highlight(p.code,p.grammar,p.language))},highlight:function(r,t,i){var s={code:r,grammar:t,language:i};if(a.hooks.run("before-tokenize",s),!s.grammar)throw new Error('The language "'+s.language+'" has no grammar.');return s.tokens=a.tokenize(s.code,s.grammar),a.hooks.run("after-tokenize",s),m.stringify(a.util.encode(s.tokens),s.language)},tokenize:function(r,t){var i=t.rest;if(i){for(var s in i)t[s]=i[s];delete t.rest}var l=new g;return f(l,l.head,r),h(r,l,t,l.head,0),b(l)},hooks:{all:{},add:function(r,t){var i=a.hooks.all;i[r]=i[r]||[],i[r].push(t)},run:function(r,t){var i=a.hooks.all[r];if(!(!i||!i.length))for(var s=0,l;l=i[s++];)l(t)}},Token:m};n.Prism=a;function m(r,t,i,s){this.type=r,this.content=t,this.alias=i,this.length=(s||"").length|0}m.stringify=function r(t,i){if(typeof t=="string")return t;if(Array.isArray(t)){var s="";return t.forEach(function(w){s+=r(w,i)}),s}var l={type:t.type,content:r(t.content,i),tag:"span",classes:["token",t.type],attributes:{},language:i},d=t.alias;d&&(Array.isArray(d)?Array.prototype.push.apply(l.classes,d):l.classes.push(d)),a.hooks.run("wrap",l);var v="";for(var p in l.attributes)v+=" "+p+'="'+(l.attributes[p]||"").replace(/"/g,"&quot;")+'"';return"<"+l.tag+' class="'+l.classes.join(" ")+'"'+v+">"+l.content+"</"+l.tag+">"};function u(r,t,i,s){r.lastIndex=t;var l=r.exec(i);if(l&&s&&l[1]){var d=l[1].length;l.index+=d,l[0]=l[0].slice(d)}return l}function h(r,t,i,s,l,d){for(var v in i)if(!(!i.hasOwnProperty(v)||!i[v])){var p=i[v];p=Array.isArray(p)?p:[p];for(var w=0;w<p.length;++w){if(d&&d.cause==v+","+w)return;var A=p[w],T=A.inside,Y=!!A.lookbehind,K=!!A.greedy,be=A.alias;if(K&&!A.pattern.global){var ve=A.pattern.toString().match(/[imsuy]*$/)[0];A.pattern=RegExp(A.pattern.source,ve+"g")}for(var V=A.pattern||A,E=s.next,P=l;E!==t.tail&&!(d&&P>=d.reach);P+=E.value.length,E=E.next){var $=E.value;if(t.length>r.length)return;if(!($ instanceof m)){var O=1,x;if(K){if(x=u(V,P,r,Y),!x||x.index>=r.length)break;var R=x.index,ye=x.index+x[0].length,C=P;for(C+=E.value.length;R>=C;)E=E.next,C+=E.value.length;if(C-=E.value.length,P=C,E.value instanceof m)continue;for(var I=E;I!==t.tail&&(C<ye||typeof I.value=="string");I=I.next)O++,C+=I.value.length;O--,$=r.slice(P,C),x.index-=P}else if(x=u(V,0,$,Y),!x)continue;var R=x.index,D=x[0],G=$.slice(0,R),J=$.slice(R+D.length),B=P+$.length;d&&B>d.reach&&(d.reach=B);var H=E.prev;G&&(H=f(t,H,G),P+=G.length),y(t,H,O);var Se=new m(v,T?a.tokenize(D,T):D,be,D);if(E=f(t,H,Se),J&&f(t,E,J),O>1){var j={cause:v+","+w,reach:B};h(r,t,i,E.prev,P,j),d&&j.reach>d.reach&&(d.reach=j.reach)}}}}}}function g(){var r={value:null,prev:null,next:null},t={value:null,prev:r,next:null};r.next=t,this.head=r,this.tail=t,this.length=0}function f(r,t,i){var s=t.next,l={value:i,prev:t,next:s};return t.next=l,s.prev=l,r.length++,l}function y(r,t,i){for(var s=t.next,l=0;l<i&&s!==r.tail;l++)s=s.next;t.next=s,s.prev=t,r.length-=l}function b(r){for(var t=[],i=r.head.next;i!==r.tail;)t.push(i.value),i=i.next;return t}if(!n.document)return n.addEventListener&&(a.disableWorkerMessageHandler||n.addEventListener("message",function(r){var t=JSON.parse(r.data),i=t.language,s=t.code,l=t.immediateClose;n.postMessage(a.highlight(s,a.languages[i],i)),l&&n.close()},!1)),a;var S=a.util.currentScript();S&&(a.filename=S.src,S.hasAttribute("data-manual")&&(a.manual=!0));function _(){a.manual||a.highlightAll()}if(!a.manual){var N=document.readyState;N==="loading"||N==="interactive"&&S&&S.defer?document.addEventListener("DOMContentLoaded",_):window.requestAnimationFrame?window.requestAnimationFrame(_):window.setTimeout(_,16)}return a})(Pe);typeof M<"u"&&M.exports&&(M.exports=ee);typeof global<"u"&&(global.Prism=ee)});var ne=F(()=>{Prism.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]};Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity;Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup;Prism.hooks.add("wrap",function(n){n.type==="entity"&&(n.attributes.title=n.content.replace(/&amp;/,"&"))});Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,o){var c={};c["language-"+o]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[o]},c.cdata=/^<!\[CDATA\[|\]\]>$/i;var a={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:c}};a["language-"+o]={pattern:/[\s\S]+/,inside:Prism.languages[o]};var m={};m[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:a},Prism.languages.insertBefore("markup","cdata",m)}});Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(n,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+n+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}});Prism.languages.html=Prism.languages.markup;Prism.languages.mathml=Prism.languages.markup;Prism.languages.svg=Prism.languages.markup;Prism.languages.xml=Prism.languages.extend("markup",{});Prism.languages.ssml=Prism.languages.xml;Prism.languages.atom=Prism.languages.xml;Prism.languages.rss=Prism.languages.xml});var ae=F(()=>{(function(n){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;n.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+e.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},n.languages.css.atrule.inside.rest=n.languages.css;var o=n.languages.markup;o&&(o.tag.addInlined("style","css"),o.tag.addAttribute("style","css"))})(Prism)});var re=F(()=>{Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}});var ie=F(()=>{Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript"));Prism.languages.js=Prism.languages.javascript});var se=F(()=>{(function(n){n.languages.typescript=n.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),n.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete n.languages.typescript.parameter,delete n.languages.typescript["literal-property"];var e=n.languages.extend("typescript",{});delete e["class-name"],n.languages.typescript["class-name"].inside=e,n.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e}}}}),n.languages.ts=n.languages.typescript})(Prism)});var oe=F(()=>{Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}};Prism.languages.webmanifest=Prism.languages.json});var le=F(()=>{(function(n){var e="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",o={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},c={bash:o,environment:{pattern:RegExp("\\$"+e),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+e),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};n.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+e),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:c},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:o}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:c},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:c.entity}}],environment:{pattern:RegExp("\\$?"+e),alias:"constant"},variable:c.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},o.inside=n.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],m=c.variable[1].inside,u=0;u<a.length;u++)m[a[u]]=n.languages.bash[a[u]];n.languages.sh=n.languages.bash,n.languages.shell=n.languages.bash})(Prism)});var ue=F(()=>{Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/};Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python;Prism.languages.py=Prism.languages.python});var ce=F(()=>{(function(n){n.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var e={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(e).forEach(function(o){var c=e[o],a=[];/^\w+$/.test(o)||a.push(/\w+/.exec(o)[0]),o==="diff"&&a.push("bold"),n.languages.diff[o]={pattern:RegExp("^(?:["+c+`].*(?:\r
2
+ ?|
3
+ |(?![\\s\\S])))+`,"m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(o)[0]}}}}),Object.defineProperty(n.languages.diff,"PREFIXES",{value:e})})(Prism)});var de=F(()=>{(function(){if(typeof Prism>"u"||typeof document>"u")return;var n="line-numbers",e=/\n(?!$)/g,o=Prism.plugins.lineNumbers={getLine:function(u,h){if(!(u.tagName!=="PRE"||!u.classList.contains(n))){var g=u.querySelector(".line-numbers-rows");if(g){var f=parseInt(u.getAttribute("data-start"),10)||1,y=f+(g.children.length-1);h<f&&(h=f),h>y&&(h=y);var b=h-f;return g.children[b]}}},resize:function(u){c([u])},assumeViewportIndependence:!0};function c(u){if(u=u.filter(function(g){var f=a(g),y=f["white-space"];return y==="pre-wrap"||y==="pre-line"}),u.length!=0){var h=u.map(function(g){var f=g.querySelector("code"),y=g.querySelector(".line-numbers-rows");if(!(!f||!y)){var b=g.querySelector(".line-numbers-sizer"),S=f.textContent.split(e);b||(b=document.createElement("span"),b.className="line-numbers-sizer",f.appendChild(b)),b.innerHTML="0",b.style.display="block";var _=b.getBoundingClientRect().height;return b.innerHTML="",{element:g,lines:S,lineHeights:[],oneLinerHeight:_,sizer:b}}}).filter(Boolean);h.forEach(function(g){var f=g.sizer,y=g.lines,b=g.lineHeights,S=g.oneLinerHeight;b[y.length-1]=void 0,y.forEach(function(_,N){if(_&&_.length>1){var r=f.appendChild(document.createElement("span"));r.style.display="block",r.textContent=_}else b[N]=S})}),h.forEach(function(g){for(var f=g.sizer,y=g.lineHeights,b=0,S=0;S<y.length;S++)y[S]===void 0&&(y[S]=f.children[b++].getBoundingClientRect().height)}),h.forEach(function(g){var f=g.sizer,y=g.element.querySelector(".line-numbers-rows");f.style.display="none",f.innerHTML="",g.lineHeights.forEach(function(b,S){y.children[S].style.height=b+"px"})})}}function a(u){return u?window.getComputedStyle?getComputedStyle(u):u.currentStyle||null:null}var m=void 0;window.addEventListener("resize",function(){o.assumeViewportIndependence&&m===window.innerWidth||(m=window.innerWidth,c(Array.prototype.slice.call(document.querySelectorAll("pre."+n))))}),Prism.hooks.add("complete",function(u){if(u.code){var h=u.element,g=h.parentNode;if(!(!g||!/pre/i.test(g.nodeName))&&!h.querySelector(".line-numbers-rows")&&Prism.util.isActive(h,n)){h.classList.remove(n),g.classList.add(n);var f=u.code.match(e),y=f?f.length+1:1,b,S=new Array(y+1).join("<span></span>");b=document.createElement("span"),b.setAttribute("aria-hidden","true"),b.className="line-numbers-rows",b.innerHTML=S,g.hasAttribute("data-start")&&(g.style.counterReset="linenumber "+(parseInt(g.getAttribute("data-start"),10)-1)),u.element.appendChild(b),c([g]),Prism.hooks.run("line-numbers",u)}}}),Prism.hooks.add("line-numbers",function(u){u.plugins=u.plugins||{},u.plugins.lineNumbers=!0})})()});var z=k(te(),1);globalThis.Prism=z.default;z.default.manual=!0;await Promise.resolve().then(()=>k(ne(),1));await Promise.resolve().then(()=>k(ae(),1));await Promise.resolve().then(()=>k(re(),1));await Promise.resolve().then(()=>k(ie(),1));await Promise.resolve().then(()=>k(se(),1));await Promise.resolve().then(()=>k(oe(),1));await Promise.resolve().then(()=>k(le(),1));await Promise.resolve().then(()=>k(ue(),1));await Promise.resolve().then(()=>k(ce(),1));await Promise.resolve().then(()=>k(de(),1));var X="bp-source",ge=".bp-source",U=new WeakMap,he=Object.freeze({bash:{grammar:"bash",label:"Bash"},css:{grammar:"css",label:"CSS"},diff:{grammar:"diff",label:"Diff"},html:{grammar:"markup",label:"HTML"},javascript:{grammar:"javascript",label:"JavaScript"},js:{grammar:"javascript",label:"JavaScript"},json:{grammar:"json",label:"JSON"},markup:{grammar:"markup",label:"HTML"},py:{grammar:"python",label:"Python"},python:{grammar:"python",label:"Python"},sh:{grammar:"bash",label:"Bash"},shell:{grammar:"bash",label:"Bash"},ts:{grammar:"typescript",label:"TypeScript"},typescript:{grammar:"typescript",label:"TypeScript"},xml:{grammar:"markup",label:"XML"}});function W(n){let e=n.replaceAll(`\r
4
+ `,`
5
+ `).split(`
6
+ `);e[0]?.trim()===""&&e.shift(),e.at(-1)?.trim()===""&&e.pop();let o=u=>u.match(/^[\t ]*/)?.[0].length??0,c=e.length>1&&e[0].trim()!==""&&o(e[0])===0,a=e.filter((u,h)=>u.trim()&&!(c&&h===0)).map(o),m=a.length?Math.min(...a):0;return e.map((u,h)=>c&&h===0?u:u.slice(m)).join(`
7
+ `)}function me(n){let e=n.trim().toLowerCase();return he[e]??{grammar:"plain",label:e||"Plain text"}}function fe(n,e){let o=globalThis.Prism,c=o?.languages?.[e],a=c&&e!=="plain";return n.className=`language-${a?e:"none"}`,n.parentElement.className=n.className,n.parentElement.tabIndex=0,a?(n.innerHTML=o.highlight(n.textContent,c,e),!0):!1}var L=class extends HTMLElement{static observedAttributes=["language","open"];static languages=Object.freeze(Object.keys(he));#a;#t;#e;#n;#r=!1;connectedCallback(){this.#r||(this.#n=W(this.textContent??""),this.#o(),this.#r=!0),this.#i()}attributeChangedCallback(){this.#r&&this.#i()}get language(){return this.getAttribute("language")||"text"}set language(e){this.setAttribute("language",e)}get sourceText(){return this.#n??W(this.textContent??"")}#o(){let e=document.createElement("details"),o=document.createElement("summary"),c=document.createElement("span"),a=document.createElement("div"),m=document.createElement("span"),u=document.createElement("button"),h=document.createElement("pre"),g=document.createElement("code");e.className=ge.slice(1),c.className="bp-source-name",c.textContent=this.getAttribute("summary")||"Source",a.className="bp-source-toolbar",m.className="bp-source-language",u.className="bp-source-copy",u.type="button",u.dataset.bpCopy="",u.setAttribute("aria-live","polite"),u.textContent="Copy",g.textContent=this.#n,a.append(m,u),o.append(c,a),h.append(g),e.append(o,h),this.replaceChildren(e),this.#a=e,this.#t=m,this.#e=g}#i(){let e=me(this.language);this.#a.open=this.hasAttribute("open"),this.#t.textContent=e.label,this.#e.textContent=this.#n;let o=fe(this.#e,e.grammar);this.dataset.bpHighlightState=o?"ready":"plain"}};customElements.get(X)||customElements.define(X,L);var pe="bp-cite",_e=0,Z=class extends HTMLElement{static observedAttributes=["language","loc","code","for"];#a=!1;#t;#e;#n;#r;#o;#i="";#s=!1;#l;#u;connectedCallback(){this.#a||(this.#d(),this.#m(),this.#a=!0),this.#p()}attributeChangedCallback(){this.#a&&(this.#d(),this.#p())}#d(){let e=this.querySelector(":scope > template"),o=this.getAttribute("for")?this.ownerDocument.getElementById(this.getAttribute("for")):null,c=this.getAttribute("code");if(c==null&&o&&(c=o.sourceText??o.textContent),c==null&&e&&(c=e.content.textContent),this.#i=W(c??""),!this.#a){let a="";for(let m of this.childNodes)m.nodeName.toLowerCase()!=="template"&&(a+=m.textContent??"");this.dataset.bpLabel=a.trim()||this.getAttribute("loc")||"source"}}get sourceText(){return this.#i}#m(){let e=`bp-cite-${_e+=1}`,o=document.createElement("button");o.type="button",o.className="bp-cite-trigger",o.textContent=this.dataset.bpLabel,o.setAttribute("aria-describedby",e),o.setAttribute("aria-expanded","false");let c=document.createElement("span");c.className="bp-cite-icon",c.setAttribute("aria-hidden","true"),o.append(c);let a=document.createElement("div");a.className="bp-cite-pop",a.id=e,a.setAttribute("role","tooltip"),a.showPopover&&a.setAttribute("popover","manual");let m=document.createElement("div");m.className="bp-cite-head";let u=document.createElement("span");u.className="bp-cite-loc";let h=document.createElement("span");h.className="bp-cite-lang",m.append(u,h);let g=document.createElement("pre"),f=document.createElement("code");g.append(f),a.append(m,g),this.replaceChildren(o,a),this.#t=o,this.#e=a,this.#n=f,this.#r=u,this.#o=h,this.#f()}#p(){let e=me(this.getAttribute("language")||"text");this.#o.textContent=e.label,this.#r.textContent=this.getAttribute("loc")||e.label,this.#t&&(this.#t.firstChild.textContent=this.dataset.bpLabel),this.#n.textContent=this.#i,fe(this.#n,e.grammar)}#f(){let e=()=>{clearTimeout(this.#l),this.#g()},o=()=>{clearTimeout(this.#l),this.#l=setTimeout(()=>this.#c(),140)};this.#t.addEventListener("pointerenter",e),this.#t.addEventListener("pointerleave",o),this.#t.addEventListener("focus",e),this.#t.addEventListener("blur",o),this.#e.addEventListener("pointerenter",()=>clearTimeout(this.#l)),this.#e.addEventListener("pointerleave",o),this.#t.addEventListener("click",()=>{this.#s=!this.#s,this.#s?this.#g():this.#c(!0)}),this.#u=()=>{this.#e.matches(".bp-cite-pop:popover-open, .bp-cite-pop.is-open")&&this.#h()},window.addEventListener("scroll",this.#u,{passive:!0}),window.addEventListener("resize",this.#u,{passive:!0}),document.addEventListener("keydown",c=>{c.key==="Escape"&&this.#b()&&(this.#s=!1,this.#c(!0),this.#t.focus())})}#b(){return this.#e.matches(".bp-cite-pop:popover-open, .bp-cite-pop.is-open")}#g(){if(this.#e.showPopover)try{this.#e.matches(":popover-open")||this.#e.showPopover()}catch{this.#e.classList.add("is-open")}else this.#e.classList.add("is-open");this.#t.setAttribute("aria-expanded","true"),requestAnimationFrame(()=>this.#h())}#c(e=!1){if(!(this.#s&&!e)){if(this.#e.hidePopover&&this.#e.matches(":popover-open"))try{this.#e.hidePopover()}catch{}this.#e.classList.remove("is-open"),this.#t.setAttribute("aria-expanded","false")}}#h(){let e=this.#t.getBoundingClientRect(),o=this.#e.getBoundingClientRect(),c=10,a=10,m="top",u=e.top-o.height-a;u<c&&(u=e.bottom+a,m="bottom");let h=e.left+e.width/2-o.width/2;h=Math.max(c,Math.min(h,window.innerWidth-o.width-c)),this.#e.style.left=`${Math.round(h)}px`,this.#e.style.top=`${Math.round(u)}px`,this.#e.dataset.placement=m;let g=Math.max(14,Math.min(o.width-14,e.left+e.width/2-h));this.#e.style.setProperty("--bp-cite-caret",`${Math.round(g)}px`)}};customElements.get(pe)||customElements.define(pe,Z);function Te(n){let e=n.closest(X);return e instanceof L?e:n.querySelector("pre code")}async function Ce(n){if(!globalThis.isSecureContext||!navigator.clipboard?.writeText)throw new Error("The Clipboard API requires a secure context");await navigator.clipboard.writeText(n)}function q(n,e){let o=U.get(n);o&&clearTimeout(o),n.dataset.bpCopyState=e,n.textContent=e==="copied"?"Copied":"Copy failed",U.set(n,setTimeout(()=>{delete n.dataset.bpCopyState,n.textContent="Copy",U.delete(n)},1800))}document.addEventListener("click",async n=>{let e=n.target instanceof Element?n.target.closest("[data-bp-copy]"):null;if(!(e instanceof HTMLButtonElement))return;n.preventDefault();let o=e.closest(ge),c=o?Te(o):null;if(!c)return q(e,"error");let a=c instanceof L?c.sourceText:c.textContent;try{await Ce(a??""),q(e,"copied")}catch{q(e,"error")}});z.default.highlightAll();
8
+ /*! Bundled license information:
9
+
10
+ prismjs/components/prism-core.js:
11
+ (**
12
+ * Prism: Lightweight, robust, elegant syntax highlighting
13
+ *
14
+ * @license MIT <https://opensource.org/licenses/MIT>
15
+ * @author Lea Verou <https://lea.verou.me>
16
+ * @namespace
17
+ * @public
18
+ *)
19
+ */
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@obvi/blueprint",
3
+ "version": "1.0.9",
4
+ "description": "A classless-first CSS design system for beautiful technical blueprint documents.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/FlatFilers/blueprint-framework.git"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/FlatFilers/blueprint-framework/issues"
13
+ },
14
+ "homepage": "https://github.com/FlatFilers/blueprint-framework#readme",
15
+ "files": [
16
+ "dist",
17
+ "LICENSE",
18
+ "README.md",
19
+ "THIRD_PARTY_NOTICES.md"
20
+ ],
21
+ "main": "./dist/blueprint.css",
22
+ "style": "./dist/blueprint.css",
23
+ "exports": {
24
+ ".": "./dist/blueprint.css",
25
+ "./blueprint.js": "./dist/blueprint.js",
26
+ "./blueprint.css": "./dist/blueprint.css",
27
+ "./styles.css": "./dist/blueprint.css",
28
+ "./code-highlighting.css": "./dist/code-highlighting/blueprint-code.css",
29
+ "./code-highlighting/blueprint-code.js": "./dist/code-highlighting/blueprint-code.js",
30
+ "./web-components": "./dist/code-highlighting/blueprint-code.js",
31
+ "./bp-source": "./dist/code-highlighting/blueprint-code.js"
32
+ },
33
+ "publishConfig": {
34
+ "registry": "https://registry.npmjs.org",
35
+ "access": "restricted"
36
+ },
37
+ "scripts": {
38
+ "build": "npm run build:code && node scripts/build-package.mjs",
39
+ "build:code": "node code-highlighting/scripts/build.mjs",
40
+ "render": "node harness/render.mjs",
41
+ "measure": "node harness/measure.mjs && node harness/behavior.mjs",
42
+ "verify:package": "node scripts/verify-package.mjs",
43
+ "verify": "npm run build && npm run measure && npm run verify:package",
44
+ "prepack": "npm run build"
45
+ },
46
+ "devDependencies": {
47
+ "@types/prismjs": "^1.26.5",
48
+ "esbuild": "^0.28.1",
49
+ "prismjs": "^1.30.0",
50
+ "puppeteer": "^22.0.0"
51
+ }
52
+ }