@adam-milo/ui 1.0.29 → 1.0.30

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 (66) hide show
  1. package/dist/index27.cjs +1 -1
  2. package/dist/index27.js +21 -21
  3. package/dist/index42.cjs +1 -1
  4. package/dist/index42.js +3 -8
  5. package/dist/index43.cjs +1 -1
  6. package/dist/index43.js +7 -66
  7. package/dist/index44.cjs +1 -1
  8. package/dist/index44.js +66 -35
  9. package/dist/index45.cjs +1 -1
  10. package/dist/index45.js +31 -56
  11. package/dist/index46.cjs +1 -1
  12. package/dist/index46.js +60 -6
  13. package/dist/index47.cjs +1 -1
  14. package/dist/index47.js +6 -208
  15. package/dist/index48.cjs +1 -1
  16. package/dist/index48.js +203 -20
  17. package/dist/index49.cjs +1 -1
  18. package/dist/index49.js +23 -202
  19. package/dist/index50.cjs +1 -1
  20. package/dist/index50.js +204 -10
  21. package/dist/index51.cjs +1 -1
  22. package/dist/index51.js +10 -289
  23. package/dist/index52.cjs +1 -1
  24. package/dist/index52.js +288 -13
  25. package/dist/index53.cjs +1 -1
  26. package/dist/index53.js +14 -39
  27. package/dist/index54.cjs +1 -1
  28. package/dist/index54.js +36 -82
  29. package/dist/index55.cjs +1 -1
  30. package/dist/index55.js +84 -9
  31. package/dist/index56.cjs +1 -1
  32. package/dist/index56.js +8 -65
  33. package/dist/index57.cjs +1 -1
  34. package/dist/index57.js +68 -3
  35. package/dist/index58.cjs +1 -1
  36. package/dist/index58.js +3 -11
  37. package/dist/index59.cjs +1 -1
  38. package/dist/index59.js +11 -31
  39. package/dist/index60.cjs +1 -1
  40. package/dist/index60.js +30 -118
  41. package/dist/index61.cjs +1 -1
  42. package/dist/index61.js +120 -9
  43. package/dist/index62.cjs +1 -0
  44. package/dist/index62.js +11 -0
  45. package/dist/index63.cjs +1 -1
  46. package/dist/index63.js +1 -1
  47. package/dist/index65.cjs +1 -1
  48. package/dist/index65.js +1 -1
  49. package/dist/index66.cjs +1 -1
  50. package/dist/index66.js +1 -1
  51. package/dist/index80.cjs +1 -1
  52. package/dist/index80.js +1 -1
  53. package/dist/index81.cjs +1 -1
  54. package/dist/index81.js +1 -1
  55. package/dist/index86.cjs +1 -1
  56. package/dist/index86.js +12 -33
  57. package/dist/index87.cjs +1 -1
  58. package/dist/index87.js +44 -12
  59. package/dist/index88.cjs +1 -1
  60. package/dist/index88.js +5 -44
  61. package/dist/index89.cjs +1 -1
  62. package/dist/index89.js +33 -5
  63. package/dist/src/components/forms/radio/Radio.component.d.ts.map +1 -1
  64. package/package.json +2 -1
  65. package/dist/index41.cjs +0 -1
  66. package/dist/index41.js +0 -6
package/dist/index47.js CHANGED
@@ -1,212 +1,10 @@
1
1
  import * as React from "react";
2
- import { composeEventHandlers } from "./index42.js";
3
- import { Primitive, dispatchDiscreteCustomEvent } from "./index53.js";
4
- import { useComposedRefs } from "./index44.js";
5
- import { useCallbackRef } from "./index55.js";
6
- import { useEscapeKeydown } from "./index63.js";
7
- import { jsx } from "react/jsx-runtime";
8
- var DISMISSABLE_LAYER_NAME = "DismissableLayer";
9
- var CONTEXT_UPDATE = "dismissableLayer.update";
10
- var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
11
- var FOCUS_OUTSIDE = "dismissableLayer.focusOutside";
12
- var originalBodyPointerEvents;
13
- var DismissableLayerContext = React.createContext({
14
- layers: /* @__PURE__ */ new Set(),
15
- layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
16
- branches: /* @__PURE__ */ new Set()
17
- });
18
- var DismissableLayer = React.forwardRef(
19
- (props, forwardedRef) => {
20
- const {
21
- disableOutsidePointerEvents = false,
22
- onEscapeKeyDown,
23
- onPointerDownOutside,
24
- onFocusOutside,
25
- onInteractOutside,
26
- onDismiss,
27
- ...layerProps
28
- } = props;
29
- const context = React.useContext(DismissableLayerContext);
30
- const [node, setNode] = React.useState(null);
31
- const ownerDocument = (node == null ? void 0 : node.ownerDocument) ?? (globalThis == null ? void 0 : globalThis.document);
32
- const [, force] = React.useState({});
33
- const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));
34
- const layers = Array.from(context.layers);
35
- const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);
36
- const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);
37
- const index = node ? layers.indexOf(node) : -1;
38
- const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;
39
- const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;
40
- const pointerDownOutside = usePointerDownOutside((event) => {
41
- const target = event.target;
42
- const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));
43
- if (!isPointerEventsEnabled || isPointerDownOnBranch) return;
44
- onPointerDownOutside == null ? void 0 : onPointerDownOutside(event);
45
- onInteractOutside == null ? void 0 : onInteractOutside(event);
46
- if (!event.defaultPrevented) onDismiss == null ? void 0 : onDismiss();
47
- }, ownerDocument);
48
- const focusOutside = useFocusOutside((event) => {
49
- const target = event.target;
50
- const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));
51
- if (isFocusInBranch) return;
52
- onFocusOutside == null ? void 0 : onFocusOutside(event);
53
- onInteractOutside == null ? void 0 : onInteractOutside(event);
54
- if (!event.defaultPrevented) onDismiss == null ? void 0 : onDismiss();
55
- }, ownerDocument);
56
- useEscapeKeydown((event) => {
57
- const isHighestLayer = index === context.layers.size - 1;
58
- if (!isHighestLayer) return;
59
- onEscapeKeyDown == null ? void 0 : onEscapeKeyDown(event);
60
- if (!event.defaultPrevented && onDismiss) {
61
- event.preventDefault();
62
- onDismiss();
63
- }
64
- }, ownerDocument);
65
- React.useEffect(() => {
66
- if (!node) return;
67
- if (disableOutsidePointerEvents) {
68
- if (context.layersWithOutsidePointerEventsDisabled.size === 0) {
69
- originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;
70
- ownerDocument.body.style.pointerEvents = "none";
71
- }
72
- context.layersWithOutsidePointerEventsDisabled.add(node);
73
- }
74
- context.layers.add(node);
75
- dispatchUpdate();
76
- return () => {
77
- if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {
78
- ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;
79
- }
80
- };
81
- }, [node, ownerDocument, disableOutsidePointerEvents, context]);
82
- React.useEffect(() => {
83
- return () => {
84
- if (!node) return;
85
- context.layers.delete(node);
86
- context.layersWithOutsidePointerEventsDisabled.delete(node);
87
- dispatchUpdate();
88
- };
89
- }, [node, context]);
90
- React.useEffect(() => {
91
- const handleUpdate = () => force({});
92
- document.addEventListener(CONTEXT_UPDATE, handleUpdate);
93
- return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
94
- }, []);
95
- return /* @__PURE__ */ jsx(
96
- Primitive.div,
97
- {
98
- ...layerProps,
99
- ref: composedRefs,
100
- style: {
101
- pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
102
- ...props.style
103
- },
104
- onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),
105
- onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),
106
- onPointerDownCapture: composeEventHandlers(
107
- props.onPointerDownCapture,
108
- pointerDownOutside.onPointerDownCapture
109
- )
110
- }
111
- );
112
- }
113
- );
114
- DismissableLayer.displayName = DISMISSABLE_LAYER_NAME;
115
- var BRANCH_NAME = "DismissableLayerBranch";
116
- var DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {
117
- const context = React.useContext(DismissableLayerContext);
118
- const ref = React.useRef(null);
119
- const composedRefs = useComposedRefs(forwardedRef, ref);
120
- React.useEffect(() => {
121
- const node = ref.current;
122
- if (node) {
123
- context.branches.add(node);
124
- return () => {
125
- context.branches.delete(node);
126
- };
127
- }
128
- }, [context.branches]);
129
- return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });
130
- });
131
- DismissableLayerBranch.displayName = BRANCH_NAME;
132
- function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis == null ? void 0 : globalThis.document) {
133
- const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);
134
- const isPointerInsideReactTreeRef = React.useRef(false);
135
- const handleClickRef = React.useRef(() => {
136
- });
137
- React.useEffect(() => {
138
- const handlePointerDown = (event) => {
139
- if (event.target && !isPointerInsideReactTreeRef.current) {
140
- let handleAndDispatchPointerDownOutsideEvent2 = function() {
141
- handleAndDispatchCustomEvent(
142
- POINTER_DOWN_OUTSIDE,
143
- handlePointerDownOutside,
144
- eventDetail,
145
- { discrete: true }
146
- );
147
- };
148
- const eventDetail = { originalEvent: event };
149
- if (event.pointerType === "touch") {
150
- ownerDocument.removeEventListener("click", handleClickRef.current);
151
- handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;
152
- ownerDocument.addEventListener("click", handleClickRef.current, { once: true });
153
- } else {
154
- handleAndDispatchPointerDownOutsideEvent2();
155
- }
156
- } else {
157
- ownerDocument.removeEventListener("click", handleClickRef.current);
158
- }
159
- isPointerInsideReactTreeRef.current = false;
160
- };
161
- const timerId = window.setTimeout(() => {
162
- ownerDocument.addEventListener("pointerdown", handlePointerDown);
163
- }, 0);
164
- return () => {
165
- window.clearTimeout(timerId);
166
- ownerDocument.removeEventListener("pointerdown", handlePointerDown);
167
- ownerDocument.removeEventListener("click", handleClickRef.current);
168
- };
169
- }, [ownerDocument, handlePointerDownOutside]);
170
- return {
171
- // ensures we check React component tree (not just DOM tree)
172
- onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true
173
- };
174
- }
175
- function useFocusOutside(onFocusOutside, ownerDocument = globalThis == null ? void 0 : globalThis.document) {
176
- const handleFocusOutside = useCallbackRef(onFocusOutside);
177
- const isFocusInsideReactTreeRef = React.useRef(false);
178
- React.useEffect(() => {
179
- const handleFocus = (event) => {
180
- if (event.target && !isFocusInsideReactTreeRef.current) {
181
- const eventDetail = { originalEvent: event };
182
- handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {
183
- discrete: false
184
- });
185
- }
186
- };
187
- ownerDocument.addEventListener("focusin", handleFocus);
188
- return () => ownerDocument.removeEventListener("focusin", handleFocus);
189
- }, [ownerDocument, handleFocusOutside]);
190
- return {
191
- onFocusCapture: () => isFocusInsideReactTreeRef.current = true,
192
- onBlurCapture: () => isFocusInsideReactTreeRef.current = false
193
- };
194
- }
195
- function dispatchUpdate() {
196
- const event = new CustomEvent(CONTEXT_UPDATE);
197
- document.dispatchEvent(event);
198
- }
199
- function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
200
- const target = detail.originalEvent.target;
201
- const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });
202
- if (handler) target.addEventListener(name, handler, { once: true });
203
- if (discrete) {
204
- dispatchDiscreteCustomEvent(target, event);
205
- } else {
206
- target.dispatchEvent(event);
207
- }
2
+ import "react/jsx-runtime";
3
+ var DirectionContext = React.createContext(void 0);
4
+ function useDirection(localDir) {
5
+ const globalDir = React.useContext(DirectionContext);
6
+ return localDir || globalDir || "ltr";
208
7
  }
209
8
  export {
210
- DismissableLayer,
211
- DismissableLayerBranch
9
+ useDirection
212
10
  };
package/dist/index48.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function e(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const t=e(require("react"));var n=0;function r(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}exports.useFocusGuards=function(){t.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??r()),document.body.insertAdjacentElement("beforeend",e[1]??r()),n++,()=>{1===n&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),n--}},[])};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t=require("./index43.cjs"),n=require("./index54.cjs"),r=require("./index45.cjs"),s=require("./index56.cjs"),i=require("./index63.cjs"),o=require("react/jsx-runtime");function u(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const a=u(e);var l,c="dismissableLayer.update",d="dismissableLayer.pointerDownOutside",v="dismissableLayer.focusOutside",f=a.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),b=a.forwardRef((e,u)=>{const{disableOutsidePointerEvents:b=!1,onEscapeKeyDown:m,onPointerDownOutside:y,onFocusOutside:h,onInteractOutside:w,onDismiss:D,...C}=e,g=a.useContext(f),[O,P]=a.useState(null),L=(null==O?void 0:O.ownerDocument)??(null==globalThis?void 0:globalThis.document),[,x]=a.useState({}),j=r.useComposedRefs(u,e=>P(e)),T=Array.from(g.layers),[R]=[...g.layersWithOutsidePointerEventsDisabled].slice(-1),S=T.indexOf(R),q=O?T.indexOf(O):-1,W=g.layersWithOutsidePointerEventsDisabled.size>0,k=q>=S,B=function(e,t=(null==globalThis?void 0:globalThis.document)){const n=s.useCallbackRef(e),r=a.useRef(!1),i=a.useRef(()=>{});return a.useEffect(()=>{const e=e=>{if(e.target&&!r.current){let r=function(){E(d,n,s,{discrete:!0})};const s={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",i.current),i.current=r,t.addEventListener("click",i.current,{once:!0})):r()}else t.removeEventListener("click",i.current);r.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",e),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}(e=>{const t=e.target,n=[...g.branches].some(e=>e.contains(t));k&&!n&&(null==y||y(e),null==w||w(e),e.defaultPrevented||null==D||D())},L),z=function(e,t=(null==globalThis?void 0:globalThis.document)){const n=s.useCallbackRef(e),r=a.useRef(!1);return a.useEffect(()=>{const e=e=>{if(e.target&&!r.current){E(v,n,{originalEvent:e},{discrete:!1})}};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}(e=>{const t=e.target;[...g.branches].some(e=>e.contains(t))||(null==h||h(e),null==w||w(e),e.defaultPrevented||null==D||D())},L);return i.useEscapeKeydown(e=>{q===g.layers.size-1&&(null==m||m(e),!e.defaultPrevented&&D&&(e.preventDefault(),D()))},L),a.useEffect(()=>{if(O)return b&&(0===g.layersWithOutsidePointerEventsDisabled.size&&(l=L.body.style.pointerEvents,L.body.style.pointerEvents="none"),g.layersWithOutsidePointerEventsDisabled.add(O)),g.layers.add(O),p(),()=>{b&&1===g.layersWithOutsidePointerEventsDisabled.size&&(L.body.style.pointerEvents=l)}},[O,L,b,g]),a.useEffect(()=>()=>{O&&(g.layers.delete(O),g.layersWithOutsidePointerEventsDisabled.delete(O),p())},[O,g]),a.useEffect(()=>{const e=()=>x({});return document.addEventListener(c,e),()=>document.removeEventListener(c,e)},[]),o.jsx(n.Primitive.div,{...C,ref:j,style:{pointerEvents:W?k?"auto":"none":void 0,...e.style},onFocusCapture:t.composeEventHandlers(e.onFocusCapture,z.onFocusCapture),onBlurCapture:t.composeEventHandlers(e.onBlurCapture,z.onBlurCapture),onPointerDownCapture:t.composeEventHandlers(e.onPointerDownCapture,B.onPointerDownCapture)})});b.displayName="DismissableLayer";var m=a.forwardRef((e,t)=>{const s=a.useContext(f),i=a.useRef(null),u=r.useComposedRefs(t,i);return a.useEffect(()=>{const e=i.current;if(e)return s.branches.add(e),()=>{s.branches.delete(e)}},[s.branches]),o.jsx(n.Primitive.div,{...e,ref:u})});function p(){const e=new CustomEvent(c);document.dispatchEvent(e)}function E(e,t,r,{discrete:s}){const i=r.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&i.addEventListener(e,t,{once:!0}),s?n.dispatchDiscreteCustomEvent(i,o):i.dispatchEvent(o)}m.displayName="DismissableLayerBranch",exports.DismissableLayer=b,exports.DismissableLayerBranch=m;
package/dist/index48.js CHANGED
@@ -1,29 +1,212 @@
1
1
  import * as React from "react";
2
- var count = 0;
3
- function useFocusGuards() {
2
+ import { composeEventHandlers } from "./index43.js";
3
+ import { Primitive, dispatchDiscreteCustomEvent } from "./index54.js";
4
+ import { useComposedRefs } from "./index45.js";
5
+ import { useCallbackRef } from "./index56.js";
6
+ import { useEscapeKeydown } from "./index63.js";
7
+ import { jsx } from "react/jsx-runtime";
8
+ var DISMISSABLE_LAYER_NAME = "DismissableLayer";
9
+ var CONTEXT_UPDATE = "dismissableLayer.update";
10
+ var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
11
+ var FOCUS_OUTSIDE = "dismissableLayer.focusOutside";
12
+ var originalBodyPointerEvents;
13
+ var DismissableLayerContext = React.createContext({
14
+ layers: /* @__PURE__ */ new Set(),
15
+ layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
16
+ branches: /* @__PURE__ */ new Set()
17
+ });
18
+ var DismissableLayer = React.forwardRef(
19
+ (props, forwardedRef) => {
20
+ const {
21
+ disableOutsidePointerEvents = false,
22
+ onEscapeKeyDown,
23
+ onPointerDownOutside,
24
+ onFocusOutside,
25
+ onInteractOutside,
26
+ onDismiss,
27
+ ...layerProps
28
+ } = props;
29
+ const context = React.useContext(DismissableLayerContext);
30
+ const [node, setNode] = React.useState(null);
31
+ const ownerDocument = (node == null ? void 0 : node.ownerDocument) ?? (globalThis == null ? void 0 : globalThis.document);
32
+ const [, force] = React.useState({});
33
+ const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));
34
+ const layers = Array.from(context.layers);
35
+ const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);
36
+ const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);
37
+ const index = node ? layers.indexOf(node) : -1;
38
+ const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;
39
+ const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;
40
+ const pointerDownOutside = usePointerDownOutside((event) => {
41
+ const target = event.target;
42
+ const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));
43
+ if (!isPointerEventsEnabled || isPointerDownOnBranch) return;
44
+ onPointerDownOutside == null ? void 0 : onPointerDownOutside(event);
45
+ onInteractOutside == null ? void 0 : onInteractOutside(event);
46
+ if (!event.defaultPrevented) onDismiss == null ? void 0 : onDismiss();
47
+ }, ownerDocument);
48
+ const focusOutside = useFocusOutside((event) => {
49
+ const target = event.target;
50
+ const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));
51
+ if (isFocusInBranch) return;
52
+ onFocusOutside == null ? void 0 : onFocusOutside(event);
53
+ onInteractOutside == null ? void 0 : onInteractOutside(event);
54
+ if (!event.defaultPrevented) onDismiss == null ? void 0 : onDismiss();
55
+ }, ownerDocument);
56
+ useEscapeKeydown((event) => {
57
+ const isHighestLayer = index === context.layers.size - 1;
58
+ if (!isHighestLayer) return;
59
+ onEscapeKeyDown == null ? void 0 : onEscapeKeyDown(event);
60
+ if (!event.defaultPrevented && onDismiss) {
61
+ event.preventDefault();
62
+ onDismiss();
63
+ }
64
+ }, ownerDocument);
65
+ React.useEffect(() => {
66
+ if (!node) return;
67
+ if (disableOutsidePointerEvents) {
68
+ if (context.layersWithOutsidePointerEventsDisabled.size === 0) {
69
+ originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;
70
+ ownerDocument.body.style.pointerEvents = "none";
71
+ }
72
+ context.layersWithOutsidePointerEventsDisabled.add(node);
73
+ }
74
+ context.layers.add(node);
75
+ dispatchUpdate();
76
+ return () => {
77
+ if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {
78
+ ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;
79
+ }
80
+ };
81
+ }, [node, ownerDocument, disableOutsidePointerEvents, context]);
82
+ React.useEffect(() => {
83
+ return () => {
84
+ if (!node) return;
85
+ context.layers.delete(node);
86
+ context.layersWithOutsidePointerEventsDisabled.delete(node);
87
+ dispatchUpdate();
88
+ };
89
+ }, [node, context]);
90
+ React.useEffect(() => {
91
+ const handleUpdate = () => force({});
92
+ document.addEventListener(CONTEXT_UPDATE, handleUpdate);
93
+ return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
94
+ }, []);
95
+ return /* @__PURE__ */ jsx(
96
+ Primitive.div,
97
+ {
98
+ ...layerProps,
99
+ ref: composedRefs,
100
+ style: {
101
+ pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
102
+ ...props.style
103
+ },
104
+ onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),
105
+ onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),
106
+ onPointerDownCapture: composeEventHandlers(
107
+ props.onPointerDownCapture,
108
+ pointerDownOutside.onPointerDownCapture
109
+ )
110
+ }
111
+ );
112
+ }
113
+ );
114
+ DismissableLayer.displayName = DISMISSABLE_LAYER_NAME;
115
+ var BRANCH_NAME = "DismissableLayerBranch";
116
+ var DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {
117
+ const context = React.useContext(DismissableLayerContext);
118
+ const ref = React.useRef(null);
119
+ const composedRefs = useComposedRefs(forwardedRef, ref);
4
120
  React.useEffect(() => {
5
- const edgeGuards = document.querySelectorAll("[data-radix-focus-guard]");
6
- document.body.insertAdjacentElement("afterbegin", edgeGuards[0] ?? createFocusGuard());
7
- document.body.insertAdjacentElement("beforeend", edgeGuards[1] ?? createFocusGuard());
8
- count++;
121
+ const node = ref.current;
122
+ if (node) {
123
+ context.branches.add(node);
124
+ return () => {
125
+ context.branches.delete(node);
126
+ };
127
+ }
128
+ }, [context.branches]);
129
+ return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });
130
+ });
131
+ DismissableLayerBranch.displayName = BRANCH_NAME;
132
+ function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis == null ? void 0 : globalThis.document) {
133
+ const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);
134
+ const isPointerInsideReactTreeRef = React.useRef(false);
135
+ const handleClickRef = React.useRef(() => {
136
+ });
137
+ React.useEffect(() => {
138
+ const handlePointerDown = (event) => {
139
+ if (event.target && !isPointerInsideReactTreeRef.current) {
140
+ let handleAndDispatchPointerDownOutsideEvent2 = function() {
141
+ handleAndDispatchCustomEvent(
142
+ POINTER_DOWN_OUTSIDE,
143
+ handlePointerDownOutside,
144
+ eventDetail,
145
+ { discrete: true }
146
+ );
147
+ };
148
+ const eventDetail = { originalEvent: event };
149
+ if (event.pointerType === "touch") {
150
+ ownerDocument.removeEventListener("click", handleClickRef.current);
151
+ handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;
152
+ ownerDocument.addEventListener("click", handleClickRef.current, { once: true });
153
+ } else {
154
+ handleAndDispatchPointerDownOutsideEvent2();
155
+ }
156
+ } else {
157
+ ownerDocument.removeEventListener("click", handleClickRef.current);
158
+ }
159
+ isPointerInsideReactTreeRef.current = false;
160
+ };
161
+ const timerId = window.setTimeout(() => {
162
+ ownerDocument.addEventListener("pointerdown", handlePointerDown);
163
+ }, 0);
9
164
  return () => {
10
- if (count === 1) {
11
- document.querySelectorAll("[data-radix-focus-guard]").forEach((node) => node.remove());
165
+ window.clearTimeout(timerId);
166
+ ownerDocument.removeEventListener("pointerdown", handlePointerDown);
167
+ ownerDocument.removeEventListener("click", handleClickRef.current);
168
+ };
169
+ }, [ownerDocument, handlePointerDownOutside]);
170
+ return {
171
+ // ensures we check React component tree (not just DOM tree)
172
+ onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true
173
+ };
174
+ }
175
+ function useFocusOutside(onFocusOutside, ownerDocument = globalThis == null ? void 0 : globalThis.document) {
176
+ const handleFocusOutside = useCallbackRef(onFocusOutside);
177
+ const isFocusInsideReactTreeRef = React.useRef(false);
178
+ React.useEffect(() => {
179
+ const handleFocus = (event) => {
180
+ if (event.target && !isFocusInsideReactTreeRef.current) {
181
+ const eventDetail = { originalEvent: event };
182
+ handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {
183
+ discrete: false
184
+ });
12
185
  }
13
- count--;
14
186
  };
15
- }, []);
187
+ ownerDocument.addEventListener("focusin", handleFocus);
188
+ return () => ownerDocument.removeEventListener("focusin", handleFocus);
189
+ }, [ownerDocument, handleFocusOutside]);
190
+ return {
191
+ onFocusCapture: () => isFocusInsideReactTreeRef.current = true,
192
+ onBlurCapture: () => isFocusInsideReactTreeRef.current = false
193
+ };
194
+ }
195
+ function dispatchUpdate() {
196
+ const event = new CustomEvent(CONTEXT_UPDATE);
197
+ document.dispatchEvent(event);
16
198
  }
17
- function createFocusGuard() {
18
- const element = document.createElement("span");
19
- element.setAttribute("data-radix-focus-guard", "");
20
- element.tabIndex = 0;
21
- element.style.outline = "none";
22
- element.style.opacity = "0";
23
- element.style.position = "fixed";
24
- element.style.pointerEvents = "none";
25
- return element;
199
+ function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
200
+ const target = detail.originalEvent.target;
201
+ const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });
202
+ if (handler) target.addEventListener(name, handler, { once: true });
203
+ if (discrete) {
204
+ dispatchDiscreteCustomEvent(target, event);
205
+ } else {
206
+ target.dispatchEvent(event);
207
+ }
26
208
  }
27
209
  export {
28
- useFocusGuards
210
+ DismissableLayer,
211
+ DismissableLayerBranch
29
212
  };
package/dist/index49.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t=require("./index44.cjs"),n=require("./index53.cjs"),o=require("./index55.cjs"),r=require("react/jsx-runtime");function u(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const c=u(e);var s="focusScope.autoFocusOnMount",i="focusScope.autoFocusOnUnmount",a={bubbles:!1,cancelable:!0},d=c.forwardRef((e,u)=>{const{loop:d=!1,trapped:m=!1,onMountAutoFocus:E,onUnmountAutoFocus:b,...y}=e,[T,g]=c.useState(null),S=o.useCallbackRef(E),L=o.useCallbackRef(b),h=c.useRef(null),F=t.useComposedRefs(u,e=>g(e)),N=c.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;c.useEffect(()=>{if(m){let e=function(e){if(N.paused||!T)return;const t=e.target;T.contains(t)?h.current=t:v(h.current,{select:!0})},t=function(e){if(N.paused||!T)return;const t=e.relatedTarget;null!==t&&(T.contains(t)||v(h.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(const t of e)t.removedNodes.length>0&&v(T)};document.addEventListener("focusin",e),document.addEventListener("focusout",t);const o=new MutationObserver(n);return T&&o.observe(T,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),o.disconnect()}}},[m,T,N.paused]),c.useEffect(()=>{if(T){p.add(N);const t=document.activeElement;if(!T.contains(t)){const n=new CustomEvent(s,a);T.addEventListener(s,S),T.dispatchEvent(n),n.defaultPrevented||(!function(e,{select:t=!1}={}){const n=document.activeElement;for(const o of e)if(v(o,{select:t}),document.activeElement!==n)return}((e=l(T),e.filter(e=>"A"!==e.tagName)),{select:!0}),document.activeElement===t&&v(T))}return()=>{T.removeEventListener(s,S),setTimeout(()=>{const e=new CustomEvent(i,a);T.addEventListener(i,L),T.dispatchEvent(e),e.defaultPrevented||v(t??document.body,{select:!0}),T.removeEventListener(i,L),p.remove(N)},0)}}var e},[T,S,L,N]);const x=c.useCallback(e=>{if(!d&&!m)return;if(N.paused)return;const t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,n=document.activeElement;if(t&&n){const t=e.currentTarget,[o,r]=function(e){const t=l(e),n=f(t,e),o=f(t.reverse(),e);return[n,o]}(t);o&&r?e.shiftKey||n!==r?e.shiftKey&&n===o&&(e.preventDefault(),d&&v(r,{select:!0})):(e.preventDefault(),d&&v(o,{select:!0})):n===t&&e.preventDefault()}},[d,m,N.paused]);return r.jsx(n.Primitive.div,{tabIndex:-1,...y,ref:F,onKeyDown:x})});function l(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function f(e,t){for(const n of e)if(!m(n,{upTo:t}))return n}function m(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(void 0!==t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}function v(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&function(e){return e instanceof HTMLInputElement&&"select"in e}(e)&&t&&e.select()}}d.displayName="FocusScope";var p=function(){let e=[];return{add(t){const n=e[0];t!==n&&(null==n||n.pause()),e=E(e,t),e.unshift(t)},remove(t){var n;e=E(e,t),null==(n=e[0])||n.resume()}}}();function E(e,t){const n=[...e],o=n.indexOf(t);return-1!==o&&n.splice(o,1),n}exports.FocusScope=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function e(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const t=e(require("react"));var n=0;function r(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}exports.useFocusGuards=function(){t.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??r()),document.body.insertAdjacentElement("beforeend",e[1]??r()),n++,()=>{1===n&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),n--}},[])};