@mortenbrudvik/waveui 0.14.1 → 0.16.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 (265) hide show
  1. package/README.md +413 -53
  2. package/dist/components/data-display/InfoButton.cjs +1 -1
  3. package/dist/components/data-display/InfoButton.cjs.map +1 -1
  4. package/dist/components/data-display/InfoButton.mjs +90 -82
  5. package/dist/components/data-display/InfoButton.mjs.map +1 -1
  6. package/dist/components/data-display/InfoLabel.cjs +1 -1
  7. package/dist/components/data-display/InfoLabel.cjs.map +1 -1
  8. package/dist/components/data-display/InfoLabel.mjs +19 -18
  9. package/dist/components/data-display/InfoLabel.mjs.map +1 -1
  10. package/dist/components/data-display/List.cjs +1 -1
  11. package/dist/components/data-display/List.cjs.map +1 -1
  12. package/dist/components/data-display/List.mjs +405 -219
  13. package/dist/components/data-display/List.mjs.map +1 -1
  14. package/dist/components/data-display/List.registry.cjs +1 -1
  15. package/dist/components/data-display/List.registry.cjs.map +1 -1
  16. package/dist/components/data-display/List.registry.mjs +12 -6
  17. package/dist/components/data-display/List.registry.mjs.map +1 -1
  18. package/dist/components/feedback/MessageBarGroup.cjs +2 -0
  19. package/dist/components/feedback/MessageBarGroup.cjs.map +1 -0
  20. package/dist/components/feedback/MessageBarGroup.mjs +63 -0
  21. package/dist/components/feedback/MessageBarGroup.mjs.map +1 -0
  22. package/dist/components/feedback/ProgressBar.cjs +1 -1
  23. package/dist/components/feedback/ProgressBar.cjs.map +1 -1
  24. package/dist/components/feedback/ProgressBar.mjs +41 -39
  25. package/dist/components/feedback/ProgressBar.mjs.map +1 -1
  26. package/dist/components/feedback/Toaster.cjs +1 -1
  27. package/dist/components/feedback/Toaster.cjs.map +1 -1
  28. package/dist/components/feedback/Toaster.mjs +222 -216
  29. package/dist/components/feedback/Toaster.mjs.map +1 -1
  30. package/dist/components/input/Combobox.cjs +1 -1
  31. package/dist/components/input/Combobox.cjs.map +1 -1
  32. package/dist/components/input/Combobox.mjs +163 -148
  33. package/dist/components/input/Combobox.mjs.map +1 -1
  34. package/dist/components/input/Dropdown.cjs +1 -1
  35. package/dist/components/input/Dropdown.cjs.map +1 -1
  36. package/dist/components/input/Dropdown.mjs +132 -117
  37. package/dist/components/input/Dropdown.mjs.map +1 -1
  38. package/dist/components/input/Listbox.cjs +1 -1
  39. package/dist/components/input/Listbox.cjs.map +1 -1
  40. package/dist/components/input/Listbox.mjs +90 -78
  41. package/dist/components/input/Listbox.mjs.map +1 -1
  42. package/dist/components/input/Option.cjs +1 -1
  43. package/dist/components/input/Option.cjs.map +1 -1
  44. package/dist/components/input/Option.data.cjs +2 -0
  45. package/dist/components/input/Option.data.cjs.map +1 -0
  46. package/dist/components/input/Option.data.mjs +114 -0
  47. package/dist/components/input/Option.data.mjs.map +1 -0
  48. package/dist/components/input/Option.mjs +21 -17
  49. package/dist/components/input/Option.mjs.map +1 -1
  50. package/dist/components/layout/Accordion.cjs +1 -1
  51. package/dist/components/layout/Accordion.cjs.map +1 -1
  52. package/dist/components/layout/Accordion.mjs +124 -109
  53. package/dist/components/layout/Accordion.mjs.map +1 -1
  54. package/dist/components/layout/Carousel.cjs +1 -1
  55. package/dist/components/layout/Carousel.cjs.map +1 -1
  56. package/dist/components/layout/Carousel.mjs +207 -193
  57. package/dist/components/layout/Carousel.mjs.map +1 -1
  58. package/dist/components/layout/FlatTree.cjs +2 -0
  59. package/dist/components/layout/FlatTree.cjs.map +1 -0
  60. package/dist/components/layout/FlatTree.context.cjs +2 -0
  61. package/dist/components/layout/FlatTree.context.cjs.map +1 -0
  62. package/dist/components/layout/FlatTree.context.mjs +20 -0
  63. package/dist/components/layout/FlatTree.context.mjs.map +1 -0
  64. package/dist/components/layout/FlatTree.item.cjs +2 -0
  65. package/dist/components/layout/FlatTree.item.cjs.map +1 -0
  66. package/dist/components/layout/FlatTree.item.mjs +90 -0
  67. package/dist/components/layout/FlatTree.item.mjs.map +1 -0
  68. package/dist/components/layout/FlatTree.mjs +276 -0
  69. package/dist/components/layout/FlatTree.mjs.map +1 -0
  70. package/dist/components/layout/TabList.cjs +1 -1
  71. package/dist/components/layout/TabList.cjs.map +1 -1
  72. package/dist/components/layout/TabList.mjs +149 -108
  73. package/dist/components/layout/TabList.mjs.map +1 -1
  74. package/dist/components/layout/Tree.cjs.map +1 -1
  75. package/dist/components/layout/Tree.context.cjs +1 -1
  76. package/dist/components/layout/Tree.context.cjs.map +1 -1
  77. package/dist/components/layout/Tree.context.mjs +2 -1
  78. package/dist/components/layout/Tree.context.mjs.map +1 -1
  79. package/dist/components/layout/Tree.core.cjs +1 -1
  80. package/dist/components/layout/Tree.core.cjs.map +1 -1
  81. package/dist/components/layout/Tree.core.mjs +162 -148
  82. package/dist/components/layout/Tree.core.mjs.map +1 -1
  83. package/dist/components/layout/Tree.mjs.map +1 -1
  84. package/dist/components/layout/Tree.selection.cjs +1 -1
  85. package/dist/components/layout/Tree.selection.cjs.map +1 -1
  86. package/dist/components/layout/Tree.selection.mjs +11 -57
  87. package/dist/components/layout/Tree.selection.mjs.map +1 -1
  88. package/dist/components/layout/useFlatTree.cjs +2 -0
  89. package/dist/components/layout/useFlatTree.cjs.map +1 -0
  90. package/dist/components/layout/useFlatTree.mjs +83 -0
  91. package/dist/components/layout/useFlatTree.mjs.map +1 -0
  92. package/dist/components/navigation/Menu.popover.cjs +1 -1
  93. package/dist/components/navigation/Menu.popover.cjs.map +1 -1
  94. package/dist/components/navigation/Menu.popover.mjs +154 -168
  95. package/dist/components/navigation/Menu.popover.mjs.map +1 -1
  96. package/dist/components/navigation/Nav.cjs +1 -1
  97. package/dist/components/navigation/Nav.cjs.map +1 -1
  98. package/dist/components/navigation/Nav.mjs +156 -136
  99. package/dist/components/navigation/Nav.mjs.map +1 -1
  100. package/dist/components/navigation/NavDrawer.cjs +1 -1
  101. package/dist/components/navigation/NavDrawer.cjs.map +1 -1
  102. package/dist/components/navigation/NavDrawer.mjs +48 -45
  103. package/dist/components/navigation/NavDrawer.mjs.map +1 -1
  104. package/dist/components/overlays/Dialog.cjs +1 -1
  105. package/dist/components/overlays/Dialog.cjs.map +1 -1
  106. package/dist/components/overlays/Dialog.mjs +128 -122
  107. package/dist/components/overlays/Dialog.mjs.map +1 -1
  108. package/dist/components/overlays/Dialog.slots.cjs +1 -1
  109. package/dist/components/overlays/Dialog.slots.cjs.map +1 -1
  110. package/dist/components/overlays/Dialog.slots.mjs +12 -12
  111. package/dist/components/overlays/Dialog.slots.mjs.map +1 -1
  112. package/dist/components/overlays/Drawer.cjs.map +1 -1
  113. package/dist/components/overlays/Drawer.mjs.map +1 -1
  114. package/dist/components/overlays/Drawer.panel.cjs +1 -1
  115. package/dist/components/overlays/Drawer.panel.cjs.map +1 -1
  116. package/dist/components/overlays/Drawer.panel.mjs +97 -81
  117. package/dist/components/overlays/Drawer.panel.mjs.map +1 -1
  118. package/dist/components/overlays/Drawer.root.cjs +1 -1
  119. package/dist/components/overlays/Drawer.root.cjs.map +1 -1
  120. package/dist/components/overlays/Drawer.root.mjs +34 -31
  121. package/dist/components/overlays/Drawer.root.mjs.map +1 -1
  122. package/dist/components/overlays/Popover.cjs +1 -1
  123. package/dist/components/overlays/Popover.cjs.map +1 -1
  124. package/dist/components/overlays/Popover.mjs +231 -216
  125. package/dist/components/overlays/Popover.mjs.map +1 -1
  126. package/dist/components/overlays/TeachingPopover.cjs.map +1 -1
  127. package/dist/components/overlays/TeachingPopover.mjs.map +1 -1
  128. package/dist/components/overlays/TeachingPopover.parts.cjs +1 -1
  129. package/dist/components/overlays/TeachingPopover.parts.cjs.map +1 -1
  130. package/dist/components/overlays/TeachingPopover.parts.mjs +199 -177
  131. package/dist/components/overlays/TeachingPopover.parts.mjs.map +1 -1
  132. package/dist/components/overlays/TeachingPopover.root.cjs +1 -1
  133. package/dist/components/overlays/TeachingPopover.root.cjs.map +1 -1
  134. package/dist/components/overlays/TeachingPopover.root.mjs +93 -92
  135. package/dist/components/overlays/TeachingPopover.root.mjs.map +1 -1
  136. package/dist/components/overlays/Tooltip.cjs +1 -1
  137. package/dist/components/overlays/Tooltip.cjs.map +1 -1
  138. package/dist/components/overlays/Tooltip.mjs +66 -61
  139. package/dist/components/overlays/Tooltip.mjs.map +1 -1
  140. package/dist/components/provider/WaveProvider.cjs +1 -1
  141. package/dist/components/provider/WaveProvider.cjs.map +1 -1
  142. package/dist/components/provider/WaveProvider.mjs +26 -23
  143. package/dist/components/provider/WaveProvider.mjs.map +1 -1
  144. package/dist/components/table/DataGrid.cjs +1 -1
  145. package/dist/components/table/DataGrid.cjs.map +1 -1
  146. package/dist/components/table/DataGrid.context.cjs +2 -0
  147. package/dist/components/table/DataGrid.context.cjs.map +1 -0
  148. package/dist/components/table/DataGrid.context.mjs +74 -0
  149. package/dist/components/table/DataGrid.context.mjs.map +1 -0
  150. package/dist/components/table/DataGrid.header.cjs +2 -0
  151. package/dist/components/table/DataGrid.header.cjs.map +1 -0
  152. package/dist/components/table/DataGrid.header.mjs +168 -0
  153. package/dist/components/table/DataGrid.header.mjs.map +1 -0
  154. package/dist/components/table/DataGrid.mjs +488 -591
  155. package/dist/components/table/DataGrid.mjs.map +1 -1
  156. package/dist/components/table/DataGrid.sizing.cjs +2 -0
  157. package/dist/components/table/DataGrid.sizing.cjs.map +1 -0
  158. package/dist/components/table/DataGrid.sizing.mjs +187 -0
  159. package/dist/components/table/DataGrid.sizing.mjs.map +1 -0
  160. package/dist/components/table/DataGrid.store.cjs +2 -0
  161. package/dist/components/table/DataGrid.store.cjs.map +1 -0
  162. package/dist/components/table/DataGrid.store.mjs +108 -0
  163. package/dist/components/table/DataGrid.store.mjs.map +1 -0
  164. package/dist/components/table/DataGrid.window.cjs +2 -0
  165. package/dist/components/table/DataGrid.window.cjs.map +1 -0
  166. package/dist/components/table/DataGrid.window.mjs +165 -0
  167. package/dist/components/table/DataGrid.window.mjs.map +1 -0
  168. package/dist/components/table/Table.cjs +1 -1
  169. package/dist/components/table/Table.cjs.map +1 -1
  170. package/dist/components/table/Table.mjs +74 -72
  171. package/dist/components/table/Table.mjs.map +1 -1
  172. package/dist/components/table/Table.resize.cjs +2 -0
  173. package/dist/components/table/Table.resize.cjs.map +1 -0
  174. package/dist/components/table/Table.resize.mjs +98 -0
  175. package/dist/components/table/Table.resize.mjs.map +1 -0
  176. package/dist/components/table/useGridNavigation.cjs +1 -1
  177. package/dist/components/table/useGridNavigation.cjs.map +1 -1
  178. package/dist/components/table/useGridNavigation.mjs +343 -140
  179. package/dist/components/table/useGridNavigation.mjs.map +1 -1
  180. package/dist/components/table/useTableColumnSizing.cjs +2 -0
  181. package/dist/components/table/useTableColumnSizing.cjs.map +1 -0
  182. package/dist/components/table/useTableColumnSizing.mjs +76 -0
  183. package/dist/components/table/useTableColumnSizing.mjs.map +1 -0
  184. package/dist/components/table/useTableFeatures.cjs +2 -0
  185. package/dist/components/table/useTableFeatures.cjs.map +1 -0
  186. package/dist/components/table/useTableFeatures.mjs +110 -0
  187. package/dist/components/table/useTableFeatures.mjs.map +1 -0
  188. package/dist/components/table/useTableSelection.cjs +2 -0
  189. package/dist/components/table/useTableSelection.cjs.map +1 -0
  190. package/dist/components/table/useTableSelection.mjs +39 -0
  191. package/dist/components/table/useTableSelection.mjs.map +1 -0
  192. package/dist/components/table/useTableSort.cjs +2 -0
  193. package/dist/components/table/useTableSort.cjs.map +1 -0
  194. package/dist/components/table/useTableSort.mjs +58 -0
  195. package/dist/components/table/useTableSort.mjs.map +1 -0
  196. package/dist/hooks/useActiveDescendant.cjs +1 -1
  197. package/dist/hooks/useActiveDescendant.cjs.map +1 -1
  198. package/dist/hooks/useActiveDescendant.mjs +33 -25
  199. package/dist/hooks/useActiveDescendant.mjs.map +1 -1
  200. package/dist/hooks/useCollapsePresence.cjs +2 -0
  201. package/dist/hooks/useCollapsePresence.cjs.map +1 -0
  202. package/dist/hooks/useCollapsePresence.mjs +21 -0
  203. package/dist/hooks/useCollapsePresence.mjs.map +1 -0
  204. package/dist/hooks/useFocusBeforeClose.cjs +2 -0
  205. package/dist/hooks/useFocusBeforeClose.cjs.map +1 -0
  206. package/dist/hooks/useFocusBeforeClose.mjs +33 -0
  207. package/dist/hooks/useFocusBeforeClose.mjs.map +1 -0
  208. package/dist/hooks/useListbox.cjs +1 -1
  209. package/dist/hooks/useListbox.cjs.map +1 -1
  210. package/dist/hooks/useListbox.mjs +140 -130
  211. package/dist/hooks/useListbox.mjs.map +1 -1
  212. package/dist/hooks/useMotion.cjs +2 -0
  213. package/dist/hooks/useMotion.cjs.map +1 -0
  214. package/dist/hooks/useMotion.mjs +14 -0
  215. package/dist/hooks/useMotion.mjs.map +1 -0
  216. package/dist/hooks/usePresenceGroup.cjs +2 -0
  217. package/dist/hooks/usePresenceGroup.cjs.map +1 -0
  218. package/dist/hooks/usePresenceGroup.mjs +68 -0
  219. package/dist/hooks/usePresenceGroup.mjs.map +1 -0
  220. package/dist/hooks/useRovingTabIndex.cjs +1 -1
  221. package/dist/hooks/useRovingTabIndex.cjs.map +1 -1
  222. package/dist/hooks/useRovingTabIndex.mjs +1 -1
  223. package/dist/hooks/useRovingTabIndex.mjs.map +1 -1
  224. package/dist/hooks/useSelection.cjs +2 -0
  225. package/dist/hooks/useSelection.cjs.map +1 -0
  226. package/dist/hooks/useSelection.mjs +57 -0
  227. package/dist/hooks/useSelection.mjs.map +1 -0
  228. package/dist/hooks/useVirtualWindow.cjs +2 -0
  229. package/dist/hooks/useVirtualWindow.cjs.map +1 -0
  230. package/dist/hooks/useVirtualWindow.mjs +102 -0
  231. package/dist/hooks/useVirtualWindow.mjs.map +1 -0
  232. package/dist/index.cjs +1 -1
  233. package/dist/index.d.cts +2249 -179
  234. package/dist/index.d.ts +2249 -179
  235. package/dist/index.mjs +147 -135
  236. package/dist/lib/classNames.cjs +1 -1
  237. package/dist/lib/classNames.cjs.map +1 -1
  238. package/dist/lib/classNames.mjs +125 -95
  239. package/dist/lib/classNames.mjs.map +1 -1
  240. package/dist/lib/columnSizing.cjs +2 -0
  241. package/dist/lib/columnSizing.cjs.map +1 -0
  242. package/dist/lib/columnSizing.mjs +27 -0
  243. package/dist/lib/columnSizing.mjs.map +1 -0
  244. package/dist/lib/flatTree.cjs +2 -0
  245. package/dist/lib/flatTree.cjs.map +1 -0
  246. package/dist/lib/flatTree.mjs +118 -0
  247. package/dist/lib/flatTree.mjs.map +1 -0
  248. package/dist/lib/motion.cjs +2 -0
  249. package/dist/lib/motion.cjs.map +1 -0
  250. package/dist/lib/motion.mjs +43 -0
  251. package/dist/lib/motion.mjs.map +1 -0
  252. package/dist/lib/selection.cjs +2 -0
  253. package/dist/lib/selection.cjs.map +1 -0
  254. package/dist/lib/selection.mjs +28 -0
  255. package/dist/lib/selection.mjs.map +1 -0
  256. package/dist/lib/treeCascade.cjs +2 -0
  257. package/dist/lib/treeCascade.cjs.map +1 -0
  258. package/dist/lib/treeCascade.mjs +52 -0
  259. package/dist/lib/treeCascade.mjs.map +1 -0
  260. package/dist/lib/virtual.cjs +2 -0
  261. package/dist/lib/virtual.cjs.map +1 -0
  262. package/dist/lib/virtual.mjs +54 -0
  263. package/dist/lib/virtual.mjs.map +1 -0
  264. package/dist/styles.css +1 -1
  265. package/package.json +2 -1
@@ -10,23 +10,27 @@ import { useId as c } from "../../hooks/useId.mjs";
10
10
  import { focusElement as te, getFirstTabbable as l, isConnectedAndFocusable as u } from "../../lib/focus.mjs";
11
11
  import { useMergedRefs as d } from "../../hooks/useMergedRefs.mjs";
12
12
  import { useIsClient as f } from "../../hooks/useIsClient.mjs";
13
+ import { usePresence as p } from "../../hooks/usePresence.mjs";
13
14
  import { resolvePositioning as ne, usePopupPosition as re } from "../../hooks/usePopupPosition.mjs";
14
- import { useDismiss as p } from "../../hooks/useDismiss.mjs";
15
- import { useRestoreFocus as m } from "../../hooks/useRestoreFocus.mjs";
16
- import { Portal as h } from "../portal/Portal.mjs";
17
- import { useHoverIntent as g } from "../../hooks/useHoverIntent.mjs";
18
- import { PopoverBeak as _, getTabbableThrough as v, isFocusInSurfaceTree as y, usePopoverTabOrder as ie } from "./Popover.shared.mjs";
19
- import { getTriggerFocusTarget as b, useTriggerElement as x, useTriggerFocusRef as ae } from "../../hooks/useTriggerElement.mjs";
20
- import { usePopupTarget as S } from "../../hooks/useResolvedTarget.mjs";
21
- import { useContextMenuAnchor as oe } from "../../hooks/useContextMenuAnchor.mjs";
22
- import * as C from "react";
23
- import { Fragment as se, jsx as w, jsxs as T } from "react/jsx-runtime";
15
+ import { useDismiss as m } from "../../hooks/useDismiss.mjs";
16
+ import { useRestoreFocus as h } from "../../hooks/useRestoreFocus.mjs";
17
+ import { Portal as g } from "../portal/Portal.mjs";
18
+ import { popupMotion as _ } from "../../lib/motion.mjs";
19
+ import { useFocusBeforeClose as v } from "../../hooks/useFocusBeforeClose.mjs";
20
+ import { useHoverIntent as ie } from "../../hooks/useHoverIntent.mjs";
21
+ import { useMotionClasses as y } from "../../hooks/useMotion.mjs";
22
+ import { PopoverBeak as ae, getTabbableThrough as b, isFocusInSurfaceTree as x, usePopoverTabOrder as oe } from "./Popover.shared.mjs";
23
+ import { getTriggerFocusTarget as S, useTriggerElement as C, useTriggerFocusRef as se } from "../../hooks/useTriggerElement.mjs";
24
+ import { usePopupTarget as w } from "../../hooks/useResolvedTarget.mjs";
25
+ import { useContextMenuAnchor as ce } from "../../hooks/useContextMenuAnchor.mjs";
26
+ import * as T from "react";
27
+ import { Fragment as E, jsx as D, jsxs as O } from "react/jsx-runtime";
24
28
  //#region src/components/overlays/Popover.tsx
25
- var E = C.createContext(null);
26
- E.displayName = "PopoverContext";
27
- var D = null;
28
- function O() {
29
- return D ??= {
29
+ var k = T.createContext(null);
30
+ k.displayName = "PopoverContext";
31
+ var A = null;
32
+ function j() {
33
+ return A ??= {
30
34
  open: !1,
31
35
  setOpen: () => {},
32
36
  contentId: "wave-popover-inert-content",
@@ -57,221 +61,230 @@ function O() {
57
61
  arrowStyles: {},
58
62
  placedSide: "bottom",
59
63
  fitViewport: !1
60
- }, D;
64
+ }, A;
61
65
  }
62
- function k(e) {
63
- return C.useContext(E) || (n(e, "Popover"), O());
66
+ function M(e) {
67
+ return T.useContext(k) || (n(e, "Popover"), j());
64
68
  }
65
- function ce(e, t) {
69
+ function N(e, t) {
66
70
  let n = (t ?? "").split(/\s+/).filter((t) => t && e.getElementById(t));
67
71
  return n.length > 0 ? n.join(" ") : void 0;
68
72
  }
69
- function A(e, t) {
73
+ function le(e, t) {
70
74
  if (!e) return t;
71
- let n = e.ownerDocument, r = (t ? n.getElementById(t) : null) ?? b(e) ?? e;
72
- return ce(n, r.getAttribute("aria-labelledby")) ?? (r.id || e.id || void 0);
75
+ let n = e.ownerDocument, r = (t ? n.getElementById(t) : null) ?? S(e) ?? e;
76
+ return N(n, r.getAttribute("aria-labelledby")) ?? (r.id || e.id || void 0);
73
77
  }
74
- function j(e, t) {
78
+ function ue(e, t) {
75
79
  return t.split(/\s+/).some((t) => {
76
80
  let n = t ? e.getElementById(t) : null;
77
81
  return n ? n.getAttribute("aria-label")?.trim() || n.textContent?.trim() ? !0 : !!n.querySelector("[aria-label]:not([aria-label=\"\"]), [alt]:not([alt=\"\"]), [title]:not([title=\"\"])") : !1;
78
82
  });
79
83
  }
80
- var M = () => () => {};
81
- function le(e) {
84
+ var P = () => () => {};
85
+ function de(e) {
82
86
  return !!e && typeof e.nodeType == "number";
83
87
  }
84
- function ue(e) {
88
+ function fe(e) {
85
89
  return { get current() {
86
90
  return e();
87
91
  } };
88
92
  }
89
- function de(e, t, n) {
90
- return b(e) ?? v(e, t, n);
93
+ function pe(e, t, n) {
94
+ return S(e) ?? b(e, t, n);
91
95
  }
92
- var N = ({ open: e, defaultOpen: t, onOpenChange: n, side: ee = "bottom", align: i = "start", ignoreOutsideRefs: a, openOnHover: h = !1, openDelay: _ = 250, closeDelay: v = 500, openOnContext: x = !1, target: se, positioning: T, children: D }) => {
93
- let { target: O, pending: k } = S("Popover", se, T), [ce, A] = s(e, t ?? !1, n), j = C.useRef(!1), M = o((e) => {
94
- j.current = !1, A(e);
95
- }), N = C.useCallback(() => j.current, []), P = f(), F = ce && P, [I, L] = C.useState("other"), [fe, R] = C.useState(!1), [z, B] = C.useState(F), V = I;
96
- F !== z && (B(F), F && (V = fe ? "hover" : "other")), V !== I && L(V), fe && R(!1);
97
- let pe = c("popover-content"), [me, H] = C.useState(void 0), U = me ?? pe, he = c("popover-trigger"), [ge, _e] = C.useState(void 0), [W, ve] = C.useState(null), [G, ye] = C.useState(null), K = C.useRef(null), q = C.useRef(null), be = C.useRef(null), xe = le(O) ? O : null, J = C.useRef(null);
98
- C.useInsertionEffect(() => {
99
- J.current = xe;
100
- }, [xe]);
101
- let { setReference: Se, setFloating: Ce, floatingProps: Y, arrowStyles: we, side: Te } = re({
102
- open: F,
96
+ var F = ({ open: e, defaultOpen: t, onOpenChange: n, side: ee = "bottom", align: i = "start", ignoreOutsideRefs: a, openOnHover: p = !1, openDelay: g = 250, closeDelay: _ = 500, openOnContext: y = !1, target: ae, positioning: b, children: C }) => {
97
+ let { target: E, pending: O } = w("Popover", ae, b), [A, j] = s(e, t ?? !1, n), M = T.useRef(!1), N = o((e) => {
98
+ M.current = !1, j(e);
99
+ }), le = T.useCallback(() => M.current, []), ue = f(), P = A && ue, [F, I] = T.useState("other"), [L, R] = T.useState(!1), [me, he] = T.useState(P), z = F;
100
+ P !== me && (he(P), P && (z = L ? "hover" : "other")), z !== F && I(z), L && R(!1);
101
+ let ge = c("popover-content"), [_e, ve] = T.useState(void 0), B = _e ?? ge, V = c("popover-trigger"), [H, ye] = T.useState(void 0), [U, be] = T.useState(null), [W, xe] = T.useState(null), G = T.useRef(null), K = T.useRef(null), Se = T.useRef(null), Ce = de(E) ? E : null, q = T.useRef(null);
102
+ T.useInsertionEffect(() => {
103
+ q.current = Ce;
104
+ }, [Ce]);
105
+ let { setReference: we, setFloating: Te, floatingProps: J, arrowStyles: Ee, side: De } = re({
106
+ open: P,
103
107
  side: ee,
104
108
  align: i,
105
- arrowRef: be,
106
- ...ne(T, { offset: 8 })
107
- }), Ee = C.useMemo(() => k ? {
108
- ...Y,
109
+ arrowRef: Se,
110
+ ...ne(b, { offset: 8 })
111
+ }), Oe = T.useMemo(() => O ? {
112
+ ...J,
109
113
  style: {
110
- ...Y.style,
114
+ ...J.style,
111
115
  visibility: "hidden"
112
116
  }
113
- } : Y, [k, Y]), De = C.useRef(null), Oe = o(() => {
114
- let e = x ? De.current?.current : null;
117
+ } : J, [O, J]), ke = T.useRef(null), Y = o(() => {
118
+ let e = y ? ke.current?.current : null;
115
119
  if (e && u(e)) return e;
116
- let t = K.current, n = t ? b(t) : null;
120
+ let t = G.current, n = t ? S(t) : null;
117
121
  if (n) return n;
118
- let r = J.current;
122
+ let r = q.current;
119
123
  return r && u(r) ? r : t;
120
- }), ke = C.useMemo(() => ue(Oe), [Oe]), Ae = o((e) => !(e.ctrlKey && K.current?.contains(e.target))), { layerId: X } = p({
121
- open: F,
122
- onDismiss: () => M(!1),
123
- refs: x ? [
124
+ }), Ae = T.useMemo(() => fe(Y), [Y]), je = o((e) => !(e.ctrlKey && G.current?.contains(e.target))), { layerId: X } = m({
125
+ open: P,
126
+ onDismiss: () => N(!1),
127
+ refs: y ? [
128
+ K,
124
129
  q,
125
- J,
126
130
  ...a ?? []
127
131
  ] : [
128
- q,
129
132
  K,
130
- J,
133
+ G,
134
+ q,
131
135
  ...a ?? []
132
136
  ],
133
- anchorRef: ke,
137
+ anchorRef: Ae,
134
138
  kind: "popover",
135
- outsidePress: !x || Ae
136
- }), Z = C.useRef(!1), { anchor: je, fromContext: Me, origin: Ne, opener: Q, triggerHandlers: Pe, surfaceHandlers: Fe } = oe({
137
- enabled: x,
138
- open: F,
139
- trigger: G,
139
+ outsidePress: !y || je
140
+ }), Z = T.useRef(!1), { anchor: Me, fromContext: Ne, origin: Pe, opener: Q, triggerHandlers: Fe, surfaceHandlers: Ie } = ce({
141
+ enabled: y,
142
+ open: P,
143
+ trigger: W,
140
144
  layerId: X,
141
145
  onOpen: (e) => {
142
- Z.current = e === "keyboard", M(!0);
146
+ Z.current = e === "keyboard", N(!0);
143
147
  },
144
- onClose: () => M(!1)
148
+ onClose: () => N(!1)
145
149
  });
146
- C.useInsertionEffect(() => {
147
- De.current = Q;
150
+ T.useInsertionEffect(() => {
151
+ ke.current = Q;
148
152
  }, [Q]);
149
- let Ie = ae(K);
150
- m({
151
- enabled: F,
152
- container: W,
153
- triggerRef: x ? void 0 : Ie,
154
- finalFocusRef: x ? Q : void 0,
155
- fallback: Oe,
153
+ let Le = se(G);
154
+ h({
155
+ enabled: P,
156
+ container: U,
157
+ triggerRef: y ? void 0 : Le,
158
+ finalFocusRef: y ? Q : void 0,
159
+ fallback: Y,
156
160
  onlyIfFocusInside: !0,
157
- isHoverClose: N
158
- }), C.useLayoutEffect(() => {
159
- F && (j.current = !1);
160
- }, [F]);
161
- let Le = d(K, ye), Re = d(q, ve, Ce);
162
- C.useLayoutEffect(() => {
163
- Se(Me ? je ?? (G && (b(G) ?? G)) : O ?? G);
161
+ isHoverClose: le
162
+ }), v({
163
+ open: P,
164
+ surfaceRef: K,
165
+ captureOpener: () => y ? null : Le.current,
166
+ candidates: (e) => [
167
+ y ? Q.current : null,
168
+ e,
169
+ Y()
170
+ ]
171
+ }), T.useLayoutEffect(() => {
172
+ P && (M.current = !1);
173
+ }, [P]);
174
+ let Re = d(G, xe), ze = d(K, be, Te);
175
+ T.useLayoutEffect(() => {
176
+ we(Ne ? Me ?? (W && (S(W) ?? W)) : E ?? W);
164
177
  }, [
165
- je,
166
178
  Me,
167
- O,
168
- G,
169
- Se
170
- ]), C.useLayoutEffect(() => {
179
+ Ne,
180
+ E,
181
+ W,
182
+ we
183
+ ]), T.useLayoutEffect(() => {
171
184
  if (Z.current) {
172
- if (!F) {
185
+ if (!P) {
173
186
  Z.current = !1;
174
187
  return;
175
188
  }
176
- W && (Z.current = !1, te(l(W) ?? W, { preventScroll: !0 }));
189
+ U && (Z.current = !1, te(l(U) ?? U, { preventScroll: !0 }));
177
190
  }
178
- }), C.useEffect(() => {
179
- h && x && r("Popover:hover-and-context", "Popover: `openOnHover` is ignored with `openOnContext`: a context popover opens on a right click, Shift+F10 or the ContextMenu key, not on hover.");
180
- }, [h, x]);
181
- let $ = h && !x, ze = o(() => V === "hover" && !y(q.current, X)), { triggerHandlers: Be, surfaceHandlers: Ve, cancel: He } = g({
191
+ }), T.useEffect(() => {
192
+ p && y && r("Popover:hover-and-context", "Popover: `openOnHover` is ignored with `openOnContext`: a context popover opens on a right click, Shift+F10 or the ContextMenu key, not on hover.");
193
+ }, [p, y]);
194
+ let $ = p && !y, Be = o(() => z === "hover" && !x(K.current, X)), { triggerHandlers: Ve, surfaceHandlers: He, cancel: Ue } = ie({
182
195
  enabled: $,
183
- open: F,
184
- openDelay: _,
185
- closeDelay: v,
186
- trigger: G,
187
- surface: W,
196
+ open: P,
197
+ openDelay: g,
198
+ closeDelay: _,
199
+ trigger: W,
200
+ surface: U,
188
201
  onOpen: () => {
189
- R(!0), M(!0);
202
+ R(!0), N(!0);
190
203
  },
191
204
  onClose: () => {
192
- j.current = !0, A(!1);
205
+ M.current = !0, j(!1);
193
206
  },
194
- canClose: ze
195
- }), Ue = o(() => {
196
- He(), F && V === "hover" ? L("other") : M((e) => !e);
207
+ canClose: Be
197
208
  }), We = o(() => {
198
- let e = K.current, t = x ? Q.current : null;
199
- return t && e?.contains(t) ? t : e ?? J.current;
200
- }), Ge = C.useMemo(() => ue(We), [We]), Ke = o((e) => {
201
- if (e.key !== "Tab" || e.shiftKey || !F) return;
202
- if (x) {
203
- let t = We();
204
- if (!t || e.target !== (b(t) ?? t)) return;
209
+ Ue(), P && z === "hover" ? I("other") : N((e) => !e);
210
+ }), Ge = o(() => {
211
+ let e = G.current, t = y ? Q.current : null;
212
+ return t && e?.contains(t) ? t : e ?? q.current;
213
+ }), Ke = T.useMemo(() => fe(Ge), [Ge]), qe = o((e) => {
214
+ if (e.key !== "Tab" || e.shiftKey || !P) return;
215
+ if (y) {
216
+ let t = Ge();
217
+ if (!t || e.target !== (S(t) ?? t)) return;
205
218
  }
206
- let t = q.current, n = t ? l(t) : null;
219
+ let t = K.current, n = t ? l(t) : null;
207
220
  n && (e.preventDefault(), n.focus());
208
- }), qe = ie({
209
- enabled: F,
210
- surface: W,
211
- anchorRef: Ge,
212
- getPreviousStop: de
213
- }), Je = Me && Ne === "keyboard", Ye = C.useMemo(() => ({
214
- open: F,
215
- setOpen: M,
216
- contentId: U,
217
- setCustomContentId: H,
218
- triggerId: he,
219
- resolvedTriggerId: ge,
220
- setResolvedTriggerId: _e,
221
- triggerRef: K,
222
- triggerElement: G,
223
- triggerElementRef: Le,
224
- surfaceElementRef: Re,
225
- arrowRef: be,
226
- onTriggerClick: Ue,
227
- onTriggerKeyDown: Ke,
228
- hoverTriggerHandlers: $ ? Be : null,
229
- hoverSurfaceHandlers: $ ? Ve : null,
230
- contextMode: x,
231
- contextTriggerHandlers: x ? Pe : null,
232
- onContentContextMenu: Fe.onContextMenu,
233
- keyboardContext: Je,
234
- onContentKeyDown: qe,
221
+ }), Je = oe({
222
+ enabled: P,
223
+ surface: U,
224
+ anchorRef: Ke,
225
+ getPreviousStop: pe
226
+ }), Ye = Ne && Pe === "keyboard", Xe = T.useMemo(() => ({
227
+ open: P,
228
+ setOpen: N,
229
+ contentId: B,
230
+ setCustomContentId: ve,
231
+ triggerId: V,
232
+ resolvedTriggerId: H,
233
+ setResolvedTriggerId: ye,
234
+ triggerRef: G,
235
+ triggerElement: W,
236
+ triggerElementRef: Re,
237
+ surfaceElementRef: ze,
238
+ arrowRef: Se,
239
+ onTriggerClick: We,
240
+ onTriggerKeyDown: qe,
241
+ hoverTriggerHandlers: $ ? Ve : null,
242
+ hoverSurfaceHandlers: $ ? He : null,
243
+ contextMode: y,
244
+ contextTriggerHandlers: y ? Fe : null,
245
+ onContentContextMenu: Ie.onContextMenu,
246
+ keyboardContext: Ye,
247
+ onContentKeyDown: Je,
235
248
  layerId: X,
236
- floatingProps: Ee,
237
- arrowStyles: we,
238
- placedSide: Te,
239
- fitViewport: T?.fitViewport === !0
249
+ floatingProps: Oe,
250
+ arrowStyles: Ee,
251
+ placedSide: De,
252
+ fitViewport: b?.fitViewport === !0
240
253
  }), [
241
- F,
242
- M,
243
- U,
244
- he,
245
- ge,
246
- G,
247
- Le,
254
+ P,
255
+ N,
256
+ B,
257
+ V,
258
+ H,
259
+ W,
248
260
  Re,
249
- Ue,
250
- Ke,
261
+ ze,
262
+ We,
263
+ qe,
251
264
  $,
252
- Be,
253
265
  Ve,
254
- x,
255
- Pe,
266
+ He,
267
+ y,
256
268
  Fe,
269
+ Ie,
270
+ Ye,
257
271
  Je,
258
- qe,
259
272
  X,
273
+ Oe,
260
274
  Ee,
261
- we,
262
- Te,
263
- T?.fitViewport
275
+ De,
276
+ b?.fitViewport
264
277
  ]);
265
- return /* @__PURE__ */ w(E.Provider, {
266
- value: Ye,
267
- children: D
278
+ return /* @__PURE__ */ D(k.Provider, {
279
+ value: Xe,
280
+ children: C
268
281
  });
269
282
  };
270
- N.displayName = "Popover";
271
- var P = ({ children: e, asChild: t, id: n, onClick: r, onKeyDown: ee, onContextMenu: a, onPointerEnter: o, onPointerMove: s, onPointerLeave: c, ref: te, ...l }) => {
272
- let { open: u, contentId: f, triggerId: ne, triggerElementRef: re, setResolvedTriggerId: p, onTriggerClick: m, onTriggerKeyDown: h, hoverTriggerHandlers: g, contextMode: _, contextTriggerHandlers: v } = k("Popover.Trigger"), y = d(te, re), ie = {
283
+ F.displayName = "Popover";
284
+ var I = ({ children: e, asChild: t, id: n, onClick: r, onKeyDown: ee, onContextMenu: a, onPointerEnter: o, onPointerMove: s, onPointerLeave: c, ref: te, ...l }) => {
285
+ let { open: u, contentId: f, triggerId: p, triggerElementRef: ne, setResolvedTriggerId: re, onTriggerClick: m, onTriggerKeyDown: h, hoverTriggerHandlers: g, contextMode: _, contextTriggerHandlers: v } = M("Popover.Trigger"), ie = d(te, ne), y = {
273
286
  ...l,
274
- id: n ?? ne,
287
+ id: n ?? p,
275
288
  "aria-haspopup": "dialog",
276
289
  "aria-expanded": !_ && u,
277
290
  "aria-controls": u && !_ ? f : void 0,
@@ -281,93 +294,95 @@ var P = ({ children: e, asChild: t, id: n, onClick: r, onKeyDown: ee, onContextM
281
294
  onPointerEnter: g ? i(o, g.onPointerEnter) : o,
282
295
  onPointerMove: g ? i(s, g.onPointerMove) : s,
283
296
  onPointerLeave: g ? i(c, g.onPointerLeave) : c,
284
- ref: y
297
+ ref: ie
285
298
  };
286
- return x(e, ie, {
299
+ return C(e, y, {
287
300
  componentName: "Popover.Trigger",
288
301
  asChild: t,
289
- onResolvedId: p,
302
+ onResolvedId: re,
290
303
  omitStateAria: _
291
304
  });
292
305
  };
293
- P.displayName = "PopoverTrigger";
294
- var F = ({ children: n, title: o, id: s, className: te, style: l, "aria-label": u, "aria-labelledby": f, onKeyDown: ne, onContextMenu: re, onPointerEnter: p, onPointerLeave: m, ref: g, ...v }) => {
295
- let { open: y, contentId: ie, setCustomContentId: b, resolvedTriggerId: x, triggerRef: ae, triggerElement: S, surfaceElementRef: oe, arrowRef: E, layerId: D, floatingProps: O, arrowStyles: ce, placedSide: le, fitViewport: ue, onContentKeyDown: de, hoverSurfaceHandlers: N, contextMode: P, onContentContextMenu: F, keyboardContext: I } = k("Popover.Content"), L = c("popover-title"), fe = d(g, oe), R = ee(o), z = f === void 0 && !u && !R, B = y && z && !P, V = C.useCallback((e) => {
296
- if (!B || !S || typeof MutationObserver > "u") return M();
306
+ I.displayName = "PopoverTrigger";
307
+ var L = ({ children: n, title: o, id: s, className: te, style: l, "aria-label": u, "aria-labelledby": f, onKeyDown: ne, onContextMenu: re, onPointerEnter: m, onPointerLeave: h, motion: v, ref: ie, ...b }) => {
308
+ let { open: x, contentId: oe, setCustomContentId: S, resolvedTriggerId: C, triggerRef: se, triggerElement: w, surfaceElementRef: ce, arrowRef: k, layerId: A, floatingProps: j, arrowStyles: N, placedSide: de, fitViewport: fe, onContentKeyDown: pe, hoverSurfaceHandlers: F, contextMode: I, onContentContextMenu: L, keyboardContext: R } = M("Popover.Content"), me = c("popover-title"), { isMounted: he, ref: z, presenceProps: ge } = p(x, { appear: !0 }), _e = y(v, _), ve = d(ie, ce, z), B = ee(o), V = f === void 0 && !u && !B, H = x && V && !I, ye = T.useCallback((e) => {
309
+ if (!H || !w || typeof MutationObserver > "u") return P();
297
310
  let t = new MutationObserver(e);
298
- return t.observe(S, {
311
+ return t.observe(w, {
299
312
  attributes: !0,
300
313
  attributeFilter: ["id", "aria-labelledby"],
301
314
  childList: !0,
302
315
  subtree: !0
303
316
  }), () => t.disconnect();
304
- }, [B, S]), pe = C.useSyncExternalStore(V, () => B ? A(S, x) : void 0, () => B ? x : void 0), me = f ?? (u ? void 0 : R ? L : pe), H = s || void 0;
305
- if (C.useEffect(() => (b(H), () => b(void 0)), [H, b]), C.useEffect(() => {
306
- y && z && P && t && r("Popover.Content:name", "Popover.Content: the popover has no accessible name. A context popover (openOnContext) is not named by its region: pass `title`, `aria-label` or `aria-labelledby`.");
317
+ }, [H, w]), U = T.useSyncExternalStore(ye, () => H ? le(w, C) : void 0, () => H ? C : void 0), be = f ?? (u ? void 0 : B ? me : U), W = s || void 0;
318
+ if (T.useEffect(() => (S(W), () => S(void 0)), [W, S]), T.useEffect(() => {
319
+ x && V && I && t && r("Popover.Content:name", "Popover.Content: the popover has no accessible name. A context popover (openOnContext) is not named by its region: pass `title`, `aria-label` or `aria-labelledby`.");
307
320
  }, [
308
- y,
309
- z,
310
- P
311
- ]), C.useEffect(() => {
312
- if (!B || !t) return;
313
- let e = ae.current;
321
+ x,
322
+ V,
323
+ I
324
+ ]), T.useEffect(() => {
325
+ if (!H || !t) return;
326
+ let e = se.current;
314
327
  if (!e) {
315
328
  r("Popover.Content:name", "Popover.Content: the popover has no accessible name. Pass `title`, `aria-label` or `aria-labelledby`, or open it from a Popover.Trigger.");
316
329
  return;
317
330
  }
318
- let n = A(e, x);
319
- n ? j(e.ownerDocument, n) || r("Popover.Content:trigger-name", "Popover.Content: the popover is named by its trigger, but the trigger has no text to name it (an icon-only trigger needs `aria-label`, or `aria-labelledby` pointing at text), so the popover has no accessible name. Name the trigger, or pass `title`, `aria-label` or `aria-labelledby`.") : r("Popover.Content:trigger-id", "Popover.Content: the popover is named by its trigger, but the trigger element has no `id` (a render-prop child of Popover.Trigger must spread the `id` it receives), so the popover has no accessible name. Spread every trigger prop onto the element, or pass `title`, `aria-label` or `aria-labelledby`.");
331
+ let n = le(e, C);
332
+ n ? ue(e.ownerDocument, n) || r("Popover.Content:trigger-name", "Popover.Content: the popover is named by its trigger, but the trigger has no text to name it (an icon-only trigger needs `aria-label`, or `aria-labelledby` pointing at text), so the popover has no accessible name. Name the trigger, or pass `title`, `aria-label` or `aria-labelledby`.") : r("Popover.Content:trigger-id", "Popover.Content: the popover is named by its trigger, but the trigger element has no `id` (a render-prop child of Popover.Trigger must spread the `id` it receives), so the popover has no accessible name. Spread every trigger prop onto the element, or pass `title`, `aria-label` or `aria-labelledby`.");
320
333
  }, [
321
- B,
322
- x,
323
- ae,
324
- pe
325
- ]), !y) return null;
326
- let U = /* @__PURE__ */ T(se, { children: [R && /* @__PURE__ */ w("h2", {
327
- id: L,
334
+ H,
335
+ C,
336
+ se,
337
+ U
338
+ ]), !he) return null;
339
+ let xe = /* @__PURE__ */ O(E, { children: [B && /* @__PURE__ */ D("h2", {
340
+ id: me,
328
341
  className: e(a.title, "mb-2 text-subtitle-2 font-semibold"),
329
342
  children: o
330
343
  }), n] });
331
- return /* @__PURE__ */ w(h, {
332
- layerId: D,
333
- children: /* @__PURE__ */ T("div", {
344
+ return /* @__PURE__ */ D(g, {
345
+ layerId: A,
346
+ children: /* @__PURE__ */ O("div", {
334
347
  role: "dialog",
335
348
  "aria-label": u,
336
- "aria-labelledby": me,
337
- tabIndex: I ? -1 : void 0,
338
- ...v,
339
- ref: fe,
340
- id: H ?? ie,
341
- "data-side": O["data-side"],
342
- "data-align": O["data-align"],
349
+ "aria-labelledby": be,
350
+ tabIndex: R ? -1 : void 0,
351
+ ...b,
352
+ ...ge,
353
+ ref: ve,
354
+ id: W ?? oe,
355
+ "data-state": x ? "open" : "closed",
356
+ "data-side": j["data-side"],
357
+ "data-align": j["data-align"],
343
358
  style: {
344
359
  ...l,
345
- ...O.style
360
+ ...j.style
346
361
  },
347
- onKeyDown: i(ne, de),
348
- onContextMenu: i(re, F),
349
- onPointerEnter: N ? i(p, N.onPointerEnter) : p,
350
- onPointerLeave: N ? i(m, N.onPointerLeave) : m,
351
- className: e(a.root, "w-64 rounded-md border border-border bg-background p-4 text-body-1 font-normal text-foreground normal-case tracking-normal text-start shadow-4", te),
352
- children: [/* @__PURE__ */ w(_, {
353
- ref: E,
354
- side: le,
355
- style: ce,
362
+ onKeyDown: i(ne, pe),
363
+ onContextMenu: i(re, L),
364
+ onPointerEnter: F ? i(m, F.onPointerEnter) : m,
365
+ onPointerLeave: F ? i(h, F.onPointerLeave) : h,
366
+ className: e(a.root, "w-64 rounded-md border border-border bg-background p-4 text-body-1 font-normal text-foreground normal-case tracking-normal text-start shadow-4", _e, te),
367
+ children: [/* @__PURE__ */ D(ae, {
368
+ ref: k,
369
+ side: de,
370
+ style: N,
356
371
  "data-wave-popover-arrow": "",
357
372
  className: a.beak
358
- }), ue ? /* @__PURE__ */ w("div", {
373
+ }), fe ? /* @__PURE__ */ D("div", {
359
374
  className: "overflow-y-auto max-h-[calc(var(--wave-popup-available-height)-2rem-2px)]",
360
- children: U
361
- }) : U]
375
+ children: xe
376
+ }) : xe]
362
377
  })
363
378
  });
364
379
  };
365
- F.displayName = "PopoverContent";
366
- var I = /* @__PURE__ */ Object.assign(N, {
367
- Trigger: P,
368
- Content: F
380
+ L.displayName = "PopoverContent";
381
+ var R = /* @__PURE__ */ Object.assign(F, {
382
+ Trigger: I,
383
+ Content: L
369
384
  });
370
385
  //#endregion
371
- export { I as Popover, F as PopoverContent, P as PopoverTrigger };
386
+ export { R as Popover, L as PopoverContent, I as PopoverTrigger };
372
387
 
373
388
  //# sourceMappingURL=Popover.mjs.map