{
  "version": 3,
  "sources": ["../../../src/primitives/DensityProvider/DensityProvider.tsx", "../../../src/primitives/ElevationProvider/ElevationProvider.tsx", "../../../src/util/mobile.ts", "../../../src/primitives/ThemeProvider/TranslationsProvider.tsx", "../../../src/primitives/ThemeProvider/ThemeProvider.tsx", "../../../src/hooks/useElevationContext.ts", "../../../src/hooks/useThemeContext.ts", "../../../src/hooks/useSafeArea.ts", "../../../src/components/Tooltip/Tooltip.tsx", "../../../src/components/Tooltip/tooltipContent.ts", "../../../src/components/Column/withColumn.ts", "../../../src/components/ErrorFallback/ErrorStack.tsx", "../../../src/components/Main/constants.ts", "../../../src/theme/bindTheme.ts", "../../../src/components/Avatars/Avatar.theme.ts", "../../../src/components/Breadcrumb/Breadcrumb.theme.ts", "../../../src/components/Button/Button.theme.ts", "../../../src/components/Button/IconButton.theme.ts", "../../../src/components/Card/Card.theme.ts", "../../../src/components/Column/Column.theme.ts", "../../../src/components/Dialog/Dialog.theme.ts", "../../../src/components/Focus/Focus.theme.ts", "../../../src/components/Icon/Icon.theme.ts", "../../../src/components/Input/Input.theme.ts", "../../../src/components/Link/Link.theme.ts", "../../../src/components/Main/Main.theme.ts", "../../../src/components/Menu/Menu.theme.ts", "../../../src/components/Message/Message.theme.ts", "../../../src/components/Panel/Panel.theme.ts", "../../../src/components/Popover/Popover.theme.ts", "../../../src/components/ScrollArea/ScrollArea.theme.ts", "../../../src/components/Select/Select.theme.ts", "../../../src/components/Separator/Separator.theme.ts", "../../../src/components/Skeleton/Skeleton.theme.ts", "../../../src/components/Splitter/Splitter.theme.ts", "../../../src/components/Status/Status.theme.ts", "../../../src/components/Tag/Tag.theme.ts", "../../../src/components/Toast/Toast.theme.ts", "../../../src/components/Toolbar/Toolbar.theme.ts", "../../../src/components/Tooltip/Tooltip.theme.ts", "../../../src/components/Calendar/Calendar.theme.ts", "../../../src/components/DatePicker/DatePicker.theme.ts", "../../../src/theme/defaultTheme.ts"],
  "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type PropsWithChildren, createContext } from 'react';\n\nimport { type Density } from '@dxos/ui-types';\n\nexport interface DensityContextValue {\n  density?: Density;\n}\n\nexport type DensityProviderProps = PropsWithChildren<{\n  density?: Density;\n}>;\n\nexport const DensityContext = createContext<DensityContextValue>({ density: 'md' });\n\nexport const DensityProvider = ({ density, children }: DensityProviderProps) => (\n  <DensityContext.Provider value={{ density }}>{children}</DensityContext.Provider>\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type PropsWithChildren, createContext } from 'react';\n\nimport { type Elevation } from '@dxos/ui-types';\n\nexport interface ElevationContextValue {\n  elevation?: Elevation;\n}\n\nexport type ElevationProviderProps = PropsWithChildren<{\n  elevation?: Elevation;\n}>;\n\nexport const ElevationContext = createContext<ElevationContextValue>({ elevation: 'base' });\n\nexport const ElevationProvider = ({ elevation, children }: ElevationProviderProps) => (\n  <ElevationContext.Provider value={{ elevation }}>{children}</ElevationContext.Provider>\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\n/**\n * Determines whether the on-screen keyboard will appear on `focus` outside of a click handler.\n */\nexport const hasIosKeyboard = () => {\n  // TODO(burdon): Better way to detect iOS keyboard?\n  return !!navigator.userAgent.match(/iP(ad|od|hone).+Safari/);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type Locale, enUS as dtLocaleEnUs } from 'date-fns/locale';\nimport React, { type ReactNode, Suspense, createContext, useContext, useEffect, useState } from 'react';\nimport { I18nextProvider, useTranslation as useI18NextTranslation } from 'react-i18next';\n\nimport { type Resource, addResources, i18n } from '@dxos/i18n';\n\nconst initialNs = 'dxos-common';\nconst initialDtLocale = dtLocaleEnUs;\n\nexport interface TranslationsProviderProps {\n  children?: ReactNode;\n  // TODO(wittjosiah): Rename to `placeholder` to match ClientProvider?\n  //   Placeholder => loading, fallback => error.\n  fallback?: ReactNode;\n  resourceExtensions?: Resource[];\n  appNs?: string;\n  dtLocale?: Locale;\n}\n\nexport const TranslationsContext = createContext({\n  appNs: initialNs,\n  dtLocale: initialDtLocale,\n});\n\nexport const useTranslation = (...args: Parameters<typeof useI18NextTranslation>) => {\n  const result = useI18NextTranslation(...args);\n  const { dtLocale } = useContext(TranslationsContext);\n  return { ...result, dtLocale };\n};\n\nexport const TranslationsProvider = ({\n  fallback,\n  resourceExtensions,\n  children,\n  appNs,\n  dtLocale,\n}: TranslationsProviderProps) => {\n  const [loaded, setLoaded] = useState(false);\n  useEffect(() => {\n    setLoaded(false);\n    // Convenience for standalone/storybook callers; the i18next instance lifecycle is owned by `@dxos/i18n`.\n    if (resourceExtensions && resourceExtensions.length) {\n      addResources(resourceExtensions);\n    }\n\n    setLoaded(true);\n  }, [resourceExtensions]);\n\n  // TODO(thure): This is not ideal, but i18next was causing `Suspense` to not render the fallback even when the child was asking for namespaces yet to be added.\n  // TODO(burdon): Fallbacks should only appear after a short delay, and if the displayed then be visible for 500mx to avoid startup flickering.\n  return (\n    <I18nextProvider i18n={i18n}>\n      <TranslationsContext.Provider value={{ appNs: appNs ?? initialNs, dtLocale: dtLocale ?? initialDtLocale }}>\n        <Suspense fallback={fallback}>{loaded ? children : fallback}</Suspense>\n      </TranslationsContext.Provider>\n    </I18nextProvider>\n  );\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { createKeyborg } from 'keyborg';\nimport React, { type PropsWithChildren, createContext, useEffect, useMemo } from 'react';\n\nimport { type Density, type Elevation, type ThemeFunction, type ThemeMode } from '@dxos/ui-types';\n\nimport { type SafeAreaPadding, useSafeArea } from '../../hooks';\nimport { hasIosKeyboard } from '../../util';\nimport { DensityProvider } from '../DensityProvider';\nimport { ElevationProvider } from '../ElevationProvider';\nimport { TranslationsProvider, type TranslationsProviderProps } from './TranslationsProvider';\n\nexport type ThemeContextValue = {\n  tx: ThemeFunction<any>;\n  themeMode: ThemeMode;\n  hasIosKeyboard: boolean;\n  safeAreaPadding?: SafeAreaPadding;\n  noCache?: boolean;\n  platform?: 'mobile' | 'desktop';\n};\n\n/**\n * @internal\n */\nexport const ThemeContext = createContext<ThemeContextValue | undefined>(undefined);\n\nexport type ThemeProviderProps = Omit<TranslationsProviderProps, 'children'> &\n  Partial<Omit<ThemeContextValue, 'safeAreaPadding'>> &\n  PropsWithChildren<{\n    rootDensity?: Density;\n    rootElevation?: Elevation;\n  }>;\n\nexport const ThemeProvider = ({\n  children,\n  fallback = null,\n  resourceExtensions,\n  appNs,\n  tx = (_path, _styleProps, ..._options) => undefined,\n  themeMode = 'dark',\n  rootDensity = 'md',\n  noCache,\n  platform,\n}: ThemeProviderProps) => {\n  useEffect(() => {\n    if (document.defaultView) {\n      const kb = createKeyborg(document.defaultView);\n      kb.subscribe(handleInputModalityChange);\n      return () => kb.unsubscribe(handleInputModalityChange);\n    }\n  }, []);\n\n  const safeAreaPadding = useSafeArea();\n  // Destructure all props explicitly so useMemo deps are stable primitives, not a new `rest` object every render.\n  const contextValue = useMemo(\n    () => ({ tx, themeMode, hasIosKeyboard: hasIosKeyboard(), safeAreaPadding, noCache, platform }),\n    [tx, themeMode, safeAreaPadding, noCache, platform],\n  );\n\n  return (\n    <ThemeContext.Provider value={contextValue}>\n      <TranslationsProvider\n        {...{\n          fallback,\n          resourceExtensions,\n          appNs,\n        }}\n      >\n        <ElevationProvider elevation='base'>\n          <DensityProvider density={rootDensity}>{children}</DensityProvider>\n        </ElevationProvider>\n      </TranslationsProvider>\n    </ThemeContext.Provider>\n  );\n};\n\nconst handleInputModalityChange = (isUsingKeyboard: boolean) => {\n  if (isUsingKeyboard) {\n    document.body.setAttribute('data-w-keyboard', 'true');\n  } else {\n    document.body.removeAttribute('data-w-keyboard');\n  }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { type Elevation } from '@dxos/ui-types';\n\nimport { ElevationContext } from '../primitives';\n\nexport const useElevationContext = (propsElevation?: Elevation) => {\n  const { elevation } = useContext(ElevationContext);\n  return propsElevation ?? elevation;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { raise } from '@dxos/debug';\n\nimport { ThemeContext } from '../primitives';\n\nexport const useThemeContext = () => useContext(ThemeContext) ?? raise(new Error('Missing ThemeContext'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useState } from 'react';\n\nimport { useViewportResize } from '@dxos/react-hooks';\n\nexport type SafeAreaPadding = Record<'top' | 'right' | 'bottom' | 'left', number>;\n\nexport const initialSafeArea = { top: NaN, right: NaN, bottom: NaN, left: NaN };\n\nexport const useSafeArea = (): SafeAreaPadding => {\n  const [padding, setPadding] = useState<SafeAreaPadding>(initialSafeArea);\n  const handleResize = useCallback(() => {\n    setPadding({\n      top: parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--safe-area-top')),\n      right: parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--safe-area-right')),\n      bottom: parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--safe-area-bottom')),\n      left: parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--safe-area-left')),\n    });\n  }, []);\n\n  useViewportResize(handleResize);\n  return padding;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// This is based upon `@radix-ui/react-tooltip` fetched 17 March 2025 at https://github.com/radix-ui/primitives at commit 6e75e11.\n// TODO(burdon): Replace with https://ui.shadcn.com/docs/components/radix/tooltip\n\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport type { Scope } from '@radix-ui/react-context';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { useId } from '@radix-ui/react-id';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { type PopperAnchorProps, createPopperScope } from '@radix-ui/react-popper';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Slottable } from '@radix-ui/react-slot';\nimport { type TooltipProps } from '@radix-ui/react-tooltip';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';\nimport React, {\n  type ComponentPropsWithoutRef,\n  type ComponentRef,\n  type FC,\n  type ReactNode,\n  type RefObject,\n  type SyntheticEvent,\n  forwardRef,\n  useCallback,\n  useEffect,\n  useMemo,\n  useRef,\n  useState,\n} from 'react';\n\nimport { useElevationContext, useThemeContext } from '../../hooks';\n\ntype TooltipScopedProps<P = {}> = P & { __scopeTooltip?: Scope };\nconst [createTooltipContext, createTooltipScope] = createContextScope('Tooltip', [createPopperScope]);\nconst usePopperScope = createPopperScope();\n\n//\n// Tooltip\n//\n\nconst DEFAULT_DELAY_DURATION = 700;\nconst TOOLTIP_OPEN = 'tooltip.open';\nconst TOOLTIP_NAME = 'Tooltip';\n\ntype TooltipContextValue = {\n  contentId: string;\n  open: boolean;\n  stateAttribute: 'closed' | 'delayed-open' | 'instant-open';\n  trigger: TooltipTriggerElement | null;\n  onTriggerChange(trigger: TooltipTriggerElement | null, content?: ReactNode, side?: TooltipSide): void;\n  onTriggerEnter(): void;\n  onTriggerLeave(): void;\n  onOpen(): void;\n  onClose(): void;\n  onPointerInTransitChange(inTransit: boolean): void;\n  isPointerInTransitRef: RefObject<boolean>;\n  disableHoverableContent: boolean;\n};\n\nconst [TooltipContextProvider, useTooltipContext] = createTooltipContext<TooltipContextValue>(TOOLTIP_NAME);\n\ntype TooltipProviderProps = {\n  children?: ReactNode;\n  open?: boolean;\n  defaultOpen?: boolean;\n  onOpenChange?: (open: boolean) => void;\n  /**\n   * The duration from when the pointer enters the trigger until the tooltip gets opened. This will\n   * override the prop with the same name passed to Provider.\n   * @defaultValue 700\n   */\n  delayDuration?: number;\n  /**\n   * When `true`, trying to hover the content will result in the tooltip closing as the pointer leaves the trigger.\n   * @defaultValue false\n   */\n  disableHoverableContent?: boolean;\n  /**\n   * How much time a user has to enter another trigger without incurring a delay again.\n   * @defaultValue 300\n   */\n  skipDelayDuration?: number;\n};\n\nconst TooltipProvider: FC<TooltipProviderProps> = (props: TooltipScopedProps<TooltipProviderProps>) => {\n  const {\n    __scopeTooltip,\n    children,\n    open: openProp,\n    defaultOpen = false,\n    onOpenChange,\n    disableHoverableContent = false,\n    delayDuration = DEFAULT_DELAY_DURATION,\n    skipDelayDuration = 300,\n  } = props;\n  const isOpenDelayedRef = useRef(true);\n  const isPointerInTransitRef = useRef(false);\n  const skipDelayTimerRef = useRef(0);\n\n  useEffect(() => {\n    const skipDelayTimer = skipDelayTimerRef.current;\n    return () => window.clearTimeout(skipDelayTimer);\n  }, []);\n\n  const popperScope = usePopperScope(__scopeTooltip);\n  const [trigger, setTrigger] = useState<HTMLButtonElement | null>(null);\n  const [content, setContent] = useState<ReactNode>(null);\n  const [side, setSide] = useState<TooltipSide | undefined>(undefined);\n  const triggerRef = useRef<HTMLButtonElement | null>(trigger);\n  const handleTriggerChange = useCallback(\n    (nextTrigger: HTMLButtonElement | null, nextContent?: ReactNode, nextSide?: TooltipSide) => {\n      setTrigger(nextTrigger);\n      triggerRef.current = nextTrigger;\n      setContent(nextContent ?? null);\n      setSide(nextSide);\n    },\n    [],\n  );\n  const contentId = useId();\n  const openTimerRef = useRef(0);\n  const wasOpenDelayedRef = useRef(false);\n  const handleOpenChange = useCallback(\n    (open: boolean) => {\n      if (open) {\n        window.clearTimeout(skipDelayTimerRef.current);\n        isOpenDelayedRef.current = false;\n        // as `onChange` is called within a lifecycle method we\n        // avoid dispatching via `dispatchDiscreteCustomEvent`.\n        document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n      } else {\n        window.clearTimeout(skipDelayTimerRef.current);\n        skipDelayTimerRef.current = window.setTimeout(() => (isOpenDelayedRef.current = true), skipDelayDuration);\n      }\n      onOpenChange?.(open);\n    },\n    [skipDelayDuration, onOpenChange],\n  );\n  const [open = false, setOpen] = useControllableState({\n    prop: openProp,\n    defaultProp: defaultOpen,\n    onChange: handleOpenChange,\n  });\n  const stateAttribute = useMemo(() => {\n    return open ? (wasOpenDelayedRef.current ? 'delayed-open' : 'instant-open') : 'closed';\n  }, [open]);\n\n  const handleOpen = useCallback(() => {\n    window.clearTimeout(openTimerRef.current);\n    openTimerRef.current = 0;\n    wasOpenDelayedRef.current = false;\n    setOpen(true);\n  }, [setOpen]);\n\n  const handleClose = useCallback(() => {\n    window.clearTimeout(openTimerRef.current);\n    openTimerRef.current = 0;\n    setOpen(false);\n  }, [setOpen]);\n\n  const handleDelayedOpen = useCallback(() => {\n    window.clearTimeout(openTimerRef.current);\n    openTimerRef.current = window.setTimeout(() => {\n      wasOpenDelayedRef.current = true;\n      setOpen(true);\n      openTimerRef.current = 0;\n    }, delayDuration);\n  }, [delayDuration, setOpen]);\n\n  useEffect(() => {\n    return () => {\n      if (openTimerRef.current) {\n        window.clearTimeout(openTimerRef.current);\n        openTimerRef.current = 0;\n      }\n    };\n  }, []);\n\n  const { tx } = useThemeContext();\n  const elevation = useElevationContext();\n\n  return (\n    <PopperPrimitive.Root {...popperScope}>\n      <TooltipContextProvider\n        scope={__scopeTooltip}\n        contentId={contentId}\n        open={open}\n        stateAttribute={stateAttribute}\n        trigger={trigger}\n        onTriggerChange={handleTriggerChange}\n        onTriggerEnter={useCallback(() => {\n          if (isOpenDelayedRef.current) {\n            handleDelayedOpen();\n          } else {\n            handleOpen();\n          }\n        }, [isOpenDelayedRef, handleDelayedOpen, handleOpen])}\n        onTriggerLeave={useCallback(() => {\n          if (disableHoverableContent) {\n            handleClose();\n          } else {\n            // Clear the timer in case the pointer leaves the trigger before the tooltip is opened.\n            window.clearTimeout(openTimerRef.current);\n            openTimerRef.current = 0;\n          }\n        }, [handleClose, disableHoverableContent])}\n        onOpen={handleOpen}\n        onClose={handleClose}\n        disableHoverableContent={disableHoverableContent}\n        isPointerInTransitRef={isPointerInTransitRef}\n        onPointerInTransitChange={useCallback((inTransit: boolean) => {\n          isPointerInTransitRef.current = inTransit;\n        }, [])}\n      >\n        <TooltipContent side={side} className={tx('tooltip.content', { elevation })}>\n          {content}\n          <TooltipArrow className={tx('tooltip.arrow')} />\n        </TooltipContent>\n        <TooltipVirtualTrigger virtualRef={triggerRef as RefObject<HTMLButtonElement>} />\n        {children}\n      </TooltipContextProvider>\n    </PopperPrimitive.Root>\n  );\n};\n\nTooltipProvider.displayName = TOOLTIP_NAME;\n\n//\n// TooltipVirtualTrigger\n//\n\nconst TooltipVirtualTrigger = ({\n  virtualRef,\n  __scopeTooltip,\n}: TooltipScopedProps<Pick<PopperAnchorProps, 'virtualRef'>>) => {\n  const popperScope = usePopperScope(__scopeTooltip);\n  return <PopperPrimitive.Anchor asChild {...popperScope} virtualRef={virtualRef} />;\n};\n\n//\n// TooltipTrigger\n//\n\nconst TRIGGER_NAME = 'Tooltip.Trigger';\n\ntype TooltipTriggerElement = ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = ComponentPropsWithoutRef<typeof Primitive.button>;\ntype TooltipTriggerProps = Omit<PrimitiveButtonProps, 'content'> &\n  Pick<TooltipProps, 'delayDuration'> & {\n    content?: ReactNode;\n    side?: TooltipSide;\n    onInteract?: (event: SyntheticEvent) => void;\n  };\n\nconst TooltipTrigger = forwardRef<TooltipTriggerElement, TooltipTriggerProps>(\n  (props: TooltipScopedProps<TooltipTriggerProps>, forwardedRef) => {\n    const {\n      __scopeTooltip,\n      onInteract,\n      // TODO(thure): Pass `delayDuration` into the context.\n      delayDuration: _delayDuration,\n      side,\n      content,\n      ...triggerProps\n    } = props;\n    const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n    const ref = useRef<TooltipTriggerElement>(null);\n    const composedRefs = useComposedRefs(forwardedRef, ref);\n    const isPointerDownRef = useRef(false);\n    const hasPointerMoveOpenedRef = useRef(false);\n    const handlePointerUp = useCallback(() => (isPointerDownRef.current = false), []);\n\n    useEffect(() => {\n      return () => document.removeEventListener('pointerup', handlePointerUp);\n    }, [handlePointerUp]);\n\n    return (\n      <Primitive.button\n        // We purposefully avoid adding `type=button` here because tooltip triggers are also\n        // commonly anchors and the anchor `type` attribute signifies MIME type.\n        aria-describedby={context.open ? context.contentId : undefined}\n        data-state={context.stateAttribute}\n        {...triggerProps}\n        ref={composedRefs}\n        onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n          if (event.pointerType === 'touch') {\n            return;\n          }\n          if (!hasPointerMoveOpenedRef.current && !context.isPointerInTransitRef.current) {\n            onInteract?.(event);\n            if (event.defaultPrevented) {\n              return;\n            }\n            context.onTriggerChange(ref.current, content, side);\n            context.onTriggerEnter();\n            hasPointerMoveOpenedRef.current = true;\n          }\n        })}\n        onPointerLeave={composeEventHandlers(props.onPointerLeave, () => {\n          context.onTriggerLeave();\n          hasPointerMoveOpenedRef.current = false;\n        })}\n        onPointerDown={composeEventHandlers(props.onPointerDown, () => {\n          if (context.open) {\n            context.onClose();\n          }\n          isPointerDownRef.current = true;\n          document.addEventListener('pointerup', handlePointerUp, { once: true });\n        })}\n        onFocus={props.onFocus}\n        onBlur={composeEventHandlers(props.onBlur, context.onClose)}\n        onClick={composeEventHandlers(props.onClick, context.onClose)}\n      />\n    );\n  },\n);\n\nTooltipTrigger.displayName = TRIGGER_NAME;\n\n//\n// TooltipPortal\n//\n\nconst PORTAL_NAME = 'Tooltip.Portal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createTooltipContext<PortalContextValue>(PORTAL_NAME, {\n  forceMount: undefined,\n});\n\ntype PortalProps = ComponentPropsWithoutRef<typeof PortalPrimitive>;\ntype TooltipPortalProps = {\n  children?: 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 TooltipPortal: FC<TooltipPortalProps> = (props: TooltipScopedProps<TooltipPortalProps>) => {\n  const { __scopeTooltip, forceMount, children, container } = props;\n  const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n  return (\n    <PortalProvider scope={__scopeTooltip} forceMount={forceMount}>\n      <Presence present={forceMount || context.open}>\n        <PortalPrimitive asChild container={container}>\n          {children}\n        </PortalPrimitive>\n      </Presence>\n    </PortalProvider>\n  );\n};\n\nTooltipPortal.displayName = PORTAL_NAME;\n\n//\n// TooltipContent\n//\n\nconst CONTENT_NAME = 'Tooltip.Content';\n\ntype TooltipContentElement = TooltipContentImplElement;\ntype TooltipContentProps = TooltipContentImplProps & {\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 TooltipContent = forwardRef<TooltipContentElement, TooltipContentProps>(\n  (props: TooltipScopedProps<TooltipContentProps>, forwardedRef) => {\n    const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n    const { forceMount = portalContext.forceMount, side = 'top', ...contentProps } = props;\n    const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n\n    return (\n      <Presence present={forceMount || context.open}>\n        {context.disableHoverableContent ? (\n          <TooltipContentImpl side={side} {...contentProps} ref={forwardedRef} />\n        ) : (\n          <TooltipContentHoverable side={side} {...contentProps} ref={forwardedRef} />\n        )}\n      </Presence>\n    );\n  },\n);\n\ntype Point = { x: number; y: number };\ntype Polygon = Point[];\n\ntype TooltipContentHoverableElement = TooltipContentImplElement;\ntype TooltipContentHoverableProps = TooltipContentImplProps;\n\nconst TooltipContentHoverable = forwardRef<TooltipContentHoverableElement, TooltipContentHoverableProps>(\n  (props: TooltipScopedProps<TooltipContentHoverableProps>, forwardedRef) => {\n    const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n    const ref = useRef<TooltipContentHoverableElement>(null);\n    const composedRefs = useComposedRefs(forwardedRef, ref);\n    const [pointerGraceArea, setPointerGraceArea] = useState<Polygon | null>(null);\n\n    const { trigger, onClose } = context;\n    const content = ref.current;\n\n    const { onPointerInTransitChange } = context;\n\n    const handleRemoveGraceArea = useCallback(() => {\n      setPointerGraceArea(null);\n      onPointerInTransitChange(false);\n    }, [onPointerInTransitChange]);\n\n    const handleCreateGraceArea = useCallback(\n      (event: PointerEvent, hoverTarget: HTMLElement) => {\n        const currentTarget = event.currentTarget as HTMLElement;\n        const exitPoint = { x: event.clientX, y: event.clientY };\n        const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n        const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n        const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n        const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n        setPointerGraceArea(graceArea);\n        onPointerInTransitChange(true);\n      },\n      [onPointerInTransitChange],\n    );\n\n    useEffect(() => {\n      return () => handleRemoveGraceArea();\n    }, [handleRemoveGraceArea]);\n\n    useEffect(() => {\n      if (trigger && content) {\n        const handleTriggerLeave = (event: PointerEvent) => handleCreateGraceArea(event, content);\n        const handleContentLeave = (event: PointerEvent) => handleCreateGraceArea(event, trigger);\n\n        trigger.addEventListener('pointerleave', handleTriggerLeave);\n        content.addEventListener('pointerleave', handleContentLeave);\n        return () => {\n          trigger.removeEventListener('pointerleave', handleTriggerLeave);\n          content.removeEventListener('pointerleave', handleContentLeave);\n        };\n      }\n    }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n\n    useEffect(() => {\n      if (pointerGraceArea) {\n        const handleTrackPointerGrace = (event: PointerEvent) => {\n          const target = event.target as HTMLElement;\n          const pointerPosition = { x: event.clientX, y: event.clientY };\n          const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n          const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n\n          if (hasEnteredTarget) {\n            handleRemoveGraceArea();\n          } else if (isPointerOutsideGraceArea) {\n            handleRemoveGraceArea();\n            onClose();\n          }\n        };\n        document.addEventListener('pointermove', handleTrackPointerGrace);\n        return () => document.removeEventListener('pointermove', handleTrackPointerGrace);\n      }\n    }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n\n    return <TooltipContentImpl {...props} ref={composedRefs} />;\n  },\n);\n\nconst [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, {\n  isInside: false,\n});\n\ntype TooltipContentImplElement = ComponentRef<typeof PopperPrimitive.Content>;\ntype DismissableLayerProps = ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ntype TooltipContentImplProps = Omit<PopperContentProps, 'onPlaced'> & {\n  /**\n   * A more descriptive label for accessibility purpose\n   */\n  'aria-label'?: string;\n\n  /**\n   * Event handler called when the escape key is down.\n   * Can be prevented.\n   */\n  'onEscapeKeyDown'?: DismissableLayerProps['onEscapeKeyDown'];\n  /**\n   * Event handler called when the a `pointerdown` event happens outside of the `Tooltip`.\n   * Can be prevented.\n   */\n  'onPointerDownOutside'?: DismissableLayerProps['onPointerDownOutside'];\n};\n\nconst TooltipContentImpl = forwardRef<TooltipContentImplElement, TooltipContentImplProps>(\n  (props: TooltipScopedProps<TooltipContentImplProps>, forwardedRef) => {\n    const {\n      __scopeTooltip,\n      children,\n      'aria-label': ariaLabel,\n      onEscapeKeyDown,\n      onPointerDownOutside,\n      ...contentProps\n    } = props;\n    const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n    const popperScope = usePopperScope(__scopeTooltip);\n    const { onClose } = context;\n\n    // Close this tooltip if another one opens\n    useEffect(() => {\n      document.addEventListener(TOOLTIP_OPEN, onClose);\n      return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n    }, [onClose]);\n\n    // Close the tooltip if the trigger is scrolled\n    useEffect(() => {\n      if (context.trigger) {\n        const handleScroll = (event: Event) => {\n          const target = event.target as HTMLElement;\n          if (target?.contains(context.trigger)) {\n            onClose();\n          }\n        };\n        window.addEventListener('scroll', handleScroll, { capture: true });\n        return () => window.removeEventListener('scroll', handleScroll, { capture: true });\n      }\n    }, [context.trigger, onClose]);\n\n    return (\n      <DismissableLayer\n        asChild\n        disableOutsidePointerEvents={false}\n        onEscapeKeyDown={onEscapeKeyDown}\n        onPointerDownOutside={onPointerDownOutside}\n        onFocusOutside={(event) => event.preventDefault()}\n        onDismiss={onClose}\n      >\n        <PopperPrimitive.Content\n          data-state={context.stateAttribute}\n          {...popperScope}\n          {...contentProps}\n          ref={forwardedRef}\n          style={{\n            ...contentProps.style,\n            // re-namespace exposed content custom properties\n            ...{\n              '--radix-tooltip-content-transform-origin': 'var(--radix-popper-transform-origin)',\n              '--radix-tooltip-content-available-width': 'var(--radix-popper-available-width)',\n              '--radix-tooltip-content-available-height': 'var(--radix-popper-available-height)',\n              '--radix-tooltip-trigger-width': 'var(--radix-popper-anchor-width)',\n              '--radix-tooltip-trigger-height': 'var(--radix-popper-anchor-height)',\n            },\n          }}\n        >\n          <Slottable>{children}</Slottable>\n          <VisuallyHiddenContentContextProvider scope={__scopeTooltip} isInside={true}>\n            <VisuallyHiddenPrimitive.Root id={context.contentId} role='tooltip'>\n              {ariaLabel || children}\n            </VisuallyHiddenPrimitive.Root>\n          </VisuallyHiddenContentContextProvider>\n        </PopperPrimitive.Content>\n      </DismissableLayer>\n    );\n  },\n);\n\nTooltipContent.displayName = CONTENT_NAME;\n\n//\n// TooltipArrow\n//\n\nconst ARROW_NAME = 'Tooltip.Arrow';\n\ntype TooltipArrowElement = ComponentRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ntype TooltipArrowProps = PopperArrowProps;\n\nconst TooltipArrow = forwardRef<TooltipArrowElement, TooltipArrowProps>(\n  (props: TooltipScopedProps<TooltipArrowProps>, forwardedRef) => {\n    const { __scopeTooltip, ...arrowProps } = props;\n    const popperScope = usePopperScope(__scopeTooltip);\n    const visuallyHiddenContentContext = useVisuallyHiddenContentContext(ARROW_NAME, __scopeTooltip);\n    // if the arrow is inside the `VisuallyHidden`, we don't want to render it all to\n    // prevent issues in positioning the arrow due to the duplicate\n    return visuallyHiddenContentContext.isInside ? null : (\n      <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />\n    );\n  },\n);\n\nTooltipArrow.displayName = ARROW_NAME;\n\ntype TooltipSide = NonNullable<TooltipContentProps['side']>;\n\nconst getExitSideFromRect = (point: Point, rect: DOMRect): TooltipSide => {\n  const top = Math.abs(rect.top - point.y);\n  const bottom = Math.abs(rect.bottom - point.y);\n  const right = Math.abs(rect.right - point.x);\n  const left = Math.abs(rect.left - point.x);\n\n  switch (Math.min(top, bottom, right, left)) {\n    case left:\n      return 'left';\n    case right:\n      return 'right';\n    case top:\n      return 'top';\n    case bottom:\n      return 'bottom';\n    default:\n      throw new Error('unreachable');\n  }\n};\n\nconst getPaddedExitPoints = (exitPoint: Point, exitSide: TooltipSide, padding = 5) => {\n  const paddedExitPoints: Point[] = [];\n  switch (exitSide) {\n    case 'top':\n      paddedExitPoints.push(\n        { x: exitPoint.x - padding, y: exitPoint.y + padding },\n        { x: exitPoint.x + padding, y: exitPoint.y + padding },\n      );\n      break;\n    case 'bottom':\n      paddedExitPoints.push(\n        { x: exitPoint.x - padding, y: exitPoint.y - padding },\n        { x: exitPoint.x + padding, y: exitPoint.y - padding },\n      );\n      break;\n    case 'left':\n      paddedExitPoints.push(\n        { x: exitPoint.x + padding, y: exitPoint.y - padding },\n        { x: exitPoint.x + padding, y: exitPoint.y + padding },\n      );\n      break;\n    case 'right':\n      paddedExitPoints.push(\n        { x: exitPoint.x - padding, y: exitPoint.y - padding },\n        { x: exitPoint.x - padding, y: exitPoint.y + padding },\n      );\n      break;\n  }\n  return paddedExitPoints;\n};\n\nconst getPointsFromRect = (rect: DOMRect) => {\n  const { top, right, bottom, left } = rect;\n  return [\n    { x: left, y: top },\n    { x: right, y: top },\n    { x: right, y: bottom },\n    { x: left, y: bottom },\n  ];\n};\n\n// Determine if a point is inside of a polygon.\n// Based on https://github.com/substack/point-in-polygon\nconst isPointInPolygon = (point: Point, polygon: Polygon) => {\n  const { x, y } = point;\n  let inside = false;\n  for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n    const xi = polygon[i].x;\n    const yi = polygon[i].y;\n    const xj = polygon[j].x;\n    const yj = polygon[j].y;\n\n    // prettier-ignore\n    const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n    if (intersect) {\n      inside = !inside;\n    }\n  }\n\n  return inside;\n};\n\n// Returns a new array of points representing the convex hull of the given set of points.\n// https://www.nayuki.io/page/convex-hull-algorithm\nconst getHull = <P extends Point>(points: Readonly<Array<P>>): Array<P> => {\n  const newPoints: Array<P> = points.slice();\n  newPoints.sort((a: Point, b: Point) => {\n    if (a.x < b.x) {\n      return -1;\n    } else if (a.x > b.x) {\n      return +1;\n    } else if (a.y < b.y) {\n      return -1;\n    } else if (a.y > b.y) {\n      return +1;\n    } else {\n      return 0;\n    }\n  });\n  return getHullPresorted(newPoints);\n};\n\n// Returns the convex hull, assuming that each points[i] <= points[i + 1]. Runs in O(n) time.\nconst getHullPresorted = <P extends Point>(points: Readonly<Array<P>>): Array<P> => {\n  if (points.length <= 1) {\n    return points.slice();\n  }\n\n  const upperHull: Array<P> = [];\n  for (let i = 0; i < points.length; i++) {\n    const p = points[i];\n    while (upperHull.length >= 2) {\n      const q = upperHull[upperHull.length - 1];\n      const r = upperHull[upperHull.length - 2];\n      if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) {\n        upperHull.pop();\n      } else {\n        break;\n      }\n    }\n    upperHull.push(p);\n  }\n  upperHull.pop();\n\n  const lowerHull: Array<P> = [];\n  for (let i = points.length - 1; i >= 0; i--) {\n    const p = points[i];\n    while (lowerHull.length >= 2) {\n      const q = lowerHull[lowerHull.length - 1];\n      const r = lowerHull[lowerHull.length - 2];\n      if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) {\n        lowerHull.pop();\n      } else {\n        break;\n      }\n    }\n    lowerHull.push(p);\n  }\n  lowerHull.pop();\n\n  if (\n    upperHull.length === 1 &&\n    lowerHull.length === 1 &&\n    upperHull[0].x === lowerHull[0].x &&\n    upperHull[0].y === lowerHull[0].y\n  ) {\n    return upperHull;\n  } else {\n    return upperHull.concat(lowerHull);\n  }\n};\n\n//\n// Tooltip\n//\n\nexport const Tooltip = {\n  Provider: TooltipProvider,\n  Trigger: TooltipTrigger,\n};\n\nexport { createTooltipScope, useTooltipContext };\n\nexport type { TooltipProviderProps, TooltipScopedProps, TooltipSide, TooltipTriggerProps };\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { mx, surfaceShadow, surfaceZIndex } from '@dxos/ui-theme';\nimport { type ComponentFunction } from '@dxos/ui-types';\n\nimport { type TooltipStyleProps } from './Tooltip.theme';\n\nexport const tooltipContent: ComponentFunction<TooltipStyleProps> = ({ elevation }, ...etc) =>\n  mx(\n    'inline-flex items-center p-1 max-w-64 text-sm bg-inverse-surface text-inverse-fg rounded-sm',\n    surfaceShadow({ elevation: 'positioned' }),\n    surfaceZIndex({ elevation, level: 'tooltip' }),\n    ...etc,\n  );\n", "//\n// Copyright 2026 DXOS.org\n//\n\n/**\n * Column-aware theme utilities.\n * Components apply these in their theme functions to participate in the Column grid\n * without importing Column React components.\n *\n * CSS custom property cascade:\n * - Column.Root sets `--dx-col: 2 / span 1` (center column placement).\n * - ScrollArea.Viewport resets `--dx-col: auto` after consuming `--gutter`.\n * - Components apply `grid-column: var(--dx-col, auto)` to auto-center in Column\n *   or do nothing outside Column / inside ScrollArea.\n */\nexport const withColumn = {\n  /** Centers element in the Column grid via --dx-col. No-op outside Column or inside ScrollArea. */\n  center: () => '[grid-column:var(--dx-col,auto)]',\n\n  /** Propagates the Column grid to children via subgrid. No-op outside Column.\n   *  Direct children default to center column unless they are a dx-container (ScrollArea). */\n  propagate: () =>\n    '[.dx-column-root_&]:col-span-full [.dx-column-root_&]:grid [.dx-column-root_&]:grid-cols-subgrid [.dx-column-root_&]:[&>*:not(.dx-container)]:[grid-column:var(--dx-col,auto)]',\n\n  /** Resets --dx-col after consuming --gutter. Applied by ScrollArea.Viewport. */\n  consumed: () => '[--dx-col:auto]',\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport ErrorStackParser from 'error-stack-parser';\nimport React from 'react';\n\nimport { mx } from '@dxos/ui-theme';\n\ntype LocalFrame = { href: string; fileName: string };\n\nexport type ParsedStackFrame = ReturnType<typeof ErrorStackParser.parse>[number];\n\nexport type ErrorStackProps = {\n  /** When set, these frames are shown instead of parsing `error`. */\n  frames?: ParsedStackFrame[];\n  /** Used when `frames` is omitted. */\n  error?: Error;\n};\n\n/**\n * Parses `captureOwnerStack()` output (React dev) into frames for {@link ErrorStack}.\n * Prefixes a synthetic Error line when needed so `error-stack-parser` can read V8-style stacks.\n */\nexport const parseCaptureOwnerStack = (stack: string | null): ParsedStackFrame[] | null => {\n  if (stack == null || stack.length === 0) {\n    return null;\n  }\n  const err = new Error();\n  err.stack = stack;\n  try {\n    return ErrorStackParser.parse(err);\n  } catch {\n    err.stack = `Error\\n${stack}`;\n    try {\n      return ErrorStackParser.parse(err);\n    } catch {\n      return null;\n    }\n  }\n};\n\n/**\n * Renders a parsed error stack trace with tree connector symbols and clickable vscode:// links for local frames.\n */\nexport const ErrorStack = ({ error, frames: framesProp }: ErrorStackProps) => {\n  const frames = framesProp ?? (error ? ErrorStackParser.parse(error) : []);\n  if (frames.length === 0) {\n    return null;\n  }\n\n  return (\n    <div className='font-mono text-sm'>\n      {frames.map((frame, i) => {\n        const isLast = i === frames.length - 1;\n        const local = frame.fileName\n          ? parseLocalFrame(frame.fileName, frame.lineNumber, frame.columnNumber)\n          : undefined;\n        const functionName = frame.functionName ?? '<anonymous>';\n        return (\n          <div\n            key={i}\n            className={mx(\n              'grid grid-cols-[16px_1fr_auto_auto] items-stretch gap-x-2',\n              local && 'cursor-pointer hover:bg-hover-surface',\n            )}\n          >\n            {/* Tree connector: vertical line full-height + horizontal branch at midpoint */}\n            <div className='relative'>\n              <div\n                className={mx(\n                  'absolute left-1/2 -translate-x-1/2 w-px bg-neutral-500',\n                  isLast ? 'top-0 h-1/2' : 'inset-y-0',\n                )}\n              />\n              <div className='absolute top-1/2 -translate-y-1/2 left-1/2 right-0 h-px bg-neutral-500' />\n            </div>\n\n            {local ? (\n              <a href={local.href} className='truncate self-center'>\n                {functionName}\n              </a>\n            ) : (\n              <span className='text-subdued truncate self-center'>{functionName}</span>\n            )}\n            <span className='text-xs text-subdued truncate self-center truncate'>{local?.fileName ?? ''}</span>\n            <span className='text-xs text-subdued text-right self-center'>\n              {local ? `${frame.lineNumber}:${frame.columnNumber}` : ''}\n            </span>\n          </div>\n        );\n      })}\n    </div>\n  );\n};\n\n/**\n * Parses a Vite `/@fs/` URL into a `vscode://` deep link and short filename.\n * Returns undefined if the URL cannot be resolved to a local file.\n */\nconst parseLocalFrame = (fileUrl: string, line?: number, col?: number): LocalFrame | undefined => {\n  try {\n    const { pathname } = new URL(fileUrl);\n    if (!pathname.startsWith('/@fs/')) {\n      return undefined;\n    }\n\n    const FILE_PREFIX = '/@fs';\n    const localPath = pathname.slice(FILE_PREFIX.length); // /@fs/Users/... → /Users/...\n    const PKG_PREFIX = '/packages/';\n    const i = localPath.indexOf(PKG_PREFIX);\n    const path = i === -1 ? localPath : localPath.substring(i + PKG_PREFIX.length);\n    return {\n      href: `vscode://file/${localPath}:${line ?? 1}:${col ?? 1}`,\n      fileName: path,\n    };\n  } catch {\n    return undefined;\n  }\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nexport const mainPaddingTransitions = 'dx-main-content-padding-transitions';\nexport const mainIntrinsicSize = 'dx-main-intrinsic-size';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ClassNameArray, type ComponentFunction, type Theme, type ThemeFunction } from '@dxos/ui-types';\nimport { getDeep } from '@dxos/util';\n\nexport const bindTheme = <P extends Record<string, any>>(theme: Theme<Record<string, any>>): ThemeFunction<P> => {\n  return (path: string, styleProps?: P, ...etc: ClassNameArray) => {\n    const result = getDeep<Theme<P> | ComponentFunction<P>>(theme, path.split('.'));\n    return typeof result === 'function' ? result(styleProps ?? ({} as P), ...etc) : undefined;\n  };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { getHeight, getSize, mx } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Size, type Theme } from '@dxos/ui-types';\n\nexport type AvatarStyleProps = Partial<{\n  size: Size;\n  srOnly: boolean;\n  status: 'active' | 'inactive' | 'current' | 'error' | 'warning' | 'internal';\n  animation: 'pulse' | 'none';\n  variant: 'circle' | 'square';\n  inGroup: boolean;\n}>;\n\nconst root: ComponentFunction<AvatarStyleProps> = ({ size = 10, inGroup }, ...etc) =>\n  mx(\n    'relative inline-flex shrink-0',\n    getSize(size),\n    inGroup && (size === 'px' || size <= 3 ? '-mr-1' : '-mr-2'),\n    ...etc,\n  );\n\nconst label: ComponentFunction<AvatarStyleProps> = ({ srOnly }, ...etc) => mx(srOnly && 'sr-only', ...etc);\n\nconst description: ComponentFunction<AvatarStyleProps> = ({ srOnly }, ...etc) =>\n  mx('text-description', srOnly && 'sr-only', ...etc);\n\nconst frame: ComponentFunction<AvatarStyleProps> = ({ variant }, ...etc) =>\n  mx('h-full w-full bg-(--surface-bg)', variant === 'circle' ? 'rounded-full' : 'rounded-sm', ...etc);\n\nconst statusIcon: ComponentFunction<AvatarStyleProps> = ({ status, size = 3 }, ...etc) =>\n  mx(\n    'absolute bottom-0 end-0',\n    getSize(size),\n    status === 'inactive'\n      ? 'text-amber-400 dark:text-amber-300'\n      : status === 'active'\n        ? 'text-emerald-400 dark:text-emerald-300'\n        : 'text-neutral-400 dark:text-neutral-300',\n    ...etc,\n  );\n\nconst ring: ComponentFunction<AvatarStyleProps> = ({ status, variant, animation }, ...etc) =>\n  mx(\n    'absolute inset-0 border-2',\n    variant === 'circle' ? 'rounded-full' : 'rounded-sm',\n    status === 'current'\n      ? 'border-primary-400 dark:border-primary-500'\n      : status === 'active'\n        ? 'border-emerald-400 dark:border-emerald-400'\n        : status === 'error'\n          ? 'border-rose-400 dark:border-rose-500'\n          : status === 'warning'\n            ? 'border-amber-400 dark:border-amber-500'\n            : status === 'inactive'\n              ? 'border-separator'\n              : status === 'internal'\n                ? 'border-fuchsia-600'\n                : 'border-[color:var(--surface-bg)]',\n    animation === 'pulse' ? 'animate-halo-pulse' : '',\n    ...etc,\n  );\n\nconst fallbackText: ComponentFunction<AvatarStyleProps> = (_props, ...etc) => mx('fill-white', ...etc);\n\nconst group: ComponentFunction<AvatarStyleProps> = (_props, ...etc) => mx('inline-flex items-center', ...etc);\n\nconst groupLabel: ComponentFunction<AvatarStyleProps> = ({ size, srOnly }, ...etc) =>\n  mx(\n    srOnly\n      ? 'sr-only'\n      : 'rounded-full truncate text-sm leading-none py-1 px-2 relative z-[1] flex items-center justify-center',\n    size && getHeight(size),\n    ...etc,\n  );\n\nconst groupDescription: ComponentFunction<AvatarStyleProps> = ({ srOnly }, ...etc) =>\n  mx(srOnly ? 'sr-only' : 'text-description', ...etc);\n\nexport const avatarTheme: Theme<AvatarStyleProps> = {\n  root,\n  label,\n  description,\n  statusIcon,\n  frame,\n  ring,\n  fallbackText,\n  group,\n  groupLabel,\n  groupDescription,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nexport type breadcrumbStyleProps = {};\n\nconst root: ComponentFunction<breadcrumbStyleProps> = (_props, ...etc) => mx('shrink-0 flex items-center', ...etc);\n\nconst list: ComponentFunction<breadcrumbStyleProps> = (_props, ...etc) => mx('contents', ...etc);\n\nconst listItem: ComponentFunction<breadcrumbStyleProps> = (_props, ...etc) => mx('contents', ...etc);\n\nconst current: ComponentFunction<breadcrumbStyleProps> = (_props, ...etc) => mx(...etc);\n\nconst separator: ComponentFunction<breadcrumbStyleProps> = (_props, ...etc) => mx('opacity-50', ...etc);\n\nexport const breadcrumbTheme: Theme<breadcrumbStyleProps> = {\n  root,\n  list,\n  listItem,\n  current,\n  separator,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport type { ComponentFunction, Density, Elevation, Theme } from '@dxos/ui-types';\n\nexport type ButtonStyleProps = Partial<{\n  inGroup?: boolean;\n  textWrap?: boolean;\n  density: Density;\n  elevation: Elevation;\n  disabled: boolean;\n  variant: 'default' | 'primary' | 'ghost' | 'outline';\n}>;\n\nconst root: ComponentFunction<ButtonStyleProps> = (_props, ...etc) => {\n  return mx('dx-button dx-focus-ring group gap-1 [&_span]:truncate', ...etc);\n};\n\nconst group: ComponentFunction<{ elevation?: Elevation }> = (_props, ...etc) => {\n  return mx(\n    'inline-flex rounded-xs [&>:first-child]:rounded-w-sm [&>:last-child]:rounded-ie-sm [&>button]:relative',\n    ...etc,\n  );\n};\n\nexport const buttonTheme: Theme<ButtonStyleProps> = {\n  root,\n  group,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport type { ComponentFunction, Theme } from '@dxos/ui-types';\n\nimport { type ButtonStyleProps } from './Button.theme';\n\nexport type IconButtonStyleProps = ButtonStyleProps & {\n  iconOnly?: boolean;\n  square?: boolean;\n};\n\nconst root: ComponentFunction<IconButtonStyleProps> = ({ iconOnly, square }, ...etc) => {\n  return mx('px-1.5', !iconOnly && 'gap-1.5', square && 'aspect-square', ...etc);\n};\n\nexport const iconButtonTheme: Theme<IconButtonStyleProps> = {\n  root,\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Density, type Theme } from '@dxos/ui-types';\n\nexport type CardStyleProps = {\n  border?: boolean;\n  fullWidth?: boolean;\n  srOnly?: boolean;\n  variant?: 'default' | 'subtitle' | 'description';\n  density?: Density;\n  truncate?: boolean;\n  padding?: boolean;\n};\n\nconst root: ComponentFunction<CardStyleProps> = ({ border, fullWidth }, ...etc) =>\n  mx(\n    'dx-card dx-card-surface dx-card-min-width dx-card-max-width min-h-(--dx-rail-item) group/card relative overflow-hidden',\n    border && 'border border-subdued-separator rounded-sm dx-focus-ring-group-y-indicator',\n    fullWidth && 'max-w-none!',\n    ...etc,\n  );\n\nconst header: ComponentFunction<CardStyleProps> = (_, ...etc) =>\n  mx(\n    'dx-card__header col-span-3 grid grid-cols-subgrid items-center',\n    '[&>*:not(.dx-gutter)]:col-start-2 [&>*:not(.dx-gutter)>*]:col-start-2',\n    ...etc,\n  );\n\nconst title: ComponentFunction<CardStyleProps> = (_props, ...etc) => mx('dx-card__title grow truncate', ...etc);\n\nconst body: ComponentFunction<CardStyleProps> = (_props, ...etc) => mx('dx-card__body contents', ...etc);\n\nconst block: ComponentFunction<CardStyleProps> = (_props, ...etc) => mx('dx-card__block', ...etc);\n\nconst text: ComponentFunction<CardStyleProps> = ({ variant = 'default', truncate: _truncate }, ...etc) =>\n  mx(\n    'dx-card__text items-center overflow-hidden',\n    variant === 'default' && 'py-1',\n    variant === 'description' && 'py-1.5 text-description',\n    ...etc,\n  );\n\nconst textSpan: ComponentFunction<CardStyleProps> = ({ variant = 'default', truncate }, ...etc) =>\n  mx(variant === 'description' && 'text-sm text-description line-clamp-3', truncate && 'truncate', ...etc);\n\nconst poster: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n  mx('dx-card__poster col-span-3 max-h-[200px] select-none pointer-events-none', ...etc);\n\nconst posterIcon: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n  mx('dx-card__poster-icon col-span-3 grid place-items-center bg-input-surface text-subdued max-h-[200px]', ...etc);\n\nconst action: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n  mx(\n    'dx-card__action col-span-3 grid grid-cols-subgrid [&>*:not(.dx-gutter)]:col-start-2 [&>*:not(.dx-gutter)>*]:col-start-2 p-0! gap-0! w-full text-start overflow-hidden',\n    ...etc,\n  );\n\nconst actionLabel: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n  mx('dx-card__action-label min-w-0 flex-1 truncate', ...etc);\n\nconst link: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n  mx(\n    'dx-card__link col-span-3 grid grid-cols-subgrid [&>*:not(.dx-gutter)]:col-start-2 [&>*:not(.dx-gutter)>*]:col-start-2 group p-0! dx-button dx-focus-ring min-h-1!',\n    ...etc,\n  );\n\nconst linkLabel: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n  mx('dx-card__link-label min-w-0 flex-1 truncate text-sm!', ...etc);\n\nconst row: ComponentFunction<CardStyleProps> = ({ fullWidth }, ...etc) =>\n  mx(\n    'dx-card__row overflow-hidden',\n    fullWidth\n      ? 'col-span-full'\n      : // The `>*` selector reaches the real grid item when a content child is `display: contents`\n        // (e.g. `dx-avatar`), which the direct-child selector cannot target. It is inert for normal\n        // block children, whose inner nodes are not grid items of this row.\n        'col-span-3 grid grid-cols-subgrid [&>*:not(.dx-gutter)]:col-start-2 [&>*:not(.dx-gutter)>*]:col-start-2',\n    ...etc,\n  );\n\n// NOTE: Direct children that lack an explicit `col-*` utility default to the\n// Column.Root center track (via `--dx-col`); see `ui-theme`'s `css/components/card.css`.\nconst section: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n  mx('dx-card__section col-span-full grid grid-cols-subgrid', ...etc);\n\nconst sectionTitle: ComponentFunction<CardStyleProps> = (_props, ...etc) =>\n  mx('dx-card__section-title col-start-2 col-span-full py-2 text-xs text-description font-medium uppercase', ...etc);\n\nexport const cardTheme: Theme<CardStyleProps> = {\n  root,\n  header,\n  title,\n  body,\n  block,\n  row,\n  section,\n  'section-title': sectionTitle,\n  text,\n  'text-span': textSpan,\n  poster,\n  'poster-icon': posterIcon,\n  action,\n  'action-label': actionLabel,\n  link,\n  'link-label': linkLabel,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ComponentFunction } from '@dxos/ui-types';\n\nimport { withColumn } from './withColumn';\n\nexport type ColumnStyleProps = {};\n\nexport type ColumnBlockStyleProps = {\n  /** Trailing gutter (column 3) instead of the default leading gutter (column 1). */\n  end?: boolean;\n  compact?: boolean;\n  /** Constrain to a square (1:1) slot rather than the default rail-item width. */\n  square?: boolean;\n};\n\nconst root: ComponentFunction<ColumnStyleProps> = (_, ...etc) => {\n  return mx('dx-column-root grid', ...etc);\n};\n\n/**\n * Three-column subgrid row spanning all 3 columns of the parent Column.Root grid.\n * Placement is explicit, not source-order based:\n * - `Column.Block` self-places into column 1 (leading) or column 3 (trailing, `end`) and\n *   carries the `dx-gutter` marker class.\n * - Every other (content) child is placed in column 2 via `[&>*:not(.dx-gutter)]`.\n * Class-based placement (rather than `[data-slot=…]`) is used because Tailwind does not\n * generate arbitrary variants that nest a square-bracket attribute selector.\n * Robust to conditional children: a falsy leading slot never shifts content into a gutter.\n * NOTE: Must not use overflow-hidden here since it will clip input focus rings.\n */\nconst row: ComponentFunction<ColumnStyleProps> = (_, ...etc) => {\n  return mx('col-span-3 grid grid-cols-subgrid', '[&>*:not(.dx-gutter)]:col-start-2', ...etc);\n};\n\n/**\n * Gutter slot geometry: a `--dx-rail-item` square that centers its child, so a passive\n * `<Icon>` and an interactive `IconButton` line up to the pixel. Self-places into column 1\n * (default) or column 3 (`end`); the `dx-gutter` marker keeps it out of the content track.\n */\nconst block: ComponentFunction<ColumnBlockStyleProps> = ({ end, compact, square }, ...etc) =>\n  mx(\n    'dx-gutter grid place-items-center [&>img]:max-w-[1.5rem]',\n    end ? 'col-start-3' : 'col-start-1',\n    square ? 'aspect-square' : 'w-[var(--dx-rail-item)]',\n    compact ? '' : 'h-[var(--dx-rail-item)]',\n    ...etc,\n  );\n\n/**\n * Bleed placement: spans all 3 columns of the parent Column.Root grid (gutter-to-gutter).\n * Use for `ScrollArea`, full-width dividers, tables, or any content that should ignore gutters.\n */\nconst bleed: ComponentFunction<ColumnStyleProps> = (_, ...etc) => {\n  return mx('col-span-full grid grid-cols-subgrid min-h-0', ...etc);\n};\n\n/**\n * Center placement: places the element in column 2 (the central track between gutters) of the\n * parent Column.Root grid. Does NOT use subgrid — placement is explicit on this element only.\n * Safe to nest arbitrary compound components (including those that render `display: contents`).\n */\nconst center: ComponentFunction<ColumnStyleProps> = (_, ...etc) => {\n  return mx(withColumn.center(), 'min-h-0', ...etc);\n};\n\nexport const columnTheme = {\n  root,\n  row,\n  block,\n  bleed,\n  center,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';\n\nimport { withColumn } from '../Column/withColumn';\n\nexport type DialogSize = 'sm' | 'md' | 'lg' | 'xl';\n\nconst sizeMap: Record<DialogSize, string> = {\n  sm: 'md:max-w-[24rem]',\n  md: 'md:max-w-[32rem]!',\n  lg: 'md:max-w-[40rem]!',\n  xl: 'md:max-w-[60rem]!',\n};\n\nexport type DialogStyleProps = {\n  srOnly?: boolean;\n  inOverlayLayout?: boolean;\n  elevation?: Elevation;\n  size?: DialogSize;\n};\n\nconst overlay: ComponentFunction<DialogStyleProps> = (_props, ...etc) => mx('dx-dialog__overlay', ...etc);\n\nconst content: ComponentFunction<DialogStyleProps> = ({ inOverlayLayout, size = 'md' }, ...etc) => {\n  return mx(\n    '@container',\n    'dx-dialog__content dx-focus-ring dx-modal-surface py-4',\n    !inOverlayLayout && 'fixed z-50 top-[50%] left-[50%] -translate-x-[50%] -translate-y-[50%]',\n    sizeMap[size],\n    ...etc,\n  );\n};\n\nconst header: ComponentFunction<DialogStyleProps> = (_props, ...etc) =>\n  mx('dx-dialog__header flex pb-4 items-center justify-between', withColumn.center(), ...etc);\n\nconst body: ComponentFunction<DialogStyleProps> = (_props, ...etc) =>\n  mx('dx-dialog__body dx-expander gap-y-2', withColumn.propagate(), ...etc);\n\nconst actionBar: ComponentFunction<DialogStyleProps> = (_props, ...etc) =>\n  mx('dx-dialog__actionbar flex items-center pt-4 gap-2', withColumn.center(), ...etc);\n\nconst title: ComponentFunction<DialogStyleProps> = ({ srOnly }, ...etc) =>\n  mx('dx-dialog__title', srOnly && 'sr-only', ...etc);\n\nconst description: ComponentFunction<DialogStyleProps> = ({ srOnly }, ...etc) =>\n  mx('dx-dialog__description', 'text-description', srOnly && 'sr-only', ...etc);\n\nexport const dialogTheme: Theme<DialogStyleProps> = {\n  overlay,\n  content,\n  header,\n  body,\n  actionbar: actionBar,\n  title,\n  description,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nexport type FocusStyleProps = {\n  border?: boolean;\n};\n\n/**\n * Focus ring styles shared by Focus.Group and Focus.Item.\n * Uses a `::after` pseudo-element overlay so the ring paints above child content\n * (inset box-shadow alone is obscured by children with backgrounds).\n * The pseudo-element is `pointer-events-none` and absolutely positioned over the element.\n * When `border` is true, a subdued CSS border is always visible (e.g., for grid cell edges).\n */\nconst ring: ComponentFunction<FocusStyleProps> = ({ border }, ...etc) =>\n  mx(\n    'dx-ring-pseudo outline-hidden',\n    'focus:after:ring-focus-ring-subtle',\n    'data-[focus-state=active]:after:ring-focus-ring-subtle',\n    'data-[focus-state=error]:after:ring-rose-500',\n    border && 'border border-separator',\n    ...etc,\n  );\n\nexport const focusTheme: Theme<FocusStyleProps> = {\n  group: ring,\n  item: ring,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { getSize, mx } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Size, type Theme } from '@dxos/ui-types';\n\nexport type IconStyleProps = {\n  size?: Size;\n};\n\nexport type IconBlockStyleProps = {\n  compact?: boolean;\n  /** Constrain to a square (1:1) slot rather than the default rail-item width. */\n  square?: boolean;\n};\n\n/**\n * Size can be specified directly, or inherited from a container (e.g., toolbar).\n */\nconst root: ComponentFunction<IconStyleProps> = ({ size }, etc) => {\n  return mx(\n    'shrink-0 text-[var(--icons-color,currentColor)]',\n    size\n      ? getSize(size)\n      : '[width:var(--icon-size,var(--dx-default-icons-size))] [height:var(--icon-size,var(--dx-default-icons-size))]',\n    etc,\n  );\n};\n\n/**\n * Static slot sized to `--dx-rail-item` so a wrapped `Icon` lines up with an `IconButton iconOnly`.\n */\nconst block: ComponentFunction<IconBlockStyleProps> = ({ compact, square }, ...etc) =>\n  mx(\n    'grid place-items-center shrink-0 [&>img]:max-w-[1.5rem]',\n    square ? 'aspect-square' : 'w-[var(--dx-rail-item)]',\n    compact ? '' : 'h-[var(--dx-rail-item)]',\n    ...etc,\n  );\n\nexport const iconTheme: Theme<IconStyleProps & IconBlockStyleProps> = {\n  root,\n  block,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { densityDimensions, staticDisabled } from '@dxos/ui-theme';\nimport { getSize, mx, sizeValue, snapSize, textValence } from '@dxos/ui-theme';\nimport {\n  type ComponentFragment,\n  type ComponentFunction,\n  type Density,\n  type Elevation,\n  type MessageValence,\n  type Size,\n} from '@dxos/ui-types';\n\nexport type InputStyleProps = Partial<{\n  variant: 'default' | 'subdued' | 'static';\n  density: Density;\n  disabled: boolean;\n  elevation: Elevation;\n  focused: boolean;\n  validationValence: MessageValence;\n  size: Size;\n  checked: boolean;\n}>;\n\nexport type InputMetaStyleProps = Partial<{\n  srOnly: boolean;\n  validationValence: MessageValence;\n}>;\n\nconst textInputSurfaceFocus =\n  'transition-colors bg-input-surface focus:bg-focus-surface border border-input-separator focus:border-separator';\n\nconst textInputSurfaceHover = 'hover:bg-focus-surface';\n\n// TODO(burdon): Replace with semantic tokens.\nconst valence = (valence?: MessageValence) => {\n  switch (valence) {\n    case 'success':\n      return 'shadow-emerald-500/50 dark:shadow-emerald-600/50';\n    case 'info':\n      return 'shadow-cyan-500/50 dark:shadow-cyan-600/50';\n    case 'warning':\n      return 'shadow-amber-500/50 dark:shadow-amber-600/50';\n    case 'error':\n      return 'shadow-rose-500/50 dark:shadow-rose-600/50';\n  }\n};\n\nconst sharedSubduedInputStyles: ComponentFragment<InputStyleProps> = (props) => [\n  '[[data-drag-autoscroll=\"active\"]_&]:pointer-events-none',\n  'py-0 w-full bg-transparent text-current placeholder-placeholder',\n  'dx-focus-subdued',\n  densityDimensions(props.density),\n  props.disabled && staticDisabled,\n];\n\nconst sharedDefaultInputStyles: ComponentFragment<InputStyleProps> = (props) => [\n  '[[data-drag-autoscroll=\"active\"]_&]:pointer-events-none',\n  'py-0 w-full text-base-fg rounded-xs placeholder-placeholder',\n  textInputSurfaceFocus,\n  densityDimensions(props.density),\n  props.disabled ? staticDisabled : textInputSurfaceHover,\n];\n\nconst sharedStaticInputStyles: ComponentFragment<InputStyleProps> = (props) => [\n  '[[data-drag-autoscroll=\"active\"]_&]:pointer-events-none',\n  'py-0 w-full text-base-fg rounded-xs placeholder-placeholder',\n  textInputSurfaceFocus,\n  textInputSurfaceHover,\n  props.focused && 'bg-attention-surface',\n  valence(props.validationValence),\n  props.disabled && staticDisabled,\n  props.focused && 'dx-focus-static',\n];\n\nconst input: ComponentFunction<InputStyleProps> = (props, ...etc) =>\n  props.variant === 'subdued'\n    ? mx(...sharedSubduedInputStyles(props), ...etc)\n    : props.variant === 'static'\n      ? mx(...sharedStaticInputStyles(props), ...etc)\n      : mx(\n          ...sharedDefaultInputStyles(props),\n          !props.disabled && 'dx-focus-ring',\n          valence(props.validationValence),\n          ...etc,\n        );\n\nconst textArea: ComponentFunction<InputStyleProps> = (props, ...etc) => input(props, ...etc);\n\nconst checkbox: ComponentFunction<InputStyleProps> = ({ size = 4 }, ...etc) =>\n  mx('dx-checkbox dx-focus-ring', getSize(size), ...etc);\n\nconst checkboxIndicator: ComponentFunction<InputStyleProps> = ({ size = 4, checked }, ...etc) =>\n  mx(getSize(snapSize(sizeValue(size) * 0.65, 4)), !checked && 'invisible', ...etc);\n\nconst switch_: ComponentFunction<InputStyleProps> = (_props, ...etc) => mx('dx-checkbox--switch dx-focus-ring', ...etc);\n\nconst pin: ComponentFunction<InputStyleProps> = (props, ...etc) =>\n  mx(\n    'font-mono selection:bg-transparent mx-auto',\n    props.density === 'lg'\n      ? 'text-lg'\n      : props.density === 'sm'\n        ? 'text-sm'\n        : props.density === 'xs'\n          ? 'text-xs'\n          : 'text-base pointer-fine:text-sm',\n    props.disabled && 'cursor-not-allowed',\n    ...etc,\n  );\n\nconst segment: ComponentFunction<InputStyleProps> = (props, ...etc) =>\n  mx(\n    'flex items-center justify-center tabular-nums',\n    props.density === 'lg'\n      ? 'size-12 rounded-xs'\n      : props.density === 'sm'\n        ? 'size-7 rounded-xs'\n        : props.density === 'xs'\n          ? 'size-6 rounded-xs'\n          : 'size-10 pointer-fine:size-8 rounded-xs',\n    'bg-input-surface text-base-fg transition-colors border border-separator',\n    'data-[focused]:bg-attention-surface data-[focused]:border-focus-ring-subtle',\n    'data-[focused]:ring-2 data-[focused]:ring-offset-0 data-[focused]:ring-focus-ring-subtle',\n    valence(props.validationValence),\n    props.disabled && staticDisabled,\n    ...etc,\n  );\n\nconst label: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>\n  mx('block text-sm text-description', props.srOnly && 'sr-only', ...etc);\n\nconst description: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>\n  mx('text-description', props.srOnly && 'sr-only', ...etc);\n\nconst descriptionAndValidation: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>\n  mx('leading-none my-1.5', props.srOnly && 'sr-only', ...etc);\n\nconst validation: ComponentFunction<InputMetaStyleProps> = (props, ...etc) =>\n  mx('text-sm text-description', props.srOnly ? 'sr-only' : textValence(props.validationValence), ...etc);\n\nconst triggerIcon: ComponentFunction<{}> = (_p, ...etc) =>\n  mx(\n    'shrink-0 inline-flex items-center justify-center size-7 rounded-xs',\n    'bg-input-surface text-subdued hover:text-base-fg hover:bg-hover-surface',\n    'dx-focus-ring',\n    ...etc,\n  );\n\nconst block: ComponentFunction<InputStyleProps> = (props, ...etc) =>\n  mx('grid place-items-center w-[var(--dx-rail-item)] h-[var(--dx-rail-item)]', ...etc);\n\nexport const inputTheme = {\n  input,\n  textArea,\n  pin,\n  segment,\n  label,\n  description,\n  checkbox,\n  checkboxIndicator,\n  switch: switch_,\n  block,\n  validation,\n  descriptionAndValidation,\n  triggerIcon,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nexport type LinkStyleProps = {\n  variant?: 'accent' | 'neutral';\n};\n\nconst root: ComponentFunction<LinkStyleProps> = ({ variant }, ...etc) => mx('dx-link', ...etc);\n\nexport const linkTheme: Theme<LinkStyleProps> = {\n  root,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ComponentFunction } from '@dxos/ui-types';\n\nimport { mainPaddingTransitions } from './constants';\n\nconst padding = 'dx-main-content-padding';\n\nexport type MainStyleProps = Partial<{\n  bounce: boolean;\n  handlesFocus: boolean;\n}>;\n\nconst content: ComponentFunction<MainStyleProps> = ({ bounce }, ...etc) =>\n  mx(padding, mainPaddingTransitions, bounce && 'dx-main-bounce-layout', 'dx-focus-ring-main', ...etc);\n\nconst sidebar: ComponentFunction<MainStyleProps> = (_, ...etc) =>\n  mx('dx-main-sidebar', 'dx-focus-ring-inset-over-all', ...etc);\n\nconst overlay: ComponentFunction<MainStyleProps> = (_, ...etc) => mx('dx-main-overlay', ...etc);\n\nexport const mainTheme = {\n  content,\n  sidebar,\n  overlay,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { dataDisabled } from '@dxos/ui-theme';\nimport { mx, surfaceShadow, surfaceZIndex } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';\n\nexport type MenuStyleProps = Partial<{\n  constrainBlockSize: boolean;\n  elevation: Elevation;\n}>;\n\nconst content: ComponentFunction<MenuStyleProps> = ({ elevation }, ...etc) =>\n  mx(\n    'dx-popover-surface w-48 rounded-sm md:w-56 border border-separator',\n    surfaceZIndex({ elevation, level: 'menu' }),\n    surfaceShadow({ elevation: 'positioned' }),\n    ...etc,\n  );\n\nconst viewport: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>\n  mx('rounded-sm p-1 max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto', ...etc);\n\nconst item: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>\n  mx(\n    'flex cursor-pointer select-none items-center gap-2 rounded-xs px-2 py-2 text-sm',\n    'hover:bg-hover-surface data-[highlighted]:bg-hover-surface',\n    'dx-focus-subdued',\n    dataDisabled,\n    ...etc,\n  );\n\nconst separator: ComponentFunction<MenuStyleProps> = (_props, ...etc) => mx('my-1 mx-2 h-px bg-separator', ...etc);\n\nconst groupLabel: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>\n  mx('text-description', 'select-none px-2 py-2', ...etc);\n\nconst arrow: ComponentFunction<MenuStyleProps> = (_props, ...etc) => mx('fill-separator', ...etc);\n\nexport const menuTheme: Theme<MenuStyleProps> = {\n  content,\n  viewport,\n  item,\n  separator,\n  groupLabel,\n  arrow,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { messageValence, mx } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Elevation, type MessageValence, type Theme } from '@dxos/ui-types';\n\nexport type MessageStyleProps = {\n  valence?: MessageValence;\n  elevation?: Elevation;\n};\n\nconst root: ComponentFunction<MessageStyleProps> = ({ valence }, etc) => {\n  return mx('p-1 rounded-sm', messageValence(valence), etc);\n};\n\nconst header: ComponentFunction<MessageStyleProps> = (_, etc) => {\n  return mx('items-center', etc);\n};\n\nconst title: ComponentFunction<MessageStyleProps> = (_, etc) => {\n  return mx('col-start-2 overflow-hidden truncate', etc);\n};\n\nconst content: ComponentFunction<MessageStyleProps> = (_, etc) => {\n  return mx('col-start-2 flex flex-col first:font-medium pb-1.5', etc);\n};\n\nexport const messageTheme: Theme<MessageStyleProps> = {\n  root,\n  header,\n  title,\n  content,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ComponentFunction } from '@dxos/ui-types';\n\ntype Size = 'lg' | 'md' | 'sm';\n\nexport type PanelStyleProps = {\n  size?: Size;\n};\n\nconst sizes: Record<Size, string> = {\n  lg: 'h-(--dx-topbar-size)',\n  md: 'h-(--dx-toolbar-size)',\n  sm: 'h-(--dx-statusbar-size)',\n};\n\nconst root: ComponentFunction<PanelStyleProps> = (_, ...etc) =>\n  mx(\n    'dx-container grid grid-cols-[100%] overflow-hidden',\n    // Add uncategorized children to content slot.\n    '[&>*:not([data-slot])]:[grid-area:content]',\n    ...etc,\n  );\n\n// Toolbars default to the bar surface (tier 5); callers can still override via the trailing classes.\nconst toolbar: ComponentFunction<PanelStyleProps> = ({ size = 'md' }, ...etc) =>\n  mx('[grid-area:toolbar]', 'shrink-0', 'bg-toolbar-surface', sizes[size], ...etc);\n\nconst content: ComponentFunction<PanelStyleProps> = (_, ...etc) => mx('[grid-area:content] min-h-0', ...etc);\n\nconst statusbar: ComponentFunction<PanelStyleProps> = ({ size = 'md' }, ...etc) =>\n  mx('[grid-area:statusbar]', 'shrink-0', sizes[size], ...etc);\n\nexport const panelTheme = {\n  root,\n  toolbar,\n  content,\n  statusbar,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { mx, surfaceShadow, surfaceZIndex } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';\n\nexport type PopoverStyleProps = Partial<{\n  constrainBlock: boolean;\n  constrainInline: boolean;\n  elevation: Elevation;\n}>;\n\nconst content: ComponentFunction<PopoverStyleProps> = ({ elevation }, ...etc) =>\n  mx(\n    'dx-popover-surface overflow-hidden border border-separator rounded-sm',\n    surfaceShadow({ elevation: 'positioned' }),\n    surfaceZIndex({ elevation, level: 'menu' }),\n    'dx-focus-ring',\n    ...etc,\n  );\n\nconst viewport: ComponentFunction<PopoverStyleProps> = ({ constrainBlock, constrainInline }, ...etc) =>\n  mx(\n    'grid grid-rows-[1fr] min-h-0 min-w-popover-min-width',\n    (constrainBlock || constrainInline) && 'overflow-hidden',\n    constrainBlock && 'max-h-(--radix-popover-content-available-height)',\n    constrainBlock &&\n      'max-h-[min(var(--radix-popover-content-available-height),calc(100dvh-var(--spacing-screen-border)*2))]',\n    constrainInline && 'max-w-(--radix-popover-content-available-width)',\n    ...etc,\n  );\n\nconst arrow: ComponentFunction<PopoverStyleProps> = (_props, ...etc) => mx('fill-separator', ...etc);\n\nexport const popoverTheme: Theme<PopoverStyleProps> = {\n  content,\n  viewport,\n  arrow,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type AllowedAxis, type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nimport { withColumn } from '../Column/withColumn';\n\nexport type ScrollAreaStyleProps = {\n  orientation?: AllowedAxis;\n  autoHide?: boolean;\n  /** Balance left/right, top/bottom offset with scrollbar. */\n  centered?: boolean;\n  /** Add default padding. */\n  /** TODO(burdon): Integrate with Column.Root padding. */\n  padding?: boolean;\n  /** Use thin scrollbars. */\n  /** TODO(burdon): Density fine/course. */\n  thin?: boolean;\n  /** Enable snap scrolling. */\n  snap?: boolean;\n};\n\nconst root: ComponentFunction<ScrollAreaStyleProps> = ({ orientation }, ...etc) =>\n  mx(\n    // Expand\n    'dx-container',\n\n    orientation === 'vertical' && 'group/scroll-v flex flex-col',\n    orientation === 'horizontal' && 'group/scroll-h flex',\n    // `flex flex-col` is required (as in `vertical`) so the viewport's `flex-1 min-h-0` can\n    // bound its height; without it the viewport grows to content height and only scrolls\n    // horizontally (the root clips the vertical overflow instead of scrolling it).\n    orientation === 'all' && 'group/scroll-all flex flex-col',\n\n    // Apply col-span-full only when inside a Column.Root grid (detected via dx-column-root marker).\n    '[.dx-column-root_&]:col-span-full',\n\n    ...etc,\n  );\n\n/**\n * NOTE: The browser reserves space for scrollbars.\n */\nconst viewport: ComponentFunction<ScrollAreaStyleProps> = (\n  { orientation, centered, padding, snap, autoHide },\n  ...etc\n) => {\n  return mx(\n    'flex-1 min-h-0 w-full',\n\n    // Reset --dx-col so nested components don't try to grid-position themselves.\n    // ScrollArea has already consumed --gutter for padding.\n    withColumn.consumed(),\n\n    orientation === 'vertical' && 'overflow-y-scroll',\n    orientation === 'horizontal' && 'flex overflow-x-scroll overscroll-x-contain',\n    orientation === 'all' && 'overflow-scroll',\n\n    '[&::-webkit-scrollbar-corner]:bg-transparent',\n    '[&::-webkit-scrollbar-track]:bg-transparent',\n    '[&::-webkit-scrollbar-thumb]:rounded-none',\n\n    '[&::-webkit-scrollbar]:w-[var(--scroll-width)] [&::-webkit-scrollbar]:h-[var(--scroll-width)]',\n\n    // If contained within Column.Root grid the gutter is set by that component (--gutter CSS variable).\n    // If centered, left padding compensates for scrollbar width so content is visually centered.\n    (orientation === 'vertical' || orientation === 'all') &&\n      (padding\n        ? [\n            centered ? 'pl-[var(--gutter,calc(var(--scroll-width)+var(--scroll-padding)))]' : 'pl-[var(--gutter,0)]',\n            'pr-[calc(var(--gutter,calc(var(--scroll-width)+var(--scroll-padding)))-var(--scroll-width))]',\n          ]\n        : centered && 'pl-[var(--scroll-width)]'),\n\n    (orientation === 'horizontal' || orientation === 'all') &&\n      (padding\n        ? [centered && 'pt-[calc(var(--scroll-width)+var(--scroll-padding))]', 'pb-[var(--scroll-padding)]']\n        : centered && 'pt-[var(--scroll-width)]'),\n\n    snap && [\n      orientation === 'vertical' && 'snap-y snap-mandatory',\n      orientation === 'horizontal' && 'snap-x snap-mandatory',\n      orientation === 'all' && 'snap-both snap-mandatory',\n    ],\n\n    autoHide\n      ? [\n          orientation === 'vertical' && 'group-hover/scroll-v:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n          orientation === 'horizontal' && 'group-hover/scroll-h:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n          orientation === 'all' && 'group-hover/scroll-all:[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n        ]\n      : [\n          orientation === 'vertical' && '[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n          orientation === 'horizontal' && '[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n          orientation === 'all' && '[&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb',\n        ],\n\n    ...etc,\n  );\n};\n\nexport const scrollAreaTheme: Theme<ScrollAreaStyleProps> = {\n  root,\n  viewport,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { mx, surfaceShadow, surfaceZIndex } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';\n\nexport type SelectStyleProps = Partial<{\n  elevation: Elevation;\n}>;\n\nconst content: ComponentFunction<SelectStyleProps> = ({ elevation }, ...etc) => {\n  return mx(\n    'dx-modal-surface rounded-sm border border-separator',\n    'min-w-(--radix-select-trigger-width) max-h-(--radix-select-content-available-height)',\n    surfaceShadow({ elevation: 'positioned' }),\n    surfaceZIndex({ elevation, level: 'menu' }),\n    ...etc,\n  );\n};\n\nconst triggerButton: ComponentFunction<SelectStyleProps> = (_props, ...etc) =>\n  mx('bg-input-surface grid grid-cols-[1fr_auto] [&>span]:text-left', ...etc);\n\nconst viewport: ComponentFunction<SelectStyleProps> = (_props, ...etc) => mx(...etc);\n\nconst item: ComponentFunction<SelectStyleProps> = (_props, ...etc) =>\n  mx(\n    'flex items-center min-h-[2rem] px-2.5 py-1 gap-2',\n    'text-base-fg leading-none select-none outline-hidden',\n    '[&>svg]:invisible [&[data-state=checked]>svg]:visible',\n    'dx-highlighted',\n    ...etc,\n  );\n\nconst itemIndicator: ComponentFunction<SelectStyleProps> = (_props, ...etc) => mx('items-center', ...etc);\n\nconst arrow: ComponentFunction<SelectStyleProps> = (_props, ...etc) => mx('fill-separator', ...etc);\n\nconst separator: ComponentFunction<SelectStyleProps> = (_props, ...etc) =>\n  mx('self-stretch border-b my-1 border-separator', ...etc);\n\nconst scrollButton: ComponentFunction<SelectStyleProps> = (_props, ...etc) =>\n  mx('dx-modal-surface flex items-center justify-center cursor-default h-6 w-full', ...etc);\n\nexport const selectTheme: Theme<SelectStyleProps> = {\n  content,\n  triggerButton,\n  viewport,\n  item,\n  itemIndicator,\n  arrow,\n  separator,\n  scrollButton,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nexport type SeparatorStyleProps = {\n  orientation?: 'horizontal' | 'vertical';\n  subdued?: boolean;\n};\n\nconst root: ComponentFunction<SeparatorStyleProps> = ({ orientation, subdued }, ...etc) =>\n  mx(\n    'self-stretch',\n    orientation === 'vertical' ? 'border-e mx-1' : 'border-b my-1',\n    subdued ? 'border-subdued-separator' : 'border-separator',\n    ...etc,\n  );\n\nexport const separatorTheme: Theme<SeparatorStyleProps> = {\n  root,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport type { ComponentFunction, Theme } from '@dxos/ui-types';\n\nexport type SkeletonStyleProps = {\n  variant?: 'default' | 'circle' | 'text';\n};\n\nconst root: ComponentFunction<SkeletonStyleProps> = ({ variant = 'default' }, ...etc) =>\n  mx(\n    'animate-pulse bg-neutral-300 dark:bg-neutral-700 rounded-md',\n    variant === 'circle' && 'rounded-full',\n    variant === 'text' && 'rounded-sm',\n    ...etc,\n  );\n\nexport const skeletonTheme: Theme<SkeletonStyleProps> = {\n  root,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nexport type SplitterStyleProps = {\n  orientation?: 'horizontal' | 'vertical';\n};\n\nconst root: ComponentFunction<SplitterStyleProps> = ({ orientation }, ...etc) =>\n  mx('relative flex w-full h-full overflow-hidden', orientation === 'vertical' ? 'flex-col' : 'flex-row', ...etc);\n\nconst panel: ComponentFunction<SplitterStyleProps> = (_props, ...etc) =>\n  mx('relative grid overflow-hidden min-w-0 min-h-0', ...etc);\n\n// A 7px grab area, absolutely positioned and centered on the split point (the component sets the offset),\n// containing a persistent 1px divider line that brightens on hover/focus/active.\nconst handle: ComponentFunction<SplitterStyleProps> = ({ orientation }, ...etc) =>\n  mx(\n    'group absolute z-10 touch-none select-none',\n    'before:absolute before:block before:bg-separator',\n    'before:transition-colors before:duration-100 before:ease-in-out hover:before:bg-focus-ring-subtle focus-visible:before:bg-focus-ring-subtle active:before:bg-focus-ring-subtle',\n    orientation === 'vertical'\n      ? 'h-[7px] cursor-row-resize before:inset-x-0 before:top-1/2 before:-translate-y-1/2 before:h-px'\n      : 'w-[7px] cursor-col-resize before:inset-y-0 before:left-1/2 before:-translate-x-1/2 before:w-px',\n    ...etc,\n  );\n\nexport const splitterTheme: Theme<SplitterStyleProps> = {\n  root,\n  panel,\n  handle,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport type { ComponentFunction, Theme } from '@dxos/ui-types';\n\nexport type StatusStyleProps = {\n  variant?: 'default' | 'main-bottom';\n  indeterminate?: boolean;\n};\n\nconst root: ComponentFunction<StatusStyleProps> = ({ variant = 'default' }, ...etc) =>\n  mx(\n    'h-1 relative rounded-full overflow-hidden',\n    variant === 'main-bottom' ? 'w-full block' : 'inline-20 inline-block bg-base-surface',\n    ...etc,\n  );\n\nconst bar: ComponentFunction<StatusStyleProps> = ({ variant = 'default', indeterminate }, ...etc) =>\n  mx(\n    'absolute inset-y-0 block rounded-full',\n    variant === 'main-bottom' ? 'bg-composer-300' : 'bg-un-accent',\n    indeterminate ? 'animate-progress-indeterminate' : 'start-0',\n    ...etc,\n  );\n\nexport const statusTheme: Theme<StatusStyleProps> = {\n  root,\n  bar,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport {\n  type ChromaticPalette,\n  type ComponentFunction,\n  type MessageValence,\n  type NeutralPalette,\n  type Theme,\n} from '@dxos/ui-types';\n\nexport type TagStyleProps = {\n  hue?: ChromaticPalette | NeutralPalette | MessageValence;\n};\n\nconst root: ComponentFunction<TagStyleProps> = (_, ...etc) => mx('dx-tag', ...etc);\n\nexport const tagTheme: Theme<TagStyleProps> = {\n  root,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { mx, surfaceShadow } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nexport type ToastStyleProps = {};\n\nconst viewport: ComponentFunction<ToastStyleProps> = (_props, ...etc) =>\n  mx(\n    'z-40 fixed bottom-[calc(env(safe-area-inset-bottom)+1rem)]',\n    'inset-start-[calc(env(safe-area-inset-left)+1rem)] inset-end-[calc(env(safe-area-inset-right)+1rem)]',\n    'w-auto md:end-[calc(env(safe-area-inset-right)+4rem)] md:left-auto md:w-full md:max-w-sm',\n    'rounded-md flex flex-col gap-2',\n    ...etc,\n  );\n\nconst root: ComponentFunction<ToastStyleProps> = (_props, ...etc) =>\n  mx(\n    'dx-popover-surface rounded-md p-1',\n    surfaceShadow({ elevation: 'toast' }),\n    'radix-state-open:animate-toast-slide-in-bottom md:radix-state-open:animate-toast-slide-in-right',\n    'radix-state-closed:animate-toast-hide',\n    'radix-swipe-end:animate-toast-swipe-out',\n    'translate-x-radix-toast-swipe-move-x',\n    'radix-swipe-cancel:translate-x-0 radix-swipe-cancel:duration-200 radix-swipe-cancel:ease-[ease]',\n    'dx-focus-ring',\n    ...etc,\n  );\n\nconst grid: ComponentFunction<ToastStyleProps> = (_props, ...etc) => mx('gap-y-1 pbe-1', ...etc);\n\nconst header: ComponentFunction<ToastStyleProps> = (_props, ...etc) => mx('items-center', ...etc);\n\nconst title: ComponentFunction<ToastStyleProps> = (_props, ...etc) => mx('col-start-2 truncate font-medium', ...etc);\n\nconst description: ComponentFunction<ToastStyleProps> = (_props, ...etc) =>\n  mx('col-start-2 overflow-hidden text-description', ...etc);\n\nconst actions: ComponentFunction<ToastStyleProps> = (_props, ...etc) => mx('flex gap-2 mbs-1', ...etc);\n\nexport const toastTheme: Theme<ToastStyleProps> = {\n  viewport,\n  root,\n  grid,\n  header,\n  title,\n  description,\n  actions,\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Density, type Theme } from '@dxos/ui-types';\n\nexport type ToolbarStyleProps = Partial<{\n  density: Density;\n  disabled: boolean;\n  layoutManaged: boolean;\n}>;\n\nconst layout =\n  'w-full shrink-0 flex flex-nowrap p-1 gap-1 items-center overflow-x-auto scrollbar-none dx-contain-layout';\n\nconst root: ComponentFunction<ToolbarStyleProps> = ({ density, disabled, layoutManaged }, ...etc) => {\n  return mx(\n    'bg-toolbar-surface dx-toolbar shadow-sm',\n    density === 'lg' && 'h-(--dx-rail-size) px-3!',\n    density === 'sm' && 'h-7 px-2!',\n    density === 'xs' && 'h-6 px-1!',\n    disabled && '*:opacity-20',\n    !layoutManaged && layout,\n    ...etc,\n  );\n};\n\nconst text: ComponentFunction<ToolbarStyleProps> = (_, ...etc) => {\n  return mx('px-2 grow truncate items-center', ...etc);\n};\n\nexport const toolbarTheme: Theme<ToolbarStyleProps> = {\n  root,\n  text,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';\n\nimport { tooltipContent } from './tooltipContent';\n\nexport type TooltipStyleProps = Partial<{\n  elevation: Elevation;\n}>;\n\nconst arrow: ComponentFunction<TooltipStyleProps> = (_props, ...etc) => mx('fill-inverse-surface', ...etc);\n\nexport const tooltipTheme: Theme<TooltipStyleProps> = {\n  content: tooltipContent,\n  arrow,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nexport type CalendarStyleProps = Partial<{}>;\n\n//\n// Theme slots target react-aria-components elements. RAC attaches `data-*` attributes to its\n// rendered nodes (`data-selected`, `data-focused`, `data-disabled`, `data-outside-month`,\n// `data-selection-start`, `data-selection-end`, `data-hovered`, etc.) which we hook into via\n// Tailwind's `data-[…]:` modifiers.\n//\n\nconst root: ComponentFunction<CalendarStyleProps> = (_p, ...etc) =>\n  mx('relative w-fit h-fit self-start p-2 select-none bg-group-surface text-base-fg', ...etc);\n\nconst nav: ComponentFunction<CalendarStyleProps> = (_p, ...etc) => mx('flex items-center justify-between pb-1', ...etc);\n\nconst caption_label: ComponentFunction<CalendarStyleProps> = (_p, ...etc) =>\n  mx('flex-1 text-center text-sm font-medium', ...etc);\n\nconst button_previous: ComponentFunction<CalendarStyleProps> = (_p, ...etc) =>\n  mx(\n    'h-7 w-7 inline-flex items-center justify-center rounded-sm shrink-0',\n    'text-description hover:bg-hover-surface',\n    'data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed',\n    ...etc,\n  );\n\nconst button_next: ComponentFunction<CalendarStyleProps> = (_p, ...etc) =>\n  mx(\n    'h-7 w-7 inline-flex items-center justify-center rounded-sm shrink-0',\n    'text-description hover:bg-hover-surface',\n    'data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed',\n    ...etc,\n  );\n\nconst month_grid: ComponentFunction<CalendarStyleProps> = (_p, ...etc) => mx('w-full border-collapse', ...etc);\n\nconst weekdays: ComponentFunction<CalendarStyleProps> = (_p, ...etc) => mx('', ...etc);\n\nconst weekday: ComponentFunction<CalendarStyleProps> = (_p, ...etc) =>\n  mx('w-9 h-7 text-xs font-thin text-description', ...etc);\n\nconst day: ComponentFunction<CalendarStyleProps> = (_p, ...etc) =>\n  mx(\n    'relative w-9 h-9 p-0 text-center text-sm rounded-sm inline-flex items-center justify-center cursor-pointer',\n    'outline-none',\n    'data-[hovered]:bg-hover-surface',\n    'data-[focus-visible]:outline-2 data-[focus-visible]:outline-primary-500',\n    // Highlight today (overridden by the selected style below when today is also the selected day).\n    'data-[today]:text-orange-500 data-[today]:font-medium',\n    'data-[selected]:bg-primary-500 data-[selected]:text-primary-fg data-[selected]:hover:bg-primary-500',\n    'data-[outside-month]:text-description/40',\n    'data-[disabled]:text-description/40 data-[disabled]:cursor-not-allowed data-[disabled]:hover:bg-transparent',\n    'data-[unavailable]:line-through data-[unavailable]:text-description/50 data-[unavailable]:cursor-not-allowed',\n    // Range selection visual layer.\n    'data-[selection-start]:rounded-l-sm data-[selection-end]:rounded-r-sm',\n    'data-[selection-start]:bg-primary-500 data-[selection-end]:bg-primary-500',\n    ...etc,\n  );\n\nexport const calendarTheme: Theme<CalendarStyleProps> = {\n  root,\n  nav,\n  caption_label,\n  button_previous,\n  button_next,\n  month_grid,\n  weekdays,\n  weekday,\n  day,\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { mx } from '@dxos/ui-theme';\nimport { type ComponentFunction, type Theme } from '@dxos/ui-types';\n\nexport type DatePickerStyleProps = Partial<{\n  hasValue: boolean;\n}>;\n\nconst trigger: ComponentFunction<DatePickerStyleProps> = ({ hasValue }, ...etc) =>\n  mx(\n    'inline-flex w-fit items-center gap-2 px-2 rounded-sm border border-separator',\n    'bg-input-surface text-base-fg',\n    'hover:bg-hover-surface focus-visible:outline-2 focus-visible:outline-primary-500',\n    !hasValue && 'text-description',\n    ...etc,\n  );\n\nconst content: ComponentFunction<DatePickerStyleProps> = (_p, ...etc) => mx('flex flex-col gap-2 p-2', ...etc);\n\nconst timeField: ComponentFunction<DatePickerStyleProps> = (_p, ...etc) =>\n  mx(\n    'flex items-center gap-2 px-2 py-1',\n    '[&_input]:bg-input-surface [&_input]:border [&_input]:border-separator',\n    '[&_input]:rounded-sm [&_input]:px-2 [&_input]:py-1',\n    ...etc,\n  );\n\nexport const datePickerTheme: Theme<DatePickerStyleProps> = {\n  trigger,\n  content,\n  timeField,\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Theme } from '@dxos/ui-types';\n\nimport { avatarTheme } from '../components/Avatars/Avatar.theme';\nimport { breadcrumbTheme } from '../components/Breadcrumb/Breadcrumb.theme';\nimport { buttonTheme } from '../components/Button/Button.theme';\nimport { iconButtonTheme } from '../components/Button/IconButton.theme';\nimport { calendarTheme } from '../components/Calendar/Calendar.theme';\nimport { cardTheme } from '../components/Card/Card.theme';\nimport { columnTheme } from '../components/Column/Column.theme';\nimport { datePickerTheme } from '../components/DatePicker/DatePicker.theme';\nimport { dialogTheme } from '../components/Dialog/Dialog.theme';\nimport { focusTheme } from '../components/Focus/Focus.theme';\nimport { iconTheme } from '../components/Icon/Icon.theme';\nimport { inputTheme } from '../components/Input/Input.theme';\nimport { linkTheme } from '../components/Link/Link.theme';\nimport { mainTheme } from '../components/Main/Main.theme';\nimport { menuTheme } from '../components/Menu/Menu.theme';\nimport { messageTheme } from '../components/Message/Message.theme';\nimport { panelTheme } from '../components/Panel/Panel.theme';\nimport { popoverTheme } from '../components/Popover/Popover.theme';\nimport { scrollAreaTheme } from '../components/ScrollArea/ScrollArea.theme';\nimport { selectTheme } from '../components/Select/Select.theme';\nimport { separatorTheme } from '../components/Separator/Separator.theme';\nimport { skeletonTheme } from '../components/Skeleton/Skeleton.theme';\nimport { splitterTheme } from '../components/Splitter/Splitter.theme';\nimport { statusTheme } from '../components/Status/Status.theme';\nimport { tagTheme } from '../components/Tag/Tag.theme';\nimport { toastTheme } from '../components/Toast/Toast.theme';\nimport { toolbarTheme } from '../components/Toolbar/Toolbar.theme';\nimport { tooltipTheme } from '../components/Tooltip/Tooltip.theme';\nimport { bindTheme } from './bindTheme';\n\nexport const defaultTheme: Theme<Record<string, any>> = {\n  themeName: () => 'default',\n\n  //\n  // Primitives\n  //\n\n  column: columnTheme,\n  panel: panelTheme,\n\n  //\n  // Components\n  //\n\n  avatar: avatarTheme,\n  breadcrumb: breadcrumbTheme,\n  button: buttonTheme,\n  calendar: calendarTheme,\n  card: cardTheme,\n  datePicker: datePickerTheme,\n  dialog: dialogTheme,\n  focus: focusTheme,\n  icon: iconTheme,\n  iconButton: iconButtonTheme,\n  input: inputTheme,\n  link: linkTheme,\n  main: mainTheme,\n  message: messageTheme,\n  menu: menuTheme,\n  popover: popoverTheme,\n  scrollArea: scrollAreaTheme,\n  select: selectTheme,\n  separator: separatorTheme,\n  skeleton: skeletonTheme,\n  splitter: splitterTheme,\n  status: statusTheme,\n  tag: tagTheme,\n  toast: toastTheme,\n  toolbar: toolbarTheme,\n  tooltip: tooltipTheme,\n};\n\nexport const defaultTx = bindTheme(defaultTheme);\n"],
  "mappings": ";;;AAIA,OAAOA,SAAiCC,qBAAqB;AAYtD,IAAMC,iBAAiBD,8BAAmC;EAAEE,SAAS;AAAK,CAAA;AAE1E,IAAMC,kBAAkB,CAAC,EAAED,SAASE,SAAQ,MACjD,sBAAA,cAACH,eAAeI,UAAQ;EAACC,OAAO;IAAEJ;EAAQ;GAAIE,QAAAA;;;ACfhD,OAAOG,UAAiCC,iBAAAA,sBAAqB;AAYtD,IAAMC,mBAAmBD,gBAAAA,eAAqC;EAAEE,WAAW;AAAO,CAAA;AAElF,IAAMC,oBAAoB,CAAC,EAAED,WAAWE,SAAQ,MACrD,gBAAAL,OAAA,cAACE,iBAAiBI,UAAQ;EAACC,OAAO;IAAEJ;EAAU;GAAIE,QAAAA;;;ACZ7C,IAAMG,iBAAiB,MAAA;AAE5B,SAAO,CAAC,CAACC,UAAUC,UAAUC,MAAM,wBAAA;AACrC;;;ACNA,SAAsBC,QAAQC,oBAAoB;AAClD,OAAOC,UAAyBC,UAAUC,iBAAAA,gBAAeC,YAAYC,WAAWC,gBAAgB;AAChG,SAASC,iBAAiBC,kBAAkBC,6BAA6B;AAEzE,SAAwBC,cAAcC,YAAY;AAElD,IAAMC,YAAY;AAClB,IAAMC,kBAAkBb;AAYjB,IAAMc,sBAAsBX,gBAAAA,eAAc;EAC/CY,OAAOH;EACPI,UAAUH;AACZ,CAAA;AAEO,IAAML,iBAAiB,IAAIS,SAAAA;AAChC,QAAMC,SAAST,sBAAAA,GAAyBQ,IAAAA;AACxC,QAAM,EAAED,SAAQ,IAAKZ,WAAWU,mBAAAA;AAChC,SAAO;IAAE,GAAGI;IAAQF;EAAS;AAC/B;AAEO,IAAMG,uBAAuB,CAAC,EACnCC,UACAC,oBACAC,UACAP,OACAC,SAAQ,MACkB;AAC1B,QAAM,CAACO,QAAQC,SAAAA,IAAalB,SAAS,KAAA;AACrCD,YAAU,MAAA;AACRmB,cAAU,KAAA;AAEV,QAAIH,sBAAsBA,mBAAmBI,QAAQ;AACnDf,mBAAaW,kBAAAA;IACf;AAEAG,cAAU,IAAA;EACZ,GAAG;IAACH;GAAmB;AAIvB,SACE,gBAAApB,OAAA,cAACM,iBAAAA;IAAgBI;KACf,gBAAAV,OAAA,cAACa,oBAAoBY,UAAQ;IAACC,OAAO;MAAEZ,OAAOA,SAASH;MAAWI,UAAUA,YAAYH;IAAgB;KACtG,gBAAAZ,OAAA,cAACC,UAAAA;IAASkB;KAAqBG,SAASD,WAAWF,QAAAA,CAAAA,CAAAA;AAI3D;;;ACzDA,SAASQ,qBAAqB;AAC9B,OAAOC,UAAiCC,iBAAAA,gBAAeC,aAAAA,YAAWC,eAAe;;;ACDjF,SAASC,cAAAA,mBAAkB;AAMpB,IAAMC,sBAAsB,CAACC,mBAAAA;AAClC,QAAM,EAAEC,UAAS,IAAKC,YAAWC,gBAAAA;AACjC,SAAOH,kBAAkBC;AAC3B;;;ACTA,SAASG,cAAAA,mBAAkB;AAE3B,SAASC,aAAa;AAIf,IAAMC,kBAAkB,MAAMC,YAAWC,YAAAA,KAAiBC,MAAM,IAAIC,MAAM,sBAAA,CAAA;;;ACNjF,SAASC,aAAaC,YAAAA,iBAAgB;AAEtC,SAASC,yBAAyB;AAI3B,IAAMC,kBAAkB;EAAEC,KAAKC;EAAKC,OAAOD;EAAKE,QAAQF;EAAKG,MAAMH;AAAI;AAEvE,IAAMI,cAAc,MAAA;AACzB,QAAM,CAACC,UAASC,UAAAA,IAAcV,UAA0BE,eAAAA;AACxD,QAAMS,eAAeZ,YAAY,MAAA;AAC/BW,eAAW;MACTP,KAAKS,WAAWC,iBAAiBC,SAASC,eAAe,EAAEC,iBAAiB,iBAAA,CAAA;MAC5EX,OAAOO,WAAWC,iBAAiBC,SAASC,eAAe,EAAEC,iBAAiB,mBAAA,CAAA;MAC9EV,QAAQM,WAAWC,iBAAiBC,SAASC,eAAe,EAAEC,iBAAiB,oBAAA,CAAA;MAC/ET,MAAMK,WAAWC,iBAAiBC,SAASC,eAAe,EAAEC,iBAAiB,kBAAA,CAAA;IAC/E,CAAA;EACF,GAAG,CAAA,CAAE;AAELf,oBAAkBU,YAAAA;AAClB,SAAOF;AACT;;;AHEO,IAAMQ,eAAeC,gBAAAA,eAA6CC,MAAAA;AASlE,IAAMC,gBAAgB,CAAC,EAC5BC,UACAC,WAAW,MACXC,oBACAC,OACAC,KAAK,CAACC,OAAOC,gBAAgBC,aAAaT,QAC1CU,YAAY,QACZC,cAAc,MACdC,SACAC,SAAQ,MACW;AACnBC,EAAAA,WAAU,MAAA;AACR,QAAIC,SAASC,aAAa;AACxB,YAAMC,KAAKC,cAAcH,SAASC,WAAW;AAC7CC,SAAGE,UAAUC,yBAAAA;AACb,aAAO,MAAMH,GAAGI,YAAYD,yBAAAA;IAC9B;EACF,GAAG,CAAA,CAAE;AAEL,QAAME,kBAAkBC,YAAAA;AAExB,QAAMC,eAAeC,QACnB,OAAO;IAAEnB;IAAII;IAAWgB,gBAAgBA,eAAAA;IAAkBJ;IAAiBV;IAASC;EAAS,IAC7F;IAACP;IAAII;IAAWY;IAAiBV;IAASC;GAAS;AAGrD,SACE,gBAAAc,OAAA,cAAC7B,aAAa8B,UAAQ;IAACC,OAAOL;KAC5B,gBAAAG,OAAA,cAACG,sBACK;IACF3B;IACAC;IACAC;EACF,GAEA,gBAAAsB,OAAA,cAACI,mBAAAA;IAAkBC,WAAU;KAC3B,gBAAAL,OAAA,cAACM,iBAAAA;IAAgBC,SAASvB;KAAcT,QAAAA,CAAAA,CAAAA,CAAAA;AAKlD;AAEA,IAAMkB,4BAA4B,CAACe,oBAAAA;AACjC,MAAIA,iBAAiB;AACnBpB,aAASqB,KAAKC,aAAa,mBAAmB,MAAA;EAChD,OAAO;AACLtB,aAASqB,KAAKE,gBAAgB,iBAAA;EAChC;AACF;;;AI9EA,SAASC,4BAA4B;AACrC,SAASC,uBAAuB;AAChC,SAASC,0BAA0B;AAEnC,SAASC,wBAAwB;AACjC,SAASC,aAAa;AACtB,YAAYC,qBAAqB;AACjC,SAAiCC,yBAAyB;AAC1D,SAASC,UAAUC,uBAAuB;AAC1C,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAE1B,SAASC,4BAA4B;AACrC,YAAYC,6BAA6B;AACzC,OAAOC,UAOLC,YACAC,eAAAA,cACAC,aAAAA,YACAC,WAAAA,UACAC,QACAC,YAAAA,iBACK;AAKP,IAAM,CAACC,sBAAsBC,kBAAAA,IAAsBC,mBAAmB,WAAW;EAACC;CAAkB;AACpG,IAAMC,iBAAiBD,kBAAAA;AAMvB,IAAME,yBAAyB;AAC/B,IAAMC,eAAe;AACrB,IAAMC,eAAe;AAiBrB,IAAM,CAACC,wBAAwBC,iBAAAA,IAAqBT,qBAA0CO,YAAAA;AAyB9F,IAAMG,kBAA4C,CAACC,UAAAA;AACjD,QAAM,EACJC,gBACAC,UACAC,MAAMC,UACNC,cAAc,OACdC,cACAC,0BAA0B,OAC1BC,gBAAgBd,wBAChBe,oBAAoB,IAAG,IACrBT;AACJ,QAAMU,mBAAmBC,OAAO,IAAA;AAChC,QAAMC,wBAAwBD,OAAO,KAAA;AACrC,QAAME,oBAAoBF,OAAO,CAAA;AAEjCG,EAAAA,WAAU,MAAA;AACR,UAAMC,iBAAiBF,kBAAkBG;AACzC,WAAO,MAAMC,OAAOC,aAAaH,cAAAA;EACnC,GAAG,CAAA,CAAE;AAEL,QAAMI,cAAc1B,eAAeQ,cAAAA;AACnC,QAAM,CAACmB,UAASC,UAAAA,IAAcC,UAAmC,IAAA;AACjE,QAAM,CAACC,UAASC,UAAAA,IAAcF,UAAoB,IAAA;AAClD,QAAM,CAACG,MAAMC,OAAAA,IAAWJ,UAAkCK,MAAAA;AAC1D,QAAMC,aAAajB,OAAiCS,QAAAA;AACpD,QAAMS,sBAAsBC,aAC1B,CAACC,aAAuCC,aAAyBC,aAAAA;AAC/DZ,eAAWU,WAAAA;AACXH,eAAWZ,UAAUe;AACrBP,eAAWQ,eAAe,IAAA;AAC1BN,YAAQO,QAAAA;EACV,GACA,CAAA,CAAE;AAEJ,QAAMC,YAAYC,MAAAA;AAClB,QAAMC,eAAezB,OAAO,CAAA;AAC5B,QAAM0B,oBAAoB1B,OAAO,KAAA;AACjC,QAAM2B,mBAAmBR,aACvB,CAAC3B,UAAAA;AACC,QAAIA,OAAM;AACRc,aAAOC,aAAaL,kBAAkBG,OAAO;AAC7CN,uBAAiBM,UAAU;AAG3BuB,eAASC,cAAc,IAAIC,YAAY9C,YAAAA,CAAAA;IACzC,OAAO;AACLsB,aAAOC,aAAaL,kBAAkBG,OAAO;AAC7CH,wBAAkBG,UAAUC,OAAOyB,WAAW,MAAOhC,iBAAiBM,UAAU,MAAOP,iBAAAA;IACzF;AACAH,mBAAeH,KAAAA;EACjB,GACA;IAACM;IAAmBH;GAAa;AAEnC,QAAM,CAACH,OAAO,OAAOwC,OAAAA,IAAWC,qBAAqB;IACnDC,MAAMzC;IACN0C,aAAazC;IACb0C,UAAUT;EACZ,CAAA;AACA,QAAMU,iBAAiBC,SAAQ,MAAA;AAC7B,WAAO9C,OAAQkC,kBAAkBrB,UAAU,iBAAiB,iBAAkB;EAChF,GAAG;IAACb;GAAK;AAET,QAAM+C,aAAapB,aAAY,MAAA;AAC7Bb,WAAOC,aAAakB,aAAapB,OAAO;AACxCoB,iBAAapB,UAAU;AACvBqB,sBAAkBrB,UAAU;AAC5B2B,YAAQ,IAAA;EACV,GAAG;IAACA;GAAQ;AAEZ,QAAMQ,cAAcrB,aAAY,MAAA;AAC9Bb,WAAOC,aAAakB,aAAapB,OAAO;AACxCoB,iBAAapB,UAAU;AACvB2B,YAAQ,KAAA;EACV,GAAG;IAACA;GAAQ;AAEZ,QAAMS,oBAAoBtB,aAAY,MAAA;AACpCb,WAAOC,aAAakB,aAAapB,OAAO;AACxCoB,iBAAapB,UAAUC,OAAOyB,WAAW,MAAA;AACvCL,wBAAkBrB,UAAU;AAC5B2B,cAAQ,IAAA;AACRP,mBAAapB,UAAU;IACzB,GAAGR,aAAAA;EACL,GAAG;IAACA;IAAemC;GAAQ;AAE3B7B,EAAAA,WAAU,MAAA;AACR,WAAO,MAAA;AACL,UAAIsB,aAAapB,SAAS;AACxBC,eAAOC,aAAakB,aAAapB,OAAO;AACxCoB,qBAAapB,UAAU;MACzB;IACF;EACF,GAAG,CAAA,CAAE;AAEL,QAAM,EAAEqC,GAAE,IAAKC,gBAAAA;AACf,QAAMC,YAAYC,oBAAAA;AAElB,SACE,gBAAAC,OAAA,cAAiBC,sBAASvC,aACxB,gBAAAsC,OAAA,cAAC5D,wBAAAA;IACC8D,OAAO1D;IACPiC;IACA/B;IACA6C;IACA5B,SAASA;IACTwC,iBAAiB/B;IACjBgC,gBAAgB/B,aAAY,MAAA;AAC1B,UAAIpB,iBAAiBM,SAAS;AAC5BoC,0BAAAA;MACF,OAAO;AACLF,mBAAAA;MACF;IACF,GAAG;MAACxC;MAAkB0C;MAAmBF;KAAW;IACpDY,gBAAgBhC,aAAY,MAAA;AAC1B,UAAIvB,yBAAyB;AAC3B4C,oBAAAA;MACF,OAAO;AAELlC,eAAOC,aAAakB,aAAapB,OAAO;AACxCoB,qBAAapB,UAAU;MACzB;IACF,GAAG;MAACmC;MAAa5C;KAAwB;IACzCwD,QAAQb;IACRc,SAASb;IACT5C;IACAK;IACAqD,0BAA0BnC,aAAY,CAACoC,cAAAA;AACrCtD,4BAAsBI,UAAUkD;IAClC,GAAG,CAAA,CAAE;KAEL,gBAAAT,OAAA,cAACU,gBAAAA;IAAe1C;IAAY2C,WAAWf,GAAG,mBAAmB;MAAEE;IAAU,CAAA;KACtEhC,UACD,gBAAAkC,OAAA,cAACY,cAAAA;IAAaD,WAAWf,GAAG,eAAA;OAE9B,gBAAAI,OAAA,cAACa,uBAAAA;IAAsBC,YAAY3C;MAClC1B,QAAAA,CAAAA;AAIT;AAEAH,gBAAgByE,cAAc5E;AAM9B,IAAM0E,wBAAwB,CAAC,EAC7BC,YACAtE,eAAc,MAC4C;AAC1D,QAAMkB,cAAc1B,eAAeQ,cAAAA;AACnC,SAAO,gBAAAwD,OAAA,cAAiBgB,wBAAM;IAACC,SAAAA;IAAS,GAAGvD;IAAaoD;;AAC1D;AAMA,IAAMI,eAAe;AAWrB,IAAMC,iBAAiBC,2BACrB,CAAC7E,OAAgD8E,iBAAAA;AAC/C,QAAM;IACJ7E;IACA8E;;IAEAvE,eAAewE;IACfvD;IACAF,SAAAA;IACA,GAAG0D;EAAAA,IACDjF;AACJ,QAAMkF,UAAUpF,kBAAkB6E,cAAc1E,cAAAA;AAChD,QAAMkF,MAAMxE,OAA8B,IAAA;AAC1C,QAAMyE,eAAeC,gBAAgBP,cAAcK,GAAAA;AACnD,QAAMG,mBAAmB3E,OAAO,KAAA;AAChC,QAAM4E,0BAA0B5E,OAAO,KAAA;AACvC,QAAM6E,kBAAkB1D,aAAY,MAAOwD,iBAAiBtE,UAAU,OAAQ,CAAA,CAAE;AAEhFF,EAAAA,WAAU,MAAA;AACR,WAAO,MAAMyB,SAASkD,oBAAoB,aAAaD,eAAAA;EACzD,GAAG;IAACA;GAAgB;AAEpB,SACE,gBAAA/B,OAAA,cAACiC,UAAUC,QAAM;;;IAGfC,oBAAkBV,QAAQ/E,OAAO+E,QAAQhD,YAAYP;IACrDkE,cAAYX,QAAQlC;IACnB,GAAGiC;IACJE,KAAKC;IACLU,eAAeC,qBAAqB/F,MAAM8F,eAAe,CAACE,UAAAA;AACxD,UAAIA,MAAMC,gBAAgB,SAAS;AACjC;MACF;AACA,UAAI,CAACV,wBAAwBvE,WAAW,CAACkE,QAAQtE,sBAAsBI,SAAS;AAC9E+D,qBAAaiB,KAAAA;AACb,YAAIA,MAAME,kBAAkB;AAC1B;QACF;AACAhB,gBAAQtB,gBAAgBuB,IAAInE,SAASO,UAASE,IAAAA;AAC9CyD,gBAAQrB,eAAc;AACtB0B,gCAAwBvE,UAAU;MACpC;IACF,CAAA;IACAmF,gBAAgBJ,qBAAqB/F,MAAMmG,gBAAgB,MAAA;AACzDjB,cAAQpB,eAAc;AACtByB,8BAAwBvE,UAAU;IACpC,CAAA;IACAoF,eAAeL,qBAAqB/F,MAAMoG,eAAe,MAAA;AACvD,UAAIlB,QAAQ/E,MAAM;AAChB+E,gBAAQlB,QAAO;MACjB;AACAsB,uBAAiBtE,UAAU;AAC3BuB,eAAS8D,iBAAiB,aAAab,iBAAiB;QAAEc,MAAM;MAAK,CAAA;IACvE,CAAA;IACAC,SAASvG,MAAMuG;IACfC,QAAQT,qBAAqB/F,MAAMwG,QAAQtB,QAAQlB,OAAO;IAC1DyC,SAASV,qBAAqB/F,MAAMyG,SAASvB,QAAQlB,OAAO;;AAGlE,CAAA;AAGFY,eAAeJ,cAAcG;AAM7B,IAAM+B,cAAc;AAGpB,IAAM,CAACC,gBAAgBC,gBAAAA,IAAoBvH,qBAAyCqH,aAAa;EAC/FG,YAAYlF;AACd,CAAA;AAgBA,IAAMmF,gBAAwC,CAAC9G,UAAAA;AAC7C,QAAM,EAAEC,gBAAgB4G,YAAY3G,UAAU6G,UAAS,IAAK/G;AAC5D,QAAMkF,UAAUpF,kBAAkB4G,aAAazG,cAAAA;AAC/C,SACE,gBAAAwD,OAAA,cAACkD,gBAAAA;IAAehD,OAAO1D;IAAgB4G;KACrC,gBAAApD,OAAA,cAACuD,UAAAA;IAASC,SAASJ,cAAc3B,QAAQ/E;KACvC,gBAAAsD,OAAA,cAACyD,iBAAAA;IAAgBxC,SAAAA;IAAQqC;KACtB7G,QAAAA,CAAAA,CAAAA;AAKX;AAEA4G,cAActC,cAAckC;AAM5B,IAAMS,eAAe;AAWrB,IAAMhD,iBAAiBU,2BACrB,CAAC7E,OAAgD8E,iBAAAA;AAC/C,QAAMsC,gBAAgBR,iBAAiBO,cAAcnH,MAAMC,cAAc;AACzE,QAAM,EAAE4G,aAAaO,cAAcP,YAAYpF,OAAO,OAAO,GAAG4F,aAAAA,IAAiBrH;AACjF,QAAMkF,UAAUpF,kBAAkBqH,cAAcnH,MAAMC,cAAc;AAEpE,SACE,gBAAAwD,OAAA,cAACuD,UAAAA;IAASC,SAASJ,cAAc3B,QAAQ/E;KACtC+E,QAAQ3E,0BACP,gBAAAkD,OAAA,cAAC6D,oBAAAA;IAAmB7F;IAAa,GAAG4F;IAAclC,KAAKL;OAEvD,gBAAArB,OAAA,cAAC8D,yBAAAA;IAAwB9F;IAAa,GAAG4F;IAAclC,KAAKL;;AAIpE,CAAA;AASF,IAAMyC,0BAA0B1C,2BAC9B,CAAC7E,OAAyD8E,iBAAAA;AACxD,QAAMI,UAAUpF,kBAAkBqH,cAAcnH,MAAMC,cAAc;AACpE,QAAMkF,MAAMxE,OAAuC,IAAA;AACnD,QAAMyE,eAAeC,gBAAgBP,cAAcK,GAAAA;AACnD,QAAM,CAACqC,kBAAkBC,mBAAAA,IAAuBnG,UAAyB,IAAA;AAEzE,QAAM,EAAEF,SAAAA,UAAS4C,QAAO,IAAKkB;AAC7B,QAAM3D,WAAU4D,IAAInE;AAEpB,QAAM,EAAEiD,yBAAwB,IAAKiB;AAErC,QAAMwC,wBAAwB5F,aAAY,MAAA;AACxC2F,wBAAoB,IAAA;AACpBxD,6BAAyB,KAAA;EAC3B,GAAG;IAACA;GAAyB;AAE7B,QAAM0D,wBAAwB7F,aAC5B,CAACkE,OAAqB4B,gBAAAA;AACpB,UAAMC,gBAAgB7B,MAAM6B;AAC5B,UAAMC,YAAY;MAAEC,GAAG/B,MAAMgC;MAASC,GAAGjC,MAAMkC;IAAQ;AACvD,UAAMC,WAAWC,oBAAoBN,WAAWD,cAAcQ,sBAAqB,CAAA;AACnF,UAAMC,mBAAmBC,oBAAoBT,WAAWK,QAAAA;AACxD,UAAMK,oBAAoBC,kBAAkBb,YAAYS,sBAAqB,CAAA;AAC7E,UAAMK,YAAYC,QAAQ;SAAIL;SAAqBE;KAAkB;AACrEf,wBAAoBiB,SAAAA;AACpBzE,6BAAyB,IAAA;EAC3B,GACA;IAACA;GAAyB;AAG5BnD,EAAAA,WAAU,MAAA;AACR,WAAO,MAAM4G,sBAAAA;EACf,GAAG;IAACA;GAAsB;AAE1B5G,EAAAA,WAAU,MAAA;AACR,QAAIM,YAAWG,UAAS;AACtB,YAAMqH,qBAAqB,CAAC5C,UAAwB2B,sBAAsB3B,OAAOzE,QAAAA;AACjF,YAAMsH,qBAAqB,CAAC7C,UAAwB2B,sBAAsB3B,OAAO5E,QAAAA;AAEjFA,MAAAA,SAAQiF,iBAAiB,gBAAgBuC,kBAAAA;AACzCrH,MAAAA,SAAQ8E,iBAAiB,gBAAgBwC,kBAAAA;AACzC,aAAO,MAAA;AACLzH,QAAAA,SAAQqE,oBAAoB,gBAAgBmD,kBAAAA;AAC5CrH,QAAAA,SAAQkE,oBAAoB,gBAAgBoD,kBAAAA;MAC9C;IACF;EACF,GAAG;IAACzH;IAASG;IAASoG;IAAuBD;GAAsB;AAEnE5G,EAAAA,WAAU,MAAA;AACR,QAAI0G,kBAAkB;AACpB,YAAMsB,0BAA0B,CAAC9C,UAAAA;AAC/B,cAAM+C,SAAS/C,MAAM+C;AACrB,cAAMC,kBAAkB;UAAEjB,GAAG/B,MAAMgC;UAASC,GAAGjC,MAAMkC;QAAQ;AAC7D,cAAMe,mBAAmB7H,UAAS8H,SAASH,MAAAA,KAAWxH,UAAS2H,SAASH,MAAAA;AACxE,cAAMI,4BAA4B,CAACC,iBAAiBJ,iBAAiBxB,gBAAAA;AAErE,YAAIyB,kBAAkB;AACpBvB,gCAAAA;QACF,WAAWyB,2BAA2B;AACpCzB,gCAAAA;AACA1D,kBAAAA;QACF;MACF;AACAzB,eAAS8D,iBAAiB,eAAeyC,uBAAAA;AACzC,aAAO,MAAMvG,SAASkD,oBAAoB,eAAeqD,uBAAAA;IAC3D;EACF,GAAG;IAAC1H;IAASG;IAASiG;IAAkBxD;IAAS0D;GAAsB;AAEvE,SAAO,gBAAAjE,OAAA,cAAC6D,oBAAAA;IAAoB,GAAGtH;IAAOmF,KAAKC;;AAC7C,CAAA;AAGF,IAAM,CAACiE,sCAAsCC,+BAAAA,IAAmCjK,qBAAqBO,cAAc;EACjH2J,UAAU;AACZ,CAAA;AAuBA,IAAMjC,qBAAqBzC,2BACzB,CAAC7E,OAAoD8E,iBAAAA;AACnD,QAAM,EACJ7E,gBACAC,UACA,cAAcsJ,WACdC,iBACAC,sBACA,GAAGrC,aAAAA,IACDrH;AACJ,QAAMkF,UAAUpF,kBAAkBqH,cAAclH,cAAAA;AAChD,QAAMkB,cAAc1B,eAAeQ,cAAAA;AACnC,QAAM,EAAE+D,QAAO,IAAKkB;AAGpBpE,EAAAA,WAAU,MAAA;AACRyB,aAAS8D,iBAAiB1G,cAAcqE,OAAAA;AACxC,WAAO,MAAMzB,SAASkD,oBAAoB9F,cAAcqE,OAAAA;EAC1D,GAAG;IAACA;GAAQ;AAGZlD,EAAAA,WAAU,MAAA;AACR,QAAIoE,QAAQ9D,SAAS;AACnB,YAAMuI,eAAe,CAAC3D,UAAAA;AACpB,cAAM+C,SAAS/C,MAAM+C;AACrB,YAAIA,QAAQG,SAAShE,QAAQ9D,OAAO,GAAG;AACrC4C,kBAAAA;QACF;MACF;AACA/C,aAAOoF,iBAAiB,UAAUsD,cAAc;QAAEC,SAAS;MAAK,CAAA;AAChE,aAAO,MAAM3I,OAAOwE,oBAAoB,UAAUkE,cAAc;QAAEC,SAAS;MAAK,CAAA;IAClF;EACF,GAAG;IAAC1E,QAAQ9D;IAAS4C;GAAQ;AAE7B,SACE,gBAAAP,OAAA,cAACoG,kBAAAA;IACCnF,SAAAA;IACAoF,6BAA6B;IAC7BL;IACAC;IACAK,gBAAgB,CAAC/D,UAAUA,MAAMgE,eAAc;IAC/CC,WAAWjG;KAEX,gBAAAP,OAAA,cAAiByG,yBAAO;IACtBrE,cAAYX,QAAQlC;IACnB,GAAG7B;IACH,GAAGkG;IACJlC,KAAKL;IACLqF,OAAO;MACL,GAAG9C,aAAa8C;;MAEhB,GAAG;QACD,4CAA4C;QAC5C,2CAA2C;QAC3C,4CAA4C;QAC5C,iCAAiC;QACjC,kCAAkC;MACpC;IACF;KAEA,gBAAA1G,OAAA,cAAC2G,WAAAA,MAAWlK,QAAAA,GACZ,gBAAAuD,OAAA,cAAC4F,sCAAAA;IAAqC1F,OAAO1D;IAAgBsJ,UAAU;KACrE,gBAAA9F,OAAA,cAAyBC,8BAAI;IAAC2G,IAAInF,QAAQhD;IAAWoI,MAAK;KACvDd,aAAatJ,QAAAA,CAAAA,CAAAA,CAAAA;AAM1B,CAAA;AAGFiE,eAAeK,cAAc2C;AAM7B,IAAMoD,aAAa;AAMnB,IAAMlG,eAAeQ,2BACnB,CAAC7E,OAA8C8E,iBAAAA;AAC7C,QAAM,EAAE7E,gBAAgB,GAAGuK,WAAAA,IAAexK;AAC1C,QAAMmB,cAAc1B,eAAeQ,cAAAA;AACnC,QAAMwK,+BAA+BnB,gCAAgCiB,YAAYtK,cAAAA;AAGjF,SAAOwK,6BAA6BlB,WAAW,OAC7C,gBAAA9F,OAAA,cAAiBiH,uBAAK;IAAE,GAAGvJ;IAAc,GAAGqJ;IAAYrF,KAAKL;;AAEjE,CAAA;AAGFT,aAAaG,cAAc+F;AAI3B,IAAMnC,sBAAsB,CAACuC,OAAcC,SAAAA;AACzC,QAAMC,MAAMC,KAAKC,IAAIH,KAAKC,MAAMF,MAAM1C,CAAC;AACvC,QAAM+C,SAASF,KAAKC,IAAIH,KAAKI,SAASL,MAAM1C,CAAC;AAC7C,QAAMgD,QAAQH,KAAKC,IAAIH,KAAKK,QAAQN,MAAM5C,CAAC;AAC3C,QAAMmD,OAAOJ,KAAKC,IAAIH,KAAKM,OAAOP,MAAM5C,CAAC;AAEzC,UAAQ+C,KAAKK,IAAIN,KAAKG,QAAQC,OAAOC,IAAAA,GAAAA;IACnC,KAAKA;AACH,aAAO;IACT,KAAKD;AACH,aAAO;IACT,KAAKJ;AACH,aAAO;IACT,KAAKG;AACH,aAAO;IACT;AACE,YAAM,IAAII,MAAM,aAAA;EACpB;AACF;AAEA,IAAM7C,sBAAsB,CAACT,WAAkBK,UAAuBkD,WAAU,MAAC;AAC/E,QAAM/C,mBAA4B,CAAA;AAClC,UAAQH,UAAAA;IACN,KAAK;AACHG,uBAAiBgD,KACf;QAAEvD,GAAGD,UAAUC,IAAIsD;QAASpD,GAAGH,UAAUG,IAAIoD;MAAQ,GACrD;QAAEtD,GAAGD,UAAUC,IAAIsD;QAASpD,GAAGH,UAAUG,IAAIoD;MAAQ,CAAA;AAEvD;IACF,KAAK;AACH/C,uBAAiBgD,KACf;QAAEvD,GAAGD,UAAUC,IAAIsD;QAASpD,GAAGH,UAAUG,IAAIoD;MAAQ,GACrD;QAAEtD,GAAGD,UAAUC,IAAIsD;QAASpD,GAAGH,UAAUG,IAAIoD;MAAQ,CAAA;AAEvD;IACF,KAAK;AACH/C,uBAAiBgD,KACf;QAAEvD,GAAGD,UAAUC,IAAIsD;QAASpD,GAAGH,UAAUG,IAAIoD;MAAQ,GACrD;QAAEtD,GAAGD,UAAUC,IAAIsD;QAASpD,GAAGH,UAAUG,IAAIoD;MAAQ,CAAA;AAEvD;IACF,KAAK;AACH/C,uBAAiBgD,KACf;QAAEvD,GAAGD,UAAUC,IAAIsD;QAASpD,GAAGH,UAAUG,IAAIoD;MAAQ,GACrD;QAAEtD,GAAGD,UAAUC,IAAIsD;QAASpD,GAAGH,UAAUG,IAAIoD;MAAQ,CAAA;AAEvD;EACJ;AACA,SAAO/C;AACT;AAEA,IAAMG,oBAAoB,CAACmC,SAAAA;AACzB,QAAM,EAAEC,KAAKI,OAAOD,QAAQE,KAAI,IAAKN;AACrC,SAAO;IACL;MAAE7C,GAAGmD;MAAMjD,GAAG4C;IAAI;IAClB;MAAE9C,GAAGkD;MAAOhD,GAAG4C;IAAI;IACnB;MAAE9C,GAAGkD;MAAOhD,GAAG+C;IAAO;IACtB;MAAEjD,GAAGmD;MAAMjD,GAAG+C;IAAO;;AAEzB;AAIA,IAAM5B,mBAAmB,CAACuB,OAAcY,YAAAA;AACtC,QAAM,EAAExD,GAAGE,EAAC,IAAK0C;AACjB,MAAIa,SAAS;AACb,WAASC,IAAI,GAAGC,IAAIH,QAAQI,SAAS,GAAGF,IAAIF,QAAQI,QAAQD,IAAID,KAAK;AACnE,UAAMG,KAAKL,QAAQE,CAAAA,EAAG1D;AACtB,UAAM8D,KAAKN,QAAQE,CAAAA,EAAGxD;AACtB,UAAM6D,KAAKP,QAAQG,CAAAA,EAAG3D;AACtB,UAAMgE,KAAKR,QAAQG,CAAAA,EAAGzD;AAGtB,UAAM+D,YAAcH,KAAK5D,MAAQ8D,KAAK9D,KAAQF,KAAK+D,KAAKF,OAAO3D,IAAI4D,OAAOE,KAAKF,MAAMD;AACrF,QAAII,WAAW;AACbR,eAAS,CAACA;IACZ;EACF;AAEA,SAAOA;AACT;AAIA,IAAM7C,UAAU,CAAkBsD,WAAAA;AAChC,QAAMC,YAAsBD,OAAOE,MAAK;AACxCD,YAAUE,KAAK,CAACC,GAAUC,MAAAA;AACxB,QAAID,EAAEtE,IAAIuE,EAAEvE,GAAG;AACb,aAAO;IACT,WAAWsE,EAAEtE,IAAIuE,EAAEvE,GAAG;AACpB,aAAO;IACT,WAAWsE,EAAEpE,IAAIqE,EAAErE,GAAG;AACpB,aAAO;IACT,WAAWoE,EAAEpE,IAAIqE,EAAErE,GAAG;AACpB,aAAO;IACT,OAAO;AACL,aAAO;IACT;EACF,CAAA;AACA,SAAOsE,iBAAiBL,SAAAA;AAC1B;AAGA,IAAMK,mBAAmB,CAAkBN,WAAAA;AACzC,MAAIA,OAAON,UAAU,GAAG;AACtB,WAAOM,OAAOE,MAAK;EACrB;AAEA,QAAMK,YAAsB,CAAA;AAC5B,WAASf,IAAI,GAAGA,IAAIQ,OAAON,QAAQF,KAAK;AACtC,UAAMgB,IAAIR,OAAOR,CAAAA;AACjB,WAAOe,UAAUb,UAAU,GAAG;AAC5B,YAAMe,IAAIF,UAAUA,UAAUb,SAAS,CAAA;AACvC,YAAMgB,IAAIH,UAAUA,UAAUb,SAAS,CAAA;AACvC,WAAKe,EAAE3E,IAAI4E,EAAE5E,MAAM0E,EAAExE,IAAI0E,EAAE1E,OAAOyE,EAAEzE,IAAI0E,EAAE1E,MAAMwE,EAAE1E,IAAI4E,EAAE5E,IAAI;AAC1DyE,kBAAUI,IAAG;MACf,OAAO;AACL;MACF;IACF;AACAJ,cAAUlB,KAAKmB,CAAAA;EACjB;AACAD,YAAUI,IAAG;AAEb,QAAMC,YAAsB,CAAA;AAC5B,WAASpB,IAAIQ,OAAON,SAAS,GAAGF,KAAK,GAAGA,KAAK;AAC3C,UAAMgB,IAAIR,OAAOR,CAAAA;AACjB,WAAOoB,UAAUlB,UAAU,GAAG;AAC5B,YAAMe,IAAIG,UAAUA,UAAUlB,SAAS,CAAA;AACvC,YAAMgB,IAAIE,UAAUA,UAAUlB,SAAS,CAAA;AACvC,WAAKe,EAAE3E,IAAI4E,EAAE5E,MAAM0E,EAAExE,IAAI0E,EAAE1E,OAAOyE,EAAEzE,IAAI0E,EAAE1E,MAAMwE,EAAE1E,IAAI4E,EAAE5E,IAAI;AAC1D8E,kBAAUD,IAAG;MACf,OAAO;AACL;MACF;IACF;AACAC,cAAUvB,KAAKmB,CAAAA;EACjB;AACAI,YAAUD,IAAG;AAEb,MACEJ,UAAUb,WAAW,KACrBkB,UAAUlB,WAAW,KACrBa,UAAU,CAAA,EAAGzE,MAAM8E,UAAU,CAAA,EAAG9E,KAChCyE,UAAU,CAAA,EAAGvE,MAAM4E,UAAU,CAAA,EAAG5E,GAChC;AACA,WAAOuE;EACT,OAAO;AACL,WAAOA,UAAUM,OAAOD,SAAAA;EAC1B;AACF;AAMO,IAAME,UAAU;EACrBC,UAAUjN;EACVkN,SAASrI;AACX;;;ACvvBA,SAASsI,IAAIC,eAAeC,qBAAqB;AAK1C,IAAMC,iBAAuD,CAAC,EAAEC,UAAS,MAAOC,QACrFL,GACE,+FACAC,cAAc;EAAEG,WAAW;AAAa,CAAA,GACxCF,cAAc;EAAEE;EAAWE,OAAO;AAAU,CAAA,GAAA,GACzCD,GAAAA;;;ACCA,IAAME,aAAa;;EAExBC,QAAQ,MAAM;;;EAIdC,WAAW,MACT;;EAGFC,UAAU,MAAM;AAClB;;;ACtBA,OAAOC,sBAAsB;AAC7B,OAAOC,YAAW;AAElB,SAASC,MAAAA,WAAU;AAiBZ,IAAMC,yBAAyB,CAACC,UAAAA;AACrC,MAAIA,SAAS,QAAQA,MAAMC,WAAW,GAAG;AACvC,WAAO;EACT;AACA,QAAMC,MAAM,IAAIC,MAAAA;AAChBD,MAAIF,QAAQA;AACZ,MAAI;AACF,WAAOJ,iBAAiBQ,MAAMF,GAAAA;EAChC,QAAQ;AACNA,QAAIF,QAAQ;EAAUA,KAAAA;AACtB,QAAI;AACF,aAAOJ,iBAAiBQ,MAAMF,GAAAA;IAChC,QAAQ;AACN,aAAO;IACT;EACF;AACF;AAKO,IAAMG,aAAa,CAAC,EAAEC,OAAOC,QAAQC,WAAU,MAAmB;AACvE,QAAMD,SAASC,eAAeF,QAAQV,iBAAiBQ,MAAME,KAAAA,IAAS,CAAA;AACtE,MAAIC,OAAON,WAAW,GAAG;AACvB,WAAO;EACT;AAEA,SACE,gBAAAJ,OAAA,cAACY,OAAAA;IAAIC,WAAU;KACZH,OAAOI,IAAI,CAACC,QAAOC,MAAAA;AAClB,UAAMC,SAASD,MAAMN,OAAON,SAAS;AACrC,UAAMc,QAAQH,OAAMI,WAChBC,gBAAgBL,OAAMI,UAAUJ,OAAMM,YAAYN,OAAMO,YAAY,IACpEC;AACJ,UAAMC,eAAeT,OAAMS,gBAAgB;AAC3C,WACE,gBAAAxB,OAAA,cAACY,OAAAA;MACCa,KAAKT;MACLH,WAAWZ,IACT,6DACAiB,SAAS,uCAAA;OAIX,gBAAAlB,OAAA,cAACY,OAAAA;MAAIC,WAAU;OACb,gBAAAb,OAAA,cAACY,OAAAA;MACCC,WAAWZ,IACT,0DACAgB,SAAS,gBAAgB,WAAA;QAG7B,gBAAAjB,OAAA,cAACY,OAAAA;MAAIC,WAAU;SAGhBK,QACC,gBAAAlB,OAAA,cAAC0B,KAAAA;MAAEC,MAAMT,MAAMS;MAAMd,WAAU;OAC5BW,YAAAA,IAGH,gBAAAxB,OAAA,cAAC4B,QAAAA;MAAKf,WAAU;OAAqCW,YAAAA,GAEvD,gBAAAxB,OAAA,cAAC4B,QAAAA;MAAKf,WAAU;OAAsDK,OAAOC,YAAY,EAAA,GACzF,gBAAAnB,OAAA,cAAC4B,QAAAA;MAAKf,WAAU;OACbK,QAAQ,GAAGH,OAAMM,UAAU,IAAIN,OAAMO,YAAY,KAAK,EAAA,CAAA;EAI/D,CAAA,CAAA;AAGN;AAMA,IAAMF,kBAAkB,CAACS,SAAiBC,MAAeC,QAAAA;AACvD,MAAI;AACF,UAAM,EAAEC,SAAQ,IAAK,IAAIC,IAAIJ,OAAAA;AAC7B,QAAI,CAACG,SAASE,WAAW,OAAA,GAAU;AACjC,aAAOX;IACT;AAEA,UAAMY,cAAc;AACpB,UAAMC,YAAYJ,SAASK,MAAMF,YAAY/B,MAAM;AACnD,UAAMkC,aAAa;AACnB,UAAMtB,IAAIoB,UAAUG,QAAQD,UAAAA;AAC5B,UAAME,OAAOxB,MAAM,KAAKoB,YAAYA,UAAUK,UAAUzB,IAAIsB,WAAWlC,MAAM;AAC7E,WAAO;MACLuB,MAAM,iBAAiBS,SAAAA,IAAaN,QAAQ,CAAA,IAAKC,OAAO,CAAA;MACxDZ,UAAUqB;IACZ;EACF,QAAQ;AACN,WAAOjB;EACT;AACF;;;ACnHO,IAAMmB,yBAAyB;AAC/B,IAAMC,oBAAoB;;;ACAjC,SAASC,eAAe;AAEjB,IAAMC,YAAY,CAAgCC,UAAAA;AACvD,SAAO,CAACC,MAAcC,eAAmBC,QAAAA;AACvC,UAAMC,SAASN,QAAyCE,OAAOC,KAAKI,MAAM,GAAA,CAAA;AAC1E,WAAO,OAAOD,WAAW,aAAaA,OAAOF,cAAe,CAAC,GAAA,GAAYC,GAAAA,IAAOG;EAClF;AACF;;;ACRA,SAASC,WAAWC,SAASC,MAAAA,WAAU;AAYvC,IAAMC,OAA4C,CAAC,EAAEC,OAAO,IAAIC,QAAO,MAAOC,QAC5EJ,IACE,iCACAD,QAAQG,IAAAA,GACRC,YAAYD,SAAS,QAAQA,QAAQ,IAAI,UAAU,UAAM,GACtDE,GAAAA;AAGP,IAAMC,QAA6C,CAAC,EAAEC,OAAM,MAAOF,QAAQJ,IAAGM,UAAU,WAAA,GAAcF,GAAAA;AAEtG,IAAMG,cAAmD,CAAC,EAAED,OAAM,MAAOF,QACvEJ,IAAG,oBAAoBM,UAAU,WAAA,GAAcF,GAAAA;AAEjD,IAAMI,QAA6C,CAAC,EAAEC,QAAO,MAAOL,QAClEJ,IAAG,mCAAmCS,YAAY,WAAW,iBAAiB,cAAA,GAAiBL,GAAAA;AAEjG,IAAMM,aAAkD,CAAC,EAAEC,QAAQT,OAAO,EAAC,MAAOE,QAChFJ,IACE,2BACAD,QAAQG,IAAAA,GACRS,WAAW,aACP,uCACAA,WAAW,WACT,2CACA,0CAAA,GACHP,GAAAA;AAGP,IAAMQ,OAA4C,CAAC,EAAED,QAAQF,SAASI,UAAS,MAAOT,QACpFJ,IACE,6BACAS,YAAY,WAAW,iBAAiB,cACxCE,WAAW,YACP,+CACAA,WAAW,WACT,+CACAA,WAAW,UACT,yCACAA,WAAW,YACT,2CACAA,WAAW,aACT,qBACAA,WAAW,aACT,uBACA,oCACdE,cAAc,UAAU,uBAAuB,IAAA,GAC5CT,GAAAA;AAGP,IAAMU,eAAoD,CAACC,WAAWX,QAAQJ,IAAG,cAAA,GAAiBI,GAAAA;AAElG,IAAMY,QAA6C,CAACD,WAAWX,QAAQJ,IAAG,4BAAA,GAA+BI,GAAAA;AAEzG,IAAMa,aAAkD,CAAC,EAAEf,MAAMI,OAAM,MAAOF,QAC5EJ,IACEM,SACI,YACA,wGACJJ,QAAQJ,UAAUI,IAAAA,GAAAA,GACfE,GAAAA;AAGP,IAAMc,mBAAwD,CAAC,EAAEZ,OAAM,MAAOF,QAC5EJ,IAAGM,SAAS,YAAY,oBAAA,GAAuBF,GAAAA;AAE1C,IAAMe,cAAuC;EAClDlB;EACAI;EACAE;EACAG;EACAF;EACAI;EACAE;EACAE;EACAC;EACAC;AACF;;;ACxFA,SAASE,MAAAA,WAAU;AAKnB,IAAMC,QAAgD,CAACC,WAAWC,QAAQH,IAAG,8BAAA,GAAiCG,GAAAA;AAE9G,IAAMC,OAAgD,CAACF,WAAWC,QAAQH,IAAG,YAAA,GAAeG,GAAAA;AAE5F,IAAME,WAAoD,CAACH,WAAWC,QAAQH,IAAG,YAAA,GAAeG,GAAAA;AAEhG,IAAMG,UAAmD,CAACJ,WAAWC,QAAQH,IAAAA,GAAMG,GAAAA;AAEnF,IAAMI,YAAqD,CAACL,WAAWC,QAAQH,IAAG,cAAA,GAAiBG,GAAAA;AAE5F,IAAMK,kBAA+C;EAC1DP,MAAAA;EACAG;EACAC;EACAC;EACAC;AACF;;;ACrBA,SAASE,MAAAA,WAAU;AAYnB,IAAMC,QAA4C,CAACC,WAAWC,QAAAA;AAC5D,SAAOH,IAAG,yDAAA,GAA4DG,GAAAA;AACxE;AAEA,IAAMC,SAAsD,CAACF,WAAWC,QAAAA;AACtE,SAAOH,IACL,0GAAA,GACGG,GAAAA;AAEP;AAEO,IAAME,cAAuC;EAClDJ,MAAAA;EACAG,OAAAA;AACF;;;AC1BA,SAASE,MAAAA,WAAU;AAUnB,IAAMC,QAAgD,CAAC,EAAEC,UAAUC,OAAM,MAAOC,QAAAA;AAC9E,SAAOJ,IAAG,UAAU,CAACE,YAAY,WAAWC,UAAU,iBAAA,GAAoBC,GAAAA;AAC5E;AAEO,IAAMC,kBAA+C;EAC1DJ,MAAAA;AACF;;;AChBA,SAASK,MAAAA,WAAU;AAanB,IAAMC,QAA0C,CAAC,EAAEC,QAAQC,UAAS,MAAOC,QACzEJ,IACE,0HACAE,UAAU,8EACVC,aAAa,eAAA,GACVC,GAAAA;AAGP,IAAMC,SAA4C,CAACC,MAAMF,QACvDJ,IACE,kEACA,yEAAA,GACGI,GAAAA;AAGP,IAAMG,QAA2C,CAACC,WAAWJ,QAAQJ,IAAG,gCAAA,GAAmCI,GAAAA;AAE3G,IAAMK,OAA0C,CAACD,WAAWJ,QAAQJ,IAAG,0BAAA,GAA6BI,GAAAA;AAEpG,IAAMM,QAA2C,CAACF,WAAWJ,QAAQJ,IAAG,kBAAA,GAAqBI,GAAAA;AAE7F,IAAMO,OAA0C,CAAC,EAAEC,UAAU,WAAWC,UAAUC,UAAS,MAAOV,QAChGJ,IACE,8CACAY,YAAY,aAAa,QACzBA,YAAY,iBAAiB,2BAAA,GAC1BR,GAAAA;AAGP,IAAMW,WAA8C,CAAC,EAAEH,UAAU,WAAWC,SAAQ,MAAOT,QACzFJ,IAAGY,YAAY,iBAAiB,yCAAyCC,YAAY,YAAA,GAAeT,GAAAA;AAEtG,IAAMY,SAA4C,CAACR,WAAWJ,QAC5DJ,IAAG,4EAAA,GAA+EI,GAAAA;AAEpF,IAAMa,aAAgD,CAACT,WAAWJ,QAChEJ,IAAG,uGAAA,GAA0GI,GAAAA;AAE/G,IAAMc,SAA4C,CAACV,WAAWJ,QAC5DJ,IACE,yKAAA,GACGI,GAAAA;AAGP,IAAMe,cAAiD,CAACX,WAAWJ,QACjEJ,IAAG,iDAAA,GAAoDI,GAAAA;AAEzD,IAAMgB,OAA0C,CAACZ,WAAWJ,QAC1DJ,IACE,qKAAA,GACGI,GAAAA;AAGP,IAAMiB,YAA+C,CAACb,WAAWJ,QAC/DJ,IAAG,wDAAA,GAA2DI,GAAAA;AAEhE,IAAMkB,MAAyC,CAAC,EAAEnB,UAAS,MAAOC,QAChEJ,IACE,gCACAG,YACI;;;EAIA;GAAA,GACDC,GAAAA;AAKP,IAAMmB,UAA6C,CAACf,WAAWJ,QAC7DJ,IAAG,yDAAA,GAA4DI,GAAAA;AAEjE,IAAMoB,eAAkD,CAAChB,WAAWJ,QAClEJ,IAAG,wGAAA,GAA2GI,GAAAA;AAEzG,IAAMqB,YAAmC;EAC9CxB,MAAAA;EACAI;EACAE;EACAE;EACAC;EACAY;EACAC;EACA,iBAAiBC;EACjBb;EACA,aAAaI;EACbC;EACA,eAAeC;EACfC;EACA,gBAAgBC;EAChBC;EACA,cAAcC;AAChB;;;AC1GA,SAASK,MAAAA,WAAU;AAenB,IAAMC,QAA4C,CAACC,MAAMC,QAAAA;AACvD,SAAOC,IAAG,uBAAA,GAA0BD,GAAAA;AACtC;AAaA,IAAME,OAA2C,CAACH,MAAMC,QAAAA;AACtD,SAAOC,IAAG,qCAAqC,qCAAA,GAAwCD,GAAAA;AACzF;AAOA,IAAMG,SAAkD,CAAC,EAAEC,KAAKC,SAASC,OAAM,MAAON,QACpFC,IACE,4DACAG,MAAM,gBAAgB,eACtBE,SAAS,kBAAkB,2BAC3BD,UAAU,KAAK,2BAAA,GACZL,GAAAA;AAOP,IAAMO,QAA6C,CAACR,MAAMC,QAAAA;AACxD,SAAOC,IAAG,gDAAA,GAAmDD,GAAAA;AAC/D;AAOA,IAAMQ,SAA8C,CAACT,MAAMC,QAAAA;AACzD,SAAOC,IAAGQ,WAAWD,OAAM,GAAI,WAAA,GAAcR,GAAAA;AAC/C;AAEO,IAAMU,cAAc;EACzBZ,MAAAA;EACAI,KAAAA;EACAC,OAAAA;EACAI;EACAC;AACF;;;ACvEA,SAASG,MAAAA,WAAU;AAOnB,IAAMC,UAAsC;EAC1CC,IAAI;EACJC,IAAI;EACJC,IAAI;EACJC,IAAI;AACN;AASA,IAAMC,UAA+C,CAACC,WAAWC,QAAQC,IAAG,sBAAA,GAAyBD,GAAAA;AAErG,IAAME,UAA+C,CAAC,EAAEC,iBAAiBC,OAAO,KAAI,MAAOJ,QAAAA;AACzF,SAAOC,IACL,cACA,0DACA,CAACE,mBAAmB,yEACpBV,QAAQW,IAAAA,GAAK,GACVJ,GAAAA;AAEP;AAEA,IAAMK,UAA8C,CAACN,WAAWC,QAC9DC,IAAG,4DAA4DK,WAAWC,OAAM,GAAA,GAAOP,GAAAA;AAEzF,IAAMQ,QAA4C,CAACT,WAAWC,QAC5DC,IAAG,uCAAuCK,WAAWG,UAAS,GAAA,GAAOT,GAAAA;AAEvE,IAAMU,YAAiD,CAACX,WAAWC,QACjEC,IAAG,qDAAqDK,WAAWC,OAAM,GAAA,GAAOP,GAAAA;AAElF,IAAMW,SAA6C,CAAC,EAAEC,OAAM,MAAOZ,QACjEC,IAAG,oBAAoBW,UAAU,WAAA,GAAcZ,GAAAA;AAEjD,IAAMa,eAAmD,CAAC,EAAED,OAAM,MAAOZ,QACvEC,IAAG,0BAA0B,oBAAoBW,UAAU,WAAA,GAAcZ,GAAAA;AAEpE,IAAMc,cAAuC;EAClDhB;EACAI;EACAG,QAAAA;EACAG,MAAAA;EACAO,WAAWL;EACXC,OAAAA;EACAE,aAAAA;AACF;;;ACxDA,SAASG,MAAAA,YAAU;AAcnB,IAAMC,QAA2C,CAAC,EAAEC,OAAM,MAAOC,QAC/DH,KACE,iCACA,sCACA,0DACA,gDACAE,UAAU,2BAAA,GACPC,GAAAA;AAGA,IAAMC,aAAqC;EAChDC,OAAOJ;EACPK,MAAML;AACR;;;AC3BA,SAASM,WAAAA,UAASC,MAAAA,YAAU;AAgB5B,IAAMC,QAA0C,CAAC,EAAEC,KAAI,GAAIC,QAAAA;AACzD,SAAOH,KACL,mDACAE,OACIH,SAAQG,IAAAA,IACR,gHACJC,GAAAA;AAEJ;AAKA,IAAMC,SAAgD,CAAC,EAAEC,SAASC,OAAM,MAAOH,QAC7EH,KACE,2DACAM,SAAS,kBAAkB,2BAC3BD,UAAU,KAAK,2BAAA,GACZF,GAAAA;AAGA,IAAMI,YAAyD;EACpEN,MAAAA;EACAG,OAAAA;AACF;;;ACxCA,SAASI,mBAAmBC,sBAAsB;AAClD,SAASC,WAAAA,UAASC,MAAAA,MAAIC,WAAWC,UAAUC,mBAAmB;AA0B9D,IAAMC,wBACJ;AAEF,IAAMC,wBAAwB;AAG9B,IAAMC,UAAU,CAACA,aAAAA;AACf,UAAQA,UAAAA;IACN,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;EACX;AACF;AAEA,IAAMC,2BAA+D,CAACC,UAAU;EAC9E;EACA;EACA;EACAX,kBAAkBW,MAAMC,OAAO;EAC/BD,MAAME,YAAYZ;;AAGpB,IAAMa,2BAA+D,CAACH,UAAU;EAC9E;EACA;EACAJ;EACAP,kBAAkBW,MAAMC,OAAO;EAC/BD,MAAME,WAAWZ,iBAAiBO;;AAGpC,IAAMO,0BAA8D,CAACJ,UAAU;EAC7E;EACA;EACAJ;EACAC;EACAG,MAAMK,WAAW;EACjBP,QAAQE,MAAMM,iBAAiB;EAC/BN,MAAME,YAAYZ;EAClBU,MAAMK,WAAW;;AAGnB,IAAME,QAA4C,CAACP,UAAUQ,QAC3DR,MAAMS,YAAY,YACdjB,KAAAA,GAAMO,yBAAyBC,KAAAA,GAAAA,GAAWQ,GAAAA,IAC1CR,MAAMS,YAAY,WAChBjB,KAAAA,GAAMY,wBAAwBJ,KAAAA,GAAAA,GAAWQ,GAAAA,IACzChB,KAAAA,GACKW,yBAAyBH,KAAAA,GAC5B,CAACA,MAAME,YAAY,iBACnBJ,QAAQE,MAAMM,iBAAiB,GAAA,GAC5BE,GAAAA;AAGb,IAAME,WAA+C,CAACV,UAAUQ,QAAQD,MAAMP,OAAAA,GAAUQ,GAAAA;AAExF,IAAMG,WAA+C,CAAC,EAAEC,OAAO,EAAC,MAAOJ,QACrEhB,KAAG,6BAA6BD,SAAQqB,IAAAA,GAAAA,GAAUJ,GAAAA;AAEpD,IAAMK,oBAAwD,CAAC,EAAED,OAAO,GAAGE,QAAO,MAAON,QACvFhB,KAAGD,SAAQG,SAASD,UAAUmB,IAAAA,IAAQ,MAAM,CAAA,CAAA,GAAK,CAACE,WAAW,aAAA,GAAgBN,GAAAA;AAE/E,IAAMO,UAA8C,CAACC,WAAWR,QAAQhB,KAAG,qCAAA,GAAwCgB,GAAAA;AAEnH,IAAMS,MAA0C,CAACjB,UAAUQ,QACzDhB,KACE,8CACAQ,MAAMC,YAAY,OACd,YACAD,MAAMC,YAAY,OAChB,YACAD,MAAMC,YAAY,OAChB,YACA,kCACRD,MAAME,YAAY,sBAAA,GACfM,GAAAA;AAGP,IAAMU,UAA8C,CAAClB,UAAUQ,QAC7DhB,KACE,iDACAQ,MAAMC,YAAY,OACd,uBACAD,MAAMC,YAAY,OAChB,sBACAD,MAAMC,YAAY,OAChB,sBACA,0CACR,2EACA,+EACA,4FACAH,QAAQE,MAAMM,iBAAiB,GAC/BN,MAAME,YAAYZ,gBAAAA,GACfkB,GAAAA;AAGP,IAAMW,SAAgD,CAACnB,UAAUQ,QAC/DhB,KAAG,kCAAkCQ,MAAMoB,UAAU,WAAA,GAAcZ,GAAAA;AAErE,IAAMa,eAAsD,CAACrB,UAAUQ,QACrEhB,KAAG,oBAAoBQ,MAAMoB,UAAU,WAAA,GAAcZ,GAAAA;AAEvD,IAAMc,2BAAmE,CAACtB,UAAUQ,QAClFhB,KAAG,uBAAuBQ,MAAMoB,UAAU,WAAA,GAAcZ,GAAAA;AAE1D,IAAMe,aAAqD,CAACvB,UAAUQ,QACpEhB,KAAG,4BAA4BQ,MAAMoB,SAAS,YAAYzB,YAAYK,MAAMM,iBAAiB,GAAA,GAAME,GAAAA;AAErG,IAAMgB,cAAqC,CAACC,OAAOjB,QACjDhB,KACE,sEACA,2EACA,iBAAA,GACGgB,GAAAA;AAGP,IAAMkB,SAA4C,CAAC1B,UAAUQ,QAC3DhB,KAAG,2EAAA,GAA8EgB,GAAAA;AAE5E,IAAMmB,aAAa;EACxBpB;EACAG;EACAO;EACAC;EACAC,OAAAA;EACAE,aAAAA;EACAV;EACAE;EACAe,QAAQb;EACRW,OAAAA;EACAH;EACAD;EACAE;AACF;;;ACpKA,SAASK,MAAAA,YAAU;AAOnB,IAAMC,QAA0C,CAAC,EAAEC,QAAO,MAAOC,QAAQH,KAAG,WAAA,GAAcG,GAAAA;AAEnF,IAAMC,YAAmC;EAC9CH,MAAAA;AACF;;;ACXA,SAASI,MAAAA,YAAU;AAKnB,IAAMC,UAAU;AAOhB,IAAMC,WAA6C,CAAC,EAAEC,OAAM,MAAOC,QACjEC,KAAGJ,SAASK,wBAAwBH,UAAU,yBAAyB,sBAAA,GAAyBC,GAAAA;AAElG,IAAMG,UAA6C,CAACC,MAAMJ,QACxDC,KAAG,mBAAmB,gCAAA,GAAmCD,GAAAA;AAE3D,IAAMK,WAA6C,CAACD,MAAMJ,QAAQC,KAAG,mBAAA,GAAsBD,GAAAA;AAEpF,IAAMM,YAAY;EACvBR,SAAAA;EACAK;EACAE,SAAAA;AACF;;;ACxBA,SAASE,oBAAoB;AAC7B,SAASC,MAAAA,MAAIC,iBAAAA,gBAAeC,iBAAAA,sBAAqB;AAQjD,IAAMC,WAA6C,CAAC,EAAEC,UAAS,MAAOC,QACpEL,KACE,sEACAE,eAAc;EAAEE;EAAWE,OAAO;AAAO,CAAA,GACzCL,eAAc;EAAEG,WAAW;AAAa,CAAA,GAAA,GACrCC,GAAAA;AAGP,IAAME,WAA8C,CAACC,WAAWH,QAC9DL,KAAG,8FAAA,GAAiGK,GAAAA;AAEtG,IAAMI,OAA0C,CAACD,WAAWH,QAC1DL,KACE,mFACA,8DACA,oBACAD,cAAAA,GACGM,GAAAA;AAGP,IAAMK,aAA+C,CAACF,WAAWH,QAAQL,KAAG,+BAAA,GAAkCK,GAAAA;AAE9G,IAAMM,cAAgD,CAACH,WAAWH,QAChEL,KAAG,oBAAoB,yBAAA,GAA4BK,GAAAA;AAErD,IAAMO,QAA2C,CAACJ,WAAWH,QAAQL,KAAG,kBAAA,GAAqBK,GAAAA;AAEtF,IAAMQ,YAAmC;EAC9CV,SAAAA;EACAI;EACAE;EACAC,WAAAA;EACAC,YAAAA;EACAC;AACF;;;AC3CA,SAASE,gBAAgBC,MAAAA,YAAU;AAQnC,IAAMC,QAA6C,CAAC,EAAEC,SAAAA,SAAO,GAAIC,QAAAA;AAC/D,SAAOH,KAAG,kBAAkBD,eAAeG,QAAAA,GAAUC,GAAAA;AACvD;AAEA,IAAMC,UAA+C,CAACC,GAAGF,QAAAA;AACvD,SAAOH,KAAG,gBAAgBG,GAAAA;AAC5B;AAEA,IAAMG,SAA8C,CAACD,GAAGF,QAAAA;AACtD,SAAOH,KAAG,wCAAwCG,GAAAA;AACpD;AAEA,IAAMI,WAAgD,CAACF,GAAGF,QAAAA;AACxD,SAAOH,KAAG,sDAAsDG,GAAAA;AAClE;AAEO,IAAMK,eAAyC;EACpDP,MAAAA;EACAG,QAAAA;EACAE,OAAAA;EACAC,SAAAA;AACF;;;AC7BA,SAASE,MAAAA,YAAU;AASnB,IAAMC,QAA8B;EAClCC,IAAI;EACJC,IAAI;EACJC,IAAI;AACN;AAEA,IAAMC,SAA2C,CAACC,MAAMC,QACtDP;EACE;;EAEA;EAAA,GACGO;AAAAA;AAIP,IAAMC,UAA8C,CAAC,EAAEC,OAAO,KAAI,MAAOF,QACvEP,KAAG,uBAAuB,YAAY,sBAAsBC,MAAMQ,IAAAA,GAAK,GAAKF,GAAAA;AAE9E,IAAMG,WAA8C,CAACJ,MAAMC,QAAQP,KAAG,+BAAA,GAAkCO,GAAAA;AAExG,IAAMI,YAAgD,CAAC,EAAEF,OAAO,KAAI,MAAOF,QACzEP,KAAG,yBAAyB,YAAYC,MAAMQ,IAAAA,GAAK,GAAKF,GAAAA;AAEnD,IAAMK,aAAa;EACxBP,MAAAA;EACAG;EACAE,SAAAA;EACAC;AACF;;;ACrCA,SAASE,MAAAA,MAAIC,iBAAAA,gBAAeC,iBAAAA,sBAAqB;AASjD,IAAMC,WAAgD,CAAC,EAAEC,UAAS,MAAOC,QACvEL,KACE,yEACAC,eAAc;EAAEG,WAAW;AAAa,CAAA,GACxCF,eAAc;EAAEE;EAAWE,OAAO;AAAO,CAAA,GACzC,iBAAA,GACGD,GAAAA;AAGP,IAAME,YAAiD,CAAC,EAAEC,gBAAgBC,gBAAe,MAAOJ,QAC9FL,KACE,yDACCQ,kBAAkBC,oBAAoB,mBACvCD,kBAAkB,oDAClBA,kBACE,0GACFC,mBAAmB,mDAAA,GAChBJ,GAAAA;AAGP,IAAMK,SAA8C,CAACC,WAAWN,QAAQL,KAAG,kBAAA,GAAqBK,GAAAA;AAEzF,IAAMO,eAAyC;EACpDT,SAAAA;EACAI,UAAAA;EACAG,OAAAA;AACF;;;ACnCA,SAASG,MAAAA,YAAU;AAoBnB,IAAMC,SAAgD,CAAC,EAAEC,YAAW,MAAOC,QACzEC;;EAEE;EAEAF,gBAAgB,cAAc;EAC9BA,gBAAgB,gBAAgB;;;;EAIhCA,gBAAgB,SAAS;;EAGzB;EAAA,GAEGC;AAAAA;AAMP,IAAME,YAAoD,CACxD,EAAEH,aAAaI,UAAUC,SAAAA,UAASC,MAAMC,SAAQ,MAC7CN,QAAAA;AAEH,SAAOC;IACL;;;IAIAM,WAAWC,SAAQ;IAEnBT,gBAAgB,cAAc;IAC9BA,gBAAgB,gBAAgB;IAChCA,gBAAgB,SAAS;IAEzB;IACA;IACA;IAEA;;;KAICA,gBAAgB,cAAcA,gBAAgB,WAC5CK,WACG;MACED,WAAW,uEAAuE;MAClF;QAEFA,YAAY;KAEjBJ,gBAAgB,gBAAgBA,gBAAgB,WAC9CK,WACG;MAACD,YAAY;MAAwD;QACrEA,YAAY;IAElBE,QAAQ;MACNN,gBAAgB,cAAc;MAC9BA,gBAAgB,gBAAgB;MAChCA,gBAAgB,SAAS;;IAG3BO,WACI;MACEP,gBAAgB,cAAc;MAC9BA,gBAAgB,gBAAgB;MAChCA,gBAAgB,SAAS;QAE3B;MACEA,gBAAgB,cAAc;MAC9BA,gBAAgB,gBAAgB;MAChCA,gBAAgB,SAAS;;IAC1B,GAEFC;EAAAA;AAEP;AAEO,IAAMS,kBAA+C;EAC1DX,MAAAA;EACAI,UAAAA;AACF;;;ACtGA,SAASQ,MAAAA,MAAIC,iBAAAA,gBAAeC,iBAAAA,sBAAqB;AAOjD,IAAMC,WAA+C,CAAC,EAAEC,UAAS,MAAOC,QAAAA;AACtE,SAAOL,KACL,uDACA,wFACAC,eAAc;IAAEG,WAAW;EAAa,CAAA,GACxCF,eAAc;IAAEE;IAAWE,OAAO;EAAO,CAAA,GAAA,GACtCD,GAAAA;AAEP;AAEA,IAAME,gBAAqD,CAACC,WAAWH,QACrEL,KAAG,iEAAA,GAAoEK,GAAAA;AAEzE,IAAMI,YAAgD,CAACD,WAAWH,QAAQL,KAAAA,GAAMK,GAAAA;AAEhF,IAAMK,QAA4C,CAACF,WAAWH,QAC5DL,KACE,oDACA,wDACA,yDACA,kBAAA,GACGK,GAAAA;AAGP,IAAMM,gBAAqD,CAACH,WAAWH,QAAQL,KAAG,gBAAA,GAAmBK,GAAAA;AAErG,IAAMO,SAA6C,CAACJ,WAAWH,QAAQL,KAAG,kBAAA,GAAqBK,GAAAA;AAE/F,IAAMQ,aAAiD,CAACL,WAAWH,QACjEL,KAAG,+CAAA,GAAkDK,GAAAA;AAEvD,IAAMS,eAAoD,CAACN,WAAWH,QACpEL,KAAG,+EAAA,GAAkFK,GAAAA;AAEhF,IAAMU,cAAuC;EAClDZ,SAAAA;EACAI;EACAE,UAAAA;EACAC,MAAAA;EACAC;EACAC,OAAAA;EACAC,WAAAA;EACAC;AACF;;;AClDA,SAASE,MAAAA,YAAU;AAQnB,IAAMC,SAA+C,CAAC,EAAEC,aAAaC,QAAO,MAAOC,QACjFJ,KACE,gBACAE,gBAAgB,aAAa,kBAAkB,iBAC/CC,UAAU,6BAA6B,oBAAA,GACpCC,GAAAA;AAGA,IAAMC,iBAA6C;EACxDJ,MAAAA;AACF;;;AClBA,SAASK,MAAAA,YAAU;AAOnB,IAAMC,SAA8C,CAAC,EAAEC,UAAU,UAAS,MAAOC,QAC/EH,KACE,+DACAE,YAAY,YAAY,gBACxBA,YAAY,UAAU,cAAA,GACnBC,GAAAA;AAGA,IAAMC,gBAA2C;EACtDH,MAAAA;AACF;;;ACjBA,SAASI,MAAAA,YAAU;AAOnB,IAAMC,SAA8C,CAAC,EAAEC,YAAW,MAAOC,QACvEH,KAAG,+CAA+CE,gBAAgB,aAAa,aAAa,YAAA,GAAeC,GAAAA;AAE7G,IAAMC,QAA+C,CAACC,WAAWF,QAC/DH,KAAG,iDAAA,GAAoDG,GAAAA;AAIzD,IAAMG,SAAgD,CAAC,EAAEJ,YAAW,MAAOC,QACzEH,KACE,8CACA,oDACA,kLACAE,gBAAgB,aACZ,kGACA,kGAAA,GACDC,GAAAA;AAGA,IAAMI,gBAA2C;EACtDN,MAAAA;EACAG;EACAE;AACF;;;AC9BA,SAASE,MAAAA,YAAU;AAQnB,IAAMC,SAA4C,CAAC,EAAEC,UAAU,UAAS,MAAOC,QAC7EH,KACE,6CACAE,YAAY,gBAAgB,iBAAiB,0CAAA,GAC1CC,GAAAA;AAGP,IAAMC,MAA2C,CAAC,EAAEF,UAAU,WAAWG,cAAa,MAAOF,QAC3FH,KACE,yCACAE,YAAY,gBAAgB,oBAAoB,gBAChDG,gBAAgB,mCAAmC,WAAA,GAChDF,GAAAA;AAGA,IAAMG,cAAuC;EAClDL,MAAAA;EACAG;AACF;;;AC1BA,SAASG,MAAAA,YAAU;AAanB,IAAMC,SAAyC,CAACC,MAAMC,QAAQH,KAAG,UAAA,GAAaG,GAAAA;AAEvE,IAAMC,WAAiC;EAC5CH,MAAAA;AACF;;;ACjBA,SAASI,MAAAA,MAAIC,iBAAAA,sBAAqB;AAKlC,IAAMC,YAA+C,CAACC,WAAWC,QAC/DJ,KACE,8DACA,wGACA,4FACA,kCAAA,GACGI,GAAAA;AAGP,IAAMC,SAA2C,CAACF,WAAWC,QAC3DJ,KACE,qCACAC,eAAc;EAAEK,WAAW;AAAQ,CAAA,GACnC,mGACA,yCACA,2CACA,wCACA,mGACA,iBAAA,GACGF,GAAAA;AAGP,IAAMG,OAA2C,CAACJ,WAAWC,QAAQJ,KAAG,iBAAA,GAAoBI,GAAAA;AAE5F,IAAMI,UAA6C,CAACL,WAAWC,QAAQJ,KAAG,gBAAA,GAAmBI,GAAAA;AAE7F,IAAMK,SAA4C,CAACN,WAAWC,QAAQJ,KAAG,oCAAA,GAAuCI,GAAAA;AAEhH,IAAMM,eAAkD,CAACP,WAAWC,QAClEJ,KAAG,gDAAA,GAAmDI,GAAAA;AAExD,IAAMO,UAA8C,CAACR,WAAWC,QAAQJ,KAAG,oBAAA,GAAuBI,GAAAA;AAE3F,IAAMQ,aAAqC;EAChDV,UAAAA;EACAG,MAAAA;EACAE;EACAC,QAAAA;EACAC,OAAAA;EACAC,aAAAA;EACAC;AACF;;;AC9CA,SAASE,MAAAA,YAAU;AASnB,IAAMC,SACJ;AAEF,IAAMC,SAA6C,CAAC,EAAEC,SAASC,UAAUC,cAAa,MAAOC,QAAAA;AAC3F,SAAON,KACL,2CACAG,YAAY,QAAQ,4BACpBA,YAAY,QAAQ,aACpBA,YAAY,QAAQ,aACpBC,YAAY,gBACZ,CAACC,iBAAiBJ,QAAAA,GACfK,GAAAA;AAEP;AAEA,IAAMC,QAA6C,CAACC,MAAMF,QAAAA;AACxD,SAAON,KAAG,mCAAA,GAAsCM,GAAAA;AAClD;AAEO,IAAMG,eAAyC;EACpDP,MAAAA;EACAK,MAAAA;AACF;;;AC/BA,SAASG,MAAAA,YAAU;AASnB,IAAMC,SAA8C,CAACC,WAAWC,QAAQC,KAAG,wBAAA,GAA2BD,GAAAA;AAE/F,IAAME,eAAyC;EACpDC,SAASC;EACTN,OAAAA;AACF;;;ACdA,SAASO,MAAAA,YAAU;AAYnB,IAAMC,SAA8C,CAACC,OAAOC,QAC1DH,KAAG,iFAAA,GAAoFG,GAAAA;AAEzF,IAAMC,MAA6C,CAACF,OAAOC,QAAQH,KAAG,0CAAA,GAA6CG,GAAAA;AAEnH,IAAME,gBAAuD,CAACH,OAAOC,QACnEH,KAAG,0CAAA,GAA6CG,GAAAA;AAElD,IAAMG,kBAAyD,CAACJ,OAAOC,QACrEH,KACE,uEACA,2CACA,iEAAA,GACGG,GAAAA;AAGP,IAAMI,cAAqD,CAACL,OAAOC,QACjEH,KACE,uEACA,2CACA,iEAAA,GACGG,GAAAA;AAGP,IAAMK,aAAoD,CAACN,OAAOC,QAAQH,KAAG,0BAAA,GAA6BG,GAAAA;AAE1G,IAAMM,WAAkD,CAACP,OAAOC,QAAQH,KAAG,IAAA,GAAOG,GAAAA;AAElF,IAAMO,UAAiD,CAACR,OAAOC,QAC7DH,KAAG,8CAAA,GAAiDG,GAAAA;AAEtD,IAAMQ,MAA6C,CAACT,OAAOC,QACzDH;EACE;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;;EAEA;EACA;EAAA,GACGG;AAAAA;AAGA,IAAMS,gBAA2C;EACtDX,MAAAA;EACAG;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;AACF;;;ACvEA,SAASE,MAAAA,YAAU;AAOnB,IAAMC,UAAmD,CAAC,EAAEC,SAAQ,MAAOC,QACzEH,KACE,gFACA,iCACA,oFACA,CAACE,YAAY,oBAAA,GACVC,GAAAA;AAGP,IAAMC,WAAmD,CAACC,OAAOF,QAAQH,KAAG,2BAAA,GAA8BG,GAAAA;AAE1G,IAAMG,YAAqD,CAACD,OAAOF,QACjEH,KACE,qCACA,0EACA,sDAAA,GACGG,GAAAA;AAGA,IAAMI,kBAA+C;EAC1DN;EACAG,SAAAA;EACAE;AACF;;;ACEO,IAAME,eAA2C;EACtDC,WAAW,MAAM;;;;EAMjBC,QAAQC;EACRC,OAAOC;;;;EAMPC,QAAQC;EACRC,YAAYC;EACZC,QAAQC;EACRC,UAAUC;EACVC,MAAMC;EACNC,YAAYC;EACZC,QAAQC;EACRC,OAAOC;EACPC,MAAMC;EACNC,YAAYC;EACZC,OAAOC;EACPC,MAAMC;EACNC,MAAMC;EACNC,SAASC;EACTC,MAAMC;EACNC,SAASC;EACTC,YAAYC;EACZC,QAAQC;EACRC,WAAWC;EACXC,UAAUC;EACVC,UAAUC;EACVC,QAAQC;EACRC,KAAKC;EACLC,OAAOC;EACPC,SAASC;EACTC,SAASC;AACX;AAEO,IAAMC,YAAYC,UAAU3D,YAAAA;",
  "names": ["React", "createContext", "DensityContext", "density", "DensityProvider", "children", "Provider", "value", "React", "createContext", "ElevationContext", "elevation", "ElevationProvider", "children", "Provider", "value", "hasIosKeyboard", "navigator", "userAgent", "match", "enUS", "dtLocaleEnUs", "React", "Suspense", "createContext", "useContext", "useEffect", "useState", "I18nextProvider", "useTranslation", "useI18NextTranslation", "addResources", "i18n", "initialNs", "initialDtLocale", "TranslationsContext", "appNs", "dtLocale", "args", "result", "TranslationsProvider", "fallback", "resourceExtensions", "children", "loaded", "setLoaded", "length", "Provider", "value", "createKeyborg", "React", "createContext", "useEffect", "useMemo", "useContext", "useElevationContext", "propsElevation", "elevation", "useContext", "ElevationContext", "useContext", "raise", "useThemeContext", "useContext", "ThemeContext", "raise", "Error", "useCallback", "useState", "useViewportResize", "initialSafeArea", "top", "NaN", "right", "bottom", "left", "useSafeArea", "padding", "setPadding", "handleResize", "parseFloat", "getComputedStyle", "document", "documentElement", "getPropertyValue", "ThemeContext", "createContext", "undefined", "ThemeProvider", "children", "fallback", "resourceExtensions", "appNs", "tx", "_path", "_styleProps", "_options", "themeMode", "rootDensity", "noCache", "platform", "useEffect", "document", "defaultView", "kb", "createKeyborg", "subscribe", "handleInputModalityChange", "unsubscribe", "safeAreaPadding", "useSafeArea", "contextValue", "useMemo", "hasIosKeyboard", "React", "Provider", "value", "TranslationsProvider", "ElevationProvider", "elevation", "DensityProvider", "density", "isUsingKeyboard", "body", "setAttribute", "removeAttribute", "composeEventHandlers", "useComposedRefs", "createContextScope", "DismissableLayer", "useId", "PopperPrimitive", "createPopperScope", "Portal", "PortalPrimitive", "Presence", "Primitive", "Slottable", "useControllableState", "VisuallyHiddenPrimitive", "React", "forwardRef", "useCallback", "useEffect", "useMemo", "useRef", "useState", "createTooltipContext", "createTooltipScope", "createContextScope", "createPopperScope", "usePopperScope", "DEFAULT_DELAY_DURATION", "TOOLTIP_OPEN", "TOOLTIP_NAME", "TooltipContextProvider", "useTooltipContext", "TooltipProvider", "props", "__scopeTooltip", "children", "open", "openProp", "defaultOpen", "onOpenChange", "disableHoverableContent", "delayDuration", "skipDelayDuration", "isOpenDelayedRef", "useRef", "isPointerInTransitRef", "skipDelayTimerRef", "useEffect", "skipDelayTimer", "current", "window", "clearTimeout", "popperScope", "trigger", "setTrigger", "useState", "content", "setContent", "side", "setSide", "undefined", "triggerRef", "handleTriggerChange", "useCallback", "nextTrigger", "nextContent", "nextSide", "contentId", "useId", "openTimerRef", "wasOpenDelayedRef", "handleOpenChange", "document", "dispatchEvent", "CustomEvent", "setTimeout", "setOpen", "useControllableState", "prop", "defaultProp", "onChange", "stateAttribute", "useMemo", "handleOpen", "handleClose", "handleDelayedOpen", "tx", "useThemeContext", "elevation", "useElevationContext", "React", "Root", "scope", "onTriggerChange", "onTriggerEnter", "onTriggerLeave", "onOpen", "onClose", "onPointerInTransitChange", "inTransit", "TooltipContent", "className", "TooltipArrow", "TooltipVirtualTrigger", "virtualRef", "displayName", "Anchor", "asChild", "TRIGGER_NAME", "TooltipTrigger", "forwardRef", "forwardedRef", "onInteract", "_delayDuration", "triggerProps", "context", "ref", "composedRefs", "useComposedRefs", "isPointerDownRef", "hasPointerMoveOpenedRef", "handlePointerUp", "removeEventListener", "Primitive", "button", "aria-describedby", "data-state", "onPointerMove", "composeEventHandlers", "event", "pointerType", "defaultPrevented", "onPointerLeave", "onPointerDown", "addEventListener", "once", "onFocus", "onBlur", "onClick", "PORTAL_NAME", "PortalProvider", "usePortalContext", "forceMount", "TooltipPortal", "container", "Presence", "present", "PortalPrimitive", "CONTENT_NAME", "portalContext", "contentProps", "TooltipContentImpl", "TooltipContentHoverable", "pointerGraceArea", "setPointerGraceArea", "handleRemoveGraceArea", "handleCreateGraceArea", "hoverTarget", "currentTarget", "exitPoint", "x", "clientX", "y", "clientY", "exitSide", "getExitSideFromRect", "getBoundingClientRect", "paddedExitPoints", "getPaddedExitPoints", "hoverTargetPoints", "getPointsFromRect", "graceArea", "getHull", "handleTriggerLeave", "handleContentLeave", "handleTrackPointerGrace", "target", "pointerPosition", "hasEnteredTarget", "contains", "isPointerOutsideGraceArea", "isPointInPolygon", "VisuallyHiddenContentContextProvider", "useVisuallyHiddenContentContext", "isInside", "ariaLabel", "onEscapeKeyDown", "onPointerDownOutside", "handleScroll", "capture", "DismissableLayer", "disableOutsidePointerEvents", "onFocusOutside", "preventDefault", "onDismiss", "Content", "style", "Slottable", "id", "role", "ARROW_NAME", "arrowProps", "visuallyHiddenContentContext", "Arrow", "point", "rect", "top", "Math", "abs", "bottom", "right", "left", "min", "Error", "padding", "push", "polygon", "inside", "i", "j", "length", "xi", "yi", "xj", "yj", "intersect", "points", "newPoints", "slice", "sort", "a", "b", "getHullPresorted", "upperHull", "p", "q", "r", "pop", "lowerHull", "concat", "Tooltip", "Provider", "Trigger", "mx", "surfaceShadow", "surfaceZIndex", "tooltipContent", "elevation", "etc", "level", "withColumn", "center", "propagate", "consumed", "ErrorStackParser", "React", "mx", "parseCaptureOwnerStack", "stack", "length", "err", "Error", "parse", "ErrorStack", "error", "frames", "framesProp", "div", "className", "map", "frame", "i", "isLast", "local", "fileName", "parseLocalFrame", "lineNumber", "columnNumber", "undefined", "functionName", "key", "a", "href", "span", "fileUrl", "line", "col", "pathname", "URL", "startsWith", "FILE_PREFIX", "localPath", "slice", "PKG_PREFIX", "indexOf", "path", "substring", "mainPaddingTransitions", "mainIntrinsicSize", "getDeep", "bindTheme", "theme", "path", "styleProps", "etc", "result", "split", "undefined", "getHeight", "getSize", "mx", "root", "size", "inGroup", "etc", "label", "srOnly", "description", "frame", "variant", "statusIcon", "status", "ring", "animation", "fallbackText", "_props", "group", "groupLabel", "groupDescription", "avatarTheme", "mx", "root", "_props", "etc", "list", "listItem", "current", "separator", "breadcrumbTheme", "mx", "root", "_props", "etc", "group", "buttonTheme", "mx", "root", "iconOnly", "square", "etc", "iconButtonTheme", "mx", "root", "border", "fullWidth", "etc", "header", "_", "title", "_props", "body", "block", "text", "variant", "truncate", "_truncate", "textSpan", "poster", "posterIcon", "action", "actionLabel", "link", "linkLabel", "row", "section", "sectionTitle", "cardTheme", "mx", "root", "_", "etc", "mx", "row", "block", "end", "compact", "square", "bleed", "center", "withColumn", "columnTheme", "mx", "sizeMap", "sm", "md", "lg", "xl", "overlay", "_props", "etc", "mx", "content", "inOverlayLayout", "size", "header", "withColumn", "center", "body", "propagate", "actionBar", "title", "srOnly", "description", "dialogTheme", "actionbar", "mx", "ring", "border", "etc", "focusTheme", "group", "item", "getSize", "mx", "root", "size", "etc", "block", "compact", "square", "iconTheme", "densityDimensions", "staticDisabled", "getSize", "mx", "sizeValue", "snapSize", "textValence", "textInputSurfaceFocus", "textInputSurfaceHover", "valence", "sharedSubduedInputStyles", "props", "density", "disabled", "sharedDefaultInputStyles", "sharedStaticInputStyles", "focused", "validationValence", "input", "etc", "variant", "textArea", "checkbox", "size", "checkboxIndicator", "checked", "switch_", "_props", "pin", "segment", "label", "srOnly", "description", "descriptionAndValidation", "validation", "triggerIcon", "_p", "block", "inputTheme", "switch", "mx", "root", "variant", "etc", "linkTheme", "mx", "padding", "content", "bounce", "etc", "mx", "mainPaddingTransitions", "sidebar", "_", "overlay", "mainTheme", "dataDisabled", "mx", "surfaceShadow", "surfaceZIndex", "content", "elevation", "etc", "level", "viewport", "_props", "item", "separator", "groupLabel", "arrow", "menuTheme", "messageValence", "mx", "root", "valence", "etc", "header", "_", "title", "content", "messageTheme", "mx", "sizes", "lg", "md", "sm", "root", "_", "etc", "toolbar", "size", "content", "statusbar", "panelTheme", "mx", "surfaceShadow", "surfaceZIndex", "content", "elevation", "etc", "level", "viewport", "constrainBlock", "constrainInline", "arrow", "_props", "popoverTheme", "mx", "root", "orientation", "etc", "mx", "viewport", "centered", "padding", "snap", "autoHide", "withColumn", "consumed", "scrollAreaTheme", "mx", "surfaceShadow", "surfaceZIndex", "content", "elevation", "etc", "level", "triggerButton", "_props", "viewport", "item", "itemIndicator", "arrow", "separator", "scrollButton", "selectTheme", "mx", "root", "orientation", "subdued", "etc", "separatorTheme", "mx", "root", "variant", "etc", "skeletonTheme", "mx", "root", "orientation", "etc", "panel", "_props", "handle", "splitterTheme", "mx", "root", "variant", "etc", "bar", "indeterminate", "statusTheme", "mx", "root", "_", "etc", "tagTheme", "mx", "surfaceShadow", "viewport", "_props", "etc", "root", "elevation", "grid", "header", "title", "description", "actions", "toastTheme", "mx", "layout", "root", "density", "disabled", "layoutManaged", "etc", "text", "_", "toolbarTheme", "mx", "arrow", "_props", "etc", "mx", "tooltipTheme", "content", "tooltipContent", "mx", "root", "_p", "etc", "nav", "caption_label", "button_previous", "button_next", "month_grid", "weekdays", "weekday", "day", "calendarTheme", "mx", "trigger", "hasValue", "etc", "content", "_p", "timeField", "datePickerTheme", "defaultTheme", "themeName", "column", "columnTheme", "panel", "panelTheme", "avatar", "avatarTheme", "breadcrumb", "breadcrumbTheme", "button", "buttonTheme", "calendar", "calendarTheme", "card", "cardTheme", "datePicker", "datePickerTheme", "dialog", "dialogTheme", "focus", "focusTheme", "icon", "iconTheme", "iconButton", "iconButtonTheme", "input", "inputTheme", "link", "linkTheme", "main", "mainTheme", "message", "messageTheme", "menu", "menuTheme", "popover", "popoverTheme", "scrollArea", "scrollAreaTheme", "select", "selectTheme", "separator", "separatorTheme", "skeleton", "skeletonTheme", "splitter", "splitterTheme", "status", "statusTheme", "tag", "tagTheme", "toast", "toastTheme", "toolbar", "toolbarTheme", "tooltip", "tooltipTheme", "defaultTx", "bindTheme"]
}
