@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
@@ -1,45 +1,29 @@
1
- import { createEmbeddedFloatable, getOnBeforeToggleListener } from "./floatable/floatable.embedded.mjs";
2
- import { attributable } from "./internal/attributable.mjs";
3
- import { createFocusTrap } from "./focus-trap/focus-trap.embedded.mjs";
1
+ import "../floatable/floatable.model.mjs";
2
+ import { createEmbeddedFloatable, getOnBeforeToggleListener } from "../floatable/floatable.embedded.mjs";
3
+ import { attributable } from "../internal/attributable.mjs";
4
+ import { createFocusTrap } from "../focus-trap/focus-trap.embedded.mjs";
5
+ import { POPOVER_ATTRIBUTE, POPOVER_ATTRIBUTE_OPEN, POPOVER_SYMBOL, popoverFloatableOptions, popovers } from "./popover.model.mjs";
4
6
  import { getAria, setAria } from "@oscarpalmer/toretto/aria";
5
7
  import { setAttribute } from "@oscarpalmer/toretto/attribute";
6
8
  import { on } from "@oscarpalmer/toretto/event";
7
9
  import { isHTMLOrSVGElement } from "@oscarpalmer/toretto/is";
8
- //#region src/js/popover.ts
9
- var OuiPopover = class {
10
- #state;
11
- /**
12
- * Is the popover open?
13
- */
14
- get open() {
15
- return this.#state.content.checkVisibility();
16
- }
17
- set open(value) {
18
- if (value === true) this.show();
19
- else if (value === false) this.hide();
20
- }
21
- constructor(state) {
22
- this.#state = state;
23
- initialize(state);
24
- this.#state.floatable.update();
25
- }
26
- /**
27
- * Closes the popover
28
- */
29
- hide() {
30
- this.#state.floatable.hide();
31
- }
32
- /**
33
- * Opens the popover
34
- */
35
- show() {
36
- this.#state.floatable.show();
37
- }
38
- };
10
+ //#region src/js/popover/index.ts
11
+ function OuiPopover(state) {
12
+ this[POPOVER_SYMBOL] = state;
13
+ initialize(state);
14
+ this[POPOVER_SYMBOL].floatable.update();
15
+ }
16
+ OuiPopover.prototype.hide = hidePopover;
17
+ OuiPopover.prototype.show = showPopover;
18
+ Object.defineProperties(OuiPopover.prototype, { open: {
19
+ enumerable: true,
20
+ get: getOpen,
21
+ set: setOpen
22
+ } });
39
23
  function addPopover(element) {
40
- if (states.has(element) || element.hasAttribute("oui-floatable")) return;
24
+ if (popovers.has(element) || element.hasAttribute("oui-floatable")) return;
41
25
  const anchor = element.ownerDocument.querySelector(`[popovertarget="${element.id}"]`);
42
- if (isHTMLOrSVGElement(anchor)) states.set(element, getState(anchor, element));
26
+ if (isHTMLOrSVGElement(anchor)) popovers.set(element, getState(anchor, element));
43
27
  }
44
28
  function destroyPopover(state) {
45
29
  state.floatable.destroy();
@@ -60,6 +44,9 @@ function getId(element, value) {
60
44
  }
61
45
  return id;
62
46
  }
47
+ function getOpen() {
48
+ return this[POPOVER_SYMBOL].content.checkVisibility();
49
+ }
63
50
  /**
64
51
  * Get the _OuiPopover_ for an element
65
52
  *
@@ -67,13 +54,13 @@ function getId(element, value) {
67
54
  * @returns _OuiPopover_ instance
68
55
  */
69
56
  function getPopover(element) {
70
- return states.get(element)?.popover;
57
+ return popovers.get(element)?.popover;
71
58
  }
72
59
  function getState(anchor, content) {
73
60
  const state = {
74
61
  anchor,
75
62
  content,
76
- floatable: createEmbeddedFloatable(anchor, content, options),
63
+ floatable: createEmbeddedFloatable(anchor, content, popoverFloatableOptions),
77
64
  focusTrap: getAria(content, "modal") === true ? createFocusTrap(content, { noescape: true }) : void 0,
78
65
  listeners: [getOnBeforeToggleListener(content), on(content, "toggle", (event) => {
79
66
  const expanded = event.newState === "open";
@@ -83,13 +70,16 @@ function getState(anchor, content) {
83
70
  content.focus();
84
71
  } else if (!ignoreFocus) anchor?.focus();
85
72
  setAria(anchor, "expanded", expanded);
86
- setAttribute(content, ATTRIBUTE_OPEN, expanded ? "" : void 0);
73
+ setAttribute(content, POPOVER_ATTRIBUTE_OPEN, expanded ? "" : void 0);
87
74
  })],
88
75
  popover: void 0
89
76
  };
90
77
  state.popover = new OuiPopover(state);
91
78
  return state;
92
79
  }
80
+ function hidePopover() {
81
+ this[POPOVER_SYMBOL].floatable.hide();
82
+ }
93
83
  function initialize(state) {
94
84
  const id = getId(state.content);
95
85
  setAria(state.anchor, {
@@ -102,22 +92,22 @@ function onPointerdown() {
102
92
  ignoreFocus = true;
103
93
  }
104
94
  function removePopover(element) {
105
- const state = states.get(element);
95
+ const state = popovers.get(element);
106
96
  if (state == null) return;
107
97
  destroyPopover(state);
108
- states.delete(element);
98
+ popovers.delete(element);
99
+ }
100
+ function setOpen(value) {
101
+ const { floatable } = this[POPOVER_SYMBOL];
102
+ if (value === true) floatable.show();
103
+ else if (value === false) floatable.hide();
104
+ }
105
+ function showPopover() {
106
+ this[POPOVER_SYMBOL].floatable.show();
109
107
  }
110
- const ATTRIBUTE = "oui-popover";
111
- const ATTRIBUTE_OPEN = `${ATTRIBUTE}-open`;
112
- const options = {
113
- attribute: `${ATTRIBUTE}-position`,
114
- position: "below-start",
115
- reusable: false
116
- };
117
- const states = /* @__PURE__ */ new WeakMap();
118
108
  let ignoreFocus = false;
119
109
  let index = 0;
120
110
  on(document, "pointerdown", onPointerdown, { capture: true });
121
- attributable(ATTRIBUTE, addPopover, removePopover);
111
+ attributable(POPOVER_ATTRIBUTE, addPopover, removePopover);
122
112
  //#endregion
123
113
  export { getPopover };
@@ -0,0 +1,2 @@
1
+ import { a as POPOVER_SYMBOL, i as POPOVER_ATTRIBUTE_OPEN, n as OuiPopoverState, o as popoverFloatableOptions, r as POPOVER_ATTRIBUTE, s as popovers, t as OuiPopover } from "../popover.model-ubKNG612.mjs";
2
+ export { OuiPopover, OuiPopoverState, POPOVER_ATTRIBUTE, POPOVER_ATTRIBUTE_OPEN, POPOVER_SYMBOL, popoverFloatableOptions, popovers };
@@ -0,0 +1,12 @@
1
+ //#region src/js/popover/popover.model.ts
2
+ const POPOVER_ATTRIBUTE = "oui-popover";
3
+ const POPOVER_ATTRIBUTE_OPEN = `${POPOVER_ATTRIBUTE}-open`;
4
+ const POPOVER_SYMBOL = Symbol(POPOVER_ATTRIBUTE);
5
+ const popoverFloatableOptions = {
6
+ attribute: `${POPOVER_ATTRIBUTE}-position`,
7
+ position: "below-start",
8
+ reusable: false
9
+ };
10
+ const popovers = /* @__PURE__ */ new WeakMap();
11
+ //#endregion
12
+ export { POPOVER_ATTRIBUTE, POPOVER_ATTRIBUTE_OPEN, POPOVER_SYMBOL, popoverFloatableOptions, popovers };
@@ -0,0 +1,38 @@
1
+ import { c as OuiFloatable, l as OuiFloatableOptions } from "./floatable.model-DXsQgoU7.mjs";
2
+ import { c as OuiFocusTrap } from "./focus-trap.model-BeX6UYlw.mjs";
3
+ import { RemovableEventListener } from "@oscarpalmer/toretto/models";
4
+ //#region src/js/popover/popover.model.d.ts
5
+ type OuiPopover = {
6
+ [POPOVER_SYMBOL]: OuiPopoverState;
7
+ /**
8
+ * Is the popover open?
9
+ */
10
+ get open(): boolean;
11
+ /**
12
+ * Open or close the popover
13
+ */
14
+ set open(value: boolean);
15
+ /**
16
+ * Closes the popover
17
+ */
18
+ hide(): void;
19
+ /**
20
+ * Opens the popover
21
+ */
22
+ show(): void;
23
+ };
24
+ type OuiPopoverState = {
25
+ anchor: HTMLElement;
26
+ content: HTMLElement;
27
+ floatable: OuiFloatable;
28
+ focusTrap?: OuiFocusTrap;
29
+ listeners: RemovableEventListener[];
30
+ popover: OuiPopover;
31
+ };
32
+ declare const POPOVER_ATTRIBUTE = "oui-popover";
33
+ declare const POPOVER_ATTRIBUTE_OPEN: string;
34
+ declare const POPOVER_SYMBOL: unique symbol;
35
+ declare const popoverFloatableOptions: OuiFloatableOptions;
36
+ declare const popovers: WeakMap<HTMLElement, OuiPopoverState>;
37
+ //#endregion
38
+ export { POPOVER_SYMBOL as a, POPOVER_ATTRIBUTE_OPEN as i, OuiPopoverState as n, popoverFloatableOptions as o, POPOVER_ATTRIBUTE as r, popovers as s, OuiPopover as t };
@@ -1,2 +1,2 @@
1
- import { a as createResizable, i as RESIZABLE_ATTRIBUTE_HANDLE, n as OuiResizable, r as RESIZABLE_ATTRIBUTE, t as CreateOuiResizableOptions } from "../resizable.embedded-3qoR0Bjm.mjs";
2
- export { CreateOuiResizableOptions, OuiResizable, RESIZABLE_ATTRIBUTE, RESIZABLE_ATTRIBUTE_HANDLE, createResizable };
1
+ import { t as createResizable } from "../resizable.embedded-Bf1qBUdt.mjs";
2
+ export { createResizable };
@@ -1,44 +1,31 @@
1
1
  import { attributable } from "../internal/attributable.mjs";
2
- import { getNumber } from "@oscarpalmer/atoms/number";
2
+ import { RESIZABLE_ATTRIBUTE, RESIZABLE_ATTRIBUTE_MAXIMUM, RESIZABLE_ATTRIBUTE_MINIMUM, RESIZABLE_MESSAGE_ELEMENT, RESIZABLE_MESSAGE_HANDLE, RESIZABLE_MESSAGE_HEIGHT, RESIZABLE_MESSAGE_WIDTH, RESIZABLE_SELECTOR, RESIZABLE_SELECTOR_HANDLE, RESIZABLE_SELECTOR_HANDLE_SCOPED, RESIZABLE_SYMBOL, resizableItems, resizableStyles } from "./resizable.model.mjs";
3
3
  import { getAttribute, setAttribute } from "@oscarpalmer/toretto/attribute";
4
4
  import { dispatch, getEventPosition, on } from "@oscarpalmer/toretto/event";
5
5
  import { findAncestor } from "@oscarpalmer/toretto/find";
6
- import { setStyles, toggleStyles } from "@oscarpalmer/toretto/style";
7
- import supportsTouch from "@oscarpalmer/toretto/touch";
8
6
  import { isPlainObject } from "@oscarpalmer/atoms/is";
9
7
  import { isHTMLOrSVGElement } from "@oscarpalmer/toretto/is";
8
+ import { setStyles, toggleStyles } from "@oscarpalmer/toretto/style";
9
+ import { getNumber } from "@oscarpalmer/atoms/number";
10
+ import { supportsTouch } from "@oscarpalmer/toretto/touch";
10
11
  //#region src/js/resizable/resizable.embedded.ts
11
- var OuiResizable = class {
12
- #state;
13
- constructor(state) {
14
- this.#state = state;
15
- }
16
- destroy() {
17
- destroyResizable(this.#state);
18
- }
19
- set() {
20
- const [width, height] = getAndSetDimensions(this.#state.element, this.#state.options);
21
- this.#state.width = width;
22
- this.#state.height = height;
23
- }
24
- reset() {
25
- setStyles(this.#state.element, {
26
- height: "",
27
- width: ""
28
- });
29
- }
30
- };
12
+ function OuiResizable(state) {
13
+ this[RESIZABLE_SYMBOL] = state;
14
+ }
15
+ OuiResizable.prototype.destroy = destroyResizable;
16
+ OuiResizable.prototype.reset = resetResizable;
17
+ OuiResizable.prototype.set = setResizable;
31
18
  function addResizable(element, options) {
32
- let item = items.get(element);
19
+ let item = resizableItems.get(element);
33
20
  if (item == null) {
34
- const handle = element.querySelector(SELECTOR_HANDLE_SCOPED);
21
+ const handle = element.querySelector(RESIZABLE_SELECTOR_HANDLE_SCOPED);
35
22
  if (!isHTMLOrSVGElement(handle)) return;
36
23
  const state = getState(element, handle, options);
37
24
  item = {
38
25
  instance: new OuiResizable(state),
39
26
  state
40
27
  };
41
- items.set(element, item);
28
+ resizableItems.set(element, item);
42
29
  }
43
30
  return item?.instance;
44
31
  }
@@ -48,7 +35,7 @@ function cancelResize(item) {
48
35
  height: `${item.state.height}px`,
49
36
  width: `${item.state.width}px`
50
37
  });
51
- resetResizable();
38
+ resetResizableStyles();
52
39
  dispatch(item.state.element, "oui:resizable:cancel");
53
40
  }
54
41
  /**
@@ -58,13 +45,16 @@ function cancelResize(item) {
58
45
  * @returns _OuiResizable_ instance
59
46
  */
60
47
  function createResizable(element, options) {
61
- if (!isHTMLOrSVGElement(element)) throw new TypeError(MESSAGE_ELEMENT);
62
- if (!isHTMLOrSVGElement(element.querySelector(SELECTOR_HANDLE_SCOPED))) throw new Error(MESSAGE_HANDLE);
48
+ if (!isHTMLOrSVGElement(element)) throw new TypeError(RESIZABLE_MESSAGE_ELEMENT);
49
+ if (!isHTMLOrSVGElement(element.querySelector(RESIZABLE_SELECTOR_HANDLE_SCOPED))) throw new Error(RESIZABLE_MESSAGE_HANDLE);
63
50
  return addResizable(element, options ?? {});
64
51
  }
65
- function destroyResizable(state) {
52
+ function destroyResizable() {
53
+ const state = this[RESIZABLE_SYMBOL];
66
54
  state.element = void 0;
67
55
  state.handle = void 0;
56
+ state.options = void 0;
57
+ state.styles = void 0;
68
58
  }
69
59
  function getAndSetDimensions(element, options, input) {
70
60
  let { height, width } = input ?? element.getBoundingClientRect();
@@ -85,8 +75,8 @@ function getProperties(element, widthProperty, heightProperty) {
85
75
  function getRestrictions(maximum, minimum) {
86
76
  const [maximumWidth, maximumHeight] = getXAndY.apply(null, typeof maximum === "string" ? [maximum] : maximum);
87
77
  const [minimumWidth, minimumHeight] = getXAndY.apply(null, typeof minimum === "string" ? [minimum] : minimum);
88
- if (maximumWidth > -1 && minimumWidth > -1 && maximumWidth <= minimumWidth) throw new Error(MESSAGE_WIDTH);
89
- if (maximumHeight > -1 && minimumHeight > -1 && maximumHeight <= minimumHeight) throw new Error(MESSAGE_HEIGHT);
78
+ if (maximumWidth > -1 && minimumWidth > -1 && maximumWidth <= minimumWidth) throw new Error(RESIZABLE_MESSAGE_WIDTH);
79
+ if (maximumHeight > -1 && minimumHeight > -1 && maximumHeight <= minimumHeight) throw new Error(RESIZABLE_MESSAGE_HEIGHT);
90
80
  return {
91
81
  maximumHeight,
92
82
  maximumWidth,
@@ -104,12 +94,12 @@ function getState(element, handle, input) {
104
94
  height,
105
95
  options,
106
96
  width,
107
- styles: toggleStyles(element, styles)
97
+ styles: toggleStyles(element, resizableStyles)
108
98
  };
109
99
  }
110
100
  function getValidOptions(element, input) {
111
101
  const original = isPlainObject(input) ? input : {};
112
- return { ...getRestrictions(input == null ? getAttribute(element, ATTRIBUTE_MAXIMUM) ?? getProperties(element, "maxWidth", "maxHeight") : [original.maximumWidth, original.maximumHeight], input == null ? getAttribute(element, ATTRIBUTE_MINIMUM) ?? getProperties(element, "minWidth", "minHeight") : [original.minimumWidth, original.minimumHeight]) };
102
+ return { ...getRestrictions(input == null ? getAttribute(element, RESIZABLE_ATTRIBUTE_MAXIMUM) ?? getProperties(element, "maxWidth", "maxHeight") : [original.maximumWidth, original.maximumHeight], input == null ? getAttribute(element, RESIZABLE_ATTRIBUTE_MINIMUM) ?? getProperties(element, "minWidth", "minHeight") : [original.minimumWidth, original.minimumHeight]) };
113
103
  }
114
104
  function getXAndY(first, second) {
115
105
  const [x, y] = typeof first === "string" && second == null ? first.split(",") : [first, second];
@@ -124,9 +114,9 @@ function onKeydown(event) {
124
114
  }
125
115
  function onPointerdown(event) {
126
116
  if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey || (supportsTouch.value ? event.type === "mousedown" : event.type === "touchstart" || event.button !== 0)) return;
127
- const handle = findAncestor(event, SELECTOR_HANDLE);
128
- const element = handle && findAncestor(handle, SELECTOR);
129
- const stored = element && items.get(element);
117
+ const handle = findAncestor(event, RESIZABLE_SELECTOR_HANDLE);
118
+ const element = handle && findAncestor(handle, RESIZABLE_SELECTOR);
119
+ const stored = element && resizableItems.get(element);
130
120
  const position = getEventPosition(event);
131
121
  if (stored == null || position == null) return;
132
122
  if (supportsTouch.value) event.preventDefault();
@@ -159,36 +149,31 @@ function onPointerup() {
159
149
  const { height, width } = current.state.element.getBoundingClientRect();
160
150
  current.state.height = height;
161
151
  current.state.width = width;
162
- resetResizable();
152
+ resetResizableStyles();
163
153
  }
164
154
  function removeResizable(element) {
165
- items.get(element)?.instance.destroy();
166
- items.delete(element);
155
+ resizableItems.get(element)?.instance.destroy();
156
+ resizableItems.delete(element);
167
157
  }
168
158
  function resetResizable() {
159
+ setStyles(this[RESIZABLE_SYMBOL].element, {
160
+ height: "",
161
+ width: ""
162
+ });
163
+ }
164
+ function resetResizableStyles() {
169
165
  current?.state.styles.remove();
170
166
  styleToggler.remove();
171
167
  current = void 0;
172
168
  start = void 0;
173
169
  }
174
- const RESIZABLE_ATTRIBUTE = "oui-resizable";
175
- const RESIZABLE_ATTRIBUTE_HANDLE = `${RESIZABLE_ATTRIBUTE}-handle`;
176
- const ATTRIBUTE_MAXIMUM = `${RESIZABLE_ATTRIBUTE}-maximum`;
177
- const ATTRIBUTE_MINIMUM = `${RESIZABLE_ATTRIBUTE}-minimum`;
178
- const MESSAGE_ELEMENT = "The element must be an instance of HTMLElement or SVGElement";
179
- const MESSAGE_HEIGHT = "The maximum height must be greater than the minimum height";
180
- const MESSAGE_HANDLE = `The element must contain a child with the attribute "${RESIZABLE_ATTRIBUTE_HANDLE}"`;
181
- const MESSAGE_WIDTH = "The maximum width must be greater than the minimum width";
182
- const SELECTOR = `[${RESIZABLE_ATTRIBUTE}]`;
183
- const SELECTOR_HANDLE = `[${RESIZABLE_ATTRIBUTE_HANDLE}]`;
184
- const SELECTOR_HANDLE_SCOPED = `:scope > ${SELECTOR_HANDLE}`;
185
- const items = /* @__PURE__ */ new WeakMap();
186
- const styles = {
187
- touchAction: "none",
188
- userSelect: "none",
189
- webkitUserSelect: "none"
190
- };
191
- const styleToggler = toggleStyles(document.body, styles);
170
+ function setResizable() {
171
+ const state = this[RESIZABLE_SYMBOL];
172
+ const [width, height] = getAndSetDimensions(state.element, state.options);
173
+ state.width = width;
174
+ state.height = height;
175
+ }
176
+ const styleToggler = toggleStyles(document.body, resizableStyles);
192
177
  let current;
193
178
  let start;
194
179
  on(document, "keydown", onKeydown);
@@ -199,4 +184,4 @@ on(document, "touchcancel", onPointerup);
199
184
  on(document, "touchstart", onPointerdown, { passive: false });
200
185
  attributable(RESIZABLE_ATTRIBUTE, addResizable, removeResizable);
201
186
  //#endregion
202
- export { OuiResizable, RESIZABLE_ATTRIBUTE, RESIZABLE_ATTRIBUTE_HANDLE, createResizable };
187
+ export { createResizable };
@@ -0,0 +1,2 @@
1
+ import { _ as resizableItems, a as RESIZABLE_ATTRIBUTE, c as RESIZABLE_ATTRIBUTE_MINIMUM, d as RESIZABLE_MESSAGE_HEIGHT, f as RESIZABLE_MESSAGE_WIDTH, g as RESIZABLE_SYMBOL, h as RESIZABLE_SELECTOR_HANDLE_SCOPED, i as OuiResizableState, l as RESIZABLE_MESSAGE_ELEMENT, m as RESIZABLE_SELECTOR_HANDLE, n as OuiResizable, o as RESIZABLE_ATTRIBUTE_HANDLE, p as RESIZABLE_SELECTOR, r as OuiResizableItem, s as RESIZABLE_ATTRIBUTE_MAXIMUM, t as CreateOuiResizableOptions, u as RESIZABLE_MESSAGE_HANDLE, v as resizableStyles } from "../resizable.model-BwzJcTVJ.mjs";
2
+ export { CreateOuiResizableOptions, OuiResizable, OuiResizableItem, OuiResizableState, RESIZABLE_ATTRIBUTE, RESIZABLE_ATTRIBUTE_HANDLE, RESIZABLE_ATTRIBUTE_MAXIMUM, RESIZABLE_ATTRIBUTE_MINIMUM, RESIZABLE_MESSAGE_ELEMENT, RESIZABLE_MESSAGE_HANDLE, RESIZABLE_MESSAGE_HEIGHT, RESIZABLE_MESSAGE_WIDTH, RESIZABLE_SELECTOR, RESIZABLE_SELECTOR_HANDLE, RESIZABLE_SELECTOR_HANDLE_SCOPED, RESIZABLE_SYMBOL, resizableItems, resizableStyles };
@@ -0,0 +1,21 @@
1
+ //#region src/js/resizable/resizable.model.ts
2
+ const RESIZABLE_ATTRIBUTE = "oui-resizable";
3
+ const RESIZABLE_ATTRIBUTE_HANDLE = `${RESIZABLE_ATTRIBUTE}-handle`;
4
+ const RESIZABLE_ATTRIBUTE_MAXIMUM = `${RESIZABLE_ATTRIBUTE}-maximum`;
5
+ const RESIZABLE_ATTRIBUTE_MINIMUM = `${RESIZABLE_ATTRIBUTE}-minimum`;
6
+ const RESIZABLE_MESSAGE_ELEMENT = "The element must be an instance of HTMLElement or SVGElement";
7
+ const RESIZABLE_MESSAGE_HEIGHT = "The maximum height must be greater than the minimum height";
8
+ const RESIZABLE_MESSAGE_HANDLE = `The element must contain a child with the attribute "${RESIZABLE_ATTRIBUTE_HANDLE}"`;
9
+ const RESIZABLE_MESSAGE_WIDTH = "The maximum width must be greater than the minimum width";
10
+ const RESIZABLE_SELECTOR = `[${RESIZABLE_ATTRIBUTE}]`;
11
+ const RESIZABLE_SELECTOR_HANDLE = `[${RESIZABLE_ATTRIBUTE_HANDLE}]`;
12
+ const RESIZABLE_SELECTOR_HANDLE_SCOPED = `:scope > ${RESIZABLE_SELECTOR_HANDLE}`;
13
+ const RESIZABLE_SYMBOL = Symbol(RESIZABLE_ATTRIBUTE);
14
+ const resizableItems = /* @__PURE__ */ new WeakMap();
15
+ const resizableStyles = {
16
+ touchAction: "none",
17
+ userSelect: "none",
18
+ webkitUserSelect: "none"
19
+ };
20
+ //#endregion
21
+ export { RESIZABLE_ATTRIBUTE, RESIZABLE_ATTRIBUTE_HANDLE, RESIZABLE_ATTRIBUTE_MAXIMUM, RESIZABLE_ATTRIBUTE_MINIMUM, RESIZABLE_MESSAGE_ELEMENT, RESIZABLE_MESSAGE_HANDLE, RESIZABLE_MESSAGE_HEIGHT, RESIZABLE_MESSAGE_WIDTH, RESIZABLE_SELECTOR, RESIZABLE_SELECTOR_HANDLE, RESIZABLE_SELECTOR_HANDLE_SCOPED, RESIZABLE_SYMBOL, resizableItems, resizableStyles };
@@ -1,2 +1,3 @@
1
- import { a as createResizable, n as OuiResizable, t as CreateOuiResizableOptions } from "../resizable.embedded-3qoR0Bjm.mjs";
1
+ import { n as OuiResizable, t as CreateOuiResizableOptions } from "../resizable.model-BwzJcTVJ.mjs";
2
+ import { t as createResizable } from "../resizable.embedded-Bf1qBUdt.mjs";
2
3
  export { type CreateOuiResizableOptions, type OuiResizable, createResizable as createOuiResizable };
@@ -0,0 +1,11 @@
1
+ import { n as OuiResizable, t as CreateOuiResizableOptions } from "./resizable.model-BwzJcTVJ.mjs";
2
+ //#region src/js/resizable/resizable.embedded.d.ts
3
+ /**
4
+ * Creates _(or retrieves)_ a _OuiResizable_ instance for an element
5
+ *
6
+ * @param element Element to make resizable
7
+ * @returns _OuiResizable_ instance
8
+ */
9
+ declare function createResizable(element: HTMLElement, options?: CreateOuiResizableOptions): OuiResizable;
10
+ //#endregion
11
+ export { createResizable as t };
@@ -0,0 +1,46 @@
1
+ import { StyleToggler } from "@oscarpalmer/toretto/style";
2
+ //#region src/js/resizable/resizable.model.d.ts
3
+ type CreateOuiResizableOptions = {
4
+ maximumHeight?: number;
5
+ maximumWidth?: number;
6
+ minimumHeight?: number;
7
+ minimumWidth?: number;
8
+ };
9
+ type OuiResizable = {
10
+ [RESIZABLE_SYMBOL]: OuiResizableState;
11
+ destroy(): void;
12
+ reset(): void;
13
+ set(): void;
14
+ };
15
+ type OuiResizableItem = {
16
+ instance: OuiResizable;
17
+ state: OuiResizableState;
18
+ };
19
+ type OuiResizableState = {
20
+ element: HTMLElement;
21
+ handle: HTMLElement;
22
+ height: number;
23
+ options: Required<CreateOuiResizableOptions>;
24
+ styles: StyleToggler;
25
+ width: number;
26
+ };
27
+ declare const RESIZABLE_ATTRIBUTE = "oui-resizable";
28
+ declare const RESIZABLE_ATTRIBUTE_HANDLE: string;
29
+ declare const RESIZABLE_ATTRIBUTE_MAXIMUM: string;
30
+ declare const RESIZABLE_ATTRIBUTE_MINIMUM: string;
31
+ declare const RESIZABLE_MESSAGE_ELEMENT = "The element must be an instance of HTMLElement or SVGElement";
32
+ declare const RESIZABLE_MESSAGE_HEIGHT = "The maximum height must be greater than the minimum height";
33
+ declare const RESIZABLE_MESSAGE_HANDLE: string;
34
+ declare const RESIZABLE_MESSAGE_WIDTH = "The maximum width must be greater than the minimum width";
35
+ declare const RESIZABLE_SELECTOR: string;
36
+ declare const RESIZABLE_SELECTOR_HANDLE: string;
37
+ declare const RESIZABLE_SELECTOR_HANDLE_SCOPED: string;
38
+ declare const RESIZABLE_SYMBOL: unique symbol;
39
+ declare const resizableItems: WeakMap<HTMLElement, OuiResizableItem>;
40
+ declare const resizableStyles: {
41
+ touchAction: string;
42
+ userSelect: string;
43
+ webkitUserSelect: string;
44
+ };
45
+ //#endregion
46
+ export { resizableItems as _, RESIZABLE_ATTRIBUTE as a, RESIZABLE_ATTRIBUTE_MINIMUM as c, RESIZABLE_MESSAGE_HEIGHT as d, RESIZABLE_MESSAGE_WIDTH as f, RESIZABLE_SYMBOL as g, RESIZABLE_SELECTOR_HANDLE_SCOPED as h, OuiResizableState as i, RESIZABLE_MESSAGE_ELEMENT as l, RESIZABLE_SELECTOR_HANDLE as m, OuiResizable as n, RESIZABLE_ATTRIBUTE_HANDLE as o, RESIZABLE_SELECTOR as p, OuiResizableItem as r, RESIZABLE_ATTRIBUTE_MAXIMUM as s, CreateOuiResizableOptions as t, RESIZABLE_MESSAGE_HANDLE as u, resizableStyles as v };
@@ -1,2 +1,2 @@
1
- import { d as OuiSortable, f as createSortable } from "../draggable-a6w0J1OD.mjs";
2
- export { OuiSortable, createSortable };
1
+ import { t as createSortable } from "../sortable.embedded-DzBKAwSG.mjs";
2
+ export { createSortable };