react-diff-viewer-continued 4.0.0 → 4.0.2

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.
@@ -0,0 +1,352 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const create_instance_1 = __importDefault(require("@emotion/css/create-instance"));
18
+ // eslint-disable-next-line import/no-anonymous-default-export
19
+ exports.default = (styleOverride, useDarkTheme = false, nonce = '') => {
20
+ const { variables: overrideVariables = {} } = styleOverride, styles = __rest(styleOverride, ["variables"]);
21
+ const themeVariables = {
22
+ light: Object.assign({
23
+ diffViewerBackground: '#fff',
24
+ diffViewerColor: '#212529',
25
+ addedBackground: '#e6ffed',
26
+ addedColor: '#24292e',
27
+ removedBackground: '#ffeef0',
28
+ removedColor: '#24292e',
29
+ changedBackground: '#fffbdd',
30
+ wordAddedBackground: '#acf2bd',
31
+ wordRemovedBackground: '#fdb8c0',
32
+ addedGutterBackground: '#cdffd8',
33
+ removedGutterBackground: '#ffdce0',
34
+ gutterBackground: '#f7f7f7',
35
+ gutterBackgroundDark: '#f3f1f1',
36
+ highlightBackground: '#fffbdd',
37
+ highlightGutterBackground: '#fff5b1',
38
+ codeFoldGutterBackground: '#dbedff',
39
+ codeFoldBackground: '#f1f8ff',
40
+ emptyLineBackground: '#fafbfc',
41
+ gutterColor: '#212529',
42
+ addedGutterColor: '#212529',
43
+ removedGutterColor: '#212529',
44
+ codeFoldContentColor: '#212529',
45
+ diffViewerTitleBackground: '#fafbfc',
46
+ diffViewerTitleColor: '#212529',
47
+ diffViewerTitleBorderColor: '#eee',
48
+ }, (overrideVariables.light || {})),
49
+ dark: Object.assign({
50
+ diffViewerBackground: '#2e303c',
51
+ diffViewerColor: '#FFF',
52
+ addedBackground: '#044B53',
53
+ addedColor: 'white',
54
+ removedBackground: '#632F34',
55
+ removedColor: 'white',
56
+ changedBackground: '#3e302c',
57
+ wordAddedBackground: '#055d67',
58
+ wordRemovedBackground: '#7d383f',
59
+ addedGutterBackground: '#034148',
60
+ removedGutterBackground: '#632b30',
61
+ gutterBackground: '#2c2f3a',
62
+ gutterBackgroundDark: '#262933',
63
+ highlightBackground: '#2a3967',
64
+ highlightGutterBackground: '#2d4077',
65
+ codeFoldGutterBackground: '#262831',
66
+ codeFoldBackground: '#262831',
67
+ emptyLineBackground: '#363946',
68
+ gutterColor: '#666c87',
69
+ addedGutterColor: '#8c8c8c',
70
+ removedGutterColor: '#8c8c8c',
71
+ codeFoldContentColor: '#656a8b',
72
+ diffViewerTitleBackground: '#2f323e',
73
+ diffViewerTitleColor: '#757a9b',
74
+ diffViewerTitleBorderColor: '#353846',
75
+ }, (overrideVariables.dark || {})),
76
+ };
77
+ const variables = useDarkTheme ? themeVariables.dark : themeVariables.light;
78
+ const { css, cx } = (0, create_instance_1.default)({ key: 'react-diff', nonce });
79
+ const content = css({
80
+ width: 'auto',
81
+ label: 'content',
82
+ });
83
+ const splitView = css({
84
+ label: 'split-view',
85
+ });
86
+ const summary = css({
87
+ background: variables.diffViewerTitleBackground,
88
+ color: variables.diffViewerTitleColor,
89
+ padding: '0.5em 1em',
90
+ display: 'flex',
91
+ alignItems: 'center',
92
+ gap: '0.5em',
93
+ fontFamily: "monospace",
94
+ fill: variables.diffViewerTitleColor,
95
+ });
96
+ const diffContainer = css({
97
+ width: '100%',
98
+ minWidth: '1000px',
99
+ overflowX: 'auto',
100
+ tableLayout: 'fixed',
101
+ background: variables.diffViewerBackground,
102
+ pre: {
103
+ margin: 0,
104
+ whiteSpace: 'pre-wrap',
105
+ lineHeight: '1.6em',
106
+ width: 'fit-content'
107
+ },
108
+ label: 'diff-container',
109
+ borderCollapse: 'collapse',
110
+ });
111
+ const lineContent = css({
112
+ overflow: 'hidden',
113
+ width: '100%'
114
+ });
115
+ const contentText = css({
116
+ color: variables.diffViewerColor,
117
+ whiteSpace: 'pre-wrap',
118
+ fontFamily: 'monospace',
119
+ textDecoration: 'none',
120
+ label: 'content-text',
121
+ });
122
+ const unselectable = css({
123
+ userSelect: 'none',
124
+ label: 'unselectable',
125
+ });
126
+ const titleBlock = css({
127
+ background: variables.diffViewerTitleBackground,
128
+ padding: '0.5em',
129
+ lineHeight: '1.4em',
130
+ height: "2.4em",
131
+ overflow: 'hidden',
132
+ width: '50%',
133
+ borderBottom: `1px solid ${variables.diffViewerTitleBorderColor}`,
134
+ label: 'title-block',
135
+ ':last-child': {
136
+ borderLeft: `1px solid ${variables.diffViewerTitleBorderColor}`,
137
+ },
138
+ [`.${contentText}`]: {
139
+ color: variables.diffViewerTitleColor,
140
+ },
141
+ });
142
+ const lineNumber = css({
143
+ color: variables.gutterColor,
144
+ label: 'line-number',
145
+ });
146
+ const diffRemoved = css({
147
+ background: variables.removedBackground,
148
+ color: variables.removedColor,
149
+ pre: {
150
+ color: variables.removedColor,
151
+ },
152
+ [`.${lineNumber}`]: {
153
+ color: variables.removedGutterColor,
154
+ },
155
+ label: 'diff-removed',
156
+ });
157
+ const diffAdded = css({
158
+ background: variables.addedBackground,
159
+ color: variables.addedColor,
160
+ pre: {
161
+ color: variables.addedColor,
162
+ },
163
+ [`.${lineNumber}`]: {
164
+ color: variables.addedGutterColor,
165
+ },
166
+ label: 'diff-added',
167
+ });
168
+ const diffChanged = css({
169
+ background: variables.changedBackground,
170
+ [`.${lineNumber}`]: {
171
+ color: variables.gutterColor,
172
+ },
173
+ label: 'diff-changed',
174
+ });
175
+ const wordDiff = css({
176
+ padding: 2,
177
+ display: 'inline-flex',
178
+ borderRadius: 4,
179
+ wordBreak: 'break-all',
180
+ label: 'word-diff',
181
+ });
182
+ const wordAdded = css({
183
+ background: variables.wordAddedBackground,
184
+ textDecoration: 'none',
185
+ label: 'word-added',
186
+ });
187
+ const wordRemoved = css({
188
+ background: variables.wordRemovedBackground,
189
+ textDecoration: 'none',
190
+ label: 'word-removed',
191
+ });
192
+ const codeFoldGutter = css({
193
+ backgroundColor: variables.codeFoldGutterBackground,
194
+ label: 'code-fold-gutter',
195
+ minWidth: '50px',
196
+ width: '50px'
197
+ });
198
+ const codeFoldContentContainer = css({
199
+ padding: '8px 16px'
200
+ });
201
+ const codeFoldContent = css({
202
+ color: variables.codeFoldContentColor,
203
+ label: 'code-fold-content',
204
+ });
205
+ const block = css({
206
+ display: 'block',
207
+ width: '10px',
208
+ height: '10px',
209
+ backgroundColor: '#ddd',
210
+ borderWidth: '1px',
211
+ borderStyle: 'solid',
212
+ borderColor: variables.diffViewerTitleBorderColor
213
+ });
214
+ const blockAddition = css({
215
+ backgroundColor: variables.wordAddedBackground
216
+ });
217
+ const blockDeletion = css({
218
+ backgroundColor: variables.wordRemovedBackground
219
+ });
220
+ const codeFold = css({
221
+ backgroundColor: variables.codeFoldBackground,
222
+ height: 40,
223
+ fontSize: 14,
224
+ alignItems: 'center',
225
+ userSelect: 'none',
226
+ fontWeight: 700,
227
+ label: 'code-fold',
228
+ a: {
229
+ textDecoration: 'underline !important',
230
+ cursor: 'pointer',
231
+ pre: {
232
+ display: 'inline',
233
+ },
234
+ },
235
+ });
236
+ const emptyLine = css({
237
+ backgroundColor: variables.emptyLineBackground,
238
+ label: 'empty-line',
239
+ });
240
+ const marker = css({
241
+ width: 28,
242
+ paddingLeft: 10,
243
+ paddingRight: 10,
244
+ userSelect: 'none',
245
+ label: 'marker',
246
+ [`&.${diffAdded}`]: {
247
+ pre: {
248
+ color: variables.addedColor,
249
+ },
250
+ },
251
+ [`&.${diffRemoved}`]: {
252
+ pre: {
253
+ color: variables.removedColor,
254
+ },
255
+ },
256
+ });
257
+ const highlightedLine = css({
258
+ background: variables.highlightBackground,
259
+ label: 'highlighted-line',
260
+ [`.${wordAdded}, .${wordRemoved}`]: {
261
+ backgroundColor: 'initial',
262
+ },
263
+ });
264
+ const highlightedGutter = css({
265
+ label: 'highlighted-gutter',
266
+ });
267
+ const gutter = css({
268
+ userSelect: 'none',
269
+ minWidth: 50,
270
+ width: '50px',
271
+ padding: '0 10px',
272
+ whiteSpace: 'nowrap',
273
+ label: 'gutter',
274
+ textAlign: 'right',
275
+ background: variables.gutterBackground,
276
+ '&:hover': {
277
+ cursor: 'pointer',
278
+ background: variables.gutterBackgroundDark,
279
+ pre: {
280
+ opacity: 1,
281
+ },
282
+ },
283
+ pre: {
284
+ opacity: 0.5,
285
+ },
286
+ [`&.${diffAdded}`]: {
287
+ background: variables.addedGutterBackground,
288
+ },
289
+ [`&.${diffRemoved}`]: {
290
+ background: variables.removedGutterBackground,
291
+ },
292
+ [`&.${highlightedGutter}`]: {
293
+ background: variables.highlightGutterBackground,
294
+ '&:hover': {
295
+ background: variables.highlightGutterBackground,
296
+ },
297
+ },
298
+ });
299
+ const emptyGutter = css({
300
+ '&:hover': {
301
+ background: variables.gutterBackground,
302
+ cursor: 'initial',
303
+ },
304
+ label: 'empty-gutter',
305
+ });
306
+ const line = css({
307
+ verticalAlign: 'baseline',
308
+ label: 'line',
309
+ textDecoration: 'none'
310
+ });
311
+ const column = css({});
312
+ const defaultStyles = {
313
+ diffContainer,
314
+ diffRemoved,
315
+ diffAdded,
316
+ diffChanged,
317
+ splitView,
318
+ marker,
319
+ highlightedGutter,
320
+ highlightedLine,
321
+ gutter,
322
+ line,
323
+ lineContent,
324
+ wordDiff,
325
+ wordAdded,
326
+ summary,
327
+ block,
328
+ blockAddition,
329
+ blockDeletion,
330
+ wordRemoved,
331
+ noSelect: unselectable,
332
+ codeFoldGutter,
333
+ codeFoldContentContainer,
334
+ codeFold,
335
+ emptyGutter,
336
+ emptyLine,
337
+ lineNumber,
338
+ contentText,
339
+ content,
340
+ column,
341
+ codeFoldContent,
342
+ titleBlock,
343
+ };
344
+ const computerOverrideStyles = Object.keys(styles).reduce((acc, key) => (Object.assign(Object.assign({}, acc), {
345
+ [key]: css(styles[key]),
346
+ })), {});
347
+ return Object.keys(defaultStyles).reduce((acc, key) => (Object.assign(Object.assign({}, acc), {
348
+ [key]: computerOverrideStyles[key]
349
+ ? cx(defaultStyles[key], computerOverrideStyles[key])
350
+ : defaultStyles[key],
351
+ })), {});
352
+ };
@@ -0,0 +1,35 @@
1
+ export function computeHiddenBlocks(lineInformation, diffLines, extraLines) {
2
+ let newBlockIndex = 0;
3
+ let currentBlock;
4
+ let lineBlocks = {};
5
+ let blocks = [];
6
+ lineInformation.forEach((line, lineIndex) => {
7
+ const isDiffLine = diffLines.some(diffLine => diffLine >= lineIndex - extraLines && diffLine <= lineIndex + extraLines);
8
+ if (!isDiffLine && currentBlock == undefined) {
9
+ // block begins
10
+ currentBlock = {
11
+ index: newBlockIndex,
12
+ startLine: lineIndex,
13
+ endLine: lineIndex,
14
+ lines: 1
15
+ };
16
+ blocks.push(currentBlock);
17
+ lineBlocks[lineIndex] = currentBlock.index;
18
+ newBlockIndex++;
19
+ }
20
+ else if (!isDiffLine) {
21
+ // block continues
22
+ currentBlock.endLine = lineIndex;
23
+ currentBlock.lines++;
24
+ lineBlocks[lineIndex] = currentBlock.index;
25
+ }
26
+ else {
27
+ // not a block anymore
28
+ currentBlock = undefined;
29
+ }
30
+ });
31
+ return {
32
+ lineBlocks,
33
+ blocks: blocks
34
+ };
35
+ }
@@ -0,0 +1,202 @@
1
+ import * as diff from 'diff';
2
+ const jsDiff = diff;
3
+ export var DiffType;
4
+ (function (DiffType) {
5
+ DiffType[DiffType["DEFAULT"] = 0] = "DEFAULT";
6
+ DiffType[DiffType["ADDED"] = 1] = "ADDED";
7
+ DiffType[DiffType["REMOVED"] = 2] = "REMOVED";
8
+ DiffType[DiffType["CHANGED"] = 3] = "CHANGED";
9
+ })(DiffType || (DiffType = {}));
10
+ // See https://github.com/kpdecker/jsdiff/tree/v4.0.1#api for more info on the below JsDiff methods
11
+ export var DiffMethod;
12
+ (function (DiffMethod) {
13
+ DiffMethod["CHARS"] = "diffChars";
14
+ DiffMethod["WORDS"] = "diffWords";
15
+ DiffMethod["WORDS_WITH_SPACE"] = "diffWordsWithSpace";
16
+ DiffMethod["LINES"] = "diffLines";
17
+ DiffMethod["TRIMMED_LINES"] = "diffTrimmedLines";
18
+ DiffMethod["SENTENCES"] = "diffSentences";
19
+ DiffMethod["CSS"] = "diffCss";
20
+ DiffMethod["JSON"] = "diffJson";
21
+ })(DiffMethod || (DiffMethod = {}));
22
+ /**
23
+ * Splits diff text by new line and computes final list of diff lines based on
24
+ * conditions.
25
+ *
26
+ * @param value Diff text from the js diff module.
27
+ */
28
+ const constructLines = (value) => {
29
+ if (value === '')
30
+ return [];
31
+ const lines = value.replace(/\n$/, '').split('\n');
32
+ return lines;
33
+ };
34
+ /**
35
+ * Computes word diff information in the line.
36
+ * [TODO]: Consider adding options argument for JsDiff text block comparison
37
+ *
38
+ * @param oldValue Old word in the line.
39
+ * @param newValue New word in the line.
40
+ * @param compareMethod JsDiff text diff method from https://github.com/kpdecker/jsdiff/tree/v4.0.1#api
41
+ */
42
+ const computeDiff = (oldValue, newValue, compareMethod = DiffMethod.CHARS) => {
43
+ const diffArray = jsDiff[compareMethod](oldValue, newValue);
44
+ const computedDiff = {
45
+ left: [],
46
+ right: [],
47
+ };
48
+ diffArray.forEach(({ added, removed, value }) => {
49
+ const diffInformation = {};
50
+ if (added) {
51
+ diffInformation.type = DiffType.ADDED;
52
+ diffInformation.value = value;
53
+ computedDiff.right.push(diffInformation);
54
+ }
55
+ if (removed) {
56
+ diffInformation.type = DiffType.REMOVED;
57
+ diffInformation.value = value;
58
+ computedDiff.left.push(diffInformation);
59
+ }
60
+ if (!removed && !added) {
61
+ diffInformation.type = DiffType.DEFAULT;
62
+ diffInformation.value = value;
63
+ computedDiff.right.push(diffInformation);
64
+ computedDiff.left.push(diffInformation);
65
+ }
66
+ return diffInformation;
67
+ });
68
+ return computedDiff;
69
+ };
70
+ /**
71
+ * [TODO]: Think about moving common left and right value assignment to a
72
+ * common place. Better readability?
73
+ *
74
+ * Computes line wise information based in the js diff information passed. Each
75
+ * line contains information about left and right section. Left side denotes
76
+ * deletion and right side denotes addition.
77
+ *
78
+ * @param oldString Old string to compare.
79
+ * @param newString New string to compare with old string.
80
+ * @param disableWordDiff Flag to enable/disable word diff.
81
+ * @param lineCompareMethod JsDiff text diff method from https://github.com/kpdecker/jsdiff/tree/v4.0.1#api
82
+ * @param linesOffset line number to start counting from
83
+ * @param showLines lines that are always shown, regardless of diff
84
+ */
85
+ const computeLineInformation = (oldString, newString, disableWordDiff = false, lineCompareMethod = DiffMethod.CHARS, linesOffset = 0, showLines = []) => {
86
+ let diffArray = [];
87
+ // Use diffLines for strings, and diffJson for objects...
88
+ if (typeof oldString === 'string' && typeof newString === 'string') {
89
+ diffArray = diff.diffLines(oldString, newString, {
90
+ newlineIsToken: false,
91
+ ignoreWhitespace: false,
92
+ ignoreCase: false,
93
+ });
94
+ }
95
+ else {
96
+ diffArray = diff.diffJson(oldString, newString);
97
+ }
98
+ let rightLineNumber = linesOffset;
99
+ let leftLineNumber = linesOffset;
100
+ let lineInformation = [];
101
+ let counter = 0;
102
+ const diffLines = [];
103
+ const ignoreDiffIndexes = [];
104
+ const getLineInformation = (value, diffIndex, added, removed, evaluateOnlyFirstLine) => {
105
+ const lines = constructLines(value);
106
+ return lines
107
+ .map((line, lineIndex) => {
108
+ const left = {};
109
+ const right = {};
110
+ if (ignoreDiffIndexes.includes(`${diffIndex}-${lineIndex}`) ||
111
+ (evaluateOnlyFirstLine && lineIndex !== 0)) {
112
+ return undefined;
113
+ }
114
+ if (added || removed) {
115
+ let countAsChange = true;
116
+ if (removed) {
117
+ leftLineNumber += 1;
118
+ left.lineNumber = leftLineNumber;
119
+ left.type = DiffType.REMOVED;
120
+ left.value = line || ' ';
121
+ // When the current line is of type REMOVED, check the next item in
122
+ // the diff array whether it is of type ADDED. If true, the current
123
+ // diff will be marked as both REMOVED and ADDED. Meaning, the
124
+ // current line is a modification.
125
+ const nextDiff = diffArray[diffIndex + 1];
126
+ if (nextDiff && nextDiff.added) {
127
+ const nextDiffLines = constructLines(nextDiff.value)[lineIndex];
128
+ if (nextDiffLines) {
129
+ const nextDiffLineInfo = getLineInformation(nextDiffLines, diffIndex, true, false, true);
130
+ const { value: rightValue, lineNumber, type, } = nextDiffLineInfo[0].right;
131
+ // When identified as modification, push the next diff to ignore
132
+ // list as the next value will be added in this line computation as
133
+ // right and left values.
134
+ ignoreDiffIndexes.push(`${diffIndex + 1}-${lineIndex}`);
135
+ right.lineNumber = lineNumber;
136
+ if (left.value === rightValue) {
137
+ // The new value is exactly the same as the old
138
+ countAsChange = false;
139
+ right.type = 0;
140
+ left.type = 0;
141
+ right.value = rightValue;
142
+ }
143
+ else {
144
+ right.type = type;
145
+ // Do char level diff and assign the corresponding values to the
146
+ // left and right diff information object.
147
+ if (disableWordDiff) {
148
+ right.value = rightValue;
149
+ }
150
+ else {
151
+ const computedDiff = computeDiff(line, rightValue, lineCompareMethod);
152
+ right.value = computedDiff.right;
153
+ left.value = computedDiff.left;
154
+ }
155
+ }
156
+ }
157
+ }
158
+ }
159
+ else {
160
+ rightLineNumber += 1;
161
+ right.lineNumber = rightLineNumber;
162
+ right.type = DiffType.ADDED;
163
+ right.value = line;
164
+ }
165
+ if (countAsChange && !evaluateOnlyFirstLine) {
166
+ if (!diffLines.includes(counter)) {
167
+ diffLines.push(counter);
168
+ }
169
+ }
170
+ }
171
+ else {
172
+ leftLineNumber += 1;
173
+ rightLineNumber += 1;
174
+ left.lineNumber = leftLineNumber;
175
+ left.type = DiffType.DEFAULT;
176
+ left.value = line;
177
+ right.lineNumber = rightLineNumber;
178
+ right.type = DiffType.DEFAULT;
179
+ right.value = line;
180
+ }
181
+ if (showLines?.includes(`L-${left.lineNumber}`) || showLines?.includes(`R-${right.lineNumber}`) && !diffLines.includes(counter)) {
182
+ diffLines.push(counter);
183
+ }
184
+ if (!evaluateOnlyFirstLine) {
185
+ counter += 1;
186
+ }
187
+ return { right, left };
188
+ })
189
+ .filter(Boolean);
190
+ };
191
+ diffArray.forEach(({ added, removed, value }, index) => {
192
+ lineInformation = [
193
+ ...lineInformation,
194
+ ...getLineInformation(value, index, added, removed),
195
+ ];
196
+ });
197
+ return {
198
+ lineInformation,
199
+ diffLines,
200
+ };
201
+ };
202
+ export { computeLineInformation };
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function Expand() {
3
+ return _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 16 16", width: "16", height: "16", children: _jsx("path", { d: "m8.177.677 2.896 2.896a.25.25 0 0 1-.177.427H8.75v1.25a.75.75 0 0 1-1.5 0V4H5.104a.25.25 0 0 1-.177-.427L7.823.677a.25.25 0 0 1 .354 0ZM7.25 10.75a.75.75 0 0 1 1.5 0V12h2.146a.25.25 0 0 1 .177.427l-2.896 2.896a.25.25 0 0 1-.354 0l-2.896-2.896A.25.25 0 0 1 5.104 12H7.25v-1.25Zm-5-2a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM6 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 6 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM12 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 12 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5Z" }) });
4
+ }
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function Fold() {
3
+ return _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 16 16", width: "16", height: "16", children: _jsx("path", { d: "M10.896 2H8.75V.75a.75.75 0 0 0-1.5 0V2H5.104a.25.25 0 0 0-.177.427l2.896 2.896a.25.25 0 0 0 .354 0l2.896-2.896A.25.25 0 0 0 10.896 2ZM8.75 15.25a.75.75 0 0 1-1.5 0V14H5.104a.25.25 0 0 1-.177-.427l2.896-2.896a.25.25 0 0 1 .354 0l2.896 2.896a.25.25 0 0 1-.177.427H8.75v1.25Zm-6.5-6.5a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM6 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 6 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM12 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 12 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5Z" }) });
4
+ }