@pstdio/ui 0.37.0 → 0.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{MermaidComponent-BLMDb5XE.js → MermaidComponent-81jr28u4.js} +2 -2
- package/dist/{MermaidComponent-BLMDb5XE.js.map → MermaidComponent-81jr28u4.js.map} +1 -1
- package/dist/chat-ui.d.ts +6 -6
- package/dist/chat-ui.js +1 -1
- package/dist/{data-table-stats-row-BrpOFzgn.js → data-table-stats-row-CpRe_xK2.js} +2 -2
- package/dist/{data-table-stats-row-BrpOFzgn.js.map → data-table-stats-row-CpRe_xK2.js.map} +1 -1
- package/dist/data-table.d.ts +3 -1
- package/dist/data-table.js +7 -10
- package/dist/data-table.js.map +1 -1
- package/dist/{diff-viewer-hGkaF_zW.js → diff-viewer-DJ1B5hxL.js} +3 -3
- package/dist/{diff-viewer-hGkaF_zW.js.map → diff-viewer-DJ1B5hxL.js.map} +1 -1
- package/dist/diff.js +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.js +111 -99
- package/dist/index.js.map +1 -1
- package/dist/kanban-renderer.d.ts +9 -21
- package/dist/kanban-renderer.js +276 -274
- package/dist/kanban-renderer.js.map +1 -1
- package/dist/{list-row-De9R2zKU.js → list-row-uqD-q4gv.js} +20 -10
- package/dist/list-row-uqD-q4gv.js.map +1 -0
- package/dist/{param-editor-BsyIOdrP.js → param-editor-BQd4AOUP.js} +2 -2
- package/dist/{param-editor-BsyIOdrP.js.map → param-editor-BQd4AOUP.js.map} +1 -1
- package/dist/{param-editor-field-qEWoluWT.js → param-editor-field-BJ_rLUnV.js} +728 -722
- package/dist/param-editor-field-BJ_rLUnV.js.map +1 -0
- package/dist/param-editor.d.ts +1 -0
- package/dist/param-editor.js +2 -2
- package/dist/{rich-text-CQAntEuA.js → rich-text-VYAmEigU.js} +1142 -1184
- package/dist/rich-text-VYAmEigU.js.map +1 -0
- package/dist/rich-text.js +1 -1
- package/dist/style.css +1 -1
- package/dist/{theme-BH-rGipZ.js → theme-BsOWAIi2.js} +31 -5
- package/dist/theme-BsOWAIi2.js.map +1 -0
- package/dist/theme.js +1 -1
- package/dist/{tree-list-BUfDQz3v.js → tree-list-WhISG-cz.js} +637 -488
- package/dist/tree-list-WhISG-cz.js.map +1 -0
- package/dist/{types-yjKBk07w.d.ts → types-DWA3enV6.d.ts} +22 -1
- package/package.json +2 -2
- package/dist/list-row-De9R2zKU.js.map +0 -1
- package/dist/param-editor-field-qEWoluWT.js.map +0 -1
- package/dist/rich-text-CQAntEuA.js.map +0 -1
- package/dist/theme-BH-rGipZ.js.map +0 -1
- package/dist/tree-list-BUfDQz3v.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as e } from "./scroll-area-Cr1lNXAr.js";
|
|
2
|
-
import {
|
|
3
|
-
import { r, t as i } from "./tree-list-
|
|
2
|
+
import { o as t, t as n } from "./list-row-uqD-q4gv.js";
|
|
3
|
+
import { r, t as i } from "./tree-list-WhISG-cz.js";
|
|
4
4
|
import { t as a } from "./empty-state-3mVV_pV-.js";
|
|
5
5
|
import { t as o } from "./diff-bubble-DZsarmSG.js";
|
|
6
6
|
import { n as s, t as c } from "./file-change-badge-0QFNv82B.js";
|
|
@@ -555,4 +555,4 @@ function he(e) {
|
|
|
555
555
|
//#endregion
|
|
556
556
|
export { J as DiffViewer };
|
|
557
557
|
|
|
558
|
-
//# sourceMappingURL=diff-viewer-
|
|
558
|
+
//# sourceMappingURL=diff-viewer-DJ1B5hxL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-viewer-hGkaF_zW.js","names":["ChangedFilesViewMode","ChangedFileTreeNode","normalizeChangedFilePath","path","split","map","segment","trim","filter","Boolean","join","sortNodes","nodes","sort","left","right","type","name","localeCompare","forEach","node","children","dedupePaths","paths","Array","from","Set","buildFlatTree","id","buildChangedFilesTree","mode","treeById","Map","rootNodes","segments","parentPath","parentNode","index","currentPath","isFile","length","nodeId","existingNode","get","nextNode","set","push","collectExpandedFolderIds","folderIds","visit","items","item","collectNestedFileOrder","orderedPaths","treeNodes","replace","sortPathsByViewMode","Box","IconButton","Menu","Check","ChevronsDownUp","ChevronsUpDown","List","ListTree","PanelLeftClose","PanelLeftOpen","Rows2","Settings2","SquareSplitHorizontal","ReactNode","ListRow","ChangedFilesViewMode","DiffViewMode","DiffViewerOptionsMenuProps","isTreePanelOpen","hasFilePaths","viewMode","diffViewMode","isExpandAllDisabled","isCollapseAllDisabled","onToggleTreePanel","onViewModeChange","onDiffViewModeChange","onExpandAll","onCollapseAll","DiffViewerMenuItemProps","id","label","icon","selected","disabled","onActivate","SelectionIndicator","props","$","_c","t0","t1","DiffViewerMenuItem","undefined","t2","t3","DiffViewerOptionsMenu","Symbol","for","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","_c","_Fragment","Box","Icon","Input","InputGroup","Stack","Text","FileText","Search","useRef","Header","EmptyState","ScrollArea","TreeList","TreeListNode","buildChangedFilesTree","FileChangeBadge","ChangedFilesViewMode","ChangedFileTreeNode","FileIconInfo","FileListPanelProps","paths","selectedPath","viewMode","searchQuery","expandedFolderIds","Set","onSelectPath","path","onSearchQueryChange","value","onToggleFolder","id","resolveFileIcon","options","isFolder","isExpanded","changeByPath","Map","getFilePathParts","filePath","lastSlashIndex","lastIndexOf","fileName","dirPath","slice","renderFileLabel","node","name","toTreeListNodes","input","nodes","map","type","label","isContainer","children","replace","fileIcon","icon","color","change","get","iconColor","endContent","undefined","onActivate","FileListPanel","props","$","_c","scrollRef","t0","fileTree","treeNodes","emptyTitle","trim","t1","Symbol","for","t2","event","target","t3","t4","style","overflowX","t5","length","t6","_c","ScrollArea","EmptyState","Box","Flex","HStack","Skeleton","Stack","Text","useEffect","useState","Header","ResizableSplitLayout","EmptyState","buildChangedFilesTree","collectExpandedFolderIds","sortPathsByViewMode","DiffBubble","Diff","DiffDrawer","DiffDrawerExpansionState","DiffExpansionCommand","useDiffViewerStore","DiffViewerOptionsMenu","FileListPanel","ChangedFilesViewMode","FileIconInfo","DiffViewerProps","diffs","changedFilePaths","defaultSelectedPath","loading","onLoadDiff","path","Promise","resolveFileIcon","options","isFolder","isExpanded","getDiffPath","diff","newPath","oldPath","buildChangeByPath","Map","map","change","sumDiffStats","reduce","total","additions","deletions","buildFilteredDiffs","input","normalizedSearchQuery","viewMode","matchingDiffs","filter","toLowerCase","includes","orderedPaths","orderByPath","index","sort","left","right","leftOrder","get","Number","MAX_SAFE_INTEGER","rightOrder","resolveSelectedPath","preferredPaths","fallbackPaths","loadingDiffItems","const","DiffViewerLoading","$","_c","t0","Symbol","for","_temp","DiffViewer","props","t1","undefined","diffExpansionCommand","setDiffExpansionCommand","t2","allExpanded","allCollapsed","diffExpansionState","setDiffExpansionState","isTreePanelOpen","diffViewMode","searchQuery","selectedPath","expandedFolderIds","setTreePanelOpen","setViewMode","setDiffViewMode","setSearchQuery","setSelectedPath","setExpandedFolderIds","toggleFolder","expandAll","collapseAll","allFilesExpanded","changeByPath","emptyDiffTitle","filePaths","filteredDiffPathKey","filteredDiffPaths","filteredDiffs","filteredFilePathKey","filteredFilePaths","folderIds","hasDiffs","hasExpandableItems","resolvedSelectedPath","showDiffEmptyState","t3","totalDiff","diffPaths","trim","t4","fileTree","join","length","t5","folderId","has","every","t6","folderId_0","allFilesCollapsed","allDiffsExpanded","allDiffsCollapsed","isExpandAllDisabled","isCollapseAllDisabled","filePaths_0","split","tree","t7","diffPaths_0","filePaths_1","t8","_temp2","expandAllFilesAndDiffs","t9","_temp3","collapseAllFilesAndDiffs","t10","path_0","currentIndex","indexOf","nextIndex","direction","current_1","action","id","current","selectChangedFilePath","t11","t12","t13","t14","t15","t16","t17","t18","t19","diffPanel","t20","t21","t22","collapsed","t23","item","current_0","_c","EmptyState","ScrollArea$1","Header","ListRow","TreeList","EmptyState$1","DiffBubble","useDiffViewerStore","FileChangeBadge","normalizeChangedFilePath","path","segment","sortNodes","nodes","left","right","node","dedupePaths","paths","buildFlatTree","buildChangedFilesTree","mode","treeById","rootNodes","segments","parentPath","parentNode","currentPath","isFile","index","nodeId","existingNode","nextNode","collectExpandedFolderIds","folderIds","visit","item","collectNestedFileOrder","orderedPaths","sortPathsByViewMode","SelectionIndicator","$","c","t0","props","Check","t1","Box","DiffViewerMenuItem","selected","t2","disabled","icon","id","label","onActivate","t3","Menu","DiffViewerOptionsMenu","IconButton","Settings2","isTreePanelOpen","jsx","PanelLeftClose","PanelLeftOpen","onToggleTreePanel","t4","t5","hasFilePaths","onViewModeChange","viewMode","Fragment","ListTree","List","t6","Rows2","t7","diffViewMode","t8","onDiffViewModeChange","t9","t10","SquareSplitHorizontal","t11","t12","t13","t14","t15","ChevronsUpDown","t16","isExpandAllDisabled","onExpandAll","t17","ChevronsDownUp","t18","isCollapseAllDisabled","onCollapseAll","t19","getFilePathParts","lastSlashIndex","filePath","renderFileLabel","dirPath","Text","fileName","toTreeListNodes","input","fileIcon","resolveFileIcon","Icon","FileText","change","changeByPath","onSelectPath","FileListPanel","scrollRef","useRef","treeNodes","emptyTitle","searchQuery","Search","onSearchQueryChange","event","InputGroup","Input","expandedFolderIds","onToggleFolder","selectedPath","Stack","getDiffPath","diff","buildChangeByPath","diffs","sumDiffStats","total","buildFilteredDiffs","matchingDiffs","normalizedSearchQuery","orderByPath","resolveSelectedPath","preferredPaths","fallbackPaths","loadingDiffItems","DiffViewerLoading","_temp","DiffViewer","defaultSelectedPath","loading","diffExpansionCommand","setDiffExpansionCommand","useState","diffExpansionState","setDiffExpansionState","allFilesExpanded","emptyDiffTitle","filePaths","filteredDiffPathKey","filteredDiffPaths","filteredDiffs","filteredFilePathKey","filteredFilePaths","hasDiffs","hasExpandableItems","resolvedSelectedPath","showDiffEmptyState","totalDiff","changedFilePaths","diffPaths","fileTree","folderId","folderId_0","allFilesCollapsed","allDiffsExpanded","allDiffsCollapsed","setExpandedFolderIds","tree","useEffect","setSelectedPath","diffPaths_0","filePaths_1","expandAll","_temp2","expandAllFilesAndDiffs","collapseAll","_temp3","collapseAllFilesAndDiffs","currentIndex","nextIndex","path_0","direction","current_1","selectChangedFilePath","setTreePanelOpen","setDiffViewMode","setViewMode","HStack","onLoadDiff","DiffDrawer","diffPanel","t20","setSearchQuery","toggleFolder","t21","t22","collapsed","t23","Flex","ResizableSplitLayout","Skeleton","current","current_0"],"sources":["../src/components/diff-viewer/build-changed-files-tree.ts","../src/components/diff-viewer/diff-viewer-options-menu.tsx","../src/components/diff-viewer/file-list-panel.tsx","../src/components/diff-viewer/diff-viewer.tsx"],"sourcesContent":["import type { ChangedFilesViewMode, ChangedFileTreeNode } from \"./types\";\n\nconst normalizeChangedFilePath = (path: string) =>\n path\n .split(\"/\")\n .map((segment) => segment.trim())\n .filter(Boolean)\n .join(\"/\");\n\nconst sortNodes = (nodes: ChangedFileTreeNode[]) => {\n nodes.sort((left, right) => {\n if (left.type !== right.type) return left.type === \"folder\" ? -1 : 1;\n return left.name.localeCompare(right.name);\n });\n\n nodes.forEach((node) => {\n if (node.children) sortNodes(node.children);\n });\n\n return nodes;\n};\n\nconst dedupePaths = (paths: string[]) => Array.from(new Set(paths.map(normalizeChangedFilePath).filter(Boolean)));\n\nconst buildFlatTree = (paths: string[]) =>\n dedupePaths(paths)\n .map((path) => ({ id: `file:${path}`, name: path, type: \"file\" }) satisfies ChangedFileTreeNode)\n .sort((left, right) => left.name.localeCompare(right.name));\n\nexport const buildChangedFilesTree = (paths: string[], mode: ChangedFilesViewMode): ChangedFileTreeNode[] => {\n if (mode === \"flat\") return buildFlatTree(paths);\n\n const treeById = new Map<string, ChangedFileTreeNode>();\n const rootNodes: ChangedFileTreeNode[] = [];\n\n dedupePaths(paths).forEach((path) => {\n const segments = path.split(\"/\");\n let parentPath = \"\";\n let parentNode: ChangedFileTreeNode | null = null;\n\n segments.forEach((segment, index) => {\n const currentPath = parentPath ? `${parentPath}/${segment}` : segment;\n const isFile = index === segments.length - 1;\n const nodeId = `${isFile ? \"file\" : \"folder\"}:${currentPath}`;\n const existingNode = treeById.get(nodeId);\n\n if (existingNode) {\n parentNode = existingNode;\n parentPath = currentPath;\n return;\n }\n\n const nextNode: ChangedFileTreeNode = {\n id: nodeId,\n name: segment,\n type: isFile ? \"file\" : \"folder\",\n ...(isFile ? {} : { children: [] }),\n };\n\n treeById.set(nodeId, nextNode);\n\n if (!parentNode) rootNodes.push(nextNode);\n else parentNode.children?.push(nextNode);\n\n parentNode = nextNode;\n parentPath = currentPath;\n });\n });\n\n return sortNodes(rootNodes);\n};\n\nexport const collectExpandedFolderIds = (nodes: ChangedFileTreeNode[]) => {\n const folderIds: string[] = [];\n\n const visit = (items: ChangedFileTreeNode[]) => {\n items.forEach((item) => {\n if (item.type !== \"folder\") return;\n folderIds.push(item.id);\n visit(item.children ?? []);\n });\n };\n\n visit(nodes);\n return folderIds;\n};\n\nconst collectNestedFileOrder = (nodes: ChangedFileTreeNode[]) => {\n const orderedPaths: string[] = [];\n\n const visit = (treeNodes: ChangedFileTreeNode[]) => {\n treeNodes.forEach((node) => {\n if (node.type === \"file\") {\n orderedPaths.push(node.id.replace(/^file:/, \"\"));\n return;\n }\n\n visit(node.children ?? []);\n });\n };\n\n visit(nodes);\n return orderedPaths;\n};\n\nexport const sortPathsByViewMode = (paths: string[], mode: ChangedFilesViewMode) => {\n if (mode === \"flat\") return [...paths].sort((left, right) => left.localeCompare(right));\n return collectNestedFileOrder(buildChangedFilesTree(paths, \"nested\"));\n};\n","import { Box, IconButton, Menu } from \"@chakra-ui/react\";\nimport {\n Check,\n ChevronsDownUp,\n ChevronsUpDown,\n List,\n ListTree,\n PanelLeftClose,\n PanelLeftOpen,\n Rows2,\n Settings2,\n SquareSplitHorizontal,\n} from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { ListRow } from \"../list-row/list-row\";\nimport type { ChangedFilesViewMode, DiffViewMode } from \"./types\";\n\ninterface DiffViewerOptionsMenuProps {\n isTreePanelOpen: boolean;\n hasFilePaths: boolean;\n viewMode: ChangedFilesViewMode;\n diffViewMode: DiffViewMode;\n isExpandAllDisabled: boolean;\n isCollapseAllDisabled: boolean;\n onToggleTreePanel: () => void;\n onViewModeChange: (viewMode: ChangedFilesViewMode) => void;\n onDiffViewModeChange: (diffViewMode: DiffViewMode) => void;\n onExpandAll: () => void;\n onCollapseAll: () => void;\n}\n\ninterface DiffViewerMenuItemProps {\n id: string;\n label: string;\n icon: ReactNode;\n selected?: boolean;\n disabled?: boolean;\n onActivate: () => void;\n}\n\nconst SelectionIndicator = (props: { selected: boolean }) => (\n <Box w=\"14px\" flexShrink={0} display=\"flex\" justifyContent=\"center\">\n {props.selected ? <Check size={14} /> : null}\n </Box>\n);\n\nconst DiffViewerMenuItem = (props: DiffViewerMenuItemProps) => {\n const { id, label, icon, selected, disabled, onActivate } = props;\n\n return (\n <Menu.Item value={id} disabled={disabled} asChild>\n <ListRow\n asChild\n role={selected === undefined ? undefined : \"menuitemradio\"}\n aria-checked={selected}\n variant=\"full-width\"\n id={id}\n icon={icon}\n label={label}\n disabled={disabled}\n isSelected={selected}\n endContent={selected === undefined ? undefined : <SelectionIndicator selected={selected} />}\n onActivate={onActivate}\n />\n </Menu.Item>\n );\n};\n\nexport const DiffViewerOptionsMenu = (props: DiffViewerOptionsMenuProps) => {\n const {\n isTreePanelOpen,\n hasFilePaths,\n viewMode,\n diffViewMode,\n isExpandAllDisabled,\n isCollapseAllDisabled,\n onToggleTreePanel,\n onViewModeChange,\n onDiffViewModeChange,\n onExpandAll,\n onCollapseAll,\n } = props;\n\n return (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton aria-label=\"Diff view options\" variant=\"ghost\" size=\"sm\">\n <Settings2 size={14} />\n </IconButton>\n </Menu.Trigger>\n <Menu.Positioner>\n <Menu.Content minW=\"190px\" bg=\"bg\" p=\"0\" gap=\"0\">\n <DiffViewerMenuItem\n id=\"toggle-file-tree\"\n icon={isTreePanelOpen ? <PanelLeftClose size={14} /> : <PanelLeftOpen size={14} />}\n label={isTreePanelOpen ? \"Hide file tree\" : \"Show file tree\"}\n onActivate={onToggleTreePanel}\n />\n <Menu.Separator />\n {hasFilePaths ? (\n <>\n <DiffViewerMenuItem\n id=\"nested\"\n icon={<ListTree size={14} />}\n label=\"Nested\"\n selected={viewMode === \"nested\"}\n onActivate={() => onViewModeChange(\"nested\")}\n />\n <DiffViewerMenuItem\n id=\"flat\"\n icon={<List size={14} />}\n label=\"Flat\"\n selected={viewMode === \"flat\"}\n onActivate={() => onViewModeChange(\"flat\")}\n />\n <Menu.Separator />\n </>\n ) : null}\n <DiffViewerMenuItem\n id=\"unified\"\n icon={<Rows2 size={14} />}\n label=\"Unified\"\n selected={diffViewMode === \"unified\"}\n onActivate={() => onDiffViewModeChange(\"unified\")}\n />\n <DiffViewerMenuItem\n id=\"split\"\n icon={<SquareSplitHorizontal size={14} />}\n label=\"Split\"\n selected={diffViewMode === \"split\"}\n onActivate={() => onDiffViewModeChange(\"split\")}\n />\n <Menu.Separator />\n <DiffViewerMenuItem\n id=\"expand-all\"\n icon={<ChevronsUpDown size={14} />}\n label=\"Expand all\"\n disabled={isExpandAllDisabled}\n onActivate={onExpandAll}\n />\n <DiffViewerMenuItem\n id=\"collapse-all\"\n icon={<ChevronsDownUp size={14} />}\n label=\"Collapse all\"\n disabled={isCollapseAllDisabled}\n onActivate={onCollapseAll}\n />\n </Menu.Content>\n </Menu.Positioner>\n </Menu.Root>\n );\n};\n","import { Box, Icon, Input, InputGroup, Stack, Text } from \"@chakra-ui/react\";\nimport { FileText, Search } from \"lucide-react\";\nimport { useRef } from \"react\";\nimport { Header } from \"@/components/layout/header\";\nimport { EmptyState } from \"@/components/primitives/empty-state\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { TreeList } from \"../tree-list/tree-list\";\nimport type { TreeListNode } from \"../tree-list/tree-list.types\";\nimport { buildChangedFilesTree } from \"./build-changed-files-tree\";\nimport { FileChangeBadge } from \"./file-change-badge\";\nimport type { ChangedFilesViewMode, ChangedFileTreeNode, FileIconInfo } from \"./types\";\n\ninterface FileListPanelProps {\n paths: string[];\n selectedPath: string | null;\n viewMode: ChangedFilesViewMode;\n searchQuery: string;\n expandedFolderIds: Set<string>;\n onSelectPath: (path: string) => void;\n onSearchQueryChange: (value: string) => void;\n onToggleFolder: (id: string) => void;\n resolveFileIcon?: (path: string, options?: { isFolder?: boolean; isExpanded?: boolean }) => FileIconInfo | undefined;\n changeByPath?: Map<string, string>;\n}\n\nconst getFilePathParts = (filePath: string) => {\n const lastSlashIndex = filePath.lastIndexOf(\"/\");\n if (lastSlashIndex < 0) return { fileName: filePath, dirPath: \"\" };\n return { fileName: filePath.slice(lastSlashIndex + 1), dirPath: filePath.slice(0, lastSlashIndex) };\n};\n\nconst renderFileLabel = (node: ChangedFileTreeNode, viewMode: ChangedFilesViewMode, filePath: string) => {\n const { fileName, dirPath } = getFilePathParts(filePath);\n if (viewMode !== \"flat\" || !dirPath) return node.name;\n\n return (\n <Text textStyle=\"label/S/regular\" truncate>\n <Text as=\"span\" color=\"fg.default\">\n {fileName}\n </Text>{\" \"}\n <Text as=\"span\" color=\"fg.muted\">\n {dirPath}\n </Text>\n </Text>\n );\n};\n\nconst toTreeListNodes = (input: {\n nodes: ChangedFileTreeNode[];\n viewMode: ChangedFilesViewMode;\n onSelectPath: (path: string) => void;\n resolveFileIcon?: (path: string, options?: { isFolder?: boolean; isExpanded?: boolean }) => FileIconInfo | undefined;\n changeByPath?: Map<string, string>;\n}): TreeListNode[] => {\n const { nodes, viewMode, onSelectPath, resolveFileIcon, changeByPath } = input;\n\n return nodes.map((node) => {\n if (node.type === \"folder\") {\n return {\n id: node.id,\n label: node.name,\n isContainer: true,\n children: toTreeListNodes({\n nodes: node.children ?? [],\n viewMode,\n onSelectPath,\n resolveFileIcon,\n changeByPath,\n }),\n };\n }\n\n const filePath = node.id.replace(/^file:/, \"\");\n const fileIcon = resolveFileIcon?.(filePath) ?? { icon: <Icon as={FileText} boxSize=\"16px\" />, color: \"fg.subtle\" };\n const change = changeByPath?.get(filePath);\n return {\n id: node.id,\n label: renderFileLabel(node, viewMode, filePath),\n icon: fileIcon.icon,\n iconColor: fileIcon.color,\n endContent: change ? <FileChangeBadge change={change} /> : undefined,\n onActivate: () => onSelectPath(filePath),\n };\n });\n};\n\nexport const FileListPanel = (props: FileListPanelProps) => {\n const {\n paths,\n selectedPath,\n viewMode,\n searchQuery,\n expandedFolderIds,\n onSelectPath,\n onSearchQueryChange,\n onToggleFolder,\n resolveFileIcon,\n changeByPath,\n } = props;\n const scrollRef = useRef<HTMLDivElement>(null);\n const fileTree = buildChangedFilesTree(paths, viewMode);\n const treeNodes = toTreeListNodes({ nodes: fileTree, viewMode, onSelectPath, resolveFileIcon, changeByPath });\n const emptyTitle = searchQuery.trim() ? \"No matching files\" : \"No changed files\";\n\n return (\n <Stack h=\"full\" minH=\"0\" minW=\"0\" w=\"full\" gap=\"0\" overflow=\"hidden\" bg=\"bg\">\n <Header flexShrink={0} borderBottomWidth=\"1px\" borderColor=\"border.subtle\" bg=\"bg\">\n <InputGroup startElement={<Search size={14} />}>\n <Input\n size=\"sm\"\n variant=\"borderless\"\n aria-label=\"Search files\"\n placeholder=\"Search files\"\n value={searchQuery}\n onChange={(event) => onSearchQueryChange(event.target.value)}\n />\n </InputGroup>\n </Header>\n <ScrollArea\n flex=\"1\"\n minH=\"0\"\n minW=\"0\"\n bg=\"bg\"\n viewportRef={scrollRef}\n viewportProps={{ style: { overflowX: \"hidden\" } }}\n >\n {paths.length > 0 ? (\n <TreeList\n sections={[{ id: \"files\", nodes: treeNodes }]}\n expandedNodeIds={[...expandedFolderIds]}\n activeNodeId={selectedPath ? `file:${selectedPath}` : null}\n rowVariant=\"tree\"\n onToggleNode={onToggleFolder}\n virtualize\n scrollRef={scrollRef}\n />\n ) : (\n <Box px=\"xs\" py=\"xs\">\n <EmptyState title={emptyTitle} size=\"sm\" textAlign=\"left\" alignItems=\"flex-start\" />\n </Box>\n )}\n </ScrollArea>\n </Stack>\n );\n};\n","import { Box, Flex, HStack, Skeleton, Stack, Text } from \"@chakra-ui/react\";\nimport { useEffect, useState } from \"react\";\nimport { Header } from \"@/components/layout/header\";\nimport { ResizableSplitLayout } from \"@/components/layout/resizable-split-layout\";\nimport { EmptyState } from \"@/components/primitives/empty-state\";\nimport { buildChangedFilesTree, collectExpandedFolderIds, sortPathsByViewMode } from \"./build-changed-files-tree\";\nimport { DiffBubble } from \"./diff-bubble\";\nimport type { Diff } from \"./diff-card\";\nimport { DiffDrawer, type DiffDrawerExpansionState, type DiffExpansionCommand } from \"./diff-drawer\";\nimport { useDiffViewerStore } from \"./diff-viewer.store\";\nimport { DiffViewerOptionsMenu } from \"./diff-viewer-options-menu\";\nimport { FileListPanel } from \"./file-list-panel\";\nimport type { ChangedFilesViewMode, FileIconInfo } from \"./types\";\n\nexport interface DiffViewerProps {\n diffs: Diff[];\n changedFilePaths?: string[];\n defaultSelectedPath?: string | null;\n loading?: boolean;\n onLoadDiff?: (path: string) => Promise<void>;\n resolveFileIcon?: (path: string, options?: { isFolder?: boolean; isExpanded?: boolean }) => FileIconInfo | undefined;\n}\n\nconst getDiffPath = (diff: Diff) => diff.newPath ?? diff.oldPath ?? \"unknown\";\nconst buildChangeByPath = (diffs: Diff[]) => new Map(diffs.map((diff) => [getDiffPath(diff), diff.change]));\nconst sumDiffStats = (diffs: Diff[]) =>\n diffs.reduce(\n (total, diff) => ({\n additions: total.additions + (diff.additions ?? 0),\n deletions: total.deletions + (diff.deletions ?? 0),\n }),\n { additions: 0, deletions: 0 },\n );\n\nconst buildFilteredDiffs = (input: {\n diffs: Diff[];\n normalizedSearchQuery: string;\n viewMode: ChangedFilesViewMode;\n}) => {\n const { diffs, normalizedSearchQuery, viewMode } = input;\n const matchingDiffs = normalizedSearchQuery\n ? diffs.filter((diff) => getDiffPath(diff).toLowerCase().includes(normalizedSearchQuery))\n : diffs;\n const orderedPaths = sortPathsByViewMode(matchingDiffs.map(getDiffPath), viewMode);\n const orderByPath = new Map(orderedPaths.map((path, index) => [path, index]));\n\n return [...matchingDiffs].sort((left, right) => {\n const leftOrder = orderByPath.get(getDiffPath(left)) ?? Number.MAX_SAFE_INTEGER;\n const rightOrder = orderByPath.get(getDiffPath(right)) ?? Number.MAX_SAFE_INTEGER;\n return leftOrder - rightOrder;\n });\n};\n\nconst resolveSelectedPath = (preferredPaths: string[], fallbackPaths: string[]) =>\n preferredPaths[0] ?? fallbackPaths[0] ?? null;\n\nconst loadingDiffItems = [\"first\", \"second\", \"third\"] as const;\n\nconst DiffViewerLoading = () => (\n <Stack flex=\"1\" minH=\"0\" bg=\"bg\" p=\"xs\" gap=\"xs\" role=\"status\" aria-busy=\"true\" aria-label=\"Loading diff panel\">\n {loadingDiffItems.map((item) => (\n <Skeleton key={item} h=\"72px\" w=\"full\" flexShrink=\"0\" borderRadius=\"xs\" />\n ))}\n </Stack>\n);\n\nexport const DiffViewer = (props: DiffViewerProps) => {\n const { diffs, changedFilePaths, defaultSelectedPath = null, loading = false, onLoadDiff, resolveFileIcon } = props;\n const [diffExpansionCommand, setDiffExpansionCommand] = useState<DiffExpansionCommand | null>(null);\n const [diffExpansionState, setDiffExpansionState] = useState<DiffDrawerExpansionState>({\n allExpanded: false,\n allCollapsed: false,\n });\n const {\n isTreePanelOpen,\n viewMode,\n diffViewMode,\n searchQuery,\n selectedPath,\n expandedFolderIds,\n setTreePanelOpen,\n setViewMode,\n setDiffViewMode,\n setSearchQuery,\n setSelectedPath,\n setExpandedFolderIds,\n toggleFolder,\n expandAll,\n collapseAll,\n } = useDiffViewerStore();\n\n const diffPaths = diffs.map(getDiffPath);\n const filePaths = changedFilePaths ?? diffPaths;\n const normalizedSearchQuery = searchQuery.trim().toLowerCase();\n const filteredFilePaths = normalizedSearchQuery\n ? filePaths.filter((path) => path.toLowerCase().includes(normalizedSearchQuery))\n : filePaths;\n const filteredDiffs = buildFilteredDiffs({ diffs, normalizedSearchQuery, viewMode });\n const changeByPath = buildChangeByPath(diffs);\n const filteredDiffPaths = filteredDiffs.map(getDiffPath);\n const fileTree = buildChangedFilesTree(filteredFilePaths, viewMode);\n const folderIds = viewMode === \"nested\" ? collectExpandedFolderIds(fileTree) : [];\n const filteredFilePathKey = filteredFilePaths.join(\"\\0\");\n const filteredDiffPathKey = filteredDiffPaths.join(\"\\0\");\n const resolvedSelectedPath =\n selectedPath ?? defaultSelectedPath ?? resolveSelectedPath(filteredDiffPaths, filteredFilePaths);\n const hasDiffs = filteredDiffs.length > 0;\n const emptyDiffTitle = normalizedSearchQuery ? \"No matching changes\" : \"No changes\";\n const showDiffEmptyState = !loading && !hasDiffs;\n const totalDiff = sumDiffStats(filteredDiffs);\n const hasExpandableItems = folderIds.length > 0 || filteredDiffs.length > 0;\n const allFilesExpanded = folderIds.every((folderId) => expandedFolderIds.has(folderId));\n const allFilesCollapsed = folderIds.every((folderId) => !expandedFolderIds.has(folderId));\n const allDiffsExpanded = filteredDiffs.length === 0 || diffExpansionState.allExpanded;\n const allDiffsCollapsed = filteredDiffs.length === 0 || diffExpansionState.allCollapsed;\n const isExpandAllDisabled = !hasExpandableItems || (allFilesExpanded && allDiffsExpanded);\n const isCollapseAllDisabled = !hasExpandableItems || (allFilesCollapsed && allDiffsCollapsed);\n\n useEffect(() => {\n const filePaths = filteredFilePathKey ? filteredFilePathKey.split(\"\\0\") : [];\n const tree = buildChangedFilesTree(filePaths, viewMode);\n setExpandedFolderIds(viewMode === \"nested\" ? collectExpandedFolderIds(tree) : []);\n }, [filteredFilePathKey, setExpandedFolderIds, viewMode]);\n\n useEffect(() => {\n const diffPaths = filteredDiffPathKey ? filteredDiffPathKey.split(\"\\0\") : [];\n const filePaths = filteredFilePathKey ? filteredFilePathKey.split(\"\\0\") : [];\n if (resolvedSelectedPath && diffPaths.includes(resolvedSelectedPath)) return;\n setSelectedPath(resolveSelectedPath(diffPaths, filePaths));\n }, [filteredDiffPathKey, filteredFilePathKey, resolvedSelectedPath, setSelectedPath]);\n\n const expandAllFilesAndDiffs = () => {\n expandAll(folderIds);\n setDiffExpansionCommand((current) => ({ action: \"expand\", id: (current?.id ?? 0) + 1 }));\n };\n\n const collapseAllFilesAndDiffs = () => {\n collapseAll();\n setDiffExpansionCommand((current) => ({ action: \"collapse\", id: (current?.id ?? 0) + 1 }));\n };\n\n const selectChangedFilePath = (path: string) => {\n const currentIndex = resolvedSelectedPath ? filteredDiffPaths.indexOf(resolvedSelectedPath) : -1;\n const nextIndex = filteredDiffPaths.indexOf(path);\n const direction = currentIndex >= 0 && nextIndex >= 0 && nextIndex < currentIndex ? \"up\" : \"down\";\n\n setSelectedPath(path);\n setDiffExpansionCommand((current) => ({ action: \"expand-selected\", direction, id: (current?.id ?? 0) + 1, path }));\n };\n\n const diffPanel = (\n <Stack h=\"full\" minH=\"0\" minW=\"0\" flex=\"1\" bg=\"bg\" gap=\"0\">\n <Header variant=\"main\" borderBottomWidth=\"1px\" borderColor=\"border.subtle\" bg=\"bg\" justifyContent=\"space-between\">\n <HStack gap=\"xs\" minW=\"0\">\n <DiffViewerOptionsMenu\n isTreePanelOpen={isTreePanelOpen}\n hasFilePaths={filePaths.length > 0}\n viewMode={viewMode}\n diffViewMode={diffViewMode}\n isExpandAllDisabled={isExpandAllDisabled}\n isCollapseAllDisabled={isCollapseAllDisabled}\n onToggleTreePanel={() => setTreePanelOpen(!isTreePanelOpen)}\n onViewModeChange={setViewMode}\n onDiffViewModeChange={setDiffViewMode}\n onExpandAll={expandAllFilesAndDiffs}\n onCollapseAll={collapseAllFilesAndDiffs}\n />\n {showDiffEmptyState ? (\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\" truncate>\n {emptyDiffTitle}\n </Text>\n ) : null}\n </HStack>\n <DiffBubble variant=\"ghost\" size=\"small\" additions={totalDiff.additions} deletions={totalDiff.deletions} />\n </Header>\n {loading ? (\n <DiffViewerLoading />\n ) : hasDiffs ? (\n <Box flex=\"1\" minH=\"0\">\n <DiffDrawer\n diffs={filteredDiffs}\n selectedDiffPath={resolvedSelectedPath}\n onLoadDiff={onLoadDiff}\n onSelectDiffPath={setSelectedPath}\n onExpansionStateChange={setDiffExpansionState}\n expansionCommand={diffExpansionCommand}\n diffViewMode={diffViewMode}\n />\n </Box>\n ) : (\n <Box flex=\"1\" minH=\"0\" px=\"md\" py=\"lg\" display=\"flex\" alignItems=\"center\" justifyContent=\"center\" bg=\"bg\">\n <EmptyState title={emptyDiffTitle} />\n </Box>\n )}\n </Stack>\n );\n\n return (\n <Flex flex=\"1\" minH=\"0\" minW=\"0\" bg=\"bg\" gap=\"0\" data-testid=\"diff-viewer\">\n <ResizableSplitLayout\n flex=\"1\"\n minH=\"0\"\n minW=\"0\"\n resizablePanel={\n <FileListPanel\n paths={filteredFilePaths}\n selectedPath={resolvedSelectedPath}\n viewMode={viewMode}\n searchQuery={searchQuery}\n expandedFolderIds={expandedFolderIds}\n onSelectPath={selectChangedFilePath}\n onSearchQueryChange={setSearchQuery}\n onToggleFolder={toggleFolder}\n resolveFileIcon={resolveFileIcon}\n changeByPath={changeByPath}\n />\n }\n contentPanel={diffPanel}\n collapsed={!isTreePanelOpen}\n defaultSizePx={288}\n minSizePx={224}\n contentMinSizePx={320}\n resizeLabel=\"Resize file list panel\"\n separator=\"line\"\n onCollapsedChange={(collapsed) => setTreePanelOpen(!collapsed)}\n />\n </Flex>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diff-viewer-DJ1B5hxL.js","names":["ChangedFilesViewMode","ChangedFileTreeNode","normalizeChangedFilePath","path","split","map","segment","trim","filter","Boolean","join","sortNodes","nodes","sort","left","right","type","name","localeCompare","forEach","node","children","dedupePaths","paths","Array","from","Set","buildFlatTree","id","buildChangedFilesTree","mode","treeById","Map","rootNodes","segments","parentPath","parentNode","index","currentPath","isFile","length","nodeId","existingNode","get","nextNode","set","push","collectExpandedFolderIds","folderIds","visit","items","item","collectNestedFileOrder","orderedPaths","treeNodes","replace","sortPathsByViewMode","Box","IconButton","Menu","Check","ChevronsDownUp","ChevronsUpDown","List","ListTree","PanelLeftClose","PanelLeftOpen","Rows2","Settings2","SquareSplitHorizontal","ReactNode","ListRow","ChangedFilesViewMode","DiffViewMode","DiffViewerOptionsMenuProps","isTreePanelOpen","hasFilePaths","viewMode","diffViewMode","isExpandAllDisabled","isCollapseAllDisabled","onToggleTreePanel","onViewModeChange","onDiffViewModeChange","onExpandAll","onCollapseAll","DiffViewerMenuItemProps","id","label","icon","selected","disabled","onActivate","SelectionIndicator","props","$","_c","t0","t1","DiffViewerMenuItem","undefined","t2","t3","DiffViewerOptionsMenu","Symbol","for","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","_c","_Fragment","Box","Icon","Input","InputGroup","Stack","Text","FileText","Search","useRef","Header","EmptyState","ScrollArea","TreeList","TreeListNode","buildChangedFilesTree","FileChangeBadge","ChangedFilesViewMode","ChangedFileTreeNode","FileIconInfo","FileListPanelProps","paths","selectedPath","viewMode","searchQuery","expandedFolderIds","Set","onSelectPath","path","onSearchQueryChange","value","onToggleFolder","id","resolveFileIcon","options","isFolder","isExpanded","changeByPath","Map","getFilePathParts","filePath","lastSlashIndex","lastIndexOf","fileName","dirPath","slice","renderFileLabel","node","name","toTreeListNodes","input","nodes","map","type","label","isContainer","children","replace","fileIcon","icon","color","change","get","iconColor","endContent","undefined","onActivate","FileListPanel","props","$","_c","scrollRef","t0","fileTree","treeNodes","emptyTitle","trim","t1","Symbol","for","t2","event","target","t3","t4","style","overflowX","t5","length","t6","_c","ScrollArea","EmptyState","Box","Flex","HStack","Skeleton","Stack","Text","useEffect","useState","Header","ResizableSplitLayout","EmptyState","buildChangedFilesTree","collectExpandedFolderIds","sortPathsByViewMode","DiffBubble","Diff","DiffDrawer","DiffDrawerExpansionState","DiffExpansionCommand","useDiffViewerStore","DiffViewerOptionsMenu","FileListPanel","ChangedFilesViewMode","FileIconInfo","DiffViewerProps","diffs","changedFilePaths","defaultSelectedPath","loading","onLoadDiff","path","Promise","resolveFileIcon","options","isFolder","isExpanded","getDiffPath","diff","newPath","oldPath","buildChangeByPath","Map","map","change","sumDiffStats","reduce","total","additions","deletions","buildFilteredDiffs","input","normalizedSearchQuery","viewMode","matchingDiffs","filter","toLowerCase","includes","orderedPaths","orderByPath","index","sort","left","right","leftOrder","get","Number","MAX_SAFE_INTEGER","rightOrder","resolveSelectedPath","preferredPaths","fallbackPaths","loadingDiffItems","const","DiffViewerLoading","$","_c","t0","Symbol","for","_temp","DiffViewer","props","t1","undefined","diffExpansionCommand","setDiffExpansionCommand","t2","allExpanded","allCollapsed","diffExpansionState","setDiffExpansionState","isTreePanelOpen","diffViewMode","searchQuery","selectedPath","expandedFolderIds","setTreePanelOpen","setViewMode","setDiffViewMode","setSearchQuery","setSelectedPath","setExpandedFolderIds","toggleFolder","expandAll","collapseAll","allFilesExpanded","changeByPath","emptyDiffTitle","filePaths","filteredDiffPathKey","filteredDiffPaths","filteredDiffs","filteredFilePathKey","filteredFilePaths","folderIds","hasDiffs","hasExpandableItems","resolvedSelectedPath","showDiffEmptyState","t3","totalDiff","diffPaths","trim","t4","fileTree","join","length","t5","folderId","has","every","t6","folderId_0","allFilesCollapsed","allDiffsExpanded","allDiffsCollapsed","isExpandAllDisabled","isCollapseAllDisabled","filePaths_0","split","tree","t7","diffPaths_0","filePaths_1","t8","_temp2","expandAllFilesAndDiffs","t9","_temp3","collapseAllFilesAndDiffs","t10","path_0","currentIndex","indexOf","nextIndex","direction","current_1","action","id","current","selectChangedFilePath","t11","t12","t13","t14","t15","t16","t17","t18","t19","diffPanel","t20","t21","t22","collapsed","t23","item","current_0","_c","EmptyState","ScrollArea$1","Header","ListRow","TreeList","EmptyState$1","DiffBubble","useDiffViewerStore","FileChangeBadge","normalizeChangedFilePath","path","segment","sortNodes","nodes","left","right","node","dedupePaths","paths","buildFlatTree","buildChangedFilesTree","mode","treeById","rootNodes","segments","parentPath","parentNode","currentPath","isFile","index","nodeId","existingNode","nextNode","collectExpandedFolderIds","folderIds","visit","item","collectNestedFileOrder","orderedPaths","sortPathsByViewMode","SelectionIndicator","$","c","t0","props","Check","t1","Box","DiffViewerMenuItem","selected","t2","disabled","icon","id","label","onActivate","t3","Menu","DiffViewerOptionsMenu","IconButton","Settings2","isTreePanelOpen","jsx","PanelLeftClose","PanelLeftOpen","onToggleTreePanel","t4","t5","hasFilePaths","onViewModeChange","viewMode","Fragment","ListTree","List","t6","Rows2","t7","diffViewMode","t8","onDiffViewModeChange","t9","t10","SquareSplitHorizontal","t11","t12","t13","t14","t15","ChevronsUpDown","t16","isExpandAllDisabled","onExpandAll","t17","ChevronsDownUp","t18","isCollapseAllDisabled","onCollapseAll","t19","getFilePathParts","lastSlashIndex","filePath","renderFileLabel","dirPath","Text","fileName","toTreeListNodes","input","fileIcon","resolveFileIcon","Icon","FileText","change","changeByPath","onSelectPath","FileListPanel","scrollRef","useRef","treeNodes","emptyTitle","searchQuery","Search","onSearchQueryChange","event","InputGroup","Input","expandedFolderIds","onToggleFolder","selectedPath","Stack","getDiffPath","diff","buildChangeByPath","diffs","sumDiffStats","total","buildFilteredDiffs","matchingDiffs","normalizedSearchQuery","orderByPath","resolveSelectedPath","preferredPaths","fallbackPaths","loadingDiffItems","DiffViewerLoading","_temp","DiffViewer","defaultSelectedPath","loading","diffExpansionCommand","setDiffExpansionCommand","useState","diffExpansionState","setDiffExpansionState","allFilesExpanded","emptyDiffTitle","filePaths","filteredDiffPathKey","filteredDiffPaths","filteredDiffs","filteredFilePathKey","filteredFilePaths","hasDiffs","hasExpandableItems","resolvedSelectedPath","showDiffEmptyState","totalDiff","changedFilePaths","diffPaths","fileTree","folderId","folderId_0","allFilesCollapsed","allDiffsExpanded","allDiffsCollapsed","setExpandedFolderIds","tree","useEffect","setSelectedPath","diffPaths_0","filePaths_1","expandAll","_temp2","expandAllFilesAndDiffs","collapseAll","_temp3","collapseAllFilesAndDiffs","currentIndex","nextIndex","path_0","direction","current_1","selectChangedFilePath","setTreePanelOpen","setDiffViewMode","setViewMode","HStack","onLoadDiff","DiffDrawer","diffPanel","t20","setSearchQuery","toggleFolder","t21","t22","collapsed","t23","Flex","ResizableSplitLayout","Skeleton","current","current_0"],"sources":["../src/components/diff-viewer/build-changed-files-tree.ts","../src/components/diff-viewer/diff-viewer-options-menu.tsx","../src/components/diff-viewer/file-list-panel.tsx","../src/components/diff-viewer/diff-viewer.tsx"],"sourcesContent":["import type { ChangedFilesViewMode, ChangedFileTreeNode } from \"./types\";\n\nconst normalizeChangedFilePath = (path: string) =>\n path\n .split(\"/\")\n .map((segment) => segment.trim())\n .filter(Boolean)\n .join(\"/\");\n\nconst sortNodes = (nodes: ChangedFileTreeNode[]) => {\n nodes.sort((left, right) => {\n if (left.type !== right.type) return left.type === \"folder\" ? -1 : 1;\n return left.name.localeCompare(right.name);\n });\n\n nodes.forEach((node) => {\n if (node.children) sortNodes(node.children);\n });\n\n return nodes;\n};\n\nconst dedupePaths = (paths: string[]) => Array.from(new Set(paths.map(normalizeChangedFilePath).filter(Boolean)));\n\nconst buildFlatTree = (paths: string[]) =>\n dedupePaths(paths)\n .map((path) => ({ id: `file:${path}`, name: path, type: \"file\" }) satisfies ChangedFileTreeNode)\n .sort((left, right) => left.name.localeCompare(right.name));\n\nexport const buildChangedFilesTree = (paths: string[], mode: ChangedFilesViewMode): ChangedFileTreeNode[] => {\n if (mode === \"flat\") return buildFlatTree(paths);\n\n const treeById = new Map<string, ChangedFileTreeNode>();\n const rootNodes: ChangedFileTreeNode[] = [];\n\n dedupePaths(paths).forEach((path) => {\n const segments = path.split(\"/\");\n let parentPath = \"\";\n let parentNode: ChangedFileTreeNode | null = null;\n\n segments.forEach((segment, index) => {\n const currentPath = parentPath ? `${parentPath}/${segment}` : segment;\n const isFile = index === segments.length - 1;\n const nodeId = `${isFile ? \"file\" : \"folder\"}:${currentPath}`;\n const existingNode = treeById.get(nodeId);\n\n if (existingNode) {\n parentNode = existingNode;\n parentPath = currentPath;\n return;\n }\n\n const nextNode: ChangedFileTreeNode = {\n id: nodeId,\n name: segment,\n type: isFile ? \"file\" : \"folder\",\n ...(isFile ? {} : { children: [] }),\n };\n\n treeById.set(nodeId, nextNode);\n\n if (!parentNode) rootNodes.push(nextNode);\n else parentNode.children?.push(nextNode);\n\n parentNode = nextNode;\n parentPath = currentPath;\n });\n });\n\n return sortNodes(rootNodes);\n};\n\nexport const collectExpandedFolderIds = (nodes: ChangedFileTreeNode[]) => {\n const folderIds: string[] = [];\n\n const visit = (items: ChangedFileTreeNode[]) => {\n items.forEach((item) => {\n if (item.type !== \"folder\") return;\n folderIds.push(item.id);\n visit(item.children ?? []);\n });\n };\n\n visit(nodes);\n return folderIds;\n};\n\nconst collectNestedFileOrder = (nodes: ChangedFileTreeNode[]) => {\n const orderedPaths: string[] = [];\n\n const visit = (treeNodes: ChangedFileTreeNode[]) => {\n treeNodes.forEach((node) => {\n if (node.type === \"file\") {\n orderedPaths.push(node.id.replace(/^file:/, \"\"));\n return;\n }\n\n visit(node.children ?? []);\n });\n };\n\n visit(nodes);\n return orderedPaths;\n};\n\nexport const sortPathsByViewMode = (paths: string[], mode: ChangedFilesViewMode) => {\n if (mode === \"flat\") return [...paths].sort((left, right) => left.localeCompare(right));\n return collectNestedFileOrder(buildChangedFilesTree(paths, \"nested\"));\n};\n","import { Box, IconButton, Menu } from \"@chakra-ui/react\";\nimport {\n Check,\n ChevronsDownUp,\n ChevronsUpDown,\n List,\n ListTree,\n PanelLeftClose,\n PanelLeftOpen,\n Rows2,\n Settings2,\n SquareSplitHorizontal,\n} from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { ListRow } from \"../list-row/list-row\";\nimport type { ChangedFilesViewMode, DiffViewMode } from \"./types\";\n\ninterface DiffViewerOptionsMenuProps {\n isTreePanelOpen: boolean;\n hasFilePaths: boolean;\n viewMode: ChangedFilesViewMode;\n diffViewMode: DiffViewMode;\n isExpandAllDisabled: boolean;\n isCollapseAllDisabled: boolean;\n onToggleTreePanel: () => void;\n onViewModeChange: (viewMode: ChangedFilesViewMode) => void;\n onDiffViewModeChange: (diffViewMode: DiffViewMode) => void;\n onExpandAll: () => void;\n onCollapseAll: () => void;\n}\n\ninterface DiffViewerMenuItemProps {\n id: string;\n label: string;\n icon: ReactNode;\n selected?: boolean;\n disabled?: boolean;\n onActivate: () => void;\n}\n\nconst SelectionIndicator = (props: { selected: boolean }) => (\n <Box w=\"14px\" flexShrink={0} display=\"flex\" justifyContent=\"center\">\n {props.selected ? <Check size={14} /> : null}\n </Box>\n);\n\nconst DiffViewerMenuItem = (props: DiffViewerMenuItemProps) => {\n const { id, label, icon, selected, disabled, onActivate } = props;\n\n return (\n <Menu.Item value={id} disabled={disabled} asChild>\n <ListRow\n asChild\n role={selected === undefined ? undefined : \"menuitemradio\"}\n aria-checked={selected}\n variant=\"full-width\"\n id={id}\n icon={icon}\n label={label}\n disabled={disabled}\n isSelected={selected}\n endContent={selected === undefined ? undefined : <SelectionIndicator selected={selected} />}\n onActivate={onActivate}\n />\n </Menu.Item>\n );\n};\n\nexport const DiffViewerOptionsMenu = (props: DiffViewerOptionsMenuProps) => {\n const {\n isTreePanelOpen,\n hasFilePaths,\n viewMode,\n diffViewMode,\n isExpandAllDisabled,\n isCollapseAllDisabled,\n onToggleTreePanel,\n onViewModeChange,\n onDiffViewModeChange,\n onExpandAll,\n onCollapseAll,\n } = props;\n\n return (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton aria-label=\"Diff view options\" variant=\"ghost\" size=\"sm\">\n <Settings2 size={14} />\n </IconButton>\n </Menu.Trigger>\n <Menu.Positioner>\n <Menu.Content minW=\"190px\" bg=\"bg\" p=\"0\" gap=\"0\">\n <DiffViewerMenuItem\n id=\"toggle-file-tree\"\n icon={isTreePanelOpen ? <PanelLeftClose size={14} /> : <PanelLeftOpen size={14} />}\n label={isTreePanelOpen ? \"Hide file tree\" : \"Show file tree\"}\n onActivate={onToggleTreePanel}\n />\n <Menu.Separator />\n {hasFilePaths ? (\n <>\n <DiffViewerMenuItem\n id=\"nested\"\n icon={<ListTree size={14} />}\n label=\"Nested\"\n selected={viewMode === \"nested\"}\n onActivate={() => onViewModeChange(\"nested\")}\n />\n <DiffViewerMenuItem\n id=\"flat\"\n icon={<List size={14} />}\n label=\"Flat\"\n selected={viewMode === \"flat\"}\n onActivate={() => onViewModeChange(\"flat\")}\n />\n <Menu.Separator />\n </>\n ) : null}\n <DiffViewerMenuItem\n id=\"unified\"\n icon={<Rows2 size={14} />}\n label=\"Unified\"\n selected={diffViewMode === \"unified\"}\n onActivate={() => onDiffViewModeChange(\"unified\")}\n />\n <DiffViewerMenuItem\n id=\"split\"\n icon={<SquareSplitHorizontal size={14} />}\n label=\"Split\"\n selected={diffViewMode === \"split\"}\n onActivate={() => onDiffViewModeChange(\"split\")}\n />\n <Menu.Separator />\n <DiffViewerMenuItem\n id=\"expand-all\"\n icon={<ChevronsUpDown size={14} />}\n label=\"Expand all\"\n disabled={isExpandAllDisabled}\n onActivate={onExpandAll}\n />\n <DiffViewerMenuItem\n id=\"collapse-all\"\n icon={<ChevronsDownUp size={14} />}\n label=\"Collapse all\"\n disabled={isCollapseAllDisabled}\n onActivate={onCollapseAll}\n />\n </Menu.Content>\n </Menu.Positioner>\n </Menu.Root>\n );\n};\n","import { Box, Icon, Input, InputGroup, Stack, Text } from \"@chakra-ui/react\";\nimport { FileText, Search } from \"lucide-react\";\nimport { useRef } from \"react\";\nimport { Header } from \"@/components/layout/header\";\nimport { EmptyState } from \"@/components/primitives/empty-state\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { TreeList } from \"../tree-list/tree-list\";\nimport type { TreeListNode } from \"../tree-list/tree-list.types\";\nimport { buildChangedFilesTree } from \"./build-changed-files-tree\";\nimport { FileChangeBadge } from \"./file-change-badge\";\nimport type { ChangedFilesViewMode, ChangedFileTreeNode, FileIconInfo } from \"./types\";\n\ninterface FileListPanelProps {\n paths: string[];\n selectedPath: string | null;\n viewMode: ChangedFilesViewMode;\n searchQuery: string;\n expandedFolderIds: Set<string>;\n onSelectPath: (path: string) => void;\n onSearchQueryChange: (value: string) => void;\n onToggleFolder: (id: string) => void;\n resolveFileIcon?: (path: string, options?: { isFolder?: boolean; isExpanded?: boolean }) => FileIconInfo | undefined;\n changeByPath?: Map<string, string>;\n}\n\nconst getFilePathParts = (filePath: string) => {\n const lastSlashIndex = filePath.lastIndexOf(\"/\");\n if (lastSlashIndex < 0) return { fileName: filePath, dirPath: \"\" };\n return { fileName: filePath.slice(lastSlashIndex + 1), dirPath: filePath.slice(0, lastSlashIndex) };\n};\n\nconst renderFileLabel = (node: ChangedFileTreeNode, viewMode: ChangedFilesViewMode, filePath: string) => {\n const { fileName, dirPath } = getFilePathParts(filePath);\n if (viewMode !== \"flat\" || !dirPath) return node.name;\n\n return (\n <Text textStyle=\"label/S/regular\" truncate>\n <Text as=\"span\" color=\"fg.default\">\n {fileName}\n </Text>{\" \"}\n <Text as=\"span\" color=\"fg.muted\">\n {dirPath}\n </Text>\n </Text>\n );\n};\n\nconst toTreeListNodes = (input: {\n nodes: ChangedFileTreeNode[];\n viewMode: ChangedFilesViewMode;\n onSelectPath: (path: string) => void;\n resolveFileIcon?: (path: string, options?: { isFolder?: boolean; isExpanded?: boolean }) => FileIconInfo | undefined;\n changeByPath?: Map<string, string>;\n}): TreeListNode[] => {\n const { nodes, viewMode, onSelectPath, resolveFileIcon, changeByPath } = input;\n\n return nodes.map((node) => {\n if (node.type === \"folder\") {\n return {\n id: node.id,\n label: node.name,\n isContainer: true,\n children: toTreeListNodes({\n nodes: node.children ?? [],\n viewMode,\n onSelectPath,\n resolveFileIcon,\n changeByPath,\n }),\n };\n }\n\n const filePath = node.id.replace(/^file:/, \"\");\n const fileIcon = resolveFileIcon?.(filePath) ?? { icon: <Icon as={FileText} boxSize=\"16px\" />, color: \"fg.subtle\" };\n const change = changeByPath?.get(filePath);\n return {\n id: node.id,\n label: renderFileLabel(node, viewMode, filePath),\n icon: fileIcon.icon,\n iconColor: fileIcon.color,\n endContent: change ? <FileChangeBadge change={change} /> : undefined,\n onActivate: () => onSelectPath(filePath),\n };\n });\n};\n\nexport const FileListPanel = (props: FileListPanelProps) => {\n const {\n paths,\n selectedPath,\n viewMode,\n searchQuery,\n expandedFolderIds,\n onSelectPath,\n onSearchQueryChange,\n onToggleFolder,\n resolveFileIcon,\n changeByPath,\n } = props;\n const scrollRef = useRef<HTMLDivElement>(null);\n const fileTree = buildChangedFilesTree(paths, viewMode);\n const treeNodes = toTreeListNodes({ nodes: fileTree, viewMode, onSelectPath, resolveFileIcon, changeByPath });\n const emptyTitle = searchQuery.trim() ? \"No matching files\" : \"No changed files\";\n\n return (\n <Stack h=\"full\" minH=\"0\" minW=\"0\" w=\"full\" gap=\"0\" overflow=\"hidden\" bg=\"bg\">\n <Header flexShrink={0} borderBottomWidth=\"1px\" borderColor=\"border.subtle\" bg=\"bg\">\n <InputGroup startElement={<Search size={14} />}>\n <Input\n size=\"sm\"\n variant=\"borderless\"\n aria-label=\"Search files\"\n placeholder=\"Search files\"\n value={searchQuery}\n onChange={(event) => onSearchQueryChange(event.target.value)}\n />\n </InputGroup>\n </Header>\n <ScrollArea\n flex=\"1\"\n minH=\"0\"\n minW=\"0\"\n bg=\"bg\"\n viewportRef={scrollRef}\n viewportProps={{ style: { overflowX: \"hidden\" } }}\n >\n {paths.length > 0 ? (\n <TreeList\n sections={[{ id: \"files\", nodes: treeNodes }]}\n expandedNodeIds={[...expandedFolderIds]}\n activeNodeId={selectedPath ? `file:${selectedPath}` : null}\n rowVariant=\"tree\"\n onToggleNode={onToggleFolder}\n virtualize\n scrollRef={scrollRef}\n />\n ) : (\n <Box px=\"xs\" py=\"xs\">\n <EmptyState title={emptyTitle} size=\"sm\" textAlign=\"left\" alignItems=\"flex-start\" />\n </Box>\n )}\n </ScrollArea>\n </Stack>\n );\n};\n","import { Box, Flex, HStack, Skeleton, Stack, Text } from \"@chakra-ui/react\";\nimport { useEffect, useState } from \"react\";\nimport { Header } from \"@/components/layout/header\";\nimport { ResizableSplitLayout } from \"@/components/layout/resizable-split-layout\";\nimport { EmptyState } from \"@/components/primitives/empty-state\";\nimport { buildChangedFilesTree, collectExpandedFolderIds, sortPathsByViewMode } from \"./build-changed-files-tree\";\nimport { DiffBubble } from \"./diff-bubble\";\nimport type { Diff } from \"./diff-card\";\nimport { DiffDrawer, type DiffDrawerExpansionState, type DiffExpansionCommand } from \"./diff-drawer\";\nimport { useDiffViewerStore } from \"./diff-viewer.store\";\nimport { DiffViewerOptionsMenu } from \"./diff-viewer-options-menu\";\nimport { FileListPanel } from \"./file-list-panel\";\nimport type { ChangedFilesViewMode, FileIconInfo } from \"./types\";\n\nexport interface DiffViewerProps {\n diffs: Diff[];\n changedFilePaths?: string[];\n defaultSelectedPath?: string | null;\n loading?: boolean;\n onLoadDiff?: (path: string) => Promise<void>;\n resolveFileIcon?: (path: string, options?: { isFolder?: boolean; isExpanded?: boolean }) => FileIconInfo | undefined;\n}\n\nconst getDiffPath = (diff: Diff) => diff.newPath ?? diff.oldPath ?? \"unknown\";\nconst buildChangeByPath = (diffs: Diff[]) => new Map(diffs.map((diff) => [getDiffPath(diff), diff.change]));\nconst sumDiffStats = (diffs: Diff[]) =>\n diffs.reduce(\n (total, diff) => ({\n additions: total.additions + (diff.additions ?? 0),\n deletions: total.deletions + (diff.deletions ?? 0),\n }),\n { additions: 0, deletions: 0 },\n );\n\nconst buildFilteredDiffs = (input: {\n diffs: Diff[];\n normalizedSearchQuery: string;\n viewMode: ChangedFilesViewMode;\n}) => {\n const { diffs, normalizedSearchQuery, viewMode } = input;\n const matchingDiffs = normalizedSearchQuery\n ? diffs.filter((diff) => getDiffPath(diff).toLowerCase().includes(normalizedSearchQuery))\n : diffs;\n const orderedPaths = sortPathsByViewMode(matchingDiffs.map(getDiffPath), viewMode);\n const orderByPath = new Map(orderedPaths.map((path, index) => [path, index]));\n\n return [...matchingDiffs].sort((left, right) => {\n const leftOrder = orderByPath.get(getDiffPath(left)) ?? Number.MAX_SAFE_INTEGER;\n const rightOrder = orderByPath.get(getDiffPath(right)) ?? Number.MAX_SAFE_INTEGER;\n return leftOrder - rightOrder;\n });\n};\n\nconst resolveSelectedPath = (preferredPaths: string[], fallbackPaths: string[]) =>\n preferredPaths[0] ?? fallbackPaths[0] ?? null;\n\nconst loadingDiffItems = [\"first\", \"second\", \"third\"] as const;\n\nconst DiffViewerLoading = () => (\n <Stack flex=\"1\" minH=\"0\" bg=\"bg\" p=\"xs\" gap=\"xs\" role=\"status\" aria-busy=\"true\" aria-label=\"Loading diff panel\">\n {loadingDiffItems.map((item) => (\n <Skeleton key={item} h=\"72px\" w=\"full\" flexShrink=\"0\" borderRadius=\"xs\" />\n ))}\n </Stack>\n);\n\nexport const DiffViewer = (props: DiffViewerProps) => {\n const { diffs, changedFilePaths, defaultSelectedPath = null, loading = false, onLoadDiff, resolveFileIcon } = props;\n const [diffExpansionCommand, setDiffExpansionCommand] = useState<DiffExpansionCommand | null>(null);\n const [diffExpansionState, setDiffExpansionState] = useState<DiffDrawerExpansionState>({\n allExpanded: false,\n allCollapsed: false,\n });\n const {\n isTreePanelOpen,\n viewMode,\n diffViewMode,\n searchQuery,\n selectedPath,\n expandedFolderIds,\n setTreePanelOpen,\n setViewMode,\n setDiffViewMode,\n setSearchQuery,\n setSelectedPath,\n setExpandedFolderIds,\n toggleFolder,\n expandAll,\n collapseAll,\n } = useDiffViewerStore();\n\n const diffPaths = diffs.map(getDiffPath);\n const filePaths = changedFilePaths ?? diffPaths;\n const normalizedSearchQuery = searchQuery.trim().toLowerCase();\n const filteredFilePaths = normalizedSearchQuery\n ? filePaths.filter((path) => path.toLowerCase().includes(normalizedSearchQuery))\n : filePaths;\n const filteredDiffs = buildFilteredDiffs({ diffs, normalizedSearchQuery, viewMode });\n const changeByPath = buildChangeByPath(diffs);\n const filteredDiffPaths = filteredDiffs.map(getDiffPath);\n const fileTree = buildChangedFilesTree(filteredFilePaths, viewMode);\n const folderIds = viewMode === \"nested\" ? collectExpandedFolderIds(fileTree) : [];\n const filteredFilePathKey = filteredFilePaths.join(\"\\0\");\n const filteredDiffPathKey = filteredDiffPaths.join(\"\\0\");\n const resolvedSelectedPath =\n selectedPath ?? defaultSelectedPath ?? resolveSelectedPath(filteredDiffPaths, filteredFilePaths);\n const hasDiffs = filteredDiffs.length > 0;\n const emptyDiffTitle = normalizedSearchQuery ? \"No matching changes\" : \"No changes\";\n const showDiffEmptyState = !loading && !hasDiffs;\n const totalDiff = sumDiffStats(filteredDiffs);\n const hasExpandableItems = folderIds.length > 0 || filteredDiffs.length > 0;\n const allFilesExpanded = folderIds.every((folderId) => expandedFolderIds.has(folderId));\n const allFilesCollapsed = folderIds.every((folderId) => !expandedFolderIds.has(folderId));\n const allDiffsExpanded = filteredDiffs.length === 0 || diffExpansionState.allExpanded;\n const allDiffsCollapsed = filteredDiffs.length === 0 || diffExpansionState.allCollapsed;\n const isExpandAllDisabled = !hasExpandableItems || (allFilesExpanded && allDiffsExpanded);\n const isCollapseAllDisabled = !hasExpandableItems || (allFilesCollapsed && allDiffsCollapsed);\n\n useEffect(() => {\n const filePaths = filteredFilePathKey ? filteredFilePathKey.split(\"\\0\") : [];\n const tree = buildChangedFilesTree(filePaths, viewMode);\n setExpandedFolderIds(viewMode === \"nested\" ? collectExpandedFolderIds(tree) : []);\n }, [filteredFilePathKey, setExpandedFolderIds, viewMode]);\n\n useEffect(() => {\n const diffPaths = filteredDiffPathKey ? filteredDiffPathKey.split(\"\\0\") : [];\n const filePaths = filteredFilePathKey ? filteredFilePathKey.split(\"\\0\") : [];\n if (resolvedSelectedPath && diffPaths.includes(resolvedSelectedPath)) return;\n setSelectedPath(resolveSelectedPath(diffPaths, filePaths));\n }, [filteredDiffPathKey, filteredFilePathKey, resolvedSelectedPath, setSelectedPath]);\n\n const expandAllFilesAndDiffs = () => {\n expandAll(folderIds);\n setDiffExpansionCommand((current) => ({ action: \"expand\", id: (current?.id ?? 0) + 1 }));\n };\n\n const collapseAllFilesAndDiffs = () => {\n collapseAll();\n setDiffExpansionCommand((current) => ({ action: \"collapse\", id: (current?.id ?? 0) + 1 }));\n };\n\n const selectChangedFilePath = (path: string) => {\n const currentIndex = resolvedSelectedPath ? filteredDiffPaths.indexOf(resolvedSelectedPath) : -1;\n const nextIndex = filteredDiffPaths.indexOf(path);\n const direction = currentIndex >= 0 && nextIndex >= 0 && nextIndex < currentIndex ? \"up\" : \"down\";\n\n setSelectedPath(path);\n setDiffExpansionCommand((current) => ({ action: \"expand-selected\", direction, id: (current?.id ?? 0) + 1, path }));\n };\n\n const diffPanel = (\n <Stack h=\"full\" minH=\"0\" minW=\"0\" flex=\"1\" bg=\"bg\" gap=\"0\">\n <Header variant=\"main\" borderBottomWidth=\"1px\" borderColor=\"border.subtle\" bg=\"bg\" justifyContent=\"space-between\">\n <HStack gap=\"xs\" minW=\"0\">\n <DiffViewerOptionsMenu\n isTreePanelOpen={isTreePanelOpen}\n hasFilePaths={filePaths.length > 0}\n viewMode={viewMode}\n diffViewMode={diffViewMode}\n isExpandAllDisabled={isExpandAllDisabled}\n isCollapseAllDisabled={isCollapseAllDisabled}\n onToggleTreePanel={() => setTreePanelOpen(!isTreePanelOpen)}\n onViewModeChange={setViewMode}\n onDiffViewModeChange={setDiffViewMode}\n onExpandAll={expandAllFilesAndDiffs}\n onCollapseAll={collapseAllFilesAndDiffs}\n />\n {showDiffEmptyState ? (\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\" truncate>\n {emptyDiffTitle}\n </Text>\n ) : null}\n </HStack>\n <DiffBubble variant=\"ghost\" size=\"small\" additions={totalDiff.additions} deletions={totalDiff.deletions} />\n </Header>\n {loading ? (\n <DiffViewerLoading />\n ) : hasDiffs ? (\n <Box flex=\"1\" minH=\"0\">\n <DiffDrawer\n diffs={filteredDiffs}\n selectedDiffPath={resolvedSelectedPath}\n onLoadDiff={onLoadDiff}\n onSelectDiffPath={setSelectedPath}\n onExpansionStateChange={setDiffExpansionState}\n expansionCommand={diffExpansionCommand}\n diffViewMode={diffViewMode}\n />\n </Box>\n ) : (\n <Box flex=\"1\" minH=\"0\" px=\"md\" py=\"lg\" display=\"flex\" alignItems=\"center\" justifyContent=\"center\" bg=\"bg\">\n <EmptyState title={emptyDiffTitle} />\n </Box>\n )}\n </Stack>\n );\n\n return (\n <Flex flex=\"1\" minH=\"0\" minW=\"0\" bg=\"bg\" gap=\"0\" data-testid=\"diff-viewer\">\n <ResizableSplitLayout\n flex=\"1\"\n minH=\"0\"\n minW=\"0\"\n resizablePanel={\n <FileListPanel\n paths={filteredFilePaths}\n selectedPath={resolvedSelectedPath}\n viewMode={viewMode}\n searchQuery={searchQuery}\n expandedFolderIds={expandedFolderIds}\n onSelectPath={selectChangedFilePath}\n onSearchQueryChange={setSearchQuery}\n onToggleFolder={toggleFolder}\n resolveFileIcon={resolveFileIcon}\n changeByPath={changeByPath}\n />\n }\n contentPanel={diffPanel}\n collapsed={!isTreePanelOpen}\n defaultSizePx={288}\n minSizePx={224}\n contentMinSizePx={320}\n resizeLabel=\"Resize file list panel\"\n separator=\"line\"\n onCollapsedChange={(collapsed) => setTreePanelOpen(!collapsed)}\n />\n </Flex>\n );\n};\n"],"mappings":"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"}
|
package/dist/diff.js
CHANGED
|
@@ -145,7 +145,7 @@ var g = ((e) => {
|
|
|
145
145
|
onMount: y
|
|
146
146
|
})
|
|
147
147
|
}), t[9] = u, t[10] = r, t[11] = g, t[12] = n, t[13] = _, t[14] = y, t[15] = b) : b = t[15], b;
|
|
148
|
-
}, D = u(() => import("./diff-drawer-45rpk3aq.js").then((e) => ({ default: e.DiffDrawer }))), O = u(() => import("./diff-viewer-
|
|
148
|
+
}, D = u(() => import("./diff-drawer-45rpk3aq.js").then((e) => ({ default: e.DiffDrawer }))), O = u(() => import("./diff-viewer-DJ1B5hxL.js").then((e) => ({ default: e.DiffViewer }))), k = (e) => {
|
|
149
149
|
let t = s(2), n;
|
|
150
150
|
return t[0] === e ? n = t[1] : (n = /* @__PURE__ */ c(l, {
|
|
151
151
|
fallback: null,
|
package/dist/index.d.ts
CHANGED
|
@@ -569,12 +569,6 @@ export declare const optionIcons: ({
|
|
|
569
569
|
value: string;
|
|
570
570
|
label: string;
|
|
571
571
|
icon: ComponentType<{
|
|
572
|
-
onChange?: import("react").ChangeEventHandler<HTMLSpanElement, Element> | undefined;
|
|
573
|
-
onError?: import("react").ReactEventHandler<HTMLSpanElement> | undefined;
|
|
574
|
-
onSubmit?: import("react").SubmitEventHandler<HTMLSpanElement> | undefined;
|
|
575
|
-
resource?: string | undefined | undefined;
|
|
576
|
-
id?: string | undefined | undefined;
|
|
577
|
-
role?: import("react").AriaRole | undefined;
|
|
578
572
|
slot?: string | undefined | undefined;
|
|
579
573
|
style?: import("react").CSSProperties | undefined;
|
|
580
574
|
title?: string | undefined | undefined;
|
|
@@ -583,6 +577,7 @@ export declare const optionIcons: ({
|
|
|
583
577
|
translate?: "yes" | "no" | undefined | undefined;
|
|
584
578
|
hidden?: boolean | undefined | undefined;
|
|
585
579
|
"aria-roledescription"?: string | undefined | undefined;
|
|
580
|
+
role?: import("react").AriaRole | undefined;
|
|
586
581
|
defaultChecked?: boolean | undefined | undefined;
|
|
587
582
|
defaultValue?: string | number | readonly string[] | undefined;
|
|
588
583
|
suppressContentEditableWarning?: boolean | undefined | undefined;
|
|
@@ -596,6 +591,7 @@ export declare const optionIcons: ({
|
|
|
596
591
|
dir?: string | undefined | undefined;
|
|
597
592
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
598
593
|
enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
594
|
+
id?: string | undefined | undefined;
|
|
599
595
|
lang?: string | undefined | undefined;
|
|
600
596
|
nonce?: string | undefined | undefined;
|
|
601
597
|
spellCheck?: (boolean | "true" | "false") | undefined;
|
|
@@ -607,6 +603,7 @@ export declare const optionIcons: ({
|
|
|
607
603
|
prefix?: string | undefined | undefined;
|
|
608
604
|
property?: string | undefined | undefined;
|
|
609
605
|
rel?: string | undefined | undefined;
|
|
606
|
+
resource?: string | undefined | undefined;
|
|
610
607
|
rev?: string | undefined | undefined;
|
|
611
608
|
typeof?: string | undefined | undefined;
|
|
612
609
|
vocab?: string | undefined | undefined;
|
|
@@ -699,6 +696,7 @@ export declare const optionIcons: ({
|
|
|
699
696
|
onFocusCapture?: import("react").FocusEventHandler<HTMLSpanElement> | undefined;
|
|
700
697
|
onBlur?: import("react").FocusEventHandler<HTMLSpanElement> | undefined;
|
|
701
698
|
onBlurCapture?: import("react").FocusEventHandler<HTMLSpanElement> | undefined;
|
|
699
|
+
onChange?: import("react").ChangeEventHandler<HTMLSpanElement, Element> | undefined;
|
|
702
700
|
onChangeCapture?: import("react").ChangeEventHandler<HTMLSpanElement, Element> | undefined;
|
|
703
701
|
onBeforeInput?: import("react").InputEventHandler<HTMLSpanElement> | undefined;
|
|
704
702
|
onBeforeInputCapture?: import("react").InputEventHandler<HTMLSpanElement> | undefined;
|
|
@@ -706,11 +704,13 @@ export declare const optionIcons: ({
|
|
|
706
704
|
onInputCapture?: import("react").InputEventHandler<HTMLSpanElement> | undefined;
|
|
707
705
|
onReset?: import("react").ReactEventHandler<HTMLSpanElement> | undefined;
|
|
708
706
|
onResetCapture?: import("react").ReactEventHandler<HTMLSpanElement> | undefined;
|
|
707
|
+
onSubmit?: import("react").SubmitEventHandler<HTMLSpanElement> | undefined;
|
|
709
708
|
onSubmitCapture?: import("react").SubmitEventHandler<HTMLSpanElement> | undefined;
|
|
710
709
|
onInvalid?: import("react").ReactEventHandler<HTMLSpanElement> | undefined;
|
|
711
710
|
onInvalidCapture?: import("react").ReactEventHandler<HTMLSpanElement> | undefined;
|
|
712
711
|
onLoad?: import("react").ReactEventHandler<HTMLSpanElement> | undefined;
|
|
713
712
|
onLoadCapture?: import("react").ReactEventHandler<HTMLSpanElement> | undefined;
|
|
713
|
+
onError?: import("react").ReactEventHandler<HTMLSpanElement> | undefined;
|
|
714
714
|
onErrorCapture?: import("react").ReactEventHandler<HTMLSpanElement> | undefined;
|
|
715
715
|
onKeyDown?: import("react").KeyboardEventHandler<HTMLSpanElement> | undefined;
|
|
716
716
|
onKeyDownCapture?: import("react").KeyboardEventHandler<HTMLSpanElement> | undefined;
|
|
@@ -1026,6 +1026,8 @@ interface TreeListSection {
|
|
|
1026
1026
|
/** Opaque host scope passed to a configurable move policy. */
|
|
1027
1027
|
moveScope?: string;
|
|
1028
1028
|
label?: string;
|
|
1029
|
+
/** Names a section without a visible header in the customize menu. */
|
|
1030
|
+
menuLabel?: string;
|
|
1029
1031
|
collapsible?: boolean;
|
|
1030
1032
|
actions?: TreeListAction[];
|
|
1031
1033
|
emptyState?: ReactNode;
|