@swiftwc/ui 0.0.0-dev.93 → 0.0.0-dev.94

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 (54) hide show
  1. package/generated/components/body-view.d.ts +5 -0
  2. package/generated/components/color-scheme.d.ts +5 -0
  3. package/generated/components/content-unavailable.d.ts +5 -0
  4. package/generated/components/date-picker.d.ts +9 -4
  5. package/generated/components/date-picker.js +17 -9
  6. package/generated/components/fine-tooltip.d.ts +5 -0
  7. package/generated/components/form-view.d.ts +5 -0
  8. package/generated/components/h-stack.d.ts +5 -0
  9. package/generated/components/image-view.d.ts +5 -0
  10. package/generated/components/label-view.d.ts +6 -3
  11. package/generated/components/label-view.js +15 -4
  12. package/generated/components/labeled-content.d.ts +5 -0
  13. package/generated/components/labeled-content.js +11 -1
  14. package/generated/components/list-view.d.ts +5 -0
  15. package/generated/components/menu-view.d.ts +5 -0
  16. package/generated/components/navigation-large-title.d.ts +5 -0
  17. package/generated/components/navigation-split-view.d.ts +5 -0
  18. package/generated/components/navigation-stack.d.ts +5 -0
  19. package/generated/components/navigation-title.d.ts +5 -0
  20. package/generated/components/picker-view.d.ts +9 -4
  21. package/generated/components/picker-view.js +11 -9
  22. package/generated/components/progress-view.d.ts +5 -0
  23. package/generated/components/scroll-view-proxy.d.ts +5 -0
  24. package/generated/components/scroll-view.d.ts +5 -0
  25. package/generated/components/search-view.d.ts +5 -0
  26. package/generated/components/section-view.d.ts +5 -0
  27. package/generated/components/sidebar-toggle.d.ts +6 -1
  28. package/generated/components/sidebar-toggle.js +6 -6
  29. package/generated/components/sticky-container.d.ts +6 -1
  30. package/generated/components/sticky-container.js +5 -5
  31. package/generated/components/tab-view.d.ts +7 -2
  32. package/generated/components/table-view.d.ts +5 -0
  33. package/generated/components/text-field.d.ts +9 -4
  34. package/generated/components/text-field.js +37 -15
  35. package/generated/components/toggle-view.d.ts +11 -4
  36. package/generated/components/toggle-view.js +13 -11
  37. package/generated/components/tool-bar-item-group.d.ts +5 -0
  38. package/generated/components/tool-bar-item.d.ts +5 -0
  39. package/generated/components/tool-bar.d.ts +5 -0
  40. package/generated/components/v-keyboard.d.ts +5 -0
  41. package/generated/components/v-stack.d.ts +5 -0
  42. package/generated/events/alert-dialog.d.ts +3 -1
  43. package/generated/events/confirmation-dialog.d.ts +3 -1
  44. package/generated/events/date-picker.d.ts +3 -1
  45. package/generated/events/lifecycle-observer.d.ts +6 -2
  46. package/generated/events/picker-view.d.ts +12 -4
  47. package/generated/events/scroll-view.d.ts +6 -2
  48. package/generated/events/tab-view.d.ts +24 -8
  49. package/generated/events/text-field.d.ts +3 -1
  50. package/generated/events/toggle-view.d.ts +3 -1
  51. package/generated/internal/class/form-associated-base.js +1 -1
  52. package/generated/internal/utils/kebab-case.js +6 -9
  53. package/package.json +1 -1
  54. package/web-components.html-data/en.json +65 -13
@@ -6,3 +6,8 @@ export declare class BodyView extends HTMLElement {
6
6
  disconnectedCallback(): void;
7
7
  connectedCallback(): void;
8
8
  }
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ 'body-view': BodyView;
12
+ }
13
+ }
@@ -5,3 +5,8 @@ export declare class ColorScheme extends HTMLElement {
5
5
  disconnectedCallback(): void;
6
6
  attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
7
7
  }
8
+ declare global {
9
+ interface HTMLElementTagNameMap {
10
+ 'color-scheme': ColorScheme;
11
+ }
12
+ }
@@ -23,3 +23,8 @@ export declare class ContentUnavailable extends HTMLElement {
23
23
  disconnectedCallback(): void;
24
24
  connectedCallback(): void;
25
25
  }
26
+ declare global {
27
+ interface HTMLElementTagNameMap {
28
+ 'content-unavailable': ContentUnavailable;
29
+ }
30
+ }
@@ -15,7 +15,6 @@ export declare class DatePicker extends FormAssociatedBase {
15
15
  get datePickerStyle(): DatePickerStyle;
16
16
  /**
17
17
  * Form participation property
18
- * @type {string}
19
18
  */
20
19
  get name(): string;
21
20
  get value(): {
@@ -40,8 +39,14 @@ export declare class DatePicker extends FormAssociatedBase {
40
39
  } | null;
41
40
  setValidity: (flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement) => void;
42
41
  setCustomValidity: (message: string) => void;
43
- formAssociatedCallback: (form: HTMLFormElement) => void;
44
- formDisabledCallback: (disabled: boolean) => void;
45
- formResetCallback: () => void;
42
+ formStateRestoreCallback(state: string, reason: string): void;
43
+ formAssociatedCallback(form: HTMLFormElement): void;
44
+ formDisabledCallback(disabled: boolean): void;
45
+ formResetCallback(): void;
46
+ }
47
+ declare global {
48
+ interface HTMLElementTagNameMap {
49
+ 'date-picker': DatePicker;
50
+ }
46
51
  }
47
52
  export {};
@@ -17,11 +17,17 @@ export class DatePicker extends FormAssociatedBase {
17
17
  * @type {"graphical"|"field"|"automatic"}
18
18
  */
19
19
  'date-picker-style',
20
+ /**
21
+ * @type {required}
22
+ */
20
23
  'required',
21
24
  'prompt',
22
25
  'label',
23
26
  'name',
24
27
  'selection',
28
+ /**
29
+ * @type {disabled}
30
+ */
25
31
  'disabled',
26
32
  'minimum',
27
33
  'maximum',
@@ -335,7 +341,6 @@ export class DatePicker extends FormAssociatedBase {
335
341
  };
336
342
  /**
337
343
  * Form participation property
338
- * @type {string}
339
344
  */
340
345
  get name() {
341
346
  return this.getAttribute('name') ?? this.getAttribute('label') ?? this.querySelector(':scope>[slot=label]')?.textContent ?? '';
@@ -453,20 +458,23 @@ export class DatePicker extends FormAssociatedBase {
453
458
  else
454
459
  this.#sendValueToForm(false);
455
460
  };
456
- formAssociatedCallback = (form) => {
457
- this.#sendValueToForm();
458
- };
459
- formDisabledCallback = (disabled) => {
461
+ formStateRestoreCallback(state, reason) {
462
+ //
463
+ }
464
+ formAssociatedCallback(form) {
465
+ this.#sendValueToForm(false);
466
+ }
467
+ formDisabledCallback(disabled) {
460
468
  for (const input of this.#inputs)
461
469
  input.toggleAttribute('disabled', !disabled);
462
- };
463
- formResetCallback = () => {
470
+ }
471
+ formResetCallback() {
464
472
  this.#selectedDate = {
465
473
  year: '',
466
474
  month: '',
467
475
  day: '',
468
476
  };
469
- this.#sendValueToForm();
470
- };
477
+ this.#sendValueToForm(false);
478
+ }
471
479
  }
472
480
  _a = DatePicker;
@@ -5,3 +5,8 @@ export declare class FineTooltip extends HTMLElement {
5
5
  disconnectedCallback(): void;
6
6
  hidePopover(): void;
7
7
  }
8
+ declare global {
9
+ interface HTMLElementTagNameMap {
10
+ 'fine-tooltip': FineTooltip;
11
+ }
12
+ }
@@ -7,3 +7,8 @@ export declare class FormView extends FormBase {
7
7
  static polyfillDisconnectedCallback(el: HTMLFormElement): void;
8
8
  static polyfillConnectedCallback(el: HTMLFormElement): void;
9
9
  }
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ 'form-view': FormView;
13
+ }
14
+ }
@@ -15,3 +15,8 @@ export declare class HStack extends HTMLElement {
15
15
  connectedCallback(): void;
16
16
  disconnectedCallback(): void;
17
17
  }
18
+ declare global {
19
+ interface HTMLElementTagNameMap {
20
+ 'h-stack': HStack;
21
+ }
22
+ }
@@ -7,3 +7,8 @@ export declare class ImageView extends HTMLElement {
7
7
  disconnectedCallback(): void;
8
8
  connectedCallback(): void;
9
9
  }
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ 'image-view': ImageView;
13
+ }
14
+ }
@@ -1,12 +1,15 @@
1
1
  /**
2
2
  * @summary A view that labels items with an icon and a title.
3
3
  *
4
- * @example <label-view system-image="hand-tap"><span>Hello</span></label-view> — Creating a label with an icon image and a title
4
+ * @example <label-view><span>Hello world!</span></label-view> — Creating a label using a `span` element
5
+ * @example <label-view title="Hello world!"></label-view> — Creating a label using the `title` attribute
6
+ * @example <label-view system-image="hand-waving"><span>Hello world!</span></label-view> — Creating a label with an icon and a title using the `system-image` attribute
7
+ * @example <label-view><i slot="icon" class="ph ph-duotone ph-hand-waving"></i><span>Hello world!</span></label-view> — Creating a label with an icon and a title using the `icon` slot
5
8
  *
6
9
  * @attr {@fontSet} font — Sets the default font for text in this view.
7
10
  *
8
- * @slot — Place children without a `slot` attribute inside the main block of the label.
9
- * @slot icon — Place children with a `slot="icon"` attribute in the icon block of the label.
11
+ * @slot — Any children without a `slot` attribute are placed in the title block of the label.
12
+ * @slot icon — Use the `slot="icon"` attribute to place childen in the icon block of the label.
10
13
  *
11
14
  */
12
15
  export declare class LabelView extends HTMLElement {
@@ -3,17 +3,28 @@ import { html, queryMorph } from '../morphdom';
3
3
  /**
4
4
  * @summary A view that labels items with an icon and a title.
5
5
  *
6
- * @example <label-view system-image="hand-tap"><span>Hello</span></label-view> — Creating a label with an icon image and a title
6
+ * @example <label-view><span>Hello world!</span></label-view> — Creating a label using a `span` element
7
+ * @example <label-view title="Hello world!"></label-view> — Creating a label using the `title` attribute
8
+ * @example <label-view system-image="hand-waving"><span>Hello world!</span></label-view> — Creating a label with an icon and a title using the `system-image` attribute
9
+ * @example <label-view><i slot="icon" class="ph ph-duotone ph-hand-waving"></i><span>Hello world!</span></label-view> — Creating a label with an icon and a title using the `icon` slot
7
10
  *
8
11
  * @attr {@fontSet} font — Sets the default font for text in this view.
9
12
  *
10
- * @slot — Place children without a `slot` attribute inside the main block of the label.
11
- * @slot icon — Place children with a `slot="icon"` attribute in the icon block of the label.
13
+ * @slot — Any children without a `slot` attribute are placed in the title block of the label.
14
+ * @slot icon — Use the `slot="icon"` attribute to place childen in the icon block of the label.
12
15
  *
13
16
  */
14
17
  export class LabelView extends HTMLElement {
15
18
  static get observedAttributes() {
16
- return ['system-image', 'title', 'line-limit', 'truncation-mode'];
19
+ return [
20
+ 'system-image',
21
+ 'title',
22
+ 'line-limit',
23
+ /**
24
+ * @type {tail}
25
+ */
26
+ 'truncation-mode',
27
+ ];
17
28
  }
18
29
  static #template;
19
30
  static get template() {
@@ -7,3 +7,8 @@ export declare class LabeledContent extends HTMLElement {
7
7
  disconnectedCallback(): void;
8
8
  connectedCallback(): void;
9
9
  }
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ 'labeled-content': LabeledContent;
13
+ }
14
+ }
@@ -2,7 +2,17 @@ import { $, devFlags } from '../internal/utils';
2
2
  import { html, queryMorph } from '../morphdom';
3
3
  export class LabeledContent extends HTMLElement {
4
4
  static get observedAttributes() {
5
- return ['value', 'label', 'header', 'footer', 'labeled-content-style', 'format'];
5
+ return [
6
+ 'value',
7
+ 'label',
8
+ 'header',
9
+ 'footer',
10
+ /**
11
+ * @type {vertical|horizontal}
12
+ */
13
+ 'labeled-content-style',
14
+ 'format',
15
+ ];
6
16
  }
7
17
  static #template;
8
18
  static get template() {
@@ -6,3 +6,8 @@ export declare class ListView extends HTMLElement {
6
6
  disconnectedCallback(): void;
7
7
  connectedCallback(): void;
8
8
  }
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ 'list-view': ListView;
12
+ }
13
+ }
@@ -13,3 +13,8 @@ export declare class MenuView extends HTMLElement {
13
13
  disconnectedCallback(): void;
14
14
  connectedCallback(): void;
15
15
  }
16
+ declare global {
17
+ interface HTMLElementTagNameMap {
18
+ 'menu-view': MenuView;
19
+ }
20
+ }
@@ -4,3 +4,8 @@ export declare class NavigationLargeTitle extends HTMLElement {
4
4
  disconnectedCallback(): void;
5
5
  connectedCallback(): void;
6
6
  }
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ 'navigation-large-title': NavigationLargeTitle;
10
+ }
11
+ }
@@ -8,3 +8,8 @@ export declare class NavigationSplitView extends NavigationView {
8
8
  disconnectedCallback(): void;
9
9
  connectedCallback(): void;
10
10
  }
11
+ declare global {
12
+ interface HTMLElementTagNameMap {
13
+ 'navigation-split-view': NavigationSplitView;
14
+ }
15
+ }
@@ -8,3 +8,8 @@ export declare class NavigationStack extends NavigationView {
8
8
  disconnectedCallback(): void;
9
9
  connectedCallback(): void;
10
10
  }
11
+ declare global {
12
+ interface HTMLElementTagNameMap {
13
+ 'navigation-stack': NavigationStack;
14
+ }
15
+ }
@@ -6,3 +6,8 @@ export declare class NavigationTitle extends HTMLElement {
6
6
  disconnectedCallback(): void;
7
7
  connectedCallback(): void;
8
8
  }
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ 'navigation-title': NavigationTitle;
12
+ }
13
+ }
@@ -51,13 +51,18 @@ export declare class PickerView extends FormAssociatedBase {
51
51
  get pickerStyle(): PickerStyle;
52
52
  /**
53
53
  * Form participation property
54
- * @type {string}
55
54
  */
56
55
  get name(): string;
57
56
  setValidity: (flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement) => void;
58
57
  setCustomValidity: (message: string) => void;
59
- formAssociatedCallback: (form: HTMLFormElement) => void;
60
- formDisabledCallback: (disabled: boolean) => void;
61
- formResetCallback: () => void;
58
+ formStateRestoreCallback(state: string, reason: string): void;
59
+ formAssociatedCallback(form: HTMLFormElement): void;
60
+ formDisabledCallback(disabled: boolean): void;
61
+ formResetCallback(): void;
62
+ }
63
+ declare global {
64
+ interface HTMLElementTagNameMap {
65
+ 'picker-view': PickerView;
66
+ }
62
67
  }
63
68
  export {};
@@ -1088,7 +1088,6 @@ export class PickerView extends FormAssociatedBase {
1088
1088
  }
1089
1089
  /**
1090
1090
  * Form participation property
1091
- * @type {string}
1092
1091
  */
1093
1092
  get name() {
1094
1093
  return this.getAttribute('name') ?? this.getAttribute('label') ?? this.querySelector(':scope>[slot=label]')?.textContent ?? '';
@@ -1133,18 +1132,21 @@ export class PickerView extends FormAssociatedBase {
1133
1132
  else
1134
1133
  this.#sendValueToForm(false);
1135
1134
  };
1136
- formAssociatedCallback = (form) => {
1137
- this.#sendValueToForm();
1138
- };
1139
- formDisabledCallback = (disabled) => {
1135
+ formStateRestoreCallback(state, reason) {
1136
+ //
1137
+ }
1138
+ formAssociatedCallback(form) {
1139
+ this.#sendValueToForm(false);
1140
+ }
1141
+ formDisabledCallback(disabled) {
1140
1142
  for (const btn of this.#shadowRoot.querySelectorAll('button'))
1141
1143
  btn.toggleAttribute('disabled', !disabled);
1142
- };
1143
- formResetCallback = () => {
1144
+ }
1145
+ formResetCallback() {
1144
1146
  this.#selection = '';
1145
1147
  this.#reflectSelectionOnButtons();
1146
1148
  this.#reflectSelectionOnCurrentValueLabel();
1147
- this.#sendValueToForm();
1148
- };
1149
+ this.#sendValueToForm(false);
1150
+ }
1149
1151
  }
1150
1152
  _a = PickerView;
@@ -14,3 +14,8 @@ export declare class ProgressView extends HTMLElement {
14
14
  disconnectedCallback(): void;
15
15
  connectedCallback(): void;
16
16
  }
17
+ declare global {
18
+ interface HTMLElementTagNameMap {
19
+ 'progress-view': ProgressView;
20
+ }
21
+ }
@@ -6,3 +6,8 @@ export declare class ScrollViewProxy extends HTMLElement {
6
6
  disconnectedCallback(): void;
7
7
  connectedCallback(): void;
8
8
  }
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ 'scroll-view-proxy': ScrollViewProxy;
12
+ }
13
+ }
@@ -13,3 +13,8 @@ export declare class ScrollView extends HTMLElement {
13
13
  connectedCallback(): void;
14
14
  centerScrollToElement(child: Element): void;
15
15
  }
16
+ declare global {
17
+ interface HTMLElementTagNameMap {
18
+ 'scroll-view': ScrollView;
19
+ }
20
+ }
@@ -5,3 +5,8 @@ export declare class SearchView extends InputBase {
5
5
  static polyfillConnectedCallback(el: InputBase): void;
6
6
  static polyfillAttributeChangedCallback([{ attributeName, target, oldValue }]: Pick<MutationRecord, 'attributeName' | 'oldValue' | 'target'>[]): void;
7
7
  }
8
+ declare global {
9
+ interface HTMLElementTagNameMap {
10
+ 'search-view': SearchView;
11
+ }
12
+ }
@@ -14,3 +14,8 @@ export declare class SectionView extends HTMLElement {
14
14
  disconnectedCallback(): void;
15
15
  connectedCallback(): void;
16
16
  }
17
+ declare global {
18
+ interface HTMLElementTagNameMap {
19
+ 'section-view': SectionView;
20
+ }
21
+ }
@@ -1,7 +1,12 @@
1
1
  export declare class SidebarToggle extends HTMLElement {
2
2
  #private;
3
3
  constructor();
4
- connectedCallback(): void;
5
4
  disconnectedCallback(): void;
5
+ connectedCallback(): void;
6
6
  private static query;
7
7
  }
8
+ declare global {
9
+ interface HTMLElementTagNameMap {
10
+ 'sidebar-toggle': SidebarToggle;
11
+ }
12
+ }
@@ -7,6 +7,12 @@ export class SidebarToggle extends HTMLElement {
7
7
  constructor() {
8
8
  super();
9
9
  }
10
+ disconnectedCallback() {
11
+ if (devFlags.debug)
12
+ console.debug(`${_a.name} ⚡️ disconnect`);
13
+ observers.unobserve(this);
14
+ CleanupRegistry.unregister(this);
15
+ }
10
16
  connectedCallback() {
11
17
  if (devFlags.debug)
12
18
  console.debug(`${_a.name} ⚡️ connect`);
@@ -18,12 +24,6 @@ export class SidebarToggle extends HTMLElement {
18
24
  // @ts-expect-error
19
25
  _a.#handleMeasure([entry]);
20
26
  }
21
- disconnectedCallback() {
22
- if (devFlags.debug)
23
- console.debug(`${_a.name} ⚡️ disconnect`);
24
- observers.unobserve(this);
25
- CleanupRegistry.unregister(this);
26
- }
27
27
  static query(target) {
28
28
  const container = target?.closest('navigation-split-view,tab-view'), sideBar = container?.querySelector(':scope>[is=sidebar-view]');
29
29
  return { container, sideBar };
@@ -1,6 +1,11 @@
1
1
  export declare class StickyContainer extends HTMLElement {
2
2
  #private;
3
3
  constructor();
4
- connectedCallback(): void;
5
4
  disconnectedCallback(): void;
5
+ connectedCallback(): void;
6
+ }
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ 'sticky-container': StickyContainer;
10
+ }
6
11
  }
@@ -4,17 +4,17 @@ export class StickyContainer extends HTMLElement {
4
4
  constructor() {
5
5
  super();
6
6
  }
7
+ disconnectedCallback() {
8
+ if (devFlags.debug)
9
+ console.debug(`${StickyContainer.name} ⚡️ disconnect`);
10
+ CleanupRegistry.unregister(this);
11
+ }
7
12
  connectedCallback() {
8
13
  if (devFlags.debug)
9
14
  console.debug(`${StickyContainer.name} ⚡️ connect`);
10
15
  // CleanupRegistry.register(this, onoff('transitionend transitionstart transitioncancel', this.#handleTransitionrun as unknown as EventListener, this).on())
11
16
  CleanupRegistry.register(this, onoff('transitionrun', this.#handleTransitionrun, this).on());
12
17
  }
13
- disconnectedCallback() {
14
- if (devFlags.debug)
15
- console.debug(`${StickyContainer.name} ⚡️ disconnect`);
16
- CleanupRegistry.unregister(this);
17
- }
18
18
  #handleTransitionrun = ({ target, propertyName, pseudoElement }) => {
19
19
  if (!(target instanceof HTMLElement))
20
20
  return;
@@ -19,7 +19,12 @@ export declare class TabView extends HTMLElement {
19
19
  get tabBarPlacement(): "bottom-bar" | "ornament" | "sidebar" | "top-bar" | undefined;
20
20
  get moreTab(): NavigationStack | null;
21
21
  connectedCallback(): void;
22
- get selectedTab(): (NavigationStack | NavigationSplitView)[];
23
- set selectedTab(tabs: (NavigationStack | NavigationSplitView)[]);
22
+ get selectedTab(): (NavigationSplitView | NavigationStack)[];
23
+ set selectedTab(tabs: (NavigationSplitView | NavigationStack)[]);
24
+ }
25
+ declare global {
26
+ interface HTMLElementTagNameMap {
27
+ 'tab-view': TabView;
28
+ }
24
29
  }
25
30
  export {};
@@ -19,3 +19,8 @@ export declare class TableView extends HTMLElement {
19
19
  disconnectedCallback(): void;
20
20
  connectedCallback(): void;
21
21
  }
22
+ declare global {
23
+ interface HTMLElementTagNameMap {
24
+ 'table-view': TableView;
25
+ }
26
+ }
@@ -20,7 +20,6 @@ export declare class TextField extends FormAssociatedBase {
20
20
  set text(v: string);
21
21
  /**
22
22
  * Form participation property
23
- * @type {string}
24
23
  */
25
24
  get name(): string;
26
25
  get value(): string;
@@ -28,8 +27,14 @@ export declare class TextField extends FormAssociatedBase {
28
27
  get negativeNumbersAllowed(): boolean;
29
28
  setValidity: (flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement) => void;
30
29
  setCustomValidity: (message: string) => void;
31
- formAssociatedCallback: (form: HTMLFormElement) => void;
32
- formDisabledCallback: (disabled: boolean) => void;
33
- formResetCallback: () => void;
30
+ formStateRestoreCallback(state: string, reason: string): void;
31
+ formAssociatedCallback(form: HTMLFormElement): void;
32
+ formDisabledCallback(disabled: boolean): void;
33
+ formResetCallback(): void;
34
+ }
35
+ declare global {
36
+ interface HTMLElementTagNameMap {
37
+ 'text-field': TextField;
38
+ }
34
39
  }
35
40
  export {};
@@ -14,7 +14,33 @@ const keyboardTypes = ['decimal-pad', 'number-pad', 'default'];
14
14
  */
15
15
  export class TextField extends FormAssociatedBase {
16
16
  static get observedAttributes() {
17
- return ['prompt', 'minimum', 'maximum', 'min-length', 'max-length', 'label', 'name', 'text', 'text-input-autocapitalization', 'disable-autocorrection', 'keyboard-type', 'required', 'disabled'];
17
+ return [
18
+ 'prompt',
19
+ 'minimum',
20
+ 'maximum',
21
+ 'min-length',
22
+ 'max-length',
23
+ 'label',
24
+ 'name',
25
+ 'text',
26
+ 'text-input-autocapitalization',
27
+ /**
28
+ * @type {""}
29
+ */
30
+ 'disable-autocorrection',
31
+ /**
32
+ * @type {decimal-pad|number-pad|default}
33
+ */
34
+ 'keyboard-type',
35
+ /**
36
+ * @type {required}
37
+ */
38
+ 'required',
39
+ /**
40
+ * @type {disabled}
41
+ */
42
+ 'disabled',
43
+ ];
18
44
  }
19
45
  static #template;
20
46
  static get template() {
@@ -396,7 +422,6 @@ export class TextField extends FormAssociatedBase {
396
422
  };
397
423
  /**
398
424
  * Form participation property
399
- * @type {string}
400
425
  */
401
426
  get name() {
402
427
  return this.getAttribute('name') ?? this.getAttribute('label') ?? this.querySelector(':scope>[slot=label]')?.textContent ?? '';
@@ -438,14 +463,8 @@ export class TextField extends FormAssociatedBase {
438
463
  }
439
464
  }
440
465
  get negativeNumbersAllowed() {
441
- // switch (this.keyboardType) {
442
- // case 'decimal-pad':
443
- // case 'number-pad':
444
466
  const min = this.getAttribute('minimum') ?? '-Infinity', max = this.getAttribute('maximum') ?? 'Infinity';
445
467
  return compareBigDecimals('0', min) >= 0 && compareBigDecimals('0', max) <= 0;
446
- // default:
447
- // return false
448
- // }
449
468
  }
450
469
  setValidity = (flags, message, anchor) => {
451
470
  // let msg
@@ -487,16 +506,19 @@ export class TextField extends FormAssociatedBase {
487
506
  else
488
507
  this.#sendValueToForm(false);
489
508
  };
490
- formAssociatedCallback = (form) => {
491
- this.#sendValueToForm();
492
- };
493
- formDisabledCallback = (disabled) => {
509
+ formStateRestoreCallback(state, reason) {
510
+ this.text = state;
511
+ }
512
+ formAssociatedCallback(form) {
513
+ this.#sendValueToForm(false);
514
+ }
515
+ formDisabledCallback(disabled) {
494
516
  for (const el of this.#shadowRoot.querySelectorAll('input'))
495
517
  el.toggleAttribute('disabled', !disabled);
496
- };
497
- formResetCallback = () => {
518
+ }
519
+ formResetCallback() {
498
520
  this.text = '';
499
521
  this.#sendValueToForm(false);
500
- };
522
+ }
501
523
  }
502
524
  _a = TextField;
@@ -4,6 +4,8 @@ export type ToggleStyle = (typeof toggleStyles)[number];
4
4
  /**
5
5
  * @summary A control that switches between on and off states.
6
6
  *
7
+ * @fires toggle:change — User toggled the control
8
+ *
7
9
  * @slot label
8
10
  * @slot validity-options
9
11
  */
@@ -20,15 +22,20 @@ export declare class ToggleView extends FormAssociatedBase {
20
22
  set isOn(v: boolean);
21
23
  /**
22
24
  * Form participation property
23
- * @type {string}
24
25
  */
25
26
  get name(): string;
26
27
  get value(): string | null;
27
28
  set value(v: string | null);
28
29
  setValidity: (flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement) => void;
29
30
  setCustomValidity: (message: string) => void;
30
- formAssociatedCallback: (form: HTMLFormElement) => void;
31
- formDisabledCallback: (disabled: boolean) => void;
32
- formResetCallback: () => void;
31
+ formStateRestoreCallback(state: string, reason: string): void;
32
+ formAssociatedCallback(form: HTMLFormElement): void;
33
+ formDisabledCallback(disabled: boolean): void;
34
+ formResetCallback(): void;
35
+ }
36
+ declare global {
37
+ interface HTMLElementTagNameMap {
38
+ 'toggle-view': ToggleView;
39
+ }
33
40
  }
34
41
  export {};
@@ -8,12 +8,12 @@ const toggleStyles = ['switch', 'button'];
8
8
  /**
9
9
  * @summary A control that switches between on and off states.
10
10
  *
11
+ * @fires toggle:change — User toggled the control
12
+ *
11
13
  * @slot label
12
14
  * @slot validity-options
13
15
  */
14
16
  export class ToggleView extends FormAssociatedBase {
15
- // declare addEventListener: TypedEventTargetMethods<ToggleViewEventMap>['addEventListener']
16
- // declare removeEventListener: TypedEventTargetMethods<ToggleViewEventMap>['removeEventListener']
17
17
  static get observedAttributes() {
18
18
  return ['label', 'name', 'value', 'is-on', 'keyboard-type', 'required', 'disabled'];
19
19
  }
@@ -164,7 +164,6 @@ export class ToggleView extends FormAssociatedBase {
164
164
  };
165
165
  /**
166
166
  * Form participation property
167
- * @type {string}
168
167
  */
169
168
  get name() {
170
169
  return this.getAttribute('name') ?? this.getAttribute('label') ?? this.querySelector(':scope>[slot=label]')?.textContent ?? '';
@@ -215,16 +214,19 @@ export class ToggleView extends FormAssociatedBase {
215
214
  else
216
215
  this.#sendValueToForm(false);
217
216
  };
218
- formAssociatedCallback = (form) => {
219
- this.#sendValueToForm();
220
- };
221
- formDisabledCallback = (disabled) => {
217
+ formStateRestoreCallback(state, reason) {
218
+ this.value = state;
219
+ }
220
+ formAssociatedCallback(form) {
221
+ this.#sendValueToForm(false);
222
+ }
223
+ formDisabledCallback(disabled) {
222
224
  for (const el of this.#shadowRoot.querySelectorAll('input'))
223
225
  el.toggleAttribute('disabled', !disabled);
224
- };
225
- formResetCallback = () => {
226
+ }
227
+ formResetCallback() {
226
228
  this.value = '';
227
- this.#sendValueToForm();
228
- };
229
+ this.#sendValueToForm(false);
230
+ }
229
231
  }
230
232
  _a = ToggleView;
@@ -6,3 +6,8 @@ export declare class ToolBarItemGroup extends HTMLElement {
6
6
  connectedCallback(): void;
7
7
  disconnectedCallback(): void;
8
8
  }
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ 'tool-bar-item-group': ToolBarItemGroup;
12
+ }
13
+ }
@@ -9,3 +9,8 @@ export declare class ToolBarItem extends HTMLElement {
9
9
  disconnectedCallback(): void;
10
10
  connectedCallback(): void;
11
11
  }
12
+ declare global {
13
+ interface HTMLElementTagNameMap {
14
+ 'tool-bar-item': ToolBarItem;
15
+ }
16
+ }
@@ -19,3 +19,8 @@ export declare class ToolBar extends HTMLElement {
19
19
  connectedCallback(): void;
20
20
  disconnectedCallback(): void;
21
21
  }
22
+ declare global {
23
+ interface HTMLElementTagNameMap {
24
+ 'tool-bar': ToolBar;
25
+ }
26
+ }
@@ -13,3 +13,8 @@ export declare class VKeyboard extends HTMLElement {
13
13
  connectedCallback(): void;
14
14
  set shouldKeyboardBeOpen(fn: () => boolean);
15
15
  }
16
+ declare global {
17
+ interface HTMLElementTagNameMap {
18
+ 'v-keyboard': VKeyboard;
19
+ }
20
+ }
@@ -17,3 +17,8 @@ export declare class VStack extends HTMLElement {
17
17
  connectedCallback(): void;
18
18
  disconnectedCallback(): void;
19
19
  }
20
+ declare global {
21
+ interface HTMLElementTagNameMap {
22
+ 'v-stack': VStack;
23
+ }
24
+ }
@@ -1,8 +1,10 @@
1
1
  export type AlertReturnDetail = {
2
2
  returnValue: string;
3
3
  };
4
+ export interface AlertReturnEvent extends CustomEvent<AlertReturnDetail> {
5
+ }
4
6
  declare global {
5
7
  interface HTMLElementEventMap {
6
- 'alert:return': CustomEvent<AlertReturnDetail>;
8
+ 'alert:return': AlertReturnEvent;
7
9
  }
8
10
  }
@@ -2,8 +2,10 @@ export type ConfirmationReturnDetail = {
2
2
  returnValue: string;
3
3
  positionAnchor: string;
4
4
  };
5
+ export interface ConfirmationReturnEvent extends CustomEvent<ConfirmationReturnDetail> {
6
+ }
5
7
  declare global {
6
8
  interface HTMLElementEventMap {
7
- 'confirmation:return': CustomEvent<ConfirmationReturnDetail>;
9
+ 'confirmation:return': ConfirmationReturnEvent;
8
10
  }
9
11
  }
@@ -1,8 +1,10 @@
1
1
  export type DatePickerSelectionDetail = {
2
2
  selection: string;
3
3
  };
4
+ export interface DatePickerSelectionEvent extends CustomEvent<DatePickerSelectionDetail> {
5
+ }
4
6
  declare global {
5
7
  interface HTMLElementEventMap {
6
- selection: CustomEvent<DatePickerSelectionDetail>;
8
+ selection: DatePickerSelectionEvent;
7
9
  }
8
10
  }
@@ -2,9 +2,13 @@ import { type ScrollView } from '../components';
2
2
  export type PageShowHideDetail = {
3
3
  page: ScrollView;
4
4
  };
5
+ export interface PageShowEvent extends CustomEvent<PageShowHideDetail> {
6
+ }
7
+ export interface PageHideEvent extends CustomEvent<PageShowHideDetail> {
8
+ }
5
9
  declare global {
6
10
  interface HTMLElementEventMap {
7
- pageshow: CustomEvent<PageShowHideDetail>;
8
- pagehide: CustomEvent<PageShowHideDetail>;
11
+ pageshow: PageShowEvent;
12
+ pagehide: PageHideEvent;
9
13
  }
10
14
  }
@@ -5,11 +5,19 @@ export type PickerSearchableDetail = {
5
5
  element: HTMLElement;
6
6
  search: string;
7
7
  };
8
+ export interface PickerSelectionEvent extends CustomEvent<PickerSelectionDetail> {
9
+ }
10
+ export interface PickerSearchfocusEvent extends CustomEvent<PickerSearchableDetail> {
11
+ }
12
+ export interface PickerSearchblurEvent extends CustomEvent<PickerSearchableDetail> {
13
+ }
14
+ export interface PickerSearchinputEvent extends CustomEvent<PickerSearchableDetail> {
15
+ }
8
16
  declare global {
9
17
  interface HTMLElementEventMap {
10
- selection: CustomEvent<PickerSelectionDetail>;
11
- 'picker:searchfocus': CustomEvent<PickerSearchableDetail>;
12
- 'picker:searchblur': CustomEvent<PickerSearchableDetail>;
13
- 'picker:searchinput': CustomEvent<PickerSearchableDetail>;
18
+ selection: PickerSelectionEvent;
19
+ 'picker:searchfocus': PickerSearchfocusEvent;
20
+ 'picker:searchblur': PickerSearchblurEvent;
21
+ 'picker:searchinput': PickerSearchinputEvent;
14
22
  }
15
23
  }
@@ -2,9 +2,13 @@ import { type ScrollView } from '../components';
2
2
  export type PageRevealSwapDetail = {
3
3
  page: ScrollView;
4
4
  };
5
+ export interface PagerevealEvent extends CustomEvent<PageRevealSwapDetail> {
6
+ }
7
+ export interface PageswapEvent extends CustomEvent<PageRevealSwapDetail> {
8
+ }
5
9
  declare global {
6
10
  interface HTMLElementEventMap {
7
- pagereveal: CustomEvent<PageRevealSwapDetail>;
8
- pageswap: CustomEvent<PageRevealSwapDetail>;
11
+ pagereveal: PagerevealEvent;
12
+ pageswap: PageswapEvent;
9
13
  }
10
14
  }
@@ -14,15 +14,31 @@ export type TabViewAdaptableTabBarPlacementDetail = {
14
14
  oldValue?: TabBarPlacement;
15
15
  newValue?: TabBarPlacement;
16
16
  };
17
+ export interface TabshowEvent extends CustomEvent<TabDetail> {
18
+ }
19
+ export interface TabhideEvent extends CustomEvent<TabDetail> {
20
+ }
21
+ export interface TabrevealEvent extends CustomEvent<TabDetail> {
22
+ }
23
+ export interface TabswapEvent extends CustomEvent<TabDetail> {
24
+ }
25
+ export interface BeforetabrevealEvent extends CustomEvent<TabBeforeDetail> {
26
+ }
27
+ export interface BeforetabswapEvent extends CustomEvent<TabBeforeDetail> {
28
+ }
29
+ export interface TabViewToggleEvent extends CustomEvent<TabViewDetail> {
30
+ }
31
+ export interface TabViewAdaptableTabBarPlacementChangeEvent extends CustomEvent<TabViewAdaptableTabBarPlacementDetail> {
32
+ }
17
33
  declare global {
18
34
  interface HTMLElementEventMap {
19
- tabshow: CustomEvent<TabDetail>;
20
- tabhide: CustomEvent<TabDetail>;
21
- tabreveal: CustomEvent<TabDetail>;
22
- tabswap: CustomEvent<TabDetail>;
23
- beforetabreveal: CustomEvent<TabBeforeDetail>;
24
- beforetabswap: CustomEvent<TabBeforeDetail>;
25
- 'tab-view:toggle': CustomEvent<TabViewDetail>;
26
- 'tab-view:adaptable-tab-bar-placement-change': CustomEvent<TabViewAdaptableTabBarPlacementDetail>;
35
+ tabshow: TabshowEvent;
36
+ tabhide: TabhideEvent;
37
+ tabreveal: TabrevealEvent;
38
+ tabswap: TabswapEvent;
39
+ beforetabreveal: BeforetabrevealEvent;
40
+ beforetabswap: BeforetabswapEvent;
41
+ 'tab-view:toggle': TabViewToggleEvent;
42
+ 'tab-view:adaptable-tab-bar-placement-change': TabViewAdaptableTabBarPlacementChangeEvent;
27
43
  }
28
44
  }
@@ -1,8 +1,10 @@
1
1
  export type TextFieldCommitDetail = {
2
2
  text: string;
3
3
  };
4
+ export interface TextFieldCommitEvent extends CustomEvent<TextFieldCommitDetail> {
5
+ }
4
6
  declare global {
5
7
  interface HTMLElementEventMap {
6
- commit: CustomEvent<TextFieldCommitDetail>;
8
+ commit: TextFieldCommitEvent;
7
9
  }
8
10
  }
@@ -2,8 +2,10 @@ export type ToggleChangeDetail = {
2
2
  isOn: boolean;
3
3
  value: string | null;
4
4
  };
5
+ export interface ToggleChangeEvent extends CustomEvent<ToggleChangeDetail> {
6
+ }
5
7
  declare global {
6
8
  interface HTMLElementEventMap {
7
- 'toggle:change': CustomEvent<ToggleChangeDetail>;
9
+ 'toggle:change': ToggleChangeEvent;
8
10
  }
9
11
  }
@@ -29,7 +29,7 @@ export class FormAssociatedBase extends HTMLElement {
29
29
  }
30
30
  constructor() {
31
31
  super();
32
- internals.set(this, this.attachInternals());
32
+ internals.set(this, this.attachInternals?.());
33
33
  // trackedElements.set(this, new Set<Element>())
34
34
  }
35
35
  disconnectedCallback() {
@@ -1,11 +1,8 @@
1
1
  export default function (str) {
2
- return (str
3
- // Replace uppercase letters with - + lowercase
4
- .replace(/([A-Z])/g, '-$1')
5
- // Replace spaces and underscores with -
6
- .replace(/[\s_]+/g, '-')
7
- // Convert to lowercase
8
- .toLowerCase()
9
- // Remove leading/trailing dashes
10
- .replace(/^-+|-+$/g, ''));
2
+ return str
3
+ .replace(/([A-Z])/g, '-$1') // Replace uppercase letters with - + lowercase
4
+ .replace(/[\s_]+/g, '-') // Replace spaces and underscores with -
5
+ .replace(/-+/g, '-') // collapse any run of dashes into one
6
+ .toLowerCase() // Convert to lowercase
7
+ .replace(/^-+|-+$/g, ''); // Remove leading/trailing dashes
11
8
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swiftwc/ui",
3
- "version": "0.0.0-dev.93",
3
+ "version": "0.0.0-dev.94",
4
4
  "description": "Elegant SwiftUI-inspired web components for standalone web apps and web extensions.",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -149,7 +149,7 @@
149
149
  "url": "https://swiftwc.github.io/ui/web-components/date-picker"
150
150
  }
151
151
  ],
152
- "description": "### **Properties:**\n- readonly **template** — DocumentFragment\n- readonly **datePickerStyle** — \"graphical\" | \"field\" | \"automatic\"\n- readonly **name** — string Form participation property\n- readonly **value** — { year: string; month: string; day: string; }\n- readonly **valueAsDate** — Date | null Returns the value as a Date object.\n- readonly **minimum** — { year: string; month: string; day: string; } | null\n- readonly **maximum** — { year: string; month: string; day: string; } | null",
152
+ "description": "### **Properties:**\n- readonly **template** — DocumentFragment\n- readonly **datePickerStyle** — \"graphical\" | \"field\" | \"automatic\"\n- readonly **name** — string\n- readonly **value** — { year: string; month: string; day: string; }\n- readonly **valueAsDate** — Date | null\n- readonly **minimum** — { year: string; month: string; day: string; } | null\n- readonly **maximum** — { year: string; month: string; day: string; } | null",
153
153
  "attributes": [
154
154
  {
155
155
  "name": "date-picker-style",
@@ -167,7 +167,13 @@
167
167
  ]
168
168
  },
169
169
  {
170
- "name": "required"
170
+ "name": "required",
171
+ "description": "Value Type: “required”",
172
+ "values": [
173
+ {
174
+ "name": "required"
175
+ }
176
+ ]
171
177
  },
172
178
  {
173
179
  "name": "prompt"
@@ -182,7 +188,13 @@
182
188
  "name": "selection"
183
189
  },
184
190
  {
185
- "name": "disabled"
191
+ "name": "disabled",
192
+ "description": "Value Type: “disabled”",
193
+ "values": [
194
+ {
195
+ "name": "disabled"
196
+ }
197
+ ]
186
198
  },
187
199
  {
188
200
  "name": "minimum"
@@ -344,7 +356,7 @@
344
356
  "url": "https://swiftwc.github.io/ui/web-components/label-view"
345
357
  }
346
358
  ],
347
- "description": "### **Slots:**\n- _default_ — Place children without a `slot` attribute inside the main block of the label.\n- **icon** — Place children with a `slot=\"icon\"` attribute in the icon block of the label.\n\n### **Examples:**\n**Creating a label with an icon image and a title:**\n```html\n<label-view system-image=\"hand-tap\"><span>Hello</span></label-view>\n\n```",
359
+ "description": "### **Slots:**\n- _default_ — Any children without a `slot` attribute are placed in the title block of the label.\n- **icon** — Use the `slot=\"icon\"` attribute to place childen in the icon block of the label.\n\n### **Examples:**\n**Creating a label using a `span` element:**\n```html\n<label-view><span>Hello world!</span></label-view>\n\n```\n**Creating a label using the `title` attribute:**\n```html\n<label-view title=\"Hello world!\"></label-view>\n\n```\n**Creating a label with an icon and a title using the `system-image` attribute:**\n```html\n<label-view system-image=\"hand-waving\"><span>Hello world!</span></label-view>\n\n```\n**Creating a label with an icon and a title using the `icon` slot:**\n```html\n<label-view>\n <i slot=\"icon\" class=\"ph ph-duotone ph-hand-waving\"></i>\n <span>Hello world!</span>\n</label-view>\n\n```",
348
360
  "attributes": [
349
361
  {
350
362
  "name": "font",
@@ -361,7 +373,13 @@
361
373
  "name": "line-limit"
362
374
  },
363
375
  {
364
- "name": "truncation-mode"
376
+ "name": "truncation-mode",
377
+ "description": "Value Type: “tail”",
378
+ "values": [
379
+ {
380
+ "name": "tail"
381
+ }
382
+ ]
365
383
  }
366
384
  ]
367
385
  },
@@ -381,7 +399,16 @@
381
399
  "name": "footer"
382
400
  },
383
401
  {
384
- "name": "labeled-content-style"
402
+ "name": "labeled-content-style",
403
+ "description": "Value Type: “vertical” | “horizontal”",
404
+ "values": [
405
+ {
406
+ "name": "vertical"
407
+ },
408
+ {
409
+ "name": "horizontal"
410
+ }
411
+ ]
385
412
  },
386
413
  {
387
414
  "name": "format"
@@ -481,7 +508,7 @@
481
508
  "url": "https://swiftwc.github.io/ui/web-components/picker-view"
482
509
  }
483
510
  ],
484
- "description": "### **Slots:**\n- _default_ — The default slot.\n- **label**\n- **list**\n- **validity-options**\n\n### **Properties:**\n- **selection** — string\n- readonly **template** — DocumentFragment\n- readonly **pickerStyle** — \"automatic\" | \"menu\" | \"inline\" | \"navigation-link\" | \"sheet\"\n- readonly **name** — string Form participation property",
511
+ "description": "### **Slots:**\n- _default_ — The default slot.\n- **label**\n- **list**\n- **validity-options**\n\n### **Properties:**\n- **selection** — string\n- readonly **template** — DocumentFragment\n- readonly **pickerStyle** — \"automatic\" | \"menu\" | \"inline\" | \"navigation-link\" | \"sheet\"\n- readonly **name** — string",
485
512
  "attributes": [
486
513
  {
487
514
  "name": "picker-style",
@@ -706,7 +733,7 @@
706
733
  "url": "https://swiftwc.github.io/ui/web-components/text-field"
707
734
  }
708
735
  ],
709
- "description": "### **Slots:**\n- **label**\n- **validity-options**\n\n### **Properties:**\n- readonly **keyboardType** — \"decimal-pad\" | \"number-pad\" | \"default\"\n- **text** — string\n- readonly **name** — string Form participation property\n- readonly **value** — string\n- readonly **valueAsNumber** — number | \"\"\n- readonly **negativeNumbersAllowed** — boolean",
736
+ "description": "### **Slots:**\n- **label**\n- **validity-options**\n\n### **Properties:**\n- readonly **keyboardType** — \"decimal-pad\" | \"number-pad\" | \"default\"\n- **text** — string\n- readonly **name** — string\n- readonly **value** — string\n- readonly **valueAsNumber** — number | \"\"\n- readonly **negativeNumbersAllowed** — boolean",
710
737
  "attributes": [
711
738
  {
712
739
  "name": "prompt"
@@ -736,16 +763,41 @@
736
763
  "name": "text-input-autocapitalization"
737
764
  },
738
765
  {
739
- "name": "disable-autocorrection"
766
+ "name": "disable-autocorrection",
767
+ "description": ""
740
768
  },
741
769
  {
742
- "name": "keyboard-type"
770
+ "name": "keyboard-type",
771
+ "description": "Value Type: “decimal-pad” | “number-pad” | “default”",
772
+ "values": [
773
+ {
774
+ "name": "decimal-pad"
775
+ },
776
+ {
777
+ "name": "number-pad"
778
+ },
779
+ {
780
+ "name": "default"
781
+ }
782
+ ]
743
783
  },
744
784
  {
745
- "name": "required"
785
+ "name": "required",
786
+ "description": "Value Type: “required”",
787
+ "values": [
788
+ {
789
+ "name": "required"
790
+ }
791
+ ]
746
792
  },
747
793
  {
748
- "name": "disabled"
794
+ "name": "disabled",
795
+ "description": "Value Type: “disabled”",
796
+ "values": [
797
+ {
798
+ "name": "disabled"
799
+ }
800
+ ]
749
801
  }
750
802
  ]
751
803
  },
@@ -757,7 +809,7 @@
757
809
  "url": "https://swiftwc.github.io/ui/web-components/toggle-view"
758
810
  }
759
811
  ],
760
- "description": "### **Slots:**\n- **label**\n- **validity-options**\n\n### **Properties:**\n- readonly **toggleStyle** — \"button\" | \"switch\"\n- **isOn** — boolean\n- readonly **name** — string Form participation property\n- **value** — string | null",
812
+ "description": "### **Slots:**\n- **label**\n- **validity-options**\n\n### **Properties:**\n- readonly **toggleStyle** — \"button\" | \"switch\"\n- **isOn** — boolean\n- readonly **name** — string\n- **value** — string | null\n\n### **Events:**\n- **toggle:change** — User toggled the control",
761
813
  "attributes": [
762
814
  {
763
815
  "name": "label"