@tamagui/dialog 1.0.1-rc.6 → 1.0.1-rc.7

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.
@@ -24,7 +24,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
25
  var Dialog_exports = {};
26
26
  __export(Dialog_exports, {
27
- Dialog: () => Dialog2,
27
+ Dialog: () => Dialog,
28
28
  DialogClose: () => DialogClose,
29
29
  DialogContent: () => DialogContent,
30
30
  DialogDescription: () => DialogDescription,
@@ -96,38 +96,53 @@ const DialogPortalFrame = (0, import_core.styled)(import_stacks.YStack, {
96
96
  position: "fixed"
97
97
  }
98
98
  });
99
+ const DialogPortalItem = ({
100
+ __scopeDialog,
101
+ hostName,
102
+ children
103
+ }) => {
104
+ const themeName = (0, import_core.useThemeName)();
105
+ const context = useDialogContext(PORTAL_NAME, __scopeDialog);
106
+ const name = `${context.scopeKey}SheetContents`;
107
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_portal.PortalItem, {
108
+ hostName,
109
+ name,
110
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogProvider, {
111
+ scope: __scopeDialog,
112
+ ...context,
113
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Theme, {
114
+ name: themeName,
115
+ children
116
+ })
117
+ })
118
+ });
119
+ };
99
120
  const DialogPortal = DialogPortalFrame.extractable(
100
121
  (props) => {
101
122
  const { __scopeDialog, forceMount, children, ...frameProps } = props;
102
- const themeName = (0, import_core.useThemeName)();
103
123
  const context = useDialogContext(PORTAL_NAME, __scopeDialog);
104
124
  const isShowing = forceMount || context.open;
105
125
  const contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_animate_presence.AnimatePresence, {
106
126
  children: isShowing ? children : null
107
127
  });
108
128
  const isSheet = useShowDialogSheet(context);
109
- if (!context.modal || isSheet) {
110
- return contents;
129
+ if (isSheet) {
130
+ return children;
111
131
  }
112
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_portal.PortalItem, {
113
- name: `${context.scopeKey}SheetContents`,
114
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogProvider, {
115
- scope: __scopeDialog,
116
- ...context,
117
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Theme, {
118
- name: themeName,
119
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalProvider, {
120
- scope: __scopeDialog,
121
- forceMount,
122
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogPortalFrame, {
123
- pointerEvents: isShowing ? "auto" : "none",
124
- ...frameProps,
125
- children: contents
126
- })
132
+ if (context.modal) {
133
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogPortalItem, {
134
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalProvider, {
135
+ scope: __scopeDialog,
136
+ forceMount,
137
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogPortalFrame, {
138
+ pointerEvents: isShowing ? "auto" : "none",
139
+ ...frameProps,
140
+ children: contents
127
141
  })
128
142
  })
129
- })
130
- });
143
+ });
144
+ }
145
+ return contents;
131
146
  }
132
147
  );
133
148
  DialogPortal.displayName = PORTAL_NAME;
@@ -223,18 +238,16 @@ DialogContent.displayName = CONTENT_NAME;
223
238
  const DialogContentModal = React.forwardRef(
224
239
  ({ children, context, ...props }, forwardedRef) => {
225
240
  const contentRef = React.useRef(null);
226
- const composedRefs = (0, import_compose_refs.useComposedRefs)(
227
- forwardedRef,
228
- context.contentRef,
229
- contentRef
230
- );
231
- React.useEffect(() => {
232
- if (!context.open)
233
- return;
234
- const content = contentRef.current;
235
- if (content)
236
- return (0, import_aria_hidden.hideOthers)(content);
237
- }, [context.open]);
241
+ const composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, context.contentRef, contentRef);
242
+ if (import_core.isWeb) {
243
+ React.useEffect(() => {
244
+ if (!context.open)
245
+ return;
246
+ const content = contentRef.current;
247
+ if (content)
248
+ return (0, import_aria_hidden.hideOthers)(content);
249
+ }, [context.open]);
250
+ }
238
251
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogContentImpl, {
239
252
  ...props,
240
253
  context,
@@ -263,39 +276,41 @@ const DialogContentModal = React.forwardRef(
263
276
  });
264
277
  }
265
278
  );
266
- const DialogContentNonModal = React.forwardRef((props, forwardedRef) => {
267
- const hasInteractedOutsideRef = React.useRef(false);
268
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogContentImpl, {
269
- ...props,
270
- ref: forwardedRef,
271
- trapFocus: false,
272
- disableOutsidePointerEvents: false,
273
- onCloseAutoFocus: (event) => {
274
- var _a, _b;
275
- (_a = props.onCloseAutoFocus) == null ? void 0 : _a.call(props, event);
276
- if (!event.defaultPrevented) {
277
- if (!hasInteractedOutsideRef.current) {
278
- (_b = props.context.triggerRef.current) == null ? void 0 : _b.focus();
279
+ const DialogContentNonModal = React.forwardRef(
280
+ (props, forwardedRef) => {
281
+ const hasInteractedOutsideRef = React.useRef(false);
282
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogContentImpl, {
283
+ ...props,
284
+ ref: forwardedRef,
285
+ trapFocus: false,
286
+ disableOutsidePointerEvents: false,
287
+ onCloseAutoFocus: (event) => {
288
+ var _a, _b;
289
+ (_a = props.onCloseAutoFocus) == null ? void 0 : _a.call(props, event);
290
+ if (!event.defaultPrevented) {
291
+ if (!hasInteractedOutsideRef.current) {
292
+ (_b = props.context.triggerRef.current) == null ? void 0 : _b.focus();
293
+ }
294
+ event.preventDefault();
279
295
  }
280
- event.preventDefault();
296
+ hasInteractedOutsideRef.current = false;
297
+ },
298
+ onInteractOutside: (event) => {
299
+ var _a;
300
+ (_a = props.onInteractOutside) == null ? void 0 : _a.call(props, event);
301
+ if (!event.defaultPrevented)
302
+ hasInteractedOutsideRef.current = true;
303
+ const target = event.target;
304
+ const trigger = props.context.triggerRef.current;
305
+ if (!(trigger instanceof HTMLElement))
306
+ return;
307
+ const targetIsTrigger = trigger.contains(target);
308
+ if (targetIsTrigger)
309
+ event.preventDefault();
281
310
  }
282
- hasInteractedOutsideRef.current = false;
283
- },
284
- onInteractOutside: (event) => {
285
- var _a;
286
- (_a = props.onInteractOutside) == null ? void 0 : _a.call(props, event);
287
- if (!event.defaultPrevented)
288
- hasInteractedOutsideRef.current = true;
289
- const target = event.target;
290
- const trigger = props.context.triggerRef.current;
291
- if (!(trigger instanceof HTMLElement))
292
- return;
293
- const targetIsTrigger = trigger.contains(target);
294
- if (targetIsTrigger)
295
- event.preventDefault();
296
- }
297
- });
298
- });
311
+ });
312
+ }
313
+ );
299
314
  const DialogContentImpl = React.forwardRef(
300
315
  (props, forwardedRef) => {
301
316
  const {
@@ -322,8 +337,7 @@ const DialogContentImpl = React.forwardRef(
322
337
  ...contentProps
323
338
  });
324
339
  if (showSheet) {
325
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_portal.PortalItem, {
326
- hostName: `${context.scopeKey}SheetContents`,
340
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogPortalItem, {
327
341
  children: contentProps.children
328
342
  });
329
343
  }
@@ -367,14 +381,12 @@ const DialogContentImpl = React.forwardRef(
367
381
  );
368
382
  const SHEET_CONTENTS_NAME = "DialogSheetContents";
369
383
  const DialogSheetContents = ({
370
- __scopeDialog,
371
384
  name,
372
385
  ...props
373
386
  }) => {
374
- const context = useDialogContext(SHEET_CONTENTS_NAME, __scopeDialog);
375
387
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_portal.PortalHost, {
376
388
  forwardProps: props,
377
- name: `${context.scopeKey}SheetContents`
389
+ name
378
390
  });
379
391
  };
380
392
  DialogSheetContents.displayName = SHEET_CONTENTS_NAME;
@@ -435,14 +447,11 @@ function getState(open) {
435
447
  return open ? "open" : "closed";
436
448
  }
437
449
  const TITLE_WARNING_NAME = "DialogTitleWarning";
438
- const [DialogWarningProvider, useWarningContext] = (0, import_create_context.createContext)(
439
- TITLE_WARNING_NAME,
440
- {
441
- contentName: CONTENT_NAME,
442
- titleName: TITLE_NAME,
443
- docsSlug: "dialog"
444
- }
445
- );
450
+ const [DialogWarningProvider, useWarningContext] = (0, import_create_context.createContext)(TITLE_WARNING_NAME, {
451
+ contentName: CONTENT_NAME,
452
+ titleName: TITLE_NAME,
453
+ docsSlug: "dialog"
454
+ });
446
455
  const TitleWarning = ({ titleId }) => {
447
456
  if (process.env.NODE_ENV === "development") {
448
457
  const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);
@@ -490,8 +499,8 @@ const DescriptionWarning = ({
490
499
  }
491
500
  return null;
492
501
  };
493
- const DialogInner = React.forwardRef(
494
- function Dialog(props, ref) {
502
+ const Dialog = (0, import_core.withStaticProperties)(
503
+ React.forwardRef(function Dialog2(props, ref) {
495
504
  const {
496
505
  __scopeDialog,
497
506
  children,
@@ -501,10 +510,8 @@ const DialogInner = React.forwardRef(
501
510
  modal = true,
502
511
  allowPinchZoom = false
503
512
  } = props;
504
- const { when, AdaptProvider } = (0, import_adapt.useAdaptParent)({
505
- Contents: DialogSheetContents
506
- });
507
- const sheetBreakpoint = when;
513
+ const scopeId = (0, import_core.useId)();
514
+ const scopeKey = __scopeDialog ? Object.keys(__scopeDialog)[0] : scopeId;
508
515
  const triggerRef = React.useRef(null);
509
516
  const contentRef = React.useRef(null);
510
517
  const [open, setOpen] = (0, import_use_controllable_state.useControllableState)({
@@ -512,6 +519,39 @@ const DialogInner = React.forwardRef(
512
519
  defaultProp: defaultOpen,
513
520
  onChange: onOpenChange
514
521
  });
522
+ const onOpenToggle = React.useCallback(
523
+ () => setOpen((prevOpen) => !prevOpen),
524
+ [setOpen]
525
+ );
526
+ const contentId = (0, import_core.useId)();
527
+ const titleId = (0, import_core.useId)();
528
+ const descriptionId = (0, import_core.useId)();
529
+ const context = {
530
+ scope: __scopeDialog,
531
+ scopeKey,
532
+ triggerRef,
533
+ contentRef,
534
+ contentId,
535
+ titleId,
536
+ descriptionId,
537
+ open,
538
+ onOpenChange: setOpen,
539
+ onOpenToggle,
540
+ modal,
541
+ allowPinchZoom
542
+ };
543
+ const sheetContentsName = `${scopeKey}SheetContents`;
544
+ const { when, AdaptProvider } = (0, import_adapt.useAdaptParent)({
545
+ Contents: React.useCallback(
546
+ (props2) => {
547
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogSheetContents, {
548
+ ...props2,
549
+ name: sheetContentsName
550
+ });
551
+ },
552
+ [sheetContentsName]
553
+ )
554
+ });
515
555
  React.useImperativeHandle(
516
556
  ref,
517
557
  () => ({
@@ -519,26 +559,10 @@ const DialogInner = React.forwardRef(
519
559
  }),
520
560
  [setOpen]
521
561
  );
522
- const scopeId = (0, import_core.useId)();
523
- const scopeKey = __scopeDialog ? Object.keys(__scopeDialog)[0] : scopeId;
524
562
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AdaptProvider, {
525
563
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogProvider, {
526
- scope: __scopeDialog,
527
- scopeKey,
528
- triggerRef,
529
- contentRef,
530
- contentId: (0, import_core.useId)() || "",
531
- titleId: (0, import_core.useId)() || "",
532
- descriptionId: (0, import_core.useId)() || "",
533
- open,
534
- onOpenChange: setOpen,
535
- onOpenToggle: React.useCallback(
536
- () => setOpen((prevOpen) => !prevOpen),
537
- [setOpen]
538
- ),
539
- modal,
540
- allowPinchZoom,
541
- sheetBreakpoint,
564
+ ...context,
565
+ sheetBreakpoint: when,
542
566
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogSheetController, {
543
567
  onOpenChange: setOpen,
544
568
  __scopeDialog,
@@ -546,19 +570,19 @@ const DialogInner = React.forwardRef(
546
570
  })
547
571
  })
548
572
  });
573
+ }),
574
+ {
575
+ Trigger: DialogTrigger,
576
+ Portal: DialogPortal,
577
+ Overlay: DialogOverlay,
578
+ Content: DialogContent,
579
+ Title: DialogTitle,
580
+ Description: DialogDescription,
581
+ Close: DialogClose,
582
+ Sheet: import_sheet.ControlledSheet,
583
+ Adapt: import_adapt.Adapt
549
584
  }
550
585
  );
551
- const Dialog2 = (0, import_core.withStaticProperties)(DialogInner, {
552
- Trigger: DialogTrigger,
553
- Portal: DialogPortal,
554
- Overlay: DialogOverlay,
555
- Content: DialogContent,
556
- Title: DialogTitle,
557
- Description: DialogDescription,
558
- Close: DialogClose,
559
- Sheet: import_sheet.ControlledSheet,
560
- Adapt: import_adapt.Adapt
561
- });
562
586
  const DialogSheetController = (props) => {
563
587
  const context = useDialogContext("DialogSheetController", props.__scopeDialog);
564
588
  const showSheet = useShowDialogSheet(context);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Dialog.tsx"],
4
- "sourcesContent": ["import { 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 GetProps,\n TamaguiElement,\n Theme,\n composeEventHandlers,\n isWeb,\n styled,\n useGet,\n useId,\n useMedia,\n useThemeName,\n withStaticProperties,\n} from '@tamagui/core'\nimport { Scope, createContext, createContextScope } from '@tamagui/create-context'\nimport { Dismissable, DismissableProps } from '@tamagui/dismissable'\nimport { FocusScope, FocusScopeProps } from '@tamagui/focus-scope'\nimport { PortalHost, PortalItem, PortalItemProps } from '@tamagui/portal'\nimport { RemoveScroll } from '@tamagui/remove-scroll'\nimport { ControlledSheet, SheetController } from '@tamagui/sheet'\nimport { ThemeableStack, YStack, YStackProps } from '@tamagui/stacks'\nimport { H2, Paragraph } from '@tamagui/text'\nimport { useControllableState } from '@tamagui/use-controllable-state'\nimport * as React from 'react'\n\nconst DIALOG_NAME = 'Dialog'\n\ntype ScopedProps<P> = P & { __scopeDialog?: Scope }\n\nconst [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME)\n\ntype RemoveScrollProps = React.ComponentProps<typeof RemoveScroll>\n\ninterface DialogProps {\n children?: React.ReactNode\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?(open: boolean): void\n modal?: boolean\n\n /**\n * @see https://github.com/theKashey/react-remove-scroll#usage\n */\n allowPinchZoom?: RemoveScrollProps['allowPinchZoom']\n}\n\ntype NonNull<A> = Exclude<A, void | null>\n\ntype DialogContextValue = {\n triggerRef: React.RefObject<TamaguiElement>\n contentRef: React.RefObject<TamaguiElement>\n contentId: string\n titleId: string\n descriptionId: string\n onOpenToggle(): void\n open: NonNull<DialogProps['open']>\n onOpenChange: NonNull<DialogProps['onOpenChange']>\n modal: NonNull<DialogProps['modal']>\n allowPinchZoom: NonNull<DialogProps['allowPinchZoom']>\n sheetBreakpoint: any\n scopeKey: string\n}\n\nconst [DialogProvider, useDialogContext] =\n createDialogContext<DialogContextValue>(DIALOG_NAME)\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DialogTrigger'\n\nconst DialogTriggerFrame = styled(YStack, {\n name: TRIGGER_NAME,\n})\n\ninterface DialogTriggerProps extends YStackProps {}\n\nconst DialogTrigger = React.forwardRef<TamaguiElement, DialogTriggerProps>(\n (props: ScopedProps<DialogTriggerProps>, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog)\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef)\n return (\n <DialogTriggerFrame\n tag=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\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)\n\nDialogTrigger.displayName = TRIGGER_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'DialogPortal'\n\ntype PortalContextValue = { forceMount?: true }\nconst [PortalProvider, usePortalContext] = createDialogContext<PortalContextValue>(\n PORTAL_NAME,\n {\n forceMount: undefined,\n },\n)\n\ntype DialogPortalProps = Omit<PortalItemProps, 'asChild'> &\n YStackProps & {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true\n }\n\nexport const DialogPortalFrame = styled(YStack, {\n alignItems: 'center',\n justifyContent: 'center',\n fullscreen: true,\n zIndex: 100,\n ...(isWeb && {\n maxHeight: '100vh',\n position: 'fixed' as any,\n }),\n})\n\nconst DialogPortal: React.FC<DialogPortalProps> = DialogPortalFrame.extractable(\n (props: ScopedProps<DialogPortalProps>) => {\n const { __scopeDialog, forceMount, children, ...frameProps } = props\n const themeName = useThemeName()\n const context = useDialogContext(PORTAL_NAME, __scopeDialog)\n const isShowing = forceMount || context.open\n const contents = <AnimatePresence>{isShowing ? children : null}</AnimatePresence>\n const isSheet = useShowDialogSheet(context)\n if (!context.modal || isSheet) {\n return contents\n }\n return (\n <PortalItem name={`${context.scopeKey}SheetContents`}>\n {/* until we can use react-native portals natively */}\n {/* have to re-propogate context, sketch */}\n <DialogProvider scope={__scopeDialog} {...context}>\n <Theme name={themeName}>\n <PortalProvider scope={__scopeDialog} forceMount={forceMount}>\n <DialogPortalFrame\n pointerEvents={isShowing ? 'auto' : 'none'}\n {...frameProps}\n >\n {contents}\n </DialogPortalFrame>\n </PortalProvider>\n </Theme>\n </DialogProvider>\n </PortalItem>\n )\n },\n)\n\nDialogPortal.displayName = PORTAL_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'DialogOverlay'\n\nconst DialogOverlayFrame = styled(ThemeableStack, {\n name: OVERLAY_NAME,\n backgrounded: true,\n fullscreen: true,\n})\n\ninterface DialogOverlayProps extends YStackProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true\n}\n\nconst DialogOverlay = React.forwardRef<TamaguiElement, DialogOverlayProps>(\n ({ __scopeDialog, ...props }: ScopedProps<DialogOverlayProps>, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, __scopeDialog)\n const { forceMount = portalContext.forceMount, ...overlayProps } = props\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog)\n const showSheet = useShowDialogSheet(context)\n\n if (!forceMount) {\n if (!context.modal || showSheet) {\n return null\n }\n }\n\n return (\n <DialogOverlayImpl context={context} {...overlayProps} ref={forwardedRef} />\n )\n },\n)\n\nDialogOverlay.displayName = OVERLAY_NAME\n\ntype DialogOverlayImplProps = GetProps<typeof DialogOverlayFrame> & {\n context: DialogContextValue\n}\n\nconst DialogOverlayImpl = React.forwardRef<TamaguiElement, DialogOverlayImplProps>(\n (props, forwardedRef) => {\n const { context, ...overlayProps } = props\n\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n <DialogOverlayFrame\n data-state={getState(context.open)}\n // We re-enable pointer-events prevented by `Dialog.Content` to allow scrolling the overlay.\n pointerEvents={context.open ? 'auto' : 'none'}\n {...overlayProps}\n ref={forwardedRef}\n />\n )\n },\n)\n\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DialogContent'\n\nconst DialogContentFrame = styled(ThemeableStack, {\n name: CONTENT_NAME,\n tag: 'dialog',\n position: 'relative',\n backgrounded: true,\n padded: true,\n radiused: true,\n elevate: true,\n\n variants: {\n size: {\n '...size': (val, extras) => {\n return {}\n },\n },\n } as const,\n\n defaultVariants: {\n size: '$4',\n },\n})\n\ntype DialogContentFrameProps = GetProps<typeof DialogContentFrame>\n\ninterface DialogContentProps\n extends DialogContentFrameProps,\n Omit<DialogContentTypeProps, 'context'> {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true\n}\n\nconst DialogContent = DialogContentFrame.extractable(\n React.forwardRef<TamaguiElement, DialogContentProps>(\n ({ __scopeDialog, ...props }: ScopedProps<DialogContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, __scopeDialog)\n const { forceMount = portalContext.forceMount, ...contentProps } = props\n const context = useDialogContext(CONTENT_NAME, __scopeDialog)\n\n const contents = context.modal ? (\n <DialogContentModal context={context} {...contentProps} ref={forwardedRef} />\n ) : (\n <DialogContentNonModal\n context={context}\n {...contentProps}\n ref={forwardedRef}\n />\n )\n\n if (!isWeb) {\n return contents\n }\n\n return (\n <RemoveScroll\n forwardProps\n enabled={context.open}\n allowPinchZoom={context.allowPinchZoom}\n shards={[context.contentRef]}\n // causes lots of bugs on touch web on site\n removeScrollBar={false}\n >\n <div className=\"_dsp_contents\">{contents}</div>\n </RemoveScroll>\n )\n },\n ),\n)\n\nDialogContent.displayName = CONTENT_NAME\n\n/* -----------------------------------------------------------------------------------------------*/\n\ninterface DialogContentTypeProps\n extends Omit<DialogContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {\n context: DialogContextValue\n}\n\nconst DialogContentModal = React.forwardRef<TamaguiElement, DialogContentTypeProps>(\n (\n { children, context, ...props }: ScopedProps<DialogContentTypeProps>,\n forwardedRef,\n ) => {\n const contentRef = React.useRef<HTMLDivElement>(null)\n const composedRefs = useComposedRefs(\n forwardedRef,\n context.contentRef,\n contentRef,\n )\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 <DialogContentImpl\n {...props}\n context={context}\n ref={composedRefs}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault()\n 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 // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault()\n },\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(props.onFocusOutside, (event) =>\n event.preventDefault(),\n )}\n >\n {children}\n </DialogContentImpl>\n )\n },\n)\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst DialogContentNonModal = React.forwardRef<\n TamaguiElement,\n DialogContentTypeProps\n>((props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const hasInteractedOutsideRef = React.useRef(false)\n\n return (\n <DialogContentImpl\n {...props}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event)\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) {\n props.context.triggerRef.current?.focus()\n }\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault()\n }\n\n hasInteractedOutsideRef.current = false\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event)\n\n if (!event.defaultPrevented) hasInteractedOutsideRef.current = true\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n //\n // We use `onInteractOutside` as some browsers also\n // focus on pointer down, creating the same issue.\n const target = event.target as HTMLElement\n const trigger = props.context.triggerRef.current\n if (!(trigger instanceof HTMLElement)) return\n const targetIsTrigger = trigger.contains(target)\n if (targetIsTrigger) event.preventDefault()\n }}\n />\n )\n})\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentImplProps = DialogContentFrameProps &\n Omit<DismissableProps, 'onDismiss'> & {\n /**\n * When `true`, focus cannot escape the `Content` via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue 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 context: DialogContextValue\n }\n\nconst DialogContentImpl = React.forwardRef<TamaguiElement, DialogContentImplProps>(\n (props: ScopedProps<DialogContentImplProps>, forwardedRef) => {\n const {\n __scopeDialog,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n context,\n ...contentProps\n } = props\n const contentRef = React.useRef<HTMLDivElement>(null)\n const composedRefs = useComposedRefs(forwardedRef, contentRef)\n const showSheet = useShowDialogSheet(context)\n\n const contents = (\n <DialogContentFrame\n id={context.contentId}\n aria-describedby={context.descriptionId}\n aria-labelledby={context.titleId}\n data-state={getState(context.open)}\n {...contentProps}\n />\n )\n\n if (showSheet) {\n return (\n <PortalItem hostName={`${context.scopeKey}SheetContents`}>\n {contentProps.children}\n </PortalItem>\n )\n }\n\n if (!isWeb) {\n return contents\n }\n\n return (\n <>\n <FocusScope\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n forceUnmount={!context.open}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <Dismissable\n disableOutsidePointerEvents={context.open && disableOutsidePointerEvents}\n forceUnmount={!context.open}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={onFocusOutside}\n onInteractOutside={onInteractOutside}\n // @ts-ignore\n ref={composedRefs}\n onDismiss={() => context.onOpenChange(false)}\n >\n {contents}\n </Dismissable>\n </FocusScope>\n {process.env.NODE_ENV === 'development' && (\n <>\n <TitleWarning titleId={context.titleId} />\n <DescriptionWarning\n contentRef={contentRef}\n descriptionId={context.descriptionId}\n />\n </>\n )}\n </>\n )\n },\n)\n\n/* -------------------------------------------------------------------------------------------------\n * DialogSheetContents\n * -----------------------------------------------------------------------------------------------*/\n\nconst SHEET_CONTENTS_NAME = 'DialogSheetContents'\n\nexport const DialogSheetContents = ({\n __scopeDialog,\n name,\n ...props\n}: ScopedProps<{ name: string }>) => {\n const context = useDialogContext(SHEET_CONTENTS_NAME, __scopeDialog)\n return (\n <PortalHost forwardProps={props} name={`${context.scopeKey}SheetContents`} />\n )\n}\n\nDialogSheetContents.displayName = SHEET_CONTENTS_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'DialogTitle'\nconst DialogTitleFrame = styled(H2, {\n name: TITLE_NAME,\n})\n\ntype DialogTitleProps = GetProps<typeof DialogTitleFrame>\n\nconst DialogTitle = React.forwardRef<TamaguiElement, DialogTitleProps>(\n (props: ScopedProps<DialogTitleProps>, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props\n const context = useDialogContext(TITLE_NAME, __scopeDialog)\n return (\n <DialogTitleFrame id={context.titleId} {...titleProps} ref={forwardedRef} />\n )\n },\n)\n\nDialogTitle.displayName = TITLE_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DialogDescriptionFrame = styled(Paragraph, {\n name: 'DialogDescription',\n})\n\ntype DialogDescriptionProps = GetProps<typeof DialogDescriptionFrame>\n\nconst DESCRIPTION_NAME = 'DialogDescription'\n\nconst DialogDescription = React.forwardRef<TamaguiElement, DialogDescriptionProps>(\n (props: ScopedProps<DialogDescriptionProps>, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog)\n return (\n <DialogDescriptionFrame\n id={context.descriptionId}\n {...descriptionProps}\n ref={forwardedRef}\n />\n )\n },\n)\n\nDialogDescription.displayName = DESCRIPTION_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'DialogClose'\n\ntype DialogCloseProps = YStackProps\n\nconst DialogClose = React.forwardRef<TamaguiElement, DialogCloseProps>(\n (props: ScopedProps<DialogCloseProps>, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props\n const context = useDialogContext(CLOSE_NAME, __scopeDialog)\n const isSheet = useShowDialogSheet(context)\n\n if (isSheet) {\n return null\n }\n\n return (\n <YStack\n tag=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onPress={composeEventHandlers(props.onPress as any, () =>\n context.onOpenChange(false),\n )}\n />\n )\n },\n)\n\nDialogClose.displayName = CLOSE_NAME\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed'\n}\n\nconst TITLE_WARNING_NAME = 'DialogTitleWarning'\n\nconst [DialogWarningProvider, useWarningContext] = createContext(\n TITLE_WARNING_NAME,\n {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: 'dialog',\n },\n)\n\ntype TitleWarningProps = { titleId?: string }\n\nconst TitleWarning: React.FC<TitleWarningProps> = ({ titleId }) => {\n if (process.env.NODE_ENV === 'development') {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME)\n\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`\n\n React.useEffect(() => {\n if (!isWeb) return\n if (titleId) {\n const hasTitle = document.getElementById(titleId)\n if (!hasTitle) {\n // eslint-disable-next-line no-console\n console.warn(MESSAGE)\n }\n }\n }, [MESSAGE, titleId])\n }\n\n return null\n}\n\nconst DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning'\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject<TamaguiElement>\n descriptionId?: string\n}\n\nconst DescriptionWarning: React.FC<DescriptionWarningProps> = ({\n contentRef,\n descriptionId,\n}) => {\n if (process.env.NODE_ENV === 'development') {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME)\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`\n\n React.useEffect(() => {\n if (!isWeb) return\n const contentNode = contentRef.current\n if (!(contentNode instanceof HTMLElement)) {\n return\n }\n const describedById = contentNode.getAttribute('aria-describedby')\n // if we have an id and the user hasn't set aria-describedby={undefined}\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId)\n if (!hasDescription) {\n // eslint-disable-next-line no-console\n console.warn(MESSAGE)\n }\n }\n }, [MESSAGE, contentRef, descriptionId])\n }\n\n return null\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst DialogInner = React.forwardRef<{ open: (val: boolean) => void }, DialogProps>(\n function Dialog(props: ScopedProps<DialogProps>, ref) {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n modal = true,\n allowPinchZoom = false,\n } = props\n\n const { when, AdaptProvider } = useAdaptParent({\n Contents: DialogSheetContents,\n })\n const sheetBreakpoint = when\n\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const contentRef = React.useRef<TamaguiElement>(null)\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n })\n\n React.useImperativeHandle(\n ref,\n () => ({\n open: setOpen,\n }),\n [setOpen],\n )\n\n const scopeId = useId()\n const scopeKey = __scopeDialog ? Object.keys(__scopeDialog)[0] : scopeId\n\n return (\n <AdaptProvider>\n <DialogProvider\n scope={__scopeDialog}\n scopeKey={scopeKey}\n triggerRef={triggerRef}\n contentRef={contentRef}\n contentId={useId() || ''}\n titleId={useId() || ''}\n descriptionId={useId() || ''}\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={React.useCallback(\n () => setOpen((prevOpen) => !prevOpen),\n [setOpen],\n )}\n modal={modal}\n allowPinchZoom={allowPinchZoom}\n sheetBreakpoint={sheetBreakpoint}\n >\n <DialogSheetController\n onOpenChange={setOpen}\n __scopeDialog={__scopeDialog}\n >\n {children}\n </DialogSheetController>\n </DialogProvider>\n </AdaptProvider>\n )\n },\n)\n\nconst Dialog = withStaticProperties(DialogInner, {\n Trigger: DialogTrigger,\n Portal: DialogPortal,\n Overlay: DialogOverlay,\n Content: DialogContent,\n Title: DialogTitle,\n Description: DialogDescription,\n Close: DialogClose,\n Sheet: ControlledSheet,\n Adapt,\n})\n\nconst DialogSheetController = (\n props: ScopedProps<{\n children: React.ReactNode\n onOpenChange: React.Dispatch<React.SetStateAction<boolean>>\n }>,\n) => {\n const context = useDialogContext('DialogSheetController', props.__scopeDialog)\n const showSheet = useShowDialogSheet(context)\n const breakpointActive = useSheetBreakpointActive(context)\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 = (context: DialogContextValue) => {\n const media = useMedia()\n return context.sheetBreakpoint ? media[context.sheetBreakpoint] : false\n}\n\nconst useShowDialogSheet = (context: DialogContextValue) => {\n const breakpointActive = useSheetBreakpointActive(context)\n return context.open === false ? false : breakpointActive\n}\n\nexport {\n createDialogScope,\n //\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogContent,\n DialogTitle,\n DialogDescription,\n DialogClose,\n //\n DialogWarningProvider,\n}\nexport type {\n DialogProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n}\n"],
5
- "mappings": "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",
6
- "names": ["Dialog"]
4
+ "sourcesContent": ["import { 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 GetProps,\n TamaguiElement,\n Theme,\n composeEventHandlers,\n isWeb,\n styled,\n useGet,\n useId,\n useMedia,\n useThemeName,\n withStaticProperties,\n} from '@tamagui/core'\nimport { Scope, createContext, createContextScope } from '@tamagui/create-context'\nimport { Dismissable, DismissableProps } from '@tamagui/dismissable'\nimport { FocusScope, FocusScopeProps } from '@tamagui/focus-scope'\nimport { PortalHost, PortalItem, PortalItemProps } from '@tamagui/portal'\nimport { RemoveScroll } from '@tamagui/remove-scroll'\nimport { ControlledSheet, SheetController } from '@tamagui/sheet'\nimport { ThemeableStack, YStack, YStackProps } from '@tamagui/stacks'\nimport { H2, Paragraph } from '@tamagui/text'\nimport { useControllableState } from '@tamagui/use-controllable-state'\nimport * as React from 'react'\n\nconst DIALOG_NAME = 'Dialog'\n\ntype ScopedProps<P> = P & { __scopeDialog?: Scope }\n\nconst [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME)\n\ntype RemoveScrollProps = React.ComponentProps<typeof RemoveScroll>\n\ninterface DialogProps {\n children?: React.ReactNode\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?(open: boolean): void\n modal?: boolean\n\n /**\n * @see https://github.com/theKashey/react-remove-scroll#usage\n */\n allowPinchZoom?: RemoveScrollProps['allowPinchZoom']\n}\n\ntype NonNull<A> = Exclude<A, void | null>\n\ntype DialogContextValue = {\n triggerRef: React.RefObject<TamaguiElement>\n contentRef: React.RefObject<TamaguiElement>\n contentId: string\n titleId: string\n descriptionId: string\n onOpenToggle(): void\n open: NonNull<DialogProps['open']>\n onOpenChange: NonNull<DialogProps['onOpenChange']>\n modal: NonNull<DialogProps['modal']>\n allowPinchZoom: NonNull<DialogProps['allowPinchZoom']>\n sheetBreakpoint: any\n scopeKey: string\n}\n\nconst [DialogProvider, useDialogContext] =\n createDialogContext<DialogContextValue>(DIALOG_NAME)\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DialogTrigger'\n\nconst DialogTriggerFrame = styled(YStack, {\n name: TRIGGER_NAME,\n})\n\ninterface DialogTriggerProps extends YStackProps {}\n\nconst DialogTrigger = React.forwardRef<TamaguiElement, DialogTriggerProps>(\n (props: ScopedProps<DialogTriggerProps>, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog)\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef)\n return (\n <DialogTriggerFrame\n tag=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\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)\n\nDialogTrigger.displayName = TRIGGER_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'DialogPortal'\n\ntype PortalContextValue = { forceMount?: true }\nconst [PortalProvider, usePortalContext] = createDialogContext<PortalContextValue>(\n PORTAL_NAME,\n {\n forceMount: undefined,\n }\n)\n\ntype DialogPortalProps = Omit<PortalItemProps, 'asChild'> &\n YStackProps & {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true\n }\n\nexport const DialogPortalFrame = styled(YStack, {\n alignItems: 'center',\n justifyContent: 'center',\n fullscreen: true,\n zIndex: 100,\n ...(isWeb && {\n maxHeight: '100vh',\n position: 'fixed' as any,\n }),\n})\n\nconst DialogPortalItem = ({\n __scopeDialog,\n hostName,\n children,\n}: ScopedProps<DialogPortalProps>) => {\n const themeName = useThemeName()\n const context = useDialogContext(PORTAL_NAME, __scopeDialog)\n const name = `${context.scopeKey}SheetContents`\n\n // until we can use react-native portals natively\n // have to re-propogate context, sketch\n\n return (\n <PortalItem hostName={hostName} name={name}>\n <DialogProvider scope={__scopeDialog} {...context}>\n <Theme name={themeName}>{children}</Theme>\n </DialogProvider>\n </PortalItem>\n )\n}\n\nconst DialogPortal: React.FC<DialogPortalProps> = DialogPortalFrame.extractable(\n (props: ScopedProps<DialogPortalProps>) => {\n const { __scopeDialog, forceMount, children, ...frameProps } = props\n\n const context = useDialogContext(PORTAL_NAME, __scopeDialog)\n const isShowing = forceMount || context.open\n const contents = <AnimatePresence>{isShowing ? children : null}</AnimatePresence>\n const isSheet = useShowDialogSheet(context)\n\n if (isSheet) {\n return children\n }\n\n if (context.modal) {\n return (\n <DialogPortalItem>\n <PortalProvider scope={__scopeDialog} forceMount={forceMount}>\n <DialogPortalFrame\n pointerEvents={isShowing ? 'auto' : 'none'}\n {...frameProps}\n >\n {contents}\n </DialogPortalFrame>\n </PortalProvider>\n </DialogPortalItem>\n )\n }\n\n return contents\n }\n)\n\nDialogPortal.displayName = PORTAL_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'DialogOverlay'\n\nconst DialogOverlayFrame = styled(ThemeableStack, {\n name: OVERLAY_NAME,\n backgrounded: true,\n fullscreen: true,\n})\n\ninterface DialogOverlayProps extends YStackProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true\n}\n\nconst DialogOverlay = React.forwardRef<TamaguiElement, DialogOverlayProps>(\n ({ __scopeDialog, ...props }: ScopedProps<DialogOverlayProps>, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, __scopeDialog)\n const { forceMount = portalContext.forceMount, ...overlayProps } = props\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog)\n const showSheet = useShowDialogSheet(context)\n\n if (!forceMount) {\n if (!context.modal || showSheet) {\n return null\n }\n }\n\n return <DialogOverlayImpl context={context} {...overlayProps} ref={forwardedRef} />\n }\n)\n\nDialogOverlay.displayName = OVERLAY_NAME\n\ntype DialogOverlayImplProps = GetProps<typeof DialogOverlayFrame> & {\n context: DialogContextValue\n}\n\nconst DialogOverlayImpl = React.forwardRef<TamaguiElement, DialogOverlayImplProps>(\n (props, forwardedRef) => {\n const { context, ...overlayProps } = props\n\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n <DialogOverlayFrame\n data-state={getState(context.open)}\n // We re-enable pointer-events prevented by `Dialog.Content` to allow scrolling the overlay.\n pointerEvents={context.open ? 'auto' : 'none'}\n {...overlayProps}\n ref={forwardedRef}\n />\n )\n }\n)\n\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DialogContent'\n\nconst DialogContentFrame = styled(ThemeableStack, {\n name: CONTENT_NAME,\n tag: 'dialog',\n position: 'relative',\n backgrounded: true,\n padded: true,\n radiused: true,\n elevate: true,\n\n variants: {\n size: {\n '...size': (val, extras) => {\n return {}\n },\n },\n } as const,\n\n defaultVariants: {\n size: '$4',\n },\n})\n\ntype DialogContentFrameProps = GetProps<typeof DialogContentFrame>\n\ninterface DialogContentProps\n extends DialogContentFrameProps,\n Omit<DialogContentTypeProps, 'context'> {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true\n}\n\nconst DialogContent = DialogContentFrame.extractable(\n React.forwardRef<TamaguiElement, DialogContentProps>(\n ({ __scopeDialog, ...props }: ScopedProps<DialogContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, __scopeDialog)\n const { forceMount = portalContext.forceMount, ...contentProps } = props\n const context = useDialogContext(CONTENT_NAME, __scopeDialog)\n\n const contents = context.modal ? (\n <DialogContentModal context={context} {...contentProps} ref={forwardedRef} />\n ) : (\n <DialogContentNonModal context={context} {...contentProps} ref={forwardedRef} />\n )\n\n if (!isWeb) {\n return contents\n }\n\n return (\n <RemoveScroll\n forwardProps\n enabled={context.open}\n allowPinchZoom={context.allowPinchZoom}\n shards={[context.contentRef]}\n // causes lots of bugs on touch web on site\n removeScrollBar={false}\n >\n <div className=\"_dsp_contents\">{contents}</div>\n </RemoveScroll>\n )\n }\n )\n)\n\nDialogContent.displayName = CONTENT_NAME\n\n/* -----------------------------------------------------------------------------------------------*/\n\ninterface DialogContentTypeProps\n extends Omit<DialogContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {\n context: DialogContextValue\n}\n\nconst DialogContentModal = React.forwardRef<TamaguiElement, DialogContentTypeProps>(\n (\n { children, context, ...props }: ScopedProps<DialogContentTypeProps>,\n forwardedRef\n ) => {\n const contentRef = React.useRef<HTMLDivElement>(null)\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef)\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n if (isWeb) {\n React.useEffect(() => {\n if (!context.open) return\n const content = contentRef.current\n if (content) return hideOthers(content)\n }, [context.open])\n }\n\n return (\n <DialogContentImpl\n {...props}\n context={context}\n ref={composedRefs}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault()\n 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 // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault()\n }\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(props.onFocusOutside, (event) =>\n event.preventDefault()\n )}\n >\n {children}\n </DialogContentImpl>\n )\n }\n)\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst DialogContentNonModal = React.forwardRef<TamaguiElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const hasInteractedOutsideRef = React.useRef(false)\n\n return (\n <DialogContentImpl\n {...props}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event)\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) {\n props.context.triggerRef.current?.focus()\n }\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault()\n }\n\n hasInteractedOutsideRef.current = false\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event)\n\n if (!event.defaultPrevented) hasInteractedOutsideRef.current = true\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n //\n // We use `onInteractOutside` as some browsers also\n // focus on pointer down, creating the same issue.\n const target = event.target as HTMLElement\n const trigger = props.context.triggerRef.current\n if (!(trigger instanceof HTMLElement)) return\n const targetIsTrigger = trigger.contains(target)\n if (targetIsTrigger) event.preventDefault()\n }}\n />\n )\n }\n)\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentImplProps = DialogContentFrameProps &\n Omit<DismissableProps, 'onDismiss'> & {\n /**\n * When `true`, focus cannot escape the `Content` via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue 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 context: DialogContextValue\n }\n\nconst DialogContentImpl = React.forwardRef<TamaguiElement, DialogContentImplProps>(\n (props: ScopedProps<DialogContentImplProps>, forwardedRef) => {\n const {\n __scopeDialog,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n context,\n ...contentProps\n } = props\n const contentRef = React.useRef<HTMLDivElement>(null)\n const composedRefs = useComposedRefs(forwardedRef, contentRef)\n const showSheet = useShowDialogSheet(context)\n\n const contents = (\n <DialogContentFrame\n id={context.contentId}\n aria-describedby={context.descriptionId}\n aria-labelledby={context.titleId}\n data-state={getState(context.open)}\n {...contentProps}\n />\n )\n\n if (showSheet) {\n return <DialogPortalItem>{contentProps.children}</DialogPortalItem>\n }\n\n if (!isWeb) {\n return contents\n }\n\n return (\n <>\n <FocusScope\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n forceUnmount={!context.open}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <Dismissable\n disableOutsidePointerEvents={context.open && disableOutsidePointerEvents}\n forceUnmount={!context.open}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={onFocusOutside}\n onInteractOutside={onInteractOutside}\n // @ts-ignore\n ref={composedRefs}\n onDismiss={() => context.onOpenChange(false)}\n >\n {contents}\n </Dismissable>\n </FocusScope>\n {process.env.NODE_ENV === 'development' && (\n <>\n <TitleWarning titleId={context.titleId} />\n <DescriptionWarning\n contentRef={contentRef}\n descriptionId={context.descriptionId}\n />\n </>\n )}\n </>\n )\n }\n)\n\n/* -------------------------------------------------------------------------------------------------\n * DialogSheetContents\n * -----------------------------------------------------------------------------------------------*/\n\nconst SHEET_CONTENTS_NAME = 'DialogSheetContents'\n\nexport const DialogSheetContents = ({\n name,\n ...props\n}: {\n name: string\n context: Omit<DialogContextValue, 'sheetBreakpoint'>\n}) => {\n return <PortalHost forwardProps={props} name={name} />\n}\n\nDialogSheetContents.displayName = SHEET_CONTENTS_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'DialogTitle'\nconst DialogTitleFrame = styled(H2, {\n name: TITLE_NAME,\n})\n\ntype DialogTitleProps = GetProps<typeof DialogTitleFrame>\n\nconst DialogTitle = React.forwardRef<TamaguiElement, DialogTitleProps>(\n (props: ScopedProps<DialogTitleProps>, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props\n const context = useDialogContext(TITLE_NAME, __scopeDialog)\n return <DialogTitleFrame id={context.titleId} {...titleProps} ref={forwardedRef} />\n }\n)\n\nDialogTitle.displayName = TITLE_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DialogDescriptionFrame = styled(Paragraph, {\n name: 'DialogDescription',\n})\n\ntype DialogDescriptionProps = GetProps<typeof DialogDescriptionFrame>\n\nconst DESCRIPTION_NAME = 'DialogDescription'\n\nconst DialogDescription = React.forwardRef<TamaguiElement, DialogDescriptionProps>(\n (props: ScopedProps<DialogDescriptionProps>, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog)\n return (\n <DialogDescriptionFrame\n id={context.descriptionId}\n {...descriptionProps}\n ref={forwardedRef}\n />\n )\n }\n)\n\nDialogDescription.displayName = DESCRIPTION_NAME\n\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'DialogClose'\n\ntype DialogCloseProps = YStackProps\n\nconst DialogClose = React.forwardRef<TamaguiElement, DialogCloseProps>(\n (props: ScopedProps<DialogCloseProps>, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props\n const context = useDialogContext(CLOSE_NAME, __scopeDialog)\n const isSheet = useShowDialogSheet(context)\n\n if (isSheet) {\n return null\n }\n\n return (\n <YStack\n tag=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onPress={composeEventHandlers(props.onPress as any, () =>\n context.onOpenChange(false)\n )}\n />\n )\n }\n)\n\nDialogClose.displayName = CLOSE_NAME\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed'\n}\n\nconst TITLE_WARNING_NAME = 'DialogTitleWarning'\n\nconst [DialogWarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: 'dialog',\n})\n\ntype TitleWarningProps = { titleId?: string }\n\nconst TitleWarning: React.FC<TitleWarningProps> = ({ titleId }) => {\n if (process.env.NODE_ENV === 'development') {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME)\n\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`\n\n React.useEffect(() => {\n if (!isWeb) return\n if (titleId) {\n const hasTitle = document.getElementById(titleId)\n if (!hasTitle) {\n // eslint-disable-next-line no-console\n console.warn(MESSAGE)\n }\n }\n }, [MESSAGE, titleId])\n }\n\n return null\n}\n\nconst DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning'\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject<TamaguiElement>\n descriptionId?: string\n}\n\nconst DescriptionWarning: React.FC<DescriptionWarningProps> = ({\n contentRef,\n descriptionId,\n}) => {\n if (process.env.NODE_ENV === 'development') {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME)\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`\n\n React.useEffect(() => {\n if (!isWeb) return\n const contentNode = contentRef.current\n if (!(contentNode instanceof HTMLElement)) {\n return\n }\n const describedById = contentNode.getAttribute('aria-describedby')\n // if we have an id and the user hasn't set aria-describedby={undefined}\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId)\n if (!hasDescription) {\n // eslint-disable-next-line no-console\n console.warn(MESSAGE)\n }\n }\n }, [MESSAGE, contentRef, descriptionId])\n }\n\n return null\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst Dialog = withStaticProperties(\n React.forwardRef<{ open: (val: boolean) => void }, DialogProps>(function Dialog(\n props: ScopedProps<DialogProps>,\n ref\n ) {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n modal = true,\n allowPinchZoom = false,\n } = props\n\n const scopeId = useId()\n const scopeKey = __scopeDialog ? Object.keys(__scopeDialog)[0] : scopeId\n\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const contentRef = React.useRef<TamaguiElement>(null)\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n })\n\n const onOpenToggle = React.useCallback(\n () => setOpen((prevOpen) => !prevOpen),\n [setOpen]\n )\n\n const contentId = useId()\n const titleId = useId()\n const descriptionId = useId()\n\n const context = {\n scope: __scopeDialog,\n scopeKey,\n triggerRef,\n contentRef,\n contentId,\n titleId,\n descriptionId,\n open,\n onOpenChange: setOpen,\n onOpenToggle,\n modal,\n allowPinchZoom,\n }\n\n const sheetContentsName = `${scopeKey}SheetContents`\n\n const { when, AdaptProvider } = useAdaptParent({\n Contents: React.useCallback(\n (props) => {\n return <DialogSheetContents {...props} name={sheetContentsName} />\n },\n [sheetContentsName]\n ),\n })\n\n React.useImperativeHandle(\n ref,\n () => ({\n open: setOpen,\n }),\n [setOpen]\n )\n\n return (\n <AdaptProvider>\n <DialogProvider {...context} sheetBreakpoint={when}>\n <DialogSheetController onOpenChange={setOpen} __scopeDialog={__scopeDialog}>\n {children}\n </DialogSheetController>\n </DialogProvider>\n </AdaptProvider>\n )\n }),\n {\n Trigger: DialogTrigger,\n Portal: DialogPortal,\n Overlay: DialogOverlay,\n Content: DialogContent,\n Title: DialogTitle,\n Description: DialogDescription,\n Close: DialogClose,\n Sheet: ControlledSheet,\n Adapt,\n }\n)\n\nconst DialogSheetController = (\n props: ScopedProps<{\n children: React.ReactNode\n onOpenChange: React.Dispatch<React.SetStateAction<boolean>>\n }>\n) => {\n const context = useDialogContext('DialogSheetController', props.__scopeDialog)\n const showSheet = useShowDialogSheet(context)\n const breakpointActive = useSheetBreakpointActive(context)\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 = (context: DialogContextValue) => {\n const media = useMedia()\n return context.sheetBreakpoint ? media[context.sheetBreakpoint] : false\n}\n\nconst useShowDialogSheet = (context: DialogContextValue) => {\n const breakpointActive = useSheetBreakpointActive(context)\n return context.open === false ? false : breakpointActive\n}\n\nexport {\n createDialogScope,\n //\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogContent,\n DialogTitle,\n DialogDescription,\n DialogClose,\n //\n DialogWarningProvider,\n}\nexport type {\n DialogProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Dialog", "props"]
7
7
  }