{"version":3,"sources":["../../../src/locale/en-US.ts","../../../src/locale/resolve-locale.ts","../../../src/provider/context.ts","../../../src/components/base/utils.ts","../../../src/components/base/theme.ts","../../../src/components/base/BaseAvatar.tsx","../../../src/components/base/BaseButton.tsx","../../../src/components/base/BasePortal.tsx","../../../src/components/base/internal/overlayPortal.tsx","../../../src/components/base/BaseTooltip.tsx","../../../src/components/primitives/internal/overlaySurface.ts","../../../src/components/layout/AppShellSidebar.tsx","../../../src/components/layout/UserAccountMenu.tsx","../../../src/components/layout/index.tsx"],"names":["BaseAvatar","jsxs","jsx","forwardRef","BaseButton","useState","useEffect","Fragment","BaseTooltip","AppShellSidebar","DropdownMenu","cn"],"mappings":"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","file":"index.mjs","sourcesContent":["import type { MonkeysLocale } from \"./types\";\n\nexport const enUS = {\n  locale: \"en-US\",\n  messages: {\n    pagination: {\n      navigation: \"Pagination\",\n      first: \"First\",\n      previous: \"Previous\",\n      next: \"Next\",\n      last: \"Last\",\n      page: ({ page, pageCount }) => `Page ${page} of ${pageCount}`,\n      currentPage: ({ page, pageCount }) =>\n        `Page ${page} of ${pageCount}, current page`,\n      emptyResults: \"0 results\",\n      range: ({ start, end, total }) => `${start}-${end} of ${total}`,\n      selected: ({ count }) => `${count} selected`,\n      pageSize: \"Items per page\",\n      perLoad: \"Items per load\",\n      jumpToPage: \"Jump to page\",\n      pages: \"pages\",\n      clickToJump: \"Click to jump to a page\",\n    },\n    dialog: {\n      close: \"Close dialog\",\n    },\n    dropdownMenu: {\n      actions: \"Actions\",\n    },\n    loading: {\n      spinner: \"Loading\",\n    },\n    layout: {\n      resizePanels: \"Resize panels\",\n    },\n    steps: {\n      label: \"Progress\",\n      current: \"Current\",\n      completed: \"Completed\",\n      error: \"Error\",\n      disabled: \"Disabled\",\n    },\n    numberInput: {\n      increment: \"Increase value\",\n      decrement: \"Decrease value\",\n    },\n    passwordInput: {\n      showPassword: \"Show password\",\n      hidePassword: \"Hide password\",\n    },\n    multiSelect: {\n      placeholder: \"Select options\",\n      empty: \"No options\",\n      removeOption: ({ value }) => `Remove ${value}`,\n    },\n    table: {\n      dragColumn: ({ columnId }) => `Drag column ${columnId}`,\n      resizeColumn: ({ columnId }) => `Resize column ${columnId}`,\n      sortColumn: ({ columnId }) =>\n        columnId ? `Sort column ${columnId}` : \"Sort column\",\n      loadingRow: \"Loading table row\",\n    },\n    toolbar: {\n      theme: {\n        label: \"Appearance\",\n        toggle: \"Toggle theme\",\n        auto: \"Auto\",\n        light: \"Light\",\n        dark: \"Dark\",\n      },\n      language: {\n        label: \"Language\",\n        switch: \"Switch language\",\n      },\n    },\n    toast: {\n      errorTitle: \"Error\",\n      warningTitle: \"Warning\",\n      defaultErrorDescription: \"Something went wrong.\",\n      defaultWarningDescription: \"Please check and try again.\",\n    },\n    dataExplorer: {\n      viewTree: {\n        actions: \"More actions\",\n        expand: \"Expand\",\n        collapse: \"Collapse\",\n        loading: \"Loading...\",\n        empty: \"No views\",\n        error: \"Unable to load views\",\n      },\n    },\n    workbench: {\n      collection: {\n        label: \"Collection\",\n        loading: \"Loading items\",\n        empty: \"No items\",\n        loadError: \"Unable to load items\",\n        refreshError: \"Unable to refresh items\",\n        retry: \"Retry\",\n        loadingMore: \"Loading more items\",\n        permission: \"You do not have permission to view this content\",\n        offline: \"You appear to be offline\",\n        requestAccess: \"Request access\",\n      },\n      interactiveTable: {\n        columnActions: \"Column actions\",\n        freezeColumn: \"Freeze to left\",\n        freezeEndColumn: \"Freeze to right\",\n        unfreezeColumn: \"Unfreeze from left\",\n        unfreezeEndColumn: \"Unfreeze from right\",\n        unfreezeAllColumns: \"Unfreeze all columns\",\n        resetColumnWidth: \"Reset column width\",\n        frozenColumnTitle: \"Frozen column\",\n      },\n    },\n    agentWorkbench: {\n      label: \"Session activity\",\n      reasoning: \"Reasoning\",\n      plan: \"Plan\",\n      taskNoDetail: \"No additional details\",\n      modes: { chat: \"Chat\", work: \"Work\" },\n      composer: {\n        send: \"Send message\",\n        stop: \"Stop generating\",\n        queue: \"Queue message\",\n        attach: \"Add photos or files\",\n        voice: \"Start voice input\",\n        webSearch: \"Web search\",\n        chatMode: \"Chat mode\",\n        model: \"Model\",\n        reasoning: \"Reasoning effort\",\n        permissions: \"Permissions\",\n        removeAttachment: \"Remove attachment\",\n        editQueued: \"Edit queued message\",\n        deleteQueued: \"Delete queued message\",\n        moveUp: \"Move message up\",\n        moveDown: \"Move message down\",\n        queued: \"Queued messages\",\n        uploading: \"Uploading\",\n        uploadFailed: \"Upload failed\",\n        retryAttachment: \"Retry attachment upload\",\n        noModels: \"No models available\",\n        message: \"Message\",\n        attachmentOnly: \"Attachment\",\n        reasoningOptions: {\n          low: \"Low\",\n          medium: \"Medium\",\n          high: \"High\",\n          xhigh: \"Extra high\",\n        },\n        permissionOptions: {\n          \"approval-required\": \"Approval required\",\n          \"auto-approve\": \"Auto approve\",\n          \"full-access\": \"Full access\",\n        },\n      },\n      quickStart: {\n        label: \"Quick start\",\n        back: \"Back\",\n        addFile: \"Add file\",\n      },\n      tool: {\n        input: \"Input\",\n        output: \"Output\",\n        status: {\n          pending: \"Pending\",\n          running: \"Running\",\n          completed: \"Completed\",\n          failed: \"Error\",\n          denied: \"Denied\",\n        },\n      },\n      approval: {\n        approve: \"Approve\",\n        reject: \"Reject\",\n        approved: \"Approved\",\n        rejected: \"Rejected\",\n      },\n      artifact: {\n        pending: \"Preparing\",\n        ready: \"Ready\",\n        failed: \"Failed\",\n        open: ({ name }) => `Open ${name}`,\n      },\n      run: {\n        stopping: \"Stopping...\",\n        stoppedAfter: ({ duration }) => `You stopped after ${duration}`,\n      },\n      process: {\n        running: \"Working\",\n        queued: \"Queued\",\n        waitingApproval: \"Waiting for approval\",\n        failed: \"Failed\",\n        stopped: \"Stopped\",\n        processed: \"Processed\",\n        processedFor: ({ duration }) => `Worked for ${duration}`,\n        completedCount: ({ completed, total }) =>\n          `${completed}/${total} completed`,\n      },\n      artifactWorkspace: {\n        outputs: \"Outputs\",\n        sources: \"Sources\",\n        viewAll: \"View all\",\n        toggleSummary: \"Toggle files\",\n        tabs: \"Open files\",\n        closeTab: ({ name }) => `Close ${name}`,\n        closeWorkspace: \"Close workspace\",\n        download: ({ name }) => `Download ${name}`,\n        openExternal: ({ name }) => `Open ${name} in a new window`,\n        loading: \"Loading preview...\",\n        failed: \"Preview unavailable\",\n        retry: \"Try again\",\n      },\n      usage: {\n        label: \"Context usage\",\n        context: ({ used, total }) => `${used} / ${total} tokens`,\n      },\n      navigation: {\n        search: \"Search agents and sessions\",\n        searchSessions: \"Search sessions\",\n        searchShortcut: \"Focus search\",\n        clearSearch: \"Clear search\",\n        tabsLabel: \"Agent workbench navigation\",\n        agents: \"Agents\",\n        sessions: \"Sessions\",\n        newAgent: \"New Agent\",\n        newSession: \"New Session\",\n        capabilities: \"Capabilities & Extensions\",\n        settings: \"Agent Settings\",\n        allAgents: \"All Agents\",\n        recentSessions: \"Recent Sessions\",\n        chat: \"Chat\",\n        work: \"Work\",\n        chats: \"Chats\",\n        builtIn: \"Built-in\",\n        noDescription: \"No description\",\n        loading: \"Loading...\",\n        emptyAgents: \"No agents yet\",\n        emptySessions: \"No sessions yet\",\n        noResults: \"No matching results\",\n        retry: \"Retry\",\n        pin: \"Pin\",\n        unpin: \"Unpin\",\n        rename: \"Rename\",\n        delete: \"Delete\",\n        actions: \"Actions\",\n        save: \"Save\",\n        cancel: \"Cancel\",\n        running: \"Running\",\n        completed: \"Completed\",\n        failed: \"Failed\",\n        contextUsage: ({ percent }) => `${percent}% context used`,\n      },\n      details: {\n        title: \"Task details\",\n        description: \"Summary and workspace activity\",\n        duration: \"Duration\",\n        updated: \"Updated\",\n        model: \"Model\",\n        mode: \"Mode\",\n        permissions: \"Permissions\",\n        tokenUsage: \"Token usage\",\n        summary: \"Summary\",\n        summaryEmpty: \"No summary is available yet.\",\n        summaryFailed: \"The summary could not be generated.\",\n        highlights: \"Highlights\",\n        pendingItems: \"Pending items\",\n        tabs: {\n          label: \"Task detail views\",\n          summary: \"Summary\",\n          workspace: \"Workspace\",\n        },\n        status: {\n          queued: \"Queued\",\n          running: \"Running\",\n          waiting_approval: \"Waiting for approval\",\n          stopping: \"Stopping\",\n          stopped: \"Stopped\",\n          completed: \"Completed\",\n          failed: \"Failed\",\n        },\n        state: {\n          loading: {\n            title: \"Loading task details\",\n            description: \"Restoring the latest session activity.\",\n          },\n          empty: {\n            title: \"No task selected\",\n            description: \"Select a task to inspect its details.\",\n          },\n          error: {\n            title: \"Unable to load task details\",\n            description: \"Try again after the session is available.\",\n          },\n        },\n        actions: {\n          close: \"Close task details\",\n          copySummary: \"Copy summary\",\n          retry: \"Retry\",\n          retrySummary: \"Retry summary\",\n          resume: \"Resume\",\n          continueInNewTask: \"Continue in new task\",\n          editAndRerun: \"Edit and rerun\",\n          export: \"Export\",\n        },\n        workspace: {\n          diffs: \"Code changes\",\n          files: \"Files\",\n          terminals: \"Terminals\",\n          tests: \"Tests\",\n          artifacts: \"Artifacts\",\n          exitCode: ({ code }) => `Exit code ${code}`,\n          diffStatus: {\n            added: \"Added\",\n            modified: \"Modified\",\n            deleted: \"Deleted\",\n            renamed: \"Renamed\",\n          },\n          fileOperation: { upsert: \"Updated\", delete: \"Deleted\" },\n        },\n      },\n    },\n  },\n} satisfies MonkeysLocale;\n","import { enUS } from './en-US';\nimport type {\n  MonkeysBuiltInLocaleId,\n  MonkeysLocale,\n  MonkeysLocaleInput,\n  MonkeysLocaleMessages,\n  MonkeysLocaleMessagesOverride,\n  MonkeysResolvedLocale,\n} from './types';\nimport { zhCN } from './zh-CN';\n\nconst BUILT_IN_LOCALES: Record<MonkeysBuiltInLocaleId, MonkeysLocale> = {\n  'en-US': enUS,\n  'zh-CN': zhCN,\n};\n\nfunction normalizeLocaleId(locale: unknown): string {\n  if (typeof locale !== 'string' || !locale.trim()) {\n    throw new TypeError('Monkeys locale must be a non-empty BCP 47 string.');\n  }\n\n  try {\n    return Intl.getCanonicalLocales(locale)[0];\n  } catch {\n    throw new RangeError(\n      `Monkeys locale \"${locale}\" is not a valid BCP 47 identifier.`,\n    );\n  }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n  return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction validateMessageOverride(\n  value: unknown,\n  schema: unknown,\n  path: string,\n) {\n  if (!isRecord(value) || !isRecord(schema)) {\n    throw new TypeError(`${path} must be an object.`);\n  }\n\n  for (const [key, candidate] of Object.entries(value)) {\n    if (candidate === undefined) continue;\n    if (!(key in schema)) {\n      throw new TypeError(`${path}.${key} is not a supported Monkeys message.`);\n    }\n\n    const expected = schema[key];\n    const candidatePath = `${path}.${key}`;\n    if (typeof expected === 'function') {\n      if (typeof candidate !== 'function') {\n        throw new TypeError(`${candidatePath} must be a function.`);\n      }\n    } else if (typeof expected === 'string') {\n      if (typeof candidate !== 'string') {\n        throw new TypeError(`${candidatePath} must be a string.`);\n      }\n    } else {\n      validateMessageOverride(candidate, expected, candidatePath);\n    }\n  }\n}\n\nfunction assertMessagesOverride(\n  value: unknown,\n  path: string,\n): asserts value is MonkeysLocaleMessagesOverride {\n  validateMessageOverride(value, enUS.messages, path);\n}\n\nfunction isBuiltInLocale(locale: string): locale is MonkeysBuiltInLocaleId {\n  return locale === 'en-US' || locale === 'zh-CN';\n}\n\nfunction normalizeLocaleInput(input: MonkeysLocaleInput | undefined): {\n  locale: string | undefined;\n  messages: MonkeysLocaleMessagesOverride | undefined;\n  hasExplicitLocale: boolean;\n} {\n  if (input === undefined) {\n    return {\n      locale: undefined,\n      messages: undefined,\n      hasExplicitLocale: false,\n    };\n  }\n\n  if (typeof input === 'string') {\n    const locale = normalizeLocaleId(input);\n    if (!isBuiltInLocale(locale)) {\n      throw new RangeError(\n        `Unsupported built-in Monkeys locale \"${locale}\". Provide a locale pack object for custom locales.`,\n      );\n    }\n    return { locale, messages: undefined, hasExplicitLocale: true };\n  }\n\n  if (!input || typeof input !== 'object' || Array.isArray(input)) {\n    throw new TypeError('Monkeys locale must be a locale id or locale pack object.');\n  }\n\n  const locale = normalizeLocaleId(input.locale);\n  assertMessagesOverride(input.messages, 'Monkeys locale messages');\n\n  return {\n    locale,\n    messages: input.messages,\n    hasExplicitLocale: true,\n  };\n}\n\nexport function mergeMonkeysLocaleMessages(\n  base: MonkeysLocaleMessages,\n  override?: MonkeysLocaleMessagesOverride,\n): MonkeysLocaleMessages {\n  if (!override) return base;\n\n  return {\n    pagination: { ...base.pagination, ...override.pagination },\n    dialog: { ...base.dialog, ...override.dialog },\n    dropdownMenu: { ...base.dropdownMenu, ...override.dropdownMenu },\n    loading: { ...base.loading, ...override.loading },\n    layout: { ...base.layout, ...override.layout },\n    steps: { ...base.steps, ...override.steps },\n    numberInput: { ...base.numberInput, ...override.numberInput },\n    passwordInput: { ...base.passwordInput, ...override.passwordInput },\n    multiSelect: { ...base.multiSelect, ...override.multiSelect },\n    table: { ...base.table, ...override.table },\n    toolbar: {\n      theme: { ...base.toolbar.theme, ...override.toolbar?.theme },\n      language: { ...base.toolbar.language, ...override.toolbar?.language },\n    },\n    toast: { ...base.toast, ...override.toast },\n    dataExplorer: {\n      viewTree: {\n        ...base.dataExplorer.viewTree,\n        ...override.dataExplorer?.viewTree,\n      },\n    },\n    workbench: {\n      collection: {\n        ...base.workbench.collection,\n        ...override.workbench?.collection,\n      },\n      interactiveTable: {\n        ...base.workbench.interactiveTable,\n        ...override.workbench?.interactiveTable,\n      },\n    },\n    agentWorkbench: {\n      ...base.agentWorkbench,\n      ...override.agentWorkbench,\n      modes: {\n        ...base.agentWorkbench.modes,\n        ...override.agentWorkbench?.modes,\n      },\n      composer: {\n        ...base.agentWorkbench.composer,\n        ...override.agentWorkbench?.composer,\n      },\n      quickStart: {\n        ...base.agentWorkbench.quickStart,\n        ...override.agentWorkbench?.quickStart,\n      },\n      tool: {\n        ...base.agentWorkbench.tool,\n        ...override.agentWorkbench?.tool,\n        status: {\n          ...base.agentWorkbench.tool.status,\n          ...override.agentWorkbench?.tool?.status,\n        },\n      },\n      approval: {\n        ...base.agentWorkbench.approval,\n        ...override.agentWorkbench?.approval,\n      },\n      artifact: {\n        ...base.agentWorkbench.artifact,\n        ...override.agentWorkbench?.artifact,\n      },\n      run: {\n        ...base.agentWorkbench.run,\n        ...override.agentWorkbench?.run,\n      },\n      process: {\n        ...base.agentWorkbench.process,\n        ...override.agentWorkbench?.process,\n      },\n      artifactWorkspace: {\n        ...base.agentWorkbench.artifactWorkspace,\n        ...override.agentWorkbench?.artifactWorkspace,\n      },\n      usage: {\n        ...base.agentWorkbench.usage,\n        ...override.agentWorkbench?.usage,\n      },\n      navigation: {\n        ...base.agentWorkbench.navigation,\n        ...override.agentWorkbench?.navigation,\n      },\n      details: {\n        ...base.agentWorkbench.details,\n        ...override.agentWorkbench?.details,\n        tabs: {\n          ...base.agentWorkbench.details.tabs,\n          ...override.agentWorkbench?.details?.tabs,\n        },\n        status: {\n          ...base.agentWorkbench.details.status,\n          ...override.agentWorkbench?.details?.status,\n        },\n        state: {\n          loading: {\n            ...base.agentWorkbench.details.state.loading,\n            ...override.agentWorkbench?.details?.state?.loading,\n          },\n          empty: {\n            ...base.agentWorkbench.details.state.empty,\n            ...override.agentWorkbench?.details?.state?.empty,\n          },\n          error: {\n            ...base.agentWorkbench.details.state.error,\n            ...override.agentWorkbench?.details?.state?.error,\n          },\n        },\n        actions: {\n          ...base.agentWorkbench.details.actions,\n          ...override.agentWorkbench?.details?.actions,\n        },\n        workspace: {\n          ...base.agentWorkbench.details.workspace,\n          ...override.agentWorkbench?.details?.workspace,\n          diffStatus: {\n            ...base.agentWorkbench.details.workspace.diffStatus,\n            ...override.agentWorkbench?.details?.workspace?.diffStatus,\n          },\n          fileOperation: {\n            ...base.agentWorkbench.details.workspace.fileOperation,\n            ...override.agentWorkbench?.details?.workspace?.fileOperation,\n          },\n        },\n      },\n    },\n  };\n}\n\nexport const defaultMonkeysLocale: MonkeysResolvedLocale = {\n  locale: enUS.locale,\n  messages: mergeMonkeysLocaleMessages(\n    enUS.messages as MonkeysLocaleMessages,\n  ),\n};\n\nexport function resolveMonkeysLocale(\n  input?: MonkeysLocaleInput,\n  override?: MonkeysLocaleMessagesOverride,\n  parent?: MonkeysResolvedLocale,\n): MonkeysResolvedLocale {\n  if (override !== undefined) {\n    assertMessagesOverride(override, 'MonkeysProvider messages');\n  }\n  const normalized = normalizeLocaleInput(input);\n  const locale = normalized.locale ?? parent?.locale ?? enUS.locale;\n  const builtInMessages = isBuiltInLocale(locale)\n    ? BUILT_IN_LOCALES[locale].messages\n    : undefined;\n  let messages = mergeMonkeysLocaleMessages(\n    enUS.messages as MonkeysLocaleMessages,\n    builtInMessages,\n  );\n\n  if (parent && (!normalized.hasExplicitLocale || parent.locale === locale)) {\n    messages = mergeMonkeysLocaleMessages(messages, parent.messages);\n  }\n\n  messages = mergeMonkeysLocaleMessages(messages, normalized.messages);\n  messages = mergeMonkeysLocaleMessages(messages, override);\n\n  return { locale, messages };\n}\n","import {\n  createContext,\n  useContext,\n  useMemo,\n  type Context,\n} from 'react';\n\nimport type { AssetIconResolver, AssetImageResolver } from '../components/base/BaseAssetIcon';\nimport type { BaseAppearance } from '../components/base/types';\nimport type { DataExplorerAppearance } from '../components/data-explorer/types';\nimport {\n  defaultMonkeysLocale,\n  type MonkeysLocaleMessages,\n  type MonkeysResolvedLocale,\n} from '../locale';\nimport type { CompiledThemeTokens } from '../theme-system';\n\nexport type MonkeysDirection = 'ltr' | 'rtl';\n\nexport interface MonkeysEnvironment {\n  getDocument?: () => Document | null;\n  getWindow?: () => Window | null;\n}\n\nexport type MonkeysPortalContainer =\n  | Element\n  | null\n  | (() => Element | null);\n\nexport interface MonkeysPortalOptions {\n  container?: MonkeysPortalContainer;\n  disabled?: boolean;\n}\n\nexport type MonkeysLoadingStateVariant = 'spinner' | 'skeleton';\nexport type MonkeysEmptyStateVariant = 'default' | 'compact';\nexport type MonkeysStatusStateDensity = 'compact' | 'default' | 'comfortable';\n\nexport type MonkeysListFooterPaginationMode = 'auto' | 'pages' | 'compact';\nexport type MonkeysListFooterAlignment = 'start' | 'end' | 'space-between';\n\nexport interface MonkeysListFooterConfig {\n  showTotal?: boolean;\n  showPageSize?: boolean;\n  pageSizeOptions?: number[];\n  paginationMode?: MonkeysListFooterPaginationMode;\n  alignment?: MonkeysListFooterAlignment;\n  density?: MonkeysStatusStateDensity;\n}\n\nexport interface MonkeysStatusStatesConfig {\n  loading?: { variant?: MonkeysLoadingStateVariant };\n  empty?: { variant?: MonkeysEmptyStateVariant };\n  error?: { showRetry?: boolean };\n  permission?: { showRequestAccess?: boolean };\n  density?: MonkeysStatusStateDensity;\n}\n\nexport interface MonkeysComponentAttributes {\n  dir?: MonkeysDirection;\n  'data-monkeys-direction'?: MonkeysDirection;\n  'data-monkeys-locale'?: string;\n  'data-monkeys-theme'?: string;\n  'data-monkeys-theme-mode'?: string;\n}\n\ninterface MonkeysLocaleContextValue extends MonkeysResolvedLocale {\n  provided: boolean;\n}\n\ninterface MonkeysThemeContextValue {\n  provided: boolean;\n  resolvedTheme?: CompiledThemeTokens;\n  themeId?: string;\n  baseAppearance?: BaseAppearance;\n  dataExplorerAppearance?: DataExplorerAppearance;\n  statusStates?: MonkeysStatusStatesConfig;\n  listFooter?: MonkeysListFooterConfig;\n}\n\ninterface MonkeysDirectionContextValue {\n  provided: boolean;\n  direction?: MonkeysDirection;\n}\n\ninterface MonkeysEnvironmentContextValue {\n  provided: boolean;\n  environment: MonkeysEnvironment;\n  portal: MonkeysPortalOptions;\n  iconResolver?: AssetIconResolver;\n  imageResolver?: AssetImageResolver;\n}\n\nconst EMPTY_ENVIRONMENT = Object.freeze({}) satisfies MonkeysEnvironment;\nconst EMPTY_PORTAL = Object.freeze({}) satisfies MonkeysPortalOptions;\n\ninterface MonkeysProviderContexts {\n  locale: Context<MonkeysLocaleContextValue>;\n  theme: Context<MonkeysThemeContextValue>;\n  direction: Context<MonkeysDirectionContextValue>;\n  environment: Context<MonkeysEnvironmentContextValue>;\n}\n\n// Every bundled public entry contains this module. Keep only the Context\n// identities in a realm-wide registry so root, provider, and component\n// subpaths interoperate in both CJS and ESM builds. Provider values remain in\n// React trees, so SSR requests are isolated. Bump the contract key only when\n// these Context value shapes become intentionally incompatible.\nconst MONKEYS_PROVIDER_CONTEXTS_KEY = Symbol.for(\n  '@inf-monkeys-tech/monkeys-design/provider-context@1',\n);\n\ntype MonkeysProviderContextHost = typeof globalThis & {\n  [MONKEYS_PROVIDER_CONTEXTS_KEY]?: MonkeysProviderContexts;\n};\n\nfunction createMonkeysProviderContexts(): MonkeysProviderContexts {\n  return Object.freeze({\n    locale: createContext<MonkeysLocaleContextValue>({\n      ...defaultMonkeysLocale,\n      provided: false,\n    }),\n    theme: createContext<MonkeysThemeContextValue>({\n      provided: false,\n    }),\n    direction: createContext<MonkeysDirectionContextValue>({\n      provided: false,\n    }),\n    environment: createContext<MonkeysEnvironmentContextValue>({\n      provided: false,\n      environment: EMPTY_ENVIRONMENT,\n      portal: EMPTY_PORTAL,\n    }),\n  });\n}\n\nfunction getMonkeysProviderContexts(): MonkeysProviderContexts {\n  const host = globalThis as MonkeysProviderContextHost;\n  const existing = host[MONKEYS_PROVIDER_CONTEXTS_KEY];\n  if (existing) return existing;\n\n  const contexts = createMonkeysProviderContexts();\n  Object.defineProperty(host, MONKEYS_PROVIDER_CONTEXTS_KEY, {\n    value: contexts,\n    enumerable: false,\n    configurable: false,\n    writable: false,\n  });\n  return contexts;\n}\n\nconst providerContexts = getMonkeysProviderContexts();\n\nexport const MonkeysLocaleContext = providerContexts.locale;\n\nexport const MonkeysThemeContext = providerContexts.theme;\n\nexport const MonkeysDirectionContext = providerContexts.direction;\n\nexport const MonkeysEnvironmentContext = providerContexts.environment;\n\nfunction mergeAppearance<T extends { slots?: object; styles?: object }>(\n  inherited: T | undefined,\n  explicit: T | undefined,\n): T | undefined {\n  if (explicit === undefined) return inherited;\n  if (inherited === undefined) return explicit;\n\n  return {\n    ...inherited,\n    ...explicit,\n    slots:\n      inherited.slots || explicit.slots\n        ? { ...inherited.slots, ...explicit.slots }\n        : undefined,\n    styles:\n      inherited.styles || explicit.styles\n        ? { ...inherited.styles, ...explicit.styles }\n        : undefined,\n  };\n}\n\nexport function useMonkeysLocale() {\n  try {\n    const context = useContext(MonkeysLocaleContext);\n    return context ?? { ...defaultMonkeysLocale, provided: false };\n  } catch {\n    return { ...defaultMonkeysLocale, provided: false };\n  }\n}\n\nexport function useMonkeysLocaleMessages(): MonkeysLocaleMessages {\n  return useContext(MonkeysLocaleContext).messages;\n}\n\nexport function useMonkeysResolvedTheme() {\n  return useContext(MonkeysThemeContext).resolvedTheme;\n}\n\nexport function useMonkeysBaseAppearance(\n  explicit?: BaseAppearance,\n): BaseAppearance | undefined {\n  const inherited = useContext(MonkeysThemeContext).baseAppearance;\n  return useMemo(\n    () => mergeAppearance(inherited, explicit),\n    [explicit, inherited],\n  );\n}\n\nexport function useMonkeysDataExplorerAppearance(\n  explicit?: DataExplorerAppearance,\n): DataExplorerAppearance | undefined {\n  const inherited = useContext(MonkeysThemeContext).dataExplorerAppearance;\n  return useMemo(\n    () => mergeAppearance(inherited, explicit),\n    [explicit, inherited],\n  );\n}\n\nexport function useMonkeysStatusStates(): MonkeysStatusStatesConfig {\n  return useContext(MonkeysThemeContext).statusStates ?? {};\n}\n\nexport function useMonkeysListFooter(): MonkeysListFooterConfig {\n  return useContext(MonkeysThemeContext).listFooter ?? {};\n}\n\nexport function useMonkeysDirection() {\n  return useContext(MonkeysDirectionContext).direction;\n}\n\nexport function useMonkeysEnvironment() {\n  return useContext(MonkeysEnvironmentContext).environment;\n}\n\nexport function useMonkeysPortalOptions() {\n  return useContext(MonkeysEnvironmentContext).portal;\n}\n\nexport function useMonkeysComponentAttributes(): MonkeysComponentAttributes {\n  const locale = useContext(MonkeysLocaleContext);\n  const theme = useContext(MonkeysThemeContext);\n  const direction = useContext(MonkeysDirectionContext);\n  const providerActive = locale.provided || theme.provided || direction.provided;\n\n  return useMemo(\n    () =>\n      providerActive\n        ? {\n            dir: direction.direction,\n            'data-monkeys-direction': direction.direction,\n            'data-monkeys-locale': locale.locale,\n            'data-monkeys-theme': theme.themeId,\n            'data-monkeys-theme-mode': theme.resolvedTheme?.colorMode,\n          }\n        : {},\n    [\n      direction.direction,\n      locale.locale,\n      providerActive,\n      theme.resolvedTheme?.colorMode,\n      theme.themeId,\n    ],\n  );\n}\n\nexport function useMonkeysAssetIconResolver(): AssetIconResolver | undefined {\n  return useContext(MonkeysEnvironmentContext).iconResolver;\n}\nexport function useMonkeysAssetImageResolver(): AssetImageResolver | undefined {\n  return useContext(MonkeysEnvironmentContext).imageResolver;\n}\n","import type { ReactNode } from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...parts: Array<string | false | null | undefined>) {\n  return twMerge(parts.filter(Boolean).join(' '));\n}\n\nexport function hasRenderableNode(node: ReactNode) {\n  return node !== undefined && node !== null && typeof node !== 'boolean';\n}\n\nexport function hasNonEmptyRenderableNode(node: ReactNode) {\n  if (typeof node === 'string') return node.trim().length > 0;\n  return hasRenderableNode(node);\n}\n","import type {\n  BaseAppearance,\n  BaseBackground,\n  BaseBorder,\n  BaseControlTone,\n  BaseDensity,\n  BaseHeadingSize,\n  BaseLayoutAlign,\n  BaseLayoutJustify,\n  BaseLayoutLength,\n  BaseListMarker,\n  BaseListSpacing,\n  BaseRadius,\n  BaseResolvedTheme,\n  BaseThemePresetId,\n  BaseThemeSlots,\n  BaseThemeStyles,\n  BaseTypographySize,\n  BaseTypographyTone,\n} from './types';\nimport { cn } from './utils';\n\ntype ResolvedSlots = Required<BaseThemeSlots>;\n\nconst emptyStyles: BaseThemeStyles = {};\n\nconst motionBase =\n  'motion-safe:transition motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionInteractive =\n  'motion-safe:transition-all motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionTransform =\n  'motion-safe:transition-transform motion-safe:duration-300 motion-safe:ease-out';\nconst tableScrollbarChrome = cn(\n  '[scrollbar-width:thin]',\n  '[scrollbar-color:hsl(var(--muted-foreground)/0.45)_transparent]',\n  '[&::-webkit-scrollbar]:h-2 [&::-webkit-scrollbar]:w-2',\n  '[&::-webkit-scrollbar-button]:hidden [&::-webkit-scrollbar-button]:h-0 [&::-webkit-scrollbar-button]:w-0 [&::-webkit-scrollbar-button]:bg-transparent',\n  '[&::-webkit-scrollbar-button:single-button]:hidden [&::-webkit-scrollbar-button:single-button]:h-0 [&::-webkit-scrollbar-button:single-button]:w-0',\n  '[&::-webkit-scrollbar-button:double-button]:hidden [&::-webkit-scrollbar-button:double-button]:h-0 [&::-webkit-scrollbar-button:double-button]:w-0',\n  '[&::-webkit-scrollbar-corner]:bg-transparent',\n  '[&::-webkit-scrollbar-track]:bg-transparent',\n  '[&:has(thead.sticky)::-webkit-scrollbar-track]:mt-[var(--base-table-header-height)]',\n  '[&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-muted-foreground/40',\n  'hover:[&::-webkit-scrollbar-thumb]:bg-muted-foreground/55',\n);\nconst tableStickyHeaderCells = cn(\n  '[&.sticky_th]:sticky [&.sticky_th]:top-0 [&.sticky_th]:z-[2]',\n  '[&.sticky_th]:bg-[var(--base-table-sticky-header-bg)]',\n  '[&.sticky_th]:shadow-[inset_0_-1px_0_var(--base-table-header-separator)]',\n);\n\nconst baseSlots: ResolvedSlots = {\n  buttonBase:\n    cn(\n      'group/button inline-flex min-w-0 items-center justify-center gap-2 rounded-md border px-3 text-sm font-medium focus-visible:outline-none',\n      'cursor-pointer disabled:!cursor-not-allowed',\n      motionInteractive,\n    ),\n  buttonDefault:\n    'border-border bg-background text-foreground hover:bg-accent/60',\n  buttonPrimary:\n    'border-primary/20 bg-primary/10 text-primary hover:bg-primary/15',\n  buttonSuccess:\n    'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-[hsl(var(--success,142_72%_29%))] hover:bg-[hsl(var(--success,142_72%_29%)_/_0.15)]',\n  buttonWarning:\n    'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))] hover:bg-[hsl(var(--warning,45_93%_47%)_/_0.15)]',\n  buttonDanger:\n    'border-destructive/20 bg-destructive/10 text-destructive-text hover:bg-destructive/15',\n  buttonMuted:\n    'border-border/60 bg-muted/45 text-muted-foreground hover:bg-muted/70 hover:text-foreground',\n  buttonActive: 'border-primary/35 bg-primary/10 text-primary',\n  buttonDisabled: '!cursor-not-allowed opacity-60',\n  buttonIconOnly: 'w-9 px-0',\n  buttonIcon:\n    'inline-flex h-4 w-4 shrink-0 items-center justify-center text-[inherit] [&_*]:!text-[inherit] [&_svg]:!stroke-current [&_svg_*]:!stroke-current',\n  buttonLabel: 'min-w-0 truncate',\n  badgeBase:\n    cn(\n      'inline-flex max-w-full items-center gap-1.5 rounded-full border px-2 py-0.5 text-xs font-medium',\n      motionBase,\n    ),\n  badgeDefault: 'border-border/60 bg-background text-foreground',\n  badgePrimary: 'border-primary/30 bg-primary/10 text-primary',\n  badgeSuccess: 'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-[hsl(var(--success,142_72%_29%))]',\n  badgeWarning: 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))]',\n  badgeDanger: 'border-destructive/30 bg-destructive/10 text-destructive-text',\n  badgeMuted: 'border-border/60 bg-muted text-muted-foreground',\n  badgeIcon: 'inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center',\n  badgeLabel: 'min-w-0 truncate',\n  textRoot: 'min-w-0 break-words leading-6',\n  textSizeXs: 'text-xs',\n  textSizeSm: 'text-sm',\n  textSizeMd: 'text-base',\n  textSizeLg: 'text-lg',\n  textSizeXl: 'text-xl',\n  typographyToneDefault: 'text-foreground',\n  typographyToneMuted: 'text-muted-foreground',\n  typographyTonePrimary: 'text-primary',\n  typographyToneSuccess: 'text-emerald-700 dark:text-emerald-400',\n  typographyToneWarning: 'text-amber-700 dark:text-amber-400',\n  typographyToneDanger: 'text-destructive-text',\n  typographyToneInherit: 'text-inherit',\n  headingRoot: 'min-w-0 break-words font-semibold tracking-tight',\n  headingSizeXs: 'text-sm leading-5',\n  headingSizeSm: 'text-base leading-6',\n  headingSizeMd: 'text-lg leading-7',\n  headingSizeLg: 'text-xl leading-7',\n  headingSizeXl: 'text-2xl leading-8',\n  headingSize2xl: 'text-3xl leading-9',\n  linkRoot:\n    'inline break-words underline decoration-current/40 underline-offset-4 hover:decoration-current focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n  codeInline:\n    'rounded border border-border/70 bg-muted/60 px-1.5 py-0.5 font-mono text-[0.875em] leading-[1.45] text-foreground',\n  codeBlock:\n    'm-0 max-w-full overflow-x-auto rounded-md border border-border/70 bg-muted/60 p-4 text-foreground',\n  codeContent: 'font-mono text-sm leading-6',\n  kbdRoot:\n    'inline-flex min-h-5 items-center rounded border border-border bg-muted/70 px-1.5 font-mono text-[0.75em] font-medium leading-5 text-foreground shadow-[inset_0_-1px_0_hsl(var(--monkeys-color-border))]',\n  listRoot: 'm-0 min-w-0 list-outside break-words ps-5 text-foreground',\n  listSpacingCompact: '[&>li+li]:mt-1',\n  listSpacingDefault: '[&>li+li]:mt-2',\n  listSpacingRelaxed: '[&>li+li]:mt-3',\n  listMarkerNone: 'list-none ps-0',\n  listMarkerDisc: 'list-disc',\n  listMarkerCircle: 'list-[circle]',\n  listMarkerSquare: 'list-[square]',\n  listMarkerDecimal: 'list-decimal',\n  listMarkerLowerAlpha: 'list-[lower-alpha]',\n  listMarkerUpperAlpha: 'list-[upper-alpha]',\n  listItem: 'min-w-0 ps-1 leading-6 marker:text-muted-foreground',\n  stackRoot: 'flex min-w-0 flex-col',\n  inlineRoot: 'flex min-w-0 flex-row',\n  gridRoot: 'grid min-w-0',\n  containerRoot: 'mx-auto w-full min-w-0',\n  aspectRatioRoot:\n    'relative min-w-0 overflow-hidden [&>*]:h-full [&>*]:w-full',\n  spinnerRoot:\n    'inline-flex shrink-0 items-center justify-center text-current align-middle',\n  spinnerIndicator:\n    'h-5 w-5 rounded-full border-2 border-current border-r-transparent motion-safe:animate-spin motion-reduce:animate-none',\n  visuallyHiddenRoot: 'sr-only',\n  visuallyHiddenFocusable:\n    'focus:not-sr-only focus:fixed focus:left-4 focus:top-4 focus:z-[1000] focus:rounded-md focus:bg-background focus:px-4 focus:py-2 focus:text-foreground focus:shadow-lg focus:outline-none focus:ring-2 focus:ring-ring focus-within:not-sr-only focus-within:fixed focus-within:left-4 focus-within:top-4 focus-within:z-[1000] focus-within:rounded-md focus-within:bg-background focus-within:px-4 focus-within:py-2 focus-within:text-foreground focus-within:shadow-lg focus-within:ring-2 focus-within:ring-ring',\n  fieldsetRoot: 'min-w-0 border-0 p-0 text-foreground',\n  fieldsetLegend: 'min-w-0 text-sm font-semibold leading-6 text-foreground',\n  fieldsetDescription: 'mt-1 text-sm leading-5 text-muted-foreground',\n  fieldsetError: 'mt-1 text-sm leading-5 text-destructive-text',\n  fieldsetContent: 'mt-3 grid min-w-0 gap-3',\n  stepsRoot: 'm-0 min-w-0 list-none p-0 text-foreground',\n  stepsHorizontal:\n    'flex w-full max-w-full items-start overflow-x-auto pb-2',\n  stepsVertical: 'grid',\n  stepsItem: 'relative min-w-0',\n  stepsItemHorizontal: 'flex min-w-52 flex-1 items-start',\n  stepsItemVertical: 'pb-6 last:pb-0',\n  stepsTrigger:\n    'flex min-w-0 flex-1 items-start gap-3 rounded-md border-0 bg-transparent p-1 text-start text-inherit',\n  stepsTriggerInteractive:\n    'cursor-pointer hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n  stepsTriggerDisabled: '!cursor-not-allowed opacity-60',\n  stepsIndicator:\n    'relative z-[1] inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full border text-xs font-semibold',\n  stepsIndicatorPending: 'border-border bg-background text-muted-foreground',\n  stepsIndicatorCurrent: 'border-primary/50 bg-primary/10 text-primary',\n  stepsIndicatorCompleted:\n    'border-primary bg-primary text-primary-foreground',\n  stepsIndicatorError:\n    'border-destructive bg-destructive text-destructive-foreground',\n  stepsContent: 'grid min-w-0 gap-1 pt-0.5',\n  stepsLabel: 'min-w-0 break-words text-sm font-medium leading-5',\n  stepsDescription:\n    'min-w-0 break-words text-sm leading-5 text-muted-foreground',\n  stepsStatus: 'sr-only',\n  stepsConnector: 'shrink-0 bg-border',\n  stepsConnectorHorizontal: 'mt-3.5 h-px w-8',\n  stepsConnectorVertical:\n    'absolute bottom-0 top-8 start-3.5 w-px -translate-x-1/2',\n  stepsConnectorCompleted: 'bg-primary/60',\n  stepsConnectorError: 'bg-destructive/60',\n  scrollAreaViewport: 'min-h-0 min-w-0',\n  numberInputControl: 'tabular-nums',\n  numberInputStepControls:\n    'me-1 flex shrink-0 self-stretch overflow-hidden border-s border-border',\n  numberInputStepButton:\n    'flex min-h-6 w-7 cursor-pointer items-center justify-center border-0 bg-transparent px-1 text-xs leading-none text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:z-[1] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-40',\n  passwordInputControl: 'pe-2',\n  passwordInputToggle:\n    'me-1 inline-flex min-h-7 shrink-0 cursor-pointer items-center justify-center rounded px-2 text-xs font-medium text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-40',\n  inputGroupRoot:\n    cn(\n      'relative flex min-w-0 items-stretch overflow-hidden rounded-md border border-border bg-background text-foreground focus-within:border-primary/50 focus-within:ring-2 focus-within:ring-ring/30',\n      motionBase,\n    ),\n  inputGroupInvalid:\n    'border-destructive/55 focus-within:border-destructive/70 focus-within:ring-destructive/25',\n  inputGroupDisabled: '!cursor-not-allowed bg-muted/35',\n  inputGroupContent:\n    'flex min-w-0 flex-1 items-stretch [&>*]:min-w-0',\n  inputGroupStartElement:\n    'inline-flex shrink-0 items-center justify-center ps-3 pe-1 text-foreground/75',\n  inputGroupEndElement:\n    'inline-flex shrink-0 items-center justify-center ps-1 pe-3 text-foreground/75',\n  inputGroupStartAddon:\n    'inline-flex max-w-[min(40%,16rem)] shrink-0 items-center overflow-hidden border-e border-border bg-muted/60 px-3 text-sm text-foreground/75 text-ellipsis whitespace-nowrap [&>*]:min-w-0',\n  inputGroupEndAddon:\n    'inline-flex max-w-[min(40%,16rem)] shrink-0 items-center overflow-hidden border-s border-border bg-muted/60 px-3 text-sm text-foreground/75 text-ellipsis whitespace-nowrap [&>*]:min-w-0',\n  panelRoot:\n    cn(\n      'group relative flex min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background',\n      motionInteractive,\n    ),\n  panelInteractive:\n    'cursor-pointer hover:shadow-md',\n  panelSelected: 'border-primary/45 bg-primary/5',\n  panelDisabled: '!cursor-not-allowed opacity-60',\n  panelMedia:\n    'shrink-0 overflow-hidden',\n  panelHeader: 'min-w-0 p-4',\n  panelTitle: 'min-w-0 truncate text-sm font-semibold leading-none text-foreground',\n  panelDescription: 'mt-1 text-sm leading-5 text-foreground/75',\n  panelBody: 'min-w-0 px-4 pb-4 text-sm text-foreground',\n  panelBodyStandalone: 'pt-4',\n  panelFooter: 'shrink-0 border-t border-border/60 px-4 py-3',\n  stateRoot:\n    cn(\n      'flex min-h-48 flex-col items-center justify-center rounded-lg border border-border/70 bg-background px-6 py-10 text-center',\n      motionBase,\n    ),\n  stateIcon:\n    'mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-muted text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n  stateTitle: 'text-sm font-semibold text-foreground',\n  stateDescription: 'mt-2 max-w-md text-sm leading-6 text-muted-foreground',\n  stateActions: 'mt-5 flex flex-wrap items-center justify-center gap-2',\n  loadingSpinner:\n    'h-5 w-5 motion-safe:animate-spin motion-reduce:animate-none',\n  fieldRoot: 'grid min-w-0 gap-2',\n  fieldLabelRow: 'flex min-w-0 items-center justify-between gap-3',\n  fieldLabel: 'min-w-0 text-sm font-medium leading-none text-foreground',\n  fieldRequired: 'text-destructive-text',\n  fieldDescription: 'text-sm leading-5 text-muted-foreground',\n  fieldMessage: 'text-sm leading-5 text-muted-foreground',\n  fieldControl: 'min-w-0',\n  controlWrapper:\n    cn(\n      'relative flex min-w-0 items-center rounded-md border border-border bg-background text-foreground focus-within:border-primary/35',\n      motionBase,\n    ),\n  controlBase:\n    'min-w-0 flex-1 bg-transparent px-3 text-sm text-foreground outline-none placeholder:text-muted-foreground disabled:!cursor-not-allowed',\n  controlInput: 'h-9',\n  controlTextarea: 'min-h-24 resize-y py-2 leading-6',\n  controlSelect: 'h-9 cursor-pointer appearance-none pr-9 disabled:!cursor-not-allowed',\n  controlIcon:\n    'pointer-events-none ml-3 inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n  controlTrailing:\n    'mr-3 inline-flex shrink-0 items-center justify-center text-muted-foreground',\n  controlInvalid:\n    'border-destructive/45 focus-within:border-destructive/60',\n  controlDisabled: '!cursor-not-allowed opacity-60',\n  controlReadOnly: 'bg-muted/35',\n  selectChevron:\n    cn(\n      'pointer-events-none absolute right-3 top-1/2 h-2 w-2 -translate-y-1/2 rotate-45 border-b border-r border-current text-muted-foreground',\n      motionTransform,\n    ),\n  selectMenu:\n    'absolute left-0 right-0 top-[calc(100%+0.375rem)] z-50 max-h-60 origin-top overflow-auto rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n  selectOption:\n    cn(\n      'flex min-h-8 w-full min-w-0 cursor-pointer items-center rounded-sm px-2.5 py-1.5 text-left text-sm text-foreground',\n      motionInteractive,\n    ),\n  selectOptionActive: 'bg-accent text-accent-foreground',\n  selectOptionSelected: 'bg-primary/10 text-primary',\n  selectOptionDisabled: '!cursor-not-allowed opacity-50',\n  selectPlaceholder: 'text-muted-foreground',\n  selectNative: 'sr-only',\n  switchRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n  switchInput: 'sr-only',\n  switchTrack:\n    cn(\n      'relative mt-0.5 inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-border bg-muted focus-within:border-primary/35',\n      motionBase,\n    ),\n  switchThumb:\n    cn(\n      'h-4 w-4 translate-x-1 rounded-full bg-background shadow-sm',\n      motionTransform,\n    ),\n  switchChecked: 'border-primary/40 bg-primary/80 text-primary-foreground',\n  switchDisabled: '!cursor-not-allowed opacity-60',\n  switchContent: 'grid min-w-0 gap-1',\n  switchLabel: 'text-sm font-medium leading-none text-foreground',\n  switchDescription: 'text-sm leading-5 text-muted-foreground',\n  checkboxRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n  checkboxInput: 'sr-only',\n  checkboxBox:\n    cn(\n      'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded border border-border bg-background text-primary focus-within:border-primary/40',\n      motionBase,\n    ),\n  checkboxBoxChecked: 'border-primary/45 bg-primary text-primary-foreground',\n  checkboxBoxInvalid: 'border-destructive/50',\n  checkboxIndicator: 'text-[11px] font-bold leading-none',\n  checkboxDisabled: '!cursor-not-allowed opacity-60',\n  checkboxContent: 'grid min-w-0 gap-1',\n  checkboxLabel: 'text-sm font-medium leading-none text-foreground',\n  checkboxDescription: 'text-sm leading-5 text-muted-foreground',\n  radioGroupRoot: 'grid min-w-0 gap-2',\n  radioOption:\n    cn(\n      'inline-flex min-w-0 cursor-pointer items-start gap-3 rounded-md border border-border/60 bg-background px-3 py-2 text-sm',\n      motionInteractive,\n      'hover:bg-muted/35',\n    ),\n  radioInput: 'sr-only',\n  radioMarker:\n    cn(\n      'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full border border-border bg-background text-primary focus-within:border-primary/40',\n      motionBase,\n    ),\n  radioMarkerChecked: 'border-primary/50 bg-primary/10',\n  radioIndicator: 'h-2 w-2 rounded-full bg-primary',\n  radioOptionDisabled: '!cursor-not-allowed opacity-60 hover:bg-background',\n  radioContent: 'grid min-w-0 gap-1',\n  radioLabel: 'text-sm font-medium leading-none text-foreground',\n  radioDescription: 'text-sm leading-5 text-muted-foreground',\n  dialogRoot: 'relative',\n  dialogTrigger: '',\n  dialogTriggerDisabled: '!cursor-not-allowed opacity-60',\n  dialogOverlay:\n    'fixed inset-0 z-50 bg-background/70 backdrop-blur-sm motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n  dialogContent:\n    'pointer-events-none fixed inset-0 z-50 flex min-h-0 items-center justify-center p-4',\n  dialogPanel:\n    cn(\n      'pointer-events-auto relative flex max-h-[min(85vh,720px)] w-full max-w-lg min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background text-foreground shadow-xl',\n      'motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n    ),\n  dialogHeader: 'grid min-w-0 gap-1 border-b border-border/60 px-5 py-4',\n  dialogTitle: 'min-w-0 pr-8 text-base font-semibold leading-6 text-foreground',\n  dialogDescription: 'text-sm leading-6 text-muted-foreground',\n  dialogBody: 'min-h-0 min-w-0 overflow-auto px-5 py-4 text-sm text-foreground',\n  dialogFooter:\n    'flex shrink-0 flex-wrap items-center justify-end gap-2 border-t border-border/60 px-5 py-4',\n  dialogClose:\n    cn(\n      'absolute right-3 top-3 inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-muted-foreground hover:bg-muted/60 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n      motionInteractive,\n    ),\n  dropdownRoot: 'relative inline-flex min-w-0',\n  dropdownTrigger: '',\n  dropdownTriggerDisabled: '!cursor-not-allowed opacity-60',\n  dropdownMenu:\n    'z-50 min-w-48 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n  dropdownMenuTop: 'bottom-[calc(100%+0.375rem)] top-auto',\n  dropdownMenuEnd: 'left-auto right-0',\n  dropdownLabel:\n    'px-2.5 py-1.5 text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground',\n  dropdownSeparator: 'my-1 h-px bg-border/70',\n  dropdownItem:\n    cn(\n      'flex min-w-0 cursor-pointer items-center gap-2 rounded-sm px-2.5 py-2 text-left text-sm text-foreground hover:bg-accent/60 focus:bg-accent/60 data-[highlighted]:bg-accent/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n      motionInteractive,\n    ),\n  dropdownItemDanger:\n    'text-destructive-text hover:bg-destructive/10 focus:bg-destructive/10 data-[highlighted]:bg-destructive/10',\n  dropdownItemDisabled:\n    '!cursor-not-allowed opacity-50 hover:bg-transparent focus:bg-transparent data-[highlighted]:bg-transparent',\n  dropdownItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n  dropdownItemContent: 'grid min-w-0 flex-1 gap-0.5',\n  dropdownItemLabel: 'min-w-0 truncate',\n  dropdownItemDescription:\n    'min-w-0 truncate text-xs leading-4 text-muted-foreground',\n  dropdownItemShortcut:\n    'ml-3 shrink-0 text-xs font-medium text-muted-foreground',\n  tooltipRoot: 'relative inline-flex min-w-0',\n  tooltipTrigger: 'inline-flex min-w-0',\n  tooltipContent:\n    'pointer-events-none z-50 max-w-xs rounded-md border border-border bg-popover px-2.5 py-1.5 text-xs leading-5 text-popover-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n  noticeBase:\n    cn(\n      'flex min-w-0 gap-3 rounded-lg border px-4 py-3 text-sm',\n      motionBase,\n      'motion-safe:animate-in motion-safe:fade-in',\n    ),\n  noticeDefault: 'border-border bg-background text-foreground',\n  noticePrimary: 'border-primary/25 bg-primary/10 text-primary',\n  noticeSuccess:\n    'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-foreground',\n  noticeWarning: 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))]',\n  noticeDanger:\n    'border-destructive/30 bg-destructive/10 text-destructive-text',\n  noticeMuted: 'border-border/60 bg-muted/35 text-muted-foreground',\n  noticeIcon:\n    'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center motion-safe:animate-in motion-safe:fade-in',\n  noticeTitle: 'font-semibold leading-5',\n  noticeDescription: 'leading-6',\n  noticeActions: 'mt-3 flex flex-wrap items-center gap-2',\n  dividerRoot: cn('shrink-0 border-border/70', motionBase),\n  dividerLabel:\n    'mx-3 shrink-0 text-xs font-medium uppercase tracking-[0.12em] text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n  sectionHeaderRoot:\n    'flex min-w-0 flex-wrap items-start justify-between gap-3 motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n  sectionHeaderContent: 'grid min-w-0 gap-1',\n  sectionHeaderEyebrow:\n    'text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground',\n  sectionHeaderTitle: 'text-base font-semibold leading-6 text-foreground',\n  sectionHeaderDescription: 'max-w-2xl text-sm leading-6 text-muted-foreground',\n  sectionHeaderActions: 'flex shrink-0 flex-wrap items-center gap-2',\n  tabsRoot: 'grid min-w-0 gap-3',\n  tabsList:\n    cn(\n      'inline-flex min-w-0 flex-wrap items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\n      motionBase,\n    ),\n  tabsTrigger:\n    cn(\n      'inline-flex min-w-0 cursor-pointer items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 focus-visible:ring-offset-1 motion-reduce:transition-none',\n      motionInteractive,\n    ),\n  tabsTriggerActive:\n    'bg-background text-foreground shadow-sm',\n  tabsTriggerDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n  tabsPanel:\n    'min-w-0 rounded-lg border border-border/70 bg-background p-4 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n  segmentedRoot:\n    cn(\n      'inline-flex min-w-0 items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\n      motionBase,\n    ),\n  segmentedItem:\n    cn(\n      'inline-flex min-w-0 cursor-pointer items-center justify-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-none',\n      motionInteractive,\n    ),\n  segmentedItemActive:\n    'bg-background text-foreground shadow-sm',\n  segmentedItemDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n  progressRoot: 'grid min-w-0 gap-2',\n  progressTrack:\n    'h-2 w-full overflow-hidden rounded-full bg-muted',\n  progressIndicator:\n    'h-full rounded-full bg-primary motion-safe:transition-[width] motion-safe:duration-500 motion-safe:ease-out',\n  progressLabelRow: 'flex min-w-0 items-center justify-between gap-3',\n  progressLabel: 'min-w-0 truncate text-sm font-medium text-foreground',\n  progressValue: 'shrink-0 text-xs font-medium text-muted-foreground',\n  skeletonRoot:\n    'relative overflow-hidden rounded-md bg-muted/70',\n  avatarRoot:\n    'relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full border border-border bg-muted text-sm font-semibold text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n  avatarImage:\n    'h-full w-full object-cover',\n  avatarFallback:\n    'flex h-full w-full items-center justify-center bg-muted text-foreground',\n  avatarStatus:\n    'absolute bottom-0 right-0 h-2.5 w-2.5 rounded-full border-2 border-background bg-muted-foreground motion-safe:animate-pulse',\n  avatarText: 'min-w-0 truncate text-sm font-medium text-foreground',\n  toolbarRoot:\n    cn(\n      'flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-lg border border-border/70 bg-background px-4 py-3',\n      motionBase,\n    ),\n  toolbarLeading: 'flex min-w-0 items-center gap-3',\n  toolbarTitle: 'min-w-0 truncate text-sm font-semibold text-foreground',\n  toolbarDescription: 'mt-0.5 text-sm leading-5 text-muted-foreground',\n  toolbarContent: 'min-w-0 flex-1',\n  toolbarActions: 'flex shrink-0 flex-wrap items-center gap-2',\n  breadcrumbRoot: 'min-w-0 text-sm text-muted-foreground',\n  breadcrumbList: 'flex min-w-0 flex-wrap items-center gap-1.5',\n  breadcrumbItem: 'inline-flex min-w-0 items-center gap-1.5',\n  breadcrumbLink:\n    'min-w-0 cursor-pointer truncate text-muted-foreground hover:text-foreground disabled:!cursor-not-allowed disabled:opacity-50 aria-disabled:!cursor-not-allowed aria-disabled:opacity-50 aria-disabled:hover:text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n  breadcrumbCurrent: 'min-w-0 truncate font-medium text-foreground',\n  breadcrumbSeparator: 'shrink-0 text-muted-foreground/70',\n  paginationRoot:\n    'flex min-w-0 flex-wrap items-center justify-between gap-3 text-sm',\n  paginationInfo: 'min-w-0 text-muted-foreground',\n  paginationControls: 'flex min-w-0 flex-wrap items-center justify-end gap-1.5',\n  paginationButton:\n    'inline-flex h-8 min-w-8 cursor-pointer items-center justify-center whitespace-nowrap rounded-md border border-border bg-background px-2.5 text-sm font-medium text-foreground hover:bg-accent/60 disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n  paginationButtonDisabled: '!cursor-not-allowed opacity-50',\n  paginationPage:\n    'inline-flex h-8 min-w-8 cursor-default items-center justify-center rounded-md bg-muted/50 px-2.5 text-sm font-medium text-foreground hover:bg-muted/50',\n  paginationEllipsis:\n    'inline-flex h-8 min-w-6 items-center justify-center px-1 text-sm text-muted-foreground',\n  descriptionListRoot:\n    'grid min-w-0 gap-3 text-sm',\n  descriptionListItem:\n    'grid min-w-0 gap-1 rounded-md border border-border/60 bg-background px-3 py-2 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out hover:shadow-sm',\n  descriptionListTerm:\n    'min-w-0 truncate text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground',\n  descriptionListValue: 'min-w-0 text-sm leading-6 text-foreground',\n  accordionRoot: 'grid min-w-0 gap-2',\n  accordionItem:\n    'overflow-hidden rounded-lg border border-border/70 bg-background motion-safe:transition motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n  accordionTrigger:\n    'flex w-full min-w-0 cursor-pointer items-center justify-between gap-3 px-4 py-3 text-start text-sm font-medium text-foreground hover:bg-muted/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n  accordionTriggerIcon:\n    cn(\n      'h-2 w-2 shrink-0 rotate-45 border-b border-r border-current text-muted-foreground',\n      motionTransform,\n      'motion-reduce:transition-none',\n    ),\n  accordionPanel:\n    'border-t border-border/60 px-4 py-3 text-sm leading-6 text-muted-foreground motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out motion-reduce:animate-none',\n  menuTrigger: 'inline-flex min-w-0',\n  menuContent:\n    'z-50 min-w-44 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n  menuLabel: 'px-2 py-1.5 text-xs font-medium text-muted-foreground',\n  menuSeparator: '-mx-1 my-1 h-px bg-border',\n  menuItem:\n    cn(\n      'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground',\n      motionInteractive,\n    ),\n  menuItemDefault: 'text-foreground',\n  menuItemPrimary: 'text-primary focus:text-primary data-[highlighted]:text-primary',\n  menuItemSuccess:\n    'text-[hsl(var(--success,142_72%_29%))] focus:text-[hsl(var(--success,142_72%_29%))] data-[highlighted]:text-[hsl(var(--success,142_72%_29%))]',\n  menuItemWarning:\n    'text-[hsl(var(--warning-foreground,28_73%_26%))] focus:text-[hsl(var(--warning-foreground,28_73%_26%))] data-[highlighted]:text-[hsl(var(--warning-foreground,28_73%_26%))]',\n  menuItemDanger:\n    'text-destructive-text focus:text-destructive-text data-[highlighted]:text-destructive-text',\n  menuItemMuted:\n    'text-muted-foreground focus:text-foreground data-[highlighted]:text-foreground',\n  menuItemDisabled:\n    '!cursor-not-allowed opacity-50 data-[disabled]:pointer-events-none',\n  menuItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n  menuItemLabel: 'min-w-0 flex-1 truncate',\n  menuItemShortcut:\n    'ml-4 shrink-0 text-xs font-medium text-muted-foreground',\n  menuCheckboxIndicator:\n    'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n  menuRadioIndicator:\n    'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n  menuSubTrigger:\n    cn(\n      'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n      motionInteractive,\n    ),\n  menuSubTriggerIcon:\n    'ml-auto inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n  menuSubContent:\n    'z-50 min-w-40 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n  tableContainer:\n    cn(\n      'relative isolate min-w-0 overflow-auto rounded-lg border border-border/70 bg-background/95 bg-clip-padding [scrollbar-gutter:stable]',\n      '[--base-table-header-height:2.75rem] [--base-table-split-scrollbar-gutter:0.75rem]',\n      '[--base-table-sticky-header-bg:hsl(var(--background))] [--base-table-header-separator:hsl(var(--border)_/_0.7)]',\n      tableScrollbarChrome,\n      motionBase,\n    ),\n  tableContainerFooterAttached: '!rounded-b-none !shadow-none',\n  tableRoot: 'w-full caption-bottom border-separate border-spacing-0 text-sm text-foreground',\n  tableCaption: 'mt-3 text-sm text-muted-foreground',\n  tableHeader:\n    cn(\n      'relative z-[2] bg-transparent [&_tr]:bg-transparent',\n      tableStickyHeaderCells,\n    ),\n  tableBody: '[&_tr:last-child>*]:border-b-0',\n  tableFooter: 'bg-muted/30 font-medium [&_tr>*]:border-t [&_tr>*]:border-border/70',\n  tableFooterBar:\n    cn(\n      'flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-lg border border-border/70 bg-muted/20 px-4 py-3 text-sm text-foreground shadow-none',\n      motionBase,\n    ),\n  tableFooterBarAttached:\n    '-mt-px rounded-t-none border-t border-border/70 shadow-none',\n  tableFooterBarLeading: 'flex min-w-0 items-center gap-2',\n  tableFooterBarContent: 'min-w-0 flex-1',\n  tableFooterBarActions: 'ms-auto flex shrink-0 flex-wrap items-center gap-2',\n  tableSplitRoot:\n    'grid w-full min-w-0 grid-cols-[minmax(0,1fr)] grid-rows-[auto_minmax(0,1fr)_auto] caption-bottom border-separate border-spacing-0 text-sm text-foreground',\n  tableSplitHeader:\n    'block w-full min-w-0 shrink-0 overflow-x-hidden overflow-y-hidden bg-transparent',\n  tableSplitBody:\n    cn(\n      'block min-h-0 w-full min-w-0 max-w-full justify-self-stretch overflow-auto [scrollbar-gutter:stable]',\n      tableScrollbarChrome,\n    ),\n  tableSplitFooter:\n    'block w-full min-w-0 shrink-0 overflow-x-hidden overflow-y-hidden',\n  tableSplitRow:\n    'grid w-max min-w-full [grid-template-columns:var(--base-table-column-template)]',\n  tableSplitHead: 'flex min-w-0 overflow-hidden',\n  tableSplitCell: 'block min-w-0 overflow-hidden [overflow-wrap:anywhere]',\n  tableRow:\n    cn(\n      '[&>*]:border-b [&>*]:border-border/60 data-[state=selected]:bg-primary/5 data-[state=selected]:[&>*]:bg-primary/5',\n      motionBase,\n    ),\n  tableRowInteractive:\n    'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.35)] hover:bg-[var(--base-table-row-hover-bg)] hover:[&>*]:bg-[var(--base-table-row-hover-bg)]',\n  tableRowSelected: 'bg-primary/5 [&>*]:bg-primary/5',\n  tableRowDisabled: '!cursor-not-allowed opacity-60',\n  tableHead:\n    'relative h-11 whitespace-nowrap px-3 py-2 text-left align-middle text-xs font-semibold text-muted-foreground shadow-[inset_0_-1px_0_var(--base-table-header-separator)]',\n  tableHeadContent: 'flex min-w-0 items-center justify-between gap-2',\n  tableHeadMain: 'flex min-w-0 items-center gap-2',\n  tableHeadIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n  tableHeadText: 'grid min-w-0 gap-0.5',\n  tableHeadLabel: 'min-w-0 truncate text-xs font-semibold leading-4 text-foreground',\n  tableHeadDescription: 'min-w-0 truncate text-[11px] font-normal leading-4 text-muted-foreground',\n  tableHeadMeta: 'shrink-0 text-[11px] font-medium text-muted-foreground',\n  tableHeadActions: 'flex shrink-0 items-center gap-1',\n  tableHeadSortButton:\n    cn(\n      'inline-flex min-w-0 cursor-pointer items-center gap-1 rounded-sm text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-60',\n      motionBase,\n    ),\n  tableHeadSortIcon:\n    cn(\n      'inline-flex h-3 w-3 shrink-0 items-center justify-center text-muted-foreground',\n      motionTransform,\n    ),\n  tableHeadDragHandle:\n    cn(\n      'inline-flex h-5 w-4 shrink-0 cursor-grab items-center justify-center rounded-sm text-muted-foreground hover:bg-muted active:cursor-grabbing focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n      motionBase,\n    ),\n  tableHeadResizeHandle:\n    cn(\n      'absolute end-0 top-1/2 h-7 w-2 -translate-y-1/2 cursor-col-resize touch-none rounded-sm after:absolute after:start-1/2 after:top-1/2 after:h-5 after:w-px after:-translate-x-1/2 after:-translate-y-1/2 after:bg-border hover:after:bg-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n      motionBase,\n    ),\n  tableCell: 'min-w-0 px-3 py-2 align-middle text-sm text-foreground [overflow-wrap:anywhere]',\n  tableCellAlignCenter: 'text-center',\n  tableCellAlignRight: 'text-right',\n  tableEmptyRow: '[&>*]:border-b [&>*]:border-border/60',\n  tableEmptyCell: 'px-4 py-10 text-center',\n  tableEmptyContent: 'mx-auto flex max-w-md flex-col items-center justify-center text-center',\n  tableEmptyIcon:\n    'mb-3 flex h-10 w-10 items-center justify-center rounded-full bg-muted text-muted-foreground',\n  tableEmptyTitle: 'text-sm font-semibold text-foreground',\n  tableEmptyDescription: 'mt-1 text-sm leading-6 text-muted-foreground',\n  tableEmptyActions: 'mt-4 flex flex-wrap items-center justify-center gap-2',\n  tableLoadingRow: '[&>*]:border-b [&>*]:border-border/60',\n  tableLoadingCell: 'px-3 py-2',\n  tableLoadingSkeleton: 'h-4 w-full rounded-md bg-muted/70',\n  layoutRoot:\n    cn(\n      'grid min-w-0 overflow-hidden grid-rows-[auto_minmax(0,1fr)_auto] gap-3 rounded-lg border border-border/70 bg-background p-3 text-foreground',\n      motionBase,\n    ),\n  layoutRootFull: 'h-full min-h-0',\n  layoutHeader: 'min-w-0',\n  layoutBody: 'grid min-h-0 min-w-0 overflow-hidden gap-3',\n  layoutSidebar: 'min-h-0 min-w-0 overflow-hidden',\n  layoutMain: 'min-h-0 min-w-0 overflow-hidden',\n  layoutAside: 'min-h-0 min-w-0 overflow-hidden',\n  layoutFooter: 'min-w-0',\n  layoutPane:\n    cn(\n      'h-full max-h-full min-h-0 min-w-0 overflow-hidden rounded-lg bg-background text-foreground',\n      motionBase,\n    ),\n  layoutPaneScrollable: 'overflow-auto',\n  layoutPaneBordered: 'border border-border/70',\n  layoutPaneMuted: 'bg-muted/25',\n  layoutPaneSoft: 'bg-background/95 shadow-sm',\n  layoutPaneTransparent: 'bg-transparent shadow-none',\n  layoutSplitRoot: 'grid min-h-0 min-w-0 overflow-hidden',\n  layoutSplitHorizontal: 'grid-flow-col',\n  layoutSplitVertical: 'grid-flow-row',\n  layoutSplitPane: 'min-h-0 min-w-0 overflow-hidden',\n  layoutSplitPrimary: '',\n  layoutSplitSecondary: '',\n  layoutResizeHandle:\n    cn(\n      'group/resize relative z-10 flex shrink-0 items-center justify-center bg-transparent text-muted-foreground hover:bg-border/60 active:bg-border/70 focus-visible:bg-border/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n      motionInteractive,\n    ),\n  layoutResizeHandleHorizontal: 'w-2 cursor-col-resize',\n  layoutResizeHandleVertical: 'h-2 cursor-row-resize',\n  layoutResizeHandleDisabled: 'cursor-default opacity-60',\n  layoutResizeHandleIndicator:\n    'rounded-full bg-muted-foreground/45 group-hover/resize:bg-primary/70',\n};\n\nconst densitySlots: Record<BaseDensity, Partial<BaseThemeSlots>> = {\n  compact: {\n    buttonBase: 'h-8 px-2.5 text-xs',\n    buttonIconOnly: 'h-8 w-8 px-0',\n    badgeBase: 'px-1.5 py-0 text-[11px]',\n    panelHeader: 'p-3',\n    panelBody: 'px-3 pb-3 text-xs',\n    panelBodyStandalone: 'pt-3',\n    panelFooter: 'px-3 py-2',\n    stateRoot: 'min-h-36 px-4 py-7',\n    stateIcon: 'mb-3 h-10 w-10',\n    fieldRoot: 'gap-1.5',\n    fieldLabel: 'text-xs',\n    fieldDescription: 'text-xs leading-5',\n    fieldMessage: 'text-xs leading-5',\n    controlInput: 'h-8 text-xs',\n    controlTextarea: 'min-h-20 text-xs',\n    controlSelect: 'h-8 text-xs',\n    selectMenu: 'text-xs',\n    selectOption: 'min-h-7 px-2 py-1 text-xs',\n    switchTrack: 'h-5 w-9',\n    switchThumb: 'h-3.5 w-3.5',\n    checkboxBox: 'h-3.5 w-3.5',\n    checkboxLabel: 'text-xs',\n    checkboxDescription: 'text-xs leading-5',\n    radioOption: 'px-2 py-1.5 text-xs',\n    radioMarker: 'h-3.5 w-3.5',\n    radioIndicator: 'h-1.5 w-1.5',\n    radioLabel: 'text-xs',\n    radioDescription: 'text-xs leading-5',\n    dialogPanel: 'max-w-md',\n    dialogHeader: 'px-4 py-3',\n    dialogTitle: 'text-sm leading-5',\n    dialogDescription: 'text-xs leading-5',\n    dialogBody: 'px-4 py-3 text-xs',\n    dialogFooter: 'px-4 py-3',\n    dropdownMenu: 'min-w-44 text-xs',\n    dropdownItem: 'px-2 py-1.5 text-xs',\n    tooltipContent: 'text-[11px] leading-4',\n    noticeBase: 'px-3 py-2 text-xs',\n    dividerLabel: 'text-[11px]',\n    sectionHeaderRoot: 'gap-2',\n    sectionHeaderTitle: 'text-sm leading-5',\n    sectionHeaderDescription: 'text-xs leading-5',\n    tabsList: 'gap-0.5 p-0.5',\n    tabsTrigger: 'px-2 py-1 text-xs',\n    tabsPanel: 'p-3 text-xs',\n    segmentedRoot: 'gap-0.5 p-0.5',\n    segmentedItem: 'px-2 py-1 text-xs',\n    progressTrack: 'h-1.5',\n    avatarRoot: 'text-xs',\n    toolbarRoot: 'gap-2 px-3 py-2',\n    toolbarTitle: 'text-xs',\n    toolbarDescription: 'text-xs leading-5',\n    paginationButton: 'h-7 min-w-7 px-2 text-xs',\n    paginationPage: 'h-7 min-w-7 px-2 text-xs',\n    descriptionListRoot: 'gap-2 text-xs',\n    descriptionListItem: 'px-2 py-1.5',\n    descriptionListTerm: 'text-[11px]',\n    descriptionListValue: 'text-xs leading-5',\n    accordionTrigger: 'px-3 py-2 text-xs',\n    accordionPanel: 'px-3 py-2 text-xs leading-5',\n    menuContent: 'min-w-40 p-0.5 text-xs',\n    menuSubContent: 'min-w-36 p-0.5 text-xs',\n    menuLabel: 'px-2 py-1 text-[11px]',\n    menuItem: 'min-h-7 px-2 py-1 text-xs',\n    menuSubTrigger: 'min-h-7 px-2 py-1 text-xs',\n    menuItemShortcut: 'text-[11px]',\n    tableContainer: '[--base-table-header-height:2.25rem]',\n    tableHead: 'h-9 px-2 py-1.5 text-[11px]',\n    tableCell: 'px-2 py-1.5 text-xs',\n    tableHeadLabel: 'text-[11px]',\n    tableHeadDescription: 'text-[10px] leading-3',\n    tableLoadingCell: 'px-2 py-1.5',\n    layoutRoot: 'gap-2 p-2',\n    layoutBody: 'gap-2',\n    layoutPane: 'rounded-md text-xs',\n    layoutResizeHandleHorizontal: 'w-1.5',\n    layoutResizeHandleVertical: 'h-1.5',\n  },\n  default: {\n    buttonBase: 'h-9',\n  },\n  comfortable: {\n    buttonBase: 'h-10 px-3.5',\n    buttonIconOnly: 'h-10 w-10 px-0',\n    badgeBase: 'px-2.5 py-1',\n    panelHeader: 'p-5',\n    panelBody: 'px-5 pb-5',\n    panelBodyStandalone: 'pt-5',\n    panelFooter: 'px-5 py-3.5',\n    stateRoot: 'min-h-56 px-8 py-12',\n    stateIcon: 'mb-5 h-14 w-14',\n    fieldRoot: 'gap-2.5',\n    controlInput: 'h-10',\n    controlTextarea: 'min-h-28',\n    controlSelect: 'h-10',\n    selectMenu: 'p-1.5',\n    selectOption: 'min-h-9 px-3 py-2',\n    switchTrack: 'h-7 w-12',\n    switchThumb: 'h-5 w-5',\n    checkboxBox: 'h-5 w-5',\n    radioOption: 'px-4 py-3',\n    radioMarker: 'h-5 w-5',\n    radioIndicator: 'h-2.5 w-2.5',\n    dialogPanel: 'max-w-xl',\n    dialogHeader: 'px-6 py-5',\n    dialogBody: 'px-6 py-5',\n    dialogFooter: 'px-6 py-5',\n    dropdownMenu: 'min-w-56',\n    dropdownItem: 'px-3 py-2.5',\n    noticeBase: 'px-5 py-4',\n    sectionHeaderTitle: 'text-lg leading-7',\n    tabsTrigger: 'px-3.5 py-2',\n    tabsPanel: 'p-5',\n    segmentedItem: 'px-3.5 py-2',\n    progressTrack: 'h-2.5',\n    toolbarRoot: 'px-5 py-4',\n    paginationButton: 'h-9 min-w-9 px-3',\n    paginationPage: 'h-9 min-w-9 px-3',\n    descriptionListItem: 'px-4 py-3',\n    accordionTrigger: 'px-5 py-4',\n    accordionPanel: 'px-5 py-4',\n    menuContent: 'min-w-48 p-1.5',\n    menuSubContent: 'min-w-44 p-1.5',\n    menuItem: 'min-h-9 px-3 py-2',\n    menuSubTrigger: 'min-h-9 px-3 py-2',\n    tableContainer: '[--base-table-header-height:3rem]',\n    tableHead: 'h-12 px-4 py-3',\n    tableCell: 'px-4 py-3',\n    tableLoadingCell: 'px-4 py-3',\n    layoutRoot: 'gap-4 p-4',\n    layoutBody: 'gap-4',\n    layoutPane: 'rounded-xl',\n    layoutResizeHandleHorizontal: 'w-2.5',\n    layoutResizeHandleVertical: 'h-2.5',\n  },\n};\n\nconst radiusSlots: Record<BaseRadius, Partial<BaseThemeSlots>> = {\n  none: {\n    buttonBase: 'rounded-none',\n    badgeBase: 'rounded-none',\n    panelRoot: 'rounded-none',\n    stateRoot: 'rounded-none',\n    stateIcon: 'rounded-none',\n    controlWrapper: 'rounded-none',\n    selectMenu: 'rounded-none',\n    selectOption: 'rounded-none',\n    switchTrack: 'rounded-none',\n    switchThumb: 'rounded-none',\n    checkboxBox: 'rounded-none',\n    radioOption: 'rounded-none',\n    dialogPanel: 'rounded-none',\n    dialogClose: 'rounded-none',\n    dropdownMenu: 'rounded-none',\n    dropdownItem: 'rounded-none',\n    tooltipContent: 'rounded-none',\n    noticeBase: 'rounded-none',\n    tabsList: 'rounded-none',\n    tabsTrigger: 'rounded-none',\n    tabsPanel: 'rounded-none',\n    segmentedRoot: 'rounded-none',\n    segmentedItem: 'rounded-none',\n    progressTrack: 'rounded-none',\n    progressIndicator: 'rounded-none',\n    skeletonRoot: 'rounded-none',\n    avatarRoot: 'rounded-none',\n    avatarStatus: 'rounded-none',\n    toolbarRoot: 'rounded-none',\n    paginationButton: 'rounded-none',\n    paginationPage: 'rounded-none',\n    descriptionListItem: 'rounded-none',\n    accordionItem: 'rounded-none',\n    menuContent: 'rounded-none',\n    menuItem: 'rounded-none',\n    menuSubTrigger: 'rounded-none',\n    menuSubContent: 'rounded-none',\n    tableContainer: 'rounded-none',\n    tableEmptyIcon: 'rounded-none',\n    tableLoadingSkeleton: 'rounded-none',\n    layoutRoot: 'rounded-none',\n    layoutPane: 'rounded-none',\n  },\n  sm: {\n    buttonBase: 'rounded-sm',\n    badgeBase: 'rounded-sm',\n    panelRoot: 'rounded-sm',\n    stateRoot: 'rounded-sm',\n    stateIcon: 'rounded-sm',\n    controlWrapper: 'rounded-sm',\n    selectMenu: 'rounded-sm',\n    selectOption: 'rounded-sm',\n    switchTrack: 'rounded-sm',\n    switchThumb: 'rounded-sm',\n    checkboxBox: 'rounded-sm',\n    radioOption: 'rounded-sm',\n    dialogPanel: 'rounded-sm',\n    dialogClose: 'rounded-sm',\n    dropdownMenu: 'rounded-sm',\n    dropdownItem: 'rounded-sm',\n    tooltipContent: 'rounded-sm',\n    noticeBase: 'rounded-sm',\n    tabsList: 'rounded-sm',\n    tabsTrigger: 'rounded-sm',\n    tabsPanel: 'rounded-sm',\n    segmentedRoot: 'rounded-sm',\n    segmentedItem: 'rounded-sm',\n    progressTrack: 'rounded-sm',\n    progressIndicator: 'rounded-sm',\n    skeletonRoot: 'rounded-sm',\n    avatarRoot: 'rounded-sm',\n    avatarStatus: 'rounded-sm',\n    toolbarRoot: 'rounded-sm',\n    paginationButton: 'rounded-sm',\n    paginationPage: 'rounded-sm',\n    descriptionListItem: 'rounded-sm',\n    accordionItem: 'rounded-sm',\n    menuContent: 'rounded-sm',\n    menuItem: 'rounded-sm',\n    menuSubTrigger: 'rounded-sm',\n    menuSubContent: 'rounded-sm',\n    tableContainer: 'rounded-sm',\n    tableEmptyIcon: 'rounded-sm',\n    tableLoadingSkeleton: 'rounded-sm',\n    layoutRoot: 'rounded-sm',\n    layoutPane: 'rounded-sm',\n  },\n  md: {},\n  lg: {\n    buttonBase: 'rounded-lg',\n    badgeBase: 'rounded-lg',\n    panelRoot: 'rounded-xl',\n    stateRoot: 'rounded-xl',\n    stateIcon: 'rounded-xl',\n    controlWrapper: 'rounded-lg',\n    selectMenu: 'rounded-lg',\n    selectOption: 'rounded-md',\n    switchTrack: 'rounded-full',\n    switchThumb: 'rounded-full',\n    checkboxBox: 'rounded-md',\n    radioOption: 'rounded-xl',\n    dialogPanel: 'rounded-xl',\n    dialogClose: 'rounded-lg',\n    dropdownMenu: 'rounded-lg',\n    dropdownItem: 'rounded-md',\n    tooltipContent: 'rounded-md',\n    noticeBase: 'rounded-xl',\n    tabsList: 'rounded-xl',\n    tabsTrigger: 'rounded-lg',\n    tabsPanel: 'rounded-xl',\n    segmentedRoot: 'rounded-xl',\n    segmentedItem: 'rounded-lg',\n    skeletonRoot: 'rounded-lg',\n    toolbarRoot: 'rounded-xl',\n    descriptionListItem: 'rounded-lg',\n    accordionItem: 'rounded-xl',\n    menuContent: 'rounded-lg',\n    menuItem: 'rounded-md',\n    menuSubTrigger: 'rounded-md',\n    menuSubContent: 'rounded-lg',\n    tableContainer: 'rounded-xl',\n    tableEmptyIcon: 'rounded-xl',\n    tableLoadingSkeleton: 'rounded-lg',\n    layoutRoot: 'rounded-xl',\n    layoutPane: 'rounded-xl',\n  },\n  xl: {\n    buttonBase: 'rounded-xl',\n    badgeBase: 'rounded-xl',\n    panelRoot: 'rounded-2xl',\n    stateRoot: 'rounded-2xl',\n    stateIcon: 'rounded-2xl',\n    controlWrapper: 'rounded-xl',\n    selectMenu: 'rounded-xl',\n    selectOption: 'rounded-lg',\n    switchTrack: 'rounded-full',\n    switchThumb: 'rounded-full',\n    checkboxBox: 'rounded-lg',\n    radioOption: 'rounded-2xl',\n    dialogPanel: 'rounded-2xl',\n    dialogClose: 'rounded-xl',\n    dropdownMenu: 'rounded-xl',\n    dropdownItem: 'rounded-lg',\n    tooltipContent: 'rounded-lg',\n    noticeBase: 'rounded-2xl',\n    tabsList: 'rounded-2xl',\n    tabsTrigger: 'rounded-xl',\n    tabsPanel: 'rounded-2xl',\n    segmentedRoot: 'rounded-2xl',\n    segmentedItem: 'rounded-xl',\n    skeletonRoot: 'rounded-xl',\n    toolbarRoot: 'rounded-2xl',\n    paginationButton: 'rounded-xl',\n    paginationPage: 'rounded-xl',\n    descriptionListItem: 'rounded-xl',\n    accordionItem: 'rounded-2xl',\n    menuContent: 'rounded-xl',\n    menuItem: 'rounded-lg',\n    menuSubTrigger: 'rounded-lg',\n    menuSubContent: 'rounded-xl',\n    tableContainer: 'rounded-2xl',\n    tableEmptyIcon: 'rounded-2xl',\n    tableLoadingSkeleton: 'rounded-xl',\n    layoutRoot: 'rounded-2xl',\n    layoutPane: 'rounded-2xl',\n  },\n  full: {\n    buttonBase: 'rounded-full',\n    badgeBase: 'rounded-full',\n    panelRoot: 'rounded-2xl',\n    stateRoot: 'rounded-2xl',\n    stateIcon: 'rounded-full',\n    controlWrapper: 'rounded-full',\n    selectMenu: 'rounded-2xl',\n    selectOption: 'rounded-full',\n    switchTrack: 'rounded-full',\n    switchThumb: 'rounded-full',\n    checkboxBox: 'rounded-full',\n    radioOption: 'rounded-2xl',\n    dialogPanel: 'rounded-2xl',\n    dialogClose: 'rounded-full',\n    dropdownMenu: 'rounded-2xl',\n    dropdownItem: 'rounded-full',\n    tooltipContent: 'rounded-full',\n    noticeBase: 'rounded-2xl',\n    tabsList: 'rounded-full',\n    tabsTrigger: 'rounded-full',\n    tabsPanel: 'rounded-2xl',\n    segmentedRoot: 'rounded-full',\n    segmentedItem: 'rounded-full',\n    progressTrack: 'rounded-full',\n    progressIndicator: 'rounded-full',\n    skeletonRoot: 'rounded-full',\n    avatarRoot: 'rounded-full',\n    avatarStatus: 'rounded-full',\n    toolbarRoot: 'rounded-2xl',\n    paginationButton: 'rounded-full',\n    paginationPage: 'rounded-full',\n    descriptionListItem: 'rounded-2xl',\n    accordionItem: 'rounded-2xl',\n    menuContent: 'rounded-2xl',\n    menuItem: 'rounded-full',\n    menuSubTrigger: 'rounded-full',\n    menuSubContent: 'rounded-2xl',\n    tableContainer: 'rounded-2xl',\n    tableEmptyIcon: 'rounded-full',\n    tableLoadingSkeleton: 'rounded-full',\n    layoutRoot: 'rounded-2xl',\n    layoutPane: 'rounded-2xl',\n  },\n};\n\nconst borderSlots: Record<BaseBorder, Partial<BaseThemeSlots>> = {\n  none: {\n    buttonBase: 'border-transparent',\n    badgeBase: 'border-transparent',\n    panelRoot: 'border-transparent',\n    panelFooter: 'border-transparent',\n    stateRoot: 'border-transparent',\n    controlWrapper: 'border-transparent',\n    selectMenu: 'border-transparent',\n    switchTrack: 'border-transparent',\n    checkboxBox: 'border-transparent',\n    radioOption: 'border-transparent',\n    radioMarker: 'border-transparent',\n    dialogPanel: 'border-transparent',\n    dialogHeader: 'border-transparent',\n    dialogFooter: 'border-transparent',\n    dropdownMenu: 'border-transparent',\n    tooltipContent: 'border-transparent',\n    noticeBase: 'border-transparent',\n    dividerRoot: 'border-transparent',\n    tabsList: 'border-transparent',\n    tabsPanel: 'border-transparent',\n    segmentedRoot: 'border-transparent',\n    avatarRoot: 'border-transparent',\n    toolbarRoot: 'border-transparent',\n    paginationButton: 'border-transparent',\n    descriptionListItem: 'border-transparent',\n    accordionItem: 'border-transparent',\n    accordionPanel: 'border-transparent',\n    menuContent: 'border-transparent',\n    menuSeparator: 'bg-transparent',\n    menuSubContent: 'border-transparent',\n    tableContainer: 'border-transparent [--base-table-header-separator:transparent]',\n    tableHeader: 'border-transparent',\n    tableFooter: '[&_tr>*]:border-transparent',\n    tableFooterBar: 'border-transparent',\n    tableFooterBarAttached: 'border-t border-transparent',\n    tableRow: '[&>*]:border-transparent',\n    tableEmptyRow: '[&>*]:border-transparent',\n    tableLoadingRow: '[&>*]:border-transparent',\n    layoutRoot: 'border-transparent',\n    layoutPaneBordered: 'border-transparent',\n    layoutResizeHandle: 'bg-transparent hover:bg-transparent active:bg-transparent focus-visible:bg-transparent',\n  },\n  subtle: {\n    buttonDefault: 'border-border/60',\n    badgeDefault: 'border-border/60',\n    panelRoot: 'border-border/60',\n    panelFooter: 'border-border/60',\n    stateRoot: 'border-border/60',\n    controlWrapper: 'border-border/60',\n    selectMenu: 'border-border/60',\n    switchTrack: 'border-border/60',\n    checkboxBox: 'border-border/60',\n    radioOption: 'border-border/60',\n    radioMarker: 'border-border/60',\n    dialogPanel: 'border-border/60',\n    dialogHeader: 'border-border/60',\n    dialogFooter: 'border-border/60',\n    dropdownMenu: 'border-border/60',\n    tooltipContent: 'border-border/60',\n    noticeDefault: 'border-border/60',\n    dividerRoot: 'border-border/60',\n    tabsList: 'border-border/60',\n    tabsPanel: 'border-border/60',\n    segmentedRoot: 'border-border/60',\n    avatarRoot: 'border-border/60',\n    toolbarRoot: 'border-border/60',\n    paginationButton: 'border-border/60',\n    descriptionListItem: 'border-border/60',\n    accordionItem: 'border-border/60',\n    accordionPanel: 'border-border/60',\n    menuContent: 'border-border/60',\n    menuSeparator: 'bg-border/60',\n    menuSubContent: 'border-border/60',\n    tableContainer: 'border-border/60 [--base-table-header-separator:hsl(var(--border)_/_0.6)]',\n    tableHeader: 'border-border/60',\n    tableFooter: '[&_tr>*]:border-border/60',\n    tableFooterBar: 'border-border/60',\n    tableFooterBarAttached: 'border-t border-border/60',\n    tableRow: '[&>*]:border-border/50',\n    tableEmptyRow: '[&>*]:border-border/50',\n    tableLoadingRow: '[&>*]:border-border/50',\n    layoutRoot: 'border-border/60',\n    layoutPaneBordered: 'border-border/60',\n  },\n  solid: {},\n  strong: {\n    buttonDefault: 'border-foreground/20',\n    badgeDefault: 'border-foreground/20',\n    panelRoot: 'border-foreground/20',\n    panelFooter: 'border-foreground/20',\n    stateRoot: 'border-foreground/20',\n    controlWrapper: 'border-foreground/20',\n    selectMenu: 'border-foreground/20',\n    switchTrack: 'border-foreground/20',\n    checkboxBox: 'border-foreground/20',\n    radioOption: 'border-foreground/20',\n    radioMarker: 'border-foreground/20',\n    dialogPanel: 'border-foreground/20',\n    dialogHeader: 'border-foreground/15',\n    dialogFooter: 'border-foreground/15',\n    dropdownMenu: 'border-foreground/20',\n    tooltipContent: 'border-foreground/20',\n    noticeDefault: 'border-foreground/20',\n    dividerRoot: 'border-foreground/20',\n    tabsList: 'border-foreground/20',\n    tabsPanel: 'border-foreground/20',\n    segmentedRoot: 'border-foreground/20',\n    avatarRoot: 'border-foreground/20',\n    toolbarRoot: 'border-foreground/20',\n    paginationButton: 'border-foreground/20',\n    descriptionListItem: 'border-foreground/20',\n    accordionItem: 'border-foreground/20',\n    accordionPanel: 'border-foreground/20',\n    menuContent: 'border-foreground/20',\n    menuSeparator: 'bg-foreground/15',\n    menuSubContent: 'border-foreground/20',\n    tableContainer:\n      'border-foreground/20 [--base-table-header-separator:hsl(var(--foreground)_/_0.15)]',\n    tableHeader: 'border-foreground/20',\n    tableFooter: '[&_tr>*]:border-foreground/20',\n    tableFooterBar: 'border-foreground/20',\n    tableFooterBarAttached: 'border-t border-foreground/20',\n    tableRow: '[&>*]:border-foreground/15',\n    tableEmptyRow: '[&>*]:border-foreground/15',\n    tableLoadingRow: '[&>*]:border-foreground/15',\n    layoutRoot: 'border-foreground/20',\n    layoutPaneBordered: 'border-foreground/20',\n    layoutResizeHandle: 'hover:bg-foreground/15 active:bg-foreground/20 focus-visible:bg-foreground/15',\n  },\n};\n\nconst backgroundSlots: Record<BaseBackground, Partial<BaseThemeSlots>> = {\n  plain: {},\n  muted: {\n    buttonDefault: 'bg-muted/20 hover:bg-muted/45',\n    panelRoot: 'bg-card',\n    panelFooter: 'bg-muted/20',\n    stateRoot: 'bg-muted/20',\n    controlWrapper: 'bg-background',\n    selectMenu: 'bg-background',\n    selectOptionActive: 'bg-muted/70 text-foreground',\n    checkboxBox: 'bg-background',\n    radioOption: 'bg-card hover:bg-muted/45',\n    radioMarker: 'bg-background',\n    dialogPanel: 'bg-card',\n    dropdownMenu: 'bg-background',\n    dropdownItem: 'hover:bg-muted/60',\n    tooltipContent: 'bg-popover',\n    noticeDefault: 'bg-muted/20',\n    tabsList: 'bg-muted/35',\n    tabsTriggerActive: 'bg-background',\n    tabsPanel: 'bg-card',\n    segmentedRoot: 'bg-muted/35',\n    segmentedItemActive: 'bg-background',\n    progressTrack: 'bg-muted/60',\n    skeletonRoot: 'bg-muted',\n    toolbarRoot: 'bg-card',\n    paginationButton: 'bg-background hover:bg-muted/60',\n    paginationPage: 'bg-muted/60',\n    descriptionListItem: 'bg-card',\n    accordionItem: 'bg-card',\n    menuContent: 'bg-background',\n    menuItem: 'focus:bg-muted/70 data-[highlighted]:bg-muted/70',\n    menuSubTrigger:\n      'focus:bg-muted/70 data-[highlighted]:bg-muted/70 data-[state=open]:bg-muted/70',\n    menuSubContent: 'bg-background',\n    tableContainer: 'bg-background/95 [scrollbar-gutter:stable]',\n    tableFooter: 'bg-muted/35',\n    tableFooterBar: 'bg-muted/30 shadow-none',\n    tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.45)]',\n    tableLoadingSkeleton: 'bg-muted',\n    layoutRoot: 'bg-card',\n    layoutPane: 'bg-card',\n    layoutPaneMuted: 'bg-muted/35',\n    layoutResizeHandle: 'hover:bg-border/70 active:bg-border/80 focus-visible:bg-border/70',\n  },\n  soft: {\n    buttonDefault: 'bg-muted/30 hover:bg-muted/55',\n    panelRoot: 'bg-background/95 shadow-sm',\n    stateRoot: 'bg-background/95 shadow-sm',\n    controlWrapper: 'bg-background/95',\n    selectMenu: 'bg-background/95 shadow-xl',\n    selectOptionActive: 'bg-muted/60 text-foreground',\n    checkboxBox: 'bg-background/95',\n    radioOption: 'bg-background/95 shadow-sm hover:bg-muted/35',\n    radioMarker: 'bg-background/95',\n    dialogPanel: 'bg-background/95 shadow-xl',\n    dropdownMenu: 'bg-background/95 shadow-xl',\n    dropdownItem: 'hover:bg-muted/55',\n    tooltipContent: 'bg-popover shadow-xl',\n    noticeDefault: 'bg-background/95 shadow-sm',\n    tabsList: 'bg-background/60 shadow-sm',\n    tabsTriggerActive: 'bg-background',\n    tabsPanel: 'bg-background/95 shadow-sm',\n    segmentedRoot: 'bg-background/60 shadow-sm',\n    segmentedItemActive: 'bg-background',\n    skeletonRoot: 'bg-background/80',\n    toolbarRoot: 'bg-background/95 shadow-sm',\n    paginationButton: 'bg-background/95 hover:bg-muted/55',\n    descriptionListItem: 'bg-background/95 shadow-sm',\n    accordionItem: 'bg-background/95 shadow-sm',\n    menuContent: 'bg-background/95 shadow-xl',\n    menuItem: 'focus:bg-muted/60 data-[highlighted]:bg-muted/60',\n    menuSubTrigger:\n      'focus:bg-muted/60 data-[highlighted]:bg-muted/60 data-[state=open]:bg-muted/60',\n    menuSubContent: 'bg-background/95 shadow-xl',\n    tableContainer:\n      'bg-background/95 shadow-sm [scrollbar-gutter:stable]',\n    tableFooter: 'bg-muted/25',\n    tableFooterBar: 'bg-muted/25 shadow-none',\n    tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.35)]',\n    tableLoadingSkeleton: 'bg-muted/65',\n    layoutRoot: 'bg-background/95 shadow-sm',\n    layoutPane: 'bg-background/95 shadow-sm',\n    layoutPaneSoft: 'bg-background/95 shadow-md',\n  },\n  glass: {\n    buttonBase: 'backdrop-blur-md',\n    buttonDefault:\n      'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n    badgeDefault: 'border-white/10 bg-white/[0.08] text-foreground',\n    panelRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n    panelFooter: 'border-white/10 bg-white/[0.05]',\n    stateRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n    stateIcon: 'bg-white/10 text-foreground',\n    controlWrapper:\n      'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n    selectMenu:\n      'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n    selectOption: 'text-foreground',\n    selectOptionActive: 'bg-white/[0.14] text-foreground',\n    selectOptionSelected: 'bg-white/[0.18] text-foreground',\n    switchTrack: 'border-white/10 bg-white/[0.12] backdrop-blur-md',\n    checkboxBox: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n    checkboxBoxChecked: 'border-white/20 bg-white/[0.22] text-foreground',\n    radioOption: 'border-white/10 bg-white/[0.06] backdrop-blur-md hover:bg-white/[0.10]',\n    radioMarker: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n    radioMarkerChecked: 'border-white/25 bg-white/[0.16]',\n    dialogOverlay: 'bg-background/45 backdrop-blur-md',\n    dialogPanel: 'border-white/10 bg-white/[0.08] shadow-2xl backdrop-blur-md',\n    dialogHeader: 'border-white/10',\n    dialogFooter: 'border-white/10',\n    dropdownMenu:\n      'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n    dropdownItem: 'text-foreground hover:bg-white/[0.14]',\n    tooltipContent:\n      'border-foreground/10 bg-background/15 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n    noticeDefault:\n      'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n    dividerRoot: 'border-white/15',\n    tabsList: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n    tabsTrigger: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n    tabsTriggerActive: 'bg-white/[0.16] text-foreground shadow-none',\n    tabsPanel:\n      'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n    segmentedRoot: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n    segmentedItem: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n    segmentedItemActive: 'bg-white/[0.16] text-foreground shadow-none',\n    progressTrack: 'bg-white/[0.12]',\n    skeletonRoot: 'bg-white/[0.16]',\n    avatarRoot: 'border-white/10 bg-white/[0.12] text-foreground',\n    avatarFallback: 'bg-white/[0.12] text-foreground',\n    avatarStatus: 'border-background',\n    toolbarRoot:\n      'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n    paginationButton:\n      'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n    paginationPage: 'bg-white/[0.12] text-foreground',\n    descriptionListItem:\n      'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n    accordionItem:\n      'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n    accordionPanel: 'border-white/10',\n    menuContent:\n      'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n    menuSeparator: 'bg-white/10',\n    menuItem:\n      'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground',\n    menuSubTrigger:\n      'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground data-[state=open]:bg-white/[0.16]',\n    menuSubContent:\n      'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n    tableContainer:\n      'border-foreground/10 bg-background/[0.06] shadow-none backdrop-blur-md [scrollbar-gutter:stable] [--base-table-sticky-header-bg:hsl(var(--background)/0.94)] [--base-table-header-separator:hsl(var(--foreground)/0.24)]',\n    tableHeader: 'border-white/10',\n    tableFooter: 'bg-white/[0.05] [&_tr>*]:border-white/10',\n    tableFooterBar:\n      'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n    tableFooterBarAttached: 'border-t border-white/10',\n    tableRow: '[&>*]:border-white/10',\n    tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--foreground)/0.08)]',\n    tableHeadLabel: 'text-foreground',\n    tableLoadingSkeleton: 'bg-white/[0.16]',\n    layoutRoot:\n      'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n    layoutPane:\n      'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n    layoutPaneMuted: 'bg-white/[0.08]',\n    layoutPaneSoft: 'bg-white/[0.10] shadow-none backdrop-blur-md',\n    layoutResizeHandle: 'text-foreground/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n    layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n  },\n  dark: {\n    buttonBase:\n      'border-white/15 text-white shadow-lg backdrop-blur',\n    buttonDefault: 'bg-black/30 hover:bg-black/[0.45]',\n    buttonPrimary: 'border-white/25 bg-white/20 text-white hover:bg-white/25',\n    buttonMuted:\n      'border-white/10 bg-black/20 text-white/70 hover:bg-black/[0.35] hover:text-white',\n    badgeDefault: 'border-white/10 bg-white/[0.08] text-white',\n    badgeMuted: 'border-white/10 bg-black/20 text-white/70',\n    panelRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n    panelTitle: 'text-white',\n    panelDescription: 'text-white/65',\n    panelBody: 'text-white/85',\n    panelFooter: 'border-white/10 bg-white/[0.04]',\n    stateRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n    stateIcon: 'bg-white/10 text-white/75',\n    stateTitle: 'text-white',\n    stateDescription: 'text-white/65',\n    fieldLabel: 'text-white',\n    fieldDescription: 'text-white/65',\n    fieldMessage: 'text-white/65',\n    controlWrapper:\n      'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur focus-within:border-white/35',\n    controlBase: 'text-white placeholder:text-white/45',\n    selectChevron: 'text-white/65',\n    selectMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n    selectOption: 'text-white',\n    selectOptionActive: 'bg-white/[0.12] text-white',\n    selectOptionSelected: 'bg-white/[0.16] text-white',\n    selectPlaceholder: 'text-white/45',\n    switchTrack: 'border-white/15 bg-black/30 shadow-lg backdrop-blur',\n    switchChecked: 'border-white/25 bg-white/25 text-white',\n    switchLabel: 'text-white',\n    switchDescription: 'text-white/65',\n    checkboxBox: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n    checkboxBoxChecked: 'border-white/25 bg-white/25 text-white',\n    checkboxLabel: 'text-white',\n    checkboxDescription: 'text-white/65',\n    radioOption: 'border-white/10 bg-white/[0.06] text-white hover:bg-white/[0.08]',\n    radioMarker: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n    radioMarkerChecked: 'border-white/25 bg-white/25',\n    radioIndicator: 'bg-white',\n    radioLabel: 'text-white',\n    radioDescription: 'text-white/65',\n    dialogOverlay: 'bg-slate-950/75',\n    dialogPanel: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n    dialogHeader: 'border-white/10',\n    dialogTitle: 'text-white',\n    dialogDescription: 'text-white/65',\n    dialogBody: 'text-white/85',\n    dialogFooter: 'border-white/10',\n    dialogClose: 'text-white/65 hover:bg-white/[0.08] hover:text-white',\n    dropdownMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n    dropdownLabel: 'text-white/55',\n    dropdownSeparator: 'bg-white/15',\n    dropdownItem: 'text-white hover:bg-white/[0.10]',\n    dropdownItemDescription: 'text-white/55',\n    dropdownItemShortcut: 'text-white/55',\n    tooltipContent: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n    noticeDefault: 'border-white/10 bg-white/[0.08] text-white',\n    noticeMuted: 'border-white/10 bg-black/20 text-white/70',\n    dividerRoot: 'border-white/15',\n    dividerLabel: 'text-white/55',\n    sectionHeaderEyebrow: 'text-white/55',\n    sectionHeaderTitle: 'text-white',\n    sectionHeaderDescription: 'text-white/65',\n    tabsList: 'border-white/10 bg-white/[0.08]',\n    tabsTrigger: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n    tabsTriggerActive: 'bg-white/[0.16] text-white shadow-none',\n    tabsPanel: 'border-white/10 bg-white/[0.06] text-white',\n    segmentedRoot: 'border-white/10 bg-white/[0.08]',\n    segmentedItem: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n    segmentedItemActive: 'bg-white/[0.16] text-white shadow-none',\n    progressTrack: 'bg-white/[0.12]',\n    progressLabel: 'text-white',\n    progressValue: 'text-white/65',\n    skeletonRoot: 'bg-white/[0.14]',\n    avatarRoot: 'border-white/15 bg-white/[0.10] text-white',\n    avatarFallback: 'bg-white/[0.10] text-white/75',\n    avatarText: 'text-white',\n    avatarStatus: 'border-slate-950',\n    toolbarRoot: 'border-white/10 bg-white/[0.06] text-white',\n    toolbarTitle: 'text-white',\n    toolbarDescription: 'text-white/65',\n    breadcrumbLink: 'text-white/65 hover:text-white',\n    breadcrumbCurrent: 'text-white',\n    breadcrumbSeparator: 'text-white/45',\n    paginationInfo: 'text-white/65',\n    paginationButton: 'border-white/10 bg-white/[0.08] text-white hover:bg-white/[0.14]',\n    paginationPage: 'bg-white/[0.14] text-white',\n    descriptionListItem: 'border-white/10 bg-white/[0.06]',\n    descriptionListTerm: 'text-white/55',\n    descriptionListValue: 'text-white',\n    accordionItem: 'border-white/10 bg-white/[0.06]',\n    accordionTrigger: 'text-white hover:bg-white/[0.08]',\n    accordionPanel: 'border-white/10 text-white/70',\n    tableContainer:\n      'border-foreground/10 bg-background text-foreground shadow-none [scrollbar-gutter:stable] [--base-table-sticky-header-bg:hsl(var(--background)/0.98)] [--base-table-header-separator:hsl(var(--foreground)/0.16)]',\n    tableRoot: 'text-white',\n    tableHeader: 'border-white/10',\n    tableFooter: 'bg-white/[0.05] [&_tr>*]:border-white/10',\n    tableFooterBar: 'border-white/10 bg-white/[0.05] text-white/65',\n    tableFooterBarAttached: 'border-t border-white/10',\n    tableRow: '[&>*]:border-white/10',\n    tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--foreground)/0.06)]',\n    tableHead: 'text-white/65',\n    tableHeadLabel: 'text-white',\n    tableHeadDescription: 'text-white/55',\n    tableHeadMeta: 'text-white/55',\n    tableHeadIcon: 'text-white/55',\n    tableHeadSortIcon: 'text-white/55',\n    tableHeadDragHandle: 'text-white/55 hover:bg-white/[0.08]',\n    tableHeadResizeHandle: 'after:bg-white/20 hover:after:bg-white/60',\n    tableCell: 'text-white/85',\n    tableEmptyIcon: 'bg-white/10 text-white/65',\n    tableEmptyTitle: 'text-white',\n    tableEmptyDescription: 'text-white/60',\n    menuContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n    menuLabel: 'text-white/55',\n    menuSeparator: 'bg-white/10',\n    menuItem:\n      'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white',\n    menuItemDefault: 'text-white',\n    menuItemPrimary: 'text-primary focus:text-primary data-[highlighted]:text-primary',\n    menuItemSuccess:\n      'text-[hsl(var(--success,142_69%_58%))] focus:text-[hsl(var(--success,142_69%_58%))] data-[highlighted]:text-[hsl(var(--success,142_69%_58%))]',\n    menuItemWarning:\n      'text-[hsl(var(--warning-foreground,53_98%_77%))] focus:text-[hsl(var(--warning-foreground,53_98%_77%))] data-[highlighted]:text-[hsl(var(--warning-foreground,53_98%_77%))]',\n    menuItemDanger:\n      'text-destructive-text focus:text-destructive-text data-[highlighted]:text-destructive-text',\n    menuItemMuted:\n      'text-white/65 focus:text-white data-[highlighted]:text-white',\n    menuItemShortcut: 'text-white/45',\n    menuSubTrigger:\n      'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white data-[state=open]:bg-white/[0.12]',\n    menuSubTriggerIcon: 'text-white/55',\n    menuSubContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n    tableLoadingSkeleton: 'bg-white/[0.14]',\n    layoutRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n    layoutPane: 'border-white/10 bg-slate-950 text-white shadow-none',\n    layoutPaneMuted: 'bg-white/[0.06]',\n    layoutPaneSoft: 'bg-white/[0.08] shadow-none',\n    layoutResizeHandle: 'text-white/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n    layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n  },\n};\n\nconst presetDefaults: Record<\n  BaseThemePresetId,\n  Pick<BaseAppearance, 'density' | 'radius' | 'border' | 'background'>\n> = {\n  default: {\n    density: 'default',\n    radius: 'md',\n    border: 'solid',\n    background: 'plain',\n  },\n  soft: {\n    density: 'default',\n    radius: 'lg',\n    border: 'subtle',\n    background: 'soft',\n  },\n  compact: {\n    density: 'compact',\n    radius: 'md',\n    border: 'subtle',\n    background: 'muted',\n  },\n  'tinted-glass': {\n    density: 'default',\n    radius: 'lg',\n    border: 'subtle',\n    background: 'glass',\n  },\n  glass: {\n    density: 'default',\n    radius: 'xl',\n    border: 'subtle',\n    background: 'glass',\n  },\n  'hard-edge': {\n    density: 'compact',\n    radius: 'none',\n    border: 'strong',\n    background: 'plain',\n  },\n};\n\nconst presetSlots: Record<string, Partial<BaseThemeSlots>> = {\n  soft: {\n    buttonBase: 'font-medium',\n    panelRoot: 'border-border/70',\n    controlWrapper: 'font-medium',\n    tabsTrigger: 'font-medium',\n    segmentedItem: 'font-medium',\n    toolbarRoot: 'border-border/70',\n    tableContainer: 'border-border/70',\n    tableFooterBar: 'border-border/70',\n    tableHeadLabel: 'font-semibold',\n    menuItemLabel: 'font-medium',\n  },\n  compact: {\n    buttonBase: 'text-xs',\n    badgeBase: 'text-[11px]',\n    fieldLabel: 'text-xs',\n    controlBase: 'text-xs',\n    selectOption: 'text-xs',\n    menuItem: 'text-xs',\n    menuSubTrigger: 'text-xs',\n    noticeBase: 'text-xs',\n    sectionHeaderTitle: 'text-sm',\n    tabsTrigger: 'text-xs',\n    segmentedItem: 'text-xs',\n    toolbarTitle: 'text-xs',\n    paginationRoot: 'text-xs',\n  },\n  'tinted-glass': {\n    buttonPrimary: 'border-primary/25 bg-primary/15 text-primary-foreground hover:bg-primary/20',\n    badgePrimary: 'border-primary/25 bg-primary/15 text-primary-foreground',\n    noticePrimary: 'border-primary/25 bg-primary/15 text-primary-foreground',\n    progressIndicator: 'bg-primary',\n    avatarStatus: 'border-background',\n  },\n  glass: {\n    panelRoot: 'shadow-[0_24px_80px_hsl(var(--foreground)/0.12)]',\n    stateRoot: 'shadow-[0_24px_80px_hsl(var(--foreground)/0.12)]',\n    noticeBase: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n    tabsPanel: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n    toolbarRoot: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n    descriptionListItem: 'shadow-[0_12px_40px_hsl(var(--foreground)/0.08)]',\n    accordionItem: 'shadow-[0_12px_40px_hsl(var(--foreground)/0.08)]',\n  },\n  'hard-edge': {\n    buttonBase: 'shadow-none',\n    panelRoot: 'shadow-none',\n    stateRoot: 'shadow-none',\n    controlWrapper: 'shadow-none',\n    selectMenu: 'shadow-none',\n    menuContent: 'shadow-none',\n    menuSubContent: 'shadow-none',\n    noticeBase: 'shadow-none',\n    tabsList: 'shadow-none',\n    tabsTriggerActive: 'shadow-none',\n    tabsPanel: 'shadow-none',\n    segmentedRoot: 'shadow-none',\n    segmentedItemActive: 'shadow-none',\n    toolbarRoot: 'shadow-none',\n    descriptionListItem: 'shadow-none',\n    accordionItem: 'shadow-none',\n  },\n};\n\nfunction getPresetDefaults(preset: BaseThemePresetId) {\n  return (\n    presetDefaults[preset as keyof typeof presetDefaults] ?? presetDefaults.default\n  );\n}\n\nconst slotKeys = Object.keys(baseSlots) as Array<keyof BaseThemeSlots>;\n\nfunction mergeSlots(\n  ...sources: Array<Partial<BaseThemeSlots> | undefined>\n): ResolvedSlots {\n  return slotKeys.reduce((resolved, key) => {\n    resolved[key] = cn(...sources.map((source) => source?.[key]));\n    return resolved;\n  }, {} as ResolvedSlots);\n}\n\nfunction mergeStyles(...styleSets: Array<BaseThemeStyles | undefined>) {\n  return Object.assign({}, ...styleSets.filter(Boolean));\n}\n\nexport function resolveBaseAppearance(\n  appearance?: BaseAppearance,\n): BaseResolvedTheme {\n  const preset = appearance?.preset ?? 'default';\n  const variant = appearance?.variant ?? 'default';\n  const defaults = getPresetDefaults(preset);\n  const density = appearance?.density ?? defaults.density ?? 'default';\n  const state = appearance?.state ?? 'idle';\n  const radius = appearance?.radius ?? defaults.radius ?? 'md';\n  const border = appearance?.border ?? defaults.border ?? 'solid';\n  const background = appearance?.background ?? defaults.background ?? 'plain';\n\n  return {\n    preset,\n    variant,\n    density,\n    state,\n    radius,\n    border,\n    background,\n    styles: mergeStyles(emptyStyles, appearance?.styles),\n    slots: mergeSlots(\n      baseSlots,\n      presetSlots[preset],\n      densitySlots[density],\n      radiusSlots[radius],\n      borderSlots[border],\n      backgroundSlots[background],\n      appearance?.slots,\n    ),\n  };\n}\n\nexport function getBaseButtonToneClassName(\n  theme: BaseResolvedTheme,\n  tone: BaseControlTone = 'default',\n  active = false,\n) {\n  return cn(\n    tone === 'default' && theme.slots.buttonDefault,\n    tone === 'primary' && theme.slots.buttonPrimary,\n    tone === 'success' && theme.slots.buttonSuccess,\n    tone === 'warning' && theme.slots.buttonWarning,\n    tone === 'danger' && theme.slots.buttonDanger,\n    tone === 'muted' && theme.slots.buttonMuted,\n    active && theme.slots.buttonActive,\n  );\n}\n\nexport function getBaseBadgeToneClassName(\n  theme: BaseResolvedTheme,\n  tone: BaseControlTone = 'default',\n) {\n  return cn(\n    tone === 'default' && theme.slots.badgeDefault,\n    tone === 'primary' && theme.slots.badgePrimary,\n    tone === 'success' && theme.slots.badgeSuccess,\n    tone === 'warning' && theme.slots.badgeWarning,\n    tone === 'danger' && theme.slots.badgeDanger,\n    tone === 'muted' && theme.slots.badgeMuted,\n  );\n}\n\nexport function getBaseNoticeToneClassName(\n  theme: BaseResolvedTheme,\n  tone: BaseControlTone = 'default',\n) {\n  return cn(\n    tone === 'default' && theme.slots.noticeDefault,\n    tone === 'primary' && theme.slots.noticePrimary,\n    tone === 'success' && theme.slots.noticeSuccess,\n    tone === 'warning' && theme.slots.noticeWarning,\n    tone === 'danger' && theme.slots.noticeDanger,\n    tone === 'muted' && theme.slots.noticeMuted,\n  );\n}\n\nexport function getBaseMenuItemToneClassName(\n  theme: BaseResolvedTheme,\n  tone: BaseControlTone = 'default',\n) {\n  return cn(\n    tone === 'default' && theme.slots.menuItemDefault,\n    tone === 'primary' && theme.slots.menuItemPrimary,\n    tone === 'success' && theme.slots.menuItemSuccess,\n    tone === 'warning' && theme.slots.menuItemWarning,\n    tone === 'danger' && theme.slots.menuItemDanger,\n    tone === 'muted' && theme.slots.menuItemMuted,\n  );\n}\n\nexport function getBaseTypographyToneClassName(\n  theme: BaseResolvedTheme,\n  tone: BaseTypographyTone = 'default',\n) {\n  return cn(\n    tone === 'default' && theme.slots.typographyToneDefault,\n    tone === 'muted' && theme.slots.typographyToneMuted,\n    tone === 'primary' && theme.slots.typographyTonePrimary,\n    tone === 'success' && theme.slots.typographyToneSuccess,\n    tone === 'warning' && theme.slots.typographyToneWarning,\n    tone === 'danger' && theme.slots.typographyToneDanger,\n    tone === 'inherit' && theme.slots.typographyToneInherit,\n  );\n}\n\nexport function getBaseTextSizeClassName(\n  theme: BaseResolvedTheme,\n  size: BaseTypographySize = 'md',\n) {\n  return cn(\n    size === 'xs' && theme.slots.textSizeXs,\n    size === 'sm' && theme.slots.textSizeSm,\n    size === 'md' && theme.slots.textSizeMd,\n    size === 'lg' && theme.slots.textSizeLg,\n    size === 'xl' && theme.slots.textSizeXl,\n  );\n}\n\nexport function getBaseHeadingSizeClassName(\n  theme: BaseResolvedTheme,\n  size: BaseHeadingSize = 'lg',\n) {\n  return cn(\n    size === 'xs' && theme.slots.headingSizeXs,\n    size === 'sm' && theme.slots.headingSizeSm,\n    size === 'md' && theme.slots.headingSizeMd,\n    size === 'lg' && theme.slots.headingSizeLg,\n    size === 'xl' && theme.slots.headingSizeXl,\n    size === '2xl' && theme.slots.headingSize2xl,\n  );\n}\n\nexport function getBaseListSpacingClassName(\n  theme: BaseResolvedTheme,\n  spacing: BaseListSpacing = 'default',\n) {\n  return cn(\n    spacing === 'compact' && theme.slots.listSpacingCompact,\n    spacing === 'default' && theme.slots.listSpacingDefault,\n    spacing === 'relaxed' && theme.slots.listSpacingRelaxed,\n  );\n}\n\nexport function getBaseListMarkerClassName(\n  theme: BaseResolvedTheme,\n  marker: Exclude<BaseListMarker, 'auto'>,\n) {\n  return cn(\n    marker === 'none' && theme.slots.listMarkerNone,\n    marker === 'disc' && theme.slots.listMarkerDisc,\n    marker === 'circle' && theme.slots.listMarkerCircle,\n    marker === 'square' && theme.slots.listMarkerSquare,\n    marker === 'decimal' && theme.slots.listMarkerDecimal,\n    marker === 'lower-alpha' && theme.slots.listMarkerLowerAlpha,\n    marker === 'upper-alpha' && theme.slots.listMarkerUpperAlpha,\n  );\n}\n\nconst cssLengthPattern = /^(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))$/i;\nconst cssLengthFunctions = new Set(['calc', 'clamp', 'max', 'min', 'var']);\nconst unsafeCssValuePattern = /[;{}<>\"'\\\\\\u0000-\\u001f\\u007f]/;\nconst gridTemplateTokenPattern = /(?:\\b(?:auto|fit-content|max-content|min-content|subgrid)\\b|(?:calc|clamp|max|min|minmax|repeat|var)\\s*\\(|(?:^|[\\s,(])(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|fr|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))(?:$|[\\s,)\\]]))/i;\n\nfunction hasBalancedDelimiters(value: string) {\n  const pairs: Record<string, string> = { ')': '(', ']': '[' };\n  const stack: string[] = [];\n\n  for (const character of value) {\n    if (character === '(' || character === '[') {\n      stack.push(character);\n    } else if (character === ')' || character === ']') {\n      if (stack.pop() !== pairs[character]) return false;\n    }\n  }\n\n  return stack.length === 0;\n}\n\nfunction isSupportedCssLengthFunction(value: string) {\n  const match = /^([a-z]+)\\(([\\s\\S]+)\\)$/i.exec(value);\n  if (!match || !cssLengthFunctions.has(match[1].toLowerCase())) return false;\n  if (!match[2].trim() || !hasBalancedDelimiters(value)) return false;\n\n  if (match[1].toLowerCase() === 'var') {\n    return /^\\s*--[a-z0-9_-]+(?:\\s*,[\\s\\S]+)?\\s*$/i.test(match[2]);\n  }\n\n  return cssLengthPattern.test(match[2].trim()) || /\\b(?:calc|clamp|max|min|var)\\s*\\(/i.test(match[2]) || /(?:^|[\\s,(])(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))(?:$|[\\s,)])/i.test(match[2]);\n}\n\nexport function resolveBaseLayoutLength(\n  componentName: string,\n  propName: string,\n  value: BaseLayoutLength,\n) {\n  if (typeof value === 'number') {\n    if (!Number.isFinite(value) || value < 0) {\n      throw new RangeError(\n        `${componentName} ${propName} must be a finite, non-negative number or a supported CSS length string.`,\n      );\n    }\n    return `${value}px`;\n  }\n\n  if (typeof value !== 'string') {\n    throw new TypeError(\n      `${componentName} ${propName} must be a finite, non-negative number or a supported CSS length string.`,\n    );\n  }\n\n  const normalized = value.trim();\n  if (\n    !normalized ||\n    unsafeCssValuePattern.test(normalized) ||\n    (!cssLengthPattern.test(normalized) &&\n      !isSupportedCssLengthFunction(normalized))\n  ) {\n    throw new TypeError(\n      `${componentName} ${propName} must be a non-empty, non-negative CSS length (for example 12px, 1rem, 5%, or var(--space)).`,\n    );\n  }\n\n  return normalized;\n}\n\nexport function resolveBaseGridColumns(value: number | string) {\n  if (typeof value === 'number') {\n    if (!Number.isInteger(value) || value <= 0) {\n      throw new RangeError(\n        'BaseGrid columns must be a positive integer or a supported CSS grid-template-columns string.',\n      );\n    }\n    return `repeat(${value}, minmax(0, 1fr))`;\n  }\n\n  if (typeof value !== 'string') {\n    throw new TypeError(\n      'BaseGrid columns must be a positive integer or a supported CSS grid-template-columns string.',\n    );\n  }\n\n  const normalized = value.trim();\n  if (\n    !normalized ||\n    unsafeCssValuePattern.test(normalized) ||\n    /\\burl\\s*\\(/i.test(normalized) ||\n    !hasBalancedDelimiters(normalized) ||\n    !gridTemplateTokenPattern.test(normalized)\n  ) {\n    throw new TypeError(\n      'BaseGrid columns must be a non-empty CSS grid-template-columns value such as \"12rem minmax(0, 1fr)\" or \"repeat(3, minmax(0, 1fr))\".',\n    );\n  }\n\n  return normalized;\n}\n\ntype BaseLayoutAlignValue =\n  | 'flex-start'\n  | 'center'\n  | 'flex-end'\n  | 'stretch'\n  | 'baseline';\n\ntype BaseLayoutJustifyValue =\n  | 'flex-start'\n  | 'center'\n  | 'flex-end'\n  | 'space-between'\n  | 'space-around'\n  | 'space-evenly';\n\nconst layoutAlignValues: Record<BaseLayoutAlign, BaseLayoutAlignValue> = {\n  start: 'flex-start',\n  center: 'center',\n  end: 'flex-end',\n  stretch: 'stretch',\n  baseline: 'baseline',\n};\n\nconst layoutJustifyValues: Record<\n  BaseLayoutJustify,\n  BaseLayoutJustifyValue\n> = {\n  start: 'flex-start',\n  center: 'center',\n  end: 'flex-end',\n  between: 'space-between',\n  around: 'space-around',\n  evenly: 'space-evenly',\n};\n\nexport function resolveBaseLayoutAlign(\n  componentName: string,\n  value: BaseLayoutAlign,\n): BaseLayoutAlignValue {\n  if (!Object.prototype.hasOwnProperty.call(layoutAlignValues, value)) {\n    throw new TypeError(\n      `${componentName} align must be one of: start, center, end, stretch, baseline.`,\n    );\n  }\n  return layoutAlignValues[value];\n}\n\nexport function resolveBaseLayoutJustify(\n  componentName: string,\n  value: BaseLayoutJustify,\n): BaseLayoutJustifyValue {\n  if (!Object.prototype.hasOwnProperty.call(layoutJustifyValues, value)) {\n    throw new TypeError(\n      `${componentName} justify must be one of: start, center, end, between, around, evenly.`,\n    );\n  }\n  return layoutJustifyValues[value];\n}\n","import { forwardRef, useEffect, useState } from 'react';\n\nimport {\n  useMonkeysBaseAppearance,\n  useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseAvatarProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst sizeClassNames = {\n  sm: 'h-7 w-7 text-xs',\n  md: 'h-9 w-9 text-sm',\n  lg: 'h-12 w-12 text-base',\n} as const;\n\nconst statusClassNames = {\n  online: 'bg-[hsl(var(--success,142_72%_29%))]',\n  busy: 'bg-[hsl(var(--warning,45_93%_47%))]',\n  offline: 'bg-muted-foreground',\n  neutral: 'bg-muted-foreground',\n} as const;\n\nfunction isStatusPreset(status: unknown): status is keyof typeof statusClassNames {\n  return typeof status === 'string' && status in statusClassNames;\n}\n\nfunction getInitials(name?: string) {\n  if (!name) return undefined;\n  const words = name.trim().split(/\\s+/).filter(Boolean);\n  if (!words.length) return undefined;\n  return words\n    .slice(0, 2)\n    .map((word) => word[0]?.toUpperCase())\n    .join('');\n}\n\nexport const BaseAvatar = forwardRef<HTMLDivElement, BaseAvatarProps>(\n  function BaseAvatar(\n    {\n      src,\n      alt,\n      name,\n      initials,\n      icon,\n      status,\n      size = 'md',\n      appearance,\n      className,\n      classNames,\n      style,\n      children,\n      title,\n      ...avatarProps\n    },\n    ref,\n  ) {\n    if (size !== 'sm' && size !== 'md' && size !== 'lg') {\n      throw new TypeError('BaseAvatar size must be \"sm\", \"md\", or \"lg\".');\n    }\n\n    const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n    const componentAttributes = useMonkeysComponentAttributes();\n    const theme = resolveBaseAppearance(resolvedAppearance);\n    const [failedSrc, setFailedSrc] = useState<string>();\n    const imageFailed = Boolean(src && failedSrc === src);\n    const showImage = Boolean(src) && !imageFailed;\n    const generatedInitials = getInitials(name);\n    const fallbackKind = hasRenderableNode(children)\n      ? 'children'\n      : hasRenderableNode(initials)\n        ? 'initials'\n        : hasRenderableNode(generatedInitials)\n          ? 'name'\n          : hasRenderableNode(icon)\n            ? 'icon'\n            : 'default';\n    const fallback = hasRenderableNode(children)\n      ? children\n      : hasRenderableNode(initials)\n        ? initials\n        : hasRenderableNode(generatedInitials)\n          ? generatedInitials\n          : hasRenderableNode(icon)\n            ? icon\n            : '?';\n    const statusKind = isStatusPreset(status)\n      ? status\n      : hasRenderableNode(status)\n        ? 'custom'\n        : undefined;\n\n    useEffect(() => {\n      setFailedSrc(undefined);\n    }, [src]);\n\n    return (\n      <div\n        {...componentAttributes}\n        {...avatarProps}\n        ref={ref}\n        title={title ?? name}\n        data-monkeys-component=\"avatar\"\n        data-slot=\"root\"\n        data-state={showImage ? 'image' : 'fallback'}\n        data-size={size}\n        data-status={statusKind}\n        data-fallback={showImage ? undefined : fallbackKind}\n        className={cn(\n          theme.slots.avatarRoot,\n          sizeClassNames[size],\n          classNames?.root,\n          className,\n        )}\n        style={{\n          ...theme.styles.avatar,\n          ...style,\n        }}\n      >\n        {showImage ? (\n          <img\n            src={src}\n            alt={alt ?? name ?? ''}\n            data-slot=\"image\"\n            data-size={size}\n            data-status={statusKind}\n            className={cn(theme.slots.avatarImage, classNames?.image)}\n            onError={() => setFailedSrc(src)}\n          />\n        ) : (\n          <span\n            data-slot=\"fallback\"\n            data-size={size}\n            data-status={statusKind}\n            data-fallback={fallbackKind}\n            className={cn(\n              theme.slots.avatarFallback,\n              classNames?.fallback,\n              classNames?.text,\n            )}\n          >\n            {fallback}\n          </span>\n        )}\n\n        {isStatusPreset(status) ? (\n          <span\n            aria-hidden=\"true\"\n            data-slot=\"status\"\n            data-size={size}\n            data-status={status}\n            className={cn(\n              theme.slots.avatarStatus,\n              statusClassNames[status],\n              classNames?.status,\n            )}\n          />\n        ) : hasRenderableNode(status) ? (\n          <span\n            data-slot=\"status\"\n            data-size={size}\n            data-status=\"custom\"\n            className={cn(theme.slots.avatarStatus, classNames?.status)}\n          >\n            {status}\n          </span>\n        ) : null}\n      </div>\n    );\n  },\n);\n","import { forwardRef } from 'react';\nimport type { MouseEvent } from 'react';\n\nimport {\n  useMonkeysBaseAppearance,\n  useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport type { BaseButtonProps } from './types';\nimport {\n  getBaseButtonToneClassName,\n  resolveBaseAppearance,\n} from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nconst buttonSizeClassNames = {\n  sm: 'h-8 px-2.5 text-xs',\n  md: 'h-9 px-3 text-sm',\n  lg: 'h-10 px-3.5 text-base',\n} as const;\n\nconst iconOnlySizeClassNames = {\n  sm: 'h-8 w-8 px-0',\n  md: 'h-9 w-9 px-0',\n  lg: 'h-10 w-10 px-0',\n} as const;\n\nconst iconSizeClassNames = {\n  sm: 'h-3.5 w-3.5',\n  md: 'h-4 w-4',\n  lg: 'h-5 w-5',\n} as const;\n\nfunction nonEmptyText(value: string | undefined) {\n  return typeof value === 'string' && value.trim() ? value : undefined;\n}\n\nfunction LoadingIcon() {\n  return (\n    <svg\n      aria-hidden=\"true\"\n      viewBox=\"0 0 24 24\"\n      className=\"h-full w-full motion-safe:animate-spin motion-reduce:animate-none\"\n      fill=\"none\"\n    >\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"9\"\n        className=\"opacity-25\"\n        stroke=\"currentColor\"\n        strokeWidth=\"3\"\n      />\n      <path\n        className=\"opacity-75\"\n        fill=\"currentColor\"\n        d=\"M12 3a9 9 0 0 1 9 9h-3a6 6 0 0 0-6-6V3Z\"\n      />\n    </svg>\n  );\n}\n\nexport const BaseButton = forwardRef<HTMLButtonElement, BaseButtonProps>(\n  function BaseButton(\n    {\n      children,\n      label,\n      icon,\n      endIcon,\n      type = 'button',\n      title,\n      ariaLabel,\n      tone,\n      size,\n      active = false,\n      iconOnly = false,\n      disabled = false,\n      loading = false,\n      stopPropagation = false,\n      appearance,\n      variant,\n      density,\n      state,\n      className,\n      classNames,\n      style,\n      onClick,\n      'aria-label': nativeAriaLabel,\n      ...buttonProps\n    },\n    ref,\n  ) {\n    for (const [name, value] of [\n      ['active', active],\n      ['iconOnly', iconOnly],\n      ['disabled', disabled],\n      ['loading', loading],\n      ['stopPropagation', stopPropagation],\n    ] as const) {\n      if (typeof value !== 'boolean') {\n        throw new TypeError(`BaseButton ${name} must be a boolean.`);\n      }\n    }\n    if (size !== undefined && size !== 'sm' && size !== 'md' && size !== 'lg') {\n      throw new TypeError('BaseButton size must be \"sm\", \"md\", or \"lg\".');\n    }\n    if (\n      tone !== undefined &&\n      tone !== 'default' &&\n      tone !== 'primary' &&\n      tone !== 'success' &&\n      tone !== 'warning' &&\n      tone !== 'danger' &&\n      tone !== 'muted'\n    ) {\n      throw new TypeError(\n        'BaseButton tone must be \"default\", \"primary\", \"success\", \"warning\", \"danger\", or \"muted\".',\n      );\n    }\n\n    const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n    const componentAttributes = useMonkeysComponentAttributes();\n    const theme = resolveBaseAppearance({\n      ...resolvedAppearance,\n      variant,\n      density,\n      state,\n    });\n    const resolvedLabel = children ?? label;\n    const hasLabel =\n      hasRenderableNode(resolvedLabel) &&\n      (typeof resolvedLabel !== 'string' || Boolean(resolvedLabel.trim()));\n    const explicitAriaLabel =\n      nonEmptyText(ariaLabel) ?? nonEmptyText(nativeAriaLabel);\n    const labelText =\n      typeof resolvedLabel === 'string'\n        ? nonEmptyText(resolvedLabel)\n        : undefined;\n    const resolvedTitle = nonEmptyText(title);\n    if (iconOnly && !hasLabel && !explicitAriaLabel && !resolvedTitle) {\n      throw new TypeError(\n        'BaseButton iconOnly requires ariaLabel, aria-label, title, or a renderable label.',\n      );\n    }\n    const resolvedAriaLabel =\n      explicitAriaLabel ??\n      labelText ??\n      resolvedTitle;\n    const resolvedDisabled = disabled || loading;\n    const resolvedTone = tone ?? 'default';\n    const resolvedState = state ?? (loading\n      ? 'loading'\n      : disabled\n        ? 'disabled'\n        : active\n          ? 'active'\n          : 'idle');\n\n    const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n      if (stopPropagation) {\n        event.stopPropagation();\n      }\n      if (resolvedDisabled) return;\n      onClick?.(event);\n    };\n\n    return (\n      <button\n        {...componentAttributes}\n        {...buttonProps}\n        ref={ref}\n        type={type}\n        title={title}\n        aria-label={resolvedAriaLabel}\n        aria-pressed={active || undefined}\n        aria-busy={loading || undefined}\n        data-variant={theme.variant}\n        data-density={theme.density}\n        disabled={resolvedDisabled}\n        data-monkeys-component=\"button\"\n        data-slot=\"root\"\n        data-state={resolvedState}\n        data-tone={resolvedTone}\n        data-size={size}\n        data-active={active || undefined}\n        data-loading={loading || undefined}\n        data-disabled={resolvedDisabled || undefined}\n        data-icon-only={iconOnly || undefined}\n        className={cn(\n          theme.slots.buttonBase,\n          iconOnly && theme.slots.buttonIconOnly,\n          size && buttonSizeClassNames[size],\n          iconOnly && size && iconOnlySizeClassNames[size],\n          getBaseButtonToneClassName(theme, tone, active),\n          resolvedDisabled && theme.slots.buttonDisabled,\n          classNames?.root,\n          className,\n        )}\n        style={{\n          ...theme.styles.button,\n          ...(active ? theme.styles.buttonActive : undefined),\n          ...(resolvedDisabled ? theme.styles.buttonDisabled : undefined),\n          ...style,\n        }}\n        onClick={handleClick}\n      >\n        {loading ? (\n          <span\n            data-slot=\"icon\"\n            data-state={resolvedState}\n            data-tone={resolvedTone}\n            data-size={size}\n            className={cn(\n              theme.slots.buttonIcon,\n              size && iconSizeClassNames[size],\n              classNames?.icon,\n            )}\n          >\n            <LoadingIcon />\n          </span>\n        ) : icon ? (\n          <span\n            data-slot=\"icon\"\n            data-state={resolvedState}\n            data-tone={resolvedTone}\n            data-size={size}\n            className={cn(\n              theme.slots.buttonIcon,\n              size && iconSizeClassNames[size],\n              classNames?.icon,\n            )}\n          >\n            {icon}\n          </span>\n        ) : null}\n        {iconOnly ? (\n          hasRenderableNode(resolvedLabel) ? (\n            <span\n              data-slot=\"label\"\n              data-state={resolvedState}\n              data-tone={resolvedTone}\n              data-size={size}\n              className=\"sr-only\"\n            >\n              {resolvedLabel}\n            </span>\n          ) : null\n        ) : hasRenderableNode(resolvedLabel) ? (\n          <span\n            data-slot=\"label\"\n            data-state={resolvedState}\n            data-tone={resolvedTone}\n            data-size={size}\n            className={cn(theme.slots.buttonLabel, classNames?.label)}\n          >\n            {resolvedLabel}\n          </span>\n        ) : null}\n        {!loading && endIcon ? (\n          <span\n            data-slot=\"end-icon\"\n            data-state={resolvedState}\n            data-tone={resolvedTone}\n            data-size={size}\n            className={cn(\n              theme.slots.buttonIcon,\n              size && iconSizeClassNames[size],\n              classNames?.icon,\n              classNames?.endIcon,\n            )}\n          >\n            {endIcon}\n          </span>\n        ) : null}\n      </button>\n    );\n  },\n);\n","import { useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n  useMonkeysEnvironment,\n  useMonkeysPortalOptions,\n} from '../../provider/context';\nimport type { BasePortalContainer, BasePortalProps } from './types';\n\nfunction resolveContainerValue(\n  value: BasePortalContainer,\n  source: string,\n): Element | null {\n  const candidate = typeof value === 'function' ? value() : value;\n  if (candidate === null) return null;\n  if (\n    !candidate ||\n    typeof candidate !== 'object' ||\n    candidate.nodeType !== 1\n  ) {\n    throw new TypeError(`${source} must resolve to an Element or null.`);\n  }\n  return candidate;\n}\n\ninterface ResolveBasePortalContainerOptions {\n  explicitProvided: boolean;\n  explicitContainer?: BasePortalContainer;\n  providerProvided: boolean;\n  providerContainer?: BasePortalContainer;\n  getDocument?: () => Document | null;\n}\n\nexport function resolveBasePortalContainer({\n  explicitProvided,\n  explicitContainer,\n  providerProvided,\n  providerContainer,\n  getDocument,\n}: ResolveBasePortalContainerOptions): Element | null {\n  if (explicitProvided) {\n    return resolveContainerValue(\n      explicitContainer as BasePortalContainer,\n      'BasePortal container',\n    );\n  }\n  if (providerProvided) {\n    return resolveContainerValue(\n      providerContainer as BasePortalContainer,\n      'MonkeysProvider portal.container',\n    );\n  }\n  if (!getDocument) return null;\n\n  const ownerDocument = getDocument();\n  if (ownerDocument === null) return null;\n  if (\n    !ownerDocument ||\n    typeof ownerDocument !== 'object' ||\n    !('body' in ownerDocument)\n  ) {\n    throw new TypeError(\n      'MonkeysProvider environment.getDocument must resolve to a Document or null.',\n    );\n  }\n  return resolveContainerValue(\n    ownerDocument.body,\n    'MonkeysProvider environment.getDocument().body',\n  );\n}\n\nexport function BasePortal(props: BasePortalProps) {\n  const environment = useMonkeysEnvironment();\n  const portalOptions = useMonkeysPortalOptions();\n  const [mounted, setMounted] = useState(false);\n\n  useEffect(() => {\n    setMounted(true);\n  }, []);\n\n  if (props.disabled !== undefined && typeof props.disabled !== 'boolean') {\n    throw new TypeError('BasePortal disabled must be a boolean.');\n  }\n  if (props.inline !== undefined && typeof props.inline !== 'boolean') {\n    throw new TypeError('BasePortal inline must be a boolean.');\n  }\n\n  const disabled = props.disabled ?? portalOptions.disabled ?? false;\n  if (!mounted || disabled || props.inline) {\n    return <>{props.children}</>;\n  }\n\n  const container = resolveBasePortalContainer({\n    explicitProvided: props.container !== undefined,\n    explicitContainer: props.container,\n    providerProvided: portalOptions.container !== undefined,\n    providerContainer: portalOptions.container,\n    getDocument: environment.getDocument,\n  });\n\n  return container\n    ? createPortal(props.children, container)\n    : <>{props.children}</>;\n}\n","import { useEffect, useState, type ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n  useMonkeysEnvironment,\n  useMonkeysPortalOptions,\n  type MonkeysPortalContainer,\n} from '../../../provider/context';\nimport { resolveBasePortalContainer } from '../BasePortal';\n\ninterface ResolveBaseOverlayPortalStateOptions {\n  mounted: boolean;\n  explicitDisabled?: boolean;\n  explicitContainer?: MonkeysPortalContainer;\n  providerDisabled?: boolean;\n  providerContainer?: MonkeysPortalContainer;\n  getDocument?: () => Document | null;\n}\n\ninterface BaseOverlayPortalInlineState {\n  mounted: boolean;\n  disabled: boolean;\n  shouldPortal: false;\n  container: null;\n  radixPortalProps: undefined;\n}\n\ninterface BaseOverlayPortalReadyState {\n  mounted: true;\n  disabled: false;\n  shouldPortal: true;\n  container: Element;\n  radixPortalProps: Readonly<{ container: Element }>;\n}\n\nexport type BaseOverlayPortalState =\n  | BaseOverlayPortalInlineState\n  | BaseOverlayPortalReadyState;\n\nexport function resolveBaseOverlayPortalState({\n  mounted,\n  explicitDisabled,\n  explicitContainer,\n  providerDisabled,\n  providerContainer,\n  getDocument,\n}: ResolveBaseOverlayPortalStateOptions): BaseOverlayPortalState {\n  const disabled = explicitDisabled ?? providerDisabled ?? false;\n  if (!mounted || disabled) {\n    return {\n      mounted,\n      disabled,\n      shouldPortal: false,\n      container: null,\n      radixPortalProps: undefined,\n    };\n  }\n\n  const container = resolveBasePortalContainer({\n    explicitProvided: explicitContainer !== undefined,\n    explicitContainer,\n    providerProvided: providerContainer !== undefined,\n    providerContainer,\n    getDocument,\n  });\n\n  if (!container) {\n    return {\n      mounted: true,\n      disabled: false,\n      shouldPortal: false,\n      container: null,\n      radixPortalProps: undefined,\n    };\n  }\n\n  return {\n    mounted: true,\n    disabled: false,\n    shouldPortal: true,\n    container,\n    radixPortalProps: Object.freeze({ container }),\n  };\n}\n\nexport interface UseBaseOverlayPortalOptions {\n  container?: MonkeysPortalContainer;\n  disabled?: boolean;\n}\n\nfunction getDefaultDocument(): Document | null {\n  return globalThis.document ?? null;\n}\n\nexport function useBaseOverlayPortal(\n  options: UseBaseOverlayPortalOptions = {},\n): BaseOverlayPortalState {\n  const environment = useMonkeysEnvironment();\n  const portalOptions = useMonkeysPortalOptions();\n  const [mounted, setMounted] = useState(false);\n\n  useEffect(() => {\n    setMounted(true);\n  }, []);\n\n  return resolveBaseOverlayPortalState({\n    mounted,\n    explicitDisabled: options.disabled,\n    explicitContainer: options.container,\n    providerDisabled: portalOptions.disabled,\n    providerContainer: portalOptions.container,\n    getDocument: environment.getDocument ?? getDefaultDocument,\n  });\n}\n\nexport interface BaseOverlayPortalProps extends UseBaseOverlayPortalOptions {\n  children?: ReactNode;\n}\n\nexport function renderBaseOverlayPortalContent(\n  children: ReactNode,\n  portal: BaseOverlayPortalState,\n) {\n  return portal.shouldPortal\n    ? createPortal(children, portal.container)\n    : <>{children}</>;\n}\n\nexport function BaseOverlayPortal({\n  children,\n  container,\n  disabled,\n}: BaseOverlayPortalProps) {\n  const portal = useBaseOverlayPortal({ container, disabled });\n  return renderBaseOverlayPortalContent(children, portal);\n}\n","import * as Tooltip from '@radix-ui/react-tooltip';\nimport {\n  Fragment,\n  forwardRef,\n  isValidElement,\n  useState,\n  type ReactNode,\n} from 'react';\n\nimport {\n  useMonkeysBaseAppearance,\n  useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { useBaseOverlayPortal } from './internal/overlayPortal';\nimport type { BaseTooltipPlacement, BaseTooltipProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction validateBoolean(value: unknown, name: string) {\n  if (typeof value !== 'boolean') {\n    throw new TypeError(`BaseTooltip ${name} must be a boolean.`);\n  }\n}\n\nfunction validatePlacement(value: unknown) {\n  if (\n    value !== 'top' &&\n    value !== 'bottom' &&\n    value !== 'left' &&\n    value !== 'right'\n  ) {\n    throw new TypeError(\n      'BaseTooltip placement must be \"top\", \"bottom\", \"left\", or \"right\".',\n    );\n  }\n}\n\nfunction normalizeTrigger(children: ReactNode, disabled: boolean) {\n  if (isValidElement(children) && children.type !== Fragment) {\n    return children;\n  }\n\n  return (\n    <span tabIndex={!disabled && hasRenderableNode(children) ? 0 : undefined}>\n      {children}\n    </span>\n  );\n}\n\nexport const BaseTooltip = forwardRef<HTMLSpanElement, BaseTooltipProps>(\n  function BaseTooltip(\n    {\n      content,\n      children,\n      open,\n      defaultOpen = false,\n      placement = 'top',\n      disabled = false,\n      portal = false,\n      appearance,\n      className,\n      classNames,\n      style,\n      onOpenChange,\n      ...tooltipProps\n    },\n    ref,\n  ) {\n    if (open !== undefined) validateBoolean(open, 'open');\n    validateBoolean(defaultOpen, 'defaultOpen');\n    validateBoolean(disabled, 'disabled');\n    validateBoolean(portal, 'portal');\n    validatePlacement(placement);\n\n    const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n    const componentAttributes = useMonkeysComponentAttributes();\n    const theme = resolveBaseAppearance(resolvedAppearance);\n    const overlayPortal = useBaseOverlayPortal({ disabled: !portal });\n    const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n    const isControlled = open !== undefined;\n    const canShow = !disabled && hasRenderableNode(content);\n    const requestedOpen = isControlled ? open : uncontrolledOpen;\n    const isOpen = canShow && requestedOpen;\n    const portalState =\n      portal && overlayPortal.shouldPortal ? 'portaled' : 'inline';\n\n    const handleOpenChange = (nextOpen: boolean) => {\n      if (nextOpen && !canShow) return;\n      if (!isControlled) {\n        setUncontrolledOpen(nextOpen);\n      }\n      onOpenChange?.(nextOpen);\n    };\n\n    const trigger = normalizeTrigger(children, disabled);\n    const tooltipContent = canShow ? (\n      <Tooltip.Content\n        {...componentAttributes}\n        side={placement}\n        sideOffset={8}\n        collisionPadding={8}\n        data-monkeys-component=\"tooltip\"\n        data-slot=\"content\"\n        data-placement={placement}\n        data-portal={portalState}\n        data-disabled={disabled || undefined}\n        className={cn(theme.slots.tooltipContent, classNames?.content)}\n        style={theme.styles.tooltip}\n      >\n        {content}\n      </Tooltip.Content>\n    ) : null;\n\n    return (\n      <span\n        {...componentAttributes}\n        {...tooltipProps}\n        ref={ref}\n        data-monkeys-component=\"tooltip\"\n        data-slot=\"root\"\n        data-state={isOpen ? 'open' : 'closed'}\n        data-placement={placement}\n        data-portal={portalState}\n        data-disabled={disabled || undefined}\n        className={cn(theme.slots.tooltipRoot, classNames?.root, className)}\n        style={style}\n      >\n        <Tooltip.Provider\n          delayDuration={0}\n          skipDelayDuration={0}\n          disableHoverableContent\n        >\n          <Tooltip.Root\n            open={isOpen}\n            onOpenChange={handleOpenChange}\n            delayDuration={0}\n            disableHoverableContent\n          >\n            <span\n              {...componentAttributes}\n              data-monkeys-component=\"tooltip\"\n              data-slot=\"trigger-wrapper\"\n              data-state={isOpen ? 'open' : 'closed'}\n              data-placement={placement}\n              data-portal={portalState}\n              data-disabled={disabled || undefined}\n              className={cn(theme.slots.tooltipTrigger, classNames?.trigger)}\n            >\n              <Tooltip.Trigger\n                asChild\n                {...componentAttributes}\n                data-monkeys-component=\"tooltip\"\n                data-slot=\"trigger\"\n                data-placement={placement}\n                data-portal={portalState}\n                data-disabled={disabled || undefined}\n              >\n                {trigger}\n              </Tooltip.Trigger>\n            </span>\n            {portal && overlayPortal.shouldPortal ? (\n              <Tooltip.Portal {...overlayPortal.radixPortalProps}>\n                {tooltipContent}\n              </Tooltip.Portal>\n            ) : (\n              tooltipContent\n            )}\n          </Tooltip.Root>\n        </Tooltip.Provider>\n      </span>\n    );\n  },\n);\n","export type OverlaySurfaceRole = 'menu' | 'dialog';\n\nconst overlaySurfaceRoleClassNames: Record<OverlaySurfaceRole, string> = {\n  // Keep the public utilities in the built stylesheet and tailwind-merge graph.\n  menu: 'monkeys-overlay-surface--menu bg-menu-surface text-popover-foreground',\n  dialog: 'monkeys-overlay-surface--dialog bg-dialog-surface text-foreground',\n};\n\nexport function getOverlaySurfaceClassName(\n  role: OverlaySurfaceRole,\n  options: { rounded?: boolean } = {},\n) {\n  return [\n    'monkeys-overlay-surface',\n    overlaySurfaceRoleClassNames[role],\n    options.rounded === false ? undefined : 'monkeys-overlay-surface--rounded',\n  ]\n    .filter(Boolean)\n    .join(' ');\n}\n","import {\n  forwardRef,\n  type ComponentPropsWithoutRef,\n  type CSSProperties,\n  type ReactNode,\n} from \"react\";\n\nimport { cn } from \"../base/utils\";\n\nexport interface AppShellSidebarClassNames {\n  root?: string;\n  header?: string;\n  navigation?: string;\n  footer?: string;\n}\n\nexport interface AppShellSidebarProps extends Omit<\n  ComponentPropsWithoutRef<\"aside\">,\n  \"children\"\n> {\n  /**\n   * Primary navigation content. Routing, permissions and navigation state stay\n   * with the consuming application.\n   */\n  navigation: ReactNode;\n  /** Optional content placed above the primary navigation. */\n  header?: ReactNode;\n  /** Optional utility area kept separate from the primary navigation. */\n  footer?: ReactNode;\n  /** Width override. Defaults to the component token, then 16rem. */\n  width?: CSSProperties[\"width\"];\n  classNames?: AppShellSidebarClassNames;\n}\n\nconst rootTokenStyles: CSSProperties = {\n  width: \"var(--monkeys-component-app-shell-sidebar-width, 16rem)\",\n  borderRadius:\n    \"var(--monkeys-component-app-shell-sidebar-radius, var(--radius, 0.75rem))\",\n  background:\n    \"var(--monkeys-component-app-shell-sidebar-background, hsl(var(--card)))\",\n  color:\n    \"var(--monkeys-component-app-shell-sidebar-foreground, hsl(var(--card-foreground)))\",\n  borderColor:\n    \"var(--monkeys-component-app-shell-sidebar-border-color, hsl(var(--border)))\",\n  boxShadow: \"var(--monkeys-component-app-shell-sidebar-shadow, none)\",\n};\n\nconst headerTokenStyles: CSSProperties = {\n  padding:\n    \"var(--monkeys-component-app-shell-sidebar-header-padding, var(--global-spacing, 0.75rem))\",\n  borderColor:\n    \"var(--monkeys-component-app-shell-sidebar-header-border-color, hsl(var(--border)))\",\n};\n\nconst navigationTokenStyles: CSSProperties & {\n  \"--monkeys-component-accordion-item-border-color\": string;\n} = {\n  padding:\n    \"var(--monkeys-component-app-shell-sidebar-navigation-padding, var(--global-spacing, 0.75rem))\",\n  \"--monkeys-component-accordion-item-border-color\": \"transparent\",\n};\n\nconst footerTokenStyles: CSSProperties = {\n  padding:\n    \"var(--monkeys-component-app-shell-sidebar-footer-padding, var(--global-spacing, 0.75rem))\",\n  background:\n    \"var(--monkeys-component-app-shell-sidebar-footer-background, hsl(var(--muted) / 0.22))\",\n  borderColor:\n    \"var(--monkeys-component-app-shell-sidebar-footer-border-color, hsl(var(--border)))\",\n};\n\n/**\n * Persistent, outermost application navigation surface.\n *\n * This is intentionally a single shell component rather than a composition of\n * generic sidebar primitives. It owns the surface hierarchy while applications\n * retain routing and navigation behavior inside the semantic slots.\n */\nexport const AppShellSidebar = forwardRef<HTMLElement, AppShellSidebarProps>(\n  function AppShellSidebar(\n    {\n      navigation,\n      header,\n      footer,\n      width,\n      className,\n      classNames,\n      style,\n      \"aria-label\": ariaLabel = \"Application navigation\",\n      ...props\n    },\n    ref,\n  ) {\n    return (\n      <aside\n        ref={ref}\n        aria-label={ariaLabel}\n        data-app-shell-sidebar=\"\"\n        className={cn(\n          \"relative isolate flex h-full min-h-0 shrink-0 flex-col overflow-hidden border\",\n          classNames?.root,\n          className,\n        )}\n        style={{\n          ...rootTokenStyles,\n          ...(width === undefined ? null : { width }),\n          ...style,\n        }}\n        {...props}\n      >\n        {header ? (\n          <div\n            data-slot=\"header\"\n            className={cn(\"shrink-0 border-b\", classNames?.header)}\n            style={headerTokenStyles}\n          >\n            {header}\n          </div>\n        ) : null}\n\n        <div\n          data-slot=\"navigation\"\n          className={cn(\n            \"relative min-h-0 flex-1 overflow-hidden\",\n            classNames?.navigation,\n          )}\n          style={navigationTokenStyles}\n        >\n          {navigation}\n        </div>\n\n        {footer ? (\n          <div\n            data-slot=\"footer\"\n            className={cn(\"shrink-0 border-t\", classNames?.footer)}\n            style={footerTokenStyles}\n          >\n            {footer}\n          </div>\n        ) : null}\n      </aside>\n    );\n  },\n);\n\nAppShellSidebar.displayName = \"AppShellSidebar\";\n","import type { ReactNode } from 'react';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\n\nimport {\n  BaseAvatar,\n  BaseButton,\n  cn,\n  type BaseAppearance,\n} from '../base';\n\nexport type UserAccountMenuRadius =\n  | 'default'\n  | 'none'\n  | 'sm'\n  | 'md'\n  | 'lg'\n  | 'xl'\n  | 'full';\n\nexport type UserAccountMenuSide = 'top' | 'right' | 'bottom' | 'left';\nexport type UserAccountMenuTriggerVariant = 'avatar' | 'profile';\n\nexport interface UserAccountMenuUser {\n  avatarAlt?: string;\n  avatarUrl?: string;\n  initials?: string;\n  name?: string;\n  secondaryText?: ReactNode;\n}\n\nexport interface UserAccountMenuSelectorOption {\n  disabled?: boolean;\n  icon?: ReactNode;\n  label: ReactNode;\n  value: string;\n}\n\nexport interface UserAccountMenuSelectorConfig {\n  contentWidthClassName?: string;\n  disabled?: boolean;\n  id?: string;\n  icon?: ReactNode;\n  label: ReactNode;\n  onChange?: (value: string) => void;\n  options: UserAccountMenuSelectorOption[];\n  value: string;\n  visible?: boolean;\n}\n\nexport interface UserAccountMenuItem {\n  disabled?: boolean;\n  icon?: ReactNode;\n  id: string;\n  label: ReactNode;\n  onSelect?: () => void;\n  separatorBefore?: boolean;\n  shortcut?: ReactNode;\n  tone?: 'default' | 'danger';\n  visible?: boolean;\n}\n\nexport interface UserAccountMenuClassNames {\n  avatar?: string;\n  content?: string;\n  dangerItem?: string;\n  item?: string;\n  itemIcon?: string;\n  label?: string;\n  root?: string;\n  secondaryText?: string;\n  separator?: string;\n  subContent?: string;\n  subTrigger?: string;\n  trigger?: string;\n  userName?: string;\n}\n\nexport interface UserAccountMenuProps {\n  align?: 'start' | 'center' | 'end';\n  appearance?: BaseAppearance;\n  ariaLabel?: string;\n  className?: string;\n  classNames?: UserAccountMenuClassNames;\n  contentWidthClassName?: string;\n  fallbackName?: string;\n  items?: UserAccountMenuItem[];\n  menuRadius?: UserAccountMenuRadius;\n  selectors?: UserAccountMenuSelectorConfig[];\n  side?: UserAccountMenuSide;\n  sideOffset?: number;\n  triggerEndIcon?: ReactNode;\n  triggerTitle?: string;\n  triggerVariant?: UserAccountMenuTriggerVariant;\n  user: UserAccountMenuUser;\n}\n\nconst defaultAppearance: BaseAppearance = {\n  preset: 'soft',\n  density: 'compact',\n  radius: 'lg',\n  border: 'subtle',\n  background: 'soft',\n};\n\nconst radiusClassNames: Record<UserAccountMenuRadius, string> = {\n  default: 'rounded-md',\n  none: 'rounded-none',\n  sm: 'rounded-sm',\n  md: 'rounded-md',\n  lg: 'rounded-lg',\n  xl: 'rounded-xl',\n  full: 'rounded-full',\n};\n\nfunction CheckIcon() {\n  return (\n    <svg\n      aria-hidden=\"true\"\n      className=\"h-3 w-3\"\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      strokeWidth=\"2.25\"\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n    >\n      <path d=\"M20 6 9 17l-5-5\" />\n    </svg>\n  );\n}\n\nfunction MoreIcon() {\n  return (\n    <svg\n      aria-hidden=\"true\"\n      className=\"h-4 w-4\"\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      strokeWidth=\"2\"\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n    >\n      <circle cx=\"12\" cy=\"12\" r=\"1\" />\n      <circle cx=\"19\" cy=\"12\" r=\"1\" />\n      <circle cx=\"5\" cy=\"12\" r=\"1\" />\n    </svg>\n  );\n}\n\nfunction renderIcon(icon: ReactNode, className?: string) {\n  if (!icon) return null;\n  return (\n    <span className={cn('inline-flex h-4 w-4 shrink-0 items-center justify-center', className)}>\n      {icon}\n    </span>\n  );\n}\n\nfunction getCurrentOptionLabel(selector: UserAccountMenuSelectorConfig) {\n  return selector.options.find((option) => option.value === selector.value)?.label ?? selector.value;\n}\n\nfunction UserAccountMenuSelector({\n  classNames,\n  menuRadius,\n  selector,\n}: {\n  classNames?: UserAccountMenuClassNames;\n  menuRadius: UserAccountMenuRadius;\n  selector: UserAccountMenuSelectorConfig;\n}) {\n  if (selector.visible === false || selector.options.length === 0) return null;\n\n  const radiusClass = radiusClassNames[menuRadius];\n  const currentLabel = getCurrentOptionLabel(selector);\n\n  return (\n    <DropdownMenu.Sub>\n      <DropdownMenu.SubTrigger\n        disabled={selector.disabled}\n        className={cn(\n          'relative flex cursor-pointer select-none items-center gap-2 px-2 py-2 text-sm outline-none transition-colors hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))] data-[state=open]:bg-[hsl(var(--accent))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n          radiusClass,\n          classNames?.subTrigger,\n        )}\n      >\n        {renderIcon(selector.icon)}\n        <span className=\"min-w-0 truncate\">{selector.label}</span>\n        <span className=\"ml-auto min-w-0 max-w-[7rem] truncate text-xs text-[hsl(var(--muted-foreground))]\">\n          {currentLabel}\n        </span>\n      </DropdownMenu.SubTrigger>\n      <DropdownMenu.Portal>\n        <DropdownMenu.SubContent\n          sideOffset={8}\n          className={cn(\n            'z-50 min-w-40 border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1.5 text-[hsl(var(--popover-foreground))] shadow-md animate-in fade-in-0 zoom-in-95',\n            radiusClass,\n            selector.contentWidthClassName,\n            classNames?.subContent,\n          )}\n        >\n          <DropdownMenu.RadioGroup value={selector.value} onValueChange={selector.onChange}>\n            {selector.options.map((option) => (\n              <DropdownMenu.RadioItem\n                key={option.value}\n                value={option.value}\n                disabled={option.disabled}\n                className={cn(\n                  'relative flex cursor-pointer select-none items-center gap-2 px-2 py-2 pl-8 text-sm outline-none transition-colors hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n                  radiusClass,\n                  classNames?.item,\n                )}\n              >\n                <DropdownMenu.ItemIndicator className=\"absolute left-2 inline-flex h-4 w-4 items-center justify-center\">\n                  <CheckIcon />\n                </DropdownMenu.ItemIndicator>\n                {renderIcon(option.icon, classNames?.itemIcon)}\n                <span className=\"min-w-0 truncate\">{option.label}</span>\n              </DropdownMenu.RadioItem>\n            ))}\n          </DropdownMenu.RadioGroup>\n        </DropdownMenu.SubContent>\n      </DropdownMenu.Portal>\n    </DropdownMenu.Sub>\n  );\n}\n\nexport function UserAccountMenu({\n  align = 'end',\n  appearance = defaultAppearance,\n  ariaLabel,\n  className,\n  classNames,\n  contentWidthClassName = 'w-56',\n  fallbackName = 'User',\n  items = [],\n  menuRadius = 'default',\n  selectors = [],\n  side = 'bottom',\n  sideOffset = 8,\n  triggerEndIcon,\n  triggerTitle,\n  triggerVariant = 'avatar',\n  user,\n}: UserAccountMenuProps) {\n  const displayName = user.name?.trim() || fallbackName;\n  const radiusClass = radiusClassNames[menuRadius];\n  const visibleSelectors = selectors.filter(\n    (selector) => selector.visible !== false && selector.options.length > 0,\n  );\n  const visibleItems = items.filter((item) => item.visible !== false);\n  const hasMenuBody = visibleSelectors.length > 0 || visibleItems.length > 0;\n\n  const avatar = (\n    <BaseAvatar\n      appearance={appearance}\n      alt={user.avatarAlt ?? displayName}\n      className={cn('h-8 w-8', classNames?.avatar)}\n      initials={user.initials}\n      name={displayName}\n      size=\"sm\"\n      src={user.avatarUrl}\n    />\n  );\n  const isProfileTrigger = triggerVariant === 'profile';\n\n  return (\n    <DropdownMenu.Root>\n      <DropdownMenu.Trigger asChild>\n        <BaseButton\n          appearance={appearance}\n          ariaLabel={ariaLabel ?? displayName}\n          className={cn(\n            isProfileTrigger\n              ? 'h-auto w-full justify-start rounded-lg border-transparent bg-transparent px-2 py-2 text-left shadow-none transition-all hover:bg-[hsl(var(--muted))]/60'\n              : 'h-9 w-9 overflow-visible rounded-full border-transparent bg-transparent p-0 shadow-none transition-all hover:ring-2 hover:ring-[hsl(var(--ring))]/20',\n            className,\n            classNames?.root,\n            classNames?.trigger,\n          )}\n          classNames={{\n            icon: 'h-8 w-8',\n            label: isProfileTrigger ? 'min-w-0 flex-1 text-left' : undefined,\n          }}\n          endIcon={isProfileTrigger ? (triggerEndIcon ?? <MoreIcon />) : undefined}\n          icon={avatar}\n          iconOnly={!isProfileTrigger}\n          label={\n            isProfileTrigger ? (\n              <span className=\"flex min-w-0 flex-col items-start\">\n                <span className=\"max-w-full truncate text-sm font-medium leading-none text-[hsl(var(--foreground))]\">\n                  {displayName}\n                </span>\n                {user.secondaryText ? (\n                  <span className=\"mt-1 max-w-full truncate text-xs leading-none text-[hsl(var(--muted-foreground))]\">\n                    {user.secondaryText}\n                  </span>\n                ) : null}\n              </span>\n            ) : undefined\n          }\n          title={triggerTitle ?? displayName}\n          tone=\"muted\"\n        />\n      </DropdownMenu.Trigger>\n      <DropdownMenu.Portal>\n        <DropdownMenu.Content\n          align={align}\n          side={side}\n          sideOffset={sideOffset}\n          className={cn(\n            'z-50 border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1.5 text-[hsl(var(--popover-foreground))] shadow-md animate-in fade-in-0 zoom-in-95',\n            contentWidthClassName,\n            radiusClass,\n            classNames?.content,\n          )}\n        >\n          <DropdownMenu.Label className={cn('px-2 py-1.5 font-normal', classNames?.label)}>\n            <div className=\"flex min-w-0 items-center gap-2\">\n              {avatar}\n              <div className=\"flex min-w-0 flex-col\">\n                <span className={cn('truncate text-sm font-medium leading-none', classNames?.userName)}>\n                  {displayName}\n                </span>\n                {user.secondaryText ? (\n                  <span\n                    className={cn(\n                      'truncate pt-1 text-xs leading-none text-[hsl(var(--muted-foreground))]',\n                      classNames?.secondaryText,\n                    )}\n                  >\n                    {user.secondaryText}\n                  </span>\n                ) : null}\n              </div>\n            </div>\n          </DropdownMenu.Label>\n\n          {hasMenuBody ? (\n            <DropdownMenu.Separator\n              className={cn('my-1 h-px bg-[hsl(var(--border))]', classNames?.separator)}\n            />\n          ) : null}\n\n          {visibleSelectors.map((selector, index) => (\n            <UserAccountMenuSelector\n              key={selector.id ?? `selector-${index}`}\n              classNames={classNames}\n              menuRadius={menuRadius}\n              selector={selector}\n            />\n          ))}\n\n          {visibleSelectors.length > 0 && visibleItems.length > 0 ? (\n            <DropdownMenu.Separator\n              className={cn('my-1 h-px bg-[hsl(var(--border))]', classNames?.separator)}\n            />\n          ) : null}\n\n          {visibleItems.map((item) => (\n            <div key={item.id}>\n              {item.separatorBefore ? (\n                <DropdownMenu.Separator\n                  className={cn('my-1 h-px bg-[hsl(var(--border))]', classNames?.separator)}\n                />\n              ) : null}\n              <DropdownMenu.Item\n                disabled={item.disabled}\n                onSelect={item.disabled ? undefined : item.onSelect}\n                className={cn(\n                  'relative flex cursor-pointer select-none items-center gap-2 px-2 py-2 text-sm outline-none transition-colors hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n                  radiusClass,\n                  item.tone === 'danger' &&\n                    'text-[hsl(var(--destructive))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--destructive))] focus:text-[hsl(var(--destructive))]',\n                  classNames?.item,\n                  item.tone === 'danger' && classNames?.dangerItem,\n                )}\n              >\n                {renderIcon(item.icon, classNames?.itemIcon)}\n                <span className=\"min-w-0 flex-1 truncate\">{item.label}</span>\n                {item.shortcut ? (\n                  <span className=\"ml-3 shrink-0 text-xs text-[hsl(var(--muted-foreground))]\">\n                    {item.shortcut}\n                  </span>\n                ) : null}\n              </DropdownMenu.Item>\n            </div>\n          ))}\n        </DropdownMenu.Content>\n      </DropdownMenu.Portal>\n    </DropdownMenu.Root>\n  );\n}\n","import {\n  Fragment,\n  useEffect,\n  useRef,\n  useState,\n  type CSSProperties,\n  type ReactNode,\n  type SyntheticEvent,\n} from \"react\";\nimport * as DropdownMenu from \"@radix-ui/react-dropdown-menu\";\nimport { BaseButton, BaseTooltip, type BaseAppearance } from \"../base\";\nimport { useMonkeysComponentAttributes } from \"../../provider/context\";\nimport { getOverlaySurfaceClassName } from \"../primitives/internal/overlaySurface\";\nexport { AppShellSidebar } from \"./AppShellSidebar\";\nexport type {\n  AppShellSidebarClassNames,\n  AppShellSidebarProps,\n} from \"./AppShellSidebar\";\nexport { UserAccountMenu } from \"./UserAccountMenu\";\nexport type {\n  UserAccountMenuClassNames,\n  UserAccountMenuItem,\n  UserAccountMenuProps,\n  UserAccountMenuRadius,\n  UserAccountMenuSelectorConfig,\n  UserAccountMenuSelectorOption,\n  UserAccountMenuSide,\n  UserAccountMenuTriggerVariant,\n  UserAccountMenuUser,\n} from \"./UserAccountMenu\";\n\n// ============================================================\n// cn utility (inline clsx + tailwind-merge–lite for zero deps)\n// ============================================================\nexport function cn(...inputs: (string | undefined | null | false)[]): string {\n  return inputs.filter(Boolean).join(\" \");\n}\n\n// ============================================================\n// NavButton\n// ============================================================\nexport interface NavButtonProps {\n  /** 是否处于激活状态 */\n  active?: boolean;\n  /** 是否显示但禁止交互 */\n  disabled?: boolean;\n  /** 左侧图标 */\n  icon?: ReactNode;\n  /** 右侧附加内容（如 chevron） */\n  postfix?: ReactNode;\n  /** 点击回调 */\n  onClick?: () => void;\n  className?: string;\n  children: ReactNode;\n}\n\nexport function NavButton({\n  active,\n  disabled,\n  icon,\n  postfix,\n  onClick,\n  className,\n  children,\n}: NavButtonProps) {\n  return (\n    <button\n      type=\"button\"\n      aria-disabled={disabled}\n      aria-pressed={active}\n      disabled={disabled}\n      className={cn(\n        \"flex w-full cursor-pointer select-none items-center gap-2 rounded-xl border p-2 text-left text-xs text-[hsl(var(--foreground))] transition-colors\",\n        active\n          ? \"border-[hsl(var(--input))] bg-[hsl(var(--muted))] font-bold\"\n          : disabled\n            ? \"border-transparent\"\n            : \"border-transparent hover:border-[hsl(var(--input))]/60 hover:bg-[hsl(var(--muted))]/60\",\n        disabled && \"!cursor-not-allowed opacity-60\",\n        className,\n      )}\n      onClick={onClick}\n    >\n      <div className=\"w-[20px] [&_svg]:h-[16px] [&_svg]:w-[16px]\">{icon}</div>\n      <span className=\"text-sm\">{children}</span>\n      {postfix}\n    </button>\n  );\n}\n\n// ============================================================\n// AppHeader\n// ============================================================\nexport interface HeaderTab {\n  id: string;\n  label: string;\n}\n\nexport interface AppHeaderLogo {\n  /** Logo 图片 URL，若为空则显示 fallback */\n  url?: string;\n  /** 品牌名称 */\n  title: string;\n  /** 点击 Logo 回调 */\n  onClick?: () => void;\n}\n\nexport interface AppHeaderUser {\n  name?: string;\n  email?: string;\n  photo?: string;\n}\n\nexport interface AppHeaderProps {\n  /** 品牌 Logo */\n  logo: AppHeaderLogo;\n  /** 导航 tabs */\n  tabs?: HeaderTab[];\n  /** 当前激活的 tab id */\n  activeTab?: string;\n  /** tab 切换回调 */\n  onTabChange?: (tabId: string) => void;\n  /** 用户信息 */\n  user?: AppHeaderUser;\n  /** 退出登录回调 */\n  onLogout?: () => void;\n  /** 退出登录文案 */\n  logoutLabel?: string;\n  /** 用户菜单中的额外菜单项（在退出登录按钮之前渲染） */\n  userMenuItems?: ReactNode;\n  /** header 右侧额外内容 */\n  extra?: ReactNode;\n  className?: string;\n}\n\nexport function AppHeader({\n  logo,\n  tabs,\n  activeTab,\n  onTabChange,\n  user,\n  onLogout,\n  logoutLabel = \"退出登录\",\n  userMenuItems,\n  extra,\n  className,\n}: AppHeaderProps) {\n  const getUserInitials = (name: string) =>\n    name\n      .split(\" \")\n      .map((n) => n[0])\n      .join(\"\")\n      .toUpperCase()\n      .slice(0, 2);\n\n  return (\n    <header\n      className={cn(\n        \"flex h-[72px] w-full shrink-0 items-center justify-between gap-4 rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] p-[var(--global-spacing,0.75rem)]\",\n        className,\n      )}\n    >\n      {/* Logo */}\n      <div\n        className=\"flex shrink-0 cursor-pointer items-center gap-2\"\n        onClick={logo.onClick}\n      >\n        <div\n          className={cn(\n            \"flex h-8 w-8 items-center justify-center rounded-lg overflow-hidden\",\n            logo.url\n              ? \"bg-transparent\"\n              : \"bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]\",\n          )}\n        >\n          {logo.url ? (\n            <img\n              src={logo.url}\n              alt={logo.title}\n              className=\"h-full w-full object-contain\"\n            />\n          ) : (\n            <span className=\"text-sm font-bold\">{logo.title.charAt(0)}</span>\n          )}\n        </div>\n        <span className=\"text-lg font-semibold whitespace-nowrap\">\n          {logo.title}\n        </span>\n      </div>\n\n      {/* Separator + Tabs */}\n      {tabs && tabs.length > 0 && (\n        <>\n          <div className=\"h-1/2 w-px bg-[hsl(var(--border))]\" />\n          <div className=\"flex flex-1 items-center\">\n            <div className=\"inline-flex h-9 items-center gap-1 rounded-md bg-transparent p-1\">\n              {tabs.map((tab) => (\n                <button\n                  key={tab.id}\n                  className={cn(\n                    \"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium transition-all\",\n                    tab.id === activeTab\n                      ? \"bg-[hsl(var(--muted))] text-[hsl(var(--foreground))] shadow-sm\"\n                      : \"text-[hsl(var(--muted-foreground))] hover:bg-[hsl(var(--muted))]/50\",\n                  )}\n                  onClick={() => onTabChange?.(tab.id)}\n                >\n                  {tab.label}\n                </button>\n              ))}\n            </div>\n          </div>\n        </>\n      )}\n      {(!tabs || tabs.length === 0) && <div className=\"flex-1\" />}\n\n      {/* Right side */}\n      <div className=\"flex shrink-0 items-center gap-4\">\n        {extra}\n        {user && (\n          <DropdownMenu.Root>\n            <DropdownMenu.Trigger asChild>\n              <button className=\"flex h-8 w-8 items-center justify-center rounded-full hover:ring-2 hover:ring-[hsl(var(--ring))]/20 transition-all overflow-hidden focus-visible:outline-none\">\n                {user.photo ? (\n                  <img\n                    src={user.photo}\n                    alt={user.name}\n                    className=\"h-8 w-8 rounded-full object-cover\"\n                  />\n                ) : (\n                  <div className=\"flex h-8 w-8 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-xs font-medium\">\n                    {user.name ? getUserInitials(user.name) : \"U\"}\n                  </div>\n                )}\n              </button>\n            </DropdownMenu.Trigger>\n            <DropdownMenu.Portal>\n              <DropdownMenu.Content\n                className=\"z-50 w-52 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1 text-[hsl(var(--popover-foreground))] shadow-md animate-in fade-in-0 zoom-in-95\"\n                sideOffset={5}\n                align=\"end\"\n              >\n                {/* User info label */}\n                <DropdownMenu.Label className=\"flex items-center gap-2 px-2 py-1.5 font-normal\">\n                  {user.photo ? (\n                    <img\n                      src={user.photo}\n                      alt={user.name}\n                      className=\"h-8 w-8 rounded-full object-cover\"\n                    />\n                  ) : (\n                    <div className=\"flex h-8 w-8 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-xs font-medium\">\n                      {user.name ? getUserInitials(user.name) : \"U\"}\n                    </div>\n                  )}\n                  <div className=\"flex flex-col\">\n                    <span className=\"text-sm font-medium leading-none\">\n                      {user.name}\n                    </span>\n                    {user.email && (\n                      <span className=\"text-xs text-[hsl(var(--muted-foreground))] leading-none mt-1\">\n                        {user.email}\n                      </span>\n                    )}\n                  </div>\n                </DropdownMenu.Label>\n\n                <DropdownMenu.Separator className=\"h-px bg-[hsl(var(--border))] my-1\" />\n\n                <DropdownMenu.Group>\n                  {userMenuItems}\n\n                  {/* Logout */}\n                  <DropdownMenu.Item\n                    className=\"relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm text-[hsl(var(--destructive))] outline-none transition-colors hover:bg-[hsl(var(--accent))]\"\n                    onSelect={() => onLogout?.()}\n                  >\n                    <svg\n                      xmlns=\"http://www.w3.org/2000/svg\"\n                      width=\"16\"\n                      height=\"16\"\n                      viewBox=\"0 0 24 24\"\n                      fill=\"none\"\n                      stroke=\"currentColor\"\n                      strokeWidth=\"1.5\"\n                      strokeLinecap=\"round\"\n                      strokeLinejoin=\"round\"\n                    >\n                      <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" />\n                      <polyline points=\"16 17 21 12 16 7\" />\n                      <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\" />\n                    </svg>\n                    {logoutLabel}\n                  </DropdownMenu.Item>\n                </DropdownMenu.Group>\n              </DropdownMenu.Content>\n            </DropdownMenu.Portal>\n          </DropdownMenu.Root>\n        )}\n      </div>\n    </header>\n  );\n}\n\n// ============================================================\n// AppSidebar\n// ============================================================\nexport interface SidebarNavItem {\n  id: string;\n  label: string;\n  icon?: ReactNode;\n  disabled?: boolean;\n  /** 如果有 children 则为分组，点击展开/折叠 */\n  children?: SidebarNavItem[];\n}\n\nexport interface SidebarAccount {\n  name?: string;\n  photo?: string;\n}\n\nexport interface AppSidebarProps {\n  /** Logo */\n  logo?: AppHeaderLogo;\n  /** 导航菜单 */\n  navItems: SidebarNavItem[];\n  /** 当前路径/激活的 item id */\n  activeItemId?: string;\n  /** 点击导航项回调 */\n  onNavigate?: (itemId: string) => void;\n  /** 账户信息 */\n  account?: SidebarAccount;\n  /** 退出登录回调 */\n  onLogout?: () => void;\n  /** 退出登录文案 */\n  logoutLabel?: string;\n  /** 底部额外内容（如版本号） */\n  footer?: ReactNode;\n  /** 默认展开的分组 id 列表 */\n  defaultExpandedGroups?: string[];\n  className?: string;\n}\n\nexport function AppSidebar({\n  logo,\n  navItems,\n  activeItemId,\n  onNavigate,\n  account,\n  onLogout,\n  logoutLabel = \"退出登录\",\n  footer,\n  defaultExpandedGroups,\n  className,\n}: AppSidebarProps) {\n  return (\n    <div\n      className={cn(\n        \"flex w-[13.7rem] shrink-0 flex-col justify-between gap-[var(--global-spacing,0.75rem)] overflow-y-hidden rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] p-5\",\n        className,\n      )}\n    >\n      {/* Logo */}\n      {logo && (\n        <div\n          className=\"flex shrink-0 cursor-pointer items-center gap-2\"\n          onClick={logo.onClick}\n        >\n          <div\n            className={cn(\n              \"flex h-8 w-8 items-center justify-center rounded-lg overflow-hidden\",\n              logo.url\n                ? \"bg-transparent\"\n                : \"bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]\",\n            )}\n          >\n            {logo.url ? (\n              <img\n                src={logo.url}\n                alt={logo.title}\n                className=\"h-full w-full object-contain\"\n              />\n            ) : (\n              <span className=\"text-sm font-bold\">{logo.title.charAt(0)}</span>\n            )}\n          </div>\n          <span className=\"text-lg font-semibold whitespace-nowrap\">\n            {logo.title}\n          </span>\n        </div>\n      )}\n\n      {/* Navigation */}\n      <SidebarNavList\n        items={navItems}\n        activeItemId={activeItemId}\n        onNavigate={onNavigate}\n        defaultExpandedGroups={defaultExpandedGroups}\n      />\n\n      {/* Account Section */}\n      {(account || footer) && (\n        <div className=\"flex flex-col gap-2\">\n          {account && (\n            <div className=\"flex w-full flex-col gap-2 rounded-lg bg-[hsl(var(--muted))] p-2 shadow-sm\">\n              <div className=\"flex w-full items-center justify-between px-3 py-1\">\n                <div className=\"flex items-center gap-2\">\n                  {account.photo ? (\n                    <img\n                      src={account.photo}\n                      alt={account.name}\n                      className=\"h-5 w-5 rounded-full object-cover\"\n                    />\n                  ) : (\n                    <div className=\"flex h-5 w-5 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-[10px] font-medium\">\n                      {account.name\n                        ? account.name.charAt(0).toUpperCase()\n                        : \"U\"}\n                    </div>\n                  )}\n                  <span className=\"text-xs font-medium truncate max-w-[100px]\">\n                    {account.name}\n                  </span>\n                </div>\n                {onLogout && (\n                  <button\n                    onClick={onLogout}\n                    className=\"flex items-center justify-center text-[hsl(var(--destructive))] hover:opacity-80 transition-opacity\"\n                    title={logoutLabel}\n                  >\n                    <svg\n                      xmlns=\"http://www.w3.org/2000/svg\"\n                      width=\"16\"\n                      height=\"16\"\n                      viewBox=\"0 0 24 24\"\n                      fill=\"none\"\n                      stroke=\"currentColor\"\n                      strokeWidth=\"1.5\"\n                      strokeLinecap=\"round\"\n                      strokeLinejoin=\"round\"\n                    >\n                      <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" />\n                      <polyline points=\"16 17 21 12 16 7\" />\n                      <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\" />\n                    </svg>\n                  </button>\n                )}\n              </div>\n            </div>\n          )}\n          {footer}\n        </div>\n      )}\n    </div>\n  );\n}\n\n// ============================================================\n// SidebarNavList (internal accordion-style nav)\n// ============================================================\ninterface SidebarNavListProps {\n  items: SidebarNavItem[];\n  activeItemId?: string;\n  onNavigate?: (itemId: string) => void;\n  defaultExpandedGroups?: string[];\n}\n\nfunction SidebarNavList({\n  items,\n  activeItemId,\n  onNavigate,\n  defaultExpandedGroups,\n}: SidebarNavListProps) {\n  const [expanded, setExpanded] = useState<Record<string, boolean>>(() => {\n    const map: Record<string, boolean> = {};\n    (defaultExpandedGroups ?? items.map((i) => i.id)).forEach((id) => {\n      map[id] = true;\n    });\n    return map;\n  });\n  const [localActiveItemId, setLocalActiveItemId] = useState<\n    string | undefined\n  >(activeItemId);\n\n  useEffect(() => {\n    if (activeItemId !== undefined) {\n      setLocalActiveItemId(activeItemId);\n    }\n  }, [activeItemId]);\n\n  const toggle = (id: string) => {\n    setExpanded((prev: Record<string, boolean>) => ({\n      ...prev,\n      [id]: !prev[id],\n    }));\n  };\n  const resolvedActiveItemId = activeItemId ?? localActiveItemId;\n\n  return (\n    <div\n      className=\"h-full flex-1 overflow-y-auto\"\n      style={{ scrollbarWidth: \"none\", msOverflowStyle: \"none\" }}\n    >\n      <style>{`.monkeys-sidebar-nav::-webkit-scrollbar { display: none; }`}</style>\n      <div className=\"monkeys-sidebar-nav flex w-full flex-col gap-2 text-xs text-[hsl(var(--foreground))]\">\n        {items.map((item) => {\n          if (item.children && item.children.length > 0) {\n            const isExpanded = expanded[item.id] ?? true;\n            return (\n              <div key={item.id}>\n                <NavButton\n                  active={item.id === resolvedActiveItemId}\n                  disabled={item.disabled}\n                  icon={item.icon}\n                  onClick={() => toggle(item.id)}\n                  postfix={\n                    <div className=\"flex flex-1 justify-end\">\n                      <svg\n                        xmlns=\"http://www.w3.org/2000/svg\"\n                        width=\"16\"\n                        height=\"16\"\n                        viewBox=\"0 0 24 24\"\n                        fill=\"none\"\n                        stroke=\"currentColor\"\n                        strokeWidth=\"2\"\n                        strokeLinecap=\"round\"\n                        strokeLinejoin=\"round\"\n                        className=\"shrink-0 text-[hsl(var(--foreground))] transition-transform duration-200\"\n                        style={{\n                          transform: isExpanded\n                            ? \"rotate(90deg)\"\n                            : \"rotate(0deg)\",\n                        }}\n                      >\n                        <path d=\"m9 18 6-6-6-6\" />\n                      </svg>\n                    </div>\n                  }\n                >\n                  {item.label}\n                </NavButton>\n                {isExpanded && !item.disabled && (\n                  <div className=\"flex flex-col gap-1 mt-1\">\n                    {item.children.map((child) => (\n                      <NavButton\n                        key={child.id}\n                        active={child.id === resolvedActiveItemId}\n                        disabled={child.disabled}\n                        onClick={() => {\n                          setLocalActiveItemId(child.id);\n                          onNavigate?.(child.id);\n                        }}\n                      >\n                        {child.label}\n                      </NavButton>\n                    ))}\n                  </div>\n                )}\n              </div>\n            );\n          }\n          return (\n            <NavButton\n              key={item.id}\n              icon={item.icon}\n              active={item.id === resolvedActiveItemId}\n              disabled={item.disabled}\n              onClick={() => {\n                setLocalActiveItemId(item.id);\n                onNavigate?.(item.id);\n              }}\n            >\n              {item.label}\n            </NavButton>\n          );\n        })}\n      </div>\n    </div>\n  );\n}\n\n// ============================================================\n// AppLayout\n// ============================================================\nexport interface AppLayoutProps {\n  /** header 组件 */\n  header?: ReactNode;\n  /** sidebar 组件 */\n  sidebar?: ReactNode;\n  /** 主内容 */\n  children: ReactNode;\n  /** 是否 flush 布局（无内边距） */\n  flush?: boolean;\n  className?: string;\n}\n\nexport function AppLayout({\n  header,\n  sidebar,\n  children,\n  flush = false,\n  className,\n}: AppLayoutProps) {\n  return (\n    <div\n      className={cn(\n        \"flex h-screen flex-col gap-[var(--global-spacing,0.75rem)] overflow-hidden p-[var(--global-spacing,0.75rem)]\",\n        className,\n      )}\n      style={{ backgroundColor: \"hsl(var(--muted))\" }}\n    >\n      {header ? header : null}\n      <div className=\"flex flex-1 gap-[var(--global-spacing,0.75rem)] overflow-hidden min-h-0\">\n        {sidebar ? sidebar : null}\n        <main\n          className={cn(\n            \"flex-1 min-h-0 overflow-hidden rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))]\",\n            !flush && \"overflow-y-auto\",\n          )}\n        >\n          {flush ? (\n            children\n          ) : (\n            <div className=\"h-full overflow-y-auto\">{children}</div>\n          )}\n        </main>\n      </div>\n    </div>\n  );\n}\n\n// ============================================================\n// NavigationLayout\n// ============================================================\nexport type NavigationMode = \"sidebar\" | \"headbar\";\nexport type HeadbarLayoutMode = \"boxed\" | \"full-bleed\";\nexport type HeadbarMenuRadius =\n  \"default\" | \"none\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\nexport type HeadbarNavPosition = \"left\" | \"center\" | \"right\";\nexport type HeadbarSurface = \"card\" | \"glassy\" | \"ghost\";\n\nexport interface LayoutNavItem {\n  id: string;\n  label: ReactNode;\n  headbarLabel?: ReactNode;\n  icon?: ReactNode;\n  children?: LayoutNavItem[];\n  disabled?: boolean;\n  trailing?: ReactNode;\n  headbarSecondaryAction?: ReactNode;\n}\n\ninterface NavigationLayoutAction {\n  id: string;\n  label: ReactNode;\n  title?: string;\n  icon?: ReactNode;\n  onClick?: () => void;\n}\n\nexport interface HeadbarLayout {\n  brandTitle?: ReactNode;\n  heightPx?: number;\n  layoutMode?: HeadbarLayoutMode;\n  menuRadius?: HeadbarMenuRadius;\n  navPosition?: HeadbarNavPosition;\n  surface?: HeadbarSurface;\n}\n\nexport interface NavigationLayoutProps {\n  activeItemId?: string;\n  activeRootId?: string;\n  allowModeSwitch?: boolean;\n  accountMenu?: ReactNode;\n  children: ReactNode;\n  className?: string;\n  collapsedSidebarAccountMenu?: ReactNode;\n  collapsedSidebarWidth?: string;\n  contextualSidebar?: boolean;\n  contextualSidebarHeader?: ReactNode;\n  contextualSidebarWidth?: string;\n  defaultMode?: NavigationMode;\n  defaultSidebarCollapsed?: boolean;\n  expandedSidebarWidth?: string;\n  expandSidebarLabel?: string;\n  flush?: boolean;\n  headbarActions?: ReactNode;\n  headbarLayout?: HeadbarLayout;\n  logo?: AppHeaderLogo;\n  mode?: NavigationMode;\n  navItems: LayoutNavItem[];\n  onModeChange?: (mode: NavigationMode) => void;\n  onNavigate?: (itemId: string) => void;\n  onSidebarCollapsedChange?: (collapsed: boolean) => void;\n  renderHeadbarExtra?: ReactNode;\n  collapseSidebarLabel?: string;\n  sidebarCollapsed?: boolean;\n  sidebarAccountMenu?: ReactNode;\n  sidebarFooter?: ReactNode;\n  sidebarHeader?: ReactNode;\n  switchToHeadbarLabel?: string;\n  switchToSidebarLabel?: string;\n}\n\nconst NAVIGATION_LAYOUT_SIDEBAR_EXPANDED_WIDTH = \"13.7rem\";\nconst NAVIGATION_LAYOUT_SIDEBAR_COLLAPSED_WIDTH = \"4.25rem\";\nconst NAVIGATION_LAYOUT_CONTEXTUAL_SIDEBAR_WIDTH = \"15rem\";\nconst NAVIGATION_LAYOUT_TRANSITION_TIMING = \"cubic-bezier(0.22, 1, 0.36, 1)\";\nconst NAVIGATION_LAYOUT_HEADBAR_DEFAULT_HEIGHT_PX = 72;\nconst NAVIGATION_LAYOUT_HEADBAR_MIN_HEIGHT_PX = 56;\nconst NAVIGATION_LAYOUT_HEADBAR_MAX_HEIGHT_PX = 120;\nconst NAVIGATION_LAYOUT_HEADBAR_COMPACT_HEIGHT_THRESHOLD_PX = 64;\nconst NAVIGATION_LAYOUT_HEADBAR_BOXED_VERTICAL_PADDING_PX = 12;\nconst NAVIGATION_LAYOUT_HEADBAR_COMPACT_VERTICAL_PADDING_PX = 8;\nconst NAVIGATION_LAYOUT_HEADBAR_LOGO_DEFAULT_SIZE_PX = 44;\nconst NAVIGATION_LAYOUT_HEADBAR_LOGO_COMPACT_SIZE_PX = 36;\nconst NAVIGATION_LAYOUT_DEFAULT_APPEARANCE: BaseAppearance = {\n  preset: \"soft\",\n  density: \"compact\",\n  radius: \"lg\",\n  border: \"subtle\",\n  background: \"soft\",\n};\n\nconst NAVIGATION_LAYOUT_MENU_RADIUS_CLASS_MAP: Record<\n  Exclude<HeadbarMenuRadius, \"default\">,\n  { all: string; left: string; right: string }\n> = {\n  none: { all: \"rounded-none\", left: \"!rounded-none\", right: \"!rounded-none\" },\n  sm: {\n    all: \"rounded-sm\",\n    left: \"!rounded-l-sm !rounded-r-none\",\n    right: \"!rounded-l-none !rounded-r-sm\",\n  },\n  md: {\n    all: \"rounded-md\",\n    left: \"!rounded-l-md !rounded-r-none\",\n    right: \"!rounded-l-none !rounded-r-md\",\n  },\n  lg: {\n    all: \"rounded-lg\",\n    left: \"!rounded-l-lg !rounded-r-none\",\n    right: \"!rounded-l-none !rounded-r-lg\",\n  },\n  xl: {\n    all: \"rounded-xl\",\n    left: \"!rounded-l-xl !rounded-r-none\",\n    right: \"!rounded-l-none !rounded-r-xl\",\n  },\n  full: {\n    all: \"rounded-full\",\n    left: \"!rounded-l-full !rounded-r-none\",\n    right: \"!rounded-l-none !rounded-r-full\",\n  },\n};\n\nfunction clampHeadbarHeight(value?: number) {\n  if (typeof value !== \"number\" || !Number.isFinite(value))\n    return NAVIGATION_LAYOUT_HEADBAR_DEFAULT_HEIGHT_PX;\n  return Math.min(\n    NAVIGATION_LAYOUT_HEADBAR_MAX_HEIGHT_PX,\n    Math.max(NAVIGATION_LAYOUT_HEADBAR_MIN_HEIGHT_PX, Math.round(value)),\n  );\n}\n\nfunction getHeadbarVerticalPaddingPx(heightPx: number) {\n  return heightPx <= NAVIGATION_LAYOUT_HEADBAR_COMPACT_HEIGHT_THRESHOLD_PX\n    ? NAVIGATION_LAYOUT_HEADBAR_COMPACT_VERTICAL_PADDING_PX\n    : NAVIGATION_LAYOUT_HEADBAR_BOXED_VERTICAL_PADDING_PX;\n}\n\nfunction getHeadbarLogoSizePx(heightPx: number) {\n  return heightPx <= NAVIGATION_LAYOUT_HEADBAR_COMPACT_HEIGHT_THRESHOLD_PX\n    ? NAVIGATION_LAYOUT_HEADBAR_LOGO_COMPACT_SIZE_PX\n    : NAVIGATION_LAYOUT_HEADBAR_LOGO_DEFAULT_SIZE_PX;\n}\n\nfunction getHeadbarMenuRadiusClass(\n  menuRadius: HeadbarMenuRadius = \"default\",\n  part: \"all\" | \"left\" | \"right\" = \"all\",\n) {\n  if (menuRadius === \"default\") {\n    if (part === \"left\") return \"rounded-l-lg rounded-r-none\";\n    if (part === \"right\") return \"rounded-l-none rounded-r-lg\";\n    return \"rounded-lg\";\n  }\n  return NAVIGATION_LAYOUT_MENU_RADIUS_CLASS_MAP[menuRadius][part];\n}\n\nfunction getHeadbarFrameClass(\n  layoutMode: HeadbarLayoutMode = \"boxed\",\n  navPosition: HeadbarNavPosition = \"center\",\n) {\n  const columns =\n    navPosition === \"center\"\n      ? \"grid-cols-[minmax(max-content,1fr)_minmax(0,max-content)_minmax(max-content,1fr)]\"\n      : \"grid-cols-[max-content_minmax(0,1fr)_max-content]\";\n  return layoutMode === \"full-bleed\"\n    ? cn(\n        \"sticky top-0 z-40 grid w-full shrink-0 items-center gap-4 rounded-none border-b border-x-0 border-t-0 border-[hsl(var(--input))] bg-[hsl(var(--background))] p-[var(--global-spacing,0.75rem)]\",\n        columns,\n      )\n    : cn(\n        \"sticky top-0 z-40 grid w-full shrink-0 items-center gap-4 rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] p-[var(--global-spacing,0.75rem)]\",\n        columns,\n      );\n}\n\nfunction getHeadbarFrameStyle(\n  layoutMode: HeadbarLayoutMode = \"boxed\",\n  heightPx: number,\n  surface: HeadbarSurface = \"card\",\n): CSSProperties {\n  const verticalPaddingPx = getHeadbarVerticalPaddingPx(heightPx);\n  const fallbackBackground = \"hsl(var(--background))\";\n  const style: CSSProperties = {\n    height: `var(--monkeys-component-navigation-headbar-height, ${heightPx}px)`,\n    minHeight: `var(--monkeys-component-navigation-headbar-height, ${heightPx}px)`,\n    paddingTop: `${verticalPaddingPx}px`,\n    paddingBottom: `${verticalPaddingPx}px`,\n    background: `var(--monkeys-component-navigation-headbar-frame-background, ${fallbackBackground})`,\n    color:\n      \"var(--monkeys-component-navigation-headbar-frame-foreground, hsl(var(--foreground)))\",\n    borderColor:\n      surface === \"glassy\"\n        ? \"var(--monkeys-component-navigation-headbar-frame-border-color, rgb(255 255 255 / 0.5))\"\n        : \"var(--monkeys-component-navigation-headbar-frame-border-color, hsl(var(--input)))\",\n    borderRadius:\n      layoutMode === \"full-bleed\"\n        ? \"0\"\n        : \"var(--monkeys-component-navigation-headbar-frame-radius, var(--radius, 0.75rem))\",\n    boxShadow:\n      surface === \"glassy\"\n        ? \"var(--monkeys-component-navigation-headbar-frame-shadow, inset 0 0 0 0 rgb(0 0 0 / 0.1))\"\n        : \"var(--monkeys-component-navigation-headbar-frame-shadow, none)\",\n    backdropFilter: `blur(var(--monkeys-component-navigation-headbar-frame-backdrop-blur, ${surface === \"glassy\" ? \"45px\" : \"0px\"}))`,\n  };\n\n  if (layoutMode === \"full-bleed\") {\n    style.marginLeft = \"calc(var(--global-spacing,0.75rem) * -1)\";\n    style.marginRight = \"calc(var(--global-spacing,0.75rem) * -1)\";\n    style.marginTop = \"calc(var(--global-spacing,0.75rem) * -1)\";\n    style.width = \"calc(100% + (var(--global-spacing,0.75rem) * 2))\";\n  }\n\n  return style;\n}\n\nfunction getHeadbarNavClass(navPosition: HeadbarNavPosition = \"center\") {\n  if (navPosition === \"left\") return \"justify-start\";\n  if (navPosition === \"right\") return \"justify-end\";\n  return \"justify-center\";\n}\n\nfunction getHeadbarItemStyle(\n  active: boolean,\n  useTokenRadius = true,\n): CSSProperties {\n  return {\n    height: \"var(--monkeys-component-navigation-headbar-item-height, 2.25rem)\",\n    borderRadius: useTokenRadius\n      ? \"var(--monkeys-component-navigation-headbar-item-radius, var(--radius, 0.5rem))\"\n      : undefined,\n    paddingInline:\n      \"var(--monkeys-component-navigation-headbar-item-padding-inline, 0.75rem)\",\n    columnGap: \"var(--monkeys-component-navigation-headbar-item-gap, 0.375rem)\",\n    color: active\n      ? \"var(--monkeys-component-navigation-headbar-item-active-foreground, hsl(var(--foreground)))\"\n      : \"var(--monkeys-component-navigation-headbar-item-foreground, hsl(var(--muted-foreground)))\",\n    background: active\n      ? \"var(--monkeys-component-navigation-headbar-item-active-background, hsl(var(--muted)))\"\n      : \"transparent\",\n    borderColor: active\n      ? \"var(--monkeys-component-navigation-headbar-item-active-border-color, transparent)\"\n      : \"transparent\",\n    fontSize:\n      \"var(--monkeys-component-navigation-headbar-item-font-size, 0.875rem)\",\n    fontWeight:\n      \"var(--monkeys-component-navigation-headbar-item-font-weight, 500)\",\n  };\n}\n\nfunction getHeadbarCompoundStyle(\n  active: boolean,\n  useTokenRadius = true,\n): CSSProperties {\n  return {\n    ...getHeadbarItemStyle(active, useTokenRadius),\n    paddingInline: undefined,\n    columnGap: undefined,\n  };\n}\n\nfunction findNavigationRootId(\n  items: LayoutNavItem[],\n  activeItemId?: string,\n): string | undefined {\n  for (const item of items) {\n    if (item.id === activeItemId) return item.id;\n    if (containsNavigationItem(item, activeItemId)) return item.id;\n  }\n  return activeItemId;\n}\n\nfunction containsNavigationItem(\n  item: LayoutNavItem,\n  itemId?: string,\n): boolean {\n  if (!itemId) return false;\n  if (item.id === itemId) return true;\n  return item.children?.some((child) => containsNavigationItem(child, itemId)) ?? false;\n}\n\nfunction findActiveNavigationBranch(\n  item: LayoutNavItem,\n  activeItemId?: string,\n): LayoutNavItem | undefined {\n  return item.children?.find((child) => containsNavigationItem(child, activeItemId));\n}\n\nfunction getNavigationActionTitle(action: NavigationLayoutAction) {\n  return (\n    action.title ||\n    (typeof action.label === \"string\" ? action.label : undefined)\n  );\n}\n\nfunction NavigationLayoutActionButtons({\n  actions,\n  compact,\n}: {\n  actions: NavigationLayoutAction[];\n  compact: boolean;\n}) {\n  if (!actions.length) return null;\n\n  if (compact) {\n    return (\n      <div className=\"flex flex-col items-center gap-2\">\n        {actions.map((action) => {\n          const title = getNavigationActionTitle(action);\n          return (\n            <BaseTooltip\n              key={action.id}\n              appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n              content={action.label}\n              placement=\"right\"\n              portal\n            >\n              <BaseButton\n                appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n                tone=\"muted\"\n                iconOnly\n                icon={action.icon}\n                onClick={action.onClick}\n                title={title}\n                ariaLabel={title}\n                className={cn(\n                  \"h-10 w-10 rounded-lg border-transparent text-[hsl(var(--muted-foreground))] shadow-none\",\n                  \"hover:-translate-y-0.5 hover:border-[hsl(var(--input))]/80 hover:bg-[hsl(var(--muted))] hover:text-[hsl(var(--foreground))]\",\n                  \"active:translate-y-0 active:scale-[0.96]\",\n                )}\n              />\n            </BaseTooltip>\n          );\n        })}\n      </div>\n    );\n  }\n\n  return (\n    <div className=\"flex flex-col gap-2\">\n      {actions.map((action) => (\n        <BaseButton\n          key={action.id}\n          appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n          tone=\"muted\"\n          icon={action.icon}\n          label={<span className=\"truncate\">{action.label}</span>}\n          onClick={action.onClick}\n          title={getNavigationActionTitle(action)}\n          className={cn(\n            \"h-9 w-full justify-start gap-2.5 rounded-lg border-transparent px-3 text-left text-[13px] text-[hsl(var(--muted-foreground))] shadow-none\",\n            \"hover:-translate-y-0.5 hover:border-[hsl(var(--input))]/80 hover:bg-[hsl(var(--muted))]/70 hover:text-[hsl(var(--foreground))]\",\n            \"active:translate-y-0 active:scale-[0.985]\",\n          )}\n        />\n      ))}\n    </div>\n  );\n}\n\nfunction SidebarNavigationList({\n  activeItemId,\n  items,\n  onNavigate,\n  revealRequest,\n}: {\n  activeItemId?: string;\n  items: LayoutNavItem[];\n  onNavigate?: (itemId: string) => void;\n  revealRequest?: { id: string; nonce: number } | null;\n}) {\n  const navRef = useRef<HTMLDivElement | null>(null);\n  const [expandedByRoot, setExpandedByRoot] = useState<Record<string, boolean>>(\n    {},\n  );\n  const canReveal = revealRequest\n    ? items.some((item) => containsNavigationItem(item, revealRequest.id) && !item.disabled)\n    : false;\n\n  const toggleRoot = (id: string) => {\n    setExpandedByRoot((current) => ({\n      ...current,\n      [id]: !current[id],\n    }));\n  };\n\n  useEffect(() => {\n    if (!revealRequest || !canReveal) return;\n    setExpandedByRoot((current) => ({ ...current, [revealRequest.id]: true }));\n\n    const frameId = window.requestAnimationFrame(() => {\n      const targetElement = navRef.current?.querySelector(\n        `[data-navigation-sidebar-item-id=\"${CSS.escape(revealRequest.id)}\"]`,\n      );\n      if (targetElement instanceof HTMLElement) {\n        targetElement.scrollIntoView({\n          behavior: \"auto\",\n          block: \"nearest\",\n          inline: \"nearest\",\n        });\n      }\n    });\n\n    return () => window.cancelAnimationFrame(frameId);\n  }, [canReveal, revealRequest]);\n\n  const renderItems = (navigationItems: LayoutNavItem[], depth = 0): ReactNode =>\n    navigationItems.map((item) => {\n      const isGroup = Boolean(item.children?.length);\n      const containsActiveItem = containsNavigationItem(item, activeItemId);\n      const isExpanded =\n        !item.disabled &&\n        (expandedByRoot[item.id] ?? containsActiveItem);\n\n      return (\n        <div key={item.id} data-navigation-sidebar-item-id={item.id}>\n          <NavButton\n            active={containsActiveItem}\n            className={depth > 0 ? \"pl-3\" : undefined}\n            disabled={item.disabled}\n            icon={item.icon}\n            onClick={() =>\n              isGroup ? toggleRoot(item.id) : onNavigate?.(item.id)\n            }\n            postfix={isGroup ? (\n              <div className=\"flex flex-1 justify-end\">\n                <HeadbarChevronIcon\n                  open={false}\n                  sideways\n                  className=\"text-[hsl(var(--foreground))] transition-transform duration-200\"\n                  style={{ transform: isExpanded ? \"rotate(90deg)\" : \"rotate(0deg)\" }}\n                />\n              </div>\n            ) : undefined}\n          >\n            {item.label}\n          </NavButton>\n          {isGroup && isExpanded ? (\n            <div className=\"mt-1 ml-3 flex flex-col gap-1 border-l border-[hsl(var(--input))] pl-2\">\n              {renderItems(item.children ?? [], depth + 1)}\n            </div>\n          ) : null}\n        </div>\n      );\n    });\n\n  return (\n    <div\n      className=\"h-full flex-1 overflow-y-auto\"\n      style={{ scrollbarWidth: \"none\", msOverflowStyle: \"none\" }}\n    >\n      <style>{`.monkeys-navigation-sidebar-nav::-webkit-scrollbar { display: none; }`}</style>\n      <div\n        ref={navRef}\n        className=\"monkeys-navigation-sidebar-nav flex w-full flex-col gap-2 text-xs text-[hsl(var(--foreground))]\"\n      >\n        {renderItems(items)}\n      </div>\n    </div>\n  );\n}\n\nfunction SidebarBrand({\n  collapsed,\n  logo,\n  title,\n}: {\n  collapsed?: boolean;\n  logo?: AppHeaderLogo;\n  title?: ReactNode;\n}) {\n  if (!logo) return null;\n\n  const brandTitle = title ?? logo.title;\n  const logoMark = (\n    <div\n      className={cn(\n        \"flex h-9 w-9 shrink-0 items-center justify-center overflow-hidden rounded-lg\",\n        logo.url\n          ? \"bg-transparent\"\n          : \"bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]\",\n      )}\n    >\n      {logo.url ? (\n        <img\n          src={logo.url}\n          alt={logo.title}\n          className=\"h-full w-full object-contain\"\n        />\n      ) : (\n        <span className=\"text-sm font-bold\">{logo.title.charAt(0)}</span>\n      )}\n    </div>\n  );\n\n  if (collapsed) {\n    return (\n      <BaseTooltip\n        appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n        content={brandTitle}\n        placement=\"right\"\n        portal\n      >\n        <BaseButton\n          appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n          ariaLabel={typeof brandTitle === \"string\" ? brandTitle : logo.title}\n          className=\"h-10 w-10 rounded-lg border-transparent bg-transparent p-0 shadow-none hover:bg-[hsl(var(--muted))]/60\"\n          icon={logoMark}\n          iconOnly\n          onClick={logo.onClick}\n          title={typeof brandTitle === \"string\" ? brandTitle : logo.title}\n          tone=\"muted\"\n        />\n      </BaseTooltip>\n    );\n  }\n\n  return (\n    <BaseButton\n      appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n      ariaLabel={logo.title}\n      className=\"h-auto w-full justify-start gap-3 border-transparent bg-transparent p-0 text-left shadow-none hover:bg-transparent\"\n      classNames={{ icon: \"h-9 w-9\" }}\n      icon={logoMark}\n      label={\n        <span className=\"min-w-0 truncate text-sm font-semibold text-[hsl(var(--foreground))]\">\n          {brandTitle}\n        </span>\n      }\n      onClick={logo.onClick}\n      title={typeof brandTitle === \"string\" ? brandTitle : logo.title}\n      tone=\"muted\"\n    />\n  );\n}\n\nfunction Sidebar({\n  accountMenu,\n  activeItemId,\n  actions = [],\n  collapsed,\n  collapsedAccountMenu,\n  footer,\n  header,\n  items,\n  logo,\n  onCollapsedChange,\n  onNavigate,\n  onRevealRoot,\n  revealRequest,\n  title,\n}: {\n  accountMenu?: ReactNode;\n  activeItemId?: string;\n  actions?: NavigationLayoutAction[];\n  collapsed?: boolean;\n  collapsedAccountMenu?: ReactNode;\n  footer?: ReactNode;\n  header?: ReactNode;\n  items: LayoutNavItem[];\n  logo?: AppHeaderLogo;\n  onCollapsedChange?: (collapsed: boolean) => void;\n  onNavigate?: (itemId: string) => void;\n  onRevealRoot?: (rootId: string) => void;\n  revealRequest?: { id: string; nonce: number } | null;\n  title?: ReactNode;\n}) {\n  if (collapsed) {\n    const activeRootId = findNavigationRootId(items, activeItemId);\n\n    return (\n      <div className=\"flex h-full min-h-0 w-full flex-col rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] p-2 shadow-sm\">\n        <div className=\"mb-3 flex shrink-0 justify-center\">\n          {header ?? <SidebarBrand collapsed logo={logo} title={title} />}\n        </div>\n        <div\n          className=\"flex min-h-0 flex-1 flex-col items-center gap-2 overflow-y-auto pb-3\"\n          style={{ scrollbarWidth: \"none\", msOverflowStyle: \"none\" }}\n        >\n          {items.map((item) => {\n            const isActive = activeRootId === item.id;\n            return (\n              <BaseTooltip\n                key={item.id}\n                appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n                content={item.label}\n                placement=\"right\"\n                portal\n              >\n                <BaseButton\n                  appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n                  tone=\"muted\"\n                  active={isActive}\n                  disabled={item.disabled}\n                  iconOnly\n                  icon={item.icon}\n                  onClick={() => {\n                    if (item.disabled) return;\n                    onRevealRoot?.(item.id);\n                    onCollapsedChange?.(false);\n                    if (item.children?.length) return;\n                    onNavigate?.(item.id);\n                  }}\n                  title={\n                    typeof item.label === \"string\" ? item.label : undefined\n                  }\n                  ariaLabel={\n                    typeof item.label === \"string\" ? item.label : item.id\n                  }\n                  className={cn(\n                    \"h-10 w-10 rounded-lg border text-[hsl(var(--muted-foreground))] shadow-none\",\n                    \"hover:-translate-y-0.5 active:translate-y-0 active:scale-[0.96]\",\n                    isActive\n                      ? \"border-[hsl(var(--input))] bg-[hsl(var(--muted))] text-[hsl(var(--foreground))] shadow-sm\"\n                      : \"border-transparent hover:border-[hsl(var(--input))]/80 hover:bg-[hsl(var(--muted))]/70 hover:text-[hsl(var(--foreground))]\",\n                  )}\n                />\n              </BaseTooltip>\n            );\n          })}\n        </div>\n        <div className=\"-mx-2 mt-2 border-t border-[hsl(var(--input))] bg-[hsl(var(--background))] px-2 pt-2.5 pb-0.5\">\n          <NavigationLayoutActionButtons actions={actions} compact />\n          {collapsedAccountMenu ? (\n            <div className=\"mt-2 flex justify-center border-t border-[hsl(var(--input))] pt-2\">\n              {collapsedAccountMenu}\n            </div>\n          ) : null}\n        </div>\n      </div>\n    );\n  }\n\n  return (\n    <div className=\"flex h-full min-h-0 w-full flex-col justify-between gap-0 overflow-y-hidden rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] px-5 pt-5 pb-1.5\">\n      <div className=\"mb-4 shrink-0\">\n        {header ?? <SidebarBrand logo={logo} title={title} />}\n      </div>\n      <SidebarNavigationList\n        activeItemId={activeItemId}\n        items={items}\n        onNavigate={onNavigate}\n        revealRequest={revealRequest}\n      />\n      <div className=\"-mx-5 mt-2 border-t border-[hsl(var(--input))] bg-[hsl(var(--background))] px-4 pt-2.5 pb-1\">\n        <NavigationLayoutActionButtons actions={actions} compact={false} />\n        {footer}\n        {accountMenu ? (\n          <div className=\"mt-2 border-t border-[hsl(var(--input))] pt-2\">\n            {accountMenu}\n          </div>\n        ) : null}\n      </div>\n    </div>\n  );\n}\n\nfunction HeadbarChevronIcon({\n  className,\n  open,\n  sideways = false,\n  style,\n}: {\n  className?: string;\n  open: boolean;\n  sideways?: boolean;\n  style?: CSSProperties;\n}) {\n  return (\n    <svg\n      aria-hidden=\"true\"\n      className={cn(\n        \"h-4 w-4 shrink-0\",\n        !sideways && \"transition-transform duration-200\",\n        !sideways && open && \"rotate-180\",\n        className,\n      )}\n      style={style}\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      strokeWidth=\"2\"\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n    >\n      <path d={sideways ? \"m9 18 6-6-6-6\" : \"m6 9 6 6 6-6\"} />\n    </svg>\n  );\n}\n\nfunction getHeadbarSummaryTitle(\n  rootLabel: ReactNode,\n  childLabel: ReactNode,\n) {\n  if (typeof rootLabel !== \"string\" || typeof childLabel !== \"string\") {\n    return undefined;\n  }\n\n  const rootText = rootLabel.trim();\n  const childText = childLabel.trim();\n  return rootText && childText ? `${rootText} ${childText}` : undefined;\n}\n\nconst HEADBAR_DROPDOWN_ITEM_CLASS =\n  \"relative flex w-full min-w-0 cursor-pointer select-none items-center gap-2.5 px-3 py-2 text-sm outline-none transition-colors hover:!bg-[var(--monkeys-component-navigation-headbar-item-hover-background,hsl(var(--accent)))] hover:!text-[var(--monkeys-component-navigation-headbar-item-hover-foreground,hsl(var(--accent-foreground)))] focus:!bg-[var(--monkeys-component-navigation-headbar-item-hover-background,hsl(var(--accent)))] focus:!text-[var(--monkeys-component-navigation-headbar-item-hover-foreground,hsl(var(--accent-foreground)))] data-[highlighted]:!bg-[var(--monkeys-component-navigation-headbar-item-hover-background,hsl(var(--accent)))] data-[highlighted]:!text-[var(--monkeys-component-navigation-headbar-item-hover-foreground,hsl(var(--accent-foreground)))]\";\n\nconst HEADBAR_DROPDOWN_CONTENT_STYLE: CSSProperties = {\n  width: \"max-content\",\n  maxWidth: \"min(20rem, var(--radix-dropdown-menu-content-available-width))\",\n  background:\n    \"var(--monkeys-component-navigation-headbar-menu-background, hsl(var(--monkeys-color-menu-surface)))\",\n  borderColor:\n    \"var(--monkeys-component-navigation-headbar-menu-border-color, var(--monkeys-component-overlay-border-color, hsl(var(--monkeys-color-border))))\",\n  color:\n    \"var(--monkeys-component-navigation-headbar-menu-foreground, hsl(var(--monkeys-color-popover-foreground)))\",\n  boxShadow:\n    \"var(--monkeys-component-navigation-headbar-menu-shadow, var(--monkeys-component-overlay-menu-shadow, 0 10px 15px -3px rgb(0 0 0 / 0.1)))\",\n  backdropFilter:\n    \"blur(var(--monkeys-component-navigation-headbar-menu-backdrop-blur, var(--monkeys-component-overlay-backdrop-blur, 0px)))\",\n  WebkitBackdropFilter:\n    \"blur(var(--monkeys-component-navigation-headbar-menu-backdrop-blur, var(--monkeys-component-overlay-backdrop-blur, 0px)))\",\n};\n\nfunction HeadbarDropdownItems({\n  activeItemId,\n  items,\n  menuContentRadiusClass,\n  menuItemRadiusClass,\n  onNavigate,\n  onNavigateComplete,\n  useTokenRadius,\n}: {\n  activeItemId?: string;\n  items: LayoutNavItem[];\n  menuContentRadiusClass: string;\n  menuItemRadiusClass: string;\n  onNavigate?: (itemId: string) => void;\n  onNavigateComplete: () => void;\n  useTokenRadius: boolean;\n}) {\n  const componentAttributes = useMonkeysComponentAttributes();\n\n  return items.map((item) => {\n    const label = (\n      <>\n        {item.icon ? (\n          <span className=\"inline-flex h-4 w-4 shrink-0 items-center justify-center text-[hsl(var(--muted-foreground))]\">\n            {item.icon}\n          </span>\n        ) : null}\n        <span\n          className={cn(\n            \"min-w-0 truncate\",\n            Boolean(item.children?.length) && \"flex-1\",\n          )}\n        >\n          {item.headbarLabel ?? item.label}\n        </span>\n      </>\n    );\n\n    if (item.children?.length) {\n      return (\n        <DropdownMenu.Sub key={item.id}>\n          <DropdownMenu.SubTrigger\n            disabled={item.disabled}\n            className={cn(HEADBAR_DROPDOWN_ITEM_CLASS, menuItemRadiusClass)}\n          >\n            {label}\n            <HeadbarChevronIcon open={false} sideways />\n          </DropdownMenu.SubTrigger>\n          <DropdownMenu.Portal>\n            <DropdownMenu.SubContent\n              {...componentAttributes}\n              sideOffset={4}\n              alignOffset={-6}\n              data-monkeys-component=\"navigation-headbar-menu\"\n              data-slot=\"content\"\n              data-surface=\"menu\"\n              className={cn(\n                \"z-50 border p-1.5 animate-in fade-in-0 zoom-in-95\",\n                getOverlaySurfaceClassName(\"menu\"),\n                menuContentRadiusClass,\n              )}\n              style={{\n                ...HEADBAR_DROPDOWN_CONTENT_STYLE,\n                minWidth: \"12rem\",\n              }}\n            >\n              <HeadbarDropdownItems\n                activeItemId={activeItemId}\n                items={item.children}\n                menuContentRadiusClass={menuContentRadiusClass}\n                menuItemRadiusClass={menuItemRadiusClass}\n                onNavigate={onNavigate}\n                onNavigateComplete={onNavigateComplete}\n                useTokenRadius={useTokenRadius}\n              />\n            </DropdownMenu.SubContent>\n          </DropdownMenu.Portal>\n        </DropdownMenu.Sub>\n      );\n    }\n\n    return (\n      <DropdownMenu.Item\n        key={item.id}\n        disabled={item.disabled}\n        className={cn(HEADBAR_DROPDOWN_ITEM_CLASS, menuItemRadiusClass)}\n        style={getHeadbarItemStyle(item.id === activeItemId, useTokenRadius)}\n        onSelect={() => {\n          if (item.disabled) return;\n          onNavigateComplete();\n          onNavigate?.(item.id);\n        }}\n      >\n        {label}\n        {item.trailing}\n      </DropdownMenu.Item>\n    );\n  });\n}\n\nfunction HeadbarNavMenuItem({\n  activeItemId,\n  compound,\n  isActive,\n  item,\n  label,\n  menuButtonRadiusClass,\n  menuContentRadiusClass,\n  menuItemRadiusClass,\n  onNavigate,\n  title,\n  useTokenRadius,\n}: {\n  activeItemId?: string;\n  compound?: boolean;\n  isActive: boolean;\n  item: LayoutNavItem;\n  label: ReactNode;\n  menuButtonRadiusClass: string;\n  menuContentRadiusClass: string;\n  menuItemRadiusClass: string;\n  onNavigate?: (itemId: string) => void;\n  title?: string;\n  useTokenRadius: boolean;\n}) {\n  const [open, setOpen] = useState(false);\n  const componentAttributes = useMonkeysComponentAttributes();\n  const isOpen = !item.disabled && open;\n  const closeTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n  const wasOpenOnPointerDownRef = useRef(false);\n\n  const clearCloseTimer = () => {\n    if (!closeTimerRef.current) return;\n    clearTimeout(closeTimerRef.current);\n    closeTimerRef.current = null;\n  };\n\n  const openMenu = () => {\n    if (item.disabled) return;\n    clearCloseTimer();\n    setOpen(true);\n  };\n\n  const scheduleCloseMenu = () => {\n    clearCloseTimer();\n    closeTimerRef.current = setTimeout(() => {\n      setOpen(false);\n      closeTimerRef.current = null;\n    }, 120);\n  };\n\n  const navigateToFirstEnabledChild = () => {\n    const firstEnabledChild = item.children?.find((child) => !child.disabled);\n    if (!firstEnabledChild) return false;\n\n    setOpen(false);\n    onNavigate?.(firstEnabledChild.id);\n    return true;\n  };\n\n  useEffect(() => clearCloseTimer, []);\n\n  return (\n    <DropdownMenu.Root\n      modal={false}\n      open={isOpen}\n      onOpenChange={(nextOpen) => setOpen(!item.disabled && nextOpen)}\n    >\n      <DropdownMenu.Trigger asChild>\n        <BaseButton\n          appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n          tone=\"muted\"\n          active={isActive || isOpen}\n          icon={item.icon}\n          endIcon={<HeadbarChevronIcon open={isOpen} />}\n          label={label}\n          title={title}\n          disabled={item.disabled}\n          onClick={() => {\n            const wasOpenOnPointerDown = wasOpenOnPointerDownRef.current;\n            wasOpenOnPointerDownRef.current = false;\n            if (wasOpenOnPointerDown && navigateToFirstEnabledChild()) return;\n            setOpen(true);\n          }}\n          onPointerDown={() => {\n            wasOpenOnPointerDownRef.current = isOpen;\n          }}\n          onPointerCancel={() => {\n            wasOpenOnPointerDownRef.current = false;\n          }}\n          onKeyDown={(event) => {\n            if (\n              !isOpen ||\n              (event.key !== \"Enter\" && event.key !== \" \")\n            )\n              return;\n            if (navigateToFirstEnabledChild()) event.preventDefault();\n          }}\n          onMouseEnter={openMenu}\n          onMouseLeave={scheduleCloseMenu}\n          style={getHeadbarItemStyle(\n            isActive || isOpen,\n            compound ? false : useTokenRadius,\n          )}\n          classNames={{\n            icon: \"text-[inherit] [&_*]:!text-[inherit] [&_svg]:!stroke-current\",\n            label:\n              \"flex min-w-0 items-center text-[inherit] [&_*]:!text-[inherit]\",\n          }}\n          className={cn(\n            \"max-w-[12rem] shrink-0 border shadow-none\",\n            compound && \"!rounded-none !border-0 !bg-transparent\",\n            menuButtonRadiusClass,\n            isActive || isOpen\n              ? \"\"\n              : \"hover:!bg-[var(--monkeys-component-navigation-headbar-item-hover-background,hsl(var(--muted)))] hover:!text-[var(--monkeys-component-navigation-headbar-item-hover-foreground,hsl(var(--foreground)))]\",\n          )}\n        />\n      </DropdownMenu.Trigger>\n      <DropdownMenu.Portal>\n        <DropdownMenu.Content\n          {...componentAttributes}\n          align=\"start\"\n          sideOffset={5}\n          data-monkeys-component=\"navigation-headbar-menu\"\n          data-slot=\"content\"\n          data-surface=\"menu\"\n          onCloseAutoFocus={(event) => event.preventDefault()}\n          onMouseEnter={openMenu}\n          onMouseLeave={scheduleCloseMenu}\n          className={cn(\n            \"z-50 border p-1.5 animate-in fade-in-0 zoom-in-95\",\n            getOverlaySurfaceClassName(\"menu\"),\n            menuContentRadiusClass,\n          )}\n          style={{\n            ...HEADBAR_DROPDOWN_CONTENT_STYLE,\n            minWidth: \"var(--radix-dropdown-menu-trigger-width)\",\n          }}\n        >\n          <HeadbarDropdownItems\n            activeItemId={activeItemId}\n            items={item.children ?? []}\n            menuContentRadiusClass={menuContentRadiusClass}\n            menuItemRadiusClass={menuItemRadiusClass}\n            onNavigate={onNavigate}\n            onNavigateComplete={() => setOpen(false)}\n            useTokenRadius={useTokenRadius}\n          />\n        </DropdownMenu.Content>\n      </DropdownMenu.Portal>\n    </DropdownMenu.Root>\n  );\n}\n\nfunction blockEvent(event: SyntheticEvent) {\n  event.preventDefault();\n  event.stopPropagation();\n}\n\nexport interface NavigationHeadbarMenuProps {\n  activeItemId?: string;\n  activeRootId?: string;\n  items: LayoutNavItem[];\n  menuRadius?: HeadbarMenuRadius;\n  onNavigate?: (itemId: string) => void;\n}\n\nexport function NavigationHeadbarMenu({\n  activeItemId,\n  activeRootId,\n  items,\n  menuRadius = \"default\",\n  onNavigate,\n}: NavigationHeadbarMenuProps) {\n  const menuButtonRadiusClass = getHeadbarMenuRadiusClass(menuRadius);\n  const menuContentRadiusClass = getHeadbarMenuRadiusClass(menuRadius);\n  const menuItemRadiusClass = getHeadbarMenuRadiusClass(menuRadius);\n  const useTokenRadius = menuRadius === \"default\";\n\n  return (\n    <div className=\"flex w-max min-w-0 shrink-0 items-center gap-1\">\n      {items.map((item) => {\n        const isActive = activeRootId === item.id || activeItemId === item.id;\n        const hasSecondaryAction = Boolean(item.headbarSecondaryAction);\n        const rootLabel = item.headbarLabel ?? item.label;\n        const activeChild = findActiveNavigationBranch(item, activeItemId);\n        const activeChildLabel = activeChild\n          ? (activeChild.headbarLabel ?? activeChild.label)\n          : undefined;\n        const label = activeChild ? (\n          <span\n            data-navigation-headbar-selected-child={activeChild.id}\n            className=\"flex min-w-0 items-center gap-1.5 whitespace-nowrap\"\n          >\n            <span className=\"shrink-0\">{rootLabel}</span>\n            <span className=\"sr-only\">: </span>\n            <span className=\"min-w-0 truncate\">{activeChildLabel}</span>\n          </span>\n        ) : (\n          <span className=\"truncate whitespace-nowrap\">{rootLabel}</span>\n        );\n        const title = activeChild\n          ? getHeadbarSummaryTitle(rootLabel, activeChildLabel)\n          : undefined;\n\n        const primaryAction = item.children?.length ? (\n          <HeadbarNavMenuItem\n            activeItemId={activeItemId}\n            compound={hasSecondaryAction}\n            isActive={isActive}\n            item={item}\n            label={label}\n            menuButtonRadiusClass={menuButtonRadiusClass}\n            menuContentRadiusClass={menuContentRadiusClass}\n            menuItemRadiusClass={menuItemRadiusClass}\n            onNavigate={onNavigate}\n            title={title}\n            useTokenRadius={useTokenRadius}\n          />\n        ) : (\n          <BaseButton\n            appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n            tone=\"muted\"\n            active={isActive}\n            disabled={item.disabled}\n            icon={item.icon}\n            label={\n              <span className=\"flex min-w-0 items-center gap-1.5\">\n                <span className=\"truncate whitespace-nowrap\">{label}</span>\n                {item.trailing}\n              </span>\n            }\n            onClick={() => onNavigate?.(item.id)}\n            style={getHeadbarItemStyle(\n              isActive,\n              hasSecondaryAction ? false : useTokenRadius,\n            )}\n            classNames={{\n              icon: \"text-[inherit] [&_*]:!text-[inherit] [&_svg]:!stroke-current\",\n              label: \"text-[inherit] [&_*]:!text-[inherit]\",\n            }}\n            className={cn(\n              \"max-w-[12rem] shrink-0 border shadow-none\",\n              hasSecondaryAction &&\n                \"!rounded-none !border-0 !bg-transparent\",\n              menuButtonRadiusClass,\n              isActive\n                ? \"\"\n                : \"hover:!bg-[var(--monkeys-component-navigation-headbar-item-hover-background,hsl(var(--muted)))] hover:!text-[var(--monkeys-component-navigation-headbar-item-hover-foreground,hsl(var(--foreground)))]\",\n            )}\n          />\n        );\n\n        if (!hasSecondaryAction) {\n          return <Fragment key={item.id}>{primaryAction}</Fragment>;\n        }\n\n        return (\n          <div\n            key={item.id}\n            data-navigation-headbar-compound-item={item.id}\n            aria-disabled={item.disabled}\n            className={cn(\n              \"inline-flex min-w-0 shrink-0 items-center gap-0 overflow-hidden border shadow-none\",\n              menuButtonRadiusClass,\n              isActive\n                ? \"\"\n                : \"hover:!bg-[var(--monkeys-component-navigation-headbar-item-hover-background,hsl(var(--muted)))] hover:!text-[var(--monkeys-component-navigation-headbar-item-hover-foreground,hsl(var(--foreground)))]\",\n            )}\n            style={getHeadbarCompoundStyle(isActive, useTokenRadius)}\n          >\n            <span\n              data-navigation-headbar-primary-action=\"\"\n              className=\"inline-flex min-w-0 shrink-0\"\n            >\n              {primaryAction}\n            </span>\n            <span\n              data-navigation-headbar-secondary-action={item.id}\n              {...(item.disabled && {\n                inert: \"\",\n                onClickCapture: blockEvent,\n                onKeyDownCapture: blockEvent,\n                onKeyUpCapture: blockEvent,\n                onPointerDownCapture: blockEvent,\n              })}\n              className={cn(\n                \"inline-flex min-w-0 shrink-0 items-center\",\n                item.disabled && \"!cursor-not-allowed opacity-60\",\n              )}\n            >\n              {item.headbarSecondaryAction}\n            </span>\n          </div>\n        );\n      })}\n    </div>\n  );\n}\n\nexport interface NavigationHeadbarProps {\n  activeItemId?: string;\n  activeRootId?: string;\n  actions?: ReactNode;\n  accountMenu?: ReactNode;\n  className?: string;\n  extra?: ReactNode;\n  layout?: HeadbarLayout;\n  brand?: ReactNode;\n  logo?: AppHeaderLogo;\n  navigation?: ReactNode;\n  navItems?: LayoutNavItem[];\n  onNavigate?: (itemId: string) => void;\n}\n\nexport function NavigationHeadbar({\n  activeItemId,\n  activeRootId,\n  actions,\n  accountMenu,\n  className,\n  extra,\n  layout,\n  brand,\n  logo,\n  navigation,\n  navItems = [],\n  onNavigate,\n}: NavigationHeadbarProps) {\n  const heightPx = clampHeadbarHeight(layout?.heightPx);\n  const layoutMode = layout?.layoutMode ?? \"boxed\";\n  const menuRadius = layout?.menuRadius ?? \"default\";\n  const surface = layout?.surface ?? \"card\";\n  const logoHeightPx = getHeadbarLogoSizePx(heightPx);\n  const frameStyle = getHeadbarFrameStyle(layoutMode, heightPx, surface);\n  const showBrandTitle = Boolean(layout?.brandTitle);\n\n  return (\n    <header\n      className={cn(\n        getHeadbarFrameClass(layoutMode, layout?.navPosition),\n        className,\n      )}\n      data-navigation-headbar=\"\"\n      data-navigation-headbar-surface={surface}\n      style={frameStyle}\n    >\n      <div className=\"flex min-w-0 items-center justify-start\">\n        {brand ??\n          (logo ? (\n            <BaseButton\n              appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n              tone=\"muted\"\n              icon={\n                <div\n                  className={cn(\n                    \"flex items-center justify-center overflow-hidden rounded-lg\",\n                    logo.url\n                      ? \"w-auto max-w-[min(22rem,30vw)] bg-transparent\"\n                      : \"bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]\",\n                  )}\n                  style={\n                    logo.url\n                      ? { height: logoHeightPx }\n                      : { width: logoHeightPx, height: logoHeightPx }\n                  }\n                >\n                  {logo.url ? (\n                    <img\n                      src={logo.url}\n                      alt={logo.title}\n                      className=\"block h-full w-auto object-contain\"\n                    />\n                  ) : (\n                    <span className=\"text-base font-bold\">\n                      {logo.title.charAt(0)}\n                    </span>\n                  )}\n                </div>\n              }\n              label={\n                showBrandTitle ? (\n                  <span className=\"truncate whitespace-nowrap text-base font-medium text-[hsl(var(--foreground))]\">\n                    {layout?.brandTitle}\n                  </span>\n                ) : null\n              }\n              ariaLabel={logo.title}\n              title={logo.title}\n              className=\"h-auto min-w-0 justify-start border-transparent bg-transparent p-0 shadow-none hover:bg-transparent\"\n              classNames={\n                logo.url ? { icon: \"!h-auto !w-auto shrink-0\" } : undefined\n              }\n              onClick={logo.onClick}\n            />\n          ) : null)}\n      </div>\n\n      <div\n        className={cn(\n          \"flex min-w-0 items-center\",\n          getHeadbarNavClass(layout?.navPosition),\n        )}\n      >\n        <div className=\"no-scrollbar flex max-w-full min-w-0 items-center overflow-x-auto overscroll-x-contain\">\n          {navigation ?? (\n            <NavigationHeadbarMenu\n              activeItemId={activeItemId}\n              activeRootId={activeRootId}\n              items={navItems}\n              menuRadius={menuRadius}\n              onNavigate={onNavigate}\n            />\n          )}\n        </div>\n      </div>\n\n      <div className=\"flex min-w-0 items-center justify-end gap-3\">\n        {actions}\n        {extra}\n        {accountMenu}\n      </div>\n    </header>\n  );\n}\n\nexport function NavigationLayout({\n  activeItemId,\n  activeRootId,\n  allowModeSwitch = false,\n  accountMenu,\n  children,\n  className,\n  collapsedSidebarAccountMenu,\n  collapsedSidebarWidth = NAVIGATION_LAYOUT_SIDEBAR_COLLAPSED_WIDTH,\n  contextualSidebar = false,\n  contextualSidebarHeader,\n  contextualSidebarWidth = NAVIGATION_LAYOUT_CONTEXTUAL_SIDEBAR_WIDTH,\n  defaultMode = \"headbar\",\n  defaultSidebarCollapsed = false,\n  expandedSidebarWidth = NAVIGATION_LAYOUT_SIDEBAR_EXPANDED_WIDTH,\n  expandSidebarLabel = \"Expand sidebar\",\n  flush = false,\n  headbarActions,\n  headbarLayout,\n  logo,\n  mode,\n  navItems,\n  onModeChange,\n  onNavigate,\n  onSidebarCollapsedChange,\n  renderHeadbarExtra,\n  collapseSidebarLabel = \"Collapse sidebar\",\n  sidebarCollapsed: controlledSidebarCollapsed,\n  sidebarAccountMenu,\n  sidebarFooter,\n  sidebarHeader,\n  switchToHeadbarLabel = \"Switch to headbar\",\n  switchToSidebarLabel = \"Switch to sidebar\",\n}: NavigationLayoutProps) {\n  const [uncontrolledMode, setUncontrolledMode] =\n    useState<NavigationMode>(defaultMode);\n  const [uncontrolledSidebarCollapsed, setUncontrolledSidebarCollapsed] =\n    useState(defaultSidebarCollapsed);\n  const [revealRequest, setRevealRequest] = useState<{\n    id: string;\n    nonce: number;\n  } | null>(null);\n  const isModeControlled = mode !== undefined;\n  const isSidebarCollapsedControlled = controlledSidebarCollapsed !== undefined;\n  const navigationMode = isModeControlled ? mode : uncontrolledMode;\n  const sidebarCollapsed = isSidebarCollapsedControlled\n    ? controlledSidebarCollapsed\n    : uncontrolledSidebarCollapsed;\n  const isHeadbarMode = navigationMode === \"headbar\";\n  const sidebarWidth = sidebarCollapsed\n    ? collapsedSidebarWidth\n    : expandedSidebarWidth;\n  const resolvedActiveRootId =\n    activeRootId ?? findNavigationRootId(navItems, activeItemId);\n  const activeRoot = navItems.find((item) => item.id === resolvedActiveRootId);\n  const contextualItems = activeRoot?.children ?? [];\n\n  useEffect(() => {\n    if (!isModeControlled) {\n      setUncontrolledMode(defaultMode);\n    }\n  }, [defaultMode, isModeControlled]);\n\n  useEffect(() => {\n    if (!isSidebarCollapsedControlled) {\n      setUncontrolledSidebarCollapsed(defaultSidebarCollapsed);\n    }\n  }, [defaultSidebarCollapsed, isSidebarCollapsedControlled]);\n\n  const setNavigationMode = (nextMode: NavigationMode) => {\n    if (!isModeControlled) {\n      setUncontrolledMode(nextMode);\n    }\n    onModeChange?.(nextMode);\n  };\n\n  const setCollapsed = (collapsed: boolean) => {\n    if (!isSidebarCollapsedControlled) {\n      setUncontrolledSidebarCollapsed(collapsed);\n    }\n    onSidebarCollapsedChange?.(collapsed);\n  };\n\n  const navigationActions: NavigationLayoutAction[] = [];\n  if (allowModeSwitch) {\n    navigationActions.push({\n      id: \"toggle-headbar\",\n      label: switchToHeadbarLabel,\n      onClick: () => setNavigationMode(\"headbar\"),\n      icon: (\n        <svg\n          xmlns=\"http://www.w3.org/2000/svg\"\n          className=\"h-[18px] w-[18px] rotate-180\"\n          viewBox=\"0 0 24 24\"\n          fill=\"none\"\n          stroke=\"currentColor\"\n          strokeWidth=\"1.8\"\n          strokeLinecap=\"round\"\n          strokeLinejoin=\"round\"\n        >\n          <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n          <path d=\"M3 9h18\" />\n        </svg>\n      ),\n    });\n  }\n  navigationActions.push({\n    id: \"toggle-sidebar\",\n    label: sidebarCollapsed ? expandSidebarLabel : collapseSidebarLabel,\n    onClick: () => setCollapsed(!sidebarCollapsed),\n    icon: (\n      <svg\n        xmlns=\"http://www.w3.org/2000/svg\"\n        className=\"h-[18px] w-[18px]\"\n        viewBox=\"0 0 24 24\"\n        fill=\"none\"\n        stroke=\"currentColor\"\n        strokeWidth=\"1.8\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      >\n        <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n        <path d=\"M9 3v18\" />\n        <path d={sidebarCollapsed ? \"m14 9 3 3-3 3\" : \"m16 15-3-3 3-3\"} />\n      </svg>\n    ),\n  });\n\n  const sidebar = isHeadbarMode && contextualSidebar && contextualItems.length ? (\n    <aside\n      className=\"relative h-full min-h-0 shrink-0 overflow-hidden\"\n      data-navigation-contextual-sidebar={resolvedActiveRootId}\n      style={{ width: contextualSidebarWidth }}\n    >\n      <div className=\"flex h-full min-h-0 w-full flex-col gap-3 rounded-xl border border-[hsl(var(--input))] bg-[hsl(var(--background))] px-4 py-4\">\n        <div className=\"shrink-0 px-2 text-sm font-semibold text-[hsl(var(--foreground))]\">\n          {contextualSidebarHeader ?? activeRoot?.label}\n        </div>\n        <SidebarNavigationList\n          activeItemId={activeItemId}\n          items={contextualItems}\n          onNavigate={onNavigate}\n        />\n      </div>\n    </aside>\n  ) : isHeadbarMode ? null : (\n    <div\n      className={cn(\n        \"relative h-full min-h-0 shrink-0 transition-[width] duration-260\",\n        sidebarCollapsed ? \"z-20 overflow-visible\" : \"z-10 overflow-hidden\",\n      )}\n      style={{\n        width: sidebarWidth,\n        transitionTimingFunction: NAVIGATION_LAYOUT_TRANSITION_TIMING,\n      }}\n    >\n      <Sidebar\n        accountMenu={sidebarAccountMenu ?? accountMenu}\n        activeItemId={activeItemId}\n        actions={navigationActions}\n        collapsed={sidebarCollapsed}\n        collapsedAccountMenu={collapsedSidebarAccountMenu ?? accountMenu}\n        footer={sidebarFooter}\n        header={sidebarHeader}\n        items={navItems}\n        logo={logo}\n        onCollapsedChange={setCollapsed}\n        onNavigate={onNavigate}\n        onRevealRoot={(rootId) =>\n          setRevealRequest((prev) => ({\n            id: rootId,\n            nonce: (prev?.nonce ?? 0) + 1,\n          }))\n        }\n        revealRequest={revealRequest}\n        title={headbarLayout?.brandTitle}\n      />\n    </div>\n  );\n\n  const header = isHeadbarMode ? (\n    <NavigationHeadbar\n      activeItemId={activeItemId}\n      activeRootId={resolvedActiveRootId}\n      actions={\n        allowModeSwitch ? (\n          <>\n            {headbarActions}\n            <BaseButton\n              appearance={NAVIGATION_LAYOUT_DEFAULT_APPEARANCE}\n              tone=\"muted\"\n              icon={\n                <svg\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                  className=\"h-4 w-4 shrink-0\"\n                  viewBox=\"0 0 24 24\"\n                  fill=\"none\"\n                  stroke=\"currentColor\"\n                  strokeWidth=\"1.8\"\n                  strokeLinecap=\"round\"\n                  strokeLinejoin=\"round\"\n                >\n                  <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n                  <path d=\"M9 3v18\" />\n                  <path d=\"m14 9 3 3-3 3\" />\n                </svg>\n              }\n              label={\n                <span className=\"truncate whitespace-nowrap\">\n                  {switchToSidebarLabel}\n                </span>\n              }\n              onClick={() => setNavigationMode(\"sidebar\")}\n              className={cn(\n                \"h-auto min-w-0 shrink px-3 py-2 text-sm font-medium text-[hsl(var(--muted-foreground))] shadow-none hover:border-[hsl(var(--input))]/70 hover:bg-[hsl(var(--muted))]/60 hover:text-[hsl(var(--foreground))]\",\n                getHeadbarMenuRadiusClass(headbarLayout?.menuRadius),\n              )}\n            />\n          </>\n        ) : (\n          headbarActions\n        )\n      }\n      accountMenu={accountMenu}\n      extra={renderHeadbarExtra}\n      layout={headbarLayout}\n      logo={logo}\n      navItems={navItems}\n      onNavigate={onNavigate}\n    />\n  ) : null;\n\n  return (\n    <AppLayout\n      header={header}\n      sidebar={sidebar}\n      flush={flush}\n      className={className}\n    >\n      {children}\n    </AppLayout>\n  );\n}\n"]}