bizz-components 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/web/index.js ADDED
@@ -0,0 +1,1868 @@
1
+ // projects/bizz-components/src/web/tokens.ts
2
+ var TOKENS_CSS = `
3
+ :root {
4
+ --bizz-primary: #0f62fe;
5
+ --bizz-secondary: #525252;
6
+ --bizz-success: #24a148;
7
+ --bizz-warning: #f59e0b;
8
+ --bizz-error: #da1e28;
9
+ --bizz-white: #ffffff;
10
+ --bizz-black: #000000;
11
+ --bizz-primary-10: color-mix(in oklch, var(--bizz-primary) 8%, white);
12
+ --bizz-primary-20: color-mix(in oklch, var(--bizz-primary) 18%, white);
13
+ --bizz-primary-30: color-mix(in oklch, var(--bizz-primary) 35%, white);
14
+ --bizz-primary-40: color-mix(in oklch, var(--bizz-primary) 55%, white);
15
+ --bizz-primary-50: color-mix(in oklch, var(--bizz-primary) 75%, white);
16
+ --bizz-primary-60: var(--bizz-primary);
17
+ --bizz-primary-70: color-mix(in oklch, var(--bizz-primary) 85%, black);
18
+ --bizz-primary-80: color-mix(in oklch, var(--bizz-primary) 65%, black);
19
+ --bizz-primary-90: color-mix(in oklch, var(--bizz-primary) 45%, black);
20
+ --bizz-primary-100: color-mix(in oklch, var(--bizz-primary) 25%, black);
21
+ --bizz-secondary-10: color-mix(in oklch, var(--bizz-secondary) 8%, white);
22
+ --bizz-secondary-20: color-mix(in oklch, var(--bizz-secondary) 18%, white);
23
+ --bizz-secondary-30: color-mix(in oklch, var(--bizz-secondary) 35%, white);
24
+ --bizz-secondary-40: color-mix(in oklch, var(--bizz-secondary) 55%, white);
25
+ --bizz-secondary-50: color-mix(in oklch, var(--bizz-secondary) 75%, white);
26
+ --bizz-secondary-60: var(--bizz-secondary);
27
+ --bizz-secondary-70: color-mix(in oklch, var(--bizz-secondary) 85%, black);
28
+ --bizz-secondary-80: color-mix(in oklch, var(--bizz-secondary) 65%, black);
29
+ --bizz-secondary-90: color-mix(in oklch, var(--bizz-secondary) 45%, black);
30
+ --bizz-secondary-100: color-mix(in oklch, var(--bizz-secondary) 25%, black);
31
+ --bizz-success-10: color-mix(in oklch, var(--bizz-success) 8%, white);
32
+ --bizz-success-20: color-mix(in oklch, var(--bizz-success) 18%, white);
33
+ --bizz-success-30: color-mix(in oklch, var(--bizz-success) 35%, white);
34
+ --bizz-success-40: color-mix(in oklch, var(--bizz-success) 55%, white);
35
+ --bizz-success-50: color-mix(in oklch, var(--bizz-success) 75%, white);
36
+ --bizz-success-60: var(--bizz-success);
37
+ --bizz-success-70: color-mix(in oklch, var(--bizz-success) 85%, black);
38
+ --bizz-success-80: color-mix(in oklch, var(--bizz-success) 65%, black);
39
+ --bizz-success-90: color-mix(in oklch, var(--bizz-success) 45%, black);
40
+ --bizz-success-100: color-mix(in oklch, var(--bizz-success) 25%, black);
41
+ --bizz-warning-10: color-mix(in oklch, var(--bizz-warning) 8%, white);
42
+ --bizz-warning-20: color-mix(in oklch, var(--bizz-warning) 18%, white);
43
+ --bizz-warning-30: color-mix(in oklch, var(--bizz-warning) 35%, white);
44
+ --bizz-warning-40: color-mix(in oklch, var(--bizz-warning) 55%, white);
45
+ --bizz-warning-50: color-mix(in oklch, var(--bizz-warning) 75%, white);
46
+ --bizz-warning-60: var(--bizz-warning);
47
+ --bizz-warning-70: color-mix(in oklch, var(--bizz-warning) 85%, black);
48
+ --bizz-warning-80: color-mix(in oklch, var(--bizz-warning) 65%, black);
49
+ --bizz-warning-90: color-mix(in oklch, var(--bizz-warning) 45%, black);
50
+ --bizz-warning-100: color-mix(in oklch, var(--bizz-warning) 25%, black);
51
+ --bizz-error-10: color-mix(in oklch, var(--bizz-error) 8%, white);
52
+ --bizz-error-20: color-mix(in oklch, var(--bizz-error) 18%, white);
53
+ --bizz-error-30: color-mix(in oklch, var(--bizz-error) 35%, white);
54
+ --bizz-error-40: color-mix(in oklch, var(--bizz-error) 55%, white);
55
+ --bizz-error-50: color-mix(in oklch, var(--bizz-error) 75%, white);
56
+ --bizz-error-60: var(--bizz-error);
57
+ --bizz-error-70: color-mix(in oklch, var(--bizz-error) 85%, black);
58
+ --bizz-error-80: color-mix(in oklch, var(--bizz-error) 65%, black);
59
+ --bizz-error-90: color-mix(in oklch, var(--bizz-error) 45%, black);
60
+ --bizz-error-100: color-mix(in oklch, var(--bizz-error) 25%, black);
61
+ }
62
+ .bizz-theme-light, :root {
63
+ color-scheme: light;
64
+ --bizz-background: var(--bizz-white);
65
+ --bizz-background-hover: color-mix(in oklch, var(--bizz-secondary) 12%, transparent);
66
+ --bizz-background-active: color-mix(in oklch, var(--bizz-secondary) 30%, transparent);
67
+ --bizz-layer-02: var(--bizz-white);
68
+ --bizz-field-hover-01: var(--bizz-secondary-20);
69
+ --bizz-border-subtle-00: var(--bizz-secondary-20);
70
+ --bizz-border-subtle-01: var(--bizz-secondary-30);
71
+ --bizz-border-strong-01: var(--bizz-secondary-50);
72
+ --bizz-border-interactive: var(--bizz-primary-60);
73
+ --bizz-text-primary: var(--bizz-secondary-100);
74
+ --bizz-text-secondary: var(--bizz-secondary-70);
75
+ --bizz-text-placeholder: var(--bizz-secondary-40);
76
+ --bizz-text-helper: var(--bizz-secondary-60);
77
+ --bizz-text-error: var(--bizz-error-60);
78
+ --bizz-text-on-color: var(--bizz-white);
79
+ --bizz-text-on-color-disabled: var(--bizz-secondary-50);
80
+ --bizz-text-inverse: var(--bizz-white);
81
+ --bizz-text-disabled: color-mix(in oklch, var(--bizz-secondary-100) 25%, transparent);
82
+ --bizz-link-primary: var(--bizz-primary-60);
83
+ --bizz-support-error: var(--bizz-error-60);
84
+ --bizz-support-success: var(--bizz-success-60);
85
+ --bizz-support-warning: var(--bizz-warning-60);
86
+ --bizz-button-primary: var(--bizz-primary-60);
87
+ --bizz-button-primary-hover: var(--bizz-primary-70);
88
+ --bizz-button-primary-active: var(--bizz-primary-80);
89
+ --bizz-button-secondary: var(--bizz-secondary-80);
90
+ --bizz-button-secondary-hover: var(--bizz-secondary-90);
91
+ --bizz-button-secondary-active: var(--bizz-secondary-60);
92
+ --bizz-button-danger: var(--bizz-error-60);
93
+ --bizz-button-danger-hover: var(--bizz-error-70);
94
+ --bizz-button-danger-active: var(--bizz-error-80);
95
+ --bizz-button-disabled: var(--bizz-secondary-30);
96
+ --bizz-focus: var(--bizz-primary-60);
97
+ --bizz-tag-primary-bg: var(--bizz-primary-20);
98
+ --bizz-tag-primary-text: var(--bizz-primary-80);
99
+ --bizz-tag-primary-hover: var(--bizz-primary-30);
100
+ --bizz-tag-secondary-bg: var(--bizz-secondary-20);
101
+ --bizz-tag-secondary-text: var(--bizz-secondary-100);
102
+ --bizz-tag-secondary-hover: var(--bizz-secondary-30);
103
+ --bizz-tag-success-bg: var(--bizz-success-20);
104
+ --bizz-tag-success-text: var(--bizz-success-80);
105
+ --bizz-tag-success-hover: var(--bizz-success-30);
106
+ --bizz-tag-warning-bg: var(--bizz-warning-20);
107
+ --bizz-tag-warning-text: var(--bizz-warning-80);
108
+ --bizz-tag-warning-hover: var(--bizz-warning-30);
109
+ --bizz-tag-error-bg: var(--bizz-error-20);
110
+ --bizz-tag-error-text: var(--bizz-error-80);
111
+ --bizz-tag-error-hover: var(--bizz-error-30);
112
+ --bizz-shadow-sm: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.08);
113
+ --bizz-shadow-md: 0 2px 6px rgba(0,0,0,0.20), 0 1px 2px rgba(0,0,0,0.08);
114
+ }
115
+ .bizz-theme-dark {
116
+ color-scheme: dark;
117
+ --bizz-background: var(--bizz-secondary-100);
118
+ --bizz-background-hover: color-mix(in oklch, var(--bizz-white) 12%, transparent);
119
+ --bizz-background-active: color-mix(in oklch, var(--bizz-white) 20%, transparent);
120
+ --bizz-layer-02: var(--bizz-secondary-80);
121
+ --bizz-field-hover-01: color-mix(in oklch, var(--bizz-secondary-90) 85%, white);
122
+ --bizz-border-subtle-00: var(--bizz-secondary-80);
123
+ --bizz-border-subtle-01: var(--bizz-secondary-70);
124
+ --bizz-border-strong-01: var(--bizz-secondary-60);
125
+ --bizz-border-interactive: var(--bizz-primary-50);
126
+ --bizz-text-primary: var(--bizz-secondary-10);
127
+ --bizz-text-secondary: var(--bizz-secondary-30);
128
+ --bizz-text-placeholder: var(--bizz-secondary-60);
129
+ --bizz-text-helper: var(--bizz-secondary-50);
130
+ --bizz-text-error: var(--bizz-error-40);
131
+ --bizz-text-on-color: var(--bizz-white);
132
+ --bizz-text-on-color-disabled: var(--bizz-secondary-70);
133
+ --bizz-text-inverse: var(--bizz-secondary-100);
134
+ --bizz-text-disabled: color-mix(in oklch, var(--bizz-secondary-10) 25%, transparent);
135
+ --bizz-link-primary: var(--bizz-primary-40);
136
+ --bizz-support-error: var(--bizz-error-40);
137
+ --bizz-support-success: var(--bizz-success-40);
138
+ --bizz-support-warning: var(--bizz-warning-40);
139
+ --bizz-button-primary: var(--bizz-primary-60);
140
+ --bizz-button-primary-hover: var(--bizz-primary-70);
141
+ --bizz-button-primary-active: var(--bizz-primary-80);
142
+ --bizz-button-secondary: var(--bizz-secondary-60);
143
+ --bizz-button-secondary-hover: var(--bizz-secondary-70);
144
+ --bizz-button-secondary-active: var(--bizz-secondary-80);
145
+ --bizz-button-danger: var(--bizz-error-60);
146
+ --bizz-button-danger-hover: var(--bizz-error-70);
147
+ --bizz-button-danger-active: var(--bizz-error-80);
148
+ --bizz-button-disabled: var(--bizz-secondary-70);
149
+ --bizz-focus: var(--bizz-white);
150
+ --bizz-tag-primary-bg: var(--bizz-primary-80);
151
+ --bizz-tag-primary-text: var(--bizz-primary-30);
152
+ --bizz-tag-primary-hover: var(--bizz-primary-90);
153
+ --bizz-tag-secondary-bg: var(--bizz-secondary-80);
154
+ --bizz-tag-secondary-text: var(--bizz-secondary-10);
155
+ --bizz-tag-secondary-hover: var(--bizz-secondary-90);
156
+ --bizz-tag-success-bg: var(--bizz-success-80);
157
+ --bizz-tag-success-text: var(--bizz-success-30);
158
+ --bizz-tag-success-hover: var(--bizz-success-90);
159
+ --bizz-tag-warning-bg: var(--bizz-warning-80);
160
+ --bizz-tag-warning-text: var(--bizz-warning-20);
161
+ --bizz-tag-warning-hover: var(--bizz-warning-90);
162
+ --bizz-tag-error-bg: var(--bizz-error-80);
163
+ --bizz-tag-error-text: var(--bizz-error-30);
164
+ --bizz-tag-error-hover: var(--bizz-error-90);
165
+ --bizz-shadow-sm: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.08);
166
+ --bizz-shadow-md: 0 2px 6px rgba(0,0,0,0.20), 0 1px 2px rgba(0,0,0,0.08);
167
+ }
168
+ :root {
169
+ --bizz-font-family-base: 'IBM Plex Sans', 'Inter', system-ui, -apple-system, sans-serif;
170
+ --bizz-font-family-mono: 'IBM Plex Mono', 'JetBrains Mono', monospace;
171
+ --bizz-font-size-xs: 0.75rem;
172
+ --bizz-font-size-sm: 0.875rem;
173
+ --bizz-font-size-md: 1rem;
174
+ --bizz-font-size-lg: 1.125rem;
175
+ --bizz-font-size-xl: 1.25rem;
176
+ --bizz-font-size-2xl: 1.5rem;
177
+ --bizz-font-size-3xl: 1.875rem;
178
+ --bizz-font-size-4xl: 2.25rem;
179
+ --bizz-font-size-5xl: 3rem;
180
+ --bizz-font-weight-regular: 400;
181
+ --bizz-font-weight-medium: 500;
182
+ --bizz-font-weight-semibold: 600;
183
+ --bizz-font-weight-bold: 700;
184
+ --bizz-font-weight-extrabold: 800;
185
+ --bizz-line-height-tight: 1.2;
186
+ --bizz-line-height-snug: 1.35;
187
+ --bizz-line-height-normal: 1.5;
188
+ --bizz-line-height-relaxed: 1.75;
189
+ --bizz-letter-spacing-tight: -0.03em;
190
+ --bizz-letter-spacing-snug: -0.02em;
191
+ --bizz-letter-spacing-normal: 0em;
192
+ --bizz-letter-spacing-wide: 0.05em;
193
+ --bizz-letter-spacing-wider: 0.1em;
194
+ --bizz-spacing-01: 0.125rem;
195
+ --bizz-spacing-02: 0.25rem;
196
+ --bizz-spacing-03: 0.5rem;
197
+ --bizz-spacing-04: 0.75rem;
198
+ --bizz-spacing-05: 1rem;
199
+ --bizz-spacing-06: 1.5rem;
200
+ --bizz-spacing-07: 2rem;
201
+ --bizz-spacing-08: 2.5rem;
202
+ --bizz-spacing-09: 3rem;
203
+ --bizz-spacing-10: 4rem;
204
+ --bizz-radius-sm: 0.125rem;
205
+ --bizz-radius-md: 0.25rem;
206
+ --bizz-radius-lg: 0.5rem;
207
+ --bizz-radius-xl: 1rem;
208
+ --bizz-radius-full: 9999px;
209
+ --bizz-shadow-lg: 0 8px 24px rgba(0,0,0,0.16), 0 2px 6px rgba(0,0,0,0.08);
210
+ --bizz-shadow-xl: 0 16px 48px rgba(0,0,0,0.20), 0 4px 12px rgba(0,0,0,0.08);
211
+ --bizz-duration-fast: 100ms;
212
+ --bizz-duration-base: 200ms;
213
+ --bizz-duration-slow: 300ms;
214
+ --bizz-easing-default: cubic-bezier(0.4, 0, 0.2, 1);
215
+ }
216
+ .bizz-h1,.bizz-h2,.bizz-h3,.bizz-h4,.bizz-body-lg,.bizz-body,.bizz-body-sm,.bizz-label,.bizz-caption,.bizz-overline {
217
+ font-family: var(--bizz-font-family-base); margin: 0; padding: 0;
218
+ }
219
+ .bizz-h1 { font-size:var(--bizz-font-size-5xl);font-weight:var(--bizz-font-weight-extrabold);line-height:var(--bizz-line-height-tight);letter-spacing:var(--bizz-letter-spacing-tight); }
220
+ .bizz-h2 { font-size:var(--bizz-font-size-4xl);font-weight:var(--bizz-font-weight-bold);line-height:var(--bizz-line-height-tight);letter-spacing:var(--bizz-letter-spacing-snug); }
221
+ .bizz-h3 { font-size:var(--bizz-font-size-3xl);font-weight:var(--bizz-font-weight-bold);line-height:var(--bizz-line-height-snug);letter-spacing:var(--bizz-letter-spacing-snug); }
222
+ .bizz-h4 { font-size:var(--bizz-font-size-2xl);font-weight:var(--bizz-font-weight-semibold);line-height:var(--bizz-line-height-snug);letter-spacing:var(--bizz-letter-spacing-normal); }
223
+ .bizz-body-lg { font-size:var(--bizz-font-size-lg);font-weight:var(--bizz-font-weight-regular);line-height:var(--bizz-line-height-relaxed); }
224
+ .bizz-body { font-size:var(--bizz-font-size-md);font-weight:var(--bizz-font-weight-regular);line-height:var(--bizz-line-height-normal); }
225
+ .bizz-body-sm { font-size:var(--bizz-font-size-sm);font-weight:var(--bizz-font-weight-regular);line-height:var(--bizz-line-height-normal); }
226
+ .bizz-label { font-size:var(--bizz-font-size-sm);font-weight:var(--bizz-font-weight-semibold);line-height:var(--bizz-line-height-normal); }
227
+ .bizz-caption { font-size:var(--bizz-font-size-xs);font-weight:var(--bizz-font-weight-regular);line-height:var(--bizz-line-height-normal); }
228
+ .bizz-overline { font-size:var(--bizz-font-size-xs);font-weight:var(--bizz-font-weight-bold);line-height:var(--bizz-line-height-normal);letter-spacing:var(--bizz-letter-spacing-wider);text-transform:uppercase; }
229
+ .bizz-text-primary { color: var(--bizz-text-primary); }
230
+ .bizz-text-secondary { color: var(--bizz-text-secondary); }
231
+ .bizz-text-disabled { color: var(--bizz-text-disabled); }
232
+ .bizz-text-inverse { color: var(--bizz-text-inverse); }
233
+ .bizz-text-brand { color: var(--bizz-link-primary); }
234
+ .bizz-text-error { color: var(--bizz-text-error); }
235
+ .bizz-text-success { color: var(--bizz-support-success); }
236
+ .bizz-text-warning { color: var(--bizz-support-warning); }
237
+ `;
238
+ if (typeof document !== "undefined" && !document.getElementById("bizz-tokens")) {
239
+ const style = document.createElement("style");
240
+ style.id = "bizz-tokens";
241
+ style.textContent = TOKENS_CSS;
242
+ document.head.appendChild(style);
243
+ }
244
+
245
+ // node_modules/@lit-labs/ssr-dom-shim/lib/element-internals.js
246
+ var ElementInternalsShim = class ElementInternals {
247
+ get shadowRoot() {
248
+ return this.__host.__shadowRoot;
249
+ }
250
+ constructor(_host) {
251
+ this.ariaActiveDescendantElement = null;
252
+ this.ariaAtomic = "";
253
+ this.ariaAutoComplete = "";
254
+ this.ariaBrailleLabel = "";
255
+ this.ariaBrailleRoleDescription = "";
256
+ this.ariaBusy = "";
257
+ this.ariaChecked = "";
258
+ this.ariaColCount = "";
259
+ this.ariaColIndex = "";
260
+ this.ariaColIndexText = "";
261
+ this.ariaColSpan = "";
262
+ this.ariaControlsElements = null;
263
+ this.ariaCurrent = "";
264
+ this.ariaDescribedByElements = null;
265
+ this.ariaDescription = "";
266
+ this.ariaDetailsElements = null;
267
+ this.ariaDisabled = "";
268
+ this.ariaErrorMessageElements = null;
269
+ this.ariaExpanded = "";
270
+ this.ariaFlowToElements = null;
271
+ this.ariaHasPopup = "";
272
+ this.ariaHidden = "";
273
+ this.ariaInvalid = "";
274
+ this.ariaKeyShortcuts = "";
275
+ this.ariaLabel = "";
276
+ this.ariaLabelledByElements = null;
277
+ this.ariaLevel = "";
278
+ this.ariaLive = "";
279
+ this.ariaModal = "";
280
+ this.ariaMultiLine = "";
281
+ this.ariaMultiSelectable = "";
282
+ this.ariaOrientation = "";
283
+ this.ariaOwnsElements = null;
284
+ this.ariaPlaceholder = "";
285
+ this.ariaPosInSet = "";
286
+ this.ariaPressed = "";
287
+ this.ariaReadOnly = "";
288
+ this.ariaRelevant = "";
289
+ this.ariaRequired = "";
290
+ this.ariaRoleDescription = "";
291
+ this.ariaRowCount = "";
292
+ this.ariaRowIndex = "";
293
+ this.ariaRowIndexText = "";
294
+ this.ariaRowSpan = "";
295
+ this.ariaSelected = "";
296
+ this.ariaSetSize = "";
297
+ this.ariaSort = "";
298
+ this.ariaValueMax = "";
299
+ this.ariaValueMin = "";
300
+ this.ariaValueNow = "";
301
+ this.ariaValueText = "";
302
+ this.role = "";
303
+ this.form = null;
304
+ this.labels = [];
305
+ this.states = /* @__PURE__ */ new Set();
306
+ this.validationMessage = "";
307
+ this.validity = {};
308
+ this.willValidate = true;
309
+ this.__host = _host;
310
+ }
311
+ checkValidity() {
312
+ console.warn("`ElementInternals.checkValidity()` was called on the server.This method always returns true.");
313
+ return true;
314
+ }
315
+ reportValidity() {
316
+ return true;
317
+ }
318
+ setFormValue() {
319
+ }
320
+ setValidity() {
321
+ }
322
+ };
323
+
324
+ // node_modules/@lit-labs/ssr-dom-shim/lib/events.js
325
+ var __classPrivateFieldSet = function(receiver, state, value, kind, f3) {
326
+ if (typeof state === "function" ? receiver !== state || true : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
327
+ return state.set(receiver, value), value;
328
+ };
329
+ var __classPrivateFieldGet = function(receiver, state, kind, f3) {
330
+ if (typeof state === "function" ? receiver !== state || !f3 : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
331
+ return kind === "m" ? f3 : kind === "a" ? f3.call(receiver) : f3 ? f3.value : state.get(receiver);
332
+ };
333
+ var _Event_cancelable;
334
+ var _Event_bubbles;
335
+ var _Event_composed;
336
+ var _Event_defaultPrevented;
337
+ var _Event_timestamp;
338
+ var _Event_propagationStopped;
339
+ var _Event_type;
340
+ var _Event_target;
341
+ var _Event_isBeingDispatched;
342
+ var _a;
343
+ var _CustomEvent_detail;
344
+ var _b;
345
+ var NONE = 0;
346
+ var CAPTURING_PHASE = 1;
347
+ var AT_TARGET = 2;
348
+ var BUBBLING_PHASE = 3;
349
+ var enumerableProperty = { __proto__: null };
350
+ enumerableProperty.enumerable = true;
351
+ Object.freeze(enumerableProperty);
352
+ var EventShim = (_a = class Event {
353
+ constructor(type, options = {}) {
354
+ _Event_cancelable.set(this, false);
355
+ _Event_bubbles.set(this, false);
356
+ _Event_composed.set(this, false);
357
+ _Event_defaultPrevented.set(this, false);
358
+ _Event_timestamp.set(this, Date.now());
359
+ _Event_propagationStopped.set(this, false);
360
+ _Event_type.set(this, void 0);
361
+ _Event_target.set(this, void 0);
362
+ _Event_isBeingDispatched.set(this, void 0);
363
+ this.NONE = NONE;
364
+ this.CAPTURING_PHASE = CAPTURING_PHASE;
365
+ this.AT_TARGET = AT_TARGET;
366
+ this.BUBBLING_PHASE = BUBBLING_PHASE;
367
+ if (arguments.length === 0)
368
+ throw new Error(`The type argument must be specified`);
369
+ if (typeof options !== "object" || !options) {
370
+ throw new Error(`The "options" argument must be an object`);
371
+ }
372
+ const { bubbles, cancelable, composed } = options;
373
+ __classPrivateFieldSet(this, _Event_cancelable, !!cancelable);
374
+ __classPrivateFieldSet(this, _Event_bubbles, !!bubbles);
375
+ __classPrivateFieldSet(this, _Event_composed, !!composed);
376
+ __classPrivateFieldSet(this, _Event_type, `${type}`);
377
+ __classPrivateFieldSet(this, _Event_target, null);
378
+ __classPrivateFieldSet(this, _Event_isBeingDispatched, false);
379
+ }
380
+ initEvent(_type, _bubbles, _cancelable) {
381
+ throw new Error("Method not implemented.");
382
+ }
383
+ stopImmediatePropagation() {
384
+ this.stopPropagation();
385
+ }
386
+ preventDefault() {
387
+ __classPrivateFieldSet(this, _Event_defaultPrevented, true);
388
+ }
389
+ get target() {
390
+ return __classPrivateFieldGet(this, _Event_target, "f");
391
+ }
392
+ get currentTarget() {
393
+ return __classPrivateFieldGet(this, _Event_target, "f");
394
+ }
395
+ get srcElement() {
396
+ return __classPrivateFieldGet(this, _Event_target, "f");
397
+ }
398
+ get type() {
399
+ return __classPrivateFieldGet(this, _Event_type, "f");
400
+ }
401
+ get cancelable() {
402
+ return __classPrivateFieldGet(this, _Event_cancelable, "f");
403
+ }
404
+ get defaultPrevented() {
405
+ return __classPrivateFieldGet(this, _Event_cancelable, "f") && __classPrivateFieldGet(this, _Event_defaultPrevented, "f");
406
+ }
407
+ get timeStamp() {
408
+ return __classPrivateFieldGet(this, _Event_timestamp, "f");
409
+ }
410
+ composedPath() {
411
+ return __classPrivateFieldGet(this, _Event_isBeingDispatched, "f") ? [__classPrivateFieldGet(this, _Event_target, "f")] : [];
412
+ }
413
+ get returnValue() {
414
+ return !__classPrivateFieldGet(this, _Event_cancelable, "f") || !__classPrivateFieldGet(this, _Event_defaultPrevented, "f");
415
+ }
416
+ get bubbles() {
417
+ return __classPrivateFieldGet(this, _Event_bubbles, "f");
418
+ }
419
+ get composed() {
420
+ return __classPrivateFieldGet(this, _Event_composed, "f");
421
+ }
422
+ get eventPhase() {
423
+ return __classPrivateFieldGet(this, _Event_isBeingDispatched, "f") ? _a.AT_TARGET : _a.NONE;
424
+ }
425
+ get cancelBubble() {
426
+ return __classPrivateFieldGet(this, _Event_propagationStopped, "f");
427
+ }
428
+ set cancelBubble(value) {
429
+ if (value) {
430
+ __classPrivateFieldSet(this, _Event_propagationStopped, true);
431
+ }
432
+ }
433
+ stopPropagation() {
434
+ __classPrivateFieldSet(this, _Event_propagationStopped, true);
435
+ }
436
+ get isTrusted() {
437
+ return false;
438
+ }
439
+ }, _Event_cancelable = /* @__PURE__ */ new WeakMap(), _Event_bubbles = /* @__PURE__ */ new WeakMap(), _Event_composed = /* @__PURE__ */ new WeakMap(), _Event_defaultPrevented = /* @__PURE__ */ new WeakMap(), _Event_timestamp = /* @__PURE__ */ new WeakMap(), _Event_propagationStopped = /* @__PURE__ */ new WeakMap(), _Event_type = /* @__PURE__ */ new WeakMap(), _Event_target = /* @__PURE__ */ new WeakMap(), _Event_isBeingDispatched = /* @__PURE__ */ new WeakMap(), _a.NONE = NONE, _a.CAPTURING_PHASE = CAPTURING_PHASE, _a.AT_TARGET = AT_TARGET, _a.BUBBLING_PHASE = BUBBLING_PHASE, _a);
440
+ Object.defineProperties(EventShim.prototype, {
441
+ initEvent: enumerableProperty,
442
+ stopImmediatePropagation: enumerableProperty,
443
+ preventDefault: enumerableProperty,
444
+ target: enumerableProperty,
445
+ currentTarget: enumerableProperty,
446
+ srcElement: enumerableProperty,
447
+ type: enumerableProperty,
448
+ cancelable: enumerableProperty,
449
+ defaultPrevented: enumerableProperty,
450
+ timeStamp: enumerableProperty,
451
+ composedPath: enumerableProperty,
452
+ returnValue: enumerableProperty,
453
+ bubbles: enumerableProperty,
454
+ composed: enumerableProperty,
455
+ eventPhase: enumerableProperty,
456
+ cancelBubble: enumerableProperty,
457
+ stopPropagation: enumerableProperty,
458
+ isTrusted: enumerableProperty
459
+ });
460
+ var CustomEventShim = (_b = class CustomEvent2 extends EventShim {
461
+ constructor(type, options = {}) {
462
+ super(type, options);
463
+ _CustomEvent_detail.set(this, void 0);
464
+ __classPrivateFieldSet(this, _CustomEvent_detail, options?.detail ?? null);
465
+ }
466
+ initCustomEvent(_type, _bubbles, _cancelable, _detail) {
467
+ throw new Error("Method not implemented.");
468
+ }
469
+ get detail() {
470
+ return __classPrivateFieldGet(this, _CustomEvent_detail, "f");
471
+ }
472
+ }, _CustomEvent_detail = /* @__PURE__ */ new WeakMap(), _b);
473
+ Object.defineProperties(CustomEventShim.prototype, {
474
+ detail: enumerableProperty
475
+ });
476
+ var EventShimWithRealType = EventShim;
477
+ var CustomEventShimWithRealType = CustomEventShim;
478
+
479
+ // node_modules/@lit-labs/ssr-dom-shim/lib/css.js
480
+ var _a2;
481
+ (_a2 = class CSSRule {
482
+ constructor() {
483
+ this.STYLE_RULE = 1;
484
+ this.CHARSET_RULE = 2;
485
+ this.IMPORT_RULE = 3;
486
+ this.MEDIA_RULE = 4;
487
+ this.FONT_FACE_RULE = 5;
488
+ this.PAGE_RULE = 6;
489
+ this.NAMESPACE_RULE = 10;
490
+ this.KEYFRAMES_RULE = 7;
491
+ this.KEYFRAME_RULE = 8;
492
+ this.SUPPORTS_RULE = 12;
493
+ this.COUNTER_STYLE_RULE = 11;
494
+ this.FONT_FEATURE_VALUES_RULE = 14;
495
+ this.MARGIN_RULE = 9;
496
+ this.__parentStyleSheet = null;
497
+ this.cssText = "";
498
+ }
499
+ get parentRule() {
500
+ return null;
501
+ }
502
+ get parentStyleSheet() {
503
+ return this.__parentStyleSheet;
504
+ }
505
+ get type() {
506
+ return 0;
507
+ }
508
+ }, _a2.STYLE_RULE = 1, _a2.CHARSET_RULE = 2, _a2.IMPORT_RULE = 3, _a2.MEDIA_RULE = 4, _a2.FONT_FACE_RULE = 5, _a2.PAGE_RULE = 6, _a2.NAMESPACE_RULE = 10, _a2.KEYFRAMES_RULE = 7, _a2.KEYFRAME_RULE = 8, _a2.SUPPORTS_RULE = 12, _a2.COUNTER_STYLE_RULE = 11, _a2.FONT_FEATURE_VALUES_RULE = 14, _a2.MARGIN_RULE = 9, _a2);
509
+
510
+ // node_modules/@lit-labs/ssr-dom-shim/index.js
511
+ globalThis.Event ?? (globalThis.Event = EventShimWithRealType);
512
+ globalThis.CustomEvent ?? (globalThis.CustomEvent = CustomEventShimWithRealType);
513
+ var constructionToken = /* @__PURE__ */ Symbol();
514
+ var isCaptureEventListener = (options) => typeof options === "boolean" ? options : options?.capture ?? false;
515
+ var enumerableProperty2 = { __proto__: null };
516
+ enumerableProperty2.enumerable = true;
517
+ Object.freeze(enumerableProperty2);
518
+ var EventTarget = class {
519
+ constructor() {
520
+ this.__eventListeners = /* @__PURE__ */ new Map();
521
+ this.__captureEventListeners = /* @__PURE__ */ new Map();
522
+ }
523
+ addEventListener(type, callback, options) {
524
+ if (callback === void 0 || callback === null) {
525
+ return;
526
+ }
527
+ const eventListenersMap = isCaptureEventListener(options) ? this.__captureEventListeners : this.__eventListeners;
528
+ let eventListeners = eventListenersMap.get(type);
529
+ if (eventListeners === void 0) {
530
+ eventListeners = /* @__PURE__ */ new Map();
531
+ eventListenersMap.set(type, eventListeners);
532
+ } else if (eventListeners.has(callback)) {
533
+ return;
534
+ }
535
+ const normalizedOptions = typeof options === "object" && options ? options : {};
536
+ normalizedOptions.signal?.addEventListener("abort", () => this.removeEventListener(type, callback, options));
537
+ eventListeners.set(callback, normalizedOptions ?? {});
538
+ }
539
+ removeEventListener(type, callback, options) {
540
+ if (callback === void 0 || callback === null) {
541
+ return;
542
+ }
543
+ const eventListenersMap = isCaptureEventListener(options) ? this.__captureEventListeners : this.__eventListeners;
544
+ const eventListeners = eventListenersMap.get(type);
545
+ if (eventListeners !== void 0) {
546
+ eventListeners.delete(callback);
547
+ if (!eventListeners.size) {
548
+ eventListenersMap.delete(type);
549
+ }
550
+ }
551
+ }
552
+ dispatchEvent(event) {
553
+ let composedPath = this.__resolveFullEventPath();
554
+ if (!event.composed && this.__host) {
555
+ composedPath = composedPath.slice(0, composedPath.indexOf(this.__host));
556
+ }
557
+ let stopPropagation = false;
558
+ let stopImmediatePropagation = false;
559
+ let eventPhase = EventShimWithRealType.NONE;
560
+ let target = null;
561
+ let tmpTarget = null;
562
+ let currentTarget = null;
563
+ const originalStopPropagation = event.stopPropagation;
564
+ const originalStopImmediatePropagation = event.stopImmediatePropagation;
565
+ Object.defineProperties(event, {
566
+ target: {
567
+ get() {
568
+ return target ?? tmpTarget;
569
+ },
570
+ ...enumerableProperty2
571
+ },
572
+ srcElement: {
573
+ get() {
574
+ return event.target;
575
+ },
576
+ ...enumerableProperty2
577
+ },
578
+ currentTarget: {
579
+ get() {
580
+ return currentTarget;
581
+ },
582
+ ...enumerableProperty2
583
+ },
584
+ eventPhase: {
585
+ get() {
586
+ return eventPhase;
587
+ },
588
+ ...enumerableProperty2
589
+ },
590
+ composedPath: {
591
+ value: () => composedPath,
592
+ ...enumerableProperty2
593
+ },
594
+ stopPropagation: {
595
+ value: () => {
596
+ stopPropagation = true;
597
+ originalStopPropagation.call(event);
598
+ },
599
+ ...enumerableProperty2
600
+ },
601
+ stopImmediatePropagation: {
602
+ value: () => {
603
+ stopImmediatePropagation = true;
604
+ originalStopImmediatePropagation.call(event);
605
+ },
606
+ ...enumerableProperty2
607
+ }
608
+ });
609
+ const invokeEventListener = (listener, options, eventListenerMap) => {
610
+ if (typeof listener === "function") {
611
+ listener(event);
612
+ } else if (typeof listener?.handleEvent === "function") {
613
+ listener.handleEvent(event);
614
+ }
615
+ if (options.once) {
616
+ eventListenerMap.delete(listener);
617
+ }
618
+ };
619
+ const finishDispatch = () => {
620
+ currentTarget = null;
621
+ eventPhase = EventShimWithRealType.NONE;
622
+ return !event.defaultPrevented;
623
+ };
624
+ const captureEventPath = composedPath.slice().reverse();
625
+ target = !this.__host || !event.composed ? this : null;
626
+ const retarget = (eventTargets) => {
627
+ tmpTarget = this;
628
+ while (tmpTarget.__host && eventTargets.includes(tmpTarget.__host)) {
629
+ tmpTarget = tmpTarget.__host;
630
+ }
631
+ };
632
+ for (const eventTarget of captureEventPath) {
633
+ if (!target && (!tmpTarget || tmpTarget === eventTarget.__host)) {
634
+ retarget(captureEventPath.slice(captureEventPath.indexOf(eventTarget)));
635
+ }
636
+ currentTarget = eventTarget;
637
+ eventPhase = eventTarget === event.target ? EventShimWithRealType.AT_TARGET : EventShimWithRealType.CAPTURING_PHASE;
638
+ const captureEventListeners = eventTarget.__captureEventListeners.get(event.type);
639
+ if (captureEventListeners) {
640
+ for (const [listener, options] of captureEventListeners) {
641
+ invokeEventListener(listener, options, captureEventListeners);
642
+ if (stopImmediatePropagation) {
643
+ return finishDispatch();
644
+ }
645
+ }
646
+ }
647
+ if (stopPropagation) {
648
+ return finishDispatch();
649
+ }
650
+ }
651
+ const bubbleEventPath = event.bubbles ? composedPath : [this];
652
+ tmpTarget = null;
653
+ for (const eventTarget of bubbleEventPath) {
654
+ if (!target && (!tmpTarget || eventTarget === tmpTarget.__host)) {
655
+ retarget(bubbleEventPath.slice(0, bubbleEventPath.indexOf(eventTarget) + 1));
656
+ }
657
+ currentTarget = eventTarget;
658
+ eventPhase = eventTarget === event.target ? EventShimWithRealType.AT_TARGET : EventShimWithRealType.BUBBLING_PHASE;
659
+ const eventListeners = eventTarget.__eventListeners.get(event.type);
660
+ if (eventListeners) {
661
+ for (const [listener, options] of eventListeners) {
662
+ invokeEventListener(listener, options, eventListeners);
663
+ if (stopImmediatePropagation) {
664
+ return finishDispatch();
665
+ }
666
+ }
667
+ }
668
+ if (stopPropagation) {
669
+ return finishDispatch();
670
+ }
671
+ }
672
+ return finishDispatch();
673
+ }
674
+ __resolveFullEventPath() {
675
+ if (this.__eventPathCache) {
676
+ return this.__eventPathCache;
677
+ } else if (!this.__eventTargetParent) {
678
+ return this.__eventPathCache = [this, documentShim, windowShim];
679
+ } else {
680
+ return this.__eventPathCache = [
681
+ this,
682
+ ...this.__eventTargetParent.__resolveFullEventPath()
683
+ ];
684
+ }
685
+ }
686
+ };
687
+ var attributes = /* @__PURE__ */ new WeakMap();
688
+ var attributesForElement = (element) => {
689
+ let attrs = attributes.get(element);
690
+ if (attrs === void 0) {
691
+ attributes.set(element, attrs = /* @__PURE__ */ new Map());
692
+ }
693
+ return attrs;
694
+ };
695
+ var NodeShim = class Node extends EventTarget {
696
+ getRootNode(options) {
697
+ if (options?.composed) {
698
+ return document2;
699
+ }
700
+ const host = this.__host;
701
+ return host?.__shadowRoot ?? document2;
702
+ }
703
+ };
704
+ var DocumentShim = class Document2 extends NodeShim {
705
+ get adoptedStyleSheets() {
706
+ return [];
707
+ }
708
+ createTreeWalker() {
709
+ return {};
710
+ }
711
+ createTextNode() {
712
+ return {};
713
+ }
714
+ createElement() {
715
+ return {};
716
+ }
717
+ };
718
+ var documentShim = new DocumentShim();
719
+ var document2 = documentShim;
720
+ var WindowShim = class Window extends NodeShim {
721
+ constructor(token) {
722
+ super();
723
+ if (token !== constructionToken) {
724
+ throw new TypeError("Illegal constructor");
725
+ }
726
+ Object.assign(this, globalThis, {
727
+ CustomElementRegistry,
728
+ customElements: customElements2,
729
+ document: document2,
730
+ Document: DocumentShim,
731
+ Element: ElementShim,
732
+ EventTarget,
733
+ HTMLElement: HTMLElementShim,
734
+ Node: NodeShim,
735
+ ShadowRoot: ShadowRootShim,
736
+ window: this,
737
+ Window: WindowShim
738
+ });
739
+ }
740
+ };
741
+ var ElementShim = class Element extends NodeShim {
742
+ constructor() {
743
+ super(...arguments);
744
+ this.__shadowRootMode = null;
745
+ this.__shadowRoot = null;
746
+ this.__internals = null;
747
+ }
748
+ get attributes() {
749
+ return Array.from(attributesForElement(this)).map(([name, value]) => ({
750
+ name,
751
+ value
752
+ }));
753
+ }
754
+ get shadowRoot() {
755
+ if (this.__shadowRootMode === "closed") {
756
+ return null;
757
+ }
758
+ return this.__shadowRoot;
759
+ }
760
+ get localName() {
761
+ return this.constructor.__localName;
762
+ }
763
+ get tagName() {
764
+ return this.localName?.toUpperCase();
765
+ }
766
+ setAttribute(name, value) {
767
+ attributesForElement(this).set(name, String(value));
768
+ }
769
+ removeAttribute(name) {
770
+ attributesForElement(this).delete(name);
771
+ }
772
+ toggleAttribute(name, force) {
773
+ if (this.hasAttribute(name)) {
774
+ if (force === void 0 || !force) {
775
+ this.removeAttribute(name);
776
+ return false;
777
+ }
778
+ } else {
779
+ if (force === void 0 || force) {
780
+ this.setAttribute(name, "");
781
+ return true;
782
+ } else {
783
+ return false;
784
+ }
785
+ }
786
+ return true;
787
+ }
788
+ hasAttribute(name) {
789
+ return attributesForElement(this).has(name);
790
+ }
791
+ attachShadow(init) {
792
+ this.__shadowRootMode = init.mode;
793
+ const shadowRoot = new ShadowRootShim(constructionToken, init);
794
+ shadowRoot.__eventTargetParent = this;
795
+ shadowRoot.__host = this;
796
+ return this.__shadowRoot = shadowRoot;
797
+ }
798
+ attachInternals() {
799
+ if (this.__internals !== null) {
800
+ throw new Error(`Failed to execute 'attachInternals' on 'HTMLElement': ElementInternals for the specified element was already attached.`);
801
+ }
802
+ const internals = new ElementInternalsShim(this);
803
+ this.__internals = internals;
804
+ return internals;
805
+ }
806
+ getAttribute(name) {
807
+ const value = attributesForElement(this).get(name);
808
+ return value ?? null;
809
+ }
810
+ };
811
+ var HTMLElementShim = class HTMLElement extends ElementShim {
812
+ };
813
+ var HTMLElementShimWithRealType = HTMLElementShim;
814
+ var ShadowRootShim = class ShadowRoot extends NodeShim {
815
+ get host() {
816
+ return this.__host;
817
+ }
818
+ constructor(constructionToken2, init) {
819
+ super();
820
+ if (constructionToken2 !== constructionToken2) {
821
+ throw new TypeError("Illegal constructor");
822
+ }
823
+ this.mode = init.mode;
824
+ }
825
+ };
826
+ globalThis.litServerRoot ?? (globalThis.litServerRoot = Object.defineProperty(new HTMLElementShimWithRealType(), "localName", {
827
+ // Patch localName (and tagName) to return a unique name.
828
+ get() {
829
+ return "lit-server-root";
830
+ }
831
+ }));
832
+ function promiseWithResolvers() {
833
+ let resolve;
834
+ let reject;
835
+ const promise = new Promise((res, rej) => {
836
+ resolve = res;
837
+ reject = rej;
838
+ });
839
+ return { promise, resolve, reject };
840
+ }
841
+ var CustomElementRegistry = class {
842
+ constructor() {
843
+ this.__definitions = /* @__PURE__ */ new Map();
844
+ this.__reverseDefinitions = /* @__PURE__ */ new Map();
845
+ this.__pendingWhenDefineds = /* @__PURE__ */ new Map();
846
+ }
847
+ define(name, ctor) {
848
+ if (this.__definitions.has(name)) {
849
+ if (process.env.NODE_ENV === "development") {
850
+ console.warn(`'CustomElementRegistry' already has "${name}" defined. This may have been caused by live reload or hot module replacement in which case it can be safely ignored.
851
+ Make sure to test your application with a production build as repeat registrations will throw in production.`);
852
+ } else {
853
+ throw new Error(`Failed to execute 'define' on 'CustomElementRegistry': the name "${name}" has already been used with this registry`);
854
+ }
855
+ }
856
+ if (this.__reverseDefinitions.has(ctor)) {
857
+ throw new Error(`Failed to execute 'define' on 'CustomElementRegistry': the constructor has already been used with this registry for the tag name ${this.__reverseDefinitions.get(ctor)}`);
858
+ }
859
+ ctor.__localName = name;
860
+ this.__definitions.set(name, {
861
+ ctor,
862
+ // Note it's important we read `observedAttributes` in case it is a getter
863
+ // with side-effects, as is the case in Lit, where it triggers class
864
+ // finalization.
865
+ //
866
+ // TODO(aomarks) To be spec compliant, we should also capture the
867
+ // registration-time lifecycle methods like `connectedCallback`. For them
868
+ // to be actually accessible to e.g. the Lit SSR element renderer, though,
869
+ // we'd need to introduce a new API for accessing them (since `get` only
870
+ // returns the constructor).
871
+ observedAttributes: ctor.observedAttributes ?? []
872
+ });
873
+ this.__reverseDefinitions.set(ctor, name);
874
+ this.__pendingWhenDefineds.get(name)?.resolve(ctor);
875
+ this.__pendingWhenDefineds.delete(name);
876
+ }
877
+ get(name) {
878
+ const definition = this.__definitions.get(name);
879
+ return definition?.ctor;
880
+ }
881
+ getName(ctor) {
882
+ return this.__reverseDefinitions.get(ctor) ?? null;
883
+ }
884
+ initialize(_root) {
885
+ throw new Error(`customElements.initialize is not currently supported in SSR. Please file a bug if you need it.`);
886
+ }
887
+ upgrade(_element) {
888
+ throw new Error(`customElements.upgrade is not currently supported in SSR. Please file a bug if you need it.`);
889
+ }
890
+ async whenDefined(name) {
891
+ const definition = this.__definitions.get(name);
892
+ if (definition) {
893
+ return definition.ctor;
894
+ }
895
+ let withResolvers = this.__pendingWhenDefineds.get(name);
896
+ if (!withResolvers) {
897
+ withResolvers = promiseWithResolvers();
898
+ this.__pendingWhenDefineds.set(name, withResolvers);
899
+ }
900
+ return withResolvers.promise;
901
+ }
902
+ };
903
+ var CustomElementRegistryShimWithRealType = CustomElementRegistry;
904
+ var customElements2 = new CustomElementRegistryShimWithRealType();
905
+ var windowShim = new WindowShim(constructionToken);
906
+
907
+ // node_modules/@lit/reactive-element/node/css-tag.js
908
+ var t = globalThis;
909
+ var e = t.ShadowRoot && (void 0 === t.ShadyCSS || t.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype;
910
+ var s = /* @__PURE__ */ Symbol();
911
+ var o = /* @__PURE__ */ new WeakMap();
912
+ var n = class {
913
+ constructor(t3, e3, o5) {
914
+ if (this._$cssResult$ = true, o5 !== s) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
915
+ this.cssText = t3, this.t = e3;
916
+ }
917
+ get styleSheet() {
918
+ let t3 = this.o;
919
+ const s4 = this.t;
920
+ if (e && void 0 === t3) {
921
+ const e3 = void 0 !== s4 && 1 === s4.length;
922
+ e3 && (t3 = o.get(s4)), void 0 === t3 && ((this.o = t3 = new CSSStyleSheet()).replaceSync(this.cssText), e3 && o.set(s4, t3));
923
+ }
924
+ return t3;
925
+ }
926
+ toString() {
927
+ return this.cssText;
928
+ }
929
+ };
930
+ var r = (t3) => new n("string" == typeof t3 ? t3 : t3 + "", void 0, s);
931
+ var i = (t3, ...e3) => {
932
+ const o5 = 1 === t3.length ? t3[0] : e3.reduce((e4, s4, o6) => e4 + ((t4) => {
933
+ if (true === t4._$cssResult$) return t4.cssText;
934
+ if ("number" == typeof t4) return t4;
935
+ throw Error("Value passed to 'css' function must be a 'css' function result: " + t4 + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.");
936
+ })(s4) + t3[o6 + 1], t3[0]);
937
+ return new n(o5, t3, s);
938
+ };
939
+ var S = (s4, o5) => {
940
+ if (e) s4.adoptedStyleSheets = o5.map((t3) => t3 instanceof CSSStyleSheet ? t3 : t3.styleSheet);
941
+ else for (const e3 of o5) {
942
+ const o6 = document.createElement("style"), n4 = t.litNonce;
943
+ void 0 !== n4 && o6.setAttribute("nonce", n4), o6.textContent = e3.cssText, s4.appendChild(o6);
944
+ }
945
+ };
946
+ var c = e || void 0 === t.CSSStyleSheet ? (t3) => t3 : (t3) => t3 instanceof CSSStyleSheet ? ((t4) => {
947
+ let e3 = "";
948
+ for (const s4 of t4.cssRules) e3 += s4.cssText;
949
+ return r(e3);
950
+ })(t3) : t3;
951
+
952
+ // node_modules/@lit/reactive-element/node/reactive-element.js
953
+ var { is: h, defineProperty: r2, getOwnPropertyDescriptor: o2, getOwnPropertyNames: n2, getOwnPropertySymbols: a, getPrototypeOf: c2 } = Object;
954
+ var l = globalThis;
955
+ l.customElements ?? (l.customElements = customElements2);
956
+ var p = l.trustedTypes;
957
+ var d = p ? p.emptyScript : "";
958
+ var u = l.reactiveElementPolyfillSupport;
959
+ var f = (t3, s4) => t3;
960
+ var b = { toAttribute(t3, s4) {
961
+ switch (s4) {
962
+ case Boolean:
963
+ t3 = t3 ? d : null;
964
+ break;
965
+ case Object:
966
+ case Array:
967
+ t3 = null == t3 ? t3 : JSON.stringify(t3);
968
+ }
969
+ return t3;
970
+ }, fromAttribute(t3, s4) {
971
+ let i4 = t3;
972
+ switch (s4) {
973
+ case Boolean:
974
+ i4 = null !== t3;
975
+ break;
976
+ case Number:
977
+ i4 = null === t3 ? null : Number(t3);
978
+ break;
979
+ case Object:
980
+ case Array:
981
+ try {
982
+ i4 = JSON.parse(t3);
983
+ } catch (t4) {
984
+ i4 = null;
985
+ }
986
+ }
987
+ return i4;
988
+ } };
989
+ var m = (t3, s4) => !h(t3, s4);
990
+ var y = { attribute: true, type: String, converter: b, reflect: false, useDefault: false, hasChanged: m };
991
+ Symbol.metadata ?? (Symbol.metadata = /* @__PURE__ */ Symbol("metadata")), l.litPropertyMetadata ?? (l.litPropertyMetadata = /* @__PURE__ */ new WeakMap());
992
+ var g = class extends (globalThis.HTMLElement ?? HTMLElementShimWithRealType) {
993
+ static addInitializer(t3) {
994
+ this._$Ei(), (this.l ?? (this.l = [])).push(t3);
995
+ }
996
+ static get observedAttributes() {
997
+ return this.finalize(), this._$Eh && [...this._$Eh.keys()];
998
+ }
999
+ static createProperty(t3, s4 = y) {
1000
+ if (s4.state && (s4.attribute = false), this._$Ei(), this.prototype.hasOwnProperty(t3) && ((s4 = Object.create(s4)).wrapped = true), this.elementProperties.set(t3, s4), !s4.noAccessor) {
1001
+ const i4 = /* @__PURE__ */ Symbol(), e3 = this.getPropertyDescriptor(t3, i4, s4);
1002
+ void 0 !== e3 && r2(this.prototype, t3, e3);
1003
+ }
1004
+ }
1005
+ static getPropertyDescriptor(t3, s4, i4) {
1006
+ const { get: e3, set: h3 } = o2(this.prototype, t3) ?? { get() {
1007
+ return this[s4];
1008
+ }, set(t4) {
1009
+ this[s4] = t4;
1010
+ } };
1011
+ return { get: e3, set(s5) {
1012
+ const r4 = e3?.call(this);
1013
+ h3?.call(this, s5), this.requestUpdate(t3, r4, i4);
1014
+ }, configurable: true, enumerable: true };
1015
+ }
1016
+ static getPropertyOptions(t3) {
1017
+ return this.elementProperties.get(t3) ?? y;
1018
+ }
1019
+ static _$Ei() {
1020
+ if (this.hasOwnProperty(f("elementProperties"))) return;
1021
+ const t3 = c2(this);
1022
+ t3.finalize(), void 0 !== t3.l && (this.l = [...t3.l]), this.elementProperties = new Map(t3.elementProperties);
1023
+ }
1024
+ static finalize() {
1025
+ if (this.hasOwnProperty(f("finalized"))) return;
1026
+ if (this.finalized = true, this._$Ei(), this.hasOwnProperty(f("properties"))) {
1027
+ const t4 = this.properties, s4 = [...n2(t4), ...a(t4)];
1028
+ for (const i4 of s4) this.createProperty(i4, t4[i4]);
1029
+ }
1030
+ const t3 = this[Symbol.metadata];
1031
+ if (null !== t3) {
1032
+ const s4 = litPropertyMetadata.get(t3);
1033
+ if (void 0 !== s4) for (const [t4, i4] of s4) this.elementProperties.set(t4, i4);
1034
+ }
1035
+ this._$Eh = /* @__PURE__ */ new Map();
1036
+ for (const [t4, s4] of this.elementProperties) {
1037
+ const i4 = this._$Eu(t4, s4);
1038
+ void 0 !== i4 && this._$Eh.set(i4, t4);
1039
+ }
1040
+ this.elementStyles = this.finalizeStyles(this.styles);
1041
+ }
1042
+ static finalizeStyles(t3) {
1043
+ const s4 = [];
1044
+ if (Array.isArray(t3)) {
1045
+ const e3 = new Set(t3.flat(1 / 0).reverse());
1046
+ for (const t4 of e3) s4.unshift(c(t4));
1047
+ } else void 0 !== t3 && s4.push(c(t3));
1048
+ return s4;
1049
+ }
1050
+ static _$Eu(t3, s4) {
1051
+ const i4 = s4.attribute;
1052
+ return false === i4 ? void 0 : "string" == typeof i4 ? i4 : "string" == typeof t3 ? t3.toLowerCase() : void 0;
1053
+ }
1054
+ constructor() {
1055
+ super(), this._$Ep = void 0, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev();
1056
+ }
1057
+ _$Ev() {
1058
+ this._$ES = new Promise((t3) => this.enableUpdating = t3), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((t3) => t3(this));
1059
+ }
1060
+ addController(t3) {
1061
+ (this._$EO ?? (this._$EO = /* @__PURE__ */ new Set())).add(t3), void 0 !== this.renderRoot && this.isConnected && t3.hostConnected?.();
1062
+ }
1063
+ removeController(t3) {
1064
+ this._$EO?.delete(t3);
1065
+ }
1066
+ _$E_() {
1067
+ const t3 = /* @__PURE__ */ new Map(), s4 = this.constructor.elementProperties;
1068
+ for (const i4 of s4.keys()) this.hasOwnProperty(i4) && (t3.set(i4, this[i4]), delete this[i4]);
1069
+ t3.size > 0 && (this._$Ep = t3);
1070
+ }
1071
+ createRenderRoot() {
1072
+ const t3 = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
1073
+ return S(t3, this.constructor.elementStyles), t3;
1074
+ }
1075
+ connectedCallback() {
1076
+ this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this.enableUpdating(true), this._$EO?.forEach((t3) => t3.hostConnected?.());
1077
+ }
1078
+ enableUpdating(t3) {
1079
+ }
1080
+ disconnectedCallback() {
1081
+ this._$EO?.forEach((t3) => t3.hostDisconnected?.());
1082
+ }
1083
+ attributeChangedCallback(t3, s4, i4) {
1084
+ this._$AK(t3, i4);
1085
+ }
1086
+ _$ET(t3, s4) {
1087
+ const i4 = this.constructor.elementProperties.get(t3), e3 = this.constructor._$Eu(t3, i4);
1088
+ if (void 0 !== e3 && true === i4.reflect) {
1089
+ const h3 = (void 0 !== i4.converter?.toAttribute ? i4.converter : b).toAttribute(s4, i4.type);
1090
+ this._$Em = t3, null == h3 ? this.removeAttribute(e3) : this.setAttribute(e3, h3), this._$Em = null;
1091
+ }
1092
+ }
1093
+ _$AK(t3, s4) {
1094
+ const i4 = this.constructor, e3 = i4._$Eh.get(t3);
1095
+ if (void 0 !== e3 && this._$Em !== e3) {
1096
+ const t4 = i4.getPropertyOptions(e3), h3 = "function" == typeof t4.converter ? { fromAttribute: t4.converter } : void 0 !== t4.converter?.fromAttribute ? t4.converter : b;
1097
+ this._$Em = e3;
1098
+ const r4 = h3.fromAttribute(s4, t4.type);
1099
+ this[e3] = r4 ?? this._$Ej?.get(e3) ?? r4, this._$Em = null;
1100
+ }
1101
+ }
1102
+ requestUpdate(t3, s4, i4, e3 = false, h3) {
1103
+ if (void 0 !== t3) {
1104
+ const r4 = this.constructor;
1105
+ if (false === e3 && (h3 = this[t3]), i4 ?? (i4 = r4.getPropertyOptions(t3)), !((i4.hasChanged ?? m)(h3, s4) || i4.useDefault && i4.reflect && h3 === this._$Ej?.get(t3) && !this.hasAttribute(r4._$Eu(t3, i4)))) return;
1106
+ this.C(t3, s4, i4);
1107
+ }
1108
+ false === this.isUpdatePending && (this._$ES = this._$EP());
1109
+ }
1110
+ C(t3, s4, { useDefault: i4, reflect: e3, wrapped: h3 }, r4) {
1111
+ i4 && !(this._$Ej ?? (this._$Ej = /* @__PURE__ */ new Map())).has(t3) && (this._$Ej.set(t3, r4 ?? s4 ?? this[t3]), true !== h3 || void 0 !== r4) || (this._$AL.has(t3) || (this.hasUpdated || i4 || (s4 = void 0), this._$AL.set(t3, s4)), true === e3 && this._$Em !== t3 && (this._$Eq ?? (this._$Eq = /* @__PURE__ */ new Set())).add(t3));
1112
+ }
1113
+ async _$EP() {
1114
+ this.isUpdatePending = true;
1115
+ try {
1116
+ await this._$ES;
1117
+ } catch (t4) {
1118
+ Promise.reject(t4);
1119
+ }
1120
+ const t3 = this.scheduleUpdate();
1121
+ return null != t3 && await t3, !this.isUpdatePending;
1122
+ }
1123
+ scheduleUpdate() {
1124
+ return this.performUpdate();
1125
+ }
1126
+ performUpdate() {
1127
+ if (!this.isUpdatePending) return;
1128
+ if (!this.hasUpdated) {
1129
+ if (this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this._$Ep) {
1130
+ for (const [t5, s5] of this._$Ep) this[t5] = s5;
1131
+ this._$Ep = void 0;
1132
+ }
1133
+ const t4 = this.constructor.elementProperties;
1134
+ if (t4.size > 0) for (const [s5, i4] of t4) {
1135
+ const { wrapped: t5 } = i4, e3 = this[s5];
1136
+ true !== t5 || this._$AL.has(s5) || void 0 === e3 || this.C(s5, void 0, i4, e3);
1137
+ }
1138
+ }
1139
+ let t3 = false;
1140
+ const s4 = this._$AL;
1141
+ try {
1142
+ t3 = this.shouldUpdate(s4), t3 ? (this.willUpdate(s4), this._$EO?.forEach((t4) => t4.hostUpdate?.()), this.update(s4)) : this._$EM();
1143
+ } catch (s5) {
1144
+ throw t3 = false, this._$EM(), s5;
1145
+ }
1146
+ t3 && this._$AE(s4);
1147
+ }
1148
+ willUpdate(t3) {
1149
+ }
1150
+ _$AE(t3) {
1151
+ this._$EO?.forEach((t4) => t4.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t3)), this.updated(t3);
1152
+ }
1153
+ _$EM() {
1154
+ this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = false;
1155
+ }
1156
+ get updateComplete() {
1157
+ return this.getUpdateComplete();
1158
+ }
1159
+ getUpdateComplete() {
1160
+ return this._$ES;
1161
+ }
1162
+ shouldUpdate(t3) {
1163
+ return true;
1164
+ }
1165
+ update(t3) {
1166
+ this._$Eq && (this._$Eq = this._$Eq.forEach((t4) => this._$ET(t4, this[t4]))), this._$EM();
1167
+ }
1168
+ updated(t3) {
1169
+ }
1170
+ firstUpdated(t3) {
1171
+ }
1172
+ };
1173
+ g.elementStyles = [], g.shadowRootOptions = { mode: "open" }, g[f("elementProperties")] = /* @__PURE__ */ new Map(), g[f("finalized")] = /* @__PURE__ */ new Map(), u?.({ ReactiveElement: g }), (l.reactiveElementVersions ?? (l.reactiveElementVersions = [])).push("2.1.2");
1174
+
1175
+ // node_modules/lit-html/node/lit-html.js
1176
+ var t2 = globalThis;
1177
+ var i2 = (t3) => t3;
1178
+ var s2 = t2.trustedTypes;
1179
+ var e2 = s2 ? s2.createPolicy("lit-html", { createHTML: (t3) => t3 }) : void 0;
1180
+ var h2 = "$lit$";
1181
+ var o3 = `lit$${Math.random().toFixed(9).slice(2)}$`;
1182
+ var n3 = "?" + o3;
1183
+ var r3 = `<${n3}>`;
1184
+ var l2 = void 0 === t2.document ? { createTreeWalker: () => ({}) } : document;
1185
+ var c3 = () => l2.createComment("");
1186
+ var a2 = (t3) => null === t3 || "object" != typeof t3 && "function" != typeof t3;
1187
+ var u2 = Array.isArray;
1188
+ var d2 = (t3) => u2(t3) || "function" == typeof t3?.[Symbol.iterator];
1189
+ var f2 = "[ \n\f\r]";
1190
+ var v = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g;
1191
+ var _ = /-->/g;
1192
+ var m2 = />/g;
1193
+ var p2 = RegExp(`>|${f2}(?:([^\\s"'>=/]+)(${f2}*=${f2}*(?:[^
1194
+ \f\r"'\`<>=]|("|')|))|$)`, "g");
1195
+ var g2 = /'/g;
1196
+ var $ = /"/g;
1197
+ var y2 = /^(?:script|style|textarea|title)$/i;
1198
+ var x = (t3) => (i4, ...s4) => ({ _$litType$: t3, strings: i4, values: s4 });
1199
+ var T = x(1);
1200
+ var E = /* @__PURE__ */ Symbol.for("lit-noChange");
1201
+ var A = /* @__PURE__ */ Symbol.for("lit-nothing");
1202
+ var C = /* @__PURE__ */ new WeakMap();
1203
+ var P = l2.createTreeWalker(l2, 129);
1204
+ function V(t3, i4) {
1205
+ if (!u2(t3) || !t3.hasOwnProperty("raw")) throw Error("invalid template strings array");
1206
+ return void 0 !== e2 ? e2.createHTML(i4) : i4;
1207
+ }
1208
+ var N = (t3, i4) => {
1209
+ const s4 = t3.length - 1, e3 = [];
1210
+ let n4, l3 = 2 === i4 ? "<svg>" : 3 === i4 ? "<math>" : "", c4 = v;
1211
+ for (let i5 = 0; i5 < s4; i5++) {
1212
+ const s5 = t3[i5];
1213
+ let a3, u3, d3 = -1, f3 = 0;
1214
+ for (; f3 < s5.length && (c4.lastIndex = f3, u3 = c4.exec(s5), null !== u3); ) f3 = c4.lastIndex, c4 === v ? "!--" === u3[1] ? c4 = _ : void 0 !== u3[1] ? c4 = m2 : void 0 !== u3[2] ? (y2.test(u3[2]) && (n4 = RegExp("</" + u3[2], "g")), c4 = p2) : void 0 !== u3[3] && (c4 = p2) : c4 === p2 ? ">" === u3[0] ? (c4 = n4 ?? v, d3 = -1) : void 0 === u3[1] ? d3 = -2 : (d3 = c4.lastIndex - u3[2].length, a3 = u3[1], c4 = void 0 === u3[3] ? p2 : '"' === u3[3] ? $ : g2) : c4 === $ || c4 === g2 ? c4 = p2 : c4 === _ || c4 === m2 ? c4 = v : (c4 = p2, n4 = void 0);
1215
+ const x2 = c4 === p2 && t3[i5 + 1].startsWith("/>") ? " " : "";
1216
+ l3 += c4 === v ? s5 + r3 : d3 >= 0 ? (e3.push(a3), s5.slice(0, d3) + h2 + s5.slice(d3) + o3 + x2) : s5 + o3 + (-2 === d3 ? i5 : x2);
1217
+ }
1218
+ return [V(t3, l3 + (t3[s4] || "<?>") + (2 === i4 ? "</svg>" : 3 === i4 ? "</math>" : "")), e3];
1219
+ };
1220
+ var S2 = class _S {
1221
+ constructor({ strings: t3, _$litType$: i4 }, e3) {
1222
+ let r4;
1223
+ this.parts = [];
1224
+ let l3 = 0, a3 = 0;
1225
+ const u3 = t3.length - 1, d3 = this.parts, [f3, v2] = N(t3, i4);
1226
+ if (this.el = _S.createElement(f3, e3), P.currentNode = this.el.content, 2 === i4 || 3 === i4) {
1227
+ const t4 = this.el.content.firstChild;
1228
+ t4.replaceWith(...t4.childNodes);
1229
+ }
1230
+ for (; null !== (r4 = P.nextNode()) && d3.length < u3; ) {
1231
+ if (1 === r4.nodeType) {
1232
+ if (r4.hasAttributes()) for (const t4 of r4.getAttributeNames()) if (t4.endsWith(h2)) {
1233
+ const i5 = v2[a3++], s4 = r4.getAttribute(t4).split(o3), e4 = /([.?@])?(.*)/.exec(i5);
1234
+ d3.push({ type: 1, index: l3, name: e4[2], strings: s4, ctor: "." === e4[1] ? I : "?" === e4[1] ? L : "@" === e4[1] ? z : H }), r4.removeAttribute(t4);
1235
+ } else t4.startsWith(o3) && (d3.push({ type: 6, index: l3 }), r4.removeAttribute(t4));
1236
+ if (y2.test(r4.tagName)) {
1237
+ const t4 = r4.textContent.split(o3), i5 = t4.length - 1;
1238
+ if (i5 > 0) {
1239
+ r4.textContent = s2 ? s2.emptyScript : "";
1240
+ for (let s4 = 0; s4 < i5; s4++) r4.append(t4[s4], c3()), P.nextNode(), d3.push({ type: 2, index: ++l3 });
1241
+ r4.append(t4[i5], c3());
1242
+ }
1243
+ }
1244
+ } else if (8 === r4.nodeType) if (r4.data === n3) d3.push({ type: 2, index: l3 });
1245
+ else {
1246
+ let t4 = -1;
1247
+ for (; -1 !== (t4 = r4.data.indexOf(o3, t4 + 1)); ) d3.push({ type: 7, index: l3 }), t4 += o3.length - 1;
1248
+ }
1249
+ l3++;
1250
+ }
1251
+ }
1252
+ static createElement(t3, i4) {
1253
+ const s4 = l2.createElement("template");
1254
+ return s4.innerHTML = t3, s4;
1255
+ }
1256
+ };
1257
+ function M(t3, i4, s4 = t3, e3) {
1258
+ if (i4 === E) return i4;
1259
+ let h3 = void 0 !== e3 ? s4._$Co?.[e3] : s4._$Cl;
1260
+ const o5 = a2(i4) ? void 0 : i4._$litDirective$;
1261
+ return h3?.constructor !== o5 && (h3?._$AO?.(false), void 0 === o5 ? h3 = void 0 : (h3 = new o5(t3), h3._$AT(t3, s4, e3)), void 0 !== e3 ? (s4._$Co ?? (s4._$Co = []))[e3] = h3 : s4._$Cl = h3), void 0 !== h3 && (i4 = M(t3, h3._$AS(t3, i4.values), h3, e3)), i4;
1262
+ }
1263
+ var k = class {
1264
+ constructor(t3, i4) {
1265
+ this._$AV = [], this._$AN = void 0, this._$AD = t3, this._$AM = i4;
1266
+ }
1267
+ get parentNode() {
1268
+ return this._$AM.parentNode;
1269
+ }
1270
+ get _$AU() {
1271
+ return this._$AM._$AU;
1272
+ }
1273
+ u(t3) {
1274
+ const { el: { content: i4 }, parts: s4 } = this._$AD, e3 = (t3?.creationScope ?? l2).importNode(i4, true);
1275
+ P.currentNode = e3;
1276
+ let h3 = P.nextNode(), o5 = 0, n4 = 0, r4 = s4[0];
1277
+ for (; void 0 !== r4; ) {
1278
+ if (o5 === r4.index) {
1279
+ let i5;
1280
+ 2 === r4.type ? i5 = new R(h3, h3.nextSibling, this, t3) : 1 === r4.type ? i5 = new r4.ctor(h3, r4.name, r4.strings, this, t3) : 6 === r4.type && (i5 = new W(h3, this, t3)), this._$AV.push(i5), r4 = s4[++n4];
1281
+ }
1282
+ o5 !== r4?.index && (h3 = P.nextNode(), o5++);
1283
+ }
1284
+ return P.currentNode = l2, e3;
1285
+ }
1286
+ p(t3) {
1287
+ let i4 = 0;
1288
+ for (const s4 of this._$AV) void 0 !== s4 && (void 0 !== s4.strings ? (s4._$AI(t3, s4, i4), i4 += s4.strings.length - 2) : s4._$AI(t3[i4])), i4++;
1289
+ }
1290
+ };
1291
+ var R = class _R {
1292
+ get _$AU() {
1293
+ return this._$AM?._$AU ?? this._$Cv;
1294
+ }
1295
+ constructor(t3, i4, s4, e3) {
1296
+ this.type = 2, this._$AH = A, this._$AN = void 0, this._$AA = t3, this._$AB = i4, this._$AM = s4, this.options = e3, this._$Cv = e3?.isConnected ?? true;
1297
+ }
1298
+ get parentNode() {
1299
+ let t3 = this._$AA.parentNode;
1300
+ const i4 = this._$AM;
1301
+ return void 0 !== i4 && 11 === t3?.nodeType && (t3 = i4.parentNode), t3;
1302
+ }
1303
+ get startNode() {
1304
+ return this._$AA;
1305
+ }
1306
+ get endNode() {
1307
+ return this._$AB;
1308
+ }
1309
+ _$AI(t3, i4 = this) {
1310
+ t3 = M(this, t3, i4), a2(t3) ? t3 === A || null == t3 || "" === t3 ? (this._$AH !== A && this._$AR(), this._$AH = A) : t3 !== this._$AH && t3 !== E && this._(t3) : void 0 !== t3._$litType$ ? this.$(t3) : void 0 !== t3.nodeType ? this.T(t3) : d2(t3) ? this.k(t3) : this._(t3);
1311
+ }
1312
+ O(t3) {
1313
+ return this._$AA.parentNode.insertBefore(t3, this._$AB);
1314
+ }
1315
+ T(t3) {
1316
+ this._$AH !== t3 && (this._$AR(), this._$AH = this.O(t3));
1317
+ }
1318
+ _(t3) {
1319
+ this._$AH !== A && a2(this._$AH) ? this._$AA.nextSibling.data = t3 : this.T(l2.createTextNode(t3)), this._$AH = t3;
1320
+ }
1321
+ $(t3) {
1322
+ const { values: i4, _$litType$: s4 } = t3, e3 = "number" == typeof s4 ? this._$AC(t3) : (void 0 === s4.el && (s4.el = S2.createElement(V(s4.h, s4.h[0]), this.options)), s4);
1323
+ if (this._$AH?._$AD === e3) this._$AH.p(i4);
1324
+ else {
1325
+ const t4 = new k(e3, this), s5 = t4.u(this.options);
1326
+ t4.p(i4), this.T(s5), this._$AH = t4;
1327
+ }
1328
+ }
1329
+ _$AC(t3) {
1330
+ let i4 = C.get(t3.strings);
1331
+ return void 0 === i4 && C.set(t3.strings, i4 = new S2(t3)), i4;
1332
+ }
1333
+ k(t3) {
1334
+ u2(this._$AH) || (this._$AH = [], this._$AR());
1335
+ const i4 = this._$AH;
1336
+ let s4, e3 = 0;
1337
+ for (const h3 of t3) e3 === i4.length ? i4.push(s4 = new _R(this.O(c3()), this.O(c3()), this, this.options)) : s4 = i4[e3], s4._$AI(h3), e3++;
1338
+ e3 < i4.length && (this._$AR(s4 && s4._$AB.nextSibling, e3), i4.length = e3);
1339
+ }
1340
+ _$AR(t3 = this._$AA.nextSibling, s4) {
1341
+ for (this._$AP?.(false, true, s4); t3 !== this._$AB; ) {
1342
+ const s5 = i2(t3).nextSibling;
1343
+ i2(t3).remove(), t3 = s5;
1344
+ }
1345
+ }
1346
+ setConnected(t3) {
1347
+ void 0 === this._$AM && (this._$Cv = t3, this._$AP?.(t3));
1348
+ }
1349
+ };
1350
+ var H = class {
1351
+ get tagName() {
1352
+ return this.element.tagName;
1353
+ }
1354
+ get _$AU() {
1355
+ return this._$AM._$AU;
1356
+ }
1357
+ constructor(t3, i4, s4, e3, h3) {
1358
+ this.type = 1, this._$AH = A, this._$AN = void 0, this.element = t3, this.name = i4, this._$AM = e3, this.options = h3, s4.length > 2 || "" !== s4[0] || "" !== s4[1] ? (this._$AH = Array(s4.length - 1).fill(new String()), this.strings = s4) : this._$AH = A;
1359
+ }
1360
+ _$AI(t3, i4 = this, s4, e3) {
1361
+ const h3 = this.strings;
1362
+ let o5 = false;
1363
+ if (void 0 === h3) t3 = M(this, t3, i4, 0), o5 = !a2(t3) || t3 !== this._$AH && t3 !== E, o5 && (this._$AH = t3);
1364
+ else {
1365
+ const e4 = t3;
1366
+ let n4, r4;
1367
+ for (t3 = h3[0], n4 = 0; n4 < h3.length - 1; n4++) r4 = M(this, e4[s4 + n4], i4, n4), r4 === E && (r4 = this._$AH[n4]), o5 || (o5 = !a2(r4) || r4 !== this._$AH[n4]), r4 === A ? t3 = A : t3 !== A && (t3 += (r4 ?? "") + h3[n4 + 1]), this._$AH[n4] = r4;
1368
+ }
1369
+ o5 && !e3 && this.j(t3);
1370
+ }
1371
+ j(t3) {
1372
+ t3 === A ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t3 ?? "");
1373
+ }
1374
+ };
1375
+ var I = class extends H {
1376
+ constructor() {
1377
+ super(...arguments), this.type = 3;
1378
+ }
1379
+ j(t3) {
1380
+ this.element[this.name] = t3 === A ? void 0 : t3;
1381
+ }
1382
+ };
1383
+ var L = class extends H {
1384
+ constructor() {
1385
+ super(...arguments), this.type = 4;
1386
+ }
1387
+ j(t3) {
1388
+ this.element.toggleAttribute(this.name, !!t3 && t3 !== A);
1389
+ }
1390
+ };
1391
+ var z = class extends H {
1392
+ constructor(t3, i4, s4, e3, h3) {
1393
+ super(t3, i4, s4, e3, h3), this.type = 5;
1394
+ }
1395
+ _$AI(t3, i4 = this) {
1396
+ if ((t3 = M(this, t3, i4, 0) ?? A) === E) return;
1397
+ const s4 = this._$AH, e3 = t3 === A && s4 !== A || t3.capture !== s4.capture || t3.once !== s4.once || t3.passive !== s4.passive, h3 = t3 !== A && (s4 === A || e3);
1398
+ e3 && this.element.removeEventListener(this.name, this, s4), h3 && this.element.addEventListener(this.name, this, t3), this._$AH = t3;
1399
+ }
1400
+ handleEvent(t3) {
1401
+ "function" == typeof this._$AH ? this._$AH.call(this.options?.host ?? this.element, t3) : this._$AH.handleEvent(t3);
1402
+ }
1403
+ };
1404
+ var W = class {
1405
+ constructor(t3, i4, s4) {
1406
+ this.element = t3, this.type = 6, this._$AN = void 0, this._$AM = i4, this.options = s4;
1407
+ }
1408
+ get _$AU() {
1409
+ return this._$AM._$AU;
1410
+ }
1411
+ _$AI(t3) {
1412
+ M(this, t3);
1413
+ }
1414
+ };
1415
+ var j = t2.litHtmlPolyfillSupport;
1416
+ j?.(S2, R), (t2.litHtmlVersions ?? (t2.litHtmlVersions = [])).push("3.3.3");
1417
+ var B = (t3, i4, s4) => {
1418
+ const e3 = s4?.renderBefore ?? i4;
1419
+ let h3 = e3._$litPart$;
1420
+ if (void 0 === h3) {
1421
+ const t4 = s4?.renderBefore ?? null;
1422
+ e3._$litPart$ = h3 = new R(i4.insertBefore(c3(), t4), t4, void 0, s4 ?? {});
1423
+ }
1424
+ return h3._$AI(t3), h3;
1425
+ };
1426
+
1427
+ // node_modules/lit-element/lit-element.js
1428
+ var s3 = globalThis;
1429
+ var i3 = class extends g {
1430
+ constructor() {
1431
+ super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
1432
+ }
1433
+ createRenderRoot() {
1434
+ var _a3;
1435
+ const t3 = super.createRenderRoot();
1436
+ return (_a3 = this.renderOptions).renderBefore ?? (_a3.renderBefore = t3.firstChild), t3;
1437
+ }
1438
+ update(t3) {
1439
+ const r4 = this.render();
1440
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t3), this._$Do = B(r4, this.renderRoot, this.renderOptions);
1441
+ }
1442
+ connectedCallback() {
1443
+ super.connectedCallback(), this._$Do?.setConnected(true);
1444
+ }
1445
+ disconnectedCallback() {
1446
+ super.disconnectedCallback(), this._$Do?.setConnected(false);
1447
+ }
1448
+ render() {
1449
+ return E;
1450
+ }
1451
+ };
1452
+ i3._$litElement$ = true, i3["finalized"] = true, s3.litElementHydrateSupport?.({ LitElement: i3 });
1453
+ var o4 = s3.litElementPolyfillSupport;
1454
+ o4?.({ LitElement: i3 });
1455
+ (s3.litElementVersions ?? (s3.litElementVersions = [])).push("4.2.2");
1456
+
1457
+ // projects/bizz-components/src/web/button/bizz-button.ts
1458
+ var BizzButtonElement = class extends i3 {
1459
+ constructor() {
1460
+ super();
1461
+ this.variant = "primary";
1462
+ this.size = "md";
1463
+ this.type = "button";
1464
+ this.disabled = false;
1465
+ this.loading = false;
1466
+ this.fullWidth = false;
1467
+ }
1468
+ get isDisabled() {
1469
+ return this.disabled || this.loading;
1470
+ }
1471
+ handleClick(e3) {
1472
+ if (!this.isDisabled) {
1473
+ this.dispatchEvent(new CustomEvent("bizz-click", { detail: e3, bubbles: true, composed: true }));
1474
+ }
1475
+ }
1476
+ render() {
1477
+ return T`
1478
+ <button
1479
+ type="${this.type}"
1480
+ ?disabled="${this.isDisabled}"
1481
+ @click="${this.handleClick}"
1482
+ >
1483
+ ${this.loading ? T`<span class="spinner" aria-hidden="true"></span>` : ""}
1484
+ <span class="${this.loading ? "hidden" : ""}"><slot></slot></span>
1485
+ </button>
1486
+ `;
1487
+ }
1488
+ };
1489
+ BizzButtonElement.styles = i`
1490
+ :host {
1491
+ display: inline-flex;
1492
+ }
1493
+ :host([full-width]) {
1494
+ display: flex;
1495
+ width: 100%;
1496
+ }
1497
+ button {
1498
+ display: inline-flex;
1499
+ align-items: center;
1500
+ justify-content: center;
1501
+ gap: var(--bizz-spacing-03);
1502
+ position: relative;
1503
+ flex: 1;
1504
+ border: 2px solid transparent;
1505
+ border-radius: var(--bizz-radius-md);
1506
+ font-family: var(--bizz-font-family-base);
1507
+ font-weight: var(--bizz-font-weight-semibold);
1508
+ cursor: pointer;
1509
+ text-decoration: none;
1510
+ white-space: nowrap;
1511
+ transition:
1512
+ background-color var(--bizz-duration-base) var(--bizz-easing-default),
1513
+ border-color var(--bizz-duration-base) var(--bizz-easing-default),
1514
+ color var(--bizz-duration-base) var(--bizz-easing-default),
1515
+ box-shadow var(--bizz-duration-base) var(--bizz-easing-default),
1516
+ transform var(--bizz-duration-fast) var(--bizz-easing-default);
1517
+ user-select: none;
1518
+ outline: none;
1519
+ }
1520
+ button:focus-visible { box-shadow: 0 0 0 3px var(--bizz-focus); }
1521
+ button:active:not(:disabled) { transform: translateY(1px); }
1522
+ :host([size='sm']) button { height: 2rem; padding: 0 var(--bizz-spacing-04); font-size: var(--bizz-font-size-sm); border-radius: var(--bizz-radius-sm); }
1523
+ :host([size='md']) button { height: 2.5rem; padding: 0 var(--bizz-spacing-05); font-size: var(--bizz-font-size-md); }
1524
+ :host([size='lg']) button { height: 3rem; padding: 0 var(--bizz-spacing-06); font-size: var(--bizz-font-size-lg); border-radius: var(--bizz-radius-lg); }
1525
+ :host([variant='primary']) button { background-color: var(--bizz-button-primary); border-color: var(--bizz-button-primary); color: var(--bizz-text-on-color); }
1526
+ :host([variant='primary']) button:hover:not(:disabled) { background-color: var(--bizz-button-primary-hover); border-color: var(--bizz-button-primary-hover); box-shadow: var(--bizz-shadow-md); }
1527
+ :host([variant='primary']) button:active:not(:disabled) { background-color: var(--bizz-button-primary-active); border-color: var(--bizz-button-primary-active); }
1528
+ :host([variant='secondary']) button { background-color: transparent; border-color: var(--bizz-button-secondary); color: var(--bizz-button-secondary); }
1529
+ :host([variant='secondary']) button:hover:not(:disabled) { background-color: var(--bizz-background-hover); border-color: var(--bizz-button-secondary-hover); color: var(--bizz-button-secondary-hover); box-shadow: var(--bizz-shadow-sm); }
1530
+ :host([variant='secondary']) button:active:not(:disabled) { background-color: var(--bizz-background-active); border-color: var(--bizz-button-secondary-active); color: var(--bizz-button-secondary-active); }
1531
+ :host([variant='disabled']) button { background-color: transparent; border-color: transparent; color: var(--bizz-text-secondary); }
1532
+ :host([variant='disabled']) button:hover:not(:disabled) { background-color: var(--bizz-background-hover); color: var(--bizz-text-primary); }
1533
+ :host([variant='danger']) button { background-color: var(--bizz-button-danger); border-color: var(--bizz-button-danger); color: var(--bizz-text-on-color); }
1534
+ :host([variant='danger']) button:hover:not(:disabled) { background-color: var(--bizz-button-danger-hover); border-color: var(--bizz-button-danger-hover); box-shadow: var(--bizz-shadow-md); }
1535
+ :host([variant='danger']) button:active:not(:disabled) { background-color: var(--bizz-button-danger-active); border-color: var(--bizz-button-danger-active); }
1536
+ button:disabled { background-color: var(--bizz-button-disabled); border-color: var(--bizz-button-disabled); color: var(--bizz-text-on-color-disabled); cursor: not-allowed; transform: none; box-shadow: none; }
1537
+ :host([loading]) button { cursor: wait; }
1538
+ .hidden { opacity: 0; }
1539
+ .spinner { position: absolute; width: 1em; height: 1em; border: 2px solid currentColor; border-top-color: transparent; border-radius: 50%; animation: spin 0.6s linear infinite; }
1540
+ @keyframes spin { to { transform: rotate(360deg); } }
1541
+ `;
1542
+ BizzButtonElement.properties = {
1543
+ variant: { type: String, reflect: true },
1544
+ size: { type: String, reflect: true },
1545
+ type: { type: String },
1546
+ disabled: { type: Boolean },
1547
+ loading: { type: Boolean, reflect: true },
1548
+ fullWidth: { type: Boolean, attribute: "full-width", reflect: true }
1549
+ };
1550
+ customElements.define("bizz-button", BizzButtonElement);
1551
+
1552
+ // projects/bizz-components/src/web/card/bizz-card.ts
1553
+ var BizzCardElement = class extends i3 {
1554
+ constructor() {
1555
+ super();
1556
+ this.elevation = "raised";
1557
+ this.padding = "md";
1558
+ this.clickable = false;
1559
+ }
1560
+ updated(changed) {
1561
+ if (changed.has("clickable")) {
1562
+ if (this.clickable) {
1563
+ this.setAttribute("role", "button");
1564
+ this.setAttribute("tabindex", "0");
1565
+ } else {
1566
+ this.removeAttribute("role");
1567
+ this.removeAttribute("tabindex");
1568
+ }
1569
+ }
1570
+ }
1571
+ render() {
1572
+ return T`
1573
+ <slot name="card-media"></slot>
1574
+ <div class="body">
1575
+ <slot name="card-header"></slot>
1576
+ <slot></slot>
1577
+ <slot name="card-footer"></slot>
1578
+ </div>
1579
+ `;
1580
+ }
1581
+ };
1582
+ BizzCardElement.styles = i`
1583
+ :host {
1584
+ display: block;
1585
+ font-family: var(--bizz-font-family-base);
1586
+ background-color: var(--bizz-layer-02);
1587
+ border: 1px solid var(--bizz-border-subtle-01);
1588
+ border-radius: var(--bizz-radius-lg);
1589
+ overflow: hidden;
1590
+ transition:
1591
+ box-shadow var(--bizz-duration-base) var(--bizz-easing-default),
1592
+ transform var(--bizz-duration-fast) var(--bizz-easing-default),
1593
+ border-color var(--bizz-duration-base) var(--bizz-easing-default);
1594
+ }
1595
+ :host([elevation='flat']) { box-shadow: none; }
1596
+ :host([elevation='raised']) { box-shadow: var(--bizz-shadow-sm); }
1597
+ :host([clickable]) { cursor: pointer; outline: none; }
1598
+ :host([clickable]:hover) { border-color: var(--bizz-border-interactive); box-shadow: var(--bizz-shadow-md); transform: translateY(-2px); }
1599
+ :host([clickable]:active) { transform: translateY(0); box-shadow: var(--bizz-shadow-sm); }
1600
+ :host([clickable]:focus-visible) { box-shadow: 0 0 0 3px var(--bizz-focus); }
1601
+ .body { display: flex; flex-direction: column; }
1602
+ :host([padding='none']) .body { padding: 0; }
1603
+ :host([padding='sm']) .body { padding: var(--bizz-spacing-04); }
1604
+ :host([padding='md']) .body { padding: var(--bizz-spacing-06); }
1605
+ :host([padding='lg']) .body { padding: var(--bizz-spacing-08); }
1606
+ ::slotted([slot='card-media']) { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; overflow: hidden; }
1607
+ ::slotted([slot='card-header']) { display: block; margin-bottom: var(--bizz-spacing-04); }
1608
+ ::slotted([slot='card-footer']) { display: block; margin-top: var(--bizz-spacing-05); padding-top: var(--bizz-spacing-04); border-top: 1px solid var(--bizz-border-subtle-00); }
1609
+ `;
1610
+ BizzCardElement.properties = {
1611
+ elevation: { type: String, reflect: true },
1612
+ padding: { type: String, reflect: true },
1613
+ clickable: { type: Boolean, reflect: true }
1614
+ };
1615
+ customElements.define("bizz-card", BizzCardElement);
1616
+
1617
+ // projects/bizz-components/src/web/tag/bizz-tag.ts
1618
+ var BizzTagElement = class extends i3 {
1619
+ constructor() {
1620
+ super();
1621
+ this.color = "primary";
1622
+ this.size = "md";
1623
+ this.dismissible = false;
1624
+ }
1625
+ handleDismiss(e3) {
1626
+ e3.stopPropagation();
1627
+ this.dispatchEvent(new CustomEvent("bizz-dismissed", { bubbles: true, composed: true }));
1628
+ }
1629
+ render() {
1630
+ return T`
1631
+ <slot></slot>
1632
+ ${this.dismissible ? T`
1633
+ <button type="button" aria-label="Dismiss" @click="${this.handleDismiss}">
1634
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" aria-hidden="true">
1635
+ <path d="M9 3L3 9M3 3l6 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
1636
+ </svg>
1637
+ </button>
1638
+ ` : ""}
1639
+ `;
1640
+ }
1641
+ };
1642
+ BizzTagElement.styles = i`
1643
+ :host {
1644
+ display: inline-flex;
1645
+ align-items: center;
1646
+ gap: var(--bizz-spacing-02);
1647
+ border-radius: var(--bizz-radius-full);
1648
+ font-family: var(--bizz-font-family-base);
1649
+ font-weight: var(--bizz-font-weight-medium);
1650
+ white-space: nowrap;
1651
+ width: fit-content;
1652
+ }
1653
+ :host([size='sm']) { height: 1.25rem; padding: 0 var(--bizz-spacing-03); font-size: var(--bizz-font-size-xs); }
1654
+ :host([size='md']) { height: 1.5rem; padding: 0 var(--bizz-spacing-03); font-size: var(--bizz-font-size-sm); }
1655
+ :host([color='primary']) { background-color: var(--bizz-tag-primary-bg); color: var(--bizz-tag-primary-text); }
1656
+ :host([color='secondary']) { background-color: var(--bizz-tag-secondary-bg); color: var(--bizz-tag-secondary-text); }
1657
+ :host([color='success']) { background-color: var(--bizz-tag-success-bg); color: var(--bizz-tag-success-text); }
1658
+ :host([color='warning']) { background-color: var(--bizz-tag-warning-bg); color: var(--bizz-tag-warning-text); }
1659
+ :host([color='error']) { background-color: var(--bizz-tag-error-bg); color: var(--bizz-tag-error-text); }
1660
+ :host([color='primary']:hover) { background-color: var(--bizz-tag-primary-hover); }
1661
+ :host([color='secondary']:hover) { background-color: var(--bizz-tag-secondary-hover); }
1662
+ :host([color='success']:hover) { background-color: var(--bizz-tag-success-hover); }
1663
+ :host([color='warning']:hover) { background-color: var(--bizz-tag-warning-hover); }
1664
+ :host([color='error']:hover) { background-color: var(--bizz-tag-error-hover); }
1665
+ button { display: inline-flex; align-items: center; justify-content: center; background: none; border: none; padding: 0; cursor: pointer; color: inherit; opacity: 0.7; transition: opacity var(--bizz-duration-fast) var(--bizz-easing-default); line-height: 1; }
1666
+ button:hover { opacity: 1; }
1667
+ `;
1668
+ BizzTagElement.properties = {
1669
+ color: { type: String, reflect: true },
1670
+ size: { type: String, reflect: true },
1671
+ dismissible: { type: Boolean }
1672
+ };
1673
+ customElements.define("bizz-tag", BizzTagElement);
1674
+
1675
+ // projects/bizz-components/src/web/input/bizz-input.ts
1676
+ var BizzInputElement = class extends i3 {
1677
+ constructor() {
1678
+ super();
1679
+ this.label = "";
1680
+ this.placeholder = "";
1681
+ this.type = "text";
1682
+ this.helperText = "";
1683
+ this.errorText = "";
1684
+ this.disabled = false;
1685
+ this.required = false;
1686
+ this.value = "";
1687
+ this._touched = false;
1688
+ }
1689
+ get hasError() {
1690
+ return this._touched && (!!this.errorText || this.required && !this.value.trim());
1691
+ }
1692
+ handleInput(e3) {
1693
+ this.value = e3.target.value;
1694
+ this.dispatchEvent(new CustomEvent("bizz-input", { detail: this.value, bubbles: true, composed: true }));
1695
+ }
1696
+ handleBlur() {
1697
+ this._touched = true;
1698
+ this.dispatchEvent(new CustomEvent("bizz-blur", { bubbles: true, composed: true }));
1699
+ }
1700
+ render() {
1701
+ const wrapperClass = ["field-wrapper", this.hasError ? "error" : "", this.disabled ? "disabled" : ""].filter(Boolean).join(" ");
1702
+ return T`
1703
+ ${this.label ? T`<label>${this.label}</label>` : ""}
1704
+ <div class="${wrapperClass}">
1705
+ <slot name="prefix"></slot>
1706
+ <input
1707
+ type="${this.type}"
1708
+ placeholder="${this.placeholder}"
1709
+ ?disabled="${this.disabled}"
1710
+ ?required="${this.required}"
1711
+ .value="${this.value}"
1712
+ aria-invalid="${this.hasError ? "true" : null}"
1713
+ @input="${this.handleInput}"
1714
+ @blur="${this.handleBlur}"
1715
+ />
1716
+ <slot name="suffix"></slot>
1717
+ </div>
1718
+ ${this.hasError ? T`<span class="error-msg" role="alert">${this.errorText}</span>` : this.helperText ? T`<span class="helper">${this.helperText}</span>` : ""}
1719
+ `;
1720
+ }
1721
+ };
1722
+ BizzInputElement.styles = i`
1723
+ :host { display: flex; flex-direction: column; gap: var(--bizz-spacing-02); font-family: var(--bizz-font-family-base); }
1724
+ label { font-size: var(--bizz-font-size-sm); font-weight: var(--bizz-font-weight-semibold); color: var(--bizz-text-primary); line-height: var(--bizz-line-height-normal); }
1725
+ .field-wrapper { display: flex; align-items: center; gap: var(--bizz-spacing-03); border: 1px solid var(--bizz-border-strong-01); border-radius: var(--bizz-radius-md); padding: 0 var(--bizz-spacing-04); height: 2.5rem; transition: border-color var(--bizz-duration-base) var(--bizz-easing-default), box-shadow var(--bizz-duration-base) var(--bizz-easing-default); }
1726
+ .field-wrapper:focus-within { border-color: var(--bizz-focus); box-shadow: 0 0 0 2px var(--bizz-focus); outline: none; }
1727
+ .field-wrapper.error { border-color: var(--bizz-support-error); }
1728
+ .field-wrapper.error:focus-within { box-shadow: 0 0 0 2px var(--bizz-support-error); }
1729
+ .field-wrapper.disabled { opacity: 0.5; cursor: not-allowed; background-color: var(--bizz-field-hover-01); }
1730
+ input { flex: 1; border: none; outline: none; background: transparent; font-family: var(--bizz-font-family-base); font-size: var(--bizz-font-size-md); color: var(--bizz-text-primary); line-height: var(--bizz-line-height-normal); min-width: 0; }
1731
+ input::placeholder { color: var(--bizz-text-placeholder); }
1732
+ input:disabled { cursor: not-allowed; }
1733
+ .helper { font-size: var(--bizz-font-size-xs); color: var(--bizz-text-helper); line-height: var(--bizz-line-height-normal); }
1734
+ .error-msg { font-size: var(--bizz-font-size-xs); color: var(--bizz-support-error); line-height: var(--bizz-line-height-normal); }
1735
+ `;
1736
+ BizzInputElement.properties = {
1737
+ label: { type: String },
1738
+ placeholder: { type: String },
1739
+ type: { type: String },
1740
+ helperText: { type: String, attribute: "helper-text" },
1741
+ errorText: { type: String, attribute: "error-text" },
1742
+ disabled: { type: Boolean },
1743
+ required: { type: Boolean },
1744
+ value: { type: String },
1745
+ _touched: { state: true }
1746
+ };
1747
+ customElements.define("bizz-input", BizzInputElement);
1748
+
1749
+ // projects/bizz-components/src/web/textarea/bizz-textarea.ts
1750
+ var BizzTextareaElement = class extends i3 {
1751
+ constructor() {
1752
+ super();
1753
+ this.label = "";
1754
+ this.placeholder = "";
1755
+ this.helperText = "";
1756
+ this.errorText = "";
1757
+ this.disabled = false;
1758
+ this.required = false;
1759
+ this.rows = 4;
1760
+ this.autoResize = false;
1761
+ this.value = "";
1762
+ this._touched = false;
1763
+ }
1764
+ get hasError() {
1765
+ return this._touched && (!!this.errorText || this.required && !this.value.trim());
1766
+ }
1767
+ handleInput(e3) {
1768
+ const el = e3.target;
1769
+ this.value = el.value;
1770
+ if (this.autoResize) {
1771
+ el.style.height = "auto";
1772
+ el.style.height = el.scrollHeight + "px";
1773
+ }
1774
+ this.dispatchEvent(new CustomEvent("bizz-input", { detail: this.value, bubbles: true, composed: true }));
1775
+ }
1776
+ handleBlur() {
1777
+ this._touched = true;
1778
+ this.dispatchEvent(new CustomEvent("bizz-blur", { bubbles: true, composed: true }));
1779
+ }
1780
+ render() {
1781
+ const wrapperClass = ["field-wrapper", this.hasError ? "error" : "", this.disabled ? "disabled" : ""].filter(Boolean).join(" ");
1782
+ return T`
1783
+ ${this.label ? T`<label>${this.label}</label>` : ""}
1784
+ <div class="${wrapperClass}">
1785
+ <textarea
1786
+ placeholder="${this.placeholder}"
1787
+ ?disabled="${this.disabled}"
1788
+ ?required="${this.required}"
1789
+ rows="${this.rows}"
1790
+ aria-invalid="${this.hasError ? "true" : null}"
1791
+ @input="${this.handleInput}"
1792
+ @blur="${this.handleBlur}"
1793
+ >${this.value}</textarea>
1794
+ </div>
1795
+ ${this.hasError ? T`<span class="error-msg" role="alert">${this.errorText}</span>` : this.helperText ? T`<span class="helper">${this.helperText}</span>` : ""}
1796
+ `;
1797
+ }
1798
+ };
1799
+ BizzTextareaElement.styles = i`
1800
+ :host { display: flex; flex-direction: column; gap: var(--bizz-spacing-02); font-family: var(--bizz-font-family-base); }
1801
+ label { font-size: var(--bizz-font-size-sm); font-weight: var(--bizz-font-weight-semibold); color: var(--bizz-text-primary); line-height: var(--bizz-line-height-normal); }
1802
+ .field-wrapper { border: 1px solid var(--bizz-border-strong-01); border-radius: var(--bizz-radius-md); padding: var(--bizz-spacing-03) var(--bizz-spacing-04); transition: border-color var(--bizz-duration-base) var(--bizz-easing-default), box-shadow var(--bizz-duration-base) var(--bizz-easing-default); }
1803
+ .field-wrapper:focus-within { border-color: var(--bizz-focus); box-shadow: 0 0 0 2px var(--bizz-focus); outline: none; }
1804
+ .field-wrapper.error { border-color: var(--bizz-support-error); }
1805
+ .field-wrapper.error:focus-within { box-shadow: 0 0 0 2px var(--bizz-support-error); }
1806
+ .field-wrapper.disabled { opacity: 0.5; cursor: not-allowed; background-color: var(--bizz-field-hover-01); }
1807
+ textarea { width: 100%; border: none; outline: none; background: transparent; font-family: var(--bizz-font-family-base); font-size: var(--bizz-font-size-md); color: var(--bizz-text-primary); line-height: var(--bizz-line-height-relaxed); resize: vertical; box-sizing: border-box; display: block; }
1808
+ textarea::placeholder { color: var(--bizz-text-placeholder); }
1809
+ textarea:disabled { cursor: not-allowed; resize: none; }
1810
+ .helper { font-size: var(--bizz-font-size-xs); color: var(--bizz-text-helper); line-height: var(--bizz-line-height-normal); }
1811
+ .error-msg { font-size: var(--bizz-font-size-xs); color: var(--bizz-support-error); line-height: var(--bizz-line-height-normal); }
1812
+ `;
1813
+ BizzTextareaElement.properties = {
1814
+ label: { type: String },
1815
+ placeholder: { type: String },
1816
+ helperText: { type: String, attribute: "helper-text" },
1817
+ errorText: { type: String, attribute: "error-text" },
1818
+ disabled: { type: Boolean },
1819
+ required: { type: Boolean },
1820
+ rows: { type: Number },
1821
+ autoResize: { type: Boolean, attribute: "auto-resize" },
1822
+ value: { type: String },
1823
+ _touched: { state: true }
1824
+ };
1825
+ customElements.define("bizz-textarea", BizzTextareaElement);
1826
+ /*! Bundled license information:
1827
+
1828
+ @lit-labs/ssr-dom-shim/lib/element-internals.js:
1829
+ @lit-labs/ssr-dom-shim/lib/events.js:
1830
+ (**
1831
+ * @license
1832
+ * Copyright 2023 Google LLC
1833
+ * SPDX-License-Identifier: BSD-3-Clause
1834
+ *)
1835
+
1836
+ @lit-labs/ssr-dom-shim/lib/css.js:
1837
+ @lit-labs/ssr-dom-shim/lib/observers.js:
1838
+ (**
1839
+ * @license
1840
+ * Copyright 2024 Google LLC
1841
+ * SPDX-License-Identifier: BSD-3-Clause
1842
+ *)
1843
+
1844
+ @lit-labs/ssr-dom-shim/index.js:
1845
+ @lit/reactive-element/node/css-tag.js:
1846
+ (**
1847
+ * @license
1848
+ * Copyright 2019 Google LLC
1849
+ * SPDX-License-Identifier: BSD-3-Clause
1850
+ *)
1851
+
1852
+ lit-html/node/lit-html.js:
1853
+ lit-element/lit-element.js:
1854
+ (**
1855
+ * @license
1856
+ * Copyright 2017 Google LLC
1857
+ * SPDX-License-Identifier: BSD-3-Clause
1858
+ *)
1859
+
1860
+ lit-html/node/is-server.js:
1861
+ (**
1862
+ * @license
1863
+ * Copyright 2022 Google LLC
1864
+ * SPDX-License-Identifier: BSD-3-Clause
1865
+ *)
1866
+ */
1867
+
1868
+ export { BizzButtonElement, BizzCardElement, BizzInputElement, BizzTagElement, BizzTextareaElement };