@sondor-technology/sondor-components 1.0.1-develop.11 → 1.0.1-develop.13

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.
@@ -4,169 +4,477 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { LitElement, html, css } from 'lit';
8
- import { customElement, property } from 'lit/decorators.js';
9
- import { resetStyles } from '../../styles/reset.js';
7
+ import { LitElement, html, css } from "lit";
8
+ import { customElement, property, state, query } from "lit/decorators.js";
9
+ import { classMap } from "lit/directives/class-map.js";
10
10
  let StSelect = class StSelect extends LitElement {
11
11
  constructor() {
12
12
  super();
13
- this.size = 'md';
14
- this.variant = 'outline';
15
- this.color = 'default';
16
- // Internal state to handle the chevron animation when the slotted select is focused
17
- this.focused = false;
18
- // Track focus states to animate the chevron
19
- this.addEventListener('focusin', () => this.focused = true);
20
- this.addEventListener('focusout', () => this.focused = false);
13
+ this.name = "";
14
+ this.label = "";
15
+ this.value = "";
16
+ this.required = false;
17
+ this.multiple = false;
18
+ this.searchable = false;
19
+ this.options = [];
20
+ this.error = "";
21
+ this.disabled = false;
22
+ this.invalid = false;
23
+ this.autocomplete = "off";
24
+ this.open = false;
25
+ this.filterText = "";
26
+ this.nativeError = "";
27
+ this.touched = false;
28
+ this.internals = this.attachInternals();
29
+ this.handleClickOutside = this.handleClickOutside.bind(this);
30
+ }
31
+ // 2. Public API methods expected by st-form
32
+ checkValidity() {
33
+ return this.internals.checkValidity();
34
+ }
35
+ reportValidity() {
36
+ const isValid = this.checkValidity();
37
+ this.touched = true; // Force UI to reveal the error
38
+ this.invalid = !isValid;
39
+ return isValid;
40
+ }
41
+ // 3. Override native focus to target the internal combobox button
42
+ focus(options) {
43
+ this.buttonElement?.focus(options);
44
+ }
45
+ connectedCallback() {
46
+ super.connectedCallback();
47
+ document.addEventListener("click", this.handleClickOutside);
48
+ this.addEventListener("invalid", () => {
49
+ this.touched = true;
50
+ this.invalid = true;
51
+ });
52
+ }
53
+ disconnectedCallback() {
54
+ document.removeEventListener("click", this.handleClickOutside);
55
+ super.disconnectedCallback();
56
+ }
57
+ willUpdate(changedProperties) {
58
+ if (changedProperties.has("value") ||
59
+ changedProperties.has("required") ||
60
+ changedProperties.has("error")) {
61
+ this.validate();
62
+ }
63
+ }
64
+ get selectedValues() {
65
+ if (!this.value)
66
+ return [];
67
+ return this.value
68
+ .split(",")
69
+ .map((v) => v.trim())
70
+ .filter(Boolean);
71
+ }
72
+ validate() {
73
+ this.internals.setFormValue(this.value);
74
+ const isMissing = this.required && this.selectedValues.length === 0;
75
+ if (this.error) {
76
+ this.internals.setValidity({ customError: true }, this.error);
77
+ this.nativeError = this.error;
78
+ }
79
+ else if (isMissing) {
80
+ const msg = "Please make a selection.";
81
+ this.internals.setValidity({ valueMissing: true }, msg);
82
+ this.nativeError = msg;
83
+ }
84
+ else {
85
+ this.internals.setValidity({});
86
+ this.nativeError = "";
87
+ this.invalid = false;
88
+ }
89
+ }
90
+ handleClickOutside(e) {
91
+ const path = e.composedPath();
92
+ if (!path.includes(this)) {
93
+ if (this.open) {
94
+ this.touched = true;
95
+ }
96
+ this.open = false;
97
+ this.filterText = "";
98
+ }
99
+ }
100
+ toggleOpen() {
101
+ if (this.disabled)
102
+ return;
103
+ if (this.open) {
104
+ this.touched = true;
105
+ }
106
+ this.open = !this.open;
107
+ if (this.open) {
108
+ setTimeout(() => {
109
+ if (this.searchable && this.searchInputEl) {
110
+ this.searchInputEl.focus();
111
+ }
112
+ else {
113
+ const first = this.shadowRoot?.querySelector(".option");
114
+ first?.focus();
115
+ }
116
+ }, 0);
117
+ }
118
+ else {
119
+ this.filterText = "";
120
+ }
121
+ }
122
+ handleOptionClick(optValue, e) {
123
+ e.stopPropagation();
124
+ this.touched = true;
125
+ if (this.multiple) {
126
+ const current = this.selectedValues;
127
+ const index = current.indexOf(optValue);
128
+ let updated;
129
+ if (index > -1) {
130
+ updated = current.filter((v) => v !== optValue);
131
+ }
132
+ else {
133
+ updated = [...current, optValue];
134
+ }
135
+ this.value = updated.join(",");
136
+ }
137
+ else {
138
+ this.value = optValue;
139
+ this.open = false;
140
+ this.buttonElement?.focus();
141
+ }
142
+ this.dispatchEvent(new Event("change", { bubbles: true, composed: true }));
143
+ }
144
+ handleSearchInput(e) {
145
+ this.filterText = e.target.value;
146
+ }
147
+ handleButtonKeydown(e) {
148
+ if (this.disabled)
149
+ return;
150
+ if (e.key === "Enter" || e.key === " " || e.key === "ArrowDown") {
151
+ e.preventDefault();
152
+ this.toggleOpen();
153
+ }
21
154
  }
22
155
  render() {
156
+ const currentValues = this.selectedValues;
157
+ const selectedOptions = this.options.filter((opt) => currentValues.includes(opt.value));
158
+ // 4. Update isInvalid to also respect the new property fallback
159
+ const isInvalid = this.invalid || (this.touched && !this.internals.validity.valid) || !!this.error;
160
+ const displayError = isInvalid ? this.error || this.nativeError : "";
161
+ const filteredOptions = this.searchable
162
+ ? this.options.filter((opt) => opt.label.toLowerCase().includes(this.filterText.toLowerCase()))
163
+ : this.options;
23
164
  return html `
24
- <div class="select-wrapper">
25
- <slot></slot>
26
- <svg class="chevron" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
165
+ ${this.label ? html `<label id="select-label">${this.label}</label>` : ""}
166
+
167
+ <button
168
+ type="button"
169
+ ?disabled=${this.disabled}
170
+ class=${classMap({
171
+ combobox: true,
172
+ "is-placeholder": selectedOptions.length === 0,
173
+ "is-invalid": isInvalid,
174
+ })}
175
+ role="combobox"
176
+ aria-haspopup="listbox"
177
+ aria-expanded="${this.open}"
178
+ aria-labelledby="select-label"
179
+ aria-controls="select-listbox"
180
+ @click=${this.toggleOpen}
181
+ @keydown=${this.handleButtonKeydown}
182
+ >
183
+ <div class="selection-container">
184
+ ${selectedOptions.length > 0
185
+ ? this.multiple
186
+ ? selectedOptions.map((opt) => html `<span class="chip">${opt.label}</span>`)
187
+ : html `<span>${selectedOptions[0].label}</span>`
188
+ : html `<span>Select option...</span>`}
189
+ </div>
190
+ <svg
191
+ style="width:16px;height:16px;flex-shrink:0"
192
+ viewBox="0 0 24 24"
193
+ fill="none"
194
+ stroke="currentColor"
195
+ stroke-width="2"
196
+ >
27
197
  <polyline points="6 9 12 15 18 9"></polyline>
28
198
  </svg>
29
- </div>
199
+ </button>
200
+
201
+ ${this.open
202
+ ? html `
203
+ <div class="listbox-container">
204
+ ${this.searchable
205
+ ? html `
206
+ <div class="search-wrapper" @click=${(e) => e.stopPropagation()}>
207
+ <input
208
+ type="text"
209
+ class="search-input"
210
+ placeholder="Search options..."
211
+ autocomplete="off"
212
+ .value=${this.filterText}
213
+ @input=${this.handleSearchInput}
214
+ />
215
+ </div>
216
+ `
217
+ : ""}
218
+
219
+ <ul
220
+ id="select-listbox"
221
+ class="listbox"
222
+ role="listbox"
223
+ aria-multiselectable="${this.multiple}"
224
+ >
225
+ ${filteredOptions.length > 0
226
+ ? filteredOptions.map((opt) => {
227
+ const isSelected = currentValues.includes(opt.value);
228
+ return html `
229
+ <li
230
+ class="option"
231
+ role="option"
232
+ aria-selected="${isSelected}"
233
+ @click=${(e) => this.handleOptionClick(opt.value, e)}
234
+ >
235
+ <span>${opt.label}</span>
236
+ ${this.multiple && isSelected ? html `<span>✓</span>` : ""}
237
+ </li>
238
+ `;
239
+ })
240
+ : html `<li
241
+ class="option"
242
+ style="color:var(--st-color-text-muted); cursor:default;"
243
+ >
244
+ No options found
245
+ </li>`}
246
+ </ul>
247
+ </div>
248
+ `
249
+ : ""}
250
+ ${displayError ? html `<span class="error-msg">${displayError}</span>` : ""}
251
+
252
+ <select
253
+ class="hidden-native"
254
+ name="${this.name}"
255
+ .autocomplete="${this.autocomplete}"
256
+ ?multiple=${this.multiple}
257
+ tabindex="-1"
258
+ aria-hidden="true"
259
+ ?disabled=${this.disabled}
260
+ >
261
+ <option value=""></option>
262
+ ${this.options.map((opt) => html `
263
+ <option value="${opt.value}" ?selected=${currentValues.includes(opt.value)}>
264
+ ${opt.label}
265
+ </option>
266
+ `)}
267
+ </select>
30
268
  `;
31
269
  }
32
270
  };
33
- StSelect.styles = [
34
- resetStyles,
35
- css `
36
- :host {
37
- display: inline-block;
38
- width: 100%;
39
- position: relative;
40
- }
41
-
42
- .select-wrapper {
43
- position: relative;
44
- display: flex;
45
- align-items: center;
46
- width: 100%;
47
- }
48
-
49
- /*
50
- Target the native select provided by the user in the Light DOM.
51
- This completely bypasses the browser rendering bug.
52
- */
53
- ::slotted(select) {
54
- appearance: none;
55
- -webkit-appearance: none;
56
- width: 100%;
57
- font-family: inherit;
58
- background-color: transparent;
59
- border-radius: var(--st-radius-md, 0.5rem);
60
- color: var(--st-color-text);
61
- cursor: pointer;
62
- outline: none;
63
- transition: border-color 0.2s, box-shadow 0.2s, background-color 0.2s;
64
- }
65
-
66
- ::slotted(select:disabled) {
67
- opacity: 0.6;
68
- cursor: not-allowed;
69
- }
70
-
71
- /* ==========================================================
72
- Sizes
73
- ========================================================== */
74
- :host([size="sm"]) ::slotted(select) {
75
- padding: 0.25rem 2rem 0.25rem 0.75rem;
76
- font-size: 0.875rem;
77
- height: 2rem;
78
- }
79
- :host([size="md"]) ::slotted(select) {
80
- padding: 0.5rem 2.5rem 0.5rem 1rem;
81
- font-size: 1rem;
82
- height: 2.5rem;
83
- }
84
- :host([size="lg"]) ::slotted(select) {
85
- padding: 0.75rem 3rem 0.75rem 1.25rem;
86
- font-size: 1.125rem;
87
- height: 3rem;
88
- }
89
-
90
- /* Multiple select formatting (No fixed height, no right padding for chevron) */
91
- ::slotted(select[multiple]) {
92
- height: auto !important;
93
- padding-right: 1rem !important;
94
- }
95
-
96
- /* ==========================================================
97
- Variants & Colors
98
- ========================================================== */
99
- :host([variant="outline"]) ::slotted(select) {
100
- border: 1px solid var(--st-color-border);
101
- }
102
- :host([variant="outline"][color="default"]) ::slotted(select:focus-visible) {
103
- border-color: var(--st-color-primary);
104
- box-shadow: 0 0 0 2px rgba(var(--st-color-primary-rgb, 99, 102, 241), 0.2);
105
- }
106
-
107
- :host([variant="filled"]) ::slotted(select) {
108
- border: 1px solid transparent;
109
- background-color: var(--st-color-surface-hover, rgba(0, 0, 0, 0.05));
110
- }
111
- :host([variant="filled"]) ::slotted(select:not(:disabled):hover) {
112
- background-color: var(--st-color-surface-active, rgba(0, 0, 0, 0.1));
113
- }
114
- :host([variant="filled"][color="default"]) ::slotted(select:focus-visible) {
115
- border-color: var(--st-color-primary);
116
- background-color: transparent;
117
- }
118
-
119
- /* Error Color State */
120
- :host([color="error"]) ::slotted(select) {
121
- border-color: var(--st-color-error, #ef4444);
122
- }
123
- :host([color="error"]) ::slotted(select:focus-visible) {
124
- box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2);
125
- }
126
-
127
- /* Primary Color State */
128
- :host([color="primary"]) ::slotted(select) {
129
- border-color: var(--st-color-primary);
130
- }
131
-
132
- /* ==========================================================
133
- Chevron Icon
134
- ========================================================== */
135
- .chevron {
136
- position: absolute;
137
- right: 0.75rem;
138
- width: 1.25rem;
139
- height: 1.25rem;
140
- pointer-events: none;
141
- color: var(--st-color-text-muted);
142
- transition: transform 0.2s ease, color 0.2s ease;
143
- }
144
-
145
- /* Animate chevron when the wrapper detects focus */
146
- :host([focused]) .chevron {
147
- transform: rotate(180deg);
148
- color: var(--st-color-primary);
149
- }
150
-
151
- /* Hide chevron if the user slots a native multiple select */
152
- ::slotted(select[multiple]) ~ .chevron {
153
- display: none;
154
- }
155
- `
156
- ];
157
- __decorate([
158
- property({ type: String, reflect: true })
159
- ], StSelect.prototype, "size", void 0);
160
- __decorate([
161
- property({ type: String, reflect: true })
162
- ], StSelect.prototype, "variant", void 0);
163
- __decorate([
164
- property({ type: String, reflect: true })
165
- ], StSelect.prototype, "color", void 0);
271
+ StSelect.formAssociated = true;
272
+ StSelect.styles = css `
273
+ :host {
274
+ display: block;
275
+ font-family: inherit;
276
+ position: relative;
277
+ }
278
+
279
+ label {
280
+ display: block;
281
+ font-size: var(--st-font-size-sm);
282
+ font-weight: 500;
283
+ color: var(--st-color-text-muted);
284
+ margin-bottom: var(--st-spacing-xs);
285
+ }
286
+
287
+ .combobox {
288
+ display: flex;
289
+ justify-content: space-between;
290
+ align-items: center;
291
+ width: 100%;
292
+ min-height: 42px;
293
+ padding: var(--st-spacing-xs) var(--st-spacing-md);
294
+ background: var(--st-color-surface);
295
+ border: 1px solid var(--st-color-border);
296
+ border-radius: var(--st-radius-md);
297
+ font-size: var(--st-font-size-base);
298
+ color: var(--st-color-text);
299
+ cursor: pointer;
300
+ text-align: left;
301
+ box-sizing: border-box;
302
+ transition:
303
+ border-color 0.2s,
304
+ box-shadow 0.2s,
305
+ background-color 0.2s;
306
+ }
307
+
308
+ .combobox:disabled {
309
+ background: var(--st-color-surface-muted);
310
+ cursor: not-allowed;
311
+ opacity: 0.7;
312
+ }
313
+
314
+ .combobox.is-invalid {
315
+ border-color: var(--st-color-danger, #dc2626);
316
+ }
317
+
318
+ .combobox:focus-visible {
319
+ outline: none;
320
+ border-color: var(--st-color-primary);
321
+ box-shadow: 0 0 0 2px var(--st-color-primary-muted);
322
+ }
323
+
324
+ .combobox.is-placeholder {
325
+ color: var(--st-color-text-muted);
326
+ }
327
+
328
+ .selection-container {
329
+ display: flex;
330
+ flex-wrap: wrap;
331
+ gap: 4px;
332
+ align-items: center;
333
+ flex: 1;
334
+ overflow: hidden;
335
+ }
336
+
337
+ .chip {
338
+ display: inline-flex;
339
+ align-items: center;
340
+ background: var(--st-color-surface-muted);
341
+ border: 1px solid var(--st-color-border);
342
+ border-radius: var(--st-radius-sm);
343
+ padding: 2px 6px;
344
+ font-size: var(--st-font-size-xs);
345
+ color: var(--st-color-text);
346
+ }
347
+
348
+ .listbox-container {
349
+ position: absolute;
350
+ top: calc(100% + 4px);
351
+ left: 0;
352
+ right: 0;
353
+ z-index: 1;
354
+ background: var(--st-color-surface);
355
+ border: 1px solid var(--st-color-border);
356
+ border-radius: var(--st-radius-md);
357
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
358
+ overflow: hidden;
359
+ }
360
+
361
+ .search-wrapper {
362
+ padding: var(--st-spacing-xs);
363
+ border-bottom: 1px solid var(--st-color-border);
364
+ }
365
+
366
+ .search-input {
367
+ width: 100%;
368
+ padding: var(--st-spacing-xs) var(--st-spacing-sm);
369
+ background: var(--st-color-surface-muted);
370
+ border: 1px solid var(--st-color-border);
371
+ border-radius: var(--st-radius-sm);
372
+ font-size: var(--st-font-size-sm);
373
+ color: var(--st-color-text);
374
+ box-sizing: border-box;
375
+ }
376
+
377
+ .search-input:focus {
378
+ outline: none;
379
+ border-color: var(--st-color-primary);
380
+ }
381
+
382
+ .listbox {
383
+ margin: 0;
384
+ padding: var(--st-spacing-xs) 0;
385
+ max-height: 220px;
386
+ overflow-y: auto;
387
+ list-style: none;
388
+ }
389
+
390
+ .option {
391
+ padding: var(--st-spacing-sm) var(--st-spacing-md);
392
+ cursor: pointer;
393
+ color: var(--st-color-text);
394
+ display: flex;
395
+ justify-content: space-between;
396
+ align-items: center;
397
+ }
398
+
399
+ .option:hover {
400
+ background: var(--st-color-surface-muted);
401
+ }
402
+
403
+ .option[aria-selected="true"] {
404
+ font-weight: 500;
405
+ color: var(--st-color-primary);
406
+ }
407
+
408
+ .error-msg {
409
+ display: block;
410
+ margin-top: var(--st-spacing-xs);
411
+ font-size: var(--st-font-size-xs);
412
+ color: var(--st-color-danger, #dc2626);
413
+ }
414
+
415
+ .hidden-native {
416
+ position: absolute;
417
+ width: 1px;
418
+ height: 1px;
419
+ padding: 0;
420
+ margin: -1px;
421
+ overflow: hidden;
422
+ clip: rect(0, 0, 0, 0);
423
+ border: 0;
424
+ }
425
+ `;
426
+ __decorate([
427
+ property({ type: String })
428
+ ], StSelect.prototype, "name", void 0);
429
+ __decorate([
430
+ property({ type: String })
431
+ ], StSelect.prototype, "label", void 0);
432
+ __decorate([
433
+ property({ type: String })
434
+ ], StSelect.prototype, "value", void 0);
435
+ __decorate([
436
+ property({ type: Boolean })
437
+ ], StSelect.prototype, "required", void 0);
438
+ __decorate([
439
+ property({ type: Boolean })
440
+ ], StSelect.prototype, "multiple", void 0);
441
+ __decorate([
442
+ property({ type: Boolean })
443
+ ], StSelect.prototype, "searchable", void 0);
444
+ __decorate([
445
+ property({ type: Array })
446
+ ], StSelect.prototype, "options", void 0);
447
+ __decorate([
448
+ property({ type: String })
449
+ ], StSelect.prototype, "error", void 0);
166
450
  __decorate([
167
451
  property({ type: Boolean, reflect: true })
168
- ], StSelect.prototype, "focused", void 0);
452
+ ], StSelect.prototype, "disabled", void 0);
453
+ __decorate([
454
+ property({ type: Boolean, reflect: true })
455
+ ], StSelect.prototype, "invalid", void 0);
456
+ __decorate([
457
+ property({ type: String })
458
+ ], StSelect.prototype, "autocomplete", void 0);
459
+ __decorate([
460
+ state()
461
+ ], StSelect.prototype, "open", void 0);
462
+ __decorate([
463
+ state()
464
+ ], StSelect.prototype, "filterText", void 0);
465
+ __decorate([
466
+ state()
467
+ ], StSelect.prototype, "nativeError", void 0);
468
+ __decorate([
469
+ state()
470
+ ], StSelect.prototype, "touched", void 0);
471
+ __decorate([
472
+ query(".combobox")
473
+ ], StSelect.prototype, "buttonElement", void 0);
474
+ __decorate([
475
+ query(".search-input")
476
+ ], StSelect.prototype, "searchInputEl", void 0);
169
477
  StSelect = __decorate([
170
- customElement('st-select')
478
+ customElement("st-select")
171
479
  ], StSelect);
172
480
  export { StSelect };
@@ -5,4 +5,9 @@ export declare class StTabPanel extends LitElement {
5
5
  static styles: import("lit").CSSResult[];
6
6
  render(): import("lit-html").TemplateResult<1>;
7
7
  }
8
+ declare global {
9
+ interface HTMLElementTagNameMap {
10
+ "st-tab-panel": StTabPanel;
11
+ }
12
+ }
8
13
  //# sourceMappingURL=tab-panel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab-panel.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/tab-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,qBACa,UAAW,SAAQ,UAAU;IACG,IAAI,SAAM;IACT,MAAM,UAAS;IAE3D,MAAM,CAAC,MAAM,4BAYX;IAEF,MAAM,yCAML;CACF"}
1
+ {"version":3,"file":"tab-panel.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/tab-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,qBACa,UAAW,SAAQ,UAAU;IACG,IAAI,SAAM;IACT,MAAM,UAAS;IAE3D,MAAM,CAAC,MAAM,4BAYX;IAEF,MAAM,yCAML;CACF;AACD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,UAAU,CAAC;KAC5B;CACF"}
@@ -6,4 +6,9 @@ export declare class StTab extends LitElement {
6
6
  private _handleClick;
7
7
  render(): import("lit-html").TemplateResult<1>;
8
8
  }
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ "st-tab": StTab;
12
+ }
13
+ }
9
14
  //# sourceMappingURL=tab.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/tab.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,qBACa,KAAM,SAAQ,UAAU;IACQ,KAAK,SAAM;IACV,MAAM,UAAS;IAE3D,MAAM,CAAC,MAAM,4BA6CX;IAEF,OAAO,CAAC,YAAY;IAQpB,MAAM,yCAWL;CACF"}
1
+ {"version":3,"file":"tab.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/tab.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,qBACa,KAAM,SAAQ,UAAU;IACQ,KAAK,SAAM;IACV,MAAM,UAAS;IAE3D,MAAM,CAAC,MAAM,4BA6CX;IAEF,OAAO,CAAC,YAAY;IAQpB,MAAM,yCAWL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,QAAQ,EAAE,KAAK,CAAC;KACjB;CACF"}
@@ -11,4 +11,9 @@ export declare class StTabs extends LitElement {
11
11
  private _handleSlotChange;
12
12
  render(): import("lit-html").TemplateResult<1>;
13
13
  }
14
+ declare global {
15
+ interface HTMLElementTagNameMap {
16
+ "st-tabs": StTabs;
17
+ }
18
+ }
14
19
  //# sourceMappingURL=tabs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/tabs.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,CAAC;AAClB,OAAO,gBAAgB,CAAC;AAExB,OAAO,EAAC,UAAU,EAAY,MAAM,KAAK,CAAC;AAM1C,qBACa,MAAO,SAAQ,UAAU;IAEpC,OAAO,CAAC,KAAK,CAAW;IAGxB,OAAO,CAAC,OAAO,CAAgB;IAE/B,MAAM,CAAC,MAAM,4BAoBX;IAEF,iBAAiB,SAGhB;IAED,oBAAoB,SAGnB;IAED,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,iBAAiB;IAUzB,MAAM,yCASL;CACF"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/tabs.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,CAAC;AAClB,OAAO,gBAAgB,CAAC;AAExB,OAAO,EAAC,UAAU,EAAY,MAAM,KAAK,CAAC;AAM1C,qBACa,MAAO,SAAQ,UAAU;IAEpC,OAAO,CAAC,KAAK,CAAW;IAGxB,OAAO,CAAC,OAAO,CAAgB;IAE/B,MAAM,CAAC,MAAM,4BAoBX;IAEF,iBAAiB,SAGhB;IAED,oBAAoB,SAGnB;IAED,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,iBAAiB;IAUzB,MAAM,yCASL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}