@oscarpalmer/oui 0.39.0 → 0.40.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 (182) hide show
  1. package/README.md +1 -1
  2. package/dist/js/color-picker/color-picker.constants.d.mts +2 -0
  3. package/dist/js/color-picker/{constants.color-picker.mjs → color-picker.constants.mjs} +5 -4
  4. package/dist/js/color-picker/{dom.color-picker.d.mts → color-picker.dom.d.mts} +2 -2
  5. package/dist/js/color-picker/{dom.color-picker.mjs → color-picker.dom.mjs} +3 -3
  6. package/dist/js/color-picker/{event.color-picker.d.mts → color-picker.event.d.mts} +2 -2
  7. package/dist/js/color-picker/{event.color-picker.mjs → color-picker.event.mjs} +1 -1
  8. package/dist/js/color-picker/{form.color-picker.d.mts → color-picker.form.d.mts} +2 -2
  9. package/dist/js/color-picker/{form.color-picker.mjs → color-picker.form.mjs} +9 -6
  10. package/dist/js/color-picker/color-picker.misc.d.mts +2 -0
  11. package/dist/js/color-picker/{misc.color-picker.mjs → color-picker.misc.mjs} +1 -1
  12. package/dist/js/color-picker/color-picker.model.d.mts +2 -0
  13. package/dist/js/color-picker/{models.color-picker.mjs → color-picker.model.mjs} +1 -1
  14. package/dist/js/color-picker/{output.color-picker.d.mts → color-picker.output.d.mts} +2 -2
  15. package/dist/js/color-picker/{output.color-picker.mjs → color-picker.output.mjs} +13 -11
  16. package/dist/js/color-picker/color-picker.state.d.mts +8 -0
  17. package/dist/js/color-picker/color-picker.state.mjs +2 -0
  18. package/dist/js/color-picker/index.d.mts +180 -2
  19. package/dist/js/color-picker/index.mjs +59 -57
  20. package/dist/js/color-picker.constants-D1mxw_Le.d.mts +179 -0
  21. package/dist/js/{event.color-picker-BEpq0Adu.mjs → color-picker.event-Cksj5TvS.mjs} +105 -90
  22. package/dist/js/color-picker.misc-CtsXGrOe.d.mts +27 -0
  23. package/dist/js/combobox/combobox.constants.d.mts +2 -0
  24. package/dist/js/combobox/{constants.combobox.mjs → combobox.constants.mjs} +21 -21
  25. package/dist/js/combobox/{dom.combobox.d.mts → combobox.dom.d.mts} +3 -3
  26. package/dist/js/combobox/{dom.combobox.mjs → combobox.dom.mjs} +40 -36
  27. package/dist/js/combobox/{event.combobox.d.mts → combobox.event.d.mts} +3 -3
  28. package/dist/js/combobox/{event.combobox.mjs → combobox.event.mjs} +1 -1
  29. package/dist/js/combobox/combobox.misc.d.mts +2 -0
  30. package/dist/js/combobox/{misc.combobox.mjs → combobox.misc.mjs} +1 -1
  31. package/dist/js/combobox/combobox.model.d.mts +2 -0
  32. package/dist/js/combobox/combobox.state.d.mts +10 -0
  33. package/dist/js/combobox/combobox.state.mjs +2 -0
  34. package/dist/js/combobox/index.d.mts +163 -2
  35. package/dist/js/combobox/index.mjs +53 -52
  36. package/dist/js/combobox.constants-DZVkMP5g.d.mts +19 -0
  37. package/dist/js/combobox.misc-C1tPZZDi.d.mts +22 -0
  38. package/dist/js/combobox.model-oDV06XCN.d.mts +44 -0
  39. package/dist/js/{state.combobox-BWDFHwoi.mjs → combobox.state-BfJ3Hxg8.mjs} +94 -80
  40. package/dist/js/constants.listbox-C5Ap6Ag_.d.mts +9 -0
  41. package/dist/js/dialog/dialog.model.d.mts +2 -0
  42. package/dist/js/dialog/dialog.model.mjs +11 -0
  43. package/dist/js/dialog/index.d.mts +12 -0
  44. package/dist/js/dialog/index.mjs +123 -0
  45. package/dist/js/dialog.model-DX2mndMh.d.mts +45 -0
  46. package/dist/js/floatable/floatable.embedded.d.mts +2 -2
  47. package/dist/js/floatable/floatable.embedded.mjs +64 -92
  48. package/dist/js/floatable/floatable.model.d.mts +2 -0
  49. package/dist/js/floatable/floatable.model.mjs +23 -0
  50. package/dist/js/floatable/floatable.standalone.d.mts +2 -1
  51. package/dist/js/floatable.embedded-MeTyXjFn.d.mts +17 -0
  52. package/dist/js/{floatable.embedded-DQYkXt8X.d.mts → floatable.model-DXsQgoU7.d.mts} +13 -20
  53. package/dist/js/focus-trap/focus-trap.embedded.d.mts +2 -2
  54. package/dist/js/focus-trap/focus-trap.embedded.mjs +113 -135
  55. package/dist/js/focus-trap/focus-trap.model.d.mts +2 -0
  56. package/dist/js/focus-trap/focus-trap.model.mjs +15 -0
  57. package/dist/js/focus-trap/focus-trap.standalone.d.mts +2 -1
  58. package/dist/js/focus-trap.embedded-DIU05m1z.d.mts +13 -0
  59. package/dist/js/{focus-trap.embedded-CjyFQYow.d.mts → focus-trap.model-BeX6UYlw.d.mts} +16 -18
  60. package/dist/js/index.d.mts +26 -14
  61. package/dist/js/index.mjs +18 -17
  62. package/dist/js/internal/attributable.mjs +3 -2
  63. package/dist/js/internal/draggable/draggable.model.d.mts +2 -0
  64. package/dist/js/internal/draggable/draggable.model.mjs +37 -0
  65. package/dist/js/internal/draggable/index.d.mts +13 -0
  66. package/dist/js/internal/{draggable.mjs → draggable/index.mjs} +82 -113
  67. package/dist/js/internal/listbox/listbox.constants.d.mts +1 -1
  68. package/dist/js/internal/listbox/listbox.data.d.mts +1 -1
  69. package/dist/js/internal/listbox/listbox.data.mjs +1 -1
  70. package/dist/js/internal/listbox/listbox.dom.d.mts +1 -1
  71. package/dist/js/internal/listbox/listbox.dom.mjs +1 -1
  72. package/dist/js/internal/listbox/listbox.event.d.mts +1 -1
  73. package/dist/js/internal/listbox/listbox.event.mjs +20 -17
  74. package/dist/js/internal/listbox/listbox.form.d.mts +1 -1
  75. package/dist/js/internal/listbox/listbox.form.mjs +15 -12
  76. package/dist/js/internal/listbox/listbox.misc.d.mts +1 -1
  77. package/dist/js/internal/listbox/listbox.misc.mjs +1 -1
  78. package/dist/js/internal/listbox/listbox.model.d.mts +2 -2
  79. package/dist/js/internal/listbox/listbox.state.d.mts +4 -4
  80. package/dist/js/internal/listbox/listbox.state.mjs +19 -20
  81. package/dist/js/internal/misc.d.mts +1 -0
  82. package/dist/js/internal/misc.mjs +4 -6
  83. package/dist/js/internal/navigable/index.d.mts +6 -0
  84. package/dist/js/internal/navigable/index.mjs +125 -0
  85. package/dist/js/internal/navigable/navigable.model.d.mts +2 -0
  86. package/dist/js/internal/navigable/navigable.model.mjs +18 -0
  87. package/dist/js/l10n/index.d.mts +9 -0
  88. package/dist/js/{l10n.mjs → l10n/index.mjs} +50 -23
  89. package/dist/js/l10n/l10n.model.d.mts +2 -0
  90. package/dist/js/l10n/l10n.model.mjs +9 -0
  91. package/dist/js/l10n.model-D6a9frgl.d.mts +26 -0
  92. package/dist/js/listbox/constants.listbox.d.mts +2 -2
  93. package/dist/js/listbox/constants.listbox.mjs +10 -14
  94. package/dist/js/listbox/event.listbox.d.mts +1 -1
  95. package/dist/js/listbox/event.listbox.mjs +47 -1
  96. package/dist/js/listbox/index.d.mts +6 -4
  97. package/dist/js/listbox/index.mjs +47 -49
  98. package/dist/js/listbox/misc.listbox.d.mts +1 -1
  99. package/dist/js/listbox/misc.listbox.mjs +1 -1
  100. package/dist/js/listbox/state.listbox.d.mts +4 -5
  101. package/dist/js/listbox/state.listbox.mjs +2 -2
  102. package/dist/js/{listbox.data-DQ7-x2uY.mjs → listbox.data-BQyZGKgr.mjs} +87 -70
  103. package/dist/js/{listbox.model-BHPA7GM4.d.mts → listbox.model-CuBOj4qe.d.mts} +12 -8
  104. package/dist/js/menu/index.mjs +167 -0
  105. package/dist/js/menu/menu.model.d.mts +33 -0
  106. package/dist/js/menu/menu.model.mjs +15 -0
  107. package/dist/js/{misc.listbox-DKB-j0UK.mjs → misc.listbox-CjfBUbHD.mjs} +25 -67
  108. package/dist/js/{misc.listbox-mZMuYOxg.d.mts → misc.listbox-CtoGvXQo.d.mts} +2 -2
  109. package/dist/js/movable/movable.embedded.d.mts +2 -2
  110. package/dist/js/movable/movable.embedded.mjs +60 -72
  111. package/dist/js/movable/movable.model.d.mts +2 -0
  112. package/dist/js/movable/movable.model.mjs +12 -0
  113. package/dist/js/movable/movable.standalone.d.mts +2 -1
  114. package/dist/js/movable.embedded-DoyXLegc.d.mts +11 -0
  115. package/dist/js/{draggable-B5-70SZm.d.mts → movable.model-BHaK_mKw.d.mts} +81 -50
  116. package/dist/js/navigable.model-BPOM8DZk.d.mts +44 -0
  117. package/dist/js/popover/index.d.mts +12 -0
  118. package/dist/js/{popover.mjs → popover/index.mjs} +41 -51
  119. package/dist/js/popover/popover.model.d.mts +2 -0
  120. package/dist/js/popover/popover.model.mjs +12 -0
  121. package/dist/js/popover.model-ubKNG612.d.mts +38 -0
  122. package/dist/js/resizable/resizable.embedded.d.mts +2 -2
  123. package/dist/js/resizable/resizable.embedded.mjs +43 -58
  124. package/dist/js/resizable/resizable.model.d.mts +2 -0
  125. package/dist/js/resizable/resizable.model.mjs +21 -0
  126. package/dist/js/resizable/resizable.standalone.d.mts +2 -1
  127. package/dist/js/resizable.embedded-Bf1qBUdt.d.mts +11 -0
  128. package/dist/js/resizable.model-BwzJcTVJ.d.mts +46 -0
  129. package/dist/js/sortable/sortable.embedded.d.mts +2 -2
  130. package/dist/js/sortable/sortable.embedded.mjs +69 -82
  131. package/dist/js/sortable/sortable.model.d.mts +2 -0
  132. package/dist/js/sortable/sortable.model.mjs +24 -0
  133. package/dist/js/sortable/sortable.standalone.d.mts +2 -1
  134. package/dist/js/sortable.embedded-DzBKAwSG.d.mts +11 -0
  135. package/dist/js/{splitter.d.mts → splitter/index.d.mts} +6 -4
  136. package/dist/js/{splitter.mjs → splitter/index.mjs} +90 -128
  137. package/dist/js/splitter/splitter.model.d.mts +2 -0
  138. package/dist/js/splitter/splitter.model.mjs +37 -0
  139. package/dist/js/splitter.model-DOLNjLVS.d.mts +57 -0
  140. package/dist/js/{tabs.d.mts → tabs/index.d.mts} +7 -7
  141. package/dist/js/{tabs.mjs → tabs/index.mjs} +58 -58
  142. package/dist/js/tabs/tabs.model.d.mts +2 -0
  143. package/dist/js/tabs/tabs.model.mjs +18 -0
  144. package/dist/js/tabs.model-DRBX_JtI.d.mts +40 -0
  145. package/dist/js/toolbar/index.mjs +27 -0
  146. package/dist/js/toolbar/toolbar.model.d.mts +11 -0
  147. package/dist/js/toolbar/toolbar.model.mjs +7 -0
  148. package/dist/js/tooltip/index.d.mts +19 -0
  149. package/dist/js/{tooltip.mjs → tooltip/index.mjs} +61 -86
  150. package/dist/js/tooltip/tooltip.model.d.mts +2 -0
  151. package/dist/js/tooltip/tooltip.model.mjs +15 -0
  152. package/dist/js/tooltip.model-DRkY_BsL.d.mts +37 -0
  153. package/package.json +30 -24
  154. package/dist/js/color-picker/constants.color-picker.d.mts +0 -2
  155. package/dist/js/color-picker/misc.color-picker.d.mts +0 -2
  156. package/dist/js/color-picker/models.color-picker.d.mts +0 -2
  157. package/dist/js/color-picker/state.color-picker.d.mts +0 -8
  158. package/dist/js/color-picker/state.color-picker.mjs +0 -2
  159. package/dist/js/combobox/constants.combobox.d.mts +0 -2
  160. package/dist/js/combobox/misc.combobox.d.mts +0 -2
  161. package/dist/js/combobox/models.combobox.d.mts +0 -43
  162. package/dist/js/combobox/state.combobox.d.mts +0 -11
  163. package/dist/js/combobox/state.combobox.mjs +0 -2
  164. package/dist/js/constants.color-picker-B-gFjL8m.d.mts +0 -364
  165. package/dist/js/constants.combobox-8EMRmv09.d.mts +0 -18
  166. package/dist/js/constants.listbox-DGnX32kv.d.mts +0 -8
  167. package/dist/js/dialog.d.mts +0 -47
  168. package/dist/js/dialog.mjs +0 -131
  169. package/dist/js/index-C5D3-oiI.d.mts +0 -177
  170. package/dist/js/internal/draggable.d.mts +0 -2
  171. package/dist/js/internal/navigable.d.mts +0 -36
  172. package/dist/js/internal/navigable.mjs +0 -135
  173. package/dist/js/l10n-Bn-7RcwR.d.mts +0 -20
  174. package/dist/js/l10n.d.mts +0 -2
  175. package/dist/js/menu.mjs +0 -172
  176. package/dist/js/popover.d.mts +0 -38
  177. package/dist/js/resizable.embedded-dvhdfQgt.d.mts +0 -34
  178. package/dist/js/toolbar.mjs +0 -31
  179. package/dist/js/tooltip.d.mts +0 -45
  180. /package/dist/js/combobox/{models.combobox.mjs → combobox.model.mjs} +0 -0
  181. /package/dist/js/{menu.d.mts → menu/index.d.mts} +0 -0
  182. /package/dist/js/{toolbar.d.mts → toolbar/index.d.mts} +0 -0
@@ -1,4 +1,4 @@
1
- import { c as OuiListboxPreview, l as OuiListboxState } from "../listbox.model-BHPA7GM4.mjs";
1
+ import { c as OuiListboxPreview, l as OuiListboxState } from "../listbox.model-CuBOj4qe.mjs";
2
2
  //#region src/js/listbox/event.listbox.d.ts
3
3
  export declare function onListboxEnter(state: OuiListboxState): void;
4
4
  export declare function onListboxFilter(preview: OuiListboxPreview, state: OuiListboxState, _: boolean, active?: HTMLElement): void;
@@ -1,2 +1,48 @@
1
- import { d as onListboxNavigation, f as onListboxToggle, l as onListboxEnter, u as onListboxFilter } from "../misc.listbox-DKB-j0UK.mjs";
1
+ import { n as filterListbox, s as toggleListboxOption, t as applyListboxSelection, y as updateListboxPreview } from "../listbox.data-BQyZGKgr.mjs";
2
+ import { processListboxKeydown } from "../internal/listbox/listbox.event.mjs";
3
+ import { LISTBOX_SYMBOL, LISTBOX_TAGNAME, listboxSelectors } from "./constants.listbox.mjs";
4
+ import { on } from "@oscarpalmer/toretto/event";
5
+ import { findAncestor } from "@oscarpalmer/toretto/find";
6
+ //#region src/js/listbox/event.listbox.ts
7
+ function onListboxClick(event) {
8
+ const listbox = findAncestor(event, LISTBOX_TAGNAME);
9
+ const state = listbox?.[LISTBOX_SYMBOL];
10
+ if (listbox == null || state == null) return;
11
+ const option = findAncestor(event, listboxSelectors.option);
12
+ if (option == null) return;
13
+ const { disabled, filter, readonly } = state.component;
14
+ if (disabled) filter.element.focus();
15
+ else if (readonly) updateListboxPreview("none", state, option, false);
16
+ else toggleListboxOption(state, option);
17
+ }
18
+ function onListboxEnter(state) {
19
+ if (!state.component.disabled && !state.component.readonly) toggleListboxOption(state, state.component.active);
20
+ }
21
+ function onListboxFilter(preview, state, _, active) {
22
+ updateListboxPreview(preview, state, active);
23
+ }
24
+ function onListboxInput(event) {
25
+ const state = findAncestor(event, LISTBOX_TAGNAME)?.[LISTBOX_SYMBOL];
26
+ if (state?.component.filter.element === event.target) filterListbox(event.inputType, state);
27
+ }
28
+ function onListboxKeydown(event) {
29
+ const state = findAncestor(event, LISTBOX_TAGNAME)?.[LISTBOX_SYMBOL];
30
+ if (state?.component.filter.element === event.target) processListboxKeydown(event, state);
31
+ }
32
+ function onListboxNavigation(preview, state, active) {
33
+ if (state.component.multiple || state.component.readonly) updateListboxPreview(preview, state, active);
34
+ else applyListboxSelection({
35
+ state,
36
+ option: active,
37
+ added: true,
38
+ selected: active == null ? [] : [active]
39
+ });
40
+ }
41
+ function onListboxToggle(state) {
42
+ state.component.filter.element.focus();
43
+ }
44
+ on(document, "click", onListboxClick);
45
+ on(document, "input", onListboxInput);
46
+ on(document, "keydown", onListboxKeydown, { passive: false });
47
+ //#endregion
2
48
  export { onListboxEnter, onListboxFilter, onListboxNavigation, onListboxToggle };
@@ -1,14 +1,16 @@
1
- import { o as OuiListboxLocalizations } from "../listbox.model-BHPA7GM4.mjs";
2
- import { i as LISTBOX_TAGNAME } from "../constants.listbox-DGnX32kv.mjs";
3
- import { n as setListboxLocalizations } from "../misc.listbox-mZMuYOxg.mjs";
1
+ import { l as OuiListboxState, o as OuiListboxLocalizations } from "../listbox.model-CuBOj4qe.mjs";
2
+ import { n as LISTBOX_TAGNAME, t as LISTBOX_SYMBOL } from "../constants.listbox-C5Ap6Ag_.mjs";
3
+ import { n as setListboxLocalizations } from "../misc.listbox-CtoGvXQo.mjs";
4
4
  //#region src/js/listbox/index.d.ts
5
5
  declare global {
6
6
  interface HTMLElementTagNameMap {
7
7
  [LISTBOX_TAGNAME]: OuiListboxElement;
8
8
  }
9
9
  }
10
+ export interface OuiListboxElement {
11
+ [LISTBOX_SYMBOL]: OuiListboxState;
12
+ }
10
13
  export declare class OuiListboxElement extends HTMLElement {
11
- #private;
12
14
  static formAssociated: boolean;
13
15
  static observedAttributes: string[];
14
16
  /**
@@ -1,7 +1,7 @@
1
- import { C as setListboxDisabled, D as setListboxReadonly, O as setListboxRequired, T as setListboxLimit, a as setListboxValue, o as setListboxValues, w as setListboxFilter } from "../listbox.data-DQ7-x2uY.mjs";
1
+ import { C as setListboxDisabled, D as setListboxReadonly, O as setListboxRequired, T as setListboxLimit, a as setListboxValue, o as setListboxValues, w as setListboxFilter } from "../listbox.data-BQyZGKgr.mjs";
2
2
  import { attachListbox, detachListbox } from "../internal/listbox/listbox.state.mjs";
3
- import { LISTBOX_TAGNAME } from "./constants.listbox.mjs";
4
- import { c as onDetachListbox, i as createListboxState, n as setListboxLocalizations, o as listboxStates, r as updateListboxLocalizations, s as onAttachListbox } from "../misc.listbox-DKB-j0UK.mjs";
3
+ import { LISTBOX_SYMBOL, LISTBOX_TAGNAME } from "./constants.listbox.mjs";
4
+ import { c as onDetachListbox, i as initializeListbox, n as setListboxLocalizations, o as listboxes, r as updateListboxLocalizations, s as onAttachListbox } from "../misc.listbox-CjfBUbHD.mjs";
5
5
  import { getAttribute } from "@oscarpalmer/toretto/attribute";
6
6
  import { parse } from "@oscarpalmer/atoms/string";
7
7
  //#region src/js/listbox/index.ts
@@ -13,68 +13,65 @@ var OuiListboxElement = class extends HTMLElement {
13
13
  "required",
14
14
  "value"
15
15
  ];
16
- #internals;
17
- #restored;
18
- #state;
19
16
  /**
20
17
  * Is the listbox disabled?
21
18
  */
22
19
  get disabled() {
23
- return this.#state?.disabled ?? false;
20
+ return this[LISTBOX_SYMBOL].component?.disabled ?? false;
24
21
  }
25
22
  /**
26
23
  * Should the listbox be disabled?
27
24
  */
28
25
  set disabled(value) {
29
- if (typeof value === "boolean" && value !== this.disabled) setListboxDisabled(this.#state, value);
26
+ if (typeof value === "boolean" && value !== this.disabled) setListboxDisabled(this[LISTBOX_SYMBOL], value);
30
27
  }
31
28
  /**
32
29
  * Current filter value
33
30
  */
34
31
  get filter() {
35
- return this.#state.filter.element.value;
32
+ return this[LISTBOX_SYMBOL].component?.filter.element.value ?? "";
36
33
  }
37
34
  /**
38
35
  * Set the filter value
39
36
  */
40
37
  set filter(value) {
41
- setListboxFilter(this.#state, value);
38
+ setListboxFilter(this[LISTBOX_SYMBOL], value);
42
39
  }
43
40
  /**
44
41
  * Form element associated with the listbox
45
42
  */
46
43
  get form() {
47
- return this.#internals.form;
44
+ return this[LISTBOX_SYMBOL].form.internals.form;
48
45
  }
49
46
  /**
50
47
  * Label elements associated with the listbox
51
48
  */
52
49
  get labels() {
53
- return this.#internals.labels;
50
+ return this[LISTBOX_SYMBOL].form.internals.labels;
54
51
  }
55
52
  /**
56
53
  * Maximum number of selected options
57
54
  */
58
55
  get max() {
59
- return this.#state?.max;
56
+ return this[LISTBOX_SYMBOL].component?.max;
60
57
  }
61
58
  /**
62
59
  * Set the maximum number of selected options
63
60
  */
64
61
  set max(value) {
65
- setListboxLimit("max", this.#state, value);
62
+ setListboxLimit("max", this[LISTBOX_SYMBOL], value);
66
63
  }
67
64
  /**
68
65
  * Minimum number of selected options
69
66
  */
70
67
  get min() {
71
- return this.#state?.min;
68
+ return this[LISTBOX_SYMBOL].component?.min;
72
69
  }
73
70
  /**
74
71
  * Set the minimum number of selected options
75
72
  */
76
73
  set min(value) {
77
- setListboxLimit("min", this.#state, value);
74
+ setListboxLimit("min", this[LISTBOX_SYMBOL], value);
78
75
  }
79
76
  /**
80
77
  * Does the listbox allow multiple values?
@@ -92,87 +89,91 @@ var OuiListboxElement = class extends HTMLElement {
92
89
  * Is the listbox readonly?
93
90
  */
94
91
  get readonly() {
95
- return this.#state?.readonly ?? false;
92
+ return this[LISTBOX_SYMBOL].component?.readonly ?? false;
96
93
  }
97
94
  /**
98
95
  * Should the listbox be readonly?
99
96
  */
100
97
  set readonly(value) {
101
- if (typeof value === "boolean" && value !== this.readonly) setListboxReadonly(this.#state, value);
98
+ if (typeof value === "boolean" && value !== this.readonly) setListboxReadonly(this[LISTBOX_SYMBOL], value);
102
99
  }
103
100
  /**
104
101
  * Is the listbox required?
105
102
  */
106
103
  get required() {
107
- return this.#state?.required ?? false;
104
+ return this[LISTBOX_SYMBOL].component?.required ?? false;
108
105
  }
109
106
  /**
110
107
  * Should the listbox be required?
111
108
  */
112
109
  set required(value) {
113
- if (typeof value === "boolean" && value !== this.required) setListboxRequired(this.#state, value);
110
+ if (typeof value === "boolean" && value !== this.required) setListboxRequired(this[LISTBOX_SYMBOL], value);
114
111
  }
115
112
  /**
116
113
  * Selected options
117
114
  */
118
115
  get selected() {
119
- return this.#state.options.selected.slice();
116
+ return this[LISTBOX_SYMBOL].component?.options.selected.slice() ?? [];
120
117
  }
121
118
  /**
122
119
  * Validation message for the listbox
123
120
  */
124
121
  get validationMessage() {
125
- return this.#internals.validationMessage;
122
+ return this[LISTBOX_SYMBOL].form.internals.validationMessage;
126
123
  }
127
124
  /**
128
125
  * Validity state for the listbox
129
126
  */
130
127
  get validity() {
131
- return this.#internals.validity;
128
+ return this[LISTBOX_SYMBOL].form.internals.validity;
132
129
  }
133
130
  /**
134
131
  * Current value
135
132
  */
136
133
  get value() {
137
- return this.#state.values.current[0];
134
+ return this[LISTBOX_SYMBOL].component?.values.current[0] ?? "";
138
135
  }
139
136
  /**
140
137
  * Set the value
141
138
  */
142
139
  set value(value) {
143
- setListboxValue(this.#state, value);
140
+ setListboxValue(this[LISTBOX_SYMBOL], value);
144
141
  }
145
142
  /**
146
143
  * Current values
147
144
  */
148
145
  get values() {
149
- return this.#state.values.current.slice();
146
+ return this[LISTBOX_SYMBOL].component?.values.current.slice() ?? [];
150
147
  }
151
148
  /**
152
149
  * Set the values
153
150
  */
154
151
  set values(values) {
155
- setListboxValues(this.#state, values);
152
+ setListboxValues(this[LISTBOX_SYMBOL], values);
156
153
  }
157
154
  /**
158
155
  * Can the listbox be validated?
159
156
  */
160
157
  get willValidate() {
161
- return this.#internals.willValidate;
158
+ return this[LISTBOX_SYMBOL].form.internals.willValidate;
162
159
  }
163
160
  constructor() {
164
161
  super();
165
- this.#internals = this.attachInternals();
162
+ this[LISTBOX_SYMBOL] = {
163
+ component: null,
164
+ form: { internals: this.attachInternals() }
165
+ };
166
166
  }
167
167
  attributeChangedCallback(name, _, value) {
168
- if (this.#state == null) return;
168
+ const state = this[LISTBOX_SYMBOL];
169
+ if (state.component == null) return;
169
170
  switch (name) {
170
171
  case "required":
171
172
  this[name] = this.hasAttribute(name);
172
173
  break;
173
174
  case "max":
174
175
  case "min":
175
- setListboxLimit(name, this.#state, value);
176
+ setListboxLimit(name, state, value);
176
177
  break;
177
178
  case "value": this.value = value ?? "";
178
179
  }
@@ -183,33 +184,36 @@ var OuiListboxElement = class extends HTMLElement {
183
184
  * @returns `true` if the listbox is valid, otherwise `false`
184
185
  */
185
186
  checkValidity() {
186
- return this.#internals.checkValidity();
187
+ return this[LISTBOX_SYMBOL].form.internals.checkValidity();
187
188
  }
188
189
  /**
189
190
  * Clear all selected options
190
191
  */
191
192
  clear() {
192
- setListboxValues(this.#state, []);
193
+ setListboxValues(this[LISTBOX_SYMBOL], []);
193
194
  }
194
195
  connectedCallback() {
195
- if (this.#state == null) this.#initialize();
196
- else attachListbox(this.#state, listboxStates, onAttachListbox);
196
+ const state = this[LISTBOX_SYMBOL];
197
+ if (state.component == null) initializeListbox(this, state);
198
+ else attachListbox(state, listboxes, onAttachListbox);
197
199
  }
198
200
  disconnectedCallback() {
199
- if (this.#state != null) detachListbox(this.#state, listboxStates, onDetachListbox);
201
+ const state = this[LISTBOX_SYMBOL];
202
+ if (state.component != null) detachListbox(state, listboxes, onDetachListbox);
200
203
  }
201
204
  formDisabledCallback(disabled) {
202
205
  this.disabled = disabled;
203
206
  }
204
207
  formResetCallback() {
205
- setListboxValues(this.#state, this.#state.values.initial);
208
+ const state = this[LISTBOX_SYMBOL];
209
+ setListboxValues(state, state.component.values.initial);
206
210
  }
207
211
  formStateRestoreCallback(state, reason) {
208
212
  if (reason !== "restore") return;
209
213
  const parsed = typeof state === "string" ? parse(state) : void 0;
210
214
  if (!Array.isArray(parsed)) return;
211
- if (this.#state == null) this.#restored = parsed;
212
- else setListboxValues(this.#state, parsed);
215
+ if (this[LISTBOX_SYMBOL]?.component == null) this[LISTBOX_SYMBOL].form.restored = parsed;
216
+ else setListboxValues(this[LISTBOX_SYMBOL], parsed);
213
217
  }
214
218
  /**
215
219
  * Check if the listbox is valid and report any validation errors
@@ -217,7 +221,7 @@ var OuiListboxElement = class extends HTMLElement {
217
221
  * @returns `true` if the listbox is valid, otherwise `false`
218
222
  */
219
223
  reportValidity() {
220
- return this.#internals.reportValidity();
224
+ return this[LISTBOX_SYMBOL].form.internals.reportValidity();
221
225
  }
222
226
  /**
223
227
  * Set a custom validation message for the listbox
@@ -225,17 +229,11 @@ var OuiListboxElement = class extends HTMLElement {
225
229
  * @param message Validation message
226
230
  */
227
231
  setCustomValidity(message) {
228
- this.#internals.setValidity({ customError: message !== "" }, message, this);
232
+ this[LISTBOX_SYMBOL].form.internals.setValidity({ customError: message !== "" }, message, this);
229
233
  }
230
234
  setLocalizations(first, second) {
231
- updateListboxLocalizations(this.#state.localizations.global, this.#state.localizations.component, first, second);
232
- }
233
- #initialize() {
234
- this.#state = createListboxState(this, this.#internals);
235
- if (this.#restored != null) {
236
- setListboxValues(this.#state, this.#restored);
237
- this.#restored = void 0;
238
- }
235
+ const { localizations } = this[LISTBOX_SYMBOL].component;
236
+ updateListboxLocalizations(localizations.global, localizations.component, first, second);
239
237
  }
240
238
  };
241
239
  customElements.define(LISTBOX_TAGNAME, OuiListboxElement);
@@ -1,2 +1,2 @@
1
- import { n as setListboxLocalizations, r as updateListboxLocalizations, t as getListboxId } from "../misc.listbox-mZMuYOxg.mjs";
1
+ import { n as setListboxLocalizations, r as updateListboxLocalizations, t as getListboxId } from "../misc.listbox-CtoGvXQo.mjs";
2
2
  export { getListboxId, setListboxLocalizations, updateListboxLocalizations };
@@ -1,2 +1,2 @@
1
- import { n as setListboxLocalizations, r as updateListboxLocalizations, t as getListboxId } from "../misc.listbox-DKB-j0UK.mjs";
1
+ import { n as setListboxLocalizations, r as updateListboxLocalizations, t as getListboxId } from "../misc.listbox-CjfBUbHD.mjs";
2
2
  export { getListboxId, setListboxLocalizations, updateListboxLocalizations };
@@ -1,10 +1,9 @@
1
- import { t as OuiLocalizations } from "../l10n-Bn-7RcwR.mjs";
2
- import { l as OuiListboxState, o as OuiListboxLocalizations, u as OuiListboxStates } from "../listbox.model-BHPA7GM4.mjs";
3
- import { OuiListboxElement } from "./index.mjs";
1
+ import { c as OuiLocalizations } from "../l10n.model-D6a9frgl.mjs";
2
+ import { l as OuiListboxState, o as OuiListboxLocalizations } from "../listbox.model-CuBOj4qe.mjs";
4
3
  //#region src/js/listbox/state.listbox.d.ts
5
- export declare function createListboxState(element: OuiListboxElement, internals: ElementInternals): OuiListboxState;
4
+ export declare function initializeListbox(element: HTMLElement, state: OuiListboxState): void;
6
5
  export declare function onAttachListbox(state: OuiListboxState): void;
7
6
  export declare function onDetachListbox(state: OuiListboxState): void;
8
7
  export declare const listboxLocalizations: OuiLocalizations<OuiListboxLocalizations>;
9
- export declare const listboxStates: OuiListboxStates;
8
+ export declare const listboxes: Set<OuiListboxState>;
10
9
  //#endregion
@@ -1,2 +1,2 @@
1
- import { a as listboxLocalizations, c as onDetachListbox, i as createListboxState, o as listboxStates, s as onAttachListbox } from "../misc.listbox-DKB-j0UK.mjs";
2
- export { createListboxState, listboxLocalizations, listboxStates, onAttachListbox, onDetachListbox };
1
+ import { a as listboxLocalizations, c as onDetachListbox, i as initializeListbox, o as listboxes, s as onAttachListbox } from "../misc.listbox-CjfBUbHD.mjs";
2
+ export { initializeListbox, listboxLocalizations, listboxes, onAttachListbox, onDetachListbox };