@latty-ds/web 0.3.0 → 0.5.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.
Files changed (36) hide show
  1. package/custom-elements.json +2932 -2558
  2. package/dist/components/accordion/index.js +1 -1
  3. package/dist/components/avatar/index.js +1 -1
  4. package/dist/components/checkbox/checkbox.d.ts +7 -5
  5. package/dist/components/checkbox/index.js +22 -9
  6. package/dist/components/color-input/color-input.d.ts +17 -0
  7. package/dist/components/color-input/index.js +32 -4
  8. package/dist/components/combobox/combobox.d.ts +8 -1
  9. package/dist/components/combobox/index.js +26 -7
  10. package/dist/components/date-input/date-input.d.ts +7 -0
  11. package/dist/components/date-input/index.js +24 -5
  12. package/dist/components/datepicker/datepicker.d.ts +8 -0
  13. package/dist/components/datepicker/index.js +27 -7
  14. package/dist/components/dialog/dialog.d.ts +4 -2
  15. package/dist/components/dialog/index.js +5 -12
  16. package/dist/components/divider/index.js +1 -1
  17. package/dist/components/nav/index.js +2 -2
  18. package/dist/components/progress/index.js +2 -2
  19. package/dist/components/radio/index.js +24 -4
  20. package/dist/components/radio/radio.d.ts +7 -0
  21. package/dist/components/radio-group/index.js +3 -3
  22. package/dist/components/select/index.js +28 -9
  23. package/dist/components/select/select.d.ts +11 -3
  24. package/dist/components/sidepanel/index.js +1 -1
  25. package/dist/components/slider/index.js +17 -4
  26. package/dist/components/slider/slider.d.ts +6 -0
  27. package/dist/components/switch/index.js +24 -4
  28. package/dist/components/switch/switch.d.ts +7 -0
  29. package/dist/components/tab/index.js +2 -2
  30. package/dist/components/tab-group/index.js +3 -3
  31. package/dist/components/textfield/index.js +26 -4
  32. package/dist/components/textfield/textfield.d.ts +11 -0
  33. package/dist/index.cjs +269 -83
  34. package/dist/index.js +269 -83
  35. package/dist/manifest.json +24 -0
  36. 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" })
@@ -197,7 +197,7 @@ __decorateClass([
197
197
  property2()
198
198
  ], Avatar.prototype, "src", 2);
199
199
  __decorateClass([
200
- property2()
200
+ property2({ reflect: true })
201
201
  ], Avatar.prototype, "name", 2);
202
202
  __decorateClass([
203
203
  property2()
@@ -6,7 +6,7 @@ import '@latty-ds/icons';
6
6
  *
7
7
  * @element lt-checkbox
8
8
  *
9
- * @fires {CustomEvent<{checked: boolean, indeterminate: boolean}>} change - Dispatched when the checked state changes
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(...arguments);
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, indeterminate: this.indeterminate },
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(...arguments);
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, label: string}>} change - Fired when the selected value changes.
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(...arguments);
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, label: opt.label });
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(...arguments);
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(...arguments);
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 dialog-open - Fired when dialog opens
27
- * @fires dialog-close - Fired when dialog closes
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
- this.dispatchEvent(
811
- new CustomEvent("dialog-open", {
812
- bubbles: true,
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
- new CustomEvent("dialog-close", {
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 })