@stoked-ui/github 0.0.0-a.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/CHANGELOG.md +15014 -0
  2. package/GithubCalendar/GithubCalendar.d.ts +7 -0
  3. package/GithubCalendar/GithubCalendar.js +330 -0
  4. package/GithubCalendar/index.d.ts +2 -0
  5. package/GithubCalendar/index.js +2 -0
  6. package/GithubCalendar/package.json +6 -0
  7. package/GithubEvents/EventTypes/CreateEvent.d.ts +7 -0
  8. package/GithubEvents/EventTypes/CreateEvent.js +72 -0
  9. package/GithubEvents/EventTypes/DeleteEvent.d.ts +7 -0
  10. package/GithubEvents/EventTypes/DeleteEvent.js +65 -0
  11. package/GithubEvents/EventTypes/ForkEvent.d.ts +7 -0
  12. package/GithubEvents/EventTypes/ForkEvent.js +77 -0
  13. package/GithubEvents/EventTypes/IssueCommentEvent.d.ts +7 -0
  14. package/GithubEvents/EventTypes/IssueCommentEvent.js +210 -0
  15. package/GithubEvents/EventTypes/IssuesEvent.d.ts +7 -0
  16. package/GithubEvents/EventTypes/IssuesEvent.js +97 -0
  17. package/GithubEvents/EventTypes/ProjectsV2ColumnEvent.d.ts +7 -0
  18. package/GithubEvents/EventTypes/ProjectsV2ColumnEvent.js +69 -0
  19. package/GithubEvents/EventTypes/ProjectsV2Event.d.ts +7 -0
  20. package/GithubEvents/EventTypes/ProjectsV2Event.js +74 -0
  21. package/GithubEvents/EventTypes/ProjectsV2FieldEvent.d.ts +7 -0
  22. package/GithubEvents/EventTypes/ProjectsV2FieldEvent.js +77 -0
  23. package/GithubEvents/EventTypes/ProjectsV2ItemEvent.d.ts +7 -0
  24. package/GithubEvents/EventTypes/ProjectsV2ItemEvent.js +79 -0
  25. package/GithubEvents/EventTypes/PullRequest/CommitsList.d.ts +17 -0
  26. package/GithubEvents/EventTypes/PullRequest/CommitsList.js +99 -0
  27. package/GithubEvents/EventTypes/PullRequest/FileChanges.d.ts +17 -0
  28. package/GithubEvents/EventTypes/PullRequest/FileChanges.js +182 -0
  29. package/GithubEvents/EventTypes/PullRequest/PullRequestEvent.d.ts +8 -0
  30. package/GithubEvents/EventTypes/PullRequest/PullRequestEvent.js +374 -0
  31. package/GithubEvents/EventTypes/PullRequest/PullRequestView.d.ts +29 -0
  32. package/GithubEvents/EventTypes/PullRequest/PullRequestView.js +132 -0
  33. package/GithubEvents/EventTypes/PushEvent.d.ts +7 -0
  34. package/GithubEvents/EventTypes/PushEvent.js +106 -0
  35. package/GithubEvents/GithubEvents.d.ts +49 -0
  36. package/GithubEvents/GithubEvents.js +1454 -0
  37. package/GithubEvents/index.d.ts +2 -0
  38. package/GithubEvents/index.js +2 -0
  39. package/GithubEvents/package.json +6 -0
  40. package/LICENSE +21 -0
  41. package/README.md +29 -0
  42. package/apiHandlers/getPullRequestDetails.d.ts +7 -0
  43. package/apiHandlers/getPullRequestDetails.js +120 -0
  44. package/apiHandlers/index.d.ts +1 -0
  45. package/apiHandlers/index.js +1 -0
  46. package/apiHandlers/package.json +6 -0
  47. package/index.d.ts +3 -0
  48. package/index.js +10 -0
  49. package/modern/GithubCalendar/GithubCalendar.js +330 -0
  50. package/modern/GithubCalendar/index.js +2 -0
  51. package/modern/GithubEvents/EventTypes/CreateEvent.js +72 -0
  52. package/modern/GithubEvents/EventTypes/DeleteEvent.js +65 -0
  53. package/modern/GithubEvents/EventTypes/ForkEvent.js +77 -0
  54. package/modern/GithubEvents/EventTypes/IssueCommentEvent.js +210 -0
  55. package/modern/GithubEvents/EventTypes/IssuesEvent.js +97 -0
  56. package/modern/GithubEvents/EventTypes/ProjectsV2ColumnEvent.js +69 -0
  57. package/modern/GithubEvents/EventTypes/ProjectsV2Event.js +74 -0
  58. package/modern/GithubEvents/EventTypes/ProjectsV2FieldEvent.js +77 -0
  59. package/modern/GithubEvents/EventTypes/ProjectsV2ItemEvent.js +79 -0
  60. package/modern/GithubEvents/EventTypes/PullRequest/CommitsList.js +99 -0
  61. package/modern/GithubEvents/EventTypes/PullRequest/FileChanges.js +182 -0
  62. package/modern/GithubEvents/EventTypes/PullRequest/PullRequestEvent.js +374 -0
  63. package/modern/GithubEvents/EventTypes/PullRequest/PullRequestView.js +132 -0
  64. package/modern/GithubEvents/EventTypes/PushEvent.js +106 -0
  65. package/modern/GithubEvents/GithubEvents.js +1454 -0
  66. package/modern/GithubEvents/index.js +2 -0
  67. package/modern/apiHandlers/getPullRequestDetails.js +120 -0
  68. package/modern/apiHandlers/index.js +1 -0
  69. package/modern/index.js +10 -0
  70. package/modern/types/github.js +1 -0
  71. package/node/GithubCalendar/GithubCalendar.js +337 -0
  72. package/node/GithubCalendar/index.js +9 -0
  73. package/node/GithubEvents/EventTypes/CreateEvent.js +80 -0
  74. package/node/GithubEvents/EventTypes/DeleteEvent.js +73 -0
  75. package/node/GithubEvents/EventTypes/ForkEvent.js +85 -0
  76. package/node/GithubEvents/EventTypes/IssueCommentEvent.js +218 -0
  77. package/node/GithubEvents/EventTypes/IssuesEvent.js +105 -0
  78. package/node/GithubEvents/EventTypes/ProjectsV2ColumnEvent.js +77 -0
  79. package/node/GithubEvents/EventTypes/ProjectsV2Event.js +82 -0
  80. package/node/GithubEvents/EventTypes/ProjectsV2FieldEvent.js +85 -0
  81. package/node/GithubEvents/EventTypes/ProjectsV2ItemEvent.js +87 -0
  82. package/node/GithubEvents/EventTypes/PullRequest/CommitsList.js +107 -0
  83. package/node/GithubEvents/EventTypes/PullRequest/FileChanges.js +188 -0
  84. package/node/GithubEvents/EventTypes/PullRequest/PullRequestEvent.js +381 -0
  85. package/node/GithubEvents/EventTypes/PullRequest/PullRequestView.js +138 -0
  86. package/node/GithubEvents/EventTypes/PushEvent.js +114 -0
  87. package/node/GithubEvents/GithubEvents.js +1463 -0
  88. package/node/GithubEvents/index.js +9 -0
  89. package/node/apiHandlers/getPullRequestDetails.js +127 -0
  90. package/node/apiHandlers/index.js +13 -0
  91. package/node/index.js +27 -0
  92. package/node/types/github.js +5 -0
  93. package/package.json +71 -0
  94. package/types/github.d.ts +107 -0
  95. package/types/github.js +1 -0
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = ProjectsV2ItemEvent;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
10
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
11
+ var _Link = _interopRequireDefault(require("@mui/material/Link"));
12
+ var _Chip = _interopRequireDefault(require("@mui/material/Chip"));
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
+ function ProjectsV2ItemEvent({
16
+ event
17
+ }) {
18
+ var _event$payload, _event$payload2, _item$content_type;
19
+ if (!(event != null && event.date)) {
20
+ return null;
21
+ }
22
+ const item = (_event$payload = event.payload) == null ? void 0 : _event$payload.projects_v2_item;
23
+ const action = (_event$payload2 = event.payload) == null ? void 0 : _event$payload2.action;
24
+ if (!item) {
25
+ return null;
26
+ }
27
+ const itemTitle = item.title || 'Untitled Item';
28
+ const itemUrl = item.html_url;
29
+ const itemType = ((_item$content_type = item.content_type) == null ? void 0 : _item$content_type.toLowerCase()) || 'item';
30
+ const projectNumber = item.project_number;
31
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
32
+ sx: {
33
+ p: '16px'
34
+ },
35
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
36
+ sx: {
37
+ display: 'flex',
38
+ alignItems: 'center',
39
+ gap: 1,
40
+ mb: 2
41
+ },
42
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
43
+ variant: "caption",
44
+ color: "text.secondary",
45
+ children: event.date
46
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Chip.default, {
47
+ label: `Project #${projectNumber}`,
48
+ size: "small",
49
+ color: "default"
50
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Chip.default, {
51
+ label: itemType,
52
+ size: "small",
53
+ color: "info"
54
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Chip.default, {
55
+ label: action,
56
+ size: "small",
57
+ color: action === 'created' ? 'success' : action === 'deleted' ? 'error' : 'primary'
58
+ })]
59
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
60
+ variant: "h6",
61
+ component: "h3",
62
+ sx: {
63
+ mb: 1
64
+ },
65
+ children: itemUrl ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Link.default, {
66
+ href: itemUrl,
67
+ target: "_blank",
68
+ rel: "noopener noreferrer",
69
+ sx: {
70
+ textDecoration: 'none'
71
+ },
72
+ children: itemTitle
73
+ }) : itemTitle
74
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
75
+ sx: {
76
+ display: 'flex',
77
+ alignItems: 'center',
78
+ gap: 1
79
+ },
80
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {
81
+ variant: "body2",
82
+ color: "text.secondary",
83
+ children: [itemType, " ", action, " in project #", projectNumber]
84
+ })
85
+ })]
86
+ });
87
+ }
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = CommitsList;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
10
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
11
+ var _Avatar = _interopRequireDefault(require("@mui/material/Avatar"));
12
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
13
+ var _styles = require("@mui/material/styles");
14
+ var _ContentCopy = _interopRequireDefault(require("@mui/icons-material/ContentCopy"));
15
+ var _CallMade = _interopRequireDefault(require("@mui/icons-material/CallMade"));
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ var _CopyIcon, _CheckoutIcon;
18
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
19
+ const CommitItem = (0, _styles.styled)(_Box.default)(({
20
+ theme
21
+ }) => ({
22
+ display: 'flex',
23
+ alignItems: 'flex-start',
24
+ padding: theme.spacing(2),
25
+ borderBottom: `1px solid ${theme.palette.divider}`,
26
+ '&:last-child': {
27
+ borderBottom: 'none'
28
+ },
29
+ '&:hover': {
30
+ backgroundColor: theme.palette.action.hover,
31
+ '.commit-actions': {
32
+ visibility: 'visible'
33
+ }
34
+ }
35
+ }));
36
+ const CommitActions = (0, _styles.styled)(_Box.default)({
37
+ visibility: 'hidden',
38
+ display: 'flex',
39
+ gap: '8px'
40
+ });
41
+ function CommitsList({
42
+ commits,
43
+ onCheckout
44
+ }) {
45
+ const handleCopyHash = hash => {
46
+ navigator.clipboard.writeText(hash);
47
+ };
48
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
49
+ children: commits.map(commit => /*#__PURE__*/(0, _jsxRuntime.jsx)(CommitItem, {
50
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
51
+ sx: {
52
+ display: 'flex',
53
+ width: '100%'
54
+ },
55
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar.default, {
56
+ src: commit.author.avatar,
57
+ alt: commit.author.name,
58
+ sx: {
59
+ width: 32,
60
+ height: 32,
61
+ mr: 2
62
+ }
63
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
64
+ sx: {
65
+ flex: 1
66
+ },
67
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
68
+ variant: "body1",
69
+ sx: {
70
+ mb: 0.5,
71
+ wordBreak: 'break-word'
72
+ },
73
+ children: commit.message
74
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
75
+ sx: {
76
+ display: 'flex',
77
+ alignItems: 'center',
78
+ justifyContent: 'space-between'
79
+ },
80
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {
81
+ variant: "body2",
82
+ color: "text.secondary",
83
+ children: [commit.author.name, " committed ", commit.date]
84
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(CommitActions, {
85
+ className: "commit-actions",
86
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
87
+ size: "small",
88
+ onClick: () => handleCopyHash(commit.hash),
89
+ title: "Copy commit SHA",
90
+ children: _CopyIcon || (_CopyIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_ContentCopy.default, {
91
+ fontSize: "small"
92
+ }))
93
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
94
+ size: "small",
95
+ onClick: () => onCheckout == null ? void 0 : onCheckout(commit.hash),
96
+ title: "Checkout commit",
97
+ children: _CheckoutIcon || (_CheckoutIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_CallMade.default, {
98
+ fontSize: "small"
99
+ }))
100
+ })]
101
+ })]
102
+ })]
103
+ })]
104
+ })
105
+ }, commit.id))
106
+ });
107
+ }
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = FileChanges;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
11
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
12
+ var _SimpleTreeView = require("@mui/x-tree-view/SimpleTreeView");
13
+ var _TreeItem = require("@mui/x-tree-view/TreeItem");
14
+ var _styles = require("@mui/material/styles");
15
+ var _InsertDriveFile = _interopRequireDefault(require("@mui/icons-material/InsertDriveFile"));
16
+ var _ChevronRight = _interopRequireDefault(require("@mui/icons-material/ChevronRight"));
17
+ var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore"));
18
+ var _Chip4 = _interopRequireDefault(require("@mui/material/Chip"));
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ var _Chip, _Chip2, _Chip3, _FileIcon; // import FolderIcon from '@mui/icons-material/Folder';
21
+ // const StyledTreeItem = styled(TreeItem)((props) => ({
22
+ // '& .MuiTreeItem-content': {
23
+ // padding: props.theme.spacing(1),
24
+ // borderRadius: props.theme.shape.borderRadius,
25
+ // '&:hover': {
26
+ // backgroundColor: props.theme.palette.action.hover,
27
+ // },
28
+ // '& .MuiTreeItem-label': {
29
+ // display: 'flex',
30
+ // alignItems: 'center',
31
+ // gap: props.theme.spacing(1),
32
+ // },
33
+ // },
34
+ // }));
35
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
36
+ const DiffView = (0, _styles.styled)(_Box.default)(({
37
+ theme
38
+ }) => ({
39
+ backgroundColor: theme.palette.background.paper,
40
+ border: `1px solid ${theme.palette.divider}`,
41
+ borderRadius: theme.shape.borderRadius,
42
+ fontFamily: 'ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace',
43
+ fontSize: '12px',
44
+ lineHeight: 1.5,
45
+ overflow: 'auto'
46
+ }));
47
+ const DiffLine = (0, _styles.styled)(_Box.default, {
48
+ shouldForwardProp: prop => prop !== 'type'
49
+ })(({
50
+ theme,
51
+ type
52
+ }) => (0, _extends2.default)({
53
+ padding: '0 16px',
54
+ whiteSpace: 'pre'
55
+ }, type === 'addition' && {
56
+ backgroundColor: 'rgba(46, 160, 67, 0.15)',
57
+ borderLeft: '4px solid #2ea043'
58
+ }, type === 'deletion' && {
59
+ backgroundColor: 'rgba(248, 81, 73, 0.15)',
60
+ borderLeft: '4px solid #f85149'
61
+ }, type === 'context' && {
62
+ backgroundColor: 'transparent',
63
+ borderLeft: '4px solid transparent'
64
+ }));
65
+ // interface TreeNode {
66
+ // id: string;
67
+ // name: string;
68
+ // type: FileChange['type'];
69
+ // additions: number;
70
+ // deletions: number;
71
+ // diff: FileChange['diff'];
72
+ // children?: TreeNode[];
73
+ // }
74
+
75
+ function FileChanges({
76
+ files
77
+ }) {
78
+ const [expanded, setExpanded] = React.useState([]);
79
+ const [selected, setSelected] = React.useState([]);
80
+ const handleToggle = (_event, nodeIds) => {
81
+ setExpanded(nodeIds);
82
+ };
83
+ const handleSelect = (_event, nodeIds) => {
84
+ setSelected(nodeIds);
85
+ };
86
+ const getFileIcon = type => {
87
+ switch (type) {
88
+ case 'added':
89
+ return _Chip || (_Chip = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Chip4.default, {
90
+ label: "A",
91
+ size: "small",
92
+ color: "success"
93
+ }));
94
+ case 'modified':
95
+ return _Chip2 || (_Chip2 = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Chip4.default, {
96
+ label: "M",
97
+ size: "small",
98
+ color: "warning"
99
+ }));
100
+ case 'deleted':
101
+ return _Chip3 || (_Chip3 = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Chip4.default, {
102
+ label: "D",
103
+ size: "small",
104
+ color: "error"
105
+ }));
106
+ default:
107
+ return _FileIcon || (_FileIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_InsertDriveFile.default, {}));
108
+ }
109
+ };
110
+
111
+ // Transform files into tree nodes
112
+ // const items: TreeNode[] = files.map((file, index) => ({
113
+ // id: `file-${index}-${file.path.replace(/[^a-zA-Z0-9]/g, '-')}`,
114
+ // name: file.path,
115
+ // type: file.type,
116
+ // additions: file.additions,
117
+ // deletions: file.deletions,
118
+ // diff: file.diff
119
+ // }));
120
+
121
+ // const renderLabel = (node: TreeNode) => (
122
+ // <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
123
+ // {getFileIcon(node.type)}
124
+ // <Typography variant="body2">{node.name}</Typography>
125
+ // <Typography variant="caption" color="text.secondary">
126
+ // +{node.additions} -{node.deletions}
127
+ // </Typography>
128
+ // </Box>
129
+ // );
130
+
131
+ // const renderContent = (node: TreeNode) => (
132
+ // <Box sx={{ p: '16px' }}>
133
+ // <DiffView>
134
+ // {node.diff.map((line, index) => (
135
+ // <DiffLine key={`${node.id}-line-${index}`} type={line.type}>
136
+ // {line.content}
137
+ // </DiffLine>
138
+ // ))}
139
+ // </DiffView>
140
+ // </Box>
141
+ // );
142
+
143
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
144
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SimpleTreeView.SimpleTreeView, {
145
+ slots: {
146
+ collapseIcon: _ExpandMore.default,
147
+ expandIcon: _ChevronRight.default
148
+ },
149
+ expandedItems: expanded,
150
+ selectedItems: selected,
151
+ onExpandedItemsChange: handleToggle,
152
+ onSelectedItemsChange: handleSelect,
153
+ multiSelect: true,
154
+ children: files.map((file, index) => {
155
+ const itemId = `file-${index}-${file.path.replace(/[^a-zA-Z0-9]/g, '-')}`;
156
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeItem.TreeItem, {
157
+ itemId: itemId,
158
+ label: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
159
+ sx: {
160
+ display: 'flex',
161
+ alignItems: 'center',
162
+ gap: 1
163
+ },
164
+ children: [getFileIcon(file.type), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
165
+ variant: "body2",
166
+ children: file.path
167
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {
168
+ variant: "caption",
169
+ color: "text.secondary",
170
+ children: ["+", file.additions, " -", file.deletions]
171
+ })]
172
+ }),
173
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
174
+ sx: {
175
+ p: '16px'
176
+ },
177
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DiffView, {
178
+ children: file.diff.map((line, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(DiffLine, {
179
+ type: line.type,
180
+ children: line.content
181
+ }, `${itemId}-line-${index}`))
182
+ })
183
+ })
184
+ }, itemId);
185
+ })
186
+ })
187
+ });
188
+ }