@tamagui/popover 1.1.7 → 1.1.9

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.
@@ -1,9 +1,16 @@
1
1
  import "@tamagui/polyfill-dev";
2
+ import {
3
+ useDismiss,
4
+ useFloating,
5
+ useInteractions,
6
+ useRole
7
+ } from "@floating-ui/react-dom-interactions";
2
8
  import { Adapt, useAdaptParent } from "@tamagui/adapt";
3
9
  import { AnimatePresence } from "@tamagui/animate-presence";
4
10
  import { hideOthers } from "@tamagui/aria-hidden";
5
11
  import { useComposedRefs } from "@tamagui/compose-refs";
6
12
  import {
13
+ Stack,
7
14
  Theme,
8
15
  composeEventHandlers,
9
16
  isWeb,
@@ -15,9 +22,9 @@ import {
15
22
  withStaticProperties
16
23
  } from "@tamagui/core";
17
24
  import { createContextScope } from "@tamagui/create-context";
25
+ import { FloatingOverrideContext } from "@tamagui/floating";
18
26
  import { FocusScope } from "@tamagui/focus-scope";
19
27
  import {
20
- FloatingOverrideContext,
21
28
  Popper,
22
29
  PopperAnchor,
23
30
  PopperArrow,
@@ -32,8 +39,10 @@ import { ControlledSheet, SheetController } from "@tamagui/sheet";
32
39
  import { YStack } from "@tamagui/stacks";
33
40
  import { useControllableState } from "@tamagui/use-controllable-state";
34
41
  import * as React from "react";
35
- import { Platform, ScrollView } from "react-native";
36
- import { useDismiss, useFloating, useInteractions, useRole } from "./floating";
42
+ import {
43
+ Platform,
44
+ ScrollView
45
+ } from "react-native";
37
46
  const POPOVER_NAME = "Popover";
38
47
  const [createPopoverContext, createPopoverScopeInternal] = createContextScope(
39
48
  POPOVER_NAME,
@@ -64,7 +73,14 @@ const PopoverTrigger = React.forwardRef((props, forwardedRef) => {
64
73
  const context = usePopoverInternalContext(TRIGGER_NAME, __scopePopover);
65
74
  const popperScope = usePopoverScope(__scopePopover);
66
75
  const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
67
- const trigger = <YStack aria-haspopup="dialog" aria-expanded={context.open} data-state={getState(context.open)} {...triggerProps} ref={composedTriggerRef} onPress={composeEventHandlers(props.onPress, context.onOpenToggle)} />;
76
+ const trigger = <YStack
77
+ aria-haspopup="dialog"
78
+ aria-expanded={context.open}
79
+ data-state={getState(context.open)}
80
+ {...triggerProps}
81
+ ref={composedTriggerRef}
82
+ onPress={composeEventHandlers(props.onPress, context.onOpenToggle)}
83
+ />;
68
84
  return context.hasCustomAnchor ? trigger : <PopperAnchor asChild {...popperScope}>{trigger}</PopperAnchor>;
69
85
  });
70
86
  PopoverTrigger.displayName = TRIGGER_NAME;
@@ -88,34 +104,50 @@ const PopoverContent = React.forwardRef((props, forwardedRef) => {
88
104
  if (content)
89
105
  return hideOthers(content);
90
106
  }, [context.open]);
91
- return <PopoverContentPortal zIndex={zIndex}><PopoverContentImpl {...contentModalProps} disableRemoveScroll={disableRemoveScroll} ref={composedRefs} trapFocus={trapFocus ?? context.open} disableOutsidePointerEvents onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {
92
- event.preventDefault();
93
- if (!isRightClickOutsideRef.current)
94
- context.triggerRef.current?.focus();
95
- })} onPointerDownOutside={composeEventHandlers(
96
- props.onPointerDownOutside,
97
- (event) => {
98
- const originalEvent = event.detail.originalEvent;
99
- const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
100
- const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
101
- isRightClickOutsideRef.current = isRightClick;
102
- },
103
- { checkDefaultPrevented: false }
104
- )} onFocusOutside={composeEventHandlers(
105
- props.onFocusOutside,
106
- (event) => event.preventDefault(),
107
- { checkDefaultPrevented: false }
108
- )} /></PopoverContentPortal>;
107
+ return <PopoverContentPortal zIndex={zIndex}><PopoverContentImpl
108
+ {...contentModalProps}
109
+ disableRemoveScroll={disableRemoveScroll}
110
+ ref={composedRefs}
111
+ trapFocus={trapFocus ?? context.open}
112
+ disableOutsidePointerEvents
113
+ onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {
114
+ event.preventDefault();
115
+ if (!isRightClickOutsideRef.current)
116
+ context.triggerRef.current?.focus();
117
+ })}
118
+ onPointerDownOutside={composeEventHandlers(
119
+ props.onPointerDownOutside,
120
+ (event) => {
121
+ const originalEvent = event.detail.originalEvent;
122
+ const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
123
+ const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
124
+ isRightClickOutsideRef.current = isRightClick;
125
+ },
126
+ { checkDefaultPrevented: false }
127
+ )}
128
+ onFocusOutside={composeEventHandlers(
129
+ props.onFocusOutside,
130
+ (event) => event.preventDefault(),
131
+ { checkDefaultPrevented: false }
132
+ )}
133
+ /></PopoverContentPortal>;
109
134
  });
110
135
  function PopoverContentPortal(props) {
111
136
  const themeName = useThemeName();
137
+ const context = usePopoverInternalContext(CONTENT_NAME, props.__scopePopover);
112
138
  let contents = props.children;
113
139
  if (Platform.OS === "android") {
114
- const context = usePopoverInternalContext(CONTENT_NAME, props.__scopePopover);
115
140
  const popperContext = usePopperContext(CONTENT_NAME, context.popperScope);
116
141
  contents = <PopperProvider {...popperContext} scope={context.popperScope}><PopoverProviderInternal scope={props.__scopePopover} {...context}>{props.children}</PopoverProviderInternal></PopperProvider>;
117
142
  }
118
- return <Portal zIndex={props.zIndex ?? 1e3}><Theme forceClassName name={themeName}>{contents}</Theme></Portal>;
143
+ const zIndex = props.zIndex ?? 1e3;
144
+ return <Portal zIndex={zIndex}><Theme forceClassName name={themeName}>
145
+ {!!context.open && !context.breakpointActive && <YStack
146
+ fullscreen
147
+ onPress={composeEventHandlers(props.onPress, context.onOpenToggle)}
148
+ />}
149
+ <Stack zIndex={zIndex + 1}>{contents}</Stack>
150
+ </Theme></Portal>;
119
151
  }
120
152
  const PopoverContentImpl = React.forwardRef((props, forwardedRef) => {
121
153
  const {
@@ -134,8 +166,7 @@ const PopoverContentImpl = React.forwardRef((props, forwardedRef) => {
134
166
  } = props;
135
167
  const popperScope = usePopoverScope(__scopePopover);
136
168
  const context = usePopoverInternalContext(CONTENT_NAME, popperScope.__scopePopover);
137
- const showSheet = useShowPopoverSheet(context);
138
- if (showSheet) {
169
+ if (context.breakpointActive) {
139
170
  const childrenWithoutScrollView = React.Children.toArray(children).map((child) => {
140
171
  if (React.isValidElement(child)) {
141
172
  if (child.type === PopoverScrollView) {
@@ -146,28 +177,47 @@ const PopoverContentImpl = React.forwardRef((props, forwardedRef) => {
146
177
  });
147
178
  return <PortalItem hostName={`${context.scopeKey}SheetContents`}>{childrenWithoutScrollView}</PortalItem>;
148
179
  }
149
- return <AnimatePresence>{!!context.open && <PopperContent key="popper-content" data-state={getState(context.open)} id={context.contentId} pointerEvents="auto" {...popperScope} {...contentProps} ref={forwardedRef}><RemoveScroll enabled={disableRemoveScroll ? false : context.open} allowPinchZoom removeScrollBar={false} style={{
150
- display: "contents"
151
- }}>{trapFocus === false ? children : <FocusScope loop trapped={trapFocus ?? context.open} onMountAutoFocus={onOpenAutoFocus} onUnmountAutoFocus={onCloseAutoFocus}><div style={{ display: "contents" }}>{children}</div></FocusScope>}</RemoveScroll></PopperContent>}</AnimatePresence>;
180
+ return <AnimatePresence>{!!context.open && <PopperContent
181
+ key={context.contentId}
182
+ data-state={getState(context.open)}
183
+ id={context.contentId}
184
+ pointerEvents="auto"
185
+ ref={forwardedRef}
186
+ {...popperScope}
187
+ {...contentProps}
188
+ ><RemoveScroll
189
+ enabled={disableRemoveScroll ? false : context.open}
190
+ allowPinchZoom
191
+ removeScrollBar={false}
192
+ style={{
193
+ display: "contents"
194
+ }}
195
+ >{trapFocus === false ? children : <FocusScope
196
+ loop
197
+ trapped={trapFocus ?? context.open}
198
+ onMountAutoFocus={onOpenAutoFocus}
199
+ onUnmountAutoFocus={onCloseAutoFocus}
200
+ >{isWeb ? <div style={{ display: "contents" }}>{children}</div> : children}</FocusScope>}</RemoveScroll></PopperContent>}</AnimatePresence>;
152
201
  });
153
202
  const CLOSE_NAME = "PopoverClose";
154
203
  const PopoverClose = React.forwardRef(
155
204
  (props, forwardedRef) => {
156
205
  const { __scopePopover, ...closeProps } = props;
157
206
  const context = usePopoverInternalContext(CLOSE_NAME, __scopePopover);
158
- return <YStack {...closeProps} ref={forwardedRef} onPress={composeEventHandlers(
159
- props.onPress,
160
- () => context.onOpenChange(false)
161
- )} />;
207
+ return <YStack
208
+ {...closeProps}
209
+ ref={forwardedRef}
210
+ onPress={composeEventHandlers(
211
+ props.onPress,
212
+ () => context.onOpenChange(false)
213
+ )}
214
+ />;
162
215
  }
163
216
  );
164
217
  PopoverClose.displayName = CLOSE_NAME;
165
218
  const ARROW_NAME = "PopoverArrow";
166
219
  const PopoverArrow = React.forwardRef(
167
220
  (props, forwardedRef) => {
168
- if (!isWeb) {
169
- return null;
170
- }
171
221
  const { __scopePopover, ...arrowProps } = props;
172
222
  const popperScope = usePopoverScope(__scopePopover);
173
223
  return <PopperArrow {...popperScope} {...arrowProps} ref={forwardedRef} />;
@@ -213,6 +263,10 @@ const Popover = withStaticProperties(
213
263
  onOpenChange: setOpen
214
264
  });
215
265
  const { getReferenceProps, getFloatingProps } = useInteractions([
266
+ // useFocus(floating.context, {
267
+ // enabled: !breakpointActive,
268
+ // keyboardOnly: true,
269
+ // }),
216
270
  useRole(floating.context, { role: "dialog" }),
217
271
  useDismiss(floating.context, {
218
272
  enabled: !breakpointActive
@@ -234,6 +288,7 @@ const Popover = withStaticProperties(
234
288
  contentId: useId(),
235
289
  triggerRef,
236
290
  open,
291
+ breakpointActive,
237
292
  onOpenChange: setOpen,
238
293
  onOpenToggle: useEvent(() => {
239
294
  if (open && breakpointActive) {
@@ -245,7 +300,8 @@ const Popover = withStaticProperties(
245
300
  onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),
246
301
  onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), [])
247
302
  };
248
- return <AdaptProvider><FloatingOverrideContext.Provider value={useFloatingContext}><Popper {...popperScope} stayInFrame {...restProps}><PopoverProviderInternal {...popoverContext}><PopoverSheetController onOpenChange={setOpen} __scopePopover={__scopePopover}>{children}</PopoverSheetController></PopoverProviderInternal></Popper></FloatingOverrideContext.Provider></AdaptProvider>;
303
+ const contents = <Popper {...popperScope} stayInFrame {...restProps}><PopoverProviderInternal {...popoverContext}><PopoverSheetController onOpenChange={setOpen} __scopePopover={__scopePopover}>{children}</PopoverSheetController></PopoverProviderInternal></Popper>;
304
+ return <AdaptProvider>{isWeb ? <FloatingOverrideContext.Provider value={useFloatingContext}>{contents}</FloatingOverrideContext.Provider> : contents}</AdaptProvider>;
249
305
  },
250
306
  {
251
307
  Anchor: PopoverAnchor,
@@ -268,25 +324,26 @@ const PopoverSheetController = (props) => {
268
324
  props.__scopePopover
269
325
  );
270
326
  const showSheet = useShowPopoverSheet(context);
271
- const breakpointActive = useSheetBreakpointActive(context.sheetBreakpoint);
327
+ const breakpointActive = context.breakpointActive;
272
328
  const getShowSheet = useGet(showSheet);
273
- return <SheetController onOpenChange={(val) => {
274
- if (getShowSheet()) {
275
- props.onOpenChange(val);
276
- }
277
- }} open={context.open} hidden={breakpointActive === false}>{props.children}</SheetController>;
329
+ return <SheetController
330
+ onOpenChange={(val) => {
331
+ if (getShowSheet()) {
332
+ props.onOpenChange(val);
333
+ }
334
+ }}
335
+ open={context.open}
336
+ hidden={breakpointActive === false}
337
+ >{props.children}</SheetController>;
278
338
  };
279
339
  const useSheetBreakpointActive = (breakpoint) => {
280
340
  const media = useMedia();
281
- if (!breakpoint)
282
- return false;
283
- if (breakpoint === true)
284
- return true;
341
+ if (typeof breakpoint === "boolean" || !breakpoint) {
342
+ return !!breakpoint;
343
+ }
285
344
  return media[breakpoint];
286
345
  };
287
346
  const useShowPopoverSheet = (context) => {
288
- if (!isWeb)
289
- return true;
290
347
  const breakpointActive = useSheetBreakpointActive(context.sheetBreakpoint);
291
348
  return context.open === false ? false : breakpointActive;
292
349
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Popover.tsx"],
4
- "sourcesContent": ["// adapted from radix-ui popover\n\nimport '@tamagui/polyfill-dev'\n\nimport { Adapt, useAdaptParent } from '@tamagui/adapt'\nimport { AnimatePresence } from '@tamagui/animate-presence'\nimport { hideOthers } from '@tamagui/aria-hidden'\nimport { useComposedRefs } from '@tamagui/compose-refs'\nimport {\n MediaQueryKey,\n SizeTokens,\n Theme,\n composeEventHandlers,\n isWeb,\n useEvent,\n useGet,\n useId,\n useMedia,\n useThemeName,\n withStaticProperties,\n} from '@tamagui/core'\nimport type { Scope } from '@tamagui/create-context'\nimport { createContextScope } from '@tamagui/create-context'\nimport { DismissableProps } from '@tamagui/dismissable'\nimport { FocusScope, FocusScopeProps } from '@tamagui/focus-scope'\nimport {\n FloatingOverrideContext,\n Popper,\n PopperAnchor,\n PopperArrow,\n PopperArrowProps,\n PopperContent,\n PopperContentProps,\n PopperProps,\n PopperProvider,\n createPopperScope,\n usePopperContext,\n} from '@tamagui/popper'\nimport { Portal, PortalHost, PortalItem } from '@tamagui/portal'\nimport { RemoveScroll, RemoveScrollProps } from '@tamagui/remove-scroll'\nimport { ControlledSheet, SheetController } from '@tamagui/sheet'\nimport { YStack, YStackProps } from '@tamagui/stacks'\nimport { useControllableState } from '@tamagui/use-controllable-state'\nimport * as React from 'react'\nimport { Platform, ScrollView, ScrollViewProps, View } from 'react-native'\n\nimport type { UseFloatingProps } from './floating'\nimport { useDismiss, useFloating, useFocus, useInteractions, useRole } from './floating'\n\nconst POPOVER_NAME = 'Popover'\n\ntype ScopedProps<P> = P & { __scopePopover?: Scope }\n\nexport type PopoverProps = PopperProps & {\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n}\n\ntype PopoverContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement>\n contentId?: string\n open: boolean\n onOpenChange(open: boolean): void\n onOpenToggle(): void\n hasCustomAnchor: boolean\n onCustomAnchorAdd(): void\n onCustomAnchorRemove(): void\n size?: SizeTokens\n sheetBreakpoint: any\n scopeKey: string\n popperScope: any\n}\n\nconst [createPopoverContext, createPopoverScopeInternal] = createContextScope(\n POPOVER_NAME,\n [createPopperScope]\n)\nexport const usePopoverScope = createPopperScope()\nexport const createPopoverScope = createPopoverScopeInternal\n\nconst [PopoverProviderInternal, usePopoverInternalContext] =\n createPopoverContext<PopoverContextValue>(POPOVER_NAME)\n\nexport const __PopoverProviderInternal = PopoverProviderInternal\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'PopoverAnchor'\n\ntype PopoverAnchorElement = HTMLElement | View\nexport type PopoverAnchorProps = YStackProps\n\nexport const PopoverAnchor = React.forwardRef<PopoverAnchorElement, PopoverAnchorProps>(\n (props: ScopedProps<PopoverAnchorProps>, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props\n const context = usePopoverInternalContext(ANCHOR_NAME, __scopePopover)\n const popperScope = usePopoverScope(__scopePopover)\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context\n\n React.useEffect(() => {\n onCustomAnchorAdd()\n return () => onCustomAnchorRemove()\n }, [onCustomAnchorAdd, onCustomAnchorRemove])\n\n return <PopperAnchor {...popperScope} {...anchorProps} ref={forwardedRef} />\n }\n)\n\nPopoverAnchor.displayName = ANCHOR_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'PopoverTrigger'\n\ntype PopoverTriggerElement = HTMLElement | View\nexport type PopoverTriggerProps = YStackProps\n\nexport const PopoverTrigger = React.forwardRef<\n PopoverTriggerElement,\n PopoverTriggerProps\n>((props: ScopedProps<PopoverTriggerProps>, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props\n const context = usePopoverInternalContext(TRIGGER_NAME, __scopePopover)\n const popperScope = usePopoverScope(__scopePopover)\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef)\n\n const trigger = (\n <YStack\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n // TODO not matching\n // aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onPress={composeEventHandlers(props.onPress as any, context.onOpenToggle)}\n />\n )\n\n return context.hasCustomAnchor ? (\n trigger\n ) : (\n <PopperAnchor asChild {...popperScope}>\n {trigger}\n </PopperAnchor>\n )\n})\n\nPopoverTrigger.displayName = TRIGGER_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'PopoverContent'\n\nexport type PopoverContentProps = PopoverContentTypeProps\n\ntype PopoverContentTypeElement = PopoverContentImplElement\n\nexport interface PopoverContentTypeProps\n extends Omit<PopoverContentImplProps, 'disableOutsidePointerEvents'> {\n /**\n * @see https://github.com/theKashey/react-remove-scroll#usage\n */\n allowPinchZoom?: RemoveScrollProps['allowPinchZoom']\n}\n\nexport const PopoverContent = React.forwardRef<\n PopoverContentTypeElement,\n PopoverContentTypeProps\n>((props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const {\n allowPinchZoom,\n trapFocus,\n disableRemoveScroll = true,\n zIndex,\n ...contentModalProps\n } = props\n const context = usePopoverInternalContext(CONTENT_NAME, props.__scopePopover)\n const contentRef = React.useRef<HTMLDivElement>(null)\n const composedRefs = useComposedRefs(forwardedRef, contentRef)\n const isRightClickOutsideRef = React.useRef(false)\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n if (!context.open) return\n const content = contentRef.current\n if (content) return hideOthers(content)\n }, [context.open])\n\n return (\n <PopoverContentPortal zIndex={zIndex}>\n <PopoverContentImpl\n {...contentModalProps}\n disableRemoveScroll={disableRemoveScroll}\n ref={composedRefs}\n // we make sure we're not trapping once it's been closed\n // (closed !== unmounted when animating out)\n trapFocus={trapFocus ?? context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault()\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus()\n })}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent\n const ctrlLeftClick =\n originalEvent.button === 0 && originalEvent.ctrlKey === true\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick\n isRightClickOutsideRef.current = isRightClick\n },\n { checkDefaultPrevented: false }\n )}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkDefaultPrevented: false }\n )}\n />\n </PopoverContentPortal>\n )\n})\n\nfunction PopoverContentPortal(props: ScopedProps<PopoverContentTypeProps>) {\n const themeName = useThemeName()\n\n // on android we have to re-pass context\n let contents = props.children\n\n if (Platform.OS === 'android') {\n // ok conditional hooks by platform\n const context = usePopoverInternalContext(CONTENT_NAME, props.__scopePopover)\n const popperContext = usePopperContext(CONTENT_NAME, context.popperScope)\n\n contents = (\n <PopperProvider {...popperContext} scope={context.popperScope}>\n <PopoverProviderInternal scope={props.__scopePopover} {...context}>\n {/* does this need to be props.__scopePopper? */}\n {props.children}\n </PopoverProviderInternal>\n </PopperProvider>\n )\n }\n\n return (\n <Portal zIndex={props.zIndex ?? 1000}>\n <Theme forceClassName name={themeName}>\n {contents}\n </Theme>\n </Portal>\n )\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef<typeof PopperContent>\n\nexport interface PopoverContentImplProps\n extends PopperContentProps,\n Omit<DismissableProps, 'onDismiss' | 'children'> {\n /**\n * Whether focus should be trapped within the `Popover`\n * (default: false)\n */\n trapFocus?: FocusScopeProps['trapped']\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus']\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus']\n\n disableRemoveScroll?: boolean\n}\n\nconst PopoverContentImpl = React.forwardRef<\n PopoverContentImplElement,\n PopoverContentImplProps\n>((props: ScopedProps<PopoverContentImplProps>, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n children,\n disableRemoveScroll,\n ...contentProps\n } = props\n const popperScope = usePopoverScope(__scopePopover)\n const context = usePopoverInternalContext(CONTENT_NAME, popperScope.__scopePopover)\n const showSheet = useShowPopoverSheet(context)\n\n if (showSheet) {\n // unwrap the PopoverScrollView if used, as it will use the SheetScrollView if that exists\n const childrenWithoutScrollView = React.Children.toArray(children).map((child) => {\n if (React.isValidElement(child)) {\n if (child.type === PopoverScrollView) {\n return child.props.children\n }\n }\n return child\n })\n\n // doesn't show as popover yet on native, must use as sheet\n return (\n <PortalItem hostName={`${context.scopeKey}SheetContents`}>\n {childrenWithoutScrollView}\n </PortalItem>\n )\n }\n\n // const handleDismiss = React.useCallback(() => context.onOpenChange(false), [])\n // <Dismissable\n // disableOutsidePointerEvents={disableOutsidePointerEvents}\n // // onInteractOutside={onInteractOutside}\n // onEscapeKeyDown={onEscapeKeyDown}\n // // onPointerDownOutside={onPointerDownOutside}\n // // onFocusOutside={onFocusOutside}\n // onDismiss={handleDismiss}\n // >\n\n return (\n <AnimatePresence>\n {!!context.open && (\n <PopperContent\n key=\"popper-content\"\n data-state={getState(context.open)}\n id={context.contentId}\n pointerEvents=\"auto\"\n {...popperScope}\n {...contentProps}\n ref={forwardedRef}\n >\n <RemoveScroll\n enabled={disableRemoveScroll ? false : context.open}\n allowPinchZoom\n // causes lots of bugs on touch web on site\n removeScrollBar={false}\n style={{\n display: 'contents',\n }}\n >\n {trapFocus === false ? (\n children\n ) : (\n <FocusScope\n loop\n trapped={trapFocus ?? context.open}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <div style={{ display: 'contents' }}>{children}</div>\n </FocusScope>\n )}\n </RemoveScroll>\n </PopperContent>\n )}\n </AnimatePresence>\n )\n})\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'PopoverClose'\n\ntype PopoverCloseElement = HTMLElement | View\nexport type PopoverCloseProps = YStackProps\n\nexport const PopoverClose = React.forwardRef<PopoverCloseElement, PopoverCloseProps>(\n (props: ScopedProps<PopoverCloseProps>, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props\n const context = usePopoverInternalContext(CLOSE_NAME, __scopePopover)\n return (\n <YStack\n {...closeProps}\n ref={forwardedRef}\n onPress={composeEventHandlers(props.onPress as any, () =>\n context.onOpenChange(false)\n )}\n />\n )\n }\n)\n\nPopoverClose.displayName = CLOSE_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'PopoverArrow'\n\ntype PopoverArrowElement = HTMLElement | View\nexport type PopoverArrowProps = PopperArrowProps\n\nexport const PopoverArrow = React.forwardRef<PopoverArrowElement, PopoverArrowProps>(\n (props: ScopedProps<PopoverArrowProps>, forwardedRef) => {\n // we dont show on native and i'm getting an err\n if (!isWeb) {\n return null\n }\n\n const { __scopePopover, ...arrowProps } = props\n const popperScope = usePopoverScope(__scopePopover)\n return <PopperArrow {...popperScope} {...arrowProps} ref={forwardedRef} />\n }\n)\n\nPopoverArrow.displayName = ARROW_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverScrollView\n * -----------------------------------------------------------------------------------------------*/\n\nconst PopoverScrollView = React.forwardRef<ScrollView, ScrollViewProps>((props, ref) => {\n return <ScrollView ref={ref} {...props} />\n})\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nexport const Popover = withStaticProperties(\n ((props: ScopedProps<PopoverProps>) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n ...restProps\n } = props\n\n const internalId = useId()\n const id = __scopePopover ? Object.keys(__scopePopover)[0] : internalId\n\n const { when, AdaptProvider } = useAdaptParent({\n Contents: React.useCallback(() => {\n return <PortalHost name={`${id}SheetContents`} />\n }, []),\n })\n\n const sheetBreakpoint = when\n const popperScope = usePopoverScope(__scopePopover)\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false)\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen || false,\n onChange: onOpenChange,\n transition: true,\n })\n\n const breakpointActive = useSheetBreakpointActive(sheetBreakpoint)\n\n const useFloatingContext = React.useCallback(\n (props: UseFloatingProps) => {\n const floating = useFloating({\n ...props,\n open,\n onOpenChange: setOpen,\n })\n const { getReferenceProps, getFloatingProps } = useInteractions([\n // useFocus(floating.context, {\n // enabled: !breakpointActive,\n // keyboardOnly: true,\n // }),\n useRole(floating.context, { role: 'dialog' }),\n useDismiss(floating.context, {\n enabled: !breakpointActive,\n }),\n ])\n return {\n ...floating,\n getReferenceProps,\n getFloatingProps,\n }\n },\n [breakpointActive, open, setOpen]\n )\n\n const popoverContext = {\n scope: __scopePopover,\n scopeKey: id,\n popperScope: popperScope.__scopePopper,\n sheetBreakpoint,\n contentId: useId(),\n triggerRef,\n open,\n onOpenChange: setOpen,\n onOpenToggle: useEvent(() => {\n if (open && breakpointActive) {\n return\n }\n setOpen(!open)\n }),\n hasCustomAnchor,\n onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),\n onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), []),\n }\n\n // debug if changing too often\n // if (process.env.NODE_ENV === 'development') {\n // Object.keys(popoverContext).forEach((key) => {\n // React.useEffect(() => console.log(`changed`, key), [popoverContext[key]])\n // })\n // }\n\n return (\n <AdaptProvider>\n <FloatingOverrideContext.Provider value={useFloatingContext as any}>\n <Popper {...popperScope} stayInFrame {...restProps}>\n <PopoverProviderInternal {...popoverContext}>\n <PopoverSheetController\n onOpenChange={setOpen}\n __scopePopover={__scopePopover}\n >\n {children}\n </PopoverSheetController>\n </PopoverProviderInternal>\n </Popper>\n </FloatingOverrideContext.Provider>\n </AdaptProvider>\n )\n }) as React.FC<PopoverProps>,\n {\n Anchor: PopoverAnchor,\n Arrow: PopoverArrow,\n Trigger: PopoverTrigger,\n Content: PopoverContent,\n Close: PopoverClose,\n Adapt,\n ScrollView: PopoverScrollView,\n Sheet: ControlledSheet,\n }\n)\n\nPopover.displayName = POPOVER_NAME\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed'\n}\n\nconst PopoverSheetController = (\n props: ScopedProps<{\n children: React.ReactNode\n onOpenChange: React.Dispatch<React.SetStateAction<boolean>>\n }>\n) => {\n const context = usePopoverInternalContext(\n 'PopoverSheetController',\n props.__scopePopover\n )\n const showSheet = useShowPopoverSheet(context)\n const breakpointActive = useSheetBreakpointActive(context.sheetBreakpoint)\n const getShowSheet = useGet(showSheet)\n return (\n <SheetController\n onOpenChange={(val) => {\n if (getShowSheet()) {\n props.onOpenChange(val)\n }\n }}\n open={context.open}\n hidden={breakpointActive === false}\n >\n {props.children}\n </SheetController>\n )\n}\n\nconst useSheetBreakpointActive = (breakpoint?: MediaQueryKey | null | boolean) => {\n const media = useMedia()\n if (!breakpoint) return false\n if (breakpoint === true) return true\n return media[breakpoint]\n}\n\nconst useShowPopoverSheet = (context: PopoverContextValue) => {\n // for now always show as sheet on native\n if (!isWeb) return true\n const breakpointActive = useSheetBreakpointActive(context.sheetBreakpoint)\n return context.open === false ? false : breakpointActive\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// adapted from radix-ui popover\n\nimport '@tamagui/polyfill-dev'\n\nimport type { UseFloatingProps } from '@floating-ui/react-dom-interactions'\nimport {\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react-dom-interactions'\nimport { Adapt, useAdaptParent } from '@tamagui/adapt'\nimport { AnimatePresence } from '@tamagui/animate-presence'\nimport { hideOthers } from '@tamagui/aria-hidden'\nimport { useComposedRefs } from '@tamagui/compose-refs'\nimport {\n GestureReponderEvent,\n MediaQueryKey,\n SizeTokens,\n Stack,\n TamaguiElement,\n Theme,\n composeEventHandlers,\n isWeb,\n useEvent,\n useGet,\n useId,\n useMedia,\n useThemeName,\n withStaticProperties,\n} from '@tamagui/core'\nimport type { Scope } from '@tamagui/create-context'\nimport { createContextScope } from '@tamagui/create-context'\nimport { DismissableProps } from '@tamagui/dismissable'\nimport { FloatingOverrideContext } from '@tamagui/floating'\nimport { FocusScope, FocusScopeProps } from '@tamagui/focus-scope'\nimport {\n Popper,\n PopperAnchor,\n PopperArrow,\n PopperArrowProps,\n PopperContent,\n PopperContentProps,\n PopperProps,\n PopperProvider,\n createPopperScope,\n usePopperContext,\n} from '@tamagui/popper'\nimport { Portal, PortalHost, PortalItem } from '@tamagui/portal'\nimport { RemoveScroll, RemoveScrollProps } from '@tamagui/remove-scroll'\nimport { ControlledSheet, SheetController } from '@tamagui/sheet'\nimport { SizableStack, XStack, YStack, YStackProps, ZStack } from '@tamagui/stacks'\nimport { useControllableState } from '@tamagui/use-controllable-state'\nimport * as React from 'react'\nimport { useEffect } from 'react'\nimport {\n GestureResponderEvent,\n Platform,\n ScrollView,\n ScrollViewProps,\n View,\n} from 'react-native'\n\nconst POPOVER_NAME = 'Popover'\n\ntype ScopedProps<P> = P & { __scopePopover?: Scope }\n\nexport type PopoverProps = PopperProps & {\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n}\n\ntype PopoverContextValue = {\n triggerRef: React.RefObject<any>\n contentId?: string\n open: boolean\n onOpenChange(open: boolean): void\n onOpenToggle(): void\n hasCustomAnchor: boolean\n onCustomAnchorAdd(): void\n onCustomAnchorRemove(): void\n size?: SizeTokens\n sheetBreakpoint: any\n scopeKey: string\n popperScope: any\n breakpointActive?: boolean\n}\n\nconst [createPopoverContext, createPopoverScopeInternal] = createContextScope(\n POPOVER_NAME,\n [createPopperScope]\n)\nexport const usePopoverScope = createPopperScope()\nexport const createPopoverScope = createPopoverScopeInternal\n\nconst [PopoverProviderInternal, usePopoverInternalContext] =\n createPopoverContext<PopoverContextValue>(POPOVER_NAME)\n\nexport const __PopoverProviderInternal = PopoverProviderInternal\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'PopoverAnchor'\n\ntype PopoverAnchorElement = HTMLElement | View\nexport type PopoverAnchorProps = YStackProps\n\nexport const PopoverAnchor = React.forwardRef<PopoverAnchorElement, PopoverAnchorProps>(\n (props: ScopedProps<PopoverAnchorProps>, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props\n const context = usePopoverInternalContext(ANCHOR_NAME, __scopePopover)\n const popperScope = usePopoverScope(__scopePopover)\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context\n\n React.useEffect(() => {\n onCustomAnchorAdd()\n return () => onCustomAnchorRemove()\n }, [onCustomAnchorAdd, onCustomAnchorRemove])\n\n return <PopperAnchor {...popperScope} {...anchorProps} ref={forwardedRef} />\n }\n)\n\nPopoverAnchor.displayName = ANCHOR_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'PopoverTrigger'\n\ntype PopoverTriggerElement = HTMLElement | View\nexport type PopoverTriggerProps = YStackProps\n\nexport const PopoverTrigger = React.forwardRef<\n PopoverTriggerElement,\n PopoverTriggerProps\n>((props: ScopedProps<PopoverTriggerProps>, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props\n const context = usePopoverInternalContext(TRIGGER_NAME, __scopePopover)\n const popperScope = usePopoverScope(__scopePopover)\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef)\n\n const trigger = (\n <YStack\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n // TODO not matching\n // aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onPress={composeEventHandlers(props.onPress as any, context.onOpenToggle)}\n />\n )\n\n return context.hasCustomAnchor ? (\n trigger\n ) : (\n <PopperAnchor asChild {...popperScope}>\n {trigger}\n </PopperAnchor>\n )\n})\n\nPopoverTrigger.displayName = TRIGGER_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'PopoverContent'\n\nexport type PopoverContentProps = PopoverContentTypeProps\n\ntype PopoverContentTypeElement = PopoverContentImplElement\n\nexport interface PopoverContentTypeProps\n extends Omit<PopoverContentImplProps, 'disableOutsidePointerEvents'> {\n /**\n * @see https://github.com/theKashey/react-remove-scroll#usage\n */\n allowPinchZoom?: RemoveScrollProps['allowPinchZoom']\n}\n\nexport const PopoverContent = React.forwardRef<\n PopoverContentTypeElement,\n PopoverContentTypeProps\n>((props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const {\n allowPinchZoom,\n trapFocus,\n disableRemoveScroll = true,\n zIndex,\n ...contentModalProps\n } = props\n const context = usePopoverInternalContext(CONTENT_NAME, props.__scopePopover)\n const contentRef = React.useRef<any>(null)\n const composedRefs = useComposedRefs(forwardedRef, contentRef)\n const isRightClickOutsideRef = React.useRef(false)\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n if (!context.open) return\n const content = contentRef.current\n if (content) return hideOthers(content)\n }, [context.open])\n\n return (\n <PopoverContentPortal zIndex={zIndex}>\n <PopoverContentImpl\n {...contentModalProps}\n disableRemoveScroll={disableRemoveScroll}\n ref={composedRefs}\n // we make sure we're not trapping once it's been closed\n // (closed !== unmounted when animating out)\n trapFocus={trapFocus ?? context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault()\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus()\n })}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent\n const ctrlLeftClick =\n originalEvent.button === 0 && originalEvent.ctrlKey === true\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick\n isRightClickOutsideRef.current = isRightClick\n },\n { checkDefaultPrevented: false }\n )}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkDefaultPrevented: false }\n )}\n />\n </PopoverContentPortal>\n )\n})\n\nfunction PopoverContentPortal(props: ScopedProps<PopoverContentTypeProps>) {\n const themeName = useThemeName()\n const context = usePopoverInternalContext(CONTENT_NAME, props.__scopePopover)\n\n // on android we have to re-pass context\n let contents = props.children\n\n if (Platform.OS === 'android') {\n // ok conditional hooks by platform\n const popperContext = usePopperContext(CONTENT_NAME, context.popperScope)\n\n contents = (\n <PopperProvider {...popperContext} scope={context.popperScope}>\n <PopoverProviderInternal scope={props.__scopePopover} {...context}>\n {/* does this need to be props.__scopePopper? */}\n {props.children}\n </PopoverProviderInternal>\n </PopperProvider>\n )\n }\n\n const zIndex = props.zIndex ?? 1000\n\n // Portal the contents and add a transparent bg overlay to handle dismiss on native\n return (\n <Portal zIndex={zIndex}>\n <Theme forceClassName name={themeName}>\n {!!context.open && !context.breakpointActive && (\n <YStack\n fullscreen\n onPress={composeEventHandlers(props.onPress as any, context.onOpenToggle)}\n />\n )}\n <Stack zIndex={(zIndex as number) + 1}>{contents}</Stack>\n </Theme>\n </Portal>\n )\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef<typeof PopperContent>\n\nexport interface PopoverContentImplProps\n extends PopperContentProps,\n Omit<DismissableProps, 'onDismiss' | 'children'> {\n /**\n * Whether focus should be trapped within the `Popover`\n * (default: false)\n */\n trapFocus?: FocusScopeProps['trapped']\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus']\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus']\n\n disableRemoveScroll?: boolean\n}\n\nconst PopoverContentImpl = React.forwardRef<\n PopoverContentImplElement,\n PopoverContentImplProps\n>((props: ScopedProps<PopoverContentImplProps>, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n children,\n disableRemoveScroll,\n ...contentProps\n } = props\n const popperScope = usePopoverScope(__scopePopover)\n const context = usePopoverInternalContext(CONTENT_NAME, popperScope.__scopePopover)\n\n if (context.breakpointActive) {\n // unwrap the PopoverScrollView if used, as it will use the SheetScrollView if that exists\n const childrenWithoutScrollView = React.Children.toArray(children).map((child) => {\n if (React.isValidElement(child)) {\n if (child.type === PopoverScrollView) {\n return child.props.children\n }\n }\n return child\n })\n\n // doesn't show as popover yet on native, must use as sheet\n return (\n <PortalItem hostName={`${context.scopeKey}SheetContents`}>\n {childrenWithoutScrollView}\n </PortalItem>\n )\n }\n\n // const handleDismiss = React.useCallback((event: GestureResponderEvent) =>{\n // context.onOpenChange(false);\n // }, [])\n // <Dismissable\n // disableOutsidePointerEvents={disableOutsidePointerEvents}\n // // onInteractOutside={onInteractOutside}\n // onEscapeKeyDown={onEscapeKeyDown}\n // // onPointerDownOutside={onPointerDownOutside}\n // // onFocusOutside={onFocusOutside}\n // onDismiss={handleDismiss}\n // >\n\n return (\n <AnimatePresence>\n {!!context.open && (\n <PopperContent\n key={context.contentId}\n data-state={getState(context.open)}\n id={context.contentId}\n pointerEvents=\"auto\"\n ref={forwardedRef}\n {...popperScope}\n {...contentProps}\n >\n <RemoveScroll\n enabled={disableRemoveScroll ? false : context.open}\n allowPinchZoom\n // causes lots of bugs on touch web on site\n removeScrollBar={false}\n style={{\n display: 'contents',\n }}\n >\n {trapFocus === false ? (\n children\n ) : (\n <FocusScope\n loop\n trapped={trapFocus ?? context.open}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n {isWeb ? <div style={{ display: 'contents' }}>{children}</div> : children}\n </FocusScope>\n )}\n </RemoveScroll>\n </PopperContent>\n )}\n </AnimatePresence>\n )\n})\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'PopoverClose'\n\ntype PopoverCloseElement = HTMLElement | View\nexport type PopoverCloseProps = YStackProps\n\nexport const PopoverClose = React.forwardRef<PopoverCloseElement, PopoverCloseProps>(\n (props: ScopedProps<PopoverCloseProps>, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props\n const context = usePopoverInternalContext(CLOSE_NAME, __scopePopover)\n return (\n <YStack\n {...closeProps}\n ref={forwardedRef}\n onPress={composeEventHandlers(props.onPress as any, () =>\n context.onOpenChange(false)\n )}\n />\n )\n }\n)\n\nPopoverClose.displayName = CLOSE_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'PopoverArrow'\n\ntype PopoverArrowElement = HTMLElement | View\nexport type PopoverArrowProps = PopperArrowProps\n\nexport const PopoverArrow = React.forwardRef<PopoverArrowElement, PopoverArrowProps>(\n (props: ScopedProps<PopoverArrowProps>, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props\n const popperScope = usePopoverScope(__scopePopover)\n return <PopperArrow {...popperScope} {...arrowProps} ref={forwardedRef} />\n }\n)\n\nPopoverArrow.displayName = ARROW_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverScrollView\n * -----------------------------------------------------------------------------------------------*/\n\nconst PopoverScrollView = React.forwardRef<ScrollView, ScrollViewProps>((props, ref) => {\n return <ScrollView ref={ref} {...props} />\n})\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nexport const Popover = withStaticProperties(\n ((props: ScopedProps<PopoverProps>) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n ...restProps\n } = props\n\n const internalId = useId()\n const id = __scopePopover ? Object.keys(__scopePopover)[0] : internalId\n\n const { when, AdaptProvider } = useAdaptParent({\n Contents: React.useCallback(() => {\n return <PortalHost name={`${id}SheetContents`} />\n }, []),\n })\n\n const sheetBreakpoint = when\n const popperScope = usePopoverScope(__scopePopover)\n const triggerRef = React.useRef<TamaguiElement>(null)\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false)\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen || false,\n onChange: onOpenChange,\n transition: true,\n })\n\n const breakpointActive = useSheetBreakpointActive(sheetBreakpoint)\n\n // Custom floating context to override the Popper on web\n const useFloatingContext = React.useCallback(\n (props: UseFloatingProps) => {\n const floating = useFloating({\n ...props,\n open,\n onOpenChange: setOpen,\n })\n const { getReferenceProps, getFloatingProps } = useInteractions([\n // useFocus(floating.context, {\n // enabled: !breakpointActive,\n // keyboardOnly: true,\n // }),\n useRole(floating.context, { role: 'dialog' }),\n useDismiss(floating.context, {\n enabled: !breakpointActive,\n }),\n ])\n return {\n ...floating,\n getReferenceProps,\n getFloatingProps,\n }\n },\n [breakpointActive, open, setOpen]\n )\n\n const popoverContext = {\n scope: __scopePopover,\n scopeKey: id,\n popperScope: popperScope.__scopePopper,\n sheetBreakpoint,\n contentId: useId(),\n triggerRef,\n open,\n breakpointActive,\n onOpenChange: setOpen,\n onOpenToggle: useEvent(() => {\n if (open && breakpointActive) {\n return\n }\n setOpen(!open)\n }),\n hasCustomAnchor,\n onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),\n onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), []),\n }\n\n // debug if changing too often\n // if (process.env.NODE_ENV === 'development') {\n // Object.keys(popoverContext).forEach((key) => {\n // React.useEffect(() => console.log(`changed`, key), [popoverContext[key]])\n // })\n // }\n\n const contents = (\n <Popper {...popperScope} stayInFrame {...restProps}>\n <PopoverProviderInternal {...popoverContext}>\n <PopoverSheetController onOpenChange={setOpen} __scopePopover={__scopePopover}>\n {children}\n </PopoverSheetController>\n </PopoverProviderInternal>\n </Popper>\n )\n\n return (\n <AdaptProvider>\n {isWeb ? (\n <FloatingOverrideContext.Provider value={useFloatingContext as any}>\n {contents}\n </FloatingOverrideContext.Provider>\n ) : (\n contents\n )}\n </AdaptProvider>\n )\n }) as React.FC<PopoverProps>,\n {\n Anchor: PopoverAnchor,\n Arrow: PopoverArrow,\n Trigger: PopoverTrigger,\n Content: PopoverContent,\n Close: PopoverClose,\n Adapt,\n ScrollView: PopoverScrollView,\n Sheet: ControlledSheet,\n }\n)\n\nPopover.displayName = POPOVER_NAME\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed'\n}\n\nconst PopoverSheetController = (\n props: ScopedProps<{\n children: React.ReactNode\n onOpenChange: React.Dispatch<React.SetStateAction<boolean>>\n }>\n) => {\n const context = usePopoverInternalContext(\n 'PopoverSheetController',\n props.__scopePopover\n )\n const showSheet = useShowPopoverSheet(context)\n const breakpointActive = context.breakpointActive\n const getShowSheet = useGet(showSheet)\n return (\n <SheetController\n onOpenChange={(val) => {\n if (getShowSheet()) {\n props.onOpenChange(val)\n }\n }}\n open={context.open}\n hidden={breakpointActive === false}\n >\n {props.children}\n </SheetController>\n )\n}\n\nconst useSheetBreakpointActive = (breakpoint?: MediaQueryKey | null | boolean) => {\n const media = useMedia()\n if (typeof breakpoint === 'boolean' || !breakpoint) {\n return !!breakpoint\n }\n return media[breakpoint]\n}\n\nconst useShowPopoverSheet = (context: PopoverContextValue) => {\n const breakpointActive = useSheetBreakpointActive(context.sheetBreakpoint)\n return context.open === false ? false : breakpointActive\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["props"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/popover",
3
- "version": "1.1.7",
3
+ "version": "1.1.9",
4
4
  "sideEffects": [
5
5
  "*.css"
6
6
  ],
@@ -24,21 +24,21 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@floating-ui/react-dom-interactions": "0.8.1",
27
- "@tamagui/adapt": "^1.1.7",
28
- "@tamagui/animate-presence": "^1.1.7",
29
- "@tamagui/aria-hidden": "^1.1.7",
30
- "@tamagui/compose-refs": "^1.1.7",
31
- "@tamagui/core": "^1.1.7",
32
- "@tamagui/create-context": "^1.1.7",
33
- "@tamagui/dismissable": "^1.1.7",
34
- "@tamagui/focus-scope": "^1.1.7",
35
- "@tamagui/polyfill-dev": "^1.1.7",
36
- "@tamagui/popper": "^1.1.7",
37
- "@tamagui/portal": "^1.1.7",
38
- "@tamagui/scroll-view": "^1.1.7",
39
- "@tamagui/sheet": "^1.1.7",
40
- "@tamagui/stacks": "^1.1.7",
41
- "@tamagui/use-controllable-state": "^1.1.7"
27
+ "@tamagui/adapt": "^1.1.9",
28
+ "@tamagui/animate-presence": "^1.1.9",
29
+ "@tamagui/aria-hidden": "^1.1.9",
30
+ "@tamagui/compose-refs": "^1.1.9",
31
+ "@tamagui/core": "^1.1.9",
32
+ "@tamagui/create-context": "^1.1.9",
33
+ "@tamagui/dismissable": "^1.1.9",
34
+ "@tamagui/focus-scope": "^1.1.9",
35
+ "@tamagui/polyfill-dev": "^1.1.9",
36
+ "@tamagui/popper": "^1.1.9",
37
+ "@tamagui/portal": "^1.1.9",
38
+ "@tamagui/scroll-view": "^1.1.9",
39
+ "@tamagui/sheet": "^1.1.9",
40
+ "@tamagui/stacks": "^1.1.9",
41
+ "@tamagui/use-controllable-state": "^1.1.9"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "react": "*",
@@ -46,7 +46,7 @@
46
46
  "react-native": "*"
47
47
  },
48
48
  "devDependencies": {
49
- "@tamagui/build": "^1.1.7",
49
+ "@tamagui/build": "^1.1.9",
50
50
  "@types/react-dom": "^18.0.3",
51
51
  "react": "^18.2.0",
52
52
  "react-dom": "^18.2.0",