{"version":3,"sources":["../src/bridges/index.tsx","../src/lib/cx.ts","../src/components/AdapterStatusBadge.tsx","../src/components/AdapterCard.tsx","../src/components/AdapterConfigForm.tsx","../src/components/AdapterList.tsx","../src/pages/index.tsx"],"names":["jsxs","jsx","Show","SolidErrorBoundary","createEffect","onCleanup","For","cx","Fragment","DOMAIN_ICONS","DOMAIN_LABELS","DOMAIN_DESCRIPTIONS","getProvidersForDomain","createSignal","createAdapters","createMemo","ADAPTER_DOMAINS","ReferenceAdapterDetailPage","ReferenceAdaptersPage"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * @module bridges\n * @package @geenius/adapters/solidjs-solidui\n * @description SolidUI-flavoured bridge components for adapter loading,\n * error, and toast states. The core adapter provider and primitives are\n * re-exported from the SolidJS reference package; this module only adds the\n * library-variant UI affordances required by the adapter contract.\n */\n\nimport type { LoggerAdapter, LogMeta } from \"@geenius/adapters\";\nimport {\n  createEffect,\n  For,\n  type JSX,\n  onCleanup,\n  Show,\n  ErrorBoundary as SolidErrorBoundary,\n} from \"solid-js\";\n\ntype BridgeTone = \"info\" | \"success\" | \"warning\" | \"error\";\n\nfunction cx(...classes: Array<string | false | null | undefined>): string {\n  return classes.filter(Boolean).join(\" \");\n}\n\n/**\n * Props accepted by the SolidUI loading bridge.\n *\n * @property loading Whether the bridge should render its loading indicator.\n * @property label Accessible loading label and visible title.\n * @property description Optional supporting text for longer async operations.\n * @property fullScreen Whether the indicator should fill the viewport.\n * @property class Optional class merged into the bridge wrapper.\n * @property children Content rendered when `loading` is false.\n */\nexport interface LoadingBridgeProps {\n  loading?: boolean;\n  label?: string;\n  description?: string;\n  fullScreen?: boolean;\n  class?: string;\n  children?: JSX.Element;\n}\n\n/**\n * Renders a SolidUI-style loading surface for async adapter work.\n *\n * @param props Loading bridge props.\n * @returns A token-friendly loading indicator or the supplied children.\n */\nexport function LoadingBridge(props: LoadingBridgeProps): JSX.Element {\n  const label = () => props.label ?? \"Loading adapters\";\n  const content = (\n    <div\n      aria-busy=\"true\"\n      aria-label={label()}\n      class={cx(\n        \"flex flex-col items-center justify-center gap-3 rounded-md border border-border bg-card p-6 text-card-foreground shadow-sm\",\n        props.fullScreen && \"min-h-screen rounded-none border-0\",\n        props.class,\n      )}\n      role=\"status\"\n    >\n      <span\n        aria-hidden=\"true\"\n        class=\"h-8 w-8 animate-spin rounded-full border-2 border-muted border-t-primary\"\n      />\n      <div class=\"space-y-1 text-center\">\n        <p class=\"text-sm font-semibold\">{label()}</p>\n        <Show when={props.description}>\n          <p class=\"max-w-sm text-sm text-muted-foreground\">\n            {props.description}\n          </p>\n        </Show>\n      </div>\n    </div>\n  );\n\n  return (\n    <Show when={props.loading ?? true} fallback={props.children}>\n      {content}\n    </Show>\n  );\n}\n\ninterface NormalizedError {\n  code?: string;\n  domain?: string;\n  message: string;\n  name?: string;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n  return typeof value === \"object\" && value !== null;\n}\n\nfunction readString(\n  record: Record<string, unknown>,\n  key: string,\n): string | undefined {\n  const value = record[key];\n  return typeof value === \"string\" ? value : undefined;\n}\n\nfunction normalizeError(error: unknown): NormalizedError {\n  if (error instanceof Error) {\n    const record = error as Error & Record<string, unknown>;\n    return {\n      code: readString(record, \"adapterCode\") ?? readString(record, \"code\"),\n      domain: readString(record, \"domain\"),\n      message: error.message,\n      name: error.name,\n    };\n  }\n\n  if (isRecord(error)) {\n    return {\n      code: readString(error, \"adapterCode\") ?? readString(error, \"code\"),\n      domain: readString(error, \"domain\"),\n      message: readString(error, \"message\") ?? \"The adapter request failed.\",\n      name: readString(error, \"name\"),\n    };\n  }\n\n  if (typeof error === \"string\") {\n    return { message: error };\n  }\n\n  return { message: \"The adapter request failed.\" };\n}\n\n/**\n * Props accepted by the SolidUI error boundary bridge.\n *\n * @property error Explicit async adapter error to render.\n * @property title Heading shown above the error details.\n * @property class Optional class merged into the error surface.\n * @property resetLabel Label for the reset button.\n * @property onError Callback invoked when a descendant render error is caught.\n * @property onReset Callback invoked by the reset button.\n * @property children Content protected by the SolidJS error boundary.\n */\nexport interface ErrorBoundaryBridgeProps {\n  error?: unknown;\n  title?: string;\n  class?: string;\n  resetLabel?: string;\n  onError?: (error: unknown) => void;\n  onReset?: () => void;\n  children?: JSX.Element;\n}\n\nfunction ErrorPanel(props: {\n  class?: string;\n  error: unknown;\n  onReset?: () => void;\n  resetLabel?: string;\n  title?: string;\n}): JSX.Element {\n  const detail = () => normalizeError(props.error);\n\n  return (\n    <section\n      class={cx(\n        \"rounded-md border border-destructive/30 bg-destructive/10 p-4 text-destructive shadow-sm\",\n        props.class,\n      )}\n      role=\"alert\"\n    >\n      <div class=\"flex items-start gap-3\">\n        <span\n          aria-hidden=\"true\"\n          class=\"mt-1 flex h-5 w-5 items-center justify-center rounded-full border border-current text-xs font-bold\"\n        >\n          !\n        </span>\n        <div class=\"min-w-0 flex-1 space-y-1\">\n          <h2 class=\"text-sm font-semibold\">\n            {props.title ?? \"Adapter error\"}\n          </h2>\n          <p class=\"text-sm text-destructive/90\">{detail().message}</p>\n          <Show when={detail().code || detail().domain}>\n            <p class=\"text-xs text-destructive/75\">\n              {[detail().domain, detail().code].filter(Boolean).join(\" / \")}\n            </p>\n          </Show>\n        </div>\n        <Show when={props.onReset}>\n          <button\n            class=\"rounded-md border border-current px-3 py-1.5 text-xs font-semibold transition-colors hover:bg-destructive/15 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-destructive/30\"\n            onClick={props.onReset}\n            type=\"button\"\n          >\n            {props.resetLabel ?? \"Retry\"}\n          </button>\n        </Show>\n      </div>\n    </section>\n  );\n}\n\n/**\n * Wraps SolidJS's native error boundary with an adapter-specific SolidUI\n * fallback. Passing an explicit `error` renders the same fallback for async\n * adapter failures that happen outside render.\n *\n * @param props Error bridge props.\n * @returns Protected children or an adapter error panel.\n */\nexport function ErrorBoundaryBridge(\n  props: ErrorBoundaryBridgeProps,\n): JSX.Element {\n  return (\n    <Show\n      when={props.error !== undefined}\n      fallback={\n        <SolidErrorBoundary\n          fallback={(error, reset) => {\n            props.onError?.(error);\n            return (\n              <ErrorPanel\n                class={props.class}\n                error={error}\n                onReset={() => {\n                  props.onReset?.();\n                  reset();\n                }}\n                resetLabel={props.resetLabel}\n                title={props.title}\n              />\n            );\n          }}\n        >\n          {props.children}\n        </SolidErrorBoundary>\n      }\n    >\n      <ErrorPanel\n        class={props.class}\n        error={props.error}\n        onReset={props.onReset}\n        resetLabel={props.resetLabel}\n        title={props.title}\n      />\n    </Show>\n  );\n}\n\n/**\n * A single toast notification rendered by the SolidUI toast bridge.\n */\nexport interface ToastBridgeMessage {\n  id: string;\n  title: string;\n  description?: string;\n  tone?: BridgeTone;\n  duration?: number;\n  action?: {\n    label: string;\n    onClick: () => void;\n  };\n  meta?: LogMeta;\n}\n\nexport type ToastBridgePlacement =\n  | \"bottom-left\"\n  | \"bottom-right\"\n  | \"top-left\"\n  | \"top-right\";\n\n/**\n * Props accepted by the SolidUI toast bridge.\n *\n * @property toasts Toast messages to render.\n * @property placement Fixed viewport placement for the toast stack.\n * @property class Optional class merged into the toast stack.\n * @property logger Optional logger adapter that receives one event per toast id.\n * @property onDismiss Callback fired when a toast is dismissed or expires.\n */\nexport interface ToastBridgeProps {\n  toasts: readonly ToastBridgeMessage[];\n  placement?: ToastBridgePlacement;\n  class?: string;\n  logger?: LoggerAdapter;\n  onDismiss?: (id: string) => void;\n}\n\nconst toastToneClasses: Record<BridgeTone, string> = {\n  error:\n    \"border-destructive/30 bg-destructive/10 text-destructive shadow-destructive/10\",\n  info: \"border-border bg-card text-card-foreground shadow-sm\",\n  success: \"border-primary/30 bg-primary/10 text-primary shadow-primary/10\",\n  warning: \"border-accent/30 bg-accent/10 text-accent shadow-accent/10\",\n};\n\nconst toastToneLabel: Record<BridgeTone, string> = {\n  error: \"Error\",\n  info: \"Info\",\n  success: \"Success\",\n  warning: \"Warning\",\n};\n\nconst placementClasses: Record<ToastBridgePlacement, string> = {\n  \"bottom-left\": \"bottom-4 left-4\",\n  \"bottom-right\": \"bottom-4 right-4\",\n  \"top-left\": \"left-4 top-4\",\n  \"top-right\": \"right-4 top-4\",\n};\n\nfunction logToast(logger: LoggerAdapter, toast: ToastBridgeMessage): void {\n  const tone = toast.tone ?? \"info\";\n  const meta: LogMeta = {\n    bridge: \"solidjs-solidui\",\n    toastId: toast.id,\n    tone,\n    ...toast.meta,\n  };\n\n  if (tone === \"error\") {\n    void logger.error(toast.title, meta);\n    return;\n  }\n\n  if (tone === \"warning\") {\n    void logger.warn(toast.title, meta);\n    return;\n  }\n\n  void logger.info(toast.title, meta);\n}\n\n/**\n * Renders a SolidUI-style toast stack and optionally mirrors toast events to\n * the configured logger adapter.\n *\n * @param props Toast bridge props.\n * @returns A fixed toast region.\n */\nexport function ToastBridge(props: ToastBridgeProps): JSX.Element {\n  const loggedToastIds = new Set<string>();\n  const dismissTimers = new Map<string, ReturnType<typeof setTimeout>>();\n\n  createEffect(() => {\n    const activeIds = new Set(props.toasts.map((toast) => toast.id));\n\n    for (const [toastId, timer] of dismissTimers) {\n      if (!activeIds.has(toastId)) {\n        clearTimeout(timer);\n        dismissTimers.delete(toastId);\n      }\n    }\n\n    for (const toast of props.toasts) {\n      if (props.logger && !loggedToastIds.has(toast.id)) {\n        loggedToastIds.add(toast.id);\n        logToast(props.logger, toast);\n      }\n\n      if (\n        toast.duration !== undefined &&\n        toast.duration > 0 &&\n        props.onDismiss &&\n        !dismissTimers.has(toast.id)\n      ) {\n        dismissTimers.set(\n          toast.id,\n          setTimeout(() => {\n            props.onDismiss?.(toast.id);\n            dismissTimers.delete(toast.id);\n          }, toast.duration),\n        );\n      }\n    }\n  });\n\n  onCleanup(() => {\n    for (const timer of dismissTimers.values()) {\n      clearTimeout(timer);\n    }\n    dismissTimers.clear();\n  });\n\n  return (\n    <Show when={props.toasts.length > 0}>\n      <div\n        aria-live=\"polite\"\n        class={cx(\n          \"fixed z-50 flex w-[min(24rem,calc(100vw-2rem))] flex-col gap-2\",\n          placementClasses[props.placement ?? \"top-right\"],\n          props.class,\n        )}\n        role=\"status\"\n      >\n        <For each={props.toasts}>\n          {(toast) => {\n            const tone = () => toast.tone ?? \"info\";\n            return (\n              <article\n                class={cx(\n                  \"rounded-md border p-4 shadow-sm\",\n                  toastToneClasses[tone()],\n                )}\n                data-toast-id={toast.id}\n              >\n                <div class=\"flex items-start gap-3\">\n                  <span class=\"text-xs font-bold uppercase tracking-normal\">\n                    {toastToneLabel[tone()]}\n                  </span>\n                  <div class=\"min-w-0 flex-1 space-y-1\">\n                    <p class=\"text-sm font-semibold\">{toast.title}</p>\n                    <Show when={toast.description}>\n                      <p class=\"text-sm opacity-85\">{toast.description}</p>\n                    </Show>\n                  </div>\n                  <Show when={toast.action}>\n                    {(action) => (\n                      <button\n                        class=\"rounded-md border border-current px-2.5 py-1 text-xs font-semibold transition-colors hover:bg-current/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-current/30\"\n                        onClick={action().onClick}\n                        type=\"button\"\n                      >\n                        {action().label}\n                      </button>\n                    )}\n                  </Show>\n                  <Show when={props.onDismiss}>\n                    <button\n                      aria-label={`Dismiss ${toast.title}`}\n                      class=\"rounded-md p-1 text-xs font-semibold opacity-75 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-current/30\"\n                      onClick={() => props.onDismiss?.(toast.id)}\n                      type=\"button\"\n                    >\n                      x\n                    </button>\n                  </Show>\n                </div>\n              </article>\n            );\n          }}\n        </For>\n      </div>\n    </Show>\n  );\n}\n","/**\n * @module cx\n * @package @geenius/adapters/solidjs-solidui\n * @description Provides the lightweight class name composition helper used by\n * the SolidUI component wrappers.\n */\n\n/**\n * Joins class names while ignoring falsy conditional entries.\n *\n * @param classes Class name strings where falsy values are ignored\n * @returns A space-delimited class name string containing only truthy values\n */\nexport function cx(...classes: (string | false | null | undefined)[]): string {\n  return classes.filter(Boolean).join(\" \");\n}\n","/**\n * @module AdapterStatusBadge\n * @package @geenius/adapters/solidjs-solidui\n * @description Renders the SolidUI adapter status badge for the SolidJS\n * SolidUI variant. The badge keeps the shared adapter status vocabulary while\n * exposing token-friendly SolidUI classes.\n */\n\nimport type { AdapterStatusType } from \"@geenius/adapters\";\nimport type { JSX } from \"solid-js\";\nimport { cx } from \"../lib/cx\";\n\nconst LABELS: Record<AdapterStatusType, string> = {\n  connected: \"Connected\",\n  disconnected: \"Disconnected\",\n  error: \"Error\",\n  initializing: \"Initializing\",\n};\n\nconst BADGE_CLASSES: Record<AdapterStatusType, string> = {\n  connected: \"border-primary/20 bg-primary/10 text-primary\",\n  disconnected: \"border-border bg-muted text-muted-foreground\",\n  error: \"border-destructive/20 bg-destructive/10 text-destructive\",\n  initializing: \"border-accent/20 bg-accent/10 text-accent\",\n};\n\nconst DOT_CLASSES: Record<AdapterStatusType, string> = {\n  connected: \"bg-primary\",\n  disconnected: \"bg-muted-foreground\",\n  error: \"bg-destructive\",\n  initializing: \"bg-accent animate-pulse motion-reduce:animate-none\",\n};\n\n/**\n * Props for rendering the SolidUI adapter status badge.\n *\n * @property status Shared adapter status vocabulary value to display.\n * @property showLabel Whether the human-readable label should be rendered.\n * @property size Visual size variant for the badge and status dot.\n * @property class Optional class name merged into the badge wrapper.\n */\nexport interface AdapterStatusBadgeProps {\n  status: AdapterStatusType;\n  showLabel?: boolean;\n  size?: \"sm\" | \"md\";\n  class?: string;\n}\n\n/**\n * Renders a compact SolidUI badge for the current adapter lifecycle state.\n *\n * @param props Badge props including the status token, optional label visibility, and size variant.\n * @returns A styled badge element that mirrors the shared adapter status taxonomy.\n */\nexport function AdapterStatusBadge(\n  props: AdapterStatusBadgeProps,\n): JSX.Element {\n  const size = () => props.size ?? \"sm\";\n\n  return (\n    <span\n      class={cx(\n        \"solidui-adapter-status inline-flex items-center gap-1.5 rounded-full border font-semibold uppercase transition-colors motion-reduce:transition-none\",\n        size() === \"md\" ? \"px-3 py-1 text-xs\" : \"px-2.5 py-0.5 text-[0.625rem]\",\n        BADGE_CLASSES[props.status],\n        props.class,\n      )}\n      data-status={props.status}\n    >\n      <span\n        class={cx(\n          \"rounded-full\",\n          size() === \"md\" ? \"h-2 w-2\" : \"h-1.5 w-1.5\",\n          DOT_CLASSES[props.status],\n        )}\n      />\n      {props.showLabel !== false && <span>{LABELS[props.status]}</span>}\n    </span>\n  );\n}\n","/**\n * @module AdapterCard\n * @package @geenius/adapters/solidjs-solidui\n * @description Renders the SolidUI adapter summary card for the SolidJS\n * SolidUI variant. The card surfaces provider status, latency, and domain\n * metadata for one adapter domain in dashboard views.\n */\n\nimport type { AdapterDomain, AdapterStatusInfo } from \"@geenius/adapters\";\nimport {\n  DOMAIN_DESCRIPTIONS,\n  DOMAIN_ICONS,\n  DOMAIN_LABELS,\n} from \"@geenius/adapters\";\nimport type { JSX } from \"solid-js\";\nimport { Show } from \"solid-js\";\nimport { cx } from \"../lib/cx\";\nimport { AdapterStatusBadge } from \"./AdapterStatusBadge\";\n\n/**\n * Props for rendering a single adapter summary card in the SolidUI dashboard grid.\n *\n * @property domain Adapter domain represented by the card.\n * @property status Current provider health and metadata for the domain.\n * @property onClick Optional callback fired when the card is activated.\n * @property class Optional class name merged into the card container.\n */\nexport interface AdapterCardProps {\n  domain: AdapterDomain;\n  status: AdapterStatusInfo;\n  onClick?: () => void;\n  class?: string;\n}\n\n/**\n * Renders a clickable SolidUI summary card for one adapter domain.\n *\n * @param props Card props including the adapter domain, status payload, and click handler.\n * @returns An interactive button when selection is enabled, otherwise a static summary card.\n */\nexport function AdapterCard(props: AdapterCardProps): JSX.Element {\n  const content = (\n    <>\n      <div class=\"flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-md border border-border bg-muted text-2xl shadow-sm transition-transform duration-300 group-hover:scale-105\">\n        {DOMAIN_ICONS[props.domain]}\n      </div>\n      <div class=\"min-w-0 flex-1\">\n        <div class=\"flex items-center justify-between gap-2\">\n          <h3 class=\"truncate text-sm font-bold text-foreground\">\n            {DOMAIN_LABELS[props.domain]}\n          </h3>\n          <AdapterStatusBadge status={props.status.status} />\n        </div>\n        <p class=\"mt-0.5 line-clamp-2 text-xs text-muted-foreground\">\n          {DOMAIN_DESCRIPTIONS[props.domain]}\n        </p>\n        <Show when={props.status.provider && props.status.provider !== \"none\"}>\n          <div class=\"mt-2 flex items-center gap-2\">\n            <span class=\"rounded-md border border-border bg-muted px-2 py-0.5 text-[0.625rem] font-semibold text-muted-foreground\">\n              {props.status.provider}\n            </span>\n            <Show when={props.status.latency}>\n              <span class=\"text-[0.625rem] text-muted-foreground\">\n                {props.status.latency}ms\n              </span>\n            </Show>\n          </div>\n        </Show>\n        <Show when={props.status.error}>\n          <p class=\"mt-1.5 truncate text-[0.625rem] text-destructive\">\n            {props.status.error}\n          </p>\n        </Show>\n      </div>\n    </>\n  );\n\n  const className = cx(\n    \"solidui-adapter-card group relative flex w-full items-start gap-4 overflow-hidden rounded-md border border-border bg-card p-5 text-left text-card-foreground shadow-sm transition-colors duration-200\",\n    props.onClick\n      ? \"hover:border-primary/20 hover:bg-accent/5 hover:shadow-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30\"\n      : \"cursor-default\",\n    props.class,\n  );\n\n  if (!props.onClick) {\n    return (\n      <article\n        class={className}\n        aria-label={`${DOMAIN_LABELS[props.domain]} adapter - ${props.status.status}`}\n      >\n        {content}\n      </article>\n    );\n  }\n\n  return (\n    <button\n      type=\"button\"\n      onClick={props.onClick}\n      class={className}\n      aria-label={`${DOMAIN_LABELS[props.domain]} adapter - ${props.status.status}`}\n    >\n      {content}\n    </button>\n  );\n}\n","/**\n * @module AdapterConfigForm\n * @package @geenius/adapters/solidjs-solidui\n * @description Renders the SolidUI adapter configuration form for the SolidJS\n * SolidUI variant. It provides provider selection and credential inputs while\n * delegating persistence to the host application.\n */\n\nimport type { AdapterDomain, DomainAdapterConfig } from \"@geenius/adapters\";\nimport { DOMAIN_LABELS, getProvidersForDomain } from \"@geenius/adapters\";\nimport type { JSX } from \"solid-js\";\nimport { createEffect, createSignal, For, Show } from \"solid-js\";\nimport { cx } from \"../lib/cx\";\n\n/**\n * Props accepted by the SolidUI adapter configuration form.\n *\n * @property domain Adapter domain being configured in the current dialog\n * @property initialConfig Existing configuration values used to hydrate the form\n * @property onSave Async or sync handler that persists the submitted configuration\n * @property onCancel Optional callback invoked when the user dismisses the form\n * @property class Optional class merged onto the form root\n * @property titleId Optional identifier applied to the form title for dialog labelling\n */\nexport interface AdapterConfigFormProps {\n  domain: AdapterDomain;\n  initialConfig?: DomainAdapterConfig;\n  onSave: (config: DomainAdapterConfig) => Promise<void> | void;\n  onCancel?: () => void;\n  class?: string;\n  titleId?: string;\n}\n\n/**\n * Renders the adapter configuration workflow for a single adapter domain.\n *\n * @param props Component props controlling the selected domain and form callbacks\n * @returns A provider chooser and credential form styled with SolidUI tokens\n */\nexport function AdapterConfigForm(props: AdapterConfigFormProps): JSX.Element {\n  const providers = getProvidersForDomain(props.domain);\n  const [provider, setProvider] = createSignal(\n    props.initialConfig?.provider ?? providers[0]?.id ?? \"\",\n  );\n  const [apiKey, setApiKey] = createSignal(props.initialConfig?.apiKey ?? \"\");\n  const [baseUrl, setBaseUrl] = createSignal(\n    props.initialConfig?.baseUrl ?? \"\",\n  );\n  const [isSaving, setIsSaving] = createSignal(false);\n  const [error, setError] = createSignal<string | null>(null);\n  const selectedMeta = () => providers.find((entry) => entry.id === provider());\n\n  const needsApiKey = () => selectedMeta()?.requiresApiKey ?? false;\n  const needsBaseUrl = () => selectedMeta()?.requiresBaseUrl ?? false;\n\n  createEffect(() => {\n    if (!needsApiKey() && apiKey()) {\n      setApiKey(\"\");\n    }\n    if (!needsBaseUrl() && baseUrl()) {\n      setBaseUrl(\"\");\n    }\n  });\n\n  const handleSubmit = async (event: Event): Promise<void> => {\n    event.preventDefault();\n    setError(null);\n\n    if (!provider()) {\n      setError(\"Select a provider\");\n      return;\n    }\n\n    if (needsApiKey() && !apiKey().trim()) {\n      setError(\"API key is required\");\n      return;\n    }\n\n    setIsSaving(true);\n    try {\n      const config: DomainAdapterConfig = { provider: provider() };\n      if (needsApiKey() && apiKey().trim()) {\n        config.apiKey = apiKey().trim();\n      }\n      if (needsBaseUrl() && baseUrl().trim()) {\n        config.baseUrl = baseUrl().trim();\n      }\n      await props.onSave(config);\n    } catch (err) {\n      setError(err instanceof Error ? err.message : \"Failed to save\");\n    } finally {\n      setIsSaving(false);\n    }\n  };\n\n  return (\n    <form\n      onSubmit={handleSubmit}\n      class={cx(\n        \"solidui-adapter-form space-y-6 rounded-md border border-border bg-card p-6 text-card-foreground shadow-sm\",\n        props.class,\n      )}\n      noValidate\n    >\n      <div>\n        <h3 id={props.titleId} class=\"text-lg font-bold text-foreground\">\n          Configure {DOMAIN_LABELS[props.domain]}\n        </h3>\n        <p class=\"mt-1 text-sm text-muted-foreground\">\n          Select and configure your preferred provider.\n        </p>\n      </div>\n\n      <Show when={error()}>\n        <div\n          class=\"rounded-md border border-destructive/20 bg-destructive/10 px-4 py-3 text-sm text-destructive\"\n          role=\"alert\"\n        >\n          {error()}\n        </div>\n      </Show>\n\n      <div class=\"space-y-3\">\n        <span class=\"block text-xs font-semibold uppercase text-muted-foreground\">\n          Provider\n        </span>\n        <div class=\"grid gap-2 sm:grid-cols-2\">\n          <For each={providers}>\n            {(providerMeta) => (\n              <button\n                type=\"button\"\n                onClick={() => setProvider(providerMeta.id)}\n                aria-pressed={provider() === providerMeta.id}\n                class={cx(\n                  \"flex items-start gap-4 rounded-md border p-4 text-left transition-colors duration-200\",\n                  provider() === providerMeta.id\n                    ? \"border-primary/30 bg-primary/10 shadow-sm\"\n                    : \"border-border bg-muted/20 hover:border-primary/20 hover:bg-accent/5\",\n                )}\n              >\n                <div class=\"flex-1\">\n                  <span class=\"block text-sm font-bold text-foreground\">\n                    {providerMeta.name}\n                  </span>\n                  <span class=\"mt-1 block text-xs leading-relaxed text-muted-foreground\">\n                    {providerMeta.description}\n                  </span>\n                  <span\n                    class={cx(\n                      \"mt-2 inline-flex rounded px-2 py-0.5 text-[0.5rem] font-bold uppercase\",\n                      providerMeta.tier === \"pronto\"\n                        ? \"bg-primary/10 text-primary\"\n                        : providerMeta.tier === \"lancio\"\n                          ? \"bg-accent/10 text-accent\"\n                          : \"bg-muted text-muted-foreground\",\n                    )}\n                  >\n                    {providerMeta.tier}\n                  </span>\n                </div>\n              </button>\n            )}\n          </For>\n        </div>\n      </div>\n\n      <Show when={needsApiKey()}>\n        <div class=\"space-y-1.5\">\n          <label\n            class=\"block text-xs font-semibold uppercase text-muted-foreground\"\n            for={`solidui-adapter-${props.domain}-apiKey`}\n          >\n            API Key\n          </label>\n          <input\n            id={`solidui-adapter-${props.domain}-apiKey`}\n            type=\"password\"\n            value={apiKey()}\n            onInput={(event) => setApiKey(event.currentTarget.value)}\n            placeholder={`Enter ${selectedMeta()?.name ?? provider() ?? \"provider\"} API key`}\n            autocomplete=\"off\"\n            class=\"w-full rounded-md border border-input bg-background px-4 py-3 text-sm text-foreground shadow-sm outline-none transition-colors placeholder:text-muted-foreground focus:border-primary focus:ring-2 focus:ring-primary/20\"\n          />\n        </div>\n      </Show>\n\n      <Show when={needsBaseUrl()}>\n        <div class=\"space-y-1.5\">\n          <label\n            class=\"block text-xs font-semibold uppercase text-muted-foreground\"\n            for={`solidui-adapter-${props.domain}-url`}\n          >\n            Base URL\n          </label>\n          <input\n            id={`solidui-adapter-${props.domain}-url`}\n            type=\"url\"\n            value={baseUrl()}\n            onInput={(event) => setBaseUrl(event.currentTarget.value)}\n            placeholder=\"https://...\"\n            class=\"w-full rounded-md border border-input bg-background px-4 py-3 text-sm text-foreground shadow-sm outline-none transition-colors placeholder:text-muted-foreground focus:border-primary focus:ring-2 focus:ring-primary/20\"\n          />\n        </div>\n      </Show>\n\n      <div class=\"flex justify-end gap-3 pt-2\">\n        <Show when={props.onCancel}>\n          <button\n            type=\"button\"\n            onClick={() => props.onCancel?.()}\n            class=\"rounded-md px-5 py-2.5 text-sm font-semibold text-muted-foreground transition-colors hover:text-foreground\"\n          >\n            Cancel\n          </button>\n        </Show>\n        <button\n          type=\"submit\"\n          disabled={isSaving() || !provider()}\n          class=\"inline-flex items-center justify-center rounded-md border border-primary/30 bg-primary px-8 py-3 text-sm font-bold text-primary-foreground shadow-sm transition-colors hover:bg-primary/90 disabled:pointer-events-none disabled:opacity-50\"\n        >\n          {isSaving() ? \"Saving...\" : \"Save Configuration\"}\n        </button>\n      </div>\n    </form>\n  );\n}\n","/**\n * @module AdapterList\n * @package @geenius/adapters/solidjs-solidui\n * @description Renders the searchable SolidUI adapter grid for the SolidJS\n * SolidUI variant. The list consumes provider status from context and delegates\n * selection events to the hosting page or dashboard shell.\n */\n\nimport type { AdapterDomain, AdapterStatusType } from \"@geenius/adapters\";\nimport { ADAPTER_DOMAINS, DOMAIN_LABELS } from \"@geenius/adapters\";\nimport { createAdapters } from \"@geenius/adapters/solidjs\";\nimport type { JSX } from \"solid-js\";\nimport { createMemo, createSignal, For, Show } from \"solid-js\";\nimport { cx } from \"../lib/cx\";\nimport { AdapterCard } from \"./AdapterCard\";\n\n/**\n * Props for rendering the SolidUI adapter list and optional status filter controls.\n *\n * @property onSelect Optional callback invoked when a domain card is selected.\n * @property filterStatus Optional status filter applied before rendering the grid.\n * @property class Optional class name merged into the outer wrapper.\n */\nexport interface AdapterListProps {\n  onSelect?: (domain: AdapterDomain) => void;\n  filterStatus?: AdapterStatusType;\n  class?: string;\n}\n\n/**\n * Renders the searchable SolidUI adapter list backed by shared provider state.\n *\n * @param props List props including selection callback, status filtering, and wrapper class names.\n * @returns The adapter grid or an empty state when no entries are available.\n */\nexport function AdapterList(props: AdapterListProps): JSX.Element {\n  const ctx = createAdapters();\n  const [search, setSearch] = createSignal(\"\");\n\n  const filtered = createMemo(() => {\n    let domains = [...ADAPTER_DOMAINS];\n    const query = search().toLowerCase();\n\n    if (query) {\n      domains = domains.filter((domain) => {\n        return (\n          (DOMAIN_LABELS[domain] ?? domain).toLowerCase().includes(query) ||\n          domain.includes(query) ||\n          (ctx.statuses[domain]?.provider?.toLowerCase().includes(query) ??\n            false)\n        );\n      });\n    }\n\n    if (props.filterStatus) {\n      domains = domains.filter(\n        (domain) => ctx.statuses[domain]?.status === props.filterStatus,\n      );\n    }\n\n    return domains;\n  });\n\n  return (\n    <Show\n      when={!ctx.isLoading}\n      fallback={\n        <div\n          class={cx(\"grid gap-3\", props.class)}\n          role=\"status\"\n          aria-label=\"Loading adapters\"\n        >\n          <For each={[1, 2, 3, 4]}>\n            {() => (\n              <div class=\"rounded-md border border-border bg-card p-5 shadow-sm\">\n                <div class=\"flex items-start gap-4\">\n                  <div class=\"h-12 w-12 rounded-md border border-border bg-muted\" />\n                  <div class=\"flex-1 space-y-3 pt-1\">\n                    <div class=\"h-3 w-24 rounded-md bg-muted\" />\n                    <div class=\"h-2 w-48 rounded-md bg-muted/70\" />\n                  </div>\n                </div>\n              </div>\n            )}\n          </For>\n        </div>\n      }\n    >\n      <div class={cx(\"solidui-adapter-list\", props.class)}>\n        <div class=\"mb-4\">\n          <input\n            type=\"text\"\n            value={search()}\n            onInput={(event) => setSearch(event.currentTarget.value)}\n            placeholder=\"Search adapters...\"\n            aria-label=\"Search adapters\"\n            class=\"w-full rounded-md border border-input bg-background px-4 py-3 text-sm text-foreground shadow-sm outline-none transition-colors placeholder:text-muted-foreground focus:border-primary focus:ring-2 focus:ring-primary/20\"\n          />\n        </div>\n\n        <Show\n          when={filtered().length > 0}\n          fallback={\n            <div class=\"rounded-md border border-border bg-muted/40 p-8 text-center\">\n              <p class=\"text-sm font-medium text-muted-foreground\">\n                {search()\n                  ? \"No adapters match your search\"\n                  : \"No adapters configured\"}\n              </p>\n            </div>\n          }\n        >\n          <ul\n            class=\"m-0 grid list-none gap-3 p-0 sm:grid-cols-2\"\n            aria-label=\"Adapter list\"\n          >\n            <For each={filtered()}>\n              {(domain) => (\n                <li>\n                  <AdapterCard\n                    domain={domain}\n                    status={ctx.statuses[domain]}\n                    onClick={\n                      props.onSelect\n                        ? () => props.onSelect?.(domain)\n                        : undefined\n                    }\n                  />\n                </li>\n              )}\n            </For>\n          </ul>\n        </Show>\n      </div>\n    </Show>\n  );\n}\n","/**\n * @module pages\n * @package @geenius/adapters/solidjs-solidui\n * @description Public SolidUI page wrappers for the SolidJS adapter reference\n * surface.\n */\n\nimport {\n  type AdapterDetailPageProps,\n  type AdaptersPageProps,\n  AdapterDetailPage as ReferenceAdapterDetailPage,\n  AdaptersPage as ReferenceAdaptersPage,\n} from \"@geenius/adapters/solidjs\";\nimport type { JSX } from \"solid-js\";\n\nexport type { AdapterDetailPageProps, AdaptersPageProps };\n\nexport function AdapterDetailPage(props: AdapterDetailPageProps): JSX.Element {\n  return <ReferenceAdapterDetailPage {...props} />;\n}\n\nexport function AdaptersPage(props: AdaptersPageProps): JSX.Element {\n  return <ReferenceAdaptersPage {...props} />;\n}\n"]}