{"version":3,"sources":["../../../src/locale/en-US.ts","../../../src/locale/resolve-locale.ts","../../../src/provider/context.ts","../../../src/components/toast/index.tsx"],"names":["sonnerToast","SonnerToaster"],"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 {\n  isValidElement,\n  type ReactElement,\n  type ReactNode,\n  useCallback,\n  useEffect,\n  useRef,\n} from 'react';\nimport {\n  Toaster as SonnerToaster,\n  toast as sonnerToast,\n  type ExternalToast,\n  type ToastT,\n  type ToastToDismiss,\n  type ToasterProps,\n} from 'sonner';\n\nimport type { MonkeysToastMessages } from '../../locale';\nimport { useMonkeysLocaleMessages } from '../../provider/context';\n\nexport type ToastVariant = 'error' | 'warning' | 'success' | 'info';\n\nexport type ToastInput = Omit<ExternalToast, 'description'> & {\n  title?: ReactNode;\n  description?: ReactNode;\n  variant?: ToastVariant;\n};\n\nexport type MonkeysToasterProps = ToasterProps & {\n  useThemeClassNames?: boolean;\n};\n\nexport type MonkeysToastProviderProps = {\n  children: ReactNode;\n  toasterProps?: MonkeysToasterProps;\n};\n\ntype ToastValue =\n  | Error\n  | string\n  | {\n      message?: unknown;\n      title?: unknown;\n    }\n  | null\n  | undefined;\n\ntype ToastResolver<T> = T | ((value: ToastValue) => T);\ntype ToastTranslate = (value: string, params?: Record<string, unknown>) => string;\n\ntype ToastValueOptions = {\n  variant?: ToastResolver<ToastVariant | undefined>;\n  title?: ToastResolver<string | undefined>;\n  description?: ToastResolver<string | undefined>;\n  fallbackDescription?: ToastResolver<string | undefined>;\n  signature?: ToastResolver<string | undefined>;\n  duration?: ToastResolver<number | undefined>;\n  translate?: ToastTranslate;\n  messages?: Partial<ToastDefaultMessages>;\n};\n\ntype ToastFeedEntry =\n  | {\n      variant?: ToastVariant;\n      title?: string;\n      description?: string;\n      duration?: number;\n      signature?: string;\n    }\n  | null\n  | undefined;\n\ntype ToastDefaultMessages = MonkeysToastMessages;\n\ntype ToastPromiseInput<T = unknown> = Promise<T> | (() => Promise<T>);\ntype ToastPromiseReturn<T = unknown> = string | number | { unwrap: () => Promise<T> };\n\nexport type MonkeysToastApi = {\n  (message: ReactNode, options?: ExternalToast): string | number;\n  show: (input: ToastInput) => string | number | undefined;\n  error: (input: ReactNode | ToastInput, options?: ExternalToast) => string | number | undefined;\n  warning: (input: ReactNode | ToastInput, options?: ExternalToast) => string | number | undefined;\n  success: (input: ReactNode | ToastInput, options?: ExternalToast) => string | number | undefined;\n  info: (input: ReactNode | ToastInput, options?: ExternalToast) => string | number | undefined;\n  message: (message: ReactNode, options?: ExternalToast) => string | number;\n  promise: <T = unknown>(promise: ToastPromiseInput<T>, data?: unknown) => ToastPromiseReturn<T>;\n  dismiss: (id?: number | string) => string | number;\n  loading: (message: ReactNode, options?: ExternalToast) => string | number;\n  custom: (jsx: (id: number | string) => ReactElement, data?: ExternalToast) => string | number;\n  getHistory: () => Array<ToastT | ToastToDismiss>;\n  getToasts: () => Array<ToastT | ToastToDismiss>;\n};\n\nconst DEFAULT_TOAST_DURATION = 5200;\nconst TOAST_DEDUPE_WINDOW = 1200;\n\nconst ACTIONABLE_TOAST_PATTERNS = [\n  /^(please|select|enter|provide|write|choose|confirm|fill)\\b/i,\n  /^(请|请选择|请先|请输入|请填写|请确认|请留意)/,\n];\n\nconst DEFAULT_TOAST_CLASS_NAMES = {\n  toast:\n    'group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg',\n  description: 'group-[.toast]:text-muted-foreground',\n  actionButton: 'group-[.toast]:bg-primary group-[.toast]:text-primary-foreground',\n  cancelButton: 'group-[.toast]:bg-muted group-[.toast]:text-muted-foreground',\n};\n\nconst recentToastSignatures = new Map<string, number>();\n\nfunction cn(...classNames: Array<string | undefined | false>) {\n  return classNames.filter(Boolean).join(' ');\n}\n\nfunction isToastInput(input: unknown): input is ToastInput {\n  if (!input || typeof input !== 'object' || isValidElement(input)) {\n    return false;\n  }\n\n  return 'title' in input || 'description' in input || 'variant' in input;\n}\n\nfunction isEmptyToastContent(value: ReactNode) {\n  return value == null || (typeof value === 'string' && !value.trim());\n}\n\nfunction normalizeToastInput(input: ReactNode | ToastInput, variant: ToastVariant, options?: ExternalToast): ToastInput {\n  const { description: _description, ...baseOptions } = options ?? {};\n\n  if (isToastInput(input)) {\n    return {\n      ...baseOptions,\n      ...input,\n      variant: input.variant ?? variant,\n    };\n  }\n\n  return {\n    ...baseOptions,\n    title: input,\n    variant,\n  };\n}\n\nfunction resolveValue<T>(candidate: ToastResolver<T> | undefined, value: ToastValue) {\n  if (typeof candidate === 'function') {\n    return (candidate as (input: ToastValue) => T)(value);\n  }\n\n  return candidate;\n}\n\nfunction shouldEmitToast(signature: string) {\n  const now = Date.now();\n\n  for (const [key, timestamp] of recentToastSignatures.entries()) {\n    if (now - timestamp > TOAST_DEDUPE_WINDOW) {\n      recentToastSignatures.delete(key);\n    }\n  }\n\n  const previousTimestamp = recentToastSignatures.get(signature);\n  if (previousTimestamp && now - previousTimestamp < TOAST_DEDUPE_WINDOW) {\n    return false;\n  }\n\n  recentToastSignatures.set(signature, now);\n  return true;\n}\n\nfunction translateMessage(translate: ToastTranslate | undefined, value: string) {\n  return translate ? translate(value, { defaultValue: value }) : value;\n}\n\nfunction getDefaultMessage(\n  messages: Partial<ToastDefaultMessages> | undefined,\n  localeMessages: ToastDefaultMessages,\n  key: keyof ToastDefaultMessages,\n) {\n  return messages?.[key] ?? localeMessages[key];\n}\n\nfunction emitToast(input: ToastInput) {\n  const { title, description, duration, variant = 'info', ...options } = input;\n  const message = isEmptyToastContent(title) ? description : title;\n\n  if (isEmptyToastContent(message)) {\n    return undefined;\n  }\n\n  const descriptionValue =\n    !isEmptyToastContent(description) && description !== message ? description : undefined;\n  const sonnerOptions: ExternalToast = {\n    ...options,\n    description: descriptionValue,\n    duration: duration ?? DEFAULT_TOAST_DURATION,\n  };\n\n  switch (variant) {\n    case 'error':\n      return sonnerToast.error(message, sonnerOptions);\n    case 'warning':\n      return sonnerToast.warning(message, sonnerOptions);\n    case 'success':\n      return sonnerToast.success(message, sonnerOptions);\n    default:\n      return sonnerToast(message, sonnerOptions);\n  }\n}\n\nexport function extractToastMessage(value: ToastValue, fallback = '') {\n  if (!value) return fallback;\n\n  if (typeof value === 'string') {\n    const nextMessage = value.trim();\n    return nextMessage || fallback;\n  }\n\n  if (value instanceof Error) {\n    const nextMessage = String(value.message || '').trim();\n    return nextMessage || fallback;\n  }\n\n  if (typeof value === 'object' && typeof value.message === 'string') {\n    const nextMessage = value.message.trim();\n    if (nextMessage) return nextMessage;\n  }\n\n  if (typeof value === 'object' && typeof value.title === 'string') {\n    const nextTitle = value.title.trim();\n    if (nextTitle) return nextTitle;\n  }\n\n  return fallback;\n}\n\nexport function resolveToastVariantForMessage(value: ToastValue): ToastVariant {\n  const message = extractToastMessage(value);\n\n  if (ACTIONABLE_TOAST_PATTERNS.some((pattern) => pattern.test(message))) {\n    return 'warning';\n  }\n\n  return 'error';\n}\n\nexport function MonkeysToaster({\n  className,\n  closeButton = true,\n  position = 'bottom-right',\n  richColors = true,\n  toastOptions,\n  useThemeClassNames = true,\n  visibleToasts = 10,\n  ...props\n}: MonkeysToasterProps) {\n  return (\n    <SonnerToaster\n      className={cn('pointer-events-auto toaster group', className)}\n      closeButton={closeButton}\n      position={position}\n      richColors={richColors}\n      toastOptions={{\n        ...toastOptions,\n        classNames: useThemeClassNames\n          ? {\n              ...DEFAULT_TOAST_CLASS_NAMES,\n              ...toastOptions?.classNames,\n            }\n          : toastOptions?.classNames,\n      }}\n      visibleToasts={visibleToasts}\n      {...props}\n    />\n  );\n}\n\nexport function MonkeysToastProvider({ children, toasterProps }: MonkeysToastProviderProps) {\n  return (\n    <>\n      {children}\n      <MonkeysToaster {...toasterProps} />\n    </>\n  );\n}\n\nexport function useToastOnValue(value: ToastValue, options: ToastValueOptions = {}) {\n  const previousSignatureRef = useRef<string | null>(null);\n  const localeMessages = useMonkeysLocaleMessages().toast;\n  const translate = options.translate;\n\n  useEffect(() => {\n    if (!value) {\n      previousSignatureRef.current = null;\n      return;\n    }\n\n    const variant = resolveValue(options.variant, value) ?? 'error';\n    const rawTitle = resolveValue(options.title, value);\n    const rawFallbackDescription = resolveValue(options.fallbackDescription, value);\n    const rawDescription =\n      resolveValue(options.description, value) ?? extractToastMessage(value, rawFallbackDescription || '');\n    const title = translateMessage(\n      translate,\n      rawTitle ||\n        getDefaultMessage(\n          options.messages,\n          localeMessages,\n          variant === 'warning' ? 'warningTitle' : 'errorTitle',\n        ),\n    );\n    const description = translateMessage(\n      translate,\n      rawDescription ||\n        getDefaultMessage(\n          options.messages,\n          localeMessages,\n          variant === 'warning' ? 'defaultWarningDescription' : 'defaultErrorDescription',\n        ),\n    );\n    const signature = resolveValue(options.signature, value) || [variant, title, description].join('|');\n\n    if (previousSignatureRef.current === signature) {\n      return;\n    }\n\n    previousSignatureRef.current = signature;\n\n    if (!shouldEmitToast(signature)) {\n      return;\n    }\n\n    toast.show({\n      variant,\n      title,\n      description,\n      duration: resolveValue(options.duration, value),\n    });\n  }, [\n    options.description,\n    options.duration,\n    options.fallbackDescription,\n    options.messages,\n    options.signature,\n    options.title,\n    options.variant,\n    localeMessages,\n    translate,\n    value,\n  ]);\n}\n\nexport function useToastFeed(items: ToastFeedEntry[], options: Pick<ToastValueOptions, 'messages' | 'translate'> = {}) {\n  const previousVisibleSignaturesRef = useRef<Set<string>>(new Set());\n  const localeMessages = useMonkeysLocaleMessages().toast;\n  const translate = options.translate;\n  const emitItem = useCallback(\n    (item: NonNullable<ToastFeedEntry>, index: number, visibleSignatures: Set<string>) => {\n      const variant = item.variant ?? 'info';\n      const title = translateMessage(\n        translate,\n        item.title ||\n          getDefaultMessage(\n            options.messages,\n            localeMessages,\n            variant === 'warning' ? 'warningTitle' : 'errorTitle',\n          ),\n      );\n      const description = translateMessage(\n        translate,\n        item.description ||\n          getDefaultMessage(\n            options.messages,\n            localeMessages,\n            variant === 'warning' ? 'defaultWarningDescription' : 'defaultErrorDescription',\n          ),\n      );\n      const signature = item.signature || [variant, title, description, index].join('|');\n\n      visibleSignatures.add(signature);\n\n      if (previousVisibleSignaturesRef.current.has(signature) || !shouldEmitToast(signature)) {\n        return;\n      }\n\n      toast.show({\n        variant,\n        title,\n        description,\n        duration: item.duration,\n      });\n    },\n    [localeMessages, options.messages, translate],\n  );\n\n  useEffect(() => {\n    const visibleSignatures = new Set<string>();\n\n    items.forEach((item, index) => {\n      if (item) {\n        emitItem(item, index, visibleSignatures);\n      }\n    });\n\n    previousVisibleSignaturesRef.current = visibleSignatures;\n  }, [emitItem, items]);\n}\n\nexport const toast: MonkeysToastApi = Object.assign(\n  (message: ReactNode, options?: ExternalToast) => sonnerToast(message, options),\n  {\n    show: emitToast,\n    error: (input: ReactNode | ToastInput, options?: ExternalToast) =>\n      emitToast(normalizeToastInput(input, 'error', options)),\n    warning: (input: ReactNode | ToastInput, options?: ExternalToast) =>\n      emitToast(normalizeToastInput(input, 'warning', options)),\n    success: (input: ReactNode | ToastInput, options?: ExternalToast) =>\n      emitToast(normalizeToastInput(input, 'success', options)),\n    info: (input: ReactNode | ToastInput, options?: ExternalToast) =>\n      emitToast(normalizeToastInput(input, 'info', options)),\n    message: sonnerToast.message,\n    promise: sonnerToast.promise as MonkeysToastApi['promise'],\n    dismiss: sonnerToast.dismiss,\n    loading: sonnerToast.loading,\n    custom: sonnerToast.custom as (jsx: (id: number | string) => ReactElement, data?: ExternalToast) => string | number,\n    getHistory: sonnerToast.getHistory,\n    getToasts: sonnerToast.getToasts,\n  },\n);\n\nexport { MonkeysToaster as Toaster, MonkeysToastProvider as ToastProvider };\nexport type { ExternalToast, ToasterProps };\n"]}