{"version":3,"sources":["../src/bridges/index.tsx","../src/lib/kobalte.ts","../src/components/AdapterStatusBadge.tsx","../src/components/AdapterCard.tsx","../src/components/AdapterConfigForm.tsx","../src/components/AdapterList.tsx","../src/pages/AdapterDetailPage.tsx","../src/pages/AdaptersPage.tsx"],"names":["createResource","createMemo","jsx","Show","jsxs","ErrorBoundary","createSignal","createEffect","onCleanup","For","kobalteCorePromise","loadKobalteCore","cn","Fragment","DOMAIN_ICONS","DOMAIN_LABELS","DOMAIN_DESCRIPTIONS","getProvidersForDomain","createAdapters","ADAPTER_DOMAINS","createAdapterStatus","isAdaptersConfigured","getDomainConfig","ADAPTER_STATUSES"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * @module bridges\n * @package @geenius/adapters/solidjs-kobalte\n * @description Kobalte-backed SolidJS bridges for async adapter loading,\n * adapter error fallbacks, and telemetry toast notifications.\n */\n\nimport type { JSX } from \"solid-js\";\nimport {\n  createEffect,\n  createMemo,\n  createResource,\n  createSignal,\n  ErrorBoundary,\n  For,\n  onCleanup,\n  Show,\n} from \"solid-js\";\n\ntype BridgeTone = \"info\" | \"success\" | \"warning\" | \"error\";\ntype BridgeSize = \"sm\" | \"md\" | \"lg\";\n\nfunction cn(\n  ...classes: Array<string | false | null | undefined>\n): string | undefined {\n  const value = classes.filter(Boolean).join(\" \");\n  return value.length > 0 ? value : undefined;\n}\n\nfunction accessibleText(value: JSX.Element, fallback: string): string {\n  if (typeof value === \"string\" || typeof value === \"number\") {\n    return String(value);\n  }\n\n  return fallback;\n}\n\nconst toneClasses: Record<BridgeTone, string> = {\n  info: \"border-sky-500/30 bg-sky-50 text-sky-950\",\n  success: \"border-emerald-500/30 bg-emerald-50 text-emerald-950\",\n  warning: \"border-amber-500/40 bg-amber-50 text-amber-950\",\n  error: \"border-red-500/40 bg-red-50 text-red-950\",\n};\n\nconst loadingSizeClasses: Record<BridgeSize, string> = {\n  sm: \"gap-2 p-3 text-xs\",\n  md: \"gap-3 p-4 text-sm\",\n  lg: \"gap-4 p-5 text-base\",\n};\n\ntype KobalteCore = typeof import(\"@kobalte/core\");\n\nlet kobalteCorePromise: Promise<KobalteCore | undefined> | undefined;\n\nfunction loadKobalteCore(): Promise<KobalteCore | undefined> {\n  kobalteCorePromise ??= import(\"@kobalte/core\").catch(() => undefined);\n  return kobalteCorePromise;\n}\n\nexport interface LoadingBridgeProps {\n  /** Main loading label announced through the Kobalte progress primitive. */\n  label?: JSX.Element;\n  /** Optional supporting copy rendered under the label. */\n  description?: JSX.Element;\n  /** Determinate progress value. Omit for an indeterminate loading state. */\n  value?: number;\n  /** Maximum determinate value. */\n  maxValue?: number;\n  /** Visual density of the loading affordance. */\n  size?: BridgeSize;\n  /** Additional Tailwind classes for the Kobalte progress root. */\n  class?: string;\n  /** Stable test selector for consumers that need one. */\n  testId?: string;\n}\n\n/** Kobalte progress bridge for async adapter loading states. */\nexport function LoadingBridge(props: LoadingBridgeProps): JSX.Element {\n  const [core] = createResource(loadKobalteCore);\n  const label = createMemo(() => props.label ?? \"Loading adapters\");\n  const accessibleLabel = createMemo(() =>\n    accessibleText(label(), \"Loading adapters\"),\n  );\n  const maxValue = createMemo(() => props.maxValue ?? 100);\n  const isIndeterminate = createMemo(() => props.value === undefined);\n  const rootClass = createMemo(() =>\n    cn(\n      \"grid rounded-md border border-slate-200 bg-white text-slate-950 shadow-sm\",\n      loadingSizeClasses[props.size ?? \"md\"],\n      props.class,\n    ),\n  );\n\n  return (\n    <Show\n      fallback={\n        <div\n          aria-label={accessibleLabel()}\n          aria-valuemax={maxValue()}\n          aria-valuemin={0}\n          aria-valuenow={isIndeterminate() ? undefined : props.value}\n          class={rootClass()}\n          data-geenius-bridge=\"loading\"\n          data-testid={props.testId}\n          role=\"progressbar\"\n        >\n          <div class=\"flex items-center justify-between gap-3\">\n            <span class=\"font-medium leading-none\">{label()}</span>\n            <Show when={!isIndeterminate()}>\n              <span class=\"text-xs text-slate-500\">{props.value}%</span>\n            </Show>\n          </div>\n          <div class=\"h-2 overflow-hidden rounded-full bg-slate-200\">\n            <div\n              class=\"h-full rounded-full bg-slate-950 transition-[width]\"\n              style={{\n                width: isIndeterminate() ? \"0%\" : `${props.value ?? 0}%`,\n              }}\n            />\n          </div>\n          <Show when={props.description}>\n            <p class=\"text-xs leading-snug text-slate-500\">\n              {props.description}\n            </p>\n          </Show>\n        </div>\n      }\n      keyed\n      when={core()?.Progress}\n    >\n      {(Progress) => (\n        <Progress.Root\n          class={rootClass()}\n          data-geenius-bridge=\"loading\"\n          data-testid={props.testId}\n          indeterminate={isIndeterminate()}\n          maxValue={maxValue()}\n          value={props.value}\n        >\n          <div class=\"flex items-center justify-between gap-3\">\n            <Progress.Label class=\"font-medium leading-none\">\n              {label()}\n            </Progress.Label>\n            <Show when={!isIndeterminate()}>\n              <Progress.ValueLabel class=\"text-xs text-slate-500\" />\n            </Show>\n          </div>\n          <Progress.Track class=\"h-2 overflow-hidden rounded-full bg-slate-200\">\n            <Progress.Fill class=\"h-full rounded-full bg-slate-950 transition-[width]\" />\n          </Progress.Track>\n          <Show when={props.description}>\n            <p class=\"text-xs leading-snug text-slate-500\">\n              {props.description}\n            </p>\n          </Show>\n        </Progress.Root>\n      )}\n    </Show>\n  );\n}\n\ntype ErrorBoundaryFallback =\n  | JSX.Element\n  | ((error: Error, reset: () => void) => JSX.Element);\n\nexport interface ErrorBoundaryBridgeProps {\n  /** Descendant tree guarded by the SolidJS error boundary. */\n  children?: JSX.Element;\n  /** Explicit adapter error to render without waiting for a descendant throw. */\n  error?: unknown;\n  /** Optional custom fallback node or renderer. */\n  fallback?: ErrorBoundaryFallback;\n  /** Heading used by the default Kobalte alert fallback. */\n  title?: JSX.Element;\n  /** Supporting copy used by the default fallback. */\n  description?: JSX.Element;\n  /** Label for the default reset action. */\n  resetLabel?: JSX.Element;\n  /** Additional Tailwind classes for the Kobalte alert root. */\n  class?: string;\n  /** Called when a descendant throws. */\n  onError?: (error: Error) => void;\n  /** Called before local error state is reset. */\n  onReset?: () => void;\n  /** Stable test selector for consumers that need one. */\n  testId?: string;\n}\n\nfunction normalizeError(error: unknown): Error {\n  if (error instanceof Error) {\n    return error;\n  }\n\n  if (typeof error === \"string\" && error.length > 0) {\n    return new Error(error);\n  }\n\n  return new Error(\"Unknown adapter bridge error\");\n}\n\nfunction DefaultErrorFallback(props: {\n  error: Error;\n  title: JSX.Element;\n  description: JSX.Element;\n  resetLabel: JSX.Element;\n  onReset: () => void;\n  class?: string;\n  testId?: string;\n}): JSX.Element {\n  const [core] = createResource(loadKobalteCore);\n  const rootClass = createMemo(() =>\n    cn(\"rounded-md border p-4 shadow-sm\", toneClasses.error, props.class),\n  );\n  const body = () => (\n    <div class=\"grid gap-2\">\n      <div class=\"text-sm font-semibold leading-none\">{props.title}</div>\n      <p class=\"text-sm leading-snug opacity-90\">{props.description}</p>\n      <p class=\"break-words text-xs opacity-80\">{props.error.message}</p>\n      <button\n        class=\"inline-flex h-8 w-fit items-center justify-center rounded-md border border-current/20 bg-white/60 px-3 text-xs font-medium transition-colors hover:bg-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-current/30\"\n        onClick={props.onReset}\n        type=\"button\"\n      >\n        {props.resetLabel}\n      </button>\n    </div>\n  );\n\n  return (\n    <Show\n      fallback={\n        <div\n          class={rootClass()}\n          data-geenius-bridge=\"error-boundary\"\n          data-testid={props.testId}\n          role=\"alert\"\n        >\n          {body()}\n        </div>\n      }\n      keyed\n      when={core()?.Alert}\n    >\n      {(Alert) => (\n        <Alert.Root\n          class={rootClass()}\n          data-geenius-bridge=\"error-boundary\"\n          data-testid={props.testId}\n        >\n          {body()}\n        </Alert.Root>\n      )}\n    </Show>\n  );\n}\n\n/** SolidJS error boundary rendered with Kobalte's alert primitive. */\nexport function ErrorBoundaryBridge(\n  props: ErrorBoundaryBridgeProps,\n): JSX.Element {\n  const explicitError = createMemo(() => props.error);\n  const renderFallback = (errorInput: unknown, reset: () => void) => {\n    const error = normalizeError(errorInput);\n    const resetAndNotify = () => {\n      props.onReset?.();\n      reset();\n    };\n\n    if (typeof props.fallback === \"function\") {\n      return props.fallback(error, resetAndNotify);\n    }\n\n    if (props.fallback !== undefined) {\n      return props.fallback;\n    }\n\n    return (\n      <DefaultErrorFallback\n        class={props.class}\n        description={\n          props.description ??\n          \"The adapter bridge could not finish the requested work.\"\n        }\n        error={error}\n        onReset={resetAndNotify}\n        resetLabel={props.resetLabel ?? \"Try again\"}\n        testId={props.testId}\n        title={props.title ?? \"Adapter error\"}\n      />\n    );\n  };\n\n  return (\n    <Show\n      fallback={\n        <ErrorBoundary\n          fallback={(error, reset) => {\n            const normalized = normalizeError(error);\n            props.onError?.(normalized);\n            return renderFallback(normalized, reset);\n          }}\n        >\n          {props.children}\n        </ErrorBoundary>\n      }\n      keyed\n      when={explicitError()}\n    >\n      {(error) => renderFallback(error, () => undefined)}\n    </Show>\n  );\n}\n\nexport type ToastBridgeVariant = \"default\" | \"success\" | \"warning\" | \"error\";\n\nexport type ToastBridgeSwipeDirection = \"up\" | \"down\" | \"left\" | \"right\";\n\nexport interface ToastBridgeNotification {\n  /** Stable source id used to avoid duplicate notification dispatches. */\n  id: string;\n  /** Toast title rendered through Kobalte Toast.Title. */\n  title: JSX.Element;\n  /** Optional supporting message rendered through Kobalte Toast.Description. */\n  description?: JSX.Element;\n  /** Visual and assistive priority treatment. */\n  variant?: ToastBridgeVariant;\n  /** Auto-dismiss timeout for this notification. */\n  duration?: number;\n  /** Whether this toast remains until dismissed. */\n  persistent?: boolean;\n}\n\nexport interface ToastBridgeProps {\n  /** Notifications to enqueue into Kobalte's toaster. */\n  notifications?: readonly ToastBridgeNotification[];\n  /** Kobalte region id used when multiple toast regions exist. */\n  regionId?: string;\n  /** Default auto-dismiss timeout in milliseconds. */\n  duration?: number;\n  /** Maximum simultaneously visible toasts. */\n  limit?: number;\n  /** Kobalte swipe direction for dismiss gestures. */\n  swipeDirection?: ToastBridgeSwipeDirection;\n  /** Clears all Kobalte toasts when this bridge unmounts. */\n  clearOnUnmount?: boolean;\n  /** Called after a notification is handed to Kobalte's toaster. */\n  onNotify?: (event: { id: string; toastId: number }) => void;\n  /** Additional Tailwind classes for the Kobalte toast region. */\n  class?: string;\n  /** Stable test selector for consumers that need one. */\n  testId?: string;\n}\n\nconst toastToneClasses: Record<ToastBridgeVariant, string> = {\n  default: \"border-slate-200 bg-white text-slate-950\",\n  success: toneClasses.success,\n  warning: toneClasses.warning,\n  error: toneClasses.error,\n};\n\ntype KobalteToastCore = KobalteCore & {\n  Toast: NonNullable<KobalteCore[\"Toast\"]>;\n  toaster: NonNullable<KobalteCore[\"toaster\"]>;\n};\n\nfunction hasKobalteToastCore(\n  core: KobalteCore | undefined,\n): core is KobalteToastCore {\n  return (\n    core?.Toast !== undefined &&\n    typeof core.toaster?.clear === \"function\" &&\n    typeof core.toaster.show === \"function\"\n  );\n}\n\nfunction uniqueNotifications(\n  notifications: readonly ToastBridgeNotification[],\n): ToastBridgeNotification[] {\n  const seen = new Set<string>();\n  const unique: ToastBridgeNotification[] = [];\n\n  for (const notification of notifications) {\n    if (seen.has(notification.id)) {\n      continue;\n    }\n\n    seen.add(notification.id);\n    unique.push(notification);\n  }\n\n  return unique;\n}\n\nfunction toastPriority(\n  variant: ToastBridgeVariant | undefined,\n): \"high\" | \"low\" {\n  return variant === \"error\" || variant === \"warning\" ? \"high\" : \"low\";\n}\n\n/** Kobalte toast region and enqueue bridge for adapter telemetry events. */\nexport function ToastBridge(props: ToastBridgeProps): JSX.Element {\n  const [core] = createResource(loadKobalteCore);\n  const [fallbackReady, setFallbackReady] = createSignal(false);\n  const notifications = createMemo(() =>\n    uniqueNotifications(props.notifications ?? []),\n  );\n  const enqueuedNotificationIds = new Set<string>();\n  const fallbackNotifiedIds = new Set<string>();\n  const kobalteNotifiedIds = new Set<string>();\n  let clearToasts: (() => void) | undefined;\n  const fallbackTimer = setTimeout(() => {\n    setFallbackReady(true);\n  }, 0);\n\n  createEffect(() => {\n    const loadedCore = core();\n    if (!hasKobalteToastCore(loadedCore)) {\n      if (!fallbackReady()) {\n        return;\n      }\n\n      for (const notification of notifications()) {\n        if (fallbackNotifiedIds.has(notification.id)) {\n          continue;\n        }\n\n        fallbackNotifiedIds.add(notification.id);\n        props.onNotify?.({ id: notification.id, toastId: -1 });\n      }\n\n      return;\n    }\n\n    for (const notification of notifications()) {\n      if (enqueuedNotificationIds.has(notification.id)) {\n        continue;\n      }\n\n      enqueuedNotificationIds.add(notification.id);\n      const variant = notification.variant ?? \"default\";\n      const { Toast, toaster } = loadedCore;\n      clearToasts = toaster.clear;\n      const toastId = toaster.show(\n        (toastProps) => (\n          <Toast.Root\n            class={cn(\n              \"pointer-events-auto grid gap-1 rounded-md border p-4 shadow-lg\",\n              toastToneClasses[variant],\n            )}\n            duration={notification.duration ?? props.duration}\n            persistent={notification.persistent}\n            priority={toastPriority(notification.variant)}\n            toastId={toastProps.toastId}\n          >\n            <Toast.Title class=\"text-sm font-semibold leading-none\">\n              {notification.title}\n            </Toast.Title>\n            <Show when={notification.description}>\n              <Toast.Description class=\"text-sm leading-snug opacity-90\">\n                {notification.description}\n              </Toast.Description>\n            </Show>\n            <Toast.CloseButton\n              aria-label=\"Dismiss notification\"\n              class=\"mt-2 inline-flex h-7 w-fit items-center justify-center rounded-md border border-current/20 bg-white/50 px-2 text-xs font-medium\"\n            >\n              Dismiss\n            </Toast.CloseButton>\n          </Toast.Root>\n        ),\n        { region: props.regionId },\n      );\n\n      if (!kobalteNotifiedIds.has(notification.id)) {\n        kobalteNotifiedIds.add(notification.id);\n        props.onNotify?.({ id: notification.id, toastId });\n      }\n    }\n  });\n\n  onCleanup(() => {\n    clearTimeout(fallbackTimer);\n    if (props.clearOnUnmount) {\n      clearToasts?.();\n    }\n  });\n\n  return (\n    <Show\n      fallback={\n        <section\n          aria-label=\"Adapter notifications\"\n          class={cn(\n            \"fixed right-4 top-4 z-50 grid w-96 max-w-[calc(100vw-2rem)] gap-2\",\n            props.class,\n          )}\n          data-geenius-bridge=\"toast\"\n          data-testid={props.testId}\n        >\n          <For each={notifications()}>\n            {(notification) => (\n              <div\n                class={cn(\n                  \"pointer-events-auto grid gap-1 rounded-md border p-4 shadow-lg\",\n                  toastToneClasses[notification.variant ?? \"default\"],\n                )}\n                role={notification.variant === \"error\" ? \"alert\" : \"status\"}\n              >\n                <div class=\"text-sm font-semibold leading-none\">\n                  {notification.title}\n                </div>\n                <Show when={notification.description}>\n                  <div class=\"text-sm leading-snug opacity-90\">\n                    {notification.description}\n                  </div>\n                </Show>\n              </div>\n            )}\n          </For>\n        </section>\n      }\n      keyed\n      when={hasKobalteToastCore(core()) ? core()?.Toast : undefined}\n    >\n      {(Toast) => (\n        <Toast.Region\n          class={cn(\n            \"fixed right-4 top-4 z-50 grid w-96 max-w-[calc(100vw-2rem)] gap-2\",\n            props.class,\n          )}\n          data-geenius-bridge=\"toast\"\n          data-testid={props.testId}\n          duration={props.duration}\n          limit={props.limit}\n          regionId={props.regionId}\n          swipeDirection={props.swipeDirection}\n        >\n          <Toast.List class=\"grid gap-2 outline-none\" />\n        </Toast.Region>\n      )}\n    </Show>\n  );\n}\n","/**\n * @module kobalte\n * @package @geenius/adapters/solidjs-kobalte\n * @description Shared helpers for the Kobalte variant components. Kobalte is\n * loaded lazily so Node smoke imports can still evaluate the package when the\n * Solid-specific export condition is unavailable.\n */\n\nexport type KobalteCore = typeof import(\"@kobalte/core\");\n\nlet kobalteCorePromise: Promise<KobalteCore | undefined> | undefined;\n\nexport function loadKobalteCore(): Promise<KobalteCore | undefined> {\n  kobalteCorePromise ??= import(\"@kobalte/core\").catch(() => undefined);\n  return kobalteCorePromise;\n}\n\nexport function cn(\n  ...classes: Array<string | false | null | undefined>\n): string | undefined {\n  const value = classes.filter(Boolean).join(\" \");\n  return value.length > 0 ? value : undefined;\n}\n","/**\n * @module AdapterStatusBadge\n * @package @geenius/adapters/solidjs-kobalte\n * @description Local status badge for the SolidJS Kobalte variant.\n */\n\nimport type { AdapterStatusType } from \"@geenius/adapters\";\nimport type { JSX } from \"solid-js\";\nimport { cn } from \"../lib/kobalte\";\n\nconst LABELS: Record<AdapterStatusType, string> = {\n  connected: \"Connected\",\n  disconnected: \"Disconnected\",\n  error: \"Error\",\n  initializing: \"Initializing\",\n};\n\nconst badgeClasses: Record<AdapterStatusType, string> = {\n  connected: \"border-emerald-500/30 bg-emerald-50 text-emerald-700\",\n  disconnected: \"border-slate-300 bg-slate-100 text-slate-600\",\n  error: \"border-red-500/30 bg-red-50 text-red-700\",\n  initializing: \"border-amber-500/30 bg-amber-50 text-amber-700\",\n};\n\nconst dotClasses: Record<AdapterStatusType, string> = {\n  connected: \"bg-emerald-500\",\n  disconnected: \"bg-slate-400\",\n  error: \"bg-red-500\",\n  initializing: \"bg-amber-500 animate-pulse motion-reduce:animate-none\",\n};\n\nexport interface AdapterStatusBadgeProps {\n  status: AdapterStatusType;\n  showLabel?: boolean;\n  size?: \"sm\" | \"md\";\n  class?: string;\n}\n\nexport function AdapterStatusBadge(\n  props: AdapterStatusBadgeProps,\n): JSX.Element {\n  const size = () =>\n    props.size === \"md\"\n      ? \"gap-2 px-3 py-1 text-xs\"\n      : \"gap-1.5 px-2.5 py-0.5 text-[0.625rem]\";\n  const dotSize = () => (props.size === \"md\" ? \"h-2 w-2\" : \"h-1.5 w-1.5\");\n\n  return (\n    <span\n      class={cn(\n        \"inline-flex items-center rounded-full border font-semibold uppercase transition-colors motion-reduce:transition-none\",\n        size(),\n        badgeClasses[props.status],\n        props.class,\n      )}\n      data-geenius-variant=\"solidjs-kobalte\"\n    >\n      <span class={cn(\"rounded-full\", dotSize(), dotClasses[props.status])} />\n      {props.showLabel !== false && <span>{LABELS[props.status]}</span>}\n    </span>\n  );\n}\n","/**\n * @module AdapterCard\n * @package @geenius/adapters/solidjs-kobalte\n * @description Kobalte-native adapter summary card for the SolidJS library\n * variant, with a semantic fallback for non-Solid export-condition runtimes.\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 { createMemo, createResource, Show } from \"solid-js\";\nimport { cn, loadKobalteCore } from \"../lib/kobalte\";\nimport { AdapterStatusBadge } from \"./AdapterStatusBadge\";\n\nexport interface AdapterCardProps {\n  domain: AdapterDomain;\n  status: AdapterStatusInfo;\n  onClick?: () => void;\n  class?: string;\n}\n\nfunction CardContent(props: AdapterCardProps): JSX.Element {\n  return (\n    <>\n      <div class=\"flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-md border border-slate-200 bg-white 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-slate-950\">\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-slate-500\">\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-slate-200 bg-slate-50 px-2 py-0.5 text-[0.625rem] font-semibold text-slate-600\">\n              {props.status.provider}\n            </span>\n            <Show when={props.status.latency}>\n              <span class=\"text-[0.625rem] text-slate-500\">\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-red-600\">\n            {props.status.error}\n          </p>\n        </Show>\n      </div>\n    </>\n  );\n}\n\nexport function AdapterCard(props: AdapterCardProps): JSX.Element {\n  const [core] = createResource(loadKobalteCore);\n  const Button = createMemo(() => core()?.Button?.Root);\n  const ariaLabel = createMemo(\n    () => `${DOMAIN_LABELS[props.domain]} adapter - ${props.status.status}`,\n  );\n  const className = createMemo(() =>\n    cn(\n      \"group relative flex w-full items-start gap-4 overflow-hidden rounded-lg border border-slate-200 bg-white p-5 text-left text-slate-950 shadow-sm transition-colors duration-200\",\n      props.onClick\n        ? \"hover:border-sky-300 hover:bg-sky-50/60 hover:shadow-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sky-500/30\"\n        : \"cursor-default\",\n      props.class,\n    ),\n  );\n\n  if (!props.onClick) {\n    return (\n      <article\n        aria-label={ariaLabel()}\n        class={className()}\n        data-geenius-component=\"AdapterCard\"\n        data-geenius-variant=\"solidjs-kobalte\"\n      >\n        <CardContent {...props} />\n      </article>\n    );\n  }\n\n  return (\n    <Show\n      fallback={\n        <button\n          aria-label={ariaLabel()}\n          class={className()}\n          data-geenius-component=\"AdapterCard\"\n          data-geenius-variant=\"solidjs-kobalte\"\n          onClick={props.onClick}\n          type=\"button\"\n        >\n          <CardContent {...props} />\n        </button>\n      }\n      keyed\n      when={Button()}\n    >\n      {(KobalteButton) => (\n        <KobalteButton\n          aria-label={ariaLabel()}\n          class={className()}\n          data-geenius-component=\"AdapterCard\"\n          data-geenius-variant=\"solidjs-kobalte\"\n          onClick={props.onClick}\n          type=\"button\"\n        >\n          <CardContent {...props} />\n        </KobalteButton>\n      )}\n    </Show>\n  );\n}\n","/**\n * @module AdapterConfigForm\n * @package @geenius/adapters/solidjs-kobalte\n * @description Kobalte-backed adapter configuration form for the SolidJS\n * library variant.\n */\n\nimport type { AdapterDomain, DomainAdapterConfig } from \"@geenius/adapters\";\nimport { DOMAIN_LABELS, getProvidersForDomain } from \"@geenius/adapters\";\nimport type { JSX } from \"solid-js\";\nimport {\n  createEffect,\n  createMemo,\n  createResource,\n  createSignal,\n  For,\n  Show,\n} from \"solid-js\";\nimport { cn, loadKobalteCore } from \"../lib/kobalte\";\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\nexport function AdapterConfigForm(props: AdapterConfigFormProps): JSX.Element {\n  const providers = getProvidersForDomain(props.domain);\n  const [core] = createResource(loadKobalteCore);\n  const Button = createMemo(() => core()?.Button?.Root);\n  const TextField = createMemo(() => core()?.TextField);\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  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 buttonClass = createMemo(() =>\n    cn(\n      \"inline-flex items-center justify-center rounded-md text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sky-500/30 disabled:pointer-events-none disabled:opacity-50\",\n    ),\n  );\n  const inputClass =\n    \"w-full rounded-md border border-slate-300 bg-white px-4 py-3 text-sm text-slate-950 shadow-sm outline-none transition-colors placeholder:text-slate-400 focus:border-sky-500 focus:ring-2 focus:ring-sky-500/20\";\n\n  const providerOptionClass = (id: string) =>\n    cn(\n      \"flex items-start gap-4 rounded-lg border p-4 text-left transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sky-500/30\",\n      provider() === id\n        ? \"border-sky-500/40 bg-sky-50 shadow-sm\"\n        : \"border-slate-200 bg-slate-50 hover:border-sky-300 hover:bg-sky-50/60\",\n    );\n\n  const tierClass = (tier: \"pronto\" | \"lancio\" | \"studio\") =>\n    cn(\n      \"mt-2 inline-flex rounded px-2 py-0.5 text-[0.5rem] font-bold uppercase\",\n      tier === \"pronto\"\n        ? \"bg-emerald-50 text-emerald-700\"\n        : tier === \"lancio\"\n          ? \"bg-sky-50 text-sky-700\"\n          : \"bg-slate-100 text-slate-600\",\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  const renderButton = (buttonProps: {\n    children: JSX.Element;\n    class: string;\n    disabled?: boolean;\n    onClick?: () => void;\n    type: \"button\" | \"submit\";\n    ariaPressed?: boolean;\n  }): JSX.Element => (\n    <Show\n      fallback={\n        <button\n          aria-pressed={buttonProps.ariaPressed}\n          class={buttonProps.class}\n          disabled={buttonProps.disabled}\n          onClick={buttonProps.onClick}\n          type={buttonProps.type}\n        >\n          {buttonProps.children}\n        </button>\n      }\n      keyed\n      when={Button()}\n    >\n      {(KobalteButton) => (\n        <KobalteButton\n          aria-pressed={buttonProps.ariaPressed}\n          class={buttonProps.class}\n          disabled={buttonProps.disabled}\n          onClick={buttonProps.onClick}\n          type={buttonProps.type}\n        >\n          {buttonProps.children}\n        </KobalteButton>\n      )}\n    </Show>\n  );\n\n  const renderTextField = (field: {\n    id: string;\n    label: string;\n    placeholder: string;\n    type: \"password\" | \"url\";\n    value: string;\n    onChange: (value: string) => void;\n  }): JSX.Element => (\n    <Show\n      fallback={\n        <div class=\"space-y-1.5\">\n          <label\n            class=\"block text-xs font-semibold uppercase text-slate-500\"\n            for={field.id}\n          >\n            {field.label}\n          </label>\n          <input\n            autocomplete={field.type === \"password\" ? \"off\" : undefined}\n            class={inputClass}\n            id={field.id}\n            onInput={(event) => field.onChange(event.currentTarget.value)}\n            placeholder={field.placeholder}\n            type={field.type}\n            value={field.value}\n          />\n        </div>\n      }\n      keyed\n      when={TextField()}\n    >\n      {(KobalteTextField) => (\n        <KobalteTextField.Root\n          class=\"space-y-1.5\"\n          id={field.id}\n          onChange={field.onChange}\n          value={field.value}\n        >\n          <KobalteTextField.Label class=\"block text-xs font-semibold uppercase text-slate-500\">\n            {field.label}\n          </KobalteTextField.Label>\n          <KobalteTextField.Input\n            aria-label={field.label}\n            autocomplete={field.type === \"password\" ? \"off\" : undefined}\n            class={inputClass}\n            id={field.id}\n            onInput={(event) => field.onChange(event.currentTarget.value)}\n            placeholder={field.placeholder}\n            type={field.type}\n          />\n        </KobalteTextField.Root>\n      )}\n    </Show>\n  );\n\n  return (\n    <form\n      class={cn(\n        \"space-y-6 rounded-lg border border-slate-200 bg-white p-6 text-slate-950 shadow-sm\",\n        props.class,\n      )}\n      data-geenius-component=\"AdapterConfigForm\"\n      data-geenius-variant=\"solidjs-kobalte\"\n      noValidate\n      onSubmit={handleSubmit}\n    >\n      <div>\n        <h3 id={props.titleId} class=\"text-lg font-bold text-slate-950\">\n          Configure {DOMAIN_LABELS[props.domain]}\n        </h3>\n        <p class=\"mt-1 text-sm text-slate-500\">\n          Select and configure your preferred provider.\n        </p>\n      </div>\n\n      <Show when={error()}>\n        <div\n          class=\"rounded-md border border-red-500/30 bg-red-50 px-4 py-3 text-sm text-red-700\"\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-slate-500\">\n          Provider\n        </span>\n        <div class=\"grid gap-2 sm:grid-cols-2\">\n          <For each={providers}>\n            {(providerMeta) =>\n              renderButton({\n                ariaPressed: provider() === providerMeta.id,\n                class: providerOptionClass(providerMeta.id) ?? \"\",\n                onClick: () => setProvider(providerMeta.id),\n                type: \"button\",\n                children: (\n                  <div class=\"flex-1\">\n                    <span class=\"block text-sm font-bold text-slate-950\">\n                      {providerMeta.name}\n                    </span>\n                    <span class=\"mt-1 block text-xs leading-relaxed text-slate-500\">\n                      {providerMeta.description}\n                    </span>\n                    <span class={tierClass(providerMeta.tier)}>\n                      {providerMeta.tier}\n                    </span>\n                  </div>\n                ),\n              })\n            }\n          </For>\n        </div>\n      </div>\n\n      <Show when={needsApiKey()}>\n        {renderTextField({\n          id: `adapter-${props.domain}-apiKey`,\n          label: \"API Key\",\n          onChange: setApiKey,\n          placeholder: `Enter ${selectedMeta()?.name ?? provider() ?? \"provider\"} API key`,\n          type: \"password\",\n          value: apiKey(),\n        })}\n      </Show>\n\n      <Show when={needsBaseUrl()}>\n        {renderTextField({\n          id: `adapter-${props.domain}-url`,\n          label: \"Base URL\",\n          onChange: setBaseUrl,\n          placeholder: \"https://...\",\n          type: \"url\",\n          value: baseUrl(),\n        })}\n      </Show>\n\n      <div class=\"flex justify-end gap-3 pt-2\">\n        <Show when={props.onCancel}>\n          {renderButton({\n            class:\n              cn(\n                buttonClass(),\n                \"px-5 py-2.5 text-slate-500 hover:text-slate-950\",\n              ) ?? \"\",\n            onClick: () => props.onCancel?.(),\n            type: \"button\",\n            children: \"Cancel\",\n          })}\n        </Show>\n        {renderButton({\n          class:\n            cn(\n              buttonClass(),\n              \"border border-sky-600/30 bg-sky-600 px-8 py-3 font-bold text-white shadow-sm hover:bg-sky-700\",\n            ) ?? \"\",\n          disabled: isSaving() || !provider(),\n          type: \"submit\",\n          children: isSaving() ? \"Saving...\" : \"Save Configuration\",\n        })}\n      </div>\n    </form>\n  );\n}\n","/**\n * @module AdapterList\n * @package @geenius/adapters/solidjs-kobalte\n * @description Searchable Kobalte-backed adapter grid for the SolidJS library\n * variant.\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, createResource, createSignal, For, Show } from \"solid-js\";\nimport { cn, loadKobalteCore } from \"../lib/kobalte\";\nimport { AdapterCard } from \"./AdapterCard\";\n\nexport interface AdapterListProps {\n  onSelect?: (domain: AdapterDomain) => void;\n  filterStatus?: AdapterStatusType;\n  class?: string;\n}\n\nexport function AdapterList(props: AdapterListProps): JSX.Element {\n  const ctx = createAdapters();\n  const [core] = createResource(loadKobalteCore);\n  const TextField = createMemo(() => core()?.TextField);\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  const inputClass =\n    \"w-full rounded-md border border-slate-300 bg-white px-4 py-3 text-sm text-slate-950 shadow-sm outline-none transition-colors placeholder:text-slate-400 focus:border-sky-500 focus:ring-2 focus:ring-sky-500/20\";\n\n  return (\n    <Show\n      fallback={\n        <div\n          aria-label=\"Loading adapters\"\n          class={cn(\"grid gap-3\", props.class)}\n          role=\"status\"\n        >\n          <For each={[1, 2, 3, 4]}>\n            {() => (\n              <div class=\"rounded-lg border border-slate-200 bg-white p-5 shadow-sm\">\n                <div class=\"flex items-start gap-4\">\n                  <div class=\"h-12 w-12 rounded-md border border-slate-200 bg-slate-100\" />\n                  <div class=\"flex-1 space-y-3 pt-1\">\n                    <div class=\"h-3 w-24 rounded-md bg-slate-100\" />\n                    <div class=\"h-2 w-48 rounded-md bg-slate-100\" />\n                  </div>\n                </div>\n              </div>\n            )}\n          </For>\n        </div>\n      }\n      when={!ctx.isLoading}\n    >\n      <div\n        class={props.class}\n        data-geenius-component=\"AdapterList\"\n        data-geenius-variant=\"solidjs-kobalte\"\n      >\n        <div class=\"mb-4\">\n          <Show\n            fallback={\n              <input\n                aria-label=\"Search adapters\"\n                class={inputClass}\n                onInput={(event) => setSearch(event.currentTarget.value)}\n                placeholder=\"Search adapters...\"\n                type=\"text\"\n                value={search()}\n              />\n            }\n            keyed\n            when={TextField()}\n          >\n            {(KobalteTextField) => (\n              <KobalteTextField.Root onChange={setSearch} value={search()}>\n                <KobalteTextField.Input\n                  aria-label=\"Search adapters\"\n                  class={inputClass}\n                  onInput={(event) => setSearch(event.currentTarget.value)}\n                  placeholder=\"Search adapters...\"\n                  type=\"text\"\n                />\n              </KobalteTextField.Root>\n            )}\n          </Show>\n        </div>\n\n        <Show\n          fallback={\n            <div class=\"rounded-lg border border-slate-200 bg-slate-50 p-8 text-center\">\n              <p class=\"text-sm font-medium text-slate-500\">\n                {search()\n                  ? \"No adapters match your search\"\n                  : \"No adapters configured\"}\n              </p>\n            </div>\n          }\n          when={filtered().length > 0}\n        >\n          <ul\n            aria-label=\"Adapter list\"\n            class=\"m-0 grid list-none gap-3 p-0 sm:grid-cols-2\"\n          >\n            <For each={filtered()}>\n              {(domain) => (\n                <li>\n                  <AdapterCard\n                    domain={domain}\n                    onClick={\n                      props.onSelect\n                        ? () => props.onSelect?.(domain)\n                        : undefined\n                    }\n                    status={ctx.statuses[domain]}\n                  />\n                </li>\n              )}\n            </For>\n          </ul>\n        </Show>\n      </div>\n    </Show>\n  );\n}\n","/**\n * @module AdapterDetailPage\n * @package @geenius/adapters/solidjs-kobalte\n * @description Single-domain Kobalte-backed adapter detail page.\n */\n\nimport type { AdapterDomain } from \"@geenius/adapters\";\nimport {\n  DOMAIN_DESCRIPTIONS,\n  DOMAIN_ICONS,\n  DOMAIN_LABELS,\n  getProvidersForDomain,\n} from \"@geenius/adapters\";\nimport { createAdapterStatus } from \"@geenius/adapters/solidjs\";\nimport type { JSX } from \"solid-js\";\nimport { createMemo, createResource, createSignal, For, Show } from \"solid-js\";\nimport { AdapterConfigForm, AdapterStatusBadge } from \"../components\";\nimport { cn, loadKobalteCore } from \"../lib/kobalte\";\n\nexport interface AdapterDetailPageProps {\n  domain: AdapterDomain;\n  onBack?: () => void;\n  class?: string;\n}\n\nexport function AdapterDetailPage(props: AdapterDetailPageProps): JSX.Element {\n  const status = createAdapterStatus(props.domain);\n  const providers = getProvidersForDomain(props.domain);\n  const [core] = createResource(loadKobalteCore);\n  const Button = createMemo(() => core()?.Button?.Root);\n  const Progress = createMemo(() => core()?.Progress);\n  const [isEditing, setIsEditing] = createSignal(false);\n  const latency = () => status().latency ?? 0;\n  const latencyValue = () => Math.min(100, (latency() / 1000) * 100);\n\n  const backButton = () => (\n    <Show\n      fallback={\n        <button\n          class=\"inline-flex items-center gap-1.5 text-sm text-slate-500 transition-colors hover:text-slate-950\"\n          onClick={props.onBack}\n          type=\"button\"\n        >\n          Back to Adapters\n        </button>\n      }\n      keyed\n      when={Button()}\n    >\n      {(KobalteButton) => (\n        <KobalteButton\n          class=\"inline-flex items-center gap-1.5 text-sm text-slate-500 transition-colors hover:text-slate-950\"\n          onClick={props.onBack}\n          type=\"button\"\n        >\n          Back to Adapters\n        </KobalteButton>\n      )}\n    </Show>\n  );\n\n  const configureButton = () => (\n    <Show\n      fallback={\n        <button\n          class=\"w-full rounded-lg border border-dashed border-slate-300 bg-white p-6 text-center text-sm text-slate-500 transition-colors hover:border-sky-400 hover:text-slate-950\"\n          onClick={() => setIsEditing(true)}\n          type=\"button\"\n        >\n          Configure {DOMAIN_LABELS[props.domain]} Adapter\n        </button>\n      }\n      keyed\n      when={Button()}\n    >\n      {(KobalteButton) => (\n        <KobalteButton\n          class=\"w-full rounded-lg border border-dashed border-slate-300 bg-white p-6 text-center text-sm text-slate-500 transition-colors hover:border-sky-400 hover:text-slate-950\"\n          onClick={() => setIsEditing(true)}\n          type=\"button\"\n        >\n          Configure {DOMAIN_LABELS[props.domain]} Adapter\n        </KobalteButton>\n      )}\n    </Show>\n  );\n\n  return (\n    <div\n      class={cn(\"mx-auto max-w-3xl space-y-8 text-slate-950\", props.class)}\n      data-geenius-component=\"AdapterDetailPage\"\n      data-geenius-variant=\"solidjs-kobalte\"\n    >\n      <Show when={props.onBack}>{backButton()}</Show>\n\n      <div class=\"flex items-start gap-5\">\n        <div class=\"flex h-16 w-16 items-center justify-center rounded-lg border border-slate-200 bg-white text-3xl shadow-sm\">\n          {DOMAIN_ICONS[props.domain]}\n        </div>\n        <div class=\"flex-1\">\n          <div class=\"flex items-center gap-3\">\n            <h1 class=\"text-2xl font-extrabold text-slate-950\">\n              {DOMAIN_LABELS[props.domain]}\n            </h1>\n            <AdapterStatusBadge status={status().status} />\n          </div>\n          <p class=\"mt-1 text-sm text-slate-500\">\n            {DOMAIN_DESCRIPTIONS[props.domain]}\n          </p>\n        </div>\n      </div>\n\n      <div class=\"rounded-lg border border-slate-200 bg-white p-6 shadow-sm\">\n        <h2 class=\"mb-4 text-xs font-semibold uppercase text-slate-500\">\n          Current Status\n        </h2>\n        <div class=\"grid gap-4 sm:grid-cols-3\">\n          <div>\n            <p class=\"text-[0.625rem] uppercase text-slate-500\">Provider</p>\n            <p class=\"mt-0.5 text-sm font-semibold text-slate-950\">\n              {status().provider !== \"none\" ? status().provider : \"None\"}\n            </p>\n          </div>\n          <div>\n            <p class=\"text-[0.625rem] uppercase text-slate-500\">Status</p>\n            <p class=\"mt-0.5\">\n              <AdapterStatusBadge status={status().status} />\n            </p>\n          </div>\n          <div>\n            <p class=\"text-[0.625rem] uppercase text-slate-500\">Last Checked</p>\n            <p class=\"mt-0.5 text-sm text-slate-500\">\n              <Show when={status().lastCheckedAt} fallback={\"Not checked\"}>\n                {(lastCheckedAt) =>\n                  new Date(lastCheckedAt()).toLocaleTimeString()\n                }\n              </Show>\n            </p>\n          </div>\n        </div>\n\n        <Show when={status().error}>\n          <div class=\"mt-4 rounded-md border border-red-500/30 bg-red-50 px-4 py-3 text-sm text-red-700\">\n            <strong>Error:</strong> {status().error}\n          </div>\n        </Show>\n\n        <Show when={status().latency}>\n          <div class=\"mt-4\">\n            <p class=\"mb-1 text-[0.625rem] uppercase text-slate-500\">Latency</p>\n            <Show\n              fallback={\n                <div class=\"h-2 w-full overflow-hidden rounded-full bg-slate-100\">\n                  <div\n                    class={cn(\n                      \"h-full rounded-full transition-all\",\n                      latency() < 100\n                        ? \"bg-emerald-500\"\n                        : latency() < 500\n                          ? \"bg-amber-500\"\n                          : \"bg-red-500\",\n                    )}\n                    style={{ width: `${latencyValue()}%` }}\n                  />\n                </div>\n              }\n              keyed\n              when={Progress()}\n            >\n              {(KobalteProgress) => (\n                <KobalteProgress.Root\n                  class=\"grid gap-1\"\n                  maxValue={100}\n                  value={latencyValue()}\n                >\n                  <KobalteProgress.Track class=\"h-2 w-full overflow-hidden rounded-full bg-slate-100\">\n                    <KobalteProgress.Fill\n                      class={cn(\n                        \"h-full rounded-full transition-all\",\n                        latency() < 100\n                          ? \"bg-emerald-500\"\n                          : latency() < 500\n                            ? \"bg-amber-500\"\n                            : \"bg-red-500\",\n                      )}\n                    />\n                  </KobalteProgress.Track>\n                </KobalteProgress.Root>\n              )}\n            </Show>\n            <p class=\"mt-1 text-xs text-slate-500\">{latency()}ms</p>\n          </div>\n        </Show>\n      </div>\n\n      <div class=\"rounded-lg border border-slate-200 bg-white p-6 shadow-sm\">\n        <div class=\"mb-4 flex items-center justify-between\">\n          <h2 class=\"text-xs font-semibold uppercase text-slate-500\">\n            Available Providers\n          </h2>\n          <span class=\"text-xs text-slate-500\">\n            {providers.length} providers\n          </span>\n        </div>\n        <div class=\"divide-y divide-slate-200\">\n          <For each={providers}>\n            {(provider) => (\n              <div class=\"flex items-center justify-between py-3 first:pt-0 last:pb-0\">\n                <div>\n                  <p class=\"text-sm font-semibold text-slate-950\">\n                    {provider.name}\n                  </p>\n                  <p class=\"text-xs text-slate-500\">{provider.description}</p>\n                </div>\n                <span\n                  class={cn(\n                    \"self-start rounded px-2 py-0.5 text-[0.625rem] font-bold uppercase\",\n                    provider.tier === \"pronto\"\n                      ? \"bg-emerald-50 text-emerald-700\"\n                      : provider.tier === \"lancio\"\n                        ? \"bg-sky-50 text-sky-700\"\n                        : \"bg-slate-100 text-slate-600\",\n                  )}\n                >\n                  {provider.tier}\n                </span>\n              </div>\n            )}\n          </For>\n        </div>\n      </div>\n\n      <Show when={isEditing()} fallback={configureButton()}>\n        <AdapterConfigForm\n          domain={props.domain}\n          onCancel={() => setIsEditing(false)}\n          onSave={async () => {\n            setIsEditing(false);\n          }}\n        />\n      </Show>\n    </div>\n  );\n}\n","/**\n * @module AdaptersPage\n * @package @geenius/adapters/solidjs-kobalte\n * @description Kobalte-backed adapters overview page for the SolidJS library\n * variant.\n */\n\nimport type {\n  AdapterDomain,\n  AdapterStatusType,\n  DomainAdapterConfig,\n} from \"@geenius/adapters\";\nimport {\n  ADAPTER_DOMAINS,\n  ADAPTER_STATUSES,\n  getDomainConfig,\n  isAdaptersConfigured,\n} from \"@geenius/adapters\";\nimport { createAdapters } from \"@geenius/adapters/solidjs\";\nimport type { JSX } from \"solid-js\";\nimport { createMemo, createResource, createSignal, For, Show } from \"solid-js\";\nimport {\n  AdapterConfigForm,\n  AdapterList,\n  AdapterStatusBadge,\n} from \"../components\";\nimport { cn, loadKobalteCore } from \"../lib/kobalte\";\n\ntype RegistryEntry = {\n  domain: AdapterDomain;\n  provider: string;\n  status: AdapterStatusType;\n};\n\nexport interface AdaptersPageProps {\n  onNavigateDetail?: (domain: AdapterDomain) => void;\n  onConfigure?: (\n    domain: AdapterDomain,\n    config: DomainAdapterConfig,\n  ) => Promise<void> | void;\n  class?: string;\n  configByDomain?: Partial<Record<AdapterDomain, DomainAdapterConfig>>;\n  registryEntries?: RegistryEntry[];\n}\n\nexport function AdaptersPage(props: AdaptersPageProps): JSX.Element {\n  const ctx = createAdapters();\n  const [core] = createResource(loadKobalteCore);\n  const Button = createMemo(() => core()?.Button?.Root);\n  const Dialog = createMemo(() => core()?.Dialog);\n  const [selectedDomain, setSelectedDomain] =\n    createSignal<AdapterDomain | null>(null);\n  const [filterStatus, setFilterStatus] = createSignal<\n    AdapterStatusType | undefined\n  >();\n  const registryEntries = () => props.registryEntries ?? [];\n  const connected = () =>\n    ADAPTER_DOMAINS.filter(\n      (domain) => ctx.statuses[domain]?.status === \"connected\",\n    ).length;\n  const errors = () =>\n    ADAPTER_DOMAINS.filter((domain) => ctx.statuses[domain]?.status === \"error\")\n      .length;\n  const initialConfigFor = (domain: AdapterDomain) =>\n    props.configByDomain?.[domain] ??\n    (isAdaptersConfigured() ? getDomainConfig(domain) : undefined) ??\n    undefined;\n\n  const filterButtonClass = (active: boolean) =>\n    cn(\n      \"inline-flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-xs font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sky-500/30\",\n      active\n        ? \"border-sky-500 bg-sky-50 text-sky-700\"\n        : \"border-slate-200 bg-white text-slate-500 hover:text-slate-950\",\n    );\n\n  const renderButton = (buttonProps: {\n    children: JSX.Element;\n    class: string;\n    onClick: () => void;\n    pressed: boolean;\n  }): JSX.Element => (\n    <Show\n      fallback={\n        <button\n          aria-pressed={buttonProps.pressed}\n          class={buttonProps.class}\n          onClick={buttonProps.onClick}\n          type=\"button\"\n        >\n          {buttonProps.children}\n        </button>\n      }\n      keyed\n      when={Button()}\n    >\n      {(KobalteButton) => (\n        <KobalteButton\n          aria-pressed={buttonProps.pressed}\n          class={buttonProps.class}\n          onClick={buttonProps.onClick}\n          type=\"button\"\n        >\n          {buttonProps.children}\n        </KobalteButton>\n      )}\n    </Show>\n  );\n\n  const configForm = (domain: AdapterDomain) => (\n    <AdapterConfigForm\n      domain={domain}\n      initialConfig={initialConfigFor(domain)}\n      onCancel={() => setSelectedDomain(null)}\n      onSave={async (config) => {\n        await props.onConfigure?.(domain, config);\n        setSelectedDomain(null);\n      }}\n    />\n  );\n\n  const fallbackDialog = (domain: AdapterDomain) => (\n    <div class=\"fixed inset-0 z-50 flex items-center justify-center bg-slate-950/50 px-4 backdrop-blur-sm\">\n      <button\n        aria-label=\"Close adapter configuration\"\n        class=\"absolute inset-0 cursor-default border-0 bg-transparent p-0\"\n        onClick={() => setSelectedDomain(null)}\n        type=\"button\"\n      />\n      <div\n        aria-modal=\"true\"\n        class=\"relative z-10 w-full max-w-lg\"\n        role=\"dialog\"\n      >\n        {configForm(domain)}\n      </div>\n    </div>\n  );\n\n  return (\n    <Show\n      fallback={\n        <div class={cn(\"mx-auto max-w-4xl space-y-6\", props.class)}>\n          <div\n            aria-label=\"Loading adapters\"\n            class=\"animate-pulse space-y-4\"\n            role=\"status\"\n          >\n            <div class=\"h-8 w-48 rounded bg-slate-100\" />\n            <div class=\"h-4 w-72 rounded bg-slate-100\" />\n            <div class=\"grid gap-3 sm:grid-cols-3\">\n              <For each={[1, 2, 3]}>\n                {() => (\n                  <div class=\"h-20 rounded-lg border border-slate-200 bg-white\" />\n                )}\n              </For>\n            </div>\n            <div class=\"grid gap-3 sm:grid-cols-2\">\n              <For each={[1, 2, 3, 4]}>\n                {() => (\n                  <div class=\"h-28 rounded-lg border border-slate-200 bg-white\" />\n                )}\n              </For>\n            </div>\n          </div>\n        </div>\n      }\n      when={!ctx.isLoading}\n    >\n      <div\n        class={cn(\"mx-auto max-w-4xl space-y-8 text-slate-950\", props.class)}\n        data-geenius-component=\"AdaptersPage\"\n        data-geenius-variant=\"solidjs-kobalte\"\n      >\n        <header class=\"space-y-1\">\n          <h1 class=\"text-2xl font-extrabold text-slate-950\">Adapters</h1>\n          <p class=\"text-sm text-slate-500\">\n            Manage your infrastructure adapters - database, auth, AI, storage,\n            payments, and admin.\n          </p>\n        </header>\n\n        <section class=\"grid gap-3 sm:grid-cols-3\">\n          <div class=\"rounded-lg border border-slate-200 bg-white p-4 shadow-sm\">\n            <p class=\"text-xs font-semibold uppercase text-slate-500\">Total</p>\n            <p class=\"mt-1 text-2xl font-extrabold text-slate-950\">\n              {ADAPTER_DOMAINS.length}\n            </p>\n            <p class=\"text-[0.625rem] text-slate-500\">adapter domains</p>\n          </div>\n          <div class=\"rounded-lg border border-emerald-500/20 bg-emerald-50 p-4 shadow-sm\">\n            <p class=\"text-xs font-semibold uppercase text-emerald-700\">\n              Connected\n            </p>\n            <p class=\"mt-1 text-2xl font-extrabold text-emerald-700\">\n              {connected()}\n            </p>\n            <p class=\"text-[0.625rem] text-emerald-700/70\">active adapters</p>\n          </div>\n          <Show when={errors() > 0}>\n            <div class=\"rounded-lg border border-red-500/20 bg-red-50 p-4 shadow-sm\">\n              <p class=\"text-xs font-semibold uppercase text-red-700\">Errors</p>\n              <p class=\"mt-1 text-2xl font-extrabold text-red-700\">\n                {errors()}\n              </p>\n              <p class=\"text-[0.625rem] text-red-700/70\">need attention</p>\n            </div>\n          </Show>\n        </section>\n\n        <Show when={registryEntries().length > 0}>\n          <section class=\"rounded-lg border border-slate-200 bg-white p-4 shadow-sm\">\n            <div class=\"flex flex-wrap items-center justify-between gap-3\">\n              <div>\n                <p class=\"text-xs font-semibold uppercase text-slate-500\">\n                  Adapter Registry\n                </p>\n                <p class=\"text-sm text-slate-500\">\n                  Live adapter registry entries.\n                </p>\n              </div>\n              <div class=\"flex gap-3 text-xs text-slate-500\">\n                <span>{registryEntries().length} entries</span>\n              </div>\n            </div>\n            <div class=\"mt-4 grid gap-2 sm:grid-cols-2\">\n              <For each={registryEntries()}>\n                {(entry) => (\n                  <div class=\"rounded-md border border-slate-200 bg-slate-50 px-4 py-3\">\n                    <div class=\"flex items-center justify-between gap-3\">\n                      <div>\n                        <p class=\"text-sm font-semibold text-slate-950\">\n                          {entry.domain}\n                        </p>\n                        <p class=\"text-xs text-slate-500\">{entry.provider}</p>\n                      </div>\n                      <AdapterStatusBadge status={entry.status} />\n                    </div>\n                  </div>\n                )}\n              </For>\n            </div>\n          </section>\n        </Show>\n\n        <section class=\"flex flex-wrap items-center gap-2\">\n          {renderButton({\n            class: filterButtonClass(!filterStatus()) ?? \"\",\n            onClick: () => setFilterStatus(undefined),\n            pressed: !filterStatus(),\n            children: \"All\",\n          })}\n          <For each={[...ADAPTER_STATUSES]}>\n            {(status) =>\n              renderButton({\n                class: filterButtonClass(filterStatus() === status) ?? \"\",\n                onClick: () => setFilterStatus(status),\n                pressed: filterStatus() === status,\n                children: (\n                  <>\n                    <AdapterStatusBadge status={status} showLabel={false} />\n                    {status}\n                  </>\n                ),\n              })\n            }\n          </For>\n        </section>\n\n        <AdapterList\n          filterStatus={filterStatus()}\n          onSelect={(domain) => {\n            if (props.onNavigateDetail) {\n              props.onNavigateDetail(domain);\n            } else {\n              setSelectedDomain(domain);\n            }\n          }}\n        />\n\n        <Show when={selectedDomain()}>\n          {(domain) => (\n            <Show fallback={fallbackDialog(domain())} keyed when={Dialog()}>\n              {(KobalteDialog) => (\n                <KobalteDialog.Root\n                  modal\n                  onOpenChange={(open) => {\n                    if (!open) {\n                      setSelectedDomain(null);\n                    }\n                  }}\n                  open\n                >\n                  <KobalteDialog.Portal>\n                    <KobalteDialog.Overlay class=\"fixed inset-0 z-50 bg-slate-950/50 backdrop-blur-sm\" />\n                    <div class=\"fixed inset-0 z-50 flex items-center justify-center px-4\">\n                      <KobalteDialog.Content class=\"w-full max-w-lg outline-none\">\n                        <KobalteDialog.Title class=\"sr-only\">\n                          Configure {domain()} Adapter\n                        </KobalteDialog.Title>\n                        {configForm(domain())}\n                      </KobalteDialog.Content>\n                    </div>\n                  </KobalteDialog.Portal>\n                </KobalteDialog.Root>\n              )}\n            </Show>\n          )}\n        </Show>\n      </div>\n    </Show>\n  );\n}\n"]}