@pstdio/workbench 0.42.0 → 0.43.0-nightly.20261011183426

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.
@@ -1,5 +1,5 @@
1
- import { c as e, t } from "./workbench-renderers-BGXfLY9a.js";
2
- import { a as n, at as r, o as i, s as a } from "./react-Buqbh5XD.js";
1
+ import { c as e, t } from "./workbench-renderers-Bj4sazP5.js";
2
+ import { a as n, at as r, o as i, s as a } from "./react-vsxj0hQ2.js";
3
3
  import { resourceKey as o } from "@pstdio/sdk/extensions";
4
4
  import { c as s } from "react/compiler-runtime";
5
5
  import { Box as c, Button as l, Center as u, Flex as d, Image as f, Spinner as p, Text as m } from "@chakra-ui/react";
@@ -667,4 +667,4 @@ function me(e) {
667
667
  //#endregion
668
668
  export { B as WorkbenchFileRendererView };
669
669
 
670
- //# sourceMappingURL=file-renderer-view-DA77lgiT.js.map
670
+ //# sourceMappingURL=file-renderer-view-CTVhwDGe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-renderer-view-DA77lgiT.js","names":["ResourceRef","FILE_SECTION_NAVIGATION_METADATA_KEY","FileSectionAnchor","id","heading","occurrence","FileSectionNavigation","treeId","targetNodeId","anchors","isAnchor","value","anchor","Record","occurrenceIsValid","undefined","Number","isInteger","getFileSectionNavigation","resource","metadata","navigation","Array","isArray","every","resolveFileSectionTargetId","selectedNodeId","some","PreviousFileSectionNavigation","resourceKey","anchorIds","shouldClearFileSectionSelection","input","previous","current","currentResourceKey","includes","FileKind","IMAGE_EXTENSIONS","Set","PROSE_EXTENSIONS","CODE_LANGUAGE_BY_EXTENSION","Record","ts","tsx","js","jsx","mjs","cjs","json","jsonc","py","rb","rs","go","java","kt","c","h","cpp","cc","hpp","cs","php","swift","sh","bash","zsh","sql","css","scss","less","html","xml","yml","yaml","toml","ini","dockerfile","graphql","gql","md","markdown","txt","extensionOf","fileName","dot","lastIndexOf","length","slice","toLowerCase","isImage","mimeType","startsWith","has","pickFileKind","extension","codeLanguageFor","FileRendererContent","codeLanguageFor","pickFileKind","FileRendererPresentation","kind","isEditable","language","resolveFileRendererPresentation","content","contributionCanSave","emptyState","automaticKind","fileName","mimeType","editable","textRenderer","Box","Center","Flex","Image","Text","FileSourcePosition","AlertMessage","EmptyState","CodeEditor","MarkdownEditor","ReactNode","RefObject","FileRendererContent","resolveFileRendererPresentation","FileRendererContentViewProps","content","position","editorKey","errorNotice","contributionCanSave","onActiveSectionChange","sectionId","onChange","value","rendererRef","HTMLDivElement","sectionNavigation","anchors","Array","id","heading","occurrence","targetId","title","FileRendererContentView","props","$","_c","t0","presentation","t1","kind","positionNotice","t2","emptyState","t3","description","t4","t5","dataUrl","Symbol","for","fileName","isEditable","undefined","language","placeholder","t6","_c","FileRendererRefreshEnvelope","FileRendererRefreshOrigin","FileRendererSaveResult","FileEditControllerState","dirty","saving","saveError","removed","FileEditControllerInput","binding","Omit","resourceKey","debounceMs","load","event","save","value","origin","Promise","createOperationId","onStateChange","state","FileEditController","ReturnType","createFileEditController","input","baseline","baselineRevision","draft","activeSave","deferredRevision","genericRefreshDeferred","timer","setTimeout","operationSequence","seenRefreshRevisions","Set","completedOperationIds","describeError","error","Error","message","getState","const","notify","clearTimer","clearTimeout","nextOperationId","Date","now","hasPendingLocalState","Boolean","deferRefresh","revision","localeCompare","isSelfRefresh","operationId","rendererId","instanceId","has","takeDeferredRefresh","savedRevision","generic","undefined","runSave","resolve","then","result","add","size","delete","values","next","schedule","catch","getDraft","markRemoved","retain","getBaseline","setBaseline","acceptLoaded","shown","handleChange","handleRefreshEvent","retry","retryLoad","flush","Button","Flex","Text","FileRendererErrorNotice","props","$","_c","message","onRetry","t0","t1","t2","_c","resourceKey","ResourceRef","FileRendererLoadKeyInput","fileRendererId","resource","stableValue","value","Array","isArray","map","Object","fromEntries","entries","Record","sort","left","right","localeCompare","key","entry","createFileRendererLoadKey","input","resourceValue","id","type","metadata","JSON","stringify","isCurrentLoadedFile","loaded","loadKey","Text","Header","resolveFileIconElement","useFileIconThemePreference","FileRendererPathHeader","props","$","_c","fileName","filePath","activeFileIconTheme","t0","theme","t1","t2","t3","_c","Box","Button","Center","Flex","Spinner","Text","ResourceRef","resourceKey","ReactNode","useEffect","useLayoutEffect","useRef","useState","RegisteredFileRendererContribution","WorkbenchCore","WorkbenchPanelInstance","getWorkbenchRenderers","rendererReadKey","getFileSectionNavigation","resolveFileSectionTargetId","shouldClearFileSectionSelection","useWorkbenchStore","FileRendererContentView","createFileEditController","FileEditController","FileEditControllerState","FileRendererErrorNotice","createFileRendererLoadKey","isCurrentLoadedFile","acceptFileRendererLoad","LoadedFile","readCachedFileContent","storeCachedFileContent","FileRendererPathHeader","WorkbenchFileRendererViewProps","workbench","contribution","placement","SAVE_DEBOUNCE_MS","describeError","error","Error","message","syncActiveFileSection","input","navigation","ReturnType","sectionId","getTreeRenderer","treeId","anchors","some","anchor","id","setSelectedNode","selectedNodeId","getTreeState","undefined","getEditorSectionNavigation","targetId","useFilePosition","resource","$","_c","t0","state","location","position","page_0","Object","values","pages","find","page","ref","extensionId","key","document","metadataKey","metadata","store","FileRendererHeader","props","file","fileName","filePath","WorkbenchFileRendererView","sectionNavigation","editorSectionNavigation","loadKey","fileRendererId","loaded","setLoaded","setError","t1","Symbol","for","dirty","saving","editState","setEditState","controllerRef","retryReadRef","rendererRef","previousSectionNavigationRef","t2","t3","previous","current","currentResourceKey","anchorIds","map","_temp","contributionRef","resourceRef","placementRef","t4","contributionId","hasSave","Boolean","save","ownerKey","JSON","stringify","instanceId","t5","cancelled","removed","boundResource","boundContribution","read","views","reads","bind","controller","cached","editorRevision","load","t6","reason","request","queryKey","signal","onValue","next","updateLoaded","onError","loadError","binding","rendererId","debounceMs","onStateChange","value","origin","Promise","resolve","then","result","content","setBaseline","revision","removalSubscription","resources","onWillRemove","resource_0","retain","markRemoved","identity","placementIdentity","refreshSubscription","onDidRefreshFileRenderer","event","controller_0","handleRefreshEvent","dispose","flush","t7","t8","onVisibility","visibilityState","window","addEventListener","removeEventListener","t9","value_0","handleChange","t10","currentLoaded","scrollResetKey","t11","t12","node","requestAnimationFrame","current_0","parentElement","overflowY","getComputedStyle","includes","scrollHeight","clientHeight","scrollTop","loadError_0","t13","t14","t15","editorKey","errorNotice","saveError","retry","t16","t17","title","t18","_c","rendererReadKey","acceptFileRendererLoad","useWorkbenchStore","readCachedFileContent","storeCachedFileContent","FILE_SECTION_NAVIGATION_METADATA_KEY","isAnchor","value","anchor","occurrenceIsValid","getFileSectionNavigation","resource","navigation","resolveFileSectionTargetId","selectedNodeId","shouldClearFileSectionSelection","input","previous","current","currentResourceKey","IMAGE_EXTENSIONS","PROSE_EXTENSIONS","CODE_LANGUAGE_BY_EXTENSION","extensionOf","fileName","dot","isImage","mimeType","pickFileKind","extension","codeLanguageFor","resolveFileRendererPresentation","content","automaticKind","isEditable","contributionCanSave","FileRendererContentView","$","c","props","t0","presentation","t1","position","AlertMessage","positionNotice","t2","t3","t4","EmptyState","t5","errorNotice","Flex","Center","Text","title","Image","rendererRef","onChange","editorKey","Box","CodeEditor","onActiveSectionChange","sectionNavigation","MarkdownEditor","t6","createFileEditController","baseline","removed","baselineRevision","draft","activeSave","saveError","deferredRevision","genericRefreshDeferred","timer","operationSequence","seenRefreshRevisions","completedOperationIds","describeError","error","getState","notify","clearTimer","nextOperationId","hasPendingLocalState","deferRefresh","event","isSelfRefresh","operationId","takeDeferredRefresh","revision","generic","savedRevision","runSave","origin","result","schedule","retain","shown","FileRendererErrorNotice","message","onRetry","Button","stableValue","left","right","key","entry","createFileRendererLoadKey","resourceValue","resourceKey","fileRendererId","isCurrentLoadedFile","loaded","loadKey","FileRendererPathHeader","useFileIconThemePreference","activeFileIconTheme","resolveFileIconElement","filePath","Header","SAVE_DEBOUNCE_MS","syncActiveFileSection","getWorkbenchRenderers","workbench","sectionId","getEditorSectionNavigation","useFilePosition","location","state","page","FileRendererHeader","file","WorkbenchFileRendererView","editorSectionNavigation","contribution","setLoaded","useState","setError","editState","setEditState","controllerRef","useRef","retryReadRef","previousSectionNavigationRef","_temp","useEffect","contributionRef","resourceRef","placementRef","contributionId","hasSave","ownerKey","instanceId","cancelled","boundResource","boundContribution","read","controller","cached","load","reason","signal","updateLoaded","next","loadError","removalSubscription","resource_0","identity","refreshSubscription","controller_0","t7","t8","flush","onVisibility","t9","value_0","handleChange","t10","currentLoaded","scrollResetKey","t11","t12","node","current_0","overflowY","useLayoutEffect","loadError_0","t13","t14","t15","Spinner","t16","t17","t18"],"sources":["../src/core/registries/renderers/file-section-navigation.ts","../src/react/renderers/file/file-kind.ts","../src/react/renderers/file/file-renderer-presentation.ts","../src/react/renderers/file/file-renderer-content.tsx","../src/react/renderers/file/file-renderer-edit-state.ts","../src/react/renderers/file/file-renderer-error-notice.tsx","../src/react/renderers/file/file-renderer-load-key.ts","../src/react/renderers/file/file-renderer-path-header.tsx","../src/react/renderers/file/file-renderer-view.tsx"],"sourcesContent":["import type { ResourceRef } from \"../resources/resource-registry\";\n\nexport const FILE_SECTION_NAVIGATION_METADATA_KEY = \"pstdio.fileSectionNavigation\";\n\nexport interface FileSectionAnchor {\n id: string;\n heading: string;\n occurrence?: number;\n}\n\nexport interface FileSectionNavigation {\n treeId: string;\n targetNodeId: string;\n anchors: FileSectionAnchor[];\n}\n\nconst isAnchor = (value: unknown): value is FileSectionAnchor => {\n if (!value || typeof value !== \"object\") return false;\n const anchor = value as Record<string, unknown>;\n const occurrenceIsValid =\n anchor.occurrence === undefined ||\n (typeof anchor.occurrence === \"number\" && Number.isInteger(anchor.occurrence) && anchor.occurrence >= 0);\n return typeof anchor.id === \"string\" && typeof anchor.heading === \"string\" && occurrenceIsValid;\n};\n\nexport const getFileSectionNavigation = (resource: ResourceRef | undefined): FileSectionNavigation | undefined => {\n const value = resource?.metadata?.[FILE_SECTION_NAVIGATION_METADATA_KEY];\n if (!value || typeof value !== \"object\") return undefined;\n const navigation = value as Record<string, unknown>;\n if (typeof navigation.treeId !== \"string\" || typeof navigation.targetNodeId !== \"string\") return undefined;\n if (!Array.isArray(navigation.anchors) || !navigation.anchors.every(isAnchor)) return undefined;\n\n return {\n treeId: navigation.treeId,\n targetNodeId: navigation.targetNodeId,\n anchors: navigation.anchors,\n };\n};\n\nexport const resolveFileSectionTargetId = (navigation: FileSectionNavigation, selectedNodeId: string | undefined) => {\n if (selectedNodeId && navigation.anchors.some((anchor) => anchor.id === selectedNodeId)) return selectedNodeId;\n return navigation.targetNodeId;\n};\n\nexport interface PreviousFileSectionNavigation {\n resourceKey?: string;\n treeId: string;\n anchorIds: string[];\n}\n\nexport const shouldClearFileSectionSelection = (input: {\n previous: PreviousFileSectionNavigation | null;\n current: FileSectionNavigation | undefined;\n currentResourceKey?: string;\n selectedNodeId?: string;\n}) => {\n const { previous, current, currentResourceKey, selectedNodeId } = input;\n if (!previous || !selectedNodeId || !previous.anchorIds.includes(selectedNodeId)) return false;\n if (current?.targetNodeId === selectedNodeId) return false;\n\n return !current || previous.treeId !== current.treeId || previous.resourceKey !== currentResourceKey;\n};\n","// Generic file-type dispatch for the file renderer. Markdown is the default so\n// `.md` / `.txt` / extension-less files open in the prose editor; recognised code\n// extensions open in Monaco; images render read-only. This is deliberately\n// domain-agnostic — it knows about file types, not about tickets.\n\nexport type FileKind = \"markdown\" | \"code\" | \"image\";\n\nconst IMAGE_EXTENSIONS = new Set([\"png\", \"jpg\", \"jpeg\", \"gif\", \"webp\", \"svg\", \"avif\", \"bmp\", \"ico\"]);\nconst PROSE_EXTENSIONS = new Set([\"md\", \"markdown\", \"txt\"]);\n\n// Extension → Monaco language id. Markdown/plain text intentionally absent so\n// they fall through to the prose editor.\nconst CODE_LANGUAGE_BY_EXTENSION: Record<string, string> = {\n ts: \"typescript\",\n tsx: \"typescript\",\n js: \"javascript\",\n jsx: \"javascript\",\n mjs: \"javascript\",\n cjs: \"javascript\",\n json: \"json\",\n jsonc: \"json\",\n py: \"python\",\n rb: \"ruby\",\n rs: \"rust\",\n go: \"go\",\n java: \"java\",\n kt: \"kotlin\",\n c: \"c\",\n h: \"c\",\n cpp: \"cpp\",\n cc: \"cpp\",\n hpp: \"cpp\",\n cs: \"csharp\",\n php: \"php\",\n swift: \"swift\",\n sh: \"shell\",\n bash: \"shell\",\n zsh: \"shell\",\n sql: \"sql\",\n css: \"css\",\n scss: \"scss\",\n less: \"less\",\n html: \"html\",\n xml: \"xml\",\n yml: \"yaml\",\n yaml: \"yaml\",\n toml: \"ini\",\n ini: \"ini\",\n dockerfile: \"dockerfile\",\n graphql: \"graphql\",\n gql: \"graphql\",\n md: \"markdown\",\n markdown: \"markdown\",\n txt: \"plaintext\",\n};\n\nconst extensionOf = (fileName: string | undefined) => {\n if (!fileName) return \"\";\n const dot = fileName.lastIndexOf(\".\");\n if (dot < 0 || dot === fileName.length - 1) return \"\";\n return fileName.slice(dot + 1).toLowerCase();\n};\n\nconst isImage = (fileName: string | undefined, mimeType: string | undefined) => {\n if (mimeType?.startsWith(\"image/\")) return true;\n return IMAGE_EXTENSIONS.has(extensionOf(fileName));\n};\n\nexport const pickFileKind = (fileName: string | undefined, mimeType: string | undefined): FileKind => {\n if (isImage(fileName, mimeType)) return \"image\";\n const extension = extensionOf(fileName);\n if (!PROSE_EXTENSIONS.has(extension) && extension in CODE_LANGUAGE_BY_EXTENSION) return \"code\";\n return \"markdown\";\n};\n\n// Monaco language for a code file; falls back to plaintext for unknown extensions.\nexport const codeLanguageFor = (fileName: string | undefined) =>\n CODE_LANGUAGE_BY_EXTENSION[extensionOf(fileName)] ?? \"plaintext\";\n","import type { FileRendererContent } from \"../../../core\";\nimport { codeLanguageFor, pickFileKind } from \"./file-kind\";\n\nexport type FileRendererPresentation =\n | { kind: \"empty\"; isEditable: false }\n | { kind: \"image\"; isEditable: false }\n | { kind: \"code\"; isEditable: boolean; language: string }\n | { kind: \"markdown\"; isEditable: boolean };\n\nexport const resolveFileRendererPresentation = (\n content: FileRendererContent,\n contributionCanSave: boolean,\n): FileRendererPresentation => {\n if (content.emptyState) return { kind: \"empty\", isEditable: false };\n\n const automaticKind = pickFileKind(content.fileName, content.mimeType);\n if (automaticKind === \"image\") return { kind: \"image\", isEditable: false };\n\n const isEditable = contributionCanSave && content.editable !== false;\n if (automaticKind === \"code\" || content.textRenderer === \"monaco\") {\n return { kind: \"code\", isEditable, language: codeLanguageFor(content.fileName) };\n }\n return { kind: \"markdown\", isEditable };\n};\n","import { Box, Center, Flex, Image, Text } from \"@chakra-ui/react\";\nimport type { FileSourcePosition } from \"@pstdio/sdk/extensions\";\nimport { AlertMessage, EmptyState } from \"@pstdio/ui\";\nimport { CodeEditor } from \"@pstdio/ui/diff\";\nimport { MarkdownEditor } from \"@pstdio/ui/rich-text\";\nimport type { ReactNode, RefObject } from \"react\";\nimport type { FileRendererContent } from \"../../../core\";\nimport { resolveFileRendererPresentation } from \"./file-renderer-presentation\";\n\ninterface FileRendererContentViewProps {\n content: FileRendererContent;\n position?: FileSourcePosition;\n editorKey: string;\n errorNotice: ReactNode;\n contributionCanSave: boolean;\n onActiveSectionChange?: (sectionId: string | null) => void;\n onChange: (value: string) => void;\n rendererRef: RefObject<HTMLDivElement | null>;\n sectionNavigation?: {\n anchors: Array<{ id: string; heading: string; occurrence?: number }>;\n targetId: string;\n };\n title: string;\n}\n\nexport const FileRendererContentView = (props: FileRendererContentViewProps) => {\n const {\n content,\n position,\n editorKey,\n errorNotice,\n contributionCanSave,\n onActiveSectionChange,\n onChange,\n rendererRef,\n sectionNavigation,\n title,\n } = props;\n const presentation = resolveFileRendererPresentation(content, contributionCanSave);\n const positionNotice =\n position && presentation.kind !== \"code\" && presentation.kind !== \"empty\" ? (\n <AlertMessage status=\"info\" title=\"Source location unavailable\">\n This preview does not support source line selection.\n </AlertMessage>\n ) : null;\n\n if (presentation.kind === \"empty\") {\n return (\n <Flex direction=\"column\" h=\"full\" minH=\"0\" bg=\"bg\">\n {errorNotice}\n {positionNotice}\n <EmptyState\n flex=\"1\"\n minH=\"0\"\n title={content.emptyState?.title ?? \"Select a file\"}\n description={content.emptyState?.description}\n />\n </Flex>\n );\n }\n\n if (presentation.kind === \"image\") {\n if (!content.dataUrl) {\n return (\n <Center h=\"full\" minH=\"0\" bg=\"bg\" p=\"md\">\n <Text color=\"fg.muted\">This image preview is unavailable.</Text>\n </Center>\n );\n }\n return (\n <Flex direction=\"column\" h=\"full\" minH=\"0\" bg=\"bg\">\n {errorNotice}\n {positionNotice}\n <Center ref={rendererRef} flex=\"1\" minH=\"0\" p=\"md\" overflow=\"auto\">\n <Image src={content.dataUrl} alt={content.fileName ?? title} maxW=\"100%\" maxH=\"100%\" objectFit=\"contain\" />\n </Center>\n </Flex>\n );\n }\n\n if (presentation.kind === \"code\") {\n return (\n <Flex direction=\"column\" h=\"full\" minH=\"0\" bg=\"bg\">\n {errorNotice}\n {positionNotice}\n <Box flex=\"1\" minH=\"0\">\n <CodeEditor\n key={editorKey}\n language={presentation.language}\n position={position}\n fileName={content.fileName}\n defaultCode={content.content ?? \"\"}\n isEditable={presentation.isEditable}\n showLineNumbers\n onChange={presentation.isEditable ? onChange : undefined}\n />\n </Box>\n </Flex>\n );\n }\n\n return (\n <Flex ref={rendererRef} direction=\"column\" h=\"full\" minH=\"0\" overflow=\"hidden\" bg=\"bg\">\n {errorNotice}\n {positionNotice}\n <Box flex=\"1\" minH=\"0\" overflowY=\"auto\">\n <MarkdownEditor\n key={editorKey}\n defaultState={content.content ?? \"\"}\n isEditable={presentation.isEditable}\n sectionNavigation={sectionNavigation}\n placeholder={presentation.isEditable ? (content.placeholder ?? \"Write…\") : undefined}\n onActiveSectionChange={onActiveSectionChange}\n onChange={presentation.isEditable ? onChange : undefined}\n />\n </Box>\n </Flex>\n );\n};\n","// Owns the editable file renderer's save lifecycle: the last loaded or saved\n// value (the baseline), the debounced draft, the one in-flight save, and\n// refresh events that arrive while a draft or save exists.\n//\n// Invariants (from the renderer edit/refresh lifecycle PRD):\n// - a change equal to the baseline never schedules a save\n// - at most one save runs at a time; the baseline advances when it succeeds\n// - a failed save keeps the draft so a later change or flush retries it\n// - refresh events are deferred while a draft or save exists and coalesce\n// into one reload after the last save settles\n\nimport type {\n FileRendererRefreshEnvelope,\n FileRendererRefreshOrigin,\n FileRendererSaveResult,\n} from \"../../../core/registries/renderers/file-renderer-registry\";\n\nexport interface FileEditControllerState {\n dirty: boolean;\n saving: boolean;\n saveError?: string;\n removed?: true;\n}\n\nexport interface FileEditControllerInput {\n binding: Omit<FileRendererRefreshOrigin, \"operationId\"> & { resourceKey?: string };\n debounceMs: number;\n load: (event?: FileRendererRefreshEnvelope) => void;\n save: (value: string, origin: FileRendererRefreshOrigin) => Promise<FileRendererSaveResult | undefined>;\n createOperationId?: () => string;\n onStateChange?: (state: FileEditControllerState) => void;\n}\n\nexport type FileEditController = ReturnType<typeof createFileEditController>;\n\nexport const createFileEditController = (input: FileEditControllerInput) => {\n let baseline: string | undefined;\n let removed = false;\n let baselineRevision: string | undefined;\n let draft: string | null = null;\n let activeSave: { value: string; origin: FileRendererRefreshOrigin } | null = null;\n let saveError: string | undefined;\n let deferredRevision: string | undefined;\n let genericRefreshDeferred = false;\n let timer: ReturnType<typeof setTimeout> | null = null;\n let operationSequence = 0;\n const seenRefreshRevisions = new Set<string>();\n const completedOperationIds = new Set<string>();\n\n const describeError = (error: unknown) => (error instanceof Error ? error.message : \"Failed to save file.\");\n const getState = (): FileEditControllerState => ({\n dirty: draft !== null || (activeSave !== null && activeSave.value !== baseline),\n saving: activeSave !== null,\n ...(saveError ? { saveError } : {}),\n ...(removed ? { removed: true as const } : {}),\n });\n const notify = () => input.onStateChange?.(getState());\n\n const clearTimer = () => {\n if (timer === null) return;\n clearTimeout(timer);\n timer = null;\n };\n\n const nextOperationId = () => input.createOperationId?.() ?? `file-save-${Date.now()}-${++operationSequence}`;\n\n const hasPendingLocalState = () => draft !== null || activeSave !== null || timer !== null || Boolean(saveError);\n\n const deferRefresh = (event: FileRendererRefreshEnvelope) => {\n if (event.revision && (!deferredRevision || event.revision.localeCompare(deferredRevision) > 0)) {\n deferredRevision = event.revision;\n }\n if (!event.revision) genericRefreshDeferred = true;\n };\n\n const isSelfRefresh = (event: FileRendererRefreshEnvelope) => {\n const operationId = event.origin?.operationId;\n if (!operationId) return false;\n if (event.origin?.rendererId !== input.binding.rendererId) return false;\n if (event.origin.instanceId !== input.binding.instanceId) return false;\n return activeSave?.origin.operationId === operationId || completedOperationIds.has(operationId);\n };\n\n const takeDeferredRefresh = (savedRevision?: string) => {\n if (draft !== null || activeSave) return;\n const revision = deferredRevision;\n const generic = genericRefreshDeferred;\n deferredRevision = undefined;\n genericRefreshDeferred = false;\n if (revision && (!savedRevision || revision.localeCompare(savedRevision) > 0)) {\n input.load({ resourceKey: input.binding.resourceKey, revision });\n return;\n }\n if (generic) input.load({ resourceKey: input.binding.resourceKey });\n };\n\n const runSave = () => {\n if (removed || draft === null || activeSave || saveError) return;\n const value = draft;\n draft = null;\n const origin = {\n rendererId: input.binding.rendererId,\n instanceId: input.binding.instanceId,\n operationId: nextOperationId(),\n };\n activeSave = { value, origin };\n notify();\n void Promise.resolve(input.save(value, origin))\n .then((result) => {\n if (activeSave?.origin.operationId !== origin.operationId) return;\n activeSave = null;\n completedOperationIds.add(origin.operationId);\n if (completedOperationIds.size > 20) completedOperationIds.delete(completedOperationIds.values().next().value!);\n baseline = value;\n baselineRevision = result?.revision ?? baselineRevision;\n if (draft === baseline) {\n draft = null;\n clearTimer();\n }\n notify();\n if (draft !== null) {\n schedule();\n return;\n }\n takeDeferredRefresh(result?.revision);\n })\n .catch((error) => {\n if (removed) return;\n if (activeSave?.origin.operationId !== origin.operationId) return;\n activeSave = null;\n if (draft === null) draft = value;\n saveError = describeError(error);\n notify();\n });\n };\n\n const schedule = () => {\n clearTimer();\n timer = setTimeout(() => {\n timer = null;\n runSave();\n }, input.debounceMs);\n };\n\n return {\n getDraft() {\n return draft ?? activeSave?.value ?? baseline;\n },\n markRemoved() {\n const retain = hasPendingLocalState();\n removed = true;\n draft = draft ?? activeSave?.value ?? null;\n activeSave = null;\n clearTimer();\n notify();\n return retain;\n },\n getBaseline() {\n return baseline;\n },\n getState,\n setBaseline(value: string | undefined, revision?: string) {\n baseline = value;\n baselineRevision = revision;\n notify();\n },\n // Takes a freshly loaded value as the new baseline and returns the value the\n // editor was showing, so the caller can tell whether the editor must show\n // something else. Returns null while pending local state must keep the\n // editor: the refresh is deferred until the save settles.\n acceptLoaded(value: string | undefined, revision?: string) {\n if (removed) return null;\n if (hasPendingLocalState()) {\n deferRefresh(revision ? { revision } : {});\n return null;\n }\n const shown = baseline;\n baseline = value;\n baselineRevision = revision;\n notify();\n return { shown };\n },\n handleChange(value: string) {\n if (removed) {\n draft = value;\n notify();\n return;\n }\n if (saveError && value === draft) return;\n saveError = undefined;\n if (value === baseline && !activeSave) {\n draft = null;\n clearTimer();\n notify();\n return;\n }\n if (activeSave?.value === value) {\n draft = null;\n clearTimer();\n notify();\n return;\n }\n draft = value;\n schedule();\n notify();\n },\n handleRefreshEvent(event: FileRendererRefreshEnvelope = {}) {\n if (removed) return;\n if (event.resourceKey && event.resourceKey !== input.binding.resourceKey) return;\n if (isSelfRefresh(event)) return;\n if (event.revision && seenRefreshRevisions.has(event.revision)) return;\n if (event.revision) seenRefreshRevisions.add(event.revision);\n if (hasPendingLocalState()) {\n deferRefresh(event);\n return;\n }\n if (event.revision && baselineRevision && event.revision.localeCompare(baselineRevision) <= 0) return;\n input.load(event);\n },\n retry() {\n if (!saveError || draft === null || activeSave) return;\n saveError = undefined;\n notify();\n runSave();\n },\n retryLoad() {\n if (removed) return;\n input.load({ resourceKey: input.binding.resourceKey });\n },\n flush() {\n clearTimer();\n runSave();\n },\n };\n};\n","import { Button, Flex, Text } from \"@chakra-ui/react\";\n\nexport const FileRendererErrorNotice = (props: { message: string; onRetry?: () => void }) => {\n const { message, onRetry } = props;\n return (\n <Flex\n flex=\"none\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap=\"sm\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.muted\"\n bg=\"bg.muted\"\n px=\"sm\"\n py=\"xs\"\n >\n <Text color=\"fg.muted\" textStyle=\"label/S/regular\">\n {message}\n </Text>\n {onRetry ? (\n <Button size=\"2xs\" variant=\"subtle\" onClick={onRetry}>\n Retry\n </Button>\n ) : null}\n </Flex>\n );\n};\n","import { resourceKey } from \"@pstdio/sdk/extensions\";\nimport type { ResourceRef } from \"../../../core\";\n\ninterface FileRendererLoadKeyInput {\n fileRendererId: string;\n resource: ResourceRef | undefined;\n}\nconst stableValue = (value: unknown): unknown => {\n if (Array.isArray(value)) return value.map(stableValue);\n if (!value || typeof value !== \"object\") return value;\n return Object.fromEntries(\n Object.entries(value as Record<string, unknown>)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([key, entry]) => [key, stableValue(entry)]),\n );\n};\nexport const createFileRendererLoadKey = (input: FileRendererLoadKeyInput) => {\n const { fileRendererId, resource } = input;\n const resourceValue = resource\n ? stableValue({\n id: resource.id,\n type: resource.type,\n metadata: resource.metadata,\n })\n : null;\n return `${JSON.stringify(resourceKey(resource))}:${fileRendererId}:${JSON.stringify(resourceValue)}`;\n};\nexport const isCurrentLoadedFile = (\n loaded: {\n loadKey: string;\n } | null,\n loadKey: string,\n) => loaded?.loadKey === loadKey;\n","import { Text } from \"@chakra-ui/react\";\nimport { Header, resolveFileIconElement, useFileIconThemePreference } from \"@pstdio/ui\";\n\nexport const FileRendererPathHeader = (props: { fileName: string; filePath: string }) => {\n const { fileName, filePath } = props;\n const { activeFileIconTheme } = useFileIconThemePreference();\n\n return (\n <Header variant=\"narrow\" flexShrink={0} gap=\"2xs\" bg=\"bg\">\n {resolveFileIconElement(fileName, { theme: activeFileIconTheme })}\n <Text aria-label={`File path ${filePath}`} textStyle=\"label/S/regular\" color=\"fg.muted\" truncate>\n {filePath}\n </Text>\n </Header>\n );\n};\n","import { Box, Button, Center, Flex, Spinner, Text } from \"@chakra-ui/react\";\nimport { type ResourceRef, resourceKey } from \"@pstdio/sdk/extensions\";\nimport { type ReactNode, useEffect, useLayoutEffect, useRef, useState } from \"react\";\nimport type { RegisteredFileRendererContribution, WorkbenchCore, WorkbenchPanelInstance } from \"../../../core\";\nimport { getWorkbenchRenderers, rendererReadKey } from \"../../../core\";\nimport {\n getFileSectionNavigation,\n resolveFileSectionTargetId,\n shouldClearFileSectionSelection,\n} from \"../../../core/registries/renderers/file-section-navigation\";\nimport { useWorkbenchStore } from \"../../shared/use-workbench-store\";\nimport { FileRendererContentView } from \"./file-renderer-content\";\nimport {\n createFileEditController,\n type FileEditController,\n type FileEditControllerState,\n} from \"./file-renderer-edit-state\";\nimport { FileRendererErrorNotice } from \"./file-renderer-error-notice\";\nimport { createFileRendererLoadKey, isCurrentLoadedFile } from \"./file-renderer-load-key\";\nimport {\n acceptFileRendererLoad,\n type LoadedFile,\n readCachedFileContent,\n storeCachedFileContent,\n} from \"./file-renderer-load-state\";\nimport { FileRendererPathHeader } from \"./file-renderer-path-header\";\n\ninterface WorkbenchFileRendererViewProps {\n workbench: WorkbenchCore;\n contribution: RegisteredFileRendererContribution;\n // The bound resource (e.g. the open ticket / ticket-file) the load/save\n // commands operate on.\n placement?: WorkbenchPanelInstance;\n}\nconst SAVE_DEBOUNCE_MS = 600;\nconst describeError = (error: unknown) => (error instanceof Error ? error.message : \"Failed to load file.\");\nconst syncActiveFileSection = (input: {\n workbench: WorkbenchCore;\n navigation: ReturnType<typeof getFileSectionNavigation>;\n sectionId: string | null;\n}) => {\n const { workbench, navigation, sectionId } = input;\n if (!navigation || !getWorkbenchRenderers(workbench).getTreeRenderer(navigation.treeId)) return;\n if (sectionId && navigation.anchors.some((anchor) => anchor.id === sectionId)) {\n getWorkbenchRenderers(workbench).setSelectedNode(navigation.treeId, sectionId);\n return;\n }\n const selectedNodeId = getWorkbenchRenderers(workbench).getTreeState(navigation.treeId).selectedNodeId;\n if (selectedNodeId && navigation.anchors.some((anchor) => anchor.id === selectedNodeId)) {\n getWorkbenchRenderers(workbench).setSelectedNode(navigation.treeId, undefined);\n }\n};\nconst getEditorSectionNavigation = (\n workbench: WorkbenchCore,\n navigation: ReturnType<typeof getFileSectionNavigation>,\n) => {\n if (!navigation) return undefined;\n const selectedNodeId = getWorkbenchRenderers(workbench).getTreeRenderer(navigation.treeId)\n ? getWorkbenchRenderers(workbench).getTreeState(navigation.treeId).selectedNodeId\n : undefined;\n return {\n anchors: navigation.anchors,\n targetId: resolveFileSectionTargetId(navigation, selectedNodeId),\n };\n};\nconst useFilePosition = (workbench: WorkbenchCore, resource?: ResourceRef) =>\n useWorkbenchStore(workbench.pages.store, (state) => {\n const location = state.location;\n if (!location?.position || resourceKey(location.resource) !== resourceKey(resource)) return undefined;\n const page = Object.values(state.pages).find(\n (page) => page.ref.id === location.page.id && page.ref.extensionId === location.page.extensionId,\n );\n const key = page?.document?.metadataKey;\n if (!key || location.resource?.metadata?.[key] !== resource?.metadata?.[key]) return undefined;\n return location.position;\n });\n\nconst FileRendererHeader = (props: { file: LoadedFile }) => {\n const { file } = props;\n return file.filePath ? (\n <FileRendererPathHeader fileName={file.fileName ?? file.filePath} filePath={file.filePath} />\n ) : null;\n};\n\nexport const WorkbenchFileRendererView = (props: WorkbenchFileRendererViewProps) => {\n const { workbench, contribution } = props;\n const resource = props.placement?.resource;\n const position = useFilePosition(workbench, resource);\n const sectionNavigation = getFileSectionNavigation(resource);\n const editorSectionNavigation = getEditorSectionNavigation(workbench, sectionNavigation);\n const loadKey = createFileRendererLoadKey({ fileRendererId: contribution.id, resource });\n const [loaded, setLoaded] = useState<LoadedFile | null>(null);\n const [error, setError] = useState<{\n loadKey: string;\n message: string;\n } | null>(null);\n const [editState, setEditState] = useState<FileEditControllerState>({ dirty: false, saving: false });\n const controllerRef = useRef<FileEditController | null>(null);\n const retryReadRef = useRef<(() => void) | undefined>(undefined);\n const rendererRef = useRef<HTMLDivElement>(null);\n const previousSectionNavigationRef = useRef<{\n resourceKey?: string;\n treeId: string;\n anchorIds: string[];\n } | null>(null);\n useEffect(() => {\n const previous = previousSectionNavigationRef.current;\n const selectedNodeId =\n previous && getWorkbenchRenderers(workbench).getTreeRenderer(previous.treeId)\n ? getWorkbenchRenderers(workbench).getTreeState(previous.treeId).selectedNodeId\n : undefined;\n if (\n shouldClearFileSectionSelection({\n previous,\n current: sectionNavigation,\n currentResourceKey: resourceKey(resource),\n selectedNodeId,\n }) &&\n previous\n ) {\n getWorkbenchRenderers(workbench).setSelectedNode(previous.treeId, undefined);\n }\n previousSectionNavigationRef.current = sectionNavigation\n ? {\n resourceKey: resourceKey(resource),\n treeId: sectionNavigation.treeId,\n anchorIds: sectionNavigation.anchors.map((anchor) => anchor.id),\n }\n : null;\n }, [resource, sectionNavigation, workbench]);\n // Contribution refresh re-registers an identical contribution as a new\n // object, and a save that changes the document title produces a new resource\n // object with a fresh label. The load key uses resource values instead of\n // object identity, while callbacks read the latest objects through refs.\n const contributionRef = useRef(contribution);\n const resourceRef = useRef(resource);\n const placementRef = useRef(props.placement);\n useEffect(() => {\n contributionRef.current = contribution;\n resourceRef.current = resource;\n placementRef.current = props.placement;\n });\n const contributionId = contribution.id;\n const hasSave = Boolean(contribution.save);\n const ownerKey = props.placement\n ? rendererReadKey(props.placement)\n : JSON.stringify([\"file\", contributionId, loadKey]);\n const instanceId = props.placement?.instanceId ?? contributionId;\n // Re-binding a singleton widget to another resource changes `resource` and reloads.\n useEffect(() => {\n let cancelled = false;\n let removed = false;\n const boundResource = resourceRef.current;\n const boundContribution = contributionRef.current;\n const read = workbench.views.reads.bind(ownerKey);\n let controller: FileEditController | null = null;\n setError(null);\n // A recently viewed document mounts immediately from the cache; the load\n // below reconciles it (unchanged content keeps the editor mounted).\n const cached = readCachedFileContent(loadKey);\n setLoaded(cached ? { ...cached, editorRevision: 1, loadKey } : null);\n const load = (reason: \"refresh\" | \"retry\" = \"refresh\") => {\n read.request(\n {\n queryKey: loadKey,\n load: (signal) => contributionRef.current.load(resourceRef.current, signal),\n onValue: (next) => {\n if (cancelled || removed) return;\n const updateLoaded = acceptFileRendererLoad(next, loadKey, controller);\n if (!updateLoaded) return;\n setError(null);\n setLoaded(updateLoaded);\n },\n onError: (loadError) => {\n if (cancelled || removed) return;\n setError({ loadKey, message: describeError(loadError) });\n },\n },\n reason,\n );\n };\n retryReadRef.current = () => load(\"retry\");\n controller = hasSave\n ? createFileEditController({\n binding: {\n rendererId: contributionId,\n instanceId,\n resourceKey: resourceKey(resourceRef.current),\n },\n debounceMs: SAVE_DEBOUNCE_MS,\n load: () => load(),\n onStateChange: (state) => {\n if (!cancelled) setEditState(state);\n },\n save: (value, origin) =>\n Promise.resolve(boundContribution.save?.(boundResource, value, origin)).then((result) => {\n const current = readCachedFileContent(loadKey);\n if (current && !removed) storeCachedFileContent(loadKey, { ...current, content: value });\n return result ?? undefined;\n }),\n })\n : null;\n controllerRef.current = controller;\n if (cached) controllerRef.current?.setBaseline(cached.content, cached.revision);\n setEditState({ dirty: false, saving: false });\n load();\n const removalSubscription = workbench.resources.onWillRemove((resource) => {\n if (resourceKey(resource) !== resourceKey(resourceRef.current)) return [];\n removed = true;\n const retain = controllerRef.current?.markRemoved();\n const identity = placementRef.current?.placementIdentity;\n return retain && identity ? [identity] : [];\n });\n const refreshSubscription = getWorkbenchRenderers(workbench).onDidRefreshFileRenderer((event) => {\n if (removed || event.fileRendererId !== contributionId) return;\n const controller = controllerRef.current;\n if (controller) controller.handleRefreshEvent(event);\n else load();\n });\n return () => {\n cancelled = true;\n read.dispose();\n retryReadRef.current = undefined;\n refreshSubscription.dispose();\n removalSubscription.dispose();\n // Flush the last keystrokes on unbind; the load callback above is\n // cancelled, so a deferred refresh cannot resurrect the old binding.\n controller?.flush();\n if (controllerRef.current === controller) controllerRef.current = null;\n };\n }, [contributionId, hasSave, workbench, loadKey, ownerKey, instanceId]);\n // The last keystrokes are also flushed when the tab is hidden or closed.\n useEffect(() => {\n const flush = () => controllerRef.current?.flush();\n const onVisibility = () => {\n if (document.visibilityState === \"hidden\") flush();\n };\n window.addEventListener(\"beforeunload\", flush);\n document.addEventListener(\"visibilitychange\", onVisibility);\n return () => {\n window.removeEventListener(\"beforeunload\", flush);\n document.removeEventListener(\"visibilitychange\", onVisibility);\n };\n }, []);\n const handleChange = (value: string) => {\n controllerRef.current?.handleChange(value);\n };\n const currentLoaded = isCurrentLoadedFile(loaded, loadKey) ? loaded : null;\n const scrollResetKey = currentLoaded ? `${currentLoaded.loadKey}:${currentLoaded.editorRevision}` : \"\";\n useLayoutEffect(() => {\n if (!scrollResetKey || sectionNavigation) return;\n const node = rendererRef.current;\n if (!node) return;\n requestAnimationFrame(() => {\n let current = node.parentElement;\n while (current) {\n const overflowY = getComputedStyle(current).overflowY;\n if ([\"auto\", \"scroll\", \"overlay\"].includes(overflowY) && current.scrollHeight > current.clientHeight) {\n current.scrollTop = 0;\n }\n current = current.parentElement;\n }\n });\n }, [scrollResetKey, sectionNavigation]);\n const loadError = error?.loadKey === loadKey ? error.message : undefined;\n if (loadError && !currentLoaded) {\n return (\n <Center h=\"full\" minH=\"0\" bg=\"bg\" p=\"md\" flexDirection=\"column\" gap=\"sm\">\n <Text color=\"fg.muted\">{loadError}</Text>\n <Button size=\"xs\" variant=\"subtle\" onClick={() => retryReadRef.current?.()}>\n Retry\n </Button>\n </Center>\n );\n }\n if (!currentLoaded) {\n return (\n <Center h=\"full\" minH=\"0\" bg=\"bg\">\n <Spinner size=\"sm\" />\n </Center>\n );\n }\n // The key must carry the document identity, not just the contribution: two\n // documents from the same renderer both start at revision 1, so keying on the\n // contribution alone reuses the editor and keeps showing the previous file.\n const editorKey = `${currentLoaded.loadKey}:${currentLoaded.editorRevision}`;\n let errorNotice: ReactNode = null;\n if (editState.removed) {\n errorNotice = (\n <FileRendererErrorNotice message=\"This resource was removed. Your draft is kept here. Copy it before closing this tab.\" />\n );\n } else if (loadError) {\n errorNotice = <FileRendererErrorNotice message={loadError} onRetry={() => retryReadRef.current?.()} />;\n } else if (editState.saveError) {\n errorNotice = (\n <FileRendererErrorNotice message={editState.saveError} onRetry={() => controllerRef.current?.retry()} />\n );\n }\n return (\n <Flex direction=\"column\" h=\"full\" minH=\"0\" bg=\"bg\">\n <FileRendererHeader file={currentLoaded} />\n <Box flex=\"1\" minH=\"0\">\n <FileRendererContentView\n content={currentLoaded}\n position={position}\n editorKey={editorKey}\n errorNotice={errorNotice}\n contributionCanSave={Boolean(contribution.save)}\n onActiveSectionChange={\n sectionNavigation\n ? (sectionId) => syncActiveFileSection({ workbench, navigation: sectionNavigation, sectionId })\n : undefined\n }\n onChange={handleChange}\n rendererRef={rendererRef}\n sectionNavigation={editorSectionNavigation}\n title={contribution.title}\n />\n </Box>\n </Flex>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"file-renderer-view-CTVhwDGe.js","names":["ResourceRef","FILE_SECTION_NAVIGATION_METADATA_KEY","FileSectionAnchor","id","heading","occurrence","FileSectionNavigation","treeId","targetNodeId","anchors","isAnchor","value","anchor","Record","occurrenceIsValid","undefined","Number","isInteger","getFileSectionNavigation","resource","metadata","navigation","Array","isArray","every","resolveFileSectionTargetId","selectedNodeId","some","PreviousFileSectionNavigation","resourceKey","anchorIds","shouldClearFileSectionSelection","input","previous","current","currentResourceKey","includes","FileKind","IMAGE_EXTENSIONS","Set","PROSE_EXTENSIONS","CODE_LANGUAGE_BY_EXTENSION","Record","ts","tsx","js","jsx","mjs","cjs","json","jsonc","py","rb","rs","go","java","kt","c","h","cpp","cc","hpp","cs","php","swift","sh","bash","zsh","sql","css","scss","less","html","xml","yml","yaml","toml","ini","dockerfile","graphql","gql","md","markdown","txt","extensionOf","fileName","dot","lastIndexOf","length","slice","toLowerCase","isImage","mimeType","startsWith","has","pickFileKind","extension","codeLanguageFor","FileRendererContent","codeLanguageFor","pickFileKind","FileRendererPresentation","kind","isEditable","language","resolveFileRendererPresentation","content","contributionCanSave","emptyState","automaticKind","fileName","mimeType","editable","textRenderer","Box","Center","Flex","Image","Text","FileSourcePosition","AlertMessage","EmptyState","CodeEditor","MarkdownEditor","ReactNode","RefObject","FileRendererContent","resolveFileRendererPresentation","FileRendererContentViewProps","content","position","editorKey","errorNotice","contributionCanSave","onActiveSectionChange","sectionId","onChange","value","rendererRef","HTMLDivElement","sectionNavigation","anchors","Array","id","heading","occurrence","targetId","title","FileRendererContentView","props","$","_c","t0","presentation","t1","kind","positionNotice","t2","emptyState","t3","description","t4","t5","dataUrl","Symbol","for","fileName","isEditable","undefined","language","placeholder","t6","_c","FileRendererRefreshEnvelope","FileRendererRefreshOrigin","FileRendererSaveResult","FileEditControllerState","dirty","saving","saveError","removed","FileEditControllerInput","binding","Omit","resourceKey","debounceMs","load","event","save","value","origin","Promise","createOperationId","onStateChange","state","FileEditController","ReturnType","createFileEditController","input","baseline","baselineRevision","draft","activeSave","deferredRevision","genericRefreshDeferred","timer","setTimeout","operationSequence","seenRefreshRevisions","Set","completedOperationIds","describeError","error","Error","message","getState","const","notify","clearTimer","clearTimeout","nextOperationId","Date","now","hasPendingLocalState","Boolean","deferRefresh","revision","localeCompare","isSelfRefresh","operationId","rendererId","instanceId","has","takeDeferredRefresh","savedRevision","generic","undefined","runSave","resolve","then","result","add","size","delete","values","next","schedule","catch","getDraft","markRemoved","retain","getBaseline","setBaseline","acceptLoaded","shown","handleChange","handleRefreshEvent","retry","retryLoad","flush","Button","Flex","Text","FileRendererErrorNotice","props","$","_c","message","onRetry","t0","t1","t2","_c","resourceKey","ResourceRef","FileRendererLoadKeyInput","fileRendererId","resource","stableValue","value","Array","isArray","map","Object","fromEntries","entries","Record","sort","left","right","localeCompare","key","entry","createFileRendererLoadKey","input","resourceValue","id","type","metadata","JSON","stringify","isCurrentLoadedFile","loaded","loadKey","Text","Header","resolveFileIconElement","useFileIconThemePreference","FileRendererPathHeader","props","$","_c","fileName","filePath","activeFileIconTheme","t0","theme","t1","t2","t3","_c","Box","Button","Center","Flex","Spinner","Text","ResourceRef","resourceKey","ReactNode","useEffect","useLayoutEffect","useRef","useState","RegisteredFileRendererContribution","WorkbenchCore","WorkbenchPanelInstance","getWorkbenchRenderers","rendererReadKey","getFileSectionNavigation","resolveFileSectionTargetId","shouldClearFileSectionSelection","useWorkbenchStore","FileRendererContentView","createFileEditController","FileEditController","FileEditControllerState","FileRendererErrorNotice","createFileRendererLoadKey","isCurrentLoadedFile","acceptFileRendererLoad","LoadedFile","readCachedFileContent","storeCachedFileContent","FileRendererPathHeader","WorkbenchFileRendererViewProps","workbench","contribution","placement","SAVE_DEBOUNCE_MS","describeError","error","Error","message","syncActiveFileSection","input","navigation","ReturnType","sectionId","getTreeRenderer","treeId","anchors","some","anchor","id","setSelectedNode","selectedNodeId","getTreeState","undefined","getEditorSectionNavigation","targetId","useFilePosition","resource","$","_c","t0","state","location","position","page_0","Object","values","pages","find","page","ref","extensionId","key","document","metadataKey","metadata","store","FileRendererHeader","props","file","fileName","filePath","WorkbenchFileRendererView","sectionNavigation","editorSectionNavigation","loadKey","fileRendererId","loaded","setLoaded","setError","t1","Symbol","for","dirty","saving","editState","setEditState","controllerRef","retryReadRef","rendererRef","previousSectionNavigationRef","t2","t3","previous","current","currentResourceKey","anchorIds","map","_temp","contributionRef","resourceRef","placementRef","t4","contributionId","hasSave","Boolean","save","ownerKey","JSON","stringify","instanceId","t5","cancelled","removed","boundResource","boundContribution","read","views","reads","bind","controller","cached","editorRevision","load","t6","reason","request","queryKey","signal","onValue","next","updateLoaded","onError","loadError","binding","rendererId","debounceMs","onStateChange","value","origin","Promise","resolve","then","result","content","setBaseline","revision","removalSubscription","resources","onWillRemove","resource_0","retain","markRemoved","identity","placementIdentity","refreshSubscription","onDidRefreshFileRenderer","event","controller_0","handleRefreshEvent","dispose","flush","t7","t8","onVisibility","visibilityState","window","addEventListener","removeEventListener","t9","value_0","handleChange","t10","currentLoaded","scrollResetKey","t11","t12","node","requestAnimationFrame","current_0","parentElement","overflowY","getComputedStyle","includes","scrollHeight","clientHeight","scrollTop","loadError_0","t13","t14","t15","editorKey","errorNotice","saveError","retry","t16","t17","title","t18","_c","rendererReadKey","acceptFileRendererLoad","useWorkbenchStore","readCachedFileContent","storeCachedFileContent","FILE_SECTION_NAVIGATION_METADATA_KEY","isAnchor","value","anchor","occurrenceIsValid","getFileSectionNavigation","resource","navigation","resolveFileSectionTargetId","selectedNodeId","shouldClearFileSectionSelection","input","previous","current","currentResourceKey","IMAGE_EXTENSIONS","PROSE_EXTENSIONS","CODE_LANGUAGE_BY_EXTENSION","extensionOf","fileName","dot","isImage","mimeType","pickFileKind","extension","codeLanguageFor","resolveFileRendererPresentation","content","automaticKind","isEditable","contributionCanSave","FileRendererContentView","$","c","props","t0","presentation","t1","position","AlertMessage","positionNotice","t2","t3","t4","EmptyState","t5","errorNotice","Flex","Center","Text","title","Image","rendererRef","onChange","editorKey","Box","CodeEditor","onActiveSectionChange","sectionNavigation","MarkdownEditor","t6","createFileEditController","baseline","removed","baselineRevision","draft","activeSave","saveError","deferredRevision","genericRefreshDeferred","timer","operationSequence","seenRefreshRevisions","completedOperationIds","describeError","error","getState","notify","clearTimer","nextOperationId","hasPendingLocalState","deferRefresh","event","isSelfRefresh","operationId","takeDeferredRefresh","revision","generic","savedRevision","runSave","origin","result","schedule","retain","shown","FileRendererErrorNotice","message","onRetry","Button","stableValue","left","right","key","entry","createFileRendererLoadKey","resourceValue","resourceKey","fileRendererId","isCurrentLoadedFile","loaded","loadKey","FileRendererPathHeader","useFileIconThemePreference","activeFileIconTheme","resolveFileIconElement","filePath","Header","SAVE_DEBOUNCE_MS","syncActiveFileSection","getWorkbenchRenderers","workbench","sectionId","getEditorSectionNavigation","useFilePosition","location","state","page","FileRendererHeader","file","WorkbenchFileRendererView","editorSectionNavigation","contribution","setLoaded","useState","setError","editState","setEditState","controllerRef","useRef","retryReadRef","previousSectionNavigationRef","_temp","useEffect","contributionRef","resourceRef","placementRef","contributionId","hasSave","ownerKey","instanceId","cancelled","boundResource","boundContribution","read","controller","cached","load","reason","signal","updateLoaded","next","loadError","removalSubscription","resource_0","identity","refreshSubscription","controller_0","t7","t8","flush","onVisibility","t9","value_0","handleChange","t10","currentLoaded","scrollResetKey","t11","t12","node","current_0","overflowY","useLayoutEffect","loadError_0","t13","t14","t15","Spinner","t16","t17","t18"],"sources":["../src/core/registries/renderers/file-section-navigation.ts","../src/react/renderers/file/file-kind.ts","../src/react/renderers/file/file-renderer-presentation.ts","../src/react/renderers/file/file-renderer-content.tsx","../src/react/renderers/file/file-renderer-edit-state.ts","../src/react/renderers/file/file-renderer-error-notice.tsx","../src/react/renderers/file/file-renderer-load-key.ts","../src/react/renderers/file/file-renderer-path-header.tsx","../src/react/renderers/file/file-renderer-view.tsx"],"sourcesContent":["import type { ResourceRef } from \"../resources/resource-registry\";\n\nexport const FILE_SECTION_NAVIGATION_METADATA_KEY = \"pstdio.fileSectionNavigation\";\n\nexport interface FileSectionAnchor {\n id: string;\n heading: string;\n occurrence?: number;\n}\n\nexport interface FileSectionNavigation {\n treeId: string;\n targetNodeId: string;\n anchors: FileSectionAnchor[];\n}\n\nconst isAnchor = (value: unknown): value is FileSectionAnchor => {\n if (!value || typeof value !== \"object\") return false;\n const anchor = value as Record<string, unknown>;\n const occurrenceIsValid =\n anchor.occurrence === undefined ||\n (typeof anchor.occurrence === \"number\" && Number.isInteger(anchor.occurrence) && anchor.occurrence >= 0);\n return typeof anchor.id === \"string\" && typeof anchor.heading === \"string\" && occurrenceIsValid;\n};\n\nexport const getFileSectionNavigation = (resource: ResourceRef | undefined): FileSectionNavigation | undefined => {\n const value = resource?.metadata?.[FILE_SECTION_NAVIGATION_METADATA_KEY];\n if (!value || typeof value !== \"object\") return undefined;\n const navigation = value as Record<string, unknown>;\n if (typeof navigation.treeId !== \"string\" || typeof navigation.targetNodeId !== \"string\") return undefined;\n if (!Array.isArray(navigation.anchors) || !navigation.anchors.every(isAnchor)) return undefined;\n\n return {\n treeId: navigation.treeId,\n targetNodeId: navigation.targetNodeId,\n anchors: navigation.anchors,\n };\n};\n\nexport const resolveFileSectionTargetId = (navigation: FileSectionNavigation, selectedNodeId: string | undefined) => {\n if (selectedNodeId && navigation.anchors.some((anchor) => anchor.id === selectedNodeId)) return selectedNodeId;\n return navigation.targetNodeId;\n};\n\nexport interface PreviousFileSectionNavigation {\n resourceKey?: string;\n treeId: string;\n anchorIds: string[];\n}\n\nexport const shouldClearFileSectionSelection = (input: {\n previous: PreviousFileSectionNavigation | null;\n current: FileSectionNavigation | undefined;\n currentResourceKey?: string;\n selectedNodeId?: string;\n}) => {\n const { previous, current, currentResourceKey, selectedNodeId } = input;\n if (!previous || !selectedNodeId || !previous.anchorIds.includes(selectedNodeId)) return false;\n if (current?.targetNodeId === selectedNodeId) return false;\n\n return !current || previous.treeId !== current.treeId || previous.resourceKey !== currentResourceKey;\n};\n","// Generic file-type dispatch for the file renderer. Markdown is the default so\n// `.md` / `.txt` / extension-less files open in the prose editor; recognised code\n// extensions open in Monaco; images render read-only. This is deliberately\n// domain-agnostic — it knows about file types, not about tickets.\n\nexport type FileKind = \"markdown\" | \"code\" | \"image\";\n\nconst IMAGE_EXTENSIONS = new Set([\"png\", \"jpg\", \"jpeg\", \"gif\", \"webp\", \"svg\", \"avif\", \"bmp\", \"ico\"]);\nconst PROSE_EXTENSIONS = new Set([\"md\", \"markdown\", \"txt\"]);\n\n// Extension → Monaco language id. Markdown/plain text intentionally absent so\n// they fall through to the prose editor.\nconst CODE_LANGUAGE_BY_EXTENSION: Record<string, string> = {\n ts: \"typescript\",\n tsx: \"typescript\",\n js: \"javascript\",\n jsx: \"javascript\",\n mjs: \"javascript\",\n cjs: \"javascript\",\n json: \"json\",\n jsonc: \"json\",\n py: \"python\",\n rb: \"ruby\",\n rs: \"rust\",\n go: \"go\",\n java: \"java\",\n kt: \"kotlin\",\n c: \"c\",\n h: \"c\",\n cpp: \"cpp\",\n cc: \"cpp\",\n hpp: \"cpp\",\n cs: \"csharp\",\n php: \"php\",\n swift: \"swift\",\n sh: \"shell\",\n bash: \"shell\",\n zsh: \"shell\",\n sql: \"sql\",\n css: \"css\",\n scss: \"scss\",\n less: \"less\",\n html: \"html\",\n xml: \"xml\",\n yml: \"yaml\",\n yaml: \"yaml\",\n toml: \"ini\",\n ini: \"ini\",\n dockerfile: \"dockerfile\",\n graphql: \"graphql\",\n gql: \"graphql\",\n md: \"markdown\",\n markdown: \"markdown\",\n txt: \"plaintext\",\n};\n\nconst extensionOf = (fileName: string | undefined) => {\n if (!fileName) return \"\";\n const dot = fileName.lastIndexOf(\".\");\n if (dot < 0 || dot === fileName.length - 1) return \"\";\n return fileName.slice(dot + 1).toLowerCase();\n};\n\nconst isImage = (fileName: string | undefined, mimeType: string | undefined) => {\n if (mimeType?.startsWith(\"image/\")) return true;\n return IMAGE_EXTENSIONS.has(extensionOf(fileName));\n};\n\nexport const pickFileKind = (fileName: string | undefined, mimeType: string | undefined): FileKind => {\n if (isImage(fileName, mimeType)) return \"image\";\n const extension = extensionOf(fileName);\n if (!PROSE_EXTENSIONS.has(extension) && extension in CODE_LANGUAGE_BY_EXTENSION) return \"code\";\n return \"markdown\";\n};\n\n// Monaco language for a code file; falls back to plaintext for unknown extensions.\nexport const codeLanguageFor = (fileName: string | undefined) =>\n CODE_LANGUAGE_BY_EXTENSION[extensionOf(fileName)] ?? \"plaintext\";\n","import type { FileRendererContent } from \"../../../core\";\nimport { codeLanguageFor, pickFileKind } from \"./file-kind\";\n\nexport type FileRendererPresentation =\n | { kind: \"empty\"; isEditable: false }\n | { kind: \"image\"; isEditable: false }\n | { kind: \"code\"; isEditable: boolean; language: string }\n | { kind: \"markdown\"; isEditable: boolean };\n\nexport const resolveFileRendererPresentation = (\n content: FileRendererContent,\n contributionCanSave: boolean,\n): FileRendererPresentation => {\n if (content.emptyState) return { kind: \"empty\", isEditable: false };\n\n const automaticKind = pickFileKind(content.fileName, content.mimeType);\n if (automaticKind === \"image\") return { kind: \"image\", isEditable: false };\n\n const isEditable = contributionCanSave && content.editable !== false;\n if (automaticKind === \"code\" || content.textRenderer === \"monaco\") {\n return { kind: \"code\", isEditable, language: codeLanguageFor(content.fileName) };\n }\n return { kind: \"markdown\", isEditable };\n};\n","import { Box, Center, Flex, Image, Text } from \"@chakra-ui/react\";\nimport type { FileSourcePosition } from \"@pstdio/sdk/extensions\";\nimport { AlertMessage, EmptyState } from \"@pstdio/ui\";\nimport { CodeEditor } from \"@pstdio/ui/diff\";\nimport { MarkdownEditor } from \"@pstdio/ui/rich-text\";\nimport type { ReactNode, RefObject } from \"react\";\nimport type { FileRendererContent } from \"../../../core\";\nimport { resolveFileRendererPresentation } from \"./file-renderer-presentation\";\n\ninterface FileRendererContentViewProps {\n content: FileRendererContent;\n position?: FileSourcePosition;\n editorKey: string;\n errorNotice: ReactNode;\n contributionCanSave: boolean;\n onActiveSectionChange?: (sectionId: string | null) => void;\n onChange: (value: string) => void;\n rendererRef: RefObject<HTMLDivElement | null>;\n sectionNavigation?: {\n anchors: Array<{ id: string; heading: string; occurrence?: number }>;\n targetId: string;\n };\n title: string;\n}\n\nexport const FileRendererContentView = (props: FileRendererContentViewProps) => {\n const {\n content,\n position,\n editorKey,\n errorNotice,\n contributionCanSave,\n onActiveSectionChange,\n onChange,\n rendererRef,\n sectionNavigation,\n title,\n } = props;\n const presentation = resolveFileRendererPresentation(content, contributionCanSave);\n const positionNotice =\n position && presentation.kind !== \"code\" && presentation.kind !== \"empty\" ? (\n <AlertMessage status=\"info\" title=\"Source location unavailable\">\n This preview does not support source line selection.\n </AlertMessage>\n ) : null;\n\n if (presentation.kind === \"empty\") {\n return (\n <Flex direction=\"column\" h=\"full\" minH=\"0\" bg=\"bg\">\n {errorNotice}\n {positionNotice}\n <EmptyState\n flex=\"1\"\n minH=\"0\"\n title={content.emptyState?.title ?? \"Select a file\"}\n description={content.emptyState?.description}\n />\n </Flex>\n );\n }\n\n if (presentation.kind === \"image\") {\n if (!content.dataUrl) {\n return (\n <Center h=\"full\" minH=\"0\" bg=\"bg\" p=\"md\">\n <Text color=\"fg.muted\">This image preview is unavailable.</Text>\n </Center>\n );\n }\n return (\n <Flex direction=\"column\" h=\"full\" minH=\"0\" bg=\"bg\">\n {errorNotice}\n {positionNotice}\n <Center ref={rendererRef} flex=\"1\" minH=\"0\" p=\"md\" overflow=\"auto\">\n <Image src={content.dataUrl} alt={content.fileName ?? title} maxW=\"100%\" maxH=\"100%\" objectFit=\"contain\" />\n </Center>\n </Flex>\n );\n }\n\n if (presentation.kind === \"code\") {\n return (\n <Flex direction=\"column\" h=\"full\" minH=\"0\" bg=\"bg\">\n {errorNotice}\n {positionNotice}\n <Box flex=\"1\" minH=\"0\">\n <CodeEditor\n key={editorKey}\n language={presentation.language}\n position={position}\n fileName={content.fileName}\n defaultCode={content.content ?? \"\"}\n isEditable={presentation.isEditable}\n showLineNumbers\n onChange={presentation.isEditable ? onChange : undefined}\n />\n </Box>\n </Flex>\n );\n }\n\n return (\n <Flex ref={rendererRef} direction=\"column\" h=\"full\" minH=\"0\" overflow=\"hidden\" bg=\"bg\">\n {errorNotice}\n {positionNotice}\n <Box flex=\"1\" minH=\"0\" overflowY=\"auto\">\n <MarkdownEditor\n key={editorKey}\n defaultState={content.content ?? \"\"}\n isEditable={presentation.isEditable}\n sectionNavigation={sectionNavigation}\n placeholder={presentation.isEditable ? (content.placeholder ?? \"Write…\") : undefined}\n onActiveSectionChange={onActiveSectionChange}\n onChange={presentation.isEditable ? onChange : undefined}\n />\n </Box>\n </Flex>\n );\n};\n","// Owns the editable file renderer's save lifecycle: the last loaded or saved\n// value (the baseline), the debounced draft, the one in-flight save, and\n// refresh events that arrive while a draft or save exists.\n//\n// Invariants (from the renderer edit/refresh lifecycle PRD):\n// - a change equal to the baseline never schedules a save\n// - at most one save runs at a time; the baseline advances when it succeeds\n// - a failed save keeps the draft so a later change or flush retries it\n// - refresh events are deferred while a draft or save exists and coalesce\n// into one reload after the last save settles\n\nimport type {\n FileRendererRefreshEnvelope,\n FileRendererRefreshOrigin,\n FileRendererSaveResult,\n} from \"../../../core/registries/renderers/file-renderer-registry\";\n\nexport interface FileEditControllerState {\n dirty: boolean;\n saving: boolean;\n saveError?: string;\n removed?: true;\n}\n\nexport interface FileEditControllerInput {\n binding: Omit<FileRendererRefreshOrigin, \"operationId\"> & { resourceKey?: string };\n debounceMs: number;\n load: (event?: FileRendererRefreshEnvelope) => void;\n save: (value: string, origin: FileRendererRefreshOrigin) => Promise<FileRendererSaveResult | undefined>;\n createOperationId?: () => string;\n onStateChange?: (state: FileEditControllerState) => void;\n}\n\nexport type FileEditController = ReturnType<typeof createFileEditController>;\n\nexport const createFileEditController = (input: FileEditControllerInput) => {\n let baseline: string | undefined;\n let removed = false;\n let baselineRevision: string | undefined;\n let draft: string | null = null;\n let activeSave: { value: string; origin: FileRendererRefreshOrigin } | null = null;\n let saveError: string | undefined;\n let deferredRevision: string | undefined;\n let genericRefreshDeferred = false;\n let timer: ReturnType<typeof setTimeout> | null = null;\n let operationSequence = 0;\n const seenRefreshRevisions = new Set<string>();\n const completedOperationIds = new Set<string>();\n\n const describeError = (error: unknown) => (error instanceof Error ? error.message : \"Failed to save file.\");\n const getState = (): FileEditControllerState => ({\n dirty: draft !== null || (activeSave !== null && activeSave.value !== baseline),\n saving: activeSave !== null,\n ...(saveError ? { saveError } : {}),\n ...(removed ? { removed: true as const } : {}),\n });\n const notify = () => input.onStateChange?.(getState());\n\n const clearTimer = () => {\n if (timer === null) return;\n clearTimeout(timer);\n timer = null;\n };\n\n const nextOperationId = () => input.createOperationId?.() ?? `file-save-${Date.now()}-${++operationSequence}`;\n\n const hasPendingLocalState = () => draft !== null || activeSave !== null || timer !== null || Boolean(saveError);\n\n const deferRefresh = (event: FileRendererRefreshEnvelope) => {\n if (event.revision && (!deferredRevision || event.revision.localeCompare(deferredRevision) > 0)) {\n deferredRevision = event.revision;\n }\n if (!event.revision) genericRefreshDeferred = true;\n };\n\n const isSelfRefresh = (event: FileRendererRefreshEnvelope) => {\n const operationId = event.origin?.operationId;\n if (!operationId) return false;\n if (event.origin?.rendererId !== input.binding.rendererId) return false;\n if (event.origin.instanceId !== input.binding.instanceId) return false;\n return activeSave?.origin.operationId === operationId || completedOperationIds.has(operationId);\n };\n\n const takeDeferredRefresh = (savedRevision?: string) => {\n if (draft !== null || activeSave) return;\n const revision = deferredRevision;\n const generic = genericRefreshDeferred;\n deferredRevision = undefined;\n genericRefreshDeferred = false;\n if (revision && (!savedRevision || revision.localeCompare(savedRevision) > 0)) {\n input.load({ resourceKey: input.binding.resourceKey, revision });\n return;\n }\n if (generic) input.load({ resourceKey: input.binding.resourceKey });\n };\n\n const runSave = () => {\n if (removed || draft === null || activeSave || saveError) return;\n const value = draft;\n draft = null;\n const origin = {\n rendererId: input.binding.rendererId,\n instanceId: input.binding.instanceId,\n operationId: nextOperationId(),\n };\n activeSave = { value, origin };\n notify();\n void Promise.resolve(input.save(value, origin))\n .then((result) => {\n if (activeSave?.origin.operationId !== origin.operationId) return;\n activeSave = null;\n completedOperationIds.add(origin.operationId);\n if (completedOperationIds.size > 20) completedOperationIds.delete(completedOperationIds.values().next().value!);\n baseline = value;\n baselineRevision = result?.revision ?? baselineRevision;\n if (draft === baseline) {\n draft = null;\n clearTimer();\n }\n notify();\n if (draft !== null) {\n schedule();\n return;\n }\n takeDeferredRefresh(result?.revision);\n })\n .catch((error) => {\n if (removed) return;\n if (activeSave?.origin.operationId !== origin.operationId) return;\n activeSave = null;\n if (draft === null) draft = value;\n saveError = describeError(error);\n notify();\n });\n };\n\n const schedule = () => {\n clearTimer();\n timer = setTimeout(() => {\n timer = null;\n runSave();\n }, input.debounceMs);\n };\n\n return {\n getDraft() {\n return draft ?? activeSave?.value ?? baseline;\n },\n markRemoved() {\n const retain = hasPendingLocalState();\n removed = true;\n draft = draft ?? activeSave?.value ?? null;\n activeSave = null;\n clearTimer();\n notify();\n return retain;\n },\n getBaseline() {\n return baseline;\n },\n getState,\n setBaseline(value: string | undefined, revision?: string) {\n baseline = value;\n baselineRevision = revision;\n notify();\n },\n // Takes a freshly loaded value as the new baseline and returns the value the\n // editor was showing, so the caller can tell whether the editor must show\n // something else. Returns null while pending local state must keep the\n // editor: the refresh is deferred until the save settles.\n acceptLoaded(value: string | undefined, revision?: string) {\n if (removed) return null;\n if (hasPendingLocalState()) {\n deferRefresh(revision ? { revision } : {});\n return null;\n }\n const shown = baseline;\n baseline = value;\n baselineRevision = revision;\n notify();\n return { shown };\n },\n handleChange(value: string) {\n if (removed) {\n draft = value;\n notify();\n return;\n }\n if (saveError && value === draft) return;\n saveError = undefined;\n if (value === baseline && !activeSave) {\n draft = null;\n clearTimer();\n notify();\n return;\n }\n if (activeSave?.value === value) {\n draft = null;\n clearTimer();\n notify();\n return;\n }\n draft = value;\n schedule();\n notify();\n },\n handleRefreshEvent(event: FileRendererRefreshEnvelope = {}) {\n if (removed) return;\n if (event.resourceKey && event.resourceKey !== input.binding.resourceKey) return;\n if (isSelfRefresh(event)) return;\n if (event.revision && seenRefreshRevisions.has(event.revision)) return;\n if (event.revision) seenRefreshRevisions.add(event.revision);\n if (hasPendingLocalState()) {\n deferRefresh(event);\n return;\n }\n if (event.revision && baselineRevision && event.revision.localeCompare(baselineRevision) <= 0) return;\n input.load(event);\n },\n retry() {\n if (!saveError || draft === null || activeSave) return;\n saveError = undefined;\n notify();\n runSave();\n },\n retryLoad() {\n if (removed) return;\n input.load({ resourceKey: input.binding.resourceKey });\n },\n flush() {\n clearTimer();\n runSave();\n },\n };\n};\n","import { Button, Flex, Text } from \"@chakra-ui/react\";\n\nexport const FileRendererErrorNotice = (props: { message: string; onRetry?: () => void }) => {\n const { message, onRetry } = props;\n return (\n <Flex\n flex=\"none\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap=\"sm\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.muted\"\n bg=\"bg.muted\"\n px=\"sm\"\n py=\"xs\"\n >\n <Text color=\"fg.muted\" textStyle=\"label/S/regular\">\n {message}\n </Text>\n {onRetry ? (\n <Button size=\"2xs\" variant=\"subtle\" onClick={onRetry}>\n Retry\n </Button>\n ) : null}\n </Flex>\n );\n};\n","import { resourceKey } from \"@pstdio/sdk/extensions\";\nimport type { ResourceRef } from \"../../../core\";\n\ninterface FileRendererLoadKeyInput {\n fileRendererId: string;\n resource: ResourceRef | undefined;\n}\nconst stableValue = (value: unknown): unknown => {\n if (Array.isArray(value)) return value.map(stableValue);\n if (!value || typeof value !== \"object\") return value;\n return Object.fromEntries(\n Object.entries(value as Record<string, unknown>)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([key, entry]) => [key, stableValue(entry)]),\n );\n};\nexport const createFileRendererLoadKey = (input: FileRendererLoadKeyInput) => {\n const { fileRendererId, resource } = input;\n const resourceValue = resource\n ? stableValue({\n id: resource.id,\n type: resource.type,\n metadata: resource.metadata,\n })\n : null;\n return `${JSON.stringify(resourceKey(resource))}:${fileRendererId}:${JSON.stringify(resourceValue)}`;\n};\nexport const isCurrentLoadedFile = (\n loaded: {\n loadKey: string;\n } | null,\n loadKey: string,\n) => loaded?.loadKey === loadKey;\n","import { Text } from \"@chakra-ui/react\";\nimport { Header, resolveFileIconElement, useFileIconThemePreference } from \"@pstdio/ui\";\n\nexport const FileRendererPathHeader = (props: { fileName: string; filePath: string }) => {\n const { fileName, filePath } = props;\n const { activeFileIconTheme } = useFileIconThemePreference();\n\n return (\n <Header variant=\"narrow\" flexShrink={0} gap=\"2xs\" bg=\"bg\">\n {resolveFileIconElement(fileName, { theme: activeFileIconTheme })}\n <Text aria-label={`File path ${filePath}`} textStyle=\"label/S/regular\" color=\"fg.muted\" truncate>\n {filePath}\n </Text>\n </Header>\n );\n};\n","import { Box, Button, Center, Flex, Spinner, Text } from \"@chakra-ui/react\";\nimport { type ResourceRef, resourceKey } from \"@pstdio/sdk/extensions\";\nimport { type ReactNode, useEffect, useLayoutEffect, useRef, useState } from \"react\";\nimport type { RegisteredFileRendererContribution, WorkbenchCore, WorkbenchPanelInstance } from \"../../../core\";\nimport { getWorkbenchRenderers, rendererReadKey } from \"../../../core\";\nimport {\n getFileSectionNavigation,\n resolveFileSectionTargetId,\n shouldClearFileSectionSelection,\n} from \"../../../core/registries/renderers/file-section-navigation\";\nimport { useWorkbenchStore } from \"../../shared/use-workbench-store\";\nimport { FileRendererContentView } from \"./file-renderer-content\";\nimport {\n createFileEditController,\n type FileEditController,\n type FileEditControllerState,\n} from \"./file-renderer-edit-state\";\nimport { FileRendererErrorNotice } from \"./file-renderer-error-notice\";\nimport { createFileRendererLoadKey, isCurrentLoadedFile } from \"./file-renderer-load-key\";\nimport {\n acceptFileRendererLoad,\n type LoadedFile,\n readCachedFileContent,\n storeCachedFileContent,\n} from \"./file-renderer-load-state\";\nimport { FileRendererPathHeader } from \"./file-renderer-path-header\";\n\ninterface WorkbenchFileRendererViewProps {\n workbench: WorkbenchCore;\n contribution: RegisteredFileRendererContribution;\n // The bound resource (e.g. the open ticket / ticket-file) the load/save\n // commands operate on.\n placement?: WorkbenchPanelInstance;\n}\nconst SAVE_DEBOUNCE_MS = 600;\nconst describeError = (error: unknown) => (error instanceof Error ? error.message : \"Failed to load file.\");\nconst syncActiveFileSection = (input: {\n workbench: WorkbenchCore;\n navigation: ReturnType<typeof getFileSectionNavigation>;\n sectionId: string | null;\n}) => {\n const { workbench, navigation, sectionId } = input;\n if (!navigation || !getWorkbenchRenderers(workbench).getTreeRenderer(navigation.treeId)) return;\n if (sectionId && navigation.anchors.some((anchor) => anchor.id === sectionId)) {\n getWorkbenchRenderers(workbench).setSelectedNode(navigation.treeId, sectionId);\n return;\n }\n const selectedNodeId = getWorkbenchRenderers(workbench).getTreeState(navigation.treeId).selectedNodeId;\n if (selectedNodeId && navigation.anchors.some((anchor) => anchor.id === selectedNodeId)) {\n getWorkbenchRenderers(workbench).setSelectedNode(navigation.treeId, undefined);\n }\n};\nconst getEditorSectionNavigation = (\n workbench: WorkbenchCore,\n navigation: ReturnType<typeof getFileSectionNavigation>,\n) => {\n if (!navigation) return undefined;\n const selectedNodeId = getWorkbenchRenderers(workbench).getTreeRenderer(navigation.treeId)\n ? getWorkbenchRenderers(workbench).getTreeState(navigation.treeId).selectedNodeId\n : undefined;\n return {\n anchors: navigation.anchors,\n targetId: resolveFileSectionTargetId(navigation, selectedNodeId),\n };\n};\nconst useFilePosition = (workbench: WorkbenchCore, resource?: ResourceRef) =>\n useWorkbenchStore(workbench.pages.store, (state) => {\n const location = state.location;\n if (!location?.position || resourceKey(location.resource) !== resourceKey(resource)) return undefined;\n const page = Object.values(state.pages).find(\n (page) => page.ref.id === location.page.id && page.ref.extensionId === location.page.extensionId,\n );\n const key = page?.document?.metadataKey;\n if (!key || location.resource?.metadata?.[key] !== resource?.metadata?.[key]) return undefined;\n return location.position;\n });\n\nconst FileRendererHeader = (props: { file: LoadedFile }) => {\n const { file } = props;\n return file.filePath ? (\n <FileRendererPathHeader fileName={file.fileName ?? file.filePath} filePath={file.filePath} />\n ) : null;\n};\n\nexport const WorkbenchFileRendererView = (props: WorkbenchFileRendererViewProps) => {\n const { workbench, contribution } = props;\n const resource = props.placement?.resource;\n const position = useFilePosition(workbench, resource);\n const sectionNavigation = getFileSectionNavigation(resource);\n const editorSectionNavigation = getEditorSectionNavigation(workbench, sectionNavigation);\n const loadKey = createFileRendererLoadKey({ fileRendererId: contribution.id, resource });\n const [loaded, setLoaded] = useState<LoadedFile | null>(null);\n const [error, setError] = useState<{\n loadKey: string;\n message: string;\n } | null>(null);\n const [editState, setEditState] = useState<FileEditControllerState>({ dirty: false, saving: false });\n const controllerRef = useRef<FileEditController | null>(null);\n const retryReadRef = useRef<(() => void) | undefined>(undefined);\n const rendererRef = useRef<HTMLDivElement>(null);\n const previousSectionNavigationRef = useRef<{\n resourceKey?: string;\n treeId: string;\n anchorIds: string[];\n } | null>(null);\n useEffect(() => {\n const previous = previousSectionNavigationRef.current;\n const selectedNodeId =\n previous && getWorkbenchRenderers(workbench).getTreeRenderer(previous.treeId)\n ? getWorkbenchRenderers(workbench).getTreeState(previous.treeId).selectedNodeId\n : undefined;\n if (\n shouldClearFileSectionSelection({\n previous,\n current: sectionNavigation,\n currentResourceKey: resourceKey(resource),\n selectedNodeId,\n }) &&\n previous\n ) {\n getWorkbenchRenderers(workbench).setSelectedNode(previous.treeId, undefined);\n }\n previousSectionNavigationRef.current = sectionNavigation\n ? {\n resourceKey: resourceKey(resource),\n treeId: sectionNavigation.treeId,\n anchorIds: sectionNavigation.anchors.map((anchor) => anchor.id),\n }\n : null;\n }, [resource, sectionNavigation, workbench]);\n // Contribution refresh re-registers an identical contribution as a new\n // object, and a save that changes the document title produces a new resource\n // object with a fresh label. The load key uses resource values instead of\n // object identity, while callbacks read the latest objects through refs.\n const contributionRef = useRef(contribution);\n const resourceRef = useRef(resource);\n const placementRef = useRef(props.placement);\n useEffect(() => {\n contributionRef.current = contribution;\n resourceRef.current = resource;\n placementRef.current = props.placement;\n });\n const contributionId = contribution.id;\n const hasSave = Boolean(contribution.save);\n const ownerKey = props.placement\n ? rendererReadKey(props.placement)\n : JSON.stringify([\"file\", contributionId, loadKey]);\n const instanceId = props.placement?.instanceId ?? contributionId;\n // Re-binding a singleton widget to another resource changes `resource` and reloads.\n useEffect(() => {\n let cancelled = false;\n let removed = false;\n const boundResource = resourceRef.current;\n const boundContribution = contributionRef.current;\n const read = workbench.views.reads.bind(ownerKey);\n let controller: FileEditController | null = null;\n setError(null);\n // A recently viewed document mounts immediately from the cache; the load\n // below reconciles it (unchanged content keeps the editor mounted).\n const cached = readCachedFileContent(loadKey);\n setLoaded(cached ? { ...cached, editorRevision: 1, loadKey } : null);\n const load = (reason: \"refresh\" | \"retry\" = \"refresh\") => {\n read.request(\n {\n queryKey: loadKey,\n load: (signal) => contributionRef.current.load(resourceRef.current, signal),\n onValue: (next) => {\n if (cancelled || removed) return;\n const updateLoaded = acceptFileRendererLoad(next, loadKey, controller);\n if (!updateLoaded) return;\n setError(null);\n setLoaded(updateLoaded);\n },\n onError: (loadError) => {\n if (cancelled || removed) return;\n setError({ loadKey, message: describeError(loadError) });\n },\n },\n reason,\n );\n };\n retryReadRef.current = () => load(\"retry\");\n controller = hasSave\n ? createFileEditController({\n binding: {\n rendererId: contributionId,\n instanceId,\n resourceKey: resourceKey(resourceRef.current),\n },\n debounceMs: SAVE_DEBOUNCE_MS,\n load: () => load(),\n onStateChange: (state) => {\n if (!cancelled) setEditState(state);\n },\n save: (value, origin) =>\n Promise.resolve(boundContribution.save?.(boundResource, value, origin)).then((result) => {\n const current = readCachedFileContent(loadKey);\n if (current && !removed) storeCachedFileContent(loadKey, { ...current, content: value });\n return result ?? undefined;\n }),\n })\n : null;\n controllerRef.current = controller;\n if (cached) controllerRef.current?.setBaseline(cached.content, cached.revision);\n setEditState({ dirty: false, saving: false });\n load();\n const removalSubscription = workbench.resources.onWillRemove((resource) => {\n if (resourceKey(resource) !== resourceKey(resourceRef.current)) return [];\n removed = true;\n const retain = controllerRef.current?.markRemoved();\n const identity = placementRef.current?.placementIdentity;\n return retain && identity ? [identity] : [];\n });\n const refreshSubscription = getWorkbenchRenderers(workbench).onDidRefreshFileRenderer((event) => {\n if (removed || event.fileRendererId !== contributionId) return;\n const controller = controllerRef.current;\n if (controller) controller.handleRefreshEvent(event);\n else load();\n });\n return () => {\n cancelled = true;\n read.dispose();\n retryReadRef.current = undefined;\n refreshSubscription.dispose();\n removalSubscription.dispose();\n // Flush the last keystrokes on unbind; the load callback above is\n // cancelled, so a deferred refresh cannot resurrect the old binding.\n controller?.flush();\n if (controllerRef.current === controller) controllerRef.current = null;\n };\n }, [contributionId, hasSave, workbench, loadKey, ownerKey, instanceId]);\n // The last keystrokes are also flushed when the tab is hidden or closed.\n useEffect(() => {\n const flush = () => controllerRef.current?.flush();\n const onVisibility = () => {\n if (document.visibilityState === \"hidden\") flush();\n };\n window.addEventListener(\"beforeunload\", flush);\n document.addEventListener(\"visibilitychange\", onVisibility);\n return () => {\n window.removeEventListener(\"beforeunload\", flush);\n document.removeEventListener(\"visibilitychange\", onVisibility);\n };\n }, []);\n const handleChange = (value: string) => {\n controllerRef.current?.handleChange(value);\n };\n const currentLoaded = isCurrentLoadedFile(loaded, loadKey) ? loaded : null;\n const scrollResetKey = currentLoaded ? `${currentLoaded.loadKey}:${currentLoaded.editorRevision}` : \"\";\n useLayoutEffect(() => {\n if (!scrollResetKey || sectionNavigation) return;\n const node = rendererRef.current;\n if (!node) return;\n requestAnimationFrame(() => {\n let current = node.parentElement;\n while (current) {\n const overflowY = getComputedStyle(current).overflowY;\n if ([\"auto\", \"scroll\", \"overlay\"].includes(overflowY) && current.scrollHeight > current.clientHeight) {\n current.scrollTop = 0;\n }\n current = current.parentElement;\n }\n });\n }, [scrollResetKey, sectionNavigation]);\n const loadError = error?.loadKey === loadKey ? error.message : undefined;\n if (loadError && !currentLoaded) {\n return (\n <Center h=\"full\" minH=\"0\" bg=\"bg\" p=\"md\" flexDirection=\"column\" gap=\"sm\">\n <Text color=\"fg.muted\">{loadError}</Text>\n <Button size=\"xs\" variant=\"subtle\" onClick={() => retryReadRef.current?.()}>\n Retry\n </Button>\n </Center>\n );\n }\n if (!currentLoaded) {\n return (\n <Center h=\"full\" minH=\"0\" bg=\"bg\">\n <Spinner size=\"sm\" />\n </Center>\n );\n }\n // The key must carry the document identity, not just the contribution: two\n // documents from the same renderer both start at revision 1, so keying on the\n // contribution alone reuses the editor and keeps showing the previous file.\n const editorKey = `${currentLoaded.loadKey}:${currentLoaded.editorRevision}`;\n let errorNotice: ReactNode = null;\n if (editState.removed) {\n errorNotice = (\n <FileRendererErrorNotice message=\"This resource was removed. Your draft is kept here. Copy it before closing this tab.\" />\n );\n } else if (loadError) {\n errorNotice = <FileRendererErrorNotice message={loadError} onRetry={() => retryReadRef.current?.()} />;\n } else if (editState.saveError) {\n errorNotice = (\n <FileRendererErrorNotice message={editState.saveError} onRetry={() => controllerRef.current?.retry()} />\n );\n }\n return (\n <Flex direction=\"column\" h=\"full\" minH=\"0\" bg=\"bg\">\n <FileRendererHeader file={currentLoaded} />\n <Box flex=\"1\" minH=\"0\">\n <FileRendererContentView\n content={currentLoaded}\n position={position}\n editorKey={editorKey}\n errorNotice={errorNotice}\n contributionCanSave={Boolean(contribution.save)}\n onActiveSectionChange={\n sectionNavigation\n ? (sectionId) => syncActiveFileSection({ workbench, navigation: sectionNavigation, sectionId })\n : undefined\n }\n onChange={handleChange}\n rendererRef={rendererRef}\n sectionNavigation={editorSectionNavigation}\n title={contribution.title}\n />\n </Box>\n </Flex>\n );\n};\n"],"mappings":";;;;;;;;;;;AAEA,IAAaC,IAAuC,gCAc9CS,KAAYC,MAA+C;CAC/D,IAAI,CAACA,KAAS,OAAOA,KAAU,UAAU,OAAO;CAChD,IAAMC,IAASD,GACTG,IACJF,EAAOP,eAAeU,KAAAA,KACrB,OAAOH,EAAOP,cAAe,YAAYW,OAAOC,UAAUL,EAAOP,UAAU,KAAKO,EAAOP,cAAc;CACxG,OAAO,OAAOO,EAAOT,MAAO,YAAY,OAAOS,EAAOR,WAAY,YAAYU;AAChF,GAEaI,KAA4BC,MAAyE;CAChH,IAAMR,IAAQQ,GAAUC,WAAWnB;CACnC,IAAI,CAACU,KAAS,OAAOA,KAAU,UAAU;CACzC,IAAMU,IAAaV;CACnB,IAAI,OAAOU,EAAWd,UAAW,YAAY,OAAOc,EAAWb,gBAAiB,YAC3Ec,MAAMC,QAAQF,EAAWZ,OAAO,KAAMY,EAAWZ,QAAQe,MAAMd,CAAQ,GAE5E,OAAO;EACLH,QAAQc,EAAWd;EACnBC,cAAca,EAAWb;EACzBC,SAASY,EAAWZ;CACtB;AACF,GAEagB,KAA8BJ,GAAmCK,MACxEA,KAAkBL,EAAWZ,QAAQkB,MAAMf,MAAWA,EAAOT,OAAOuB,CAAc,IAAUA,IACzFL,EAAWb,cASPuB,KAAmCC,MAK1C;CACJ,IAAM,EAAEC,aAAUC,YAASC,uBAAoBT,sBAAmBM;CAIlE,OAHI,CAACC,KAAY,CAACP,KAAkB,CAACO,EAASH,UAAUM,SAASV,CAAc,KAC3EQ,GAAS1B,iBAAiBkB,IAAuB,KAE9C,CAACQ,KAAWD,EAAS1B,WAAW2B,EAAQ3B,UAAU0B,EAASJ,gBAAgBM;AACpF,GCtDMG,qBAAmB,IAAIC,IAAI;CAAC;CAAO;CAAO;CAAQ;CAAO;CAAQ;CAAO;CAAQ;CAAO;AAAK,CAAC,GAC7FC,oBAAmB,IAAID,IAAI;CAAC;CAAM;CAAY;AAAK,CAAC,GAIpDE,IAAqD;CACzDE,IAAI;CACJC,KAAK;CACLC,IAAI;CACJC,KAAK;CACLC,KAAK;CACLC,KAAK;CACLC,MAAM;CACNC,OAAO;CACPC,IAAI;CACJC,IAAI;CACJC,IAAI;CACJC,IAAI;CACJC,MAAM;CACNC,IAAI;CACJC,GAAG;CACHC,GAAG;CACHC,KAAK;CACLC,IAAI;CACJC,KAAK;CACLC,IAAI;CACJC,KAAK;CACLC,OAAO;CACPC,IAAI;CACJC,MAAM;CACNC,KAAK;CACLC,KAAK;CACLC,KAAK;CACLC,MAAM;CACNC,MAAM;CACNC,MAAM;CACNC,KAAK;CACLC,KAAK;CACLC,MAAM;CACNC,MAAM;CACNC,KAAK;CACLC,YAAY;CACZC,SAAS;CACTC,KAAK;CACLC,IAAI;CACJC,UAAU;CACVC,KAAK;AACP,GAEMC,KAAeC,MAAiC;CACpD,IAAI,CAACA,GAAU,OAAO;CACtB,IAAMC,IAAMD,EAASE,YAAY,GAAG;CAEpC,OADID,IAAM,KAAKA,MAAQD,EAASG,SAAS,IAAU,KAC5CH,EAASI,MAAMH,IAAM,CAAC,CAAC,CAACI,YAAY;AAC7C,GAEMC,KAAWN,GAA8BO,MACzCA,GAAUC,WAAW,QAAQ,IAAU,KACpCvD,GAAiBwD,IAAIV,EAAYC,CAAQ,CAAC,GAGtCU,KAAgBV,GAA8BO,MAA2C;CACpG,IAAID,EAAQN,GAAUO,CAAQ,GAAG,OAAO;CACxC,IAAMI,IAAYZ,EAAYC,CAAQ;CAEtC,OADI,CAAC7C,EAAiBsD,IAAIE,CAAS,KAAKA,KAAavD,IAAmC,SACjF;AACT,GAGawD,KAAmBZ,MAC9B5C,EAA2B2C,EAAYC,CAAQ,MAAM,aCpE1CoB,MACXC,GACAC,MAC6B;CAC7B,IAAID,EAAQE,YAAY,OAAO;EAAEN,MAAM;EAASC,YAAY;CAAM;CAElE,IAAMM,IAAgBT,EAAaM,EAAQI,UAAUJ,EAAQK,QAAQ;CACrE,IAAIF,MAAkB,SAAS,OAAO;EAAEP,MAAM;EAASC,YAAY;CAAM;CAEzE,IAAMA,IAAaI,KAAuBD,EAAQM,aAAa;CAI/D,OAHIH,MAAkB,UAAUH,EAAQO,iBAAiB,WAChD;EAAEX,MAAM;EAAQC;EAAYC,UAAUL,EAAgBO,EAAQI,QAAQ;CAAE,IAE1E;EAAER,MAAM;EAAYC;CAAW;AACxC,GCEa6C,MAA0BC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACrC,EAAAtB,YAAAC,aAAAC,cAAAC,gBAAAC,wBAAAC,0BAAAE,aAAAE,gBAAAE,sBAAAO,aAWIE,GAAMG;CAAA,AAAAF,EAAA,OAAArB,KAAAqB,EAAA,OAAAjB,KACWmB,IAAAzB,GAAgCE,GAASI,CAAmB,GAACiB,EAAA,KAAArB,GAAAqB,EAAA,KAAAjB,GAAAiB,EAAA,KAAAE,KAAAA,IAAAF,EAAA;CAAlF,IAAAG,IAAqBD,GAA8DE;CAAA,AAAAJ,EAAA,OAAApB,KAAAoB,EAAA,OAAAG,EAAAE,QAEjFD,IAAAxB,KAAYuB,EAAYE,SAAU,UAAUF,EAAYE,SAAU,UAChE,kBAACwa,GAAD;EAAqB,QAAA;EAAa,OAAA;EAA8B,UAAA;CAAnD,CAAA,IADf,MAIQ7a,EAAA,KAAApB,GAAAoB,EAAA,KAAAG,EAAAE,MAAAL,EAAA,KAAAI,KAAAA,IAAAJ,EAAA;CALV,IAAAM,IACEF;CAMF,IAAID,EAAYE,SAAU,SAAO;EAQlB,IAAAE,IAAA5B,EAAO6B,YAAkBX,SAAzB,iBACMY,IAAA9B,EAAO6B,YAAwBE,aAAAC;EAAA,AAAAX,EAAA,OAAAO,KAAAP,EAAA,OAAAS,KAJ9CE,IAAA,kBAACua,GAAD;GACO,MAAA;GACA,MAAA;GACE,OAAA3a;GACM,aAAAE;EAA+B,CAAA,GAC5CT,EAAA,KAAAO,GAAAP,EAAA,KAAAS,GAAAT,EAAA,KAAAW,KAAAA,IAAAX,EAAA;EAAA,IAAAY;EACG,OADHZ,EAAA,OAAAlB,KAAAkB,EAAA,QAAAM,KAAAN,EAAA,QAAAW,KARJC,IAAA,kBAACya,GAAD;GAAgB,WAAA;GAAW,GAAA;GAAY,MAAA;GAAO,IAAA;GAA9C,UAAA;IACGvc;IACAwB;IACDK;GAHG;MASEX,EAAA,KAAAlB,GAAAkB,EAAA,MAAAM,GAAAN,EAAA,MAAAW,GAAAX,EAAA,MAAAY,KAAAA,IAAAZ,EAAA,KATPY;CASO;CAIX,IAAIT,EAAYE,SAAU,SAAO;EAC/B,IAAI,CAAC1B,EAAOkC,SAAQ;GAAA,IAAAN;GAIP,OAJOP,EAAA,QAAAc,OAAAC,IAAA,2BAAA,KAEhBR,IAAA,kBAAC+a,GAAD;IAAU,GAAA;IAAY,MAAA;IAAO,IAAA;IAAO,GAAA;IAClC,UAAA,kBAACC,GAAD;KAAY,OAAA;KAAW,UAAA;IAAlB,CAAA;GADA,CAAA,GAEEvb,EAAA,MAAAO,KAAAA,IAAAP,EAAA,KAFTO;EAES;EAQ2B,IAAAA,IAAA5B,EAAOqC,YAAPnB,GAAyBY;EAAA,AAAAT,EAAA,QAAArB,EAAAkC,WAAAb,EAAA,QAAAO,KAA3DE,IAAA,kBAACgb,GAAD;GAAY,KAAA9c,EAAOkC;GAAe,KAAAN;GAAgC,MAAA;GAAY,MAAA;GAAiB,WAAA;EAAS,CAAA,GAAGP,EAAA,MAAArB,EAAAkC,SAAAb,EAAA,MAAAO,GAAAP,EAAA,MAAAS,KAAAA,IAAAT,EAAA;EAAA,IAAAW;EAAA,AAAAX,EAAA,QAAAZ,KAAAY,EAAA,QAAAS,KAD7GE,IAAA,kBAAC2a,GAAD;GAAalc,KAAAA;GAAkB,MAAA;GAAS,MAAA;GAAM,GAAA;GAAc,UAAA;GAC1DqB,UAAAA;EADK,CAAA,GAEET,EAAA,MAAAZ,GAAAY,EAAA,MAAAS,GAAAT,EAAA,MAAAW,KAAAA,IAAAX,EAAA;EAAA,IAAAY;EACJ,OADIZ,EAAA,QAAAlB,KAAAkB,EAAA,QAAAM,KAAAN,EAAA,QAAAW,KALXC,IAAA,kBAACya,GAAD;GAAgB,WAAA;GAAW,GAAA;GAAY,MAAA;GAAO,IAAA;GAA9C,UAAA;IACGvc;IACAwB;IACDK;GAHG;MAMEX,EAAA,MAAAlB,GAAAkB,EAAA,MAAAM,GAAAN,EAAA,MAAAW,GAAAX,EAAA,MAAAY,KAAAA,IAAAZ,EAAA,KANPY;CAMO;CAIX,IAAIT,EAAYE,SAAU,QAAM;EAWT,IAAAE,IAAA5B,EAAOA,WAAP,IAGH8B,IAAAN,EAAYc,aAAZ/B,IAAAgC,KAAAA,GAA8CP;EAAA,AAAAX,EAAA,QAAArB,EAAAqC,YAAAhB,EAAA,QAAAnB,KAAAmB,EAAA,QAAApB,KAAAoB,EAAA,QAAAG,EAAAc,cAAAjB,EAAA,QAAAG,EAAAgB,YAAAnB,EAAA,QAAAO,KAAAP,EAAA,QAAAS,KAT5DE,IAAA,kBAACkb,GAAD;GAAU,MAAA;GAAS,MAAA;GACjB,UAAA,kBAACC,GAAD;IAEY,UAAA3b,EAAYgB;IACZvC;IACA,UAAAD,EAAOqC;IACJ,aAAAT;IACD,YAAAJ,EAAYc;IACxB,iBAAA;IACU,UAAAR;GAA8C,GAPnD5B,CAOmD;EATxD,CAAA,GAWEmB,EAAA,MAAArB,EAAAqC,UAAAhB,EAAA,MAAAnB,GAAAmB,EAAA,MAAApB,GAAAoB,EAAA,MAAAG,EAAAc,YAAAjB,EAAA,MAAAG,EAAAgB,UAAAnB,EAAA,MAAAO,GAAAP,EAAA,MAAAS,GAAAT,EAAA,MAAAW,KAAAA,IAAAX,EAAA;EAAA,IAAAY;EACD,OADCZ,EAAA,QAAAlB,KAAAkB,EAAA,QAAAM,KAAAN,EAAA,QAAAW,KAdRC,IAAA,kBAACya,GAAD;GAAgB,WAAA;GAAW,GAAA;GAAY,MAAA;GAAO,IAAA;GAA9C,UAAA;IACGvc;IACAwB;IACDK;GAHG;MAeEX,EAAA,MAAAlB,GAAAkB,EAAA,MAAAM,GAAAN,EAAA,MAAAW,GAAAX,EAAA,MAAAY,KAAAA,IAAAZ,EAAA,KAfPY;CAeO;CAWW,IAAAL,IAAA5B,EAAOA,WAAP,IAGD8B,IAAAN,EAAYc,aAAetC,EAAOyC,eAAP,WAA3BF,KAAAA,GAEHP,IAAAR,EAAYc,aAAZ/B,IAAAgC,KAAAA,GAA8CN;CAAA,AAAAZ,EAAA,QAAAnB,KAAAmB,EAAA,QAAAhB,KAAAgB,EAAA,QAAAG,EAAAc,cAAAjB,EAAA,QAAAV,KAAAU,EAAA,QAAAO,KAAAP,EAAA,QAAAS,KAAAT,EAAA,QAAAW,KAR5DC,IAAA,kBAACib,GAAD;EAAU,MAAA;EAAS,MAAA;EAAc,WAAA;EAC/B,UAAA,kBAACI,IAAD;GAEgB,cAAA1b;GACF,YAAAJ,EAAYc;GACL3B;GACN,aAAAmB;GACUzB;GACb,UAAA2B;EAA8C,GANnD9B,CAMmD;CARxD,CAAA,GAUEmB,EAAA,MAAAnB,GAAAmB,EAAA,MAAAhB,GAAAgB,EAAA,MAAAG,EAAAc,YAAAjB,EAAA,MAAAV,GAAAU,EAAA,MAAAO,GAAAP,EAAA,MAAAS,GAAAT,EAAA,MAAAW,GAAAX,EAAA,MAAAY,KAAAA,IAAAZ,EAAA;CAAA,IAAAqB;CACD,OADCrB,EAAA,QAAAlB,KAAAkB,EAAA,QAAAM,KAAAN,EAAA,QAAAZ,KAAAY,EAAA,QAAAY,KAbRS,IAAA,kBAACga,GAAD;EAAWjc,KAAAA;EAAuB,WAAA;EAAW,GAAA;EAAY,MAAA;EAAa,UAAA;EAAY,IAAA;EAAlF,UAAA;GACGN;GACAwB;GACDM;EAHG;KAcEZ,EAAA,MAAAlB,GAAAkB,EAAA,MAAAM,GAAAN,EAAA,MAAAZ,GAAAY,EAAA,MAAAY,GAAAZ,EAAA,MAAAqB,KAAAA,IAAArB,EAAA,KAdPqB;AAcO,GCjFE0B,MAA4BC,MAAmC;CAC1E,IAAIC,GACAnB,IAAU,IACVoB,GACAC,IAAuB,MACvBC,IAA0E,MAC1EvB,GACAwB,GACAC,IAAyB,IACzBC,IAA8C,MAC9CE,IAAoB,GAClBC,oBAAuB,IAAIC,IAAY,GACvCC,oBAAwB,IAAID,IAAY,GAExCE,KAAiBC,MAAoBA,aAAiBC,QAAQD,EAAME,UAAU,wBAC9EC,WAA2C;EAC/CtC,OAAOwB,MAAU,QAASC,MAAe,QAAQA,EAAWb,UAAUU;EACtErB,QAAQwB,MAAe;EACvB,GAAIvB,IAAY,EAAEA,aAAU,IAAI,CAAC;EACjC,GAAIC,IAAU,EAAEA,SAAS,GAAc,IAAI,CAAC;CAC9C,IACMqC,UAAenB,EAAML,gBAAgBsB,EAAS,CAAC,GAE/CG,UAAmB;EACvB,AAAIb,MAAU,SACdc,aAAad,CAAK,GAClBA,IAAQ;CACV,GAEMe,UAAwBtB,EAAMN,oBAAoB,KAAK,aAAa6B,KAAKC,IAAI,EAAC,GAAI,EAAEf,KAEpFgB,UAA6BtB,MAAU,QAAQC,MAAe,QAAQG,MAAU,QAAQmB,EAAQ7C,GAEhG8C,KAAgBtC,MAAuC;EAI3D,AAHIA,EAAMuC,aAAa,CAACvB,KAAoBhB,EAAMuC,SAASC,cAAcxB,CAAgB,IAAI,OAC3FA,IAAmBhB,EAAMuC,WAEtBvC,EAAMuC,aAAUtB,IAAyB;CAChD,GAEMwB,KAAiBzC,MAAuC;EAC5D,IAAM0C,IAAc1C,EAAMG,QAAQuC;EAIlC,OAHI,CAACA,KACD1C,EAAMG,QAAQwC,eAAehC,EAAMhB,QAAQgD,cAC3C3C,EAAMG,OAAOyC,eAAejC,EAAMhB,QAAQiD,aAAmB,KAC1D7B,GAAYZ,OAAOuC,gBAAgBA,KAAenB,EAAsBsB,IAAIH,CAAW;CAChG,GAEMI,KAAuBC,MAA2B;EACtD,IAAIjC,MAAU,QAAQC,GAAY;EAClC,IAAMwB,IAAWvB,GACXgC,IAAU/B;EAGhB,IAFAD,IAAmBiC,KAAAA,GACnBhC,IAAyB,IACrBsB,MAAa,CAACQ,KAAiBR,EAASC,cAAcO,CAAa,IAAI,IAAI;GAC7EpC,EAAMZ,KAAK;IAAEF,aAAac,EAAMhB,QAAQE;IAAa0C;GAAS,CAAC;GAC/D;EACF;EACA,AAAIS,KAASrC,EAAMZ,KAAK,EAAEF,aAAac,EAAMhB,QAAQE,YAAY,CAAC;CACpE,GAEMqD,UAAgB;EACpB,IAAIzD,KAAWqB,MAAU,QAAQC,KAAcvB,GAAW;EAC1D,IAAMU,IAAQY;EACdA,IAAQ;EACR,IAAMX,IAAS;GACbwC,YAAYhC,EAAMhB,QAAQgD;GAC1BC,YAAYjC,EAAMhB,QAAQiD;GAC1BF,aAAaT,EAAgB;EAC/B;EAGA,AAFAlB,IAAa;GAAEb;GAAOC;EAAO,GAC7B2B,EAAO,GACP,QAAaqB,QAAQxC,EAAMV,KAAKC,GAAOC,CAAM,CAAC,CAAC,CAC5CiD,MAAMC,MAAW;GAChB,IAAItC,GAAYZ,OAAOuC,gBAAgBvC,EAAOuC,aAW9C;QAVA3B,IAAa,MACbQ,EAAsB+B,IAAInD,EAAOuC,WAAW,GACxCnB,EAAsBgC,OAAO,MAAIhC,EAAsBiC,OAAOjC,EAAsBkC,OAAO,CAAC,CAACC,KAAK,CAAC,CAACxD,KAAM,GAC9GU,IAAWV,GACXW,IAAmBwC,GAAQd,YAAY1B,GACnCC,MAAUF,MACZE,IAAQ,MACRiB,EAAW,IAEbD,EAAO,GACHhB,MAAU,MAAM;KAClB6C,EAAS;KACT;IACF;IACAb,EAAoBO,GAAQd,QAAQ;GADpC;EAEF,CAAC,CAAC,CACDqB,OAAOnC,MAAU;GAChB,AAAIhC,KACAsB,GAAYZ,OAAOuC,gBAAgBvC,EAAOuC,gBAC9C3B,IAAa,MACTD,MAAU,SAAMA,IAAQZ,IAC5BV,IAAYgC,EAAcC,CAAK,GAC/BK,EAAO;EACT,CAAC;CACL,GAEM6B,UAAiB;EAErBzC,AADAa,EAAW,GACXb,IAAQC,iBAAiB;GAEvB+B,AADAhC,IAAQ,MACRgC,EAAQ;EACV,GAAGvC,EAAMb,UAAU;CACrB;CAEA,OAAO;EACL+D,WAAW;GACT,OAAO/C,KAASC,GAAYb,SAASU;EACvC;EACAkD,cAAc;GACZ,IAAMC,IAAS3B,EAAqB;GAMpC,OALA3C,IAAU,IACVqB,IAAQA,KAASC,GAAYb,SAAS,MACtCa,IAAa,MACbgB,EAAW,GACXD,EAAO,GACAiC;EACT;EACAC,cAAc;GACZ,OAAOpD;EACT;EACAgB;EACAqC,YAAY/D,GAA2BqC,GAAmB;GAGxDT,AAFAlB,IAAWV,GACXW,IAAmB0B,GACnBT,EAAO;EACT;EAKAoC,aAAahE,GAA2BqC,GAAmB;GACzD,IAAI9C,GAAS,OAAO;GACpB,IAAI2C,EAAqB,GAEvB,OADAE,EAAaC,IAAW,EAAEA,YAAS,IAAI,CAAC,CAAC,GAClC;GAET,IAAM4B,IAAQvD;GAId,OAHAA,IAAWV,GACXW,IAAmB0B,GACnBT,EAAO,GACA,EAAEqC,SAAM;EACjB;EACAC,aAAalE,GAAe;GAC1B,IAAIT,GAAS;IAEXqC,AADAhB,IAAQZ,GACR4B,EAAO;IACP;GACF;GACA,IAAItC,OAAaU,MAAUY,IAE3B;QADAtB,IAAYyD,KAAAA,GACR/C,MAAUU,KAAY,CAACG,GAAY;KAGrCe,AAFAhB,IAAQ,MACRiB,EAAW,GACXD,EAAO;KACP;IACF;IACA,IAAIf,GAAYb,UAAUA,GAAO;KAG/B4B,AAFAhB,IAAQ,MACRiB,EAAW,GACXD,EAAO;KACP;IACF;IAGAA,AAFAhB,IAAQZ,GACRyD,EAAS,GACT7B,EAAO;GATP;EAUF;EACAuC,mBAAmBrE,IAAqC,CAAC,GAAG;GAC1D,IAAIP,MACAO,IAAMH,eAAeG,EAAMH,gBAAgBc,EAAMhB,QAAQE,gBACzD4C,GAAczC,CAAK,KACnBA,IAAMuC,YAAYlB,EAAqBwB,IAAI7C,EAAMuC,QAAQ,IAE7D;QADIvC,EAAMuC,YAAUlB,EAAqBiC,IAAItD,EAAMuC,QAAQ,GACvDH,EAAqB,GAAG;KAC1BE,EAAatC,CAAK;KAClB;IACF;IACA,AAAIA,EAAMuC,YAAY1B,KAAoBb,EAAMuC,SAASC,cAAc3B,CAAgB,KAAK,KAC5FF,EAAMZ,KAAKC,CAAK;GAFhB;EAGF;EACAsE,QAAQ;GACN,AAAK9E,KAAasB,MAAU,QAAQC,OACpCvB,IAAYyD,KAAAA,GACZnB,EAAO,GACPoB,EAAQ;EACV;EACAqB,YAAY;GACV,AAAI9E,KACJkB,EAAMZ,KAAK,EAAEF,aAAac,EAAMhB,QAAQE,YAAY,CAAC;EACvD;EACA2E,QAAQ;GAENtB,AADAnB,EAAW,GACXmB,EAAQ;EACV;CACF;AACF,GCxOa0B,MAA0BC,MAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GACrC,EAAAC,YAAAC,eAA6BJ,GAAMK;CAAA,AAAAJ,EAAA,OAAAE,IAexBE,IAAAJ,EAAA,MAFPI,IAAA,kBAACgU,GAAD;EAAY,OAAA;EAAqB,WAAA;EAC9BlU,UAAAA;CADE,CAAA,GAEEF,EAAA,KAAAE,GAAAF,EAAA,KAAAI;CAAA,IAAAC;CAAA,AAAAL,EAAA,OAAAG,IAKCE,IAAAL,EAAA,MAJPK,IAAAF,IACC,kBAACkX,GAAD;EAAa,MAAA;EAAc,SAAA;EAAkBlX,SAAAA;EAAS,UAAA;CAA/C,CAAA,IADR,MAIOH,EAAA,KAAAG,GAAAH,EAAA,KAAAK;CAAA,IAAAC;CACH,OADGN,EAAA,OAAAI,KAAAJ,EAAA,OAAAK,KAlBVC,IAAA,kBAAC4T,GAAD;EACO,MAAA;EACM,YAAA;EACI,gBAAA;EACX,KAAA;EACc,mBAAA;EACN,aAAA;EACT,IAAA;EACA,IAAA;EACA,IAAA;EATL,UAAA,CAWE9T,GAGCC,CAdE;KAmBEL,EAAA,KAAAI,GAAAJ,EAAA,KAAAK,GAAAL,EAAA,KAAAM,KAAAA,IAAAN,EAAA,IAnBPM;AAmBO,GCjBLO,KAAeC,MACfC,MAAMC,QAAQF,CAAK,IAAUA,EAAMG,IAAIJ,CAAW,IAClD,CAACC,KAAS,OAAOA,KAAU,WAAiBA,IACzCI,OAAOC,YACZD,OAAOE,QAAQN,CAAgC,CAAC,CAC7CQ,MAAM,CAACC,IAAO,CAACC,OAAWD,EAAKE,cAAcD,CAAK,CAAC,CAAC,CACpDP,KAAK,CAACS,GAAKC,OAAW,CAACD,GAAKb,EAAYc,CAAK,CAAC,CAAC,CACpD,GAEWC,MAA6BC,MAAoC;CAC5E,IAAM,EAAElB,mBAAgBC,gBAAaiB,GAC/BC,IAAgBlB,IAClBC,EAAY;EACVkB,IAAInB,EAASmB;EACbC,MAAMpB,EAASoB;EACfC,UAAUrB,EAASqB;CACrB,CAAC,IACD;CACJ,OAAO,GAAGC,KAAKC,UAAU3B,EAAYI,CAAQ,CAAC,EAAC,GAAID,EAAc,GAAIuB,KAAKC,UAAUL,CAAa;AACnG,GACaM,MACXC,GAGAC,MACGD,GAAQC,YAAYA,GC7BZK,KAAyBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GACpC,EAAAC,aAAAC,gBAA+BJ,GAC/B,EAAAK,2BAAgCP,EAA2B,GAAEQ;CAAA,AAAAL,EAAA,OAAAI,KAAAJ,EAAA,OAAAE,KAIxDG,IAAAT,EAAuBM,GAAU,EAAAI,OAASF,EAAoB,CAAC,GAACJ,EAAA,KAAAI,GAAAJ,EAAA,KAAAE,GAAAF,EAAA,KAAAK,KAAAA,IAAAL,EAAA;CAC/C,IAAAO,IAAA,aAAaJ,KAAUK;CAAA,AAAAR,EAAA,OAAAG,KAAAH,EAAA,OAAAO,KAAzCC,IAAA,kBAAC+Q,GAAD;EAAkB,cAAAhR;EAAmC,WAAA;EAAwB,OAAA;EAAW,UAAA;EACrFJ,UAAAA;CADE,CAAA,GAEEH,EAAA,KAAAG,GAAAH,EAAA,KAAAO,GAAAP,EAAA,KAAAQ,KAAAA,IAAAR,EAAA;CAAA,IAAAS;CACA,OADAT,EAAA,OAAAK,KAAAL,EAAA,OAAAQ,KAJTC,IAAA,kBAACiV,GAAD;EAAgB,SAAA;EAAqB,YAAA;EAAO,KAAA;EAAS,IAAA;EAArD,UAAA,CACGrV,GACDG,CAFK;KAKER,EAAA,KAAAK,GAAAL,EAAA,KAAAQ,GAAAR,EAAA,KAAAS,KAAAA,IAAAT,EAAA,IALTS;AAKS,GCqBPwC,KAAmB,KACnBC,MAAiBC,MAAoBA,aAAiBC,QAAQD,EAAME,UAAU,wBAC9EC,MAAyBC,MAIzB;CACJ,IAAM,EAAET,cAAWU,eAAYE,iBAAcH;CAC7C,IAAI,CAACC,KAAc,CAAC7B,EAAsBmB,CAAS,CAAC,CAACa,gBAAgBH,EAAWI,MAAM,GAAG;CACzF,IAAIF,KAAaF,EAAWK,QAAQC,MAAMC,MAAWA,EAAOC,OAAON,CAAS,GAAG;EAC7E/B,EAAsBmB,CAAS,CAAC,CAACmB,gBAAgBT,EAAWI,QAAQF,CAAS;EAC7E;CACF;CACA,IAAMQ,IAAiBvC,EAAsBmB,CAAS,CAAC,CAACqB,aAAaX,EAAWI,MAAM,CAAC,CAACM;CACxF,AAAIA,KAAkBV,EAAWK,QAAQC,MAAMC,MAAWA,EAAOC,OAAOE,CAAc,KACpFvC,EAAsBmB,CAAS,CAAC,CAACmB,gBAAgBT,EAAWI,QAAQQ,KAAAA,CAAS;AAEjF,GACMC,MACJvB,GACAU,MACG;CACH,IAAI,CAACA,GAAY;CACjB,IAAMU,IAAiBvC,EAAsBmB,CAAS,CAAC,CAACa,gBAAgBH,EAAWI,MAAM,IACrFjC,EAAsBmB,CAAS,CAAC,CAACqB,aAAaX,EAAWI,MAAM,CAAC,CAACM,iBACjEE,KAAAA;CACJ,OAAO;EACLP,SAASL,EAAWK;EACpBS,UAAUxC,EAA2B0B,GAAYU,CAAc;CACjE;AACF,GACMK,MAAkBzB,GAAA0B,MAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAAAC;CAUrB,OAVqBF,EAAA,OAAAD,IAUrBG,IAAAF,EAAA,MATwCE,KAAAC,MAAA;EACvC,IAAAC,IAAiBD,EAAKC;EACtB,IAAI,CAACA,GAAQC,YAAc5D,EAAY2D,EAAQL,QAAS,MAAMtD,EAAYsD,CAAQ,GAAC;EAInF,IAAAe,IAHaP,OAAMC,OAAQL,EAAKM,KAAM,CAAC,CAAAC,MACrCC,MAAUA,EAAIC,IAAIrB,OAAQa,EAAQO,KAAKpB,MAAOoB,EAAIC,IAAIC,gBAAiBT,EAAQO,KAAKE,WAE1EF,CAAAA,EAAII,UAAuBC;EACvC,IAAKF,KAAOV,EAAQL,UAAmBkB,WAAGH,OAASf,GAAQkB,WAAaH,IAAuB,OACxFV,EAAQC;CAAS,GACzBL,EAAA,KAAAD,GAAAC,EAAA,KAAAE,IATD3C,EAAkBc,EAASoC,MAAMS,OAAQhB,CASxC;AAAC,GAEEiB,MAAqBC,MAAA;CAAA,IAAApB,IAAAC,EAAA,CAAA,GACzB,EAAAoB,YAAiBD,GAAMlB;CAGf,OAHeF,EAAA,OAAAqB,EAAAC,YAAAtB,EAAA,OAAAqB,EAAAE,YAChBrB,IAAAmB,EAAIE,WACT,kBAACqP,GAAD;EAAkC,UAAAvP,EAAIC,YAAaD,EAAIE;EAAqB,UAAAF,EAAIE;CAAS,CAAA,IADpF,MAECvB,EAAA,KAAAqB,EAAAC,UAAAtB,EAAA,KAAAqB,EAAAE,UAAAvB,EAAA,KAAAE,KAAAA,IAAAF,EAAA,IAFDE;AAEC,GAGGsB,KAA4BJ,MAAA;CAAA,IAAApB,IAAAC,EAAA,EAAA,GACvC,EAAA5B,cAAAC,oBAAoC8C,GACpCrB,IAAiBqB,EAAK7C,WAAoBwB,UAC1CM,IAAiBP,GAAgBzB,GAAW0B,CAAQ,GAAE0B,GAAAvB;CAAA,AAAAF,EAAA,OAAAD,KAAAC,EAAA,OAAA3B,KACtDoD,IAA0BrE,EAAyB2C,CAAQ,GAC3BG,IAAAN,GAA2BvB,GAAWoD,CAAiB,GAACzB,EAAA,KAAAD,GAAAC,EAAA,KAAA3B,GAAA2B,EAAA,KAAAyB,GAAAzB,EAAA,KAAAE,MAAAuB,IAAAzB,EAAA,IAAAE,IAAAF,EAAA;CAAxF,IAAA0B,KAAgCxB,GAChCyB,IAAgB9D,GAA0B;EAAA+D,gBAAkBtD,EAAYiB;EAAGQ;CAAW,CAAC,GACvF,CAAA8B,GAAAC,KAA4BhF,EAA4B,IAAI,GAC5D,CAAA4B,IAAAqD,KAA0BjF,EAGhB,IAAI,GAAEkF;CAAA,AAAAhC,EAAA,OAAAiC,OAAAC,IAAA,2BAAA,KACoDF,IAAA;EAAAG,OAAS;EAAKC,QAAU;CAAM,GAACpC,EAAA,KAAAgC,KAAAA,IAAAhC,EAAA;CAAnG,IAAA,CAAAqC,GAAAC,KAAkCxF,EAAkCkF,CAA+B,GACnGO,IAAsB1F,EAAkC,IAAI,GAC5D2F,IAAqB3F,EAAiC8C,KAAAA,CAAS,GAC/D8C,KAAoB5F,EAAuB,IAAI,GAC/C6F,IAAqC7F,EAI3B,IAAI,GAAE8F,GAAAC;CAChBjG,AADgBqD,EAAA,OAAAD,KAAAC,EAAA,OAAAyB,KAAAzB,EAAA,OAAA3B,KACNsE,UAAA;EACR,IAAAE,IAAiBH,EAA4BI,SAC7CrD,IACEoD,KAAY3F,EAAsBmB,CAAS,CAAC,CAAAa,gBAAiB2D,EAAQ1D,MAAO,IACxEjC,EAAsBmB,CAAS,CAAC,CAAAqB,aAAcmD,EAAQ1D,MAAO,CAAC,CAAAM,iBADlEE,KAAAA;EAcF+C,AAVEpF,EAAgC;GAAAuF;GAAAC,SAErBrB;GAAiBsB,oBACNtG,EAAYsD,CAAQ;GAACN;EAE3C,CACO,KANPoD,KAQA3F,EAAsBmB,CAAS,CAAC,CAAAmB,gBAAiBqD,EAAQ1D,QAASQ,KAAAA,CAAS,GAE7E+C,EAA4BI,UAAWrB,IAAA;GAAAhF,aAEpBA,EAAYsD,CAAQ;GAACZ,QAC1BsC,EAAiBtC;GAAO6D,WACrBvB,EAAiBrC,QAAQ6D,IAAKC,EAAqB;EAE7D,IANgC;CAAH,GAOnCN,IAAA;EAAC7C;EAAU0B;EAAmBpD;CAAS,GAAC2B,EAAA,KAAAD,GAAAC,EAAA,KAAAyB,GAAAzB,EAAA,KAAA3B,GAAA2B,EAAA,KAAA2C,GAAA3C,EAAA,KAAA4C,MAAAD,IAAA3C,EAAA,IAAA4C,IAAA5C,EAAA,KAxB3CrD,EAAUgG,GAwBPC,CAAwC;CAK3C,IAAAO,KAAwBtG,EAAOyB,CAAY,GAC3C8E,IAAoBvG,EAAOkD,CAAQ,GACnCsD,KAAqBxG,EAAOuE,EAAK7C,SAAU,GAAE+E;CAC7C3G,AAD6CqD,EAAA,QAAA1B,KAAA0B,EAAA,QAAAoB,EAAA7C,aAAAyB,EAAA,QAAAD,KACnCuD,UAAA;EAGRD,AAFAF,GAAeL,UAAWxE,GAC1B8E,EAAWN,UAAW/C,GACtBsD,GAAYP,UAAW1B,EAAK7C;CAAR,GACrByB,EAAA,MAAA1B,GAAA0B,EAAA,MAAAoB,EAAA7C,WAAAyB,EAAA,MAAAD,GAAAC,EAAA,MAAAsD,KAAAA,IAAAtD,EAAA,KAJDrD,EAAU2G,CAIT;CACD,IAAAC,IAAuBjF,EAAYiB,IACnCiE,IAAgBC,EAAQnF,EAAYoF,MACpCC,IAAiBvC,EAAK7C,YAClBpB,EAAgBiE,EAAK7C,SAC2B,IAAhDqF,KAAIC,UAAW;EAAC;EAAQN;EAAgB5B;CAAO,CAAC,GACpDmC,IAAmB1C,EAAK7C,WAAsBuF,cAA3BP,GAA8CQ;CAAA,AAAA/D,EAAA,QAAAuD,KAAAvD,EAAA,QAAAwD,KAAAxD,EAAA,QAAA8D,KAAA9D,EAAA,QAAA2B,KAAA3B,EAAA,QAAA2D,KAAA3D,EAAA,QAAAsC,KAAAtC,EAAA,QAAA+B,KAAA/B,EAAA,QAAA8B,KAAA9B,EAAA,QAAA3B,KAEvD0F,UAAA;EACR,IAAAC,IAAgB,IAChBC,IAAc,IACdC,IAAsBd,EAAWN,SACjCqB,IAA0BhB,GAAeL,SACzCsB,IAAa/F,EAASgG,MAAMC,MAAMC,KAAMZ,CAAQ,GAChDa,IAA4C;EAC5CzC,EAAS,IAAI;EAGb,IAAA0C,IAAexG,EAAsB0D,CAAO;EAC5CG,EAAU2C,IAAA;GAAA,GAAcA;GAAMC,gBAAkB;GAAC/C;EAAiB,IAAxD,IAAyD;EACnE,IAAAgD,KAAaC,MAAA;GAAC,IAAAC,IAAAD,MAAAjF,KAAAA,IAAA,YAAAiF;GACZR,EAAIU,QACF;IAAAC,UACYpD;IAAOgD,OACXK,MAAY7B,GAAeL,QAAQ6B,KAAMvB,EAAWN,SAAUkC,CAAM;IAACC,UAClEC,MAAA;KACP,IAAIlB,KAAAC,GAAoB;KACxB,IAAAkB,IAAqBpH,EAAuBmH,GAAMvD,GAAS6C,CAAU;KACrE,AAAKW,MACLpD,EAAS,IAAI,GACbD,EAAUqD,CAAY;IAAC;IACxBC,UACQC,MAAA;KACP,AAAIrB,KAAAC,KACJlC,EAAS;MAAAJ;MAAA/C,SAAoBH,GAAc4G,CAAS;KAAE,CAAC;IAAC;GAE5D,GACAR,CACF;EAAC;EA0BHF,AAxBAnC,EAAYM,gBAAiB6B,EAAK,OAAO,GACzCH,IAAahB,IACT/F,GAAyB;GAAA6H,SACd;IAAAC,YACKhC;IAAcO;IAAArH,aAEbA,EAAY2G,EAAWN,OAAQ;GAC9C;GAAC0C,YACWhH;GAAgBmG,YAChBA,EAAK;GAACc,gBACHtF,MAAA;IACb,AAAK6D,KAAW1B,EAAanC,CAAK;GAAE;GACrCuD,OACKgC,GAAAC,MACJC,QAAOC,QAAS1B,EAAiBT,OAAQQ,GAAewB,GAAOC,CAAM,CAAC,CAAC,CAAAG,MAAMC,MAAA;IAC3E,IAAAjD,IAAgB7E,EAAsB0D,CAAO;IAC4C,OAArFmB,KAAA,CAAYmB,KAAS/F,EAAuByD,GAAS;KAAA,GAAKmB;KAAOkD,SAAWN;IAAM,CAAC,GAChFK,KAAApG,KAAAA;GAAmB,CAC3B;EACL,CACG,IAnBM,MAoBb4C,EAAaO,UAAW0B,GACpBC,KAAQlC,EAAaO,SAAqBmD,YAACxB,EAAMuB,SAAUvB,EAAMyB,QAAS,GAC9E5D,EAAa;GAAAH,OAAS;GAAKC,QAAU;EAAM,CAAC,GAC5CuC,EAAK;EACL,IAAAwB,IAA4B9H,EAAS+H,UAAUC,cAAcC,MAAA;GAC3D,IAAI7J,EAAYsD,CAAQ,MAAMtD,EAAY2G,EAAWN,OAAQ,GAAC,OAAS,CAAA;GACvEmB,IAAUA;GACV,IAAAsC,IAAehE,EAAaO,SAAqB0D,YAAC,GAClDC,IAAiBpD,GAAYP,SAA2B4D;GAAC,OAClDH,KAAAE,IAAA,CAAsBA,CAAQ,IAA9B,CAAA;EAAoC,CAC5C,GACDE,IAA4BzJ,EAAsBmB,CAAS,CAAC,CAAAuI,0BAA0BC,MAAA;GACpF,IAAI5C,KAAW4C,EAAKjF,mBAAoB2B,GAAc;GACtD,IAAAuD,IAAmBvE,EAAaO;GAChC,AAAI0B,IAAYA,EAAUuC,mBAAoBF,CAAK,IAC9ClC,EAAK;EAAE,CACb;EAAE,aACI;GASL,AARAX,IAAYA,IACZI,EAAI4C,QAAS,GACbxE,EAAYM,UAAWnD,KAAAA,GACvBgH,EAAmBK,QAAS,GAC5Bb,EAAmBa,QAAS,GAG5BxC,GAAUyC,MAAQ,GACd1E,EAAaO,YAAa0B,MAAYjC,EAAaO,UAAW;EAAK;CACxE,GACF9C,EAAA,MAAAuD,GAAAvD,EAAA,MAAAwD,GAAAxD,EAAA,MAAA8D,GAAA9D,EAAA,MAAA2B,GAAA3B,EAAA,MAAA2D,GAAA3D,EAAA,MAAAsC,GAAAtC,EAAA,MAAA+B,GAAA/B,EAAA,MAAA8B,GAAA9B,EAAA,MAAA3B,GAAA2B,EAAA,MAAA+D,KAAAA,IAAA/D,EAAA;CAAA,IAAA4E;CAjFDjI,AAiFCqD,EAAA,QAAAuD,KAAAvD,EAAA,QAAAwD,KAAAxD,EAAA,QAAA8D,KAAA9D,EAAA,QAAA2B,KAAA3B,EAAA,QAAA2D,KAAA3D,EAAA,QAAA3B,KAAEuG,KAAA;EAACrB;EAAgBC;EAASnF;EAAWsD;EAASgC;EAAUG;CAAU,GAAC9D,EAAA,MAAAuD,GAAAvD,EAAA,MAAAwD,GAAAxD,EAAA,MAAA8D,GAAA9D,EAAA,MAAA2B,GAAA3B,EAAA,MAAA2D,GAAA3D,EAAA,MAAA3B,GAAA2B,EAAA,MAAA4E,MAAAA,KAAA5E,EAAA,KAjFtErD,EAAUoH,GAiFPa,EAAmE;CAAC,IAAAsC,IAAAC;CAEvExK,AAFuEqD,EAAA,QAAAiC,OAAAC,IAAA,2BAAA,KAE7DgF,WAAA;EACR,IAAAD,UAAoB1E,EAAaO,SAAemE,MAAC,GACjDG,UAAqB;GACnB,AAAIrG,SAAQsG,oBAAqB,YAAUJ,EAAM;EAAE;EAGM,OAD3DK,OAAMC,iBAAkB,gBAAgBN,CAAK,GAC7ClG,SAAQwG,iBAAkB,oBAAoBH,CAAY,SACnD;GAELrG,AADAuG,OAAME,oBAAqB,gBAAgBP,CAAK,GAChDlG,SAAQyG,oBAAqB,oBAAoBJ,CAAY;EAAC;CAC/D,GACAD,KAAA,CAAA,GAAEnH,EAAA,MAAAkH,IAAAlH,EAAA,MAAAmH,OAAAD,KAAAlH,EAAA,KAAAmH,KAAAnH,EAAA,MAXLrD,EAAUuK,IAWPC,EAAE;CAAC,IAAAM;CAAA,AAAAzH,EAAA,QAAAiC,OAAAC,IAAA,2BAAA,KACeuF,MAAAC,MAAA;EACnBnF,EAAaO,SAAsB6E,aAACjC,CAAK;CAAC,GAC3C1F,EAAA,MAAAyH,MAAAA,KAAAzH,EAAA;CAFD,IAAA2H,KAAqBF,IAEnBG;CAAA,AAAA5H,EAAA,QAAA2B,KAAA3B,EAAA,QAAA6B,KACoB+F,KAAA9J,GAAoB+D,GAAQF,CAAuB,IAAnDE,IAAA,MAAoD7B,EAAA,MAAA2B,GAAA3B,EAAA,MAAA6B,GAAA7B,EAAA,MAAA4H,MAAAA,KAAA5H,EAAA;CAA1E,IAAA6H,IAAsBD,IACtBE,KAAuBD,IAAA,GAAmBA,EAAalG,QAAQ,GAAIkG,EAAanD,mBAAzD,IAAgFqD,IAAAC;CACvGpL,AADuGoD,EAAA,QAAA8H,MAAA9H,EAAA,QAAAyB,KACvFsG,WAAA;EACd,IAAI,CAACD,MAADrG,GAAoC;EACxC,IAAAwG,IAAaxF,GAAWK;EACxB,AAAKmF,KACLC,4BAAsB;GACpB,IAAAC,IAAcF,EAAIG;GAClB,OAAOtF,IAAO;IACZ,IAAAuF,IAAkBC,iBAAiBxF,CAAO,CAAC,CAAAuF;IAI3CvF,AAHI;KAAC;KAAQ;KAAU;IAAS,CAAC,CAAAyF,SAAUF,CAAwD,KAA1CvF,EAAO0F,eAAgB1F,EAAO2F,iBACrF3F,EAAO4F,YAAa,IAEtB5F,IAAUA,EAAOsF;GAAV;EACR,CACF;CAAC,GACDJ,KAAA,CAACF,IAAgBrG,CAAiB,GAACzB,EAAA,MAAA8H,IAAA9H,EAAA,MAAAyB,GAAAzB,EAAA,MAAA+H,IAAA/H,EAAA,MAAAgI,OAAAD,KAAA/H,EAAA,KAAAgI,KAAAhI,EAAA,MAdtCpD,EAAgBmL,IAcbC,EAAmC;CACtC,IAAAW,IAAkBjK,IAAKiD,YAAcA,IAAUjD,GAAKE,UAAlCe,KAAAA;CAClB,IAAIgJ,KAAA,CAAcd,GAAa;EAAA,IAAAe;EAAA,AAAA5I,EAAA,QAAA2I,IAGgBC,IAAA5I,EAAA,OAAzC4I,IAAA,kBAACkE,GAAD;GAAY,OAAA;GAAYzH,UAAAA;EAAnB,CAAA,GAAoCrF,EAAA,MAAA2I,GAAA3I,EAAA,MAAA4I;EAAA,IAAAC;EAAA,AAAA7I,EAAA,QAAAiC,OAAAC,IAAA,2BAAA,KACzC2G,IAAA,kBAACkH,GAAD;GAAa,MAAA;GAAa,SAAA;GAAkB,eAAMvN,EAAYM,UAAW;GAAG,UAAA;EAArE,CAAA,GAEE9C,EAAA,MAAA6I,KAAAA,IAAA7I,EAAA;EAAA,IAAA8I;EACF,OADE9I,EAAA,QAAA4I,IACFE,IAAA9I,EAAA,OALT8I,IAAA,kBAAC+D,GAAD;GAAU,GAAA;GAAY,MAAA;GAAO,IAAA;GAAO,GAAA;GAAmB,eAAA;GAAa,KAAA;GAApE,UAAA,CACEjE,GACAC,CAFK;MAKE7I,EAAA,MAAA4I,GAAA5I,EAAA,MAAA8I,IALTA;CAKS;CAGb,IAAI,CAACjB,GAAa;EAAA,IAAAe;EAIL,OAJK5I,EAAA,QAAAiC,OAAAC,IAAA,2BAAA,KAEd0G,IAAA,kBAACiE,GAAD;GAAU,GAAA;GAAY,MAAA;GAAO,IAAA;GAC3B,UAAA,kBAAC2I,GAAD,EAAc,MAAA,KAAI,CAAA;EADb,CAAA,GAEExV,EAAA,MAAA4I,KAAAA,IAAA5I,EAAA,KAFT4I;CAES;CAMb,IAAAG,KAAkB,GAAGlB,EAAalG,QAAQ,GAAIkG,EAAanD,kBAC3DsE,IAA6B;CAC7B,IAAI3G,EAAS4B,SAAQ;EAAA,IAAA2E;EACnBI,AADmBhJ,EAAA,QAAAiC,OAAAC,IAAA,2BAAA,KAEjB0G,IAAA,kBAACgH,IAAD,EAAiC,SAAA,uFAAsF,CAAA,GAAG5P,EAAA,MAAA4I,KAAAA,IAAA5I,EAAA,KAD5HgJ,IACEA;CADS,OAGN,IAAI3D,GAAS;EAAA,IAAAuD;EAAA,AAAA5I,EAAA,QAAAiC,OAAAC,IAAA,2BAAA,KACkD0G,UAAMpG,EAAYM,UAAW,GAAC9C,EAAA,MAAA4I,KAAAA,IAAA5I,EAAA;EAAA,IAAA6I;EAAlGG,AAAkGhJ,EAAA,QAAA2I,IAAIE,IAAA7I,EAAA,OAAxF6I,IAAA,kBAAC+G,IAAD;GAAkCvK,SAAAA;GAAoB,SAAAuD;EAA8B,CAAA,GAAI5I,EAAA,MAAA2I,GAAA3I,EAAA,MAAA6I,IAAtGG,IAAcA;CAAH,OACN,IAAI3G,EAAS4G,WAAU;EAAA,IAAAL;EAAA,AAAA5I,EAAA,QAAAiC,OAAAC,IAAA,2BAAA,KAEsC0G,UAAMrG,EAAaO,SAAeoG,MAAC,GAAClJ,EAAA,MAAA4I,KAAAA,IAAA5I,EAAA;EAAA,IAAA6I;EADtGG,AACsGhJ,EAAA,QAAAqC,EAAA4G,YAAIJ,IAAA7I,EAAA,OAAxG6I,IAAA,kBAAC+G,IAAD;GAAkC,SAAAvN,EAAS4G;GAAqB,SAAAL;EAAoC,CAAA,GAAI5I,EAAA,MAAAqC,EAAA4G,WAAAjJ,EAAA,MAAA6I,IAD1GG,IACEA;CADS;CAGZ,IAAAJ;CAAA,AAAA5I,EAAA,QAAA6H,IAG8Ce,IAAA5I,EAAA,OAA3C4I,IAAA,kBAACgJ,IAAD,EAA0B/J,MAAAA,EAAa,CAAA,GAAI7H,EAAA,MAAA6H,GAAA7H,EAAA,MAAA4I;CAM1BI,IAAAA,KAAAA,GACQF,KAAArF,EAAQnF,EAAYoF,MAAMyF;CAAA,AAAAnJ,EAAA,QAAAyB,KAAAzB,EAAA,QAAA3B,KAE7C8K,IAAA1H,KAAAxC,MACmBJ,GAAsB;EAAAR;EAAAU,YAAyB0C;EAAiBxC;CAAY,CAAC,IADhGU,KAAAA,GAEaK,EAAA,MAAAyB,GAAAzB,EAAA,MAAA3B,GAAA2B,EAAA,MAAAmJ,KAAAA,IAAAnJ,EAAA;CAAA,IAAAoJ;CAAA,AAAApJ,EAAA,QAAA1B,EAAA+K,SAAArJ,EAAA,QAAA6H,KAAA7H,EAAA,QAAA+I,MAAA/I,EAAA,QAAA0B,MAAA1B,EAAA,QAAAgJ,KAAAhJ,EAAA,QAAAK,KAAAL,EAAA,QAAA8I,MAAA9I,EAAA,QAAAmJ,KAVnBC,IAAA,kBAACgE,GAAD;EAAU,MAAA;EAAS,MAAA;EACjB,UAAA,kBAACxB,IAAD;GACW/D,SAAAA;GACCxH;GACC0I;GACEC,aAAAA;GACQ,qBAAAF;GAEnB,uBAAAK;GAIQxB,UAAAA;GACGlF;GACMf,mBAAAA;GACZ,OAAApD,EAAY+K;EAAM,CAAA;CAfzB,CAAA,GAiBErJ,EAAA,MAAA1B,EAAA+K,OAAArJ,EAAA,MAAA6H,GAAA7H,EAAA,MAAA+I,IAAA/I,EAAA,MAAA0B,IAAA1B,EAAA,MAAAgJ,GAAAhJ,EAAA,MAAAK,GAAAL,EAAA,MAAA8I,IAAA9I,EAAA,MAAAmJ,GAAAnJ,EAAA,MAAAoJ,KAAAA,IAAApJ,EAAA;CAAA,IAAAsJ;CACD,OADCtJ,EAAA,QAAA4I,KAAA5I,EAAA,QAAAoJ,KAnBRE,KAAA,kBAACsD,GAAD;EAAgB,WAAA;EAAW,GAAA;EAAY,MAAA;EAAO,IAAA;EAA9C,UAAA,CACEhE,GACAQ,CAFG;KAoBEpJ,EAAA,MAAA4I,GAAA5I,EAAA,MAAAoJ,GAAApJ,EAAA,MAAAsJ,MAAAA,KAAAtJ,EAAA,KApBPsJ;AAoBO;AA3O8B,SAAApG,GAAA5D,GAAA;CAAA,OA0CsBA,EAAMC;AAAG"}
@@ -1208,6 +1208,7 @@ interface KanbanRendererCreateLabels {
1208
1208
  properties: string;
1209
1209
  submitError: string;
1210
1210
  removeFile: string;
1211
+ submitWithoutOpening?: string;
1211
1212
  }
1212
1213
  interface KanbanRendererCreateRowConfig {
1213
1214
  title: string;
@@ -1223,6 +1224,8 @@ interface KanbanRendererCreateSubmission {
1223
1224
  /** Every editable attribute the user set, keyed by attribute id. */
1224
1225
  attributeValues: Record<string, unknown>;
1225
1226
  files: File[];
1227
+ /** Defaults to opening the created row. False keeps the current board visible. */
1228
+ openCreatedRow?: boolean;
1226
1229
  }
1227
1230
  interface BoardColumnAction<TIcon = unknown> {
1228
1231
  id: string;
@@ -2517,6 +2520,7 @@ declare const workbenchRegionTabAddMenuPath: (region: string) => MenuPath;
2517
2520
  declare const workbenchCommandPaletteMenuPath: readonly ["workbench", "commandPalette"];
2518
2521
  declare const workbenchTopHeaderLeadingMenuPath: MenuPath;
2519
2522
  declare const workbenchTopHeaderTrailingMenuPath: MenuPath;
2523
+ declare const workbenchBreadcrumbLocationMenuPath: readonly ["workbench", "breadcrumb", "location"];
2520
2524
  declare const resourceContextMenuPath: (resourceKind: string) => MenuPath;
2521
2525
  //#endregion
2522
2526
  //#region src/core/registries/navigation/navigation-target-key.d.ts
@@ -2547,5 +2551,5 @@ declare const runUserAction: (workbench: {
2547
2551
  /** Commit related stores before their subscribers read the resulting workbench state. */
2548
2552
  declare const batchWorkbenchChanges: <Result>(commit: () => Result) => Result;
2549
2553
  //#endregion
2550
- export { WorkflowStatus as $, workbenchResourceOwnerContextKey as $i, RegisteredDataTableRendererContribution as $n, RegisteredPlaceholderContribution as $r, WorkbenchTerminalSessionError as $t, createWorkbench as A, WorkbenchCommandPaletteController as Ai, workbenchViewIdContextKey as An, NavigationTreeContribution as Ar, WorkbenchPlaceholderRegistry as At, WorkbenchSnapshot as B, WorkbenchBreadcrumbController as Bi, FileRendererRefreshOrigin as Bn, TreeQueryContext as Br, WorkbenchModePlacementRegistry as Bt, isWorkbenchModePanelAvailable as C, NavigationParser as Ci, RegisteredWorkbenchView as Cn, ControlsApplyInput as Cr, PreferenceSchemaContribution as Ct, WorkbenchModeAddablePanelContext as D, NavigationTargetCompound as Di, WorkbenchViewRegistry as Dn, ControlsResetInput as Dr, WorkbenchShellPlacementContribution as Dt, WorkbenchModeAddablePanel as E, NavigationTargetCommand as Ei, WorkbenchViewContribution as En, ControlsRendererLayout as Er, PreferenceValue as Et, WorkbenchModuleContribution as F, CommandParamOption as Fi, KanbanRendererContribution as Fn, TreeContext as Fr, WorkbenchNotification as Ft, ThemePreferenceOption as G, ResourceProvider as Gi, DataTableRendererColumnStat as Gn, WorkbenchPanelRenderInput as Gr, getKeybindingSteps as Gt, ThemeRegistry as H, ResourceBrowseEntry as Hi, DataTableRendererBadgePalette as Hn, TreeRendererPersistenceAdapter as Hr, Keybinding as Ht, WorkbenchModuleContributionContext as I, CommandParamSchema as Ii, KanbanRendererQueryState as In, TreeMoveEndpoint as Ir, WorkbenchNotificationAction as It, FileIconThemeFont as J, createWorkbenchResourceContextValues as Ji, DataTableRendererQueryResult as Jn, MenuRegistry as Jr, CommandPaletteResourceQueryContext as Jt, ThemePreferenceTokens as K, ResourceRef$1 as Ki, DataTableRendererContribution as Kn, MenuItem as Kr, CommandPaletteResourceProvider as Kt, WorkbenchPagePersistenceScope as L, CommandRegistry as Li, FileRendererContent as Ln, TreeMovePolicy as Lr, WorkbenchNotificationEvent as Lt, WorkbenchCoreContributionContext as M, Command as Mi, RendererReadRegistry as Mn, NavigationTreeRegistry as Mr, WorkbenchOverlayRegistry as Mt, WorkbenchHost as N, CommandHandler as Ni, RendererReadRequest as Nn, NavigationTreeSlot as Nr, NotificationRegistry as Nt, WorkbenchModeContribution as O, NavigationTargetItem as Oi, WorkbenchViewRegistryStoreState as On, ControlsUpdateValueInput as Or, WorkbenchShellPlacementRegistry as Ot, WorkbenchModuleContext as P, CommandParamDescriptor as Pi, createRendererReadRegistry as Pn, TreeAction as Pr, RegisteredWorkbenchNotification as Pt, WorkbenchStatusSetContribution as Q, workbenchResourceMetadataContextKey as Qi, DataTableRendererThemeColor as Qn, LayoutPersistenceAdapter as Qr, WorkbenchTerminalSessionAdapter as Qt, WorkbenchPagePersistenceScopeInput as R, WorkbenchCommandExecutionContext as Ri, FileRendererContribution as Rn, TreeNode as Rr, WorkbenchNotificationLevel as Rt, getWorkbenchModePanelForRegion as S, NavigationDispatcherContext as Si, WorkbenchViewMenuRegistry as Sn, ViewMode as Sr, PreferenceRegistry as St, WorkbenchModeActivationResult as T, NavigationTarget$1 as Ti, WorkbenchViewBody as Tn, ControlsRendererContribution as Tr, PreferenceScopeRef as Tt, ThemePreference as U, ResourceKindContribution as Ui, DataTableRendererColumn as Un, TreeRendererState as Ur, KeybindingRegistry as Ut, createWorkbenchInput as V, WorkbenchBreadcrumbItem as Vi, FileRendererSaveResult as Vn, TreeRendererContribution as Vr, WorkbenchOwnedPlacementItem as Vt, ThemePreferenceMode as W, ResourceListContext as Wi, DataTableRendererColumnRenderer as Wn, TreeViewSection as Wr, KeybindingSequence as Wt, WorkbenchStatusRegistry as X, getWorkbenchSelectionResourceKeys as Xi, DataTableRendererRowAction as Xn, WorkbenchFocusController as Xr, CommandPaletteResourceResult as Xt, FileIconThemePreferenceOption as Y, createWorkbenchSelectionResourceMetadata as Yi, DataTableRendererRow as Yn, RegisteredMenuItem as Yr, CommandPaletteResourceRegistry as Yt, WorkbenchStatusRegistryState as Z, workbenchResourceIdContextKey as Zi, DataTableRendererSelectionAction as Zn, WorkbenchFocusRegionId as Zr, WorkbenchTerminalController as Zt, workbenchTopHeaderTrailingMenuPath as _, WorkbenchPanelMenuSide as _i, WorkbenchPageLocationPersistence as _n, KanbanRendererRow as _r, SettingsScope as _t, StandardResourceIcon as a, WorkbenchViewHierarchyNode as aa, WorkbenchPanelTab as ai, WorkbenchTerminalSessionStatus as an, BoardColumnAction as ar, WorkbenchStatusBarRegistry as at, defaultPageResourceCodec as b, workbenchPanelRegions as bi, WorkbenchPlacementPresentation as bn, KanbanRendererViewsSource as br, PreferencePersistenceAdapter as bt, dockedWorkbenchRegions as c, ContributionMetadata as ca, WorkbenchTabAction as ci, WorkbenchShellOpenRegion as cn, CollectionViewsProvider as cr, createStatusBarRegistry as ct, headerTrailingMenuPath as d, ContextKeyService as da, WorkbenchTabPosition as di, WorkbenchPanelMenuStatePersistenceAdapter as dn, EnumOptions as dr, SettingsAction as dt, workbenchResourceTypeContextKey as ea, RegisteredWidgetContribution as ei, WorkbenchTerminalSessionExit as en, AttributeDescriptor as er, WorkflowStatusAction as et, resourceContextMenuPath as f, ContextKeyValue as fa, WorkbenchTabRetention as fi, PersistedWorkbenchPageLocation as fn, EnumOptionsSource as fr, SettingsCollectionGroupBy as ft, workbenchTopHeaderLeadingMenuPath as g, WorkbenchPanelMenuRegion as gi, WorkbenchPageLocationDiagnostic as gn, KanbanRendererCreateSubmission as gr, SettingsRegistry as gt, workbenchRegionTabLeadingMenuPath as h, WorkbenchStore as ha, WorkbenchWidgetTab as hi, WorkbenchPageLocationController as hn, KanbanRendererCreateRowConfig as hr, SettingsPanelPreference as ht, rendererReadKey as i, WorkbenchHierarchyNode as ia, WorkbenchPanelMountStrategy as ii, WorkbenchTerminalSessionSink as in, AttributesSource as ir, WorkbenchStatusBarPosition as it, WorkbenchCore as j, WorkbenchCommandPaletteOpenInput as ji, RendererReadBinding as jn, NavigationTreeOwner as jr, WorkbenchOverlayContribution as jt, WorkbenchModeRegistry as k, NavigationTargetPanel$1 as ki, createViewRegistry as kn, NavigationTreeContext as kr, WorkbenchPlaceholderContribution as kt, getNavigationTargetKey as l, ContributionSource as la, WorkbenchTabMenuGroup as li, WorkbenchShellRegionState as ln, CollectionViewsSource as lr, CollectionSettingsPanel as lt, workbenchRegionTabAddMenuPath as m, Disposable as ma, WorkbenchWidgetPlacement as mi, WorkbenchPageLocationBrowser as mn, KanbanRendererCreateFieldType as mr, SettingsPanelContribution as mt, runUserAction as n, ResourceHierarchyCycle as na, WorkbenchLayout as ni, WorkbenchTerminalSessionOpener as nn, AttributeKind as nr, WorkbenchStatusBarItem as nt, standardResourceIcons as o, isWorkbenchViewHierarchyNode as oa, WorkbenchRegionSize as oi, WorkbenchTerminalState as on, BoardColumnConfig as or, WorkbenchStatusBarRegistryState as ot, workbenchCommandPaletteMenuPath as p, matchesContextExpression as pa, WorkbenchTabSnapshot as pi, WorkbenchPageBrowserEntry as pn, KanbanRendererCreateField as pr, SettingsPanelBase as pt, FileIconThemeRegistry as q, ResourceRegistry as qi, DataTableRendererQueryContext as qn, MenuPath as qr, CommandPaletteResourceProviderResult as qt, settleReadBatch as r, ResourceHierarchyProvider as ra, WorkbenchPanelInstance as ri, WorkbenchTerminalSessionRequest as rn, AttributeType as rr, WorkbenchStatusBarPersistenceAdapter as rt, DockedWorkbenchRegion$1 as s, resourceHierarchyCycleCode as sa, WorkbenchSidePanelMode as si, WorkbenchShellController as sn, CollectionSavedView as sr, WorkbenchStatusBarSlot as st, batchWorkbenchChanges as t, workbenchSelectionResourceKeyMetadataKey as ta, WorkbenchCommandTarget as ti, WorkbenchTerminalSessionModel as tn, AttributeDisplayDescriptor as tr, createStatusRegistry as tt, headerLeadingMenuPath as u, ContextKeyScope as ua, WorkbenchTabMenuRow as ui, WorkbenchSidePanelPresentation as un, EnumOption as ur, SchemaSettingsPanel as ut, AnchorId as v, WorkbenchPanelRegion as vi, WorkbenchPageNavigationResult as vn, KanbanRendererSettings as vr, SettingsSectionContribution as vt, WorkbenchModeActivationContext as w, NavigationRegistry as wi, WorkbenchReactViewBody as wn, ControlsQueryResult$1 as wr, PreferenceScope as wt, createLevelNavigation as x, workbenchRegions as xi, WorkbenchViewMenuContribution as xn, ResourceContextAction as xr, PreferencePropertySchema as xt, resolveAnchorRegion as y, WorkbenchRegion as yi, WorkbenchPageContribution as yn, KanbanRendererViewsProvider as yr, ViewSettingsPanel as yt, WorkbenchPersistenceAdapter as z, WorkbenchCommandExecutionError as zi, FileRendererRefreshEnvelope as zn, TreeNodeInlineInput as zr, WorkbenchModePlacementContribution as zt };
2554
+ export { WorkbenchStatusSetContribution as $, workbenchResourceMetadataContextKey as $i, DataTableRendererThemeColor as $n, LayoutPersistenceAdapter as $r, WorkbenchTerminalSessionAdapter as $t, WorkbenchModeRegistry as A, NavigationTargetPanel$1 as Ai, createViewRegistry as An, NavigationTreeContext as Ar, WorkbenchPlaceholderContribution as At, WorkbenchPersistenceAdapter as B, WorkbenchCommandExecutionError as Bi, FileRendererRefreshEnvelope as Bn, TreeNodeInlineInput as Br, WorkbenchModePlacementContribution as Bt, getWorkbenchModePanelForRegion as C, NavigationDispatcherContext as Ci, WorkbenchViewMenuRegistry as Cn, ViewMode as Cr, PreferenceRegistry as Ct, WorkbenchModeAddablePanel as D, NavigationTargetCommand as Di, WorkbenchViewContribution as Dn, ControlsRendererLayout as Dr, PreferenceValue as Dt, WorkbenchModeActivationResult as E, NavigationTarget$1 as Ei, WorkbenchViewBody as En, ControlsRendererContribution as Er, PreferenceScopeRef as Et, WorkbenchModuleContext as F, CommandParamDescriptor as Fi, createRendererReadRegistry as Fn, TreeAction as Fr, RegisteredWorkbenchNotification as Ft, ThemePreferenceMode as G, ResourceListContext as Gi, DataTableRendererColumnRenderer as Gn, TreeViewSection as Gr, KeybindingSequence as Gt, createWorkbenchInput as H, WorkbenchBreadcrumbItem as Hi, FileRendererSaveResult as Hn, TreeRendererContribution as Hr, WorkbenchOwnedPlacementItem as Ht, WorkbenchModuleContribution as I, CommandParamOption as Ii, KanbanRendererContribution as In, TreeContext as Ir, WorkbenchNotification as It, FileIconThemeRegistry as J, ResourceRegistry as Ji, DataTableRendererQueryContext as Jn, MenuPath as Jr, CommandPaletteResourceProviderResult as Jt, ThemePreferenceOption as K, ResourceProvider as Ki, DataTableRendererColumnStat as Kn, WorkbenchPanelRenderInput as Kr, getKeybindingSteps as Kt, WorkbenchModuleContributionContext as L, CommandParamSchema as Li, KanbanRendererQueryState as Ln, TreeMoveEndpoint as Lr, WorkbenchNotificationAction as Lt, WorkbenchCore as M, WorkbenchCommandPaletteOpenInput as Mi, RendererReadBinding as Mn, NavigationTreeOwner as Mr, WorkbenchOverlayContribution as Mt, WorkbenchCoreContributionContext as N, Command as Ni, RendererReadRegistry as Nn, NavigationTreeRegistry as Nr, WorkbenchOverlayRegistry as Nt, WorkbenchModeAddablePanelContext as O, NavigationTargetCompound as Oi, WorkbenchViewRegistry as On, ControlsResetInput as Or, WorkbenchShellPlacementContribution as Ot, WorkbenchHost as P, CommandHandler as Pi, RendererReadRequest as Pn, NavigationTreeSlot as Pr, NotificationRegistry as Pt, WorkbenchStatusRegistryState as Q, workbenchResourceIdContextKey as Qi, DataTableRendererSelectionAction as Qn, WorkbenchFocusRegionId as Qr, WorkbenchTerminalController as Qt, WorkbenchPagePersistenceScope as R, CommandRegistry as Ri, FileRendererContent as Rn, TreeMovePolicy as Rr, WorkbenchNotificationEvent as Rt, createLevelNavigation as S, workbenchRegions as Si, WorkbenchViewMenuContribution as Sn, ResourceContextAction as Sr, PreferencePropertySchema as St, WorkbenchModeActivationContext as T, NavigationRegistry as Ti, WorkbenchReactViewBody as Tn, ControlsQueryResult$1 as Tr, PreferenceScope as Tt, ThemeRegistry as U, ResourceBrowseEntry as Ui, DataTableRendererBadgePalette as Un, TreeRendererPersistenceAdapter as Ur, Keybinding as Ut, WorkbenchSnapshot as V, WorkbenchBreadcrumbController as Vi, FileRendererRefreshOrigin as Vn, TreeQueryContext as Vr, WorkbenchModePlacementRegistry as Vt, ThemePreference as W, ResourceKindContribution as Wi, DataTableRendererColumn as Wn, TreeRendererState as Wr, KeybindingRegistry as Wt, FileIconThemePreferenceOption as X, createWorkbenchSelectionResourceMetadata as Xi, DataTableRendererRow as Xn, RegisteredMenuItem as Xr, CommandPaletteResourceRegistry as Xt, FileIconThemeFont as Y, createWorkbenchResourceContextValues as Yi, DataTableRendererQueryResult as Yn, MenuRegistry as Yr, CommandPaletteResourceQueryContext as Yt, WorkbenchStatusRegistry as Z, getWorkbenchSelectionResourceKeys as Zi, DataTableRendererRowAction as Zn, WorkbenchFocusController as Zr, CommandPaletteResourceResult as Zt, workbenchTopHeaderLeadingMenuPath as _, WorkbenchPanelMenuRegion as _i, WorkbenchPageLocationDiagnostic as _n, KanbanRendererCreateSubmission as _r, SettingsRegistry as _t, StandardResourceIcon as a, WorkbenchHierarchyNode as aa, WorkbenchPanelMountStrategy as ai, WorkbenchTerminalSessionSink as an, AttributesSource as ar, WorkbenchStatusBarPosition as at, resolveAnchorRegion as b, WorkbenchRegion as bi, WorkbenchPageContribution as bn, KanbanRendererViewsProvider as br, ViewSettingsPanel as bt, dockedWorkbenchRegions as c, resourceHierarchyCycleCode as ca, WorkbenchSidePanelMode as ci, WorkbenchShellController as cn, CollectionSavedView as cr, WorkbenchStatusBarSlot as ct, headerTrailingMenuPath as d, ContextKeyScope as da, WorkbenchTabMenuRow as di, WorkbenchSidePanelPresentation as dn, EnumOption as dr, SchemaSettingsPanel as dt, workbenchResourceOwnerContextKey as ea, RegisteredPlaceholderContribution as ei, WorkbenchTerminalSessionError as en, RegisteredDataTableRendererContribution as er, WorkflowStatus as et, resourceContextMenuPath as f, ContextKeyService as fa, WorkbenchTabPosition as fi, WorkbenchPanelMenuStatePersistenceAdapter as fn, EnumOptions as fr, SettingsAction as ft, workbenchRegionTabLeadingMenuPath as g, WorkbenchStore as ga, WorkbenchWidgetTab as gi, WorkbenchPageLocationController as gn, KanbanRendererCreateRowConfig as gr, SettingsPanelPreference as gt, workbenchRegionTabAddMenuPath as h, Disposable as ha, WorkbenchWidgetPlacement as hi, WorkbenchPageLocationBrowser as hn, KanbanRendererCreateFieldType as hr, SettingsPanelContribution as ht, rendererReadKey as i, ResourceHierarchyProvider as ia, WorkbenchPanelInstance as ii, WorkbenchTerminalSessionRequest as in, AttributeType as ir, WorkbenchStatusBarPersistenceAdapter as it, createWorkbench as j, WorkbenchCommandPaletteController as ji, workbenchViewIdContextKey as jn, NavigationTreeContribution as jr, WorkbenchPlaceholderRegistry as jt, WorkbenchModeContribution as k, NavigationTargetItem as ki, WorkbenchViewRegistryStoreState as kn, ControlsUpdateValueInput as kr, WorkbenchShellPlacementRegistry as kt, getNavigationTargetKey as l, ContributionMetadata as la, WorkbenchTabAction as li, WorkbenchShellOpenRegion as ln, CollectionViewsProvider as lr, createStatusBarRegistry as lt, workbenchCommandPaletteMenuPath as m, matchesContextExpression as ma, WorkbenchTabSnapshot as mi, WorkbenchPageBrowserEntry as mn, KanbanRendererCreateField as mr, SettingsPanelBase as mt, runUserAction as n, workbenchSelectionResourceKeyMetadataKey as na, WorkbenchCommandTarget as ni, WorkbenchTerminalSessionModel as nn, AttributeDisplayDescriptor as nr, createStatusRegistry as nt, standardResourceIcons as o, WorkbenchViewHierarchyNode as oa, WorkbenchPanelTab as oi, WorkbenchTerminalSessionStatus as on, BoardColumnAction as or, WorkbenchStatusBarRegistry as ot, workbenchBreadcrumbLocationMenuPath as p, ContextKeyValue as pa, WorkbenchTabRetention as pi, PersistedWorkbenchPageLocation as pn, EnumOptionsSource as pr, SettingsCollectionGroupBy as pt, ThemePreferenceTokens as q, ResourceRef$1 as qi, DataTableRendererContribution as qn, MenuItem as qr, CommandPaletteResourceProvider as qt, settleReadBatch as r, ResourceHierarchyCycle as ra, WorkbenchLayout as ri, WorkbenchTerminalSessionOpener as rn, AttributeKind as rr, WorkbenchStatusBarItem as rt, DockedWorkbenchRegion$1 as s, isWorkbenchViewHierarchyNode as sa, WorkbenchRegionSize as si, WorkbenchTerminalState as sn, BoardColumnConfig as sr, WorkbenchStatusBarRegistryState as st, batchWorkbenchChanges as t, workbenchResourceTypeContextKey as ta, RegisteredWidgetContribution as ti, WorkbenchTerminalSessionExit as tn, AttributeDescriptor as tr, WorkflowStatusAction as tt, headerLeadingMenuPath as u, ContributionSource as ua, WorkbenchTabMenuGroup as ui, WorkbenchShellRegionState as un, CollectionViewsSource as ur, CollectionSettingsPanel as ut, workbenchTopHeaderTrailingMenuPath as v, WorkbenchPanelMenuSide as vi, WorkbenchPageLocationPersistence as vn, KanbanRendererRow as vr, SettingsScope as vt, isWorkbenchModePanelAvailable as w, NavigationParser as wi, RegisteredWorkbenchView as wn, ControlsApplyInput as wr, PreferenceSchemaContribution as wt, defaultPageResourceCodec as x, workbenchPanelRegions as xi, WorkbenchPlacementPresentation as xn, KanbanRendererViewsSource as xr, PreferencePersistenceAdapter as xt, AnchorId as y, WorkbenchPanelRegion as yi, WorkbenchPageNavigationResult as yn, KanbanRendererSettings as yr, SettingsSectionContribution as yt, WorkbenchPagePersistenceScopeInput as z, WorkbenchCommandExecutionContext as zi, FileRendererContribution as zn, TreeNode as zr, WorkbenchNotificationLevel as zt };
2551
2555
  export {};
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { $ as WorkflowStatus, $i as workbenchResourceOwnerContextKey, $t as WorkbenchTerminalSessionError, A as createWorkbench, Ai as WorkbenchCommandPaletteController, An as workbenchViewIdContextKey, Ar as NavigationTreeContribution, At as WorkbenchPlaceholderRegistry, B as WorkbenchSnapshot, Bi as WorkbenchBreadcrumbController, Bn as FileRendererRefreshOrigin, Br as TreeQueryContext, Bt as WorkbenchModePlacementRegistry, C as isWorkbenchModePanelAvailable, Ci as NavigationParser, Cn as RegisteredWorkbenchView, Cr as ControlsApplyInput, Ct as PreferenceSchemaContribution, D as WorkbenchModeAddablePanelContext, Di as NavigationTargetCompound, Dn as WorkbenchViewRegistry, Dr as ControlsResetInput, Dt as WorkbenchShellPlacementContribution, E as WorkbenchModeAddablePanel, Ei as NavigationTargetCommand, En as WorkbenchViewContribution, Er as ControlsRendererLayout, Et as PreferenceValue, F as WorkbenchModuleContribution, Fi as CommandParamOption, Fn as KanbanRendererContribution, Fr as TreeContext, Ft as WorkbenchNotification, G as ThemePreferenceOption, Gi as ResourceProvider, Gn as DataTableRendererColumnStat, Gr as WorkbenchPanelRenderInput, Gt as getKeybindingSteps, H as ThemeRegistry, Hi as ResourceBrowseEntry, Hn as DataTableRendererBadgePalette, Ht as Keybinding, I as WorkbenchModuleContributionContext, Ii as CommandParamSchema, In as KanbanRendererQueryState, Ir as TreeMoveEndpoint, It as WorkbenchNotificationAction, J as FileIconThemeFont, Ji as createWorkbenchResourceContextValues, Jn as DataTableRendererQueryResult, Jr as MenuRegistry, Jt as CommandPaletteResourceQueryContext, K as ThemePreferenceTokens, Ki as ResourceRef, Kn as DataTableRendererContribution, Kr as MenuItem, Kt as CommandPaletteResourceProvider, L as WorkbenchPagePersistenceScope, Li as CommandRegistry, Ln as FileRendererContent, Lr as TreeMovePolicy, Lt as WorkbenchNotificationEvent, Mi as Command, Mn as RendererReadRegistry, Mr as NavigationTreeRegistry, Mt as WorkbenchOverlayRegistry, N as WorkbenchHost, Ni as CommandHandler, Nn as RendererReadRequest, Nr as NavigationTreeSlot, Nt as NotificationRegistry, O as WorkbenchModeContribution, Oi as NavigationTargetItem, On as WorkbenchViewRegistryStoreState, Or as ControlsUpdateValueInput, Ot as WorkbenchShellPlacementRegistry, P as WorkbenchModuleContext, Pi as CommandParamDescriptor, Pn as createRendererReadRegistry, Pr as TreeAction, Q as WorkbenchStatusSetContribution, Qi as workbenchResourceMetadataContextKey, Qn as DataTableRendererThemeColor, Qr as LayoutPersistenceAdapter, Qt as WorkbenchTerminalSessionAdapter, R as WorkbenchPagePersistenceScopeInput, Ri as WorkbenchCommandExecutionContext, Rn as FileRendererContribution, Rr as TreeNode, Rt as WorkbenchNotificationLevel, S as getWorkbenchModePanelForRegion, Si as NavigationDispatcherContext, Sn as WorkbenchViewMenuRegistry, Sr as ViewMode, St as PreferenceRegistry, T as WorkbenchModeActivationResult, Ti as NavigationTarget, Tn as WorkbenchViewBody, Tr as ControlsRendererContribution, Tt as PreferenceScopeRef, U as ThemePreference, Ui as ResourceKindContribution, Un as DataTableRendererColumn, Ur as TreeRendererState, Ut as KeybindingRegistry, V as createWorkbenchInput, Vi as WorkbenchBreadcrumbItem, Vn as FileRendererSaveResult, Vr as TreeRendererContribution, W as ThemePreferenceMode, Wi as ResourceListContext, Wn as DataTableRendererColumnRenderer, Wr as TreeViewSection, Wt as KeybindingSequence, X as WorkbenchStatusRegistry, Xi as getWorkbenchSelectionResourceKeys, Xn as DataTableRendererRowAction, Xr as WorkbenchFocusController, Xt as CommandPaletteResourceResult, Y as FileIconThemePreferenceOption, Yi as createWorkbenchSelectionResourceMetadata, Yn as DataTableRendererRow, Yt as CommandPaletteResourceRegistry, Z as WorkbenchStatusRegistryState, Zi as workbenchResourceIdContextKey, Zn as DataTableRendererSelectionAction, Zr as WorkbenchFocusRegionId, Zt as WorkbenchTerminalController, _ as workbenchTopHeaderTrailingMenuPath, _i as WorkbenchPanelMenuSide, _n as WorkbenchPageLocationPersistence, _r as KanbanRendererRow, _t as SettingsScope, a as StandardResourceIcon, aa as WorkbenchViewHierarchyNode, ai as WorkbenchPanelTab, an as WorkbenchTerminalSessionStatus, ar as BoardColumnAction, at as WorkbenchStatusBarRegistry, b as defaultPageResourceCodec, bi as workbenchPanelRegions, bn as WorkbenchPlacementPresentation, br as KanbanRendererViewsSource, bt as PreferencePersistenceAdapter, c as dockedWorkbenchRegions, ca as ContributionMetadata, ci as WorkbenchTabAction, cn as WorkbenchShellOpenRegion, cr as CollectionViewsProvider, ct as createStatusBarRegistry, d as headerTrailingMenuPath, da as ContextKeyService, di as WorkbenchTabPosition, dr as EnumOptions, dt as SettingsAction, ea as workbenchResourceTypeContextKey, en as WorkbenchTerminalSessionExit, er as AttributeDescriptor, et as WorkflowStatusAction, f as resourceContextMenuPath, fa as ContextKeyValue, fi as WorkbenchTabRetention, fn as PersistedWorkbenchPageLocation, fr as EnumOptionsSource, ft as SettingsCollectionGroupBy, g as workbenchTopHeaderLeadingMenuPath, gi as WorkbenchPanelMenuRegion, gn as WorkbenchPageLocationDiagnostic, gr as KanbanRendererCreateSubmission, gt as SettingsRegistry, h as workbenchRegionTabLeadingMenuPath, hi as WorkbenchWidgetTab, hn as WorkbenchPageLocationController, hr as KanbanRendererCreateRowConfig, ht as SettingsPanelPreference, i as rendererReadKey, ia as WorkbenchHierarchyNode, ii as WorkbenchPanelMountStrategy, in as WorkbenchTerminalSessionSink, it as WorkbenchStatusBarPosition, j as WorkbenchCore, ji as WorkbenchCommandPaletteOpenInput, jn as RendererReadBinding, jr as NavigationTreeOwner, jt as WorkbenchOverlayContribution, k as WorkbenchModeRegistry, ki as NavigationTargetPanel, kn as createViewRegistry, kr as NavigationTreeContext, kt as WorkbenchPlaceholderContribution, l as getNavigationTargetKey, la as ContributionSource, li as WorkbenchTabMenuGroup, ln as WorkbenchShellRegionState, lr as CollectionViewsSource, lt as CollectionSettingsPanel, m as workbenchRegionTabAddMenuPath, ma as Disposable, mi as WorkbenchWidgetPlacement, mn as WorkbenchPageLocationBrowser, mr as KanbanRendererCreateFieldType, mt as SettingsPanelContribution, n as runUserAction, na as ResourceHierarchyCycle, ni as WorkbenchLayout, nn as WorkbenchTerminalSessionOpener, nr as AttributeKind, nt as WorkbenchStatusBarItem, o as standardResourceIcons, oa as isWorkbenchViewHierarchyNode, oi as WorkbenchRegionSize, on as WorkbenchTerminalState, or as BoardColumnConfig, ot as WorkbenchStatusBarRegistryState, p as workbenchCommandPaletteMenuPath, pa as matchesContextExpression, pi as WorkbenchTabSnapshot, pn as WorkbenchPageBrowserEntry, pr as KanbanRendererCreateField, pt as SettingsPanelBase, q as FileIconThemeRegistry, qi as ResourceRegistry, qn as DataTableRendererQueryContext, qr as MenuPath, qt as CommandPaletteResourceProviderResult, r as settleReadBatch, ra as ResourceHierarchyProvider, ri as WorkbenchPanelInstance, rn as WorkbenchTerminalSessionRequest, rr as AttributeType, rt as WorkbenchStatusBarPersistenceAdapter, s as DockedWorkbenchRegion, sa as resourceHierarchyCycleCode, si as WorkbenchSidePanelMode, sn as WorkbenchShellController, sr as CollectionSavedView, st as WorkbenchStatusBarSlot, t as batchWorkbenchChanges, ta as workbenchSelectionResourceKeyMetadataKey, ti as WorkbenchCommandTarget, tn as WorkbenchTerminalSessionModel, tr as AttributeDisplayDescriptor, tt as createStatusRegistry, u as headerLeadingMenuPath, ua as ContextKeyScope, ui as WorkbenchTabMenuRow, un as WorkbenchSidePanelPresentation, ur as EnumOption, ut as SchemaSettingsPanel, v as AnchorId, vi as WorkbenchPanelRegion, vn as WorkbenchPageNavigationResult, vr as KanbanRendererSettings, vt as SettingsSectionContribution, w as WorkbenchModeActivationContext, wi as NavigationRegistry, wn as WorkbenchReactViewBody, wr as ControlsQueryResult, wt as PreferenceScope, x as createLevelNavigation, xi as workbenchRegions, xn as WorkbenchViewMenuContribution, xr as ResourceContextAction, xt as PreferencePropertySchema, y as resolveAnchorRegion, yi as WorkbenchRegion, yr as KanbanRendererViewsProvider, yt as ViewSettingsPanel, z as WorkbenchPersistenceAdapter, zi as WorkbenchCommandExecutionError, zn as FileRendererRefreshEnvelope, zr as TreeNodeInlineInput, zt as WorkbenchModePlacementContribution } from "./index-BUtrxfUl.js";
2
- export { type AnchorId, type AttributeDescriptor, type AttributeDisplayDescriptor, type AttributeKind, type AttributeType, type BoardColumnAction, type BoardColumnConfig, type CollectionSavedView, type CollectionSettingsPanel, type CollectionViewsProvider, type CollectionViewsSource, type Command, type CommandHandler, type CommandPaletteResourceProvider, type CommandPaletteResourceProviderResult, type CommandPaletteResourceQueryContext, type CommandPaletteResourceRegistry, type CommandPaletteResourceResult, type CommandParamDescriptor, type CommandParamOption, type CommandParamSchema, type CommandRegistry, type ContextKeyScope, type ContextKeyService, type ContextKeyValue, type ContributionMetadata, type ContributionSource, type ControlsApplyInput, type ControlsQueryResult, type ControlsRendererContribution, type ControlsRendererLayout, type ControlsResetInput, type ControlsUpdateValueInput, type DataTableRendererBadgePalette, type DataTableRendererColumn, type DataTableRendererColumnRenderer, type DataTableRendererColumnStat, type DataTableRendererContribution, type DataTableRendererQueryContext, type DataTableRendererQueryResult, type DataTableRendererRow, type DataTableRendererRowAction, type DataTableRendererSelectionAction, type DataTableRendererThemeColor, type Disposable, type DockedWorkbenchRegion, type EnumOption, type EnumOptions, type EnumOptionsSource, type FileIconThemeFont, type FileIconThemePreferenceOption, type FileIconThemeRegistry, type FileRendererContent, type FileRendererContribution, type FileRendererRefreshEnvelope, type FileRendererRefreshOrigin, type FileRendererSaveResult, type KanbanRendererContribution, type KanbanRendererCreateField, type KanbanRendererCreateFieldType, type KanbanRendererCreateRowConfig, type KanbanRendererCreateSubmission, type KanbanRendererQueryState, type KanbanRendererRow, type KanbanRendererSettings, type KanbanRendererViewsProvider, type KanbanRendererViewsSource, type Keybinding, type KeybindingRegistry, type KeybindingSequence, type LayoutPersistenceAdapter, type MenuItem, type MenuPath, type MenuRegistry, type NavigationDispatcherContext, type NavigationParser, type NavigationRegistry, type NavigationTarget, type NavigationTargetCommand, type NavigationTargetCompound, type NavigationTargetItem, type NavigationTargetPanel, type NavigationTreeContext, type NavigationTreeContribution, type NavigationTreeOwner, type NavigationTreeRegistry, type NavigationTreeSlot, type NotificationRegistry, type PersistedWorkbenchPageLocation, type PreferencePersistenceAdapter, type PreferencePropertySchema, type PreferenceRegistry, type PreferenceSchemaContribution, type PreferenceScope, type PreferenceScopeRef, type PreferenceValue, type RegisteredWorkbenchView, type RendererReadBinding, type RendererReadRegistry, type RendererReadRequest, type ResourceBrowseEntry, type ResourceContextAction, type ResourceHierarchyCycle, type ResourceHierarchyProvider, type ResourceKindContribution, type ResourceListContext, type ResourceProvider, type ResourceRef, type ResourceRegistry, type SchemaSettingsPanel, type SettingsAction, type SettingsCollectionGroupBy, type SettingsPanelBase, type SettingsPanelContribution, type SettingsPanelPreference, type SettingsRegistry, type SettingsScope, type SettingsSectionContribution, type StandardResourceIcon, type ThemePreference, type ThemePreferenceMode, type ThemePreferenceOption, type ThemePreferenceTokens, type ThemeRegistry, type TreeAction, type TreeContext, type TreeMoveEndpoint, type TreeMovePolicy, type TreeNode, type TreeNodeInlineInput, type TreeQueryContext, type TreeRendererContribution, type TreeRendererState, type TreeViewSection, type ViewMode, type ViewSettingsPanel, type WorkbenchBreadcrumbController, type WorkbenchBreadcrumbItem, type WorkbenchCommandExecutionContext, type WorkbenchCommandExecutionError, type WorkbenchCommandPaletteController, type WorkbenchCommandPaletteOpenInput, type WorkbenchCommandTarget, type WorkbenchCore, type WorkbenchFocusController, type WorkbenchFocusRegionId, type WorkbenchHierarchyNode, type WorkbenchHost, type WorkbenchLayout, type WorkbenchModeActivationContext, type WorkbenchModeActivationResult, type WorkbenchModeAddablePanel, type WorkbenchModeAddablePanelContext, type WorkbenchModeContribution, type WorkbenchModePlacementContribution, type WorkbenchModePlacementRegistry, type WorkbenchModeRegistry, type WorkbenchModuleContext, type WorkbenchModuleContribution, type WorkbenchModuleContributionContext, type WorkbenchNotification, type WorkbenchNotificationAction, type WorkbenchNotificationEvent, type WorkbenchNotificationLevel, type WorkbenchOverlayContribution, type WorkbenchOverlayRegistry, type WorkbenchPageBrowserEntry, type WorkbenchPageLocationBrowser, type WorkbenchPageLocationController, type WorkbenchPageLocationDiagnostic, type WorkbenchPageLocationPersistence, type WorkbenchPageNavigationResult, type WorkbenchPagePersistenceScope, type WorkbenchPagePersistenceScopeInput, type WorkbenchPanelInstance, type WorkbenchPanelMenuRegion, type WorkbenchPanelMenuSide, type WorkbenchPanelMountStrategy, type WorkbenchPanelRegion, type WorkbenchPanelRenderInput, type WorkbenchPanelTab, type WorkbenchPersistenceAdapter, type WorkbenchPlaceholderContribution, type WorkbenchPlaceholderRegistry, type WorkbenchPlacementPresentation, type WorkbenchReactViewBody, type WorkbenchRegion, type WorkbenchRegionSize, type WorkbenchShellController, type WorkbenchShellOpenRegion, type WorkbenchShellPlacementContribution, type WorkbenchShellPlacementRegistry, type WorkbenchShellRegionState, type WorkbenchSidePanelMode, type WorkbenchSidePanelPresentation, type WorkbenchSnapshot, type WorkbenchStatusBarItem, type WorkbenchStatusBarPersistenceAdapter, type WorkbenchStatusBarPosition, type WorkbenchStatusBarRegistry, type WorkbenchStatusBarRegistryState, type WorkbenchStatusBarSlot, type WorkbenchStatusRegistry, type WorkbenchStatusRegistryState, type WorkbenchStatusSetContribution, type WorkbenchTabAction, type WorkbenchTabMenuGroup, type WorkbenchTabMenuRow, type WorkbenchTabPosition, type WorkbenchTabRetention, type WorkbenchTabSnapshot, type WorkbenchTerminalController, type WorkbenchTerminalSessionAdapter, type WorkbenchTerminalSessionError, type WorkbenchTerminalSessionExit, type WorkbenchTerminalSessionModel, type WorkbenchTerminalSessionOpener, type WorkbenchTerminalSessionRequest, type WorkbenchTerminalSessionSink, type WorkbenchTerminalSessionStatus, type WorkbenchTerminalState, type WorkbenchViewBody, type WorkbenchViewContribution, type WorkbenchViewHierarchyNode, type WorkbenchViewMenuContribution, type WorkbenchViewMenuRegistry, type WorkbenchViewRegistry, type WorkbenchViewRegistryStoreState, type WorkbenchWidgetPlacement, type WorkbenchWidgetTab, type WorkflowStatus, type WorkflowStatusAction, batchWorkbenchChanges, createLevelNavigation, createRendererReadRegistry, createStatusBarRegistry, createStatusRegistry, createViewRegistry, createWorkbench, type createWorkbenchInput, createWorkbenchResourceContextValues, createWorkbenchSelectionResourceMetadata, defaultPageResourceCodec, dockedWorkbenchRegions, getKeybindingSteps, getNavigationTargetKey, getWorkbenchModePanelForRegion, getWorkbenchSelectionResourceKeys, headerLeadingMenuPath, headerTrailingMenuPath, isWorkbenchModePanelAvailable, isWorkbenchViewHierarchyNode, matchesContextExpression, rendererReadKey, resolveAnchorRegion, resourceContextMenuPath, resourceHierarchyCycleCode, runUserAction, settleReadBatch, standardResourceIcons, workbenchCommandPaletteMenuPath, workbenchPanelRegions, workbenchRegionTabAddMenuPath, workbenchRegionTabLeadingMenuPath, workbenchRegions, workbenchResourceIdContextKey, workbenchResourceMetadataContextKey, workbenchResourceOwnerContextKey, workbenchResourceTypeContextKey, workbenchSelectionResourceKeyMetadataKey, workbenchTopHeaderLeadingMenuPath, workbenchTopHeaderTrailingMenuPath, workbenchViewIdContextKey };
1
+ import { $ as WorkbenchStatusSetContribution, $i as workbenchResourceMetadataContextKey, $n as DataTableRendererThemeColor, $r as LayoutPersistenceAdapter, $t as WorkbenchTerminalSessionAdapter, A as WorkbenchModeRegistry, Ai as NavigationTargetPanel, An as createViewRegistry, Ar as NavigationTreeContext, At as WorkbenchPlaceholderContribution, B as WorkbenchPersistenceAdapter, Bi as WorkbenchCommandExecutionError, Bn as FileRendererRefreshEnvelope, Br as TreeNodeInlineInput, Bt as WorkbenchModePlacementContribution, C as getWorkbenchModePanelForRegion, Ci as NavigationDispatcherContext, Cn as WorkbenchViewMenuRegistry, Cr as ViewMode, Ct as PreferenceRegistry, D as WorkbenchModeAddablePanel, Di as NavigationTargetCommand, Dn as WorkbenchViewContribution, Dr as ControlsRendererLayout, Dt as PreferenceValue, E as WorkbenchModeActivationResult, Ei as NavigationTarget, En as WorkbenchViewBody, Er as ControlsRendererContribution, Et as PreferenceScopeRef, F as WorkbenchModuleContext, Fi as CommandParamDescriptor, Fn as createRendererReadRegistry, Fr as TreeAction, G as ThemePreferenceMode, Gi as ResourceListContext, Gn as DataTableRendererColumnRenderer, Gr as TreeViewSection, Gt as KeybindingSequence, H as createWorkbenchInput, Hi as WorkbenchBreadcrumbItem, Hn as FileRendererSaveResult, Hr as TreeRendererContribution, I as WorkbenchModuleContribution, Ii as CommandParamOption, In as KanbanRendererContribution, Ir as TreeContext, It as WorkbenchNotification, J as FileIconThemeRegistry, Ji as ResourceRegistry, Jn as DataTableRendererQueryContext, Jr as MenuPath, Jt as CommandPaletteResourceProviderResult, K as ThemePreferenceOption, Ki as ResourceProvider, Kn as DataTableRendererColumnStat, Kr as WorkbenchPanelRenderInput, Kt as getKeybindingSteps, L as WorkbenchModuleContributionContext, Li as CommandParamSchema, Ln as KanbanRendererQueryState, Lr as TreeMoveEndpoint, Lt as WorkbenchNotificationAction, M as WorkbenchCore, Mi as WorkbenchCommandPaletteOpenInput, Mn as RendererReadBinding, Mr as NavigationTreeOwner, Mt as WorkbenchOverlayContribution, Ni as Command, Nn as RendererReadRegistry, Nr as NavigationTreeRegistry, Nt as WorkbenchOverlayRegistry, O as WorkbenchModeAddablePanelContext, Oi as NavigationTargetCompound, On as WorkbenchViewRegistry, Or as ControlsResetInput, Ot as WorkbenchShellPlacementContribution, P as WorkbenchHost, Pi as CommandHandler, Pn as RendererReadRequest, Pr as NavigationTreeSlot, Pt as NotificationRegistry, Q as WorkbenchStatusRegistryState, Qi as workbenchResourceIdContextKey, Qn as DataTableRendererSelectionAction, Qr as WorkbenchFocusRegionId, Qt as WorkbenchTerminalController, R as WorkbenchPagePersistenceScope, Ri as CommandRegistry, Rn as FileRendererContent, Rr as TreeMovePolicy, Rt as WorkbenchNotificationEvent, S as createLevelNavigation, Si as workbenchRegions, Sn as WorkbenchViewMenuContribution, Sr as ResourceContextAction, St as PreferencePropertySchema, T as WorkbenchModeActivationContext, Ti as NavigationRegistry, Tn as WorkbenchReactViewBody, Tr as ControlsQueryResult, Tt as PreferenceScope, U as ThemeRegistry, Ui as ResourceBrowseEntry, Un as DataTableRendererBadgePalette, Ut as Keybinding, V as WorkbenchSnapshot, Vi as WorkbenchBreadcrumbController, Vn as FileRendererRefreshOrigin, Vr as TreeQueryContext, Vt as WorkbenchModePlacementRegistry, W as ThemePreference, Wi as ResourceKindContribution, Wn as DataTableRendererColumn, Wr as TreeRendererState, Wt as KeybindingRegistry, X as FileIconThemePreferenceOption, Xi as createWorkbenchSelectionResourceMetadata, Xn as DataTableRendererRow, Xt as CommandPaletteResourceRegistry, Y as FileIconThemeFont, Yi as createWorkbenchResourceContextValues, Yn as DataTableRendererQueryResult, Yr as MenuRegistry, Yt as CommandPaletteResourceQueryContext, Z as WorkbenchStatusRegistry, Zi as getWorkbenchSelectionResourceKeys, Zn as DataTableRendererRowAction, Zr as WorkbenchFocusController, Zt as CommandPaletteResourceResult, _ as workbenchTopHeaderLeadingMenuPath, _i as WorkbenchPanelMenuRegion, _n as WorkbenchPageLocationDiagnostic, _r as KanbanRendererCreateSubmission, _t as SettingsRegistry, a as StandardResourceIcon, aa as WorkbenchHierarchyNode, ai as WorkbenchPanelMountStrategy, an as WorkbenchTerminalSessionSink, at as WorkbenchStatusBarPosition, b as resolveAnchorRegion, bi as WorkbenchRegion, br as KanbanRendererViewsProvider, bt as ViewSettingsPanel, c as dockedWorkbenchRegions, ca as resourceHierarchyCycleCode, ci as WorkbenchSidePanelMode, cn as WorkbenchShellController, cr as CollectionSavedView, ct as WorkbenchStatusBarSlot, d as headerTrailingMenuPath, da as ContextKeyScope, di as WorkbenchTabMenuRow, dn as WorkbenchSidePanelPresentation, dr as EnumOption, dt as SchemaSettingsPanel, ea as workbenchResourceOwnerContextKey, en as WorkbenchTerminalSessionError, et as WorkflowStatus, f as resourceContextMenuPath, fa as ContextKeyService, fi as WorkbenchTabPosition, fr as EnumOptions, ft as SettingsAction, g as workbenchRegionTabLeadingMenuPath, gi as WorkbenchWidgetTab, gn as WorkbenchPageLocationController, gr as KanbanRendererCreateRowConfig, gt as SettingsPanelPreference, h as workbenchRegionTabAddMenuPath, ha as Disposable, hi as WorkbenchWidgetPlacement, hn as WorkbenchPageLocationBrowser, hr as KanbanRendererCreateFieldType, ht as SettingsPanelContribution, i as rendererReadKey, ia as ResourceHierarchyProvider, ii as WorkbenchPanelInstance, in as WorkbenchTerminalSessionRequest, ir as AttributeType, it as WorkbenchStatusBarPersistenceAdapter, j as createWorkbench, ji as WorkbenchCommandPaletteController, jn as workbenchViewIdContextKey, jr as NavigationTreeContribution, jt as WorkbenchPlaceholderRegistry, k as WorkbenchModeContribution, ki as NavigationTargetItem, kn as WorkbenchViewRegistryStoreState, kr as ControlsUpdateValueInput, kt as WorkbenchShellPlacementRegistry, l as getNavigationTargetKey, la as ContributionMetadata, li as WorkbenchTabAction, ln as WorkbenchShellOpenRegion, lr as CollectionViewsProvider, lt as createStatusBarRegistry, m as workbenchCommandPaletteMenuPath, ma as matchesContextExpression, mi as WorkbenchTabSnapshot, mn as WorkbenchPageBrowserEntry, mr as KanbanRendererCreateField, mt as SettingsPanelBase, n as runUserAction, na as workbenchSelectionResourceKeyMetadataKey, ni as WorkbenchCommandTarget, nn as WorkbenchTerminalSessionModel, nr as AttributeDisplayDescriptor, nt as createStatusRegistry, o as standardResourceIcons, oa as WorkbenchViewHierarchyNode, oi as WorkbenchPanelTab, on as WorkbenchTerminalSessionStatus, or as BoardColumnAction, ot as WorkbenchStatusBarRegistry, p as workbenchBreadcrumbLocationMenuPath, pa as ContextKeyValue, pi as WorkbenchTabRetention, pn as PersistedWorkbenchPageLocation, pr as EnumOptionsSource, pt as SettingsCollectionGroupBy, q as ThemePreferenceTokens, qi as ResourceRef, qn as DataTableRendererContribution, qr as MenuItem, qt as CommandPaletteResourceProvider, r as settleReadBatch, ra as ResourceHierarchyCycle, ri as WorkbenchLayout, rn as WorkbenchTerminalSessionOpener, rr as AttributeKind, rt as WorkbenchStatusBarItem, s as DockedWorkbenchRegion, sa as isWorkbenchViewHierarchyNode, si as WorkbenchRegionSize, sn as WorkbenchTerminalState, sr as BoardColumnConfig, st as WorkbenchStatusBarRegistryState, t as batchWorkbenchChanges, ta as workbenchResourceTypeContextKey, tn as WorkbenchTerminalSessionExit, tr as AttributeDescriptor, tt as WorkflowStatusAction, u as headerLeadingMenuPath, ua as ContributionSource, ui as WorkbenchTabMenuGroup, un as WorkbenchShellRegionState, ur as CollectionViewsSource, ut as CollectionSettingsPanel, v as workbenchTopHeaderTrailingMenuPath, vi as WorkbenchPanelMenuSide, vn as WorkbenchPageLocationPersistence, vr as KanbanRendererRow, vt as SettingsScope, w as isWorkbenchModePanelAvailable, wi as NavigationParser, wn as RegisteredWorkbenchView, wr as ControlsApplyInput, wt as PreferenceSchemaContribution, x as defaultPageResourceCodec, xi as workbenchPanelRegions, xn as WorkbenchPlacementPresentation, xr as KanbanRendererViewsSource, xt as PreferencePersistenceAdapter, y as AnchorId, yi as WorkbenchPanelRegion, yn as WorkbenchPageNavigationResult, yr as KanbanRendererSettings, yt as SettingsSectionContribution, z as WorkbenchPagePersistenceScopeInput, zi as WorkbenchCommandExecutionContext, zn as FileRendererContribution, zr as TreeNode, zt as WorkbenchNotificationLevel } from "./index-dbYXNnIr.js";
2
+ export { type AnchorId, type AttributeDescriptor, type AttributeDisplayDescriptor, type AttributeKind, type AttributeType, type BoardColumnAction, type BoardColumnConfig, type CollectionSavedView, type CollectionSettingsPanel, type CollectionViewsProvider, type CollectionViewsSource, type Command, type CommandHandler, type CommandPaletteResourceProvider, type CommandPaletteResourceProviderResult, type CommandPaletteResourceQueryContext, type CommandPaletteResourceRegistry, type CommandPaletteResourceResult, type CommandParamDescriptor, type CommandParamOption, type CommandParamSchema, type CommandRegistry, type ContextKeyScope, type ContextKeyService, type ContextKeyValue, type ContributionMetadata, type ContributionSource, type ControlsApplyInput, type ControlsQueryResult, type ControlsRendererContribution, type ControlsRendererLayout, type ControlsResetInput, type ControlsUpdateValueInput, type DataTableRendererBadgePalette, type DataTableRendererColumn, type DataTableRendererColumnRenderer, type DataTableRendererColumnStat, type DataTableRendererContribution, type DataTableRendererQueryContext, type DataTableRendererQueryResult, type DataTableRendererRow, type DataTableRendererRowAction, type DataTableRendererSelectionAction, type DataTableRendererThemeColor, type Disposable, type DockedWorkbenchRegion, type EnumOption, type EnumOptions, type EnumOptionsSource, type FileIconThemeFont, type FileIconThemePreferenceOption, type FileIconThemeRegistry, type FileRendererContent, type FileRendererContribution, type FileRendererRefreshEnvelope, type FileRendererRefreshOrigin, type FileRendererSaveResult, type KanbanRendererContribution, type KanbanRendererCreateField, type KanbanRendererCreateFieldType, type KanbanRendererCreateRowConfig, type KanbanRendererCreateSubmission, type KanbanRendererQueryState, type KanbanRendererRow, type KanbanRendererSettings, type KanbanRendererViewsProvider, type KanbanRendererViewsSource, type Keybinding, type KeybindingRegistry, type KeybindingSequence, type LayoutPersistenceAdapter, type MenuItem, type MenuPath, type MenuRegistry, type NavigationDispatcherContext, type NavigationParser, type NavigationRegistry, type NavigationTarget, type NavigationTargetCommand, type NavigationTargetCompound, type NavigationTargetItem, type NavigationTargetPanel, type NavigationTreeContext, type NavigationTreeContribution, type NavigationTreeOwner, type NavigationTreeRegistry, type NavigationTreeSlot, type NotificationRegistry, type PersistedWorkbenchPageLocation, type PreferencePersistenceAdapter, type PreferencePropertySchema, type PreferenceRegistry, type PreferenceSchemaContribution, type PreferenceScope, type PreferenceScopeRef, type PreferenceValue, type RegisteredWorkbenchView, type RendererReadBinding, type RendererReadRegistry, type RendererReadRequest, type ResourceBrowseEntry, type ResourceContextAction, type ResourceHierarchyCycle, type ResourceHierarchyProvider, type ResourceKindContribution, type ResourceListContext, type ResourceProvider, type ResourceRef, type ResourceRegistry, type SchemaSettingsPanel, type SettingsAction, type SettingsCollectionGroupBy, type SettingsPanelBase, type SettingsPanelContribution, type SettingsPanelPreference, type SettingsRegistry, type SettingsScope, type SettingsSectionContribution, type StandardResourceIcon, type ThemePreference, type ThemePreferenceMode, type ThemePreferenceOption, type ThemePreferenceTokens, type ThemeRegistry, type TreeAction, type TreeContext, type TreeMoveEndpoint, type TreeMovePolicy, type TreeNode, type TreeNodeInlineInput, type TreeQueryContext, type TreeRendererContribution, type TreeRendererState, type TreeViewSection, type ViewMode, type ViewSettingsPanel, type WorkbenchBreadcrumbController, type WorkbenchBreadcrumbItem, type WorkbenchCommandExecutionContext, type WorkbenchCommandExecutionError, type WorkbenchCommandPaletteController, type WorkbenchCommandPaletteOpenInput, type WorkbenchCommandTarget, type WorkbenchCore, type WorkbenchFocusController, type WorkbenchFocusRegionId, type WorkbenchHierarchyNode, type WorkbenchHost, type WorkbenchLayout, type WorkbenchModeActivationContext, type WorkbenchModeActivationResult, type WorkbenchModeAddablePanel, type WorkbenchModeAddablePanelContext, type WorkbenchModeContribution, type WorkbenchModePlacementContribution, type WorkbenchModePlacementRegistry, type WorkbenchModeRegistry, type WorkbenchModuleContext, type WorkbenchModuleContribution, type WorkbenchModuleContributionContext, type WorkbenchNotification, type WorkbenchNotificationAction, type WorkbenchNotificationEvent, type WorkbenchNotificationLevel, type WorkbenchOverlayContribution, type WorkbenchOverlayRegistry, type WorkbenchPageBrowserEntry, type WorkbenchPageLocationBrowser, type WorkbenchPageLocationController, type WorkbenchPageLocationDiagnostic, type WorkbenchPageLocationPersistence, type WorkbenchPageNavigationResult, type WorkbenchPagePersistenceScope, type WorkbenchPagePersistenceScopeInput, type WorkbenchPanelInstance, type WorkbenchPanelMenuRegion, type WorkbenchPanelMenuSide, type WorkbenchPanelMountStrategy, type WorkbenchPanelRegion, type WorkbenchPanelRenderInput, type WorkbenchPanelTab, type WorkbenchPersistenceAdapter, type WorkbenchPlaceholderContribution, type WorkbenchPlaceholderRegistry, type WorkbenchPlacementPresentation, type WorkbenchReactViewBody, type WorkbenchRegion, type WorkbenchRegionSize, type WorkbenchShellController, type WorkbenchShellOpenRegion, type WorkbenchShellPlacementContribution, type WorkbenchShellPlacementRegistry, type WorkbenchShellRegionState, type WorkbenchSidePanelMode, type WorkbenchSidePanelPresentation, type WorkbenchSnapshot, type WorkbenchStatusBarItem, type WorkbenchStatusBarPersistenceAdapter, type WorkbenchStatusBarPosition, type WorkbenchStatusBarRegistry, type WorkbenchStatusBarRegistryState, type WorkbenchStatusBarSlot, type WorkbenchStatusRegistry, type WorkbenchStatusRegistryState, type WorkbenchStatusSetContribution, type WorkbenchTabAction, type WorkbenchTabMenuGroup, type WorkbenchTabMenuRow, type WorkbenchTabPosition, type WorkbenchTabRetention, type WorkbenchTabSnapshot, type WorkbenchTerminalController, type WorkbenchTerminalSessionAdapter, type WorkbenchTerminalSessionError, type WorkbenchTerminalSessionExit, type WorkbenchTerminalSessionModel, type WorkbenchTerminalSessionOpener, type WorkbenchTerminalSessionRequest, type WorkbenchTerminalSessionSink, type WorkbenchTerminalSessionStatus, type WorkbenchTerminalState, type WorkbenchViewBody, type WorkbenchViewContribution, type WorkbenchViewHierarchyNode, type WorkbenchViewMenuContribution, type WorkbenchViewMenuRegistry, type WorkbenchViewRegistry, type WorkbenchViewRegistryStoreState, type WorkbenchWidgetPlacement, type WorkbenchWidgetTab, type WorkflowStatus, type WorkflowStatusAction, batchWorkbenchChanges, createLevelNavigation, createRendererReadRegistry, createStatusBarRegistry, createStatusRegistry, createViewRegistry, createWorkbench, type createWorkbenchInput, createWorkbenchResourceContextValues, createWorkbenchSelectionResourceMetadata, defaultPageResourceCodec, dockedWorkbenchRegions, getKeybindingSteps, getNavigationTargetKey, getWorkbenchModePanelForRegion, getWorkbenchSelectionResourceKeys, headerLeadingMenuPath, headerTrailingMenuPath, isWorkbenchModePanelAvailable, isWorkbenchViewHierarchyNode, matchesContextExpression, rendererReadKey, resolveAnchorRegion, resourceContextMenuPath, resourceHierarchyCycleCode, runUserAction, settleReadBatch, standardResourceIcons, workbenchBreadcrumbLocationMenuPath, workbenchCommandPaletteMenuPath, workbenchPanelRegions, workbenchRegionTabAddMenuPath, workbenchRegionTabLeadingMenuPath, workbenchRegions, workbenchResourceIdContextKey, workbenchResourceMetadataContextKey, workbenchResourceOwnerContextKey, workbenchResourceTypeContextKey, workbenchSelectionResourceKeyMetadataKey, workbenchTopHeaderLeadingMenuPath, workbenchTopHeaderTrailingMenuPath, workbenchViewIdContextKey };
3
3
  export {};