{"mappings":"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","sources":["packages/@react-spectrum/ai/src/ResponseStatus.tsx"],"sourcesContent":["/*\n * Copyright 2026 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps, DOMRef, GlobalDOMAttributes} from '@react-types/shared';\nimport {\n  baseColor,\n  focusRing,\n  iconStyle,\n  space,\n  style\n} from '@react-spectrum/s2/style' with {type: 'macro'};\nimport {Button} from 'react-aria-components/Button';\nimport {CenterBaseline} from '@react-spectrum/s2/CenterBaseline';\nimport CheckmarkCircle from '@react-spectrum/s2/icons/CheckmarkCircle';\nimport Chevron from '../ui-icons/Chevron';\nimport CloseCircle from '@react-spectrum/s2/icons/CloseCircle';\nimport {\n  DisclosureStateContext,\n  Disclosure as RACDisclosure,\n  DisclosurePanel as RACDisclosurePanel,\n  DisclosurePanelProps as RACDisclosurePanelProps,\n  DisclosureProps as RACDisclosureProps\n} from 'react-aria-components/Disclosure';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {Heading} from 'react-aria-components/Heading';\nimport {IconContext} from '@react-spectrum/s2/Icon';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {mergeStyles} from '@react-spectrum/s2/mergeStyles';\nimport {ProgressCircle} from '@react-spectrum/s2/ProgressCircle';\nimport {Provider} from 'react-aria-components/slots';\nimport React, {\n  createContext,\n  forwardRef,\n  ReactNode,\n  useCallback,\n  useContext,\n  useState\n} from 'react';\nimport {StyleString} from '@react-spectrum/s2/style' with {type: 'macro'};\nimport {useDOMRef} from './useDOMRef';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useLocale} from 'react-aria/I18nProvider';\nimport {useLocalizedStringFormatter} from 'react-aria/useLocalizedStringFormatter';\n\nexport interface ResponseStatusProps extends Omit<\n  RACDisclosureProps,\n  'className' | 'style' | 'render' | 'children' | keyof GlobalDOMAttributes\n> {\n  /**\n   * The current status of the response.\n   *\n   * @default 'loading'\n   */\n  status?: 'loading' | 'failed' | 'success';\n  /**\n   * The contents of the response status, consisting of a ResponseStatusTitle and\n   * ResponseStatusPanel.\n   */\n  children: ReactNode;\n  /**\n   * Spectrum-defined styles, returned by the `style()` macro.\n   */\n  styles?: StyleString;\n}\n\nconst ResponseStatusContext = createContext<{\n  status: 'loading' | 'failed' | 'success';\n  hasPanelContent: boolean;\n  registerPanel: (mounted: boolean) => void;\n}>({\n  status: 'loading',\n  hasPanelContent: false,\n  registerPanel: () => {}\n});\n\nconst responseStatus = style({\n  color: 'heading',\n  minWidth: 200\n});\n\n/**\n * A ResponseStatus indicates the progress of a system response while it is being generated and when\n * it is complete. If a ResponseStatusPanel is provided, the title can be pressed to expand and\n * collapse it.\n */\nexport const ResponseStatus = forwardRef(function ResponseStatus(\n  props: ResponseStatusProps,\n  ref: DOMRef<HTMLDivElement>\n) {\n  let {status = 'loading', styles} = props;\n  let domRef = useDOMRef(ref);\n  let [hasPanelContent, setHasPanelContent] = useState(false);\n  let registerPanel = useCallback((mounted: boolean) => setHasPanelContent(mounted), []);\n\n  let disclosureProps: Partial<RACDisclosureProps> = {};\n  if (status === 'loading') {\n    disclosureProps.isExpanded = false;\n    disclosureProps.onExpandedChange = () => {};\n  }\n\n  return (\n    <Provider values={[[ResponseStatusContext, {status, hasPanelContent, registerPanel}]]}>\n      <RACDisclosure\n        {...props}\n        {...disclosureProps}\n        ref={domRef}\n        className={mergeStyles(responseStatus, styles)}>\n        {props.children}\n      </RACDisclosure>\n    </Provider>\n  );\n});\n\nexport interface ResponseStatusTitleProps extends DOMProps {\n  /**\n   * The heading level of the response status header.\n   *\n   * @default 3\n   */\n  level?: number;\n  /** The contents of the response status header. */\n  children: React.ReactNode;\n  /**\n   * Spectrum-defined styles, returned by the `style()` macro.\n   */\n  styles?: StyleString;\n}\n\nconst headingStyle = style({\n  margin: 0,\n  flexGrow: 1,\n  display: 'flex',\n  flexShrink: 1,\n  minWidth: 0\n});\n\nconst buttonStyles = style({\n  ...focusRing(),\n  outlineOffset: -2,\n  font: 'body',\n  color: {\n    default: baseColor('neutral'),\n    isLoading: 'neutral',\n    forcedColors: 'ButtonText',\n    isDisabled: {\n      default: 'disabled',\n      forcedColors: 'GrayText'\n    }\n  },\n  display: 'flex',\n  flexGrow: 0,\n  alignItems: 'center',\n  paddingX: 'calc(self(minHeight) * 3/8 - 1px)',\n  gap: 'calc(self(minHeight) * 3/8 - 1px)',\n  minHeight: 32,\n  backgroundColor: 'transparent',\n  transition: 'default',\n  borderWidth: 0,\n  borderRadius: 'default',\n  textAlign: 'start',\n  disableTapHighlight: true\n});\n\nconst chevronStyles = {\n  rotate: {\n    isRTL: 180,\n    isExpanded: 90\n  },\n  transition: 'default',\n  '--iconPrimary': {\n    type: 'fill',\n    value: 'currentColor'\n  },\n  flexShrink: 0\n} as const;\n\nconst progressCircleStyles = style({\n  width: 18,\n  height: 18\n});\n\n/**\n * A response status title consisting of a heading and a trigger button. The leading icon is a\n * progress circle while loading and a chevron once complete and there is further content to\n * display.\n */\nexport const ResponseStatusTitle = forwardRef(function ResponseStatusTitle(\n  props: ResponseStatusTitleProps,\n  ref: DOMRef<HTMLDivElement>\n) {\n  let {level = 3, styles, ...otherProps} = props;\n  let domRef = useDOMRef(ref);\n  const domProps = filterDOMProps(otherProps);\n  let {direction} = useLocale();\n  let {isExpanded} = useContext(DisclosureStateContext)!;\n  let {status, hasPanelContent} = useContext(ResponseStatusContext)!;\n  let isRTL = direction === 'rtl';\n  let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/ai');\n\n  let isLoading = status === 'loading';\n  let isInteractive = hasPanelContent && !isLoading;\n\n  let rowContent = (\n    <>\n      {isLoading ? (\n        <CenterBaseline>\n          <ProgressCircle\n            styles={progressCircleStyles}\n            isIndeterminate\n            aria-label={stringFormatter.format('responsestatus.loading')}\n          />\n        </CenterBaseline>\n      ) : (\n        <Provider\n          values={[\n            [\n              IconContext,\n              {\n                styles: style({\n                  marginStart: 'auto',\n                  flexShrink: 0,\n                  size: 20,\n                  '--iconPrimary': {\n                    type: 'fill',\n                    value: 'currentColor'\n                  }\n                })\n              }\n            ]\n          ]}>\n          <CenterBaseline slot=\"icon\">\n            {status === 'failed' ? (\n              <CloseCircle aria-hidden=\"true\" />\n            ) : (\n              <CheckmarkCircle aria-hidden=\"true\" />\n            )}\n          </CenterBaseline>\n        </Provider>\n      )}\n      {props.children}\n      {isInteractive ? (\n        <CenterBaseline styles={style(chevronStyles)({isExpanded, isRTL})}>\n          <Chevron size=\"M\" />\n        </CenterBaseline>\n      ) : null}\n    </>\n  );\n\n  return (\n    <Heading {...domProps} level={level} ref={domRef} className={mergeStyles(headingStyle, styles)}>\n      <Button\n        className={renderProps =>\n          buttonStyles({...renderProps, isLoading, isOnlyText: !isInteractive})\n        }\n        slot={isInteractive ? 'trigger' : undefined}>\n        {rowContent}\n      </Button>\n    </Heading>\n  );\n});\n\nexport interface ResponseStatusPanelProps\n  extends\n    Omit<RACDisclosurePanelProps, 'className' | 'style' | 'render' | 'children'>,\n    DOMProps,\n    AriaLabelingProps {\n  children: React.ReactNode;\n  /**\n   * Spectrum-defined styles, returned by the `style()` macro.\n   */\n  styles?: StyleString;\n}\n\nconst panelStyle = {\n  font: 'body',\n  height: '--disclosure-panel-height',\n  overflow: 'clip',\n  transition: {\n    default: '[height]',\n    '@media (prefers-reduced-motion: reduce)': 'none'\n  }\n} as const;\n\nconst panelInner = style({\n  paddingTop: 8,\n  paddingBottom: 16,\n  paddingX: space(9)\n});\n\n/**\n * A response status panel is a collapsible section of content that is hidden until the\n * response status is expanded. The panel cannot be expanded while `status` is `'loading'`.\n */\nexport const ResponseStatusPanel = forwardRef(function ResponseStatusPanel(\n  props: ResponseStatusPanelProps,\n  ref: DOMRef<HTMLDivElement>\n) {\n  let {styles} = props;\n  let {registerPanel} = useContext(ResponseStatusContext)!;\n  const domProps = filterDOMProps(props);\n  let panelRef = useDOMRef(ref);\n\n  useLayoutEffect(() => {\n    registerPanel(true);\n    return () => registerPanel(false);\n  }, [registerPanel]);\n\n  return (\n    <RACDisclosurePanel\n      {...domProps}\n      ref={panelRef}\n      className={mergeStyles(style(panelStyle), styles)}>\n      <div className={panelInner}>{props.children}</div>\n    </RACDisclosurePanel>\n  );\n});\n\nexport interface ExecutionTraceProps extends DOMProps, AriaLabelingProps {\n  /**\n   * The ExecutionTraceItem elements to render as a timeline. Typically placed inside a\n   * ResponseStatusPanel.\n   */\n  children: ReactNode;\n  /**\n   * Spectrum-defined styles, returned by the `style()` macro.\n   */\n  styles?: StyleString;\n}\n\nconst executionTraceStyles = style({\n  display: 'flex',\n  flexDirection: 'column',\n  margin: 0,\n  padding: 0,\n  paddingStart: 4,\n  listStyleType: 'none'\n});\n\n/**\n * An ExecutionTrace displays a timeline of the steps taken while generating a\n * response, such as tool calls or searches.\n */\nexport const ExecutionTrace = forwardRef(function ExecutionTrace(\n  props: ExecutionTraceProps,\n  ref: DOMRef<HTMLOListElement>\n) {\n  let {styles, children, ...otherProps} = props;\n  let domRef = useDOMRef(ref);\n  let domProps = filterDOMProps(otherProps);\n\n  return (\n    <ol {...domProps} ref={domRef} className={mergeStyles(executionTraceStyles, styles)}>\n      {children}\n    </ol>\n  );\n});\n\ninterface DetailTriggerProps {\n  children: ReactNode;\n}\n\nconst detailTriggerStyles = style({\n  display: 'block',\n  paddingStart: 8\n});\n\nconst detailTriggerChevronStyles = style({\n  ...chevronStyles,\n  display: 'inline-flex',\n  marginStart: 8\n});\n\nfunction DetailTrigger(props: DetailTriggerProps) {\n  let {children} = props;\n  let {direction} = useLocale();\n  let isRTL = direction === 'rtl';\n  let {isExpanded} = useContext(DisclosureStateContext)!;\n\n  return (\n    <Button\n      className={renderProps => mergeStyles(buttonStyles({...renderProps}), detailTriggerStyles)}\n      slot=\"trigger\">\n      {children}\n      <CenterBaseline styles={detailTriggerChevronStyles({isExpanded, isRTL})}>\n        <Chevron size=\"M\" />\n      </CenterBaseline>\n    </Button>\n  );\n}\n\nexport interface ExecutionTraceItemProps extends DOMProps, AriaLabelingProps {\n  /**\n   * The label describing the step.\n   */\n  children: ReactNode;\n  detail?: ReactNode;\n  /**\n   * Spectrum-defined styles, returned by the `style()` macro.\n   */\n  /**\n   * An icon shown at the leading edge of the row. If omitted, a checkmark is rendered by default.\n   */\n  icon?: ReactNode;\n  /** Allows detail content to render but prevents the row from being collapsible. */\n  isAlwaysOpen?: boolean;\n  /**\n   * Additional detail revealed when the step is expanded, such as tool call input or output.\n   * If omitted, the row is static and cannot be expanded.\n   */\n\n  styles?: StyleString;\n}\n\nconst executionTraceItemStyles = style({\n  display: 'flex',\n  font: 'body',\n  gap: 4,\n  '--divider-display': {\n    type: 'display',\n    value: {\n      default: 'block',\n      ':last-child': 'none'\n    }\n  },\n  '--execution-trace-item-padding-bottom-disclosure': {\n    type: 'paddingBottom',\n    value: {\n      default: 12,\n      ':last-child': 0\n    }\n  },\n  '--execution-trace-item-padding-bottom-no-disclosure': {\n    type: 'paddingBottom',\n    value: {\n      default: 16,\n      ':last-child': 0\n    }\n  }\n});\n\nconst executionTraceItemIconContainerStyles = style({\n  display: 'flex',\n  flexDirection: 'column',\n  alignItems: 'center',\n  flexShrink: 0\n});\n\nconst executionTraceItemDividerStyles = style({\n  width: 1,\n  flexGrow: 1,\n  marginY: 2,\n  backgroundColor: 'gray-500',\n  display: 'var(--divider-display, flex)'\n});\n\nconst executionTraceDisclosurePanelStyles = style({\n  ...panelStyle,\n  paddingStart: 8\n});\n\nconst executionTraceDisclosureContainerStyles = style({\n  paddingBottom: 'var(--execution-trace-item-padding-bottom-disclosure)',\n  marginTop: -4\n});\n\nconst executionTraceWithoutDisclosureStyles = style({\n  paddingStart: 8,\n  display: 'flex',\n  flexDirection: 'column',\n  paddingBottom: 'var(--execution-trace-item-padding-bottom-no-disclosure)'\n});\n\n/**\n * An ExecutionTraceItem represents a single step within an ExecutionTrace, such as\n * a tool call or search. When a `detail` is provided, the row can be expanded to reveal it.\n */\nexport const ExecutionTraceItem = forwardRef(function ExecutionTraceItem(\n  props: ExecutionTraceItemProps,\n  ref: DOMRef<HTMLLIElement>\n) {\n  let {\n    isAlwaysOpen,\n    detail,\n    icon = <CheckmarkCircle aria-hidden=\"true\" />,\n    children,\n    styles,\n    ...otherProps\n  } = props;\n  let domRef = useDOMRef(ref);\n  let domProps = filterDOMProps(otherProps);\n  let hasDetail = detail != null;\n\n  return (\n    <li {...domProps} ref={domRef} className={mergeStyles(executionTraceItemStyles, styles)}>\n      <div className={executionTraceItemIconContainerStyles}>\n        <Provider values={[[IconContext, {styles: iconStyle({size: 'M'})}]]}>\n          <CenterBaseline>{icon}</CenterBaseline>\n        </Provider>\n        <div role=\"presentation\" className={executionTraceItemDividerStyles} />\n      </div>\n      {hasDetail && !isAlwaysOpen ? (\n        <div className={executionTraceDisclosureContainerStyles}>\n          <RACDisclosure>\n            <DetailTrigger>{children}</DetailTrigger>\n            <RACDisclosurePanel className={executionTraceDisclosurePanelStyles}>\n              {detail}\n            </RACDisclosurePanel>\n          </RACDisclosure>\n        </div>\n      ) : (\n        <div className={executionTraceWithoutDisclosureStyles}>\n          <span>{children}</span>\n          {hasDetail && isAlwaysOpen ? <div>{detail}</div> : null}\n        </div>\n      )}\n    </li>\n  );\n});\n"],"names":[],"version":3,"file":"ResponseStatus.mjs.map"}