@ledgerhq/lumen-ui-react 0.1.13 → 0.1.15

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 (156) hide show
  1. package/dist/_virtual/index.js +5 -0
  2. package/dist/_virtual/index2.js +4 -0
  3. package/dist/_virtual/use-sync-external-store-shim.development.js +4 -0
  4. package/dist/_virtual/use-sync-external-store-shim.production.js +4 -0
  5. package/dist/_virtual/with-selector.development.js +4 -0
  6. package/dist/_virtual/with-selector.js +5 -0
  7. package/dist/_virtual/with-selector.production.js +4 -0
  8. package/dist/_virtual/with-selector2.js +4 -0
  9. package/dist/index.js +138 -129
  10. package/dist/lib/Components/Avatar/Avatar.js +5 -5
  11. package/dist/lib/Components/BaseInput/BaseInput.js +20 -20
  12. package/dist/lib/Components/MediaBanner/MediaBanner.d.ts +25 -0
  13. package/dist/lib/Components/MediaBanner/MediaBanner.d.ts.map +1 -0
  14. package/dist/lib/Components/MediaBanner/MediaBanner.js +98 -0
  15. package/dist/lib/Components/MediaBanner/index.d.ts +3 -0
  16. package/dist/lib/Components/MediaBanner/index.d.ts.map +1 -0
  17. package/dist/lib/Components/MediaBanner/types.d.ts +53 -0
  18. package/dist/lib/Components/MediaBanner/types.d.ts.map +1 -0
  19. package/dist/lib/Components/Popover/Popover.d.ts +57 -0
  20. package/dist/lib/Components/Popover/Popover.d.ts.map +1 -0
  21. package/dist/lib/Components/Popover/Popover.js +126 -0
  22. package/dist/lib/Components/Popover/index.d.ts +3 -0
  23. package/dist/lib/Components/Popover/index.d.ts.map +1 -0
  24. package/dist/lib/Components/Popover/types.d.ts +129 -0
  25. package/dist/lib/Components/Popover/types.d.ts.map +1 -0
  26. package/dist/lib/Components/Tag/Tag.js +5 -5
  27. package/dist/lib/Components/Tooltip/Tooltip.js +1 -1
  28. package/dist/lib/Components/index.d.ts +2 -0
  29. package/dist/lib/Components/index.d.ts.map +1 -1
  30. package/dist/lib/Symbols/Icons/Csv.js +5 -5
  31. package/dist/lib/Symbols/Icons/TriangleDown.d.ts +29 -0
  32. package/dist/lib/Symbols/Icons/TriangleDown.d.ts.map +1 -0
  33. package/dist/lib/Symbols/Icons/TriangleDown.js +25 -0
  34. package/dist/lib/Symbols/Icons/TriangleUp.d.ts +29 -0
  35. package/dist/lib/Symbols/Icons/TriangleUp.d.ts.map +1 -0
  36. package/dist/lib/Symbols/Icons/TriangleUp.js +25 -0
  37. package/dist/lib/Symbols/index.d.ts +2 -0
  38. package/dist/lib/Symbols/index.d.ts.map +1 -1
  39. package/dist/lib/Symbols/index.js +104 -100
  40. package/dist/node_modules/@base-ui/react/esm/composite/composite.js +10 -0
  41. package/dist/node_modules/@base-ui/react/esm/composite/root/CompositeRootContext.js +14 -0
  42. package/dist/node_modules/@base-ui/react/esm/direction-provider/DirectionContext.js +10 -0
  43. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingFocusManager.js +284 -0
  44. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingPortal.js +128 -0
  45. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingRootStore.js +60 -0
  46. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingTree.js +58 -0
  47. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingTreeStore.js +17 -0
  48. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useClick.js +67 -0
  49. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useDismiss.js +275 -0
  50. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloating.js +78 -0
  51. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloatingRootContext.js +38 -0
  52. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverFloatingInteraction.js +87 -0
  53. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverInteractionSharedState.js +42 -0
  54. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverReferenceInteraction.js +145 -0
  55. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverShared.js +19 -0
  56. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useInteractions.js +48 -0
  57. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useRole.js +76 -0
  58. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.js +35 -0
  59. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/middleware/arrow.js +47 -0
  60. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/safePolygon.js +131 -0
  61. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/composite.js +7 -0
  62. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/constants.js +7 -0
  63. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/createAttribute.js +6 -0
  64. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/createEventEmitter.js +17 -0
  65. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/element.js +69 -0
  66. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/enqueueFocus.js +16 -0
  67. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/event.js +30 -0
  68. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/getEmptyRootContext.js +17 -0
  69. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/markOthers.js +80 -0
  70. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/nodes.js +15 -0
  71. package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/tabbable.js +68 -0
  72. package/dist/node_modules/@base-ui/react/esm/merge-props/mergeProps.js +82 -0
  73. package/dist/node_modules/@base-ui/react/esm/popover/backdrop/PopoverBackdrop.js +39 -0
  74. package/dist/node_modules/@base-ui/react/esm/popover/popup/PopoverPopup.js +88 -0
  75. package/dist/node_modules/@base-ui/react/esm/popover/portal/PopoverPortal.js +24 -0
  76. package/dist/node_modules/@base-ui/react/esm/popover/portal/PopoverPortalContext.js +14 -0
  77. package/dist/node_modules/@base-ui/react/esm/popover/positioner/PopoverPositioner.js +110 -0
  78. package/dist/node_modules/@base-ui/react/esm/popover/positioner/PopoverPositionerContext.js +14 -0
  79. package/dist/node_modules/@base-ui/react/esm/popover/root/PopoverRoot.js +117 -0
  80. package/dist/node_modules/@base-ui/react/esm/popover/root/PopoverRootContext.js +14 -0
  81. package/dist/node_modules/@base-ui/react/esm/popover/store/PopoverHandle.js +44 -0
  82. package/dist/node_modules/@base-ui/react/esm/popover/store/PopoverStore.js +94 -0
  83. package/dist/node_modules/@base-ui/react/esm/popover/trigger/PopoverTrigger.js +120 -0
  84. package/dist/node_modules/@base-ui/react/esm/popover/utils/constants.js +4 -0
  85. package/dist/node_modules/@base-ui/react/esm/toolbar/root/ToolbarRootContext.js +10 -0
  86. package/dist/node_modules/@base-ui/react/esm/use-button/useButton.js +113 -0
  87. package/dist/node_modules/@base-ui/react/esm/utils/FocusGuard.js +26 -0
  88. package/dist/node_modules/@base-ui/react/esm/utils/InternalBackdrop.js +41 -0
  89. package/dist/node_modules/@base-ui/react/esm/utils/adaptiveOriginMiddleware.js +63 -0
  90. package/dist/node_modules/@base-ui/react/esm/utils/closePart.js +30 -0
  91. package/dist/node_modules/@base-ui/react/esm/utils/constants.js +19 -0
  92. package/dist/node_modules/@base-ui/react/esm/utils/createBaseUIEventDetails.js +26 -0
  93. package/dist/node_modules/@base-ui/react/esm/utils/getDisabledMountTransitionStyles.js +8 -0
  94. package/dist/node_modules/@base-ui/react/esm/utils/getStateAttributesProps.js +16 -0
  95. package/dist/node_modules/@base-ui/react/esm/utils/hideMiddleware.js +20 -0
  96. package/dist/node_modules/@base-ui/react/esm/utils/popupStateMapping.js +40 -0
  97. package/dist/node_modules/@base-ui/react/esm/utils/popups/popupStoreUtils.js +95 -0
  98. package/dist/node_modules/@base-ui/react/esm/utils/popups/popupTriggerMap.js +64 -0
  99. package/dist/node_modules/@base-ui/react/esm/utils/popups/store.js +52 -0
  100. package/dist/node_modules/@base-ui/react/esm/utils/reason-parts.js +9 -0
  101. package/dist/node_modules/@base-ui/react/esm/utils/resolveClassName.js +6 -0
  102. package/dist/node_modules/@base-ui/react/esm/utils/resolveRef.js +6 -0
  103. package/dist/node_modules/@base-ui/react/esm/utils/resolveStyle.js +6 -0
  104. package/dist/node_modules/@base-ui/react/esm/utils/stateAttributesMapping.js +16 -0
  105. package/dist/node_modules/@base-ui/react/esm/utils/useAnchorPositioning.js +267 -0
  106. package/dist/node_modules/@base-ui/react/esm/utils/useAnimationsFinished.js +57 -0
  107. package/dist/node_modules/@base-ui/react/esm/utils/useBaseUiId.js +7 -0
  108. package/dist/node_modules/@base-ui/react/esm/utils/useFocusableWhenDisabled.js +24 -0
  109. package/dist/node_modules/@base-ui/react/esm/utils/useOpenChangeComplete.js +22 -0
  110. package/dist/node_modules/@base-ui/react/esm/utils/useOpenInteractionType.js +30 -0
  111. package/dist/node_modules/@base-ui/react/esm/utils/useRenderElement.js +71 -0
  112. package/dist/node_modules/@base-ui/react/esm/utils/useTransitionStatus.js +42 -0
  113. package/dist/node_modules/@base-ui/react/esm/utils/useValueChanged.js +14 -0
  114. package/dist/node_modules/@base-ui/utils/esm/detectBrowser.js +43 -0
  115. package/dist/node_modules/@base-ui/utils/esm/empty.js +7 -0
  116. package/dist/node_modules/@base-ui/utils/esm/error.js +11 -0
  117. package/dist/node_modules/@base-ui/utils/esm/formatErrorMessage.js +11 -0
  118. package/dist/node_modules/@base-ui/utils/esm/getReactElementRef.js +11 -0
  119. package/dist/node_modules/@base-ui/utils/esm/inertValue.js +7 -0
  120. package/dist/node_modules/@base-ui/utils/esm/mergeObjects.js +14 -0
  121. package/dist/node_modules/@base-ui/utils/esm/owner.js +6 -0
  122. package/dist/node_modules/@base-ui/utils/esm/reactVersion.js +8 -0
  123. package/dist/node_modules/@base-ui/utils/esm/safeReact.js +7 -0
  124. package/dist/node_modules/@base-ui/utils/esm/store/ReactStore.js +145 -0
  125. package/dist/node_modules/@base-ui/utils/esm/store/Store.js +86 -0
  126. package/dist/node_modules/@base-ui/utils/esm/store/createSelector.js +25 -0
  127. package/dist/node_modules/@base-ui/utils/esm/store/useStore.js +21 -0
  128. package/dist/node_modules/@base-ui/utils/esm/useAnimationFrame.js +68 -0
  129. package/dist/node_modules/@base-ui/utils/esm/useEnhancedClickHandler.js +19 -0
  130. package/dist/node_modules/@base-ui/utils/esm/useId.js +20 -0
  131. package/dist/node_modules/@base-ui/utils/esm/useIsoLayoutEffect.js +6 -0
  132. package/dist/node_modules/@base-ui/utils/esm/useMergedRefs.js +69 -0
  133. package/dist/node_modules/@base-ui/utils/esm/useOnFirstRender.js +8 -0
  134. package/dist/node_modules/@base-ui/utils/esm/useOnMount.js +8 -0
  135. package/dist/node_modules/@base-ui/utils/esm/useRefWithInit.js +9 -0
  136. package/dist/node_modules/@base-ui/utils/esm/useScrollLock.js +122 -0
  137. package/dist/node_modules/@base-ui/utils/esm/useStableCallback.js +32 -0
  138. package/dist/node_modules/@base-ui/utils/esm/useTimeout.js +32 -0
  139. package/dist/node_modules/@base-ui/utils/esm/useValueAsRef.js +19 -0
  140. package/dist/node_modules/@base-ui/utils/esm/visuallyHidden.js +18 -0
  141. package/dist/node_modules/@base-ui/utils/esm/warn.js +11 -0
  142. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +494 -0
  143. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +402 -0
  144. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +203 -0
  145. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +136 -0
  146. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +128 -0
  147. package/dist/node_modules/reselect/dist/reselect.js +324 -0
  148. package/dist/node_modules/tabbable/dist/index.esm.js +210 -0
  149. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +58 -0
  150. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +57 -0
  151. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +58 -0
  152. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +46 -0
  153. package/dist/node_modules/use-sync-external-store/shim/index.js +10 -0
  154. package/dist/node_modules/use-sync-external-store/shim/with-selector.js +10 -0
  155. package/dist/package.json +2 -1
  156. package/package.json +2 -1
@@ -0,0 +1,68 @@
1
+ import { tabbable as r } from "../../../../../tabbable/dist/index.esm.js";
2
+ import { ownerDocument as b } from "../../../../utils/esm/owner.js";
3
+ import { contains as d, activeElement as f } from "./element.js";
4
+ const s = () => ({
5
+ getShadowRoot: !0,
6
+ displayCheck: (
7
+ // JSDOM does not support the `tabbable` library. To solve this we can
8
+ // check if `ResizeObserver` is a real function (not polyfilled), which
9
+ // determines if the current environment is JSDOM-like.
10
+ typeof ResizeObserver == "function" && ResizeObserver.toString().includes("[native code]") ? "full" : "none"
11
+ )
12
+ });
13
+ function u(t, o) {
14
+ const e = r(t, s()), n = e.length;
15
+ if (n === 0)
16
+ return;
17
+ const a = f(b(t)), i = e.indexOf(a), c = i === -1 ? o === 1 ? 0 : n - 1 : i + o;
18
+ return e[c];
19
+ }
20
+ function m(t) {
21
+ return u(b(t).body, 1) || t;
22
+ }
23
+ function p(t) {
24
+ return u(b(t).body, -1) || t;
25
+ }
26
+ function l(t, o) {
27
+ if (!t)
28
+ return null;
29
+ const e = r(b(t).body, s()), n = e.length;
30
+ if (n === 0)
31
+ return null;
32
+ const a = e.indexOf(t);
33
+ if (a === -1)
34
+ return null;
35
+ const i = (a + o + n) % n;
36
+ return e[i];
37
+ }
38
+ function v(t) {
39
+ return l(t, 1);
40
+ }
41
+ function h(t) {
42
+ return l(t, -1);
43
+ }
44
+ function y(t, o) {
45
+ const e = o || t.currentTarget, n = t.relatedTarget;
46
+ return !n || !d(e, n);
47
+ }
48
+ function A(t) {
49
+ r(t, s()).forEach((e) => {
50
+ e.dataset.tabindex = e.getAttribute("tabindex") || "", e.setAttribute("tabindex", "-1");
51
+ });
52
+ }
53
+ function E(t) {
54
+ t.querySelectorAll("[data-tabindex]").forEach((e) => {
55
+ const n = e.dataset.tabindex;
56
+ delete e.dataset.tabindex, n ? e.setAttribute("tabindex", n) : e.removeAttribute("tabindex");
57
+ });
58
+ }
59
+ export {
60
+ A as disableFocusInside,
61
+ E as enableFocusInside,
62
+ m as getNextTabbable,
63
+ p as getPreviousTabbable,
64
+ v as getTabbableAfterElement,
65
+ h as getTabbableBeforeElement,
66
+ s as getTabbableOptions,
67
+ y as isOutsideEvent
68
+ };
@@ -0,0 +1,82 @@
1
+ import { mergeObjects as a } from "../../../utils/esm/mergeObjects.js";
2
+ const u = {};
3
+ function g(t, n, e, r, c) {
4
+ let f = {
5
+ ...o(t, u)
6
+ };
7
+ return n && (f = i(f, n)), e && (f = i(f, e)), r && (f = i(f, r)), f;
8
+ }
9
+ function h(t) {
10
+ if (t.length === 0)
11
+ return u;
12
+ if (t.length === 1)
13
+ return o(t[0], u);
14
+ let n = {
15
+ ...o(t[0], u)
16
+ };
17
+ for (let e = 1; e < t.length; e += 1)
18
+ n = i(n, t[e]);
19
+ return n;
20
+ }
21
+ function i(t, n) {
22
+ return l(n) ? n(t) : s(t, n);
23
+ }
24
+ function s(t, n) {
25
+ if (!n)
26
+ return t;
27
+ for (const e in n) {
28
+ const r = n[e];
29
+ switch (e) {
30
+ case "style": {
31
+ t[e] = a(t.style, r);
32
+ break;
33
+ }
34
+ case "className": {
35
+ t[e] = I(t.className, r);
36
+ break;
37
+ }
38
+ default:
39
+ b(e, r) ? t[e] = E(t[e], r) : t[e] = r;
40
+ }
41
+ }
42
+ return t;
43
+ }
44
+ function b(t, n) {
45
+ const e = t.charCodeAt(0), r = t.charCodeAt(1), c = t.charCodeAt(2);
46
+ return e === 111 && r === 110 && c >= 65 && c <= 90 && (typeof n == "function" || typeof n > "u");
47
+ }
48
+ function l(t) {
49
+ return typeof t == "function";
50
+ }
51
+ function o(t, n) {
52
+ return l(t) ? t(n) : t ?? u;
53
+ }
54
+ function E(t, n) {
55
+ return n ? t ? (e) => {
56
+ if (v(e)) {
57
+ const c = e;
58
+ y(c);
59
+ const f = n(c);
60
+ return c.baseUIHandlerPrevented || t?.(c), f;
61
+ }
62
+ const r = n(e);
63
+ return t?.(e), r;
64
+ } : n : t;
65
+ }
66
+ function y(t) {
67
+ return t.preventBaseUIHandler = () => {
68
+ t.baseUIHandlerPrevented = !0;
69
+ }, t;
70
+ }
71
+ function I(t, n) {
72
+ return n ? t ? n + " " + t : n : t;
73
+ }
74
+ function v(t) {
75
+ return t != null && typeof t == "object" && "nativeEvent" in t;
76
+ }
77
+ export {
78
+ y as makeEventPreventable,
79
+ I as mergeClassNames,
80
+ g as mergeProps,
81
+ h as mergePropsN
82
+ };
@@ -0,0 +1,39 @@
1
+ import * as i from "react";
2
+ import { usePopoverRootContext as c } from "../root/PopoverRootContext.js";
3
+ import { popupStateMapping as m } from "../../utils/popupStateMapping.js";
4
+ import { transitionStatusMapping as u } from "../../utils/stateAttributesMapping.js";
5
+ import { useRenderElement as d } from "../../utils/useRenderElement.js";
6
+ import { triggerHover as f } from "../../utils/reason-parts.js";
7
+ const l = {
8
+ ...m,
9
+ ...u
10
+ }, S = /* @__PURE__ */ i.forwardRef(function(t, o) {
11
+ const {
12
+ className: R,
13
+ render: g,
14
+ ...n
15
+ } = t, {
16
+ store: e
17
+ } = c(), r = e.useState("open"), s = e.useState("mounted"), p = e.useState("transitionStatus"), a = e.useState("openChangeReason");
18
+ return d("div", t, {
19
+ state: {
20
+ open: r,
21
+ transitionStatus: p
22
+ },
23
+ ref: [e.context.backdropRef, o],
24
+ props: [{
25
+ role: "presentation",
26
+ hidden: !s,
27
+ style: {
28
+ pointerEvents: a === f ? "none" : void 0,
29
+ userSelect: "none",
30
+ WebkitUserSelect: "none"
31
+ }
32
+ }, n],
33
+ stateAttributesMapping: l
34
+ });
35
+ });
36
+ process.env.NODE_ENV !== "production" && (S.displayName = "PopoverBackdrop");
37
+ export {
38
+ S as PopoverBackdrop
39
+ };
@@ -0,0 +1,88 @@
1
+ import * as u from "react";
2
+ import { isHTMLElement as k } from "../../../../../@floating-ui/utils/dist/floating-ui.utils.dom.js";
3
+ import { usePopoverRootContext as w } from "../root/PopoverRootContext.js";
4
+ import { usePopoverPositionerContext as G } from "../positioner/PopoverPositionerContext.js";
5
+ import { popupStateMapping as K } from "../../utils/popupStateMapping.js";
6
+ import { transitionStatusMapping as _ } from "../../utils/stateAttributesMapping.js";
7
+ import { useOpenChangeComplete as j } from "../../utils/useOpenChangeComplete.js";
8
+ import { useRenderElement as A } from "../../utils/useRenderElement.js";
9
+ import { COMPOSITE_KEYS as L } from "../../composite/composite.js";
10
+ import { useToolbarRootContext as V } from "../../toolbar/root/ToolbarRootContext.js";
11
+ import { getDisabledMountTransitionStyles as Y } from "../../utils/getDisabledMountTransitionStyles.js";
12
+ import { useClosePartCount as q, ClosePartProvider as z } from "../../utils/closePart.js";
13
+ import { jsx as c } from "react/jsx-runtime";
14
+ import { useHoverFloatingInteraction as B } from "../../floating-ui-react/hooks/useHoverFloatingInteraction.js";
15
+ import { FloatingFocusManager as J } from "../../floating-ui-react/components/FloatingFocusManager.js";
16
+ import { triggerHover as Q } from "../../utils/reason-parts.js";
17
+ const U = {
18
+ ...K,
19
+ ..._
20
+ }, W = /* @__PURE__ */ u.forwardRef(function(n, l) {
21
+ const {
22
+ className: Z,
23
+ render: $,
24
+ initialFocus: s,
25
+ finalFocus: m,
26
+ ...d
27
+ } = n, {
28
+ store: e
29
+ } = w(), r = G(), f = V() != null, {
30
+ context: g,
31
+ hasClosePart: S
32
+ } = q(), o = e.useState("open"), C = e.useState("openMethod"), P = e.useState("instantType"), a = e.useState("transitionStatus"), b = e.useState("popupProps"), x = e.useState("titleElementId"), v = e.useState("descriptionElementId"), F = e.useState("modal"), E = e.useState("mounted"), R = e.useState("openChangeReason"), i = e.useState("activeTriggerElement"), p = e.useState("floatingRootContext");
33
+ j({
34
+ open: o,
35
+ ref: e.context.popupRef,
36
+ onComplete() {
37
+ o && e.context.onOpenChangeComplete?.(!0);
38
+ }
39
+ });
40
+ const y = e.useState("disabled"), M = e.useState("openOnHover"), T = e.useState("closeDelay");
41
+ B(p, {
42
+ enabled: M && !y,
43
+ closeDelay: T
44
+ });
45
+ function h(t) {
46
+ return t === "touch" ? e.context.popupRef.current : !0;
47
+ }
48
+ const I = s === void 0 ? h : s, O = {
49
+ open: o,
50
+ side: r.side,
51
+ align: r.align,
52
+ instant: P,
53
+ transitionStatus: a
54
+ }, D = F !== !1 && S, H = u.useCallback((t) => {
55
+ e.set("popupElement", t);
56
+ }, [e]), N = A("div", n, {
57
+ state: O,
58
+ ref: [l, e.context.popupRef, H],
59
+ props: [b, {
60
+ "aria-labelledby": x,
61
+ "aria-describedby": v,
62
+ onKeyDown(t) {
63
+ f && L.has(t.key) && t.stopPropagation();
64
+ }
65
+ }, Y(a), d],
66
+ stateAttributesMapping: U
67
+ });
68
+ return /* @__PURE__ */ c(J, {
69
+ context: p,
70
+ openInteractionType: C,
71
+ modal: D,
72
+ disabled: !E || R === Q,
73
+ initialFocus: I,
74
+ returnFocus: m,
75
+ restoreFocus: "popup",
76
+ previousFocusableElement: k(i) ? i : void 0,
77
+ nextFocusableElement: e.context.triggerFocusTargetRef,
78
+ beforeContentFocusGuardRef: e.context.beforeContentFocusGuardRef,
79
+ children: /* @__PURE__ */ c(z, {
80
+ value: g,
81
+ children: N
82
+ })
83
+ });
84
+ });
85
+ process.env.NODE_ENV !== "production" && (W.displayName = "PopoverPopup");
86
+ export {
87
+ W as PopoverPopup
88
+ };
@@ -0,0 +1,24 @@
1
+ import * as s from "react";
2
+ import { usePopoverRootContext as a } from "../root/PopoverRootContext.js";
3
+ import { PopoverPortalContext as l } from "./PopoverPortalContext.js";
4
+ import { jsx as r } from "react/jsx-runtime";
5
+ import { FloatingPortal as m } from "../../floating-ui-react/components/FloatingPortal.js";
6
+ const u = /* @__PURE__ */ s.forwardRef(function(t, e) {
7
+ const {
8
+ keepMounted: o = !1,
9
+ ...n
10
+ } = t, {
11
+ store: p
12
+ } = a();
13
+ return p.useState("mounted") || o ? /* @__PURE__ */ r(l.Provider, {
14
+ value: o,
15
+ children: /* @__PURE__ */ r(m, {
16
+ ref: e,
17
+ ...n
18
+ })
19
+ }) : null;
20
+ });
21
+ process.env.NODE_ENV !== "production" && (u.displayName = "PopoverPortal");
22
+ export {
23
+ u as PopoverPortal
24
+ };
@@ -0,0 +1,14 @@
1
+ import t from "../../../../utils/esm/formatErrorMessage.js";
2
+ import * as e from "react";
3
+ const r = /* @__PURE__ */ e.createContext(void 0);
4
+ process.env.NODE_ENV !== "production" && (r.displayName = "PopoverPortalContext");
5
+ function s() {
6
+ const o = e.useContext(r);
7
+ if (o === void 0)
8
+ throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: <Popover.Portal> is missing." : t(45));
9
+ return o;
10
+ }
11
+ export {
12
+ r as PopoverPortalContext,
13
+ s as usePopoverPortalContext
14
+ };
@@ -0,0 +1,110 @@
1
+ import * as n from "react";
2
+ import { inertValue as U } from "../../../../utils/esm/inertValue.js";
3
+ import { useIsoLayoutEffect as q } from "../../../../utils/esm/useIsoLayoutEffect.js";
4
+ import { usePopoverRootContext as z } from "../root/PopoverRootContext.js";
5
+ import { PopoverPositionerContext as G } from "./PopoverPositionerContext.js";
6
+ import { useAnchorPositioning as J } from "../../utils/useAnchorPositioning.js";
7
+ import { popupStateMapping as K } from "../../utils/popupStateMapping.js";
8
+ import { usePopoverPortalContext as Q } from "../portal/PopoverPortalContext.js";
9
+ import { InternalBackdrop as W } from "../../utils/InternalBackdrop.js";
10
+ import { useRenderElement as X } from "../../utils/useRenderElement.js";
11
+ import { POPUP_COLLISION_AVOIDANCE as Y } from "../../utils/constants.js";
12
+ import { useAnimationsFinished as Z } from "../../utils/useAnimationsFinished.js";
13
+ import { adaptiveOrigin as $ } from "../../utils/adaptiveOriginMiddleware.js";
14
+ import { getDisabledMountTransitionStyles as ee } from "../../utils/getDisabledMountTransitionStyles.js";
15
+ import { jsxs as te, jsx as P } from "react/jsx-runtime";
16
+ import { useFloatingNodeId as oe, FloatingNode as ne } from "../../floating-ui-react/components/FloatingTree.js";
17
+ import { triggerHover as re } from "../../utils/reason-parts.js";
18
+ const ie = /* @__PURE__ */ n.forwardRef(function(a, S) {
19
+ const {
20
+ render: ae,
21
+ className: pe,
22
+ anchor: v,
23
+ positionMethod: h = "absolute",
24
+ side: E = "bottom",
25
+ align: y = "center",
26
+ sideOffset: R = 0,
27
+ alignOffset: C = 0,
28
+ collisionBoundary: O = "clipping-ancestors",
29
+ collisionPadding: T = 5,
30
+ arrowPadding: x = 5,
31
+ sticky: A = !1,
32
+ disableAnchorTracking: b = !1,
33
+ collisionAvoidance: N = Y,
34
+ ...I
35
+ } = a, {
36
+ store: e
37
+ } = z(), M = Q(), p = oe(), c = e.useState("floatingRootContext"), r = e.useState("mounted"), i = e.useState("open"), k = e.useState("openChangeReason"), w = e.useState("activeTriggerElement"), V = e.useState("modal"), F = e.useState("positionerElement"), B = e.useState("instantType"), D = e.useState("transitionStatus"), H = e.useState("hasViewport"), l = n.useRef(null), m = Z(F, !1, !1), s = J({
38
+ anchor: v,
39
+ floatingRootContext: c,
40
+ positionMethod: h,
41
+ mounted: r,
42
+ side: E,
43
+ sideOffset: R,
44
+ align: y,
45
+ alignOffset: C,
46
+ arrowPadding: x,
47
+ collisionBoundary: O,
48
+ collisionPadding: T,
49
+ sticky: A,
50
+ disableAnchorTracking: b,
51
+ keepMounted: M,
52
+ nodeId: p,
53
+ collisionAvoidance: N,
54
+ adaptiveOrigin: H ? $ : void 0
55
+ }), d = n.useMemo(() => {
56
+ const t = {};
57
+ return i || (t.pointerEvents = "none"), {
58
+ role: "presentation",
59
+ hidden: !r,
60
+ style: {
61
+ ...s.positionerStyles,
62
+ ...t
63
+ }
64
+ };
65
+ }, [i, r, s.positionerStyles]), o = n.useMemo(() => ({
66
+ props: d,
67
+ ...s
68
+ }), [d, s]), u = c.useState("domReferenceElement");
69
+ q(() => {
70
+ const t = u, f = l.current;
71
+ if (t && (l.current = t), f && t && t !== f) {
72
+ e.set("instantType", void 0);
73
+ const g = new AbortController();
74
+ return m(() => {
75
+ e.set("instantType", "trigger-change");
76
+ }, g.signal), () => {
77
+ g.abort();
78
+ };
79
+ }
80
+ }, [u, m, e]);
81
+ const L = {
82
+ open: i,
83
+ side: o.side,
84
+ align: o.align,
85
+ anchorHidden: o.anchorHidden,
86
+ instant: B
87
+ }, _ = n.useCallback((t) => {
88
+ e.set("positionerElement", t);
89
+ }, [e]), j = X("div", a, {
90
+ state: L,
91
+ props: [o.props, ee(D), I],
92
+ ref: [S, _],
93
+ stateAttributesMapping: K
94
+ });
95
+ return /* @__PURE__ */ te(G.Provider, {
96
+ value: o,
97
+ children: [r && V === !0 && k !== re && /* @__PURE__ */ P(W, {
98
+ ref: e.context.internalBackdropRef,
99
+ inert: U(!i),
100
+ cutout: w
101
+ }), /* @__PURE__ */ P(ne, {
102
+ id: p,
103
+ children: j
104
+ })]
105
+ });
106
+ });
107
+ process.env.NODE_ENV !== "production" && (ie.displayName = "PopoverPositioner");
108
+ export {
109
+ ie as PopoverPositioner
110
+ };
@@ -0,0 +1,14 @@
1
+ import r from "../../../../utils/esm/formatErrorMessage.js";
2
+ import * as e from "react";
3
+ const t = /* @__PURE__ */ e.createContext(void 0);
4
+ process.env.NODE_ENV !== "production" && (t.displayName = "PopoverPositionerContext");
5
+ function i() {
6
+ const o = e.useContext(t);
7
+ if (!o)
8
+ throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: PopoverPositionerContext is missing. PopoverPositioner parts must be placed within <Popover.Positioner>." : r(46));
9
+ return o;
10
+ }
11
+ export {
12
+ t as PopoverPositionerContext,
13
+ i as usePopoverPositionerContext
14
+ };
@@ -0,0 +1,117 @@
1
+ import * as o from "react";
2
+ import { useScrollLock as H } from "../../../../utils/esm/useScrollLock.js";
3
+ import { useOnFirstRender as j } from "../../../../utils/esm/useOnFirstRender.js";
4
+ import { usePopoverRootContext as L, PopoverRootContext as N } from "./PopoverRootContext.js";
5
+ import { PopoverStore as V } from "../store/PopoverStore.js";
6
+ import { createChangeEventDetails as q } from "../../utils/createBaseUIEventDetails.js";
7
+ import { useOpenInteractionType as w } from "../../utils/useOpenInteractionType.js";
8
+ import { jsx as p } from "react/jsx-runtime";
9
+ import { FloatingTree as z, useFloatingParentNodeId as B } from "../../floating-ui-react/components/FloatingTree.js";
10
+ import { useImplicitActiveTrigger as G, useOpenStateTransitions as J } from "../../utils/popups/popupStoreUtils.js";
11
+ import { useSyncedFloatingRootContext as K } from "../../floating-ui-react/hooks/useSyncedFloatingRootContext.js";
12
+ import { useDismiss as Q } from "../../floating-ui-react/hooks/useDismiss.js";
13
+ import { useRole as W } from "../../floating-ui-react/hooks/useRole.js";
14
+ import { useInteractions as X } from "../../floating-ui-react/hooks/useInteractions.js";
15
+ import { imperativeAction as Y, triggerHover as Z } from "../../utils/reason-parts.js";
16
+ function O({
17
+ props: t
18
+ }) {
19
+ const {
20
+ children: i,
21
+ open: a,
22
+ defaultOpen: l = !1,
23
+ onOpenChange: R,
24
+ onOpenChangeComplete: T,
25
+ modal: r = !1,
26
+ handle: S,
27
+ triggerId: c,
28
+ defaultTriggerId: m = null
29
+ } = t, e = V.useStore(S?.store, {
30
+ modal: r,
31
+ open: l,
32
+ openProp: a,
33
+ activeTriggerId: m,
34
+ triggerIdProp: c
35
+ });
36
+ j(() => {
37
+ a === void 0 && e.state.open === !1 && l === !0 && e.update({
38
+ open: !0,
39
+ activeTriggerId: m
40
+ });
41
+ }), e.useControlledProp("openProp", a), e.useControlledProp("triggerIdProp", c);
42
+ const n = e.useState("open"), x = e.useState("positionerElement"), y = e.useState("payload"), k = e.useState("openChangeReason");
43
+ e.useContextCallback("onOpenChange", R), e.useContextCallback("onOpenChangeComplete", T);
44
+ const {
45
+ openMethod: g,
46
+ triggerProps: s
47
+ } = w(n);
48
+ G(e);
49
+ const {
50
+ forceUnmount: f
51
+ } = J(n, e, () => {
52
+ e.update({
53
+ stickIfOpen: !0,
54
+ openChangeReason: null
55
+ });
56
+ });
57
+ H(n && r === !0 && k !== Z && g !== "touch", x), o.useEffect(() => {
58
+ n || e.context.stickIfOpenTimeout.clear();
59
+ }, [e, n]);
60
+ const d = o.useCallback((A) => {
61
+ const I = q(A);
62
+ return I.preventUnmountOnClose = () => {
63
+ e.set("preventUnmountingOnClose", !0);
64
+ }, I;
65
+ }, [e]), C = o.useCallback(() => {
66
+ e.setOpen(!1, d(Y));
67
+ }, [e, d]);
68
+ o.useImperativeHandle(t.actionsRef, () => ({
69
+ unmount: f,
70
+ close: C
71
+ }), [f, C]);
72
+ const u = K({
73
+ popupStore: e,
74
+ onOpenChange: e.setOpen
75
+ }), E = Q(u, {
76
+ outsidePressEvent: {
77
+ // Ensure `aria-hidden` on outside elements is removed immediately
78
+ // on outside press when trapping focus.
79
+ mouse: r === "trap-focus" ? "sloppy" : "intentional",
80
+ touch: "sloppy"
81
+ }
82
+ }), F = W(u), {
83
+ getReferenceProps: P,
84
+ getFloatingProps: v,
85
+ getTriggerProps: h
86
+ } = X([E, F]), M = o.useMemo(() => P(s), [P, s]), b = o.useMemo(() => h(s), [h, s]), D = o.useMemo(() => v(), [v]);
87
+ e.useSyncedValues({
88
+ modal: r,
89
+ openMethod: g,
90
+ activeTriggerProps: M,
91
+ inactiveTriggerProps: b,
92
+ popupProps: D,
93
+ floatingRootContext: u,
94
+ nested: B() != null
95
+ });
96
+ const U = o.useMemo(() => ({
97
+ store: e
98
+ }), [e]);
99
+ return /* @__PURE__ */ p(N.Provider, {
100
+ value: U,
101
+ children: typeof i == "function" ? i({
102
+ payload: y
103
+ }) : i
104
+ });
105
+ }
106
+ function me(t) {
107
+ return L(!0) ? /* @__PURE__ */ p(O, {
108
+ props: t
109
+ }) : /* @__PURE__ */ p(z, {
110
+ children: /* @__PURE__ */ p(O, {
111
+ props: t
112
+ })
113
+ });
114
+ }
115
+ export {
116
+ me as PopoverRoot
117
+ };
@@ -0,0 +1,14 @@
1
+ import n from "../../../../utils/esm/formatErrorMessage.js";
2
+ import * as e from "react";
3
+ const t = /* @__PURE__ */ e.createContext(void 0);
4
+ process.env.NODE_ENV !== "production" && (t.displayName = "PopoverRootContext");
5
+ function p(r) {
6
+ const o = e.useContext(t);
7
+ if (o === void 0 && !r)
8
+ throw new Error(process.env.NODE_ENV !== "production" ? "Base UI: PopoverRootContext is missing. Popover parts must be placed within <Popover.Root>." : n(47));
9
+ return o;
10
+ }
11
+ export {
12
+ t as PopoverRootContext,
13
+ p as usePopoverRootContext
14
+ };
@@ -0,0 +1,44 @@
1
+ import r from "../../../../utils/esm/formatErrorMessage.js";
2
+ import { createChangeEventDetails as t } from "../../utils/createBaseUIEventDetails.js";
3
+ import { PopoverStore as s } from "./PopoverStore.js";
4
+ import { imperativeAction as n } from "../../utils/reason-parts.js";
5
+ class i {
6
+ /**
7
+ * Internal store holding the popover's state.
8
+ * @internal
9
+ */
10
+ constructor() {
11
+ this.store = new s();
12
+ }
13
+ /**
14
+ * Opens the popover and associates it with the trigger with the given id.
15
+ * The trigger must be a Popover.Trigger component with this handle passed as a prop.
16
+ *
17
+ * @param triggerId ID of the trigger to associate with the popover.
18
+ */
19
+ open(e) {
20
+ const o = e ? this.store.context.triggerElements.getById(e) ?? void 0 : void 0;
21
+ if (e && !o)
22
+ throw new Error(process.env.NODE_ENV !== "production" ? `Base UI: PopoverHandle.open: No trigger found with id "${e}".` : r(80, e));
23
+ this.store.setOpen(!0, t(n, void 0, o));
24
+ }
25
+ /**
26
+ * Closes the popover.
27
+ */
28
+ close() {
29
+ this.store.setOpen(!1, t(n, void 0, void 0));
30
+ }
31
+ /**
32
+ * Indicates whether the popover is currently open.
33
+ */
34
+ get isOpen() {
35
+ return this.store.state.open;
36
+ }
37
+ }
38
+ function m() {
39
+ return new i();
40
+ }
41
+ export {
42
+ i as PopoverHandle,
43
+ m as createPopoverHandle
44
+ };