{"version":3,"sources":["../src/bridges/index.tsx","../src/components/index.tsx","../src/pages/index.tsx"],"names":["jsxs","jsx","Component","useState","useRef","useEffect","Fragment","ReferenceAdapterCard","ReferenceAdapterConfigForm","ReferenceAdapterList","ReferenceAdapterStatusBadge","ReferenceAdapterDetailPage","ReferenceAdaptersPage"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * @module bridges\n * @package @geenius/adapters/react-daisyui\n * @description daisyUI class-based bridge components for async adapter\n * loading, error, and notification surfaces. Adapter contracts stay delegated\n * to the React reference variant.\n */\n\n\"use client\";\n\nimport type { LoggerAdapter, LogMeta } from \"@geenius/adapters\";\nimport {\n  Component,\n  type ErrorInfo,\n  type HTMLAttributes,\n  type JSX,\n  type ReactNode,\n  useEffect,\n  useRef,\n  useState,\n} from \"react\";\n\ntype BridgeSize = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\ntype ToastBridgeTone = \"default\" | \"info\" | \"success\" | \"warning\" | \"error\";\n\ntype ToastBridgePlacement = \"start\" | \"center\" | \"end\";\n\nfunction cx(...classes: Array<string | false | null | undefined>): string {\n  return classes.filter(Boolean).join(\" \");\n}\n\nfunction normalizeProgress(progress: number | undefined): number | undefined {\n  if (progress === undefined) {\n    return undefined;\n  }\n\n  return Math.min(100, Math.max(0, progress));\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\nconst loadingSizeClasses: Record<BridgeSize, string> = {\n  xs: \"loading-xs\",\n  sm: \"loading-sm\",\n  md: \"loading-md\",\n  lg: \"loading-lg\",\n};\n\nconst alertToneClasses: Record<ToastBridgeTone, string> = {\n  default: \"\",\n  info: \"alert-info\",\n  success: \"alert-success\",\n  warning: \"alert-warning\",\n  error: \"alert-error\",\n};\n\nconst toastPlacementClasses: Record<ToastBridgePlacement, string> = {\n  start: \"toast-start\",\n  center: \"toast-center\",\n  end: \"toast-end\",\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\nexport interface LoadingBridgeProps extends HTMLAttributes<HTMLDivElement> {\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  /** Optional determinate progress value from 0 through 100. */\n  progress?: number;\n  /** Visual density of the daisyUI loading spinner. */\n  size?: BridgeSize;\n  /** Content rendered when loading is explicitly false. */\n  children?: ReactNode;\n}\n\n/** Renders a daisyUI loading affordance for async adapter work. */\nexport function LoadingBridge({\n  children,\n  className,\n  description,\n  isLoading,\n  label = \"Loading adapters\",\n  loading,\n  progress,\n  size = \"md\",\n  ...props\n}: LoadingBridgeProps): JSX.Element {\n  const active = isLoading ?? loading ?? true;\n\n  if (!active) {\n    return <>{children}</>;\n  }\n\n  const normalizedProgress = normalizeProgress(progress);\n  const progressLabel = nodeText(label, \"Loading adapters\");\n\n  return (\n    <div\n      aria-busy=\"true\"\n      aria-live=\"polite\"\n      className={cx(\"alert items-start gap-3\", className)}\n      role=\"status\"\n      {...props}\n    >\n      <span\n        aria-hidden=\"true\"\n        className={cx(\n          \"loading loading-spinner shrink-0\",\n          loadingSizeClasses[size],\n        )}\n      />\n      <span className=\"grid min-w-0 gap-1\">\n        <span className=\"font-medium\">{label}</span>\n        {description ? (\n          <span className=\"text-sm opacity-75\">{description}</span>\n        ) : null}\n        {normalizedProgress !== undefined ? (\n          <progress\n            aria-label={progressLabel}\n            className=\"progress progress-primary w-full\"\n            max={100}\n            value={normalizedProgress}\n          />\n        ) : null}\n      </span>\n    </div>\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 daisyUI 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 names for 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 daisyUI 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      <div\n        className={cx(\"alert alert-error items-start\", this.props.className)}\n        role=\"alert\"\n      >\n        <span aria-hidden=\"true\">!</span>\n        <div className=\"min-w-0\">\n          <div className=\"font-semibold\">\n            {this.props.title ?? \"Adapter error\"}\n          </div>\n          {this.props.description ? (\n            <div className=\"text-sm opacity-85\">{this.props.description}</div>\n          ) : null}\n          <div className=\"break-words text-sm opacity-85\">{error.message}</div>\n          <button\n            className=\"btn btn-error btn-sm mt-3\"\n            onClick={this.reset}\n            type=\"button\"\n          >\n            {this.props.resetLabel ?? \"Retry\"}\n          </button>\n        </div>\n      </div>\n    );\n  }\n}\n\nexport interface ToastBridgeProps\n  extends Omit<HTMLAttributes<HTMLDivElement>, \"title\"> {\n  /** Controls whether the toast is currently visible. */\n  open?: boolean;\n  /** Visual treatment matching daisyUI alert tones. */\n  variant?: ToastBridgeTone;\n  /** Alias for `variant` for libraries that call this value status. */\n  status?: ToastBridgeTone;\n  /** Toast title. */\n  title?: ReactNode;\n  /** Toast message, rendered after the title. */\n  message?: ReactNode;\n  /** Optional supporting message. */\n  description?: ReactNode;\n  /** Optional action label rendered as a daisyUI button. */\n  actionLabel?: ReactNode;\n  /** Called when the optional action is pressed. */\n  onAction?: () => void;\n  /** Called when the dismiss button is pressed or auto-dismiss fires. */\n  onDismiss?: () => void;\n  /** Auto-dismiss timeout in milliseconds; 0 disables auto-dismiss. */\n  duration?: number;\n  /** Toast placement on the horizontal axis. */\n  placement?: ToastBridgePlacement;\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 subtree rendered next to the declarative toast bridge. */\n  children?: ReactNode;\n}\n\n/** Renders daisyUI toast notifications for adapter telemetry. */\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  open = true,\n  placement = \"end\",\n  status,\n  title,\n  variant,\n  ...props\n}: ToastBridgeProps): JSX.Element | null {\n  const [visible, setVisible] = useState(open);\n  const loggedToastKey = useRef<string | null>(null);\n  const tone = variant ?? status ?? \"info\";\n\n  useEffect(() => {\n    setVisible(open);\n  }, [open]);\n\n  useEffect(() => {\n    if (!visible) {\n      loggedToastKey.current = null;\n      return;\n    }\n\n    if (!logger) {\n      return;\n    }\n\n    const titleText = nodeText(title ?? message, \"Adapter notification\");\n    const descriptionText =\n      typeof description === \"string\" ? description : undefined;\n    const toastKey = `${tone}:${titleText}:${descriptionText ?? \"\"}`;\n\n    if (loggedToastKey.current === toastKey) {\n      return;\n    }\n\n    loggedToastKey.current = toastKey;\n    const payload: LogMeta = {\n      bridge: \"react-daisyui\",\n      variant: tone,\n      ...meta,\n    };\n\n    if (descriptionText) {\n      payload.description = descriptionText;\n    }\n\n    if (tone === \"error\") {\n      void logger.error(titleText, payload);\n      return;\n    }\n\n    if (tone === \"warning\") {\n      void logger.warn(titleText, payload);\n      return;\n    }\n\n    void logger.info(titleText, payload);\n  }, [description, logger, message, meta, title, tone, visible]);\n\n  useEffect(() => {\n    if (!visible || duration <= 0) {\n      return;\n    }\n\n    const timeout = globalThis.setTimeout(() => {\n      setVisible(false);\n      onDismiss?.();\n    }, duration);\n\n    return () => globalThis.clearTimeout(timeout);\n  }, [duration, onDismiss, visible]);\n\n  const dismiss = (): void => {\n    setVisible(false);\n    onDismiss?.();\n  };\n\n  const toast = visible ? (\n    <div\n      className={cx(\"toast\", toastPlacementClasses[placement], className)}\n      role={tone === \"error\" || tone === \"warning\" ? \"alert\" : \"status\"}\n      {...props}\n    >\n      <div\n        className={cx(\"alert items-start shadow-lg\", alertToneClasses[tone])}\n      >\n        <div className=\"min-w-0\">\n          {title ? <div className=\"font-semibold\">{title}</div> : null}\n          {message ? <div className=\"text-sm\">{message}</div> : null}\n          {description ? (\n            <div className=\"text-sm opacity-75\">{description}</div>\n          ) : null}\n          {actionLabel ? (\n            <button\n              className=\"btn btn-ghost btn-xs mt-2\"\n              onClick={onAction}\n              type=\"button\"\n            >\n              {actionLabel}\n            </button>\n          ) : null}\n        </div>\n        <button\n          aria-label=\"Dismiss notification\"\n          className=\"btn btn-ghost btn-xs\"\n          onClick={dismiss}\n          type=\"button\"\n        >\n          x\n        </button>\n      </div>\n    </div>\n  ) : null;\n\n  if (!children) {\n    return toast;\n  }\n\n  return (\n    <>\n      {children}\n      {toast}\n    </>\n  );\n}\n","/**\n * @module components\n * @package @geenius/adapters/react-daisyui\n * @description Public daisyUI 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-daisyui\n * @description Public daisyUI 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"]}