@krollins/blueprint 0.1.12 → 0.1.14

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 (109) hide show
  1. package/README.md +9 -3
  2. package/README.npm.md +9 -3
  3. package/dist/components/accordion.js +393 -0
  4. package/dist/components/accordion.js.map +1 -0
  5. package/dist/components/alert.js +213 -0
  6. package/dist/components/alert.js.map +1 -0
  7. package/dist/components/avatar.js +237 -0
  8. package/dist/components/avatar.js.map +1 -0
  9. package/dist/components/badge/badge.d.ts.map +1 -1
  10. package/dist/components/badge.js +144 -0
  11. package/dist/components/badge.js.map +1 -0
  12. package/dist/components/breadcrumb.js +481 -0
  13. package/dist/components/breadcrumb.js.map +1 -0
  14. package/dist/components/button.js +192 -0
  15. package/dist/components/button.js.map +1 -0
  16. package/dist/components/card.js +223 -0
  17. package/dist/components/card.js.map +1 -0
  18. package/dist/components/checkbox.js +336 -0
  19. package/dist/components/checkbox.js.map +1 -0
  20. package/dist/components/code-block/code-block.d.ts +143 -0
  21. package/dist/components/code-block/code-block.d.ts.map +1 -0
  22. package/dist/components/code-block/code-block.style.d.ts +2 -0
  23. package/dist/components/code-block/code-block.style.d.ts.map +1 -0
  24. package/dist/components/code-block.js +587 -0
  25. package/dist/components/code-block.js.map +1 -0
  26. package/dist/components/color-picker/color-picker.d.ts.map +1 -1
  27. package/dist/components/color-picker.js +1660 -0
  28. package/dist/components/color-picker.js.map +1 -0
  29. package/dist/components/combobox.js +595 -0
  30. package/dist/components/combobox.js.map +1 -0
  31. package/dist/components/date-picker.js +726 -0
  32. package/dist/components/date-picker.js.map +1 -0
  33. package/dist/components/divider.js +214 -0
  34. package/dist/components/divider.js.map +1 -0
  35. package/dist/components/drawer.js +568 -0
  36. package/dist/components/drawer.js.map +1 -0
  37. package/dist/components/dropdown.js +377 -0
  38. package/dist/components/dropdown.js.map +1 -0
  39. package/dist/components/file-upload.js +669 -0
  40. package/dist/components/file-upload.js.map +1 -0
  41. package/dist/components/heading.js +161 -0
  42. package/dist/components/heading.js.map +1 -0
  43. package/dist/components/icon.js +599 -0
  44. package/dist/components/icon.js.map +1 -0
  45. package/dist/components/index.d.ts +3 -0
  46. package/dist/components/index.d.ts.map +1 -1
  47. package/dist/components/input.js +363 -0
  48. package/dist/components/input.js.map +1 -0
  49. package/dist/components/link.js +178 -0
  50. package/dist/components/link.js.map +1 -0
  51. package/dist/components/menu.js +331 -0
  52. package/dist/components/menu.js.map +1 -0
  53. package/dist/components/modal.js +317 -0
  54. package/dist/components/modal.js.map +1 -0
  55. package/dist/components/multi-select.js +642 -0
  56. package/dist/components/multi-select.js.map +1 -0
  57. package/dist/components/notification.js +429 -0
  58. package/dist/components/notification.js.map +1 -0
  59. package/dist/components/number-input.js +556 -0
  60. package/dist/components/number-input.js.map +1 -0
  61. package/dist/components/pagination.js +320 -0
  62. package/dist/components/pagination.js.map +1 -0
  63. package/dist/components/popover.js +597 -0
  64. package/dist/components/popover.js.map +1 -0
  65. package/dist/components/progress.js +219 -0
  66. package/dist/components/progress.js.map +1 -0
  67. package/dist/components/radio.js +321 -0
  68. package/dist/components/radio.js.map +1 -0
  69. package/dist/components/select.js +498 -0
  70. package/dist/components/select.js.map +1 -0
  71. package/dist/components/skeleton.js +240 -0
  72. package/dist/components/skeleton.js.map +1 -0
  73. package/dist/components/slider.js +9 -0
  74. package/dist/components/slider.js.map +1 -0
  75. package/dist/components/spinner.js +133 -0
  76. package/dist/components/spinner.js.map +1 -0
  77. package/dist/components/stepper.js +812 -0
  78. package/dist/components/stepper.js.map +1 -0
  79. package/dist/components/switch.js +379 -0
  80. package/dist/components/switch.js.map +1 -0
  81. package/dist/components/table.js +642 -0
  82. package/dist/components/table.js.map +1 -0
  83. package/dist/components/tabs.js +547 -0
  84. package/dist/components/tabs.js.map +1 -0
  85. package/dist/components/tag/tag.d.ts.map +1 -1
  86. package/dist/components/tag.js +291 -0
  87. package/dist/components/tag.js.map +1 -0
  88. package/dist/components/text.js +278 -0
  89. package/dist/components/text.js.map +1 -0
  90. package/dist/components/textarea.js +380 -0
  91. package/dist/components/textarea.js.map +1 -0
  92. package/dist/components/time-picker.js +457 -0
  93. package/dist/components/time-picker.js.map +1 -0
  94. package/dist/components/tooltip.js +239 -0
  95. package/dist/components/tooltip.js.map +1 -0
  96. package/dist/components/tree.js +582 -0
  97. package/dist/components/tree.js.map +1 -0
  98. package/dist/index.js +96 -17799
  99. package/dist/index.js.map +1 -1
  100. package/dist/shared/boolean-converter-XDGfS9LC.js +12 -0
  101. package/dist/shared/boolean-converter-XDGfS9LC.js.map +1 -0
  102. package/dist/shared/debounce-BckY30Sf.js +23 -0
  103. package/dist/shared/debounce-BckY30Sf.js.map +1 -0
  104. package/dist/shared/memoize-DlOFy-92.js +16 -0
  105. package/dist/shared/memoize-DlOFy-92.js.map +1 -0
  106. package/dist/shared/slider-BNt5TITl.js +484 -0
  107. package/dist/shared/slider-BNt5TITl.js.map +1 -0
  108. package/dist/utilities/memoize.d.ts.map +1 -1
  109. package/package.json +44 -2
@@ -0,0 +1,587 @@
1
+ import { css as g, LitElement as u, html as r, nothing as c } from "lit";
2
+ import { property as a, state as s, customElement as y } from "lit/decorators.js";
3
+ import { ifDefined as v } from "lit/directives/if-defined.js";
4
+ import { unsafeHTML as b } from "lit/directives/unsafe-html.js";
5
+ const f = g`
6
+ /* Base styles */
7
+ :host {
8
+ display: block;
9
+ container-type: inline-size;
10
+ }
11
+
12
+ .code-block {
13
+ position: relative;
14
+ border: var(--bp-border-width) solid var(--bp-color-border);
15
+ border-radius: var(--bp-border-radius-lg);
16
+ overflow: hidden;
17
+ background-color: var(--bp-color-surface);
18
+ font-family: var(--bp-font-family-mono);
19
+ font-size: var(--bp-font-size-sm);
20
+ line-height: var(--bp-line-height-relaxed);
21
+ }
22
+
23
+ /* Header */
24
+ .code-block__header {
25
+ display: flex;
26
+ align-items: center;
27
+ justify-content: space-between;
28
+ gap: var(--bp-spacing-sm);
29
+ padding: var(--bp-spacing-xs) var(--bp-spacing-md);
30
+ background-color: var(--bp-color-surface-elevated);
31
+ border-bottom: var(--bp-border-width) solid var(--bp-color-border);
32
+ min-height: var(--bp-spacing-10);
33
+ }
34
+
35
+ .code-block__title {
36
+ font-family: var(--bp-font-family);
37
+ font-size: var(--bp-font-size-xs);
38
+ font-weight: var(--bp-font-weight-medium);
39
+ color: var(--bp-color-text-muted);
40
+ overflow: hidden;
41
+ text-overflow: ellipsis;
42
+ white-space: nowrap;
43
+ min-width: 0;
44
+ text-transform: uppercase;
45
+ letter-spacing: 0.05em; /* Intentional one-off for header label readability */
46
+ }
47
+
48
+ .code-block__controls {
49
+ display: flex;
50
+ align-items: center;
51
+ gap: var(--bp-spacing-xs);
52
+ flex-shrink: 0;
53
+ }
54
+
55
+ /* Copy button */
56
+ .code-block__copy {
57
+ display: inline-flex;
58
+ align-items: center;
59
+ justify-content: center;
60
+ background: none;
61
+ border: none;
62
+ padding: var(--bp-spacing-2xs);
63
+ border-radius: var(--bp-border-radius-md);
64
+ color: var(--bp-color-text-muted);
65
+ cursor: pointer;
66
+ transition:
67
+ color var(--bp-transition-fast),
68
+ background-color var(--bp-transition-fast);
69
+ }
70
+
71
+ .code-block__copy:hover {
72
+ color: var(--bp-color-text);
73
+ background-color: var(--bp-color-hover-overlay);
74
+ }
75
+
76
+ .code-block__copy:active {
77
+ background-color: var(--bp-color-active-overlay);
78
+ }
79
+
80
+ .code-block__copy:focus-visible {
81
+ outline: var(--bp-focus-ring);
82
+ outline-offset: var(--bp-focus-offset);
83
+ }
84
+
85
+ .code-block__copy--copied {
86
+ color: var(--bp-color-success);
87
+ }
88
+
89
+ .code-block__copy--error {
90
+ color: var(--bp-color-error);
91
+ }
92
+
93
+ .code-block__icon {
94
+ width: var(--bp-icon-size-sm);
95
+ height: var(--bp-icon-size-sm);
96
+ }
97
+
98
+ /* Floating copy button (when header is hidden) */
99
+ .code-block__floating-copy {
100
+ position: absolute;
101
+ top: var(--bp-spacing-xs);
102
+ right: var(--bp-spacing-xs);
103
+ z-index: var(--bp-z-base);
104
+ opacity: 0;
105
+ transition: opacity var(--bp-transition-fast);
106
+ }
107
+
108
+ .code-block__body:hover .code-block__floating-copy,
109
+ .code-block__body:focus-within .code-block__floating-copy {
110
+ opacity: 1;
111
+ }
112
+
113
+ /* Ensure floating copy button is reachable on touch devices (no hover) */
114
+ @media (hover: none) {
115
+ .code-block__floating-copy {
116
+ opacity: 0.7;
117
+ }
118
+ }
119
+
120
+ .code-block__floating-copy .code-block__copy {
121
+ background-color: var(--bp-color-surface-elevated);
122
+ border: var(--bp-border-width) solid var(--bp-color-border);
123
+ box-shadow: var(--bp-shadow-sm);
124
+ }
125
+
126
+ /* Body */
127
+ .code-block__body {
128
+ position: relative;
129
+ overflow: hidden;
130
+ }
131
+
132
+ .code-block__body--scroll {
133
+ overflow-x: auto;
134
+ }
135
+
136
+ /* Pre / Code */
137
+ .code-block__pre {
138
+ margin: 0;
139
+ padding: var(--bp-spacing-md);
140
+ overflow: visible;
141
+ }
142
+
143
+ .code-block__body--wrap .code-block__pre {
144
+ white-space: pre-wrap;
145
+ word-break: break-all;
146
+ overflow-wrap: break-word;
147
+ }
148
+
149
+ .code-block__body--scroll .code-block__pre {
150
+ white-space: pre;
151
+ overflow-x: auto;
152
+ }
153
+
154
+ .code-block__code {
155
+ font-family: inherit;
156
+ font-size: inherit;
157
+ line-height: inherit;
158
+ color: var(--bp-color-text);
159
+ }
160
+
161
+ /* Line numbers grid layout */
162
+ .code-block__lines {
163
+ display: grid;
164
+ grid-template-columns: auto 1fr;
165
+ }
166
+
167
+ .code-block__lines--no-gutter {
168
+ grid-template-columns: 1fr;
169
+ }
170
+
171
+ .code-block__line-number {
172
+ align-self: start;
173
+ text-align: right;
174
+ padding-right: var(--bp-spacing-md);
175
+ color: var(--bp-color-text-muted);
176
+ user-select: none;
177
+ min-width: var(--bp-spacing-8);
178
+ opacity: var(--bp-opacity-subtle);
179
+ }
180
+
181
+ .code-block__line {
182
+ display: block;
183
+ padding-left: var(--bp-spacing-2xs);
184
+ border-left: var(--bp-spacing-0-5) solid transparent;
185
+ }
186
+
187
+ .code-block__line--highlighted {
188
+ background-color: var(--bp-color-selected-bg);
189
+ border-left-color: var(--bp-color-primary);
190
+ }
191
+
192
+ /* Collapsed / expand */
193
+ /* max-height = (line count × line-height × font-size) + vertical padding */
194
+ .code-block__body--collapsed {
195
+ max-height: calc(
196
+ var(--_max-lines, 10) * var(--bp-line-height-relaxed) * 1em +
197
+ var(--bp-spacing-md) * 2
198
+ );
199
+ overflow: hidden;
200
+ }
201
+
202
+ .code-block__gradient {
203
+ position: absolute;
204
+ bottom: 0;
205
+ left: 0;
206
+ right: 0;
207
+ height: var(--bp-spacing-16);
208
+ background: linear-gradient(transparent, var(--bp-color-surface));
209
+ pointer-events: none;
210
+ }
211
+
212
+ .code-block__expand {
213
+ display: flex;
214
+ align-items: center;
215
+ justify-content: center;
216
+ width: 100%;
217
+ padding: var(--bp-spacing-xs) var(--bp-spacing-md);
218
+ background: none;
219
+ border: none;
220
+ border-top: var(--bp-border-width) solid var(--bp-color-border);
221
+ color: var(--bp-color-primary);
222
+ font-family: var(--bp-font-family);
223
+ font-size: var(--bp-font-size-xs);
224
+ font-weight: var(--bp-font-weight-medium);
225
+ cursor: pointer;
226
+ transition: background-color var(--bp-transition-fast);
227
+ }
228
+
229
+ .code-block__expand:hover {
230
+ background-color: var(--bp-color-hover-overlay);
231
+ }
232
+
233
+ .code-block__expand:active {
234
+ background-color: var(--bp-color-active-overlay);
235
+ }
236
+
237
+ .code-block__expand:focus-visible {
238
+ outline: var(--bp-focus-ring);
239
+ outline-offset: calc(-1 * var(--bp-focus-offset));
240
+ }
241
+
242
+ /* Visually hidden status for screen readers.
243
+ Uses --bp-spacing-0-5 (2px) instead of the typical 1px sr-only pattern
244
+ to stay consistent with design tokens throughout. */
245
+ .code-block__status {
246
+ position: absolute;
247
+ width: var(--bp-spacing-0-5);
248
+ height: var(--bp-spacing-0-5);
249
+ padding: var(--bp-spacing-0);
250
+ margin: calc(-1 * var(--bp-spacing-0-5));
251
+ overflow: hidden;
252
+ clip: rect(0, 0, 0, 0);
253
+ white-space: nowrap;
254
+ border: var(--bp-spacing-0);
255
+ }
256
+
257
+ /* Container queries for responsive behavior */
258
+ @container (max-width: 480px) {
259
+ /* stylelint-disable-line -- container queries cannot use var() */
260
+ .code-block__header {
261
+ flex-wrap: wrap;
262
+ }
263
+
264
+ .code-block__pre {
265
+ padding: var(--bp-spacing-sm);
266
+ font-size: var(--bp-font-size-xs);
267
+ }
268
+
269
+ .code-block__line-number {
270
+ min-width: var(--bp-spacing-6);
271
+ padding-right: var(--bp-spacing-sm);
272
+ }
273
+ }
274
+ `;
275
+ var m = Object.defineProperty, k = Object.getOwnPropertyDescriptor, i = (e, o, d, l) => {
276
+ for (var n = l > 1 ? void 0 : l ? k(o, d) : o, p = e.length - 1, h; p >= 0; p--)
277
+ (h = e[p]) && (n = (l ? h(o, d, n) : h(n)) || n);
278
+ return l && n && m(o, d, n), n;
279
+ };
280
+ const x = {
281
+ "&": "&",
282
+ "<": "&lt;",
283
+ ">": "&gt;",
284
+ '"': "&quot;",
285
+ "'": "&#039;"
286
+ };
287
+ function _(e) {
288
+ return e.replace(/[&<>"']/g, (o) => x[o] ?? o);
289
+ }
290
+ const w = {
291
+ highlight({ code: e }) {
292
+ return {
293
+ html: _(e),
294
+ isHighlighted: !1
295
+ };
296
+ }
297
+ };
298
+ let t = class extends u {
299
+ constructor() {
300
+ super(), this._copyState = "idle", this._expanded = !1, this._highlightedHtml = "", this._adapterContext = void 0, this._adapterInitialized = !1, this._lineCount = 0, this._highlightSet = /* @__PURE__ */ new Set(), this._highlightedLines = [], this._copyResetTimer = null, this._handleCopy = async () => {
301
+ let e;
302
+ try {
303
+ navigator.clipboard ? (await navigator.clipboard.writeText(this.code), e = !0) : e = this._fallbackCopy();
304
+ } catch {
305
+ e = this._fallbackCopy();
306
+ }
307
+ this._copyState = e ? "copied" : "error", this.dispatchEvent(
308
+ new CustomEvent("bp-copy", {
309
+ detail: { code: this.code, success: e },
310
+ bubbles: !0,
311
+ composed: !0
312
+ })
313
+ ), this._copyResetTimer && clearTimeout(this._copyResetTimer), this._copyResetTimer = setTimeout(() => {
314
+ this._copyState = "idle", this._copyResetTimer = null;
315
+ }, 2e3);
316
+ }, this.code = "", this.language = "text", this.title = "", this.showLineNumbers = !1, this.highlightLines = [], this.wrapLines = !0, this.showCopyButton = !0, this.maxLines = void 0, this.showHeader = !0, this.highlightAdapter = t.defaultAdapter;
317
+ }
318
+ disconnectedCallback() {
319
+ super.disconnectedCallback(), this._copyResetTimer && (clearTimeout(this._copyResetTimer), this._copyResetTimer = null);
320
+ }
321
+ willUpdate(e) {
322
+ super.willUpdate(e), e.has("highlightAdapter") && (this._adapterInitialized = !1, this._adapterContext = void 0, this._initializeAdapter()), e.has("code") && (this._lineCount = this.code.split(`
323
+ `).length), e.has("highlightLines") && (this._highlightSet = new Set(this.highlightLines)), (e.has("code") || e.has("language") || e.has("highlightAdapter")) && this._updateHighlightingSync();
324
+ }
325
+ connectedCallback() {
326
+ super.connectedCallback(), this._initializeAdapter();
327
+ }
328
+ async _initializeAdapter() {
329
+ const e = this.highlightAdapter;
330
+ if (!this._adapterInitialized && e.initialize) {
331
+ try {
332
+ const o = await e.initialize();
333
+ if (this.highlightAdapter !== e) return;
334
+ this._adapterContext = o;
335
+ } catch {
336
+ if (this.highlightAdapter !== e) return;
337
+ this._adapterContext = void 0;
338
+ }
339
+ this._adapterInitialized = !0, this._updateHighlightingSync(), this.requestUpdate();
340
+ }
341
+ }
342
+ _updateHighlightingSync() {
343
+ const e = this.highlightAdapter;
344
+ try {
345
+ const o = e.highlight({
346
+ code: this.code,
347
+ language: this.language,
348
+ context: this._adapterContext
349
+ });
350
+ this._highlightedHtml = o.html;
351
+ } catch {
352
+ this._highlightedHtml = _(this.code);
353
+ }
354
+ this._highlightedLines = this._highlightedHtml.split(`
355
+ `);
356
+ }
357
+ _fallbackCopy() {
358
+ try {
359
+ const e = document.createElement("textarea");
360
+ e.value = this.code, e.style.position = "fixed", e.style.left = "-9999px", e.style.top = "-9999px", document.body.appendChild(e), e.select();
361
+ const o = document.execCommand("copy");
362
+ return document.body.removeChild(e), o;
363
+ } catch {
364
+ return !1;
365
+ }
366
+ }
367
+ _toggleExpanded() {
368
+ this._expanded = !this._expanded;
369
+ }
370
+ get _shouldCollapse() {
371
+ return this.maxLines !== void 0 && this.maxLines > 0 && this._lineCount > this.maxLines;
372
+ }
373
+ get _isCollapsed() {
374
+ return this._shouldCollapse && !this._expanded;
375
+ }
376
+ get _headerLabel() {
377
+ return this.title || this.language;
378
+ }
379
+ _getCopyAriaLabel() {
380
+ return this._copyState === "copied" ? "Copied!" : this._copyState === "error" ? "Failed to copy" : "Copy code";
381
+ }
382
+ _renderCopyIcon() {
383
+ return this._copyState === "copied" ? r`
384
+ <slot name="copied-icon">
385
+ <svg
386
+ class="code-block__icon"
387
+ viewBox="0 0 24 24"
388
+ fill="none"
389
+ stroke="currentColor"
390
+ stroke-width="2"
391
+ stroke-linecap="round"
392
+ stroke-linejoin="round"
393
+ aria-hidden="true"
394
+ >
395
+ <polyline points="20 6 9 17 4 12"></polyline>
396
+ </svg>
397
+ </slot>
398
+ ` : r`
399
+ <slot name="copy-icon">
400
+ <svg
401
+ class="code-block__icon"
402
+ viewBox="0 0 24 24"
403
+ fill="none"
404
+ stroke="currentColor"
405
+ stroke-width="2"
406
+ stroke-linecap="round"
407
+ stroke-linejoin="round"
408
+ aria-hidden="true"
409
+ >
410
+ <rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
411
+ <path
412
+ d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"
413
+ ></path>
414
+ </svg>
415
+ </slot>
416
+ `;
417
+ }
418
+ _renderCopyButton() {
419
+ return this.showCopyButton ? r`
420
+ <button
421
+ part="copy-button"
422
+ class="code-block__copy code-block__copy--${this._copyState}"
423
+ aria-label=${this._getCopyAriaLabel()}
424
+ @click=${this._handleCopy}
425
+ >
426
+ ${this._renderCopyIcon()}
427
+ </button>
428
+ ` : c;
429
+ }
430
+ _renderHeader() {
431
+ return this.showHeader ? r`
432
+ <div part="header" class="code-block__header">
433
+ <span part="title" class="code-block__title">
434
+ <slot name="title">${this._headerLabel}</slot>
435
+ </span>
436
+ <div part="controls" class="code-block__controls">
437
+ <slot name="controls"></slot>
438
+ ${this._renderCopyButton()}
439
+ </div>
440
+ </div>
441
+ ` : c;
442
+ }
443
+ _renderFloatingCopyButton() {
444
+ return this.showHeader || !this.showCopyButton ? c : r`
445
+ <div class="code-block__floating-copy">${this._renderCopyButton()}</div>
446
+ `;
447
+ }
448
+ _renderLine(e, o, d) {
449
+ const l = this._highlightSet.has(o);
450
+ return r`
451
+ ${d ? r`<span
452
+ part="line-number"
453
+ class="code-block__line-number"
454
+ aria-hidden="true"
455
+ >${o}</span
456
+ >` : c}
457
+ <span
458
+ part="line"
459
+ class="code-block__line ${l ? "code-block__line--highlighted" : ""}"
460
+ aria-current=${v(l ? "true" : void 0)}
461
+ >${b(e)}</span
462
+ >
463
+ `;
464
+ }
465
+ _renderCodeLines() {
466
+ return this.showLineNumbers ? r`
467
+ <div class="code-block__lines">
468
+ ${this._highlightedLines.map(
469
+ (e, o) => this._renderLine(e, o + 1, !0)
470
+ )}
471
+ </div>
472
+ ` : this.highlightLines.length > 0 ? r`
473
+ <div class="code-block__lines code-block__lines--no-gutter">
474
+ ${this._highlightedLines.map(
475
+ (e, o) => this._renderLine(e, o + 1, !1)
476
+ )}
477
+ </div>
478
+ ` : b(this._highlightedHtml);
479
+ }
480
+ _renderExpandButton() {
481
+ return this._shouldCollapse ? r`
482
+ <button
483
+ part="expand-button"
484
+ class="code-block__expand"
485
+ @click=${this._toggleExpanded}
486
+ aria-expanded=${this._expanded}
487
+ >
488
+ ${this._expanded ? "Show less" : "Show more"}
489
+ </button>
490
+ ` : c;
491
+ }
492
+ render() {
493
+ const e = [
494
+ "code-block__body",
495
+ this.wrapLines ? "code-block__body--wrap" : "code-block__body--scroll",
496
+ this._isCollapsed ? "code-block__body--collapsed" : ""
497
+ ].filter(Boolean).join(" ");
498
+ return r`
499
+ <div
500
+ part="base"
501
+ class="code-block"
502
+ role="region"
503
+ aria-label=${this.title ? `Code example: ${this.title}` : "Code example"}
504
+ style=${this._isCollapsed && this.maxLines ? `--_max-lines: ${this.maxLines}` : ""}
505
+ >
506
+ ${this._renderHeader()}
507
+ <div part="body" class=${e}>
508
+ ${this._renderFloatingCopyButton()}
509
+ <pre
510
+ part="pre"
511
+ class="code-block__pre"
512
+ ><code part="code" class="code-block__code">${this._renderCodeLines()}</code></pre>
513
+ ${this._isCollapsed ? r`<div class="code-block__gradient"></div>` : c}
514
+ </div>
515
+ ${this._renderExpandButton()}
516
+ <div class="code-block__status" role="status" aria-live="polite">
517
+ ${this._copyState === "copied" ? "Copied to clipboard" : ""}
518
+ ${this._copyState === "error" ? "Failed to copy" : ""}
519
+ </div>
520
+ </div>
521
+ `;
522
+ }
523
+ };
524
+ t.defaultAdapter = w;
525
+ t.styles = [f];
526
+ i([
527
+ a({ type: String })
528
+ ], t.prototype, "code", 2);
529
+ i([
530
+ a({ type: String })
531
+ ], t.prototype, "language", 2);
532
+ i([
533
+ a({ type: String })
534
+ ], t.prototype, "title", 2);
535
+ i([
536
+ a({ type: Boolean, attribute: "show-line-numbers", reflect: !0 })
537
+ ], t.prototype, "showLineNumbers", 2);
538
+ i([
539
+ a({ type: Array })
540
+ ], t.prototype, "highlightLines", 2);
541
+ i([
542
+ a({ type: Boolean, attribute: "wrap-lines", reflect: !0 })
543
+ ], t.prototype, "wrapLines", 2);
544
+ i([
545
+ a({ type: Boolean, attribute: "show-copy-button", reflect: !0 })
546
+ ], t.prototype, "showCopyButton", 2);
547
+ i([
548
+ a({ type: Number, attribute: "max-lines" })
549
+ ], t.prototype, "maxLines", 2);
550
+ i([
551
+ a({ type: Boolean, attribute: "show-header", reflect: !0 })
552
+ ], t.prototype, "showHeader", 2);
553
+ i([
554
+ a({ attribute: !1 })
555
+ ], t.prototype, "highlightAdapter", 2);
556
+ i([
557
+ s()
558
+ ], t.prototype, "_copyState", 2);
559
+ i([
560
+ s()
561
+ ], t.prototype, "_expanded", 2);
562
+ i([
563
+ s()
564
+ ], t.prototype, "_highlightedHtml", 2);
565
+ i([
566
+ s()
567
+ ], t.prototype, "_adapterContext", 2);
568
+ i([
569
+ s()
570
+ ], t.prototype, "_adapterInitialized", 2);
571
+ i([
572
+ s()
573
+ ], t.prototype, "_lineCount", 2);
574
+ i([
575
+ s()
576
+ ], t.prototype, "_highlightSet", 2);
577
+ i([
578
+ s()
579
+ ], t.prototype, "_highlightedLines", 2);
580
+ t = i([
581
+ y("bp-code-block")
582
+ ], t);
583
+ export {
584
+ t as BpCodeBlock,
585
+ w as plainTextAdapter
586
+ };
587
+ //# sourceMappingURL=code-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-block.js","sources":["../../source/components/code-block/code-block.style.ts","../../source/components/code-block/code-block.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const codeBlockStyles = css`\n /* Base styles */\n :host {\n display: block;\n container-type: inline-size;\n }\n\n .code-block {\n position: relative;\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-lg);\n overflow: hidden;\n background-color: var(--bp-color-surface);\n font-family: var(--bp-font-family-mono);\n font-size: var(--bp-font-size-sm);\n line-height: var(--bp-line-height-relaxed);\n }\n\n /* Header */\n .code-block__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--bp-spacing-sm);\n padding: var(--bp-spacing-xs) var(--bp-spacing-md);\n background-color: var(--bp-color-surface-elevated);\n border-bottom: var(--bp-border-width) solid var(--bp-color-border);\n min-height: var(--bp-spacing-10);\n }\n\n .code-block__title {\n font-family: var(--bp-font-family);\n font-size: var(--bp-font-size-xs);\n font-weight: var(--bp-font-weight-medium);\n color: var(--bp-color-text-muted);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n text-transform: uppercase;\n letter-spacing: 0.05em; /* Intentional one-off for header label readability */\n }\n\n .code-block__controls {\n display: flex;\n align-items: center;\n gap: var(--bp-spacing-xs);\n flex-shrink: 0;\n }\n\n /* Copy button */\n .code-block__copy {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: none;\n border: none;\n padding: var(--bp-spacing-2xs);\n border-radius: var(--bp-border-radius-md);\n color: var(--bp-color-text-muted);\n cursor: pointer;\n transition:\n color var(--bp-transition-fast),\n background-color var(--bp-transition-fast);\n }\n\n .code-block__copy:hover {\n color: var(--bp-color-text);\n background-color: var(--bp-color-hover-overlay);\n }\n\n .code-block__copy:active {\n background-color: var(--bp-color-active-overlay);\n }\n\n .code-block__copy:focus-visible {\n outline: var(--bp-focus-ring);\n outline-offset: var(--bp-focus-offset);\n }\n\n .code-block__copy--copied {\n color: var(--bp-color-success);\n }\n\n .code-block__copy--error {\n color: var(--bp-color-error);\n }\n\n .code-block__icon {\n width: var(--bp-icon-size-sm);\n height: var(--bp-icon-size-sm);\n }\n\n /* Floating copy button (when header is hidden) */\n .code-block__floating-copy {\n position: absolute;\n top: var(--bp-spacing-xs);\n right: var(--bp-spacing-xs);\n z-index: var(--bp-z-base);\n opacity: 0;\n transition: opacity var(--bp-transition-fast);\n }\n\n .code-block__body:hover .code-block__floating-copy,\n .code-block__body:focus-within .code-block__floating-copy {\n opacity: 1;\n }\n\n /* Ensure floating copy button is reachable on touch devices (no hover) */\n @media (hover: none) {\n .code-block__floating-copy {\n opacity: 0.7;\n }\n }\n\n .code-block__floating-copy .code-block__copy {\n background-color: var(--bp-color-surface-elevated);\n border: var(--bp-border-width) solid var(--bp-color-border);\n box-shadow: var(--bp-shadow-sm);\n }\n\n /* Body */\n .code-block__body {\n position: relative;\n overflow: hidden;\n }\n\n .code-block__body--scroll {\n overflow-x: auto;\n }\n\n /* Pre / Code */\n .code-block__pre {\n margin: 0;\n padding: var(--bp-spacing-md);\n overflow: visible;\n }\n\n .code-block__body--wrap .code-block__pre {\n white-space: pre-wrap;\n word-break: break-all;\n overflow-wrap: break-word;\n }\n\n .code-block__body--scroll .code-block__pre {\n white-space: pre;\n overflow-x: auto;\n }\n\n .code-block__code {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: var(--bp-color-text);\n }\n\n /* Line numbers grid layout */\n .code-block__lines {\n display: grid;\n grid-template-columns: auto 1fr;\n }\n\n .code-block__lines--no-gutter {\n grid-template-columns: 1fr;\n }\n\n .code-block__line-number {\n align-self: start;\n text-align: right;\n padding-right: var(--bp-spacing-md);\n color: var(--bp-color-text-muted);\n user-select: none;\n min-width: var(--bp-spacing-8);\n opacity: var(--bp-opacity-subtle);\n }\n\n .code-block__line {\n display: block;\n padding-left: var(--bp-spacing-2xs);\n border-left: var(--bp-spacing-0-5) solid transparent;\n }\n\n .code-block__line--highlighted {\n background-color: var(--bp-color-selected-bg);\n border-left-color: var(--bp-color-primary);\n }\n\n /* Collapsed / expand */\n /* max-height = (line count × line-height × font-size) + vertical padding */\n .code-block__body--collapsed {\n max-height: calc(\n var(--_max-lines, 10) * var(--bp-line-height-relaxed) * 1em +\n var(--bp-spacing-md) * 2\n );\n overflow: hidden;\n }\n\n .code-block__gradient {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: var(--bp-spacing-16);\n background: linear-gradient(transparent, var(--bp-color-surface));\n pointer-events: none;\n }\n\n .code-block__expand {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n padding: var(--bp-spacing-xs) var(--bp-spacing-md);\n background: none;\n border: none;\n border-top: var(--bp-border-width) solid var(--bp-color-border);\n color: var(--bp-color-primary);\n font-family: var(--bp-font-family);\n font-size: var(--bp-font-size-xs);\n font-weight: var(--bp-font-weight-medium);\n cursor: pointer;\n transition: background-color var(--bp-transition-fast);\n }\n\n .code-block__expand:hover {\n background-color: var(--bp-color-hover-overlay);\n }\n\n .code-block__expand:active {\n background-color: var(--bp-color-active-overlay);\n }\n\n .code-block__expand:focus-visible {\n outline: var(--bp-focus-ring);\n outline-offset: calc(-1 * var(--bp-focus-offset));\n }\n\n /* Visually hidden status for screen readers.\n Uses --bp-spacing-0-5 (2px) instead of the typical 1px sr-only pattern\n to stay consistent with design tokens throughout. */\n .code-block__status {\n position: absolute;\n width: var(--bp-spacing-0-5);\n height: var(--bp-spacing-0-5);\n padding: var(--bp-spacing-0);\n margin: calc(-1 * var(--bp-spacing-0-5));\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: var(--bp-spacing-0);\n }\n\n /* Container queries for responsive behavior */\n @container (max-width: 480px) {\n /* stylelint-disable-line -- container queries cannot use var() */\n .code-block__header {\n flex-wrap: wrap;\n }\n\n .code-block__pre {\n padding: var(--bp-spacing-sm);\n font-size: var(--bp-font-size-xs);\n }\n\n .code-block__line-number {\n min-width: var(--bp-spacing-6);\n padding-right: var(--bp-spacing-sm);\n }\n }\n`;\n","import { LitElement, html, nothing, type PropertyValues } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { codeBlockStyles } from './code-block.style.js';\n\n/**\n * Result returned by a highlight adapter.\n */\nexport interface HighlightResult {\n /** The highlighted code as an HTML string. */\n html: string;\n /** Whether highlighting was actually applied (false = plain text fallback). */\n isHighlighted: boolean;\n}\n\n/**\n * Adapter interface for pluggable syntax highlighting.\n */\nexport interface CodeBlockHighlightAdapter {\n /**\n * Called once when the adapter is first used.\n * Use this for async initialization (loading Shiki, registering languages, etc).\n * Return value is passed to `highlight()` as context.\n */\n initialize?(): Promise<unknown>;\n\n /**\n * Return highlighted HTML for the given code and language.\n * `context` is the resolved value from `initialize()`.\n */\n highlight(options: {\n code: string;\n language: string;\n context: unknown;\n }): HighlightResult;\n}\n\n/** Maps HTML special characters to their entity equivalents for XSS prevention. */\nconst htmlEscapeMap: Record<string, string> = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#039;',\n};\n\n/**\n * Escapes HTML special characters in a single pass to prevent XSS when rendering plain text.\n */\nfunction escapeHtml(text: string): string {\n return text.replace(/[&<>\"']/g, (char) => htmlEscapeMap[char] ?? char);\n}\n\n/**\n * Built-in plain text adapter that escapes HTML and renders monospace text.\n * Zero dependencies, zero bundle cost.\n */\nexport const plainTextAdapter: CodeBlockHighlightAdapter = {\n highlight({ code }) {\n return {\n html: escapeHtml(code),\n isHighlighted: false,\n };\n },\n};\n\n/**\n * A code block component for displaying syntax-highlighted code with\n * copy-to-clipboard, line numbers, line highlighting, and expand/collapse.\n *\n * @slot title - Custom title content. Overrides the `title` attribute.\n * @slot controls - Additional control buttons placed before the copy button.\n * @slot copy-icon - Custom icon for the copy button (default state).\n * @slot copied-icon - Custom icon for the copy button (success state).\n *\n * @fires bp-copy - Fired after a copy attempt. Detail: `{ code: string, success: boolean }`\n *\n * @csspart base - Outer wrapper\n * @csspart header - Header bar\n * @csspart title - Title text area\n * @csspart controls - Controls container\n * @csspart copy-button - The copy button\n * @csspart body - Scrollable code container\n * @csspart pre - The `<pre>` element\n * @csspart code - The `<code>` element\n * @csspart line-number - Individual line number cell\n * @csspart line - Individual line of code\n */\n@customElement('bp-code-block')\nexport class BpCodeBlock extends LitElement {\n /**\n * The source code to display.\n */\n @property({ type: String }) declare code: string;\n\n /**\n * Language identifier for syntax highlighting (e.g. 'typescript', 'html', 'python').\n * Also displayed as a label when no title is set.\n */\n @property({ type: String }) declare language: string;\n\n /**\n * Optional title displayed in the header (e.g. a filename like `index.ts`).\n * Overrides the language label.\n */\n @property({ type: String }) declare title: string;\n\n /**\n * Show line number gutter.\n */\n @property({ type: Boolean, attribute: 'show-line-numbers', reflect: true })\n declare showLineNumbers: boolean;\n\n /**\n * Array of 1-based line numbers to visually highlight.\n */\n @property({ type: Array }) declare highlightLines: number[];\n\n /**\n * Wrap long lines instead of horizontal scroll.\n */\n @property({ type: Boolean, attribute: 'wrap-lines', reflect: true })\n declare wrapLines: boolean;\n\n /**\n * Show the copy-to-clipboard button.\n */\n @property({ type: Boolean, attribute: 'show-copy-button', reflect: true })\n declare showCopyButton: boolean;\n\n /**\n * When set, collapse the code block to this many visible lines with a \"Show more\" toggle.\n */\n @property({ type: Number, attribute: 'max-lines' })\n declare maxLines: number | undefined;\n\n /**\n * Show/hide the header bar. When false, the copy button floats over the code.\n */\n @property({ type: Boolean, attribute: 'show-header', reflect: true })\n declare showHeader: boolean;\n\n /**\n * The syntax highlight adapter to use for this instance.\n * Defaults to `BpCodeBlock.defaultAdapter` which is the plainTextAdapter.\n */\n @property({ attribute: false })\n declare highlightAdapter: CodeBlockHighlightAdapter;\n\n /**\n * Global default adapter used when no per-instance adapter is set.\n */\n static defaultAdapter: CodeBlockHighlightAdapter = plainTextAdapter;\n\n @state() private _copyState: 'idle' | 'copied' | 'error' = 'idle';\n @state() private _expanded = false;\n @state() private _highlightedHtml = '';\n @state() private _adapterContext: unknown = undefined;\n @state() private _adapterInitialized = false;\n @state() private _lineCount = 0;\n @state() private _highlightSet: Set<number> = new Set();\n @state() private _highlightedLines: string[] = [];\n\n private _copyResetTimer: ReturnType<typeof setTimeout> | null = null;\n\n static styles = [codeBlockStyles];\n\n constructor() {\n super();\n this.code = '';\n this.language = 'text';\n this.title = '';\n this.showLineNumbers = false;\n this.highlightLines = [];\n this.wrapLines = true;\n this.showCopyButton = true;\n this.maxLines = undefined;\n this.showHeader = true;\n this.highlightAdapter = BpCodeBlock.defaultAdapter;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this._copyResetTimer) {\n clearTimeout(this._copyResetTimer);\n this._copyResetTimer = null;\n }\n }\n\n protected override willUpdate(changedProperties: PropertyValues): void {\n super.willUpdate(changedProperties);\n\n if (changedProperties.has('highlightAdapter')) {\n this._adapterInitialized = false;\n this._adapterContext = undefined;\n this._initializeAdapter();\n }\n\n if (changedProperties.has('code')) {\n this._lineCount = this.code.split('\\n').length;\n }\n\n if (changedProperties.has('highlightLines')) {\n this._highlightSet = new Set(this.highlightLines);\n }\n\n const needsRehighlight =\n changedProperties.has('code') ||\n changedProperties.has('language') ||\n changedProperties.has('highlightAdapter');\n\n if (needsRehighlight) {\n this._updateHighlightingSync();\n }\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this._initializeAdapter();\n }\n\n private async _initializeAdapter(): Promise<void> {\n const adapter = this.highlightAdapter;\n if (!this._adapterInitialized && adapter.initialize) {\n try {\n const context = await adapter.initialize();\n // Bail if adapter changed while awaiting\n if (this.highlightAdapter !== adapter) return;\n this._adapterContext = context;\n } catch {\n if (this.highlightAdapter !== adapter) return;\n this._adapterContext = undefined;\n }\n this._adapterInitialized = true;\n // Re-highlight with context after async init\n this._updateHighlightingSync();\n this.requestUpdate();\n }\n }\n\n private _updateHighlightingSync(): void {\n const adapter = this.highlightAdapter;\n\n try {\n const result = adapter.highlight({\n code: this.code,\n language: this.language,\n context: this._adapterContext,\n });\n this._highlightedHtml = result.html;\n } catch {\n // Fallback to plain text on adapter error\n this._highlightedHtml = escapeHtml(this.code);\n }\n\n this._highlightedLines = this._highlightedHtml.split('\\n');\n }\n\n private _handleCopy = async (): Promise<void> => {\n let success: boolean;\n\n try {\n if (navigator.clipboard) {\n await navigator.clipboard.writeText(this.code);\n success = true;\n } else {\n // Fallback for insecure contexts\n success = this._fallbackCopy();\n }\n } catch {\n success = this._fallbackCopy();\n }\n\n this._copyState = success ? 'copied' : 'error';\n\n this.dispatchEvent(\n new CustomEvent('bp-copy', {\n detail: { code: this.code, success },\n bubbles: true,\n composed: true,\n })\n );\n\n // Reset after 2 seconds\n if (this._copyResetTimer) {\n clearTimeout(this._copyResetTimer);\n }\n this._copyResetTimer = setTimeout(() => {\n this._copyState = 'idle';\n this._copyResetTimer = null;\n }, 2000);\n };\n\n private _fallbackCopy(): boolean {\n try {\n const textarea = document.createElement('textarea');\n textarea.value = this.code;\n textarea.style.position = 'fixed';\n textarea.style.left = '-9999px';\n textarea.style.top = '-9999px';\n document.body.appendChild(textarea);\n textarea.select();\n const result = document.execCommand('copy');\n document.body.removeChild(textarea);\n return result;\n } catch {\n return false;\n }\n }\n\n private _toggleExpanded(): void {\n this._expanded = !this._expanded;\n }\n\n private get _shouldCollapse(): boolean {\n return (\n this.maxLines !== undefined &&\n this.maxLines > 0 &&\n this._lineCount > this.maxLines\n );\n }\n\n private get _isCollapsed(): boolean {\n return this._shouldCollapse && !this._expanded;\n }\n\n private get _headerLabel(): string {\n return this.title || this.language;\n }\n\n private _getCopyAriaLabel(): string {\n if (this._copyState === 'copied') return 'Copied!';\n if (this._copyState === 'error') return 'Failed to copy';\n return 'Copy code';\n }\n\n private _renderCopyIcon() {\n if (this._copyState === 'copied') {\n return html`\n <slot name=\"copied-icon\">\n <svg\n class=\"code-block__icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </slot>\n `;\n }\n\n return html`\n <slot name=\"copy-icon\">\n <svg\n class=\"code-block__icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"></rect>\n <path\n d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"\n ></path>\n </svg>\n </slot>\n `;\n }\n\n private _renderCopyButton() {\n if (!this.showCopyButton) return nothing;\n\n return html`\n <button\n part=\"copy-button\"\n class=\"code-block__copy code-block__copy--${this._copyState}\"\n aria-label=${this._getCopyAriaLabel()}\n @click=${this._handleCopy}\n >\n ${this._renderCopyIcon()}\n </button>\n `;\n }\n\n private _renderHeader() {\n if (!this.showHeader) return nothing;\n\n return html`\n <div part=\"header\" class=\"code-block__header\">\n <span part=\"title\" class=\"code-block__title\">\n <slot name=\"title\">${this._headerLabel}</slot>\n </span>\n <div part=\"controls\" class=\"code-block__controls\">\n <slot name=\"controls\"></slot>\n ${this._renderCopyButton()}\n </div>\n </div>\n `;\n }\n\n private _renderFloatingCopyButton() {\n if (this.showHeader || !this.showCopyButton) return nothing;\n\n return html`\n <div class=\"code-block__floating-copy\">${this._renderCopyButton()}</div>\n `;\n }\n\n private _renderLine(\n lineHtml: string,\n lineNumber: number,\n showNumber: boolean\n ) {\n const isHighlighted = this._highlightSet.has(lineNumber);\n return html`\n ${showNumber\n ? html`<span\n part=\"line-number\"\n class=\"code-block__line-number\"\n aria-hidden=\"true\"\n >${lineNumber}</span\n >`\n : nothing}\n <span\n part=\"line\"\n class=\"code-block__line ${isHighlighted\n ? 'code-block__line--highlighted'\n : ''}\"\n aria-current=${ifDefined(isHighlighted ? 'true' : undefined)}\n >${unsafeHTML(lineHtml)}</span\n >\n `;\n }\n\n private _renderCodeLines() {\n if (this.showLineNumbers) {\n return html`\n <div class=\"code-block__lines\">\n ${this._highlightedLines.map((lineHtml, index) =>\n this._renderLine(lineHtml, index + 1, true)\n )}\n </div>\n `;\n }\n\n if (this.highlightLines.length > 0) {\n return html`\n <div class=\"code-block__lines code-block__lines--no-gutter\">\n ${this._highlightedLines.map((lineHtml, index) =>\n this._renderLine(lineHtml, index + 1, false)\n )}\n </div>\n `;\n }\n\n return unsafeHTML(this._highlightedHtml);\n }\n\n private _renderExpandButton() {\n if (!this._shouldCollapse) return nothing;\n\n return html`\n <button\n part=\"expand-button\"\n class=\"code-block__expand\"\n @click=${this._toggleExpanded}\n aria-expanded=${this._expanded}\n >\n ${this._expanded ? 'Show less' : 'Show more'}\n </button>\n `;\n }\n\n render() {\n const bodyClasses = [\n 'code-block__body',\n this.wrapLines ? 'code-block__body--wrap' : 'code-block__body--scroll',\n this._isCollapsed ? 'code-block__body--collapsed' : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return html`\n <div\n part=\"base\"\n class=\"code-block\"\n role=\"region\"\n aria-label=${this.title\n ? `Code example: ${this.title}`\n : 'Code example'}\n style=${this._isCollapsed && this.maxLines\n ? `--_max-lines: ${this.maxLines}`\n : ''}\n >\n ${this._renderHeader()}\n <div part=\"body\" class=${bodyClasses}>\n ${this._renderFloatingCopyButton()}\n <pre\n part=\"pre\"\n class=\"code-block__pre\"\n ><code part=\"code\" class=\"code-block__code\">${this._renderCodeLines()}</code></pre>\n ${this._isCollapsed\n ? html`<div class=\"code-block__gradient\"></div>`\n : nothing}\n </div>\n ${this._renderExpandButton()}\n <div class=\"code-block__status\" role=\"status\" aria-live=\"polite\">\n ${this._copyState === 'copied' ? 'Copied to clipboard' : ''}\n ${this._copyState === 'error' ? 'Failed to copy' : ''}\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-code-block': BpCodeBlock;\n }\n}\n"],"names":["codeBlockStyles","css","htmlEscapeMap","escapeHtml","text","char","plainTextAdapter","code","BpCodeBlock","LitElement","success","changedProperties","adapter","context","result","textarea","html","nothing","lineHtml","lineNumber","showNumber","isHighlighted","ifDefined","unsafeHTML","index","bodyClasses","__decorateClass","property","state","customElement"],"mappings":";;;;AAEO,MAAMA,IAAkBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;ACqC/B,MAAMC,IAAwC;AAAA,EAC5C,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAKA,SAASC,EAAWC,GAAsB;AACxC,SAAOA,EAAK,QAAQ,YAAY,CAACC,MAASH,EAAcG,CAAI,KAAKA,CAAI;AACvE;AAMO,MAAMC,IAA8C;AAAA,EACzD,UAAU,EAAE,MAAAC,KAAQ;AAClB,WAAO;AAAA,MACL,MAAMJ,EAAWI,CAAI;AAAA,MACrB,eAAe;AAAA,IAAA;AAAA,EAEnB;AACF;AAyBO,IAAMC,IAAN,cAA0BC,EAAW;AAAA,EA8E1C,cAAc;AACZ,UAAA,GAdO,KAAQ,aAA0C,QAClD,KAAQ,YAAY,IACpB,KAAQ,mBAAmB,IAC3B,KAAQ,kBAA2B,QACnC,KAAQ,sBAAsB,IAC9B,KAAQ,aAAa,GACrB,KAAQ,oCAAiC,IAAA,GACzC,KAAQ,oBAA8B,CAAA,GAE/C,KAAQ,kBAAwD,MA+FhE,KAAQ,cAAc,YAA2B;AAC/C,UAAIC;AAEJ,UAAI;AACF,QAAI,UAAU,aACZ,MAAM,UAAU,UAAU,UAAU,KAAK,IAAI,GAC7CA,IAAU,MAGVA,IAAU,KAAK,cAAA;AAAA,MAEnB,QAAQ;AACN,QAAAA,IAAU,KAAK,cAAA;AAAA,MACjB;AAEA,WAAK,aAAaA,IAAU,WAAW,SAEvC,KAAK;AAAA,QACH,IAAI,YAAY,WAAW;AAAA,UACzB,QAAQ,EAAE,MAAM,KAAK,MAAM,SAAAA,EAAA;AAAA,UAC3B,SAAS;AAAA,UACT,UAAU;AAAA,QAAA,CACX;AAAA,MAAA,GAIC,KAAK,mBACP,aAAa,KAAK,eAAe,GAEnC,KAAK,kBAAkB,WAAW,MAAM;AACtC,aAAK,aAAa,QAClB,KAAK,kBAAkB;AAAA,MACzB,GAAG,GAAI;AAAA,IACT,GA1HE,KAAK,OAAO,IACZ,KAAK,WAAW,QAChB,KAAK,QAAQ,IACb,KAAK,kBAAkB,IACvB,KAAK,iBAAiB,CAAA,GACtB,KAAK,YAAY,IACjB,KAAK,iBAAiB,IACtB,KAAK,WAAW,QAChB,KAAK,aAAa,IAClB,KAAK,mBAAmBF,EAAY;AAAA,EACtC;AAAA,EAEA,uBAA6B;AAC3B,UAAM,qBAAA,GACF,KAAK,oBACP,aAAa,KAAK,eAAe,GACjC,KAAK,kBAAkB;AAAA,EAE3B;AAAA,EAEmB,WAAWG,GAAyC;AACrE,UAAM,WAAWA,CAAiB,GAE9BA,EAAkB,IAAI,kBAAkB,MAC1C,KAAK,sBAAsB,IAC3B,KAAK,kBAAkB,QACvB,KAAK,mBAAA,IAGHA,EAAkB,IAAI,MAAM,MAC9B,KAAK,aAAa,KAAK,KAAK,MAAM;AAAA,CAAI,EAAE,SAGtCA,EAAkB,IAAI,gBAAgB,MACxC,KAAK,gBAAgB,IAAI,IAAI,KAAK,cAAc,KAIhDA,EAAkB,IAAI,MAAM,KAC5BA,EAAkB,IAAI,UAAU,KAChCA,EAAkB,IAAI,kBAAkB,MAGxC,KAAK,wBAAA;AAAA,EAET;AAAA,EAEA,oBAA0B;AACxB,UAAM,kBAAA,GACN,KAAK,mBAAA;AAAA,EACP;AAAA,EAEA,MAAc,qBAAoC;AAChD,UAAMC,IAAU,KAAK;AACrB,QAAI,CAAC,KAAK,uBAAuBA,EAAQ,YAAY;AACnD,UAAI;AACF,cAAMC,IAAU,MAAMD,EAAQ,WAAA;AAE9B,YAAI,KAAK,qBAAqBA,EAAS;AACvC,aAAK,kBAAkBC;AAAA,MACzB,QAAQ;AACN,YAAI,KAAK,qBAAqBD,EAAS;AACvC,aAAK,kBAAkB;AAAA,MACzB;AACA,WAAK,sBAAsB,IAE3B,KAAK,wBAAA,GACL,KAAK,cAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEQ,0BAAgC;AACtC,UAAMA,IAAU,KAAK;AAErB,QAAI;AACF,YAAME,IAASF,EAAQ,UAAU;AAAA,QAC/B,MAAM,KAAK;AAAA,QACX,UAAU,KAAK;AAAA,QACf,SAAS,KAAK;AAAA,MAAA,CACf;AACD,WAAK,mBAAmBE,EAAO;AAAA,IACjC,QAAQ;AAEN,WAAK,mBAAmBX,EAAW,KAAK,IAAI;AAAA,IAC9C;AAEA,SAAK,oBAAoB,KAAK,iBAAiB,MAAM;AAAA,CAAI;AAAA,EAC3D;AAAA,EAqCQ,gBAAyB;AAC/B,QAAI;AACF,YAAMY,IAAW,SAAS,cAAc,UAAU;AAClD,MAAAA,EAAS,QAAQ,KAAK,MACtBA,EAAS,MAAM,WAAW,SAC1BA,EAAS,MAAM,OAAO,WACtBA,EAAS,MAAM,MAAM,WACrB,SAAS,KAAK,YAAYA,CAAQ,GAClCA,EAAS,OAAA;AACT,YAAMD,IAAS,SAAS,YAAY,MAAM;AAC1C,sBAAS,KAAK,YAAYC,CAAQ,GAC3BD;AAAA,IACT,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEQ,kBAAwB;AAC9B,SAAK,YAAY,CAAC,KAAK;AAAA,EACzB;AAAA,EAEA,IAAY,kBAA2B;AACrC,WACE,KAAK,aAAa,UAClB,KAAK,WAAW,KAChB,KAAK,aAAa,KAAK;AAAA,EAE3B;AAAA,EAEA,IAAY,eAAwB;AAClC,WAAO,KAAK,mBAAmB,CAAC,KAAK;AAAA,EACvC;AAAA,EAEA,IAAY,eAAuB;AACjC,WAAO,KAAK,SAAS,KAAK;AAAA,EAC5B;AAAA,EAEQ,oBAA4B;AAClC,WAAI,KAAK,eAAe,WAAiB,YACrC,KAAK,eAAe,UAAgB,mBACjC;AAAA,EACT;AAAA,EAEQ,kBAAkB;AACxB,WAAI,KAAK,eAAe,WACfE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAkBFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBT;AAAA,EAEQ,oBAAoB;AAC1B,WAAK,KAAK,iBAEHA;AAAA;AAAA;AAAA,oDAGyC,KAAK,UAAU;AAAA,qBAC9C,KAAK,mBAAmB;AAAA,iBAC5B,KAAK,WAAW;AAAA;AAAA,UAEvB,KAAK,iBAAiB;AAAA;AAAA,QATKC;AAAA,EAYnC;AAAA,EAEQ,gBAAgB;AACtB,WAAK,KAAK,aAEHD;AAAA;AAAA;AAAA,+BAGoB,KAAK,YAAY;AAAA;AAAA;AAAA;AAAA,YAIpC,KAAK,mBAAmB;AAAA;AAAA;AAAA,QATHC;AAAA,EAa/B;AAAA,EAEQ,4BAA4B;AAClC,WAAI,KAAK,cAAc,CAAC,KAAK,iBAAuBA,IAE7CD;AAAA,+CACoC,KAAK,mBAAmB;AAAA;AAAA,EAErE;AAAA,EAEQ,YACNE,GACAC,GACAC,GACA;AACA,UAAMC,IAAgB,KAAK,cAAc,IAAIF,CAAU;AACvD,WAAOH;AAAA,QACHI,IACEJ;AAAA;AAAA;AAAA;AAAA,eAIKG,CAAU;AAAA,eAEfF,CAAO;AAAA;AAAA;AAAA,kCAGiBI,IACtB,kCACA,EAAE;AAAA,uBACSC,EAAUD,IAAgB,SAAS,MAAS,CAAC;AAAA,WACzDE,EAAWL,CAAQ,CAAC;AAAA;AAAA;AAAA,EAG7B;AAAA,EAEQ,mBAAmB;AACzB,WAAI,KAAK,kBACAF;AAAA;AAAA,YAED,KAAK,kBAAkB;AAAA,MAAI,CAACE,GAAUM,MACtC,KAAK,YAAYN,GAAUM,IAAQ,GAAG,EAAI;AAAA,IAAA,CAC3C;AAAA;AAAA,UAKH,KAAK,eAAe,SAAS,IACxBR;AAAA;AAAA,YAED,KAAK,kBAAkB;AAAA,MAAI,CAACE,GAAUM,MACtC,KAAK,YAAYN,GAAUM,IAAQ,GAAG,EAAK;AAAA,IAAA,CAC5C;AAAA;AAAA,UAKAD,EAAW,KAAK,gBAAgB;AAAA,EACzC;AAAA,EAEQ,sBAAsB;AAC5B,WAAK,KAAK,kBAEHP;AAAA;AAAA;AAAA;AAAA,iBAIM,KAAK,eAAe;AAAA,wBACb,KAAK,SAAS;AAAA;AAAA,UAE5B,KAAK,YAAY,cAAc,WAAW;AAAA;AAAA,QATdC;AAAA,EAYpC;AAAA,EAEA,SAAS;AACP,UAAMQ,IAAc;AAAA,MAClB;AAAA,MACA,KAAK,YAAY,2BAA2B;AAAA,MAC5C,KAAK,eAAe,gCAAgC;AAAA,IAAA,EAEnD,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,WAAOT;AAAA;AAAA;AAAA;AAAA;AAAA,qBAKU,KAAK,QACd,iBAAiB,KAAK,KAAK,KAC3B,cAAc;AAAA,gBACV,KAAK,gBAAgB,KAAK,WAC9B,iBAAiB,KAAK,QAAQ,KAC9B,EAAE;AAAA;AAAA,UAEJ,KAAK,eAAe;AAAA,iCACGS,CAAW;AAAA,YAChC,KAAK,2BAA2B;AAAA;AAAA;AAAA;AAAA,wDAIY,KAAK,kBAAkB;AAAA,YACnE,KAAK,eACHT,8CACAC,CAAO;AAAA;AAAA,UAEX,KAAK,qBAAqB;AAAA;AAAA,YAExB,KAAK,eAAe,WAAW,wBAAwB,EAAE;AAAA,YACzD,KAAK,eAAe,UAAU,mBAAmB,EAAE;AAAA;AAAA;AAAA;AAAA,EAI7D;AACF;AAhbaT,EA+DJ,iBAA4CF;AA/DxCE,EA4EJ,SAAS,CAACR,CAAe;AAxEI0B,EAAA;AAAA,EAAnCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAJfnB,EAIyB,WAAA,QAAA,CAAA;AAMAkB,EAAA;AAAA,EAAnCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAVfnB,EAUyB,WAAA,YAAA,CAAA;AAMAkB,EAAA;AAAA,EAAnCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAhBfnB,EAgByB,WAAA,SAAA,CAAA;AAM5BkB,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,SAAS,WAAW,qBAAqB,SAAS,IAAM;AAAA,GArB/DnB,EAsBH,WAAA,mBAAA,CAAA;AAK2BkB,EAAA;AAAA,EAAlCC,EAAS,EAAE,MAAM,MAAA,CAAO;AAAA,GA3BdnB,EA2BwB,WAAA,kBAAA,CAAA;AAM3BkB,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,SAAS,WAAW,cAAc,SAAS,IAAM;AAAA,GAhCxDnB,EAiCH,WAAA,aAAA,CAAA;AAMAkB,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,SAAS,WAAW,oBAAoB,SAAS,IAAM;AAAA,GAtC9DnB,EAuCH,WAAA,kBAAA,CAAA;AAMAkB,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,QAAQ,WAAW,aAAa;AAAA,GA5CvCnB,EA6CH,WAAA,YAAA,CAAA;AAMAkB,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,SAAS,WAAW,eAAe,SAAS,IAAM;AAAA,GAlDzDnB,EAmDH,WAAA,cAAA,CAAA;AAOAkB,EAAA;AAAA,EADPC,EAAS,EAAE,WAAW,GAAA,CAAO;AAAA,GAzDnBnB,EA0DH,WAAA,oBAAA,CAAA;AAOSkB,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAjEIpB,EAiEM,WAAA,cAAA,CAAA;AACAkB,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAlEIpB,EAkEM,WAAA,aAAA,CAAA;AACAkB,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAnEIpB,EAmEM,WAAA,oBAAA,CAAA;AACAkB,EAAA;AAAA,EAAhBE,EAAA;AAAM,GApEIpB,EAoEM,WAAA,mBAAA,CAAA;AACAkB,EAAA;AAAA,EAAhBE,EAAA;AAAM,GArEIpB,EAqEM,WAAA,uBAAA,CAAA;AACAkB,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAtEIpB,EAsEM,WAAA,cAAA,CAAA;AACAkB,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAvEIpB,EAuEM,WAAA,iBAAA,CAAA;AACAkB,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAxEIpB,EAwEM,WAAA,qBAAA,CAAA;AAxENA,IAANkB,EAAA;AAAA,EADNG,EAAc,eAAe;AAAA,GACjBrB,CAAA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"color-picker.d.ts","sourceRoot":"","sources":["../../../source/components/color-picker/color-picker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,cAAc,EAAE,MAAM,KAAK,CAAC;AAIhE,OAAO,EACL,KAAK,WAAW,EAMjB,MAAM,yBAAyB,CAAC;AAKjC;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBACa,aAAc,SAAQ,UAAU;IAC3C,MAAM,CAAC,MAAM,4BAAuB;IAEpC,0BAA0B;IACU,KAAK,EAAE,MAAM,CAAC;IAElD,8BAA8B;IACM,MAAM,EAAE,WAAW,CAAC;IAExD,2BAA2B;IAEnB,KAAK,EAAE,OAAO,CAAC;IAEvB,+BAA+B;IACI,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEtD,uCAAuC;IACF,MAAM,EAAE,OAAO,CAAC;IAErD,+BAA+B;IACqB,QAAQ,EAAE,OAAO,CAAC;IAEtE,qCAAqC;IACe,QAAQ,EAAE,OAAO,CAAC;IAEtE,qBAAqB;IAC8B,IAAI,EAAE,eAAe,CAAC;IAEzE,uBAAuB;IACa,KAAK,EAAE,MAAM,CAAC;IAElD,sBAAsB;IACc,IAAI,EAAE,MAAM,CAAC;IAEjD,8BAA8B;IACM,WAAW,EAAE,MAAM,CAAC;IAExD,kCAAkC;IACzB,OAAO,CAAC,KAAK,CAAS;IAE/B,+BAA+B;IACtB,OAAO,CAAC,IAAI,CAAwC;IAE7D,yCAAyC;IAChC,OAAO,CAAC,cAAc,CAAM;IAErC,sCAAsC;IAC7B,OAAO,CAAC,oBAAoB,CAAS;IAE9C,2CAA2C;IAClC,OAAO,CAAC,UAAU,CAAsB;IAEjD,2CAA2C;IAClC,OAAO,CAAC,cAAc,CAAM;IAErC,6CAA6C;IACpC,OAAO,CAAC,eAAe,CAAS;IAEnB,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,UAAU,CAAe;IAC/B,OAAO,CAAC,YAAY,CAAe;IAE3D,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,gBAAgB,CAAS;;IAiBjC,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;IAK5B,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IAU7D,OAAO,CAAC,WAAW;IAQnB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAOnB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAQrB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAanB;;;OAGG;IACH,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,mBAAmB,CAKzB;IAEF,OAAO,CAAC,gBAAgB,CAQtB;IAEF;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAQnC;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAKnC;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAOjC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAe/B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IA6C/B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAK7B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAuCzB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAQ/B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAK/B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAU/B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAuC3B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAKvB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAWvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAevB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAI/B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;;OAIG;YACW,iBAAiB;IA6B/B;;;OAGG;IACH,OAAO,CAAC,UAAU;IAWlB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAgBnB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA6B1B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA6BtB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA6ExB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA6ExB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA+BrB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAmCvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAwBzB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAwBrB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAkCtB,MAAM;CA0BP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,aAAa,CAAC;KAClC;CACF"}
1
+ {"version":3,"file":"color-picker.d.ts","sourceRoot":"","sources":["../../../source/components/color-picker/color-picker.ts"],"names":[],"mappings":"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"}