@datatechsolutions/ui 3.9.1 → 3.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/astrlabe/contracts.d.mts +18 -2
  2. package/dist/astrlabe/contracts.d.ts +18 -2
  3. package/dist/astrlabe/index.d.mts +2 -2
  4. package/dist/astrlabe/index.d.ts +2 -2
  5. package/dist/astrlabe/index.js +109 -109
  6. package/dist/astrlabe/index.mjs +5 -5
  7. package/dist/astrlabe/workflow-canvas.js +5 -5
  8. package/dist/astrlabe/workflow-canvas.mjs +4 -4
  9. package/dist/{chunk-SJ6SUS7H.mjs → chunk-2AJ73ULK.mjs} +3 -3
  10. package/dist/{chunk-SJ6SUS7H.mjs.map → chunk-2AJ73ULK.mjs.map} +1 -1
  11. package/dist/{chunk-WJENX6KB.js → chunk-35O2X7WY.js} +9 -9
  12. package/dist/{chunk-WJENX6KB.js.map → chunk-35O2X7WY.js.map} +1 -1
  13. package/dist/{chunk-ZQRUAXGP.mjs → chunk-35P352JX.mjs} +331 -200
  14. package/dist/chunk-35P352JX.mjs.map +1 -0
  15. package/dist/{chunk-6QJI5YOJ.mjs → chunk-37FWIPYO.mjs} +3 -3
  16. package/dist/{chunk-6QJI5YOJ.mjs.map → chunk-37FWIPYO.mjs.map} +1 -1
  17. package/dist/{chunk-EAIE4QGD.mjs → chunk-3US2QXEF.mjs} +20 -20
  18. package/dist/{chunk-EAIE4QGD.mjs.map → chunk-3US2QXEF.mjs.map} +1 -1
  19. package/dist/{chunk-R6GEJBFC.js → chunk-62BD4WLW.js} +34 -34
  20. package/dist/{chunk-R6GEJBFC.js.map → chunk-62BD4WLW.js.map} +1 -1
  21. package/dist/{chunk-7AM2SXEF.js → chunk-6TKCMQ75.js} +85 -85
  22. package/dist/{chunk-7AM2SXEF.js.map → chunk-6TKCMQ75.js.map} +1 -1
  23. package/dist/{chunk-OVQ4MKCV.mjs → chunk-7D52TFVL.mjs} +3 -3
  24. package/dist/{chunk-OVQ4MKCV.mjs.map → chunk-7D52TFVL.mjs.map} +1 -1
  25. package/dist/{chunk-PD3JLDA5.mjs → chunk-7KPMLHPR.mjs} +3 -3
  26. package/dist/{chunk-PD3JLDA5.mjs.map → chunk-7KPMLHPR.mjs.map} +1 -1
  27. package/dist/{chunk-DQIEVLA3.js → chunk-7MPIYSRH.js} +63 -63
  28. package/dist/{chunk-DQIEVLA3.js.map → chunk-7MPIYSRH.js.map} +1 -1
  29. package/dist/{chunk-2ZY3IQ2I.mjs → chunk-7V7WEXHS.mjs} +3 -3
  30. package/dist/{chunk-2ZY3IQ2I.mjs.map → chunk-7V7WEXHS.mjs.map} +1 -1
  31. package/dist/{chunk-T4IYOKHR.js → chunk-BCJATFZE.js} +25 -25
  32. package/dist/{chunk-T4IYOKHR.js.map → chunk-BCJATFZE.js.map} +1 -1
  33. package/dist/{chunk-ZDXEGSCF.js → chunk-BO3RXG6M.js} +45 -45
  34. package/dist/{chunk-ZDXEGSCF.js.map → chunk-BO3RXG6M.js.map} +1 -1
  35. package/dist/{chunk-CRBGZA6Y.js → chunk-G52HXPSB.js} +13 -13
  36. package/dist/{chunk-CRBGZA6Y.js.map → chunk-G52HXPSB.js.map} +1 -1
  37. package/dist/{chunk-UZIICTIY.js → chunk-GKI74CPB.js} +55 -55
  38. package/dist/{chunk-UZIICTIY.js.map → chunk-GKI74CPB.js.map} +1 -1
  39. package/dist/{chunk-RFUSH7WD.js → chunk-GTJGX7IZ.js} +10 -10
  40. package/dist/{chunk-RFUSH7WD.js.map → chunk-GTJGX7IZ.js.map} +1 -1
  41. package/dist/{chunk-U6VFS3RD.js → chunk-H475T2N7.js} +143 -143
  42. package/dist/chunk-H475T2N7.js.map +1 -0
  43. package/dist/{chunk-ZQEMKEEH.mjs → chunk-HUAWGBYL.mjs} +3 -3
  44. package/dist/{chunk-ZQEMKEEH.mjs.map → chunk-HUAWGBYL.mjs.map} +1 -1
  45. package/dist/{chunk-RHRJXK5R.mjs → chunk-IGOMJHC6.mjs} +11 -3
  46. package/dist/chunk-IGOMJHC6.mjs.map +1 -0
  47. package/dist/{chunk-6E2YH67A.js → chunk-JTD3BBVI.js} +35 -35
  48. package/dist/{chunk-6E2YH67A.js.map → chunk-JTD3BBVI.js.map} +1 -1
  49. package/dist/{chunk-2E7HYTS7.mjs → chunk-K4AJL4BH.mjs} +3 -3
  50. package/dist/{chunk-2E7HYTS7.mjs.map → chunk-K4AJL4BH.mjs.map} +1 -1
  51. package/dist/{chunk-OEZ7GAJY.mjs → chunk-KTEEXEAX.mjs} +6 -6
  52. package/dist/{chunk-OEZ7GAJY.mjs.map → chunk-KTEEXEAX.mjs.map} +1 -1
  53. package/dist/{chunk-WS3IJFPW.mjs → chunk-NM3YTQ26.mjs} +3 -3
  54. package/dist/{chunk-WS3IJFPW.mjs.map → chunk-NM3YTQ26.mjs.map} +1 -1
  55. package/dist/{chunk-BWUFLW5W.mjs → chunk-NRVV4PHB.mjs} +7 -7
  56. package/dist/{chunk-BWUFLW5W.mjs.map → chunk-NRVV4PHB.mjs.map} +1 -1
  57. package/dist/{chunk-A2RIX2RK.js → chunk-O2CUOJ74.js} +4 -4
  58. package/dist/{chunk-A2RIX2RK.js.map → chunk-O2CUOJ74.js.map} +1 -1
  59. package/dist/{chunk-CLTNCBSP.js → chunk-PHBZ3TXE.js} +4 -4
  60. package/dist/{chunk-CLTNCBSP.js.map → chunk-PHBZ3TXE.js.map} +1 -1
  61. package/dist/{chunk-ARLYOLSO.mjs → chunk-R3CGJK7D.mjs} +3 -3
  62. package/dist/{chunk-ARLYOLSO.mjs.map → chunk-R3CGJK7D.mjs.map} +1 -1
  63. package/dist/{chunk-GQWC4EKE.mjs → chunk-TCIK6WHT.mjs} +24 -22
  64. package/dist/chunk-TCIK6WHT.mjs.map +1 -0
  65. package/dist/{chunk-IVKFXPLO.js → chunk-Z6FZQOTW.js} +46 -44
  66. package/dist/chunk-Z6FZQOTW.js.map +1 -0
  67. package/dist/{chunk-MT66VKLS.js → chunk-ZGVN23J4.js} +331 -200
  68. package/dist/chunk-ZGVN23J4.js.map +1 -0
  69. package/dist/{chunk-AXBD6OAF.mjs → chunk-ZJMYLUZ2.mjs} +12 -12
  70. package/dist/chunk-ZJMYLUZ2.mjs.map +1 -0
  71. package/dist/{chunk-SY4MUT5V.js → chunk-ZUU7G3PC.js} +11 -2
  72. package/dist/chunk-ZUU7G3PC.js.map +1 -0
  73. package/dist/index.d.mts +124 -34
  74. package/dist/index.d.ts +124 -34
  75. package/dist/index.js +666 -666
  76. package/dist/index.mjs +3 -3
  77. package/dist/platform/admin/index.js +11 -11
  78. package/dist/platform/admin/index.mjs +5 -5
  79. package/dist/platform/agents-workspace.js +8 -8
  80. package/dist/platform/agents-workspace.mjs +7 -7
  81. package/dist/platform/app-shell.js +5 -5
  82. package/dist/platform/app-shell.mjs +4 -4
  83. package/dist/platform/auth/index.js +23 -23
  84. package/dist/platform/auth/index.mjs +5 -5
  85. package/dist/platform/billing/index.js +5 -5
  86. package/dist/platform/billing/index.mjs +4 -4
  87. package/dist/platform/impersonation/index.js +5 -5
  88. package/dist/platform/impersonation/index.mjs +4 -4
  89. package/dist/platform/index.js +86 -86
  90. package/dist/platform/index.mjs +19 -19
  91. package/dist/platform/pages/index.d.mts +238 -6
  92. package/dist/platform/pages/index.d.ts +238 -6
  93. package/dist/platform/pages/index.js +2093 -345
  94. package/dist/platform/pages/index.js.map +1 -1
  95. package/dist/platform/pages/index.mjs +1872 -126
  96. package/dist/platform/pages/index.mjs.map +1 -1
  97. package/dist/platform/settings/index.js +8 -8
  98. package/dist/platform/settings/index.mjs +7 -7
  99. package/dist/platform/workflow-api-client.d.mts +1 -1
  100. package/dist/platform/workflow-api-client.d.ts +1 -1
  101. package/dist/platform/workflow-api-client.js +65 -61
  102. package/dist/platform/workflow-api-client.mjs +1 -1
  103. package/dist/platform/workflow-canvas-shell.js +6 -6
  104. package/dist/platform/workflow-canvas-shell.mjs +5 -5
  105. package/dist/{rule-form-BYJzyork.d.mts → rule-form-BkKCY8Tc.d.mts} +8 -2
  106. package/dist/{rule-form-BYJzyork.d.ts → rule-form-CBD8wlrw.d.ts} +8 -2
  107. package/dist/{workflow-api-client-CpFl3WcG.d.mts → workflow-api-client-D9_0Spdz.d.mts} +16 -1
  108. package/dist/{workflow-api-client-uLICOanv.d.ts → workflow-api-client-E1QFRgeP.d.ts} +16 -1
  109. package/package.json +1 -1
  110. package/dist/chunk-AXBD6OAF.mjs.map +0 -1
  111. package/dist/chunk-GQWC4EKE.mjs.map +0 -1
  112. package/dist/chunk-IVKFXPLO.js.map +0 -1
  113. package/dist/chunk-MT66VKLS.js.map +0 -1
  114. package/dist/chunk-RHRJXK5R.mjs.map +0 -1
  115. package/dist/chunk-SY4MUT5V.js.map +0 -1
  116. package/dist/chunk-U6VFS3RD.js.map +0 -1
  117. package/dist/chunk-ZQRUAXGP.mjs.map +0 -1
@@ -523,6 +523,13 @@ async function createDatasource(data) {
523
523
  body: JSON.stringify(body)
524
524
  });
525
525
  }
526
+ async function testDatasource(data) {
527
+ const body = toDatasourceWireBody(data);
528
+ return request("/datasources/test", {
529
+ method: "POST",
530
+ body: JSON.stringify(body)
531
+ });
532
+ }
526
533
  function toDatasourceWireBody(data) {
527
534
  const CREDENTIAL_KEYS = [
528
535
  "host",
@@ -563,6 +570,7 @@ function toDatasourceWireBody(data) {
563
570
  if (typeof data.maxPoolSize === "number") body.maxPoolSize = data.maxPoolSize;
564
571
  if (typeof data.timeoutMs === "number") body.timeoutMs = data.timeoutMs;
565
572
  if (typeof data.readOnly === "boolean") body.readOnly = data.readOnly;
573
+ if (typeof data.maskPii === "boolean") body.maskPii = data.maskPii;
566
574
  return body;
567
575
  }
568
576
  async function getDatasourceTables(datasourceId) {
@@ -625,6 +633,7 @@ exports.setAccessTokenProvider = setAccessTokenProvider;
625
633
  exports.setAuthenticatedFetch = setAuthenticatedFetch;
626
634
  exports.submitApproval = submitApproval;
627
635
  exports.subscribeToRunEvents = subscribeToRunEvents;
636
+ exports.testDatasource = testDatasource;
628
637
  exports.updateAgentConfig = updateAgentConfig;
629
638
  exports.updateAgentPrompt = updateAgentPrompt;
630
639
  exports.updateAgentRule = updateAgentRule;
@@ -632,5 +641,5 @@ exports.updateAgentTool = updateAgentTool;
632
641
  exports.updateAgentToolDefinition = updateAgentToolDefinition;
633
642
  exports.updateModelProviderConnection = updateModelProviderConnection;
634
643
  exports.updateWorkflowSettings = updateWorkflowSettings;
635
- //# sourceMappingURL=chunk-SY4MUT5V.js.map
636
- //# sourceMappingURL=chunk-SY4MUT5V.js.map
644
+ //# sourceMappingURL=chunk-ZUU7G3PC.js.map
645
+ //# sourceMappingURL=chunk-ZUU7G3PC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/platform/workflow-api-client.ts"],"names":["buildLambdaApiUrl","HttpResponseError"],"mappings":"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","file":"chunk-ZUU7G3PC.js","sourcesContent":["import type {\n AgentModel,\n AgentRule,\n AgentTool,\n WorkflowTool,\n VariableValue,\n Workflow,\n WorkflowGraph,\n WorkflowRun,\n} from '@ui/astrlabe/contracts'\nimport type { AgentWithPrompts } from '@ui/astrlabe'\nimport type { AgentPrompt } from '@datatechsolutions/shared-domain/ports/workflow'\nimport type { AgentConfigLike, DataSource } from '@datatechsolutions/shared-domain/common'\nimport { HttpResponseError } from '@datatechsolutions/shared-domain/common'\nimport { buildLambdaApiUrl } from './utils/lambda-endpoint'\nimport type { DatasourceFormData } from './pages/datasource-modal'\n\n// ---------------------------------------------------------------------------\n// Module-level authenticated fetch — set by setAuthenticatedFetch() during\n// provider initialization. This lets plain async functions (non-hooks) make\n// authenticated API calls without needing React context.\n// ---------------------------------------------------------------------------\nlet _authFetch: typeof fetch = fetch\n\n/**\n * Register an authenticated fetch function (call once from a provider/layout).\n * After this, all workflow API calls automatically include the JWT token.\n */\nexport function setAuthenticatedFetch(authFetch: typeof fetch): void {\n _authFetch = authFetch\n}\n\n// ---------------------------------------------------------------------------\n// Access token provider — used by SSE (EventSource cannot set headers, so\n// we pass the token as `?accessToken=<token>` on the event stream URL).\n// ---------------------------------------------------------------------------\n\nlet _tokenProvider: () => Promise<string | null> = async () => null\n\nexport function setAccessTokenProvider(provider: () => Promise<string | null>): void {\n _tokenProvider = provider\n}\n\nexport async function getCurrentAccessToken(): Promise<string | null> {\n try {\n return await _tokenProvider()\n } catch {\n return null\n }\n}\n\n/**\n * Build a full URL for a workflow API path, optionally appending the current\n * access token as a query parameter. Useful for APIs that require auth but\n * cannot set custom headers (EventSource, direct links).\n */\nexport async function buildAuthenticatedApiUrl(\n path: string,\n options: { includeAccessToken?: boolean } = {},\n): Promise<string> {\n const baseUrl = useExternalWorkflowApi()\n ? resolveWorkflowApiBaseUrl()\n : buildLambdaApiUrl('').replace(/\\/$/, '')\n const url = new URL(`${baseUrl}${path}`)\n if (options.includeAccessToken) {\n const token = await getCurrentAccessToken()\n if (token && token.length > 0) {\n url.searchParams.set('accessToken', token)\n }\n }\n return url.toString()\n}\n\n// ---------------------------------------------------------------------------\n// Config helpers\n// ---------------------------------------------------------------------------\n\nfunction useExternalWorkflowApi(): boolean {\n return import.meta.env.VITE_WORKFLOW_API_MODE === 'external'\n}\n\nfunction resolveWorkflowApiBaseUrl(): string {\n const baseUrl = import.meta.env.VITE_WORKFLOW_API_BASE_URL\n if (!baseUrl || baseUrl.trim().length === 0) {\n throw new Error('Missing VITE_WORKFLOW_API_BASE_URL for external workflow API mode')\n }\n return baseUrl.replace(/\\/$/, '')\n}\n\nfunction getPublishableKey(): string {\n const key = import.meta.env.VITE_WORKFLOW_BUILDER_PUBLISHABLE_KEY\n if (!key || key.trim().length === 0) {\n throw new Error('Missing VITE_WORKFLOW_BUILDER_PUBLISHABLE_KEY')\n }\n return key\n}\n\n// ---------------------------------------------------------------------------\n// Core request function — uses the registered authenticated fetch\n// ---------------------------------------------------------------------------\n\nasync function request<T>(path: string, init?: RequestInit): Promise<T> {\n const publishableKey = useExternalWorkflowApi() ? getPublishableKey() : null\n\n const baseUrl = publishableKey\n ? resolveWorkflowApiBaseUrl()\n : buildLambdaApiUrl('').replace(/\\/$/, '')\n\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n }\n\n if (publishableKey) {\n headers.Authorization = `Bearer ${publishableKey}`\n headers['X-Workflow-Key'] = publishableKey\n }\n\n const response = await _authFetch(`${baseUrl}${path}`, {\n ...init,\n credentials: init?.credentials ?? 'include',\n headers: { ...headers, ...(init?.headers as Record<string, string> | undefined) },\n })\n\n if (response.status === 204) return undefined as T\n\n const payload = await response.json().catch(() => null)\n\n if (!response.ok) {\n const message = (payload as { error?: string; message?: string })?.message\n ?? (payload as { error?: string })?.error\n ?? `HTTP ${response.status}: ${response.statusText}`\n throw new HttpResponseError(message, response.status)\n }\n\n // Unwrap any `{ data: T }` envelope the Rust API returns. Some handlers\n // emit `{ success: true, data: T }`; others (list endpoints like\n // `/rules`, `/workflows`) emit just `{ data: T }`. Treating the presence\n // of a top-level `data` key as the signal is what shields pages from\n // the mismatch — without this, callers like `getAgentRules` fall through\n // to `payload.data` manually, and any null/empty body crashes the\n // `rules.map(...)` render with \"Cannot read properties of undefined\".\n if (\n payload &&\n typeof payload === 'object'\n && 'data' in payload\n && (!('success' in payload) || (payload as { success: boolean }).success !== false)\n ) {\n return (payload as { data: T }).data\n }\n\n return payload as T\n}\n\nasync function requestPublic<T>(path: string, init?: RequestInit): Promise<T> {\n const externalBaseUrl = import.meta.env.VITE_WORKFLOW_API_BASE_URL?.trim()\n const baseUrl = externalBaseUrl && externalBaseUrl.length > 0\n ? externalBaseUrl.replace(/\\/$/, '')\n : buildLambdaApiUrl('').replace(/\\/$/, '')\n\n const response = await fetch(`${baseUrl}${path}`, {\n ...init,\n credentials: init?.credentials ?? 'include',\n headers: {\n 'Content-Type': 'application/json',\n ...(init?.headers as Record<string, string> | undefined),\n },\n })\n\n if (response.status === 204) return undefined as T\n\n const payload = await response.json().catch(() => null)\n\n if (!response.ok) {\n const message = (payload as { error?: string; message?: string })?.message\n ?? (payload as { error?: string })?.error\n ?? `HTTP ${response.status}: ${response.statusText}`\n throw new HttpResponseError(message, response.status)\n }\n\n if (payload && typeof payload === 'object' && 'success' in payload && (payload as { success: boolean }).success && 'data' in payload) {\n return (payload as { data: T }).data\n }\n\n return payload as T\n}\n\n// ---------------------------------------------------------------------------\n// AI workflow assistants\n// ---------------------------------------------------------------------------\n\nexport type NodeValidationIssue = {\n nodeId: string\n nodeType: string\n field?: string\n code: string\n message: string\n}\n\nexport type AiValidateResponse = {\n ok: boolean\n structuralIssues: string[]\n nodeIssues: NodeValidationIssue[]\n rationale?: string | null\n}\n\nexport async function aiValidateWorkflow(body: {\n graph: WorkflowGraph\n connectionId?: string\n}): Promise<AiValidateResponse> {\n return request('/workflows/validate/ai', {\n method: 'POST',\n body: JSON.stringify(body),\n })\n}\n\nexport type AiGenerateResponse = {\n graph: WorkflowGraph\n ok: boolean\n structuralIssues: string[]\n nodeIssues: NodeValidationIssue[]\n rationale?: string | null\n}\n\nexport async function aiGenerateWorkflow(body: {\n prompt: string\n connectionId: string\n context?: string\n}): Promise<AiGenerateResponse> {\n return request('/workflows/generate/ai', {\n method: 'POST',\n body: JSON.stringify(body),\n })\n}\n\n// ---------------------------------------------------------------------------\n// Workflow CRUD\n// ---------------------------------------------------------------------------\n\nexport async function getWorkflows(): Promise<Workflow[]> {\n return request('/workflows')\n}\n\nexport async function getWorkflowById(workflowId: string): Promise<Workflow> {\n return request(`/workflows/${encodeURIComponent(workflowId)}`)\n}\n\nexport async function createWorkflow(data: { name: string; description?: string }): Promise<Workflow> {\n return request('/workflows', {\n method: 'POST',\n body: JSON.stringify(data),\n })\n}\n\nexport async function deleteWorkflow(workflowId: string): Promise<{ deleted: boolean }> {\n return request(`/workflows/${encodeURIComponent(workflowId)}`, {\n method: 'DELETE',\n })\n}\n\nexport async function saveWorkflowDraft(\n workflowId: string,\n graph: WorkflowGraph,\n metadata?: {\n name?: string\n description?: string\n slug?: string | null\n isDraft?: boolean\n isActive?: boolean\n },\n): Promise<Workflow> {\n return request(`/workflows/${encodeURIComponent(workflowId)}`, {\n method: 'PATCH',\n body: JSON.stringify({ graph, ...metadata }),\n })\n}\n\n/**\n * Settings modal PATCH — updates the workflow's identity + lifecycle\n * fields in one call. Pass `isDraft: true` to move a published workflow\n * back to draft, `isActive: false` to archive, etc. Anything omitted is\n * left untouched.\n */\nexport async function updateWorkflowSettings(\n workflowId: string,\n changes: {\n name?: string\n description?: string\n slug?: string | null\n isDraft?: boolean\n isActive?: boolean\n },\n): Promise<Workflow> {\n return request(`/workflows/${encodeURIComponent(workflowId)}`, {\n method: 'PATCH',\n body: JSON.stringify(changes),\n })\n}\n\nexport async function publishWorkflow(workflowId: string): Promise<Workflow> {\n return request(`/workflows/${encodeURIComponent(workflowId)}/publish`, {\n method: 'POST',\n })\n}\n\nexport async function executeWorkflow(\n workflowId: string,\n inputVariables?: Record<string, VariableValue>\n): Promise<WorkflowRun> {\n return request(`/workflows/${encodeURIComponent(workflowId)}/execute`, {\n method: 'POST',\n body: JSON.stringify({ inputVariables: inputVariables ?? {} }),\n })\n}\n\nexport async function getWorkflowRuns(workflowId: string): Promise<WorkflowRun[]> {\n return request(`/workflows/${encodeURIComponent(workflowId)}/execute`)\n}\n\n// ---------------------------------------------------------------------------\n// Workflow templates\n// ---------------------------------------------------------------------------\n\nexport interface WorkflowTemplateSummary {\n id: string\n name: string\n description: string\n tags: string[]\n}\n\nexport async function listWorkflowTemplates(): Promise<WorkflowTemplateSummary[]> {\n return request('/workflows/templates')\n}\n\n/**\n * Instantiate a workflow from a template. `connectionId` is required when\n * the template references a `{{connectionId}}` placeholder (all LLM-backed\n * templates do).\n */\nexport async function createWorkflowFromTemplate(\n templateId: string,\n body: { connectionId?: string; name?: string }\n): Promise<Workflow> {\n return request(`/workflows/templates/${encodeURIComponent(templateId)}`, {\n method: 'POST',\n body: JSON.stringify(body),\n })\n}\n\n// ---------------------------------------------------------------------------\n// Model provider connections (org-scoped LLM providers)\n// ---------------------------------------------------------------------------\n\nexport interface ModelProviderConnection {\n id: string\n organizationId: string\n providerId: string\n providerSlug?: string\n name: string\n region?: string\n endpoint?: string\n credentialRef?: string\n apiKeyRef?: string\n modelFilter?: string[]\n config?: Record<string, unknown>\n enabled: boolean\n createdAt?: string\n updatedAt?: string\n}\n\nexport async function listModelProviderConnections(): Promise<ModelProviderConnection[]> {\n return request('/agents/connections')\n}\n\n/**\n * One model family record joined onto a provider in the catalog.\n * Mirrors the `FamilyView` shape returned by `agents_providers.rs`.\n */\nexport type ModelFamilyCatalogEntry = {\n id: string\n slug: string\n name: string\n modelIds: string[]\n maxTokens?: number | null\n contextWindow?: string | null\n supportsTools?: boolean | null\n supportsVision?: boolean | null\n costTier?: string | null\n}\n\n/**\n * Catalog of supported LLM providers. Previously hard-coded in the\n * connections modal; now backed by `astrlabe.model_providers` +\n * `astrlabe.model_families` so new providers can be added server-side\n * without a frontend release.\n */\nexport type ModelProviderCatalogEntry = {\n id: string\n slug: string\n /** Slug normalized into the `ModelProviderType` enum the runtime uses. */\n normalizedSlug: string\n name: string\n category?: string | null\n logoUrl?: string | null\n docsUrl?: string | null\n authType?: string | null\n /**\n * Full family records joined from `model_families`. Empty array if no\n * families are seeded for this provider (`custom`, where the operator\n * supplies the model id at node-config time).\n */\n families: ModelFamilyCatalogEntry[]\n /** @deprecated — array of family slugs only. New callers read `families`. */\n supportedModelFamilies?: unknown\n regions?: string[] | null\n enabled: boolean\n}\n\nexport async function listModelProviderCatalog(): Promise<ModelProviderCatalogEntry[]> {\n const response = await request<ModelProviderCatalogEntry[] | { data: ModelProviderCatalogEntry[] }>(\n '/agents/providers',\n )\n if (Array.isArray(response)) return response\n if (response && typeof response === 'object' && Array.isArray((response as { data?: unknown }).data)) {\n return (response as { data: ModelProviderCatalogEntry[] }).data\n }\n return []\n}\n\nexport async function createModelProviderConnection(body: {\n providerSlug?: string\n providerId?: string\n name: string\n region?: string\n endpoint?: string\n credentialRef?: string\n apiKeyRef?: string\n modelFilter?: string[]\n config?: Record<string, unknown>\n}): Promise<ModelProviderConnection> {\n return request('/agents/connections', {\n method: 'POST',\n body: JSON.stringify(body),\n })\n}\n\nexport async function updateModelProviderConnection(\n id: string,\n body: {\n name?: string\n region?: string\n endpoint?: string\n credentialRef?: string\n apiKeyRef?: string\n modelFilter?: string[]\n config?: Record<string, unknown>\n enabled?: boolean\n },\n): Promise<ModelProviderConnection> {\n return request(`/agents/connections/${encodeURIComponent(id)}`, {\n method: 'PATCH',\n body: JSON.stringify(body),\n })\n}\n\nexport async function deleteModelProviderConnection(id: string): Promise<{ deleted: boolean }> {\n return request(`/agents/connections/${encodeURIComponent(id)}`, {\n method: 'DELETE',\n })\n}\n\n// ---------------------------------------------------------------------------\n// Agent config & prompts\n// ---------------------------------------------------------------------------\n\nexport async function getAgentPrompts(agentId: string): Promise<AgentPrompt[]> {\n return request(`/agents/prompts?agentId=${encodeURIComponent(agentId)}`)\n}\n\nexport async function getAgentModels(): Promise<AgentModel[]> {\n return request('/agents/models')\n}\n\nexport async function getAgentTools(agentId: string): Promise<WorkflowTool[]> {\n return request(`/agents/tools?agentId=${encodeURIComponent(agentId)}`)\n}\n\nexport async function updateAgentTool(toolId: string, updates: Partial<WorkflowTool>): Promise<WorkflowTool> {\n // Backend PATCH lives at `/agents/tools` (collection) and takes `id`\n // in the body rather than as a path parameter. The `enabled` field the\n // legacy client passed maps to `isEnabled`; `configOverrides` lets\n // callers tweak a workflow-tool binding's overrides without touching\n // the underlying definition.\n const wire: Record<string, unknown> = { id: toolId }\n if (typeof updates.enabled === 'boolean') wire.isEnabled = updates.enabled\n const overrides = (updates as { configOverrides?: unknown }).configOverrides\n if (overrides !== undefined) wire.configOverrides = overrides\n return request('/agents/tools', {\n method: 'PATCH',\n body: JSON.stringify(wire),\n })\n}\n\nexport async function createAgentTool(\n tool: Omit<WorkflowTool, 'organizationId' | 'createdAt' | 'updatedAt'>\n): Promise<WorkflowTool> {\n return request('/agents/tools', {\n method: 'POST',\n body: JSON.stringify(tool),\n })\n}\n\nexport async function deleteAgentTool(toolId: string): Promise<{ deleted: boolean }> {\n return request(`/agents/tools/${encodeURIComponent(toolId)}`, {\n method: 'DELETE',\n })\n}\n\n// ---------------------------------------------------------------------------\n// Agent Tool Definitions (tools available to agents, e.g. web search, code interpreter)\n// ---------------------------------------------------------------------------\n\nexport async function getAgentToolDefinitions(): Promise<AgentTool[]> {\n return request('/agents/tool-definitions')\n}\n\n/**\n * Create a custom agent tool definition. The backend (`POST\n * /agents/tool-definitions`) requires:\n * { name, description, toolType, inputSchema, handlerConfig }\n * where `inputSchema` is a JSON-Schema object with `type` + `properties`.\n */\nexport async function createAgentToolDefinition(\n toolDef: {\n name: string\n description?: string\n toolType: string\n inputSchema: Record<string, unknown>\n handlerConfig: Record<string, unknown>\n },\n): Promise<AgentTool> {\n return request('/agents/tool-definitions', {\n method: 'POST',\n body: JSON.stringify(toolDef),\n })\n}\n\n// ---------------------------------------------------------------------------\n// Rules\n// ---------------------------------------------------------------------------\n\nexport async function getAgentRules(): Promise<AgentRule[]> {\n const response = await request<AgentRule[] | { data: AgentRule[] } | null | undefined>('/rules')\n if (Array.isArray(response)) return response\n if (response && typeof response === 'object' && Array.isArray((response as { data?: unknown }).data)) {\n return (response as { data: AgentRule[] }).data\n }\n return []\n}\n\nexport async function updateAgentRule(\n ruleId: string,\n updates: Partial<AgentRule> & Record<string, unknown>,\n): Promise<AgentRule> {\n return request(`/rules/${encodeURIComponent(ruleId)}`, {\n method: 'PATCH',\n body: JSON.stringify(updates),\n })\n}\n\nexport async function createAgentRule(\n rule: Partial<AgentRule> & Record<string, unknown>,\n): Promise<AgentRule> {\n return request('/rules', {\n method: 'POST',\n body: JSON.stringify(rule),\n })\n}\n\nexport async function deleteAgentRule(ruleId: string): Promise<{ deleted: boolean }> {\n return request(`/rules/${encodeURIComponent(ruleId)}`, {\n method: 'DELETE',\n })\n}\n\nexport async function executeAgentRule(ruleId: string, input: Record<string, unknown>): Promise<unknown> {\n return request(`/rules/${encodeURIComponent(ruleId)}/execute`, {\n method: 'POST',\n body: JSON.stringify(input),\n })\n}\n\n// ---------------------------------------------------------------------------\n// Agent Configs (CRUD — agents_config handler)\n// ---------------------------------------------------------------------------\n\nexport async function createAgentConfig(input: Partial<AgentConfigLike>): Promise<AgentConfigLike> {\n return request('/agents/configs', {\n method: 'POST',\n body: JSON.stringify(input),\n })\n}\n\nexport async function updateAgentConfig(agentId: string, updates: Partial<AgentConfigLike>): Promise<AgentConfigLike> {\n return request(`/agents/configs/${encodeURIComponent(agentId)}`, {\n method: 'PATCH',\n body: JSON.stringify(updates),\n })\n}\n\nexport async function deleteAgentConfig(agentId: string): Promise<{ deleted: boolean }> {\n return request(`/agents/configs/${encodeURIComponent(agentId)}`, {\n method: 'DELETE',\n })\n}\n\n// ---------------------------------------------------------------------------\n// Agent Prompts (versioned prompt library)\n// ---------------------------------------------------------------------------\n\nexport async function createAgentPrompt(input: Omit<AgentPrompt, 'promptId' | 'version' | 'createdAt'>): Promise<AgentPrompt> {\n return request('/agents/prompts', {\n method: 'POST',\n body: JSON.stringify(input),\n })\n}\n\nexport async function updateAgentPrompt(promptId: string, updates: Partial<AgentPrompt>): Promise<AgentPrompt> {\n // Backend route is the collection PATCH `/agents/prompts` — id rides\n // in the body as `promptId`. The handler also requires `promptText`\n // (it overwrites the active version's text), so coerce the legacy\n // partial-AgentPrompt payload into that shape.\n const promptText = (updates as { promptText?: unknown }).promptText\n ?? (updates as { systemPrompt?: unknown }).systemPrompt\n ?? (updates as { content?: unknown }).content\n if (typeof promptText !== 'string' || promptText.length === 0) {\n throw new Error('updateAgentPrompt: `promptText` (or `systemPrompt`/`content`) is required')\n }\n return request('/agents/prompts', {\n method: 'PATCH',\n body: JSON.stringify({ promptId, promptText }),\n })\n}\n\nexport async function deleteAgentPrompt(promptId: string): Promise<{ deleted: boolean }> {\n // The collection route does not expose DELETE today. Surface a clear\n // error rather than silently 404 — callers are using soft-delete via\n // an enabled toggle on the prompt instead.\n void promptId\n throw new Error('deleteAgentPrompt is not supported by the backend yet — disable the prompt via PATCH instead')\n}\n\n// ---------------------------------------------------------------------------\n// Agent Tool Definitions — update / delete\n// ---------------------------------------------------------------------------\n\n/**\n * Patch an existing tool definition. The Rust handler takes the id in\n * the BODY (`toolId`) rather than the URL, and accepts a narrower set\n * of fields than create: `{toolId, name?, description?, parameters?,\n * implementationKey?}`. `implementationKey` is a JSON string that wraps\n * `handlerConfig` — the page wrapper produces that shape before calling.\n */\nexport async function updateAgentToolDefinition(\n agentToolId: string,\n updates: {\n name?: string\n description?: string\n parameters?: Record<string, unknown>\n implementationKey?: string\n },\n): Promise<AgentTool> {\n return request('/agents/tool-definitions', {\n method: 'PATCH',\n body: JSON.stringify({ toolId: agentToolId, ...updates }),\n })\n}\n\nexport async function deleteAgentToolDefinition(agentToolId: string): Promise<{ deleted: boolean }> {\n return request('/agents/tool-definitions', {\n method: 'DELETE',\n body: JSON.stringify({ toolId: agentToolId }),\n })\n}\n\n// ---------------------------------------------------------------------------\n// Workflow Runs — detail, cancel, replay\n// ---------------------------------------------------------------------------\n\nexport type WorkflowRunListParams = {\n workflowId?: string\n status?: string\n limit?: number\n offset?: number\n}\n\nexport async function listWorkflowRuns(params?: WorkflowRunListParams): Promise<{ items: WorkflowRun[]; total: number }> {\n const query = new URLSearchParams()\n if (params?.workflowId) query.set('workflowId', params.workflowId)\n if (params?.status) query.set('status', params.status)\n if (params?.limit) query.set('limit', String(params.limit))\n if (params?.offset) query.set('offset', String(params.offset))\n const path = query.toString().length > 0 ? `/workflow-runs?${query}` : '/workflow-runs'\n return request(path)\n}\n\nexport async function getWorkflowRunById(runId: string): Promise<WorkflowRun> {\n return request(`/workflow-runs/${encodeURIComponent(runId)}`)\n}\n\nexport async function cancelWorkflowRun(runId: string): Promise<WorkflowRun> {\n return request(`/workflow-runs/${encodeURIComponent(runId)}/cancel`, {\n method: 'POST',\n })\n}\n\nexport async function replayWorkflowRun(\n workflowId: string,\n runId: string,\n overrides?: Record<string, VariableValue>,\n): Promise<WorkflowRun> {\n // Empty body → exact rerun (legacy behaviour). With `overrides`, the\n // backend shallow-merges over the original `input_variables`.\n const body = overrides && Object.keys(overrides).length > 0\n ? JSON.stringify({ inputVariables: overrides })\n : undefined\n return request(\n `/workflows/${encodeURIComponent(workflowId)}/runs/${encodeURIComponent(runId)}/replay`,\n { method: 'POST', body },\n )\n}\n\nexport type NodeMetrics = {\n tokensIn?: number\n tokensOut?: number\n costUsd?: number\n provider?: string\n model?: string\n}\n\nexport type RunTimelineEntry = {\n nodeId: string\n nodeType: string\n status: 'pending' | 'running' | 'completed' | 'failed' | 'skipped'\n startedAt: string | null\n completedAt: string | null\n durationMs: number | null\n inputs?: Record<string, unknown>\n outputs?: Record<string, unknown>\n error?: string\n metrics?: NodeMetrics\n}\n\nexport async function getRunTimeline(workflowId: string, runId: string): Promise<RunTimelineEntry[]> {\n return request(\n `/workflows/${encodeURIComponent(workflowId)}/runs/${encodeURIComponent(runId)}/timeline`,\n )\n}\n\n// ---------------------------------------------------------------------------\n// Analytics (analytics_runs handler)\n// ---------------------------------------------------------------------------\n\nexport type AnalyticsSummary = {\n totalRuns: number\n runsByStatus: Record<string, number>\n avgDurationMs: number\n successRate: number\n perWorkflow: Array<{ workflowId: string; name: string; runs: number; successRate: number }>\n series?: Array<{ date: string; runs: number; successes: number; failures: number }>\n}\n\nexport async function getAnalyticsSummary(params?: { from?: string; to?: string }): Promise<AnalyticsSummary> {\n const query = new URLSearchParams()\n if (params?.from) query.set('from', params.from)\n if (params?.to) query.set('to', params.to)\n const path = query.toString().length > 0 ? `/analytics/runs?${query}` : '/analytics/runs'\n return request(path)\n}\n\n// ---------------------------------------------------------------------------\n// Uploads — presigned S3 upload/download\n// ---------------------------------------------------------------------------\n\nexport type PresignUploadInput = {\n fileName: string\n contentType: string\n fileSize?: number\n folder?: string\n}\n\nexport type PresignedUpload = {\n uploadUrl: string\n downloadUrl: string\n objectKey: string\n expiresAt: string\n}\n\nexport async function presignUpload(input: PresignUploadInput): Promise<PresignedUpload> {\n return request('/uploads', {\n method: 'POST',\n body: JSON.stringify(input),\n })\n}\n\nexport async function getUploadDownloadUrl(objectKey: string): Promise<{ downloadUrl: string }> {\n return request(`/uploads/${encodeURIComponent(objectKey)}`)\n}\n\nexport async function deleteUpload(objectKey: string): Promise<{ deleted: boolean }> {\n return request(`/uploads/${encodeURIComponent(objectKey)}`, {\n method: 'DELETE',\n })\n}\n\n// ---------------------------------------------------------------------------\n// Run Events — SSE subscription helper\n// ---------------------------------------------------------------------------\n\nexport type RunEvent = {\n /**\n * Discriminator for the event payload. The set is open-ended on purpose\n * — Phase 2/3 of the generative-UI work adds `ui-render` (per-section\n * progressive rendering) and `run-paused` (operator-input pause) without\n * a breaking change.\n */\n type:\n | 'run-started'\n | 'node-started'\n | 'node-completed'\n | 'node-failed'\n | 'run-completed'\n | 'run-failed'\n | 'run-paused'\n | 'ui-render'\n | 'log'\n runId: string\n nodeId?: string\n data?: Record<string, unknown>\n timestamp: string\n}\n\n// ---------------------------------------------------------------------------\n// Public sample workflows\n// ---------------------------------------------------------------------------\n\nexport type PublicSampleWorkflow = {\n slug: string\n name: string | null\n description: string | null\n graph: WorkflowGraph\n version: number | null\n publishedAt: string | null\n}\n\nexport async function getPublicSampleWorkflow(slug: string): Promise<PublicSampleWorkflow> {\n return requestPublic(`/samples/workflows/${encodeURIComponent(slug)}`)\n}\n\n// ---------------------------------------------------------------------------\n// Approvals (resolves a paused human_approval node)\n// ---------------------------------------------------------------------------\n\nexport type ApprovalDecision = {\n /** True approves and resumes the run; false fails it with `reason`. */\n approved: boolean\n /** Operator-supplied rationale, surfaced on the audit row. */\n reason?: string\n /**\n * Captured payload — for `input_request` sections this carries the\n * form field values. The downstream workflow nodes read it from\n * `inputs.approvals.<nodeId>.payload`.\n */\n payload?: Record<string, unknown>\n}\n\nexport type ApprovalResponse = {\n approvalId: string\n sourceRunId: string\n resumedRunId: string\n nodeId: string\n approved: boolean\n status: string\n}\n\n/**\n * Resolve a paused workflow run by recording an operator decision.\n * The backend writes an audit row, merges the decision into the run's\n * inputs, and re-executes — see #457.\n */\nexport async function submitApproval(\n runId: string,\n nodeId: string,\n decision: ApprovalDecision,\n): Promise<ApprovalResponse> {\n return request<ApprovalResponse>(\n `/workflow-runs/${encodeURIComponent(runId)}/approvals/${encodeURIComponent(nodeId)}`,\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(decision),\n },\n )\n}\n\n/**\n * Connection state for {@link subscribeToRunEvents}. UI consumers can\n * surface this — e.g. show \"reconnecting…\" badge — by passing an\n * `onState` callback.\n */\nexport type RunSubscriptionState = 'live' | 'reconnecting' | 'polling' | 'closed'\n\nconst SSE_MAX_RECONNECT_ATTEMPTS = 5\nconst SSE_RECONNECT_BASE_MS = 1_000\nconst SSE_RECONNECT_CAP_MS = 16_000\nconst POLLING_INTERVAL_MS = 5_000\n\nconst TERMINAL_EVENT_TYPES: ReadonlySet<RunEvent['type']> = new Set([\n 'run-completed',\n 'run-failed',\n])\n\nconst TERMINAL_RUN_STATUSES: ReadonlySet<string> = new Set([\n 'completed',\n 'failed',\n 'cancelled',\n])\n\n/**\n * Subscribe to a run's event stream with auto-reconnect + polling fallback.\n *\n * The default `EventSource` drops silently on idle proxies / cold-restarts\n * (CloudFront + Lambda Function URL combo at customer scale will close\n * an idle connection after ~30–60s). When that happens the run viewer\n * looks frozen with no signal to the user.\n *\n * Lifecycle:\n * 1. Open SSE. On `open`, state = `live`.\n * 2. On `error`, close the source and exponential-backoff (1s → 2s → 4s\n * → 8s → 16s, with jitter). State = `reconnecting`.\n * 3. After {@link SSE_MAX_RECONNECT_ATTEMPTS} failures, fall back to\n * polling `GET /workflow-runs/{runId}` every 5s. State = `polling`.\n * 4. On terminal event (`run-completed` / `run-failed`) or terminal\n * polled status (completed/failed/cancelled), close + state = `closed`.\n * 5. Returned disposer also flips to `closed`; idempotent.\n *\n * Backwards-compatible with the previous 3-arg signature; pass `onState`\n * as a 4th arg if you want to render connection-state UI.\n */\nexport function subscribeToRunEvents(\n runId: string,\n onEvent: (event: RunEvent) => void,\n onError?: (error: Event) => void,\n onState?: (state: RunSubscriptionState) => void,\n): () => void {\n let cancelled = false\n let attempt = 0\n let currentSource: EventSource | null = null\n let reconnectTimer: ReturnType<typeof setTimeout> | null = null\n let pollingTimer: ReturnType<typeof setInterval> | null = null\n\n const setState = (state: RunSubscriptionState) => {\n if (!cancelled) onState?.(state)\n }\n\n const cleanup = () => {\n if (cancelled) return\n cancelled = true\n if (currentSource) {\n currentSource.close()\n currentSource = null\n }\n if (reconnectTimer) {\n clearTimeout(reconnectTimer)\n reconnectTimer = null\n }\n if (pollingTimer) {\n clearInterval(pollingTimer)\n pollingTimer = null\n }\n setState('closed')\n }\n\n const startPolling = () => {\n if (cancelled) return\n setState('polling')\n pollingTimer = setInterval(() => {\n if (cancelled) return\n void getWorkflowRunById(runId)\n .then((run) => {\n if (cancelled) return\n // Surface a synthetic event so the consumer's onEvent path is\n // the single sink for both SSE + polling. Reuses the `log`\n // type with a marker payload — no schema change needed.\n onEvent({\n type: 'log',\n runId,\n data: { source: 'polling-fallback', run: run as unknown as Record<string, unknown> },\n timestamp: new Date().toISOString(),\n } as RunEvent)\n if (run.status && TERMINAL_RUN_STATUSES.has(run.status)) {\n cleanup()\n }\n })\n .catch(() => {\n // Swallow transient polling errors — the next tick will retry.\n })\n }, POLLING_INTERVAL_MS)\n }\n\n const connect = () => {\n if (cancelled) return\n\n const baseUrl = buildLambdaApiUrl('').replace(/\\/$/, '')\n const url = `${baseUrl}/workflow-runs/${encodeURIComponent(runId)}/events`\n const source = new EventSource(url, { withCredentials: true })\n currentSource = source\n\n source.addEventListener('open', () => {\n attempt = 0\n setState('live')\n })\n\n source.addEventListener('message', (event) => {\n try {\n const parsed = JSON.parse(event.data) as RunEvent\n onEvent(parsed)\n if (TERMINAL_EVENT_TYPES.has(parsed.type)) {\n cleanup()\n }\n } catch {\n // ignore malformed messages\n }\n })\n\n source.addEventListener('error', (errorEvent) => {\n if (cancelled) return\n onError?.(errorEvent)\n source.close()\n currentSource = null\n\n attempt += 1\n if (attempt > SSE_MAX_RECONNECT_ATTEMPTS) {\n startPolling()\n return\n }\n\n // Exponential backoff with jitter to avoid synchronous thundering\n // herd if many viewers reconnect at the same moment.\n const exponentialMs = Math.min(SSE_RECONNECT_BASE_MS * 2 ** (attempt - 1), SSE_RECONNECT_CAP_MS)\n const jitterMs = Math.random() * 500\n setState('reconnecting')\n reconnectTimer = setTimeout(connect, exponentialMs + jitterMs)\n })\n }\n\n connect()\n return cleanup\n}\n\nconst AGENT_AVATARS: Record<string, string> = {\n 'Sales Assistant': 'https://api.dicebear.com/9.x/lorelei/svg?seed=Rafael&hair=variant01&beardProbability=0&mouth=happy01',\n 'Sales Specialist': 'https://api.dicebear.com/9.x/lorelei/svg?seed=Marcos&hair=variant15&beardProbability=50&mouth=happy02',\n 'Support Agent': 'https://api.dicebear.com/9.x/lorelei/svg?seed=Ana&hair=variant43&beardProbability=0&mouth=happy01',\n 'Financial Analyst': 'https://api.dicebear.com/9.x/lorelei/svg?seed=Lucas&hair=variant08&beardProbability=50&mouth=happy02',\n 'Security Analyst': 'https://api.dicebear.com/9.x/lorelei/svg?seed=Pedro&hair=variant22&beardProbability=50&mouth=happy01',\n 'Data Analyst': 'https://api.dicebear.com/9.x/lorelei/svg?seed=Julia&hair=variant29&beardProbability=0&mouth=happy01',\n 'Market Analyst': 'https://api.dicebear.com/9.x/lorelei/svg?seed=Diego&hair=variant12&beardProbability=0&mouth=happy02',\n 'Pricing Manager': 'https://api.dicebear.com/9.x/lorelei/svg?seed=Beatriz&hair=variant38&beardProbability=0&mouth=happy01',\n 'Onboarding Agent': 'https://api.dicebear.com/9.x/lorelei/svg?seed=Camila&hair=variant35&beardProbability=0&mouth=happy01',\n}\n\nfunction defaultAvatar(name: string): string {\n return AGENT_AVATARS[name] ?? `https://api.dicebear.com/9.x/lorelei/svg?seed=${encodeURIComponent(name)}`\n}\n\nexport async function getAgentConfigsWithPrompts(): Promise<AgentWithPrompts[]> {\n const configs = await request<AgentConfigLike[]>('/agents/configs')\n\n return Promise.all(configs.map(async (agent) => {\n const raw = agent as Record<string, unknown>\n // Normalize snake_case from Rust API to camelCase\n const agentId = String(raw.agent_id ?? raw.agentId ?? agent.id ?? '')\n const id = agentId\n const avatar: string = typeof raw.avatar === 'string' && raw.avatar.length > 0\n ? raw.avatar\n : defaultAvatar(String(agent.name ?? ''))\n const modelId = String(raw.model_id ?? raw.modelId ?? '')\n const displayOrder = Number(raw.display_order ?? raw.displayOrder ?? raw.order ?? 0)\n const maxTokens = Number(raw.max_tokens ?? raw.maxTokens ?? 2048)\n const normalized = { ...raw, agentId, modelId, displayOrder, maxTokens, order: displayOrder }\n if (!id) return { ...(normalized as unknown as AgentWithPrompts), avatar, promptCount: 0, activePromptVersion: 0 }\n try {\n const prompts = await getAgentPrompts(id)\n const activePrompt = prompts.find((prompt) => prompt.isActive)\n return {\n ...(normalized as unknown as AgentWithPrompts),\n avatar,\n promptCount: prompts.length,\n activePromptVersion: activePrompt?.version ?? 0,\n }\n } catch {\n return {\n ...(normalized as unknown as AgentWithPrompts),\n avatar,\n promptCount: 0,\n activePromptVersion: 0,\n }\n }\n }))\n}\n\n// ---------------------------------------------------------------------------\n// Datasources\n// ---------------------------------------------------------------------------\n\nexport async function getDatasources(): Promise<DataSource[]> {\n return request('/datasources')\n}\n\nexport async function createDatasource(data: DatasourceFormData): Promise<DataSource> {\n const body = toDatasourceWireBody(data)\n return request('/datasources', {\n method: 'POST',\n body: JSON.stringify(body),\n })\n}\n\n/** Pre-save connection probe (Fallback 6). Hits `POST /datasources/test`\n * with the same body shape `createDatasource` ships, so the user can\n * verify creds during the wizard before the row is persisted.\n *\n * Returns `{ ok, message?, latencyMs? }` so the wizard can render a\n * precise StatusBadge — `ok: true` with a message means the dialect's\n * driver is stubbed and the validation was skipped gracefully. */\nexport async function testDatasource(\n data: DatasourceFormData,\n): Promise<{ ok: boolean; message?: string; latencyMs?: number }> {\n const body = toDatasourceWireBody(data)\n return request('/datasources/test', {\n method: 'POST',\n body: JSON.stringify(body),\n })\n}\n\n/**\n * Group the flat `DatasourceFormData` shape (that the modal captures off\n * form state) into the nested body the backend expects:\n *\n * { name, dialect,\n * credentials: { host, port, database, username, password, ... },\n * allowedTables, blockedColumns, maxPoolSize, timeoutMs, readOnly }\n *\n * The handler's `ingest_credentials` pulls secret-shaped keys out of\n * `credentials` into the vault, so the plaintext password never lands\n * on the row. Governance fields stay top-level.\n */\nfunction toDatasourceWireBody(data: DatasourceFormData): Record<string, unknown> {\n const CREDENTIAL_KEYS: Array<keyof DatasourceFormData> = [\n 'host', 'port', 'database', 'username', 'password', 'schema',\n 'connectionString', 'projectId', 'dataset', 'keyFile', 'account',\n 'warehouse', 'region', 'bucket', 'token', 'apiKey', 'environment',\n 'index', 'url', 'ssl',\n ]\n const credentials: Record<string, unknown> = {}\n for (const key of CREDENTIAL_KEYS) {\n const value = data[key]\n if (value !== undefined && value !== '' && value !== null) {\n credentials[key as string] = value\n }\n }\n const body: Record<string, unknown> = {\n name: data.name,\n dialect: data.dialect,\n }\n if (Object.keys(credentials).length > 0) body.credentials = credentials\n if (data.allowedTables && data.allowedTables.length > 0) body.allowedTables = data.allowedTables\n if (data.blockedColumns && data.blockedColumns.length > 0) body.blockedColumns = data.blockedColumns\n if (typeof data.maxPoolSize === 'number') body.maxPoolSize = data.maxPoolSize\n if (typeof data.timeoutMs === 'number') body.timeoutMs = data.timeoutMs\n if (typeof data.readOnly === 'boolean') body.readOnly = data.readOnly\n if (typeof data.maskPii === 'boolean') body.maskPii = data.maskPii\n return body\n}\n\nexport async function getDatasourceTables(datasourceId: string): Promise<string[]> {\n return request(`/datasources/${encodeURIComponent(datasourceId)}/tables`)\n}\n\nexport async function getDatasourceSchema(\n datasourceId: string,\n table: string\n): Promise<Array<{ name: string; type: string; nullable?: boolean }>> {\n return request(`/datasources/${encodeURIComponent(datasourceId)}/schema/${encodeURIComponent(table)}`)\n}\n"]}
package/dist/index.d.mts CHANGED
@@ -609,7 +609,9 @@ type NarrativeSectionData = {
609
609
  /** A multi-step process timeline — sale lifecycle, approval chain, NF-e issue. */
610
610
  type LifecycleSectionData = {
611
611
  title?: string;
612
- /** Mirrors `StepTimelineItem`steps[].status drives the visual state. */
612
+ /** Lifecycle steps`status` drives the visual state. Rendered
613
+ * by `DashboardView` via `<StepIndicator>` (numbered circles +
614
+ * connector lines, same primitive used by the MFA / agent wizards). */
613
615
  steps: Array<{
614
616
  id: string;
615
617
  name: string;
@@ -1101,8 +1103,10 @@ type PriceChangeBadgeProps = {
1101
1103
  className?: string;
1102
1104
  };
1103
1105
  /**
1104
- * Displays a price change percentage as a colored badge.
1105
- * Green for positive changes, red for negative.
1106
+ * Displays a price-change percentage as a crystal-glass pill —
1107
+ * emerald for positive, red for negative. Uses the same /20 fill +
1108
+ * /30 border + 700/300 text recipe as StatusBadge so positive /
1109
+ * negative deltas read as live status, not a decorative label.
1106
1110
  */
1107
1111
  declare function PriceChangeBadge({ value, size, showIcon, className, }: PriceChangeBadgeProps): react_jsx_runtime.JSX.Element | null;
1108
1112
 
@@ -1164,9 +1168,14 @@ type GrowthIndicatorProps = {
1164
1168
  format?: "percent" | "number";
1165
1169
  locale?: string;
1166
1170
  formatValue?: (value: number, format: "percent" | "number") => string;
1171
+ /** Render as a glass crystal pill instead of inline text+icon. Use
1172
+ * this in dashboard cards / KPI tiles where the delta deserves
1173
+ * its own affordance. Defaults to `inline` for backwards compat
1174
+ * (existing callers stay as bare text). */
1175
+ variant?: "inline" | "pill";
1167
1176
  className?: string;
1168
1177
  };
1169
- declare function GrowthIndicator({ value, size, showValue, format, formatValue, className }: GrowthIndicatorProps): react_jsx_runtime.JSX.Element | null;
1178
+ declare function GrowthIndicator({ value, size, showValue, format, formatValue, variant, className, }: GrowthIndicatorProps): react_jsx_runtime.JSX.Element | null;
1170
1179
 
1171
1180
  type ToggleSwitchColor = 'green' | 'blue' | 'indigo' | 'violet' | 'teal' | 'orange' | 'red';
1172
1181
  type ToggleSwitchProps = {
@@ -1904,11 +1913,26 @@ type ChipItem = {
1904
1913
  abbreviation?: string;
1905
1914
  isActive?: boolean;
1906
1915
  style: ChipItemStyle;
1916
+ /** When true the chip exposes a (×) remove affordance. Set automatically
1917
+ * for items the user created via the inline `allowCustom` input. */
1918
+ userCreated?: boolean;
1907
1919
  };
1908
1920
  type ChipPickerProps = {
1909
1921
  items: ChipItem[];
1910
1922
  selectedIds: string[];
1911
1923
  onChange: (ids: string[]) => void;
1924
+ /** When true, render an inline text input at the end of the chip row
1925
+ * so the caller can let users coin new ChipItems on the fly. New items
1926
+ * are auto-selected and use the picker's `unselectedStyle` (or a
1927
+ * sensible default). */
1928
+ allowCustom?: boolean;
1929
+ /** Required when `allowCustom` is true — fires whenever the user
1930
+ * creates or removes a custom item so the caller can persist the
1931
+ * updated list. */
1932
+ onItemsChange?: (items: ChipItem[]) => void;
1933
+ /** Style applied to freshly-created custom chips. Falls back to a
1934
+ * neutral slate look when omitted. */
1935
+ unselectedStyle?: ChipItemStyle;
1912
1936
  isLoading?: boolean;
1913
1937
  showActions?: boolean;
1914
1938
  loadingLabel?: string;
@@ -1916,8 +1940,12 @@ type ChipPickerProps = {
1916
1940
  selectAllLabel?: string;
1917
1941
  clearLabel?: string;
1918
1942
  emptyLabel?: string;
1943
+ /** Inline-input placeholder when `allowCustom` is true. */
1944
+ addPlaceholder?: string;
1945
+ /** Inline-input aria-label when `allowCustom` is true. */
1946
+ addAriaLabel?: string;
1919
1947
  };
1920
- declare function ChipPicker({ items, selectedIds, onChange, isLoading, showActions, loadingLabel, selectedLabel, selectAllLabel, clearLabel, emptyLabel, }: ChipPickerProps): react_jsx_runtime.JSX.Element;
1948
+ declare function ChipPicker({ items, selectedIds, onChange, allowCustom, onItemsChange, unselectedStyle, isLoading, showActions, loadingLabel, selectedLabel, selectAllLabel, clearLabel, emptyLabel, addPlaceholder, addAriaLabel, }: ChipPickerProps): react_jsx_runtime.JSX.Element;
1921
1949
 
1922
1950
  interface CopyableIdProps {
1923
1951
  id: string;
@@ -1984,20 +2012,102 @@ interface TimePickerProps {
1984
2012
  }
1985
2013
  declare function TimePicker({ value, onChange, selectedDate, placeholder, className, }: TimePickerProps): react_jsx_runtime.JSX.Element;
1986
2014
 
1987
- type StepTimelineStatus = 'complete' | 'current' | 'upcoming';
1988
- interface StepTimelineItem {
2015
+ type StepProgressStatus = 'complete' | 'current' | 'upcoming';
2016
+ interface StepProgressItem {
2017
+ /** Short eyebrow rendered above the name (e.g. "Step 1" / "Etapa 1"). */
1989
2018
  id: string;
2019
+ /** Step label (e.g. "Job details"). */
1990
2020
  name: string;
1991
- description: string;
1992
- status: StepTimelineStatus;
2021
+ /** Optional href for anchor navigation. When omitted the step
2022
+ * renders as a button — combine with `onStepClick` for SPA-style
2023
+ * navigation. */
2024
+ href?: string;
2025
+ status: StepProgressStatus;
1993
2026
  }
1994
- interface StepTimelineProps<TStep extends StepTimelineItem> {
1995
- steps: TStep[];
2027
+ interface StepProgressProps {
2028
+ steps: StepProgressItem[];
2029
+ /** Accessible label for the wrapping `<nav>` (e.g. "Progresso do
2030
+ * cadastro"). Required so screen readers announce what the
2031
+ * progress refers to. */
1996
2032
  progressLabel: string;
2033
+ /** Optional click handler — receives the index of the clicked step.
2034
+ * Use this for SPA-style navigation; the `href` is still rendered
2035
+ * so anchor middle-click + right-click "open in new tab" stays
2036
+ * functional. */
1997
2037
  onStepClick?: (stepIndex: number) => void;
1998
- renderCompleteContent?: (step: TStep) => ReactNode;
1999
2038
  }
2000
- declare function StepTimeline<TStep extends StepTimelineItem>({ steps, progressLabel, onStepClick, renderCompleteContent, }: StepTimelineProps<TStep>): react_jsx_runtime.JSX.Element;
2039
+ /**
2040
+ * Stepped progress nav — the "Tailwind UI" bordered stepper, glass-ified.
2041
+ *
2042
+ * Each step is a colored left border on mobile and a top border on
2043
+ * `md:` and up. Complete + current both glow indigo; upcoming is
2044
+ * slate. Use inside a `HeroSection` (or below it) for multi-step
2045
+ * forms, onboarding wizards, and dashboard task progress.
2046
+ *
2047
+ * ```tsx
2048
+ * <StepProgress
2049
+ * progressLabel="Cadastro do agente"
2050
+ * steps={[
2051
+ * { id: 'Etapa 1', name: 'Identidade', status: 'complete' },
2052
+ * { id: 'Etapa 2', name: 'Motor', status: 'current' },
2053
+ * { id: 'Etapa 3', name: 'Ferramentas', status: 'upcoming' },
2054
+ * ]}
2055
+ * onStepClick={(i) => goToStep(i)}
2056
+ * />
2057
+ * ```
2058
+ */
2059
+ declare function StepProgress({ steps, progressLabel, onStepClick }: StepProgressProps): react_jsx_runtime.JSX.Element;
2060
+
2061
+ type StepIndicatorStatus = 'complete' | 'current' | 'upcoming';
2062
+ interface StepIndicatorItem {
2063
+ id: string;
2064
+ /** Label shown next to the circle on `sm:` and up. Hidden on
2065
+ * mobile (only the circle shows) to keep the stepper compact. */
2066
+ title: string;
2067
+ /** Optional custom icon replacing the number. Use for an MFA
2068
+ * shield, a download arrow, etc. */
2069
+ icon?: ReactNode;
2070
+ }
2071
+ interface StepIndicatorProps {
2072
+ steps: StepIndicatorItem[];
2073
+ /** Zero-based index of the active step. */
2074
+ currentStep: number;
2075
+ /** Called when a completed step is clicked — lets the user jump
2076
+ * back to revise. Upcoming + current steps are non-interactive
2077
+ * by default. */
2078
+ onStepChange?: (step: number) => void;
2079
+ /** Accessible label for the wrapping `<nav>`. */
2080
+ progressLabel?: string;
2081
+ /** Tone for the active + completed circles. Defaults to indigo to
2082
+ * match the canonical focus ring. */
2083
+ accent?: 'indigo' | 'blue' | 'emerald' | 'violet';
2084
+ }
2085
+ /**
2086
+ * Numbered-circles stepper — the "Stripe checkout" / Apple system
2087
+ * prefs style with pill + filled dot per step and a thin connector
2088
+ * line between them. Use inside a wizard hero (multi-step form, MFA
2089
+ * setup, onboarding). Pair with two `<Button>` siblings (outline
2090
+ * back + ios-glass-blue continue) at the bottom of the page.
2091
+ *
2092
+ * Sister primitive: `StepProgress` (bordered top/left bar style) for
2093
+ * compact wizards rendered inline near a HeroSection.
2094
+ *
2095
+ * ```tsx
2096
+ * <StepIndicator
2097
+ * currentStep={1}
2098
+ * accent="indigo"
2099
+ * progressLabel="Configuração de MFA"
2100
+ * onStepChange={(i) => setStep(i)}
2101
+ * steps={[
2102
+ * { id: 'method', title: 'Escolha o método' },
2103
+ * { id: 'scan', title: 'Escaneie o QR code' },
2104
+ * { id: 'verify', title: 'Digite o código' },
2105
+ * { id: 'backup', title: 'Salve seus códigos' },
2106
+ * ]}
2107
+ * />
2108
+ * ```
2109
+ */
2110
+ declare function StepIndicator({ steps, currentStep, onStepChange, progressLabel, accent, }: StepIndicatorProps): react_jsx_runtime.JSX.Element;
2001
2111
 
2002
2112
  type BreadcrumbItem = {
2003
2113
  name: string;
@@ -2336,26 +2446,6 @@ interface StepFormPageProps {
2336
2446
  }
2337
2447
  declare function StepFormPage({ title, subtitle, label, icon, gradient, steps, currentStep, onStepChange, onSubmit, onCancel, isSubmitting, submitLabel, canAdvance, headerRight, children, }: StepFormPageProps): react_jsx_runtime.JSX.Element;
2338
2448
 
2339
- interface StepNavigationButtonsProps {
2340
- /** Handler for the back button. If omitted, only the continue button is shown. */
2341
- onBack?: () => void;
2342
- /** Whether the form is currently submitting */
2343
- isLoading: boolean;
2344
- /** Label for the back button */
2345
- backLabel?: string;
2346
- /** Label for the continue/submit button */
2347
- continueLabel: string;
2348
- /** Label shown while loading (replaces continueLabel) */
2349
- loadingLabel?: string;
2350
- /** Whether to show a spinner alongside the loading label */
2351
- showSpinner?: boolean;
2352
- /** Button type for the continue button (defaults to 'submit') */
2353
- type?: 'submit' | 'button';
2354
- /** Click handler for the continue button (only needed when type='button') */
2355
- onContinue?: () => void;
2356
- }
2357
- declare function StepNavigationButtons({ onBack, isLoading, backLabel, continueLabel, loadingLabel, showSpinner, type, onContinue, }: StepNavigationButtonsProps): react_jsx_runtime.JSX.Element;
2358
-
2359
2449
  type EntityCardDragProps = Pick<HTMLAttributes<HTMLDivElement>, 'draggable' | 'onDragStart' | 'onDragEnd' | 'onDragOver' | 'onDrop'>;
2360
2450
  interface EntityCardProps {
2361
2451
  /** Leading element: icon box, color badge, avatar */
@@ -5314,4 +5404,4 @@ interface SkipToContentProps {
5314
5404
  }
5315
5405
  declare function SkipToContent({ targetId, label, }: SkipToContentProps): react_jsx_runtime.JSX.Element;
5316
5406
 
5317
- export { ARGENTINA_ACCENT_MAP, ARGENTINA_MACRO_REGIONS, ARGENTINA_MAP_CENTER, ARGENTINA_PROVINCE_COORDINATES, ARGENTINA_PROVINCE_PALETTES, AR_THEME_CONFIG, AUSTRALIA_ACCENT_MAP, AUSTRALIA_MACRO_REGIONS, AUSTRALIA_MAP_CENTER, AUSTRALIA_STATE_COORDINATES, AUSTRALIA_STATE_PALETTES, AU_THEME_CONFIG, type AccentColor, type ActiveFilter, type ActiveFilterChip, type ActiveFilterChipStyleConfig, ActiveFilterChips, AgentAnalysisCard, AnalysisSkeleton, AnimatedNumber, AnimatedTableRow, AppLogo, AppNavigation, type AppNavigationProps, AppShell, type AppShellProps, type ApprovalSectionData, ArchiveSwipeAction, AuthLayout, type AuthLayoutProps, Avatar, AvatarButton, BRAZIL_ACCENT_MAP, BRAZIL_MACRO_REGIONS, BRAZIL_MAP_CENTER, BRAZIL_STATE_COORDINATES, BRAZIL_STATE_PALETTES, BR_THEME_CONFIG, BackupCodeGrid, type BackupCodeGridProps, BadRequestPage, Badge, BaseForm, type BaseFormIconColor, type BaseFormProps, BentoCard, BooleanFlagsPicker, type BooleanFlagsPickerProps, type BooleanFlagsPreset, BottomSafeArea, BrandFilterSkeleton, BrandedLoader, Breadcrumb, type BreadcrumbItem, type BreadcrumbPage, Button, CANADA_ACCENT_MAP, CANADA_MACRO_REGIONS, CANADA_MAP_CENTER, CANADA_PROVINCE_COORDINATES, CANADA_PROVINCE_PALETTES, CA_THEME_CONFIG, CHILE_ACCENT_MAP, CHILE_MACRO_REGIONS, CHILE_MAP_CENTER, CHILE_REGION_COORDINATES, CHILE_REGION_PALETTES, CL_THEME_CONFIG, COLOMBIA_ACCENT_MAP, COLOMBIA_DEPARTMENT_COORDINATES, COLOMBIA_DEPARTMENT_PALETTES, COLOMBIA_MACRO_REGIONS, COLOMBIA_MAP_CENTER, CO_THEME_CONFIG, Card, CardContent, CardDescription, CardDivider, CardFooter, CardGridSkeleton, CardHeader, CardSectionHeader, CardTitle, CategoryBadge, type CategoryBadgeProps, CategoryTab, type CategoryTabConfig, type CategoryTabProps, CategoryTabs, type CategoryTabsProps, type ChartDataPoint, ChartRenderer, type ChartSeriesStyle, type ChartSpec, type ChartType, type ChipItem, type ChipItemStyle, ChipPicker, CircularRefreshIndicator, Code, type CollapsibleGroup, CollapsibleGroupedList, type CollapsibleGroupedListProps, CompactSegmentedControl, ContactCard, ContactSection, Container, type ContainerProps, type ContainerVariant, ContextMenu, type ContextMenuDivider, type ContextMenuEntry, type ContextMenuItem, CookieConsent, CopyableId, type CountryAddressFormat, type CountryConfig, type CountryCurrencyConfig, type CountryLanguage, type CountryLocaleConfig, type CountryTaxConfig, CreateActionButton, DE_THEME_CONFIG, type DashboardKpi, type DashboardSection, type DashboardSpec, type DashboardSpecIssue, type DashboardTable, DashboardView, DataPagination, DatePicker, DeleteSwipeAction, Description, DetailsPopover, type DetailsPopoverActor, type DetailsPopoverComparison, type DetailsPopoverNote, type DetailsPopoverProps, DevModeBanner, Dialog, DialogActions, DialogBody, DialogDescription, DialogTitle, Divider, Dock, type DockAction, DockContainer, DockSkeleton, DotRefreshIndicator, DropdownSelect, type DurationToken, DynamicIsland, DynamicIslandNotification, EGYPT_ACCENT_MAP, EGYPT_GOVERNORATE_COORDINATES, EGYPT_GOVERNORATE_PALETTES, EGYPT_MACRO_REGIONS, EGYPT_MAP_CENTER, EG_THEME_CONFIG, ES_THEME_CONFIG, type EaseToken, EdgeSwipeIndicator, EdgeSwipeProvider, EditSwipeAction, EmptyState, EntityCard, type EntityCardProps, type EntitySectionData, ErrorMessage, ErrorState, type ExpandableHistoryItem, ExpandableHistoryList, type ExpandableHistoryListProps, ExpandingPageIndicator, FRANCE_ACCENT_MAP, FRANCE_MACRO_REGIONS, FRANCE_MAP_CENTER, FRANCE_REGION_COORDINATES, FRANCE_REGION_PALETTES, FR_THEME_CONFIG, FavoriteSwipeAction, FeatureCard, FeedItemCard, type FeedSectionData, Field, FieldGroup, Label as FieldLabel, Fieldset, FilterSectionHeader, type FilterSectionHeaderProps, FilterTileButton, type FilterTileButtonProps, type FilterTileColor, type FiscalSectionData, FloatingActionButton, FlyoutMenu, FlyoutNavGrid, type FlyoutNavItem, FlyoutQuickActions, ForceTouchMenu, Form, FormActions, type FormActionsProps, FormActionsRow, type FormActionsRowProps, FormCheckbox, type FormCheckboxProps, FormField, type FormFieldProps, FormGrid, type FormGridProps, FormInput, type FormInputProps, FormPriceInput, type FormPriceInputProps, type FormProps, FormSection, type FormSectionProps, FormSelect, type FormSelectProps, type FormStep, FormTextarea, type FormTextareaProps, FormToggle, type FormToggleProps, GB_THEME_CONFIG, GERMANY_ACCENT_MAP, GERMANY_MACRO_REGIONS, GERMANY_MAP_CENTER, GERMANY_STATE_COORDINATES, GERMANY_STATE_PALETTES, GeoMapCanvas, type GeoMapCanvasProps, GeoMapLegend, type GeoMapLegendProps, type GeoMapRegionData, GlassModal, type GlassModalIdentity, type GlassModalProps, type GlassModalSection, type GlassModalSidebar, type GlassModalSize, Gradient, GradientBackground, GrowthIndicator, Heading, HeroBlock, type HeroBlockProps, HeroPanel, type HeroPanelProps, type HeroPanelStat, HeroSection, ID_THEME_CONFIG, INDIA_ACCENT_MAP, INDIA_MACRO_REGIONS, INDIA_MAP_CENTER, INDIA_STATE_COORDINATES, INDIA_STATE_PALETTES, INDONESIA_ACCENT_MAP, INDONESIA_MACRO_REGIONS, INDONESIA_MAP_CENTER, INDONESIA_PROVINCE_COORDINATES, INDONESIA_PROVINCE_PALETTES, IN_THEME_CONFIG, ITALY_ACCENT_MAP, ITALY_MACRO_REGIONS, ITALY_MAP_CENTER, ITALY_REGION_COORDINATES, ITALY_REGION_PALETTES, IT_THEME_CONFIG, IconButton, ImageUpload, type ImageUploadProps, InfoPopover, type InfoPopoverProps, InlineForm, type InlineFormProps, InlineSpinner, Input, type InputBooleanField, type InputNumberField, type InputRequestField, InputRequestForm, type InputRequestSectionData, type InputSelectField, type InputTextField, type InputTextareaField, InteractiveGeoMap, type InteractiveGeoMapProps, ItemSummary, type ItemSummaryMetadata, JAPAN_ACCENT_MAP, JAPAN_MACRO_REGIONS, JAPAN_MAP_CENTER, JAPAN_PREFECTURE_COORDINATES, JAPAN_PREFECTURE_PALETTES, JP_THEME_CONFIG, KORI_ERP_LOADER, KR_THEME_CONFIG, LOCALE_FLAGS, Label, LabeledToggle, type LanguageOption$1 as LanguageOption, LanguageSwitcher, LaunchpadGrid, type LaunchpadGridProps, type LaunchpadItem, type LaunchpadMenuItem, type LaunchpadUserProfile, Lead, Legend, type LifecycleSectionData, LiquidFilterInput, ListCard, ListCardItem, ListItem, type ListItemAction, type ListItemMetadata, type ListItemProps, type ListItemVariant, LoadingOverlay, MEXICO_ACCENT_MAP, MEXICO_MACRO_REGIONS, MEXICO_MAP_CENTER, MEXICO_STATE_COORDINATES, MEXICO_STATE_PALETTES, MX_THEME_CONFIG, ManagementSurface, MapZoomControls, type MapZoomControlsProps, MarketPricesCard, type MetaItem, MetricCard, MonthPicker, type MotionTokens, MultiColumnPicker, NETHERLANDS_ACCENT_MAP, NETHERLANDS_MACRO_REGIONS, NETHERLANDS_MAP_CENTER, NETHERLANDS_PROVINCE_COORDINATES, NETHERLANDS_PROVINCE_PALETTES, NEW_ZEALAND_ACCENT_MAP, NEW_ZEALAND_MACRO_REGIONS, NEW_ZEALAND_MAP_CENTER, NEW_ZEALAND_REGION_COORDINATES, NEW_ZEALAND_REGION_PALETTES, NG_THEME_CONFIG, NIGERIA_ACCENT_MAP, NIGERIA_MACRO_REGIONS, NIGERIA_MAP_CENTER, NIGERIA_STATE_COORDINATES, NIGERIA_STATE_PALETTES, NL_THEME_CONFIG, NORWAY_ACCENT_MAP, NORWAY_COUNTY_COORDINATES, NORWAY_COUNTY_PALETTES, NORWAY_MACRO_REGIONS, NORWAY_MAP_CENTER, NO_THEME_CONFIG, NZ_THEME_CONFIG, type NarrativeSectionData, NavigationItem, NavigationProgress, NoDataState, NoResultsState, NotFoundPage, type NoteSectionData, type Notification, NotificationBadge, type NotificationBadgeProps, NotificationBellButton, NotificationProvider, type NotificationType, OfficeCard, OfflineState, type OffsetPaginationParams, OptionGrid, type OptionGridItem, type OptionGridProps, OtpInput, type OtpInputProps, PERU_ACCENT_MAP, PERU_DEPARTMENT_COORDINATES, PERU_DEPARTMENT_PALETTES, PERU_MACRO_REGIONS, PERU_MAP_CENTER, PE_THEME_CONFIG, PHILIPPINES_ACCENT_MAP, PHILIPPINES_MACRO_REGIONS, PHILIPPINES_MAP_CENTER, PHILIPPINES_PROVINCE_COORDINATES, PHILIPPINES_PROVINCE_PALETTES, PH_THEME_CONFIG, PL_THEME_CONFIG, POLAND_ACCENT_MAP, POLAND_MACRO_REGIONS, POLAND_MAP_CENTER, POLAND_VOIVODESHIP_COORDINATES, POLAND_VOIVODESHIP_PALETTES, PORTUGAL_ACCENT_MAP, PORTUGAL_DISTRICT_COORDINATES, PORTUGAL_DISTRICT_PALETTES, PORTUGAL_MACRO_REGIONS, PORTUGAL_MAP_CENTER, PT_THEME_CONFIG, PageEmptyState, PageErrorState, PageHeader, PageHeading, type PageHeadingProps, PageIndicator, PageLoadingState, PageSectionHeader, Pagination, type PaginationMeta, PasswordInput, type PasswordPolicy, PasswordStrengthMeter, type PasswordStrengthMeterProps, PlatformShell, type PlatformShellLabels, type PlatformShellProps, type PlatformShellState, type PlatformShellUser, PlusGrid, PlusGridItem, PlusGridRow, type PreferenceGroupConfig, PreferenceSection, type PreferenceSectionProps, type PreferencesSectionConfig, PriceChangeBadge, ProfileIdentityCard, type ProfileSectionConfig, Progress, ProgressIndicator, PullToRefreshContainer, PullToRefreshIndicator, RadiantHeading, RadiantStatCard, RadiantSubheading, type RadioGroupConfig, type ReceiptSectionData, RecommendationCard, RegionFilterSkeleton, SE_THEME_CONFIG, SOUTH_AFRICA_ACCENT_MAP, SOUTH_AFRICA_MACRO_REGIONS, SOUTH_AFRICA_MAP_CENTER, SOUTH_AFRICA_PROVINCE_COORDINATES, SOUTH_AFRICA_PROVINCE_PALETTES, SOUTH_KOREA_ACCENT_MAP, SOUTH_KOREA_MACRO_REGIONS, SOUTH_KOREA_MAP_CENTER, SOUTH_KOREA_PROVINCE_COORDINATES, SOUTH_KOREA_PROVINCE_PALETTES, SPAIN_ACCENT_MAP, SPAIN_MACRO_REGIONS, SPAIN_MAP_CENTER, SPAIN_PROVINCE_COORDINATES, SPAIN_PROVINCE_PALETTES, SWEDEN_ACCENT_MAP, SWEDEN_COUNTY_COORDINATES, SWEDEN_COUNTY_PALETTES, SWEDEN_MACRO_REGIONS, SWEDEN_MAP_CENTER, SafeArea, SafeAreaSpacer, SafeAreaView, type ScoreSectionData, SearchBar, SearchInput, SectionCard, SectionHeader, SectionHeaderSkeleton, type SectionTone, SegmentedControl, Select, SelectableTableRow, SelectionCard, type SelectionCardProps, type SelectionOption, type SeriesComputed, ServerErrorPage, type SettingsFieldConfig, type LanguageOption as SettingsLanguageOption, SettingsModal, type SettingsModalProps, type SettingsSection, Sheet, type ShellLabels, type ShellPreferences, type ShellUser, SkipToContent, SocialLoginButtons, type SocialLoginButtonsProps, type SocialProvider, SortableTableHeader, Spinner, type SpringToken, StatCard, StatCardSkeleton, StatusBadge, type StatusBadgeProps, StatusToggle, type StatusType, StepFormPage, type StepFormPageProps, StepNavigationButtons, type StepNavigationButtonsProps, StepTimeline, type StepTimelineItem, type StepTimelineProps, type StepTimelineStatus, StreamingDashboard, Strong, type SubdivisionColorPalette, type SubdivisionThemeConfig, Subheading, SwipeableRow, Switch, THAILAND_ACCENT_MAP, THAILAND_MACRO_REGIONS, THAILAND_MAP_CENTER, THAILAND_PROVINCE_COORDINATES, THAILAND_PROVINCE_PALETTES, TH_THEME_CONFIG, TR_THEME_CONFIG, TURKEY_ACCENT_MAP, TURKEY_MACRO_REGIONS, TURKEY_MAP_CENTER, TURKEY_PROVINCE_COORDINATES, TURKEY_PROVINCE_PALETTES, Table, TableBody, TableCell, TableEmptyState, TableHead, TableHeader, TableRow, TableSkeleton, TableSkeletonRow, Tabs, TabsContent, TabsList, TabsTrigger, Text, TextLink, Textarea, ThemeSwitch, ThemeToggle, ThemeToggleCompact, TimePicker, type ToggleConfig, ToggleSwitch, type ToggleSwitchColor, TouchTarget, UK_ACCENT_MAP, UK_MACRO_REGIONS, UK_MAP_CENTER, UK_NATION_COORDINATES, UK_NATION_PALETTES, US_ACCENT_MAP, US_MACRO_REGIONS, US_MAP_CENTER, US_STATE_COORDINATES, US_STATE_PALETTES, US_THEME_CONFIG, type UseGeoMapStateOptions, WINDSOCK_LOADER, WIRE_LOADER, WheelPicker, WindsockIcon, type WorkspaceSectionConfig, ZA_THEME_CONFIG, buildDockActions, buildFlyoutNavItems, buildLaunchpadItems, buttonPress, buttonPressReduced, buttonTap, cardHover, cardHoverReduced, cardPress, computeDomain, computeSeries, createMotionProps, duration, durationSeconds, durations, durationsReduced, ease, easeCss, easings, fadeOnly, fadeScale, filterByPermission, formatAddress, formatCurrency as formatCountryCurrency, formatCurrency$1 as formatCurrency, formatDate, formatPercentage, getAllCountries, getArgentinaAccent, getArgentinaColors, getArgentinaFlagUrl, getArgentinaGradient, getArgentinaHexColor, getArgentinaPalette, getAustraliaAccent, getAustraliaColors, getAustraliaFlagUrl, getAustraliaGradient, getAustraliaHexColor, getAustraliaPalette, getBrazilAccent, getBrazilColors, getBrazilFlagUrl, getBrazilGradient, getBrazilHexColor, getBrazilPalette, getCanadaAccent, getCanadaColors, getCanadaFlagUrl, getCanadaGradient, getCanadaHexColor, getCanadaPalette, getChileAccent, getChileColors, getChileFlagUrl, getChileGradient, getChileHexColor, getChilePalette, getColombiaAccent, getColombiaColors, getColombiaFlagUrl, getColombiaGradient, getColombiaHexColor, getColombiaPalette, getCountryConfig, getEgyptAccent, getEgyptColors, getEgyptFlagUrl, getEgyptGradient, getEgyptHexColor, getEgyptPalette, getFranceAccent, getFranceColors, getFranceFlagUrl, getFranceGradient, getFranceHexColor, getFrancePalette, getGermanyAccent, getGermanyColors, getGermanyFlagUrl, getGermanyGradient, getGermanyHexColor, getGermanyPalette, getIndiaAccent, getIndiaColors, getIndiaFlagUrl, getIndiaGradient, getIndiaHexColor, getIndiaPalette, getIndonesiaAccent, getIndonesiaColors, getIndonesiaFlagUrl, getIndonesiaGradient, getIndonesiaHexColor, getIndonesiaPalette, getItalyAccent, getItalyColors, getItalyFlagUrl, getItalyGradient, getItalyHexColor, getItalyPalette, getJapanAccent, getJapanColors, getJapanFlagUrl, getJapanGradient, getJapanHexColor, getJapanPalette, getMexicoAccent, getMexicoColors, getMexicoFlagUrl, getMexicoGradient, getMexicoHexColor, getMexicoPalette, getNetherlandsAccent, getNetherlandsColors, getNetherlandsFlagUrl, getNetherlandsGradient, getNetherlandsHexColor, getNetherlandsPalette, getNewZealandAccent, getNewZealandColors, getNewZealandFlagUrl, getNewZealandGradient, getNewZealandHexColor, getNewZealandPalette, getNigeriaAccent, getNigeriaColors, getNigeriaFlagUrl, getNigeriaGradient, getNigeriaHexColor, getNigeriaPalette, getNorwayAccent, getNorwayColors, getNorwayFlagUrl, getNorwayGradient, getNorwayHexColor, getNorwayPalette, getPeruAccent, getPeruColors, getPeruFlagUrl, getPeruGradient, getPeruHexColor, getPeruPalette, getPhilippinesAccent, getPhilippinesColors, getPhilippinesFlagUrl, getPhilippinesGradient, getPhilippinesHexColor, getPhilippinesPalette, getPolandAccent, getPolandColors, getPolandFlagUrl, getPolandGradient, getPolandHexColor, getPolandPalette, getPortugalAccent, getPortugalColors, getPortugalFlagUrl, getPortugalGradient, getPortugalHexColor, getPortugalPalette, getSouthAfricaAccent, getSouthAfricaColors, getSouthAfricaFlagUrl, getSouthAfricaGradient, getSouthAfricaHexColor, getSouthAfricaPalette, getSouthKoreaAccent, getSouthKoreaColors, getSouthKoreaFlagUrl, getSouthKoreaGradient, getSouthKoreaHexColor, getSouthKoreaPalette, getSpainAccent, getSpainColors, getSpainFlagUrl, getSpainGradient, getSpainHexColor, getSpainPalette, getStatusColor, getSubdivisionAccent, getSubdivisionColors, getSubdivisionFlagUrl, getSubdivisionGradient, getSubdivisionHexColor, getSubdivisionPalette, getSwedenAccent, getSwedenColors, getSwedenFlagUrl, getSwedenGradient, getSwedenHexColor, getSwedenPalette, getThailandAccent, getThailandColors, getThailandFlagUrl, getThailandGradient, getThailandHexColor, getThailandPalette, getTransition, getTurkeyAccent, getTurkeyColors, getTurkeyFlagUrl, getTurkeyGradient, getTurkeyHexColor, getTurkeyPalette, getUKAccent, getUKColors, getUKFlagUrl, getUKGradient, getUKHexColor, getUKPalette, getUsAccent, getUsColors, getUsFlagUrl, getUsGradient, getUsHexColor, getUsPalette, getVariants, iosColors, isValidArgentinaProvince, isValidAustraliaState, isValidBrazilState, isValidCanadaProvince, isValidChileRegion, isValidColombiaDepartment, isValidEgyptGovernorate, isValidFranceRegion, isValidGermanyState, isValidIndiaState, isValidIndonesiaProvince, isValidItalyRegion, isValidJapanPrefecture, isValidMexicoState, isValidNetherlandsProvince, isValidNewZealandRegion, isValidNigeriaState, isValidNorwayCounty, isValidPeruDepartment, isValidPhilippinesProvince, isValidPolandVoivodeship, isValidPortugalDistrict, isValidSouthAfricaProvince, isValidSouthKoreaProvince, isValidSpainProvince, isValidSubdivision, isValidSwedenCounty, isValidThailandProvince, isValidTurkeyProvince, isValidUKNation, isValidUsState, listItem, listItemReduced, motionTokens, notificationBanner, notificationBannerReduced, pageControlDot, prefersReducedMotion, registerCountry, registerSubdivisionTheme, resolveGlassAccentRgb, selectIsAuthenticated, selectShowShellChrome, selectUserInitial, selectUserName, shimmerClass, shimmerWhiteClass, slideDown, slideRight, slideUp, spring, springPresets, springPresetsReduced, staggerContainer, swipeActionThreshold, swipeConstraints, triggerHaptic, useGeoMapState, useHaptic, useNotifications, usePlatformShellStore, usePullToRefresh, validateDashboardSpec, xScale, yScale };
5407
+ export { ARGENTINA_ACCENT_MAP, ARGENTINA_MACRO_REGIONS, ARGENTINA_MAP_CENTER, ARGENTINA_PROVINCE_COORDINATES, ARGENTINA_PROVINCE_PALETTES, AR_THEME_CONFIG, AUSTRALIA_ACCENT_MAP, AUSTRALIA_MACRO_REGIONS, AUSTRALIA_MAP_CENTER, AUSTRALIA_STATE_COORDINATES, AUSTRALIA_STATE_PALETTES, AU_THEME_CONFIG, type AccentColor, type ActiveFilter, type ActiveFilterChip, type ActiveFilterChipStyleConfig, ActiveFilterChips, AgentAnalysisCard, AnalysisSkeleton, AnimatedNumber, AnimatedTableRow, AppLogo, AppNavigation, type AppNavigationProps, AppShell, type AppShellProps, type ApprovalSectionData, ArchiveSwipeAction, AuthLayout, type AuthLayoutProps, Avatar, AvatarButton, BRAZIL_ACCENT_MAP, BRAZIL_MACRO_REGIONS, BRAZIL_MAP_CENTER, BRAZIL_STATE_COORDINATES, BRAZIL_STATE_PALETTES, BR_THEME_CONFIG, BackupCodeGrid, type BackupCodeGridProps, BadRequestPage, Badge, BaseForm, type BaseFormIconColor, type BaseFormProps, BentoCard, BooleanFlagsPicker, type BooleanFlagsPickerProps, type BooleanFlagsPreset, BottomSafeArea, BrandFilterSkeleton, BrandedLoader, Breadcrumb, type BreadcrumbItem, type BreadcrumbPage, Button, CANADA_ACCENT_MAP, CANADA_MACRO_REGIONS, CANADA_MAP_CENTER, CANADA_PROVINCE_COORDINATES, CANADA_PROVINCE_PALETTES, CA_THEME_CONFIG, CHILE_ACCENT_MAP, CHILE_MACRO_REGIONS, CHILE_MAP_CENTER, CHILE_REGION_COORDINATES, CHILE_REGION_PALETTES, CL_THEME_CONFIG, COLOMBIA_ACCENT_MAP, COLOMBIA_DEPARTMENT_COORDINATES, COLOMBIA_DEPARTMENT_PALETTES, COLOMBIA_MACRO_REGIONS, COLOMBIA_MAP_CENTER, CO_THEME_CONFIG, Card, CardContent, CardDescription, CardDivider, CardFooter, CardGridSkeleton, CardHeader, CardSectionHeader, CardTitle, CategoryBadge, type CategoryBadgeProps, CategoryTab, type CategoryTabConfig, type CategoryTabProps, CategoryTabs, type CategoryTabsProps, type ChartDataPoint, ChartRenderer, type ChartSeriesStyle, type ChartSpec, type ChartType, type ChipItem, type ChipItemStyle, ChipPicker, CircularRefreshIndicator, Code, type CollapsibleGroup, CollapsibleGroupedList, type CollapsibleGroupedListProps, CompactSegmentedControl, ContactCard, ContactSection, Container, type ContainerProps, type ContainerVariant, ContextMenu, type ContextMenuDivider, type ContextMenuEntry, type ContextMenuItem, CookieConsent, CopyableId, type CountryAddressFormat, type CountryConfig, type CountryCurrencyConfig, type CountryLanguage, type CountryLocaleConfig, type CountryTaxConfig, CreateActionButton, DE_THEME_CONFIG, type DashboardKpi, type DashboardSection, type DashboardSpec, type DashboardSpecIssue, type DashboardTable, DashboardView, DataPagination, DatePicker, DeleteSwipeAction, Description, DetailsPopover, type DetailsPopoverActor, type DetailsPopoverComparison, type DetailsPopoverNote, type DetailsPopoverProps, DevModeBanner, Dialog, DialogActions, DialogBody, DialogDescription, DialogTitle, Divider, Dock, type DockAction, DockContainer, DockSkeleton, DotRefreshIndicator, DropdownSelect, type DurationToken, DynamicIsland, DynamicIslandNotification, EGYPT_ACCENT_MAP, EGYPT_GOVERNORATE_COORDINATES, EGYPT_GOVERNORATE_PALETTES, EGYPT_MACRO_REGIONS, EGYPT_MAP_CENTER, EG_THEME_CONFIG, ES_THEME_CONFIG, type EaseToken, EdgeSwipeIndicator, EdgeSwipeProvider, EditSwipeAction, EmptyState, EntityCard, type EntityCardProps, type EntitySectionData, ErrorMessage, ErrorState, type ExpandableHistoryItem, ExpandableHistoryList, type ExpandableHistoryListProps, ExpandingPageIndicator, FRANCE_ACCENT_MAP, FRANCE_MACRO_REGIONS, FRANCE_MAP_CENTER, FRANCE_REGION_COORDINATES, FRANCE_REGION_PALETTES, FR_THEME_CONFIG, FavoriteSwipeAction, FeatureCard, FeedItemCard, type FeedSectionData, Field, FieldGroup, Label as FieldLabel, Fieldset, FilterSectionHeader, type FilterSectionHeaderProps, FilterTileButton, type FilterTileButtonProps, type FilterTileColor, type FiscalSectionData, FloatingActionButton, FlyoutMenu, FlyoutNavGrid, type FlyoutNavItem, FlyoutQuickActions, ForceTouchMenu, Form, FormActions, type FormActionsProps, FormActionsRow, type FormActionsRowProps, FormCheckbox, type FormCheckboxProps, FormField, type FormFieldProps, FormGrid, type FormGridProps, FormInput, type FormInputProps, FormPriceInput, type FormPriceInputProps, type FormProps, FormSection, type FormSectionProps, FormSelect, type FormSelectProps, type FormStep, FormTextarea, type FormTextareaProps, FormToggle, type FormToggleProps, GB_THEME_CONFIG, GERMANY_ACCENT_MAP, GERMANY_MACRO_REGIONS, GERMANY_MAP_CENTER, GERMANY_STATE_COORDINATES, GERMANY_STATE_PALETTES, GeoMapCanvas, type GeoMapCanvasProps, GeoMapLegend, type GeoMapLegendProps, type GeoMapRegionData, GlassModal, type GlassModalIdentity, type GlassModalProps, type GlassModalSection, type GlassModalSidebar, type GlassModalSize, Gradient, GradientBackground, GrowthIndicator, Heading, HeroBlock, type HeroBlockProps, HeroPanel, type HeroPanelProps, type HeroPanelStat, HeroSection, ID_THEME_CONFIG, INDIA_ACCENT_MAP, INDIA_MACRO_REGIONS, INDIA_MAP_CENTER, INDIA_STATE_COORDINATES, INDIA_STATE_PALETTES, INDONESIA_ACCENT_MAP, INDONESIA_MACRO_REGIONS, INDONESIA_MAP_CENTER, INDONESIA_PROVINCE_COORDINATES, INDONESIA_PROVINCE_PALETTES, IN_THEME_CONFIG, ITALY_ACCENT_MAP, ITALY_MACRO_REGIONS, ITALY_MAP_CENTER, ITALY_REGION_COORDINATES, ITALY_REGION_PALETTES, IT_THEME_CONFIG, IconButton, ImageUpload, type ImageUploadProps, InfoPopover, type InfoPopoverProps, InlineForm, type InlineFormProps, InlineSpinner, Input, type InputBooleanField, type InputNumberField, type InputRequestField, InputRequestForm, type InputRequestSectionData, type InputSelectField, type InputTextField, type InputTextareaField, InteractiveGeoMap, type InteractiveGeoMapProps, ItemSummary, type ItemSummaryMetadata, JAPAN_ACCENT_MAP, JAPAN_MACRO_REGIONS, JAPAN_MAP_CENTER, JAPAN_PREFECTURE_COORDINATES, JAPAN_PREFECTURE_PALETTES, JP_THEME_CONFIG, KORI_ERP_LOADER, KR_THEME_CONFIG, LOCALE_FLAGS, Label, LabeledToggle, type LanguageOption$1 as LanguageOption, LanguageSwitcher, LaunchpadGrid, type LaunchpadGridProps, type LaunchpadItem, type LaunchpadMenuItem, type LaunchpadUserProfile, Lead, Legend, type LifecycleSectionData, LiquidFilterInput, ListCard, ListCardItem, ListItem, type ListItemAction, type ListItemMetadata, type ListItemProps, type ListItemVariant, LoadingOverlay, MEXICO_ACCENT_MAP, MEXICO_MACRO_REGIONS, MEXICO_MAP_CENTER, MEXICO_STATE_COORDINATES, MEXICO_STATE_PALETTES, MX_THEME_CONFIG, ManagementSurface, MapZoomControls, type MapZoomControlsProps, MarketPricesCard, type MetaItem, MetricCard, MonthPicker, type MotionTokens, MultiColumnPicker, NETHERLANDS_ACCENT_MAP, NETHERLANDS_MACRO_REGIONS, NETHERLANDS_MAP_CENTER, NETHERLANDS_PROVINCE_COORDINATES, NETHERLANDS_PROVINCE_PALETTES, NEW_ZEALAND_ACCENT_MAP, NEW_ZEALAND_MACRO_REGIONS, NEW_ZEALAND_MAP_CENTER, NEW_ZEALAND_REGION_COORDINATES, NEW_ZEALAND_REGION_PALETTES, NG_THEME_CONFIG, NIGERIA_ACCENT_MAP, NIGERIA_MACRO_REGIONS, NIGERIA_MAP_CENTER, NIGERIA_STATE_COORDINATES, NIGERIA_STATE_PALETTES, NL_THEME_CONFIG, NORWAY_ACCENT_MAP, NORWAY_COUNTY_COORDINATES, NORWAY_COUNTY_PALETTES, NORWAY_MACRO_REGIONS, NORWAY_MAP_CENTER, NO_THEME_CONFIG, NZ_THEME_CONFIG, type NarrativeSectionData, NavigationItem, NavigationProgress, NoDataState, NoResultsState, NotFoundPage, type NoteSectionData, type Notification, NotificationBadge, type NotificationBadgeProps, NotificationBellButton, NotificationProvider, type NotificationType, OfficeCard, OfflineState, type OffsetPaginationParams, OptionGrid, type OptionGridItem, type OptionGridProps, OtpInput, type OtpInputProps, PERU_ACCENT_MAP, PERU_DEPARTMENT_COORDINATES, PERU_DEPARTMENT_PALETTES, PERU_MACRO_REGIONS, PERU_MAP_CENTER, PE_THEME_CONFIG, PHILIPPINES_ACCENT_MAP, PHILIPPINES_MACRO_REGIONS, PHILIPPINES_MAP_CENTER, PHILIPPINES_PROVINCE_COORDINATES, PHILIPPINES_PROVINCE_PALETTES, PH_THEME_CONFIG, PL_THEME_CONFIG, POLAND_ACCENT_MAP, POLAND_MACRO_REGIONS, POLAND_MAP_CENTER, POLAND_VOIVODESHIP_COORDINATES, POLAND_VOIVODESHIP_PALETTES, PORTUGAL_ACCENT_MAP, PORTUGAL_DISTRICT_COORDINATES, PORTUGAL_DISTRICT_PALETTES, PORTUGAL_MACRO_REGIONS, PORTUGAL_MAP_CENTER, PT_THEME_CONFIG, PageEmptyState, PageErrorState, PageHeader, PageHeading, type PageHeadingProps, PageIndicator, PageLoadingState, PageSectionHeader, Pagination, type PaginationMeta, PasswordInput, type PasswordPolicy, PasswordStrengthMeter, type PasswordStrengthMeterProps, PlatformShell, type PlatformShellLabels, type PlatformShellProps, type PlatformShellState, type PlatformShellUser, PlusGrid, PlusGridItem, PlusGridRow, type PreferenceGroupConfig, PreferenceSection, type PreferenceSectionProps, type PreferencesSectionConfig, PriceChangeBadge, ProfileIdentityCard, type ProfileSectionConfig, Progress, ProgressIndicator, PullToRefreshContainer, PullToRefreshIndicator, RadiantHeading, RadiantStatCard, RadiantSubheading, type RadioGroupConfig, type ReceiptSectionData, RecommendationCard, RegionFilterSkeleton, SE_THEME_CONFIG, SOUTH_AFRICA_ACCENT_MAP, SOUTH_AFRICA_MACRO_REGIONS, SOUTH_AFRICA_MAP_CENTER, SOUTH_AFRICA_PROVINCE_COORDINATES, SOUTH_AFRICA_PROVINCE_PALETTES, SOUTH_KOREA_ACCENT_MAP, SOUTH_KOREA_MACRO_REGIONS, SOUTH_KOREA_MAP_CENTER, SOUTH_KOREA_PROVINCE_COORDINATES, SOUTH_KOREA_PROVINCE_PALETTES, SPAIN_ACCENT_MAP, SPAIN_MACRO_REGIONS, SPAIN_MAP_CENTER, SPAIN_PROVINCE_COORDINATES, SPAIN_PROVINCE_PALETTES, SWEDEN_ACCENT_MAP, SWEDEN_COUNTY_COORDINATES, SWEDEN_COUNTY_PALETTES, SWEDEN_MACRO_REGIONS, SWEDEN_MAP_CENTER, SafeArea, SafeAreaSpacer, SafeAreaView, type ScoreSectionData, SearchBar, SearchInput, SectionCard, SectionHeader, SectionHeaderSkeleton, type SectionTone, SegmentedControl, Select, SelectableTableRow, SelectionCard, type SelectionCardProps, type SelectionOption, type SeriesComputed, ServerErrorPage, type SettingsFieldConfig, type LanguageOption as SettingsLanguageOption, SettingsModal, type SettingsModalProps, type SettingsSection, Sheet, type ShellLabels, type ShellPreferences, type ShellUser, SkipToContent, SocialLoginButtons, type SocialLoginButtonsProps, type SocialProvider, SortableTableHeader, Spinner, type SpringToken, StatCard, StatCardSkeleton, StatusBadge, type StatusBadgeProps, StatusToggle, type StatusType, StepFormPage, type StepFormPageProps, StepIndicator, type StepIndicatorItem, type StepIndicatorProps, type StepIndicatorStatus, StepProgress, type StepProgressItem, type StepProgressProps, type StepProgressStatus, StreamingDashboard, Strong, type SubdivisionColorPalette, type SubdivisionThemeConfig, Subheading, SwipeableRow, Switch, THAILAND_ACCENT_MAP, THAILAND_MACRO_REGIONS, THAILAND_MAP_CENTER, THAILAND_PROVINCE_COORDINATES, THAILAND_PROVINCE_PALETTES, TH_THEME_CONFIG, TR_THEME_CONFIG, TURKEY_ACCENT_MAP, TURKEY_MACRO_REGIONS, TURKEY_MAP_CENTER, TURKEY_PROVINCE_COORDINATES, TURKEY_PROVINCE_PALETTES, Table, TableBody, TableCell, TableEmptyState, TableHead, TableHeader, TableRow, TableSkeleton, TableSkeletonRow, Tabs, TabsContent, TabsList, TabsTrigger, Text, TextLink, Textarea, ThemeSwitch, ThemeToggle, ThemeToggleCompact, TimePicker, type ToggleConfig, ToggleSwitch, type ToggleSwitchColor, TouchTarget, UK_ACCENT_MAP, UK_MACRO_REGIONS, UK_MAP_CENTER, UK_NATION_COORDINATES, UK_NATION_PALETTES, US_ACCENT_MAP, US_MACRO_REGIONS, US_MAP_CENTER, US_STATE_COORDINATES, US_STATE_PALETTES, US_THEME_CONFIG, type UseGeoMapStateOptions, WINDSOCK_LOADER, WIRE_LOADER, WheelPicker, WindsockIcon, type WorkspaceSectionConfig, ZA_THEME_CONFIG, buildDockActions, buildFlyoutNavItems, buildLaunchpadItems, buttonPress, buttonPressReduced, buttonTap, cardHover, cardHoverReduced, cardPress, computeDomain, computeSeries, createMotionProps, duration, durationSeconds, durations, durationsReduced, ease, easeCss, easings, fadeOnly, fadeScale, filterByPermission, formatAddress, formatCurrency as formatCountryCurrency, formatCurrency$1 as formatCurrency, formatDate, formatPercentage, getAllCountries, getArgentinaAccent, getArgentinaColors, getArgentinaFlagUrl, getArgentinaGradient, getArgentinaHexColor, getArgentinaPalette, getAustraliaAccent, getAustraliaColors, getAustraliaFlagUrl, getAustraliaGradient, getAustraliaHexColor, getAustraliaPalette, getBrazilAccent, getBrazilColors, getBrazilFlagUrl, getBrazilGradient, getBrazilHexColor, getBrazilPalette, getCanadaAccent, getCanadaColors, getCanadaFlagUrl, getCanadaGradient, getCanadaHexColor, getCanadaPalette, getChileAccent, getChileColors, getChileFlagUrl, getChileGradient, getChileHexColor, getChilePalette, getColombiaAccent, getColombiaColors, getColombiaFlagUrl, getColombiaGradient, getColombiaHexColor, getColombiaPalette, getCountryConfig, getEgyptAccent, getEgyptColors, getEgyptFlagUrl, getEgyptGradient, getEgyptHexColor, getEgyptPalette, getFranceAccent, getFranceColors, getFranceFlagUrl, getFranceGradient, getFranceHexColor, getFrancePalette, getGermanyAccent, getGermanyColors, getGermanyFlagUrl, getGermanyGradient, getGermanyHexColor, getGermanyPalette, getIndiaAccent, getIndiaColors, getIndiaFlagUrl, getIndiaGradient, getIndiaHexColor, getIndiaPalette, getIndonesiaAccent, getIndonesiaColors, getIndonesiaFlagUrl, getIndonesiaGradient, getIndonesiaHexColor, getIndonesiaPalette, getItalyAccent, getItalyColors, getItalyFlagUrl, getItalyGradient, getItalyHexColor, getItalyPalette, getJapanAccent, getJapanColors, getJapanFlagUrl, getJapanGradient, getJapanHexColor, getJapanPalette, getMexicoAccent, getMexicoColors, getMexicoFlagUrl, getMexicoGradient, getMexicoHexColor, getMexicoPalette, getNetherlandsAccent, getNetherlandsColors, getNetherlandsFlagUrl, getNetherlandsGradient, getNetherlandsHexColor, getNetherlandsPalette, getNewZealandAccent, getNewZealandColors, getNewZealandFlagUrl, getNewZealandGradient, getNewZealandHexColor, getNewZealandPalette, getNigeriaAccent, getNigeriaColors, getNigeriaFlagUrl, getNigeriaGradient, getNigeriaHexColor, getNigeriaPalette, getNorwayAccent, getNorwayColors, getNorwayFlagUrl, getNorwayGradient, getNorwayHexColor, getNorwayPalette, getPeruAccent, getPeruColors, getPeruFlagUrl, getPeruGradient, getPeruHexColor, getPeruPalette, getPhilippinesAccent, getPhilippinesColors, getPhilippinesFlagUrl, getPhilippinesGradient, getPhilippinesHexColor, getPhilippinesPalette, getPolandAccent, getPolandColors, getPolandFlagUrl, getPolandGradient, getPolandHexColor, getPolandPalette, getPortugalAccent, getPortugalColors, getPortugalFlagUrl, getPortugalGradient, getPortugalHexColor, getPortugalPalette, getSouthAfricaAccent, getSouthAfricaColors, getSouthAfricaFlagUrl, getSouthAfricaGradient, getSouthAfricaHexColor, getSouthAfricaPalette, getSouthKoreaAccent, getSouthKoreaColors, getSouthKoreaFlagUrl, getSouthKoreaGradient, getSouthKoreaHexColor, getSouthKoreaPalette, getSpainAccent, getSpainColors, getSpainFlagUrl, getSpainGradient, getSpainHexColor, getSpainPalette, getStatusColor, getSubdivisionAccent, getSubdivisionColors, getSubdivisionFlagUrl, getSubdivisionGradient, getSubdivisionHexColor, getSubdivisionPalette, getSwedenAccent, getSwedenColors, getSwedenFlagUrl, getSwedenGradient, getSwedenHexColor, getSwedenPalette, getThailandAccent, getThailandColors, getThailandFlagUrl, getThailandGradient, getThailandHexColor, getThailandPalette, getTransition, getTurkeyAccent, getTurkeyColors, getTurkeyFlagUrl, getTurkeyGradient, getTurkeyHexColor, getTurkeyPalette, getUKAccent, getUKColors, getUKFlagUrl, getUKGradient, getUKHexColor, getUKPalette, getUsAccent, getUsColors, getUsFlagUrl, getUsGradient, getUsHexColor, getUsPalette, getVariants, iosColors, isValidArgentinaProvince, isValidAustraliaState, isValidBrazilState, isValidCanadaProvince, isValidChileRegion, isValidColombiaDepartment, isValidEgyptGovernorate, isValidFranceRegion, isValidGermanyState, isValidIndiaState, isValidIndonesiaProvince, isValidItalyRegion, isValidJapanPrefecture, isValidMexicoState, isValidNetherlandsProvince, isValidNewZealandRegion, isValidNigeriaState, isValidNorwayCounty, isValidPeruDepartment, isValidPhilippinesProvince, isValidPolandVoivodeship, isValidPortugalDistrict, isValidSouthAfricaProvince, isValidSouthKoreaProvince, isValidSpainProvince, isValidSubdivision, isValidSwedenCounty, isValidThailandProvince, isValidTurkeyProvince, isValidUKNation, isValidUsState, listItem, listItemReduced, motionTokens, notificationBanner, notificationBannerReduced, pageControlDot, prefersReducedMotion, registerCountry, registerSubdivisionTheme, resolveGlassAccentRgb, selectIsAuthenticated, selectShowShellChrome, selectUserInitial, selectUserName, shimmerClass, shimmerWhiteClass, slideDown, slideRight, slideUp, spring, springPresets, springPresetsReduced, staggerContainer, swipeActionThreshold, swipeConstraints, triggerHaptic, useGeoMapState, useHaptic, useNotifications, usePlatformShellStore, usePullToRefresh, validateDashboardSpec, xScale, yScale };