@workflow/web 4.0.1-beta.17 → 4.0.1-beta.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +2 -2
  3. package/.next/fallback-build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/server/app/_global-error.html +2 -2
  6. package/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/server/app/_not-found/page/server-reference-manifest.json +35 -20
  13. package/.next/server/app/_not-found/page.js +1 -1
  14. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/page/server-reference-manifest.json +35 -20
  17. package/.next/server/app/page.js +1 -1
  18. package/.next/server/app/page.js.nft.json +1 -1
  19. package/.next/server/app/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/run/[runId]/page/server-reference-manifest.json +35 -20
  21. package/.next/server/app/run/[runId]/page.js +1 -1
  22. package/.next/server/app/run/[runId]/page.js.nft.json +1 -1
  23. package/.next/server/app/run/[runId]/page_client-reference-manifest.js +1 -1
  24. package/.next/server/chunks/ssr/[root-of-the-server]__2168651f._.js +1 -1
  25. package/.next/server/chunks/ssr/[root-of-the-server]__2168651f._.js.map +1 -1
  26. package/.next/server/chunks/ssr/[root-of-the-server]__25c4ca9a._.js +1 -1
  27. package/.next/server/chunks/ssr/[root-of-the-server]__25c4ca9a._.js.map +1 -1
  28. package/.next/server/chunks/ssr/[root-of-the-server]__43a10f86._.js +159 -0
  29. package/.next/server/chunks/ssr/[root-of-the-server]__43a10f86._.js.map +1 -0
  30. package/.next/server/chunks/ssr/[root-of-the-server]__d416fa5e._.js +1 -1
  31. package/.next/server/chunks/ssr/[root-of-the-server]__d416fa5e._.js.map +1 -1
  32. package/.next/server/chunks/ssr/{[root-of-the-server]__60fbc36b._.js → [root-of-the-server]__e2ff4931._.js} +18 -14
  33. package/.next/server/chunks/ssr/[root-of-the-server]__e2ff4931._.js.map +1 -0
  34. package/.next/server/chunks/ssr/_af28dabd._.js +1 -1
  35. package/.next/server/chunks/ssr/_af28dabd._.js.map +1 -1
  36. package/.next/server/chunks/ssr/packages_web_src_app_page_tsx_cd282e82._.js +1 -1
  37. package/.next/server/chunks/ssr/packages_web_src_app_page_tsx_cd282e82._.js.map +1 -1
  38. package/.next/server/chunks/ssr/packages_web_src_app_run_[runId]_page_tsx_c7d0b139._.js +1 -1
  39. package/.next/server/chunks/ssr/packages_web_src_app_run_[runId]_page_tsx_c7d0b139._.js.map +1 -1
  40. package/.next/server/pages/500.html +2 -2
  41. package/.next/server/server-reference-manifest.js +1 -1
  42. package/.next/server/server-reference-manifest.json +54 -25
  43. package/.next/static/chunks/25de5c206fdbfe61.js +154 -0
  44. package/.next/static/chunks/{16e57eee131d9ff7.js → 4cc8e6fbfadefe1c.js} +1 -1
  45. package/.next/static/chunks/74dc45834647aebe.css +3 -0
  46. package/.next/static/chunks/{4bda602323cd0cbf.css → 7923b4297b28749b.css} +1 -1
  47. package/.next/static/chunks/{150101e4f4427b25.js → 957091100c82d8a1.js} +1 -1
  48. package/.next/static/chunks/{a14e6cc676939e77.js → 9a38b117010f1bba.js} +1 -1
  49. package/.next/static/chunks/bc0418de43deb5da.js +1 -0
  50. package/.next/static/chunks/{turbopack-3835492efe69f7b0.js → turbopack-fcbada14c092d574.js} +1 -1
  51. package/.next/trace +1 -1
  52. package/.next/trace-build +1 -1
  53. package/next.config.ts +10 -0
  54. package/package.json +4 -3
  55. package/.next/server/chunks/ssr/[root-of-the-server]__60fbc36b._.js.map +0 -1
  56. package/.next/server/chunks/ssr/[root-of-the-server]__698f0f8c._.js +0 -159
  57. package/.next/server/chunks/ssr/[root-of-the-server]__698f0f8c._.js.map +0 -1
  58. package/.next/static/chunks/0aeb3c102cae6574.js +0 -154
  59. package/.next/static/chunks/665d0d9b32cf3823.css +0 -3
  60. package/.next/static/chunks/f137c380e66ba08c.js +0 -1
  61. /package/.next/static/{JrXXjEQ6B0cLGAHZgjQl3 → DMM515DffVppYSl0C6eaw}/_buildManifest.js +0 -0
  62. /package/.next/static/{JrXXjEQ6B0cLGAHZgjQl3 → DMM515DffVppYSl0C6eaw}/_clientMiddlewareManifest.json +0 -0
  63. /package/.next/static/{JrXXjEQ6B0cLGAHZgjQl3 → DMM515DffVppYSl0C6eaw}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-dismissable-layer%401.1.4_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40_8ae1d61ac10a80ba9d8ed6f21c6516b3/node_modules/%40radix-ui/react-dismissable-layer/dist/index.mjs","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-focus-scope%401.1.1_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types%2B_34e3df0d2ea684cd35e69acd9743ae93/node_modules/%40radix-ui/react-focus-scope/dist/index.mjs","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-portal%401.1.3_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types%2Breact_5fb27bb40c3888aea737cfd7dec4f395/node_modules/%40radix-ui/react-portal/dist/index.mjs","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-dialog%401.1.5_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types%2Breact_330d237330866b501ee374be87c8c3c2/node_modules/%40radix-ui/react-dialog/dist/index.mjs","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-alert-dialog%401.1.5_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types_81534ce1c0ac43993aad69431dd7630a/node_modules/%40radix-ui/react-alert-dialog/dist/index.mjs","../../../../../../packages/web/src/components/ui/alert-dialog.tsx","../../../../../../packages/web/src/components/run-detail-view.tsx","../../../../../../packages/web/src/app/run/%5BrunId%5D/page.tsx","../../../../../../packages/web/src/components/ui/breadcrumb.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-primitive%402.0.1_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types%2Bre_5cfe77f395f2bc73c3bc3594ad29bd9b/node_modules/%40radix-ui/react-primitive/dist/index.mjs","../../../../../../packages/web/src/components/display-utils/live-status.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.469.0_react%4019.1.0/node_modules/lucide-react/src/icons/circle-help.ts","../../../../../../node_modules/.pnpm/lucide-react%400.469.0_react%4019.1.0/node_modules/lucide-react/src/icons/list.ts","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-dialog%401.1.5_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types%2Breact_330d237330866b501ee374be87c8c3c2/node_modules/%40radix-ui/react-dialog/src/Dialog.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-alert-dialog%401.1.5_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types_81534ce1c0ac43993aad69431dd7630a/node_modules/%40radix-ui/react-alert-dialog/src/AlertDialog.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-portal%401.1.3_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types%2Breact_5fb27bb40c3888aea737cfd7dec4f395/node_modules/%40radix-ui/react-portal/src/Portal.tsx"],"sourcesContent":["\"use client\";\n\n// packages/react/dismissable-layer/src/DismissableLayer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/focus-scope/src/FocusScope.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n React.useEffect(() => {\n if (trapped) {\n let handleFocusIn2 = function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleFocusOut2 = function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleMutations2 = function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n };\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n return /* @__PURE__ */ jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });\n});\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nvar Root = FocusScope;\nexport {\n FocusScope,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/portal/src/Portal.tsx\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PORTAL_NAME = \"Portal\";\nvar Portal = React.forwardRef((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || mounted && globalThis?.document?.body;\n return container ? ReactDOM.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;\n});\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\nexport {\n Portal,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dialog/src/Dialog.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContext, createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { hideOthers } from \"aria-hidden\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(\n DialogProvider,\n {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: useId(),\n titleId: useId(),\n descriptionId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children\n }\n );\n};\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"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 onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children: child }) })) });\n};\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;\n }\n);\nDialogOverlay.displayName = OVERLAY_NAME;\nvar DialogOverlayImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\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 /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: { pointerEvents: \"auto\", ...overlayProps.style }\n }\n ) })\n );\n }\n);\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault()\n )\n }\n );\n }\n);\nvar DialogContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar DialogContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n useFocusGuards();\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: () => context.onOpenChange(false)\n }\n )\n }\n ),\n /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(TitleWarning, { titleId: context.titleId }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })\n ] })\n ] });\n }\n);\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });\n }\n);\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });\n }\n);\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\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 React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n return null;\n};\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n return null;\n};\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\nexport {\n Close,\n Content,\n Description,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n Overlay,\n Portal,\n Root,\n Title,\n Trigger,\n WarningProvider,\n createDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/alert-dialog/src/AlertDialog.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { createDialogScope } from \"@radix-ui/react-dialog\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Slottable } from \"@radix-ui/react-slot\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope\n]);\nvar useDialogScope = createDialogScope();\nvar AlertDialog = (props) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });\n};\nAlertDialog.displayName = ROOT_NAME;\nvar TRIGGER_NAME = \"AlertDialogTrigger\";\nvar AlertDialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });\n }\n);\nAlertDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"AlertDialogPortal\";\nvar AlertDialogPortal = (props) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });\n};\nAlertDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"AlertDialogOverlay\";\nvar AlertDialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { ...dialogScope, ...overlayProps, ref: forwardedRef });\n }\n);\nAlertDialogOverlay.displayName = OVERLAY_NAME;\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar AlertDialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef(null);\n return /* @__PURE__ */ jsx(\n DialogPrimitive.WarningProvider,\n {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"alert-dialog\",\n children: /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsxs(\n DialogPrimitive.Content,\n {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n }),\n onPointerDownOutside: (event) => event.preventDefault(),\n onInteractOutside: (event) => event.preventDefault(),\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef })\n ]\n }\n ) })\n }\n );\n }\n);\nAlertDialogContent.displayName = CONTENT_NAME;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Title, { ...dialogScope, ...titleProps, ref: forwardedRef });\n }\n);\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"AlertDialogDescription\";\nvar AlertDialogDescription = React.forwardRef((props, forwardedRef) => {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Description, { ...dialogScope, ...descriptionProps, ref: forwardedRef });\n});\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...actionProps, ref: forwardedRef });\n }\n);\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...cancelProps, ref });\n }\n);\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning = ({ contentRef }) => {\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n React.useEffect(() => {\n const hasDescription = document.getElementById(\n contentRef.current?.getAttribute(\"aria-describedby\")\n );\n if (!hasDescription) console.warn(MESSAGE);\n }, [MESSAGE, contentRef]);\n return null;\n};\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\nexport {\n Action,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n Cancel,\n Content2 as Content,\n Description2 as Description,\n Overlay2 as Overlay,\n Portal2 as Portal,\n Root2 as Root,\n Title2 as Title,\n Trigger2 as Trigger,\n createAlertDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';\nimport type * as React from 'react';\nimport { buttonVariants } from '@/components/ui/button';\nimport { cn } from '@/lib/utils';\n\nfunction AlertDialog({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction AlertDialogTrigger({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n );\n}\n\nfunction AlertDialogPortal({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return (\n <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n );\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogContent({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Content>) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg',\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n );\n}\n\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n 'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn('text-lg font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogAction({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Action>) {\n return (\n <AlertDialogPrimitive.Action\n className={cn(buttonVariants(), className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogCancel({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>) {\n return (\n <AlertDialogPrimitive.Cancel\n className={cn(buttonVariants({ variant: 'outline' }), className)}\n {...props}\n />\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\n","'use client';\n\nimport { parseWorkflowName } from '@workflow/core/parse-name';\nimport {\n cancelRun,\n recreateRun,\n StreamViewer,\n useWorkflowStreams,\n useWorkflowTraceViewerData,\n type WorkflowRun,\n WorkflowTraceViewer,\n} from '@workflow/web-shared';\nimport { AlertCircle, HelpCircle, List, Loader2 } from 'lucide-react';\nimport Link from 'next/link';\nimport { useRouter, useSearchParams } from 'next/navigation';\nimport { useCallback, useMemo, useState } from 'react';\nimport { toast } from 'sonner';\nimport { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '@/components/ui/alert-dialog';\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from '@/components/ui/breadcrumb';\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from '@/components/ui/tooltip';\nimport { buildUrlWithConfig, worldConfigToEnvMap } from '@/lib/config';\nimport type { WorldConfig } from '@/lib/config-world';\nimport { CopyableText } from './display-utils/copyable-text';\nimport { LiveStatus } from './display-utils/live-status';\nimport { RelativeTime } from './display-utils/relative-time';\nimport { StatusBadge } from './display-utils/status-badge';\nimport { RunActionsButtons } from './run-actions';\nimport { Skeleton } from './ui/skeleton';\n\ninterface RunDetailViewProps {\n config: WorldConfig;\n runId: string;\n selectedId?: string;\n}\n\nexport function RunDetailView({\n config,\n runId,\n // TODO: This should open the right sidebar within the trace viewer\n selectedId: _selectedId,\n}: RunDetailViewProps) {\n const router = useRouter();\n const searchParams = useSearchParams();\n const [cancelling, setCancelling] = useState(false);\n const [rerunning, setRerunning] = useState(false);\n const [showCancelDialog, setShowCancelDialog] = useState(false);\n const [showRerunDialog, setShowRerunDialog] = useState(false);\n const env = useMemo(() => worldConfigToEnvMap(config), [config]);\n\n // Read tab and streamId from URL search params\n const activeTab = (searchParams.get('tab') as 'trace' | 'streams') || 'trace';\n const selectedStreamId = searchParams.get('streamId');\n const showDebugActions = searchParams.get('debug') === '1';\n\n // Helper to update URL search params\n const updateSearchParams = useCallback(\n (updates: Record<string, string | null>) => {\n const params = new URLSearchParams(searchParams.toString());\n for (const [key, value] of Object.entries(updates)) {\n if (value === null) {\n params.delete(key);\n } else {\n params.set(key, value);\n }\n }\n router.push(`?${params.toString()}`, { scroll: false });\n },\n [router, searchParams]\n );\n\n const setActiveTab = useCallback(\n (tab: 'trace' | 'streams') => {\n // When switching to trace tab, clear streamId\n if (tab === 'trace') {\n updateSearchParams({ tab, streamId: null });\n } else {\n updateSearchParams({ tab });\n }\n },\n [updateSearchParams]\n );\n\n const setSelectedStreamId = useCallback(\n (streamId: string | null) => {\n updateSearchParams({ streamId });\n },\n [updateSearchParams]\n );\n\n // Handler for clicking on stream refs in the trace viewer\n const handleStreamClick = useCallback(\n (streamId: string) => {\n updateSearchParams({ tab: 'streams', streamId });\n },\n [updateSearchParams]\n );\n\n // Fetch workflow graph manifest\n // const {\n // manifest: graphManifest,\n // loading: graphLoading,\n // error: graphError,\n // } = useWorkflowGraphManifest(config);\n\n // Fetch all run data with live updates\n const {\n run: runData,\n steps: allSteps,\n hooks: allHooks,\n events: allEvents,\n loading,\n auxiliaryDataLoading,\n error,\n update,\n } = useWorkflowTraceViewerData(env, runId, { live: true });\n const run = runData ?? ({} as WorkflowRun);\n\n // Fetch streams for this run\n const {\n streams,\n loading: streamsLoading,\n error: streamsError,\n } = useWorkflowStreams(env, runId);\n\n // Find the workflow graph for this run\n // The manifest is keyed by workflowId which matches run.workflowName\n // e.g., \"workflow//example/workflows/1_simple.ts//simple\"\n // TODO(Karthik): Uncomment after https://github.com/vercel/workflow/pull/455 is merged\n // const workflowGraph = useMemo(() => {\n // if (!graphManifest || !run.workflowName) return null;\n // return graphManifest.workflows[run.workflowName] ?? null;\n // }, [graphManifest, run.workflowName]);\n\n // Map run data to execution overlay\n // TODO(Karthik): Uncomment after https://github.com/vercel/workflow/pull/455 is merged\n // const execution = useMemo(() => {\n // if (!workflowGraph || !run.runId) return null;\n\n // return mapRunToExecution(\n // run,\n // allSteps || [],\n // allEvents || [],\n // workflowGraph\n // );\n // }, [workflowGraph, run, allSteps, allEvents]);\n\n const handleCancelClick = () => {\n setShowCancelDialog(true);\n };\n\n const handleConfirmCancel = async () => {\n if (cancelling) return;\n\n try {\n setCancelling(true);\n setShowCancelDialog(false);\n await cancelRun(env, runId);\n // Trigger a refresh of the data\n await update();\n toast.success('Run cancelled successfully');\n } catch (err) {\n console.error('Failed to cancel run:', err);\n toast.error('Failed to cancel run', {\n description:\n err instanceof Error ? err.message : 'An unknown error occurred',\n });\n } finally {\n setCancelling(false);\n }\n };\n\n const handleRerunClick = () => {\n setShowRerunDialog(true);\n };\n\n const handleConfirmRerun = async () => {\n if (rerunning) return;\n\n try {\n setRerunning(true);\n setShowRerunDialog(false);\n // Start a new run with the same workflow and input arguments\n const newRunId = await recreateRun(env, run.runId);\n toast.success('New run started successfully', {\n description: `Run ID: ${newRunId}`,\n });\n // Navigate to the new run\n router.push(buildUrlWithConfig(`/run/${newRunId}`, config));\n } catch (err) {\n console.error('Failed to re-run workflow:', err);\n toast.error('Failed to start new run', {\n description:\n err instanceof Error ? err.message : 'An unknown error occurred',\n });\n } finally {\n setRerunning(false);\n setShowRerunDialog(false);\n }\n };\n\n if (error && !runData) {\n return (\n <Alert variant=\"destructive\" className=\"m-4\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertTitle>Error loading workflow run</AlertTitle>\n <AlertDescription>{error.message}</AlertDescription>\n </Alert>\n );\n }\n\n const workflowName = parseWorkflowName(run.workflowName)?.shortName;\n\n // At this point, we've already returned if there was an error\n // So hasError is always false here\n const hasError = false;\n const errorMessage = '';\n\n return (\n <>\n {/* Cancel Confirmation Dialog */}\n <AlertDialog open={showCancelDialog} onOpenChange={setShowCancelDialog}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Cancel Workflow Run?</AlertDialogTitle>\n <AlertDialogDescription>\n This will stop the workflow execution immediately, and no further\n steps will be executed. Partial workflow execution may occur. Are\n you sure you want to cancel the run?\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Keep Running</AlertDialogCancel>\n <AlertDialogAction\n onClick={handleConfirmCancel}\n className=\"bg-destructive text-destructive-foreground hover:bg-destructive/90\"\n >\n Cancel Run\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n\n {/* Replay Run Confirmation Dialog */}\n <AlertDialog open={showRerunDialog} onOpenChange={setShowRerunDialog}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Replay Run?</AlertDialogTitle>\n <AlertDialogDescription>\n This can potentially re-run code that is meant to only execute\n once. Are you sure you want to replay the workflow run?\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Cancel</AlertDialogCancel>\n <AlertDialogAction onClick={handleConfirmRerun}>\n Replay Run\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n\n <div className=\"flex flex-col h-[calc(100vh-97px)]\">\n <div className=\"flex-none space-y-4\">\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink asChild>\n <Link href={buildUrlWithConfig('/', config)}>Runs</Link>\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbPage className=\"font-mono text-xs\">\n {runId}\n </BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n\n {/* Run Overview Header */}\n <div className=\"space-y-4 p-6 border rounded-lg\">\n {/* Title Row */}\n <div className=\"flex items-start justify-between\">\n <div className=\"mb-4\">\n <h1 className=\"text-xl font-semibold\">\n {workflowName ? (\n workflowName\n ) : (\n <Skeleton className=\"w-[260px] h-[28px]\" />\n )}\n </h1>\n </div>\n\n <div className=\"flex items-center justify-between gap-2\">\n {/* Right side controls */}\n <LiveStatus hasError={hasError} errorMessage={errorMessage} />\n <RunActionsButtons\n env={env}\n runId={runId}\n runStatus={run.status}\n events={allEvents}\n eventsLoading={auxiliaryDataLoading}\n loading={loading}\n onRerunClick={handleRerunClick}\n onCancelClick={handleCancelClick}\n callbacks={{ onSuccess: update }}\n showDebugActions={showDebugActions}\n />\n </div>\n </div>\n\n {/* Status and Timeline Row */}\n <div className=\"flex items-start gap-8\">\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-xs text-muted-foreground\">Status</div>\n {run.status ? (\n <StatusBadge status={run.status} context={run} />\n ) : (\n <Skeleton className=\"w-[55px] h-[24px]\" />\n )}\n </div>\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-xs text-muted-foreground\">Duration</div>\n <div className=\"text-xs\">\n {run.runId ? (\n run.startedAt ? (\n (() => {\n const ms =\n (run.completedAt\n ? new Date(run.completedAt).getTime()\n : Date.now()) - new Date(run.startedAt).getTime();\n const seconds = Math.floor(ms / 1000);\n if (seconds < 60) return `${seconds}s`;\n const minutes = Math.floor(seconds / 60);\n const remainingSeconds = seconds % 60;\n if (minutes < 60) {\n return remainingSeconds > 0\n ? `${minutes}m ${remainingSeconds}s`\n : `${minutes}m`;\n }\n const hours = Math.floor(minutes / 60);\n const remainingMinutes = minutes % 60;\n return remainingMinutes > 0\n ? `${hours}h ${remainingMinutes}m`\n : `${hours}h`;\n })()\n ) : (\n '-'\n )\n ) : (\n <Skeleton className=\"w-[60px] h-[20px]\" />\n )}\n </div>\n </div>\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-xs text-muted-foreground\">Run ID</div>\n {run.runId ? (\n <CopyableText text={run.runId}>\n <div className=\"text-xs mt-0.5 font-mono\">{run.runId}</div>\n </CopyableText>\n ) : (\n <Skeleton className=\"w-[280px] h-[20px]\" />\n )}\n </div>\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-xs text-muted-foreground\">Queued</div>\n {run.createdAt ? (\n <div className=\"text-xs\">\n <RelativeTime date={run.createdAt} />\n </div>\n ) : (\n <Skeleton className=\"w-[110px] h-[20px]\" />\n )}\n </div>\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-xs text-muted-foreground\">Started</div>\n <div className=\"text-xs\">\n {run.runId ? (\n run.startedAt ? (\n <RelativeTime date={run.startedAt} />\n ) : (\n '-'\n )\n ) : (\n <Skeleton className=\"w-[110px] h-[20px]\" />\n )}\n </div>\n </div>\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-xs text-muted-foreground\">Completed</div>\n <div className=\"text-xs\">\n {run.runId ? (\n run.completedAt ? (\n <RelativeTime date={run.completedAt} />\n ) : (\n '-'\n )\n ) : (\n <Skeleton className=\"w-[110px] h-[20px]\" />\n )}\n </div>\n </div>\n {run.expiredAt != null && (\n <div className=\"flex flex-col gap-1\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"text-xs text-muted-foreground cursor-help flex items-center gap-1\">\n Expired\n <HelpCircle className=\"w-3 h-3\" />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>\n The storage data for this run has expired and is no\n longer available.\n </p>\n </TooltipContent>\n </Tooltip>\n <div className=\"text-xs\">\n <RelativeTime date={run.expiredAt} />\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n\n <div className=\"mt-4 flex-1 flex flex-col min-h-0\">\n <Tabs\n value={activeTab}\n onValueChange={(v) => setActiveTab(v as 'trace' | 'streams')}\n className=\"flex-1 flex flex-col min-h-0\"\n >\n <TabsList className=\"mb-4 flex-none\">\n <TabsTrigger value=\"trace\" className=\"gap-2\">\n <List className=\"h-4 w-4\" />\n Trace\n </TabsTrigger>\n <TabsTrigger value=\"streams\" className=\"gap-2\">\n <List className=\"h-4 w-4\" />\n Streams\n </TabsTrigger>\n {/* <TabsTrigger value=\"graph\" className=\"gap-2\">\n <Network className=\"h-4 w-4\" />\n Graph\n </TabsTrigger> */}\n </TabsList>\n\n <TabsContent value=\"trace\" className=\"mt-0 flex-1 min-h-0\">\n <div className=\"h-full\">\n <WorkflowTraceViewer\n error={error}\n steps={allSteps}\n events={allEvents}\n hooks={allHooks}\n env={env}\n run={run}\n isLoading={loading}\n onStreamClick={handleStreamClick}\n />\n </div>\n </TabsContent>\n\n <TabsContent value=\"streams\" className=\"mt-0 flex-1 min-h-0\">\n <div className=\"h-full flex gap-4\">\n {/* Stream list sidebar */}\n <div\n className=\"w-64 flex-shrink-0 border rounded-lg overflow-hidden\"\n style={{\n borderColor: 'var(--ds-gray-300)',\n backgroundColor: 'var(--ds-background-100)',\n }}\n >\n <div\n className=\"px-3 py-2 border-b text-xs font-medium\"\n style={{\n borderColor: 'var(--ds-gray-300)',\n color: 'var(--ds-gray-900)',\n }}\n >\n Streams ({streams.length})\n </div>\n <div className=\"overflow-auto max-h-[calc(100vh-400px)]\">\n {streamsLoading ? (\n <div className=\"p-4 flex items-center justify-center\">\n <Loader2 className=\"h-4 w-4 animate-spin text-muted-foreground\" />\n </div>\n ) : streamsError ? (\n <div className=\"p-4 text-xs text-destructive\">\n {streamsError.message}\n </div>\n ) : streams.length === 0 ? (\n <div\n className=\"p-4 text-xs\"\n style={{ color: 'var(--ds-gray-600)' }}\n >\n No streams found for this run\n </div>\n ) : (\n streams.map((streamId) => (\n <button\n key={streamId}\n type=\"button\"\n onClick={() => setSelectedStreamId(streamId)}\n className=\"w-full text-left px-3 py-2 text-xs font-mono truncate hover:bg-accent transition-colors\"\n style={{\n backgroundColor:\n selectedStreamId === streamId\n ? 'var(--ds-gray-200)'\n : 'transparent',\n color: 'var(--ds-gray-1000)',\n }}\n title={streamId}\n >\n {streamId}\n </button>\n ))\n )}\n </div>\n </div>\n\n {/* Stream viewer */}\n <div className=\"flex-1 min-w-0\">\n {selectedStreamId ? (\n <StreamViewer\n env={env}\n runId={runId}\n streamId={selectedStreamId}\n />\n ) : (\n <div\n className=\"h-full flex items-center justify-center rounded-lg border\"\n style={{\n borderColor: 'var(--ds-gray-300)',\n backgroundColor: 'var(--ds-gray-100)',\n }}\n >\n <div\n className=\"text-sm\"\n style={{ color: 'var(--ds-gray-600)' }}\n >\n {streams.length > 0\n ? 'Select a stream to view its data'\n : 'No streams available'}\n </div>\n </div>\n )}\n </div>\n </div>\n </TabsContent>\n\n {/* <TabsContent value=\"graph\" className=\"mt-0 flex-1 min-h-0\">\n <div className=\"h-full min-h-[500px]\">\n {graphLoading ? (\n <div className=\"flex items-center justify-center w-full h-full\">\n <Loader2 className=\"h-8 w-8 animate-spin text-muted-foreground\" />\n <span className=\"ml-4 text-muted-foreground\">\n Loading workflow graph...\n </span>\n </div>\n ) : graphError ? (\n <div className=\"flex items-center justify-center w-full h-full p-4\">\n <Alert variant=\"destructive\" className=\"max-w-lg\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertTitle>Error Loading Workflow Graph</AlertTitle>\n <AlertDescription>{graphError.message}</AlertDescription>\n </Alert>\n </div>\n ) : !workflowGraph ? (\n <div className=\"flex items-center justify-center w-full h-full\">\n <Alert className=\"max-w-lg\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertTitle>Workflow Graph Not Found</AlertTitle>\n <AlertDescription>\n Could not find the workflow graph for this run. The\n workflow may have been deleted or the graph manifest may\n need to be regenerated.\n </AlertDescription>\n </Alert>\n </div>\n ) : (\n <WorkflowGraphExecutionViewer\n workflow={workflowGraph}\n execution={execution || undefined}\n env={env}\n />\n )}\n </div>\n </TabsContent> */}\n </Tabs>\n\n {auxiliaryDataLoading && (\n <div className=\"fixed flex items-center gap-2 left-8 bottom-8 bg-background border rounded-md px-4 py-2 shadow-lg\">\n <Loader2 className=\"size-4 animate-spin\" />\n <span className=\"text-sm\">Fetching data...</span>\n </div>\n )}\n </div>\n </div>\n </>\n );\n}\n","'use client';\n\nimport { useParams } from 'next/navigation';\nimport { ErrorBoundary } from '@/components/error-boundary';\nimport { RunDetailView } from '@/components/run-detail-view';\nimport { useQueryParamConfig } from '@/lib/config';\nimport {\n useEventIdState,\n useHookIdState,\n useStepIdState,\n} from '@/lib/url-state';\n\nexport default function RunDetailPage() {\n const params = useParams();\n const config = useQueryParamConfig();\n const [stepId] = useStepIdState();\n const [eventId] = useEventIdState();\n const [hookId] = useHookIdState();\n\n const runId = params.runId as string;\n const selectedId = stepId || eventId || hookId || undefined;\n\n return (\n <ErrorBoundary\n title=\"Run Detail Error\"\n description=\"Failed to load run details. Please try navigating back to the home page.\"\n >\n <RunDetailView config={config} runId={runId} selectedId={selectedId} />\n </ErrorBoundary>\n );\n}\n","import { Slot } from '@radix-ui/react-slot';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\nimport type * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nfunction Breadcrumb({ ...props }: React.ComponentProps<'nav'>) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />;\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<'ol'>) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n 'text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn('inline-flex items-center gap-1.5', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbLink({\n asChild,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n data-slot=\"breadcrumb-link\"\n className={cn('hover:text-foreground transition-colors', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n // biome-ignore lint/a11y/useFocusableInteractive: <explanation>\n // biome-ignore lint/a11y/useSemanticElements: <explanation>\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('text-foreground font-normal', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('[&>svg]:size-3.5', className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex size-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","import { LIVE_UPDATE_INTERVAL_MS } from '@/lib/utils';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../ui/tooltip';\n\ninterface LiveStatusProps {\n hasError: boolean;\n errorMessage: string;\n}\n\nexport function LiveStatus({ hasError, errorMessage }: LiveStatusProps) {\n return (\n <div className=\"flex items-center gap-2\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"flex items-center gap-1.5\">\n <div\n className={`w-2 h-2 rounded-full ${\n hasError ? 'bg-red-500' : 'bg-green-500 animate-pulse'\n }`}\n />\n <span\n className={`text-xs $\n hasError\n ? 'text-red-600 dark:text-red-400'\n : 'text-muted-foreground'`}\n >\n {hasError ? 'Error' : 'Live'}\n </span>\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>\n {hasError\n ? `Error updating data: ${errorMessage}`\n : `Content updates every ${LIVE_UPDATE_INTERVAL_MS / 1000} seconds`}\n </p>\n </TooltipContent>\n </Tooltip>\n </div>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CircleHelp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMiIC8+CiAgPHBhdGggZD0iTTEyIDE3aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-help\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleHelp = createLucideIcon('CircleHelp', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3', key: '1u773s' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default CircleHelp;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name List\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTMgMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik0zIDZoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDEyaDEzIiAvPgogIDxwYXRoIGQ9Ik04IDE4aDEzIiAvPgogIDxwYXRoIGQ9Ik04IDZoMTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst List = createLucideIcon('List', [\n ['path', { d: 'M3 12h.01', key: 'nlz23k' }],\n ['path', { d: 'M3 18h.01', key: '1tta3j' }],\n ['path', { d: 'M3 6h.01', key: '1rqtza' }],\n ['path', { d: 'M8 12h13', key: '1za7za' }],\n ['path', { d: 'M8 18h13', key: '1lx6n3' }],\n ['path', { d: 'M8 6h13', key: 'ik3vkj' }],\n]);\n\nexport default List;\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContext, createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\nimport { Slot } from '@radix-ui/react-slot';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst DIALOG_NAME = 'Dialog';\n\ntype ScopedProps<P> = P & { __scopeDialog?: Scope };\nconst [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\n\ntype DialogContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement | null>;\n contentRef: React.RefObject<DialogContentElement | null>;\n contentId: string;\n titleId: string;\n descriptionId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n};\n\nconst [DialogProvider, useDialogContext] = createDialogContext<DialogContextValue>(DIALOG_NAME);\n\ninterface DialogProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n}\n\nconst Dialog: React.FC<DialogProps> = (props: ScopedProps<DialogProps>) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true,\n } = props;\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const contentRef = React.useRef<DialogContentElement>(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n <DialogProvider\n scope={__scopeDialog}\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(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n modal={modal}\n >\n {children}\n </DialogProvider>\n );\n};\n\nDialog.displayName = DIALOG_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DialogTrigger';\n\ntype DialogTriggerElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface DialogTriggerProps extends PrimitiveButtonProps {}\n\nconst DialogTrigger = React.forwardRef<DialogTriggerElement, 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 <Primitive.button\n type=\"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 onClick={composeEventHandlers(props.onClick, 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>(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface DialogPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\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 DialogPortal: React.FC<DialogPortalProps> = (props: ScopedProps<DialogPortalProps>) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return (\n <PortalProvider scope={__scopeDialog} forceMount={forceMount}>\n {React.Children.map(children, (child) => (\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {child}\n </PortalPrimitive>\n </Presence>\n ))}\n </PortalProvider>\n );\n};\n\nDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'DialogOverlay';\n\ntype DialogOverlayElement = DialogOverlayImplElement;\ninterface DialogOverlayProps extends DialogOverlayImplProps {\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<DialogOverlayElement, DialogOverlayProps>(\n (props: ScopedProps<DialogOverlayProps>, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? (\n <Presence present={forceMount || context.open}>\n <DialogOverlayImpl {...overlayProps} ref={forwardedRef} />\n </Presence>\n ) : null;\n }\n);\n\nDialogOverlay.displayName = OVERLAY_NAME;\n\ntype DialogOverlayImplElement = React.ElementRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface DialogOverlayImplProps extends PrimitiveDivProps {}\n\nconst DialogOverlayImpl = React.forwardRef<DialogOverlayImplElement, DialogOverlayImplProps>(\n (props: ScopedProps<DialogOverlayImplProps>, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\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 <RemoveScroll as={Slot} allowPinchZoom shards={[context.contentRef]}>\n <Primitive.div\n data-state={getState(context.open)}\n {...overlayProps}\n ref={forwardedRef}\n // We re-enable pointer-events prevented by `Dialog.Content` to allow scrolling the overlay.\n style={{ pointerEvents: 'auto', ...overlayProps.style }}\n />\n </RemoveScroll>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DialogContent';\n\ntype DialogContentElement = DialogContentTypeElement;\ninterface DialogContentProps extends DialogContentTypeProps {\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 = React.forwardRef<DialogContentElement, DialogContentProps>(\n (props: ScopedProps<DialogContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <DialogContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <DialogContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nDialogContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentTypeElement = DialogContentImplElement;\ninterface DialogContentTypeProps\n extends Omit<DialogContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {}\n\nconst DialogContentModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\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 React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n <DialogContentImpl\n {...props}\n ref={composedRefs}\n // we make sure focus isn't trapped once `DialogContent` has been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\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 // 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 );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst DialogContentNonModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = 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) context.triggerRef.current?.focus();\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 hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === 'pointerdown') {\n hasPointerDownOutsideRef.current = true;\n }\n }\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 const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (event.detail.originalEvent.type === 'focusin' && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentImplElement = React.ElementRef<typeof DismissableLayer>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype FocusScopeProps = React.ComponentPropsWithoutRef<typeof FocusScope>;\ninterface DialogContentImplProps extends Omit<DismissableLayerProps, '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\nconst DialogContentImpl = React.forwardRef<DialogContentImplElement, DialogContentImplProps>(\n (props: ScopedProps<DialogContentImplProps>, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n\n // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (because of the `Portal`)\n useFocusGuards();\n\n return (\n <>\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n role=\"dialog\"\n id={context.contentId}\n aria-describedby={context.descriptionId}\n aria-labelledby={context.titleId}\n data-state={getState(context.open)}\n {...contentProps}\n ref={composedRefs}\n onDismiss={() => context.onOpenChange(false)}\n />\n </FocusScope>\n {process.env.NODE_ENV !== 'production' && (\n <>\n <TitleWarning titleId={context.titleId} />\n <DescriptionWarning contentRef={contentRef} descriptionId={context.descriptionId} />\n </>\n )}\n </>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'DialogTitle';\n\ntype DialogTitleElement = React.ElementRef<typeof Primitive.h2>;\ntype PrimitiveHeading2Props = React.ComponentPropsWithoutRef<typeof Primitive.h2>;\ninterface DialogTitleProps extends PrimitiveHeading2Props {}\n\nconst DialogTitle = React.forwardRef<DialogTitleElement, DialogTitleProps>(\n (props: ScopedProps<DialogTitleProps>, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return <Primitive.h2 id={context.titleId} {...titleProps} ref={forwardedRef} />;\n }\n);\n\nDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'DialogDescription';\n\ntype DialogDescriptionElement = React.ElementRef<typeof Primitive.p>;\ntype PrimitiveParagraphProps = React.ComponentPropsWithoutRef<typeof Primitive.p>;\ninterface DialogDescriptionProps extends PrimitiveParagraphProps {}\n\nconst DialogDescription = React.forwardRef<DialogDescriptionElement, DialogDescriptionProps>(\n (props: ScopedProps<DialogDescriptionProps>, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return <Primitive.p id={context.descriptionId} {...descriptionProps} ref={forwardedRef} />;\n }\n);\n\nDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'DialogClose';\n\ntype DialogCloseElement = React.ElementRef<typeof Primitive.button>;\ninterface DialogCloseProps extends PrimitiveButtonProps {}\n\nconst DialogClose = React.forwardRef<DialogCloseElement, DialogCloseProps>(\n (props: ScopedProps<DialogCloseProps>, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\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 [WarningProvider, 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 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 (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n\n return null;\n};\n\nconst DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject<DialogContentElement | null>;\n descriptionId?: string;\n};\n\nconst DescriptionWarning: React.FC<DescriptionWarningProps> = ({ contentRef, descriptionId }) => {\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 const describedById = contentRef.current?.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) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n\n return null;\n};\n\nconst Root = Dialog;\nconst Trigger = DialogTrigger;\nconst Portal = DialogPortal;\nconst Overlay = DialogOverlay;\nconst Content = DialogContent;\nconst Title = DialogTitle;\nconst Description = DialogDescription;\nconst Close = DialogClose;\n\nexport {\n createDialogScope,\n //\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogContent,\n DialogTitle,\n DialogDescription,\n DialogClose,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Title,\n Description,\n Close,\n //\n WarningProvider,\n};\nexport type {\n DialogProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n","import * as React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { createDialogScope } from '@radix-ui/react-dialog';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { Slottable } from '@radix-ui/react-slot';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst ROOT_NAME = 'AlertDialog';\n\ntype ScopedProps<P> = P & { __scopeAlertDialog?: Scope };\nconst [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope,\n]);\nconst useDialogScope = createDialogScope();\n\ntype DialogProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Root>;\ninterface AlertDialogProps extends Omit<DialogProps, 'modal'> {}\n\nconst AlertDialog: React.FC<AlertDialogProps> = (props: ScopedProps<AlertDialogProps>) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Root {...dialogScope} {...alertDialogProps} modal={true} />;\n};\n\nAlertDialog.displayName = ROOT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogTrigger\n * -----------------------------------------------------------------------------------------------*/\nconst TRIGGER_NAME = 'AlertDialogTrigger';\n\ntype AlertDialogTriggerElement = React.ElementRef<typeof DialogPrimitive.Trigger>;\ntype DialogTriggerProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Trigger>;\ninterface AlertDialogTriggerProps extends DialogTriggerProps {}\n\nconst AlertDialogTrigger = React.forwardRef<AlertDialogTriggerElement, AlertDialogTriggerProps>(\n (props: ScopedProps<AlertDialogTriggerProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Trigger {...dialogScope} {...triggerProps} ref={forwardedRef} />;\n }\n);\n\nAlertDialogTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'AlertDialogPortal';\n\ntype DialogPortalProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Portal>;\ninterface AlertDialogPortalProps extends DialogPortalProps {}\n\nconst AlertDialogPortal: React.FC<AlertDialogPortalProps> = (\n props: ScopedProps<AlertDialogPortalProps>\n) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Portal {...dialogScope} {...portalProps} />;\n};\n\nAlertDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'AlertDialogOverlay';\n\ntype AlertDialogOverlayElement = React.ElementRef<typeof DialogPrimitive.Overlay>;\ntype DialogOverlayProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>;\ninterface AlertDialogOverlayProps extends DialogOverlayProps {}\n\nconst AlertDialogOverlay = React.forwardRef<AlertDialogOverlayElement, AlertDialogOverlayProps>(\n (props: ScopedProps<AlertDialogOverlayProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Overlay {...dialogScope} {...overlayProps} ref={forwardedRef} />;\n }\n);\n\nAlertDialogOverlay.displayName = OVERLAY_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'AlertDialogContent';\n\ntype AlertDialogContentContextValue = {\n cancelRef: React.MutableRefObject<AlertDialogCancelElement | null>;\n};\n\nconst [AlertDialogContentProvider, useAlertDialogContentContext] =\n createAlertDialogContext<AlertDialogContentContextValue>(CONTENT_NAME);\n\ntype AlertDialogContentElement = React.ElementRef<typeof DialogPrimitive.Content>;\ntype DialogContentProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>;\ninterface AlertDialogContentProps\n extends Omit<DialogContentProps, 'onPointerDownOutside' | 'onInteractOutside'> {}\n\nconst AlertDialogContent = React.forwardRef<AlertDialogContentElement, AlertDialogContentProps>(\n (props: ScopedProps<AlertDialogContentProps>, forwardedRef) => {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef<AlertDialogContentElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef<AlertDialogCancelElement | null>(null);\n\n return (\n <DialogPrimitive.WarningProvider\n contentName={CONTENT_NAME}\n titleName={TITLE_NAME}\n docsSlug=\"alert-dialog\"\n >\n <AlertDialogContentProvider scope={__scopeAlertDialog} cancelRef={cancelRef}>\n <DialogPrimitive.Content\n role=\"alertdialog\"\n {...dialogScope}\n {...contentProps}\n ref={composedRefs}\n onOpenAutoFocus={composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n })}\n onPointerDownOutside={(event) => event.preventDefault()}\n onInteractOutside={(event) => event.preventDefault()}\n >\n {/**\n * We have to use `Slottable` here as we cannot wrap the `AlertDialogContentProvider`\n * around everything, otherwise the `DescriptionWarning` would be rendered straight away.\n * This is because we want the accessibility checks to run only once the content is actually\n * open and that behaviour is already encapsulated in `DialogContent`.\n */}\n <Slottable>{children}</Slottable>\n {process.env.NODE_ENV === 'development' && (\n <DescriptionWarning contentRef={contentRef} />\n )}\n </DialogPrimitive.Content>\n </AlertDialogContentProvider>\n </DialogPrimitive.WarningProvider>\n );\n }\n);\n\nAlertDialogContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'AlertDialogTitle';\n\ntype AlertDialogTitleElement = React.ElementRef<typeof DialogPrimitive.Title>;\ntype DialogTitleProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>;\ninterface AlertDialogTitleProps extends DialogTitleProps {}\n\nconst AlertDialogTitle = React.forwardRef<AlertDialogTitleElement, AlertDialogTitleProps>(\n (props: ScopedProps<AlertDialogTitleProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Title {...dialogScope} {...titleProps} ref={forwardedRef} />;\n }\n);\n\nAlertDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'AlertDialogDescription';\n\ntype AlertDialogDescriptionElement = React.ElementRef<typeof DialogPrimitive.Description>;\ntype DialogDescriptionProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>;\ninterface AlertDialogDescriptionProps extends DialogDescriptionProps {}\n\nconst AlertDialogDescription = React.forwardRef<\n AlertDialogDescriptionElement,\n AlertDialogDescriptionProps\n>((props: ScopedProps<AlertDialogDescriptionProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Description {...dialogScope} {...descriptionProps} ref={forwardedRef} />;\n});\n\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogAction\n * -----------------------------------------------------------------------------------------------*/\n\nconst ACTION_NAME = 'AlertDialogAction';\n\ntype AlertDialogActionElement = React.ElementRef<typeof DialogPrimitive.Close>;\ntype DialogCloseProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Close>;\ninterface AlertDialogActionProps extends DialogCloseProps {}\n\nconst AlertDialogAction = React.forwardRef<AlertDialogActionElement, AlertDialogActionProps>(\n (props: ScopedProps<AlertDialogActionProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Close {...dialogScope} {...actionProps} ref={forwardedRef} />;\n }\n);\n\nAlertDialogAction.displayName = ACTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogCancel\n * -----------------------------------------------------------------------------------------------*/\n\nconst CANCEL_NAME = 'AlertDialogCancel';\n\ntype AlertDialogCancelElement = React.ElementRef<typeof DialogPrimitive.Close>;\ninterface AlertDialogCancelProps extends DialogCloseProps {}\n\nconst AlertDialogCancel = React.forwardRef<AlertDialogCancelElement, AlertDialogCancelProps>(\n (props: ScopedProps<AlertDialogCancelProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return <DialogPrimitive.Close {...dialogScope} {...cancelProps} ref={ref} />;\n }\n);\n\nAlertDialogCancel.displayName = CANCEL_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject<AlertDialogContentElement | null>;\n};\n\nconst DescriptionWarning: React.FC<DescriptionWarningProps> = ({ contentRef }) => {\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n\n React.useEffect(() => {\n const hasDescription = document.getElementById(\n contentRef.current?.getAttribute('aria-describedby')!\n );\n if (!hasDescription) console.warn(MESSAGE);\n }, [MESSAGE, contentRef]);\n\n return null;\n};\n\nconst Root = AlertDialog;\nconst Trigger = AlertDialogTrigger;\nconst Portal = AlertDialogPortal;\nconst Overlay = AlertDialogOverlay;\nconst Content = AlertDialogContent;\nconst Action = AlertDialogAction;\nconst Cancel = AlertDialogCancel;\nconst Title = AlertDialogTitle;\nconst Description = AlertDialogDescription;\n\nexport {\n createAlertDialogScope,\n //\n AlertDialog,\n AlertDialogTrigger,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogContent,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogTitle,\n AlertDialogDescription,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Action,\n Cancel,\n Title,\n Description,\n};\nexport type {\n AlertDialogProps,\n AlertDialogTriggerProps,\n AlertDialogPortalProps,\n AlertDialogOverlayProps,\n AlertDialogContentProps,\n AlertDialogActionProps,\n AlertDialogCancelProps,\n AlertDialogTitleProps,\n AlertDialogDescriptionProps,\n};\n","import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n/* -------------------------------------------------------------------------------------------------\n * Portal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'Portal';\n\ntype PortalElement = React.ElementRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface PortalProps extends PrimitiveDivProps {\n /**\n * An optional container where the portaled content should be appended.\n */\n container?: Element | DocumentFragment | null;\n}\n\nconst Portal = React.forwardRef<PortalElement, PortalProps>((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || (mounted && globalThis?.document?.body);\n return container\n ? ReactDOM.createPortal(<Primitive.div {...portalProps} ref={forwardedRef} />, container)\n : null;\n});\n\nPortal.displayName = PORTAL_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Portal;\n\nexport {\n Portal,\n //\n Root,\n};\nexport type { PortalProps };\n"],"names":[],"mappings":"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","ignoreList":[0,1,2,3,4,9,11,12,13,14,15]}
1
+ {"version":3,"sources":["../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-dismissable-layer%401.1.4_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40_8ae1d61ac10a80ba9d8ed6f21c6516b3/node_modules/%40radix-ui/react-dismissable-layer/dist/index.mjs","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-focus-scope%401.1.1_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types%2B_34e3df0d2ea684cd35e69acd9743ae93/node_modules/%40radix-ui/react-focus-scope/dist/index.mjs","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-portal%401.1.3_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types%2Breact_5fb27bb40c3888aea737cfd7dec4f395/node_modules/%40radix-ui/react-portal/dist/index.mjs","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-dialog%401.1.5_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types%2Breact_330d237330866b501ee374be87c8c3c2/node_modules/%40radix-ui/react-dialog/dist/index.mjs","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-alert-dialog%401.1.5_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types_81534ce1c0ac43993aad69431dd7630a/node_modules/%40radix-ui/react-alert-dialog/dist/index.mjs","../../../../../../packages/web/src/components/ui/alert-dialog.tsx","../../../../../../packages/web/src/components/run-detail-view.tsx","../../../../../../packages/web/src/app/run/%5BrunId%5D/page.tsx","../../../../../../packages/web/src/components/ui/breadcrumb.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-primitive%402.0.1_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types%2Bre_5cfe77f395f2bc73c3bc3594ad29bd9b/node_modules/%40radix-ui/react-primitive/dist/index.mjs","../../../../../../packages/web/src/components/display-utils/live-status.tsx","../../../../../../node_modules/.pnpm/lucide-react%400.469.0_react%4019.1.0/node_modules/lucide-react/src/icons/circle-help.ts","../../../../../../node_modules/.pnpm/lucide-react%400.469.0_react%4019.1.0/node_modules/lucide-react/src/icons/list.ts","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-dialog%401.1.5_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types%2Breact_330d237330866b501ee374be87c8c3c2/node_modules/%40radix-ui/react-dialog/src/Dialog.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-alert-dialog%401.1.5_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types_81534ce1c0ac43993aad69431dd7630a/node_modules/%40radix-ui/react-alert-dialog/src/AlertDialog.tsx","../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-portal%401.1.3_%40types%2Breact-dom%4019.1.9_%40types%2Breact%4019.1.13__%40types%2Breact_5fb27bb40c3888aea737cfd7dec4f395/node_modules/%40radix-ui/react-portal/src/Portal.tsx"],"sourcesContent":["\"use client\";\n\n// packages/react/dismissable-layer/src/DismissableLayer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/focus-scope/src/FocusScope.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n React.useEffect(() => {\n if (trapped) {\n let handleFocusIn2 = function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleFocusOut2 = function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleMutations2 = function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n };\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n return /* @__PURE__ */ jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });\n});\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nvar Root = FocusScope;\nexport {\n FocusScope,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/portal/src/Portal.tsx\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PORTAL_NAME = \"Portal\";\nvar Portal = React.forwardRef((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || mounted && globalThis?.document?.body;\n return container ? ReactDOM.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;\n});\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\nexport {\n Portal,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dialog/src/Dialog.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContext, createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { hideOthers } from \"aria-hidden\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(\n DialogProvider,\n {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: useId(),\n titleId: useId(),\n descriptionId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children\n }\n );\n};\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"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 onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children: child }) })) });\n};\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;\n }\n);\nDialogOverlay.displayName = OVERLAY_NAME;\nvar DialogOverlayImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\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 /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: { pointerEvents: \"auto\", ...overlayProps.style }\n }\n ) })\n );\n }\n);\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault()\n )\n }\n );\n }\n);\nvar DialogContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar DialogContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n useFocusGuards();\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: () => context.onOpenChange(false)\n }\n )\n }\n ),\n /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(TitleWarning, { titleId: context.titleId }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })\n ] })\n ] });\n }\n);\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });\n }\n);\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });\n }\n);\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\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 React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n return null;\n};\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n return null;\n};\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\nexport {\n Close,\n Content,\n Description,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n Overlay,\n Portal,\n Root,\n Title,\n Trigger,\n WarningProvider,\n createDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/alert-dialog/src/AlertDialog.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { createDialogScope } from \"@radix-ui/react-dialog\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Slottable } from \"@radix-ui/react-slot\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope\n]);\nvar useDialogScope = createDialogScope();\nvar AlertDialog = (props) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });\n};\nAlertDialog.displayName = ROOT_NAME;\nvar TRIGGER_NAME = \"AlertDialogTrigger\";\nvar AlertDialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });\n }\n);\nAlertDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"AlertDialogPortal\";\nvar AlertDialogPortal = (props) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });\n};\nAlertDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"AlertDialogOverlay\";\nvar AlertDialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { ...dialogScope, ...overlayProps, ref: forwardedRef });\n }\n);\nAlertDialogOverlay.displayName = OVERLAY_NAME;\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar AlertDialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef(null);\n return /* @__PURE__ */ jsx(\n DialogPrimitive.WarningProvider,\n {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"alert-dialog\",\n children: /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsxs(\n DialogPrimitive.Content,\n {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n }),\n onPointerDownOutside: (event) => event.preventDefault(),\n onInteractOutside: (event) => event.preventDefault(),\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef })\n ]\n }\n ) })\n }\n );\n }\n);\nAlertDialogContent.displayName = CONTENT_NAME;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Title, { ...dialogScope, ...titleProps, ref: forwardedRef });\n }\n);\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"AlertDialogDescription\";\nvar AlertDialogDescription = React.forwardRef((props, forwardedRef) => {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Description, { ...dialogScope, ...descriptionProps, ref: forwardedRef });\n});\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...actionProps, ref: forwardedRef });\n }\n);\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...cancelProps, ref });\n }\n);\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning = ({ contentRef }) => {\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n React.useEffect(() => {\n const hasDescription = document.getElementById(\n contentRef.current?.getAttribute(\"aria-describedby\")\n );\n if (!hasDescription) console.warn(MESSAGE);\n }, [MESSAGE, contentRef]);\n return null;\n};\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\nexport {\n Action,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n Cancel,\n Content2 as Content,\n Description2 as Description,\n Overlay2 as Overlay,\n Portal2 as Portal,\n Root2 as Root,\n Title2 as Title,\n Trigger2 as Trigger,\n createAlertDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';\nimport type * as React from 'react';\nimport { buttonVariants } from '@/components/ui/button';\nimport { cn } from '@/lib/utils';\n\nfunction AlertDialog({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction AlertDialogTrigger({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n );\n}\n\nfunction AlertDialogPortal({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return (\n <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n );\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogContent({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Content>) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg',\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n );\n}\n\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n 'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn('text-lg font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogAction({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Action>) {\n return (\n <AlertDialogPrimitive.Action\n className={cn(buttonVariants(), className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogCancel({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>) {\n return (\n <AlertDialogPrimitive.Cancel\n className={cn(buttonVariants({ variant: 'outline' }), className)}\n {...props}\n />\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\n","'use client';\n\nimport { parseWorkflowName } from '@workflow/core/parse-name';\nimport {\n cancelRun,\n recreateRun,\n StreamViewer,\n useWorkflowStreams,\n useWorkflowTraceViewerData,\n type WorkflowRun,\n WorkflowTraceViewer,\n} from '@workflow/web-shared';\nimport { AlertCircle, HelpCircle, List, Loader2 } from 'lucide-react';\nimport Link from 'next/link';\nimport { useRouter, useSearchParams } from 'next/navigation';\nimport { useCallback, useMemo, useState } from 'react';\nimport { toast } from 'sonner';\nimport { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '@/components/ui/alert-dialog';\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from '@/components/ui/breadcrumb';\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from '@/components/ui/tooltip';\nimport { buildUrlWithConfig, worldConfigToEnvMap } from '@/lib/config';\nimport type { WorldConfig } from '@/lib/config-world';\nimport { CopyableText } from './display-utils/copyable-text';\nimport { LiveStatus } from './display-utils/live-status';\nimport { RelativeTime } from './display-utils/relative-time';\nimport { StatusBadge } from './display-utils/status-badge';\nimport { RunActionsButtons } from './run-actions';\nimport { Skeleton } from './ui/skeleton';\n\ninterface RunDetailViewProps {\n config: WorldConfig;\n runId: string;\n selectedId?: string;\n}\n\nexport function RunDetailView({\n config,\n runId,\n // TODO: This should open the right sidebar within the trace viewer\n selectedId: _selectedId,\n}: RunDetailViewProps) {\n const router = useRouter();\n const searchParams = useSearchParams();\n const [cancelling, setCancelling] = useState(false);\n const [rerunning, setRerunning] = useState(false);\n const [showCancelDialog, setShowCancelDialog] = useState(false);\n const [showRerunDialog, setShowRerunDialog] = useState(false);\n const env = useMemo(() => worldConfigToEnvMap(config), [config]);\n\n // Read tab and streamId from URL search params\n const activeTab = (searchParams.get('tab') as 'trace' | 'streams') || 'trace';\n const selectedStreamId = searchParams.get('streamId');\n const showDebugActions = searchParams.get('debug') === '1';\n\n // Helper to update URL search params\n const updateSearchParams = useCallback(\n (updates: Record<string, string | null>) => {\n const params = new URLSearchParams(searchParams.toString());\n for (const [key, value] of Object.entries(updates)) {\n if (value === null) {\n params.delete(key);\n } else {\n params.set(key, value);\n }\n }\n router.push(`?${params.toString()}`, { scroll: false });\n },\n [router, searchParams]\n );\n\n const setActiveTab = useCallback(\n (tab: 'trace' | 'streams') => {\n // When switching to trace tab, clear streamId\n if (tab === 'trace') {\n updateSearchParams({ tab, streamId: null });\n } else {\n updateSearchParams({ tab });\n }\n },\n [updateSearchParams]\n );\n\n const setSelectedStreamId = useCallback(\n (streamId: string | null) => {\n updateSearchParams({ streamId });\n },\n [updateSearchParams]\n );\n\n // Handler for clicking on stream refs in the trace viewer\n const handleStreamClick = useCallback(\n (streamId: string) => {\n updateSearchParams({ tab: 'streams', streamId });\n },\n [updateSearchParams]\n );\n\n // Fetch workflow graph manifest\n // const {\n // manifest: graphManifest,\n // loading: graphLoading,\n // error: graphError,\n // } = useWorkflowGraphManifest(config);\n\n // Fetch all run data with live updates\n const {\n run: runData,\n steps: allSteps,\n hooks: allHooks,\n events: allEvents,\n loading,\n auxiliaryDataLoading,\n error,\n update,\n } = useWorkflowTraceViewerData(env, runId, { live: true });\n const run = runData ?? ({} as WorkflowRun);\n\n // Fetch streams for this run\n const {\n streams,\n loading: streamsLoading,\n error: streamsError,\n } = useWorkflowStreams(env, runId);\n\n // Find the workflow graph for this run\n // The manifest is keyed by workflowId which matches run.workflowName\n // e.g., \"workflow//example/workflows/1_simple.ts//simple\"\n // TODO(Karthik): Uncomment after https://github.com/vercel/workflow/pull/455 is merged\n // const workflowGraph = useMemo(() => {\n // if (!graphManifest || !run.workflowName) return null;\n // return graphManifest.workflows[run.workflowName] ?? null;\n // }, [graphManifest, run.workflowName]);\n\n // Map run data to execution overlay\n // TODO(Karthik): Uncomment after https://github.com/vercel/workflow/pull/455 is merged\n // const execution = useMemo(() => {\n // if (!workflowGraph || !run.runId) return null;\n\n // return mapRunToExecution(\n // run,\n // allSteps || [],\n // allEvents || [],\n // workflowGraph\n // );\n // }, [workflowGraph, run, allSteps, allEvents]);\n\n const handleCancelClick = () => {\n setShowCancelDialog(true);\n };\n\n const handleConfirmCancel = async () => {\n if (cancelling) return;\n\n try {\n setCancelling(true);\n setShowCancelDialog(false);\n await cancelRun(env, runId);\n // Trigger a refresh of the data\n await update();\n toast.success('Run cancelled successfully');\n } catch (err) {\n console.error('Failed to cancel run:', err);\n toast.error('Failed to cancel run', {\n description:\n err instanceof Error ? err.message : 'An unknown error occurred',\n });\n } finally {\n setCancelling(false);\n }\n };\n\n const handleRerunClick = () => {\n setShowRerunDialog(true);\n };\n\n const handleConfirmRerun = async () => {\n if (rerunning) return;\n\n try {\n setRerunning(true);\n setShowRerunDialog(false);\n // Start a new run with the same workflow and input arguments\n const newRunId = await recreateRun(env, run.runId);\n toast.success('New run started successfully', {\n description: `Run ID: ${newRunId}`,\n });\n // Navigate to the new run\n router.push(buildUrlWithConfig(`/run/${newRunId}`, config));\n } catch (err) {\n console.error('Failed to re-run workflow:', err);\n toast.error('Failed to start new run', {\n description:\n err instanceof Error ? err.message : 'An unknown error occurred',\n });\n } finally {\n setRerunning(false);\n setShowRerunDialog(false);\n }\n };\n\n if (error && !runData) {\n return (\n <Alert variant=\"destructive\" className=\"m-4\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertTitle>Error loading workflow run</AlertTitle>\n <AlertDescription>{error.message}</AlertDescription>\n </Alert>\n );\n }\n\n const workflowName = parseWorkflowName(run.workflowName)?.shortName;\n\n // At this point, we've already returned if there was an error\n // So hasError is always false here\n const hasError = false;\n const errorMessage = '';\n\n return (\n <>\n {/* Cancel Confirmation Dialog */}\n <AlertDialog open={showCancelDialog} onOpenChange={setShowCancelDialog}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Cancel Workflow Run?</AlertDialogTitle>\n <AlertDialogDescription>\n This will stop the workflow execution immediately, and no further\n steps will be executed. Partial workflow execution may occur. Are\n you sure you want to cancel the run?\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Keep Running</AlertDialogCancel>\n <AlertDialogAction\n onClick={handleConfirmCancel}\n className=\"bg-destructive text-destructive-foreground hover:bg-destructive/90\"\n >\n Cancel Run\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n\n {/* Replay Run Confirmation Dialog */}\n <AlertDialog open={showRerunDialog} onOpenChange={setShowRerunDialog}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Replay Run?</AlertDialogTitle>\n <AlertDialogDescription>\n This can potentially re-run code that is meant to only execute\n once. Are you sure you want to replay the workflow run?\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Cancel</AlertDialogCancel>\n <AlertDialogAction onClick={handleConfirmRerun}>\n Replay Run\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n\n <div className=\"flex flex-col h-[calc(100vh-97px)]\">\n <div className=\"flex-none space-y-4\">\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink asChild>\n <Link href={buildUrlWithConfig('/', config)}>Runs</Link>\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbPage className=\"font-mono text-xs\">\n {runId}\n </BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n\n {/* Run Overview Header */}\n <div className=\"space-y-4 p-6 border rounded-lg\">\n {/* Title Row */}\n <div className=\"flex items-start justify-between\">\n <div className=\"mb-4\">\n <h1 className=\"text-xl font-semibold\">\n {workflowName ? (\n workflowName\n ) : (\n <Skeleton className=\"w-[260px] h-[28px]\" />\n )}\n </h1>\n </div>\n\n <div className=\"flex items-center justify-between gap-2\">\n {/* Right side controls */}\n <LiveStatus hasError={hasError} errorMessage={errorMessage} />\n <RunActionsButtons\n env={env}\n runId={runId}\n runStatus={run.status}\n events={allEvents}\n eventsLoading={auxiliaryDataLoading}\n loading={loading}\n onRerunClick={handleRerunClick}\n onCancelClick={handleCancelClick}\n callbacks={{ onSuccess: update }}\n showDebugActions={showDebugActions}\n />\n </div>\n </div>\n\n {/* Status and Timeline Row */}\n <div className=\"flex items-start gap-8\">\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-xs text-muted-foreground\">Status</div>\n {run.status ? (\n <StatusBadge status={run.status} context={run} />\n ) : (\n <Skeleton className=\"w-[55px] h-[24px]\" />\n )}\n </div>\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-xs text-muted-foreground\">Duration</div>\n <div className=\"text-xs\">\n {run.runId ? (\n run.startedAt ? (\n (() => {\n const ms =\n (run.completedAt\n ? new Date(run.completedAt).getTime()\n : Date.now()) - new Date(run.startedAt).getTime();\n const seconds = Math.floor(ms / 1000);\n if (seconds < 60) return `${seconds}s`;\n const minutes = Math.floor(seconds / 60);\n const remainingSeconds = seconds % 60;\n if (minutes < 60) {\n return remainingSeconds > 0\n ? `${minutes}m ${remainingSeconds}s`\n : `${minutes}m`;\n }\n const hours = Math.floor(minutes / 60);\n const remainingMinutes = minutes % 60;\n return remainingMinutes > 0\n ? `${hours}h ${remainingMinutes}m`\n : `${hours}h`;\n })()\n ) : (\n '-'\n )\n ) : (\n <Skeleton className=\"w-[60px] h-[20px]\" />\n )}\n </div>\n </div>\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-xs text-muted-foreground\">Run ID</div>\n {run.runId ? (\n <CopyableText text={run.runId}>\n <div className=\"text-xs mt-0.5 font-mono\">{run.runId}</div>\n </CopyableText>\n ) : (\n <Skeleton className=\"w-[280px] h-[20px]\" />\n )}\n </div>\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-xs text-muted-foreground\">Queued</div>\n {run.createdAt ? (\n <div className=\"text-xs\">\n <RelativeTime date={run.createdAt} />\n </div>\n ) : (\n <Skeleton className=\"w-[110px] h-[20px]\" />\n )}\n </div>\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-xs text-muted-foreground\">Started</div>\n <div className=\"text-xs\">\n {run.runId ? (\n run.startedAt ? (\n <RelativeTime date={run.startedAt} />\n ) : (\n '-'\n )\n ) : (\n <Skeleton className=\"w-[110px] h-[20px]\" />\n )}\n </div>\n </div>\n <div className=\"flex flex-col gap-1\">\n <div className=\"text-xs text-muted-foreground\">Completed</div>\n <div className=\"text-xs\">\n {run.runId ? (\n run.completedAt ? (\n <RelativeTime date={run.completedAt} />\n ) : (\n '-'\n )\n ) : (\n <Skeleton className=\"w-[110px] h-[20px]\" />\n )}\n </div>\n </div>\n {run.expiredAt != null && (\n <div className=\"flex flex-col gap-1\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"text-xs text-muted-foreground cursor-help flex items-center gap-1\">\n Expired\n <HelpCircle className=\"w-3 h-3\" />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>\n The storage data for this run has expired and is no\n longer available.\n </p>\n </TooltipContent>\n </Tooltip>\n <div className=\"text-xs\">\n <RelativeTime date={run.expiredAt} />\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n\n <div className=\"mt-4 flex-1 flex flex-col min-h-0\">\n <Tabs\n value={activeTab}\n onValueChange={(v) => setActiveTab(v as 'trace' | 'streams')}\n className=\"flex-1 flex flex-col min-h-0\"\n >\n <TabsList className=\"mb-4 flex-none\">\n <TabsTrigger value=\"trace\" className=\"gap-2\">\n <List className=\"h-4 w-4\" />\n Trace\n </TabsTrigger>\n <TabsTrigger value=\"streams\" className=\"gap-2\">\n <List className=\"h-4 w-4\" />\n Streams\n </TabsTrigger>\n {/* <TabsTrigger value=\"graph\" className=\"gap-2\">\n <Network className=\"h-4 w-4\" />\n Graph\n </TabsTrigger> */}\n </TabsList>\n\n <TabsContent value=\"trace\" className=\"mt-0 flex-1 min-h-0\">\n <div className=\"h-full\">\n <WorkflowTraceViewer\n error={error}\n steps={allSteps}\n events={allEvents}\n hooks={allHooks}\n env={env}\n run={run}\n isLoading={loading}\n onStreamClick={handleStreamClick}\n />\n </div>\n </TabsContent>\n\n <TabsContent value=\"streams\" className=\"mt-0 flex-1 min-h-0\">\n <div className=\"h-full flex gap-4\">\n {/* Stream list sidebar */}\n <div\n className=\"w-64 flex-shrink-0 border rounded-lg overflow-hidden\"\n style={{\n borderColor: 'var(--ds-gray-300)',\n backgroundColor: 'var(--ds-background-100)',\n }}\n >\n <div\n className=\"px-3 py-2 border-b text-xs font-medium\"\n style={{\n borderColor: 'var(--ds-gray-300)',\n color: 'var(--ds-gray-900)',\n }}\n >\n Streams ({streams.length})\n </div>\n <div className=\"overflow-auto max-h-[calc(100vh-400px)]\">\n {streamsLoading ? (\n <div className=\"p-4 flex items-center justify-center\">\n <Loader2 className=\"h-4 w-4 animate-spin text-muted-foreground\" />\n </div>\n ) : streamsError ? (\n <div className=\"p-4 text-xs text-destructive\">\n {streamsError.message}\n </div>\n ) : streams.length === 0 ? (\n <div\n className=\"p-4 text-xs\"\n style={{ color: 'var(--ds-gray-600)' }}\n >\n No streams found for this run\n </div>\n ) : (\n streams.map((streamId) => (\n <button\n key={streamId}\n type=\"button\"\n onClick={() => setSelectedStreamId(streamId)}\n className=\"w-full text-left px-3 py-2 text-xs font-mono truncate hover:bg-accent transition-colors\"\n style={{\n backgroundColor:\n selectedStreamId === streamId\n ? 'var(--ds-gray-200)'\n : 'transparent',\n color: 'var(--ds-gray-1000)',\n }}\n title={streamId}\n >\n {streamId}\n </button>\n ))\n )}\n </div>\n </div>\n\n {/* Stream viewer */}\n <div className=\"flex-1 min-w-0\">\n {selectedStreamId ? (\n <StreamViewer env={env} streamId={selectedStreamId} />\n ) : (\n <div\n className=\"h-full flex items-center justify-center rounded-lg border\"\n style={{\n borderColor: 'var(--ds-gray-300)',\n backgroundColor: 'var(--ds-gray-100)',\n }}\n >\n <div\n className=\"text-sm\"\n style={{ color: 'var(--ds-gray-600)' }}\n >\n {streams.length > 0\n ? 'Select a stream to view its data'\n : 'No streams available'}\n </div>\n </div>\n )}\n </div>\n </div>\n </TabsContent>\n\n {/* <TabsContent value=\"graph\" className=\"mt-0 flex-1 min-h-0\">\n <div className=\"h-full min-h-[500px]\">\n {graphLoading ? (\n <div className=\"flex items-center justify-center w-full h-full\">\n <Loader2 className=\"h-8 w-8 animate-spin text-muted-foreground\" />\n <span className=\"ml-4 text-muted-foreground\">\n Loading workflow graph...\n </span>\n </div>\n ) : graphError ? (\n <div className=\"flex items-center justify-center w-full h-full p-4\">\n <Alert variant=\"destructive\" className=\"max-w-lg\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertTitle>Error Loading Workflow Graph</AlertTitle>\n <AlertDescription>{graphError.message}</AlertDescription>\n </Alert>\n </div>\n ) : !workflowGraph ? (\n <div className=\"flex items-center justify-center w-full h-full\">\n <Alert className=\"max-w-lg\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertTitle>Workflow Graph Not Found</AlertTitle>\n <AlertDescription>\n Could not find the workflow graph for this run. The\n workflow may have been deleted or the graph manifest may\n need to be regenerated.\n </AlertDescription>\n </Alert>\n </div>\n ) : (\n <WorkflowGraphExecutionViewer\n workflow={workflowGraph}\n execution={execution || undefined}\n env={env}\n />\n )}\n </div>\n </TabsContent> */}\n </Tabs>\n\n {auxiliaryDataLoading && (\n <div className=\"fixed flex items-center gap-2 left-8 bottom-8 bg-background border rounded-md px-4 py-2 shadow-lg\">\n <Loader2 className=\"size-4 animate-spin\" />\n <span className=\"text-sm\">Fetching data...</span>\n </div>\n )}\n </div>\n </div>\n </>\n );\n}\n","'use client';\n\nimport { useParams } from 'next/navigation';\nimport { ErrorBoundary } from '@/components/error-boundary';\nimport { RunDetailView } from '@/components/run-detail-view';\nimport { useQueryParamConfig } from '@/lib/config';\nimport {\n useEventIdState,\n useHookIdState,\n useStepIdState,\n} from '@/lib/url-state';\n\nexport default function RunDetailPage() {\n const params = useParams();\n const config = useQueryParamConfig();\n const [stepId] = useStepIdState();\n const [eventId] = useEventIdState();\n const [hookId] = useHookIdState();\n\n const runId = params.runId as string;\n const selectedId = stepId || eventId || hookId || undefined;\n\n return (\n <ErrorBoundary\n title=\"Run Detail Error\"\n description=\"Failed to load run details. Please try navigating back to the home page.\"\n >\n <RunDetailView config={config} runId={runId} selectedId={selectedId} />\n </ErrorBoundary>\n );\n}\n","import { Slot } from '@radix-ui/react-slot';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\nimport type * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nfunction Breadcrumb({ ...props }: React.ComponentProps<'nav'>) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />;\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<'ol'>) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n 'text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn('inline-flex items-center gap-1.5', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbLink({\n asChild,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n data-slot=\"breadcrumb-link\"\n className={cn('hover:text-foreground transition-colors', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n // biome-ignore lint/a11y/useFocusableInteractive: <explanation>\n // biome-ignore lint/a11y/useSemanticElements: <explanation>\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('text-foreground font-normal', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('[&>svg]:size-3.5', className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex size-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","import { LIVE_UPDATE_INTERVAL_MS } from '@/lib/utils';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../ui/tooltip';\n\ninterface LiveStatusProps {\n hasError: boolean;\n errorMessage: string;\n}\n\nexport function LiveStatus({ hasError, errorMessage }: LiveStatusProps) {\n return (\n <div className=\"flex items-center gap-2\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"flex items-center gap-1.5\">\n <div\n className={`w-2 h-2 rounded-full ${\n hasError ? 'bg-red-500' : 'bg-green-500 animate-pulse'\n }`}\n />\n <span\n className={`text-xs $\n hasError\n ? 'text-red-600 dark:text-red-400'\n : 'text-muted-foreground'`}\n >\n {hasError ? 'Error' : 'Live'}\n </span>\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>\n {hasError\n ? `Error updating data: ${errorMessage}`\n : `Content updates every ${LIVE_UPDATE_INTERVAL_MS / 1000} seconds`}\n </p>\n </TooltipContent>\n </Tooltip>\n </div>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CircleHelp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMiIC8+CiAgPHBhdGggZD0iTTEyIDE3aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-help\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleHelp = createLucideIcon('CircleHelp', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3', key: '1u773s' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default CircleHelp;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name List\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTMgMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik0zIDZoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDEyaDEzIiAvPgogIDxwYXRoIGQ9Ik04IDE4aDEzIiAvPgogIDxwYXRoIGQ9Ik04IDZoMTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst List = createLucideIcon('List', [\n ['path', { d: 'M3 12h.01', key: 'nlz23k' }],\n ['path', { d: 'M3 18h.01', key: '1tta3j' }],\n ['path', { d: 'M3 6h.01', key: '1rqtza' }],\n ['path', { d: 'M8 12h13', key: '1za7za' }],\n ['path', { d: 'M8 18h13', key: '1lx6n3' }],\n ['path', { d: 'M8 6h13', key: 'ik3vkj' }],\n]);\n\nexport default List;\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContext, createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\nimport { Slot } from '@radix-ui/react-slot';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst DIALOG_NAME = 'Dialog';\n\ntype ScopedProps<P> = P & { __scopeDialog?: Scope };\nconst [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\n\ntype DialogContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement | null>;\n contentRef: React.RefObject<DialogContentElement | null>;\n contentId: string;\n titleId: string;\n descriptionId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n};\n\nconst [DialogProvider, useDialogContext] = createDialogContext<DialogContextValue>(DIALOG_NAME);\n\ninterface DialogProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n}\n\nconst Dialog: React.FC<DialogProps> = (props: ScopedProps<DialogProps>) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true,\n } = props;\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const contentRef = React.useRef<DialogContentElement>(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n <DialogProvider\n scope={__scopeDialog}\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(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n modal={modal}\n >\n {children}\n </DialogProvider>\n );\n};\n\nDialog.displayName = DIALOG_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DialogTrigger';\n\ntype DialogTriggerElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface DialogTriggerProps extends PrimitiveButtonProps {}\n\nconst DialogTrigger = React.forwardRef<DialogTriggerElement, 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 <Primitive.button\n type=\"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 onClick={composeEventHandlers(props.onClick, 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>(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface DialogPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\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 DialogPortal: React.FC<DialogPortalProps> = (props: ScopedProps<DialogPortalProps>) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return (\n <PortalProvider scope={__scopeDialog} forceMount={forceMount}>\n {React.Children.map(children, (child) => (\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {child}\n </PortalPrimitive>\n </Presence>\n ))}\n </PortalProvider>\n );\n};\n\nDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'DialogOverlay';\n\ntype DialogOverlayElement = DialogOverlayImplElement;\ninterface DialogOverlayProps extends DialogOverlayImplProps {\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<DialogOverlayElement, DialogOverlayProps>(\n (props: ScopedProps<DialogOverlayProps>, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? (\n <Presence present={forceMount || context.open}>\n <DialogOverlayImpl {...overlayProps} ref={forwardedRef} />\n </Presence>\n ) : null;\n }\n);\n\nDialogOverlay.displayName = OVERLAY_NAME;\n\ntype DialogOverlayImplElement = React.ElementRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface DialogOverlayImplProps extends PrimitiveDivProps {}\n\nconst DialogOverlayImpl = React.forwardRef<DialogOverlayImplElement, DialogOverlayImplProps>(\n (props: ScopedProps<DialogOverlayImplProps>, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\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 <RemoveScroll as={Slot} allowPinchZoom shards={[context.contentRef]}>\n <Primitive.div\n data-state={getState(context.open)}\n {...overlayProps}\n ref={forwardedRef}\n // We re-enable pointer-events prevented by `Dialog.Content` to allow scrolling the overlay.\n style={{ pointerEvents: 'auto', ...overlayProps.style }}\n />\n </RemoveScroll>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DialogContent';\n\ntype DialogContentElement = DialogContentTypeElement;\ninterface DialogContentProps extends DialogContentTypeProps {\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 = React.forwardRef<DialogContentElement, DialogContentProps>(\n (props: ScopedProps<DialogContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <DialogContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <DialogContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nDialogContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentTypeElement = DialogContentImplElement;\ninterface DialogContentTypeProps\n extends Omit<DialogContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {}\n\nconst DialogContentModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\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 React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n <DialogContentImpl\n {...props}\n ref={composedRefs}\n // we make sure focus isn't trapped once `DialogContent` has been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\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 // 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 );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst DialogContentNonModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = 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) context.triggerRef.current?.focus();\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 hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === 'pointerdown') {\n hasPointerDownOutsideRef.current = true;\n }\n }\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 const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (event.detail.originalEvent.type === 'focusin' && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentImplElement = React.ElementRef<typeof DismissableLayer>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype FocusScopeProps = React.ComponentPropsWithoutRef<typeof FocusScope>;\ninterface DialogContentImplProps extends Omit<DismissableLayerProps, '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\nconst DialogContentImpl = React.forwardRef<DialogContentImplElement, DialogContentImplProps>(\n (props: ScopedProps<DialogContentImplProps>, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n\n // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (because of the `Portal`)\n useFocusGuards();\n\n return (\n <>\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n role=\"dialog\"\n id={context.contentId}\n aria-describedby={context.descriptionId}\n aria-labelledby={context.titleId}\n data-state={getState(context.open)}\n {...contentProps}\n ref={composedRefs}\n onDismiss={() => context.onOpenChange(false)}\n />\n </FocusScope>\n {process.env.NODE_ENV !== 'production' && (\n <>\n <TitleWarning titleId={context.titleId} />\n <DescriptionWarning contentRef={contentRef} descriptionId={context.descriptionId} />\n </>\n )}\n </>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'DialogTitle';\n\ntype DialogTitleElement = React.ElementRef<typeof Primitive.h2>;\ntype PrimitiveHeading2Props = React.ComponentPropsWithoutRef<typeof Primitive.h2>;\ninterface DialogTitleProps extends PrimitiveHeading2Props {}\n\nconst DialogTitle = React.forwardRef<DialogTitleElement, DialogTitleProps>(\n (props: ScopedProps<DialogTitleProps>, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return <Primitive.h2 id={context.titleId} {...titleProps} ref={forwardedRef} />;\n }\n);\n\nDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'DialogDescription';\n\ntype DialogDescriptionElement = React.ElementRef<typeof Primitive.p>;\ntype PrimitiveParagraphProps = React.ComponentPropsWithoutRef<typeof Primitive.p>;\ninterface DialogDescriptionProps extends PrimitiveParagraphProps {}\n\nconst DialogDescription = React.forwardRef<DialogDescriptionElement, DialogDescriptionProps>(\n (props: ScopedProps<DialogDescriptionProps>, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return <Primitive.p id={context.descriptionId} {...descriptionProps} ref={forwardedRef} />;\n }\n);\n\nDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'DialogClose';\n\ntype DialogCloseElement = React.ElementRef<typeof Primitive.button>;\ninterface DialogCloseProps extends PrimitiveButtonProps {}\n\nconst DialogClose = React.forwardRef<DialogCloseElement, DialogCloseProps>(\n (props: ScopedProps<DialogCloseProps>, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\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 [WarningProvider, 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 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 (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n\n return null;\n};\n\nconst DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject<DialogContentElement | null>;\n descriptionId?: string;\n};\n\nconst DescriptionWarning: React.FC<DescriptionWarningProps> = ({ contentRef, descriptionId }) => {\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 const describedById = contentRef.current?.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) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n\n return null;\n};\n\nconst Root = Dialog;\nconst Trigger = DialogTrigger;\nconst Portal = DialogPortal;\nconst Overlay = DialogOverlay;\nconst Content = DialogContent;\nconst Title = DialogTitle;\nconst Description = DialogDescription;\nconst Close = DialogClose;\n\nexport {\n createDialogScope,\n //\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogContent,\n DialogTitle,\n DialogDescription,\n DialogClose,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Title,\n Description,\n Close,\n //\n WarningProvider,\n};\nexport type {\n DialogProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n","import * as React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { createDialogScope } from '@radix-ui/react-dialog';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { Slottable } from '@radix-ui/react-slot';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst ROOT_NAME = 'AlertDialog';\n\ntype ScopedProps<P> = P & { __scopeAlertDialog?: Scope };\nconst [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope,\n]);\nconst useDialogScope = createDialogScope();\n\ntype DialogProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Root>;\ninterface AlertDialogProps extends Omit<DialogProps, 'modal'> {}\n\nconst AlertDialog: React.FC<AlertDialogProps> = (props: ScopedProps<AlertDialogProps>) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Root {...dialogScope} {...alertDialogProps} modal={true} />;\n};\n\nAlertDialog.displayName = ROOT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogTrigger\n * -----------------------------------------------------------------------------------------------*/\nconst TRIGGER_NAME = 'AlertDialogTrigger';\n\ntype AlertDialogTriggerElement = React.ElementRef<typeof DialogPrimitive.Trigger>;\ntype DialogTriggerProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Trigger>;\ninterface AlertDialogTriggerProps extends DialogTriggerProps {}\n\nconst AlertDialogTrigger = React.forwardRef<AlertDialogTriggerElement, AlertDialogTriggerProps>(\n (props: ScopedProps<AlertDialogTriggerProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Trigger {...dialogScope} {...triggerProps} ref={forwardedRef} />;\n }\n);\n\nAlertDialogTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'AlertDialogPortal';\n\ntype DialogPortalProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Portal>;\ninterface AlertDialogPortalProps extends DialogPortalProps {}\n\nconst AlertDialogPortal: React.FC<AlertDialogPortalProps> = (\n props: ScopedProps<AlertDialogPortalProps>\n) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Portal {...dialogScope} {...portalProps} />;\n};\n\nAlertDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'AlertDialogOverlay';\n\ntype AlertDialogOverlayElement = React.ElementRef<typeof DialogPrimitive.Overlay>;\ntype DialogOverlayProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>;\ninterface AlertDialogOverlayProps extends DialogOverlayProps {}\n\nconst AlertDialogOverlay = React.forwardRef<AlertDialogOverlayElement, AlertDialogOverlayProps>(\n (props: ScopedProps<AlertDialogOverlayProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Overlay {...dialogScope} {...overlayProps} ref={forwardedRef} />;\n }\n);\n\nAlertDialogOverlay.displayName = OVERLAY_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'AlertDialogContent';\n\ntype AlertDialogContentContextValue = {\n cancelRef: React.MutableRefObject<AlertDialogCancelElement | null>;\n};\n\nconst [AlertDialogContentProvider, useAlertDialogContentContext] =\n createAlertDialogContext<AlertDialogContentContextValue>(CONTENT_NAME);\n\ntype AlertDialogContentElement = React.ElementRef<typeof DialogPrimitive.Content>;\ntype DialogContentProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>;\ninterface AlertDialogContentProps\n extends Omit<DialogContentProps, 'onPointerDownOutside' | 'onInteractOutside'> {}\n\nconst AlertDialogContent = React.forwardRef<AlertDialogContentElement, AlertDialogContentProps>(\n (props: ScopedProps<AlertDialogContentProps>, forwardedRef) => {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef<AlertDialogContentElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef<AlertDialogCancelElement | null>(null);\n\n return (\n <DialogPrimitive.WarningProvider\n contentName={CONTENT_NAME}\n titleName={TITLE_NAME}\n docsSlug=\"alert-dialog\"\n >\n <AlertDialogContentProvider scope={__scopeAlertDialog} cancelRef={cancelRef}>\n <DialogPrimitive.Content\n role=\"alertdialog\"\n {...dialogScope}\n {...contentProps}\n ref={composedRefs}\n onOpenAutoFocus={composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n })}\n onPointerDownOutside={(event) => event.preventDefault()}\n onInteractOutside={(event) => event.preventDefault()}\n >\n {/**\n * We have to use `Slottable` here as we cannot wrap the `AlertDialogContentProvider`\n * around everything, otherwise the `DescriptionWarning` would be rendered straight away.\n * This is because we want the accessibility checks to run only once the content is actually\n * open and that behaviour is already encapsulated in `DialogContent`.\n */}\n <Slottable>{children}</Slottable>\n {process.env.NODE_ENV === 'development' && (\n <DescriptionWarning contentRef={contentRef} />\n )}\n </DialogPrimitive.Content>\n </AlertDialogContentProvider>\n </DialogPrimitive.WarningProvider>\n );\n }\n);\n\nAlertDialogContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'AlertDialogTitle';\n\ntype AlertDialogTitleElement = React.ElementRef<typeof DialogPrimitive.Title>;\ntype DialogTitleProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>;\ninterface AlertDialogTitleProps extends DialogTitleProps {}\n\nconst AlertDialogTitle = React.forwardRef<AlertDialogTitleElement, AlertDialogTitleProps>(\n (props: ScopedProps<AlertDialogTitleProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Title {...dialogScope} {...titleProps} ref={forwardedRef} />;\n }\n);\n\nAlertDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'AlertDialogDescription';\n\ntype AlertDialogDescriptionElement = React.ElementRef<typeof DialogPrimitive.Description>;\ntype DialogDescriptionProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>;\ninterface AlertDialogDescriptionProps extends DialogDescriptionProps {}\n\nconst AlertDialogDescription = React.forwardRef<\n AlertDialogDescriptionElement,\n AlertDialogDescriptionProps\n>((props: ScopedProps<AlertDialogDescriptionProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Description {...dialogScope} {...descriptionProps} ref={forwardedRef} />;\n});\n\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogAction\n * -----------------------------------------------------------------------------------------------*/\n\nconst ACTION_NAME = 'AlertDialogAction';\n\ntype AlertDialogActionElement = React.ElementRef<typeof DialogPrimitive.Close>;\ntype DialogCloseProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Close>;\ninterface AlertDialogActionProps extends DialogCloseProps {}\n\nconst AlertDialogAction = React.forwardRef<AlertDialogActionElement, AlertDialogActionProps>(\n (props: ScopedProps<AlertDialogActionProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Close {...dialogScope} {...actionProps} ref={forwardedRef} />;\n }\n);\n\nAlertDialogAction.displayName = ACTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogCancel\n * -----------------------------------------------------------------------------------------------*/\n\nconst CANCEL_NAME = 'AlertDialogCancel';\n\ntype AlertDialogCancelElement = React.ElementRef<typeof DialogPrimitive.Close>;\ninterface AlertDialogCancelProps extends DialogCloseProps {}\n\nconst AlertDialogCancel = React.forwardRef<AlertDialogCancelElement, AlertDialogCancelProps>(\n (props: ScopedProps<AlertDialogCancelProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return <DialogPrimitive.Close {...dialogScope} {...cancelProps} ref={ref} />;\n }\n);\n\nAlertDialogCancel.displayName = CANCEL_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject<AlertDialogContentElement | null>;\n};\n\nconst DescriptionWarning: React.FC<DescriptionWarningProps> = ({ contentRef }) => {\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n\n React.useEffect(() => {\n const hasDescription = document.getElementById(\n contentRef.current?.getAttribute('aria-describedby')!\n );\n if (!hasDescription) console.warn(MESSAGE);\n }, [MESSAGE, contentRef]);\n\n return null;\n};\n\nconst Root = AlertDialog;\nconst Trigger = AlertDialogTrigger;\nconst Portal = AlertDialogPortal;\nconst Overlay = AlertDialogOverlay;\nconst Content = AlertDialogContent;\nconst Action = AlertDialogAction;\nconst Cancel = AlertDialogCancel;\nconst Title = AlertDialogTitle;\nconst Description = AlertDialogDescription;\n\nexport {\n createAlertDialogScope,\n //\n AlertDialog,\n AlertDialogTrigger,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogContent,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogTitle,\n AlertDialogDescription,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Action,\n Cancel,\n Title,\n Description,\n};\nexport type {\n AlertDialogProps,\n AlertDialogTriggerProps,\n AlertDialogPortalProps,\n AlertDialogOverlayProps,\n AlertDialogContentProps,\n AlertDialogActionProps,\n AlertDialogCancelProps,\n AlertDialogTitleProps,\n AlertDialogDescriptionProps,\n};\n","import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n/* -------------------------------------------------------------------------------------------------\n * Portal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'Portal';\n\ntype PortalElement = React.ElementRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface PortalProps extends PrimitiveDivProps {\n /**\n * An optional container where the portaled content should be appended.\n */\n container?: Element | DocumentFragment | null;\n}\n\nconst Portal = React.forwardRef<PortalElement, PortalProps>((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || (mounted && globalThis?.document?.body);\n return container\n ? ReactDOM.createPortal(<Primitive.div {...portalProps} ref={forwardedRef} />, container)\n : null;\n});\n\nPortal.displayName = PORTAL_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Portal;\n\nexport {\n Portal,\n //\n Root,\n};\nexport type { PortalProps };\n"],"names":[],"mappings":"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","ignoreList":[0,1,2,3,4,9,11,12,13,14,15]}