@oscarpalmer/oui 0.38.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 (264) hide show
  1. package/README.md +1 -1
  2. package/dist/css/badge.css +11 -8
  3. package/dist/css/button.css +106 -14
  4. package/dist/css/color-picker.css +555 -73
  5. package/dist/css/color.css +86 -86
  6. package/dist/css/combobox.css +98 -4
  7. package/dist/css/content.css +7 -6
  8. package/dist/css/floatable.css +1 -3
  9. package/dist/css/form.css +99 -6
  10. package/dist/css/icon.css +99 -0
  11. package/dist/css/listbox.css +3 -0
  12. package/dist/css/message.css +4 -3
  13. package/dist/css/mixins/button.mixins.css +1 -0
  14. package/dist/css/reset.css +1 -1
  15. package/dist/css/tabs.css +95 -3
  16. package/dist/css/typography.css +90 -0
  17. package/dist/js/color-picker/color-picker.constants.d.mts +2 -0
  18. package/dist/js/color-picker/color-picker.constants.mjs +60 -0
  19. package/dist/js/color-picker/color-picker.dom.d.mts +8 -0
  20. package/dist/js/color-picker/color-picker.dom.mjs +191 -0
  21. package/dist/js/color-picker/color-picker.event.d.mts +9 -0
  22. package/dist/js/color-picker/color-picker.event.mjs +2 -0
  23. package/dist/js/color-picker/color-picker.form.d.mts +5 -0
  24. package/dist/js/color-picker/color-picker.form.mjs +27 -0
  25. package/dist/js/color-picker/color-picker.misc.d.mts +2 -0
  26. package/dist/js/color-picker/color-picker.misc.mjs +2 -0
  27. package/dist/js/color-picker/color-picker.model.d.mts +2 -0
  28. package/dist/js/color-picker/color-picker.model.mjs +24 -0
  29. package/dist/js/color-picker/color-picker.output.d.mts +8 -0
  30. package/dist/js/color-picker/color-picker.output.mjs +235 -0
  31. package/dist/js/color-picker/color-picker.state.d.mts +8 -0
  32. package/dist/js/color-picker/color-picker.state.mjs +2 -0
  33. package/dist/js/{color-picker.d.mts → color-picker/index.d.mts} +10 -43
  34. package/dist/js/color-picker/index.mjs +305 -0
  35. package/dist/js/color-picker.constants-D1mxw_Le.d.mts +179 -0
  36. package/dist/js/color-picker.event-Cksj5TvS.mjs +500 -0
  37. package/dist/js/color-picker.misc-CtsXGrOe.d.mts +27 -0
  38. package/dist/js/combobox/combobox.constants.d.mts +2 -0
  39. package/dist/js/combobox/{constants.combobox.mjs → combobox.constants.mjs} +21 -21
  40. package/dist/js/combobox/combobox.dom.d.mts +26 -0
  41. package/dist/js/combobox/{dom.combobox.mjs → combobox.dom.mjs} +44 -37
  42. package/dist/js/combobox/combobox.event.d.mts +22 -0
  43. package/dist/js/combobox/{event.combobox.mjs → combobox.event.mjs} +1 -1
  44. package/dist/js/combobox/combobox.misc.d.mts +2 -0
  45. package/dist/js/combobox/{misc.combobox.mjs → combobox.misc.mjs} +1 -1
  46. package/dist/js/combobox/combobox.model.d.mts +2 -0
  47. package/dist/js/combobox/combobox.state.d.mts +10 -0
  48. package/dist/js/combobox/combobox.state.mjs +2 -0
  49. package/dist/js/combobox/index.d.mts +163 -2
  50. package/dist/js/combobox/index.mjs +53 -52
  51. package/dist/js/combobox.constants-DZVkMP5g.d.mts +19 -0
  52. package/dist/js/combobox.misc-C1tPZZDi.d.mts +22 -0
  53. package/dist/js/{combobox/models.combobox.d.mts → combobox.model-oDV06XCN.d.mts} +6 -6
  54. package/dist/js/{state.combobox-Qm3FWzYW.mjs → combobox.state-BfJ3Hxg8.mjs} +96 -82
  55. package/dist/js/constants.listbox-C5Ap6Ag_.d.mts +9 -0
  56. package/dist/js/dialog/dialog.model.d.mts +2 -0
  57. package/dist/js/dialog/dialog.model.mjs +11 -0
  58. package/dist/js/dialog/index.d.mts +12 -0
  59. package/dist/js/dialog/index.mjs +123 -0
  60. package/dist/js/dialog.model-DX2mndMh.d.mts +45 -0
  61. package/dist/js/floatable/floatable.embedded.d.mts +2 -2
  62. package/dist/js/floatable/floatable.embedded.mjs +64 -92
  63. package/dist/js/floatable/floatable.model.d.mts +2 -0
  64. package/dist/js/floatable/floatable.model.mjs +23 -0
  65. package/dist/js/floatable/floatable.standalone.d.mts +2 -1
  66. package/dist/js/floatable.embedded-MeTyXjFn.d.mts +17 -0
  67. package/dist/js/floatable.model-DXsQgoU7.d.mts +62 -0
  68. package/dist/js/focus-trap/focus-trap.embedded.d.mts +2 -2
  69. package/dist/js/focus-trap/focus-trap.embedded.mjs +112 -134
  70. package/dist/js/focus-trap/focus-trap.model.d.mts +2 -0
  71. package/dist/js/focus-trap/focus-trap.model.mjs +15 -0
  72. package/dist/js/focus-trap/focus-trap.standalone.d.mts +2 -1
  73. package/dist/js/focus-trap.embedded-DIU05m1z.d.mts +13 -0
  74. package/dist/js/{focus-trap.embedded-DR8NpZfr.d.mts → focus-trap.model-BeX6UYlw.d.mts} +16 -18
  75. package/dist/js/index.d.mts +26 -14
  76. package/dist/js/index.mjs +18 -15
  77. package/dist/js/internal/attributable.d.mts +2 -3
  78. package/dist/js/internal/attributable.mjs +3 -2
  79. package/dist/js/internal/draggable/draggable.model.d.mts +2 -0
  80. package/dist/js/internal/draggable/draggable.model.mjs +37 -0
  81. package/dist/js/internal/draggable/index.d.mts +13 -0
  82. package/dist/js/internal/{draggable.mjs → draggable/index.mjs} +83 -114
  83. package/dist/js/internal/listbox/listbox.constants.d.mts +7 -10
  84. package/dist/js/internal/listbox/listbox.constants.mjs +15 -16
  85. package/dist/js/internal/listbox/listbox.data.d.mts +9 -10
  86. package/dist/js/internal/listbox/listbox.data.mjs +1 -1
  87. package/dist/js/internal/listbox/listbox.dom.d.mts +19 -20
  88. package/dist/js/internal/listbox/listbox.dom.mjs +1 -1
  89. package/dist/js/internal/listbox/listbox.event.d.mts +3 -4
  90. package/dist/js/internal/listbox/listbox.event.mjs +23 -20
  91. package/dist/js/internal/listbox/listbox.form.d.mts +4 -5
  92. package/dist/js/internal/listbox/listbox.form.mjs +15 -12
  93. package/dist/js/internal/listbox/listbox.misc.d.mts +10 -11
  94. package/dist/js/internal/listbox/listbox.misc.mjs +1 -1
  95. package/dist/js/internal/listbox/listbox.model.d.mts +2 -2
  96. package/dist/js/internal/listbox/listbox.state.d.mts +5 -6
  97. package/dist/js/internal/listbox/listbox.state.mjs +19 -20
  98. package/dist/js/internal/misc.d.mts +5 -4
  99. package/dist/js/internal/misc.mjs +7 -1
  100. package/dist/js/internal/navigable/index.d.mts +6 -0
  101. package/dist/js/internal/navigable/index.mjs +125 -0
  102. package/dist/js/internal/navigable/navigable.model.d.mts +2 -0
  103. package/dist/js/internal/navigable/navigable.model.mjs +18 -0
  104. package/dist/js/l10n/index.d.mts +9 -0
  105. package/dist/js/{l10n.mjs → l10n/index.mjs} +50 -23
  106. package/dist/js/l10n/l10n.model.d.mts +2 -0
  107. package/dist/js/l10n/l10n.model.mjs +9 -0
  108. package/dist/js/l10n.model-D6a9frgl.d.mts +26 -0
  109. package/dist/js/listbox/constants.listbox.d.mts +2 -2
  110. package/dist/js/listbox/constants.listbox.mjs +10 -14
  111. package/dist/js/listbox/event.listbox.d.mts +6 -7
  112. package/dist/js/listbox/event.listbox.mjs +47 -1
  113. package/dist/js/listbox/index.d.mts +8 -6
  114. package/dist/js/listbox/index.mjs +47 -49
  115. package/dist/js/listbox/misc.listbox.d.mts +1 -1
  116. package/dist/js/listbox/misc.listbox.mjs +1 -1
  117. package/dist/js/listbox/state.listbox.d.mts +8 -10
  118. package/dist/js/listbox/state.listbox.mjs +2 -2
  119. package/dist/js/{listbox.data-C7CRa5Ya.mjs → listbox.data-BQyZGKgr.mjs} +83 -66
  120. package/dist/js/{listbox.model-CRReGOmu.d.mts → listbox.model-CuBOj4qe.d.mts} +15 -11
  121. package/dist/js/menu/index.mjs +167 -0
  122. package/dist/js/menu/menu.model.d.mts +33 -0
  123. package/dist/js/menu/menu.model.mjs +15 -0
  124. package/dist/js/{misc.listbox-Cyz2CRDy.mjs → misc.listbox-CjfBUbHD.mjs} +27 -69
  125. package/dist/js/{misc.listbox-gnoJhrTr.d.mts → misc.listbox-CtoGvXQo.d.mts} +2 -2
  126. package/dist/js/movable/movable.embedded.d.mts +2 -2
  127. package/dist/js/movable/movable.embedded.mjs +60 -72
  128. package/dist/js/movable/movable.model.d.mts +2 -0
  129. package/dist/js/movable/movable.model.mjs +12 -0
  130. package/dist/js/movable/movable.standalone.d.mts +2 -1
  131. package/dist/js/movable.embedded-DoyXLegc.d.mts +11 -0
  132. package/dist/js/movable.model-BHaK_mKw.d.mts +186 -0
  133. package/dist/js/navigable.model-BPOM8DZk.d.mts +44 -0
  134. package/dist/js/popover/index.d.mts +12 -0
  135. package/dist/js/{popover.mjs → popover/index.mjs} +40 -50
  136. package/dist/js/popover/popover.model.d.mts +2 -0
  137. package/dist/js/popover/popover.model.mjs +12 -0
  138. package/dist/js/popover.model-ubKNG612.d.mts +38 -0
  139. package/dist/js/resizable/resizable.embedded.d.mts +2 -2
  140. package/dist/js/resizable/resizable.embedded.mjs +44 -59
  141. package/dist/js/resizable/resizable.model.d.mts +2 -0
  142. package/dist/js/resizable/resizable.model.mjs +21 -0
  143. package/dist/js/resizable/resizable.standalone.d.mts +2 -1
  144. package/dist/js/resizable.embedded-Bf1qBUdt.d.mts +11 -0
  145. package/dist/js/resizable.model-BwzJcTVJ.d.mts +46 -0
  146. package/dist/js/sortable/sortable.embedded.d.mts +2 -2
  147. package/dist/js/sortable/sortable.embedded.mjs +69 -82
  148. package/dist/js/sortable/sortable.model.d.mts +2 -0
  149. package/dist/js/sortable/sortable.model.mjs +24 -0
  150. package/dist/js/sortable/sortable.standalone.d.mts +2 -1
  151. package/dist/js/sortable.embedded-DzBKAwSG.d.mts +11 -0
  152. package/dist/js/{splitter.d.mts → splitter/index.d.mts} +8 -7
  153. package/dist/js/splitter/index.mjs +284 -0
  154. package/dist/js/splitter/splitter.model.d.mts +2 -0
  155. package/dist/js/splitter/splitter.model.mjs +37 -0
  156. package/dist/js/splitter.model-DOLNjLVS.d.mts +57 -0
  157. package/dist/js/{tabs.d.mts → tabs/index.d.mts} +7 -8
  158. package/dist/js/{tabs.mjs → tabs/index.mjs} +58 -58
  159. package/dist/js/tabs/tabs.model.d.mts +2 -0
  160. package/dist/js/tabs/tabs.model.mjs +18 -0
  161. package/dist/js/tabs.model-DRBX_JtI.d.mts +40 -0
  162. package/dist/js/toolbar/index.mjs +27 -0
  163. package/dist/js/toolbar/toolbar.model.d.mts +11 -0
  164. package/dist/js/toolbar/toolbar.model.mjs +7 -0
  165. package/dist/js/tooltip/index.d.mts +19 -0
  166. package/dist/js/{tooltip.mjs → tooltip/index.mjs} +60 -85
  167. package/dist/js/tooltip/tooltip.model.d.mts +2 -0
  168. package/dist/js/tooltip/tooltip.model.mjs +15 -0
  169. package/dist/js/tooltip.model-DRkY_BsL.d.mts +37 -0
  170. package/package.json +43 -37
  171. package/dist/js/color-picker.mjs +0 -924
  172. package/dist/js/combobox/constants.combobox.d.mts +0 -2
  173. package/dist/js/combobox/dom.combobox.d.mts +0 -27
  174. package/dist/js/combobox/event.combobox.d.mts +0 -23
  175. package/dist/js/combobox/misc.combobox.d.mts +0 -2
  176. package/dist/js/combobox/state.combobox.d.mts +0 -12
  177. package/dist/js/combobox/state.combobox.mjs +0 -2
  178. package/dist/js/constants.combobox-DmRAMC64.d.mts +0 -26
  179. package/dist/js/constants.listbox-DRsXUxd3.d.mts +0 -14
  180. package/dist/js/dialog.d.mts +0 -47
  181. package/dist/js/dialog.mjs +0 -131
  182. package/dist/js/draggable-a6w0J1OD.d.mts +0 -154
  183. package/dist/js/floatable.embedded-Bct4U5Dm.d.mts +0 -69
  184. package/dist/js/index-DJdFlTLm.d.mts +0 -177
  185. package/dist/js/internal/draggable.d.mts +0 -2
  186. package/dist/js/internal/navigable.d.mts +0 -37
  187. package/dist/js/internal/navigable.mjs +0 -135
  188. package/dist/js/l10n-Bn-7RcwR.d.mts +0 -20
  189. package/dist/js/l10n.d.mts +0 -2
  190. package/dist/js/menu.mjs +0 -172
  191. package/dist/js/popover.d.mts +0 -38
  192. package/dist/js/resizable.embedded-3qoR0Bjm.d.mts +0 -34
  193. package/dist/js/splitter.mjs +0 -322
  194. package/dist/js/toolbar.mjs +0 -31
  195. package/dist/js/tooltip.d.mts +0 -45
  196. package/src/css/a11y.scss +0 -13
  197. package/src/css/badge.scss +0 -62
  198. package/src/css/button.scss +0 -50
  199. package/src/css/color-picker.scss +0 -344
  200. package/src/css/color.scss +0 -113
  201. package/src/css/combobox.scss +0 -255
  202. package/src/css/content.scss +0 -181
  203. package/src/css/flex.scss +0 -107
  204. package/src/css/floatable.scss +0 -155
  205. package/src/css/form.scss +0 -575
  206. package/src/css/listbox.scss +0 -121
  207. package/src/css/message.scss +0 -74
  208. package/src/css/mixins/badge.mixins.scss +0 -53
  209. package/src/css/mixins/button.mixins.scss +0 -112
  210. package/src/css/mixins/input.mixins.scss +0 -114
  211. package/src/css/mixins/message.mixins.scss +0 -41
  212. package/src/css/mixins/misc.mixins.scss +0 -48
  213. package/src/css/mixins/shadow.mixins.scss +0 -57
  214. package/src/css/reset.scss +0 -392
  215. package/src/css/splitter.scss +0 -89
  216. package/src/css/table.scss +0 -107
  217. package/src/css/tabs.scss +0 -74
  218. package/src/js/color-picker.ts +0 -1653
  219. package/src/js/combobox/constants.combobox.ts +0 -83
  220. package/src/js/combobox/dom.combobox.ts +0 -411
  221. package/src/js/combobox/event.combobox.ts +0 -365
  222. package/src/js/combobox/index.ts +0 -382
  223. package/src/js/combobox/misc.combobox.ts +0 -104
  224. package/src/js/combobox/models.combobox.ts +0 -54
  225. package/src/js/combobox/state.combobox.ts +0 -246
  226. package/src/js/dialog.ts +0 -255
  227. package/src/js/floatable/floatable.embedded.ts +0 -336
  228. package/src/js/floatable/floatable.standalone.ts +0 -6
  229. package/src/js/focus-trap/focus-trap.embedded.ts +0 -411
  230. package/src/js/focus-trap/focus-trap.standalone.ts +0 -1
  231. package/src/js/index.ts +0 -16
  232. package/src/js/internal/attributable.ts +0 -73
  233. package/src/js/internal/draggable.ts +0 -657
  234. package/src/js/internal/listbox/listbox.constants.ts +0 -25
  235. package/src/js/internal/listbox/listbox.data.ts +0 -287
  236. package/src/js/internal/listbox/listbox.dom.ts +0 -446
  237. package/src/js/internal/listbox/listbox.event.ts +0 -129
  238. package/src/js/internal/listbox/listbox.form.ts +0 -125
  239. package/src/js/internal/listbox/listbox.misc.ts +0 -135
  240. package/src/js/internal/listbox/listbox.model.ts +0 -169
  241. package/src/js/internal/listbox/listbox.state.ts +0 -82
  242. package/src/js/internal/misc.ts +0 -27
  243. package/src/js/internal/navigable.ts +0 -317
  244. package/src/js/l10n.ts +0 -192
  245. package/src/js/listbox/constants.listbox.ts +0 -61
  246. package/src/js/listbox/event.listbox.ts +0 -106
  247. package/src/js/listbox/index.ts +0 -364
  248. package/src/js/listbox/misc.listbox.ts +0 -70
  249. package/src/js/listbox/state.listbox.ts +0 -194
  250. package/src/js/menu.ts +0 -348
  251. package/src/js/movable/movable.embedded.ts +0 -318
  252. package/src/js/movable/movable.standalone.ts +0 -2
  253. package/src/js/popover.ts +0 -229
  254. package/src/js/resizable/resizable.embedded.ts +0 -413
  255. package/src/js/resizable/resizable.standalone.ts +0 -5
  256. package/src/js/sortable/sortable.embedded.ts +0 -527
  257. package/src/js/sortable/sortable.standalone.ts +0 -2
  258. package/src/js/splitter.ts +0 -583
  259. package/src/js/tabs.ts +0 -441
  260. package/src/js/toolbar.ts +0 -63
  261. package/src/js/tooltip.ts +0 -367
  262. /package/dist/js/combobox/{models.combobox.mjs → combobox.model.mjs} +0 -0
  263. /package/dist/js/{menu.d.mts → menu/index.d.mts} +0 -0
  264. /package/dist/js/{toolbar.d.mts → toolbar/index.d.mts} +0 -0
@@ -0,0 +1,57 @@
1
+ import { StyleToggler } from "@oscarpalmer/toretto/style";
2
+ //#region src/js/splitter/splitter.model.d.ts
3
+ type GenericOuiSplitterElement = {
4
+ [SPLITTER_SYMBOL]: OuiSplitter;
5
+ } & HTMLElement;
6
+ type OuiSplitter = {
7
+ element: GenericOuiSplitterElement;
8
+ handle: HTMLSpanElement;
9
+ panels: HTMLElement[];
10
+ rectangle: DOMRect;
11
+ separator: HTMLDivElement;
12
+ types: OuiSplitterTypes;
13
+ values: OuiSplitterValues;
14
+ updateObserver(add: 0 | 1): void;
15
+ updateOrientation(): void;
16
+ updateValues(): void;
17
+ };
18
+ type OuiSplitterTypes = {
19
+ auto: boolean;
20
+ horizontal: boolean;
21
+ };
22
+ type OuiSplitterValues = {
23
+ max: number;
24
+ min: number;
25
+ now: OuiSplitterValuesNow;
26
+ };
27
+ type OuiSplitterValuesNow = {
28
+ current: number;
29
+ previous: number;
30
+ };
31
+ declare const SPLITTER_TAGNAME = "oui-splitter";
32
+ declare const SPLITTER_ATTRIBUTE_ACTIVE: string;
33
+ declare const SPLITTER_ATTRIBUTE_HANDLE: string;
34
+ declare const SPLITTER_ATTRIBUTE_HORIZONTAL: string;
35
+ declare const SPLITTER_ATTRIBUTE_MAX = "max";
36
+ declare const SPLITTER_ATTRIBUTE_MIN = "min";
37
+ declare const SPLITTER_ATTRIBUTE_SIZE = "size";
38
+ declare const SPLITTER_ATTRIBUTE_TYPE = "type";
39
+ declare const SPLITTER_ATTRIBUTE_SEPARATOR: string;
40
+ declare const SPLITTER_KEYS_ABSOLUTE: Set<string>;
41
+ declare const SPLITTER_KEYS_HORIZONTAL: Set<string>;
42
+ declare const SPLITTER_KEYS_NEGATIVE: Set<string>;
43
+ declare const SPLITTER_KEYS_VERTICAL: Set<string>;
44
+ declare const SPLITTER_KEYS_ALL: Set<string>;
45
+ declare const SPLITTER_MESSAGE: string;
46
+ declare const SPLITTER_METHODS_CONNECT: readonly ["delete", "set"];
47
+ declare const SPLITTER_METHODS_OBSERVE: readonly ["unobserve", "observe"];
48
+ declare const SPLITTER_NAVIGATION_MAXIMUM_PERCENTAGE = .9;
49
+ declare const SPLITTER_NAVIGATION_MAXIMUM_TOTAL = 100;
50
+ declare const SPLITTER_NAVIGATION_MINIMUM_PERCENTAGE = .1;
51
+ declare const SPLITTER_NAVIGATION_MODIFIER = .05;
52
+ declare const SPLITTER_SELECTOR_HANDLE: string;
53
+ declare const SPLITTER_SYMBOL: unique symbol;
54
+ declare const SPLITTER_VALUE_DECIMALS = 6;
55
+ declare const splitterStyling: StyleToggler;
56
+ //#endregion
57
+ export { splitterStyling as A, SPLITTER_NAVIGATION_MAXIMUM_TOTAL as C, SPLITTER_SYMBOL as D, SPLITTER_SELECTOR_HANDLE as E, SPLITTER_TAGNAME as O, SPLITTER_NAVIGATION_MAXIMUM_PERCENTAGE as S, SPLITTER_NAVIGATION_MODIFIER as T, SPLITTER_KEYS_NEGATIVE as _, OuiSplitterValuesNow as a, SPLITTER_METHODS_CONNECT as b, SPLITTER_ATTRIBUTE_HORIZONTAL as c, SPLITTER_ATTRIBUTE_SEPARATOR as d, SPLITTER_ATTRIBUTE_SIZE as f, SPLITTER_KEYS_HORIZONTAL as g, SPLITTER_KEYS_ALL as h, OuiSplitterValues as i, SPLITTER_VALUE_DECIMALS as k, SPLITTER_ATTRIBUTE_MAX as l, SPLITTER_KEYS_ABSOLUTE as m, OuiSplitter as n, SPLITTER_ATTRIBUTE_ACTIVE as o, SPLITTER_ATTRIBUTE_TYPE as p, OuiSplitterTypes as r, SPLITTER_ATTRIBUTE_HANDLE as s, GenericOuiSplitterElement as t, SPLITTER_ATTRIBUTE_MIN as u, SPLITTER_KEYS_VERTICAL as v, SPLITTER_NAVIGATION_MINIMUM_PERCENTAGE as w, SPLITTER_METHODS_OBSERVE as x, SPLITTER_MESSAGE as y };
@@ -1,25 +1,24 @@
1
- //#region src/js/tabs.d.ts
1
+ import { a as OuiTabsState, c as TABS_SYMBOL, r as OuiTabsEvent } from "../tabs.model-DRBX_JtI.mjs";
2
+ //#region src/js/tabs/index.d.ts
2
3
  declare global {
3
4
  interface HTMLElementTagNameMap {
4
5
  [TAGNAME]: OuiTabsElement;
5
6
  }
6
7
  }
7
- declare class OuiTabsEvent extends Event {
8
- oldIndex: number;
9
- newIndex: number;
10
- constructor(name: 'oui:beforechange' | 'oui:change', oldIndex: number, newIndex: number, cancelable: boolean);
8
+ export interface OuiTabsElement {
9
+ [TABS_SYMBOL]: OuiTabsState;
11
10
  }
12
- declare class OuiTabsElement extends HTMLElement {
13
- #private;
11
+ export declare class OuiTabsElement extends HTMLElement {
14
12
  static observedAttributes: string[];
15
13
  get active(): number;
16
14
  set active(value: number);
17
15
  get panel(): HTMLElement;
18
16
  get tab(): HTMLButtonElement;
17
+ constructor();
19
18
  attributeChangedCallback(name: string, _: string | null, value: string | null): void;
20
19
  connectedCallback(): void;
21
20
  disconnectedCallback(): void;
22
21
  }
23
22
  declare const TAGNAME = "oui-tabs";
24
23
  //#endregion
25
- export { OuiTabsElement, OuiTabsEvent };
24
+ export { OuiTabsEvent };
@@ -1,69 +1,65 @@
1
- import { OuiNavigable, getNavigableOrientation } from "./internal/navigable.mjs";
1
+ import { NAVIGABLE_SYMBOL } from "../internal/navigable/navigable.model.mjs";
2
+ import { getNavigable, getNavigableOrientation } from "../internal/navigable/index.mjs";
3
+ import { OuiTabsEvent, TABS_SYMBOL } from "./tabs.model.mjs";
2
4
  import { getAria, setAria } from "@oscarpalmer/toretto/aria";
3
5
  import { getAttribute, setAttribute } from "@oscarpalmer/toretto/attribute";
4
6
  import { createElement } from "@oscarpalmer/toretto/create";
5
- //#region src/js/tabs.ts
6
- var OuiTabsEvent = class extends Event {
7
- oldIndex;
8
- newIndex;
9
- constructor(name, oldIndex, newIndex, cancelable) {
10
- super(name, {
11
- cancelable,
12
- bubbles: true,
13
- composed: true
14
- });
15
- this.oldIndex = oldIndex;
16
- this.newIndex = newIndex;
17
- }
18
- };
7
+ //#region src/js/tabs/index.ts
19
8
  var OuiTabsElement = class extends HTMLElement {
20
9
  static observedAttributes = ["active"];
21
- #state;
22
10
  get active() {
23
- return this.#state?.active ?? 0;
11
+ return this[TABS_SYMBOL].component?.active ?? 0;
24
12
  }
25
13
  set active(value) {
26
- setActive(this.#state, value);
14
+ setActive(this[TABS_SYMBOL], value);
27
15
  }
28
16
  get panel() {
29
- return this.#state?.panels.elements[this.active];
17
+ return this[TABS_SYMBOL].component?.panels.elements[this.active];
30
18
  }
31
19
  get tab() {
32
- return this.#state?.tabList.tabs[this.active];
20
+ return this[TABS_SYMBOL].component?.tabList.tabs[this.active];
21
+ }
22
+ constructor() {
23
+ super();
24
+ this[TABS_SYMBOL] = { component: null };
33
25
  }
34
26
  attributeChangedCallback(name, _, value) {
35
27
  switch (name) {
36
- case "active": setActive(this.#state, value);
28
+ case "active": setActive(this[TABS_SYMBOL], value);
37
29
  }
38
30
  }
39
31
  connectedCallback() {
40
- if (this.#state == null) this.#state = initializeTabs(this);
41
- else attachTabs(this.#state);
32
+ const state = this[TABS_SYMBOL];
33
+ if (state.component == null) initializeTabs(this, state);
34
+ else attachTabs(state);
42
35
  }
43
36
  disconnectedCallback() {
44
- if (this.#state != null) detachTabs(this.#state);
37
+ const state = this[TABS_SYMBOL];
38
+ if (state.component != null) detachTabs(state);
45
39
  }
46
40
  };
47
41
  function attachTabs(state) {
48
- state.navigable = new OuiNavigable(state.tabList.element, {
49
- orientation: state.orientation,
42
+ const { component } = state;
43
+ const { content, orientation, panels, tabList } = component;
44
+ component.navigable = getNavigable(tabList.element, {
45
+ orientation,
50
46
  selector: SELECTOR_TAB,
51
47
  vertical: false,
52
48
  onActivate: (navigable) => {
53
- const index = state.tabList.tabs.indexOf(navigable.active.element);
54
- if (index > -1 && index !== state.active) onActivate(state, index);
49
+ const index = tabList.tabs.indexOf(navigable[NAVIGABLE_SYMBOL].active.element);
50
+ if (index > -1 && index !== component.active) onActivate(state, index);
55
51
  }
56
52
  });
57
- const { length } = state.panels.elements;
53
+ const { length } = panels.elements;
58
54
  for (let index = 0; index < length; index += 1) {
59
- const panel = state.panels.elements[index];
60
- panel.hidden = index !== state.active;
55
+ const panel = panels.elements[index];
56
+ panel.hidden = index !== component.active;
61
57
  panel.role = "tabpanel";
62
58
  if (index === 0) {
63
- panel.insertAdjacentElement("beforebegin", state.tabList.element);
64
- panel.insertAdjacentElement("beforebegin", state.content);
59
+ panel.insertAdjacentElement("beforebegin", tabList.element);
60
+ panel.insertAdjacentElement("beforebegin", content);
65
61
  }
66
- state.content.append(panel);
62
+ content.append(panel);
67
63
  }
68
64
  }
69
65
  function createContent(prefix, panels, active) {
@@ -121,16 +117,17 @@ function createTabList(prefix, panels, labels, active) {
121
117
  };
122
118
  }
123
119
  function detachTabs(state) {
124
- state.navigable?.destroy();
125
- const { length } = state.panels.elements;
120
+ const { content, navigable, panels, tabList } = state.component;
121
+ navigable?.destroy();
122
+ const { length } = panels.elements;
126
123
  for (let index = 0; index < length; index += 1) {
127
- const panel = state.panels.elements[index];
128
- panel.hidden = state.panels.hidden[index];
129
- panel.role = state.panels.roles[index];
130
- state.content.before(panel);
124
+ const panel = panels.elements[index];
125
+ panel.hidden = panels.hidden[index];
126
+ panel.role = panels.roles[index];
127
+ content.before(panel);
131
128
  }
132
- state.tabList.element.remove();
133
- state.content.remove();
129
+ tabList.element.remove();
130
+ content.remove();
134
131
  }
135
132
  function getActive(element, max) {
136
133
  const attribute = getAttribute(element, "active");
@@ -171,7 +168,7 @@ function getLabels(panels) {
171
168
  }
172
169
  return labels;
173
170
  }
174
- function initializeTabs(element) {
171
+ function initializeTabs(element, state) {
175
172
  const panels = [...element.querySelectorAll(SELECTOR_PANEL)];
176
173
  if (panels.length === 0) throw new Error(MESSAGE_EMPTY);
177
174
  const labels = getLabels(panels);
@@ -183,7 +180,7 @@ function initializeTabs(element) {
183
180
  const orientation = getNavigableOrientation(element, false, false);
184
181
  const content = createContent(id, panels, active);
185
182
  const tabList = createTabList(id, panels, labels, active);
186
- const state = {
183
+ state.component = {
187
184
  active,
188
185
  id,
189
186
  orientation,
@@ -193,35 +190,38 @@ function initializeTabs(element) {
193
190
  panels: content.panels
194
191
  };
195
192
  attachTabs(state);
196
- return state;
197
193
  }
198
194
  function onActivate(state, next) {
199
- const current = state.active;
195
+ const { component } = state;
196
+ const { host, panels, tabList } = component;
197
+ const current = component.active;
200
198
  const event = new OuiTabsEvent("oui:beforechange", current, next, true);
201
- state.host.dispatchEvent(event);
199
+ host.dispatchEvent(event);
202
200
  if (event.defaultPrevented) return;
203
- state.active = next;
204
- const { length } = state.panels.elements;
201
+ component.active = next;
202
+ const { length } = panels.elements;
205
203
  for (let index = 0; index < length; index += 1) {
206
- const panel = state.panels.elements[index];
204
+ const panel = panels.elements[index];
207
205
  panel.hidden = index !== next;
208
- setAria(state.tabList.tabs[index], "selected", index === next);
206
+ setAria(tabList.tabs[index], "selected", index === next);
209
207
  }
210
- setAttribute(state.host, "active", next);
211
- state.host.dispatchEvent(new OuiTabsEvent("oui:change", current, next, false));
208
+ setAttribute(host, "active", next);
209
+ host.dispatchEvent(new OuiTabsEvent("oui:change", current, next, false));
212
210
  }
213
211
  function setActive(state, value) {
214
- if (state == null) return;
215
- const max = state.panels.elements.length - 1;
212
+ const { component } = state;
213
+ if (component == null) return;
214
+ const { active, host, navigable, panels } = component;
215
+ const max = panels.elements.length - 1;
216
216
  let index;
217
217
  if (typeof value === "number" && !Number.isNaN(value) && value >= 0) index = value > max ? max : value;
218
218
  else if (typeof value === "string") {
219
219
  const parsed = Number.parseInt(value, 10);
220
220
  if (!Number.isNaN(parsed) && parsed >= 0) index = parsed > max ? max : parsed;
221
221
  }
222
- if (index == null) setAttribute(state.host, "active", state.active);
223
- else if (index !== state.active) {
224
- state.navigable?.navigate(index, false);
222
+ if (index == null) setAttribute(host, "active", active);
223
+ else if (index !== active) {
224
+ navigable?.navigate(index, false);
225
225
  onActivate(state, index);
226
226
  }
227
227
  }
@@ -0,0 +1,2 @@
1
+ import { a as OuiTabsState, c as TABS_SYMBOL, i as OuiTabsPanels, l as TABS_TAGNAME, n as OuiTabsContent, o as OuiTabsStateComponent, r as OuiTabsEvent, s as OuiTabsTabList, t as GenericOuiTabsElement } from "../tabs.model-DRBX_JtI.mjs";
2
+ export { GenericOuiTabsElement, OuiTabsContent, OuiTabsEvent, OuiTabsPanels, OuiTabsState, OuiTabsStateComponent, OuiTabsTabList, TABS_SYMBOL, TABS_TAGNAME };
@@ -0,0 +1,18 @@
1
+ //#region src/js/tabs/tabs.model.ts
2
+ var OuiTabsEvent = class extends Event {
3
+ oldIndex;
4
+ newIndex;
5
+ constructor(name, oldIndex, newIndex, cancelable) {
6
+ super(name, {
7
+ cancelable,
8
+ bubbles: true,
9
+ composed: true
10
+ });
11
+ this.oldIndex = oldIndex;
12
+ this.newIndex = newIndex;
13
+ }
14
+ };
15
+ const TABS_TAGNAME = "oui-tabs";
16
+ const TABS_SYMBOL = Symbol(TABS_TAGNAME);
17
+ //#endregion
18
+ export { OuiTabsEvent, TABS_SYMBOL, TABS_TAGNAME };
@@ -0,0 +1,40 @@
1
+ import { d as OuiNavigable, h as OuiNavigableOrientation } from "./navigable.model-BPOM8DZk.mjs";
2
+ //#region src/js/tabs/tabs.model.d.ts
3
+ type GenericOuiTabsElement = {
4
+ [TABS_SYMBOL]: OuiTabsState;
5
+ } & HTMLElement;
6
+ declare class OuiTabsEvent extends Event {
7
+ oldIndex: number;
8
+ newIndex: number;
9
+ constructor(name: "oui:beforechange" | "oui:change", oldIndex: number, newIndex: number, cancelable: boolean);
10
+ }
11
+ type OuiTabsContent = {
12
+ element: HTMLDivElement;
13
+ panels: OuiTabsPanels;
14
+ };
15
+ type OuiTabsPanels = {
16
+ elements: HTMLElement[];
17
+ hidden: Array<boolean | "until-found">;
18
+ roles: Array<string | null>;
19
+ };
20
+ type OuiTabsState = {
21
+ component: OuiTabsStateComponent;
22
+ };
23
+ type OuiTabsStateComponent = {
24
+ active: number;
25
+ content: HTMLDivElement;
26
+ host: GenericOuiTabsElement;
27
+ id: string;
28
+ navigable?: OuiNavigable;
29
+ orientation: OuiNavigableOrientation;
30
+ panels: OuiTabsPanels;
31
+ tabList: OuiTabsTabList;
32
+ };
33
+ type OuiTabsTabList = {
34
+ element: HTMLDivElement;
35
+ tabs: HTMLButtonElement[];
36
+ };
37
+ declare const TABS_TAGNAME = "oui-tabs";
38
+ declare const TABS_SYMBOL: unique symbol;
39
+ //#endregion
40
+ export { OuiTabsState as a, TABS_SYMBOL as c, OuiTabsPanels as i, TABS_TAGNAME as l, OuiTabsContent as n, OuiTabsStateComponent as o, OuiTabsEvent as r, OuiTabsTabList as s, GenericOuiTabsElement as t };
@@ -0,0 +1,27 @@
1
+ import { attributable } from "../internal/attributable.mjs";
2
+ import { getNavigable, updateNavigableFocus } from "../internal/navigable/index.mjs";
3
+ import { TOOLBAR_ATTRIBUTE, TOOLBAR_SELECTOR, TOOLBAR_SYMBOL, toolbars } from "./toolbar.model.mjs";
4
+ //#region src/js/toolbar/index.ts
5
+ function OuiToolbar(navigable) {
6
+ this[TOOLBAR_SYMBOL] = navigable;
7
+ updateNavigableFocus(navigable, false);
8
+ }
9
+ OuiToolbar.prototype.destroy = destroyToolbar;
10
+ function addToolbar(element) {
11
+ if (!toolbars.has(element)) toolbars.set(element, new OuiToolbar(getNavigable(element, {
12
+ role: "toolbar",
13
+ selector: TOOLBAR_SELECTOR,
14
+ vertical: false
15
+ })));
16
+ }
17
+ function destroyToolbar() {
18
+ this[TOOLBAR_SYMBOL].destroy();
19
+ this[TOOLBAR_SYMBOL] = void 0;
20
+ }
21
+ function removeToolbar(element) {
22
+ toolbars.get(element)?.destroy();
23
+ toolbars.delete(element);
24
+ }
25
+ attributable(TOOLBAR_ATTRIBUTE, addToolbar, removeToolbar);
26
+ //#endregion
27
+ export {};
@@ -0,0 +1,11 @@
1
+ import { d as OuiNavigable } from "../navigable.model-BPOM8DZk.mjs";
2
+ //#region src/js/toolbar/toolbar.model.d.ts
3
+ export type OuiToolbar = {
4
+ [TOOLBAR_SYMBOL]: OuiNavigable;
5
+ destroy(): void;
6
+ };
7
+ export declare const TOOLBAR_ATTRIBUTE = "oui-toolbar";
8
+ export declare const TOOLBAR_SYMBOL: unique symbol;
9
+ export declare const TOOLBAR_SELECTOR: string;
10
+ export declare const toolbars: WeakMap<HTMLElement, OuiToolbar>;
11
+ //#endregion
@@ -0,0 +1,7 @@
1
+ //#region src/js/toolbar/toolbar.model.ts
2
+ const TOOLBAR_ATTRIBUTE = "oui-toolbar";
3
+ const TOOLBAR_SYMBOL = Symbol(TOOLBAR_ATTRIBUTE);
4
+ const TOOLBAR_SELECTOR = `[${TOOLBAR_ATTRIBUTE}-item]`;
5
+ const toolbars = /* @__PURE__ */ new WeakMap();
6
+ //#endregion
7
+ export { TOOLBAR_ATTRIBUTE, TOOLBAR_SELECTOR, TOOLBAR_SYMBOL, toolbars };
@@ -0,0 +1,19 @@
1
+ import { n as OuiTooltipState, t as OuiTooltip } from "../tooltip.model-DRkY_BsL.mjs";
2
+ //#region src/js/tooltip/index.d.ts
3
+ declare function OuiTooltip(this: OuiTooltip, state: OuiTooltipState): void;
4
+ /**
5
+ * Get the _OuiTooltip_ for an element
6
+ *
7
+ * @param element Element to get _OuiTooltip_ for
8
+ * @returns _OuiTooltip_ instance
9
+ */
10
+ export declare function getTooltip(element: HTMLElement): OuiTooltip | undefined;
11
+ /**
12
+ * Set the delay before showing the tooltip, in milliseconds
13
+ *
14
+ * _(Default delay is half a second, or 500 milliseconds)_
15
+ * @param value Delay in milliseconds
16
+ */
17
+ export declare function setTooltipDelay(value: number): void;
18
+ //#endregion
19
+ export type { OuiTooltip };
@@ -1,91 +1,71 @@
1
- import { createEmbeddedFloatable } from "./floatable/floatable.embedded.mjs";
2
- import { attributable } from "./internal/attributable.mjs";
1
+ import { createEmbeddedFloatable } from "../floatable/floatable.embedded.mjs";
2
+ import { attributable } from "../internal/attributable.mjs";
3
+ import { EXPRESSION_WHITESPACE } from "../internal/misc.mjs";
4
+ import { TOOLTIP_ATTRIBUTE, TOOLTIP_ATTRIBUTE_CONTENT, TOOLTIP_ATTRIBUTE_CONTENT_OPEN, TOOLTIP_SELECTOR, TOOLTIP_SELECTOR_CONTENT, TOOLTIP_SYMBOL, tooltipFloatableOptions, tooltips } from "./tooltip.model.mjs";
3
5
  import { getAria } from "@oscarpalmer/toretto/aria";
4
6
  import { setAttribute } from "@oscarpalmer/toretto/attribute";
5
- import { createElement } from "@oscarpalmer/toretto/create";
6
7
  import { on } from "@oscarpalmer/toretto/event";
7
8
  import { findAncestor } from "@oscarpalmer/toretto/find";
8
9
  import { isNullableOrWhitespace } from "@oscarpalmer/atoms/is";
9
- //#region src/js/tooltip.ts
10
- var OuiTooltip = class {
11
- #state;
12
- /**
13
- * Is the tooltip open?
14
- */
15
- get open() {
16
- return this === activeTooltip && content.checkVisibility();
17
- }
18
- /**
19
- * Open or close the tooltip
20
- */
21
- set open(value) {
22
- if (value === true) this.show();
23
- else if (value === false) this.hide();
24
- }
25
- constructor(state) {
26
- this.#state = state;
27
- state.floatable.update();
28
- }
29
- /**
30
- * Closes the tooltip
31
- */
32
- hide() {
33
- this.#state.floatable.hide();
34
- }
35
- /**
36
- * Opens the tooltip
37
- */
38
- show() {
39
- this.#state.floatable.show();
40
- }
41
- };
10
+ import { createElement } from "@oscarpalmer/toretto/create";
11
+ //#region src/js/tooltip/index.ts
12
+ function OuiTooltip(state) {
13
+ this[TOOLTIP_SYMBOL] = state;
14
+ state.floatable.update();
15
+ }
16
+ OuiTooltip.prototype.hide = hideTooltip;
17
+ OuiTooltip.prototype.show = showTooltip;
18
+ Object.defineProperties(OuiTooltip.prototype, { open: {
19
+ enumerable: true,
20
+ get: getOpen,
21
+ set: setOpen
22
+ } });
42
23
  function activate(event, focus) {
43
- const targetAnchor = findAncestor(event, SELECTOR);
44
- const targetContent = findAncestor(event, SELECTOR_CONTENT);
24
+ const targetAnchor = findAncestor(event, TOOLTIP_SELECTOR);
25
+ const targetContent = findAncestor(event, TOOLTIP_SELECTOR_CONTENT);
45
26
  if (targetAnchor == null && targetContent == null) {
46
27
  if (!focused) {
47
- closeTooltip(true, activeState);
48
- activeState = void 0;
28
+ closeTooltip(true, activeTooltip);
49
29
  activeTooltip = void 0;
50
30
  }
51
31
  return;
52
32
  }
53
- const state = states.get(targetAnchor ?? targetContent);
54
- if (state == null || state.tooltip === activeTooltip) return;
33
+ const targetTooltip = tooltips.get(targetAnchor ?? targetContent);
34
+ if (targetTooltip == null || targetTooltip === activeTooltip) return;
55
35
  const shouldDelay = activeTooltip == null;
56
- closeTooltip(false, activeState);
57
- activeState = state;
58
- activeTooltip = state.tooltip;
36
+ closeTooltip(false, activeTooltip);
37
+ activeTooltip = targetTooltip;
59
38
  focused = focus;
60
- state.timer = setTimeout(() => {
39
+ const targetState = targetTooltip[TOOLTIP_SYMBOL];
40
+ targetState.timer = setTimeout(() => {
61
41
  content.innerHTML = "";
62
- content.append(...state.elements);
63
- state.floatable.show();
42
+ content.append(...targetState.elements);
43
+ targetState.floatable.show();
64
44
  setTimeout(() => {
65
- state.floatable.update();
45
+ targetState.floatable.update();
66
46
  });
67
47
  }, shouldDelay ? delay : 0);
68
48
  }
69
49
  function addTooltip(element) {
70
- if (!states.has(element)) createTooltip(element);
50
+ if (!tooltips.has(element)) createTooltip(element);
71
51
  }
72
- function closeTooltip(clear, state) {
73
- if (state == null) return;
52
+ function closeTooltip(clear, tooltip) {
53
+ if (tooltip == null) return;
54
+ const state = tooltip[TOOLTIP_SYMBOL];
74
55
  if (state.timer != null) clearTimeout(state.timer);
75
56
  if (clear) content?.hidePopover();
76
57
  }
77
58
  function createTooltip(anchor) {
78
59
  const elements = getElements(anchor);
79
- if (elements == null) return;
80
- states.set(anchor, getState(anchor, elements));
60
+ if (elements != null) tooltips.set(anchor, new OuiTooltip(getState(anchor, elements)));
81
61
  }
82
- function destroyTooltip(state) {
62
+ function destroyTooltip(tooltip) {
63
+ const state = tooltip[TOOLTIP_SYMBOL];
83
64
  clearTimeout(state.timer);
84
65
  state.floatable.destroy();
85
66
  state.anchor = void 0;
86
67
  state.elements = void 0;
87
68
  state.floatable = void 0;
88
- state.tooltip = void 0;
89
69
  }
90
70
  function findElements(attribute) {
91
71
  if (attribute == null) return;
@@ -105,7 +85,7 @@ function findElements(attribute) {
105
85
  function getContent() {
106
86
  return createElement("div", {
107
87
  attribute: {
108
- [ATTRIBUTE_CONTENT]: "",
88
+ [TOOLTIP_ATTRIBUTE_CONTENT]: "",
109
89
  popover: "hint"
110
90
  },
111
91
  property: {
@@ -123,15 +103,15 @@ function getElements(anchor) {
123
103
  if (isNullableOrWhitespace(textContent)) return;
124
104
  return [createElement("p", { property: { textContent } })];
125
105
  }
106
+ function getOpen() {
107
+ return this === activeTooltip && content.checkVisibility();
108
+ }
126
109
  function getState(anchor, elements) {
127
- const state = {
110
+ return {
128
111
  anchor,
129
112
  elements,
130
- floatable: createEmbeddedFloatable(anchor, content, options),
131
- tooltip: null
113
+ floatable: createEmbeddedFloatable(anchor, content, tooltipFloatableOptions)
132
114
  };
133
- state.tooltip = new OuiTooltip(state);
134
- return state;
135
115
  }
136
116
  /**
137
117
  * Get the _OuiTooltip_ for an element
@@ -140,7 +120,10 @@ function getState(anchor, elements) {
140
120
  * @returns _OuiTooltip_ instance
141
121
  */
142
122
  function getTooltip(element) {
143
- return states.get(element)?.tooltip;
123
+ return tooltips.get(element);
124
+ }
125
+ function hideTooltip() {
126
+ this[TOOLTIP_SYMBOL].floatable.hide();
144
127
  }
145
128
  function onFocusin(event) {
146
129
  activate(event, true);
@@ -149,9 +132,8 @@ function onFocusout() {
149
132
  if (activeTooltip == null) return;
150
133
  if (focusTimer != null) clearTimeout(focusTimer);
151
134
  focusTimer = setTimeout(() => {
152
- if (activeTooltip == null || document.activeElement == null || findAncestor(document.activeElement, SELECTOR) != null) return;
153
- closeTooltip(true, activeState);
154
- activeState = void 0;
135
+ if (activeTooltip == null || document.activeElement == null || findAncestor(document.activeElement, TOOLTIP_SELECTOR) != null) return;
136
+ closeTooltip(true, activeTooltip);
155
137
  activeTooltip = void 0;
156
138
  });
157
139
  }
@@ -159,13 +141,12 @@ function onPointermove(event) {
159
141
  activate(event, false);
160
142
  }
161
143
  function onToggle(event) {
162
- setAttribute(content, ATTRIBUTE_CONTENT_OPEN, event.newState === "open" ? "" : void 0);
144
+ setAttribute(content, TOOLTIP_ATTRIBUTE_CONTENT_OPEN, event.newState === "open" ? "" : void 0);
163
145
  }
164
146
  function removeTooltip(element) {
165
- const state = states.get(element);
166
- if (state == null) return;
167
- destroyTooltip(state);
168
- states.delete(element);
147
+ const tooltip = tooltips.get(element);
148
+ if (tooltip != null) destroyTooltip(tooltip);
149
+ tooltips.delete(element);
169
150
  }
170
151
  /**
171
152
  * Set the delay before showing the tooltip, in milliseconds
@@ -176,22 +157,16 @@ function removeTooltip(element) {
176
157
  function setTooltipDelay(value) {
177
158
  if (typeof value === "number" && !Number.isNaN(value) && value >= 0) delay = value;
178
159
  }
179
- const EXPRESSION_WHITESPACE = /\s+/;
180
- const ATTRIBUTE = "oui-tooltip";
181
- const ATTRIBUTE_CONTENT = `${ATTRIBUTE}-content`;
182
- const ATTRIBUTE_CONTENT_OPEN = `${ATTRIBUTE_CONTENT}-open`;
183
- const SELECTOR = `[${ATTRIBUTE}]`;
184
- const SELECTOR_CONTENT = `[${ATTRIBUTE_CONTENT}]`;
160
+ function setOpen(value) {
161
+ if (value === true) this.show();
162
+ else if (value === false) this.hide();
163
+ }
164
+ function showTooltip() {
165
+ this[TOOLTIP_SYMBOL].floatable.show();
166
+ }
185
167
  const content = getContent();
186
- const states = /* @__PURE__ */ new WeakMap();
187
- const options = {
188
- attribute: `${ATTRIBUTE}-position`,
189
- position: "above",
190
- reusable: true
191
- };
192
168
  let delay = 500;
193
169
  let focused = false;
194
- let activeState;
195
170
  let activeTooltip;
196
171
  let focusTimer;
197
172
  document.body.append(content);
@@ -199,6 +174,6 @@ on(content, "toggle", onToggle);
199
174
  on(document, "focusin", onFocusin);
200
175
  on(document, "focusout", onFocusout);
201
176
  on(document, "pointermove", onPointermove);
202
- attributable(ATTRIBUTE, addTooltip, removeTooltip);
177
+ attributable(TOOLTIP_ATTRIBUTE, addTooltip, removeTooltip);
203
178
  //#endregion
204
179
  export { getTooltip, setTooltipDelay };
@@ -0,0 +1,2 @@
1
+ import { a as TOOLTIP_ATTRIBUTE_CONTENT_OPEN, c as TOOLTIP_SYMBOL, i as TOOLTIP_ATTRIBUTE_CONTENT, l as tooltipFloatableOptions, n as OuiTooltipState, o as TOOLTIP_SELECTOR, r as TOOLTIP_ATTRIBUTE, s as TOOLTIP_SELECTOR_CONTENT, t as OuiTooltip, u as tooltips } from "../tooltip.model-DRkY_BsL.mjs";
2
+ export { OuiTooltip, OuiTooltipState, TOOLTIP_ATTRIBUTE, TOOLTIP_ATTRIBUTE_CONTENT, TOOLTIP_ATTRIBUTE_CONTENT_OPEN, TOOLTIP_SELECTOR, TOOLTIP_SELECTOR_CONTENT, TOOLTIP_SYMBOL, tooltipFloatableOptions, tooltips };