@sondor-technology/sondor-components 1.0.1-develop.10 → 1.0.1-develop.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/components/button-group/button-group.d.ts +5 -0
  2. package/dist/components/button-group/button-group.d.ts.map +1 -1
  3. package/dist/components/code-block/code-block.d.ts +5 -0
  4. package/dist/components/code-block/code-block.d.ts.map +1 -1
  5. package/dist/components/form/form-step.d.ts +1 -0
  6. package/dist/components/form/form-step.d.ts.map +1 -1
  7. package/dist/components/form/form-step.js +3 -0
  8. package/dist/components/form/form.d.ts +7 -2
  9. package/dist/components/form/form.d.ts.map +1 -1
  10. package/dist/components/form/form.js +134 -42
  11. package/dist/components/input/input.d.ts +5 -0
  12. package/dist/components/input/input.d.ts.map +1 -1
  13. package/dist/components/page-layout/page-layout.js +1 -1
  14. package/dist/components/select/select.d.ts +42 -11
  15. package/dist/components/select/select.d.ts.map +1 -1
  16. package/dist/components/select/select.js +458 -150
  17. package/dist/components/tabs/tab-panel.d.ts +5 -0
  18. package/dist/components/tabs/tab-panel.d.ts.map +1 -1
  19. package/dist/components/tabs/tab.d.ts +5 -0
  20. package/dist/components/tabs/tab.d.ts.map +1 -1
  21. package/dist/components/tabs/tabs.d.ts +5 -0
  22. package/dist/components/tabs/tabs.d.ts.map +1 -1
  23. package/dist/styles/index.css +2 -0
  24. package/package.json +1 -1
  25. package/src/components/button-group/button-group.ts +6 -0
  26. package/src/components/code-block/code-block.ts +6 -0
  27. package/src/components/form/form-step.ts +5 -1
  28. package/src/components/form/form.ts +153 -46
  29. package/src/components/input/input.ts +6 -0
  30. package/src/components/page-layout/page-layout.ts +1 -1
  31. package/src/components/select/select.ts +499 -133
  32. package/src/components/tabs/tab-panel.ts +5 -0
  33. package/src/components/tabs/tab.ts +6 -0
  34. package/src/components/tabs/tabs.ts +6 -0
  35. package/src/styles/theme.css +2 -0
@@ -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"}