{"mappings":";;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;AAiCM,SAAS,0CAAe,KAA0B;IACvD,IAAI,QAAQ,CAAA,GAAA,6BAAqB,EAAE;QACjC,GAAG,KAAK;QACR,OAAO,MAAM,KAAK,IAAI;QACtB,YAAY,MAAM,UAAU,IAAI;IAClC;IACA,IAAI,aAAa,CAAA,GAAA,aAAK,EAAoB;IAC1C,IAAI,aAAa,CAAA,GAAA,aAAK,EAAe;IACrC,IAAI,gBAAC,YAAY,gBAAE,YAAY,EAAC,GAAG,CAAA,GAAA,wBAAgB,EAAE;QAAC,GAAG,KAAK;oBAAE;oBAAY;IAAU,GAAG;IAEzF,iGAAiG;IACjG,kEAAkE;IAClE,IAAI,eAAe,CAAA,GAAA,cAAM,EACvB,IAAO,CAAA;YACL,QAAQ,MAAM,MAAM;YACpB,MAAM,IAAM,MAAM,IAAI;YACtB,OAAO,IAAM,MAAM,KAAK;YACxB,SAAS,CAAA,SAAW,SAAS,MAAM,IAAI,KAAK,MAAM,KAAK;YACvD,QAAQ,IAAO,MAAM,MAAM,GAAG,MAAM,KAAK,KAAK,MAAM,IAAI;YACxD,OAAO;YACP,UAAU,KAAO;QACnB,CAAA,GACA;QAAC;KAAM;IAGT,qBACE,gCAAC,CAAA,GAAA,yCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,wCAAyB;gBAAG;aAAa;YAC1C;gBACE,CAAA,GAAA,yCAAa;gBACb;oBACE,SAAS;gCACT;oBACA,KAAK;oBACL,YAAY;oBACZ,sFAAsF;oBACtF,qBAAqB,MAAM,mBAAmB;oBAC9C,GAAG,YAAY;gBACjB;aACD;SACF;qBACD,gCAAC,CAAA,GAAA,wBAAgB;QAAG,GAAG,YAAY;QAAE,KAAK;OACvC,MAAM,QAAQ;AAIvB","sources":["packages/react-aria-components/src/PreviewTrigger.tsx"],"sourcesContent":["/*\n * Copyright 2026 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaPreviewTriggerProps, usePreviewTrigger} from 'react-aria/usePreviewTrigger';\nimport {FocusableElement} from '@react-types/shared';\nimport {FocusableProvider} from 'react-aria/private/interactions/useFocusable';\nimport {OverlayTriggerState} from 'react-stately/useOverlayTriggerState';\nimport {OverlayTriggerStateContext} from './Dialog';\nimport {PopoverContext} from './Popover';\nimport {Provider} from './utils';\nimport React, {JSX, ReactNode, useMemo, useRef} from 'react';\nimport {useTooltipTriggerState} from 'react-stately/useTooltipTriggerState';\n\nexport interface PreviewTriggerProps extends AriaPreviewTriggerProps {\n  /** The trigger and Popover that make up the preview trigger. */\n  children: ReactNode;\n  /**\n   * The delay time in milliseconds before the preview opens.\n   *\n   * @default 600\n   */\n  delay?: number;\n  /**\n   * The delay time in milliseconds before the preview closes.\n   *\n   * @default 200\n   */\n  closeDelay?: number;\n}\n\n/**\n * A PreviewTrigger displays a non-modal popover on hover, focus, or long press. Unlike a tooltip,\n * the popover may contain interactive content.\n */\nexport function PreviewTrigger(props: PreviewTriggerProps): JSX.Element {\n  let state = useTooltipTriggerState({\n    ...props,\n    delay: props.delay ?? 600,\n    closeDelay: props.closeDelay ?? 200\n  });\n  let triggerRef = useRef<FocusableElement>(null);\n  let popoverRef = useRef<HTMLElement>(null);\n  let {triggerProps, popoverProps} = usePreviewTrigger({...props, triggerRef, popoverRef}, state);\n\n  // The Popover and usePopover expect an OverlayTriggerState. Adapt the TooltipTriggerState (which\n  // provides the warmup/cooldown delay behavior) to that interface.\n  let overlayState = useMemo<OverlayTriggerState>(\n    () => ({\n      isOpen: state.isOpen,\n      open: () => state.open(),\n      close: () => state.close(),\n      setOpen: isOpen => (isOpen ? state.open() : state.close()),\n      toggle: () => (state.isOpen ? state.close() : state.open()),\n      point: null,\n      setPoint: () => {}\n    }),\n    [state]\n  );\n\n  return (\n    <Provider\n      values={[\n        [OverlayTriggerStateContext, overlayState],\n        [\n          PopoverContext,\n          {\n            trigger: 'PreviewTrigger',\n            triggerRef,\n            ref: popoverRef,\n            isNonModal: true,\n            // Skip enter/exit animations when swapping between previews during the warmup period.\n            shouldSkipAnimation: state.shouldSkipAnimation,\n            ...popoverProps\n          }\n        ]\n      ]}>\n      <FocusableProvider {...triggerProps} ref={triggerRef}>\n        {props.children}\n      </FocusableProvider>\n    </Provider>\n  );\n}\n"],"names":[],"version":3,"file":"PreviewTrigger.mjs.map"}