@mortenbrudvik/waveui 0.8.0 → 0.10.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 (206) hide show
  1. package/README.md +634 -167
  2. package/dist/components/data-display/InfoButton.cjs +2 -0
  3. package/dist/components/data-display/InfoButton.cjs.map +1 -0
  4. package/dist/components/data-display/InfoButton.mjs +173 -0
  5. package/dist/components/data-display/InfoButton.mjs.map +1 -0
  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 +39 -96
  9. package/dist/components/data-display/InfoLabel.mjs.map +1 -1
  10. package/dist/components/input/Calendar.cjs +2 -0
  11. package/dist/components/input/Calendar.cjs.map +1 -0
  12. package/dist/components/input/Calendar.mjs +352 -0
  13. package/dist/components/input/Calendar.mjs.map +1 -0
  14. package/dist/components/input/Calendar.views.cjs +2 -0
  15. package/dist/components/input/Calendar.views.cjs.map +1 -0
  16. package/dist/components/input/Calendar.views.mjs +194 -0
  17. package/dist/components/input/Calendar.views.mjs.map +1 -0
  18. package/dist/components/input/Checkbox.cjs +1 -1
  19. package/dist/components/input/Checkbox.cjs.map +1 -1
  20. package/dist/components/input/Checkbox.mjs +91 -75
  21. package/dist/components/input/Checkbox.mjs.map +1 -1
  22. package/dist/components/input/ColorArea.cjs +1 -1
  23. package/dist/components/input/ColorArea.cjs.map +1 -1
  24. package/dist/components/input/ColorArea.mjs +18 -18
  25. package/dist/components/input/ColorArea.mjs.map +1 -1
  26. package/dist/components/input/ColorPicker.parts.cjs +1 -1
  27. package/dist/components/input/ColorPicker.parts.cjs.map +1 -1
  28. package/dist/components/input/ColorPicker.parts.mjs +1 -1
  29. package/dist/components/input/ColorPicker.parts.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.expand.cjs +1 -1
  33. package/dist/components/input/Combobox.expand.cjs.map +1 -1
  34. package/dist/components/input/Combobox.expand.mjs +20 -20
  35. package/dist/components/input/Combobox.expand.mjs.map +1 -1
  36. package/dist/components/input/Combobox.mjs +219 -138
  37. package/dist/components/input/Combobox.mjs.map +1 -1
  38. package/dist/components/input/Combobox.text.cjs +2 -0
  39. package/dist/components/input/Combobox.text.cjs.map +1 -0
  40. package/dist/components/input/Combobox.text.mjs +24 -0
  41. package/dist/components/input/Combobox.text.mjs.map +1 -0
  42. package/dist/components/input/DatePicker.cjs +1 -1
  43. package/dist/components/input/DatePicker.cjs.map +1 -1
  44. package/dist/components/input/DatePicker.mjs +205 -286
  45. package/dist/components/input/DatePicker.mjs.map +1 -1
  46. package/dist/components/input/Dropdown.cjs +1 -1
  47. package/dist/components/input/Dropdown.cjs.map +1 -1
  48. package/dist/components/input/Dropdown.mjs +137 -105
  49. package/dist/components/input/Dropdown.mjs.map +1 -1
  50. package/dist/components/input/Field.cjs +1 -1
  51. package/dist/components/input/Field.cjs.map +1 -1
  52. package/dist/components/input/Field.mjs +99 -66
  53. package/dist/components/input/Field.mjs.map +1 -1
  54. package/dist/components/input/Input.cjs +1 -1
  55. package/dist/components/input/Input.cjs.map +1 -1
  56. package/dist/components/input/Input.mjs +79 -55
  57. package/dist/components/input/Input.mjs.map +1 -1
  58. package/dist/components/input/Label.cjs +1 -1
  59. package/dist/components/input/Label.cjs.map +1 -1
  60. package/dist/components/input/Label.mjs +19 -13
  61. package/dist/components/input/Label.mjs.map +1 -1
  62. package/dist/components/input/Listbox.cjs +2 -0
  63. package/dist/components/input/Listbox.cjs.map +1 -0
  64. package/dist/components/input/Listbox.mjs +134 -0
  65. package/dist/components/input/Listbox.mjs.map +1 -0
  66. package/dist/components/input/Option.cjs +1 -1
  67. package/dist/components/input/Option.cjs.map +1 -1
  68. package/dist/components/input/Option.mjs +158 -97
  69. package/dist/components/input/Option.mjs.map +1 -1
  70. package/dist/components/input/Rating.cjs +1 -1
  71. package/dist/components/input/Rating.cjs.map +1 -1
  72. package/dist/components/input/Rating.item.cjs +2 -0
  73. package/dist/components/input/Rating.item.cjs.map +1 -0
  74. package/dist/components/input/Rating.item.mjs +255 -0
  75. package/dist/components/input/Rating.item.mjs.map +1 -0
  76. package/dist/components/input/Rating.mjs +150 -151
  77. package/dist/components/input/Rating.mjs.map +1 -1
  78. package/dist/components/input/SearchBox.cjs +1 -1
  79. package/dist/components/input/SearchBox.cjs.map +1 -1
  80. package/dist/components/input/SearchBox.mjs +146 -115
  81. package/dist/components/input/SearchBox.mjs.map +1 -1
  82. package/dist/components/input/Select.cjs +1 -1
  83. package/dist/components/input/Select.cjs.map +1 -1
  84. package/dist/components/input/Select.mjs +34 -25
  85. package/dist/components/input/Select.mjs.map +1 -1
  86. package/dist/components/input/Slider.cjs +1 -1
  87. package/dist/components/input/Slider.cjs.map +1 -1
  88. package/dist/components/input/Slider.mjs +77 -54
  89. package/dist/components/input/Slider.mjs.map +1 -1
  90. package/dist/components/input/SpinButton.cjs +1 -1
  91. package/dist/components/input/SpinButton.cjs.map +1 -1
  92. package/dist/components/input/SpinButton.mjs +198 -96
  93. package/dist/components/input/SpinButton.mjs.map +1 -1
  94. package/dist/components/input/SwatchPicker.cjs +1 -1
  95. package/dist/components/input/SwatchPicker.cjs.map +1 -1
  96. package/dist/components/input/SwatchPicker.context.cjs +2 -0
  97. package/dist/components/input/SwatchPicker.context.cjs.map +1 -0
  98. package/dist/components/input/SwatchPicker.context.mjs +35 -0
  99. package/dist/components/input/SwatchPicker.context.mjs.map +1 -0
  100. package/dist/components/input/SwatchPicker.mjs +131 -103
  101. package/dist/components/input/SwatchPicker.mjs.map +1 -1
  102. package/dist/components/input/SwatchPicker.swatches.cjs +2 -0
  103. package/dist/components/input/SwatchPicker.swatches.cjs.map +1 -0
  104. package/dist/components/input/SwatchPicker.swatches.mjs +207 -0
  105. package/dist/components/input/SwatchPicker.swatches.mjs.map +1 -0
  106. package/dist/components/input/Switch.cjs +1 -1
  107. package/dist/components/input/Switch.cjs.map +1 -1
  108. package/dist/components/input/Switch.mjs +71 -55
  109. package/dist/components/input/Switch.mjs.map +1 -1
  110. package/dist/components/input/TagPicker.cjs +1 -1
  111. package/dist/components/input/TagPicker.cjs.map +1 -1
  112. package/dist/components/input/TagPicker.mjs +154 -123
  113. package/dist/components/input/TagPicker.mjs.map +1 -1
  114. package/dist/components/input/Textarea.cjs +1 -1
  115. package/dist/components/input/Textarea.cjs.map +1 -1
  116. package/dist/components/input/Textarea.mjs +28 -21
  117. package/dist/components/input/Textarea.mjs.map +1 -1
  118. package/dist/components/input/TimePicker.cjs +1 -1
  119. package/dist/components/input/TimePicker.cjs.map +1 -1
  120. package/dist/components/input/TimePicker.mjs +204 -199
  121. package/dist/components/input/TimePicker.mjs.map +1 -1
  122. package/dist/components/input/dateUtils.cjs +1 -1
  123. package/dist/components/input/dateUtils.cjs.map +1 -1
  124. package/dist/components/input/dateUtils.mjs +114 -96
  125. package/dist/components/input/dateUtils.mjs.map +1 -1
  126. package/dist/components/input/fieldLabel.cjs +2 -0
  127. package/dist/components/input/fieldLabel.cjs.map +1 -0
  128. package/dist/components/input/fieldLabel.mjs +17 -0
  129. package/dist/components/input/fieldLabel.mjs.map +1 -0
  130. package/dist/components/input/inputLook.cjs +2 -0
  131. package/dist/components/input/inputLook.cjs.map +1 -0
  132. package/dist/components/input/inputLook.mjs +28 -0
  133. package/dist/components/input/inputLook.mjs.map +1 -0
  134. package/dist/components/input/pickerLabels.cjs +2 -0
  135. package/dist/components/input/pickerLabels.cjs.map +1 -0
  136. package/dist/components/input/pickerLabels.mjs +16 -0
  137. package/dist/components/input/pickerLabels.mjs.map +1 -0
  138. package/dist/components/input/pickerStyles.cjs +1 -1
  139. package/dist/components/input/pickerStyles.cjs.map +1 -1
  140. package/dist/components/input/pickerStyles.mjs +42 -4
  141. package/dist/components/input/pickerStyles.mjs.map +1 -1
  142. package/dist/components/input/pickerValues.cjs +2 -0
  143. package/dist/components/input/pickerValues.cjs.map +1 -0
  144. package/dist/components/input/pickerValues.mjs +24 -0
  145. package/dist/components/input/pickerValues.mjs.map +1 -0
  146. package/dist/components/navigation/Menu.popover.cjs +1 -1
  147. package/dist/components/navigation/Menu.popover.cjs.map +1 -1
  148. package/dist/components/navigation/Menu.popover.mjs +10 -10
  149. package/dist/components/navigation/Menu.root.cjs +1 -1
  150. package/dist/components/navigation/Menu.root.cjs.map +1 -1
  151. package/dist/components/navigation/Menu.root.mjs +10 -10
  152. package/dist/components/overlays/Popover.cjs +1 -1
  153. package/dist/components/overlays/Popover.cjs.map +1 -1
  154. package/dist/components/overlays/Popover.mjs +203 -208
  155. package/dist/components/overlays/Popover.mjs.map +1 -1
  156. package/dist/components/overlays/Popover.shared.cjs +1 -1
  157. package/dist/components/overlays/Popover.shared.cjs.map +1 -1
  158. package/dist/components/overlays/Popover.shared.mjs +82 -77
  159. package/dist/components/overlays/Popover.shared.mjs.map +1 -1
  160. package/dist/components/provider/WaveProvider.cjs +1 -1
  161. package/dist/components/provider/WaveProvider.cjs.map +1 -1
  162. package/dist/components/provider/WaveProvider.mjs +25 -19
  163. package/dist/components/provider/WaveProvider.mjs.map +1 -1
  164. package/dist/components/table/useGridNavigation.cjs +1 -1
  165. package/dist/components/table/useGridNavigation.cjs.map +1 -1
  166. package/dist/components/table/useGridNavigation.mjs +67 -70
  167. package/dist/components/table/useGridNavigation.mjs.map +1 -1
  168. package/dist/hooks/useActiveDescendant.cjs +2 -0
  169. package/dist/hooks/useActiveDescendant.cjs.map +1 -0
  170. package/dist/hooks/useActiveDescendant.mjs +56 -0
  171. package/dist/hooks/useActiveDescendant.mjs.map +1 -0
  172. package/dist/hooks/useFieldControl.cjs.map +1 -1
  173. package/dist/hooks/useFieldControl.mjs.map +1 -1
  174. package/dist/hooks/useListbox.cjs +1 -1
  175. package/dist/hooks/useListbox.cjs.map +1 -1
  176. package/dist/hooks/useListbox.mjs +250 -210
  177. package/dist/hooks/useListbox.mjs.map +1 -1
  178. package/dist/hooks/useRovingGrid.cjs +2 -0
  179. package/dist/hooks/useRovingGrid.cjs.map +1 -0
  180. package/dist/hooks/useRovingGrid.mjs +69 -0
  181. package/dist/hooks/useRovingGrid.mjs.map +1 -0
  182. package/dist/index.cjs +1 -1
  183. package/dist/index.d.cts +2901 -203
  184. package/dist/index.d.ts +2901 -203
  185. package/dist/index.mjs +107 -99
  186. package/dist/lib/classNames.cjs +1 -1
  187. package/dist/lib/classNames.cjs.map +1 -1
  188. package/dist/lib/classNames.mjs +111 -67
  189. package/dist/lib/classNames.mjs.map +1 -1
  190. package/dist/lib/date.cjs +2 -0
  191. package/dist/lib/date.cjs.map +1 -0
  192. package/dist/lib/date.mjs +44 -0
  193. package/dist/lib/date.mjs.map +1 -0
  194. package/dist/lib/focus.cjs +1 -1
  195. package/dist/lib/focus.cjs.map +1 -1
  196. package/dist/lib/focus.mjs +5 -2
  197. package/dist/lib/focus.mjs.map +1 -1
  198. package/dist/lib/layers.cjs.map +1 -1
  199. package/dist/lib/layers.mjs.map +1 -1
  200. package/dist/lib/styles.cjs +1 -1
  201. package/dist/lib/styles.cjs.map +1 -1
  202. package/dist/lib/styles.mjs +21 -4
  203. package/dist/lib/styles.mjs.map +1 -1
  204. package/dist/styles.css +1 -1
  205. package/package.json +1 -1
  206. package/src/styles/tokens.css +13 -0
@@ -1,32 +1,31 @@
1
1
  "use client";
2
2
  import { cn as e } from "../../lib/cn.mjs";
3
3
  import { isDev as t, reportMissingContext as n, warnOnce as r } from "../../lib/dev.mjs";
4
- import { slotRendersContent as i } from "../../lib/slot.mjs";
5
- import { composeEventHandlers as a } from "../../lib/composeEventHandlers.mjs";
6
- import { popoverContentClassNames as o } from "../../lib/classNames.mjs";
7
- import { useEventCallback as s } from "../../hooks/useEventCallback.mjs";
8
- import { useControllable as c } from "../../hooks/useControllable.mjs";
9
- import { useId as l } from "../../hooks/useId.mjs";
10
- import { focusElement as ee, getFirstTabbable as u, isConnectedAndFocusable as d } from "../../lib/focus.mjs";
11
- import { useMergedRefs as f } from "../../hooks/useMergedRefs.mjs";
12
- import { useIsClient as p } from "../../hooks/useIsClient.mjs";
13
- import { getLayerTreeElements as m } from "../../lib/layers.mjs";
14
- import { useDismiss as h } from "../../hooks/useDismiss.mjs";
15
- import { Portal as g } from "../portal/Portal.mjs";
16
- import { usePopupPosition as _ } from "../../hooks/usePopupPosition.mjs";
17
- import { useRestoreFocus as v } from "../../hooks/useRestoreFocus.mjs";
18
- import { getTriggerFocusTarget as y, useTriggerElement as te, useTriggerFocusRef as b } from "../../hooks/useTriggerElement.mjs";
19
- import { useHoverIntent as x } from "../../hooks/useHoverIntent.mjs";
20
- import { useContextMenuAnchor as S } from "../../hooks/useContextMenuAnchor.mjs";
21
- import { PopoverBeak as C, getTabbableThrough as w, usePopoverTabOrder as T } from "./Popover.shared.mjs";
22
- import * as E from "react";
23
- import { jsx as D, jsxs as ne } from "react/jsx-runtime";
4
+ import { slotRendersContent as ee } from "../../lib/slot.mjs";
5
+ import { composeEventHandlers as i } from "../../lib/composeEventHandlers.mjs";
6
+ import { popoverContentClassNames as a } from "../../lib/classNames.mjs";
7
+ import { useEventCallback as o } from "../../hooks/useEventCallback.mjs";
8
+ import { useControllable as s } from "../../hooks/useControllable.mjs";
9
+ import { useId as c } from "../../hooks/useId.mjs";
10
+ import { focusElement as te, getFirstTabbable as l, isConnectedAndFocusable as u } from "../../lib/focus.mjs";
11
+ import { useMergedRefs as d } from "../../hooks/useMergedRefs.mjs";
12
+ import { useIsClient as f } from "../../hooks/useIsClient.mjs";
13
+ import { useDismiss as ne } from "../../hooks/useDismiss.mjs";
14
+ import { Portal as p } from "../portal/Portal.mjs";
15
+ import { usePopupPosition as re } from "../../hooks/usePopupPosition.mjs";
16
+ import { useRestoreFocus as m } from "../../hooks/useRestoreFocus.mjs";
17
+ import { useHoverIntent as h } from "../../hooks/useHoverIntent.mjs";
18
+ import { PopoverBeak as g, getTabbableThrough as _, isFocusInSurfaceTree as v, usePopoverTabOrder as y } from "./Popover.shared.mjs";
19
+ import { getTriggerFocusTarget as b, useTriggerElement as x, useTriggerFocusRef as S } from "../../hooks/useTriggerElement.mjs";
20
+ import { useContextMenuAnchor as ie } from "../../hooks/useContextMenuAnchor.mjs";
21
+ import * as C from "react";
22
+ import { jsx as w, jsxs as T } from "react/jsx-runtime";
24
23
  //#region src/components/overlays/Popover.tsx
25
- var O = E.createContext(null);
26
- O.displayName = "PopoverContext";
27
- var k = null;
28
- function A() {
29
- return k ??= {
24
+ var E = C.createContext(null);
25
+ E.displayName = "PopoverContext";
26
+ var D = null;
27
+ function O() {
28
+ return D ??= {
30
29
  open: !1,
31
30
  setOpen: () => {},
32
31
  contentId: "wave-popover-inert-content",
@@ -56,190 +55,186 @@ function A() {
56
55
  },
57
56
  arrowStyles: {},
58
57
  placedSide: "bottom"
59
- }, k;
58
+ }, D;
60
59
  }
61
- function j(e) {
62
- return E.useContext(O) || (n(e, "Popover"), A());
60
+ function k(e) {
61
+ return C.useContext(E) || (n(e, "Popover"), O());
63
62
  }
64
- function M(e, t) {
63
+ function A(e, t) {
65
64
  let n = (t ?? "").split(/\s+/).filter((t) => t && e.getElementById(t));
66
65
  return n.length > 0 ? n.join(" ") : void 0;
67
66
  }
68
- function re(e, t) {
67
+ function j(e, t) {
69
68
  if (!e) return t;
70
- let n = e.ownerDocument, r = (t ? n.getElementById(t) : null) ?? y(e) ?? e;
71
- return M(n, r.getAttribute("aria-labelledby")) ?? (r.id || e.id || void 0);
69
+ let n = e.ownerDocument, r = (t ? n.getElementById(t) : null) ?? b(e) ?? e;
70
+ return A(n, r.getAttribute("aria-labelledby")) ?? (r.id || e.id || void 0);
72
71
  }
73
- function ie(e, t) {
72
+ function ae(e, t) {
74
73
  return t.split(/\s+/).some((t) => {
75
74
  let n = t ? e.getElementById(t) : null;
76
75
  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;
77
76
  });
78
77
  }
79
- var N = () => () => {};
80
- function P(e, t) {
81
- let n = e?.ownerDocument.activeElement;
82
- return !e || !n ? !1 : e.contains(n) ? !0 : m(t, { includeOwnElements: !1 }).some((e) => e.contains(n));
83
- }
84
- function ae(e) {
78
+ var oe = () => () => {};
79
+ function M(e) {
85
80
  return !!e && typeof e.nodeType == "number";
86
81
  }
87
- function F(e) {
82
+ function se(e) {
88
83
  return { get current() {
89
84
  return e();
90
85
  } };
91
86
  }
92
- function oe(e, t, n) {
93
- return y(e) ?? w(e, t, n);
87
+ function ce(e, t, n) {
88
+ return b(e) ?? _(e, t, n);
94
89
  }
95
- var I = ({ open: e, defaultOpen: t, onOpenChange: n, side: i = "bottom", align: a = "start", ignoreOutsideRefs: o, openOnHover: m = !1, openDelay: g = 250, closeDelay: te = 500, openOnContext: C = !1, target: w, children: ne }) => {
96
- let [k, A] = c(e, t ?? !1, n), j = E.useRef(!1), M = s((e) => {
97
- j.current = !1, A(e);
98
- }), re = E.useCallback(() => j.current, []), ie = p(), N = k && ie, [I, L] = E.useState("other"), [R, z] = E.useState(!1), [se, ce] = E.useState(N), B = I;
99
- N !== se && (ce(N), N && (B = R ? "hover" : "other")), B !== I && L(B), R && z(!1);
100
- let V = l("popover-content"), [H, le] = E.useState(void 0), U = H ?? V, ue = l("popover-trigger"), [W, de] = E.useState(void 0), [G, fe] = E.useState(null), [K, pe] = E.useState(null), q = E.useRef(null), J = E.useRef(null), me = E.useRef(null), he = ae(w) ? w : null, Y = E.useRef(null);
101
- E.useInsertionEffect(() => {
102
- Y.current = he;
103
- }, [he]);
104
- let { setReference: ge, setFloating: _e, floatingProps: ve, arrowStyles: ye, side: be } = _({
90
+ var N = ({ open: e, defaultOpen: t, onOpenChange: n, side: ee = "bottom", align: i = "start", ignoreOutsideRefs: a, openOnHover: p = !1, openDelay: g = 250, closeDelay: _ = 500, openOnContext: x = !1, target: T, children: D }) => {
91
+ let [O, k] = s(e, t ?? !1, n), A = C.useRef(!1), j = o((e) => {
92
+ A.current = !1, k(e);
93
+ }), ae = C.useCallback(() => A.current, []), oe = f(), N = O && oe, [P, F] = C.useState("other"), [I, L] = C.useState(!1), [R, le] = C.useState(N), z = P;
94
+ N !== R && (le(N), N && (z = I ? "hover" : "other")), z !== P && F(z), I && L(!1);
95
+ let B = c("popover-content"), [V, ue] = C.useState(void 0), H = V ?? B, de = c("popover-trigger"), [U, fe] = C.useState(void 0), [W, pe] = C.useState(null), [G, me] = C.useState(null), K = C.useRef(null), q = C.useRef(null), he = C.useRef(null), ge = M(T) ? T : null, J = C.useRef(null);
96
+ C.useInsertionEffect(() => {
97
+ J.current = ge;
98
+ }, [ge]);
99
+ let { setReference: _e, setFloating: ve, floatingProps: ye, arrowStyles: be, side: xe } = re({
105
100
  open: N,
106
- side: i,
107
- align: a,
101
+ side: ee,
102
+ align: i,
108
103
  offset: 8,
109
- arrowRef: me
110
- }), xe = E.useRef(null), Se = s(() => {
111
- let e = C ? xe.current?.current : null;
112
- if (e && d(e)) return e;
113
- let t = q.current, n = t ? y(t) : null;
104
+ arrowRef: he
105
+ }), Se = C.useRef(null), Y = o(() => {
106
+ let e = x ? Se.current?.current : null;
107
+ if (e && u(e)) return e;
108
+ let t = K.current, n = t ? b(t) : null;
114
109
  if (n) return n;
115
- let r = Y.current;
116
- return r && d(r) ? r : t;
117
- }), Ce = E.useMemo(() => F(Se), [Se]), we = s((e) => !(e.ctrlKey && q.current?.contains(e.target))), { layerId: X } = h({
110
+ let r = J.current;
111
+ return r && u(r) ? r : t;
112
+ }), Ce = C.useMemo(() => se(Y), [Y]), we = o((e) => !(e.ctrlKey && K.current?.contains(e.target))), { layerId: X } = ne({
118
113
  open: N,
119
- onDismiss: () => M(!1),
120
- refs: C ? [
114
+ onDismiss: () => j(!1),
115
+ refs: x ? [
116
+ q,
121
117
  J,
122
- Y,
123
- ...o ?? []
118
+ ...a ?? []
124
119
  ] : [
125
- J,
126
120
  q,
127
- Y,
128
- ...o ?? []
121
+ K,
122
+ J,
123
+ ...a ?? []
129
124
  ],
130
125
  anchorRef: Ce,
131
126
  kind: "popover",
132
- outsidePress: !C || we
133
- }), Z = E.useRef(!1), { anchor: Te, fromContext: Ee, origin: De, opener: Q, triggerHandlers: Oe, surfaceHandlers: ke } = S({
134
- enabled: C,
127
+ outsidePress: !x || we
128
+ }), Z = C.useRef(!1), { anchor: Te, fromContext: Ee, origin: De, opener: Q, triggerHandlers: Oe, surfaceHandlers: ke } = ie({
129
+ enabled: x,
135
130
  open: N,
136
- trigger: K,
131
+ trigger: G,
137
132
  layerId: X,
138
133
  onOpen: (e) => {
139
- Z.current = e === "keyboard", M(!0);
134
+ Z.current = e === "keyboard", j(!0);
140
135
  },
141
- onClose: () => M(!1)
136
+ onClose: () => j(!1)
142
137
  });
143
- E.useInsertionEffect(() => {
144
- xe.current = Q;
138
+ C.useInsertionEffect(() => {
139
+ Se.current = Q;
145
140
  }, [Q]);
146
- let Ae = b(q);
147
- v({
141
+ let Ae = S(K);
142
+ m({
148
143
  enabled: N,
149
- container: G,
150
- triggerRef: C ? void 0 : Ae,
151
- finalFocusRef: C ? Q : void 0,
152
- fallback: Se,
144
+ container: W,
145
+ triggerRef: x ? void 0 : Ae,
146
+ finalFocusRef: x ? Q : void 0,
147
+ fallback: Y,
153
148
  onlyIfFocusInside: !0,
154
- isHoverClose: re
155
- }), E.useLayoutEffect(() => {
156
- N && (j.current = !1);
149
+ isHoverClose: ae
150
+ }), C.useLayoutEffect(() => {
151
+ N && (A.current = !1);
157
152
  }, [N]);
158
- let je = f(q, pe), Me = f(J, fe, _e);
159
- E.useLayoutEffect(() => {
160
- ge(Ee ? Te ?? (K && (y(K) ?? K)) : w ?? K);
153
+ let je = d(K, me), Me = d(q, pe, ve);
154
+ C.useLayoutEffect(() => {
155
+ _e(Ee ? Te ?? (G && (b(G) ?? G)) : T ?? G);
161
156
  }, [
162
157
  Te,
163
158
  Ee,
164
- w,
165
- K,
166
- ge
167
- ]), E.useLayoutEffect(() => {
159
+ T,
160
+ G,
161
+ _e
162
+ ]), C.useLayoutEffect(() => {
168
163
  if (Z.current) {
169
164
  if (!N) {
170
165
  Z.current = !1;
171
166
  return;
172
167
  }
173
- G && (Z.current = !1, ee(u(G) ?? G, { preventScroll: !0 }));
168
+ W && (Z.current = !1, te(l(W) ?? W, { preventScroll: !0 }));
174
169
  }
175
- }), E.useEffect(() => {
176
- m && C && 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.");
177
- }, [m, C]);
178
- let $ = m && !C, Ne = s(() => B === "hover" && !P(J.current, X)), { triggerHandlers: Pe, surfaceHandlers: Fe, cancel: Ie } = x({
170
+ }), C.useEffect(() => {
171
+ p && 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.");
172
+ }, [p, x]);
173
+ let $ = p && !x, Ne = o(() => z === "hover" && !v(q.current, X)), { triggerHandlers: Pe, surfaceHandlers: Fe, cancel: Ie } = h({
179
174
  enabled: $,
180
175
  open: N,
181
176
  openDelay: g,
182
- closeDelay: te,
183
- trigger: K,
184
- surface: G,
177
+ closeDelay: _,
178
+ trigger: G,
179
+ surface: W,
185
180
  onOpen: () => {
186
- z(!0), M(!0);
181
+ L(!0), j(!0);
187
182
  },
188
183
  onClose: () => {
189
- j.current = !0, A(!1);
184
+ A.current = !0, k(!1);
190
185
  },
191
186
  canClose: Ne
192
- }), Le = s(() => {
193
- Ie(), N && B === "hover" ? L("other") : M((e) => !e);
194
- }), Re = s(() => {
195
- let e = q.current, t = C ? Q.current : null;
196
- return t && e?.contains(t) ? t : e ?? Y.current;
197
- }), ze = E.useMemo(() => F(Re), [Re]), Be = s((e) => {
187
+ }), Le = o(() => {
188
+ Ie(), N && z === "hover" ? F("other") : j((e) => !e);
189
+ }), Re = o(() => {
190
+ let e = K.current, t = x ? Q.current : null;
191
+ return t && e?.contains(t) ? t : e ?? J.current;
192
+ }), ze = C.useMemo(() => se(Re), [Re]), Be = o((e) => {
198
193
  if (e.key !== "Tab" || e.shiftKey || !N) return;
199
- if (C) {
194
+ if (x) {
200
195
  let t = Re();
201
- if (!t || e.target !== (y(t) ?? t)) return;
196
+ if (!t || e.target !== (b(t) ?? t)) return;
202
197
  }
203
- let t = J.current, n = t ? u(t) : null;
198
+ let t = q.current, n = t ? l(t) : null;
204
199
  n && (e.preventDefault(), n.focus());
205
- }), Ve = T({
200
+ }), Ve = y({
206
201
  enabled: N,
207
- surface: G,
202
+ surface: W,
208
203
  anchorRef: ze,
209
- getPreviousStop: oe
210
- }), He = Ee && De === "keyboard", Ue = E.useMemo(() => ({
204
+ getPreviousStop: ce
205
+ }), He = Ee && De === "keyboard", Ue = C.useMemo(() => ({
211
206
  open: N,
212
- setOpen: M,
213
- contentId: U,
214
- setCustomContentId: le,
215
- triggerId: ue,
216
- resolvedTriggerId: W,
217
- setResolvedTriggerId: de,
218
- triggerRef: q,
219
- triggerElement: K,
207
+ setOpen: j,
208
+ contentId: H,
209
+ setCustomContentId: ue,
210
+ triggerId: de,
211
+ resolvedTriggerId: U,
212
+ setResolvedTriggerId: fe,
213
+ triggerRef: K,
214
+ triggerElement: G,
220
215
  triggerElementRef: je,
221
216
  surfaceElementRef: Me,
222
- arrowRef: me,
217
+ arrowRef: he,
223
218
  onTriggerClick: Le,
224
219
  onTriggerKeyDown: Be,
225
220
  hoverTriggerHandlers: $ ? Pe : null,
226
221
  hoverSurfaceHandlers: $ ? Fe : null,
227
- contextMode: C,
228
- contextTriggerHandlers: C ? Oe : null,
222
+ contextMode: x,
223
+ contextTriggerHandlers: x ? Oe : null,
229
224
  onContentContextMenu: ke.onContextMenu,
230
225
  keyboardContext: He,
231
226
  onContentKeyDown: Ve,
232
227
  layerId: X,
233
- floatingProps: ve,
234
- arrowStyles: ye,
235
- placedSide: be
228
+ floatingProps: ye,
229
+ arrowStyles: be,
230
+ placedSide: xe
236
231
  }), [
237
232
  N,
238
- M,
233
+ j,
234
+ H,
235
+ de,
239
236
  U,
240
- ue,
241
- W,
242
- K,
237
+ G,
243
238
  je,
244
239
  Me,
245
240
  Le,
@@ -247,121 +242,121 @@ var I = ({ open: e, defaultOpen: t, onOpenChange: n, side: i = "bottom", align:
247
242
  $,
248
243
  Pe,
249
244
  Fe,
250
- C,
245
+ x,
251
246
  Oe,
252
247
  ke,
253
248
  He,
254
249
  Ve,
255
250
  X,
256
- ve,
257
251
  ye,
258
- be
252
+ be,
253
+ xe
259
254
  ]);
260
- return /* @__PURE__ */ D(O.Provider, {
255
+ return /* @__PURE__ */ w(E.Provider, {
261
256
  value: Ue,
262
- children: ne
257
+ children: D
263
258
  });
264
259
  };
265
- I.displayName = "Popover";
266
- var L = ({ children: e, asChild: t, id: n, onClick: r, onKeyDown: i, onContextMenu: o, onPointerEnter: s, onPointerMove: c, onPointerLeave: l, ref: ee, ...u }) => {
267
- let { open: d, contentId: p, triggerId: m, triggerElementRef: h, setResolvedTriggerId: g, onTriggerClick: _, onTriggerKeyDown: v, hoverTriggerHandlers: y, contextMode: b, contextTriggerHandlers: x } = j("Popover.Trigger"), S = f(ee, h), C = {
268
- ...u,
269
- id: n ?? m,
260
+ N.displayName = "Popover";
261
+ var P = ({ children: e, asChild: t, id: n, onClick: r, onKeyDown: ee, onContextMenu: a, onPointerEnter: o, onPointerMove: s, onPointerLeave: c, ref: te, ...l }) => {
262
+ let { open: u, contentId: f, triggerId: ne, triggerElementRef: p, setResolvedTriggerId: re, onTriggerClick: m, onTriggerKeyDown: h, hoverTriggerHandlers: g, contextMode: _, contextTriggerHandlers: v } = k("Popover.Trigger"), y = d(te, p), b = {
263
+ ...l,
264
+ id: n ?? ne,
270
265
  "aria-haspopup": "dialog",
271
- "aria-expanded": !b && d,
272
- "aria-controls": d && !b ? p : void 0,
273
- onClick: a(r, b ? void 0 : _),
274
- onKeyDown: a(i, x ? a(x.onKeyDown, v) : v),
275
- onContextMenu: x ? a(o, x.onContextMenu) : o,
276
- onPointerEnter: y ? a(s, y.onPointerEnter) : s,
277
- onPointerMove: y ? a(c, y.onPointerMove) : c,
278
- onPointerLeave: y ? a(l, y.onPointerLeave) : l,
279
- ref: S
266
+ "aria-expanded": !_ && u,
267
+ "aria-controls": u && !_ ? f : void 0,
268
+ onClick: i(r, _ ? void 0 : m),
269
+ onKeyDown: i(ee, v ? i(v.onKeyDown, h) : h),
270
+ onContextMenu: v ? i(a, v.onContextMenu) : a,
271
+ onPointerEnter: g ? i(o, g.onPointerEnter) : o,
272
+ onPointerMove: g ? i(s, g.onPointerMove) : s,
273
+ onPointerLeave: g ? i(c, g.onPointerLeave) : c,
274
+ ref: y
280
275
  };
281
- return te(e, C, {
276
+ return x(e, b, {
282
277
  componentName: "Popover.Trigger",
283
278
  asChild: t,
284
- onResolvedId: g,
285
- omitStateAria: b
279
+ onResolvedId: re,
280
+ omitStateAria: _
286
281
  });
287
282
  };
288
- L.displayName = "PopoverTrigger";
289
- var R = ({ children: n, title: s, id: c, className: ee, style: u, "aria-label": d, "aria-labelledby": p, onKeyDown: m, onContextMenu: h, onPointerEnter: _, onPointerLeave: v, ref: y, ...te }) => {
290
- let { open: b, contentId: x, setCustomContentId: S, resolvedTriggerId: w, triggerRef: T, triggerElement: O, surfaceElementRef: k, arrowRef: A, layerId: M, floatingProps: P, arrowStyles: ae, placedSide: F, onContentKeyDown: oe, hoverSurfaceHandlers: I, contextMode: L, onContentContextMenu: R, keyboardContext: z } = j("Popover.Content"), se = l("popover-title"), ce = f(y, k), B = i(s), V = p === void 0 && !d && !B, H = b && V && !L, le = E.useCallback((e) => {
291
- if (!H || !O || typeof MutationObserver > "u") return N();
283
+ P.displayName = "PopoverTrigger";
284
+ var F = ({ children: n, title: o, id: s, className: te, style: l, "aria-label": u, "aria-labelledby": f, onKeyDown: ne, onContextMenu: re, onPointerEnter: m, onPointerLeave: h, ref: _, ...v }) => {
285
+ let { open: y, contentId: b, setCustomContentId: x, resolvedTriggerId: S, triggerRef: ie, triggerElement: E, surfaceElementRef: D, arrowRef: O, layerId: A, floatingProps: M, arrowStyles: se, placedSide: ce, onContentKeyDown: N, hoverSurfaceHandlers: P, contextMode: F, onContentContextMenu: I, keyboardContext: L } = k("Popover.Content"), R = c("popover-title"), le = d(_, D), z = ee(o), B = f === void 0 && !u && !z, V = y && B && !F, ue = C.useCallback((e) => {
286
+ if (!V || !E || typeof MutationObserver > "u") return oe();
292
287
  let t = new MutationObserver(e);
293
- return t.observe(O, {
288
+ return t.observe(E, {
294
289
  attributes: !0,
295
290
  attributeFilter: ["id", "aria-labelledby"],
296
291
  childList: !0,
297
292
  subtree: !0
298
293
  }), () => t.disconnect();
299
- }, [H, O]), U = E.useSyncExternalStore(le, () => H ? re(O, w) : void 0, () => H ? w : void 0), ue = p ?? (d ? void 0 : B ? se : U), W = c || void 0;
300
- return E.useEffect(() => (S(W), () => S(void 0)), [W, S]), E.useEffect(() => {
301
- b && V && L && 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`.");
294
+ }, [V, E]), H = C.useSyncExternalStore(ue, () => V ? j(E, S) : void 0, () => V ? S : void 0), de = f ?? (u ? void 0 : z ? R : H), U = s || void 0;
295
+ return C.useEffect(() => (x(U), () => x(void 0)), [U, x]), C.useEffect(() => {
296
+ y && B && F && 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`.");
302
297
  }, [
303
- b,
304
- V,
305
- L
306
- ]), E.useEffect(() => {
307
- if (!H || !t) return;
308
- let e = T.current;
298
+ y,
299
+ B,
300
+ F
301
+ ]), C.useEffect(() => {
302
+ if (!V || !t) return;
303
+ let e = ie.current;
309
304
  if (!e) {
310
305
  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.");
311
306
  return;
312
307
  }
313
- let n = re(e, w);
314
- n ? ie(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`.");
308
+ let n = j(e, S);
309
+ n ? ae(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`.");
315
310
  }, [
316
- H,
317
- w,
318
- T,
319
- U
320
- ]), b ? /* @__PURE__ */ D(g, {
321
- layerId: M,
322
- children: /* @__PURE__ */ ne("div", {
311
+ V,
312
+ S,
313
+ ie,
314
+ H
315
+ ]), y ? /* @__PURE__ */ w(p, {
316
+ layerId: A,
317
+ children: /* @__PURE__ */ T("div", {
323
318
  role: "dialog",
324
- "aria-label": d,
325
- "aria-labelledby": ue,
326
- tabIndex: z ? -1 : void 0,
327
- ...te,
328
- ref: ce,
329
- id: W ?? x,
330
- "data-side": P["data-side"],
331
- "data-align": P["data-align"],
319
+ "aria-label": u,
320
+ "aria-labelledby": de,
321
+ tabIndex: L ? -1 : void 0,
322
+ ...v,
323
+ ref: le,
324
+ id: U ?? b,
325
+ "data-side": M["data-side"],
326
+ "data-align": M["data-align"],
332
327
  style: {
333
- ...u,
334
- ...P.style
328
+ ...l,
329
+ ...M.style
335
330
  },
336
- onKeyDown: a(m, oe),
337
- onContextMenu: a(h, R),
338
- onPointerEnter: I ? a(_, I.onPointerEnter) : _,
339
- onPointerLeave: I ? a(v, I.onPointerLeave) : v,
340
- className: e(o.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", ee),
331
+ onKeyDown: i(ne, N),
332
+ onContextMenu: i(re, I),
333
+ onPointerEnter: P ? i(m, P.onPointerEnter) : m,
334
+ onPointerLeave: P ? i(h, P.onPointerLeave) : h,
335
+ 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),
341
336
  children: [
342
- /* @__PURE__ */ D(C, {
343
- ref: A,
344
- side: F,
345
- style: ae,
337
+ /* @__PURE__ */ w(g, {
338
+ ref: O,
339
+ side: ce,
340
+ style: se,
346
341
  "data-wave-popover-arrow": "",
347
- className: o.beak
342
+ className: a.beak
348
343
  }),
349
- B && /* @__PURE__ */ D("h2", {
350
- id: se,
351
- className: e(o.title, "mb-2 text-subtitle-2 font-semibold"),
352
- children: s
344
+ z && /* @__PURE__ */ w("h2", {
345
+ id: R,
346
+ className: e(a.title, "mb-2 text-subtitle-2 font-semibold"),
347
+ children: o
353
348
  }),
354
349
  n
355
350
  ]
356
351
  })
357
352
  }) : null;
358
353
  };
359
- R.displayName = "PopoverContent";
360
- var z = /* @__PURE__ */ Object.assign(I, {
361
- Trigger: L,
362
- Content: R
354
+ F.displayName = "PopoverContent";
355
+ var I = /* @__PURE__ */ Object.assign(N, {
356
+ Trigger: P,
357
+ Content: F
363
358
  });
364
359
  //#endregion
365
- export { z as Popover, R as PopoverContent, L as PopoverTrigger };
360
+ export { I as Popover, F as PopoverContent, P as PopoverTrigger };
366
361
 
367
362
  //# sourceMappingURL=Popover.mjs.map