{"version":3,"sources":["../src/bridges/index.tsx","../src/components/index.tsx","../src/pages/index.tsx"],"names":["jsx","Box","Stack","Spinner","jsxs","Text","Component","Alert","Button","useRef","useMemo","createToaster","useEffect","Fragment","Toaster","Toast","ReferenceAdapterCard","ReferenceAdapterConfigForm","ReferenceAdapterList","ReferenceAdapterStatusBadge","ReferenceAdapterDetailPage","ReferenceAdaptersPage"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * @module bridges\n * @package @geenius/adapters/react-chakra\n * @description Chakra UI bridge components for async adapter loading, error,\n * and notification surfaces. Adapter contracts stay delegated to the React\n * reference variant.\n */\n\n\"use client\";\n\nimport {\n  Alert,\n  Box,\n  Button,\n  createToaster,\n  Spinner,\n  Stack,\n  Text,\n  Toast,\n  Toaster,\n} from \"@chakra-ui/react\";\nimport type { LoggerAdapter, LogMeta } from \"@geenius/adapters\";\nimport {\n  Component,\n  type ErrorInfo,\n  type JSX,\n  type ReactNode,\n  useEffect,\n  useMemo,\n  useRef,\n} from \"react\";\n\ntype BridgeSize = \"sm\" | \"md\" | \"lg\";\n\nexport type ToastBridgeStatus =\n  | \"default\"\n  | \"info\"\n  | \"success\"\n  | \"warning\"\n  | \"error\"\n  | \"loading\";\n\nexport type ToastBridgePlacement =\n  | \"top-start\"\n  | \"top\"\n  | \"top-end\"\n  | \"bottom-start\"\n  | \"bottom\"\n  | \"bottom-end\";\n\nconst spinnerSizes = {\n  sm: \"sm\",\n  md: \"md\",\n  lg: \"lg\",\n} as const satisfies Record<BridgeSize, \"sm\" | \"md\" | \"lg\">;\n\nconst loadingPadding: Record<BridgeSize, string> = {\n  sm: \"3\",\n  md: \"4\",\n  lg: \"5\",\n};\n\nfunction normalizeError(error: unknown): Error {\n  if (error instanceof Error) {\n    return error;\n  }\n\n  return new Error(typeof error === \"string\" ? error : \"Adapter bridge error\");\n}\n\nfunction nodeText(value: ReactNode, fallback: string): string {\n  if (typeof value === \"string\" || typeof value === \"number\") {\n    return String(value);\n  }\n\n  return fallback;\n}\n\nfunction toastType(\n  status: ToastBridgeStatus,\n): Exclude<ToastBridgeStatus, \"default\"> {\n  return status === \"default\" ? \"info\" : status;\n}\n\nfunction toastDuration(duration: number): number {\n  return duration === 0 ? Infinity : duration;\n}\n\nexport interface LoadingBridgeProps {\n  /** Controls whether the loading affordance renders. Defaults to true. */\n  loading?: boolean;\n  /** Alias for `loading` used by async adapter state objects. */\n  isLoading?: boolean;\n  /** Main loading label announced to assistive technology. */\n  label?: ReactNode;\n  /** Optional supporting copy rendered below the label. */\n  description?: ReactNode;\n  /** Visual density of the Chakra spinner and container. */\n  size?: BridgeSize;\n  /** Content rendered when loading is explicitly false. */\n  children?: ReactNode;\n  /** Optional class name passed to the Chakra wrapper. */\n  className?: string;\n}\n\n/** Renders a Chakra loading affordance for async adapter work. */\nexport function LoadingBridge({\n  children,\n  className,\n  description,\n  isLoading,\n  label = \"Loading adapters\",\n  loading,\n  size = \"md\",\n}: LoadingBridgeProps): JSX.Element {\n  const active = isLoading ?? loading ?? true;\n\n  if (!active) {\n    return <>{children}</>;\n  }\n\n  return (\n    <Box\n      aria-busy=\"true\"\n      aria-live=\"polite\"\n      borderColor=\"border\"\n      borderRadius=\"md\"\n      borderWidth=\"1px\"\n      className={className}\n      padding={loadingPadding[size]}\n      role=\"status\"\n    >\n      <Stack align=\"center\" direction=\"row\" gap=\"3\">\n        <Spinner aria-hidden=\"true\" size={spinnerSizes[size]} />\n        <Stack gap=\"1\" minWidth=\"0\">\n          <Text as=\"span\" fontWeight=\"medium\">\n            {label}\n          </Text>\n          {description ? (\n            <Text as=\"span\" color=\"fg.muted\" textStyle=\"sm\">\n              {description}\n            </Text>\n          ) : null}\n        </Stack>\n      </Stack>\n    </Box>\n  );\n}\n\ntype ErrorBoundaryFallback =\n  | ReactNode\n  | ((error: Error, reset: () => void) => ReactNode);\n\nexport interface ErrorBoundaryBridgeProps {\n  /** React subtree protected by the boundary. */\n  children?: ReactNode;\n  /** Optional controlled async adapter error. */\n  error?: unknown;\n  /** Optional custom fallback node or renderer. */\n  fallback?: ErrorBoundaryFallback;\n  /** Heading used by the default Chakra fallback. */\n  title?: ReactNode;\n  /** Supporting copy used by the default fallback. */\n  description?: ReactNode;\n  /** Label for the default reset action. */\n  resetLabel?: ReactNode;\n  /** Additional class name passed to the default alert. */\n  className?: string;\n  /** Called when a descendant throws. */\n  onError?: (error: Error, errorInfo: ErrorInfo) => void;\n  /** Called before local error state is reset. */\n  onReset?: () => void;\n}\n\ninterface ErrorBoundaryBridgeState {\n  caughtError: Error | null;\n}\n\n/** Catches React render failures and displays a Chakra adapter error state. */\nexport class ErrorBoundaryBridge extends Component<\n  ErrorBoundaryBridgeProps,\n  ErrorBoundaryBridgeState\n> {\n  state: ErrorBoundaryBridgeState = { caughtError: null };\n\n  static getDerivedStateFromError(error: Error): ErrorBoundaryBridgeState {\n    return { caughtError: normalizeError(error) };\n  }\n\n  componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n    this.props.onError?.(normalizeError(error), errorInfo);\n  }\n\n  private reset = (): void => {\n    this.props.onReset?.();\n    this.setState({ caughtError: null });\n  };\n\n  render(): ReactNode {\n    const error =\n      this.props.error !== undefined\n        ? normalizeError(this.props.error)\n        : this.state.caughtError;\n\n    if (!error) {\n      return this.props.children;\n    }\n\n    if (typeof this.props.fallback === \"function\") {\n      return this.props.fallback(error, this.reset);\n    }\n\n    if (this.props.fallback) {\n      return this.props.fallback;\n    }\n\n    return (\n      <Alert.Root\n        className={this.props.className}\n        role=\"alert\"\n        status=\"error\"\n        variant=\"subtle\"\n      >\n        <Alert.Indicator />\n        <Alert.Content>\n          <Alert.Title>{this.props.title ?? \"Adapter error\"}</Alert.Title>\n          {this.props.description ? (\n            <Alert.Description>{this.props.description}</Alert.Description>\n          ) : null}\n          <Text as=\"span\" wordBreak=\"break-word\">\n            {error.message}\n          </Text>\n          <Button\n            alignSelf=\"flex-start\"\n            marginTop=\"3\"\n            onClick={this.reset}\n            size=\"sm\"\n            type=\"button\"\n            variant=\"outline\"\n          >\n            {this.props.resetLabel ?? \"Retry\"}\n          </Button>\n        </Alert.Content>\n      </Alert.Root>\n    );\n  }\n}\n\nexport interface ToastBridgeProps {\n  /** Optional subtree rendered inside the Chakra toaster host. */\n  children?: ReactNode;\n  /** Controls whether the declarative toast should be emitted. */\n  open?: boolean;\n  /** Toast title. */\n  title?: ReactNode;\n  /** Toast message alias used by some adapter telemetry states. */\n  message?: ReactNode;\n  /** Optional supporting toast message. */\n  description?: ReactNode;\n  /** Chakra toast status. */\n  status?: ToastBridgeStatus;\n  /** Alias for `status` to match the other React library variants. */\n  variant?: ToastBridgeStatus;\n  /** Stable dedupe key for repeated declarative renders. */\n  toastKey?: string;\n  /** Auto-dismiss timeout in milliseconds; 0 keeps the toast visible. */\n  duration?: number;\n  /** Chakra toast placement. */\n  placement?: ToastBridgePlacement;\n  /** Optional action label rendered by the Chakra toast. */\n  actionLabel?: ReactNode;\n  /** Called when the optional action is pressed. */\n  onAction?: () => void;\n  /** Called when Chakra reports that the toast is no longer visible. */\n  onDismiss?: () => void;\n  /** Receives the Chakra toast id after emission. */\n  onShown?: (toastId: string) => void;\n  /** Optional logger adapter that receives one structured event per visible toast. */\n  logger?: LoggerAdapter;\n  /** Optional structured metadata merged into the logger event. */\n  meta?: LogMeta;\n  /** Optional class name passed to the Chakra toaster host. */\n  className?: string;\n}\n\n/** Provides Chakra toast rendering and emits declarative adapter notifications. */\nexport function ToastBridge({\n  actionLabel,\n  children,\n  className,\n  description,\n  duration = 0,\n  logger,\n  message,\n  meta,\n  onAction,\n  onDismiss,\n  onShown,\n  open = true,\n  placement = \"bottom-end\",\n  status,\n  title,\n  toastKey,\n  variant,\n}: ToastBridgeProps): JSX.Element {\n  const emittedKeyRef = useRef<string | null>(null);\n  const tone = variant ?? status ?? \"info\";\n  const type = toastType(tone);\n  const toaster = useMemo(\n    () =>\n      createToaster({\n        duration: toastDuration(duration),\n        placement,\n      }),\n    [duration, placement],\n  );\n  const dedupeKey = useMemo(\n    () =>\n      toastKey ??\n      [\n        type,\n        nodeText(title ?? message, \"Adapter notification\"),\n        nodeText(description, \"\"),\n      ].join(\":\"),\n    [description, message, title, toastKey, type],\n  );\n\n  useEffect(() => {\n    if (!open) {\n      emittedKeyRef.current = null;\n      return;\n    }\n\n    if (emittedKeyRef.current === dedupeKey) {\n      return;\n    }\n\n    emittedKeyRef.current = dedupeKey;\n    const titleText = nodeText(title ?? message, \"Adapter notification\");\n    const descriptionText =\n      typeof description === \"string\" ? description : undefined;\n    const action =\n      actionLabel && onAction\n        ? {\n            label: nodeText(actionLabel, \"Open\"),\n            onClick: onAction,\n          }\n        : undefined;\n    const toastId = toaster.create({\n      action,\n      closable: true,\n      description,\n      duration: toastDuration(duration),\n      id: toastKey ?? dedupeKey,\n      onStatusChange(details) {\n        if (details.status === \"unmounted\" || details.status === \"dismissing\") {\n          onDismiss?.();\n        }\n      },\n      title: title ?? message ?? \"Adapter notification\",\n      type,\n    });\n\n    onShown?.(toastId);\n\n    void logger?.info(titleText, {\n      bridge: \"react-chakra\",\n      description: descriptionText,\n      variant: tone,\n      ...meta,\n    });\n  }, [\n    actionLabel,\n    dedupeKey,\n    description,\n    duration,\n    logger,\n    message,\n    meta,\n    onAction,\n    onDismiss,\n    onShown,\n    open,\n    title,\n    toastKey,\n    toaster,\n    tone,\n    type,\n  ]);\n\n  return (\n    <>\n      <Toaster className={className} toaster={toaster}>\n        {(toast) => (\n          <Toast.Root>\n            <Toast.Indicator />\n            <Stack gap=\"1\" flex=\"1\">\n              {toast.title ? <Toast.Title>{toast.title}</Toast.Title> : null}\n              {toast.description ? (\n                <Toast.Description>{toast.description}</Toast.Description>\n              ) : null}\n            </Stack>\n            {toast.action ? (\n              <Toast.ActionTrigger>{toast.action.label}</Toast.ActionTrigger>\n            ) : null}\n            <Toast.CloseTrigger aria-label=\"Dismiss notification\" />\n          </Toast.Root>\n        )}\n      </Toaster>\n      {children}\n    </>\n  );\n}\n","/**\n * @module components\n * @package @geenius/adapters/react-chakra\n * @description Public Chakra component wrappers for the React adapter\n * reference surface.\n */\n\n\"use client\";\n\nimport {\n  type AdapterCardProps,\n  type AdapterConfigFormProps,\n  type AdapterListProps,\n  type AdapterStatusBadgeProps,\n  AdapterCard as ReferenceAdapterCard,\n  AdapterConfigForm as ReferenceAdapterConfigForm,\n  AdapterList as ReferenceAdapterList,\n  AdapterStatusBadge as ReferenceAdapterStatusBadge,\n} from \"@geenius/adapters/react\";\n\nexport type {\n  AdapterCardProps,\n  AdapterConfigFormProps,\n  AdapterListProps,\n  AdapterStatusBadgeProps,\n};\n\nexport function AdapterCard(props: AdapterCardProps) {\n  return <ReferenceAdapterCard {...props} />;\n}\n\nexport function AdapterConfigForm(props: AdapterConfigFormProps) {\n  return <ReferenceAdapterConfigForm {...props} />;\n}\n\nexport function AdapterList(props: AdapterListProps) {\n  return <ReferenceAdapterList {...props} />;\n}\n\nexport function AdapterStatusBadge(props: AdapterStatusBadgeProps) {\n  return <ReferenceAdapterStatusBadge {...props} />;\n}\n","/**\n * @module pages\n * @package @geenius/adapters/react-chakra\n * @description Public Chakra page wrappers for the React adapter reference\n * surface.\n */\n\n\"use client\";\n\nimport {\n  type AdapterDetailPageProps,\n  type AdaptersPageProps,\n  AdapterDetailPage as ReferenceAdapterDetailPage,\n  AdaptersPage as ReferenceAdaptersPage,\n} from \"@geenius/adapters/react\";\n\nexport type { AdapterDetailPageProps, AdaptersPageProps };\n\nexport function AdapterDetailPage(props: AdapterDetailPageProps) {\n  return <ReferenceAdapterDetailPage {...props} />;\n}\n\nexport function AdaptersPage(props: AdaptersPageProps) {\n  return <ReferenceAdaptersPage {...props} />;\n}\n"]}