@latty-ds/web 0.3.0 → 0.4.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/custom-elements.json +2932 -2558
- package/dist/components/accordion/index.js +1 -1
- package/dist/components/avatar/index.js +1 -1
- package/dist/components/checkbox/checkbox.d.ts +7 -5
- package/dist/components/checkbox/index.js +22 -9
- package/dist/components/color-input/color-input.d.ts +17 -0
- package/dist/components/color-input/index.js +32 -4
- package/dist/components/combobox/combobox.d.ts +8 -1
- package/dist/components/combobox/index.js +26 -7
- package/dist/components/date-input/date-input.d.ts +7 -0
- package/dist/components/date-input/index.js +24 -5
- package/dist/components/datepicker/datepicker.d.ts +8 -0
- package/dist/components/datepicker/index.js +27 -7
- package/dist/components/dialog/dialog.d.ts +4 -2
- package/dist/components/dialog/index.js +5 -12
- package/dist/components/divider/index.js +1 -1
- package/dist/components/nav/index.js +2 -2
- package/dist/components/progress/index.js +2 -2
- package/dist/components/radio/index.js +24 -4
- package/dist/components/radio/radio.d.ts +7 -0
- package/dist/components/radio-group/index.js +3 -3
- package/dist/components/select/index.js +28 -9
- package/dist/components/select/select.d.ts +11 -3
- package/dist/components/sidepanel/index.js +1 -1
- package/dist/components/slider/index.js +17 -4
- package/dist/components/slider/slider.d.ts +6 -0
- package/dist/components/switch/index.js +24 -4
- package/dist/components/switch/switch.d.ts +7 -0
- package/dist/components/tab/index.js +2 -2
- package/dist/components/tab-group/index.js +3 -3
- package/dist/components/textfield/index.js +26 -4
- package/dist/components/textfield/textfield.d.ts +11 -0
- package/dist/index.cjs +269 -83
- package/dist/index.js +269 -83
- package/dist/manifest.json +140 -116
- package/package.json +3 -3
|
@@ -434,7 +434,7 @@ var Accordion = class extends ThemeableElement {
|
|
|
434
434
|
};
|
|
435
435
|
Accordion.styles = accordionStyles;
|
|
436
436
|
__decorateClass([
|
|
437
|
-
property3()
|
|
437
|
+
property3({ reflect: true })
|
|
438
438
|
], Accordion.prototype, "label", 2);
|
|
439
439
|
__decorateClass([
|
|
440
440
|
property3({ attribute: "icon-start" })
|
|
@@ -6,7 +6,7 @@ import '@latty-ds/icons';
|
|
|
6
6
|
*
|
|
7
7
|
* @element lt-checkbox
|
|
8
8
|
*
|
|
9
|
-
* @fires {CustomEvent<{checked: boolean
|
|
9
|
+
* @fires {CustomEvent<{checked: boolean}>} change - Dispatched when the checked state changes
|
|
10
10
|
*
|
|
11
11
|
* @example
|
|
12
12
|
* ```html
|
|
@@ -33,6 +33,9 @@ import '@latty-ds/icons';
|
|
|
33
33
|
*/
|
|
34
34
|
export declare class Checkbox extends ThemeableElement {
|
|
35
35
|
static styles: import("lit").CSSResult;
|
|
36
|
+
static formAssociated: boolean;
|
|
37
|
+
private _internals;
|
|
38
|
+
constructor();
|
|
36
39
|
/**
|
|
37
40
|
* Visual variant that determines the color when checked.
|
|
38
41
|
* @default 'primary'
|
|
@@ -89,11 +92,10 @@ export declare class Checkbox extends ThemeableElement {
|
|
|
89
92
|
* @private
|
|
90
93
|
*/
|
|
91
94
|
private input;
|
|
92
|
-
/**
|
|
93
|
-
* Handles changes to the indeterminate property.
|
|
94
|
-
* Updates the native input's indeterminate state.
|
|
95
|
-
*/
|
|
96
95
|
updated(changedProperties: Map<string, unknown>): void;
|
|
96
|
+
formResetCallback(): void;
|
|
97
|
+
checkValidity(): boolean;
|
|
98
|
+
reportValidity(): boolean;
|
|
97
99
|
/**
|
|
98
100
|
* Handles checkbox change events.
|
|
99
101
|
* Updates the checked state and dispatches a custom change event.
|
|
@@ -201,7 +201,7 @@ var checkboxStyles = css`
|
|
|
201
201
|
import "@latty-ds/icons";
|
|
202
202
|
var Checkbox = class extends ThemeableElement {
|
|
203
203
|
constructor() {
|
|
204
|
-
super(
|
|
204
|
+
super();
|
|
205
205
|
this.variant = "primary";
|
|
206
206
|
this.size = "md";
|
|
207
207
|
this.checked = false;
|
|
@@ -212,15 +212,27 @@ var Checkbox = class extends ThemeableElement {
|
|
|
212
212
|
this.labelPosition = "right";
|
|
213
213
|
this.name = "";
|
|
214
214
|
this.value = "on";
|
|
215
|
+
this._internals = this.attachInternals();
|
|
215
216
|
}
|
|
216
|
-
/**
|
|
217
|
-
* Handles changes to the indeterminate property.
|
|
218
|
-
* Updates the native input's indeterminate state.
|
|
219
|
-
*/
|
|
220
217
|
updated(changedProperties) {
|
|
221
218
|
if (changedProperties.has("indeterminate") && this.input) {
|
|
222
219
|
this.input.indeterminate = this.indeterminate;
|
|
223
220
|
}
|
|
221
|
+
this._internals.setFormValue(this.checked ? this.value : null);
|
|
222
|
+
if (this.required && !this.checked && this.input) {
|
|
223
|
+
this._internals.setValidity({ valueMissing: true }, "Please check this box", this.input);
|
|
224
|
+
} else {
|
|
225
|
+
this._internals.setValidity({});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
formResetCallback() {
|
|
229
|
+
this.checked = false;
|
|
230
|
+
}
|
|
231
|
+
checkValidity() {
|
|
232
|
+
return this._internals.checkValidity();
|
|
233
|
+
}
|
|
234
|
+
reportValidity() {
|
|
235
|
+
return this._internals.reportValidity();
|
|
224
236
|
}
|
|
225
237
|
/**
|
|
226
238
|
* Handles checkbox change events.
|
|
@@ -235,7 +247,7 @@ var Checkbox = class extends ThemeableElement {
|
|
|
235
247
|
this.indeterminate = false;
|
|
236
248
|
this.dispatchEvent(
|
|
237
249
|
new CustomEvent("change", {
|
|
238
|
-
detail: { checked: this.checked
|
|
250
|
+
detail: { checked: this.checked },
|
|
239
251
|
bubbles: true,
|
|
240
252
|
composed: true
|
|
241
253
|
})
|
|
@@ -279,6 +291,7 @@ var Checkbox = class extends ThemeableElement {
|
|
|
279
291
|
}
|
|
280
292
|
};
|
|
281
293
|
Checkbox.styles = checkboxStyles;
|
|
294
|
+
Checkbox.formAssociated = true;
|
|
282
295
|
__decorateClass([
|
|
283
296
|
property2({ reflect: true })
|
|
284
297
|
], Checkbox.prototype, "variant", 2);
|
|
@@ -298,16 +311,16 @@ __decorateClass([
|
|
|
298
311
|
property2({ type: Boolean, reflect: true })
|
|
299
312
|
], Checkbox.prototype, "required", 2);
|
|
300
313
|
__decorateClass([
|
|
301
|
-
property2()
|
|
314
|
+
property2({ reflect: true })
|
|
302
315
|
], Checkbox.prototype, "label", 2);
|
|
303
316
|
__decorateClass([
|
|
304
317
|
property2({ attribute: "label-position", reflect: true })
|
|
305
318
|
], Checkbox.prototype, "labelPosition", 2);
|
|
306
319
|
__decorateClass([
|
|
307
|
-
property2()
|
|
320
|
+
property2({ reflect: true })
|
|
308
321
|
], Checkbox.prototype, "name", 2);
|
|
309
322
|
__decorateClass([
|
|
310
|
-
property2()
|
|
323
|
+
property2({ reflect: true })
|
|
311
324
|
], Checkbox.prototype, "value", 2);
|
|
312
325
|
__decorateClass([
|
|
313
326
|
query('input[type="checkbox"]')
|
|
@@ -19,6 +19,9 @@ import '../text/text';
|
|
|
19
19
|
*/
|
|
20
20
|
export declare class ColorInput extends ThemeableElement {
|
|
21
21
|
static styles: import("lit").CSSResult;
|
|
22
|
+
static formAssociated: boolean;
|
|
23
|
+
private _internals;
|
|
24
|
+
constructor();
|
|
22
25
|
/**
|
|
23
26
|
* The current color value. Accepts hex (`#7c3aed`), rgb (`rgb(124, 58, 237)`),
|
|
24
27
|
* or hsl (`hsl(263, 70%, 58%)`). Emitted values match the `format` prop.
|
|
@@ -45,11 +48,25 @@ export declare class ColorInput extends ThemeableElement {
|
|
|
45
48
|
* @default false
|
|
46
49
|
*/
|
|
47
50
|
disabled: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Whether the field is required.
|
|
53
|
+
* @default false
|
|
54
|
+
*/
|
|
55
|
+
required: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Name used when submitting a form.
|
|
58
|
+
* @default ''
|
|
59
|
+
*/
|
|
60
|
+
name: string;
|
|
48
61
|
/**
|
|
49
62
|
* Size of the input — affects height and padding.
|
|
50
63
|
* @default 'md'
|
|
51
64
|
*/
|
|
52
65
|
size: ColorInputSize;
|
|
66
|
+
updated(): void;
|
|
67
|
+
formResetCallback(): void;
|
|
68
|
+
checkValidity(): boolean;
|
|
69
|
+
reportValidity(): boolean;
|
|
53
70
|
private _handleChange;
|
|
54
71
|
render(): import("lit").TemplateResult<1>;
|
|
55
72
|
}
|
|
@@ -421,13 +421,34 @@ function formatColor(hex, format) {
|
|
|
421
421
|
}
|
|
422
422
|
var ColorInput = class extends ThemeableElement {
|
|
423
423
|
constructor() {
|
|
424
|
-
super(
|
|
424
|
+
super();
|
|
425
425
|
this.value = "";
|
|
426
426
|
this.format = "hex";
|
|
427
427
|
this.label = "";
|
|
428
428
|
this.placeholder = "Pick a color";
|
|
429
429
|
this.disabled = false;
|
|
430
|
+
this.required = false;
|
|
431
|
+
this.name = "";
|
|
430
432
|
this.size = "md";
|
|
433
|
+
this._internals = this.attachInternals();
|
|
434
|
+
}
|
|
435
|
+
updated() {
|
|
436
|
+
this._internals.setFormValue(this.value || null);
|
|
437
|
+
const input = this.shadowRoot?.querySelector('input[type="color"]');
|
|
438
|
+
if (this.required && !this.value && input) {
|
|
439
|
+
this._internals.setValidity({ valueMissing: true }, "Please select a color", input);
|
|
440
|
+
} else {
|
|
441
|
+
this._internals.setValidity({});
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
formResetCallback() {
|
|
445
|
+
this.value = "";
|
|
446
|
+
}
|
|
447
|
+
checkValidity() {
|
|
448
|
+
return this._internals.checkValidity();
|
|
449
|
+
}
|
|
450
|
+
reportValidity() {
|
|
451
|
+
return this._internals.reportValidity();
|
|
431
452
|
}
|
|
432
453
|
_handleChange(e) {
|
|
433
454
|
const pickerHex = e.target.value;
|
|
@@ -463,21 +484,28 @@ var ColorInput = class extends ThemeableElement {
|
|
|
463
484
|
}
|
|
464
485
|
};
|
|
465
486
|
ColorInput.styles = colorInputStyles;
|
|
487
|
+
ColorInput.formAssociated = true;
|
|
466
488
|
__decorateClass([
|
|
467
|
-
property3()
|
|
489
|
+
property3({ reflect: true })
|
|
468
490
|
], ColorInput.prototype, "value", 2);
|
|
469
491
|
__decorateClass([
|
|
470
492
|
property3({ reflect: true })
|
|
471
493
|
], ColorInput.prototype, "format", 2);
|
|
472
494
|
__decorateClass([
|
|
473
|
-
property3()
|
|
495
|
+
property3({ reflect: true })
|
|
474
496
|
], ColorInput.prototype, "label", 2);
|
|
475
497
|
__decorateClass([
|
|
476
|
-
property3()
|
|
498
|
+
property3({ reflect: true })
|
|
477
499
|
], ColorInput.prototype, "placeholder", 2);
|
|
478
500
|
__decorateClass([
|
|
479
501
|
property3({ type: Boolean, reflect: true })
|
|
480
502
|
], ColorInput.prototype, "disabled", 2);
|
|
503
|
+
__decorateClass([
|
|
504
|
+
property3({ type: Boolean, reflect: true })
|
|
505
|
+
], ColorInput.prototype, "required", 2);
|
|
506
|
+
__decorateClass([
|
|
507
|
+
property3({ reflect: true })
|
|
508
|
+
], ColorInput.prototype, "name", 2);
|
|
481
509
|
__decorateClass([
|
|
482
510
|
property3({ reflect: true })
|
|
483
511
|
], ColorInput.prototype, "size", 2);
|
|
@@ -7,7 +7,7 @@ import '../text/text';
|
|
|
7
7
|
*
|
|
8
8
|
* @element lt-combobox
|
|
9
9
|
*
|
|
10
|
-
* @fires {CustomEvent<{value: string
|
|
10
|
+
* @fires {CustomEvent<{value: string}>} change - Fired when the selected value changes.
|
|
11
11
|
*
|
|
12
12
|
* @example
|
|
13
13
|
* ```html
|
|
@@ -20,6 +20,9 @@ import '../text/text';
|
|
|
20
20
|
*/
|
|
21
21
|
export declare class Combobox extends ThemeableElement {
|
|
22
22
|
static styles: import("lit").CSSResult[];
|
|
23
|
+
static formAssociated: boolean;
|
|
24
|
+
private _internals;
|
|
25
|
+
constructor();
|
|
23
26
|
/** Array of selectable options. Set as a JS property (`.options`). */
|
|
24
27
|
options: ComboboxOption[];
|
|
25
28
|
/** Currently selected value. */
|
|
@@ -55,5 +58,9 @@ export declare class Combobox extends ThemeableElement {
|
|
|
55
58
|
private handleKeydown;
|
|
56
59
|
connectedCallback(): void;
|
|
57
60
|
disconnectedCallback(): void;
|
|
61
|
+
updated(): void;
|
|
62
|
+
formResetCallback(): void;
|
|
63
|
+
checkValidity(): boolean;
|
|
64
|
+
reportValidity(): boolean;
|
|
58
65
|
render(): import("lit").TemplateResult<1>;
|
|
59
66
|
}
|
|
@@ -1801,7 +1801,7 @@ Text = __decorateClass([
|
|
|
1801
1801
|
// src/components/combobox/combobox.ts
|
|
1802
1802
|
var Combobox = class extends ThemeableElement {
|
|
1803
1803
|
constructor() {
|
|
1804
|
-
super(
|
|
1804
|
+
super();
|
|
1805
1805
|
this.options = [];
|
|
1806
1806
|
this.value = "";
|
|
1807
1807
|
this.label = "";
|
|
@@ -1817,6 +1817,7 @@ var Combobox = class extends ThemeableElement {
|
|
|
1817
1817
|
this.activeIndex = -1;
|
|
1818
1818
|
this._cleanupClickOutside = null;
|
|
1819
1819
|
this._floatingCleanup = null;
|
|
1820
|
+
this._internals = this.attachInternals();
|
|
1820
1821
|
}
|
|
1821
1822
|
get selectedLabel() {
|
|
1822
1823
|
return this.options.find((o) => o.value === this.value)?.label ?? "";
|
|
@@ -1849,7 +1850,7 @@ var Combobox = class extends ThemeableElement {
|
|
|
1849
1850
|
if (opt.disabled) return;
|
|
1850
1851
|
this.value = opt.value;
|
|
1851
1852
|
this.closeDropdown();
|
|
1852
|
-
dispatch(this, "change", { value: opt.value
|
|
1853
|
+
dispatch(this, "change", { value: opt.value });
|
|
1853
1854
|
}
|
|
1854
1855
|
handleInput(e) {
|
|
1855
1856
|
this.query = e.target.value;
|
|
@@ -1887,6 +1888,24 @@ var Combobox = class extends ThemeableElement {
|
|
|
1887
1888
|
this._floatingCleanup?.();
|
|
1888
1889
|
this._floatingCleanup = null;
|
|
1889
1890
|
}
|
|
1891
|
+
updated() {
|
|
1892
|
+
this._internals.setFormValue(this.value || null);
|
|
1893
|
+
const input = this.shadowRoot?.querySelector("input");
|
|
1894
|
+
if (this.required && !this.value && input) {
|
|
1895
|
+
this._internals.setValidity({ valueMissing: true }, "Please select an option", input);
|
|
1896
|
+
} else {
|
|
1897
|
+
this._internals.setValidity({});
|
|
1898
|
+
}
|
|
1899
|
+
}
|
|
1900
|
+
formResetCallback() {
|
|
1901
|
+
this.value = "";
|
|
1902
|
+
}
|
|
1903
|
+
checkValidity() {
|
|
1904
|
+
return this._internals.checkValidity();
|
|
1905
|
+
}
|
|
1906
|
+
reportValidity() {
|
|
1907
|
+
return this._internals.reportValidity();
|
|
1908
|
+
}
|
|
1890
1909
|
render() {
|
|
1891
1910
|
const opts = this.filtered;
|
|
1892
1911
|
const displayValue = this.open ? this.query : this.selectedLabel;
|
|
@@ -1899,7 +1918,6 @@ var Combobox = class extends ThemeableElement {
|
|
|
1899
1918
|
aria-autocomplete="list"
|
|
1900
1919
|
aria-required=${this.required}
|
|
1901
1920
|
autocomplete="off"
|
|
1902
|
-
name=${this.name || nothing}
|
|
1903
1921
|
placeholder=${this.open ? this.placeholder : this.selectedLabel || this.placeholder}
|
|
1904
1922
|
.value=${displayValue}
|
|
1905
1923
|
?disabled=${this.disabled}
|
|
@@ -1941,17 +1959,18 @@ var Combobox = class extends ThemeableElement {
|
|
|
1941
1959
|
}
|
|
1942
1960
|
};
|
|
1943
1961
|
Combobox.styles = comboboxStyles;
|
|
1962
|
+
Combobox.formAssociated = true;
|
|
1944
1963
|
__decorateClass([
|
|
1945
1964
|
property3({ type: Array })
|
|
1946
1965
|
], Combobox.prototype, "options", 2);
|
|
1947
1966
|
__decorateClass([
|
|
1948
|
-
property3()
|
|
1967
|
+
property3({ reflect: true })
|
|
1949
1968
|
], Combobox.prototype, "value", 2);
|
|
1950
1969
|
__decorateClass([
|
|
1951
|
-
property3()
|
|
1970
|
+
property3({ reflect: true })
|
|
1952
1971
|
], Combobox.prototype, "label", 2);
|
|
1953
1972
|
__decorateClass([
|
|
1954
|
-
property3()
|
|
1973
|
+
property3({ reflect: true })
|
|
1955
1974
|
], Combobox.prototype, "placeholder", 2);
|
|
1956
1975
|
__decorateClass([
|
|
1957
1976
|
property3({ attribute: "helper-text" })
|
|
@@ -1969,7 +1988,7 @@ __decorateClass([
|
|
|
1969
1988
|
property3({ type: Boolean, reflect: true })
|
|
1970
1989
|
], Combobox.prototype, "required", 2);
|
|
1971
1990
|
__decorateClass([
|
|
1972
|
-
property3()
|
|
1991
|
+
property3({ reflect: true })
|
|
1973
1992
|
], Combobox.prototype, "name", 2);
|
|
1974
1993
|
__decorateClass([
|
|
1975
1994
|
state()
|
|
@@ -23,6 +23,9 @@ import type { Calendar } from '../calendar/calendar';
|
|
|
23
23
|
*/
|
|
24
24
|
export declare class DateInput extends ThemeableElement {
|
|
25
25
|
static styles: import("lit").CSSResult[];
|
|
26
|
+
static formAssociated: boolean;
|
|
27
|
+
private _internals;
|
|
28
|
+
constructor();
|
|
26
29
|
/** Selected date in ISO format (YYYY-MM-DD). */
|
|
27
30
|
value: string;
|
|
28
31
|
/** Minimum selectable date (ISO format). Dates before this are disabled. */
|
|
@@ -62,5 +65,9 @@ export declare class DateInput extends ThemeableElement {
|
|
|
62
65
|
disconnectedCallback(): void;
|
|
63
66
|
private _handleCalendarChange;
|
|
64
67
|
private _handleDropdownKeyDown;
|
|
68
|
+
updated(): void;
|
|
69
|
+
formResetCallback(): void;
|
|
70
|
+
checkValidity(): boolean;
|
|
71
|
+
reportValidity(): boolean;
|
|
65
72
|
render(): import("lit").TemplateResult<1>;
|
|
66
73
|
}
|
|
@@ -2688,7 +2688,7 @@ var dateInputStyles = [
|
|
|
2688
2688
|
// src/components/date-input/date-input.ts
|
|
2689
2689
|
var DateInput = class extends ThemeableElement {
|
|
2690
2690
|
constructor() {
|
|
2691
|
-
super(
|
|
2691
|
+
super();
|
|
2692
2692
|
this.value = "";
|
|
2693
2693
|
this.min = "";
|
|
2694
2694
|
this.max = "";
|
|
@@ -2708,6 +2708,7 @@ var DateInput = class extends ThemeableElement {
|
|
|
2708
2708
|
this._open = false;
|
|
2709
2709
|
this._cleanupClickOutside = null;
|
|
2710
2710
|
this._floatingCleanup = null;
|
|
2711
|
+
this._internals = this.attachInternals();
|
|
2711
2712
|
}
|
|
2712
2713
|
get _displayValue() {
|
|
2713
2714
|
if (!this.value) return "";
|
|
@@ -2755,6 +2756,24 @@ var DateInput = class extends ThemeableElement {
|
|
|
2755
2756
|
this.shadowRoot?.querySelector(".field-btn")?.focus();
|
|
2756
2757
|
}
|
|
2757
2758
|
}
|
|
2759
|
+
updated() {
|
|
2760
|
+
this._internals.setFormValue(this.value || null);
|
|
2761
|
+
const btn = this.shadowRoot?.querySelector("#field-btn");
|
|
2762
|
+
if (this.required && !this.value && btn) {
|
|
2763
|
+
this._internals.setValidity({ valueMissing: true }, "Please select a date", btn);
|
|
2764
|
+
} else {
|
|
2765
|
+
this._internals.setValidity({});
|
|
2766
|
+
}
|
|
2767
|
+
}
|
|
2768
|
+
formResetCallback() {
|
|
2769
|
+
this.value = "";
|
|
2770
|
+
}
|
|
2771
|
+
checkValidity() {
|
|
2772
|
+
return this._internals.checkValidity();
|
|
2773
|
+
}
|
|
2774
|
+
reportValidity() {
|
|
2775
|
+
return this._internals.reportValidity();
|
|
2776
|
+
}
|
|
2758
2777
|
render() {
|
|
2759
2778
|
const displayText = this._displayValue || this.placeholder;
|
|
2760
2779
|
const isPlaceholder = !this._displayValue;
|
|
@@ -2803,13 +2822,13 @@ var DateInput = class extends ThemeableElement {
|
|
|
2803
2822
|
</div>
|
|
2804
2823
|
</div>
|
|
2805
2824
|
|
|
2806
|
-
${this.name ? html3`<input type="hidden" name=${this.name} .value=${this.value} />` : nothing}
|
|
2807
2825
|
${this.helperText ? html3`<span class="helper-text">${this.helperText}</span>` : nothing}
|
|
2808
2826
|
</div>
|
|
2809
2827
|
`;
|
|
2810
2828
|
}
|
|
2811
2829
|
};
|
|
2812
2830
|
DateInput.styles = dateInputStyles;
|
|
2831
|
+
DateInput.formAssociated = true;
|
|
2813
2832
|
__decorateClass([
|
|
2814
2833
|
property4({ reflect: true })
|
|
2815
2834
|
], DateInput.prototype, "value", 2);
|
|
@@ -2829,10 +2848,10 @@ __decorateClass([
|
|
|
2829
2848
|
property4({ attribute: "week-start", reflect: true })
|
|
2830
2849
|
], DateInput.prototype, "weekStart", 2);
|
|
2831
2850
|
__decorateClass([
|
|
2832
|
-
property4()
|
|
2851
|
+
property4({ reflect: true })
|
|
2833
2852
|
], DateInput.prototype, "label", 2);
|
|
2834
2853
|
__decorateClass([
|
|
2835
|
-
property4()
|
|
2854
|
+
property4({ reflect: true })
|
|
2836
2855
|
], DateInput.prototype, "placeholder", 2);
|
|
2837
2856
|
__decorateClass([
|
|
2838
2857
|
property4({ attribute: "helper-text" })
|
|
@@ -2850,7 +2869,7 @@ __decorateClass([
|
|
|
2850
2869
|
property4({ type: Boolean, reflect: true })
|
|
2851
2870
|
], DateInput.prototype, "required", 2);
|
|
2852
2871
|
__decorateClass([
|
|
2853
|
-
property4()
|
|
2872
|
+
property4({ reflect: true })
|
|
2854
2873
|
], DateInput.prototype, "name", 2);
|
|
2855
2874
|
__decorateClass([
|
|
2856
2875
|
state2()
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type PropertyValues } from 'lit';
|
|
1
2
|
import { ThemeableElement } from '../../base';
|
|
2
3
|
import type { DatepickerType, DatepickerSize, DatepickerVariant } from './datepicker.types';
|
|
3
4
|
import '../text/text';
|
|
@@ -21,6 +22,9 @@ import '../text/text';
|
|
|
21
22
|
*/
|
|
22
23
|
export declare class Datepicker extends ThemeableElement {
|
|
23
24
|
static styles: import("lit").CSSResult;
|
|
25
|
+
static formAssociated: boolean;
|
|
26
|
+
private _internals;
|
|
27
|
+
constructor();
|
|
24
28
|
/** Native input type. */
|
|
25
29
|
type: DatepickerType;
|
|
26
30
|
/** Current value in the format required by the native input (`YYYY-MM-DD`, `HH:MM`, or `YYYY-MM-DDTHH:MM`). */
|
|
@@ -46,6 +50,10 @@ export declare class Datepicker extends ThemeableElement {
|
|
|
46
50
|
/** Name used in form submission. */
|
|
47
51
|
name: string;
|
|
48
52
|
private input;
|
|
53
|
+
protected updated(changed: PropertyValues): void;
|
|
54
|
+
formResetCallback(): void;
|
|
55
|
+
checkValidity(): boolean;
|
|
56
|
+
reportValidity(): boolean;
|
|
49
57
|
private handleChange;
|
|
50
58
|
private handleInput;
|
|
51
59
|
render(): import("lit").TemplateResult<1>;
|
|
@@ -320,7 +320,7 @@ Text = __decorateClass([
|
|
|
320
320
|
// src/components/datepicker/datepicker.ts
|
|
321
321
|
var Datepicker = class extends ThemeableElement {
|
|
322
322
|
constructor() {
|
|
323
|
-
super(
|
|
323
|
+
super();
|
|
324
324
|
this.type = "date";
|
|
325
325
|
this.value = "";
|
|
326
326
|
this.min = "";
|
|
@@ -333,6 +333,26 @@ var Datepicker = class extends ThemeableElement {
|
|
|
333
333
|
this.required = false;
|
|
334
334
|
this.readonly = false;
|
|
335
335
|
this.name = "";
|
|
336
|
+
this._internals = this.attachInternals();
|
|
337
|
+
}
|
|
338
|
+
updated(changed) {
|
|
339
|
+
if (changed.has("value") || changed.has("required")) {
|
|
340
|
+
this._internals.setFormValue(this.value || null);
|
|
341
|
+
if (this.required && !this.value) {
|
|
342
|
+
this._internals.setValidity({ valueMissing: true }, "Please select a date", this.input);
|
|
343
|
+
} else {
|
|
344
|
+
this._internals.setValidity({});
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
formResetCallback() {
|
|
349
|
+
this.value = "";
|
|
350
|
+
}
|
|
351
|
+
checkValidity() {
|
|
352
|
+
return this._internals.checkValidity();
|
|
353
|
+
}
|
|
354
|
+
reportValidity() {
|
|
355
|
+
return this._internals.reportValidity();
|
|
336
356
|
}
|
|
337
357
|
handleChange() {
|
|
338
358
|
this.value = this.input.value;
|
|
@@ -349,7 +369,6 @@ var Datepicker = class extends ThemeableElement {
|
|
|
349
369
|
.value=${this.value}
|
|
350
370
|
min=${this.min || nothing}
|
|
351
371
|
max=${this.max || nothing}
|
|
352
|
-
name=${this.name || nothing}
|
|
353
372
|
?disabled=${this.disabled}
|
|
354
373
|
?required=${this.required}
|
|
355
374
|
?readonly=${this.readonly}
|
|
@@ -369,20 +388,21 @@ var Datepicker = class extends ThemeableElement {
|
|
|
369
388
|
}
|
|
370
389
|
};
|
|
371
390
|
Datepicker.styles = datepickerStyles;
|
|
391
|
+
Datepicker.formAssociated = true;
|
|
372
392
|
__decorateClass([
|
|
373
393
|
property3({ reflect: true })
|
|
374
394
|
], Datepicker.prototype, "type", 2);
|
|
375
395
|
__decorateClass([
|
|
376
|
-
property3()
|
|
396
|
+
property3({ reflect: true })
|
|
377
397
|
], Datepicker.prototype, "value", 2);
|
|
378
398
|
__decorateClass([
|
|
379
|
-
property3()
|
|
399
|
+
property3({ reflect: true })
|
|
380
400
|
], Datepicker.prototype, "min", 2);
|
|
381
401
|
__decorateClass([
|
|
382
|
-
property3()
|
|
402
|
+
property3({ reflect: true })
|
|
383
403
|
], Datepicker.prototype, "max", 2);
|
|
384
404
|
__decorateClass([
|
|
385
|
-
property3()
|
|
405
|
+
property3({ reflect: true })
|
|
386
406
|
], Datepicker.prototype, "label", 2);
|
|
387
407
|
__decorateClass([
|
|
388
408
|
property3({ attribute: "helper-text" })
|
|
@@ -403,7 +423,7 @@ __decorateClass([
|
|
|
403
423
|
property3({ type: Boolean, reflect: true })
|
|
404
424
|
], Datepicker.prototype, "readonly", 2);
|
|
405
425
|
__decorateClass([
|
|
406
|
-
property3()
|
|
426
|
+
property3({ reflect: true })
|
|
407
427
|
], Datepicker.prototype, "name", 2);
|
|
408
428
|
__decorateClass([
|
|
409
429
|
query("input")
|
|
@@ -23,8 +23,10 @@ import '../text/text';
|
|
|
23
23
|
* @slot header - Custom header content (overrides title prop)
|
|
24
24
|
* @slot footer - Footer content (typically for action buttons)
|
|
25
25
|
*
|
|
26
|
-
* @fires
|
|
27
|
-
* @fires
|
|
26
|
+
* @fires open - Fired when dialog opens
|
|
27
|
+
* @fires close - Fired when dialog closes
|
|
28
|
+
* @fires dialog-open - Fired when dialog opens (deprecated, use `open`)
|
|
29
|
+
* @fires dialog-close - Fired when dialog closes (deprecated, use `close`)
|
|
28
30
|
*
|
|
29
31
|
* @example
|
|
30
32
|
* ```html
|
|
@@ -807,22 +807,15 @@ var Dialog = class extends ThemeableElement {
|
|
|
807
807
|
this.updateComplete.then(() => {
|
|
808
808
|
this.dialogElement?.focus();
|
|
809
809
|
});
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
composed: true
|
|
814
|
-
})
|
|
815
|
-
);
|
|
810
|
+
const openEvent = new CustomEvent("open", { bubbles: true, composed: true });
|
|
811
|
+
this.dispatchEvent(openEvent);
|
|
812
|
+
this.dispatchEvent(new CustomEvent("dialog-open", { bubbles: true, composed: true }));
|
|
816
813
|
}
|
|
817
814
|
handleClose() {
|
|
818
815
|
document.body.style.overflow = "";
|
|
819
816
|
this.restoreFocus();
|
|
820
|
-
this.dispatchEvent(
|
|
821
|
-
|
|
822
|
-
bubbles: true,
|
|
823
|
-
composed: true
|
|
824
|
-
})
|
|
825
|
-
);
|
|
817
|
+
this.dispatchEvent(new CustomEvent("close", { bubbles: true, composed: true }));
|
|
818
|
+
this.dispatchEvent(new CustomEvent("dialog-close", { bubbles: true, composed: true }));
|
|
826
819
|
}
|
|
827
820
|
restoreFocus() {
|
|
828
821
|
if (this.previouslyFocusedElement) {
|
|
@@ -139,7 +139,7 @@ __decorateClass([
|
|
|
139
139
|
property2({ reflect: true })
|
|
140
140
|
], Divider.prototype, "appearance", 2);
|
|
141
141
|
__decorateClass([
|
|
142
|
-
property2()
|
|
142
|
+
property2({ reflect: true })
|
|
143
143
|
], Divider.prototype, "label", 2);
|
|
144
144
|
Divider = __decorateClass([
|
|
145
145
|
customElement("lt-divider")
|
|
@@ -279,7 +279,7 @@ __decorateClass([
|
|
|
279
279
|
property2()
|
|
280
280
|
], NavItem.prototype, "href", 2);
|
|
281
281
|
__decorateClass([
|
|
282
|
-
property2()
|
|
282
|
+
property2({ reflect: true })
|
|
283
283
|
], NavItem.prototype, "label", 2);
|
|
284
284
|
__decorateClass([
|
|
285
285
|
property2({ attribute: "icon-start" })
|
|
@@ -331,7 +331,7 @@ var Nav = class extends ThemeableElement {
|
|
|
331
331
|
};
|
|
332
332
|
Nav.styles = navStyles;
|
|
333
333
|
__decorateClass([
|
|
334
|
-
property3()
|
|
334
|
+
property3({ reflect: true })
|
|
335
335
|
], Nav.prototype, "label", 2);
|
|
336
336
|
__decorateClass([
|
|
337
337
|
property3({ reflect: true })
|
|
@@ -145,7 +145,7 @@ var Progress = class extends ThemeableElement {
|
|
|
145
145
|
};
|
|
146
146
|
Progress.styles = progressStyles;
|
|
147
147
|
__decorateClass([
|
|
148
|
-
property2({ type: Number })
|
|
148
|
+
property2({ type: Number, reflect: true })
|
|
149
149
|
], Progress.prototype, "value", 2);
|
|
150
150
|
__decorateClass([
|
|
151
151
|
property2({ reflect: true })
|
|
@@ -154,7 +154,7 @@ __decorateClass([
|
|
|
154
154
|
property2({ reflect: true })
|
|
155
155
|
], Progress.prototype, "size", 2);
|
|
156
156
|
__decorateClass([
|
|
157
|
-
property2()
|
|
157
|
+
property2({ reflect: true })
|
|
158
158
|
], Progress.prototype, "label", 2);
|
|
159
159
|
__decorateClass([
|
|
160
160
|
property2({ type: Boolean, reflect: true })
|