@oscarpalmer/oui 0.39.0 → 0.41.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 (227) hide show
  1. package/README.md +1 -1
  2. package/dist/css/color-picker.css +80 -69
  3. package/dist/css/listbox.css +169 -0
  4. package/dist/js/color-picker/color-picker.constants.d.mts +2 -0
  5. package/dist/js/color-picker/{constants.color-picker.mjs → color-picker.constants.mjs} +7 -4
  6. package/dist/js/color-picker/{dom.color-picker.d.mts → color-picker.dom.d.mts} +2 -2
  7. package/dist/js/color-picker/{dom.color-picker.mjs → color-picker.dom.mjs} +33 -16
  8. package/dist/js/color-picker/{event.color-picker.d.mts → color-picker.event.d.mts} +3 -3
  9. package/dist/js/color-picker/color-picker.event.mjs +233 -0
  10. package/dist/js/color-picker/{form.color-picker.d.mts → color-picker.form.d.mts} +2 -2
  11. package/dist/js/color-picker/{form.color-picker.mjs → color-picker.form.mjs} +9 -8
  12. package/dist/js/color-picker/color-picker.misc.d.mts +2 -0
  13. package/dist/js/color-picker/color-picker.misc.mjs +104 -0
  14. package/dist/js/color-picker/color-picker.model.d.mts +2 -0
  15. package/dist/js/color-picker/{models.color-picker.mjs → color-picker.model.mjs} +1 -1
  16. package/dist/js/color-picker/{output.color-picker.d.mts → color-picker.output.d.mts} +2 -2
  17. package/dist/js/color-picker/{output.color-picker.mjs → color-picker.output.mjs} +19 -18
  18. package/dist/js/color-picker/color-picker.state.d.mts +8 -0
  19. package/dist/js/color-picker/color-picker.state.mjs +168 -0
  20. package/dist/js/color-picker/index.d.mts +172 -2
  21. package/dist/js/color-picker/index.mjs +66 -59
  22. package/dist/js/color-picker.constants-BZgXQr5o.d.mts +177 -0
  23. package/dist/js/color-picker.misc-BIS3R6jk.d.mts +31 -0
  24. package/dist/js/combobox/combobox.constants.d.mts +2 -0
  25. package/dist/js/combobox/{constants.combobox.mjs → combobox.constants.mjs} +21 -21
  26. package/dist/js/combobox/combobox.dom.d.mts +25 -0
  27. package/dist/js/combobox/{dom.combobox.mjs → combobox.dom.mjs} +51 -49
  28. package/dist/js/combobox/{event.combobox.d.mts → combobox.event.d.mts} +9 -9
  29. package/dist/js/combobox/{event.combobox.mjs → combobox.event.mjs} +1 -1
  30. package/dist/js/combobox/combobox.misc.d.mts +2 -0
  31. package/dist/js/combobox/combobox.misc.mjs +2 -0
  32. package/dist/js/combobox/combobox.model.d.mts +2 -0
  33. package/dist/js/combobox/combobox.state.d.mts +9 -0
  34. package/dist/js/combobox/combobox.state.mjs +2 -0
  35. package/dist/js/combobox/index.d.mts +152 -2
  36. package/dist/js/combobox/index.mjs +54 -55
  37. package/dist/js/combobox.constants-Hb3bqqQJ.d.mts +19 -0
  38. package/dist/js/combobox.misc-DRDFk6X8.d.mts +26 -0
  39. package/dist/js/combobox.model-gjEI2VqZ.d.mts +46 -0
  40. package/dist/js/{state.combobox-BWDFHwoi.mjs → combobox.state-AstCICiH.mjs} +109 -106
  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-HVzYWoDo.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-ncshL3Sa.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 +117 -138
  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-DpcPkP7c.d.mts +13 -0
  59. package/dist/js/{focus-trap.embedded-CjyFQYow.d.mts → focus-trap.model-CpltX5B5.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.d.mts +1 -1
  63. package/dist/js/internal/attributable.mjs +3 -2
  64. package/dist/js/internal/draggable/draggable.model.d.mts +2 -0
  65. package/dist/js/internal/draggable/draggable.model.mjs +37 -0
  66. package/dist/js/internal/draggable/index.d.mts +13 -0
  67. package/dist/js/internal/draggable/index.mjs +243 -0
  68. package/dist/js/internal/l10n/index.d.mts +5 -0
  69. package/dist/js/internal/l10n/index.mjs +147 -0
  70. package/dist/js/internal/l10n/l10n.model.d.mts +2 -0
  71. package/dist/js/internal/l10n/l10n.model.mjs +12 -0
  72. package/dist/js/internal/misc.d.mts +3 -2
  73. package/dist/js/internal/misc.mjs +4 -6
  74. package/dist/js/internal/navigable/index.d.mts +6 -0
  75. package/dist/js/internal/navigable/index.mjs +125 -0
  76. package/dist/js/internal/navigable/navigable.model.d.mts +2 -0
  77. package/dist/js/internal/navigable/navigable.model.mjs +18 -0
  78. package/dist/js/internal/option-list/option-list.constants.d.mts +8 -0
  79. package/dist/js/internal/option-list/option-list.constants.mjs +22 -0
  80. package/dist/js/internal/option-list/option-list.data.d.mts +21 -0
  81. package/dist/js/internal/option-list/option-list.data.mjs +2 -0
  82. package/dist/js/internal/option-list/option-list.dom.d.mts +18 -0
  83. package/dist/js/internal/option-list/option-list.dom.mjs +2 -0
  84. package/dist/js/internal/option-list/option-list.event.d.mts +6 -0
  85. package/dist/js/internal/option-list/option-list.event.mjs +66 -0
  86. package/dist/js/internal/option-list/option-list.form.d.mts +7 -0
  87. package/dist/js/internal/option-list/option-list.form.mjs +53 -0
  88. package/dist/js/internal/option-list/option-list.misc.d.mts +13 -0
  89. package/dist/js/internal/option-list/option-list.misc.mjs +2 -0
  90. package/dist/js/internal/option-list/option-list.model.d.mts +2 -0
  91. package/dist/js/internal/option-list/option-list.state.d.mts +8 -0
  92. package/dist/js/internal/option-list/option-list.state.mjs +39 -0
  93. package/dist/js/l10n/index.d.mts +3 -0
  94. package/dist/js/l10n/index.mjs +2 -0
  95. package/dist/js/l10n.model-D1E1u35L.d.mts +54 -0
  96. package/dist/js/listbox/index.d.mts +9 -18
  97. package/dist/js/listbox/index.mjs +49 -52
  98. package/dist/js/listbox/listbox.constants.d.mts +2 -0
  99. package/dist/js/listbox/{constants.listbox.mjs → listbox.constants.mjs} +11 -15
  100. package/dist/js/listbox/listbox.dom.d.mts +5 -0
  101. package/dist/js/listbox/listbox.dom.mjs +2 -0
  102. package/dist/js/listbox/listbox.event.d.mts +9 -0
  103. package/dist/js/listbox/listbox.event.mjs +2 -0
  104. package/dist/js/listbox/listbox.misc.d.mts +2 -0
  105. package/dist/js/listbox/listbox.misc.mjs +2 -0
  106. package/dist/js/listbox/listbox.model.d.mts +2 -0
  107. package/dist/js/listbox/listbox.model.mjs +1 -0
  108. package/dist/js/listbox/listbox.state.d.mts +9 -0
  109. package/dist/js/listbox/listbox.state.mjs +2 -0
  110. package/dist/js/listbox.constants-DOBMwKup.d.mts +9 -0
  111. package/dist/js/listbox.misc-DwfB4Mu_.d.mts +24 -0
  112. package/dist/js/listbox.model-C0MYWXZe.d.mts +20 -0
  113. package/dist/js/listbox.state-BrN296BM.mjs +240 -0
  114. package/dist/js/menu/index.mjs +171 -0
  115. package/dist/js/menu/menu.model.d.mts +33 -0
  116. package/dist/js/menu/menu.model.mjs +15 -0
  117. package/dist/js/movable/movable.embedded.d.mts +2 -2
  118. package/dist/js/movable/movable.embedded.mjs +77 -86
  119. package/dist/js/movable/movable.model.d.mts +2 -0
  120. package/dist/js/movable/movable.model.mjs +12 -0
  121. package/dist/js/movable/movable.standalone.d.mts +2 -1
  122. package/dist/js/movable.embedded-C1bDTLGs.d.mts +11 -0
  123. package/dist/js/movable.model-D9nnPWKk.d.mts +186 -0
  124. package/dist/js/navigable.model-BqoR6iBv.d.mts +44 -0
  125. package/dist/js/option-list.data-CgMyUwPc.mjs +441 -0
  126. package/dist/js/option-list.model-CCPUlPeX.d.mts +169 -0
  127. package/dist/js/popover/index.d.mts +12 -0
  128. package/dist/js/{popover.mjs → popover/index.mjs} +41 -51
  129. package/dist/js/popover/popover.model.d.mts +2 -0
  130. package/dist/js/popover/popover.model.mjs +12 -0
  131. package/dist/js/popover.model-DiLdz0Hc.d.mts +38 -0
  132. package/dist/js/resizable/resizable.embedded.d.mts +2 -2
  133. package/dist/js/resizable/resizable.embedded.mjs +43 -58
  134. package/dist/js/resizable/resizable.model.d.mts +2 -0
  135. package/dist/js/resizable/resizable.model.mjs +21 -0
  136. package/dist/js/resizable/resizable.standalone.d.mts +2 -1
  137. package/dist/js/resizable.embedded-BemH-7Re.d.mts +11 -0
  138. package/dist/js/resizable.model-YEtcC9li.d.mts +46 -0
  139. package/dist/js/sortable/sortable.embedded.d.mts +2 -2
  140. package/dist/js/sortable/sortable.embedded.mjs +111 -116
  141. package/dist/js/sortable/sortable.model.d.mts +2 -0
  142. package/dist/js/sortable/sortable.model.mjs +24 -0
  143. package/dist/js/sortable/sortable.standalone.d.mts +2 -1
  144. package/dist/js/sortable.embedded-CrEGff9k.d.mts +11 -0
  145. package/dist/js/{splitter.d.mts → splitter/index.d.mts} +6 -4
  146. package/dist/js/{splitter.mjs → splitter/index.mjs} +90 -128
  147. package/dist/js/splitter/splitter.model.d.mts +2 -0
  148. package/dist/js/splitter/splitter.model.mjs +37 -0
  149. package/dist/js/splitter.model-C24W6eZ7.d.mts +57 -0
  150. package/dist/js/{tabs.d.mts → tabs/index.d.mts} +8 -8
  151. package/dist/js/{tabs.mjs → tabs/index.mjs} +58 -58
  152. package/dist/js/tabs/tabs.model.d.mts +2 -0
  153. package/dist/js/tabs/tabs.model.mjs +18 -0
  154. package/dist/js/tabs.model-BHPy7fPo.d.mts +40 -0
  155. package/dist/js/toolbar/index.mjs +27 -0
  156. package/dist/js/toolbar/toolbar.model.d.mts +11 -0
  157. package/dist/js/toolbar/toolbar.model.mjs +7 -0
  158. package/dist/js/tooltip/index.d.mts +19 -0
  159. package/dist/js/{tooltip.mjs → tooltip/index.mjs} +61 -86
  160. package/dist/js/tooltip/tooltip.model.d.mts +2 -0
  161. package/dist/js/tooltip/tooltip.model.mjs +15 -0
  162. package/dist/js/tooltip.model-BpNStw5z.d.mts +37 -0
  163. package/package.json +30 -24
  164. package/dist/js/color-picker/constants.color-picker.d.mts +0 -2
  165. package/dist/js/color-picker/event.color-picker.mjs +0 -2
  166. package/dist/js/color-picker/misc.color-picker.d.mts +0 -2
  167. package/dist/js/color-picker/misc.color-picker.mjs +0 -2
  168. package/dist/js/color-picker/models.color-picker.d.mts +0 -2
  169. package/dist/js/color-picker/state.color-picker.d.mts +0 -8
  170. package/dist/js/color-picker/state.color-picker.mjs +0 -2
  171. package/dist/js/combobox/constants.combobox.d.mts +0 -2
  172. package/dist/js/combobox/dom.combobox.d.mts +0 -26
  173. package/dist/js/combobox/misc.combobox.d.mts +0 -2
  174. package/dist/js/combobox/misc.combobox.mjs +0 -2
  175. package/dist/js/combobox/models.combobox.d.mts +0 -43
  176. package/dist/js/combobox/state.combobox.d.mts +0 -11
  177. package/dist/js/combobox/state.combobox.mjs +0 -2
  178. package/dist/js/constants.color-picker-B-gFjL8m.d.mts +0 -364
  179. package/dist/js/constants.combobox-8EMRmv09.d.mts +0 -18
  180. package/dist/js/constants.listbox-DGnX32kv.d.mts +0 -8
  181. package/dist/js/dialog.d.mts +0 -47
  182. package/dist/js/dialog.mjs +0 -131
  183. package/dist/js/draggable-B5-70SZm.d.mts +0 -155
  184. package/dist/js/event.color-picker-BEpq0Adu.mjs +0 -485
  185. package/dist/js/index-C5D3-oiI.d.mts +0 -177
  186. package/dist/js/internal/draggable.d.mts +0 -2
  187. package/dist/js/internal/draggable.mjs +0 -265
  188. package/dist/js/internal/listbox/listbox.constants.d.mts +0 -8
  189. package/dist/js/internal/listbox/listbox.constants.mjs +0 -22
  190. package/dist/js/internal/listbox/listbox.data.d.mts +0 -19
  191. package/dist/js/internal/listbox/listbox.data.mjs +0 -2
  192. package/dist/js/internal/listbox/listbox.dom.d.mts +0 -65
  193. package/dist/js/internal/listbox/listbox.dom.mjs +0 -2
  194. package/dist/js/internal/listbox/listbox.event.d.mts +0 -4
  195. package/dist/js/internal/listbox/listbox.event.mjs +0 -63
  196. package/dist/js/internal/listbox/listbox.form.d.mts +0 -5
  197. package/dist/js/internal/listbox/listbox.form.mjs +0 -53
  198. package/dist/js/internal/listbox/listbox.misc.d.mts +0 -11
  199. package/dist/js/internal/listbox/listbox.misc.mjs +0 -2
  200. package/dist/js/internal/listbox/listbox.model.d.mts +0 -2
  201. package/dist/js/internal/listbox/listbox.state.d.mts +0 -6
  202. package/dist/js/internal/listbox/listbox.state.mjs +0 -40
  203. package/dist/js/internal/navigable.d.mts +0 -36
  204. package/dist/js/internal/navigable.mjs +0 -135
  205. package/dist/js/l10n-Bn-7RcwR.d.mts +0 -20
  206. package/dist/js/l10n.d.mts +0 -2
  207. package/dist/js/l10n.mjs +0 -80
  208. package/dist/js/listbox/constants.listbox.d.mts +0 -2
  209. package/dist/js/listbox/event.listbox.d.mts +0 -7
  210. package/dist/js/listbox/event.listbox.mjs +0 -2
  211. package/dist/js/listbox/misc.listbox.d.mts +0 -2
  212. package/dist/js/listbox/misc.listbox.mjs +0 -2
  213. package/dist/js/listbox/state.listbox.d.mts +0 -10
  214. package/dist/js/listbox/state.listbox.mjs +0 -2
  215. package/dist/js/listbox.data-DQ7-x2uY.mjs +0 -425
  216. package/dist/js/listbox.model-BHPA7GM4.d.mts +0 -125
  217. package/dist/js/menu.mjs +0 -172
  218. package/dist/js/misc.listbox-DKB-j0UK.mjs +0 -196
  219. package/dist/js/misc.listbox-mZMuYOxg.d.mts +0 -20
  220. package/dist/js/popover.d.mts +0 -38
  221. package/dist/js/resizable.embedded-dvhdfQgt.d.mts +0 -34
  222. package/dist/js/toolbar.mjs +0 -31
  223. package/dist/js/tooltip.d.mts +0 -45
  224. /package/dist/js/combobox/{models.combobox.mjs → combobox.model.mjs} +0 -0
  225. /package/dist/js/internal/{listbox/listbox.model.mjs → option-list/option-list.model.mjs} +0 -0
  226. /package/dist/js/{menu.d.mts → menu/index.d.mts} +0 -0
  227. /package/dist/js/{toolbar.d.mts → toolbar/index.d.mts} +0 -0
@@ -1,135 +0,0 @@
1
- import { getAria, setAria, setRole } from "@oscarpalmer/toretto/aria";
2
- import { on } from "@oscarpalmer/toretto/event";
3
- import { getAttribute } from "@oscarpalmer/toretto/attribute";
4
- import { isHTMLOrSVGElement } from "@oscarpalmer/toretto/is";
5
- import { clamp } from "@oscarpalmer/atoms/number";
6
- import { findAncestor } from "@oscarpalmer/toretto/find";
7
- //#region src/js/internal/navigable.ts
8
- var OuiNavigable = class {
9
- active = { index: 0 };
10
- element;
11
- listeners;
12
- options;
13
- orientation;
14
- constructor(element, options) {
15
- this.element = element;
16
- this.options = options;
17
- this.listeners = [
18
- on(element, "click", (event) => {
19
- onClick(this, event);
20
- }, { passive: false }),
21
- on(element, "focusin", (event) => {
22
- onFocusin(this, event);
23
- }),
24
- on(element, "keydown", (event) => {
25
- onKeydown(this, event);
26
- }, { passive: false })
27
- ];
28
- this.orientation = options?.orientation ?? getNavigableOrientation(element, options.vertical);
29
- setAria(element, "orientation", this.orientation);
30
- if (options.role != null) setRole(element, options.role);
31
- }
32
- destroy() {
33
- const listeners = this.listeners.splice(0);
34
- for (const listener of listeners) listener();
35
- this.active.element = void 0;
36
- this.element = void 0;
37
- }
38
- navigate(index, focus) {
39
- const items = getItems(this.element, this.options.selector);
40
- if (index >= 0 && index < items.length) onNavigate(this, index, items, focus ?? false);
41
- }
42
- };
43
- function getItems(container, selector) {
44
- return [...container.querySelectorAll(selector)].filter(isValidItem);
45
- }
46
- function getNavigable(element, options) {
47
- return new OuiNavigable(element, options);
48
- }
49
- function getNavigableOrientation(element, vertical, aria) {
50
- const attribute = aria ?? true ? getAria(element, "orientation") : getAttribute(element, "orientation");
51
- return ORIENTATIONS.has(attribute) ? attribute : vertical ? ORIENTATION_VERTICAL : ORIENTATION_HORIZONTAL;
52
- }
53
- function isValidItem(element) {
54
- return "disabled" in element ? element.disabled !== true : true;
55
- }
56
- function onClick(navigable, event) {
57
- const item = findAncestor(event, navigable.options.selector);
58
- const items = getItems(navigable.element, navigable.options.selector);
59
- const index = items.indexOf(item);
60
- if (index === -1) return;
61
- if (index !== navigable.active.index) onNavigate(navigable, index, items, false);
62
- navigable.options.onActivate?.(navigable);
63
- item.focus();
64
- }
65
- function onNavigate(navigable, index, items, focus) {
66
- navigable.active.element = items[index];
67
- navigable.active.index = index;
68
- updateNavigableFocus(navigable, focus, items);
69
- navigable.options.onNavigation?.(navigable);
70
- }
71
- function onFocusin(navigable, event) {
72
- const item = findAncestor(event, navigable.options.selector);
73
- if (!isHTMLOrSVGElement(item) || !isValidItem(item)) return;
74
- const items = getItems(navigable.element, navigable.options.selector);
75
- const index = items.indexOf(item);
76
- if (index === -1) return;
77
- navigable.active.element = item;
78
- navigable.active.index = index;
79
- updateNavigableFocus(navigable, false, items);
80
- }
81
- function onKeydown(navigable, event) {
82
- const escaped = event.key === "Escape";
83
- const stopPropagation = navigable.options.onShouldDeactivate?.(event, navigable);
84
- if (escaped || stopPropagation != null) {
85
- if (escaped || stopPropagation) event.stopPropagation();
86
- navigable.options.onDeactivate?.(event, navigable);
87
- return;
88
- }
89
- if (!KEYS_ALL.has(event.key)) return;
90
- const mustActivate = KEYS_ACTIVATE.has(event.key);
91
- const shouldActivate = navigable.options.onShouldActivate?.(event, navigable) === true;
92
- if (mustActivate || shouldActivate || navigable.options.onPreventNavigation?.(event, navigable) === true) event.stopPropagation();
93
- if (mustActivate || shouldActivate) {
94
- navigable.options.onActivate?.(navigable);
95
- return;
96
- }
97
- const items = getItems(navigable.element, navigable.options.selector);
98
- const { length } = items;
99
- if (length === 0) return;
100
- event.preventDefault();
101
- let index;
102
- if (KEYS_ABSOLUTE.has(event.key)) index = event.key === "Home" ? 0 : items.length - 1;
103
- else {
104
- const direction = NAVIGABLE_KEYS_HORIZONTAL.has(event.key) ? ORIENTATION_HORIZONTAL : ORIENTATION_VERTICAL;
105
- if (navigable.orientation === direction) {
106
- if (navigable.active.element instanceof HTMLSelectElement) event.preventDefault();
107
- index = clamp(navigable.active.index + (KEYS_NEXT.has(event.key) ? 1 : -1), 0, length - 1, true);
108
- }
109
- }
110
- if (index != null && index !== navigable.active.index) onNavigate(navigable, index, items, true);
111
- }
112
- function updateNavigableFocus(navigable, focus, items) {
113
- const updated = items ?? getItems(navigable.element, navigable.options.selector);
114
- const { length } = updated;
115
- if (length === 0) return;
116
- for (let index = 0; index < length; index += 1) updated[index].tabIndex = index === navigable.active.index ? 0 : -1;
117
- navigable.active.element ??= updated[navigable.active.index];
118
- if (focus) navigable.active.element?.focus();
119
- }
120
- const KEYS_ABSOLUTE = /* @__PURE__ */ new Set(["End", "Home"]);
121
- const KEYS_ACTIVATE = /* @__PURE__ */ new Set(["Enter", " "]);
122
- const NAVIGABLE_KEYS_HORIZONTAL = /* @__PURE__ */ new Set(["ArrowRight", "ArrowLeft"]);
123
- const NAVIGABLE_KEYS_VERTICAL = /* @__PURE__ */ new Set(["ArrowDown", "ArrowUp"]);
124
- const KEYS_ALL = /* @__PURE__ */ new Set([
125
- ...KEYS_ABSOLUTE,
126
- ...KEYS_ACTIVATE,
127
- ...NAVIGABLE_KEYS_HORIZONTAL,
128
- ...NAVIGABLE_KEYS_VERTICAL
129
- ]);
130
- const KEYS_NEXT = /* @__PURE__ */ new Set(["ArrowDown", "ArrowRight"]);
131
- const ORIENTATION_HORIZONTAL = "horizontal";
132
- const ORIENTATION_VERTICAL = "vertical";
133
- const ORIENTATIONS = /* @__PURE__ */ new Set([ORIENTATION_HORIZONTAL, ORIENTATION_VERTICAL]);
134
- //#endregion
135
- export { NAVIGABLE_KEYS_HORIZONTAL, NAVIGABLE_KEYS_VERTICAL, OuiNavigable, getNavigable, getNavigableOrientation, updateNavigableFocus };
@@ -1,20 +0,0 @@
1
- import { GenericCallback } from "@oscarpalmer/atoms/models";
2
- //#region src/js/l10n.d.ts
3
- type LocalizationParameters<Localization> = Localization extends GenericCallback ? Parameters<Localization> : never;
4
- declare class OuiLocalizations<Localizations extends OuiLocalizationsValues> {
5
- readonly defaults: Localizations;
6
- readonly keys: Set<keyof Localizations>;
7
- readonly values: Record<string, Partial<Localizations>>;
8
- constructor(defaults: Localizations);
9
- get<Key extends keyof Localizations>(element: Element, key: Key, localizations: Record<string, Partial<Localizations>>): string | GenericCallback;
10
- set(language: string, localizations: Partial<Localizations>): void;
11
- set(localizations: Record<string, Partial<Localizations>>): void;
12
- }
13
- type OuiLocalizationsValues = Record<string, string | GenericCallback>;
14
- declare function getLanguage(element: Element): string;
15
- declare function getLocalization<Localizations extends OuiLocalizationsValues, Key extends keyof Localizations>(localizations: OuiLocalizations<Localizations>, element: Element, key: Key, value: Record<string, Partial<Localizations>>): Localizations[Key] | GenericCallback;
16
- declare function getLocalizations<Localizations extends OuiLocalizationsValues>(defaults: Localizations): OuiLocalizations<Localizations>;
17
- declare function localize<Localizations extends OuiLocalizationsValues, Key extends keyof Localizations, Localization extends Localizations[Key]>(localization: Localization, data: Record<string, unknown>, parameters: LocalizationParameters<Localization>): string;
18
- declare function updateLocalizations<Localizations extends OuiLocalizationsValues>(instance: OuiLocalizations<Localizations>, values: Record<string, Partial<Localizations>>, destination: Record<string, Partial<Localizations>>, onAfter?: () => void): void;
19
- //#endregion
20
- export { getLocalizations as a, getLocalization as i, OuiLocalizationsValues as n, localize as o, getLanguage as r, updateLocalizations as s, OuiLocalizations as t };
@@ -1,2 +0,0 @@
1
- import { a as getLocalizations, i as getLocalization, n as OuiLocalizationsValues, o as localize, r as getLanguage, s as updateLocalizations, t as OuiLocalizations } from "./l10n-Bn-7RcwR.mjs";
2
- export { OuiLocalizations, OuiLocalizationsValues, getLanguage, getLocalization, getLocalizations, localize, updateLocalizations };
package/dist/js/l10n.mjs DELETED
@@ -1,80 +0,0 @@
1
- import { getString } from "@oscarpalmer/atoms/string";
2
- //#region src/js/l10n.ts
3
- var OuiLocalizations = class {
4
- defaults;
5
- keys;
6
- values = {};
7
- constructor(defaults) {
8
- this.defaults = defaults;
9
- this.keys = new Set(Object.keys(defaults));
10
- }
11
- get(element, key, localizations) {
12
- return getLocalization(this, element, key, localizations);
13
- }
14
- set(first, second) {
15
- updateLocalizations(this, typeof first === "string" ? { [first]: second } : first, this.values);
16
- }
17
- };
18
- function getLanguage(element) {
19
- return (element.closest("[lang]")?.getAttribute("lang") ?? document.documentElement.lang).toLowerCase();
20
- }
21
- function getLocalization(localizations, element, key, value) {
22
- const language = getLanguage(element);
23
- const values = [value, localizations.values];
24
- const { length } = values;
25
- let localization;
26
- let shortLanguage;
27
- for (let index = 0; index < length; index += 1) {
28
- const value = values[index];
29
- localization = value?.[language]?.[key];
30
- if (localization != null) break;
31
- shortLanguage ??= language.split("-")[0];
32
- if (shortLanguage === language) continue;
33
- localization = value?.[shortLanguage]?.[key];
34
- if (localization != null) break;
35
- }
36
- return localization ?? localizations.defaults[key];
37
- }
38
- function getLocalizations(defaults) {
39
- return new OuiLocalizations(defaults);
40
- }
41
- function localize(localization, data, parameters) {
42
- if (typeof localization === "function") return localization(...parameters);
43
- const keys = Object.keys(data);
44
- const { length } = keys;
45
- let localized = localization;
46
- for (let index = 0; index < length; index += 1) {
47
- const key = keys[index];
48
- const value = data[key];
49
- localized = localized.replaceAll(`{${key}}`, getString(value));
50
- }
51
- return localized;
52
- }
53
- function updateLocalizations(instance, values, destination, onAfter) {
54
- if (typeof values !== "object" || values == null) return;
55
- const localizations = destination ?? instance.values;
56
- const languages = Object.keys(values);
57
- const languagesLength = languages.length;
58
- let updated = false;
59
- for (let languagesIndex = 0; languagesIndex < languagesLength; languagesIndex += 1) {
60
- const language = languages[languagesIndex];
61
- const languageValue = values[language];
62
- if (typeof languageValue !== "object" || languageValue == null) continue;
63
- const normalizedLanguage = language.toLowerCase();
64
- localizations[normalizedLanguage] ??= {};
65
- const keys = Object.keys(languageValue);
66
- const keysLength = keys.length;
67
- for (let keysIndex = 0; keysIndex < keysLength; keysIndex += 1) {
68
- const key = keys[keysIndex];
69
- const keyValue = languageValue[key];
70
- const normalizedKey = key.toLowerCase();
71
- if (instance.keys.has(normalizedKey) && (typeof keyValue === "string" || typeof keyValue === "function")) {
72
- updated = true;
73
- localizations[normalizedLanguage][normalizedKey] = keyValue;
74
- }
75
- }
76
- }
77
- if (updated && typeof onAfter === "function") onAfter();
78
- }
79
- //#endregion
80
- export { OuiLocalizations, getLanguage, getLocalization, getLocalizations, localize, updateLocalizations };
@@ -1,2 +0,0 @@
1
- import { i as LISTBOX_TAGNAME, n as LISTBOX_MESSAGES, r as LISTBOX_SELECTORS, t as LISTBOX_ATTRIBUTES } from "../constants.listbox-DGnX32kv.mjs";
2
- export { LISTBOX_ATTRIBUTES, LISTBOX_MESSAGES, LISTBOX_SELECTORS, LISTBOX_TAGNAME };
@@ -1,7 +0,0 @@
1
- import { c as OuiListboxPreview, l as OuiListboxState } from "../listbox.model-BHPA7GM4.mjs";
2
- //#region src/js/listbox/event.listbox.d.ts
3
- export declare function onListboxEnter(state: OuiListboxState): void;
4
- export declare function onListboxFilter(preview: OuiListboxPreview, state: OuiListboxState, _: boolean, active?: HTMLElement): void;
5
- export declare function onListboxNavigation(preview: OuiListboxPreview, state: OuiListboxState, active?: HTMLElement): void;
6
- export declare function onListboxToggle(state: OuiListboxState): void;
7
- //#endregion
@@ -1,2 +0,0 @@
1
- import { d as onListboxNavigation, f as onListboxToggle, l as onListboxEnter, u as onListboxFilter } from "../misc.listbox-DKB-j0UK.mjs";
2
- export { onListboxEnter, onListboxFilter, onListboxNavigation, onListboxToggle };
@@ -1,2 +0,0 @@
1
- import { n as setListboxLocalizations, r as updateListboxLocalizations, t as getListboxId } from "../misc.listbox-mZMuYOxg.mjs";
2
- export { getListboxId, setListboxLocalizations, updateListboxLocalizations };
@@ -1,2 +0,0 @@
1
- import { n as setListboxLocalizations, r as updateListboxLocalizations, t as getListboxId } from "../misc.listbox-DKB-j0UK.mjs";
2
- export { getListboxId, setListboxLocalizations, updateListboxLocalizations };
@@ -1,10 +0,0 @@
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";
4
- //#region src/js/listbox/state.listbox.d.ts
5
- export declare function createListboxState(element: OuiListboxElement, internals: ElementInternals): OuiListboxState;
6
- export declare function onAttachListbox(state: OuiListboxState): void;
7
- export declare function onDetachListbox(state: OuiListboxState): void;
8
- export declare const listboxLocalizations: OuiLocalizations<OuiListboxLocalizations>;
9
- export declare const listboxStates: OuiListboxStates;
10
- //#endregion
@@ -1,2 +0,0 @@
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 };