@anvia/studio 1.3.13 → 1.3.15
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.
- package/dist/ui/assets/{ArrowClockwise.es-DwsUsBcf.js → ArrowClockwise.es-DZEjRq0J.js} +2 -2
- package/dist/ui/assets/ArrowClockwise.es-DZEjRq0J.js.map +1 -0
- package/dist/ui/assets/{Check.es-DSgPB1Pv.js → Check.es-TFx4xBI5.js} +2 -2
- package/dist/ui/assets/Check.es-TFx4xBI5.js.map +1 -0
- package/dist/ui/assets/Combination-CFi_6UzA.js +42 -0
- package/dist/ui/assets/Combination-CFi_6UzA.js.map +1 -0
- package/dist/ui/assets/{Copy.es-C6Vd2mhd.js → Copy.es-BUkmbhxT.js} +2 -2
- package/dist/ui/assets/Copy.es-BUkmbhxT.js.map +1 -0
- package/dist/ui/assets/{MagnifyingGlass.es-DP3xtOg0.js → MagnifyingGlass.es-DVzl9EQ2.js} +2 -2
- package/dist/ui/assets/MagnifyingGlass.es-DVzl9EQ2.js.map +1 -0
- package/dist/ui/assets/{Wrench.es-BEBc8KqB.js → Wrench.es-Uf2XraWM.js} +2 -2
- package/dist/ui/assets/Wrench.es-Uf2XraWM.js.map +1 -0
- package/dist/ui/assets/{agents-page-BeBY9su3.js → agents-page-BLy19QA8.js} +2 -2
- package/dist/ui/assets/agents-page-BLy19QA8.js.map +1 -0
- package/dist/ui/assets/{badge-MfEDrFTO.js → badge-D6eyQQ0T.js} +2 -2
- package/dist/ui/assets/badge-D6eyQQ0T.js.map +1 -0
- package/dist/ui/assets/button-4bdMllZ8.js +2 -0
- package/dist/ui/assets/button-4bdMllZ8.js.map +1 -0
- package/dist/ui/assets/dialog-D1odZMnQ.js +2 -0
- package/dist/ui/assets/dialog-D1odZMnQ.js.map +1 -0
- package/dist/ui/assets/dist-C6Ez28oH.js +2 -0
- package/dist/ui/assets/dist-C6Ez28oH.js.map +1 -0
- package/dist/ui/assets/dist-gzPjmjmv.js +2 -0
- package/dist/ui/assets/dist-gzPjmjmv.js.map +1 -0
- package/dist/ui/assets/dist-uvOGC5z0.js +2 -0
- package/dist/ui/assets/dist-uvOGC5z0.js.map +1 -0
- package/dist/ui/assets/{graphs-page-2rKZQJAl.js → graphs-page-CDMb6H6o.js} +2 -2
- package/dist/ui/assets/graphs-page-CDMb6H6o.js.map +1 -0
- package/dist/ui/assets/{icon-BivhXy0Y.js → icon-B3s_bapw.js} +2 -2
- package/dist/ui/assets/icon-B3s_bapw.js.map +1 -0
- package/dist/ui/assets/index-BpwQ_xqH.js +67 -0
- package/dist/ui/assets/index-BpwQ_xqH.js.map +1 -0
- package/dist/ui/assets/index-DVwgJz2a.css +2 -0
- package/dist/ui/assets/{input-C35vs5wD.js → input-DjRTBLA6.js} +2 -2
- package/dist/ui/assets/input-DjRTBLA6.js.map +1 -0
- package/dist/ui/assets/knowledge-model-B6kRb7zc.js.map +1 -1
- package/dist/ui/assets/knowledge-page-BpSbnDxl.js +2 -0
- package/dist/ui/assets/knowledge-page-BpSbnDxl.js.map +1 -0
- package/dist/ui/assets/mcps-page-CAdyljvT.js +2 -0
- package/dist/ui/assets/mcps-page-CAdyljvT.js.map +1 -0
- package/dist/ui/assets/memory-page-MhRppZ8j.js +4 -0
- package/dist/ui/assets/memory-page-MhRppZ8j.js.map +1 -0
- package/dist/ui/assets/{pipelines-page-BeE6_VuK.js → pipelines-page-ClFgb3LL.js} +2 -2
- package/dist/ui/assets/pipelines-page-ClFgb3LL.js.map +1 -0
- package/dist/ui/assets/renderers-C1LvbME4.js +94 -0
- package/dist/ui/assets/renderers-C1LvbME4.js.map +1 -0
- package/dist/ui/assets/{request-CpxtfF0E.js → request-C9FAR59q.js} +2 -2
- package/dist/ui/assets/request-C9FAR59q.js.map +1 -0
- package/dist/ui/assets/rfb-CtGtw_KV.js +6 -0
- package/dist/ui/assets/rfb-CtGtw_KV.js.map +1 -0
- package/dist/ui/assets/{sandboxes-page-GPkBA_26.js → sandboxes-page-B1j_lSIA.js} +2 -2
- package/dist/ui/assets/sandboxes-page-B1j_lSIA.js.map +1 -0
- package/dist/ui/assets/select-DwjXlQvi.js +2 -0
- package/dist/ui/assets/select-DwjXlQvi.js.map +1 -0
- package/dist/ui/assets/{sessions-page-CDvKPoVi.js → sessions-page-Bym9fk3t.js} +2 -2
- package/dist/ui/assets/sessions-page-Bym9fk3t.js.map +1 -0
- package/dist/ui/assets/status-page-WZ4bloEs.js +2 -0
- package/dist/ui/assets/status-page-WZ4bloEs.js.map +1 -0
- package/dist/ui/assets/{studio-DeO7ueA2.js → studio-ZpV3GAsn.js} +2 -2
- package/dist/ui/assets/studio-ZpV3GAsn.js.map +1 -0
- package/dist/ui/assets/style-B23wzg_0.js +8 -0
- package/dist/ui/assets/style-B23wzg_0.js.map +1 -0
- package/dist/ui/assets/{team-playground-C-nJy3BC.js → team-playground-BWPiCcRS.js} +2 -2
- package/dist/ui/assets/{team-playground-C-nJy3BC.js.map → team-playground-BWPiCcRS.js.map} +1 -1
- package/dist/ui/assets/{textarea-BqjRR-2a.js → textarea-D_t9rW9X.js} +2 -2
- package/dist/ui/assets/textarea-D_t9rW9X.js.map +1 -0
- package/dist/ui/assets/{tool-runner-D3CdDSUU.js → tool-runner-BVvlqFJh.js} +2 -2
- package/dist/ui/assets/tool-runner-BVvlqFJh.js.map +1 -0
- package/dist/ui/assets/tools-page-BTQvpS16.js +2 -0
- package/dist/ui/assets/tools-page-BTQvpS16.js.map +1 -0
- package/dist/ui/assets/trace-browser-DiYLVmUu.js +4 -0
- package/dist/ui/assets/trace-browser-DiYLVmUu.js.map +1 -0
- package/dist/ui/assets/{transcript-item-D9M-VsnP.js → transcript-item-Wai6fv5d.js} +2 -2
- package/dist/ui/assets/transcript-item-Wai6fv5d.js.map +1 -0
- package/dist/ui/assets/{with-selector-CfGDDu3e.js → with-selector-DI0K_VfM.js} +2 -2
- package/dist/ui/assets/with-selector-DI0K_VfM.js.map +1 -0
- package/dist/ui/index.html +17 -17
- package/package.json +22 -22
- package/dist/ui/assets/ArrowClockwise.es-DwsUsBcf.js.map +0 -1
- package/dist/ui/assets/Check.es-DSgPB1Pv.js.map +0 -1
- package/dist/ui/assets/Combination-BkVfYDnw.js +0 -42
- package/dist/ui/assets/Combination-BkVfYDnw.js.map +0 -1
- package/dist/ui/assets/Copy.es-C6Vd2mhd.js.map +0 -1
- package/dist/ui/assets/MagnifyingGlass.es-DP3xtOg0.js.map +0 -1
- package/dist/ui/assets/Wrench.es-BEBc8KqB.js.map +0 -1
- package/dist/ui/assets/agents-page-BeBY9su3.js.map +0 -1
- package/dist/ui/assets/badge-MfEDrFTO.js.map +0 -1
- package/dist/ui/assets/button-jjWFI6nO.js +0 -2
- package/dist/ui/assets/button-jjWFI6nO.js.map +0 -1
- package/dist/ui/assets/dialog-7KiF6M8r.js +0 -2
- package/dist/ui/assets/dialog-7KiF6M8r.js.map +0 -1
- package/dist/ui/assets/dist-Che9Yn41.js +0 -2
- package/dist/ui/assets/dist-Che9Yn41.js.map +0 -1
- package/dist/ui/assets/dist-Du1CgPgL.js +0 -2
- package/dist/ui/assets/dist-Du1CgPgL.js.map +0 -1
- package/dist/ui/assets/dist-xrWIzsxw.js +0 -2
- package/dist/ui/assets/dist-xrWIzsxw.js.map +0 -1
- package/dist/ui/assets/graphs-page-2rKZQJAl.js.map +0 -1
- package/dist/ui/assets/icon-BivhXy0Y.js.map +0 -1
- package/dist/ui/assets/index-BDFcpxF9.css +0 -2
- package/dist/ui/assets/index-DQo99AOj.js +0 -67
- package/dist/ui/assets/index-DQo99AOj.js.map +0 -1
- package/dist/ui/assets/input-C35vs5wD.js.map +0 -1
- package/dist/ui/assets/knowledge-page-CguNnujL.js +0 -2
- package/dist/ui/assets/knowledge-page-CguNnujL.js.map +0 -1
- package/dist/ui/assets/mcps-page-BZVfflk-.js +0 -2
- package/dist/ui/assets/mcps-page-BZVfflk-.js.map +0 -1
- package/dist/ui/assets/memory-page-DyK3UTyb.js +0 -4
- package/dist/ui/assets/memory-page-DyK3UTyb.js.map +0 -1
- package/dist/ui/assets/pipelines-page-BeE6_VuK.js.map +0 -1
- package/dist/ui/assets/renderers-BakHuLSK.js +0 -96
- package/dist/ui/assets/renderers-BakHuLSK.js.map +0 -1
- package/dist/ui/assets/request-CpxtfF0E.js.map +0 -1
- package/dist/ui/assets/rfb-NV_fh9Db.js +0 -6
- package/dist/ui/assets/rfb-NV_fh9Db.js.map +0 -1
- package/dist/ui/assets/sandboxes-page-GPkBA_26.js.map +0 -1
- package/dist/ui/assets/select-Bt5d0Z3n.js +0 -2
- package/dist/ui/assets/select-Bt5d0Z3n.js.map +0 -1
- package/dist/ui/assets/sessions-page-CDvKPoVi.js.map +0 -1
- package/dist/ui/assets/status-page-DvH1oCw1.js +0 -2
- package/dist/ui/assets/status-page-DvH1oCw1.js.map +0 -1
- package/dist/ui/assets/studio-DeO7ueA2.js.map +0 -1
- package/dist/ui/assets/style-C_1A5pxg.js +0 -8
- package/dist/ui/assets/style-C_1A5pxg.js.map +0 -1
- package/dist/ui/assets/textarea-BqjRR-2a.js.map +0 -1
- package/dist/ui/assets/tool-runner-D3CdDSUU.js.map +0 -1
- package/dist/ui/assets/tools-page-C0lqOcri.js +0 -2
- package/dist/ui/assets/tools-page-C0lqOcri.js.map +0 -1
- package/dist/ui/assets/trace-browser-B4cu-jFZ.js +0 -4
- package/dist/ui/assets/trace-browser-B4cu-jFZ.js.map +0 -1
- package/dist/ui/assets/transcript-item-D9M-VsnP.js.map +0 -1
- package/dist/ui/assets/with-selector-CfGDDu3e.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graphs-page-2rKZQJAl.js","names":["t"],"sources":["../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/defs/Plus.es.js","../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/csr/Plus.es.js","../../../../react/dist/graph-explorer/index.js","../../../../react-ui/dist/chunk-E73S3SOF.js","../../../../react-ui/dist/graph-explorer/index.js","../../../src/ui/app/modules/graphs/graph-flow.tsx","../../../src/ui/app/modules/graphs/graphs-page.tsx"],"sourcesContent":["import * as e from \"react\";\nconst a = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M228,128a12,12,0,0,1-12,12H140v76a12,12,0,0,1-24,0V140H40a12,12,0,0,1,0-24h76V40a12,12,0,0,1,24,0v76h76A12,12,0,0,1,228,128Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\n \"path\",\n {\n d: \"M216,56V200a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V56A16,16,0,0,1,56,40H200A16,16,0,0,1,216,56Z\",\n opacity: \"0.2\"\n }\n ), /* @__PURE__ */ e.createElement(\"path\", { d: \"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM184,136H136v48a8,8,0,0,1-16,0V136H72a8,8,0,0,1,0-16h48V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M222,128a6,6,0,0,1-6,6H134v82a6,6,0,0,1-12,0V134H40a6,6,0,0,1,0-12h82V40a6,6,0,0,1,12,0v82h82A6,6,0,0,1,222,128Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M220,128a4,4,0,0,1-4,4H132v84a4,4,0,0,1-8,0V132H40a4,4,0,0,1,0-8h84V40a4,4,0,0,1,8,0v84h84A4,4,0,0,1,220,128Z\" }))\n ]\n]);\nexport {\n a as default\n};\n","import * as o from \"react\";\nimport t from \"../lib/IconBase.es.js\";\nimport a from \"../defs/Plus.es.js\";\nconst e = o.forwardRef((r, s) => /* @__PURE__ */ o.createElement(t, { ref: s, ...r, weights: a }));\ne.displayName = \"PlusIcon\";\nconst n = e;\nexport {\n n as Plus,\n e as PlusIcon\n};\n","// src/graph-explorer/use-graph-explorer.ts\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nvar emptyResult = {\n nodes: [],\n relationships: [],\n truncated: { nodes: false, relationships: false }\n};\nfunction useGraphExplorer(options) {\n const { explore: load, searchText } = options;\n const [result, setResult] = useState(options.initialResult ?? emptyResult);\n const [selectedNodeId, setSelectedNodeId] = useState();\n const [query, setQuery] = useState(options.initialQuery ?? \"\");\n const [status, setStatus] = useState(\n options.initialResult === void 0 ? \"idle\" : \"ready\"\n );\n const [error, setError] = useState();\n const abortRef = useRef(void 0);\n const requestIdRef = useRef(0);\n const overviewRef = useRef({ mode: \"overview\" });\n const expansionDefaultsRef = useRef({});\n useEffect(() => () => abortRef.current?.abort(), []);\n const explore = useCallback(\n async (request) => {\n abortRef.current?.abort();\n const controller = new AbortController();\n abortRef.current = controller;\n const requestId = ++requestIdRef.current;\n const externalSignal = request.abortSignal;\n const abortFromExternal = () => {\n controller.abort();\n if (requestId === requestIdRef.current) {\n abortRef.current = void 0;\n setStatus(\"ready\");\n }\n };\n if (externalSignal?.aborted === true) {\n abortFromExternal();\n setError(void 0);\n return void 0;\n }\n externalSignal?.addEventListener(\"abort\", abortFromExternal, { once: true });\n const nextRequest = {\n ...request,\n abortSignal: controller.signal\n };\n if (request.mode === \"overview\") overviewRef.current = withoutAbortSignal(request);\n setStatus(\"loading\");\n setError(void 0);\n try {\n const next = await load(nextRequest);\n if (controller.signal.aborted || requestId !== requestIdRef.current) return void 0;\n setResult(\n (current) => request.mode === \"expand\" ? mergeGraphExploreResults(current, next) : next\n );\n if (request.mode === \"overview\") {\n expansionDefaultsRef.current = expansionDefaults(request);\n setSelectedNodeId(\n (current) => next.nodes.some((node) => node.id === current) ? current : void 0\n );\n }\n setStatus(\"ready\");\n return next;\n } catch (caught) {\n if (controller.signal.aborted || requestId !== requestIdRef.current) return void 0;\n setError(caught);\n setStatus(\"error\");\n throw caught;\n } finally {\n externalSignal?.removeEventListener(\"abort\", abortFromExternal);\n if (abortRef.current === controller) abortRef.current = void 0;\n }\n },\n [load]\n );\n const expandNode = useCallback(\n (nodeId, expandOptions = {}) => {\n if (nodeId.length === 0) throw new TypeError(\"Graph explorer node id must be non-empty.\");\n return explore({\n ...expansionDefaultsRef.current,\n ...expandOptions,\n mode: \"expand\",\n nodeIds: [nodeId]\n });\n },\n [explore]\n );\n const refresh = useCallback(() => explore(overviewRef.current), [explore]);\n const stop = useCallback(() => {\n requestIdRef.current += 1;\n abortRef.current?.abort();\n abortRef.current = void 0;\n setError(void 0);\n setStatus(\"ready\");\n }, []);\n const reset = useCallback(() => {\n requestIdRef.current += 1;\n abortRef.current?.abort();\n abortRef.current = void 0;\n overviewRef.current = { mode: \"overview\" };\n expansionDefaultsRef.current = {};\n setResult(emptyResult);\n setSelectedNodeId(void 0);\n setQuery(\"\");\n setError(void 0);\n setStatus(\"idle\");\n }, []);\n const nodeById = useMemo(\n () => new Map(result.nodes.map((node) => [node.id, node])),\n [result.nodes]\n );\n const selectedNode = selectedNodeId === void 0 ? void 0 : nodeById.get(selectedNodeId);\n const matchedNodeIds = useMemo(\n () => new Set(\n result.nodes.filter((node) => graphExplorerNodeMatches(node, query, searchText)).map((node) => node.id)\n ),\n [query, result.nodes, searchText]\n );\n return useMemo(\n () => ({\n nodes: result.nodes,\n nodeById,\n relationships: result.relationships,\n truncated: result.truncated,\n selectedNodeId,\n selectedNode,\n query,\n matchedNodeIds,\n status,\n error,\n explore,\n expandNode,\n refresh,\n selectNode: setSelectedNodeId,\n setQuery,\n stop,\n reset\n }),\n [\n error,\n expandNode,\n explore,\n matchedNodeIds,\n nodeById,\n query,\n refresh,\n reset,\n result,\n selectedNode,\n selectedNodeId,\n status,\n stop\n ]\n );\n}\nfunction mergeGraphExploreResults(current, next) {\n const nodes = new Map(current.nodes.map((node) => [node.id, node]));\n const relationships = new Map(\n current.relationships.map((relationship) => [relationship.id, relationship])\n );\n for (const node of next.nodes) nodes.set(node.id, node);\n for (const relationship of next.relationships) relationships.set(relationship.id, relationship);\n return {\n nodes: [...nodes.values()],\n relationships: [...relationships.values()],\n truncated: {\n nodes: current.truncated.nodes || next.truncated.nodes,\n relationships: current.truncated.relationships || next.truncated.relationships\n }\n };\n}\nfunction graphExplorerNodeMatches(node, query, searchText) {\n const normalizedQuery = query.trim().toLocaleLowerCase();\n if (normalizedQuery.length === 0) return true;\n if (searchText !== void 0) {\n return searchText(node).toLocaleLowerCase().includes(normalizedQuery);\n }\n return defaultGraphExplorerNodeSearchValues(node).some(\n (value) => String(value ?? \"\").toLocaleLowerCase().includes(normalizedQuery)\n );\n}\nfunction defaultGraphExplorerNodeSearchValues(node) {\n const properties = Object.entries(node.properties).flatMap(([key, value]) => [\n key,\n Array.isArray(value) ? value.join(\" \") : String(value)\n ]);\n return [node.type, node.key, ...Object.values(node.identity), ...properties];\n}\nfunction withoutAbortSignal(options) {\n const { abortSignal: _abortSignal, ...request } = options;\n return request;\n}\nfunction expansionDefaults(options) {\n return {\n nodeTypes: options.nodeTypes,\n relationships: options.relationships,\n includeProvenance: options.includeProvenance,\n maxNodes: options.maxNodes,\n maxRelationships: options.maxRelationships\n };\n}\nexport {\n graphExplorerNodeMatches,\n mergeGraphExploreResults,\n useGraphExplorer\n};\n//# sourceMappingURL=index.js.map","// src/contexts/attachment.tsx\nimport { createContext, createElement, useContext } from \"react\";\nvar AttachmentContext = createContext(void 0);\nfunction InternalAttachmentProvider({\n value,\n children\n}) {\n return createElement(AttachmentContext.Provider, { value }, children);\n}\nfunction useAttachment() {\n const value = useContext(AttachmentContext);\n if (value === void 0) {\n throw new Error(\"Attachment primitives must be used inside AttachmentPrimitive.Root.\");\n }\n return value;\n}\nfunction useOptionalAttachment() {\n return useContext(AttachmentContext);\n}\n\n// src/contexts/chat.tsx\nimport { createContext as createContext2, createElement as createElement2, useContext as useContext2 } from \"react\";\nvar ChatContext = createContext2(void 0);\nfunction ChatProvider({ controller, children }) {\n return createElement2(\n ChatContext.Provider,\n { value: controller },\n children\n );\n}\nfunction useChatContext() {\n const value = useContext2(ChatContext);\n if (value === void 0) {\n throw new Error(\"Anvia chat primitives must be used inside ChatProvider.\");\n }\n return value;\n}\nfunction useHumanInput() {\n const interactions = useChatContext().interactions;\n const approvals = interactions.all.filter(\n (item) => item.request.type === \"tool-approval\"\n );\n const questions = interactions.all.filter(\n (item) => item.request.type === \"tool-question\"\n );\n return {\n approvals: {\n all: approvals,\n pending: approvals.filter((item) => item.status === \"pending\")\n },\n questions: {\n all: questions,\n pending: questions.filter((item) => item.status === \"pending\")\n }\n };\n}\n\n// src/contexts/completion.tsx\nimport { createContext as createContext3, createElement as createElement3, useContext as useContext3 } from \"react\";\nvar CompletionContext = createContext3(void 0);\nfunction CompletionProvider({ controller, children }) {\n return createElement3(\n CompletionContext.Provider,\n { value: controller },\n children\n );\n}\nfunction useCompletionContext() {\n const value = useContext3(CompletionContext);\n if (value === void 0) {\n throw new Error(\"Anvia completion primitives must be used inside CompletionProvider.\");\n }\n return value;\n}\n\n// src/contexts/graph-explorer.tsx\nimport { createContext as createContext4, createElement as createElement4, useContext as useContext4 } from \"react\";\nvar GraphExplorerContext = createContext4(void 0);\nvar GraphExplorerNodeContext = createContext4(\n void 0\n);\nfunction GraphExplorerProvider({\n controller,\n children\n}) {\n return createElement4(\n GraphExplorerContext.Provider,\n { value: controller },\n children\n );\n}\nfunction InternalGraphExplorerNodeProvider({\n value,\n children\n}) {\n return createElement4(GraphExplorerNodeContext.Provider, { value }, children);\n}\nfunction useGraphExplorerContext() {\n const value = useContext4(GraphExplorerContext);\n if (value === void 0) {\n throw new Error(\"Graph explorer primitives must be used inside GraphExplorerProvider.\");\n }\n return value;\n}\nfunction useGraphExplorerNode() {\n const value = useContext4(GraphExplorerNodeContext);\n if (value === void 0) {\n throw new Error(\n \"Graph explorer node primitives must be used inside GraphExplorerNodePrimitive.Root or GraphExplorerPrimitive.Nodes.\"\n );\n }\n return value;\n}\nfunction useOptionalGraphExplorerNode() {\n return useContext4(GraphExplorerNodeContext);\n}\n\n// src/contexts/completion-input.tsx\nimport { createContext as createContext5, createElement as createElement5, useContext as useContext5 } from \"react\";\nvar CompletionInputContext = createContext5(void 0);\nfunction InternalCompletionInputProvider({\n value,\n children\n}) {\n return createElement5(CompletionInputContext.Provider, { value }, children);\n}\nfunction useCompletionInput() {\n const value = useContext5(CompletionInputContext);\n if (value === void 0) {\n throw new Error(\"Completion input primitives must be used inside CompletionPrimitive.Form.\");\n }\n return value;\n}\n\n// src/contexts/composer.tsx\nimport { createContext as createContext6, createElement as createElement6, useContext as useContext6 } from \"react\";\nvar ComposerContext = createContext6(void 0);\nfunction InternalComposerProvider({\n value,\n children\n}) {\n return createElement6(ComposerContext.Provider, { value }, children);\n}\nfunction useComposer() {\n const value = useContext6(ComposerContext);\n if (value === void 0) {\n throw new Error(\"Composer primitives must be used inside ComposerPrimitive.Root.\");\n }\n return value;\n}\n\n// src/contexts/human-input.tsx\nimport {\n createContext as createContext7,\n createElement as createElement7,\n useContext as useContext7,\n useMemo,\n useState\n} from \"react\";\nvar ApprovalContext = createContext7(void 0);\nvar QuestionContext = createContext7(void 0);\nvar QuestionPromptContext = createContext7(void 0);\nfunction InternalApprovalProvider({\n approval,\n children\n}) {\n const [reason, setReason] = useState(\"\");\n const value = useMemo(\n () => ({ approval, reason, setReason }),\n [approval, reason]\n );\n return createElement7(ApprovalContext.Provider, { value }, children);\n}\nfunction InternalQuestionProvider({\n value,\n children\n}) {\n return createElement7(QuestionContext.Provider, { value }, children);\n}\nfunction InternalQuestionPromptProvider({\n prompt,\n children\n}) {\n return createElement7(QuestionPromptContext.Provider, { value: { prompt } }, children);\n}\nfunction useApproval() {\n const value = useContext7(ApprovalContext);\n if (value === void 0) {\n throw new Error(\"Approval primitives must be used inside HumanInputPrimitive.Approval.\");\n }\n return value;\n}\nfunction useQuestion() {\n const value = useContext7(QuestionContext);\n if (value === void 0) {\n throw new Error(\"Question primitives must be used inside HumanInputPrimitive.Question.\");\n }\n return value;\n}\nfunction useQuestionPrompt() {\n const value = useContext7(QuestionPromptContext);\n if (value === void 0) {\n throw new Error(\n \"Question choice primitives must be used inside HumanInputPrimitive.QuestionPrompt.\"\n );\n }\n return value;\n}\n\n// src/contexts/image.tsx\nimport { createContext as createContext8, createElement as createElement8, useContext as useContext8 } from \"react\";\nvar ImageContext = createContext8(void 0);\nfunction InternalImageProvider({\n value,\n children\n}) {\n return createElement8(ImageContext.Provider, { value }, children);\n}\nfunction useImage() {\n const value = useContext8(ImageContext);\n if (value === void 0) {\n throw new Error(\"Image primitives must be used inside ImagePrimitive.Root.\");\n }\n return value;\n}\n\n// src/contexts/message.tsx\nimport { createContext as createContext9, createElement as createElement9, useContext as useContext9 } from \"react\";\nvar MessageContext = createContext9(void 0);\nvar MessagePartContext = createContext9(void 0);\nfunction InternalMessageProvider({\n message,\n children\n}) {\n return createElement9(MessageContext.Provider, { value: { message } }, children);\n}\nfunction InternalMessagePartProvider({\n part,\n isLive = false,\n streamControlled = false,\n children\n}) {\n return createElement9(\n MessagePartContext.Provider,\n { value: { isLive, part, streamControlled } },\n children\n );\n}\nfunction useMessage() {\n const value = useContext9(MessageContext);\n if (value === void 0) {\n throw new Error(\n \"Message primitives must be used inside MessagePrimitive.Root or ThreadPrimitive.Messages.\"\n );\n }\n return value;\n}\nfunction useMessagePart() {\n const value = useContext9(MessagePartContext);\n if (value === void 0) {\n throw new Error(\n \"Message part primitives must be used inside MessagePrimitive.Parts or MessagePrimitive.Part.\"\n );\n }\n return value;\n}\nfunction useOptionalMessagePart() {\n return useContext9(MessagePartContext);\n}\n\n// src/contexts/selection-toolbar.tsx\nimport { createContext as createContext10, createElement as createElement10, useContext as useContext10 } from \"react\";\nvar SelectionToolbarContext = createContext10(void 0);\nfunction InternalSelectionToolbarProvider({\n value,\n children\n}) {\n return createElement10(SelectionToolbarContext.Provider, { value }, children);\n}\nfunction useSelectionToolbar() {\n const value = useContext10(SelectionToolbarContext);\n if (value === void 0) {\n throw new Error(\n \"SelectionToolbar primitives must be used inside SelectionToolbarPrimitive.Root.\"\n );\n }\n return value;\n}\n\n// src/contexts/thread.tsx\nimport {\n createContext as createContext11,\n createElement as createElement11,\n useContext as useContext11\n} from \"react\";\nvar ThreadContext = createContext11(void 0);\nfunction InternalThreadProvider({\n value,\n children\n}) {\n return createElement11(ThreadContext.Provider, { value }, children);\n}\nfunction useThread() {\n const value = useContext11(ThreadContext);\n if (value === void 0) {\n throw new Error(\"Thread primitives must be used inside ThreadPrimitive.Root.\");\n }\n return value;\n}\n\n// src/contexts/thread-list.tsx\nimport {\n createContext as createContext12,\n createElement as createElement12,\n useContext as useContext12\n} from \"react\";\nvar ThreadListContext = createContext12(void 0);\nvar ThreadListItemContext = createContext12(void 0);\nvar ThreadListRootContext = createContext12(\n void 0\n);\nfunction ThreadListProvider({\n controller,\n children\n}) {\n return createElement12(ThreadListContext.Provider, { value: controller }, children);\n}\nfunction InternalThreadListItemProvider({\n value,\n children\n}) {\n return createElement12(ThreadListItemContext.Provider, { value }, children);\n}\nfunction InternalThreadListRootProvider({\n value,\n children\n}) {\n return createElement12(ThreadListRootContext.Provider, { value }, children);\n}\nfunction useThreadList() {\n const value = useContext12(ThreadListContext);\n if (value === void 0) {\n throw new Error(\"ThreadList primitives must be used inside ThreadListProvider.\");\n }\n return value;\n}\nfunction useThreadListItem() {\n const value = useContext12(ThreadListItemContext);\n if (value === void 0) {\n throw new Error(\"ThreadListItem primitives must be used inside ThreadListPrimitive.Items.\");\n }\n return value;\n}\nfunction useInternalThreadListRoot() {\n const value = useContext12(ThreadListRootContext);\n if (value === void 0) {\n throw new Error(\"Thread-list primitives must be used inside ThreadListPrimitive.Root.\");\n }\n return value;\n}\n\nexport {\n InternalAttachmentProvider,\n useAttachment,\n useOptionalAttachment,\n ChatProvider,\n useChatContext,\n useHumanInput,\n CompletionProvider,\n useCompletionContext,\n GraphExplorerProvider,\n InternalGraphExplorerNodeProvider,\n useGraphExplorerContext,\n useGraphExplorerNode,\n useOptionalGraphExplorerNode,\n InternalCompletionInputProvider,\n useCompletionInput,\n InternalComposerProvider,\n useComposer,\n InternalApprovalProvider,\n InternalQuestionProvider,\n InternalQuestionPromptProvider,\n useApproval,\n useQuestion,\n useQuestionPrompt,\n InternalImageProvider,\n useImage,\n InternalMessageProvider,\n InternalMessagePartProvider,\n useMessage,\n useMessagePart,\n useOptionalMessagePart,\n InternalSelectionToolbarProvider,\n useSelectionToolbar,\n InternalThreadProvider,\n useThread,\n ThreadListProvider,\n InternalThreadListItemProvider,\n InternalThreadListRootProvider,\n useThreadList,\n useThreadListItem,\n useInternalThreadListRoot\n};\n//# sourceMappingURL=chunk-E73S3SOF.js.map","import {\n renderPrimitive\n} from \"../chunk-T3ZFZ3NP.js\";\nimport {\n GraphExplorerProvider,\n InternalGraphExplorerNodeProvider,\n useGraphExplorerContext,\n useGraphExplorerNode,\n useOptionalGraphExplorerNode\n} from \"../chunk-E73S3SOF.js\";\n\n// src/graph-explorer/parts.tsx\nimport { forwardRef, useCallback } from \"react\";\n\n// src/graph-explorer/helpers.ts\nfunction graphExplorerNodeLabel(node) {\n for (const key of [\"name\", \"title\", \"label\"]) {\n const value = node.properties[key];\n if (typeof value === \"string\" && value.trim().length > 0) return value;\n }\n if (node.key !== void 0) return node.key;\n return `${node.type} ${node.id}`;\n}\n\n// src/graph-explorer/parts.tsx\nimport { jsx } from \"react/jsx-runtime\";\nvar GraphExplorerRoot = forwardRef(\n function GraphExplorerRoot2(props, ref) {\n const explorer = useGraphExplorerContext();\n const truncated = explorer.truncated.nodes || explorer.truncated.relationships;\n return renderPrimitive(\n \"div\",\n {\n ...props,\n \"aria-busy\": explorer.status === \"loading\",\n \"data-role\": \"graph-explorer\",\n \"data-state\": explorer.status,\n \"data-truncated\": truncated ? \"true\" : \"false\"\n },\n ref\n );\n }\n);\nvar GraphExplorerSearch = forwardRef(\n function GraphExplorerSearch2({ onChange, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const handleChange = useCallback(\n (event) => {\n onChange?.(event);\n if (!event.defaultPrevented) explorer.setQuery(event.currentTarget.value);\n },\n [explorer, onChange]\n );\n return renderPrimitive(\n \"input\",\n {\n ...props,\n \"aria-label\": props[\"aria-label\"] ?? \"Search graph\",\n \"data-state\": explorer.query.length === 0 ? \"empty\" : \"populated\",\n onChange: handleChange,\n type: props.type ?? \"search\",\n value: explorer.query\n },\n ref\n );\n }\n);\nvar GraphExplorerViewport = forwardRef(\n function GraphExplorerViewport2(props, ref) {\n return renderPrimitive(\n \"div\",\n { ...props, \"data-role\": \"graph-explorer-viewport\" },\n ref\n );\n }\n);\nvar GraphExplorerNodes = forwardRef(\n function GraphExplorerNodes2({ children, keepMounted = false, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const empty = explorer.nodes.length === 0;\n if (empty && !keepMounted) return null;\n return renderPrimitive(\n \"div\",\n {\n ...props,\n children: explorer.nodes.map((node) => {\n const state = {\n node,\n selected: node.id === explorer.selectedNodeId,\n matched: explorer.matchedNodeIds.has(node.id)\n };\n return /* @__PURE__ */ jsx(InternalGraphExplorerNodeProvider, { value: state, children: typeof children === \"function\" ? children(node, state) : children ?? /* @__PURE__ */ jsx(GraphExplorerNodeRoot, { children: /* @__PURE__ */ jsx(GraphExplorerNodeTrigger, {}) }) }, node.id);\n }),\n \"data-state\": empty ? \"empty\" : \"populated\",\n role: props.role ?? \"list\"\n },\n ref\n );\n }\n);\nvar GraphExplorerEmpty = forwardRef(\n function GraphExplorerEmpty2(props, ref) {\n const explorer = useGraphExplorerContext();\n if (explorer.nodes.length > 0 || explorer.status === \"loading\") return null;\n return renderPrimitive(\n \"div\",\n { ...props, children: props.children ?? \"No graph nodes.\" },\n ref\n );\n }\n);\nvar GraphExplorerStatus = forwardRef(\n function GraphExplorerStatus2({ children, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const content = typeof children === \"function\" ? children(explorer) : children ?? statusText(explorer);\n return renderPrimitive(\n \"div\",\n {\n ...props,\n children: content,\n \"data-state\": explorer.status,\n role: props.role ?? \"status\"\n },\n ref\n );\n }\n);\nvar GraphExplorerRefresh = forwardRef(\n function GraphExplorerRefresh2({ onClick, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const disabled = props.disabled ?? explorer.status === \"loading\";\n const handleClick = useAsyncAction(onClick, disabled, explorer.refresh);\n return renderPrimitive(\n \"button\",\n {\n ...props,\n children: props.children ?? \"Refresh graph\",\n disabled,\n onClick: handleClick,\n type: props.type ?? \"button\"\n },\n ref\n );\n }\n);\nvar GraphExplorerNodeRoot = forwardRef(\n function GraphExplorerNodeRoot2({ nodeId, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const inherited = useOptionalGraphExplorerNode();\n const node = nodeId === void 0 ? inherited?.node : explorer.nodeById.get(nodeId);\n if (node === void 0) {\n throw new Error(\n nodeId === void 0 ? \"GraphExplorerNodePrimitive.Root requires a nodeId outside GraphExplorerPrimitive.Nodes.\" : `Graph explorer node ${nodeId} is not loaded.`\n );\n }\n const state = {\n node,\n selected: node.id === explorer.selectedNodeId,\n matched: explorer.matchedNodeIds.has(node.id)\n };\n return /* @__PURE__ */ jsx(InternalGraphExplorerNodeProvider, { value: state, children: renderPrimitive(\n \"div\",\n {\n ...props,\n \"data-match\": state.matched ? \"matched\" : \"unmatched\",\n \"data-node-id\": state.node.id,\n \"data-node-type\": state.node.type,\n \"data-state\": state.selected ? \"selected\" : \"unselected\",\n role: props.role ?? (inherited === void 0 ? void 0 : \"listitem\")\n },\n ref\n ) });\n }\n);\nvar GraphExplorerNodeTrigger = forwardRef(\n function GraphExplorerNodeTrigger2({ onClick, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const state = useGraphExplorerNode();\n const handleClick = useCallback(\n (event) => {\n onClick?.(event);\n if (!event.defaultPrevented && !props.disabled) explorer.selectNode(state.node.id);\n },\n [explorer, onClick, props.disabled, state.node.id]\n );\n return renderPrimitive(\n \"button\",\n {\n ...props,\n children: props.children ?? graphExplorerNodeLabel(state.node),\n onClick: handleClick,\n type: props.type ?? \"button\",\n \"aria-pressed\": state.selected\n },\n ref\n );\n }\n);\nvar GraphExplorerNodeExpand = forwardRef(\n function GraphExplorerNodeExpand2({ onClick, options, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const state = useGraphExplorerNode();\n const disabled = props.disabled ?? explorer.status === \"loading\";\n const expand = useCallback(\n () => explorer.expandNode(state.node.id, options),\n [explorer, options, state.node.id]\n );\n const handleClick = useAsyncAction(onClick, disabled, expand);\n return renderPrimitive(\n \"button\",\n {\n ...props,\n children: props.children ?? \"Expand\",\n disabled,\n onClick: handleClick,\n type: props.type ?? \"button\"\n },\n ref\n );\n }\n);\nfunction useAsyncAction(onClick, disabled, action) {\n return useCallback(\n (event) => {\n onClick?.(event);\n if (event.defaultPrevented || disabled) return;\n void action().catch(() => void 0);\n },\n [action, disabled, onClick]\n );\n}\nfunction statusText(explorer) {\n if (explorer.status === \"loading\") return \"Loading graph.\";\n if (explorer.status === \"error\") return \"Graph exploration failed.\";\n return `${explorer.nodes.length} nodes, ${explorer.relationships.length} relationships.`;\n}\n\n// src/graph-explorer/index.ts\nvar GraphExplorerPrimitive = {\n Root: GraphExplorerRoot,\n Viewport: GraphExplorerViewport,\n Search: GraphExplorerSearch,\n Nodes: GraphExplorerNodes,\n Empty: GraphExplorerEmpty,\n Status: GraphExplorerStatus,\n Refresh: GraphExplorerRefresh\n};\nvar GraphExplorerNodePrimitive = {\n Root: GraphExplorerNodeRoot,\n Trigger: GraphExplorerNodeTrigger,\n Expand: GraphExplorerNodeExpand\n};\nexport {\n GraphExplorerNodePrimitive,\n GraphExplorerPrimitive,\n GraphExplorerProvider,\n graphExplorerNodeLabel,\n useGraphExplorerContext,\n useGraphExplorerNode\n};\n//# sourceMappingURL=index.js.map","import { Handle, MarkerType, type Node, type NodeProps, Position } from \"@xyflow/react\";\nimport type { GraphExploreNode, GraphExploreRelationship, GraphExploreResult } from \"@anvia/graph\";\nimport { graphExplorerNodeLabel, GraphExplorerNodePrimitive } from \"@anvia/react-ui/graph-explorer\";\n\nexport type ExplorerNodeData = {\n label: string;\n type: string;\n color: string;\n};\n\nexport type ExplorerFlowNode = Node<ExplorerNodeData, \"graphEntity\">;\n\nexport const explorerNodeTypes = {\n graphEntity: GraphEntityNode,\n};\n\nexport function toExplorerFlow(result: GraphExploreResult, matchedNodeIds: ReadonlySet<string>) {\n const visibleNodes = result.nodes.filter((node) => matchedNodeIds.has(node.id));\n const visibleIds = new Set(visibleNodes.map((node) => node.id));\n const nodes = positionNodes(visibleNodes);\n const edges = result.relationships\n .filter((relationship) => visibleIds.has(relationship.from) && visibleIds.has(relationship.to))\n .map((relationship) => relationshipEdge(relationship));\n return { nodes, edges };\n}\n\nfunction GraphEntityNode(props: NodeProps<ExplorerFlowNode>) {\n return (\n <GraphExplorerNodePrimitive.Root nodeId={props.id} asChild>\n <article\n className={[\n \"relative w-[180px] rounded-xl border bg-card px-3 py-2.5 text-left shadow-sm transition\",\n props.selected ? \"border-foreground shadow-md\" : \"border-border/80\",\n ].join(\" \")}\n >\n <Handle\n type=\"target\"\n position={Position.Top}\n className=\"!size-1.5 !border-0 !bg-muted-foreground/50\"\n />\n <div className=\"flex min-w-0 items-center gap-2.5\">\n <span className={[\"size-2.5 shrink-0 rounded-full\", props.data.color].join(\" \")} />\n <div className=\"min-w-0\">\n <div className=\"truncate text-sm font-semibold text-foreground\">{props.data.label}</div>\n <div className=\"mt-0.5 truncate text-[10px] font-semibold uppercase tracking-[0.14em] text-muted-foreground\">\n {props.data.type}\n </div>\n </div>\n </div>\n <Handle\n type=\"source\"\n position={Position.Bottom}\n className=\"!size-1.5 !border-0 !bg-muted-foreground/50\"\n />\n </article>\n </GraphExplorerNodePrimitive.Root>\n );\n}\n\nfunction positionNodes(nodes: readonly GraphExploreNode[]): ExplorerFlowNode[] {\n return nodes.map((node, index) => {\n const angle = index * 2.399963;\n const radius = 180 * Math.sqrt(index);\n return {\n id: node.id,\n type: \"graphEntity\",\n position: {\n x: Math.cos(angle) * radius,\n y: Math.sin(angle) * radius,\n },\n data: {\n label: graphExplorerNodeLabel(node),\n type: node.type,\n color: nodeTypeColor(node.type),\n },\n };\n });\n}\n\nfunction relationshipEdge(relationship: GraphExploreRelationship) {\n return {\n id: relationship.id,\n source: relationship.from,\n target: relationship.to,\n label: relationship.type,\n type: \"smoothstep\",\n markerEnd: { type: MarkerType.ArrowClosed, width: 14, height: 14 },\n labelStyle: { fontSize: 10, fontWeight: 600 },\n style: { strokeWidth: 1.5 },\n };\n}\n\nfunction nodeTypeColor(type: string): string {\n const colors = [\n \"bg-emerald-500\",\n \"bg-sky-500\",\n \"bg-violet-500\",\n \"bg-amber-500\",\n \"bg-rose-500\",\n \"bg-cyan-500\",\n \"bg-fuchsia-500\",\n ];\n let hash = 0;\n for (const character of type) hash = (hash * 31 + character.charCodeAt(0)) >>> 0;\n return colors[hash % colors.length] ?? \"bg-muted-foreground\";\n}\n","import { Background, BackgroundVariant, Controls, ReactFlow } from \"@xyflow/react\";\nimport \"@xyflow/react/dist/style.css\";\nimport { ArrowClockwise, MagnifyingGlass, Plus } from \"@phosphor-icons/react\";\nimport type {\n GraphExploreNode,\n GraphExploreOptions,\n GraphExploreResult,\n GraphSchemaLike,\n} from \"@anvia/graph\";\nimport { useGraphExplorer } from \"@anvia/react/graph-explorer\";\nimport { graphExplorerNodeLabel, GraphExplorerProvider } from \"@anvia/react-ui/graph-explorer\";\nimport { type CSSProperties, useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { StudioConfig } from \"../../../../types\";\nimport { Button } from \"../../components/ui/button\";\nimport { Input } from \"../../components/ui/input\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../components/ui/select\";\nimport {\n StudioEmptyState,\n StudioPageShell,\n StudioStatusBadge,\n StudioSurface,\n} from \"../../components/ui/studio\";\nimport { errorMessage } from \"../shared/format\";\nimport { JsonSyntax } from \"../shared/renderers\";\nimport { requestJson } from \"../shared/request\";\nimport { explorerNodeTypes, toExplorerFlow } from \"./graph-flow\";\n\nexport function GraphsPage(props: {\n graphs: StudioConfig[\"graphs\"];\n enabled: boolean;\n theme: \"light\" | \"dark\";\n onError: (message: string) => void;\n onStatus: (message: string) => void;\n}) {\n const { onError, onStatus } = props;\n const [selectedGraphId, setSelectedGraphId] = useState(props.graphs[0]?.id ?? \"\");\n const [selectedNodeTypes, setSelectedNodeTypes] = useState<string[]>([]);\n const [selectedRelationships, setSelectedRelationships] = useState<string[]>([]);\n const graph = props.graphs.find((item) => item.id === selectedGraphId) ?? props.graphs[0];\n const loadGraph = useCallback(\n async (request: GraphExploreOptions<GraphSchemaLike>) => {\n if (graph === undefined) throw new Error(\"Graph explorer unavailable\");\n const { abortSignal, ...body } = request;\n onStatus(\"Loading graph\");\n try {\n const next = await requestJson<GraphExploreResult>(\n `/graphs/${encodeURIComponent(graph.id)}/explore`,\n \"Graph explorer\",\n abortSignal,\n \"no-store\",\n {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(body),\n },\n );\n if (abortSignal?.aborted !== true) onStatus(\"Connected\");\n return next;\n } catch (loadError) {\n if (abortSignal?.aborted !== true) {\n onError(errorMessage(loadError));\n onStatus(\"Graph error\");\n }\n throw loadError;\n }\n },\n [graph, onError, onStatus],\n );\n const explorer = useGraphExplorer({ explore: loadGraph });\n const result = useMemo<GraphExploreResult>(\n () => ({\n nodes: explorer.nodes,\n relationships: explorer.relationships,\n truncated: explorer.truncated,\n }),\n [explorer.nodes, explorer.relationships, explorer.truncated],\n );\n const flow = useMemo(\n () => toExplorerFlow(result, explorer.matchedNodeIds),\n [explorer.matchedNodeIds, result],\n );\n const loading = explorer.status === \"loading\";\n const selectedNode = explorer.selectedNode;\n const explore = explorer.explore;\n const resetExplorer = explorer.reset;\n const selectNode = explorer.selectNode;\n\n useEffect(() => {\n if (graph === undefined) return;\n const nodeTypes = graph.nodeTypes.map((item) => item.name);\n const relationships = graph.relationshipTypes.map((item) => item.name);\n setSelectedGraphId(graph.id);\n setSelectedNodeTypes(nodeTypes);\n setSelectedRelationships(relationships);\n resetExplorer();\n void explore({ mode: \"overview\", nodeTypes, relationships })\n .then((next) => {\n if (next !== undefined) selectNode(next.nodes[0]?.id);\n })\n .catch(() => undefined);\n }, [explore, graph, resetExplorer, selectNode]);\n\n if (!props.enabled || props.graphs.length === 0) {\n return (\n <StudioPageShell aria-label=\"Graphs\">\n <StudioEmptyState\n title={props.enabled ? \"No graphs\" : \"Graph explorer unavailable\"}\n text={\n props.enabled\n ? \"Register a graph in Studio to inspect its nodes and relationships.\"\n : \"This Studio runtime does not expose a graph explorer.\"\n }\n />\n </StudioPageShell>\n );\n }\n\n function reloadOverview() {\n void explore({\n mode: \"overview\",\n nodeTypes: selectedNodeTypes,\n relationships: selectedRelationships,\n })\n .then((next) => {\n if (next !== undefined) selectNode(next.nodes[0]?.id);\n })\n .catch(() => undefined);\n }\n\n function expandSelected() {\n if (selectedNode === undefined) return;\n void explorer\n .expandNode(selectedNode.id, {\n nodeTypes: selectedNodeTypes,\n relationships: selectedRelationships,\n direction: \"both\",\n maxDepth: 1,\n })\n .catch(() => undefined);\n }\n\n return (\n <GraphExplorerProvider controller={explorer}>\n <StudioPageShell aria-label=\"Graphs\">\n <div className=\"grid min-h-0 min-w-0 pb-6 pr-6\">\n <StudioSurface className=\"grid grid-cols-[minmax(0,2fr)_340px] max-lg:grid-cols-1\">\n <div className=\"relative min-h-0 min-w-0 overflow-hidden border-r border-border/80 bg-card/25 max-lg:min-h-96 max-lg:border-b max-lg:border-r-0\">\n <div className=\"absolute left-4 top-4 z-10 flex max-w-[calc(100%-2rem)] items-center gap-2 rounded-xl border border-border/80 bg-background/90 p-2 shadow-sm backdrop-blur\">\n <div className=\"relative min-w-0 flex-1\">\n <MagnifyingGlass className=\"pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground\" />\n <Input\n aria-label=\"Search loaded nodes\"\n className=\"w-64 pl-8\"\n placeholder=\"Search loaded nodes\"\n value={explorer.query}\n onChange={(event) => explorer.setQuery(event.currentTarget.value)}\n />\n </div>\n <StudioStatusBadge>{flow.nodes.length} nodes</StudioStatusBadge>\n <StudioStatusBadge>{flow.edges.length} relations</StudioStatusBadge>\n </div>\n {loading && result.nodes.length === 0 ? (\n <div className=\"grid h-full min-h-96 place-items-center text-sm text-muted-foreground\">\n Loading graph…\n </div>\n ) : null}\n {!loading && result.nodes.length === 0 ? (\n <StudioEmptyState\n className=\"h-full border-0\"\n title=\"No nodes found\"\n text=\"Try another graph or broaden the selected node and relationship types.\"\n />\n ) : null}\n {result.nodes.length > 0 ? (\n <ReactFlow\n key={`${graph?.id}:${result.nodes.length}:${result.relationships.length}`}\n nodes={flow.nodes}\n edges={flow.edges}\n className=\"graph-explorer-flow\"\n colorMode={props.theme}\n nodeTypes={explorerNodeTypes}\n fitView\n fitViewOptions={{ padding: 0.2, maxZoom: 1 }}\n minZoom={0.2}\n maxZoom={1.7}\n proOptions={{ hideAttribution: true }}\n defaultEdgeOptions={{ focusable: true }}\n style={\n {\n \"--xy-edge-stroke\": \"var(--muted-foreground)\",\n \"--xy-edge-stroke-width\": \"1.4\",\n \"--xy-edge-stroke-selected\": \"var(--foreground)\",\n } as CSSProperties\n }\n onNodeClick={(_, node) => explorer.selectNode(node.id)}\n >\n <Background\n variant={BackgroundVariant.Dots}\n gap={16}\n size={1.5}\n color=\"var(--muted-foreground)\"\n className=\"opacity-30\"\n />\n <Controls showInteractive={false} />\n </ReactFlow>\n ) : null}\n </div>\n <GraphInspector\n graph={graph}\n graphs={props.graphs}\n loading={loading}\n result={result}\n selectedGraphId={selectedGraphId}\n selectedNode={selectedNode}\n selectedNodeTypes={selectedNodeTypes}\n selectedRelationships={selectedRelationships}\n onExpand={expandSelected}\n onReload={reloadOverview}\n onSelectGraph={setSelectedGraphId}\n onToggleNodeType={(type) => setSelectedNodeTypes((types) => toggled(types, type))}\n onToggleRelationship={(type) =>\n setSelectedRelationships((types) => toggled(types, type))\n }\n />\n </StudioSurface>\n </div>\n </StudioPageShell>\n </GraphExplorerProvider>\n );\n}\n\nfunction GraphInspector(props: {\n graph: StudioConfig[\"graphs\"][number] | undefined;\n graphs: StudioConfig[\"graphs\"];\n loading: boolean;\n result: GraphExploreResult;\n selectedGraphId: string;\n selectedNode: GraphExploreNode | undefined;\n selectedNodeTypes: string[];\n selectedRelationships: string[];\n onExpand: () => void;\n onReload: () => void;\n onSelectGraph: (id: string) => void;\n onToggleNodeType: (type: string) => void;\n onToggleRelationship: (type: string) => void;\n}) {\n const truncated = props.result.truncated.nodes || props.result.truncated.relationships;\n return (\n <aside className=\"grid min-h-0 grid-rows-[auto_minmax(0,1fr)] overflow-hidden bg-background/70\">\n <header className=\"grid gap-3 border-b border-border/80 bg-card/35 p-4\">\n <div className=\"flex items-start justify-between gap-3\">\n <div className=\"min-w-0\">\n <h1 className=\"truncate text-base font-semibold\">\n {props.graph?.name ?? \"Graph explorer\"}\n </h1>\n <p className=\"mt-1 line-clamp-2 text-xs leading-5 text-muted-foreground\">\n {props.graph?.description ?? \"Explore a bounded view of nodes and relationships.\"}\n </p>\n </div>\n {truncated ? (\n <StudioStatusBadge title=\"The configured result limit was reached\">\n Limited\n </StudioStatusBadge>\n ) : null}\n </div>\n <Select value={props.selectedGraphId} onValueChange={props.onSelectGraph}>\n <SelectTrigger className=\"h-8 w-full text-xs\">\n <SelectValue placeholder=\"Select graph\" />\n </SelectTrigger>\n <SelectContent>\n {props.graphs.map((graph) => (\n <SelectItem key={graph.id} value={graph.id}>\n {graph.name ?? graph.id}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <div className=\"flex gap-2\">\n <Button\n className=\"flex-1\"\n variant=\"secondary\"\n disabled={props.loading || props.selectedNodeTypes.length === 0}\n onClick={props.onReload}\n >\n <ArrowClockwise /> Refresh\n </Button>\n <Button\n className=\"flex-1\"\n disabled={props.loading || props.selectedNode === undefined}\n onClick={props.onExpand}\n >\n <Plus /> Expand\n </Button>\n </div>\n </header>\n <div className=\"min-h-0 overflow-y-auto p-4\">\n <FilterGroup\n label=\"Node types\"\n items={props.graph?.nodeTypes.map((item) => item.name) ?? []}\n selected={props.selectedNodeTypes}\n onToggle={props.onToggleNodeType}\n />\n <FilterGroup\n label=\"Relationships\"\n items={props.graph?.relationshipTypes.map((item) => item.name) ?? []}\n selected={props.selectedRelationships}\n onToggle={props.onToggleRelationship}\n />\n <div className=\"mt-5 border-t border-border/80 pt-4\">\n {props.selectedNode === undefined ? (\n <p className=\"text-sm text-muted-foreground\">\n Select a node to inspect its properties.\n </p>\n ) : (\n <NodeInspector node={props.selectedNode} />\n )}\n </div>\n </div>\n </aside>\n );\n}\n\nfunction FilterGroup(props: {\n label: string;\n items: string[];\n selected: string[];\n onToggle: (value: string) => void;\n}) {\n return (\n <section className=\"mb-4\">\n <h2 className=\"mb-2 text-[10px] font-semibold uppercase tracking-[0.16em] text-muted-foreground\">\n {props.label}\n </h2>\n <div className=\"flex flex-wrap gap-1.5\">\n {props.items.map((item) => {\n const active = props.selected.includes(item);\n return (\n <button\n key={item}\n type=\"button\"\n aria-pressed={active}\n className={[\n \"rounded-full border px-2 py-1 text-xs transition-colors\",\n active\n ? \"border-foreground/30 bg-foreground text-background\"\n : \"border-border bg-card text-muted-foreground hover:text-foreground\",\n ].join(\" \")}\n onClick={() => props.onToggle(item)}\n >\n {item}\n </button>\n );\n })}\n </div>\n </section>\n );\n}\n\nfunction NodeInspector(props: { node: GraphExploreNode }) {\n const json = JSON.stringify(\n { identity: props.node.identity, properties: props.node.properties },\n null,\n 2,\n );\n return (\n <section>\n <StudioStatusBadge>{props.node.type}</StudioStatusBadge>\n <h2 className=\"mt-2 break-words text-base font-semibold\">\n {graphExplorerNodeLabel(props.node)}\n </h2>\n <p className=\"mt-1 break-all text-xs text-muted-foreground\">ID {props.node.id}</p>\n <pre className=\"mt-4 overflow-x-auto rounded-xl border border-border/80 bg-card p-3 text-xs leading-5\">\n <code>\n <JsonSyntax text={json} />\n </code>\n </pre>\n </section>\n );\n}\n\nfunction toggled(values: string[], value: string): string[] {\n if (values.includes(value)) return values.filter((item) => item !== value);\n return [...values, value];\n}\n"],"x_google_ignoreList":[0,1],"mappings":"8lBACM,EAAoB,IAAI,IAAI,CAChC,CACE,OACgB,EAAE,cAAA,EAAgB,SAAU,KAAsB,EAAE,cAAc,OAAQ,CAAE,EAAG,8HAA+H,CAAC,CAAC,CAClO,EACA,CACE,UACgB,EAAE,cAAA,EAAgB,SAAU,KAAsB,EAAE,cAClE,OACA,CACE,EAAG,kGACH,QAAS,KACX,CACF,EAAmB,EAAE,cAAc,OAAQ,CAAE,EAAG,kHAAmH,CAAC,CAAC,CACvK,EACA,CACE,OACgB,EAAE,cAAA,EAAgB,SAAU,KAAsB,EAAE,cAAc,OAAQ,CAAE,EAAG,gMAAiM,CAAC,CAAC,CACpS,EACA,CACE,QACgB,EAAE,cAAA,EAAgB,SAAU,KAAsB,EAAE,cAAc,OAAQ,CAAE,EAAG,kHAAmH,CAAC,CAAC,CACtN,EACA,CACE,UACgB,EAAE,cAAA,EAAgB,SAAU,KAAsB,EAAE,cAAc,OAAQ,CAAE,EAAG,kHAAmH,CAAC,CAAC,CACtN,EACA,CACE,OACgB,EAAE,cAAA,EAAgB,SAAU,KAAsB,EAAE,cAAc,OAAQ,CAAE,EAAG,+GAAgH,CAAC,CAAC,CACnN,CACF,CAAC,EC7BK,EAAA,EAAM,YAAY,EAAG,IAAsB,EAAE,cAAcA,EAAG,CAAE,IAAK,EAAG,GAAG,EAAG,QAAS,CAAE,CAAC,CAAC,EACjG,EAAE,YAAc,WAChB,IAAM,EAAI,ECHN,EAAc,CAChB,MAAO,CAAC,EACR,cAAe,CAAC,EAChB,UAAW,CAAE,MAAO,GAAO,cAAe,EAAM,CAClD,EACA,SAAS,EAAiB,EAAS,CACjC,GAAM,CAAE,QAAS,EAAM,cAAe,EAChC,CAAC,EAAQ,IAAA,EAAa,EAAA,SAAA,CAAS,EAAQ,eAAiB,CAAW,EACnE,CAAC,EAAgB,IAAA,EAAqB,EAAA,SAAA,CAAS,EAC/C,CAAC,EAAO,IAAA,EAAY,EAAA,SAAA,CAAS,EAAQ,cAAgB,EAAE,EACvD,CAAC,EAAQ,IAAA,EAAa,EAAA,SAAA,CAC1B,EAAQ,gBAAkB,IAAK,GAAI,OAAS,OAC9C,EACM,CAAC,EAAO,IAAA,EAAY,EAAA,SAAA,CAAS,EAC7B,GAAA,EAAW,EAAA,OAAA,CAAO,IAAK,EAAC,EACxB,GAAA,EAAe,EAAA,OAAA,CAAO,CAAC,EACvB,GAAA,EAAc,EAAA,OAAA,CAAO,CAAE,KAAM,UAAW,CAAC,EACzC,GAAA,EAAuB,EAAA,OAAA,CAAO,CAAC,CAAC,GACtC,EAAA,EAAA,UAAA,SAAsB,EAAS,SAAS,MAAM,EAAG,CAAC,CAAC,EACnD,IAAM,GAAA,EAAU,EAAA,YAAA,CACd,KAAO,IAAY,CACjB,EAAS,SAAS,MAAM,EACxB,IAAM,EAAa,IAAI,gBACvB,EAAS,QAAU,EACnB,IAAM,EAAY,EAAE,EAAa,QAC3B,EAAiB,EAAQ,YACzB,MAA0B,CAC9B,EAAW,MAAM,EACb,IAAc,EAAa,UAC7B,EAAS,QAAU,IAAK,GACxB,EAAU,OAAO,EAErB,EACA,GAAI,GAAgB,UAAY,GAAM,CACpC,EAAkB,EAClB,EAAS,IAAK,EAAC,EACf,MACF,CACA,GAAgB,iBAAiB,QAAS,EAAmB,CAAE,KAAM,EAAK,CAAC,EAC3E,IAAM,EAAc,CAClB,GAAG,EACH,YAAa,EAAW,MAC1B,EACI,EAAQ,OAAS,aAAY,EAAY,QAAU,EAAmB,CAAO,GACjF,EAAU,SAAS,EACnB,EAAS,IAAK,EAAC,EACf,GAAI,CACF,IAAM,EAAO,MAAM,EAAK,CAAW,EAYnC,OAXI,EAAW,OAAO,SAAW,IAAc,EAAa,QAAS,QACrE,EACG,GAAY,EAAQ,OAAS,SAAW,EAAyB,EAAS,CAAI,EAAI,CACrF,EACI,EAAQ,OAAS,aACnB,EAAqB,QAAU,EAAkB,CAAO,EACxD,EACG,GAAY,EAAK,MAAM,KAAM,GAAS,EAAK,KAAO,CAAO,EAAI,EAAU,IAAK,EAC/E,GAEF,EAAU,OAAO,EACV,EACT,OAAS,EAAQ,CACf,GAAI,EAAW,OAAO,SAAW,IAAc,EAAa,QAAS,OAGrE,MAFA,EAAS,CAAM,EACf,EAAU,OAAO,EACX,CACR,QAAU,CACR,GAAgB,oBAAoB,QAAS,CAAiB,EAC1D,EAAS,UAAY,IAAY,EAAS,QAAU,IAAK,GAC/D,CACF,EACA,CAAC,CAAI,CACP,EACM,GAAA,EAAa,EAAA,YAAA,EAChB,EAAQ,EAAgB,CAAC,IAAM,CAC9B,GAAI,EAAO,SAAW,EAAG,MAAU,UAAU,2CAA2C,EACxF,OAAO,EAAQ,CACb,GAAG,EAAqB,QACxB,GAAG,EACH,KAAM,SACN,QAAS,CAAC,CAAM,CAClB,CAAC,CACH,EACA,CAAC,CAAO,CACV,EACM,GAAA,EAAU,EAAA,YAAA,KAAkB,EAAQ,EAAY,OAAO,EAAG,CAAC,CAAO,CAAC,EACnE,GAAA,EAAO,EAAA,YAAA,KAAkB,CAC7B,EAAa,SAAW,EACxB,EAAS,SAAS,MAAM,EACxB,EAAS,QAAU,IAAK,GACxB,EAAS,IAAK,EAAC,EACf,EAAU,OAAO,CACnB,EAAG,CAAC,CAAC,EACC,GAAA,EAAQ,EAAA,YAAA,KAAkB,CAC9B,EAAa,SAAW,EACxB,EAAS,SAAS,MAAM,EACxB,EAAS,QAAU,IAAK,GACxB,EAAY,QAAU,CAAE,KAAM,UAAW,EACzC,EAAqB,QAAU,CAAC,EAChC,EAAU,CAAW,EACrB,EAAkB,IAAK,EAAC,EACxB,EAAS,EAAE,EACX,EAAS,IAAK,EAAC,EACf,EAAU,MAAM,CAClB,EAAG,CAAC,CAAC,EACC,GAAA,EAAW,EAAA,QAAA,KACT,IAAI,IAAI,EAAO,MAAM,IAAK,GAAS,CAAC,EAAK,GAAI,CAAI,CAAC,CAAC,EACzD,CAAC,EAAO,KAAK,CACf,EACM,EAAe,IAAmB,IAAK,GAAI,IAAK,GAAI,EAAS,IAAI,CAAc,EAC/E,GAAA,EAAiB,EAAA,QAAA,KACf,IAAI,IACR,EAAO,MAAM,OAAQ,GAAS,EAAyB,EAAM,EAAO,CAAU,CAAC,CAAC,CAAC,IAAK,GAAS,EAAK,EAAE,CACxG,EACA,CAAC,EAAO,EAAO,MAAO,CAAU,CAClC,EACA,OAAA,EAAO,EAAA,QAAA,MACE,CACL,MAAO,EAAO,MACd,WACA,cAAe,EAAO,cACtB,UAAW,EAAO,UAClB,iBACA,eACA,QACA,iBACA,SACA,QACA,UACA,aACA,UACA,WAAY,EACZ,WACA,OACA,OACF,GACA,CACE,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACF,CACF,CACF,CACA,SAAS,EAAyB,EAAS,EAAM,CAC/C,IAAM,EAAQ,IAAI,IAAI,EAAQ,MAAM,IAAK,GAAS,CAAC,EAAK,GAAI,CAAI,CAAC,CAAC,EAC5D,EAAgB,IAAI,IACxB,EAAQ,cAAc,IAAK,GAAiB,CAAC,EAAa,GAAI,CAAY,CAAC,CAC7E,EACA,IAAK,IAAM,KAAQ,EAAK,MAAO,EAAM,IAAI,EAAK,GAAI,CAAI,EACtD,IAAK,IAAM,KAAgB,EAAK,cAAe,EAAc,IAAI,EAAa,GAAI,CAAY,EAC9F,MAAO,CACL,MAAO,CAAC,GAAG,EAAM,OAAO,CAAC,EACzB,cAAe,CAAC,GAAG,EAAc,OAAO,CAAC,EACzC,UAAW,CACT,MAAO,EAAQ,UAAU,OAAS,EAAK,UAAU,MACjD,cAAe,EAAQ,UAAU,eAAiB,EAAK,UAAU,aACnE,CACF,CACF,CACA,SAAS,EAAyB,EAAM,EAAO,EAAY,CACzD,IAAM,EAAkB,EAAM,KAAK,CAAC,CAAC,kBAAkB,EAKvD,OAJI,EAAgB,SAAW,EAAU,GACrC,IAAe,IAAK,GAGjB,EAAqC,CAAI,CAAC,CAAC,KAC/C,GAAU,OAAO,GAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAe,CAC7E,EAJS,EAAW,CAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAe,CAKxE,CACA,SAAS,EAAqC,EAAM,CAClD,IAAM,EAAa,OAAO,QAAQ,EAAK,UAAU,CAAC,CAAC,SAAS,CAAC,EAAK,KAAW,CAC3E,EACA,MAAM,QAAQ,CAAK,EAAI,EAAM,KAAK,GAAG,EAAI,OAAO,CAAK,CACvD,CAAC,EACD,MAAO,CAAC,EAAK,KAAM,EAAK,IAAK,GAAG,OAAO,OAAO,EAAK,QAAQ,EAAG,GAAG,CAAU,CAC7E,CACA,SAAS,EAAmB,EAAS,CACnC,GAAM,CAAE,YAAa,EAAc,GAAG,GAAY,EAClD,OAAO,CACT,CACA,SAAS,EAAkB,EAAS,CAClC,MAAO,CACL,UAAW,EAAQ,UACnB,cAAe,EAAQ,cACvB,kBAAmB,EAAQ,kBAC3B,SAAU,EAAQ,SAClB,iBAAkB,EAAQ,gBAC5B,CACF,ECrMI,EAAoB,EAAA,cAAA,CAAc,IAAK,EAAC,GAoBxC,EAAc,EAAA,cAAA,CAAe,IAAK,EAAC,GAqCnC,EAAoB,EAAA,cAAA,CAAe,IAAK,EAAC,EAkB7C,IAAI,GAAA,EAAuB,EAAA,cAAA,CAAe,IAAK,EAAC,EAC5C,GAAA,EAA2B,EAAA,cAAA,CAC7B,IAAK,EACP,EACA,SAAS,EAAsB,CAC7B,aACA,YACC,CACD,OAAA,EAAO,EAAA,cAAA,CACL,EAAqB,SACrB,CAAE,MAAO,CAAW,EACpB,CACF,CACF,CACA,SAAS,EAAkC,CACzC,QACA,YACC,CACD,OAAA,EAAO,EAAA,cAAA,CAAe,EAAyB,SAAU,CAAE,OAAM,EAAG,CAAQ,CAC9E,CACA,SAAS,GAA0B,CACjC,IAAM,GAAA,EAAQ,EAAA,WAAA,CAAY,CAAoB,EAC9C,GAAI,IAAU,IAAK,GACjB,MAAU,MAAM,sEAAsE,EAExF,OAAO,CACT,CACA,SAAS,GAAuB,CAC9B,IAAM,GAAA,EAAQ,EAAA,WAAA,CAAY,CAAwB,EAClD,GAAI,IAAU,IAAK,GACjB,MAAU,MACR,qHACF,EAEF,OAAO,CACT,CACA,SAAS,GAA+B,CACtC,OAAA,EAAO,EAAA,WAAA,CAAY,CAAwB,CAC7C,EAII,EAAyB,EAAA,cAAA,CAAe,IAAK,EAAC,GAiB9C,EAAkB,EAAA,cAAA,CAAe,IAAK,EAAC,GAuBvC,EAAkB,EAAA,cAAA,CAAe,IAAK,EAAC,GACvC,EAAkB,EAAA,cAAA,CAAe,IAAK,EAAC,GACvC,EAAwB,EAAA,cAAA,CAAe,IAAK,EAAC,GAkD7C,EAAe,EAAA,cAAA,CAAe,IAAK,EAAC,GAiBpC,EAAiB,EAAA,cAAA,CAAe,IAAK,EAAC,GACtC,EAAqB,EAAA,cAAA,CAAe,IAAK,EAAC,GA2C1C,EAA0B,EAAA,cAAA,CAAgB,IAAK,EAAC,GAuBhD,EAAgB,EAAA,cAAA,CAAgB,IAAK,EAAC,GAqBtC,EAAoB,EAAA,cAAA,CAAgB,IAAK,EAAC,GAC1C,EAAwB,EAAA,cAAA,CAAgB,IAAK,EAAC,GAC9C,EAAwB,EAAA,cAAA,CAC1B,IAAK,EACP,YCjTA,SAAS,EAAuB,EAAM,CACpC,IAAK,IAAM,IAAO,CAAC,OAAQ,QAAS,OAAO,EAAG,CAC5C,IAAM,EAAQ,EAAK,WAAW,GAC9B,GAAI,OAAO,GAAU,UAAY,EAAM,KAAK,CAAC,CAAC,OAAS,EAAG,OAAO,CACnE,CAEA,OADI,EAAK,MAAQ,IAAK,GACf,GAAG,EAAK,KAAK,GAAG,EAAK,KADI,EAAK,GAEvC,EAII,EAAoB,EAAA,WAAA,CACtB,SAA4B,EAAO,EAAK,CACtC,IAAM,EAAW,EAAwB,EACnC,EAAY,EAAS,UAAU,OAAS,EAAS,UAAU,cACjE,OAAO,EACL,MACA,CACE,GAAG,EACH,YAAa,EAAS,SAAW,UACjC,YAAa,iBACb,aAAc,EAAS,OACvB,iBAAkB,EAAY,OAAS,OACzC,EACA,CACF,CACF,CACF,GACI,EAAsB,EAAA,WAAA,CACxB,SAA8B,CAAE,WAAU,GAAG,GAAS,EAAK,CACzD,IAAM,EAAW,EAAwB,EACnC,GAAA,EAAe,EAAA,YAAA,CAClB,GAAU,CACT,IAAW,CAAK,EACX,EAAM,kBAAkB,EAAS,SAAS,EAAM,cAAc,KAAK,CAC1E,EACA,CAAC,EAAU,CAAQ,CACrB,EACA,OAAO,EACL,QACA,CACE,GAAG,EACH,aAAc,EAAM,eAAiB,eACrC,aAAc,EAAS,MAAM,SAAW,EAAI,QAAU,YACtD,SAAU,EACV,KAAM,EAAM,MAAQ,SACpB,MAAO,EAAS,KAClB,EACA,CACF,CACF,CACF,GACI,EAAwB,EAAA,WAAA,CAC1B,SAAgC,EAAO,EAAK,CAC1C,OAAO,EACL,MACA,CAAE,GAAG,EAAO,YAAa,yBAA0B,EACnD,CACF,CACF,CACF,GACI,EAAqB,EAAA,WAAA,CACvB,SAA6B,CAAE,WAAU,cAAc,GAAO,GAAG,GAAS,EAAK,CAC7E,IAAM,EAAW,EAAwB,EACnC,EAAQ,EAAS,MAAM,SAAW,EAExC,OADI,GAAS,CAAC,EAAoB,KAC3B,EACL,MACA,CACE,GAAG,EACH,SAAU,EAAS,MAAM,IAAK,GAAS,CACrC,IAAM,EAAQ,CACZ,OACA,SAAU,EAAK,KAAO,EAAS,eAC/B,QAAS,EAAS,eAAe,IAAI,EAAK,EAAE,CAC9C,EACA,OAAuB,EAAA,EAAA,IAAA,CAAI,EAAmC,CAAE,MAAO,EAAO,SAAU,OAAO,GAAa,WAAa,EAAS,EAAM,CAAK,EAAI,IAA4B,EAAA,EAAA,IAAA,CAAI,EAAuB,CAAE,UAA0B,EAAA,EAAA,IAAA,CAAI,EAA0B,CAAC,CAAC,CAAE,CAAC,CAAE,EAAG,EAAK,EAAE,CACrR,CAAC,EACD,aAAc,EAAQ,QAAU,YAChC,KAAM,EAAM,MAAQ,MACtB,EACA,CACF,CACF,CACF,GACI,EAAqB,EAAA,WAAA,CACvB,SAA6B,EAAO,EAAK,CACvC,IAAM,EAAW,EAAwB,EAEzC,OADI,EAAS,MAAM,OAAS,GAAK,EAAS,SAAW,UAAkB,KAChE,EACL,MACA,CAAE,GAAG,EAAO,SAAU,EAAM,UAAY,iBAAkB,EAC1D,CACF,CACF,CACF,GACI,EAAsB,EAAA,WAAA,CACxB,SAA8B,CAAE,WAAU,GAAG,GAAS,EAAK,CACzD,IAAM,EAAW,EAAwB,EACnC,EAAU,OAAO,GAAa,WAAa,EAAS,CAAQ,EAAI,GAAY,GAAW,CAAQ,EACrG,OAAO,EACL,MACA,CACE,GAAG,EACH,SAAU,EACV,aAAc,EAAS,OACvB,KAAM,EAAM,MAAQ,QACtB,EACA,CACF,CACF,CACF,GACI,EAAuB,EAAA,WAAA,CACzB,SAA+B,CAAE,UAAS,GAAG,GAAS,EAAK,CACzD,IAAM,EAAW,EAAwB,EACnC,EAAW,EAAM,UAAY,EAAS,SAAW,UACjD,EAAc,EAAe,EAAS,EAAU,EAAS,OAAO,EACtE,OAAO,EACL,SACA,CACE,GAAG,EACH,SAAU,EAAM,UAAY,gBAC5B,WACA,QAAS,EACT,KAAM,EAAM,MAAQ,QACtB,EACA,CACF,CACF,CACF,EACA,IAAI,GAAA,EAAwB,EAAA,WAAA,CAC1B,SAAgC,CAAE,SAAQ,GAAG,GAAS,EAAK,CACzD,IAAM,EAAW,EAAwB,EACnC,EAAY,EAA6B,EACzC,EAAO,IAAW,IAAK,GAAI,GAAW,KAAO,EAAS,SAAS,IAAI,CAAM,EAC/E,GAAI,IAAS,IAAK,GAChB,MAAU,MACR,IAAW,IAAK,GAAI,0FAA4F,uBAAuB,EAAO,gBAChJ,EAEF,IAAM,EAAQ,CACZ,OACA,SAAU,EAAK,KAAO,EAAS,eAC/B,QAAS,EAAS,eAAe,IAAI,EAAK,EAAE,CAC9C,EACA,OAAuB,EAAA,EAAA,IAAA,CAAI,EAAmC,CAAE,MAAO,EAAO,SAAU,EACtF,MACA,CACE,GAAG,EACH,aAAc,EAAM,QAAU,UAAY,YAC1C,eAAgB,EAAM,KAAK,GAC3B,iBAAkB,EAAM,KAAK,KAC7B,aAAc,EAAM,SAAW,WAAa,aAC5C,KAAM,EAAM,OAAS,IAAc,IAAK,GAAI,IAAK,GAAI,WACvD,EACA,CACF,CAAE,CAAC,CACL,CACF,EACI,GAAA,EAA2B,EAAA,WAAA,CAC7B,SAAmC,CAAE,UAAS,GAAG,GAAS,EAAK,CAC7D,IAAM,EAAW,EAAwB,EACnC,EAAQ,EAAqB,EAC7B,GAAA,EAAc,EAAA,YAAA,CACjB,GAAU,CACT,IAAU,CAAK,EACX,CAAC,EAAM,kBAAoB,CAAC,EAAM,UAAU,EAAS,WAAW,EAAM,KAAK,EAAE,CACnF,EACA,CAAC,EAAU,EAAS,EAAM,SAAU,EAAM,KAAK,EAAE,CACnD,EACA,OAAO,EACL,SACA,CACE,GAAG,EACH,SAAU,EAAM,UAAY,EAAuB,EAAM,IAAI,EAC7D,QAAS,EACT,KAAM,EAAM,MAAQ,SACpB,eAAgB,EAAM,QACxB,EACA,CACF,CACF,CACF,EACI,GAAA,EAA0B,EAAA,WAAA,CAC5B,SAAkC,CAAE,UAAS,UAAS,GAAG,GAAS,EAAK,CACrE,IAAM,EAAW,EAAwB,EACnC,EAAQ,EAAqB,EAC7B,EAAW,EAAM,UAAY,EAAS,SAAW,UAKjD,EAAc,EAAe,EAAS,GAAA,EAJ7B,EAAA,YAAA,KACP,EAAS,WAAW,EAAM,KAAK,GAAI,CAAO,EAChD,CAAC,EAAU,EAAS,EAAM,KAAK,EAAE,CAEmB,CAAM,EAC5D,OAAO,EACL,SACA,CACE,GAAG,EACH,SAAU,EAAM,UAAY,SAC5B,WACA,QAAS,EACT,KAAM,EAAM,MAAQ,QACtB,EACA,CACF,CACF,CACF,EACA,SAAS,EAAe,EAAS,EAAU,EAAQ,CACjD,OAAA,EAAO,EAAA,YAAA,CACJ,GAAU,CACT,IAAU,CAAK,EACX,IAAM,kBAAoB,IAC9B,EAAY,CAAC,CAAC,UAAY,IAAK,EAAC,CAClC,EACA,CAAC,EAAQ,EAAU,CAAO,CAC5B,CACF,CACA,SAAS,GAAW,EAAU,CAG5B,OAFI,EAAS,SAAW,UAAkB,iBACtC,EAAS,SAAW,QAAgB,4BACjC,GAAG,EAAS,MAAM,OAAO,UAAU,EAAS,cAAc,OAAO,gBAC1E,CAYA,IAAI,GAA6B,CAC/B,KAAM,EACN,QAAS,EACT,OAAQ,CACV,EC/Oa,GAAoB,CAC/B,YAAa,EACf,EAEA,SAAgB,GAAe,EAA4B,EAAqC,CAC9F,IAAM,EAAe,EAAO,MAAM,OAAQ,GAAS,EAAe,IAAI,EAAK,EAAE,CAAC,EACxE,EAAa,IAAI,IAAI,EAAa,IAAK,GAAS,EAAK,EAAE,CAAC,EAK9D,MAAO,CAAE,MAJK,GAAc,CAInB,EAAO,MAHF,EAAO,cAClB,OAAQ,GAAiB,EAAW,IAAI,EAAa,IAAI,GAAK,EAAW,IAAI,EAAa,EAAE,CAAC,CAAC,CAC9F,IAAK,GAAiB,GAAiB,CAAY,CACtC,CAAM,CACxB,CAEA,SAAS,GAAgB,EAAoC,CAC3D,OACE,EAAA,EAAA,IAAA,CAAC,GAA2B,KAA5B,CAAiC,OAAQ,EAAM,GAAI,QAAA,GACjD,UAAA,EAAA,EAAA,KAAA,CAAC,UAAD,CACE,UAAW,CACT,0FACA,EAAM,SAAW,8BAAgC,kBACnD,CAAC,CAAC,KAAK,GAAG,EAJZ,SAAA,EAME,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,KAAK,SACL,SAAU,EAAS,IACnB,UAAU,6CACX,CAAA,GACD,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,oCAAf,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,CAAC,iCAAkC,EAAM,KAAK,KAAK,CAAC,CAAC,KAAK,GAAG,CAAI,CAAA,GAClF,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,UAAf,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,iDAAkD,SAAA,EAAM,KAAK,KAAW,CAAA,GACvF,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,8FACZ,SAAA,EAAM,KAAK,IACT,CAAA,CACF,CACF,CAAA,CAAA,KACL,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,KAAK,SACL,SAAU,EAAS,OACnB,UAAU,6CACX,CAAA,CACM,GACsB,CAAA,CAErC,CAEA,SAAS,GAAc,EAAwD,CAC7E,OAAO,EAAM,KAAK,EAAM,IAAU,CAChC,IAAM,EAAQ,EAAQ,SAChB,EAAS,IAAM,KAAK,KAAK,CAAK,EACpC,MAAO,CACL,GAAI,EAAK,GACT,KAAM,cACN,SAAU,CACR,EAAG,KAAK,IAAI,CAAK,EAAI,EACrB,EAAG,KAAK,IAAI,CAAK,EAAI,CACvB,EACA,KAAM,CACJ,MAAO,EAAuB,CAAI,EAClC,KAAM,EAAK,KACX,MAAO,GAAc,EAAK,IAAI,CAChC,CACF,CACF,CAAC,CACH,CAEA,SAAS,GAAiB,EAAwC,CAChE,MAAO,CACL,GAAI,EAAa,GACjB,OAAQ,EAAa,KACrB,OAAQ,EAAa,GACrB,MAAO,EAAa,KACpB,KAAM,aACN,UAAW,CAAE,KAAM,EAAW,YAAa,MAAO,GAAI,OAAQ,EAAG,EACjE,WAAY,CAAE,SAAU,GAAI,WAAY,GAAI,EAC5C,MAAO,CAAE,YAAa,GAAI,CAC5B,CACF,CAEA,SAAS,GAAc,EAAsB,CAC3C,IAAM,EAAS,CACb,iBACA,aACA,gBACA,eACA,cACA,cACA,gBACF,EACI,EAAO,EACX,IAAK,IAAM,KAAa,EAAM,EAAQ,EAAO,GAAK,EAAU,WAAW,CAAC,IAAO,EAC/E,OAAO,EAAO,EAAO,EAAO,SAAW,qBACzC,CCxEA,SAAgB,GAAW,EAMxB,CACD,GAAM,CAAE,UAAS,YAAa,EACxB,CAAC,EAAiB,IAAA,EAAsB,EAAA,SAAA,CAAS,EAAM,OAAO,EAAE,EAAE,IAAM,EAAE,EAC1E,CAAC,EAAmB,IAAA,EAAwB,EAAA,SAAA,CAAmB,CAAC,CAAC,EACjE,CAAC,EAAuB,IAAA,EAA4B,EAAA,SAAA,CAAmB,CAAC,CAAC,EACzE,EAAQ,EAAM,OAAO,KAAM,GAAS,EAAK,KAAO,CAAe,GAAK,EAAM,OAAO,GA8BjF,EAAW,EAAiB,CAAE,SA7B9B,EAAY,EAAA,YAAA,CAChB,KAAO,IAAkD,CACvD,GAAI,IAAU,IAAA,GAAW,MAAU,MAAM,4BAA4B,EACrE,GAAM,CAAE,cAAa,GAAG,GAAS,EACjC,EAAS,eAAe,EACxB,GAAI,CACF,IAAM,EAAO,MAAM,EACjB,WAAW,mBAAmB,EAAM,EAAE,EAAE,UACxC,iBACA,EACA,WACA,CACE,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM,KAAK,UAAU,CAAI,CAC3B,CACF,EAEA,OADI,GAAa,UAAY,IAAM,EAAS,WAAW,EAChD,CACT,OAAS,EAAW,CAKlB,MAJI,GAAa,UAAY,KAC3B,EAAQ,EAAa,CAAS,CAAC,EAC/B,EAAS,aAAa,GAElB,CACR,CACF,EACA,CAAC,EAAO,EAAS,CAAQ,CAEkB,CAAU,CAAC,EAClD,GAAA,EAAS,EAAA,QAAA,MACN,CACL,MAAO,EAAS,MAChB,cAAe,EAAS,cACxB,UAAW,EAAS,SACtB,GACA,CAAC,EAAS,MAAO,EAAS,cAAe,EAAS,SAAS,CAC7D,EACM,GAAA,EAAO,EAAA,QAAA,KACL,GAAe,EAAQ,EAAS,cAAc,EACpD,CAAC,EAAS,eAAgB,CAAM,CAClC,EACM,EAAU,EAAS,SAAW,UAC9B,EAAe,EAAS,aACxB,EAAU,EAAS,QACnB,EAAgB,EAAS,MACzB,EAAa,EAAS,WAiB5B,IAfA,EAAA,EAAA,UAAA,KAAgB,CACd,GAAI,IAAU,IAAA,GAAW,OACzB,IAAM,EAAY,EAAM,UAAU,IAAK,GAAS,EAAK,IAAI,EACnD,EAAgB,EAAM,kBAAkB,IAAK,GAAS,EAAK,IAAI,EACrE,EAAmB,EAAM,EAAE,EAC3B,EAAqB,CAAS,EAC9B,EAAyB,CAAa,EACtC,EAAc,EACd,EAAa,CAAE,KAAM,WAAY,YAAW,eAAc,CAAC,CAAC,CACzD,KAAM,GAAS,CACV,IAAS,IAAA,IAAW,EAAW,EAAK,MAAM,EAAE,EAAE,EAAE,CACtD,CAAC,CAAC,CACD,UAAY,IAAA,EAAS,CAC1B,EAAG,CAAC,EAAS,EAAO,EAAe,CAAU,CAAC,EAE1C,CAAC,EAAM,SAAW,EAAM,OAAO,SAAW,EAC5C,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,aAAW,SAC1B,UAAA,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,MAAO,EAAM,QAAU,YAAc,6BACrC,KACE,EAAM,QACF,qEACA,uDAEP,CAAA,CACc,CAAA,EAIrB,SAAS,GAAiB,CACxB,EAAa,CACX,KAAM,WACN,UAAW,EACX,cAAe,CACjB,CAAC,CAAC,CACC,KAAM,GAAS,CACV,IAAS,IAAA,IAAW,EAAW,EAAK,MAAM,EAAE,EAAE,EAAE,CACtD,CAAC,CAAC,CACD,UAAY,IAAA,EAAS,CAC1B,CAEA,SAAS,GAAiB,CACpB,IAAiB,IAAA,IACrB,EACG,WAAW,EAAa,GAAI,CAC3B,UAAW,EACX,cAAe,EACf,UAAW,OACX,SAAU,CACZ,CAAC,CAAC,CACD,UAAY,IAAA,EAAS,CAC1B,CAEA,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAuB,WAAY,EACjC,UAAA,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,aAAW,SAC1B,UAAA,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,iCACb,UAAA,EAAA,EAAA,KAAA,CAAC,EAAD,CAAe,UAAU,0DAAzB,SAAA,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,kIAAf,SAAA,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,6JAAf,SAAA,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,0BAAf,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,UAAU,6FAA+F,CAAA,GAC1H,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,aAAW,sBACX,UAAU,YACV,YAAY,sBACZ,MAAO,EAAS,MAChB,SAAW,GAAU,EAAS,SAAS,EAAM,cAAc,KAAK,CACjE,CAAA,CACE,KACL,EAAA,EAAA,KAAA,CAAC,EAAD,CAAA,SAAA,CAAoB,EAAK,MAAM,OAAO,QAAyB,CAAA,CAAA,GAC/D,EAAA,EAAA,KAAA,CAAC,EAAD,CAAA,SAAA,CAAoB,EAAK,MAAM,OAAO,YAA6B,CAAA,CAAA,CAChE,IACJ,GAAW,EAAO,MAAM,SAAW,GAClC,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,wEAAwE,SAAA,gBAElF,CAAA,EACH,KACH,CAAC,GAAW,EAAO,MAAM,SAAW,GACnC,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,UAAU,kBACV,MAAM,iBACN,KAAK,wEACN,CAAA,EACC,KACH,EAAO,MAAM,OAAS,GACrB,EAAA,EAAA,KAAA,CAAC,EAAD,CAEE,MAAO,EAAK,MACZ,MAAO,EAAK,MACZ,UAAU,sBACV,UAAW,EAAM,MACjB,UAAW,GACX,QAAA,GACA,eAAgB,CAAE,QAAS,GAAK,QAAS,CAAE,EAC3C,QAAS,GACT,QAAS,IACT,WAAY,CAAE,gBAAiB,EAAK,EACpC,mBAAoB,CAAE,UAAW,EAAK,EACtC,MACE,CACE,mBAAoB,0BACpB,yBAA0B,MAC1B,4BAA6B,mBAC/B,EAEF,aAAc,EAAG,IAAS,EAAS,WAAW,EAAK,EAAE,EApBvD,SAAA,EAsBE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,QAAS,EAAkB,KAC3B,IAAK,GACL,KAAM,IACN,MAAM,0BACN,UAAU,YACX,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,EAAD,CAAU,gBAAiB,EAAQ,CAAA,CAC1B,CA7BJ,EAAA,GAAG,GAAO,GAAG,GAAG,EAAO,MAAM,OAAO,GAAG,EAAO,cAAc,QA6BxD,EACT,IACD,CACL,CAAA,GAAA,EAAA,EAAA,IAAA,CAAC,GAAD,CACS,QACP,OAAQ,EAAM,OACL,UACD,SACS,kBACH,eACK,oBACI,wBACvB,SAAU,EACV,SAAU,EACV,cAAe,EACf,iBAAmB,GAAS,EAAsB,GAAU,EAAQ,EAAO,CAAI,CAAC,EAChF,qBAAuB,GACrB,EAA0B,GAAU,EAAQ,EAAO,CAAI,CAAC,CAE3D,CAAA,CACY,GACZ,CAAA,CACU,CAAA,CACI,CAAA,CAE3B,CAEA,SAAS,GAAe,EAcrB,CACD,IAAM,EAAY,EAAM,OAAO,UAAU,OAAS,EAAM,OAAO,UAAU,cACzE,OACE,EAAA,EAAA,KAAA,CAAC,QAAD,CAAO,UAAU,+EAAjB,SAAA,EACE,EAAA,EAAA,KAAA,CAAC,SAAD,CAAQ,UAAU,sDAAlB,SAAA,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,yCAAf,SAAA,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,UAAf,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAU,mCACX,SAAA,EAAM,OAAO,MAAQ,gBACpB,CAAA,GACJ,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,4DACV,SAAA,EAAM,OAAO,aAAe,oDAC5B,CAAA,CACA,CACJ,CAAA,EAAA,GACC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAmB,MAAM,0CAA0C,SAAA,SAEhD,CAAA,EACjB,IACD,KACL,EAAA,EAAA,KAAA,CAAC,EAAD,CAAQ,MAAO,EAAM,gBAAiB,cAAe,EAAM,cAA3D,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAe,UAAU,qBACvB,UAAA,EAAA,EAAA,IAAA,CAAC,EAAD,CAAa,YAAY,cAAgB,CAAA,CAC5B,CAAA,GACf,EAAA,EAAA,IAAA,CAAC,EAAD,CAAA,SACG,EAAM,OAAO,IAAK,IACjB,EAAA,EAAA,IAAA,CAAC,EAAD,CAA2B,MAAO,EAAM,GACrC,SAAA,EAAM,MAAQ,EAAM,EACX,EAFK,EAAM,EAEX,CACb,CACY,CAAA,CACT,KACR,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,aAAf,SAAA,EACE,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,UAAU,SACV,QAAQ,YACR,SAAU,EAAM,SAAW,EAAM,kBAAkB,SAAW,EAC9D,QAAS,EAAM,SAJjB,SAAA,EAME,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,CAAA,EAAC,UACZ,CACR,CAAA,GAAA,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,UAAU,SACV,SAAU,EAAM,SAAW,EAAM,eAAiB,IAAA,GAClD,QAAS,EAAM,SAHjB,SAAA,EAKE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAO,CAAA,EAAC,SACF,CACL,CAAA,CAAA,GACC,CACR,CAAA,GAAA,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,8BAAf,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,MAAM,aACN,MAAO,EAAM,OAAO,UAAU,IAAK,GAAS,EAAK,IAAI,GAAK,CAAC,EAC3D,SAAU,EAAM,kBAChB,SAAU,EAAM,gBACjB,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,MAAM,gBACN,MAAO,EAAM,OAAO,kBAAkB,IAAK,GAAS,EAAK,IAAI,GAAK,CAAC,EACnE,SAAU,EAAM,sBAChB,SAAU,EAAM,oBACjB,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,sCACZ,SAAA,EAAM,eAAiB,IAAA,IACtB,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,gCAAgC,SAAA,0CAE1C,CAAA,GAEH,EAAA,EAAA,IAAA,CAAC,GAAD,CAAe,KAAM,EAAM,YAAe,CAAA,CAEzC,CAAA,CACF,CACA,CAAA,CAAA,GAEX,CAEA,SAAS,EAAY,EAKlB,CACD,OACE,EAAA,EAAA,KAAA,CAAC,UAAD,CAAS,UAAU,OAAnB,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAU,mFACX,SAAA,EAAM,KACL,CAAA,GACJ,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,yBACZ,SAAA,EAAM,MAAM,IAAK,GAAS,CACzB,IAAM,EAAS,EAAM,SAAS,SAAS,CAAI,EAC3C,OACE,EAAA,EAAA,IAAA,CAAC,SAAD,CAEE,KAAK,SACL,eAAc,EACd,UAAW,CACT,0DACA,EACI,qDACA,mEACN,CAAC,CAAC,KAAK,GAAG,EACV,YAAe,EAAM,SAAS,CAAI,EAEjC,SAAA,CACK,EAZD,CAYC,CAEZ,CAAC,CACE,CAAA,CACE,GAEb,CAEA,SAAS,GAAc,EAAmC,CACxD,IAAM,EAAO,KAAK,UAChB,CAAE,SAAU,EAAM,KAAK,SAAU,WAAY,EAAM,KAAK,UAAW,EACnE,KACA,CACF,EACA,OACE,EAAA,EAAA,KAAA,CAAC,UAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAA,SAAoB,EAAM,KAAK,IAAwB,CAAA,GACvD,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAU,2CACX,SAAA,EAAuB,EAAM,IAAI,CAChC,CAAA,GACJ,EAAA,EAAA,KAAA,CAAC,IAAD,CAAG,UAAU,+CAAb,SAAA,CAA4D,MAAI,EAAM,KAAK,EAAM,KACjF,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,wFACb,UAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAY,KAAM,CAAO,CAAA,CACrB,CAAA,CACH,CAAA,CACE,CAAA,CAAA,CAEb,CAEA,SAAS,EAAQ,EAAkB,EAAyB,CAE1D,OADI,EAAO,SAAS,CAAK,EAAU,EAAO,OAAQ,GAAS,IAAS,CAAK,EAClE,CAAC,GAAG,EAAQ,CAAK,CAC1B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icon-BivhXy0Y.js","names":["r","o","h"],"sources":["../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/lib/context.es.js","../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/lib/IconBase.es.js","../../../src/ui/app/components/ui/icon.tsx"],"sourcesContent":["import { createContext as r } from \"react\";\nconst o = r({\n color: \"currentColor\",\n size: \"1em\",\n weight: \"regular\",\n mirrored: !1\n});\nexport {\n o as IconContext\n};\n","import * as e from \"react\";\nimport { IconContext as h } from \"./context.es.js\";\nconst p = e.forwardRef(\n (s, a) => {\n const {\n alt: n,\n color: r,\n size: t,\n weight: o,\n mirrored: c,\n children: i,\n weights: m,\n ...x\n } = s, {\n color: d = \"currentColor\",\n size: l,\n weight: f = \"regular\",\n mirrored: g = !1,\n ...w\n } = e.useContext(h);\n return /* @__PURE__ */ e.createElement(\n \"svg\",\n {\n ref: a,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: t != null ? t : l,\n height: t != null ? t : l,\n fill: r != null ? r : d,\n viewBox: \"0 0 256 256\",\n transform: c || g ? \"scale(-1, 1)\" : void 0,\n ...w,\n ...x\n },\n !!n && /* @__PURE__ */ e.createElement(\"title\", null, n),\n i,\n m.get(o != null ? o : f)\n );\n }\n);\np.displayName = \"IconBase\";\nexport {\n p as default\n};\n","import type { Icon, IconProps } from \"@phosphor-icons/react\";\n\nexport type StudioIconProps = IconProps & {\n icon: Icon;\n};\n\nexport function StudioIcon({ icon: IconComponent, weight = \"regular\", ...props }: StudioIconProps) {\n return <IconComponent weight={weight} {...props} />;\n}\n"],"x_google_ignoreList":[0,1],"mappings":"oEACM,GAAA,EAAIA,EAAAA,cAAAA,CAAE,CACV,MAAO,eACP,KAAM,MACN,OAAQ,UACR,SAAU,CAAC,CACb,CAAC,ECJK,EAAA,EAAM,YACT,EAAG,IAAM,CACR,GAAM,CACJ,IAAK,EACL,MAAO,EACP,KAAM,EACN,OAAQC,EACR,SAAU,EACV,SAAU,EACV,QAAS,EACT,GAAG,GACD,EAAG,CACL,MAAO,EAAI,eACX,KAAM,EACN,OAAQ,EAAI,UACZ,SAAU,EAAI,CAAC,EACf,GAAG,GAAA,EACC,WAAWC,CAAC,EAClB,OAAuB,EAAE,cACvB,MACA,CACE,IAAK,EACL,MAAO,6BACP,MAAO,GAAgB,EACvB,OAAQ,GAAgB,EACxB,KAAM,GAAgB,EACtB,QAAS,cACT,UAAW,GAAK,EAAI,eAAiB,IAAK,GAC1C,GAAG,EACH,GAAG,CACL,EACA,CAAC,CAAC,GAAqB,EAAE,cAAc,QAAS,KAAM,CAAC,EACvD,EACA,EAAE,IAAID,GAAgB,CAAC,CACzB,CACF,CACF,EACA,EAAE,YAAc,qBCjChB,SAAgB,EAAW,CAAE,KAAM,EAAe,SAAS,UAAW,GAAG,GAA0B,CACjG,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAAuB,SAAQ,GAAI,CAAQ,CAAA,CACpD"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-outline-style:solid;--tw-divide-x-reverse:0;--tw-content:""}}}@layer theme{:root,:host{--font-sans:"Geist Variable", sans-serif;--color-amber-500:oklch(76.9% .188 70.08);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-500:oklch(68.5% .169 237.323);--color-violet-500:oklch(60.6% .25 292.717);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-rose-500:oklch(64.5% .246 16.439);--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-xl:36rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-lg:var(--radius);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-xs:4px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Geist Variable", sans-serif;--default-mono-font-family:"Geist Mono Variable", monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring);box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--sb-scrollbar) transparent}html{background:var(--background);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;max-width:100%;height:100%;font-size:16px;overflow:hidden}html.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background-color:var(--background);color:var(--foreground);min-width:320px;max-width:100%;height:100%;font-family:var(--font-sans);font-feature-settings:"cv02", "cv03", "cv04", "cv11";font-variant-numeric:tabular-nums;margin:0;font-size:1rem;line-height:1.5;overflow:hidden}#anvia-ui{width:100%;max-width:100%;height:100dvh;overflow:hidden}::selection{background:var(--sb-selection)}.shell-loading{background:var(--background);min-height:100vh;color:var(--foreground);font-family:var(--font-sans);place-items:center;display:grid}.studio-logo-lockup{justify-content:center;align-items:center;gap:.5rem;max-width:100%;display:inline-flex}.studio-logo-image{object-fit:contain;width:10rem;max-width:52vw;height:auto;display:block}.studio-logo-badge{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--secondary);min-height:1.25rem;color:var(--secondary-foreground);white-space:nowrap;align-items:center;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;line-height:1;display:inline-flex}:focus-visible{outline:2px solid var(--ring);outline-offset:3px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--sb-scrollbar);border-radius:999px}::-webkit-scrollbar-thumb:hover{background-color:var(--sb-scrollbar-hover)}.xterm .xterm-viewport{scrollbar-width:none}.xterm .xterm-viewport::-webkit-scrollbar{width:0;height:0}.pipeline-flow .react-flow__edge.pipeline-flow-edge .react-flow__edge-path{stroke:var(--muted-foreground);stroke-width:1.6px;opacity:.78}.pipeline-flow .react-flow__edges marker path{fill:var(--muted-foreground);stroke:var(--muted-foreground)}.code-keyword{color:var(--sb-code-keyword)}.code-type{color:var(--sb-code-type)}.code-function{color:var(--sb-code-function)}.code-string{color:var(--sb-code-string)}.code-number{color:var(--sb-code-number)}.code-literal{color:var(--sb-code-literal)}.code-comment{color:var(--sb-code-comment)}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-full{top:100%}.right-1{right:calc(var(--spacing) * 1)}.right-2{right:calc(var(--spacing) * 2)}.bottom-0{bottom:calc(var(--spacing) * 0)}.-left-1{left:calc(var(--spacing) * -1)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-4{left:calc(var(--spacing) * 4)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.col-span-4{grid-column:span 4/span 4}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.m-1{margin:calc(var(--spacing) * 1)}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing) * 2)}.my-4{margin-block:calc(var(--spacing) * 4)}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-sm{font-size:.875rem;line-height:1.71429}.prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em;font-size:1.28571em;line-height:1.55556}.prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em;padding-inline-start:1.11111em}.prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.8em;font-size:2.14286em;line-height:1.2}.prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:.8em;font-size:1.42857em;line-height:1.4}.prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.55556em;margin-bottom:.444444em;font-size:1.28571em;line-height:1.55556}.prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.42857em;margin-bottom:.571429em;line-height:1.42857}.prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.142857em;padding-inline-end:.357143em;padding-bottom:.142857em;border-radius:.3125rem;padding-inline-start:.357143em;font-size:.857143em}.prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em}.prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em}.prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;border-radius:.25rem;margin-top:1.66667em;margin-bottom:1.66667em;padding-inline-start:1em;font-size:.857143em;line-height:1.66667}.prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em;padding-inline-start:1.57143em}.prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;margin-bottom:.285714em}.prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.428571em}.prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.prose-sm :where(.prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(.prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.prose-sm :where(.prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(.prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;padding-inline-start:1.57143em}.prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.85714em;margin-bottom:2.85714em}.prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;font-size:.857143em;line-height:1.33333}.prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-8{margin-left:calc(var(--spacing) * 8)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.\!size-1\.5{width:calc(var(--spacing) * 1.5)!important;height:calc(var(--spacing) * 1.5)!important}.size-1{width:calc(var(--spacing) * 1);height:calc(var(--spacing) * 1)}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.\!h-0{height:calc(var(--spacing) * 0)!important}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-1\/2{height:50%}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-\[100dvh\]{height:100dvh}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[28rem\]{max-height:28rem}.max-h-\[32rem\]{max-height:32rem}.max-h-\[calc\(100dvh-32px\)\]{max-height:calc(100dvh - 32px)}.max-h-full{max-height:100%}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-5{min-height:calc(var(--spacing) * 5)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-32{min-height:calc(var(--spacing) * 32)}.min-h-36{min-height:calc(var(--spacing) * 36)}.min-h-44{min-height:calc(var(--spacing) * 44)}.min-h-48{min-height:calc(var(--spacing) * 48)}.min-h-64{min-height:calc(var(--spacing) * 64)}.min-h-96{min-height:calc(var(--spacing) * 96)}.min-h-\[74px\]{min-height:74px}.min-h-\[480px\]{min-height:480px}.min-h-full{min-height:100%}.\!w-0{width:calc(var(--spacing) * 0)!important}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\/5{width:80%}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-14{width:calc(var(--spacing) * 14)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-\[180px\]{width:180px}.w-\[210px\]{width:210px}.w-\[min\(420px\,calc\(100vw-32px\)\)\]{width:min(420px,100vw - 32px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-3xl{max-width:var(--container-3xl)}.max-w-44{max-width:calc(var(--spacing) * 44)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-200{max-width:calc(var(--spacing) * 200)}.max-w-205{max-width:calc(var(--spacing) * 205)}.max-w-\[62ch\]{max-width:62ch}.max-w-\[64ch\]{max-width:64ch}.max-w-\[68ch\]{max-width:68ch}.max-w-\[72ch\]{max-width:72ch}.max-w-\[260px\]{max-width:260px}.max-w-\[280px\]{max-width:280px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-\[min\(64ch\,82\%\)\]{max-width:min(64ch,82%)}.max-w-\[min\(82ch\,100\%\)\]{max-width:min(82ch,100%)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-225{min-width:calc(var(--spacing) * 225)}.min-w-280{min-width:calc(var(--spacing) * 280)}.min-w-\[980px\]{min-width:980px}.min-w-\[1040px\]{min-width:1040px}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:calc(var(--spacing) * 0);--tw-border-spacing-y:calc(var(--spacing) * 0);border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-1px\]{--tw-translate-y:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.animate-pulse{animation:var(--animate-pulse)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-\[6\.5rem_minmax\(0\,1fr\)\]{grid-template-columns:6.5rem minmax(0,1fr)}.grid-cols-\[16px_auto\]{grid-template-columns:16px auto}.grid-cols-\[18px_minmax\(0\,1fr\)_auto\]{grid-template-columns:18px minmax(0,1fr) auto}.grid-cols-\[82px_minmax\(0\,1fr\)\]{grid-template-columns:82px minmax(0,1fr)}.grid-cols-\[90px_minmax\(0\,1fr\)\]{grid-template-columns:90px minmax(0,1fr)}.grid-cols-\[250px_minmax\(300px\,0\.8fr\)_minmax\(400px\,1\.2fr\)\]{grid-template-columns:250px minmax(300px,.8fr) minmax(400px,1.2fr)}.grid-cols-\[260px_minmax\(320px\,0\.78fr\)_minmax\(0\,1\.22fr\)\]{grid-template-columns:260px minmax(320px,.78fr) minmax(0,1.22fr)}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,460px\)\]{grid-template-columns:minmax(0,1fr) minmax(0,460px)}.grid-cols-\[minmax\(0\,2fr\)_340px\]{grid-template-columns:minmax(0,2fr) 340px}.grid-cols-\[minmax\(0\,2fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.grid-cols-\[minmax\(7rem\,0\.34fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(7rem,.34fr) minmax(0,1fr)}.grid-cols-\[minmax\(8rem\,0\.42fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(8rem,.42fr) minmax(0,1fr)}.grid-cols-\[minmax\(92px\,max-content\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(92px,max-content) minmax(0,1fr)}.grid-cols-\[minmax\(120px\,0\.5fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(120px,.5fr) minmax(0,1fr)}.grid-cols-\[minmax\(140px\,0\.24fr\)_minmax\(96px\,0\.14fr\)_minmax\(96px\,0\.14fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(140px,.24fr) minmax(96px,.14fr) minmax(96px,.14fr) minmax(0,1fr)}.grid-cols-\[minmax\(220px\,1\.3fr\)_150px_120px_120px_120px_120px_110px_90px\]{grid-template-columns:minmax(220px,1.3fr) 150px 120px 120px 120px 120px 110px 90px}.grid-cols-\[minmax\(220px\,1\.3fr\)_180px_120px_120px\]{grid-template-columns:minmax(220px,1.3fr) 180px 120px 120px}.grid-cols-\[minmax\(220px\,1\.3fr\)_180px_120px_120px_72px\]{grid-template-columns:minmax(220px,1.3fr) 180px 120px 120px 72px}.grid-cols-\[minmax\(270px\,0\.34fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(270px,.34fr) minmax(0,1fr)}.grid-cols-\[minmax\(280px\,36\%\)_minmax\(420px\,64\%\)\]{grid-template-columns:minmax(280px,36%) minmax(420px,64%)}.grid-cols-\[minmax\(300px\,0\.75fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(300px,.75fr) minmax(0,1fr)}.grid-rows-\[56px_minmax\(0\,1fr\)\]{grid-template-rows:56px minmax(0,1fr)}.grid-rows-\[auto_auto_minmax\(0\,1fr\)\]{grid-template-rows:auto auto minmax(0,1fr)}.grid-rows-\[auto_minmax\(0\,1fr\)\]{grid-template-rows:auto minmax(0,1fr)}.grid-rows-\[auto_minmax\(0\,1fr\)_auto\]{grid-template-rows:auto minmax(0,1fr) auto}.grid-rows-\[minmax\(0\,1fr\)\]{grid-template-rows:minmax(0,1fr)}.grid-rows-\[minmax\(0\,1fr\)_auto\]{grid-template-rows:minmax(0,1fr) auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.place-items-stretch{place-items:stretch stretch}.content-center{align-content:center}.content-start{align-content:flex-start}.content-stretch{align-content:stretch}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-stretch{justify-content:stretch}.justify-items-center{justify-items:center}.justify-items-end{justify-items:end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-hair>:not(:last-child)){border-color:var(--sb-hair)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-4xl{border-radius:calc(var(--radius) * 2.6)}.rounded-\[5px\]{border-radius:5px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) * .8)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) * .6)}.rounded-xl{border-radius:calc(var(--radius) * 1.4)}.rounded-b-lg{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.rounded-bl-sm{border-bottom-left-radius:calc(var(--radius) * .6)}.\!border-0{border-style:var(--tw-border-style)!important;border-width:0!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-border,.border-border\/80{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/80{border-color:color-mix(in oklab, var(--border) 80%, transparent)}}.border-destructive{border-color:var(--destructive)}.border-foreground,.border-foreground\/30{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/30{border-color:color-mix(in oklab, var(--foreground) 30%, transparent)}}.border-hair{border-color:var(--sb-hair)}.border-input{border-color:var(--input)}.border-muted-foreground{border-color:var(--muted-foreground)}.border-sidebar-border{border-color:var(--sidebar-border)}.border-status-danger-ink{border-color:var(--sb-status-danger-ink)}.border-tone-tool{border-color:var(--sb-tone-tool)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.\!bg-muted-foreground\/50{background-color:var(--muted-foreground)!important}@supports (color:color-mix(in lab, red, red)){.\!bg-muted-foreground\/50{background-color:color-mix(in oklab, var(--muted-foreground) 50%, transparent)!important}}.\!bg-transparent{background-color:#0000!important}.bg-\[var\(--ops-strong\)\]{background-color:var(--ops-strong)}.bg-\[var\(--sb-overlay\)\]{background-color:var(--sb-overlay)}.bg-accent{background-color:var(--accent)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-background,.bg-background\/70{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/70{background-color:color-mix(in oklab, var(--background) 70%, transparent)}}.bg-background\/90{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/90{background-color:color-mix(in oklab, var(--background) 90%, transparent)}}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/25{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/25{background-color:color-mix(in oklab, var(--card) 25%, transparent)}}.bg-card\/35{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){.bg-card\/35{background-color:color-mix(in oklab, var(--card) 35%, transparent)}}.bg-current{background-color:currentColor}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-destructive{background-color:var(--destructive)}.bg-dim{background-color:var(--sb-dim)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-foreground{background-color:var(--foreground)}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-header{background-color:var(--sb-header)}.bg-muted{background-color:var(--muted)}.bg-muted-foreground{background-color:var(--muted-foreground)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-rose-500{background-color:var(--color-rose-500)}.bg-row-selected{background-color:var(--sb-row-selected)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-accent{background-color:var(--sidebar-accent)}.bg-sky-500{background-color:var(--color-sky-500)}.bg-status-danger-fill{background-color:var(--sb-status-danger-fill)}.bg-status-neutral-fill{background-color:var(--sb-status-neutral-fill)}.bg-status-pending-fill{background-color:var(--sb-status-pending-fill)}.bg-status-success-fill{background-color:var(--sb-status-success-fill)}.bg-tone-agent{background-color:var(--sb-tone-agent)}.bg-tone-generation{background-color:var(--sb-tone-generation)}.bg-tone-tool{background-color:var(--sb-tone-tool)}.bg-transparent{background-color:#0000}.bg-violet-500{background-color:var(--color-violet-500)}.bg-clip-padding{background-clip:padding-box}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-px{padding:1px}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pl-0{padding-left:calc(var(--spacing) * 0)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-heading{font-family:var(--font-sans)}.font-mono{font-family:Geist Mono Variable,monospace}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-sm\/relaxed{font-size:var(--text-sm);line-height:var(--leading-relaxed)}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-\[400\]{--tw-font-weight:400;font-weight:400}.font-\[450\]{--tw-font-weight:450;font-weight:450}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.006em\]{--tw-tracking:-.006em;letter-spacing:-.006em}.tracking-\[0\.1em\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[var\(--ops-strong-text\)\]{color:var(--ops-strong-text)}.text-background{color:var(--background)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-dim{color:var(--sb-dim)}.text-foreground{color:var(--foreground)}.text-inherit{color:inherit}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-accent-foreground{color:var(--sidebar-accent-foreground)}.text-sidebar-foreground{color:var(--sidebar-foreground)}.text-status-danger-ink{color:var(--sb-status-danger-ink)}.text-status-neutral-ink{color:var(--sb-status-neutral-ink)}.text-status-pending-ink{color:var(--sb-status-pending-ink)}.text-status-success-ink{color:var(--sb-status-success-ink)}.text-tone-text{color:var(--sb-tone-text)}.text-tone-tool{color:var(--sb-tone-tool)}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.accent-foreground{accent-color:var(--foreground)}.\!opacity-0{opacity:0!important}.opacity-30{opacity:.3}.opacity-35{opacity:.35}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow-\[inset_0_1px_0_var\(--sb-inset-highlight\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,var(--sb-inset-highlight));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[var\(--sb-popover-ring\)\]{--tw-ring-color:var(--sb-popover-ring)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[animation-delay\:150ms\]{animation-delay:.15s}.\[animation-delay\:300ms\]{animation-delay:.3s}.\[overflow-anchor\:none\]{overflow-anchor:none}.\[scrollbar-gutter\:stable\]{scrollbar-gutter:stable}.group-last\/row\:border-b-0:is(:where(.group\/row):last-child *){border-bottom-style:var(--tw-border-style);border-bottom-width:0}.group-open\:hidden:is(:where(.group):is([open],:popover-open,:open) *){display:none}.group-open\:inline:is(:where(.group):is([open],:popover-open,:open) *){display:inline}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}.group-open\:text-foreground:is(:where(.group):is([open],:popover-open,:open) *){color:var(--foreground)}.group-open\/additional\:rotate-90:is(:where(.group\/additional):is([open],:popover-open,:open) *),.group-open\/row\:rotate-90:is(:where(.group\/row):is([open],:popover-open,:open) *){rotate:90deg}.group-focus-within\:grid:is(:where(.group):focus-within *){display:grid}.group-focus-within\:inline-flex:is(:where(.group):focus-within *){display:inline-flex}@media (hover:hover){.group-hover\:grid:is(:where(.group):hover *){display:grid}.group-hover\:inline-flex:is(:where(.group):hover *){display:inline-flex}}.marker\:hidden ::marker{display:none}.marker\:hidden::marker{display:none}.marker\:hidden ::-webkit-details-marker{display:none}.marker\:hidden::-webkit-details-marker{display:none}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.first\:pt-3:first-child{padding-top:calc(var(--spacing) * 3)}.first\:pl-0:first-child{padding-left:calc(var(--spacing) * 0)}.first\:pl-5:first-child{padding-left:calc(var(--spacing) * 5)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.last\:pr-0:last-child{padding-right:calc(var(--spacing) * 0)}.last\:pr-5:last-child{padding-right:calc(var(--spacing) * 5)}.focus-within\:outline-2:focus-within{outline-style:var(--tw-outline-style);outline-width:2px}.focus-within\:outline-offset-3:focus-within{outline-offset:3px}.focus-within\:outline-ring:focus-within{outline-color:var(--ring)}@media (hover:hover){.hover\:border-foreground:hover,.hover\:border-foreground\/90:hover{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:border-foreground\/90:hover{border-color:color-mix(in oklab, var(--foreground) 90%, transparent)}}.hover\:border-hair:hover{border-color:var(--sb-hair)}.hover\:border-status-danger-ink:hover{border-color:var(--sb-status-danger-ink)}.hover\:bg-action-muted:hover{background-color:var(--sb-action-muted)}.hover\:bg-foreground\/90:hover{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-foreground\/90:hover{background-color:color-mix(in oklab, var(--foreground) 90%, transparent)}}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:bg-status-danger-fill:hover{background-color:var(--sb-status-danger-fill)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-background:hover{color:var(--background)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-inherit:hover{color:inherit}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:opacity-100:hover{opacity:1}}.focus\:border-foreground:focus{border-color:var(--foreground)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:border-transparent:focus-visible{border-color:#0000}.focus-visible\:bg-action-muted:focus-visible{background-color:var(--sb-action-muted)}.focus-visible\:bg-sidebar-accent:focus-visible{background-color:var(--sidebar-accent)}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-3:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--ring)}.focus-visible\:ring-offset-3:focus-visible{--tw-ring-offset-width:3px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:translate-y-px:active{--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-border:disabled{border-color:var(--border)}.disabled\:bg-muted:disabled{background-color:var(--muted)}.disabled\:text-muted-foreground:disabled{color:var(--muted-foreground)}.disabled\:opacity-50:disabled{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[highlighted\]\:bg-accent[data-highlighted]{background-color:var(--accent)}.data-\[highlighted\]\:text-accent-foreground[data-highlighted]{color:var(--accent-foreground)}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}}@media not all and (width>=80rem){.max-xl\:col-span-2{grid-column:span 2/span 2}.max-xl\:hidden{display:none}.max-xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-xl\:grid-cols-\[240px_minmax\(0\,1fr\)\]{grid-template-columns:240px minmax(0,1fr)}.max-xl\:grid-rows-\[minmax\(240px\,0\.42fr\)_minmax\(0\,1fr\)\]{grid-template-rows:minmax(240px,.42fr) minmax(0,1fr)}.max-xl\:border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.max-xl\:pr-0{padding-right:calc(var(--spacing) * 0)}.max-xl\:pl-0{padding-left:calc(var(--spacing) * 0)}}@media not all and (width>=64rem){.max-lg\:min-h-96{min-height:calc(var(--spacing) * 96)}.max-lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-lg\:grid-rows-\[minmax\(220px\,0\.44fr\)_minmax\(0\,1fr\)\]{grid-template-rows:minmax(220px,.44fr) minmax(0,1fr)}.max-lg\:border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.max-lg\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.max-lg\:pr-0{padding-right:calc(var(--spacing) * 0)}.max-lg\:pl-0{padding-left:calc(var(--spacing) * 0)}}@media not all and (width>=48rem){.max-md\:col-span-1{grid-column:span 1/span 1}.max-md\:grid{display:grid}.max-md\:max-h-80{max-height:calc(var(--spacing) * 80)}.max-md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-md\:grid-rows-\[auto_minmax\(240px\,0\.38fr\)_minmax\(0\,1fr\)\]{grid-template-rows:auto minmax(240px,.38fr) minmax(0,1fr)}.max-md\:justify-start{justify-content:flex-start}.max-md\:gap-1{gap:calc(var(--spacing) * 1)}.max-md\:border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.max-md\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.max-md\:px-0{padding-inline:calc(var(--spacing) * 0)}.max-md\:pr-0{padding-right:calc(var(--spacing) * 0)}}@media not all and (width>=40rem){.max-sm\:w-full{width:100%}.max-sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-sm\:justify-start{justify-content:flex-start}.max-sm\:gap-1{gap:calc(var(--spacing) * 1)}}@media (width>=40rem){.sm\:max-w-56{max-width:calc(var(--spacing) * 56)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}:where(.sm\:divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.sm\:divide-hair>:not(:last-child)){border-color:var(--sb-hair)}.sm\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@media (width>=48rem){.md\:px-6{padding-inline:calc(var(--spacing) * 6)}.md\:pt-6{padding-top:calc(var(--spacing) * 6)}.md\:pb-6{padding-bottom:calc(var(--spacing) * 6)}}@media (width>=64rem){.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:min-h-0{min-height:calc(var(--spacing) * 0)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1fr\)_360px\]{grid-template-columns:minmax(0,1fr) 360px}.lg\:overflow-hidden{overflow:hidden}.lg\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.lg\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}}@media (width>=80rem){.xl\:grid-cols-\[minmax\(0\,1\.05fr\)_minmax\(0\,0\.95fr\)\]{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}.xl\:grid-cols-\[minmax\(0\,1fr\)_420px\]{grid-template-columns:minmax(0,1fr) 420px}.xl\:grid-cols-\[minmax\(260px\,0\.42fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(260px,.42fr) minmax(0,1fr)}.xl\:grid-cols-\[minmax\(280px\,0\.58fr\)_minmax\(0\,1\.42fr\)\]{grid-template-columns:minmax(280px,.58fr) minmax(0,1.42fr)}.xl\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.xl\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.xl\:pr-5{padding-right:calc(var(--spacing) * 5)}.xl\:pb-0{padding-bottom:calc(var(--spacing) * 0)}}.dark\:bg-muted:is(.dark *){background-color:var(--muted)}.dark\:bg-transparent:is(.dark *){background-color:#0000}.dark\:prose-invert:is(.dark *){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.dark\:disabled\:bg-muted:is(.dark *):disabled{background-color:var(--muted)}.prose-headings\:font-semibold :where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.prose-headings\:text-current :where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *)),.dark\:prose-headings\:text-current:is(.dark *) :where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *)){color:currentColor}.prose-p\:leading-7 :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.prose-p\:text-current :where(p):not(:where([class~=not-prose],[class~=not-prose] *)),.dark\:prose-p\:text-current:is(.dark *) :where(p):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-a\:text-current :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:currentColor}.prose-a\:decoration-muted-foreground :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){-webkit-text-decoration-color:var(--muted-foreground);-webkit-text-decoration-color:var(--muted-foreground);-webkit-text-decoration-color:var(--muted-foreground);text-decoration-color:var(--muted-foreground)}.prose-a\:underline-offset-2 :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){text-underline-offset:2px}.prose-blockquote\:border-border :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--border)}.prose-blockquote\:text-muted-foreground :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--muted-foreground)}.prose-strong\:text-current :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)),.dark\:prose-strong\:text-current:is(.dark *) :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:currentColor}.prose-code\:rounded-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:var(--radius)}.prose-code\:border :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){border-style:var(--tw-border-style);border-width:1px}.prose-code\:border-hair :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--sb-hair)}.prose-code\:bg-muted :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:var(--muted)}.prose-code\:px-1 :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline:calc(var(--spacing) * 1)}.prose-code\:py-0\.5 :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){padding-block:calc(var(--spacing) * .5)}.prose-code\:text-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.prose-code\:font-semibold :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.prose-code\:text-current :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:currentColor}.prose-code\:before\:content-none :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose-code\:after\:content-none :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:var(--tw-content);--tw-content:none;content:none}.dark\:prose-code\:text-current:is(.dark *) :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:currentColor}.prose-pre\:overflow-auto :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){overflow:auto}.prose-pre\:rounded-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:var(--radius)}.prose-pre\:border :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-style:var(--tw-border-style);border-width:1px}.prose-pre\:border-hair :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--sb-hair)}.prose-pre\:bg-card :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:var(--card)}.prose-pre\:text-current :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:currentColor}.dark\:prose-pre\:bg-card:is(.dark *) :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:var(--card)}.dark\:prose-pre\:text-current:is(.dark *) :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:currentColor}.prose-li\:marker\:text-muted-foreground :where(li):not(:where([class~=not-prose],[class~=not-prose] *)) ::marker{color:var(--muted-foreground)}.prose-li\:marker\:text-muted-foreground :where(li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--muted-foreground)}.prose-li\:marker\:text-muted-foreground :where(li):not(:where([class~=not-prose],[class~=not-prose] *)) ::-webkit-details-marker{color:var(--muted-foreground)}.prose-li\:marker\:text-muted-foreground :where(li):not(:where([class~=not-prose],[class~=not-prose] *))::-webkit-details-marker{color:var(--muted-foreground)}.prose-table\:m-0 :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){margin:calc(var(--spacing) * 0)}.prose-thead\:border-0 :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-tr\:border-0 :where(tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-style:var(--tw-border-style);border-width:0}.prose-th\:p-0 :where(th):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-td\:p-0 :where(td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:calc(var(--spacing) * 0)}.prose-hr\:border-border :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--border)}.\[\&_\.grid\]\:mt-2 .grid{margin-top:calc(var(--spacing) * 2)}.\[\&_\.grid\]\:border-l .grid{border-left-style:var(--tw-border-style);border-left-width:1px}.\[\&_\.grid\]\:border-border .grid{border-color:var(--border)}.\[\&_\.grid\]\:pl-3 .grid{padding-left:calc(var(--spacing) * 3)}.\[\&_canvas\]\:outline-none canvas{--tw-outline-style:none;outline-style:none}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:\!size-3 svg{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.\[\&_svg\]\:size-2\.5 svg{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.\[\&_svg\]\:size-3\.5 svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:h-3 svg{height:calc(var(--spacing) * 3)}.\[\&_svg\]\:h-3\.5 svg{height:calc(var(--spacing) * 3.5)}.\[\&_svg\]\:h-4 svg{height:calc(var(--spacing) * 4)}.\[\&_svg\]\:w-3 svg{width:calc(var(--spacing) * 3)}.\[\&_svg\]\:w-3\.5 svg{width:calc(var(--spacing) * 3.5)}.\[\&_svg\]\:w-4 svg{width:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}.\[\&\>\[data-entry-kind\=tool\]\+\[data-entry-kind\=tool\]\]\:-mt-3>[data-entry-kind=tool]+[data-entry-kind=tool]{margin-top:calc(var(--spacing) * -3)}}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ui/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ui/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ui/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ui/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ui/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ui/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ui/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ui/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ui/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ui/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ui/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--black:#000;--white:#fff;--zinc-50:#fafafa;--zinc-100:#f4f4f5;--zinc-200:#e4e4e7;--zinc-300:#d4d4d8;--zinc-400:#a1a1aa;--zinc-500:#71717a;--zinc-600:#52525b;--zinc-700:#3f3f46;--zinc-800:#27272a;--zinc-900:#18181b;--zinc-950:#09090b;--ops-bg:var(--zinc-100);--ops-sheet:var(--zinc-50);--ops-card:var(--zinc-100);--ops-ink:var(--zinc-900);--ops-muted:var(--zinc-600);--ops-dim:var(--zinc-400);--ops-line:var(--zinc-300);--ops-hair:var(--zinc-200);--ops-strong:var(--zinc-900);--ops-strong-text:var(--zinc-50);--ops-hover-surface:transparent;--ops-control-active:var(--zinc-200);--ops-row-selected:var(--zinc-200);--ops-brand-bright:#2bf563;--ops-brand-bright-hover:#24dc59;--ops-viz-blue:#5b8def;--ops-viz-gold:#d8a640;--ops-viz-red:#db5b5b;--ops-status-success:#4fc77a;--ops-purple:#7c3aed;--ops-orange:#d97706;--sb-bg:var(--ops-sheet);--sb-card:var(--ops-card);--sb-hover:var(--ops-hover-surface);--sb-active:var(--ops-control-active);--sb-row-selected:var(--ops-row-selected);--sb-ink:var(--ops-ink);--sb-muted:var(--ops-muted);--sb-dim:var(--ops-dim);--sb-line:var(--ops-line);--sb-hair:var(--ops-hair);--sb-action:var(--ops-brand-bright);--sb-action-hover:var(--ops-brand-bright-hover);--sb-action-muted:var(--sb-action)}@supports (color:color-mix(in lab, red, red)){:root{--sb-action-muted:color-mix(in srgb, var(--sb-action) 35%, transparent)}}:root{--sb-action-text:var(--zinc-950);--sb-green:var(--ops-brand-bright);--sb-header:var(--sb-bg)}@supports (color:color-mix(in lab, red, red)){:root{--sb-header:color-mix(in srgb, var(--sb-bg) 95%, transparent)}}:root{--sb-status-success-ink:#166534;--sb-status-success-fill:#dcfce7;--sb-status-danger-ink:#991b1b;--sb-status-danger-fill:#fee2e2;--sb-status-pending-ink:#854d0e;--sb-status-pending-fill:#fef9c3;--sb-status-neutral-ink:var(--zinc-700);--sb-status-neutral-fill:var(--zinc-200);--sb-tone-agent:var(--ops-purple);--sb-tone-generation:var(--ops-viz-blue);--sb-tone-tool:var(--ops-orange);--sb-tone-text:var(--white);--sb-overlay:var(--black)}@supports (color:color-mix(in lab, red, red)){:root{--sb-overlay:color-mix(in srgb, var(--black) 12%, transparent)}}:root{--sb-popover-ring:var(--sb-ink)}@supports (color:color-mix(in lab, red, red)){:root{--sb-popover-ring:color-mix(in srgb, var(--sb-ink) 12%, transparent)}}:root{--sb-selection:var(--sb-ink)}@supports (color:color-mix(in lab, red, red)){:root{--sb-selection:color-mix(in srgb, var(--sb-ink) 18%, transparent)}}:root{--sb-scrollbar:var(--sb-muted)}@supports (color:color-mix(in lab, red, red)){:root{--sb-scrollbar:color-mix(in srgb, var(--sb-muted) 30%, transparent)}}:root{--sb-scrollbar-hover:var(--sb-muted)}@supports (color:color-mix(in lab, red, red)){:root{--sb-scrollbar-hover:color-mix(in srgb, var(--sb-muted) 52%, transparent)}}:root{--sb-inset-highlight:var(--sb-ink)}@supports (color:color-mix(in lab, red, red)){:root{--sb-inset-highlight:color-mix(in srgb, var(--sb-ink) 6%, transparent)}}:root{--sb-code:#48504c;--sb-code-keyword:#9c2c62;--sb-code-type:#087d78;--sb-code-function:#255fa6;--sb-code-string:#257044;--sb-code-number:#955810;--sb-code-literal:#7144a5;--sb-code-comment:#788079;--background:var(--sb-bg);--foreground:var(--sb-ink);--card:var(--sb-card);--card-foreground:var(--sb-ink);--popover:var(--sb-bg);--popover-foreground:var(--sb-ink);--primary:var(--sb-action);--primary-foreground:var(--sb-action-text);--secondary:var(--sb-card);--secondary-foreground:var(--sb-ink);--muted:var(--sb-card);--muted-foreground:var(--sb-muted);--accent:var(--sb-active);--accent-foreground:var(--sb-ink);--destructive:var(--sb-status-danger-ink);--destructive-foreground:var(--sb-status-danger-fill);--border:var(--sb-line);--input:var(--sb-line);--ring:var(--ops-strong);--chart-1:var(--ops-viz-gold);--chart-2:var(--ops-viz-blue);--chart-3:var(--ops-viz-red);--chart-4:var(--ops-status-success);--chart-5:var(--ops-brand-bright);--radius:.375rem;--sidebar:var(--sb-bg);--sidebar-foreground:var(--sb-ink);--sidebar-primary:var(--sb-action);--sidebar-primary-foreground:var(--sb-action-text);--sidebar-accent:var(--sb-active);--sidebar-accent-foreground:var(--sb-ink);--sidebar-border:var(--sb-line);--sidebar-ring:var(--ops-strong)}.dark,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ops-bg:var(--black);--ops-sheet:var(--zinc-950);--ops-card:var(--zinc-900);--ops-ink:var(--zinc-300);--ops-muted:var(--zinc-500);--ops-dim:var(--zinc-700);--ops-line:var(--zinc-800);--ops-hair:var(--ops-line);--ops-strong:var(--white);--ops-strong-text:var(--zinc-950);--ops-control-active:var(--zinc-950);--ops-row-selected:var(--zinc-900);--sb-status-success-ink:#86efac;--sb-status-success-fill:#14532d;--sb-status-danger-ink:#fca5a5;--sb-status-danger-fill:#7f1d1d;--sb-status-pending-ink:#fde047;--sb-status-pending-fill:#713f12;--sb-status-neutral-ink:var(--zinc-300);--sb-status-neutral-fill:var(--zinc-800);--sb-code:#b7c0ca;--sb-code-keyword:#e6a15c;--sb-code-type:#62c3b5;--sb-code-function:#78aee8;--sb-code-string:#9fbd73;--sb-code-number:#bd93d8;--sb-code-literal:#df7d68;--sb-code-comment:#56606a}@keyframes studio-stream-gradient-settle{to{opacity:1}}.studio-markdown [data-state=revealing]{opacity:var(--anvia-stream-reveal-opacity,1);animation:studio-stream-gradient-settle var(--anvia-stream-reveal-duration,.18s) linear both}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.studio-markdown [data-state=revealing]{opacity:1;animation:none}}@property --tw-border-spacing-x{syntax:"<length>";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"<length>";inherits:false;initial-value:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes pulse{50%{opacity:.5}}
|